CN105718392B - 细胞阵列文件存储系统及其文件存储设备与文件存储方法 - Google Patents

细胞阵列文件存储系统及其文件存储设备与文件存储方法 Download PDF

Info

Publication number
CN105718392B
CN105718392B CN201610027777.6A CN201610027777A CN105718392B CN 105718392 B CN105718392 B CN 105718392B CN 201610027777 A CN201610027777 A CN 201610027777A CN 105718392 B CN105718392 B CN 105718392B
Authority
CN
China
Prior art keywords
cell
cellular array
memory
file
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
Application number
CN201610027777.6A
Other languages
English (en)
Other versions
CN105718392A (zh
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 CN201610027777.6A priority Critical patent/CN105718392B/zh
Publication of CN105718392A publication Critical patent/CN105718392A/zh
Application granted granted Critical
Publication of CN105718392B publication Critical patent/CN105718392B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种细胞阵列文件存储系统及其文件存储设备与文件存储方法,所述文件存储设备包括:内控CPU、细胞阵列、细胞阵列总线以及至少一个采用整块读写的非易失性存储器;细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维或三维阵列,其中每一个细胞包括微处理器和非易失随机存储器,还包括存储控制器,用于对与本细胞相连的采用整块读写的非易失性存储器进行数据存储访问控制;每一个细胞储存各自在细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;内控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内核配备相应的二级缓存(L2 Cache)、三级缓存(L3 Cache)。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,Not Volatile)随机存储器,用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞中还包括与所述微处理器相连的存储控制器,用于对与本细胞相连的所述第一存储器进行数据存储访问控制;每一个细胞储存各自在所述细胞阵列中的位置作为身份识别号(ID,identification)以供细胞中的软件或硬件读取;所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
可选的,所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况中的至少一种:
按地址读写所述细胞阵列中任一细胞的第二存储器;
将数据广播到所述细胞阵列中目标区域内每一个细胞的第二存储器,并写入所述目标区域内每一个细胞的第二存储器中相同的相对地址;
给所述细胞阵列中任一细胞的微处理器发送指令、发送数据或读取状态;
给所述目标区域内所有细胞的微处理器广播指令。
可选的,所述细胞阵列中的细胞还包括总线控制器和细胞内部总线,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述第二存储器进行数据的读写操作。
可选的,所述存储控制器通过连接访问通道与相应的第一存储器相连,每一个第一存储器支持一个或一个以上访问通道。
可选的,所述细胞阵列文件存储设备还包括与所述内控CPU相连的至少一个第三存储器,用于所述内控CPU计算时所涉及数据的随机存取。
可选的,所述第二存储器为磁性随机存储器(MRAM,Magnetic Random AccessMemory),所述第一存储器为NAND。
可选的,所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络集成于一个数据处理芯片中。
可选的,所述内控CPU与所述数据处理芯片集成于一个主控芯片中。
可选的,所述内控CPU作为独立的芯片,通过标准的内存接口与所述数据处理芯片进行通信。
为解决上述问题,本发明技术方案还提供一种细胞阵列文件存储系统,包括:外部访问设备、外部接口以及上述细胞阵列文件存储设备;所述外部访问设备通过所述外部接口控制所述细胞阵列文件存储设备执行文件处理操作,所述文件处理操作包括创建、删除文件或文件目录、打开或关闭文件、读写文件以及调用所述细胞阵列文件存储设备内的程序完成文件的检索、查询及其他处理操作。
可选的,所述外部访问设备包括主CPU、直接存储访问(DMA,Direct MemoryAccess)控制器和其他外部设备中的至少一种。
为解决上述问题,本发明技术方案还提供一种上述细胞阵列文件存储系统的文件存储方法,包括:所述外部访问设备通过所述细胞阵列文件存储设备执行目标文件的创建或写入操作时,由所述内控CPU选择所述细胞阵列中全部或一个目标区域内的细胞,并将所述目标文件通过所选择的每一个细胞相连接的访问通道存储至相应的第一存储器。
可选的,若所述目标文件的存储所需的所述第一存储器中存储块的数量大于预设阈值,则将所述目标文件所包含的不同文件块分别通过不同细胞所连接的访问通道存储至相应的第一存储器;所述文件块按所述存储块的容量进行划分。
可选的,所述目标文件所包含的相邻文件块通过相邻的细胞所连接的访问通道存储至相应的第一存储器。
可选的,将位于同一文件目录下的不同文件分别存储在不同的细胞所连接的第一存储器之中。
与现有技术相比,本发明的技术方案至少具有以下优点:
通过将一个以上兼具独立计算和存储功能的单元(称为“细胞”)组成二维或三维阵列(称为“细胞阵列”),其中每一个细胞包括微处理器和非易失随机存储器,所述非易失随机存储器既能支持所述微处理器进行计算时所涉及数据的随机存取,也能支持存储软件的指令代码和需要永久保存的数据,使内存、存储、计算三个功能集成到每个细胞中,并使各细胞之间形成密集的通信网络,一方面,内控CPU能通过细胞阵列总线与细胞阵列中的每一个细胞进行通信,另一方面,细胞阵列中的相邻细胞之间也能相互发送数据,由此能通过数据群发和内部网络,克服现有计算机架构因CPU与内存、存储之间存在的通信瓶颈,而基于上述细胞阵列、细胞阵列总线以及通信网络的计算架构所形成的文件存储设备,每个细胞中与微处理器相连的存储控制器能够对与本细胞相连的采用整块读写的非易失性存储器进行数据存储访问控制,由此实现在文件存储设备内部增加数据处理功能,从而能够在文件存储设备内就完成很多文件的检索、分析和处理,还能够有效地利用多个细胞的平行计算加快处理文件的速度,相比传统的文件存储处理方式,本发明技术方案的细胞阵列文件存储系统大幅度地降低了功耗,同时大幅度地提高了文件处理速度。
关于本发明技术方案提供的细胞阵列文件存储系统及其文件存储设备与文件存储方法所体现的优势,具体分析如下:
1.省电:在大数据的时代,大部分文件或数据的使用是查询和检索一类的工作,这些虽然是相对简单的处理,但却需要把大量的数据传送到系统主CPU上进行,然而高速数据的传输,距离越远,耗电越大,大型数据中心的耗电,已经成为其运营成本的主要部分;本发明技术方案能够实现在文件存储设备内部处理查询、检索一类的工作,将大幅度地降低耗电。
2.高速:传统的处理架构,无论计算系统的主CPU多么强大,处理文件的速度受制于存储设备的接口速度。本发明技术方案中的文件存储设备不再受制于这个接口速度,可以最大限度的利用大规模平行计算加速数据的处理。
3.节省内存:现有技术中通常在存储设备外部运行文件系统,存储设备内部必须进行逻辑地址与物理地址之间的翻译,相应的表格会占据很大的内存空间;而本发明技术方案能够实现在文件存储设备内部处理,因此不再需要使用逻辑地址与物理地址之间的对照表,由此能为文件存储设备节省大量的内存空间。
附图说明
图1是现有技术中计算机架构的示意图;
图2是本发明实施例提供的细胞阵列文件存储设备的一种结构示意图;
图3是本发明实施例的一种相邻细胞之间通信方式的示意图;
图4是本发明实施例的另一种相邻细胞之间通信方式的示意图;
图5是本发明实施例的细胞的结构示意图;
图6是本发明实施例中将相邻的文件块存储在相邻细胞所连接的NAND芯片的示意图;
图7是本发明实施例的细胞阵列中进行细胞间通信的细胞的结构示意图;
图8是本发明实施例的细胞阵列中细胞间通信的路径选择的示意图;
图9是本发明实施例的专职输出细胞的实施过程示意图;
图10是本发明实施例提供的细胞阵列文件存储设备的另一种结构示意图;
图11是本发明实施例提供的细胞阵列文件存储设备的又一种结构示意图;
图12是本发明实施例提供的细胞阵列文件存储设备的再一种结构示意图。
具体实施方式
现有技术的计算机架构由于CPU与内存、存储之间存在通信瓶颈,从而严重降低了文件存储系统的文件处理速度以及增大了文件存储系统的功耗。
本申请发明人经过研究后考虑,若是把内存、存储、计算三个功能集成到一个芯片上来,形成相对简单但兼具独立计算和存储功能的单元,并使大量此类单元之间形成密集的通讯网络,以此实现数据群发功能和能够大规模平行传输数据的内部网络,便能开发出一种与人脑存在相似之处的计算架构,这相当于把大量的微型计算机做在一个芯片上。
为此,本发明技术方案提供一种基于与人脑结构相似的计算架构所形成的文件存储系统及其文件存储设备(本发明技术方案中将其称为“细胞阵列文件存储系统及其文件存储设备”),该计算架构由众多结构相对简单,兼具存储和计算功能,又有着密集网络连接的单元(本发明技术方案中将其称为“细胞”)组成。这种新计算架构将在大型计算、大数据处理、人工智能等领域中得到广泛的应用。
本发明技术方案提供一种细胞阵列文件存储系统及其文件存储设备,在存储设备内部增加数据处理功能,由此能够在文件存储设备内就完成很多文件的检索、分析和处理,使得大量简单数据处理工作可以在文件存储设备内部进行,避免因远距离的数据传输而产生的高耗电,还能够有效地利用平行计算加快处理文件的速度,更有效地克服了传统计算机架构中主CPU与文件存储设备之间的通信瓶颈,因此这种文件存储系统大幅度地降低了功耗,同时大幅度地提高了速度。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例作详细的说明。
如图2所示,本发明实施例提供的细胞阵列文件存储设备包括:内控CPU、细胞阵列、细胞阵列总线以及至少一个第一存储器(图2中未示出);所述第一存储器为采用整块读写的非易失性存储器,本实施例中以NAND闪存为例进行说明;所述细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维阵列,其中每一个细胞包括微处理器(MPU)和第二存储器,所述第二存储器为非易失随机存储器(图2中以MRAM为例),用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞中还包括与所述微处理器相连的存储控制器(以NAND控制器为例,图2中的NANC即为NAND控制器),用于对与本细胞相连的所述第一存储器进行数据存储访问控制;每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
需要说明的是,在本实施例中,所述非易失随机存储器是以MRAM为例进行说明。在其他实施例中,随着非易失随机存储技术的进一步发展与成熟,所述非易失随机存储器也可以采用另外几种有潜力的技术实现,例如:相变随机存储器(PCRAM,Phase ChangeRandom Access Memory)、阻变式随机存储器(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技术,就可以把内存、存储、计算三个功能集成到一个芯片上来,使新计算架构的实现便能成为可能。如前所述,本发明技术方案提出的新计算架构是由MPU、MRAM以及NAND控制器组成,将其称为细胞,每个细胞连接NAND访问通道,大量的细胞可以集成在一个芯片上,可以最大限度地对文件平行处理。
本实施例中,所述微处理器具有通常CPU的功能,还可以根据具体的应用场景添加浮点计算处理器(FPU,Float Point Unit)、图像处理器等单元,因此,所述微处理器中可以集成有浮点计算处理器和图像处理器中的至少一种。
在实际实施时,所述内控CPU既可以与所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络可以集成于一个芯片中,所述内控CPU也可以作为独立的芯片,通过标准的内存接口与由所述细胞阵列、所述细胞阵列总线以及所述通信网络组成的芯片进行通信。当所述内控CPU与所述细胞阵列之间采用标准的内存接口进行通信时,则内控CPU可以采用通用的CPU芯片实现,更易于所述细胞阵列文件存储设备的实施。
在实际实施时,所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络也可以集成于一个数据处理芯片中。所述内控CPU与所述数据处理芯片集成于一个主控芯片中。当所述内控CPU作为独立的芯片时,则可以通过标准的内存接口与所述数据处理芯片进行通信。
如前所述,本实施例中,所述细胞阵列文件存储设备包括至少一个第一存储器,所述第一存储器为采用整块读写的非易失性存储器,以NAND闪存为例进行说明。因此,实际实施时,至少一个第一存储器具体可以由一个或一组NAND芯片组成。
在实际实施时,所述数据处理芯片或主控芯片的每一个细胞通过其NAND控制器连接到一个NAND访问通道以与相应的NAND芯片相连,每一个NAND芯片可以支持一个或一个以上NAND访问通道。因此,一个以上细胞可以访问同一个NAND芯片,也可以是每个细胞对应唯一的NAND访问通道连接一个NAND芯片。NAND芯片与数据处理芯片或主控芯片之间的连接可以通过主板线路实现,也可以通过3D封装技术封装在一个芯片内。
此外,本实施例中,所述细胞阵列文件存储设备还包括与所述内控CPU相连的至少一个第三存储器,用于所述内控CPU计算时所涉及数据的随机存取。实际实施时,所述第三存储器具体可以是随机存储器,例如MRAM、DRAM或SRAM等。因此,所述内控CPU还可以连接更多的RAM。
本实施例中,每一个细胞储存各自在细胞阵列中的位置作为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所示,任一细胞可以与其上、下、左、右、左上、右上、左下、右下八个方向的相邻细胞进行通信。
需要说明的是,为了表示方便,图3和图4中的细胞仅示出MPU和MRAM,并未示出NANC(NAND控制器)。
如图5所示,在本实施例中,所述细胞阵列中的细胞具体还可以包括总线控制器和细胞内部总线,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述非易失随机存储器进行数据的读写操作。此外,图5中还示出了每一个细胞中所包括的与所述微处理器相连的NAND控制器,该NAND控制器用于对与本细胞相连的NAND芯片进行数据存储访问控制。
本领域技术人员知晓,一个比较简单而性能很好的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、DMA控制器和其他外部设备中的至少一种。
本领域技术人员知晓,文件存储系统属于计算系统的一部分,而本实施例中的细胞阵列文件存储系统提供外部接口,能够便于计算系统的主CPU、DMA控制器或其他外部访问设备控制和查询,而细胞阵列文件存储设备通过外部接口则可以提供以下功能:
创建、删除文件或目录;
打开、关闭文件;
读、写文件;
调用存储设备内的程序完成文件的检索及其他处理工作;所述程序由内控CPU和细胞阵列联合进行。
需要指出的是,传统的文件存储设备只执行存储块的读写指令,文件系统是在计算机系统的主CPU上运行的;而本发明实施例提供的文件存储设备是在内部运行文件系统,对外提供文件服务,具有文件检索和数据处理能力。
基于上述细胞阵列文件存储系统,本实施例还提供一种上述细胞阵列文件存储系统的文件存储方法,包括:所述外部访问设备通过所述细胞阵列文件存储设备执行目标文件的创建或写入操作时,由所述内控CPU选择所述细胞阵列中全部或一个目标区域内的细胞,并将所述目标文件通过所选择的每一个细胞相连接的访问通道存储至相应的第一存储器。
在具体实施时,为了能够提高文件存储的处理效率,本实施例的文件存储方法还提供以下两种优选的实施方式:
第一种情况:若所述目标文件的存储所需的所述第一存储器中存储块的数量大于预设阈值,则将所述目标文件所包含的不同文件块分别通过不同细胞所连接的访问通道存储至相应的第一存储器。本实施例中,在目标文件的存储过程中,会以第一存储器中单个存储块的容量为单位对所述目标文件进行划分,由此得到多个文件块,每个文件块的大小等于所述存储块的容量。
实际实施时,如果一个大文件需要很多NAND存储块(Block)存储,则应该尽量把不同的文件块通过不同细胞的NAND访问通道进行存储,如此可以通过多个细胞同时处理一个大文件,这种多细胞平行计算的处理方式使得文件处理速度大幅度加快。
进一步地,所述目标文件所包含的相邻文件块通过相邻的细胞所连接的访问通道存储至相应的第一存储器。具体地,可以把相邻的文件块存储在相邻的细胞所连接的NAND芯片中,如图6所示:某个文件A包括依次相邻的文件块,分别对应存储于Block1、Block2、Block3、Block4、Block5……,其中相邻文件块是通过相邻细胞的NAND控制器连接NAND访问通道以存储至相应的NAND芯片中的。这样,如果存储有相邻文件块的存储块之间有数据需要交换,则可以通过相邻细胞间的通信通道进行,而无需内控CPU的参与,由此提高了数据处理效率。
第二种情况:将位于同一文件目录下的不同文件分别存储在不同的细胞所连接的第一存储器之中。
在同样一个文件目录下,可能包含多个不同的文件,而将不同的文件存储在不同的细胞所连接的NAND芯片中,这样便于对一个目录下的文件进行平行的批量操作,从而提高数据处理效率。
本实施例中,对于细胞阵列的内部网络的实施,不但可以发送数据到相邻细胞,而且还把它扩展到可以从一个细胞发送到任何一个细胞,即能够实现细胞阵列中的细胞间通信。如此,即便存储有相邻文件块的存储块之间有数据需要交换,而并非通过相邻细胞的NAND控制器连接NAND访问通道以存储至相应的NAND芯片中,此时也能通过细胞间通信予以实现。
具体地,所述细胞阵列文件存储设备的细胞阵列中的任意两个细胞之间能在不依靠内控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,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,表明本细胞为所述专职输出细胞,则将所述输出数据存入本细胞的非易失随机存储器,否则本细胞作为中转细胞,在选定发送方向后将所述输出数据中转给与本细胞相邻的细胞。
所述其他细胞将所述输出数据发送至所述专职输出细胞的过程中,所述起点细胞或中转细胞可以通过如下方式选定所述发送方向:若所述起点细胞或中转细胞与所述专职输出细胞之间能形成一条直线的通信路径,则所述发送方向为由所述起点细胞或中转细胞沿所述直线向所述专职输出细胞的方向,否则所述发送方向为由所述起点细胞或中转细胞向待选相邻细胞的方向,所述待选相邻细胞为与所述起点细胞或中转细胞相邻的细胞之中靠近所述专职输出细胞的细胞。
本发明实施例的专职输出细胞的实施过程还可以参阅图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读取输出数据的效率。
如前所述,本发明实施例的细胞阵列中的细胞兼具内存、存储和计算三个功能,细胞内的所述非易失随机存储器既能实现所述微处理器计算时所涉及数据的随机存取,又能存储软件的指令代码和需要永久保存的数据,然而所述非易失随机存储器的成本一般是较高的,所以细胞中的非易失随机存储器用作内存部分的空间是有限的,那么当细胞中微处理器的数据处理量较大时,有限的内存空间便可能影响微处理器的处理效率,如何扩展细胞的内存空间便成为亟待解决的问题。
基于上述考虑,本发明实施例还给出了细胞阵列文件存储设备的另一种结构,如图10所示,所述细胞阵列文件存储设备除了包括如前所述的内控CPU、细胞阵列和细胞阵列总线,还可以进一步包括至少一个内存单元阵列,所述内存单元阵列是由一个以上内存单元组成的二维阵列,所述细胞阵列与所有内存单元阵列叠合形成三维结构,每个内存单元阵列中的内存单元与所述细胞阵列中的细胞一一对应地相连,所述内存单元配合所述非易失随机存储器,两者共同用于所述微处理器计算时所涉及数据的随机存取。
需要说明的是,本实施例中所述的第三存储单元也可以通过上述存储单元阵列的方式予以实现。
在实际实施时,细胞中的非易失随机存储器可以是MRAM,所述内存单元阵列则可以是MRAM、DRAM或SRAM硅片,一般可以选取成本较低的一个或多个DRAM硅片,其中每个DRAM硅片是由与所述细胞阵列中各个细胞位置相一致的内存单元形成的内存单元阵列,再将所有DRAM硅片与一个细胞阵列硅片进行3D组合,任一内存单元与细胞阵列中相对应的细胞之间可以通过过硅通孔(TSV,Through Silicon Via)建立通信联系,由此扩展每个细胞的内存。
本发明实施例中,通过将至少一个由一个以上内存单元组成的内存单元阵列,与所述细胞阵列叠合形成三维结构,并使每个内存单元阵列中的内存单元与细胞阵列中的细胞一一对应地相连,所述内存单元用于所述微处理器计算时所涉及数据的随机存取,如此便能以较低的成本扩展细胞阵列中每个细胞的内存空间,提高细胞中微处理器的处理效率。
需要指出的是,图10中仅示出了一个内存单元阵列与所述细胞阵列叠合形成三维结构的情况,本领域技术人员同样也能够理解一个以上内存单元阵列与所述细胞阵列叠合形成三维结构的情况。
本领域技术人员还能够理解的是,前述内控CPU通过细胞阵列总线与细胞阵列中每个细胞进行通信、任意两个细胞之间不依靠内控CPU进行的通信、任一细胞向目标区域中所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给内控CPU的输出数据以供内控CPU读取等通信方法,这些同样适用于包含所述内存单元阵列的细胞阵列文件存储设备。
需要说明的是,由于细胞阵列中的各个细胞扩展了内存空间,所述内控CPU除了可以访问本细胞的非易失随机存储器,还可以访问与本细胞相对应的内存单元(当与细胞阵列叠加成三维结构的内存单元阵列的数量为一个以上时,则与本细胞相对应的内存单元的数量也会有一个以上),因此所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况中的至少一种:按地址读写所述细胞阵列中任一细胞的非易失随机存储器或相应的内存单元;将数据广播到目标区域内每一个细胞的非易失随机存储器或相应的内存单元,并写入该目标区域内每一个细胞的非易失随机存储器或相应的内存单元中相同的相对地址;给所述细胞阵列中任一细胞的微处理器发送指令、发送数据或读取状态;给目标区域内所有细胞的微处理器广播指令。
当所述细胞阵列中的细胞还包括总线控制器和细胞内部总线时,所述细胞内部总线除了连接所述微处理器、非易失随机存储器,还与本细胞相对应的内存单元相连,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述非易失随机存储器或与本细胞相对应的内存单元进行数据的读写操作。
如前所述,本发明实施例的细胞阵列中的细胞兼具内存、存储和计算三个功能,细胞内的所述非易失随机存储器既能实现所述微处理器计算时所涉及数据的随机存取,又能存储软件的指令代码和需要永久保存的数据,然而所述非易失随机存储器的成本一般是较高的,所以细胞中的非易失随机存储器用作存储部分的空间同样是有限的,那么当存在大量文件或数据需要存储在细胞阵列中的各个细胞时,有限的存储空间便无法满足存储要求,甚至还有可能会影响微处理器的处理效率,如何扩展细胞的存储空间则同样是亟待解决的问题。
基于上述考虑,本发明实施例还给出了细胞阵列文件存储设备的又一种结构,如图11所示,所述细胞阵列文件存储设备除了包括如前所述的内控CPU、细胞阵列和细胞阵列总线,还可以进一步包括至少一个存储单元阵列,所述存储单元阵列是由一个以上存储单元组成的二维阵列,所述细胞阵列与所有存储单元阵列叠合形成三维结构,每个存储单元阵列中的存储单元与所述细胞阵列中的细胞一一对应地相连,所述存储单元配合所述非易失随机存储器,两者共同用于存储软件的指令代码和需要永久保存的数据。
需要说明的是,本实施例中的所述第一存储器(即采用整块读写的非易失性存储器)也可以通过上述存储单元阵列的方式予以实现。
在实际实施时,细胞中的非易失随机存储器可以是MRAM,所述存储单元阵列则具体可以是闪存硅片,一般可以选取成本相对于MRAM更低的一个或多个NAND闪存硅片,其中每个NAND闪存硅片是由与所述细胞阵列中各个细胞位置相一致的存储单元形成的存储单元阵列,再将所有NAND闪存硅片与一个细胞阵列硅片进行3D组合,任一存储单元与细胞阵列中相对应的细胞之间可以通过TSV垂直相连以建立通信联系,由此扩展每个细胞的存储空间。
具体实施时,所述细胞阵列中的细胞还包括与所述微处理器相连的存储控制器,用于对与本细胞相连的存储单元进行数据存储访问控制。当把一个或多个NAND闪存硅片和一个细胞阵列硅片进行3D组合后,还可以为细胞阵列中的每一个细胞配置NAND闪存控制器,本细胞的MPU通过本细胞的NAND闪存控制器才可以实现对与本细胞相对应的存储单元进行读写。当大量文件或者数据储存在NAND闪存中时,对数据的搜索可以由各个细胞通过各自的NAND访问通道进行搜索,得到极大的加速。
本发明实施例提供的包含所述存储单元阵列的细胞阵列文件存储设备,能以较低的成本扩展细胞阵列中每个细胞的存储空间,提高各个细胞的数据存储能力。
需要指出的是,图11中仅示出了一个存储单元阵列与所述细胞阵列叠合形成三维结构的情况,本领域技术人员同样也能够理解一个以上存储单元阵列与所述细胞阵列叠合形成三维结构的情况。
本领域技术人员能够理解的是,前述内控CPU通过细胞阵列总线与细胞阵列中每个细胞进行通信、任意两个细胞之间不依靠内控CPU进行的通信、任一细胞向目标区域中所有细胞进行群发通信、通过在细胞阵列中设置专职输出细胞作为终点细胞接收并存储其他细胞给内控CPU的输出数据以供内控CPU读取等通信方法,这些同样适用于包含所述存储单元阵列的细胞阵列文件存储设备。
如前所述,由于细胞中的非易失随机存储器用作内存和存储部分的空间都非常有限,因此如何同时扩展细胞的内存和存储空间是亟待解决的问题。基于上述考虑,本发明实施例还给出了细胞阵列文件存储设备的再一种结构,如图12所示,所述细胞阵列文件存储设备除了包括内控CPU、细胞阵列和细胞阵列总线,还可以进一步包括至少一个上述存储单元阵列和至少一个上述内存单元阵列。同时包含所述存储单元阵列和内存单元阵列的细胞阵列文件存储设备可以参考上述仅包含存储单元阵列或仅包含内存单元阵列的细胞阵列文件存储设备的具体实施,此处不再赘述。
本发明实施例提供的同时包含所述存储单元阵列和内存单元阵列的细胞阵列文件存储设备,能以较低的成本同时扩展细胞阵列中每个细胞的存储和内存空间,提高各个细胞的数据存储能力以及细胞中微处理器的处理效率,从而能更进一步提升计算系统的整体性能。
需要指出的是,本发明实施例以所述细胞阵列具体为二维细胞阵列为例对带有调试接口的细胞阵列文件存储设备进行说明的,在其他实施例中,所述细胞阵列也可以是三维细胞阵列,所述三维细胞阵列是由一个以上二维细胞阵列叠合而成,此时细胞阵列中“相邻细胞”的概念不仅仅局限于二维平面,而是扩展到三维空间。若是二维细胞阵列中采用如图3所示的相邻细胞之间的通信方式,则在空间直角坐标系中,任一细胞在x轴正反方向、y轴正反方向和z轴正反方向这六个方向均具有相邻的细胞。在实际实施时,当多片2D细胞阵列芯片可以叠合在一起组成3D芯片时,通过TSV在相邻的细胞间建立纵向联系,即分别位于相邻两个二维细胞阵列的相邻细胞之间通过TSV建立通信联系。3D的细胞阵列芯片,在保持低功耗优势的同时,加大了细胞阵列的规模,拓展了内部通信的带宽。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (15)

1.一种细胞阵列文件存储设备,其特征在于,包括:内控CPU、细胞阵列、细胞阵列总线以及至少一个第一存储器;所述第一存储器为采用整块读写的非易失性存储器;所述细胞阵列和所述细胞阵列总线集成于一个芯片中;
所述细胞阵列是由一个以上兼具计算和存储功能的细胞组成的二维阵列或三维阵列,其中每一个细胞包括微处理器和第二存储器;所述第二存储器为非易失随机存储器,用于所述微处理器计算时所涉及数据的随机存取,还用于存储软件的指令代码和需要永久保存的数据;每一个细胞中还包括与所述微处理器相连的存储控制器,用于对与本细胞相连的所述第一存储器进行数据存储访问控制;
每一个细胞储存各自在所述细胞阵列中的位置作为ID以供细胞中的软件或硬件读取;
所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行通信;
所述细胞阵列中的相邻细胞之间有通信接口,能相互发送数据。
2.根据权利要求1所述的细胞阵列文件存储设备,其特征在于,所述内控CPU通过所述细胞阵列总线与所述细胞阵列中的每一个细胞进行的通信包括以下情况中的至少一种:
按地址读写所述细胞阵列中任一细胞的第二存储器;
将数据广播到所述细胞阵列中目标区域内每一个细胞的第二存储器,并写入所述目标区域内每一个细胞的第二存储器中相同的相对地址;
给所述细胞阵列中任一细胞的微处理器发送指令、发送数据或读取状态;
给所述目标区域内所有细胞的微处理器广播指令。
3.根据权利要求1所述的细胞阵列文件存储设备,其特征在于,所述细胞阵列中的细胞还包括总线控制器和细胞内部总线,所述总线控制器与所述细胞阵列总线、微处理器以及细胞内部总线相连,所述总线控制器用于识别所述内控CPU与本细胞之间进行的通信,连接所述微处理器以传递所述内控CPU发送的指令或数据、状态读取,或者通过所述细胞内部总线连接所述第二存储器进行数据的读写操作。
4.根据权利要求1所述的细胞阵列文件存储设备,其特征在于,所述存储控制器通过连接访问通道与相应的第一存储器相连,每一个第一存储器支持一个或一个以上访问通道。
5.根据权利要求1所述的细胞阵列文件存储设备,其特征在于,还包括与所述内控CPU相连的至少一个第三存储器,用于所述内控CPU计算时所涉及数据的随机存取。
6.根据权利要求1所述的细胞阵列文件存储设备,其特征在于,所述第二存储器为MRAM,所述第一存储器为NAND。
7.根据权利要求1所述的细胞阵列文件存储设备,其特征在于,所述细胞阵列、所述细胞阵列总线以及由所述细胞阵列内各个能相互通信的相邻细胞所形成的通信网络集成于一个数据处理芯片中。
8.根据权利要求7所述的细胞阵列文件存储设备,其特征在于,所述内控CPU与所述数据处理芯片集成于一个主控芯片中。
9.根据权利要求7所述的细胞阵列文件存储设备,其特征在于,所述内控CPU作为独立的芯片,通过标准的内存接口与所述数据处理芯片进行通信。
10.一种细胞阵列文件存储系统,其特征在于,包括:外部访问设备、外部接口以及权利要求1至9任一项所述的细胞阵列文件存储设备;所述外部访问设备通过所述外部接口控制所述细胞阵列文件存储设备执行文件处理操作,所述文件处理操作包括创建、删除文件或文件目录、打开或关闭文件、读写文件以及调用所述细胞阵列文件存储设备内的程序完成文件的检索、查询及其他处理操作。
11.根据权利要求10所述的细胞阵列文件存储系统,其特征在于,所述外部访问设备包括主CPU、DMA控制器和其他外部设备中的至少一种。
12.一种如权利要求10或11所述的细胞阵列文件存储系统的文件存储方法,其特征在于,包括:
所述外部访问设备通过所述细胞阵列文件存储设备执行目标文件的创建或写入操作时,由所述内控CPU选择所述细胞阵列中全部或一个目标区域内的细胞,并将所述目标文件通过所选择的每一个细胞相连接的访问通道存储至相应的第一存储器。
13.根据权利要求12所述的细胞阵列文件存储系统的文件存储方法,其特征在于,若所述目标文件的存储所需的所述第一存储器中存储块的数量大于预设阈值,则将所述目标文件所包含的不同文件块分别通过不同细胞所连接的访问通道存储至相应的第一存储器;所述文件块按所述存储块的容量进行划分。
14.根据权利要求13所述的细胞阵列文件存储系统的文件存储方法,其特征在于,所述目标文件所包含的相邻文件块通过相邻的细胞所连接的访问通道存储至相应的第一存储器。
15.根据权利要求12所述的细胞阵列文件存储系统的文件存储方法,其特征在于,将位于同一文件目录下的不同文件分别存储在不同的细胞所连接的第一存储器之中。
CN201610027777.6A 2016-01-15 2016-01-15 细胞阵列文件存储系统及其文件存储设备与文件存储方法 Active CN105718392B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610027777.6A CN105718392B (zh) 2016-01-15 2016-01-15 细胞阵列文件存储系统及其文件存储设备与文件存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610027777.6A CN105718392B (zh) 2016-01-15 2016-01-15 细胞阵列文件存储系统及其文件存储设备与文件存储方法

Publications (2)

Publication Number Publication Date
CN105718392A CN105718392A (zh) 2016-06-29
CN105718392B true CN105718392B (zh) 2019-01-29

Family

ID=56147121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610027777.6A Active CN105718392B (zh) 2016-01-15 2016-01-15 细胞阵列文件存储系统及其文件存储设备与文件存储方法

Country Status (1)

Country Link
CN (1) CN105718392B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180111157A (ko) * 2017-03-31 2018-10-11 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US10635622B2 (en) * 2018-04-03 2020-04-28 Xilinx, Inc. System-on-chip interface architecture
US11455232B2 (en) * 2019-08-28 2022-09-27 Micron Technology, Inc. Debug operations on artificial intelligence operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678021A (en) * 1992-08-25 1997-10-14 Texas Instruments Incorporated Apparatus and method for a memory unit with a processor integrated therein
CN1341242A (zh) * 1999-01-21 2002-03-20 索尼电脑娱乐公司 高速处理器系统,使用该系统的方法和记录介质
CN1675625A (zh) * 2002-06-07 2005-09-28 米克伦技术公司 具有内部高速缓存和/或内存访问预测的内存集线器
CN101354694A (zh) * 2007-07-26 2009-01-28 上海红神信息技术有限公司 基于mpu架构的超高扩展超级计算系统
CN104701309A (zh) * 2015-03-24 2015-06-10 上海新储集成电路有限公司 三维堆叠式神经元装置及制备方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678021A (en) * 1992-08-25 1997-10-14 Texas Instruments Incorporated Apparatus and method for a memory unit with a processor integrated therein
CN1341242A (zh) * 1999-01-21 2002-03-20 索尼电脑娱乐公司 高速处理器系统,使用该系统的方法和记录介质
CN1675625A (zh) * 2002-06-07 2005-09-28 米克伦技术公司 具有内部高速缓存和/或内存访问预测的内存集线器
CN101354694A (zh) * 2007-07-26 2009-01-28 上海红神信息技术有限公司 基于mpu架构的超高扩展超级计算系统
CN104701309A (zh) * 2015-03-24 2015-06-10 上海新储集成电路有限公司 三维堆叠式神经元装置及制备方法

Also Published As

Publication number Publication date
CN105718392A (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
CN105718994B (zh) 细胞阵列计算系统
CN105740946B (zh) 一种应用细胞阵列计算系统实现神经网络计算的方法
CN105718996B (zh) 细胞阵列计算系统以及其中的通信方法
CN105608490B (zh) 细胞阵列计算系统以及其中的通信方法
DE102022107621A1 (de) Resourcenauswahl, die zum teil auf der arbeitslast basiert
WO2016082793A1 (zh) 高速缓存cache存储器系统及访问缓存行cache line的方法
US10318444B2 (en) Collective memory transfer devices and methods for multiple-core processors
CN105549898A (zh) 操作数据存储装置和主机及移动计算装置的方法
CN106569727A (zh) 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法
US9015440B2 (en) Autonomous memory subsystem architecture
CN102446159B (zh) 多核处理器的数据管理方法及装置
CN105718392B (zh) 细胞阵列文件存储系统及其文件存储设备与文件存储方法
CN109791507A (zh) 改进分布式gpus的数据局部性的机制
CN105393227A (zh) 存储器控制的数据移动及时序
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
CN105718990B (zh) 细胞阵列计算系统以及其中细胞之间的通信方法
US11966330B2 (en) Link affinitization to reduce transfer latency
CN114338506B (zh) 一种类脑计算机操作系统的神经任务片内路由方法及装置
CN105718991B (zh) 细胞阵列计算系统
KR20130021704A (ko) 멀티포트 메모리 소자, 이를 포함하는 반도체 장치 및 시스템
KR102605205B1 (ko) 메모리 장치 및 프로세싱 시스템
CN105718993B (zh) 细胞阵列计算系统以及其中的通信方法
CN103577347A (zh) 用于操作存储器设备的方法和用于存储器操作的系统
CN105718380B (zh) 细胞阵列计算系统
US10915470B2 (en) Memory system

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