内存管理单元、处理单元、系统以及内存访问方法技术方案

技术编号:32670227 阅读:20 留言:0更新日期:2022-03-17 11:24
本发明专利技术实施例提供了一种内存管理单元、处理单元、系统以及内存访问方法。所述内存访问方法,应用于外部总线连接的内存管理单元和处理单元,所述内存管理系统包括内存管理单元和处理单元。所述内存管理单元用于获取外部设备的内存访问请求,得到所述内存访问请求中包括的虚拟内存地址,并且经由所述外部总线,将所述虚拟内存地址发送到所述处理单元。所述处理单元用于将所述虚拟内存地址转换为所述物理内存地址。所述内存管理单元还用于经由所述外部总线,从所述处理单元获取所述物理内存地址,并且根据所述物理内存地址,进行内存访问。本发明专利技术实施例减小了外部设备进行内存访问的实现成本。实现成本。实现成本。

【技术实现步骤摘要】
内存管理单元、处理单元、系统以及内存访问方法


[0001]本专利技术实施例涉及计算机
,尤其涉及一种内存管理单元、处理单元、系统以及内存访问方法。

技术介绍

[0002]一般地,对于各种计算机架构而言,诸如CPU的处理单元都需要访问内存中的指令和数据,根据指令和数据进行计算,以执行内存中的程序。除此之外,诸如显卡、网卡等外部设备需要对内存进行访问,从而实现了处理单元、外部设备以及内存之间的紧密配合。
[0003]为了提高外部设备的内存访问效率和灵活性,外部设备向诸如输入输出内存管理单元(Input/output Memory Management Unit,IOMMU)或系统内存管理单元(System Memory Management Unit,SMMU)的内存管理单元发送虚拟内存地址,将虚拟内存地址转换为物理内存地址,以根据物理内存地址进行内存访问。
[0004]但是,现有的内存管理单元的配置成本较高。

技术实现思路

[0005]有鉴于此,本专利技术实施例提供一种内存管理单元、处理单元、系统以及内存访问方法,以至少部分解决上述问题。
[0006]根据本专利技术实施例的第一方面,提供了一种内存管理单元,与处理单元通过外部总线连接,内存管理单元包括:第一获取模块,获取外部设备的内存访问请求,得到所述内存访问请求中包括的虚拟内存地址;发送模块,经由所述外部总线,将所述虚拟内存地址发送到所述处理单元,以将所述虚拟内存地址转换为所述物理内存地址;第二获取模块,经由所述外部总线,从所述处理单元获取所述物理内存地址;访问模块,根据所述物理内存地址,进行内存访问。
[0007]在另一些示例中,所述发送模块具体用于:经由所述外部总线,向所述处理单元发送中断请求,所述中断请求指示所述处理单元开始获取所述虚拟内存地址,兼容了处理单元的处理机制和外部总线传输机制。
[0008]在另一些示例中,所述内存管理单元配置有通过所述外部总线与所述外部设备连接的第一接口,所述第一获取模块具体用于:通过所述第一接口,获取所述外部设备经由所述外部总线发送所述内存访问请求,兼容了外部总线的传输机制,利用第一接口实现了可靠和高效的数据传输。
[0009]在另一些示例中,所述内存管理单元配置有通过所述外部总线与所述处理单元连接的第二接口,所述第一获取模块具体用于:通过所述第一接口获取所述外部设备的内存访问请求,得到所述虚拟内存地址,所述内存管理单元还包括:转发模块,将所述虚拟内存地址从所述第一接口转发到所述第二接口,所述发送模块具体用于:通过所述第二接口,经由所述外部总线,将所述虚拟内存地址发送到所述处理单元,利用第一接口和第二接口实现了可靠、有序和高效的数据传输。
[0010]在另一些示例中,所述内存管理单元配置有通过所述外部总线与内存连接的第三接口,所述第二获取模块还用于:通过所述第二接口,从所述处理单元获取所述物理内存地址,所述转发模块还用于:将所述物理内存地址转发到所述第三接口,所述访问模块具体用于:通过所述第三接口,访问所述内存中的所述物理内存地址,利用第三接口实现了可靠和高效的数据传输,并且简化了内存管理单元的内部处理逻辑。
[0011]在另一些示例中,所述内存管理单元配置有缓存,所述缓存存储所述虚拟内存地址与所述物理内存地址之间的对应关系,所述第二获取模块具体用于:在所述缓存中未查找到所述对应关系时,将所述虚拟内存地址发送到所述处理单元,因此在保证可靠的地址转换结果的同时,节省了CPU的计算资源,也节省了与内存管理单元与CPU之间的通信资源。
[0012]在另一些示例中,所述第二获取模块还用于:在所述缓存中查找到所述对应关系时,禁止所述发送模块将所述虚拟内存地址发送到所述处理单元,并且从所述缓存中获取所述物理内存地址。因此在保证可靠的地址转换结果的同时,节省了CPU的计算资源,也节省了与内存管理单元与CPU之间的通信资源。
[0013]根据本专利技术实施例的第二方面,提供了一种处理单元,与内存管理单元通过外部总线连接,包括:第三获取模块,经由所述外部总线,获取所述内存管理单元的虚拟内存地址;转换模块,将所述虚拟内存地址转换为物理内存地址;发送模块,将所述物理内存地址通过所述外部总线发送到所述内存管理单元。
[0014]在另一些示例中,所述处理单元与内存经由所述外部总线连接,所述内存中存储有地址转换程序,第三获取模块具体用于:响应所述内存管理单元经由所述外部总线发送的中断请求,执行所述内存中所述地址转换程序,获取所述虚拟内存地址。因此,兼容了CPU的处理机制,提高了地址转换程序的配置灵活性。
[0015]在另一些示例中,转换模块具体用于:通过执行所述内存中所述地址转换程序,将所述虚拟内存地址转换为物理内存地址。
[0016]在另一些示例中,发送模块具体用于:响应所述物理内存地址的获得,将所述物理内存地址通过所述外部总线发送到所述内存管理单元。节省了回存到内存的操作,直接讲物理内存地址发送到内存管理单元,提高了整体地址转换效率,进而提高了内存访问效率。
[0017]根据本专利技术实施例的第三方面,提供了一种内存管理系统,包括:根据第一方面所述的内存管理单元和根据第二方面所述的处理单元。
[0018]根据本专利技术实施例的第四方面,提供了一种片上系统,包括:根据第三方面所述的内存管理系统。
[0019]根据本专利技术实施例的第五方面,提供了一种内存访问方法,应用于外部总线连接的内存管理单元和处理单元,所述方法包括:利用所述内存管理单元,获取外部设备的内存访问请求,得到所述内存访问请求中包括的虚拟内存地址,并且经由所述外部总线,将所述虚拟内存地址发送到所述处理单元;利用所述处理单元,将所述虚拟内存地址转换为所述物理内存地址;利用所述内存管理单元,经由所述外部总线,从所述处理单元获取所述物理内存地址,并且根据所述物理内存地址,进行内存访问。
[0020]在本专利技术实施例的方案中,内存管理单元通过外部总线将虚拟内存地址发送到处理单元,处理单元将虚拟内存地址转换为物理内存地址,内存管理单元从处理单元获取用于进行内存访问的物理内存地址,由于虚拟内存地址到物理内存地址的转换在处理单元中
执行,减小了内存管理单元的实现复杂度,释放了内存管理单元的计算资源。此外,处理单元能够运行存储在诸如内存的存储介质中的软件程序实现的相应的功能,有利于软件程序的灵活处理,此外,采用处理单元运行软件程序的方式并未增大处理单元的配置成本。综上,整体上显著减小了外部设备进行内存访问的实现成本。此外,内部处理单元与处理单元之间的通信交互对于外部设备和内存不可感知,极好地兼容了对外部设备的配置和内存的配置。
附图说明
[0021]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。...

【技术保护点】

【技术特征摘要】
1.一种内存管理单元,与处理单元通过外部总线连接,包括:第一获取模块,获取外部设备的内存访问请求,得到所述内存访问请求中包括的虚拟内存地址;发送模块,经由所述外部总线,将所述虚拟内存地址发送到所述处理单元,以将所述虚拟内存地址转换为所述物理内存地址;第二获取模块,经由所述外部总线,从所述处理单元获取所述物理内存地址;访问模块,根据所述物理内存地址,进行内存访问。2.根据权利要求1所述的内存管理单元,其中,所述发送模块具体用于:经由所述外部总线,向所述处理单元发送中断请求,所述中断请求指示所述处理单元开始获取所述虚拟内存地址。3.根据权利要求1所述的内存管理单元,其中,所述内存管理单元配置有通过所述外部总线与所述外部设备连接的第一接口,所述第一获取模块具体用于:通过所述第一接口,获取所述外部设备经由所述外部总线发送所述内存访问请求。4.根据权利要求3所述的内存管理单元,其中,所述内存管理单元配置有通过所述外部总线与所述处理单元连接的第二接口,所述第一获取模块具体用于:通过所述第一接口获取所述外部设备的内存访问请求,得到所述虚拟内存地址,所述内存管理单元还包括:转发模块,将所述虚拟内存地址从所述第一接口转发到所述第二接口,所述发送模块具体用于:通过所述第二接口,经由所述外部总线,将所述虚拟内存地址发送到所述处理单元。5.根据权利要求4所述的内存管理单元,其中,所述内存管理单元配置有通过所述外部总线与内存连接的第三接口,所述第二获取模块还用于:通过所述第二接口,从所述处理单元获取所述物理内存地址,所述转发模块还用于:将所述物理内存地址转发到所述第三接口,所述访问模块具体用于:通过所述第三接口,访问所述内存中的所述物理内存地址。6.根据权利要求1所述的内存管理单元,其中,所述内存管理单元配置有缓存,所述缓存存储所述虚拟内存地址与所述物理内存地址之间的对应关系,所述第二获取模块具体用于:在所述缓存中未查找到所述对应关系时,将所述虚拟内存地址发送到所述处理单元。7.根据权利要求6所述的内存管理单...

【专利技术属性】
技术研发人员:赵思齐
申请(专利权)人:平头哥上海半导体技术有限公司
类型:发明
国别省市:

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

1