CN110073338B - 翻译旁视缓冲器中的可配置的偏斜关联性 - Google Patents
翻译旁视缓冲器中的可配置的偏斜关联性 Download PDFInfo
- Publication number
- CN110073338B CN110073338B CN201780076877.0A CN201780076877A CN110073338B CN 110073338 B CN110073338 B CN 110073338B CN 201780076877 A CN201780076877 A CN 201780076877A CN 110073338 B CN110073338 B CN 110073338B
- Authority
- CN
- China
- Prior art keywords
- ways
- subset
- configuration indication
- virtual address
- translation lookaside
- 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 39
- 239000000872 buffer Substances 0.000 title claims abstract description 35
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000006870 function Effects 0.000 claims description 35
- 238000012545 processing Methods 0.000 description 18
- 230000014616 translation Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- 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/30—Providing cache or TLB in specific location of a processing system
- G06F2212/303—In peripheral interface, e.g. I/O adapter or channel
-
- 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/601—Reconfiguration of cache memory
-
- 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/683—Invalidation
-
- 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/684—TLB miss handling
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
描述了用于使用偏斜关联性翻译旁视缓冲器(TLB)来确定物理存储器中的与虚拟地址相对应的地址的方法、装置和系统。使用接收器电路来接收虚拟地址和配置指示。在发生TLB命中的情况下输出与所述虚拟地址相对应的物理地址。所述TLB的多个路的第一子集被配置成保持第一页大小。所述第一子集包括基于所述配置指示的数目个所述路。在发生TLB未命中的情况下从页表检索与所述虚拟地址相对应的物理地址,并且将所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用的路中,所述最少使用的路是根据基于所述配置指示的替换策略而确定。
Description
对相关申请的交叉引用
本申请要求2016年12月23日提交的美国专利申请No.15/389,955的权益,所述申请以引用的方式并入,就好像在本文完全阐述一样。
背景技术
翻译旁视缓冲器(TLB)是在计算系统中用于缓存虚拟-物理地址翻译和操作系统(OS)-页-粒度元数据(例如,读取/写入许可)的硬件结构。TLB对于计算系统中的性能可缩放性较为重要,因为在每次存储器访问时都要查找TLB。因为在每次单个存储器访问时都要访问TLB,所以TLB处于关键时序路径中并且每个处理器核心或加速器可以具有其自身的TLB。
附图说明
通过结合附图借助示例给出的以下描述,可得到更详细的理解,附图中:
图1是可以在其中实施一个或多个公开的替代方案的示例性装置的框图;
图2是说明额外细节的图1的装置的框图;
图3是可以在图1的装置中实施的示例性可配置的偏斜关联性TLB的框图;
图4是说明用于查找图3的可配置的偏斜关联性TLB中的虚拟地址的示例性方法的流程图;以及
图5是说明用于处置图3的可配置的偏斜关联性TLB中的TLB未命中的示例性方法的流程图。
具体实施方式
一些替代方案提供一种用于使用偏斜关联性翻译旁视缓冲器来确定物理存储器中的与虚拟地址相对应的地址的方法。使用接收器电路来接收虚拟地址和配置指示。在发生TLB命中的条件下输出与虚拟地址相对应的物理地址。TLB的多个路的第一子集被配置成保持第一页大小。所述第一子集包括基于所述配置指示的数目个路。
在一些替代方案中,所述多个路的第二子集被配置成保持第二页大小。所述第二子集包括基于所述配置指示的数目个路。在一些替代方案中,在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于配置指示。在一些替代方案中,由偏斜函数基于配置指示来计算到多个路的索引。在一些替代方案中,将虚拟地址的位的子集输入到所述偏斜函数。基于所述配置指示来计算在所述位子集中包括虚拟地址的哪些位。在一些替代方案中,从基本输入输出系统(BIOS)、烧断的熔丝、操作系统(OS)或配置寄存器接收所述配置指示。在一些替代方案中,所述配置指示包括单个位。
一些替代方案提供歪斜关联的翻译旁视缓冲器(TLB)。所述TLB包括多个路、被配置成接收虚拟地址和配置指示的输入电路,以及被配置成在发生TLB命中的条件下输出与虚拟地址相对应的物理地址的输出电路。所述路的第一子集被配置成保持第一页大小。所述第一子集包括基于所述配置指示的数目个路。
在一些替代方案中,所述多个路的第二子集被配置成保持第二页大小。所述第二子集包括基于所述配置指示的数目个路。在一些替代方案中,在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于配置指示。在一些替代方案中,由偏斜函数基于配置指示来计算到多个路的索引。在一些替代方案中,将虚拟地址的位的子集输入到所述偏斜函数。基于所述配置指示来计算在所述位子集中包括虚拟地址的哪些位。在一些替代方案中,从BIOS、烧断的熔丝、OS或配置寄存器接收所述配置指示。在一些替代方案中,所述配置指示包括单个位。
一些替代方案提供包括偏斜关联性翻译旁视缓冲器(TLB)的加速处理装置(APD)。所述TLB包括多个路、被配置成接收虚拟地址和配置指示的输入电路,以及被配置成在发生TLB命中的条件下输出与虚拟地址相对应的物理地址的输出电路。所述路的第一子集被配置成保持第一页大小。所述第一子集包括基于所述配置指示的数目个路。
在一些替代方案中,所述多个路的第二子集被配置成保持第二页大小。所述第二子集包括基于所述配置指示的数目个路。在一些替代方案中,在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于配置指示。在一些替代方案中,由基于配置指示的偏斜函数来计算到多个路的索引。在一些替代方案中,将虚拟地址的位的子集输入到所述偏斜函数。基于所述配置指示来计算在所述位子集中包括虚拟地址的哪些位。在一些替代方案中,从BIOS、烧断的熔丝、OS或配置寄存器接收所述配置指示。在一些替代方案中,所述配置指示包括单个位。
一些替代方案提供一种用于使用偏斜关联性翻译旁视缓冲器(TLB)来确定物理存储器中的与虚拟地址相对应的地址的方法。所述方法包括:使用接收器电路来接收虚拟地址和配置指示;以及在发生TLB未命中的情况下从页表检索与虚拟地址相对应的物理地址。所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用(LRU)的路中。根据替换策略来确定所述LRU路。所述替换策略是基于配置指示。
在一些替代方案中,所述路的子集包括基于配置指示的数目个多个路。在一些替代方案中,在所述子集中包括的多个路的数目与在所述第二子集中包括的路的数目的比率是基于配置指示。在一些替代方案中,由偏斜函数基于配置指示来计算到多个路的索引。在一些替代方案中,将虚拟地址的位的子集输入到所述偏斜函数。基于所述配置指示来计算在所述位子集中包括虚拟地址的哪些位。在一些替代方案中,从BIOS、烧断的熔丝、OS或配置寄存器接收所述配置指示。在一些替代方案中,所述配置指示包括单个位。
一些替代方案提供歪斜关联的翻译旁视缓冲器(TLB)。所述TLB包括多个路、被配置成接收虚拟地址和配置指示以在发生TLB未命中的情况下从页表检索与虚拟地址相对应的物理地址的输入电路,以及被配置成将所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用(LRU)的路中的替换电路。根据替换策略来确定所述LRU路。所述替换策略是基于配置指示。
在一些替代方案中,所述路的子集包括基于配置指示的数目个多个路。在一些替代方案中,在所述子集中包括的多个路的数目与在所述第二子集中包括的路的数目的比率是基于配置指示。在一些替代方案中,由偏斜函数基于配置指示来计算到多个路的索引。在一些替代方案中,将虚拟地址的位的子集输入到所述偏斜函数。基于所述配置指示来计算在所述位子集中包括虚拟地址的哪些位。在一些替代方案中,从BIOS、烧断的熔丝、OS或配置寄存器接收所述配置指示。在一些替代方案中,所述配置指示包括单个位。
一些替代方案提供包括偏斜关联性翻译旁视缓冲器(TLB)的加速处理装置(APD)。所述TLB包括多个路、被配置成接收虚拟地址和配置指示的输入电路。所述输入电路还被配置成在发生TLB未命中的情况下从页表检索与虚拟地址相对应的物理地址。所述TLB还包括替换电路,所述替换电路被配置成将所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用(LRU)的路中。根据替换策略来确定所述LRU路。所述替换策略是基于配置指示。
在一些替代方案中,所述路的子集包括基于配置指示的数目个多个路。在一些替代方案中,在所述子集中包括的多个路的数目与在所述第二子集中包括的路的数目的比率是基于配置指示。在一些替代方案中,由偏斜函数基于配置指示来计算到多个路的索引。在一些替代方案中,将虚拟地址的位的子集输入到偏斜函数;其中基于所述配置指示来计算在所述位子集中包括虚拟地址的哪些位。在一些替代方案中,从BIOS、烧断的熔丝、OS或配置寄存器接收所述配置指示。在一些替代方案中,所述配置指示包括单个位。
图1是可以在其中实施一个或多个公开的替代方案的示例性装置100的框图。装置100包括(例如)计算机、游戏装置、手持装置、机顶盒、电视机、移动电话或平板计算机。装置100包括处理器102、存储器104、存储装置106、一个或多个输入装置108和一个或多个输出装置110。装置100还可以任选地包括输入驱动器112和输出驱动器114。应理解,装置100可以包括在图1中未示出的额外部件。
处理器102包括(例如)中央处理单元(CPU)、图形处理单元(GPU)、位于同一裸片上的CPU和GPU,或一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。存储器104可以位于与处理器102相同的裸片上,或者可以与处理器102分开地定位。存储器104包括(例如)易失性或非易失性存储器,例如随机存取存储器(RAM)、动态RAM,或缓存。
存储装置106包括(例如)固定或可移除的存储装置,例如硬盘驱动器、固态驱动器、光盘,或闪存驱动器。输入装置108包括(例如)键盘、小键盘、触摸屏、触摸垫、检测器、麦克风、加速度计、陀螺仪、生物识别扫描仪,或网络连接(例如,用于传输和/或接收无线IEEE802信号的无线局域网卡)。输出装置110包括(例如)显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线,或网络连接(例如,用于传输和/或接收无线IEEE 802信号的无线局域网卡)。
输入驱动器112与处理器102和输入装置108通信,并且准许处理器102从输入装置108接收输入。输出驱动器114与处理器102和输出装置110通信,并且准许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选的部件,并且在不存在输入驱动器112和输出驱动器114的情况下,装置100将以相同的方式操作。输出驱动器116包括耦合到显示装置118的加速处理装置(“APD”)116。APD被配置成从处理器102接受计算命令和图形渲染命令、处理那些计算和图形渲染命令,并且向显示装置118提供像素输出以供显示。
如下文进一步详细描述,APD 116包括被配置成根据单指令多数据(“SIMD”)范式执行计算的一个或多个并行处理单元。因此,虽然在本文将各种功能性描述为是由APD 116执行或与APD 116联合执行,但被描述为由APD 116执行的功能性还可以由具有类似能力的其他计算装置执行,所述其他计算装置不由主机处理器(例如,处理器102)驱动且被配置成向显示装置118提供图形输出。举例来说,预期根据SIMD范式执行处理任务的任何处理系统可以被配置成执行在本文所描述的功能性。替代地,预期不根据SIMD范式执行处理任务的计算系统可以执行在本文所描述的功能性。
图2是装置100的框图,其说明与APD 116上的处理任务的执行相关的额外细节。处理器102在系统存储器104中维持一个或多个控制逻辑模块以供处理器102执行。控制逻辑模块包括操作系统120、内核模式驱动器122和应用126。这些控制逻辑模块控制处理器102和APD 116的操作的各个方面。举例来说,操作系统120直接与硬件通信并且为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过(例如,应用126)向在处理器102上执行的软件提供应用编程接口(“API”)来控制APD 116的操作,以访问APD 116的各种功能性。内核模式驱动器122还包括即时编译器,所述即时编译器编译程序以供APD 116的处理部件(例如,在下文进一步详细论述的SIMD单元138)执行。
APD 116执行选定功能的命令和程序,例如适合于并行处理的图形操作和非图形操作。APD 116可以用于执行图形管线操作,例如像素操作、几何计算,并且基于从处理器102接收的命令而向显示装置118渲染图像。APD 116还基于从处理器102接收的命令而执行不与图形操作直接相关的计算处理操作,例如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,所述计算单元132包括一个或多个SIMD单元138,所述一个或多个SIMD单元138被配置成在处理器102的请求下根据SIMD范式以并行方式执行操作。SIMD范式是其中多个处理元件共享单个程序控制流单元和程序计数器且因此执行相同程序但能够使用不同数据来执行那个程序的SIMD范式。在一个示例中,每个SIMD单元138包括十六个分道,其中每个分道与SIMD单元138中的另一分道同时执行相同指令但可以使用不同数据来执行那个指令。如果不是所有分道都需要执行给定指令,那么可以通过断言来关闭分道。还可以使用断言通过散开的控制流来执行程序。更具体来说,对于具有条件性分支的程序或其中控制流是基于由个别分道执行的计算的其他指令,分道的断言对应于当前不在执行的控制流路径,并且不同控制流路径的连续执行允许任意的控制流。
计算单元132中的基本执行单元是工作项目。每个工作项目表示将在特定分道中并行地执行的程序的单个示例化。工作项目作为“波前”在单个SIMD处理单元138上同时执行。多个波前包括在“工作组”中,所述工作组包括被指定执行相同程序的工作项目的集合。通过执行构成工作组的波前中的每一者来执行工作组。在单个SIMD单元138上循序地执行波前,或者在不同的SIMD单元138上部分或完全并行地执行波前。波前被视为可以在单个SIMD单元138上同时执行的工作项目的最大集合。因此,如果从处理器102接收的命令指示特定程序并行化到所述程序无法在单个SIMD单元138上同时执行的程度,那么将那个程序分解为在两个或更多个SIMD单元138上并行化或在相同SIMD单元138上串行化(或在需要时并行化且串行化)的波前。调度器136被配置成执行与在不同计算单元132和SIMD单元138上调度各种波前相关的操作。
由计算单元132提供的并行性适合于图形相关操作,例如像素值计算、顶点转换和其他图形操作。从处理器102接受图形处理命令的图形管线134因此可以向计算单元132提供计算任务以并行地执行。
计算单元132还用于执行不与图形相关或者不执行为图形管线134的“正常”操作的部分(例如,为了对针对图形管线134的操作所执行的处理进行增补而执行的定制操作)的计算任务。应用126或在处理器102上执行的其他软件向APD 116传输界定此类计算任务的程序以供执行。
处理器102可以支持虚拟存储器,并且存储器104包括(例如)具有页表条目的页表,所述页表条目将虚拟页编号映射到存储器中的物理页编号。处理器102包括翻译旁视缓冲器(TLB)或者与所述翻译旁视缓冲器操作地通信,所述翻译旁视缓冲器缓存页表条目,使得处理器102不需要访问存储器104以针对最近使用的虚拟地址从页表检索物理地址。
依据应用的虚拟存储器行为,不同的虚拟页大小可以产生不同的性能。举例来说,使用小的页大小可以避免针对未使用的数据或指令分配物理存储器空间,并且使用大的页大小可能会导致单页故障,单页故障会影响大量的数据和/或指令。因此,一些架构支持一个以上虚拟页大小。
集合-关联性TLB无法在单个进程期间有效地支持多个页大小。因此,支持使用一个以上页大小的架构已经实施全关联性TLB或针对每种页大小使用单独的TLB。全关联性TLB受限于少量的条目,并且针对不同的页大小使用不同的部分关联性TLB要求了解针对系统的既定使用的页大小的分布。这可能会导致低效,其中实际使用不同于所预测的页大小分布。
偏斜关联性TLB是n路组关联性TLB的变化,其中通过偏斜函数来修改输入索引,所述偏斜函数针对TLB的n路中的一些或全部而有所不同。偏斜关联性TLB还可以用于支持一个以上页大小。在此类实现方式中,使用偏斜关联性TLB的固定数目个路来支持特定页大小。举例来说,在具有12路的偏斜关联性TLB中,对于任何TLB查找,所述路中的8路专用于保持4千字节大小页,所述路中的2路专用于保持32千字节大小页,并且所述路中的2路专用于保持2兆字节大小页。哪些路保持哪个页大小的映射不是固定的,而是由虚拟地址的位确定。
对于一些工作负载,例如重度利用小页的工作负载,一个页大小路配置可以有效工作(例如,使少量路专用于32千字节大小页和2兆字节大小页,并且使较大量的路专用于4千字节大小页)。此处,分配更多的路来处置小页。对于其他工作负载,例如重度利用大页的工作负载,另一页大小路配置可以有效工作(例如,使较大量的路专用于32千字节大小页和2兆字节大小页,并且使较少量的路专用于4千字节大小页)。
典型的偏斜关联性TLB是不可配置的,并且无法针对所有工作负载进行优化,因为虽然此类TLB的所有路可以保持所有页大小,但根据页大小的特定分布来调谐此类TLB。非偏斜关联性TLB可能具有甚至更糟的性能,因为不是TLB的所有路都可以保持所有页大小(并且因此是面积低效的,浪费了未由一些工作负载使用的页大小上的存储空间),并且因为其也根据页大小的特定分布而经过调谐。
图3是示例性可配置的偏斜关联性TLB 300的框图。出于清楚起见而简化了偏斜关联性TLB 300的说明;且应注意,偏斜关联性TLB可以包括未示出的各种部件(例如,与许可、额外的标记位、冲洗等相关)。在此示例中,在装置100中实施可配置的偏斜关联性TLB 300,但将了解,其他实现方式是可能的。举例来说,在各种实现方式中,将TLB 300实施为处理器102的部件、存储器104的部件,或者在与处理器102和存储器104操作性地耦合的装置(例如,存储器管理单元(MMU))中实施。TLB 300的各种其他实现方式也是可能的,在装置100的背景内外都可以。
在此示例中将TLB 300实施为内容可寻址存储器(CAM),其中搜索关键是虚拟页编号(来自虚拟存储器地址),并且搜索结果是(例如,存储器104的)物理存储器地址的物理页编号。TLB 300包括16路305(出于清楚起见,仅示出其中的三路:对应于路0、路1和路15的305′、305″、305″′;所有路统称为305)。路305各自包括128个条目,所述条目中的每一者是48位宽。路305的每个条目包括标签和有效负载,其中标签用于通过与虚拟页编号进行比较而编制索引,并且有效负载是对应的物理页编号(或包括对应的物理页编号)。虚拟地址的页偏移可以与物理地址的页偏移相同,并且可以用于通过将偏移与物理页编号组合来构建物理存储器地址。
TLB 300支持三种不同的虚拟页大小:4千字节(4K)、32千字节(32K)和2兆字节(2M)。对于TLB 300中的任何查找,每个路保持相对于不同的虚拟页大小中的仅一者而界定的翻译,并且所支持的页大小在路305中的分布是可配置的。举例来说,在8-2-2配置中,路305中的8路被配置成支持4K页,路305中的2路被配置成支持32K页,并且路305中的2路被配置成支持2M页。相比而言,6-3-3配置将使路305中的6路被配置成支持4K页,路305中的3路被配置成支持32K页,并且路305中的3路被配置成支持2M页。路的数目、路条目的数目和宽度、所支持的虚拟页的数目和大小以及路配置的数目和分布都是示例性的,并且可以使用这些部件的任何合适的配置。这适用于本文相对于任何图所描述的所有实现方式。
为了配置路305中的每一者的所支持的页大小(即,在此示例中,在8-2-2配置与6-3-3配置之间进行选择),将配置位310输入到每个路的偏斜函数。在一些实现方式中,配置位310选择分配给每个所支持的页大小的路的数目的比率。每个路包括实施那个路的偏斜函数的其自身的偏斜函数块或者操作性地耦合到其自身的偏斜函数块(仅示出偏斜函数块315′、315″和315″′;所有偏斜函数块统称为315)。将相同的配置位310输入到每个偏斜函数块315。可以通过任何合适的方式静态地或动态地配置位310。举例来说,可以通过烧断熔丝或者设定TLB 300中的非易失性存储器寄存器(在其上实施TLB或TLB 300操作性地耦合到的处理器的其他部件)来设定配置位310,或者可以在TLB 300是其部件的计算机系统的基本输入输出系统(BIOS)中设定所述配置位。还可以替代地由操作系统设定配置位310,或另外在TLB 300的寄存器或在其上实施TLB或TLB 300操作性地耦合到的处理器的其他部件中设定所述配置位。
为了将虚拟地址翻译为物理地址,将虚拟地址310输入到TLB 300。如果TLB 300是二级(L2)TLB,那么例如可以在一级(L1)TLB未命中之后从L1TLB输入虚拟地址310,但其他合适的实现方式是可能的。虚拟地址310包括虚拟页编号和进入虚拟页的偏移。虚拟地址310在此示例中是48位宽,但其他实现方式可以使用任何合适的宽度。在图3中,虚拟地址310的48位被表达为[47:0]。所述48位的子集对应于虚拟页编号,并且所述48位的另一子集对应于偏移。使用哪些位取决于与虚拟地址305相关的虚拟页大小。
如果虚拟地址305反映4K页,那么位[47:12]是页编号,并且位[11:0]是进入所述页的偏移。如果虚拟地址305反映32K页,那么位[47:15]是页编号,并且位[14:0]是进入所述页的偏移。如果虚拟地址305反映2M页,那么位[47:21]是页编号,并且位[20:0]是进入所述页的偏移。所有三种页大小共同的最低有效位是[21]。因此,使用位[22:21]来确定对于那个值[22:21]使用哪些路来保持哪些页大小,并且将所述位输入到每个路的偏斜函数块315。不选择所述范围内的在[21]以下的位用于此目的,因为对于2M页,那些位是偏移的部分,而不是页编号,并且翻译硬件不处理那些位(所述偏移被传递到物理地址)。然而,在一些实施方式中,可以使用在[21]以上的其他位。此外,如果实施仅支持两种或三种以上页大小的路配置,那么可以使用一个位或两个以上位。
偏斜函数块315各自输入配置位310和虚拟地址310的位[22:21],并且输出通过将偏斜函数320应用于所述输入而产生的值。用于每个路的偏斜函数320可以不同(仅示出偏斜函数320′、320″和320″′;所有偏斜函数统称为320)。表1和表2列出基于配置位310(在8-2-2配置与6-3-3配置之间进行选择)和虚拟地址310的位[22:21]而使用16路305中的哪些路来存储不同页大小的物理地址的示例。
表1
8-2-2配置
虚拟地址[22:21]=00
4K路 0、1、4、5、8、9、10、11
32K路 2、6
2M路 3、7
虚拟地址[22:21]=10
4K路 0、1、4、5、8、9、10、11
32K路 3、7
2M路 2、6
虚拟地址[22:21]=01
4K路 2、3、6、7、8、9、10、11
32K路 0、4
2M路 1、5
虚拟地址[22:21]=11
4K路 2、3、6、7、8、9、10、11
32K路 1、5
2M路 0、4
表2
6-3-3配置
虚拟地址[22:21]=00
4K路 0、1、4、5、8、9
32K路 2、6、10
2M路 3、7、11
虚拟地址[22:21]=10
4K路 0、1、4、5、8、9
32K路 3、7、11
2M路 2、6、10
虚拟地址[22:21]=01
4K路 2、3、6、7、10、11
32K路 0、4、8
2M路 1、5、9
虚拟地址[22:21]=11
4K路 2、3、6、7、10、11
32K路 1、5、9
2M路 0、4、8
通过索引多路复用器(示出325′、325″和325″′,所有索引多路复用器统称为325)对每个路305编制索引。每个索引多路复用器325输入三个可能的索引,输入虚拟地址310的每种可能的页大小一个索引。所述索引是虚拟地址310的虚拟页编号部分的位的范围。每种页大小的位范围都不同。在此示例中,如果虚拟地址305反映4K页大小,那么索引多路复用器325输入虚拟地址310的位[18:12],如果虚拟地址305反映32K页大小,那么输入虚拟地址310的位[23,20:15],或者如果虚拟地址305反映2M页大小,那么输入虚拟地址310的位[29:23]。每个多路复用器325基于其相应的偏斜函数320来选择针对每个路使用三个可能的索引(示出330′、330″和330″′;所有索引统称为330)中的哪个。
每个路305输出与由多路复用器325选择的索引相对应的条目的有效负载作为读取数据(示出读取数据335′、335″和335″′;所有读取数据统称为335)。比较电路340检查每个读取数据335寄存器以确定是否已经发生TLB命中(即,所述路中的一者具有与查找的地址匹配的翻译)。比较电路340通过确定在条目中保持的虚拟地址标签是否与查找的虚拟地址匹配以及作为读取数据335而被读出的条目的页大小与由偏斜函数确定的页大小匹配(例如,在通过有效负载中的页大小字段来指示页大小的情况下)来确定是否已经发生TLB命中。如果已经发生命中,那么选择导致TLB命中的读取数据335,并且从TLB输出与虚拟地址310相对应的物理地址345。
图4是说明用于使用图3的可配置的偏斜关联性TLB 300将虚拟地址翻译为物理存储器地址的示例性方法400的流程图。
在将虚拟地址310输入到TLB的条件405下,在步骤410中,基于虚拟地址310的位的子集(在此示例中是位[22:21])而设定索引多路复用器325,以使用来自虚拟地址310的位来输入三个可能的索引中的一者,每个页大小一个索引。
每种页大小的位范围都不同。在位[22:21]指示虚拟地址310对应于第一页大小(在此示例中,4K)的条件415下,在步骤420中,索引多路复用器325输入虚拟地址310的位的第一子集(在此示例中,位[18:12])。在位[22:21]指示虚拟地址310对应于第二页大小(在此示例中,32K)的条件425下,在步骤430中,索引多路复用器325输入虚拟地址310的位的第二子集(在此示例中,位[23,20:15])。在位[22:21]指示虚拟地址310对应于第三页大小(在此示例中,2M)的条件435下,在步骤440中,索引多路复用器325输入虚拟地址310的位的第三子集(在此示例中,位[29:23])。
在索引多路复用器325已经输入虚拟地址310的适当的位之后,每个多路复用器325基于其相应的偏斜函数320而选择所述输入中的一者,以产生到每个路305的索引330(步骤445)。如果索引330中的任一者在路305中的一者中命中条目,那么将对应的物理页编号输出到相应的读取数据335寄存器(步骤450)。在结果是TLB未命中的条件455下,在步骤460中,TLB 300起始页行走。如果结果是TLB命中,那么基于输出为读取数据335的物理地址和虚拟地址310的页偏移而从TLB输出与虚拟地址310相对应的物理地址345(步骤465)。
如果发生TLB未命中,那么TLB 300经由已知的方法,例如通过在页表上行走,来检索对应的物理地址345,并且根据替换策略将检索到的物理地址345安装在路305中的一者中。所使用的替换策略可以取决于所支持的页大小在路305中的分布。举例来说,可以依据是按照8路关联性配置(例如,上文描述的8-2-2配置)还是按照6路关联性配置(例如,上文描述的6-3-3配置)来存储4K页而将不同的替换策略用于4K页。
在一个示例中,实施标准的伪最近最少使用(伪LRU;即,树LRU)方案来确定哪个路305含有与最近最少用于8路关联性配置中的4K页的索引330相对应的条目。可以实施混合LRU方案来确定用于6路关联性配置中的4K页的LRU条目。可以使用配置位310来选择使用哪个LRU方案。
TLB 300的每一行具有用于跟踪所述行已经被访问的新近程度的相关联的7位的序列(其可以称为LRU位)。所述七个LRU位应用于所有路中的同一索引,因此在此示例中,存在128组LRU位。每一组LRU位指示哪个路最近最少用于TLB 300的其相应的索引。通过选择适当的LRU方案来应用于LRU位,可以使用相同的LRU位来跟踪哪个路最近最少用于8-2-2或6-3-3配置。
图5是说明用于处置TLB未命中的示例性方法500的流程图。在已经发生TLB未命中(例如,在图4的步骤455中)的条件510下,TLB 300在步骤520中根据已知方法来起始页行走以检索物理地址。在配置位310指示16路305中的8路被配置成支持4k页(即,上文描述的8-2-2配置)的条件530下,在步骤540中使用LRU逻辑来确定路305中的被配置成用于4K页的最近最少使用的一路。在一些实现方式中,LRU逻辑包括伪LRU(即,“树”LRU)逻辑。在配置位310指示16路305中的6路被配置成支持4K页(即,上文描述的6-3-3配置)的条件530下,在步骤550中使用LRU逻辑来确定路305中的被配置成用于4K页的最近最少使用的一路。在一些实现方式中,步骤550中的LRU逻辑遵循包括“树”LRU和“真”LRU逻辑的混合方案。在任一情况下,在页行走期间检索到的物理地址安装在如步骤540或550所确定的路305中的被配置成用于4K页的最近最少使用的路中(步骤560)。还将对应的程序用于32K页大小和2M页大小。
应理解,基于本文公开内容,许多变化是可能的。虽然特征和元件在上文以特定组合进行描述,但是每个特征或元件可以在不具有其他特征和元件的情况下单独使用,或者在具有或不具有其他特征和元件的情况下以各种组合来使用。
可以在通用计算机、处理器或处理器核心中实施所提供的方法。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心联合的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可以通过使用经处理的硬件描述语言(HDL)指令的结果以及包括网表的其他中间数据(所述指令能够存储在计算机可读介质上)来配置制造过程而制造所述处理器。此类处理的结果可以是集成电路布图设计,其随后用于半导体制造过程中来制造实施替代方案的各方面的处理器。
本文提供的方法或流程图可实施于计算机程序、软件或固件中,所述计算机程序、软件或固件并入非暂时性计算机可读存储介质中以供通用计算机或处理器执行。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓冲存储器、半导体存储器装置、磁性介质(例如内部硬盘和可装卸盘、磁光介质)以及光学介质,例如CD-ROM盘和数字多功能盘(DVD)。
Claims (26)
1.一种用于使用偏斜关联性翻译旁视缓冲器来确定物理存储器中的与虚拟地址相对应的地址的方法,所述方法包括:
使用接收器电路来接收虚拟地址和配置指示;
配置所述翻译旁视缓冲器的多个路的第一子集以保持第一页大小,其中所述第一子集包括基于所述配置指示的所述多个路的子集;以及
在发生翻译旁视缓冲器命中的条件下输出与所述虚拟地址相对应的物理地址。
2.如权利要求1所述的方法,其中所述多个路的第二子集被配置成保持第二页大小,所述第二子集包括基于所述配置指示的数目个所述路。
3.如权利要求2所述的方法,其中在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于所述配置指示。
4.如权利要求1所述的方法,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。
5.如权利要求4所述的方法,其中将所述虚拟地址的位的子集输入到所述偏斜函数,并且基于所述配置指示来计算在位的所述子集中包括所述虚拟地址的哪些位。
6.如权利要求1所述的方法,其中从基本输入输出系统、烧断的熔丝、操作系统或配置寄存器接收所述配置指示。
7.一种偏斜关联性翻译旁视缓冲器,所述偏斜关联性翻译旁视缓冲器包括:
输入电路,所述输入电路被配置成接收虚拟地址和配置指示;
多个路,其中基于所述配置指示的所述多个路的第一子集被配置成保持第一页大小,并且所述第一子集包括基于所述配置指示的所述多个路的子集;以及
输出电路,所述输出电路被配置成在发生翻译旁视缓冲器命中的条件下输出与所述虚拟地址相对应的物理地址。
8.如权利要求7所述的偏斜关联性翻译旁视缓冲器,其中所述多个路的第二子集被配置成保持第二页大小,所述第二子集包括基于所述配置指示的数目个所述路。
9.如权利要求8所述的偏斜关联性翻译旁视缓冲器,其中在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于所述配置指示。
10.如权利要求7所述的偏斜关联性翻译旁视缓冲器,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。
11.如权利要求10所述的偏斜关联性翻译旁视缓冲器,其中将所述虚拟地址的位的子集输入到所述偏斜函数,并且基于所述配置指示来计算在位的所述子集中包括所述虚拟地址的哪些位。
12.如权利要求7所述的偏斜关联性翻译旁视缓冲器,其中所述配置指示是从基本输入输出系统、烧断的熔丝、操作系统(OS)或配置寄存器来接收。
13.一种用于使用偏斜关联性翻译旁视缓冲器来确定物理存储器中的与虚拟地址相对应的地址的方法,所述方法包括:
使用接收器电路来接收虚拟地址和配置指示;
在发生翻译旁视缓冲器未命中的条件下从页表检索与所述虚拟地址相对应的物理地址;以及
将所述物理地址的至少一部分安装在所述翻译旁视缓冲器的多个路的子集中的最近最少使用的路中;
其中所述最近最少使用的路是根据替换策略来确定,并且所述替换策略是基于所述配置指示。
14.如权利要求13所述的方法,其中所述路的所述子集包括基于所述配置指示的数目个所述多个路。
15.如权利要求13所述的方法,其中在所述子集中包括的所述多个路的数目与在第二子集中包括的路的数目的比率是基于所述配置指示。
16.如权利要求13所述的方法,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。
17.如权利要求16所述的方法,其中将所述虚拟地址的位的子集输入到所述偏斜函数;其中基于所述配置指示来计算在位的所述子集中包括所述虚拟地址的哪些位。
18.如权利要求13所述的方法,其中从基本输入输出系统、烧断的熔丝、操作系统(OS)或配置寄存器接收所述配置指示。
19.如权利要求13所述的方法,其中所述配置指示包括单个位。
20.一种偏斜关联性翻译旁视缓冲器,所述偏斜关联性翻译旁视缓冲器包括:
多个路;
输入电路,所述输入电路被配置成:
接收虚拟地址和配置指示;以及
在发生翻译旁视缓冲器未命中的条件下从页表检索与所述虚拟地址相对应的物理地址;以及
替换电路,所述替换电路被配置成将所述物理地址的至少一部分安装在所述翻译旁视缓冲器的多个路的子集中的最近最少使用的路中;
其中所述最近最少使用的路是根据替换策略来确定,并且所述替换策略是基于所述配置指示。
21.如权利要求20所述的偏斜关联性翻译旁视缓冲器,其中所述路的所述子集包括基于所述配置指示的数目个所述多个路。
22.如权利要求20所述的偏斜关联性翻译旁视缓冲器,其中在所述子集中包括的所述多个路的数目与在第二子集中包括的路的数目的比率是基于所述配置指示。
23.如权利要求20所述的偏斜关联性翻译旁视缓冲器,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。
24.如权利要求23所述的偏斜关联性翻译旁视缓冲器,其中将所述虚拟地址的位的子集输入到所述偏斜函数;其中基于所述配置指示来计算在位的所述子集中包括所述虚拟地址的哪些位。
25.如权利要求20所述的偏斜关联性翻译旁视缓冲器,其中所述配置指示是从基本输入输出系统、烧断的熔丝、操作系统(OS)或配置寄存器来接收。
26.如权利要求20所述的偏斜关联性翻译旁视缓冲器,其中所述配置指示包括单个位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/389,955 US11106596B2 (en) | 2016-12-23 | 2016-12-23 | Configurable skewed associativity in a translation lookaside buffer |
US15/389,955 | 2016-12-23 | ||
PCT/US2017/063337 WO2018118345A2 (en) | 2016-12-23 | 2017-11-27 | Configurable skewed associativity in a translation lookaside buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110073338A CN110073338A (zh) | 2019-07-30 |
CN110073338B true CN110073338B (zh) | 2024-03-08 |
Family
ID=62627079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780076877.0A Active CN110073338B (zh) | 2016-12-23 | 2017-11-27 | 翻译旁视缓冲器中的可配置的偏斜关联性 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11106596B2 (zh) |
EP (1) | EP3559814A4 (zh) |
JP (1) | JP7449694B2 (zh) |
KR (1) | KR102543675B1 (zh) |
CN (1) | CN110073338B (zh) |
WO (1) | WO2018118345A2 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552338B2 (en) * | 2017-02-21 | 2020-02-04 | Arm Limited | Technique for efficient utilisation of an address translation cache |
US10372522B2 (en) * | 2017-04-28 | 2019-08-06 | Advanced Micro Devices, Inc. | Memory protection in highly parallel computing hardware |
US10915459B2 (en) * | 2018-10-29 | 2021-02-09 | International Business Machines Corporation | 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 |
US20220206955A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Automated translation lookaside buffer set rebalancing |
CN113778520B (zh) * | 2021-09-09 | 2022-09-30 | 海光信息技术股份有限公司 | 偏移预取方法、执行偏移预取的装置、计算设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6715057B1 (en) * | 2000-08-31 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes |
US6854046B1 (en) * | 2001-08-03 | 2005-02-08 | Tensilica, Inc. | Configurable memory management unit |
CN101326499A (zh) * | 2005-10-20 | 2008-12-17 | 高通股份有限公司 | 更新多级翻译旁视缓冲器(tlb)字段 |
CN101606134A (zh) * | 2007-02-07 | 2009-12-16 | 高通股份有限公司 | 地址转换方法和设备 |
CN102792286A (zh) * | 2010-03-16 | 2012-11-21 | 超威半导体公司 | 虚拟化处理系统中的地址映射 |
CN105975405A (zh) * | 2015-05-21 | 2016-09-28 | 上海兆芯集成电路有限公司 | 处理器和使处理器进行工作的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625715B1 (en) * | 1999-12-30 | 2003-09-23 | Intel Corporation | System and method for translation buffer accommodating multiple page sizes |
US6732238B1 (en) * | 2001-06-08 | 2004-05-04 | Tensilica, Inc. | Set-associative cache memory having variable time decay rewriting algorithm |
US7284112B2 (en) * | 2005-01-14 | 2007-10-16 | International Business Machines Corporation | Multiple page size address translation incorporating page size prediction |
US8364900B2 (en) * | 2008-02-12 | 2013-01-29 | Oracle America, Inc. | Pseudo-LRU cache line replacement for a high-speed cache |
US8473684B2 (en) | 2009-12-22 | 2013-06-25 | International Business Machines Corporation | Delayed replacement of cache entries |
US20130097387A1 (en) | 2011-10-14 | 2013-04-18 | The Board Of Trustees Of The Leland Stanford Junior University | Memory-based apparatus and method |
US9208102B2 (en) * | 2013-01-15 | 2015-12-08 | Qualcomm Incorporated | Overlap checking for a translation lookaside buffer (TLB) |
CN105814549B (zh) * | 2014-10-08 | 2019-03-01 | 上海兆芯集成电路有限公司 | 具有主高速缓存器和溢出fifo高速缓存器的高速缓存器系统 |
EP3129890B1 (en) | 2014-12-14 | 2019-08-14 | VIA Alliance Semiconductor Co., Ltd. | Set associative cache memory with heterogeneous replacement policy |
US9830275B2 (en) * | 2015-05-18 | 2017-11-28 | Imagination Technologies Limited | Translation lookaside buffer |
US10540290B2 (en) * | 2016-04-27 | 2020-01-21 | Ati Technologies Ulc | Method and apparatus for translation lookaside buffer with multiple compressed encodings |
US10037283B2 (en) * | 2016-08-12 | 2018-07-31 | Advanced Micro Devices, Inc. | Updating least-recently-used data for greater persistence of higher generality cache entries |
-
2016
- 2016-12-23 US US15/389,955 patent/US11106596B2/en active Active
-
2017
- 2017-11-27 CN CN201780076877.0A patent/CN110073338B/zh active Active
- 2017-11-27 WO PCT/US2017/063337 patent/WO2018118345A2/en unknown
- 2017-11-27 JP JP2019533456A patent/JP7449694B2/ja active Active
- 2017-11-27 KR KR1020197017812A patent/KR102543675B1/ko active IP Right Grant
- 2017-11-27 EP EP17884444.5A patent/EP3559814A4/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6715057B1 (en) * | 2000-08-31 | 2004-03-30 | Hewlett-Packard Development Company, L.P. | Efficient translation lookaside buffer miss processing in computer systems with a large range of page sizes |
US6854046B1 (en) * | 2001-08-03 | 2005-02-08 | Tensilica, Inc. | Configurable memory management unit |
CN101326499A (zh) * | 2005-10-20 | 2008-12-17 | 高通股份有限公司 | 更新多级翻译旁视缓冲器(tlb)字段 |
CN101606134A (zh) * | 2007-02-07 | 2009-12-16 | 高通股份有限公司 | 地址转换方法和设备 |
CN102792286A (zh) * | 2010-03-16 | 2012-11-21 | 超威半导体公司 | 虚拟化处理系统中的地址映射 |
CN105975405A (zh) * | 2015-05-21 | 2016-09-28 | 上海兆芯集成电路有限公司 | 处理器和使处理器进行工作的方法 |
Non-Patent Citations (3)
Title |
---|
Concurrent support of multiple page sizes on a skewed associative TLB designs;Andre Seznec,et al.;《IEEE transactions on computers》;20040731;第924页摘要部分,第926页-第927页,图1-3 * |
Prediction-based superpage-friendly TLB designs;Misel-Myrto Papadopoulou,et al.;《2015 IEEE 21st International Symposium on high performance computer architecture(HPCA)》;20150711;全文 * |
Reorganisation in the skewed-associative TLB;Thorild Selen;《Technical report》;20040929;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110073338A (zh) | 2019-07-30 |
US11106596B2 (en) | 2021-08-31 |
EP3559814A2 (en) | 2019-10-30 |
WO2018118345A2 (en) | 2018-06-28 |
KR20190090389A (ko) | 2019-08-01 |
JP7449694B2 (ja) | 2024-03-14 |
WO2018118345A3 (en) | 2018-08-02 |
EP3559814A4 (en) | 2020-07-29 |
KR102543675B1 (ko) | 2023-06-14 |
US20180181496A1 (en) | 2018-06-28 |
JP2020514859A (ja) | 2020-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110073338B (zh) | 翻译旁视缓冲器中的可配置的偏斜关联性 | |
US7739477B2 (en) | Multiple page size address translation incorporating page size prediction | |
JP6724043B2 (ja) | キャッシュタグ圧縮のための方法および装置 | |
US10037283B2 (en) | Updating least-recently-used data for greater persistence of higher generality cache entries | |
CN112753024B (zh) | 基于外部存储器的转换后备缓冲器 | |
US10831675B2 (en) | Adaptive tablewalk translation storage buffer predictor | |
US8327121B2 (en) | Data cache receive flop bypass | |
KR102268601B1 (ko) | 데이터 포워딩을 위한 프로세서, 그것의 동작 방법 및 그것을 포함하는 시스템 | |
US12099451B2 (en) | Re-reference interval prediction (RRIP) with pseudo-LRU supplemental age information | |
US12066944B2 (en) | Zero value memory compression | |
US8661169B2 (en) | Copying data to a cache using direct memory access | |
US10146698B2 (en) | Method and apparatus for power reduction in a multi-threaded mode | |
US11494300B2 (en) | Page table walker with page table entry (PTE) physical address prediction | |
CN117120989A (zh) | 用于dram高速缓存标签预取器的方法和装置 | |
US11704250B2 (en) | Using request class and reuse recording in one cache for insertion policies of another cache | |
US20230101038A1 (en) | Deterministic mixed latency cache |
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 |