CN109828948B - 一种集成人工智能模块的系统芯片 - Google Patents
一种集成人工智能模块的系统芯片 Download PDFInfo
- Publication number
- CN109828948B CN109828948B CN201910104532.2A CN201910104532A CN109828948B CN 109828948 B CN109828948 B CN 109828948B CN 201910104532 A CN201910104532 A CN 201910104532A CN 109828948 B CN109828948 B CN 109828948B
- Authority
- CN
- China
- Prior art keywords
- module
- processor
- bus
- fpga
- system chip
- 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.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
一种集成人工智能AI模块的系统芯片。系统芯片包括:第一处理器,配置有第一总线;第二处理器,配置有第二总线;至少一个AI模块,通过总线接口模块连接到第一总线和第二总线中的至少一个总线上;至少一个FPGA模块,通过总线接口模块连接到第一总线和第二总线中的至少一个总线上。采用两个处理器,可以在发挥AI模块和FPGA模块的功能方面有较好的灵活性。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种集成人工智能模块的系统芯片。
背景技术
近年来,人工智能迎来一波发展浪潮。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
当前,人工智能模块由处理器通过总线来进行访问控制,而总线是有一定的带宽限制,这样的架构难以适应AI模块的大带宽需求。
发明内容
根据本发明实施例,提供一种系统芯片,包括:第一处理器,配置有第一总线;第二处理器,配置有第二总线;至少一个AI模块,通过总线接口模块连接到第一总线和第二总线中的至少一个总线上;至少一个FPGA模块,通过总线接口模块连接到第一总线和第二总线中的至少一个总线上。
优选地,第一处理器和/或第二处理器有各自的存储器。
优选地,系统芯片包括由第一处理器和第二处理器共享的片上存储器。
优选地,第一处理器支持第一指令集,第二处理器支持第二指令集,其中第一指令集和第二指令集不同。
优选地,第一处理器是事务处理器,第二处理器是数据运算处理器。
优选地,第一处理器运行第一版本的程序,第二处理器允许第二版本的程序,第一版本早于第二版本。
优选地,使能第一处理器和第二处理器中的一个处理器,另一个处理器则关闭停用。
优选地,AI模块嵌入FPGA模块中并且复用FPGA模块的绕线资源,以便自AI模块发送数据或者接收数据,皆经由所述的复用的FPGA的绕线资源。
采用两个处理器,可以在发挥AI模块和FPGA模块的功能方面有较好的灵活性。
附图说明
图1是根据本发明实施例的集成人工智能模块的系统芯片结构示意图;
图2是FPGA电路的结构示意图;
图3是人工智能模块的结构示意图;
图4是处理单元的示意图。
具体实施方式
为使本发明实施例的技术方案以及优点表达的更清楚,下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
在本申请的描述中,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“东”、“南”、“西”、“北”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
图1是根据本发明实施例的集成人工智能模块的系统芯片结构示意图。如图1所示,系统芯片上集成有至少一个FPGA模块和至少一个人工智能模块。
各FPGA模块可实现逻辑、计算、控制等各种功能。FPGA利用小型查找表(例如,16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能。FPGA模块可以配置有可配置输入输出(C.IO)。
各人工智能模块可实现或加速经预先选定的特定AI功能,包括人工智能(Artificial Intelligence AI)、深度学习(Deep Learning DL)、机器学习(MachineLearning ML)等各种算法或加速算法中某一步骤的特定功能(如卷积Convolution、矩阵Matrix/张量运算Tensor Operation等)。人工智能(AI)模块可包含由多个功能模块(FU)组成的阵列,各功能模块可包含类似ALU或乘累加器(MAC)的功能单元、寄存器、复用器MUX等。人工智能模块配置有固定的输入/输出(F.IO),当然也可以包含可配置的输出入输出(Configurable IO)。
FPGA模块和人工智能模块的大小并无限定,在设计时由实际应用决定。
在占用芯片布局方面,一般是安排FPGA模块与人工智能模块相邻。FPGA模块和AI模块可以并排放置,此时FPGA模块可以为AI模块传输数据,提供控制。AI模块也可以嵌入FPGA模块之中;比如,FPGA模块较大,人工智能模块较小的情况时,亦可在大片的FPGA模块中挖空一窗口,内置入人工智能模块;此时,AI模块需要复用FPGA模块的绕线架构,以便通过复用的FPGA模块的绕线架构接收和发送数据。
系统芯片上还集成有两种不同架构的处理器,第一处理器(Processor 1)和第二处理器(Processor 2)。第一处理器例如采用ARM+8051、ARM+RISC_V、RISC_V+8051等架构中的一种,第二处理器采用另一种。各处理器有各自所属的总线BUS,例如BUS1属于第一处理器,BUS2属于第二处理器。第一处理器和第二处理器可以有各自的片上本地存储器,也可以有共享的片上存储器。第一处理器还可以配置有固定的输入/输出(F.IO)。
外设接口等各种设备,也各自接到各属的BUS1或BUS2上。
各FPGA模块用不同的总线接口模块BIM,分别连接到BUS1、BUS2。同样,AI模块也用两个不同的BIM分别连接到BUS1、BUS2。
在一个例子下,两个处理器的BUS1、BUS2相似或兼容时,可以只用一个BUS连接。此时,FPGA模块、AI模块各自只需一个BIM即可连接到BUS。
第一处理器和第二处理器的选择可以是多样的。在一个例子中,一个处理器面积小、功耗小、速度不需太块、功能无需太强,但可做些简单工作,如配置、测试、监视等各种事务性的工作。另一个处理器则面积大、速度快、功能强,可专注于快速处理大量数据,甚至可带有多核,为芯片的主要AP应用处理器。
在一个例子中,系统芯片上还设置有与AI模块相对应的接口,FPGA模块和AI模块通过接口模块连通。接口模块可以是绕线(XBAR)模块,XBAR模块例如由多个选择器(Multiplexer)和选择位元组成。接口模块也可以是FIFO(先进先出)。接口模块还可以是同步器(Synchronizer),同步器例如由2个触发器(Flip-Flop或FF)串连而成。FPGA模块可以为AI模块传输数据,提供控制。接口模块可以是额外的电路模块,也可以是FPGA内带的接口模块,或者同时有两者。
图2是FPGA电路的结构示意图。如图2所示,FPGA电路可包含有多个可编程逻辑模块(LOGIC)、嵌入式存储块(EMB)、乘累加器(MAC)等模块和相应的绕线(XBAR)。当然,FPGA电路还设有时钟/配置模块(支干seam/主干spine)等相关资源。若需要EMB或MAC模块时,因其面积比PLB大许多,故以此EMB/MAC模块取代若干PLB模块。
LOGIC模块可以包含,例如,8个6输入查找表,18个寄存器。
EMB包含若干个可扩充的存储小块,其可连成一大块例如36Kb的存储,包含各种宽度/深度的选择。
MAC模块可以是,例如,25x18乘法器,或2个18x18乘法器。MAC模块还可以搭配例如48位的累加器。
FPGA阵列中,LOGIC、MAC、EMB各模块数量的占比并无限制,阵列的大小也根据需要,在设计时由实际应用决定。
绕线资源XBAR是各模块间互联的接点,均匀地分布在FPGA模块内。FPGA模块内所有的资源,PLB、EMB、MAC、IO相互之间的绕线都是经有一个相同的界面,即绕线XBAR单元来实现。由绕线方式来看,整个阵列是相同一致,整齐排列的XBAR单元形成网格,将FPGA内所有模块相连。
图3是人工智能模块的结构示意图。如图3所示,人工智能AI模块是一个二维阵列,例如包括4X4个执行单元EU。AI模块可分为两个维度,彼此垂直的第一维度和第二维度。以第一执行单元、第二执行单元和第三执行单元为例。第一执行单元和第二执行单元沿第一维度沿第一方向相邻排列;第一执行单元沿第一方向的输出端耦合到第二执行单元沿第一方向的相反方向的输入端,第一执行单元沿第一方向的输入端耦合到第二执行单元沿第一方向的相反方向的输出端。第一执行单元和第三执行单元沿第二维度沿第二方向相邻排列,第一执行单元沿第二方向的输出端耦合到第三执行单元沿第二方向的相反方向的输入端,第一执行单元沿第二方向的输入端耦合到第三执行单元沿第二方向的相反方向的输出端。
数据a可以沿第一维度双向流动;例如,既可以在同一时钟下沿第一方向依次输入具有相同第二维度值的各执行单元,也可以沿第一方向的相反方向依次输入具有相同第二维度值的各执行单元。数据b也可沿第二维度双向流动,例如既可以在同一时钟下沿第二方向依次输入具有相同第一维度值的各执行单元,也可以沿第二方向的相反方向依次输入具有相同第一维度值的各执行单元。
执行单元可以从不同维度不同方向接收数据。在输入执行单元后,数据在执行单元中进行各种运算,例如加减乘除,逻辑运算等等。执行单元将运算结果沿不同维度不同方向输出。
当然,通过控制,同一个数据或者由其衍生的数据可以在不同的时钟下流经所有的PE单元。为理解方便起见,下文将以水平维度为第一维度、左向右为第一方向,以垂直维度为第二维度、上向下为第二方向。
需要注意,图3中的每条数据线既可代表单比特的信号,也可代表8(或16,32)比特的信号。
在一个例子中,人工智能模块可以实现矩阵乘法。在另一个例子中,二维阵列可以实现卷积算法。
图4是处理单元的示意图。如图4所示,处理单元包括可编程功能单元(programmable functional unit,PFU)。处理单元可以设置至少一个IMUX(例如,IMUX1和IMUX2),以及一个OMUX。IMUX1和IMUX2接收相同的输入数据,即来自第一维度和第二维度不同方向(例如,东南西北)四个方向的输入数据E、S、W、N。IMUX1可以选通至少一路数据,送入PFU的一个输入端;IMUX2可以选通至少一路数据,送入PFU的另一个输入端。当然,PFU可以有两个以上的输入端,因此IMUX的数量可以是多于两个,或者IMUX1和IMUX各自可以提供多于一路的数据给PFU。
PFU实现PE的功能,一般包括逻辑、乘法、加法等运算。在PFU,对输入的数据进行运算;然后,该运算结果寄存在寄存器REG中。在下一个时钟CK时,运算结果经OMUX输出。OMUX可以有第一维度和第二维度不同方向(例如,东南西北)四个方向的输出。在选通信号的控制下,OMUX选择相应的方向输出运算结果,用以当作四个相邻PE的输入数据。
此外,IMUX1的输出端还耦合到OMUX的一个输入端。因此,可以将IMUX1所选通的数据直接经OMUX选通输出。这样的操作,实际上实现了跳线功能,用以跳过当前PE的处理功能,由选定的输入直接送到输出。
集成两种不同架构处理器以及FPGA和AI模块的系统芯片,具有如下优点:
第一,FPGA和AI模块皆可作为处理器的扩充指令,用以加速某些特定的运算。如此可大幅提高效能,并方便用户完成无缝式的应用开发和使用。
其次,可以同时支持2种不同的指令集。比如,其中一个处理器选用老的架构,可以兼容旧有的程序,无需找到源代码,再重新编译;可以直接在处理器上执行旧有的程序。另一处理器可以采用最新最流行的处理器架构,可以直接执行各种新的程序,适应市场最新需求。
第三,预先设定只使能其中一个处理器,另一个处理器则关闭停用。这种配置下,可使用户只看到一个处理器。芯片上的各种应用,其使用方法可以维持不变。同时,根据使能的处理器不同,此一系统芯片,可封装成2种不同处理器型号的产品。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种系统芯片,包括:
第一处理器,配置有第一总线;
第二处理器,配置有第二总线;
至少一个人工智能AI模块,通过总线接口模块连接到第一总线和第二总线中的至少一个总线上;
至少一个FPGA模块,通过总线接口模块连接到第一总线和第二总线中的至少一个总线上;
系统芯片上还设置有与AI模块相对应的接口,FPGA模块和AI模块通过接口模块连通。
2.根据权利要求1所述的系统芯片,其特征在于,第一处理器和/或第二处理器有各自的存储器。
3.根据权利要求1所述的系统芯片,其特征在于,系统芯片包括由第一处理器和第二处理器共享的片上存储器。
4.根据权利要求1所述的系统芯片,其特征在于,第一处理器支持第一指令集,第二处理器支持第二指令集,其中第一指令集和第二指令集不同。
5.根据权利要求1所述的系统芯片,其特征在于,第一处理器是事务处理器,第二处理器是数据运算处理器。
6.根据权利要求1所述的系统芯片,其特征在于,第一处理器运行第一版本的程序,第二处理器允许第二版本的程序,第一版本早于第二版本。
7.根据权利要求1所述的系统芯片,其特征在于,使能第一处理器和第二处理器中的一个处理器,另一个处理器则关闭停用。
8.如权利要求1所述的系统芯片,其特征在于,AI模块嵌入FPGA模块中并且复用FPGA模块的绕线资源,以便自AI模块发送数据或者接收数据,皆经由所述的复用的FPGA的绕线资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104532.2A CN109828948B (zh) | 2019-02-01 | 2019-02-01 | 一种集成人工智能模块的系统芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104532.2A CN109828948B (zh) | 2019-02-01 | 2019-02-01 | 一种集成人工智能模块的系统芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109828948A CN109828948A (zh) | 2019-05-31 |
CN109828948B true CN109828948B (zh) | 2023-07-18 |
Family
ID=66863321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910104532.2A Active CN109828948B (zh) | 2019-02-01 | 2019-02-01 | 一种集成人工智能模块的系统芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109828948B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520689A (zh) * | 2011-12-14 | 2012-06-27 | 杭州英若飞科技有限公司 | 基于龙芯处理器和fpga技术的嵌入式控制器 |
CN107292342A (zh) * | 2017-06-21 | 2017-10-24 | 广东欧珀移动通信有限公司 | 数据处理方法及相关产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9250908B2 (en) * | 2001-03-05 | 2016-02-02 | Pact Xpp Technologies Ag | Multi-processor bus and cache interconnection system |
US9436631B2 (en) * | 2001-03-05 | 2016-09-06 | Pact Xpp Technologies Ag | Chip including memory element storing higher level memory data on a page by page basis |
-
2019
- 2019-02-01 CN CN201910104532.2A patent/CN109828948B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520689A (zh) * | 2011-12-14 | 2012-06-27 | 杭州英若飞科技有限公司 | 基于龙芯处理器和fpga技术的嵌入式控制器 |
CN107292342A (zh) * | 2017-06-21 | 2017-10-24 | 广东欧珀移动通信有限公司 | 数据处理方法及相关产品 |
Also Published As
Publication number | Publication date |
---|---|
CN109828948A (zh) | 2019-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2237165B1 (en) | Multiprocessor system with specific architecture of communication elements and manufacturing method therefor | |
US9564902B2 (en) | Dynamically configurable and re-configurable data path | |
JP2008537268A (ja) | 可変精度相互接続を具えたデータ処理エレメントの配列 | |
US9449131B2 (en) | Extracting system architecture in high level synthesis | |
CN105468568A (zh) | 高效的粗粒度可重构计算系统 | |
US10224934B1 (en) | Method and apparatus for implementing configurable streaming networks | |
US8664975B1 (en) | Systems and methods for flexibly configuring a programmable logic device | |
JP6656217B2 (ja) | データ処理装置およびその制御方法 | |
CN109902063B (zh) | 一种集成有二维卷积阵列的系统芯片 | |
CN109902040B (zh) | 一种集成fpga和人工智能模块的系统芯片 | |
CN109857024B (zh) | 人工智能模块的单元性能测试方法和系统芯片 | |
CN109828948B (zh) | 一种集成人工智能模块的系统芯片 | |
KR100863080B1 (ko) | 저전력형 컨피규레이션 캐시와 이를 포함하는 재구성형프로세싱 시스템 | |
CN109919322B (zh) | 一种测试系统芯片上的人工智能模块的方法和系统芯片 | |
Monopoli et al. | Exploiting fpga dynamic partial reconfiguration for a soft gpu-based system-on-chip | |
CN109766293B (zh) | 连接芯片上fpga和人工智能模块的电路和系统芯片 | |
CN109933369B (zh) | 集成单指令多数据流架构人工智能模块的系统芯片 | |
CN109902835A (zh) | 处理单元设置有通用算法单元的人工智能模块及系统芯片 | |
CN109933370B (zh) | 连接fpga和人工智能模块的系统芯片 | |
CN109885512B (zh) | 集成fpga和人工智能模块的系统芯片及设计方法 | |
CN109884499B (zh) | 一种测试系统芯片上的人工智能模块的方法和系统芯片 | |
CN109902037B (zh) | 连接不同时钟域下的fpga和人工智能模块的系统芯片 | |
CN109902795B (zh) | 处理单元设置有输入复用器的人工智能模块和系统芯片 | |
CN109902836A (zh) | 人工智能模块的故障容错方法及系统芯片 | |
EP2700167B1 (en) | Configurable logic cells |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |