CN114780453A - 一种地址转换缓存表项管理方法 - Google Patents
一种地址转换缓存表项管理方法 Download PDFInfo
- Publication number
- CN114780453A CN114780453A CN202210446247.0A CN202210446247A CN114780453A CN 114780453 A CN114780453 A CN 114780453A CN 202210446247 A CN202210446247 A CN 202210446247A CN 114780453 A CN114780453 A CN 114780453A
- Authority
- CN
- China
- Prior art keywords
- address translation
- translation cache
- table entry
- page table
- address
- 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
Links
- 238000013519 translation Methods 0.000 title claims abstract description 107
- 238000007726 management method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000026676 system process Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 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/1009—Address translation using page tables, e.g. page table structures
-
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space 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
本发明公开一种地址转换缓存表项管理方法,属于处理器领域。根据所请求的虚拟地址,判断该虚拟地址对应的页表项是否在地址转换缓存中,若在地址转换缓存中,则直接将该页表项对应的物理地址返回给处理器;若该页表项不在地址转换缓存中,则首先根据预置的重填方法在物理内存中获取该页表项,再判断地址转换缓存是否存在剩余空间;若地址转换缓存存在剩余空间,将页表项依照顺序写入地址转换缓存后,将页表项对应的物理地址返回给处理器,否则根据预置的替换算法,替换地址转换缓存中的表项后,将页表项对应的物理地址返回给处理器。
Description
技术领域
本发明涉及处理器技术领域,特别涉及一种地址转换缓存表项管理方法。
背景技术
地址转换是指将处理器发出访问内存的虚拟地址转换为实际的物理地址,地址转换允许在多个程序间高效安全地共享内存,地址转换消除小而受限的主存容量对程序设计造成的影响。
使用基于分页的虚拟存储器是当前处理器最通用的方法,用表格存储虚拟地址到物理地址的对应关系,这个表格被称为页表。当处理器发出虚拟地址,地址转换单元需要在物理内存中查找页表项,将虚拟地址转换为物理地址;但由于物理内存的访问速度受存储介质影响较大,而物理内存的运行速度相对于处理器本身来说,有几十倍的差距,借鉴Cache的设计理念,使用速度较快的缓存,将最近使用的地址转换表项缓存下来,缓存地址转换表项的部件称之为TLB。
地址转换缓存表项是在缓存中存放被访问过地址转换的页表项,当需要再次使用该地址转化时,可以直接从缓存中取出该地址转换页表项,使用页表项中的物理地址访问内存空间。目前替换表项的方法主要有基于最近最少使用替换算法LRU、基于FIFO的替换算法以及随机替换算法,它们应用在不同的环境中将有不同的表现,目前并没有在所有环境中都足够好的替换表项办法。
同时处理表项缺失的方法有两种:一旦发生地址转换缓存缺失,硬件把产生缺失的虚拟地址保存到地址缺失缓存寄存器中,同时产生一个地址转换缓存缺失类型的异常。在异常处理程序中,软件使用地址缺失缓存寄存器当中的虚拟地址去寻址物理内存中的页表项,找到对应的地址转换页表项,并写回到地址转换缓存中。当发生地址转换缓存缺失时,硬件自动使用当前的虚拟地址去寻址物理内存中的页表项,如果找到的页表项有效,那就将它写回到地址转换缓存中,整个过程全部都是有硬件自动完成的,软件不需要做任何事情;如果找到的页表项无效,硬件会产生一个页表项缺失类型的异常,在由操作系统来处理当前情况。
软件重填的方式相对灵活,但在发生缓存缺失时,会清空流水线,处理时间相对增加,而硬件重填不需要清空流水线,处理时间相对较短,但在发生页表项缺失时,仍然要由软件进行管理,目前并没有足够好的处理缺失的方法。
发明内容
本发明的目的在于提供一种地址转换缓存表项管理方法,以实现多种应对缓存缺失的办法与切换不同替换表项方法进行地址缓存表项管理。
为解决上述技术问题,本发明提供了一种地址转换缓存表项管理方法,包括:
根据所请求的虚拟地址,判断该虚拟地址对应的页表项是否在地址转换缓存中,若在地址转换缓存中,则直接将该页表项对应的物理地址返回给处理器;
若该页表项不在地址转换缓存中,则首先根据预置的重填方法在物理内存中获取该页表项,再判断地址转换缓存是否存在剩余空间;
若地址转换缓存存在剩余空间,将页表项依照顺序写入地址转换缓存后,将页表项对应的物理地址返回给处理器,否则根据预置的替换算法,替换地址转换缓存中的表项后,将页表项对应的物理地址返回给处理器。
可选的,所述预置的重填方法包括硬件重填:若所述虚拟地址对应的页表项不在地址转换缓存中,即发生地址转换缓存缺失,硬件自动使用当前虚拟地址去寻址物理内存中的页表项,若找到的页表项有效,则将它写回到地址转换缓存中,整个过程均是由硬件自动完成;若找到的页表项无效,硬件会产生一个页表项缺失类型的异常,再由操作系统来处理当前情况。
可选的,所述预置的重填方法包括软件重填:若所述虚拟地址对应的页表项不在地址转换缓存中,即发生地址转换缓存缺失,硬件把产生缺失的虚拟地址保存到地址缺失缓存寄存器中,同时产生一个地址转换缓存缺失类型的异常,在异常处理程序中,软件使用地址缓存缺失寄存器当中的虚拟地址去寻址物理内存中的页表项,找到对应的地址转换页表项,并写回到地址转换缓存中。
可选的,所述预置的替换算法为按照最近最少使用的替换算法LRU调整该地址转换缓存中的对象:
采用二叉树的方法实现伪LRU算法,在访问过程中从树的根到被访问数据块的路径记录在树的节点中,每次访问会指向不同的数据块节点,当地址转换缓存需要被替换时,替换当前二叉树所指向的数据块节点;对于A路组相联的地址转换缓存,需要预留A-1位来组成逻辑上的二叉树。
可选的,所述预置的替换算法为按照随机替换算法RANDOM调整该地址转换缓存中的对象:
通过计数器方法实现随机替换,计数器根据地址转换缓存的表项数选择位宽,根据处理器时钟,每周期加一,当地址转换缓存需要被替换时,访问该计数器,使用计数器当前的值作为被替换表项的索引,以此近似实现随机替换。
在本发明提供的地址转换缓存表项管理方法中,根据所请求的虚拟地址,判断该虚拟地址对应的页表项是否在地址转换缓存中,若在地址转换缓存中,则直接将该页表项对应的物理地址返回给处理器;若该页表项不在地址转换缓存中,则首先根据预置的重填方法在物理内存中获取该页表项,再判断地址转换缓存是否存在剩余空间;若地址转换缓存存在剩余空间,将页表项依照顺序写入地址转换缓存后,将页表项对应的物理地址返回给处理器,否则根据预置的替换算法,替换地址转换缓存中的表项后,将页表项对应的物理地址返回给处理器。本发明通过灵活的替换原则,降低页表项缺失概率;动态选择不同的重填方法,可以提高流水线效率。
附图说明
图1所示为本发明提供的一种地址转换缓存表项管理方法的流程图。
具体实施方式
以下结合附图和具体实施例对本发明提出的一种地址转换缓存表项管理方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
处理器发出虚拟地址VA,判断虚拟地址所在的页表项是否在地址转换缓存中,如果是,将地址转换缓存的表项中对应地址转换页表项的物理地址返回给处理器;否则触发地址转换缓存缺失异常,根据预先设置的方法,选择软件或硬件处理地址转换缓存缺失。
一、选取硬件处理地址转换缓存缺失,硬件单元利用页表基址寄存器找到存储于物理内存中的页表项,利用当前请求的虚拟地址进行寻址对应地址转换的页表项,同时判断页表项所对应物理内存空间属性,以及页表项的有效性:
(a)如果不满足内存访问属性,硬件单元发起内存访问错误;
(b)如果页表项无效,硬件单元发起页表项缺失异常,等待软件处理;
(b)如果页表项有效且满足访问属性要求,硬件单元将对应页表项写入地址转换缓存后,输出页表项中虚拟地址所对应的物理地址。
二、选取软件处理地址转换缓存缺失,硬件单元会在发生地址转换缓存缺失时,将所请求的虚拟地址保存在缺失地址缓存寄存器中,软件单元利用页表基址寄存器找到存储于物理内存中的页表项,获取虚拟地址进行寻址对应地址转换的页表项,判断页表项所对应物理内存空间属性,以及页表项的有效性:
(a)如果不满足内存访问属性,软件单元重新进行内存空间分配;
(b)如果页表项无效,软件单元通过访问下一级存储结构查找对应页表项;
(c)如果页表项有效且满足访问属性要求,软件单元通过相关指令将页表项写入地址转换缓存后,输出页表项中虚拟地址所对应的物理地址。
从物理内存中获取缺失的地址转换页表项,若地址转换缓存未被写满,则将所获取的地址转换页表项顺序写入地址转换缓存的空白空间;
若地址转换缓存已被写满,根据预先设置的方法,选择不同的地址转换缓存替换算法,对地址转换缓存中的表项进行替换操作。
选用随机替换算法RANDOM,则需要访问计数器模块,获取当前计数值,将计数值对应地址转换缓存删除,将当前得到的地址转换页表项写入所述地址转换缓存。
随机替换算法RANDOM更新地址转换缓存,通过计数器方法实现随机替换,计数器根据地址转换缓存的表项数选择位宽,根据处理器时钟,每周期加一,当地址转换缓存需要被替换时,访问该计数器,使用计数器当前的值作为被替换表项的索引,这样就近似实现了随机替换。
选用基于最近最少使用的替换算法LRU,则需要访问对应的LRU算法模块,获取要替换的地址转换缓存的表项索引,根据索引将从物理内存中获取的页表项写入地址转换缓存中。
基于最近最少使用的替换算法LRU,利用二叉树实现伪LRU算法,在访问过程中从树的根到被访问数据块的路径记录在树的节点中,对于A路组相联的地址转换缓存,需要预留A-1位来组成逻辑上的二叉树,通过每次访问地址转换缓存,改变二叉树节点数值,当地址转换缓存需要被替换时,访问二叉树,获取所指向的二叉树节点,将该节点所对应地址转换缓存的表项替换,这样就实现了伪LRU替换。通过二叉树的方法实现地址转换缓存替换,这种方法可以大大地减少硬件开销。
在地址转换页表项写入地址转换缓存后,将页表项中虚拟地址所对应的物理地址返回给处理器。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (5)
1.一种地址转换缓存表项管理方法,其特征在于,包括:
根据所请求的虚拟地址,判断该虚拟地址对应的页表项是否在地址转换缓存中,若在地址转换缓存中,则直接将该页表项对应的物理地址返回给处理器;
若该页表项不在地址转换缓存中,则首先根据预置的重填方法在物理内存中获取该页表项,再判断地址转换缓存是否存在剩余空间;
若地址转换缓存存在剩余空间,将页表项依照顺序写入地址转换缓存后,将页表项对应的物理地址返回给处理器,否则根据预置的替换算法,替换地址转换缓存中的表项后,将页表项对应的物理地址返回给处理器。
2.如权利要求1所述的地址转换缓存表项管理方法,其特征在于,所述预置的重填方法包括硬件重填:若所述虚拟地址对应的页表项不在地址转换缓存中,即发生地址转换缓存缺失,硬件自动使用当前虚拟地址去寻址物理内存中的页表项,若找到的页表项有效,则将它写回到地址转换缓存中,整个过程均是由硬件自动完成;若找到的页表项无效,硬件会产生一个页表项缺失类型的异常,再由操作系统来处理当前情况。
3.如权利要求2所述的地址转换缓存表项管理方法,其特征在于,所述预置的重填方法包括软件重填:若所述虚拟地址对应的页表项不在地址转换缓存中,即发生地址转换缓存缺失,硬件把产生缺失的虚拟地址存储到缺失地址缓存寄存器中,同时产生一个地址转换缓存缺失类型的异常,在异常处理程序中,软件使用缺失地址缓存寄存器当中的虚拟地址去寻址物理内存中的页表项,找到对应的地址转换页表项,并写回到地址转换缓存中。
4.如权利要求3所述的地址转换缓存表项管理方法,其特征在于,所述预置的替换算法为按照最近最少使用的替换算法LRU调整该地址转换缓存中的对象:
采用二叉树的方法实现伪LRU算法,在访问过程中从树的根到被访问数据块的路径记录在树的节点中,每次访问会指向不同的数据块节点,当地址转换缓存需要被替换时,替换当前二叉树所指向的数据块节点;对于A路组相联的地址转换缓存,需要预留A-1位来组成逻辑上的二叉树。
5.如权利要求4所述的地址转换缓存表项管理方法,其特征在于,所述预置的替换算法为按照随机替换算法RANDOM调整该地址转换缓存中的对象:
通过计数器方法实现随机替换,计数器根据地址转换缓存的表项数选择位宽,根据处理器时钟,每周期加一,当地址转换缓存需要被替换时,访问该计数器,使用计数器当前的值作为被替换表项的索引,以此近似实现随机替换。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210446247.0A CN114780453A (zh) | 2022-04-26 | 2022-04-26 | 一种地址转换缓存表项管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210446247.0A CN114780453A (zh) | 2022-04-26 | 2022-04-26 | 一种地址转换缓存表项管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780453A true CN114780453A (zh) | 2022-07-22 |
Family
ID=82432743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210446247.0A Pending CN114780453A (zh) | 2022-04-26 | 2022-04-26 | 一种地址转换缓存表项管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780453A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115640241A (zh) * | 2022-10-08 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 基于地址池的内存转换表表项管理方法、查询方法及装置 |
CN116775512A (zh) * | 2023-08-22 | 2023-09-19 | 摩尔线程智能科技(北京)有限责任公司 | 页表管理装置、方法、图形处理器及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929796A (zh) * | 2012-06-01 | 2013-02-13 | 杭州中天微系统有限公司 | 同时支持软件回填与硬件回填的内存管理模块 |
CN105701032A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 具多样替换策略的集合关联快取内存 |
US20200341900A1 (en) * | 2019-04-26 | 2020-10-29 | Arm Limited | System, method and apparatus for secure functions and cache line data |
-
2022
- 2022-04-26 CN CN202210446247.0A patent/CN114780453A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929796A (zh) * | 2012-06-01 | 2013-02-13 | 杭州中天微系统有限公司 | 同时支持软件回填与硬件回填的内存管理模块 |
CN105701032A (zh) * | 2014-12-14 | 2016-06-22 | 上海兆芯集成电路有限公司 | 具多样替换策略的集合关联快取内存 |
US20200341900A1 (en) * | 2019-04-26 | 2020-10-29 | Arm Limited | System, method and apparatus for secure functions and cache line data |
Non-Patent Citations (1)
Title |
---|
张雪霞: "《西北工业大学研究生学术年会论文集》", 30 November 2004, 西北工业大学出版社, pages: 292 - 294 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115640241A (zh) * | 2022-10-08 | 2023-01-24 | 中科驭数(北京)科技有限公司 | 基于地址池的内存转换表表项管理方法、查询方法及装置 |
CN115640241B (zh) * | 2022-10-08 | 2023-06-09 | 中科驭数(北京)科技有限公司 | 基于地址池的内存转换表表项管理方法、查询方法及装置 |
CN116775512A (zh) * | 2023-08-22 | 2023-09-19 | 摩尔线程智能科技(北京)有限责任公司 | 页表管理装置、方法、图形处理器及电子设备 |
CN116775512B (zh) * | 2023-08-22 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 页表管理装置、方法、图形处理器及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100843536B1 (ko) | 컴퓨터 시스템 내의 메모리 관리 향상 방법, 메모리 관리 메커니즘 및 컴퓨터 판독 가능한 기록 매체 | |
EP1196850B1 (en) | Techniques for improving memory access in a virtual memory system | |
US6282617B1 (en) | Multiple variable cache replacement policy | |
US20170235681A1 (en) | Memory system and control method of the same | |
US5668968A (en) | Two-level virtual/real set associative cache system and method with improved synonym detection | |
CN114780453A (zh) | 一种地址转换缓存表项管理方法 | |
JPH08235052A (ja) | ディレクトリ内にアドレス・タグを記憶するためのシステムおよび方法 | |
US5897651A (en) | Information handling system including a direct access set associative cache and method for accessing same | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
US6851038B1 (en) | Background fetching of translation lookaside buffer (TLB) entries | |
US7024536B2 (en) | Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same | |
CN114546898A (zh) | 一种tlb管理方法、装置、设备及存储介质 | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US10754786B2 (en) | Memory access method using simplified mapping table requiring smaller memory space | |
US20140013054A1 (en) | Storing data structures in cache | |
US6397298B1 (en) | Cache memory having a programmable cache replacement scheme | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 | |
WO2021008552A1 (zh) | 数据读取方法和装置、计算机可读存储介质 | |
US7143239B2 (en) | Cache structure and methodology | |
CN114827076B (zh) | 一种基于地址翻译单元的地址返回方法及系统 | |
JPH05216767A (ja) | エントリ置き換え制御方式 | |
WO2000045270A1 (en) | Techniques for improving memory access in a virtual memory system |
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 |