[发明专利]用于芯片存储访问的内存管理方法和装置有效
申请号: | 201811119736.5 | 申请日: | 2018-09-25 |
公开(公告)号: | CN110941565B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 张广飞 | 申请(专利权)人: | 北京算能科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/1009;G06F13/28 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 杨静 |
地址: | 100176 北京市大兴区北京经济技术开发区科谷一*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 芯片 存储 访问 内存 管理 方法 装置 | ||
本发明实施例公开了一种用于芯片存储访问的内存管理方法和装置,其采用主页表缓冲单元和子页表缓冲单元结合的多级页表缓冲单元,并提供基于该多级页表缓冲单元的分级页表查找机制,提供三个层次的页表预取机制,能够有效地加快用于芯片存储访问的DMA访存请求的地址翻译过程中页表的读取速度,减少了系统内存管理单元SMMU因为页表未命中造成的性能损失。
技术领域
本发明涉及内存管理技术领域,特别是涉及一种用于芯片存储访问的内存管理方法和装置。
背景技术
在主机和芯片的数据传输中,系统内存管理单元SMMU(System MemoryManagement Unit)负责DMA控制器搬运数据过程中,虚拟地址VA(Virtual Address)到物理地址PA(Physical Address)的翻译。
现有技术中,主机CPU将数据页表搬运到芯片存储中,并配置SMMU控制寄存器,包括使能SMMU和页表在芯片存储中的地址等;当DMA控制器需要访问芯片存储时,SMMU根据控制寄存器中的信息,从芯片存储中读取页表,并根据读取的页表对DMA访存请求中的访存虚拟地址进行地址翻译。
但是,这种方法存在一些缺点:
其一,当多个DMA请求任务同时进行时,SMMU需要在接收到后续的DMA访存请求后,才去芯片存储中读取页表,使得多个DMA访存请求无法连续完成;
其二,当单个DMA请求任务执行过程中,SMMU在接收到后续的DMA请求的访存地址后,才为该DMA访存请求读取页表,使得单个DMA请求任务出现停顿。
因此,现有方案在DMA访存请求的任务执行过程中,会导致SMMU因为页表缺失而造成性能损失,影响了主机和芯片间数据搬运的效率。
发明内容
为了解决上述问题,根据本发明的一方面,提出一种多级页表缓冲单元,包括:主页表缓冲单元、分别耦接至所述主页表缓冲单元的读请求子页表缓冲单元和写请求子页表缓冲单元;
其中,主页表缓冲单元用于存储DMA读写请求所需要的页表数据;读请求子页表缓冲单元用于存储DMA读请求所需要的页表数据;写请求子页表缓冲单元用于存储DMA写请求所需要的页表数据;所述读请求子页表缓冲单元和写请求子页表缓冲单元共享所述主页表缓冲单元的页表数据。
根据本发明的另一方面,提出一种内存管理方法,包括:
步骤S11,根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表;
步骤S12,如果该请求需要的页表在对应的子页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S13,如果该请求需要的页表在对应的子页表缓冲单元中没有命中,则去主页表缓冲单元中查找该请求需要的页表;
步骤S14,如果该请求需要的页表在主页表缓冲单元中命中,则根据读取的页表对所述DMA访存请求的虚拟地址进行翻译;
步骤S15,如果该请求需要的页表在主页表缓冲单元中没有命中,则去芯片存储中读取页表,保存在主页表缓冲单元和对应的子页表缓冲单元中,并根据读取的页表对所述DMA访存请求的虚拟地址进行翻译。
在一些实施方式中,所述根据DMA访存请求的类型在对应的子页表缓冲单元中查找该请求需要的页表包括:
如果所述DMA访存请求是读请求,则去读请求子页表缓冲单元中查找该请求需要的页表;如果所述DMA访存请求是写请求,则去写请求子页表缓冲单元中查找该请求需要的页表。
根据本发明的另一方面,提出一种内存管理方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京算能科技有限公司,未经北京算能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811119736.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:运力调度方法、装置和服务器
- 下一篇:一种稀土颜料生产用粉体加料装置