内存管理方法、图形处理单元、存储介质、终端设备技术

技术编号:38705684 阅读:16 留言:0更新日期:2023-09-08 14:46
本申请提供了一种内存管理方法、图形处理单元、存储介质、终端设备,内存管理方法包括:接收读请求或写请求,读请求或写请求包括虚拟地址;在页面目录中对虚拟地址进行命中测试,以得到命中结果,页面目录包括页表粒度指示信息,页表粒度指示信息用于指示分页粒度;根据命中结果在对应的页表中查找虚拟地址对应的物理地址,页表具有页表粒度指示信息指示的分页粒度。本申请技术方案能够升对内存管理的灵活性和高效性。活性和高效性。活性和高效性。

【技术实现步骤摘要】
内存管理方法、图形处理单元、存储介质、终端设备


[0001]本申请涉及图形处理
,尤其涉及一种内存管理方法、图形处理单元、存储介质、终端设备。

技术介绍

[0002]电子设备可以使用虚拟存储器技术来管理存储器。虚拟存储器技术是指分离并使用由电子设备使用的存储器地址和实际存储器地址的方法。例如,虚拟存储器技术被实现为分页技术,该分页技术将整个存储器分为一定大小的页面(page),并将虚拟地址与物理地址相关联。内存管理单元(Memory Management Unit, MMU)位于处理器内部或外部,并在处理器访问内存时将虚拟地址转换为物理地址。MMU以页面为单位映射虚拟地址和物理地址,并在特殊的内存区域中将它们作为页表进行管理。MMU访问内存以了解该地址转换关系的映射关系。
[0003]现有技术中,页面的大小有4KB和64KB两种形式。传统的图形处理器(Graphics Processing Unit, GPU)页表管理有两类:一类是GPU只支持4KB页表而不支持多种页表的混合模式。另一类GPU虽然支持64KB页表,但是只支持单页表模式。在这种模式下,页表项(Page Table Entry,PTE)指向4KB页表或64KB页表之一。
[0004]但是,对于第一类页表管理方式,在GPU具有超大显存的情况下,过细粒度的管理会造成页表的内存流量(memory traffic)剧增,从而影响GPU的运行效率。对于第二类页表管理方式,页表之间的转换复杂,导致响GPU的运行效率降低。

技术实现思路
<br/>[0005]本申请能够升对内存管理的灵活性和高效性。
[0006]为了达到上述目的,本申请提供了以下技术方案:第一方面,本申请提供了一种内存管理方法,内存管理方法包括:接收读请求或写请求,所述读请求或写请求包括虚拟地址;在页面目录中对所述虚拟地址进行命中测试,以得到命中结果,所述页面目录包括页表粒度指示信息,所述页表粒度指示信息用于指示分页粒度;根据所述命中结果在对应的页表中查找所述虚拟地址对应的物理地址,所述页表具有所述页表粒度指示信息指示的分页粒度。
[0007]可选的,一级页表的页表项指向具有不同分页粒度的零级页表。
[0008]可选的,覆盖同一虚拟地址范围的具有不同分页粒度的零级页表中的页表项分时有效。
[0009]可选的,所述在页面目录中对所述虚拟地址进行命中测试包括:根据所述虚拟地址对至少一级地址变换旁路缓冲中的页面目录项进行命中测试,所述地址变换旁路缓冲的页面目录项中包括所述页表粒度指示信息。
[0010]可选的,所述根据所述命中结果在对应的页表中查找所述虚拟地址对应的物理地址包括:若所述命中结果为命中,则根据所述一级地址变换旁路缓冲的页面目录项中的地
址信息以及所述页表粒度指示信息确定至少一级页表的地址;根据所述虚拟地址对所述至少一级页表进行查询,获得所述物理地址。
[0011]可选的,采用统一缓存存储各个物理地址。
[0012]可选的,所述分页粒度包括4KB和64KB,指示64KB分页粒度的页面的多个页表中的物理地址在所述统一缓存中相邻排放。
[0013]第二方面,本申请还公开一种图形处理单元,图形处理单元包括:引擎,用于生成读请求或写请求,所述读请求或写请求包括虚拟地址;内存管理单元,用于执行所述内存管理方法的步骤。
[0014]可选的,图形处理单元包括:图形处理器集群,所述内存管理单元的输入端与所述图形处理器集群的输出端耦接;和/或,动态内存控制器,所述内存管理单元的输入端与所述动态内存控制器的输出端耦接。
[0015]第三方面,本申请提供了一种终端设备,其特征在于,包括第二方面所述的图形处理单元。
[0016]第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行所述内存管理方法的步骤。
[0017]与现有技术相比,本申请技术方案具有以下有益效果:本申请技术方案中,接收读请求或写请求,读请求或写请求包括虚拟地址;在页面目录中对虚拟地址进行命中测试,以得到命中结果,页面目录包括页表粒度指示信息,页表粒度指示信息用于指示分页粒度;根据命中结果在对应的页表中查找虚拟地址对应的物理地址,页表具有页表粒度指示信息指示的分页粒度。本申请技术方案通过在页面目录中设置页表粒度指示信息来指示分页粒度,能够实现对具有不同分页粒度的页表的支持,无需复杂的操作即可实现对内存在不同分页粒度下的切换,提升了对内存管理的灵活性和高效性。
[0018]进一步地,本申请技术方案中,覆盖同一虚拟地址范围的具有不同分页粒度的零级页表中的页表项分时有效。本申请技术方案通过设置零级页表中的页表项分时有效,从而保证内存在不同分页粒度下的切换,保证了内存管理的高效性。
附图说明
[0019]图1是本申请实施例提供的一种内存管理方法的流程图;图2是本申请实施例提供的一种多级TLB的示意图;图3是本申请实施例提供的一种TLB的PDE的示意图;图4是本申请实施例提供的一种不同级页表的示意图;图5是本申请实施例提供的一种统一缓存中数据排列方式的示意图;图6是本申请实施例提供的一种图形处理单元的结构图;图7是本申请实施例提供的另一种图形处理单元的结构图。
具体实施方式
[0020]如
技术介绍
中所述,对于第一类页表管理方式,在GPU具有超大显存的情况下,过细粒度的管理会造成页表的内存流量(memory traffic)剧增,从而影响GPU的运行效率。对
于第二类页表管理方式,页表之间的转换复杂,导致响GPU的运行效率降低。
[0021]具体地,对于第二类页表管理方式,在单页表模式下,PageTablePageSize字段添加到字段DXGK_PTE,能够指示内核模式驱动程序相应页表的类型(使用64KB或4KB页面)。当以下条件成立时,内存管理器会选择在虚拟地址范围内使用64KB页表,仅将64KB对齐的分配映射到该范围:映射到该范围的所有分配的内存段支持64KB页面。当虚拟地址范围由64 KB页面映射,并且上述条件不再成立时(例如,分配已提交到系统内存段),显存管理器将从64 KB页表切换到4 KB页表。需要执行下面复杂的过程:挂起进程的所有上下文。 更新现有的PTE以指向4KB页面。驱动程序将获得UpdatePageTable页面操作。指向该页表的Level 1 PTE将更新以反映新的页面大小(PageTablePageSize = DXGK_PTE_PAGE_TABLE_PAGE_4KB)。驱动程序将获得UpdatePageTable页面操作。 最后在恢复进程的所有上下文。
[0022]此外,在单页表模式下,从4KB PTE的页表转换为64KB PTE的页表时,需要当前连续16个4KB都是连续地址,实现难度较大。
[0023]本申请技术方案通过在页面目录中设置页表粒度指示信息来指示分页粒度,能够实现对具有不同分页粒度的页表的支持,无本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存管理方法,其特征在于,包括:接收读请求或写请求,所述读请求或写请求包括虚拟地址;在页面目录中对所述虚拟地址进行命中测试,以得到命中结果,所述页面目录包括页表粒度指示信息,所述页表粒度指示信息用于指示分页粒度;根据所述命中结果在对应的页表中查找所述虚拟地址对应的内存中的物理地址,所述页表具有所述页表粒度指示信息指示的分页粒度。2.根据权利要求1所述的内存管理方法,其特征在于,一级页表的页表项指向具有不同分页粒度的零级页表。3.根据权利要求2所述的内存管理方法,其特征在于,覆盖同一虚拟地址范围的具有不同分页粒度的零级页表中的页表项分时有效。4.根据权利要求1所述的内存管理方法,其特征在于,所述在页面目录中对所述虚拟地址进行命中测试包括:根据所述虚拟地址对至少一级地址变换旁路缓冲中的页面目录项进行命中测试,所述地址变换旁路缓冲的页面目录项中包括所述页表粒度指示信息。5.根据权利要求4所述的内存管理方法,其特征在于,所述根据所述命中结果在对应的页表中查找所述虚拟地址对应的物理地址包括:若所述命中结果为命中,则根据所述一级地址变换旁路缓冲的页面目录项中的地址信息以及所述页表粒度指示信息确定至少一级页表的地址;根...

【专利技术属性】
技术研发人员:顾德明施宏彦
申请(专利权)人:砺算科技上海有限公司
类型:发明
国别省市:

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

1