对于页漏失处理程序的并行控制的制作方法

文档序号:8287859阅读:263来源:国知局
对于页漏失处理程序的并行控制的制作方法
【专利说明】对于页漏失处理程序的并行控制
【背景技术】 在现代的计算机系统中,处理器对各种数据执行指令。可以从系统存储器中获取指令 和数据。为访问系统存储器,使用物理地址。然而,软件不直接提供物理地址供处理器使用。 相反,处理器的硬件用于将从软件接收到的线性地址转换为物理地址。 在某些处理器中,可以有基于处理器的结构以存储频繁地使用的或最近使用的转换以 减少延迟。然而,有所谓的漏失是不可避免的,其中:在处理器中不存在被请求的线性地址 和对应的物理地址之间的转换。相应地,对系统管理执行页面步行过程,以获取转换,如此, 提供合适的物理地址。尽管存在这样的机制,但是,页面步行过程相对来说费时,如此,增大 了存储器访问的延迟。 附图简述 图1是根据本发明的一实施例的页漏失处理程序的框图。 图2是根据本发明的一实施例的用于执行页面行走的方法的流程图。 图3是根据本发明的一个实施例的由页漏失处理程序执行的线性地址转换。 图4是根据本发明的一个实施例的处理器核的框图。 图5是根据本发明的一个实施例的处理器核的框图。 图6是根据本发明另一实施例的多域处理器的框图。 图7是包括多个核的处理器的一个实施例的框图。 图8是根据本发明一实施例的系统的框图。 详细描述 在各实施例中,提供了允许页漏失处理程序(PMH)的多个步行器(walker)并行地执行 一组分页结构各自的步行以获取从线性地址到物理地址的转换的技术。此外,实施例可以 提供一种逻辑,如果一个并行步行器处于访问至少部分地重叠正在由并行步行器中的另一 个转换的线性地址的线性地址的信息的过程中,则该逻辑防止并行步行器中的一个或多个 将条目存储在用于特定转换的分页缓存中。换言之,此处所描述的缓存写入禁用用于确保 在给定分页缓存中不存在具有相同数据的多个路。尽管此处所描述的各实施例在页漏失处 理程序本身内提供这样的逻辑,但是,可以理解,本发明的范围在这方面不受限制,在其他 实施例中,在实现此处所描述的并行步行器保护时,可以使用其他硬件、软件和/或固件。 根据本发明的一个实施例的处理器可以根据多个分页模式中的一个配置。无论如何, 在每一种模式下,处理器用于使用分层分页结构,将线性地址转换为对应于系统存储器中 的一位置的物理地址。在各实施例中,当处理器中不存在转换时,例如,在转换后援缓冲器 内,处理器的PMH可以执行获取转换的过程。一般而言,PMH使用线性地址的上部部分来标 识分页结构条目的系列。这些条目中的最后一个标识线性地址被转换到的区域的物理地址 (叫做页帧)。线性地址的下部部分(叫做页面偏移)标识线性地址转换到的该区域内的 特定地址。每一个分页结构条目都包含物理地址,该物理地址是另一分页结构的地址或页 帧的地址。在第一种情况下,条目引用其他分页结构;在后一种情况下,条目映射到页面。 第一分页结构位于存储在诸如CR3寄存器之类的配置寄存器中的物理地址处。使用下 列迭代过程,转换线性地址。线性地址的一部分(最初,最上面的比特)用于获取分页结构 中的一个条目(最初,使用存储在CR3寄存器中的值定位的那一个)。如果该条目引用另一 分页结构,则过程继续该分页结构,以及下面的刚刚使用的线性地址的另一部分。如果相反 条目映射到一页面,则过程完成。在此情况下,条目中的物理地址是页帧的物理地址,线性 地址的剩余的下部部分是页帧内的页面偏移。 现在参见图1,所示出的是根据本发明的一实施例的页漏失处理程序的框图。页漏失处 理程序可以位于处理器的存储器执行单元(MEU)内。当在诸如转换后援缓冲器(TLB)之类 的处理器的另一结构中不存在从线性地址到物理地址的转换时,此处理程序可以被用来执 行从线性地址到物理地址的转换。 如图1所示,PMH 10可以包括多个构成组件,并可以被配置成接收传入的线性地址 (LA)和线程标识符(线程ID),以及额外的请求信息,这些请求信息可以包括,例如,有关与 转换相关联的微操作(uop)的特定信息。此信息可以包括操作码、重新排序缓冲标识符、请 求类型(例如,加载、存储,或预取),以及指出uop是要被隐退的下一操作的隐退标志。注 意,响应于TLB或存储转换信息的其他缓存结构中的漏失,可以接收此传入的信息。如此, 当到位于系统存储器中的物理地址的转换由于某种原因对处理器不可用时,处理器逻辑可 以向PMH发送线性地址(或至少其经过转换的部分),以及线程ID,该线程ID对应于与对 对应于线性地址的存储器访问请求相关联的线程的标识符。 仍参考图1,PMH 10包括各种结构。可以看出,可以存在多个步行器,S卩,步行器 2〇r20n(-般地,步行器20)。在不同的实施例中,步行器的数量有变化。在某些实现中,可 以存在两个步行器,而在其他实现中,可以存在更大数量的步行器。步行器可以并行地执行 以对于不同的传入的线性地址执行页面行走。在某些实施例中,可以存在输入缓冲器(在 图1中为便于说明,未示出),以当步行器不可用时存储传入的线性地址和线程ID。 也如图1所示出的,并行步行器逻辑30可以耦合到步行器20。一般而言,并行步行器 逻辑30可以操作,以控制由步行器执行的页面步行,以确保正在被执行的多个并行页面步 行不会导致相同数据存储在缓存结构的不同条目中,因为这可以会导致逻辑和/或电气问 题。下面将进一步描述关于并行步行器逻辑30的进一步的细节。 仍参考图1,可以存在多个分页缓存。注意,取决于处理器的分页模式和配置, 这样的缓存的数量可能会变化。也在其他实施例中,这些分页缓存可能不存在,或在某些操 作模式下,可以不使用这些分页缓存。一般而言,每一个分页缓存都被配置成存储若干个条 目,每一个分页缓存都与存储器中的不同的分页结构相关联,以如此允许更快速的转换操 作。 在PMH中还存在额外的结构。具体地,如图1的实施例所示,可以使用共享控制逻辑70 来控制PMH的操作,包括由步行器执行的页面步行。还可以存在除分页缓存之外的其他存 储。在所示出的实现中,存在一个或多个控制寄存器50。在一个实施例中,这些寄存器可 以包括CR3寄存器,该CR3寄存器存储表示存储器中的开始分页结构的地址,步行将在该开 始分页结构处开始。还可以存在其他控制或配置寄存器,诸如CR0、CR4,扩展的特征启用寄 存器长模式寻址寄存器(EFER-LM)、扩展的页面表指针(EPTP)寄存器,等等。还可以存在 其他存储器,包括状态存储。在所示出的实施例中,可以存在多个状态寄存器60, 一个或多 个与给定分页缓存相关联。在一个实施例中,这些状态存储可以存储关于缓存的某些信息。 更进一步,这些缓存可以包括用于每一个步行器的字段(基于每个缓存地),以存储指出特 定步行器是否被允许将来自分页结构的被访问的信息存储到对应的分页缓存中的指示符, 如下文所描述的。注意,虽然被示为物理地(并且逻辑地)分离的结构,但是,可以理解,每 一个步行器都可以构成各种硬件,诸如寄存器、控制逻辑等等。 PMH 10可以耦合到包括各种分页结构的系统存储器。取决于由处理器实现的分页模 式,这样的结构的数量和大小会变化。下面将进一步描述关于代表性的分页结构层次结构 的进一步的细节。当通过页面步行执行完整的转换时,可以从PMH输出物理地址(PA)和对 应的属性及与物理地址相关联的其他状态信息。作为一个这样的示例,可以向TLB提供此 输出信息,用于存储在TLB的一个条目中,以提供线性地址-物理地址转换,以便被处理器 更快地访问。尽管在图1的实施例以这样高级别地表示,然而要理解本发明的范围不限于 此方面。 现参照图2,示出了根据本发明的实施例的用于执行页面行走的方法的流程图。如图 2所示,方法200可以在步行器的初始化过程中由诸如并行步行器逻辑之类的控制逻辑执 行,以便访问,以从存储器系统的分页结构获取物理地址的一个或多个部分。即,在允许步 行器开始页面步行过程以获取物理地址之前,该方法可以,例如,由PMH的并行步行器逻辑 执行。可以看出,方法200可以在框210中通过从一个或多个其他步行器接收输入数据来开 始。根据这里的讨论,假设步行器W是正在被初始化以执行页面步行的当前步行器,而步行 器W'是可能在或可能不在并行地执行页面步行的过程中的一个或多个其他步行器。如图2 的实施例所示,对于每一个其他步行器接收到的输入数据可以包括:步行器的状态(例如, 当前它是否正在执行步行,以及其他信息);当步行器活跃时,页面步行线性地址(例如,线 性地址的对应于诸如线性地址比特47:21之类的各种分页结构的至少某些部分);以及其 他步行器正在为其执行查询访问的线程的线程标识符。 仍参考图2,接下来控制进入菱形220,在那
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1