CN108255775A - 用于细胞阵列计算系统的细胞阵列总线广播方法 - Google Patents

用于细胞阵列计算系统的细胞阵列总线广播方法 Download PDF

Info

Publication number
CN108255775A
CN108255775A CN201611237590.5A CN201611237590A CN108255775A CN 108255775 A CN108255775 A CN 108255775A CN 201611237590 A CN201611237590 A CN 201611237590A CN 108255775 A CN108255775 A CN 108255775A
Authority
CN
China
Prior art keywords
cellular array
neuron
bus
computing unit
unit
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
Application number
CN201611237590.5A
Other languages
English (en)
Inventor
戴瑾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Ciyu Information Technologies Co Ltd
Original Assignee
Shanghai Ciyu Information Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Ciyu Information Technologies Co Ltd filed Critical Shanghai Ciyu Information Technologies Co Ltd
Priority to CN201611237590.5A priority Critical patent/CN108255775A/zh
Publication of CN108255775A publication Critical patent/CN108255775A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/7846On-chip cache and off-chip main memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种用于细胞阵列计算系统的细胞阵列总线广播方法,其中细胞阵列计算系统包括主控制器、总线、由多个计算单元组成细胞阵列;其中,细胞阵列的每个计算单元包括用于执行神经元的计算操作的一个或多个神经元计算器、以及内存单元;所述神经元计算器操作方法包括:主控制器通过总线把指令和/或信息群发到一个矩形区域的计算单元中的神经元计算器中以及/或者把数据群发到一个矩形区域的计算单元中的内存单元的同一个相对地址中。

Description

用于细胞阵列计算系统的细胞阵列总线广播方法
技术领域
本发明涉及半导体芯片领域以及人工智能领域,尤其涉及一种用于细胞阵列计算系统的细胞阵列总线广播方法。
背景技术
人脑是一个由大量神经元复杂连接的网络。每个神经元通过大量的树突连接大量的其他神经元,接收信息,每一个连接点叫突触(Synapse)。在外部刺激积累到一定程度后,产生一个刺激信号,通过轴突传送出去。轴突有大量的末梢,通过突触,连接到大量其他神经元的树突。就是这样一个由简单功能的神经元组成的网络,实现了人类所有的智能活动。人的记忆和智能,普遍被认为存储在每一个突触的不同的耦合强度里。
神经元的反应频率不超过100Hz,现代计算机的CPU比人脑快1000万倍,但处理很多复杂问题的能力不如人脑。这促使了计算机行业开始模仿人脑。最早的对人脑的模仿,是在软件层面的。
神经网络(Neural Networks)是计算机学习中常用的算法。神经网络算法中的神经元就是一个函数,它有很多个输入,每一个输入都对应着一个权重。一般的算法是每一个输入乘以权重在相加。它输出0或1(由一个阈值决定),或者一个介于0和1之间的值。一个典型的神经网络,是把大量细胞阵列(Neuron)的输出输入连接在一起的网络,通常组织成多级架构。它内部有很多个参数(权重、阈值),学习训练的过程就是调整这些参数。这是一个需要海量计算的函数优化。这类算法,已经取得了丰富的成果,得到广泛应用。
神经网络算法中的网络都是分成很多层的。最早的网络,上一层的每一个神经元和下一层的每一个神经元连接,成为全连通的网络。全连通网络的一个问题,在于图像处理这类应用中,图像的像素很多,每一层需要的权重数量正比于像素平方,由此该方案占用内存太大,计算量更是无法应付。
在卷积神经网络中,前面的很多层不再是全连通的。每一层的神经元作为一个图像被排成阵列。下一层的每一个神经元只和这一层的一个小区域连通。小区域常常是一个边长为k的方形区域,k称为卷积网络的内核尺寸(Kernel Size),如图1所示。
卷积神经网络(Convolut ional Neural Network,CNN)因为对这个小区域的各个点加权重的求和类似卷积而得名。这一组权重在各个同一层细胞中的各个点都是一样的(既平移不变性),从而跟全连通网络相比大幅度减少权重数量,使得高分辨率的图像处理成为可能。一个卷积神经网络包括多个这样连通的层,以及其他种类的层。
随着深度学习应用的普及,人们开始开发专用的神经网络芯片。用专用电路实现神经元计算的加法和乘法,比用CPU或者GPU高效得多。
磁阻式随机访问存储器(Magnet ic Random Access Memory,MRAM)是一种新的内存和存储技术,可以像SRAM/DRAM一样快速随机读写,并且比DRAM快;还可以像闪存一样在断电后永久保留数据,并且不像NAND它可以不限次地擦写。
MRAM的经济性想当地好,单位容量占用的硅片面积比SRAM(通常作为CPU的缓存)有很大的优势,有望接近DRAM的水平。它的性能也相当好,读写时延接近最好的SRAM,功耗则在各种内存和存储技术最好。而且MRAM不像DRAM以及闪存那样与标准CMOS半导体工艺不兼容。MRAM可以和逻辑电路集成到一个芯片中。有了MRAM技术,就可以把内存、存储、计算三个功能集成到一个芯片上来。新的计算架构就有可能。
人脑的特点是大规模平行计算,不仅有大量的神经元可以同时工作,而且每个神经元和成千上万个神经元连接。对于现代集成电路技术,在一个芯片上集成大量的神经元很容易,但提供人脑那样的内部通讯带宽非常困难。比如,如果一层神经元的输入数据存在一块RAM里,就需要至少k个时钟周期才能把数据读出来,因为不同行的内存不能同时进行读写。由此,读出数据的速度,既内存带宽是计算的瓶颈。
发明内容
有鉴于现有技术的上述缺陷,在本发明中提出一种与基于细胞阵列的神经网络架构的架构,由众多兼具存储功能的神经元计算器以及密集网络连接组成。本发明的这种新架构将在大型计算、大数据处理、人工智能等领域中将得到广泛的应用。
为实现上述目的,本发明提供了一种用于细胞阵列计算系统的细胞阵列总线广播方法,其中细胞阵列计算系统包括主控制器、总线、由多个计算单元组成细胞阵列;其中,细胞阵列的每个计算单元包括用于执行神经元的计算操作的一个或多个神经元计算器、以及内存单元;所述神经元计算器操作方法包括:主控制器通过总线把指令和/或信息群发到一个矩形区域的计算单元中的神经元计算器中以及/或者把数据群发到一个矩形区域的计算单元中的内存单元的同一个相对地址中。
优选地,细胞阵列的每个计算单元包括:用于执行神经元的计算操作的一个或多个神经元计算器、内存单元、总线控制器以及内部总线;每个计算单元的总线控制器与所述总线连接;每个计算单元的内存单元是相应内部总线的从设备;每个计算单元的总线控制器和神经元计算器是相应内部总线的主设备,其中总线控制器具有更高的优先级。
优选地,主控制器读写内存单元,其中主控制器在细胞阵列的总线上广播目标地址并发送或准备读数据,总线控制器接收目标地址,如果该目标地址在计算单元中,则连接该计算单元的内存单元以执行读写操作。
优选地,主控制器与神经元计算器通信,其中在主控制器的地址空间中预留第一预留段用于与神经元计算器的通信;第一预留段用于存储目标计算单元的识别码;总线控制器在接收目标计算单元的识别码时识别出当前通信所针对的神经元计算器,连接所针对的神经元计算器以执行后续操作。
优选地,主控制器执行群发处理,其中在主控制器的地址空间中预留第二预留段用于群发给神经元计算器的指令和/或信息,群发数据时第二预留段中存储的地址中包括目标矩形区域中的起点计算单元和终点计算单元的识别码以发送指令和/或信息,其中起点计算单元和终点计算单元处于目标矩形区域的对角线上。
优选地,主控制器执行群发处理,其中在在主控制器的地址空间中预留第三预留段用于群发数据,群发数据时第三预留段中存储的地址中包括目标矩形区域中起点计算单元和终点计算单元的识别码,其中起点计算单元和终点计算单元处于对角线上,而且群发数据中含有即将发送数据的次数;在所述次数的数据传输中,每一次数据传输中包含的地址中包括计算单元在目标矩形区域中的相对地址,以指示该计算单元接收数据并存入相对地址。
优选地,把全连通神经网络中的一层分配在一个矩形区域内,使每一个计算单元执行一个或多个神经元的功能,将每个神经元的每一个输入的权重存在这个细胞的内存单元中。
优选地,当一个神经元计算器完成计算后,由主控制器从该神经元计算器的输出口读取结果,把数据广播到下一层网络所在的区域内,发送给每一个计算单元的神经元计算器。
优选地,当一个计算单元内的一个或多个神经元计算器完成计算后,将结果存入内存单元中预设的相对地址并且由主控制器读出,而且广播到下一层神经元所在的区域内,存入每一个细胞中预设的相对地址。
优选地,所述内存单元是MRAM。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
结合附图,并通过参考下面的详细描述,将会更容易地对本发明有更完整的理解并且更容易地理解其伴随的优点和特征,其中:
图1是卷积神经网络的架构。
图2是根据本发明优选实施例的细胞阵列计算系统架构的示意图。
图3是根据本发明优选实施例的细胞阵列计算系统的细胞阵列的计算单元的通信网络示意图。
图4是根据本发明优选实施例的细胞阵列计算系统的细胞阵列的计算单元的示例的示意图。
图5是根据本发明优选实施例的阵列中的网络通信的路径选择的示例的示意图。
图6是根据本发明优选实施例的起点在矩形区域的角上的示意图。
图7是根据本发明优选实施例的起点在矩形区域的边上的示意图。
图8是根据本发明优选实施例的起点在矩形区域外的示意图。
图9是根据本发明优选实施例的起点在矩形区域外的示意图。
图10是根据本发明优选实施例的通信方式的具体示例的示意图。
图11是根据本发明优选实施例的群发方式的具体示例的示意图。
图12是根据本发明优选实施例的神经元计算器操作方法的示意图。
需要说明的是,附图用于说明本发明,而非限制本发明。注意,表示结构的附图可能并非按比例绘制。并且,附图中,相同或者类似的元件标有相同或者类似的标号。
具体实施方式
<细胞阵列计算系统>
图2是根据本发明优选实施例的细胞阵列计算系统架构的示意图。
如图2所示,根据本发明优选实施例的细胞阵列计算系统包括:主控制器10(例如,所述主控制器10是主控CPU)、总线20、由多个计算单元30组成细胞阵列。
例如,所述主控制器10是片内主控制器或片外主控制器。
其中,细胞阵列的每个计算单元30包括:用于执行神经元的计算操作(例如,计算操作包括加法和乘法等,具体例如每个输入和其权重的相乘以后所有输入的相加)的一个或多个神经元计算器31、以及内存单元32。
其中,内存单元32可以采用SRAM或MRAM,其中MRAM具有非易失性且有更高的密度。因此,优选地,内存单元32是MRAM。
其中,内存单元32存储参数,例如权重参数。
其中,所述主控制器10通过所述总线20与每个计算单元30通信。具体地,例如,所述主控制器10通过所述总线20读写每个计算单元30的内存单元32中的数据,而且所述主控制器10通过所述总线20与每个计算单元30的神经元计算器31通信。
其中,每一个计算单元30中储存有其在细胞阵列中的位置(x,y)作为识别码,而且计算单元30中的软件和硬件可以读取这个识别码,以便在具体的操作中使用。
本发明的该实施例利用MRAM和逻辑电路集成在一起的特点,使密度可以达到SRAM的8-20倍的特点;其中,本发明的该实施例提出由一小块MRAM和神经元计算器组成一个细胞,由大量细胞组成一个阵列,再把这个阵列通过总线连接起来形成一个架构。这个架构极大地扩充了内存带宽,提高了芯片的总体性能。
<细胞阵列网状通信网络>
图3是根据本发明优选实施例的细胞阵列计算系统的细胞阵列的计算单元的通信网络示意图。如图3所示,细胞阵列包括通讯网络,使得细胞阵列的每个计算单元30可以与相邻计算单元30通信。
例如,每个计算单元30可以通过所述总线20读写相邻计算单元30的内存单元32中的数据,而且每个计算单元30可以通过所述总线20与相邻计算单元30的神经元计算器31通信。
每个神经元计算器31的输出通过总线20或通讯网络传送到下一级神经元计算器的输入。
在本发明的该实施例中,细胞阵列架构通过数据群发和内部网络,解决了内存和通信的瓶颈问题。而且,本发明的该实施例解决内存和通信的瓶颈,从而能够更大限度地利用了平行计算,由此发挥出更高的计算能力。
<细胞阵列总线广播方法>
主控制器10可以通过总线把指令和/或信息群发到一个矩形区域的计算单元中的神经元计算器中以及/或者把数据群发到一个矩形区域的计算单元中的内存单元的同一个相对地址中。
这样具备广播功能的总线可以通过以下方法实施:
图4是根据本发明优选实施例的细胞阵列计算系统的细胞阵列的计算单元的示例的示意图。
如图4所示,细胞阵列的每个计算单元30包括:用于执行神经元的计算操作的一个或多个神经元计算器31、内存单元32、总线控制器33以及内部总线34。
每个计算单元30的总线控制器33与所述总线20连接。
每个计算单元30的内存单元32是相应内部总线34的从设备;每个计算单元30的总线控制器33和神经元计算器31是相应内部总线34的主设备,其中总线控制器具有更高的优先级。
而且,细胞阵列总线广播方法具体可包括下述步骤:
主控制器10读写内存单元,其中主控制器10在细胞阵列的总线上广播目标地址并发送或准备读数据,总线控制器接收目标地址,如果该目标地址在计算单元中,则连接该计算单元的内存单元以执行读写操作。如果神经元计算器读写该计算单元的内存单元,则在连接该计算单元的内存单元以执行读写操作完成以后再由神经元计算器读写该计算单元的内存单元。
主控制器10与神经元计算器通信,其中在主控制器10的地址空间中预留第一预留段用于与神经元计算器的通信。第一预留段用于存储目标计算单元的识别码。总线控制器在接收目标计算单元的识别码时识别出当前通信所针对的神经元计算器,连接所针对的神经元计算器以执行指令接收、数据接收、状态读取等后续操作。
主控制器10执行群发处理,其中在主控制器10的地址空间中预留第二预留段用于群发给神经元计算器的指令和/或信息,群发数据时第二预留段中存储的地址中包括目标矩形区域中的起点计算单元和终点计算单元(起点计算单元和终点计算单元处于目标矩形区域的对角线上)的识别码,以发送指令和/或信息。
主控制器10执行群发处理,其中在在主控制器10的地址空间中预留第三预留段用于群发数据,群发数据时第三预留段中存储的地址中包括目标矩形区域中起点计算单元和终点计算单元(起点计算单元和终点计算单元处于对角线上)的识别码,而且群发数据中含有即将发送数据的次数。在所述次数的数据传输中,每一次数据传输中包含的地址中包括计算单元在目标矩形区域中的相对地址,以指示该计算单元接收数据并存入相对地址。
例如,以上协议由总线控制器实施,它负责解码总线上的地址,并执行相应的与细胞内的神经元计算器以及内存单元的数据交换。
细胞阵列总线的广播功能对于全连通神经网络能提供很大的帮助,极大地提高了大量数据的传输速度。具体操作方法如下:
把全连通神经网络中的一层分配在一个矩形区域内(对于图像处理应用,这样做更加自然),每一个细胞执行一个或多个神经元的功能。每个神经元的每一个输入的权重存在这个细胞的内存单元中。
当一个神经元计算器完成计算后,由主控制器10从其输出口读取结果,把数据广播到下一层网络所在的区域内,发送给每一个计算单元的神经元计算器。
或者当一个计算单元内的一个或多个神经元计算器完成计算后,将结果存入内存单元中预设的相对地址并且由主控制器10读出,而且广播到下一层神经元所在的区域内,存入每一个细胞中预设的相对地址。
细胞阵列总线的广播功能对于全连通神经网络能提供很大的帮助,极大地提高了大量数据的传输速度。
<细胞阵列内部网络通信方法>
图5是根据本发明优选实施例的阵列中的网络通信的路径选择的示例的示意图。
●计算单元(细胞)间的每一条信息都含有起点计算单元和终点计算单元的识别码。
●一条信息通过相邻计算单元间的连接从起点计算单元经过多次中转到达终点计算单元。
●每个计算单元内设一个网络控制器,以便在不干扰其他功能的情况下快速地中转信息。
●在标明终点计算单元的识别码的同时,信息同时标明在终点计算单元中的地址或者神经元计算器。
■在同时标明在终点计算单元中的地址的模式下,信息将被计算单元内的网络控制器直接写入该计算单元的内存单元中的相应地址。
■同时标明在终点计算单元中的神经元计算器的模式下,信息将交由细胞内的神经元计算器处理。
●每一个发送和中转信息的计算单元,其网络控制器都必须选择一个相邻的计算单元作为下一站。
■当起点计算单元和终点计算单元在一条线上时,合理的选择只有一个。
■其他情况下,有两个同样合理的选择,网络控制器可以选择一个交通相对不忙的相邻计算单元。
从一个计算单元群发信息到一个矩形区域,已经有一个简单的办法:由主控制器10读取信息再进行群发。在这里提供另外一种方式:把计算单元间的点对点通信功能被扩展到区域群发。这种方式可以支持更高的平行度,高得多的总带宽。非常适合于卷积神经网络。对于计算单元间的群发,原始发送者负责标明目标区域,仍然由系列中转完成。
●如果发送计算单元和中转计算单元在目标区域内:
■在矩形区域的角上(如图6所示)
◆如果区域的宽度是1,此时只有一个相邻计算单元可以选择为下一站中转。该计算单元的网络控制器接收该信息的数据(如果该计算单元不是消息发送者),并把信息转发到这个相邻计算单元,随后更新目标区域(长度减1)。
●如果中剩下最后一个计算单元,停止中转。
◆如果区域的长宽都大于1,此时有两个相邻计算单元可以选择为下一站中转。该计算单元的网络控制器接收该信息的数据(如果该计算单元不是消息发送者),并分别向这两个相邻计算单元转发该信息,随后更新目标区域,其中一个区域是宽度为1的矩形区域。
■在矩形区域的边上(如图7所示)
◆如果区域的宽度是1,此时有两个相邻计算单元可以选择为下一站中转。该计算单元的网络控制器接收该信息的数据(如果该细胞不是消息发送者),并分别向这两个相邻计算单元转发该信息,随后更新目标区域。
◆如果区域的宽度大于1,此时有三个相邻计算单元可以选择为下一站中转。该计算单元的网络控制器接收该信息的数据(如果该细胞不是消息发送者),并分别向这三个相邻计算单元转发该信息,随后更新目标区域,其中两个区域是宽度为1的矩形区域。
■在矩形区域的内部,此时有四个相邻计算单元可以选择为下一站中转,并且如果该计算单元只可能是消息发送者)。并分别向这四个相邻计算单元转发该信息,随后更新目标区域,其中两个区域是宽度为1的矩形区域。
●如果发送计算单元和中转计算单元在目标区域外(如图8和图9所示)。考虑到神经网络需要讲一片数据大范围地转移到另一片,这种情况下,通信网络很容易发生拥堵。这里使用一个协议,经研究可以在卷积网络中避免拥堵。
■发送信息时标明传输方向。
■每一次中转时都按传输方向传递信息,当在前进方向上的坐标进入目标区域的坐标范围后,逐次横向做宽度是1的群发。
具体实施方法(如图10所示):
1.每两个相邻计算单元之间的通信通道有一对FIFO(先入先出)组成。从一个计算单元写入和另一个计算单元输出的FIFO和相反方向的FIFO。站在其中一个计算单元的角度上,可以称它为输入和输出FIFO。
2.网络控制器和计算单元内的所有(最多4对)FIFO连接。网络控制器还和该计算单元内的MPU连接,给它发中断(如FIFO空,FIFO满,新到信息等等,信息送出等等)。
3.网络控制器发送、接收和中转信息。
4.如果某一个输入FIFO有信息进入,网络控制器将首先检查它:
●如果终点是本计算单元,那么:
■如果终点某特点相对地址,由于网络控制器具有DMA能力,将把信息直接存入内存单元的相应地址并用通知神经元计算器
■如果终点是神经元计算器,直接通知它进行处理。
细胞阵列网络群发功能对于神经网络特别是卷积神经网络能提供很大的帮助,极大地提高了大量数据的传输带宽。具体操作方法如下:
1.把神经网络中的一层分配在一个矩形区域内(对于图像处理应用,这样做更加自然),每一个计算单元执行一个或多个神经元的功能。每个神经元的每一个输入的权重存在这个计算单元的内存单元/MRAM中。
2.相邻的层部署在相邻的区域内。
当这一层所有的神经元完成计算后,把传输方向指向相邻的层所在的区域,知识所有的计算单元同步群发,如图11所示。
使用本发明实现神经网络计算的优势是显而易见的:
1.大量计算单元的平行计算极大地加速的运算速度,特别使得学习训练的速度极大提高。
2.细胞阵列内部网络通信巨大的带宽以及群发机制同样非常有助于提高速度。
3.MRAM的非易失性,使得训练成功的芯片可以直接复制作为解决特定问题的产品销售。
<神经元计算器操作方法>
神经元计算器的工作比较简单:把与之有连接的每一个上层神经元的输出,乘以相应的权重,累加起来即可。通常最后的结果还需要做一个简单的映射,比如映射到0至1之间的一个数。然而,每一个神经元有着少则几十个,多则成千上万个输入神经元,在一个网络环境中,很难保证这些输入按既定的顺序到来。需要一个快速高效的方法,对每一个输入,去查找比对,还要判定是否所有的输入都已经到达。
本发明提出一个方法解决这个问题,如图12所示:
1.使网络中的每一条神经元计算器的输入信息包括上游神经元的识别码以及输出数据。
2.使每一个神经元计算器中包含一段内容寻址存储器(SRAM、CAM),以存储所有的上游神经元的识别码。这种内存单元可以一次完成输入与所有识别码的比对,发生符合的识别码时产生一个输出。
3.针对每一条输入,将输入的神经元计算器的识别码与上述存储器中的内容进行比对;根据比对结果中符合的识别码找到与所述输入相应的权重,将每个权重与输入相乘以得到乘积,并且对所有乘积进行累加以得到累加信号。例如,一种找地址的实现方法是:将权重地址存储在于其识别码相应的地址。
4.每次在存储在上述存储器中的识别码与某一个输入比对发生符合时,输出一个符合信号,而且根据所有的符合信号产生完成信号。有两种实现方法:
a.所有的识别码发生符合时,输出高电位表示符合。所有的符合信号接到一个NAND门,NAND门输出低电位时表示完成。
b.使用计数器,初始化计数器使得计数器的计数等于输入神经元总数,每发生一次符合使计数器减一,计数器归零时输出完成信号。
5.当发生完成信号时,神经元计算器将累加信号进行映射输出。
由此,能够在保证输入按既定的顺序到来的同时,提高操作速度。
<细胞阵列三维通信传输方法>
三维细胞阵列神经网络芯片可以提供更高的性能。根据本发明优选实施例的细胞阵列三维通信传输方法可包括:
将多层细胞阵列神经网络芯片(即,细胞阵列计算系统)垂直通过过硅通孔(TSV)叠合成三维芯片;
将每一层细胞阵列的总线通过过硅通孔连通起来。
使上下相邻的两个细胞阵列神经网络芯片中的计算单元通过过硅通孔进行网络连通。这样,计算单元之间的通信网络扩展成了三维通信网络。
将多层神经网络中的相邻的神经网络层部署在三维芯片中的上下相邻的细胞阵列神经网络芯片层中;当需要通过通信网络向下一层神经网络传输数据时,先通过过硅通孔进行一次垂直方向的数据传输,再利用每一层细胞阵列神经网络芯片的通信网络进行水平数据传输。
本发明优选实施例的这种模式对于卷积式神经网络尤其高效,使得几个网络传输周期就可以完成原来需要上千个周期才能完成的转运工作。
<卷积神经网络实现方法>
细胞阵列架构具有非常大的灵活性,这里提供另外一种卷积神经网络实现方法:
1.将一层卷积神经网络按该层卷积神经网络的内部位置关系部署在细胞阵列的一个矩形区域里。
2.通过细胞阵列总线广播方法逐个地把权重发送给矩形区域中各个神经元所在的计算单元,存入该计算单元的内存中。(卷积神经网络的权重具有平移不变性,每个神经元从不同临近细胞输入所对应的权重是不同的,但所有神经元使用同一组权重。非常适合使用广播机制发送)。
3.针对该层卷积神经网络,接受输入进行神经元计算(神经元计算包括:将每个输入和其对应的权重相乘,然后对所有乘积进行求和),将每个神经元的输出暂时保持在神经元计算内。
4.通过细胞阵列总线广播方法把下一层卷积神经网络(前面提到的该层卷积神经网络的下一层卷积神经网络)的权重发送到所述矩形区域的计算单元内。
5.利用细胞阵列中的细胞阵列网状通信网络把上一层神经元(前面提到的该层卷积神经网络的上一层神经元)的输出转送到预定临近区域中的需要该输出的计算单元内。(卷积神经网络中,每个神经元的只输出到临近的一个小区域的神经元,非常适合使用细胞阵列网状通信网络扩散。只需要少数几个时钟周期就可以完成所有的数据交换)
6.使用新的权重(下一层卷积神经网络的权重)和上一层神经元的输出,进行下一层卷积神经网络的计算。
7.如果下面几层网络还是卷积网络,仍然可以照此依次进行。
这种方法的优点是:
1.如果输入的图像很大,而卷积网络通常有十几层,将占用大量硬件和内存资源。这种方法使用同一块硬件进行不同层的计算,极大地节省了硬件资源。
2.利用细胞阵列网状通信网络,不同层之间的数据交换非常高效。
上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (10)

1.一种用于细胞阵列计算系统的细胞阵列总线广播方法,其中细胞阵列计算系统包括主控制器、总线、由多个计算单元组成细胞阵列;其中,细胞阵列的每个计算单元包括用于执行神经元的计算操作的一个或多个神经元计算器、以及内存单元;其特征在于所述神经元计算器操作方法包括:主控制器通过总线把指令和/或信息群发到一个矩形区域的计算单元中的神经元计算器中以及/或者把数据群发到一个矩形区域的计算单元中的内存单元的同一个相对地址中。
2.如权利要求1所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,细胞阵列的每个计算单元包括:用于执行神经元的计算操作的一个或多个神经元计算器、内存单元、总线控制器以及内部总线;每个计算单元的总线控制器与所述总线连接;每个计算单元的内存单元是相应内部总线的从设备;每个计算单元的总线控制器和神经元计算器是相应内部总线的主设备,其中总线控制器具有更高的优先级。
3.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,主控制器读写内存单元,其中主控制器在细胞阵列的总线上广播目标地址并发送或准备读数据,总线控制器接收目标地址,如果该目标地址在计算单元中,则连接该计算单元的内存单元以执行读写操作。
4.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,主控制器与神经元计算器通信,其中在主控制器的地址空间中预留第一预留段用于与神经元计算器的通信;第一预留段用于存储目标计算单元的识别码;总线控制器在接收目标计算单元的识别码时识别出当前通信所针对的神经元计算器,连接所针对的神经元计算器以执行后续操作。
5.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,主控制器执行群发处理,其中在主控制器的地址空间中预留第二预留段用于群发给神经元计算器的指令和/或信息,群发数据时第二预留段中存储的地址中包括目标矩形区域中的起点计算单元和终点计算单元的识别码以发送指令和/或信息,其中起点计算单元和终点计算单元处于目标矩形区域的对角线上。
6.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,主控制器执行群发处理,其中在在主控制器的地址空间中预留第三预留段用于群发数据,群发数据时第三预留段中存储的地址中包括目标矩形区域中起点计算单元和终点计算单元的识别码,其中起点计算单元和终点计算单元处于对角线上,而且群发数据中含有即将发送数据的次数;在所述次数的数据传输中,每一次数据传输中包含的地址中包括计算单元在目标矩形区域中的相对地址,以指示该计算单元接收数据并存入相对地址。
7.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,把全连通神经网络中的一层分配在一个矩形区域内,使每一个计算单元执行一个或多个神经元的功能,将每个神经元的每一个输入的权重存在这个细胞的内存单元中。
8.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,当一个神经元计算器完成计算后,由主控制器从该神经元计算器的输出口读取结果,把数据广播到下一层网络所在的区域内,发送给每一个计算单元的神经元计算器。
9.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,当一个计算单元内的一个或多个神经元计算器完成计算后,将结果存入内存单元中预设的相对地址并且由主控制器读出,而且广播到下一层神经元所在的区域内,存入每一个细胞中预设的相对地址。
10.如权利要求1或2所述的用于细胞阵列计算系统的细胞阵列总线广播方法,其特征在于,所述内存单元是MRAM。
CN201611237590.5A 2016-12-28 2016-12-28 用于细胞阵列计算系统的细胞阵列总线广播方法 Pending CN108255775A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611237590.5A CN108255775A (zh) 2016-12-28 2016-12-28 用于细胞阵列计算系统的细胞阵列总线广播方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611237590.5A CN108255775A (zh) 2016-12-28 2016-12-28 用于细胞阵列计算系统的细胞阵列总线广播方法

Publications (1)

Publication Number Publication Date
CN108255775A true CN108255775A (zh) 2018-07-06

Family

ID=62719782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611237590.5A Pending CN108255775A (zh) 2016-12-28 2016-12-28 用于细胞阵列计算系统的细胞阵列总线广播方法

Country Status (1)

Country Link
CN (1) CN108255775A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090129172A1 (en) * 2007-11-19 2009-05-21 Spansion Llc High reliable and low power static random access memory
CN102253921A (zh) * 2011-06-14 2011-11-23 清华大学 一种动态可重构处理器
CN102665049A (zh) * 2012-03-29 2012-09-12 中国科学院半导体研究所 基于可编程视觉芯片的视觉图像处理系统
CN105556543A (zh) * 2013-09-25 2016-05-04 高通股份有限公司 针对神经模型的群组标签的实现方案的方法和装置
CN105718993A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105718379A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞间群发通信方法
CN105718990A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞之间的通信方法
CN105740946A (zh) * 2015-07-29 2016-07-06 上海磁宇信息科技有限公司 一种应用细胞阵列计算系统实现神经网络计算的方法
US20160342893A1 (en) * 2015-05-21 2016-11-24 Google Inc. Rotating data for neural network computations
CN106203619A (zh) * 2015-05-29 2016-12-07 三星电子株式会社 数据优化的神经网络遍历

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090129172A1 (en) * 2007-11-19 2009-05-21 Spansion Llc High reliable and low power static random access memory
CN102253921A (zh) * 2011-06-14 2011-11-23 清华大学 一种动态可重构处理器
CN102665049A (zh) * 2012-03-29 2012-09-12 中国科学院半导体研究所 基于可编程视觉芯片的视觉图像处理系统
CN105556543A (zh) * 2013-09-25 2016-05-04 高通股份有限公司 针对神经模型的群组标签的实现方案的方法和装置
US20160342893A1 (en) * 2015-05-21 2016-11-24 Google Inc. Rotating data for neural network computations
CN106203619A (zh) * 2015-05-29 2016-12-07 三星电子株式会社 数据优化的神经网络遍历
CN105718993A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中的通信方法
CN105718379A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞间群发通信方法
CN105718990A (zh) * 2015-07-29 2016-06-29 上海磁宇信息科技有限公司 细胞阵列计算系统以及其中细胞之间的通信方法
CN105740946A (zh) * 2015-07-29 2016-07-06 上海磁宇信息科技有限公司 一种应用细胞阵列计算系统实现神经网络计算的方法

Similar Documents

Publication Publication Date Title
CN106022468B (zh) 人工神经网络处理器集成电路及该集成电路的设计方法
JP6714690B2 (ja) 情報処理システム、情報処理システムの運用方法、および機械学習演算器
CN105729491B (zh) 机器人任务的执行方法、装置及系统
CN105608490B (zh) 细胞阵列计算系统以及其中的通信方法
CN105740946B (zh) 一种应用细胞阵列计算系统实现神经网络计算的方法
CN108256640A (zh) 卷积神经网络实现方法
CN105718996B (zh) 细胞阵列计算系统以及其中的通信方法
KR20200037748A (ko) 칩 장치 및 관련 제품
CN107918794A (zh) 基于计算阵列的神经网络处理器
CN109416756A (zh) 卷积器及其所应用的人工智能处理装置
CN110390388A (zh) 具有3d堆叠结构的神经形态电路和包括其的半导体装置
CN107392309A (zh) 一种基于fpga的通用定点数神经网络卷积加速器硬件结构
CN110020620A (zh) 一种大姿态下的人脸识别方法、装置及设备
CN112464784A (zh) 一种基于混合并行的分布式训练方法
CN105469143B (zh) 基于神经网络动态特征的片上网络资源映射方法
CN105719000A (zh) 一种神经元硬件结构及用这种结构模拟脉冲神经网络的方法
CN102279386B (zh) 基于fpga的sar成像信号处理数据转置方法
CN105518625A (zh) 具有高带宽存储器接口的计算硬件
US10037391B2 (en) Semiconductor device
CN108256637A (zh) 一种细胞阵列三维通信传输方法
CN108647776A (zh) 一种卷积神经网络卷积膨胀处理电路及方法
CN107766932A (zh) 基于神经网络的图像处理方法及装置
CN109496319A (zh) 人工智能处理装置硬件优化方法、系统、存储介质、终端
US20150325033A1 (en) Efficient Inter-processor Communication in Ray Tracing
CN108256641A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180706