一种面向通信处理的脉动CGRA的计算颗粒模块制造技术

技术编号:39433289 阅读:10 留言:0更新日期:2023-11-19 16:16
本发明专利技术涉及一种面向通信处理的脉动CGRA的计算颗粒模块,其中,输入单元和输出单元均包括四个端口,用于与相邻的计算颗粒模块相连;功能单元的输出端分别与输出单元的四个端口以及结果单元的输入端相连;功能单元用于完成配置的计算,结果单元用于存储功能单元的计算结果;寄存器单元用于存储数据;立即数单元用于提供立即数;第一数据传输单元的输入端与输入单元的四个端口以及结果单元的输出端相连,输出端与寄存器单元相连;第二数据传输单元的输入端与输入单元的四个端口、立即数单元、寄存器单元的输出端以及结果单元的输出端相连,输出端与功能单元的输入端相连。本发明专利技术能够将计算颗粒模块间延迟从2cycle降低为1cycle。1cycle。1cycle。

【技术实现步骤摘要】
一种面向通信处理的脉动CGRA的计算颗粒模块


[0001]本专利技术涉及粗粒度可重构架构
,特别是涉及一种面向通信处理的脉动CGRA的计算颗粒模块。

技术介绍

[0002]CGRA,即粗粒度可重构架构,是一种由FPGA技术演化而来的新兴技术,其概念建立于20世纪90年代。其特征在于相比于FPGA基本计算单元LUT更复杂、更大型、包含更多运算的PE计算单元,相比于FPGA更少的单元间可重构布局布线。其优势在于对架构进行编译和重构时,可以大幅缩短消耗的时间;切换上下文容易,在应用中可以做到动态重构。另一方面由于其可应用的映射较少,相比于FPGA灵活性较低,更适合对特定领域进行规模上、计算单元功能上的定制。
[0003]CGRA的基本结构为网格阵列,特别适合高度并行计算,因此在人工智能、神经网络领域有天然优势,并由于其兼具低功耗、高效率的特点备受关注。近年来在通信领域,图像、声音的传输和加工越来越多地开始运用人工智能,因此CGRA在该领域的应用也开始逐步崭露头角,通过对算法映射的设计使CGRA阵列脉动化可以高度发挥其并行计算的优势。
[0004]在一些CGRA的PE计算单元中尚存在一些问题,比如PE间的延迟太大,时钟频率太低等等。在OpenCGRA中应用了对Regfile加入bypass的方式使PE间延迟降为1cycle,但使得关键路径增长,并可能导致产生组合逻辑环,最终无法在FPGA上实现。

技术实现思路

[0005]本专利技术所要解决的技术问题是提供一种面向通信处理的脉动CGRA的计算颗粒模块,在保留四个方向输出不同数据的能力情况下,能够将计算颗粒模块间延迟从2cycle降低为1cycle。
[0006]本专利技术解决其技术问题所采用的技术方案是:提供一种面向通信处理的脉动CGRA的计算颗粒模块,包括输入单元、输出单元、寄存器单元、立即数单元、功能单元、结果单元、第一数据传输单元和第二数据传输单元;所述输入单元和输出单元均包括上、下、左、右四个端口,用于与相邻的计算颗粒模块相连;所述功能单元的输出端分别与所述输出单元的四个端口以及所述结果单元的输入端相连;所述功能单元用于完成配置的计算,所述结果单元用于存储所述功能单元的计算结果;所述寄存器单元用于存储数据;所述立即数单元用于提供立即数;所述第一数据传输单元的输入端与所述输入单元的四个端口以及所述结果单元的输出端相连,输出端与所述寄存器单元相连;所述第一数据传输单元用于从输入的数据中选出若干数据至所述寄存器单元进行存储;所述第二数据传输单元的输入端与所述输入单元的四个端口、所述立即数单元、所述寄存器单元的输出端以及所述结果单元的输出端相连,输出端与所述功能单元的输入端相连;所述第二数据传输单元用于从输入的数据中选出若干数据至所述功能单元进行计算。
[0007]所述的面向通信处理的脉动CGRA的计算颗粒模块还包括配置生成器单元,所述配
置生成器单元用于在一次重构时为所述寄存器单元、立即数单元、结果单元、第一数据传输单元和第二数据传输单元配置相应的功能。
[0008]所述第一数据传输单元为5进2出传输单元。
[0009]所述第二数据传输单元为8进3出传输单元。
[0010]所述结果单元、寄存器单元、输出单元和配置生成器单元为时序逻辑单元;所述输入单元、功能单元、第一数据传输单元和第二数据传输单元为组合逻辑单元。
[0011]有益效果
[0012]由于采用了上述的技术方案,本专利技术与现有技术相比,具有以下的优点和积极效果:本专利技术的计算颗粒模块的运算方式分为两种,一种是不经过功能单元,仅作为路由单元将数据传递至相邻计算颗粒模块,另一种时经过功能单元同时将功能单元的运算结果进行选择性保存,本专利技术中的功能单元的输入数据来源分为:从相邻计算颗粒模块直接输入的数据、内部寄存器组存储的数据、上次功能单元计算输出的结果以及分配的立即数,输出数据去向分为:从四个输出口直接输出以及保存在结果单元并根据当前配置决定是否用于下次计算或存储至寄存器组。本专利技术的计算颗粒模块通过将输入数据和输出数据进行划分,实现了延迟从2cycle降低为1cycle,并保留了上下左右四个方向输出不同数据的能力,在FPGA上略微提升了时钟频率,从50MHz提升到了55MHz,从而能够在FPGA上实现。
附图说明
[0013]图1是本专利技术实施方式的结构示意图。
具体实施方式
[0014]下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
[0015]本专利技术的实施方式涉及一种面向通信处理的脉动CGRA的计算颗粒模块,如图1所示,包括输入单元、输出单元、寄存器单元、立即数单元、功能单元、结果单元、第一数据传输单元和第二数据传输单元。
[0016]其中,输入单元包括上输入端口In(U)、下输入端口In(D)、左输入端口In(L)、右输入端口In(R),分别连接CGRA阵列中上、下、左、右四个方向的计算颗粒模块。输出单元同样包括四个端口,分别为上输出端口Out(U)、下输出端口Out(D)、左输出端口Out(L)和右输出端口Out(R),同样分别连接CGRA阵列中上、下、左、右四个方向的计算颗粒模块。
[0017]所述功能单元用于完成配置的计算。所述功能单元的输出端分别与所述输出单元的四个端口以及所述结果单元的输入端相连。所述结果单元用于存储所述功能单元的计算结果。功能单元的输出端与结果单元的相连能够将结果方便地存储在寄存器单元中或便于下一次功能单元运算时的调用。
[0018]所述第一数据传输单元为5进2出传输单元,所述第一数据传输单元的输入端与所述输入单元的四个端口以及所述结果单元的输出端相连,输出端与所述寄存器单元相连。所述寄存器单元用于存储数据。所述第一数据传输单元用于从输入的数据中选出若干数据
至所述寄存器单元进行存储,即从输入单元和结果单元中选出两个数据进行存储。
[0019]所述第二数据传输单元为8进3出传输单元,所述第二数据传输单元的输入端与所述输入单元的四个端口、所述立即数单元、所述寄存器单元的输出端以及所述结果单元的输出端相连,输出端与所述功能单元的输入端相连。所述立即数单元用于提供立即数。所述第二数据传输单元用于从输入的数据中选出若干数据至所述功能单元进行计算,即从输入单元、结果单元、立即数单元和寄存器单元中选出三个数据供功能单元进行计算。
[0020]本实施方式的面向通信处理的脉动CGRA的计算颗粒模块还包括配置生成器单元,配置生成器单元用于在一次重构时为所述寄存器单元、立即数单元、结果单元、第一数据传输单元和第二数据传输单元配置相应的功能。
[0021]本实施方式中的结果单元、寄存器单元、输出单元和配置生成器单元为时序逻辑单元;本实施方式中的输入单元、功能单元、第一数据传输本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向通信处理的脉动CGRA的计算颗粒模块,其特征在于,包括输入单元、输出单元、寄存器单元、立即数单元、功能单元、结果单元、第一数据传输单元和第二数据传输单元;所述输入单元和输出单元均包括上、下、左、右四个端口,用于与相邻的计算颗粒模块相连;所述功能单元的输出端分别与所述输出单元的四个端口以及所述结果单元的输入端相连;所述功能单元用于完成配置的计算,所述结果单元用于存储所述功能单元的计算结果;所述寄存器单元用于存储数据;所述立即数单元用于提供立即数;所述第一数据传输单元的输入端与所述输入单元的四个端口以及所述结果单元的输出端相连,输出端与所述寄存器单元相连;所述第一数据传输单元用于从输入的数据中选出若干数据至所述寄存器单元进行存储;所述第二数据传输单元的输入端与所述输入单元的四个端口、所述立即数单元、所述寄存器单元的输出端以及所述结果单元的输出端相连,输出端与所述功能...

【专利技术属性】
技术研发人员:卜智勇乔若辰何宇童陆芳吴雪桐
申请(专利权)人:白盒子上海微电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1