CN102331978A - 一种龙芯刀片大内存地址设备dma控制器访问的实现方法 - Google Patents

一种龙芯刀片大内存地址设备dma控制器访问的实现方法 Download PDF

Info

Publication number
CN102331978A
CN102331978A CN201110188852A CN201110188852A CN102331978A CN 102331978 A CN102331978 A CN 102331978A CN 201110188852 A CN201110188852 A CN 201110188852A CN 201110188852 A CN201110188852 A CN 201110188852A CN 102331978 A CN102331978 A CN 102331978A
Authority
CN
China
Prior art keywords
address
address space
memory
dma controller
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201110188852A
Other languages
English (en)
Inventor
邵宗有
刘新春
杨晓君
李丰旺
郑臣明
李永成
尹宁宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Information Industry Co Ltd
Original Assignee
Dawning Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dawning Information Industry Co Ltd filed Critical Dawning Information Industry Co Ltd
Priority to CN201110188852A priority Critical patent/CN102331978A/zh
Publication of CN102331978A publication Critical patent/CN102331978A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

本发明提供了一种龙芯刀片大内存地址设备DMA控制器访问的实现方法,管理控制模块在内存中申请256MB地址空间,DMA控制器与小于32位的地址空间进行数据传输时,按照传统DMA传输方式传输数据;DMA控制器在与大于32位的地址空间进行数据传输时,DMA控制器将访问地址发送给地址解析模块,地址解析模块将地址解析后发送给地址转换模块,地址转换模块将地址进行转换,映射模块按照地址转换模块转换后的地址进行内存映射,将高于32位的地址空间映射到管理控制模块预先申请的内存中。本发明有效解决了32位龙芯CPU对超过32位地址的内存的支持,使得龙芯CPU最多可以使用64位地址空间。

Description

一种龙芯刀片大内存地址设备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位的地址空间。 

Claims (6)

1.一种龙芯刀片大内存地址设备DMA控制器访问的实现方法,其特征在于:管理控制模块在内存中申请256MB地址空间,DMA控制器与小于32位的地址空间进行数据传输时,按照传统DMA传输方式传输数据;DMA控制器在与大于32位的地址空间进行数据传输时,DMA控制器将访问地址发送给地址解析模块,地址解析模块将地址解析后发送给地址转换模块,地址转换模块将地址进行转换,映射模块按照地址转换模块转换后的地址进行内存映射,将高于32位的地址空间映射到管理控制模块预先申请的内存中。
2.如权利要求所述的方法,其特征在于:所述地址解析模块在接收到DMA控制器地址空间数据后,对地址数据进行解析,若为大于32位的地址空间,则传递给地址转换模块;若不大于32位的地址空间,则按照传统DMA方式传输。
3.如权利要求1所述的方法,其特征在于:所述管理控制模块将大于32位的地址空间划分为块,每块大小为256MB。
4.如权利要求1或3所述的方法,其特征在于:管理控制模块在内存中申请的地址空间可以任意,大于32位的地址空间在划分块时要和在内存中申请的地址空间大小一致。
5.如权利要求1所述的方法,其特征在于:所述地址转换模块按照申请的内存空间大小对解析后的地址减去32位地址空间后右移位,右移后的地址空间为需要映射的块地址,右移位部分为块内地址。
6.如权利要求1所述的方法,其特征在于:所述大于32位的地址空间最高为64位。
CN201110188852A 2011-07-07 2011-07-07 一种龙芯刀片大内存地址设备dma控制器访问的实现方法 Pending CN102331978A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110188852A CN102331978A (zh) 2011-07-07 2011-07-07 一种龙芯刀片大内存地址设备dma控制器访问的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110188852A CN102331978A (zh) 2011-07-07 2011-07-07 一种龙芯刀片大内存地址设备dma控制器访问的实现方法

Publications (1)

Publication Number Publication Date
CN102331978A true CN102331978A (zh) 2012-01-25

Family

ID=45483759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110188852A Pending CN102331978A (zh) 2011-07-07 2011-07-07 一种龙芯刀片大内存地址设备dma控制器访问的实现方法

Country Status (1)

Country Link
CN (1) CN102331978A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646074A (zh) * 2012-02-22 2012-08-22 中国人民解放军国防科学技术大学 龙芯3a平台大内存设备的地址映射方法
CN105955892A (zh) * 2016-04-25 2016-09-21 浪潮电子信息产业股份有限公司 一种计算机系统中地址空间的扩展方法
CN107870870A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
CN107870736A (zh) * 2016-09-28 2018-04-03 龙芯中科技术有限公司 支持大于4gb非线性闪存的方法及装置
CN107870867A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
CN109408407A (zh) * 2018-10-19 2019-03-01 龙芯中科技术有限公司 显示内存的分配方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1151050A (zh) * 1994-11-30 1997-06-04 国际商业机器公司 系统总线间的桥接器
CN1423773A (zh) * 2000-01-14 2003-06-11 先进微装置公司 于处理器中建立的操作模式
CN1430150A (zh) * 2001-12-29 2003-07-16 深圳市中兴通讯股份有限公司上海第二研究所 通信系统中分系统间的虚拟内存分配管理方法
US6654818B1 (en) * 2000-06-22 2003-11-25 International Business Machines Corporation DMA access authorization for 64-bit I/O adapters on PCI bus
CN1517882A (zh) * 2003-01-16 2004-08-04 矽统科技股份有限公司 内存地址的重新映射方法
US20070245041A1 (en) * 2006-03-21 2007-10-18 Binh Hua Method to improve system DMA mapping while substantially reducing memory fragmentation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1151050A (zh) * 1994-11-30 1997-06-04 国际商业机器公司 系统总线间的桥接器
CN1423773A (zh) * 2000-01-14 2003-06-11 先进微装置公司 于处理器中建立的操作模式
US6654818B1 (en) * 2000-06-22 2003-11-25 International Business Machines Corporation DMA access authorization for 64-bit I/O adapters on PCI bus
CN1430150A (zh) * 2001-12-29 2003-07-16 深圳市中兴通讯股份有限公司上海第二研究所 通信系统中分系统间的虚拟内存分配管理方法
CN1517882A (zh) * 2003-01-16 2004-08-04 矽统科技股份有限公司 内存地址的重新映射方法
US20070245041A1 (en) * 2006-03-21 2007-10-18 Binh Hua Method to improve system DMA mapping while substantially reducing memory fragmentation

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102646074A (zh) * 2012-02-22 2012-08-22 中国人民解放军国防科学技术大学 龙芯3a平台大内存设备的地址映射方法
CN102646074B (zh) * 2012-02-22 2015-04-15 中国人民解放军国防科学技术大学 龙芯3a平台大内存设备的地址映射方法
CN105955892A (zh) * 2016-04-25 2016-09-21 浪潮电子信息产业股份有限公司 一种计算机系统中地址空间的扩展方法
CN107870870A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
CN107870736A (zh) * 2016-09-28 2018-04-03 龙芯中科技术有限公司 支持大于4gb非线性闪存的方法及装置
CN107870867A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
CN107870736B (zh) * 2016-09-28 2021-08-10 龙芯中科技术股份有限公司 支持大于4gb非线性闪存的方法及装置
CN109408407A (zh) * 2018-10-19 2019-03-01 龙芯中科技术有限公司 显示内存的分配方法和装置
CN109408407B (zh) * 2018-10-19 2021-08-03 龙芯中科技术股份有限公司 显示内存的分配方法和装置

Similar Documents

Publication Publication Date Title
CN102331978A (zh) 一种龙芯刀片大内存地址设备dma控制器访问的实现方法
US9852081B2 (en) STLB prefetching for a multi-dimension engine
IN2012DN00935A (zh)
US9672148B1 (en) Methods and apparatus for direct cache-line access to attached storage with cache
KR101708402B1 (ko) 메모리를 디프래그멘팅하기 위한 시스템 및 방법
US7707383B2 (en) Address translation performance in virtualized environments
US9405703B2 (en) Translation lookaside buffer
US20150347349A1 (en) Direct access to local memory in a pci-e device
WO2013167886A3 (en) Data processing apparatus having cache and translation lookaside buffer
RU2491616C2 (ru) Устройство, способ и система управления матрицами
KR20120054549A (ko) 디스플레이 파이프 내에서의 스트리밍 변환
JP2017073129A5 (zh)
RU2017138467A (ru) Программируемые устройства для обработки запросов передачи данных памяти
WO2010004242A3 (en) Data processing apparatus, for example using vector pointers
JP2016541046A5 (zh)
BR112013033792A2 (pt) sistema de computador, método para acessar um dispositivo de ponto de extremidade de interconexão de componentes periféricos expressos e aparelho
US9588902B2 (en) Flexible page sizes for virtual memory
WO2012082416A3 (en) Cpu in memory cache architecture
US20140181460A1 (en) Processing device with address translation probing and methods
WO2005114669A3 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
KR20180088525A (ko) 스위치들 내의 어드레스 캐싱
IN2012DN00934A (zh)
WO2009124014A8 (en) Cache optimization
US9367474B2 (en) Translating cache hints
CN101030182A (zh) 执行dma数据传输的设备和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120125