CN111338987B - 快速无效组相联tlb的方法 - Google Patents

快速无效组相联tlb的方法 Download PDF

Info

Publication number
CN111338987B
CN111338987B CN202010091228.1A CN202010091228A CN111338987B CN 111338987 B CN111338987 B CN 111338987B CN 202010091228 A CN202010091228 A CN 202010091228A CN 111338987 B CN111338987 B CN 111338987B
Authority
CN
China
Prior art keywords
tlb
group
valid bit
valid
row
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
CN202010091228.1A
Other languages
English (en)
Other versions
CN111338987A (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 CN202010091228.1A priority Critical patent/CN111338987B/zh
Publication of CN111338987A publication Critical patent/CN111338987A/zh
Application granted granted Critical
Publication of CN111338987B publication Critical patent/CN111338987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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]
    • 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
    • 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项,有两级有效位与它对应:对应TLB项所在组的组有效位和对应TLB项的行有效位;组相联TLB中的每个项目有两个有效位:行有效位和组有效位,其中行有效位只对应于该TLB项,而组有效位对应于该TLB项所在组的所有TLB项,只有当某一TLB项的行有效位及它所在组的组有效位都有效时,该TLB项才被视为有效;将组有效位被保存在一个SRAM中,且SRAM每行包括若干个组有效位,每周期可以读或写1行的数据,需要多个周期将这若干个组有效位全部写成0,即表示无效。本发明当要无效整个TLB时,通过将TLB的状态设为无效区间,可以立即起到TLB无效的效果,无需等待整个无效操作完成。

Description

快速无效组相联TLB的方法
技术领域
本发明涉及TLB技术领域,具体是快速无效组相联TLB的方法。
背景技术
为了能对计算机的内存有效管理,使得程序员在编写程序时不用考虑运行程序的计算机的内存大小,也为了有限的内存能够被不同的程序所高效地共享,现代计算机使用了内存映射技术。程序中使用的地址被称为虚拟地址,需要通过页表转换成内存中的实际地址,即物理地址。
使用内存映射之后CPU(中央处理器)每次对内存的访问,包括指令和数据访问,都需要先使用虚拟地址访问页表获取对应的物理地址,再使用物理地址访问内存。由于页表也保存在内存中,这样做的结果就是使内存访问的次数大大增加,对内存带宽的占用和访问内存的高延时是CPU不可忍受的,因此现代CPU使用了TLB(Translation LookasideBuffer,俗称快表)来缓存最近使用过的页表项,当需要进行地址转换时,会在TLB中查找是否有需要的页表项,如果有,则直接使用TLB中的页表项进行地址转换。仅当在TLB中找不到需要的页表项时才会到内存中查找,并将找到的页表项存入TLB。
TLB可看作是页表项的cache,而cache有三种常见的组织形式:直接映射,组相联和全相联。其中直接映射是指内存中的每个项目在cache中有直接对应的项目,由于内存的容量比cache大很多,所以会有多个项目对应于cache中的同一个项目,在同一时刻,它们中只有一个可以保存在cache中。全相联是指内存中的项目可以保存在cache中的任意项目中,是最灵活的cache组织方式,在cache容量相等的情况下,全相联的冲突率最低,但是这种方式在控制上的代价很大,不适合大容量的cache。
组相联结构结合了直接映射和全相联的特点:cache被分成若干组,每个组有多个块(又被称作路),类似于直接映射,内存中的每个项目在cache中有唯一对应的组;但是组内的组织方式是全相联的,内存中的项目可能被保存在组内的任意一路中。组相联兼具直接映射实现简单和全相联冲突率低的优点,特别适合作为大容量cache的组织结构。现代CPU为了降低TLB缺失对性能的影响,越来越多地倾向于使用组相联的结构,从而将TLB的容量做大。
在CPU运行时,有时会直接无效整个TLB,比如进程切换时需要更换使用的页表。在这种情况下,如何尽快无效TLB中的数量众多的项目就成了一个需要研究的问题,因为一般来说TLB项目的有效位保存在SRAM中,SRAM是不可能一次将其中的多个地址的内容改变的。
常见的无效多个TLB项目的方法有两种:一种是将每个cache项目的有效位用寄存器单独保存,这样可以一次将它们都清零;还有一种方法是设计一个状态机,控制将SRAM中的每一项依次改写。
由于组相联TLB可能有数千项甚至上万项,如果采用寄存器来保存每一项的有效位,将是一个非常大的寄存器阵列,要对这个寄存器阵列进行操作是非常困难的事情,因为面积太大导致内部连线过长,很难满足高主频CPU的时序要求;而如果采用状态机一项项无效的方法,由于项数过多,需要的周期过长,在此期间内对TLB的访问是受限的,因为无法判断要访问的是还未被无效的项目还是新加载到TLB中的项目,因此这种方法对CPU的运行效率有很大影响。
发明内容
为了解决上述现有技术的不足,本发明提供了快速无效组相联TLB的方法,可以快速地对整个TLB中的所有项目进行无效操作,避免了现有方案在时序或执行效率上的缺点。
为了达到上述目的,本发明采用的技术方案为:
快速无效组相联TLB的方法,包括下列步骤:
对于任一TLB项,有两级有效位与它对应:对应TLB项所在组的组有效位和对应TLB项的行有效位;
组相联TLB中的每个项目有两个有效位:行有效位和组有效位,其中行有效位只对应于该TLB项,而组有效位对应于该TLB项所在组的所有TLB项,只有当某一TLB项的行有效位及它所在组的组有效位都有效时,该TLB项才被视为有效;
将组有效位被保存在一个SRAM中,且SRAM每行包括若干个组有效位,每周期可以读或写1行的数据,需要多个周期将这若干个组有效位全部写成0,即表示无效。
对本发明进一步的描述,当需要无效整个TLB时,首先TLB进入无效区间,在此期间内对TLB的读访问都会被视为未命中,写访问包括两种处理方法:一种是暂时阻塞,直到TLB离开无效区间为止;另一种是允许对组有效位已经被清0的组允许写入。
对本发明进一步的描述,在TLB进入无效区间后,会开始对保存组有效位的SRAM进行逐行写0的操作,当所有行都被写0后,对组有效位的无效操作已经全部完成,退出无效区间,之后对TLB的写入操作不会被阻塞。
对本发明进一步的描述,当组有效位为0时,写入操作与正常状态下有所不同:当组有效位为0时,在将被写入的路的有效位写为1的同时,还需要将同组的其它路的有效位写为0,并将组有效位重新设为1。
与现有技术相比,本发明的优点:
1.当要无效整个TLB时,通过将TLB的状态设为无效区间,可以立即起到TLB无效的效果,无需等待整个无效操作完成。
2.在TLB进入无效区间后可以重新开始执行指令,由于整个TLB已经被视为无效,因此第一次TLB访问就会产生TLB缺失,从而引发软件或硬件方法重填TLB,而重填过程与TLB的无效过程重叠,避免了在TLB无效操作未完成时不能重新执行指令的问题。
3.由于在无效过程中只对组有效位进行无效,且组有效位集中保存在SRAM中可以一次对多位进行无效,所以无效整个TLB的时间大大缩短。
4.当TLB无效完成后,退出无效区间,此时允许TLB重填,利用同一组中所有的路有效位可以同时读写的特性,将对每个TLB项的无效操作和对同一组的TLB进行第一次重填的操作同时进行。
5.由于TLB加载和对组有效位的无效可以进行重叠,并且对已经无效过的组可以允许在无效区间内重填,因此绝大多数情况下TLB的加载都不会被阻塞,结合在无效区间内允许读TLB的特性,可以视为在一个周期内就无效了整个TLB。
附图说明
图1为本发明的组有效位示意图(以512组为例)。
图2为本发明的对整个TLB的无效过程图。
图3为本发明的对TLB进行写入的过程图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
如图1所示,512个组有效位被保存在一个32x16(32位宽,16行)的SRAM中。其中SRAM每行包括32个组有效位,每周期可以读或写1行的数据,需要16个周期将这512个组有效位全部写成0,即表示无效。
如图2所示,当需要无效整个TLB时,首先TLB会进入无效区间,在此期间内对TLB的读访问都会被视为未命中,而写访问有两种处理方法:一种是暂时阻塞,直到TLB离开无效区间为止;另一种是允许对组有效位已经被清0的组允许写入。第一种方法实现简单,但是可能会造成写阻塞而影响性能;第二种方法减小了写阻塞的机率,但是需要判断要写的组是否已经被清0了。
在TLB进入无效区间后,会开始对保存组有效位的SRAM进行逐行写0的操作,当所有行都被写0后,认为对组有效位的无效操作已经全部完成,退出无效区间,之后可以对TLB的写入操作不会被阻塞。
如图3所示,当组有效位为0时,写入操作与正常状态下(组有效位为1)有所不同:当组有效位为0时,在将被写入的路的有效位写为1的同时,还需要将同组的其它路的有效位写为0,并将组有效位重新设为1。这样就完成了在无效区间没有做完的工作——将每组的各个路无效,只不过这个过程被推迟到了各个组第一次被重新写入的时刻进行,因此缩短了无效整个TLB的时间。
在本实施例中,所用部件均为通用标准件或本领域技术人员知晓的部件、其结构和原理都为本技术人员均可通过技术手册得知或通过常规实验方法获知。
本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征,第一特征在第二特征“之下”“下方”和“下面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第一特征。
在本说明书的描述中,参考术语“一个实施例”“一些实施例”“示例”“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中,在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变形。

Claims (3)

1.快速无效组相联TLB的方法,特征在于:对于任一TLB项,有两级有效位与它对应:对应TLB项所在组的组有效位和对应TLB项的行有效位;
当需要无效整个TLB时,首先TLB进入无效区间,在此期间内对TLB的读访问都会被视为未命中;
组地址保存在SRAM中,在TLB进入无效区间后,会开始对保存组有效位的SRAM进行逐行写0的操作;
当保存组有效位的SRAM的所有行都被写0后,对组有效位的无效操作已经全部完成,退出无效区间,之后对TLB的写入操作不会被阻塞;
当组有效位为0时,在将被写入的路的有效位写为1的同时,还需要将同组的其它路的有效位写为0,并将组有效位重新设为1。
2.根据权利要求1所述的快速无效组相联TLB的方法,其特征在于,对于任一TLB项,只有当它的两级有效位都有效,它才被视为有效。
3.根据权利要求1所述的快速无效组相联TLB的方法,其特征在于,组相联TLB进入无效区间,对组相联TLB的访问包括两种处理方法:一种是暂时阻塞,直到TLB离开无效区间为止;另一种是允许对组有效位已经被清0的组写入。
CN202010091228.1A 2020-02-13 2020-02-13 快速无效组相联tlb的方法 Active CN111338987B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010091228.1A CN111338987B (zh) 2020-02-13 2020-02-13 快速无效组相联tlb的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010091228.1A CN111338987B (zh) 2020-02-13 2020-02-13 快速无效组相联tlb的方法

Publications (2)

Publication Number Publication Date
CN111338987A CN111338987A (zh) 2020-06-26
CN111338987B true CN111338987B (zh) 2023-12-12

Family

ID=71180625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010091228.1A Active CN111338987B (zh) 2020-02-13 2020-02-13 快速无效组相联tlb的方法

Country Status (1)

Country Link
CN (1) CN111338987B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11620235B1 (en) 2021-10-04 2023-04-04 International Business Machines Corporation Validation of store coherence relative to page translation invalidation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1784663A (zh) * 2003-05-12 2006-06-07 国际商业机器公司 无效存储器,清除缓冲区表项
CN105975405A (zh) * 2015-05-21 2016-09-28 上海兆芯集成电路有限公司 处理器和使处理器进行工作的方法
CN105980994A (zh) * 2014-02-21 2016-09-28 Arm 有限公司 已存地址转换的无效

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6470437B1 (en) * 1999-12-17 2002-10-22 Hewlett-Packard Company Updating and invalidating store data and removing stale cache lines in a prevalidated tag cache design

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1784663A (zh) * 2003-05-12 2006-06-07 国际商业机器公司 无效存储器,清除缓冲区表项
CN105980994A (zh) * 2014-02-21 2016-09-28 Arm 有限公司 已存地址转换的无效
CN105975405A (zh) * 2015-05-21 2016-09-28 上海兆芯集成电路有限公司 处理器和使处理器进行工作的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘坤杰 ; 游海亮 ; 严晓浪 ; 葛海通 ; .面向嵌入式应用的内存管理单元设计.浙江大学学报(工学版).2007,(第07期),全文. *

Also Published As

Publication number Publication date
CN111338987A (zh) 2020-06-26

Similar Documents

Publication Publication Date Title
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
EP2430551B1 (en) Cache coherent support for flash in a memory hierarchy
US7266647B2 (en) List based method and apparatus for selective and rapid cache flushes
US8417913B2 (en) Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7941631B2 (en) Providing metadata in a translation lookaside buffer (TLB)
US8782348B2 (en) Microprocessor cache line evict array
US5787478A (en) Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
CN109582214B (zh) 数据访问方法以及计算机系统
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
TWI393050B (zh) 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統
US5715427A (en) Semi-associative cache with MRU/LRU replacement
EP3486786B1 (en) System and methods for efficient virtually-tagged cache implementation
US20070168617A1 (en) Patrol snooping for higher level cache eviction candidate identification
CN107870867B (zh) 32位cpu访问大于4gb内存空间的方法与装置
US6240489B1 (en) Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
US9128856B2 (en) Selective cache fills in response to write misses
US20020169929A1 (en) System and method utilizing speculative cache access for improved performance
CN111338987B (zh) 快速无效组相联tlb的方法
US8832376B2 (en) System and method for implementing a low-cost CPU cache using a single SRAM
US6766435B1 (en) Processor with a general register set that includes address translation registers
Kim et al. Memory systems
CN111373385B (zh) 用于改进的进程切换的处理器和其方法
US6581139B1 (en) Set-associative cache memory having asymmetric latency among sets

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