CN111124954B - 一种两级转换旁路缓冲的管理装置及方法 - Google Patents

一种两级转换旁路缓冲的管理装置及方法 Download PDF

Info

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
Application number
CN201911100428.2A
Other languages
English (en)
Other versions
CN111124954A (zh
Inventor
胡向东
路冬冬
张海龙
何军
杜鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER
Original Assignee
SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER filed Critical SHANGHAI HIGH-PERFORMANCE INTEGRATED CIRCUIT DESIGN CENTER
Priority to CN201911100428.2A priority Critical patent/CN111124954B/zh
Publication of CN111124954A publication Critical patent/CN111124954A/zh
Application granted granted Critical
Publication of CN111124954B publication Critical patent/CN111124954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches 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所述的两级转换旁路缓冲的管理方法,其特征在于,在访存请求命中二级转换旁路缓冲的小页模块,将虚实地址映射关系装入一级转换旁路缓冲时,如果一级转换旁路缓冲的淘汰条目是小页,并且请求命中条目和一级转换旁路缓冲淘汰条目在二级转换旁路缓冲的小页模块中的索引地址不同,则根据二级转换旁路缓冲的小页模块的装入算法,将一级转换旁路缓冲的淘汰条目回写到二级转换旁路缓冲的小页模块中,同时,清除二级转换旁路缓冲的小页模块中请求的命中条目。
CN201911100428.2A 2019-11-12 2019-11-12 一种两级转换旁路缓冲的管理装置及方法 Active CN111124954B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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