CN112740193B - 大数据运算加速系统执行运算的方法 - Google Patents
大数据运算加速系统执行运算的方法 Download PDFInfo
- Publication number
- CN112740193B CN112740193B CN201880097574.1A CN201880097574A CN112740193B CN 112740193 B CN112740193 B CN 112740193B CN 201880097574 A CN201880097574 A CN 201880097574A CN 112740193 B CN112740193 B CN 112740193B
- Authority
- CN
- China
- Prior art keywords
- data
- chip
- chips
- storage units
- interfaces
- 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
- 238000000034 method Methods 0.000 title claims abstract description 19
- 230000001133 acceleration Effects 0.000 title claims abstract description 17
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 abstract description 67
- 238000012545 processing Methods 0.000 abstract description 10
- 230000000694 effects Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 239000002245 particle Substances 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 101100134956 Mus musculus Ooep gene Proteins 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
本发明实施例提供一种大数据运算加速系统执行运算的方法,系统中的每个运算芯片均通过存储单元发送或接收数据,在对数据进行运算后,将运算结果或中间数据存储到与运算芯片连接的至少一个存储单元中。通过上述方法实现系统运算芯片共享存储单元的目的,实现了可以具有大容量内存的技术效果,减少了数据从外部存储空间中搬入或者搬出内存的次数,加快了数据的处理速度;同时,由于多个运算芯片可以分别独立运算或者协同运算,这样也加快了数据的处理速度。
Description
技术领域
本发明实施例涉及集成电路领域,特别是涉及一种大数据运算加速系统执行运算的方法。
背景技术
ASIC(Application Specific Integrated Circuits)即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
随着科技的发展,越来越多的领域,比如人工智能、安全运算等都涉及大运算量的特定计算。针对特定运算,ASIC芯片可以发挥其运算快,功耗小等特定。同时,对于这些大运算量领域,为了提高数据的处理速度和处理能力,通常需要控制N个运算芯片同时进行工作。随着数据精度的不断提升,人工智能、安全运算等领域需要对越来越大的数据进行运算,为了存储数据一般需要给ASIC芯片配置多个存储单元,例如一块ASIC芯片要配置4块2G内存;这样N个运算芯片同时工作时,就需要4N块2NG内存。但是,在多运算芯片同时工作时,数据存储量不会超过2个G,这样就造成了存储单元的浪费,提高了系统成本。
发明内容
本发明实施例提供一种大数据运算加速系统执行运算的方法,将2个以上ASIC运算芯片通过总线分别和2个以上存储单元相连,所述运算芯片通过所述存储单元进行数据交换,这样不仅减少了存储单元的数量,也减少了ASIC运算芯片之间的连接线,简化了系统构造,并且每个ASIC运算芯片分别与多个存储单元连接,不会造成使用总线方式而发生冲突,也不用为每个ASIC运算芯片设置缓存。
为达到上述目的,根据本实施例提供的一种大数据运算加速系统执行运算的方法,所述大数据运算加速系统,包括两个以上运算芯片和两个以上存储单元,所述运算芯片包括至少一个第一数据接口和两个以上第二数据接口;所述存储单元包括两个以上第三数据接口;
所述运算芯片通过所述至少一个第一数据接口接收外部数据;
所述运算芯片通过所述两个以上第二数据接口将外部数据存储到所述两个以上存储单元中的至少一个存储单元;
所述运算芯片通过所述至少一个第一数据接口接收外部控制指令;
所述运算芯片通过所述两个以上第二数据接口从所述存储单元获取数据;
所述运算芯片对数据进行运算,获得运算结果或者中间数据;
所述运算芯片通过所述两个以上第二数据接口将运算结果或者中间数据存储到所述两个以上存储单元中的至少一个存储单元;
所述运算芯片通过所述两个以上第二数据接口从所述存储单元获取运算结果或者中间数据,将运算结果或者中间数据通过所述至少一个第一数据接口向外部反馈。
本发明实施例通过将大数据运算加速系统中多个运算芯片分别和每个内存单元相连,达到了节省内存单元数量的技术效果,降低了系统成本也减少了ASIC运算芯片之间的连接线,简化了系统构造,并且每个ASIC运算芯片分别与多个存储单元连接,不会造成使用总线方式而发生冲突,也不用为每个ASIC运算芯片设置缓存。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是示例性的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例提供的大数据运算加速系统的结构示意图;
图2a为本发明第一实施例提供的运算芯片的结构示意图;
图2b为本发明第一实施例提供的运算芯片的信号流程示意图;
图3a为本发明第二实施例提供的运算芯片的结构示意图;
图3b为本发明第二实施例提供的运算芯片的信号流程示意图;
图4a为本发明第三实施例提供的存储单元的结构示意图;
图4b为本发明第三实施例提供的存储单元的信号流程示意图;
图5为本发明第四实施例提供的大数据运算加速系统的连接结构示意图;
图6为本发明第五实施例提供的数据结构示意图。
具体实施方式
下面将基于附图具体说明本实施例的示例性实施方式,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
此外,需要说明书的是,各附图中的上、下、左、右的各方向仅是以特定的实施方式进行的例示,本领域技术人员能够根据实际需要将附图中所示的各构件的一部分或全部改变方向来应用,而不会影响各构件或系统整体实现其功能,这种改变了方向的技术方案仍属于本发明的保护范围。
多核芯片是具体化在单个大规模集成半导体芯片上的多处理系统。典型地,两个或更多芯片核心可以被具体化在多核芯片上,由总线(也可以在相同的多核芯片上形成该总线)进行互连。可以有从两个芯片核心到许多芯片核心被具体化在相同的多核芯片上,在芯片核心的数量中的上限仅由制造能力和性能约束来限制。多核芯片可以具有应用,该应用包含在多媒体和信号处理算法(诸如,视频编码/解码、2D/3D图形、音频和语音处理、图像处理、电话、语音识别和声音合成、加密处理)中执行的专门的算术和/或逻辑操作。
虽然在背景技术中仅仅提到了ASIC专用集成电路,但是实施例中的具体布线实现方式可以应用到具有多核芯片CPU、GPU、FPGA等中。在本实施例中多个内核可以是相同内核,也可以是不同内核。
为了方便说明,以下将以图1中存在的4个运算芯片和4个存储单元的大数据运算加速系统为例进行说明,而本领域技术人员可知,这里选择4个运算芯片和4个存储单元为例,只是示例性的说明,运算芯片个数可以是N,其中N为大于等于2的正整数,例如N可以是6、10、12等等。存储单元个数可以是M,其中M为大于等于2的正整数,例如M可以是6、9、12等等。在实施例中N和M可以相等,也可以不相等。在本实施例中多个运算芯片可以是相同的运算芯片,也可以是不同的运算芯片。
图1为本发明第一实施例提供的大数据运算加速系统的结构示意图。如图1所示,本实施例的大数据运算加速系统包括4个运算芯片(10、11、12、13)和4个存储单元(20、21、22、23);每个运算芯片通过总线和所有存储单元相连,所述运算芯片通过所述存储单元进行数据交换,运算芯片之间不直接交换数据;运算芯片之间发送控制指令。
每个存储单元中设置专有存储区域和共享存储区域;所述专有存储区域用于存储一个运算芯片的临时运算结果,该临时运算结果为所述一个运算芯片继续利用的中间计算结果,而其他运算芯片不会使用的中间计算结果;所述共享存储区域用于存储运算芯片的数据运算结果,数据运算结果被其他运算芯片使用,或者需要向外部进行反馈传输。当然,为了方便管理也可以不对存储单元进行划分。这里存储单元可能为双倍数据速率(DualData Rate,DDR)、串行双倍数据速率(serial Dual Data Rate,SDDR)、DDR2、DDR3、DDR4、图形用双倍数据速率(Graphics Double Data Rate,GDDR5)、GDDR6、混合内存立方体(HybridMemory Cube,HMC)、高带宽内存(High Band Memory,HBM)等高速外部存储器。在这里存储单元优选的选择DDR系列内存,DDR内存即双倍速率同步动态随机存储器。DDR运用了同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了延时锁定回路(Delay Locked Loop,DLL)提供一个数据滤波信号技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。DDR内存的频率可以用工作频率和等效频率两种方式表示,工作频率是内存颗粒实际的工作频率,但是由于DDR内存可以在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍。DDR2内存是由电子设备工程联合委员会(JointElectron Device Engineering Council,JEDEC)进行开发的新生代内存技术标准,DDR2内存每个时钟能够以4倍外部总线的速度读/写数据,并且能够以内部控制总线4倍的速度运行。DDR3、DDR4、GDDR5、GDDR6、HMC、HBM内存都是现有技术,这里就不详细介绍。
将4个ASIC运算芯片通过总线分别和4个存储单元相连,所述运算芯片通过所述存储单元进行数据交换,这样不仅减少了存储单元的数量,也减少了ASIC运算芯片之间的连接线,简化了系统构造,并且每个ASIC运算芯片分别与多个存储单元连接,不会造成使用总线方式而发生冲突,也不用为每个ASIC运算芯片设置缓存。
图2a为本发明第一实施例提供的运算芯片的结构示意图,图2a所示的运算芯片具有4个内核,而本领域技术人员可知,这里选择4个内核为例,只是示例性的说明,运算芯片内核的个数可以是Q,其中Q为大于等于2的正整数,例如可以是6、10、12等等。在本实施例中运算芯片内核可以是具有相同功能的内核,也可以是不同功能的内核。
4个内核的运算芯片(10)包括4个内核core(110、111、112、113)、一个路由单元(120)、一个数据交换控制单元(130)和4个serdes接口(150、151、152、153)。一个数据交换控制单元、4个serdes接口通过总线分别与路由单元相连,路由单元再和每个内核core相连。数据交换控制单元可以采用多种协议进行实现,例如,通用异步收发传输器(UniversalAsynchronous Receiver/Transmitter,UART),串行外设接口(Serial PeripheralInterface,SPI),高速串行计算机扩展总线标准(peripheral component interconnectexpress,PCIE),串行器/解串器(SERializer/DESerializer,SERDES),通用串行总线(Universal Serial Bus,USB)等,在本实施方式中数据交换控制单元为UART控制单元(130)。通用异步收发传输器通常称作UART,是一种异步收发传输器,它将要传输的资料在串行通信与并行通信之间加以转换,UART通常被集成于各种通讯接口的连结上。但是这里只是以UART协议为例进行说,也可以采用其他协议。UART控制单元(130)可以接受外部数据或者控制指令,向其他芯片发送控制指令,从其他芯片接受控制指令,以及向外部反馈运算结果或者中间数据等。
serdes是英文SERializer(串行器)/DESerializer(解串器)的简称。它是一种主流的时分多路复用(Time Division Multiplexing,TDM)、点对点(Point to Point,P2P)的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速度,从而大大降低通信成本。当然,这里也可以采用其他的通信接口代替serdes接口,例如:同步串行接口(Synchronous Serial Interface,SSI)、UATR。芯片和存储单元之间通过serdes接口和传输线进行数据和控制指令传输。
内核core的主要功能是执行外部或者内部控制指令、执行数据计算以及数据的存储控制等功能。
路由单元用于向内核core(110、111、112、113)发送数据或者控制指令,并且接受内核core(110、111、112、113)发送数据或者控制指令,实现内核core之间的通信。接受内部或者外部控制指令通过serdes接口向存储单元写入数据、读取数据或者向内存单元发送控制指令;如果内部或者外部控制指令用于控制其他芯片的控制指令,则路由单元将控制指令发送给UART控制单元(130),由UART控制单元(130)向其他芯片发送;如果需要向其他芯片发送数据时,路由单元通过serdes接口向存储单元传输数据,其他芯片通过存储单元获取数据;如果需要从其他芯片接受数据时,路由单元通过serdes接口从存储单元获取数据。路由单元以及通过UART控制单元(130)接受外部控制指令,向各个内核core(110、111、112、113)发送控制指令;通过UART控制单元(130)接受外部数据,根据外部数据地址将外部数据发送给内核core(110、111、112、113)或者存储单元。所述的内部数据或者内部控制指令是指芯片自身产生的数据或者控制指令,所述外部数据或者外部控制指令是指芯片外部产生的数据或者控制指令,例如外部主机、外部网络发送的数据或者控制指令。
图2b为本发明第一实施例提供的运算芯片的信号流程示意图。在图2b中,以运算芯片具有4个内核为例进行说明。请参见图2b,所述UART接口(130)用于获取芯片外部数据或者控制指令,路由单元(120)根据数据或者控制指令地址将数据或者控制指令发送给内核core,或者路由单元(120)通过serdes接口发送给serdes接口连接的存储单元。如果外部控制指令的目的地址指向其他芯片,则路由单元将控制指令发送给UART控制单元(130),由UART控制单元(130)向其他芯片发送。UART接口(130)根据外部控制指令或者内部控制指令将运算结果发送给外部,运算结果可以从运算芯片的内核core获取,也可以通过serdes接口获取serdes接口连接的存储单元获取。这里所述的外部可以是指外部主机、外部网络或者外部平台等。外部主机能通过UART控制单元初始化配置存储单元参数,对多个存储颗粒进行统一编址。
内核core可以向路由单元发送获取或者写入数据的控制指令,控制指令中携带数据地址,路由单元根据地址通过serdes接口向存储单元读取或者写入数据。内核core也可以根据地址通过路由单元向其他内核core发送数据或者控制指令,并且通过路由单元从其他内核core获取数据或者控制指令。内核core根据获取的数据进行计算,并将计算结果存储到存储单元中。每个存储单元中设置专有存储区域和共享存储区域;所述专有存储区域用于存储一个运算芯片的临时运算结果,该临时运算结果为所述一个运算芯片继续利用的中间计算结果,而其他运算芯片不会使用的中间计算结果;所述共享存储区域用于存储运算芯片的数据运算结果,数据运算结果被其他运算芯片使用,或者需要向外部进行反馈传输。如果内核core产生的控制指令用于控制其他芯片的操作,则路由单元将控制指令发送给UART控制单元(130),由UART控制单元(130)向其他芯片发送。如果内核core产生的控制指令用于控制存储单元,则路由单元通过serdes接口向存储单元发送控制指令。
图3a为本发明第二实施例提供的运算芯片的结构示意图。在图3a中,以运算芯片具有4个内核为例进行说明。根据图3a所示的运算芯片可知,4个内核的运算芯片包括4个内核core(110、111、112、113)、一个路由单元(120)、一个UART控制单元(130)和4个serdes接口(150、151、152、153)。每个serdes接口连接一个内核core,4个内核core连接于路由单元,所述UART控制单元(130)连接于内核core(110)。
图3b为本发明第二实施例提供的运算芯片的信号流程示意图。在图3b中,以运算芯片具有4个内核为例进行说明。请参见图3b,所述UART控制单元(130)用于获取芯片外部数据或者控制指令,将外部数据或者控制指令传输给和UART控制单元连接的内核core(110)。内核core(110)将外部数据或者控制指令传输给路由单元(120),路由单元根据数据或者控制指令地址将数据或者控制指令发送给数据地址对应的内核core(111、112、113)。如果数据或者控制指令的目的地址为本运算芯片的内核core,则路由单元将数据或者控制指令发送给内核core(110、111、112、113)。如果数据或控制指令的目的地址为存储单元,再由内核core(111、112、113)通过serdes接口(151、152、153)发送给对应的存储单元。内核core(110)也可以直接将数据或者控制指令通过自身连接的serdes接口(150)发送给对应的存储单元。在这种情况下,路由单元存储所有存储单元地址所对应的serdes接口。如果数据或者控制指令的目的地址为其他运算芯片,则数据由内核core(111、112、113)通过serdes接口(151、152、153)发送给对应的存储单元;控制指令通过UART控制单元发送给其他运算芯片。内核core根据外部控制指令或者内部控制指令将运算结果或者中间数据反馈给外部时,内核core从serdes接口从存储单元获取运算结果或者中间数据,将运算结果或者中间数据发送给路由单元,路由单元将运算结果或者中间数据发送给UART控制单元连接的内核core(110),最后通过UART控制单元将运算结果或者中间数据发送给外部。如果是由UART控制单元连接的内核core所对应的serdes接口获得运算结果或者中间数据,这时就直接通过UART控制单元将运算结果或者中间数据发送给外部。这里所述的外部可以是指外部主机、外部网络或者外部平台等。外部主机能通过UART控制单元初始化配置存储单元参数,对多个存储单元进行统一编址。
内核core可以向路由单元发送控制指令,路由单元根据控制指令的地址向其他内核core、其他芯片或者存储单元发送控制指令,其他内核core、其他芯片或者存储单元接受控制指令后,执行相应的操作。内核core向其他内核core发送控制指令或者数据时,通过路由单元直接转发。内核core向其他芯片发送控制指令通过UART控制单元发送。内核core向存储单元发送控制指令时,路由单元根据地址查询地址所对应的serdes接口,将控制指令发送给serdes接口对应的内核core,再由内核core发送给对应的serdes接口,serdes接口向存储单元发送控制指令。内核core向其他芯片或者存储单元发送数据时,路由单元根据地址查询地址所对应的serdes接口,将控制指令发送给serdes接口对应的内核core,再由内核core发送给对应的serdes接口,serdes接口向存储单元发送数据。其他芯片在通过存储单元获取数据。内核core从内存单元获取数据时,读取控制指令中携带数据地址,路由单元根据地址查询地址所对应的serdes接口,将控制指令发送给serdes接口对应的内核core,再由内核core发送给对应的serdes接口,serdes接口向存储单元发送读取控制指令,指令中携带目的地址和源地址。serdes接口从存储单元获取数据后,将数据发送给serdes接口对应的内核core,内核core将包括源地址和目的地址的数据包发送给路由单元,路由单元根据目的地址将所述数据包发送给对应的内核core。如果内核core发现该目的地址为其自身地址的话,则内核core获取数据进行处理。并且内核core也可以通过路由单元向其他内核core发送数据或者命令,并且通过路由单元从其他内核core获取数据或者命令。内核core根据获取的数据进行计算,并将计算结果存储到存储单元中。每个存储单元中设置专有存储区域和共享存储区域;所述专有存储区域用于存储一个运算芯片的临时运算结果,该临时运算结果为所述一个运算芯片继续利用的中间计算结果,而其他运算芯片不会使用的中间计算结果;所述共享存储区域用于存储运算芯片的运算数据结果,该运算数据结果被其他运算芯片使用,或者需要向外部进行反馈传输。
图4a为本发明第三实施例提供的存储单元的结构示意图。在图4a中,以存储单元与具有4个内核的运算芯片对应为例进行说明,即,在图4a中,存储单元与第一实施例所示的运算芯片对应。请参见图4a,存储单元(20)包括C个存储器,这里以C=4为例进行说明,当然其中C为大于等于2的正整数,例如可以是6、10、12等等;存储器(240、241、242、243)包括存储控制器(220、221、222、223)和存储颗粒(210、211、212、213);存储控制器用于根据指令向存储颗粒写入或者读取数据,存储颗粒用于存储数据。存储单元(20)进一步包括一个路由单元(230)4个serdes接口(250、251、252、253)。4个serdes接口通过总线分别与路由单元相连,路由单元再和每个存储器相连。
图4b为本发明第三实施例提供的存储单元的信号流程示意图。在图4b中,以存储单元与具有4个内核的运算芯片对应为例进行说明,即,在图4b中,存储单元与第一实施例所示的运算芯片对应。请参见图4b,存储单元(20)通过serdes接口(250、251、252、253)接受控制指令,将控制指令发送给路由单元(230),路由单元根据控制指令中的地址,将控制指令发送给相应的存储器(240、241、242、243),存储控制器(220、221、222、223)根据控制指令执行相关操作。例如根据初始化配置存储器参数,对多个存储颗粒进行统一编址;或者根据重置指令,对存储颗粒进行重置复位;写入指令或者读出指令等操作。通过serdes接口(250、251、252、253)接受运算芯片发送的获取数据指令,指令中携带要获取数据的地址,路由单元根据地址向存储器发送获取数据指令,存储控制器根据获取数据指令从存储颗粒中获取数据,根据源地址将数据通过serdes接口发送给需求数据的运算芯片。通过serdes接口(250、251、252、253)接受运算芯片发送的写入数据指令和数据,指令中携带要写入数据的地址,路由单元根据地址向存储器发送写入数据指令和数据,存储控制器根据写入数据指令向存储颗粒写入数据。写入数据指令和数据可以是同步传输,也可以是异步传输。每个存储单元中设置专有存储区域和共享存储区域;所述专有存储区域用于存储一个运算芯片的临时运算结果,该临时运算结果为所述一个运算芯片继续利用的中间计算结果,而其他运算芯片不会使用的中间计算结果;所述共享存储区域用于存储运算芯片的运算数据结果,该运算数据结果被其他运算芯片使用,或者需要向外部进行反馈传输。
图5为本发明第四实施例提供的大数据运算加速系统的连接结构示意图。在图5中,以大数据运算加速系统具有4个运算芯片和4个存储单元为例进行说明。
请参见图5,本实施例的大数据运算加速系统包括4个运算芯片(10、11、12、13)和4个存储单元(20、21、22、23)。运算芯片的结构可是第一实施例和第二实施例所公开的芯片结构,当然运算芯片也可以是本领域技术人员针对第一和第二实施例进行的等同改进的芯片结构,这些等同改进的芯片结构也在本实施例保护的范围。存储单元的结构可是第三实施例所公开的存储单元结构,当然存储单元也可以是本领域技术人员针对第三实施例进行的等同改进的存储单元结构,这些等同改进的存储单元结构也在本实施例保护的范围。在大数据运算加速系统中运算芯片(10)的UART控制单元(130)和外部主机相连,每个芯片(10、11、12、13)的UART控制单元(130)通过总线相连。芯片(10、11、12、13)的每一个serdes接口(150、151、152、153)连接一个存储单元(20、21、22、23)的serdes接口(250、251、252、253),进而实现每个运算芯片通过总线和所有存储单元相连,所述运算芯片通过所述存储单元进行数据交换,运算芯片之间不直接交换数据。运算芯片和存储单元内部和外部信号流程在第一、第二和第三实施例中已经详细说明了,这里就不再次进行描述。
可选的,在图5所示的实施例中,可以将任意一个运算芯片中的UART控制单元(130)与外部主机连接,其它运算芯片中的UART控制单元(130)依次连接。与外部主机连接的运算芯片可以通过UART控制单元(130)接收外部主机的控制指令,并将控制指令发送给其它的运算芯片。
例如,运算芯片10中的UART控制单元(130)可以与外部主机连接,运算芯片11中的UART控制单元(130)与运算芯片10中的UART控制单元(130)连接,运算芯片12中的UART控制单元(130)与运算芯片11中的UART控制单元(130)连接,运算芯片1,3中的UART控制单元(130)与运算芯片12中的UART控制单元(130)连接。
可选的,还可以将每个运算芯片12中的UART控制单元(130)分别与外部主机连接。
该系统应用到人工智能领域中,运算芯片(10)的UART控制单元(130)将外部主机发送的图片数据或者视频数据通过serdes接(150、151、152、153)存储到存储单元(20、21、22、23)中,运算芯片(10、11、12、13)产生神经网络的数学模型,该数学模型也可以由外部主机通过serdes接口(150、151、152、153)存储到存储单元(20、21、22、23),由各个运算芯片(10、11、12、13)读取。在运算芯片(10)上运行神经网络第一层数学模型,运算芯片(10)通过serdes接口从存储单元(20、21、22、23)读取数据进行运算,并将运算结果通过serdes接口存储到存储单元(20、21、22、23)中的至少一个存储单元。运算芯片(10)通过UART控制单元(130)向运算芯片(20)发送控制指令,启动运算芯片(20)进行运算。在运算芯片(20)上运行神经网络第二层数学模型,运算芯片(20)通过serdes接口从存储单元(20、21、22、23)读取数据进行运算,并将运算结果通过serdes接口存储到存储单元(20、21、22、23)中的至少一个存储单元。每一个芯片执行神经网络中的一层,通过serdes接口从存储单元(20、21、22、23)获取数据进行运算,只到神经网络最后一层计算出运算结果。运算芯片(10)通过serdes接口从存储单元(20、21、22、23)获取运算结果,通过UART控制单元(130)反馈给外部主机。
该系统应用到加密数字货币领域中,运算芯片(10)的UART控制单元(130)将外部主机发送的区块信息存储到存储单元(20、21、22、23)中的至少一个存储单元。外部主机通过运算芯片(10、11、12、13)UART控制单元(130)向4个运算芯片(10、11、12、13)发送控制指令进行数据运算,4个运算芯片(10、11、12、13)启动运算操作。当然也可以外部主机向一个运算芯片(10)UART控制单元(130)发送控制指令进行数据运算,运算芯片(10)依次向其他3个运算芯片(11、12、13)发送控制指令进行数据运算,4个运算芯片(10、11、12、13)启动运算操作。也可以外部主机向一个运算芯片(10)UART控制单元(130)发送控制指令进行数据运算,第一运算芯片(10)向第二运算芯片(11)发送控制指令进行数据运算,第二运算芯片(11)向第三运算芯片(12)发送控制指令进行数据运算,第三运算芯片(12)向第四运算芯片(13)发送控制指令进行数据运算,4个运算芯片(10、11、12、13)启动运算操作。4个运算芯片(10、11、12、13)通过serdes接口从存储单元中读取区块信息数据,4个运算芯片(10、11、12、13)同时进行工作量证明运算,运算芯片(10)从存储单元(20、21、22、23)获取运算结果,通过UART控制单元(130)反馈给外部主机。
上述实施例中所述运算芯片和所述存储单元数量都是相等的,这时所述存储单元的第二数据接口个数与所述运算芯片的第二数据接口个数都为存储单元的数量。
但是,本领域技术人员可知,所述运算芯片和所述存储单元数量也可以是不相等,这时所述存储单元的第二数据接口个数为运算芯片的数量,所述运算芯片的第二数据接口个数为存储单元的数量。例如运算芯片为4个,存储单元为5个,这时在运算芯片上设置5个第二数据接口,在存储单元上设置4个第二数据接口。
总线可以采用集中式仲裁总线结构,或者环线拓扑总线结构,总线技术为本领域的常用技术,因此在这里就不详细介绍。
图6为本发明第五实施例提供的数据结构示意图。这里所说的数据为命令数据、数值数据、字符数据等多种数据。数据格式具体包括有效位valid、目的地址dst id、源地址src id和data数据。内核可以通过有效位valid来判断该数据包是命令还是数值,这里可以假定0代表数值,1代表命令。内核会根据数据结构判断目的地址、源地址和数据类型。从指令运行时序上来看,本实施例中采用传统的六级流水线结构,分别为取指、译码、执行、访存、对齐和写回级。从指令集架构上来看,可以采取精简指令集架构。按照精简指令集架构的通用设计方法,本发明指令集可以按功能分为寄存器寄存器型指令,寄存器立即数指令,跳转指令,访存指令、控制指令和核间通信指令。
使用本文中提供的描述,可以通过使用标准的编程和/或工程技术将实施例实现成机器、过程或制造品以产生编程软件、固件、硬件或其任何组合。
可以将任何生成的程序(多个)(具有计算机可读程序代码)具体化在一个或多个计算机可使用的介质上,诸如驻留存储设备、智能卡或其它可移动存储设备,或传送设备,从而根据实施例来制作计算机程序产品和制造品。照此,如本文中使用的术语“制造品”和“计算机程序产品”旨在涵盖永久性地或临时性地存在在任何计算机可以使用的非短暂性的介质上的计算机程序。
如上所指出的,存储器/存储设备包含但不限制于磁盘、光盘、可移动存储设备(诸如智能卡、订户身份模块(Subscriber Identification Module,SIM)、无线标识模块(Wireless Identification Module,WIM))、半导体存储器(诸如随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read Only Memory,PROM))等。传送介质包含但不限于经由无线通信网络、互联网、内部网、基于电话/调制解调器的网络通信、硬连线/电缆通信网络、卫星通信以及其它固定或移动网络系统/通信链路的传输。
虽然已经公开了特定的示例实施例,但是本领域的技术人员将理解的是,在不背离本发明的精神和范围的情况下,能够对特定示例实施例进行改变。
以上参考附图,基于实施方式说明了本发明,但本发明并非限定于上述的实施方式,根据布局需要等将各实施方式及各变形例的部分构成适当组合或置换后的方案,也包含在本发明的范围内。另外,还可以基于本领域技术人员的知识适当重组各实施方式的组合和处理顺序,或者对各实施方式施加各种设计变更等变形,被施加了这样的变形的实施方式也可能包含在本发明的范围内。
本发明虽然已详细描述了各种概念,但本领域技术人员可以理解,对于那些概念的各种修改和替代在本发明公开的整体教导的精神下是可以实现的。本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
Claims (6)
1.一种大数据运算加速系统执行运算的方法,其特征在于,所述方法应用于所述大数据运算加速系统,所述系统包括两个以上运算芯片和两个以上存储单元,所述运算芯片包括至少一个第一数据接口和两个以上第二数据接口;所述存储单元包括两个以上第三数据接口;所述第二数据接口和所述第三数据接口为串行器/解串器serdes接口;所述方法包括:
所述运算芯片通过所述至少一个第一数据接口接收外部数据;
所述运算芯片通过所述两个以上第二数据接口将所述外部数据存储到所述两个以上存储单元中的至少一个存储单元;
所述运算芯片通过所述至少一个第一数据接口接收外部控制指令;
所述运算芯片通过所述两个以上第二数据接口从所述存储单元获取数据;
所述运算芯片对数据进行运算,获得运算结果或者中间数据;
所述运算芯片通过所述两个以上第二数据接口将所述运算结果或者所述中间数据存储到所述两个以上存储单元中的至少一个存储单元;
所述运算芯片通过所述两个以上第二数据接口从所述存储单元获取所述运算结果或者所述中间数据,将所述运算结果或者所述中间数据通过所述至少一个第一数据接口向外部反馈;
所述运算芯片和所述存储单元的数量相等,所述存储单元的第三数据接口的数量和所述运算芯片的第二数据接口的数量均与所述存储单元的数量相等;
所述运算芯片和所述存储单元的数量不相等,所述存储单元的第三数据接口的数量与所述运算芯片的数量相等,所述运算芯片的第二数据接口的数量与所述存储单元的数量相等。
2.根据权利要求1所述的方法,其特征在于,所述第一数据接口为通用异步收发传输器UART接口。
3.根据权利要求1所述的方法,其特征在于,所述运算芯片之间通过所述第二数据接口和所述存储单元发送或者接收数据。
4.根据权利要求1所述的方法,其特征在于,所述两个以上运算芯片执行加密运算、卷积计算中的一种或者多种。
5.根据权利要求1所述的方法,其特征在于,所述两个以上运算芯片分别执行独立的运算,每个所述运算芯片分别计算所述运算结果。
6.根据权利要求1所述的方法,其特征在于,所述两个以上运算芯片可以执行协同运算,每个所述运算芯片根据其他运算芯片的计算结果进行运算。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/112685 WO2020087275A1 (zh) | 2018-10-30 | 2018-10-30 | 大数据运算加速系统执行运算的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112740193A CN112740193A (zh) | 2021-04-30 |
CN112740193B true CN112740193B (zh) | 2024-06-21 |
Family
ID=
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536642A (zh) * | 2018-06-13 | 2018-09-14 | 北京比特大陆科技有限公司 | 大数据运算加速系统和芯片 |
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536642A (zh) * | 2018-06-13 | 2018-09-14 | 北京比特大陆科技有限公司 | 大数据运算加速系统和芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4768386B2 (ja) | 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置 | |
CN108536642A (zh) | 大数据运算加速系统和芯片 | |
TW201918883A (zh) | 高頻寬記憶體系統以及邏輯裸片 | |
RU2417412C2 (ru) | Стандартный аналоговый интерфейс для многоядерных процессоров | |
KR101950786B1 (ko) | 분산처리용 인공신경망 연산 가속화 방법 | |
TW201633171A (zh) | 用於or鍊接匯流排之增強型資料匯流排反轉編碼技術 | |
CN209149287U (zh) | 大数据运算加速系统 | |
CN112817907B (zh) | 互联裸芯扩展微系统及其扩展方法 | |
JP6680454B2 (ja) | Lsiチップ積層システム | |
CN209784995U (zh) | 大数据运算加速系统和芯片 | |
CN109564562B (zh) | 大数据运算加速系统和芯片 | |
US7908497B2 (en) | Communication bus power state management | |
JP2004062900A (ja) | バス帯域幅を増加させるためのメモリコントローラ、これを利用したデータ伝送方法及びこれを備えるコンピュータシステム | |
CN209560543U (zh) | 大数据运算芯片 | |
CN103246623A (zh) | Soc计算设备扩展系统 | |
CN112740193B (zh) | 大数据运算加速系统执行运算的方法 | |
CN112805727A (zh) | 分布式处理用人工神经网络运算加速装置、利用其的人工神经网络加速系统、及该人工神经网络的加速方法 | |
CN209543343U (zh) | 大数据运算加速系统 | |
CN112740192B (zh) | 大数据运算加速系统及数据传输方法 | |
WO2020087275A1 (zh) | 大数据运算加速系统执行运算的方法 | |
WO2020087278A1 (zh) | 大数据运算加速系统及方法 | |
CN208298179U (zh) | 大数据运算加速系统和芯片 | |
WO2020087239A1 (zh) | 大数据运算加速系统 | |
CN104598404A (zh) | 计算设备扩展方法和装置、以及可扩展的计算系统 | |
CN109643301B (zh) | 多核芯片数据总线布线结构和数据发送的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |