CN113064847A - 数据传输方法、***、处理器及dma控制器 - Google Patents
数据传输方法、***、处理器及dma控制器 Download PDFInfo
- Publication number
- CN113064847A CN113064847A CN202110319768.5A CN202110319768A CN113064847A CN 113064847 A CN113064847 A CN 113064847A CN 202110319768 A CN202110319768 A CN 202110319768A CN 113064847 A CN113064847 A CN 113064847A
- Authority
- CN
- China
- Prior art keywords
- data
- transmission
- buffer area
- dma controller
- buffer
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 261
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000010586 diagram Methods 0.000 description 16
- 125000004122 cyclic group Chemical group 0.000 description 10
- 238000004088 simulation Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
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控制器,以使DMA控制器开始将缓冲区中的数据传输至设定位置;接收DMA控制器完成缓冲区的首端至中间端数据的传输时发送的半传输中断指令;根据半传输中断指令在缓冲区的首端至中间端充填数据;接收DMA控制器完成缓冲区的中间端至末端数据的传输时发送的完全传输中断指令;根据完全传输中断指令在缓冲区的中间端至末端充填数据。本申请的数据传输方法、***、处理器和DMA控制器,在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
Description
技术领域
本申请涉及数据传输技术领域,尤其涉及一种数据传输方法、***、处理器和DMA控制器。
背景技术
处理器(Central Processing Unit,简称CPU)在进行数据的高速传输时,为减少CPU处理时间常使用直接存储器存取(Direct Memory Access,简称DMA)控制器。
相关技术中,大多数处理器仅支持DMA单缓冲模式,DMA单缓冲模式下,只建立一个缓冲区,CPU充填缓冲区结束,DMA控制器开始将缓冲区的数据传输至指定位置,DMA控制器传输结束后,CPU继续充填缓冲区,依次交替进行传输和充填。由于DMA单缓冲模式下数据的充填和传输无法同时进行,会造成数据传输不连续,因此,在对数据传输时间要求严格的场合无法使用仅支持DMA单缓冲模式的处理器,对处理器硬件性能要求高,应用范围不够广泛。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种数据传输方法,以在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
本申请的第二个目的在于提出另一种数据传输方法。
本申请的第三个目的在于提出一种处理器。
本申请的第四个目的在于提出一种DMA控制器。
本申请的第五个目的在于提出一种数据传输***。
为达上述目的,本申请第一方面实施例提出了一种数据传输方法,包括:在缓冲区中充填满数据;将数据传输开启指令发送至DMA控制器,以使所述DMA控制器在接收到所述数据传输开启指令后开始将所述缓冲区中的数据传输至设定位置;接收所述DMA控制器发送的半传输中断指令,所述半传输中断指令由所述DMA控制器完成所述缓冲区的首端至中间端数据的传输时生成;根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;接收所述DMA控制器发送的完全传输中断指令,所述完全传输中断指令由所述DMA控制器完成所述缓冲区的中间端至末端数据的传输时生成;根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
本申请实施例提出的数据传输方法,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
根据本申请的一个实施例,所述在缓冲区中充填满数据之前,本申请实施例的数据传输方法还包括:在内存中申请建立所述缓冲区。
根据本申请的一个实施例,所述根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据,包括:根据所述半传输中断指令从所述缓冲区的首端至中间端依次充填数据。
根据本申请的一个实施例,所述根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据,包括:根据所述完全传输中断指令从所述缓冲区的中间端至末端依次充填数据。
根据本申请的一个实施例,所述设定位置包括预设的目标存储器或目标输入输出设备。
根据本申请的一个实施例,充填数据的速度等于或者大于传输数据的速度。
为达上述目的,本申请第二方面实施例提出了一种数据传输方法,包括:接收处理器发送的数据传输开启指令,所述数据传输开启指令由所述处理器在缓冲区中充填满数据后生成;根据所述数据传输开启指令开始将所述缓冲区中的数据传输至设定位置;完成所述缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将所述半传输中断指令发送至所述处理器,以使所述处理器根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;完成所述缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将所述完全传输中断指令发送至所述处理器,以使所述处理器根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
本申请实施例提出的数据传输方法,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
根据本申请的一个实施例,所述根据所述数据传输开启指令开始将所述缓冲区中的数据传输至设定位置,包括:根据所述数据传输开启指令从所述缓冲区的首端至末端依次将数据传输至所述设定位置,并重复从所述缓冲区的首端至末端依次将数据传输至所述设定位置。
根据本申请的一个实施例,充填数据的速度等于或者大于传输数据的速度。
为达上述目的,本申请第三方面实施例提出了一种处理器,包括:第一充填模块,用于在缓冲区中充填满数据;第一发送模块,用于将数据传输开启指令发送至DMA控制器,以使所述DMA控制器在接收到所述数据传输开启指令后开始将所述缓冲区中的数据传输至设定位置;第一接收模块,用于接收所述DMA控制器发送的半传输中断指令,所述半传输中断指令由所述DMA控制器完成所述缓冲区的首端至中间端数据的传输时生成;第二充填模块,用于根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;第二接收模块,用于接收所述DMA控制器发送的完全传输中断指令,所述完全传输中断指令由所述DMA控制器完成所述缓冲区的中间端至末端数据的传输时生成;第三充填模块,用于根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
本申请实施例提出的处理器,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例提出的处理器基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
为达上述目的,本申请第四方面实施例提出了一种DMA控制器,包括:第三接收模块,用于接收处理器发送的数据传输开启指令,所述数据传输开启指令由所述处理器在缓冲区中充填满数据后生成;传输模块,用于根据所述数据传输开启指令开始将所述缓冲区中的数据传输至设定位置;第二发送模块,用于完成所述缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将所述半传输中断指令发送至所述处理器,以使所述处理器根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;第三发送模块,用于完成所述缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将所述完全传输中断指令发送至所述处理器,以使所述处理器根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
本申请实施例提出的DMA控制器,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
为达上述目的,本申请第五方面实施例提出了一种数据传输***,包括:如本申请第三方面实施例所述的处理器和如本申请第四方面实施例所述的DMA控制器。
附图说明
图1是根据本申请一个实施例的数据传输方法的流程示意图;
图2是根据本申请另一个实施例的数据传输方法的流程示意图;
图3是根据本申请另一个实施例的数据传输方法的流程示意图;
图4是根据本申请另一个实施例的数据传输方法的流程示意图;
图5是根据本申请另一个实施例的数据传输方法的流程示意图;
图6是根据本申请另一个实施例的数据传输方法的流程示意图;
图7是根据本申请另一个实施例的数据传输方法的流程示意图;
图8是根据本申请另一个实施例的数据传输方法的流程示意图;
图9是根据本申请另一个实施例的数据传输方法的流程示意图;
图10是根据本申请另一个实施例的数据传输方法的信令交互图;
图11是根据本申请一个实施例的处理器的结构示意图;
图12是根据本申请一个实施例的DMA控制器的结构示意图;
图13是根据本申请一个实施例的数据传输***的示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面结合附图来描述本申请实施例的数据传输方法、***、处理器及DMA控制器。
图1是根据本申请一个实施例的数据传输方法的流程示意图。本申请实施例的数据传输方法,可由本申请实施例提供的处理器CPU执行。如图1所示,本申请实施例的数据传输方法具体可包括以下步骤:
S101,在缓冲区中充填满数据。
本申请实施例中,CPU启动DMA控制器数据传输后,在分配的单块缓冲区(Buffer,简称BUF)中充填满数据。本领域技术人员可以理解,数据传输时通常以数据块为单位进行传输,如图2所示,缓冲区中包括8个数据块充填区,CPU可以按照首端至末端(图2中从左至右)的顺序依次充填满这8个数据块充填区。
S102,将数据传输开启指令发送至DMA控制器,以使DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置。
本申请实施例中,CPU在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器接收到该数据传输开启指令后,开始进行数据传输,将缓冲区中充填的数据传输至设定位置,具体可按照首端至末端的顺序依次传输缓冲区中充填的数据。其中,设定位置具体可包括但不限于预设的目标存储器或目标输入输出(Input/Output,简称I/O)设备。目标存储器可为数据传输前所在的存储器,实现目标存储器内部数据块的移动。如图3所示,DMA控制器已完成首端开始的第1至第3个数据块的传输。
S103,接收DMA控制器发送的半传输中断指令,半传输中断指令由DMA控制器完成缓冲区的首端至中间端数据的传输时生成。
本申请实施例中,在DMA控制器将缓冲区中充填的数据传输至设定位置的过程中,当DMA控制器完成缓冲区长度的一半即首端至中间端数据的传输时,生成半传输中断指令,例如完成图3中首端开始的第1至第4个数据块的传输时,生成半传输中断指令,并将该半传输中断指令发送至CPU。CPU接收该半传输中断指令。
S104,根据半传输中断指令在缓冲区的首端至中间端充填数据。
本申请实施例中,CPU接收到DMA控制器发送的半传输中断指令后,在缓冲区的首端至中间端重新充填数据,具体可从缓冲区的首端至中间端依次重新充填数据,即从缓冲区的首端开始在缓冲区中开始重新充填数据,直至充填至缓冲区长度的一半后结束充填,即在缓冲区的首端至中间端充填满数据后结束充填。此处需要说明的是,在CPU充填数据的同时,DMA控制器仍然在进行数据传输。如图4所示,DMA控制器已完成首端开始的第1至第5个数据块的传输,CPU已完成首端开始的第1个数据块的重新充填。
S105,接收DMA控制器发送的完全传输中断指令,完全传输中断指令由DMA控制器完成缓冲区的中间端至末端数据的传输时生成。
本申请实施例中,在DMA控制器将缓冲区中充填的数据传输至设定位置的过程中,当DMA控制器完成缓冲区长度的另一半即中间端至末端数据的传输时,生成完全传输中断指令,例如完成图4中首端开始的第5至第8个数据块的传输时,生成完全传输中断指令,并将该完全传输中断指令发送至CPU。CPU接收该完全传输中断指令。
S106,根据完全传输中断指令在缓冲区的中间端至末端充填数据。
本申请实施例中,CPU接收到DMA控制器发送的完全传输中断指令后,在缓冲区的中间端至末端重新充填数据,具体可从缓冲区的中间端至末端依次重新充填数据,即从缓冲区的中间端开始在缓冲区中重新开始充填数据,直至充填至缓冲区的末端时结束充填,即在缓冲区的中间端至末端充填满数据后结束充填。此处需要说明的是,在CPU充填数据的同时,DMA控制器仍然在进行数据传输。如图5所示,DMA控制器已完成首端开始的第1至第3个数据块的传输,CPU已完成首端开始的第5至第7个数据块的重新充填。
本领域技术人员可以理解,CPU在缓冲区中充填数据的速度等于或者大于DMA控制器将缓冲区中的数据进行传输的速度,以避免出现传输数据未准备好的情况。如图6所示,DMA控制器已完成首端开始的第1个数据块的传输,CPU已完成首端开始的第5至第7个数据块的重新充填。
此处需要说明的是,DMA控制器根据数据传输开启指令从缓冲区的首端至末端依次将数据传输至设定位置后,重复从缓冲区的首端至末端依次将数据传输至设定位置。在循环传输的过程中循环执行上述步骤S103-S106,可以实现单缓冲区下的充填和传输同时进行,保证数据传输的连续性。
本领域技术人员可以理解,DMA控制器在将缓冲区的数据传输至设定位置时,通过不断更新寄存器内存储的缓冲区内待传输数据地址,实现缓冲区内待传输数据的依次传输。
本申请实施例的数据传输方法,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
图7为本申请另一个实施例的数据传输方法的流程示意图。如图7所示,在上述图1所示实施例的基础之上,本申请实施例的数据传输方法具体可包括以下步骤:
S601,在内存中申请建立缓冲区。
本申请实施例中,在CPU启动DMA控制器数据传输之前,需先在内存中申请建立一个缓冲区,以便后续在该缓冲区中充填待传输的数据。
S602,在缓冲区中充填满数据。
S603,将数据传输开启指令发送至DMA控制器,以使DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置。
S604,接收DMA控制器发送的半传输中断指令,半传输中断指令由DMA控制器完成缓冲区的首端至中间端数据的传输时生成。
S605,根据半传输中断指令在缓冲区的首端至中间端充填数据。
S606,接收DMA控制器发送的完全传输中断指令,完全传输中断指令由DMA控制器完成缓冲区的中间端至末端数据的传输时生成。
S607,根据完全传输中断指令在缓冲区的中间端至末端充填数据。
本申请实施例中,步骤S602-S607与上述实施例中的步骤S101-S106相同,具体过程此处不再赘述。
本申请实施例的数据传输方法,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
图8是根据本申请另一个实施例的数据传输方法的流程示意图。本申请实施例的数据传输方法,可由本申请实施例提供的DMA控制器执行。如图8所示,本申请实施例的数据传输方法具体可包括以下步骤:
S701,接收处理器发送的数据传输开启指令,数据传输开启指令由处理器在缓冲区中充填满数据后完成。
S702,根据数据传输开启指令开始将缓冲区中的数据传输至设定位置。
S703,完成缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将半传输中断指令发送至处理器,以使处理器根据半传输中断指令在缓冲区的首端至中间端充填数据。
S704,完成缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将完全传输中断指令发送至处理器,以使处理器根据完全传输中断指令在缓冲区的中间端至末端充填数据。
需要说明的是,前述对数据传输方法实施例的解释说明也适用于该实施例的数据传输方法,此处不再赘述。
本申请实施例的数据传输方法,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
图9为本申请另一个实施例的数据传输方法的流程示意图。如图9所示,在上述图8所示实施例的基础之上,本申请实施例的数据传输方法具体可包括以下步骤:
S801,接收处理器发送的数据传输开启指令,数据传输开启指令由处理器在缓冲区中充填满数据后完成。
本申请实施例中,步骤S801与上述实施例中的步骤S701相同,具体过程此处不再赘述。
上述实施例中的步骤S702具体可包括以下步骤S802。
S802,根据数据传输开启指令从缓冲区的首端至末端依次将数据传输至设定位置,并重复从缓冲区的首端至末端依次将数据传输至设定位置。
S803,完成缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将半传输中断指令发送至处理器,以使处理器根据半传输中断指令在缓冲区的首端至中间端充填数据。
S804,完成缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将完全传输中断指令发送至处理器,以使处理器根据完全传输中断指令在缓冲区的中间端至末端充填数据。
本申请实施例中,步骤S803-S804与上述实施例中的步骤S703-S704相同,具体过程此处不再赘述。
其中,CPU在缓冲区中充填数据的速度等于或者大于DMA控制器将缓冲区中的数据进行传输的速度。
本申请实施例的数据传输方法,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的数据传输方法基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
为清楚说明本申请实施例的数据传输方法,下面结合图10所示的数据传输方法的信令交互图进行详细描述。如图10所示,具体包括以下步骤:
S901,处理器CPU在内存中申请建立缓冲区。
S902,CPU在缓冲区中充填满数据。
S903,CPU将数据传输开启指令发送至DMA控制器。
S904,DMA控制器根据数据传输开启指令从缓冲区的首端至末端依次将数据传输至设定位置,并重复从缓冲区的首端至末端依次将数据传输至设定位置。
S905,DMA控制器完成缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将半传输中断指令发送至CPU。
S906,CPU根据半传输中断指令在缓冲区的首端至中间端充填数据。
S907,DMA控制器完成缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将完全传输中断指令发送至CPU。
S908,CPU根据完全传输中断指令在缓冲区的中间端至末端充填数据。
为了实现上述实施例,本申请实施例还提出一种处理器,该处理器可实现上述图1、图7所示实施例的数据传输方法。图11是根据本申请一个实施例的处理器的结构示意图。如图11所示,本申请实施例的处理器100,具体可包括:第一充填模块101、第一发送模块102、第一接收模块103、第二充填模块104、第二接收模块105和第三充填模块106。
第一充填模块101,用于在缓冲区中充填满数据。
第一发送模块102,用于将数据传输开启指令发送至DMA控制器,以使DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置。
第一接收模块103,用于接收DMA控制器发送的半传输中断指令,半传输中断指令由DMA控制器完成缓冲区的首端至中间端数据的传输时生成。
第二充填模块104,用于根据半传输中断指令在缓冲区的首端至中间端充填数据。
第二接收模块105,用于接收DMA控制器发送的完全传输中断指令,完全传输中断指令由DMA控制器完成缓冲区的中间端至末端数据的传输时生成。
第三充填模块106,用于根据完全传输中断指令在缓冲区的中间端至末端充填数据。
进一步的,在本申请实施例一种可能的实现方式中,在缓冲区中充填满数据之前,第一充填模块101还用于:在内存中申请建立缓冲区。
进一步的,在本申请实施例一种可能的实现方式中,第二充填模块104具体用于:根据半传输中断指令从缓冲区的首端至中间端依次充填数据。
进一步的,在本申请实施例一种可能的实现方式中,第三充填模块106具体用于:根据完全传输中断指令从缓冲区的中间端至末端依次充填数据。
进一步的,在本申请实施例一种可能的实现方式中,设定位置包括预设的目标存储器或目标输入输出设备。
需要说明的是,前述对数据传输方法实施例的解释说明也适用于该实施例的处理器,此处不再赘述。
本申请实施例的处理器,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的处理器基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
为了实现上述实施例,本申请实施例还提出一种DMA控制器,该DMA控制器可实现上述图8、图9所示实施例的数据传输方法。图12是根据本申请一个实施例的DMA控制器的结构示意图。如图12所示,该DMA控制器具体可包括:第三接收模块111、传输模块112、第二发送模块113和第三发送模块114。
第三接收模块111,用于接收处理器发送的数据传输开启指令,数据传输开启指令由处理器在缓冲区中充填满数据后生成。
传输模块112,用于根据数据传输开启指令开始将缓冲区中的数据传输至设定位置。
第二发送模块113,用于完成缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将半传输中断指令发送至处理器,以使处理器根据半传输中断指令在缓冲区的首端至中间端充填数据。
第三发送模块114,用于完成缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将完全传输中断指令发送至处理器,以使处理器根据完全传输中断指令在缓冲区的中间端至末端充填数据。
进一步的,在本申请实施例一种可能的实现方式中,传输模块112具体用于:根据数据传输开启指令从缓冲区的首端至末端依次将数据传输至设定位置,并重复从缓冲区的首端至末端依次将数据传输至设定位置。
需要说明的是,前述对数据传输方法实施例的解释说明也适用于该实施例的DMA控制器,此处不再赘述。
本申请实施例的DMA控制器,处理器在缓冲区中充填满数据后,将数据传输开启指令发送至DMA控制器,DMA控制器在接收到数据传输开启指令后开始将缓冲区中的数据传输至设定位置,处理器在接收到DMA控制器发送的半传输中断指令后在缓冲区的首端至中间端重新充填数据,在接收到DMA控制器发送的完全传输中断指令后在缓冲区的中间端至末端充填数据。本申请实施例的处理器基于单缓冲DMA,充分利用处理器具有的DMA半传输中断、完全传输中断和循环传输特性,实现了双缓冲模式的模拟,从而可以进行不间断的数据传输,进而在对数据传输时间要求严格的场合也能使用仅支持DMA单缓冲模式的处理器,降低对处理器硬件的性能要求,应用范围广泛。
为了实现上述实施例,本申请实施例还提出一种数据传输***。如图13所示,该数据传输***120包括:上述实施例所示的处理器100和上述实施例所示的DMA控制器110。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
在缓冲区中充填满数据;
将数据传输开启指令发送至DMA控制器,以使所述DMA控制器在接收到所述数据传输开启指令后开始将所述缓冲区中的数据传输至设定位置;
接收所述DMA控制器发送的半传输中断指令,所述半传输中断指令由所述DMA控制器完成所述缓冲区的首端至中间端数据的传输时生成;
根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;
接收所述DMA控制器发送的完全传输中断指令,所述完全传输中断指令由所述DMA控制器完成所述缓冲区的中间端至末端数据的传输时生成;
根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
2.根据权利要求1所述的数据传输方法,其特征在于,所述在缓冲区中充填满数据之前,还包括:
在内存中申请建立所述缓冲区。
3.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据,包括:
根据所述半传输中断指令从所述缓冲区的首端至中间端依次充填数据。
4.根据权利要求1所述的数据传输方法,其特征在于,所述根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据,包括:
根据所述完全传输中断指令从所述缓冲区的中间端至末端依次充填数据。
5.根据权利要求1所述的数据传输方法,其特征在于,在所述缓冲区中充填数据的速度等于或者大于将所述缓冲区中的数据进行传输的速度。
6.一种数据传输方法,其特征在于,包括:
接收处理器发送的数据传输开启指令,所述数据传输开启指令由所述处理器在缓冲区中充填满数据后生成;
根据所述数据传输开启指令开始将所述缓冲区中的数据传输至设定位置;
完成所述缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将所述半传输中断指令发送至所述处理器,以使所述处理器根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;
完成所述缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将所述完全传输中断指令发送至所述处理器,以使所述处理器根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
7.根据权利要求6所述的数据传输方法,其特征在于,所述根据所述数据传输开启指令开始将所述缓冲区中的数据传输至设定位置,包括:
根据所述数据传输开启指令从所述缓冲区的首端至末端依次将数据传输至所述设定位置,并重复从所述缓冲区的首端至末端依次将数据传输至所述设定位置。
8.一种处理器,其特征在于,包括:
第一充填模块,用于在缓冲区中充填满数据;
第一发送模块,用于将数据传输开启指令发送至DMA控制器,以使所述DMA控制器在接收到所述数据传输开启指令后开始将所述缓冲区中的数据传输至设定位置;
第一接收模块,用于接收所述DMA控制器发送的半传输中断指令,所述半传输中断指令由所述DMA控制器完成所述缓冲区的首端至中间端数据的传输时生成;
第二充填模块,用于根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;
第二接收模块,用于接收所述DMA控制器发送的完全传输中断指令,所述完全传输中断指令由所述DMA控制器完成所述缓冲区的中间端至末端数据的传输时生成;
第三充填模块,用于根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
9.一种DMA控制器,其特征在于,包括:
第三接收模块,用于接收处理器发送的数据传输开启指令,所述数据传输开启指令由所述处理器在缓冲区中充填满数据后生成;
传输模块,用于根据所述数据传输开启指令开始将所述缓冲区中的数据传输至设定位置;
第二发送模块,用于完成所述缓冲区的首端至中间端数据的传输时生成半传输中断指令,并将所述半传输中断指令发送至所述处理器,以使所述处理器根据所述半传输中断指令在所述缓冲区的首端至中间端充填数据;
第三发送模块,用于完成所述缓冲区的中间端至末端数据的传输时生成完全传输中断指令,并将所述完全传输中断指令发送至所述处理器,以使所述处理器根据所述完全传输中断指令在所述缓冲区的中间端至末端充填数据。
10.一种数据传输***,其特征在于,包括:如权利要求8所述的处理器和如权利要求9所述的DMA控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110319768.5A CN113064847A (zh) | 2021-03-25 | 2021-03-25 | 数据传输方法、***、处理器及dma控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110319768.5A CN113064847A (zh) | 2021-03-25 | 2021-03-25 | 数据传输方法、***、处理器及dma控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113064847A true CN113064847A (zh) | 2021-07-02 |
Family
ID=76561887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110319768.5A Pending CN113064847A (zh) | 2021-03-25 | 2021-03-25 | 数据传输方法、***、处理器及dma控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064847A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986808A (zh) * | 2021-11-16 | 2022-01-28 | 中微半导体(深圳)股份有限公司 | 一种发送bmc码的方法、***及计算机设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0353736A (ja) * | 1989-07-21 | 1991-03-07 | Nec Corp | 受信バッファ制御方式 |
CN101071404A (zh) * | 2006-05-09 | 2007-11-14 | 大唐移动通信设备有限公司 | 一种小容量fifo存储器的数据搬移触发装置和方法 |
CN101558366A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN103678206A (zh) * | 2013-11-18 | 2014-03-26 | 航天恒星科技有限公司 | 一种基于fpga***的遥感数据进机处理结构 |
CN207817702U (zh) * | 2018-02-24 | 2018-09-04 | 丰郅(上海)新能源科技有限公司 | 用于提高数据处理速度的数据处理*** |
CN108804343A (zh) * | 2018-05-18 | 2018-11-13 | 记忆科技(深圳)有限公司 | 嵌入式存储接口数据传输方法、装置、计算机设备及介质 |
-
2021
- 2021-03-25 CN CN202110319768.5A patent/CN113064847A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0353736A (ja) * | 1989-07-21 | 1991-03-07 | Nec Corp | 受信バッファ制御方式 |
CN101071404A (zh) * | 2006-05-09 | 2007-11-14 | 大唐移动通信设备有限公司 | 一种小容量fifo存储器的数据搬移触发装置和方法 |
CN101558366A (zh) * | 2006-12-15 | 2009-10-14 | 密克罗奇普技术公司 | 直接存储器存取控制器 |
CN103678206A (zh) * | 2013-11-18 | 2014-03-26 | 航天恒星科技有限公司 | 一种基于fpga***的遥感数据进机处理结构 |
CN207817702U (zh) * | 2018-02-24 | 2018-09-04 | 丰郅(上海)新能源科技有限公司 | 用于提高数据处理速度的数据处理*** |
CN108804343A (zh) * | 2018-05-18 | 2018-11-13 | 记忆科技(深圳)有限公司 | 嵌入式存储接口数据传输方法、装置、计算机设备及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986808A (zh) * | 2021-11-16 | 2022-01-28 | 中微半导体(深圳)股份有限公司 | 一种发送bmc码的方法、***及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9934160B1 (en) | Bit-mapped DMA and IOC transfer with dependency table comprising plurality of index fields in the cache for DMA transfer | |
US6329996B1 (en) | Method and apparatus for synchronizing graphics pipelines | |
US8156252B2 (en) | Apparatus and method for block-based data striping to solid-state memory modules with optional data format protocol translation | |
CN106098022B (zh) | 一种缩短图像延迟的方法和装置 | |
CN102439983B (zh) | 一种数据快速分发方法和装置 | |
JP6370027B2 (ja) | 高クロック速度での連続リードバーストサポート | |
CN107181774B (zh) | 分布式数据中心之间的数据移动 | |
CN109902059A (zh) | 一种cpu与gpu之间的数据传输方法 | |
CN115150286B (zh) | 传输节点变更方法、装置、计算机设备、存储介质 | |
KR102371270B1 (ko) | 제어 장치, 특히 자동차용 제어 장치 | |
CN115470163A (zh) | Dma传输的控制方法、控制装置、控制设备及存储介质 | |
CN102291298A (zh) | 一种高效的面向长消息的计算机网络通信方法 | |
US10002090B2 (en) | Method for improving the performance of synchronous serial interfaces | |
CN113064847A (zh) | 数据传输方法、***、处理器及dma控制器 | |
CN117312229B (zh) | 一种数据传输装置、数据处理设备、***、方法及介质 | |
JP2002544585A (ja) | ホストプロセッサに対して可変幅インタフェースを有するfifoシステム | |
JP2015138322A (ja) | 電子制御装置 | |
CN111400213B (zh) | 传输数据的方法、装置及*** | |
JP6290761B2 (ja) | データ転送制御システム、データ転送制御方法、及び、データ転送制御プログラム | |
US7840722B2 (en) | Method for receiving data over an SDIO interface and device using the same | |
CN112311694B (zh) | 一种优先级调整方法及装置 | |
US10733127B2 (en) | Data transmission apparatus and data transmission method | |
CN104484205A (zh) | 一种io设备固件的升级装置及方法 | |
JP2009064104A (ja) | 分散型処理システム、分散型処理方法、端末、及び、プログラム | |
CN101452429A (zh) | 一种cpu及一种cpu内部与外部数据传输的方法 |
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: 20210702 |