买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】翻译旁视缓冲器中的可配置的偏斜关联性_超威半导体公司_201780076877.0 

申请/专利权人:超威半导体公司

申请日:2017-11-27

公开(公告)日:2024-03-08

公开(公告)号:CN110073338B

主分类号:G06F12/1027

分类号:G06F12/1027

优先权:["20161223 US 15/389,955"]

专利状态码:有效-授权

法律状态:2024.03.08#授权;2020.01.17#实质审查的生效;2019.07.30#公开

摘要:描述了用于使用偏斜关联性翻译旁视缓冲器TLB来确定物理存储器中的与虚拟地址相对应的地址的方法、装置和系统。使用接收器电路来接收虚拟地址和配置指示。在发生TLB命中的情况下输出与所述虚拟地址相对应的物理地址。所述TLB的多个路的第一子集被配置成保持第一页大小。所述第一子集包括基于所述配置指示的数目个所述路。在发生TLB未命中的情况下从页表检索与所述虚拟地址相对应的物理地址,并且将所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用的路中,所述最少使用的路是根据基于所述配置指示的替换策略而确定。

主权项:1.一种用于使用偏斜关联性翻译旁视缓冲器来确定物理存储器中的与虚拟地址相对应的地址的方法,所述方法包括:使用接收器电路来接收虚拟地址和配置指示;配置所述翻译旁视缓冲器的多个路的第一子集以保持第一页大小,其中所述第一子集包括基于所述配置指示的所述多个路的子集;以及在发生翻译旁视缓冲器命中的条件下输出与所述虚拟地址相对应的物理地址。

全文数据:翻译旁视缓冲器中的可配置的偏斜关联性对相关申请的交叉引用本申请要求2016年12月23日提交的美国专利申请No.15389,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包括例如显示器、扬声器、打印机、触觉反馈装置、一个或多个灯、天线,或网络连接例如,用于传输和或接收无线IEEE802信号的无线局域网卡。输入驱动器112与处理器102和输入装置108通信,并且准许处理器102从输入装置108接收输入。输出驱动器114与处理器102和输出装置110通信,并且准许处理器102将输出发送到输出装置110。应注意,输入驱动器112和输出驱动器114是任选的部件,并且在不存在输入驱动器112和输出驱动器114的情况下,装置100将以相同的方式操作。输出驱动器116包括耦合到显示装置118的加速处理装置“APD”116。APD被配置成从处理器102接受计算命令和图形渲染命令、处理那些计算和图形渲染命令,并且向显示装置118提供像素输出以供显示。如下文进一步详细描述,APD116包括被配置成根据单指令多数据“SIMD”范式执行计算的一个或多个并行处理单元。因此,虽然在本文将各种功能性描述为是由APD116执行或与APD116联合执行,但被描述为由APD116执行的功能性还可以由具有类似能力的其他计算装置执行,所述其他计算装置不由主机处理器例如,处理器102驱动且被配置成向显示装置118提供图形输出。举例来说,预期根据SIMD范式执行处理任务的任何处理系统可以被配置成执行在本文所描述的功能性。替代地,预期不根据SIMD范式执行处理任务的计算系统可以执行在本文所描述的功能性。图2是装置100的框图,其说明与APD116上的处理任务的执行相关的额外细节。处理器102在系统存储器104中维持一个或多个控制逻辑模块以供处理器102执行。控制逻辑模块包括操作系统120、内核模式驱动器122和应用126。这些控制逻辑模块控制处理器102和APD116的操作的各个方面。举例来说,操作系统120直接与硬件通信并且为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过例如,应用126向在处理器102上执行的软件提供应用编程接口“API”来控制APD116的操作,以访问APD116的各种功能性。内核模式驱动器122还包括即时编译器,所述即时编译器编译程序以供APD116的处理部件例如,在下文进一步详细论述的SIMD单元138执行。APD116执行选定功能的命令和程序,例如适合于并行处理的图形操作和非图形操作。APD116可以用于执行图形管线操作,例如像素操作、几何计算,并且基于从处理器102接收的命令而向显示装置118渲染图像。APD116还基于从处理器102接收的命令而执行不与图形操作直接相关的计算处理操作,例如与视频、物理模拟、计算流体动力学或其他任务相关的操作。APD116包括计算单元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上执行的其他软件向APD116传输界定此类计算任务的程序以供执行。处理器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是示例性可配置的偏斜关联性TLB300的框图。出于清楚起见而简化了偏斜关联性TLB300的说明;且应注意,偏斜关联性TLB可以包括未示出的各种部件例如,与许可、额外的标记位、冲洗等相关。在此示例中,在装置100中实施可配置的偏斜关联性TLB300,但将了解,其他实现方式是可能的。举例来说,在各种实现方式中,将TLB300实施为处理器102的部件、存储器104的部件,或者在与处理器102和存储器104操作性地耦合的装置例如,存储器管理单元MMU中实施。TLB300的各种其他实现方式也是可能的,在装置100的背景内外都可以。在此示例中将TLB300实施为内容可寻址存储器CAM,其中搜索关键是虚拟页编号来自虚拟存储器地址,并且搜索结果是例如,存储器104的物理存储器地址的物理页编号。TLB300包括16路305出于清楚起见,仅示出其中的三路:对应于路0、路1和路15的305′、305″、305″′;所有路统称为305。路305各自包括128个条目,所述条目中的每一者是48位宽。路305的每个条目包括标签和有效负载,其中标签用于通过与虚拟页编号进行比较而编制索引,并且有效负载是对应的物理页编号或包括对应的物理页编号。虚拟地址的页偏移可以与物理地址的页偏移相同,并且可以用于通过将偏移与物理页编号组合来构建物理存储器地址。TLB300支持三种不同的虚拟页大小:4千字节4K、32千字节32K和2兆字节2M。对于TLB300中的任何查找,每个路保持相对于不同的虚拟页大小中的仅一者而界定的翻译,并且所支持的页大小在路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。举例来说,可以通过烧断熔丝或者设定TLB300中的非易失性存储器寄存器在其上实施TLB或TLB300操作性地耦合到的处理器的其他部件来设定配置位310,或者可以在TLB300是其部件的计算机系统的基本输入输出系统BIOS中设定所述配置位。还可以替代地由操作系统设定配置位310,或另外在TLB300的寄存器或在其上实施TLB或TLB300操作性地耦合到的处理器的其他部件中设定所述配置位。为了将虚拟地址翻译为物理地址,将虚拟地址310输入到TLB300。如果TLB300是二级L2TLB,那么例如可以在一级L1TLB未命中之后从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中的哪些路来存储不同页大小的物理地址的示例。表18-2-2配置虚拟地址[22:21]=004K路0、1、4、5、8、9、10、1132K路2、62M路3、7虚拟地址[22:21]=104K路0、1、4、5、8、9、10、1132K路3、72M路2、6虚拟地址[22:21]=014K路2、3、6、7、8、9、10、1132K路0、42M路1、5虚拟地址[22:21]=114K路2、3、6、7、8、9、10、1132K路1、52M路0、4表26-3-3配置虚拟地址[22:21]=004K路0、1、4、5、8、932K路2、6、102M路3、7、11虚拟地址[22:21]=104K路0、1、4、5、8、932K路3、7、112M路2、6、10虚拟地址[22:21]=014K路2、3、6、7、10、1132K路0、4、82M路1、5、9虚拟地址[22:21]=114K路2、3、6、7、10、1132K路1、5、92M路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的可配置的偏斜关联性TLB300将虚拟地址翻译为物理存储器地址的示例性方法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中,TLB300起始页行走。如果结果是TLB命中,那么基于输出为读取数据335的物理地址和虚拟地址310的页偏移而从TLB输出与虚拟地址310相对应的物理地址345步骤465。如果发生TLB未命中,那么TLB300经由已知的方法,例如通过在页表上行走,来检索对应的物理地址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方案。TLB300的每一行具有用于跟踪所述行已经被访问的新近程度的相关联的7位的序列其可以称为LRU位。所述七个LRU位应用于所有路中的同一索引,因此在此示例中,存在128组LRU位。每一组LRU位指示哪个路最近最少用于TLB300的其相应的索引。通过选择适当的LRU方案来应用于LRU位,可以使用相同的LRU位来跟踪哪个路最近最少用于8-2-2或6-3-3配置。图5是说明用于处置TLB未命中的示例性方法500的流程图。在已经发生TLB未命中例如,在图4的步骤455中的条件510下,TLB300在步骤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。

权利要求:1.一种用于使用偏斜关联性翻译旁视缓冲器TLB来确定物理存储器中的与虚拟地址相对应的地址的方法,所述方法包括:使用接收器电路来接收虚拟地址和配置指示;配置所述TLB的多个路的第一子集以保持第一页大小,其中所述第一子集包括基于所述配置指示的数目个所述路;以及在发生TLB命中的条件下输出与所述虚拟地址相对应的物理地址。2.如权利要求1所述的方法,其中所述多个路的第二子集被配置成保持第二页大小,所述第二子集包括基于所述配置指示的数目个所述路。3.如权利要求2所述的方法,其中在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于所述配置指示。4.如权利要求1所述的方法,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。5.如权利要求4所述的方法,其中将所述虚拟地址的位的子集输入到所述偏斜函数,并且基于所述配置指示来计算在所述位子集中包括所述虚拟地址的哪些位。6.如权利要求1所述的方法,其中从基本输入输出系统、烧断的熔丝、操作系统或配置寄存器接收所述配置指示。7.一种偏斜关联性翻译旁视缓冲器TLB,所述偏斜关联性翻译旁视缓冲器包括:输入电路,所述输入电路被配置成接收虚拟地址和配置指示;多个路,其中所述路的第一子集被配置成保持第一页大小,并且所述第一子集包括基于所述配置指示的数目个所述路;以及输出电路,所述输出电路被配置成在发生TLB命中的条件下输出与所述虚拟地址相对应的物理地址。8.如权利要求7所述的偏斜关联性TLB,其中所述多个路的第二子集被配置成保持第二页大小,所述第二子集包括基于所述配置指示的数目个所述路。9.如权利要求8所述的偏斜关联性TLB,其中在所述第一子集中包括的路的数目与在所述第二子集中包括的路的数目的比率是基于所述配置指示。10.如权利要求7所述的偏斜关联性TLB,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。11.如权利要求10所述的偏斜关联性TLB,其中将所述虚拟地址的位的子集输入到所述偏斜函数,并且基于所述配置指示来计算在所述位子集中包括所述虚拟地址的哪些位。12.如权利要求7所述的偏斜关联性TLB,其中所述配置指示是从基本输入输出系统、烧断的熔丝、操作系统OS或配置寄存器来接收。13.一种用于使用偏斜关联性翻译旁视缓冲器TLB来确定物理存储器中的与虚拟地址相对应的地址的方法,所述方法包括:使用接收器电路来接收虚拟地址和配置指示;在发生TLB未命中的条件下从页表检索与所述虚拟地址相对应的物理地址;以及将所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用LRU的路中;其中所述LRU路是根据替换策略来确定,并且所述替换策略是基于所述配置指示。14.如权利要求13所述的方法,其中所述路的所述子集包括基于所述配置指示的数目个所述多个路。15.如权利要求13所述的方法,其中在所述子集中包括的所述多个路的数目与在第二子集中包括的路的数目的比率是基于所述配置指示。16.如权利要求13所述的方法,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。17.如权利要求16所述的方法,其中将所述虚拟地址的位的子集输入到所述偏斜函数;其中基于所述配置指示来计算在所述位子集中包括所述虚拟地址的哪些位。18.如权利要求13所述的方法,其中从基本输入输出系统、烧断的熔丝、操作系统OS或配置寄存器接收所述配置指示。19.如权利要求13所述的方法,其中所述配置指示包括单个位。20.一种偏斜关联性翻译旁视缓冲器TLB,所述偏斜关联性翻译旁视缓冲器包括:多个路;输入电路,所述输入电路被配置成:接收虚拟地址和配置指示;以及在发生TLB未命中的条件下从页表检索与所述虚拟地址相对应的物理地址;以及替换电路,所述替换电路被配置成将所述物理地址的至少一部分安装在所述TLB的多个路的子集中的最近最少使用LRU的路中;其中所述LRU路是根据替换策略来确定,并且所述替换策略是基于所述配置指示。21.如权利要求20所述的偏斜关联性TLB,其中所述路的所述子集包括基于所述配置指示的数目个所述多个路。22.如权利要求20所述的偏斜关联性TLB,其中在所述子集中包括的所述多个路的数目与在第二子集中包括的路的数目的比率是基于所述配置指示。23.如权利要求20所述的偏斜关联性TLB,其中由偏斜函数基于所述配置指示来计算到所述多个路的索引。24.如权利要求23所述的偏斜关联性TLB,其中将所述虚拟地址的位的子集输入到所述偏斜函数;其中基于所述配置指示来计算在所述位子集中包括所述虚拟地址的哪些位。25.如权利要求20所述的偏斜关联性TLB,其中所述配置指示是从基本输入输出系统、烧断的熔丝、操作系统OS或配置寄存器来接收。26.如权利要求20所述的偏斜关联性TLB,其中所述配置指示包括单个位。

百度查询: 超威半导体公司 翻译旁视缓冲器中的可配置的偏斜关联性

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。