CN111045965A - 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质 - Google Patents

一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质 Download PDF

Info

Publication number
CN111045965A
CN111045965A CN201911025671.2A CN201911025671A CN111045965A CN 111045965 A CN111045965 A CN 111045965A CN 201911025671 A CN201911025671 A CN 201911025671A CN 111045965 A CN111045965 A CN 111045965A
Authority
CN
China
Prior art keywords
data
source data
point
channel
conflict
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911025671.2A
Other languages
English (en)
Other versions
CN111045965B (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.)
Nanjing University
Original Assignee
Nanjing University
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 Nanjing University filed Critical Nanjing University
Priority to CN201911025671.2A priority Critical patent/CN111045965B/zh
Publication of CN111045965A publication Critical patent/CN111045965A/zh
Application granted granted Critical
Publication of CN111045965B publication Critical patent/CN111045965B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/16Multiplexed systems, i.e. using two or more similar devices which are alternately accessed for enqueue and dequeue operations, e.g. ping-pong buffers

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接口单元用于DDR和SRAM之间的数据交互;控制单元用于根据配置信息选择数据存储单元划分模式和无冲突访存单元访存模式;数据存储单元用于存储源数据和结果数据;无冲突访存单元通过地址映射将按采样点输入的源数据按通道存入数据存储单元;数据重组单元用于根据配置信息重组结果数据,送至DMA接口单元进行结果输出。本发明对采样点数、通道数没有限制,适用于数字信号处理和人工智能场景,具有高通用性、高并行路数、高存储资源利用率和低控制复杂度的特点。

Description

一种多通道无冲突拆分的硬件实现方法及运行该方法的计算 机设备与可读存储介质
技术领域
本发明属于数字信号处理领域,尤其涉及基于可重构计算的多通道无冲突拆分的硬件实现方法。
背景技术
多通道拆分是数字信号处理的典型算法,也广泛应用于数字图像处理领域、通信领域和人工智能领域。传统的多通道拆分主要是通过DMA转置的方式实现的,对源数据通道数、采样点数、单点位数都有不同程度的限制,对于多通道、单点位数为16bit/32bit/64bit的源数据来说,传统方式并行度低、运行周期长且效率低下,严重制约相关应用的性能。
此外,当前针对多通道拆分的硬件实现大部分都是基于DSP芯片、GPU以及FPGA等平台进行设计。面向未来的信息处理和人工智能领域应用,高性能处理芯片往往可以提供更好的解决方案,它具有结构复杂,设计难度大,性能指标高等特点。高性能处理芯片通过专用加速核完成主要信号处理算法和人工智能算法的硬件加速,加速核性能直接影响处理芯片的性能。
因此本发明基于一款可重构智能加速核,提出了一种基于可重构计算的多通道无冲突拆分硬件实现方法,在加速核内的片上SRAM中实现多通道拆分,相比于传统的通过DMA转置的硬件实现方式,该方法具有高通用性、高并行路数、高存储资源利用率和低控制复杂度的特点。该方法适用于各类数字信号处理场景和人工智能场景,有着良好的实际应用价值。
发明内容
发明目的:一个目的是提供一种基于可重构计算的多通道无冲突拆分的硬件实现方法,以解决现有技术存在的上述问题。进一步目的是提供一种可运行上述方法的计算机设备以及可被该计算机设备读取的存储介质。
技术方案:一种基于可重构计算的多通道无冲突拆分的硬件实现方法,包括以下步骤:
步骤1、初始化,读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元,包含通道数、采样点总数、当前批次采样点数以及单点位数;
步骤2、数据输入,DMA接口单元根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元,传输结束后跳转至S3;
步骤3、调用无冲突访存单元根据控制单元提供的源数据分发方式,读取数据存储单元中相应源数据,存入数据存储单元相应位置;
步骤4、遍历度判定,判断是否已经拆分完本批次的所有通道,未完成则返回S3,已完成则跳转至S5;
步骤5、数据重组,数据重组单元根据配置信息选择相应的数据重组模式;
步骤6、数据输出,DMA接口单元根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR,结束算法。
在进一步的实施例中,所述无冲突访存单元通过地址映射将按采样点输入的源数据按通道存入数据存储单元,其并行路数受存储资源和单点位数影响,对于单点16bit的源数据,并行路数为4*N,对于单点32bit的源数据,并行路数为2*N,对于单点64bit的源数据,并行路数为N。对于单点位数为64bit的源数据进行1*N路的多通道拆分;对于单点位数为32bit的源数据进行2*N路的多通道拆分;对于单点位数为16bit的源数据进行4*N路的多通道拆分;将源数据转换为源矩阵为
Figure 628550DEST_PATH_IMAGE001
对源矩阵C进行分块后得到分块矩阵
Figure 527235DEST_PATH_IMAGE002
在分块矩阵
Figure 362336DEST_PATH_IMAGE003
的基础上进行转置得到分块转置
Figure 106301DEST_PATH_IMAGE004
在进一步的实施例中,所述步骤2进一步包括以下六种情况:
情况1、源数据单点位数为64bit且通道数CH为奇数,源数据在Bank中按行连续存入;
情况2、源数据单点位数为64bit且通道数CH为偶数,将每1个采样点末尾补1个零,视为1个新采样点,当作情况1处理;
情况3、源数据单点位数为32bit且通道数CH为奇数,将每2个采样点为1组,视为1个新采样点,当作情况1处理;
情况4、源数据单点位数为32bit且通道数CH为偶数,将每2个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理;
情况5、源数据单点位数为16bit且通道数CH为奇数,将每4个采样点为1组,视为1个新采样点,当作情况1处理;
情况6、源数据单点位数为16bit且通道数CH为偶数,将每4个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理。
在进一步的实施例中,所述步骤5进一步包括以下三种情况:
情况1、源数据单点位数为64bit,每次取同一通道4个bank的数,组合成256bit输出;
情况2、源数据单点位数为32bit,每次取同一通道4个bank的数,按照AB交叉的方式组合成256bit输出;
情况3、源数据单点位数为16bit,每次取同一通道4个bank的数,按照ABCD交叉的方式组合成256bit输出。
在进一步的实施例中,存储资源设定为4N个Bank,每个Bank的深度为M,分配2N个Bank用于乒乓存入输入源数据,支持AXI总线256bit写入/PE模块64bit读出。另外2N个Bank用于乒乓存入多通道拆分后的结果数据,支持AXI总线256bit读出/PE模块64bit写入。
在进一步的实施例中,所述DMA接口单元用于DDR和SRAM之间的数据交互,根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,以适应无冲突访存单元的要求。
在进一步的实施例中,所述数据重组单元用于根据配置信息重组结果数据,送至DMA接口单元进行结果输出。
一种基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于包括以下模块:
读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元的初始化模块;
根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元的数据输入模块;
根据控制单元提供的源数据分发方式读取数据存储单元中相应源数据,存入数据存储单元相应位置的源数据调用模块;
判断是否已经拆分完所有通道的遍历度判定模块;
根据配置信息选择相应的数据重组模式的数据重组模块;
根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR的数据输出模块;
在进一步的实施例中,该***包括DMA接口单元、控制单元、数据存储单元、无冲突访存单元和数据重组单元。
在进一步的实施例中,所述初始化模块进一步用于读取通道数、采样点总数、当前批次采样点数以及单点位数的配置信息,将上述配置信息传输至DMA接口单元、数据重组单元和控制单元,并根据配置信息进行重构;支持源数据单点位数16bit/32bit/64bit配置,取消对采样点数、通道数的限制,具有高通用性。
所述数据输入模块进一步根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,利用无冲突访存单元通过地址映射按照采样点输入的源数据按通道存入数据存储单元。
所述源数据调用模块进一步通过地址映射将按采样点输入的源数据按通道存入数据存储单元,对于单点16bit的源数据,并行路数为4*N;对于单点32bit的源数据,并行路数为2*N;对于单点64bit的源数据,并行路数为N;对于单点位数为64bit的源数据进行1*N路的多通道拆分;对于单点位数为32bit的源数据进行2*N路的多通道拆分;对于单点位数为16bit的源数据进行4*N路的多通道拆分;该硬件架构中N灵活可配,在保证高并行路数的同时,有效避免访存冲突,具有低控制复杂度。
所述遍历度判定模块进一步用于判断是否已经拆分完本批次的所有通道,若未完成拆分任务,则反馈至源数据调用模块继续通过地址映射将按采样点输入的源数据按通道存入数据存储单元;若完成拆分任务,则反馈至数据重组模块。
所述数据重组模块进一步用于将源数据0从DDR传输至SRAM,在进行源数据0通道拆分的同时,将源数据1从DDR传输至SRAM;DMA接口单元用于DDR和SRAM之间的数据交互,采用无冲突设计,即根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,适应无冲突访存单元的要求。
所述数据输出模块进一步用于根据配置信息重组结果数据,送至DMA接口单元进行结果输出。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该计算机程序存储在一种计算机可读存储介质上,计算机设备通过运行该可读存储介质,由处理器执行计算机程序,进而实现以下步骤:
步骤1、初始化,读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元,包含通道数、采样点总数、当前批次采样点数以及单点位数。
步骤2、数据输入,DMA接口单元根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元,传输结束后跳转至S3;所述DMA接口单元用于DDR和SRAM之间的数据交互,根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,以适应无冲突访存单元的要求。所述数据重组单元用于根据配置信息重组结果数据,发送至DMA接口单元进行结果输出。步骤2分为以下六种情况:
情况1、源数据单点位数为64bit且通道数CH为奇数,源数据在Bank中按行连续存入;
情况2、源数据单点位数为64bit且通道数CH为偶数,将每1个采样点末尾补1个零,视为1个新采样点,当作情况1处理;
情况3、源数据单点位数为32bit且通道数CH为奇数,将每2个采样点为1组,视为1个新采样点,当作情况1处理;
情况4、源数据单点位数为32bit且通道数CH为偶数,将每2个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理;
情况5、源数据单点位数为16bit且通道数CH为奇数,将每4个采样点为1组,视为1个新采样点,当作情况1处理;
情况6、源数据单点位数为16bit且通道数CH为偶数,将每4个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理。
步骤3、调用无冲突访存单元根据控制单元提供的源数据分发方式,读取数据存储单元中相应源数据,存入数据存储单元相应位置;无冲突访存单元通过地址映射将按采样点输入的源数据按通道存入数据存储单元,其并行路数受存储资源和单点位数影响,对于单点16bit的源数据,并行路数为4*N,对于单点32bit的源数据,并行路数为2*N,对于单点64bit的源数据,并行路数为N;对于单点位数为64bit的源数据进行1*N路的多通道拆分;对于单点位数为32bit的源数据进行2*N路的多通道拆分;对于单点位数为16bit的源数据进行4*N路的多通道拆分。
步骤4、遍历度判定,判断是否已经拆分完本批次的所有通道,未完成则返回S3,已完成则跳转至S5。
步骤5、数据重组,数据重组单元根据配置信息选择相应的数据重组模式;步骤5分为以下三种情况:
情况1、源数据单点位数为64bit,每次取同一通道4个bank的数,组合成256bit输出;
情况2、源数据单点位数为32bit,每次取同一通道4个bank的数,按照AB交叉的方式组合成256bit输出;
情况3、源数据单点位数为16bit,每次取同一通道4个bank的数,按照ABCD交叉的方式组合成256bit输出。
步骤6、数据输出,DMA接口单元根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR,结束算法。
有益效果:本发明实现了一种高性能的基于可重构计算的多通道无冲突拆分实现方法,支持源数据单点位数16bit/32bit/64bit可配置,对采样点数、通道数没有限制,具有高通用性,可适用于各类数字信号处理场景和人工智能场景;实现数据搬运时间覆盖多通道拆分时间,大大降低了算法运行周期;采用一种无冲突访存单元,在保证并行路数的同时,有效避免在源数据不规则的情况下读取数据时的访存冲突,具有低控制复杂度;采用一种DMA接口单元无冲突设计,以适应无冲突访存单元的要求;采用多路并行设计方式,以缩短算法的运算周期,能够提高存储资源利用率。
附图说明
图1为本发明的实现方法流程示意图。
图2是本发明的硬件架构示意图。
图3是本发明的存储映射示意图。
图4是本发明的源数据乒乓示意图。
图5是本发明的源数据存储与无冲突访存方案示意图。
图6是本发明的数据重组方式示意图。
具体实施方式
申请人认为,传统的多通道拆分主要是通过DMA转置的方式实现的,对源数据通道数、采样点数、单点位数都有不同程度的限制,对于多通道、单点位数为16bit/32bit/64bit的源数据来说,传统方式并行度低、运行周期长且效率低下,严重制约相关应用的性能。因此,如何发明一款基于可重构智能加速核的多通道无冲突拆分硬件实现方法,以解决并行度低、效率低下、运行周期长、性能瓶颈的问题,是至关重要的,它直接影响了各类数字信号处理场景和人工智能场景的应用,有着良好的实际应用价值。
为解决现有技术存在的问题,本发明基于一款可重构智能加速核,提出了一种基于可重构计算的多通道无冲突拆分硬件实现方法,并提出了一种计算机设备来实现该方法,进一步提出了一种存储有计算机程序、能够运行上述方法的可读存储介质。
该方法支持源数据单点位数16bit/32bit/64bit可配置,对采样点数、通道数没有限制,相比于传统的通过DMA转置的硬件实现方式,适用于各类数字信号处理场景和人工智能场景,具有高通用性、高并行路数、高存储资源利用率和低控制复杂度的特点。
下面通过实施例,并结合附图,对本发明的技术方案做进一步具体说明。
图1所示是本发明的实现方法流程示意图,步骤如下:
S1:初始化,读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元,包含通道数CH、采样点总数S、当前批次采样点数T以及单点位数B;
S2:数据输入,DMA接口单元根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元,传输结束后跳转至S3;
S3:调用无冲突访存单元根据控制单元提供的源数据分发方式,读取数据存储单元中相应源数据,存入数据存储单元相应位置;
S4:遍历度判定,判断是否已经拆分完本批次的所有通道,未完成则返回S3,已完成则跳转至S5;
S5:数据重组,数据重组单元根据配置信息选择相应的数据重组模式;
S6:数据输出,DMA接口单元根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR,结束算法。
图2所示是本发明的硬件架构示意图,实现了多通道无冲突拆分算法的构建,包括DMA接口单元、控制单元、无冲突访存单元、数据存储单元和数据重组单元。
图3所示是本发明的存储映射示意图。存储资源设定为4N个bank,每个Bank的深度为M,分配2N个Bank用于乒乓存入输入源数据,支持AXI总线256bit写入/PE模块64bit读出。另外2N个Bank用于乒乓存入多通道拆分后的结果数据,支持AXI总线256bit读出/PE模块64bit写入。
图4所示是本发明的源数据乒乓示意图。首先源数据0从DDR传输至SRAM,在进行源数据0通道拆分的同时,将源数据1从DDR传输至SRAM,以此类推。乒乓操作大大缩短了运算周期。
图5是本发明的一个实例,该实例反映了源数据存储与无冲突访存方案。由图可知,对于单点位数为64bit的源数据,可以进行1*N路的多通道拆分;对于单点位数为32bit的源数据,可以进行2*N路的多通道拆分;对于单点位数为16bit的源数据,可以进行4*N路的多通道拆分。对于任何大小的通道数和采样点数,拆分过程均可实现无访存冲突。源数据存储方式分为以下几种情况:
情况1:源数据单点位数为64bit且通道数CH为奇数,源数据在Bank中按行连续存入;
情况2:源数据单点位数为64bit且通道数CH为偶数,将每1个采样点末尾补1个零,视为1个新采样点,当作情况1处理;
情况3:源数据单点位数为32bit且通道数CH为奇数,将每2个采样点为1组,视为1个新采样点,当作情况1处理;
情况4:源数据单点位数为32bit且通道数CH为偶数,将每2个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理;
情况5:源数据单点位数为16bit且通道数CH为奇数,将每4个采样点为1组,视为1个新采样点,当作情况1处理;
情况6:源数据单点位数为16bit且通道数CH为偶数,将每4个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理。
图6所示是本发明的数据重组方式示意图。其中对于单点位数为64bit的源数据,将Bank2N~Bank(4N-1)均分为1组,1个通道占用1组,每个通道分为1部分(A);对于单点位数为32bit的源数据,将Bank2N~Bank(4N-1)均分为2组,1个通道占用1组,每个通道分为2部分(AB);对于单点位数为16bit的源数据,将Bank2N~Bank(4N-1)均分为4组,1个通道占用1组,每个通道分为4部分(ABCD)。数据重组模式分为以下几种情况:
情况1:源数据单点位数为64bit,每次取同一通道4个bank的数,组合成256bit输出;
情况2:源数据单点位数为32bit,每次取同一通道4个bank的数,按照AB交叉的方式组合成256bit输出;
情况3:源数据单点位数为16bit,每次取同一通道4个bank的数,按照ABCD交叉的方式组合成256bit输出。
为实现上述方法,本发明提供一种***,该***包括初始化模块、数据输入模块、源数据调用模块、遍历度判定模块、数据重组模块、以及数据输出模块。所述初始化模块用于读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元。所述数据输入模块根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元;进一步根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,利用无冲突访存单元通过地址映射按照采样点输入的源数据按通道存入数据存储单元。所述源数据调用模块根据控制单元提供的源数据分发方式读取数据存储单元中相应源数据,存入数据存储单元相应位置;进一步通过地址映射将按采样点输入的源数据按通道存入数据存储单元,对于单点16bit的源数据,并行路数为4*N;对于单点32bit的源数据,并行路数为2*N;对于单点64bit的源数据,并行路数为N;对于单点位数为64bit的源数据进行1*N路的多通道拆分;对于单点位数为32bit的源数据进行2*N路的多通道拆分;对于单点位数为16bit的源数据进行4*N路的多通道拆分;该硬件架构中N灵活可配,在保证高并行路数的同时,有效避免访存冲突,具有低控制复杂度。所述遍历度判定模块判断是否已经拆分完所有通道;进一步用于判断是否已经拆分完本批次的所有通道,若未完成拆分任务,则反馈至源数据调用模块继续通过地址映射将按采样点输入的源数据按通道存入数据存储单元;若完成拆分任务,则反馈至数据重组模块。所述数据重组模块根据配置信息选择相应的数据重组模式;数据重组模块进一步用于将源数据0从DDR传输至SRAM,在进行源数据0通道拆分的同时,将源数据1从DDR传输至SRAM;DMA接口单元用于DDR和SRAM之间的数据交互,采用无冲突设计,即根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,适应无冲突访存单元的要求。所述数据输出模块根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR;进一步用于根据配置信息重组结果数据,送至DMA接口单元进行结果输出。
更为具体的,该***进一步包括DMA接口单元、控制单元、数据存储单元、无冲突访存单元和数据重组单元。所述DMA接口单元用于DDR和SRAM之间的数据交互,可根据配置信息选择相应的源数据存储方式和结果数据读出方式,采用无冲突设计适应无冲突访存单元的要求;所述控制单元用于根据配置信息选择数据存储单元划分模式和无冲突访存单元访存模式;所述数据存储单元用于存储源数据和结果数据;所述无冲突访存单元通过地址映射将按采样点输入的源数据按通道存入数据存储单元,拆分过程可并行且不存在地址冲突;所述数据重组单元用于根据配置信息重组结果数据,送至DMA接口单元进行结果输出。
总之,针对现有技术的不足,本发明提供了一种基于可重构计算的多通道无冲突拆分的硬件实现方法,在保证并行路数的同时,有效避免在源数据不规则的情况下读取数据时的访存冲突,具有低控制复杂度;采用一种DMA接口单元无冲突设计,以适应无冲突访存单元的要求;采用多路并行设计方式,以缩短算法的运算周期,能够提高存储资源利用率;可以有效地提高***的灵活性、通用性、数据处理能力、存储资源利用率和访存带宽,具有低控制复杂度,适用于各类数字信号处理场景和人工智能场景,有着良好的实际应用价值。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。

Claims (10)

1.一种基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征是包括以下步骤:
步骤1、初始化,读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元,包含通道数、采样点总数、当前批次采样点数以及单点位数;
步骤2、数据输入,DMA接口单元根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元,传输结束后跳转至S3;
步骤3、调用无冲突访存单元根据控制单元提供的源数据分发方式,读取数据存储单元中相应源数据,存入数据存储单元相应位置;
步骤4、遍历度判定,判断是否已经拆分完本批次的所有通道,未完成则返回S3,已完成则跳转至S5;
步骤5、数据重组,数据重组单元根据配置信息选择相应的数据重组模式;
步骤6、数据输出,DMA接口单元根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR,结束算法。
2.根据权利要求1所述的基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于:所述无冲突访存单元通过地址映射将按采样点输入的源数据按通道存入数据存储单元,其并行路数受存储资源和单点位数影响,对于单点16bit的源数据,并行路数为4*N,对于单点32bit的源数据,并行路数为2*N,对于单点64bit的源数据,并行路数为N;对于单点位数为64bit的源数据进行1*N路的多通道拆分;对于单点位数为32bit的源数据进行2*N路的多通道拆分;对于单点位数为16bit的源数据进行4*N路的多通道拆分;
将源数据转换为源矩阵为
Figure 906073DEST_PATH_IMAGE001
对源矩阵C进行分块后得到分块矩阵
Figure 492912DEST_PATH_IMAGE002
在分块矩阵
Figure 76603DEST_PATH_IMAGE003
的基础上进行转置得到分块转置
Figure 282456DEST_PATH_IMAGE004
3.根据权利要求1所述的基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于,所述步骤2进一步包括以下六种情况:
情况1、源数据单点位数为64bit且通道数CH为奇数,源数据在Bank中按行连续存入;
情况2、源数据单点位数为64bit且通道数CH为偶数,将每1个采样点末尾补1个零,视为1个新采样点,当作情况1处理;
情况3、源数据单点位数为32bit且通道数CH为奇数,将每2个采样点为1组,视为1个新采样点,当作情况1处理;
情况4、源数据单点位数为32bit且通道数CH为偶数,将每2个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理;
情况5、源数据单点位数为16bit且通道数CH为奇数,将每4个采样点为1组,视为1个新采样点,当作情况1处理;
情况6、源数据单点位数为16bit且通道数CH为偶数,将每4个采样点为1组,末尾补1个零,视为1个新采样点,当作情况1处理。
4.根据权利要求1所述的基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于,所述步骤5进一步包括以下三种情况:
情况1、源数据单点位数为64bit,每次取同一通道4个bank的数,组合成256bit输出;
情况2、源数据单点位数为32bit,每次取同一通道4个bank的数,按照AB交叉的方式组合成256bit输出;
情况3、源数据单点位数为16bit,每次取同一通道4个bank的数,按照ABCD交叉的方式组合成256bit输出。
5.根据权利要求1所述的基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于:所述DMA接口单元用于DDR和SRAM之间的数据交互,根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,以适应无冲突访存单元的要求。
6.根据权利要求1所述的基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于:所述数据重组单元用于根据配置信息重组结果数据,发送至DMA接口单元进行结果输出。
7.一种基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于包括以下模块:
读取存储在寄存器中的多通道拆分相关配置信息,并将配置信息传输至DMA接口单元、数据重组单元和控制单元的初始化模块;
根据配置信息选择相应的源数据存储方式,将源数据从DDR传输至数据存储单元的数据输入模块;
根据控制单元提供的源数据分发方式读取数据存储单元中相应源数据,存入数据存储单元相应位置的源数据调用模块;
判断是否已经拆分完所有通道的遍历度判定模块;
根据配置信息选择相应的数据重组模式的数据重组模块;
根据配置信息选择相应的结果数据读出方式,将结果数据从数据存储单元输出到DDR的数据输出模块。
8.根据权利要求7所述的基于可重构计算的多通道无冲突拆分的硬件实现方法,其特征在于:
所述初始化模块进一步用于读取通道数、采样点总数、当前批次采样点数以及单点位数的配置信息,将上述配置信息传输至DMA接口单元、数据重组单元和控制单元,并根据配置信息进行重构;
所述数据输入模块进一步根据配置信息选择相应的源数据无冲突存储方式和结果数据无冲突读出方式,利用无冲突访存单元通过地址映射按照采样点输入的源数据按通道存入数据存储单元;
所述源数据调用模块进一步通过地址映射将按采样点输入的源数据按通道存入数据存储单元,对于单点16bit的源数据,并行路数为4*N;对于单点32bit的源数据,并行路数为2*N;对于单点64bit的源数据,并行路数为N;对于单点位数为64bit的源数据进行1*N路的多通道拆分;对于单点位数为32bit的源数据进行2*N路的多通道拆分;对于单点位数为16bit的源数据进行4*N路的多通道拆分;
所述遍历度判定模块进一步用于判断是否已经拆分完本批次的所有通道,若未完成拆分任务,则反馈至源数据调用模块继续通过地址映射将按采样点输入的源数据按通道存入数据存储单元;若完成拆分任务,则反馈至数据重组模块;
所述数据重组模块进一步用于将源数据0从DDR传输至SRAM,在进行源数据0通道拆分的同时,将源数据1从DDR传输至SRAM;
所述数据输出模块进一步用于根据配置信息重组结果数据,送至DMA接口单元进行结果输出。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
CN201911025671.2A 2019-10-25 2019-10-25 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质 Active CN111045965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911025671.2A CN111045965B (zh) 2019-10-25 2019-10-25 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911025671.2A CN111045965B (zh) 2019-10-25 2019-10-25 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质

Publications (2)

Publication Number Publication Date
CN111045965A true CN111045965A (zh) 2020-04-21
CN111045965B CN111045965B (zh) 2021-06-04

Family

ID=70232612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911025671.2A Active CN111045965B (zh) 2019-10-25 2019-10-25 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质

Country Status (1)

Country Link
CN (1) CN111045965B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1152780A (zh) * 1994-10-07 1997-06-25 缪凯什·查特 改进的动态随机存取存储器设备的方法与装置
CN102508803A (zh) * 2011-12-02 2012-06-20 南京大学 一种矩阵转置存储控制器
CN102637157A (zh) * 2011-02-15 2012-08-15 郑磊 一种片上数字模板***dtsoc
CN105630735A (zh) * 2015-12-25 2016-06-01 南京大学 一种基于可重构计算阵列的协处理器
CN108053855A (zh) * 2017-11-29 2018-05-18 北京时代民芯科技有限公司 一种基于sdram芯片的矩阵转置方法
CN108762719A (zh) * 2018-05-21 2018-11-06 南京大学 一种并行广义内积重构控制器
CN109446478A (zh) * 2018-10-30 2019-03-08 南京大学 一种基于迭代和可重构方式的复协方差矩阵计算***
CN109597788A (zh) * 2018-12-11 2019-04-09 广东浪潮大数据研究有限公司 一种高速串口装置、相关方法及相关装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1152780A (zh) * 1994-10-07 1997-06-25 缪凯什·查特 改进的动态随机存取存储器设备的方法与装置
CN102637157A (zh) * 2011-02-15 2012-08-15 郑磊 一种片上数字模板***dtsoc
CN102508803A (zh) * 2011-12-02 2012-06-20 南京大学 一种矩阵转置存储控制器
CN105630735A (zh) * 2015-12-25 2016-06-01 南京大学 一种基于可重构计算阵列的协处理器
CN108053855A (zh) * 2017-11-29 2018-05-18 北京时代民芯科技有限公司 一种基于sdram芯片的矩阵转置方法
CN108762719A (zh) * 2018-05-21 2018-11-06 南京大学 一种并行广义内积重构控制器
CN109446478A (zh) * 2018-10-30 2019-03-08 南京大学 一种基于迭代和可重构方式的复协方差矩阵计算***
CN109597788A (zh) * 2018-12-11 2019-04-09 广东浪潮大数据研究有限公司 一种高速串口装置、相关方法及相关装置

