CN112631962A - 存储管理装置、存储管理方法、处理器和计算机*** - Google Patents

存储管理装置、存储管理方法、处理器和计算机*** Download PDF

Info

Publication number
CN112631962A
CN112631962A CN201910907572.0A CN201910907572A CN112631962A CN 112631962 A CN112631962 A CN 112631962A CN 201910907572 A CN201910907572 A CN 201910907572A CN 112631962 A CN112631962 A CN 112631962A
Authority
CN
China
Prior art keywords
level
cache
translation
entries
entry
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.)
Pending
Application number
CN201910907572.0A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910907572.0A priority Critical patent/CN112631962A/zh
Priority to US17/021,716 priority patent/US11836079B2/en
Priority to PCT/US2020/050855 priority patent/WO2021061446A1/en
Publication of CN112631962A publication Critical patent/CN112631962A/zh
Priority to US18/507,936 priority patent/US20240086323A1/en
Pending legal-status Critical Current

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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]
    • 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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30047Prefetch instructions; cache control instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

公开了一种存储管理装置、存储管理方法、处理器以及计算机***。存储管理装置包括:至少一个转译后备缓冲器,用于存储多个缓存表项,多个缓存表项包括多个第1级缓存表项和多个第2级缓存表项;以及地址转换单元,与至少一个转译后备缓冲器耦接,适于根据多个第1级缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址,或在多个第1级缓存表项均未命中转译请求时根据多个第2级缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址。本公开实施例可以根据转译请求指定的虚拟地址对多个缓存表项进行分级查找,从而减少地址转译过程中查找缓存表项所需的时间,使得处理器的效率、频率和性能被提升、降低了功耗。

Description

存储管理装置、存储管理方法、处理器和计算机***
技术领域
本发明涉及处理器领域,更具体而言,涉及一种存储管理装置、存储管理方法、处理器和计算机***。
背景技术
在支持虚拟存储机制的计算机***中,可使用虚拟地址(也可称为有效地址、逻辑地址、Virtual Address或简称为VA)来指定数据,并利用多个虚拟地址管理计算机***的虚拟存储空间。在访问内存的过程中,需要将虚拟地址转译为物理地址(也可称为实际地址、真实地址、Physical Address或简称为PA)。为了实现地址转译,计算机***需要存储大量的表项,每个表项用于将指定范围的虚拟地址转译为相应的物理地址。
为了加快地址转译过程,可以采用转译后备缓冲器(Translation Look-asideBuffer,TLB)将计算机***中存储的一部分表项进行缓存,以避免每次地址转译过程均需要从计算机***中存储的全部表项中进行查找。如果待转译的虚拟地址与TLB缓存的表项之一匹配(称为命中、匹配或hit),计算机***可以直接利用TLB实现地址转译,而无需在TLB外部进行表项查找。
对高性能的处理器而言,程序动态访问的虚拟地址的范围可能很广,为了尽可能的提高地址转译效率,TLB中存储的缓存表项的总数目被不断加大,以使TLB映射的地址范围被扩大、TLB的命中率被提升;另一方面,高性能的处理器对频率要求也很高、地址转译是出现频率极高的操作过程。
在传统方案中,地址转译过程通常需要在多个缓存表项中逐一查找与待转译的虚拟地址匹配的缓存表项,当TLB中存储了大量的缓存表项时,地址转译过程产生的较大延时会阻碍处理器频率的进一步提升、影响处理器的效率和性能;在较多的缓存表项中查找与转译请求匹配的缓存表项的过程也会产生较大的功耗。
发明内容
有鉴于此,本发明实施例提供一种存储管理装置、存储管理方法、处理器和计算机***,以解决以上问题。
为了达到这个目的,第一方面,本发明提供一种存储管理装置,包括:至少一个转译后备缓冲器,用于存储多个缓存表项,所述多个缓存表项包括多个第1级缓存表项和多个第2级缓存表项;以及地址转换单元,与所述至少一个转译后备缓冲器耦接,适于根据所述多个第1级缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址,或在所述多个第1级缓存表项均未命中所述转译请求时根据所述多个第2级缓存表项之一将所述转译请求指定的虚拟地址转译为相应的转译地址。
在一些实施例中,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页;以及第二寄存器,用于存储转译地址标签,以指示所述虚拟页映射的转译页,每个所述缓存表项映射的虚拟页和转译页的页面尺寸一致。
在一些实施例中,存储管理装置还包括控制单元,与所述地址转译单元耦接,并适于:当所述多个缓存表项的虚拟地址标签均未命中所述转译请求指定的虚拟地址时,从根页表中获取与所述转译请求指定的虚拟地址匹配的待回填表项,将所述待回填表项写入所述至少一个转移后备缓冲器。
在一些实施例中,所述地址转换单元适于:判断所述多个第1级缓存表项是否命中所述转译请求指定的虚拟地址,若所述多个第1级缓存表项之一命中,则根据命中的所述第1级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,若所述多个第1级缓存表项均未命中,则判断所述多个第2级缓存表项是否命中所述转移请求指定的虚拟地址,若所述多个第2级缓存表项之一命中,则根据命中的所述第2级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,若所述多个第2级缓存表项均未命中,则向所述控制单元提供失配信息,以使所述控制单元获取所述待回填表项。
在一些实施例中,所述控制单元还适于:在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,根据预设算法选择所述多个第1级缓存表项之一,并用命中的所述第2级缓存表项替换选定的所述多个第1级缓存表项之一。
在一些实施例中,所述多个寄存器还包括:第三寄存器,用于存储引用标记位,以指示该缓存表项是否为最近最少被命中的所述缓存表项。
在一些实施例中,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述控制单元适于根据各个所述第1级缓存表项的所述引用标记位选择最近最少被命中的所述第1级缓存表项。
在一些实施例中,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述控制单元适于根据所述多个第1级缓存表项被写入所述至少一个转移后备缓冲器中的先后顺序选择最先被写入的所述第1级缓存表项。
在一些实施例中,在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,所述控制单元还适于将被替换的所述第1级缓存表项作为一所述第2级缓存表项写入所述至少一个转移后备缓冲器。
在一些实施例中,所述多个寄存器还包括:第四寄存器,用于存储尺寸标记位,以指示所述虚拟页/所述转译页的页面尺寸。
在一些实施例中,在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,所述控制单元还适于根据所述尺寸标记位选择被替换的所述第1级缓存表项,使得命中的所述第2级缓存表项与被替换的所述第1级缓存表项映射的页面尺寸相等。
在一些实施例中,在所述至少一个转译后备缓冲器中,所述第1级缓存表项的数目小于/等于第2级缓存表项的数目。
第二方面,本发明提供一种处理器,包括如上任一实施例所述的存储管理装置。
在一些实施例中,处理器还包括指令预取单元,所述指令预取单元向所述地址转换单元提供所述转译请求,所述转译请求指定预取指令的虚拟地址,所述地址转换单元与所述至少一个转译后备缓冲器中的第一转译后备缓冲器通信,并根据所述第一转译后备缓冲器提供的所述缓存表项向所述指令预取单元提供所述预取指令的转译地址。
在一些实施例中,处理器还包括加载存储单元,所述加载存储单元向所述地址转换单元提供所述转译请求,所述转译请求指定访存指令的虚拟地址,所述地址转换单元与所述至少一个转译后备缓冲器中的第二转译后备缓冲器通信,并根据所述第二转译后备缓冲器提供的所述缓存表项向所述加载存储单元提供所述访存指令的转译地址。
第三方面,本发明提供一种计算机***,包括:如上任一实施例所述的处理器;以及存储器,与所述处理器耦接。
第四方面,本发明提供一种存储管理方法,包括:提供多个缓存表项,所述多个缓存表项包括多个第1级缓存表项和多个第2级缓存表项;接收转译请求,所述转译请求指定待转译的虚拟地址;以及根据所述多个第1级缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址,或在所述多个第1级缓存表项均未命中所述转译请求时根据所述多个第2级缓存表项之一将所述转译请求指定的虚拟地址转译为相应的转译地址。
在一些实施例中,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页;以及第二寄存器,用于存储转译地址标签,以指示所述虚拟页映射的转译页,每个所述缓存表项映射的虚拟页和转译页的页面尺寸一致。
在一些实施例中,存储管理方法还包括:当所述多个缓存表项的虚拟地址标签均未命中所述转译请求指定的虚拟地址时,从根页表中获取与所述转译请求指定的虚拟地址匹配的待回填表项,将所述待回填表项作为一所述第1级缓存表项或所述第2级缓存表现写入用于存储所述多个缓存表项的至少一个转移后备缓冲器。
在一些实施例中,根据所述多个缓存表项之一将所述转移请求指定的虚拟地址转译为相应的转译地址的步骤包括:判断所述多个第1级缓存表项是否命中所述转译请求指定的虚拟地址,若所述多个第1级缓存表项之一命中,则根据命中的所述第1级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,若所述多个第1级缓存表项均未命中,则判断所述多个第2级缓存表项是否命中所述转移请求指定的虚拟地址,若所述多个第2级缓存表项之一命中,则根据命中的所述第2级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,若所述多个第2级缓存表项均未命中,则向所述控制单元提供失配信息,以使所述控制单元获取所述待回填表项。
在一些实施例中,存储管理方法还包括:在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,根据预设算法选择所述多个第1级缓存表项之一,并用命中的所述第2级缓存表项替换选定的所述多个第1级缓存表项之一。
在一些实施例中,所述多个寄存器还包括:第三寄存器,用于存储引用标记位,以指示该缓存表项是否为最近最少被命中的所述缓存表项。
在一些实施例中,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述预设算法根据各个所述第1级缓存表项的所述引用标记位选择最近最少被命中的所述第1级缓存表项。
在一些实施例中,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述预设算法根据所述多个第1级缓存表项被写入所述至少一个转移后备缓冲器中的先后顺序选择最先被写入的所述第1级缓存表项。
在一些实施例中,存储管理方法还包括:在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,将被替换的所述第1级缓存表项作为一所述第2级缓存表项写入所述至少一个转移后备缓冲器。
在一些实施例中,所述多个寄存器还包括:第四寄存器,用于存储尺寸标记位,以指示所述虚拟页/所述转译页的页面尺寸。
在一些实施例中,在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,所述预设算法根据所述尺寸标记位选择需要被替换的所述第1级缓存表项,使得命中的所述第2级缓存表项与被替换的所述第1级缓存表项映射的页面尺寸相等。
在一些实施例中,所述第1级缓存表项的数目小于/等于第2级缓存表项的数目。
相比于传统方案,本发明实施例提供的存储管理方法和存储管理装置根据转译请求指定的虚拟地址对多个缓存表项进行分级查找,由于第1级缓存表项的数目小于存储管理装置提供的缓存表项的总数目,因此若某一第1级缓存表项能够命中,则可以明显减少需要与转译请求指定的虚拟地址进行匹配比较的缓存表项的数量,从而减少地址转译过程中查找所述缓存表项所需要的时间,使得处理器的效率、频率和性能可以被提升、降低了地址转译过程产生的功耗。
在一些优选的实施例中,若第1级缓存表项均未命中、某一第2级缓存表项命中,则可以通过将命中的第2级缓存表项与一使用频率较低的第1级缓存表项进行置换,进一步提高了多个第1级缓存表项的命中率,从而也进一步减少了地址转译过程中查找缓存表项所需要的时间。
附图说明
通过参考以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1示出本发明实施例的***的示意图框图;
图2是本发明实施例中处理器1100的示意性框图;
图3示出了本发明实施例的存储管理单元的示意性框图;
图4示出了采用TLB实现地址转译的原理示意图;
图5示出通过TLB实现地址转译的流程示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
在本文中使用以下术语。
计算机***:通用嵌入式***、台式机、服务器或其他具备信息处理能力的***。
存储器:位于计算机***内,用于存储信息的物理结构。按照用途的不同,存储器可以分为主存储器(也可称为内部存储器,或简称为内存/主存)和辅助存储器(也可称为外部存储器,或简称为辅存/外存)。主存用于存储由数据信号表示的指令信息和/或数据信息,例如用于存放处理器提供的数据,也可用于实现处理器与外存之间的信息交换。外存提供的信息需要被调入主存中才能被处理器访问,因此本文提到的存储器一般是指主存,本文提到的存储设备一般是指外存。
物理地址(Physical Address,简称为PA):地址总线上的地址。处理器或其他硬件可以向地址总线提供物理地址以访问主存。物理地址也可称为实际地址、真实地址或绝对地址。
虚拟地址:软件或程序所使用的抽象地址。虚拟地址空间可以大于物理地址空间,虚拟地址可以被映射至对应的物理地址。
分页(paging)管理机制:将虚拟地址空间划分为多个部分,每部分作为一个虚拟页面,并将物理地址空间划分为多个部分,每部分作为一个物理页面。物理页面也称为物理地址块或物理地址页框(page frame)。
根页表:用于指定虚拟页面和物理页面之间的对应关系,通常被存储在主存中。根页表中包括多个表项,每个表项分别用于指定虚拟页面到物理页面的映射关系以及一些管理标志,从而可以用于将虚拟页面中的虚拟地址转译为相应物理页面中的物理地址。
缓存表项:根页表中的一些可能常用的表项可以被缓存在转译后备缓冲器中,以便于在地址转译过程中被调用,从而加快地址转译过程。为了与根页表中的表项作区分,后文将存储于TLB中的表项简称为缓存表项。
本申请实施例可以应用于互联网和物联网(Internet of Things,简称IoT)等***中,例如5G移动互联网***、自动驾驶***等。但应当领会,本发明实施例不限于此,还可以应用在任何需要实现地址转译的场景中。
***概述
图1示出本发明实施例的计算机***的示意图框图。图1中示出的计算机***1000旨在示出一个或多个电子装置的至少部分组件,在本发明的其他实施例中,可以省略图1示出的部分组件或以不同的架构实现各组件之间的连接,也可以包括图1中未示出的一些硬件和/或软件模块,图1中示出的两个或两个以上的组件也可以在软件体系和/或硬件体系上被合成为一个组件。
在一些实施例中,计算机***1000可以应用于移动设备、手持式设备或嵌入式设备中,例如应用于采用5G技术的智能手机或自动驾驶车辆的处理平台中。计算机***1000还可以应用于物联网设备、可穿戴设备(诸如智能手表、智能眼镜等设备),也可以是电视、机顶盒等设备。
如图1所示,计算机***1000可以包括一个或多个处理器1100。例如,计算机***1000可以是包含至少一个处理器的终端***、包含多个处理器的工作站***或包含大量处理器或处理器核的服务器***。计算机***1000中的一个或多个处理器1100可以是分别独立封装的芯片,也可以是集成于片上***(System of Chip,SoC)中的集成电路。处理器1100可以是中央处理器、图形处理器和物理处理器等。
如图1所示,计算机***1000还包括总线1200,处理器1100可以与一个或多个总线1200耦合。总线1200用于在处理器1100与计算机***1000中的其他部件之间传输信号,例如传输地址、数据或控制信号等。总线1200可以是处理器总线,例如为直接媒体接口(Direct Media Interface,DMI)总线,然而本发明实施例的接口总线1200不限于采用DMI总线作为接口总线,还可以包括一个或多个互连总线,例如:基于外设部件互连标准(Peripheral Component Interconnect,PCI)的总线、存储器总线或其他类型的总线。
在一些实施例中,如图1所示,计算机***1000还包括存储器1300。存储器1300作为计算机***的主存,可以是动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random-Access Memory,SRAM)或其他具有存储能力的模块。在一些实施例中,存储器1300可以用于存储数据信息和指令信息,以供一个或多个处理器1100在执行应用程序或进程时使用。除此之外,计算机***1000还可以包括一个或多个存储设备1800,作为辅助存储器提供额外的存储空间。
计算机***1000也可以经由总线1200耦合到显示设备1400,例如阴极射线管(CRT)、液晶显示器(LCD)或有机发光二极管(OLED)阵列,以显示用户需要了解的信息。
在一些实施例中,计算机***1000可以包括输入设备1500,例如为键盘、鼠标、触控面板等设备,用于将用户操作对应的信息经总线1200传送给相应的处理器1100。计算机***1000还可以包括采集设备1600,可以耦合到总线1200以传送有关图像/声音等可被采集的信息相关的指令和数据。采集设备1600例如为麦克风和/或用于采集图像的摄像机或照相机等设备。输入设备1500和采集设备1600提供的数据可以被存储在存储设备1300的相应存储区域,输入设备1500和采集设备1600提供的指令可以被相应的处理器1100执行。
计算机***1000可以进一步包括网络接口1700,以使***可以访问网络,网络例如为局域网(LAN)、广域网(WAN)、城域网(MAN)、个人区域网络(PAN)、蓝牙、云网络、移动网络(例如长期演进Long Term Evolution,LTE)网络、3G网络、4G网络或5G网络等)、内联网、因特网等。网络接口1700可以包括具有至少一个天线的无线网络接口和/或经由网络电缆通信的有线网络接口,网络电缆可以是以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
网络接口1700例如可以根据IEEE 802.11b和/或802.11g标准提供对LAN的访问,也可以根据蓝牙标准提供对个人局域网络的访问,也可以支持其他无线网络接口和/或协议,包括现有的通信标准和未来的通信标准。网络接口1700还可以利用时分多址(TDMI)协议、全球移动通信***(GSM)协议、码分多址(CDMA)协议和/或其他类型的无线通信协议等。
需要说明的是,上文以及图1仅仅用于对计算机***1000进行示例性的描述,而不用于限制计算机***1000的具体实现方式。计算机***1000还可以包括其它组成部分,例如数据处理单元等;上文描述的计算机***1000中的各个部分也可以在实际应用中适当被省略。
处理器
图2是本发明实施例中处理器1100的示意性框图。
在一些实施例中,每个处理器1100可以包括用于处理指令的一个或多个处理器核101,指令的处理和执行是可以被用户(例如通过应用程序)和/或***平台控制的。在一些实施例中,每个处理器核可以用于处理特定的指令集。在一些实施例中,指令集可以支持复杂指令集计算(Complex Instruction Set Computing,CISC)、精简指令集计算(ReducedInstruction Set Computing,RISC)或基于超长指令字(Very Long Instruction Word,VLIW)的计算。不同的处理器核101可以各自处理不同的指令集。在一些实施例中,处理器核101还可以包括其他处理模块,例如数字信号处理器(Digital Signal Processor,DSP)等。作为一种示例,图2中示出了处理器核1至m,m是非0的自然数。
在一些实施例中,如图2所示,处理器1100可以包括高速缓存器,且根据不同架构,处理器1100中的高速缓存器可以是位于各个处理器核101之内和/或之外的单个或多级的内部高速缓存器(如图2示出的3级高速缓存器L1至L3),也可以包括面向指令的指令高速缓存和面向数据的数据高速缓存。在一些实施例中,处理器1100中的各个部件可以共享至少一部分的高速缓存器,如图2所示,处理器核1至m例如共用第三级高速缓存器L3。处理器1100还可以包括外部高速缓存(未示出),其他高速缓存结构也可以作为处理器1100的外部高速缓存。
在一些实施例中,如图2所示,处理器1100可以包括寄存器堆104(RegisterFile),寄存器堆104可以包括用于存储不同类型的数据和/或指令的多个寄存器,这些寄存器可以是不同类型的。例如,寄存器堆104可以包括:整数寄存器、浮点寄存器、状态寄存器、指令寄存器和指针寄存器等。寄存器堆104中的寄存器可以选用通用寄存器来实现,也可以根据处理器1100的实际需求采用特定的设计。
处理器1100可以包括存储管理单元(Memory Management Unit,MMU)105。存储管理单元105中存储了多个缓存表项,用于实现虚拟地址到物理地址的转译。每个处理器核101中可以设置一个或多个存储管理单元105,不同处理器核101中的存储管理单元105也可以与位于其他处理器或处理器核中的存储管理单元105实现同步,使得每个处理器或处理器核可以共享统一的虚拟存储***。
在一些实施例中,内部互连结构用于将存储管理单元105经由片上***的内部总线与其他处理器核交互,或直接与片上***内的其他模块相连以实现信号交换。
存储管理单元105可以与处理器1100中用于预取指令的指令预取单元106和/或用于加载/存储数据的加载存储单元(Load/Store Unit,LSU)107进行通信。
指令预取单元106使用预取指令的虚拟地址访问存储管理单元105,用以转译预取指令的物理地址,且指令预取单元106根据存储管理单元105转译生成的物理地址在物理地址空间中进行寻址以获得相应的指令。处理器核101中的执行单元可以接收指令预取单元106获取的指令,并对该指令进行处理(例如解码),使得该指令能够被执行。
加载存储单元107是一种面向访存指令(加载指令或存储指令)的指令执行单元。加载存储单元107可以用于根据加载指令获取高速缓存器和/或存储器1300中的数据信息,并将该数据信息加载到处理器1100内相应的寄存器中;加载存储单元107也可以根据存储指令将相应寄存器中的数据信息存储到高速缓存器和/或存储器1300中。寄存器例如包括:寄存器堆104中的地址寄存器、步进寄存器以及地址掩码寄存器等。加载存储单元107根据访存指令的虚拟地址访问存储管理单元105,存储管理单元105向加载存储单元107提供转译后获得的访存指令的物理地址,使得加载存储单元107能够根据该物理地址在物理地址空间中存取相应的数据。
需要说明的是,上文以及图2仅仅用于对***中的处理器之一进行示例性的描述,而不用于限制处理器1100的具体实现方式。处理器1100还可以包括其它组成部分,例如数据处理单元等;上文描述的处理器1100中的各个部分也可以在实际应用中适当被省略。
存储管理单元
存储管理单元105在一些情况下也可以被称为内存管理单元,可以是由硬件和/或软件实现的存储管理装置。
为了更好地管理各个进程所独占的地址空间,计算机***1000可以对一些进程分配独立的虚拟地址空间,并提供虚拟地址到物理地址的映射关系,以将虚拟地址空间映射或解映射到物理地址空间。如上文所述,由于数据在计算机***1000中的传输通常是以页面为单位进行的,因此计算机***和/或计算机***上运行的操作***通常以页面为单位管理物理地址空间和虚拟地址空间,虚拟地址空间可以大于物理地址空间,即虚拟地址空间中的一个虚拟页面可以被映射到物理地址空间中的一个物理页面,也可以被映射到交换文件中,也可能没有映射内容。
基于上述分页管理机制,虚拟地址空间中各个虚拟页面与物理地址空间中各个物理页面之间的映射关系可以存储为主存中的根页表。根页表一般包括很多表项(Entry),每个表项用于提供一个虚拟页面与相应的物理页面之间的映射关系,从而与该表项匹配的虚拟页面中的虚拟地址可以根据该表项被转译为相应的物理地址。
对于某一个进程,每个虚拟页面对应的虚拟地址范围(可称为虚拟页面的页面尺寸)应当与相应的物理页面的页面尺寸一致,例如但不限于4kB(千字节)、8kB、16kB、64kB等。需要补充的是,对于不同的进程,相应的虚拟页面的页面尺寸可以保持一致,也可以不一致;同样的,对于不同的进程,相应的物理页面的页面尺寸可以保持一致,也可以不一致,不同的实施例有不同的选择。
若不设置TLB,则存储管理单元在接收到转译请求后,至少需要访问两次内存(例如存储设备1300中的RAM):查询存储在内存中的根页表,以获得与转译请求匹配的表项(第一次内存访问),再根据该表项将转译请求指定的虚拟地址转译为相应的物理地址;根据该物理地址从内存中读取指令和/或数据(第二次访问内存),多次访问内存导致处理器性能下降。
为了减少存储管理单元对内存的访问次数、加快地址的转译过程,如图2所示,本公开实施例的存储管理单元105中设置有至少一个转译后备缓冲器TLB(也称为快表、旁路转换缓冲器、页表缓冲器等),用于将可能被访问的表项从内存复制到TLB中,并存储为缓存表项,以对常用的虚拟页面与物理页面之间的映射关系进行高速缓存。只有当TLB中无法查询到与转译请求指定的虚拟地址匹配的缓存表项时,存储管理单元105才会访问内存中的根页表以获得相应的表项;当TLB中存在与转译请求指定的虚拟地址匹配的缓存表项时,存储管理单元105无需访问根页表即可完成地址转译。因此,TLB能够减少存储管理单元访问内存的次数,节省了地址转译所需的时间,提高了处理器性能。
图3示出了本发明实施例的存储管理单元的示意性框图。
根据对于不同的处理对象,存储管理单元105可以独立设置用于管理指令存储的指令存储管理单元,和/或用于管理数据存储的数据存储管理单元。存储管理单元105也可以对指令和数据的存储进行统一管理。
在一些实施例中,如图3所示,存储管理单元105中可以设置指令TLB和数据TLB,指令TLB用于缓存与指令读写地址对应的指令缓存表项,数据TLB用于缓存与数据读写地址对应的数据缓存表项。指令TLB例如用于接收上述指令预取单元106发送的转译请求,并返回相应的物理地址至指令预取单元106。数据TLB例如用于接收加载存储单元107发送的转译请求,并返回相应的物理地址至加载存储单元107。
在本公开实施例中,存储管理单元105包括多级TLB。如上所述,多级TLB可以是指令存储管理单元中设置的用于指令地址转译的多级指令TLB,也可以是数据存储管理单元中设置的用于数据地址转译的多级数据TLB,还可以是用于对指令和数据的存储进行统一管理的存储管理单元中的多级TLB。在一些实施例中,存储管理单元105中还可以包括与上述多级TLB独立设置的其它TLB。
作为一种示例,如图3所示,存储管理单元105包括第1级转译后备缓冲器TLB1和第2级转译后备缓冲器TLB2。第1级转译后备缓冲器TLB1中存储有m1个第1级缓存表项,第2级转译后备缓冲器TLB2中存储有m2个第2级缓存表项,从而存储管理单元105可以提供的缓存表项的总数目等于m_all=m1+m2。其中,m1和m2均为大于等于1的自然数,m_all为大于等于2的自然数。在一些优选的实施例中,m1小于等于m2,且各个第1级缓存表项与各个第2级缓存表项互不相同。
下文主要以2级TLB为例对本发明实施例进行描述,然而本发明实施例不限于此,还可以根据本公开实施例提出的2级TLB的示例在存储管理单元105中设置至少3级TLB。
如图3所示,存储管理单元105还可以包括地址转换单元51和控制单元52。其中,地址转换单元51用于根据转译请求在多级TLB中查找相应的缓存表项,并根据该缓存表项将转译请求指定的虚拟地址转译为物理地址;当地址转换单元51没有在多级TLB中查找到与待转译的虚拟地址匹配的缓存表项时,可以向控制单元52传输失配信息,控制单元52根据该失配信息从根页表中获取匹配的待回填表项,并将该待回填表项写入多级TLB中,使得多级TLB之一能够命中;随后,地址转换单元51可以根据匹配的缓存表项将待转译的虚拟地址转换为物理地址。
在本公开实施例中,控制单元52还用于:在多个第1级缓存表项未命中且多个第2级缓存表项之一命中时,根据预设算法选择多个第1级缓存表项之一,并将本次命中的第2级缓存表项与预设算法选定的多个第1级缓存表项之一进行置换。
需要说明的是,上文以及图3仅仅用于对计算机***中的存储管理单元之一进行示例性的描述,而不用于限制存储管理单元105的具体实现方式。存储管理单元105还可以包括其它组成部分,上文描述的存储管理单元105中的各个部分也可以在实际应用中适当被省略。
转译后备缓冲器
在本发明的实施例中,每一级转译后备缓冲器TLB可以包括硬件器件和/或软件程序,例如由多个寄存器实现。每个缓存表项可以被独立存储在相应的寄存器中,每一级TLB还可以包括用于存储读指令、写指令等指令的寄存器。由于存储管理单元105中存储的缓存表项的总数目m_all受到硬件资源的限制,因此存储管理单元105中缓存表项的总数目m_all表征了处理器可以通过TLB实现无性能损失的地址转译过程的潜在请求数,即缓存表项的总数目m_all越大,存储管理单元105的地址转译能力越强,因此,如前文所述,希望尽量增多存储管理单元105中缓存的缓存表项的总数目m_all。
本实施例将以全关联(Full Associative)方式为例描述虚拟地址与就缓存表项的映射方式,即TLB表项中可以映射根页表中的任一表项而不受虚拟地址或物理地址中指定位的限制。然而本发明实施例不限于此,在一些其他的实施例中,虚拟地址与TLB表项的映射方式还可以为:直接映射方式、分组关联(Set Associative)方式或其他映射方式。
图4示出了采用TLB实现地址转译的原理示意图。
以32位地址(可以指虚拟地址或物理地址)且页面(可以指虚拟页面或物理页面)中每个页内地址对应1B(Byte,字节)为例:若页面的大小为4kB,则该页面中每个地址A[31:0]的页内偏移量PO_4k=A[11:0],页面号PN_4k=A[31:12];若页面的大小为8kB,则该页面中每个地址A[31:0]的页内偏移量PO_8k=A[12:0],页面号PN_8k=A[31:13]。由于虚拟地址和物理地址之间的映射可以是页面与页面之间的映射,且虚拟页面与其映射的物理页面的页面尺寸一致,因此虚拟地址与其映射的物理地址具有相同的页内偏移量。下面将以此为例对本发明实施例利用TLB实现地址转译的过程进行描述,然而需要说明的是,本发明实施例不限于此,虚拟页面或物理页面可以具有其他页面尺寸(例如64kB、32kB等),虚拟地址或物理地址可以为其他格式(例如64位、128位等),且在一些其他的实施例中,虚拟地址(或物理地址)包含的页面号和页内偏移量的高低位置设置和划分方式可以不同。
如图4所示,转译请求指定的虚拟地址可以通过与之匹配的缓存表项被转译为相应的物理地址。各个缓存表项(包括第1级缓存表项和第2级缓存表项)的数据结构可以包括:虚拟地址标签Vtag、物理地址标签Ptag以及辅助信息等。
虚拟地址标签Vtag用于判断缓存表项是否与待转译的虚拟地址匹配。基于上面的分析可知,虚拟页面号可以用于识别虚拟页面,因此可以将缓存表项的虚拟地址标签Vtag与该缓存表项映射的虚拟页面的虚拟页面号VPN设置为一致的二进制码,该缓存表项的物理地址标签与该缓存表项映射的物理页面的物理页面号PFN可以设置为一致的二进制码。当待转译的虚拟地址的虚拟页面号VPN与该缓存表项的虚拟地址标签Vtag一致时,说明该缓存表项被命中;这种情况下,由于虚拟地址与其映射的物理地址具有相同的页内偏移量PO,因此可以将被命中的缓存表项提供的物理地址标签Ptag(用于替换虚拟地址的虚拟页面号)与待转译的虚拟地址的页内偏移量PO合成为待转译的虚拟地址所映射的物理地址,以完成转译。
对于每个缓存表项来说,其映射的虚拟页面的页面尺寸等于其映射的物理页面的页面尺寸,因此本文将该缓存表项映射的虚拟页面的页面尺寸和物理页面的页面尺寸统称为该缓存表项映射的页面尺寸或页面大小。
为了指示每个缓存表项映射的页面尺寸的大小,缓存表项的辅助信息可以包括尺寸标记位,尺寸标记位可以是一位或多位的二进制码。在一些实施例中,每个缓存表项可以映射4kB或8kB的页面,则可将映射至4kB页面尺寸的缓存表项的尺寸标记位设置为0,将映射至8kB页面尺寸的缓存表项的尺寸标记位设置为1;当某一缓存表项映射的页面尺寸由4kB的页面扩展至8kB时,尺寸标记位可以由0更新为1。需要说明的是,本发明实施例不限于此,缓存表项也可以映射至其他页面尺寸,即TLB中的各个缓存表项可以分别映射多种页面尺寸之一,尺寸标记位S的位数也可以根据页面尺寸的种类相应地被设置。
在接收到转译请求之后,可以将待转译的虚拟地址的虚拟页面号VPN与各个缓存表项的虚拟地址标签Vtag进行比较,以查找匹配的缓存表项。尺寸标记位可以用于指示虚拟地址标签的有效位数(即查找过程中用于与虚拟地址进行比较的位数)。例如,缓存表项E1映射4kB的虚拟页面VP1_4k,假设该缓存表项E1的尺寸标识位S1是0,则说明其包含的虚拟地址标签Vtag1的位数是20,这20位可与待转译的虚拟地址的20位虚拟页面号进行比较,以判断是否匹配;如图5示出的缓存表项E2映射8kB的虚拟页面VP2_8k,假设该缓存表项E2的尺寸标识位S2是1,则说明其包含的虚拟地址标签Vtag2的位数是19,这19位可与待转译的虚拟地址的19位虚拟页面号进行比较,以判断是否匹配。
各个缓存表项的辅助信息可以包括有效位,用于指示各个缓存表项的状态。在一些场景中,例如在执行进程切换或根页表更新的操作之后,缓存表项提供的转译关系可能不再适用于当前的情形,此时相应的缓存表项的有效位可以指示失效状态(例如为无效电平或0),说明该缓存表项无法被用于当前的地址转译过程,可以被替换或覆盖。当缓存表项的有效位指示有效状态(例如为有效电平或1)时,说明该缓存表项可以用于指示该缓存表项是否能够被用于当前的转译过程。在一些实施例中,当多级TLB中仍存在可用于存储缓存表项的空闲存储空间时,该空闲存储空间也可等效为失效状态的缓存表项,其有效位指示失效状态,用于指示该空闲存储空间可用于写入新的缓存表项。
需要说明的是,在后文的描述中,被命中的缓存表项均为有效状态的缓存表项。
在一些实施例中,当存储管理单元105中的各个缓存表项均未命中转译请求、且存储管理单元105中存储的缓存表项的数目已经达到上限m_all时,各个缓存表项之一需要被替换,此时可以根据各个缓存表项被使用的频率选择可以被替换的一个缓存表项,例如采用LRU(Least Recently Used,最近最少使用)算法替换最近最久未使用的缓存表项。为了指示使用频率,缓存表项的辅助信息可以包括引用标记位,引用标记位可以是一位或多位的二进制码。当某一缓存表项被用于转译时,该缓存表项的引用标记位可以被更新以指示更高的使用频率(或其他缓存表项的引用标记位被更新以指示更低的使用频率),从而在执行LRU算法时,可以根据各个缓存表项的引用标记位选择可替换的一个缓存表项。
在一些实施例中,缓存表项的辅助信息还可以包括脏位(dirty),用于指示内存中的某个地址空间是否已被修改。脏位也可以是一位或多位的二进制码。
在一些实施例中,缓存表项的辅助信息还可以包括其它指示位,例如用于指示与页面关联的进程标志号、页面的读写权限以及页面地址属性等。
需要说明的是,虽然在上文以及图4的描述中,每个缓存表项的虚拟地址标签、物理地址标签以及辅助信息是按照高位至低位的顺序排列的,然而本发明实施例不限于此。每个缓存表项的虚拟地址标签、物理地址标签以及尺寸标标识、有效位等辅助信息可以按照不同的顺序排列,例如尺寸标记位可以位于缓存表项的最高位以方便识别缓存表项对应的页面尺寸。
地址转译过程
图5示出本发明实施例的存储管理方法的流程示意图。下面将参照图3至图5示出的实施例对虚拟地址到物理地址的转译过程进行示例性的描述。
如图3所示,存储管理单元105包括第1级转译后备缓冲器TLB1和第2级转译后备缓冲器TLB2。第1级转译后备缓冲器TLB1中存储有m1个第1级缓存表项,第2级转译后备缓冲器TLB2中存储有m2个第2级缓存表项,从而存储管理单元105可以提供的缓存表项的总数目等于m_all=m1+m2。如前文和后文所述,本发明实施例不限于此。
如图5示出的步骤510,接收转译请求。该转译请求指定了待转译的虚拟地址,例如为预取指令的虚拟地址或加载指令的虚拟地址。
如图5示出的步骤520,查找各个第1级缓存表项中是否存在与待转译的虚拟地址的虚拟页面号匹配的虚拟地址标签,以判断第1级转译后备缓冲器TLB1是否命中。
这一过程可以通过将待转译的虚拟地址的虚拟页面号的各数据位分别与每个第1级缓存表项的虚拟地址标签中的各数据位进行比较来实现。若某一第1级缓存表项的虚拟地址标签与待转译的虚拟地址的虚拟页面号一致,且该第1级缓存表项处于有效状态(即该第1级缓存表项可以被用于转译,例如该第1级缓存表项的有效位处于有效电平),则说明第1级转译后备缓冲器TLB1命中,随后执行步骤560;若所有第1级缓存表项的虚拟地址标签与待转译的虚拟地址的虚拟页面号均不一致,则第1级转译后备缓冲器TLB1未命中,随后执行步骤530。
如上文所述,各个第1级缓存表项映射的页面尺寸可以不同,各个第1级缓存表项的尺寸标识位可以指示相应的虚拟地址标签的有效位数。
作为一种示例,当被比较的第1级缓存表项的虚拟地址标签的有效位数是8时,尺寸标记位置0,该第1级缓存表项的虚拟地址标签与待转译的虚拟地址的高8位进行比较,若二者一致,则判定该第1级缓存表项与待转译的虚拟地址匹配,否则不匹配;当被比较的第1级缓存表项的虚拟地址标签的有效位数是7时,尺寸标记位置1,该第1级缓存表项的虚拟地址标签与待转译的虚拟地址中的高7位进行比较,若二者一致,则判定该第1级缓存表项与待转译的虚拟地址匹配,否则不匹配。
需要说明的是,上述“高8位”和“高7位”等词语仅仅是一种示例,仅用于限定待转译的虚拟地址中用于与各个虚拟地址标签进行比较的位数与虚拟地址标签的有效位数一致,可以在其他示例中分布于虚拟地址的其他位置,用于指示该虚拟地址的虚拟页面号的至少一部分。
在一些实施例中,在执行步骤520时,如果某一第1级缓存表项被命中,可以停止查找过程,而无需继续将余下的第1级缓存表项的虚拟地址标签与待转译的虚拟地址进行比较,以节省资源。
若第1级转译后备缓冲器TLB1命中,在如图5示出的步骤560中,可以根据命中的第1级缓存表项生成物理地址,从而通过第1级转译后备缓冲器TLB1实现虚拟地址到物理地址的转译。如上文所述,在生成物理地址的过程中,可以将被命中的缓存表项的物理地址标签与待转译的虚拟地址的页内偏移量合成为对应的物理地址。
由于第1级转译后备缓冲器TLB1命中,因此最多仅需要将m1个虚拟地址标签与待转译的虚拟地址的虚拟页面号进行比较,相比于直接根据待转译的虚拟地址在存储管理单元中提供的m_all个缓存表项中查找匹配的缓存表项的传统方案,本公开实施例可以在一定程度上减少查找缓存表项所需的时间,从而提高处理器的效率。
若第1级转译后备缓冲器TLB1未命中,在如图5示出的步骤530中,可以继续在第2级转译后备缓冲器TLB2中查找是否存在与待转译的虚拟地址匹配的第2级缓存表项,即查找各个第2级缓存表项中是否存在与待转译的虚拟地址的虚拟页面号匹配的虚拟地址标签,以判断第2级转译后备缓冲器TLB2是否命中。
与步骤520类似,在步骤530中,可以通过将待转译的虚拟地址的虚拟页面号的各数据位分别与每个第2级缓存表项的虚拟地址标签中的各数据位进行比较,若某一第2级缓存表项的虚拟地址标签与待转译的虚拟地址的虚拟页面号一致,且该第2级缓存表项处于有效状态(即该第2级缓存表项可以被用于转译,例如该第2级缓存表项的有效位处于有效电平),则说明第2级转译后备缓冲器TLB2命中,随后执行步骤570;若所有第2级缓存表项的虚拟地址标签与待转译的虚拟地址的虚拟页面号均不一致,则第2级转译后备缓冲器TLB2未命中,随后执行步骤550。
如上文所述,各个第2级缓存表项映射的页面尺寸可以不同,各个第2级缓存表项的尺寸标识位可以指示相应的虚拟地址标签的有效位数。
在一些实施例中,在执行步骤530时,如果某一第2级缓存表项被命中,可以停止查找过程,而无需继续将余下的第2级缓存表项的虚拟地址标签与待转译的虚拟地址进行比较,以节省资源。
若第2级转译后备缓冲器TLB2命中,在如图5示出的步骤570中,可以根据命中的第2级缓存表项生成物理地址,从而通过第2级转译后备缓冲器TLB2实现虚拟地址到物理地址的转译。如上文所述,在生成物理地址的过程中,可以将被命中的缓存表项的物理地址标签与待转译的虚拟地址的页内偏移量合成为对应的物理地址。
与步骤560不同的是,在步骤570中,若第2级转译后备缓冲器TLB2命中,控制单元52可以将命中的第2级缓存表项与第1级转译后备缓冲器TLB1中的一个第1级缓存表项进行互换,使得本次命中的第2级缓存表项作为新的第1级缓存表项被写入第1级转译后备缓冲器TLB1中,从而在访问局部性良好的环境下,进一步提升第1级转译后备缓冲器TLB1的命中率、减少判断存储管理单元中各个缓存表项是否命中所需的时间、提高处理器效率。
在步骤570中,控制单元52可以根据预设算法选择需要与本次命中的第2级缓存表项进行互换的第1级缓存表项。控制单元52例如利用寄存器暂存选定的第1级缓存表项和本次命中的第2级缓存表项,从而能够将暂存的第1级缓存表项写入第2级转译后备缓冲器TLB2的相应位置中、将本次命中的第2级缓存表项作为新的第1级缓存表项写入第1级转译后备缓冲器TLB1中。
预设算法例如为上文描述的LRU算法,可以根据各个第1级缓存表项的引用标记位选择最近最久未使用(也可称为最近最少被命中)的第1级缓存表项,并将该第1级缓存表项写入第2级转译后备缓冲器TLB2中,以实现与本次命中的第2级缓存表项的互换。
在另一些更简化的实施例中,预设算法还可以是先入先出(FIFO)算法,可以按照第1级转译后备缓冲器中各个第1级缓存表项的存储顺序选择需要被替换的第1级缓存表项。例如,可以为先入先出算法设置一个相应的寄存器,该寄存器中存储顺序标志码,该顺序标志码具有初始值(例如为16'h0001),当控制单元52检测到顺序标志码为初始值时,可以将第1级转译后备缓冲器中写入的第1个第1级缓存表项作为需要被替换的第1级缓存表项;随后,寄存器中的顺序标志码增加一个梯度(例如左移一位,以变为16'h0002),从而在下次需要先入先出算法中,可以将第1级转译后备缓冲器中写入的第2个第1级缓存表项作为需要被替换的第1级缓存表项,依次类推。
相比于FIFO算法,LRU算法能够更准确地选择使用频率较低的第1级缓存表项,从而对第1级转译后备缓冲器的命中率的影响较低;而相比于LRU算法,FIFO算法的运算过程更简单,不需要占用过多的软硬件资源和时间资源即可实现,响应速度较快。因此,可以根据实际需要选择采用FIFO算法或LRU算法实现步骤570。
然而本公开实施例不限于此,预设算法还可以根据本次命中的第2级缓存表项的尺寸标记位选择需要替换的第1级缓存表项,以保证被替换的第1级缓存表项的尺寸标记位与本次命中的第2级缓存表项的尺寸标记位一致,或保证被替换的第1级缓存表项的尺寸标记位指示的页面尺寸小于/等于本次命中的第2级缓存表项的尺寸标记位映射的页面尺寸,以避免缩小第1级转译后备缓冲器映射的地址范围。
若第2级转译后备缓冲器TLB2未命中,在如图5示出的步骤540中,可以在根页表(存储于内存或硬盘等存储设备中)中查找与待转译的虚拟地址匹配的待回填表项,并将该待回填表项写入第1级转译后备缓冲器TLB1或第2级转译后备缓冲器TLB2中,从而实现多级TLB的更新,使得更新后的多级TLB中包含与待转译的虚拟地址匹配的缓存表项。
在一些实施例中,可以根据多级TLB中的各个缓存表项的引用标记位选择需要被待回填表项替换的缓存表项,被替换的缓存表项可以是第1级缓存表项或第2级缓存表项。在另一些实施例中,可以优先在第2级转译后备缓冲器中选择需要被替换第2级缓存表项。本公开实施例不限于此,例如:步骤540还可以根据尺寸标记位选择映射至较小页面尺寸的缓存表项作为需要被待回填表项替换的缓存表项。
在一些实施例中,当判定第2级转译后备缓冲器TLB2未命中后,地址转译单元51可以先根据待转译的虚拟地址生成失配信息(至少包含待转译的虚拟地址的虚拟页面号,也可以包含待转译的虚拟地址全部位),再根据失配信息访问根页表,从而根据失配信息查找与待转译的虚拟地址匹配的表项,并将该表项作为待回填表项。
在一些实施例中,当步骤550执行完成后,可以重新发起转译请求(与步骤510所述的转译请求对应相同的虚拟地址),并相应地执行步骤520、560或执行步骤520、530和570,从而利用更新后的第1级转译后备缓冲器TLB1或第2级转译后备缓冲器TLB2进行转译以获得相应的物理地址。
在另一些实施例中,当步骤550执行完成之后,也可以直接利用第1级转译后备缓冲器TLB1或第2级转译后备缓冲器TLB2中被更新的缓存表项对待转译的虚拟地址进行转译,以获得相应的物理地址,以省略再次查找各个缓存表项的过程。
上文主要以2级TLB为例对本发明实施例进行描述,然而本发明实施例不限于此,还可以根据本公开实施例提出的2级TLB的示例在存储管理单元105中设置至少3级TLB。
例如,存储管理单元105包括第1级转译后备缓冲器TLB1、第2级转译后备缓冲器TLB2以及第3级转译后备缓冲器TLB3,地址转译单元51可以按照第1至第3级转译后备缓冲器的优先级顺序查找与转译请求匹配的缓存表项,即:首先在第1级转译后备缓冲器TLB1中查找是否存在与转译请求匹配的第1级缓存表项,若是,则直接根据命中的第1级缓存表项实现地址转译,若否,则继续在第2级转译后备缓冲器TLB2中查找是否存在与转译请求匹配的第2级缓存表项,若第2级转译后备缓冲器TLB2仍未命中,则继续在第3级转译后备缓冲器TLB3中查找是否存在与转译请求匹配的第3级缓存表项;若第2级转译后备缓冲器TLB2或第3级转译后备缓冲器TLB3命中,则可以将命中的缓存表项与选定的第1级缓存表项互换,以提高第1级转译后备缓冲器TLB1的命中率。
在一些实施例中,多级TLB中的第1级转译后备缓冲器(优先被判定是否命中)提供的缓存表项的数目小于其他各级转译后备缓冲器提供的缓存表项的数目,以精简第1级转译后备缓冲器提供的第1级缓存表项的数目,从而缩减查找第1级缓存表项所需的时间。在进一步优化的实施例中,多级TLB中的第1级至最末级转译后备缓冲器提供的缓存表项的数目可以依次增多。
上述各个实施例将存储管理单元105提供的多个缓存表项统一划分为多个第1级缓存表项和多个第2级缓存表项,然而本发明实施例也不限于此。例如,存储管理单元105可以包括多个转译后备缓冲器TLB(例如指令TLB和数据TLB),其中的一个或一些转译后备缓冲器可以包括若干个第1级缓存表项和若干个第2级缓存表项,另一个或另一些转译后备缓冲器可以不被划分为多级结构,仅包括具有相同查找优先级的若干个缓存表项,这些具有相同查找优先级的缓存表项可以是访问频率较高的缓存表项。
至此,通过示例描述了采用多级TLB实现地址转译的方法。本发明实施例提供的存储管理方法也在上述各实施例中进行了描述。
当处理器执行一段程序时,基于程序的访问局部性原理,无论是对数据的存取还是对指令的存取,处理器访问的连续的虚拟地址通常会映射至连续的物理地址,因此,基于上述分页管理机制可知,页面分配的连续性很强。访问局部性原理产生的现象可以包括:时间局部性,即一个正在被访问的信息很可能会在近期再次被访问,这一现象可能是由于程序循环或堆栈等设计导致的;空间局部性,即正在使用的信息与即将使用的信息很可能在地址上是连续的或邻近的;以及顺序局部性,即大部分指令是按照顺序执行,数组也可能是按照连续存放顺序被访问的。
在传统方案中,每次地址转译过程都需要在存储管理单元提供的多个缓存表项中逐一查找与待转译的虚拟地址匹配的缓存表项。缓存表项的数目限制了存储管理单元可直接转译的地址范围。对高性能处理器而言,程序动态访问的虚拟地址范围可能很广,为了尽可能的提高地址转译效率,存储管理单元中存储的缓存表项的总数目被不断加大;另一方面,高性能处理器对频率要求也很高、且地址转译是出现频率极高的操作过程,因此,地址转译过程产生的较大延时会阻碍处理器频率的进一步提升,在较多的缓存表项中查找与转译请求匹配的缓存表项的过程也会产生较大的功耗。尤其是在上文提到的全关联方式下,存储管理单元中的每个缓存表项可能需要逐一地与待转译的虚拟地址的虚拟页面号进行比较,再从命中的多个缓存表项中选择一个缓存表项用于地址转译过程,地址转译效率较低、产生了大量功耗、影响了处理器的效率和性能、阻碍了处理器频率的提升。
相比于传统方案,本发明实施例提供的存储管理方法和存储管理装置根据转译请求指定的虚拟地址对多个缓存表项进行分级查找,由于第1级缓存表项的数目小于存储管理装置提供的缓存表项的总数目,因此若某一第1级缓存表项能够命中,则可以明显减少需要与转译请求指定的虚拟地址进行匹配比较的缓存表项的数量,从而减少地址转译过程中查找所述缓存表项所需要的时间,使得处理器的效率、频率和性能可以被提升、降低了地址转译过程产生的功耗。
在一些优选的实施例中,若第1级缓存表项均未命中、某一第2级缓存表项命中,则可以通过将命中的第2级缓存表项与一使用频率较低的第1级缓存表项进行置换,进一步提高了多个第1级缓存表项的命中率,从而也进一步减少了地址转译过程中查找缓存表项所需要的时间。
本申请还公开了一种包括存储于其上的计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在被处理器执行时使得所述处理器执行本文所述的各实施例的方法。
此外,本申请还公开了一种计算机***,该计算机***包括用于实现本文所述的各实施例的方法的装置。
需要领会,以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本说明书的实施例存在许多变型。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
例如,尽管说明书中仅描述了利用多级TLB将虚拟地址转译为物理地址的方法,然而各级TLB不限于存储虚拟地址和物理地址之间的关系,在获得物理地址之前,一些TLB中的缓存表项还可以将虚拟地址转换为转译地址,该转译地址可以经历进一步的转译而被转换为物理地址,转译地址空间同样可以在分页管理机制下被划分为多个部分,每个部分称为转译页面。另外,尽管在某些实施例中TLB的缓存表项用于对虚拟地址空间中的虚拟页面进行转译,但是在其它实施例中,TLB中的缓存表项也可以用于转译其它类型的地址。
又例如,在一些实施例中,存储管理单元可以包括使能寄存器,通过配置使能寄存器中的至少一位数值,可以设置存储管理单元的开启和关闭。
应该理解,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于装置和***实施例中描述的方法,所以描述的比较简单,相关之处参见其他实施例的部分说明即可。
应该理解,上述对本说明书特定实施例进行了描述。其它实施例在权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
应该理解,本文用单数形式描述或者在附图中仅显示一个的元件并不代表将该元件的数量限于一个。此外,本文中被描述或示出为分开的模块或元件可被组合为单个模块或元件,且本文中被描述或示出为单个的模块或元件可被拆分为多个模块或元件。
还应理解,本文采用的术语和表述方式只是用于描述,本说明书的一个或多个实施例并不应局限于这些术语和表述。使用这些术语和表述并不意味着排除任何示意和描述(或其中部分)的等效特征,应认识到可能存在的各种修改也应包含在权利要求范围内。其他修改、变化和替换也可能存在。相应的,权利要求应视为覆盖所有这些等效物。

Claims (28)

1.一种存储管理装置,其特征在于,包括:
至少一个转译后备缓冲器,用于存储多个缓存表项,所述多个缓存表项包括多个第1级缓存表项和多个第2级缓存表项;以及
地址转换单元,与所述至少一个转译后备缓冲器耦接,适于根据所述多个第1级缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址,或在所述多个第1级缓存表项均未命中所述转译请求时根据所述多个第2级缓存表项之一将所述转译请求指定的虚拟地址转译为相应的转译地址。
2.根据权利要求1所述的存储管理装置,其特征在于,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:
第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页;以及
第二寄存器,用于存储转译地址标签,以指示所述虚拟页映射的转译页,每个所述缓存表项映射的虚拟页和转译页的页面尺寸一致。
3.根据权利要求2所述的存储管理装置,其特征在于,还包括控制单元,与所述地址转译单元耦接,并适于:
当所述多个缓存表项的虚拟地址标签均未命中所述转译请求指定的虚拟地址时,从根页表中获取与所述转译请求指定的虚拟地址匹配的待回填表项,
将所述待回填表项写入所述至少一个转移后备缓冲器。
4.根据权利要求3所述的存储管理装置,其特征在于,所述地址转换单元适于:
判断所述多个第1级缓存表项是否命中所述转译请求指定的虚拟地址,若所述多个第1级缓存表项之一命中,则根据命中的所述第1级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,
若所述多个第1级缓存表项均未命中,则判断所述多个第2级缓存表项是否命中所述转移请求指定的虚拟地址,
若所述多个第2级缓存表项之一命中,则根据命中的所述第2级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,
若所述多个第2级缓存表项均未命中,则向所述控制单元提供失配信息,以使所述控制单元获取所述待回填表项。
5.根据权利要求2所述的存储管理装置,其特征在于,所述控制单元还适于:
在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,根据预设算法选择所述多个第1级缓存表项之一,并用命中的所述第2级缓存表项替换选定的所述多个第1级缓存表项之一。
6.根据权利要求5所述的存储管理装置,其特征在于,所述多个寄存器还包括:
第三寄存器,用于存储引用标记位,以指示该缓存表项是否为最近最少被命中的所述缓存表项。
7.根据权利要求6所述的存储管理装置,其特征在于,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述控制单元适于根据各个所述第1级缓存表项的所述引用标记位选择最近最少被命中的所述第1级缓存表项。
8.根据权利要求6所述的存储管理装置,其特征在于,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述控制单元适于根据所述多个第1级缓存表项被写入所述至少一个转移后备缓冲器中的先后顺序选择最先被写入的所述第1级缓存表项。
9.根据权利要求5所述的存储管理装置,其特征在于,在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,所述控制单元还适于将被替换的所述第1级缓存表项作为一所述第2级缓存表项写入所述至少一个转移后备缓冲器。
10.根据权利要求5所述的存储管理装置,其特征在于,所述多个寄存器还包括:
第四寄存器,用于存储尺寸标记位,以指示所述虚拟页/所述转译页的页面尺寸。
11.根据权利要求10所述的存储管理装置,其特征在于,在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,所述控制单元还适于根据所述尺寸标记位选择被替换的所述第1级缓存表项,使得命中的所述第2级缓存表项与被替换的所述第1级缓存表项映射的页面尺寸相等。
12.根据权利要求1所述的存储管理装置,其特征在于,在所述至少一个转译后备缓冲器中,所述第1级缓存表项的数目小于/等于第2级缓存表项的数目。
13.一种处理器,其特征在于,包括如权利要求1至12任一项所述的存储管理装置。
14.根据权利要求13所述的处理器,其特征在于,还包括指令预取单元,所述指令预取单元向所述地址转换单元提供所述转译请求,所述转译请求指定预取指令的虚拟地址,
所述地址转换单元与所述至少一个转译后备缓冲器中的第一转译后备缓冲器通信,并根据所述第一转译后备缓冲器提供的所述缓存表项向所述指令预取单元提供所述预取指令的转译地址。
15.根据权利要求13所述的处理器,其特征在于,还包括加载存储单元,所述加载存储单元向所述地址转换单元提供所述转译请求,所述转译请求指定访存指令的虚拟地址,
所述地址转换单元与所述至少一个转译后备缓冲器中的第二转译后备缓冲器通信,并根据所述第二转译后备缓冲器提供的所述缓存表项向所述加载存储单元提供所述访存指令的转译地址。
16.一种计算机***,其特征在于,包括:
如权利要求13至15任一项所述的处理器;以及
存储器,与所述处理器耦接。
17.一种存储管理方法,其特征在于,包括:
提供多个缓存表项,所述多个缓存表项包括多个第1级缓存表项和多个第2级缓存表项;
接收转译请求,所述转译请求指定待转译的虚拟地址;以及
根据所述多个第1级缓存表项之一将转译请求指定的虚拟地址转译为相应的转译地址,或在所述多个第1级缓存表项均未命中所述转译请求时根据所述多个第2级缓存表项之一将所述转译请求指定的虚拟地址转译为相应的转译地址。
18.根据权利要求17所述的存储管理方法,其特征在于,每个所述缓存表项由多个寄存器存储,所述多个寄存器包括:
第一寄存器,用于存储虚拟地址标签,以指示该缓存表项映射的虚拟页;以及
第二寄存器,用于存储转译地址标签,以指示所述虚拟页映射的转译页,每个所述缓存表项映射的虚拟页和转译页的页面尺寸一致。
19.根据权利要求18所述的存储管理方法,其特征在于,还包括:
当所述多个缓存表项的虚拟地址标签均未命中所述转译请求指定的虚拟地址时,从根页表中获取与所述转译请求指定的虚拟地址匹配的待回填表项,
将所述待回填表项作为一所述第1级缓存表项或所述第2级缓存表现写入用于存储所述多个缓存表项的至少一个转移后备缓冲器。
20.根据权利要求19所述的存储管理方法,其特征在于,根据所述多个缓存表项之一将所述转移请求指定的虚拟地址转译为相应的转译地址的步骤包括:
判断所述多个第1级缓存表项是否命中所述转译请求指定的虚拟地址,若所述多个第1级缓存表项之一命中,则根据命中的所述第1级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,
若所述多个第1级缓存表项均未命中,则判断所述多个第2级缓存表项是否命中所述转移请求指定的虚拟地址,
若所述多个第2级缓存表项之一命中,则根据命中的所述第2级缓存表项将所述转译请求指定的虚拟地址转译为相应的转译地址,
若所述多个第2级缓存表项均未命中,则向所述控制单元提供失配信息,以使所述控制单元获取所述待回填表项。
21.根据权利要求20所述的存储管理方法,其特征在于,还包括:
在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,根据预设算法选择所述多个第1级缓存表项之一,并用命中的所述第2级缓存表项替换选定的所述多个第1级缓存表项之一。
22.根据权利要求21所述的存储管理方法,其特征在于,所述多个寄存器还包括:
第三寄存器,用于存储引用标记位,以指示该缓存表项是否为最近最少被命中的所述缓存表项。
23.根据权利要求22所述的存储管理方法,其特征在于,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述预设算法根据各个所述第1级缓存表项的所述引用标记位选择最近最少被命中的所述第1级缓存表项。
24.根据权利要求22所述的存储管理方法,其特征在于,在根据所述预设算法选择需要替换的所述多个第1级缓存表项时,所述预设算法根据所述多个第1级缓存表项被写入所述至少一个转移后备缓冲器中的先后顺序选择最先被写入的所述第1级缓存表项。
25.根据权利要求21所述的存储管理方法,其特征在于,还包括:
在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,将被替换的所述第1级缓存表项作为一所述第2级缓存表项写入所述至少一个转移后备缓冲器。
26.根据权利要求21所述的存储管理方法,其特征在于,所述多个寄存器还包括:
第四寄存器,用于存储尺寸标记位,以指示所述虚拟页/所述转译页的页面尺寸。
27.根据权利要求26所述的存储管理方法,其特征在于,在所述多个第1级缓存表项未命中且所述多个第2级缓存表项之一命中时,所述预设算法根据所述尺寸标记位选择需要被替换的所述第1级缓存表项,使得命中的所述第2级缓存表项与被替换的所述第1级缓存表项映射的页面尺寸相等。
28.根据权利要求17所述的存储管理方法,其特征在于,所述第1级缓存表项的数目小于/等于第2级缓存表项的数目。
CN201910907572.0A 2019-09-24 2019-09-24 存储管理装置、存储管理方法、处理器和计算机*** Pending CN112631962A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201910907572.0A CN112631962A (zh) 2019-09-24 2019-09-24 存储管理装置、存储管理方法、处理器和计算机***
US17/021,716 US11836079B2 (en) 2019-09-24 2020-09-15 Storage management apparatus, storage management method, processor, and computer system
PCT/US2020/050855 WO2021061446A1 (en) 2019-09-24 2020-09-15 Storage management apparatus, storage management method, processor, and computer system
US18/507,936 US20240086323A1 (en) 2019-09-24 2023-11-13 Storage management apparatus, storage management method, processor, and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910907572.0A CN112631962A (zh) 2019-09-24 2019-09-24 存储管理装置、存储管理方法、处理器和计算机***

Publications (1)

Publication Number Publication Date
CN112631962A true CN112631962A (zh) 2021-04-09

Family

ID=74880146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910907572.0A Pending CN112631962A (zh) 2019-09-24 2019-09-24 存储管理装置、存储管理方法、处理器和计算机***

Country Status (3)

Country Link
US (2) US11836079B2 (zh)
CN (1) CN112631962A (zh)
WO (1) WO2021061446A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022222377A1 (zh) * 2021-04-23 2022-10-27 华为技术有限公司 一种内存控制器、数据读取方法以及内存***

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520491B2 (en) * 2021-04-12 2022-12-06 Micron Technology, Inc. Parity protection in non-volatile memory
CN113297105B (zh) * 2021-05-08 2024-01-09 阿里巴巴新加坡控股有限公司 一种转换地址的缓存处理方法及装置
CN114827076B (zh) * 2022-06-30 2022-09-13 沐曦集成电路(上海)有限公司 一种基于地址翻译单元的地址返回方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418522B1 (en) * 1999-02-13 2002-07-09 International Business Machines Corporation Translation lookaside buffer for virtual memory systems
US20070094476A1 (en) * 2005-10-20 2007-04-26 Augsburg Victor R Updating multiple levels of translation lookaside buffers (TLBs) field
CN105975405A (zh) * 2015-05-21 2016-09-28 上海兆芯集成电路有限公司 处理器和使处理器进行工作的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860147A (en) * 1996-09-16 1999-01-12 Intel Corporation Method and apparatus for replacement of entries in a translation look-aside buffer
US9378150B2 (en) * 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
JP6463081B2 (ja) * 2014-10-29 2019-01-30 キヤノン株式会社 データ処理装置、データ処理方法及びプログラム
US9727484B1 (en) * 2016-01-29 2017-08-08 International Business Machines Corporation Dynamic cache memory management with translation lookaside buffer protection
US10282296B2 (en) * 2016-12-12 2019-05-07 Intel Corporation Zeroing a cache line
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418522B1 (en) * 1999-02-13 2002-07-09 International Business Machines Corporation Translation lookaside buffer for virtual memory systems
US20070094476A1 (en) * 2005-10-20 2007-04-26 Augsburg Victor R Updating multiple levels of translation lookaside buffers (TLBs) field
CN105975405A (zh) * 2015-05-21 2016-09-28 上海兆芯集成电路有限公司 处理器和使处理器进行工作的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022222377A1 (zh) * 2021-04-23 2022-10-27 华为技术有限公司 一种内存控制器、数据读取方法以及内存***

