CN107533513A - 突发转换后备缓冲器 - Google Patents

突发转换后备缓冲器 Download PDF

Info

Publication number
CN107533513A
CN107533513A CN201680019902.7A CN201680019902A CN107533513A CN 107533513 A CN107533513 A CN 107533513A CN 201680019902 A CN201680019902 A CN 201680019902A CN 107533513 A CN107533513 A CN 107533513A
Authority
CN
China
Prior art keywords
burst
change data
item
data unit
tlb
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680019902.7A
Other languages
English (en)
Other versions
CN107533513B (zh
Inventor
J·E·波达艾玛
P·C·J·维尔齐恩斯基
A·米雷特斯凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107533513A publication Critical patent/CN107533513A/zh
Application granted granted Critical
Publication of CN107533513B publication Critical patent/CN107533513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1048Scalability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/654Look-ahead translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Abstract

接收包含虚拟地址的比较字。在确定了所述比较字与突发项标记匹配之后,即刻选择候选匹配转换数据单元。所述选择来自与所述突发项标记相关联的多个转换数据单元,且至少部分基于所述虚拟地址的至少一个位。比较所述候选匹配转换数据单元的内容与所述比较字的至少一部分。在匹配之后,即刻产生命中。

Description

突发转换后备缓冲器
根据35U.S.C.§119要求优先权
本专利申请要求2015年4月15日的名称为“突发转换后备缓冲器(BURSTTRANSLATION LOOK-ASIDE BUFFER)”且让渡给本受让人且特此以引用的方式明确并入本文中的第62/148,121号临时申请的优先权。
技术领域
本申请大体上涉及存储器管理。
背景技术
处理器可通过首先产生在存储器中目标位置的“虚拟地址”而非实际物理地址来存取存储器。为了存取目标位置,虚拟地址可映射到物理地址。虚拟地址到物理地址(“VA到PA”)映射可存储于高速缓冲中,且可例如在例如操作系统的控制下动态地更新。虚拟寻址可提供各种益处,例如物理存储器空间的动态分配、防止安全存储器空间的未经授权存取、和防止无意中使用物理存储器中的重叠空间的多个程序。虚拟寻址还可例如使得不相连的物理存储器空间能够向软件程序呈现为相连的空间。
常规虚拟寻址技术可将物理存储器分段成块或“页面”,块或页面可由“页码”标识。VA到PA映射提供虚拟页码与物理页码之间的关系,且映射信息存储于“页表”的项中。可通过“页表查询”过程使用虚拟地址的位(例如“VA标记位”)的子集来搜索页表。然而,如果对于每一存储器存取需要页表查询,那么将存在处理开销。保存对页项(例如最近使用的项)的高速缓冲是用于减少页表查询的一个常规技术。常常被称作“转换后备缓冲器”或“TLB”的高速缓冲可具有N个项。每一TLB项可包含保存可使用VA标记位搜索到的“标记位”的“标记”,且可包含物理地址,例如VA标记位映射到的物理页码。当CPU产生虚拟地址时,TLB使用VA标记位来在N个项中搜索标记位。如果存在匹配,那么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中的一个布置和一个实例突发项。
图3说明根据本公开的方面的具有一个实例突发项的一个示范性突发项TLB中的逻辑流程。
图4说明根据本公开的方面的另一示范性突发项TLB中的一个布置和一个实例替代性突发项。
图5说明根据本公开的方面的另一示范性突发项TLB中的一个布置,和一个实例替代性突发项。
图6说明根据本公开的方面的保存一组实例突发项的一个示范性突发项TLB中的突发解码和匹配功能的一个配置。
图7展示根据各方面的一个突发项TLB过程中的实例操作的流程图。
图8展示根据本公开的方面的高等级映射图,其具有突发项TLB的第一阶段映射和第二阶段映射。
图9说明根据本公开的方面的突发项TLB中的突发项的一个实例产生中的逻辑流程。
图10说明根据本公开的方面的突发项TLB中的突发项的一个实例替代性产生的逻辑流程。
图11说明可在其中有利地使用本公开的一或多个方面的示范性无线装置。
具体实施方式
在针对于具体示范性方面的以下描述和相关图式中公开各方面。可在不脱离所公开概念的范围的情况下设计出替代性方面。在某些所描述实例实施方案中,标识出可从已知常规技术取得各种组件结构和操作的部分并接着根据一或多个方面而对其进行布置的个例。在此类情况下,省略已知常规组件结构和/或操作的部分的内部细节以有助于避免潜在地混淆所公开概念。
本文所使用的术语仅仅是出于描述展示特定方面的实例的目的,且并不意图是限制性的。
词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面未必理解为比其它方面优选或有利。同样,术语“本发明的方面”并不要求所有实践包含所论述特征、优点或操作模式。
如本文中所使用,除非上下文另外明确指示,否则单数形式“一”和“所述”意图还包含复数形式。应理解,当在本文中使用时,术语“包括”和/或“包含”指定所叙述特征、整数、步骤、操作、元件和/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
就例如各种过程中或与其相关的操作和步骤来描述某些方面。应理解,除了在另外明确地陈述或从特定上下文变得明晰的个例中之外,此类操作和步骤的所描述次序仅仅是出于实例的目的,且未必是对可根据各种示范性方面而在实践中应用的操作或步骤的次序的限制。
另外,参考流程图描述各种过程中的操作。应理解,流程图未必意味着由一个框展示的操作终止或无法在由另一框展示的操作开始之后继续。
就实例操作、步骤、动作和可由例如计算装置或计算装置的元件执行或在所述计算装置或所述元件的控制下执行的操作、步骤和动作的序列来描述某些方面。一般的技术人员应理解,在阅读了本公开之后,此类操作、步骤、动作、序列和其组合可由具体电路(例如专用集成电路(ASIC))执行、在具体电路的控制下执行、由正由一或多个处理器执行的程序指令执行、或由具体电路与处理器两者的组合执行。
因此,此类技术人员应了解,操作、步骤、动作、序列和其其它组合可完全体现于在其中存储有计算机指令的对应集合的任何形式的计算机可读存储媒体内,所述计算机指令在被执行时可致使相关联处理器直接或间接地执行本文中所描述的操作、步骤、动作、序列和其它组合。因此,各个方面可以许多不同形式体现,所有形式预期在所要求主题的范围内。
图1展示逻辑配置,和常规转换后备缓冲器(TLB)102的实例操作。常规TLB 102展示为存储四个常规TLB项104-0、104-1、104-2和104-3,所述TLB项将统称为“常规TLB项104”(未在图1上单独出现的标签)。四个常规TLB项104的量是任意实例。四个常规TLB项104中的每一个包含TLB标记和TLB映射数据。
四个常规TLB项104的TLB标记分别标记为TLB标记0、TLB标记1、TLB标记2和TLB标记3,且为方便起见,将统称为“TLB标记X”(未在图1上单独出现的标签)。常规TLB项104的TLB映射数据分别标记为TLB数据0、TLB数据1、TLB数据2和TLB数据3,且将统称为“TLB数据X”(未在图1上单独出现的标签)。
根据对所属领域的技术人员已知的常规技术,TLB标记X中的每一个可识别TLB数据X可对于其是有效转换数据的虚拟地址块。在图1实例中,TLB标记0与虚拟地址块A0匹配,TLB标记1与虚拟地址块A1匹配,且以类似方式,TLB标记2和TLB标记3分别与虚拟地址块A2和A3匹配。虚拟地址块A0、A1、A2和A3将统称为“虚拟地址块AX”(未在图1上单独出现的标签)。在图1实例中,虚拟地址块AX中的每一个具有图1中展示的4千字节(KB)的大小(根据相连虚拟地址)。大小可被称作“区组大小”。
参考图1,常规TLB 102可提供虚拟地址的快速转换,但只有在虚拟地址在保存有效常规TLB项104的虚拟地址块AX中时才如此。虚拟地址在虚拟地址块AX中的机率,即,TLB“命中”的机率至少部分取决于有效常规TLB项104的数目。尽管在各种应用中,在给定区组大小下实现所要概率的TLB命中可引起项的数目过大。如在本公开中先前所描述,设计能够保存大量常规TLB项的常规TLB高速缓冲可引发成本,例如芯片面积和传播延迟。
公开了方法和系统,其包含可提供S个单个TLB项的可快速搜索集合以及其它特征的TLB高速缓冲,每一TLB项针对多个虚拟地址块保存VA到PA映射。为方便起见,在本文中对根据所公开方面的TLB高速缓冲方法、系统和过程的实例的描述将非排外地使用“突发TLB高速缓冲”和“突发TLB项”的标签。应理解,“突发TLB高速缓冲”和“突发TLB项”是不具有内在含义且不限制任何所公开方面的范围的所臆造标签。
在根据一或多个方面的一个突发TLB高速缓冲中,每一突发TLB项可包含TLB标记和一组M个经特别配置的TLB字段。TLB标记将替代地称为“突发TLB标记”。经特别配置的TLB字段将替代地统称为“转换数据单元(translation data units)”,且通常称为“转换数据单元(a translation data unit)”。应理解,“转换数据单元”和“突发TLB标记”是不具有内在含义且不限制任何所公开方面的范围的所臆造标签。
在一方面中,突发TLB项的M个转换数据单元中的每一个可保存M个虚拟地址块中的不同虚拟地址块的VA到PA转换的信息。因此,每一突发TLB项可保存M个虚拟地址块的VA到PA映射信息。相比之下,常规TLB将针对M个虚拟地址块需要M个TLB项。
在一方面中,突发TLB标记可包含识别M个转换数据单元针对其共同地保存VA到PA映射信息的总虚拟地址范围的信息。
在一个方面中,M个转换数据单元中的每一个可包含转换数据有效性旗标。转换数据有效性旗标可以是例如位。在一方面中,转换数据有效性旗标可以是能在转换数据有效旗标与转换数据无效旗标之间切换的。在一方面中,每一突发TLB项的突发TLB标记可包含突发项有效性旗标。在一方面中,突发项有效性旗标可以是能在突发项有效旗标,例如逻辑“0”或“1”与突发项无效旗标,例如逻辑“1”或“0”之间切换的。在一个方面中,突发项有效旗标可作为M个转换数据单元有效旗标的逻辑“或”产生。在另一方面中,可选择性地独立于转换数据单元有效旗标而设定突发项有效旗标。
在一方面中,除了本文中所描述的特征以外,每一突发TLB项数据还可含有常规类型和类别的转换信息。实例包含存储器页面属性,可高速缓存性/可共享性和存取许可。这些和其它常规类型和类别的转换表信息对于所属领域的技术人员是已知的,且因此省略了其它详细描述。
在根据一或多个方面的一个实例突发TLB中,M可以是例如二。假设M是二,一个实例突发TLB中的每一突发TLB项可包括第一转换数据单元、第二转换数据单元和突发项标记。在一方面中,此实例的突发项有效旗标可作为第一TLB转换数据单元和第二TLB转换数据单元的相应转换数据有效性旗标的逻辑“或”而产生。仅出于说明,等于二的M是任意实例。举例来说,而非限制,M可等于四或大于四。
图2说明根据各方面的包含一个突发项TLB 202的布置200。突发项TLB 202可保存一定量的S个突发TLB项,例如个别地标记为204-1、204-2…204-s…204-S的实例。出于描述的目的,突发TLB项201-1、204-2…204-S将替代地统称为“突发TLB项204”(未在图2上单独可见的标签)。也出于描述的目的,通过放大视图展示突发TLB项204中的任意一个,每一突发TLB项可包括突发TLB标记206,且在假设M是四的情况下,包括第一转换数据单元208-1、第二转换数据单元208-2、第三转换数据单元208-3和第四转换数据单元208-4。第一转换数据单元208-1、第二转换数据单元208-2、第三转换数据单元208-3和第四转换数据单元208-4将统称为“转换数据单元208”(未在图2中单独可见的标签)。
出于实例的目的,将假设4KB的区组大小,这意味着转换数据单元208中的每一个可保存4KB VA地址的块的VA到PA映射。将出于实例的目的而假设转换数据单元208保存四个相连VA块的VA到PA映射。进一步关于所述实例,第一转换数据单元208-1的在图2上标记为“BD1”的内容可以是VA“0”到VA“4KB-1”的VA到PA映射的信息,其中VA“0”可以是用作“零”地址的任意虚拟地址,出于描述的目的,其它VA偏移到“零”地址。第一转换数据单元208-2的在图2上标记为“BD2”的内容可以是VA“4KB”到“8KB-1”的VA到PA映射的信息。第一转换数据单元208-3的在图2上标记为“BD3”的内容可以是VA“8KB”到“12KB-1”的VA到PA映射的信息。最后,第一转换数据单元208-4的在图2上标记为“BD4”的内容可以是VA“12KB”到“16KB-1”的VA到PA映射的信息。突发TLB标记206可包含识别由四个转换数据单元208横跨的VA范围的信息,对于上文所描述的的实例范围和实例4KB粒度,VA范围将是VA“0”到VA(16K-1)。应理解,如在本公开中所使用,标签“BTAG”、“BD1”、“BD2”、“BD3”和“BD4”不具有内在含义,且不限制所公开方面中的任一个的范围。
图3展示可由任意突发项TLB 204-s提供的实例VA到PA映射300,如上文参考图2所描述。参考图3,四个转换数据单元208可将标记为“A0”、“A1”、“A2”和“A3”的4KB VA的四个相连VA块映射到对应的四个PA块,标记为“P0”、“P1”、“P2”和“P3”,每个PA块4KB。如所展示,四个PA块未必相连,且未必按VA块A0、A1、A2和A3定序(根据位置)。参考图3,第一转换数据单元208-1的BD1内容可以是将VA地址块A0(0到4KB-1)映射到4KB PA块P0的信息。第二转换数据单元208-2的BD2内容可以是将VA地址块A1(4KB到8KB-1)映射到4KB PA块P1的信息。第三转换数据单元208-3的BD3内容可以是将VA地址块A2(8KB到12KB-1)映射到4KB PA块P2的信息,且第四转换数据单元208-4的BD4内容可以是将VA地址块A3(12KB到16KB-1)映射到4KB PA块P3的信息。
图4说明根据本公开的方面的具有R KB区组大小的一个突发项TLB中的一个布置400。为方便起见,图4布置400展示为图2布置200的变化。在布置400中,第一转换数据单元208-1的在图4上标记为“BDR1”的内容可以是范围介于虚拟地址(VA)“0”到VA“R KB-1”的虚拟地址的VA到PA转换的信息。第二转换数据单元208-2的在图4上标记为“BDR2”的内容可以是虚拟地址(VA)“R”到VA“2R KB-1”的VA到PA转换的信息。分别标记为“BDR3”、“BDR4”的第三转换数据单元208-3的内容和第四转换数据单元的的内容可以是VA“2R KB”到“3R KB-1”和VA“3RKB”到“4R KB-1”的VA到PA映射的信息。在一方面中,突发TLB标记206的在图4上标记为“BTGR”的内容可包含突发TLB项地址范围信息(未在图4中可见)。突发TLB项地址范围信息可指示每一TLB项204-s中的四个转换数据单元208的集体内容,即BDR1、BDR2、BDR3和BDR4包括VA“0”到VA“4R KB-1”的虚拟地址的范围的VA到PA映射信息。应理解,如在本公开中所使用,标签“BTGR”、“BDR1”、“BDR2”、“BDR3”和“BDR4”不具有内在含义,且不限制所公开方面中的任一个的范围。
参考图2和4,描述相应布置200和400,其中M等于四,即,具有四个转换数据单元208。在布置200和400两者中,突发TLB项204中的每一个可因此保存用于转换四个虚拟地址块的信息。
图5展示一个实例一般布置500,其具有示范性突发项TLB 502,其保存个别地标记为504-1、504-2…504-S的T量的突发TLB项。出于描述的目的,突发TLB项504-1、504-2…504-t…504-T将替代地统称为“突发TLB项504”(未在图5上单独可见的标签)。突发TLB项504的配置可一般是根据突发TLB项204的配置,如上文所描述,其中与具体的量四相比,每一突发TLB项504保存一般量的M个转换数据单元。如先前描述,M可以是二的任何整数幂。
可表示所有突发TLB项504的突发TLB项504-t的放大视图展示其包括突发TLB标记506、第一转换数据单元508-1、第二转换数据单元508-2…第m转换数据单元508-m…和转换数据单元508-M(统称为“转换数据单元508(未在图5中单独可见的标签))”。转换数据单元508的相应内容标记为“BE1”、“BE2”…“BEm”…“BEM”。突发TLB标记506的内容标记为“BTG”。应理解,标签“BE1”、“BE2”…“BEm”…“BEM”不具有内在含义,且不限制所公开方面中的任一个的范围。
假设特定粒度例如但不限于4KB,每一突发TLB项504的突发TLB标记506的内容BTG可指示横跨M乘以那个粒度,例如M乘以4KB的虚拟地址范围。较大量M可提供较小粒度,或可提供集合地通过其M个转换数据单元508保存较大范围的虚拟地址的VA到PA映射的信息的每一个突发TLB项504。稍后在本公开中,如将在更详细地阅读了用于搜索并选择突发TLB项的逻辑的描述之后进一步理解,且针对转换数据单元508当中进行选择,较大量M可具有例如芯片面积和传播延迟的成本。
图6说明根据一或多个方面的突发TLB 600的特征。根据一方面,TLB 600可包含突发TLB数据集缓冲器602。TLB数据集缓冲器602可保存突发TLB数据集的集合,突发TLB数据集包括例如第一突发TLB数据集604-1、第二突发TLB数据集604-2…和第S突发TLB数据集604-S,所述突发TLB数据集将出于描述的目的而替代地统称为“突发TLB数据集604”(未在图6中作为单独标签出现)。突发TLB数据集604中的每一个可一般经配置为参考图2所描述的突发TLB项204中的每一个的四个转换数据单元208。因此,突发TLB数据集604中的每一个可包含M个转换数据单元,M是如上文所描述的2的整数幂。对此实例,M假设为四。四个转换数据单元包括第一转换数据单元605-1、第二转换数据单元605-2、第三转换数据单元605-3和第四转换数据单元605-4,其统称为“转换数据单元605”(未在图6中作为单独标签出现)。一般来说,可根据在本公开中先前描述的转换数据单元208和508而对转换数据单元605进行配置。在一方面中,四个转换数据单元605中的每一个可包含转换数据有效性旗标,如在本公开中先前标识。
参考图6,突发TLB标记缓冲器606可保存与每一突发TLB数据集604相关联的突发TLB标记,例如第一突发TLB标记608-1、第二突发TLB标记608-2…和第S突发TLB数据集608-S,所述突发TLB标记将出于描述的目的而替代地统称为“突发TLB标记608”(未在图6中作为单独标签出现)。第一突发TLB标记608-1和第一突发TLB数据集604-1组合起来可形成第一突发TLB项(未在图6中单独地标记),第一突发TLB项又可用作参考图2所描述的第一突发TLB项204-1。同样地,第二突发TLB标记608-2和第二突发TLB数据集604-2组合起来可形成第二突发TLB项(未在图6中单独地标记),第二突发TLB项又可用作参考图2所描述的第二突发TLB项204-2。在一方面中,突发TLB标记608可各自包含例如在本公开中先前描述的突发TLB项有效性旗标(未在图6中明确地可见)。
参考图6,突发TLB 600可包含突发TLB项选择逻辑610。突发TLB项选择逻辑610可经配置使得在接收到虚拟地址并任选地接收到其它信息(例如上下文信息)之后,突发TLB项选择逻辑610可即刻形成第一步骤搜索比较字,并比较那个第一步骤搜索比较字与突发TLB标记608中的每一个。举例来说,第一步骤搜索比较字可以是被指定接收到的虚拟地址的位的上文所描述的“VA标记位”。在一方面中,可通过两个条件的一致确定“匹配”,条件可包括:a)VA标记位落到突发TLB标记608中的至少一个中保存的地址范围内(与其匹配);和b)对应于匹配突发TLB标记608的TLB项中的至少一个有效。可从在本公开中先前描述的突发项有效性旗标确定后一条件。
参考图6,在一方面中,突发TLB项选择逻辑610可经配置以将与一或多个匹配的突发TLB标记608相关联的相应地址传达到地址解码器612。突发TLB数据集604可布置为行,且因此,地址解码器612可配置为行解码器。在如此配置的情况下,在从突发TLB项选择逻辑610接收到每一地址之后,地址解码器612可即刻选择突发TLB数据集604作为行。行将包含M个转换数据单元,且在图6实例中,M等于四个。
在一方面中,列选择/行解码器614可经配置以从虚拟地址接收位,被称为“选择位”,并基于选择位而选择四个转换数据单元605(或针对除四以外的M而选择其它多个转换数据单元)中的一个作为候选匹配转换数据单元。选择可基于虚拟地址的所指定位,且将替代地成为“选择位”。在一方面中,选择位的数目可以是M的对数底2。因此,如果M是二,那么需要一个选择位,且如果M是四,那么需要两个选择位。在一方面中,突发TLB 600可包含匹配逻辑616,匹配逻辑616可经配置以比较存储于候选匹配转换数据单元中的信息以由突发TLB项选择逻辑610使用的第一步骤搜索比较字或其预定部分。作为说明,假设接收18位虚拟地址的实例突发TLB(600)。此实例中的搜索比较字将由虚拟地址的最高有效六个位(虚拟地址地址位[15:12])组成。假设此实例搜索比较字的任意位值是“001010”。还假设第二突发TLB标记608-2与“001010”的此实例比较字匹配。此实例的TLB 600的操作可包含突发TLB项选择逻辑610使用“001010”来选择第二突发项TLB标记608-2。选择是基于比较字位“001010”与含有与搜索比较字相关联的虚拟地址的第二突发TLB标记608-2地址范围值匹配。使用来自第二突发TLB标记608-2的信息,地址解码器612可选择第二突发TLB数据集604-2并将那第二突发TLB数据集604-2提供给列选择/行解码器614。列选择/行解码器614可接着使用来自虚拟地址的选择位来选择第二突发TLB转换数据集的四个转换数据单元605中的一个,所述选择位包括此实例的两个位(M是四)。在根据一或多个方面的操作中,如果选定的转换数据单元605有效且与含有与搜索比较字相关联的虚拟地址的地址范围相关,那么匹配逻辑616将至少部分识别到匹配。由框618表示的功能性可接着使用存储于选定转换数据单元中的转换信息来应用虚拟地址的VA到PA转换的操作。如果匹配逻辑616未检测到匹配,那么可报道TLB未命中。
参考图6,在一方面中,出于描述的目的,突发TLB项选择逻辑610的针对与比较字匹配的突发项TLB标记608而搜索突发TLB标记缓冲器606的上文所描述的操作可被称为“第一步骤搜索”。列选择/行解码器614和匹配逻辑616的上文所描述的操作可被称为“第二步骤搜索”。针对第一步骤搜索所使用的比较字(例如虚拟地址的经指派位)的部分可被称为“第一步骤搜索比较字”。针对第一步骤搜索所使用的比较字(例如虚拟地址的经指派位)的部分可被称为“第二步骤搜索比较字”。应理解,可完全或部分在突发TLB 600外部实施形成第一步骤搜索比较字。
在一方面中,比较第一步骤搜索比较字与突发TLB标记608的操作可产生与多个突发TLB标记608的匹配。在另一方面中,突发TLB项选择逻辑610可经配置,使得在多个匹配的情况下,依序第一步骤搜索检索匹配的突发TLB标记608中的第一个。第一步骤搜索的序列可以是根据规则的。规则可以是专用的,其可针对各种应用程序而由一般的技术人员在没有过度实验的情况下在阅读本公开在之后即刻识别并实施。因此省略对规则的其它详细描述。
参考图6,在一方面中,先前描述为包含于突发TLB标记608中的每一个中(和参考图2和4所描述的“BTAG”中的每一个中)的突发项地址范围可以是突发项主要地址范围(未在图6中明确地可见)。在一方面中,突发TLB标记608中的每一个还可包含突发项次要地址范围(未在图6中明确地可见)。在一或多个方面中,可使用突发项次要地址范围以出于除发现VA到PA转换信息以外的目的而在突发TLB标记当中进行选择。一个目的可以是突发TLB标记(例如突发TLB标记608)的可寻址选择性无效。
在一方面中,突发TLB 600可经配置以提供其突发TLB标记608的选择性无效。参考图6,在另一方面中,例如所描绘无效比较字等比较字可呈现给突发TLB标记缓冲器606。无效比较字可包含设定为属于特定突发TLB标记608的突发项次要地址范围内的无效地址(未在图6中可见)。所有突发TLB标记608的突发项次要地址范围可接着与无效比较字比较。在具有突发项次要地址范围的突发TLB标记608与无效比较字匹配之后,突发TLB标记608可即刻“失效”。无效可包括例如将其突发TLB项有效性旗标切换成突发TLB项无效旗标。无效比较字可包含额外信息,例如上下文和/或地址空间标识符。此类信息可包含用于常规TLB技术中的信息。在一方面中,除了上文所描述的与突发项次要地址范围的比较以外,无效过程可还包含比较此类信息与突发TLB标记608中的对应信息。
图7展示根据各方面的一个突发项TLB过程中的实例操作的流程图700。在参考图7描述实例的过程中,术语“流程700”将被理解为意味着包括根据流程图700的操作的实例过程。在一方面中,流程700可在702处以接收虚拟地址的操作开始。作为响应,流程700可前进到704并应用例如如参考图6所描述的第一步骤搜索的操作。在704处,操作可包含例如图6匹配逻辑616比较虚拟地址的所指定标记位或“VA标记位”与突发TLB标记608以确定是否存在匹配。如由退出决策框706的“否”分支展示,如果第一步骤搜索的704处的操作未发现匹配,那么流程700可前进到708,报道“未命中”,且接着前进到710并应用创建新突发TLB项的操作,并以那个所创建TLB突发项更新突发TLB。稍后在本公开中进一步详细描述此类操作的实例。
参看图7,如果704处的操作发现突发TLB标记中的一或多个(例如突发TLB标记608中的一或多个)与VA标记位匹配,那么如由退出决策框706的“是”分支展示指示,流程700可前进到712并对对应突发TLB数据集应用第二步骤搜索的操作。举例来说,参考图6,712处的操作可对对应于匹配的突发TLB标记608的突发TLB数据集604执行第二步骤搜索。第二步骤搜索的712处的操作可包含使用上文所描述的选择位选择M个转换数据单元中的一个作为候选匹配转换数据单元,并比较候选匹配转换数据单元的内容与第一步骤比较字。712处的比较操作可例如由突发TLB 600的匹配逻辑616执行。如果存在匹配,那么如由退出决策框714的“是”分支展示,流程700可前进到716并执行虚拟地址的VA到PA转换。可例如通过上文针对突发TLB 600的块618所描述的功能性执行716处的VA到PA操作。
参看图7,如果712处的比较操作展示候选匹配转换数据单元不与第一步骤比较字匹配,那么如由退出决策框714的“否”分支展示,流程决策可前进到708,报道“未命中”,接着前进到710并应用创建新突发TLB项的操作。在一方面中,新突发项的创建可使与候选匹配转换数据单元相关联的突发TLB数据集604不变,并创建对应的新突发TLB数据集604。在另一方面中,可例如通过将与候选匹配转换数据单元相关联的的突发TLB数据集604的突发TLB项有效性旗标切换成突发TLB项无效旗标来使所述突发TLB数据集失效。参看图7框710和图6,在一方面中,突发TLB 600可经配置以更新个别TLB转换数据单元,而不更新所有M个(例如四个)转换数据单元。在一方面中,可响应于得到一或多个匹配的突发TLB标记608的第一步骤搜索而执行此更新个别TLB转换数据单元,但未通过第二步骤搜索——比较第一步骤搜索比较字与候选匹配转换数据单元的内容——来发现匹配。在一方面中,可通过例如中转换数据单元的一个或多个中写入或覆写新信息并针对每一转换数据单元将对应的有效位设定为有效来执行个别TLB转换数据单元更新。
图8展示两阶段转换的一部分的高等级映射图800,两阶段转换包括从VA空间到中间物理地址(IPA)空间的第一阶段转换802和从IPA空间到PA空间的第二阶段转换804。出于说明的目的,举例来说且非限制性地,第一阶段转换802可以是根据由“Cortex A”系列和各种相当的处理器类型的存储器管理单元使用的“阶段1转换”。举例来说且非限制性地,第二阶段转换804可以是根据由“Cortex A”系列和各种相当的处理器类型的存储器管理单元使用的“阶段2转换”。例如由高等级映射图800表示的两阶段转换的一般概念、操作对所属领域的技术人员已知,且因此省略此类概念和操作的其它细节描述。参考图2和8,出于说明的目的,第一阶段转换802的实例VA范围可以是VA范围806,VA范围806对于图2实例是16KB,从而对应于“突发TLB项204”的16KB范围。如参考图2所描述,16KB范围由突发TLB项204的四个转换数据单元208横跨。如将参考图9更详细地描述,由图8展示的两阶段转换可在各种方面中相关联到突发TLB项204的创建或更新。
图9展示根据本公开的方面的用于在突发项TLB中产生并载入突发项的一个过程中的实例操作的流程图900。在参考图9描述操作的过程中,术语“流程900”将被理解为意味着包括根据流程图900的操作的实例过程。流程900假设选择目标/牺牲突发TLB项以覆写。在一方面中,出于流程900的目的,选择目标/牺牲突发TLB项以覆写的操作可以是对用于选择已知常规TLB的目标/牺牲的已知常规技术的改编,已知常规TLB例如易于由所属领域的技术人员在没有过度实验的情况下在阅读本公开在之后即刻执行的“替换”。因此省略选择目标/牺牲突发TLB项以覆写的其它详细描述。
根据流程900的操作可在检测或接收到高速缓存加载事件的指示之后即刻在902处开始。902处的高速缓存加载事件可以例如是图7第一步骤未命中,由退出决策框706到708的“否”分支展示。在902处检测到或接收到的高速缓存加载事件可以例如是第二步骤未命中,由退出决策框714到708的“否”分支展示。在一方面中,902处的高速缓存加载事件可以是接收直接命令(未在图中明确地可见)的进行,直接命令例如由应用程序(未在图中明确地可见)提供来通过指定突发TLB项预加载突发TLB。这些仅仅是可在902处检测到或接收到以起始新突发TLB项的产生和载入的实例事件。
在在902处检测到或接收到高速缓存加载事件之后,流程900可即刻前进到904,并应用用于检索阶段1映射信息906的页面和阶段2映射信息908的页面的操作。参考图8和9,阶段1页面906可对应于VA到IPA的第一阶段转换802,并相对于4KB的图8实例大小,针对此实例而而具有2MB的图8实例大小。以类似方式,阶段2页面908可对应于IPA到PA的第二阶段转换804,同时相对于4KB的图8实例大小而具有2MB的图8实例大小。流程900可接着前进到910并应用合并阶段1页面906与阶段2页面908的操作。
参考图9,在910处的操作之后,流程900可前进到912并应用设定“所关注块”转换范围的操作,且接着前进到914并应用舍弃“所关注块”外部的转换信息的操作。参考图2、8和9,一个实例所关注块可以是参考图2突发TLB项204-s所描述的16KB虚拟地址空间。这可例如对应于图8上展示的虚拟地址空间806的16KB范围。参考图8,在914处舍弃“所关注块”外部的转换信息可对应于阶段1将转换信息映射到不在每一个是4KB的四个IPA块(已在图8上展示但未单独地编号)内且不在每一个是4KB的四个PA块(已在图8上展示但未单独地编号)内的IPA地址。
在914处的操作之后,流程900可接着前进到916,并应用以新(或经更新)“所关注块”突发TLB项918更新突发TLB的操作。916处的操作还可包含在被覆写或更新之前使牺牲/目标“所关注块”突发TLB项失效。
图10展示根据另一方面的用于在突发项TLB中产生并载入突发项的一个替代性过程中的实例操作的流程图1000。在参考图1000描述实例的过程中,术语“流程1000”将被理解为意味着包括根据流程图1000的操作的实例过程。应理解,如上文参考图9流程900所描述,图10在突发项TLB中加载突发项可包含选择目标/牺牲突发TLB项以覆写。如也在上文所描述,此类操作可以是对用于选择已知常规TLB的目标/牺牲的已知常规技术,例如“替换”的改编,且因此省略其它详细描述。
参看图10,流程1000可通过检测或接收高速缓存加载事件来在1002处开始。高速缓存加载事件可以例如是上文参考图9框902所描述的实例高速缓存加载事件中的任一个。在1002处的高速缓存加载事件之后,流程1000即刻可前进到1004并应用用于检索阶段1页面1006和阶段2页面1008的操作。举例来说,可从主存储器中的转换表(未在图中明确地可见)检索信息,参考图11更详细地描述转换表的实例。在1004处的操作之后,流程1000可前进到1010,并应用合并阶段1页面1006与阶段2页面1008的操作。流程1000可接着前进到1012并应用设定转换大小(即,在主要地址范围突发项标记(例如图6突发TLB标记608)中编码的地址范围)的操作。在一方面中,1012处的操作可将转换大小设定为有效页面大小当中的最大和突发区组大小。参考图10,有效页面大小可以是阶段1页面大小和阶段2页面大小当中的最小值,最小值在此实例中是2兆字节。参考图2,突发区组大小可以是图2转换数据单元208的4KB突发区组大小。在更一般实例中,针对1010处的操作所利用的突发区组大小可以是图4突发TLB数据单元408的R KB突发区组大小。1012处的设定转换大小的操作可例如表示为:
将转换大小(在突发TLB标记的主要地址范围中编码)设定为:
max(有效页面大小,2Q×突发TLB区组大小)(方程式1),
其中Q=M的对数底2。
根据方程式1,转换大小因此在有效页面大小当中的最大,且是M乘以突发区组大小。
在一方面中,1010处的操作还可包含设定无效大小(在突发TLB标记的次要地址范围中编码)。无效大小可例如表示为
max(无效页面大小,2Q×突发TLB区组大小)(方程式2),
其中无效页面大小是阶段1页面大小(906)。
根据方程式2,无效大小因此在阶段1页面大小1006当中的最大,且是M乘以突发区组大小。
在1012处的设定转换大小的操作之后,流程1000可即刻前进到1014,并应用以具有对应VA到PA映射信息的新(或经更新)突发TLB项1016更新突发TLB的操作。1014处的操作可包含:与如上文所描述的覆写或更新相关联,在覆写或更新之前使牺牲/目标突发TLB项失效。用于使牺牲/目标突发TLB项失效的操作可包括例如使突发TLB项的有效旗标从有效改变成无效。
可由所属领域的技术人员理解,在全文阅读本公开之后,操作1014和新(或经更新)突发TLB项1016可即刻至少部分取决于有效页面大小的相对大小和M的量乘以突发区组大小。举例来说,如果有效页面大小大于M(或2Q)乘以突发区组大小,那么1014处的操作可在所有M个转换数据单元中设定相同的转换数据。在一方面中,1014处的操作还可将M个转换数据单元中的每一个的数据有效旗标设定设定为“有效”。图10新(或经更新)突发TLB项1016展示为根据这方面的实例,实例突发TLB数据(标记为“突发TLB数据1”、“突发TLB数据2”…“突发TLB数据4”)中的所有四个保存用于将“0”的范围(此实例中)转换成(2MB-1)的相同信息。关于“0”地址,其可以是出于描述的目的而用作参考的任意地址。替代地,而且,如果有效页面大小大于M(或2Q)乘以突发区组大小,那么1014处的操作可将转换存储于具体、固定的突发TLB数据位置中,并将此突发TLB数据位置有效旗标设定为有效。
参看图10,在一方面中,如果有效页面大小小于或等于2Q(即,整数M)×突发TLB区组大小,那么1014处的操作可填入对应于有效页面大小的突发TLB数据,并将那些突发TLB数据旗标设定为有效。
图11说明可在其中有利地使用本公开的一或多个方面的无线装置1100。
现参考图11,无线装置1100包含处理器1102,处理器1102具有通过系统总线(在图11中可见,但未单独地标记)互连的CPU 1104、处理器存储器1106与存储器管理单元(MMU)1107。MMU 1107可包含可经配置为图6突发TLB 600的突发TLB 600。CPU1104可产生虚拟地址以存取处理器存储器1106或外部存储器1110。虚拟地址可经由系统总线传达到MMU1107。作为响应,MMU 1107将首先搜索突发TLB 600,例如如参考图6所描述。
无线装置1100可经配置以执行参考图9和10所描述的各种方法,且可进一步经配置以执行从处理器存储器1106或外部存储器1110检索的指令,以便执行参考图9和10所描述的方法中的任一个。
图11还展示耦合到处理器1102且耦合到显示器1128的显示器控制器1126。编解码器(CODEC)1134(例如音频和/或语音编解码器)可耦合到处理器1102。还说明了其它组件,例如无线控制器440(其可包含调制解调器)。举例来说,扬声器1136和麦克风1138可耦合到编解码器1134。图11还展示可耦合到无线天线1142的无线控制器1140。在特定方面中,处理器1102、显示器控制器1126、处理器存储器1106、外部存储器1110、编解码器1134和无线控制器1140可包含于系统级封装或芯片上系统装置1122中。
在特定方面中,输入装置1130和电源1144可耦合到芯片上系统装置1122。此外,在特定方面中,如图11中所示,显示器1128、输入装置1130、扬声器1136、麦克风1138、无线天线1142和电源1144在芯片上系统装置1122外部。然而,显示器1128、输入装置1130、扬声器1136、麦克风1138、无线天线1142和电源1144中的每一个可耦合到芯片上系统装置1122的组件,例如接口或控制器。
应理解,突发TLB 600未必是处理器1002的部分,且替代地,可以是MMU的部分,MMU具有向MMU发出由MMU“转换”且重新引导到系统存储器的存储器请求的硬件加速器块(未在图11中明确地可见),例如相机系统、视频编码器、显示器控制器。
还应注意,虽然图11描绘了无线通信装置,但是处理器1102和其具有突发TLB 600的MMU 1107还可集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元、计算机、笔记本电脑、平板电脑、移动电话或其它类似装置中。
前述所公开装置和功能可经设计且配置成存储于计算机可读媒体上的计算机文件(例如RTL、GDSII、GERBER等)。一些或所有此类文件可提供给基于此类文件而制造装置的制造操作者。所得产品包含接着切割成半导体裸片且封装到半导体芯片中的半导体晶圆。半导体芯片接着用于上文所描述的装置中。
所属领域的技术人员将了解,可使用多种不同技术和技艺中的任一个来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示可贯穿以上描述参考的数据、指令、命令、信息、信号、位、符号和码片。
此外,所属领域的技术人员将了解,结合本文所揭示方面而描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。计算机软件可包含包括在由处理器执行时可致使处理器执行根据所描述方面的步骤和相关操作的指令的非暂时性计算机可读媒体。为了清晰地说明硬件与软件的可互换性,上文已大体就其功能性来描述了各种说明性组件、块、模块、电路和步骤。此功能性是实施为硬件还是软件取决于特定应用和施加于整个系统的设计约束。熟练的技术人员可针对每一特定应用而以不同方式实施所描述功能性,但此类实施决策不应被解释为会引起脱离本发明的范围。
可例如直接以硬件、以由处理器执行的软件模块或以这两者的组合实施本文中所描述的各种方法、序列和/或算法。软件模块可以驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或所属领域中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成整体。
虽然前述公开内容展示本发明的说明性实例和应用,但是应注意,在不脱离如所附权利要求书定义的本发明的范围的情况下,可在其中进行各种改变和修改。不必按任何特定次序执行所要求方法中所叙述的功能、步骤和/或动作。此外,虽然可以单数形式描述或要求特征,但除非明确地陈述对单数形式的限制,否则涵盖复数形式。

Claims (30)

1.一种用于转换虚拟地址的方法,所述方法包括:
接收比较字,其中所述比较字包含虚拟地址;以及
在确定了所述比较字与突发项标记匹配之后即刻:
选择候选匹配转换数据单元,所述选择来自多个转换数据单元,所述多个数据转换单元与所述突发项标记相关联,且所述选择至少部分基于所述虚拟地址的至少一个位;以及
比较所述候选匹配转换数据单元的内容与所述比较字的至少一部分,并在所述比较的结果指示匹配之后即刻产生命中。
2.根据权利要求1所述的方法,其进一步包括存储突发项,所述突发项包括所述突发项标记和所述多个转换数据单元。
3.根据权利要求1所述的方法,其中所述突发项标记包含突发项地址范围,且其中所述比较字与所述突发项标记的所述匹配至少部分基于所述虚拟地址是所述突发项地址范围内的地址。
4.根据权利要求3所述的方法,其中所述方法进一步包括:
接收无效比较字;以及
至少部分基于所述无效比较字与所述突发项标记的匹配而使对应于所述突发项标记的所述突发项失效。
5.根据权利要求3所述的方法,其中所述突发项地址范围是突发项主要地址范围,且其中所述突发项标记进一步包含突发项次要地址范围,且其中所述方法进一步包括:
接收无效比较字;以及
至少部分基于所述无效比较字与所述突发项次要地址范围的匹配而使对应于所述突发项次要地址范围的所述转换数据单元失效。
6.根据权利要求1所述的方法,其进一步包括存储突发项,所述突发项包括所述突发项标记和所述多个转换数据单元,其中所述突发项标记包含突发项有效性旗标,其中所述突发项有效性旗标能在突发项有效旗标与突发项无效旗标之间切换,且其中确定所述比较字与所述突发项标记匹配至少部分基于所述突发项有效旗标。
7.根据权利要求6所述的方法,其中所述突发项标记包含突发项地址范围,且其中所述比较字与所述突发项标记的所述匹配进一步至少部分基于所述虚拟地址是所述突发项地址范围内的地址。
8.根据权利要求7所述的方法,其中所述方法进一步包括:
接收无效比较字;以及
至少部分基于所述无效比较字与所述突发项标记的匹配而将所述突发项有效性旗标切换成所述突发项无效旗标。
9.根据权利要求7所述的方法,其中所述转换数据单元中的每一个包含转换数据有效性旗标,其中所述转换数据有效性旗标能在转换数据有效旗标与转换数据无效旗标之间切换,且其中所述比较的指示匹配的结果需要所述候选匹配转换数据单元的所述转换数据有效性旗标是所述转换数据有效旗标。
10.根据权利要求9所述的方法,其中所述突发项地址范围是突发项主要地址范围,且其中所述突发项标记进一步包含突发项次要地址范围,且其中所述方法进一步包括:
接收无效比较字;以及
至少部分基于所述无效比较字与所述突发项次要地址范围的匹配而将所述候选匹配转换数据单元的所述转换数据有效性旗标切换成所述转换数据无效旗标。
11.根据权利要求1所述的方法,其中所述突发项处于多个突发项当中,所述突发项中的每一个包括对应突发项标记和对应多个转换数据单元,
其中每一突发项的所述多个转换数据单元包含M个转换数据单元,M是整数,且
其中确定所述比较字是否与所述突发项标记匹配包括确定所述比较字是否与所述突发项中的至少一个的所述对应突发项标记匹配。
12.根据权利要求11所述的方法,其中所述M个转换数据单元中的每一个保存对应于突发TLB区组大小的地址的跨度的映射信息,其中所述突发TLB区组大小是基于所述整数M和对应于所述突发项标记的地址范围,
其中确定所述比较字是否与所述突发项标记匹配包括确定所述比较字是否与所述突发项中的至少一个的所述对应突发项标记匹配,
所述方法进一步包括:
在确定了所述突发项标记中没有一个与所述比较字匹配之后,即刻检测未命中;
在检测到所述未命中之后即刻产生经更新突发项,所述经更新突发项包含针对包含所述比较字的地址范围的地址转换,产生所述经更新突发项包括:
接收阶段1映射信息的页面,阶段1映射信息的所述页面具有阶段1页面大小,
接收阶段2映射信息的页面,阶段2映射信息的所述页面具有阶段2页面大小,
确定有效页面大小,所述有效页面大小是所述阶段1页面大小和所述阶段2页面大小当中的最小值,
将转换大小设定为:
转换大小=max(有效页面大小,2Q×突发TLB区组大小),
其中Q=M的对数底2;以及
基于所述转换大小且基于来自阶段1映射信息的所述页面和阶段2映射信息的所述页面的映射信息而产生所述经更新突发项;以及
将所述经更新突发项作为所述多个突发项中的一个存储。
13.根据权利要求12所述的方法,其进一步包括与确定有效页面大小相关联而:
将无效大小设定为:
无效大小=max(无效页面大小,2Q×突发TLB区组大小),
所述无效页面大小是所述阶段1页面大小。
14.根据权利要求13所述的方法,其中存储所述经更新突发项至少部分基于所述有效页面大小的相对大小和M乘以所述突发TLB区组大小。
15.根据权利要求14所述的方法,其中在所述有效页面大小大于2Q乘以所述突发TLB区组大小之后即刻存储所述经更新突发项包括:在所有M个所述转换数据单元中设定相同转换数据。
16.根据权利要求12所述的方法,其中产生所述经更新突发项包括舍弃所关注块外的来自阶段1映射信息的所述页面的映射信息或来自阶段2映射信息的所述页面的映射信息或这两者,且所述经更新突发项是所述所关注块内的来自阶段1映射信息的所述页面的映射信息或来自阶段2映射信息的所述页面的映射信息或这两者。
17.根据权利要求1所述的方法,其中所述转换数据单元中的每一个包含转换数据有效性旗标,其中所述转换数据有效性旗标能在转换数据有效旗标与转换数据无效旗标之间切换,
其中所述突发项标记包含突发项有效性旗标,其中所述突发项有效性旗标能在突发项有效旗标与突发项无效旗标之间切换,
其中所述多个转换数据单元包含第一转换数据单元和第二转换数据单元,其中所述第一转换数据单元的所述转换数据有效性旗标是第一转换数据有效性旗标,且所述第二转换数据单元的所述转换数据有效性旗标是第二转换数据有效性旗标,
其中所述突发项有效旗标至少部分基于至少所述第一转换数据有效性旗标和所述第二转换数据有效性旗标的逻辑“或”,且
其中确定所述比较字与所述突发项标记匹配至少部分基于所述突发项有效旗标。
18.根据权利要求17所述的方法,其中所述虚拟地址的至少一个位是选择位,其中选择所述候选匹配转换数据单元基于所述选择位的状态而在所述第一转换数据单元与所述第二转换数据单元之间进行选择。
19.根据权利要求17所述的方法,其中所述多个转换数据单元进一步包含第三转换数据单元和第四转换数据单元,
其中所述第三转换数据单元的所述转换数据有效性旗标是第三转换数据有效性旗标,且所述第四转换数据单元的所述转换数据有效性旗标是第四转换数据有效性旗标,且
其中所述突发项有效旗标至少部分基于所述第一转换数据有效性旗标、所述第二转换数据有效性旗标、所述第三转换数据有效性旗标和所述第四转换数据有效性旗标的逻辑“或”。
20.根据权利要求19所述的方法,其中所述虚拟地址的至少两个位是选择位,其中选择所述候选匹配转换数据单元基于所述选择位的状态而在所述第一转换数据单元、所述第二转换数据单元、所述第三转换数据单元和所述第四转换数据单元当中进行选择。
21.一种转换后备缓冲器TLB,其包括:
突发TLB项选择逻辑,其经配置以接收比较字并作为响应而确定所述比较字与突发项标记是否匹配,其中所述比较字包含虚拟地址;
列选择器逻辑,其经配置以响应于所述突发TLB项选择逻辑确定了所述比较字与所述突发项标记匹配而选择候选匹配转换数据单元,其中所述候选匹配转换数据单元处于与所述突发项标记相关联的多个转换数据单元当中,且经配置以至少部分基于所述虚拟地址的至少一个位而选择所述候选匹配转换数据单元;以及
匹配逻辑,其中所述匹配逻辑经配置以比较所述候选匹配转换数据单元的内容与所述比较字的至少一部分,并在所述比较的结果指示匹配之后即刻产生命中。
22.根据权利要求21所述的TLB,其中所述多个转换数据单元包含第一转换数据单元和第二转换数据单元,其中所述虚拟地址的至少一个位是选择位,其中选择所述候选匹配转换数据单元基于所述选择位的状态而在第一转换数据单元与第二转换数据单元之间进行选择。
23.根据权利要求21所述的TLB,其中所述突发项标记包含突发项地址范围,且其中所述突发TLB项选择逻辑经进一步配置以至少部分基于所述虚拟地址是所述突发项地址范围内的地址而确定所述比较字与所述突发项标记匹配。
24.根据权利要求23所述的TLB,其中所述突发项地址范围是突发项主要地址范围,且其中所述突发项标记进一步包含突发项次要地址范围,且其中所述突发TLB项选择逻辑经进一步配置:
接收无效比较字;以及
至少部分基于所述无效比较字与所述突发项次要地址范围的匹配而使所述突发项标记失效。
25.根据权利要求23所述的TLB,其中所述突发项标记包含突发项有效性旗标,其中所述突发项有效性旗标能在突发项有效旗标与突发项无效旗标之间切换,且其中所述突发TLB项选择逻辑经进一步配置以确定所述突发项标记至少部分基于所述突发项有效旗标。
26.根据权利要求23所述的TLB,其中所述转换数据单元中的每一个包含转换数据有效性旗标,其中所述转换数据有效性旗标能在转换数据有效旗标与转换数据无效旗标之间切换,且其中所述匹配逻辑经进一步配置以针对所述比较的指示匹配的所述结果而需要所述候选匹配转换数据单元的所述转换数据有效性旗标是所述转换数据有效旗标。
27.根据权利要求23所述的TLB,其中所述多个转换数据单元包含第一转换数据单元、第二转换数据单元、第三转换数据单元和第四转换数据单元,
其中所述虚拟地址的至少两个位是选择位,且
其中所述列选择器逻辑经进一步配置以基于所述选择位的状态而在所述第一转换数据单元、所述第二转换数据单元、所述第三转换数据单元和所述第四转换数据单元当中选择所述候选匹配转换数据单元。
28.一种非暂时性计算机可读媒体,其包括在由处理器读取并执行时致使所述处理器执行以下操作的代码:
接收比较字,其中所述比较字包含虚拟地址;以及
确定所述比较字与突发项标记是否匹配,并在确定了所述比较字与所述突发项标记匹配之后即刻:
选择候选匹配转换数据单元,其中所述候选匹配转换数据单元是与所述突发项标记相关联的多个转换数据单元当中的转换数据单元,并至少部分基于所述虚拟地址的至少一个位而选择所述候选匹配转换数据单元;以及
比较所述候选匹配转换数据单元的内容与所述比较字的至少一部分,并在所述比较的结果指示匹配之后即刻产生命中。
29.一种转换后备缓冲器TLB,其包括:
用于接收比较字的装置,其中所述比较字包含虚拟地址;以及
用于执行以下操作的的装置:确定所述比较字与突发项标记是否匹配,并在确定了所述比较字与所述突发项标记匹配之后即刻:选择候选匹配转换数据单元;以及
用于比较所述候选匹配转换数据单元的内容与所述比较字的至少一部分并用于在所述比较的结果指示匹配之后即刻产生命中的装置,
其中所述候选匹配转换数据单元是多个转换数据单元当中的转换数据单元,且
其中选择所述候选匹配转换数据单元至少部分基于所述虚拟地址的至少一个位。
30.根据权利要求29所述的TLB,其中所述突发项标记包含突发项地址范围,且其中所述用于确定所述比较字与所述突发项标记是否匹配的装置经配置以使所述确定至少部分基于所述虚拟地址是所述突发项地址范围内的地址。
CN201680019902.7A 2015-04-15 2016-03-15 突发转换后备缓冲器 Active CN107533513B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562148121P 2015-04-15 2015-04-15
US62/148,121 2015-04-15
US14/865,965 US9836410B2 (en) 2015-04-15 2015-09-25 Burst translation look-aside buffer
US14/865,965 2015-09-25
PCT/US2016/022435 WO2016167912A1 (en) 2015-04-15 2016-03-15 Burst translation look-aside buffer

Publications (2)

Publication Number Publication Date
CN107533513A true CN107533513A (zh) 2018-01-02
CN107533513B CN107533513B (zh) 2021-06-04

Family

ID=55637479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680019902.7A Active CN107533513B (zh) 2015-04-15 2016-03-15 突发转换后备缓冲器

Country Status (6)

Country Link
US (1) US9836410B2 (zh)
EP (1) EP3283967B1 (zh)
JP (1) JP6317048B1 (zh)
KR (1) KR101895388B1 (zh)
CN (1) CN107533513B (zh)
WO (1) WO2016167912A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417140B2 (en) 2017-02-24 2019-09-17 Advanced Micro Devices, Inc. Streaming translation lookaside buffer
US11030117B2 (en) * 2017-07-14 2021-06-08 Advanced Micro Devices, Inc. Protecting host memory from access by untrusted accelerators
GB2565069B (en) 2017-07-31 2021-01-06 Advanced Risc Mach Ltd Address translation cache
KR101942663B1 (ko) * 2017-09-28 2019-01-25 한국과학기술원 가상 메모리 주소 변환 효율화를 위한 연속성 활용 주소 변환 방법 및 시스템

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
CN101292228A (zh) * 2005-08-23 2008-10-22 高通股份有限公司 转换后备缓冲器的锁定指示符
WO2012015766A2 (en) * 2010-07-28 2012-02-02 Rambus Inc. Cache memory that supports tagless addressing
CN103443777A (zh) * 2011-03-03 2013-12-11 高通股份有限公司 具有预填充能力的存储器管理单元
US8707011B1 (en) * 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
CN104272279A (zh) * 2012-05-10 2015-01-07 Arm有限公司 具有缓存和转换后备缓冲器的数据处理装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680700A (en) * 1983-12-07 1987-07-14 International Business Machines Corporation Virtual memory address translation mechanism with combined hash address table and inverted page table
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US7310721B2 (en) * 2003-10-30 2007-12-18 Microsoft Corporation Shadow page tables for address translation control
US7558939B2 (en) 2005-03-08 2009-07-07 Mips Technologies, Inc. Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor
US7734892B1 (en) 2005-03-31 2010-06-08 Rozas Guillermo J Memory protection and address translation hardware support for virtual machines
US7822926B2 (en) 2007-04-16 2010-10-26 Arm Limited Cache memory
US9239799B2 (en) * 2008-06-26 2016-01-19 Qualcomm Incorporated Memory management unit directed access to system interfaces
JP5526626B2 (ja) 2009-06-30 2014-06-18 富士通株式会社 演算処理装置およびアドレス変換方法
US9405700B2 (en) 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US9355040B2 (en) * 2012-10-08 2016-05-31 International Business Machines Corporation Adjunct component to provide full virtualization using paravirtualized hypervisors
US20140281116A1 (en) * 2013-03-15 2014-09-18 Soft Machines, Inc. Method and Apparatus to Speed up the Load Access and Data Return Speed Path Using Early Lower Address Bits

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
US5564052A (en) * 1991-06-27 1996-10-08 Integrated Device Technology, Inc. Logically disconnectable virtual-to-physical address translation unit and method for such disconnection
CN101292228A (zh) * 2005-08-23 2008-10-22 高通股份有限公司 转换后备缓冲器的锁定指示符
CN101292228B (zh) * 2005-08-23 2012-02-08 高通股份有限公司 转换后备缓冲器的锁定指示符
US8707011B1 (en) * 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
WO2012015766A2 (en) * 2010-07-28 2012-02-02 Rambus Inc. Cache memory that supports tagless addressing
CN103443777A (zh) * 2011-03-03 2013-12-11 高通股份有限公司 具有预填充能力的存储器管理单元
CN104272279A (zh) * 2012-05-10 2015-01-07 Arm有限公司 具有缓存和转换后备缓冲器的数据处理装置

Also Published As

Publication number Publication date
EP3283967A1 (en) 2018-02-21
EP3283967B1 (en) 2020-07-15
KR101895388B1 (ko) 2018-09-07
CN107533513B (zh) 2021-06-04
JP6317048B1 (ja) 2018-04-25
US9836410B2 (en) 2017-12-05
WO2016167912A1 (en) 2016-10-20
JP2018514861A (ja) 2018-06-07
KR20170137107A (ko) 2017-12-12
US20160306746A1 (en) 2016-10-20

Similar Documents

Publication Publication Date Title
CN107533513A (zh) 突发转换后备缓冲器
US8082416B2 (en) Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
CN104380270B (zh) 存储器的根表转换
CN107301248B (zh) 文本的词向量构建方法和装置、计算机设备、存储介质
CN108304484A (zh) 关键词匹配方法及装置、电子设备和可读存储介质
US20130238875A1 (en) Multiple page size memory management unit
US20110258202A1 (en) Concept extraction using title and emphasized text
CN108027777A (zh) 用于经由数据匹配实现高速缓存线重复数据删除的方法和设备
US20120331265A1 (en) Apparatus and Method for Accelerated Hardware Page Table Walk
US8843726B2 (en) Cache for storing multiple forms of information and a method for controlling a cache storing multiple forms of information
US20200183858A1 (en) Methods and Systems for Incorporating Non-Tree Based Address Translation Into a Hierarchical Translation Lookaside Buffer (TLB)
KR20190039470A (ko) 다중 데이터 스트림을 지원하는 tlb장치와 tlb모듈의 업데이트 방법
US20230057414A1 (en) Machine learning techniques for generating string-based database mapping prediction
CN107818053A (zh) 用于存取高速缓存的方法与装置
CN114860627B (zh) 基于地址信息动态生成页表的方法
CN103176914A (zh) 一种低缺失率、低缺失惩罚的缓存方法和装置
US10872060B2 (en) Search method and search apparatus
US6931493B2 (en) Implementation of an LRU and MRU algorithm in a partitioned cache
CN112307769B (zh) 一种自然语言模型的生成方法和计算机设备
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
US10353827B2 (en) Zone-SDID mapping scheme for TLB purges
CN115730596A (zh) 对象推荐方法、装置和计算机设备
US20220164381A1 (en) Image retrieval system and image retrieval method
US5193160A (en) Address translation system with register storing section and area numbers
CN111859992A (zh) 基于非监督学习的译文质量评估方法、系统、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant