CN108459975B - 用于有效使用地址转换缓存的技术 - Google Patents
用于有效使用地址转换缓存的技术 Download PDFInfo
- Publication number
- CN108459975B CN108459975B CN201810146412.4A CN201810146412A CN108459975B CN 108459975 B CN108459975 B CN 108459975B CN 201810146412 A CN201810146412 A CN 201810146412A CN 108459975 B CN108459975 B CN 108459975B
- Authority
- CN
- China
- Prior art keywords
- address translation
- page size
- translation data
- page
- address
- 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.)
- Active
Links
- 238000013519 translation Methods 0.000 title claims abstract description 553
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000008569 process Effects 0.000 claims abstract description 52
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000007704 transition Effects 0.000 claims description 3
- 230000014616 translation Effects 0.000 description 461
- 238000010586 diagram Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 5
- 230000002411 adverse Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6032—Way prediction in set-associative cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/652—Page size control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开涉及用于有效使用地址转换缓存的技术。提供了一种用于有效使用地址转换缓存资源的装置和方法。装置包括具有多个条目的地址转换缓存,其中每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据。地址转换数据的每个条目具有与该地址转换数据相关联的针对存储器系统内的页面的页面大小指示。分配电路执行分配过程以确定要存储在每个条目中的地址转换数据。此外,模式控制电路被用来根据页面大小分析操作将装置的操作模式在非偏斜模式和至少一个偏斜模式之间进行切换。地址转换缓存被组织为多个部分,并且在非偏斜模式中,分配电路被布置为在执行分配处理时允许地址转换数据被分配给多个部分中的任何部分。
Description
技术领域
本技术涉及有效使用地址转换缓存。
背景技术
已知提供包括地址转换缓存(例如,转换后备缓冲器(TLB))的数据处理系统,该地址转换缓存用于存储与例如将虚拟地址转换为物理地址有关的地址转换数据。地址转换数据还可以提供关于正在进行的存储器访问的属性数据,例如,权限数据和存储器属性。虽然提供地址转换缓存在通过减少所需的慢页面表遍历(page table walk)的数量来提高性能方面是有用的,但是这样的地址转换缓存可能占据显著的电路资源,并且因此期望有效使用这些资源。确保在地址转换缓存内执行的查找操作可以被快速执行也是有用的,以便优化使用这样的地址转换缓存可实现的性能益处。
存储在地址转换缓存内的地址转换数据的每个条目可以具有相关联的页面大小指示,并且寻求增加地址转换缓存的有效容量的一种方式是允许地址转换缓存保存针对不止一个页面大小的地址转换数据。然而,这可能使用于确定地址转换缓存器是否保存指定虚拟地址的地址转换数据的查找过程复杂化,并因此可能影响性能。
期望提供一种机制,可以允许有效使用地址转换缓存而不会对性能产生不利影响。
发明内容
在一个示例配置中,提供了一种装置,包括:地址转换缓存,具有多个条目,每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据,每个地址转换数据具有与地址转换数据相关联的针对存储器系统内的页面的页面大小指示;分配电路,用于执行分配过程以确定要存储在每个条目中的地址转换数据;以及模式控制电路,用于根据页面大小分析操作将装置的操作模式在非偏斜(skewed)模式和至少一个偏斜模式之间进行切换;地址转换缓存被组织为多个部分;其中在非偏斜模式中,分配电路被布置为在执行分配过程时允许地址转换数据被分配给多个部分中的任何部分;其中在至少一个偏斜模式中的每一个偏斜模式中,分配电路被布置为在执行分配过程时保留至少一个部分以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他部分以用于分配与不同于第一页面大小的第二页面大小的页面相关联的地址转换数据。
在另一示例配置中,提供了一种操作地址转换缓存的方法,地址转换缓存具有多个条目并且被组织为多个部分,每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据,每个地址转换数据具有与地址转换数据相关联的针对存储器系统内的页面的页面大小指示,该方法包括:执行分配过程以确定要存储在每个条目中的地址转换数据;以及根据页面大小分析操作将装置的操作模式在非偏斜模式和至少一个偏斜模式之间进行切换;当在非偏斜模式中执行分配过程时,允许地址转换数据被分配给多个部分中的任何部分;以及当在至少一个偏斜模式中执行分配过程时,保留至少一个部分以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他部分以用于分配与不同于第一页面大小的第二页面大小的页面相关联的地址转换数据。
在又一示例配置中,提供了一种设备,包括:用于具有多个条目的地址转换缓存装置,每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据,每个地址转换数据具有与地址转换数据相关联的针对存储器系统内的页面的页面大小指示;用于执行分配过程以确定要存储在每个条目中的地址转换数据的分配装置;以及用于根据页面大小分析操作将设备的操作模式在非偏斜模式和至少一个偏斜模式之间进行切换的模式控制装置;地址转换缓存装置被组织成多个部分;其中在非偏斜模式中,分配装置用于在执行分配过程时允许地址转换数据被分配给多个部分中的任何部分;其中在至少一个偏斜模式中的每一个偏斜模式中,分配装置用于在执行分配过程时保留至少一个部分以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他部分以用于分配与不同于第一页面大小的第二页面大小的页面相关联的地址转换数据。
附图说明
下面将参考附图中所示的实施例仅通过示例的方式进一步描述本技术,其中:
图1示出了根据一个实施例的包含地址转换缓存的数据处理系统;
图2是示意性地示出虚拟到物理地址转换过程的图示;
图3示意性地示出了包括单级地址转换过程的多级页面表遍历;
图4示意性地示出了根据一个实施例的地址转换缓存内的每个条目的内容;
图5是示出根据一个实施例的在图1的控制电路内提供的组件的框图;
图6是示意性地示出根据一个实施例的如何使用虚拟地址来访问组相联地址转换缓存内的条目的图示;
图7示出了在一个实施例中可以如何使用虚拟地址的各个部分来根据页面大小来标识在图6所示的过程中使用的索引位和比较位;
图8是示出根据一个实施例的图5的模式控制电路的操作的流程图;
图9是示出根据一个实施例的由图5的分配电路执行的分配过程的流程图;
图10是示出根据一个实施例的由图5的查找电路执行的查找过程的流程图;
图11示出了在一个实施例中当装置在偏斜操作模式操作时如何执行并行查找;
图12示出了根据一个实施例的其中根据前述实施例的组相联地址转换缓存经由全相联微TLB被耦合到处理器核心的布置;并且
图13是示出在其中地址转换缓存是能够存储全转换数据和部分转换数据二者的统一地址转换缓存的实施例中由图5的分配电路针对部分地址转换数据执行的分配过程的流程图。
具体实施方式
在参考附图讨论实施例之前,提供实施例的以下描述。
在一个实施例中,提供了一种装置,包括地址转换缓存以及相关联的分配电路和模式控制电路。地址转换缓存具有多个条目,每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据。地址转换数据的每个条目具有与该地址转换数据相关联的针对存储器系统内的页面的页面大小指示。分配电路被布置为执行分配过程以确定要存储在每个条目中的地址转换数据。此外,模式控制电路被布置为根据页面大小分析操作将装置的操作模式在非偏斜模式和至少一个偏斜模式之间进行切换。
地址转换缓存被认为是被组织为多个部分。这些部分可以采用各种形式,但是在一个特定实施例中,地址转换缓存是N路组相联缓存,并且每个部分包括N路组相联缓存中的路。在非偏斜模式中,分配电路被布置为在执行分配处理时允许将地址转换数据分配给多个部分中的任何部分。然而,在装置处于至少一个偏斜模式中时,分配电路替代地被布置为在执行分配过程时保留至少一个部分以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他部分以用于分配与不同于第一页面大小的第二页面大小的页面相关联的地址转换数据。
通过允许根据页面大小分析操作来动态地切换装置的操作模式,这可以允许地址转换缓存被配置用于考虑存储器中正在被访问的页面大小的有效使用。此外,如下面将更详细地描述的,在一些实施例中,可以实现这一点,同时减少对在地址转换缓存内容纳混合页面大小的潜在负面性能影响。
分配电路可以被布置为根据接收到的转换信息来确定要存储在分配的条目中的地址转换数据。通常,接收到的转换信息将具有相关联的页面大小。在一个实施例中,在非偏斜模式中,分配电路被约束,使得其产生针对第一页面大小的地址转换数据,而不管与接收到的转换信息相关联的页面大小如何。如前所述,在非偏斜模式中,分配电路允许将地址转换数据分配给多个部分中的任何部分。因此,在该特定实施例中,关于生成的地址转换数据被分配的位置存在很大的灵活性,但是存储的地址转换数据的所有条目将涉及相同的页面大小。这显著地简化了查找过程,并且确保可以快速执行查找过程以确定地址转换缓存中是存在命中或还是存在未命中。
存在其中分配电路可以根据接收到的转换信息来产生地址转换数据的很多方式。然而,在一个实施例中,在处于非偏斜模式中时,在其中与接收到的转换信息相关联的页面大小大于第一页面大小的情况下,分配电路被布置为执行压裂操作(fracturingoperation)以根据接收到的转换信息来产生针对第一页面大小的地址转换数据。因此,纯粹举例来说,如果针对指定的虚拟地址,接收到的转换信息表示16千字节(KB)页面,则可以使用压裂操作来生成针对该虚拟地址的与4KB页面相关的地址转换数据,然后将生成的地址转换数据存储在地址转换缓存中。
接收到的转换信息可以通过各种方式获得,但是在一个实施例中是通过页面表遍历过程获得的。具体地,在一个实施例中,如果基于由相关联的处理电路指定的虚拟地址,在地址转换缓存内没有检测到命中,则可以启动页面表遍历过程以访问存储器内的一个或多个页面表,从而获得使得该虚拟地址能够转换为物理地址的所需的转换信息。根据返回的转换信息,还可以确定要存储在地址转换缓存的条目中的地址转换数据。
在一个实施例中,装置还包括查找电路,该查找电路响应于接收到的虚拟地址而在地址转换缓存内执行查找操作,从而确定针对该虚拟地址的地址转换数据是否被存储在地址转换缓存的条目内。如前所述,在上面提到的其中针对第一页面大小生成所有地址转换数据的非偏斜模式的实施例中,这种查找操作可以在非偏斜模式中被快速执行,因为仅需要针对单个页面大小来执行查找。
然而,由于在至少一个偏斜模式中对分配的约束,该性能在至少一个偏斜模式中也可能被保留,因为可能针对不同的页面大小并行执行多个查找。具体地,在装置处于至少一个偏斜操作模式中时,查找电路可以被布置为在已经被保留用于与第一页面大小的页面相关联的地址转换数据的至少一个部分内并行执行查找,同时还在被保留用于与第二页面大小的页面相关联的地址转换数据的至少一个其他部分内执行查找。因为地址转换缓存的不同部分已经被保留用于具有这些不同页面大小的地址转换数据,所以查找可以并行进行,由此,虽然通过允许存储针对不同的页面大小的地址转换数据增加了有效容量,但是这不会对查找操作的性能产生不利的影响。
如前所述,在一个实施例中,地址转换缓存是N路组相联缓存,并且每个部分都包括组相联缓存中的路。在这样的实施例中,查找电路可以被布置为在装置处于至少一个偏斜操作模式中时,选择虚拟地址的位的第一子集来标识在用于与所述第一页面大小的页面相关联的地址转换数据的所述至少一个部分内的要进行查找的组,并且选择虚拟地址的位的第二子集以标识在用于与所述第二页面大小的页面相关联的地址转换数据的所述至少一个其他部分内的要进行查找的组。因此,将基于用于不同页面大小的不同索引位来标识不同的组,并且然后针对每个这样的页面大小,在已经被保留用于该页面大小的经标识的组的路内进行查找。因为在每个路内只需要查找一次,所以过程可以被并行执行,由此过程可以被快速执行以确定地址转换缓存中是存在命中还是存在未命中。
第一页面大小和第二页面大小可以根据实现方式而变化。然而,在一个实施例中,第一页面大小小于第二页面大小。在一个特定实施例中,第一页面大小是存储器系统支持的最小页面大小。
如前所述,模式控制电路能够基于页面大小分析操作将装置在非偏斜模式和至少一个偏斜模式之间进行动态地切换。在一个实施例中,模式控制电路被布置为执行监视操作,该监视操作监视与接收到的转换信息的多个实例相关联的页面大小,如前所述,接收到的转换信息是由分配电路接收的信息,并且根据该接收到的转换信息确定要存储在地址转换缓存内的地址转换数据。因此,模式控制电路可以有效地维持正在被访问的页面大小的历史,并且基于在该历史内观察到的特征来控制地址转换缓存的操作模式。例如,如果正在被访问的大部分页面是第一页面大小的,则地址转换缓存的最有效的使用可以通过在非偏斜模式中操作来实现。然而,如果大于第一页面大小的页面大小的比例相对较高,则这可以用于指示应当切换到至少一个偏斜模式中的一个偏斜模式。在一个实施例中,模式控制电路可以使用启发式算法来确定何时在非偏斜模式和偏斜模式之间进行切换。
当大于第一页面大小的页面大小的比例超过特定水平时,在偏斜操作模式中操作地址转换缓存可能更有效率,因为较大的页面大小被使用的足够多以保证保留至少一个路来用于存储针对这种页面大小的地址转换数据。因此,地址转换缓存的有效容量增加,因为通过容纳针对更大页面大小的地址转换数据,这增加了检测到命中的可能性。此外,由于在至少一个偏斜模式中的约束,仍然可以执行快速查找,因此改善了任何不利的性能影响。
存在其中可以维持与接收到的转换信息的多个实例相关联的页面大小的历史的多种方式。例如,模式控制电路可以在滑动时间窗口内维持历史,使得在该时间段内任意接收到的转换信息具有在历史信息内获取的页面大小信息。或者,历史可以涉及接收到的转换信息的一定数量的先前实例的页面大小,而不是通过时间段来约束历史。
虽然在一个实施例中,分配电路在决定在哪个模式中操作地址转换缓存时可以仅仅考虑关于与先前接收到的转换信息相关联的页面大小的历史信息,但是在替代实施例中,在需要时可以选择性地考虑附加标准。例如,在一个实施例中,模式控制电路还可以被布置为在执行页面大小分析操作时,考虑与针对其在地址转换缓存内已经检测到命中的地址转换数据的条目相关联的页面大小的历史。在一个实施例中,在决定是否从偏斜操作模式返回到非偏斜操作模式时,可以考虑该附加考虑因素。例如,即使与先前接收到的转换信息相关联的页面大小的历史降低到通常会使得地址转换缓存被切换回到非偏斜模式的阈值以下,但如果针对在地址转换缓存内缓存的较大页面大小仍然观察到相对较高的命中率,则分配电路可以决定将地址转换缓存保留在偏斜操作模式内。
在一个实施例中,地址转换缓存可以直接与相关联的处理电路(例如,处理器核心)耦合。然而,在替代实施例中,地址转换缓存可以形成用于相关联的处理电路的组相联转换后备缓冲器(TLB),并且可以耦合到全相联微TLB。响应于由处理电路发出的虚拟地址,地址转换缓存然后可以在微TLB中检测到未命中时被访问。微TLB可以被布置为存储针对由接收到的转换信息指示的页面大小的地址转换数据,独立于地址转换缓存的分配电路是否执行前面提到的压裂操作。因此,虽然组相联地址转换缓存被约束为以前面讨论的多模式方式操作,但是这不限制微TLB的操作,并且微TLB可以继续以标准方式操作。
在一个实施例中,以前面讨论的方式处理的地址转换数据包括标识从虚拟地址到物理地址的完整转换的最终级别类型的地址转换数据。在一个实施例中,地址转换缓存可以被配置为使得其仅存储这样的最终级别类型的地址转换数据,并且因此所有条目都涉及从虚拟地址到物理地址的完整转换。然而,在替代实施例中,地址转换缓存可以是统一转换缓存,使得虽然一些条目将存储标识从虚拟地址到物理地址的完整转换的地址转换数据,但是其它条目可以被布置为存储标识虚拟地址的部分转换的至少一个中间级别类型的地址转换数据。该部分转换然后可以结合页面表遍历过程的其余步骤被使用,从而获得将虚拟地址转变为物理地址所需的全部地址转换信息。
在地址转换缓存是这种统一转换缓存时,存在其中分配电路可以处理中间级别类型的地址转换数据的分配的多种方式。在一个实施例中,分配电路被布置为允许将中间级别类型的地址转换数据存储在针对相关联的接收到的转换信息的页面大小的分配条目中,而不管装置的操作模式如何。因此,针对中间级别类型的地址转换数据,与和较小页面相关联的中间级别类型的地址转换数据相比,不存在关于与较大页面相关联的这类中间级别类型的地址转换数据将被存储在哪里的约束。
然而,在一个实施例中,在装置处于至少一个偏斜模式中时,还防止分配电路将已经被保留用于分配与第二页面大小的页面相关联的最终级别类型的地址转换数据的至少一个其他部分用于存储中间级别类型的地址转换数据。这因此使得用于存储与第二页面大小的页面相关联的最终级别类型的地址转换数据的可用条目最大化。
在一个实施例中,当处于至少一个偏斜操作模式时,分配电路被布置为在分配与所述第二页面大小的页面关联的地址转换数据的条目时应用替换策略,以确定是否在所述至少一个其它部分的条目内重写与所述第二页面大小相关联的地址转换数据的另一条目,或是否应用压裂操作来产生要被存储在所述至少一个部分的条目内的针对所述第一页面大小的地址转换数据。因此,这允许在确定是否重写与第二页面大小相关联的地址转换数据的现有条目时的一些灵活性。因此,选择可以由替换策略来管理,例如根据当前占用地址转换数据将来将被使用的可能性。
在一个实施例中,可以提供多个偏斜模式,并且可以由模式控制电路基于进一步的页面分析标准来选择进入哪个偏斜模式。在一个实施例中,这样的多个偏斜模式包括附加地保留至少一个另外部分以用于分配与不同于第一页面大小和第二页面大小的第三页面大小的页面相关联的地址转换数据的偏斜模式。因此,纯粹作为示例,一个路可以被保留以用于分配与64KB页面相关联的地址转换数据,另一个路可以被保留以用于分配与16KB页面相关联的地址转换数据,并且剩余的路可以被保留以用于分配与4KB页面相关联的地址转换数据。
虽然在上述实施例中,执行了在非偏斜操作模式和偏斜操作模式之间的动态切换,以便在维持高性能查找的同时有效使用地址转换缓存,但是也可以考虑其它标准来使用一般方法。例如,在一个实施例中,在非偏斜模式中,分配电路可以被布置为允许针对与接收到的转换信息相关联的页面大小产生地址转换数据,并且将该地址转换数据分配给多个部分中的任何部分。在装置处于非偏斜操作模式中时,查找电路可以被布置为针对地址转换数据执行一系列查找,每个查找假设与每个其他查找不同的页面大小,直到已经检测到命中或已经针对每个页面大小执行了查找。在这样的实施例中,可以优先考虑增加地址转换缓存的有效容量,而不是维持快速查找时间。因此,在查找所花费的时间不被认为是关键的时,可以在非偏斜模式下操作装置,但是在确定查找操作的时间是重要的时,装置可以切换到偏斜操作模式,在该特定布置中,与非偏斜模式相比,偏斜模式具有减小的有效容量。
在又一个实施例中,可以采取混合方法。例如,在一个实施例中,在处于非偏斜模式时,分配电路可以被布置为在与接收到的转换信息相关联的页面大小是第一组页面大小内的多个页面大小中的一个页面大小时,产生针对所述第一页面大小的地址转换数据,或以其他方式可以被布置为允许针对与接收到的转换信息相关联的页面大小产生地址转换数据。根据这样的技术,针对第一组内的页面大小,可以根据需要执行压裂以产生一个指定大小的地址转换数据,但是针对不在该第一组中的页面大小,分配电路将允许利用与接收到的转换信息的相关联的页面大小来分配地址转换数据,并且在查找操作期间,如果需要,则可以针对这样的页面大小执行一个或多个顺序查找。纯粹通过具体示例来说,在非偏斜模式中时,可以决定与4KB、16KB或64KB页面相关的所有接收到的转换信息将被存储为具有相关联的4KB页面大小的地址转换数据,但是针对较大页面(例如,2MB)的接收到的转换信息可能使得产生针对该2MB页面大小的地址转换数据。在查找操作期间,首先可以针对4KB页面大小执行查找,然后如有必要,可以针对2MB页面执行进一步的顺序查找。
现在将参考附图描述特定实施例。
图1示意性地示出了数据处理系统,包括处理器核心10,用于使用虚拟地址VA执行程序指令并且执行数据访问(两种指令都提取并且访问要被操纵的数据)。这些虚拟地址由地址转换电路20进行地址转换从而转换为物理地址PA。物理地址被用来控制对存储器系统15中的指令和数据的访问。存储器系统15可以包括存储器层级结构,例如,多级缓存存储器和主存储器或其他非易失性存储器。
如图1所示,地址转换电路20包括地址转换缓存30,其在一个示例中可以采取转换后备缓冲器(TLB)的形式。地址转换缓存30具有多个条目,其中每个条目存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据。地址转换数据是通过对存储在存储器系统15中的页面表35执行页面表遍历操作来确定的。如稍后将参考图3所讨论的,可以使用多级页面表遍历过程从而参考最终级别描述符来获得使得虚拟地址能够被转变为物理地址的完整地址转换数据,并且该完整地址转换数据可以被存储在地址转换缓存30内。考虑其中地址转换缓存是TLB的示例,TLB通常用来存储这种完整地址转换数据。然而,如稍后将更详细讨论的,地址转换缓存在一个实施例中可以是统一地址转换缓存,不仅允许存储完整地址转换数据,而且允许存储部分地址转换数据(在本文中也被称为中间级别地址转换数据)。
如图1中示意性示出的,在核心10向地址转换电路20发出虚拟地址时,控制电路可以在地址转换缓存30内执行查找操作,以确定在地址转换缓存的一个条目内是否检测到命中。在一个实施例中,地址转换缓存具有组相联结构,并且虚拟地址的某些位可以被用作到地址转换缓存的索引从而标识组,其中该组内的条目被检查以便确定是否检测到命中。如果检测到命中,则可以将转换响应直接返回到处理器核心10,这包括存储在地址转换缓存内的命中条目内的物理地址位和相关联的属性。基于该信息,核心然后可以生成物理地址以输出到存储器系统15从而访问所需的指令或要操纵的数据。如果在地址转换缓存内未检测到命中,则地址转换电路20将发起页面表遍历过程以便访问存储器系统内的相关页面表35,从而遍历描述符序列直到获得最终级别描述符,此时可以确定完整地址转换数据,并且然后可以将适当的转换响应返回给核心。在该过程中,地址转换缓存30内的一个或多个条目可以被分配用于存储从访问的描述符导出的地址转换数据。这有可能使得随后发出的虚拟地址在地址转换缓存中产生命中,从而减少访问时间。
图2是示意性地示出地址转换过程的图示。可以认为虚拟地址50包括标识虚拟页面号的多个位55以及标识页面偏移量的一些其他位60。形成虚拟页面号的位的数量和形成页面偏移量的位的数量将取决于页面大小。由地址转换电路20执行的地址转换操作由图2中示出的元素65示意性地示出,并且该地址转换操作用于获得足以使得虚拟页面号位55能够被转换成标识物理页面号的物理地址80的等同位70地址转换信息。页面偏移位未被改变,因此页面偏移位75根据虚拟地址中的页面偏移位60被直接确定。
图3是示意性地示出假设使用单级地址转换机制的情况下的页面表遍历操作的图示。在该示例中,假设虚拟地址是48位,并且因此虚拟地址100具有与不同级别的页面表遍历相关联的一系列9位部分,其中12个最低有效位表示页面偏移。
在页面表遍历过程开始时,基址寄存器被访问以识别用于标识页面表115的基地址110。与零级页面表遍历过程相关联的9位105用于标识到该页面表115的索引,并因此标识中间级别描述符117。该中间级别描述符117提供用于标识另一页面表130的基地址120,其中一级虚拟地址位125用于标识到该表的索引。这标识了中间级别描述符132,该中间级别描述符132提供标识页面表145的另一基地址135。2级虚拟地址位140然后用于提供到该表145的索引从而标识中间级别描述符147,该中间级别描述符147然后提供标识最终页面表160的基地址150。3级虚拟地址位155然后提供到该表160的索引,标识最终级别描述符162(也称为页面描述符或叶描述符)。利用由页面描述符提供的信息,然后可以生成用于存储在TLB 30的一个条目中的、使得虚拟页面号55能够被转变为物理页面号70的地址转换数据,由此允许存储器中的所需的页面被识别。这然后使得能够通过核心10向存储器系统15发出所需的物理地址来访问对应于虚拟地址的数据(或指令)的特定条目。
应该注意的是,在一些实施例中,最终级别描述符可以在页面表遍历过程中的较早级别处被指定。例如,描述符147可以具有块字段,该块字段在被设置时指示该描述符是块描述符,该块描述符是一种最终级别描述符,而不是中间级别描述符。因此,描述符147内的信息可以被用来产生完整地址转换数据。
因此将意识到,返回到地址转换电路20以使得地址转换数据能够被分配到地址转换缓存中的地址转换信息可以与各种不同的页面大小相关。例如,如果最终级别描述符是描述符162(即,叶描述符),则接收到的转换信息可以例如与4KB大小的页面相关。相反,如果最终级别描述符是块描述符,则相关联的页面大小可能显著地更大。例如,如果图3中的描述符147是这类块描述符,则在一个实施例中它可以与2MB页面大小相关。此外,可以采用其他技术,其允许根据接收到的转换信息生成不同大小的地址转换数据。例如,在一些系统中已知在其中多个描述符满足页面对齐标准并且具有相同属性数据的特定情况下创建合并的TLB条目。考虑叶描述符与4KB页面相关的情况,这例如意味着可以根据多个这类描述符创建针对合并的16KB页面的地址转换数据,以用于存储在地址转换缓存内。使用软件连续提示(CH)技术还可以允许将页面组作为更大的页面保存在地址转换缓存中,这样的技术提供软件控制的合并机制。这例如可以允许根据多个最终级别描述符生成针对64KB页面大小的地址转换数据。
为了增加地址转换缓存30的有效容量,允许地址转换缓存保存针对不止一个页面大小的地址转换数据是有用的。然而,这可能使得用于确定地址转换缓存是否保存针对指定虚拟地址的地址转换数据的查找过程复杂化,并因此可能影响性能。具体地,当地址转换缓存被布置为组相联缓存时,需要执行查找的组可能取决于页面大小,因为将根据假设的页面大小从虚拟地址中选择不同的索引位。这可能意味着在可以确定在这类组相联地址转换缓存中是存在命中还是存在未命中之前,需要执行多个顺序查找。
如将参考以下实施例更详细讨论的,在一个实施例中,控制电路25包括模式控制电路,该模式控制电路可以根据页面大小分析操作将地址转换电路20的操作模式在非偏斜模式和至少一个偏斜模式之间进行动态地切换。在非偏斜模式中,在分配地址转换缓存的条目以存储地址转换数据时,分配电路(其在一个实施例中可以被认为是控制电路25的一部分)被布置为允许地址转换数据被分配给组相联地址转换缓存的任意路中(如前所述,通常使用虚拟地址的选择的索引位来确定组,其中这些选择的索引位取决于与地址转换数据相关联的页面大小)。
然而,在一个实施例中,为了设法确保快速查找时间,分配电路可以被布置为产生针对固定页面大小(例如,4KB)的地址转换数据,而不管从页面表遍历操作返回的与接收到的转换信息相关联的页面大小如何。具体地,在其中与接收到的转换信息相关联的页面大小大于该固定页面大小的情况下,分配电路可以执行压裂操作以产生针对固定页面大小的地址转换数据。因此,在非偏斜模式下,地址转换数据可以被分配在任意路内,但是可能被约束为固定大小,以便可以执行单个查找,从而确保快速处理查找操作。
然而,如果基于页面大小分析操作,模式控制电路确定模式应当转换到偏斜模式,则分配电路被布置为在执行分配过程时保留至少一个路以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他路以用于分配与大于第一页面大小的第二大小的页面相关联的地址转换数据。因此,考虑前面提到的支持合并的示例,并且因此在一些情况下可以生成针对16KB页面大小的地址转换数据,而不是与叶描述符相关联的4KB地址转换数据,在处于偏斜模式中时,分配电路可以保留一个路以用于存储这类合并的地址转换数据,而所有其余的路被保留用于存储与4KB页面相关联的地址转换数据。
通过以这种方式约束对路的使用,仍然可以确保可以执行快速查找操作,即使允许地址转换缓存30存储针对多个不同页面大小的地址转换数据。具体地,可以在被保留用于存储较大页面大小的路内并行执行查找,同时还在用于与较小页面大小的页面相关联的地址转换数据的其他路内执行查找。
这种技术可以被扩展,以提供不止一个偏斜模式。例如,可以提供一个或多个其他偏斜模式,其中一个路被保留用于与第三页面大小有关的地址转换数据,另一个路被保留用于与第二页面大小有关的地址转换数据,并且所有其余的路被保留用于与第一页面大小相关联的地址转换数据。
因此,在地址转换电路被置于一个偏斜操作模式内时,地址转换缓存30的有效容量通过允许与较大页面大小相关联的地址转换数据被存储在地址转换缓存内而增加,并且这是在不影响查找操作的性能的情况下通过约束如何使用路来存储每个页面大小的地址转换数据来完成的。
图4是示意性示出根据一个实施例的可以在地址转换缓存30的每个条目内提供的字段的图示。如图所示,条目200可以包括虚拟地址部分205,该虚拟地址部分205包括一定数量的虚拟地址位。存储在该字段中的位的数量将取决于实施例,但是假设图3的其中在多级页面表遍历过程期间使用48位虚拟地址的最高有效36位的先前示例,则位47到12可以存储在虚拟地址字段205内。相应的物理地址字段210用于存储相应的物理地址位。在条目存储完整地址转换数据时,这些物理地址位将表示在将虚拟地址转换为物理地址时使用的相应的物理页面号。在一个实施例中,地址转换缓存可以仅用于存储这种完整地址转换数据。然而,在替代实施例中,地址转换缓存可以附加地存储部分地址转换数据。在条目存储部分地址转换数据时,字段210中的物理地址位将被用来标识部分转换,例如,标识页面表遍历过程内的下一个页面表的基地址。因此,在检测到关于部分地址转换数据的命中时,这可以使得页面表遍历过程的一部分能够被避免,而仅仅需要完成页面表遍历过程的其余部分以便识别完整地址转换数据。
在一个实施例中,提供页面大小字段215,用于指示存储器系统内与存储在该条目中的地址转换数据相关联的页面的页面大小。字段220用于存储与地址转换数据相关联的其他属性数据。这些属性可以采取各种形式,并且可以例如包括访问权限、和存储器类型信息(例如,相关联的页面是否涉及存储器的写回区域、不可缓存的区域等等)。其他字段222用于存储有效位以标识条目是否存储有效信息。
如果需要,可以提供可选字段225,用于指示存储在相应条目内的地址转换数据的条目类型。例如,该字段中的信息可以用于标识其中地址转换数据是根据多个相邻描述符形成的合并地址转换数据的情况。在地址转换缓存不仅存储完整地址转换数据而且还可以存储部分地址转换数据的实施例中,条目类型可以用于标识该条目涉及完整地址转换数据还是涉及部分地址转换数据。
在另一实施例中,可以将页面大小信息编码为“类型”信息的一部分,使得页面大小字段215和类型字段225在逻辑上组合成表示类型和大小的单个字段,由此潜在地减少类型和大小字段的组合所需的存储的量。
图5是示出根据一个实施例的在图1的控制电路25内提供的组件的框图。提供分配电路310,用于基于作为针对存储器中的页面表35执行的页面表遍历操作的结果而提供的接收到的转换信息,将地址转换数据分配到地址转换缓存30的条目中。分配电路310的操作取决于来自模式控制电路300的控制信号,具体地取决于模式控制电路是将地址转换电路20置于非偏斜操作模式中还是置于偏斜模式的操作中。根据前面的讨论,在一个实施例中,在处于非偏斜模式时,分配电路310将生成用于存储在地址转换缓存的分配的条目中的地址转换数据,使得该地址转换数据与固定页面大小相关联,独立于与接收到的转换信息相关联的页面大小。
然而,如果模式控制电路将地址转换电路20置于偏斜操作模式中,则一个或多个路可以被保留以用于与较大页面大小相关联的地址转换数据。相应地,基于接收到的转换信息,分配电路310可以决定生成较大页面大小的地址转换数据并且将其存储在用于较大页面大小的一个保留路内,或决定执行压裂操作从而生成针对较小页面大小的地址转换数据以存储在一个其他路内。例如,如果在偏斜操作模式中保留了用于存储与16KB页面相关联的地址转换信息的路,则在接收到的转换信息表示针对16KB合并页面的信息时,分配电路可以确定应当生成针对16KB页面的地址转换数据并且将其存储在保留路内。然而,如果对于由虚拟地址的相关位标识的组,在用于16KB页面大小的保留路中已经存在有效条目,则根据替换策略,分配电路可以实际上决定不生成针对16KB页面大小的地址转换数据,而是生成针对4KB页面大小的地址转换数据,并且将该地址转换数据存储在使用针对4KB页面大小的相关索引位标识的组的一个其他路内。
在一个实施例中,针对与最小页面大小(在一个实施例中假设为4KB页面大小)有关的任何接收到的转换信息,分配电路将生成针对该4KB页面大小的地址转换数据,并将其存储在未被保留用于较大页面大小的一个路内。
查找电路315用于基于接收到的虚拟地址在地址转换缓存内执行查找操作。所执行的查找操作将基于地址转换电路20当前是在非偏斜模式中操作还是在偏斜模式中操作。在非偏斜模式中,假设在一个实施例中,分配电路310将总是生成针对最小页面大小(例如,4KB页面大小)的地址转换数据,并且然后允许该地址转换信息被存储在任意路中。因此,在接收到虚拟地址并且地址转换电路在非偏斜模式中操作时,来自虚拟地址的适用于4KB页面大小的相关索引位被用来标识组,并且然后在该组的所有路内执行单个查找以确定是否存在命中。如果该条目的有效位被设置、页面大小信息匹配、并且与字段205中的相应虚拟地址位相比的虚拟地址的位匹配,则针对该条目检测到命中。在没有命中的情况下,然后可以发起页面表遍历过程以获得所需的地址转换信息。
相反,如果地址转换电路在偏斜模式中操作,则可以针对由偏斜模式支持的每个页面大小并行执行查找。例如,如果一个路被保留用于与16KB页面相关联的地址转换数据,并且其余的路被保留用于与4KB页面相关联的地址转换数据,则针对4KB页面的相关索引位可以被用来标识一个组,其中在该组的相关的路中执行查找,同时与16KB页面大小相关的不同选择的索引位被用来标识另一个组,其中在被保留用于16KB页面的该组的路中并行执行查找。相应地,虽然在偏斜模式中地址转换缓存可以存储针对多个不同页面大小的地址转换数据,但是查找过程仍然可以被快速且有效地执行,以便确定地址转换缓存内是否存在命中。
无论是使用非偏斜模式还是偏斜模式,在命中的情况下,都可以直接使用命中条目的内容生成转换响应。在未命中的情况下,将执行页面表遍历操作以便获得所需的转换信息,然后使得转换响应能够被返回到核心10。在一个实施例中,分配电路310还将基于来自页面表遍历过程的返回的转换信息来分配地址转换缓存内的条目。
模式控制电路300应用页面大小分析操作来确定在任何时间点应当将地址转换电路20放置在何种模式中。在一个实施例中,模式控制电路300基于来自页面表遍历过程的接收到的转换信息的多个实例来维持页面大小历史305。该页面大小历史可以与预定的滑动时间窗相关,或可以捕捉关于先前接收到的转换信息的条目的某个预定数量的信息。具体地,保留与历史时段内的接收到的转换信息的每个条目相关联的页面大小,其中模式控制电路参考该信息以确定装置是适合在非偏斜模式中操作还是适合在偏斜模式中操作。
例如,如果被访问的大部分页面是最小的页面大小,则模式控制电路可以适合于在非偏斜模式中操作,因为这可以代表地址转换缓存的最有效使用。具体地,在使用较大页面大小相对较少时,针对较大页面大小保留一个或多个路可能是不合适的。但是,如果页面大小大于最小页面大小的比例相对较高,则这可以用于指示应当切换到偏斜操作模式。在一个实施例中,模式控制电路可以使用启发式算法来确定何时在非偏斜模式和偏斜模式之间进行切换。此外,在提供不止一个偏斜模式的实施例中,可以执行对页面大小历史的更详细分析,以便不仅确定何时切换到偏斜模式,而且还确定切换到哪个偏斜模式。例如,在16KB和64KB页面大小针对从页面表遍历操作返回的转换信息被相当频繁地使用时,提供以下偏斜模式可能是合适的,其中至少一个路被保留用于16KB页面大小的地址转换数据,另一个路被保留用于64KB地址转换数据,其余的路则用于4KB地址转换数据。相反,如果在支持的较大页面大小中仅16KB页面大小被相对频繁地使用,则以下偏斜模式可能是更优选的,其中一个或多个路被保留用于16KB地址转换数据,所有其余的路被保留用于4KB地址转换数据。
在一个实施例中,除了基于接收到的转换信息维持页面大小历史305之外,模式控制电路300还可以跟踪多个先前查找的转换缓存命中/未命中信息。具体地,在一个实施例中,在确定是否从偏斜模式切换回到非偏斜模式时,可以使用该信息。例如,虽然页面大小历史305可以指示较大页面大小的出现已经降低到阈值水平以下,但是如果来自转换缓存的命中/未命中信息指示针对与较大页面尺寸中的一个相关的地址转换数据仍然相对频繁地检测到命中,则这可能使得模式控制电路暂时保持在偏斜操作模式内。
图6是示意性地示出根据一个实施例的如何使用虚拟地址来访问组相联地址转换缓存内的条目的图示。具体地,虚拟地址400内的一定数量的索引位405将基于关于页面大小的假设被标识,并且这些位将被用作到组相联结构中的各个路415、417、419的索引,从而标识在每个路中包括一个条目的组420。该组内的那些条目的内容然后可以被路由到比较电路430,其中虚拟地址的剩余最高有效位410(即,比索引位更高的位)将与每个条目的虚拟地址字段425中的相应位进行比较以检测是否存在命中。如前所述,将仅考虑被标记为有效的条目,并且其他标准也可能需要被满足才能检测到命中(例如,页面大小匹配)。
在图7中示意性地示出了针对包括部分450、455、460、465、470的48位虚拟地址400的示例,页面大小将如何影响从虚拟地址中选择的索引位405。图7中针对实施例1和2示出的两个表假设具有512组的地址转换缓存。考虑第一实施例1,假设4KB的页面大小,位20至12(即,与3级页面表遍历过程相关联的那些位)被选择为索引位,位47至21则形成比较位。在该示例中,假设页面大小指示4KB的条目将与前面讨论的叶类型的完整地址转换数据相关。
但是,如前所述,完整地址转换数据也可以根据块描述符来确定,在这种情况下,有效页面大小更大。例如,条目可以包括与在2级页面表遍历过程处标识的块描述符相关联的完整地址转换数据。这类条目的页面大小可以是2MB,在这种情况下,位29至21被用作索引位,并且位47至30被用作比较位。类似地,对于与在1级页面表遍历过程处的块描述符相关联的完整地址转换数据,可以使用1GB页面,并且在这种情况下,索引位由位38至30形成,并且位47至39被用作比较位。
应当理解的是,块描述符不需要在多个级别处被提供,事实上在一些实施例中,可以不使用这类块描述符。然而,如实施例2所示,即使在未使用块描述符的情况下,如果使用前述合并技术或软件连续提示(CH)技术,则仍可以具有不同页面大小的完整地址转换数据。因此,叶描述符可以仍然与4KB页面大小相关,其中索引位和比较位如前面针对实施例1所讨论的那样。然而,可以生成合并条目以形成与16KB页面相关联的地址转换数据,其中位22至14将被用作索引位,而位47至23被用作比较位。
可选地,64KB页面大小也可以与地址转换数据相关联,例如,在设置连续提示位的情况下,使得发生软件管理的地址转换信息的合并。在该实施例中,位24至16可以用作索引位,而位47至25用作比较位。
图8是示出根据一个实施例的图5的模式控制电路的操作的流程图。在步骤500处,确定是否从存储器系统接收到新的转换信息的条目。在接收到转换信息的每个条目时,模式控制电路识别相关联的页面大小,并更新存储装置305内的页面大小历史。在步骤510处,然后分析页面大小历史,以确定其是指示应该使用偏斜模式还是指示应该使用非偏斜模式。如前所述,在一个实施例中,启发式算法可以用于该过程,其中指定了一些阈值,使得在超过大页面大小阈值时,指示应当使用偏斜模式。因此,如判定框515所示,如果确定已经超过大页面大小阈值,则在步骤520处将选择偏斜模式。如前所述,在其中提供不止一个偏斜模式的实施例中,可以执行对页面大小历史的更详细分析,以便准确地确定在步骤520处要选择哪个偏斜模式。
如果没有超过大页面大小阈值,则在一个实施例中,在步骤530处选择非偏斜模式。然而,在一个可选实施例中,可以评估如判定框525指示的附加标准,而不是从方框515直接进行到选择非偏斜模式的否定路径。具体地,如果地址转换电路当前正在偏斜模式中操作,并且由模式控制电路接收到的转换缓存命中/未命中信息指示针对(一个或多个)较大页面仍然发生大量命中,则可以决定保持在偏斜模式中,由此路径分支到步骤520。然而,如果不是这种情况,则过程进行到步骤530,其中选择非偏斜模式。
图9示意性地示出了根据一个实施例的由图5的分配电路310执行的分配过程。在步骤550处确定是否要在地址转换缓存内分配条目。如果是,则在步骤555处确定装置当前是否在非偏斜模式中操作。如果是,则在一个实施例中,在步骤560处确定针对接收到的转换信息(即,将被用于制定要被存储在分配的条目内的地址转换数据的转换信息)的页面大小是否与大于4KB的页面大小相关(在该实施例中,假设最小支持的页面大小是4KB)。假设与接收到的转换信息相关联的页面大小不大于4KB,则在步骤565处,地址转换数据仅直接根据接收到的转换信息来创建。然而,如果页面大小大于4KB,则在步骤570处使用压裂过程来根据接收到的转换信息产生针对4KB页面大小的地址转换数据。在一个实施例中,生成的地址转换数据将与4KB页面大小相关,这将产生针对感兴趣的虚拟地址的命中。具体地,通常情况下,接收到的转换信息将由页面表遍历过程产生,该页面表遍历过程本身是由于针对从核心接收到的虚拟地址在地址转换缓存中检测到未命中而产生的。在执行压裂操作的时候,在执行压裂操作以产生地址转换数据时,将考虑包括感兴趣的虚拟地址的4KB范围。
无论过程是否通过步骤565或570进行,在步骤575处,所得到的地址转换数据然后可以被存储在由替换策略选择的经标识的组的任意路中。具体地,相关索引位将被用于标识适当的组,并且然后应用替换策略来标识该组内的哪个条目将被用作分配的条目。例如,假设组中的所有条目都是有效的,替换策略可以采用任意标准方案(例如,最近最少使用(LRU)),以便标识将用于分配新地址转换数据的受害者(victim)条目。如果至少一个条目是无效的,则无效条目中的一个将被用作分配的条目。
如果在步骤555处确定装置在偏斜模式中操作,则在步骤580处确定针对接收到的转换信息的页面大小是否大于4KB。如果不是,则在步骤590处根据接收到的转换信息创建地址转换数据,并且将该地址转换数据存储在由替换策略选择的被保留用于4KB页面的一个路中。
然而,如果接收到的转换信息的页面大小大于4KB,则在步骤585处分配电路可以针对指示的页面大小创建地址转换数据(假设指示的页面大小是偏斜模式中支持的一个页面大小),并且然后将该地址转换数据存储在被保留用于该页面大小的路的条目中。然而,考虑使用该页面大小标识的组,可以被分配的一个或多个条目可能已经包含针对该页面大小的有效数据。在这样的情况下,基于替换策略,可以决定用新的地址转换数据重写那些现有条目中的一个条目,或者可以确定应当保留地址转换缓存内已有的信息,此时可以采用压裂操作以产生针对减小的页面大小的地址转换数据,并且该生成的地址转换数据然后被存储在保留用于该较小页面大小的另一个路中。
因此,举例来说,如果偏斜模式保留一个路以用于存储与16KB页面相关联的地址转换数据,并且保留所有其他路以用于4KB地址转换数据,则在接收到的转换信息与16KB的页面大小相关时,替换策略的应用可以使得生成针对16KB的页面大小的新的地址转换数据,并且该地址转换数据然后重写地址转换缓存中的保留路内的另一有效16KB条目,或者可以决定保留该有效条目,并且替代地执行压裂操作以生成针对4KB页面大小的地址转换数据,并且该地址转换数据然后被存储在同样由替换政策决定的一个其他路中。
还应该理解的是,在偏斜模式的上述具体示例中,如果接收到的转换信息与64KB页面相关,则在任何情况下都将需要执行压裂操作以便生成可以存储在地址转换缓存内的地址转换数据。根据替换策略,压裂操作可以产生16KB页面大小以存储在保留用于该页面大小的路中,或者替代地压裂操作可以产生针对4KB页面大小的地址转换数据以存储在一个其他路中。
图10是示出根据一个实施例的由图5的查找电路315执行的查找过程的流程图。在步骤600处,确定是否已经从核心10接收到新的虚拟地址,并且在接收到这样的虚拟地址时,在步骤605处确定装置当前是否在非偏斜模式中操作。如果是,则在步骤610处,假设4KB页面大小,根据虚拟地址确定索引位。在步骤615处,然后在经标识的组的所有路中执行查找,以便确定是否检测到命中。如果在步骤620处检测到命中,则在步骤625处使用命中条目中的地址转换数据创建返回到核心10的转换响应,然后过程返回到步骤600。在未命中的情况下,过程进行到步骤655,其中执行页面表遍历过程以获得所需的转换信息,然后根据该转换信息创建转换响应。如先前所讨论的,此外,分配电路310可以分配地址转换缓存内的条目以存储根据该接收到的转换信息导出的地址转换数据。
如果在步骤605处确定装置当前在偏斜操作模式中操作,则在步骤630处,针对由偏斜模式支持的每个页面大小(即,针对在地址转换缓存中可以分配条目的每个页面大小)确定索引位。然后,在步骤635,使用生成的索引并行执行查找。具体地,每个索引将标识一个组,并且使用该索引的查找是针对被保留用于与该索引相关联的页面大小的经标识的组的路执行的。在图11中示意性地示出了针对以下示例场景的过程,其中路0710被保留用于16KB页面的地址转换数据,而所有其余的路720被保留用于与4KB页面相关联的地址转换数据。如针对虚拟地址700示意性示出的,虽然第一索引705将被用于标识路0内的组,其中索引位是针对16KB页面大小来选择的,但是不同的索引715将被用于标识基于针对4KB页面大小选择的索引位的组。第一索引705将被用于访问路0 710内的条目,并且然后将该条目的虚拟地址位以及虚拟地址的剩余位(这些剩余位是比用于路0中的查找的索引位更高的位)一起转发到比较器725。比较器输出725然后将指示针对16KB页面是存在命中还是存在未命中。类似地,使用索引715,将在由索引715标识的组的所有其他路中执行查找,其中来自每个有效条目的VA位被转发到相应的比较器电路730,该相应的比较器电路730还将接收虚拟地址700的剩余最高有效位(即,比索引位715更高的位)。因此,来自比较器块730的输出将标识针对与4KB页面相关联的地址转换数据是存在命中还是存在未命中。
返回到图10,然后在步骤640处确定是否已经检测到命中。如果是,则在步骤645处确定是否存在多个命中。具体地,从图11可以看出,在该示例中,最多可以检测到两个命中。在没有多个命中的情况下,过程直接进行到步骤625,使用命中条目的地址转换数据创建转换响应。然而,在多个命中的情况下,在一个实施例中,如步骤650所示,针对较大页面大小选择命中。因此,关于图11的示例,来自比较器块725的任何命中将优先于来自比较器块730的命中。在步骤625处,将使用来自该命中条目的地址转换数据创建转换响应。
如方框650示出的,在一个实施例中,替换策略可以被更新以有效降级与同样产生命中的较小页面大小相关联的地址转换数据。这会优先将包含该地址转换数据的条目标记为适于收回的条目,以便在适当的时候由分配电路310分配的新分配的地址转换数据重写该信息。
如图10所示,如果在步骤640处未检测到命中,则在步骤655处发起页面表遍历过程以便获得所需的地址转换信息。
在一个实施例中,地址转换电路20可以直接耦合到核心10,但是如图12所示,在替代实施例中,可以存在中间结构805。具体地,核心800可以访问全相联微TLB 805,其中首先在微TLB中执行查找,并且在微TLB中存在未命中的情况下仅将虚拟地址传送到地址转换电路20(在该实施例中为组相联TLB 810)。
在这样的实施例中,假设组相联TLB 810采用上述实施例的机制,并且因此可以以前面讨论的多模式方式进行操作,其中按需支持压裂操作。然而,在图12示出的实施例中,假设全相联微TLB不使用上述技术,并且在单一模式中操作。在该实施例中还假设针对全相联微TLB不支持压裂操作。因此,在向组相联TLB提供(根据页面表遍历生成的)转换信息时,使得能够生成可以经由微TLB向核心800转发的转换响应,然后在组相联TLB内执行分配操作时,为了说明,使用压裂操作来生成针对较小页面大小(与由页面表遍历响应的转换信息指示的页面大小相比)的地址转换数据,该页面表行遍历响应还可以通过转发路径被转发到全相联微TLB,其中条目可以被分配用于与页面表遍历响应相关联的页面大小的地址转换数据。
作为结果,上述针对组相联TLB可以采用的技术在不需要进行任何必要修改的情况下可以适用于相联微TLB,该微TLB能够以其标准方式进行操作。
如前所述,在一个实施例中,地址转换缓存仅被布置为存储完整地址转换数据,使得能够确定与指定的虚拟地址相关联的物理地址。然而,在替代实施例中,地址转换缓存可以是统一转换缓存,使得除了上述标识从虚拟地址到物理地址的完整转换的最终级别类型的地址转换数据之外,一个或多个条目还可以存储标识虚拟地址的部分转换的中间级别类型的地址转换数据。然后可以结合页面表遍历过程的其余步骤使用该部分转换,从而获得将虚拟地址转换为物理地址所需的完整地址转换信息。
在一个这样的实施例中,针对完整地址转换数据采用上述技术,并且如图13所示,部分地址转换数据被不同地处理。具体地,如步骤850指示的,如果分配电路确定条目需要被分配用于部分地址转换数据,则在步骤855处确定装置当前是否在非偏斜模式中操作。如果是,则在步骤860处,部分地址转换数据根据接收到的转换信息利用指示的页面大小被创建,并且被存储在由替换策略选择的经标识的组的任意路中。因此,在非偏斜模式中,针对部分地址转换数据不需要压裂操作,并且接收到的转换信息可以“按现状”被有效地用来形成部分地址转换数据。具体地,应当认识到,在执行针对部分地址转换数据的查找时,时间并不重要,因为即使存在命中,在可以确定最终地址转换之前还将需要一个或多个页面表遍历过程,因此在地址转换电路20内仅检测到部分地址转换数据命中的情况下,在转换虚拟地址时将花费大量时间。因此,为了增加针对部分地址转换的有效容量,在步骤860处机制可以允许多个不同大小的部分地址转换数据被存储在经标识的组的任意路中。在针对部分地址转换数据执行查找操作时,可能需要执行多个顺序查找以便检查每个可能的页面大小。
然而,如果确定装置在一个偏斜模式中操作,则如步骤865指示的,已经被保留用于较大大小的完整地址转换数据的一个或多个路被隔离,使得它们不能被用于部分地址转换数据。具体地,在步骤865处,部分地址转换数据仍然根据接收到的转换信息利用接收到的转换信息的指示的页面大小被创建,但是其被限制为被存储在被保留用于4KB页面大小的完整转换数据的经标识的组的一个路中。因此,被保留用于较大页面大小以用于完整转换数据的任意路都不具有填充有部分地址转换数据的条目。
在一个实施例中,在从核心10接收到新的虚拟地址时,查找电路可以首先执行针对完整地址转换数据的查找,并且如果存在未命中,则可以发起针对部分地址转换数据的所需查找序列。
根据上述实施例,非偏斜操作模式和偏斜操作模式被布置,以便在处理完整地址转换数据时寻求优化查找性能。具体地,在非偏斜模式中,分配电路可以被布置为使得分配到地址转换缓存中的所有完整地址转换数据都与相同的页面大小相关,由此使得能够执行单个查找。在偏斜模式下,特定路可以被保留用于特定页面大小,允许并行执行多个查找,从而保持查找操作的速度。然而,在其他实施例中,可以确定的是增加地址转换缓存的有效容量比维持快速查找时间更重要。在该情况下,在至少非偏斜操作模式中应用的分配策略可以被改变。
例如,在一个实施例中,在非偏斜模式中,分配电路可以被布置为允许针对与接收到的转换信息相关联的页面大小产生完整地址转换数据,并将其分配给任意路。在装置处于非偏斜操作模式中时,查找电路可以被布置为针对完整地址转换数据执行一系列查找,每个查找假设与每个其他查找不同的页面大小,直到已经检测到命中或已经针对每个页面大小都执行了查找。通过这种方法,可以优先考虑增加地址转换缓存的有效容量,而不是维持快速的查找时间。因此,在查找所花费的时间不被认为是关键的时候,可以在非偏斜模式中操作装置,但是在确定查找操作的时间是重要的时候,装置可以切换到偏斜操作模式。如果偏斜模式根据先前实施例中描述那样操作,则与上述非偏斜模式的变型相比,该实例中的偏斜模式具有减小的有效容量。
在又一个实施例中,可以采取混合方法。例如,在一个实施例中,在处于非偏斜模式中时,分配电路可以被布置为在与接收到的转换信息相关联的页面大小是第一组页面大小内的多个页面大小中的一个页面大小时产生针对第一页面大小(例如,4KB页面大小)的地址转换数据,或可以以其他方式被布置为允许针对与接收到的转换信息相关联的页面大小产生地址转换数据。根据这样的技术,针对第一组内的页面大小,可以根据需要执行压裂以产生一个指定大小的地址转换数据,但是针对不在该第一组中的页面大小,分配电路将允许利用接收到的转换信息的相关联的页面大小来分配地址转换数据,并且在查找操作期间,如果需要,则可以针对这样的页面大小执行一个或多个顺序查找。这允许针对特定页面大小导出的地址转换数据保持快速查找,而与某些其他页面大小相关联的地址转换数据可能需要更长的查找。
在本申请中,词语“被配置为......”用于表示装置的元件具有能够执行所定义的操作的配置。在这种情况下,“配置”是指硬件或软件互连的布置或方式。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其他处理设备可以被编程为执行功能。“配置为”并不意味着装置元件需要进行任何方式的改变以提供所定义的操作。
虽然已经参考附图详细描述了本发明的说明性实施例,但是应该理解,本发明不限于这些精确的实施例,并且可以由本领域的技术人员在不偏离由所附权利要求限定的本发明的范围和精神的情况下,进行各种改变、添加和修改。例如,在不偏离本发明的范围的情况下,从属权利要求的特征可以与独立权利要求的特征进行各种组合。
Claims (21)
1.一种操作地址转换缓存的装置,包括:
地址转换缓存,具有多个条目,每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据,每个地址转换数据具有与所述地址转换数据相关联的针对所述存储器系统内的页面的页面大小指示;
分配电路,用于执行分配过程以确定要存储在每个条目中的所述地址转换数据;以及
模式控制电路,用于根据页面大小分析操作将所述装置的操作模式在非偏斜模式和至少一个偏斜模式之间进行切换;
所述地址转换缓存被组织为多个部分;
其中在所述非偏斜模式中,所述分配电路被布置为在执行所述分配过程时允许所述地址转换数据被分配给所述多个部分中的任何部分;
其中在所述至少一个偏斜模式中的每一个偏斜模式中,所述分配电路被布置为在执行所述分配过程时保留至少一个部分以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他部分以用于分配与不同于所述第一页面大小的第二页面大小的页面相关联的地址转换数据。
2.如权利要求1所述的装置,其中:
所述分配电路被布置为根据接收到的转换信息来确定要被存储在分配的条目中的所述地址转换数据,所述接收到的转换信息具有相关联的页面大小;
在所述非偏斜模式中,所述分配电路被布置为产生针对所述第一页面大小的地址转换数据,而不管与所述接收到的转换信息相关联的页面大小如何。
3.如权利要求2所述的装置,其中,在与所述接收到转换信息相关联的页面大小大于所述第一页面大小时,所述分配电路被布置为执行压裂操作以根据所述接收到转换信息来产生针对所述第一页面大小的地址转换数据。
4.如权利要求2所述的装置,其中,所述接收到转换信息是通过页面表遍历过程获得的。
5.如权利要求1所述的装置,其中,所述地址转换缓存是N路组相联缓存,并且所述部分中的每一个部分包括所述N路组相联缓存中的路。
6.如权利要求1所述的装置,还包括:
查找电路,用于响应于接收到的虚拟地址而在所述地址转换缓存内执行查找操作,从而确定针对该虚拟地址的地址转换数据是否被存储在所述地址转换缓存的条目内;
其中,在所述装置处于所述至少一个偏斜操作模式中时,所述查找电路被布置为在用于与所述第一页面大小的页面相关联的地址转换数据的所述至少一个部分内并行执行查找,并且在用于与所述第二页面大小的页面相关联的地址转换数据的所述至少一个其他部分内执行查找。
7.如权利要求6所述的装置,其中:
所述地址转换缓存是N路组相联缓存,所述部分中的每一个部分包括所述N路组相联缓存中的路;并且
所述查找电路被布置为选择所述虚拟地址的位的第一子集以标识在用于与所述第一页面大小的页面相关联的地址转换数据的所述至少一个部分内的要进行所述查找的组,并且选择所述虚拟地址的位的第二子集以标识在用于与所述第二页面大小的页面相关联的地址转换数据的所述至少一个其他部分内的要进行所述查找的组。
8.如权利要求1所述的装置,其中,所述第一页面大小小于所述第二页面大小。
9.如权利要求8所述的装置,其中,所述第一页面大小是由所述存储器系统支持的最小页面大小。
10.如权利要求1所述的装置,其中:
所述分配电路被布置为根据接收到的转换信息来确定要被存储在分配的条目中的所述地址转换数据,所述接收到的转换信息的每个实例具有相关联的页面大小;并且
所述模式控制电路被布置为执行作为所述页面大小分析操作的监视操作,所述监视操作监视与所述接收到的转换信息的多个实例相关联的页面大小。
11.如权利要求10所述的装置,其中:
所述模式控制电路被布置为在页面大小大于所述第一页面大小的比例超过针对所述接收到的转换信息的所述多个实例的预定水平时,切换到所述至少一个偏斜模式中的一个偏斜模式。
12.如权利要求10所述的装置,其中,所述模式控制电路还被布置为在执行所述页面大小分析操作时考虑与针对其在所述地址转换缓存中已经检测到命中的地址转换数据的条目相关联的页面大小的历史。
13.如权利要求3所述的装置,其中:
所述地址转换缓存是用于相关联的处理电路的组相联转换后备缓冲器TLB,并且被耦合到全相联微TLB,响应于由所述处理电路发出的虚拟地址,所述地址转换缓存在所述微TLB中检测到未命中时被访问;并且
所述微TLB被布置为存储针对由所述接收到的转换信息指示的页面大小的地址转换数据,独立于所述地址转换缓存的所述分配电路是否执行所述压裂操作。
14.如权利要求1所述的装置,其中:
所述地址转换缓存是统一转换缓存,所述地址转换数据包括标识从所述虚拟地址到所述物理地址的完整转换的最终级别类型的地址转换数据,并且所述地址转换缓存还被布置为存储标识所述虚拟地址的部分转换的至少一个中间级别类型的地址转换数据。
15.如权利要求14所述的装置,其中:
所述分配电路被布置为根据接收到的转换信息来确定要存储在分配的条目中的所述中间级别类型的地址转换数据,所述接收到的转换信息具有相关联的页面大小;并且
所述分配电路被布置为允许将所述中间级别类型的地址转换数据存储在针对相关联的接收到的转换信息的页面大小的分配的条目中,而不管所述操作模式如何。
16.如权利要求15所述的装置,其中,在所述装置处于所述至少一个偏斜模式时,所述分配电路被布置为防止所述中间级别类型的地址转换数据被存储在被保留用于分配与所述第二页面大小的页面相关联的所述最终级别类型的地址转换数据的所述至少一个其他部分内的条目中。
17.如权利要求1所述的装置,其中:
在处于所述至少一个偏斜操作模式时,所述分配电路被布置为在分配与所述第二页面大小的页面相关联的地址转换数据的条目时,应用替换策略以确定是否在所述至少一个其它部分内重写与所述第二页面大小相关联的地址转换数据的另一条目,或是否应用压裂操作来产生要被存储在所述至少一个部分的条目内的针对所述第一页面大小的地址转换数据。
18.如权利要求1所述的装置,其中,所述至少一个偏斜模式包括多个偏斜模式,包括附加地保留至少一个另外部分以用于分配与不同于所述第一页面大小和所述第二页面大小的第三页面大小的页面相关联的地址转换数据的偏斜模式。
19.如权利要求1所述的装置,其中:
所述分配电路被布置为根据接收到的转换信息来确定要被存储在分配的条目中的所述地址转换数据,所述接收到的转换信息具有相关联的页面大小;
在所述非偏斜模式中,所述分配电路被布置为允许针对与所述接收到的转换信息相关联的页面大小产生地址转换数据,并且允许所述地址转换数据被分配给所述多个部分中的任何部分;
所述装置还包括查找电路,用于响应于所述接收到的虚拟地址而在所述地址转换缓存内执行查找操作,从而确定针对该虚拟地址的地址转换数据是否被存储在所述地址转换缓存的条目内;
其中,在所述装置处于所述非偏斜操作模式时,所述查找电路被布置为针对地址转换数据执行一系列查找,每个查找假设与每个其他查找不同的页面大小,直到已经检测到命中或已经针对每个页面大小执行了查找。
20.如权利要求1所述的装置,其中:
所述分配电路被布置为根据接收到的转换信息来确定要被存储在分配的条目中的所述地址转换数据,所述接收到的转换信息具有相关联的页面大小;
在所述非偏斜模式中,所述分配电路被布置为在与所述接收到的转换信息相关联的页面大小是第一组页面大小内的多个页面大小中的一个页面大小时产生针对所述第一页面大小的地址转换数据,或以其他方式被布置为允许针对与所述接收到的转换信息相关联的页面尺寸产生地址转换数据。
21.一种操作地址转换缓存的方法,所述地址转换缓存具有多个条目并且被组织为多个部分,每个条目用于存储在将虚拟地址转变成存储器系统的相应物理地址时使用的地址转换数据,每个地址转换数据具有与所述地址转换数据相关联的针对所述存储器系统内的页面的页面大小指示,所述方法包括:
执行分配过程以确定要存储在每个条目中的所述地址转换数据;以及
根据页面大小分析操作将装置的操作模式在非偏斜模式和至少一个偏斜模式之间进行切换;
当在非偏斜模式中执行所述分配过程时,允许所述地址转换数据被分配给所述多个部分中的任何部分;以及
当在至少一个偏斜模式中执行所述分配过程时,保留至少一个部分以用于分配与第一页面大小的页面相关联的地址转换数据,并且保留至少一个其他部分以用于分配与不同于所述第一页面大小的第二页面大小的页面相关联的地址转换数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/437,581 US10552338B2 (en) | 2017-02-21 | 2017-02-21 | Technique for efficient utilisation of an address translation cache |
US15/437,581 | 2017-02-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108459975A CN108459975A (zh) | 2018-08-28 |
CN108459975B true CN108459975B (zh) | 2023-11-24 |
Family
ID=63167237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810146412.4A Active CN108459975B (zh) | 2017-02-21 | 2018-02-12 | 用于有效使用地址转换缓存的技术 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10552338B2 (zh) |
CN (1) | CN108459975B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102540964B1 (ko) * | 2018-02-12 | 2023-06-07 | 삼성전자주식회사 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
US10824568B2 (en) * | 2018-07-25 | 2020-11-03 | Western Digital Technologies, Inc. | Speculative pre-fetching of flash translation layer tables for use with solid state systems |
US11847064B2 (en) * | 2018-12-07 | 2023-12-19 | International Business Machines Corporation | Buffer and methods for address translations in a processor |
CN110704338B (zh) * | 2019-10-18 | 2021-01-26 | 安徽寒武纪信息科技有限公司 | 地址转换装置、人工智能芯片及电子设备 |
CN113742131B (zh) * | 2020-05-29 | 2024-04-19 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备和计算机程序产品 |
US11734188B2 (en) | 2021-03-11 | 2023-08-22 | International Business Machines Corporation | Unified translation miss queue for multiple address translation modes |
US12105634B2 (en) * | 2021-09-27 | 2024-10-01 | Ati Technologies Ulc | Translation lookaside buffer entry allocation system and method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539466B1 (en) * | 2000-02-21 | 2003-03-25 | Hewlett-Packard Company | System and method for TLB buddy entry self-timing |
CN1846200A (zh) * | 2003-09-03 | 2006-10-11 | 先进微装置公司 | 在处理器中用于减少功耗的微变换检测缓冲器及微标记符 |
CN104583976A (zh) * | 2012-08-18 | 2015-04-29 | 高通科技公司 | 具有预取的转译后备缓冲器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069389B2 (en) * | 2003-11-26 | 2006-06-27 | Microsoft Corporation | Lazy flushing of translation lookaside buffers |
US8140820B2 (en) * | 2008-05-21 | 2012-03-20 | Arm Limited | Data processing apparatus and method for handling address translation for access requests issued by processing circuitry |
US9690714B1 (en) * | 2014-04-07 | 2017-06-27 | Google Inc. | Multiple page-size translation lookaside buffer |
US11106596B2 (en) * | 2016-12-23 | 2021-08-31 | Advanced Micro Devices, Inc. | Configurable skewed associativity in a translation lookaside buffer |
-
2017
- 2017-02-21 US US15/437,581 patent/US10552338B2/en active Active
-
2018
- 2018-02-12 CN CN201810146412.4A patent/CN108459975B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6539466B1 (en) * | 2000-02-21 | 2003-03-25 | Hewlett-Packard Company | System and method for TLB buddy entry self-timing |
CN1846200A (zh) * | 2003-09-03 | 2006-10-11 | 先进微装置公司 | 在处理器中用于减少功耗的微变换检测缓冲器及微标记符 |
CN104583976A (zh) * | 2012-08-18 | 2015-04-29 | 高通科技公司 | 具有预取的转译后备缓冲器 |
Non-Patent Citations (2)
Title |
---|
Thorild Sel´en.Reorganisation in the skewed-associative TLB.《Publications from Uppsala University》.2005,第1-64页. * |
徐鸿明 等.基于高速缓存资源共享的TLB设计方法.《浙江大学学报(工学版)》.2011,第45卷(第3期),第1-6页. * |
Also Published As
Publication number | Publication date |
---|---|
US20180239714A1 (en) | 2018-08-23 |
CN108459975A (zh) | 2018-08-28 |
US10552338B2 (en) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459975B (zh) | 用于有效使用地址转换缓存的技术 | |
CN110998549B (zh) | 地址转换缓存 | |
KR101587361B1 (ko) | 다수의 순차적 어드레스 변환들을 위한 통합된 tlb 구조 | |
US7793049B2 (en) | Mechanism for data cache replacement based on region policies | |
US20170235681A1 (en) | Memory system and control method of the same | |
US9405702B2 (en) | Caching TLB translations using a unified page table walker cache | |
US11409663B2 (en) | Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes | |
US10031854B2 (en) | Memory system | |
US10628318B2 (en) | Cache sector usage prediction | |
US20160140042A1 (en) | Instruction cache translation management | |
US20160019065A1 (en) | Prefetching instructions in a data processing apparatus | |
US20200192817A1 (en) | Methods and Systems for Predicting Virtual Address | |
US6553477B1 (en) | Microprocessor and address translation method for microprocessor | |
US10423534B2 (en) | Cache memory | |
US10489306B2 (en) | Apparatus and method for processing data, including cache entry replacement performed based upon content data read from candidates selected using victim selection | |
US7237084B2 (en) | Method and program product for avoiding cache congestion by offsetting addresses while allocating memory | |
US10545877B2 (en) | Apparatus and method for accessing an address translation cache | |
US11494300B2 (en) | Page table walker with page table entry (PTE) physical address prediction | |
KR100486240B1 (ko) | 분리된 캐쉬 메모리를 구비한 마이크로프로세서 및 메모리 액세스 방법 | |
JP7311959B2 (ja) | 複数のデータ・タイプのためのデータ・ストレージ |
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 |