CN117076353B - 描述符的配置方法和描述符的配置装置 - Google Patents
描述符的配置方法和描述符的配置装置 Download PDFInfo
- Publication number
- CN117076353B CN117076353B CN202311336477.2A CN202311336477A CN117076353B CN 117076353 B CN117076353 B CN 117076353B CN 202311336477 A CN202311336477 A CN 202311336477A CN 117076353 B CN117076353 B CN 117076353B
- Authority
- CN
- China
- Prior art keywords
- descriptor
- target
- descriptors
- address information
- control register
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004891 communication Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供了一种描述符的配置方法和描述符的配置装置。该方法包括:检测描述符控制寄存器是否处于空闲状态;在描述符控制寄存器未处于空闲状态的情况下,至少将第二地址信息配置至旁路描述符控制寄存器,使DMA控制器将第二地址信息对应的一组描述符存储至第一先入先出存储器。该方法解决了现有技术中描述符配置局限于描述符控制器处于空闲状态的问题,降低了描述符的配置时长,提高了DMA控制器读写数据的效率。
Description
技术领域
本申请实施例涉及计算机领域,具体而言,涉及一种描述符的配置方法、描述符的配置装置、计算机可读存储介质和数据传输系统。
背景技术
如图1所示,目前DMA控制器(Direct Memory Access,直接内存访问)处理流程如下:中央处理器创建一组描述符,中央处理器将一组描述符写入内存,中央处理器将一组描述符的地址配置至描述符控制寄存器,DMA控制器根据描述符控制寄存器中的一组描述符的地址从内存提取一组描述符,并将这一组描述符写入先入先出存储器(FIFO,First-In-First-Out),根据这一组描述符向内存发送读数据请求或写数据请求,开始接收内存的数据或向内存写数据,直至每个描述符以此执行完毕,结束数据读写操作,并向中央处理器发送中断,以此循环。
现有技术中的DMA控制器处理流程存在的问题如下:
描述符控制寄存器中的描述符的地址对应的描述符被DMA控制器从内存提取出才能开始下一组描述符的配置,描述符配置局限于描述符控制器处于空闲状态,导致描述符配置时间较长,进而导致DMA控制器读写数据的效率较低;
采用了单指针循环配置机制,中央处理器每次配置一组描述符将先入先出存储器的写指针当前指向的地址配置至描述符控制器,DMA控制器根据先入先出存储器的写指针当前指向的地址将这一组描述符存储至先入先出存储器,待该组描述符执行完毕后,再按照上述方法配置下一组描述符,在单指针循环配置机制中,若将多组描述符存储至先入先出存储器,DMA控制器无法确定是否执行到一组描述符中的最后一个描述符,因此,现有技术中无法将多组描述符存储至先入先出存储器,导致描述符配置时间较长,进而导致DMA控制器读写数据的效率较低。
发明内容
本申请实施例提供了一种描述符的配置方法、描述符的配置装置、计算机可读存储介质和数据传输系统,以至少解决现有技术中描述符配置局限于描述符控制器处于空闲状态的问题。
根据本申请的一个实施例,提供了一种描述符的配置方法, DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述方法应用于所述中央处理器,所述方法包括:检测所述描述符控制寄存器是否处于空闲状态,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;在所述描述符控制寄存器未处于所述空闲状态的情况下,至少将第二地址信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述第二地址信息为所述内存中存储有一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同。
在一个示例性实施例中,一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,至少将第二地址信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,包括:基于预设顺序,确定第一配置信息,其中,所述预设顺序为所述第二地址信息对应的一组所述描述符中的所述描述符的执行顺序,所述第一配置信息包括第一ID和第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID;至少将所述第二地址信息和所述第一配置信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作。
在一个示例性实施例中,所述第一配置信息还包括:第三ID,所述第三ID为第一中断描述符的ID,所述第一中断描述符为所述第二地址信息对应的一组所述描述符中的一个所述描述符,所述DMA控制器用于在所述第一中断描述符执行完毕的情况下向所述中央处理器发送中断信号。
在一个示例性实施例中,所述配置信息还包括:控制信息,一个所述控制信息对应一组所述描述符,所述控制信息包括中断信息和中断描述符,所述中断描述符为一组所述描述符中的一个所述描述符,所述中断信息指示所述控制寄存器在所述中断描述符执行完毕的情况下向所述中央处理器发送中断信号,所述中断信号表示所述中断描述符执行完毕。
在一个示例性实施例中,所述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,所述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,所述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,至少将所述第二地址信息和所述第一配置信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作,包括:在所述第二地址信息对应的一组所述描述符为写描述符的情况下,至少将所述第二地址信息和所述第一配置信息配置至所述第一子旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述写描述符存储至所述第一子先入先出存储器,使所述DMA控制器将所述第一配置信息存储至所述第三子先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一子先入先出存储器的所述第二地址信息对应的一组所述写描述符,并根据所述写描述符执行写数据操作;或,在所述第二地址信息对应的一组所述描述符为读描述符的情况下,至少将所述第二地址信息和所述第一配置信息配置至所述第二子旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述读描述符存储至所述第二子先入先出存储器,使所述DMA控制器将所述第一配置信息存储至所述第四子先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一子先入先出存储器的一组所述读描述符,并根据所述读描述符执行读数据操作。
在一个示例性实施例中,在检测所述描述符控制寄存器是否处于空闲状态之后,所述方法还包括:在所述描述符控制寄存器处于所述空闲状态的情况下,至少将所述第二地址信息配置至所述描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器。
在一个示例性实施例中,一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,至少将所述第二地址信息配置至所述描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,包括:基于预设顺序,确定第一配置信息,其中,所述预设顺序为所述第二地址信息对应的一组所述描述符中的所述描述符的执行顺序,所述第一配置信息包括一个第一ID和一个第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID;至少将所述第二地址信息和所述第一配置信息配置至所述描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使DMA控制器用于根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作。
在一个示例性实施例中,所述第一配置信息还包括:第三ID,所述第三ID为第一中断描述符的ID,所述第一中断描述符为所述第二地址信息对应的一组所述描述符中的一个所述描述符,所述DMA控制器用于在所述第一中断描述符执行完毕的情况下向所述中央处理器发送中断信号。
根据本申请的另一个实施例,提供了一种描述符的配置装置, DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述装置应用于所述中央处理器,所述装置包括:检测模块,用于检测所述描述符控制寄存器是否处于空闲状态,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;配置模块,用于在所述描述符控制寄存器未处于所述空闲状态的情况下,至少将第二地址信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述第二地址信息为所述内存中存储有一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同。
根据本申请的再一个实施例,提供了一种描述符的配置方法, DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述第一先入先出存储器具有多个存储单元,所述方法应用于所述DMA控制器,所述方法包括:在所述描述符控制寄存器未处于空闲状态的情况下,确定剩余数量是否大于第一目标数量,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述剩余数量为所述第一先入先出存储器中未存储所述描述符的所述存储单元的数量,所述第一目标数量为所述第一地址信息对应的一组所述描述符包含的所述描述符的数量,所述描述符控制寄存器未处于所述空闲状态的情况下所述中央处理器至少将第二地址信息配置至所述旁路描述符控制寄存器,所述第二地址信息为所述内存中存储一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同;在所述剩余数量大于所述第一目标数量的情况下,至少将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;确定所述剩余数量是否大于第二目标数量,所述第二目标数量为所述第二地址信息对应一组所述描述符包含的所述描述符的数量;在所述剩余数量大于所述第二目标数量的情况下,至少将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器。
在一个示例性实施例中,一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,至少将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,包括:将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,且将第一配置信息存储至所述第二先入先出存储器,所述第一配置信息包括一个第一ID和一个第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID,所述中央处理器还用于将所述第一配置信息配置至所述旁路描述符控制寄存器。
在一个示例性实施例中,所述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,所述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,所述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,且将所述第一配置信息存储至所述第二先入先出存储器,包括:在所述第二地址信息对应的一组所述描述符为写描述符的情况下,将所述第二地址信息对应的一组所述描述符存储至所述第一子先入先出存储器,且将所述第一配置信息发送至所述第三子先入先出存储器;在所述第二地址信息对应的一组所述描述符为读描述符的情况下,将所述第二地址信息对应的一组所述描述符存储至所述第二子先入先出存储器,且将所述第一配置信息发送至所述第四子先入先出存储器。
在一个示例性实施例中,所述方法还包括:第一接收步骤,至少接收来自所述第三子先入先出存储器中的第一目标配置信息,并从所述第一目标配置信息中获取第一目标ID和第二目标ID,所述第一目标配置信息为所述第三子先入先出存储器中的多个第二配置信息中的一个,一个所述第二配置信息对应一组所述写描述符,一个所述第二配置信息包括一个第四ID和一个第五ID,所述第四ID为所属的所述第二配置信息对应的一组所述写描述符中第一个执行的所述写描述符的ID,所述第五ID为所属的所述第二配置信息对应的一组所述写描述符中最后一个执行的所述写描述符的ID,所述第一目标ID为所述第一目标配置信息包括的所述第四ID,所述第二目标ID为所述第一目标配置信息包括的所述第五ID;第一执行步骤,根据所述第一目标ID和所述第二目标ID接收并执行来自从所述第一子先入先出存储器的第一目标组描述符,所述第一目标组描述符为所述第一目标配置信息对应的一组所述写描述符;重复所述第一接收步骤和所述第一执行步骤至少一次,直至所述第三子先入先出存储器中的所有的所述第二配置信息对应所述写描述符执行完毕。
在一个示例性实施例中,根据所述第一目标ID和所述第二目标ID接收并执行来自从所述第一子先入先出存储器的第一目标组描述符,包括:第二接收步骤,根据所述第一目标ID和所述第二目标ID,接收来自所述第一子先入先出存储器的第一目标描述符,所述第一目标描述符为所述第一目标组描述符中的一个所述写描述符;第二执行步骤,执行所述第一目标描述符;重复所述第二接收步骤和所述第二执行步骤至少一次,直至所述第一目标组描述符中的所有的所述写描述符执行完毕。
在一个示例性实施例中,所述第二配置信息还包括:第六ID,所述第六ID为第二中断描述符的ID,所述第二中断描述符为所述第二配置信息对应的一组所述写描述符中的一个所述写描述符,所述DMA控制器用于在所述第二中断描述符执行完毕的情况下向所述中央处理器发送中断信号,在执行所述第一目标描述符之后,所述方法包括:从所述第一目标配置信息中获取第三目标ID,所述第三目标ID为所述第一目标配置信息中的所述第六ID;确定所述第一目标描述符的ID是否为所述第三目标ID;在所述第一目标描述符的ID为所述第三目标ID的情况下,向所述中央处理器发送中断信号。
在一个示例性实施例中,所述方法还包括:第三接收步骤,至少接收来自所述第四子先入先出存储器中的第二目标配置信息,并从所述第二目标配置信息中获取第四目标ID和第五目标ID,所述第二目标配置信息为所述第四子先入先出存储器中的多个第三配置信息中的一个,一个所述第三配置信息对应一组所述读描述符,一个所述第三配置信息包括一个第七ID和一个第八ID,所述第七ID为所属的所述第三配置信息对应的一组所述读描述符中第一个执行的所述读描述符的ID,所述第八ID为所属的所述第三配置信息对应的一组所述读描述符中最后一个执行的所述读描述符的ID,所述第四目标ID为所述第二目标配置信息包括的所述第七ID,所述第五目标ID为所述第二目标配置信息包括的所述第八ID;第三执行步骤,根据所述第四目标ID和所述第五目标ID接收并执行来自从所述第二子先入先出存储器的第二目标组描述符,执行所述第二目标组描述符,所述第二目标组描述符为所述第二目标配置信息对应的一组所述读描述符;重复所述第三接收步骤和所述第三执行步骤至少一次,直至所述第四子先入先出存储器中的所有的所述第三配置信息对应所述读描述符执行完毕。
在一个示例性实施例中,根据所述第四目标ID和所述第五目标ID接收并执行来自从所述第二子先入先出存储器的第二目标组描述符,包括:第四接收步骤,根据所述第四目标ID和所述第五目标ID,接收来自所述第二子先入先出存储器的第二目标描述符,所述第二目标描述符为所述第二目标组描述符中的一个所述读描述符;第四执行步骤,执行所述第二目标描述符;重复所述第四接收步骤和所述第四执行步骤至少一次,直至所述第二目标组描述符中的所有的所述读描述符执行完毕。
在一个示例性实施例中,所述第三配置信息还包括:第九ID,所述第九ID为第三中断描述符的ID,所述第三中断描述符为所述第三配置信息对应的一组所述读描述符中的一个所述读描述符,所述DMA控制器用于在所述第三中断描述符执行完毕的情况下向所述中央处理器发送中断信号,在执行所述第二目标描述符之后,所述方法包括:从所述第二目标配置信息中获取第六目标ID,所述第六目标ID为所述第二目标配置信息中的所述第九ID;确定所述第二目标描述符的ID是否为所述第六目标ID;在所述第二目标描述符的ID为所述第六目标ID的情况下,向所述中央处理器发送中断信号。
根据本申请的又一个实施例,提供了一种描述符的配置装置, DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述第一先入先出存储器具有多个存储单元,所述装置应用于所述DMA控制器,所述装置包括:第一确定模块,用于在所述描述符控制寄存器未处于空闲状态的情况下,确定剩余数量是否大于第一目标数量,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述剩余数量为所述第一先入先出存储器中未存储所述描述符的所述存储单元的数量,所述第一目标数量为所述第一地址信息对应的一组所述描述符包含的所述描述符的数量,所述描述符控制寄存器未处于所述空闲状态的情况下所述中央处理器至少将第二地址信息配置至所述旁路描述符控制寄存器,所述第二地址信息为所述内存中存储一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同;第一存储模块,用于在所述剩余数量大于所述第一目标数量的情况下,至少将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;第二确定模块,用于确定所述剩余数量是否大于第二目标数量,所述第二目标数量为所述第二地址信息对应一组所述描述符包含的所述描述符的数量;第二存储模块,用于在所述剩余数量大于所述第二目标数量的情况下,至少将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器。
根据本申请的一个实施例,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述的描述符的配置方法。
根据本申请的另一个实施例,提供了一种数据传输系统,所述系统包括:内存;DMA控制器,所述DMA控制器与所述内存通信连接,所述DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器、第一先入先出存储器和第二先入先出存储器,所述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,所述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,所述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,所述DMA控制器用于实现所述的描述符的配置方法的步骤;中央处理器,所述中央处理器分别所述第一子旁路描述符控制寄存器和所述第二子旁路描述符控制寄存器与通信连接,所述中央处理器用于实现所述的描述符的配置方法的步骤。
通过本申请,在DMA控制器中的描述符控制寄存器处于非空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符没有被存储至第一先入先出存储器,中央处理器将第二地址信息配置至旁路描述符控制寄存器,解决了现有技术中描述符配置局限于描述符控制器处于空闲状态的问题,降低了描述符的配置时长,提高了DMA控制器读写数据的效率。
附图说明
图1是根据本申请实施例的现有技术中DMA控制器处理流程的示意图;
图2是根据本申请实施例的描述符的配置方法的流程图;
图3是根据本申请实施例的描述符的ID的示意图;
图4是根据本申请实施例的描述符的配置装置的结构示意图;
图5是根据本申请实施例的另一种描述符的配置方法的流程图;
图6是根据本申请实施例的另一种描述符的配置装置的结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
先入先出存储器(First In, First Out Register,FIFO Register):先入先出寄存器可以暂时存储一系列的数据,并按照先进先出的原则对数据进行存储和读取,具体地,当新的数据进入先入先出寄存器时,它会被存储到队列的末尾,而读取数据时,会从队列的开头开始读取。先入先出寄存器的结构一般由一个存储单元数组和两个指针组成,一个指针指向队列的头部,另一个指针指向队列的尾部。当有新数据进入时,尾指针会向后移动,将数据存储在对应的位置;而读取数据时,头指针会向后移动,将数据读取出来。当头指针和尾指针相等时,表示队列为空,当尾指针超过数组的最大长度时,表示队列已满。
本申请的实施例提供了一种数据传输系统,上述系统包括:
内存;
DMA控制器,上述DMA控制器与上述内存通信连接,上述DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器、第一先入先出存储器和第二先入先出存储器,上述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,上述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,上述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,上述DMA控制器实现上述的描述符的配置方法的步骤;
中央处理器,上述中央处理器分别上述第一子旁路描述符控制寄存器和上述第二子旁路描述符控制寄存器与通信连接,上述中央处理器用于实现上述的描述符的配置方法的步骤。
通过上述实施例,在DMA控制器中的描述符控制寄存器处于非空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符没有被存储至第一先入先出存储器,中央处理器将第二地址信息配置至旁路描述符控制寄存器,解决了现有技术中描述符配置局限于描述符控制器处于空闲状态的问题,降低了描述符的配置时长,提高了DMA控制器读写数据的效率。
在本实施例中提供了一种运行于中央处理器的描述符的配置的方法,图2是根据本申请实施例的流程图,如图2所示,该流程包括如下步骤:
步骤S101,检测上述描述符控制寄存器是否处于空闲状态;
其中,上述描述符控制寄存器存储有第一地址信息,上述第一地址信息为上述内存中存储一组描述符的上述存储区的地址,上述空闲状态为上述DMA控制器将上述第一地址信息对应的一组上述描述符存储至上述第一先入先出存储器;
步骤S102,在上述描述符控制寄存器未处于上述空闲状态的情况下,至少将第二地址信息配置至上述旁路描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器;
其中,上述第二地址信息为上述内存中存储有一组上述描述符的上述存储区的地址,上述第二地址信息与上述第一地址信息不同。
具体地,在DMA控制器中的描述符控制寄存器处于非空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符没有被存储至第一先入先出存储器,中央处理器将第二地址信息配置至旁路描述符控制寄存器,解决了现有技术中描述符配置局限于描述符控制器处于空闲状态的问题,降低了描述符的配置时长,提高了DMA控制器读写数据的效率。
一个上述描述符具有一个ID,上述DMA控制器中设置有第二先入先出存储器,上述步骤S102可以实现为:
步骤S1021,基于预设顺序,确定第一配置信息,其中,上述预设顺序为上述第二地址信息对应的一组上述描述符中的上述描述符的执行顺序,上述第一配置信息包括第一ID和第二ID,上述第一ID为上述第二地址信息对应的一组上述描述符中第一个执行的上述描述符的ID,上述第二ID为上述第二地址信息对应的一组上述描述符中最后一个执行的上述描述符的ID;
步骤S1022,至少将上述第二地址信息和上述第一配置信息配置至上述旁路描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器,使上述DMA控制器将上述第一配置信息发送至上述第二先入先出存储器,使DMA控制器根据上述第一配置信息中的上述第一ID和上述第二ID接收来自上述第一先入先出存储器的上述第二地址信息对应的一组上述描述符,并根据上述描述符执行读写数据操作。
具体地,中央处理器将第二地址信息配置至旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符存储至第一先入先出存储器,中央处理器将第二地址信息对应的一组描述符中第一个执行的描述符的ID和最后一个执行的描述符的ID配置至旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符中第一个执行的描述符的ID和最后一个执行的描述符的ID存储至第二先入先出存储器,DMA控制器在第一先入先出存储器发送的描述符的ID与一组描述符中第一个执行的描述符的ID相同时,开始接收这组描述符,DMA控制器在第一先入先出存储器发送的描述符的ID与这一组描述符中最后一个执行的描述符的ID相同时,确定这组描述符接收完毕,相比于现有技术中在单指针循环配置机制中,若将多组描述符存储至先入先出存储器,DMA控制器无法确定是否执行到一组描述符中最后一个描述符,本申请采用双ID的方式能够确定执行到一组描述符中的第一个描述符且能够确定执行到一组描述符中的最后一个描述符,解决了现有技术中无法将多组描述符存储至先入先出存储器的问题,减少了描述符配置时间,提高了DMA控制器读写数据的效率。
在一种可选的方案中,上述第一配置信息还包括:
第三ID,上述第三ID为第一中断描述符的ID,上述第一中断描述符为上述第二地址信息对应的一组上述描述符中的一个上述描述符,上述DMA控制器用于在上述第一中断描述符执行完毕的情况下向上述中央处理器发送中断信号。
具体地,在第一配置信息中还包括第一中断描述符的ID,使得在每个描述符执行完毕后,根据第一中断描述符的ID确定是否向中央处理器发送中断信号,在一些实施方式中,上述第一中断描述符为一组描述符中最后一个执行的描述符,在最后一个执行的描述符执行完毕后,向中央处理器发送中断信号,反馈这一组描述符已执行完毕。
在一种可选的方案中,上述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,上述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,上述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,上述步骤S1022可以实现为:
在上述第二地址信息对应的一组上述描述符为写描述符的情况下,至少将上述第二地址信息和上述第一配置信息配置至上述第一子旁路描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述写描述符存储至上述第一子先入先出存储器,使上述DMA控制器将上述第一配置信息存储至上述第三子先入先出存储器,使上述DMA控制器根据上述第一配置信息中的上述第一ID和上述第二ID接收来自上述第一子先入先出存储器的上述第二地址信息对应的一组上述写描述符,并根据上述写描述符执行写数据操作;
或,
在上述第二地址信息对应的一组上述描述符为读描述符的情况下,至少将上述第二地址信息和上述第一配置信息配置至上述第二子旁路描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述读描述符存储至上述第二子先入先出存储器,使上述DMA控制器将上述第一配置信息存储至上述第四子先入先出存储器,使上述DMA控制器根据上述第一配置信息中的上述第一ID和上述第二ID接收来自上述第一子先入先出存储器的一组上述读描述符,并根据上述读描述符执行读数据操作。
具体地,在第二地址信息对应的一组上述描述符为写描述符,中央处理器将第二地址信息配置至第一子旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符存储至第一子先入先出存储器,中央处理器将第二地址信息对应的一组写描述符中第一个执行的写描述符的ID和最后一个执行的写描述符的ID配置至第一子旁路写描述符控制寄存器,DMA控制器将第二地址信息对应的一组写描述符中第一个执行的写描述符的ID和最后一个执行的写描述符的ID存储至第三子先入先出存储器,DMA控制器在第一子先入先出存储器发送的写描述符的ID与一组写描述符中第一个执行的写描述符的ID相同时,开始接收这组写描述符,DMA控制器在第一先入先出存储器发送的写描述符的ID与这一组写描述符中最后一个执行的写描述符的ID相同时,确定这组写描述符接收完毕,在第二地址信息对应的一组上述描述符为读描述符,中央处理器将第二地址信息配置至第二子旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组读描述符存储至第二子先入先出存储器,中央处理器将第二地址信息对应的一组读描述符中第一个执行的读描述符的ID和最后一个执行的读描述符的ID配置至第二子旁路读描述符控制寄存器,DMA控制器将第二地址信息对应的一组读描述符中第一个执行的读描述符的ID和最后一个执行的读描述符的ID存储至第四子先入先出存储器,DMA控制器在第二子先入先出存储器发送的读描述符的ID与一组读描述符中第一个执行的读描述符的ID相同时,开始接收这组读描述符,DMA控制器在第一先入先出存储器发送的读描述符的ID与这一组读描述符中最后一个执行的读描述符的ID相同时,确定这组读描述符接收完毕,本申请中写描述符的配置和读描述符的配置可以同时进行,进一步减少了描述符配置时间,进一步提高了DMA控制器读写数据的效率。
在一种可选的方案中,在上述步骤S101之后,上述方法还包括:
步骤S201,在上述描述符控制寄存器处于上述空闲状态的情况下,至少将上述第二地址信息配置至上述描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器。
具体地,在DMA控制器中的描述符控制寄存器处于空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符被存储至第一先入先出存储器,中央处理器将第二地址信息配置至描述符控制寄存器。
在一种可选的方案中,一个上述描述符具有一个ID,上述DMA控制器中设置有第二先入先出存储器,上述步骤S201可以实现为:
步骤S2011,基于预设顺序,确定第一配置信息,其中,上述预设顺序为上述第二地址信息对应的一组上述描述符中的上述描述符的执行顺序,上述第一配置信息包括一个第一ID和一个第二ID,上述第一ID为上述第二地址信息对应的一组上述描述符中第一个执行的上述描述符的ID,上述第二ID为上述第二地址信息对应的一组上述描述符中最后一个执行的上述描述符的ID;
步骤S2012,至少将上述第二地址信息和上述第一配置信息配置至上述描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器,使上述DMA控制器将上述第一配置信息发送至上述第二先入先出存储器,使上述DMA控制器根据上述第一配置信息中的上述第一ID和上述第二ID接收来自上述第一先入先出存储器的上述第二地址信息对应的一组上述描述符,并根据上述描述符执行读写数据操作。
具体地,中央处理器将第二地址信息配置至描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符存储至第一先入先出存储器,中央处理器将第二地址信息对应的一组描述符中第一个执行的描述符的ID和最后一个执行的描述符的ID配置至描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符中第一个执行的描述符的ID和最后一个执行的描述符的ID存储至第二先入先出存储器,DMA控制器在第一先入先出存储器发送的描述符的ID与一组描述符中第一个执行的描述符的ID相同时,开始接收这组描述符,DMA控制器在第一先入先出存储器发送的描述符的ID与这一组描述符中最后一个执行的描述符的ID相同时,确定这组描述符接收完毕,相比于现有技术中在单指针循环配置机制中,若将多组描述符存储至先入先出存储器,DMA控制器无法确定是否执行到一组描述符中最后一个描述符,本申请采用双ID的方式能够确定执行到一组描述符中的第一个描述符且能够确定执行到一组描述符中的最后一个描述符,解决了现有技术中无法将多组描述符存储至先入先出存储器的问题,减少了描述符配置时间,提高了DMA控制器读写数据的效率。
具体地,一些实施方式中,有N组描述符,分别记为第1组、第2组…第N组,预设顺序为第1组、第2组…第N组,如图3所示,第1组中第一个执行的描述符的ID为0,第1组中最后一个执行的描述符的ID为4,第2组中第一个执行的描述符的ID为5,第2组中最后一个执行的描述符的ID为8,第N组中第一个执行的描述符的ID为0,第N组中最后一个执行的描述符的ID为2。
在一种可选的方案中,上述描述符控制寄存器包括第一子描述符控制寄存器和第二子描述符控制寄存器,上述步骤S2012可以实现为:
在上述第二地址信息对应的一组上述描述符为写描述符的情况下,至少将上述第二地址信息和上述第一配置信息配置至上述第一子描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述写描述符存储至上述第一子先入先出存储器,使上述DMA控制器将上述第一配置信息存储至上述第三子先入先出存储器,使上述DMA控制器根据上述第一配置信息中的上述第一ID和上述第二ID接收来自上述第一子先入先出存储器的上述第二地址信息对应的一组上述写描述符,并根据上述写描述符执行写数据操作;
或,
在上述第二地址信息对应的一组上述描述符为读描述符的情况下,至少将上述第二地址信息和上述第一配置信息配置至上述第二子描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述读描述符存储至上述第二子先入先出存储器,使上述DMA控制器将上述第一配置信息存储至上述第四子先入先出存储器,使上述DMA控制器根据上述第一配置信息中的上述第一ID和上述第二ID接收来自上述第一子先入先出存储器的一组上述读描述符,并根据上述读描述符执行读数据操作。
通过上述实施例,在DMA控制器中的描述符控制寄存器处于非空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符没有被存储至第一先入先出存储器,中央处理器将第二地址信息配置至旁路描述符控制寄存器,解决了现有技术中描述符配置局限于描述符控制器处于空闲状态的问题,降低了描述符的配置时长,提高了DMA控制器读写数据的效率。
需要说明的是,上述第一地址信息对应的一组上述描述符的配置过程与上述第二地址信息对应的一组上述描述符的配置过程相同。
在本实施例中还提供了一种描述符的配置装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是根据本申请实施例的描述符的配置装置的结构框图,如图4所示,该装置包括:
检测模块11,用于检测上述描述符控制寄存器是否处于空闲状态;
其中,上述描述符控制寄存器存储有第一地址信息,上述第一地址信息为上述内存中存储一组描述符的上述存储区的地址,上述空闲状态为上述DMA控制器将上述第一地址信息对应的一组上述描述符存储至上述第一先入先出存储器;
配置模块12,用于在上述描述符控制寄存器未处于上述空闲状态的情况下,至少将第二地址信息配置至上述旁路描述符控制寄存器,使上述DMA控制器将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器;
其中,上述第二地址信息为上述内存中存储有一组上述描述符的上述存储区的地址,上述第二地址信息与上述第一地址信息不同。
通过上述步骤,在DMA控制器中的描述符控制寄存器处于非空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符没有被存储至第一先入先出存储器,中央处理器将第二地址信息配置至旁路描述符控制寄存器,解决了现有技术中描述符配置局限于描述符控制器处于空闲状态的问题,降低了描述符的配置时长,提高了DMA控制器读写数据的效率。
在本实施例中提供了一种运行于上述DMA控制器的描述符的配置方法,图5是根据本申请实施例的流程图,如图5所示,该流程包括如下步骤:
步骤S3O1,在上述描述符控制寄存器未处于空闲状态的情况下,确定剩余数量是否大于第一目标数量;
其中,上述描述符控制寄存器存储有第一地址信息,上述第一地址信息为上述内存中存储一组描述符的上述存储区的地址,上述空闲状态为上述DMA控制器将上述第一地址信息对应的一组上述描述符存储至上述第一先入先出存储器,上述剩余数量为上述第一先入先出存储器中未存储上述描述符的上述存储单元的数量,上述第一目标数量为上述第一地址信息对应的一组上述描述符包含的上述描述符的数量,上述描述符控制寄存器未处于上述空闲状态的情况下上述中央处理器至少将第二地址信息配置至上述旁路描述符控制寄存器,上述第二地址信息为上述内存中存储一组上述描述符的上述存储区的地址,上述第二地址信息与上述第一地址信息不同;
步骤S302,在上述剩余数量大于上述第一目标数量的情况下,至少将上述第一地址信息对应的一组上述描述符存储至上述第一先入先出存储器;
步骤S303,确定上述剩余数量是否大于第二目标数量,上述第二目标数量为上述第二地址信息对应一组上述描述符包含的上述描述符的数量;
具体地,在DMA控制器中的描述符控制寄存器处于非空闲状态的情况下,即在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符没有被存储至第一先入先出存储器的情况下,DMA控制器确定剩余数量是否大于第一目标数量,即DMA控制器确定第一先入先出存储器未存储描述符的存储单元的数量是否大于描述符控制寄存器中第一地址信息对应的一组描述符包含的描述符的数量,若大于,DMA控制器将第一地址信息对应的一组描述符包含的描述符存储到第一先入先出存储器。
步骤S304,在上述剩余数量大于上述第二目标数量的情况下,至少将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器。
具体地,在DMA控制器中的描述符控制寄存器中存储的第一地址信息对应的一组描述符被存储至第一先入先出存储器之后,DMA控制器确定剩余数量是否大于第二目标数量,即DMA控制器确定第一先入先出存储器未存储描述符的存储单元的数量是否大于旁路描述符控制寄存器中存储的第二地址信息对应的一组描述符包含的描述符的数量,若大于,DMA控制器将第二地址信息对应的一组描述符包含的描述符存储到第一先入先出存储器。
在一种可选的方案中,一个上述描述符具有一个ID,上述DMA控制器中设置有第二先入先出存储器,上述步骤S304可以实现为:
步骤S3041,将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器,且将第一配置信息存储至上述第二先入先出存储器,上述第一配置信息包括一个第一ID和一个第二ID,上述第一ID为上述第二地址信息对应的一组上述描述符中第一个执行的上述描述符的ID,上述第二ID为上述第二地址信息对应的一组上述描述符中最后一个执行的上述描述符的ID,上述中央处理器还用于将上述第一配置信息配置至上述旁路描述符控制寄存器。
具体地,中央处理器将第二地址信息配置至旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符存储至第一先入先出存储器,中央处理器将第二地址信息对应的一组描述符中第一个执行的描述符的ID和最后一个执行的描述符的ID配置至旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符中第一个执行的描述符的ID和最后一个执行的描述符的ID存储至第二先入先出存储器,DMA控制器在第一先入先出存储器发送的描述符的ID与一组描述符中第一个执行的描述符的ID相同时,开始接收这组描述符,DMA控制器在第一先入先出存储器发送的描述符的ID与这一组描述符中最后一个执行的描述符的ID相同时,确定这组描述符接收完毕,相比于现有技术中在单指针循环配置机制中,若将多组描述符存储至先入先出存储器,DMA控制器无法确定是否执行到一组描述符中最后一个描述符,本申请采用双ID的方式能够确定执行到一组描述符中的第一个描述符且能够确定执行到一组描述符中的最后一个描述符,解决了现有技术中无法将多组描述符存储至先入先出存储器的问题,减少了描述符配置时间,提高了DMA控制器读写数据的效率。
在一种可选的方案中,上述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,上述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,上述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,上述步骤S3041可以实现为:
在上述第二地址信息对应的一组上述描述符为写描述符的情况下,将上述第二地址信息对应的一组上述描述符存储至上述第一子先入先出存储器,且将上述第一配置信息发送至上述第三子先入先出存储器;
在上述第二地址信息对应的一组上述描述符为读描述符的情况下,将上述第二地址信息对应的一组上述描述符存储至上述第二子先入先出存储器,且将上述第一配置信息发送至上述第四子先入先出存储器。
具体地,在第二地址信息对应的一组上述描述符为写描述符,中央处理器将第二地址信息配置至第一子旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组描述符存储至第一子先入先出存储器,中央处理器将第二地址信息对应的一组写描述符中第一个执行的写描述符的ID和最后一个执行的写描述符的ID配置至第一子旁路写描述符控制寄存器,DMA控制器将第二地址信息对应的一组写描述符中第一个执行的写描述符的ID和最后一个执行的写描述符的ID存储至第三子先入先出存储器,DMA控制器在第一子先入先出存储器发送的写描述符的ID与一组写描述符中第一个执行的写描述符的ID相同时,开始接收这组写描述符,DMA控制器在第一先入先出存储器发送的写描述符的ID与这一组写描述符中最后一个执行的写描述符的ID相同时,确定这组写描述符接收完毕,在第二地址信息对应的一组上述描述符为读描述符,中央处理器将第二地址信息配置至第二子旁路描述符控制寄存器,DMA控制器将第二地址信息对应的一组读描述符存储至第二子先入先出存储器,中央处理器将第二地址信息对应的一组读描述符中第一个执行的读描述符的ID和最后一个执行的读描述符的ID配置至第二子旁路读描述符控制寄存器,DMA控制器将第二地址信息对应的一组读描述符中第一个执行的读描述符的ID和最后一个执行的读描述符的ID存储至第四子先入先出存储器,DMA控制器在第二子先入先出存储器发送的读描述符的ID与一组读描述符中第一个执行的读描述符的ID相同时,开始接收这组读描述符,DMA控制器在第一先入先出存储器发送的读描述符的ID与这一组读描述符中最后一个执行的读描述符的ID相同时,确定这组读描述符接收完毕,本申请中写描述符的配置和读描述符的配置可以同时进行,进一步减少了描述符配置时间,进一步提高了DMA控制器读写数据的效率。
在一种可选的方案中,上述方法还包括:
步骤S401,第一接收步骤,至少接收来自上述第三子先入先出存储器中的第一目标配置信息,并从上述第一目标配置信息中获取第一目标ID和第二目标ID,上述第一目标配置信息为上述第三子先入先出存储器中的多个第二配置信息中的一个,一个上述第二配置信息对应一组上述写描述符,一个上述第二配置信息包括一个第四ID和一个第五ID,上述第四ID为所属的上述第二配置信息对应的一组上述写描述符中第一个执行的上述写描述符的ID,上述第五ID为所属的上述第二配置信息对应的一组上述写描述符中最后一个执行的上述写描述符的ID,上述第一目标ID为上述第一目标配置信息包括的上述第四ID,上述第二目标ID为上述第一目标配置信息包括的上述第五ID;
步骤S402,第一执行步骤,根据上述第一目标ID和上述第二目标ID接收并执行来自从上述第一子先入先出存储器的第一目标组描述符,上述第一目标组描述符为上述第一目标配置信息对应的一组上述写描述符;
步骤S403,重复上述第一接收步骤和上述第一执行步骤至少一次,直至上述第三子先入先出存储器中的所有的上述第二配置信息对应上述写描述符执行完毕。
具体地, DMA控制器从第三子先入先出存储器接收一组写描述符中第一个执行的写描述符的ID以及最后一个执行的写描述符,DMA控制器在第一子先入先出存储器发送的写描述符的ID与一组写描述符中第一个执行的写描述符的ID相同时,开始接收这组写描述符,DMA控制器在第一先入先出存储器发送的写描述符的ID与这一组写描述符中最后一个执行的写描述符的ID相同时,确定这组写描述符接收完毕。
在一种可选的方案中,上述步骤S402可以实现为:
步骤S4021,第二接收步骤,根据上述第一目标ID和上述第二目标ID,接收来自上述第一子先入先出存储器的第一目标描述符,上述第一目标描述符为上述第一目标组描述符中的一个上述写描述符;
步骤S4022,第二执行步骤,执行上述第一目标描述符;
步骤S4023,重复上述第二接收步骤和上述第二执行步骤至少一次,直至上述第一目标组描述符中的所有的上述写描述符执行完毕。
具体地,DMA控制器从第三子先入先出存储器接收一组写描述符中第一个执行的写描述符的ID以及最后一个执行的写描述符,DMA控制器在第一子先入先出存储器发送的写描述符的ID与一组写描述符中第一个执行的写描述符的ID相同时,开始接收这组写描述符,DMA控制器在第一先入先出存储器发送的写描述符的ID与这一组写描述符中最后一个执行的写描述符的ID相同时,确定这组写描述符接收完毕。
在一种可选的方案中,上述第二配置信息还包括:第六ID,上述第六ID为第二中断描述符的ID,上述第二中断描述符为上述第二配置信息对应的一组上述写描述符中的一个上述写描述符,在上述步骤S4022之后,上述方法还包括:
从上述第一目标配置信息中获取第三目标ID,上述第三目标ID为上述第一目标配置信息中的上述第六ID;
确定上述第一目标描述符的ID是否为上述第三目标ID;
在上述第一目标描述符的ID为上述第三目标ID的情况下,向上述中央处理器发送中断信号。
具体地,在第二配置信息中还包括第二中断描述符的ID,使得在每个写描述符执行完毕后,根据第二中断描述符的ID确定是否向中央处理器发送中断信号,在一些实施方式中,上述第二中断描述符为一组描述符中最后一个执行的写描述符,在最后一个执行的写描述符执行完毕后,向中央处理器发送中断信号,反馈这一组写描述符已执行完毕。
在一种可选的方案中,上述方法还包括:
步骤S501,第三接收步骤,至少接收来自上述第四子先入先出存储器中的第二目标配置信息,并从上述第二目标配置信息中获取第四目标ID和第五目标ID,上述第二目标配置信息为上述第四子先入先出存储器中的多个第三配置信息中的一个,一个上述第三配置信息对应一组上述读描述符,一个上述第三配置信息包括一个第七ID和一个第八ID,上述第七ID为所属的上述第三配置信息对应的一组上述读描述符中第一个执行的上述读描述符的ID,上述第八ID为所属的上述第三配置信息对应的一组上述读描述符中最后一个执行的上述读描述符的ID,上述第四目标ID为上述第二目标配置信息包括的上述第七ID,上述第五目标ID为上述第二目标配置信息包括的上述第八ID;
步骤S502,第三执行步骤,根据上述第四目标ID和上述第五目标ID接收并执行来自从上述第二子先入先出存储器的第二目标组描述符,执行上述第二目标组描述符,上述第二目标组描述符为上述第二目标配置信息对应的一组上述读描述符;
步骤S503,重复上述第三接收步骤和上述第三执行步骤至少一次,直至上述第四子先入先出存储器中的所有的上述第三配置信息对应上述读描述符执行完毕。
具体地, DMA控制器从第四子先入先出存储器接收一组读描述符中第一个执行的读描述符的ID以及最后一个执行的读描述符,DMA控制器在第二子先入先出存储器发送的读描述符的ID与一组读描述符中第一个执行的读描述符的ID相同时,开始接收这组读描述符,DMA控制器在第一先入先出存储器发送的读描述符的ID与这一组读描述符中最后一个执行的读描述符的ID相同时,确定这组读描述符接收完毕。
在一种可选的方案中,上述步骤S502可以实现为:
步骤S5021,第四接收步骤,根据上述第四目标ID和上述第五目标ID,接收来自上述第二子先入先出存储器的第二目标描述符,上述第二目标描述符为上述第二目标组描述符中的一个上述读描述符;
步骤S5022,第四执行步骤,执行上述第二目标描述符;
步骤S5023,重复上述第四接收步骤和上述第四执行步骤至少一次,直至上述第二目标组描述符中的所有的上述读描述符执行完毕。
具体地,DMA控制器从第四子先入先出存储器接收一组读描述符中第一个执行的读描述符的ID以及最后一个执行的读描述符,DMA控制器在第二子先入先出存储器发送的读描述符的ID与一组读描述符中第一个执行的读描述符的ID相同时,开始接收这组读描述符,DMA控制器在第二先入先出存储器发送的读描述符的ID与这一组读描述符中最后一个执行的读描述符的ID相同时,确定这组读描述符接收完毕。
在一种可选的方案中,上述第三配置信息还包括:第九ID,上述第九ID为第三中断描述符的ID,上述第三中断描述符为上述第三配置信息对应的一组上述读描述符中的一个上述读描述符,上述DMA控制器用于在上述第三中断描述符执行完毕的情况下向上述中央处理器发送中断信号,在上述步骤S5022之后,上述方法还包括:
从上述第二目标配置信息中获取第六目标ID,上述第六目标ID为上述第二目标配置信息中的上述第九ID;
确定上述第二目标描述符的ID是否为上述第六目标ID;
在上述第二目标描述符的ID为上述第六目标ID的情况下,向上述中央处理器发送中断信号。
具体地,在第三配置信息中还包括第三中断描述符的ID,使得在每个读描述符执行完毕后,根据第二中断描述符的ID确定是否向中央处理器发送中断信号,在一些实施方式中,上述第二中断描述符为一组描述符中最后一个执行的读描述符,在最后一个执行的读描述符执行完毕后,向中央处理器发送中断信号,反馈这一组读描述符已执行完毕。
需要说明的是,上述第一地址信息对应的一组上述描述符的配置过程与上述第二地址信息对应的一组上述描述符的配置过程相同。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例上述的方法。
在本实施例中还提供了另一种描述符的配置装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本申请实施例的描述符的配置装置的结构框图,如图6所示,该装置包括:
第一确定模块21,用于在上述描述符控制寄存器未处于空闲状态的情况下,确定剩余数量是否大于第一目标数量,上述描述符控制寄存器存储有第一地址信息,上述第一地址信息为上述内存中存储一组描述符的上述存储区的地址,上述空闲状态为上述DMA控制器将上述第一地址信息对应的一组上述描述符存储至上述第一先入先出存储器,上述剩余数量为上述第一先入先出存储器中未存储上述描述符的上述存储单元的数量,上述第一目标数量为上述第一地址信息对应的一组上述描述符包含的上述描述符的数量,上述描述符控制寄存器未处于上述空闲状态的情况下上述中央处理器至少将第二地址信息配置至上述旁路描述符控制寄存器,上述第二地址信息为上述内存中存储一组上述描述符的上述存储区的地址,上述第二地址信息与上述第一地址信息不同;
第一存储模块22,用于在上述剩余数量大于上述第一目标数量的情况下,至少将上述第一地址信息对应的一组上述描述符存储至上述第一先入先出存储器;
第二确定模块23,用于确定上述剩余数量是否大于第二目标数量,上述第二目标数量为上述第二地址信息对应一组上述描述符包含的上述描述符的数量;
第二存储模块24,用于在上述剩余数量大于上述第二目标数量的情况下,至少将上述第二地址信息对应的一组上述描述符存储至上述第一先入先出存储器。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上上述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种描述符的配置方法,其特征在于,DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述方法应用于所述中央处理器,所述方法包括:
检测所述描述符控制寄存器是否处于空闲状态,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;
在所述描述符控制寄存器未处于所述空闲状态的情况下,至少将第二地址信息配置至所述旁路描述符控制寄存器,所述第二地址信息为所述内存中存储有一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同;一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,至少将第二地址信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,包括:基于预设顺序,确定第一配置信息,其中,所述预设顺序为所述第二地址信息对应的一组所述描述符中的所述描述符的执行顺序,所述第一配置信息包括第一ID和第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID;至少将所述第二地址信息和所述第一配置信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作。
2.根据权利要求1所述的方法,其特征在于,所述第一配置信息还包括:
第三ID,所述第三ID为第一中断描述符的ID,所述第一中断描述符为所述第二地址信息对应的一组所述描述符中的一个所述描述符,所述DMA控制器用于在所述第一中断描述符执行完毕的情况下向所述中央处理器发送中断信号。
3.根据权利要求1或2所述的方法,其特征在于,所述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,所述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,所述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,至少将所述第二地址信息和所述第一配置信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作,包括:
在所述第二地址信息对应的一组所述描述符为写描述符的情况下,至少将所述第二地址信息和所述第一配置信息配置至所述第一子旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述写描述符存储至所述第一子先入先出存储器,使所述DMA控制器将所述第一配置信息存储至所述第三子先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一子先入先出存储器的所述第二地址信息对应的一组所述写描述符,并根据所述写描述符执行写数据操作;
或,
在所述第二地址信息对应的一组所述描述符为读描述符的情况下,至少将所述第二地址信息和所述第一配置信息配置至所述第二子旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述读描述符存储至所述第二子先入先出存储器,使所述DMA控制器将所述第一配置信息存储至所述第四子先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一子先入先出存储器的一组所述读描述符,并根据所述读描述符执行读数据操作。
4.根据权利要求1所述的方法,其特征在于,在检测所述描述符控制寄存器是否处于空闲状态之后,所述方法还包括:
在所述描述符控制寄存器处于所述空闲状态的情况下,至少将所述第二地址信息配置至所述描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器。
5.根据权利要求1所述的方法,其特征在于,一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,至少将所述第二地址信息配置至所述描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,包括:
基于预设顺序,确定第一配置信息,其中,所述预设顺序为所述第二地址信息对应的一组所述描述符中的所述描述符的执行顺序,所述第一配置信息包括一个第一ID和一个第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID;
至少将所述第二地址信息和所述第一配置信息配置至所述描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作。
6.根据权利要求5所述的方法,其特征在于,所述第一配置信息还包括:
第三ID,所述第三ID为第一中断描述符的ID,所述第一中断描述符为所述第二地址信息对应的一组所述描述符中的一个所述描述符,所述DMA控制器用于在所述第一中断描述符执行完毕的情况下向所述中央处理器发送中断信号。
7.一种描述符的配置装置,其特征在于,DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述装置应用于所述中央处理器,所述装置包括:
检测模块,用于检测所述描述符控制寄存器是否处于空闲状态,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;
配置模块,用于在所述描述符控制寄存器未处于所述空闲状态的情况下,至少将第二地址信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述第二地址信息为所述内存中存储有一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同;一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,所述配置模块用于:基于预设顺序,确定第一配置信息,其中,所述预设顺序为所述第二地址信息对应的一组所述描述符中的所述描述符的执行顺序,所述第一配置信息包括第一ID和第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID;至少将所述第二地址信息和所述第一配置信息配置至所述旁路描述符控制寄存器,使所述DMA控制器将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,使所述DMA控制器将所述第一配置信息发送至所述第二先入先出存储器,使所述DMA控制器根据所述第一配置信息中的所述第一ID和所述第二ID接收来自所述第一先入先出存储器的所述第二地址信息对应的一组所述描述符,并根据所述描述符执行读写数据操作。
8.一种描述符的配置方法,其特征在于,DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述第一先入先出存储器具有多个存储单元,所述方法应用于所述DMA控制器,所述方法包括:
在所述描述符控制寄存器未处于空闲状态的情况下,确定剩余数量是否大于第一目标数量,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述剩余数量为所述第一先入先出存储器中未存储所述描述符的所述存储单元的数量,所述第一目标数量为所述第一地址信息对应的一组所述描述符包含的所述描述符的数量,所述描述符控制寄存器未处于所述空闲状态的情况下所述中央处理器至少将第二地址信息配置至所述旁路描述符控制寄存器,所述第二地址信息为所述内存中存储一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同;
在所述剩余数量大于所述第一目标数量的情况下,至少将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;
确定所述剩余数量是否大于第二目标数量,所述第二目标数量为所述第二地址信息对应的一组所述描述符包含的所述描述符的数量;
在所述剩余数量大于所述第二目标数量的情况下,至少将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器。
9.根据权利要求8所述的方法,其特征在于,一个所述描述符具有一个ID,所述DMA控制器中设置有第二先入先出存储器,至少将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,包括:
将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,且将第一配置信息存储至所述第二先入先出存储器,所述第一配置信息包括一个第一ID和一个第二ID,所述第一ID为所述第二地址信息对应的一组所述描述符中第一个执行的所述描述符的ID,所述第二ID为所述第二地址信息对应的一组所述描述符中最后一个执行的所述描述符的ID,所述中央处理器还用于将所述第一配置信息配置至所述旁路描述符控制寄存器。
10.根据权利要求9所述的方法,其特征在于,所述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,所述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,所述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器,且将所述第一配置信息存储至所述第二先入先出存储器,包括:
在所述第二地址信息对应的一组所述描述符为写描述符的情况下,将所述第二地址信息对应的一组所述描述符存储至所述第一子先入先出存储器,且将所述第一配置信息发送至所述第三子先入先出存储器;
在所述第二地址信息对应的一组所述描述符为读描述符的情况下,将所述第二地址信息对应的一组所述描述符存储至所述第二子先入先出存储器,且将所述第一配置信息发送至所述第四子先入先出存储器。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
第一接收步骤,至少接收来自所述第三子先入先出存储器中的第一目标配置信息,并从所述第一目标配置信息中获取第一目标ID和第二目标ID,所述第一目标配置信息为所述第三子先入先出存储器中的多个第二配置信息中的一个,一个所述第二配置信息对应一组所述写描述符,一个所述第二配置信息包括一个第四ID和一个第五ID,所述第四ID为所属的所述第二配置信息对应的一组所述写描述符中第一个执行的所述写描述符的ID,所述第五ID为所属的所述第二配置信息对应的一组所述写描述符中最后一个执行的所述写描述符的ID,所述第一目标ID为所述第一目标配置信息包括的所述第四ID,所述第二目标ID为所述第一目标配置信息包括的所述第五ID;
第一执行步骤,根据所述第一目标ID和所述第二目标ID接收并执行来自从所述第一子先入先出存储器的第一目标组描述符,所述第一目标组描述符为所述第一目标配置信息对应的一组所述写描述符;
重复所述第一接收步骤和所述第一执行步骤至少一次,直至所述第三子先入先出存储器中的所有的所述第二配置信息对应所述写描述符执行完毕。
12.根据权利要求11所述的方法,其特征在于,根据所述第一目标ID和所述第二目标ID接收并执行来自从所述第一子先入先出存储器的第一目标组描述符,包括:
第二接收步骤,根据所述第一目标ID和所述第二目标ID,接收来自所述第一子先入先出存储器的第一目标描述符,所述第一目标描述符为所述第一目标组描述符中的一个所述写描述符;
第二执行步骤,执行所述第一目标描述符;
重复所述第二接收步骤和所述第二执行步骤至少一次,直至所述第一目标组描述符中的所有的所述写描述符执行完毕。
13.根据权利要求12所述的方法,其特征在于,所述第二配置信息还包括:第六ID,所述第六ID为第二中断描述符的ID,所述第二中断描述符为所述第二配置信息对应的一组所述写描述符中的一个所述写描述符,所述DMA控制器用于在所述第二中断描述符执行完毕的情况下向所述中央处理器发送中断信号,在执行所述第一目标描述符之后,所述方法包括:
从所述第一目标配置信息中获取第三目标ID,所述第三目标ID为所述第一目标配置信息中的所述第六ID;
确定所述第一目标描述符的ID是否为所述第三目标ID;
在所述第一目标描述符的ID为所述第三目标ID的情况下,向所述中央处理器发送中断信号。
14.根据权利要求10所述的方法,其特征在于,所述方法还包括:
第三接收步骤,至少接收来自所述第四子先入先出存储器中的第二目标配置信息,并从所述第二目标配置信息中获取第四目标ID和第五目标ID,所述第二目标配置信息为所述第四子先入先出存储器中的多个第三配置信息中的一个,一个所述第三配置信息对应一组所述读描述符,一个所述第三配置信息包括一个第七ID和一个第八ID,所述第七ID为所属的所述第三配置信息对应的一组所述读描述符中第一个执行的所述读描述符的ID,所述第八ID为所属的所述第三配置信息对应的一组所述读描述符中最后一个执行的所述读描述符的ID,所述第四目标ID为所述第二目标配置信息包括的所述第七ID,所述第五目标ID为所述第二目标配置信息包括的所述第八ID;
第三执行步骤,根据所述第四目标ID和所述第五目标ID接收并执行来自从所述第二子先入先出存储器的第二目标组描述符,执行所述第二目标组描述符,所述第二目标组描述符为所述第二目标配置信息对应的一组所述读描述符;
重复所述第三接收步骤和所述第三执行步骤至少一次,直至所述第四子先入先出存储器中的所有的所述第三配置信息对应所述读描述符执行完毕。
15.根据权利要求14所述的方法,其特征在于,根据所述第四目标ID和所述第五目标ID接收并执行来自从所述第二子先入先出存储器的第二目标组描述符,包括:
第四接收步骤,根据所述第四目标ID和所述第五目标ID,接收来自所述第二子先入先出存储器的第二目标描述符,所述第二目标描述符为所述第二目标组描述符中的一个所述读描述符;
第四执行步骤,执行所述第二目标描述符;
重复所述第四接收步骤和所述第四执行步骤至少一次,直至所述第二目标组描述符中的所有的所述读描述符执行完毕。
16.根据权利要求15所述的方法,其特征在于,所述第三配置信息还包括:第九ID,所述第九ID为第三中断描述符的ID,所述第三中断描述符为所述第三配置信息对应的一组所述读描述符中的一个所述读描述符,所述DMA控制器用于在所述第三中断描述符执行完毕的情况下向所述中央处理器发送中断信号,在执行所述第二目标描述符之后,所述方法包括:
从所述第二目标配置信息中获取第六目标ID,所述第六目标ID为所述第二目标配置信息中的所述第九ID;
确定所述第二目标描述符的ID是否为所述第六目标ID;
在所述第二目标描述符的ID为所述第六目标ID的情况下,向所述中央处理器发送中断信号。
17.一种描述符的配置装置,其特征在于,DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器和第一先入先出存储器,所述描述符控制寄存器和所述旁路描述符控制寄存器均与中央处理器通信连接,所述DMA控制器与内存通信连接,所述内存具有多个存储区,所述第一先入先出存储器具有多个存储单元,所述装置应用于所述DMA控制器,所述装置包括:
第一确定模块,用于在所述描述符控制寄存器未处于空闲状态的情况下,确定剩余数量是否大于第一目标数量,所述描述符控制寄存器存储有第一地址信息,所述第一地址信息为所述内存中存储一组描述符的所述存储区的地址,所述空闲状态为所述DMA控制器将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器,所述剩余数量为所述第一先入先出存储器中未存储所述描述符的所述存储单元的数量,所述第一目标数量为所述第一地址信息对应的一组所述描述符包含的所述描述符的数量,所述描述符控制寄存器未处于所述空闲状态的情况下所述中央处理器至少将第二地址信息配置至所述旁路描述符控制寄存器,所述第二地址信息为所述内存中存储一组所述描述符的所述存储区的地址,所述第二地址信息与所述第一地址信息不同;
第一存储模块,用于在所述剩余数量大于所述第一目标数量的情况下,至少将所述第一地址信息对应的一组所述描述符存储至所述第一先入先出存储器;
第二确定模块,用于确定所述剩余数量是否大于第二目标数量,所述第二目标数量为所述第二地址信息对应的一组所述描述符包含的所述描述符的数量;
第二存储模块,用于在所述剩余数量大于所述第二目标数量的情况下,至少将所述第二地址信息对应的一组所述描述符存储至所述第一先入先出存储器。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至6任一项中所述的方法的步骤,或者实现权利要求8-16任一项中所述的方法的步骤。
19.一种数据传输系统,其特征在于,所述系统包括:
内存;
DMA控制器,所述DMA控制器与所述内存通信连接,所述DMA控制器中设置有描述符控制寄存器、旁路描述符控制寄存器、第一先入先出存储器和第二先入先出存储器,所述旁路描述符控制寄存器包括第一子旁路描述符控制寄存器和第二子旁路描述符控制寄存器,所述第一先入先出存储器包括第一子先入先出存储器和第二子先入先出存储器,所述第二先入先出存储器包括第三子先入先出存储器和第四子先入先出存储器,所述DMA控制器用于实现权利要求8至16任一项中所述的方法的步骤;
中央处理器,所述中央处理器分别所述第一子旁路描述符控制寄存器和所述第二子旁路描述符控制寄存器与通信连接,所述中央处理器用于实现权利要求1至6任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311336477.2A CN117076353B (zh) | 2023-10-16 | 2023-10-16 | 描述符的配置方法和描述符的配置装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311336477.2A CN117076353B (zh) | 2023-10-16 | 2023-10-16 | 描述符的配置方法和描述符的配置装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117076353A CN117076353A (zh) | 2023-11-17 |
CN117076353B true CN117076353B (zh) | 2024-02-02 |
Family
ID=88717629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311336477.2A Active CN117076353B (zh) | 2023-10-16 | 2023-10-16 | 描述符的配置方法和描述符的配置装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076353B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746B (zh) * | 2024-03-28 | 2024-07-23 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053093B1 (en) * | 2013-08-23 | 2015-06-09 | Altera Corporation | Modular direct memory access system |
CN109558344A (zh) * | 2018-12-03 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种适用于网络传输的dma传输方法及dma控制器 |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、系统和dma控制器 |
CN114443529A (zh) * | 2022-04-02 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 内存直接访问架构、系统、方法、电子设备和介质 |
CN116032861A (zh) * | 2023-01-09 | 2023-04-28 | 苏州盛科通信股份有限公司 | 一种报文处理方法及装置 |
CN116069711A (zh) * | 2023-04-07 | 2023-05-05 | 浪潮电子信息产业股份有限公司 | 直接内存访问控制器、异构设备、内存访问方法及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159048B2 (en) * | 2001-12-10 | 2007-01-02 | Emulex Design & Manufacturing Corporation | Direct memory access (DMA) transfer buffer processor |
-
2023
- 2023-10-16 CN CN202311336477.2A patent/CN117076353B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053093B1 (en) * | 2013-08-23 | 2015-06-09 | Altera Corporation | Modular direct memory access system |
CN109558344A (zh) * | 2018-12-03 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种适用于网络传输的dma传输方法及dma控制器 |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、系统和dma控制器 |
CN114443529A (zh) * | 2022-04-02 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 内存直接访问架构、系统、方法、电子设备和介质 |
CN116032861A (zh) * | 2023-01-09 | 2023-04-28 | 苏州盛科通信股份有限公司 | 一种报文处理方法及装置 |
CN116069711A (zh) * | 2023-04-07 | 2023-05-05 | 浪潮电子信息产业股份有限公司 | 直接内存访问控制器、异构设备、内存访问方法及介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117971746B (zh) * | 2024-03-28 | 2024-07-23 | 深圳鲲云信息科技有限公司 | 用于控制直接内存访问控制器的方法及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117076353A (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784930B (zh) | 一种区块链交易数据的处理方法、装置、电子设备及介质 | |
CN101419579B (zh) | 一种在动态随机存储器上提供服务质量的装置和方法 | |
CN117076353B (zh) | 描述符的配置方法和描述符的配置装置 | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
EP0208430B1 (en) | A method and apparatus for performing variable length data read transactions | |
CN113138802B (zh) | 命令分发装置、方法、芯片、计算机设备及存储介质 | |
JP2020194523A (ja) | アクセス請求を処理する方法、装置、デバイスならびに記憶媒体 | |
CN113722248A (zh) | 命令处理方法及命令处理装置 | |
CN108304272B (zh) | 一种数据io请求的处理方法及装置 | |
CN110515872B (zh) | 直接内存存取方法、装置、专用计算芯片及异构计算系统 | |
CN112181887A (zh) | 数据传输方法及装置 | |
CN116089477B (zh) | 分布式训练方法及系统 | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
US6832310B1 (en) | Manipulating work queue elements via a hardware adapter and software driver | |
CN115809126A (zh) | 混合部署场景下的作业调度方法、装置及电子设备 | |
CN111352868B (zh) | 串口访问方法、装置、终端设备及存储介质 | |
CN116185649A (zh) | 存储控制方法、存储控制器、存储芯片、网卡、可读介质 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
CN114138626A (zh) | 用于自动化固件测试的水平可扩展分布式系统及其方法 | |
CN112748883A (zh) | 一种io请求流水线处理设备、方法、系统及存储介质 | |
CN107729140B (zh) | 一种并行实现多个eMMC主机接口命令排队功能的装置及方法 | |
CN113051077A (zh) | 一种用户请求的处理方法、装置、终端设备及存储介质 | |
CN101394458B (zh) | 读写存储器的管理方法、装置及数码印刷设备 | |
CN111124987B (zh) | 一种基于pcie的数据传输控制系统和方法 | |
CN109597576B (zh) | 提高ncq命令响应速度的方法、装置、可读存储介质及系统 |
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 |