CN107291209B - 细胞阵列计算系统 - Google Patents
细胞阵列计算系统 Download PDFInfo
- Publication number
- CN107291209B CN107291209B CN201610203860.4A CN201610203860A CN107291209B CN 107291209 B CN107291209 B CN 107291209B CN 201610203860 A CN201610203860 A CN 201610203860A CN 107291209 B CN107291209 B CN 107291209B
- Authority
- CN
- China
- Prior art keywords
- cell
- cell array
- bus
- memory
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17381—Two dimensional, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17356—Indirect interconnection networks
- G06F15/17368—Indirect interconnection networks non hierarchical topologies
- G06F15/17387—Three dimensional, e.g. hypercubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8023—Two dimensional arrays, e.g. mesh, torus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/803—Three-dimensional arrays or hypercubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8038—Associative processors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
一种细胞阵列计算系统,包括:内控CPU、细胞阵列、细胞阵列总线、总线控制器、外部接口、存储接口以及至少一个采用整块读写的非易失性存储器;细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维或三维阵列,每个细胞包括微处理器和非易失随机存储器;每个细胞储存各自在细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;内控CPU控制存储接口、管理存储数据以及通过细胞阵列总线与细胞阵列中的每一个细胞进行通信,分配细胞中的资源完成计算任务;总线控制器协调各个主设备对细胞阵列总线的控制权。本发明能克服CPU与内存、存储之间存在的通信瓶颈,大幅降低计算系统功耗,提高处理速度,扩展大规模数据存储能力,提升系统整体性能。
Description
技术领域
本发明涉及计算机及计算机应用技术领域,特别涉及一种细胞阵列计算系统。
背景技术
通常来说,一台计算机主要包括三个核心部分:中央处理器(CPU,CentralProcessing Unit)、内存和存储。
经过一些世界顶级公司的不懈努力,CPU已经演变成极度复杂的半导体芯片。顶级的CPU内核内部的MOS管数目可以超过一亿个。目前的产业趋势是受制于功耗,CPU的运行频率已经很难再提高。已经极度复杂的现代CPU,运行效率同样很难再提高。新的CPU产品,越来越多地朝多核方向演进。
在内存方面,目前居于统治地位的是动态随机存取存储器(DRAM,Dynamic RandomAccess Memory)技术。DRAM可以快速随机读写,但却不能在断电的情况下保持内容。实际上,即使在通电的情况下,它也会由于内部用于储存信息的电容器的漏电而丢失信息,必须周期性地自刷新。
在存储方面,NAND闪存技术正在逐步取代传统硬盘。闪存所依赖的浮置栅极(floating gate)技术,虽然能够在断电的情况下保持内容,但写入(将‘1’改写为‘0’)的速度很慢,擦除(将‘0’改写为‘1’)的速度更慢,无法像DRAM那样用于对计算的直接支持。它被制作成块设备(block device),必须整块一起擦除,一个块(block)包含很多页(page),擦除后每页可以进行写入操作。NAND的另外一个问题是具有有限的寿命。
DRAM和NAND闪存,以及CPU的逻辑电路,虽然都是基于CMOS半导体工艺生产的,但这三者的工艺彼此并不兼容。于是,计算机的三个核心部分无法在一个芯片上共存,这深刻地影响了现代计算机的架构。
现有技术中的计算机架构如图1所示,图1中示出多个CPU内核,分别为CPU1、CPU2、CPU3、……、CPUn,每个CPU内核一般具有相应的一级缓存(L1Cache),根据需要还可以进一步为每个CPU内核配备相应的二级缓存(L2Cache)、三级缓存(L3Cache)。DRAM与各个CPU内核之间通过双倍速率(DDR,Double Data Rate)接口进行通信,硬盘(HD,Hard Disk)或固态硬盘(SSD,Solid State Drives)与各个CPU内核之间则通过外围设备接口进行通信。
一方面,CPU在向多核的方向发展,但内存和存储都在另外的芯片里。多核CPU吞吐信息量成比例增加,与内存、存储的通信就越来越成为系统性能的瓶颈,所以无论计算系统的CPU多么强大,计算机系统中处理数据的速度受制于存储设备的接口速度,这使得计算机系统的数据处理速度大大降低。为了缓解通信瓶颈,CPU不得不采用越来越大的多级缓存。缓存是把内存中的内容复制,通常是用成本比DRAM高得多但速度更快的静态随机存取存储器(SRAM,Static Random Access Memory)设计的。这样的架构,费效比非常的差。半导体芯片的成本由其硅片的面积决定,而传统计算机架构带来的性能提升与其硅片面积的增加远远不成比例。
另一方面,互联网促进了大数据的应用,大型数据中心的耗电成为运营成本的一个重要部分。高速数据的传输距离越长,其功耗就越高,大量数据从存储设备被转移到内存中由CPU处理,消耗了很多能量,而绝大部分的数据处理都是查询、搜索一类的简单处理,并不需要高端的CPU。
因此,现有技术中的计算机架构因CPU与内存、存储之间存在的通信瓶颈,严重降低了计算系统的数据处理速度以及增大了计算系统的功耗,从而影响系统整体性能。
发明内容
本发明要解决的问题是现有技术中的计算机架构因CPU与内存、存储之间存在的通信瓶颈而严重降低了计算系统的数据处理速度以及增大了计算系统的功耗,从而影响系统整体性能。
为解决上述问题,本发明技术方案提供一种细胞阵列计算系统,包括:内控CPU、细胞阵列、细胞阵列总线、总线控制器、外部接口、存储接口以及至少一个第一存储器;所述第一存储器为采用整块读写的非易失性存储器;所述存储接口与所述细胞阵列总线、所述第一存储器相连,用于对所述第一存储器进行数据存储访问控制;所述细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维阵列或三维阵列,其中每一个细胞包括微处理器(MPU,Micro Processing Unit)和第二存储器,所述第二存储器为非易失(NV,NotVolatile)随机存储器,用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞储存各自在所述细胞阵列中的位置作为身份识别号(ID,identification)以供细胞中的软件或硬件读取;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据;所述内控CPU用于控制所述存储接口以及通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述内控CPU还用于管理存储数据,分配细胞中的资源完成计算任务;所述总线控制器用于协调所述细胞阵列总线上各个主设备对所述细胞阵列总线的控制权;所述细胞阵列总线上的主设备包括所述内控CPU、所述存储接口以及连接到所述外部接口的外部访问设备。
可选的,所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况中的至少一种:
按地址读写所述细胞阵列中任一细胞的第二存储器;
将数据广播到所述细胞阵列中目标区域内每一个细胞的第二存储器,并写入所述目标区域内每一个细胞的第二存储器中相同的相对地址;
给所述细胞阵列中任一细胞的微处理器发送指令、发送数据或读取状态;
给所述目标区域内所有细胞的微处理器广播指令。
可选的,所述细胞阵列中的细胞还包括细胞内总线控制器和细胞内部总线,所述细胞内总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述细胞内总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述第二存储器进行数据的读写操作。
可选的,所述存储接口通过连接访问通道与相应的第一存储器相连,每一个第一存储器支持一个或一个以上访问通道。
可选的,所述细胞阵列计算系统还包括通过所述细胞阵列总线与所述内控CPU相连的至少一个第三存储器,用于所述内控CPU计算时所涉及数据的随机存取。
可选的,所述第二存储器为磁性随机存储器(MRAM,Magnetic Random AccessMemory),所述第一存储器为NAND,所述存储接口为NAND控制器。
可选的,所述内控CPU、所述外部接口、所述存储接口、所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络集成于一个数据处理硅片中;每一个第一存储器对应为一个存储介质硅片;所述数据处理硅片和所有存储介质硅片被封装在一个芯片内。
可选的,所述细胞阵列计算系统还包括与所述外部接口相连的所述外部访问设备,用于通过控制所述细胞阵列总线实现对所述第二存储器的数据直接读写,或者通过所述内控CPU实现数据存储访问或数据处理请求。
可选的,所述外部访问设备包括主CPU、直接存储访问(DMA,Direct MemoryAccess)控制器和其他外部设备中的至少一种。
可选的,所述外部接口为外部内存接口或外部存储接口。
可选的,所述外部接口为外部内存接口;所述主CPU能通过所述外部内存接口直接读写所述细胞阵列中的所述第二存储器;所述总线控制器协调所述细胞阵列总线上各个主设备对所述细胞阵列总线的控制权包括:协调所述主CPU和内控CPU对所述细胞阵列总线的控制。
可选的,所述总线控制器在所述主CPU和内控CPU均存在对所述细胞阵列总线的需求时,将对所述细胞阵列总线的控制权优先分配给所述主CPU。
可选的,所述细胞阵列划分为一个以上小区,所述小区为由一个以上细胞组成的二维或三维的子细胞阵列;所述细胞阵列总线包括小区内部总线和小区外部总线,各小区均连接至所述小区外部总线,每个小区均包括连接于各自小区内部总线的所述存储接口、总线控制器以及内控CPU;每个小区的内控CPU控制本小区的存储接口以及通过本小区的小区内部总线与本小区内的每一个细胞进行通信,每个小区的内控CPU还管理本小区的存储数据,分配本小区内的细胞中的资源完成计算任务;每个小区的总线控制器负责协调本小区外部和本小区内的主设备对本小区的小区内部总线的控制权。
可选的,每个小区的总线控制器在本小区外部和本小区内的主设备均存在对本小区的小区内部总线的需求时,将对本小区的小区内部总线的控制权优先分配给本小区外部的主设备。
与现有技术相比,本发明的技术方案至少具有以下优点:
通过将一个以上兼具独立计算和存储功能的单元(称为“细胞”)组成二维或三维阵列(称为“细胞阵列”),其中每一个细胞包括微处理器和非易失随机存储器,所述非易失随机存储器既能支持所述微处理器进行计算时所涉及数据的随机存取,也能支持存储软件的指令代码和需要永久保存的数据,使内存、存储、计算三个功能集成到每个细胞中,并使各细胞之间形成密集的通信网络,一方面,内控CPU能通过细胞阵列总线与细胞阵列中的每一个细胞进行通信,另一方面,细胞阵列中的相邻细胞之间也能相互发送数据,由此能通过数据群发和内部网络,克服现有计算机架构因CPU与内存、存储之间存在的通信瓶颈,而基于上述细胞阵列、细胞阵列总线以及通信网络的计算架构所形成的计算系统,进一步还提供了与细胞阵列总线相连的存储接口以及外部接口,由此既能够支持经济且能存储海量数据的存储介质的扩展,又能兼容更多的现有设备,有助于大幅提高现有计算机系统的性能,相比传统的计算机架构,本发明技术方案的细胞阵列计算系统克服了现有计算机架构因CPU与内存、存储之间存在的通信瓶颈,能大幅度地降低了功耗,同时大幅度地提高了数据处理速度,而且还扩展了计算系统的大规模数据存储能力,从而提升系统的整体性能。
进一步地,通过形成“二级分区”的细胞阵列计算系统,能够克服“需要通过细胞阵列总线存储信息分配到各个细胞,而使细胞阵列总线的负载过重”的问题。
关于本发明技术方案提供的细胞阵列计算系统所体现的优势,具体分析如下:
1.省电:传输高速信息是非常耗电的,传输距离越远,耗电越高。各大数据中心的电费是运营成本的主要部分。在大数据的时代,把数据处理放到离存储最近的地方,在一个芯片内,能够节省大量的功耗,降低成本也对环境有益。
2.高速:参见本发明的实施例。通过把存储分到各个具有处理功能的芯片中,极大地提高了系统的存储带宽,相应地提高数据处理的速度。
3.与现有设备兼容:所述外部接口使用现有的外部内存接口或外部存储接口,产品(细胞阵列计算系统集成为芯片或芯片组的形式)可以直接插入到现有的服务器中进行升级。
附图说明
图1是现有技术中计算机架构的示意图;
图2是集成存储功能的细胞阵列计算系统的一种结构示意图;
图3是图2所示细胞阵列计算系统中将相邻的文件块存储在相邻细胞所连接的NAND芯片的示意图;
图4是本发明实施例提供的集成存储功能的细胞阵列计算系统的一种结构示意图;
图5是本发明实施例的一种相邻细胞之间通信方式的示意图;
图6是本发明实施例的另一种相邻细胞之间通信方式的示意图;
图7是本发明实施例的细胞的结构示意图;
图8是本发明实施例的细胞阵列中进行细胞间通信的细胞的结构示意图;
图9是本发明实施例的细胞阵列中细胞间通信的路径选择的示意图;
图10是本发明实施例的专职输出细胞的实施过程示意图;
图11是本发明实施例提供的集成存储功能的细胞阵列计算系统的另一种结构示意图。
具体实施方式
现有技术的计算机架构由于CPU与内存、存储之间存在通信瓶颈,从而严重降低了计算系统的数据处理速度以及增大了计算系统的功耗,影响了系统整体性能。
本申请发明人经过研究后考虑,若是把内存、存储、计算三个功能集成到一个芯片上来,形成相对简单但兼具独立计算和存储功能的单元,并使大量此类单元之间形成密集的通讯网络,以此实现数据群发功能和能够大规模平行传输数据的内部网络,便能开发出一种与人脑存在相似之处的计算架构,这相当于把大量的微型计算机做在一个芯片上。
为此,本发明技术方案提供一种与人脑结构相似的计算架构(本发明技术方案中将其称为“细胞阵列计算系统”),该计算架构由众多结构相对简单,兼具存储和计算功能,又有着密集网络连接的单元(本发明技术方案中将其称为“细胞”)组成,既能避免因远距离的数据传输而产生的高耗电,还能够有效地利用平行计算加快数据处理速度,更有效地克服了传统计算机架构中CPU与内存、存储之间的通信瓶颈,因此这种细胞阵列计算系统突破了传统计算架构的限制,极大地扩展CPU和内存、CPU和存储之间的通信带宽,大幅度地降低了功耗,同时大幅度地提高了速度。这种新计算架构将在大型计算、大数据处理、人工智能等领域中得到广泛的应用。
此外,为了更好地服务于大数据时代,本发明技术方案还对细胞阵列计算系统进行存储功能扩展,定义了接口的架构和产品形式,由此既能够支持经济且能存储海量数据的存储介质的扩展,使其成为具备大规模数据存储能力的细胞阵列计算系统,又能兼容更多的现有设备,有助于大幅提高现有计算机系统的性能。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例作详细的说明。
在详细描述本发明实施例提供的集成存储功能的细胞阵列计算系统之前,先对本申请发明人此前提出的另一种集成存储功能的细胞阵列计算系统作简单介绍。如图2所示,该集成存储功能的细胞阵列计算系统包括:内控CPU、细胞阵列、细胞阵列总线以及至少一个采用整块读写的非易失性存储器(以NAND闪存为例进行说明,图2中未示出);所述细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维阵列,其中每一个细胞包括微处理器(MPU)和非易失随机存储器(图2中以MRAM为例),用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞中还包括与所述微处理器相连的存储控制器(以NAND控制器为例,图2中的NANC即为NAND控制器),用于对与本细胞相连的所述采用整块读写的非易失性存储器(NAND闪存)进行数据存储访问控制;每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
图2所示的集成存储功能的细胞阵列计算系统,对存储接口(存储控制器)的定义是每一个细胞均拥有自己的存储接口,这种为细胞阵列计算系统扩展大规模数据存储能力的方式,既能避免因远距离的数据传输而产生的高耗电,还能够有效地利用各细胞的大规模平行计算加快数据处理速度,更有效地克服了传统计算机架构中CPU与内存、存储之间的通信瓶颈。
此外,当配合与图2所示细胞阵列计算系统相适应的文件存储方法时,还能够进一步提高数据处理效率。例如:在目标文件的存储过程中,会以所述采用整块读写的非易失性存储器中单个存储块的容量为单位对所述目标文件进行划分,由此得到多个文件块,每个文件块的大小等于所述存储块的容量,通过将目标文件所包含的相邻文件块通过相邻的细胞所连接的访问通道存储至所述采用整块读写的非易失性存储器,能够有效提高数据处理效率。如图3所示,某个文件A包括依次相邻的文件块,分别对应存储于NAND存储块Block1、Block2、Block3、Block4、Block5……,其中相邻文件块是通过相邻细胞的NAND控制器连接NAND访问通道以存储至相应的NAND芯片中的。这样,如果存储有相邻文件块的存储块之间有数据需要交换,则可以通过相邻细胞间的通信通道进行,而无需内控CPU的参与,由此进一步提高了数据处理效率。
然而,当大量细胞(几百个甚至几千个)集成在一个芯片上时,图2所示的这种扩展细胞阵列计算系统存储功能的架构需要大量外部导线,虽然有例如过硅通孔(TSV,ThroughSilicon Vias)这样的现有技术可以支持这样的产品,但这类技术工艺难度大,价格较高,因此需要更灵活的存储接口。
基于上述考虑,本发明实施例提供一种集成存储功能的细胞阵列计算系统,如图4所示,所述细胞阵列计算系统包括:内控CPU、细胞阵列、细胞阵列总线、总线控制器、外部接口、存储接口以及至少一个第一存储器(图4中未示出);所述第一存储器为采用整块读写的非易失性存储器;所述存储接口与所述细胞阵列总线、所述第一存储器相连,用于对所述第一存储器进行数据存储访问控制;所述细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维阵列或三维阵列,其中每一个细胞包括微处理器(MPU)和第二存储器,所述第二存储器为非易失随机存储器(图4中以MRAM为例),用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据;所述内控CPU用于控制所述存储接口以及通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述内控CPU还用于管理存储数据,分配细胞中的资源完成计算任务;所述总线控制器用于协调所述细胞阵列总线上各个主设备对所述细胞阵列总线的控制权;所述细胞阵列总线上的主设备包括所述内控CPU、所述存储接口以及连接到所述外部接口的外部访问设备。
需要说明的是,图4所示的细胞阵列计算系统扩展大规模数据存储能力的方式是将存储接口连接于细胞阵列总线,而非每一个细胞,如此便无需大量外部导线,工艺难度和价格均相对较低,这样的存储接口显得更为灵活。
在本实施例中,所述非易失随机存储器是以MRAM为例进行说明。在其他实施例中,随着非易失随机存储技术的进一步发展与成熟,所述非易失随机存储器也可以采用另外几种有潜力的技术实现,例如:相变随机存储器(PCRAM,Phase Change Random AccessMemory)、阻变式随机存储器(Resistive Random Access Memory)、铁电随机存储器(FeRAM,Ferroelectric Random Access Memory)、铁电动态随机存储器(FEDRAM,Ferroelectric Dynamic Random Access Memory)等等。
MRAM是一种新的内存和存储技术,可以像SRAM/DRAM一样快速随机读写,并且比DRAM快;还可以像闪存一样在断电后永久保留数据,并且不像NAND闪存,MRAM可以不限次地擦写,使用寿命较长。此外,MRAM的经济性想当地好,单位容量占用的硅片面积比SRAM(通常作为CPU的缓存)有很大的优势,有望接近DRAM的水平。它的性能也相当好,读写时延接近最好的SRAM,功耗则在各种内存和存储技术最好。而且MRAM不像DRAM以及Flash那样与标准CMOS半导体工艺不兼容,MRAM可以和逻辑电路集成到一个芯片中。通过采用MRAM技术,就可以把内存、存储、计算三个功能集成到一个芯片上来,使新计算架构的实现便能成为可能。
本实施例中,所述微处理器具有通常CPU的功能,还可以根据具体的应用场景添加浮点计算处理器(FPU,Float Point Unit)、图像处理器等单元,因此,所述微处理器中可以集成有浮点计算处理器和图像处理器中的至少一种。
在实际实施时,所述内控CPU、所述外部接口、所述存储接口、所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络可以集成于一个数据处理硅片中;每一个第一存储器对应为一个存储介质硅片;所述数据处理硅片和所有存储介质硅片既可以通过主板线路实现连接,也可以通过3D封装技术被封装在一个芯片内,即整个细胞阵列计算系统可以被封装在一个芯片内。
需要说明的是,虽然MRAM是非易失内存,可以用来存储数据,但可见的将来,MRAM不是最经济的存储海量数据的介质,因此本发明实施例中使用其他更经济的存储介质作为所述第一存储器,比如NAND闪存。当所述第一存储器的数量为一个以上时,相应地,所述细胞阵列计算系统中可以包括多个存储介质硅片。
所述存储接口为连接存储介质的接口,如果所述第一存储器具体为NAND闪存,则所述存储接口具体就是NAND控制器,NAND控制器可以有多个NAND通道,即每一个所述第一存储器可以支持一个或一个以上访问通道,所述存储接口通过连接访问通道与相应的第一存储器相连。
在实际实施时,以未来几年半导体行业的发展速度估计,所述数据处理硅片上可以集成一个512个细胞的阵列,总MRAM容量为128MB~512MB,内控CPU则可以采用市场上流行的ARM Cortex R系列,集成到芯片中的NAND闪存可以超过1TB,可以使用64个通道。这样的一个芯片具有非常强大存储和信息处理能力。
此外,所述内控CPU也可以有自己的专用内存块,仍连接在细胞阵列总线上,因此在本实施例中,所述细胞阵列计算系统还可以包括通过所述细胞阵列总线与所述内控CPU相连的至少一个第三存储器,用于所述内控CPU计算时所涉及数据的随机存取。实际实施时,所述第三存储器具体可以是随机存储器,例如MRAM、DRAM或SRAM等。因此,所述内控CPU还可以连接更多的RAM。
本实施例中,所述外部接口既可以为外部内存接口,也可以是外部存储接口。实际实施时,所述外部接口可以使用计算机通用的存储接口,比如PCIe、SATA,也可以使用计算机通用的内存接口,比如DDR接口。如果选择后者,则这个细胞阵列计算系统封装成的芯片可以作为一个与内存芯片管脚兼容的芯片对原有计算机中的内存芯片进行替换,因此可以具有良好的与现有设备的兼容性。
在实际实施时,所述外部接口可以采用DDR4,芯片组可以DIMM内存条插入服务器的内存槽中,每一个内存条上有16个芯片,把系统的存储带宽扩大了16倍。在原有的硬件上更换内存条,使用新的软件系统,就可以把原来系统的性能提高百倍以上。
本实施例中,所述细胞阵列计算系统还可以包括与所述外部接口相连的所述外部访问设备,用于通过控制所述细胞阵列总线实现对所述第二存储器的数据直接读写,或者通过所述内控CPU实现数据存储访问或数据处理请求。所述外部访问设备可以包括主CPU、直接存储访问(DMA)控制器和其他外部设备中的至少一种。实际实施时,在总线控制器的协调下,外部访问设备可以通过外部接口控制细胞阵列总线,例如:当外部接口为外部内存接口,外部访问设备为主CPU时,则主CPU能够通过该外部内存接口直接读写细胞阵列中的MRAM;或者,外部访问设备也可以通过外部接口向内控CPU提出数据存储访问或数据处理请求,内控CPU可以控制NAND控制器以实现对NAND闪存的存储访问,也可以分配细胞中的资源完成与数据处理请求相关的计算任务,或是根据外部访问设备提出的数据存储访问请求去访问某个或某几个细胞中存储的数据。
如前所述,总线控制器负责协调细胞阵列总线上各个主设备对总线的控制权。本实施例中,内控CPU、以及具备DMA功能的NAND控制器,都是细胞阵列总线上的主设备;当外部访问设备连接到所述外部接口时,则外部访问设备可以作为细胞阵列总线上的主设备,例如主CPU通过外部接口实现对细胞阵列总线的控制。
如前所述,如果外部接口为外部内存接口,系统中的主CPU还可以通过该外部内存接口直接读写细胞阵列中的MRAM,因此总线控制器还需要协调主CPU和内控CPU对细胞阵列总线的控制。协调的最佳策略是:主CPU最高优先,其次内控CPU。因此,在主CPU和内控CPU均存在对细胞阵列总线的需求时,总线控制器将对细胞阵列总线的控制权优先分配给主CPU。
本实施例中,每一个细胞储存各自在细胞阵列中的位置作为ID,所述位置可以采用平面直角坐标系中第一象限的坐标表示方式,若(x,y)表示某个细胞在细胞阵列中的位置,则(x,y)可以作为ID存储在该细胞中,细胞中的软件和硬件可以读取这个ID,在具体的操作中使用。
本实施例中,所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况:
按地址读写所述细胞阵列中任一细胞的非易失随机存储器;
将数据广播到所述细胞阵列中目标区域内每一个细胞的非易失随机存储器,并写入该目标区域内每一个细胞的非易失随机存储器中相同的相对地址;
给所述细胞阵列中任一细胞的微处理器发送指令(包括开始、暂停)、发送数据或读取状态;
给目标区域内所有细胞的微处理器广播指令。
因此,内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信既可以是通过细胞阵列总线读写各个细胞的内存,也可以是将数据或指令在细胞阵列中进行广播。
当然,在其他实施例中,所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信也可以是上述情况中的一种或多种组合。
需要说明的是,本发明实施例中的“目标区域”是指由所述内控CPU或所述细胞阵列中的任一细胞选择一个以上存在相邻关系的细胞所构成的区域,该区域内的细胞是内控CPU或细胞阵列中的任一细胞广播/群发数据或指令的对象。本实施例中,所述目标区域具体以矩形区域(a≤x≤b,c≤y≤d,其中a、b分别是该矩形区域在平面直角坐标系中x轴方向的边界坐标,c、d分别是该矩形区域在平面直角坐标系中y轴方向的边界坐标)为例进行说明。在其他实施例中,所述目标区域也可以是其他形状构成的区域,例如菱形区域、三角形区域、六边形区域等等。
此外,本发明实施例中“广播”的概念不同于“群发”的概念,前者可以是发一遍数据或指令使得所有的对象都能接收到,而后者则可以是分很多遍发给不同的对象。
除了通过内控CPU对所述细胞阵列中任一细胞(包括细胞中的微处理器或非易失随机存储器)进行广播,在所述细胞阵列内,还有一个通信网络,该通信网络能够使得一个细胞可以在其MPU的控制下,向与它相邻的细胞发送数据。如图5所示,在一平面中,任一细胞可以与其上、下、左、右四个方向的相邻细胞进行通信。当然,相邻细胞之间通信方式的概念并不仅仅局限于“上、下、左、右四个方向”,在线路布局能够支持的情况下,也可以是“上、下、左、右、左上、右上、左下、右下八个方向”,如图6所示,任一细胞可以与其上、下、左、右、左上、右上、左下、右下八个方向的相邻细胞进行通信。
如图7所示,在本实施例中,所述细胞阵列中的细胞具体还可以包括细胞内总线控制器和细胞内部总线,所述细胞内总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述细胞内总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接MRAM进行数据的读写操作。
本领域技术人员知晓,一个比较简单而性能很好的CPU,如ARM Cotex M0,只有5万个左右的MOS管,即使适度增加FPU功能,也比顶级CPU的上亿个MOS管小得多,提升CPU性能带来的面积(成本)增加是不成比例的。把一个大CPU用许多小CPU替换,在总成本一样的情况下,总计算能力一定提高很多倍。然而传统计算机架构受制于通信瓶颈,使用大量CPU内核带来的实际性能提升非常有限。
而本发明技术方案提供的细胞阵列计算架构通过数据广播和内部网络,解决了通信瓶颈的问题,从而提升计算系统的整体性能,并能使费效比较佳。
初步的研究表明,如果使用类似于Cortex M0的MPU,配合32KB的内存,组成一个细胞。使用40纳米的工艺,可以把3000个这样的细胞做在一个芯片上,这是非常强大的计算能力。进一步的研究表明,使用这种方法,可以在同样的硅片面积上超越当代顶级CPU的计算能力(一般用每秒浮点运算次数(FLOPS,floating-point operations per second)测量)。由于本发明技术方案的细胞阵列计算架构不再面临与内存接口的瓶颈,在解决很多实际问题中,表现的会更好。
下面再介绍一下上述细胞阵列计算系统中的通信方法,包括:内控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对于该细胞的非易失随机存储器的读写操作完成之后才能进行。
本实施例中,对于细胞阵列的内部网络的实施,不但可以发送数据到相邻细胞,而且还把它扩展到可以从一个细胞发送到任何一个细胞,即能够实现细胞阵列中的细胞间通信。
具体地,所述细胞阵列计算系统的细胞阵列中的任意两个细胞之间能在不依靠内控CPU的情况下进行通信,参与细胞间通信的细胞包含起点细胞、终点细胞和中转细胞,所述起点细胞为向所述终点细胞发出数据的细胞,所述终点细胞为最终接收所述起点细胞所发数据的细胞,所述中转细胞为沿细胞间通信路径依次相邻且通过所述通信接口中转所述起点细胞所发数据的细胞,所述细胞间通信路径是由所述起点细胞、中转细胞和终点细胞所构成的数据收发路径。
通过细胞阵列中相邻细胞之间的通信接口,实现相邻细胞之间对于数据的多次中转,使细胞阵列中的任意两个细胞之间不依靠内控CPU便能进行通信,提高了细胞间通信的效率,也降低了内控CPU的处理负担,从而能进一步提升计算系统的整体性能。
需要说明的是,所述起点细胞、终点细胞和中转细胞均是相对于某一次细胞间通信过程而言的相对概念,因为某个起点细胞完全也可能作为其他细胞间通信过程中的中转细胞或终点细胞,某个终点细胞也可能作为其他细胞间通信过程中的中转细胞或起点细胞。
在具体实施时,所述细胞阵列中的细胞还可以包括与所述微处理器相连的网络控制器,所述网络控制器用于在细胞间通信时对发出的数据、中转的数据或者最终接收的数据进行收发控制,还用于向所述微处理器发送中断信号。本实施例中,通过在每个细胞内设置一个网络控制器,以便在不干扰MPU的情况下快速地中转数据,由此降低细胞中MPU的处理负担。在其他实施例中,也可以不设置所述网络控制器,而是由MPU实现数据的中转。
在本实施例中,“发出的数据”指的是所述起点细胞自身所发的数据;“中转的数据”指的是所述中转细胞中转所述起点细胞所发出的数据,该数据并非由本细胞自身所需要发出的;“最终接收的数据”指的是终点细胞所接收的数据,该数据在经过多次中转之后已到达目的地,将不再进行中转。“发出的数据”、“中转的数据”和“最终接收的数据”,就内容而言可能为相同的数据,只不过属于不同通信阶段的不同称呼。
在具体实施时,所述细胞阵列中的细胞还可以包括与所述网络控制器相连的一组或一组以上先入先出队列,各组先入先出队列分别对应一个与本细胞相邻的细胞,每一组先入先出队列包括输入先入先出队列和输出先入先出队列,所述输入先入先出队列用于存储输入本细胞进行中转的数据或最终接收的数据,所述输出先入先出队列用于存储从本细胞输出的需进行中转的数据或本细胞向其他细胞发出的数据。
若在以图5所示相邻细胞之间通信方式为例的情况下,本实施例的细胞阵列中进行细胞间通信的细胞的结构如图8所示,图8中的网络控制器分别与MPU以及4组FIFO队列相连,各组FIFO队列分别与本细胞在“二维平面的上、下、左、右四个方向”相邻的细胞一一对应,具体实施时,每两个相邻细胞之间的通信通道可以共用一组相应的FIFO队列。每组FIFO队列均包含输入FIFO和输出FIFO,站在其中一个细胞的角度上而言,输入FIFO存放从其他相邻细胞输入的数据,输出FIFO存放从本细胞向其他相邻细胞输出的数据,相邻细胞的输出FIFO对于本细胞来说属于输入FIFO,本细胞的输出FIFO对于相邻细胞来说属于输入FIFO。
需要说明的是,图8所示的细胞中对应存在4组FIFO队列,若是位于矩形的细胞阵列的4个角的细胞,则该细胞仅有两个相邻细胞,此时该细胞对应2组FIFO队列,若是位于矩形的细胞阵列的4条边的细胞,则该细胞有三个相邻细胞,此时该细胞对应3组FIFO队列。
本实施例中,网络控制器还和该细胞内的MPU连接,给它发中断信号,如FIFO空、FIFO满、新到数据、数据送出等等;MPU则可以通过网络控制器发出数据,发出的数据通常会先放入相应的一个输出FIFO队列中。
需要说明的是,图8中的细胞结构仅仅示出了与进行细胞间通信相关的模块,本领域技术人员能够理解的是,图8所示的细胞结构完全可以与图7所示的细胞结构相结合。
此外,本实施例中采用FIFO队列存储输入和输出某个细胞的数据,如此能够使细胞间通信过程中的数据中转更有效率,减少MPU的处理负荷。在其他实施例中,输入和输出某个细胞的数据也可以通过寄存器实现。
本发明实施例提供的上述细胞阵列计算系统中细胞之间的通信方法,包括:所述细胞阵列中的起点细胞将向终点细胞发出的数据,按选定的发送方向发送至与所述起点细胞相邻的细胞;当所述细胞阵列中的任一细胞接收到相邻细胞发出的数据或中转的数据时,若根据接收到的数据中所标明的所述终点细胞的ID判断出本细胞为终点细胞,则将接收到的数据存入本细胞的非易失随机存储器,或者通知本细胞的微处理器对接收的数据进行处理,否则本细胞作为中转细胞,在选定发送方向后将所述接收到的数据中转给与本细胞相邻的细胞。
在具体实施时,细胞间通信过程中涉及的每一条数据都会含有起点细胞和终点细胞的ID,任一细胞根据接收到的数据中所标明的终点细胞的ID便可以判断该数据是发给本细胞的还是需要进一步中转给其他相邻细胞的。一条数据通过相邻细胞间的连接,经过多次中转,到达终点细胞,若该终点细胞需要就起点细胞所发数据作出反馈,则可以根据起点细胞的ID将反馈数据发向起点细胞,所述终点细胞以接收到的数据中所标明的起点细胞的ID作为终点细胞的ID,在对接收到的数据进行处理后所得到的反馈数据中予以标明,此时该终点细胞成为新的一次细胞间通信时的起点细胞,原先的起点细胞则成为该次细胞间通信时的终点细胞。
具体实施时,在标明终点细胞的ID的同时,所述起点细胞向终点细胞发出的数据中还标明所述终点细胞中要被访问的地址或者MPU;所述将接收到的数据存入本细胞的非易失随机存储器,是所述终点细胞在识别出接收到的数据中所标明的要被访问的地址之后进行的;所述通知本细胞的MPU对接收的数据进行处理,是所述终点细胞在识别出接收到的数据中所标明的MPU之后进行的。
在实际实施时,若终点细胞在识别出接收到的数据中所标明的要被访问的地址后,则接收的数据可以被该终点细胞内的网络控制器直接写入该细胞的非易失随机存储器中的相应地址,在这种情况下,细胞可以实现“繁殖”,一个细胞可以给另外一个细胞下载程序;若终点细胞在识别出接收到的数据中所标明的MPU之后,接收的数据将交由终点细胞内的MPU处理。
在本实施例中,由于细胞阵列中的细胞还包括与MPU相连的网络控制器,因此所述起点细胞向终点细胞发出数据、所述细胞阵列中的任一细胞接收相邻细胞发出的数据或中转的数据并判断本细胞为最终细胞或是中转细胞、将接收到的数据存入本细胞的非易失随机存储器或者通知本细胞的MPU对接收的数据进行处理,均是在所述网络控制器的控制下完成的。
具体实施时,所述起点细胞向终点细胞发出的数据先由所述网络控制器输入所述输出先入先出队列,再由所述网络控制器从所述输出先入先出队列输出至与所述起点细胞相邻的细胞;若所述细胞阵列中的任一细胞接收到相邻细胞发出的数据或中转的数据,则将接收到的数据输入所述输入先入先出队列,并在判断出接收到的数据需要进行中转时再将该数据输入所述输出先入先出队列。
此外,若所述网络控制器判断出所述输入先入先出队列或输出先入先出队列为空或者已满,或接收到相邻细胞发出或中转的数据,或向相邻细胞发出数据或中转数据,则向所述微处理器发送中断信号。
在具体实施时,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述终点细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述终点细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述终点细胞的细胞。当然,所述待选相邻细胞的数量有可能为两个,此时则选择这两个待选相邻细胞中输出数据的通信任务更少的细胞作为中转细胞。
本实施例中,所述起点细胞或中转细胞通过上述方式选定发送方向,实际上也可以认为是细胞阵列中细胞间通信的路径选择过程。可以参阅图9,图9中的每个矩形表示细胞阵列中的一个细胞,图9中示出的所有细胞为整个细胞阵列中的一部分,假设相邻细胞之间按图5所示的通信方式进行。
如果A点表示一个起点细胞,该起点细胞准备向C点所在的终点细胞发出数据,由于A点与C点之间显然是能够形成一条直线的通信路径,则A点所在的细胞将数据发向与其相邻的B点所在的细胞,同理,B点所在的细胞作为中转细胞,继续沿着A点与C点之间的直线向C点所在细胞的方向中转数据,在A点与C点之间形成的细胞间通信路径上依次相邻的细胞,将A点所在细胞发出的数据多次转发,直至传送到C点所在细胞。
如果D点表示另一个起点细胞,该起点细胞准备向G点所在的终点细胞发出数据,由于D点与G点之间显然是无法形成一条直线的通信路径,则在与D点所在细胞相邻的细胞之中,E点所在的细胞和F点所在的细胞显然更靠近G点所在的终点细胞,则这两个细胞属于D点所在细胞的待选相邻细胞,可以选择其中输出数据的通信任务更少的细胞作为中转细胞,若这两个细胞输出数据的通信任务相同,则随意选择一个细胞作为中转细胞。如图9所示,选择E点所在的细胞还是F点所在的细胞,将形成不同的细胞间通信路径。
需要说明的是,本实施例中是以图5所示的相邻细胞之间的通信方式为例对细胞间通信的路径选择进行说明的,本领域技术人员能够理解的是,若是采用图6所示的相邻细胞之间的通信方式,则可供选择的发送方向将会更多。
综上,在实际实施时,每一个发出或中转数据的细胞,其网络控制器都必须选择一个相邻的细胞作为下一站。当起点和终点在一条直线上时,合理的选择一般只有一个;其他情况下,有两个同样合理的选择,网络控制器将选择一个交通相对不忙的邻居。
如果某个输入FIFO队列有数据进入,则网络控制器将首先检查它:
如果终点是本细胞,那么:若终点是特定相对地址,由于网络控制器具有直接内存访问(DMA,Direct Memory Access)的能力,将把接收到的数据直接存入所述非易失随机存储器中的相应地址,并用中断通知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,表明本细胞为所述专职输出细胞,则将所述输出数据存入本细胞的非易失随机存储器,否则本细胞作为中转细胞,在选定发送方向后将所述输出数据中转给与本细胞相邻的细胞。
所述其他细胞将所述输出数据发送至所述专职输出细胞的过程中,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述专职输出细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述专职输出细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述专职输出细胞的细胞。
本发明实施例的专职输出细胞的实施过程还可以参阅图10。图10示出了内控CPU、细胞阵列以及细胞阵列总线,细胞阵列内的一个个小方格简单地表示出一个个细胞,其中J点所在的细胞(即粗线框小方格表示的细胞)为专职输出细胞,图10还进一步示出了专职输出细胞的结构,如图10中虚线箭头所示,可以看到,专职输出细胞中的MRAM中设有存储其他细胞给所述内控CPU的所有输出数据的FIFO队列。
假设H点所在的细胞和I点所在的细胞需要向内控CPU提供输出数据,则可以通过细胞之间的通信方式将所述输出数据发送至J点所在的细胞,H点至J点的细胞间通信路径以及I点至J点的细胞间通信路径,请参阅图10。由于细胞间通信方式此前已有详细描述,此处不再赘述。
J点所在的细胞接收到H点所在的细胞或I点所在的细胞发出的输出数据后,则可以发送通知读取的中断信号给内控CPU,内控CPU接收到该通知读取的中断信号后,便可以通过细胞阵列总线从J点所在的细胞中读取该输出数据。
通过在细胞阵列中设置专职输出细胞,以所述专职输出细胞作为所述终点细胞接收并存储其他细胞给内控CPU的输出数据,并以中断信号的方式通知所述内控CPU读取所述输出数据,如此能够在只有少数几个细胞需要向内控CPU输出数据时提高内控CPU读取输出数据的效率。
下面再介绍本发明实施例提供的细胞阵列计算系统的另一种结构。
图4所示的细胞阵列计算系统如此设计存在的一个问题是,需要通过总线存储信息分配到各个细胞,总线负载比较重。解决这个问题的一个方法是,把图4所示的结构作为细胞阵列的一个小区,每个小区有自己的存储接口(NAND控制器)和总线控制器以及内控CPU。每个小区的总线控制器负责协调外部和内控CPU、NAND控制器对小区内部总线的需求,最佳策略依然是小区外部的主设备对于小区内部总线的需求优先。
如图11所示,多个小区组成阵列,每个小区都连接在细胞阵列总线上,每个小区内均采用如图4所示的架构,如此形成“二级分区”的细胞阵列计算系统,数据存储访问或数据处理请求可以被分散至各个小区进行处理,而不会使所有需求均堆积于细胞阵列总线上,能够克服“需要通过细胞阵列总线存储信息分配到各个细胞,而使细胞阵列总线的负载过重”的问题。继续参阅图11,在本发明上一实施例基础上,本发明另一实施例提供的细胞阵列计算系统中,所述细胞阵列划分为一个以上小区,所述小区为由一个以上细胞组成的二维或三维的子细胞阵列;所述细胞阵列总线包括小区内部总线和小区外部总线,各小区均连接至所述小区外部总线,每个小区均包括连接于各自小区内部总线的所述存储接口、总线控制器以及内控CPU(图11中分别标识为NAND控制器、小区总线控制器以及小区内控CPU),每个小区内的各个细胞(细胞中的MPU和MRAM未标示,仅以矩形表示)均连接于本小区内的小区内部总线上;每个小区的内控CPU控制本小区的存储接口以及通过本小区的小区内部总线与本小区内的每一个细胞进行通信,每个小区的内控CPU还管理本小区的存储数据,分配本小区内的细胞中的资源完成计算任务;每个小区的总线控制器负责协调本小区外部和本小区内的主设备对本小区的小区内部总线的控制权。
具体实施时,每个小区的总线控制器在本小区外部和本小区内的主设备均存在对本小区的小区内部总线的需求时,将对本小区的小区内部总线的控制权优先分配给本小区外部的主设备。
需要说明的是,图11中并未示出与细胞阵列总线相连的外部接口以及分别与各个NAND控制器相连的NAND闪存,本领域技术人员能够理解,其具体实施完全可以参考图4所示细胞阵列计算系统的实施方式。
“二级分区”的细胞阵列计算系统的具体实施可以参考图4所示细胞阵列计算系统的相关实施内容,此处不再赘述。
需要指出的是,本发明实施例以所述细胞阵列具体为二维细胞阵列为例对细胞阵列计算系统进行说明的,在其他实施例中,所述细胞阵列也可以是三维细胞阵列,所述三维细胞阵列是由一个以上二维细胞阵列叠合而成,此时细胞阵列中“相邻细胞”的概念不仅仅局限于二维平面,而是扩展到三维空间。若是二维细胞阵列中采用如图3所示的相邻细胞之间的通信方式,则在空间直角坐标系中,任一细胞在x轴正反方向、y轴正反方向和z轴正反方向这六个方向均具有相邻的细胞。在实际实施时,当多片2D细胞阵列芯片可以叠合在一起组成3D芯片时,通过TSV在相邻的细胞间建立纵向联系,即分别位于相邻两个二维细胞阵列的相邻细胞之间通过TSV建立通信联系。3D的细胞阵列芯片,在保持低功耗优势的同时,加大了细胞阵列的规模,拓展了内部通信的带宽。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (14)
1.一种细胞阵列计算系统,其特征在于,包括:内控CPU、细胞阵列、细胞阵列总线、总线控制器、外部接口、存储接口以及至少一个第一存储器;
所述第一存储器为采用整块读写的非易失性存储器;所述存储接口与所述细胞阵列总线、所述第一存储器相连,用于对所述第一存储器进行数据存储访问控制;
所述细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维阵列或三维阵列,其中每一个细胞包括微处理器和第二存储器;所述第二存储器为非易失随机存储器,用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;
每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;
所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据;
所述内控CPU用于控制所述存储接口以及通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述内控CPU还用于管理存储数据,分配细胞中的资源完成计算任务;
所述总线控制器用于协调所述细胞阵列总线上各个主设备对所述细胞阵列总线的控制权;所述细胞阵列总线上的主设备包括所述内控CPU、所述存储接口以及连接到所述外部接口的外部访问设备。
2.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况中的至少一种:
按地址读写所述细胞阵列中任一细胞的第二存储器;
将数据广播到所述细胞阵列中目标区域内每一个细胞的第二存储器,并写入所述目标区域内每一个细胞的第二存储器中相同的相对地址;
给所述细胞阵列中任一细胞的微处理器发送指令、发送数据或读取状态;
给所述目标区域内所有细胞的微处理器广播指令。
3.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述细胞阵列中的细胞还包括细胞内总线控制器和细胞内部总线,所述细胞内总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述细胞内总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述第二存储器进行数据的读写操作。
4.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述存储接口通过连接访问通道与相应的第一存储器相连,每一个第一存储器支持一个或一个以上访问通道。
5.根据权利要求1所述的细胞阵列计算系统,其特征在于,还包括通过所述细胞阵列总线与所述内控CPU相连的至少一个第三存储器,用于所述内控CPU计算时所涉及数据的随机存取。
6.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述第二存储器为MRAM,所述第一存储器为NAND,所述存储接口为NAND控制器。
7.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述内控CPU、所述外部接口、所述存储接口、所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络集成于一个数据处理硅片中;每一个第一存储器对应为一个存储介质硅片;所述数据处理硅片和所有存储介质硅片被封装在一个芯片内。
8.根据权利要求1所述的细胞阵列计算系统,其特征在于,还包括与所述外部接口相连的所述外部访问设备,用于通过控制所述细胞阵列总线实现对所述第二存储器的数据直接读写,或者通过所述内控CPU实现数据存储访问或数据处理请求。
9.根据权利要求8所述的细胞阵列计算系统,其特征在于,所述外部访问设备包括主CPU、DMA控制器和其他外部设备中的至少一种。
10.根据权利要求9所述的细胞阵列计算系统,其特征在于,所述外部接口为外部内存接口或外部存储接口。
11.根据权利要求10所述的细胞阵列计算系统,其特征在于,所述外部接口为外部内存接口;所述主CPU能通过所述外部内存接口直接读写所述细胞阵列中的所述第二存储器;所述总线控制器协调所述细胞阵列总线上各个主设备对所述细胞阵列总线的控制权包括:协调所述主CPU和内控CPU对所述细胞阵列总线的控制。
12.根据权利要求11所述的细胞阵列计算系统,其特征在于,所述总线控制器在所述主CPU和内控CPU均存在对所述细胞阵列总线的需求时,将对所述细胞阵列总线的控制权优先分配给所述主CPU。
13.根据权利要求1所述的细胞阵列计算系统,其特征在于,所述细胞阵列划分为一个以上小区,所述小区为由一个以上细胞组成的二维或三维的子细胞阵列;所述细胞阵列总线包括小区内部总线和小区外部总线,各小区均连接至所述小区外部总线,每个小区均包括连接于各自小区内部总线的所述存储接口、总线控制器以及内控CPU;每个小区的内控CPU控制本小区的存储接口以及通过本小区的小区内部总线与本小区内的每一个细胞进行通信,每个小区的内控CPU还管理本小区的存储数据,分配本小区内的细胞中的资源完成计算任务;每个小区的总线控制器负责协调本小区外部和本小区内的主设备对本小区的小区内部总线的控制权。
14.根据权利要求13所述的细胞阵列计算系统,其特征在于,每个小区的总线控制器在本小区外部和本小区内的主设备均存在对本小区的小区内部总线的需求时,将对本小区的小区内部总线的控制权优先分配给本小区外部的主设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610203860.4A CN107291209B (zh) | 2016-04-01 | 2016-04-01 | 细胞阵列计算系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610203860.4A CN107291209B (zh) | 2016-04-01 | 2016-04-01 | 细胞阵列计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291209A CN107291209A (zh) | 2017-10-24 |
CN107291209B true CN107291209B (zh) | 2021-02-09 |
Family
ID=60087330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610203860.4A Active CN107291209B (zh) | 2016-04-01 | 2016-04-01 | 细胞阵列计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291209B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635622B2 (en) * | 2018-04-03 | 2020-04-28 | Xilinx, Inc. | System-on-chip interface architecture |
US10866753B2 (en) | 2018-04-03 | 2020-12-15 | Xilinx, Inc. | Data processing engine arrangement in a device |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341242A (zh) * | 1999-01-21 | 2002-03-20 | 索尼电脑娱乐公司 | 高速处理器系统,使用该系统的方法和记录介质 |
CN101354694A (zh) * | 2007-07-26 | 2009-01-28 | 上海红神信息技术有限公司 | 基于mpu架构的超高扩展超级计算系统 |
CN101811502A (zh) * | 2010-01-07 | 2010-08-25 | 中国科学院半导体研究所 | 基于并行处理的快速车道线检测装置 |
CN102947818A (zh) * | 2010-05-19 | 2013-02-27 | 加利福尼亚大学董事会 | 神经处理单元 |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN104009749A (zh) * | 2014-03-19 | 2014-08-27 | 中国人民解放军国防科学技术大学 | 一种可重构硬件电路的模块化自组织配置电路 |
CN104715283A (zh) * | 2015-04-08 | 2015-06-17 | 兰州理工大学 | 一种模拟神经元互连系统及采用该系统的可编程神经元阵列芯片 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6073185A (en) * | 1993-08-27 | 2000-06-06 | Teranex, Inc. | Parallel data processor |
US8058899B2 (en) * | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
KR20090103070A (ko) * | 2008-03-27 | 2009-10-01 | 삼성전자주식회사 | 멀티 링크 아키텍쳐에서 저장 상태정보의 다이렉트전송기능을 갖는 멀티 프로세서 시스템 |
-
2016
- 2016-04-01 CN CN201610203860.4A patent/CN107291209B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1341242A (zh) * | 1999-01-21 | 2002-03-20 | 索尼电脑娱乐公司 | 高速处理器系统,使用该系统的方法和记录介质 |
CN101354694A (zh) * | 2007-07-26 | 2009-01-28 | 上海红神信息技术有限公司 | 基于mpu架构的超高扩展超级计算系统 |
CN101811502A (zh) * | 2010-01-07 | 2010-08-25 | 中国科学院半导体研究所 | 基于并行处理的快速车道线检测装置 |
CN102947818A (zh) * | 2010-05-19 | 2013-02-27 | 加利福尼亚大学董事会 | 神经处理单元 |
CN103019656A (zh) * | 2012-12-04 | 2013-04-03 | 中国科学院半导体研究所 | 可动态重构的多级并行单指令多数据阵列处理系统 |
CN104009749A (zh) * | 2014-03-19 | 2014-08-27 | 中国人民解放军国防科学技术大学 | 一种可重构硬件电路的模块化自组织配置电路 |
CN104715283A (zh) * | 2015-04-08 | 2015-06-17 | 兰州理工大学 | 一种模拟神经元互连系统及采用该系统的可编程神经元阵列芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN107291209A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108459974B (zh) | 集成闪存的高带宽存储器设备 | |
CN111279322B (zh) | 一种处理系统和在3d堆栈存储器中混写的方法 | |
US11507301B2 (en) | Memory module implementing memory centric architecture | |
JP7349812B2 (ja) | メモリシステム | |
CN105393227A (zh) | 存储器控制的数据移动及时序 | |
KR20190070915A (ko) | 분산된 gpu들을 위해 데이터 로컬리티를 개선하기 위한 매커니즘 | |
CN105718994A (zh) | 细胞阵列计算系统 | |
CN105718392B (zh) | 细胞阵列文件存储系统及其文件存储设备与文件存储方法 | |
US20210286551A1 (en) | Data access ordering for writing-to or reading-from memory devices | |
TW202211034A (zh) | 處理資料集的方法及系統、以及記憶體模組 | |
CN107291209B (zh) | 细胞阵列计算系统 | |
JP7330694B2 (ja) | コンピュータシステム及びその動作方法 | |
KR102605205B1 (ko) | 메모리 장치 및 프로세싱 시스템 | |
US12014052B2 (en) | Cooperative storage architecture | |
US20240045615A1 (en) | Memory controller for a high capacity memory circuit with large number of independently accessible memory banks | |
CN105718990B (zh) | 细胞阵列计算系统以及其中细胞之间的通信方法 | |
Khalifa et al. | Memory controller architectures: A comparative study | |
CN116825160A (zh) | 自适应字线刷新 | |
CN107341129B (zh) | 细胞阵列计算系统及其测试方法 | |
US20220108743A1 (en) | Per bank refresh hazard avoidance for large scale memory | |
US20230343381A1 (en) | Bank-Level Self-Refresh | |
CN118012794B (zh) | 计算芯粒及电子设备 | |
US20230343380A1 (en) | Bank-Level Self-Refresh | |
EP4375840A1 (en) | Memory controller, electronic system including the same and method of controlling memory access | |
CN117389483B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |