一种地址转换系统、处理器、地址转换方法及电子设备与流程

文档序号:35142104发布日期:2023-08-17 18:47阅读:22来源:国知局
一种地址转换系统、处理器、地址转换方法及电子设备与流程

本技术属于计算机领域,具体涉及一种地址转换系统、处理器、地址转换方法及电子设备。


背景技术:

1、处理器的内存管理单元(memory management unit,mmu)作为地址转换系统,负责虚拟地址到实际物理地址的转换。为了提高内存的管理效率,目前主流的mmu大都通过多级页表结构来进行虚拟地址到物理地址的转换。例如,目前比较常用的4级页表结构,这种页表结构包含4级页表,其中,1/2/3级页表实际是目录页表,用于生成获取下一级页表的物理地址,4级页表用于生成最后的物理地址。各级页表通常存放在外部存储器中,在完整的4级页表查找过程中,需要4次从外部存储器读取页表数据。由于从外部存储器读数据其延迟很大,为了降低页表数据读延迟对性能的影响,mmu中的虚拟地址与物理地址的转换可通过转换缓存器(translation lookaside buffers,tlb)来实现。多级页表结构中的各级页表都会分配对应的转换缓存器,该转换缓存器用于存储对应级的页表,并提取下一级页表的物理地址。该物理地址用于在下一级页表中没有找到对应的页表数据时,从外部存储器读取数据填入下一级页表所在的转换缓存器。

2、mmu在进行虚实地址转换时,先在对应转换缓存器中进行页表项的匹配查找。如果查找到一个命中项,那么根据命中项的页大小和待查虚拟地址偏移量得到下一级页表的物理地址。然后将该物理地址和待查虚拟地址送入下一级转换缓存器进行类似的操作,一直进行到最后一级转换缓存器得到相应的物理地址。在得到相应物理地址之后,再结合虚拟地址的偏移量计算生成最终物理地址。mmu在各级转换缓存器中查找页表项的过程中,会出现没有命中的情况,如果没有命中,相应的转换缓存器需要触发当前页表项重填,即需要从外部存储器读取对应的页表项数据填入转换缓存器。

3、处理器中有大量的硬件访问单元(如cache(缓存)、dma(direct memory access,直接存储器访问)、hub(集线器)等)需要访问外部存储器,虚拟地址需要通过mmu转换为物理实际地址,然后发送到外部存储器。通常每个硬件访问单元都会分配一个mmu用于虚实地址的转换,原理图如图1所示,图1中的各个mmu均包括多级转换缓存器。在完整的4级页表结构中,需要通过4级转换缓存器实现虚拟地址到物理地址的转换,如果在转换缓存器中没有命中页表数据,那么需要从外部存储器读取页表数据,通常来说从外部存储器读数据其延迟代价是很大,会导致整个处理器出现较大的性能负面影响。

4、为了降低性能的负面影响,通常在mmu的各级转换存储器中会配置比较大的缓存来存储各自的页表,用于提高命中的概率。转换缓存器中缓存容量越大代表着命中率越高,但会带来其他问题,例如,更大的芯片面积,更大的功耗,更差的芯片良率。


技术实现思路

1、鉴于此,本技术的目的在于提供一种地址转换系统、处理器、地址转换方法及电子设备,以实现在mmu缓存总容量不变的情况下,提高页表的命中率。

2、本技术的实施例是这样实现的:

3、第一方面,本技术实施例提供了一种地址转换系统,包括:多级页表查询模块和n个l1级转换缓存器;每个l1级转换缓存器中均存储有m级页表结构中的最后一级页表,每个l1级转换缓存器用于从自身存储的页表中查找是否存在与虚拟地址转换请求相匹配的页表项;并在页表中不存在与所述虚拟地址转换请求相匹配的页表项时,发出页表读请求,其中,所述页表读请求包括所述虚拟地址转换请求中的关键信息,n、m为大于等于1的整数;多级页表查询模块与每个相连接,所述多级页表查询模块用于在接收到所述页表读请求时,从自身存储的m级页表结构中查找是否存在与所述页表读请求相匹配的页表项,若找到与所述页表读请求相匹配的页表项时,将匹配的页表项返回给对应的l1级转换缓存器;每个l1级转换缓存器,还用于基于匹配的页表项中的物理地址和所述虚拟地址的偏移量确定物理内存地址,以完成虚拟地址到物理地址的转换。

