处理器和区分系统管理模式条目的方法

文档序号:9687362阅读:347来源:国知局
处理器和区分系统管理模式条目的方法【
技术领域
】[0001]本发明通常涉及处理器的转译地址高速缓冲存储器中的条目,尤其涉及用于区分转译地址高速缓冲存储器中的系统管理模式(SMM)条目以使得能够在进入和/或退出SMM时维持非SMM条目的系统和方法。【
背景技术
】[0002]现代处理器支持虚拟存储器性能。虚拟存储器系统将程序所使用的虚拟地址映像到或转译成硬件所使用的物理地址以对存储器进行寻址。虚拟存储器具有如下优点:对程序隐藏物理存储器的碎片状态、便于进行程序复位位、并且允许程序看到比可用的实际物理存储器大的存储器地址空间。这些优点在利用多个程序或处理来支持处理器的分时的现代系统中特别有益。[0003]操作系统创建并且维持在页式虚拟存储器系统中经常被称为页表的将虚拟地址映像到物理地址的存储器转译表。这些转译表可以采用表的层级体系的形式,其中这些表中的一些表将虚拟地址映像到中介表地址。在程序使用虚拟地址来访问存储器的情况下,访问这些转译表以实现虚拟地址向其物理地址的转译、通常被称为页表查找或“表查找(tablewalk)”。用以访问该转译表的额外存储器访问,将对向存储器获得程序所期望数据或指令的最终访问产生明显的延迟。[0004]现代处理器包括一个或多个转译地址高速缓冲存储器以通过解决存储器访问和延迟问题来改善性能。转译地址高速缓冲存储器可以包括转译后备缓冲器(TLBhTLB是对虚拟向物理的地址转译进行高速缓存、以大大降低需要表查找的可能性的处理器的硬件结构。将要转译的虚拟地址与TLB中的先前存储的虚拟地址进行比较,并且如果虚拟地址在TLB中命中(例如,在发现虚拟地址匹配的情况下),则TLB提供物理地址。相比于访问存储器中的转译表以进行表查找所需的时间,从TLB中检索物理地址所消耗的时间少得多。TLB的效率(命中率)对于处理器性能而言至关重要。[0005]转译地址高速缓冲存储器还可以包括对页表中的一个或多个页表的信息进行高速缓存的分页结构高速缓冲存储器。例如,一些分页模式可以使用4级页映射表(PML4)、页目录指针表(PDPT)、页目录(PD)和页表(PT),而高速缓冲存储器可为这些页表中的一个或多个页表进行设置,分页结构高速缓冲存储器包含这些分页高速缓冲存储器中的任一个或多个。这样,即使在TLB中发生未命中,在所请求的地址转译被高速缓存在分页结构高速缓冲存储器内的情况下,也可以大大加速表查找处理。[0006]现代处理器和处理系统支持正常处理被中断并暂停的系统管理模式(SMM),以响应于诸如SMM中断(SMI)等的外部激发而进入SMM操作。SMM操作通常是临时的,其中可以在正常处理被中断的点处恢复该正常处理。SMM对于进入任一个或多个低电力模式以节约电力而言特别有利。处理器响应于设置为SMM中断而进入SMM。在进入SMM之前,处理器微码将处理器的状态保存在SMM保存区域中并且将处理器置入已知状态。该已知状态可被视为隔离操作模式,该模式用以进行与正常操作模式分开的一个或多个有价值的功能、诸如进行省电功能等。在期望返回至正常操作模式的情况下,执行恢复(RSM)指令以退出SMM。在退出SMM的过程中,微码从SMM保存区域恢复所保存的状态并且使处理器返回进入在SMI之前所存在的操作模式。[0007]在传统结构中,在处理器进入和/或退出SMM时,对所缓存的大部分(如果不是所有的)地址转译进行刷新。由于SMM被视为使用不同的地址空间的独立操作模式,因此进行所缓存信息的刷新以确保在恢复正常操作的情况下的适当操作。在正常模式期间在转译地址高速缓冲存储器(例如,TLB或分页结构高速缓冲存储器)内的利用SMM条目的命中将引起误命中,而这可能导致不适当的操作或者甚至系统故障。【
发明内容】[0008]根据一个实施例的处理器包括:存储器,用于存储表示所述处理器是否处于系统管理模式的系统管理模式值;转译地址高速缓冲存储器,其包括用于存储地址转译的多个条目,其中所述多个条目各自包括系统管理模式标识符;命中逻辑,用于将查找地址与所述转译地址高速缓冲存储器的所述多个条目中所存储的地址转译进行比较以判断命中,其中所述命中逻辑仅在条目的相应系统管理模式标识符与所述系统管理模式值相匹配时才判断为命中;以及条目逻辑,用于选择所述转译地址高速缓冲存储器的所述多个条目中的用于存储所确定的地址转译的条目,并且对所述转译地址高速缓冲存储器中的所选择的条目的系统管理模式标识符进行编程以匹配所述系统管理模式值。[0009]所述处理器可以包括处理逻辑,所述处理逻辑用于响应于进入所述系统管理模式,来命令对所述转译地址高速缓冲存储器中所存储的具有表示所述系统管理模式的相应系统管理模式标识符的地址转译进行刷新。该处理器可以包括处理逻辑,所述处理逻辑用于响应于退出所述系统管理模式,来命令对所述转译地址高速缓冲存储器中所存储的具有表示所述系统管理模式的相应系统管理模式标识符的地址转译进行刷新。可以针对进入和退出系统管理模式这两者命令刷新。[0010]该处理器可以包括刷新逻辑,所述刷新逻辑用于响应于刷新命令,来仅对所述转译地址高速缓冲存储器中所存储的具有与所述系统管理模式值相匹配的相应系统管理模式标识符的地址转译进行刷新。该处理器可以包括处理逻辑,所述处理逻辑用于响应于系统管理模式中断来对所述系统管理模式值进行设置以表示所述系统管理模式,然后发出所述刷新命令。该处理器可以包括处理逻辑,所述处理逻辑用于响应于退出所述系统管理模式来发出所述刷新命令,然后清除所述系统管理模式值。处理逻辑可以针对进入和退出系统管理模式这两者发出刷新命令。转译地址高速缓冲存储器可以是转译后备缓冲器或分页结构高速缓冲存储器或它们的任何组合。[0011]一种能够使处理器进行工作以区分转译地址高速缓冲存储器中的系统管理模式条目的方法,所述方法包括以下步骤:存储表示所述处理器是否处于系统管理模式的系统管理模式值;针对所述转译地址高速缓冲存储器中的用于存储地址转译的多个条目各自设置系统管理模式标识符;在将查找地址应用于所述转译地址高速缓冲存储器以寻找匹配地址的情况下,仅在条目的相应系统管理模式标识符与所述系统管理模式值相匹配时才在所述转译地址高速缓冲存储器中判断为命中;以及在所述转译地址高速缓冲存储器中发生未命中的情况下,对所述转译地址高速缓冲存储器的所述多个条目中的所选择的条目的系统管理模式标识符进行编程以匹配所述系统管理模式值,并且将所确定的地址转译存储在所述所选择的条目中。【附图说明】[0012]图1是根据本发明的一个实施例所实现的具有系统管理模式(SMM)并且被配置为在进入和退出SMM的情况下维持地址转译的处理器的框图。[0013]图2是更详细地示出图1的处理器的包括转译地址高速缓冲存储器(TAC)的一部分的框图。[0014]图3是示出根据一个实施例所实现的TLB中的包括系统管理模式标识符的条目的框图。[0015]图4是示出根据一个实施例的图1的处理器用以利用相应转译来填充TLB的条目的操作的流程图。[0016]图5是示出在图2的TAC内根据一个实施例所实现的用于判断是否响应于地址查询而发生命中的命中逻辑的框图。[0017]图6是示出根据一个实施例的用于使图2的TLB的条目中的LVAL位向量的位无效的刷新逻辑的框图,其是应用类似于图2的PSC的方式来进行。[0018]图7是示出根据一个实施例的用于使图2的TLB的条目中的GVAL位向量的位无效的刷新逻辑的框图。[0019]图8是示出图1的处理器的刷新控制寄存器的框图。[0020]图9是示出映射模块的响应于图8的控制寄存器的各种位的设置的操作的流程图。[0021]图10是示出根据一个实施例所实现的图2的PSC中的包括S丽标识符的条目的框图。[0022]图11是示出根据一个实施例的图1的处理器100的用以利用相应转译来填充图2的PSC的分页结构高速缓冲存储器的条目的操作的流程图。【具体实施方式】[0023]各种众所周知的指令集架构(ISA)包括被设计成具有提高转译地址高速缓存效率的特征。例如,x86ISA包括针对程序上下文标识符(PCID)、虚拟处理器标识符(VPID)和扩展页表指针(EPTP)的支持。x86ISA还包括指示处理器以使与给定的PCID、VPID和/或EPTP相关联的高速缓存转译条目无效的指令。这里针对支持大量不同的地址空间并且使用高效的地址转译高速缓存的处理器来说明本发明。这里所述的处理器还使用支持共同的上下文条目的同时无效的地址转译高速缓冲存储器。例如,说明如下实施例:将大空间映射到小得多的非架构空间,从而有利地使高速缓存转译条目能够包括少得多的位。这里说明有利地允许处理器使与未被映像的地址转译上下文相关联的所有高速缓存转译条目同时无效的实施例。有利地,实施例考虑本地地址转译和全局地址转译的性质,并且支持用于使这两个类型的高速缓存转译条目无效的效率。本发明亦包括具有或不具有地址空间映像功能和同时高速缓存无效功能的处理器。[0024]如这里所使用的,地址转译上下文是使得能够将存储器地址从第一存储器地址空间转译到第二存储器地址空间的一组信息。x86指令集架构(ISA)中的地址转译上下文的示例,可以是CR3寄存器(和其它控制寄存器,例如CRO和CR4以及相关特殊模块寄存器(MSR))、页表、页目录、页目录指针表、PML4表、扩展页表指针(EPTP)、和/或使得能够进行线性地址向物理存储器地址的转译的扩展页表(EPT)中所包括的一组信息。在x86ISA的情况下,利用处理器内的硬件来进行该转译。然而,在其它的ISA(例如,MIPS、SPARC)中,操作系统可以进行该转译。ARMISA中的地址转译上下文的另一示例,可以是转译表基址寄存器(TTBR)(和其它控制寄存器,例如转译控制寄存器(TCR)、系统控制寄存器(SCTLR)和Hyp配置寄存器(HCR))和/或转译表中所包括的一组信息。[0025]同样如这里所使用的,地址转译是一对存储器地址,其中该对中的第一个存储器地址是要进行转译的地址,并且该对中的第二个存储器地址是转译后的地址。本地地址转译是使用单个地址转译上下文来将要转译的地址转译成转译后的地址的地址转译,全局地址转译是使用多个地址转译上下文来将要转译的地址转译成转译后的地址的地址转译。本地存储器页或本地页是具有本地地址转译的存储器页,全局存储器页或全局页是具有全局地址转译的存储器页。[0026]如这里所述的处理器支持包括这里被称为系统管理模式(SMM)的替代操作环境模式的多个操作模式。在SMM以外的操作期间所确定的地址转译,可以存储在诸如TLB或分页结构高速缓冲存储器(非SMM条目)等的转译地址高速缓冲存储器中。如这里所使用的,转译地址高速缓冲存储器可包括TLB和分页结构高速缓冲存储器中的任一个或这两者。基于诸如包括但不限于任一个或多个省电模式等的各种原因,可以使处理器置于SMM。而转译地址高速缓冲存储器中所存储的许多具有价值的非SMM条目在退出SMM之后保持有效,而传统上,这些条目被刷新或无效。有利地,本发明避免了在进入和退出SMM的情况下对非SMM条目进行刷新。如这里针对实施例所述,向各转译高速缓冲存储器条目添加SMM标识符,以在SMM转译条目和非SMM转译条目之间进行区分。处理器还包括可编程SMM0N(开启)值,其存储用于标识处理器的当前操作模式,包括SMM或非SMMdMM0N值用于针对各新的转译条目设置SMM标识符。命中逻辑使用SMM0N值来与各SMM标识符进行比较以避免误命中。刷新逻辑也使用SMM0N值来与各SMM标识符位进行比较,以仅刷新与适用模式相对应的这些值,由此避免对其它模式中的有效条目进行刷新。[0027]图1是根据本发明的一个实施例所实现的具有系统管理模式(SMM),并且被配置为在进入和退出SMM的情况下维持地址转译的处理器100的框图。处理器100包括指令高速缓冲存储器102、包含微码单元106的指令转译器104、执行单元112、架构寄存器114、存储器子系统122、高速缓存存储器层级体系118和总线接口单元116。其它功能单元(未示出)可以包括:表查找引擎,用于进行转译表查找以生成虚拟到物理的地址转译;分支预测器;重排序单元;保留站;指令调度器;以及数据预取单元;等等。在一个实施例中,当前第1页1 2 3 4 5 
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1