CN111274175A - 一种基于数据乒乓填充的dma工作方法 - Google Patents
一种基于数据乒乓填充的dma工作方法 Download PDFInfo
- Publication number
- CN111274175A CN111274175A CN202010041796.0A CN202010041796A CN111274175A CN 111274175 A CN111274175 A CN 111274175A CN 202010041796 A CN202010041796 A CN 202010041796A CN 111274175 A CN111274175 A CN 111274175A
- Authority
- CN
- China
- Prior art keywords
- data
- dma
- pong
- filling
- interfaces
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/18—Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2802—DMA using DMA transfer descriptors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2806—Space or buffer allocation for DMA transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种基于数据乒乓填充的DMA工作方法,包括:建立DMA描述符数据结构,创建若干生产者接口以及消费者接口;每个生产者接口连接一个线程,用于重复执行检索描述符并把数据传输到描述符指定的缓冲区;两个及以上生产者接口运行时,同一时间至少一半的生产者接口执行检索描述符,其余的生产者接口执行数据传输;缓冲区的数据满足条件后,消费者接口介入形成DMA数据区的锁存,当消费者接口提走数据后,释放缓冲区并重复上述操作。本发明的实质性效果包括:通过不同接口的错开工作,实现数据的乒乓填充,从而提高硬件的使用效率,最终提升整体的运行效率,提高数据传输速度和质量。
Description
技术领域
本发明涉及网络通信领域,特别涉及一种基于数据乒乓填充的DMA工作方法。
背景技术
目前胶囊膀胱镜视频流在非压缩情况下,需要在处理器中经过算法处理,快速组帧再经发射通道发射出去,在这过程中需要尽可能地减少延迟和数据堆积。而目前常见的方式是持续等待,断续发送,类似uart的下载,每次数据不大中断次数却多,造成无线宽带资源浪费,即便使用DMA (Direct Memory Access,直接内存存取)也因为缓冲区的设置和处理方面达不到应有的效率。
如授权公告号 CN100593161的发明公开了一种点到多点的数据分配DMA控制器实现方法,步骤如下:(1)构建一个DMA读端口,从外部数据空间读入数据到DMA内部缓冲器,通过配置DMA读端口的描述符,实现多次DMA读传输过程;(2)构建多个DMA写端口,每个写端口对应于各自的应用接口;(3)为DMA写端口配置不同描述符,通过控制写端口的目标地址增加方式以及屏蔽对特定地址写操作实现数据定制;(4)构建一个状态机统一控制DMA控制器的读端口描述符和各个写端口描述符的加载及DMA的启动和停止,在读端口读周期结束后立即启动所有写端口的总线写周期,根据写端口描述符产生相应的外部写时序,实现点到多点的数据同步转发。
现有技术中DMA的协同运作方式效率低下,容易造成宽带资源浪费。
发明内容
针对现有技术运作方式效率低下,容易造成宽带资源浪费的问题,本发明提供了一种基于数据乒乓填充的DMA工作方法,通过多线程的交错运作,保证数据传输不再是断续的形式,提高了资源利用率。
以下是本发明的技术方案。
一种基于数据乒乓填充的DMA工作方法,包括:建立DMA描述符数据结构,创建若干生产者接口以及消费者接口;每个生产者接口连接一个线程,用于重复执行检索描述符并把数据传输到描述符指定的缓冲区;两个及以上生产者接口运行时,同一时间至少一半的生产者接口执行检索描述符,其余的生产者接口执行数据传输;缓冲区的数据满足条件后,消费者接口介入形成DMA数据区的锁存,当消费者接口提走数据后,释放缓冲区并重复上述操作。当多个接口同步工作时,会出现同一类型的运算量较大,但部分工作停滞,导致资源的严重浪费,因此通过错开工作的形式,进行数据的乒乓填充,最大程度利用硬件资源,提高工作效率。
作为优选,接口传输的数据为未压缩的视频数据。由于传输效率提高,因此视频数据可以不压缩直接传输。
作为优选,所述缓冲区的数据的满足条件为:一帧视频数据完结;当帧尾数据未满时,通过CPU手动填充至满帧。
作为优选,所述描述符的内容包括:指定DMA缓冲区的地址、长度以及下一个描述符的指针。
作为优选,DMA中交错的缓冲区通过链接形成圆形循环。
作为优选,所述消费者接口提取的数据以16K为每单位burst传至无线通道,以进行数据转发。
作为优选,所述每个缓冲区实际大小为16376 B。由于需要标头等信息,需要8个字节,包含其中两个关键字节,一个是标头长度字节,一个是位字段字节,含帧标识符、帧结束指示、错误位等信息,故DMA缓冲区实际大小应为16376 B。
本发明的实质性效果包括:通过不同接口的错开工作,实现数据的乒乓填充,从而提高硬件的使用效率,最终提升整体的运行效率,提高数据传输速度和质量。
具体实施方式
下面将结合实施例,对本申请的技术方案进行描述。另外,为了更好的说明本发明,在下文中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未做详细描述,以便于凸显本发明的主旨。
实施例:
一种基于数据乒乓填充的DMA工作方法,实施于胶囊膀胱镜的发射机中,包括:建立DMA描述符数据结构,创建若干生产者接口以及消费者接口;每个生产者接口连接一个线程,用于重复执行检索描述符并把数据传输到描述符指定的缓冲区;两个生产者接口运行时,同一时间其中一个生产者接口执行检索描述符,另一个生产者接口执行数据传输;缓冲区的数据满足条件后,消费者接口介入形成DMA数据区的锁存,当消费者接口提走数据后,释放缓冲区并重复上述操作。当多个接口同步工作时,会出现同一类型的运算量较大,但部分工作停滞,导致资源的严重浪费,因此通过错开工作的形式,进行数据的乒乓填充,最大程度利用硬件资源,提高工作效率。
其中描述符的内容包括:指定DMA缓冲区的地址、长度以及下一个描述符的指针。
其中缓冲区的数据的满足条件为:一帧视频数据完结;当帧尾数据未满时,通过CPU手动填充至满帧。
DMA中交错的缓冲区通过链接形成圆形循环。
本实施例的整个无线膀胱镜由sensor和发射机组成。Sensor采集视频图像并做部分ISP处理,然后把视频流数据传至发射机,由发射机处理后发射到无线空间。
本实施例采用无压缩格式,视频流数据经算法处理后,在状态机的支配下交给DMA,经接口以生产者和消费者身份做多线程无缝处理后,以16K为每单位burst传至无线通道。
由于需要标头等信息,需要8个字节,包含其中两个关键字节,一个是标头长度字节,一个是位字段字节,含帧标识符、帧结束指示、错误位等信息,故DMA缓冲区实际大小应为16376 B。
本实施例首先建立一组DMA描述符的数据结构,每个描述符指定DMA缓冲区的地址、长度以及下一个描述符的指针。每一个生产者接口和一个线程相连,接口运行时,每次检索一个描述符,之后把数据做准备,传到描述符指定的DMA缓冲区,传输完特定的字节后,接口自动检索下一个描述符,再继续将剩下的个字节传到另一个缓冲区。交错的缓冲区通过链接形成圆形循环。两个生产者线程利用以上规则,首先同时让两个接口取得前两个描述符并传输数据至第一个DMA缓冲区,之后交替切换线程以连接对应的接口,一个加载下一个描述符和准备新的数据,一个把原先已准备好的数据发至对应的DMA缓冲区,周而复始轮番交替,形成数据的乒乓填充,直至一帧完结(遇到帧尾数据未满,CPU会手动填充至满帧),让CPU通知消费者接口介入,以形成DMA数据区的锁存,等到后续消费者提走数据,释放缓冲区后再重复上述操作。
在本申请实施例如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(randomaccess memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种基于数据乒乓填充的DMA工作方法,其特征在于,包括:
建立DMA描述符数据结构,创建若干生产者接口以及消费者接口;
每个生产者接口连接一个线程,用于重复执行检索描述符并把数据传输到描述符指定的缓冲区;
两个及以上生产者接口运行时,同一时间至少一半的生产者接口执行检索描述符,其余的生产者接口执行数据传输;
缓冲区的数据满足条件后,消费者接口介入形成DMA数据区的锁存,当消费者接口提走数据后,释放缓冲区并重复上述操作。
2.根据权利要求1所述的一种基于数据乒乓填充的DMA工作方法,其特征在于,接口传输的数据为未压缩的视频数据。
3.根据权利要求1或2所述的一种基于数据乒乓填充的DMA工作方法,其特征在于,所述缓冲区的数据的满足条件为:一帧视频数据完结;当帧尾数据未满时,通过CPU手动填充至满帧。
4.根据权利要求1或2所述的一种基于数据乒乓填充的DMA工作方法,其特征在于,所述描述符的内容包括:指定DMA缓冲区的地址、长度以及下一个描述符的指针。
5.根据权利要求4所述的一种基于数据乒乓填充的DMA工作方法,其特征在于,DMA中交错的缓冲区通过链接形成圆形循环。
6.根据权利要求1所述的一种基于数据乒乓填充的DMA工作方法,其特征在于,所述消费者接口提取的数据以16K为每单位burst传至无线通道,以进行数据转发。
7.根据权利要求6所述的一种基于数据乒乓填充的DMA工作方法,其特征在于,所述每个缓冲区实际大小为16376 B。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010041796.0A CN111274175A (zh) | 2020-01-15 | 2020-01-15 | 一种基于数据乒乓填充的dma工作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010041796.0A CN111274175A (zh) | 2020-01-15 | 2020-01-15 | 一种基于数据乒乓填充的dma工作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111274175A true CN111274175A (zh) | 2020-06-12 |
Family
ID=70997114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010041796.0A Pending CN111274175A (zh) | 2020-01-15 | 2020-01-15 | 一种基于数据乒乓填充的dma工作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274175A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031603A1 (en) * | 2004-08-09 | 2006-02-09 | Bradfield Travis A | Multi-threaded/multi-issue DMA engine data transfer system |
CN101281460A (zh) * | 2007-04-04 | 2008-10-08 | 国际商业机器公司 | 处理多个线程的方法和系统 |
CN101334761A (zh) * | 2008-06-11 | 2008-12-31 | 南京磐能电力科技股份有限公司 | 一种点到多点数据分配dma控制器实现方法 |
CN102084331A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 在多处理器/多线程环境下协调存储请求的装置、系统和方法 |
US8689237B2 (en) * | 2011-09-22 | 2014-04-01 | Oracle International Corporation | Multi-lane concurrent bag for facilitating inter-thread communication |
CN104778138A (zh) * | 2015-04-20 | 2015-07-15 | 中国科学院光电技术研究所 | 一种内核多线程直接存储驱动实现方法 |
CN107124286A (zh) * | 2016-02-24 | 2017-09-01 | 深圳市知穹科技有限公司 | 一种海量数据高速处理、交互的系统及方法 |
CN107995061A (zh) * | 2017-11-30 | 2018-05-04 | 北京卓讯科信技术有限公司 | 多规格10Gbps网络信号长时采集与回放系统和方法 |
CN110069344A (zh) * | 2019-04-16 | 2019-07-30 | 北京百度网讯科技有限公司 | 一种任务执行方法、装置和智能设备 |
-
2020
- 2020-01-15 CN CN202010041796.0A patent/CN111274175A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031603A1 (en) * | 2004-08-09 | 2006-02-09 | Bradfield Travis A | Multi-threaded/multi-issue DMA engine data transfer system |
CN101281460A (zh) * | 2007-04-04 | 2008-10-08 | 国际商业机器公司 | 处理多个线程的方法和系统 |
CN102084331A (zh) * | 2008-04-06 | 2011-06-01 | 弗森-艾奥公司 | 在多处理器/多线程环境下协调存储请求的装置、系统和方法 |
CN101334761A (zh) * | 2008-06-11 | 2008-12-31 | 南京磐能电力科技股份有限公司 | 一种点到多点数据分配dma控制器实现方法 |
US8689237B2 (en) * | 2011-09-22 | 2014-04-01 | Oracle International Corporation | Multi-lane concurrent bag for facilitating inter-thread communication |
CN104778138A (zh) * | 2015-04-20 | 2015-07-15 | 中国科学院光电技术研究所 | 一种内核多线程直接存储驱动实现方法 |
CN107124286A (zh) * | 2016-02-24 | 2017-09-01 | 深圳市知穹科技有限公司 | 一种海量数据高速处理、交互的系统及方法 |
CN107995061A (zh) * | 2017-11-30 | 2018-05-04 | 北京卓讯科信技术有限公司 | 多规格10Gbps网络信号长时采集与回放系统和方法 |
CN110069344A (zh) * | 2019-04-16 | 2019-07-30 | 北京百度网讯科技有限公司 | 一种任务执行方法、装置和智能设备 |
Non-Patent Citations (2)
Title |
---|
仙人指路: "STM32串口DMA传输与乒乓缓冲的深入研究", 《HTTPS://ISHARE.IASK.SINA.COM.CN/F/19EKNLUXPO1.HTML》 * |
冀常鹏: "《AVR单片机GSM/GPRS应用技术》", 31 July 2011, 国防工业出版社 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5289469A (en) | Communication control unit with lower layer protocol control and higher layer protocol control | |
JP2022519855A (ja) | ビデオストリーム復号方法、装置、端末機器およびプログラム | |
CN109815176B (zh) | 特定dma数据发送方法、接收方法、系统及介质 | |
CN103023809B (zh) | 一种采用二次缓冲技术的信息系统数据同步处理方法 | |
CN110087140B (zh) | 一种传输流媒体数据的方法、装置、介质及设备 | |
CN102566958B (zh) | 一种基于sgdma的图像分割处理装置 | |
CN106454354B (zh) | 一种avs2并行编码处理系统及方法 | |
CN101339541B (zh) | 一种dma数据传输方法及dma控制器 | |
WO2020143237A1 (zh) | 一种dma控制器和异构加速系统 | |
US20110276737A1 (en) | Method and system for reordering the request queue of a hardware accelerator | |
CN110908600B (zh) | 数据访问方法、装置和第一计算设备 | |
CN111459417A (zh) | 一种面向NVMeoF存储网络的无锁传输方法及系统 | |
CN106603409A (zh) | 一种数据处理系统、方法及设备 | |
CN102566959B (zh) | 一种基于sgdma的图像分割处理方法及装置 | |
CN111274175A (zh) | 一种基于数据乒乓填充的dma工作方法 | |
CN112291336B (zh) | 一种arinc429网卡的多通道并行数据加载方法 | |
CN112799723A (zh) | 一种数据读取方法、装置及电子设备 | |
CN112543374A (zh) | 一种转码控制方法、装置及电子设备 | |
CN111258937B (zh) | 一种环式链表dma的传输方法及系统 | |
US20180129442A1 (en) | Systems and methods for providing file information in a memory system protocol | |
CN115756296A (zh) | 缓存管理方法和装置、控制程序及控制器 | |
CN109547277A (zh) | 数据传输的限速方法、系统、设备、计算机可读存储介质 | |
CN111651282A (zh) | 报文处理方法、报文处理装置及电子设备 | |
CN107734002B (zh) | 一种蓝牙数据的接收装置及其方法 | |
JP2001067299A (ja) | インタフェース制御装置及び計算機システム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200612 |