CN105786735A - 一种直接内存存取dma控制器及数据访问方法 - Google Patents

一种直接内存存取dma控制器及数据访问方法 Download PDF

Info

Publication number
CN105786735A
CN105786735A CN201610094808.XA CN201610094808A CN105786735A CN 105786735 A CN105786735 A CN 105786735A CN 201610094808 A CN201610094808 A CN 201610094808A CN 105786735 A CN105786735 A CN 105786735A
Authority
CN
China
Prior art keywords
dma
address
dma controller
restriction
source
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
CN201610094808.XA
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.)
Datang Microelectronics Technology Co Ltd
Datang Semiconductor Design Co Ltd
Original Assignee
Datang Microelectronics Technology Co Ltd
Datang Semiconductor Design 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 Datang Microelectronics Technology Co Ltd, Datang Semiconductor Design Co Ltd filed Critical Datang Microelectronics Technology Co Ltd
Priority to CN201610094808.XA priority Critical patent/CN105786735A/zh
Publication of CN105786735A publication Critical patent/CN105786735A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

一种直接内存存取DMA控制器,所述DMA控制器包括信息接收模块、控制模块以及处理模块:信息接收模块用于接收中央处理器CPU为DMA控制器配置的参数;控制模块用于当处于DMA工作模式时,根据参数判断是否允许处理模块运行;处理模块用于进行DMA数据读写操作;其中,参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。上述方案通过配置限制访问区域,实现了DMA控制器数据访问的安全性。同时,DMA控制器工作时不占用***总线,使DMA控制器与CPU可以并行工作,有效提高了处理效率。

Description

一种直接内存存取DMA控制器及数据访问方法
技术领域
本发明涉及计算机领域,具体涉及一种直接内存存取DMA控制器及数据访问方法。
背景技术
随着互联网及电子产品的快速发展,含有音频、视频等大量数据的应用软件考验着硬件芯片的数据处理能力,大量数据的快速传输已成为当今芯片的重要性能指标。
相对于传统***中的CPU直接传输数据方式、查询方式及中断方式,DMA控制器采取的传输方式为作用于存储器之间、存储器与外设之间、外设与外设之间直接交换数据,不执行CPU读写指令,且不需要经过CPU缓存,减少了中间环节。只要完成配置DMA控制器,所有读写时序全部由硬件执行,因此大大提高了传送数据的速率。
如图1所示,为现有设计的DMA***结构框图。CPU工作模式中:通过***总线(SYS_BUS),CPU可以单独访问DMA控制器、源存储器或外设(Src)、目的存储器或外设(Dst)。DMA工作模式中:通过SYS_BUS,CPU配置DMA内部功能寄存器,包括传输长度、源起始地址、目的起始地址、传输方向、工作使能等。
使能打开后,DMA开始工作。首先,通过SYS_BUS,从源起始地址读出的数据送进DMA暂存,完成一次读操作。然后,DMA再将数据写入目的起始地址,完成一次写操作。同时,源地址、目的地址增加至下一次读、写操作的地址。依此,进行后续的从Src读出数据,并写入Dst的操作。直至所有数据全部传输完毕,DMA工作完毕,释放总线。
现有设计的DMA控制器,DMA可任意访问存储器空间数据、安全性低的技术缺陷。从设计原理上,现有设计的DMA控制器,由于设计简单,很少考虑存储器空间访问限制的数据安全问题。一般地,在设计中加入MPU(MemoryProtectionUnit)模块,通过MPU来控制Flash或RAM的高安全数据访问限制权限,以此来区分超级用户和普通用户。超级用户可配置MPU,划分核心与普通数据区;普通用户不可配置MPU,无法访问核心数据区,重要数据得到安全保护。
以上技术方案只针对通过CPU的指令方式访问存储器数据。一般地,现有设计的DMA模块只是加速数据搬移,很少考虑数据访问权限。这样,DMA作为CPU之外的Host,通过***总线或私有总线可以访问任何存在的地址空间。限制DMA访问,需要在总线或存储器接口模块中,增加访问限制功能的设计,导致***复杂化,数据速度较慢等缺点。
发明内容:
本发明提供一种直接内存存取DMA控制器及数据访问方法,以提高数据访问的安全性。
为解决上述技术问题,本发明提供一种直接内存存取DMA控制器,所述DMA控制器包括信息接收模块、控制模块以及处理模块:
所述信息接收模块用于接收中央处理器CPU为所述DMA控制器配置的参数;
所述控制模块用于当处于DMA工作模式时,根据所述参数判断是否允许处理模块运行;
所述处理模块用于进行DMA数据读写操作;
其中,所述参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。
可选地,
所述控制模块用于根据所述参数判断是否允许DMA数据读写操作具体是指:
根据所述CPU配置的源起始地址和传输长度确定源地址工作范围;
如果所述源地址工作范围与所述源地址限制范围存在交集,则禁止所述DMA数据读写操作。
可选地,
所述判断模块用于根据所述参数判断是否允许DMA数据读写操作具体是指:
根据所述CPU配置的目的起始地址和传输长度确定目的地址工作范围;
如果所述目的地址工作范围与所述目的地址限制范围存在交集,则禁止所述DMA数据读写操作。
可选地,
所述DMA控制器还包括:
第一接口和第二接口;
所述第一接口通过第一内部总结与源设备相连接;所述第二接口通过第二内部总线与目的设备相连接;
所述处理模块用于进行DMA数据读写操作具体是指:
当所述控制模块判断允许所述处理模块运行时,通过所述第一接口从所述源设备读取数据,还用于通过所述第二接口将所述数据写入所述目的设备。
可选地,
所述控制模块还用于当判断禁止所述DMA数据读写操作时发出中断信号。
可选地,
所述源地址限制范围为[源地址限制起始值,源地址限制结束值],所述目的地址限制范围为[目的地址限制起始值,目的地址限制结束值];
所述控制模块还用于当所述源地址限制起始值大于源地址限制结束值,或,所述目的地址限制起始值大于目的地址限制结束值时,禁止所述DMA控制器启动,并发出中断信号。
本发明提供还一种数据访问方法,应用于如权利要求1至6任一项所述的DMA控制器,所述方法包括:
直接内存存取DMA控制器接收中央处理器CPU为所述DMA控制器配置的参数;
当处于DMA工作模式时,所述DMA控制器根据所述参数判断是否允许DMA数据读写操作;
其中,所述参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。
8、如权利要求7所述的方法,其特征在于:
所述DMA控制根据所述参数判断是否允许DMA数据读写操作包括:
根据所述CPU配置的源起始地址和传输长度确定源地址工作范围;
如果所述源地址工作范围与所述源地址限制范围存在交集,则禁止所述DMA数据读写操作。
9、如权利要求7所述的方法,其特征在于:
所述DMA控制根据所述参数判断是否允许DMA数据读写操作包括:
根据所述CPU配置的目的起始地址和传输长度确定目的地址工作范围;
如果所述目的地址工作范围与所述目的地址限制范围存在交集,则禁止所述DMA数据读写操作。
10、如权利要求6至9任一所述的方法,其特征在于,当判断允许所述DMA数据读写操作时,所述方法还包括:
所述DMA控制器通过第一接口从源设备读取数据,以及通过第二接口将所述数据写入目的设备。
11、如权利要求6至9任一所述的方法,其特征在于,当判断禁止所述DMA数据读写操作时,所述方法还包括:
所述DMA控制器发出中断信号。
12、如权利要求6所述的方法,其特征在于;
所述源地址限制范围为[源地址限制起始值,源地址限制结束值],所述目的地址限制范围为[目的地址限制起始值,目的地址限制结束值];
所述方法还包括:
当所述源地址限制起始值大于源地址限制结束值,或,所述目的地址限制起始值大于目的地址限制结束值时,禁止所述DMA控制器启动,并发出中断信号。
上述方案通过配置限制访问区域,实现了DMA控制器数据访问的安全性。同时,DMA控制器工作时不占用***总线,使DMA控制器与CPU可以并行工作,有效提高了处理效率。
附图说明
图1为现有技术的DMA***结构示意图;
图2为实施例一中的DMA控制器结构示意图;
图3为实施例一中的DMA控制器的另一结构示意图;
图4为实施例二中的DMA控制器的示意图;
图5为实施例二中的DMA控制器的工作示意图;
图6为实施例二中的DMA控制器数据传输的仿真图;
图7为实施例二中的DMA控制器源/目的地址访问限制配置错误仿真图;
图8为实施例二中的DMA控制器源地址访问限制报警仿真图;
图9为实施例二中的DMA控制器目的地址访问限制报警仿真图;
图10为实施例三中的数据访问方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
如图2所示,本实施例提供一种直接内存存取DMA控制器,所述DMA控制器包括:
所述DMA控制器包括信息接收模块11、控制模块12以及处理模块13:
所述信息接收模块11用于接收中央处理器CPU为所述DMA控制器配置的参数;
所述控制模块12用于当处于DMA工作模式时,根据所述参数判断是否允许处理模块运行;
所述处理模块13用于进行DMA数据读写操作;
其中,所述参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。
可选地,
所述控制模块12用于根据所述参数判断是否允许DMA数据读写操作具体是指:
根据所述CPU配置的源起始地址和传输长度确定源地址工作范围;
如果所述源地址工作范围与所述源地址限制范围存在交集,则禁止所述DMA数据读写操作。
可选地,
所述判断模块12用于根据所述参数判断是否允许DMA数据读写操作具体是指:
根据所述CPU配置的目的起始地址和传输长度确定目的地址工作范围;
如果所述目的地址工作范围与所述目的地址限制范围存在交集,则禁止所述DMA数据读写操作。
可选地,
如图3所示,所述DMA控制器还包括:
第一接口14和第二接口15;
所述第一接口14通过第一内部总结与源设备相连接;所述第二接口15通过第二内部总线与目的设备相连接;
所述处理模块13用于进行DMA数据读写操作具体是指:
当所述控制模块判断允许所述处理模块运行时,通过所述第一接口从所述源设备读取数据,还用于通过所述第二接口将所述数据写入所述目的设备。
可选地,
所述控制模块12还用于当判断禁止所述DMA数据读写操作时发出中断信号。
可选地,
所述源地址限制范围为[源地址限制起始值,源地址限制结束值],所述目的地址限制范围为[目的地址限制起始值,目的地址限制结束值];
所述控制模块还用于当所述源地址限制起始值大于源地址限制结束值,或,所述目的地址限制起始值大于目的地址限制结束值时,禁止所述DMA控制器启动,并发出中断信号。
实施例二
如图4所示,当处于CPU工作模式时,CPU通过***总线(SYS_BUS),CPU可以单独访问DMA控制器、源存储器或外设(Src)、目的存储器或外设(Dst)。当处于DMA工作模式时,CPU通过SYS_BUS配置DMA控制器内部功能寄存器的参数,然后将配置的参数发送给DMA控制器。参数可以包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围、工作使能等。
当DMA控制器的使能打开后,DMA控制器开始工作。对于CPU配置的源地址限制范围以及目的地址限制范围,DMA控制器不可以访问。
根据配置的源起始地址、目的起始地址以及传输长度可以确定工作地址范围,如果源工作地址范围与源地址限制范围存在交集,或者,目的工作地址范围与目的地址限制范围存在交集,则不允许DMA控制进行数据传输,也就是不允许DMA控制器从Src读取数据并且不允许DMA控制器向Dst写入数据,同时DMA控制器发出中断信号。
如果源工作地址范围与源地址限制范围不存在交集并且目的工作地址范围与目的地址限制范围不存在交集,则允许DMA控制进行数据传输,DMA控制器从Src读出数据,然后向Dst写入数据。
下面从以下几个方面进一步说明本实施例的技术方案。
一、DMA控制器的工作原理。
如图5所示,CPU对DMA控制器的内部功能寄存器进行配置参数,参数包括:传输长度(len),传输宽度(width),源起始地址(Base_src_addr),目的起始地址(Base_dst_addr)、源地址限制范围(Noaccess)以及目的地址限制范围(Noaccess),最后CPU配置工作使能(en)。当DMA控制器的工作使能打开后,DMA控制器开始工作。
在本实施例中DMA控制采用“先读后写”的时序进行数据传输。
首先,读指针(Rd)指向源起始地址(Base_src_addr),读取数据进入DMA,DMA内部进行数据宽度转换(8/16/32bits),源地址增加量(Src_addr_inc)增加;然后,写指针(Wr)指向目的起始地址(Base_dst_addr),写入存储器相应地址。
完成写操作之后,目的地址增加量(Dst_addr_inc)增加,下一次读操作,Rd指向源地址(Base_src_addr+Src_addr_inc);下一次写操作,Wr指向目的地址(Base_dst_addr+Dst_addr_inc),完成数据读写。
依此,后面每次数据传输Src_addr_inc和Dst_addr_inc都会递增。直到数据传输长度等于len,表示所有数据传输结束,DMA控制器停止工作。
如源地址搬移范围(Base_src_addr+len)和目的地址搬移范围(Base_dst_addr+len)在访问受限区域内,则即时使能打开,DMA控制器也不能进行数据读写操作,也就是无法进行数据传输,同时DMA控制发出中断信号。
二、内部功能寄存器
1、地址访问限制寄存器
2、中断状态寄存器:Dmac_intr
本实施例的技术方案中,在DMA控制器中设置有地址访问限制寄存器和中断状态寄存器。对于地址访问限制寄存器,通过源地址范文限制范围起始寄存器(Dmac_src_addr_limt_s)与源地址访问限制范围的结束寄存器(Dmac_src_addr_limt_f)划定一个源地址限制范围,DMA控制器的源地址工作范围不能与源地址限制范围有交集。如果DMA控制器的源地址工作范围与源地址限制范围有交集,则中断寄存器Dmac_intr[2](Src_addr_limt_warn)源地址访问限制寄存器报警。
同样,通过目的地址范文限制范围起始寄存器(Dmac_dst_addr_limt_s)与通过目的地址范文限制范围结束寄存器(Dmac_dst_addr_limt_f)划定一个目的地址限制范围,DMA控制器的目的地址工作范围不能与目的地址限制范围有交集。如果DMA控制器的目的地址工作范围与目的地址限制范围有交集,则中断寄存器Dmac_intr[1](Dst_addr_limt_warn)目标地址访问限制寄存器报警。
三、电路仿真波形
1、场景一
该场景中DMA控制器正常进行数据传输,数据宽度32bits
如图6所示为数据宽度32bits传输仿真图。配置信息:Dmac_src_addr=32’h2000_5000,Dmac_dst_addr=32’h2100_0000,Dmac_len=“3”(传输4次),Dmac_width=“0”(源—>目的数据宽度为32—>32bits),访问限制寄存器未配置(Dmac_src_addr_limt_s/f,Dmac_dst_addr_limt_s/f),当使能Dmac_en=“1”时,DMA开始工作。
Src_addr从“32’h2000_5000”开始,读控制信号Dmac_src_rd为“1”时,读数据Src_rd_data为“03020100”。读操作之后,Dst_addr从“2100_0000”开始,写控制Dmac_dst_wr为“1”时,写入数据Dst_wr_data为“03020100”,且Dmac_src_addr、Dmac_dst_addr增加。至此完成一次读写。
此次读写各操作4次,传输4words。数据传输完毕,发出中断Dmac_intr为“1”,使能信号Dmac_en置“0”,DMA控制器工作完毕。
2、场景二
该场景下源/目的地址访问限制配置错误。
如图7所示为源/目的地址访问限制配置错误仿真图。配置信息:Dmac_src_addr=32’h2000_5000,Dmac_dst_addr=32’h2100_0000,Dmac_len=“3”(传输4次),Dmac_width=“0”(表示从源—>目的宽度为32—>32bits)。访问限制寄存器:Dmac_src_addr_limt_s=32h2000_700c,大于Dmac_src_addr_limt_f=32h2000_6000;Dmacdst_addr_limt_s=32h2010_600c,大于Dmac_src_addr_limt_f=32h2010_5800,配置错误。Src_limt_conf_err、Dst_limt_conf_err均至1,DMA控制器发出中断Dmac_intr为“1”。此时无法打开DMA控制器的工作使能,DMA控制器无法启动。
四、源地址访问限制报警
如图8所示为源地址访问限制报警仿真图。配置信息:Dmac_src_addr=32’h2000_5000,Dmac_dst_addr=32’h2100_0000,Dmac_len=“3”(传输4次),Dmac_width=“0”(表示从源—>目的宽度为32—>32bits)。访问限制寄存器:Dmac_src_addr_limt_s=32h2000_500c,Dmac_src_addr_limt_f=32h2000_6000。
源地址范围:Dmac_src_addr+len=32’h2000_5000~2000_500c,最后一次传输的地址与源访问限制地址交集,所以源地址访问限制报警,src_addr_limt_warn=“1”,发出中断Dmac_intr为“1”。此时DMA控制器无法开开工作使能,DMA控制器无法启动。
五、目的地址访问限制报警
如图9所示为目的地址访问限制报警仿真图。配置信息:Dmac_src_addr=32’h2000_5000,Dmac_dst_addr=32’h2100_0000,Dmac_len=“3”(传输4次),Dmac_width=“0”(表示从源—>目的宽度为32—>32bits)。访问限制寄存器:Dmac_dst_addr_limt_s=32h2010_000c,Dmac_dst_addr_limt_f=32h2010_5800。
目的地址范围:Dmac_dst_addr+len=32’h2010_0000~2010_000c,最后一次传输的地址与目的访问限制地址交集,所以目的地址访问限制报警,src_addr_limt_warn=“1”,发出中断Dmac_intr为“1”。此时DMA控制器无法打开工作使能,DMA控制器无法启动。
上述技术方案解决了DMA控制器访问的权限问题,支持源地址和目的地址范围访问限制,保护核心数据区。通过配置源/目的起始地址和传输长度,可以确定DMA访问存储器的工作地址范围。正常工作范围与配置的源/目的受限范围有交集,则DMA无法启动,并发出中断报警通知CPU处理,从而保护核心数据区。
同时,本发明实施例的DMA控制器工作时通过内部总线读写数据,不占用***总线。当DMA控制器工作时,CPU可以通过***总线访问其它从模块(除了DMA控制器工作传输涉及的Src和Dst),实现进程两线运行,并且可及时处理外设或其它模块(除了DMA控制器工作传输涉及的Src和Dst)的中断信号,使用方便。
实施例三
如图10所示,本实施例提供一种数据访问方法,应用于本发明实施例中的DMA控制器,所述方法包括:
步骤S10:直接内存存取DMA控制器接收中央处理器CPU为所述DMA控制器配置的参数;
步骤S20:当处于DMA工作模式时,所述DMA控制器根据所述参数判断是否允许DMA数据读写操作;
其中,所述参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。
可选地,
所述DMA控制根据所述参数判断是否允许DMA数据读写操作包括:
根据所述CPU配置的源起始地址和传输长度确定源地址工作范围;
如果所述源地址工作范围与所述源地址限制范围存在交集,则禁止所述DMA数据读写操作。
可选地,
所述DMA控制根据所述参数判断是否允许DMA数据读写操作包括:
根据所述CPU配置的目的起始地址和传输长度确定目的地址工作范围;
如果所述目的地址工作范围与所述目的地址限制范围存在交集,则禁止所述DMA数据读写操作。
可选地,
当判断允许所述DMA数据读写操作时,所述方法还包括:
所述DMA控制器通过第一接口从源设备读取数据,以及通过第二接口将所述数据写入目的设备。
可选地,
当判断禁止所述DMA数据读写操作时,所述方法还包括:
所述DMA控制器发出中断信号。
可选地,
所述源地址限制范围为[源地址限制起始值,源地址限制结束值],所述目的地址限制范围为[目的地址限制起始值,目的地址限制结束值];
所述方法还包括:
当所述源地址限制起始值大于源地址限制结束值,或,所述目的地址限制起始值大于目的地址限制结束值时,禁止所述DMA控制器启动,并发出中断信号。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/模块可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。

Claims (12)

1.一种直接内存存取DMA控制器,其特征在于:
所述DMA控制器包括信息接收模块、控制模块以及处理模块:
所述信息接收模块用于接收中央处理器CPU为所述DMA控制器配置的参数;
所述控制模块用于当处于DMA工作模式时,根据所述参数判断是否允许处理模块运行;
所述处理模块用于进行DMA数据读写操作;
其中,所述参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。
2.如权利要求1所述的方法,其特征在于:
所述控制模块用于根据所述参数判断是否允许DMA数据读写操作具体是指:
根据所述CPU配置的源起始地址和传输长度确定源地址工作范围;
如果所述源地址工作范围与所述源地址限制范围存在交集,则禁止所述DMA数据读写操作。
3.如权利要求1所述的方法,其特征在于:
所述判断模块用于根据所述参数判断是否允许DMA数据读写操作具体是指:
根据所述CPU配置的目的起始地址和传输长度确定目的地址工作范围;
如果所述目的地址工作范围与所述目的地址限制范围存在交集,则禁止所述DMA数据读写操作。
4.如权利要求1至3任一项所述的DMA控制器,其特征在于,所述DMA控制器还包括:
第一接口和第二接口;
所述第一接口通过第一内部总结与源设备相连接;所述第二接口通过第二内部总线与目的设备相连接;
所述处理模块用于进行DMA数据读写操作具体是指:
当所述控制模块判断允许所述处理模块运行时,通过所述第一接口从所述源设备读取数据,还用于通过所述第二接口将所述数据写入所述目的设备。
5.如权利要求1至3任一项所述的DMA控制器,其特征在于:
所述控制模块还用于当判断禁止所述DMA数据读写操作时发出中断信号。
6.如权利要求1所述的DMA控制器,其特征在于;
所述源地址限制范围为[源地址限制起始值,源地址限制结束值],所述目的地址限制范围为[目的地址限制起始值,目的地址限制结束值];
所述控制模块还用于当所述源地址限制起始值大于源地址限制结束值,或,所述目的地址限制起始值大于目的地址限制结束值时,禁止所述DMA控制器启动,并发出中断信号。
7.一种数据访问方法,其特征在于,应用于如权利要求1至6任一项所述的DMA控制器,所述方法包括:
直接内存存取DMA控制器接收中央处理器CPU为所述DMA控制器配置的参数;
当处于DMA工作模式时,所述DMA控制器根据所述参数判断是否允许DMA数据读写操作;
其中,所述参数包括传输长度、源起始地址、目的起始地址、源地址限制范围以及目的地址限制范围。
8.如权利要求7所述的方法,其特征在于:
所述DMA控制根据所述参数判断是否允许DMA数据读写操作包括:
根据所述CPU配置的源起始地址和传输长度确定源地址工作范围;
如果所述源地址工作范围与所述源地址限制范围存在交集,则禁止所述DMA数据读写操作。
9.如权利要求7所述的方法,其特征在于:
所述DMA控制根据所述参数判断是否允许DMA数据读写操作包括:
根据所述CPU配置的目的起始地址和传输长度确定目的地址工作范围;
如果所述目的地址工作范围与所述目的地址限制范围存在交集,则禁止所述DMA数据读写操作。
10.如权利要求6至9任一所述的方法,其特征在于,当判断允许所述DMA数据读写操作时,所述方法还包括:
所述DMA控制器通过第一接口从源设备读取数据,以及通过第二接口将所述数据写入目的设备。
11.如权利要求6至9任一所述的方法,其特征在于,当判断禁止所述DMA数据读写操作时,所述方法还包括:
所述DMA控制器发出中断信号。
12.如权利要求6所述的方法,其特征在于;
所述源地址限制范围为[源地址限制起始值,源地址限制结束值],所述目的地址限制范围为[目的地址限制起始值,目的地址限制结束值];
所述方法还包括:
当所述源地址限制起始值大于源地址限制结束值,或,所述目的地址限制起始值大于目的地址限制结束值时,禁止所述DMA控制器启动,并发出中断信号。
CN201610094808.XA 2016-02-19 2016-02-19 一种直接内存存取dma控制器及数据访问方法 Pending CN105786735A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610094808.XA CN105786735A (zh) 2016-02-19 2016-02-19 一种直接内存存取dma控制器及数据访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610094808.XA CN105786735A (zh) 2016-02-19 2016-02-19 一种直接内存存取dma控制器及数据访问方法

Publications (1)

Publication Number Publication Date
CN105786735A true CN105786735A (zh) 2016-07-20

Family

ID=56403416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610094808.XA Pending CN105786735A (zh) 2016-02-19 2016-02-19 一种直接内存存取dma控制器及数据访问方法

Country Status (1)

Country Link
CN (1) CN105786735A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339643A (zh) * 2016-08-23 2017-01-18 苏州国芯科技有限公司 一种对易失存储体权限保护的方法与***
CN107844435A (zh) * 2017-11-08 2018-03-27 北京锐安科技有限公司 一种缓存***、方法及装置
CN108197039A (zh) * 2017-12-28 2018-06-22 湖南国科微电子股份有限公司 一种ssd控制器混合流数据的传输方法和***
CN109074335A (zh) * 2017-12-29 2018-12-21 深圳市大疆创新科技有限公司 数据处理方法、设备、dma控制器及计算机可读存储介质
CN109460665A (zh) * 2018-10-25 2019-03-12 石生花微电子(南京)有限公司 一种用于保护芯片中敏感信息的装置及方法
CN111782154A (zh) * 2020-07-13 2020-10-16 北京四季豆信息技术有限公司 数据搬移方法、装置及***
CN112115096A (zh) * 2020-09-16 2020-12-22 天津津航计算技术研究所 一种基于嵌入式微处理器的数据传输控制方法
CN112256605A (zh) * 2020-11-03 2021-01-22 蔺建琪 安全dma控制器及数据搬运方法
CN114416614A (zh) * 2022-01-19 2022-04-29 安徽芯纪元科技有限公司 一种用于保护现场和恢复现场的中断处理模块

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295281A (zh) * 2008-06-05 2008-10-29 北京中星微电子有限公司 一种对存储设备进行访问权限限制的方法及存储设备
CN101504632A (zh) * 2009-01-21 2009-08-12 北京红旗胜利科技发展有限责任公司 一种dma数据传输方法、***及一种dma控制器
CN101702144A (zh) * 2009-11-23 2010-05-05 北京天童芯源科技有限公司 一种dma控制器的控制装置及控制方法
CN104021099A (zh) * 2014-06-19 2014-09-03 大唐微电子技术有限公司 一种控制数据传输的方法及dma控制器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295281A (zh) * 2008-06-05 2008-10-29 北京中星微电子有限公司 一种对存储设备进行访问权限限制的方法及存储设备
CN101504632A (zh) * 2009-01-21 2009-08-12 北京红旗胜利科技发展有限责任公司 一种dma数据传输方法、***及一种dma控制器
CN101702144A (zh) * 2009-11-23 2010-05-05 北京天童芯源科技有限公司 一种dma控制器的控制装置及控制方法
CN104021099A (zh) * 2014-06-19 2014-09-03 大唐微电子技术有限公司 一种控制数据传输的方法及dma控制器

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106339643A (zh) * 2016-08-23 2017-01-18 苏州国芯科技有限公司 一种对易失存储体权限保护的方法与***
CN107844435A (zh) * 2017-11-08 2018-03-27 北京锐安科技有限公司 一种缓存***、方法及装置
CN108197039A (zh) * 2017-12-28 2018-06-22 湖南国科微电子股份有限公司 一种ssd控制器混合流数据的传输方法和***
CN108197039B (zh) * 2017-12-28 2022-01-11 湖南国科微电子股份有限公司 一种ssd控制器混合流数据的传输方法和***
CN109074335A (zh) * 2017-12-29 2018-12-21 深圳市大疆创新科技有限公司 数据处理方法、设备、dma控制器及计算机可读存储介质
CN109460665A (zh) * 2018-10-25 2019-03-12 石生花微电子(南京)有限公司 一种用于保护芯片中敏感信息的装置及方法
CN111782154A (zh) * 2020-07-13 2020-10-16 北京四季豆信息技术有限公司 数据搬移方法、装置及***
CN111782154B (zh) * 2020-07-13 2023-07-04 芯象半导体科技(北京)有限公司 数据搬移方法、装置及***
CN112115096A (zh) * 2020-09-16 2020-12-22 天津津航计算技术研究所 一种基于嵌入式微处理器的数据传输控制方法
CN112256605A (zh) * 2020-11-03 2021-01-22 蔺建琪 安全dma控制器及数据搬运方法
CN112256605B (zh) * 2020-11-03 2024-05-17 蔺建琪 安全dma控制器及数据搬运方法
CN114416614A (zh) * 2022-01-19 2022-04-29 安徽芯纪元科技有限公司 一种用于保护现场和恢复现场的中断处理模块

Similar Documents

Publication Publication Date Title
CN105786735A (zh) 一种直接内存存取dma控制器及数据访问方法
US20240078188A1 (en) Direct host access to storage device memory space
KR101988260B1 (ko) 임베디드 멀티미디어 카드, 및 이의 동작 방법
US9304938B2 (en) Storage device and data transferring method thereof
US8990462B2 (en) Storage device, computing system including the same and data transferring method thereof
EP2530593B1 (en) Nonvolatile memory, memory controller, nonvolatile memory accessing method, and program
US8874959B2 (en) Information processing apparatus, image forming apparatus, and information processing program
JP5546635B2 (ja) データ転送装置およびその制御方法
US9152825B2 (en) Using storage controller bus interfaces to secure data transfer between storage devices and hosts
KR101986355B1 (ko) 임베디드 멀티미디어 카드, 상기 임베디드 멀티미디어 카드를 포함하는 임베디드 멀티미디어 카드 시스템 및 상기 임베디드 멀티미디어 카드의 동작 방법
US10133497B1 (en) SPI command censoring method and apparatus
US11017126B2 (en) Apparatus and method of detecting potential security violations of direct access non-volatile memory device
WO2013128494A1 (en) Storage system and data transfer control method
CN111191214B (zh) 一种嵌入式处理器及数据保护方法
US9274860B2 (en) Multi-processor device and inter-process communication method thereof
US10860507B2 (en) Electronic systems having serial system bus interfaces and direct memory access controllers and methods of operating the same
BR102013022935A2 (pt) Dispositivo de memória flash serial de múltiplos fluxos de dados
GB2501587A (en) Managing a storage device using a hybrid controller
US20110072168A1 (en) Data transfer system with different operating modes
KR20150100565A (ko) 랩핑된 판독 대 연속적인 판독을 갖는 메모리 서브 시스템
US9990494B2 (en) Techniques for enabling co-existence of multiple security measures
WO2021093249A1 (zh) 外部设备访问计算机内存的方法
US10261700B1 (en) Method and apparatus for streaming buffering to accelerate reads
US8131893B2 (en) Memory device that mediates mutual communication among a pluraliity of CPUs
CN110489359B (zh) 一种数据传输控制方法及***

Legal Events

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

Application publication date: 20160720

RJ01 Rejection of invention patent application after publication