Also Published As

Publication number Publication date
CN111045965B (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN108805266B (zh) 一种可重构cnn高并发卷积加速器
CN110516801B (zh) 一种高吞吐率的动态可重构卷积神经网络加速器
CN110222818B (zh) 一种用于卷积神经网络数据存储的多bank行列交织读写方法
CN108388446A (zh) 运算模块以及方法
CN111931918B (zh) 神经网络加速器
CN103927270B (zh) 一种面向多个粗粒度动态可重构阵列的共享数据缓存装置及控制方法
KR102456086B1 (ko) 네트워크 스위치에서의 큐
CN111737638A (zh) 基于傅里叶变换的数据处理方法及相关装置
US20230132724A1 (en) Broadcast adapters in a network-on-chip
CN111079908B (zh) 片上网络数据处理方法、存储介质、计算机设备和装置
CN111045965B (zh) 一种多通道无冲突拆分的硬件实现方法及运行该方法的计算机设备与可读存储介质
US9715343B2 (en) Multidimensional partitioned storage array and method utilizing input shifters to allow multiple entire columns or rows to be accessed in a single clock cycle
CN113157602B (zh) 一种对内存进行分配的方法、设备及计算机可读存储介质
CN111078623B (zh) 片上网络处理***和片上网络数据处理方法
CN111078624B (zh) 片上网络处理***和片上网络数据处理方法
CN111078625B (zh) 片上网络处理***和片上网络数据处理方法
CN103425625A (zh) 基于微核的可重构处理器以及使用其处理多数据的方法
CN115081600A (zh) 执行Winograd卷积的变换单元、集成电路装置及板卡
CN111368250B (zh) 基于傅里叶变换/逆变换的数据处理***、方法及设备
CN115081603A (zh) 执行Winograd卷积的计算装置、集成电路装置及板卡
CN112639747A (zh) 处理器的寻址方法、处理器、可移动平台和电子设备
CN102622318B (zh) 一种存储器控制电路及其控制的向量数据寻址方法
US20210050047A1 (en) Memory, memory chip and memory data access method
CN111260046A (zh) 运算方法、装置及相关产品
US9442661B2 (en) Multidimensional storage array and method utilizing an input shifter to allow an entire column or row to be accessed in a single clock cycle

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant