CN111666230A - 在组相联tlb中支持巨页的方法 - Google Patents

在组相联tlb中支持巨页的方法 Download PDF

Info

Publication number
CN111666230A
CN111666230A CN202010464274.1A CN202010464274A CN111666230A CN 111666230 A CN111666230 A CN 111666230A CN 202010464274 A CN202010464274 A CN 202010464274A CN 111666230 A CN111666230 A CN 111666230A
Authority
CN
China
Prior art keywords
page
tlb
group
huge
macro
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.)
Granted
Application number
CN202010464274.1A
Other languages
English (en)
Other versions
CN111666230B (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.)
Jiangsu Huachuang Micro System Co ltd
CETC 14 Research Institute
Original Assignee
Jiangsu Huachuang Micro System Co ltd
CETC 14 Research Institute
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 Jiangsu Huachuang Micro System Co ltd, CETC 14 Research Institute filed Critical Jiangsu Huachuang Micro System Co ltd
Priority to CN202010464274.1A priority Critical patent/CN111666230B/zh
Publication of CN111666230A publication Critical patent/CN111666230A/zh
Application granted granted Critical
Publication of CN111666230B publication Critical patent/CN111666230B/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]
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了在组相联TLB中支持巨页的方法,针对通常页和巨页设置组相联TLB和巨页记录表,在访问的过程中首先按照通常页的组地址和TAG访问组相联TLB,然后按照巨页的组地址访问巨页记录表。相对于同时使用组相联和全相联TLB的方案,本发明只使用一个全相联TLB同时保存通常页和巨页的页表项,对地址分别按照通常页和巨页解析的方式多次访问TLB,获取可能的通常页和巨页的页表项,相对传统技术,节省了芯片面积,本发明使用巨页记录表来过滤不必要的TLB访问,减少无效访问的次数。巨页记录表按照组来记录是否可能存在巨页页表项,且每组只需要一位,占用面积很小。

Description

在组相联TLB中支持巨页的方法
技术领域
本发明涉及组相联TLB访问技术领域,具体为在组相联TLB中支持巨页的方法。
背景技术
随着处理器的性能增长,对TLB(Translation Lookup Table,俗称快表)的容量需求也越来越高。传统的全相联结构的TLB由于设计复杂度高,已不能满足TLB容量增长的需求,因此越来越多的处理器中使用了组相联的TLB。
组相联是指内存中的数据按照地址被映射到指定的组中,在组内可以被放入任意一路的TLB和cache组织方式。相对全相联TLB,组相联TLB的实现复杂度大大降低,因此可以支持更多的TLB项数目。
现代操作***为了提升性能不再要求所有的内存页面都是统一大小,而是有通常页(Regular Page)和巨页(Huge Page)的区分。大多数程序使用较小的通常页,因为巨页的容量比通常页大的多,对于以流数据处理为主的程序,使用巨页可以大大减少对TLB项的数量的需求,减少由TLB缺失造成的性能损失。
但是组相联TLB在支持巨页时遇到了问题,如图1所示,由于巨页的容量比通常页大的多,它的页内偏移需要更多的地址位来表示:一般来说通常页的页号是组相联的页内偏移的高位,而通常页的页内偏移是组相联的页内偏移的低位。而组相联TLB是使用页内偏移以上的部分地址位作为组地址进行索引的,由于巨页和通常页的页内偏移所使用的地址位数不一样,导致通常页和巨页有不同的组地址,它们对应的TLB项可能会被放到组相联TLB的不同组中。
传统技术为了能在组相联的TLB中支持巨页,一般会额外设置一个全相联TLB,比如《MIPS Architecture For Programers Vol.3》中记载的,使用全相联的VTLB(Variable-Page-Size TLB)和组相联的FTLB(Fixed-Page-Size TLB)相配合,其中FTLB负责存储通常页的页表项,而VTLB主要负责存储巨页的页表项,在不使用巨页时也可以用于存储通常页的页表项,使用两个TLB增加了***的复杂度,需要同时判断两个TLB是否命中,虽然全相联TLB也可以保存通常页的页目录,但是这样还需要有算法判断通常页是保存在全相联TLB中还是组相联TLB中;全相联TLB占用的芯片面积远远大于同样项数的组相联TLB。
发明内容
本发明的目的在于提供在组相联TLB中支持巨页的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:在组相联TLB中支持巨页的方法,包括以下技术流程:
第一步,针对通常页和巨页设置组相联TLB和巨页记录表;
第二步,对TLB进行访问;
第三步,在访问的过程中首先按照通常页的组地址和TAG访问组相联TLB;
第四步,然后按照巨页的组地址访问巨页记录表;
第五步,对TLB的访问结果进行判断。
优选的,在第一步的操作过程中,只使用唯一的组相联TLB,通常页和巨页的页表项均保存在所述的组相联TLB内。
优选的,在第一步的操作过程中,所述巨页记录表按照巨页的组地址保存该组是否使用过巨页。
优选的,所述巨页记录表内记录每一组是否存在页表项的情况,当巨页的页表项加载到任意一组时,该组在巨页记录表中的对应位被设为1,当访问该组发现该组不存在巨页时,对应位清0。
优选的,在第五步的操作过程中,当按照通常页的方式命中TLB时,则返通常页的页表项,当按照通常页的方式没有命中TLB时,而使用巨页的组地址查找巨页记录表认为存在巨页时,则按照巨页的方式解析地址并再次访问TLB,命中后,返回巨页的页表项。
优选的,在第五步的操作过程中,当用通常页和巨页的地址解析方式都无法命中TLB时,则判断为TLB缺失。
与现有技术相比,本发明的有益效果是:
1、相对于同时使用组相联和全相联TLB的方案,本发明只使用一个全相联TLB同时保存通常页和巨页的页表项,对地址分别按照通常页和巨页解析的方式多次访问TLB,获取可能的通常页和巨页的页表项,相对传统技术,节省了芯片面积。
2、本发明使用巨页记录表来过滤不必要的TLB访问,减少无效访问的次数。巨页记录表按照组来记录是否可能存在巨页页表项,且每组只需要一位,占用面积很小。
3、本发明在每一次访问组相联TLB时,都会顺便判断该组中是否还存在巨页的页表项,对巨页记录表及时更新。
附图说明
图1为巨页和通常页映射不到同组的情况示意图。
图2为本发明的组相联TLB结构图。
图3为本发明内TLB读取流程图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图2和图3本发明提供一种技术方案:在组相联TLB中支持巨页的方法,包括以下技术流程:
第一步,针对通常页和巨页设置组相联TLB和巨页记录表,只使用唯一的组相联TLB,通常页和巨页的页表项均保存在所述的组相联TLB内,巨页记录表内记录每一组是否存在页表项的情况,当巨页的页表项加载到任意一组时,该组在巨页记录表中的对应位被设为1,当访问该组发现该组不存在巨页时,对应位清0,所述巨页记录表按照巨页的组地址保存该组是否使用过巨页。
第二步,对TLB进行访问;
第三步,在访问的过程中首先按照通常页的组地址和TAG访问组相联TLB;
第四步,然后按照巨页的组地址访问巨页记录表;
第五步,对TLB的访问结果进行判断。
当按照通常页的方式命中TLB时,则返回通常页的页表项,当按照通常页的方式没有命中TLB,而使用巨页的组地址查找巨页记录表认为存在巨页时,则按照巨页的方式解析地址并再次访问TLB,命中后,返回巨页的页表项,当用通常页和巨页的地址解析方式都无法命中TLB时,则判断为TLB缺失
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (6)

1.在组相联TLB中支持巨页的方法,其特征在于,包括以下技术流程:
第一步,针对通常页和巨页设置组相联TLB和巨页记录表;
第二步,对TLB进行访问;
第三步,在访问的过程中首先按照通常页的组地址和TAG访问组相联TLB;
第四步,然后按照巨页的组地址访问巨页记录表;
第五步,对TLB的访问结果进行判断。
2.根据权利要求1所述的在组相联TLB中支持巨页的方法,其特征在于:在第一步的操作过程中,只使用唯一的组相联TLB,通常页和巨页的页表项均保存在所述的组相联TLB内。
3.根据权利要求1所述的在组相联TLB中支持巨页的方法,其特征在于:在第一步的操作过程中,所述巨页记录表按照巨页的组地址保存该组是否使用过巨页。
4.根据权利要求3所述的在组相联TLB中支持巨页的方法,其特征在于:所述巨页记录表内记录每一组是否存在页表项的情况,当巨页的页表项加载到任意一组时,该组在巨页记录表中的对应位被设为1,当访问该组发现该组不存在巨页时,对应位清0。
5.根据权利要求1所述的在组相联TLB中支持巨页的方法,其特征在于:在第五步的操作过程中,当按照通常页的方式命中TLB时,则返通常页的页表项,当按照通常页的方式没有命中TLB时,而使用巨页的组地址查找巨页记录表认为存在巨页时,则按照巨页的方式解析地址并再次访问TLB,命中后,返回巨页的页表项。
6.根据权利要求1所述的在组相联TLB中支持巨页的方法,其特征在于:在第五步的操作过程中,当用通常页和巨页的地址解析方式都无法命中TLB时,则判断为TLB缺失。
CN202010464274.1A 2020-05-27 2020-05-27 在组相联tlb中支持巨页的方法 Active CN111666230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010464274.1A CN111666230B (zh) 2020-05-27 2020-05-27 在组相联tlb中支持巨页的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010464274.1A CN111666230B (zh) 2020-05-27 2020-05-27 在组相联tlb中支持巨页的方法

Publications (2)

Publication Number Publication Date
CN111666230A true CN111666230A (zh) 2020-09-15
CN111666230B CN111666230B (zh) 2023-08-01

Family

ID=72385024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010464274.1A Active CN111666230B (zh) 2020-05-27 2020-05-27 在组相联tlb中支持巨页的方法

Country Status (1)

Country Link
CN (1) CN111666230B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360243A (zh) * 2021-03-17 2021-09-07 龙芯中科技术股份有限公司 设备处理方法、装置、电子设备及可读介质
WO2023098369A1 (zh) * 2021-12-02 2023-06-08 中兴通讯股份有限公司 内存管理方法、装置及计算机可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992022867A1 (en) * 1991-06-17 1992-12-23 Digital Equipment Corporation Improving computer performance by simulated cache associativity
CN1124378A (zh) * 1994-04-19 1996-06-12 株式会社日立制作所 数字处理器
US6594750B1 (en) * 1999-12-08 2003-07-15 Ati International Srl Method and apparatus for handling an accessed bit in a page table entry
US7330959B1 (en) * 2004-04-23 2008-02-12 Transmeta Corporation Use of MTRR and page attribute table to support multiple byte order formats in a computer system
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN105760312A (zh) * 2010-09-24 2016-07-13 英特尔公司 用于实现微页表的装置、方法和***
CN107209715A (zh) * 2015-08-20 2017-09-26 华为技术有限公司 文件数据访问方法和计算机***
US20180081816A1 (en) * 2016-09-22 2018-03-22 Google Inc. Memory management supporting huge pages
WO2019105566A1 (en) * 2017-12-01 2019-06-06 Huawei Technologies Co., Ltd. Systems and methods for clustering sub-pages of physical memory pages
CN110688330A (zh) * 2019-09-23 2020-01-14 北京航空航天大学 一种基于内存映射相邻性的虚拟内存地址翻译方法
CN110990299A (zh) * 2020-03-03 2020-04-10 江苏华创微***有限公司 非规整组相联cache组地址映射方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992022867A1 (en) * 1991-06-17 1992-12-23 Digital Equipment Corporation Improving computer performance by simulated cache associativity
CN1124378A (zh) * 1994-04-19 1996-06-12 株式会社日立制作所 数字处理器
US6594750B1 (en) * 1999-12-08 2003-07-15 Ati International Srl Method and apparatus for handling an accessed bit in a page table entry
US7330959B1 (en) * 2004-04-23 2008-02-12 Transmeta Corporation Use of MTRR and page attribute table to support multiple byte order formats in a computer system
CN105760312A (zh) * 2010-09-24 2016-07-13 英特尔公司 用于实现微页表的装置、方法和***
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN107209715A (zh) * 2015-08-20 2017-09-26 华为技术有限公司 文件数据访问方法和计算机***
US20180081816A1 (en) * 2016-09-22 2018-03-22 Google Inc. Memory management supporting huge pages
WO2019105566A1 (en) * 2017-12-01 2019-06-06 Huawei Technologies Co., Ltd. Systems and methods for clustering sub-pages of physical memory pages
CN110688330A (zh) * 2019-09-23 2020-01-14 北京航空航天大学 一种基于内存映射相邻性的虚拟内存地址翻译方法
CN110990299A (zh) * 2020-03-03 2020-04-10 江苏华创微***有限公司 非规整组相联cache组地址映射方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
SUN HUI等: "A Low-Power Super-Performance Four-Way Set-Associative", 《半导体学报》 *
党倩: "基于连续页面合并以及缓存的硬件载入技术", 《现代电子技术》 *
周霄: "Linux桌面环境下内存去重技术的研究与实现", 《CNKI优秀硕士学位论文全文库》 *
张巍: "基于ARM9的高速缓存和内存管理单元的电路设计与实现", 《CNKI优秀硕士学位论文全文库》 *
肖建青等: "SPARC V8处理器中存储管理单元的设计", 《科学技术与工程》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113360243A (zh) * 2021-03-17 2021-09-07 龙芯中科技术股份有限公司 设备处理方法、装置、电子设备及可读介质
CN113360243B (zh) * 2021-03-17 2023-07-14 龙芯中科技术股份有限公司 设备处理方法、装置、电子设备及可读介质
WO2023098369A1 (zh) * 2021-12-02 2023-06-08 中兴通讯股份有限公司 内存管理方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN111666230B (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US8082416B2 (en) Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
US5584014A (en) Apparatus and method to preserve data in a set associative memory device
US7793049B2 (en) Mechanism for data cache replacement based on region policies
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
US5751990A (en) Abridged virtual address cache directory
US20070094476A1 (en) Updating multiple levels of translation lookaside buffers (TLBs) field
JP2014078248A (ja) キャッシュされたメモリデータを伴うキャッシュメモリ属性インジケータ
CN106560798B (zh) 一种内存访问方法、装置及计算机***
US20100185831A1 (en) Semiconductor integrated circuit and address translation method
JP2011013858A (ja) 演算処理装置およびアドレス変換方法
US5778427A (en) Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
CN111666230B (zh) 在组相联tlb中支持巨页的方法
US6446187B1 (en) Virtual address bypassing using local page mask
US6990551B2 (en) System and method for employing a process identifier to minimize aliasing in a linear-addressed cache
US8688952B2 (en) Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
CN111124954B (zh) 一种两级转换旁路缓冲的管理装置及方法
CN111241012A (zh) 支持多级页表的tlb架构
CN111831587A (zh) 数据写入方法、装置和电子设备
EP0486154B1 (en) Method of operating a virtual memory system
US20040078544A1 (en) Memory address remapping method
US20100023701A1 (en) Cache line duplication in response to a way prediction conflict
US12032488B1 (en) Circuit and method for translation lookaside buffer (TLB) implementation
CN118012347A (zh) 一种访问内存的方法、***、高速缓存***和存储介质
US8788789B2 (en) Power filter in data translation look-aside buffer based on an input linear address
CN113076267A (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
GR01 Patent grant
GR01 Patent grant