CN115934587A - 内存管理单元和内存管理方法 - Google Patents
内存管理单元和内存管理方法 Download PDFInfo
- Publication number
- CN115934587A CN115934587A CN202310249254.6A CN202310249254A CN115934587A CN 115934587 A CN115934587 A CN 115934587A CN 202310249254 A CN202310249254 A CN 202310249254A CN 115934587 A CN115934587 A CN 115934587A
- Authority
- CN
- China
- Prior art keywords
- address
- page table
- cache
- pte
- pmd
- 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
Images
Classifications
-
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种用于处理器的内存管理单元和内存管理方法。内存管理单元包括转换控制单元。转换控制单元包括:PTE缓存,用于缓存虚拟地址与物理地址之间的映射关系,PTE缓存包括多个PTE缓存库;PTE仲裁模块,用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库。转换控制单元被配置为并行地在多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。本申请实施例内存管理单元能够同时对多个PTE缓存库并行查找,从而有效提高了地址转换请求的处理效率。
Description
技术领域
本申请涉及计算机系统技术领域,具体涉及一种内存管理单元和内存管理方法。
背景技术
内存管理单元MMU(Memory Management Unit)是现代芯片中必不可少的一个单元,服务于CPU、GPU等处理器。通过对虚拟内存的管理,使得处理器可以使用比实际的物理内存更多的存储空间。
当处理器需要去内存中获取指令或者数据的时候,会发出一个虚拟地址,虚拟地址不需要与实际硬件的物理地址完全一致,而是通过MMU将虚拟地址映射到对应的物理地址,最终通过此映射后的物理地址,处理器可以获得指令和数据。
为了加快MMU的转换速率,虚拟地址与物理地址对应表的一部分通常保存在一块单独的高速缓存中,通常称为转换旁路缓冲器TLB(Translation Lookaside Buffer)。当TLB中查找不到需要转换的虚拟地址时,会去内存中查找虚拟地址与物理地址总的对应表。当多进程同时并发运行在实际物理内存空间中时,MMU充当了一个至关重要的虚拟内存到物理内存的桥梁作用。目前操作系统均使用分页机制来对内存进行管理。所谓分页机制是指虚拟内存空间以及物理内存空间都使用固定大小的分区进行映射管理。从应用程序(进程)角度看内存是连续的0至N的分页的虚拟地址空间。若虚拟地址与物理地址的映射表采用三级表的话,则将一个虚拟地址转化成物理地址需要三次查询,会有较大开销。当进程中有非常多的地址转换需求时,MMU会成为芯片性能提升的一个瓶颈点。具体而言,当多个TLB查询失败后会向MMU的转换控制单元TLC(Translation Lookup Control)发出转换请求,但TLC中仅允许一笔传输进行查询。现有MMU最大可以配置为两个stage、四级页表(pagetable),也就是说会串行进行八次cache的查找。在缓存未命中的情况下需要去外部存储器中获取页表的条目。对于一笔传输,最差的情况需要去外部存储器中取八次才能得到最终的物理地址,整个地址转换过程的延迟较高。在有大量地址传输请求的时候延迟会变得难以接受,这会使得MMU成为芯片性能提升的一个较大的瓶颈点。
因此,需要提出一种能够显著降低地址查询延迟的内存管理单元。
发明内容
本申请提供一种内存管理单元和内存管理方法,其能够显著降低地址查询延迟。
根据本申请的一方面,提供了一种用于处理器的内存管理单元,包括转换控制单元,转换控制单元包括:
PTE缓存,用于缓存虚拟地址与物理地址之间的映射关系,PTE缓存包括多个PTE缓存库;
PTE仲裁模块,用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库,
其中,转换控制单元被配置为并行地在多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。
根据本申请的一些实施例,PTE缓存包括四个PTE缓存库,PTE仲裁模块用于根据地址转换请求中的虚拟地址中第一预设位置的2比特的值,将每个转换请求分配给四个PTE缓存库中的一个PTE缓存库。
根据本申请的一些实施例,PTE仲裁模块包括对应于每个PTE缓存库的FIFO缓存,用于缓存分配的地址转换请求。
根据本申请的一些实施例,转换控制单元还包括:
PMD缓存,用于缓存虚拟地址与PTE页表的基地址的映射关系,PMD缓存包括多个PMD缓存库;
PMD仲裁模块,用于在PTE缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库,
其中,转换控制单元还被配置为并行地在多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器中获得对应的物理地址。
根据本申请的一些实施例,PMD缓存包括四个PMD缓存库,PMD仲裁模块用于根据地址转换请求中的虚拟地址中第二预设位置的2比特的值,将每个转换请求分配给四个PMD缓存库中的一个PMD缓存库。
根据本申请的一些实施例,PMD仲裁模块包括对应于每个PMD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
根据本申请的一些实施例,转换控制单元还包括:
PUD缓存,用于缓存虚拟地址与PMD页表的基地址的映射关系,PUD缓存包括多个PUD缓存库;
PUD仲裁模块,用于在PMD缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库,
其中,转换控制单元还被配置为并行地在多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址,并根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,然后根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
根据本申请的一些实施例,PUD缓存包括两个PUD缓存库,PUD仲裁模块用于根据地址转换请求中的虚拟地址中第三预设位置的1比特的值,将每个转换请求分配给两个PUD缓存库中的一个PUD缓存库。
根据本申请的一些实施例,PUD仲裁模块包括对应于每个PUD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
根据本申请的一些实施例,转换控制单元还包括:
PGD缓存,用于缓存虚拟地址与PUD页表的基地址的映射关系,PGD缓存包括多个PGD缓存库;
PGD仲裁模块,用于在PMD缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库,
其中,转换控制单元还被配置为并行地在多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址,并根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的地址转换请求中的虚拟地址以及PMD页表的基地址,然后根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
根据本申请的一些实施例,PGD缓存包括两个PGD缓存库,PGD仲裁模块用于根据地址转换请求中的虚拟地址中第四预设位置的1比特的值,将每个转换请求分配给两个PGD缓存库中的一个PGD缓存库。
根据本申请的一些实施例,PGD仲裁模块包括对应于每个PGD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
根据本申请的一方面,提供了一种用于处理器的内存管理方法,该方法以上描述的内存管理单元执行并且包括:
接收多个地址转换请求;
根据多个地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库;
并行地在多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。
根据本申请的一些实施例,该方法包括:
针对在多个PTE缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库;
并行地在多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器中获得对应的物理地址。
根据本申请的一些实施例,该方法包括:
针对在多个PMD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库;
并行地在多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址;
根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
根据本申请的一些实施例,该方法包括:
针对在多个PUD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库;
并行地在多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址;
根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址;
根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
根据本申请的一些实施例,该方法包括,
针对在多个PGD缓存库的查找中未命中的地址转换请求:
根据StreamID获得对应的PGD页表的基地址;
根据地址转换请求的虚拟地址中的PGD页表的index以及PGD页表的基地址从外部存储器中获得对应的PUD页表的基地址;
根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址;
根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
根据本申请的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行以上描述的方法。
根据本申请实施例的内存管理单元具有多个PTE缓存库、PMD缓存库、PUD缓存库和/或PGD缓存库,使得转换控制单元能够并行地从多个PTE缓存库、PMD缓存库、PUD缓存库和/或PGD缓存库中进行查找,从而提高了地址转换请求的处理效率,降低了地址转换的延迟,提高了处理器的处理效率。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
图1是根据示例性实施例的内存管理单元的结构框图;
图2是根据示例性实施例的内存管理方法的流程图;
图3A和图3B是现有技术中内存管理单元的时序示意图;
图4A和图4B是根据示例性实施例的内存管理单元的时序示意图。
具体实施方式
在本申请中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本申请中对各种示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。如本文使用的,术语“多个”意指两个或更多,并且术语“基于”应解释为“至少部分地基于”。此外,术语“和/或”以及“……中的至少一个”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
图1根据示例性实施例的内存管理单元的结构框图。如图1所示,内存管理单元MMU包括转换控制单元TLC以及多个转换旁路缓冲器TLB。每个转换旁路缓冲器用于一个特定的Master进程,用于存储该Master进程常用的虚拟地址与物理地址的映射关系。转换控制单元用于控制虚拟地址与物理地址的转换,根据进程发来的地址转换请求,查找到请求的虚拟地址对应的物理地址并返回给进程。
根据本申请的实施例,转换控制单元包括PTE(Page Table Entry)缓存和PTE仲裁模块。PTE缓存用于缓存虚拟地址与物理地址之间的映射关系。PTE缓存包括多个PTE缓存库,多个PTE缓存库支持并行查询。可以根据PTE缓存的内容的物理地址信息(例如虚拟地址中的预设位置的一个或多个比特),将缓存的内容在多个PTE缓存库中分配。PTE仲裁模块用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库。在本实施例中,PTE缓存包括四个PTE缓存库,PTE仲裁模块根据地址转换请求中的虚拟地址中第一预设位置的2比特的值,将每个转换请求分配给四个PTE缓存库中的一个PTE缓存库。PTE仲裁模块可以包括对应于每个PTE缓存库的FIFO缓存,用于缓存分配的地址转换请求。
在芯片的运行过程中,多个Master进程都会产生各自的地址转换请求。当这些Master进程在其转换旁路缓冲器TLB中的查找未能命中时,转换请求首先被传送到PTE仲裁模块。PTE仲裁模块根据各个地址转换请求中的虚拟地址,将这些转换请求分配给多个PTE缓存库。转换控制单元被配置为并行地在多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则可以从PTE缓存库中获得对应的物理地址。
由于本实施例中的PTE缓存中包括了四个可并行查找的PTE缓存库,因此转换控制单元能够同时对四个PTE缓存库并行查找。当内存管理单元需要处理大量地址转换请求时,现有技术中的内存管理单元在一个时钟周期仅能处理一个地址转换请求,而本实施例的内存管理单元和内存管理方法可以有效提高地址转换请求的处理效率,降低地址转换延迟,从而能够提高处理器的运行效率。
在图1示出的内存管理单元MMU的结构框图中,转换控制单元TLC还可以进一步包括PMD(Page Middle Directory)缓存和PMD仲裁模块。PMD缓存用于缓存虚拟地址与PTE页表的基地址的映射关系。PMD用于缓存虚拟地址与PTE页表的基地址的映射关系。PMD缓存包括多个PMD缓存库,多个PMD缓存库支持并行查询。可以根据PMD缓存的内容的虚拟地址信息(例如虚拟地址中的预设位置的一个或多个比特),将缓存的内容在多个PMD缓存库中分配。PMD仲裁模块用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库。在本实施例中,PMD缓存包括四个PMD缓存库,PMD仲裁模块根据地址转换请求中的虚拟地址中第二预设位置的2比特的值,将每个转换请求分配给四个PMD缓存库中的一个PMD缓存库。PTE仲裁模块可以包括对应于每个PMD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
以上结合PTE仲裁模块和PTE缓存已经描述了转换控制单元并行地在多个PTE缓存库中对分配的地址转换请求进行查找的过程。当在PTE缓存库中的查找未命中时,转换控制单元还被配置为并行地在多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址。转换控制单元可以进一步根据地址转换请求的虚拟地址中的PTE页表的index(即页表内的偏移量)以及PTE页表的基地址从外部存储器中获得转换请求对应的物理地址。
由于本实施例中的PMD缓存中包括了四个可并行查找的PMD缓存库,因此转换控制单元能够同时对四个PMD缓存库并行查找,有效提高了地址转换请求的处理效率,进而提高了处理器的运行效率。
在图1示出的内存管理单元的结构框图中,转换控制单元还可以进一步包括PUD(Page Upper Directory)缓存和PUD仲裁模块。PUD用于缓存虚拟地址与PMD页表的基地址的映射关系。PUD缓存包括多个PUD缓存库,多个PUD缓存库支持并行查询。可以根据PUD缓存的内容的虚拟地址信息(例如虚拟地址中的预设位置的一个或多个比特),将缓存的内容在多个PUD缓存库中分配。PUD仲裁模块用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库。在本实施例中,PUD缓存包括两个PUD缓存库,PUD仲裁模块根据地址转换请求中的虚拟地址中第三预设位置的1比特的值,将每个转换请求分配给两个PUD缓存库中的一个PUD缓存库。PUD仲裁模块可以包括对应于每个PUD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
以上结合PMD仲裁模块和PMD缓存已经描述了转换控制单元并行地在多个PMD缓存库中对分配的地址转换请求进行查找的过程。当在PMD缓存库中的查找未命中时,转换控制单元还被配置为并行地在多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址。转换控制单元可以进一步根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,然后根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
由于本实施例中的PUD缓存中包括了两个可并行查找的PUD缓存库,因此转换控制单元能够同时对两个PUD缓存库并行查找,有效提高了地址转换请求的处理效率,进而提高了处理器的运行效率。
在图1示出的内存管理单元的结构框图中,转换控制单元还可以进一步包括PGD(Page Global Directory)缓存和PGD仲裁模块。PGD用于缓存虚拟地址与PUD页表的基地址的映射关系。PGD缓存包括多个PGD缓存库,多个PGD缓存库支持并行查询。可以根据PGD缓存的内容的虚拟地址信息(例如虚拟地址中的预设位置的一个或多个比特),将缓存的内容在多个PGD缓存库中分配。PGD仲裁模块用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库。在本实施例中,PGD缓存包括两个PGD缓存库,PGD仲裁模块根据地址转换请求中的虚拟地址中第四预设位置的1比特的值,将每个转换请求分配给两个PGD缓存库中的一个PGD缓存库。PGD仲裁模块可以包括对应于每个PGD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
以上结合PUD仲裁模块和PUD缓存已经描述了转换控制单元并行地在多个PUD缓存库中对分配的地址转换请求进行查找的过程。当在PUD缓存库中的查找未命中时,转换控制单元还被配置为并行地在多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址。转换控制单元可以进一步根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址,然后根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
由于本实施例中的PGD缓存中包括了两个可并行查找的PGD缓存库,因此转换控制单元能够同时对两个PGD缓存库并行查找,有效提高了地址转换请求的处理效率,进而提高了处理器的运行效率。
图2是根据示例性实施例的内存管理方法的流程图。根据本申请实施例的内存管理方法可以由根据本申请实施例的芯片管理单元实现。
如图2所示,根据本申请实施例的方法包括:
步骤110:接收多个地址转换请求;
步骤111:根据多个地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库;
步骤112:并行地在多个PTE缓存库中对分配的地址转换请求进行查找,
步骤113:若命中,则获得对应的物理地址。
在步骤110中,接收多个地址转换请求。多个地址转换请求是从多个Master(例如Master 0至Master 3)进程对应的TLB(例如TLB0至TLB3)接收的。当Master进程的转换请求在相应的TLB中查找未命中时,则需要将转换请求发送给转换控制单元TLC进行处理。
在步骤111中,根据多个地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库。步骤111由转换控制单元中的PTE仲裁模块执行。PTE仲裁模块根据每个转换请求中的虚拟地址中的第一预设位置的例如2比特的值,将转换请求压入相应TLB对应的PTE缓存库的FIFO缓存中。例如,当第一预设位置的2比特值为00时,转换请求被压入此TLB所用PTE缓存库0的FIFO缓存中;当第一预设位置的2比特值为01时,转换请求被压入此TLB所用PTE缓存库1的FIFO缓存中;当第一预设位置的2比特值为10时,转换请求被压入此TLB所用PTE缓存库2的FIFO缓存中;当第一预设位置的2比特值为11时,转换请求被压入此TLB所用PTE缓存库3的FIFO缓存中。
在步骤112和步骤113中,并行地在多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。步骤112由转换控制单元执行。转换控制单元首先从多个PTE缓存库的FIFO缓存中轮询选出转换请求并提供给相应的PTE缓存库(PTE缓存库0至3)。然后,转换控制单元并行地在多个PTE缓存库中对分配的地址转换请求进行查找。具体地,转换控制单元可以并行地在多个PTE缓存库中对比PTE Tag,若命中,则对应的物理地址已存储在PTE缓存库中,转换控制单元可以在步骤113中从PTE缓存库中获得物理地址并返回给对应的TLB。若未命中,则进入PMD仲裁模块对地址转换请求进行处理。
如图2所示,在PTE缓存库中查找未命中的情况下,根据本申请实施例的方法还可以包括:
步骤121:针对在多个PTE缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库;
步骤122:并行地在多个PMD缓存库中对分配的地址转换请求进行查找;
步骤123:若命中,则获得相应的PTE页表的基地址;
步骤124:根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
在步骤121中,针对在多个PTE缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库。步骤121由转换控制单元中的PMD仲裁模块执行。PMD仲裁模块根据每个转换请求中的虚拟地址中的第二预设位置的例如2比特的值,将转换请求压入PTE对应的PMD缓存库的FIFO缓存中。例如,当第二预设位置的2比特值为00时,转换请求被压入此PTE所用PMD缓存库0的FIFO缓存中;当第二预设位置的2比特值为01时,转换请求被压入此PTE所用PMD缓存库1的FIFO缓存中;当第二预设位置的2比特值为10时,转换请求被压入此PTE所用PMD缓存库2的FIFO缓存中;当第二预设位置的2比特值为11时,转换请求被压入此PTE所用PMD缓存库3的FIFO缓存中。
在步骤122和步骤123中,并行地在多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址。步骤122由转换控制单元执行。转换控制单元首先从多个PMD缓存库的FIFO缓存中轮询选出转换请求并提供给相应的PMD缓存库(PTE缓存库0至3)。然后,转换控制单元并行地在多个PMD缓存库中对分配的地址转换请求进行查找。具体地,转换控制单元可以并行地在多个PMD缓存库中对比PMD Tag,若命中,则对应的PTE页表的基地址已存储在PMD缓存库中,转换控制单元可以在步骤123中从PMD缓存库中获得对应的PTE页表的基地址。若未命中,则进入PUD仲裁模块对地址转换请求进行处理。
在步骤124中,根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。如果在四个PMD缓存库中的查找都命中,则获得四个PTE页表的基地址。转换控制单元可以根据四个PTE页表的基地址四路并行地从外部存储器获取PTE页表项中的物理地址,并将物理地址返回给对应的TLB。
如图2所示,在PMD缓存库中查找未命中的情况下,根据本申请实施例的方法还可以包括:
步骤131:针对在多个PMD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库;
步骤132:并行地在多个PUD缓存库中对分配的地址转换请求进行查找;
步骤133:若命中,则获得相应的PMD页表的基地址;
步骤134:根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
步骤135:根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
在步骤131中,针对在多个PMD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库。步骤131由转换控制单元中的PUD仲裁模块执行。PUD仲裁模块根据每个转换请求中的虚拟地址中的第三预设位置的例如1比特的值,将转换请求压入PMD对应的PUD缓存库的FIFO缓存中。例如,当第三预设位置的1比特值为0时,转换请求被压入此PMD所用PUD缓存库0的FIFO缓存中;当第三预设位置的1比特值为1时,转换请求被压入此PMD所用PUD缓存库1的FIFO缓存中。
在步骤132和步骤133中,并行地在多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址。步骤132由转换控制单元执行。转换控制单元首先从多个PUD缓存库的FIFO缓存中轮询选出转换请求并提供给相应的PUD缓存库(PUD缓存库0和1)。然后,转换控制单元并行地在多个PUD缓存库中对分配的地址转换请求进行查找。具体地,转换控制单元可以并行地在多个PUD缓存库中对比PUD Tag,若命中,则对应的PMD页表的基地址已存储在PUD缓存库中,转换控制单元可以在步骤133中从PUD缓存库中获得对应的PMD页表的基地址。若未命中,则进入PGD仲裁模块对地址转换请求进行处理。
在步骤134中,根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址。如果在两个PMD缓存库中的查找都命中,则获得两个PMD页表的基地址。转换控制单元可以根据两个PMD页表的基地址两路并行地从外部存储器中获取PTE页表的基地址。
在步骤135中,根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。转换控制单元可以根据两个PTE页表的基地址两路并行地从外部存储器获取PTE页表项中的物理地址,并将物理地址返回给对应的TLB。
如图2所示,在PUD缓存库中查找未命中的情况下,根据本申请实施例的方法还可以包括:
步骤141:针对在多个PUD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库;
步骤142:并行地在多个PGD缓存库中对分配的地址转换请求进行查找;
步骤143:若命中,则获得相应的PUD页表的基地址;
步骤144:根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址;
步骤145:根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
步骤146:根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
在步骤141中,针对在多个PUD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库。步骤131由转换控制单元中的PGD仲裁模块执行。PGD仲裁模块根据每个转换请求中的虚拟地址中的第四预设位置的例如1比特的值,将转换请求压入PUD对应的PGD缓存库的FIFO缓存中。例如,当第四预设位置的1比特值为0时,转换请求被压入此PUD所用PGD缓存库0的FIFO缓存中;当第四预设位置的1比特值为1时,转换请求被压入此PUD所用PGD缓存库1的FIFO缓存中。
在步骤142中,并行地在多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址。步骤142由转换控制单元执行。转换控制单元首先从多个PGD缓存库的FIFO缓存中轮询选出转换请求并提供给相应的PGD缓存库(PGD缓存库0和1)。然后,转换控制单元并行地在多个PGD缓存库中对分配的地址转换请求进行查找。具体地,转换控制单元可以并行地在多个PGD缓存库中对比PGD Tag,若命中,则对应的PUD页表的基地址已存储在PGD缓存库中,转换控制单元可以在步骤143中从PGD缓存库中获得对应的PUD页表的基地址。若未命中,则进入到步骤151至步骤155。
在步骤144中,根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址。如果在两个PGD缓存库中的查找都命中,则获得两个PUD页表的基地址。转换控制单元可以根据两个PUD页表的基地址两路并行地从外部存储器中获取PMD页表的基地址。
在步骤145中,根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器获得对应的PTE页表的基地址。转换控制单元可以根据两个PMD页表的基地址两路并行地从外部存储器获取PTE页表的基地址。
在步骤146中,根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。转换控制单元可以根据两个PTE页表的基地址两路并行地从外部存储器获取PTE页表项中的物理地址,并将物理地址返回给对应的TLB。
如图2所示,在PGD缓存库中查找未命中的情况下,根据本申请实施例的方法还可以包括:
步骤151:根据StreamID获得对应的PGD页表的基地址;
步骤152:根据地址转换请求的虚拟地址中的PGD页表的index以及PGD页表的基地址从外部存储器中获得对应的PUD页表的基地址;
步骤153:根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址;
步骤154:根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
步骤155:根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
在步骤151中,根据StreamID获得对应的PGD页表的基地址。StreamID表征是哪个master进程发出的地址转换请求。每一个streamID对应着一个PGD页表项。
在步骤152中,根据地址转换请求的虚拟地址中的PGD页表的index以及PGD页表的基地址从外部存储器中获得对应的PUD页表的基地址。转换控制单元根据地址转换请求的虚拟地址中的PGD页表的index以及PGD页表的基地址,从外部存储器中的PGD页表项中获得对应的PUD页表的基地址。
在步骤153中,根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址。转换控制单元根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址,从外部存储器中的PUD页表项中获得对应的PMD页表的基地址。
在步骤154中,根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址。转换控制单元根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址,从外部存储器中的PMD页表项中获得对应的PTE页表的基地址。
在步骤155中,根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。转换控制单元根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址,从外部存储器中的PTE页表项中获得对应的物理地址,并将物理地址返还给对应的TLB。
根据本申请实施例的内存管理方法可以并行地从多个PTE缓存库、PMD缓存库、PUD缓存库和/或PGD缓存库中进行查找,从而提高了地址转换请求的处理效率,降低了地址转换延迟,进而提高了处理器的处理效率。
根据本申请的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使处理器执行以上描述的内存管理方法。
图3A和图3B是现有技术中内存管理单元的时序示意图,图3B的时序示意图在时间上紧接着图3A的时序示意图。图4A和图4B是根据示例性实施例的内存管理单元的时序示意图,图4B的时序示意图在时间上紧接着图4A的时序示意图。
在图3A图3B以及图4A和图4B中,内存管理单元中均包括连接到同一个转换管理单元TLC的4个TLB(TLB0,TLB1, TLB2, TLB3),这4个TLB同时发出地址转换请求。
如果4个TLB均不需要访问外部存储器,即4个地址转换请求均在PTE缓存中命中时,则延迟最小的情况是图3A和图3B中的TLB0,从发出0x100000虚拟地址到收到TLC返回转换后的0x900000物理地址需要两个时钟周期;延迟最大是图3A和图3B中的TLB3,从发出0x400000虚拟地址到收到TLC返回的0x600000物理地址需要五个时钟周期。
同样的情况下,如图4A和图4B所示,若使用根据本申请实施例的MMU,如果4个TLB发出的地址转换请求均不需要访问外部存储器,4个TLB均可以在最小延迟(两个时钟周期)后收到TLC返回转换后的地址。
如果4个TLB发出的地址转换请求(虚拟地址为0x110000, 0x210000, 0x310000,0x410000)均发生PTE缓存不命中,但PMD缓存命中。假设从外部存储器中读回一次数据需要10个时钟周期。则延迟最小的情况是图3A和图3B中的TLB0,从发出0x110000虚拟地址到收到TLC返回转换后的0x910000物理地址需要3+10个时钟周期。延迟最大是图3A和图3B中的TLB3,从发出0x410000虚拟地址到收到TLC返回的0x620000物理地址需要6+10个时钟周期。
同样的情况下,如图4A和图4B所示,若使用根据本申请实施例的MMU,4个TLB均可以在最小延迟(3+10个时钟周期)后收到TLC返回转换后的地址。
通过比较图3A和图3B以及图4A和图4B的时序示意图可知,根据本申请实施例的MMU具有4路并行查找的能力,能有效减小地址转换的延迟,从而显著提升处理器的性能。
虽然在附图和前面的描述中已经详细地说明和描述了本申请,但是这样的说明和描述应当被认为是说明性的和示意性的,而非限制性的;本申请不限于所公开的实施例。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。在权利要求书中,词语“包括”不排除未列出的其他元件或步骤,术语“多个”是指两个或两个以上,并且术语“基于”应解释为“至少部分地基于”。在相互不同的从属权利要求中记载了某些措施的仅有事实并不表明这些措施的组合不能用来获益。
Claims (18)
1.一种用于处理器的内存管理单元,包括转换控制单元,其特征在于,所述转换控制单元包括:
PTE缓存,用于缓存虚拟地址与物理地址之间的映射关系,所述PTE缓存包括多个PTE缓存库;
PTE仲裁模块,用于根据地址转换请求中的虚拟地址,将每个转换请求分配给所述多个PTE缓存库中的一个PTE缓存库,
其中,所述转换控制单元被配置为并行地在所述多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。
2.根据权利要求1所述的内存管理单元,其特征在于,所述PTE缓存包括四个PTE缓存库,所述PTE仲裁模块用于根据地址转换请求中的虚拟地址中第一预设位置的2比特的值,将每个转换请求分配给所述四个PTE缓存库中的一个PTE缓存库。
3.根据权利要求1所述的内存管理单元,其特征在于,所述PTE仲裁模块包括对应于每个PTE缓存库的FIFO缓存,用于缓存分配的地址转换请求。
4.根据权利要求1所述的内存管理单元,其特征在于,所述转换控制单元还包括:
PMD缓存,用于缓存虚拟地址与PTE页表的基地址的映射关系,所述PMD缓存包括多个PMD缓存库;
PMD仲裁模块,用于在PTE缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给所述多个PMD缓存库中的一个PMD缓存库,
其中,所述转换控制单元还被配置为并行地在所述多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器中获得对应的物理地址。
5.根据权利要求4所述的内存管理单元,其特征在于,所述PMD缓存包括四个PMD缓存库,所述PMD仲裁模块用于根据地址转换请求中的虚拟地址中第二预设位置的2比特的值,将每个转换请求分配给所述四个PMD缓存库中的一个PMD缓存库。
6.根据权利要求4所述的内存管理单元,其特征在于,所述PMD仲裁模块包括对应于每个PMD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
7.根据权利要求4所述的内存管理单元,其特征在于,所述转换控制单元还包括:
PUD缓存,用于缓存虚拟地址与PMD页表的基地址的映射关系,所述PUD缓存包括多个PUD缓存库;
PUD仲裁模块,用于在PMD缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给所述多个PUD缓存库中的一个PUD缓存库,
其中,所述转换控制单元还被配置为并行地在所述多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址,并根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,然后根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
8.根据权利要求7所述的内存管理单元,其特征在于,所述PUD缓存包括两个PUD缓存库,所述PUD仲裁模块用于根据地址转换请求中的虚拟地址中第三预设位置的1比特的值,将每个转换请求分配给所述两个PUD缓存库中的一个PUD缓存库。
9.根据权利要求7所述的内存管理单元,其特征在于,所述PUD仲裁模块包括对应于每个PUD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
10.根据权利要求7所述的内存管理单元,其特征在于,所述转换控制单元还包括:
PGD缓存,用于缓存虚拟地址与PUD页表的基地址的映射关系,所述PGD缓存包括多个PGD缓存库;
PGD仲裁模块,用于在PMD缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给所述多个PGD缓存库中的一个PGD缓存库,
其中,所述转换控制单元还被配置为并行地在所述多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址,并根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址,然后根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
11.根据权利要求10所述的内存管理单元,其特征在于,所述PGD缓存包括两个PGD缓存库,所述PGD仲裁模块用于根据地址转换请求中的虚拟地址中第四预设位置的1比特的值,将每个转换请求分配给所述两个PGD缓存库中的一个PGD缓存库。
12.根据权利要求10所述的内存管理单元,其特征在于,所述PGD仲裁模块包括对应于每个PGD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
13.一种用于处理器的内存管理方法,其特征在于,所述方法由根据权利要求1至12中任一项所述的内存管理单元执行并且包括:
接收多个地址转换请求;
根据所述多个地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库;
并行地在所述多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。
14.根据权利要求13所述的方法,其特征在于,所述方法包括:
针对在所述多个PTE缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库;
并行地在所述多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器中获得对应的物理地址。
15.根据权利要求14所述的方法,其特征在于,所述方法包括:
针对在所述多个PMD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库;
并行地在所述多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址;
根据地址转换请求中的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
根据地址转换请求中的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
16.根据权利要求15所述的方法,其特征在于,所述方法包括:
针对在所述多个PUD缓存库的查找中未命中的地址转换请求,根据其虚拟地址将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库;
并行地在所述多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址;
根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址;
根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
17.根据权利要求16所述的方法,其特征在于,所述方法包括,
针对在所述多个PGD缓存库的查找中未命中的地址转换请求:
根据StreamID获得对应的PGD页表的基地址;
根据地址转换请求的虚拟地址中的PGD页表的index以及PGD页表的基地址从外部存储器中获得对应的PUD页表的基地址;
根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的PMD页表的基地址;
根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址;
根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
18.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使所述处理器执行权利要求13至17中任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310249254.6A CN115934587B (zh) | 2023-03-15 | 2023-03-15 | 内存管理单元和内存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310249254.6A CN115934587B (zh) | 2023-03-15 | 2023-03-15 | 内存管理单元和内存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115934587A true CN115934587A (zh) | 2023-04-07 |
CN115934587B CN115934587B (zh) | 2023-05-12 |
Family
ID=85825581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310249254.6A Active CN115934587B (zh) | 2023-03-15 | 2023-03-15 | 内存管理单元和内存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115934587B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150220481A1 (en) * | 2014-02-03 | 2015-08-06 | Fujitsu Limited | Arithmetic processing apparatus, information processing apparatus, and control method of arithmetic processing apparatus |
CN106649149A (zh) * | 2015-10-28 | 2017-05-10 | 福州瑞芯微电子股份有限公司 | 实现地址映射的内存管理系统及方法 |
US20180203807A1 (en) * | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
US20190258415A1 (en) * | 2018-02-22 | 2019-08-22 | Fujitsu Limited | Information processing apparatus and method for processing information |
CN112241310A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
CN113326094A (zh) * | 2020-04-08 | 2021-08-31 | 阿里巴巴集团控股有限公司 | 宿主机的内存映射方法、装置、电子设备及计算机可读介质 |
CN114741338A (zh) * | 2022-06-06 | 2022-07-12 | 飞腾信息技术有限公司 | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 |
CN114816666A (zh) * | 2022-04-25 | 2022-07-29 | 科东(广州)软件科技有限公司 | 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统 |
CN115617542A (zh) * | 2022-10-11 | 2023-01-17 | 阿里巴巴(中国)有限公司 | 内存交换方法、装置、计算机设备及存储介质 |
CN115658564A (zh) * | 2022-10-31 | 2023-01-31 | 龙芯中科技术股份有限公司 | 地址变换高速缓存控制方法、装置、设备及介质 |
CN115774683A (zh) * | 2022-11-02 | 2023-03-10 | 平头哥(上海)半导体技术有限公司 | 用于超级用户模式中获取物理地址的方法及相应处理器 |
-
2023
- 2023-03-15 CN CN202310249254.6A patent/CN115934587B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150220481A1 (en) * | 2014-02-03 | 2015-08-06 | Fujitsu Limited | Arithmetic processing apparatus, information processing apparatus, and control method of arithmetic processing apparatus |
CN106649149A (zh) * | 2015-10-28 | 2017-05-10 | 福州瑞芯微电子股份有限公司 | 实现地址映射的内存管理系统及方法 |
US20180203807A1 (en) * | 2017-01-13 | 2018-07-19 | Arm Limited | Partitioning tlb or cache allocation |
US20190258415A1 (en) * | 2018-02-22 | 2019-08-22 | Fujitsu Limited | Information processing apparatus and method for processing information |
CN113326094A (zh) * | 2020-04-08 | 2021-08-31 | 阿里巴巴集团控股有限公司 | 宿主机的内存映射方法、装置、电子设备及计算机可读介质 |
CN112241310A (zh) * | 2020-10-21 | 2021-01-19 | 海光信息技术股份有限公司 | 页表管理、信息获取方法、处理器、芯片、设备及介质 |
CN114816666A (zh) * | 2022-04-25 | 2022-07-29 | 科东(广州)软件科技有限公司 | 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统 |
CN114741338A (zh) * | 2022-06-06 | 2022-07-12 | 飞腾信息技术有限公司 | 旁路转换缓存器、数据更新方法、内存管理单元及芯片 |
CN115617542A (zh) * | 2022-10-11 | 2023-01-17 | 阿里巴巴(中国)有限公司 | 内存交换方法、装置、计算机设备及存储介质 |
CN115658564A (zh) * | 2022-10-31 | 2023-01-31 | 龙芯中科技术股份有限公司 | 地址变换高速缓存控制方法、装置、设备及介质 |
CN115774683A (zh) * | 2022-11-02 | 2023-03-10 | 平头哥(上海)半导体技术有限公司 | 用于超级用户模式中获取物理地址的方法及相应处理器 |
Non-Patent Citations (2)
Title |
---|
肖建青;李红桥;张洵颖;龚龙庆;: "SPARC V8处理器中存储管理单元的设计", 科学技术与工程 * |
郝继锋;: "嵌入式虚拟机管理器内存虚拟化方法研究", 航空计算技术 * |
Also Published As
Publication number | Publication date |
---|---|
CN115934587B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310987B2 (en) | Systems and methods for accessing a unified translation lookaside buffer | |
EP0642086B1 (en) | Virtual address to physical address translation cache that supports multiple page sizes | |
US6014732A (en) | Cache memory with reduced access time | |
US6675282B2 (en) | System and method for employing a global bit for page sharing in a linear-addressed cache | |
US20020133672A1 (en) | Cache way prediction based on instruction base register | |
US8335908B2 (en) | Data processing apparatus for storing address translations | |
EP3151125A1 (en) | Shared cache protocol for parallel search and replacement | |
CN111949572A (zh) | 页表条目合并方法、装置及电子设备 | |
CN112416817B (zh) | 预取方法、信息处理装置、设备以及存储介质 | |
US11803482B2 (en) | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system | |
WO2021061446A1 (en) | Storage management apparatus, storage management method, processor, and computer system | |
US20100100702A1 (en) | Arithmetic processing apparatus, TLB control method, and information processing apparatus | |
US6851038B1 (en) | Background fetching of translation lookaside buffer (TLB) entries | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
US7024536B2 (en) | Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same | |
KR102482516B1 (ko) | 메모리 어드레스 변환 | |
JP2018514861A (ja) | バースト変換ルックアサイドバッファ | |
CN115934587B (zh) | 内存管理单元和内存管理方法 | |
CN116594925A (zh) | 一种地址转换系统、处理器、地址转换方法及电子设备 | |
US6567907B1 (en) | Avoiding mapping conflicts in a translation look-aside buffer | |
WO2021008552A1 (zh) | 数据读取方法和装置、计算机可读存储介质 | |
US6674441B1 (en) | Method and apparatus for improving performance of an accelerated graphics port (AGP) device | |
JP2008511882A (ja) | 一意のタスク識別子を用いてデータを共用する仮想アドレス・キャッシュ及び方法 | |
US7293157B1 (en) | Logically partitioning different classes of TLB entries within a single caching structure | |
EP0611462B1 (en) | Memory unit including a multiple write cache |
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 |