CN101452429A - 一种cpu及一种cpu内部与外部数据传输的方法 - Google Patents
一种cpu及一种cpu内部与外部数据传输的方法 Download PDFInfo
- Publication number
- CN101452429A CN101452429A CNA2008102266663A CN200810226666A CN101452429A CN 101452429 A CN101452429 A CN 101452429A CN A2008102266663 A CNA2008102266663 A CN A2008102266663A CN 200810226666 A CN200810226666 A CN 200810226666A CN 101452429 A CN101452429 A CN 101452429A
- Authority
- CN
- China
- Prior art keywords
- cpu
- dma
- dmac
- information
- data transmission
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
本发明提供了一种CPU和一种CPU内部与外部数据传输的方法,该CPU包括:总控制器,用于接收DMA信息指令,以及向运算器发送控制指令;运算器,用于将所述DMA信息配置给直接存储控制器DMAC;直接存储控制器DMAC,用于依据所述DMA信息,进行DMA数据传输;外部总线接口,用于CPU内部与CPU外部的通信;存储控制器,用于存储进行DMA数据传输的数据。本发明的DMAC置于CPU内部,在进行DMA传输时,CPU对DMAC的初始化及总线控制权的交替使用,在CPU内部就能完成,从而避免了总线的竞争,提高了数据传输的效率。
Description
技术领域
本发明涉及一种芯片处理器,特别涉及一种CPU及一种CPU内部与外部数据传输的方法。
背景技术
现有的DMA(Direct Memory Access,直接存储器存取)是采用一个专门的硬件电路——DMA控制器(DMAC)来控制内存与外设之间的数据交流,在进行DMA数据传输之前,DMAC会向CPU申请总线控制权,CPU接到申请后,将控制权交给DMAC,进行数据传输,在传输结束后,DMAC将总线控制权交还给CPU。
具体而言,一次DMA数据传送过程为:当外部设备有数据传输的需求时,就向DMAC发出DMA请求;DMAC接收到请求后,向CPU提出请求;CPU在当前机器周期结束后响应该请求,将系统总线的控制权交由DMAC接管,并向DMAC提供DMA数据传输的信息;然后DMAC开始工作,进行数据传送;传送结束后,DMAC向CPU发出中断请求,DMA操作结束,CPU重新接管总线的控制权。
可以看出,现有的DMAC设置在CPU的外部,负责所有内存与外设之间的数据交互,其负载较大;并且,如果CPU本地寄存器组的数据需要与外设进行交互时,必须占用总线配置DMAC,并触发相应外设;然后再将总线控制权交给DMAC,而DMAC完成数据交互后,又将占用总线向CPU发出中断信号并交还总线控制权,显然,这个过程非常浪费总线资源,而实际中总线的带宽是有限的;再者,由于总线的传输速度低于CPU的内部数据传输速度,在这种情况下,CPU本地寄存器组的数据与外设交互时,其传输速度也必然受到总线传输速率的限制,从而传输效率较低。
发明内容
本发明所要解决的技术问题是提供一种CPU及一种CPU内部与外部数据传输的方法,用以减轻DMAC的负载、提高总线资源利用率和CPU内部与外部数据传输的效率。
为了解决上述问题,本发明公开了一种CPU,所述CPU包括:
总控制器,用于接收DMA信息指令,以及向运算器发送控制指令;
运算器,用于将所述DMA信息配置给直接存储控制器DMAC;
直接存储控制器DMAC,用于依据所述DMA信息,进行DMA数据传输;
外部总线接口,用于CPU内部与CPU外部的通信;
存储控制器,用于存储进行DMA数据传输的数据。
具体的,所述DMA信息包括:进行DMA数据传输的源地址信息、目标地址信息、数据长度信息和控制信息。
优选的,所述CPU还包括:DMA专用总线接口,用于DMAC与CPU外部的通信。
进一步,所述总控制器,还用于接收DMAC发送的中断请求。
为了解决上述问题,本发明还公开了一种CPU内部与外部数据传输的方法,所述方法包括:
所述总控制器接收DMA信息指令,发送配置所述DMA信息的指令给运算器;所述运算器将所述DMA信息配置给DMAC;所述DMAC依据所述DMA信息,通过外部总线接口,进行DMA数据传输。
具体的,所述DMA信息包括:进行DMA数据传输的源地址信息、目标地址信息、数据长度信息和控制信息。
进一步,所述方法包括:当从CPU外部到内部进行数据传输时,所述DMAC依据所述DMA信息,通过外部总线接口,从CPU外部获取数据,并通过位于CPU内部的存储控制器,将所述数据传输至目标地址。
进一步,所述方法包括:当从CPU内部到外部进行数据传输时,所述DMAC依据所述DMA信息,通过位于CPU内部的存储控制器,从源地址获取数据,,并通过外部总线接口,将所述数据传输至目标地址。
优选的,所述方法还包括:当所述DMA数据传输完成后,所述DMAC向所述总控制器发送中断请求。
优选的,所述方法还包括:所述DMAC通过专用总线接口与CPU外部进行通信。
与现有技术相比,本发明具有以下优点:
本发明的DMAC置于CPU内部,在以DMA传输方式传输数据时,CPU对DMAC的初始化及总线控制权的交替使用,在CPU内部就能完成,从而避免了总线的竞争,提高了传输效率。
进一步,由于CPU内部的传输速率远大于外部,使得采用DMA传输方式进行数据传输的效率提高。
与此同时,由于DMAC置于CPU的内部,在测试时便于对DMAC的状态进行实时的监测。
附图说明
图1为本发明的一种CPU装置实施例的结构示意图;
图2为本发明的一种CPU内部与外部数据传输方法实施例的步骤流程图;
图3为本发明的一种从CPU外部到内部进行数据传输方法实施例的步骤流程图;
图4为本发明的一种从CPU内部到外部进行数据传输方法实施例的步骤流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的核心构思之一在于:DMAC设置于CPU内部,这样CPU内部与外设之间进行数据传输时,无需占用总线进行DMAC配置和总线控制权的交替使用,节约了总线资源,提高了CPU和DMAC的工作效率。
参照图1,示出了本发明一种CPU装置实施例,该CPU包括:
总控制器101,用于接收DMA信息指令,以及向运算器102发送控制指令;具体的,所述DMA信息包括:进行DMA数据传输的源地址信息、目标地址信息、数据长度信息和控制信息。
运算器102,用于将所述DMA信息配置给所述DMAC103;即把所述DMA信息相应的配置到DMAC103的源地址寄存器、目标地址寄存器、数据长度寄存器和控制寄存器中。
直接存储控制器DMAC103,用于依据所述DMA信息,进行DMA数据传输。一种优选的方案是,当所述DMA数据传输结束后,所述DMAC103向总控制器101发送中断请求,然后总控制器101重新接管总线控制权。当然,在所述DMA数据传输结束后,所述DMAC103也可以不向总控制器101发送中断请求,只是停止执行数据传输,此时总控制器可以通过查看的方式获得DMAC的状态。
外部总线接口104,用于CPU内部与CPU外部的通信;即所述DMAC103需要通过外部总线接口,与CPU外部进行通信。在另一种优选的实施例中,可以在CPU中增加一个DMA专用总线接口,所述接口专用于DMAC与CPU外部的通信,在进行DMA传输时,就不需要占用原有的外部总线接口104,提高系统效率。
存储控制器105,用于存储进行DMA数据传输的数据。
当有DMA传输需求时,用户发出进行DMA传输的CPU指令,所述指令为向内部DMAC103的寄存器写入DMA信息;总控制器101接收所述指令,并向运算器102发送控制指令;然后所述运算器102执行该指令,将所述DMA信息配置到DMAC103的寄存器中;接着DMAC103依据所述DMA信息,经过外部总线接口104,通过存储控制器105进行DMA数据传输。
参照图2,示出了使用本发明的CPU进行CPU内部与外部数据传输的方法实施例,所述方法包括以下步骤:
步骤201,当有DMA传输需求时,用户发出向内部DMAC的寄存器写入DMA信息的CPU指令;总控制器接收所述指令,并向运算器发送控制指令。
步骤202,所述运算器执行所述CPU指令,将所述DMA信息配置到DMAC的寄存器中;并且所述总控制器通过CPU的内部连线,向所述DMAC交出总线的控制权。其中,所述DMA信息包括:进行DMA数据传输的源地址信息、目标地址信息、数据长度信息和控制信息;该步骤中,所述运算器把所述DMA信息相应的配置到DMAC的源地址寄存器、目标地址寄存器、数据长度寄存器和控制寄存器中。
步骤203,所述DMAC依据所述DMA信息,经过外部总线接口,通过位于CPU内部的存储控制器进行DMA数据传输,把指定的数据从源地址传输到目的地址。在一种优选的实施方式中,可以在CPU内部增加一个DMA专用总线接口,所述DMAC可以通过所述DMA专用总线接口与CPU外部进行数据传输,这就不需要占用原有的外部总线接口,提高了系统效率。
进一步,在另一种方法实施例中,还可以包括步骤204,即当所述DMA数据传输完毕后,所述DMAC向所述总控制器发送中断请求,然后总控制器重新接管总线控制权。当然,在所述DMA数据传输结束后,所述DMAC也可以不向总控制器发送中断请求,只是停止执行数据传输,此时总控制器可以通过查看的方式获得DMAC的状态。
下面结合图3和图4,分别对本方法中,从CPU外部到内部和从CPU内部到外部进行的数据传输过程进行详细描述。
参照图3,本发明的一种从CPU外部到内部进行数据传输的方法实施例的步骤如下:
步骤301,当有从CPU外部到内部进行DMA传输的需求时,用户发出向内部DMAC的寄存器写入DMA信息的CPU指令;
步骤302,总控制器接收所述指令,并向运算器发送控制指令;
步骤303,所述运算器执行所述CPU指令,将所述DMA信息配置到DMAC的寄存器中;并且所述总控制器通过CPU的内部连线,向所述DMAC交出总线的控制权;
步骤304,依据所述DMA信息,所述DMAC通过外部总线接口,从CPU外部的源地址获取数据,并存储至位于CPU内部的存储控制器中;
步骤305,所述存储控制器将所述数据传输至CPU内部的目标地址;
步骤306,所述DMAC向所述总控制器发送中断请求。
参照图4,本发明的一种从CPU内部到外部进行数据传输的方法实施例的步骤如下:
步骤401,当有从CPU内部到外部进行DMA传输的需求时,用户发出向内部DMAC的寄存器写入DMA信息的CPU指令;
步骤402,总控制器接收所述指令,并向运算器发送控制指令;
步骤403,所述运算器执行所述CPU指令,将所述DMA信息配置到DMAC的寄存器中;并且所述总控制器通过CPU的内部连线,向所述DMAC交出总线的控制权;步骤404,依据所述DMA信息,位于CPU内部的存储控制器从CPU内部的源地址获取数据;
步骤405,所述DMAC从所述存储控制器中获取数据,并通过外部总线接口,将所述数据传输至CPU外部的目标地址;
步骤406,所述DMAC向所述总控制器发送中断请求。
在本发明中,由于DMA设置在CPU的内部,对DMAC的配置以及总线接口控制权的交替,都是通过CPU内部连线完成的,节约了总线资源,避免了与外部总线的竞争,提高了传输效率。
需要说明的是,由于DMAC、总控制器、运算器和存储控制器都处于CPU的内部,所以它们之间的通信都是通过CPU的内部连线实现的。一般情况下,CPU内部连线之间的传输速度是CPU外部总线传输速度的2倍,所以本发明的方法,增加了通信和数据传输的速度。
同时,由于DMAC置于CPU的内部,在测试时便于对DMAC的状态进行实时的监测。
为使本领域技术人员更好地理解本发明,以下通过一个具体的例子对本发明的方法实施例作进一步的说明。现有以下需求:从CPU外部地址0 x 10000000向内部地址0 x 00000000传送一段数据,数据长度为0 x 100,即256字节。
首先,用户发出向内部DMAC的寄存器写入DMA信息的CPU指令;总控制器接收所述指令,并发送配置DMA信息的指令给运算器;所述运算器执行所述CPU指令,将所述DMA信息配置到DMAC的寄存器中,即把源地址信息(0 x 10000000)、目标地址信息(0 x 00000000)和数据长度信息(0 x 100,即256字节),分别配置到DMAC的源地址寄存器、目标地址寄存器和数据长度寄存器中;
然后,所述DMAC开始进行DMA传输,依据所述DMA信息,所述DMAC通过外部总线接口,从源地址0x10000000处,获取长度256字节的数据,并将所述数据写入存储控制器;所述存储控制器再将所述数据写入目标地址0 x 00000000处;
最后,所述DMA传输结束,所述DMAC向总控制器发出中断请求,交还总线控制权。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种CPU及一种CPU内部与外部数据传输的方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1、一种CPU,其特征在于,所述CPU包括:
总控制器,用于接收DMA信息指令,以及向运算器发送控制指令;
运算器,用于将所述DMA信息配置给直接存储控制器DMAC;
直接存储控制器DMAC,用于依据所述DMA信息,进行DMA数据传输;
外部总线接口,用于CPU内部与CPU外部的通信;
存储控制器,用于存储进行DMA数据传输的数据。
2、根据权利要求1所述的CPU,其特征在于,所述DMA信息包括:进行DMA数据传输的源地址信息、目标地址信息、数据长度信息和控制信息。
3、根据权利要求1所述的CPU,其特征在于,还包括:
DMA专用总线接口,用于DMAC与CPU外部的通信。
4、根据权利要求1所述的CPU,其特征在于,
所述总控制器,还用于接收DMAC发送的中断请求。
5、一种CPU内部与外部数据传输的方法,其特征在于,所述方法包括:
所述总控制器接收DMA信息指令,发送配置所述DMA信息的指令给运算器;
所述运算器将所述DMA信息配置给DMAC;
所述DMAC依据所述DMA信息,通过外部总线接口,进行DMA数据传输。
6、根据权利要求5所述的方法,其特征在于,所述DMA信息包括:进行DMA数据传输的源地址信息、目标地址信息、数据长度信息和控制信息。
7、根据权利要求5所述的方法,其特征在于,
当从CPU外部到内部进行数据传输时,所述DMAC依据所述DMA信息,通过外部总线接口,从CPU外部获取数据,并通过位于CPU内部的存储控制器,将所述数据传输至目标地址。
8、根据权利要求5所述的方法,其特征在于,
当从CPU内部到外部进行数据传输时,所述DMAC依据所述DMA信息,通过位于CPU内部的存储控制器,从源地址获取数据,,并通过外部总线接口,将所述数据传输至目标地址。
9、根据权利要求5所述的方法,其特征在于,还包括:
当所述DMA数据传输完成后,所述DMAC向所述总控制器发送中断请求。
10、根据权利要求5所述的方法,其特征在于所述DMAC通过专用总线接口与CPU外部进行通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102266663A CN101452429A (zh) | 2008-11-19 | 2008-11-19 | 一种cpu及一种cpu内部与外部数据传输的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008102266663A CN101452429A (zh) | 2008-11-19 | 2008-11-19 | 一种cpu及一种cpu内部与外部数据传输的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101452429A true CN101452429A (zh) | 2009-06-10 |
Family
ID=40734669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008102266663A Pending CN101452429A (zh) | 2008-11-19 | 2008-11-19 | 一种cpu及一种cpu内部与外部数据传输的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101452429A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226529A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 基于Nandflash的双端口存储器电路 |
CN104123250A (zh) * | 2013-04-25 | 2014-10-29 | 上海联影医疗科技有限公司 | 基于dma的数据传输方法 |
CN107844435A (zh) * | 2017-11-08 | 2018-03-27 | 北京锐安科技有限公司 | 一种缓存系统、方法及装置 |
CN110069432A (zh) * | 2018-01-22 | 2019-07-30 | 华大半导体有限公司 | 带有数据处理功能的外围电路互连系统及其联动方法 |
-
2008
- 2008-11-19 CN CNA2008102266663A patent/CN101452429A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103226529A (zh) * | 2012-01-31 | 2013-07-31 | 上海华虹集成电路有限责任公司 | 基于Nandflash的双端口存储器电路 |
CN103226529B (zh) * | 2012-01-31 | 2017-03-15 | 上海华虹集成电路有限责任公司 | 基于Nandflash的双端口存储器电路 |
CN104123250A (zh) * | 2013-04-25 | 2014-10-29 | 上海联影医疗科技有限公司 | 基于dma的数据传输方法 |
CN104123250B (zh) * | 2013-04-25 | 2019-02-01 | 上海联影医疗科技有限公司 | 基于dma的数据传输方法 |
CN107844435A (zh) * | 2017-11-08 | 2018-03-27 | 北京锐安科技有限公司 | 一种缓存系统、方法及装置 |
CN110069432A (zh) * | 2018-01-22 | 2019-07-30 | 华大半导体有限公司 | 带有数据处理功能的外围电路互连系统及其联动方法 |
CN110069432B (zh) * | 2018-01-22 | 2023-03-24 | 小华半导体有限公司 | 带有数据处理功能的外围电路互连系统及其联动方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714026B (zh) | 一种支持原址数据交换的存储器访问方法及装置 | |
CN106951388A (zh) | 一种基于PCIe的DMA数据传输方法及系统 | |
US9658975B2 (en) | Data transfer manager | |
EP3644192B1 (en) | Master chip, slave chip, and dma transfer system between chips | |
CN102446158A (zh) | 多核处理器及多核处理器组 | |
CN103180817A (zh) | 存储扩展装置及服务器 | |
CN114647602B (zh) | 一种跨芯片访问控制的方法、装置、设备及介质 | |
CN101452430B (zh) | 多处理器之间的通信方法与包括多处理器的通信装置 | |
CN108959136A (zh) | 基于spi的数据传输加速装置、系统及数据传输方法 | |
CN101452429A (zh) | 一种cpu及一种cpu内部与外部数据传输的方法 | |
CN101452427B (zh) | 一种dma数据传输系统及方法和一种中央处理器 | |
CN111400230A (zh) | 数据传输方法、系统、控制设备及存储介质 | |
CN110515872B (zh) | 直接内存存取方法、装置、专用计算芯片及异构计算系统 | |
JP2000163312A (ja) | マイクロプロセッサ | |
CN115328832B (zh) | 一种基于pcie dma的数据调度系统与方法 | |
US9128924B2 (en) | Method and apparatus for wireless broadband systems direct data transfer | |
CN110765046A (zh) | 一种动态可重构高速串行总线的dma传输装置与方法 | |
CN106909523B (zh) | 大规模数据传输方法及系统 | |
CN102622319B (zh) | 基于mpmc的高速存储器接口ip核的数据交换系统 | |
CN101950276B (zh) | 一种存储器访问装置及其程序执行方法 | |
CN113157602B (zh) | 一种对内存进行分配的方法、设备及计算机可读存储介质 | |
CN113051200A (zh) | 一种基于双路的数据采集并行数据传输及存储的装置及方法 | |
CN103593437A (zh) | 一种基于dma的数据压缩芯片结构及其实现方法 | |
CN118363914B (zh) | 数据处理方法、固态硬盘设备及主机 | |
CN108874685A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090610 |