CN105718994A - 细胞阵列计算系统 - Google Patents
细胞阵列计算系统 Download PDFInfo
- Publication number
- CN105718994A CN105718994A CN201510456254.9A CN201510456254A CN105718994A CN 105718994 A CN105718994 A CN 105718994A CN 201510456254 A CN201510456254 A CN 201510456254A CN 105718994 A CN105718994 A CN 105718994A
- Authority
- CN
- China
- Prior art keywords
- cell
- array
- cellular array
- data
- memory
- 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.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
一种细胞阵列计算系统,包括:主控CPU、细胞阵列、细胞阵列总线和存储单元阵列;细胞阵列是由一个以上二维细胞阵列叠合而成的三维细胞阵列,二维细胞阵列由一个以上兼具计算和存储功能的细胞组成,每个细胞包括微处理器和非易失随机存储器;至少一个二维细胞阵列与对应的一个或一个以上存储单元阵列叠合形成三维结构,每个存储单元阵列中的存储单元与相应二维细胞阵列中的细胞一一对应相连,以配合细胞共同存储软件的指令代码和需要永久保存的数据;主控CPU通过细胞阵列总线与细胞阵列中的每个细胞进行通信;细胞阵列中相邻细胞间有通信接口,能相互发送数据。本发明能克服现有计算机架构因CPU与内存、存储之间的通信瓶颈,提升系统整体性能。
Description
技术领域
本发明涉及计算机及计算机应用技术领域,特别涉及一种细胞阵列计算系统。
背景技术
通常来说,一台计算机主要包括三个核心部分:中央处理器(CPU,CentralProcessingUnit)、内存和存储。
经过一些世界顶级公司的不懈努力,CPU已经演变成极度复杂的半导体芯片。顶级的CPU内核内部的MOS管数目可以超过一亿个。目前的产业趋势是受制于功耗,CPU的运行频率已经很难再提高。已经极度复杂的现代CPU,运行效率同样很难再提高。新的CPU产品,越来越多地朝多核方向演进。
在内存方面,目前居于统治地位的是动态随机存取存储器(DRAM,DynamicRandomAccessMemory)技术。DRAM可以快速随机读写,但却不能在断电的情况下保持内容。实际上,即使在通电的情况下,它也会由于内部用于储存信息的电容器的漏电而丢失信息,必须周期性地自刷新。
在存储方面,NAND闪存技术正在逐步取代传统硬盘。闪存所依赖的浮置栅极(floatinggate)技术,虽然能够在断电的情况下保持内容,但写入(将‘1’改写为‘0’)的速度很慢,擦除(将‘0’改写为‘1’)的速度更慢,无法像DRAM那样用于对计算的直接支持。它被制作成块设备(blockdevice),必须整块一起擦除,一个块(block)包含很多页(page),擦除后每页可以进行写入操作。NAND的另外一个问题是具有有限的寿命。
DRAM和NAND闪存,以及CPU的逻辑电路,虽然都是基于CMOS半导体工艺生产的,但这三者的工艺彼此并不兼容。于是,计算机的三个核心部分无法在一个芯片上共存,这深刻地影响了现代计算机的架构。
现有技术中的计算机架构如图1所示,图1中示出多个CPU内核,分别为CPU1、CPU2、CPU3、……、CPUn,每个CPU内核一般具有相应的一级缓存(L1Cache),根据需要还可以进一步为每个CPU内核配备相应的二级缓存(L2Cache)、三级缓存(L3Cache)。DRAM与各个CPU内核之间通过双倍速率(DDR,DoubleDataRate)接口进行通信,硬盘(HD,HardDisk)或固态硬盘(SSD,SolidStateDrives)与各个CPU内核之间则通过外围设备接口进行通信。
一方面,CPU在向多核的方向发展,另一方面内存和存储都在另外的芯片里。多核CPU吞吐信息量成比例增加,与内存、存储的通信就越来越成为系统性能的瓶颈。为了缓解通信瓶颈,CPU不得不采用越来越大的多级缓存。缓存是把内存中的内容复制,通常是用成本比DRAM高得多但速度更快的静态随机存取存储器(SRAM,StaticRandomAccessMemory)设计的。这样的架构,费效比非常的差。半导体芯片的成本由其硅片的面积决定,而传统计算机架构带来的性能提升与其硅片面积的增加远远不成比例。
发明内容
本发明要解决的问题是现有技术中的计算机架构因CPU与内存、存储之间存在的通信瓶颈而影响计算机整体性能的提升,并使费效比较差。
为解决上述问题,本发明技术方案提供一种细胞阵列计算系统,包括:主控CPU、细胞阵列、细胞阵列总线和存储单元阵列;所述细胞阵列是由一个以上二维细胞阵列叠合而成的三维细胞阵列,所述二维细胞阵列由一个以上兼具计算和存储功能的细胞组成,其中每一个细胞包括微处理器(MPU,MicroProcessingUnit)和非易失(NV,NotVolatile)随机存储器;所述非易失随机存储器用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;所述存储单元阵列是由一个以上存储单元组成的二维阵列,至少一个二维细胞阵列与对应的一个或一个以上存储单元阵列叠合形成三维结构,每个存储单元阵列中的存储单元与相应的二维细胞阵列中的细胞一一对应地相连;所述存储单元用于存储软件的指令代码和需要永久保存的数据;每一个细胞储存各自在所述细胞阵列中的位置作为身份识别号(ID,identification)以供细胞中的软件或硬件读取;所述主控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
可选的,所述细胞阵列中的细胞还包括与所述微处理器相连的存储控制器,用于对与本细胞相连的存储单元进行数据存储访问控制。
可选的,相同数量的存储单元阵列组成一个存储单元阵列组,所述存储单元阵列组的数量与所述二维细胞阵列的数量相同,各个存储单元阵列组与各个二维细胞阵列一一对应地叠合形成三维结构。
可选的,所述细胞阵列计算系统还包括内存单元阵列,所述内存单元阵列是由一个以上内存单元组成的二维阵列,至少一个二维细胞阵列与对应的一个或一个以上内存单元阵列叠合形成三维结构,每个内存单元阵列中的内存单元与相应的二维细胞阵列中的细胞一一对应地相连;所述内存单元用于所述微处理器计算时所涉及数据的随机存取。
可选的,相同数量的内存单元阵列组成一个内存单元阵列组,所述内存单元阵列组的数量与所述二维细胞阵列的数量相同,各个内存单元阵列组与各个二维细胞阵列一一对应地叠合形成三维结构。
可选的,所述细胞阵列中的细胞还包括总线控制器和细胞内部总线,所述细胞内部总线连接所述微处理器、非易失随机存储器以及与本细胞相对应的内存单元,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述主控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述主控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述非易失随机存储器或与本细胞相对应的内存单元进行数据的读写操作。
可选的,所述微处理器中集成有浮点计算处理器(FPU,FloatPointUnit)和图像处理器中的至少一种。
可选的,所述非易失随机存储器为磁性随机存储器(MRAM,MagneticRandomAccessMemory)。
可选的,一个二维细胞阵列在一个硅片上。
可选的,所述内存单元阵列为MRAM、DRAM或SRAM硅片。
可选的,所述存储单元阵列为闪存硅片。
可选的,分别位于相邻两个二维细胞阵列的相邻细胞之间以及所述存储单元与所述二维细胞阵列中相对应的细胞之间都通过过硅通孔建立通信联系。
可选的,所述细胞阵列中的任意两个细胞之间能进行通信,参与细胞间通信的细胞包含起点细胞、终点细胞和中转细胞,所述起点细胞为向所述终点细胞发出数据的细胞,所述终点细胞为最终接收所述起点细胞所发数据的细胞,所述中转细胞为沿细胞间通信路径依次相邻且通过所述通信接口中转所述起点细胞所发数据的细胞,所述细胞间通信路径是由所述起点细胞、中转细胞和终点细胞所构成的数据收发路径。
可选的,所述细胞阵列中的任一细胞还能作为所述起点细胞向目标区域内的所有细胞进行群发通信,参与所述群发通信且位于目标区域内的细胞作为所述起点细胞、或作为所述终点细胞、或同时作为所述中转细胞和终点细胞,参与所述群发通信且位于目标区域外的细胞作为所述起点细胞或中转细胞。
可选的,所述细胞阵列中还设有至少一个专职输出细胞,所述专职输出细胞作为所述终点细胞接收并存储其他细胞给所述主控CPU的输出数据,并以中断信号通知所述主控CPU读取所述输出数据。
可选的,所述细胞阵列中的细胞还包括与所述微处理器相连的网络控制器,所述网络控制器用于在细胞间通信时对发出的数据、中转的数据或者最终接收的数据进行收发控制,还用于向所述微处理器发送中断信号。
可选的,所述细胞阵列中的细胞还包括与所述网络控制器相连的一组或一组以上先入先出队列,各组先入先出队列分别对应一个与本细胞相邻的细胞,每一组先入先出队列包括输入先入先出队列和输出先入先出队列,所述输入先入先出队列用于存储输入本细胞进行中转的数据或最终接收的数据,所述输出先入先出队列用于存储从本细胞输出的需进行中转的数据或本细胞向其他细胞发出的数据。
可选的,所述主控CPU与所述细胞阵列和所述细胞阵列总线集成于一个芯片中。
可选的,所述主控CPU作为独立的芯片,通过标准的内存接口与由所述细胞阵列和所述细胞阵列总线组成的芯片进行通信。
与现有技术相比,本发明的技术方案至少具有以下优点:
通过将一个以上兼具独立计算和存储功能的单元(称为“细胞”)组成二维细胞阵列,再将一个以上二维细胞阵列叠合形成三维细胞阵列,其中每一个细胞包括微处理器和非易失随机存储器,所述非易失随机存储器既能支持所述微处理器进行计算时所涉及数据的随机存取,也能支持存储软件的指令代码和需要永久保存的数据,使内存、存储、计算三个功能集成到每个细胞中,并使各细胞之间形成密集的通讯网络,一方面,主控CPU能通过细胞阵列总线与细胞阵列中的每一个细胞进行通信,另一方面,细胞阵列中的相邻细胞之间也能相互发送数据,由此能通过数据群发和内部网络,克服现有计算机架构因CPU与内存、存储之间存在的通信瓶颈,从而提升计算系统的整体性能,并能使费效比较佳;此外,再凭借由一个以上存储单元组成的存储单元阵列,并将至少一个二维细胞阵列与对应的一个或一个以上存储单元阵列叠合形成三维结构,以及使每个存储单元阵列中的存储单元与相应的二维细胞阵列中的细胞一一对应地相连,所述存储单元用于存储软件的指令代码和需要永久保存的数据,如此便能以较低的成本扩展细胞阵列中各个细胞的存储空间,提高各个细胞的数据存储能力。
进一步地,凭借由一个以上内存单元组成的内存单元阵列,将至少一个二维细胞阵列与对应的一个或一个以上内存单元阵列叠合形成三维结构,以及使每个内存单元阵列中的内存单元与相应二维细胞阵列中的细胞一一对应地相连,所述内存单元用于所述微处理器计算时所涉及数据的随机存取,如此便能以较低的成本扩展细胞阵列中各个细胞的内存空间,提高细胞中微处理器的处理效率。
通过细胞阵列中相邻细胞之间的通信接口,实现相邻细胞之间对于数据的多次中转,使细胞阵列中的任意两个细胞之间不依靠主控CPU便能进行通信,提高了细胞间通信的效率,也降低了主控CPU的处理负担,从而能进一步提升计算系统的整体性能。
通过将细胞间的点对点通信功能扩展到区域群发,可以支持更高的平行度,获得高得多的总带宽,从而进一步提升计算系统的整体性能。
通过在细胞阵列中设置专职输出细胞,以所述专职输出细胞作为所述终点细胞接收并存储其他细胞给主控CPU的输出数据,并以中断信号的方式通知所述主控CPU读取所述输出数据,如此能够在只有少数几个细胞需要向主控CPU输出数据时提高主控CPU读取输出数据的效率。
本发明解决了CPU和内存之间的通信瓶颈问题。这样,在相同的硅片面积下,大量微型MPU的处理能力,在很多问题上远超少数几个顶级CPU的处理能力,而耗电则低得多。
本发明使得计算机的架构更接近人脑,为未来的人工智能算法提供了强有力的引擎。
附图说明
图1是现有技术中计算机架构的示意图;
图2是本发明实施例一提供的细胞阵列计算系统的结构示意图;
图3是本发明实施例一的一种相邻细胞之间通信方式的示意图;
图4是本发明实施例一的另一种相邻细胞之间通信方式的示意图;
图5是本发明实施例一的细胞的结构示意图;
图6是应用细胞阵列计算系统以流水线的方式计算MonteCarlo积分的示意图;
图7是本发明实施例一的细胞阵列中进行细胞间通信的细胞的结构示意图;
图8是本发明实施例一的细胞阵列中细胞间通信的路径选择的示意图;
图9是本发明实施例一的专职输出细胞的实施过程示意图;
图10是本发明实施例一的细胞阵列中起点细胞在目标区域角上的细胞群发示意图;
图11是本发明实施例一的细胞阵列中起点细胞在目标区域边上的细胞群发示意图;
图12是本发明实施例一的细胞阵列中起点细胞在目标区域内部的细胞群发示意图;
图13是本发明实施例一的细胞阵列中起点细胞在目标区域外的细胞群发示意图;
图14是本发明实施例二提供的细胞阵列计算系统的结构示意图;
图15是本发明实施例三提供的细胞阵列计算系统的结构示意图;
图16是本发明实施例四提供的细胞阵列计算系统的结构示意图;
图17是本发明实施例五提供的细胞阵列计算系统的结构示意图;
图18是本发明实施例六提供的细胞阵列计算系统的结构示意图;
图19是本发明实施例七提供的细胞阵列计算系统的结构示意图。
具体实施方式
现有技术的计算机架构由于CPU与内存、存储之间存在通信瓶颈,从而影响计算机整体性能的提升,并使费效比较差。
本申请发明人经过研究后考虑,若是把内存、存储、计算三个功能集成到一个芯片上来,形成相对简单但兼具独立计算和存储功能的单元,并使大量此类单元之间形成密集的通讯网络,以此实现数据广播/群发功能和能够大规模平行传输数据的内部网络,便能开发出一种与人脑存在相似之处的计算架构,这相当于把大量的微型计算机做在一个芯片上。
为此,本发明技术方案提供一种与人脑结构相似的计算架构(本发明技术方案中将其称为“细胞阵列计算系统”),该计算架构由众多结构相对简单,兼具存储和计算功能,又有着密集网络连接的单元(本发明技术方案中将其称为“细胞”)组成。这种新计算架构将在大型计算、大数据处理、人工智能等领域中得到广泛的应用。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例作详细的说明。
实施例一
如图2所示,本实施例提供的细胞阵列计算系统包括:主控CPU、细胞阵列和细胞阵列总线;所述细胞阵列是所述细胞阵列计算系统中的主体,它是由一个以上兼具计算和存储功能的细胞组成的二维阵列,其中每一个细胞包括微处理器(MPU)和非易失随机存储器(图2中以MRAM为例);所述非易失随机存储器用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;所述主控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
需要说明的是,在本实施例中,所述非易失随机存储器是以MRAM为例进行说明。在其他实施例中,随着非易失随机存储技术的进一步发展与成熟,所述非易失随机存储器也可以采用另外几种有潜力的技术实现,例如:相变随机存储器(PCRAM,PhaseChangeRandomAccessMemory)、阻变式随机存储器(ResistiveRandomAccessMemory)、铁电随机存储器(FeRAM,FerroelectricRandomAccessMemory)、铁电动态随机存储器(FEDRAM,FerroelectricDynamicRandomAccessMemory)等等。
MRAM是一种新的内存和存储技术,可以像SRAM/DRAM一样快速随机读写,并且比DRAM快;还可以像闪存一样在断电后永久保留数据,并且不像NAND闪存,MRAM可以不限次地擦写,使用寿命较长。此外,MRAM的经济性想当地好,单位容量占用的硅片面积比SRAM(通常作为CPU的缓存)有很大的优势,有望接近DRAM的水平。它的性能也相当好,读写时延接近最好的SRAM,功耗则在各种内存和存储技术最好。而且MRAM不像DRAM以及Flash那样与标准CMOS半导体工艺不兼容,MRAM可以和逻辑电路集成到一个芯片中。通过采用MRAM技术,就可以把内存、存储、计算三个功能集成到一个芯片上来,使所述细胞阵列计算系统的实现便能成为可能。
本实施例中,所述微处理器具有通常CPU的功能,还可以根据具体的应用场景添加浮点计算处理器、图像处理器等单元,因此,所述微处理器中可以集成有浮点计算处理器和图像处理器中的至少一种。
在实际实施时,所述主控CPU与所述细胞阵列和所述细胞阵列总线可以集成于一个芯片中,所述主控CPU也可以作为独立的芯片,通过标准的内存接口与由所述细胞阵列和所述细胞阵列总线组成的芯片进行通信。当所述主控CPU与所述细胞阵列之间采用标准的内存接口进行通信时,则主控CPU可以采用通用的CPU芯片实现,更易于所述细胞阵列计算系统的实施。
本实施例中,每一个细胞储存各自在细胞阵列中的位置作为ID,所述位置可以采用平面直角坐标系中第一象限的坐标表示方式,若(x,y)表示某个细胞在细胞阵列中的位置,则(x,y)可以作为ID存储在该细胞中,细胞中的软件和硬件可以读取这个ID,在具体的操作中使用。
本实施例中,所述主控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况:
按地址读写所述细胞阵列中任一细胞的非易失随机存储器;
将数据广播到所述细胞阵列中目标区域内每一个细胞的非易失随机存储器,并写入该目标区域内每一个细胞的非易失随机存储器中相同的相对地址;
给所述细胞阵列中任一细胞的微处理器发送指令(包括开始、暂停)、发送数据或读取状态;
给该目标区域内所有细胞的微处理器广播指令。
当然,在其他实施例中,所述主控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信也可以是上述情况中的一种或多种组合。
需要说明的是,本发明实施例中的“目标区域”是指由所述主控CPU或所述细胞阵列中的任一细胞选择一个以上存在相邻关系的细胞所构成的区域,该区域内的细胞是主控CPU或细胞阵列中的任一细胞广播/群发数据或指令的对象。本实施例中,所述目标区域具体以矩形区域(a≤x≤b,c≤y≤d,其中a、b分别是该矩形区域在平面直角坐标系中x轴方向的边界坐标,c、d分别是该矩形区域在平面直角坐标系中y轴方向的边界坐标)为例进行说明。在其他实施例中,所述目标区域也可以是其他形状构成的区域,例如菱形区域、三角形区域、六边形区域等等。
此外,本发明实施例中“广播”的概念不同于“群发”的概念,前者可以是发一遍数据或指令使得所有的对象都能接收到,而后者则可以是分很多遍发给不同的对象。
除了通过主控CPU对所述细胞阵列中任一细胞(包括细胞中的微处理器或非易失随机存储器)进行广播,在所述细胞阵列内,还有一个通信网络,该通信网络能够使得一个细胞可以在其MPU的控制下,向与它相邻的细胞发送数据。如图3所示,在一平面中,任一细胞可以与其上、下、左、右四个方向的相邻细胞进行通信。当然,相邻细胞之间通信方式的概念并不仅仅局限于“上、下、左、右四个方向”,在线路布局能够支持的情况下,也可以是“上、下、左、右、左上、右上、左下、右下八个方向”,如图4所示,任一细胞可以与其上、下、左、右、左上、右上、左下、右下八个方向的相邻细胞进行通信。
如图5所示,在本实施例中,所述细胞阵列中的细胞具体还可以包括总线控制器和细胞内部总线,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述主控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述主控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述非易失随机存储器进行数据的读写操作。
本领域技术人员知晓,一个比较简单而性能很好的CPU,如ARMCotexM0,只有5万个左右的MOS管,即使适度增加FPU功能,也比顶级CPU的上亿个MOS管小得多,提升CPU性能带来的面积(成本)增加是不成比例的。把一个大CPU用许多小CPU替换,在总成本一样的情况下,总计算能力一定提高很多倍。然而传统计算机架构受制于通信瓶颈,使用大量CPU内核带来的实际性能提升非常有限。
而本发明技术方案提供的细胞阵列计算系统通过数据广播/群发和内部网络,解决了通信瓶颈的问题,从而提升计算系统的整体性能,并能使费效比较佳,对此将在后续的应用实例中更清楚地看到这一点。
初步的研究表明,如果使用类似于CortexM0的MPU,配合32KB的内存,组成一个细胞。使用40纳米的工艺,可以把3000个这样的细胞做在一个芯片上,这是非常强大的计算能力。进一步的研究表明,使用这种方法,可以在同样的硅片面积上超越当代顶级CPU的计算能力(一般用每秒浮点运算次数(FLOPS,floating-pointoperationspersecond)测量)。由于本发明技术方案的细胞阵列计算系统不再面临与内存接口的瓶颈,在解决很多实际问题中,表现的会更好。
基于上述细胞阵列计算系统,本实施例还提供一种上述细胞阵列计算系统中的通信方法,包括:主控CPU读写非易失随机存储器的操作、主控CPU与微处理器之间的通信操作、主控CPU的广播操作以及细胞阵列内相邻细胞之间的通信操作;
所述主控CPU读写非易失随机存储器的操作具体包括:所述细胞阵列中的任一细胞接收所述主控CPU在所述细胞阵列总线上广播的目标地址,若判断出所述目标地址在本细胞中,则连接该细胞的非易失随机存储器以使所述主控CPU进行数据的读写操作。
所述主控CPU与微处理器之间的通信操作具体包括:在系统地址空间中预留第一特殊地址段用于所述主控CPU与微处理器之间的通信并存储目标细胞的ID,若所述细胞阵列中任一细胞接收所述第一特殊地址段时识别出是与本细胞的微处理器的通信,则连接该细胞的微处理器完成后续的指令接收、数据接收和状态读取操作。
需要说明的是,所述系统地址空间并不仅仅局限于由细胞阵列的各个细胞中包含的非易失随机存储器组成的地址空间总和,因为连接细胞阵列总线的存储器可能不止是细胞阵列的各个细胞中包含的非易失随机存储器,完全可能还存在其他类型的存储器与细胞阵列总线相连,供所述主控CPU访问。因此,所述主控CPU需要根据细胞的ID去标识其准备访问的细胞(此时该细胞在本实施例中称为“目标细胞”)。
所述主控CPU的广播操作具体包括:在系统地址空间中预留第二特殊地址段用于所述主控CPU广播指令,所述第二特殊地址段存有能帮助确定所述细胞阵列中目标区域的范围的各个细胞的ID,若所述细胞阵列中任一细胞接收所述第二特殊地址段后识别出本细胞在所述目标区域中,则连接该细胞的微处理器以传递所述主控CPU发送的指令或数据、状态读取,或者通过连接该细胞的非易失随机存储器进行数据的读写操作。
下面以所述目标区域具体是矩形区域为例对所述主控CPU的广播操作举例说明。在系统地址空间中预留一段用做广播指令,这个地址中的一段用于存储目标矩形区域中起点细胞的ID。所述起点细胞是该目标矩形区域中首个被主控CPU访问的细胞,该细胞中的总线控制器接收这个特殊地址后,接收后面的一个字(word)的数据,这个数据包括目标矩形区域中与起点细胞对角的细胞的ID。总线控制器判断本细胞在该区域中,接收第二个字的数据。第二个字标明是给MPU的指令或数据,还是从非易失随机存储器中某一个相对地址开始写入。如果是前者,连接MPU,如果是后者,连接非易失随机存储器完成后面的操作。
需要说明的是,在所述第二特殊地址段的存储空间较为有限的情况下,其存储的细胞ID并不一定能完全据此确定目标区域的范围,此时接收所述第二特殊地址段之后,还需要接收后续的数据以配合所述第二特殊地址段中所存储的细胞ID共同确定目标区域的范围。
细胞阵列内相邻细胞之间的通信操作包括:所述细胞阵列中的任一细胞在其微处理器的控制下向相邻细胞发送数据。
本实施例中,每个细胞设置有一个总线控制器,与细胞阵列总线连接。细胞内部设置细胞内部总线,所述非易失随机存储器是该细胞内部总线的从设备(Slave),所述总线控制器和微处理器是主设备(Master)。
上述细胞阵列计算系统中的通信方法中涉及的“所述细胞阵列中的任一细胞判断所述目标地址是否在本细胞中”,“识别是否与本细胞的微处理器的通信”,“识别本细胞是否在所述目标区域中”,以及“连接非易失随机存储器或微处理器”均是由所述总线控制器完成的,所述总线控制器通过所述细胞内部总线连接所述非易失随机存储器。
在具体实施时,所述主控CPU对于所述细胞阵列中任一细胞的非易失随机存储器的读写操作的优先级高于该细胞内的微处理器对于相应的非易失随机存储器的读写操作。也就是说,如果某个细胞中的微处理器需要读写该细胞中的非易失随机存储器,须等主控CPU对于该细胞的非易失随机存储器的读写操作完成之后才能进行。
所述细胞阵列计算系统中的通信方法的具体实施也可以参考上述细胞阵列计算系统的实施,此处不再赘述。
此外,本实施例还提供一种应用上述细胞阵列计算系统计算MonteCarlo积分的方法。MonteCarlo积分是对随机数的求和,是在科学和工程常用到的大计算,其原理相对简单,计算过程参考如下公式。
下面将以对于这个问题的解决方法进一步展示细胞阵列计算系统的优越性。MonteCarlo积分的计算非常适合于上述细胞阵列计算系统,具体执行步骤如下:
所述主控CPU选择所述细胞阵列中全部或一个目标区域内的细胞,把被积函数F()对应的程序广播到所选择的每一个细胞的相对地址段;
所述主控CPU广播指令,使所选择细胞的微处理器从所述相对地址段开始执行被积函数F()对应的程序;
每个细胞完成积分运算后,将总和存储于约定的地址,供所述主控CPU读取后进行总求和。
本实施例中,所述被积函数F()对应的程序在开始执行时,其自带的随机数发生器读取细胞的ID作为种子,如此能够保证每个细胞产生的随机数都是不同的。
在实际实施时,几千个细胞同时开始运算,强大的运算能力完全释放,不再受到现有技术中通信瓶颈的制约,从而能更高效地完成MonteCarlo积分的计算。
在实际实施时,如果被积函数F()非常复杂,一个细胞的内存装不下,还可以通过流水线的方式解决。因此,本实施例还提供另一种应用上述细胞阵列计算系统计算MonteCarlo积分的方法,包括:
所述主控CPU选择所述细胞阵列中全部或一个目标区域内的细胞;
所述主控CPU广播一个下载程序到所选择的每一个细胞的同一段相对地址中,并广播指令使所选择细胞的微处理器从所述相对地址开始执行所述下载程序;所述下载程序将等待下一步的输入;
将被积函数对应的程序拆分成两个或两个以上的子程序,所述主控CPU广播各个子程序到所选择细胞的微处理器中;
运行所述下载程序的微处理器,根据各自所在细胞的ID选择其中一个子程序储存,使各个子程序被按序部署在依次相邻的一组细胞中;
所述主控CPU广播指令,使每一组细胞的微处理器依次执行所述被积函数对应的程序被拆分后的子程序,前一级的中间结果输送到下一级做输入;
每一组细胞完成积分运算后,将总和存储于约定的地址,供所述主控CPU读取后进行总求和。
举例来说,如图6所示,比如可以把被积函数F()拆分成f1、f2、f3三个部分(三个子程序),部署在相邻的细胞中,前一级的中间结果输送到下一级做输入。
具体地,当主控CPU广播f1、f2、f3到每一个MPU(注:不是发到内存中,是发给MPU),运行下载程序的MPU,根据自己ID在直角坐标系x轴方向的坐标x(例如以x/3的余数)选择其中一个子程序储存。这样,通过两个阶段的广播,三个子程序被按照所希望的规则被部署到了所有参与计算的细胞中。
另外,由于所述被积函数F()对应程序的执行实际上是从第一个子程序开始执行的,那么在拆分后的第一个子程序开始执行时,仍然是以其自带的随机数发生器读取细胞的ID作为种子,保证每个细胞产生的随机数都是不同的。
和传统计算机架构相比,所述细胞阵列计算系统的广播/群发功能和能够大规模平行传输数据的内部网络的优势在这里体现出来。如果用传统的多核CPU架构计算这个问题,当每个CPU自带的缓存不够时,所有的CPU都需要从和内存的接口中读取被积函数F()的代码,形成瓶颈。
本实施例中,对于细胞阵列的内部网络的实施,不但可以发送数据到相邻细胞,而且还把它扩展到可以从一个细胞发送到任何一个细胞,即能够实现细胞阵列中的细胞间通信。
具体地,所述细胞阵列计算系统的细胞阵列中的任意两个细胞之间能在不依靠主控CPU的情况下进行通信,参与细胞间通信的细胞包含起点细胞、终点细胞和中转细胞,所述起点细胞为向所述终点细胞发出数据的细胞,所述终点细胞为最终接收所述起点细胞所发数据的细胞,所述中转细胞为沿细胞间通信路径依次相邻且通过所述通信接口中转所述起点细胞所发数据的细胞,所述细胞间通信路径是由所述起点细胞、中转细胞和终点细胞所构成的数据收发路径。
通过细胞阵列中相邻细胞之间的通信接口,实现相邻细胞之间对于数据的多次中转,使细胞阵列中的任意两个细胞之间不依靠主控CPU便能进行通信,提高了细胞间通信的效率,也降低了主控CPU的处理负担,从而能进一步提升计算系统的整体性能。
需要说明的是,所述起点细胞、终点细胞和中转细胞均是相对于某一次细胞间通信过程而言的相对概念,因为某个起点细胞完全也可能作为其他细胞间通信过程中的中转细胞或终点细胞,某个终点细胞也可能作为其他细胞间通信过程中的中转细胞或起点细胞。
在具体实施时,所述细胞阵列中的细胞还可以包括与所述微处理器相连的网络控制器,所述网络控制器用于在细胞间通信时对发出的数据、中转的数据或者最终接收的数据进行收发控制,还用于向所述微处理器发送中断信号。本实施例中,通过在每个细胞内设置一个网络控制器,以便在不干扰MPU的情况下快速地中转数据,由此降低细胞中MPU的处理负担。在其他实施例中,也可以不设置所述网络控制器,而是由MPU实现数据的中转。
在本实施例中,“发出的数据”指的是所述起点细胞自身所发的数据;“中转的数据”指的是所述中转细胞中转所述起点细胞所发出的数据,该数据并非由本细胞自身所需要发出的;“最终接收的数据”指的是终点细胞所接收的数据,该数据在经过多次中转之后已到达目的地,将不再进行中转。“发出的数据”、“中转的数据”和“最终接收的数据”,就内容而言可能为相同的数据,只不过属于不同通信阶段的不同称呼。
在具体实施时,所述细胞阵列中的细胞还可以包括与所述网络控制器相连的一组或一组以上先入先出队列,各组先入先出队列分别对应一个与本细胞相邻的细胞,每一组先入先出队列包括输入先入先出队列和输出先入先出队列,所述输入先入先出队列用于存储输入本细胞进行中转的数据或最终接收的数据,所述输出先入先出队列用于存储从本细胞输出的需进行中转的数据或本细胞向其他细胞发出的数据。
若在以图3所示相邻细胞之间通信方式为例的情况下,本实施例的细胞阵列中进行细胞间通信的细胞的结构如图7所示,图7中的网络控制器分别与MPU以及4组FIFO队列相连,各组FIFO队列分别与本细胞在“二维平面的上、下、左、右四个方向”相邻的细胞一一对应,具体实施时,每两个相邻细胞之间的通信通道可以共用一组相应的FIFO队列。每组FIFO队列均包含输入FIFO和输出FIFO,站在其中一个细胞的角度上而言,输入FIFO存放从其他相邻细胞输入的数据,输出FIFO存放从本细胞向其他相邻细胞输出的数据,相邻细胞的输出FIFO对于本细胞来说属于输入FIFO,本细胞的输出FIFO对于相邻细胞来说属于输入FIFO。
需要说明的是,图7所示的细胞中对应存在4组FIFO队列,若是位于矩形的细胞阵列的4个角的细胞,则该细胞仅有两个相邻细胞,此时该细胞对应2组FIFO队列,若是位于矩形的细胞阵列的4条边的细胞,则该细胞有三个相邻细胞,此时该细胞对应3组FIFO队列。
本实施例中,网络控制器还和该细胞内的MPU连接,给它发中断信号,如FIFO空、FIFO满、新到数据、数据送出等等;MPU则可以通过网络控制器发出数据,发出的数据通常会先放入相应的一个输出FIFO队列中。
需要说明的是,图7中的细胞结构仅仅示出了与进行细胞间通信相关的模块,本领域技术人员能够理解的是,图7所示的细胞结构完全可以与图5所示的细胞结构相结合。
此外,本实施例中采用FIFO队列存储输入和输出某个细胞的数据,如此能够使细胞间通信过程中的数据中转更有效率,减少MPU的处理负荷。在其他实施例中,输入和输出某个细胞的数据也可以通过寄存器实现。
本实施例还提供一种上述细胞阵列计算系统中的通信方法,包括:所述细胞阵列中的起点细胞将向终点细胞发出的数据,按选定的发送方向发送至与所述起点细胞相邻的细胞;当所述细胞阵列中的任一细胞接收到相邻细胞发出的数据或中转的数据时,若根据接收到的数据中所标明的所述终点细胞的ID判断出本细胞为终点细胞,则将接收到的数据存入本细胞的非易失随机存储器,或者通知本细胞的微处理器对接收的数据进行处理,否则本细胞作为中转细胞,在选定发送方向后将所述接收到的数据中转给与本细胞相邻的细胞。
在具体实施时,细胞间通信过程中涉及的每一条数据都会含有起点细胞和终点细胞的ID,任一细胞根据接收到的数据中所标明的终点细胞的ID便可以判断该数据是发给本细胞的还是需要进一步中转给其他相邻细胞的。一条数据通过相邻细胞间的连接,经过多次中转,到达终点细胞,若该终点细胞需要就起点细胞所发数据作出反馈,则可以根据起点细胞的ID将反馈数据发向起点细胞,所述终点细胞以接收到的数据中所标明的起点细胞的ID作为终点细胞的ID,在对接收到的数据进行处理后所得到的反馈数据中予以标明,此时该终点细胞成为新的一次细胞间通信时的起点细胞,原先的起点细胞则成为该次细胞间通信时的终点细胞。
具体实施时,在标明终点细胞的ID的同时,所述起点细胞向终点细胞发出的数据中还标明所述终点细胞中要被访问的地址或者MPU;所述将接收到的数据存入本细胞的非易失随机存储器,是所述终点细胞在识别出接收到的数据中所标明的要被访问的地址之后进行的;所述通知本细胞的MPU对接收的数据进行处理,是所述终点细胞在识别出接收到的数据中所标明的MPU之后进行的。
在实际实施时,若终点细胞在识别出接收到的数据中所标明的要被访问的地址后,则接收的数据可以被该终点细胞内的网络控制器直接写入该细胞的非易失随机存储器中的相应地址,在这种情况下,细胞可以实现“繁殖”,一个细胞可以给另外一个细胞下载程序;若终点细胞在识别出接收到的数据中所标明的MPU之后,接收的数据将交由终点细胞内的MPU处理。
在本实施例中,由于细胞阵列中的细胞还包括与MPU相连的网络控制器,因此所述起点细胞向终点细胞发出数据、所述细胞阵列中的任一细胞接收相邻细胞发出的数据或中转的数据并判断本细胞为最终细胞或是中转细胞、将接收到的数据存入本细胞的非易失随机存储器或者通知本细胞的MPU对接收的数据进行处理,均是在所述网络控制器的控制下完成的。
具体实施时,所述起点细胞向终点细胞发出的数据先由所述网络控制器输入所述输出先入先出队列,再由所述网络控制器从所述输出先入先出队列输出至与所述起点细胞相邻的细胞;若所述细胞阵列中的任一细胞接收到相邻细胞发出的数据或中转的数据,则将接收到的数据输入所述输入先入先出队列,并在判断出接收到的数据需要进行中转时再将该数据输入所述输出先入先出队列。
此外,若所述网络控制器判断出所述输入先入先出队列或输出先入先出队列为空或者已满,或接收到相邻细胞发出或中转的数据,或向相邻细胞发出数据或中转数据,则向所述微处理器发送中断信号。
在具体实施时,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述终点细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述终点细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述终点细胞的细胞。当然,所述待选相邻细胞的数量有可能为两个,此时则选择这两个待选相邻细胞中输出数据的通信任务更少的细胞作为中转细胞。
本实施例中,所述起点细胞或中转细胞通过上述方式选定发送方向,实际上也可以认为是细胞阵列中细胞间通信的路径选择过程。可以参阅图8,图8中的每个矩形表示细胞阵列中的一个细胞,图8中示出的所有细胞为整个细胞阵列中的一部分,假设相邻细胞之间按图3所示的通信方式进行。
如果A点表示一个起点细胞,该起点细胞准备向C点所在的终点细胞发出数据,由于A点与C点之间显然是能够形成一条直线的通信路径,则A点所在的细胞将数据发向与其相邻的B点所在的细胞,同理,B点所在的细胞作为中转细胞,继续沿着A点与C点之间的直线向C点所在细胞的方向中转数据,在A点与C点之间形成的细胞间通信路径上依次相邻的细胞,将A点所在细胞发出的数据多次转发,直至传送到C点所在细胞。
如果D点表示另一个起点细胞,该起点细胞准备向G点所在的终点细胞发出数据,由于D点与G点之间显然是无法形成一条直线的通信路径,则在与D点所在细胞相邻的细胞之中,E点所在的细胞和F点所在的细胞显然更靠近G点所在的终点细胞,则这两个细胞属于D点所在细胞的待选相邻细胞,可以选择其中输出数据的通信任务更少的细胞作为中转细胞,若这两个细胞输出数据的通信任务相同,则随意选择一个细胞作为中转细胞。如图8所示,选择E点所在的细胞还是F点所在的细胞,将形成不同的细胞间通信路径。
需要说明的是,本实施例中是以图3所示的相邻细胞之间的通信方式为例对细胞间通信的路径选择进行说明的,本领域技术人员能够理解的是,若是采用图4所示的相邻细胞之间的通信方式,则可供选择的发送方向将会更多。
综上,在实际实施时,每一个发出或中转数据的细胞,其网络控制器都必须选择一个相邻的细胞作为下一站。当起点和终点在一条直线上时,合理的选择一般只有一个;其他情况下,有两个同样合理的选择,网络控制器将选择一个交通相对不忙的邻居。
如果某个输入FIFO队列有数据进入,则网络控制器将首先检查它:
如果终点是本细胞,那么:若终点是特定相对地址,由于网络控制器具有直接内存访问(DMA,DirectMemoryAccess)的能力,将把接收到的数据直接存入所述非易失随机存储器中的相应地址,并用中断通知MPU;若终点是MPU,则直接用中断信号通知MPU进行处理。
如果终点是其他细胞,或者本细胞的MPU向外发出数据,那么:若终点与本细胞在一条直线上,则选择正确的方向,向相邻细胞发送数据;其他情况下,有两个可能的方向,选择其中输出FIFO队列更空闲的相邻细胞发送,如果两个待选相邻细胞中的输出FIFO队列的情况相同,则可以从中随意选择一个相邻细胞发送。
在实际实施时,当所述细胞阵列中存在的数千个MPU一起计算时,怎样把各个细胞的输出数据发送给所述主控CPU就成为一个问题。一般来说,每个MPU可以把输出数据存放在其所在细胞的非易失随机存储器中的约定地址,让主控CPU通过逐个轮询每个MPU的方式进行读取。然而,这并不适用于所有问题,在有些问题中,当细胞阵列中只有少数几个细胞需要向主控CPU输出数据时,那么主控CPU逐个轮询每个MPU效率太低。
因此,本实施例提供的细胞阵列计算系统还包括:所述细胞阵列中还设有至少一个专职输出细胞,所述专职输出细胞作为终点细胞接收并存储其他细胞给所述主控CPU的输出数据,并以中断信号通知所述主控CPU读取所述输出数据。
在具体实施时,还可以在所述专职输出细胞的非易失随机存储器中设置FIFO队列,其他细胞给所述主控CPU的所有输出数据存储在该FIFO队列中,该FIFO队列应当具有足够的存储空间,有能力存储其他细胞给所述主控CPU的所有输出数据。
实际实施时,可以在细胞阵列中选择一个或几个细胞作为所述专职输出细胞,一般可以选择在位置上与主控CPU之间进行通信更为便捷的细胞。所述专职输出细胞与所述主控CPU之间设有中断线,所述专职输出细胞可以给主控CPU发送中断信号,例如新到其他细胞的输出数据、MRAM中设置的FIFO队列已满、MRAM中设置的FIFO已空等等。
基于上述设有专职输出细胞的细胞阵列计算系统,本实施例还提供一种细胞阵列计算系统中的通信方法,包括:所述专职输出细胞接收并存储其他细胞给所述主控CPU的输出数据之后,向所述主控CPU发出通知读取的中断信号;所述主控CPU在接收到所述通知读取的中断信号后,从所述专职输出细胞中读取所述输出数据。
具体实施时,所述其他细胞可以通过如下方式将所述输出数据发送至所述专职输出细胞:所述其他细胞中的任一细胞作为起点细胞,将所述输出数据按选定的发送方向发送至相邻的细胞;当所述细胞阵列中的任一细胞接收到相邻细胞发送的所述输出数据时,若判断出所述输出数据中所标明的终点细胞的ID与本细胞的ID一致,由于所述输出数据中所标明的终点细胞的ID为所述专职输出细胞的ID,表明本细胞为所述专职输出细胞,则将所述输出数据存入本细胞的非易失随机存储器,否则本细胞作为中转细胞,在选定发送方向后将所述输出数据中转给与本细胞相邻的细胞。
所述其他细胞将所述输出数据发送至所述专职输出细胞的过程中,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述专职输出细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述专职输出细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述专职输出细胞的细胞。
本实施例的专职输出细胞的实施过程还可以参阅图9。图9示出了主控CPU、细胞阵列以及细胞阵列总线,细胞阵列内的一个个小方格简单地表示出一个个细胞,其中J点所在的细胞(即粗线框小方格表示的细胞)为专职输出细胞,图9还进一步示出了专职输出细胞的结构,如图9中虚线箭头所示,可以看到,专职输出细胞中的MRAM中设有存储其他细胞给所述主控CPU的所有输出数据的FIFO队列。
假设H点所在的细胞和I点所在的细胞需要向主控CPU提供输出数据,则可以通过细胞之间的通信方式将所述输出数据发送至J点所在的细胞,H点至J点的细胞间通信路径以及I点至J点的细胞间通信路径,请参阅图9。由于细胞间通信方式此前已有详细描述,此处不再赘述。
J点所在的细胞接收到H点所在的细胞或I点所在的细胞发出的输出数据后,则可以发送通知读取的中断信号给主控CPU,主控CPU接收到该通知读取的中断信号后,便可以通过细胞阵列总线从J点所在的细胞中读取该输出数据。
通过在细胞阵列中设置专职输出细胞,以所述专职输出细胞作为所述终点细胞接收并存储其他细胞给主控CPU的输出数据,并以中断信号的方式通知所述主控CPU读取所述输出数据,如此能够在只有少数几个细胞需要向主控CPU输出数据时提高主控CPU读取输出数据的效率。
下面再介绍一个应用上述细胞阵列计算系统的实例。
语音识别可以用已知的语音库和输入的声音信号进行比对,这个比对可以是在时域比对也可以在频域比对。当需要比对的字词越来越多,比如说,考虑到不同的口音可以到数万个,如果仅依靠少数几个CPU的计算能力对于实时语音识别就显得不足了。
本发明实施例提供的细胞阵列计算系统则非常适合解决此类问题。
为此,本实施例还提供一种应用上述细胞阵列计算系统进行数据比对的方法,包括:所述主控CPU选择所述细胞阵列中全部或一个目标区域内的细胞后,把比对程序广播到每个细胞的非易失随机存储器中;所述主控CPU把所选择的每个细胞负责比对的样品分别写入到各细胞的约定地址中;所述主控CPU广播指令给所选择细胞的微处理器,使各个微处理器完成初始化后等待输入待比对的数据;所述主控CPU把待比对的数据广播给所选择细胞的微处理器;所选择细胞的微处理器运行所述比对程序,对接收到的待比对的数据与本细胞负责比对的样品进行比较,若获得两者一致的比较结果,则使用上述细胞阵列计算系统中的通信方法,将所述比较结果作为输出数据发送至所述专职输出细胞以供所述主控CPU读取。
具体实施时,所述待比对的数据既可以是待识别的语音数据,也可以是待识别的图像数据,还可以是其他需要进行比对的数据。
在实际实施时,每个MPU不断接受语音数据进行比对,通常情况下,几百个到几千个细胞中,只有一个或少数几个得到待比对的数据与本细胞负责比对的样品两者相一致的比较结果,这些细胞把比较结果发送到专职输出细胞,后者用中断信号通知主控CPU接收。
若所述待比对的数据具体为语音数据,则数据比对的过程可以在时域或是频域进行,如果是后者,可以先由主控CPU分段进行快速傅里叶变换(FFT,FastFourierTransformation),再广播已转换到频域的语音数据给所选择细胞的MPU。
通过应用上述设有专职输出细胞的细胞阵列计算系统进行数据比对,可以使细胞阵列中大量的细胞同时进行比对程序的运算,由此具有极强的并行处理能力,解决了现有技术中CPU和内存之间的通信瓶颈问题,使实时语音/图像识别的能力得到大大提升。
如前所述,从一个细胞群发信息到细胞阵列中的某个目标区域,已经有一个简单的方法:由主控CPU读取信息再进行广播。本实施例还提供另外一种实现方式:把细胞间的点对点通信功能被扩展到区域群发,这种方式可以支持更高的平行度,高得多的总带宽。
在本实施例提供的细胞阵列计算系统中,所述细胞阵列中的任一细胞还能作为所述起点细胞向目标区域内的所有细胞进行群发通信,参与所述群发通信且位于目标区域内的细胞作为所述起点细胞、或作为所述终点细胞、或同时作为所述中转细胞和终点细胞,参与所述群发通信且位于目标区域外的细胞作为所述起点细胞或中转细胞。
具体实施时,每个细胞中与微处理器相连的网络控制器,除了在任意两个细胞进行细胞间通信,而且还在所述群发通信时,对发出的数据、中转的数据或者最终接收的数据进行收发控制,所述网络控制器还用于向所述微处理器发送中断信号。
在实际实施时,细胞间群发通信的原始发送者(细胞阵列中作为起点细胞的细胞)负责标明目标区域,仍然通过一系列中转完成数据的群发。本领域技术人员能够理解的是,细胞间群发通信也可以认为是多次细胞间的点对点通信的有效叠加,因此细胞间群发通信的具体实施也可以参考任意两个细胞之间进行通信的实施,例如此前提及的所述细胞阵列中的细胞同样可以包括与所述网络控制器相连的一组或一组以上先入先出队列,此处不再赘述。
在上述细胞阵列计算系统支持细胞间群发通信的基础上,本发明实施例还提供一种上述细胞阵列计算系统中细胞间群发通信方法,包括:当细胞阵列中的任一细胞作为起点细胞向目标区域内所有细胞发起群发通信时,若该起点细胞位于该目标区域内,则将细胞间群发数据发送至所有位于该目标区域内的相邻细胞,并针对每一个相邻细胞更新目标区域,否则按靠近目标区域的方向将所述细胞间群发数据发送至相邻的细胞;若位于目标区域外的细胞接收到相邻细胞发送的所述细胞间群发数据,则在判断出所述细胞间群发数据中所标明的目标区域不包含本细胞后,本细胞作为中转细胞,按靠近目标区域的方向将所述细胞间群发数据中转给相邻细胞;若位于目标区域内的细胞接收到相邻细胞发送的所述细胞间群发数据,则在判断出所述细胞间群发数据中所标明的目标区域包含本细胞后,本细胞作为终点细胞,将接收到的所述细胞间群发数据存入本细胞的非易失随机存储器,或者通知本细胞的微处理器对所述细胞间群发数据进行处理,如果目标区域内仍然存在与本细胞相邻的细胞,则本细胞还作为中转细胞,将接收到的所述细胞间群发数据中转给所有位于目标区域内的相邻细胞,并针对每一个相邻细胞更新目标区域;更新后的目标区域包括由更新前的目标区域划分而成的一个或一个以上目标区域,更新前的目标区域内发出或中转所述细胞间群发数据的细胞的每一个相邻细胞分别包含于更新后的各个目标区域内,已发出或已中转所述细胞间群发数据的细胞排除在更新后的目标区域之外。
需要说明的是,由于主控CPU也可以将某个细胞的数据广播到细胞阵列中的某个目标区域,为了与“主控CPU的广播数据”有所区别,因此本实施例中将细胞间群发通信时所涉及的群发数据称为“细胞间群发数据”。发起细胞间群发通信的细胞会明确目标区域,该目标区域内所有细胞的ID或者所有细胞ID的范围将会标明在所述细胞间群发数据之中,任一细胞接收到所述细胞间群发数据,便能够根据所述细胞间群发数据中所标明的目标区域判断该细胞间群发数据是由本细胞最终接收的,或是需要进一步中转给其他相邻细胞的,还是两者皆需执行的。
此外,所述针对每一个相邻细胞更新目标区域,具体便是将更新前的目标区域划分而成的一个或一个以上目标区域(已发出或已中转所述细胞间群发数据的细胞被排除在更新后的目标区域之外),其中每个目标区域会各自包含一个所述相邻细胞(即与更新前的目标区域内发出或中转所述细胞间群发数据的细胞相邻的细胞),所述每一个相邻细胞在各自所对应的更新后的目标区域内继续进行细胞间的群发通信,相应地,所述细胞间群发数据中所标明的目标区域同样也会得到更新。
本实施例中,以图3所示相邻细胞之间通信方式,且以发起群发通信的起点细胞所确定的目标区域的形状为矩形为例进行说明。需要说明的是,本实施例所给出的细胞间群发通信方式是实际实施时较为便捷和高效的方式,本领域技术人员能够理解,在其他实施例中,上述细胞阵列计算系统中细胞间群发通信方法同样能适用于其他相邻细胞之间通信方式或是其他形状的目标区域。
具体实施时,作为起点细胞或中转细胞的细胞所处位置的不同,发出或中转的方式将有所不同。
当作为起点细胞或中转细胞的第一细胞位于矩形目标区域的角上时,如果所述矩形目标区域中均含有所述第一细胞的相邻两边的其中一边的细胞数量为1,则更新后的目标区域为所述矩形目标区域在所述相邻两边的另一边排除所述第一细胞后形成的矩形区域,否则更新后的目标区域包括两个矩形的目标区域,其中一个目标区域为所述相邻两边中任一边排除所述第一细胞后形成的矩形区域。需要说明的是,本实施例中的所述第一细胞是位于矩形目标区域的角上的一类细胞的统称。
可以参阅图10,假设K点所在的细胞为发起细胞间群发通信的起点细胞,或者为负责中转细胞间群发数据的中转细胞,矩形目标区域101为K点所在的细胞发出或中转所述细胞间群发数据前所确定的目标区域,此时K点所在的细胞在矩形目标区域101内,且位于矩形目标区域101的角上,由于矩形目标区域101在水平方向的这条边仅包含1个细胞,此时K点所在的细胞只有一个邻居可以选择为下一站中转,那么该细胞的网络控制器将所述细胞间群发数据发送到L点所在的细胞,并对矩形目标区域101进行更新,更新后形成的目标区域为矩形目标区域102,相当于将K点所在的细胞排除在矩形目标区域101之外;随着目标区域的不断更新,如果目标区域中剩下最后一个细胞,则停止中转。
假设M点所在的细胞也为发起细胞间群发通信的起点细胞,或者为负责中转细胞间群发数据的中转细胞,矩形目标区域103为M点所在的细胞发出或中转所述细胞间群发数据前所确定的目标区域,此时M点所在的细胞在矩形目标区域103内,且位于矩形目标区域103的角上,由于矩形目标区域103相邻两边均包含1个以上的细胞,此时M点所在的细胞有两个邻居可以选择为下一站中转,那么该细胞的网络控制器将所述细胞间群发数据发送到N点所在的细胞和O点所在的细胞,并对矩形目标区域103进行更新,更新后的目标区域包括两个矩形的目标区域,其中一个目标区域为矩形目标区域104,另一个目标区域为矩形目标区域105,相当于将M点所在的细胞排除在矩形目标区域103之外,矩形目标区域104和矩形目标区域105可以作为独立的目标区域继续以前述类似方法进行数据中转;随着目标区域的不断更新,如果目标区域中剩下最后一个细胞,则停止中转。
当作为起点细胞或中转细胞的第二细胞位于矩形目标区域的边上时,如果所述矩形目标区域中与所述第二细胞所在边相邻的边的细胞数量为1,则更新后的目标区域包括所述第二细胞所在边排除所述第二细胞后形成的两个矩形的目标区域,否则更新后的目标区域包括三个矩形的目标区域,其中两个目标区域为所述第二细胞所在边排除所述第二细胞后形成的两个矩形区域。需要说明的是,本实施例中的所述第二细胞是位于矩形目标区域的边上的一类细胞的统称。
可以参阅图11,假设P点所在的细胞为发起细胞间群发通信的起点细胞,或者为负责中转细胞间群发数据的中转细胞,矩形目标区域111为P点所在的细胞发出或中转所述细胞间群发数据前所确定的目标区域,此时P点所在的细胞在矩形目标区域111内,且位于矩形目标区域111的某条边上,由于矩形目标区域111中与P点所在的细胞所在边相邻的边的细胞数量大于1,则此时P点所在的细胞有三个邻居可以选择为下一站中转,该细胞的网络控制器将所述细胞间群发数据分别发送到Q点所在的细胞、R点所在的细胞和S点所在的细胞,并对矩形目标区域111进行更新,更新后的目标区域包括三个矩形的目标区域,分别为矩形目标区域112、矩形目标区域113和矩形目标区域114,相当于将P点所在的细胞排除在矩形目标区域111之外,矩形目标区域112和矩形目标区域113这两个目标区域相当于是P点所在的细胞所在边排除P点所在的细胞后形成的两个矩形区域,矩形目标区域112、矩形目标区域113和矩形目标区域114可以作为独立的目标区域继续以前述类似方法进行数据中转;随着目标区域的不断更新,如果目标区域中剩下最后一个细胞,则停止中转。
可以理解的是,若目标区域(图11中未标示)中与P点所在的细胞所在边相邻的边的细胞数量为1,则此时P点所在的细胞有两个邻居可以选择为下一站中转,该细胞的网络控制器将所述细胞间群发数据分别发送到Q点所在的细胞和R点所在的细胞,并对目标区域进行更新,更新后的目标区域包括两个矩形的目标区域,具体为矩形目标区域112和矩形目标区域113。
当作为起点细胞的第三细胞位于矩形目标区域的内部时,更新后的目标区域包括四个矩形的目标区域,其中两个目标区域为所述第三细胞所在行或列排除所述第三细胞后形成的两个矩形区域,另外两个目标区域为更新前的所述矩形目标区域被所述第三细胞所在行或列分割而形成的两个矩形区域。需要说明的是,本实施例中的所述第三细胞是位于矩形目标区域的内部的一类细胞的统称,所述矩形目标区域的内部指的是除“角”和“边”以外的区域。
可以参阅图12,假设T点所在的细胞为发起细胞间群发通信的起点细胞(本实施例中T点所在的细胞不可能为负责中转细胞间群发数据的中转细胞),矩形目标区域121为T点所在的细胞发出所述细胞间群发数据前所确定的目标区域,此时T点所在的细胞位于矩形目标区域121的内部,T点所在的细胞有四个邻居可以选择为下一站中转,该细胞的网络控制器将所述细胞间群发数据分别发送到U点所在的细胞、V点所在的细胞、W点所在的细胞和X点所在的细胞,并对矩形目标区域121进行更新,更新后的目标区域包括四个矩形的目标区域,分别为矩形目标区域122、矩形目标区域123、矩形目标区域124和矩形目标区域125,相当于将T点所在的细胞排除在矩形目标区域121之外,矩形目标区域122和矩形目标区域123这两个目标区域相当于是T点所在的细胞所在行排除T点所在的细胞后形成的两个矩形区域,矩形目标区域124和矩形目标区域125这两个目标区域相当于是矩形目标区域121被T点所在的细胞所在行分割而形成的两个矩形区域,矩形目标区域122、矩形目标区域123、矩形目标区域124和矩形目标区域125可以作为独立的目标区域继续以前述类似方法进行数据中转;随着目标区域的不断更新,如果目标区域中剩下最后一个细胞,则停止中转。
本实施例中,当作为起点细胞或中转细胞的第四细胞位于目标区域之外时,如果所述第四细胞与目标区域内任一细胞之间能形成一条直线的通信路径,则所述第四细胞发出或中转所述细胞间群发数据的发送方向为由所述第四细胞沿所述直线向目标区域的方向,否则所述发送方向为由所述第四细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述第四细胞相邻的细胞之中靠近目标区域的细胞。需要说明的是,本实施例中的所述第四细胞是位于矩形目标区域之外的一类细胞的统称。
可以参阅图13,假设Y1点所在的细胞为发起细胞间群发通信的起点细胞,矩形目标区域131为Y1点所在的细胞发出所述细胞间群发数据前所确定的目标区域,此时Y1点所在的细胞在矩形目标区域131之外,由于该细胞在矩形目标区域相对两个边的延长线之间,与矩形目标区域内Y3点所在细胞之间能够形成一条直线的通信路径,此时只有一个邻居可以作为下一站的中转,Y1点所在的细胞的网络控制器把所述细胞间群发数据发送至这个邻居,即Y2点所在的细胞,Y2点所在的细胞作为负责中转所述细胞间群发数据的中转细胞。Y2点所在的细胞将沿着图13中虚线箭头所示的方向中转数据,直至传送到Y3点所在细胞。Y3点所在细胞位于矩形目标区域131的边上,可以按照前述相关方法继续完成矩形目标区域131内的中转过程。
继续参阅图13,假设Z1点所在的细胞为发起细胞间群发通信的起点细胞,矩形目标区域131为Z1点所在的细胞发出所述细胞间群发数据前所确定的目标区域,此时Z1点所在的细胞在矩形目标区域131之外,由于该细胞并不在矩形目标区域相对两个边的延长线之间,与矩形目标区域内任一细胞之间都难以形成一条直线的通信路径,此时有两个邻居可以作为下一站的中转,即Z2点所在的细胞和Z3点所在的细胞,这两个细胞为Z1点所在的细胞的待选相邻细胞,因为这两个细胞为Z1点所在的细胞相邻的细胞之中更靠近矩形目标区域131的细胞。在实际实施时,可以任意选择一个或更加实际通信情况选择一个负担比较轻的细胞作为下一站中转,所述负担比较轻的细胞具体指的是输出数据的通信任务更少的细胞。从Z1点所在的细胞出发,通过两条可行的中转通信路径,直至将所述细胞间群发数据中转至Z4点所在细胞。Z4点所在细胞位于矩形目标区域131的角上,可以按照前述相关方法继续完成矩形目标区域131内的中转过程。
本实施例提供的细胞阵列计算系统中细胞间群发通信方法,通过将细胞间的点对点通信功能扩展到区域群发,可以支持更高的平行度,获得高得多的总带宽,从而进一步提升计算系统的整体性能。
实施例二
在本发明实施例一提供的细胞阵列计算系统的基础上,本实施例提供的细胞阵列计算系统将二维细胞阵列扩展到三维细胞阵列。
如图14所示,本实施例提供的细胞阵列计算系统包括:主控CPU、细胞阵列和细胞阵列总线。区别于实施例一中的细胞阵列,本实施例中的细胞阵列是由一个以上二维阵列叠合而成的三维细胞阵列(3D细胞阵列),所述二维阵列即为实施例一中的二维细胞阵列(2D细胞阵列),同样是由一个以上兼具计算和存储功能的细胞组成,每一个细胞包括微处理器和非易失随机存储器,具体可以参考实施例一中描述的相关内容。
本实施例中,每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取。需要说明的是,本实施例中的细胞ID可以采用空间直角坐标系中的坐标表示方式,即细胞ID/地址为三维的(x,y,z),若(x,y,z)表示某个细胞在细胞阵列中的位置,则(x,y,z)可以作为ID存储在该细胞中,细胞中的软件和硬件可以读取这个ID,在具体的操作中使用。
本实施例中,主控CPU通过细胞阵列总线与细胞阵列中的每一个细胞进行通信。主控CPU与任意一个二维阵列中各个细胞的连接关系也可以参阅图2。
本实施例中,所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。区别于实施例一中的细胞阵列,本实施例的细胞阵列中“相邻细胞”的概念不仅仅局限于二维平面,而是扩展到三维空间。若是二维阵列中采用如图3所示的相邻细胞之间的通信方式,则在空间直角坐标系中,任一细胞在x轴正反方向、y轴正反方向和z轴正反方向这六个方向均具有相邻的细胞。
本领域技术人员知晓,当一个信号通过一段导线从一个器件传到另外一个器件时,由于导线上有一个很小的电容,信号的传输过程中会不断地对这个电容充电和放电,很多能量就消耗在这个把电荷充到电容上又释放掉的过程中了。虽然一小段导线上的电容很小,但消耗的功率和传输的频率成正比。对于高速传输的信号,跨越不同芯片上的一小段导线消耗的功率,相对于芯片内的传输是很大的。所以,以过硅通孔(TSV,ThroughSiliconVias)为基础的3D芯片技术越来越受到重视。
在实际实施时,多片2D细胞阵列芯片可以叠合在一起组成3D芯片,通过TSV在相邻的细胞间建立纵向联系,即分别位于相邻两个二维阵列的相邻细胞之间通过TSV建立通信联系。
3D的细胞阵列芯片,在保持低功耗优势的同时,加大了细胞阵列的规模,拓展了内部通信的带宽。
本领域技术人员能够理解的是,在实施例一中详细描述的细胞阵列计算系统中的通信方法,例如主控CPU通过细胞阵列总线与细胞阵列中的每一个细胞进行的通信、细胞阵列中的任意两个细胞之间不依靠主控CPU进行的通信、任一细胞向目标区域中的所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给主控CPU的输出数据以供主控CPU读取,这些同样可以扩展到本实施例提供的细胞阵列计算系统的具体实施。
需要说明的是,在3D细胞阵列中:
对于主控CPU的广播机制,即主控CPU通过细胞阵列总线广播指令或数据给细胞阵列中目标区域内的所有细胞,将被扩展到三维空间。在具体实施时,目标区域可以是从(x1,y1,z1)到(x2,y2,z2)的立方体,其中x2>=x1,y2>=y1,z2>=z1。
对于细胞间数据传播的协议,即细胞阵列中的任意两个细胞之间不依靠主控CPU进行的通信,也将被扩展到三维空间。在具体实施时,从一个细胞(x0,y0,z0)发送或中转数据到另一个细胞(x1,y1,z1)时,有以下1-3个可以选择的邻居进行发送,通常可以选择一个最不拥堵的邻居发出或中转数据:
x坐标更接近x1,如果x≠x1;
y坐标更接近y1,如果y≠y1;
z坐标更接近z1,如果z≠z1。
对于细胞间的数据广播技术,即任一细胞向目标区域中的所有细胞进行群发通信,同样将被扩展到三维空间。在具体实施时,目标区域同样可以是从(x1,y1,z1)到(x2,y2,z2)的立方体,其中x2>=x1,y2>=y1,z2>=z1。
在实际实施时,如果发起群发通信的起点细胞所确定的目标区域的形状为立方体,则:
位于立方体目标区域内的起点细胞,或者接收到相邻二维阵列中或立方体目标区域外的相邻细胞所发送的所述细胞间群发数据的中转细胞,以其所在的二维阵列中包含于所述立方体目标区域的部分作为独立的子目标区域,在该子目标区域内对所述细胞间群发数据进行群发,并把所述细胞间群发数据发送给相邻二维阵列中的相邻细胞;
位于立方体目标区域之外的起点细胞或中转细胞,将所述细胞间群发数据发送到所述立方体目标区域中离起点细胞或中转细胞最近的细胞,所述离起点细胞或中转细胞最近的细胞在所述立方体目标区域的顶点、棱线或表面上。
本实施例中,把所述细胞间群发数据发送给相邻二维阵列中的相邻细胞的具体实施,可以参考本发明实施例一中的相关方式。
本实施例提供的细胞阵列计算系统以及其中的通信方法的具体实施可以参考实施例一的细胞阵列计算系统以及其中的通信方法的相关内容,此处不再赘述。
实施例三
如前所述,本发明实施例一的细胞阵列中的细胞兼具内存、存储和计算三个功能,细胞内的所述非易失随机存储器既能实现所述微处理器计算时所涉及数据的随机存取,又能存储软件的指令代码和需要永久保存的数据,然而所述非易失随机存储器的成本一般是较高的,所以细胞中的非易失随机存储器用作内存部分的空间是有限的,那么当细胞中微处理器的数据处理量较大时,有限的内存空间便可能影响微处理器的处理效率,如何扩展细胞的内存空间便成为亟待解决的问题。
基于上述考虑,在实施例一的基础上,本实施例又给出了细胞阵列计算系统的另一种结构,如图15所示,所述细胞阵列计算系统除了包括如前所述的主控CPU、细胞阵列和细胞阵列总线,还可以进一步包括至少一个内存单元阵列,所述内存单元阵列是由一个以上内存单元组成的二维阵列,所述细胞阵列与所有内存单元阵列叠合形成三维结构,每个内存单元阵列中的内存单元与所述细胞阵列中的细胞一一对应地相连,所述内存单元配合所述非易失随机存储器,两者共同用于所述微处理器计算时所涉及数据的随机存取。
在实际实施时,细胞中的非易失随机存储器可以是MRAM,所述内存单元阵列则可以是MRAM、DRAM或SRAM硅片,一般可以选取成本较低的一个或多个DRAM硅片,其中每个DRAM硅片是由与所述细胞阵列中各个细胞位置相一致的内存单元形成的内存单元阵列,再将所有DRAM硅片与一个细胞阵列硅片进行3D组合,任一内存单元与细胞阵列中相对应的细胞之间可以通过TSV建立通信联系,由此扩展每个细胞的内存。
本发明实施例中,通过将至少一个由一个以上内存单元组成的内存单元阵列,与所述细胞阵列叠合形成三维结构,并使每个内存单元阵列中的内存单元与细胞阵列中的细胞一一对应地相连,所述内存单元用于所述微处理器计算时所涉及数据的随机存取,如此便能以较低的成本扩展细胞阵列中每个细胞的内存空间,提高细胞中微处理器的处理效率。
需要指出的是,图15中仅示出了一个内存单元阵列与所述细胞阵列叠合形成三维结构的情况,本领域技术人员同样也能够理解一个以上内存单元阵列与所述细胞阵列叠合形成三维结构的情况。
本领域技术人员还能够理解的是,前述主控CPU通过细胞阵列总线与细胞阵列中每个细胞进行通信、任意两个细胞之间不依靠主控CPU进行的通信、任一细胞向目标区域中所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给主控CPU的输出数据以供主控CPU读取等通信方法,这些同样适用于包含所述内存单元阵列的细胞阵列计算系统。
需要说明的是,由于细胞阵列中的各个细胞扩展了内存空间,所述主控CPU除了可以访问本细胞的非易失随机存储器,还可以访问与本细胞相对应的内存单元(当与细胞阵列叠加成三维结构的内存单元阵列的数量为一个以上时,则与本细胞相对应的内存单元的数量也会有一个以上),因此所述主控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况中的至少一种:按地址读写所述细胞阵列中任一细胞的非易失随机存储器或相应的内存单元;将数据广播到目标区域内每一个细胞的非易失随机存储器或相应的内存单元,并写入该目标区域内每一个细胞的非易失随机存储器或相应的内存单元中相同的相对地址;给所述细胞阵列中任一细胞的微处理器发送指令、发送数据或读取状态;给目标区域内所有细胞的微处理器广播指令。
当所述细胞阵列中的细胞还包括总线控制器和细胞内部总线时,所述细胞内部总线除了连接所述微处理器、非易失随机存储器,还与本细胞相对应的内存单元相连,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述主控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述主控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述非易失随机存储器或与本细胞相对应的内存单元进行数据的读写操作。
实施例四
本领域技术人员能够理解,由于实施例二提供的细胞阵列计算系统的结构,同样存在着实施例三提供的技术方案所要解决的技术问题,即如何扩展细胞阵列中各个细胞的内存空间的问题,因此本实施例在实施例二的基础上,还给出了细胞阵列计算系统的又一种结构以解决上述问题。
如图16所示,所述细胞阵列计算系统包括主控CPU、细胞阵列和细胞阵列总线,所述细胞阵列是由一个以上二维细胞阵列叠合而成的三维细胞阵列(3D细胞阵列),所述二维细胞阵列由一个以上兼具计算和存储功能的细胞组成,每一个细胞包括微处理器和非易失随机存储器,具体可以参考实施例一中描述的相关内容;此外,本实施例提供的细胞阵列计算系统还可以进一步包括内存单元阵列,所述内存单元阵列是由一个以上内存单元组成的二维阵列,至少一个二维细胞阵列与对应的一个或一个以上内存单元阵列叠合形成三维结构,每个内存单元阵列中的内存单元与相应的二维细胞阵列中的细胞一一对应地相连;所述内存单元配合所述非易失随机存储器,两者共同用于所述微处理器计算时所涉及数据的随机存取。
在实际实施时,细胞中的非易失随机存储器可以是MRAM,所述内存单元阵列则可以是MRAM、DRAM或SRAM硅片,一般可以选取成本较低的一个或多个DRAM硅片,其中每个DRAM硅片是由与相应的一个二维细胞阵列中各个细胞位置相一致的内存单元形成的内存单元阵列,再将至少一个二维细胞阵列硅片(一个二维细胞阵列在一个硅片上)与对应的一个或多个DRAM硅片进行3D组合,任一内存单元与二维细胞阵列中相对应的细胞之间可以通过TSV垂直相连建立通信联系,由此扩展每个细胞的内存。
在实际实施时,通常可以将相同数量的内存单元阵列组成一个内存单元阵列组,并使所述内存单元阵列组的数量与所述二维细胞阵列的数量相同,各个内存单元阵列组与各个二维细胞阵列一一对应地叠合形成三维结构。如图16所示,三个二维细胞阵列中的每个二维细胞阵列都与一个内存单元阵列组(每个内存单元阵列组中均包含一个内存单元阵列)一一对应地叠合形成三维结构,且每个二维细胞阵列与内存单元阵列组之间叠合的位置关系都是相同的,如此无论是在制造工艺上还是在实际应用时都较为合理。当然,在其他实施例中,也并不一定需要为3D细胞阵列中的每个二维细胞阵列都扩展内存。
本实施例提供的细胞阵列计算系统能以较低的成本扩展细胞阵列中各个细胞的内存空间,提高细胞中微处理器的处理效率。
本领域技术人员能够理解的是,前述主控CPU通过细胞阵列总线与细胞阵列中每个细胞进行通信、任意两个细胞之间不依靠主控CPU进行的通信、任一细胞向目标区域中所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给主控CPU的输出数据以供主控CPU读取等通信方法,这些同样适用于上述包含3D细胞阵列以及至少一个内存单元阵列的细胞阵列计算系统。
关于本实施例提供的细胞阵列计算系统的具体实施还可以参考实施例三中的相关内容。
实施例五
如前所述,本发明实施例的细胞阵列中的细胞兼具内存、存储和计算三个功能,细胞内的所述非易失随机存储器既能实现所述微处理器计算时所涉及数据的随机存取,又能存储软件的指令代码和需要永久保存的数据,然而所述非易失随机存储器的成本一般是较高的,所以细胞中的非易失随机存储器用作存储部分的空间同样是有限的,那么当存在大量文件或数据需要存储在细胞阵列中的各个细胞时,有限的存储空间便无法满足存储要求,甚至还有可能会影响微处理器的处理效率,如何扩展细胞的存储空间则同样是亟待解决的问题。
基于上述考虑,在实施例一的基础上,本实施例还给出了细胞阵列计算系统的一种结构,如图17所示,所述细胞阵列计算系统除了包括如前所述的主控CPU、细胞阵列和细胞阵列总线,还可以进一步包括至少一个存储单元阵列,所述存储单元阵列是由一个以上存储单元组成的二维阵列,所述细胞阵列与所有存储单元阵列叠合形成三维结构,每个存储单元阵列中的存储单元与所述细胞阵列中的细胞一一对应地相连,所述存储单元配合所述非易失随机存储器,两者共同用于存储软件的指令代码和需要永久保存的数据。
在实际实施时,细胞中的非易失随机存储器可以是MRAM,所述存储单元阵列则具体可以是闪存硅片,一般可以选取成本相对于MRAM更低的一个或多个NAND闪存硅片,其中每个NAND闪存硅片是由与所述细胞阵列中各个细胞位置相一致的存储单元形成的存储单元阵列,再将所有NAND闪存硅片与一个细胞阵列硅片进行3D组合,任一存储单元与细胞阵列中相对应的细胞之间可以通过TSV垂直相连以建立通信联系,由此扩展每个细胞的存储空间。
具体实施时,所述细胞阵列中的细胞还包括与所述微处理器相连的存储控制器,用于对与本细胞相连的存储单元进行数据存储访问控制。当把一个或多个NAND闪存硅片和一个细胞阵列硅片进行3D组合后,还可以为细胞阵列中的每一个细胞配置NAND闪存控制器,本细胞的MPU通过本细胞的NAND闪存控制器才可以实现对与本细胞相对应的存储单元进行读写。当大量文件或者数据储存在NAND闪存中时,对数据的搜索可以由各个细胞通过各自的NAND通道进行搜索,得到极大的加速。大型软件系统的编译同样需要对成千上万个源代码文件进行编译,当这些源代码保存在这样的细胞阵列计算系统中时,编译同样得到了极大的加速。
本发明实施例提供的包含所述存储单元阵列的细胞阵列计算系统,能以较低的成本扩展细胞阵列中每个细胞的存储空间,提高各个细胞的数据存储能力。
需要指出的是,图17中仅示出了一个存储单元阵列与所述细胞阵列叠合形成三维结构的情况,本领域技术人员同样也能够理解一个以上存储单元阵列与所述细胞阵列叠合形成三维结构的情况。
本领域技术人员能够理解的是,前述主控CPU通过细胞阵列总线与细胞阵列中每个细胞进行通信、任意两个细胞之间不依靠主控CPU进行的通信、任一细胞向目标区域中所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给主控CPU的输出数据以供主控CPU读取等通信方法,这些同样适用于包含所述存储单元阵列的细胞阵列计算系统。
实施例六
如前所述,由于细胞中的非易失随机存储器用作内存和存储部分的空间都非常有限,因此如何同时扩展细胞的内存和存储空间是亟待解决的问题。基于上述考虑,本实施例还给出了细胞阵列计算系统的一种结构,如图18所示,所述细胞阵列计算系统除了包括主控CPU、细胞阵列和细胞阵列总线,还可以进一步包括至少一个上述存储单元阵列和至少一个内存单元阵列。本实施例提供的同时包含所述存储单元阵列和内存单元阵列的细胞阵列计算系统可以参考实施例一、实施例三和实施例五给出的细胞阵列计算系统的具体实施,此处不再赘述。
本实施例提供的同时包含所述存储单元阵列和内存单元阵列的细胞阵列计算系统,能以较低的成本同时扩展细胞阵列中每个细胞的存储和内存空间,提高各个细胞的数据存储能力以及细胞中微处理器的处理效率,从而能更进一步提升计算系统的整体性能。
实施例七
本领域技术人员能够理解,由于实施例二提供的细胞阵列计算系统的结构,同样存在着实施例五提供的技术方案所要解决的技术问题,即如何扩展细胞阵列中各个细胞的存储空间的问题,因此本实施例在实施例二的基础上,还给出了细胞阵列计算系统的一种结构以解决上述问题。
如图19所示,本实施例提供的细胞阵列计算系统除了包括如前所述的主控CPU、细胞阵列和细胞阵列总线,所述细胞阵列是由一个以上二维细胞阵列叠合而成的三维细胞阵列,所述二维细胞阵列由一个以上兼具计算和存储功能的细胞组成,其中每一个细胞包括微处理器和非易失随机存储器;所述非易失随机存储器用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据,具体可以参考实施例一和实施例二中描述的相关内容;此外,所述细胞阵列计算系统还可以进一步包括存储单元阵列,所述存储单元阵列是由一个以上存储单元组成的二维阵列,至少一个二维细胞阵列与对应的一个或一个以上存储单元阵列叠合形成三维结构,每个存储单元阵列中的存储单元与相应的二维细胞阵列中的细胞一一对应地相连;所述存储单元配合所述非易失随机存储器,两者共同用于存储软件的指令代码和需要永久保存的数据。
在实际实施时,细胞中的非易失随机存储器可以是MRAM,所述存储单元阵列则可以是闪存硅片,一般可以选取成本相对于MRAM更低的一个或多个NAND闪存硅片,其中每个NAND闪存硅片是由与相应的一个二维细胞阵列中各个细胞位置相一致的存储单元形成的存储单元阵列,再将至少一个二维细胞阵列硅片(一个二维细胞阵列在一个硅片上)与对应的一个或多个NAND闪存硅片进行3D组合,任一存储单元与二维细胞阵列中相对应的细胞之间可以通过TSV垂直相连以建立通信联系,由此扩展每个细胞的存储空间。
在实际实施时,通常可以将相同数量的存储单元阵列组成一个存储单元阵列组,并使所述存储单元阵列组的数量与所述二维细胞阵列的数量相同,各个存储单元阵列组与各个二维细胞阵列一一对应地叠合形成三维结构。如图19所示,三个二维细胞阵列中的每个二维细胞阵列都与一个存储单元阵列组(每个存储单元阵列组中均包含一个存储单元阵列)一一对应地叠合形成三维结构,且每个二维细胞阵列与存储单元阵列组之间叠合的位置关系都是相同的,如此无论是在制造工艺上还是在实际应用时都较为合理。当然,在其他实施例中,也并不一定需要为3D细胞阵列中的每个二维细胞阵列都扩展存储空间。
本实施例提供的细胞阵列计算系统能以较低的成本扩展细胞阵列中各个细胞的存储空间,提高各个细胞的数据存储能力。
本领域技术人员能够理解的是,前述主控CPU通过细胞阵列总线与细胞阵列中每个细胞进行通信、任意两个细胞之间不依靠主控CPU进行的通信、任一细胞向目标区域中所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给主控CPU的输出数据以供主控CPU读取等通信方法,这些同样适用于上述包含3D细胞阵列以及至少一个存储单元阵列的细胞阵列计算系统。
本实施例提供的细胞阵列计算系统的具体实施还可以参考实施例五。
实施例八
如前所述,由于细胞中的非易失随机存储器用作内存和存储部分的空间都非常有限,因此如何同时扩展细胞的内存和存储空间,对于实施例二提供的细胞阵列计算系统同样是亟待解决的问题。基于上述考虑,在实施例二、实施例四和实施例七的基础上,本实施例还给出了细胞阵列计算系统的一种结构。
所述细胞阵列计算系统除了包括主控CPU、细胞阵列和细胞阵列总线,还可以进一步包括存储单元阵列和内存单元阵列。本实施例提供的同时包含存储单元阵列、内存单元阵列以及3D细胞阵列的细胞阵列计算系统可以参考实施例二、实施例四和实施例七给出的细胞阵列计算系统的具体实施,此处不再赘述。
需要说明的是,虽然本实施例并未提供细胞阵列计算系统的示意图,但也可以结合图18、图16和图19,其中图18所示的一个二维细胞阵列与一个存储单元阵列以及一个内存单元阵列形成的三维结构,也可以将其理解为本实施例提供的细胞阵列计算系统的其中一个单元三维结构,一个或一个以上此类单元三维结构便形成由存储单元阵列、内存单元阵列以及3D细胞阵列构成的总体三维层叠结构,将该总体三维层叠结构与主控CPU和细胞阵列总线结合便是本实施例提供的细胞阵列计算系统的结构。
本实施例提供的细胞阵列计算系统,能以较低的成本同时扩展细胞阵列中每个细胞的存储和内存空间,提高各个细胞的数据存储能力以及细胞中微处理器的处理效率,从而能更进一步提升计算系统的整体性能。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (10)
1.一种细胞阵列计算系统,其特征在于,包括:主控CPU、细胞阵列、细胞阵列总线和存储单元阵列;
所述细胞阵列是由一个以上二维细胞阵列叠合而成的三维细胞阵列,所述二维细胞阵列由一个以上兼具计算和存储功能的细胞组成,其中每一个细胞包括微处理器和非易失随机存储器;所述非易失随机存储器用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;
所述存储单元阵列是由一个以上存储单元组成的二维阵列,至少一个二维细胞阵列与对应的一个或一个以上存储单元阵列叠合形成三维结构,每个存储单元阵列中的存储单元与相应的二维细胞阵列中的细胞一一对应地相连;所述存储单元用于存储软件的指令代码和需要永久保存的数据;
每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;
所述主控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;
所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
2.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述细胞阵列中的细胞还包括与所述微处理器相连的存储控制器,用于对与本细胞相连的存储单元进行数据存储访问控制。
3.根据权利要求1或2所述的细胞阵列计算系统,其特征在于,相同数量的存储单元阵列组成一个存储单元阵列组,所述存储单元阵列组的数量与所述二维细胞阵列的数量相同,各个存储单元阵列组与各个二维细胞阵列一一对应地叠合形成三维结构。
4.根据权利要求1所述的细胞阵列计算系统,其特征在于,还包括内存单元阵列,所述内存单元阵列是由一个以上内存单元组成的二维阵列,至少一个二维细胞阵列与对应的一个或一个以上内存单元阵列叠合形成三维结构,每个内存单元阵列中的内存单元与相应的二维细胞阵列中的细胞一一对应地相连;所述内存单元用于所述微处理器计算时所涉及数据的随机存取。
5.根据权利要求4所述的细胞阵列计算系统,其特征在于,相同数量的内存单元阵列组成一个内存单元阵列组,所述内存单元阵列组的数量与所述二维细胞阵列的数量相同,各个内存单元阵列组与各个二维细胞阵列一一对应地叠合形成三维结构。
6.根据权利要求4所述的细胞阵列计算系统,其特征在于,所述非易失随机存储器为MRAM,所述存储单元阵列为闪存硅片,所述内存单元阵列为MRAM、DRAM或SRAM硅片,一个二维细胞阵列在一个硅片上。
7.根据权利要求1所述的细胞阵列计算系统,其特征在于,分别位于相邻两个二维细胞阵列的相邻细胞之间以及所述存储单元与所述二维细胞阵列中相对应的细胞之间都通过过硅通孔建立通信联系。
8.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述细胞阵列中的任意两个细胞之间能进行通信,参与细胞间通信的细胞包含起点细胞、终点细胞和中转细胞,所述起点细胞为向所述终点细胞发出数据的细胞,所述终点细胞为最终接收所述起点细胞所发数据的细胞,所述中转细胞为沿细胞间通信路径依次相邻且通过所述通信接口中转所述起点细胞所发数据的细胞,所述细胞间通信路径是由所述起点细胞、中转细胞和终点细胞所构成的数据收发路径。
9.根据权利要求8所述的细胞阵列计算系统,其特征在于,所述细胞阵列中的任一细胞还能作为所述起点细胞向目标区域内的所有细胞进行群发通信,参与所述群发通信且位于目标区域内的细胞作为所述起点细胞、或作为所述终点细胞、或同时作为所述中转细胞和终点细胞,参与所述群发通信且位于目标区域外的细胞作为所述起点细胞或中转细胞。
10.根据权利要求8或9所述的细胞阵列计算系统,其特征在于,所述细胞阵列中还设有至少一个专职输出细胞,所述专职输出细胞作为所述终点细胞接收并存储其他细胞给所述主控CPU的输出数据,并以中断信号通知所述主控CPU读取所述输出数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456254.9A CN105718994B (zh) | 2015-07-29 | 2015-07-29 | 细胞阵列计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510456254.9A CN105718994B (zh) | 2015-07-29 | 2015-07-29 | 细胞阵列计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718994A true CN105718994A (zh) | 2016-06-29 |
CN105718994B CN105718994B (zh) | 2019-02-19 |
Family
ID=56144871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510456254.9A Active CN105718994B (zh) | 2015-07-29 | 2015-07-29 | 细胞阵列计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718994B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256622A (zh) * | 2016-12-28 | 2018-07-06 | 上海磁宇信息科技有限公司 | 一种细胞阵列计算系统 |
CN110729011A (zh) * | 2018-07-17 | 2020-01-24 | 旺宏电子股份有限公司 | 用于类神经网路的存储器内运算装置 |
US10719296B2 (en) | 2018-01-17 | 2020-07-21 | Macronix International Co., Ltd. | Sum-of-products accelerator array |
US10777566B2 (en) | 2017-11-10 | 2020-09-15 | Macronix International Co., Ltd. | 3D array arranged for memory and in-memory sum-of-products operations |
US10783963B1 (en) | 2019-03-08 | 2020-09-22 | Macronix International Co., Ltd. | In-memory computation device with inter-page and intra-page data circuits |
US10957392B2 (en) | 2018-01-17 | 2021-03-23 | Macronix International Co., Ltd. | 2D and 3D sum-of-products array for neuromorphic computing system |
US11119674B2 (en) | 2019-02-19 | 2021-09-14 | Macronix International Co., Ltd. | Memory devices and methods for operating the same |
US11132176B2 (en) | 2019-03-20 | 2021-09-28 | Macronix International Co., Ltd. | Non-volatile computing method in flash memory |
US11562229B2 (en) | 2018-11-30 | 2023-01-24 | Macronix International Co., Ltd. | Convolution accelerator using in-memory computation |
US11636325B2 (en) | 2018-10-24 | 2023-04-25 | Macronix International Co., Ltd. | In-memory data pooling for machine learning |
US11934480B2 (en) | 2018-12-18 | 2024-03-19 | Macronix International Co., Ltd. | NAND block architecture for in-memory multiply-and-accumulate operations |
CN118349189A (zh) * | 2024-06-14 | 2024-07-16 | 中昊芯英(杭州)科技有限公司 | 交织式计算单元与存储模块的阵列结构、相关方法及装置 |
CN118349189B (zh) * | 2024-06-14 | 2024-09-27 | 中昊芯英(杭州)科技有限公司 | 交织式计算单元与存储模块的阵列结构、相关方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341242A (zh) * | 1999-01-21 | 2002-03-20 | 索尼电脑娱乐公司 | 高速处理器系统,使用该系统的方法和记录介质 |
US20090094436A1 (en) * | 2007-07-26 | 2009-04-09 | Yuefan Deng | Ultra-scalable supercomputer based on mpu architecture |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN104392149A (zh) * | 2014-12-11 | 2015-03-04 | 南京航空航天大学 | 一种提高胚胎型仿生自修复可重构硬件可靠性的细胞阵列结构及其布局方法 |
CN104701309A (zh) * | 2015-03-24 | 2015-06-10 | 上海新储集成电路有限公司 | 三维堆叠式神经元装置及制备方法 |
-
2015
- 2015-07-29 CN CN201510456254.9A patent/CN105718994B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341242A (zh) * | 1999-01-21 | 2002-03-20 | 索尼电脑娱乐公司 | 高速处理器系统,使用该系统的方法和记录介质 |
US20090094436A1 (en) * | 2007-07-26 | 2009-04-09 | Yuefan Deng | Ultra-scalable supercomputer based on mpu architecture |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN104392149A (zh) * | 2014-12-11 | 2015-03-04 | 南京航空航天大学 | 一种提高胚胎型仿生自修复可重构硬件可靠性的细胞阵列结构及其布局方法 |
CN104701309A (zh) * | 2015-03-24 | 2015-06-10 | 上海新储集成电路有限公司 | 三维堆叠式神经元装置及制备方法 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108256622A (zh) * | 2016-12-28 | 2018-07-06 | 上海磁宇信息科技有限公司 | 一种细胞阵列计算系统 |
US10777566B2 (en) | 2017-11-10 | 2020-09-15 | Macronix International Co., Ltd. | 3D array arranged for memory and in-memory sum-of-products operations |
US10719296B2 (en) | 2018-01-17 | 2020-07-21 | Macronix International Co., Ltd. | Sum-of-products accelerator array |
US10957392B2 (en) | 2018-01-17 | 2021-03-23 | Macronix International Co., Ltd. | 2D and 3D sum-of-products array for neuromorphic computing system |
US11138497B2 (en) | 2018-07-17 | 2021-10-05 | Macronix International Co., Ltd | In-memory computing devices for neural networks |
CN110729011A (zh) * | 2018-07-17 | 2020-01-24 | 旺宏电子股份有限公司 | 用于类神经网路的存储器内运算装置 |
TWI699711B (zh) * | 2018-07-17 | 2020-07-21 | 旺宏電子股份有限公司 | 記憶體裝置及其製造方法 |
CN110729011B (zh) * | 2018-07-17 | 2021-07-06 | 旺宏电子股份有限公司 | 用于类神经网路的存储器内运算装置 |
US11636325B2 (en) | 2018-10-24 | 2023-04-25 | Macronix International Co., Ltd. | In-memory data pooling for machine learning |
US11562229B2 (en) | 2018-11-30 | 2023-01-24 | Macronix International Co., Ltd. | Convolution accelerator using in-memory computation |
US11934480B2 (en) | 2018-12-18 | 2024-03-19 | Macronix International Co., Ltd. | NAND block architecture for in-memory multiply-and-accumulate operations |
US11119674B2 (en) | 2019-02-19 | 2021-09-14 | Macronix International Co., Ltd. | Memory devices and methods for operating the same |
US10783963B1 (en) | 2019-03-08 | 2020-09-22 | Macronix International Co., Ltd. | In-memory computation device with inter-page and intra-page data circuits |
US11132176B2 (en) | 2019-03-20 | 2021-09-28 | Macronix International Co., Ltd. | Non-volatile computing method in flash memory |
CN118349189A (zh) * | 2024-06-14 | 2024-07-16 | 中昊芯英(杭州)科技有限公司 | 交织式计算单元与存储模块的阵列结构、相关方法及装置 |
CN118349189B (zh) * | 2024-06-14 | 2024-09-27 | 中昊芯英(杭州)科技有限公司 | 交织式计算单元与存储模块的阵列结构、相关方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105718994B (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718994A (zh) | 细胞阵列计算系统 | |
CN105740946A (zh) | 一种应用细胞阵列计算系统实现神经网络计算的方法 | |
CN105718996A (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN105608490A (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
CN109785905B (zh) | 一种面向基因比对算法的加速装置 | |
CN105718392B (zh) | 细胞阵列文件存储系统及其文件存储设备与文件存储方法 | |
CN111630505B (zh) | 深度学习加速器系统及其方法 | |
CN111488114B (zh) | 一种可重构的处理器架构及计算设备 | |
CN105718991A (zh) | 细胞阵列计算系统 | |
CN105718990B (zh) | 细胞阵列计算系统以及其中细胞之间的通信方法 | |
CN105718380A (zh) | 细胞阵列计算系统 | |
CN105718379A (zh) | 细胞阵列计算系统以及其中细胞间群发通信方法 | |
CN105718993A (zh) | 细胞阵列计算系统以及其中的通信方法 | |
CN111767995A (zh) | 运算方法、装置及相关产品 | |
CN105718992A (zh) | 细胞阵列计算系统 | |
CN105719228A (zh) | 摄像系统以及图像识别系统 | |
CN105719227A (zh) | 一种摄像系统以及图像识别系统 | |
CN105718995A (zh) | 细胞阵列计算系统及其调试方法 | |
CN106293491B (zh) | 写请求的处理方法和内存控制器 | |
CN107291209A (zh) | 细胞阵列计算系统 | |
CN104951406B (zh) | 一种分页式地址空间管理方法以及控制器 | |
CN111863139B (zh) | 一种基于近内存计算结构的基因比对加速方法和系统 | |
CN113556242B (zh) | 一种基于多处理节点来进行节点间通信的方法和设备 | |
CN107341129A (zh) | 细胞阵列计算系统及其测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |