阻止针对存储器中同一页的多次转译后备缓冲器存取的利记博彩app

文档序号:6567996阅读:239来源:国知局
专利名称:阻止针对存储器中同一页的多次转译后备缓冲器存取的利记博彩app
技术领域
本发明涉及转译后备缓冲器。
背景技术
在支持分页虚拟存储器的处理器中,可使用占据处理器的虚拟地址空间的虚拟(或 "逻辑")地址来指定数据。虚拟地址空间通常可能大于系统中实际物理存储器的量。这 些处理器中的操作系统可以称为页的固定大小的区块管理物理存储器。
为了将虚拟页地址转译为物理页地址,处理器可搜索存储在系统存储器中的页表, 所述页表可能含有必要的地址转译信息。由于这些搜索(或"页表搜索")可能涉及存储 器存取,因此除非页表数据在数据高速缓冲存储器中,否则这些搜索可能较耗时。
因此处理器可使用一个或一个以上TLB (转译后备缓冲器,Translation Lookaside Buffer)执行地址转译。TLB是地址转译高速缓冲存储器,g卩,存储从虚拟地址到物理地 址的最近映射的小型高速缓冲存储器。处理器可在执行页表搜索和地址转译之后将物理 地址高速缓冲存储在TLB中。TLB通常可能含有最通常提到的虚拟页地址,以及与其相 关联的物理页地址。对于指令地址(指令-TLB或I-TLB)以及对于数据地址(数据-TLB 或D-TLB)可存在单独的TLB。
可存取TLB以确定指令的物理地址,或指令的一个或一个以上片段的物理地址。通 常可能已经针对指令或指令的片段产生虚拟地址。TLB可搜索其条目以查看虚拟地址的 地址转译信息是否包含在其条目的任一者中。
为了获得用于多个后续指令或用于指令的多个片段的地址转译信息,可针对每一单 个指令或针对指令的多个片段中的每一片段存取TLB。然而此过程可能必需使用一些功 率,因为每次TLB存取都需要消耗一些功率。

发明内容
在本发明的一个实施例中, 一种处理器可包含存储器、TLB以及TLB控制器。所述 存储器可经配置以将数据存储在多个页中。TLB可经配置以在由具有虚拟地址的指令存 取时搜索允许将所述虚拟地址转译为所述多个页中的一页的物理地址的地址转译信息, 并在所述TLB内找到所述地址转译信息时提供所述地址转译信息。TLB控制器可经配置
以确定当前指令和后续指令是否试图存取所述多个页内的同一页,且如果是这样,那么 阻止所述后续指令的TLB存取。TLB控制器还可经配置以对后续指令利用当前指令的 TLB存取的结果。
在本发明的另一实施例中, 一种处理器可包含存储器、TLB以及TLB控制器。所述 存储器可经配置以将数据存储在多个页中。TLB可经配置以在由具有虚拟地址的指令存 取时搜索所述TLB内的允许将所述虚拟地址转译为物理地址的地址转译信息,并在所述 TLB内找到所述地址转译信息时提供所述地址转译信息。TLB控制器可经配置以确定当 前指令和多个后续指令是否试图存取所述多个页内的同一页,且如果是这样,那么阻止 所述多个后续指令中一个或一个以上后续指令的TLB存取。TLB控制器还可经配置以对 所述多个后续指令中的一个或一个以上后续指令利用当前指令的TLB存取的结果。
在本发明的另一实施例中, 一种处理器可包含存储器以及TLB控制器。所述存储器 可经配置以将数据存储在多个页中。TLB可经配置以在由含有虚拟地址的指令存取时搜 索允许将虚拟地址转译为物理地址的地址转译信息,并在所述TLB内找到所述地址转译 信息时提供所述地址转译信息。所述处理器可进一步包含用于确定当前指令和后续指令 是否试图从所述存储器中所述多个页内的同一页存取数据的装置。所述处理器可进一步 包含用于在所述当前指令和所述后续指令试图从所述存储器中所述多个页内的同一页存 取数据时阻止所述后续指令的TLB存取的装置。所述处理器可进一步包含用于对后续指 令利用当前指令的TLB存取的结果的装置。
在本发明的又一实施例中, 一种控制对处理器中的TLB的存取的方法可包含接收当 前指令和后续指令。所述方法可包含确定所述当前指令和所述后续指令试图存取存储器 中多个页内的同一页。所述方法可包含阻止所述后续指令对所述TLB的存取。所述方法 可包含对后续指令利用当前指令的TLB存取的结果。
在本发明的另一实施例中, 一种处理器可包含存储器、TLB以及TLB控制器。所述 存储器可经配置以将数据存储在多个页中。TLB可经配置以在由具有虚拟地址的指令存 取时搜索所述TLB内的允许将虚拟地址转译为物理地址的地址转译信息,并在所述TLB 内找到所述地址转译信息时提供所述地址转译信息。TLB控制器可经配置以确定当前复 合指令和所述复合指令的任意数目的后续片段是否试图存取所述多个页内的同一页,且 如果是这样,那么阻止所述复合指令的所述多个后续片段中的一个或一个以上后续片段 的TLB存取。TLB控制器可经配置以对所述指令的所述多个后续片段利用所述复合指令 的第一片段的TLB存取的结果。


图1示意性说明此项技术中已知的为虚拟地址提供地址转译信息的转译后备缓冲器 (TLB)。图2是具有经配置以阻止对存储器中同一页的多次TLB存取的TLB控制器的多级管 线式处理器的图。
具体实施方式
以下结合附图陈述的具体实施方式
希望描述本发明的各种实施例,但不希望代表可 实践本发明的仅有实施例。
具体实施方式
包含特定细节,以便能详尽理解本发明。然而 所属领域的技术人员应了解,可在没有这些特定细节的情况下实践本发明。在一些实例 中,以框图形式展示众所周知的结构和组件,以便更清楚地说明本发明的概念。图1示意性说明在虚拟存储器系统中操作的常规TLB。如此项技术中已知,在虚拟 存储器系统中,通常可在虚拟(或"线性")地址空间与物理地址空间之间执行映射(或 转译)。虚拟地址空间通常指处理器产生的所有虚拟地址22的集合。物理地址空间通常 指驻存在物理存储器30中的数据的所有物理地址的集合,即,在存储器总线上提供的用 以对物理存储器30中的特定位置进行写入或读取的地址。在分页虚拟存储器系统中,可假定数据由通常称为页的固定长度单元31组成。虚拟 地址空间和物理地址空间可划分为邻接页地址的区块。每一虚拟页地址可提供虚拟页码, 且每一物理页地址可指示特定数据页31在存储器30内的位置。典型的页大小可例如为 约4千字节,但也可使用不同的页大小。物理存储器30中的页表20可含有对应于虚拟存储器系统的全部虚拟页地址的物理页地址,即,可含有虚拟地址空间中所有虚拟页地 址的虚拟页地址与相应物理页地址之间的映射。通常,页表20可含有多个页表条目(PTE)21,每一 PTE 21指向物理存储器30中对应于特定虚拟地址的页31。存取存储在物理存储器30中的页表20中的PTE 21通常可能需要存储器总线交易, 其在处理器循环时间和功率消耗方面可能成本较高。可通过存取TLB IO而不是物理存储 器30来减少存储器总线交易的数目。如先前解释的,TLB IO是存储虚拟地址与物理地 址之间的最近映射的地址转译高速缓冲存储器。TLB 10通常含有存储在页表20中的虚 拟到物理地址映射的子集。TLB IO通常可含有多个TLB条目12。每一 TLB条目12可 具有标签字段14和数据字段16。标签字段14可包含虚拟页地址的一些高阶位作为标签。 数据字段16可指示对应于带标签的虚拟页地址的物理页地址。当在程序执行期间指令具有需要转译为相应物理地址的虚拟地址22时,可存取TLB10以便在存储在TLB 10中的TLB条目12中查找虚拟地址22。虚拟地址22通常包含虚 拟页码,可在TLB 10中使用所述虚拟页码来查找相应的物理页地址。如果TLB 10在其TLB条目中含有对应于呈现给TLB的虚拟地址22中含有的虚拟 页码的特定物理页地址,那么发生TLB"命中",且可从TLB IO检索所述物理页地址。 如果TLB IO不含有对应于呈现给TLB的虚拟地址22中的虚拟页码的特定物理页地址, 那么发生TLB"未中",且可能必须执行对物理存储器30中的页表20的査找。 一旦根据 页表20确定物理页地址,就可将对应于虚拟页地址的物理页地址载入TLB 10,且可用 虚拟页地址22再次存取TLB 10。因为所需的物理页地址现在己经载入TLB 10,因此TLB 存取这次导致TLB "命中",且可在TLB 10的输出处产生最近载入的物理页地址。如上所述,分页虚拟存储器系统可在具有多级管线的管线式处理器中使用。如此项 技术中已知,管线化可通过设置硬件以使得可同时执行一个以上操作来增加处理器的性 能。以此方式,每单位时间执行的操作数目可增加,但完成任何给定操作所需的时间量 可保持相同。在管线式处理器中,处理器内的操作序列可划分为多个段或级,每一级并 行实施指令或操作的不同部分。所述多个级可被视为经连接以形成管线。通常,预期管 线中的每一级可在一个时钟循环中完成其操作。中间存储缓冲器通常可用于保存正从一 个级传递到下一级的信息。举例来说,三级管线式处理器可包含以下级指令获取、解 码和执行;四级管线可包含额外的回写级。管线化通常可利用连续指令流中的指令之间的并行性。在连续指令流或单一复合指 令的多个片段的连续流移动通过管线的级时,指令可在管线中的TLB存取点处存取TLB。每一指令可依次存取TLB,以便查找实施指令所请求的存储器数据存取所需的虚拟到物 理地址转译。为了确定连续指令流(或指令的多个片段的连续流)的虚拟地址是否包含 在TLB中的TLB条目中,一般作法可以是依次针对流中的每一指令或依次针对指令的每 一片段存取TLB。然而这可能必然付出大量功率的代价,因为每次TLB存取均消耗功率。在地址转译系统的一个实施例中,多个后续指令或一指令的多个片段的页边界的交 叉可在管线中的TLB存取点之前确定。如果确定没有越过任何页边界,那么可阻止多个 后续指令(或指令的片段)实施TLB存取,借此节省功率并提高效率。图2是说明在具有多级管线的管线式处理器中使用的地址转译系统100的功能图。 总体来看,地址转译系统100包含TLB 120以及控制TLB 120的操作的TLB控制器140, 所述操作包含对TLB 120的存取。在所说明的实施例中,TLB 120可为数据TLB(DTLB)。 TLB控制器140经配置以在确定对TLB 120的后续存取从存储器中的同一页寻找数据时
阻止对TLB 120的后续存取。TLB控制器140可为处理器中的中央处理单元(CPU)的 一部分。或者,TLB控制器140可位于处理器的核心内,和/或处理器的CPU附近。地址转译系统100可连接到物理存储器130,所述物理存储器130包含存储对应于 可由处理器产生的虚拟页地址的物理页地址的页表120。还可提供对存储在主存储器110 中的数据的子集提供高速存取的数据高速缓冲存储器117。可提供一个或一个以上指令寄 存器以存储一个或一个以上指令。图2中说明管线级的示范性序列200。图2中说明的级序列200包含获取级210、 解码级220、执行级230、存储器存取级240以及回写级250。为说明性目的展示图2中 的示范性序列,且具有较少或较多数目的管线级的许多其它替代序列是可能的。硬件可 包含至少一个获取单元2U,其经配置以从指令存储器获取一个或一个以上指令;至少 一个解码单元221,其经配置以对获取单元211获取的所述一个或一个以上指令进行解 码;至少一个执行单元231,其经配置以执行由解码单元221解码的所述一个或一个以 上指令;至少一个存储器存取单元241,其经配置以存取存储器130;以及至少一个回写 单元251,其经配置以回写从存储器130检索的数据。管线可包含TLB存取点241,在 该点处一个或一个以上指令可存取TLB 120以搜索地址转译信息。图2说明在管线的适当级处接收的当前指令112和后续指令114。当前指令112和后 续指令114可为数据存取指令。地址转译系统100可包含地址产生器(未图示),其产生 指令112的虚拟地址和指令114的虚拟地址。指令112和指令114可为寻找TLB 120中 的连续位置或驻存在同一页内的位置的连续指令。或者,指令U2和指令114可为单一 复合指令的多个片段。如果确定一个或一个以上后续指令或指令的后续片段试图从存储器130中的同一页 存取数据,那么可由TLB控制器140阻止后续指令(或指令的片段)的TLB存取。如先 前解释的,与针对每个指令对TLB 120实施TLB存取以便确定是否可在TLB 120中找到 必需的地址转译信息相比,此方法可节省功率并提高效率。在所说明的实施例中,TLB控制器140经配置以确定当前指令112和后续指令114 是否试图存取来自存储器130中的同一页的数据。举例来说,关于由一个或一个以上后 续指令(例如,图2中的指令114)试图进行的后续数据存取的信息可由TLB控制器140 根据当前指令(例如,图2中的指令112)获得。在一个实施例中,TLB控制器140可 经配置以仅仅通过检査当前指令本身并从其提取关于由当前指令112之后的后续指令试 图进行的数据存取的信息,来弄清楚对于当前指令之后的一个或一个以上后续指令来说
后续数据存取将是什么。关于后续数据存取的信息可由当前指令112的类型提供。举例来说,当前指令112 的指令类型可为以下类型之一"载入"、"存储"或"高速缓冲存储器操纵"。 一些类型 的指令可界定CPU是否需要到达数据高速缓冲存储器117或主存储器130。在一个实施 例中,当前指令112可为针对数据存取仍未到达物理存储器130中的页的末尾的迭代操 作的指令。在一个实施例中,TLB控制器140可经配置以在沿着管线的在TLB存取点119以上 的时间点处确定后续指令114 (在指令112之后)的虚拟地址。TLB控制器140可经配 置以对指令114的虚拟地址与指令112的虚拟地址作出比较,以便确定与由指令112的 虚拟地址寻找的页相比,指令114的虚拟地址是否将试图存取同一页。换句话说,TLB 控制器140可比较虚拟地址,以便确定与由指令114试图存取的存储器中的页的物理页 地址相比,由指令112试图存取的存储器中的页是否具有相同的物理页地址。TLB控制器140可经配置以在管线中在TLB存取点241以上的点处确定指令112之 后的多个后续指令的虚拟地址。TLB控制器140还可经配置以对所述多个后续指令的虚 拟地址与指令112的虚拟地址作出比较,以便确定与由指令112的虚拟地址寻找的页相 比,所述多个后续指令的虚拟地址是否将全部试图存取同一页(即,存储器中具有相同 物理页地址的页)。如果TLB控制器140确定当前指令112和一个或一个以上后续指令试图存取来自存 储器130中的同一页的数据,那么TLB控制器140可阻止所述一个或一个以上后续指令 的TLB存取,因为TLB控制器140已经预先知道接下来的几次TLB存取将全部命中存 储器130中的同一页。换句话说,TLB控制器140在TLB存取点241之前确定是否对于 后续指令(或指令的后续片段)发生页边界的越过,并在没有越过页边界时阻止TLB存 取发生。通过阻止可能仅产生重复且冗余的信息的TLB存取,通过在TLB存取点241 之前发现所有这些TLB存取每次将仅仅命中物理存储器130中的同一页,即仅仅提供相 同信息,可节省很多功率。如果TLB控制器140确定后续指令和当前指令112试图从存储器130中的同一页存 取数据,那么TLB控制器140可经配置以对当前指令112之后的一个或一个以上后续指 令使用先前由TLB 120为当前指令112提供的地址转译信息。在一个实施例中,TLB控制器140可经配置以通过辨别指令类型以及所述特定类型 的指令如何工作来确定指令112的虚拟地址与指令112之后的多个后续指令中每一者的
虚拟地址之间的关系。作为一个实例,TLB控制器140可能能够基于当前指令的指令类 型来确定所述多个后续指令中每一者将按顺序编码,即,将寻找通过预定数目(例如,4 个)的增量字节来表征的地址。提供所揭示实施例的先前描述以使所属领域的技术人员能够制作或使用本发明。所 属领域的技术人员将容易了解对这些实施例的各种修改,且在不脱离本发明精神或范围 的情况下可将本文界定的一般原理应用于其它实施例。因此,不希望本发明限于本文所 示的实施例,而是希望其符合与权利要求书一致的完整范围,其中以单数形式对元件的 参考并不希望表示"一个且仅一个"(除非具体如此规定),而是希望表示"一个或一个 以上"。整个本发明中描述的各个实施例的对所属领域的一般技术人员己知或稍后已知的 元件的所有结构和功能等效物均以引用的方式明确并入本文,且希望由权利要求书所涵 盖。而且,本文揭示的任何内容均不希望专用于公众,无论此揭示是否在权利要求书中 明确陈述。除非使用短语"用于…的装置"来明确陈述要素,或在方法项的情况下,使 用短语"用于...的步骤"来陈述要素,否则不应在35U.S.C. §112第六段的条款下解释权 利要求要素。
权利要求
1.一种处理器,其包括存储器,其经配置以将数据存储在多个页中;转译后备缓冲器(TLB),其经配置以在由具有虚拟地址的指令存取时搜索允许将所述虚拟地址转译为所述多个页中的一页的物理地址的地址转译信息,并在所述TLB内找到所述地址转译信息时提供所述地址转译信息;以及TLB控制器,其经配置以确定当前指令和后续指令是否试图存取所述多个页内的同一页,且如果是这样,那么阻止所述后续指令的TLB存取。
2. 根据权利要求l所述的处理器,其中所述当前指令包含关于所述后续指令的信息, 且其中所述TLB控制器进一步经配置以使用包含在所述当前指令中的所述信息,以 便确定所述当前指令和所述后续指令是否试图存取所述多个页内的同一页。
3. 根据权利要求1所述的处理器,其中所述TLB控制器进一步经配置以对针对所述当 前指令产生的虚拟地址与针对所述后续指令产生的虚拟地址进行比较,以便确定所 述当前指令和所述后续指令是否试图存取所述多个页内的同一页。
4. 根据权利要求3所述的处理器,其中所述TLB控制器进一步经配置以确定针对所述 当前指令产生的所述虚拟地址和针对所述后续指令产生的所述虚拟地址是否转译 为所述多个页内的同一页的物理地址。
5. 根据权利要求2所述的处理器,其中所述TLB控制器进一步经配置以在所述存储器 存取控制器确定所述当前指令和所述后续指令试图从所述多个页内的所述同一页 存取数据时,对所述后续指令使用所述TLB已经为所述当前指令提供的地址转译信 息。
6. 根据权利要求1所述的处理器,其中所述当前指令包括针对迭代操作的指令。
7. 根据权利要求1所述的处理器,其中所述当前指令和所述后续指令包括单一复合指 令的连续片段。
8. 根据权利要求1所述的处理器,其中所述TLB经配置以存储多个TLB条目,所述 多个TLB条目中的每一者均包含所述存储器中所述多个页中一页的虚拟地址、物理 地址以及用于将所述虚拟地址转译为所述物理地址的地址转译信息,且其中所述 TLB进一步经配置以在由含有所述虚拟地址的指令存取时,在所述多个TLB条目内 搜索所述地址转译信息。
9. 根据权利要求1所述的处理器,其中所述TLB控制器进一步经配置以在所述后续指 令的TLB存取点之前确定所述当前指令和所述后续指令是否试图存取所述多个页 内的同一页。
10. 根据权利要求l所述的处理器,其中所述当前指令和所述后续指令包括试图循序存 取所述存储器的连续指令。
11. 根据权利要求l所述的处理器,其中所述处理器包括多级管线式处理器。
12. 根据权利要求11所述的处理器,其中所述多级管线式处理器至少包括获取级、解码 级、执行级、存储器级以及回写级。
13. 根据权利要求12所述的处理器,其进一步包括至少一个获取单元,其经配置以从指令寄存器获取一个或一个以上指令; 至少一个解码单元,其经配置以对所述获取单元获取的所述一个或一个以上指令 进行解码;以及至少一个执行单元,其经配置以执行由所述解码单元解码的所述一个或一个以上 指令。
14. 一种处理器,其包括存储器,其经配置以将数据存储在多个页中;TLB,其经配置以在由具有虚拟地址的指令存取时搜索所述TLB内的允许将所述 虚拟地址转译为物理地址的地址转译信息,并在所述TLB内找到所述地址转译信息 时提供所述地址转译信息;以及TLB控制器,其经配置以确定当前指令和多个后续指令是否试图存取所述多个页 内的同一页,且如果是这样,那么阻止所述多个后续指令中的所述一个或一个以上 后续指令的TLB存取。
15. —种处理器,其包括-存储器,其经配置以将数据存储在多个页中;TLB,其经配置以在由具有虚拟地址的指令存取时搜索允许将虚拟地址转译为物 理地址的地址转译信息,并在所述TLB内找到所述地址转译信息时提供所述地址转 译信息;确定装置,其用于确定当前指令和后续指令是否试图从所述存储器中的所述多个 页内的同一页存取数据;以及阻止装置,其用于在所述当前指令和所述后续指令试图从所述存储器中的所述多 个页内的同一页存取数据时阻止所述后续指令的TLB存取。
16. —种控制对处理器中的TLB的存取的方法,所述方法包括接收当前指令和后续指令;确定所述当前指令和所述后续指令是否试图存取存储器中的多个页内的同一页; 以及阻止所述后续指令对所述TLB的存取。
17. 根据权利要求16所述的方法,其中所述当前指令包含关于所述后续指令的信息, 且所述方法进一步包括使用包含在所述当前指令中的所述信息来确定所述当前指 令和所述后续指令是否试图存取所述多个页内的所述同一页。
18. 根据权利要求16所述的方法,其中所述确定所述当前指令和所述后续指令试图存 取存储器中的同一页的动作包括针对所述当前指令产生第一虚拟地址和针对所述 后续指令产生第二虚拟地址,并对所述第一虚拟地址与所述第二虚拟地址进行比 较。
19. 根据权利要求18所述的方法,其中所述对所述第一虚拟地址与所述第二虛拟地址 进行比较的动作包括确定所述第一虚拟地址和所述第二虚拟地址是否转译为指示 所述多个页内的同一页的物理地址。
20. 根据权利要求16所述的方法,其进一步包括在确定所述当前指令和所述后续指令 试图从所述多个页内的同一页存取数据之后,对所述后续指令使用所述TLB已经为 所述当前指令提供的地址转译信息。
21. 根据权利要求l所述的处理器,其进一步包括经配置以将指令存储在多个页中的存 储器。
22. 根据权利要求1所述的处理器,其中所述TLB控制器进一步经配置以对所述当前指 令利用前一指令的所述TLB存取的结果。
23. 根据权利要求1所述的处理器,其中所述处理器包括多个层级的TLB。
全文摘要
一种处理器包含经配置以将数据存储在多个页中的存储器、TLB以及TLB控制器。所述TLB经配置以在由具有虚拟地址的指令存取时搜索允许将所述虚拟地址转译为所述多个页中一页的物理地址的地址转译信息,并在所述TLB内找到所述地址转译信息时提供所述地址转译信息。所述TLB控制器经配置以确定当前指令和后续指令是否试图存取所述多个页内的同一页,且如果是这样,那么阻止所述后续指令的TLB存取,并对所述当前指令利用前一指令的所述TLB存取的结果。
文档编号G06F12/10GK101213526SQ200680023618
公开日2008年7月2日 申请日期2006年6月27日 优先权日2005年6月29日
发明者布赖恩·约瑟夫·科佩克, 托马斯·安德鲁·萨托里乌斯, 杰弗里·托德·布里奇斯, 维克托·罗伯茨·奥格斯堡, 詹姆斯·诺里斯·迪芬德尔费尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1