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

文档序号:9727117阅读:623来源:国知局
具有载入扩展页表指令的处理器的制造方法【专利说明】[00011本申请案主张申请日为2015年5月11日的美国专利第62/159,776号临时申请案的优先权。该优先权案的全文并入本案以供参考。
技术领域
[0002]本发明关于由处理器执行的地址转译,特别是关于一载入扩展页表(extendedpagetable,EPT)指令,此指令可以在启动虚拟化(virtualization)时执行,借以直接将客户端实体地址转换为真的实体地址。【
背景技术
】[0003]现代处理器支持虚拟存储器功能。虚拟存储器系统是将由程序使用的虚拟地址(也称为线性地址)映射或转译至由硬件使用的实体地址以对存储器寻址。透过虚拟存储器,可以隐藏物理存储器的零碎状况(fragmentation),以利程序重定位(relocation)的进行,并使程序可以看到相较于比实际可取用的物理存储器更大的地址空间。这些优点尤其有利于现今由多程序或程序支持处理器时间共享(time-sharing)的系统。[0004]操作系统(operationgsystem,0S)是透过产生并维护系统存储器转译表来实现虚拟存储器系统,在分页虚拟存储器系统中,系统存储器转译表通常被称为的页表(pagetable)。页表可将虚拟地址映射至与处理器连接的系统存储器的实体地址中。此转译表可采取阶层表单的形式,其中部分表单是将虚拟地址映射至中介表单的地址。程序利用虚拟地址来存取存储器的时候,会依序存取转译表来完成由虚拟地址转译至相对应实体位置的程序,这个程序通常被称为页表寻访(pagetablewalk)或表寻访(tablewalk)。[0005]许多处理器也会支持虚拟机扩展(virtualmachineextensions,VMX)使处理器硬件能透过虚拟化适用于多个软件环境。如同公元2015年1月公布的Int_el·?64与IA-32架构软件开发手册的卷3C:系统程序指南(本文称为"Intel?系统程序指南")的第28章所述,此架构包含有两个支持虚拟机扩展作业所需的地址转译的特征,即虚拟处理器标示(virtual-processoridentifiers,VPIDs)与扩展页表(extendedpage-table,EPT)机制。此指南的全文是并入本案以供参考。虚拟机处理器标示提供虚拟地址转译所需的机制,而扩展页表的机制则是定义一地址转译层以扩大虚拟地址的转译。超监视器(hypervisor)或具有类似功能者会虚拟化系统资源使多个独立的操作系统共享硬件资源。在执行虚拟存储器系统时,操作系统并不会察觉到它的页表也被虚拟化,而操作系统的"实体地址"被视为"客户端(guest)"的实体地址,其需要透过一组扩展页表页结构(EPTpagingstructure)进一步转译以产生可用以存取系统存储器的"真实的(true)"实体地址。[0006]在虚拟化启动时,EPT机制是套入(nested)-般的表寻访程序,用以将来自页表的各个客户端实体地址转换为相对应的真实的实体地址,以存取系统存储器内真正的相对应页表。此EPT机制包含一EPT表寻访引擎,透过存取EPT页机构来将客户端实体地址转换为真实的实体地址,以补足表寻访程序。如此,即可在一虚拟化系统架构的各个表寻访程序的过程中,执行多个EPT转换。[0007]传统上,支持虚拟机扩展使处理器硬件透过虚拟化而适用于多个软件环境的处理器,通常包含EPT转译机制,用以将虚拟地址转换至实体地址以存取系统存储器。不过,传统的处理器并不具有一个独立于前述标准转译程序外,而可以将客户端实体地址直接转换至真实的实体地址的机制。【
发明内容】[0008]本发明的一实施例提供一种处理器,此处理器包括一个于虚拟化程序(virtualization)启动的扩展页表(extendedpagetable,EPT)转译机制与一载入EPT指令。载入EPT指令是于该处理器执行该载入EPT指令时,直接调用(invoke)该EPT转译机制,以直接将所提供的一客户端实体地址转译为一相对应的真实的实体地址。此EPT转译机制包括一EPT页结构(pagingstructure)与一EPT表寻访引擎(tablewalkengine)eEPT页结构是于该EPT转译机制启动时产生并储存于该系统存储器。EPT表寻访引擎是用以存取该EPT页结构以将该客户端实体地址转换为该相对应的真实的实体地址。EPT表寻访引擎于执行该载入EPT指令时,可执行相关检验(check)以触发EPT误配置(misconfiguration;^EPT违反(violation)〇[0009]本发明的一实施例还提供一种操作一处理器的方法。此方法包括在虚拟化程序中,启动一EPT转译机制,以及执行一载入EPT指令,其包括直接调用EPT转译机制,以直接将所提供的一客户端实体地址转译为一相对应的真实的实体地址。[0010]本发明的一实施例还提供一种计算机程序产品,编码于至少一非瞬时计算机可使用媒介内,以供一计算机装置使用。此计算机程序产品包括实现于前述媒介的计算机可使用程序代码,以指定一处理器,此计算机可使用程序代码包括第一程序代码与第二程序代码。第一程序代码是指定一EPT转译机制,此EPT转译机制是于虚拟化程序启动。第二程序代码是指定一载入EPT指令,处理器执行此载入EPT指令时,会直接调用EPT转译机制,以直接将所提供的一客户端实体地址转译为一相对应的真实的实体地址。【附图说明】[0011]图1为本发明一实施例的具有一微码单元的处理器的方块示意图,而此微码单元为纳入一载入扩展页表(EPT)指令;[0012]图2为一方块示意图,显示由图1的处理器依据适当的虚拟化程序所实现的虚拟化系统;[0013]图3为一方块示意图,显示依据本发明一实施例的载入EPT指令的操作流程,在此流程中,载入EPT指令(LD_EPTinstruction)是透过直接调用(invoke)EPT表寻访引擎来利用图1的EPT页结构,来达到直接调用EPT转译机制以直接执行实体地址转译的目的;[0014]图4显示一用于虚拟地址转译的PAE页结构,在虚拟化操作启动图1的EPT转译机制的同时,此虚拟地址转译会使用PAE页面来转译出一个4K字节(Byte)的页面;以及[0015]图5为本发明一实施例的一微码载入例程的流程图,此微码载入例程可以用来由系统存储器载入图4的Η)ΡΤΕ缓存器。[0016]附图标记:[0017]100:处理器;102:指令高速缓存;[0018]104:指令转译器;106:微码;[0019]114:缓存器;112:执行单元;[0020]116:存储器子系统;118:高速缓存;[0021]120:总线接口单元;124:表寻访引擎;[0022]126:EPT表寻访引擎;122:系统存储器;[0023]128:转译表;130:EPT页结构;[0024]132:LD_EPT指令;134:EPT转译机制;[0025]200:虚拟化系统;202、204、206:虚拟机器;[0026]208:超监视器;304:加法器;[0027]306:EPT指针;308:EPT第四层页映射(PML4)表;[0028]310:EPT页目录指针(PDPT)表;312:EPT页目录(PD)表;[0029]314:EPT页表;400:PAE页结构;[0030]402:页目录指针表项目(PDPTE)缓存器;404:页目录;[0031]406:页表;408:页面;[0032]410:虚拟地址;412:实体地址。【具体实施方式】[0033]本文所述的处理器是支持虚拟化操作,而此虚拟化操作是包括一EPT转译机制来将一"客户端(guest)"实体地址转换为一"真实的(true)"实体地址以存取系统存储器。在虚拟化操作不起作用或是尚未被启动的情况下,一虚拟存储器系统会启动处理器上所执行的转换程序,来将虚拟地址直接转换为实体地址,以正确地存取系统存储器内想要存取的位置。不过,在虚拟化操作被启动的情况下,各个操作系统(operatingsystem,0S)或各个虚拟机器(virtualmachine,VM)的一个或多个程序会在一客户端环境(guestenvironment)执行。在虚拟化操作的过程中,会使用一个虚拟化程序(virtualizationscheme)来有效地虚拟化存储器系统,如此,各个操作系统或虚拟机器就不会意识到它并不是直接存取系统存储器。相反地,虚拟存储器系统会产生"客户端"实体地址,此地址无法正确地存取系统存储器内想要存取的位置。各个客户端实体地址必须进一步转换或复位向至相对应的真实的实体地址,方能正确地存取系统存储器内的位置当前第1页1 2 3 4 
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1