CN103714027A - Data transmission method and device for direct memory access controller - Google Patents
Data transmission method and device for direct memory access controller Download PDFInfo
- Publication number
- CN103714027A CN103714027A CN201410012698.9A CN201410012698A CN103714027A CN 103714027 A CN103714027 A CN 103714027A CN 201410012698 A CN201410012698 A CN 201410012698A CN 103714027 A CN103714027 A CN 103714027A
- Authority
- CN
- China
- Prior art keywords
- arbitration
- message
- dma engine
- equipment
- request
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000007246 mechanism Effects 0.000 claims abstract description 31
- 238000012913 prioritisation Methods 0.000 claims 16
- 238000012545 processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
Abstract
一种直接内存存取DMA控制器的数据传输方法及装置,当多个所述系统到设备DMA引擎通过仲裁机制向系统发送请求读命令时,系统将待发送给设备的第一报文或读操作命令发送到接收报文分配模块,所述接收报文分配模块解析所述第一报文或读操作命令的请求标识符,根据该请求标识将所述第一报文或读操作命令分发到相应的系统到设备DMA引擎;多个设备到系统DMA引擎通过仲裁机制向系统发送请求写命令,系统将写操作命令发送到接收报文分配模块,再传送到设备到系统DMA引擎,然后设备到系统DMA引擎通过仲裁机制发送所述第二报文给系统。采用多组并行DMA引擎同时工作,可以显著提高DMA设备接收和发送数据的效率,提升系统性能。
A data transmission method and device for a direct memory access DMA controller. When multiple system-to-device DMA engines send request read commands to the system through an arbitration mechanism, the system sends the first message or read command to be sent to the device. The operation command is sent to the receiving message distribution module, and the receiving message distribution module parses the request identifier of the first message or the read operation command, and distributes the first message or the read operation command according to the request identifier The corresponding system-to-device DMA engine; multiple device-to-system DMA engines send request write commands to the system through the arbitration mechanism, and the system sends the write operation command to the receiving message distribution module, and then transmits it to the device-to-system DMA engine, and then the device to the system The system DMA engine sends the second message to the system through an arbitration mechanism. Using multiple sets of parallel DMA engines to work at the same time can significantly improve the efficiency of DMA devices receiving and sending data and improve system performance.
Description
技术领域technical field
本发明涉及计算机系统设计领域和集成电路设计领域,具体涉及一种直接内存存取控制器的数据传输方法及装置。The invention relates to the field of computer system design and integrated circuit design, and in particular to a data transmission method and device of a direct memory access controller.
背景技术Background technique
随着计算机技术以及集成电路技术的飞速发展,高性能的计算机系统越来越成为经济社会发展的需要。计算机系统的数据传输带宽达数十GB/s,同时计算机系统附件设备的数据处理和分析能力也越来越高,这就为数据的传输能力带来挑战。一方面需要提高系统到设备的传输数据量,即尽可能的提高系统数据传输带宽的利用率,另一方面需要尽可能的避免数据传输而消耗的CPU计算资源。这就需要采用先进的DMA(Direct Memory Access,存储器直接访问)传输技术,DMA(Direct Memory Access,存储器直接访问)是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。With the rapid development of computer technology and integrated circuit technology, high-performance computer systems have increasingly become the needs of economic and social development. The data transmission bandwidth of the computer system reaches tens of GB/s, and at the same time, the data processing and analysis capabilities of the computer system accessories are getting higher and higher, which brings challenges to the data transmission capability. On the one hand, it is necessary to increase the amount of data transmitted from the system to the device, that is, to increase the utilization rate of the system data transmission bandwidth as much as possible; on the other hand, it is necessary to avoid CPU computing resources consumed by data transmission as much as possible. This requires the use of advanced DMA (Direct Memory Access, memory direct access) transmission technology, DMA (Direct Memory Access, memory direct access) refers to a high-speed data transmission operation that allows direct reading and writing between external devices and memory data.
DMA传输技术既可以有效提高数据传输效率,又可以避免对CPU计算资源的消耗。The DMA transfer technology can not only effectively improve data transfer efficiency, but also avoid consumption of CPU computing resources.
但是单DMA引擎传输效率低,数据处理系统的传输带宽利用率不高,影响了系统性能。However, the transmission efficiency of a single DMA engine is low, and the transmission bandwidth utilization rate of the data processing system is not high, which affects the system performance.
发明内容Contents of the invention
本发明要解决的技术问题是克服单DMA引擎传输效率低的不足,采用多组并行DMA引擎同时工作,可以显著提高DMA设备接收和发送数据的效率,提升系统性能。The technical problem to be solved by the present invention is to overcome the problem of low transmission efficiency of a single DMA engine, and adopt multiple groups of parallel DMA engines to work at the same time, which can significantly improve the efficiency of receiving and sending data by DMA devices and improve system performance.
一种直接内存存取DMA控制器的数据传输方法,应用于包含多个DMA引擎的DMA控制器,所述DMA引擎包括系统到设备DMA引擎及设备到系统DMA引擎,所述方法包括:A data transmission method of a direct memory access DMA controller, applied to a DMA controller comprising a plurality of DMA engines, the DMA engines comprising a system-to-device DMA engine and a device-to-system DMA engine, the method comprising:
当多个所述系统到设备DMA引擎通过仲裁机制向系统发送请求读命令时,系统将待发送给设备的第一报文或读操作命令发送到接收报文分配模块,所述接收报文分配模块解析所述第一报文或读操作命令的请求标识符,根据该请求标识将所述第一报文或读操作命令分发到相应的系统到设备DMA引擎;所述系统到设备DMA引擎获取所述第一报文后转发给相应设备;When multiple system-to-device DMA engines send request read commands to the system through the arbitration mechanism, the system sends the first message or read operation command to be sent to the device to the receiving message distribution module, and the receiving message distribution module The module parses the request identifier of the first message or the read operation command, and distributes the first message or the read operation command to the corresponding system-to-device DMA engine according to the request identifier; the system-to-device DMA engine acquires The first message is then forwarded to the corresponding device;
当多个所述设备到系统DMA引擎同时工作时,设备将待发送给系统的第二报文发送到每一个设备到系统DMA引擎,多个设备到系统DMA引擎通过仲裁机制向系统发送请求写命令,系统收到所述请求写命令后,将写操作命令发送到接收报文分配模块,所述接收报文分配模块解析所述写操作命令的请求标识符,根据所述标识符将所述写操作命令分发到相应的设备到系统DMA引擎;设备到系统DMA引擎收到所述写操作命令后,通过仲裁机制发送所述第二报文给系统。When multiple described device-to-system DMA engines work at the same time, the device sends the second message to be sent to the system to each device-to-system DMA engine, and multiple device-to-system DMA engines send requests to the system through an arbitration mechanism. command, after the system receives the request write command, it sends the write operation command to the receiving message distribution module, and the receiving message distribution module analyzes the request identifier of the write operation command, and sends the write operation command according to the identifier The write operation command is distributed to the corresponding device-to-system DMA engine; after receiving the write operation command, the device-to-system DMA engine sends the second message to the system through an arbitration mechanism.
可选地,所述通过仲裁机制发送第二报文给系统的步骤包括:Optionally, the step of sending the second message to the system through the arbitration mechanism includes:
对各个所述设备到系统DMA引擎发送的第二报文进行优先级排序仲裁;对经过仲裁的所述第二报文进行再次优先级排序仲裁;performing priority sorting arbitration on each of the second messages sent by the device-to-system DMA engine; performing priority sorting arbitration again on the arbitrated second messages;
所述通过仲裁机制向系统发送请求写命令的步骤包括:The step of sending a request write command to the system through an arbitration mechanism includes:
对各个所述设备到系统DMA引擎发送的请求写命令进行优先级排序仲裁;对经过仲裁的所述请求写命令进行再次优先级排序仲裁;Perform priority order arbitration on the request write commands sent from each of the devices to the system DMA engine; perform priority order arbitration again on the arbitrated request write commands;
所述通过仲裁机制发送请求读命令的步骤包括:The step of sending a request read command through an arbitration mechanism includes:
对各个所述系统到设备DMA引擎发送的请求读命令进行优先级排序仲裁,对经过仲裁的所述命令进行再次优先级排序仲裁。Perform priority sorting arbitration on the request read commands sent by each system-to-device DMA engine, and perform priority sorting arbitration again on the commands that have been arbitrated.
可选地,还包括:根据内部中断和/或外部中断生成中断请求,对中断请求进行优先级仲裁,仲裁后生成中断报文,将所述中断报文发送给仲裁机制与所述第二报文一起再次进行优先级排序仲裁,仲裁后所述中断报文被发送到系统。Optionally, it also includes: generating an interrupt request according to an internal interrupt and/or an external interrupt, performing priority arbitration on the interrupt request, generating an interrupt message after the arbitration, and sending the interrupt message to the arbitration mechanism and the second report After the arbitration, the interrupt message is sent to the system.
可选地,在所述系统到设备DMA引擎获取所述第一报文的步骤前还包括:所述系统到设备DMA引擎发起描述符信息,将所述描述符信息写入第一描述符寄存器,当收到系统返回的带描述符信息的读操作命令时,所述系统到设备DMA引擎根据所述描述符信息从系统进行所述获取所述第一报文的步骤。Optionally, before the step of obtaining the first message by the system-to-device DMA engine, the method further includes: the system-to-device DMA engine initiates descriptor information, and writes the descriptor information into the first descriptor register , when receiving the read operation command with descriptor information returned by the system, the system-to-device DMA engine performs the step of obtaining the first message from the system according to the descriptor information.
可选地,在发送所述第二报文给系统的步骤前还包括:所述设备到系统DMA引擎发起描述符信息,将所述描述符信息写入第二描述符寄存器,当收到系统返回的带描述符信息的写操作命令时,所述设备到系统DMA根据所述描述符信息进行发送所述第二报文数据报文给系统的步骤。Optionally, before the step of sending the second message to the system, it also includes: the device-to-system DMA engine initiates descriptor information, writes the descriptor information into the second descriptor register, and when receiving the system When the write operation command with descriptor information is returned, the device-to-system DMA performs the step of sending the second message data message to the system according to the descriptor information.
一种直接内存存取控制器的数据传输装置,包括:接收报文分配模块、仲裁模块、多个DMA引擎模块;A data transmission device of a direct memory access controller, comprising: a receiving message distribution module, an arbitration module, and multiple DMA engine modules;
所述多个DMA引擎模块包括多个系统到设备DMA引擎模块、多个设备到系统DMA引擎模块;The multiple DMA engine modules include multiple system-to-equipment DMA engine modules, and multiple equipment-to-system DMA engine modules;
所述系统到设备DMA引擎模块用于通过仲裁模块向系统发送请求读命令;接收系统通过接收报文分配模块发送过来的第一报文或读操作命令;当获取系统待发送给设备的第一报文时转发给相应设备;The system-to-device DMA engine module is used to send a request read command to the system through the arbitration module; the receiving system receives the first message or read operation command sent by the message distribution module; When the message is forwarded to the corresponding device;
所述接收报文分配模块用于从系统接收待发送给设备的第一报文或读操作命令,解析所述第一报文或读操作命令的请求标识符,根据该请求标识将所述第一报文或读操作命令分发到相应的系统到设备DMA引擎模块;The receiving message distribution module is used to receive the first message or read operation command to be sent to the device from the system, analyze the request identifier of the first message or read operation command, and allocate the first message or read operation command according to the request identifier. A message or read operation command is distributed to the corresponding system-to-device DMA engine module;
所述接收报文分配模块还用于接收系统发送到设备到系统DMA引擎模块的写操作命令,解析所述写操作命令的请求标识符,根据所述标识符将所述写操作命令分发到相应的设备到系统DMA引擎模块;The receiving message distribution module is also used for receiving the write operation command sent by the system to the device to the system DMA engine module, parsing the request identifier of the write operation command, and distributing the write operation command to the corresponding The device-to-system DMA engine module;
所述设备到系统DMA引擎模块用于通过仲裁模块向系统发送请求写命令;所述设备到系统DMA引擎模块还用于收到所述写操作命令后,通过仲裁模块发送所述第二报文给系统。The device-to-system DMA engine module is used to send a request write command to the system through the arbitration module; the device-to-system DMA engine module is also used to send the second message through the arbitration module after receiving the write operation command to the system.
所述仲裁模块用于对系统到设备DMA引擎模块发送至系统的请求读命令进行优先级仲裁;所述仲裁模块还用于对设备到系统DMA引擎模块发送至系统的请求写命令或第二报文进行优先级仲裁。The arbitration module is used to perform priority arbitration on the request read command sent to the system by the system-to-device DMA engine module; files for priority arbitration.
可选地,所述仲裁模块包括一级仲裁模块、二级仲裁模块;Optionally, the arbitration module includes a primary arbitration module and a secondary arbitration module;
所述一级仲裁模块用于对各个所述设备到系统DMA引擎模块发送的第二报文或请求写命令进行优先级排序仲裁;The first-level arbitration module is configured to perform priority order arbitration on the second messages or request write commands sent by each of the device-to-system DMA engine modules;
所述二级仲裁模块用于对经过一级仲裁的所述第二报文或所述请求写命令进行再次优先级排序仲裁;The second-level arbitration module is configured to perform another priority-sorting arbitration on the second message or the request write command that has undergone the first-level arbitration;
所述一级仲裁模块用于对各个所述系统到设备DMA引擎模块发送的请求读命令进行优先级排序仲裁,The first-level arbitration module is configured to perform priority order arbitration on the request read commands sent by each of the system-to-device DMA engine modules,
所述二级仲裁模块用于对经过一级仲裁的所述发送请求读命令进行再次优先级排序仲裁;The second-level arbitration module is used to perform another priority order arbitration on the send request read command that has undergone the first-level arbitration;
所述二级仲裁模块还用于对所述中断报文进行再次优先级排序仲裁。The second-level arbitration module is also used for re-arbitrating the interrupt packets with priority ordering.
可选地,还包括中断仲裁模块、中断产生模块;所述中断产生模块根据内部中断和/或外部中断生成中断请求,所述中断仲裁模块对所述中断产生模块生成的中断请求进行优先级排序仲裁,优先级排序仲裁后生成中断报文,Optionally, an interrupt arbitration module and an interrupt generation module are also included; the interrupt generation module generates interrupt requests according to internal interrupts and/or external interrupts, and the interrupt arbitration module prioritizes the interrupt requests generated by the interrupt generation module Arbitration, priority sorting arbitration to generate an interrupt message,
所述中断仲裁模块将所述中断报文发送至二级仲裁模块与所述第二报文一起参与优先级排序仲裁,所述中断报文经过二级仲裁模块优先级排序仲裁后发送至系统。The interrupt arbitration module sends the interrupt message to the secondary arbitration module to participate in priority sorting arbitration together with the second message, and the interrupt message is sent to the system after being prioritized and arbitrated by the secondary arbitration module.
可选地,还包括第一描述符寄存器,系统到设备DMA引擎模块还用于在获取所述第一报文的步骤前,所述系统到设备DMA引擎模块发起描述符信息,将所述描述符信息写入第一描述符寄存器,当收到系统返回的带描述符信息的读操作命令时,所述系统到设备DMA引擎模块根据所述描述符信息从系统获取所述第一报文。Optionally, it also includes a first descriptor register, and the system-to-device DMA engine module is also used to initiate descriptor information from the system-to-device DMA engine module before the step of obtaining the first message, and transfer the description The descriptor information is written into the first descriptor register, and when receiving a read operation command with descriptor information returned by the system, the system-to-device DMA engine module obtains the first message from the system according to the descriptor information.
可选地,还包括第二描述符寄存器,所述设备到系统DMA引擎模块还用于在通过仲裁模块发送所述第二报文给系统前,发起描述符信息,将所述描述符信息写入所述第二描述符寄存器,当收到系统返回的带描述符信息的写操作命令时,进行所述将所述第二报文发送至系统的操作。Optionally, it also includes a second descriptor register, and the device-to-system DMA engine module is also used to initiate descriptor information and write the descriptor information before sending the second message to the system through the arbitration module When receiving the write operation command with descriptor information returned by the system, perform the operation of sending the second message to the system.
本发明在芯片内部DMA模块设计多组DMA引擎,使其并行工作。从系统接收第一报文时,由接收报文分配模块负责解析接收报文的请求标识符ID,并完成向各个DMA引擎的分发,向系统发送第二报文时,由各个DMA引擎内部的一级仲裁控制内部的发送报文冲突,由二级仲裁模块控制多个DMA引擎发送报文的冲突。同样的,中断请求由各个DMA引擎内部产生,进而由中断仲裁模块进行仲裁控制,并生成中断报文,发送给仲裁模块进行仲裁控制。多组DMA引擎的发送报文多级仲裁控制和中断仲裁控制有效避免了海量报文传输的冲突问题,因此在高带宽传输系统,或者大数据处理系统中具有广阔的发展前景,具有很高的技术价值。The invention designs multiple sets of DMA engines in the DMA module inside the chip to make them work in parallel. When receiving the first message from the system, the receiving message distribution module is responsible for parsing the request identifier ID of the received message, and completes the distribution to each DMA engine, and when sending the second message to the system, the internal DMA engine The first-level arbitration controls the conflict of sending messages inside, and the second-level arbitration module controls the conflict of sending messages of multiple DMA engines. Similarly, interrupt requests are generated internally by each DMA engine, and then the interrupt arbitration module performs arbitration control, generates an interrupt message, and sends it to the arbitration module for arbitration control. The multi-level arbitration control and interrupt arbitration control of multiple groups of DMA engines can effectively avoid the collision problem of massive message transmission, so it has broad development prospects in high-bandwidth transmission systems or large data processing systems, and has a high potential technical value.
附图说明Description of drawings
图1是系统到设备DMA引擎模块进行接收数据操作时的操作流程图;Fig. 1 is the operation flowchart when the system receives data from the device DMA engine module;
图2是设备到系统DMA引擎模块进行发送数据操作时的操作流程图;Fig. 2 is the operation flowchart when the device sends data to the system DMA engine module;
图3是多个并行DMA引擎模块同时工作的装置图。Fig. 3 is a device diagram of multiple parallel DMA engine modules working simultaneously.
具体实施方式Detailed ways
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。The technical solution of the present invention will be described in more detail below with reference to the drawings and embodiments.
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。It should be noted that, if there is no conflict, the embodiments of the present invention and various features in the embodiments can be combined with each other, and all are within the protection scope of the present invention. In addition, although a logical order is shown in the flowcharts, in some cases the steps shown or described may be performed in an order different from that shown or described herein.
在阐述实施方式前,先阐述几个含义。Before explaining the implementation manner, several meanings are firstly explained.
第一报文指的是从系统发送到设备方向的报文;The first message refers to a message sent from the system to the device;
第二报文指的是从设备发送到系统方向的报文。The second message refers to a message sent from the device to the system.
DMA引擎模块包括系统到设备DMA引擎模块和设备到系统DMA引擎模块,DMA引擎模块接收数据是指从系统到设备方向传输数据,DMA引擎模块发送数据是指从设备到系统方向传输数据。The DMA engine module includes a system-to-device DMA engine module and a device-to-system DMA engine module. The DMA engine module receives data from the system to the device, and the DMA engine module sends data from the device to the system.
实施例一Embodiment one
结合图1和图3阐述系统到设备DMA引擎模块进行接收数据操作时的操作流程。The operation flow when the system-to-device DMA engine module receives data is described in conjunction with FIG. 1 and FIG. 3 .
一种直接内存存取DMA控制器的数据传输方法,应用于包含多个DMA引擎的DMA控制器,所述DMA引擎包括系统到设备DMA引擎及设备到系统DMA引擎,所述方法包括:A data transmission method of a direct memory access DMA controller, applied to a DMA controller comprising a plurality of DMA engines, the DMA engines comprising a system-to-device DMA engine and a device-to-system DMA engine, the method comprising:
当多个所述系统到设备DMA引擎通过仲裁机制向系统发送请求读命令时,系统将待发送给设备的第一报文或读操作命令发送到接收报文分配模块,所述接收报文分配模块解析所述第一报文或读操作命令的请求标识符,根据该请求标识将所述第一报文或读操作命令分发到相应的系统到设备DMA引擎;所述系统到设备DMA引擎获取所述第一报文后转发给相应设备;When multiple system-to-device DMA engines send request read commands to the system through the arbitration mechanism, the system sends the first message or read operation command to be sent to the device to the receiving message distribution module, and the receiving message distribution module The module parses the request identifier of the first message or the read operation command, and distributes the first message or the read operation command to the corresponding system-to-device DMA engine according to the request identifier; the system-to-device DMA engine acquires The first message is then forwarded to the corresponding device;
所述通过仲裁机制发送请求读命令的步骤包括:The step of sending a request read command through an arbitration mechanism includes:
对各个所述系统到设备DMA引擎发送的请求读命令进行优先级排序仲裁,对经过仲裁的所述命令进行再次优先级排序仲裁。Perform priority sorting arbitration on the request read commands sent by each system-to-device DMA engine, and perform priority sorting arbitration again on the commands that have been arbitrated.
从图3中可以看出多个系统到设备DMA引擎同时工作。It can be seen from Figure 3 that multiple system-to-device DMA engines work simultaneously.
首先由系统到设备DMA引擎发起请求读命令,为了避免同一个系统到设备同时发送多个请求读命令产生竞争冲突,而设立仲裁机制,经过一级仲裁后,优先级高的请求读命令可以优先通过,优先级低的请求读命令可以滞后发送。Firstly, the system-to-device DMA engine initiates the request read command. In order to avoid competition conflicts caused by sending multiple request read commands from the same system to the device at the same time, an arbitration mechanism is established. After the first-level arbitration, the request read command with high priority can take priority By this, low-priority request read commands can be sent with a delay.
优先级高的请求读命令经过一级仲裁后再进行二级仲裁,经过二级仲裁后进入到系统。二级仲裁的设立主要是为了避免不同的系统到设备DMA引擎向系统发出的请求读命令经过一级仲裁后仍然有同时发送而竞争冲突。The request read command with high priority goes through the first-level arbitration and then the second-level arbitration, and then enters the system after the second-level arbitration. The establishment of the second-level arbitration is mainly to avoid contention conflicts caused by simultaneous transmission of read commands sent by different system-to-device DMA engines to the system after the first-level arbitration.
在所述系统到设备DMA引擎获取所述第一报文的步骤前还包括:所述系统到设备DMA引擎发起描述符信息,将所述描述符信息写入第一描述符寄存器,当收到系统返回的带描述符信息的读操作命令时,所述系统到设备DMA引擎根据所述描述符信息从系统进行所述获取所述第一报文的步骤。Before the step of obtaining the first message by the system-to-device DMA engine, it also includes: the system-to-device DMA engine initiates descriptor information, writes the descriptor information into the first descriptor register, and when received When the system returns a read operation command with descriptor information, the system-to-device DMA engine performs the step of acquiring the first message from the system according to the descriptor information.
系统收到请求读命令后,系统发送第一报文和带数据的读操作响应命令,即带描述符信息的读操作命令。带描述符信息的读操作命令与第一报文首先到达报文分配模块,读操作命令或第一报文与系统到设备DMA引擎模块有一一对应的关系,通过请求标识符ID来区分,所述接收报文分配模块解析所述读操作命令或第一报文的请求标识符ID,将带描述符信息的读操作命令与第一报文分发到接收端,接收端与系统到设备DMA引擎模块相连,After the system receives the request read command, the system sends the first message and a read operation response command with data, that is, a read operation command with descriptor information. The read operation command with descriptor information and the first message arrive at the message distribution module first, and the read operation command or the first message has a one-to-one correspondence with the system-to-device DMA engine module, which is distinguished by the request identifier ID. The receiving message distribution module parses the read operation command or the request identifier ID of the first message, and distributes the read operation command with descriptor information and the first message to the receiving end, and the receiving end and the system to the device DMA The engine module is connected,
在系统到设备DMA引擎模块内部还有描述符寄存器,第一报文或带描述符信息的读操作命令通过接收端的寄存器接口进入到系统到设备DMA引擎模块内部的描述符寄存器,系统到设备DMA引擎模块发起描述符信息,将所述描述符信息写入第一描述符寄存器,当所述第一描述符寄存器收到系统返回的带描述符信息的读操作命令时,第一描述符寄存器将发送第一报文发送到系统到设备DMA引擎模块。There is also a descriptor register inside the system-to-device DMA engine module. The first message or a read operation command with descriptor information enters the descriptor register inside the system-to-device DMA engine module through the register interface of the receiving end. The system-to-device DMA The engine module initiates descriptor information, writes the descriptor information into the first descriptor register, and when the first descriptor register receives a read operation command with descriptor information returned by the system, the first descriptor register will Send the first packet to the system-to-device DMA engine module.
第一描述符寄存器也可以在系统到设备DMA引擎模块的外部。The first descriptor register can also be external to the system-to-device DMA engine module.
第一报文发送至系统到设备DMA引擎模块后,由系统到设备DMA转发给设备。After the first message is sent to the system-to-device DMA engine module, it is forwarded to the device by the system-to-device DMA.
由于有了仲裁机制和报文分配机制,多个系统到设备DMA引擎可同时发起读操作请求,因此可大大提高系统数据传输的效率。Due to the arbitration mechanism and message distribution mechanism, multiple system-to-device DMA engines can initiate read operation requests at the same time, so the efficiency of system data transmission can be greatly improved.
实施例二Embodiment two
结合图2和图3阐述设备到系统DMA引擎模块进行发送数据操作时的操作流程。The operation flow when the device-to-system DMA engine module transmits data is described with reference to FIG. 2 and FIG. 3 .
一种直接内存存取DMA控制器的数据传输方法,应用于包含多个DMA引擎的DMA控制器,所述DMA引擎包括系统到设备DMA引擎及设备到系统DMA引擎,所述方法包括:A data transmission method of a direct memory access DMA controller, applied to a DMA controller comprising a plurality of DMA engines, the DMA engines comprising a system-to-device DMA engine and a device-to-system DMA engine, the method comprising:
当多个所述设备到系统DMA引擎同时工作时,设备将待发送给系统的第二报文发送到每一个设备到系统DMA引擎,多个设备到系统DMA引擎通过仲裁机制向系统发送请求写命令,系统收到所述请求写命令后,将写操作命令发送到接收报文分配模块,所述接收报文分配模块解析所述写操作命令的请求标识符,根据所述标识符将所述写操作命令分发到相应的设备到系统DMA引擎;设备到系统DMA引擎收到所述写操作命令后,通过仲裁机制发送所述第二报文给系统。When multiple described device-to-system DMA engines work at the same time, the device sends the second message to be sent to the system to each device-to-system DMA engine, and multiple device-to-system DMA engines send requests to the system through an arbitration mechanism. command, after the system receives the request write command, it sends the write operation command to the receiving message distribution module, and the receiving message distribution module analyzes the request identifier of the write operation command, and sends the write operation command according to the identifier The write operation command is distributed to the corresponding device-to-system DMA engine; after receiving the write operation command, the device-to-system DMA engine sends the second message to the system through an arbitration mechanism.
可选地,所述通过仲裁机制发送第二报文给系统的步骤包括:Optionally, the step of sending the second message to the system through the arbitration mechanism includes:
对各个所述设备到系统DMA引擎发送的第二报文进行优先级排序仲裁;对经过仲裁的所述第二报文进行再次优先级排序仲裁;performing priority sorting arbitration on each of the second messages sent by the device-to-system DMA engine; performing priority sorting arbitration again on the arbitrated second messages;
所述通过仲裁机制向系统发送请求写命令的步骤包括:The step of sending a request write command to the system through an arbitration mechanism includes:
对各个所述设备到系统DMA引擎发送的请求写命令进行优先级排序仲裁;对经过仲裁的所述请求写命令进行再次优先级排序仲裁。performing priority order arbitration on the request write commands sent by each device-to-system DMA engine; and performing priority order arbitration again on the arbitrated request write commands.
首先,当设备到系统DMA引擎进行向系统方向发送数据操作时,首先由设备到系统DMA发起写操作请求,设备到系统DMA向一级仲裁模块发送请求写命令。First, when the device-to-system DMA engine is sending data to the system, the device-to-system DMA first initiates a write operation request, and the device-to-system DMA sends a request write command to the first-level arbitration module.
一级仲裁对请求写命令进行优先级仲裁,优先级高的可以优先发送,优先级低的滞后发送。The first-level arbitration performs priority arbitration on request write commands. Those with high priority can be sent first, and those with low priority can be sent later.
优先级高的请求写命令经过一级仲裁后再进行二级仲裁,进行再一次地优先级仲裁,经过二级仲裁后进入到系统。Request write commands with high priority go through the first-level arbitration and then go through the second-level arbitration, and then go through the priority arbitration again, and then enter the system after the second-level arbitration.
二级仲裁的设立主要是为了避免不同的设备到系统DMA向系统发出的请求写命令经过一级仲裁后仍然有同时发送而竞争冲突。The establishment of the second-level arbitration is mainly to avoid competition conflicts due to the simultaneous transmission of the write commands sent by different device-to-system DMAs to the system after the first-level arbitration.
可选地,还包括:根据内部中断和/或外部中断生成中断请求,对中断请求进行优先级仲裁,仲裁后生成中断报文,将所述中断报文发送给仲裁机制与所述第二报文一起再次进行优先级排序仲裁,仲裁后所述中断报文被发送到系统。Optionally, it also includes: generating an interrupt request according to an internal interrupt and/or an external interrupt, performing priority arbitration on the interrupt request, generating an interrupt message after the arbitration, and sending the interrupt message to the arbitration mechanism and the second report After the arbitration, the interrupt message is sent to the system.
内部中断指的是系统到设备DMA引擎、设备到系统DMA引擎、一级仲裁机制、系统产生的中断,当产生了多个中断请求时,多个中断请求就产生了竞争发送冲突,此时就需要对中断请求进行优先级仲裁,优先级高的可以优先发送至系统,优先级低的可以滞后发送。Internal interrupts refer to system-to-device DMA engines, device-to-system DMA engines, first-level arbitration mechanisms, and system-generated interrupts. When multiple interrupt requests are generated, multiple interrupt requests will cause contention and send conflicts. At this time, Priority arbitration is required for interrupt requests, those with high priority can be sent to the system first, and those with low priority can be sent later.
通过中断优先级仲裁可以实现中断优先级的仲裁,也可以并生成中断报文,优先级高的中断请求生成中断报文,所述中断报文发送到二级仲裁机制与设备待发送给系统的第二报文一起参与优先级仲裁,经过二级仲裁后发送到系统。The arbitration of the interrupt priority can be realized through the interrupt priority arbitration, and the interrupt message can also be generated. The interrupt request with high priority generates an interrupt message, and the interrupt message is sent to the secondary arbitration mechanism and the device to be sent to the system. The second message participates in priority arbitration together, and is sent to the system after secondary arbitration.
可选地,在发送所述第二报文给系统的步骤前还包括:所述设备到系统DMA引擎发起描述符信息,将所述描述符信息写入第二描述符寄存器,当收到系统返回的带描述符信息的写操作命令时,所述设备到系统DMA根据所述描述符信息进行发送所述第二报文数据报文给系统的步骤。Optionally, before the step of sending the second message to the system, it also includes: the device-to-system DMA engine initiates descriptor information, writes the descriptor information into the second descriptor register, and when receiving the system When the write operation command with descriptor information is returned, the device-to-system DMA performs the step of sending the second message data message to the system according to the descriptor information.
系统收到请求写命令后,系统发送带数据的写操作响应命令,即带描述符信息的写操作命令。带描述符信息的写操作命令首先到达报文分配模块,写操作命令与设备到系统DMA引擎模块有一一对应的关系,通过请求标识符ID来区分,所述接收报文分配模块解析所述读操作命令的请求标识符ID,将所述写操作命令分发到接收端,接收端与设备到系统DMA引擎模块相连,After the system receives the request write command, the system sends a write operation response command with data, that is, a write operation command with descriptor information. The write operation command with descriptor information first arrives at the message distribution module, and the write operation command has a one-to-one correspondence with the device to the system DMA engine module, which is distinguished by the request identifier ID, and the receiving message distribution module parses the The request identifier ID of the read operation command, the write operation command is distributed to the receiving end, and the receiving end is connected with the device to the system DMA engine module,
第二描述符寄存器可以在在设备到系统DMA引擎内或者在设备到系统DMA引擎外部;The second descriptor register may be within the device-to-system DMA engine or external to the device-to-system DMA engine;
带描述符信息的写操作命令通过接收端的寄存器接口进入到设备到系统DMA引擎模块内部的第二描述符寄存器,设备到系统DMA引擎模块发起描述符信息,将所述描述符信息写入描述符寄存器,设备到系统DMA引擎根据描述符信息将第二报文发送至系统。The write operation command with descriptor information enters the second descriptor register inside the device-to-system DMA engine module through the register interface of the receiving end, and the device-to-system DMA engine module initiates the descriptor information and writes the descriptor information into the descriptor The register, the device-to-system DMA engine sends the second message to the system according to the descriptor information.
第二描述符寄存器也可以在设备到系统DMA引擎模块外部。The second descriptor register can also be external to the device-to-system DMA engine module.
由于有了仲裁机制和报文分配机制,多个设备到系统DMA引擎可同时发起写操作请求,因此可大大提高系统数据传输的效率。Due to the arbitration mechanism and message distribution mechanism, multiple devices can initiate write operation requests to the system DMA engine at the same time, so the efficiency of system data transmission can be greatly improved.
当仅有一个DMA引擎工作时,其内部中断和外部中断的优先级控制在中断产生模块完成。When only one DMA engine is working, the priority control of its internal interrupt and external interrupt is completed in the interrupt generation module.
结合图3来阐述装置权利要求的实施例。Embodiments of device claims are explained in conjunction with FIG. 3 .
一种直接内存存取控制器的数据传输装置,包括:接收报文分配模块、仲裁模块、多个DMA引擎模块;A data transmission device of a direct memory access controller, comprising: a receiving message distribution module, an arbitration module, and multiple DMA engine modules;
所述多个DMA引擎模块包括多个系统到设备DMA引擎模块、多个设备到系统DMA引擎模块;The multiple DMA engine modules include multiple system-to-equipment DMA engine modules, and multiple equipment-to-system DMA engine modules;
所述系统到设备DMA引擎模块用于通过仲裁模块向系统发送请求读命令;接收系统通过接收报文分配模块发送过来的第一报文或读操作命令;当获取系统待发送给设备的第一报文时转发给相应设备;The system-to-device DMA engine module is used to send a request read command to the system through the arbitration module; the receiving system receives the first message or read operation command sent by the message distribution module; When the message is forwarded to the corresponding device;
所述接收报文分配模块用于从系统接收待发送给设备的第一报文或读操作命令,解析所述第一报文或读操作命令的请求标识符,根据该请求标识将所述第一报文或读操作命令分发到相应的系统到设备DMA引擎模块;The receiving message distribution module is used to receive the first message or read operation command to be sent to the device from the system, analyze the request identifier of the first message or read operation command, and allocate the first message or read operation command according to the request identifier. A message or read operation command is distributed to the corresponding system-to-device DMA engine module;
所述接收报文分配模块还用于接收系统发送到设备到系统DMA引擎模块的写操作命令,解析所述写操作命令的请求标识符,根据所述标识符将所述写操作命令分发到相应的设备到系统DMA引擎模块;The receiving message distribution module is also used for receiving the write operation command sent by the system to the device to the system DMA engine module, parsing the request identifier of the write operation command, and distributing the write operation command to the corresponding The device-to-system DMA engine module;
所述设备到系统DMA引擎模块用于通过仲裁模块向系统发送请求写命令;所述设备到系统DMA引擎模块还用于收到所述写操作命令后,通过仲裁模块发送所述第二报文给系统。The device-to-system DMA engine module is used to send a request write command to the system through the arbitration module; the device-to-system DMA engine module is also used to send the second message through the arbitration module after receiving the write operation command to the system.
所述仲裁模块用于对系统到设备DMA引擎模块发送至系统的请求读命令进行优先级仲裁;所述仲裁模块还用于对设备到系统DMA引擎模块发送至系统的请求写命令或第二报文进行优先级仲裁。The arbitration module is used to perform priority arbitration on the request read command sent to the system by the system-to-device DMA engine module; files for priority arbitration.
可选地,所述仲裁模块包括一级仲裁模块、二级仲裁模块;Optionally, the arbitration module includes a primary arbitration module and a secondary arbitration module;
所述一级仲裁模块用于对各个所述设备到系统DMA引擎模块发送的第二报文或请求写命令进行优先级排序仲裁;The first-level arbitration module is configured to perform priority order arbitration on the second messages or request write commands sent by each of the device-to-system DMA engine modules;
所述二级仲裁模块用于对经过一级仲裁的所述第二报文或所述请求写命令进行再次优先级排序仲裁;The second-level arbitration module is configured to perform another priority-sorting arbitration on the second message or the request write command that has undergone the first-level arbitration;
例如,一个设备到系统DMA引擎模块同时收到设备发来的第二报文A和第二报文B,两者报文生成了竞争冲突,一级仲裁模块对所述第二报文A和B进行优先级仲裁,假如A的优先级高于B的优先级,优先级高的报文A优先发送到二级仲裁模块。二级仲裁模块收到了报文A的同时又收到了另一个设备到系统DMA引擎模块发来的报文C,则此时需要对报文A和C进行优先级排序仲裁,假如A的优先级高于C的优先级,则报文A优先被第二仲裁模块发送到系统中。For example, a device-to-system DMA engine module receives the second message A and the second message B sent by the device at the same time, and the two messages generate a contention conflict, and the first-level arbitration module compares the second message A and the second message B B performs priority arbitration. If the priority of A is higher than that of B, the message A with higher priority is sent to the secondary arbitration module first. The second-level arbitration module receives message A and at the same time receives message C from another device-to-system DMA engine module. At this time, it needs to perform priority order arbitration on messages A and C. If the priority of A is If the priority is higher than C, message A is sent to the system by the second arbitration module first.
所述一级仲裁模块用于对各个所述系统到设备DMA引擎模块发送的请求读命令进行优先级排序仲裁,The first-level arbitration module is configured to perform priority order arbitration on the request read commands sent by each of the system-to-device DMA engine modules,
所述二级仲裁模块用于对经过一级仲裁的所述发送请求读命令进行再次优先级排序仲裁;The second-level arbitration module is used to perform another priority order arbitration on the send request read command that has undergone the first-level arbitration;
所述二级仲裁模块还用于对所述中断报文进行再次优先级排序仲裁;The secondary arbitration module is also used to perform priority ordering arbitration on the interrupt message again;
可选地,还包括中断仲裁模块、中断产生模块;所述中断产生模块根据内部中断和/或外部中断生成中断请求,所述中断仲裁模块对所述中断产生模块生成的中断请求进行优先级排序仲裁,优先级排序仲裁后生成中断报文,所述中断仲裁模块将所述中断报文发送至二级仲裁模块与所述第二报文一起参与优先级排序仲裁,所述中断报文经过二级仲裁模块优先级排序仲裁后发送至系统。Optionally, an interrupt arbitration module and an interrupt generation module are also included; the interrupt generation module generates interrupt requests according to internal interrupts and/or external interrupts, and the interrupt arbitration module prioritizes the interrupt requests generated by the interrupt generation module Arbitration, after the priority sorting arbitration, an interrupt message is generated, and the interrupt arbitration module sends the interrupt message to the secondary arbitration module to participate in the priority sorting arbitration together with the second message, and the interrupt message passes through two Arbitration module prioritizes and sends to the system after arbitration.
系统到设备DMA引擎模块、设备到系统引擎模块、一级仲裁模块、系统,都可以发生中断或中断请求。The system-to-device DMA engine module, the device-to-system engine module, the first-level arbitration module, and the system can all generate interrupts or interrupt requests.
系统的中断请求通过接收报文分配模块、接收端、传输到中断寄存器,中断寄存器将系统的中断请求发送到中断产生模块。The interrupt request of the system is transmitted to the interrupt register through the receiving message distribution module and the receiving end, and the interrupt register sends the interrupt request of the system to the interrupt generating module.
中断产生模块也可以接收外部的中断请求而生产中断请求消息。The interrupt generating module can also receive an external interrupt request and generate an interrupt request message.
当同时产生多个中断请求消息时,就需要对中断请求消息进行优先级排序仲裁,中断仲裁模块对中断请求进行优先级排序仲裁,优先级高的中断请求被生成了中断报文,When multiple interrupt request messages are generated at the same time, it is necessary to perform priority order arbitration on the interrupt request messages. The interrupt arbitration module performs priority order arbitration on the interrupt requests. The interrupt request with high priority is generated as an interrupt message.
例如,外部中断请求A,系统到设备DMA模块有一中断请求B,在中断产生模块同时生成了外部中断请求A和系统到设备DMA引擎模块的中断请求B,因为A与B同时发生,则需要中断仲裁模块进行优先级排序,假如A优先,则中断仲裁模块先生成A的中断请求报文,将中断请求报文A发送到第二仲裁模块,与设备发送到系统方向的第二报文进行优先级排序仲裁,如果中断请求报文A的优先级大于第二报文C的优先级,则中断请求报文A优先发送到系统中去。For example, the external interrupt request A, the system-to-device DMA module has an interrupt request B, and the interrupt generation module simultaneously generates the external interrupt request A and the system-to-device DMA engine module interrupt request B, because A and B occur at the same time, an interrupt is required The arbitration module performs priority sorting. If A is prioritized, the interrupt arbitration module first generates an interrupt request message for A, sends the interrupt request message A to the second arbitration module, and prioritizes the second message sent by the device to the system. Level sorting arbitration, if the priority of the interrupt request message A is greater than the priority of the second message C, then the interrupt request message A is sent to the system first.
可选地,还包括第一描述符寄存器,系统到设备DMA引擎模块还用于在获取所述第一报文的步骤前,所述系统到设备DMA引擎模块发起描述符信息,将所述描述符信息写入第一描述符寄存器,当收到系统返回的带描述符信息的读操作命令时,所述系统到设备DMA引擎模块根据所述描述符信息从系统获取所述第一报文。Optionally, it also includes a first descriptor register, and the system-to-device DMA engine module is also used to initiate descriptor information from the system-to-device DMA engine module before the step of obtaining the first message, and transfer the description The descriptor information is written into the first descriptor register, and when receiving a read operation command with descriptor information returned by the system, the system-to-device DMA engine module obtains the first message from the system according to the descriptor information.
第一描述符寄存器可以在系统到设备DMA引擎模块内也可以在系统到设备DMA引擎模块外。The first descriptor register can be inside the system-to-device DMA engine module or outside the system-to-device DMA engine module.
可选地,还包括第二描述符寄存器,所述设备到系统DMA引擎模块还用于在通过仲裁模块发送所述第二报文给系统前,发起描述符信息,将所述描述符信息写入所述第二描述符寄存器,当收到系统返回的带描述符信息的写操作命令时,进行所述将所述第二报文发送至系统的操作。Optionally, it also includes a second descriptor register, and the device-to-system DMA engine module is also used to initiate descriptor information and write the descriptor information before sending the second message to the system through the arbitration module When receiving the write operation command with descriptor information returned by the system, perform the operation of sending the second message to the system.
第二描述符寄存器可以在设备到系统DMA引擎模块内也可以在设备到系统DMA引擎模块外。The second descriptor register can be inside the device-to-system DMA engine module or outside the device-to-system DMA engine module.
本发明充分考虑计算机系统数据传输带宽和附件设备数据处理分析能力的特点,采用多组并行的DMA引擎技术,配合相应的多级仲裁控制技术,对系统到设备和设备到系统两个方向的DMA引擎分别实现多组并行工作,以此提高数据处理系统的传输带宽利用率,从而达到提升系统性能的目的。The present invention fully considers the characteristics of the data transmission bandwidth of the computer system and the data processing and analysis ability of the accessory equipment, adopts multiple sets of parallel DMA engine technology, cooperates with the corresponding multi-level arbitration control technology, and performs DMA in two directions from the system to the device and from the device to the system. The engines respectively implement multiple groups of parallel work, so as to improve the transmission bandwidth utilization rate of the data processing system, thereby achieving the purpose of improving system performance.
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。Those skilled in the art can understand that all or part of the steps in the above method can be completed by instructing relevant hardware through a program, and the program can be stored in a computer-readable storage medium, such as a read-only memory, a magnetic disk or an optical disk, and the like. Optionally, all or part of the steps in the foregoing embodiments may also be implemented using one or more integrated circuits. Correspondingly, each module/unit in the foregoing embodiments may be implemented in the form of hardware, or may be implemented in the form of software function modules. The present invention is not limited to any specific combination of hardware and software.
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。Of course, the present invention can also have other various embodiments, and those skilled in the art can make various corresponding changes and deformations according to the present invention without departing from the spirit and essence of the present invention, but these corresponding Changes and deformations should all belong to the protection scope of the claims of the present invention.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410012698.9A CN103714027B (en) | 2014-01-10 | 2014-01-10 | A kind of data transmission method of direct memory access controller and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410012698.9A CN103714027B (en) | 2014-01-10 | 2014-01-10 | A kind of data transmission method of direct memory access controller and device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714027A true CN103714027A (en) | 2014-04-09 |
CN103714027B CN103714027B (en) | 2016-04-20 |
Family
ID=50407021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410012698.9A Active CN103714027B (en) | 2014-01-10 | 2014-01-10 | A kind of data transmission method of direct memory access controller and device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714027B (en) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298628A (en) * | 2014-09-30 | 2015-01-21 | 中国电子科技集团公司第三十八研究所 | Data storage device arbitration circuit and method for concurrent access |
CN105573933A (en) * | 2014-10-17 | 2016-05-11 | 瑞昱半导体股份有限公司 | Processor and method for accessing to memory |
WO2016138817A1 (en) * | 2015-03-03 | 2016-09-09 | 中兴通讯股份有限公司 | Message moving method and apparatus |
CN109359069A (en) * | 2018-09-25 | 2019-02-19 | 济南浪潮高新科技投资发展有限公司 | A kind of data transmission method and device |
CN111401541A (en) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | Data transmission control method and device |
CN112199309A (en) * | 2020-10-10 | 2021-01-08 | 北京泽石科技有限公司 | Data reading method and device based on DMA engine and data transmission system |
CN112447227A (en) * | 2019-08-28 | 2021-03-05 | 美光科技公司 | Command tracking |
CN112749112A (en) * | 2020-12-31 | 2021-05-04 | 无锡众星微系统技术有限公司 | Hardware flow structure |
CN113742267A (en) * | 2021-09-07 | 2021-12-03 | 中国科学院计算技术研究所 | DMA communication system and method for RDMA communication equipment |
CN113900977A (en) * | 2021-09-16 | 2022-01-07 | 深圳致星科技有限公司 | DMA data transmission optimization method in federal learning |
CN114443529A (en) * | 2022-04-02 | 2022-05-06 | 苏州浪潮智能科技有限公司 | Direct memory access architecture, system, method, electronic device and medium |
CN115658571A (en) * | 2022-11-16 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | Data transmission method, device, electronic equipment and medium |
CN117749718A (en) * | 2023-12-07 | 2024-03-22 | 无锡众星微系统技术有限公司 | DMA transmission order-preserving processing method and device based on ACK and NOP mechanisms |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651119B2 (en) * | 1998-11-16 | 2003-11-18 | Lsi Logic Corporation | Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status |
CN1996272A (en) * | 2006-02-24 | 2007-07-11 | 威盛电子股份有限公司 | Method and Arbitration Circuit for Dynamically Using Direct Memory Access Channel |
US7324438B1 (en) * | 2003-02-13 | 2008-01-29 | Cisco Technology, Inc. | Technique for nondisruptively recovering from a processor failure in a multi-processor flow device |
US8214553B2 (en) * | 2010-02-01 | 2012-07-03 | Oracle America, Inc. | Virtualization of an input/output device for supporting multiple hosts and functions |
-
2014
- 2014-01-10 CN CN201410012698.9A patent/CN103714027B/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6651119B2 (en) * | 1998-11-16 | 2003-11-18 | Lsi Logic Corporation | Method for allocating priorities to plurality of DMA engines for processing data packets based on bus phase and transactions status |
US7324438B1 (en) * | 2003-02-13 | 2008-01-29 | Cisco Technology, Inc. | Technique for nondisruptively recovering from a processor failure in a multi-processor flow device |
CN1996272A (en) * | 2006-02-24 | 2007-07-11 | 威盛电子股份有限公司 | Method and Arbitration Circuit for Dynamically Using Direct Memory Access Channel |
US8214553B2 (en) * | 2010-02-01 | 2012-07-03 | Oracle America, Inc. | Virtualization of an input/output device for supporting multiple hosts and functions |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298628B (en) * | 2014-09-30 | 2017-12-29 | 中国电子科技集团公司第三十八研究所 | A kind of data storage arbitration circuit and referee method for concurrently accessing |
CN104298628A (en) * | 2014-09-30 | 2015-01-21 | 中国电子科技集团公司第三十八研究所 | Data storage device arbitration circuit and method for concurrent access |
CN105573933A (en) * | 2014-10-17 | 2016-05-11 | 瑞昱半导体股份有限公司 | Processor and method for accessing to memory |
CN105573933B (en) * | 2014-10-17 | 2018-10-09 | 瑞昱半导体股份有限公司 | Processor and the method for accessing memory |
WO2016138817A1 (en) * | 2015-03-03 | 2016-09-09 | 中兴通讯股份有限公司 | Message moving method and apparatus |
CN109359069A (en) * | 2018-09-25 | 2019-02-19 | 济南浪潮高新科技投资发展有限公司 | A kind of data transmission method and device |
CN112447227A (en) * | 2019-08-28 | 2021-03-05 | 美光科技公司 | Command tracking |
CN111401541A (en) * | 2020-03-10 | 2020-07-10 | 湖南国科微电子股份有限公司 | Data transmission control method and device |
CN112199309B (en) * | 2020-10-10 | 2022-03-15 | 北京泽石科技有限公司 | Data reading method and device based on DMA engine and data transmission system |
CN112199309A (en) * | 2020-10-10 | 2021-01-08 | 北京泽石科技有限公司 | Data reading method and device based on DMA engine and data transmission system |
CN112749112A (en) * | 2020-12-31 | 2021-05-04 | 无锡众星微系统技术有限公司 | Hardware flow structure |
CN112749112B (en) * | 2020-12-31 | 2021-12-24 | 无锡众星微系统技术有限公司 | Hardware flow structure |
CN113742267A (en) * | 2021-09-07 | 2021-12-03 | 中国科学院计算技术研究所 | DMA communication system and method for RDMA communication equipment |
CN113742267B (en) * | 2021-09-07 | 2023-10-27 | 中国科学院计算技术研究所 | A DMA communication system and method for RDMA communication equipment |
CN113900977A (en) * | 2021-09-16 | 2022-01-07 | 深圳致星科技有限公司 | DMA data transmission optimization method in federal learning |
CN114443529A (en) * | 2022-04-02 | 2022-05-06 | 苏州浪潮智能科技有限公司 | Direct memory access architecture, system, method, electronic device and medium |
US12277079B2 (en) | 2022-04-02 | 2025-04-15 | Suzhou Metabrain Intelligent Technology Co., Ltd. | Direct memory access architecture, system and method, electronic device, and medium |
CN115658571A (en) * | 2022-11-16 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | Data transmission method, device, electronic equipment and medium |
CN115658571B (en) * | 2022-11-16 | 2023-02-28 | 浪潮电子信息产业股份有限公司 | Data transmission method, device, electronic equipment and medium |
CN117749718A (en) * | 2023-12-07 | 2024-03-22 | 无锡众星微系统技术有限公司 | DMA transmission order-preserving processing method and device based on ACK and NOP mechanisms |
CN117749718B (en) * | 2023-12-07 | 2024-07-16 | 无锡众星微系统技术有限公司 | DMA transmission order-preserving processing method and device based on ACK and NOP mechanisms |
Also Published As
Publication number | Publication date |
---|---|
CN103714027B (en) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714027B (en) | A kind of data transmission method of direct memory access controller and device | |
CN108062285B (en) | A method of accessing NVMe storage device and NVMe storage device | |
CN109558344B (en) | A DMA transmission method suitable for network transmission and DMA controller | |
CN103888293B (en) | Data channel scheduling method of multichannel FC network data simulation system | |
CN106951379B (en) | A high-performance DDR controller and data transmission method based on AXI protocol | |
US10453503B2 (en) | Implementing DRAM row hammer avoidance | |
CN107220200B (en) | Dynamic priority based time-triggered Ethernet data management system and method | |
CN103559156B (en) | Communication system between a kind of FPGA and computing machine | |
WO2017000822A1 (en) | Transmission control method and device for direct memory access | |
CN106775434A (en) | A kind of implementation method of NVMe networkings storage, terminal, server and system | |
WO2015027806A1 (en) | Read and write processing method and device for memory data | |
CN101303677B (en) | Method, system and controller for direct memory access control | |
CN107145311B (en) | IO data processing method and system | |
CN106933760A (en) | A kind of dma controller and data uploading method based on AXI protocol | |
WO2016008338A1 (en) | I/o request processing method and storage system | |
CN104765701B (en) | Data access method and equipment | |
CN104753813B (en) | The method of DMA transfer message | |
US9239804B2 (en) | Back-off mechanism for a peripheral page request log | |
CN103902472B (en) | Internal storage access processing method, memory chip and system based on memory chip interconnection | |
US8533377B2 (en) | System and method for allocating transaction ID in a system with a plurality of processing modules | |
CN106681948A (en) | Logic control method and device of programmable logic device | |
CN110209358A (en) | A kind of NVMe equipment storage speed method for improving based on FPGA | |
WO2015188495A1 (en) | Data transmission method and device | |
CN103365782A (en) | Memory management method | |
CN110928818B (en) | Direct memory access, processor and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |