基于dsp芯片的矩阵转置装置的制造方法_2

文档序号:9616217阅读:来源:国知局
r>[0051] D、矩阵转置模式3 :分开存储到分开存储;
[0052] 如图6所示,将地址Init_real指定的32位N1*N2的二维数据矩阵转置放置到地 址Result_real位置,其中初始矩阵和转置后的矩阵均为连续矩阵。这种模式可以实现矩 阵元素为32位的矩阵转置操作。
[0053] 在具体应用实例中,矩阵转置单元的顶层通过TeraNetAXI主机接口以突发方式 访问数据,矩阵转置单元将矩阵转置操作转换为若干突发访问。
[0054] 为此,本发明的矩阵转置单元执行以下分块矩阵转置策略:
[0055] (a)将原始K*N2矩阵分解若干基本块(基本块通常设置为方阵),通过一次按行 读和按列写操作完成基本块转置;
[0056] (b)以基本块为元素,对基本块矩阵进行转置,实现整个矩阵的转置;基本块矩阵 转置通过控制基本块转置的读、写地址完成;
[0057] (c)采用"乒乓"结构实现不同基本块的读操作时间和写操作时间重叠,充分利用 AXI数据通路的读通路与写通路完全分开,可以重叠读操作和写操作的优势。
[0058] 假定每个多体数据存储器的存储容量为(M字节),基本矩阵通常设置为方阵(规 模为N),贝IJ满足Μ多8N2。本发明以M= 8K、N= 32为例进行说明,将矩阵转置的基本块设 置为32*32点(每个点的数据为64位),使用每个多体存储器来存储一个基本块,两个多体 存储器以"乒乓"方式完成整个矩阵的转置。
[0059] 在具体应用时中,多体数据存储器由4个存储体组成,基本矩阵转置的数据存储 方式如图7所示。具体步骤如下:
[0060] 步骤1 :以行的顺序连续读取1K点的数据,并以体交叉方式存储到7个存储体中, 即每4个连续的数据组成256位,这4点数据同时写入到4个存储体中的相同位置。基本 矩阵中相邻行相同序号的数据存储到不同存储体内,这样保证按列读取时能同时取出相邻 4行相同位置数据。如图7所示,第1行的第一个数据【序号为0】存储在RAM0的位置0,第 2行的第一个数据【序号为32】存储在RAM1的位置8,第3行的第一个数据【序号为64】存 储在RAM2的位置16,第4行的第一个数据【序号为96】存储在RAM3的位置24。对于任意 数据i= {R〇w[4:0],C〇l[4:0]},则数据写入的存储体和体内地址为:
[0061] 存储体:Num_Bank[l:0] =(Col[1:0]+Row[l:0]) % 4
[0062] 存储体地址:Addr_Bank[8:0] =N/4 = {Row[4:0],Col[4:2]}
[0063] 步骤2 :以列的顺序连续将数据从多体存储器中读出,并组成256位的DMA突发, 写入到存储器中。
[0064] 块矩阵转置如图8所示,对于规模为N的FFT计算(N>1K),N点的一维数据可视为 二维矩阵(1024*R) * (1024*〇,其中R和C是一个可配置的参数,且保证R>0、00。假定初 始数据矩阵起始地址为A_I,转换后数据矩阵起始地址为A_R,则矩阵中任意一个数据(序 号为i,i〈N)在目标矩阵中的位置为:
[0065]则行列位置:臟=->NC=i% (1024*〇; W24*C
[0066] 基本块的行列位置:
[0067] 基本块内的行列位置
[0068]NEC=NC% 1024 = (i% (1024*〇) % 1024
[0069] 矩阵转置后对应的地址位置:
[0070]Addr_Trans[i] =A_R+1024*C*(1024*NBC+NEC)+1024*NBR+NER
[0071] 如图9所示,基本块矩阵转置采用"乒乓"方式重叠读、写时间开销,首先以行块的 顺序读取基本块,以列块顺序写入到目标地址中,除第一个基本块的读和最后一个基本块 的写不能重叠外,其余的都能重叠,最大化利用AXI读、写通路的数据带宽。
[0072] 如图10所示,为矩阵转置控制状态转换图,其具体解释如下(其中TotalNum_ Bmatrix表示基本块数,为R*C;Mode表示矩阵转置模式;CntBMatrix表示已经完成读的基 本块的计数)。具体流程如下:
[0073] 状态S0 :控制状态处于空闲状态,等待启动命令。
[0074] 状态S1-S4:完成第一个基本块的读操作,将数据写入到多体存储器0中。对应 模式1,需要读取分开存储的实部基本块和虚部基本块,因此,这种模式下会经历S3和S4, 完成虚部基本块的读操作。从图9可知,当转置矩阵仅仅包含一个基本块时,即TotalNum_ Bmatrix=R*C= 1*1时,完成该基本块读操作后即进入基本块写状态,即跳转到状态S9, 否则进入基本块读操作和写操作交替过程,即跳转到状态S5。
[0075] 状态S6-S8:完成第一个基本块写操作、最后一个基本块读操作和其他基本块的 读写操作。对于模式1分开存储到交叉存储,需要读取分开存储的实部基本块和虚部基本 块,该模式下会经历S7和S8,完成虚部基本块的读操作;对于模式2交叉存储到分开存储, 需要以分开方式写回的实部基本块和虚部基本块,该模式下会经历S7和S8,完成虚部基本 块的写操作。
[0076] 本发明利用两个多体存储器采用乒乓方式实现基本块读和基本块写重叠,对状 态S6-S8进行TotalNum_Bmatrix-l次遍历,完成后跳转到状态S9。对于第i次遍历状态 S6-S8,完成第(i+1)个基本块的读操作,将该基本块数据写入到i% 2个多体数据存储器 中,同时,完成第i个基本块的写操作,将(i+1) % 2个多体数据存储器写回到存储器指定位 置。
[0077] 状态S9-S12:完成最后一个基本矩阵块的写操作。对于模式2交叉存储到分开存 储,需要以分开方式写回的实部基本块和虚部基本块,该模式下会经历S11和S12,完成虚 部基本块的与操作。完成最后个基本块与操作后,状态机跳转到状态S13。
[0078] 状态S13:完成矩阵转置操作并向DSP内核发送矩阵转置完成中断,控制状态机跳 转到空闲状态S0。
[0079] 以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例, 凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护 范围。
【主权项】
1. 一种基于DSP芯片的矩阵转置装置,其特征在于,包括: 矩阵转置单元,用来将矩阵转置转换为若干基本块的转置,同时给DMA总线控制器发 送读写控制参数,协调两个多体数据存储器的读写访问,实现基本矩阵读和写操作重叠; DMA总线控制器,用来发送读写控制参数,协调两个多体数据存储器的读写访问,实现 基本矩阵读和写操作重叠; 两个多体数据存储器,每个多体数据存储器包括多个随机存储器,用来负责缓存一个 基本块数据; 数据通路和命令通路异步处理单元,用来将TeraNet数据主机端口协议转换为内部DMA总线协议,将TeraNet命令从机端口协议转换为内部Pbus总线协议。2. 根据权利要求1所述的基于DSP芯片的矩阵转置装置,其特征在于,所述多体数据存 储器提供多个独立端口以保证基本块能以行顺序写入,同时以列顺序读出。3. 根据权利要求1所述的基于DSP芯片的矩阵转置装置,其特征在于,所述两个多体数 据存储器以乒乓方式实现基本块读操作和写操作重叠。4. 根据权利要求1或2或3所述的基于DSP芯片的矩阵转置装置,其特征在于,设置四 种转置模式: A、 矩阵转置模式0 :交叉存储到交叉存储; B、 矩阵转置模式1 :分开存储到交叉存储; C、 矩阵转置模式2 :交叉存储到分开存储; D、 矩阵转置模式3 :分开存储到分开存储。5. 根据权利要求1或2或3所述的基于DSP芯片的矩阵转置装置,其特征在于,所述矩 阵转置单元执行以下分块矩阵转置策略: (a) 将原始K*N2矩阵分解若干基本块,通过一次按行读和按列写操作完成基本块转 置; (b) 以基本块为元素,对基本块矩阵进行转置,实现整个矩阵的转置;基本块矩阵转置 通过控制基本块转置的读、写地址完成; (c) 采用"乒乓"结构实现不同基本块的读操作时间和写操作时间重叠,AXI数据通路 的读通路与写通路完全分开。
【专利摘要】一种基于DSP芯片的矩阵转置装置,其包括:矩阵转置单元,用来将矩阵转置转换为若干基本块的转置,同时给DMA总线控制器发送读写控制参数,协调两个多体数据存储器的读写访问,实现基本矩阵读和写操作重叠;DMA总线控制器,用来发送读写控制参数,协调两个多体数据存储器的读写访问,实现基本矩阵读和写操作重叠;两个多体数据存储器,每个多体数据存储器包括多个随机存储器,用来负责缓存一个基本块数据;数据通路和命令通路异步处理单元,用来将TeraNet数据主机端口协议转换为内部DMA总线协议,将TeraNet命令从机端口协议转换为内部Pbus总线协议。本发明具有可实现矩阵转置功能、提升存储带宽利用率等优点。
【IPC分类】G06F17/16, G06F13/28
【公开号】CN105373497
【申请号】CN201510717170
【发明人】刘宗林, 陈书明, 雷元武, 陈小文, 鲁建壮, 万江华, 陈海燕, 陈胜刚, 陈虎, 许邦建, 罗恒, 高泽龙
【申请人】中国人民解放军国防科学技术大学
【公开日】2016年3月2日
【申请日】2015年10月29日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1