处理单元设置有输入复用器的人工智能模块和系统芯片的制作方法

文档序号:17938444发布日期:2019-06-18 22:50阅读:193来源:国知局
处理单元设置有输入复用器的人工智能模块和系统芯片的制作方法

本发明涉及集成电路领域,尤其涉及一种处理单元设置有输入复用器的人工智能ai模块及系统芯片。



背景技术:

近年来,人工智能迎来一波发展浪潮。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。

随着人工智能研究的深入和应用的广泛推广,有必要推出更符合需求的ai模块。

此外,人工智能模块由处理器通过总线来进行访问控制,而总线是有一定的带宽限制,这样的架构难以适应人工智能ai模块的大带宽需求。



技术实现要素:

根据第一方面,提供一种包括ai模块的芯片电路,所述ai模块包括:按第一维度和第二维度排列成二维阵列的多个处理单元,各处理单元能够完成逻辑和/或乘加运算;其中,处理单元包括使能输入端,用于接收使能信号,并且根据使能信号暂停或启动处理单元的操作;处理单元还包括至少一个输入复用器;所述输入复用器用于接收第一维度和/或第二维度上不同方向的输入数据,并且从其中选择一个数据供处理单元进行处理;二维阵列中的各处理单元共用同一个时钟信号进行运算;第一维度和第二维度彼此垂直。

优选地,处理单元包括运算单元、加法器、第一寄存器和第二寄存器、至少一个复用器和第四复用器;运算单元对来自至少一个输入复用器的第一数据和第二数据进行运算而得到运算结果;第四复用器从第一寄存器的输出数据和来自至少一个输入复用器的第三数据中选择一个数据输出;加法器将运算结果和第四复用器的输出相加,相加之后的和值寄存在第一寄存器中;第一数据还寄存在第二寄存器中并且经其输出端输出。

优选地,所述至少一个输入复用器包括第一复用器;第一复用器从第一数据输入端的多个端口选择第一数据。

优选地,所述至少一个输入复用器包括第二复用器;第二复用器从系数输入端的多个端口选择第二数据。

优选地,所述至少一个输入复用器包括第三复用器;第三复用器从第二数据输入端的多个端口选择第三数据。

优选地,所述运算单元根据广播的操作码确定的算法进行运算。

根据第二方面,提供一种系统芯片,包括:如第一方面所述的芯片电路;fpga模块,与所述ai模块耦合,以便自ai模块发送数据或者接收数据。

优选地,ai模块嵌入fpga模块中以便复用fpga模块的绕线架构,以便自ai模块发送数据或者接收数据,皆经由所述的复用的fpga的绕线架构。

本发明实施例的ai模块及其系统芯片,提供了更为多样化的ai模块结构,使得执行更复杂的运算成为可能。

附图说明

图1是根据本发明实施例的2维ai模块的示意图;

图2是处理单元的示意图;

图3是处理单元的示意图;

图4是一种集成有fpga和ai模块的系统芯片的结构示意图;

图5是fpga电路的结构示意图。

具体实施方式

为使本发明实施例的技术方案以及优点表达的更清楚,下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

在本申请的描述中,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

图1是根据本发明实施例的2维ai模块的示意图。如图1所示,ai模块是一个二维阵列,例如包括4x4个处理单元pe。阵列可分为两个维度,彼此垂直的第一维度和第二维度。为方便起见,下文将以水平维度为第一维度,可以垂直维度为第二维度。以第一处理单元、第二处理单元和第三处理单元为例,第一处理单元和第二处理单元沿第二维度相邻排列且具有相同的第二维度值,第一处理单元的第二输出端耦合到第一处理单元的第二输入端;第一处理单元和第三处理单元沿第一维度相邻排列且具有相同的第一维度值,第一处理单元的第一输出端耦合到第三处理单元的第一输入端。

处理单元还包括至少一个输入复用器;所述至少一个输入复用器用于接收沿第一维度和/或第二维度不同方向的输入数据,并且从其中选择一个数据进行处理。在输入处理单元后,数据在处理单元中进行各种运算,例如加减乘除,逻辑运算等等。

因此,运算前后的数据可以沿第一维度双向流动,例如从阵列的左侧在同一时钟下依次进入具有相同第二维度值的各处理单元,也可以从阵列的右侧依次进入具有相同第二维度值的各处理单元。运算之后得到的数据将在第二维度双向流动,例如从阵列的上方在同一时钟下依次进入具有相同第一维度值的各处理单元,也可以从阵列的下方依次进入具有相同第一维度值的各处理单元。

二维阵列中的各处理单元共用同一个时钟信号进行运算。

需要注意,图1中的每条数据线既可代表单比特的信号,也可代表8(或16,32)比特的信号。

在一个例子中,二维阵列可以实现矩阵乘法。在另一个例子中,二维阵列可以实现卷积算法。当然,二维阵列还可以进行其它的算法运算和逻辑运算。

图2是处理单元的示意图。如图2所示,处理单元包括运算单元alu,加法器add。处理单元可以在输入端口处设置至少一个mux,比如在di处的第一复用器mux1,在ci处的第二复用器mux2,在pi处的第三复用器mux3。在一个例子中,来自第一维度和第二维度不同方向(东南西北,nesw)的第一数据自第一数据输入端口di输入,由mux1选通其中一个第一数据;在另一个例子中,来自第一维度和第二维度不同方向(东南西北,nesw)的第二数据自第二数据输入端口ci输入,由mux2选通其中的一个第二数据;在又一个例子中,来自第一维度和第二维度不同方向(东南西北,nesw)的第三数据pi自第二数据输入端口pi输入,由mux3选通其中的一个第三数据。mux1,mux2和mux3的选通由配置信号决定。在一个例子中,第一数据可以是ai运算用的输入原始数据。在一个例子中,第二数据可以是ai运算用的权重数据。在一个例子中,第三数据可以是ai模块的其它处理单元的运算结果数据。

在alu,第一数据和第二数据进行运算。运算包括算法运算和逻辑运算等等。然后,该运算结果在加法器add和第三数据相加(或者选通),相加之后的和值(或者选通后的数值)寄存在寄存器reg1中。在下一个时钟时,和值s经第一输出端po输出。和值s经第一输出端po输出。输出值可以传输给各个方向的pe。

当然,第一数据还可以寄存在寄存器reg2中,并且在时钟控制下经第二输出端do输出。输出值可以传输给各个方向的pe。

处理单元还包括第四mux,耦合在第三mux和add之间。第四mux的一个输入端和第三mux的输出端耦合,另一个输入端和reg1的输出端耦合,输出端耦合到add的其中应该输入第三mux输出数据的那个输入端。由此,alu的运算结果可以通过第四mux反馈回add输入端,而反复累加。

使能信号en用于控制处理单元的启动或暂停。时钟ck用于控制处理单元的处理进程。

图3是处理单元的示意图。alu的运算功能包括但不限于加减乘除,逻辑运算等等。图3不同于图2的地方在于,在图3中,可以通过向ai模块的各处理单元广播算法代码,使得alu执行和算法代码有关的运算功能。

图4是一种集成有fpga和ai模块的系统芯片的结构示意图。如图4所示,系统芯片上集成有至少一个fpga电路和至少一个ai模块。ai模块可以是图1所示的ai模块。

至少一个fpga电路中的各fpga电路可实现逻辑、计算、控制等各种功能。fpga利用小型查找表(例如,16×1ram)来实现组合逻辑,每个查找表连接到一个d触发器的输入端,触发器再来驱动其他逻辑电路或驱动i/o,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到i/o模块。fpga的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与i/o间的联接方式,并最终决定了fpga所能实现的功能。

系统芯片上还设置有与ai模块相对应的接口,fpga模块和ai模块通过接口模块连通。接口模块可以是绕线(例如xbar)模块,xbar模块例如由多个选择器(multiplexer)和选择位元组成。接口模块也可以是fifo(先进先出)。接口模块还可以是同步器(synchronizer),同步器例如由2个触发器(flip-flop或ff)串连而成。

fpga模块和ai模块可以并排放置,此时fpga模块可以为ai模块传输数据,提供控制;ai模块也可以嵌入fpga模块之中,此时ai模块需要复用fpga模块的绕线架构,以便通过复用的fpga模块的绕线架构接收和发送数据。

图5是fpga电路的结构示意图。如图5所示,fpga电路可包含有多个可编程逻辑模块(logic)、嵌入式存储块(emb)、乘累加器(mac)等模块和相应的绕线(xbar)。当然,fpga电路还设有时钟/配置模块(主干spine/支干seam)等相关资源。若需要emb或mac模块时,因其面积比plb大许多,故以此emb/mac模块取代若干plb模块。

绕线资源xbar是各模块间互联的接点,均匀地分布在fpga模块内。fpga模块内所有的资源,plb、emb、mac、io相互之间的绕线都是经有一个相同的界面-绕线xbar单元来实现。由绕线方式来看,整个阵列是相同一致,整齐排列的xbar单元形成网格,将fpga内所有模块相连。

logic模块可以包含,例如,8个6输入查照表,18个寄存器。emb模块可以是,例如,36kbit或2个18kbit的存储单元。mac模块可以是,例如,25x18乘法器,或2个18x18乘法器。fpga阵列中logic、mac、emb各模块数量的占比并无限制,阵列的大小也根据需要,在设计时由实际应用决定。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1