一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于RISC-V的三维互联众核处理器架构及其工作方法与流程

2022-04-16 12:15:38 来源:中国专利 TAG:

基于risc-v的三维互联众核处理器架构及其工作方法
技术领域
1.本发明属于集成电路处理器层次结构设计技术领域,尤其涉及一种基于 risc-v的三维互联众核处理器架构及其工作方法。


背景技术:

2.本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
3.多年来,随着芯片设计技术的提升和应用范围的广泛,risc-v展示出越来越多传统的arm和x86架构所不具备的完全开源,架构简单等优势。发明人发现,如今risc-v被广泛应用在aiot等对cpu无过多的性能要求的设计行业,但在一些传统高性能的处理器需求上,现有的risc-v仍然有着较大的劣势。


技术实现要素:

4.本发明为了解决上述问题,提供了一种基于risc-v的三维互联众核处理器架构及其工作方法,所述方案通过设计多主核协同作用的主核控制层,即能够加强各个主核之间的联系,也能够通过多个主核高效同时控制微核阵列,并且还可以与加速器层进行高效的数据交互,提高了处理器的处理效率,并为risc-v 指令集在高性能处理器上的应用提供了全新的设计思想。
5.根据本发明实施例的第一个方面,提供了一种基于risc-v的三维互联众核处理器架构,包括主控制层、微核阵列层及加速器层,其中,
6.所述主控制层包括若干主核,所述主核为基于五级流水线risc-v指令集cpu内核,且所述主核之间以及主核与外部环境之间通过独立的总线进行交互;
7.所述微核阵列层包括若干微单元组,所述微单元包括微核、数据存储单元、指令存储单元及链接控制器,其中,所述微核为执行所述主核部分功能的risc-v 指令集cpu内核;
8.所述加速器层,其用于满足特定需求的加速器实现空间利用运行速度的优化;
9.其中,所述主控制层中的部分主和核与所述加速器层进行数据交互,另外的主核与微核阵列层进行交互,对于外部简单指令在所述主核中直接运算,对于复杂指令则转化为简单指令后由微核进行处理。
10.进一步的,所述主核控制层,其用于对外部进入的指令进行发射和派遣,对接收的简单指令在主核中进行处理;对于复杂指令,在主核中转化为微核能够识别的简单指令,依次发送到微核阵列层的微核进行处理。
11.进一步的,所述微核控制层中指令以单向的传输方式和微核进行交互;数据以双向的传输方式和微核进行交互,其中,在反向交互中,与正向数据进行数据仲裁后进入微核。
12.进一步的,所述微核控制层中的链接控制器用于将微核控制层中的三维结构压缩成二维结构,同时,所述链接控制器中设置有快速通道,运算结束时,数据通过所述快速通
道写回到主核控制层中。
13.进一步的,所述链接控制器的具体链接方式为对其他主核控制下的阵列进行数据交互,其中,除相邻微单元之间的交互外,在同一主核下的微单元组不与同组的其他微单元进行数据链接。
14.根据本发明实施例的第二个方面,提供了一种基于risc-v的三维互联众核处理器架构的工作方法,其利用了上述的基于risc-v的三维互联众核处理器架构,所述方法包括:所述主核控制层接收外部数据和指令,并结合所述微核阵列层与加速器层的协同处理,实现外部指令的快速处理。
15.与现有技术相比,本发明的有益效果是:
16.(1)本发明提供了一种基于risc-v的三维互联众核处理器架构,所述方案通过设计多主核协同作用的主核控制层,即能够加强各个主核之间的联系,也能够通过多个主核高效同时控制微核阵列,并且还可以与加速器层进行高效的数据交互,为risc-v指令集在高性能处理器上的应用提供了全新的设计思想;
17.(2)本发明通过设计了带有3drouter的微核阵列层,使每个能够在传统的众核架构的基础上额外进行最多两组的数据的交互,3drouter不但提供了顺向的数据通路,而且提供了反向的快速通道,这种快速通道只有在微核完成指令后才通过快速通道返回到主核控制阵列中,在数据写回时的速度将会大大提升,完成了微核阵列既广既快的设计思想;
18.(3)本发明将加速器和最单侧的所有微核阵列相连,使加速器训练的结果不用通过主核就能够发送到微核阵列中,同时加速器层还和主核有着数据交互,主核将从外部收到的数据处理后发送到加速器层中供其进行训练;
19.(4)本发明微核阵列层中的微核采用一级流水线,一级流水线的微核能够以最快的速度完成单条指令,最大限度的提升微核阵列的性能。
20.本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
21.构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
22.图1是本发明实施例一中所述的基于risc-v的三维互联众核处理器架构示意图;
23.图2是本发明实施例一中所述的基于risc-v的三维互联众核处理器架构的连线交互及数据流向示意图。
具体实施方式
24.下面结合附图与实施例对本发明做进一步说明。
25.应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
26.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式
也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
27.在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
28.实施例一:
29.本实施例的目的是提供一种基于risc-v的三维互联众核处理器架构。
30.一种基于risc-v的三维互联众核处理器架构,包括主控制层、微核阵列层及加速器层,其中,
31.所述主控制层包括若干主核,所述主核为基于五级流水线risc-v指令集cpu内核,且所述主核之间以及主核与外部环境之间通过独立的总线进行交互;
32.所述微核阵列层包括若干微单元组,所述微单元包括微核、数据存储单元、指令存储单元及链接控制器,其中,所述微核为执行所述主核部分功能的risc-v 指令集cpu内核;
33.所述加速器层,其用于满足特定需求的加速器实现空间利用运行速度的优化;
34.其中,所述主控制层中的部分主和核与所述加速器层进行数据交互,另外的主核与微核阵列层进行交互,对于外部简单指令在所述主核中直接运算,对于复杂指令则转化为简单指令后由微核进行处理。
35.进一步的,所述主核控制层,其用于对外部进入的指令进行发射和派遣,对接收的简单指令在主核中进行处理;对于复杂指令,在主核中转化为微核能够识别的简单指令,依次发送到微核阵列层的微核进行处理。
36.进一步的,所述主核控制层包括六个主核,其中,两个主核与加速器层进行数据交互,另外四个主核和所述微核阵列层进行交互。
37.进一步的,所述微核控制层中指令以单向的传输方式和微核进行交互;数据以双向的传输方式和微核进行交互,其中,在反向交互中,与正向数据进行数据仲裁后进入微核。
38.进一步的,所述微核控制层中的链接控制器用于将微核控制层中的三维结构压缩成二维结构,同时,所述链接控制器中设置有快速通道,运算结束时,数据通过所述快速通道写回到主核控制层中。
39.进一步的,所述链接控制器的具体链接方式为对其他主核控制下的阵列进行数据交互,其中,除相邻微单元之间的交互外,在同一主核下的微单元组不与同组的其他微单元进行数据链接。
40.进一步的,所述微核控制层包括十六排微单元组,所述主核中与所述微核阵列层进行交互的每个主核分别对四排微单元组进行控制和数据交互。
41.进一步的,所述加速器层用于根据对数据类型、网络压缩及张量计算性能的不同需求,采取不同的加速器达到空间利用运行速度的最优。
42.进一步的,所述五级流水线具体为取值、译码、访存、执行及写回。
43.具体的,为了便于理解,以下结合附图对本公开所述方案进行详细说明:
44.如图1所示,一种基于risc-v的三维互联众核处理器架构由三层架构构成:分别为主核控制层、微核阵列层和加速器层;
45.进一步的,所述主核控制层中:
46.由六个能完整执行取值,译码,访存,执行,写回的五级流水线risc-v指令集cpu内
核(后将其称为主核,主核结构将在后续)组成,每个核和外部环境有独立的总线进行交互;
47.同时主核之间能够通过和外部环境进行数据指令交流的总线,主核之间的联系通过此总线进行数据或指令交互;
48.其中两个主核与加速器层进行数据交互,其余的四个主核和微核阵列层进行交互,每一个主核对四排微核组进行控制和数据交互,四个主核共控制16排微核组;
49.主核控制层主要完成的功能是对外部进入的指令进行发射和派遣,在接受简单的指令时可以在主核之中直接运算,在接受一些复杂的运算指令或一系列指令后,将指令转化为一组微核可以识别的简单指令,依次发送到微核阵列层;
50.进一步的,所述微核阵列层中:
51.由16*n个能执行主核部分功能的risc-v指令集cpu(后将其称为微核),数据存储单元,指令存储单元和3drouter组合成的微单元组成;
52.在这种微单元中:
53.指令以单向的传输方式和微核进行交互,数据以双向的传输方式和微核进行交互,其中在反向交互时,和正向数据进行一个简单的数据仲裁选择后再流入到微核中;
54.3drouer是一种在微核阵列层将三维结构压缩成二维结构的链接控制器,这种链接控制器使得每个微单元最多能够同时和其他六个微单元进行数据交互,同时为方便数据写回,在3drouter中设置了专门的快速通道,在运算结束时,数据通过3drouter的快速通道写回到主核控制层中;进一步的,3drouter是一种有别于其他传统的众核连线方式的新连线控制器,使每个微核最多比传统的众核连线方式额外多出两种额外连接的方式,同时3drouter还提供了一种快速返回到主核的数据通路;
55.3drouter的链接方式:
56.由于每四排的微单元受一个主核的控制,为避免数据冲突在同一主核下的微单元阵列除相邻微单元之间的交互,不与同阵列的其他微单元进行数据链接,链接的方式是对其他主核控制下的阵列进行数据交互。以一[16*3]的微单元矩阵进行一个举例说明:[1,1]位置的微单元与[1,2]和[2,1]位置的微单元是物理和数据意义上的相邻,于此同时[1,1]位置的微单元与其他主核控制的微单元阵列的数据意义上的相邻,采用的方法是[1,1]与[5,2]数据意义上的相邻,即每一个微单元与其纵位置加四,横位置加一的微单元数据相邻。同理[5,2]位置的微单元与[4,2],[6,2],[5,1],[5,3]位置的微单元物理与数据意义上相邻,与[9,3],[1,1]位置的微单元数据意义上相邻。用3drouter链接的微单元能够同时最多与周围六个微单元进行数据交互,大大提升一组数据的运行速率;
[0057]
risc-v微核中对取指译码访存功能进行弱化,将五个模块整合成为一级流水线,同时对执行功能进行强化,主要对运算性能进行强化;
[0058]
进一步的,所述加速器层中:
[0059]
主要使用ai加速器,具体的,加速器层一般可采用fpga或者用于神经网络训练的asic等进行加速训练,根据对数据类型,网络压缩,张量计算性能等的不同需求,采取不同的加速器达到空间利用运行速度的最优化。
[0060]
在加速器层与微核阵列层的链接中,加速器和16排微单元阵列都有互联,每一个微单元有专门的对应加速器接口。
[0061]
进一步的,所述主核的结构具体为:
[0062]
主核采用五级流水线的设计结构,五级流水线结构分别为取值,译码,访存,执行,写回;
[0063]
在主核的取指过程中:外部将指令发送到指令存储单元上后,再将指令从存储器中读取出来,同时也进行分支预测和跳转;
[0064]
在主核的译码过程中:将存储器取出的指令按照指令集格式对其进行“翻译”,翻译后得到指令需要的操作数寄存器索引,根据索引从通用寄存器组中将操作数取出;
[0065]
在主核的执行过程中:在得到译码翻译的操作数后,再根据运算类型进行执行命令,在主核中的运算器(alu)只要求进行简单的逻辑运算,主核的执行过程尽可能的做到简化,运算器中的逻辑运算保持单周期,这样能大幅度减小主核的面积,并缩短主核运算;
[0066]
在主核的访存过程中:将存储访问指令从存储器中读出或写入;
[0067]
在主核的写回过程中:将执行的结果根据存储访问指令写回到通用寄存器组;
[0068]
进一步的,所述微核的结构具体为:
[0069]
微核的在结构上为尽量减小运算周期,采用单流水线的结构,将cpu的所有功能在一个流水级中完成,这种结构能够在多核协同工作上最紧密的将各个核联系到一起,并能大幅度提高运算速率;
[0070]
微核虽然为一级流水,但依然能完整执行单个处理器的全部功能,微核的首先从主核或者其他微核中收到的指令存储到自己的指令存储器上,之后通过取指译码,将指令派遣发射到执行模块;
[0071]
在微核的执行模块中,采用高性能的booth和wallace算法相互结合的整形高性能乘法器,以最快速的完成每一个乘法运算,每一个微核为避免数据冲突只同时进行一条指令的运算,在对指令和数据进行运算分析后,申请访存后将数据写回;
[0072]
在写回过程中,有两种数据流向,一种是在本核内流入到数据存储器,和原始数据进行仲裁重新再次流入到微核内部,另一种是写回到3drouter,在写回到3drouter后,本核就可以通过握手信号重新接受新的数据,值得注意的是本核因为最多可能与其他六个微核产生数据交互,所以说每一个核最多会有六组握手信号;
[0073]
至此单独微核的工作就已经完成,数据将被暂时存储到3drouter中,之后再由3drouter发送到其他的微核中,同时为了方便数据写回到主核中,在 3drouter中设置了专门的快速通道,只有在运算结束数据需要高速写回时才会使用3drouter的快速通道;
[0074]
实施例二:
[0075]
本实施例的目的是提供一种基于risc-v的三维互联众核处理器架构的工作方法,其利用了上述的基于risc-v的三维互联众核处理器架构,所述方法包括:所述主核控制层接收外部数据和指令,并结合所述微核阵列层与加速器层的协同处理,实现外部指令的快速处理。
[0076]
具体的,为了便于理解,以下结合附图对本公开所述方案进行详细说明:
[0077]
实例1:
[0078]
现以两个[3*3]的a,b矩阵相乘得到c矩阵为例对运算方式进行简单的举例说明:
[0079]
其中矩阵a是由加速器训练得到,矩阵b是由总线传输到主核上得到,两个矩阵相乘共用到18次加法和27次乘法;
[0080]
由于risc-v指令集目前没有支持张量和向量的指令集扩展,所以实施方式中仅以
未来可能出现张量向量指令进行模拟;
[0081]
在以模拟支持整个矩阵乘法的张量risc-v指令集运算方式(在仅以标量指令集进行运算时,将以下步骤以单独的指令进行逐次执行即可):
[0082]
为了方便说明对主核由上到下进行标号:分别为[1-6];具体的,如图2所示,一种基于risc-v的三维互联众核处理器架构的工作方法,具体如下:
[0083]
1、首先外部数据通过总线传输到主核[6]上,主核{6}再将数据整理发送到加速器上进行训练,之后加速器将训练后得到的矩阵a(共9个整型数据)依次发送到主核[5]上(在架构设计上也支持由加速器直接传输到微核阵列中,但为了展示主核控制层的协同作用,并把矩阵b存储起来,采用了由主核[6]到加速器到主核[5]数据流通方式);
[0084]
2、在进行训练过程的同时,外部将矩阵b分成三组纵向的三维向量依次发送到主核[1-3]中(也可以以其他方式任意分配在主核[1-4]上,这里为了展示主核之间的协同运算采用这种数据分配方法),在主核[5]中得到矩阵a之后将矩阵分割成横向的三维向量,存储在主核[5]中;
[0085]
3、主核[5]中的矩阵a与矩阵b相乘,共进行9次内积运算,每一次内积运算拆解成三次乘法运算和两次加法运算,现假设微核阵列层为16*8的微核矩阵,首先主核[5]通过总线将b第一个横向向量依次逐序发送到主核[1-3]中(在对运算资源或者功耗有较大要求时,可以采用将数据只传输到第一个主核的方式,在这种方式下,每一次内积计算完成后所有数据整体右移,b通过3drouter 将数据传输到下一个主核控制的阵列,即图2虚线的数据流向),主核[1-3]将乘法指令和两组三维向量拆分成单独的整型数据依次发送到对应控制的微核阵列中,这时共有九个微核收到了乘法指令,进行乘法运算;
[0086]
4、在第一次的微核乘法运算结束后,将所得到的数据传送到右侧的微核中,纵向将数据依次向下相加最后得到的加法结果存储到下面没有接受指令的微核里,以主核[1]控制的微核阵列进行一个举例说明,微核阵列的[1,1],[2,1], [3,1]位置的微单元分别计算a[1,1]*b[1,1],a[1,2]*b[2,1],a[1,3]*b[3,1], 将运算后的结果即顺序右移到[1,2],[2,2],[3,2]位置的微单元上,之后将[1,2] 微单元的数据向下传输和[2,2]微单元的数据相加,在将运算的结果下移和[3,2] 微单元的数据相加,得到最后的结果即c[1,1]放到[4,2]微单元的存储器上;
[0087]
5、在上述过程结束后,开始计算第二组内积,主核[5]将b[2,1],b[2,2],b[2,3]依次发送到主核[1-3]控制的微核阵列中,进行和步骤4 完全相同的乘法运算,之后进行整体的向右位移,仍以核[1]控制的微核阵列作为例子,在运算结束后[1,2],[2,2],[3,2]位置的微单元存储的数据依次 a[1,1]*b[1,2],a[1,2]*b[2,2],a[1,3]*b[3,2],同理下移相加在[4,2]微单元的存储器上得到c[1,2],值得注意的是由于之前数据的整体位移,c[1,1]的整型数据已经存储在[4,3]位置微单元的存储器内了(此时的c数据是存储在数据存储器上的,并不在核内,因为没有传输指令,在阵列规模较小时,即n较小时,可将[4,2]微单元的数据也写入到[4,3]微单元内,之后将两个数据写入到核内的存储器上,在核内存储器达到上限时,再将数据标注后通过3drouter发送到临近的微单元内);
[0088]
6、之后将b的最后一组向量发送到微核阵列中,重复上述过程,同样在阵列规模较小时,在无法右移时,最右侧的数据将会消失,新的乘法数据写入到最右侧列的微核中,c矩阵的数据将被存储起来;
[0089]
7、在执行上述1-6过程中,主核[2]和主核[3]也在执行相同的过程。将a 的第二行向量和b矩阵进行乘法运算,a的第三行向量和b矩阵进行乘法运算,将运算的结果同上,标注后写到微核阵列的中的某一个微核里;
[0090]
8、最后,各个得到c矩阵内数据的微核单元依次通过3drouter的快速通道返回到对应阵列被控制主核的内部,再通过总线依次发送到主核[4]中,在主核[4]中整理得到完整的矩阵c;
[0091]
实例2:
[0092]
现以两个[32*32]的大型矩阵进行举例说明
[0093]
根据分块矩阵乘法公式:
[0094][0095]
由此可将32*32的大型矩阵拆分成4个[16*16]的矩阵,由于微核阵列的规模限制,所有规模大于[16*16]的方阵都要采用上述方法拆分成几个小方阵,和上一个实例不同,[16*16]的方阵会占用整个阵列资源,所以说将第一个矩阵a 拆分成16个横向的向量,再把每个16维的向量拆分成4个4维的向量依次存储在主核[1-4]中,四个主核同时将第一行数据和乘法指令发送到微核中;
[0096]
此时由加速器训练得到的矩阵b,直接将第一列数据发送到微核阵列中(这里没有采用,上一个实例所例举的发送到主核在通过总线传输到其他总和的方式,一是由于数据规模比较庞大,二是为展示另一种加速器和微核阵列直接交互的运行方式),此时微核阵列便计算得到c[1,1]的数据;
[0097]
按照这种向量的乘法,和实例1的后续运算过程就可以得到矩阵c;
[0098]
而以整体来看[32*32]的两个矩阵相乘,共进行了8次矩阵的乘法和4次矩阵的加法,值得注意的是在每一个通过3drouter返回的数据都要寄存在一个主核里,为避免数据冲突,尽量在主核传输收到数据时,将数据传输到没有存储矩阵的主核[6]上,矩阵的相加运算规模要远远小于矩阵乘法,可通过微核阵列进行运算,也可在主核中直接完成加法运算输出结果,这里不再进行赘述;
[0099]
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0100]
上述实施例提供的一种基于risc-v的三维互联众核处理器架构及其工作方法可以实现,具有广阔的应用前景。
[0101]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献