CN109933371A - 其单元可访问本地存储器的人工智能模块和系统芯片 - Google Patents
其单元可访问本地存储器的人工智能模块和系统芯片 Download PDFInfo
- Publication number
- CN109933371A CN109933371A CN201910104134.0A CN201910104134A CN109933371A CN 109933371 A CN109933371 A CN 109933371A CN 201910104134 A CN201910104134 A CN 201910104134A CN 109933371 A CN109933371 A CN 109933371A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- chip
- processing unit
- fpga
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000004804 winding Methods 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000003252 repetitive effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 3
- 210000004027 cell Anatomy 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000033764 rhythmic process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 108700012361 REG2 Proteins 0.000 description 1
- 101150108637 REG2 gene Proteins 0.000 description 1
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 1
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Logic Circuits (AREA)
Abstract
一种其单元可访问本地存储器的人工智能AI模块的芯片电路和系统芯片。在实施例中,AI模块包括:排列成二维阵列的多个处理单元(PE),各处理单元能够完成乘加运算;其中,处理单元包括使能输入端,用于接收使能信号,并且根据使能信号暂停或启动处理单元的操作;处理器还包括存储器,用于存储乘加运算用的数据;其中,二维阵列中的各处理单元共用同一个时钟信号进行运算。AI模块由于采用了存储器,可以高效地完成大批量数据的重复运算。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及其单元可访问本地存储器的人工智能AI模块的芯片电路和系统芯片。
背景技术
近年来,人工智能迎来一波发展浪潮。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
随着人工智能研究的深入和应用的广泛推广,有必要推出更符合需求的AI模块。
此外,人工智能模块由处理器通过总线来进行访问控制,而总线是有一定的带宽限制,这样的架构难以适应人工智能AI模块的大带宽需求。
发明内容
根据第一方面,提供一种包括AI模块的芯片电路,AI模块包括:排列成二维阵列的多个处理单元,各处理单元能够完成乘加运算;其中,处理单元包括使能输入端,用于接收使能信号,并且根据使能信号暂停或启动处理单元的操作;处理器还包括存储器,用于存储乘加运算用的数据;其中,二维阵列中的各处理单元共用同一个时钟信号进行运算。
优选地,存储器包括多个彼此串联的一比特D触发器。
优选地,存储器包括多个彼此并联的一比特D触发器。
优选地,处理单元还包括乘法器、加法器、第一寄存器和第二寄存器;在第一维度上的第一输入数据端和第一数据输出端;在第二维度上的第二数据输入端和第二数据输出端;第一数据自第一数据输入端口输入,乘法器将第一数据和系数数据相乘;第二数据自第二数据输入端输入,加法器将第二数据和乘积相加,相加之后的和值寄存在第一寄存器中;和值在时钟控制下可以经第二数据输出端输出;第一数据还寄存在第二寄存器中,并且在时钟控制下可以经第二输出端输出。
根据第二方面,提供一种系统芯片,包括:如第一方面所述的芯片电路;FPGA模块,与所述AI模块耦合,以便自AI模块发送数据或者接收数据。
优选地,AI模块嵌入FPGA模块中以便复用FPGA模块的绕线架构,以便自AI模块发送数据或者接收数据,皆经由所述的复用的FPGA的绕线架构。
优选地,包括第一装置,用于权重系数写入AI模块的处理单元。优选地,第一装置由FPGA模块实现。
优选地,包括第二装置,用于将权重系数从AI模块的处理单元读出。优选地,第二装置由FPGA模块实现。
AI模块由于采用了存储器,可以高效地完成大批量数据的重复运算。
附图说明
图1是根据本发明实施例的AI模块的示意图;
图2是处理单元的示意图;
图3是图2的处理单元中的存储器MEM的示意图;
图4是图2的处理单元中的存储器MEM的示意图;
图5是一种集成有FPGA和AI模块的系统芯片的结构示意图;
图6是FPGA电路的结构示意图;
图7是对AI模块的各处理单元写权重和读权重的示意图。
具体实施方式
为使本发明实施例的技术方案以及优点表达的更清楚,下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
在本申请的描述中,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
图1是根据本发明实施例的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。
当然,数据a还可以寄存在寄存器REG2中,并且在时钟控制下经第一输出端DO输出到在右侧的处理单元PE。
时钟CK用于控制处理单元的处理进程。阵列操作由时钟同步。
使能信号EN用于启动或暂停处理单元的处理进程。在使能信号EN的控制下,各处理单元同时暂停,或者同事启动处理进程。
图3是图2的处理单元中的存储器MEM的示意图。该存储器可以采用比特方式访问。如图3所示,存储器包括8比特的D触发器,系数数据以比特流方式从D输入端输入触发器,然后经输出端Q输出为Q0-Q7。Q0-Q7可以提供运算用的系数数据。时钟CK控制触发器的节奏。使能信号EN用于确定D触发器是否启动或暂停。
图4是图2的处理单元中的存储器MEM的示意图。该存储器可以采用字方式访问。如图4所示,存储器包括8比特D1-D8的D触发器,系数数据从D输入端输入触发器,然后经输出端Q输出为Q0-Q7。时钟CK控制触发器的节奏。使能信号EN用于确定D触发器是否启动或暂停。请注意,存储器MEM的CK时钟不同于处理单元的CK时钟。
图5是一种集成有FPGA和AI模块的系统芯片的结构示意图。如图5所示,系统芯片上集成有至少一个FPGA电路和至少一个AI模块。AI模块可以是如图1所示的AI模块。
至少一个FPGA电路中的各FPGA电路可实现逻辑、计算、控制等各种功能。FPGA利用小型查找表(例如,16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能。
系统芯片上还设置有与二维卷积阵列相对应的接口,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各模块数量的占比并无限制,阵列的大小也根据需要,在设计时由实际应用决定。
图7是对AI模块的各处理单元写权重和读权重的示意图。当需要写权重时,可以利用左侧的第一装置向AI模块写入权重系数。当需要从AI模块中读取权重时,可以将AI模块中的权重数据依次读出,写入第二装置。第一装置和第二装置可以利用FPGA模块的子模块实现。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种人工智能AI模块的芯片电路,AI模块包括:排列成二维阵列的多个处理单元(PE),各处理单元能够完成乘加运算;其中,处理单元包括使能输入端,用于接收使能信号,并且根据使能信号暂停或启动处理单元的操作;处理器还包括存储器,用于存储乘加运算用的数据;其中,二维阵列中的各处理单元共用同一个时钟信号进行运算。
2.根据权利要求1所述的芯片电路,其特征在于,存储器包括多个彼此串联的一比特D触发器。
3.根据权利要求1所述的芯片电路,其特征在于,存储器包括多个彼此并联的一比特D触发器。
4.根据权利要求1所述的芯片电路,其特征在于,处理单元还包括乘法器(MUL)、加法器(ADD)、第一寄存器(REG1)和第二寄存器(REG2);在第一维度上的第一输入数据端(DI)和第一数据输出端(DO);在第二维度上的第二数据输入端(PI)和第二数据输出端(PO);第一数据自第一数据输入端口输入,乘法器将第一数据和系数数据(W)相乘;第二数据自第二数据输入端输入,加法器将第二数据和乘积相加,相加之后的和值寄存在第一寄存器(REG1)中;和值在时钟控制下可以经第二数据输出端输出;第一数据还寄存在第二寄存器中,并且在时钟控制下可以经第一输出端输出。
5.一种系统芯片,包括:如权利要求1-4之一所述的芯片电路;FPGA模块,与所述AI模块耦合,以便自AI模块发送数据或者接收数据。
6.如权利要求5所述的系统芯片,其特征在于,AI模块嵌入FPGA模块中以便复用FPGA模块的绕线架构,以便自AI模块发送数据或者接收数据,皆经由所述的复用的FPGA的绕线架构。
7.根据权利要求5所述的FPGA系统芯片,其特征在于,包括第一装置,用于权重系数写入AI模块的处理单元。
8.根据权利要求5所述的系统芯片,其特征在于,包括第二装置,用于将权重系数从AI模块的处理单元读出。
9.根据权利要求5所述的系统芯片,其特征在于,第一装置由FPGA模块实现。
10.根据权利要求5所述的系统芯片,其特征在于,第二装置由FPGA模块实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104134.0A CN109933371A (zh) | 2019-02-01 | 2019-02-01 | 其单元可访问本地存储器的人工智能模块和系统芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104134.0A CN109933371A (zh) | 2019-02-01 | 2019-02-01 | 其单元可访问本地存储器的人工智能模块和系统芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109933371A true CN109933371A (zh) | 2019-06-25 |
Family
ID=66985454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910104134.0A Pending CN109933371A (zh) | 2019-02-01 | 2019-02-01 | 其单元可访问本地存储器的人工智能模块和系统芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109933371A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091864A (en) * | 1988-12-23 | 1992-02-25 | Hitachi, Ltd. | Systolic processor elements for a neural network |
EP3091685A1 (de) * | 2015-05-06 | 2016-11-09 | Dr. Johannes Heidenhain GmbH | Vorrichtung und verfahren zur verarbeitung von seriellen datenrahmen |
US20160342892A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Prefetching weights for use in a neural network processor |
CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
US20180046907A1 (en) * | 2015-05-21 | 2018-02-15 | Google Inc. | Neural Network Processor |
US20190026078A1 (en) * | 2017-07-24 | 2019-01-24 | Tesla, Inc. | Accelerated mathematical engine |
-
2019
- 2019-02-01 CN CN201910104134.0A patent/CN109933371A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5091864A (en) * | 1988-12-23 | 1992-02-25 | Hitachi, Ltd. | Systolic processor elements for a neural network |
EP3091685A1 (de) * | 2015-05-06 | 2016-11-09 | Dr. Johannes Heidenhain GmbH | Vorrichtung und verfahren zur verarbeitung von seriellen datenrahmen |
US20160342892A1 (en) * | 2015-05-21 | 2016-11-24 | Google Inc. | Prefetching weights for use in a neural network processor |
US20180046907A1 (en) * | 2015-05-21 | 2018-02-15 | Google Inc. | Neural Network Processor |
US20190026078A1 (en) * | 2017-07-24 | 2019-01-24 | Tesla, Inc. | Accelerated mathematical engine |
CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
Non-Patent Citations (2)
Title |
---|
刘健等: "基于FPGA的高速浮点FFT的实现研究", 《微型机与应用》, no. 14, 25 July 2012 (2012-07-25) * |
陈欣波 等: "基于FPGA的现代数字电路设计", 西安电子科技大学出版社, pages: 135 - 139 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7418579B2 (en) | Component with a dynamically reconfigurable architecture | |
EP0501524A2 (en) | Parallel processor | |
JPH05505268A (ja) | デイジーチェーン制御付ニューラルネットワーク | |
CN109902040A (zh) | 一种集成fpga和人工智能模块的系统芯片 | |
US9292640B1 (en) | Method and system for dynamic selection of a memory read port | |
CN112686379B (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN109902063A (zh) | 一种集成有二维卷积阵列的系统芯片 | |
CN104657297B (zh) | 计算设备扩展系统及扩展方法 | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
CN109902835A (zh) | 处理单元设置有通用算法单元的人工智能模块及系统芯片 | |
CN109902836A (zh) | 人工智能模块的故障容错方法及系统芯片 | |
CN108491924A (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN109857024A (zh) | 人工智能模块的单元性能测试方法和系统芯片 | |
CN104598404B (zh) | 计算设备扩展方法和装置、以及可扩展的计算系统 | |
CN109886416A (zh) | 集成人工智能模块的系统芯片及机器学习方法 | |
CN109933371A (zh) | 其单元可访问本地存储器的人工智能模块和系统芯片 | |
CN109933369B (zh) | 集成单指令多数据流架构人工智能模块的系统芯片 | |
US20050267729A1 (en) | Extensible memory architecture and communication protocol for supporting multiple devices in low-bandwidth, asynchronous applications | |
CN109766293A (zh) | 连接芯片上fpga和人工智能模块的电路和系统芯片 | |
CN109919321A (zh) | 单元具有本地累加功能的人工智能模块及系统芯片 | |
KR100840030B1 (ko) | 프로그래머블 논리 회로 | |
CN109902795A (zh) | 处理单元设置有输入复用器的人工智能模块和系统芯片 | |
CN109871950A (zh) | 单元具有旁路功能的人工智能模块的芯片电路和系统芯片 | |
US9158731B2 (en) | Multiprocessor arrangement having shared memory, and a method of communication between processors in a multiprocessor arrangement | |
CN109919323A (zh) | 边缘单元具有本地累加功能的人工智能模块及系统芯片 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190625 |
|
RJ01 | Rejection of invention patent application after publication |