System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书涉及计算机,尤其涉及一种内存管理方法及内存管理单元。
技术介绍
1、为了提高内存管理单元(memory management unit,mmu)中对虚拟地址与物理地址之间的转换速度,在mmu中存在着一种预读取的机制。但目前,这种预读取的机制并不成熟。
2、现有的预读取是依靠软件本身的感知来实现的,需要软件在运行的过程中提前告知mmu自身在未来的某一时刻可能会用到的虚拟地址。但是大多数软件本身并不了解内存读取,因此,现有的依靠软件感知来实现的预读取机制的准确性往往非常低。
3、因此,如何提高mmu中预读取页表的准确性是一个亟待解决的问题。
技术实现思路
1、本说明书提供一种内存管理方法及内存管理单元,以至少部分地解决现有技术存在的上述问题。
2、本说明书采用下述技术方案:
3、本说明书提供了一种内存管理方法,应用于内存管理单元mmu,所述方法包括:
4、响应于历史命中结果满足预读取条件,将虚拟地址输入预先训练的预测模型,得到所述预测模型输出的预测地址;其中,所述历史命中结果是指在指定历史时间段内的虚拟地址在转址旁路缓存tlb中的命中结果,所述指定历史时间段内的虚拟地址是指所述mmu在指定历史时间段内接收到的历史转址请求中携带的虚拟地址;
5、基于所述预测地址得到对应的页表数据,并根据所述页表数据存更新页表缓存。
6、可选地,所述命中结果包括成功与失败;
7、所述预读取条件包括:经过
8、可选地,将所述虚拟地址输入预先训练的预测模型,具体包括:
9、基于所述mmu在指定历史时间段内接收到各历史转址请求的时刻从前到后的顺序,利用所述各历史转址请求中携带的虚拟地址得到地址序列;
10、将所述地址序列输入预先训练的预测模型。
11、可选地,预先训练预测模型,具体包括:
12、在历史数据中获取mmu在指定时刻接收到的目标转址请求,并确定所述目标转址请求中包含的目标虚拟地址;
13、获取在指定样本时间段内所述mmu接收到的样本转址请求,并确定所述样本转址请求中携带的样本虚拟地址;
14、将所述样本虚拟地址输入待训练的预测模型中,得到所述预测模型输出的待优化预测地址;
15、以所述待优化预测地址与所述目标虚拟地址之间的差异最小为优化目标,对所述预测模型进行训练。
16、可选地,所述指定样本时间段在所述指定时刻之前,且与所述指定时刻相差指定间隔。
17、可选地,所述历史数据为在所述mmu接收到的样本转址请求中携带的样本虚拟地址在所述tlb中的命中结果为失败的概率不小于预设概率的场景下采集的数据。
18、可选地,所述方法还包括:
19、接收当前转址请求;
20、确定并记录所述当前转址请求中携带的当前虚拟地址;
21、响应于所述当前虚拟地址在所述tlb中的命中结果为成功,输出与所述当前虚拟地址对应的物理地址;
22、响应于所述当前虚拟地址在所述tlb中的命中结果为失败,根据所述当前虚拟地址以及所述页表缓存,确定与所述当前虚拟地址对应的物理地址,并输出与所述当前虚拟地址对应的物理地址。
23、本说明书提供的一种内存管理单元mmu,所述mmu包括:预测模块、页表查询模块;
24、所述预测模块用于在历史命中结果满足预读取条件时,将接收到的虚拟地址输入预先训练的预测模型,得到所述预测模型输出的预测地址,并将所述预测地址发送给所述页表查询模块;其中,所述历史命中结果是指在指定历史时间段内的虚拟地址在转址旁路缓存tlb模块中的命中结果,所述指定历史时间段内的虚拟地址是指所述mmu在指定历史时间段内接收到的历史转址请求中携带的虚拟地址;
25、所述页表查询模块用于在接收到所述预测模块发送的预测地址时,确定所述预测地址对应的页表数据。
26、可选地,所述mmu还包括:tlb模块、响应模块;
27、所述tlb模块用于接收转址请求,确定所述转址请求中携带的虚拟地址;响应于存在与所述转址请求中携带的虚拟地址对应的物理地址,确定所述转址请求中携带的虚拟地址的命中结果为成功,并将所述物理地址发送给所述响应模块,响应于不存在与所述转址请求中携带的虚拟地址对应的物理地址,确定所述转址请求中携带的虚拟地址的命中结果为失败,并接收所述页表查询模块发送的与所述虚拟地址对应的物理地址,并将所述物理地址发送给所述响应模块;
28、所述响应模块用于输出所述物理地址。
29、可选地,所述mmu还包括:记录模块;
30、所述记录模块用于记录所述tlb模块接收各转址请求的时刻、所述各转址请求中的携带的虚拟地址以及所述各转址请求在所述tlb模块中的命中结果。
31、可选地,所述mmu还包括:页表缓存模块;
32、所述页表查询模块还用于,在所述tlb模块未查询到与所述虚拟地址对应的物理地址时,根据所述虚拟地址,以及所述页表缓存模块中存储的页表,确定所述虚拟地址对应的物理地址,并将所述物理地址发送给tlb模块以及将所述页表数据发送给所述页表缓存模块;
33、所述页表缓存模块用于存储热度最高的预设数量个页表。
34、本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述内存管理方法。
35、本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述内存管理方法。
36、本说明书采用的上述至少一个技术方案能够达到以下有益效果:
37、在本说明书提供的内存管理方法中,内存管理单元mmu响应于历史命中结果满足预读取条件,将虚拟地址输入预先训练的预测模型,得到所述预测模型输出的预测地址;其中,所述历史命中结果是指在指定历史时间段内的虚拟地址在转址旁路缓存tlb中的命中结果,所述指定历史时间段内的虚拟地址是指所述mmu在指定历史时间段内接收到的历史转址请求中携带的虚拟地址;基于所述预测地址得到对应的页表数据,并根据所述页表数据存更新页表缓存。
38、在采用本说明书提供的内存管理方法实现mmu中的预读取机制时,能够根据mmu在当前时刻之前的指定历史时间段内接收到的历史转址请求中,携带的虚拟地址以及虚拟地址的命中结果,采用预测模型预测出未来可能会用到的预测地址,并读取预测地址对应的页表数据更新到页表缓存中。比起传统方法中依靠软件感知实现的预读取,本方法能够根据近期使用到的虚拟地址以及命中结果来预测未来可能会用到的虚拟地址,极大地提高了预测的准确性,加快了mmu处理转址请本文档来自技高网...
【技术保护点】
1.一种内存管理方法,其特征在于,应用于内存管理单元MMU,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述命中结果包括成功与失败;
3.如权利要求1所述的方法,其特征在于,将所述虚拟地址输入预先训练的预测模型,具体包括:
4.如权利要求1所述的方法,其特征在于,预先训练预测模型,具体包括:
5.如权利要求4所述的方法,其特征在于,所述指定样本时间段在所述指定时刻之前,且与所述指定时刻相差指定间隔。
6.如权利要求4所述的方法,其特征在于,所述历史数据为在所述MMU接收到的样本转址请求中携带的样本虚拟地址在所述TLB中的命中结果为失败的概率不小于预设概率的场景下采集的数据。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
8.一种内存管理单元MMU,其特征在于,所述MMU包括:预测模块、页表查询模块;
9.如权利要求8所述的MMU,其特征在于,所述MMU还包括:TLB模块、响应模块;
10.如权利要求9所述的MMU,其特征在于,所述MMU还包括:记录模
11.如权利要求9所述的MMU,其特征在于,所述MMU还包括:页表缓存模块;
12.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
...【技术特征摘要】
1.一种内存管理方法,其特征在于,应用于内存管理单元mmu,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述命中结果包括成功与失败;
3.如权利要求1所述的方法,其特征在于,将所述虚拟地址输入预先训练的预测模型,具体包括:
4.如权利要求1所述的方法,其特征在于,预先训练预测模型,具体包括:
5.如权利要求4所述的方法,其特征在于,所述指定样本时间段在所述指定时刻之前,且与所述指定时刻相差指定间隔。
6.如权利要求4所述的方法,其特征在于,所述历史数据为在所述mmu接收到的样本转址请求中携带的样本虚拟地址在所述tlb中的命中结果为失败的概率不小于预设概率的场景下采集的数据。
7.如权利要求1所述的方法,其特征在于,所述...
【专利技术属性】
技术研发人员:请求不公布姓名,
申请(专利权)人:摩尔线程智能科技北京有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。