面向大规模MIMO信号检测的粗粒度可重构架构系统

文档序号:25650912发布日期:2021-06-29 20:22阅读:178来源:国知局
面向大规模MIMO信号检测的粗粒度可重构架构系统
面向大规模mimo信号检测的粗粒度可重构架构系统
技术领域
1.本发明涉及无线通信技术领域的一种粗粒度可重构架构技术,具体地,涉及一种面向大规模mimo信号检测的粗粒度可重构架构系统。


背景技术:

2.无线通信技术的发展推动了智慧城市、电子商务、无人驾驶、电子支付等新兴领域的进步,并从诸多方面改变着人们的生活。大规模多输入多输出技术(multiple

input multiple

output,mimo)是当今第五代移动通信系统(the fifth generation wireless system,5g)的关键技术,通过在基站部署几十乃至数百根收发天线来同时服务多个用户,从而提高系统容量和频谱利用率,以此满足超高数据传输速率的需求。上行链路信号检测是指从基站的接收信号中恢复出原始发送信号的过程,一系列大规模mimo检测算法的提出推动了5g的商用化进程。
3.然而,随着大规模mimo系统天线数目的增加,算法复杂度显著提升,并且更新迭代日益加快。传统的处理器与专用集成电路难以兼顾高面积效率的计算需求和硬件灵活性需求。于是,很多关于大规模mimo检测算法的研究基于可重构架构。现场可编程门阵列(field programmable gate array,fpga)的细粒度可重构逻辑和复杂互连方式赋予了其较高的灵活性。但是为了完成电路定制,需要对每个细粒度单元进行比特级配置,较大的配置比特流带来了配置延时和能耗开销,因此限制了其应用范围。而粗粒度可重构架构(coarse

grained reconfigurable architecture,cgra)凭借灵活的重构能力与较高的并行度,迅速成为研究热点。
4.为了实现面向大规模mimo信号检测的粗粒度可重构架构,近年来已经提出了许多相关方法,例如可重构计算单元优化、存储方式优化和互连网络优化等。但这些优化方法多数针对传统mimo系统进行设计,针对大规模mimo算法的系统架构研究较少,因此无法满足天线规模增加时的计算需要。此外,现有的粗粒度可重构架构多采用仅支持实数的数据通路,并且计算单元采用两级流水的传统结构设计,无法有效支持复数定点运算的粗粒度实现,这会增加互连开销并降低硬件利用率;并且,目前面向大规模mimo信号检测的粗粒度可重构架构通过增加缓存的方式实现访存和计算解耦合,这会增加分布式缓存的硬件开销;并且,现有研究采用复杂的互连网络来满足算法的灵活性需求,尽管提高了吞吐率但却带来了较大的硬件开销。因此,现有技术还缺少针对面积效率的优化,而在实际应用中,硬件的面积效率尤为重要。
5.综上所述,目前面向大规模mimo信号检测的粗粒度可重构架构,多采用传统通用的计算单元设计,通过增加存储和互连等硬件开销来满足算法的灵活性和吞吐率要求,硬件开销较大,无法满足实际应用中对硬件面积效率需求。


技术实现要素:

6.本发明针对现有技术中存在的上述不足,提供了一种面向大规模mimo信号检测的
粗粒度可重构架构系统。
7.本发明提供的一种面向大规模mimo信号检测的粗粒度可重构架构系统,包括:计算阵列模块、用于与本地存储器交互的访存阵列模块以及用于数据传输的互连网络模块;其中:
8.所述计算阵列模块,包括多个计算基本单元,其中每一个所述计算基本单元均包括一个计算单元及其配置单元a;
9.所述访存阵列模块,包括多个访存基本单元,其中每一个所述访存基本单元均包括一个访存单元及其配置单元b;
10.所述互连网络模块,包括多个路由基本单元,其中每一个所述路由基本单元均包括一个路由单元及其配置单元c;
11.所述访存单元设置于所述计算阵列模块的外围;
12.不同所述计算单元之间以及所述计算单元与所述访存单元均通过所述路由单元进行数据传输;
13.不同所述路由单元之间相互连接。
14.优选地,所述配置单元a,包括地址匹配单元、第二级配置缓存单元和第一级配置缓存单元;其中:
15.所述地址匹配单元用于将配置单元a内部地址与外部输入地址进行比较,当地址匹配即进行计算单元的配置信息写入;
16.所述第二级配置缓存单元用于缓存写入计算单元的配置信息,隐藏配置周期,进而减小整体延时;
17.所述第一级配置缓存单元用于接收来自第二级配置缓存单元的配置信息,并对计算单元进行重构。
18.优选地,位于访存阵列四个顶角上的访存单元能够同时实现加载和存储模式,并支持地址递增逻辑;其余每一个访存单元用于实现加载或者存储模式,并支持地址递增逻辑、预处理和后处理以及多种地址生成方式;所述配置单元b用于实现访存单元的功能配置。
19.优选地,所述路由单元采用双向并行的数据传输方式;所述配置单元c用于实现路由单元的功能配置。
20.优选地,每一个所述计算单元均与一个独立的路由单元一一对应,用于对计算单元输入和输出数据进行连续传输。
21.优选地,所述计算单元,采用四级流水结构,包括:
22.第一级层为输入流水级,包括三个复数输入端口和操作数检测单元;其中,每一个输入端口均对应一个输入寄存器,其中第二个输入端口所对应的寄存器能够同时接收输入端口数据和配置中的立即数;所述操作数检测单元,用于在数据不匹配时产生反馈控制信号对数据流进行控制;
23.第二级层为多模式乘法流水级,包括四个16位乘法器、设置于每一个乘法器前的mux和设置于每一个乘法器后的寄存器;所述多模式乘法流水级支持复数乘法模式和单输入数据的自身相乘模式,其中,所述复数乘法模式根据复数乘法运算需要,通过乘法器前的mux选择相应的实部和虚部进行运算;所述自身相乘模式将来自于同一个输入的两个相同
的操作数进行运算;
24.第三级层为异构算术逻辑流水级,包括:主算术逻辑单元和副算术逻辑单元;其中:所述主算术逻辑单元对应实部输出,用于支持大规模mimo检测算法中的逻辑运算与算数运算;所述副算术逻辑单元对应虚部输出,通过一个32位加法器及辅助电路结构,完成复数运算中对虚部的常见操作。
25.第四级层为多模式累加和移位流水级,包括多模式累加单元和移位单元;其中:
26.所述多模式累加单元包括:累加的启动模块、累加的初始值选择模块、加法计算模块和避免重复累加模块;所述累加的启动模块用于检测第一个到达的累加数据;所述累加的初始值选择模块用于选择累加的初始值;所述加法计算模块用于实现两个输入数据的有符号加法;所述避免重复累加模块用于避免相同数据重复累加;其中,所述初始值来自于通过配置字输入的立即数、第一级层中第三个输入端口、寄存器初始化值,实现立即数累加、复数乘累加、自累加模式。
27.所述移位单元用于实现数据移位,从而满足定点化运算中的移位需求;其中,移位位数通过配置字输入。
28.优选地,所述访存单元,包括预处理/后处理单元、循环变量发生器单元以及专有地址生成电路单元;其中:
29.所述预处理/后处理单元,用于将数据在输入或输出时进行批量处理;
30.所述循环变量发生器单元,用于实现访存和计算解耦合;
31.所述专有地址生成电路单元,用于实现地址生成和地址跳变功能。
32.优选地,所述循环变量发生器单元,包括:循环变量产生单元、循环边界比较单元和循环变量累加结构单元;其中:
33.所述循环变量产生单元,采用可配置的寄存器,用于在每个时钟周期产生参与地址计算的循环变量;
34.所述循环边界比较单元,采用比较器,用于控制循环变量的变化范围;
35.所述循环变量累加结构单元,采用加法器,用于实现循环变量在每个周期加1的累加操作。
36.优选地,所述专有地址生成电路单元,采用两种地址生成模式生成地址,并根据算法需求进行地址切换,包括:
37.将地址表示为外层循环迭代变量i和内层循环迭代变量j的仿射变换函数,其中n
i
、n
j
为迭代变量i和j的循环边界,x,y,z下标表示起始地址和步长的地址系数编号,所述地址系数编号为0和1,分别对应两种地址生成模式的系数值;在每个周期,根据循环迭代变量和配置的地址系数,生成如下地址f(
·
):
[0038][0039]
其中,a
x
和b
y
分别表示变量i和j的步长,即地址系数,c
z
表示起始地址;
[0040]
数据加载模式下,循环迭代变量的更新方式如式(2)和(3)所示,即当反馈控制信号fb为1时地址保持不变,当反馈控制信号fb为0时,地址根据循环迭代变量状态实现累加或清零。:
[0041][0042][0043]
在数据存储模式中,此时循环迭代变量可以分别表示为公式(4)和(5);同样在反馈控制信号fb信号为1时循环迭代变量保持不变;只有当反馈控制信号fb为0、循环迭代变量未到达边界,并且数据有效信号valid0为1时循环变量才会增加:
[0044][0045][0046]
其中,i
n
和j
n
分别表示当前时钟周期外层循环迭代变量值和内层循环迭代变量值;i
n+1
和j
n+1
分别表示下一个时钟周期外层循环迭代变量值和内层循环迭代变量值;下一个时钟周期的循环迭代变量由系统当前周期的循环迭代变量以及反馈控制信号fb、数据有效信号valid0以及配置信息n
i
、n
j
共同作用得到,进一步通过公式(1)求得地址值。
[0047]
优选地,所述路由单元包括:data模块和fb模块,所述data模块用于数据传递,所述fb模块用于数据流控制;其中:
[0048]
每一个所述路由单元与相邻的一个或多个访存单元互连,其中每一个所述访存单元与固定的两个路由单元互连,形成负载平衡结构;
[0049]
每一个所述路由单元均与相邻的n、e、s、w四个方向上的路由单元双向互连,位于最上端的路由单元的n方向对应最下端的路由单元,以此类推,从而形成用于支持多种脉动阵列运算的结构;
[0050]
每一个所述路由单元与对应的所述计算单元的三个输入端口和一个输出端口互连。
[0051]
由于采用了上述技术方案,本发明与现有技术相比,具有如下至少一项的有益效果:
[0052]
本发明提出了一种适用于大规模mimo信号检测的四级流水计算单元的电路结构,能够实现大规模mimo算法中定点化复数的粗粒度计算,提高硬件资源利用率从而提高面积效率。
[0053]
本发明提出了一种专有循环变量发生器、融合地址计算并且支持地址跳变的可编程访存单元的电路结构,降低了分布式缓存的硬件开销,能够实现访存和计算解耦合,从而提高整体面积效率。
[0054]
本发明提出了一种适用于多种脉动阵列的路由单元的电路结构,能够支持双向并行的数据交互,与以上计算单元和访存单元相结合构成高面积效率的可重构阵列。在对检测算法预处理gram矩阵和y
mf
向量算子的实验中,该结构实现了6.44倍面积效率提升,并降低了89%的访存需求。
[0055]
本发明为提升硬件灵活性和面积效率提供了技术支持。
附图说明
[0056]
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0057]
图1为本发明一实施例中面向大规模mimo信号检测的粗粒度可重构架构电路系统的阵列整体架构示意图;
[0058]
图2为本发明一优选实施例中计算单元电路结构示意图;
[0059]
图3为本发明一优选实施例中访存单元电路结构示意图;
[0060]
图4为本发明一优选实施例中路由单元电路结构示意图;其中,(a)为不同pe之间的互连网络结构示意图,(b)为pe与ls之间的互连网络结构示意图;
[0061]
图5为本发明一优选实施例中互连网络电路结构示意图;
[0062]
图6为本发明一优选实施例中检测算法gram矩阵和y
mf
向量映射示意图。
具体实施方式
[0063]
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
[0064]
图1为本发明一实施例提供的面向大规模mimo信号检测的粗粒度可重构架构系统的阵列整体架构示意图。
[0065]
该实施例提供的面向大规模mimo信号检测的粗粒度可重构架构系统,针对大规模mimo检测算法的硬件实现面积效率低的问题,可以提高系统的面积效率,同时降低访存开销。
[0066]
如图1所示,该实施例提供的面向大规模mimo信号检测的粗粒度可重构架构系统,包括:计算阵列模块、用于与本地存储器交互的访存阵列模块以及用于数据传输的互连网络模块;其中:
[0067]
计算阵列模块,包括多个计算基本单元,其中每一个计算基本单元均包括一个计算单元及其配置单元a;
[0068]
访存阵列模块,包括多个访存基本单元,其中每一个访存基本单元均包括一个访存单元及其配置单元b;
[0069]
互连网络模块,包括多个路由基本单元,其中每一个路由基本单元均包括一个路由单元及其配置单元c;
[0070]
访存单元设置于计算阵列模块的外围;
[0071]
不同计算单元之间以及计算单元与访存单元均通过路由单元进行数据传输;
[0072]
不同路由单元之间相互连接。
[0073]
作为一优选实施例,配置单元a,包括地址匹配单元和两级配置缓存单元;其中:
[0074]
地址匹配单元用于将配置单元a内部地址与外部输入地址进行比较,当地址匹配即可进行计算单元的配置信息写入;
[0075]
第二级配置缓存单元用于缓存写入计算单元的配置信息,隐藏配置周期,进而减小整体延时;
[0076]
第一级配置缓存单元用于接收来自第二级配置缓存单元的配置信息,并对计算单元进行重构。
[0077]
作为一优选实施例,位于访存阵列四个顶角上的访存单元能够同时实现load(加载)和store(存储)模式,并支持地址递增逻辑;其余每一个访存单元用于实现load或者store模式,并支持地址递增逻辑、预处理和后处理以及多种地址生成方式;配置单元b用于实现访存单元的功能配置。
[0078]
作为一优选实施例,路由单元采用双向并行的数据传输方式;配置单元c用于实现路由单元的功能配置。
[0079]
作为一优选实施例,每一个计算单元均与一个独立的路由单元一一对应,用于对计算单元输入和输出数据进行连续传输。
[0080]
作为一优选实施例,计算单元,采用四级流水结构,包括:
[0081]
第一级层为输入流水级,包括三个复数输入端口和操作数检测单元;其中,每一个输入端口均对应一个输入寄存器,其中第二个输入端口所对应的寄存器能够同时接收输入端口数据和接收配置中的立即数;操作数检测单元,用于在数据不匹配时产生反馈控制信号对数据流进行控制;
[0082]
第二级层为多模式乘法流水级,包括四个16位乘法器、设置于每一个乘法器前的mux和设置于每一个乘法器后的寄存器;所述多模式乘法流水级支持复数乘法模式和单输入数据的自身相乘模式,其中,所述复数乘法模式根据复数乘法运算需要,通过乘法器前的mux选择相应的实部和虚部进行运算;所述自身相乘模式将来自于同一个输入的两个相同的操作数进行运算;
[0083]
第三级层为异构算术逻辑流水级,包括:主算术逻辑单元和副算术逻辑单元;其中:所述主算术逻辑单元对应实部输出,用于支持大规模mimo检测算法中的逻辑运算与算数运算;所述副算术逻辑单元对应虚部输出,其电路部分根据大规模mimo算法特点简化为一个32位加法器及辅助电路结构,用于完成复数运算中对虚部的常见操作。
[0084]
第四级层为多模式累加和移位流水级,包括多模式累加单元和移位单元;其中:
[0085]
所述多模式累加单元包括:累加的启动模块、累加的初始值选择模块、加法计算模块和避免重复累加模块;所述累加的启动模块用于检测第一个到达的累加数据;所述累加的初始值选择模块用于选择累加的初始值;所述加法计算模块用于实现两个输入数据的有符号加法;所述避免重复累加模块用于避免相同数据重复累加;其中,所述初始值来自于通过配置字输入的立即数、第一级层中第三个输入端口、寄存器初始化值,实现立即数累加、复数乘累加、自累加模式。
[0086]
所述移位单元用于实现数据移位,从而满足定点化运算中的移位需求;其中,移位位数通过配置字输入。
[0087]
作为一优选实施例,访存单元,包括预处理/后处理单元、循环变量发生器单元以及专有地址生成电路;其中:
[0088]
预处理/后处理单元,用于将数据在输入或输出时进行批量处理,以降低数据反复访存的开销;
[0089]
循环变量发生器单元,用于实现访存和计算解耦合,从而降低传统利用分布式缓存实现访存计算解耦合的面积开销;
[0090]
专有地址生成电路单元,用于实现地址生成和地址跳变功能。
[0091]
作为一优选实施例,循环变量发生器单元,包括:循环变量产生单元、循环边界比较单元和循环变量累加结构单元;其中:
[0092]
所述循环变量产生单元,采用可配置的寄存器电路实现,用于在每个时钟周期产生参与地址计算的循环变量;
[0093]
所述循环边界比较单元,采用比较器电路实现,用于控制循环变量的变化范围;
[0094]
所述循环变量累加结构单元,采用加法器电路实现,用于实现循环变量在每个周期加1的累加操作。
[0095]
作为一优选实施例,专有地址生成电路单元,采用两种地址生成模式生成地址,并根据算法需求进行地址切换,包括:
[0096]
将地址表示为外层循环迭代变量i和内层循环迭代变量j的仿射变换函数,其中n
i
、n
j
为迭代变量i和j的循环边界,x,y,z下标表示起始地址和步长的地址系数编号,该编号为0和1分别对应两种地址生成模式的系数值;在每个周期,根据循环迭代变量和配置的地址系数,生成如下地址f(
·
):
[0097][0098]
其中,a
x
和b
y
分别表示变量i和j的步长,即地址系数,c
z
表示起始地址;
[0099]
数据load模式下,循环迭代变量的更新方式如式(2)和(3)所示,即当反馈信号fb为1时地址保持不变,当反馈控制信号fb为0时,地址根据循环迭代变量状态实现累加或清零:
[0100][0101][0102]
在数据store模式中,此时循环迭代变量可以分别表示为公式(4)和(5);同样在反馈控制信号fb信号为1时循环迭代变量保持不变;只有当反馈控制信号fb为0、循环迭代变量未到达边界,并且数据有效信号valid0为1时循环变量才会增加:
[0103][0104][0105]
其中,i
n
和j
n
分别表示当前时钟周期外层循环迭代变量值和内层循环迭代变量值;i
n+1
和j
n+1
分别表示下一个时钟周期外层循环迭代变量值和内层循环迭代变量值;下一个时钟周期的循环迭代变量由系统当前周期的循环迭代变量以及反馈控制信号fb、数据有效信号valid0以及配置信息n
i
、n
j
共同作用得到,进一步通过公式(1)求得地址值。
[0106]
作为一优选实施例,所述路由单元包括:data模块和fb模块,所述data模块用于数据传递,所述fb模块用于数据流控制;其中:
[0107]
每一个所述路由单元与相邻的一个或多个访存单元互连,其中每一个所述访存单元与固定的两个路由单元互连,形成负载平衡结构;
[0108]
每一个所述路由单元均与相邻的n、e、s、w四个方向上的路由单元双向互连,位于最上端的路由单元的n方向对应最下端的路由单元,以此类推,从而形成用于支持多种脉动阵列运算的结构;
[0109]
每一个所述路由单元与对应的所述计算单元的三个输入端口和一个输出端口互连。
[0110]
下面结合附图,对本发明上述实施例所提供的技术方案进一步详细描述如下。
[0111]
如图1所示,本发明上述实施例提供的面向大规模mimo信号检测的粗粒度可重构架构系统,主要包括:核心的计算阵列模块,用于和本地存储器交互的访存阵列模块,以及用于数据在计算阵列模块和访存阵列模块之间、计算阵列中各个计算单元之间数据传输的互连网络模块。
[0112]
其中:
[0113]
计算阵列模块包括多个计算基本单元(processing element unit,peu),其中每一个计算基本单元peu均包括一个计算单元(processing element,pe)及其配置单元;
[0114]
访存阵列模块包括多个访存基本单元(load store unit,lsu),其中每一个访存基本单元lsu均包括一个访存单元(load and store,ls)及其配置单元;
[0115]
互连网络模块包括多个路由基本单元(router unit,ru),其中每一个路由基本单元ru均包括一个路由单元(router)及其配置单元。
[0116]
本发明上述实施例进行了粗粒度可重构架构整体结构设计。针对大规模mimo检测算法的共性和特点,从计算、访存、路由等方面进行电路的优化设计。计算单元通过一种支持定点化复数运算的粗粒度实现来提高其面积效率,同时通过多种模式的累加单元设计满足多种脉动阵列累加计算需求;访存单元通过专有循环变量发生器设计实现了访存和计算的解耦合,同时通过可跳变的地址生成模式设计增加了灵活性;双向并行的路由单元设计和精简的互连网络结构可以支持多种脉动阵列结构,并且拥有较低的互连复杂度。
[0117]
首先是计算单元的电路结构设计。传统计算单元的流水线形式并不能很好的支持自身结果累加这类前后数据关联的操作,因此通常会设计为乘累加(axb+c)的方式来支持线性脉动阵列结构。然而,在处理大规模mimo信号检测的矩阵运算时,该结构存在更多的访存需求,不能很好的支持pe的高效使用。因此,计算单元(pe)设计除了支持乘累加(a
×
b+c)外,还可以支持自累加操作(∑(a
×
b)),并且能够实现单周期的自累加操作,不会因为流水线而间隔累加,从而支持大规模mimo信号检测的矩阵向量操作中连续的累加运算。此外,为了支持灵活的算法映射,设计支持三个复数的输入端口,同时能够支持操作数检测,在数据不匹配时产生反馈控制信号用于数据流控制。为了满足大规模mimo算子运算需求,设计支持复数乘法以及单输入数据自身相乘模式等多种模式的乘法单元。为了降低硬件开销,设计异构的算数逻辑单元(arithmetic and logic unit)。最终提出四级流水的pe结构,实现对定点化复数乘累加运算的支持。
[0118]
然后是访存单元的电路结构设计。在访存计算耦合方式下,算法的执行时间为访存延时和计算延时的总和,而访存计算解耦合方式则会使总延时仅依赖于计算延时。现有粗粒度可重构架构的访存单元设计,通常利用先进先出存储器(first input first output)等深度缓存来实现访存计算解耦合,导致较大的存储和控制开销。因此,提出利用专有循环变量生成单元来实现访存计算解耦合的方式,用简单的计数器模块代替复杂的分布式缓存,以此降低硬件开销从而提高面积效率。此外,现有技术通过pe完成循环变量生成以及地址计算,原本可用于执行复杂运算的pe被用于执行简单的计数操作,造成pe资源浪费。为此,在访存单元中设计专用的循环变量生成单元和地址计算单元,通过专用电路设计节省通用的pe资源,提高面积效率。并且地址生成单元在load和store模式下共用相同的硬件资源,同时支持地址跳变,能够根据算法需要实时的完成地址切换,从而提高灵活性。此外,访存单元中设计预处理/后处理单元,包括复数求共轭等处理单元,实现访存前后数据批量处理,从而提高整体执行效率。
[0119]
最后是路由单元的电路结构设计。大规模mimo算法以矩阵向量类计算为主,包含大量乘累加运算,传统设计采用“加法树”结构,该结构受到可重构阵列的互连约束以及阵列功能限制,往往导致pe利用率以及数据复用率较低,从而影响面积效率。而设计仅需要相邻pe之间数据交互的线性累加结构和仅需要在pe内部完成运算的自累加的方式,可以降低对互连的需求,从而有效提升面积效率。在此基础上,设计了两种脉动阵列结构,第一种为适用于向量计算的线性脉动阵列结构,其中所有pe相互串联成一维线性结构,数据可以按照该互连结构从起始pe开始依次向后传递输入或输出数据。并且,每个pe最终的累加结果可以逆向传递并从相同的访存单元输出。该结构可以很好地实现输入数据的复用并节省输出访存单元数目。第二种为矩阵脉动阵列结构,该结构支持从阵列的两个方向同时输入两个矩阵,在pe中进行自累加运算,并且同样支持累加结果逆向输出。该结构可有效提高数据复用率,从而提高面积效率。为满足所设计的脉动阵列结构需求,进行了阵列互连网络设计,pe之间以及pe和ls之间通过router进行互连,采用异构的互连方式,每个router可以与相邻的n、e、s、w四个方向的router以及1、2或3个相邻ls互连,每个ls可以与相邻的2个router互连。支持双向并行数据交互的路由单元设计,路由的输入和输出通路互不干扰。并且每一个路由单元对应于一个pe,于是pe阵列中的数据传递不再是从pe输出到另一个pe输入的单一互连,而是可以通过router进行多种互连。由此增加互连的灵活性,提升pe利用
率。
[0120]
为了使本发明上述实施例实现的措施、创作特征、达成目的与功效易于明白了解,以下结合附图对本发明的实施例作详细说明。本发明上述实施例提供的技术方案,是一种面向大规模mimo信号检测的粗粒度可重构架构系统,从计算单元、访存单元、路由单元分别进行高面积效率的电路设计。计算单元设计了一种支持定点化复数运算的粗粒度实现,提高计算单元面积效率,并且设计了支持多种模式的累加单元用于支持多种脉动阵列结构;访存单元通过专有循环变量发生器设计实现了访存和计算的解耦合,同时能够支持多种地址生成模式;路由单元和互连网络可以支持多种脉动阵列结构,并且拥有较低的互连复杂度。
[0121]
具体的,如图1所示,该粗粒度可重构架构系统,主要由作为核心的计算阵列模块、外围的访存阵列模块以及互连网络模块三部分组成。其中,计算阵列模块主要由一系列计算基本单元(processing element unit,peu)组成,每个peu均包含一个计算单元(pe)和一个配置单元a。pe可以支持大规模mimo核心算子的运算。配置单元a用于对pe单元进行重构,其电路包含两级缓存单元用于缓存后续的配置信息。该配置单元a能够隐藏配置周期进而减小整体延时。外围的访存阵列模块由异构的访存基本单元(load store unit,lsu)组成,每个lsu均包含一个访存单元(ls)和一个配置单元b。每个ls支持配置为load或者store模式。位于访存阵列四个顶角的lsu2可以同时实现load和store功能,但相比lsu,lsu2仅支持简单的地址递增逻辑。lsu除了支持地址递增以外,还可以支持预处理/后处理以及含地址跳变在内的多种地址生成方式。lsu中的配置单元b用于实现ls的功能配置。互连网络模块同样由一系列路由基本单元(router unit,ru)组成,每个ru均包含一个路由单元router以及一个配置单元c用于实现router的功能配置。router负责不同pe之间、pe和ls之间的数据传输。每个pe都与一个独立的router一一对应,能够支持pe输入和输出数据的连续传输。特别的,router能够实现双向并行的数据传输方式,可支持多种脉动阵列结构。
[0122]
具体的,图2是计算单元(pe)电路结构示意图,采用四级流水结构,实现对定点化复数乘累加运算的支持。第一级为输入流水级,用于接收输入数据和立即数配置字,设计支持复数的三输入端口,能够支持常见的三目运算。每个输入端口对应一个输入寄存器,其中第二个输入端口对应的输入寄存器既可以接收输入端口数据又可以接收配置中的立即数。同时该流水级设计了操作数检测单元,在输入操作数不匹配时可以产生反馈控制信号用于数据流控制。第二级为多模式乘法流水级,设计能够支持复数乘法以及单输入数据自身相乘模式等多种乘法模式。第三级为alu流水级,采用异构alu设计,其中主alu支持16种逻辑运算与算数运算,而副alu利用大规模mimo算法特点进行了化简,支持复数运算中求共轭,虚部加减等6种常见操作。二者相互配合可以满足多种复数运算需求,异构设计可以降低硬件开销并提升面积效率。最后一级为多模式累加和移位流水级,设计了能够支持三种累加模式的累加单元硬件结构,可以支持复数乘累加(a
×
b+c)、立即数累加(a
×
b+imm)和自累加(∑(a
×
b))。其中imm是由配置字定义的立即数(immediate,imm)。通过alu与累加单元分离的结构设计,可以实现单周期自累加。该级中的移位单元可以通过配置字进行移位位数的配置,用于支持定点数计算。计算单元可以根据应用需求选择跨过各级流水线,甚至可以支持单纯的组合逻辑运算。
[0123]
具体的,图3是访存单元(ls)电路结构示意图。首先,预处理/后处理单元主要支持
算法中常见的复数求共轭等功能,将数据在输入或输出时进行批量处理,降低数据反复访存的开销。接着,通过在访存单元中设计专用的循环变量发生器,实现访存和计算解耦合,从而降低分布式缓存的面积开销。循环发生器包括循环变量的产生,循环边界的比较,循环变量的累加结构,并且依据mimo算法最高为二维矩阵操作并且涉及多次迭代的需求,所设计的循环发生器支持两层循环。此外,通过在访存单元中设计专有地址生成电路,降低对pe资源的浪费,提升整体面积效率。地址生成模块除了正常的地址生成外,还设计了地址跳变的功能,能够支持两种地址生成模式,并且根据算法需求进行灵活的地址切换。
[0124]
最后是路由单元(router)的电路结构设计。图4中(a)为不同pe之间的互连网络结构示意图,pe之间通过router进行数据交互,每个router对应一个pe。设计的互连网络支持每个router与相邻n、e、s、w四个方向router的双向互连,最上边router的n方向对应最下边router,其他同理,由此可以满足多种脉动阵列结构需求,实现pe之间灵活的数据交互。图4(b)为pe与ls之间的互连网络结构。采用异构方式,每个router可以与相邻的1、2或3个ls互连,每个ls可以与固定的两个router互连,实现负载平衡。图5为路由单元的电路结构示意图,其中数据通路均为双向并行结构,输入和输出方向的数据通路互不干扰。上述每个方向的互连模块都包括data和fb两个基本模块。data模块用于数据传递,fb模块用于数据流控制。同时,通过配置字的设定,每个方向的输出数据可以选择来自任意一个输入端口。此外,在数据有效信号的控制下,来自n、e、s、w方向的数据可以和pe的输出数据通路进行归并,从而支持脉动阵列逆向输出,进而节省访存需求。
[0125]
在本发明部分实施例中:
[0126]
计算单元,采用一种四级流水结构的计算单元,支持定点化复数运算的粗粒度实现,通过多种模式的累加单元满足多种脉动阵列的累加计算需要;
[0127]
访存单元,采用一种通过专有循环变量发生器实现访存和计算解耦合的访存单元,支持复数的load和store操作,同时能够支持多种地址生成模式;
[0128]
路由单元,采用一种精简的互连网络以及支持双向并行数据交互的路由单元,可以支持多种脉动阵列数据交互。
[0129]
在单元电路的结构中:
[0130]
四级流水的计算单元电路结构,实现对定点复数乘累加等多种大规模mimo通用算子的支持;
[0131]
输入流水级电路结构,包括三个复数输入端口,每个输入端口对应一个输入寄存器,其中第二个寄存器既可以接收输入端口数据又可以接收配置中的立即数,并且包含操作数检测结构,在数据不匹配时产生反馈控制信号用于数据流控制;
[0132]
多模式乘法流水级电路结构。设计能够支持复数乘法以及单输入数据自身相乘模式等多种乘法模式;
[0133]
异构alu流水级电路结构。其中主alu支持16种操作模式,而副alu利用大规模mimo算法特点进行了化简,根据配置字实现多种运算;
[0134]
多模式累加和移位流水级电路结构。通过alu与累加单元分离的结构设计,可以实现单周期自累加。硬件支持三种累加模式,包括:乘累加(a
×
b+c)、立即数累加(a
×
b+imm)和自累加(∑(a
×
b))。其中立即数累加模式下的立即数输入来自于配置字,而自累加的初始值可以来自于配置字,也可以来自于第三个输入端口。
transactions on circuits and systems i:regular papers.2017,63(12):2357

2367.)。在具有n
t
个发射天线和n
r
个接收天线(n
r
>n
t
)的大规模mimo系统中,统计每种算法在一次迭代下完整运算的乘除法计算量,如表1所示。
[0150]
表1迭代求逆算法一次迭代下完整运算的乘除法计算量
[0151][0152]
根据运算量统计结果,大规模mimo检测算法以矩阵乘矩阵、矩阵乘向量、向量内积运算为主,并且检测算法预处理中gram矩阵求解和y
mf
向量求解占据核心运算。
[0153]
gram矩阵和y
mf
向量计算在该架构的映射如图6所示。复用了求解gram矩阵的两个输入矩阵,并且将gram矩阵和y
mf
的输入矩阵复用,实现并行计算。使用pe
x,y
[t]来表示第x行第y列的pe,在第t个周期的累加结果。假设每个pe的执行周期相等,则第一列输出表示为:
[0154][0155]
第二列gram对角线输出表示为:
[0156][0157]
下三角元素输出表示为:
[0158][0159]
其中,由pe在计算过程中求得。
[0160]
将实现结果和传统实现进行对比,传统结构的pe不支持复数运算,不支持单周期自累加结构,流水级数较少;传统结构的ls不支持循环变量和地址生成,更不支持地址跳变,不包含预处理等结构。结果如表2所示,其中延时代表算法中预处理计算一组gram矩阵和y
mf
向量的时间间隔,吞吐率代表单位时间内处理gram矩阵和y
mf
向量的操作次数,片上访存总量代表计算一组gram矩阵和y
mf
向量过程中,load和store的有效数据总bit数。从表中可以看出,本发明上述实施例提供的系统,相比传统实现具有6.44倍单位面积吞吐率性能提升,并降低了89%的片上访存总量。
[0161]
表2性能对比
[0162][0163]
本发明上述实施例提供的面向大规模mimo信号检测的粗粒度可重构架构系统,针
对面积效率进行优化,提出四级流水的计算单元电路结构、专有循环变量发生器的访存单元电路结构,并通过双向并行路由单元和互连网路结构设计提升数据复用率,进而提高架构的面积效率。
[0164]
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0165]
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1