G06F13/28
1.一种龙芯刀片大内存地址设备DMA控制器访问的实现方法,其特征在于:管理控制 模块在内存中申请256MB地址空间,DMA控制器与小于32位的地址空间进行数据传输时, 按照传统DMA传输方式传输数据;DMA控制器在与大于32位的地址空间进行数据传输时, DMA控制器将访问地址发送给地址解析模块,地址解析模块将地址解析后发送给地址转换模 块,地址转换模块将地址进行转换,映射模块按照地址转换模块转换后的地址进行内存映射, 将高于32位的地址空间映射到管理控制模块预先申请的内存中。
3.如权利要求1所述的方法,其特征在于:所述管理控制模块将大于32位的地址空间 划分为块,每块大小为256MB。
4.如权利要求1或3所述的方法,其特征在于:管理控制模块在内存中申请的地址空间 可以任意,大于32位的地址空间在划分块时要和在内存中申请的地址空间大小一致。
5.如权利要求1所述的方法,其特征在于:所述地址转换模块按照申请的内存空间大小 对解析后的地址减去32位地址空间后右移位,右移后的地址空间为需要映射的块地址,右移 位部分为块内地址。
6.如权利要求1所述的方法,其特征在于:所述大于32位的地址空间最高为64位。
一种龙芯刀片大内存地址设备DMA控制器访问的实现方法
技术领域
本发明涉及龙芯刀片对大内存支持方法,具体来说,涉及一种龙芯刀片大内存地址设备DMA控制器访问的实现方法
背景技术
目前设备地址一般都是32位,如果设备在与内存进行DMA数据传输的情况下,内存地址在大于32位的时候,设备将无法识别.所以需要一些方法来解决这个问题.Linux核心版本要求通往存储设备的数据缓存必须放在物理RAM的低端内存区域,即使是应用程序可以同时使用高端内存和低端内存也存在同样状况。这样,来自低端内存区域数据缓存的I/O请求可以直接进行内存存取操作。但是,当应用程序发出一个I/O请求,其中包含位于高端内存的数据缓存时,核心将强制在低端内存中分配一个临时数据缓存,并将位于高端内存的应用程序缓存数据复制到此处。
在目前的市场上,对于X86平台,对大于4G内存的支持,可以采用IOMMU,SWIOTLB等技术来实现.对于龙芯平台来说,目前的龙芯产品还没有用到比较大的内存。不会超过32位地址。而对于龙芯刀片来说,大内存的支持是必须要用到,因为龙芯刀片是要做高性能应用的。而目前的龙芯产品都不支持大内存,所以,为了实现龙芯刀片,就需要实现对大内存的支持。
发明内容
为了解决龙芯刀片对大页内存的支持,本发明提出了一种龙芯刀片大内存地址设备DMA控制器访问的实现方法。
一种龙芯刀片大内存地址设备DMA控制器访问的实现方法,管理控制模块在内存中申请256MB地址空间,DMA控制器与小于32位的地址空间进行数据传输时,按照传统DMA传输方式传输数据;DMA控制器在与大于32位的地址空间进行数据传输时,DMA控制器将访问地址发送给地址解析模块,地址解析模块将地址解析后发送给地址转换模块,地址转换模块将地址进行转换,映射模块按照地址转换模块转换后的地址进行内存映射,将高于32位的地址空间映射到管理控制模块预先申请的内存中。
优选的,所述地址解析模块在接收到DMA控制器地址空间数据后,对地址数据进行解析,若为大于32位的地址空间,则传递给地址转换模块;若不大于32位的地址空间,则按照传统DMA方式传输。
优选的,所述管理控制模块将大于32位的地址空间划分为块,每块大小为256MB。
优选的,管理控制模块在内存中申请的地址空间可以任意,大于32位的地址空间在划分块时要和在内存中申请的地址空间大小一致。
优选的,所述地址转换模块按照申请的内存空间大小对解析后的地址减去32位地址空间后右移位,右移后的地址空间为需要映射的块地址,右移位部分为块内地址。
优选的,所述大于32位的地址空间最高为64位。
本发明有效解决了32位龙芯CPU对超过32位地址的内存的支持,使得龙芯CPU最多可以使用64位地址空间。
具体实施方式
龙芯CPU是32位CPU,若地址空间超过32位,则龙芯CPU无法支持,本发明通过添加管理控制模块,地址解析模块,地址转换模块以及映射模块来达到最高支持64位地址空间。
管理控制模块负责对高于32位的地址空间进行划块,划分完成后,管理控制模块在内存中申请同样大小的块地址范围,当有DMA申请时,先交由地址解析模块进行判定,若地址在32位地址空间内,则进行传统的DMA数据传输;当地址空间大于32位地址时,则交由地址转换模块进行地址转换。
地址转换模块按照预先申请的块大小计算出需要移位的位数,进行移位,移位后的地址为块地址,移去的位为块内地址空间,映射模块根据块地址进行映射,将要访问的数据块映射到预先申请的地址空间。
通过本方法,最多可以支持到64位的地址空间。
本文发布于:2023-04-15 05:06:43,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/1/87596.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |