人工智能模块的故障容错方法及系统芯片与流程

文档序号:17938644发布日期:2019-06-18 22:51阅读:546来源:国知局
人工智能模块的故障容错方法及系统芯片与流程

本发明涉及集成电路技术领域,尤其涉及一种ai模块及其故障容错方法及系统芯片。



背景技术:

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

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

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



技术实现要素:

根据第一方面,本发明实施例提供一种ai模块的芯片电路,包括:按第一维度和第二维度排列成二维阵列的多个处理单元,各处理单元能够完成运算;其中,处理单元包括使能输入端,用于接收使能信号,并且根据使能信号暂停或启动处理单元的操作;在多个处理单元中的至少一个处理单元出现故障时,将多个处理单元中具有与该至少一个处理单元相同第一维度值和/或第二维度值的处理单元可配置为旁路状态;二维阵列中的各处理单元共用同一个时钟信号进行运算;第一维度和第二维度彼此垂直。

优选地,处理单元包括系数存储器,用于提供处理单元运算用系数数据;处理单元包括乘法器、加法器、第一寄存器和第二寄存器、第一复用器;在第一维度上的第一输入数据端和第一数据输出端;在第二维度上的第二数据输入端和第二数据输出端;第一数据自第一数据输入端口输入,乘法器将第一数据和系数数据相乘;第二数据自第二数据输入端输入,加法器将第二数据和乘积相加,相加之后的和值寄存在第一寄存器中;第一复用器从第一寄存器的输出数据和第二数据中选择一个数据经第二数据输出端输出;第一数据还寄存在第二寄存器中,并且在时钟控制下可以经第二输出端输出。

优选地,所述处理单元包括第二复用器;第二复用器从第二寄存器的输出数据和第一数据中选择一个数据经第一数据输出端输出。

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

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

根据第三方面,提供一种ai模块容错方法,ai模块包括排列成二维阵列的多个处理单元,各处理单元能够完成运算;其中,处理单元包括使能输入端,用于接收使能信号,并且根据使能信号暂停或启动处理单元的操作;

所述方法包括从多个处理单元中确定故障单元;

将多个处理单元中具有与该至少一个处理单元相同第一维度值和/或第二维度值的处理单元配置为旁路状态,以便数据可以未经处理而直接通过当前单元。

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

所述方法包括从多个处理单元中确定故障单元;

将多个处理单元中具有与该至少一个处理单元相同第一维度值和/或第二维度值的处理单元配置为旁路状态,以便数据可以未经处理,直接通过当前单元。

根据实施例,可以有效地屏蔽故障单元,确保ai模块在出现故障单元之后依然能够保持一定的运算能力。

附图说明

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

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

图3是图2的处理单元中的存储器mem的示意图;

图4是ai模块的故障容错处理方法示意图;

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

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

具体实施方式

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

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

图1是根据本发明实施例的ai模块的示意图。ai模块实施在芯片电路上。在一个例子中,ai模块是脉动阵列,即数据流同步流过相邻的二维阵列单元的处理器结构。如图1所示,ai模块包括,例如,4x4个处理单元pe。ai模块可分为两个维度,彼此垂直的第一维度和第二维度。以第一处理单元、第二处理单元和第三处理单元为例,第一处理单元和第二处理单元沿第一维度沿第一方向相邻排列,第一处理单元的第一输出端耦合到第一处理单元的第一输入端;第一处理单元和第三处理单元沿第二维度沿第二方向排列,第一处理单元的第二输出端耦合到第三处理单元的第二输入端。

一维数据a可以沿第一维度沿第一方向在同一时钟下依次输入相同第二维度值的各处理单元;数据在各处理单元中和存储在单元中的另一维数据(系数)w相乘;乘积沿第二维度沿第二方向具有相同第一维度值的各处理单元传输,并且彼此相加。为理解方便起见,下文将以水平维度为第一维度、左向右为第一方向,以垂直维度为第二维度、上向下为第二方向。另外,虽然前文以乘加运算为例,但是,处理单元可以实施其它的运算。

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

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

在一个例子中,二维阵列可以实现矩阵乘法。在另一个例子中,二维阵列可以实现卷积算法。

在一个例子中,可以在某个或者某些处理单元出现故障的情况下,配置与故障单元同维度上的处理单元为旁路绕通功能,实现ai模块的容错功能。

图2是处理单元的示意图。如图2所示,处理单元包括乘法器mul,加法器add。数据自第一数据输入端口di输入,在mul和存储在系数存储器mem中的系数w相乘,然后,该乘积在加法器add和来自第二数据输入端口pi的数据p相加;相加之后的和值寄存在寄存器reg1中。在下一个时钟时,和值s经第二输出端po输出。和值s经第二输出端po输出后可以经输入端口pi输入位于下方的另一个pe。在第一维度上沿第一方向分布第一输入数据端di和第一数据输出端do;在第二维度上沿第二方向分布第二数据输入端pi和第二数据输出端po。

在一个例子中,处理单元还包括第一mux(mux1),该mux耦合在reg1的输出端和po端之间。mux1的一个输入端耦合至reg1的输出端,另一个输入端耦合至pi输入端,输出端则耦合至po输出端。根据需要,mux可以在控制信号的控制下选通来自pi输入端的信号,使得上方处理单元的信号可以直接通过当前处理单元而进入下方的处理单元。

在reg2的输出端和do输出端之间可以耦合有一个第二mux(mux2),该mux2的一个输入端耦合至reg2的输出端,另一个输入端耦合至di输入端,输出端则耦合至do输出端。根据需要,mux2可以在控制信号的控制下选通来自di输入端的信号,使得左侧处理单元的信号可以直接通过当前处理单元而进入右侧的处理单元。

当然,数据a还可以寄存在寄存器reg2中,并且在时钟控制下经第一输出端do输出到在右侧的处理单元pe。

时钟ck用于控制处理单元的处理进程。

图3是图2的处理单元中的存储器mem的示意图。如图3所示,存储器包括8比特的d触发器,系数数据从d输入端输入触发器,然后经输出端q输出为q0-q7。q0-q7可以提供处理单元运算用的系数数据。时钟ck1控制触发器的节奏。使能信号en用于确定d触发器是否启动或暂停。请注意,存储器mem的时钟ck1不同于处理单元自身的时钟ck。

图4是ai模块的故障容错处理方法示意图。ai模块可以是图1所示的ai模块。如图4所示,该容错处理方法在步骤s402,确定出错或者故障单元;在步骤s404,将与故障单元相同第一维度(例如行)值和/或第二维度(例如,列)值的其它单元配置为旁路状态,以便数据可以未经处理,直接通过当前单元。由于运算时跳过了故障或者嫌疑故障单元,虽然阵列的规模有所降低,但是阵列依然能够正常工作。难能可贵的是,根据本发明实施例的教导,脉动阵列可以在多处单元故障的情况下依然能够有效工作,虽然性能逐步下降,但是依然起作用。

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

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

至少一个ai模块中的各ai模块可以是图1所示的ai模块。

系统芯片上还设置有与二维卷积阵列相对应的接口,fpga模块和ai模块通过接口模块连通。接口模块可以是xbar模块,xbar模块例如由多个选择器(multiplexer)和选择位元组成。接口模块也可以是fifo(先进先出)。接口模块还可以是同步器(synchronizer),同步器例如由2个触发器(flip-flop或ff)串连而成。fpga模块可以为ai模块传输数据,提供控制。

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

图6是fpga电路的结构示意图。如图6所示,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模块可以是,例如,36k比特或2个18k比特的存储单元。mac模块可以是,例如,25x18乘法器,或2个18x18乘法器。fpga阵列中,logic、mac、emb各模块数量的占比并无限制,阵列的大小也根据需要,在设计时由实际应用决定。

虽然上文主要结合脉动阵列对本发明进行了描述,本领域的技术人员意识到,其它类型的集成电路,只要是单元重复且单元具有可配置旁路功能的集成电路,均可以适用本发明。

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

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