CN115563038A - 基于dma控制器的数据处理***、方法和数据处理设备 - Google Patents
基于dma控制器的数据处理***、方法和数据处理设备 Download PDFInfo
- Publication number
- CN115563038A CN115563038A CN202211304870.9A CN202211304870A CN115563038A CN 115563038 A CN115563038 A CN 115563038A CN 202211304870 A CN202211304870 A CN 202211304870A CN 115563038 A CN115563038 A CN 115563038A
- Authority
- CN
- China
- Prior art keywords
- data
- processed
- descriptor
- dma controller
- memory
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 134
- 238000000034 method Methods 0.000 title claims description 48
- 230000005540 biological transmission Effects 0.000 claims abstract description 175
- 238000003672 processing method Methods 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 32
- 239000000872 buffer Substances 0.000 claims description 9
- 238000012546 transfer Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 101100322245 Caenorhabditis elegans des-2 gene Proteins 0.000 description 1
- 101100222880 Diacronema lutheri Plesd1 gene Proteins 0.000 description 1
- 102100037416 Sphingolipid delta(4)-desaturase DES1 Human genes 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 230000007246 mechanism Effects 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/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
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控制器,用于获取描述符组和待处理数据,并基于描述符组,获取描述符组对应的待处理数据的传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入描述符组对应的待处理数据,或通过I/O接口向至少一个外部设备发送描述符组对应的待处理数据。应用本发明的技术方案,能够提高数据的传输效率。
Description
技术领域
本发明实施例涉及数据处理技术领域,具体涉及一种基于DMA控制器的数据处理***、方法和数据处理设备。
背景技术
DMA(Direct Memory Access,直接存储器访问)控制器是一种在计算机***内部转移数据的独特的外部设备,其能够将外设的数据传输到存储器或者将存储器中的数据传输到外设。
在数据传输时,计算机***内的中央处理器需要在每次传输前预先设置此次传输需要的配置信息,比如配置DMA控制器相关的寄存器、设置I/O接口的工作状态等,使得计算机***内各模块的状态与此次要传输的数据适配。这种方式虽然能够完成数据的传输,但中央处理器每次配置能够传输的数据是有限的,当要传输的数据量比较大或者传输次数比较多时,中央处理器与DMA控制器需要频繁进行交互,导致整个***的数据传输效率比较低。
因此,需要提供一种能够有效提高计算机***的数据传输效率的***。
发明内容
鉴于上述问题,本发明实施例提供了一种基于DMA控制器的数据处理***、方法和数据处理设备,用于解决现有技术中存在的计算机***内的数据传输效率较低的问题。
根据本发明实施例的一个方面,提供了一种基于DMA控制器的数据处理***,所述数据处理***包括中央处理器和所述DMA控制器;
所述中央处理器,用于生成至少一个描述符组,并向所述DMA控制器发送所述至少一个描述符组,其中,所述描述符组包括至少一个描述符,所述描述符用于指示对应的待处理数据的传输配置信息;所述DMA控制器,用于获取所述描述符组和待处理数据,并基于所述描述符组,获取所述描述符组对应的待处理数据的传输配置信息,并根据所述传输配置信息通过I/O接口在存储器中写入所述描述符组对应的待处理数据,或通过所述I/O接口向至少一个外部设备发送所述描述符组对应的待处理数据。
在一种可选的方式中,所述中央处理器,具体用于:分别为至少一个待处理数据和所述描述符组分配第一存储地址和第二存储地址;基于所述第一存储地址生成所述至少一个待处理数据一一对应的描述符,将所述至少一个待处理数据对应的描述符写入所述第二存储地址,以得到所述描述组,所述待处理数据对应的描述符包括所述待处理数据在所述存储器中存放的地址信息和存储空间大小;配置所述DMA控制器中的寄存器,并在所述寄存器中存储所述至少一个待处理数据的传输配置信息;其中,所述传输配置信息包括所述描述符组的头尾指针、数据长度和所述描述符组包括的至少一个描述符的地址信息。
在一种可选的方式中,所述DMA控制器具体用于:接收来自所述I/O接口的待处理数据;根据所述传输配置信息,确定所述待处理数据在所述存储器中的目标存储地址;缓存所述待处理数据,并通过***总线将所述待处理数据写入所述目标存储地址。
在一种可选的方式中,所述中央处理器,还用于:根据待处理数据的优先级,确定多个所述描述符组与所述待处理数据之间的映射关系;通过所述DMA控制器向所述I/O接口发送所述映射关系。
在一种可选的方式中,所述I/O接口还用于:根据所述待处理数据的优先级,确定所述I/O接口中缓存的优先级最高的待处理数据;根据所述映射关系,向所述DMA控制器传输所述优先级最高的待处理数据及其对应的描述符组。
在一种可选的方式中,所述DMA控制器还用于:根据所述描述符的状态信息,确定所述描述符对应的待处理数据是否已向存储器传输;所述描述符的状态信息用于指示所述描述符对应的待处理数据是否已传输;若所述存储器未存储所述描述符对应的待处理数据,则根据所述描述符确定传输配置信息,并根据所述传输配置信息通过所述I/O接口在所述存储器中写入所述待处理数据。
在一种可选的方式中,所述DMA控制器具体用于:解析所述描述符组,得到所述待处理数据在所述存储器中的地址信息和存储空间大小;基于所述地址信息和所述存储空间大小,通过所述***总线向所述存储器发送读取请求;接收来自所述存储器下发的所述待处理数据,并通过所述I/O接口向所述外部设备发送所述待处理数据。
在一种可选的方式中,所述DMA控制器还用于:获取至少一个外部设备的读取请求;根据所述至少一个外部设备的请求优先级和所述DMA控制器中的剩余缓存空间,对所述至少一个外部设备的读取请求进行调度;所述DMA控制器中的剩余缓存空间大于或等于所述调度的读取请求所请求的所述待处理数据的数据量。
根据本发明实施例的另一方面,提供了一种基于直接存储器访问DMA控制器的数据处理方法,所述方法包括:中央处理器生成至少一个描述符组,并向所述DMA控制器发送所述至少一个描述符组,其中,所述描述符组包括至少一个描述符,所述描述符用于指示对应的待处理数据的传输配置信息;所述DMA控制器获取所述描述符组和待处理数据,并基于所述描述符组,获取所述描述符组对应的待处理数据的传输配置信息,并根据所述传输配置信息通过I/O接口在存储器中写入所述描述符组对应的待处理数据,或通过所述I/O接口向所述外部设备发送所述描述符组对应的待处理数据。
在一种可选的方式中,所述中央处理器生成至少一个描述符组,包括:所述中央处理器分别为至少一个待处理数据和所述描述符组分配第一存储地址和第二存储地址;所述中央处理器基于所述第一存储地址生成所述至少一个待处理数据一一对应的描述符,将所述至少一个待处理数据对应的描述符写入所述第二存储地址,以得到所述描述组,所述待处理数据对应的描述符包括所述待处理数据在所述存储器中存放的地址信息和存储空间大小;所述中央处理器配置所述DMA控制器中的寄存器,并在所述寄存器中存储所述至少一个待处理数据的传输配置信息;其中,所述传输配置信息包括所述描述符组的头尾指针、数据长度和所述描述符组包括的至少一个描述符的地址信息。
在一种可选的方式中,所述方法还包括:所述中央处理器根据待处理数据的优先级,确定多个所述描述符组与所述待处理数据之间的映射关系;所述中央处理器通过所述DMA控制器向所述I/O接口发送所述映射关系,以使所述I/O接口根据所述待处理数据的优先级,确定所述I/O接口中缓存的优先级最高的待处理数据,并根据所述映射关系,向所述DMA控制器传输所述优先级最高的待处理数据及其对应的描述符组。
根据本发明实施例的另一方面,提供了一种数据处理设备,包括:处理器;存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如上述的基于DMA控制器的数据处理方法的操作。
本发明实施例提出了一种基于DMA控制器的数据处理***、基于DMA控制器的数据处理方法和数据处理设备,可以由中央处理器生成至少一个描述符组,并向DMA控制器发送至少一个描述符组,描述符组包括至少一个描述符,描述符用于指示对应的待处理数据的传输配置信息,通过DMA控制器获取描述符组和待处理数据,并基于描述符组,获取描述符组对应的待处理数据的传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入描述符组对应的待处理数据,或通过I/O接口向至少一个外部设备发送描述符组对应的待处理数据。本方案通过由DMA控制器利用中央处理器生成的描述符组,获取描述符组对应的待处理数据的传输配置信息,并按照该信息在存储器中写入描述符组对应的待处理数据或者向至少一个外部设备发送描述符组对应的待处理数据,避免了每次数据上送或下发都需要中央处理器参与下发传输配置信息的下发,使得DMA控制器可以一次性获取多组待处理数据的传输配置信息,实现一次配置,多次传输,所以能够提高数据传输的效率,简化传输配置信息的下发流程。
上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明提供的一种基于DMA控制器的数据处理***的结构示意图;
图2示出了本发明提供的一种DMA控制器的初始化配置方法的流程示意图;
图3示出了本发明提供的一种待处理数据的上送流程示意图;
图4示出了本发明提供的另一种待处理数据的上送流程示意图;
图5示出了本发明提供的一种待处理数据的处理流程示意图;
图6示出了本发明提供的再一种待处理数据的上送流程示意图;
图7示出了本发明提供的一种待处理数据的下发流程示意图;
图8示出了本发明提供的一种读取请求的调度处理示意图;
图9示出了本发明提供的一种基于DMA控制器的数据处理方法的流程示意图;
图10示出了本发明提供的另一种DMA控制器的初始化配置方法的流程示意图;
图11示出了本发明提供的另一种待处理数据的处理流程示意图;
图12示出了本发明提供的一种数据处理设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
图1示出了本发明实施例提供的一种基于DMA控制器的数据处理***的结构示意图,如图1所示,该数据处理***100可以包括:中央处理器110、DMA控制器120、I/O接口130、存储器140、***总线150和至少一个外部设备160,且中央处理器110、DMA控制器120和存储器140通过***总线150连接,以进行通信。中央处理器110可以用于生成至少一个描述符组,并向DMA控制器120发送上述至少一个描述符组,描述符组包括至少一个描述符,该描述符用于指示对应的待处理数据的传输配置信息。
DMA控制器120可以用于获取描述符组和待处理数据,并基于该描述符组,获取该描述符组对应的待处理数据的传输配置信息,并根据该传输配置信息通过I/O接口130在存储器140中写入描述符组对应的待处理数据,或通过I/O接口130向至少一个外部设备160发送描述符组对应的待处理数据。
其中,中央处理器110作为计算机的主要设备之一,是计算机***的运算和控制核心,也是信息处理、程序运行的最终执行单元,中央处理器110可以主动发起读写请求,以进行数据传输。
DMA控制器120能够在中央处理器110的编程控制下控制数据的传输,是一个专门的硬件控制电路,可以将至少一个外部设备160的数据传输到存储器140,也可以将存储器140的数据传输到至少一个外部设备160,并且DMA控制器120既可以主动发起读写传输,也可以接收来自***总线150的读写请求。
I/O接口130是主机与至少一个外部设备160进行数据交换的纽带,它们的工作方式可以由程序进行控制,其硬件主要分为两大类:I/O接口130芯片和I/O接口130控制卡。
存储器140是用来存储程序和各种数据信息的记忆部件,其只能被动地接收经由***总线150发送的读写请求,具体的,存储器140可以是能够和中央处理器110直接交换信息的主存储器,主存储器的工作方式是按照存储单元的地址来存放或读取信息。***总线150可以用来连接计算机***内各功能部件,使其形成一个完整微机***。
外部设备160可以是涉及到主机以外的任何设备,是附属的或辅助的与主机连接起来的设备,能够起到扩充计算机***的作用,一般可以是输入设备、输出设备和外存储器等。
描述符组可以包括描述符队列或描述符链表,对于描述符队列,其是一种由一个或多个描述符构成的队列数据,具有“先进先出”的数据结构;描述符链表是一种包括一个或多个描述符的链式存储结构,其在物理存储单元上具有非连续、非顺序的特点,且描述符的逻辑顺序是通过链表中的指针链接次序实现的。特别的,根据需要,描述符链表中的链表元素可以同时包括描述符和待处理数据。
需要说明的是,当中央处理器110生成一个描述符组时,该描述符组中的描述符一般包括多个;当中央处理器110生成两个及以上的描述符组时,这些描述符组中分别可以具有一个或多个描述符。
在进行数据传输前,也就是中央处理器110接收到关于待处理数据的读写请求时,可以依据请求的数据类型或请求对象等生成描述符组,该描述符组中的每个描述符可以用于表示一个待处理数据的传输配置信息,一个待处理数据为计算机***一次能够传输的数据,所以一个描述符也就是一次传输的待处理数据所需要的传输配置信息。由此,描述符组中可以设置一个或多个待处理数据的传输配置信息,即就是一次或多次传输的待处理数据所需要的传输配置信息。
在完成描述符组的生成后,DMA控制器120便可以获取描述符组和待处理数据,并基于描述符组,从中提取描述符组对应的待处理数据的传输配置信息,得到接下来每次传输的待处理数据所需要的传输配置信息,进而可以按照该传输配置信息将对应的待处理数据通过I/O接口130上送至存储器140或者下发至至少一个外部设备160。
通过上述数据处理***,DMA控制器可以从中央处理器预先配置生成的描述符组中得到多次传输的数据所需要的配置信息,而不需要在每次传输前接收中央处理器下发的配置信息。因此,可以减少DMA控制器和中央处理器之间的数据交互次数,提高数据的传输效率。
在一种可选的方式中,如图2所示,中央处理器110可以用于执行以下步骤S210~S230,以生成至少一个描述符组,并向DMA控制器120发送该至少一个描述符组:
步骤S210:分别为至少一个待处理数据和描述符组分配第一存储地址和第二存储地址。
其中,第一存储地址是指待处理数据在存储器140中的存储地址;第二存储地址是指描述符组在存储器140中的存储地址。
在进行数据传输前,中央处理器110可以为至少一个待处理数据分配第一存储地址,同时为描述符组分配第二存储地址,以便在数据传输时获取描述符组和存储待处理数据。具体而言,中央处理器110可以依据要传输的数据类型,如视频、音频等,或接收下发数据的至少一个外部设备160的设备类型,如交换机、主机等为一个待处理数据或每个待处理数据分配第一存储地址,以及为描述符组分配第二存储地址。
在分配存储地址时,中央处理器110可以按照待处理数据的数据类型,为其分配适当大小的存储地址,比如在待处理数据分别为视频数据和文本数据时,可以为每个视频数据分配较大的存储空间,而为每个文本数据分配较小的存储空间。对于相同类型的待处理数据而言,每组待处理数据所占用的存储空间大小可以相同,也可以不同。
步骤S220:基于第一存储地址生成至少一个待处理数据一一对应的描述符,将至少一个待处理数据对应的描述符写入第二存储地址,以得到描述符组,待处理数据对应的描述符包括待处理数据在存储器中存放的地址信息和存储空间大小。
在完成第一存储地址和第二存储地址的分配后,中央处理器110可以基于第一存储地址生成每个待处理数据对应的描述符,该描述符可以包括对应的待处理数据在存储器140中的地址信息和存储空间大小,然后将每个待处理数据对应的描述符写入第二存储地址,也就是存储描述符组的地址空间。由此生成的描述符组可以存储在存储器140的第二存储地址中,并且该描述符组中的每个描述符表示某一次传输的待处理数据的地址信息和存储空间大小。
换句话说,在完成地址分配后,中央处理器110可以根据为待处理数据分配的第一存储地址,生成每个待处理数据对应的描述符,并将描述符写入存储描述符组的第二存储地址中的对应地址段,以得到上述描述符组。
例如,假设对于第1个待处理数据到第i(i>3)个待处理数据而言,其表示这i个待处理数据的传输次序分别为1、2、3...i,可以根据第一存储地址,将包括第1个待处理数据的地址信息和存储空间大小的描述符写入描述符组中的第一段地址,将包括第二个待处理数据的地址信息和存储空间大小的描述符写入描述符组中的第二段地址......将包括第i个待处理数据的地址信息和存储空间大小的描述符写入描述符组中的第i段地址,使得描述符组中的各个描述符可以表示每次能够传输的一个待处理数据对应的地址信息和存储空间大小。
步骤S230:配置DMA控制器中的寄存器,并在寄存器中存储上述至少一个待处理数据的传输配置信息。
其中,传输配置信息可以包括描述符组的头尾指针、数据长度和描述符组包括的至少一个描述符的地址信息。
寄存器是DMA控制器120内部用来存放数据的一些小型存储区域,可以用来暂时存放参与数据传输的描述符组的信息和传输后的结果信息等。在得到描述符组后,中央处理器110可以配置DMA控制器120中的寄存器,如设置寄存器的空间大小、端口等,并在寄存器中存储待处理数据的传输配置信息,该传输配置信息可以包括描述符组的头尾指针、数据长度和描述符组中各个描述符的地址信息。
通过以上方式,可以在数据传输之前完成对DMA控制器的初始化配置,确定之后的几次传输中数据所需要的传输配置信息。
进一步的,在一种可选的方式中,在获取描述符组对应的待处理数据的传输配置信息时,DMA控制器120可以用于从寄存器中读取描述符组的头尾指针、数据长度和描述符组中各个描述符的地址信息,以得到该描述符组对应的待处理数据的传输配置信息。
由于寄存器是DMA控制器120内的组成部分,所以DMA控制器120可以直接从寄存器中获取描述符组的信息,即描述符组的头尾指针、数据长度和描述符组中各个描述符的地址信息,来获得描述符组对应的每个待处理数据的传输配置信息。这种方式可以使DMA控制器能够快速获取描述符,而不需要从存储器中读取。
实际上,这种方式相当于是中央处理器110和DMA控制器120之间的一种协商机制,使得DMA控制器120可以预先获得要传输的数据所对应的描述符组,从而获取该描述符组中的描述符,确定要传输的数据的地址信息和空间大小。同时,由于描述符组中具有多个描述符,每个描述符为一次传输对应的待处理数据的地址信息和空间大小,所以上述方式可以使DMA控制器可以通过一次交互获得多次传输的配置信息,而不需要中央处理器在每次传输之前都要确定传输的配置情况,故可以便于实现一次配置,多次传输的目的。
按照数据的传输路径,数据传输方向有两种:上送和下发,上送是指数据从外部设备160传输到计算机***内,并存储至存储器140,下发是指数据从计算机***内的存储器140中读取出来,并下发到外部设备160。基于此,在向存储器140中写入待处理数据时,在一种可选的方式中,如图3所示,DMA控制器120可以用于执行以下方法:
步骤S310:接收来自I/O接口的待处理数据。
在数据上送过程中,外部设备160可以生成待处理数据,并通过I/O接口130将其传输给DMA控制器120。
步骤S320:根据传输配置信息,确定待处理数据在存储器中的目标存储地址。
具体的,描述符能够指示对应的待处理数据的传输配置信息,所以DMA控制器120可以根据传输配置信息,从中获取到该待处理数据在存储器140中的目标存储地址。
步骤S330:缓存上述待处理数据,并通过***总线将上述待处理数据写入目标存储地址。
DMA控制器120可以首先缓存上述待处理数据,从而在***总线150空闲时,将上述待处理数据通过***总线150写入目标存储地址。
例如,如图4步骤S410所示,在外部设备160将待处理数据传输至I/O接口130时,DMA控制器120可以执行步骤S420,接收I/O接口130上送的该待处理数据,并按照依据描述符组确定的传输配置信息,确定该待处理数据在存储器140中的目标存储地址,如待处理数据能够存储的起始地址和存储空间大小,然后执行步骤S430,将待处理数据缓存在自己的缓存空间中,进而执行步骤S440,通过***总线150产生写请求,按照步骤S450将待处理数据写入目标存储地址,该待处理数据在存储器140中的地址段为对应的描述符表示的地址域段,长度即为待处理数据的数据长度。
经由这一方法,在上送多个待处理数据时,DMA控制器可以依据描述符组确定这些待处理数据的所有传输配置信息,在之后的传输中,可以按照每个待处理数据对应的传输配置信息,将每个待处理数据写入存储器的对应地址。
一般来说,对于相同数据类型的待处理数据,其单次数据上送的传输需求是相当的,但对于不同数据类型的待处理数据,其单次数据上送的传输需求则是不同的,比如对于视频数据和文本数据,视频数据要求更高的传输性能,需要为其分配更大的存储空间。
因此,对于不需要分类,比如同一个文本对应的待处理数据,可以按照上述方法由DMA控制器120获取中央处理器110生成的一个描述符组,并按照这个描述符组中的各个描述符将每个待处理数据写入存储器140,或者由DMA控制器120依次获取中央处理器110生成的多个描述符组,并按照每个描述符组中的各个描述符将每个待处理数据写入存储器140。
对于需要分类的数据,比如两种不同数据类型的数据,其对应的描述符组可能不同,比如数据量较大的视频类型的数据对应的描述符组可以有多个,并且每个描述符组中的描述符所表示的地址空间也可以更大,而数据量较小的文本类型的数据对应的描述符组可以只有一个,每个描述符组中的描述符所表示的地址空间较小。
基于此,为了便于确定描述符组与待处理数据的对应关系,在一种可选的方式中,中央处理器110还可以用于根据待处理数据的优先级,确定多个描述符组与待处理数据之间的映射关系,并通过DMA控制器向I/O接口发送该映射关系。
其中,待处理数据的优先级可以用于表示待处理数据的传输紧要程度,优先级越高表示待处理数据越需要优先传输。本发明实施例中,待处理数据的优先级可以根据待处理数据的数据类型设置,比如对于文本、音频、视频等数据类型的待处理数据,视频数据的优先级可以高于音频数据、音频数据的优先级可以高于文本数据。映射关系可以用于表示待处理数据与描述符组之间的对应关系。
在存在多个待处理数据需要传输时,中央处理器110可以在生成描述符组后,根据待处理数据的优先级,确定各描述符组与待处理数据之间的映射关系,比如视频数据Video1而言,其对应的待处理数据所对应的描述符组有des1、des2,音频数据music1对应的描述符组可以是des3,从而建立不同的待处理数据与描述符组之间的对应关系,然后通过DMA控制器120向I/O接口130发送各描述符组与待处理数据之间的映射关系。在接收到映射关系后,I/O接口130可以依据该映射关系向DMA控制器120发送待处理数据。
需要说明的是,上述确定待处理数据的优先级的方法仅作为示例性说明,除此之外,待处理数据的优先级还可以根据数据的格式、数据量等进行设置,比如不同视频格式的数据所占用的存储空间也不同,那对于视频数据而言,其也可以划分为更细粒度的优先级。
进一步的,在一种可选的方式中,I/O接口还用于执行以下方法:
根据待处理数据的优先级,确定I/O接口中缓存的优先级最高的待处理数据;
根据映射关系,向DMA控制器传输优先级最高的待处理数据及其对应的描述符组。
在外部设备160将待处理数据传输到I/O接口130中时,I/O接口130可以根据待处理数据的数据类型等确定待处理数据的优先级,然后从待处理数据中确定出具有最高优先级的待处理数据。然后根据待处理数据和描述符组之间的映射关系,将具有最高优先级的待处理数据及其对应的描述符组发送给DMA控制器120,使其依据描述符组对接收到的待处理数据进行传输。
例如,在一种可选的方式中,如图5所示,I/O接口130可以用于执行以下方法,以在存储器140中写入描述符组对应的待处理数据:
步骤S510:根据各待处理数据的数据类型,确定各待处理数据中处于第一数据优先级和第二数据优先级的待处理数据。
其中,第一数据优先级的待处理数据的传输优先级高于第二数据优先级的待处理数据。在I/O接口130接收到外部设备160发送的待处理数据时,可以依据待处理数据的数据类型确定处于第一数据优先级的待处理数据和处于第二数据优先级的待处理数据。
步骤S520:根据映射关系确定处于第一数据优先级的待处理数据所关联的描述符组,并将该描述符组与处于第一数据优先级的待处理数据发送至DMA控制器。
I/O接口130可依据中央处理器110下发的映射关系确定不同数据优先级的待处理数据关联的描述符组,从而连同描述符组与对应的第一数据优先级的待处理数据发送至DMA控制器120,使得DMA控制器120可以依据对应的描述符组确定上述处于第一数据优先级的待处理数据的传输配置信息,从而按照该传输配置信息向存储器140中写入上述处于第一数据优先级的待处理数据。
步骤S530:缓存处于第二数据优先级的待处理数据,在确定处于第一数据优先级的待处理数据传输完成后,根据映射关系确定处于第二数据优先级的待处理数据所关联的描述符组,并将该描述符组与处于第二数据优先级的待处理数据发送至DMA控制器。
对于优先级较低的待处理数据,如第二数据优先级的待处理数据,I/O接口130可以将该数据缓存下来,直至等到第一优先级的待处理数据传输完成后,根据映射关系确定处于第二数据优先级的待处理数据关联的描述符组,并将该描述符组与上述处于第二数据优先级的待处理数据发送至DMA控制器120,使得DMA控制器120可以根据通过该描述符组确定的传输配置信息将该待处理数据写入存储器140。
通过步骤S510~S530,可以使得I/O接口对接收到的待处理数据进行预处理,确定待处理数据的传输次序以及其与描述符组之间的对应关系,实现一种更为灵活的数据传输方式,也避免了顺序传输所产生的高优先级的数据会被低优先级的数据持续占用传输资源,而无法被及时传输,产生数据阻塞的可能。
进一步的,在一种可选的方式中,如图6所示,DMA控制器120还可以用于执行以下方法:
步骤S610:根据描述符的状态信息,确定该描述符对应的待处理数据是否已向存储器传输。
其中,描述符的状态信息用于指示描述符对应的待处理数据是否已传输。如果根据描述符的状态信息确定该描述符对应的待处理数据未向存储器传输,说明该描述符所指示的存储地址未被占用,存储器140内还有足够的空间进行数据传输,外部设备160也可以随时对存储器140发起写请求。
步骤S620:若存储器未存储描述符对应的待处理数据,则根据该描述符确定传输配置信息,并根据该传输配置信息通过I/O接口在存储器中写入待处理数据。
如果存储器140未存储描述符对应的待处理数据,则说明该待处理数据还未进行传输,该待处理数据对应的描述符还未被使用。因此,DMA控制器120可以根据该描述符所指示的传输配置信息,如存储地址,向存储器140中写入待处理数据,该待处理数据在存储器140中的存储地址即为上述描述符所指示的存储地址。
通过这一方式,可以确保待处理数据能够使用有效的描述符,保证待处理数据被成功写入存储器中,并且在传输过程中,DMA控制器也不需要为上送的数据准备很大的缓存空间来临时存储数据。
当存在多个外部设备160时,DMA控制器120与I/O接口130之间会有多条数据通路,这些外部设备160发送的待处理数据的存储请求会分别进行上送,最终通过***总线150写入存储器140。
在将待处理数据下发到外部设备160时,在一种可选的方式中,DMA控制器120可以用于执行以下方法,以向外部设备160发送描述符组对应的待处理数据:
解析描述符组,得到待处理数据在存储器中的地址信息和存储空间大小;
基于上述地址信息和存储空间大小,通过***总线向存储器发送读取请求;
接收来自存储器下发的待处理数据,并通过I/O接口向外部设备发送待处理数据。
具体的,在下发待处理数据时,DMA控制器120可以首先从存储器或寄存器中获取描述组,进而解析描述符组,从描述符组中读取待处理数据的地址信息和存储空间大小,确定待处理数据在存储器140中的位置,从而可以向存储器140发送关于上述地址信息和存储空间大小的读取请求,来获取要下发的待处理数据,并将该数据通过I/O接口130发送给外部设备160。
由于描述符组中可以包括至少一个描述符对应的待处理数据的地址信息和存储空间大小,所以在下发待处理数据时,这些待处理数据只需要DMA控制器120一次性从描述符组中获取多个描述符,得到多个地址信息和存储空间大小,在传输时便可以直接从这些地址中获取待处理数据,所以能够减少数据传输之前的配置信息获取流程,提高数据的下发效率。
此外,由于DMA控制器120的寄存器中可以存储描述符组的头尾指针、数据长度和描述符组中各个描述符的地址信息,这种方式不需要DMA控制器120从存储器140中获取描述符组,而只需要从寄存器中获取缓存的描述符组的信息即可。
因此,如图7所示,在下发待处理数据时,DMA控制器120可以通过执行步骤S710,从寄存器中获取一个描述符,从中得到待处理数据的地址信息和存储空间大小,然后执行步骤S720,向存储器140发送关于上述地址信息和存储空间大小的读取请求,来得到要下发的待处理数据,并通过执行步骤S730将该数据发送给外部设备160。
进一步的,考虑到不同设备类型的设备具有不同的性能,如带宽等,在存在多个外部设备160的时候,DMA控制器120和I/O接口130之间会有多组数据接口,可以同时进行多个传输任务,DMA控制器120会产生多个对存储器140中的数据的读取请求。在将传输的数据发往外部设备160的过程中,如果外部设备160的带宽较低,或者处理能力不足,就会造成传输数据的积压,从而产生数据阻塞问题。因此,在一种可选的方式中,DMA控制器120还可以用于:
获取至少一个外部设备的读取请求;
根据上述至少一个外部设备的请求优先级和DMA控制器中的剩余存储空间,对上述至少一个外部设备的读取请求进行调度。
其中,DMA控制器中的剩余缓存空间大于或等于调度的读取请求所请求的待处理数据的数据量。请求优先级同样可以用于表示待处理数据的传输紧要程度,请求优先级越高表示待处理数据越需要优先传输。请求优先级可以依据各读取请求对应的外部设备160的设备类型设置,设备类型可以依据外部设备160的带宽、功能等划分。例如,对于交换机和主机两种设备而言,交换机的设备优先级可以高于主机。
具体而言,在产生读取请求时,所有的读取请求不直接通过***总线150发往存储器140,而是由DMA控制器120优先调度请求优先级较高的读取请求,然后再调度请求优先级较低的读取请求,这样高请求优先级的外部设备160的数据能够被优先处理,低请求优先级的数据会在空闲的时候被处理。
同时,DMA控制器中的剩余缓存空间大于或等于调度的读取请求所请求的待处理数据的数据量,所以DMA控制器120能够缓存的数据量至少为最高请求优先级的数据量在一次传输中的数据量,这样对于最高请求优先级的外部设备160而言,其在DMA控制器120中缓存的数据会被马上读取出来,而对于较低请求优先级的外部设备160而言,DMA控制器120的缓存中可以接收所有的待处理数据,等到最高请求优先级的外部设备的待处理数据传输完成之后,进行传输。
如图8所示,在存在多个外部设备时,DMA控制器120与I/O接口130之间存在多个数据下发接口,DMA控制器120可以依据各外部设备的数据需要生成多个读取请求,然后利用调度器对这些读取请求进行调度处理,并从寄存器获取这些读取请求的描述符,进而按照描述符确定所请求的待处理数据的地址信息和存储空间大小等,来从存储器中获取读取请求所对应的待处理数据,将其缓存至缓存空间,然后利用对应的数据下发接口传输至I/O接口130,以传递至对应的外部设备160。
经由这种方式,不同的外部设备可以共用同一块缓存空间,请求优先级高的数据能够立刻传输,请求优先级较低的数据能够缓存在DMA控制器的缓存空间,所以能够在一定程度上解除对总线的占用,也不会发生请求长期占用总线的问题,并且按照请求优先级下发数据的方法,也能够有效避免顺序传输所产生的数据阻塞问题。
此外,在多个外部设备160同时请求数据传输时,DMA控制器120发送的不同优先级的请求个数比例可以按照中央处理器110配置的比例进行,也可以缓解数据阻塞的问题。
为了满足不同外部设备160的数据接收需要,在一种可选的方式中,DMA控制器120还用于根据外部设备160的数据接收规格对下发的待处理数据进行转换处理。其中,外部设备160的数据接收规格可以包括数据大小、数据标记类型、位宽等中的一种或多种。
例如,DMA控制器120可以根据外部设备160的数据接收规格,对下发的待处理数据进行位宽转换和标记添加等,在完成转换后将数据下发至外部设备160。这种方式可以满足不同外部设备160的数据接收需要,使得下发的待处理数据能够适配每个外部设备的接收规则,因而也能够提高数据的下发成功率。
在一种可选的方式中,中央处理器110还用于在根据传输配置信息通过I/O接口130在存储器140中写入描述符组对应的待处理数据之后,或通过I/O接口130向至少一个外部设备160发送描述符组对应的待处理数据之后,接收DMA控制器120发送的中断信息,并根据中断信息处理待处理数据和/或下发下一个待处理数据。
其中,中断信息是指一次数据传输完成之后,DMA控制器120向中央处理器110上报的传输信息,中央处理器110可以通过这一传输信息确定上一次数据传输何时完成、完成的状态如何以及是否需要参与处理等。
因此,在将每个待处理数据通过I/O接口130上送至存储器140或下发至外部设备160之后,DMA控制器120可以向中央处理器110发送中断信息,使得中央处理器110了解上一次传输的完成情况等,进而可以确定是否处理待处理数据或者直接下发下一个待处理数据。
这种方式可以确保中央处理器了解每一次的数据传输情况,确保数据传输的成功率,并且中央处理器只需要在一次传输之后介入,中间可以执行其他进程,即能够利用最小的开销完成整个过程中需要中央处理器参与的部分。
在进行数据传输时,中央处理器110需要确定描述符组中的描述符的使用情况,具体的,在一种可选的方式中,DMA控制器120还用于在通过I/O接口130在存储器140中写入描述符组对应的任意一个或多个待处理数据之后,或通过I/O接口130向至少一个外部设备160发送描述符组对应的任意一个或多个待处理数据之后,在任意一个或多个待处理数据对应的描述符组中写入完成信息,以更新描述符组中的描述符。
具体的,任意一个或多个待处理数据的传输会使用对应数量的描述符,而DMA控制器120在完成任意描述符的使用后,可以在上述任意一个或多个待处理数据对应的描述符组中写入完成信息,写地址就是获取描述符时候的读地址。这样中央处理器110可以通过检查更新后的描述符组中的描述符获取对应的数据传输信息,比如每次传输的数据长度、传输时间、完成情况等。通过这种方式,中央处理器可以依据描述符中的完成信息确定数据的传输情况,来核验每次传输成功与否。
进一步的,中央处理器110可以通过轮询的方式获取更新后的描述符组,也可以在每次收到DMA控制器120发送的中断信息后,获取更新后的描述符组,来确定数据的传输情况。例如,中央处理器110可以一次读取描述符组中的每个描述符,依据每个描述符中的数据传输信息确定对应的待处理数据的传输情况,当读取到一个没有写入完成信息的描述符时,说明该描述符未被使用,可以在下次传输中使用。
虽然描述符组可以减少中央处理器110配置传输状态的次数,但由于描述符组中的每个描述符都对应一块真实的存储空间,所以,为了限制描述符组的无限增长,在一种可选的方式中,DMA控制器120还用于按照预设时间间隔在写入完成信息的描述符组中写入新的描述符。
其中,预设时间间隔可以根据实际需求设置,也可以按照每个描述符组对应的待处理数据的优先级情况设置,比如可以将高优先级的待处理数据对应的描述符组设置为更短的预设时间间隔,即频繁更新高优先级的待处理数据对应的描述符组中的描述符,间隔较长时间更新低优先级的待处理数据对应的描述符组中的描述符。
这种方式可以实现描述符组的持续更新,避免描述符组的无限增加而对存储器的存储空间造成存储压力,提高存储空间的利用率。
由于在DMA控制器120中缓存的所有描述符组中的描述符都被使用完之后,DMA控制器120也会向中央处理器110发送中断信息,此时中央处理器110可以处理使用过的描述符,并重新分配描述符,生成描述符组。
具体而言,对于上送方向的数据传输,中央处理器110可以根据描述符的信息获取其对应的存储空间,然后读取该存储空间的待处理数据,在该待处理数据传输完成后,存储器140释放该待处理数据的存储空间,中央处理器110可以重新生成描述符组,并写入新的描述符,完成后下发描述符组的数据长度、头尾指针等给DMA控制器120,使其可以开始下一次上送。
对于下发方向的数据传输,中央处理器110可以依据写入完成信息的描述符组得知传输是否结束,在确定整个描述符组中的描述符都被使用过后,存储器140释放对应的存储空间,中央处理器110重新申请存储空间并确定需要下发的待处理数据,生成描述符组,并写入新的描述符,完成后下发描述符组的数据长度、头尾指针等给DMA控制器120,使其可以开始下一次下发。
此外,在一种可选的方式中,DMA控制器120可以存储描述符组,由此,在DMA控制器120缓存上送或下发的待处理数据时,如果描述符组采用链表形式,可以将需要传输的待处理数据写入链表元素的数据域段之后,并在描述符域段中写入每次存储的信息,包括长度、标签和下一个地址段的地址信息等。
这样一来,DMA控制器自身即可完成所有的操作,而中央处理器只需要在DMA控制器用完了存储的描述符空间之后,接收DMA控制器发送的中断信息即可,并且中央处理器可以从描述符链表中依据链表头的地址读取链表内容,来更新描述符或处理待处理数据,处理待处理数据完成后,对应的待处理数据的存储空间被释放,可以继续存储新的待处理数据。
综上,根据本实施例中基于DMA控制器的数据处理***,可以由中央处理器生成至少一个描述符组,并向DMA控制器发送至少一个描述符组,描述符组包括至少一个描述符,描述符用于指示对应的待处理数据的传输配置信息,通过DMA控制器获取描述符组和待处理数据,并基于描述符组,获取描述符组对应的待处理数据的传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入描述符组对应的待处理数据,或通过I/O接口向至少一个外部设备发送描述符组对应的待处理数据。本方案通过由DMA控制器利用中央处理器生成的描述符组,获取描述符组对应的待处理数据的传输配置信息,并按照该信息在存储器中写入描述符组对应的待处理数据或者向至少一个外部设备发送描述符组对应的待处理数据,避免了每次数据上送或下发都需要中央处理器参与下发传输配置信息的下发,使得DMA控制器可以一次性获取多组待处理数据的传输配置信息,实现一次配置,多次传输,所以能够提高数据传输的效率,简化传输配置信息的下发流程。
图9示出了本发明实施例提供的一种基于DMA控制器120的数据处理方法的流程图,该方法可以由数据处理设备执行,具体的,如图9所示,可以包括以下步骤S910~S920:
步骤S910:中央处理器生成至少一个描述符组,并向DMA控制器发送至少一个描述符组,其中,描述符组包括至少一个描述符,该描述符用于指示对应的待处理数据的传输配置信息;
步骤S920:DMA控制器获取描述符组和待处理数据,并基于描述符组,获取描述符组对应的待处理数据的传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入描述符组对应的待处理数据,或通过I/O接口向外部设备发送描述符组对应的待处理数据。
在中央处理器接收到关于待处理数据的读写请求时,可以依据请求的数据类型或请求对象等生成描述符组,该描述符组中的每个描述符可以用于表示一个待处理数据的传输配置信息,一个待处理数据为计算机***一次能够传输的数据,所以一个描述符也就是一次传输的待处理数据所需要的传输配置信息。由此,描述符组中可以设置一个或多个待处理数据的传输配置信息,即就是一次或多次传输的待处理数据所需要的传输配置信息。
在完成描述符组的生成后,DMA控制器可以获取描述符组和待处理数据,并基于描述符组,从中提取描述符组对应的待处理数据的传输配置信息,得到接下来每次传输的待处理数据所需要的传输配置信息,进而可以按照该传输配置信息将对应的待处理数据通过I/O接口上送至存储器或者下发至至少一个外部设备。
通过上述数据处理方法,可以通过DMA控制器从中央处理器预先配置生成的描述符组中得到多次传输的数据所需要的配置信息,而不需要在每次传输前接收中央处理器下发的配置信息。因此,可以减少DMA控制器和中央处理器之间的数据交互次数,提高数据的传输效率。
在一种可选的方式中,如图10所示,中央处理器可以通过以下方法生成至少一个描述符组:
步骤S1010:中央处理器分别为至少一个待处理数据和描述符组分配第一存储地址和第二存储地址。
其中,第一存储地址是指待处理数据在存储器中的存储地址;第二存储地址是指描述符组在存储器中的存储地址。
在进行数据传输前,中央处理器可以分别为待处理数据和描述符组分配存储地址,即第一存储地址和第二存储地址,以便在数据传输时获取描述符组和存储待处理数据。
步骤S1020:中央处理器基于第一存储地址生成至少一个待处理数据一一对应的描述符,将至少一个待处理数据对应的描述符写入第二存储地址,以得到描述组,待处理数据对应的描述符包括待处理数据在存储器中存放的地址信息和存储空间大小。
在完成第一存储地址和第二存储地址的分配后,中央处理器可以基于第一存储地址生成每个待处理数据对应的描述符,该描述符可以包括对应的待处理数据在存储器中的地址信息和存储空间大小,然后将每个待处理数据对应的描述符写入第二存储地址,也就是存储描述符组的地址空间。
步骤S1030:中央处理器配置DMA控制器中的寄存器,并在寄存器中存储至少一个待处理数据的传输配置信息。
其中,传输配置信息包括描述符组的头尾指针、数据长度和描述符组包括的至少一个描述符的地址信息。
在得到描述符组后,中央处理器可以配置DMA控制器中的寄存器,如设置寄存器的空间大小、端口等,并在寄存器中存储待处理数据的传输配置信息,该传输配置信息可以包括描述符组的头尾指针、数据长度和描述符组中各个描述符的地址信息。
通过以上方式,可以在数据传输之前完成对DMA控制器的初始化配置,确定之后的几次传输中数据所需要的传输配置信息。
在一种可选的方式中,DMA控制器具体可以通过以下方法,在存储器中写入描述符组对应的待处理数据:接收来自I/O接口的待处理数据;根据传输配置信息,确定待处理数据在存储器中的目标存储地址;缓存待处理数据,并通过***总线将待处理数据写入目标存储地址。
在一种可选的方式中,如图11所示,还可以执行以下方法:
步骤S1110:中央处理器根据待处理数据的优先级,确定多个描述符组与待处理数据之间的映射关系。
其中,待处理数据的优先级可以用于表示待处理数据的传输紧要程度,优先级越高表示待处理数据越需要优先传输。
在存在多个待处理数据需要传输时,中央处理器可以在生成描述符组后,根据待处理数据的优先级,确定各描述符组与待处理数据之间的映射关系。
步骤S1120:中央处理器通过DMA控制器向I/O接口发送映射关系,以使I/O接口根据待处理数据的优先级,确定I/O接口中缓存的优先级最高的待处理数据,并根据映射关系,向DMA控制器传输优先级最高的待处理数据及其对应的描述符组。
在接收到映射关系后,I/O接口可以依据该映射关系向DMA控制器发送待处理数据。例如,I/O接口可以根据映射关系将处于最高优先级的待处理数据和其对应的描述符组发送至DMA控制器,使得DMA控制器可以按照该描述符组所指示的传输配置信息将处于最高优先级的待处理数据写入存储器中。
通过上述方法,可以使I/O接口对接收到的待处理数据进行预处理,确定待处理数据的传输次序以及其与描述符组之间的对应关系,实现一种更为灵活的数据传输方式,也避免了顺序传输所产生的高优先级的数据会被低优先级的数据持续占用传输资源,而无法被及时传输,产生数据阻塞的可能。
在一种可选的方式中,DMA控制器还用于执行以下方法,在存储器中写入描述符组对应的待处理数据:根据描述符的状态信息,确定描述符对应的待处理数据是否已向存储器传输;描述符的状态信息用于指示描述符对应的待处理数据是否已传输;若存储器未存储描述符对应的待处理数据,则根据描述符确定传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入待处理数据。
在一种可选的方式中,DMA控制器具体用于执行以下方法,向外部设备发送描述符组对应的待处理数据:解析描述符组,得到待处理数据在存储器中的地址信息和存储空间大小;基于地址信息和存储空间大小,通过***总线向存储器发送读取请求;接收来自存储器下发的待处理数据,并通过I/O接口向外部设备发送待处理数据。
在一种可选的方式中,DMA控制器还用于执行以下方法:获取至少一个外部设备的读取请求;根据至少一个外部设备的请求优先级和DMA控制器中的剩余缓存空间,对至少一个外部设备的读取请求进行调度;DMA控制器中的剩余缓存空间大于或等于调度的读取请求所请求的待处理数据的数据量。
根据本实施例中基于DMA控制器的数据处理方法,可以由中央处理器至少一个描述符组,并向DMA控制器发送至少一个描述符组,通过DMA控制器获取描述符组和待处理数据,并基于描述符组,获取描述符组对应的待处理数据的传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入描述符组对应的待处理数据,或通过I/O接口向外部设备发送描述符组对应的待处理数据。通过上述方法,避免了每次数据上送或下发都需要中央处理器参与下发传输配置信息的下发,使得DMA控制器可以一次性获取多组待处理数据的传输配置信息,实现一次配置,多次传输,所以能够提高数据传输的效率,简化传输配置信息的下发流程。
图12示出了本发明实施例提供的一种数据处理设备的结构示意图,本发明具体实施例并不对数据处理设备的具体实现做限定。
如图12所示,该数据处理设备可以包括:处理器(processor)1202、存储器(memory)1204。
其中:处理器1202被配置为经由执行可执行指令1206来执行上述的基于DMA控制器的数据处理方法实施例中的相关步骤。处理器1202和存储器1204可以通过***总线和通信接口与外部设备进行通信。
具体地,可执行指令1206可以包括程序代码,该程序代码包括计算机可执行指令。
处理器1202可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。数据处理设备包括的一个或多个中央处理器,可以是同一类型的中央处理器,如一个或多个CPU;也可以是不同类型的中央处理器,如一个或多个CPU以及一个或多个ASIC。
存储器1204,用于存放可执行指令1206。存储器1204可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
可执行指令1206具体可以被处理器1202调用使数据处理设备执行以下操作:
中央处理器生成至少一个描述符组,并向DMA控制器发送至少一个描述符组,其中,描述符组包括至少一个描述符,该描述符用于指示对应的待处理数据的传输配置信息;
DMA控制器获取描述符组和待处理数据,并基于描述符组,获取描述符组对应的待处理数据的传输配置信息,并根据传输配置信息通过I/O接口在存储器中写入描述符组对应的待处理数据,或通过I/O接口向外部设备发送描述符组对应的待处理数据。
在此提供的算法或显示不与任何特定计算机、虚拟***或者其它设备固有相关。此外,本发明实施例也不针对任何特定编程语言。
在此处所提供的说明书中,说明了大量具体细节。然而能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。类似地,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。其中,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
Claims (12)
1.一种基于直接存储器访问DMA控制器的数据处理***,其特征在于,所述数据处理***包括中央处理器和所述DMA控制器;
所述中央处理器,用于生成至少一个描述符组,并向所述DMA控制器发送所述至少一个描述符组,其中,所述描述符组包括至少一个描述符,所述描述符用于指示对应的待处理数据的传输配置信息;
所述DMA控制器,用于获取所述描述符组和待处理数据,并基于所述描述符组,获取所述描述符组对应的待处理数据的传输配置信息,并根据所述传输配置信息通过I/O接口在存储器中写入所述描述符组对应的待处理数据,或通过所述I/O接口向至少一个外部设备发送所述描述符组对应的待处理数据。
2.根据权利要求1所述的数据处理***,其特征在于,所述中央处理器,具体用于:
分别为至少一个待处理数据和所述描述符组分配第一存储地址和第二存储地址;
基于所述第一存储地址生成所述至少一个待处理数据一一对应的描述符,将所述至少一个待处理数据对应的描述符写入所述第二存储地址,以得到所述描述组,所述待处理数据对应的描述符包括所述待处理数据在所述存储器中存放的地址信息和存储空间大小;
配置所述DMA控制器中的寄存器,并在所述寄存器中存储所述至少一个待处理数据的传输配置信息;其中,所述传输配置信息包括所述描述符组的头尾指针、数据长度和所述描述符组包括的至少一个描述符的地址信息。
3.根据权利要求1所述的数据处理***,其特征在于,所述DMA控制器具体用于:
接收来自所述I/O接口的待处理数据;
根据所述传输配置信息,确定所述待处理数据在所述存储器中的目标存储地址;
缓存所述待处理数据,并通过***总线将所述待处理数据写入所述目标存储地址。
4.根据权利要求1所述的数据处理***,其特征在于,所述中央处理器,还用于:
根据待处理数据的优先级,确定多个所述描述符组与所述待处理数据之间的映射关系;
通过所述DMA控制器向所述I/O接口发送所述映射关系。
5.根据权利要求4所述的数据处理***,其特征在于,所述I/O接口还用于:
根据所述待处理数据的优先级,确定所述I/O接口中缓存的优先级最高的待处理数据;
根据所述映射关系,向所述DMA控制器传输所述优先级最高的待处理数据及其对应的描述符组。
6.根据权利要求1-5中任一项所述的数据处理***,其特征在于,所述DMA控制器还用于:
根据所述描述符的状态信息,确定所述描述符对应的待处理数据是否已向存储器传输;所述描述符的状态信息用于指示所述描述符对应的待处理数据是否已传输;
若所述存储器未存储所述描述符对应的待处理数据,则根据所述描述符确定传输配置信息,并根据所述传输配置信息通过所述I/O接口在所述存储器中写入所述待处理数据。
7.根据权利要求2所述的数据处理***,其特征在于,所述DMA控制器具体用于:
解析所述描述符组,得到所述待处理数据在所述存储器中的地址信息和存储空间大小;
基于所述地址信息和所述存储空间大小,通过所述***总线向所述存储器发送读取请求;
接收来自所述存储器下发的所述待处理数据,并通过所述I/O接口向所述外部设备发送所述待处理数据。
8.根据权利要求7所述的数据处理***,其特征在于,所述DMA控制器还用于:
获取至少一个外部设备的读取请求;
根据所述至少一个外部设备的请求优先级和所述DMA控制器中的剩余缓存空间,对所述至少一个外部设备的读取请求进行调度;所述DMA控制器中的剩余缓存空间大于或等于所述调度的读取请求所请求的所述待处理数据的数据量。
9.一种基于直接存储器访问DMA控制器的数据处理方法,其特征在于,所述方法包括:
中央处理器生成至少一个描述符组,并向所述DMA控制器发送所述至少一个描述符组,其中,所述描述符组包括至少一个描述符,所述描述符用于指示对应的待处理数据的传输配置信息;
所述DMA控制器获取所述描述符组和待处理数据,并基于所述描述符组,获取所述描述符组对应的待处理数据的传输配置信息,并根据所述传输配置信息通过I/O接口在存储器中写入所述描述符组对应的待处理数据,或通过所述I/O接口向所述外部设备发送所述描述符组对应的待处理数据。
10.根据权利要求9所述的方法,其特征在于,所述中央处理器生成至少一个描述符组,包括:
所述中央处理器分别为至少一个待处理数据和所述描述符组分配第一存储地址和第二存储地址;
所述中央处理器基于所述第一存储地址生成所述至少一个待处理数据一一对应的描述符,将所述至少一个待处理数据对应的描述符写入所述第二存储地址,以得到所述描述组,所述待处理数据对应的描述符包括所述待处理数据在所述存储器中存放的地址信息和存储空间大小;
所述中央处理器配置所述DMA控制器中的寄存器,并在所述寄存器中存储所述至少一个待处理数据的传输配置信息;其中,所述传输配置信息包括所述描述符组的头尾指针、数据长度和所述描述符组包括的至少一个描述符的地址信息。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述中央处理器根据待处理数据的优先级,确定多个所述描述符组与所述待处理数据之间的映射关系;
所述中央处理器通过所述DMA控制器向所述I/O接口发送所述映射关系,以使所述I/O接口根据所述待处理数据的优先级,确定所述I/O接口中缓存的优先级最高的待处理数据,并根据所述映射关系,向所述DMA控制器传输所述优先级最高的待处理数据及其对应的描述符组。
12.一种数据处理设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器被配置为经由执行所述可执行指令来执行如权利要求9-11中任一项所述的基于DMA控制器的数据处理方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211304870.9A CN115563038B (zh) | 2022-10-24 | 2022-10-24 | 基于dma控制器的数据处理***、方法和数据处理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211304870.9A CN115563038B (zh) | 2022-10-24 | 2022-10-24 | 基于dma控制器的数据处理***、方法和数据处理设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115563038A true CN115563038A (zh) | 2023-01-03 |
CN115563038B CN115563038B (zh) | 2023-11-07 |
Family
ID=84747344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211304870.9A Active CN115563038B (zh) | 2022-10-24 | 2022-10-24 | 基于dma控制器的数据处理***、方法和数据处理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115563038B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312201A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种数据传输方法、装置及加速器设备、主机和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713164A (zh) * | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
CN106547709A (zh) * | 2016-11-24 | 2017-03-29 | 盛科网络(苏州)有限公司 | 灵活配置多通道dma控制器的方法及装置 |
US20180052789A1 (en) * | 2015-06-29 | 2018-02-22 | Huawei Technologies Co., Ltd. | Direct Memory Access Transmission Control Method and Apparatus |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***和dma控制器 |
CN111338999A (zh) * | 2020-02-20 | 2020-06-26 | 南京芯驰半导体科技有限公司 | 直接存储器存取dma***及数据传输方法 |
CN113986533A (zh) * | 2021-10-15 | 2022-01-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、dma控制器及计算机可读存储介质 |
CN114238184A (zh) * | 2021-12-18 | 2022-03-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多功能dma的传输方法、装置及存储介质 |
CN114416613A (zh) * | 2021-12-29 | 2022-04-29 | 苏州雄立科技有限公司 | 一种dma数据传输***及方法 |
-
2022
- 2022-10-24 CN CN202211304870.9A patent/CN115563038B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713164A (zh) * | 2005-07-21 | 2005-12-28 | 复旦大学 | 可自主处理多事务传输要求的dma控制器及数据传输方法 |
US20180052789A1 (en) * | 2015-06-29 | 2018-02-22 | Huawei Technologies Co., Ltd. | Direct Memory Access Transmission Control Method and Apparatus |
CN106547709A (zh) * | 2016-11-24 | 2017-03-29 | 盛科网络(苏州)有限公司 | 灵活配置多通道dma控制器的方法及装置 |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、***和dma控制器 |
CN111338999A (zh) * | 2020-02-20 | 2020-06-26 | 南京芯驰半导体科技有限公司 | 直接存储器存取dma***及数据传输方法 |
CN113986533A (zh) * | 2021-10-15 | 2022-01-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据传输方法、dma控制器及计算机可读存储介质 |
CN114238184A (zh) * | 2021-12-18 | 2022-03-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多功能dma的传输方法、装置及存储介质 |
CN114416613A (zh) * | 2021-12-29 | 2022-04-29 | 苏州雄立科技有限公司 | 一种dma数据传输***及方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117312201A (zh) * | 2023-11-29 | 2023-12-29 | 苏州元脑智能科技有限公司 | 一种数据传输方法、装置及加速器设备、主机和存储介质 |
CN117312201B (zh) * | 2023-11-29 | 2024-02-13 | 苏州元脑智能科技有限公司 | 一种数据传输方法、装置及加速器设备、主机和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115563038B (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4456490B2 (ja) | Dma装置 | |
CN102414671B (zh) | 对于不同源的分级内存仲裁技术 | |
US20050149665A1 (en) | Scratchpad memory | |
CN109558344B (zh) | 一种适用于网络传输的dma传输方法及dma控制器 | |
KR102285749B1 (ko) | 세마포어 기능을 갖는 시스템 온 칩 및 그것의 세마포어 구현 방법 | |
US7970959B2 (en) | DMA transfer system using virtual channels | |
CN103064807A (zh) | 多通道直接存储器存取控制器 | |
EP3732578B1 (en) | Supporting responses for memory types with non-uniform latencies on same channel | |
CN116302617B (zh) | 共享内存的方法、通信方法、嵌入式***以及电子设备 | |
WO2018113364A1 (zh) | 闪存接口控制器及操作命令处理方法 | |
CN112131176B (zh) | 一种基于pcie的fpga快速局部重构方法 | |
CN114020662B (zh) | 桥接模块、数据传输***和数据传输方法 | |
US20240143392A1 (en) | Task scheduling method, chip, and electronic device | |
CN115563038B (zh) | 基于dma控制器的数据处理***、方法和数据处理设备 | |
CN111258932A (zh) | 加速ufs协议处理的方法与存储控制器 | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
KR101994929B1 (ko) | 집합 통신 수행 방법 및 이를 이용한 집합 통신 시스템 | |
CN112328520B (zh) | 一种pcie设备、基于pcie设备的数据传输方法和*** | |
US20130262812A1 (en) | Hardware Managed Allocation and Deallocation Evaluation Circuit | |
CN113407357A (zh) | 进程间数据搬移的方法及装置 | |
CN112328519B (zh) | 一种pcie设备、基于sr-iov的数据包有序传输方法和*** | |
CN113296957B (zh) | 一种用于动态分配片上网络带宽的方法及装置 | |
US20030088750A1 (en) | Control chip with mutliple-layer defer queue | |
CN219642231U (zh) | 一种任务分发装置和基于任务分发装置的多核异构处理器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |