内存管理单元和内存管理方法技术

技术编号:37236429 阅读:26 留言:0更新日期:2023-04-20 23:18
本申请提供一种用于处理器的内存管理单元和内存管理方法。内存管理单元包括转换控制单元。转换控制单元包括:PTE缓存,用于缓存虚拟地址与物理地址之间的映射关系,PTE缓存包括多个PTE缓存库;PTE仲裁模块,用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库。转换控制单元被配置为并行地在多个PTE缓存库中对分配的地址转换请求进行查找,若命中,则获得对应的物理地址。本申请实施例内存管理单元能够同时对多个PTE缓存库并行查找,从而有效提高了地址转换请求的处理效率。址转换请求的处理效率。址转换请求的处理效率。

【技术实现步骤摘要】
内存管理单元和内存管理方法


[0001]本申请涉及计算机系统
,具体涉及一种内存管理单元和内存管理方法。

技术介绍

[0002]内存管理单元MMU(Memory Management Unit)是现代芯片中必不可少的一个单元,服务于CPU、GPU等处理器。通过对虚拟内存的管理,使得处理器可以使用比实际的物理内存更多的存储空间。
[0003]当处理器需要去内存中获取指令或者数据的时候,会发出一个虚拟地址,虚拟地址不需要与实际硬件的物理地址完全一致,而是通过MMU将虚拟地址映射到对应的物理地址,最终通过此映射后的物理地址,处理器可以获得指令和数据。
[0004]为了加快MMU的转换速率,虚拟地址与物理地址对应表的一部分通常保存在一块单独的高速缓存中,通常称为转换旁路缓冲器TLB(Translation Lookaside Buffer)。当TLB中查找不到需要转换的虚拟地址时,会去内存中查找虚拟地址与物理地址总的对应表。当多进程同时并发运行在实际物理内存空间中时,MMU充当了一个至关重要的虚拟内存到物理内存的桥梁作用。目前操作系统均使用分页机制来对内存进行管理。所谓分页机制是指虚拟内存空间以及物理内存空间都使用固定大小的分区进行映射管理。从应用程序(进程)角度看内存是连续的0至N的分页的虚拟地址空间。若虚拟地址与物理地址的映射表采用三级表的话,则将一个虚拟地址转化成物理地址需要三次查询,会有较大开销。当进程中有非常多的地址转换需求时,MMU会成为芯片性能提升的一个瓶颈点。具体而言,当多个TLB查询失败后会向MMU的转换控制单元TLC(Translation Lookup Control)发出转换请求,但TLC中仅允许一笔传输进行查询。现有MMU最大可以配置为两个stage、四级页表(page table),也就是说会串行进行八次cache的查找。在缓存未命中的情况下需要去外部存储器中获取页表的条目。对于一笔传输,最差的情况需要去外部存储器中取八次才能得到最终的物理地址,整个地址转换过程的延迟较高。在有大量地址传输请求的时候延迟会变得难以接受,这会使得MMU成为芯片性能提升的一个较大的瓶颈点。
[0005]因此,需要提出一种能够显著降低地址查询延迟的内存管理单元。

技术实现思路

[0006]本申请提供一种内存管理单元和内存管理方法,其能够显著降低地址查询延迟。
[0007]根据本申请的一方面,提供了一种用于处理器的内存管理单元,包括转换控制单元,转换控制单元包括:PTE缓存,用于缓存虚拟地址与物理地址之间的映射关系,PTE缓存包括多个PTE缓存库;PTE仲裁模块,用于根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PTE缓存库中的一个PTE缓存库,其中,转换控制单元被配置为并行地在多个PTE缓存库中对分配的地址转换请求
进行查找,若命中,则获得对应的物理地址。
[0008]根据本申请的一些实施例,PTE缓存包括四个PTE缓存库,PTE仲裁模块用于根据地址转换请求中的虚拟地址中第一预设位置的2比特的值,将每个转换请求分配给四个PTE缓存库中的一个PTE缓存库。
[0009]根据本申请的一些实施例,PTE仲裁模块包括对应于每个PTE缓存库的FIFO缓存,用于缓存分配的地址转换请求。
[0010]根据本申请的一些实施例,转换控制单元还包括:PMD缓存,用于缓存虚拟地址与PTE页表的基地址的映射关系,PMD缓存包括多个PMD缓存库;PMD仲裁模块,用于在PTE缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PMD缓存库中的一个PMD缓存库,其中,转换控制单元还被配置为并行地在多个PMD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器中获得对应的物理地址。
[0011]根据本申请的一些实施例,PMD缓存包括四个PMD缓存库,PMD仲裁模块用于根据地址转换请求中的虚拟地址中第二预设位置的2比特的值,将每个转换请求分配给四个PMD缓存库中的一个PMD缓存库。
[0012]根据本申请的一些实施例,PMD仲裁模块包括对应于每个PMD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
[0013]根据本申请的一些实施例,转换控制单元还包括:PUD缓存,用于缓存虚拟地址与PMD页表的基地址的映射关系,PUD缓存包括多个PUD缓存库;PUD仲裁模块,用于在PMD缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PUD缓存库中的一个PUD缓存库,其中,转换控制单元还被配置为并行地在多个PUD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PMD页表的基地址,并根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,然后根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
[0014]根据本申请的一些实施例,PUD缓存包括两个PUD缓存库,PUD仲裁模块用于根据地址转换请求中的虚拟地址中第三预设位置的1比特的值,将每个转换请求分配给两个PUD缓存库中的一个PUD缓存库。
[0015]根据本申请的一些实施例,PUD仲裁模块包括对应于每个PUD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
[0016]根据本申请的一些实施例,转换控制单元还包括:PGD缓存,用于缓存虚拟地址与PUD页表的基地址的映射关系,PGD缓存包括多个PGD缓存库;PGD仲裁模块,用于在PMD缓存库进行的查找未命中的情况下,根据地址转换请求中的虚拟地址,将每个转换请求分配给多个PGD缓存库中的一个PGD缓存库,
其中,转换控制单元还被配置为并行地在多个PGD缓存库中对分配的地址转换请求进行查找,若命中,则获得相应的PUD页表的基地址,并根据地址转换请求的虚拟地址中的PUD页表的index以及PUD页表的基地址从外部存储器中获得对应的地址转换请求中的虚拟地址以及PMD页表的基地址,然后根据地址转换请求的虚拟地址中的PMD页表的index以及PMD页表的基地址从外部存储器中获得对应的PTE页表的基地址,并根据地址转换请求的虚拟地址中的PTE页表的index以及PTE页表的基地址从外部存储器获得对应的物理地址。
[0017]根据本申请的一些实施例,PGD缓存包括两个PGD缓存库,PGD仲裁模块用于根据地址转换请求中的虚拟地址中第四预设位置的1比特的值,将每个转换请求分配给两个PGD缓存库中的一个PGD缓存库。
[0018]根据本申请的一些实施例,PGD仲裁模块包括对应于每个PGD缓存库的FIFO缓存,用于缓存分配的地址转换请求。
[0019]根据本申请的一方面,提供了一种用于处理器的内存管理方法,该方法以上描述的内存管理单元执行并且包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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页表的基地址从外...

【专利技术属性】
技术研发人员:姜涛王恬恬
申请(专利权)人:瀚博半导体上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1