CN106294232B - 一种dma控制器及其实现方法 - Google Patents

一种dma控制器及其实现方法 Download PDF

Info

Publication number
CN106294232B
CN106294232B CN201510264291.XA CN201510264291A CN106294232B CN 106294232 B CN106294232 B CN 106294232B CN 201510264291 A CN201510264291 A CN 201510264291A CN 106294232 B CN106294232 B CN 106294232B
Authority
CN
China
Prior art keywords
fifo
data
bit
fixed point
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510264291.XA
Other languages
English (en)
Other versions
CN106294232A (zh
Inventor
文博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
Shenzhen ZTE Microelectronics Technology Co Ltd
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 Shenzhen ZTE Microelectronics Technology Co Ltd filed Critical Shenzhen ZTE Microelectronics Technology Co Ltd
Priority to CN201510264291.XA priority Critical patent/CN106294232B/zh
Priority to US15/565,176 priority patent/US20180081836A1/en
Priority to JP2017553386A priority patent/JP6570046B2/ja
Priority to PCT/CN2015/089243 priority patent/WO2016183965A1/zh
Priority to EP15892343.3A priority patent/EP3273357B1/en
Publication of CN106294232A publication Critical patent/CN106294232A/zh
Application granted granted Critical
Publication of CN106294232B publication Critical patent/CN106294232B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/067Bidirectional FIFO, i.e. system allowing data transfer in two directions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2804Systems and methods for controlling the DMA frequency on an access bus

Landscapes

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

Abstract

本发明公开了一种直接存储器存取(DMA)控制器,所述DMA控制器包括读数据通道输入接口、写数据通道输出接口、控制逻辑模块、先入先出(FIFO)模块,还包括:第一转换器,用于将通过读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;第一数据选择器,用于当判断需要进行数据运算时,选通经第一转换器处理后的数据,再将所述处理后的数据写进FIFO模块;第二转换器,用于将从FIFO模块读取的第二数据进行第二运算处理;第二数据选择器,用于当判断需要进行数据运算时,选通经第二转换器处理后的数据,再将所述处理后的数据输出至写数据通道输出接口。同时,本发明还公开了一种DMA控制器实现方法。

Description

一种DMA控制器及其实现方法
技术领域
本发明涉及处理器领域,具体涉及一种DMA控制器及其实现方法。
背景技术
直接存储器存取(DMA,Direct Memory Access)控制器技术广泛应用于处理器及片上系统(SoC,System-on-a-Chip)中。DMA控制器的功能在于实现输入输出(I/O,Input/Output)接口和存储器之间的高速数据传输。DMA控制器可以作为处理器的一个外设模块而存在,且可以接收处理器核的参数配置进行数据搬运;DMA控制器可以和处理器核一样作为主(Master)访问处理器外部存储资源和内部存储器,使得处理器外部的系统存储器和处理器内部的程序存储器(PM,Program Memory)、数据存储器(DM,Data Memory)之间可以进行快速的数据搬运,而不需要处理器核使用其内部寄存器进行低效率的数据中转。处理器核配置DMA控制器之后,可以选择做其他事情,数据搬运的任务交由DMA控制器后台处理。总之,DMA控制器专门用于大量数据的搬运,而这正是处理器核不擅长的事情,处理器核可以抽身出来做其擅长的工作。
现有的DMA控制器只是单纯的执行数据搬运功能,源端和目的端数据一致且数据量相等。处理器核往往需要执行大量数据运算功能,比如浮点运算功能。相比定点数据,浮点数据由于精度要求需要更多的比特来表示。所以,对于相同数目的数据,浮点数据相比定点数据需要占用更大的存储空间。由于存储器的存储资源是有限的,如果处理器的外部存储器存储的是定点数据,可以节省外部存储器存储空间。定点数据通过DMA控制器搬运到处理器的内部存储器,但处理器还需要对内部存储器定点数据进行定浮转换才能进行浮点运算,这样又加重了处理器核的运算负担。如果处理器的外部存储器存储的是浮点数据,则使用DMA控制器搬运后,处理器核可以直接进行浮点运算,但浮点数据占用了较多的外部存储器存储空间。
发明内容
有鉴于此,本发明实施例期望提供一种DMA控制器及其实现方法,能解决现有技术中存在的节省处理器外部存储资源与减轻处理器核运算负担相矛盾的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种DMA控制器,所述DMA控制器包括读数据通道输入接口、写数据通道输出接口、控制逻辑模块、先入先出(FIFO,First In First Out)模块,所述DMA控制器还包括:
第一转换器,用于接收到第一控制指令时,对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算;其中,所述第一控制指令用于指示所述第一转换器进行第一运算处理;
第一数据选择器,用于当判断需要进行数据运算时,选通经所述第一转换器处理后的数据,再将所述经所述第一转换器处理后的数据写进所述FIFO模块;
第二转换器,用于接收到第二控制指令时,对从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示所述第二转换器进行第二运算处理;
第二数据选择器,用于当判断需要进行数据运算时,选通经所述第二转换器处理后的数据,再将所述经所述第二转换器处理后的数据输出至所述写数据通道输出接口。
优选地,所述DMA控制器通过先进可扩展接口AXI总线与外部存储器连接;其中,所述AXI总线宽度为64比特。
优选地,所述第一数据选择器,还用于当判断不需要进行数据运算时,直接选通从所述读数据通道输入接口所读取的第一数据,再将所述从所述读数据通道输入接口所读取的第一数据写进所述FIFO模块;所述第二数据选择器,还用于当判断不需要进行数据运算时,直接选通从所述FIFO模块读取的第二数据,再将所述从所述FIFO模块读取的第二数据输出至所述写数据通道输出接口。
优选地,所述第一转换器,还用于:进行第一运算处理时,输入数据量与输出数据量之比为3:4;所述第二转换器,还用于:进行第二运算处理时,输入数据量与输出数据量之比为4:3。
优选地,所述第一转换器,还用于:
以3个64比特定点数为一组,对每一组中的所述3个64比特定点数执行如下操作:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_2、FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_5、FIFO_6和FIFO_7;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,所述第二转换器,还用于:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b4步,从第b1步重新开始操作;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,当所述DMA控制器处于第一运算或第二运算模式时,所述DMA控制器以猝发12方式访问外部存储器;当所述DMA处于正常搬运模式时,所述DMA控制器以猝发16方式访问外部存储器。
本发明实施例还提供了一种DMA控制器实现方法,所述DMA控制器包括读数据通道输入接口、写数据通道输出接口、控制逻辑模块、FIFO模块,所述方法包括:
接收到第一控制指令时,对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;其中,所述第一控制指令用于指示进行第一运算处理;
当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第一运算处理后的数据写进所述FIFO模块;
相应的,接收到第二控制指令时,对从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示进行第二运算处理;
当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口。
优选地,所述DMA控制器通过AXI总线与外部存储器连接;其中,所述AXI总线宽度为64比特。
优选地,所述方法还包括:
当判断不需要进行数据运算时,直接选通从所述读数据通道输入接口所读取的第一数据,再将所述从所述读数据通道输入接口所读取的第一数据写进所述FIFO模块;
当判断不需要进行数据运算时,直接选通从所述FIFO模块读取的第二数据,再将所述从所述FIFO模块读取的第二数据输出至所述写数据通道输出接口。
优选地,所述方法还包括:
进行第一运算处理时,输入数据量与输出数据量之比为3:4;
进行第二运算处理时,输入数据量与输出数据量之比为4:3。
优选地,所述对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第一运算处理后的数据写进所述FIFO模块,包括:
以3个64比特定点数为一组,对每一组中的所述3个64比特定点数执行如下操作:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后写入FIFO_2、FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后写入FIFO_5、FIFO_6和FIFO_7;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,所述对从所述FIFO模块读取的第二数据进行第二运算处理;当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口,包括:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]通过所述写数据通道输出接口送入AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]通过所述写数据通道输出接口送入AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]通过所述写数据通道输出接口送入AXI写数据总线;
第b4步,从第b1重新开始操作;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,所述方法还包括:
当所述DMA处于第一运算或第二运算模式时,所述DMA控制器以猝发12方式访问外部存储器;当所述DMA处于正常搬运模式时,所述DMA控制器以猝发16方式访问外部存储器。
本发明实施例提供的DMA控制器及其实现方法,接收到第一控制指令时,将通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;其中,所述第一控制指令用于指示进行第一运算处理;当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第一运算处理后的数据写进FIFO模块;相应的,接收到第二控制指令时,将从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示进行第二运算处理;当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口。如此,本发明实施例所述技术方案解决了现有技术中存在的节省处理器存储资源与减轻处理器核运算负担相矛盾的问题,扩展了DMA控制器的功能,使其不仅具有数据搬运功能,还有第一运算和第二运算功能,从而节省了外部存储器使用空间,减轻了处理器核运算压力。
附图说明
图1为本发明实施例提供的DMA控制器的组成结构示意图;
图2是本发明实施例提供的DMA控制器的数据流的示意图;
图3是本发明实施例提供的第一数据存放格式的示意图;
图4是本发明实施例提供的定浮和浮定转换硬件设计实现示意图;
图5为本发明实施例提供的DMA控制器实现方法的流程示意图;
图6是本发明实施例提供的定浮转换处理的流程示意图;
图7是本发明实施例提供的浮定转换处理的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
需要说明的是,在下述本发明各实施例中,AMBA是Advanced MicrocontrollerBus Architecture的缩写,其中文名称是“高级微控制器总线架构”;AXI是AdvancedeXtensible Interface的缩写,其中文名称是“先进可扩展接口”;PM是Program Memory的缩写,其中文名称是“程序存储器”;DM是Data Memory的缩写,其中文名称是“数据存储器”;FIFO是First In First Out的缩写,其中文名称是“先进先出”;Multiplexer是指数据选择器,可以简写为MUX。
实施例一
图1为本发明实施例所提供的DMA控制器的组成结构示意图,如图1所示,该DMA控制器由最基本的读数据通道输入接口、写数据通道输出接口、控制逻辑模块、FIFO模块构成,关键是,所述DMA控制器还包括:
第一转换器11,用于接收到第一控制指令时,将通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;其中,所述第一控制指令用于指示所述第一转换器进行第一运算处理;
第一数据选择器12,用于当判断需要进行数据运算时,选通经所述第一转换器11处理后的数据,再将所述经所述第一转换器11处理后的数据写进所述FIFO模块;
第二转换器13,用于接收到第二控制指令时,将从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示所述第二转换器13进行第二运算处理;
第二数据选择器14,用于当判断需要进行数据运算时,选通经所述第二转换器13处理后的数据,再将所述经所述第二转换器13处理后的数据输出至所述写数据通道输出接口。
优选地,所述第一运算可以是但不限于:定浮转换运算,所述第二运算可以是但不限于:浮定转换运算。
具体地,所述第一运算和所述第二运算可以互为逆运算,例如,当所述第一运算是定浮转换运算时,所述第二运算是浮定转换运算;所述第一运算是解压缩时,所述第二运算是压缩运算。
优选地,所述DMA控制器通过AXI总线与外部存储器连接;其中,所述AXI总线宽度为64比特。
这里,所述AXI总线包括读数据总线、写数据总线、读地址总线、写地址总线、写响应总线。
优选地,所述第一数据选择器12,还用于当判断不需要进行数据运算时,直接选通从所述读数据通道输入接口所读取的第一数据,再将所述从所述读数据通道输入接口所读取的第一数据写进所述FIFO模块;所述第二数据选择器14,还用于当判断不需要进行数据运算时,直接选通从所述FIFO模块读取的第二数据,再将所述从所述FIFO模块读取的第二数据输出至所述写数据通道输出接口。
优选地,所述第一转换器11,还用于:进行第一运算处理时,输入数据量与输出数据量之比为3:4;
所述第二转换器13,还用于:进行第二运算处理时,输入数据量与输出数据量之比为4:3。
优选地,所述第一转换器11,具体还用于:
以3个64比特定点数为一组,对每一组中的所述3个64比特定点数执行如下操作:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_2、FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_5、FIFO_6和FIFO_7;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,所述第二转换器13,具体还用于:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b4步,从第b1步重新开始操作。
优选地,当所述DMA控制器处于第一运算或第二运算模式时,所述DMA控制器以猝发(burst)12方式访问外部存储器;当所述DMA处于正常搬运模式时,所述DMA控制器以猝发16方式访问外部存储器。
本发明所述DMA控制器,除了具有正常搬运功能之外,还具有第一运算和第二运算功能,减小了外部存储器的存储开销,并可替代处理器完成第一运算(如定浮转换)和第二运算(如浮定转换)计算,减小处理器核的运算压力。例如,定点数据存储在外部存储器中,DMA控制器将定点数据转换成浮点数据并传输到处理器内部存储器供处理器进行浮点数据运算。
实施例二
图2是本发明实施例提供的DMA控制器的数据流的示意图。该DMA控制器既可以执行下载(download)方向上的数据搬运,也可以执行上传(upload)方向上的数据搬运。而且,该DMA控制器支持两种工作模式:一种是正常搬运模式,另一种是第一或第二运算模式。
对于download方向:
当DMA控制器为正常搬运模式时,数据流依次为:外部存储器、系统总线、第一数据选择器、FIFO模块、DM(或PM);
当DMA控制器为第一运算模式时,数据流依次为:外部存储器、系统总线、第一转换器、第一数据选择器、FIFO模块、DM(或PM)。
优选地,所述第一数据选择器的类型可以为2选1数据选择器。
对于upload方向:
当DMA控制器为正常搬运模式时,数据流依次为:DM、FIFO模块、第二数据选择器、系统总线、外部存储器;
当DMA搬运为upload方向的第二运算模式时,数据流依次为:DM、FIFO模块、第二转换器、第二数据选择器、系统总线、外部存储器。
优选地,DMA控制器与系统总线的接口可采用AMBA AXI协议,即所述系统总线可以是AXI总线,其中,AXI总线中的AXI数据总线的宽度为64比特。
上述外部存储器也可以称为系统存储器。
实施例三
图3是本发明实施例提供的第一数据存放格式的示意图。由于第一数据是12比特宽,第二数据是16比特宽,可见第一数据与第二数据存在数据位宽不匹配的情况。
假设在外部存储器中的第一数据的每一比特都是有效的,则第一数据出现在AXI数据总线上的格式如图3所示:64比特总线上的数据中有5到6个有效的12比特第一数据,64比特总线上的数据全是有效的第一数据,部分12比特第一数据被分隔在两beat 64比特总线数据里面。假定第一个64比特第一数据是对齐的,则第4、7、…beat数据也是对齐的,即数据要恢复到对齐状态,要等到3beat之后。
优选地,所述第一数据可以是定点数据,所述第二数据可以是浮点数据。
实施例四
由于第一运算存在数据量增大(比例为3:4),第二运算存在数据量减少(比例为4:3)的情况,所以要实现DMA控制器数据搬运加转换的功能,还需要特殊的硬件处理。
下面以第一运算为定浮转换运算、第二运算为浮定转换运算为例,来详细说明。
图4是本发明实施例提供的定浮和浮定转换硬件设计实现示意图。图4中只示出了定浮和浮定转换模式的数据流动,正常搬运模式的数据流动并没有体现。为了适应正常搬运以及定浮和浮定转换两种模式,FIFO模块由8个32比特宽的子FIFO模块组成。图4中的寄存器有两个作用,一是优化时序,二是备份数据。
(1)对于download方向上的定浮转换模式,使用了6个12比特寄存器、1个8比特寄存器、6个12-to-16的定浮转换单元,图中用fx2ft表示定浮转换单元(输入为12比特定点数,输出为16比特浮点数)。寄存器兼具打拍和缓存数据的功能。
优选地,3beat定点数的处理过程如下:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后写入FIFO_2,FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后写入FIFO_5,FIFO_6和FIFO_7;
第a4步,从第a1步重新开始操作。
具体地,首先,第一个64比特定点数写入6个12比特寄存器,其中,bit[63:60]只写入12比特寄存器的低位部分(如图4中线一“→”所示)。下一周期,寄存器中保存的第一个64比特定点数经过fx2ft转换为浮点数,数据宽度变宽。我们将前4个定点数转换而来的浮点数写入FIFO模块,总共64比特。剩余的64-4*12=16比特定点数将和第二个64比特定点数拼接进行第二次定浮转换。
其次,在寄存器中保存的第一个64比特定点数的bit[63:48]和第二个64比特定点数进行拼接,总共80比特写入寄存器(如图4中线二所示)。下一周期,寄存器中保存的定点数中的72比特经过fx2ft转换为浮点数。转换之后,变为96比特浮点数。这96比特浮点数写入FIFO模块。寄存器中剩余的8比特定点数和将和第三个64比特定点数拼接进行第三次定浮转换。
再次,在寄存器中保存的最后8比特定点数和第三个64比特定点数进行拼接,总共72比特写入寄存器(如图4中线三所示)。下一周期,寄存器中保存的72比特定点数经过fx2ft转换为浮点数。转换之后,变为96比特浮点数。这96比特浮点数写入FIFO模块。
最后,重复开始时的操作。
可见,对于download方向上的定浮转换模式,3次写入FIFO模块的数据分别是64、96和96比特,即分别写入{FIFO_1,FIFO_0}、{FIFO_4,FIFO_3,FIFO_2}和{FIFO_7,FIFO_6,FIFO_5}。
(2)对于download方向上的正常搬运模式,由于不存在数据量不一致的问题,所以前4个64比特数分别写入{FIFO_1,FIFO_0}、{FIFO_3,FIFO_2}、{FIFO_5,FIFO_4}和{FIFO_7,FIFO_6}。
(3)对于upload方向上的浮定转换模式,使用了6个12比特寄存器、1个16比特寄存器、6个16-to-12的浮定转换单元,图中用ft2fx表示(输入为16比特浮点数,输出为12比特定点数)。寄存器兼具打拍和缓存数据的功能。
优选地,3beat定点数的产生过程如下:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换后得到的72比特定点数的bit[63:0]送入64比特AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换后得到的72比特定点数的bit[71:64]送入64比特AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换后得到的72比特定点数的bit[71:56]送入64比特AXI写数据总线;
第b4步,从第b1步重新开始操作。
具体地,首先,从FIFO模块读取{FIFO_2,FIFO_1,FIFO_0}的值,共96比特。这96比特数据经过ft2fx转换为72比特定点数。72比特定点数写入6个12比特寄存器。下一周期,72比特定点数中的bit[63:0]作为第一个64比特写数据从AXI写数据总线送出,而bit[71:64],也即fx_reg5[11:4]将和第二次从DMA FIFO读取的数据转换而来的定点数拼接,产生第二个64比特写数据。
其次,从FIFO模块读取{FIFO_5,FIFO_4,FIFO_3}的值,共96比特。这96比特数据经过ft2fx转换为72比特定点数。72比特定点数写入6个12比特寄存器,同时fx_reg5[11:4]写入16比特寄存器的低位。下一周期,16比特寄存器的bit[7:0]和{fx_reg4[7:0],fx_reg3[11:0],fx_reg2[11:0],fx_reg1[11:0],fx_reg0[11:0]}拼接成64比特作为第二个64比特写数据从AXI写数据总线送出。{fx_reg5[11:0],fx_reg4[11:8]}将和第三次从DMA FIFO读取的数据转换而来的定点数拼接,产生第三个64比特写数据。
再次,从DMA FIFO读取{FIFO_7,FIFO_6}的值,共64比特。这64比特数据经过ft2fx转换为48比特定点数。48比特定点数写入4个12比特寄存器,同时{fx_reg5[11:0],fx_reg4[11:8]}写入16比特寄存器。下一周期,16比特寄存器的bit[15:0]和{fx_reg3[11:0],fx_reg2[11:0],fx_reg1[11:0],fx_reg0[11:0]}拼接成64比特作为第三个64比特写数据从AXI写数据总线送出。
最后,重复开始时的操作。
可见,对于upload方向上的浮定转换模式,3次读取FIFO的数据分别是96、96和64比特,即分别读取{FIFO_2,FIFO_1,FIFO_0}、{FIFO_5,FIFO_4,FIFO_3}和{FIFO_7,FIFO_6},恰好将DMA FIFO的一列全部读取。
(4)对于upload方向正常搬运模式,由于不存在数据量不一致的问题,所以前4次读取FIFO分别为{FIFO_1,FIFO_0}、{FIFO_3,FIFO_2}、{FIFO_5,FIFO_4}和{FIFO_7,FIFO_6},读取的64比特数据直接送至AXI写数据总线。
(5)对于定浮或浮定转换模式,DMA控制器将以猝发12方式访问外部存储器。对于正常搬运模式,DMA控制器将以猝发16方式访问外部存储器。
本发明的传输模式是可编程的,一种是正常搬运模式,源端和目的端数据一致且数据量相等,一种是定浮或浮定转换模式,源端和目的端是不同的数据类型:定点数据或浮点数据,并且两端的数据量是不同的。在定浮或浮定转换模式下,DMA控制器在进行数据搬运的同时也进行了数据运算。
当然,本领域技术人员可以根据上述设计实现方式得出除定浮转换和浮定转换之外的其他运算的实现方式。例如,所述定浮转换单元(图中用fx2ft表示)可以是具有第一运算功能的子处理单元,所述浮定转换单元(图中用ft2fx表示)可以是具有第二运算功能的子处理单元。在此,不再做详细描述。
实施例五
图5为本发明实施例提供的DMA控制器实现方法的流程示意图;所述DMA控制器包括读数据通道输入接口、写数据通道输出接口、控制逻辑模块、FIFO模块,如图5所示,该方法主要包括以下步骤:
步骤501:接收到第一控制指令时,对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;其中,所述第一控制指令用于指示进行第一运算处理;
这里,所述第一控制指令可以由控制逻辑模块发出。
步骤502:当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第一运算处理后的数据写进FIFO模块;
步骤503:接收到第二控制指令时,对从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示进行第二运算处理;
这里,所述第二控制指令可以由控制逻辑模块发出。
步骤504:当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口。
优选地,所述第一运算可以是但不限于:定浮转换运算,所述第二运算可以是但不限于:浮定转换运算。
具体地,所述第一运算和所述第二运算可以互为逆运算,例如,当所述第一运算是定浮转换运算时,所述第二运算是浮定转换运算;当所述第一运算是解压缩运算时,所述第二运算是压缩运算。
本实施例中,所述DMA控制器通过AXI总线与外部存储器连接;其中,所述AXI总线宽度为64比特。
优选地,所述方法还包括:
当判断不需要进行数据运算时,直接选通从所述读数据通道输入接口所读取的第一数据,再将所述从所述读数据通道输入接口所读取的第一数据写进所述FIFO模块;
当判断不需要进行数据运算时,直接选通从所述FIFO模块读取的第二数据,再将所述从所述FIFO模块读取的第二数据输出至所述写数据通道输出接口。
优选地,所述方法还包括:
进行第一运算处理时,输入数据量与输出数据量之比为3:4;
进行第二运算处理时,输入数据量与输出数据量之比为4:3。
优选地,所述对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第二运算处理后的数据写进所述FIFO模块,可以包括:
以3个64比特定点数为一组,对每一组中的所述3个64比特定点数执行如下操作:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后写入FIFO_2、FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后写入FIFO_5、FIFO_6和FIFO_7;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,所述对从所述FIFO模块读取的第二数据进行第二运算处理;当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口,可以包括:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]通过所述写数据通道输出接口送入AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]通过所述写数据通道输出接口送入AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]通过所述写数据通道输出接口送入AXI写数据总线;
第b4步,从第b1步重新开始操作;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
优选地,所述方法还包括:
当所述DMA处于第一运算或第二运算模式时,所述DMA控制器以猝发12方式访问外部存储器;当所述DMA处于正常搬运模式时,所述DMA控制器以猝发16方式访问外部存储器。
本实施例所述DMA控制器实现方法,克服了现有技术中存在的节省存储器存储资源与减轻处理器核运算负担相矛盾的问题,使DMA控制器兼具数据搬运和数据转换功能,节省了外部存储器使用空间,减轻了处理器运算压力。而且,DMA控制器可以选择只进行数据搬运,也可以选择在进行数据搬运的同时进行第一运算或第二运算。
实施例六
图6是本发明实施例提供的定浮转换处理的流程示意图,如图6所示,所述处理流程主要包括以下步骤:
步骤601:将第一个64比特定点数的bit[47:0]经定浮转换处理后写入FIFO_0和FIFO_1;
步骤602:将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后写入FIFO_2、FIFO_3和FIFO_4;
步骤603:将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后写入FIFO_5、FIFO_6和FIFO_7;
步骤604:从步骤601开始,重新对下一组数据开始操作。
这里,所述下一组数据可以是第二组数据,其中,所述第二组数据包括第四个64比特定点数、第五个64比特定点数、第六个64比特定点数;
其中,对第二组数据进行操作时,步骤601至步骤603中的第一个64比特定点数替换为第四个64比特定点数,第二个64比特定点数替换为第五个64比特定点数、第三个64比特定点数替换为第六个64比特定点数。
也就是说,以3个64比特定点数为一组,对每一组中的3个64比特定点数执行步骤601至步骤603的操作。
本实施例中,DMA控制器中的FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
实施例七
图7是本发明实施例提供的浮定转换处理的流程示意图,如图7所示,所述处理流程主要包括以下步骤:
步骤701:将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]送入AXI写数据总线;
步骤702:将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]送入AXI写数据总线;
步骤703:将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]送入AXI写数据总线;
步骤704:从步骤701重新开始操作。
本实施例中,DMA控制器中的FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
需要说明的是,本发明以上各实施例大多以定浮转换运算以及浮定转换运算为例进行说明。以上各个实施例中的定浮转换运算以及浮定转换运算也可以是处理器核能够进行的其他运算,只要数据输入输出比例为3:4或4:3就可以。如此,能够减小了外部存储器的存储开销,并使DMA控制器替代处理器完成所述处理器核能够进行的其他运算,减小处理器核的运算压力。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种直接存储器存取DMA控制器,所述DMA控制器包括读数据通道输入接口、写数据通道输出接口、控制逻辑模块、先入先出FIFO模块,其特征在于,所述DMA控制器还包括:
第一转换器,用于接收到第一控制指令时,对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算;其中,所述第一控制指令用于指示所述第一转换器进行第一运算处理;
第一数据选择器,用于当判断需要进行数据运算时,选通经所述第一转换器处理后的数据,再将所述经所述第一转换器处理后的数据写进所述FIFO模块;
第二转换器,用于接收到第二控制指令时,对从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示所述第二转换器进行第二运算处理;
第二数据选择器,用于当判断需要进行数据运算时,选通经所述第二转换器处理后的数据,再将所述经所述第二转换器处理后的数据输出至所述写数据通道输出接口。
2.根据权利要求1所述的DMA控制器,其特征在于,所述DMA控制器通过先进可扩展接口AXI总线与外部存储器连接;其中,所述AXI总线宽度为64比特。
3.根据权利要求1所述的DMA控制器,其特征在于,
所述第一数据选择器,还用于当判断不需要进行数据运算时,直接选通从所述读数据通道输入接口所读取的第一数据,再将所述从所述读数据通道输入接口所读取的第一数据写进所述FIFO模块;
所述第二数据选择器,还用于当判断不需要进行数据运算时,直接选通从所述FIFO模块读取的第二数据,再将所述从所述FIFO模块读取的第二数据输出至所述写数据通道输出接口。
4.根据权利要求1所述的DMA控制器,其特征在于,所述第一转换器,还用于:进行第一运算处理时,输入数据量与输出数据量之比为3:4;
所述第二转换器,还用于:进行第二运算处理时,输入数据量与输出数据量之比为4:3。
5.根据权利要求1所述的DMA控制器,其特征在于,所述第一转换器,还用于:
以3个64比特定点数为一组,对每一组中的所述3个64比特定点数执行如下操作:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_2、FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后通过所述第一数据选择器写入FIFO_5、FIFO_6和FIFO_7;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
6.根据权利要求1所述的DMA控制器,其特征在于,所述第二转换器,还用于:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]发送至所述第二数据选择器,以使所述第二数据选择器选通并通过所述写数据通道输出接口送入AXI写数据总线;
第b4步,从第b1步重新开始操作;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
7.根据权利要求1至6任一项所述的DMA控制器,其特征在于,当所述DMA控制器处于第一运算或第二运算模式时,所述DMA控制器以猝发12方式访问外部存储器;当所述DMA处于正常搬运模式时,所述DMA控制器以猝发16方式访问外部存储器。
8.一种DMA控制器实现方法,所述DMA控制器包括读数据通道输入接口、写数据通道输出接口、控制逻辑模块、FIFO模块,其特征在于,所述方法包括:
接收到第一控制指令时,对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;其中,所述第一控制指令用于指示进行第一运算处理;
当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第一运算处理后的数据写进所述FIFO模块;
相应的,接收到第二控制指令时,对从所述FIFO模块读取的第二数据进行第二运算处理;其中,所述第二控制指令用于指示进行第二运算处理;
当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口。
9.根据权利要求8所述的方法,其特征在于,所述DMA控制器通过AXI总线与外部存储器连接;其中,所述AXI总线宽度为64比特。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当判断不需要进行数据运算时,直接选通从所述读数据通道输入接口所读取的第一数据,再将所述从所述读数据通道输入接口所读取的第一数据写进所述FIFO模块;
当判断不需要进行数据运算时,直接选通从所述FIFO模块读取的第二数据,再将所述从所述FIFO模块读取的第二数据输出至所述写数据通道输出接口。
11.根据权利要求8所述的方法,其特征在于,所述方法还包括:
进行第一运算处理时,输入数据量与输出数据量之比为3:4;
进行第二运算处理时,输入数据量与输出数据量之比为4:3。
12.根据权利要求8所述的方法,其特征在于,所述对通过所述读数据通道输入接口从外部存储器所读取的第一数据进行第一运算处理;当判断需要进行数据运算时,选通经第一运算处理后的数据,再将所述经第一运算处理后的数据写进所述FIFO模块,包括:
以3个64比特定点数为一组,对每一组中的所述3个64比特定点数执行如下操作:
第a1步,将第一个64比特定点数的bit[47:0]经定浮转换处理后写入FIFO_0和FIFO_1;
第a2步,将第一个64比特定点数的bit[63:48]和第二个64比特定点数的bit[55:0]经定浮转换处理后写入FIFO_2、FIFO_3和FIFO_4;
第a3步,将第二个64比特定点数的bit[63:56]和第三个64比特定点数的bit[63:0]经定浮转换处理后写入FIFO_5、FIFO_6和FIFO_7;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
13.根据权利要求8所述的方法,其特征在于,所述对从所述FIFO模块读取的第二数据进行第二运算处理;当判断需要进行数据运算时,选通经第二运算处理后的数据,再将所述经第二运算处理后的数据输出至所述写数据通道输出接口,包括:
第b1步,将{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[63:0]通过所述写数据通道输出接口送入AXI写数据总线;
第b2步,将{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[55:0]和{FIFO_2,FIFO_1,FIFO_0}读数据经浮定转换处理后得到的72比特定点数的bit[71:64]通过所述写数据通道输出接口送入AXI写数据总线;
第b3步,将{FIFO_7,FIFO_6}读数据经浮定转换处理后得到的48比特定点数的bit[47:0]和{FIFO_5,FIFO_4,FIFO_3}读数据经浮定转换处理后得到的72比特定点数的bit[71:56]通过所述写数据通道输出接口送入AXI写数据总线;
第b4步,从第b1重新开始操作;
其中,所述FIFO模块由8个32比特宽的子FIFO模块组成,所述子FIFO模块分别用FIFO_0、FIFO_1、FIFO_2、FIFO_3、FIFO_4、FIFO_5、FIFO_6、FIFO_7表示。
14.根据权利要求8至13任一项所述的方法,其特征在于,所述方法还包括:
当所述DMA处于第一运算或第二运算模式时,所述DMA控制器以猝发12方式访问外部存储器;当所述DMA处于正常搬运模式时,所述DMA控制器以猝发16方式访问外部存储器。
CN201510264291.XA 2015-05-21 2015-05-21 一种dma控制器及其实现方法 Active CN106294232B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201510264291.XA CN106294232B (zh) 2015-05-21 2015-05-21 一种dma控制器及其实现方法
US15/565,176 US20180081836A1 (en) 2015-05-21 2015-09-09 Dma controller, implementation method and computer storage medium
JP2017553386A JP6570046B2 (ja) 2015-05-21 2015-09-09 Dmaコントローラ、実現方法及びコンピュータ記憶媒体
PCT/CN2015/089243 WO2016183965A1 (zh) 2015-05-21 2015-09-09 一种dma控制器、实现方法及计算机存储介质
EP15892343.3A EP3273357B1 (en) 2015-05-21 2015-09-09 Dma controller, implementation method and computer storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510264291.XA CN106294232B (zh) 2015-05-21 2015-05-21 一种dma控制器及其实现方法

Publications (2)

Publication Number Publication Date
CN106294232A CN106294232A (zh) 2017-01-04
CN106294232B true CN106294232B (zh) 2019-04-30

Family

ID=57319317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510264291.XA Active CN106294232B (zh) 2015-05-21 2015-05-21 一种dma控制器及其实现方法

Country Status (5)

Country Link
US (1) US20180081836A1 (zh)
EP (1) EP3273357B1 (zh)
JP (1) JP6570046B2 (zh)
CN (1) CN106294232B (zh)
WO (1) WO2016183965A1 (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678199A (zh) * 2012-09-26 2014-03-26 深圳市中兴微电子技术有限公司 一种传输数据的方法和设备
CN103793342A (zh) * 2012-11-02 2014-05-14 中兴通讯股份有限公司 一种多通道直接内存存取dma控制器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01240961A (ja) * 1988-03-22 1989-09-26 Fujitsu Ltd Dma転送方式
JPH11126181A (ja) * 1997-10-22 1999-05-11 Mitsubishi Electric Corp 演算機能付き情報転送装置
JP3731565B2 (ja) * 2002-06-18 2006-01-05 ソニー株式会社 データ変換装置
US7386636B2 (en) * 2005-08-19 2008-06-10 International Business Machines Corporation System and method for communicating command parameters between a processor and a memory flow controller
US7500039B2 (en) * 2005-08-19 2009-03-03 International Business Machines Corporation Method for communicating with a processor event facility
US8205019B2 (en) * 2005-09-30 2012-06-19 Intel Corporation DMA transfers of sets of data and an exclusive or (XOR) of the sets of data
US8037217B2 (en) * 2009-04-23 2011-10-11 International Business Machines Corporation Direct memory access in a hybrid computing environment
US8370544B2 (en) * 2009-07-23 2013-02-05 Stec, Inc. Data storage system with compression/decompression
CN102567254B (zh) * 2010-12-31 2016-05-04 重庆重邮信科通信技术有限公司 采用dma控制器进行数据归一化处理的方法
WO2012169037A1 (ja) * 2011-06-09 2012-12-13 三菱電機株式会社 プログラマブルコントローラシステム
US9026568B2 (en) * 2012-03-30 2015-05-05 Altera Corporation Data compression for direct memory access transfers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678199A (zh) * 2012-09-26 2014-03-26 深圳市中兴微电子技术有限公司 一种传输数据的方法和设备
CN103793342A (zh) * 2012-11-02 2014-05-14 中兴通讯股份有限公司 一种多通道直接内存存取dma控制器

Also Published As

Publication number Publication date
CN106294232A (zh) 2017-01-04
WO2016183965A1 (zh) 2016-11-24
JP2018511891A (ja) 2018-04-26
EP3273357A1 (en) 2018-01-24
EP3273357B1 (en) 2021-05-19
JP6570046B2 (ja) 2019-09-04
EP3273357A4 (en) 2018-06-13
US20180081836A1 (en) 2018-03-22

Similar Documents

Publication Publication Date Title
US11012411B2 (en) Network interface device
JP3670160B2 (ja) タスクに各リソースを割当てるための回路、複数のリソースを共用するための方法、命令を実行するためのプロセッサ、マルチタスクプロセッサ、コンピュータ命令を実行するための方法、マルチタスク方法、コンピュータプロセッサを含む装置、複数の所定のグループのタスクを実行するステップを含む方法、ネットワークデータを処理するステップを含む方法、複数のソフトウェアタスクを実行するための方法およびコンピュータプロセッサを含むネットワーク装置
US11928512B2 (en) Quiesce reconfigurable data processor
US11237880B1 (en) Dataflow all-reduce for reconfigurable processor systems
US11714780B2 (en) Compiler flow logic for reconfigurable architectures
US7353362B2 (en) Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US11392740B2 (en) Dataflow function offload to reconfigurable processors
US20050044327A1 (en) Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture
CN107111582A (zh) 具有非阻塞高性能事务信用系统的多核总线架构
US7590785B2 (en) Systems and methods for multi-tasking, resource sharing, and execution of computer instructions
CN107590085B (zh) 一种具有多级缓存的动态可重构阵列数据通路及其控制方法
CN109684087B (zh) 运算方法、装置及相关产品
US20210373867A1 (en) Anti-Congestion Flow Control for Reconfigurable Processors
CN103744644B (zh) 采用四核结构搭建的四核处理器系统及数据交换方法
WO2011109305A1 (en) Various methods and apparatuses for optimizing concurrency in multiple core systems
CN106462431B (zh) 在高级综合中提取系统架构
KR20220004216A (ko) 제어 플로우 배리어 및 재구성가능 데이터 프로세서
CN102508803A (zh) 一种矩阵转置存储控制器
CN110109859A (zh) 可编程平台上的加速器架构
CN106294232B (zh) 一种dma控制器及其实现方法
CN102411557B (zh) 多粒度并行fft计算装置
CN113272793A (zh) 网络接口设备
CN108572787A (zh) 一种数据存储、读取的方法及装置
KR100947446B1 (ko) Vliw 프로세서
Wu et al. A programmable adaptive router for a GALS parallel system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20170104

Assignee: Xi'an Chris Semiconductor Technology Co. Ltd.

Assignor: SHENZHEN ZTE MICROELECTRONICS TECHNOLOGY CO., LTD.

Contract record no.: 2019440020036

Denomination of invention: DMA controller and realization method thereof

Granted publication date: 20190430

License type: Common License

Record date: 20190619