CN114741338B - 旁路转换缓存器、数据更新方法、内存管理单元及芯片 - Google Patents
旁路转换缓存器、数据更新方法、内存管理单元及芯片 Download PDFInfo
- Publication number
- CN114741338B CN114741338B CN202210627010.2A CN202210627010A CN114741338B CN 114741338 B CN114741338 B CN 114741338B CN 202210627010 A CN202210627010 A CN 202210627010A CN 114741338 B CN114741338 B CN 114741338B
- Authority
- CN
- China
- Prior art keywords
- page table
- real
- table entry
- attribute value
- value
- 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
Links
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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]
-
- 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
本申请实施例提供一种旁路转换缓存器、数据更新方法、内存管理单元及芯片,该旁路转换缓存器包括多个缓存单元,所述多个缓存单元中的各缓存单元被配置为存储一条页表项和一个进程属性值,其中,所述页表项包括地址转换信息,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程。通过本申请的实施例的技术方案可以提升实时任务的执行速度。
Description
技术领域
本申请涉及虚拟地址转换领域,具体而言本申请涉及旁路转换缓存器、数据更新方法、内存管理单元及芯片。
背景技术
在操作系统中,当有一个实时任务需要执行的时候,操作系统必须在较短的时间内执行该任务,不应该存在很大的延迟。系统能及时响应外部任务的请求,并在规定的时间内完成该任务的处理,是系统支持实时性的基本要求。
在一个CPU上会运行若干个用户空间的进程和内核线程。CPU开启内存管理单元MMU的情况下,其取指和执行访问内存memory指令的时候都需要进行地址翻译,将虚拟地址翻译成物理地址。而地址翻译是一个漫长的过程,因此会产生严重的开销。CPU为了提高性能,将部分的页表内容(即部分页表条目或称为页表项)缓存在旁路转换缓存器Translation Lookasid Buffer中,这样避免了从内存中访问页表的过程。
发明内容
本申请实施例的目的在于提供旁路转换缓存器、数据更新方法、内存管理单元及芯片,通过本申请的实施例的技术方案可以提升实时任务的执行速度。
第一方面,本申请的一些实施例提供一种旁路转换缓存器,所述旁路转换缓存器包括多个缓存单元,所述多个缓存单元中的各缓存单元被配置为存储一条页表项和一个进程属性值,其中,所述页表项包括地址转换信息,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程。
本申请的一些实施例在旁路转换缓存器中除了存储地址转换信息外,还会存储相应进程的是否属于实时进程的进程属性值,这样后续在进程切换时或者对TLB所存储的数据进行无效处理时,可根据进程属性值确定是否需要将相应页表项做出无效操作,例如,对于与实时进程对应的表项不做无效处理可以提升后续对该实时进程对应任务的处理速度。
在一些实施例中,所述缓存单元包括:进程属性存储位,被配置为存储所述进程属性值,所述进程属性存储位的长度为1。
本申请的一些实施例通过在缓存单元中增加一位(即通过硬件)来存储与各页表项对应进程是否属于实时进程的进程属性值,提升数据处理的速度。
在一些实施例中,所述进程属性值是从进程标识寄存器读取得到的,其中,所述进程标识寄存器被配置为通过存储不同数值来区分实时进程和非实时进程。
本申请的一些实施例中通过增加一个进程标识寄存器来存储新创建的每个进程是否属于实时进程的进程属性值。
在一些实施例中,所述进程标识寄存器的值是通过读取进程属性变量值得到的,其中,所述进程属性变量值为默认值则表征所创建的进程为非实时进程,所述进程属性变量值为非默认值则表征所创建的进程为实时进程。
本申请的一些实施例在创建进程时会设置一个变量值,并通过所创建进程是否属于实时进程而给该变量赋不同值,进而实现在进程执行时将该变量值写入进程标识寄存器中。
在一些实施例中,所述旁路转换缓存器,被配置为根据所述进程属性值确认是否清除所述页表项。
本申请的一些实施例通过存储的进程属性值来确认是否清除对应的页表项,具体地可以保留实时进程的页表项,提升进程切换时实时任务的执行速度。
在一些实施例中,所述多个缓存单元至少用于存储与第一进程和第二进程分别对应的页表项,其中,在对所述旁路转换缓存器做无效处理时,若与所述第一进程对应的进程属性值表征所述第一进程为实时进程,则在所述旁路转换缓存器中继续存储与所述第一进程对应的页表项;若与所述第二进程对应的进程属性值表征所述第二进程为非实时进程,则在所述旁路转换缓存器中删除与所述第二进程对应的页表项。
本申请的一些实施例在对旁路转换缓存器进行无效操作时,对于实时进程和非实时进程的操作具有差异,具体地删除非实时进程的页表项并保留实时进程的页表项,这样可以在后续进程切换时提升实时进程的执行速度。
在一些实施例中,所述页表项包括虚拟页号和与所述虚拟页号对应的物理页号,其中,所述缓存单元,包括:虚拟地址存储字段,被配置为存储所述虚拟页号;物理地址存储字段,被配置为存储所述物理页号。
本申请的一些实施例的缓存单元至少还设置有虚拟地址存储字段和物理地址存储字段,通过这些字段来存储地址转换信息(即来存储页表项)。
在一些实施例中,所述缓存单元包括CAM缓存单元和SRAM缓存单元,其中,所述CAM缓存单元用于存储所述虚拟页号,所述SRAM缓存单元用于存储所述物理页号和所述进程属性值。
本申请的一些实施例通过内容可寻址存储单元CAM(content addressablememory)和静态随机存取存储单元SRAM(static random access memory)两种不同的存储单元来存储缓存单元上不同数据,提升数据处理的速度。
第二方面,本申请的一些实施例提供一种用于更新旁路转换缓存器所存数据的方法,所述方法包括:向所述旁路转换缓存器包括的缓存单元写入数据的步骤,其中,所述数据包括页表项和进程属性值,所述缓存单元被配置为存储所述页表项和所述进程属性值,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程,所述页表项包括地址转换信息;根据所述进程属性值决策是否删除所述数据的步骤。
本申请的一些实施例通过向TLB中写入与各页表项对应进程的进程属性,并在删除TLB中页表项的时候根据该进程属性值来确定是否删除对应的地址转换信息(即页表项),可以提升后续进程切换时实时进程的执行速度。
在一些实施例中,所述向所述旁路转换缓存器包括的缓存单元写入数据的步骤,包括:从处理器获取虚拟地址;确认所述旁路转换缓存器中未存储与所述虚拟地址对应的页表项;获取所述页表项并获取所述进程属性值,其中,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程;将所述页表项和所述进程属性值写入所述旁路转换缓存器的一个缓存单元中。
本申请的一些实施例在向TLB中写入页表项的时候也需要写入进程属性值,方便后续根据进程属性值确定是否删除对应的页表项。
在一些实施例中,所述获取所述页表项,包括:从内存或者从磁盘获取所述页表项。
本申请的一些实施例可以从内存或者磁盘中读取存储的页表项,完成向TLB的数据写入。
在一些实施例中,在所述从处理器获取虚拟地址之前,所述方法还包括:在创建所述进程时,根据所述进程是否属于实时进程得到进程属性变量值,其中,所述进程属性变量值用于表征所述进程是否属于实时进程;在所述进程开始执行时,将所述进程属性变量值写入进程标识寄存器;其中,所述获取所述进程属性值,包括:通过读取所述进程标识寄存器所存储的数据得到所述进程属性值。
本申请的一些实施例提供了一种从进程创建和运行来记载如何获取进程属性值的过程。
在一些实施例中,所述根据所述进程是否属于实时进程得到进程属性变量值,包括:若确认所述进程为实时进程则将所述进程属性变量值设置为第一数值,若确认所述进程为非实时进程则将所述进程属性变量值设置为默认值,其中,所述第一数值和所述默认值属于两个不同的整数值。
在一些实施例中,所述根据所述进程属性值决策是否删除所述数据的步骤,包括:在对所述旁路转换缓存器进行无效操作时,若根据所述进程属性值确认所述进程为非实时进程,则对所述页表项进行删除操作;若根据所述进程属性值确认所述进程为实时进程,则继续存储所述页表项。
本申请的一些实施例在对TLB进行无效操作时仅删除与非实时进程对应的页表项,而保留与实时进程对应的页表项,提升进程切换时对实时进程对应的任务的执行速度。
第三方面,本申请的一些实施例提供一种内存管理单元,所述内存管理单元包括:处理单元,被配置为根据从处理器接收的虚拟地址得到虚拟页号;如上述第一方面任一实施例所述的旁路转换缓存器,被配置为:存储与所述虚拟地址对应进程的进程属性值和与所述虚拟页号对应的页表项,并根据所述虚拟页号得到物理页号;其中,所述处理单元还被配置为:根据所述进程属性值确认是否需要删除所述页表项,并根据所述物理页号和偏移量得到与所述虚拟地址对应的物理地址完成地址转换。
在一些实施例中,所述内存管理单元还包括:进程标识寄存器,被配置为存储进程变量值,其中,所述进程变量值用于表征创建的进程属于实时进程还是属于非实时进程,其中,所述旁路转换缓存器通过从所述进程标识寄存器读取所述进程变量值得到所述进程属性值。
第四方面,本申请的一些实施例提供一种芯片,包括:处理器,被配置为提供与一个进程对应的虚拟地址;以及如第一方面一些实施例所述的内存管理单元,被配置为:根据所述虚拟地址得到物理地址;存储与所述虚拟地址对应进程的进程属性值;根据所述进程属性值确认是否删除与所述进程对应的页表项。
在一些实施例中,所述处理器还包括:进程标识寄存器,被配置为存储所述进程的进程变量值,其中,所述进程变量值用于表征所述进程属于实时进程或者属于非实时进程,所述进程属性值为从所述进程标识寄存器读取的所述进程变量值。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术提供的利用虚拟地址访问内存存储器的架构示意图;
图2为相关技术提供的TLB命中的过程示意图;
图3为相关技术提供的TLB查询物理地址的过程示意图;
图4为本申请实施例提供的TLB缓存内容的示意图;
图5为本申请实施例提供的TLB存储多个进程数据的示意图;
图6为本申请实施例提供的用于更新旁路转换缓存器所存数据的方法流程图;
图7为本申请实施例提供的向旁路转换缓存器写入数据的流程图;
图8为本申请实施例提供的内存管理单元的组成框图;
图9为本申请实施例提供的芯片的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面首先简要介绍相关技术提供的内存管理单元和旁路转换缓存器的核心功能。
相关技术公开的内存管理单元需要具备两个基本功能:虚拟地址(VirtualAddress)转换和内存保护。下面结合内存管理单元重点介绍与本申请改进点相关的虚拟地址转换过程。
内存管理单元专门利用存放在主存(或称为内部存储单元、内存)中的表(包括多个页表项)来动态翻译虚拟地址的专用硬件,其中,存放在主存中的表称为页表。页表将虚拟页映射到物理页,每次内存管理单元中的地址翻译硬件在将一个虚拟地址转换为物理地址(Physical Address)时,都会先读取页表条目(或称为页表项)得到相应的物理页号,再与页内偏移拼装成为所需要的物理地址。其实从本质来说,页表就是一个页表条目(或称为页表项)PTE的数组。虚拟地址空间中的每一个页面都在页表中的某个固定偏移量处有一个页表条目,例如,每个页表条目都是由一个有效位和一个n位的地址字段组成(可能还有其他保护位)。
不难理解的是,相关技术中每次处理器产生一个虚拟地址,则内存管理单元就必须查阅一次页表得到一个页表条目,这通常需要几十甚至几百个周期,代价非常大。如果将查询到的页表项缓存在类似于缓存单元的结构中,那么开销就会下降到一个或者几个周期,这样的结构被称作旁路转换缓冲器TLB,相关技术通过引入旁路转换缓存器来缓存与最近使用过的页表项相关的页表项以提升获取物理地址的速度。
也就是说,内存管理单元通过旁路转换缓存器TLB 进行地址转换,在TLB 未缓存目标页表项的情况下,才需要进一步搜索内部存储器中所存储的页表得到该目标页表项,查询该目标页表项得到与虚拟地址包括的虚拟页号对应的物理页号并将该页表项更新至TLB中。可以理解的是,页表是实现虚拟存储系统的重要手段,页表中存储有多个页表项,其中,每个页表项包括虚拟页面与物理页面映射关系,也可以包括其它一些信息。例如,页表中的每一个PTE(即页表项)都包含了虚拟页号以及对应的物理页号,读写控制权限使能,是否可缓存等与内存控制相关的信息。
下面结合图1-图3简要阐述现有技术对TLB做无效操作时存在的技术缺陷。
请参看图1,图1为相关技术提供的利用虚拟地址访问内部存储器(简称内存)的架构图,在该图中包括:第一处理器100、与第一处理器100通信的第一内存管理单元200以及内部存储器300。需要说明的是,在一些实施例中图1的第一处理器100中还包括多个高速缓存(图中未示出),该高速缓存用于存储从内部存储器300上读取过的数据或者指令以提升第一处理器100获取数据或者指令的速度。
第一处理器100为CPU或者嵌入式微处理器,需要说明的是,第一处理器100可以同时运行多个进程,若这些进程中的某个进程需要访问内存存储器上某个物理存储单元时,该处理器会输出一个虚拟地址,之后由第一内存管理单元200根据虚拟地址得到对应的物理地址(例如,首先判断第一内存管理单元200包括的旁路转换单元上是否存储有相应页表项如果有则根据该页表项得到物理地址,若旁路转换单元上未存储相关页表项则需要从内部存储器或者其他存储单元上所存储的页表中读取相应页表项并根据该页表项得到物理地址)。最后根据该物理地址可以访问内部存储器上的某个存储单元完成数据读写操作。
下面示例性阐述相关如何根据虚拟地址得到物理地址。
如图2所示,第一处理器100包括取指模块IFU和存储数据模块LSU,其中,在执行某个进程的应用时,则这两个模块中的至少一个模块会产生一个虚拟地址VA(virtualaddress),该虚拟地址包括虚拟页号和虚拟页偏移量。
图2的第一内存管理单元200包括第一旁路转换缓存器(或称为旁路转换缓存器)201以及处理单元251,其中,处理单元251接收来自于取指模块或者来自于存取数据模块的虚拟地址,并对虚拟地址进行解析得到该虚拟地址包括的虚拟页号VPN。之后,再将虚拟页号发送给旁路转换单元TLB,通过第一旁路转换缓存器201查询页表项(该页表项是从内部存储器中读取的,第一旁路转换缓存器所存储的所有页表项属于内部存储器所存储的整个页表的一部分)得到页表条目PTE。之后,再将该页表条目发送给处理单元251,该处理单元根据页表条目得到物理地址PA,最后向高速缓存(图1未示出该缓存)或者存储器(即图1的内部存储器)发送该物理地址。高速缓存和内部存储器根据物理地址得到目标数据并向取指模块返回该物理地址处所存储的指令或者向存取数据模块返回该物理地址处所存储的数据。
可以理解的是,由于图2第一旁路转换缓存器201仅存储了部分页表项,若不能从旁路转换单元获取目标页表项则只能通过查询内存的页表得到相应页表项。
下面结合图3示例性阐述相关技术的缓存单元所存储的数据以及发明人发现的这种存储方式所存在的技术缺陷。
如图3所示,一个虚拟地址共包括n位,n为大于1的整数,其中,该虚拟地址的第0位至第p-1位用于提供虚拟页偏移量VPO,第p位至第n-1位用于提供虚拟页号VPN。图3的第一旁路转换缓存器201(简称TLB)采用多个第一缓存单元211来存储多条页表项,每个第一缓存单元211用于存储一个页表项,每个页表项包括标识位tag和数据位data,其中,标识位用于存储各页表项包括的虚拟页号,数据位用于存储与虚拟页号对应的物理页号。在一次具体虚拟地址转换时,从虚拟地址获取虚拟页号,查找该虚拟页号匹配的标识位tag,并读取与该标识位tag对应的数据项data,就可以进一步得到与虚拟页对应的物理页地址(例如,通过物理页号PPN和物理页偏移量PPO得到最终的物理地址,其中,物理页偏移量等于虚拟页偏移量)。不难理解的是,现有技术的TLB上的各缓存单元用于存储虚拟页号和物理页号之间的映射关系。
下面通过进程切换示例性阐述第一旁路转换缓存器存在的技术缺陷。
假设从一个用户态进程1切换到另一个用户态进程2的时候,因为它们各自都有自己独立的地址空间,也就是说对于同样的一个虚拟地址,在用户态进程1的地址空间中可以被翻译成物理地址P1,在另一个用户态进程2的地址空间中却能被翻译成物理地址P2,因此在地址翻译过程中,TLB中会同时存在进程1和进程2的页表缓存数据(即页表项),那么进程1地址空间的页表缓存会影响进程2地址的翻译,导致CPU执行错误,因此在进程切换的时候,需要清除第一旁路转换缓存器中所存储的进程1的页表项。目前CPU架构当中,一般第一旁路转换缓存器所存储的页表项中带有进程的标识符,该进程的标识符可以指定刷新具体进程的页表项,进程与进程之间进行切换的时候不需要进行页表项刷新,然而第一旁路转换缓存器中页表项的进程标识符数据位宽度有一定的限制,在指定的数据位宽度下,当用户态进程不断增加,增加到超过第一旁路转换缓存器的页表项中进程标识符数据位宽度的时候,若用户态进程再增加的时候,需要将TLB中所存储的所有进程的页表项进行刷新无效(即删除TLB中存储的所有页表项数据对TLB做无效操作),在这之后会导致所有的进程(包括实时任务进程)的执行性能下降。
本申请的一些实施例基于此问题提供了一种基于实时任务切换的TLB性能提升技术,在硬件的TLB的页表项中添加实时任务的标识,因此只要旁路转换缓存器TLB所存储的页表项对应的进程属于实时进程,则与该实时进程对应的页表项在无效时都不会被删除,以便后续需要继续执行该实时进程时提升执行速度。
下面结合图4示例性阐述本申请一些实施例的旁路转换缓存器的结构和所存储的数据。
如图4所示,本申请的一些实施例提供一种旁路转换缓存器,即第二旁路转换缓存器202,该第二旁路转换缓存器202包括多个第二缓存单元231(图4仅示出四个),其中,图4的各第二缓存单元231被配置为存储一条页表项(例如,该表项包括标识位tag和数据位data)和一个进程属性值(即在图4的Flag位存储的数据),其中,所述页表项包括地址转换信息(例如,标识位tag用于存储虚拟页号而数据位data用于存储与该虚拟页号在内部存储器上对应的物理页号),所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程。
也就是说,本申请的一些实施例在旁路转换缓存器中除了存储地址转换信息(即标识位tag和数据位data对应的数据)外,还会存储相应进程的是否属于实时进程的进程属性值这与现有技术是不同的,这样后续在进程切换时或者对TLB所存储的页表项全部进行无效处理时,可根据进程属性值确定是否需要将相应页表项做出删除操作,进而可以提升实时进程的执行速度。例如,对于与实时进程对应的表项不做无效处理可以提升后续对该实时进程对应任务的处理速度。
如图4所示,在本申请的一些实施例中,每个第二缓存单元231包括:进程属性存储位(即Flag位),该存储位被配置为存储与被存储的页表项对应进程的进程属性值。可以理解的是,在本申请的一些实施例中该进程属性存储位的长度为1,即采用一位二进制位来存储进程属性值。例如,采用数字0表征对应进程为非实时进程,采用数字1表征对应进程为实时进程。
也就是说,本申请的一些实施例通过在现有的旁路转换缓存器的各缓存单元中增加一位(即通过硬件)来存储与各页表项对应进程是否属于实时进程的进程属性值,提升数据处理的速度。
为了准确获取进程属性存储位的值,在本申请的一些实施例中,通过读取进程标识寄存器的值来得到该进程属性存储为的具体取值。即所述进程属性值是从进程标识寄存器读取得到的,其中,所述进程标识寄存器被配置为通过存储不同数值来区分实时进程和非实时进程。例如,该进程标识寄存器的值是在执行相应进程时写入的,且创建相应进程时还需要设置一个进程属性变量。也就是说,在本申请的一些实施例中,所述进程标识寄存器的值是通过读取进程属性变量值得到的,其中,所述进程属性变量值为默认值则表征所创建的进程为非实时进程,所述进程属性变量值为非默认值则表征所创建的进程为实时进程。
也就是说,本申请的一些实施例中通过增加一个进程标识寄存器来存储新创建的每个进程是否属于实时进程的进程属性值。本申请的一些实施例在创建进程时会设置一个变量值,并通过所创建进程是否属于实时进程而给该变量赋不同值,进而实现在进程执行时将该变量值写入进程标识寄存器中。
为了提升被中断执行的进程再次被恢复执行时的执行速度,在本申请的一些实施例中,所述旁路转换缓存器,被配置为根据所述进程属性值确认是否清除所述页表项。也就是说,本申请的一些实施例通过存储的进程属性值来确认是否清除对应的页表项,可以保留实时进程的页表项,提升进程切换时实时任务的执行速度。
下面结合图5示例性阐述如何根据进程属性值确定是否删除在第二旁路转换缓存器202中所存储的页表项。
在本申请的一些实施例中,所述多个第二缓存单元至少用于存储与第一进程和第二进程分别对应的地址转换信息,例如,如图5所示通过三个第二缓存单元存储与第一进程对应的三个页表项(对应三组地址转换信息)并通过两个第二缓存单元存储与第二进程对应的两个页表项。假设进程属性值1代表相应进程为实时进程,进程属性值0代表相应进程为非实时进程。
如图5所示,与第一进程对应的三个页表项具体包括第一页表项、第二页表项以及第三页表项,且与这三个页表项(即与第一进程)对应的进程属性值为首位的数字1,第一页表项除了包括进程属性值1之外还包括第一虚拟页号(存储在标识位tag上)和第一物理页号(存储在数据位data上),第二页表项除了包括进程属性值1之外还包括第二虚拟页号和第二物理页号且第三页表项除了包括进程属性值1之外还包括第三虚拟页号和第三物理页号。
如图5所示,与第二进程对应的两个页表项具体包括第四页表项以及第五页表项,且与这两个页表项(即与第二进程)对应的进程属性值为首位的数字0,第四页表项除了包括进程属性值0之外还包括第四虚拟页号和第四物理页号,第五页表项除了包括进程属性值0之外还包括第五虚拟页号和第五物理页号。
在本申请的一些实施例中,在对所述第二旁路转换缓存器做无效处理时,由于与所述第一进程对应的进程属性值表征该第一进程为实时进程,则在所述第二旁路转换缓存器中继续存储与所述第一进程对应的页表项(例如,在第二旁路转换缓存器中继续存储图5的与第一进程对应的第一页表项、第二页表项以及第三页表项)。由于与所述第二进程对应的进程属性值表征所述第二进程为非实时进程,则在所述第二旁路转换缓存器中删除与所述第二进程对应的页表项(例如,在旁路转换缓存器中删除图5的与第二进程对应的第四页表项以及第五页表项)。
可以理解的是,正是由于本申请的一些实施例在对第二旁路转换缓存器进行无效操作时,对于实时进程和非实时进程的操作具有差异,具体地删除非实时进程的页表项并保留实时进程的页表项,这样可以在后续进程切换时提升实时进程的执行速度。
正如上文所描述的,在本申请的一些实施例中,所述页表项至少包括虚拟页号和与所述虚拟页号对应的物理页号,其中,图4的各第二缓存单元231还示例性包括:虚拟地址存储字段(即标识位tag所在字段),被配置为存储所述虚拟页号;物理地址存储字段(即数据data所在字段),被配置为存储所述物理页号。本申请的一些实施例的缓存单元至少还设置有虚拟地址存储字段和物理地址存储字段,通过这些字段来存储地址转换信息(即来存储页表项)。
例如,在本申请的一些实施例中,所述第二缓存单元包括CAM缓存单元和SRAM缓存单元,其中,所述CAM缓存单元用于存储所述虚拟页号,所述SRAM缓存单元用于存储所述物理页号和所述进程属性值。本申请的一些实施例通过两种不同的存储单元来存储缓存单元上不同数据,提升数据处理的速度。
下面结合图6示例性阐述如何更新本申请一些实施例的第二旁路转换缓存器上的数据。
如图6所示,本申请的一些实施例提供一种用于更新旁路转换缓存器所存数据的方法,所述方法包括:S110,向上述第二旁路转换缓存器包括的第二缓存单元写入数据的步骤,其中,所述数据包括页表项和进程属性值,所述第二缓存单元被配置为存储所述页表项和所述进程属性值,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程,所述页表项包括地址转换信息;以及S120,根据所述进程属性值决策是否删除所述数据的步骤。
也就是说,本申请的一些实施例通过向第二旁路转换缓存器TLB中写入与各页表项对应进程的进程属性,并在删除该旁路转换缓存器TLB中页表项的时候根据该进程属性值来确定是否删除对应的地址转换信息(即页表项),可以提升后续进程切换时实时进程的执行速度。
如图7所示,在本申请的一些实施例中,S110示例性包括:S111,从处理器获取虚拟地址;S112,确认所述第二旁路转换缓存器中未存储与所述虚拟地址对应的页表项;S113,获取所述页表项并获取所述进程属性值,其中,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程;S114,将所述页表项和所述进程属性值写入所述第二旁路转换缓存器的一个缓存单元(即第二缓存单元)中。本申请的一些实施例在向第二旁路转换缓存器TLB中写入页表项的时候也需要写入进程属性值,方便后续根据进程属性值确定是否删除对应的页表项。
在本申请的一些实施例中,所述获取所述页表项,包括:从内存或者从磁盘获取所述页表项。本申请的一些实施例可以从内存或者磁盘中读取存储的页表项,完成向第二旁路转换缓存器中各第二缓存单元的数据写入。
在本申请的一些实施例中,在所述从处理器获取虚拟地址之前,所述方法还包括:在创建所述进程时,根据所述进程是否属于实时进程得到进程属性变量值,其中,所述进程属性变量值用于表征所述进程是否属于实时进程;在所述进程开始执行时,将所述进程属性变量值写入进程标识寄存器;其中,所述获取所述进程属性值,包括:通过读取所述进程标识寄存器所存储的数据得到所述进程属性值。本申请的一些实施例提供了一种从进程创建和运行来记载如何获取进程属性值的过程。
在本申请的一些实施例中,所述根据所述进程是否属于实时进程得到进程属性变量值,包括:若确认所述进程为实时进程则将所述进程属性变量值设置为第一数值,若确认所述进程为非实时进程则将所述进程属性变量值设置为默认值,其中,所述第一数值和所述默认值属于两个不同的整数值。
在本申请的一些实施例中,所述根据所述进程属性值决策是否删除所述数据的步骤,包括:在对所述第二旁路转换缓存器进行无效操作时,若根据所述进程属性值确认所述进程为非实时进程,则对所述页表项进行删除操作;若根据所述进程属性值确认所述进程为实时进程,则继续存储所述页表项。本申请的一些实施例在对第二旁路转换缓存器TLB进行无效操作时仅删除与非实时进程对应的页表项,而保留与实时进程对应的页表项,提升进程切换时对实时进程对应的任务的执行速度。
下面以linux操作系统为例从进程创建、执行的角度示例性阐述本申请一些实施例如何更新第二旁路转换缓存器上的数据。
正如上文所记载的,本申请的一些实施例提出了一种基于实时任务切换的TLB性能提升技术,硬件上专门设置对应的寄存器(即进程标识寄存器)用于设置实时任务进程的标识,同时在相关技术的第一旁路转换缓存器的各缓存单元添加一个实时任务进程标识位,当系统中需要创建很多进程的时候,带有实时任务标识的缓存项不进行无效操作,从而提高了实时任务的执行速度,具体的解决方案如下。
第一步,在linux中,每创建一个新的实时任务进程,都会预先分配一个新的内存描述符struct mm_struct结构体,该结构体用于描述进程的整个虚拟地址空间,并且每个进程都拥有自己独立的地址空间。例如,在该结构中新添加一个新成员变量rt_flags(即进程属性变量),默认值为0(即进程属性变量值为0),当用户态创建实时任务进程的时候,将该rt_flags设置成为1(即进程属性变量值为1)。
也就是说,即在创建进程时,将与实时进程任务对应的进程属性变量的值设置为目标值(例如,设置为1)。
第二步,实时任务进程创建完,并且设置完rt_flags之后,当实时任务进行抢占并执行的时候,需要将进程标识寄存器进行设置成为rt_flags的值。
也就是说,当执行通过第一步所创建的实时任务进程时,将所述进程属性变量的值写入对应的进程属性标识寄存器(即新增加的硬件)中。
第三步,一切准备就绪之后,处理器CPU进行取指和执行访问内部存储器memory指令的时候,会在第二旁路转换缓存器的第二缓存单元中存储与该进程对应页表项,此时旁路转换缓存器的缓存中不仅保存了页表项,同时还保存了该进程标识寄存器中的值(即存储了进程属性值)。
第四步,在TLB中存储了实时任务进程的标志位后,同一个CPU上运行多个实时任务的时候,凡是带有实时任务进程标识符的TLB缓存项(即页表项),都不需要进行针对TLB的无效操作,如此之后,CPU执行完一个实时任务之后,切换到另一个实时任务的时候,因其TLB中仍然缓存该被中断进程的页表项,进而加快了CPU对被中断实时进程的执行速度。
通过实现上述步骤,可以显著提高同一个CPU上多个实时任务进程的执行速度,从而缩短实时任务的时延。
下面结合图8示例性阐述本申请一些实施例提供的内存管理单元。
如图8所示,本申请的一些实施例提供一种内存管理单元即图8的第二内存管理单元400,该第二内存管理单元包括:第二处理单元271以及如上述任一实施例所述的第二旁路转换缓存器202。
第二处理单元271,被配置为根据从处理器接收的虚拟地址得到虚拟页号。可以理解的是,在本申请的一些实施例中该第二处理单元还被配置为根据从第二旁路转换缓存器读取的进程属性值确认是否需要删除与该属性值对应的地址转换信息。
如上述任一实施例所述的第二旁路转换缓存器202,被配置为:存储与所述虚拟地址对应进程的进程属性值和与所述虚拟页号对应的页表项,并根据所述虚拟页号得到物理页号。
也就是说,所述第二处理单元271还被配置为:根据所述进程属性值确认是否需要删除所述页表项,并根据所述物理页号和偏移量得到与所述虚拟地址对应的物理地址完成地址转换。
如图8所示,在本申请一些实施例中,所述第二内存管理单元400还包括:进程标识寄存器261,该进程标识寄存器261被配置为存储进程变量值,其中,所述进程变量值用于表征创建的进程属于实时进程还是属于非实时进程,其中,所述旁路转换缓存器通过从所述进程标识寄存器读取所述进程变量值得到所述进程属性值。
如图9所示,本申请的一些实施例提供一种芯片500,该芯片500上包括:第二处理器510以及第二内存管理单元400。
图9的第二处理器510至少被配置为提供与一个进程对应的虚拟地址。
图9的第二内存管理单元400至少被配置为:根据所述虚拟地址得到物理地址,存储与所述虚拟地址对应进程的进程属性值;根据所述进程属性值确认是否删除与所述进程对应的页表项。
如图9所示,在本申请的一些实施例中,该第二处理器510还包括:进程标识寄存器261、控制器512以及运算器513,对于这些器件的具体功能和实现手段可以参考相关技术的描述,为避免重复在此不做过多赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (17)
1.一种旁路转换缓存器,其特征在于,
所述旁路转换缓存器包括多个缓存单元,所述多个缓存单元中的各缓存单元被配置为存储一条页表项和一个进程属性值,其中,所述页表项包括地址转换信息,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程,以使在进程切换时或者对TLB所存储的数据进行无效处理时可根据所述进程属性值确定是否需要将相应页表项做出无效操作。
2.如权利要求1所述的旁路转换缓存器,其特征在于,所述缓存单元包括:进程属性存储位,被配置为存储所述进程属性值,所述进程属性存储位的长度为1。
3.如权利要求2所述的旁路转换缓存器,其特征在于,所述进程属性值是从进程标识寄存器读取得到的,其中,所述进程标识寄存器被配置为通过存储不同数值来区分所述实时进程和所述非实时进程。
4.如权利要求3所述的旁路转换缓存器,其特征在于,所述进程标识寄存器的值是通过读取进程属性变量值得到的,其中,所述进程属性变量值为默认值则表征所创建的进程为非实时进程,所述进程属性变量值为非默认值则表征所创建的进程为实时进程。
5.如权利要求1所述的旁路转换缓存器,其特征在于,所述旁路转换缓存器,被配置为根据所述进程属性值确认是否清除所述页表项。
6.如权利要求5所述的旁路转换缓存器,其特征在于,所述多个缓存单元至少用于存储与第一进程和第二进程分别对应的页表项,其中,
在对所述旁路转换缓存器做无效处理时,
若与所述第一进程对应的进程属性值表征所述第一进程为实时进程,则在所述旁路转换缓存器中继续存储与所述第一进程对应的页表项;
若与所述第二进程对应的进程属性值表征所述第二进程为非实时进程,则在所述旁路转换缓存器中删除与所述第二进程对应的页表项。
7.如权利要求1-3任一项所述的旁路转换缓存器,其特征在于,所述页表项包括虚拟页号和与所述虚拟页号对应的物理页号,其中,
所述缓存单元,包括:
虚拟地址存储字段,被配置为存储所述虚拟页号;
物理地址存储字段,被配置为存储所述物理页号。
8.如权利要求7所述的旁路转换缓存器,其特征在于,所述缓存单元包括CAM缓存单元和SRAM缓存单元,其中,所述CAM缓存单元用于存储所述虚拟页号,所述SRAM缓存单元用于存储所述物理页号和所述进程属性值。
9.一种用于更新旁路转换缓存器所存数据的方法,其特征在于,所述方法包括:
向所述旁路转换缓存器包括的缓存单元写入数据的步骤,其中,所述数据包括页表项和进程属性值,所述缓存单元被配置为存储所述页表项和所述进程属性值,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程,所述页表项包括地址转换信息;
在进程切换时或者对TLB所存储的数据进行无效处理时,根据所述进程属性值决策是否删除所述数据的步骤。
10.如权利要求9所述的方法,其特征在于,所述向所述旁路转换缓存器包括的缓存单元写入数据的步骤,包括:
从处理器获取虚拟地址;
确认所述旁路转换缓存器中未存储与所述虚拟地址对应的页表项;
获取所述页表项并获取所述进程属性值,其中,所述进程属性值用于表征与所述页表项对应的进程属于实时进程或者属于非实时进程;
将所述页表项和所述进程属性值写入所述缓存单元中。
11.如权利要求10所述的方法,其特征在于,在所述从处理器获取虚拟地址之前,所述方法还包括:
在创建所述进程时,根据所述进程是否属于实时进程得到进程属性变量值,其中,所述进程属性变量值用于表征所述进程是否属于实时进程;
在所述进程开始执行时,将所述进程属性变量值写入进程标识寄存器;
其中,所述获取所述进程属性值,包括:
通过读取所述进程标识寄存器所存储的数据得到所述进程属性值。
12.如权利要求11所述的方法,其特征在于,
所述根据所述进程是否属于实时进程得到进程属性变量值,包括:
若确认所述进程为实时进程则将所述进程属性变量值设置为第一数值,若确认所述进程为非实时进程则将所述进程属性变量值设置为默认值,其中,所述第一数值和所述默认值属于两个不同的整数值。
13.如权利要求9-12任一项所述的方法,其特征在于,所述根据所述进程属性值决策是否删除所述数据的步骤,包括:
在对所述旁路转换缓存器进行无效操作时,
若根据所述进程属性值确认所述进程为非实时进程,则对所述页表项进行删除操作;
若根据所述进程属性值确认所述进程为实时进程,则继续存储所述页表项。
14.一种内存管理单元,其特征在于,所述内存管理单元包括:
处理单元,被配置为根据从处理器接收的虚拟地址得到虚拟页号;
如权利要求1-8任一项所述的旁路转换缓存器,被配置为:存储与所述虚拟地址对应进程的进程属性值和与所述虚拟页号对应的页表项,并根据所述虚拟页号得到物理页号;
其中,所述处理单元还被配置为:在进程切换时或者对TLB所存储的数据进行无效处理时根据所述进行属性值确认是否需要删除所述页表项,并根据所述物理页号和偏移量得到与所述虚拟地址对应的物理地址完成地址转换。
15.如权利要求14所述的内存管理单元,其特征在于,所述内存管理单元还包括:
进程标识寄存器,被配置为存储进程变量值,其中,所述进程变量值用于表征创建的进程属于实时进程还是属于非实时进程,其中,所述旁路转换缓存器通过从所述进程标识寄存器读取所述进程变量值得到所述进程属性值。
16.一种芯片,其特征在于,所述芯片包括:
处理器,被配置为提供与一个进程对应的虚拟地址;以及
如权利要求14所述的内存管理单元,被配置为:
根据所述虚拟地址得到物理地址;
存储与所述虚拟地址对应进程的进程属性值;
在进程切换时或者对TLB所存储的数据进行无效处理时,根据所述进程属性值确认是否删除与所述进程对应的页表项。
17.如权利要求16所述的芯片,其特征在于,所述处理器还包括:进程标识寄存器,被配置为存储所述进程的进程变量值,其中,所述进程变量值用于表征所述进程属于实时进程或者属于非实时进程,所述进程属性值为从所述进程标识寄存器读取的所述进程变量值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210627010.2A CN114741338B (zh) | 2022-06-06 | 2022-06-06 | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210627010.2A CN114741338B (zh) | 2022-06-06 | 2022-06-06 | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114741338A CN114741338A (zh) | 2022-07-12 |
CN114741338B true CN114741338B (zh) | 2022-09-13 |
Family
ID=82287355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210627010.2A Active CN114741338B (zh) | 2022-06-06 | 2022-06-06 | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741338B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115934587B (zh) * | 2023-03-15 | 2023-05-12 | 瀚博半导体(上海)有限公司 | 内存管理单元和内存管理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315602A (zh) * | 2008-05-09 | 2008-12-03 | 浙江大学 | 硬件化的进程内存管理核的方法 |
CN101539869A (zh) * | 2009-04-13 | 2009-09-23 | 浙江大学 | 与调度性能直接相关的内存管理核的硬件化的方法 |
CN102662860A (zh) * | 2012-03-15 | 2012-09-12 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
CN107870879A (zh) * | 2016-09-23 | 2018-04-03 | 中国移动通信有限公司研究院 | 一种数据搬移方法、加速器板卡、主机及数据搬移系统 |
CN114519186A (zh) * | 2020-11-20 | 2022-05-20 | 华为技术有限公司 | 一种数据保护的方法、装置、存储介质和计算机设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662771B (zh) * | 2012-03-03 | 2013-12-25 | 西北工业大学 | 基于消息机制的实时进程与非实时进程间的数据交互方法 |
CN108139981B (zh) * | 2016-08-11 | 2020-08-14 | 华为技术有限公司 | 一种页表缓存tlb中表项的访问方法,及处理芯片 |
CN107818052B (zh) * | 2016-09-13 | 2020-07-21 | 华为技术有限公司 | 内存访问方法及装置 |
CN112328514B (zh) * | 2020-11-12 | 2024-02-06 | 深圳中微电科技有限公司 | 一种多线程处理器系统产生独立进程标识的方法和装置 |
CN114328295A (zh) * | 2021-11-23 | 2022-04-12 | 平头哥(上海)半导体技术有限公司 | 存储管理装置、处理器、相关装置和相关方法 |
-
2022
- 2022-06-06 CN CN202210627010.2A patent/CN114741338B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315602A (zh) * | 2008-05-09 | 2008-12-03 | 浙江大学 | 硬件化的进程内存管理核的方法 |
CN101539869A (zh) * | 2009-04-13 | 2009-09-23 | 浙江大学 | 与调度性能直接相关的内存管理核的硬件化的方法 |
CN102662860A (zh) * | 2012-03-15 | 2012-09-12 | 天津国芯科技有限公司 | 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法 |
CN107870879A (zh) * | 2016-09-23 | 2018-04-03 | 中国移动通信有限公司研究院 | 一种数据搬移方法、加速器板卡、主机及数据搬移系统 |
CN114519186A (zh) * | 2020-11-20 | 2022-05-20 | 华为技术有限公司 | 一种数据保护的方法、装置、存储介质和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114741338A (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6567618B2 (ja) | ページ属性サポートのある仮想アドレスから物理アドレスへの変換 | |
US7917725B2 (en) | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer | |
US9152572B2 (en) | Translation lookaside buffer for multiple context compute engine | |
US9086988B2 (en) | Identification and consolidation of page table entries | |
US8190827B2 (en) | Memory sharing among computer programs | |
US7783859B2 (en) | Processing system implementing variable page size memory organization | |
US8819648B2 (en) | Control flow management for execution of dynamically translated non-native code in a virtual hosting environment | |
US5991847A (en) | Data pattern caching for speeding up write operations | |
US7779214B2 (en) | Processing system having a supported page size information register | |
US11775445B2 (en) | Translation support for a virtual cache | |
US20210026771A1 (en) | Cache structure using a logical directory | |
US10810134B2 (en) | Sharing virtual and real translations in a virtual cache | |
US20160283396A1 (en) | Memory management | |
CN104239237A (zh) | 一种tlb管理方法及装置 | |
CN114741338B (zh) | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 | |
WO2005078590A2 (en) | Address conversion technique in a context switching environment | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US9740628B2 (en) | Page table entry consolidation | |
CN117331854B (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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Shao Lisong Inventor after: Wang Zhen Inventor after: Yan Zhiwei Inventor before: Shao Lisong Inventor before: Wang Zhen Inventor before: Yan Liwei |
|
CB03 | Change of inventor or designer information |