WO2019084789A1 - Direct memory access controller, data reading method, and data writing method - Google Patents

Direct memory access controller, data reading method, and data writing method Download PDF

Info

Publication number
WO2019084789A1
WO2019084789A1 PCT/CN2017/108644 CN2017108644W WO2019084789A1 WO 2019084789 A1 WO2019084789 A1 WO 2019084789A1 CN 2017108644 W CN2017108644 W CN 2017108644W WO 2019084789 A1 WO2019084789 A1 WO 2019084789A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
read
path
unit
write
Prior art date
Application number
PCT/CN2017/108644
Other languages
French (fr)
Chinese (zh)
Inventor
任子木
韩彬
Original Assignee
深圳市大疆创新科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 深圳市大疆创新科技有限公司 filed Critical 深圳市大疆创新科技有限公司
Priority to PCT/CN2017/108644 priority Critical patent/WO2019084789A1/en
Priority to CN201780010826.8A priority patent/CN108701102A/en
Publication of WO2019084789A1 publication Critical patent/WO2019084789A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Definitions

  • the present application relates to the field of data processing, and in particular, to a direct memory access (DMA) controller, a data reading method, and a data writing method.
  • DMA direct memory access
  • the chip typically includes a DMA controller and a data processing unit for data processing.
  • the functions of the DMA controller on the market are relatively simple, and the main function is to complete the data movement operation.
  • the chip usually sets a preprocessing module in the data processing unit to complete the unpacking operation of the image data.
  • the unpacking operation is to unpack the compactly stored image data in the memory into a format that is easy to use by the data processing unit.
  • unpacking image data in 8-bit (bit), 10-bit, 12-bit or 16-bit bit width compact storage in DDR is Stored in regularity in 16-bit or 32-bit width.
  • the unpacking operation is performed by the preprocessing module of the data processing unit. Therefore, the DMA controller moves the data and the preprocessing module unpacks the data in series. In other words, if you want to process a piece of image data, you need the DMA controller to complete the data transfer first, and then the pre-processing module can complete the unpacking operation, which cannot be performed in parallel. This makes the chip process data very slow.
  • the present application provides a direct memory access controller, a data reading method, and a data writing method, which can improve data processing speed and improve chip performance.
  • a direct memory access DMA controller comprising a control path and a read data path, the control path comprising a read control unit, the read control unit for generating a read control And generating, by the read control signal, the read data path to read first data from an external memory via an external bus; the read data path includes an unpacking unit, the unpacking unit is configured to The data is unpacked, and the read data path writes the unpacked first data to the internal storage unit via the internal bus.
  • the first aspect of the DMA controller sets a control path and a read data path therein, and the read data path reads data from the external memory while unpacking the data through the unpacking unit, so that the DMA controller moves the data.
  • the unpacking operation is performed, and the two processes in parallel can improve the data processing speed and improve the performance of the chip.
  • a direct memory access DMA controller comprising a control path and a write data path, the control path comprising a write control unit for generating a write control signal and by the write control Signaling the write data path to read second data from an internal memory unit via an internal bus; the write data path includes a packing unit, the packing unit for packaging the second data, the write data path The packed second data is written to the external memory via the external bus.
  • the DMA controller of the second aspect sets the control path and the write data path therein, and writes the data path to write data to the external memory, and packs the data through the packing unit, so that the DMA controller performs data transfer simultaneously.
  • the packaging operation which is processed in parallel, can improve the data processing speed and improve the performance of the chip.
  • a data reading method is provided, the method being performed by a direct memory access DMA controller, the DMA controller comprising a control path and a read data path, the control path comprising a read control unit, the reading
  • the data path includes an unpacking unit, the method comprising: the read control unit generating a read control signal, and controlling, by the read control signal, the read data path to read first data from an external memory via an external bus; The packet unit unpacks the first data, and the read data path writes the unpacked first data to the internal storage unit via the internal bus.
  • a data writing method is provided, the method being performed by a direct memory access DMA controller, the DMA controller comprising a control path and a write data path, the control path comprising a write control unit, the writing
  • the data path includes a packing unit, the method comprising: the write control unit generating a write control signal, and controlling, by the write control signal, the write data path to read second data from an internal storage unit via an internal bus; The unit packs the second data, and the write data path writes the packaged second data to the outside via an external bus Save.
  • an integrated circuit comprising the DMA controller of the first aspect of the invention and/or the DMA controller of the second aspect.
  • a mobile device comprising the DMA controller of the first aspect of the invention and/or the DMA controller of the second aspect.
  • FIG. 1 is a schematic block diagram of a DMA controller of one embodiment of the present application.
  • FIG. 2 is a schematic diagram of a data unpacking operation of an embodiment of the present application.
  • FIG. 3 is a schematic diagram of an implementation of a descriptor cache in accordance with an embodiment of the present application.
  • FIG. 4 is a schematic diagram of a descriptor format of an embodiment of the present application.
  • FIG. 5 is a schematic block diagram of a DMA controller of another embodiment of the present application.
  • FIG. 6 is a schematic block diagram of a DMA controller of another embodiment of the present application.
  • FIG. 7 is a schematic flowchart of a data reading method according to an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a data writing method according to an embodiment of the present application.
  • Embodiments of the present application provide a DMA controller having a read data function.
  • 1 is a schematic block diagram of a DMA controller 100 in accordance with one embodiment of the present application.
  • DMA controller 100 includes a control path 110 and a read data path 120.
  • the control path 110 can include a read control unit 112 for generating a read control signal and controlling the read data path 120 to read the first data from the external memory 220 via the external bus 210 by a read control signal.
  • the read data path 120 can include a depacketizing unit 122 for unpacking the first data, and the read data path 120 writing the unpacked first data to the internal storage unit 240 via the internal bus 230.
  • the external bus 210 may be an Advanced eXtensible Interface (AXI) bus, or may be a bus specified by other protocols.
  • the external memory 220 can be double data rate SDRAM (Double Data Rate SDRAM, DDR SDRAM), or simply DDR memory, where SDRAM is a Synchronous Dynamic Random Access Memory.
  • the internal bus 230 can be a crossbar switch (CROSSBAR) bus.
  • CROSSBAR crossbar switch
  • the first embodiment of the present application can read the first data from the external memory 220 through the external bus 210 through the external read unit 126 of the read data path 120 , which is not limited in this embodiment of the present application.
  • the DMA controller of the embodiment of the present application sets a control path and a read data path therein, and the read data path reads data from the external memory while unpacking the data through the unpacking unit, so that the DMA controller moves the data. At the same time, the unpacking operation is performed, and the two are processed in parallel, which can improve the data processing speed and improve the performance of the chip.
  • the downstream unit of the DMA controller does not need to unpack the original data, which increases the flexibility of the downstream unit of the DMA controller, so that the DMA controller can be used in A variety of different application scenarios, such as big-end storage, small-end storage, and so on.
  • the read data path 120 may further include a first clock processing unit 124 for performing asynchronous first in first out (FIFO) on the first data read by the read data path 120.
  • the cross-clock domain processing, the unpacking unit 122 is specifically configured to unpack the first data processed by the FIFO across the clock domain.
  • the first clock processing unit 124 can use FIFO technology to synchronize data originating from different clock domains.
  • the first clock processing unit 124 may perform the cross-clock domain processing of the FIFO from the external memory 220 (for example, may be DDR memory), and then send it to the unpacking unit 122.
  • the data especially the pixel value of the image, is generally stored compactly in the DDR memory. Images of different bit width pixels are stored in different formats in DDR memory.
  • the unpacking unit 122 of the embodiment of the present application adds 0 to the high bit of the original pixel value and expands the pixel bit width to 16 bit or 32 bit. That is, the unpacking unit 122 needs to perform conversion of the data format.
  • the unpacking unit 122 may unpack the first data according to the unpacking mode preset by the system.
  • the unpacking mode supported by the embodiments of the present application may include a direct mode, a low word mode, a low bit halfword mode, a parity column split mode, a one-bank copy mode, a high word mode, a high halfword mode, and two blocks ( At least one of two-bank replication modes, and the embodiment of the present application Not limited to this.
  • the direct mode is to output the data as it is without formatting.
  • the low word mode uses a low word of one word (including 32 bits) to store one pixel value and a high bit to zero. In this way, 8-bit, 10-bit, 12-bit, and 16-bit wide pixels can be expanded to 32 bits.
  • the lower halfword mode uses a lower half of the word to store one pixel value and a high bit to zero. In this way, 8-bit, 10-bit, and 12-bit wide pixels can be expanded to 16 bits.
  • the high word mode uses a word high bit to store a pixel value and a low bit zero.
  • the upper halfword mode uses a high word of half a word to store one pixel value and a low bit to zero.
  • each bank is a group, and the data is copied into 16 copies, and each data is placed in one bank.
  • every two banks are grouped, and the data is copied into 8 copies, and each data is placed in two banks.
  • the parity column split mode is to divide the data into two parts, which are respectively stored in the even bank and the odd bank. For example, the lower 8 bits of data are stored in the even bank, and the upper 8 bits of data are stored in the odd bank. This is not limited.
  • the pixel width that can be supported by the embodiment of the present application may include 8 bits, 10 bits, 12 bits, and 16 bits, and is not limited thereto.
  • FIG. 2 is a schematic diagram of a data unpacking operation of an embodiment of the present application.
  • the data is stored in the external memory in a 12-bit pixel format, including data of pixels 0-pixel 9.
  • the low-order half-word mode is used for unpacking.
  • each pixel is 16 bits, and the high bit is inserted with 0 to fill.
  • the Most Significant Bit (MSB) and the Least Significant Bit (LSB) of the data before and after unpacking are shown in Figure 2, respectively. Therefore, the embodiment of the present application does not need to store image data including a large amount of redundant information (for example, the data after unpacking in FIG. 2) in the external memory, but stores the data before the unpacking of FIG. 2, thereby saving memory bandwidth. .
  • the unpacking unit 122 may include a 3-stage pipeline.
  • the first level pipeline can unpack data of different bit width pixels (for example, the first data) into a certain bit width, for example, 16 bits.
  • the input to the first level pipeline is 128 bits of data.
  • one beat data includes 16 pixels; for 10-bit pixels, one beat data includes 12 pixels; for 12-bit pixels, one beat data includes 10 pixels, and the first-stage pipeline unpacks data, and the data width is wide. It is 16bit.
  • the second level pipeline can padding the data.
  • the padding operation expands a tile having a width and height of less than 256 ⁇ 256 into a tile of 256 ⁇ 256, wherein the extended region complements 0 pixels.
  • the third-level pipeline can complete half-word to word conversion and low-to-high conversion. Because the first The data after the unpacking of the first-level pipeline is the low-order halfword mode. If the current unpacking mode requires other modes, the data format needs to be converted.
  • the unpacking unit includes a level 3 pipeline, which is merely exemplary, and is not intended to limit the embodiments of the present application.
  • control path 110 may further include a data control unit 114.
  • the data control unit 114 can be configured to read a first descriptor of the first data, and the read control unit 112 is specifically configured to generate a read control signal according to the first descriptor.
  • the data control unit 114 may read the first descriptor of the first data from the core 260 via the core bus 250.
  • the descriptor of the embodiment of the present application may be used to indicate a priority, where there are multiple situations to be considered.
  • the first descriptor may include a first field, and the first field is used to indicate that the type of the first data is an immediate number, 1D. Data or 2D data.
  • the immediate priority is greater than the priority of one-dimensional (1D) data and two-dimensional (2D) data.
  • the amount of data of 1D data and 2D data transmitted by the 1D task and the 2D task are relatively large.
  • the DMA controller of the embodiment of the present application can improve the execution efficiency of the immediate data.
  • the DMA controller of the embodiments of the present application can support an outstanding high efficiency data receiving structure.
  • the data receiving structure can make full use of the outstanding resources to achieve efficient data reception in the case of a small cache.
  • the data receiving structure has 8 IDentifiers (IDs) 0 to 7 that can be utilized.
  • IDs IDentifiers
  • the data receiving structure maintains a register file. Each row of the register file corresponds to an ID, and stores a cache storage address corresponding to the current ID.
  • the DMA controller reads back valid data from the external memory via the external bus, according to the ID of the data, the corresponding register file is queried, the cache address of the data is obtained, and then the data is buffered to the corresponding address. At the same time, the address data in the register file is incremented by one. If the data currently read back is the last data of its burst, the corresponding register of the ID is set to 0 for use by other transmissions.
  • DMA controller supports outstanding 8, if there is currently an empty ID, you can make Use this ID to read and write immediate data.
  • the amount of immediate data is usually small, for example 128 bits, and only a single floating point operation is required to complete the transfer.
  • the DMA controller of the embodiment of the present application can greatly improve the utilization of the oustanding resource under the premise of a small cache resource consumption, thereby improving the reading efficiency of the DMA controller.
  • the first descriptor may include a second field, and the second field is used to indicate the priority of the task corresponding to the first data.
  • the description of each 1D data or the descriptor of the 2D data may be configured with a 3-bit second field for indicating the priority of the data task.
  • the priority can be divided into 8 levels. The control path selects the task with the highest priority from the descriptor cache for execution. If multiple tasks have the same priority, the task that is first pushed into the descriptor cache is selected for execution.
  • the data control unit 114 may include a register for registering the priority of the task corresponding to the first data in the first descriptor, and the read control unit 112 is configured to generate the read control signal according to the priority in the register.
  • a specific implementation of the descriptor cache can be as follows. 3 is a schematic diagram of one implementation of a descriptor cache. As shown in Figure 3, a register bank is set up. The set of registers has a total of 7 rows, and each row of the register corresponds to a descriptor in the descriptor cache.
  • the 0th line corresponds to the descriptor of the task corresponding to the data of the addresses 0 to 9
  • the 1st line corresponds to the descriptor of the task corresponding to the data of the addresses 10 to 19, and so on.
  • Each row of the register may include 3 fields (field A, field B, and field C) total 7 bits, and field A (used field) occupies 1 bit, which is used to indicate whether the storage space of the row of the register has a descriptor, and the field A value is 1 indicates that the storage space of the row of the register has a descriptor.
  • Field B occupies 3 bits, indicating the absolute value of the priority carried in the descriptor of the data (ie, the value of the pri1 field is assigned by the pri field of the descriptor header).
  • Field C occupies 3 bits and is used to indicate the order in which tasks are pushed into the descriptor cache, ensuring that tasks of the same priority are first-in, first-out.
  • the value of the pri2 field of the descriptor is set to the register variable main, and the value of the pri2 field is decremented by 1.
  • the value of the pri2 field of the remaining descriptor is set. plus 1.
  • the first descriptor of the embodiment of the present application may include a third field, where the third field is used to indicate an unpacking mode of the first data.
  • FIG. 4 is a schematic diagram of a descriptor format of an embodiment of the present application.
  • This descriptor is a descriptor of 2D data.
  • the first halfword (16bit) of the descriptor is the header dscrp_head of the descriptor, which indicates the mode mode[1:0] of the data (dscrp_head[15:14]), the priority of the task corresponding to the data.
  • the mode mode of the data may be an immediate data, 1D data, or 2D data.
  • the mode of the data in this example is 2D data.
  • the unpacking mode unpack_mode may be one of the aforementioned various unpacking modes.
  • the transfer direction direc is the read direction or the write direction.
  • Dscrp_id[11:0] is used to indicate the ID of this descriptor.
  • Ext_addr (including ext_addr[15:0] and ext_addr[31:16]) is used to indicate the data address of the external memory.
  • Trans_len[15:0] is used to indicate the transmission length.
  • Toggle_num[15:0] indicates the number of times the current operation needs to be repeated.
  • Trans_width[15:0] and trans_stride[15:0] are used to indicate the 2D area. These two parameters are used to calculate the next start address when wrapping.
  • Port_cfg1[15:0] and port_cfg2[15:0] correspond to the number of two internal memory locations, respectively, for storing the upper 8 bits and lower 8 bits of the data.
  • the three parameters padding_en[0], vld_data_height[6:0], and vld_data_width[6:0] are used for the padding operation.
  • padding_en is 1 for padding
  • 0 is for padding
  • vld_data_height[6: 0] and vld_data_width[6:0] are used to define the height and width of the unfilled area.
  • the DMA controller of the embodiment of the present application may further include a write data path, and the control path may further include a write control unit, where the write control unit is configured to generate a write control signal, and control the write data path via the internal bus through the write control signal.
  • the second data is read from the internal storage unit; the write data path may include a packing unit, the packing unit is configured to package the second data, and the write data path writes the packed second data to the external memory via the external bus.
  • the write data path may further include a second clock processing unit, configured to perform cross-clock domain processing of the asynchronous FIFO on the packed second data after the packing unit packages the second data.
  • a second clock processing unit configured to perform cross-clock domain processing of the asynchronous FIFO on the packed second data after the packing unit packages the second data.
  • FIG. 5 is a schematic block diagram of a DMA controller 500 of another embodiment of the present application.
  • the DMA controller 500 includes a control path 510 and a write data path 520.
  • the control path 510 can include a write control unit 512 for generating a write control signal and controlling the write data path 520 to read the second data from the internal memory unit 240 via the internal bus 230 via a write control signal.
  • the write data path 520 can include a packing unit 522 for packaging the second data, and the write data path 520 writing the packed second data to the external memory 220 via the external bus 210.
  • the embodiment of the present application may specifically write the packaged second data to the external memory 220 via the external bus 210 through the external write unit 526 of the write data path 520, which is not limited in this embodiment of the present application. .
  • the DMA controller of the embodiment of the present application sets a control path and a write data path therein, and the write data path writes data to the external memory while packing the data through the packing unit, so that the DMA controller moves the data at the same time.
  • the packaging operation is performed in parallel, which can improve the data processing speed and improve the performance of the chip.
  • the upstream unit of the DMA controller does not need to pack the original data, which increases the flexibility of the upstream unit of the DMA controller, so that the DMA controller can be used in many different ways. Application scenario.
  • the write data path 520 may further include a second clock processing unit 524, configured to perform asynchronous FIFO on the packaged second data after the packing unit 522 packages the second data.
  • a second clock processing unit 524 configured to perform asynchronous FIFO on the packaged second data after the packing unit 522 packages the second data.
  • Cross-clock domain processing configured to perform asynchronous FIFO on the packaged second data after the packing unit 522 packages the second data.
  • the packaging unit 522 is specifically configured to package the second data according to the preset packaging mode.
  • the packing modes supported by the embodiments of the present application may include a direct mode, a low word mode, a low halfword mode, a parity column split mode, a one-bank copy mode, a high word mode, a high halfword mode, and At least one of the two-bank copy modes, and the embodiment of the present application is not limited thereto.
  • the working principle and the flow of the unpacking unit 522 of the embodiment of the present application may be similar to the principle of the unpacking unit of the embodiment of the present application, and the process is reversed, and details are not described herein.
  • control path 510 may further include a data control unit 514.
  • the data control unit 514 is configured to read a second descriptor of the second data, and the write control unit 512 is specifically configured to generate a write control signal according to the second descriptor.
  • the data control unit 514 can read the second descriptor of the second data from the core 260 via the core bus 250.
  • the second descriptor may include a first field, where the first field is used to indicate that the type of the second data is immediate, one-dimensional 1D data, or two-dimensional 2D data.
  • the second descriptor may include a second field, where the second field is used to indicate a priority of the task corresponding to the second data.
  • the second descriptor may include a third field, where the third field is used to indicate a packing mode of the second data (the third field corresponding to the first descriptor is used to indicate an unpacking mode of the first data).
  • the format of the second descriptor of the embodiment of the present application may be the same as or the same as the format of the first descriptor. like.
  • the data control unit 514 may include a register for registering priorities of tasks corresponding to the second data in the second descriptor, and the write control unit 512 is configured to generate according to priorities in the registers. Write control signals.
  • the DMA controller 500 may further include a read data path, and the control path may further include a read control unit, and the read control unit may be configured to generate a read control signal and control the read data path via the read control signal.
  • the external bus reads the first data from the external memory; the read data path may include an unpacking unit, the unpacking unit may be configured to unpack the first data, and the read data path writes the unpacked first data via the internal bus Internal storage unit.
  • the read data path may further include a first clock processing unit, configured to perform cross-clock domain processing of the asynchronous FIFO on the first data read by the read data path, where the unpacking unit is specifically configured to perform The first data processed by the FIFO across the clock domain is unpacked.
  • a first clock processing unit configured to perform cross-clock domain processing of the asynchronous FIFO on the first data read by the read data path, where the unpacking unit is specifically configured to perform The first data processed by the FIFO across the clock domain is unpacked.
  • the registers in the data control unit may register the priority of the task corresponding to the read data (eg, the first data) and register the write to be written.
  • the priority of the task corresponding to the incoming data eg second data.
  • the read data and the write data can share the same register.
  • the read data and the write data may also be set differently, which is not limited in this embodiment of the present application.
  • FIG. 6 is a schematic block diagram of a DMA controller 600 of another embodiment of the present application. As shown in FIG. 6, DMA controller 600 includes control path 610, read data path 620, and write data path 630.
  • Control path 610 can include read control unit 612 and write control unit 614.
  • the read control unit 612 is configured to generate a read control signal and control the read data path 620 to read data from the external memory 220 via the external bus 210 by a read control signal.
  • the write control unit 614 is configured to generate a write control signal and control the write data path 630 to read data from the internal memory unit 240 via the internal bus 230 by a write control signal.
  • Control path 610 can also include a data control unit 616.
  • Data control unit 616 can be used to read descriptors of the data.
  • the data control unit 616 can include an interface (crf_if) module, which is an interface module of the data control unit 616 and the core bus 250.
  • the data control unit 616 may also include a read immediate data cache (im_cache) module and a descriptor format check. (dscrp_check) module and descriptor distribution (dscrp_distribute) module.
  • the im_cache module is a module for caching immediate data.
  • the dscrp_check module is a module for checking the descriptor format.
  • the dscrp_distribute module distributes the descriptor to the read immediate task cache (fifo_im_r) module, the write immediate task cache (fifo_im_w) module, the read 1D2D task cache (pri_1d2d_r) module, and the write 1D2D task cache (pri_1d2d_w) module according to the contents of the descriptor.
  • the fifo_im_r module is used to cache read immediate tasks
  • the fifo_im_w module is used to cache write immediate tasks
  • the pri_1d2d_r module is used to cache read 1D tasks and 2D tasks, and has task priority function.
  • the pri_1d2d_w module is used to cache write 1D tasks and 2D tasks. And has a task priority function.
  • the read control unit 612 generates a read control signal based on the descriptors in the fifo_im_r module or the pri_1d2d_r module.
  • the write control unit 614 generates a write control signal based on the descriptors in the fifo_im_w module or the pri_1d2d_w module.
  • the read data path 620 can include the external read unit 626 reading data from the external memory 220 via the external bus 210; the read data path 620 can also include a first clock processing unit 624 for asynchronously FIFOing the data read by the read data path 620.
  • the cross-clock domain processing; the read data path 620 further includes an unpacking unit 622 for writing data to the internal storage unit 240 via the internal bus 230 after unpacking the data.
  • the write data path 630 can include a packing unit 632 for packaging data read from the internal storage unit 240 via the internal bus 230 by the write data path 630; the write data path 630 can also include a second clock processing unit 634 for The packed data of the packing unit 632 performs cross-clock domain processing of the asynchronous FIFO; the write data path 630 may further include an external write unit 626 for writing the packed and cross-clock domain processed data to the external memory 220 via the external bus 210.
  • DMA controller 600 shown in FIG. 6 is only an example of the embodiment of the present application and is not limited thereto.
  • the DMA controller of the embodiment of the present application has been described above, and the data reading method and the data writing method corresponding thereto are respectively described in detail below.
  • FIG. 7 is a schematic flowchart of a data reading method 700 according to an embodiment of the present application.
  • Method 700 can be performed by a DMA controller that includes a control path and a read data path, the control path including a read control unit, and the read data path including an unpacking unit. As shown in FIG. 7, method 700 can include the following steps.
  • the read control unit generates a read control signal, and controls the read data path to read the first data from the external memory via the external bus through the read control signal.
  • the unpacking unit unpacks the first data.
  • the read data path writes the unpacked first data to the internal storage unit via the internal bus.
  • the read data path reads data from the external memory and unpacks the data through the unpacking unit, so that the DMA control
  • the device performs the unpacking operation while the data is being moved, and the two processes in parallel can improve the data processing speed and improve the performance of the chip.
  • the S720 unpacking unit unpacking the first data may include: the unpacking unit unpacks the first data according to the preset unpacking mode.
  • the read data path may further include a first clock processing unit
  • the method 700 may further include: the first clock processing unit performs asynchronous first-in first-out FIFO on the first data read by the read data path.
  • the clock domain processing; the S720 unpacking unit unpacking the first data may include: the unpacking unit unpacking the first data after performing the cross-clock domain processing of the FIFO.
  • control path may further include a data control unit
  • the method 700 may further include: the data control unit reads the first descriptor of the first data; S710, the read control unit generates the read control signal, which may include The read control unit generates a read control signal based on the first descriptor.
  • the first descriptor includes a first field, where the first field is used to indicate that the type of the first data is immediate, one-dimensional 1D data, or two-dimensional 2D data.
  • the first descriptor includes a second field, where the second field is used to indicate a priority of the task corresponding to the first data.
  • the first descriptor includes a third field, where the third field is used to indicate an unpacking mode of the first data.
  • the data control unit may include a register
  • the method 700 may further include: registering a priority of a task corresponding to the first data in the first descriptor; and the read control unit generates a read according to the first descriptor.
  • the control signal may include: the read control unit generates a read control signal according to a priority in the register.
  • the DMA controller further includes a write data path
  • the control path may further include a write control unit
  • the write data path may include a packing unit
  • the method 700 may further include: the write control unit generates a write control signal, and The write data path is controlled by the write control signal to read the second data from the internal memory unit via the internal bus; the packing unit packs the second data, and the write data path writes the packed second data to the external memory via the external bus.
  • the write data path may further include a second clock processing unit
  • the method 700 may further include: after the second clock processing unit packs the second data, the second clock processing unit performs the packaged second data.
  • FIG. 8 is a schematic flowchart of a data writing method 800 according to an embodiment of the present application.
  • Method 800 can be performed by a DMA controller that includes a control path including a write control unit and a write data path including a packing unit, and method 800 can include the following steps.
  • the write control unit generates a write control signal, and controls the write data path to read the second data from the internal storage unit via the internal bus through the write control signal.
  • the packaging unit packages the second data.
  • the write data path writes the packed second data to the external memory via an external bus.
  • the write data path writes data to the external memory, and packs the data through the packing unit, so that the DMA controller is
  • the data is moved at the same time as the packaging operation, and the two are processed in parallel, which can improve the data processing speed and improve the performance of the chip.
  • the S820 packaging unit packing the second data may include: the packaging unit packing the second data according to the preset packaging mode.
  • the write data path may further include a second clock processing unit
  • the method 800 may further include: after the second clock processing unit packs the second data, the second clock processing unit performs the packed second data.
  • control path may further include a data control unit
  • the method 800 may further include: the data control unit reads the second descriptor of the second data; and the S810 write control unit generates the write control signal, which may include: The write control unit generates a write control signal based on the second descriptor.
  • the second descriptor includes a first field, where the first field is used to indicate that the type of the second data is immediate, one-dimensional 1D data, or two-dimensional 2D data.
  • the second descriptor includes a second field, where the second field is used to indicate a priority of the task corresponding to the second data.
  • the second descriptor includes a third field, where the third field is used to indicate a packing mode of the second data.
  • the data control unit may include a register
  • the method 800 may further include: registering a priority of a task corresponding to the second data in the second descriptor; and writing control
  • the unit generates a write control signal according to the second descriptor, and may include: the write control unit generates a write control signal according to the priority in the register.
  • the DMA controller may further include a read data path
  • the control path may further include a read control unit
  • the read data path may include a unpacking unit
  • the method 800 may further include: the read control unit generates a read control signal And controlling the read data path to read the first data from the external memory via the external bus through the read control signal; the unpacking unit unpacks the first data, and the read data path writes the unpacked first data to the internal via the internal bus Storage unit.
  • the read data path may further include a first clock processing unit
  • the method 800 may further include: the first clock processing unit performs asynchronous first-in first-out FIFO on the first data read by the read data path.
  • the clock domain processing; the unpacking unit unpacking the first data may include: the unpacking unit unpacking the first data after performing the cross-clock domain processing of the FIFO.
  • the embodiment of the present application further provides an integrated circuit including at least one of the DMA controller 100, the DMA controller 500, and the DMA controller 600 of the embodiment of the present application.
  • the integrated circuit of the embodiment of the present application may be an Application Specific Integrated Circuit (ASIC) or a Field-Programmable Gate Array (FPGA).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • the embodiment of the present application further provides a computing chip, which includes at least one of the DMA controller 100, the DMA controller 500, and the DMA controller 600 of the embodiment of the present application.
  • the embodiment of the present application further provides a mobile device, which includes at least one of the DMA controller 100, the DMA controller 500, and the DMA controller 600 of the embodiment of the present application.
  • the mobile device of the embodiment of the present application may be an aircraft, and in particular may be a drone.
  • circuits, sub-circuits, and sub-units of various embodiments of the present application is merely illustrative. Those of ordinary skill in the art will appreciate that the circuits, sub-circuits, and sub-units of the various examples described in the embodiments disclosed herein can be further separated or combined.
  • the computer program product includes one or more computer instructions.
  • the computer can be a general purpose computer, a special purpose computer, or a computer network Network, or other programmable device.
  • the computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be from a website site, computer, server or data center Transmission to another website site, computer, server, or data center by wire (eg, coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.).
  • the computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a high-density digital video disc (DVD)), or a semiconductor medium (for example, a solid state hard disk (Solid State Disk, SSD)) and so on.
  • a magnetic medium for example, a floppy disk, a hard disk, a magnetic tape
  • an optical medium for example, a high-density digital video disc (DVD)
  • DVD high-density digital video disc
  • semiconductor medium for example, a solid state hard disk (Solid State Disk, SSD)
  • the size of the sequence numbers of the foregoing processes does not mean the order of execution sequence, and the order of execution of each process should be determined by its function and internal logic, and should not be applied to the embodiment of the present application.
  • the implementation process constitutes any limitation.
  • B corresponding to A means that B is associated with A, and B can be determined according to A.
  • determining B from A does not mean that B is only determined based on A, and that B can also be determined based on A and/or other information.
  • the disclosed systems, devices, and methods may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the unit is only a logical function division.
  • there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

A DMA controller, a data reading method, and a data writing method. The DMA controller comprises a control path and a data reading path. The control path comprises a read control unit, configured to generate a read control signal, and control the data reading path by means of the read control signal to read first data from an external memory via an external bus. The data reading path comprises an unpacking unit, configured to unpack the first data, and the data reading path writes the unpacked first data into an internal storage unit by means of an internal bus. By providing the control path and the data reading path in the DMA controller, the DMA controller performs unpacking on the data by means of the unpacking unit at the same time that the data reading path reads the data from the external memory, so that the DMA controller performs an unpacking operation during data transfer, and performs parallel processing so as to improve the data processing speed and improve the performance of chips.

Description

直接存储器访问控制器、数据读取方法和数据写入方法Direct memory access controller, data reading method, and data writing method
版权申明Copyright statement
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。The disclosure of this patent document contains material that is subject to copyright protection. This copyright is the property of the copyright holder. The copyright owner has no objection to the reproduction of the patent document or the patent disclosure in the official records and files of the Patent and Trademark Office.
技术领域Technical field
本申请涉及数据处理领域,尤其涉及直接存储器访问(Direct Memory Access,DMA)控制器、数据读取方法和数据写入方法。The present application relates to the field of data processing, and in particular, to a direct memory access (DMA) controller, a data reading method, and a data writing method.
背景技术Background technique
随着芯片行业的快速发展,芯片的功能复杂度越来越高。芯片为完成数据处理通常包括DMA控制器和数据处理单元。现在市面上的DMA控制器的功能都较为单一,主要功能是完成数据的搬移操作。以读数据为例,如果芯片需要读取并处理不同位宽像素的图像数据,则芯片通常在数据处理单元设置一个预处理模块,完成图像数据的解包操作。解包操作是将内存中紧凑存放的图像数据解包成数据处理单元易于使用的格式,例如将在DDR中使用8比特(bit)、10bit、12bit或16bit位宽紧凑存储的图像数据解包成在16bit或32bit位宽中按照规律存储的等。现有的方案中,该解包操作由数据处理单元的预处理模块完成,因此,DMA控制器对数据进行搬移和预处理模块对数据进行解包是串行进行的。换句话说,如果要处理一块图像数据,需要DMA控制器首先完成数据搬移,然后预处理模块才能完成解包操作,无法并行进行。这使得芯片进行数据处理的速度非常缓慢。With the rapid development of the chip industry, the functional complexity of the chip is getting higher and higher. The chip typically includes a DMA controller and a data processing unit for data processing. Nowadays, the functions of the DMA controller on the market are relatively simple, and the main function is to complete the data movement operation. Taking read data as an example, if the chip needs to read and process image data of different bit width pixels, the chip usually sets a preprocessing module in the data processing unit to complete the unpacking operation of the image data. The unpacking operation is to unpack the compactly stored image data in the memory into a format that is easy to use by the data processing unit. For example, unpacking image data in 8-bit (bit), 10-bit, 12-bit or 16-bit bit width compact storage in DDR is Stored in regularity in 16-bit or 32-bit width. In the existing solution, the unpacking operation is performed by the preprocessing module of the data processing unit. Therefore, the DMA controller moves the data and the preprocessing module unpacks the data in series. In other words, if you want to process a piece of image data, you need the DMA controller to complete the data transfer first, and then the pre-processing module can complete the unpacking operation, which cannot be performed in parallel. This makes the chip process data very slow.
发明内容Summary of the invention
本申请提供了一种直接存储器访问控制器、数据读取方法和数据写入方法,可以提高数据处理速度,能够提升芯片的性能。The present application provides a direct memory access controller, a data reading method, and a data writing method, which can improve data processing speed and improve chip performance.
第一方面,提供了一种直接存储器访问DMA控制器,包括控制通路和读数据通路,所述控制通路包括读控制单元,所述读控制单元用于生成读控 制信号,并通过所述读控制信号控制所述读数据通路经由外部总线从外部内存读取第一数据;所述读数据通路包括解包单元,所述解包单元用于对所述第一数据进行解包,所述读数据通路将解包后的第一数据经由内部总线写入内部存储单元。In a first aspect, a direct memory access DMA controller is provided, comprising a control path and a read data path, the control path comprising a read control unit, the read control unit for generating a read control And generating, by the read control signal, the read data path to read first data from an external memory via an external bus; the read data path includes an unpacking unit, the unpacking unit is configured to The data is unpacked, and the read data path writes the unpacked first data to the internal storage unit via the internal bus.
第一方面的DMA控制器通过在其内部设置控制通路和读数据通路,读数据通路在从外部内存读取数据的同时,通过解包单元对数据进行解包,使得DMA控制器在数据搬移的同时进行解包操作,二者并行处理,可以提高数据处理速度,能够提升芯片的性能。The first aspect of the DMA controller sets a control path and a read data path therein, and the read data path reads data from the external memory while unpacking the data through the unpacking unit, so that the DMA controller moves the data. At the same time, the unpacking operation is performed, and the two processes in parallel can improve the data processing speed and improve the performance of the chip.
第二方面,提供了一种直接存储器访问DMA控制器,包括控制通路和写数据通路,所述控制通路包括写控制单元,所述写控制单元用于生成写控制信号,并通过所述写控制信号控制所述写数据通路经由内部总线从内部存储单元读取第二数据;所述写数据通路包括打包单元,所述打包单元用于对所述第二数据进行打包,所述写数据通路将打包后的第二数据经由外部总线写入外部内存。In a second aspect, a direct memory access DMA controller is provided, comprising a control path and a write data path, the control path comprising a write control unit for generating a write control signal and by the write control Signaling the write data path to read second data from an internal memory unit via an internal bus; the write data path includes a packing unit, the packing unit for packaging the second data, the write data path The packed second data is written to the external memory via the external bus.
第二方面的DMA控制器通过在其内部设置控制通路和写数据通路,写数据通路在往外部内存写取数据的同时,通过打包单元对数据进行打包,使得DMA控制器在数据搬移的同时进行打包操作,二者并行处理,可以提高数据处理速度,能够提升芯片的性能。The DMA controller of the second aspect sets the control path and the write data path therein, and writes the data path to write data to the external memory, and packs the data through the packing unit, so that the DMA controller performs data transfer simultaneously. The packaging operation, which is processed in parallel, can improve the data processing speed and improve the performance of the chip.
第三方面,提供了一种数据读取方法,所述方法由直接存储器访问DMA控制器执行,所述DMA控制器包括控制通路和读数据通路,所述控制通路包括读控制单元,所述读数据通路包括解包单元,所述方法包括:所述读控制单元生成读控制信号,并通过所述读控制信号控制所述读数据通路经由外部总线从外部内存读取第一数据;所述解包单元对所述第一数据进行解包,所述读数据通路将解包后的第一数据经由内部总线写入内部存储单元。In a third aspect, a data reading method is provided, the method being performed by a direct memory access DMA controller, the DMA controller comprising a control path and a read data path, the control path comprising a read control unit, the reading The data path includes an unpacking unit, the method comprising: the read control unit generating a read control signal, and controlling, by the read control signal, the read data path to read first data from an external memory via an external bus; The packet unit unpacks the first data, and the read data path writes the unpacked first data to the internal storage unit via the internal bus.
第四方面,提供了一种数据写入方法,所述方法由直接存储器访问DMA控制器执行,所述DMA控制器包括控制通路和写数据通路,所述控制通路包括写控制单元,所述写数据通路包括打包单元,所述方法包括:所述写控制单元生成写控制信号,并通过所述写控制信号控制所述写数据通路经由内部总线从内部存储单元读取第二数据;所述打包单元对所述第二数据进行打包,所述写数据通路将打包后的第二数据经由外部总线写入外部内 存。In a fourth aspect, a data writing method is provided, the method being performed by a direct memory access DMA controller, the DMA controller comprising a control path and a write data path, the control path comprising a write control unit, the writing The data path includes a packing unit, the method comprising: the write control unit generating a write control signal, and controlling, by the write control signal, the write data path to read second data from an internal storage unit via an internal bus; The unit packs the second data, and the write data path writes the packaged second data to the outside via an external bus Save.
第五方面,提供了一种集成电路,包括权利要求第一方面所述的DMA控制器和/或第二方面所述的DMA控制器。In a fifth aspect, an integrated circuit is provided, comprising the DMA controller of the first aspect of the invention and/or the DMA controller of the second aspect.
第六方面,提供了一种可移动设备,包括权利要求第一方面所述的DMA控制器和/或第二方面所述的DMA控制器。In a sixth aspect, a mobile device is provided, comprising the DMA controller of the first aspect of the invention and/or the DMA controller of the second aspect.
附图说明DRAWINGS
图1是本申请一个实施例的DMA控制器示意性框图。1 is a schematic block diagram of a DMA controller of one embodiment of the present application.
图2是本申请一个实施例的数据解包操作的示意图。2 is a schematic diagram of a data unpacking operation of an embodiment of the present application.
图3是本申请一个实施例的描述符缓存的一种实现方式的示意图。3 is a schematic diagram of an implementation of a descriptor cache in accordance with an embodiment of the present application.
图4是本申请一个实施例的描述符格式的示意图。4 is a schematic diagram of a descriptor format of an embodiment of the present application.
图5是本申请另一个实施例的DMA控制器示意性框图。FIG. 5 is a schematic block diagram of a DMA controller of another embodiment of the present application.
图6是本申请另一个实施例的DMA控制器示意性框图。6 is a schematic block diagram of a DMA controller of another embodiment of the present application.
图7是本申请一个实施例的数据读取方法的示意性流程图。FIG. 7 is a schematic flowchart of a data reading method according to an embodiment of the present application.
图8是本申请一个实施例的数据写入方法的示意性流程图。FIG. 8 is a schematic flowchart of a data writing method according to an embodiment of the present application.
具体实施方式Detailed ways
下面将结合附图,对本申请实施例中的技术方案进行描述。The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings.
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。All technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention applies, unless otherwise defined. The terminology used herein is for the purpose of describing particular embodiments, and is not intended to be limiting.
本申请实施例提供了一种DMA控制器,其具有读数据功能。图1是本申请一个实施例的DMA控制器100的示意性框图。如图1所示,DMA控制器100包括控制通路110和读数据通路120。控制通路110可以包括读控制单元112,读控制单元112用于生成读控制信号,并通过读控制信号控制读数据通路120经由外部总线210从外部内存220读取第一数据。读数据通路120可以包括解包单元122,解包单元122用于对第一数据进行解包,读数据通路120将解包后的第一数据经由内部总线230写入内部存储单元240。Embodiments of the present application provide a DMA controller having a read data function. 1 is a schematic block diagram of a DMA controller 100 in accordance with one embodiment of the present application. As shown in FIG. 1, DMA controller 100 includes a control path 110 and a read data path 120. The control path 110 can include a read control unit 112 for generating a read control signal and controlling the read data path 120 to read the first data from the external memory 220 via the external bus 210 by a read control signal. The read data path 120 can include a depacketizing unit 122 for unpacking the first data, and the read data path 120 writing the unpacked first data to the internal storage unit 240 via the internal bus 230.
应理解,本申请实施例中,外部总线210可以是高级扩展接口(Advanced eXtensible Interface,AXI)总线,也可以是其他协议规定的总线。外部内存220可以是双倍数据速率SDRAM(Double Data Rate SDRAM,DDR  SDRAM),或者简称为DDR内存,其中SDRAM是同步动态随机存储器(Synchronous Dynamic Random Access Memory)。内部总线230可以是交叉开关(CROSSBAR)总线。本申请实施例对外部总线210、外部内存220、内部总线230和内部存储单元240等的具体实现形式不作限定。It should be understood that, in the embodiment of the present application, the external bus 210 may be an Advanced eXtensible Interface (AXI) bus, or may be a bus specified by other protocols. The external memory 220 can be double data rate SDRAM (Double Data Rate SDRAM, DDR SDRAM), or simply DDR memory, where SDRAM is a Synchronous Dynamic Random Access Memory. The internal bus 230 can be a crossbar switch (CROSSBAR) bus. The specific implementation forms of the external bus 210, the external memory 220, the internal bus 230, the internal storage unit 240, and the like are not limited in the embodiment of the present application.
还应理解,如图1所示,本申请实施例具体可以通过读数据通路120的外部读单元126经由外部总线210从外部内存220读取第一数据,本申请实施例对此不作限定。It should be understood that, as shown in FIG. 1 , the first embodiment of the present application can read the first data from the external memory 220 through the external bus 210 through the external read unit 126 of the read data path 120 , which is not limited in this embodiment of the present application.
本申请实施例的DMA控制器通过在其内部设置控制通路和读数据通路,读数据通路在从外部内存读取数据的同时,通过解包单元对数据进行解包,使得DMA控制器在数据搬移的同时进行解包操作,二者并行处理,可以提高数据处理速度,能够提升芯片的性能。The DMA controller of the embodiment of the present application sets a control path and a read data path therein, and the read data path reads data from the external memory while unpacking the data through the unpacking unit, so that the DMA controller moves the data. At the same time, the unpacking operation is performed, and the two are processed in parallel, which can improve the data processing speed and improve the performance of the chip.
此外,由于DMA控制器已经对数据进行解包,DMA控制器的下游单元不需要再将原始数据进行解包,这增加了DMA控制器的下游单元的灵活性,使得该DMA控制器可以用在多种不同的应用场景,例如大端存储、小端存储等。In addition, since the DMA controller has unpacked the data, the downstream unit of the DMA controller does not need to unpack the original data, which increases the flexibility of the downstream unit of the DMA controller, so that the DMA controller can be used in A variety of different application scenarios, such as big-end storage, small-end storage, and so on.
可选地,如图1所示,读数据通路120还可以包括第一时钟处理单元124,用于对读数据通路120读取的第一数据进行异步先入先出(First Input First Output,FIFO)的跨时钟域处理,解包单元122具体用于对进行FIFO的跨时钟域处理后的第一数据进行解包。第一时钟处理单元124可以使用FIFO技术来同步源自不同时钟域的数据。Optionally, as shown in FIG. 1, the read data path 120 may further include a first clock processing unit 124 for performing asynchronous first in first out (FIFO) on the first data read by the read data path 120. The cross-clock domain processing, the unpacking unit 122 is specifically configured to unpack the first data processed by the FIFO across the clock domain. The first clock processing unit 124 can use FIFO technology to synchronize data originating from different clock domains.
第一时钟处理单元124可以将从外部内存220(例如,可以为DDR内存)中读取到的第一数据进行FIFO的跨时钟域处理后,送给解包单元122。应理解,在实际应用中,为了节省DDR内存的带宽,数据尤其是图像的像素值,一般都会紧凑地在DDR内存中存放。不同位宽像素的图像在DDR内存中存储的格式不同。本申请实施例的解包单元122为了方便后续单元的数据处理,对读取的第一数据在原始像素数值的高位补0,将像素位宽扩展成16bit或32bit。即解包单元122需进行数据格式的转换。The first clock processing unit 124 may perform the cross-clock domain processing of the FIFO from the external memory 220 (for example, may be DDR memory), and then send it to the unpacking unit 122. It should be understood that in practical applications, in order to save the bandwidth of the DDR memory, the data, especially the pixel value of the image, is generally stored compactly in the DDR memory. Images of different bit width pixels are stored in different formats in DDR memory. In order to facilitate the data processing of the subsequent unit, the unpacking unit 122 of the embodiment of the present application adds 0 to the high bit of the original pixel value and expands the pixel bit width to 16 bit or 32 bit. That is, the unpacking unit 122 needs to perform conversion of the data format.
可选地,解包单元122可以根据系统预设的解包模式,对第一数据进行解包。本申请实施例支持的解包模式可以包括直接模式、低位字模式、低位半字模式、奇偶列拆分模式、一块(one-bank)复制模式、高位字模式、高位半字模式和两块(two-bank)复制模式中的至少一种,且本申请实施例并 不仅限于此。Optionally, the unpacking unit 122 may unpack the first data according to the unpacking mode preset by the system. The unpacking mode supported by the embodiments of the present application may include a direct mode, a low word mode, a low bit halfword mode, a parity column split mode, a one-bank copy mode, a high word mode, a high halfword mode, and two blocks ( At least one of two-bank replication modes, and the embodiment of the present application Not limited to this.
直接模式是将数据原样输出,不做格式转换。低位字模式是使用一个字(word,包括32bit)的低位存储一个像素值,高位补零。这样,可以将8bit、10bit、12bit和16bit位宽的像素扩展成32bit。低位半字模式是使用半个word的低位存储一个像素值,高位补零。这样,可以将8bit、10bit和12bit位宽的像素扩展成16bit。高位字模式是使用一个word的高位存储一个像素值,低位补零。高位半字模式是使用半个word的高位存储一个像素值,低位补零。one-bank复制模式下,每个bank为一组,将数据复制为16份,每份数据放在一个bank中。two-bank复制模式下,每两个bank为一组,将数据复制为8份,每份数据放在两个bank中。奇偶列拆分模式是将数据分为两部分,分别存储在偶存储体和奇存储体,例如将低8位数据存储在偶存储体,高8位数据存储在奇存储体,本申请实施例对此不作限定。The direct mode is to output the data as it is without formatting. The low word mode uses a low word of one word (including 32 bits) to store one pixel value and a high bit to zero. In this way, 8-bit, 10-bit, 12-bit, and 16-bit wide pixels can be expanded to 32 bits. The lower halfword mode uses a lower half of the word to store one pixel value and a high bit to zero. In this way, 8-bit, 10-bit, and 12-bit wide pixels can be expanded to 16 bits. The high word mode uses a word high bit to store a pixel value and a low bit zero. The upper halfword mode uses a high word of half a word to store one pixel value and a low bit to zero. In the one-bank copy mode, each bank is a group, and the data is copied into 16 copies, and each data is placed in one bank. In the two-bank copy mode, every two banks are grouped, and the data is copied into 8 copies, and each data is placed in two banks. The parity column split mode is to divide the data into two parts, which are respectively stored in the even bank and the odd bank. For example, the lower 8 bits of data are stored in the even bank, and the upper 8 bits of data are stored in the odd bank. This is not limited.
本申请实施例的可以支持的像素位宽(pixel width)可以包括8bit、10bit、12bit和16bit,且不仅限于此。The pixel width that can be supported by the embodiment of the present application may include 8 bits, 10 bits, 12 bits, and 16 bits, and is not limited thereto.
图2是本申请一个实施例的数据解包操作的示意图。如图2所示,数据以12bit像素的格式存储在外部内存中,包括像素0-像素9的数据。本实施例采用低位半字模式进行解包,解包之后每个像素16bit,高位插入0来填充。其中,解包前和解包后数据的最高有效位(Most Significant Bit,MSB)和最低有效位(Least Significant Bit,LSB)分别如图2所示。由此,本申请实施例不需要将包含大量冗余信息的图像数据(例如图2解包后的数据)存储在外部内存中,而是存储图2解包前的数据,从而节省了内存带宽。2 is a schematic diagram of a data unpacking operation of an embodiment of the present application. As shown in FIG. 2, the data is stored in the external memory in a 12-bit pixel format, including data of pixels 0-pixel 9. In this embodiment, the low-order half-word mode is used for unpacking. After unpacking, each pixel is 16 bits, and the high bit is inserted with 0 to fill. The Most Significant Bit (MSB) and the Least Significant Bit (LSB) of the data before and after unpacking are shown in Figure 2, respectively. Therefore, the embodiment of the present application does not need to store image data including a large amount of redundant information (for example, the data after unpacking in FIG. 2) in the external memory, but stores the data before the unpacking of FIG. 2, thereby saving memory bandwidth. .
可选地,解包单元122可以包括3级管线(pipeline)。Alternatively, the unpacking unit 122 may include a 3-stage pipeline.
第一级pipeline可以将不同位宽像素的数据(例如第一数据)解包成某一位宽,例如16bit。在一个具体的例子中,第一级pipeline的输入是可以128bit数据。对于8bit像素,一拍数据包括16个像素;对于10bit像素,一拍数据包括12个像素;对于12bit像素,一拍数据包括10个像素,第一级pipeline对数据进行解包后,数据位宽为16bit。The first level pipeline can unpack data of different bit width pixels (for example, the first data) into a certain bit width, for example, 16 bits. In a specific example, the input to the first level pipeline is 128 bits of data. For 8-bit pixels, one beat data includes 16 pixels; for 10-bit pixels, one beat data includes 12 pixels; for 12-bit pixels, one beat data includes 10 pixels, and the first-stage pipeline unpacks data, and the data width is wide. It is 16bit.
第二级pipeline可以对数据进行填充(padding)操作。padding操作是将宽高不足256×256的条带(tile)扩展成256×256的tile,其中,扩展区域补0像素。The second level pipeline can padding the data. The padding operation expands a tile having a width and height of less than 256×256 into a tile of 256×256, wherein the extended region complements 0 pixels.
第三级pipeline可以完成半字到字的转换、低位到高位的转换。因为第 一级pipeline解包后的数据是低位半字模式,如果当前的解包模式要求其他模式,就需要对数据格式进行转换。The third-level pipeline can complete half-word to word conversion and low-to-high conversion. Because the first The data after the unpacking of the first-level pipeline is the low-order halfword mode. If the current unpacking mode requires other modes, the data format needs to be converted.
应理解,解包单元包括3级pipeline仅为示例性的,而非对本申请实施例的限定。It should be understood that the unpacking unit includes a level 3 pipeline, which is merely exemplary, and is not intended to limit the embodiments of the present application.
可选地,如图1所示,控制通路110还可以包括数据控制单元114。数据控制单元114可以用于读取第一数据的第一描述符,读控制单元112具体用于根据第一描述符生成读控制信号。Optionally, as shown in FIG. 1, the control path 110 may further include a data control unit 114. The data control unit 114 can be configured to read a first descriptor of the first data, and the read control unit 112 is specifically configured to generate a read control signal according to the first descriptor.
可选地,如图1所示,数据控制单元114可以经由内核总线250从内核(core)260中读取第一数据的第一描述符。Alternatively, as shown in FIG. 1, the data control unit 114 may read the first descriptor of the first data from the core 260 via the core bus 250.
本申请实施例的描述符可以用于指示优先级,其中有多种情况需要考虑,例如,第一描述符可以包括第一字段,第一字段用于指示第一数据的类型为立即数、1D数据或2D数据。立即数的优先级大于一维(1D)数据和二维(2D)数据的优先级。通常,1D任务和2D任务分别传输的1D数据和2D数据的数据量比较大。在1D数据和2D数据传输的过程中,如果数据控制单元114内压入了一个立即数的描述符,则根据描述符,该立即数的任务可以在提前插队执行。由此,本申请实施例的DMA控制器可以提升立即数的执行效率。The descriptor of the embodiment of the present application may be used to indicate a priority, where there are multiple situations to be considered. For example, the first descriptor may include a first field, and the first field is used to indicate that the type of the first data is an immediate number, 1D. Data or 2D data. The immediate priority is greater than the priority of one-dimensional (1D) data and two-dimensional (2D) data. Generally, the amount of data of 1D data and 2D data transmitted by the 1D task and the 2D task are relatively large. In the course of 1D data and 2D data transmission, if an immediate number of descriptors are pushed into the data control unit 114, the task of the immediate data can be executed in advance according to the descriptor. Thus, the DMA controller of the embodiment of the present application can improve the execution efficiency of the immediate data.
在一个具体的例子中,本申请实施例的DMA控制器可以支持显著(outstanding)的高效数据接收结构。该数据接收结构可以充分利用outstanding资源,在较小缓存的情况下实现高效的数据接收。例如,对于outstanding 8的情况,数据接收结构有8个可以利用的标识(IDentifier,ID)0~7。用一个8bit的寄存器(例如寄存器变量busy)表示当前ID的使用情况,bit位为低,表示该bit位对应的ID没有被使用;bit位为高,表示该bit位对应的ID正在等待读回数据。数据接收结构维护一个寄存器堆,寄存器堆的每一行对应一个ID,存放当前ID对应的缓存存储地址。每当DMA控制器经由外部总线从外部内存中读回一拍有效数据时,根据该数据的ID,查询相应的寄存器堆,得到该数据的缓存地址,然后将该数据缓存到相应的地址中,同时将该寄存器堆中的地址数据加1。如果当前读回的数据是其突发脉冲(burst)的最后一个数据,则将该ID对应的寄存器置为0,供其他传输使用。In a specific example, the DMA controller of the embodiments of the present application can support an outstanding high efficiency data receiving structure. The data receiving structure can make full use of the outstanding resources to achieve efficient data reception in the case of a small cache. For example, in the case of outstanding 8, the data receiving structure has 8 IDentifiers (IDs) 0 to 7 that can be utilized. Use an 8-bit register (such as the register variable busy) to indicate the current ID usage. The bit is low, indicating that the ID corresponding to the bit is not used. The bit is high, indicating that the ID corresponding to the bit is waiting to be read back. data. The data receiving structure maintains a register file. Each row of the register file corresponds to an ID, and stores a cache storage address corresponding to the current ID. Whenever the DMA controller reads back valid data from the external memory via the external bus, according to the ID of the data, the corresponding register file is queried, the cache address of the data is obtained, and then the data is buffered to the corresponding address. At the same time, the address data in the register file is incremented by one. If the data currently read back is the last data of its burst, the corresponding register of the ID is set to 0 for use by other transmissions.
又如:DMA控制器支持outstanding 8,如果当前有空的ID,则可以使 用该ID读写立即数。立即数的数据量通常较小,例如为128bit,只需要一个单(single)浮点操作就可以完成传输。本申请实施例的DMA控制器使得在较小的缓存资源消耗前提下,大大提升oustanding资源的利用率,从而可以提升DMA控制器的读数效率。Another example: DMA controller supports outstanding 8, if there is currently an empty ID, you can make Use this ID to read and write immediate data. The amount of immediate data is usually small, for example 128 bits, and only a single floating point operation is required to complete the transfer. The DMA controller of the embodiment of the present application can greatly improve the utilization of the oustanding resource under the premise of a small cache resource consumption, thereby improving the reading efficiency of the DMA controller.
在一个具体的例子中,第一描述符可以包括第二字段,第二字段用于指示第一数据对应的任务的优先级。具体地,每个1D数据的描述或2D数据的描述符可以配置一个3bit的第二字段,用于指示数据任务的优先级。在一个具体的例子中,优先级可以分为8个等级。控制通路从描述符缓存中选择优先级最高的任务进行执行。如果多个任务的优先级相同,则选择最先压入描述符缓存的任务进行执行。In a specific example, the first descriptor may include a second field, and the second field is used to indicate the priority of the task corresponding to the first data. Specifically, the description of each 1D data or the descriptor of the 2D data may be configured with a 3-bit second field for indicating the priority of the data task. In a specific example, the priority can be divided into 8 levels. The control path selects the task with the highest priority from the descriptor cache for execution. If multiple tasks have the same priority, the task that is first pushed into the descriptor cache is selected for execution.
可选地,数据控制单元114可以包括一个寄存器,该寄存器用于寄存第一描述符中第一数据对应的任务的优先级,读控制单元112用于根据寄存器中的优先级生成读控制信号。在一个例子中,描述符缓存的一种具体的实现方式可以如下。图3是描述符缓存的一种实现方式的示意图。如图3所示,设置一个寄存器组,这组寄存器共7行,寄存器的每行对应于描述符缓存中的一个描述符。例如,第0行对应地址0~9的数据对应的任务的描述符,第1行对应地址10~19的数据对应的任务的描述符,…,以此类推。寄存器的每行可以包括3个字段(字段A、字段B和字段C)共7bit,字段A(used域)占用1bit,用于表示寄存器的该行的存储空间是否有描述符,字段A值为1表示寄存器的该行的存储空间有描述符。字段B(pri1域)占用3bit,表示数据的描述符中携带的优先级的绝对值(即pri1域的值由描述符头部的pri域赋值)。字段C(pri2域)占用3bit,用于表示任务被压入描述符缓存的先后,保证相同优先级的任务先进先出。描述符刚压入的时候该描述符的pri2域的值被设置为寄存器变量remain,同时pri2域的值减1,每从描述符缓存取走一个描述符,将剩余描述符的pri2域的值加1。=Alternatively, the data control unit 114 may include a register for registering the priority of the task corresponding to the first data in the first descriptor, and the read control unit 112 is configured to generate the read control signal according to the priority in the register. In one example, a specific implementation of the descriptor cache can be as follows. 3 is a schematic diagram of one implementation of a descriptor cache. As shown in Figure 3, a register bank is set up. The set of registers has a total of 7 rows, and each row of the register corresponds to a descriptor in the descriptor cache. For example, the 0th line corresponds to the descriptor of the task corresponding to the data of the addresses 0 to 9, the 1st line corresponds to the descriptor of the task corresponding to the data of the addresses 10 to 19, and so on. Each row of the register may include 3 fields (field A, field B, and field C) total 7 bits, and field A (used field) occupies 1 bit, which is used to indicate whether the storage space of the row of the register has a descriptor, and the field A value is 1 indicates that the storage space of the row of the register has a descriptor. Field B (pri1 field) occupies 3 bits, indicating the absolute value of the priority carried in the descriptor of the data (ie, the value of the pri1 field is assigned by the pri field of the descriptor header). Field C (pri2 field) occupies 3 bits and is used to indicate the order in which tasks are pushed into the descriptor cache, ensuring that tasks of the same priority are first-in, first-out. When the descriptor is just pushed in, the value of the pri2 field of the descriptor is set to the register variable main, and the value of the pri2 field is decremented by 1. Each time a descriptor is taken from the descriptor cache, the value of the pri2 field of the remaining descriptor is set. plus 1. =
应理解,上述只是优先级的举例,而非对本申请实施例的限定。It should be understood that the above is only an example of priority, and is not intended to limit the embodiments of the present application.
可选地,本申请实施例的第一描述符可以包括第三字段,第三字段用于指示第一数据的解包模式。Optionally, the first descriptor of the embodiment of the present application may include a third field, where the third field is used to indicate an unpacking mode of the first data.
图4是本申请一个实施例的描述符格式的示意图。该描述符是2D数据的描述符。描述符的第一个半字(16bit)是描述符的头dscrp_head,其指示该数据的模式mode[1:0](dscrp_head[15:14])、数据对应的任务的优先级 pri[2:0](dscrp_head[13:11])、解包模式unpack_mode[2:0](dscrp_head[10:8])、像素位宽pixel_width[2:0](dscrp_head[7:5])、描述符的长度[3:0]dscrp_len(dscrp_head[4:1])和传递方向direc[0](dscrp_head[0])。其中,数据的模式mode可以是立即数、1D数据或2D数据,例如本例子中数据的模式为2D数据。解包模式unpack_mode可以为前述多种解包模式中的一种。传递方向direc为读方向或写方向。dscrp_id[11:0]用于指示该描述符的ID。ext_addr(包括ext_addr[15:0]和ext_addr[31:16])用于指示外部内存的数据地址。trans_len[15:0]用于指示传输长度。toggle_num[15:0]表示当前的操作需要被重复执行的次数。trans_width[15:0]和trans_stride[15:0]用于指示2D区域,这两个参数用于在换行时计算下次的起始地址。port_cfg1[15:0]和port_cfg2[15:0]分别对应两个内部存储单元的编号,用于存储数据的高8位和低8位。padding_en[0]、vld_data_height[6:0]和vld_data_width[6:0]这三个参数用于填充操作,例如,padding_en为1表示需要进行填充操作,为0表示不进行填充操作,vld_data_height[6:0]和vld_data_width[6:0]用于定义非填充区域的高和宽。4 is a schematic diagram of a descriptor format of an embodiment of the present application. This descriptor is a descriptor of 2D data. The first halfword (16bit) of the descriptor is the header dscrp_head of the descriptor, which indicates the mode mode[1:0] of the data (dscrp_head[15:14]), the priority of the task corresponding to the data. Pri[2:0](dscrp_head[13:11]), unpacking mode unpack_mode[2:0](dscrp_head[10:8]), pixel bit width pixel_width[2:0](dscrp_head[7:5]) The descriptor length [3:0]dscrp_len(dscrp_head[4:1]) and the transfer direction direc[0](dscrp_head[0]). The mode mode of the data may be an immediate data, 1D data, or 2D data. For example, the mode of the data in this example is 2D data. The unpacking mode unpack_mode may be one of the aforementioned various unpacking modes. The transfer direction direc is the read direction or the write direction. Dscrp_id[11:0] is used to indicate the ID of this descriptor. Ext_addr (including ext_addr[15:0] and ext_addr[31:16]) is used to indicate the data address of the external memory. Trans_len[15:0] is used to indicate the transmission length. Toggle_num[15:0] indicates the number of times the current operation needs to be repeated. Trans_width[15:0] and trans_stride[15:0] are used to indicate the 2D area. These two parameters are used to calculate the next start address when wrapping. Port_cfg1[15:0] and port_cfg2[15:0] correspond to the number of two internal memory locations, respectively, for storing the upper 8 bits and lower 8 bits of the data. The three parameters padding_en[0], vld_data_height[6:0], and vld_data_width[6:0] are used for the padding operation. For example, padding_en is 1 for padding, 0 is for padding, vld_data_height[6: 0] and vld_data_width[6:0] are used to define the height and width of the unfilled area.
可选地,本申请实施例的DMA控制器还可以包括写数据通路,控制通路还可以包括写控制单元,写控制单元用于生成写控制信号,并通过写控制信号控制写数据通路经由内部总线从内部存储单元读取第二数据;写数据通路可以包括打包单元,打包单元用于对第二数据进行打包,写数据通路将打包后的第二数据经由外部总线写入外部内存。Optionally, the DMA controller of the embodiment of the present application may further include a write data path, and the control path may further include a write control unit, where the write control unit is configured to generate a write control signal, and control the write data path via the internal bus through the write control signal. The second data is read from the internal storage unit; the write data path may include a packing unit, the packing unit is configured to package the second data, and the write data path writes the packed second data to the external memory via the external bus.
可选地,写数据通路还可以包括第二时钟处理单元,用于在打包单元对第二数据进行打包后,对打包后的第二数据进行异步FIFO的跨时钟域处理。Optionally, the write data path may further include a second clock processing unit, configured to perform cross-clock domain processing of the asynchronous FIFO on the packed second data after the packing unit packages the second data.
关于写数据通路的相关操作将在下文中详细展开。The related operations on writing data paths will be detailed below.
本申请实施例还提供了一种DMA控制器,其具有写数据功能。图5是本申请另一个实施例的DMA控制器500的示意性框图。如图5所示,DMA控制器500包括控制通路510和写数据通路520。控制通路510可以包括写控制单元512,写控制单元512用于生成写控制信号,并通过写控制信号控制写数据通路520经由内部总线230从内部存储单元240读取第二数据。写数据通路520可以包括打包单元522,打包单元522用于对第二数据进行打包,写数据通路520将打包后的第二数据经由外部总线210写入外部内存220。 The embodiment of the present application also provides a DMA controller having a write data function. FIG. 5 is a schematic block diagram of a DMA controller 500 of another embodiment of the present application. As shown in FIG. 5, the DMA controller 500 includes a control path 510 and a write data path 520. The control path 510 can include a write control unit 512 for generating a write control signal and controlling the write data path 520 to read the second data from the internal memory unit 240 via the internal bus 230 via a write control signal. The write data path 520 can include a packing unit 522 for packaging the second data, and the write data path 520 writing the packed second data to the external memory 220 via the external bus 210.
应理解,如图5所示,本申请实施例具体可以通过写数据通路520的外部写单元526将打包后的第二数据经由外部总线210写入外部内存220,本申请实施例对此不作限定。It should be understood that, as shown in FIG. 5, the embodiment of the present application may specifically write the packaged second data to the external memory 220 via the external bus 210 through the external write unit 526 of the write data path 520, which is not limited in this embodiment of the present application. .
本申请实施例的DMA控制器通过在其内部设置控制通路和写数据通路,写数据通路在往外部内存写取数据的同时,通过打包单元对数据进行打包,使得DMA控制器在数据搬移的同时进行打包操作,二者并行处理,可以提高数据处理速度,能够提升芯片的性能。The DMA controller of the embodiment of the present application sets a control path and a write data path therein, and the write data path writes data to the external memory while packing the data through the packing unit, so that the DMA controller moves the data at the same time. The packaging operation is performed in parallel, which can improve the data processing speed and improve the performance of the chip.
此外,由于DMA控制器对数据进行打包,DMA控制器的上游单元不需要将原始数据进行打包,这增加了DMA控制器的上游单元的灵活性,使得该DMA控制器可以用在多种不同的应用场景。In addition, since the DMA controller packs the data, the upstream unit of the DMA controller does not need to pack the original data, which increases the flexibility of the upstream unit of the DMA controller, so that the DMA controller can be used in many different ways. Application scenario.
可选地,如图5所示,写数据通路520还可以包括第二时钟处理单元524,用于在打包单元522对第二数据进行打包后,对打包后的所述第二数据进行异步FIFO的跨时钟域处理。Optionally, as shown in FIG. 5, the write data path 520 may further include a second clock processing unit 524, configured to perform asynchronous FIFO on the packaged second data after the packing unit 522 packages the second data. Cross-clock domain processing.
可选地,打包单元522具体可以用于根据预设的打包模式,对第二数据进行打包。与解包模式对应的,本申请实施例支持的打包模式可以包括直接模式、低位字模式、低位半字模式、奇偶列拆分模式、one-bank复制模式、高位字模式、高位半字模式和two-bank复制模式中的至少一种,且本申请实施例并不仅限于此。Optionally, the packaging unit 522 is specifically configured to package the second data according to the preset packaging mode. Corresponding to the unpacking mode, the packing modes supported by the embodiments of the present application may include a direct mode, a low word mode, a low halfword mode, a parity column split mode, a one-bank copy mode, a high word mode, a high halfword mode, and At least one of the two-bank copy modes, and the embodiment of the present application is not limited thereto.
本申请实施例的打包单元522的工作原理和流程可以与本申请实施例的解包单元的原理类似,流程相反,此处不再进行赘述。The working principle and the flow of the unpacking unit 522 of the embodiment of the present application may be similar to the principle of the unpacking unit of the embodiment of the present application, and the process is reversed, and details are not described herein.
可选地,作为一个实施例,如图5所示,控制通路510还可以包括数据控制单元514。数据控制单元514用于读取第二数据的第二描述符,写控制单元512具体用于根据第二描述符生成写控制信号。Optionally, as an embodiment, as shown in FIG. 5, the control path 510 may further include a data control unit 514. The data control unit 514 is configured to read a second descriptor of the second data, and the write control unit 512 is specifically configured to generate a write control signal according to the second descriptor.
可选地,作为一个实施例,如图5所示,数据控制单元514可以经由内核总线250从内核(core)260中读取第二数据的第二描述符。Alternatively, as an embodiment, as shown in FIG. 5, the data control unit 514 can read the second descriptor of the second data from the core 260 via the core bus 250.
可选地,第二描述符可以包括第一字段,第一字段用于指示第二数据的类型为立即数、一维1D数据或二维2D数据。可选地,第二描述符可以包括第二字段,第二字段用于指示第二数据对应的任务的优先级。可选地,第二描述符可以包括第三字段,第三字段用于指示第二数据的打包模式(对应于第一描述符的第三字段用于指示第一数据的解包模式)。Optionally, the second descriptor may include a first field, where the first field is used to indicate that the type of the second data is immediate, one-dimensional 1D data, or two-dimensional 2D data. Optionally, the second descriptor may include a second field, where the second field is used to indicate a priority of the task corresponding to the second data. Optionally, the second descriptor may include a third field, where the third field is used to indicate a packing mode of the second data (the third field corresponding to the first descriptor is used to indicate an unpacking mode of the first data).
本申请实施例的第二描述符的格式可以与第一描述符的格式相同或类 似。The format of the second descriptor of the embodiment of the present application may be the same as or the same as the format of the first descriptor. like.
应理解,如果对于同一个数据的既有读操作又有写操作,可以仅使用一个描述符对两个操作(或者称两个任务进行)描述。It should be understood that if there are both a read operation and a write operation for the same data, two operations (or two tasks) can be described using only one descriptor.
可选地,作为一个实施例,数据控制单元514可以包括寄存器,该寄存器用于寄存第二描述符中第二数据对应的任务的优先级,写控制单元512用于根据寄存器中的优先级生成写控制信号。Optionally, as an embodiment, the data control unit 514 may include a register for registering priorities of tasks corresponding to the second data in the second descriptor, and the write control unit 512 is configured to generate according to priorities in the registers. Write control signals.
可选地,作为一个实施例,DMA控制器500还可以包括读数据通路,控制通路还可以包括读控制单元,读控制单元可以用于生成读控制信号,并通过读控制信号控制读数据通路经由外部总线从外部内存读取第一数据;读数据通路可以包括解包单元,解包单元可以用于对第一数据进行解包,读数据通路将解包后的第一数据经由内部总线写入内部存储单元。Optionally, as an embodiment, the DMA controller 500 may further include a read data path, and the control path may further include a read control unit, and the read control unit may be configured to generate a read control signal and control the read data path via the read control signal. The external bus reads the first data from the external memory; the read data path may include an unpacking unit, the unpacking unit may be configured to unpack the first data, and the read data path writes the unpacked first data via the internal bus Internal storage unit.
可选地,作为一个实施例,读数据通路还可以包括第一时钟处理单元,用于对读数据通路读取的第一数据进行异步FIFO的跨时钟域处理,解包单元具体用于对进行FIFO的跨时钟域处理后的第一数据进行解包。Optionally, as an embodiment, the read data path may further include a first clock processing unit, configured to perform cross-clock domain processing of the asynchronous FIFO on the first data read by the read data path, where the unpacking unit is specifically configured to perform The first data processed by the FIFO across the clock domain is unpacked.
应理解,对于既包括读数据通路又包括写数据通路的DMA控制器,数据控制单元中的寄存器可以既寄存被读取的数据(例如第一数据)对应的任务的优先级,又寄存待写入的数据(例如第二数据)对应的任务的优先级。换而言之,读取数据和写入数据可以共用同一个寄存器。当然,读取数据和写入数据也可以分别设置不同的寄存器,本申请实施例对此不作限定。It should be understood that for a DMA controller including both a read data path and a write data path, the registers in the data control unit may register the priority of the task corresponding to the read data (eg, the first data) and register the write to be written. The priority of the task corresponding to the incoming data (eg second data). In other words, the read data and the write data can share the same register. Of course, the read data and the write data may also be set differently, which is not limited in this embodiment of the present application.
下面以一个具体的例子说明DMA控制器既包括读数据通路又包括写数据通路的情况。图6是本申请另一个实施例的DMA控制器600的示意性框图。如图6所示,DMA控制器600包括控制通路610、读数据通路620和写数据通路630。The following is a specific example to illustrate the case where the DMA controller includes both a read data path and a write data path. FIG. 6 is a schematic block diagram of a DMA controller 600 of another embodiment of the present application. As shown in FIG. 6, DMA controller 600 includes control path 610, read data path 620, and write data path 630.
控制通路610可以包括读控制单元612和写控制单元614。读控制单元612用于生成读控制信号,并通过读控制信号控制读数据通路620经由外部总线210从外部内存220读取数据。写控制单元614用于生成写控制信号,并通过写控制信号控制写数据通路630经由内部总线230从内部存储单元240读取数据。控制通路610还可以包括数据控制单元616。数据控制单元616可以用于读取数据的描述符。数据控制单元616可以包括接口(crf_if)模块,是数据控制单元616与内核总线250的接口模块。数据控制单元616内部还可以包括读立即数数据缓存(im_cache)模块、描述符格式检查 (dscrp_check)模块和描述符分发(dscrp_distribute)模块。im_cache模块是用于缓存立即数的模块。dscrp_check模块是用于检查描述符格式的模块。dscrp_distribute模块根据描述符的内容,将描述符分发到读立即数任务缓存(fifo_im_r)模块、写立即数任务缓存(fifo_im_w)模块、读1D2D任务缓存(pri_1d2d_r)模块和写1D2D任务缓存(pri_1d2d_w)模块这四个模块。fifo_im_r模块用于缓存读立即数任务,fifo_im_w模块用于缓存写立即数任务,pri_1d2d_r模块用于缓存读1D任务和2D任务,并具有任务优先级功能,pri_1d2d_w模块用于缓存写1D任务和2D任务,并具有任务优先级功能。读控制单元612根据fifo_im_r模块或pri_1d2d_r模块中的描述符生成读控制信号。写控制单元614根据fifo_im_w模块或pri_1d2d_w模块中的描述符生成写控制信号。 Control path 610 can include read control unit 612 and write control unit 614. The read control unit 612 is configured to generate a read control signal and control the read data path 620 to read data from the external memory 220 via the external bus 210 by a read control signal. The write control unit 614 is configured to generate a write control signal and control the write data path 630 to read data from the internal memory unit 240 via the internal bus 230 by a write control signal. Control path 610 can also include a data control unit 616. Data control unit 616 can be used to read descriptors of the data. The data control unit 616 can include an interface (crf_if) module, which is an interface module of the data control unit 616 and the core bus 250. The data control unit 616 may also include a read immediate data cache (im_cache) module and a descriptor format check. (dscrp_check) module and descriptor distribution (dscrp_distribute) module. The im_cache module is a module for caching immediate data. The dscrp_check module is a module for checking the descriptor format. The dscrp_distribute module distributes the descriptor to the read immediate task cache (fifo_im_r) module, the write immediate task cache (fifo_im_w) module, the read 1D2D task cache (pri_1d2d_r) module, and the write 1D2D task cache (pri_1d2d_w) module according to the contents of the descriptor. These four modules. The fifo_im_r module is used to cache read immediate tasks, the fifo_im_w module is used to cache write immediate tasks, the pri_1d2d_r module is used to cache read 1D tasks and 2D tasks, and has task priority function. The pri_1d2d_w module is used to cache write 1D tasks and 2D tasks. And has a task priority function. The read control unit 612 generates a read control signal based on the descriptors in the fifo_im_r module or the pri_1d2d_r module. The write control unit 614 generates a write control signal based on the descriptors in the fifo_im_w module or the pri_1d2d_w module.
读数据通路620可以包括外部读单元626经由外部总线210从外部内存220读取数据;读数据通路620还可以包括第一时钟处理单元624,用于对读数据通路620读取的数据进行异步FIFO的跨时钟域处理;读数据通路620还包括解包单元622,用于对数据进行解包后,经由内部总线230写入内部存储单元240。The read data path 620 can include the external read unit 626 reading data from the external memory 220 via the external bus 210; the read data path 620 can also include a first clock processing unit 624 for asynchronously FIFOing the data read by the read data path 620. The cross-clock domain processing; the read data path 620 further includes an unpacking unit 622 for writing data to the internal storage unit 240 via the internal bus 230 after unpacking the data.
写数据通路630可以包括打包单元632,用于对写数据通路630经由内部总线230从内部存储单元240读取的数据进行打包;写数据通路630还可以包括第二时钟处理单元634,用于对打包单元632打包后的数据进行异步FIFO的跨时钟域处理;写数据通路630还可以包括外部写单元626,用于将打包及跨时钟域处理后的数据经由外部总线210写入外部内存220。The write data path 630 can include a packing unit 632 for packaging data read from the internal storage unit 240 via the internal bus 230 by the write data path 630; the write data path 630 can also include a second clock processing unit 634 for The packed data of the packing unit 632 performs cross-clock domain processing of the asynchronous FIFO; the write data path 630 may further include an external write unit 626 for writing the packed and cross-clock domain processed data to the external memory 220 via the external bus 210.
应理解,图6所示的DMA控制器600仅为本申请实施例的示例而非限定。It should be understood that the DMA controller 600 shown in FIG. 6 is only an example of the embodiment of the present application and is not limited thereto.
上文说明了本申请实施例的DMA控制器,下面分别详细说明与之相对应的数据读取方法和数据写入方法。The DMA controller of the embodiment of the present application has been described above, and the data reading method and the data writing method corresponding thereto are respectively described in detail below.
图7是本申请一个实施例的数据读取方法700的示意性流程图。方法700可以由DMA控制器执行,该DMA控制器包括控制通路和读数据通路,控制通路包括读控制单元,读数据通路包括解包单元。如图7所示,方法700可以包括以下步骤。FIG. 7 is a schematic flowchart of a data reading method 700 according to an embodiment of the present application. Method 700 can be performed by a DMA controller that includes a control path and a read data path, the control path including a read control unit, and the read data path including an unpacking unit. As shown in FIG. 7, method 700 can include the following steps.
S710,读控制单元生成读控制信号,并通过读控制信号控制读数据通路经由外部总线从外部内存读取第一数据。 S710. The read control unit generates a read control signal, and controls the read data path to read the first data from the external memory via the external bus through the read control signal.
S720,解包单元对第一数据进行解包。S720. The unpacking unit unpacks the first data.
S730,读数据通路将解包后的第一数据经由内部总线写入内部存储单元。S730. The read data path writes the unpacked first data to the internal storage unit via the internal bus.
本申请实施例的数据读取方法,通过在DMA控制器内部设置控制通路和读数据通路,读数据通路在从外部内存读取数据的同时,通过解包单元对数据进行解包,使得DMA控制器在数据搬移的同时进行解包操作,二者并行处理,可以提高数据处理速度,能够提升芯片的性能。In the data reading method of the embodiment of the present application, by setting a control path and a read data path inside the DMA controller, the read data path reads data from the external memory and unpacks the data through the unpacking unit, so that the DMA control The device performs the unpacking operation while the data is being moved, and the two processes in parallel can improve the data processing speed and improve the performance of the chip.
可选地,作为一个实施例,S720解包单元对第一数据进行解包,可以包括:解包单元根据预设的解包模式,对第一数据进行解包。Optionally, as an embodiment, the S720 unpacking unit unpacking the first data may include: the unpacking unit unpacks the first data according to the preset unpacking mode.
可选地,作为一个实施例,读数据通路还可以包括第一时钟处理单元,方法700还可以包括:第一时钟处理单元对读数据通路读取的第一数据进行异步先入先出FIFO的跨时钟域处理;S720解包单元对第一数据进行解包,可以包括:解包单元对进行FIFO的跨时钟域处理后的第一数据进行解包。Optionally, as an embodiment, the read data path may further include a first clock processing unit, and the method 700 may further include: the first clock processing unit performs asynchronous first-in first-out FIFO on the first data read by the read data path. The clock domain processing; the S720 unpacking unit unpacking the first data may include: the unpacking unit unpacking the first data after performing the cross-clock domain processing of the FIFO.
可选地,作为一个实施例,控制通路还可以包括数据控制单元,方法700还可以包括:数据控制单元读取第一数据的第一描述符;S710,读控制单元生成读控制信号,可以包括:读控制单元根据第一描述符,生成读控制信号。Optionally, as an embodiment, the control path may further include a data control unit, and the method 700 may further include: the data control unit reads the first descriptor of the first data; S710, the read control unit generates the read control signal, which may include The read control unit generates a read control signal based on the first descriptor.
可选地,作为一个实施例,第一描述符包括第一字段,第一字段用于指示第一数据的类型为立即数、一维1D数据或二维2D数据。Optionally, as an embodiment, the first descriptor includes a first field, where the first field is used to indicate that the type of the first data is immediate, one-dimensional 1D data, or two-dimensional 2D data.
可选地,作为一个实施例,第一描述符包括第二字段,第二字段用于指示第一数据对应的任务的优先级。Optionally, as an embodiment, the first descriptor includes a second field, where the second field is used to indicate a priority of the task corresponding to the first data.
可选地,作为一个实施例,第一描述符包括第三字段,第三字段用于指示第一数据的解包模式。Optionally, as an embodiment, the first descriptor includes a third field, where the third field is used to indicate an unpacking mode of the first data.
可选地,作为一个实施例,数据控制单元可以包括寄存器,方法700还可以包括:寄存器寄存第一描述符中第一数据对应的任务的优先级;读控制单元根据第一描述符,生成读控制信号,可以包括:读控制单元根据寄存器中的优先级,生成读控制信号。Optionally, as an embodiment, the data control unit may include a register, and the method 700 may further include: registering a priority of a task corresponding to the first data in the first descriptor; and the read control unit generates a read according to the first descriptor. The control signal may include: the read control unit generates a read control signal according to a priority in the register.
可选地,作为一个实施例,DMA控制器还包括写数据通路,控制通路还可以包括写控制单元,写数据通路可以包括打包单元,方法700还可以包括:写控制单元生成写控制信号,并通过写控制信号控制写数据通路经由内部总线从内部存储单元读取第二数据;打包单元对第二数据进行打包,写数据通路将打包后的第二数据经由外部总线写入外部内存。 Optionally, as an embodiment, the DMA controller further includes a write data path, the control path may further include a write control unit, the write data path may include a packing unit, and the method 700 may further include: the write control unit generates a write control signal, and The write data path is controlled by the write control signal to read the second data from the internal memory unit via the internal bus; the packing unit packs the second data, and the write data path writes the packed second data to the external memory via the external bus.
可选地,作为一个实施例,写数据通路还可以包括第二时钟处理单元,方法700还可以包括:第二时钟处理单元在打包单元对第二数据进行打包后,对打包后的第二数据进行异步先入先出FIFO的跨时钟域处理。Optionally, as an embodiment, the write data path may further include a second clock processing unit, and the method 700 may further include: after the second clock processing unit packs the second data, the second clock processing unit performs the packaged second data. Cross-clock domain processing of asynchronous first-in, first-out FIFOs.
图8是本申请一个实施例的数据写入方法800的示意性流程图。方法800可以由DMA控制器执行,DMA控制器包括控制通路和写数据通路,控制通路包括写控制单元,写数据通路包括打包单元,方法800可以包括以下步骤。FIG. 8 is a schematic flowchart of a data writing method 800 according to an embodiment of the present application. Method 800 can be performed by a DMA controller that includes a control path including a write control unit and a write data path including a packing unit, and method 800 can include the following steps.
S810,写控制单元生成写控制信号,并通过写控制信号控制写数据通路经由内部总线从内部存储单元读取第二数据。S810, the write control unit generates a write control signal, and controls the write data path to read the second data from the internal storage unit via the internal bus through the write control signal.
S820,打包单元对第二数据进行打包。S820. The packaging unit packages the second data.
S830,写数据通路将打包后的第二数据经由外部总线写入外部内存。S830. The write data path writes the packed second data to the external memory via an external bus.
本申请实施例的数据写入方法,通过在DMA控制器内部设置控制通路和写数据通路,写数据通路在往外部内存写取数据的同时,通过打包单元对数据进行打包,使得DMA控制器在数据搬移的同时进行打包操作,二者并行处理,可以提高数据处理速度,能够提升芯片的性能In the data writing method of the embodiment of the present application, by setting a control path and a write data path inside the DMA controller, the write data path writes data to the external memory, and packs the data through the packing unit, so that the DMA controller is The data is moved at the same time as the packaging operation, and the two are processed in parallel, which can improve the data processing speed and improve the performance of the chip.
可选地,作为一个实施例,S820打包单元对第二数据进行打包,可以包括:打包单元根据预设的打包模式,对第二数据进行打包。Optionally, as an embodiment, the S820 packaging unit packing the second data may include: the packaging unit packing the second data according to the preset packaging mode.
可选地,作为一个实施例,写数据通路还可以包括第二时钟处理单元,方法800还可以包括:第二时钟处理单元在打包单元对第二数据进行打包后,对打包后的第二数据进行异步先入先出FIFO的跨时钟域处理。Optionally, as an embodiment, the write data path may further include a second clock processing unit, and the method 800 may further include: after the second clock processing unit packs the second data, the second clock processing unit performs the packed second data. Cross-clock domain processing of asynchronous first-in, first-out FIFOs.
可选地,作为一个实施例,控制通路还可以包括数据控制单元,方法800还可以包括:数据控制单元读取第二数据的第二描述符;S810写控制单元生成写控制信号,可以包括:写控制单元根据第二描述符,生成写控制信号。Optionally, as an embodiment, the control path may further include a data control unit, and the method 800 may further include: the data control unit reads the second descriptor of the second data; and the S810 write control unit generates the write control signal, which may include: The write control unit generates a write control signal based on the second descriptor.
可选地,作为一个实施例,第二描述符包括第一字段,第一字段用于指示第二数据的类型为立即数、一维1D数据或二维2D数据。Optionally, as an embodiment, the second descriptor includes a first field, where the first field is used to indicate that the type of the second data is immediate, one-dimensional 1D data, or two-dimensional 2D data.
可选地,作为一个实施例,第二描述符包括第二字段,第二字段用于指示第二数据对应的任务的优先级。Optionally, as an embodiment, the second descriptor includes a second field, where the second field is used to indicate a priority of the task corresponding to the second data.
可选地,作为一个实施例,第二描述符包括第三字段,第三字段用于指示第二数据的打包模式。Optionally, as an embodiment, the second descriptor includes a third field, where the third field is used to indicate a packing mode of the second data.
可选地,作为一个实施例,数据控制单元可以包括寄存器,方法800还可以包括:寄存器寄存第二描述符中第二数据对应的任务的优先级;写控制 单元根据第二描述符,生成写控制信号,可以包括:写控制单元根据寄存器中的优先级生成写控制信号。Optionally, as an embodiment, the data control unit may include a register, and the method 800 may further include: registering a priority of a task corresponding to the second data in the second descriptor; and writing control The unit generates a write control signal according to the second descriptor, and may include: the write control unit generates a write control signal according to the priority in the register.
可选地,作为一个实施例,DMA控制器还可以包括读数据通路,控制通路还可以包括读控制单元,读数据通路可以包括解包单元,方法800还可以包括:读控制单元生成读控制信号,并通过读控制信号控制读数据通路经由外部总线从外部内存读取第一数据;解包单元对第一数据进行解包,读数据通路将解包后的第一数据经由内部总线写入内部存储单元。Optionally, as an embodiment, the DMA controller may further include a read data path, the control path may further include a read control unit, the read data path may include a unpacking unit, and the method 800 may further include: the read control unit generates a read control signal And controlling the read data path to read the first data from the external memory via the external bus through the read control signal; the unpacking unit unpacks the first data, and the read data path writes the unpacked first data to the internal via the internal bus Storage unit.
可选地,作为一个实施例,读数据通路还可以包括第一时钟处理单元,方法800还可以包括:第一时钟处理单元对读数据通路读取的第一数据进行异步先入先出FIFO的跨时钟域处理;解包单元对第一数据进行解包,可以包括:解包单元对进行FIFO的跨时钟域处理后的第一数据进行解包。Optionally, as an embodiment, the read data path may further include a first clock processing unit, and the method 800 may further include: the first clock processing unit performs asynchronous first-in first-out FIFO on the first data read by the read data path. The clock domain processing; the unpacking unit unpacking the first data may include: the unpacking unit unpacking the first data after performing the cross-clock domain processing of the FIFO.
本申请实施例的数据读取方法和数据写入方法的具体流程,已在前文说明DMA控制器时进行了详细说明,此处不再赘述。The specific flow of the data reading method and the data writing method in the embodiment of the present application has been described in detail in the foregoing description of the DMA controller, and details are not described herein again.
本申请实施例还提供一种集成电路,该集成电路包括本申请实施例的DMA控制器100、DMA控制器500和DMA控制器600中的至少一种。The embodiment of the present application further provides an integrated circuit including at least one of the DMA controller 100, the DMA controller 500, and the DMA controller 600 of the embodiment of the present application.
应理解,本申请实施例的集成电路可以为应用型专用集成电路(Application Specific Integrated Circuit,ASIC)或者为现场可编程门阵列(Field-Programmable Gate Array,FPGA)。It should be understood that the integrated circuit of the embodiment of the present application may be an Application Specific Integrated Circuit (ASIC) or a Field-Programmable Gate Array (FPGA).
本申请实施例还提供一种计算芯片,该计算芯片包括本申请实施例的DMA控制器100、DMA控制器500和DMA控制器600中的至少一种。The embodiment of the present application further provides a computing chip, which includes at least one of the DMA controller 100, the DMA controller 500, and the DMA controller 600 of the embodiment of the present application.
本申请实施例还提供一种可移动设备,该可移动设备包括本申请实施例的DMA控制器100、DMA控制器500和DMA控制器600中的至少一种。The embodiment of the present application further provides a mobile device, which includes at least one of the DMA controller 100, the DMA controller 500, and the DMA controller 600 of the embodiment of the present application.
本申请实施例的可移动设备可以是飞行器,尤其可以是无人机。The mobile device of the embodiment of the present application may be an aircraft, and in particular may be a drone.
应理解,本申请各实施例的电路、子电路、子单元的划分只是示意性的。本领域普通技术人员可以意识到,本文中所公开的实施例描述的各示例的电路、子电路和子单元,能够再行拆分或组合。It should be understood that the division of circuits, sub-circuits, and sub-units of various embodiments of the present application is merely illustrative. Those of ordinary skill in the art will appreciate that the circuits, sub-circuits, and sub-units of the various examples described in the embodiments disclosed herein can be further separated or combined.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网 络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented in software, it may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, the processes or functions described in accordance with embodiments of the present application are generated in whole or in part. The computer can be a general purpose computer, a special purpose computer, or a computer network Network, or other programmable device. The computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be from a website site, computer, server or data center Transmission to another website site, computer, server, or data center by wire (eg, coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.). The computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a high-density digital video disc (DVD)), or a semiconductor medium (for example, a solid state hard disk (Solid State Disk, SSD)) and so on.
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。It is to be understood that the phrase "one embodiment" or "an embodiment" or "an embodiment" or "an embodiment" means that the particular features, structures, or characteristics relating to the embodiments are included in at least one embodiment of the present application. Thus, "in one embodiment" or "in an embodiment" or "an" In addition, these particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。It should be understood that, in the various embodiments of the present application, the size of the sequence numbers of the foregoing processes does not mean the order of execution sequence, and the order of execution of each process should be determined by its function and internal logic, and should not be applied to the embodiment of the present application. The implementation process constitutes any limitation.
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。It should be understood that in the embodiment of the present application, "B corresponding to A" means that B is associated with A, and B can be determined according to A. However, it should also be understood that determining B from A does not mean that B is only determined based on A, and that B can also be determined based on A and/or other information.
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。It should be understood that the term "and/or" herein is merely an association relationship describing an associated object, indicating that there may be three relationships, for example, A and/or B, which may indicate that A exists separately, and A and B exist simultaneously. There are three cases of B alone. In addition, the character "/" in this article generally indicates that the contextual object is an "or" relationship.
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。 Those of ordinary skill in the art will appreciate that the elements and algorithm steps of the various examples described in connection with the embodiments disclosed herein can be implemented in electronic hardware or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods to implement the described functions for each particular application, but such implementation should not be considered to be beyond the scope of the present application.
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。A person skilled in the art can clearly understand that for the convenience and brevity of the description, the specific working process of the system, the device and the unit described above can refer to the corresponding process in the foregoing method embodiment, and details are not described herein again.
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided by the present application, it should be understood that the disclosed systems, devices, and methods may be implemented in other manners. For example, the device embodiments described above are merely illustrative. For example, the division of the unit is only a logical function division. In actual implementation, there may be another division manner, for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。 The foregoing is only a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto, and any person skilled in the art can easily think of changes or substitutions within the technical scope disclosed in the present application. It should be covered by the scope of protection of this application. Therefore, the scope of protection of the present application should be determined by the scope of the claims.

Claims (42)

  1. 一种直接存储器访问DMA控制器,其特征在于,包括控制通路和读数据通路,A direct memory access DMA controller characterized by including a control path and a read data path,
    所述控制通路包括读控制单元,所述读控制单元用于生成读控制信号,并通过所述读控制信号控制所述读数据通路经由外部总线从外部内存读取第一数据;The control path includes a read control unit for generating a read control signal, and controlling, by the read control signal, the read data path to read first data from an external memory via an external bus;
    所述读数据通路包括解包单元,所述解包单元用于对所述第一数据进行解包,所述读数据通路将解包后的第一数据经由内部总线写入内部存储单元。The read data path includes a depacket unit for unpacking the first data, and the read data path writes the unpacked first data to an internal storage unit via an internal bus.
  2. 根据权利要求1所述的DMA控制器,其特征在于,所述解包单元具体用于根据预设的解包模式,对所述第一数据进行解包。The DMA controller according to claim 1, wherein the unpacking unit is specifically configured to unpack the first data according to a preset unpacking mode.
  3. 根据权利要求1所述的DMA控制器,其特征在于,所述读数据通路还包括第一时钟处理单元,用于对所述读数据通路读取的所述第一数据进行异步先入先出FIFO的跨时钟域处理,所述解包单元具体用于对进行FIFO的跨时钟域处理后的第一数据进行解包。The DMA controller according to claim 1, wherein said read data path further comprises a first clock processing unit for performing asynchronous first-in first-out FIFO on said first data read by said read data path The cross-clock domain processing is used to unpack the first data processed by the cross-clock domain of the FIFO.
  4. 根据权利要求1所述的DMA控制器,其特征在于,所述控制通路还包括数据控制单元,所述数据控制单元用于读取所述第一数据的第一描述符,所述读控制单元具体用于根据所述第一描述符生成所述读控制信号。The DMA controller according to claim 1, wherein said control path further comprises a data control unit, said data control unit is operative to read a first descriptor of said first data, said read control unit Specifically, the read control signal is generated according to the first descriptor.
  5. 根据权利要求4所述的DMA控制器,其特征在于,所述第一描述符包括第一字段,所述第一字段用于指示所述第一数据的类型为立即数、一维1D数据或二维2D数据。The DMA controller according to claim 4, wherein the first descriptor comprises a first field, the first field is used to indicate that the type of the first data is an immediate number, one-dimensional 1D data or 2D 2D data.
  6. 根据权利要求4所述的DMA控制器,其特征在于,所述第一描述符包括第二字段,所述第二字段用于指示所述第一数据对应的任务的优先级。The DMA controller according to claim 4, wherein the first descriptor comprises a second field, and the second field is used to indicate a priority of a task corresponding to the first data.
  7. 根据权利要求4所述的DMA控制器,其特征在于,所述第一描述符包括第三字段,所述第三字段用于指示所述第一数据的解包模式。The DMA controller according to claim 4, wherein said first descriptor comprises a third field, said third field being for indicating an unpacking mode of said first data.
  8. 根据权利要求4所述的DMA控制器,其特征在于,所述数据控制单元包括寄存器,所述寄存器用于寄存所述第一描述符中所述第一数据对应的任务的优先级,所述读控制单元用于根据所述寄存器中的优先级生成所述读控制信号。The DMA controller according to claim 4, wherein said data control unit includes a register for registering a priority of a task corresponding to said first data in said first descriptor, said A read control unit is operative to generate the read control signal based on a priority in the register.
  9. 根据权利要求1所述的DMA控制器,其特征在于,所述DMA控制 器还包括写数据通路,The DMA controller of claim 1 wherein said DMA control The device also includes a write data path.
    所述控制通路还包括写控制单元,所述写控制单元用于生成写控制信号,并通过所述写控制信号控制所述写数据通路经由所述内部总线从所述内部存储单元读取第二数据;The control path further includes a write control unit for generating a write control signal, and controlling, by the write control signal, the write data path to read a second from the internal storage unit via the internal bus data;
    所述写数据通路包括打包单元,所述打包单元用于对所述第二数据进行打包,所述写数据通路将打包后的第二数据经由所述外部总线写入所述外部内存。The write data path includes a packing unit for packaging the second data, the write data path writing the packaged second data to the external memory via the external bus.
  10. 根据权利要求9所述的DMA控制器,其特征在于,所述写数据通路还包括第二时钟处理单元,用于在所述打包单元对所述第二数据进行打包后,对打包后的所述第二数据进行异步先入先出FIFO的跨时钟域处理。The DMA controller according to claim 9, wherein the write data path further comprises a second clock processing unit, configured to: after the packing unit packs the second data, the packaged device The second data is processed across the clock domain of the asynchronous first in first out FIFO.
  11. 一种直接存储器访问DMA控制器,其特征在于,包括控制通路和写数据通路,A direct memory access DMA controller characterized by including a control path and a write data path,
    所述控制通路包括写控制单元,所述写控制单元用于生成写控制信号,并通过所述写控制信号控制所述写数据通路经由内部总线从内部存储单元读取第二数据;The control path includes a write control unit for generating a write control signal, and controlling, by the write control signal, the write data path to read second data from an internal storage unit via an internal bus;
    所述写数据通路包括打包单元,所述打包单元用于对所述第二数据进行打包,所述写数据通路将打包后的第二数据经由外部总线写入外部内存。The write data path includes a packing unit, and the packing unit is configured to package the second data, and the write data path writes the packaged second data to the external memory via an external bus.
  12. 根据权利要求11所述的DMA控制器,其特征在于,所述打包单元具体用于根据预设的打包模式,对所述第二数据进行打包。The DMA controller according to claim 11, wherein the packaging unit is specifically configured to package the second data according to a preset packing mode.
  13. 根据权利要求11所述的DMA控制器,其特征在于,所述写数据通路还包括第二时钟处理单元,用于在所述打包单元对所述第二数据进行打包后,对打包后的所述第二数据进行异步先入先出FIFO的跨时钟域处理。The DMA controller according to claim 11, wherein the write data path further comprises a second clock processing unit, configured to: after the packing unit packs the second data, the packaged device The second data is processed across the clock domain of the asynchronous first in first out FIFO.
  14. 根据权利要求11所述的DMA控制器,其特征在于,所述控制通路还包括数据控制单元,所述数据控制单元用于读取所述第二数据的第二描述符,所述写控制单元具体用于根据所述第二描述符生成所述写控制信号。The DMA controller according to claim 11, wherein said control path further comprises a data control unit, said data control unit is operative to read a second descriptor of said second data, said write control unit Specifically, the generating the write control signal is generated according to the second descriptor.
  15. 根据权利要求14所述的DMA控制器,其特征在于,所述第二描述符包括第一字段,所述第一字段用于指示所述第二数据的类型为立即数、一维1D数据或二维2D数据。The DMA controller according to claim 14, wherein the second descriptor comprises a first field, the first field is used to indicate that the type of the second data is an immediate number, one-dimensional 1D data or 2D 2D data.
  16. 根据权利要求14所述的DMA控制器,其特征在于,所述第二描述符包括第二字段,所述第二字段用于指示所述第二数据对应的任务的优先级。 The DMA controller according to claim 14, wherein the second descriptor comprises a second field, the second field being used to indicate a priority of a task corresponding to the second data.
  17. 根据权利要求14所述的DMA控制器,其特征在于,所述第二描述符包括第三字段,所述第三字段用于指示所述第二数据的打包模式。The DMA controller according to claim 14, wherein said second descriptor comprises a third field, said third field being for indicating a packing mode of said second data.
  18. 根据权利要求14所述的DMA控制器,其特征在于,所述数据控制单元包括寄存器,所述寄存器用于寄存所述第二描述符中所述第二数据对应的任务的优先级,所述写控制单元用于根据所述寄存器中的优先级生成所述写控制信号。The DMA controller according to claim 14, wherein said data control unit includes a register for registering a priority of a task corresponding to said second data in said second descriptor, said A write control unit is operative to generate the write control signal based on a priority in the register.
  19. 根据权利要求11所述的DMA控制器,其特征在于,所述DMA控制器还包括读数据通路,The DMA controller of claim 11 wherein said DMA controller further comprises a read data path.
    所述控制通路还包括读控制单元,所述读控制单元用于生成读控制信号,并通过所述读控制信号控制所述读数据通路经由所述外部总线从所述外部内存读取第一数据;The control path further includes a read control unit for generating a read control signal, and controlling, by the read control signal, the read data path to read the first data from the external memory via the external bus ;
    所述读数据通路包括解包单元,所述解包单元用于对所述第一数据进行解包,所述读数据通路将解包后的第一数据经由所述内部总线写入所述内部存储单元。The read data path includes a depacket unit for unpacking the first data, the read data path writing the unpacked first data to the internal via the internal bus Storage unit.
  20. 根据权利要求19所述的DMA控制器,其特征在于,所述读数据通路还包括第一时钟处理单元,用于对所述读数据通路读取的所述第一数据进行异步先入先出FIFO的跨时钟域处理,所述解包单元具体用于对进行FIFO的跨时钟域处理后的第一数据进行解包。The DMA controller according to claim 19, wherein said read data path further comprises a first clock processing unit for performing asynchronous first-in first-out FIFO on said first data read by said read data path The cross-clock domain processing is used to unpack the first data processed by the cross-clock domain of the FIFO.
  21. 一种数据读取方法,其特征在于,所述方法由直接存储器访问DMA控制器执行,所述DMA控制器包括控制通路和读数据通路,所述控制通路包括读控制单元,所述读数据通路包括解包单元,所述方法包括:A data reading method, characterized in that the method is performed by a direct memory access DMA controller, the DMA controller comprising a control path and a read data path, the control path comprising a read control unit, the read data path The unpacking unit is included, and the method includes:
    所述读控制单元生成读控制信号,并通过所述读控制信号控制所述读数据通路经由外部总线从外部内存读取第一数据;The read control unit generates a read control signal, and controls the read data path to read the first data from the external memory via the external bus through the read control signal;
    所述解包单元对所述第一数据进行解包,所述读数据通路将解包后的第一数据经由内部总线写入内部存储单元。The unpacking unit unpacks the first data, and the read data path writes the unpacked first data to an internal storage unit via an internal bus.
  22. 根据权利要求21所述的方法,其特征在于,所述解包单元对所述第一数据进行解包,包括:The method according to claim 21, wherein the unpacking unit unpacks the first data, including:
    所述解包单元根据预设的解包模式,对所述第一数据进行解包。The unpacking unit unpacks the first data according to a preset unpacking mode.
  23. 根据权利要求21所述的方法,其特征在于,所述读数据通路还包括第一时钟处理单元,所述方法还包括:The method of claim 21, wherein the read data path further comprises a first clock processing unit, the method further comprising:
    所述第一时钟处理单元对所述读数据通路读取的所述第一数据进行异 步先入先出FIFO的跨时钟域处理;The first clock processing unit differentiating the first data read by the read data path Step-by-clock domain processing of the first-in first-out FIFO;
    所述解包单元对所述第一数据进行解包,包括:Unpacking the first data by the unpacking unit includes:
    所述解包单元对进行FIFO的跨时钟域处理后的第一数据进行解包。The unpacking unit unpacks the first data after the cross-clock domain processing of the FIFO.
  24. 根据权利要求21所述的方法,其特征在于,所述控制通路还包括数据控制单元,所述方法还包括:The method of claim 21, wherein the control path further comprises a data control unit, the method further comprising:
    所述数据控制单元读取所述第一数据的第一描述符;The data control unit reads a first descriptor of the first data;
    所述读控制单元生成读控制信号,包括:The read control unit generates a read control signal, including:
    所述读控制单元根据所述第一描述符,生成所述读控制信号。The read control unit generates the read control signal based on the first descriptor.
  25. 根据权利要求24所述的方法,其特征在于,所述第一描述符包括第一字段,所述第一字段用于指示所述第一数据的类型为立即数、一维1D数据或二维2D数据。The method according to claim 24, wherein the first descriptor comprises a first field, the first field is used to indicate that the type of the first data is an immediate number, one-dimensional 1D data or two-dimensional 2D data.
  26. 根据权利要求24所述的方法,其特征在于,所述第一描述符包括第二字段,所述第二字段用于指示所述第一数据对应的任务的优先级。The method according to claim 24, wherein the first descriptor comprises a second field, and the second field is used to indicate a priority of a task corresponding to the first data.
  27. 根据权利要求24所述的方法,其特征在于,所述第一描述符包括第三字段,所述第三字段用于指示所述第一数据的解包模式。The method of claim 24, wherein the first descriptor comprises a third field, the third field being used to indicate an unpacking mode of the first data.
  28. 根据权利要求24所述的方法,其特征在于,所述数据控制单元包括寄存器,所述方法还包括:The method of claim 24, wherein the data control unit comprises a register, the method further comprising:
    所述寄存器寄存所述第一描述符中所述第一数据对应的任务的优先级;The register registers a priority of a task corresponding to the first data in the first descriptor;
    所述读控制单元根据所述第一描述符,生成所述读控制信号,包括:The read control unit generates the read control signal according to the first descriptor, including:
    所述读控制单元根据所述寄存器中的优先级,生成所述读控制信号。The read control unit generates the read control signal based on a priority in the register.
  29. 根据权利要求21所述的方法,其特征在于,所述DMA控制器还包括写数据通路,所述控制通路还包括写控制单元,所述写数据通路包括打包单元,所述方法还包括:The method of claim 21, wherein the DMA controller further comprises a write data path, the control path further comprising a write control unit, the write data path comprising a packaging unit, the method further comprising:
    所述写控制单元生成写控制信号,并通过所述写控制信号控制所述写数据通路经由所述内部总线从所述内部存储单元读取第二数据;The write control unit generates a write control signal, and controls, by the write control signal, the write data path to read second data from the internal storage unit via the internal bus;
    所述打包单元对所述第二数据进行打包,所述写数据通路将打包后的第二数据经由所述外部总线写入所述外部内存。The packing unit packs the second data, and the write data path writes the packaged second data to the external memory via the external bus.
  30. 根据权利要求29所述的方法,其特征在于,所述写数据通路还包括第二时钟处理单元,所述方法还包括:The method of claim 29, wherein the write data path further comprises a second clock processing unit, the method further comprising:
    所述第二时钟处理单元在所述打包单元对所述第二数据进行打包后,对打包后的所述第二数据进行异步先入先出FIFO的跨时钟域处理。 After the packetizing unit packs the second data, the second clock processing unit performs cross-clock domain processing of the asynchronous first-in first-out FIFO on the packed second data.
  31. 一种数据写入方法,其特征在于,所述方法由直接存储器访问DMA控制器执行,所述DMA控制器包括控制通路和写数据通路,所述控制通路包括写控制单元,所述写数据通路包括打包单元,所述方法包括:A data writing method, characterized in that the method is performed by a direct memory access DMA controller, the DMA controller comprising a control path and a write data path, the control path comprising a write control unit, the write data path Including a packaging unit, the method includes:
    所述写控制单元生成写控制信号,并通过所述写控制信号控制所述写数据通路经由内部总线从内部存储单元读取第二数据;The write control unit generates a write control signal, and controls the write data path to read the second data from the internal storage unit via the internal bus through the write control signal;
    所述打包单元对所述第二数据进行打包,所述写数据通路将打包后的第二数据经由外部总线写入外部内存。The packing unit packs the second data, and the write data path writes the packed second data to the external memory via an external bus.
  32. 根据权利要求31所述的方法,其特征在于,所述打包单元对所述第二数据进行打包,包括:The method according to claim 31, wherein the packaging unit packages the second data, including:
    所述打包单元根据预设的打包模式,对所述第二数据进行打包。The packaging unit packages the second data according to a preset packing mode.
  33. 根据权利要求31所述的方法,其特征在于,所述写数据通路还包括第二时钟处理单元,所述方法还包括:The method of claim 31, wherein the write data path further comprises a second clock processing unit, the method further comprising:
    所述第二时钟处理单元在所述打包单元对所述第二数据进行打包后,对打包后的所述第二数据进行异步先入先出FIFO的跨时钟域处理。After the packetizing unit packs the second data, the second clock processing unit performs cross-clock domain processing of the asynchronous first-in first-out FIFO on the packed second data.
  34. 根据权利要求31所述的方法,其特征在于,所述控制通路还包括数据控制单元,所述方法还包括:The method of claim 31, wherein the control path further comprises a data control unit, the method further comprising:
    所述数据控制单元读取所述第二数据的第二描述符;The data control unit reads a second descriptor of the second data;
    所述写控制单元生成写控制信号,包括:The write control unit generates a write control signal, including:
    所述写控制单元根据所述第二描述符,生成所述写控制信号。The write control unit generates the write control signal according to the second descriptor.
  35. 根据权利要求34所述的方法,其特征在于,所述第二描述符包括第一字段,所述第一字段用于指示所述第二数据的类型为立即数、一维1D数据或二维2D数据。The method according to claim 34, wherein the second descriptor comprises a first field, the first field is used to indicate that the type of the second data is immediate, one-dimensional 1D data or two-dimensional 2D data.
  36. 根据权利要求34所述的方法,其特征在于,所述第二描述符包括第二字段,所述第二字段用于指示所述第二数据对应的任务的优先级。The method according to claim 34, wherein the second descriptor comprises a second field, the second field being used to indicate a priority of a task corresponding to the second data.
  37. 根据权利要求34所述的方法,其特征在于,所述第二描述符包括第三字段,所述第三字段用于指示所述第二数据的打包模式。The method of claim 34, wherein the second descriptor comprises a third field, the third field being used to indicate a packing mode of the second data.
  38. 根据权利要求34所述的方法,其特征在于,所述数据控制单元包括寄存器,所述方法还包括:The method of claim 34, wherein the data control unit comprises a register, the method further comprising:
    所述寄存器寄存所述第二描述符中所述第二数据对应的任务的优先级;The register registers a priority of a task corresponding to the second data in the second descriptor;
    所述写控制单元根据所述第二描述符,生成所述写控制信号,包括:The write control unit generates the write control signal according to the second descriptor, including:
    所述写控制单元根据所述寄存器中的优先级生成所述写控制信号。 The write control unit generates the write control signal according to a priority in the register.
  39. 根据权利要求31所述的方法,其特征在于,所述DMA控制器还包括读数据通路,所述控制通路还包括读控制单元,所述读数据通路包括解包单元,所述方法还包括:The method of claim 31, wherein the DMA controller further comprises a read data path, the control path further comprising a read control unit, the read data path comprising an unpacking unit, the method further comprising:
    所述读控制单元生成读控制信号,并通过所述读控制信号控制所述读数据通路经由所述外部总线从所述外部内存读取第一数据;The read control unit generates a read control signal, and controls, by the read control signal, the read data path to read first data from the external memory via the external bus;
    所述解包单元对所述第一数据进行解包,所述读数据通路将解包后的第一数据经由所述内部总线写入所述内部存储单元。The unpacking unit unpacks the first data, and the read data path writes the unpacked first data to the internal storage unit via the internal bus.
  40. 根据权利要求39所述的方法,其特征在于,所述读数据通路还包括第一时钟处理单元,所述方法还包括:The method of claim 39, wherein the read data path further comprises a first clock processing unit, the method further comprising:
    所述第一时钟处理单元对所述读数据通路读取的所述第一数据进行异步先入先出FIFO的跨时钟域处理;Performing, by the first clock processing unit, the cross-clock domain processing of the asynchronous first-in first-out FIFO on the first data read by the read data path;
    所述解包单元对所述第一数据进行解包,包括:Unpacking the first data by the unpacking unit includes:
    所述解包单元对进行FIFO的跨时钟域处理后的第一数据进行解包。The unpacking unit unpacks the first data after the cross-clock domain processing of the FIFO.
  41. 一种集成电路,其特征在于,包括权利要求1至10中任一项所述的DMA控制器和/或权利要求11至20中任一项所述的DMA控制器。An integrated circuit comprising the DMA controller according to any one of claims 1 to 10 and/or the DMA controller according to any one of claims 11 to 20.
  42. 一种可移动设备,其特征在于,包括权利要求1至10中任一项所述的DMA控制器和/或权利要求11至20中任一项所述的DMA控制器。 A mobile device, comprising the DMA controller according to any one of claims 1 to 10 and/or the DMA controller according to any one of claims 11 to 20.
PCT/CN2017/108644 2017-10-31 2017-10-31 Direct memory access controller, data reading method, and data writing method WO2019084789A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2017/108644 WO2019084789A1 (en) 2017-10-31 2017-10-31 Direct memory access controller, data reading method, and data writing method
CN201780010826.8A CN108701102A (en) 2017-10-31 2017-10-31 Direct memory access controller, method for reading data and method for writing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2017/108644 WO2019084789A1 (en) 2017-10-31 2017-10-31 Direct memory access controller, data reading method, and data writing method

Publications (1)

Publication Number Publication Date
WO2019084789A1 true WO2019084789A1 (en) 2019-05-09

Family

ID=63844132

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/108644 WO2019084789A1 (en) 2017-10-31 2017-10-31 Direct memory access controller, data reading method, and data writing method

Country Status (2)

Country Link
CN (1) CN108701102A (en)
WO (1) WO2019084789A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021179218A1 (en) * 2020-03-11 2021-09-16 深圳市大疆创新科技有限公司 Direct memory access unit, processor, device, processing method, and storage medium
CN115794722B (en) * 2023-02-10 2023-05-16 智绘微电子科技(南京)有限公司 AXI outlining interface conversion realization method
CN117033270B (en) * 2023-10-08 2024-01-26 腾讯科技(深圳)有限公司 Chip, device and data processing method
CN117971746A (en) * 2024-03-28 2024-05-03 深圳鲲云信息科技有限公司 Method and computing device for controlling direct memory access controller

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584513B1 (en) * 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US20070162644A1 (en) * 2005-12-13 2007-07-12 Poseidon Design Systems, Inc. Data packing in A 32-bit DMA architecture
CN102135946A (en) * 2010-01-27 2011-07-27 中兴通讯股份有限公司 Data processing method and device
CN103714026A (en) * 2014-01-14 2014-04-09 中国人民解放军国防科学技术大学 Memorizer access method and device supporting original-address data exchange
CN106951388A (en) * 2017-03-16 2017-07-14 湖南博匠信息科技有限公司 A kind of DMA data transfer method and system based on PCIe

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100370436C (en) * 2005-09-07 2008-02-20 深圳市海思半导体有限公司 Method for improving storage access efficiency and storage coutroller
TW200921395A (en) * 2007-11-14 2009-05-16 Sonix Technology Co Ltd System and method of direct memory access
CN103885919B (en) * 2014-03-20 2017-01-04 北京航空航天大学 A kind of many DSP and FPGA parallel processing system (PPS)s and implementation method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584513B1 (en) * 2000-03-31 2003-06-24 Emc Corporation Direct memory access (DMA) transmitter
US20070162644A1 (en) * 2005-12-13 2007-07-12 Poseidon Design Systems, Inc. Data packing in A 32-bit DMA architecture
CN102135946A (en) * 2010-01-27 2011-07-27 中兴通讯股份有限公司 Data processing method and device
CN103714026A (en) * 2014-01-14 2014-04-09 中国人民解放军国防科学技术大学 Memorizer access method and device supporting original-address data exchange
CN106951388A (en) * 2017-03-16 2017-07-14 湖南博匠信息科技有限公司 A kind of DMA data transfer method and system based on PCIe

Also Published As

Publication number Publication date
CN108701102A (en) 2018-10-23

Similar Documents

Publication Publication Date Title
WO2019084789A1 (en) Direct memory access controller, data reading method, and data writing method
US8930593B2 (en) Method for setting parameters and determining latency in a chained device system
US7844752B2 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
WO2018232736A1 (en) Memory access technology and computer system
US7694035B2 (en) DMA shared byte counters in a parallel computer
CN109219805B (en) Memory access method, related device, system and storage medium of multi-core system
US9092275B2 (en) Store operation with conditional push of a tag value to a queue
JP2010027032A (en) Fifo device and method of storing data in fifo buffer
JPH07219844A (en) Apparatus and method for cache line replacing
CN102314400B (en) Method and device for dispersing converged DMA (Direct Memory Access)
CN113900974B (en) Storage device, data storage method and related equipment
CN112189324B (en) Bandwidth matched scheduler
EP1508100B1 (en) Inter-chip processor control plane
US11693663B2 (en) Circular queue management with split indexes
WO2016169032A1 (en) Data format conversion device, buffer chip and method
CN107250995B (en) Memory management device
US10489322B2 (en) Apparatus and method to improve performance in DMA transfer of data
CN106062814B (en) Improved banked memory access efficiency by a graphics processor
US7774513B2 (en) DMA circuit and computer system
US20080201537A1 (en) Memory Controller and Method for Coupling a Network and a Memory
CN109144742B (en) Method for exchanging information through queue and system for processing queue
JP5659817B2 (en) Interconnect equipment
WO2013086847A1 (en) Inter-core communications method and core processor
CN109992198B (en) Data transmission method of neural network and related product
JP7206485B2 (en) Information processing system, semiconductor integrated circuit and information processing method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17930645

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17930645

Country of ref document: EP

Kind code of ref document: A1