CN115757223A - 一种嵌入式dma数据传输方法 - Google Patents
一种嵌入式dma数据传输方法 Download PDFInfo
- Publication number
- CN115757223A CN115757223A CN202211363266.3A CN202211363266A CN115757223A CN 115757223 A CN115757223 A CN 115757223A CN 202211363266 A CN202211363266 A CN 202211363266A CN 115757223 A CN115757223 A CN 115757223A
- Authority
- CN
- China
- Prior art keywords
- data transmission
- low
- speed
- speed channel
- channel
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种嵌入式DMA数据传输方法,包括如下步骤:S1、划分传输通道;S2、传输请求;S3、新增低速通道配置缓冲寄存器组;S4、恢复被打断数据传输。本发明将嵌入式DMA控制器的传输通道按响应特性划分为高速通道和低速通道两部分,有效降低功耗、电路面积,从而降低数据传输成本,同时通过增设低速通道配置缓冲寄存器,当发生高速设备或更高优先级的低速设备抢占当前低速设备传输权限的情况,DMA控制器的响应速度不受影响,而当前低速设备的配置信息将暂时保存在缓冲寄存器中,不会丢失也不需要重新上传存储器。
Description
技术领域
本发明涉及电子信息技术领域,尤其涉及一种嵌入式DMA数据传输方法。
背景技术
DMA传输方式广泛地出现大批量数据交互的场合,其优点在于数据传输由DMA控制器主导,而不打断CPU的计算,DMA传输将数据从一个地址空间复制到另外一个地址空间。当CPU初始化这个传输动作时,传输动作本身是由DMA控制器来实行和完成。
目前DMA控制器一般分为基于描述符的DMA控制器与基于寄存器的DMA控制器。其中对于基于寄存器的DMA控制器来说:由于使用的是DMA控制器内部的寄存器,这就导致每个通道的配置信息都将占用大量的寄存器。以意法半导体的STM32F103产品为例,每个DMA通道的配置信息都会占用128位的控制寄存器。随着通道数量的增加,DMA控制器的电路面积及功耗开销都会成倍的增加。
而对于基于描述符的DMA控制器来说:由于PC设备中的基础频率普遍较高(百兆甚至千兆量级),可以基本无视载入上传配置信息造成的性能损失。而嵌入式微控制器设备无法达到PC设备的性能,尤其在多路通道竞争DMA传输权限时,会造成数据传输的阻塞,甚至产生丢包的风险。
发明内容
本发明的目的是为了解决现有技术中基于寄存器的DMA控制器会随着通道数量的增加,DMA控制器的电路面积及功耗开销都会成倍的增加;而基于描述符的DMA控制器可能造成数据传输的阻塞,甚至产生丢包的风险,而提出的一种嵌入式DMA数据传输方法,其中通过将嵌入式DMA控制器的传输通道按响应特性划分为高速通道和低速通道两部分,有效降低功耗、电路面积,从而降低数据传输成本,同时通过增设低速通道配置缓冲寄存器,当发生高速设备或更高优先级的低速设备抢占当前低速设备传输权限的情况,DMA控制器的响应速度不受影响,而当前低速设备的配置信息将暂时保存在缓冲寄存器中,不会丢失也不需要重新上传存储器。
为了实现上述目的,本发明采用了如下技术方案:
一种嵌入式DMA数据传输方法,包括如下步骤:
S1、划分传输通道,将嵌入式DMA控制器的传输通道按响应特性划分为高速通道和低速通道两部分,其中高速通道使用寄存器存放配置信息,低速通道使用片上存储器存放配置信息;
S2、传输请求,产生数据传输请求由步骤S1划分的高速通道和低速通道两部分进行传输;
S3、新增低速通道配置缓冲寄存器组,当低速通道已经获取配置信息但还未开始数据传输或低速通道正在进行数据传输,但发生高速通道或更高优先级的其他低速通道抢占DMA传输权限时,将当前的低速通道的传输信息保存在缓冲寄存器内;
S4、恢复被打断数据传输,当步骤S3中抢占传输通道的数据传输完成后,直接从缓冲寄存器中获取原先低速通道的配置信息,恢复被打断的数据传输。
优选地,高速通道使用寄存器存放配置信息的方式为:内核处理器将高速通道的配置信息直接写入DMA控制器内部的寄存器中。
优选地,低速通道使用片上存储器存放配置信息的方式为:内核处理器需要将配置信息写入片上存储器中,并设置DMA控制器的配置表指针,指向片上存储器的配置表基地址。
优选地,对于高速通道产生的数据传输请求,DMA控制器将直接从控制寄存器区获取配置信息,立即开始数据传输,完成数据传输后直接更新寄存器的传输状态。
优选地,对于低速通道产生的数据传输请求,DMA控制器将先从设定的存储器中载入该通道的配置表,再根据配置表中的配置信息进行数据传输,完成数据传输后上传传输状态至存储器。
优选地,当低速通道的传输信息保存在缓冲寄存器内后,立即开始高速通道的数据传输或重新装载更高优先级的低速通道的配置信息表。
本发明具有以下有益效果:
1、对于描述符的DMA控制器来说,应用本发明所提出方法的高速设备的数据传输不需要额外载入和上传通道配置信息的操作,响应速度和传输效率得到保证;
2、对于寄存器的DMA控制器来说,应用本发明所提出方法的低速设备的配置信息不需要控制寄存器的面积开销,只需要在存储器内开辟通道配置信息的空间即可,因此,低速设备的通道数量可以大大增加;
3、通过增设低速通道配置缓冲寄存器,当发生高速设备或更高优先级的低速设备抢占当前低速设备传输权限的情况,DMA控制器的响应速度不受影响,而当前低速设备的配置信息将暂时保存在缓冲寄存器中,不会丢失也不需要重新上传存储器;
4、可以实现相同通道数量占用电路面积更小,或占用相同的电路面积可支持更多的通道数量。且随着通道数量的增加,电路面积的差异也将越明显。
附图说明
图1为目前基于描述符的DMA控制器整体框图;
图2为目前基于寄存器的DMA控制器整体框图;
图3为本发明所应用的嵌入式DMA控制器整体框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
一种嵌入式DMA数据传输方法,包括如下步骤:
S1、划分传输通道,将嵌入式DMA控制器的传输通道按响应特性划分为高速通道和低速通道两部分,其中高速通道使用寄存器存放配置信息,低速通道使用片上存储器存放配置信息;
具体的,高速通道使用寄存器存放配置信息的方式为:内核处理器将高速通道的配置信息直接写入DMA控制器内部的寄存器中。低速通道使用片上存储器存放配置信息的方式为:内核处理器需要将配置信息写入片上存储器中,并设置DMA控制器的配置表指针,指向片上存储器的配置表基地址。
需要说明的是,参照图1所示,对于描述符的DMA控制器来说,DMA数据传输所需的各类配置信息保存在片上或外置存储器中。当DMA进行数据传输时,需要先从存储器中读取对应的配置信息,再根据配置信息进行相应的数据传输。
由于通道的配置信息不保存在DMA控制器内,需要CPU在存储器内开辟一段存储空间,用于存放通道的配置信息,并在DMA传输前进行初始化。在DMA进行数据传输时,将配置信息从存储器中读入配置缓冲寄存器中。在根据配置缓冲寄存器的配置值进行数据传输。
而对于寄存器的DMA控制器来说,如图2所示,DMA数据传输所需的各类配置信息都是以控制寄存器的形式存放在DMA控制器的内部。此类DMA控制器提供了最佳的响应速度及传输的高效性能,因为寄存器并不需要在每次传输前从存储器中载入传输的配置信息,在传输完成后再上传当前的传输状态。当多路通道发送传输优先级仲裁时,也能提供最佳的响应时间,但是DMA控制器需要为每个传输通道准备一组配置寄存器,配置信息的复杂程度决定了配置寄存器的位宽数量。配置信息越复杂,传输通道越多,配置寄存器占用的电路面积越大。
而本发明所应用的嵌入式DMA控制器,其整体框图如图3所示,通过将DMA的传输通道按响应特性划分为高速通道和低速通道两部分。高速通道的配置信息使用DMA内部控制寄存器;低速通道的配置信息保存在存储器中,用低速设备配置信息指针指向存储器中保存的位置。
具体应用本发明时,例如原先基于寄存器的DMA控制器支持8个传输通道,每个通道占用128位的控制寄存器。应用本发明的所提出的方法时,则可以将4个传输通道划分为高速通道,每个通道占用128位的控制寄存器;另外,支持4级低速通道配置信息缓存器,每级缓存器占用128位的控制寄存器。4级低速通道配置信息缓存器可以保证大约16个低速通道的传输访问而基本不影响整个DMA控制器的响应速度和传输效率,16个低速通道的配置信息保存在存储器中。此时,两者的面积开销基本相同(后者只比前者多了描述符指针以及略微复杂的通道仲裁控制电路)。但传输通道的数量扩增了1.5倍,达到20个传输通道(4高+16低)。
S2、传输请求,产生数据传输请求由步骤S1划分的高速通道和低速通道两部分进行传输;具体的,对于高速通道产生的数据传输请求,DMA控制器将直接从控制寄存器区获取配置信息,立即开始数据传输,完成数据传输后直接更新寄存器的传输状态。
进一步的,对于低速通道产生的数据传输请求,DMA控制器将先从设定的存储器中载入该通道的配置表,再根据配置表中的配置信息进行数据传输,完成数据传输后上传传输状态至存储器。
需要说明的是,具体传输过程中:当DMA进行数据传输时,根据请求信号的设备属性以及配置的优先级属性进行仲裁,当进行高速设备数据传输时,直接使用配置寄存器中的配置信息,并开始数据传输;当进行低速设备数据传输时,先将该通道的配置信息从存储器中读入低速设备配置缓冲寄存器中,再根据配置信息进数据传输,传输完成将低速设备配置缓冲寄存器中的传输状态上传到存储器中,同时清除低速设备配置缓冲寄存器。
S3、新增低速通道配置缓冲寄存器组,当低速通道已经获取配置信息但还未开始数据传输或低速通道正在进行数据传输,但发生高速通道或更高优先级的其他低速通道抢占DMA传输权限时,将当前的低速通道的传输信息保存在缓冲寄存器内;当低速通道的传输信息保存在缓冲寄存器内后,立即开始高速通道的数据传输或重新装载更高优先级的低速通道的配置信息表。
S4、恢复被打断数据传输,当步骤S3中抢占传输通道的数据传输完成后,直接从缓冲寄存器中获取原先低速通道的配置信息,恢复被打断的数据传输。
此外,当发生高速设备抢占当前低速设备传输权限时,当前低速设备的配置信息将保存在低速设备配置缓冲寄存器中,直到高速设备完成传输,DMA控制器将恢复当前低速设备的数据传输。而当发生更高优先级的低速设备抢占当前低速设备传输权限时,当前低速设备的配置信息将保存在原先的低速设备配置缓冲寄存器中,而更高优先级的低速设备将使用新的低速设备配置缓冲寄存器。当发生更高优先级的低速设备抢占当前低速设备传输权限,但所有低速设备配置缓冲寄存器全被占用时,可根据实际需求采用淘汰算法(淘汰算法非本专利保护点),将被淘汰的低速设备配置缓冲寄存器的配置信息上传至存储器,再用于装载最新的低速设备的配置信息。
综上所述,本发明通过将嵌入式DMA控制器的传输通道按响应特性划分为高速通道和低速通道两部分,有效降低功耗、电路面积,从而降低数据传输成本,同时通过增设低速通道配置缓冲寄存器,当发生高速设备或更高优先级的低速设备抢占当前低速设备传输权限的情况,DMA控制器的响应速度不受影响,而当前低速设备的配置信息将暂时保存在缓冲寄存器中,不会丢失也不需要重新上传存储器。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种嵌入式DMA数据传输方法,其特征在于,包括如下步骤:
S1、划分传输通道,将嵌入式DMA控制器的传输通道按响应特性划分为高速通道和低速通道两部分,其中高速通道使用寄存器存放配置信息,低速通道使用片上存储器存放配置信息;
S2、传输请求,产生数据传输请求由步骤S1划分的高速通道和低速通道两部分进行传输;
S3、新增低速通道配置缓冲寄存器组,当低速通道已经获取配置信息但还未开始数据传输或低速通道正在进行数据传输,但发生高速通道或更高优先级的其他低速通道抢占DMA传输权限时,将当前的低速通道的传输信息保存在缓冲寄存器内;
S4、恢复被打断数据传输,当步骤S3中抢占传输通道的数据传输完成后,直接从缓冲寄存器中获取原先低速通道的配置信息,恢复被打断的数据传输。
2.根据权利要求1所述的一种嵌入式DMA数据传输方法,其特征在于,所述步骤S1中,高速通道使用寄存器存放配置信息的方式为:内核处理器将高速通道的配置信息直接写入DMA控制器内部的寄存器中。
3.根据权利要求1所述的一种嵌入式DMA数据传输方法,其特征在于,所述步骤S1中,低速通道使用片上存储器存放配置信息的方式为:内核处理器需要将配置信息写入片上存储器中,并设置DMA控制器的配置表指针,指向片上存储器的配置表基地址。
4.根据权利要求2所述的一种嵌入式DMA数据传输方法,其特征在于,所述步骤S2中,对于高速通道产生的数据传输请求,DMA控制器将直接从控制寄存器区获取配置信息,立即开始数据传输,完成数据传输后直接更新寄存器的传输状态。
5.根据权利要求3所述的一种嵌入式DMA数据传输方法,其特征在于,所述步骤S2中,对于低速通道产生的数据传输请求,DMA控制器将先从设定的存储器中载入该通道的配置表,再根据配置表中的配置信息进行数据传输,完成数据传输后上传传输状态至存储器。
6.根据权利要求1所述的一种嵌入式DMA数据传输方法,其特征在于,所述步骤S3中,当低速通道的传输信息保存在缓冲寄存器内后,立即开始高速通道的数据传输或重新装载更高优先级的低速通道的配置信息表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211363266.3A CN115757223A (zh) | 2022-11-02 | 2022-11-02 | 一种嵌入式dma数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211363266.3A CN115757223A (zh) | 2022-11-02 | 2022-11-02 | 一种嵌入式dma数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757223A true CN115757223A (zh) | 2023-03-07 |
Family
ID=85355489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211363266.3A Pending CN115757223A (zh) | 2022-11-02 | 2022-11-02 | 一种嵌入式dma数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757223A (zh) |
-
2022
- 2022-11-02 CN CN202211363266.3A patent/CN115757223A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20150120984A1 (en) | Memory system having high data transfer efficiency and host controller | |
JP2004503855A (ja) | 無線携帯マルチメディア装置をサポートする統合型プロセッサプラットフォーム | |
US20060259658A1 (en) | DMA reordering for DCA | |
JPH06314205A (ja) | 割り込み源間の優先順位確立方法及びデータ処理システム | |
CN111782027B (zh) | Ddr存储器运行频率调整方法及装置 | |
US9015272B2 (en) | Microcomputer | |
US9251107B2 (en) | Immediate direct memory access descriptor-based write operation | |
US20150370535A1 (en) | Method and apparatus for handling incoming data frames | |
CN115757223A (zh) | 一种嵌入式dma数据传输方法 | |
KR20210061583A (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
WO2012107798A1 (en) | Integrated circuit device, power management module and method for providing power management | |
US9256558B2 (en) | Direct memory access descriptor-based synchronization | |
US10664407B2 (en) | Dual first and second pointer for memory mapped interface communication with lower indicating process | |
JPH06274463A (ja) | データ通信システム | |
JP2624989B2 (ja) | データ転送制御装置 | |
CN113934671B (zh) | 一种接口控制芯片及网络设备 | |
CN114741214B (zh) | 一种数据传输方法、装置及设备 | |
JP2001056793A (ja) | 情報処理装置 | |
JP5574455B2 (ja) | プリフェッチ・モジュールを備える信号処理システムおよび集積回路、並びにそのための方法 | |
JPH07230411A (ja) | フラッシュメモリカード装置 | |
KR20050004157A (ko) | 다중 코히런시 단위들을 지원하는 데이터 전송 유닛 | |
JPH04277850A (ja) | ディスクリプタ制御方式 | |
KR19990003117A (ko) | 시디엠에이(cdma) 이동통신 교환기의 타임 스케줄링(scheduling)장치 | |
JP3353368B2 (ja) | バス中継装置 | |
CN113138657A (zh) | 一种降低cache访问功耗的方法和电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |