IA-32处理器基本运行环境介绍

嵌入式设计应用

132人已加入

描述

  任何程序跑在IA-32处理器上都需要一个特定的环境来支持,比如程序代码的读取,数据的存储和状态的保存等。这些资源组成IA-32处理器基本的运行环境,这些资源主要包括:

  地址空间(Address Space)。任何程序跑在IA-32处理器上的时候都可以看到一个线性地址空间,该地址空间大小为2的32次方。该线性地址空间需要通过分页机制映射到物理地址,该线性地址空间让程序以为自己可以访问到系统中的任何地址。

  基本的程序执行寄存器。主要包括8个通用寄存器(EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP),6个段寄存器(CS、DS、ES、SS、FS和GS),标志寄存器EFLAGS和指令指针寄存器EIP。

  x87 FPU寄存器。主要包括8个数据寄存器,1个控制寄存器,1个状态寄存器,1个Tag寄存器,1个操作数寄存器,1个指令指针寄存器和1个数据指针寄存器。

  8个MMX寄存器,用于支持64-bit的SIMD(Single Instruction Multiple Data)指令。

  8个XMM寄存器,用于支持128-bit的SIMD指令。

  8个YMM寄存器,用于支持256-bit的SIMD指令。

  4个边界寄存器(Bounds registers)。BND0-BND3寄存器存放的是内存缓冲区的上限指针,这些寄存器用于支持MPX指令。

  BNDCFGU和BNDSTATUS寄存器,可以看出一个是配置寄存器,一个是状态寄存器,用于支持MPX指令。

x86处理器

  以上的运行环境是在IA-32 CPU core级别的环境,另外IA-32处理器还提供了下列系统级别的运行环境,在多核处理器的环境中,处理器内部的多个CPU core共享这些运行环境。这个系统级别的运行环境主要包括:

  I/O端口。IA-32架构提供了64KB的地址空间,这些地址空间是被系统中的所有CPU core共用的。

  控制寄存器。包括5个控制寄存器CR0 - CR4,这些控制寄存器控制着当前的运行模式,并且是否使能处理器的某些功能。

  内存管理寄存器。其中包括GDTR、IDTR、任务寄存器(task register)和LDTR,这些寄存器用来指明在保护模式下,内存中数据结构的位置。

  Debug寄存器。包括8个Debug寄存器DR0 - DR7。

  内存类型和范围寄存器(MTRR,Memory Type Range Register)。用于指明系统内存的类型和区间。

  MSR(Machine Specific Register)寄存器。MSR寄存器主要用于控制处理器的配置并且汇报处理器的状态,每个CPU Socket中都包含了大量的MSR寄存器。

  Machine Check寄存器。Machine Check寄存器主要用于硬件错误的检测,它其实也是属于MSR寄存器。

  性能监测寄存器(Performance monitoring counters)。顾名思义,主要用于监测处理器的性能。

  64-bit模式类似于IA-32的模式,只是在这的基础上做了一些扩展:

  地址空间从,原来是32位的地址,现在扩展成64位的,所以地址空间也从2的32次方扩展成2的64次方。

  基本的程序执行寄存器从原来的8个扩展为16个,并且从原来的32位扩展为64位。

  XMM和YMM寄存器也从原来的8个扩展到16个。

  控制寄存器CR0 - CR4从原来的32位扩展到64位,并且多添加了一个控制寄存器CR8(task priority register)。

  Debug寄存器也从32位扩展为64位。

  描述表寄存器(Descriptor table register)。GDTR、LDTR、IDTR和TR都扩展了,从而可以保存64位的地址。

x86处理器

  在虚拟化的过程中,如果要模拟CPU,就需要记录下每个被模拟的CPU的状态,而前面讨论的运行环境就是CPU的状态信息,这些信息将会在VMCS(Virtual Machine Control Structure)中被记录下来。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
唐建文 2017-02-08
0 回复 举报
这是家居装修的改革吧 也跟嵌入式套的上关系? 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分