一种基于片上网络的高效率矩阵转置簇以及转置方法

文档序号:6526602阅读:226来源:国知局
一种基于片上网络的高效率矩阵转置簇以及转置方法
【专利摘要】本发明涉及一种基于片上网络的高效率矩阵转置簇,包括NI模块,用于实现转置簇与PCC之间的数据传递;数据缓存模块,与转置加速模块相连,用于完成对数据的写入,存储和读出;转置加速单元,用于连接NI模块与数据缓存模块,将来自于PCC的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置;ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。有益效果为:簇内采用AHB总线架构,ARM核控制,转置加速单元与SRAM、NI互联由于转置簇的特殊的架构使得矩阵转置能够进行乒乓操作、读写并行,进而实现极高的转置效率。
【专利说明】一种基于片上网络的高效率矩阵转置簇以及转置方法
【技术领域】
[0001]本发明涉及矩阵转置,尤其涉及一种基于片上网络的高效率矩阵转置簇以及转置方法。
【背景技术】
[0002]数字信号处理技术不仅广泛应用于多媒体、数据通信、雷达成像、地质探测、航空航天等工程【技术领域】,近年来又成为人工智能、模式识别、神经网络等新兴学科的理论基础之一,涉及范围非常广泛。而随着半导体工艺技术不断提高、DSP器件的飞速发展,为大批量数据的实时处理提供了可能。而矩阵转置常见于雷达成像等诸多领域,而采用普遍的解决方案——即用DSP进行信号运算,会大大受限于吞吐率。对于大规模的数据转置,仅有15%的转置效率,远远达不到快速处理的实时性要求。而单纯依靠提升处理部件的主频和存储部件的通信带宽,解决不了核心问题,设计架构才是转置效率的瓶颈所在。
[0003]近年来,由于NoC强大的并行通信能力,业已成为解决多核片上系统通信问题最具潜力的方案之一。因此基于NoC设计转置簇模块,通过簇内ARM核对NI进行配置,将挂接在其他路由节点的DDR中的数据经DMA搬运至SRAM,然后再转置读出,从而实现转置过程。由于NoC具有很高的片上吞吐率,使得转置效率提升至30%。但由于SRAM是单端的,仅存在一条数据通道,每次矩阵写入和转置读出都要依次进行,可见通过该方法设计出的转置模块,无论如何优化,其转置效率都不可能高于50%。

【发明内容】

[0004]本发明目的在于克服以上现有技术之不足,提供一种基于片上网络的高效率矩阵转置簇以及转置方法,具体有以下技术方案实现:
所述基于片上网络的高效率矩阵转置簇,与片上网络连接,包括 NI模块,用于实现转置簇与片上网络之间的数据传递;
数据缓存模块,与转置加速模块相连,用于完成对数据的写入,存储和读出;
转置加速单元,用于连接NI模块与数据缓存模块,将来自于片上网络的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置;
ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。
[0005]所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述转置加速单元包括接口单元,用于数据从片上网络输入时,处理来自于数据缓存模块的数据;数据输出到片上网络时,产生对应的地址;连接单元,用于连接各数据通道。
[0006]所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述数据缓存模块为静态随机存储器。
[0007]所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述静态随机存储器包括接口模块,用于对加速模块输出就绪信号的识别以及对加速模块输出地址线特定位的译码,并进行片选操作;
板上存储器件SRAM,用于完成静态随机存储器输入数据的存储和输出。
[0008]所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述NI模块包括 AHB接口,用于为NI模块提供控制通道;
片上网络接口,用于实现将包发送至网络以及接收来自网络的包,并实现片上网络协议时序;
转置加速模块接口,用于实现将包发送至转置加速模块以及接收来自转置加速模块的包,并实现转置加速模块时序。
[0009]所述基于片上网络的高效率矩阵转置簇的进一步设计在于,还包括外设模块,所述外设模块包括
初始化ROM,用做flash初始化程序;
程序存储器、堆栈存储器,用于存放实现的应用程序;
中断控制器,支持16个优先级的普通中断。
[0010]如所述基于片上网络的高效率矩阵转置簇提供一种基于片上网络的高效率矩阵转置方法,包括如下步骤
1)转置簇收到启动转置的控制包,在成功建立网络链路后,将待转置矩阵分多批数据流通过片上网络和转置簇中的NI模块依次读入转置加速单元;
2)转置加速单元控制地址,将数据写入到数据缓存模块;
3)数据缓存模块在数据读出时,由转置加速单元产生地址,将转置的数据流从数据缓存模块中依次读出,并通过NI模块将数据输出到片上网络。
[0011]本发明的优点如下:
本发明提供的基于片上网络的高效率矩阵转置簇以及转置方法,基于NoC通信架构,将设计出的转置簇模块挂接到两组NI接口上,通过两组DDR进行转置前后的数据存储,片外(或片内)SRAM作为数据缓存。簇内采用AHB总线架构,ARM核控制,转置加速单元与SRAM.NI互联,既实现DMA的数据搬运功能,又作为双端SRAM的控制模块实现地址、数据流的控制。由于转置簇的这种特殊的架构使得矩阵转置能够进行乒乓操作、读写并行,进而实现极高的转置效率。
【专利附图】

【附图说明】
[0012]图1是转置簇内部架构示意图。
[0013]图2是转置簇数据流图。
[0014]图3是转置簇数据的读写操作示意图(兵乓操作)。
[0015]图4是装载在多FPGA板内部的2D_Mesh多核架构图。
[0016]图5是转置簇NI建立链路流程图。
[0017]图6是转置加速模块结构图。
[0018]图7是SRAM结构框图。
【具体实施方式】
[0019]下面结合附图对本发明方案进行详细说明。以多FPGA开发板原型芯片上实现的2D Mesh硬件架构将作为转置簇验证测试的实施平台。每片FPGA原型芯片上实现4*4的2DMesh网络,并挂接一些必要的功能模块,如图4所示。clusterl"cluster4为运算簇,主要负责各类数值运算,并向转置簇发送转置请求信号。clusterf为本实施例的转置族,clusterf通过两个NI挂接到相应的路由节点上,三组挂接的DDR可选择两组存放测试矩阵以及转置后的矩阵。
[0020]如图1,本实施例提供的基于片上网络的高效率矩阵转置簇,与片上网络(PCC)连接,包括NI模块、数据缓存模块、转置加速单元以及ARM核心控制单元。NI模块,用于实现转置簇与PCC之间的数据传递。数据缓存模块,与转置加速模块相连,用于完成对数据的写入,存储和读出。转置加速单元,用于连接NI模块与数据缓存模块,将来自于PCC的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置。ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。
[0021]本实施例提供的数据缓存模块为静态随机存储器(SRAM)。该静态随机存储器包括接口模块与板上存储器件SRAM。多FPGA芯片的硬件设计实现了 SRAM的双端口使用,使其可以同时进行读写。簇中将SRAM划分为左右相同的两块。有左右两个NI和转置加速器分别进行SRAM的读写。
[0022]SRAM包括一个接口模块和板上存储器SRAM。接口模块完成对加速模块输出就绪信号的识别,以及加速模块输出地址线特定位的译码,并进行片选。
[0023]在写数据阶段,将符合SRAM要求的特定地址线的一部分和数据写入选择的SRAM ;在读数据阶段,将特定地址线的一部分写入特定SRAM,并接受SRAM输出的数据,并将数据写入加速模块。
[0024]板上存储器件SRAM,负责对输入数据的存储和输出。输入数据阶段,接口模块通过对地址线的译码,将数据写入。输出数据阶段,接口模块将处理过的地址线输入选择好的SRAM, SRAM输出相应的数据。图7是SRAM模块结构框图。
[0025]转置加速模块用于连接NI模块与SRAM,将来自于PCC的数据输入到SRAM,同时将从SRAM读出的数据输出到NI。在加载程序时,该模块需选择将NI的输入连接到程序存储器。转置加速模块主要实现对SRAM地址的控制,完成矩阵的转置。图6为转置加速模块结构图。
[0026]转置加速模块由两部分组成:
第一部分:即接口单元,用于处理来自于SRAM的数据和产生SRAM的地址,其内嵌于网络接口 NI里面。主要功能有两点,一是数据从PCC输入时,用于实现对SRAM地址的控制,二是数据输出到PCC时,提供输出数据。
[0027]第二部分:即连接单元,用于连接各数据通道。由于转置簇各数据通道连接简单,所以,设计中可以直接将转置加速模块和N1、SRAM相连接。另外,在初始化时,NI_1负责将来自于PCC的数据包写入到PM中,此时选择将NI_1与PM相连。
[0028]NI模块为簇的接口模块,主要用于实现簇与PCC之间的数据传递。NI的接口主要有一个AHB的配置端口,上下行PCC接口以及转置加速模块的接口。AHB接口为NI提供控制通道,ARM通过AHB接口为NI配置寄存器。PCC接口实现将包发送至网络以及接收来自网络的包,并实现PCC协议时序。转置加速模块接口实现将包发送至转置加速模块以及接收来自转置加速模块的包,并实现转置加速模块时序。
[0029]转置簇NI接口增加了转置信息配置。在完成转置信息配置后,NI自动完成链路的建立以及数据传输过程,其中包括从DDR读数据与向DDR写数据。转置结束后,产生中断。具体流程图见图5所示。
[0030]本实施例提供的片上网络的高效率矩阵转置簇,还包括外设模块。该外设模块包括初始化R0M,用做flash初始化程序。程序存储器、堆栈存储器,用于存放实现的应用程序。中断控制器,支持16个优先级的普通中断。
[0031]如上述的基于片上网络的高效率矩阵转置簇提供一种基于片上网络的高效率矩阵转置方法,包括如下步骤
1)转置簇收到启动转置的控制包,在成功建立网络链路后,将待转置矩阵分多批数据流通过PCC和转置簇中的NI模块依次读入转置加速单元;
2)转置加速单元控制地址,将数据写入到数据缓存模块;
3)数据缓存模块在数据读出时,由转置加速单元产生地址,将转置的数据流从数据缓存模块中依次读出,并通过NI模块将数据输出到PCC。具体如下:
首先第一批数据流经由ΝΙ_0和数据通道O写入SRAMO ;
第二批数据流经由NI_1和数据通道I写入SRAMl,同时存储在SRAMO中的第一批数据流经由数据通道O和ΝΙ_0并行读出;
第三批数据流由ΝΙ_0写入SR AMO,同时存储在SRAMl中的第二批数据流经由NI_1和数据通道I并行读出;
以此乒乓进行直到最后一批数据读出,数据流图见图2、3。
[0032]本实施例以在多FPGA开发板原型芯片上实现的2D Mesh硬件架构作为转置簇验证测试的实施平台。
[0033]系统测试:
(I)首先用Modelsim完成各模块的功能仿真测试。
[0034](2)由ADS完成汇编程序的编译、实现,由Xilinx ISE完成系统的综合、实现,将生成的二进制文件下载到FPGA开发板中,并通过Chipscope软件检测响应信号完成板级验证。
[0035](3)转置效率测试:转置簇在完成对转置簇的配置以后,转置簇将自动读取源DDR,进行矩阵转置,并将转置完成的矩阵输出到目的DDR。连续两次读取数据相隔60个周期,连续两次写数据相隔40个周期。将矩阵分割成块矩阵,每次读512个数据,写256个数据。处理一个块矩阵时,读数据的时间为:(512+60)*256,写数据时间为(256+40)*512。最后计算得到三种矩阵转置的转置效率如表1所示。(注:转置效率=矩阵大小/运算周期)
表1
【权利要求】
1.一种基于片上网络的高效率矩阵转置簇,与片上网络连接,其特征在于包括 NI模块,用于实现转置簇与片上网络之间的数据传递; 数据缓存模块,与转置加速模块相连,用于完成对数据的写入、存储和读出; 转置加速单元,用于连接NI模块与数据缓存模块,将来自于片上网络的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置; ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。
2.根据权利要求1所述的基于片上网络的高效率矩阵转置簇,其特征在于所述转置加速单元包括 接口单元,用于数据从片上网络输入时,处理来自于数据缓存模块的数据;数据输出到片上网络时,产生对应的地址; 连接单元,用于连接各数据通道。
3.根据权利要求1所述的基于片上网络的高效率矩阵转置簇,其特征在于所述数据缓存模块为静态随机存储器。
4.根据权利要求3所述的基于片上网络的高效率矩阵转置簇,其特征在于所述静态随机存储器包括 接口模块,用于对加速模块输出就绪信号的识别以及对加速模块输出地址线特定位的译码,并进行片选操作; 板上存储器件SRAM,用于完成静态随机存储器输入数据的存储和输出。
5.根据权利要求1所述的基于片上网络的高效率矩阵转置簇,其特征在于所述NI模块包括 AHB接口,用于为NI模块提供控制通道; 片上网络接口,用于实现将包发送至网络以及接收来自网络的包,并实现片上网络协议时序; 转置加速模块接口,用于实现将包发送至转置加速模块以及接收来自转置加速模块的包,并实现转置加速模块时序。
6.根据权利要求1所述的基于片上网络的高效率矩阵转置簇,其特征在于还包括外设模块,所述外设模块包括 初始化ROM,用做flash初始化程序; 程序存储器、堆栈存储器,用于存放实现的应用程序; 中断控制器,支持16个优先级的普通中断。
7.如权利要求1-6所述的基于片上网络的高效率矩阵转置簇提供一种基于片上网络的高效率矩阵转置方法,其特征在于包括如下步骤 1)转置簇收到启动转置的控制包,在成功建立网络链路后,将待转置矩阵分多批数据流通过PCC和转置簇中的NI模块依次读入转置加速单元; 2)转置加速单元控制地址,将数据写入到数据缓存模块; 3)数据缓存模块在数据读出时,由转置加速单元产生地址,将转置的数据流从数据缓存模块中依次读出,并通过NI模块将数据输出到片上网络。
【文档编号】G06F17/16GK103714044SQ201310744870
【公开日】2014年4月9日 申请日期:2013年12月30日 优先权日:2013年12月30日
【发明者】潘红兵, 黄炎, 李丽, 郑艳丽, 何书专, 沙金, 李伟 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1