具有载入扩展页表指令的处理器的制造方法_2

文档序号:9727117阅读:来源:国知局

[0034]本文所述的处理器是支持一 EPT转译机制,而此EPT转译机制是于虚拟化操作的过 程中嵌入虚拟存储器系统内,以将客户端实体地址转换为真实的实体地址。如本文所述,此 处理器还纳入一载入EPT指令,来实现由客户端实体地址转换至对应真实实体地址的直接 转换程序,此功能并不存在于传统处理器。此载入EPT指令可直接调用(invoke)EPT转译机 制来执行正确的转换程序。此载入EPT指令提供一便利的机制,能够在处理器需要进行转换 时,直接转换实体地址。举例来说,此载入EPT指令可支持实体地址扩展(physical address extension,PAE)页面模式,而如本文所述,可改善EPT寻址模式下的地址转译。其它任何处 理器需要将客户端实体地址直接转换为相对应的真实的实体地址的状态,也为本文所述的 处理器所支持。
[0035]图1是本发明一实施例的具有一微码单元106的处理器100的方块示意图,而此微 码单元106是纳入一载入扩展页表(EPT)指令。此处理器100包括一指令高速缓存102,一指 令转译器104,执行单元112,架构缓存器114,一存储器子系统116,一高速缓存阶层结构 (hierarchy) 118与一总线接口单元120。指令转译器104可包括前述微码单元106,不过本发 明并不限于此种配置方式。其它可能的功能方块(未图标)包括分支预测器,一重排单元,一 重排缓冲器,保留站,一指令排程器(instruction scheduler)与数据预取单元(data prefetch unit)。在一实施例中,此微处理器100具有一非循序执行微架构(out-of-order execution microarchitecture),指令可以不依照程序顺序发布执行。在一实施例中,此微 处理器100具有一超纯量微架构(superscalar microarchitecture),能够在单一个时钟周 期内发布多个指令至执行单元112以执行。在一实施例中,此微处理器100实质上是符合x86 指令集架构。不过,本发明也可用于其它指令集架构,而不限于x86指令集架构。
[0036] 指令高速缓存102是透过总线接口 120储存由系统存储器122取得的架构指令。转 译后备缓冲器(translation look-aside buffer,TLB)(未图示)是关联于这些储存地址转 译以供指令使用的指令高速缓存102。在一实施例中,指令转译器104是由指令高速缓存102 取得架构指令并将其转译为微处理器100的微架构的微指令集的微指令。执行单元112执行 微指令以实现此组架构指令所欲执行的功能。
[0037] 执行单元112接收来自架构缓存器114(或是重排缓冲器或一转送总线)的来源操 作数(source operand)。这些操作数是由系统存储器122经由存储器子系统116载入缓存器 114。存储器子系统116会将数据写入高速缓存阶层结构118或从高速缓存阶层结构118将数 据读出。举例来说,此高速缓存阶层结构118可以是第一层数据高速缓存、第二层高速缓存、 第三层高速缓存等等。各个高速缓存可具有一相关联的转译后备缓冲器。若是在高速缓存 阶层结构118的最末层高速缓存发生高速缓存失误(cache miss),总线接口单元120就会针 对数据或指令高速缓存线(cache line)发出请求,而从系统存储器122取得高速缓存线 (cache line)。
[0038] 存储器子系统116包括一表寻访(tablewalk,TW)引擎124,可执行地址转译的表寻 访以产生虚拟至实体地址间的地址转换。表寻访引擎124存取系统存储器122内的转译表 128(例如x86指令集架构下的页结构)以执行页面的表寻访(page tablewalk)以产生虚拟 至实体间的地址转换。此地址转换在后续步骤中会载入处理器1〇〇的转译后备缓冲器内。这 些转译表128可包括一转译表阶层结构中,映射至页面的表(例如x86指令集架构的页表 (p a g e t a b 1 e ))或是参照其它转译表的表(例如X 8 6指令集架构的页目录(p a g e directory)、页目录指针表(page-directory-pointer table)、PML4表等等)。
[0039] 在本文所述的实施例中,处理器100是支持虚拟化操作,例如可使处理器硬件虚拟 化的虚拟机器扩展(如x86指令集架构的VMX)。当虚拟化操作启动时,处理器100会启动存储 器子系统116内的EPT表寻访引擎126的操作,以利于实体地址转译。此处理器100并会在系 统存储器122内产生一扩展页表(EPT)页结构130(依据x86指令集架构的说法)将虚拟化的 实体地址,也称为客户端实体地址(guest physical address),映射至真实的实体地址(例 如x86指令集架构中所称的主机端实体地址(host physical address))。此EPT表寻访引擎 126存取EPT页结构130以执行EPT实体地址转译。当虚拟化操作启动时,表寻访引擎124会与 EPT表寻访引擎126合作来存取转译表128与EPT页结构130,借以将虚拟地址转换为相对应 的真实的实体地址以存取系统存储器122中被指定的存储器位置,这部分在后续章节会有 进一步描述。EPT表寻访引擎126与EPT页结构130是一并被称为EPT转译机制134。
[0040] 微码单元106可包括一用以储存微码或微码例程(microcode routine)的微码存 储器(例如只读存储器(read only memory,R0M)),以及一用以从微码存储器取得微码指令 的微序列器(microsequencer)(未图示)。在一实施例中,前述微码指令就是微指令 (microinstruction);而在另一实施例中,微码指令则是转译自微指令。微码可实现某些架 构指令,例如特别复杂的架构指令。微码包括微码例程或其类似者,以执行处理器100的多 种不同功能。在本文所述的配置中,微指令包括一载入EPT指令,此指令在微码单元106中表 示为符号"LD_EPT"。如同本文所述,此LD_EPT指令132直接存取EPT转译机制134,而通常只 有表寻访引擎124会直接存取此转译机制。特别是,此LD_EPT指令132会直接调用EPT表寻访 引擎126来存取EPT页结构以直接将所提供的客户端实体地址转换为相对应的真实的实体 地址。
[0041] 图2是一方块示意图,显示由处理器100依据适当的虚拟化程序所实现的虚拟化系 统200。此处理器100是耦接至系统存储器122,例如可透过前文所述的总线接口单元120。此 处理器10 0是支持虚拟机器扩展(VMX)或其它相类似功能,而能启动虚拟化程序 (virtual ization sheme ),借此,处理器100即可支持硬件资源的虚拟化。超监视器 (hypervisor)208是操作为虚拟机监视器(virtual machine monitor,VMM),其作为一个或 多N个虚拟机器(virtual machine)的主机,这些虚拟机器可表示为VM1 202,VM2 204…VMN 206,N可为零或其它正整数。此超监视器208具有对于处理器100的完全控制,而能启动对于 系统资源的分享存取,例如对于处理器100,系统存储器122与其它以此处理器100为接口的 硬件资源(例如键盘、视讯、鼠标、图像、储存装置、输入/输出端口等)的分享存取。各个虚拟 机器202-206均为客户端软件环境,此客户端软件环境可支持相对应的操作系统与应用软 件,并可单独操作。超监视器208管理各个虚拟机器202-206对于系统资源的存取。处理器 100的微码单元106结合微码指令、微码例程与其它类似者,以促进虚拟化的操作。
[0042]当虚拟化操作启动时,处理器100启动EPT表寻访引擎126的操作并在系统存储器 122内产生EPT页结构130。一般而言,为了执行虚拟化,处理器会启动一EPT转译机制134来 执行实体地址转译。微码单元106并具有此LD_EPT指令132,此指令经执行,可直接调用EPT 转译机制134来将所提供的客户端实体地址转换为相对应的真实的实体地址。
[0043]图3是一方块示意图,显示依据本发明一实施例的载入EPT(LD_EPT)指令132的操 作流程。在此流程中,LD_EPT指令132是透过直接调用EPT表寻访引擎126来利用EPT页结构 130,来达到直接调用EPT转译机制134以直接执行实体地址转译的目的。载入EPT指令132是 由相对应的编码语法(code syntax)来指定。在一实施例中,此语法包括符号LD_EPT,而其 后面有储存操作数供指令使用的第一与第二缓存器R1,R2。第一缓存器R1是作为一目的缓 存器(destination register)以保存指令执行结果,而第二缓存器R2是作为一来源缓存器 (source register)以储存输入操作数。客户端实体地址GPA,即前述输入操作数,是载入来 源缓存器R2,而当LD_EPT指令132执行时,EPT表寻访引擎126会与EPT页结构130合作以产生 一相对应的真实的实体地址TPA并将其载入目的缓存器R1。
[0044] 在一实施例中,此EPT页结构130包括一E
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1