4、本技术实施例中,采用上述结构的地址转换系统,通过配置n个l1级转换缓存器,使得同一时刻的n个硬件访问单元的虚拟地址转换请求可以同时处理,由于l1级转换缓存器中存储的是最后一级页表,如果在l1级转换缓存器中匹配到对应的页表项,便可直接进行地址转换,这样可以提高地址转换效率;同时,采用n个l1级转换缓存器公用一个多级页表查询模块,使得多级页表查询模块的缓存容量可以设置的更大(相对于1个l1级转换缓存器对应一个多级页表查询模块来说),这样可以在保证mmu总缓存容量不变的情况下,可以提高命中的效率,降低页表读延迟,从而降低虚拟地址到物理地址转换延时带来的对芯片系统性能的负面影响。

5、结合第一方面实施例的一种可能的实施方式,若m为大于等于2的整数,所述多级页表查询模块在将匹配的页表项返回给对应的l1级转换缓存器之前,还用于确定匹配的页表项能直接使用,若匹配的页表项不能直接使用,继续在所述m级页表结构中查找与所述页表读请求相匹配的页表项,直至找到能直接使用的页表项。

6、本技术实施例中,在将匹配的页表项返回给对应的l1级转换缓存器之前,进一步判断该页表项是否能直接使用,若能直接使用,才将匹配的页表项返回给对应的l1级转换缓存器,若不能直接使用,需要到下一级页表中继续查找是否存在与页表读请求相匹配的页表项,直至找到能直接使用页表项为止。通过进一步判断匹配的页表项是否能直接使用,使得可以适用于各种页表结构的地址转换,使得该方案的适用性大大增加。

7、结合第一方面实施例的一种可能的实施方式,若所述m级页表结构的任一目标级页表中不存在与所述页表读请求相匹配的页表项时,所述多级页表查询模块,还用于基于目标级页表项的起始地址和目标级页表项的地址偏移量,从外部存储器中读取目标级页表项,并基于读取的目标页表项更新所述多级页表查询模块中的目标级页表项。

8、本技术实施例中,如果在m级页表结构的任一目标级页表中没有找到与页表读请求相匹配的页表项时,会从外部存储器中读取目标级页表项,以保证整个方案能顺序进行。

9、结合第一方面实施例的一种可能的实施方式,所述多级页表查询模块包括:m级转换缓存器,每一级转换缓存器用于缓存所述m级页表结构中的指定级页表;每一级转换缓存器在接收到所述页表读请求时,从自身存储的页表中查找是否存在与所述页表读请求相匹配的页表项,若找到与所述页表读请求相匹配的页表项时,判断该页表项是否能直接使用,若该页表项能直接使用,将匹配的页表项返回给对应的l1级转换缓存器。

10、本技术实施例中,在从多级页表查询模块中查找是否存在与页表读请求相匹配的页表项时,采用上述逻辑结构,以保证各级页表之间的查找顺序为依次查找,进而保证了查找的准确性。

11、结合第一方面实施例的一种可能的实施方式,每个所述l1级转换缓存器,具体用于读取所述虚拟地址转换请求中的虚拟地址和进程号,并将所述虚拟地址中的指定地址范围作为地址标识号,从自身存储的页表中查找是否存在与所述地址标识号和对应的进程号相匹配的页表项。

12、本技术实施例中,通过将虚拟地址中的指定地址范围作为地址标识号,从自身存储的页表中查找是否存在与地址标识号和对应的进程号相匹配的页表项,这样在保证准确性的同时,可以提高查找效率。

13、结合第一方面实施例的一种可能的实施方式,所述地址转换系统还包括:l2级转换缓存器,所述多级页表查询模块通过l2级转换缓存器与每个l1级转换缓存器相连接,所述l2级转换缓存器中存储有m级页表结构中的最后一级页表,且存储的页表项数量大于每个l1级转换缓存器中存储的页表项数量;所述l2级转换缓存器,用于在自身存储的页表中不存在与所述页表读请求相匹配的页表项时,向所述多级页表查询模块发送所述页表读请求,以及将所述多级页表查询模块返回的与所述页表读请求相匹配的页表项发送给对应的l1级转换缓存器。

14、本技术实施例中,通过进一步增设存储容量大于l1级转换缓存器的l2级转换缓存器,来缓存更多的属于最后一级页表的页表项,以提高命中率,同时可以减少访问多级页表查询模块的查询次数,从而在保证mmu总缓存容量不变的情况下,进一步提高查找效率。

15、结合第一方面实施例的一种可能的实施方式,所述l2级转换缓存器,还用于在自身存储的页表中存在与所述页表读请求相匹配的页表项时,直接将匹配的页表项发送给对应的l1级转换缓存器。

16、本技术实施例中,若l2级转换缓存器中存在与页表读请求相匹配的页表项时,无需再去访问多级页表查询模块,可以进一步提高查找效率。

17、第二方面,本技术实施例还提供了一种处理器,包括上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的地址转换系统。

18、第三方面,本技术实施例还提供了一种地址转换方法,包括:从l1级转换缓存器中查找是否存在与虚拟地址转换请求相匹配的页表项,其中,所述l1级转换缓存器中存储有m级页表结构中的最后一级页表,m为大于等于1的整数;在所述l1级转换缓存器中不存在与所述虚拟地址转换请求相匹配的页表项时,发出页表读请求,所述页表读请求包括所述虚拟地址转换请求中的虚拟地址;从多级页表查询模块中查找是否存在与所述页表读请求相匹配的页表项,其中,所述多级页表查询模块中存储有m级页表结构;若找到与所述页表读请求相匹配的页表项时,基于匹配的页表项中的物理地址和所述虚拟地址的偏移量确定物理内存地址,以完成虚拟地址到物理地址的转换。

19、结合第三方面实施例的一种可能的实施方式,在从多级页表查询模块中查找是否存在与所述页表读请求相匹配的页表项之前,所述方法还包括:确定从l2级转换缓存器中未查找与所述页表读请求相匹配的页表项,其中,所述l2级转换缓存器中存储有m级页表结构中的最后一级页表,且存储的页表项数量大于每个l1级转换缓存器中存储的页表项数量。

20、结合第三方面实施例的一种可能的实施方式,若所述多级页表查询模块中的任一目标级页表中不存在与所述页表读请求相匹配的页表项时,所述方法还包括:基于目标级页表项的起始地址和目标级页表项的地址偏移量,从外部存储器中读取目标级页表项,并基于读取的目标级页表项更新所述多级页表查询模块中的目标级页表项。

21、结合第三方面实施例的一种可能的实施方式,从l1级转换缓存器中查找是否存在与虚拟地址转换请求相匹配的页表项,包括:读取所述虚拟地址转换请求中的虚拟地址和进程号,并将所述虚拟地址中的指定地址范围作为地址标识号,从所述l1级转换缓存器中查找是否存在与所述地址标识号和对应的进程号相匹配的页表项。

22、结合第三方面实施例的一种可能的实施方式,若m大于等于2,从多级页表查询模块中查找是否存在与所述页表读请求相匹配的页表项,包括:依次从多级页表查询模块存储的每一级页表中查找是否存在与所述页表读请求相匹配的页表项;若存在与所述页表读请求相匹配的页表项时,判断该页表项是否能直接使用;若该页表项能直接使用时,将匹配的页表项返回给对应的l1级转换缓存器;若该页表项不能直接使用时,从该页表项所在页表的下一级页表中查找是否存在与所述页表读请求相匹配的页表项,直至找到能直接使用的与所述页表读请求相匹配的页表项。

23、第四方面,本技术实施例还提供了一种电子设备,包括:存储器和处理器,所述处理器与所述存储器连接;所述存储器,用于存储程序;所述处理器,用于调用存储于所述存储器中的程序,以执行上述第三方面实施例和/或结合第三方面实施例的任一种可能的实施方式提供的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1