CN111124954B - 一种两级转换旁路缓冲的管理装置及方法 - Google Patents
一种两级转换旁路缓冲的管理装置及方法 Download PDFInfo
- Publication number
- CN111124954B CN111124954B CN201911100428.2A CN201911100428A CN111124954B CN 111124954 B CN111124954 B CN 111124954B CN 201911100428 A CN201911100428 A CN 201911100428A CN 111124954 B CN111124954 B CN 111124954B
- Authority
- CN
- China
- Prior art keywords
- request
- bypass buffer
- level
- module
- hit
- 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
Images
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]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- 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/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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空闲时,将请求记录模块和二级TLB命中信息记录模块中缓存的虚实地址映射关系装入一级TLB。本发明能够以较小的硬件复杂度实现两级TLB的管理。
Description
技术领域
本发明涉及中央处理器的微结构设计技术领域,特别是涉及一种两级转换旁路缓冲的管理装置及方法。
背景技术
在支持分页管理存储空间的微处理器中,大多使用转换旁路缓冲(TranslationLookaside Buffer,简称TLB)加速虚地址到物理地址的转换,TLB的每一个表项记录一个虚地址页面号与物理地址页框号的映射关系。为了提高TLB的覆盖率并兼顾存储空间管理的灵活性,现代微处理器一般会支持多种粒度的页面,因此,TLB一般设计为全相联的结构,每一个条目分为标记(Tag)和数据(Data)两部分,Tag部分一般存储虚地址的页面号、页面粒度等信息,Data部分一般存储对应物理地址的页框号以及相应地址空间的一些权限控制位。TLB的访问一般处于访问存储系统的关键路径上,在现代通用微处理器,特别是高性能微处理器中,其访问延迟直接影响了处理器的最高工作频率,因此,TLB的容量一般不会设置太大。
访问TLB的请求产生缺失时,需要存储管理单元(Memory Manage Unit,MMU)进行缺失异常处理,一般是通过访问内存中的页表,获取虚地址到物理地址的映射关系。现代操作系统将页表分多级管理,例如,linux系统中将页表分为三级或四级进行管理,相应地,MMU对TLB的缺失异常处理往往需要三次或者四次访存操作,因此,TLB缺失异常产生的系统开销是不容忽视的。采用容量较小的一级TLB,以及容量较大的二级TLB甚至容量更大的三级TLB等构成的多级TLB,是兼顾TLB访问延迟和命中率的有效方法,访问一级TLB具有较小的访问延迟,多级TLB组合形成的大容量TLB则能够有效提升对地址空间的覆盖率,减少TLB的缺失率。
发明内容
本发明所要解决的技术问题是提供一种两级转换旁路缓冲的管理装置及方法,能够以较小的硬件复杂度实现两级TLB的管理。
本发明解决其技术问题所采用的技术方案是:提供一种两级转换旁路缓冲的管理装置,包括一级转换旁路缓冲、二级转换旁路缓冲、请求记录模块、请求比较模块和二级转换旁路缓冲命中信息记录模块,一级转换旁路缓冲采用全相联的组织结构,混合存放各种页面粒度的虚实地址映射关系;二级转换旁路缓冲包括小页模块和大页模块,所述小页模块用于存储最小粒度页面的虚实地址映射关系,采用组相联的组织结构;所述大页模块用于存储其他粒度页面的虚实地址映射关系,采用全相联的组织结构;所述请求记录模块用于记录当前命中二级转换旁路缓冲,但尚未将命中信息装入一级转换旁路缓冲的请求;所述二级转换旁路缓冲命中信息记录模块与所述请求记录模块相关联,用于记录请求命中二级转换旁路缓冲的相关信息;所述请求比较模块用于对准备登记请求记录模块的请求与当前已登记的请求进行比较。
所述请求记录模块记录的内容包括请求的有效位、请求所属的地址空间标记、请求访存的虚地址和请求对应的指令的相关信息。
所述二级转换旁路缓冲命中信息记录模块记录的内容包括命中二级转换旁路缓冲代换出的物理地址、对应页面的粒度及权限控制位、是否命中二级转换旁路缓冲大页模块、命中二级转换旁路缓冲大页模块的条目号、是否命中二级转换旁路缓冲小页模块、命中二级转换旁路缓冲小页模块的路号及索引地址。
本发明解决其技术问题所采用的技术方案是:还提供一种两级转换旁路缓冲的管理方法,采用上述的管理装置,在访存请求不命中一级转换旁路缓冲时,同时访问二级转换旁路缓冲的大页模块和小页模块,当访存请求命中二级转换旁路缓冲时,将请求本身相关信息和命中二级转换旁路缓冲的信息分别登记到请求记录模块和二级转换旁路缓冲命中信息记录模块中;当一级转换旁路缓冲空闲时,将命中二级转换旁路缓冲得到的虚实地址映射关系装入一级转换旁路缓冲。
请求命中二级转换旁路缓冲后,在等待装填一级转换旁路缓冲期间,如果有新的请求命中二级转换旁路缓冲,且请求记录模块无法登记更多的信息,此时,请求比较模块将新的请求和请求记录模块中的请求进行比较,若新的请求的记录程序顺序在前,则将新的请求替换请求记录模块中的某个请求,同时将新的请求命中二级转换旁路缓冲的信息同步登记到二级转换旁路缓冲命中信息记录模块中。
所述将命中二级转换旁路缓冲得到的虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲没有条目需要淘汰,则清除二级转换旁路缓冲中请求的命中条目。
在访存请求命中二级转换旁路缓冲的大页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是大页,则将一级转换旁路缓冲的淘汰条目回写到请求命中条目在二级转换旁路缓冲的大页模块中的位置;如果一级转换旁路缓冲的淘汰条目是小页,则根据二级转换旁路缓冲的小页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的小页模块,同时,清除二级转换旁路缓冲大页模块中请求的命中条目。
在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是大页,则根据二级转换旁路缓冲的大页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的大页模块,同时,清除二级转换旁路缓冲的小页模块中请求的命中条目。
在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是小页,并且请求命中条目和一级转换旁路缓冲淘汰条目在二级转换旁路缓冲的小页模块中的索引地址相同,则将一级转换旁路缓冲的淘汰条目回写到请求命中条目在二级转换旁路缓冲的小页模块中的位置。
在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是小页,并且请求命中条目和一级转换旁路缓冲淘汰条目在二级转换旁路缓冲的小页模块中的索引地址不同,则根据二级转换旁路缓冲的小页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的小页模块中,同时,清除二级转换旁路缓冲的小页模块中请求的命中条目。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明采用请求记录模块、二级TLB命中信息记录模块以及请求比较模块管理两级TLB,具有较低的硬件复杂度和硬件开销。在装填一级TLB时,综合二级TLB的命中信息及一级TLB的淘汰条目信息,选择一级TLB的回写位置,维持两级TLB的互斥关系,避免一个条目同时出现在两级TLB中,可以提高两级TLB对地址空间的覆盖率,减少TLB缺失情况。
附图说明
图1是本发明公开的一种两级TLB结构的管理装置示意图;
图2是本发明请求访问两级TLB及装填一级TLB、一级TLB回写二级TLB的总体流程图;
图3是本发明实施例请求命中二级TLB,装入一级TLB时一级TLB无淘汰条目的处理流程示意图;
图4是本发明实施例请求命中二级TLB大页模块,装入一级TLB时一级TLB的淘汰条目需要回写二级TLB大页模块的处理流程示意图;
图5是本发明实施例请求命中二级TLB大页模块,装入一级TLB时一级TLB的淘汰条目需要回写二级TLB小页模块的处理流程示意图;
图6是本发明实施例请求命中二级TLB小页模块,装入一级TLB时一级TLB的淘汰条目需要回写二级TLB大页模块的处理流程示意图;
图7是本发明实施例请求命中二级TLB小页模块,装入一级TLB时一级TLB的淘汰需要条目回写二级TLB小页,且请求命中二级TLB小页模块的索引地址与一级TLB淘汰条目回写二级TLB小页模块的索引地址相同时的处理流程示意图;
图8是本发明实施例请求命中二级TLB小页模块,装入一级TLB时一级TLB的淘汰需要条目回写二级TLB小页,且请求命中二级TLB小页模块的索引地址与一级TLB淘汰条目回写二级TLB小页模块的索引地址不同时的处理流程示意图;
图9是本发明实施例请求命中二级TLB后,在等待将虚实地址映射关系装入一级TLB期间,程序顺序在前的指令对应的请求命中二级TLB,并替换请求记录模块中的请求及二级TLB命中信息记录模块中的命中信息的处理流程示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种两级转换旁路缓冲的管理装置,如图1所示,包括一级TLB、二级TLB、请求记录模块、请求比较模块和二级TLB命中信息记录模块。
本实施方式中,一级TLB采用全相联的组织结构,混合存放各种页面粒度的虚实地址映射关系;二级TLB包括小页模块和大页模块,所述小页模块用于存储最小粒度页面的虚实地址映射关系,采用组相联的组织结构;所述大页模块用于存储其他粒度页面的虚实地址映射关系,采用全相联的组织结构。
其中,请求记录模块用于记录当前命中二级TLB,但尚未将命中信息装入一级TLB的请求,其记录的内容主要包括请求的有效位、请求所属的地址空间标记(AddressSpaceID,ASID)、请求访存的虚地址、以及请求对应的指令的相关信息等。
二级TLB命中信息记录模块与所述请求记录模块相关联,用于记录请求命中二级TLB的相关信息,其记录的内容主要包括命中二级TLB代换出的物理地址、对应页面的粒度及权限控制位、是否命中二级TLB大页模块、命中二级TLB大页模块的条目号、是否命中二级TLB小页模块、命中二级TLB小页模块的路号及索引地址等;
请求比较模块用于对准备登记请求记录模块的请求与当前已登记的请求进行比较。访问TLB的请求在不命中一级TLB且命中二级TLB时,将请求信息及命中二级TLB的数据分别登记到请求记录模块和二级TLB命中信息记录模块中,并在一级TLB空闲时将命中二级TLB得到的虚实地址映射关系装入一级TLB;在此期间,若有新的请求访问TLB命中二级TLB,并且请求记录模块中没有空闲位置记录新的请求,则对新的请求和请求记录模块中登记的请求进行比较,决定是否将请求记录模块中的请求替换为新的请求,并同时将新请求命中二级TLB的信息登记到二级TLB命中信息记录模块中。
采用该管理装置对两级TLB进行管理时,当访存请求在访问TLB进行虚实地址转换时,首先访问一级TLB,如果命中一级TLB,则一级TLB直接输出代换后的物理地址,访存请求使用代换后的物理地址访问存储系统。如果不命中一级TLB,则继续访问二级TLB(同时访问二级TLB大页模块和二级TLB小页模块),如果命中二级TLB,则将请求本身相关信息和二级TLB的命中信息分别登记到请求记录模块和二级TLB命中信息记录模块中,并在一级TLB空闲时,将命中二级TLB得到的虚实地址映射关系装入一级TLB中。
请求命中二级TLB后,在等待装填一级TLB期间,如果有新的请求命中二级TLB,且请求记录模块无法登记更多的信息,此时,需要对新的请求和请求记录模块中的请求进行比较,并决定是否将新的请求替换请求记录模块中的某个请求,相应地,新的请求命中二级TLB的信息也需要同步登记到二级TLB命中信息记录模块中。例如,可以根据两个请求对应的指令决定请求记录模块最终记录哪个请求;在支持乱序执行的微处理器中,两个先后访问TLB进行虚实地址代换的请求,先访问TLB的请求对应指令的程序顺序未必在前,后访问TLB的请求对应指令的程序顺序未必在后,请求记录模块可以优先选择记录程序顺序在前的指令对应的请求。
将请求命中二级TLB得到的虚实地址映射关系装入一级TLB时,还需要判断一级TLB是否有淘汰条目,并根据二级TLB命中情况,决定一级TLB的淘汰条目回写二级TLB的位置。主要包括如下三种情况:
第一种情况是装填一级TLB时,一级TLB没有条目需要淘汰,此时,根据二级TLB命中信息记录模块记录的信息,直接清除请求命中二级TLB的条目。
第二种情况是装填一级TLB时,一级TLB有条目需要淘汰,且淘汰条目可以回写到二级TLB命中信息记录模块记录的二级TLB命中位置,例如,请求命中二级TLB大页模块,一级TLB的淘汰条目对应的页面粒度是大页;或者请求命中二级TLB小页模块,一级TLB的淘汰条目对应的页面粒度也是小页,且两个虚实地址映射关系对应条目在组相联的二级TLB小页模块中对应相同的索引位置。此时,一级TLB淘汰条目优先回写到二级TLB命中信息记录模块记录的二级TLB命中位置,避免一级TLB淘汰条目回写二级TLB进一步引起二级TLB的淘汰,同时维持两级TLB之间的互斥关系。
第三种情况是装填一级TLB时,一级TLB有条目需要淘汰,且淘汰条目无法回写到二级TLB命中信息记录模块记录的二级TLB命中位置,例如,请求命中二级TLB大页模块,一级TLB的淘汰条目对应的页面粒度是小页;或者请求命中二级TLB小页模块,一级TLB的淘汰条目对应的页面粒度是大页;或者请求命中二级TLB小页模块,一级TLB的淘汰条目对应的页面粒度也是小页,但两个虚实地址映射关系对应条目在组相联的二级TLB小页模块中对应不同的索引位置。此时,根据二级TLB的装填算法,将一级TLB的淘汰条目回写到二级TLB中,同时清除二级TLB命中信息记录模块记录的二级TLB命中位置,保持两级TLB之间的互斥关系。
图2是本发明请求访问两级TLB及装填一级TLB、一级TLB回写二级TLB的总体流程图,包括如下步骤:
步骤101,请求在进行虚实地址转换时,首先访问一级TLB;
步骤102,请求命中一级TLB时,读取命中条目可获取代换后的物理地址,并可以使用访问一级TLB代换到的物理地址直接访问存储系统;
步骤103,请求在不命中一级TLB时,继续访问二级TLB。
需要说明的是,二级TLB分为小页模块和大页模块两个部分,请求在访问二级TLB时同时访问这两个模块;由于对于一个特定的虚地址,其所在的页面粒度也是确定的,因此,请求访问二级TLB时不会同时命中小页模块和大页模块。
步骤104,请求如果不命中二级TLB,则直接进行TLB缺失异常处理;
步骤105,请求如果命中二级TLB,则将命中信息登记到二级TLB命中信息记录模块中,同时将请求自身登记到请求记录模块中;
步骤106,请求命中二级TLB后,在等待装填一级TLB期间,需要判断命中二级TLB的信息是否确实需要装填到一级TLB中;
步骤107,如果发现该请求命中二级TLB的信息无需装填到一级TLB中,例如该请求属于错误推测执行的请求,则直接释放请求记录模块和二级TLB命中信息记录模块中的资源;
步骤108,如果发现该请求命中二级TLB的信息需要装填到一级TLB中,还需要判断一级TLB因为无可用条目产生淘汰;
步骤109,将请求命中二级TLB的信息需要装填到一级TLB时,如果一级TLB没有条目需要淘汰,则直接装填一级TLB,同时将该虚实代换关系从二级TLB中清除,保证一个虚实代换关系不会同时出现在两级TLB中;
步骤110,将请求命中二级TLB的信息需要装填到一级TLB时,如果一级TLB有条目需要淘汰,进一步判断一级TLB的淘汰条目能否回写到请求在二级TLB中的命中位置;
步骤111,将请求命中二级TLB的信息需要装填到一级TLB时,如果一级TLB有条目需要淘汰,并且无法将一级TLB的淘汰条目回写到请求在二级TLB中的命中位置,则根据二级TLB的装填算法,将一级TLB的淘汰条目回写到二级TLB中,同时将装填到一级TLB的虚实地址映射关系从二级TLB中清除;
步骤112,将请求命中二级TLB的信息需要装填到一级TLB时,如果一级TLB有条目需要淘汰,并且可以回写到请求在二级TLB中的命中位置,则直接将一级TLB的淘汰条目回写到请求在二级TLB中的命中位置,即实现请求在二级TLB命中条目和一级TLB淘汰条目的位置互换。
图3是本发明实施例请求命中二级TLB,装入一级TLB时一级TLB无淘汰条目的处理流程示意图。请求命中二级TLB后,将访问TLB的请求信息及命中二级TLB的信息分别登记到请求记录模块和二级TLB命中信息记录模块中。将二级TLB的命中条目装入一级TLB时,一级TLB没有条目需要淘汰,因此将请求在二级TLB中的命中条目清除。
图4是本发明实施例请求命中二级TLB大页模块,装入一级TLB时一级TLB的淘汰条目需要回写二级TLB大页模块的处理流程示意图。请求命中二级TLB大页模块,并将访问TLB的请求信息及命中二级TLB大页模块的信息分别登记到请求记录模块和二级TLB命中信息记录模块中。在将请求命中二级TLB大页模块得到的虚实地址映射关系装入一级TLB时,一级TLB需要先淘汰一个条目,且淘汰条目对应的页面粒度是大页粒度,因此,将一级TLB的淘汰条目回写到请求在二级TLB大页模块中的命中位置,即实现请求在二级TLB大页模块中的命中条目与一级TLB淘汰条目的位置互换。
图5是本发明实施例请求命中二级TLB大页模块,装入一级TLB时一级TLB的淘汰条目需要回写二级TLB小页模块的处理流程示意图。请求命中二级TLB大页模块,并将访问TLB的请求信息及命中二级TLB大页模块的信息分别登记到请求记录模块和二级TLB命中信息记录模块中。在将请求命中二级TLB大页模块得到的虚实地址映射关系装入一级TLB时,一级TLB需要先淘汰一个条目,且淘汰条目对应的页面粒度是小页粒度,因此,根据二级TLB小页模块的装入算法,将一级TLB的淘汰条目回写到二级TLB小页模块中,同时,清除请求在二级TLB大页模块中的命中条目。
图6是本发明实施例请求命中二级TLB小页模块,装入一级TLB时一级TLB的淘汰条目需要回写二级TLB大页模块的处理流程示意图。请求命中二级TLB小页模块,并将访问TLB的请求信息及命中二级TLB小页模块的信息分别登记到请求记录模块和二级TLB命中信息记录模块中。在将请求命中二级TLB小页模块得到的虚实地址映射关系装入一级TLB时,一级TLB需要先淘汰一个条目,且淘汰条目对应的页面粒度是大页粒度,因此,根据二级TLB大页模块的装入算法,将一级TLB的淘汰条目回写到二级TLB大页模块中,同时,清除请求在二级TLB小页模块中的命中条目。
图7是本发明实施例请求命中二级TLB小页模块,装入一级TLB时一级TLB的淘汰需要条目回写二级TLB小页,且请求命中二级TLB小页模块的索引地址与一级TLB淘汰条目回写二级TLB小页模块的索引地址相同时的处理流程示意图。请求命中二级TLB小页模块,并将访问TLB的请求信息及命中二级TLB小页模块的信息分别登记到请求记录模块和二级TLB命中信息记录模块中。在将请求命中二级TLB小页模块得到的虚实地址映射关系装入一级TLB时,一级TLB需要先淘汰一个条目,且淘汰条目对应的页面粒度是小页粒度,同时一级TLB淘汰条目回写二级TLB小页模块位置的索引地址与请求在二级TLB小页模块中命中位置的索引地址相同,因此,将一级TLB的淘汰条目直接回写到请求在二级TLB小页模块中的命中位置,即实现请求在二级TLB小页模块的命中条目与一级TLB淘汰条目的位置互换。
图8是本发明实施例请求命中二级TLB小页模块,装入一级TLB时一级TLB的淘汰需要条目回写二级TLB小页,且请求命中二级TLB小页模块的索引地址与一级TLB淘汰条目回写二级TLB小页模块的索引地址不同时的处理流程示意图。请求命中二级TLB小页模块,并将访问TLB的请求信息及命中二级TLB小页模块的信息分别登记到请求记录模块和二级TLB命中信息记录模块中。在将请求命中二级TLB小页模块得到的虚实地址映射关系装入一级TLB时,一级TLB需要先淘汰一个条目,且淘汰条目对应的页面粒度是小页粒度,同时一级TLB淘汰条目回写二级TLB小页模块位置的索引地址与请求在二级TLB小页模块中命中位置的索引地址不同,因此,根据二级TLB小页模块的装入算法,将一级TLB的淘汰条目回写到二级TLB小页模块中,同时,清除请求在二级TLB小页模块中的命中条目。
图9是本发明实施例请求命中二级TLB后,在等待将虚实地址映射关系装入一级TLB期间,程序顺序在前的指令对应的请求命中二级TLB,并替换请求记录模块中的请求及二级TLB命中信息记录模块中的命中信息。请求A在不命中一级TLB的情况下访问二级TLB,命中二级TLB后将请求A的信息登记到请求记录模块中,将命中二级TLB的信息登记到二级TLB命中信息记录模块中。在等待将请求A命中二级TLB得到的虚实地址映射关系装入一级TLB期间,请求B不命中一级TLB,访问并命中二级TLB;相比请求A,请求B对应的指令的程序顺序更靠前,因此,优先处理请求B,将请求记录模块中的请求信息替换为请求B的相关信息,将二级TLB命中信息记录模块中的命中信息替换为请求B命中二级TLB的相关信息。在一级TLB空闲时,将请求记录模块和二级TLB命中信息记录模块中缓存的虚实地址映射关系(即请求B命中二级TLB得到的虚实地址映射关系)装入一级TLB中。
不难发现,本发明通过请求记录模块、请求比较模块及二级TLB命中信息记录模块构成的装置,可以有效降低两级TLB的管理复杂度,并且具有较小的硬件开销。在装填一级TLB时,综合二级TLB的命中信息及一级TLB的淘汰条目信息,选择一级TLB的回写位置,维持两级TLB的互斥关系,避免一个条目同时出现在两级TLB中,可以提高两级TLB对地址空间的覆盖率,减少TLB缺失情况。
Claims (10)
1.一种两级转换旁路缓冲的管理装置,包括一级转换旁路缓冲、二级转换旁路缓冲、请求记录模块、请求比较模块和二级转换旁路缓冲命中信息记录模块,其特征在于,一级转换旁路缓冲采用全相联的组织结构,混合存放各种页面粒度的虚实地址映射关系;二级转换旁路缓冲包括小页模块和大页模块,所述小页模块用于存储最小粒度页面的虚实地址映射关系,采用组相联的组织结构;所述大页模块用于存储其他粒度页面的虚实地址映射关系,采用全相联的组织结构;所述请求记录模块用于记录当前命中二级转换旁路缓冲,但尚未将命中信息装入一级转换旁路缓冲的请求;所述二级转换旁路缓冲命中信息记录模块与所述请求记录模块相关联,用于记录请求命中二级转换旁路缓冲的相关信息;所述请求比较模块用于对准备登记请求记录模块的请求与当前已登记的请求进行比较。
2.根据权利要求1所述的两级转换旁路缓冲的管理装置,其特征在于,所述请求记录模块记录的内容包括请求的有效位、请求所属的地址空间标记、请求访存的虚地址和请求对应的指令的相关信息。
3.根据权利要求1所述的两级转换旁路缓冲的管理装置,其特征在于,所述二级转换旁路缓冲命中信息记录模块记录的内容包括命中二级转换旁路缓冲代换出的物理地址、对应页面的粒度及权限控制位、是否命中二级转换旁路缓冲大页模块、命中二级转换旁路缓冲大页模块的条目号、是否命中二级转换旁路缓冲小页模块、命中二级转换旁路缓冲小页模块的路号及索引地址。
4.一种两级转换旁路缓冲的管理方法,其特征在于,采用如权利要求1-3中任一所述的管理装置,在访存请求不命中一级转换旁路缓冲时,同时访问二级转换旁路缓冲的大页模块和小页模块,当访存请求命中二级转换旁路缓冲时,将请求本身相关信息和命中二级转换旁路缓冲的信息分别登记到请求记录模块和二级转换旁路缓冲命中信息记录模块中;当一级转换旁路缓冲空闲时,将命中二级转换旁路缓冲得到的虚实地址映射关系装入一级转换旁路缓冲。
5.根据权利要求4所述的两级转换旁路缓冲的管理方法,其特征在于,请求命中二级转换旁路缓冲后,在等待装填一级转换旁路缓冲期间,如果有新的请求命中二级转换旁路缓冲,且请求记录模块无法登记更多的信息,此时,请求比较模块将新的请求和请求记录模块中的请求进行比较,若新的请求的记录程序顺序在前,则将新的请求替换请求记录模块中的某个请求,同时将新的请求命中二级转换旁路缓冲的信息同步登记到二级转换旁路缓冲命中信息记录模块中。
6.根据权利要求4所述的两级转换旁路缓冲的管理方法,其特征在于,所述将命中二级转换旁路缓冲得到的虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲没有条目需要淘汰,则清除二级转换旁路缓冲中请求的命中条目。
7.根据权利要求4所述的两级转换旁路缓冲的管理方法,其特征在于,在访存请求命中二级转换旁路缓冲的大页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是大页,则将一级转换旁路缓冲的淘汰条目回写到请求命中条目在二级转换旁路缓冲的大页模块中的位置;如果一级转换旁路缓冲的淘汰条目是小页,则根据二级转换旁路缓冲的小页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的小页模块,同时,清除二级转换旁路缓冲大页模块中请求的命中条目。
8.根据权利要求4所述的两级转换旁路缓冲的管理方法,其特征在于,在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是大页,则根据二级转换旁路缓冲的大页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的大页模块,同时,清除二级转换旁路缓冲的小页模块中请求的命中条目。
9.根据权利要求4所述的两级转换旁路缓冲的管理方法,其特征在于,在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是小页,并且请求命中条目和一级转换旁路缓冲淘汰条目在二级转换旁路缓冲的小页模块中的索引地址相同,则将一级转换旁路缓冲的淘汰条目回写到请求命中条目在二级转换旁路缓冲的小页模块中的位置。
10.根据权利要求4所述的两级转换旁路缓冲的管理方法,其特征在于,在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是小页,并且请求命中条目和一级转换旁路缓冲淘汰条目在二级转换旁路缓冲的小页模块中的索引地址不同,则根据二级转换旁路缓冲的小页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的小页模块中,同时,清除二级转换旁路缓冲的小页模块中请求的命中条目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911100428.2A CN111124954B (zh) | 2019-11-12 | 2019-11-12 | 一种两级转换旁路缓冲的管理装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911100428.2A CN111124954B (zh) | 2019-11-12 | 2019-11-12 | 一种两级转换旁路缓冲的管理装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124954A CN111124954A (zh) | 2020-05-08 |
CN111124954B true CN111124954B (zh) | 2023-02-24 |
Family
ID=70495575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911100428.2A Active CN111124954B (zh) | 2019-11-12 | 2019-11-12 | 一种两级转换旁路缓冲的管理装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124954B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965921B (zh) * | 2021-02-07 | 2024-04-02 | 中国人民解放军军事科学院国防科技创新研究院 | 一种多任务gpu中tlb管理方法及系统 |
CN116719760A (zh) * | 2023-05-15 | 2023-09-08 | 合芯科技有限公司 | 一种低延迟处理缓存读取请求的方法、设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246452B (zh) * | 2007-02-12 | 2010-12-15 | 国际商业机器公司 | 执行快速的mmu模拟的方法和装置、以及全系统模拟器 |
CN104731720B (zh) * | 2014-12-30 | 2018-01-09 | 杭州中天微系统有限公司 | 组相连的二级内存管理装置 |
EP3441884B1 (en) * | 2016-05-03 | 2021-09-01 | Huawei Technologies Co., Ltd. | Method for managing translation lookaside buffer and multi-core processor |
-
2019
- 2019-11-12 CN CN201911100428.2A patent/CN111124954B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111124954A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US10402331B2 (en) | Systems and methods for implementing a tag-less shared cache and a larger backing cache | |
JP5628404B2 (ja) | キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ | |
US7426626B2 (en) | TLB lock indicator | |
US6006312A (en) | Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses | |
US5465342A (en) | Dynamically adaptive set associativity for cache memories | |
US6014732A (en) | Cache memory with reduced access time | |
US5751990A (en) | Abridged virtual address cache directory | |
EP2118753B1 (en) | Address translation method and apparatus | |
US7949834B2 (en) | Method and apparatus for setting cache policies in a processor | |
US9418011B2 (en) | Region based technique for accurately predicting memory accesses | |
US20030065890A1 (en) | Method and apparatus for updating and invalidating store data | |
US10545879B2 (en) | Apparatus and method for handling access requests | |
US20170286296A1 (en) | Managing synonyms in virtual-address caches | |
US20180157601A1 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US5956752A (en) | Method and apparatus for accessing a cache using index prediction | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US20120173843A1 (en) | Translation look-aside buffer including hazard state | |
US20100030966A1 (en) | Cache memory and cache memory control apparatus | |
JP2009512943A (ja) | 多階層の変換索引緩衝機構(TLBs)フィールドの更新 | |
US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
CN111124954B (zh) | 一种两级转换旁路缓冲的管理装置及方法 | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
US8688952B2 (en) | Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB |
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 |