CN101256541A - 一种直接存储访问控制器数据传输***与方法 - Google Patents
一种直接存储访问控制器数据传输***与方法 Download PDFInfo
- Publication number
- CN101256541A CN101256541A CNA2008101025551A CN200810102555A CN101256541A CN 101256541 A CN101256541 A CN 101256541A CN A2008101025551 A CNA2008101025551 A CN A2008101025551A CN 200810102555 A CN200810102555 A CN 200810102555A CN 101256541 A CN101256541 A CN 101256541A
- Authority
- CN
- China
- Prior art keywords
- memory
- direct
- transmission
- access controller
- microcontroller
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims description 20
- 230000015654 memory Effects 0.000 claims description 106
- 238000003860 storage Methods 0.000 abstract description 22
- 230000005055 memory storage Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000010297 mechanical methods and process Methods 0.000 description 1
- 230000005226 mechanical processes and functions Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000010181 polygamy Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种直接存储访问控制器数据传输***,其包括:第一存储器、第二存储器、微控制器、直接存储访问控制器。所述直接存储访问控制器包括有命令寄存器,所述微控制器给所述命令寄存器配置访问第一存储器的访问命令。在需要直接存储访问传输时,所述微控制器启动所述直接存储访问控制器,所述直接存储访问控制器根据所述命令寄存器的内容向所述第一存储器发送访问命令以启动第一存储器与第二存储器之间的直接存储访问传输。这样不但省去了很多握手时间,还减轻了微控制器的工作负担,提高了工作效率。
Description
【技术领域】
本发明涉及数据处理领域,特别涉及一种直接存储访问(Direct MemoryAccess,简称DMA)控制器数据传输***及方法。
【背景技术】
目前,计算机***和外部设备之间、或者计算机***不同内存之间的数据传输通常通过中央处理器(Central Processor Unit,简称CPU)进行。CPU可以采用程控法或者中断法控制与外部设备之间的数据传输,但是这两种数据传输的方式都比较慢。当高速外部设备和计算机***内存之间、或者计算机***中不同的内存之间进行大量数据快速传输时,这两种数据传输的方式就在一定程度上限制了数据传输的速率。为了提高计算机***和外部设备之间、或者计算机***不同内存之间数据传输的速度,出现了DMA(DirectMemory Access)技术。DMA技术是一种高速的数据传输操作,其允许计算机***和外部设备之间、或者计算机***不同内存之间直接读写数据,即不通过CPU、也不需要CPU干预。整个数据传输的操作在DMA控制器的控制下进行,CPU除了在数据传输开始和结束时,给出数据传输开始和结束的指令,在数据传输的过程中对数据传输不再进行其他的处理。这样,在大部分时间内,CPU处理其他过程和数据传输过程可以并行操作,使整个计算机***的效率大大提高。
同样地,在嵌入式芯片***或者DSP***中,为了提高数据传输的速度和***的工作效率,也可以通过DMA技术传输数据。现有的DMA控制器对芯片外部的存储器进行读写的一般包括如下步骤:芯片内部的微控制器(Micro Controller Unit,简称MCU)通过输入输出接口向芯片外部的存储器发送读写命令;MCU通过输入输出接口给外部的存储器配置读写地址;MCU控制DMA控制器启动DMA通过输入输出接口向外部存储器读写数据;DMA控制器读写数据完毕,发中断给MCU,MCU决定下一次DMA传输是否开始,如果开始,则回到第一步。
由此可以看出,现有的DMA控制器对芯片外部存储器进行读写,都是通过内部MCU对外部存储器发送读写命令,然后把控制权交给DMA控制器,再进行数据读写,这样浪费了很多握手时间。
【发明内容】
本发明的目的在于提供一种直接存储访问控制器数据传输***及方法,其可以加快硬件速度、提高传输带宽。
根据本发明的一方面,本发明提供了一种直接存储访问控制器数据传输***,其包括第一存储器、第二存储器、微控制器、直接存储访问控制器。所述直接存储访问控制器包括有命令寄存器,所述微控制器给所述命令寄存器配置访问第一存储器的访问命令。在需要直接存储访问传输时,所述微控制器启动所述直接存储访问控制器,所述直接存储访问控制器根据所述命令寄存器的内容向所述第一存储器发送访问命令以启动第一存储器与第二存储器之间的直接存储访问传输。
进一步的,所述第二存储器、微控制器及直接存储访问控制器集成于一集成电路内,所述集成电路通过其内设置的输入输出接口与第一存储器通信。
进一步的,所述直接存储访问控制器还包括大小寄存器、地址寄存器,所述微控制器给所述大小寄存器配置所述直接存储访问传输的数据量的大小,并给所述地址寄存器配置所述直接存储访问传输的第一存储器的起始地址;所述直接存储访问控制器根据所述地址寄存器的内容向所述第一存储器发送起始地址;所述直接存储访问控制器根据根据大小寄存器中的数据量大小判断所述直接存储访问传输是否完成。
更进一步的,在所述地址寄存器与大小寄存器中配置有数组起始地址和数据量大小。
进一步的,所述直接存储访问控制器还包括控制寄存器,所述控制寄存器内具有直接存储访问传输启动位,所述微控制器通过配置直接存储访问传输启动位来启动所述直接存储访问控制器。
更进一步的,所述控制寄存器内具有直接存储访问传输控制位,所述微控制器通过配置直接存储访问传输控制位来控制在完成所述直接存储访问传输后是否继续进行直接存储访问传输,在需要继续进行直接存储访问传输时,所述直接存储访问控制器根据所述命令寄存器的内容向所述第一存储器再次发送访问命令,就可再次启动第一存储器与第二存储器之间的直接存储访问传输。
根据本发明的另一方面,本发明提供了一种直接存储访问控制器数据传输方法,应用于一数据传输***中,所述***包括第一存储器、第二存储器、微控制器、直接存储访问控制器,所述方法包括:所述微控制器向所述直接存储访问控制器配置访问第一存储器的访问命令及访问第一存储器的起始地址;在需要直接存储访问传输时,所述微控制器启动所述直接存储访问控制器;以及所述直接存储访问控制器向所述第一存储器发送访问命令及起始地址以启动第一存储器与第二存储器之间的直接存储访问传输。
进一步的,所述微控制器还向所述直接存储访问控制器配置传输数据量的大小;在直接存储访问传输时,根据配置的数据量大小判断所述直接存储访问传输是否完成。
进一步的,所述直接存储访问控制器根据所述微控制器的配置来确定是否在完成所述直接存储访问传输后继续进行直接存储访问传输;在需要继续进行直接存储访问传输时,所述直接存储访问控制器向所述第一存储器再次发送访问命令及起始地址以再次启动第一存储器与第二存储器之间的直接存储访问传输。
本发明技术方案与现有的方案相比,在需要重新启动DMA传输时,不是由微控制器向外部存储器发送读写命令,而是由DMA控制器代替微控制器发送读读写命令来启动DMA传输,这样不但省去了很多握手时间,还减轻了微控制器的工作负担,提高了工作效率。
【附图说明】
图1为本发明直接存储访问控制器数据传输***的一个实施例的结构方框图;
图2为本发明直接存储访问控制器数据传输***中的直接存储访问控制器的一个实施例的具体结构方框图;及
图3是本发明直接存储访问控制器数据传输方法的一个实施例的流程示意图。
【具体实施方式】
以下结合附图对本发明具体实施方式进行说明。
在一个实施例中,本发明提出了一种直接存储访问(Direct MemoryAccess,简称DMA)控制器数据传输***,其中图1示出了所述DMA控制器数据传输***的结构方框图。如图1所示,所述DMA控制器数据传输***包括有内部存储器120、DMA控制器140、微处理器(Micro Controller Unit,简称MCU)160、输入输出接口180及外部存储器200。所述内部存储器120、DMA控制器140、微处理器160及输入输出接口180可集成于一集成电路100内。
所述输入输出接口180可以是串行***接口(Serial Peripheral Interface,简称SPI)。所述外部存储器200可以是闪存存储器(Flash Memory)或只读存储器(ROM)。所述内部存储器120可以是随机存储存储器(RAM)或先进先出寄存器(First-In First-Out Register,简称FIFO)。
总体来讲,在需要进行DMA数据传输时,微控制器160将会配置并启动DMA控制器140,随后所述DMA控制器140就直接将外部存储器200内的数据以DMA的方式传输至内部存储器120内或直接将内部存储器120内的数据以DMA的方式传输至外部存储器200内。
请参看图2,其示出了DMA控制器140的一个实施例的具体结构方框图,所述DMA控制器140包括大小寄存器142、地址寄存器144、命令寄存器146及控制寄存器148。所述微控制器160可以给命令寄存器146配置读写外部存储器200的读写命令,比如配置读命令为8’h03、配置写命令为8’h05,这里的读写命令格式是根据外部存储器200的种类来配置的,这样在收到来自命令寄存器146的读写命令时,所述外部存储器200就会识别该命令并作出相应的反应。所述微控制器160还可以给大小寄存器142配置DMA传输的数据量的大小,并给地址寄存器144配置DMA传输的源存储器的起始地址及目标存储器的起始地址。起始地址和数据量大小是成组对应设置的,在一些实施例中,可以根据需要多配置几组起始地址和数据量大小。如果所述DMA传输是需要将数据从外部存储器200传输至内部存储器120,那源存储器就是指外部存储器200,目的存储器就是指内部存储器120;相反,如果所述DMA传输是需要将数据从内部存储器120传输至外部存储器200,那源存储器就是指内部存储器120,目的存储器就是指外部存储器200。所述内部存储器可能是DMA控制器140或微处理器160可以随机访问的存储器或可以从预定好的起始地址访问的存储器,此时就不需要配置所述内部存储器的起始地址,只需要配置外部存储器的起始地址就可以。所述控制寄存器148内有DMA传输启动位、DMA传输控制位、DMA传输中断位。所述微控制器160可以通过配置DMA传输启动位来启动DMA传输,可以通过配置DMA传输控制位来控制在完成DMA传输后是否继续DMA传输。所述DMA控制器140则可以通过配置DMA传输中断位来向微控制器160发送中断。
下面结合图3来描述一下本发明DMA控制器数据传输***的操作过程。这里所说的操作过程,也可以被理解为本发明提出的DMA控制器数据传输方法。
步骤302,所述微控制器160给命令寄存器146配置读写外部存储器200的读写命令。
步骤304,所述微控制器160给大小寄存器142配置DMA传输的数据量大小,并给地址寄存器144配置DMA传输的外部存储器的起始地址。在一些实施例中,还需要配置DMA传输的内部存储器的起始地址。所述起始地址和数据量大小是成组对应设置的。
步骤306,所述MCU根据需要判断是否需要DMA传输,如果是,则转入步骤308;否则,继续此判断步骤。比如,MCU执行的当前程序需要将外部存储器200中的一段数据调入到内部存储器120中以备使用时,所述MCU就可以确定需要进行DMA传输。
步骤308,所述MCU将DMA控制器140中的控制寄存器148中的DMA传输启动控制位配置为启动状态,也就是说,所述MCU发命令启动DMA传输;同时,所述MCU还可以根据需要将控制寄存器148中的DMA传输控制位配置为继续DMA传输或不继续DMA传输。
步骤310,所述DMA控制器140根据命令寄存器146的内容向外部存储器200发送读写命令。
步骤312,所述DMA控制器140根据地址寄存器146的相应内容向外部存储器200发送读写起始地址。如果在地址寄存器146中还配置有内部存储器的起始地址,那么所述DMA控制器140还会根据地址寄存器146的相应内容向内部存储器120发送读写起始地址。
通过步骤310与312,所述DMA控制器140就完成了与外部存储器的DMA传输前的握手动作,接下来便可以开始DMA传输了。
步骤314,所述DMA控制器140根据起始地址将外部存储器200内的数据传输至内部存储器120或将内部存储器120内的数据传输至外部存储器200。
步骤316,将大小寄存器142中的数据量的大小N与已经经过DMA传输的数据量的大小M进行比较以判断是否完成了DMA传输,如果M≥N,则说明传输完成,转入步骤318;否则说明传输未完成,返回步骤314。
步骤318,所述DMA控制器根据控制寄存器148中的DMA传输控制位判断是否需要进行重复读写,如果是,则进入步骤320;否则,进入步骤322。
步骤320,判断是否需要发送中断,如果是,则进入步骤324;否则,返回步骤310。
步骤322,判断是否需要发送中断,如果是,则进入步骤324;否则,返回步骤306。
步骤324,所述DMA控制器140通过配置控制寄存器148中的DMA传输中断位来向微控制器160发送中断,并返回步骤306。
需要注意的是,前文中都将读与写一起描述,比如说读写命令、读写操作等,而在实际操作过程中,读与写是分别进行的。
上述是以大小寄存器与地址寄存器中配置有一组DMA传输的数量大小和起始地址为例来说明了本发明,而在大小寄存器与地址寄存器中配置多组数量大小和起始地址时,也可参照上述步骤执行。具体来讲就是,先完成第一组数量大小和起始地址对应的数据的DMA的传输,再完成下一组数量大小和起始地址对应的数据的DMA的传输,直至所有的数据都传输完成。
综上所述,在本发明中需要重新启动DMA传输时,不是由微控制器160向外部存储器发送读写命令,而是由DMA控制器140代替微控制器160发送读读写命令来启动DMA传输,这样不但省去了很多握手时间,还减轻了微控制器的工作.负担,提高了工作效率。
虽然上面已经揭示了本发明的具体实施方式,但是它们不是本发明范围的局限,熟知本技术领域的人员对以上所述具体实施的修改和变化也包含在本发明的范围之内。
Claims (10)
1、一种直接存储访问控制器数据传输***,其包括:第一存储器、第二存储器、微控制器、直接存储访问控制器,其特征在于:
所述直接存储访问控制器包括有命令寄存器,所述微控制器给所述命令寄存器配置访问第一存储器的访问命令;以及
在需要直接存储访问传输时,所述微控制器启动所述直接存储访问控制器,所述直接存储访问控制器根据所述命令寄存器的内容向所述第一存储器发送访问命令以启动第一存储器与第二存储器之间的直接存储访问传输。
2、如权利要求1所述的***,其特征在于:所述第二存储器、微控制器及直接存储访问控制器集成于一集成电路内,所述集成电路通过其内设置的输入输出接口与第一存储器通信。
3、如权利要求1所述的***,其特征在于:所述直接存储访问控制器还包括大小寄存器、地址寄存器,所述微控制器给所述大小寄存器配置所述直接存储访问传输的数据量的大小,并给所述地址寄存器配置所述直接存储访问传输的第一存储器的起始地址;
所述直接存储访问控制器根据所述地址寄存器的内容向所述第一存储器发送起始地址;
所述直接存储访问控制器根据根据大小寄存器中的数据量大小判断所述直接存储访问传输是否完成。
4、如权利要求3所述的***,其特征在于:在所述地址寄存器与大小寄存器中配置有数组起始地址和数据量大小。
5、如权利要求1所述的***,其特征在于:所述直接存储访问控制器还包括控制寄存器,所述控制寄存器内具有直接存储访问传输启动位,所述微控制器通过配置直接存储访问传输启动位来启动所述直接存储访问控制器。
6、如权利要求5所述的***,其特征在于:所述控制寄存器内具有直接存储访问传输控制位,所述微控制器通过配置直接存储访问传输控制位来控制在完成所述直接存储访问传输后是否继续进行直接存储访问传输;
在需要继续进行直接存储访问传输时,所述直接存储访问控制器根据所述命令寄存器的内容向所述第一存储器再次发送访问命令,就可再次启动第一存储器与第二存储器之间的直接存储访问传输。
7、如权利要求1所述的***,其特征在于:所述访问命令包括读或/和写命令。
8、一种直接存储访问控制器数据传输方法,应用于一数据传输***中,所述***包括第一存储器、第二存储器、微控制器、直接存储访问控制器,其特征在于:所述方法包括:
所述微控制器向所述直接存储访问控制器配置访问第一存储器的访问命令及访问第一存储器的起始地址;
在需要直接存储访问传输时,所述微控制器启动所述直接存储访问控制器;以及
所述直接存储访问控制器向所述第一存储器发送访问命令及起始地址以启动第一存储器与第二存储器之间的直接存储访问传输。
9、如权利要求8所述的方法,其特征在于:
所述微控制器还向所述直接存储访问控制器配置传输数据量的大小;
在直接存储访问传输时,根据配置的数据量大小判断所述直接存储访问传输是否完成。
10、如权利要求8所述的方法,其特征在于:
所述直接存储访问控制器根据所述微控制器的配置来确定是否在完成所述直接存储访问传输后继续进行直接存储访问传输;
在需要继续进行直接存储访问传输时,所述直接存储访问控制器向所述第一存储器再次发送访问命令及起始地址以再次启动第一存储器与第二存储器之间的直接存储访问传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101025551A CN101256541B (zh) | 2008-03-24 | 2008-03-24 | 一种直接存储访问控制器数据传输***与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101025551A CN101256541B (zh) | 2008-03-24 | 2008-03-24 | 一种直接存储访问控制器数据传输***与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101256541A true CN101256541A (zh) | 2008-09-03 |
CN101256541B CN101256541B (zh) | 2010-09-29 |
Family
ID=39891377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101025551A Expired - Fee Related CN101256541B (zh) | 2008-03-24 | 2008-03-24 | 一种直接存储访问控制器数据传输***与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101256541B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110065A (zh) * | 2011-02-21 | 2011-06-29 | 山东华芯半导体有限公司 | 一种减少数据传输的缓存*** |
CN101853236B (zh) * | 2010-02-05 | 2011-12-21 | 谭洪舟 | 一种基于双总线的微控制器外设扩展方法 |
CN102929816A (zh) * | 2012-11-02 | 2013-02-13 | 长沙景嘉微电子股份有限公司 | 利用存储器控制器加载程序的射频通信收发机设备和相关方法 |
CN114036096A (zh) * | 2021-11-04 | 2022-02-11 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
CN114328354A (zh) * | 2021-12-29 | 2022-04-12 | 苏州矽典微智能科技有限公司 | 一种数据传输***和方法 |
-
2008
- 2008-03-24 CN CN2008101025551A patent/CN101256541B/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853236B (zh) * | 2010-02-05 | 2011-12-21 | 谭洪舟 | 一种基于双总线的微控制器外设扩展方法 |
CN102110065A (zh) * | 2011-02-21 | 2011-06-29 | 山东华芯半导体有限公司 | 一种减少数据传输的缓存*** |
CN102110065B (zh) * | 2011-02-21 | 2012-09-19 | 山东华芯半导体有限公司 | 一种减少数据传输的缓存*** |
CN102929816A (zh) * | 2012-11-02 | 2013-02-13 | 长沙景嘉微电子股份有限公司 | 利用存储器控制器加载程序的射频通信收发机设备和相关方法 |
CN114036096A (zh) * | 2021-11-04 | 2022-02-11 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
CN114036096B (zh) * | 2021-11-04 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
CN114328354A (zh) * | 2021-12-29 | 2022-04-12 | 苏州矽典微智能科技有限公司 | 一种数据传输***和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101256541B (zh) | 2010-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101266585B (zh) | 直接存储访问控制器数据传输***与方法 | |
JP5663720B2 (ja) | メモリ機器のための拡張利用範囲 | |
CN101256541B (zh) | 一种直接存储访问控制器数据传输***与方法 | |
CN100349150C (zh) | 通过直接存储器访问控制器传输数据的***及方法 | |
JP2012529692A (ja) | メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止 | |
JP2011513823A5 (zh) | ||
CN102103566A (zh) | 闪存存储器接口 | |
US20020013880A1 (en) | Integrated circuit with flash bridge and autoload | |
CN102841871B (zh) | 基于高速串行总线的DMA结构的pipeline读写方法 | |
EP1639481B1 (en) | Readdressable virtual dma control and status registers | |
CN108139994A (zh) | 内存访问方法及内存控制器 | |
CN114610472B (zh) | 异构计算中多进程管理方法及计算设备 | |
JP2005524170A (ja) | 不揮発性メモリを備える集積回路及び前記メモリからのデータをフェッチするための方法 | |
EP3270293A1 (en) | Two stage command buffers to overlap iommu map and second tier memory reads | |
CN113056729A (zh) | 集成电路中的计算单元的编程和控制 | |
CN116776781B (zh) | 一种寄存器参数的管理方法、***、设备及存储介质 | |
CN101751268A (zh) | 主板、储存装置及其控制器与开机方法 | |
EP2393013A2 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
CN101625625B (zh) | 信号中继装置及利用该装置访问外部存储器的方法 | |
CN1333344C (zh) | 减轻片上***软件负载的方法 | |
CN101276315B (zh) | 动态调整传输数据宽度的直接存储器存取控制器与方法 | |
EA039007B1 (ru) | Устройство прямого отображения адресов данных, располагающихся во внешнем последовательном пзу, в адресное пространство микропроцессорного ядра, компьютерная система и способ передачи данных | |
CN1234550B (zh) | 一种输入/输出总线*** | |
JP2016026345A (ja) | メモリアレイにおける読み出し待ち時間を短縮するためのメモリ操作の一時停止 | |
CN114968870B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 Termination date: 20120324 |