CN103714044A - 一种基于片上网络的高效率矩阵转置簇以及转置方法 - Google Patents
一种基于片上网络的高效率矩阵转置簇以及转置方法 Download PDFInfo
- Publication number
- CN103714044A CN103714044A CN201310744870.5A CN201310744870A CN103714044A CN 103714044 A CN103714044 A CN 103714044A CN 201310744870 A CN201310744870 A CN 201310744870A CN 103714044 A CN103714044 A CN 103714044A
- Authority
- CN
- China
- Prior art keywords
- module
- transposition
- data
- network
- chip
- 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.)
- Pending
Links
- 230000017105 transposition Effects 0.000 title claims abstract description 108
- 239000011159 matrix material Substances 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims description 17
- 230000005540 biological transmission Effects 0.000 claims abstract description 10
- 238000004891 communication Methods 0.000 claims abstract description 9
- 230000003068 static effect Effects 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 6
- 238000000151 deposition Methods 0.000 claims description 4
- 241001269238 Data Species 0.000 claims description 3
- 230000001133 acceleration Effects 0.000 abstract 4
- 238000013461 design Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Abstract
本发明涉及一种基于片上网络的高效率矩阵转置簇,包括NI模块,用于实现转置簇与PCC之间的数据传递;数据缓存模块,与转置加速模块相连,用于完成对数据的写入,存储和读出;转置加速单元,用于连接NI模块与数据缓存模块,将来自于PCC的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置;ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。有益效果为:簇内采用AHB总线架构,ARM核控制,转置加速单元与SRAM、NI互联由于转置簇的特殊的架构使得矩阵转置能够进行乒乓操作、读写并行,进而实现极高的转置效率。
Description
技术领域
本发明涉及矩阵转置,尤其涉及一种基于片上网络的高效率矩阵转置簇以及转置方法。
背景技术
数字信号处理技术不仅广泛应用于多媒体、数据通信、雷达成像、地质探测、航空航天等工程技术领域,近年来又成为人工智能、模式识别、神经网络等新兴学科的理论基础之一,涉及范围非常广泛。而随着半导体工艺技术不断提高、DSP器件的飞速发展,为大批量数据的实时处理提供了可能。而矩阵转置常见于雷达成像等诸多领域,而采用普遍的解决方案——即用DSP进行信号运算,会大大受限于吞吐率。对于大规模的数据转置,仅有15%的转置效率,远远达不到快速处理的实时性要求。而单纯依靠提升处理部件的主频和存储部件的通信带宽,解决不了核心问题,设计架构才是转置效率的瓶颈所在。
近年来,由于NoC强大的并行通信能力,业已成为解决多核片上系统通信问题最具潜力的方案之一。因此基于NoC设计转置簇模块,通过簇内ARM核对NI进行配置,将挂接在其他路由节点的DDR中的数据经DMA搬运至SRAM,然后再转置读出,从而实现转置过程。由于NoC具有很高的片上吞吐率,使得转置效率提升至30%。但由于SRAM是单端的,仅存在一条数据通道,每次矩阵写入和转置读出都要依次进行,可见通过该方法设计出的转置模块,无论如何优化,其转置效率都不可能高于50%。
发明内容
本发明目的在于克服以上现有技术之不足,提供一种基于片上网络的高效率矩阵转置簇以及转置方法,具体有以下技术方案实现:
所述基于片上网络的高效率矩阵转置簇,与片上网络连接,包括
NI模块,用于实现转置簇与片上网络之间的数据传递;
数据缓存模块,与转置加速模块相连,用于完成对数据的写入,存储和读出;
转置加速单元,用于连接NI模块与数据缓存模块,将来自于片上网络的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置;
ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。
所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述转置加速单元包括
接口单元,用于数据从片上网络输入时,处理来自于数据缓存模块的数据;数据输出到片上网络时,产生对应的地址;
连接单元,用于连接各数据通道。
所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述数据缓存模块为静态随机存储器。
所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述静态随机存储器包括
接口模块,用于对加速模块输出就绪信号的识别以及对加速模块输出地址线特定位的译码,并进行片选操作;
板上存储器件SRAM,用于完成静态随机存储器输入数据的存储和输出。
所述基于片上网络的高效率矩阵转置簇的进一步设计在于,所述NI模块包括
AHB接口,用于为NI模块提供控制通道;
片上网络接口,用于实现将包发送至网络以及接收来自网络的包,并实现片上网络协议时序;
转置加速模块接口,用于实现将包发送至转置加速模块以及接收来自转置加速模块的包,并实现转置加速模块时序。
所述基于片上网络的高效率矩阵转置簇的进一步设计在于,还包括外设模块,所述外设模块包括
初始化ROM,用做flash初始化程序;
程序存储器、堆栈存储器,用于存放实现的应用程序;
中断控制器,支持16个优先级的普通中断。
如所述基于片上网络的高效率矩阵转置簇提供一种基于片上网络的高效率矩阵转置方法,包括如下步骤
1)转置簇收到启动转置的控制包,在成功建立网络链路后,将待转置矩阵分多批数据流通过片上网络和转置簇中的NI模块依次读入转置加速单元;
2)转置加速单元控制地址,将数据写入到数据缓存模块;
3)数据缓存模块在数据读出时,由转置加速单元产生地址,将转置的数据流从数据缓存模块中依次读出,并通过NI模块将数据输出到片上网络。
本发明的优点如下:
本发明提供的基于片上网络的高效率矩阵转置簇以及转置方法,基于NoC通信架构,将设计出的转置簇模块挂接到两组NI接口上,通过两组DDR进行转置前后的数据存储,片外(或片内)SRAM作为数据缓存。簇内采用AHB总线架构,ARM核控制,转置加速单元与SRAM、NI互联,既实现DMA的数据搬运功能,又作为双端SRAM的控制模块实现地址、数据流的控制。由于转置簇的这种特殊的架构使得矩阵转置能够进行乒乓操作、读写并行,进而实现极高的转置效率。
附图说明
图1是转置簇内部架构示意图。
图2是转置簇数据流图。
图3是转置簇数据的读写操作示意图(兵乓操作)。
图4是装载在多FPGA板内部的2D-Mesh多核架构图。
图5是转置簇NI建立链路流程图。
图6是转置加速模块结构图。
图7是SRAM结构框图。
具体实施方式
下面结合附图对本发明方案进行详细说明。以多FPGA开发板原型芯片上实现的2D Mesh硬件架构将作为转置簇验证测试的实施平台。每片FPGA原型芯片上实现4*4的2D Mesh网络,并挂接一些必要的功能模块,如图4所示。cluster1~cluster4为运算簇,主要负责各类数值运算,并向转置簇发送转置请求信号。cluster5为本实施例的转置族,cluster5通过两个NI挂接到相应的路由节点上,三组挂接的DDR可选择两组存放测试矩阵以及转置后的矩阵。
如图1,本实施例提供的基于片上网络的高效率矩阵转置簇,与片上网络(PCC)连接,包括NI模块、数据缓存模块、转置加速单元以及ARM核心控制单元。NI模块,用于实现转置簇与PCC之间的数据传递。数据缓存模块,与转置加速模块相连,用于完成对数据的写入,存储和读出。转置加速单元,用于连接NI模块与数据缓存模块,将来自于PCC的数据输入到数据缓存模块,同时将从数据缓存模块读出的数据输出到NI模块,实现对数据缓存模块地址的控制,完成矩阵的转置。ARM核心控制单元,通过AHB总线与NI模块通信连接,用于控制地址与数据的传输。
本实施例提供的数据缓存模块为静态随机存储器(SRAM)。该静态随机存储器包括接口模块与板上存储器件SRAM。多FPGA芯片的硬件设计实现了SRAM的双端口使用,使其可以同时进行读写。簇中将SRAM划分为左右相同的两块。有左右两个NI和转置加速器分别进行SRAM的读写。
SRAM包括一个接口模块和板上存储器SRAM。接口模块完成对加速模块输出就绪信号的识别,以及加速模块输出地址线特定位的译码,并进行片选。
在写数据阶段,将符合SRAM要求的特定地址线的一部分和数据写入选择的SRAM;在读数据阶段,将特定地址线的一部分写入特定SRAM,并接受SRAM输出的数据,并将数据写入加速模块。
板上存储器件SRAM,负责对输入数据的存储和输出。输入数据阶段,接口模块通过对地址线的译码,将数据写入。输出数据阶段,接口模块将处理过的地址线输入选择好的SRAM,SRAM输出相应的数据。图7是SRAM模块结构框图。
转置加速模块用于连接NI模块与SRAM,将来自于PCC的数据输入到SRAM,同时将从SRAM读出的数据输出到NI。在加载程序时,该模块需选择将NI的输入连接到程序存储器。转置加速模块主要实现对SRAM地址的控制,完成矩阵的转置。图6为转置加速模块结构图。
转置加速模块由两部分组成:
第一部分:即接口单元,用于处理来自于SRAM的数据和产生SRAM的地址,其内嵌于网络接口NI里面。主要功能有两点,一是数据从PCC输入时,用于实现对SRAM地址的控制,二是数据输出到PCC时,提供输出数据。
第二部分:即连接单元,用于连接各数据通道。由于转置簇各数据通道连接简单,所以,设计中可以直接将转置加速模块和NI、SRAM相连接。另外,在初始化时,NI_1负责将来自于PCC的数据包写入到PM中,此时选择将NI_1与PM相连。
NI模块为簇的接口模块,主要用于实现簇与PCC之间的数据传递。NI的接口主要有一个AHB的配置端口,上下行PCC接口以及转置加速模块的接口。AHB接口为NI提供控制通道,ARM通过AHB接口为NI配置寄存器。PCC接口实现将包发送至网络以及接收来自网络的包,并实现PCC协议时序。转置加速模块接口实现将包发送至转置加速模块以及接收来自转置加速模块的包,并实现转置加速模块时序。
转置簇NI接口增加了转置信息配置。在完成转置信息配置后,NI自动完成链路的建立以及数据传输过程,其中包括从DDR读数据与向DDR写数据。转置结束后,产生中断。具体流程图见图5所示。
本实施例提供的片上网络的高效率矩阵转置簇,还包括外设模块。该外设模块包括初始化ROM,用做flash初始化程序。程序存储器、堆栈存储器,用于存放实现的应用程序。中断控制器,支持16个优先级的普通中断。
如上述的基于片上网络的高效率矩阵转置簇提供一种基于片上网络的高效率矩阵转置方法,包括如下步骤
1)转置簇收到启动转置的控制包,在成功建立网络链路后,将待转置矩阵分多批数据流通过PCC和转置簇中的NI模块依次读入转置加速单元;
2)转置加速单元控制地址,将数据写入到数据缓存模块;
3)数据缓存模块在数据读出时,由转置加速单元产生地址,将转置的数据流从数据缓存模块中依次读出,并通过NI模块将数据输出到PCC。具体如下:
首先第一批数据流经由NI_0和数据通道0写入SRAM0;
第二批数据流经由NI_1和数据通道1写入SRAM1,同时存储在SRAM0中的第一批数据流经由数据通道0和NI_0并行读出;
第三批数据流由NI_0写入SRAM0,同时存储在SRAM1中的第二批数据流经由NI_1和数据通道1并行读出;
……
以此乒乓进行直到最后一批数据读出,数据流图见图2、3。
本实施例以在多FPGA开发板原型芯片上实现的2D Mesh硬件架构作为转置簇验证测试的实施平台。
系统测试:
(1) 首先用Modelsim完成各模块的功能仿真测试。
(2) 由ADS完成汇编程序的编译、实现,由Xilinx ISE 完成系统的综合、实现,将生成的二进制文件下载到FPGA开发板中,并通过Chipscope软件检测响应信号完成板级验证。
(3) 转置效率测试:转置簇在完成对转置簇的配置以后,转置簇将自动读取源DDR,进行矩阵转置,并将转置完成的矩阵输出到目的DDR。连续两次读取数据相隔60个周期,连续两次写数据相隔40个周期。将矩阵分割成块矩阵,每次读512个数据,写256个数据。处理一个块矩阵时,读数据的时间为:(512+60)*256,写数据时间为(256+40)*512。最后计算得到三种矩阵转置的转置效率如表1所示。(注:转置效率=矩阵大小/运算周期)
表1
矩阵规模 | 转置效率 |
1K*4K | 83.9% |
4K*1K | 83.9% |
8K*4K | 86.1% |
Claims (7)
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模块将数据输出到片上网络。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310744870.5A CN103714044A (zh) | 2013-12-30 | 2013-12-30 | 一种基于片上网络的高效率矩阵转置簇以及转置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310744870.5A CN103714044A (zh) | 2013-12-30 | 2013-12-30 | 一种基于片上网络的高效率矩阵转置簇以及转置方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103714044A true CN103714044A (zh) | 2014-04-09 |
Family
ID=50407037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310744870.5A Pending CN103714044A (zh) | 2013-12-30 | 2013-12-30 | 一种基于片上网络的高效率矩阵转置簇以及转置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103714044A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679690A (zh) * | 2015-01-22 | 2015-06-03 | 中国人民解放军国防科学技术大学 | 用于gpdsp的基于乒乓机制支持数据乱序返回的dma矩阵转置传输方法 |
CN105373497A (zh) * | 2015-10-29 | 2016-03-02 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的矩阵转置装置 |
CN108549935A (zh) * | 2018-05-03 | 2018-09-18 | 济南浪潮高新科技投资发展有限公司 | 一种实现神经网络模型的装置及方法 |
CN110383267A (zh) * | 2017-02-28 | 2019-10-25 | 德克萨斯仪器股份有限公司 | 矩阵传输加速器系统和方法 |
CN111506518A (zh) * | 2020-04-13 | 2020-08-07 | 湘潭大学 | 一种数据存储控制方法及装置 |
CN113468092A (zh) * | 2020-03-31 | 2021-10-01 | 比亚迪半导体股份有限公司 | 高速spi通信装置 |
CN114121066A (zh) * | 2021-09-09 | 2022-03-01 | 西安电子工程研究所 | 基于ddr3的动态乒乓堆栈式数据重排实现方法 |
-
2013
- 2013-12-30 CN CN201310744870.5A patent/CN103714044A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679690A (zh) * | 2015-01-22 | 2015-06-03 | 中国人民解放军国防科学技术大学 | 用于gpdsp的基于乒乓机制支持数据乱序返回的dma矩阵转置传输方法 |
CN105373497A (zh) * | 2015-10-29 | 2016-03-02 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的矩阵转置装置 |
CN105373497B (zh) * | 2015-10-29 | 2018-04-13 | 中国人民解放军国防科学技术大学 | 基于dsp芯片的矩阵转置装置 |
CN110383267A (zh) * | 2017-02-28 | 2019-10-25 | 德克萨斯仪器股份有限公司 | 矩阵传输加速器系统和方法 |
CN110383267B (zh) * | 2017-02-28 | 2024-02-13 | 德克萨斯仪器股份有限公司 | 矩阵传输加速器系统和方法 |
CN108549935A (zh) * | 2018-05-03 | 2018-09-18 | 济南浪潮高新科技投资发展有限公司 | 一种实现神经网络模型的装置及方法 |
CN113468092A (zh) * | 2020-03-31 | 2021-10-01 | 比亚迪半导体股份有限公司 | 高速spi通信装置 |
CN111506518A (zh) * | 2020-04-13 | 2020-08-07 | 湘潭大学 | 一种数据存储控制方法及装置 |
CN114121066A (zh) * | 2021-09-09 | 2022-03-01 | 西安电子工程研究所 | 基于ddr3的动态乒乓堆栈式数据重排实现方法 |
CN114121066B (zh) * | 2021-09-09 | 2024-04-30 | 西安电子工程研究所 | 基于ddr3的动态乒乓堆栈式数据重排实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714044A (zh) | 一种基于片上网络的高效率矩阵转置簇以及转置方法 | |
CN111433758B (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN104820657A (zh) | 一种基于嵌入式异构多核处理器上的核间通信方法及并行编程模型 | |
CN107451025B (zh) | 控制存储芯片的测试方法及系统 | |
CN103559156A (zh) | 一种fpga与计算机之间的通信系统 | |
CN103984560A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN105446920A (zh) | 基于龙芯的fpga嵌入式计算机及其配置方法 | |
CN208283943U (zh) | 一种基于fpga的cnn加速优化装置 | |
CN108153190B (zh) | 一种人工智能微处理器 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
JP2007522571A5 (zh) | ||
CN100573500C (zh) | 基于Avalon总线的流处理器IP核 | |
CN105955896B (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
CN106843803A (zh) | 一种基于归并树的全排序加速器及应用 | |
CN109446478A (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
CN110399596A (zh) | 一种文件格式转换方法、系统及相关组件 | |
CN112035056B (zh) | 一种基于多计算单元的并行ram访问设备及访问方法 | |
CN104407811A (zh) | 一种基于云计算的合并io装置 | |
CN111770173B (zh) | 一种基于网络控制器的归约方法及系统 | |
CN113673691A (zh) | 基于存算结合的多通道卷积fpga架构及其工作方法 | |
CN107769871A (zh) | 卫星通信链路延时模拟方法、装置及系统 | |
CN100369010C (zh) | 一种用于智能卡仿真调试系统的硬件断点电路 | |
CN114398308A (zh) | 基于数据驱动粗粒度可重构阵列的近内存计算系统 | |
CN113806431A (zh) | 一种传输仿真数据的方法、电子系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140409 |
|
WD01 | Invention patent application deemed withdrawn after publication |