CN111338987A - 快速无效组相联tlb的方法 - Google Patents
快速无效组相联tlb的方法 Download PDFInfo
- Publication number
- CN111338987A CN111338987A CN202010091228.1A CN202010091228A CN111338987A CN 111338987 A CN111338987 A CN 111338987A CN 202010091228 A CN202010091228 A CN 202010091228A CN 111338987 A CN111338987 A CN 111338987A
- Authority
- CN
- China
- Prior art keywords
- tlb
- valid
- valid bit
- group
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000003672 processing method Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 abstract description 2
- 238000013507 mapping Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000008520 organization Effects 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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]
-
- 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/1009—Address translation using page tables, e.g. page table structures
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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的方法。
背景技术
为了能对计算机的内存有效管理,使得程序员在编写程序时不用考虑运行程序的计算机的内存大小,也为了有限的内存能够被不同的程序所高效地共享,现代计算机使用了内存映射技术。程序中使用的地址被称为虚拟地址,需要通过页表转换成内存中的实际地址,即物理地址。
使用内存映射之后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 (5)
1.快速无效组相联TLB的方法,其特征在于:对于任一TLB项,有两级有效位与它对应:对应TLB项所在组的组有效位和对应TLB项的行有效位。
2.根据权利要求1所述的快速无效组相联TLB的方法,其特征在于,对于任一TLB项,只有当它的两级有效位都有效,它才被视为有效。
3.根据权利要求1所述的快速无效组相联TLB的方法,其特征在于,当需要无效整个TLB时,首先TLB进入无效区间,在此期间内对TLB的读访问都会被视为未命中,且访问包括两种处理方法:一种是暂时阻塞,直到TLB离开无效区间为止;另一种是允许对组有效位已经被清0的组写入。
4.根据权利要求3所述的快速无效组相联TLB的方法,其特征在于,组地址保存在SRAM中,在TLB进入无效区间后,会开始对保存组有效位的SRAM进行逐行写0的操作,当所有行都被写0后,对组有效位的无效操作已经全部完成,退出无效区间,之后对TLB的写入操作不会被阻塞。
5.根据权利要求1所述的快速无效组相联TLB的方法,其特征在于,当组有效位为0时,写入操作与正常状态下有所不同:当组有效位为0时,在将被写入的路的有效位写为1的同时,还需要将同组的其它路的有效位写为0,并将组有效位重新设为1。
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 true CN111338987A (zh) | 2020-06-26 |
CN111338987B 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) |
Cited By (1)
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065890A1 (en) * | 1999-12-17 | 2003-04-03 | Lyon Terry L. | Method and apparatus for updating and invalidating store data |
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 有限公司 | 已存地址转换的无效 |
-
2020
- 2020-02-13 CN CN202010091228.1A patent/CN111338987B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030065890A1 (en) * | 1999-12-17 | 2003-04-03 | Lyon Terry L. | Method and apparatus for updating and invalidating store data |
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)
Title |
---|
刘坤杰;游海亮;严晓浪;葛海通;: "面向嵌入式应用的内存管理单元设计" * |
Cited By (3)
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 |
WO2023056886A1 (en) * | 2021-10-04 | 2023-04-13 | International Business Machines Corporation | Validation of store coherence relative to page translation invalidation |
GB2625235A (en) * | 2021-10-04 | 2024-06-12 | Ibm | Validation of store coherence relative to page translation invalidation |
Also Published As
Publication number | Publication date |
---|---|
CN111338987B (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6772316B2 (en) | Method and apparatus for updating and invalidating store data | |
US9075725B2 (en) | Persistent memory for processor main memory | |
US5751994A (en) | System and method for enhancing computer operation by prefetching data elements on a common bus without delaying bus access by multiple bus masters | |
US6356990B1 (en) | Set-associative cache memory having a built-in set prediction array | |
US6427188B1 (en) | Method and system for early tag accesses for lower-level caches in parallel with first-level cache | |
CA2020275C (en) | Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access | |
US6625714B1 (en) | Parallel distributed function translation lookaside buffer | |
US10031854B2 (en) | Memory system | |
TWI393050B (zh) | 促進多重處理器介面之板內建快取記憶體系統之記憶體裝置及方法及使用其之電腦系統 | |
JP6027562B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
EP0284751B1 (en) | Cache memory | |
JPH04270431A (ja) | データ 処理装置のメモリ システム | |
CN111338987B (zh) | 快速无效组相联tlb的方法 | |
JP2002007373A (ja) | 半導体装置 | |
US5835945A (en) | Memory system with write buffer, prefetch and internal caches | |
Abumwais et al. | Shared Cache Based on Content Addressable Memory in a Multi-Core Architecture. | |
US5434990A (en) | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch | |
US6766435B1 (en) | Processor with a general register set that includes address translation registers | |
KR20210158745A (ko) | 플래시 기반 코프로세서 | |
Kim et al. | Memory systems | |
US11836086B1 (en) | Access optimized partial cache collapse | |
CN111373385B (zh) | 用于改进的进程切换的处理器和其方法 | |
US6581139B1 (en) | Set-associative cache memory having asymmetric latency among sets | |
OBAID et al. | Shared Cache Based on Content Addressable Memory in a Multi-Core Architecture | |
US9785574B2 (en) | Translation lookaside buffer that employs spacial locality |
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 |