Also Published As

Publication number Publication date
US11836079B2 (en) 2023-12-05
US20210089451A1 (en) 2021-03-25
WO2021061446A1 (en) 2021-04-01
US20240086323A1 (en) 2024-03-14

Similar Documents

Publication Publication Date Title
US20210089470A1 (en) Address translation methods and systems
US10310987B2 (en) Systems and methods for accessing a unified translation lookaside buffer
CN112631961B (zh) 一种内存管理单元、地址转译方法以及处理器
US11836079B2 (en) Storage management apparatus, storage management method, processor, and computer system
US9152572B2 (en) Translation lookaside buffer for multiple context compute engine
US10380030B2 (en) Caching of virtual to physical address translations
US8335908B2 (en) Data processing apparatus for storing address translations
JP2020529656A (ja) アドレス変換キャッシュ
JP2017516234A (ja) 次の読取りアドレスプリフェッチングによるメモリ容量圧縮および/またはメモリ帯域幅圧縮を利用するメモリコントローラ、ならびに関連するプロセッサベースシステムおよび方法
JP2003067357A (ja) 不均一メモリ・アクセス(numa)データ処理システムおよびその操作方法
JP2012212440A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
US20130326143A1 (en) Caching Frequently Used Addresses of a Page Table Walk
US11803482B2 (en) Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
CN114328295A (zh) 存储管理装置、处理器、相关装置和相关方法
CN113722247B (zh) 物理内存保护单元、物理内存权限控制方法和处理器
CN115481054A (zh) 数据处理方法、装置及***、***级soc芯片及计算机设备
US9507729B2 (en) Method and processor for reducing code and latency of TLB maintenance operations in a configurable processor
KR102355374B1 (ko) 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법
CN116795740A (zh) 数据存取方法、装置、处理器、计算机***及存储介质
CN115061955A (zh) 处理器、电子设备、地址翻译方法以及缓存页表项方法
CN115098410A (zh) 处理器、用于处理器的数据处理方法及电子设备
CN115080464A (zh) 数据处理方法和数据处理装置
CN115357525A (zh) 探听过滤器、处理单元、计算设备和相关方法

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