本發(fā)明涉及計(jì)算機(jī)及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種細(xì)胞陣列計(jì)算系統(tǒng)及其測(cè)試方法。
背景技術(shù):
通常來(lái)說(shuō),一臺(tái)計(jì)算機(jī)主要包括三個(gè)核心部分:中央處理器(cpu,centralprocessingunit)、內(nèi)存和存儲(chǔ)。
經(jīng)過(guò)一些世界頂級(jí)公司的不懈努力,cpu已經(jīng)演變成極度復(fù)雜的半導(dǎo)體芯片。頂級(jí)的cpu內(nèi)核內(nèi)部的mos管數(shù)目可以超過(guò)一億個(gè)。目前的產(chǎn)業(yè)趨勢(shì)是受制于功耗,cpu的運(yùn)行頻率已經(jīng)很難再提高。已經(jīng)極度復(fù)雜的現(xiàn)代cpu,運(yùn)行效率同樣很難再提高。新的cpu產(chǎn)品,越來(lái)越多地朝多核方向演進(jìn)。
在內(nèi)存方面,目前居于統(tǒng)治地位的是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram,dynamicrandomaccessmemory)技術(shù)。dram可以快速隨機(jī)讀寫(xiě),但卻不能在斷電的情況下保持內(nèi)容。實(shí)際上,即使在通電的情況下,它也會(huì)由于內(nèi)部用于儲(chǔ)存信息的電容器的漏電而丟失信息,必須周期性地自刷新。
在存儲(chǔ)方面,nand閃存技術(shù)正在逐步取代傳統(tǒng)硬盤(pán)。閃存所依賴(lài)的浮置柵極(floatinggate)技術(shù),雖然能夠在斷電的情況下保持內(nèi)容,但寫(xiě)入(將‘1’改寫(xiě)為‘0’)的速度很慢,擦除(將‘0’改寫(xiě)為‘1’)的速度更慢,無(wú)法像dram那樣用于對(duì)計(jì)算的直接支持。它被制作成塊設(shè)備(blockdevice),必須整塊一起擦除,一個(gè)塊(block)包含很多頁(yè)(page),擦除后每頁(yè)可以進(jìn)行寫(xiě)入操作。nand的另外一個(gè)問(wèn)題是具有有限的壽命。
dram和nand閃存,以及cpu的邏輯電路,雖然都是基于cmos半導(dǎo)體工藝生產(chǎn)的,但這三者的工藝彼此并不兼容。于是,計(jì)算機(jī)的三個(gè)核心部分無(wú)法在一個(gè)芯片上共存,這深刻地影響了現(xiàn)代計(jì)算機(jī)的架構(gòu)。
現(xiàn)有技術(shù)中的計(jì)算機(jī)架構(gòu)如圖1所示,圖1中示出多個(gè)cpu內(nèi)核,分別為cpu1、cpu2、cpu3、……、cpun,每個(gè)cpu內(nèi)核一般具有相應(yīng)的一級(jí)緩存(l1cache),根據(jù)需要還可以進(jìn)一步為每個(gè)cpu內(nèi)核配備相應(yīng)的二級(jí)緩存(l2cache)、三級(jí)緩存(l3cache)。dram與各個(gè)cpu內(nèi)核之間通過(guò)雙倍速率(ddr,doubledatarate)接口進(jìn)行通信,硬盤(pán)(hd,harddisk)或固態(tài)硬盤(pán)(ssd,solidstatedrives)與各個(gè)cpu內(nèi)核之間則通過(guò)外圍設(shè)備接口進(jìn)行通信。
一方面,cpu在向多核的方向發(fā)展,另一方面內(nèi)存和存儲(chǔ)都在另外的芯片里。多核cpu吞吐信息量成比例增加,與內(nèi)存、存儲(chǔ)的通信就越來(lái)越成為系統(tǒng)性能的瓶頸。為了緩解通信瓶頸,cpu不得不采用越來(lái)越大的多級(jí)緩存。緩存是把內(nèi)存中的內(nèi)容復(fù)制,通常是用成本比dram高得多但速度更快的靜態(tài)隨機(jī)存取存儲(chǔ)器(sram,staticrandomaccessmemory)設(shè)計(jì)的。這樣的架構(gòu),費(fèi)效比非常的差。半導(dǎo)體芯片的成本由其硅片的面積決定,而傳統(tǒng)計(jì)算機(jī)架構(gòu)帶來(lái)的性能提升與其硅片面積的增加遠(yuǎn)遠(yuǎn)不成比例。
cpu依托于一代又一代演進(jìn)的半導(dǎo)體工藝,變得越來(lái)越復(fù)雜。這產(chǎn)生了一個(gè)問(wèn)題,隨著半導(dǎo)體芯片原來(lái)越復(fù)雜,先進(jìn)工藝上一個(gè)芯片可以有超過(guò)10億個(gè)mos管元器件。10億個(gè)元器件,如果有一個(gè)在芯片制造過(guò)程中損壞,一般來(lái)說(shuō),整個(gè)芯片 就會(huì)成為廢品。而要把元器件的損壞率控制在遠(yuǎn)不到10億分之一,對(duì)半導(dǎo)體工藝的挑戰(zhàn)非常大,而良品率低,將會(huì)大大提高芯片的成本。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的問(wèn)題是現(xiàn)有技術(shù)中的計(jì)算機(jī)架構(gòu)因cpu與內(nèi)存、存儲(chǔ)之間存在的通信瓶頸而影響計(jì)算機(jī)整體性能的提升,并使費(fèi)效比較差,且在集成于芯片時(shí)良品率低、成本高。
為解決上述問(wèn)題,本發(fā)明技術(shù)方案提供一種細(xì)胞陣列計(jì)算系統(tǒng),包括:主控cpu、細(xì)胞陣列和細(xì)胞陣列總線;所述細(xì)胞陣列是由一個(gè)以上兼具計(jì)算和存儲(chǔ)功能的細(xì)胞組成的二維陣列或三維陣列,其中每一個(gè)細(xì)胞包括微處理器(mpu,microprocessingunit)和非易失(nv,notvolatile)隨機(jī)存儲(chǔ)器;所述非易失隨機(jī)存儲(chǔ)器用于所述微處理器計(jì)算時(shí)所涉及數(shù)據(jù)的隨機(jī)存取,還用于存儲(chǔ)軟件的指令代碼和需要永久保存的數(shù)據(jù);每一個(gè)細(xì)胞儲(chǔ)存各自在所述細(xì)胞陣列中的位置作為身份識(shí)別號(hào)(id,identification)以供細(xì)胞中的軟件或硬件讀?。凰鲋骺豤pu通過(guò)所述細(xì)胞陣列總線與所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行通信;所述細(xì)胞陣列中還預(yù)留一個(gè)以上冗余細(xì)胞作為備用細(xì)胞,所述備用細(xì)胞用于在所述細(xì)胞陣列中的任意一個(gè)其他細(xì)胞被確定為已損壞細(xì)胞時(shí)作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞;所述細(xì)胞陣列以及所述細(xì)胞陣列總線集成在一個(gè)芯片上。
可選的,所述主控cpu通過(guò)所述細(xì)胞陣列總線與所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行的通信包括以下情況中的至少一種:
按地址讀寫(xiě)所述細(xì)胞陣列中任一細(xì)胞的非易失隨機(jī)存儲(chǔ)器;
將數(shù)據(jù)廣播到所述細(xì)胞陣列中目標(biāo)區(qū)域內(nèi)每一個(gè)細(xì)胞的非易失隨機(jī)存儲(chǔ)器,并寫(xiě)入所述目標(biāo)區(qū)域內(nèi)每一個(gè)細(xì)胞的非易失隨機(jī)存儲(chǔ)器中相同的相對(duì)地址;
給所述細(xì)胞陣列中任一細(xì)胞的微處理器發(fā)送指令、發(fā)送數(shù)據(jù)或讀取狀態(tài);
給所述目標(biāo)區(qū)域內(nèi)所有細(xì)胞的微處理器廣播指令。
可選的,所述細(xì)胞陣列中的細(xì)胞還包括總線控制器和細(xì)胞內(nèi)部總線,所述總線控制器與所述細(xì)胞陣列總線、微處理器以及細(xì)胞內(nèi)部總線相連,所述總線控制器用于收聽(tīng)所述細(xì)胞陣列總線上的指令,對(duì)于相關(guān)本細(xì)胞的指令,連接所述微處理器以傳遞所述主控cpu發(fā)送的指令或數(shù)據(jù)、狀態(tài)讀取,或者通過(guò)所述細(xì)胞內(nèi)部總線連接所述非易失隨機(jī)存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀寫(xiě)操作;所述備用細(xì)胞的總線控制器內(nèi)設(shè)有第一非易失性存儲(chǔ)器,用于存儲(chǔ)本細(xì)胞所替換的已損壞細(xì)胞在所述細(xì)胞陣列中的位置;在所述芯片運(yùn)行時(shí),已損壞細(xì)胞處于關(guān)閉狀態(tài),已損壞細(xì)胞相應(yīng)替換細(xì)胞的總線控制器收聽(tīng)所述細(xì)胞陣列總線上的指令時(shí),將與本細(xì)胞所替換細(xì)胞相關(guān)的指令識(shí)別為相關(guān)本細(xì)胞的指令。
可選的,所述細(xì)胞陣列中的相鄰細(xì)胞之間有通信接口,能互相收發(fā)數(shù)據(jù);任意兩個(gè)細(xì)胞之間能進(jìn)行通信,參與細(xì)胞間通信的細(xì)胞包含起點(diǎn)細(xì)胞、終點(diǎn)細(xì)胞和中轉(zhuǎn)細(xì)胞,所述起點(diǎn)細(xì)胞為向所述終點(diǎn)細(xì)胞發(fā)出數(shù)據(jù)的細(xì)胞,所述終點(diǎn)細(xì)胞為最終接收所述起點(diǎn)細(xì)胞所發(fā)數(shù)據(jù)的細(xì)胞,所述中轉(zhuǎn)細(xì)胞為沿細(xì)胞間通信路徑依次相鄰且通過(guò)所述通信接口中轉(zhuǎn)所述起點(diǎn)細(xì)胞所發(fā)數(shù)據(jù)的細(xì)胞,所述細(xì)胞間通信路徑是由所述起點(diǎn)細(xì)胞、中轉(zhuǎn)細(xì)胞和終點(diǎn)細(xì)胞所構(gòu)成的數(shù)據(jù)收發(fā)路徑。
可選的,所述細(xì)胞陣列中的任一細(xì)胞還能作為所述起點(diǎn)細(xì)胞向目標(biāo)區(qū)域內(nèi)的所有細(xì)胞進(jìn)行群發(fā)通信,參與所述群發(fā)通信且位于目標(biāo)區(qū)域內(nèi)的細(xì)胞作為所述起點(diǎn)細(xì) 胞、或作為所述終點(diǎn)細(xì)胞、或同時(shí)作為所述中轉(zhuǎn)細(xì)胞和終點(diǎn)細(xì)胞,參與所述群發(fā)通信且位于目標(biāo)區(qū)域外的細(xì)胞作為所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞。
可選的,所述細(xì)胞陣列中的細(xì)胞還包括與所述微處理器相連的網(wǎng)絡(luò)控制器,所述網(wǎng)絡(luò)控制器用于對(duì)發(fā)出的數(shù)據(jù)、中轉(zhuǎn)的數(shù)據(jù)或者最終接收的數(shù)據(jù)進(jìn)行收發(fā)和路由控制,還用于向所述微處理器發(fā)送中斷信號(hào);所述網(wǎng)絡(luò)控制器內(nèi)設(shè)有第二非易失性存儲(chǔ)器,與所述已損壞細(xì)胞相鄰的所有正常細(xì)胞內(nèi)的所述第二非易失性存儲(chǔ)器用于標(biāo)定與本細(xì)胞相鄰的已損壞細(xì)胞,以及存儲(chǔ)所述已損壞細(xì)胞相應(yīng)的替換細(xì)胞在所述細(xì)胞陣列中的位置;在傳遞數(shù)據(jù)時(shí),已損壞細(xì)胞的相鄰細(xì)胞的網(wǎng)絡(luò)控制器在進(jìn)行路由控制時(shí)繞開(kāi)該已損壞細(xì)胞,若該已損壞細(xì)胞是終點(diǎn)細(xì)胞或終點(diǎn)細(xì)胞之一,控制將數(shù)據(jù)轉(zhuǎn)發(fā)到該已損壞細(xì)胞相應(yīng)的替換細(xì)胞。
可選的,所述細(xì)胞陣列為二維陣列,預(yù)留的一個(gè)以上冗余細(xì)胞為所述細(xì)胞陣列中的一行或一列細(xì)胞。
可選的,所述微處理器中集成有浮點(diǎn)計(jì)算處理器(fpu,floatpointunit)和圖像處理器中的至少一種。
可選的,所述非易失隨機(jī)存儲(chǔ)器為磁性隨機(jī)存儲(chǔ)器(mram,magneticrandomaccessmemory)。
可選的,所述主控cpu與所述細(xì)胞陣列和所述細(xì)胞陣列總線集成于一個(gè)芯片中。
可選的,所述主控cpu作為獨(dú)立的芯片,通過(guò)標(biāo)準(zhǔn)的內(nèi)存接口與由所述細(xì)胞陣列和所述細(xì)胞陣列總線組成的芯片進(jìn)行通信。
為解決上述問(wèn)題,本發(fā)明技術(shù)方案還提供一種上述細(xì)胞陣列計(jì)算系統(tǒng)的測(cè)試方法,包括:廣播一個(gè)測(cè)試程序使所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行自測(cè);若所述備用細(xì)胞以外的某一個(gè)細(xì)胞不能通過(guò)測(cè)試,則確定該細(xì)胞為已損壞細(xì)胞,在所述備用細(xì)胞中挑選一個(gè)正常細(xì)胞作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞,并將被替換的已損壞細(xì)胞在所述細(xì)胞陣列中的位置存儲(chǔ)于所述替換細(xì)胞內(nèi)。
可選的,在確定所述備用細(xì)胞以外的某一細(xì)胞為已損壞細(xì)胞后,還在該已損壞細(xì)胞相鄰的所有正常細(xì)胞內(nèi)標(biāo)定該已損壞細(xì)胞,并存儲(chǔ)將該已損壞細(xì)胞相應(yīng)的替換細(xì)胞在所述細(xì)胞陣列中的位置。
與現(xiàn)有技術(shù)相比,本發(fā)明的技術(shù)方案至少具有以下優(yōu)點(diǎn):
隨著半導(dǎo)體技術(shù)向更高的工藝節(jié)點(diǎn)發(fā)展,每個(gè)器件越小,一塊芯片上的器件越多。像傳統(tǒng)cpu這樣的大型芯片,一個(gè)器件的損壞導(dǎo)致整個(gè)芯片成為廢品,其生產(chǎn)良率越來(lái)越難控制。本發(fā)明技術(shù)方案提出在一個(gè)芯片上集成大量細(xì)胞的陣列的新的計(jì)算架構(gòu),還在所述細(xì)胞陣列中增加了冗余設(shè)計(jì)(redundancy),即預(yù)留一部分冗余細(xì)胞作為備用,用于在細(xì)胞陣列中的任意一個(gè)其他細(xì)胞被確定為已損壞細(xì)胞時(shí)作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞,如此能夠在一小部分細(xì)胞出現(xiàn)生產(chǎn)制造問(wèn)題的情況下不至于影響整個(gè)系統(tǒng)的工作,從而提高產(chǎn)品良率,降低生產(chǎn)制造成本。
附圖說(shuō)明
圖1是現(xiàn)有技術(shù)中計(jì)算機(jī)架構(gòu)的示意圖;
圖2是本發(fā)明實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)的一種結(jié)構(gòu)示意圖;
圖3是本發(fā)明實(shí)施例的一種相鄰細(xì)胞之間通信方式的示意圖;
圖4是本發(fā)明實(shí)施例的另一種相鄰細(xì)胞之間通信方式的示意圖;
圖5是本發(fā)明實(shí)施例的細(xì)胞的結(jié)構(gòu)示意圖;
圖6是應(yīng)用細(xì)胞陣列計(jì)算系統(tǒng)以流水線的方式計(jì)算montecarlo積分的示意圖;
圖7是本發(fā)明實(shí)施例的細(xì)胞陣列中進(jìn)行細(xì)胞間通信的細(xì)胞的結(jié)構(gòu)示意圖;
圖8是本發(fā)明實(shí)施例的細(xì)胞陣列中細(xì)胞間通信的路徑選擇的示意圖;
圖9是本發(fā)明實(shí)施例的專(zhuān)職輸出細(xì)胞的實(shí)施過(guò)程示意圖;
圖10是本發(fā)明實(shí)施例的細(xì)胞陣列中起點(diǎn)細(xì)胞在目標(biāo)區(qū)域角上的細(xì)胞群發(fā)示意圖;
圖11是本發(fā)明實(shí)施例的細(xì)胞陣列中起點(diǎn)細(xì)胞在目標(biāo)區(qū)域邊上的細(xì)胞群發(fā)示意圖;
圖12是本發(fā)明實(shí)施例的細(xì)胞陣列中起點(diǎn)細(xì)胞在目標(biāo)區(qū)域內(nèi)部的細(xì)胞群發(fā)示意圖;
圖13是本發(fā)明實(shí)施例的細(xì)胞陣列中起點(diǎn)細(xì)胞在目標(biāo)區(qū)域外的細(xì)胞群發(fā)示意圖;
圖14是本發(fā)明實(shí)施例提供的預(yù)留冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
現(xiàn)有技術(shù)的計(jì)算機(jī)架構(gòu)由于cpu與內(nèi)存、存儲(chǔ)之間存在通信瓶頸,從而影響計(jì)算機(jī)整體性能的提升,并使費(fèi)效比較差。
本申請(qǐng)發(fā)明人經(jīng)過(guò)研究后考慮,若是把內(nèi)存、存儲(chǔ)、計(jì)算三個(gè)功能集成到一個(gè)芯片上來(lái),形成相對(duì)簡(jiǎn)單但兼具獨(dú)立計(jì)算和存儲(chǔ)功能的單元,并使大量此類(lèi)單元之間形成密集的通訊網(wǎng)絡(luò),以此實(shí)現(xiàn)數(shù)據(jù)群發(fā)功能和能夠大規(guī)模平行傳輸數(shù)據(jù)的內(nèi)部網(wǎng)絡(luò),便能開(kāi)發(fā)出一種與人腦存在相似之處的計(jì)算架構(gòu),這相當(dāng)于把大量的微型計(jì)算機(jī)做在一個(gè)芯片上。
為此,本發(fā)明技術(shù)方案提供一種與人腦結(jié)構(gòu)相似的計(jì)算架構(gòu)(本發(fā)明技術(shù)方案中將其稱(chēng)為“細(xì)胞陣列計(jì)算系統(tǒng)”),該計(jì)算架構(gòu)由眾多結(jié)構(gòu)相對(duì)簡(jiǎn)單,兼具存儲(chǔ)和計(jì)算功能,又有著密集網(wǎng)絡(luò)連接的單元(本發(fā)明技術(shù)方案中將其稱(chēng)為“細(xì)胞”)組成。這種新計(jì)算架構(gòu)將在大型計(jì)算、大數(shù)據(jù)處理、人工智能等領(lǐng)域中得到廣泛的應(yīng)用。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例作詳細(xì)的說(shuō)明。
如圖2所示,本發(fā)明實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)包括:主控cpu、細(xì)胞陣列和細(xì)胞陣列總線;所述細(xì)胞陣列是所述細(xì)胞陣列計(jì)算系統(tǒng)中的主體,它是由一個(gè)以上兼具計(jì)算和存儲(chǔ)功能的細(xì)胞組成的二維陣列,其中每一個(gè)細(xì)胞包括微處理器(mpu)和非易失隨機(jī)存儲(chǔ)器(圖2中以mram為例);所述非易失隨機(jī)存儲(chǔ)器用于所述微處理器計(jì)算時(shí)所涉及數(shù)據(jù)的隨機(jī)存取,還用于存儲(chǔ)軟件的指令代碼和需要永久保存的數(shù)據(jù);每一個(gè)細(xì)胞儲(chǔ)存各自在所述細(xì)胞陣列中的位置作為id以供細(xì)胞中的軟件或硬件讀??;所述主控cpu通過(guò)所述細(xì)胞陣列總線與所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行通信;所述細(xì)胞陣列中的相鄰細(xì)胞之間有通信接口,能相互收發(fā)數(shù)據(jù)。
需要說(shuō)明的是,在本實(shí)施例中,所述非易失隨機(jī)存儲(chǔ)器是以mram為例進(jìn)行說(shuō)明。在其他實(shí)施例中,隨著非易失隨機(jī)存儲(chǔ)技術(shù)的進(jìn)一步發(fā)展與成熟,所述非易失隨機(jī)存儲(chǔ)器也可以采用另外幾種有潛力的技術(shù)實(shí)現(xiàn),例如:相變隨機(jī)存儲(chǔ)器(pcram,phasechangerandomaccessmemory)、阻變式隨機(jī)存儲(chǔ)器(resistive randomaccessmemory)、鐵電隨機(jī)存儲(chǔ)器(feram,ferroelectricrandomaccessmemory)、鐵電動(dòng)態(tài)隨機(jī)存儲(chǔ)器(fedram,ferroelectricdynamicrandomaccessmemory)等等。
mram是一種新的內(nèi)存和存儲(chǔ)技術(shù),可以像sram/dram一樣快速隨機(jī)讀寫(xiě),并且比dram快;還可以像閃存一樣在斷電后永久保留數(shù)據(jù),并且不像nand閃存,mram可以不限次地擦寫(xiě),使用壽命較長(zhǎng)。此外,mram的經(jīng)濟(jì)性想當(dāng)?shù)睾?,單位容量占用的硅片面積比sram(通常作為cpu的緩存)有很大的優(yōu)勢(shì),有望接近dram的水平。它的性能也相當(dāng)好,讀寫(xiě)時(shí)延接近最好的sram,功耗則在各種內(nèi)存和存儲(chǔ)技術(shù)最好。而且mram不像dram以及flash那樣與標(biāo)準(zhǔn)cmos半導(dǎo)體工藝不兼容,mram可以和邏輯電路集成到一個(gè)芯片中。通過(guò)采用mram技術(shù),就可以把內(nèi)存、存儲(chǔ)、計(jì)算三個(gè)功能集成到一個(gè)芯片上來(lái),使所述細(xì)胞陣列計(jì)算系統(tǒng)的實(shí)現(xiàn)便能成為可能。
本實(shí)施例中,所述微處理器具有通常cpu的功能,還可以根據(jù)具體的應(yīng)用場(chǎng)景添加浮點(diǎn)計(jì)算處理器(fpu,floatpointunit)、圖像處理器等單元,因此,所述微處理器中可以集成有浮點(diǎn)計(jì)算處理器和圖像處理器中的至少一種。
在實(shí)際實(shí)施時(shí),所述主控cpu與所述細(xì)胞陣列和所述細(xì)胞陣列總線可以集成于一個(gè)芯片中,所述主控cpu也可以作為獨(dú)立的芯片,通過(guò)標(biāo)準(zhǔn)的內(nèi)存接口與由所述細(xì)胞陣列和所述細(xì)胞陣列總線組成的芯片進(jìn)行通信。當(dāng)所述主控cpu與所述細(xì)胞陣列之間采用標(biāo)準(zhǔn)的內(nèi)存接口進(jìn)行通信時(shí),則主控cpu可以采用通用的cpu芯片實(shí)現(xiàn),更易于所述細(xì)胞陣列計(jì)算系統(tǒng)的實(shí)施。
本實(shí)施例中,每一個(gè)細(xì)胞儲(chǔ)存各自在細(xì)胞陣列中的位置作為id,所述位置可以采用平面直角坐標(biāo)系中第一象限的坐標(biāo)表示方式,若(x,y)表示某個(gè)細(xì)胞在細(xì)胞陣列中的位置,則(x,y)可以作為id存儲(chǔ)在該細(xì)胞中,細(xì)胞中的軟件和硬件可以讀取這個(gè)id,在具體的操作中使用。
本實(shí)施例中,所述主控cpu通過(guò)所述細(xì)胞陣列總線與所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行的通信包括以下情況:
按地址讀寫(xiě)所述細(xì)胞陣列中任一細(xì)胞的非易失隨機(jī)存儲(chǔ)器;
將數(shù)據(jù)廣播到所述細(xì)胞陣列中目標(biāo)區(qū)域內(nèi)每一個(gè)細(xì)胞的非易失隨機(jī)存儲(chǔ)器,并寫(xiě)入該目標(biāo)區(qū)域內(nèi)每一個(gè)細(xì)胞的非易失隨機(jī)存儲(chǔ)器中相同的相對(duì)地址;
給所述細(xì)胞陣列中任一細(xì)胞的微處理器發(fā)送指令(包括開(kāi)始、暫停)、發(fā)送數(shù)據(jù)或讀取狀態(tài);
給目標(biāo)區(qū)域內(nèi)所有細(xì)胞的微處理器廣播指令。
當(dāng)然,在其他實(shí)施例中,所述主控cpu通過(guò)所述細(xì)胞陣列總線與所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行的通信也可以是上述情況中的一種或多種組合。
需要說(shuō)明的是,本發(fā)明實(shí)施例中的“目標(biāo)區(qū)域”是指由所述主控cpu或所述細(xì)胞陣列中的任一細(xì)胞選擇一個(gè)以上存在相鄰關(guān)系的細(xì)胞所構(gòu)成的區(qū)域,該區(qū)域內(nèi)的細(xì)胞是主控cpu或細(xì)胞陣列中的任一細(xì)胞廣播/群發(fā)數(shù)據(jù)或指令的對(duì)象。本實(shí)施例中,所述目標(biāo)區(qū)域具體以矩形區(qū)域(a≤x≤b,c≤y≤d,其中a、b分別是該矩形區(qū)域在平面直角坐標(biāo)系中x軸方向的邊界坐標(biāo),c、d分別是該矩形區(qū)域在平面直角坐標(biāo)系中y軸方向的邊界坐標(biāo))為例進(jìn)行說(shuō)明。在其他實(shí)施例中,所述目標(biāo)區(qū)域也可以是其他形狀構(gòu)成的區(qū)域,例如菱形區(qū)域、三角形區(qū)域、六邊形區(qū)域等等。
此外,本發(fā)明實(shí)施例中“廣播”的概念不同于“群發(fā)”的概念,前者可以是發(fā)一遍數(shù)據(jù)或指令使得所有的對(duì)象都能接收到,而后者則可以是分很多遍發(fā)給不同的對(duì)象。
除了通過(guò)主控cpu對(duì)所述細(xì)胞陣列中任一細(xì)胞(包括細(xì)胞中的微處理器或非易失隨機(jī)存儲(chǔ)器)進(jìn)行廣播,在所述細(xì)胞陣列內(nèi),還有一個(gè)通信網(wǎng)絡(luò),該通信網(wǎng)絡(luò)能夠使得一個(gè)細(xì)胞可以在其mpu的控制下,向與它相鄰的細(xì)胞發(fā)送數(shù)據(jù)。如圖3所示,在一平面中,任一細(xì)胞可以與其上、下、左、右四個(gè)方向的相鄰細(xì)胞進(jìn)行通信。當(dāng)然,相鄰細(xì)胞之間通信方式的概念并不僅僅局限于“上、下、左、右四個(gè)方向”,在線路布局能夠支持的情況下,也可以是“上、下、左、右、左上、右上、左下、右下八個(gè)方向”,如圖4所示,任一細(xì)胞可以與其上、下、左、右、左上、右上、左下、右下八個(gè)方向的相鄰細(xì)胞進(jìn)行通信。
如圖5所示,在本實(shí)施例中,所述細(xì)胞陣列中的細(xì)胞具體還可以包括總線控制器和細(xì)胞內(nèi)部總線,所述總線控制器與所述細(xì)胞陣列總線、微處理器以及細(xì)胞內(nèi)部總線相連,所述總線控制器用于識(shí)別所述主控cpu與本細(xì)胞之間進(jìn)行的通信,連接所述微處理器以傳遞所述主控cpu發(fā)送的指令或數(shù)據(jù)、狀態(tài)讀取,或者通過(guò)所述細(xì)胞內(nèi)部總線連接所述非易失隨機(jī)存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。
本領(lǐng)域技術(shù)人員知曉,一個(gè)比較簡(jiǎn)單而性能很好的cpu,如armcotexm0,只有5萬(wàn)個(gè)左右的mos管,即使適度增加fpu功能,也比頂級(jí)cpu的上億個(gè)mos管小得多,提升cpu性能帶來(lái)的面積(成本)增加是不成比例的。把一個(gè)大cpu用許多小cpu替換,在總成本一樣的情況下,總計(jì)算能力一定提高很多倍。然而傳統(tǒng)計(jì)算機(jī)架構(gòu)受制于通信瓶頸,使用大量cpu內(nèi)核帶來(lái)的實(shí)際性能提升非常有限。
而本發(fā)明技術(shù)方案提供的細(xì)胞陣列計(jì)算系統(tǒng)通過(guò)數(shù)據(jù)廣播和內(nèi)部網(wǎng)絡(luò),解決了通信瓶頸的問(wèn)題,從而提升計(jì)算系統(tǒng)的整體性能,并能使費(fèi)效比較佳,對(duì)此將在后續(xù)的應(yīng)用實(shí)例中更清楚地看到這一點(diǎn)。
初步的研究表明,如果使用類(lèi)似于cortexm0的mpu,配合32kb的內(nèi)存,組成一個(gè)細(xì)胞。使用40納米的工藝,可以把3000個(gè)這樣的細(xì)胞做在一個(gè)芯片上,這是非常強(qiáng)大的計(jì)算能力。進(jìn)一步的研究表明,使用這種方法,可以在同樣的硅片面積上超越當(dāng)代頂級(jí)cpu的計(jì)算能力(一般用每秒浮點(diǎn)運(yùn)算次數(shù)(flops,floating-pointoperationspersecond)測(cè)量)。由于本發(fā)明技術(shù)方案的細(xì)胞陣列計(jì)算系統(tǒng)不再面臨與內(nèi)存接口的瓶頸,在解決很多實(shí)際問(wèn)題中,表現(xiàn)的會(huì)更好。
基于上述細(xì)胞陣列計(jì)算系統(tǒng),本發(fā)明實(shí)施例還提供一種上述細(xì)胞陣列計(jì)算系統(tǒng)中的通信方法,包括:主控cpu讀寫(xiě)非易失隨機(jī)存儲(chǔ)器的操作、主控cpu與微處理器之間的通信操作、主控cpu的廣播操作以及細(xì)胞陣列內(nèi)相鄰細(xì)胞之間的通信操作;
所述主控cpu讀寫(xiě)非易失隨機(jī)存儲(chǔ)器的操作具體包括:所述細(xì)胞陣列中的任一細(xì)胞接收所述主控cpu在所述細(xì)胞陣列總線上廣播的目標(biāo)地址,若判斷出所述目標(biāo)地址在本細(xì)胞中,則連接該細(xì)胞的非易失隨機(jī)存儲(chǔ)器以使所述主控cpu進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。
所述主控cpu與微處理器之間的通信操作具體包括:在系統(tǒng)地址空間中預(yù)留第一特殊地址段用于所述主控cpu與微處理器之間的通信并存儲(chǔ)目標(biāo)細(xì)胞的id,若所述細(xì)胞陣列中任一細(xì)胞接收所述第一特殊地址段時(shí)識(shí)別出是與本細(xì)胞的微處理 器的通信,則連接該細(xì)胞的微處理器完成后續(xù)的指令接收、數(shù)據(jù)接收和狀態(tài)讀取操作。
需要說(shuō)明的是,所述系統(tǒng)地址空間并不僅僅局限于由細(xì)胞陣列的各個(gè)細(xì)胞中包含的非易失隨機(jī)存儲(chǔ)器組成的地址空間總和,因?yàn)檫B接細(xì)胞陣列總線的存儲(chǔ)器可能不止是細(xì)胞陣列的各個(gè)細(xì)胞中包含的非易失隨機(jī)存儲(chǔ)器,完全可能還存在其他類(lèi)型的存儲(chǔ)器與細(xì)胞陣列總線相連,供所述主控cpu訪問(wèn)。因此,所述主控cpu需要根據(jù)細(xì)胞的id去標(biāo)識(shí)其準(zhǔn)備訪問(wèn)的細(xì)胞(此時(shí)該細(xì)胞在本實(shí)施例中稱(chēng)為“目標(biāo)細(xì)胞”)。
所述主控cpu的廣播操作具體包括:在系統(tǒng)地址空間中預(yù)留第二特殊地址段用于所述主控cpu廣播指令,所述第二特殊地址段存有能幫助確定所述細(xì)胞陣列中目標(biāo)區(qū)域的范圍的各個(gè)細(xì)胞的id,若所述細(xì)胞陣列中任一細(xì)胞接收所述第二特殊地址段后識(shí)別出本細(xì)胞在所述目標(biāo)區(qū)域中,則連接該細(xì)胞的微處理器以傳遞所述主控cpu發(fā)送的指令或數(shù)據(jù)、狀態(tài)讀取,或者通過(guò)連接該細(xì)胞的非易失隨機(jī)存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。
下面以所述目標(biāo)區(qū)域具體是矩形區(qū)域?yàn)槔龑?duì)所述主控cpu的廣播操作舉例說(shuō)明。在系統(tǒng)地址空間中預(yù)留一段用做廣播指令,這個(gè)地址中的一段用于存儲(chǔ)目標(biāo)矩形區(qū)域中起點(diǎn)細(xì)胞的id。所述起點(diǎn)細(xì)胞是該目標(biāo)矩形區(qū)域中首個(gè)被主控cpu訪問(wèn)的細(xì)胞,該細(xì)胞中的總線控制器接收這個(gè)特殊地址后,接收后面的一個(gè)字(word)的數(shù)據(jù),這個(gè)數(shù)據(jù)包括目標(biāo)矩形區(qū)域中與起點(diǎn)細(xì)胞對(duì)角的細(xì)胞的id。總線控制器判斷本細(xì)胞在該區(qū)域中,接收第二個(gè)字的數(shù)據(jù)。第二個(gè)字標(biāo)明是給mpu的指令或數(shù)據(jù),還是從非易失隨機(jī)存儲(chǔ)器中某一個(gè)相對(duì)地址開(kāi)始寫(xiě)入。如果是前者,連接mpu,如果是后者,連接非易失隨機(jī)存儲(chǔ)器完成后面的操作。
需要說(shuō)明的是,在所述第二特殊地址段的存儲(chǔ)空間較為有限的情況下,其存儲(chǔ)的細(xì)胞id并不一定能完全據(jù)此確定目標(biāo)區(qū)域的范圍,此時(shí)接收所述第二特殊地址段之后,還需要接收后續(xù)的數(shù)據(jù)以配合所述第二特殊地址段中所存儲(chǔ)的細(xì)胞id共同確定目標(biāo)區(qū)域的范圍。
細(xì)胞陣列內(nèi)相鄰細(xì)胞之間的通信操作包括:所述細(xì)胞陣列中的任一細(xì)胞在其微處理器的控制下向相鄰細(xì)胞發(fā)送數(shù)據(jù)。
本實(shí)施例中,每個(gè)細(xì)胞設(shè)置有一個(gè)總線控制器,與細(xì)胞陣列總線連接。細(xì)胞內(nèi)部設(shè)置細(xì)胞內(nèi)部總線,所述非易失隨機(jī)存儲(chǔ)器是該細(xì)胞內(nèi)部總線的從設(shè)備(slave),所述總線控制器和微處理器是主設(shè)備(master)。
上述細(xì)胞陣列計(jì)算系統(tǒng)中的通信方法中涉及的“所述細(xì)胞陣列中的任一細(xì)胞判斷所述目標(biāo)地址是否在本細(xì)胞中”,“識(shí)別是否與本細(xì)胞的微處理器的通信”,“識(shí)別本細(xì)胞是否在所述目標(biāo)區(qū)域中”,以及“連接非易失隨機(jī)存儲(chǔ)器或微處理器”均是由所述總線控制器完成的,所述總線控制器通過(guò)所述細(xì)胞內(nèi)部總線連接所述非易失隨機(jī)存儲(chǔ)器。
在具體實(shí)施時(shí),所述主控cpu對(duì)于所述細(xì)胞陣列中任一細(xì)胞的非易失隨機(jī)存儲(chǔ)器的讀寫(xiě)操作的優(yōu)先級(jí)高于該細(xì)胞內(nèi)的微處理器對(duì)于相應(yīng)的非易失隨機(jī)存儲(chǔ)器的讀寫(xiě)操作。也就是說(shuō),如果某個(gè)細(xì)胞中的微處理器需要讀寫(xiě)該細(xì)胞中的非易失隨機(jī)存儲(chǔ)器,須等主控cpu對(duì)于該細(xì)胞的非易失隨機(jī)存儲(chǔ)器的讀寫(xiě)操作完成之后才能進(jìn)行。
所述細(xì)胞陣列計(jì)算系統(tǒng)中的通信方法的具體實(shí)施也可以參考上述細(xì)胞陣列計(jì)算系統(tǒng)的實(shí)施,此處不再贅述。
本實(shí)施例中,對(duì)于細(xì)胞陣列的內(nèi)部網(wǎng)絡(luò)的實(shí)施,不但可以發(fā)送數(shù)據(jù)到相鄰細(xì)胞,而且還把它擴(kuò)展到可以從一個(gè)細(xì)胞發(fā)送到任何一個(gè)細(xì)胞,即能夠?qū)崿F(xiàn)細(xì)胞陣列中的細(xì)胞間通信。
具體地,所述細(xì)胞陣列計(jì)算系統(tǒng)的細(xì)胞陣列中的任意兩個(gè)細(xì)胞之間能在不依靠主控cpu的情況下進(jìn)行通信,參與細(xì)胞間通信的細(xì)胞包含起點(diǎn)細(xì)胞、終點(diǎn)細(xì)胞和中轉(zhuǎn)細(xì)胞,所述起點(diǎn)細(xì)胞為向所述終點(diǎn)細(xì)胞發(fā)出數(shù)據(jù)的細(xì)胞,所述終點(diǎn)細(xì)胞為最終接收所述起點(diǎn)細(xì)胞所發(fā)數(shù)據(jù)的細(xì)胞,所述中轉(zhuǎn)細(xì)胞為沿細(xì)胞間通信路徑依次相鄰且通過(guò)所述通信接口中轉(zhuǎn)所述起點(diǎn)細(xì)胞所發(fā)數(shù)據(jù)的細(xì)胞,所述細(xì)胞間通信路徑是由所述起點(diǎn)細(xì)胞、中轉(zhuǎn)細(xì)胞和終點(diǎn)細(xì)胞所構(gòu)成的數(shù)據(jù)收發(fā)路徑。
通過(guò)細(xì)胞陣列中相鄰細(xì)胞之間的通信接口,實(shí)現(xiàn)相鄰細(xì)胞之間對(duì)于數(shù)據(jù)的多次中轉(zhuǎn),使細(xì)胞陣列中的任意兩個(gè)細(xì)胞之間不依靠主控cpu便能進(jìn)行通信,提高了細(xì)胞間通信的效率,也降低了主控cpu的處理負(fù)擔(dān),從而能進(jìn)一步提升計(jì)算系統(tǒng)的整體性能。
需要說(shuō)明的是,所述起點(diǎn)細(xì)胞、終點(diǎn)細(xì)胞和中轉(zhuǎn)細(xì)胞均是相對(duì)于某一次細(xì)胞間通信過(guò)程而言的相對(duì)概念,因?yàn)槟硞€(gè)起點(diǎn)細(xì)胞完全也可能作為其他細(xì)胞間通信過(guò)程中的中轉(zhuǎn)細(xì)胞或終點(diǎn)細(xì)胞,某個(gè)終點(diǎn)細(xì)胞也可能作為其他細(xì)胞間通信過(guò)程中的中轉(zhuǎn)細(xì)胞或起點(diǎn)細(xì)胞。
在具體實(shí)施時(shí),所述細(xì)胞陣列中的細(xì)胞還可以包括與所述微處理器相連的網(wǎng)絡(luò)控制器,所述網(wǎng)絡(luò)控制器用于在細(xì)胞間通信時(shí)對(duì)發(fā)出的數(shù)據(jù)、中轉(zhuǎn)的數(shù)據(jù)或者最終接收的數(shù)據(jù)進(jìn)行收發(fā)控制,還用于向所述微處理器發(fā)送中斷信號(hào)。本實(shí)施例中,通過(guò)在每個(gè)細(xì)胞內(nèi)設(shè)置一個(gè)網(wǎng)絡(luò)控制器,以便在不干擾mpu的情況下快速地中轉(zhuǎn)數(shù)據(jù),由此降低細(xì)胞中mpu的處理負(fù)擔(dān)。在其他實(shí)施例中,也可以不設(shè)置所述網(wǎng)絡(luò)控制器,而是由mpu實(shí)現(xiàn)數(shù)據(jù)的中轉(zhuǎn)。
在本實(shí)施例中,“發(fā)出的數(shù)據(jù)”指的是所述起點(diǎn)細(xì)胞自身所發(fā)的數(shù)據(jù);“中轉(zhuǎn)的數(shù)據(jù)”指的是所述中轉(zhuǎn)細(xì)胞中轉(zhuǎn)所述起點(diǎn)細(xì)胞所發(fā)出的數(shù)據(jù),該數(shù)據(jù)并非由本細(xì)胞自身所需要發(fā)出的;“最終接收的數(shù)據(jù)”指的是終點(diǎn)細(xì)胞所接收的數(shù)據(jù),該數(shù)據(jù)在經(jīng)過(guò)多次中轉(zhuǎn)之后已到達(dá)目的地,將不再進(jìn)行中轉(zhuǎn)。“發(fā)出的數(shù)據(jù)”、“中轉(zhuǎn)的數(shù)據(jù)”和“最終接收的數(shù)據(jù)”,就內(nèi)容而言可能為相同的數(shù)據(jù),只不過(guò)屬于不同通信階段的不同稱(chēng)呼。
在具體實(shí)施時(shí),所述細(xì)胞陣列中的細(xì)胞還可以包括與所述網(wǎng)絡(luò)控制器相連的一組或一組以上先入先出隊(duì)列,各組先入先出隊(duì)列分別對(duì)應(yīng)一個(gè)與本細(xì)胞相鄰的細(xì)胞,每一組先入先出隊(duì)列包括輸入先入先出隊(duì)列和輸出先入先出隊(duì)列,所述輸入先入先出隊(duì)列用于存儲(chǔ)輸入本細(xì)胞進(jìn)行中轉(zhuǎn)的數(shù)據(jù)或最終接收的數(shù)據(jù),所述輸出先入先出隊(duì)列用于存儲(chǔ)從本細(xì)胞輸出的需進(jìn)行中轉(zhuǎn)的數(shù)據(jù)或本細(xì)胞向其他細(xì)胞發(fā)出的數(shù)據(jù)。
若在以圖3所示相鄰細(xì)胞之間通信方式為例的情況下,本實(shí)施例的細(xì)胞陣列中進(jìn)行細(xì)胞間通信的細(xì)胞的結(jié)構(gòu)如圖7所示,圖7中的網(wǎng)絡(luò)控制器分別與mpu以及4組fifo隊(duì)列相連,各組fifo隊(duì)列分別與本細(xì)胞在“二維平面的上、下、左、右四個(gè)方向”相鄰的細(xì)胞一一對(duì)應(yīng),具體實(shí)施時(shí),每?jī)蓚€(gè)相鄰細(xì)胞之間的通信通道可以 共用一組相應(yīng)的fifo隊(duì)列。每組fifo隊(duì)列均包含輸入fifo和輸出fifo,站在其中一個(gè)細(xì)胞的角度上而言,輸入fifo存放從其他相鄰細(xì)胞輸入的數(shù)據(jù),輸出fifo存放從本細(xì)胞向其他相鄰細(xì)胞輸出的數(shù)據(jù),相鄰細(xì)胞的輸出fifo對(duì)于本細(xì)胞來(lái)說(shuō)屬于輸入fifo,本細(xì)胞的輸出fifo對(duì)于相鄰細(xì)胞來(lái)說(shuō)屬于輸入fifo。
需要說(shuō)明的是,圖7所示的細(xì)胞中對(duì)應(yīng)存在4組fifo隊(duì)列,若是位于矩形的細(xì)胞陣列的4個(gè)角的細(xì)胞,則該細(xì)胞僅有兩個(gè)相鄰細(xì)胞,此時(shí)該細(xì)胞對(duì)應(yīng)2組fifo隊(duì)列,若是位于矩形的細(xì)胞陣列的4條邊的細(xì)胞,則該細(xì)胞有三個(gè)相鄰細(xì)胞,此時(shí)該細(xì)胞對(duì)應(yīng)3組fifo隊(duì)列。
本實(shí)施例中,網(wǎng)絡(luò)控制器還和該細(xì)胞內(nèi)的mpu連接,給它發(fā)中斷信號(hào),如fifo空、fifo滿、新到數(shù)據(jù)、數(shù)據(jù)送出等等;mpu則可以通過(guò)網(wǎng)絡(luò)控制器發(fā)出數(shù)據(jù),發(fā)出的數(shù)據(jù)通常會(huì)先放入相應(yīng)的一個(gè)輸出fifo隊(duì)列中。
需要說(shuō)明的是,圖7中的細(xì)胞結(jié)構(gòu)僅僅示出了與進(jìn)行細(xì)胞間通信相關(guān)的模塊,本領(lǐng)域技術(shù)人員能夠理解的是,圖7所示的細(xì)胞結(jié)構(gòu)完全可以與圖5所示的細(xì)胞結(jié)構(gòu)相結(jié)合。
此外,本實(shí)施例中采用fifo隊(duì)列存儲(chǔ)輸入和輸出某個(gè)細(xì)胞的數(shù)據(jù),如此能夠使細(xì)胞間通信過(guò)程中的數(shù)據(jù)中轉(zhuǎn)更有效率,減少mpu的處理負(fù)荷。在其他實(shí)施例中,輸入和輸出某個(gè)細(xì)胞的數(shù)據(jù)也可以通過(guò)寄存器實(shí)現(xiàn)。
本發(fā)明實(shí)施例還提供一種上述細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞之間的通信方法,包括:所述細(xì)胞陣列中的起點(diǎn)細(xì)胞將向終點(diǎn)細(xì)胞發(fā)出的數(shù)據(jù),按選定的發(fā)送方向發(fā)送至與所述起點(diǎn)細(xì)胞相鄰的細(xì)胞;當(dāng)所述細(xì)胞陣列中的任一細(xì)胞接收到相鄰細(xì)胞發(fā)出的數(shù)據(jù)或中轉(zhuǎn)的數(shù)據(jù)時(shí),若根據(jù)接收到的數(shù)據(jù)中所標(biāo)明的所述終點(diǎn)細(xì)胞的id判斷出本細(xì)胞為終點(diǎn)細(xì)胞,則將接收到的數(shù)據(jù)存入本細(xì)胞的非易失隨機(jī)存儲(chǔ)器,或者通知本細(xì)胞的微處理器對(duì)接收的數(shù)據(jù)進(jìn)行處理,否則本細(xì)胞作為中轉(zhuǎn)細(xì)胞,在選定發(fā)送方向后將所述接收到的數(shù)據(jù)中轉(zhuǎn)給與本細(xì)胞相鄰的細(xì)胞。
在具體實(shí)施時(shí),細(xì)胞間通信過(guò)程中涉及的每一條數(shù)據(jù)都會(huì)含有起點(diǎn)細(xì)胞和終點(diǎn)細(xì)胞的id,任一細(xì)胞根據(jù)接收到的數(shù)據(jù)中所標(biāo)明的終點(diǎn)細(xì)胞的id便可以判斷該數(shù)據(jù)是發(fā)給本細(xì)胞的還是需要進(jìn)一步中轉(zhuǎn)給其他相鄰細(xì)胞的。一條數(shù)據(jù)通過(guò)相鄰細(xì)胞間的連接,經(jīng)過(guò)多次中轉(zhuǎn),到達(dá)終點(diǎn)細(xì)胞,若該終點(diǎn)細(xì)胞需要就起點(diǎn)細(xì)胞所發(fā)數(shù)據(jù)作出反饋,則可以根據(jù)起點(diǎn)細(xì)胞的id將反饋數(shù)據(jù)發(fā)向起點(diǎn)細(xì)胞,所述終點(diǎn)細(xì)胞以接收到的數(shù)據(jù)中所標(biāo)明的起點(diǎn)細(xì)胞的id作為終點(diǎn)細(xì)胞的id,在對(duì)接收到的數(shù)據(jù)進(jìn)行處理后所得到的反饋數(shù)據(jù)中予以標(biāo)明,此時(shí)該終點(diǎn)細(xì)胞成為新的一次細(xì)胞間通信時(shí)的起點(diǎn)細(xì)胞,原先的起點(diǎn)細(xì)胞則成為該次細(xì)胞間通信時(shí)的終點(diǎn)細(xì)胞。
具體實(shí)施時(shí),在標(biāo)明終點(diǎn)細(xì)胞的id的同時(shí),所述起點(diǎn)細(xì)胞向終點(diǎn)細(xì)胞發(fā)出的數(shù)據(jù)中還標(biāo)明所述終點(diǎn)細(xì)胞中要被訪問(wèn)的地址或者mpu;所述將接收到的數(shù)據(jù)存入本細(xì)胞的非易失隨機(jī)存儲(chǔ)器,是所述終點(diǎn)細(xì)胞在識(shí)別出接收到的數(shù)據(jù)中所標(biāo)明的要被訪問(wèn)的地址之后進(jìn)行的;所述通知本細(xì)胞的mpu對(duì)接收的數(shù)據(jù)進(jìn)行處理,是所述終點(diǎn)細(xì)胞在識(shí)別出接收到的數(shù)據(jù)中所標(biāo)明的mpu之后進(jìn)行的。
在實(shí)際實(shí)施時(shí),若終點(diǎn)細(xì)胞在識(shí)別出接收到的數(shù)據(jù)中所標(biāo)明的要被訪問(wèn)的地址后,則接收的數(shù)據(jù)可以被該終點(diǎn)細(xì)胞內(nèi)的網(wǎng)絡(luò)控制器直接寫(xiě)入該細(xì)胞的非易失隨機(jī)存儲(chǔ)器中的相應(yīng)地址,在這種情況下,細(xì)胞可以實(shí)現(xiàn)“繁殖”,一個(gè)細(xì)胞可以給另外一個(gè)細(xì)胞下載程序;若終點(diǎn)細(xì)胞在識(shí)別出接收到的數(shù)據(jù)中所標(biāo)明的mpu之后, 接收的數(shù)據(jù)將交由終點(diǎn)細(xì)胞內(nèi)的mpu處理。
在本實(shí)施例中,由于細(xì)胞陣列中的細(xì)胞還包括與mpu相連的網(wǎng)絡(luò)控制器,因此所述起點(diǎn)細(xì)胞向終點(diǎn)細(xì)胞發(fā)出數(shù)據(jù)、所述細(xì)胞陣列中的任一細(xì)胞接收相鄰細(xì)胞發(fā)出的數(shù)據(jù)或中轉(zhuǎn)的數(shù)據(jù)并判斷本細(xì)胞為最終細(xì)胞或是中轉(zhuǎn)細(xì)胞、將接收到的數(shù)據(jù)存入本細(xì)胞的非易失隨機(jī)存儲(chǔ)器或者通知本細(xì)胞的mpu對(duì)接收的數(shù)據(jù)進(jìn)行處理,均是在所述網(wǎng)絡(luò)控制器的控制下完成的。
具體實(shí)施時(shí),所述起點(diǎn)細(xì)胞向終點(diǎn)細(xì)胞發(fā)出的數(shù)據(jù)先由所述網(wǎng)絡(luò)控制器輸入所述輸出先入先出隊(duì)列,再由所述網(wǎng)絡(luò)控制器從所述輸出先入先出隊(duì)列輸出至與所述起點(diǎn)細(xì)胞相鄰的細(xì)胞;若所述細(xì)胞陣列中的任一細(xì)胞接收到相鄰細(xì)胞發(fā)出的數(shù)據(jù)或中轉(zhuǎn)的數(shù)據(jù),則將接收到的數(shù)據(jù)輸入所述輸入先入先出隊(duì)列,并在判斷出接收到的數(shù)據(jù)需要進(jìn)行中轉(zhuǎn)時(shí)再將該數(shù)據(jù)輸入所述輸出先入先出隊(duì)列。
此外,若所述網(wǎng)絡(luò)控制器判斷出所述輸入先入先出隊(duì)列或輸出先入先出隊(duì)列為空或者已滿,或接收到相鄰細(xì)胞發(fā)出或中轉(zhuǎn)的數(shù)據(jù),或向相鄰細(xì)胞發(fā)出數(shù)據(jù)或中轉(zhuǎn)數(shù)據(jù),則向所述微處理器發(fā)送中斷信號(hào)。
在具體實(shí)施時(shí),所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞可以通過(guò)如下方式選定所述發(fā)送方向:若所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞與所述終點(diǎn)細(xì)胞之間能形成一條直線的通信路徑,則所述發(fā)送方向?yàn)橛伤銎瘘c(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞沿所述直線向所述終點(diǎn)細(xì)胞的方向,否則所述發(fā)送方向?yàn)橛伤銎瘘c(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞向待選相鄰細(xì)胞的方向,所述待選相鄰細(xì)胞為與所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞相鄰的細(xì)胞之中靠近所述終點(diǎn)細(xì)胞的細(xì)胞。當(dāng)然,所述待選相鄰細(xì)胞的數(shù)量有可能為兩個(gè),此時(shí)則選擇這兩個(gè)待選相鄰細(xì)胞中輸出數(shù)據(jù)的通信任務(wù)更少的細(xì)胞作為中轉(zhuǎn)細(xì)胞。
本實(shí)施例中,所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞通過(guò)上述方式選定發(fā)送方向,實(shí)際上也可以認(rèn)為是細(xì)胞陣列中細(xì)胞間通信的路徑選擇過(guò)程??梢詤㈤唸D8,圖8中的每個(gè)矩形表示細(xì)胞陣列中的一個(gè)細(xì)胞,圖8中示出的所有細(xì)胞為整個(gè)細(xì)胞陣列中的一部分,假設(shè)相鄰細(xì)胞之間按圖3所示的通信方式進(jìn)行。
如果a點(diǎn)表示一個(gè)起點(diǎn)細(xì)胞,該起點(diǎn)細(xì)胞準(zhǔn)備向c點(diǎn)所在的終點(diǎn)細(xì)胞發(fā)出數(shù)據(jù),由于a點(diǎn)與c點(diǎn)之間顯然是能夠形成一條直線的通信路徑,則a點(diǎn)所在的細(xì)胞將數(shù)據(jù)發(fā)向與其相鄰的b點(diǎn)所在的細(xì)胞,同理,b點(diǎn)所在的細(xì)胞作為中轉(zhuǎn)細(xì)胞,繼續(xù)沿著a點(diǎn)與c點(diǎn)之間的直線向c點(diǎn)所在細(xì)胞的方向中轉(zhuǎn)數(shù)據(jù),在a點(diǎn)與c點(diǎn)之間形成的細(xì)胞間通信路徑上依次相鄰的細(xì)胞,將a點(diǎn)所在細(xì)胞發(fā)出的數(shù)據(jù)多次轉(zhuǎn)發(fā),直至傳送到c點(diǎn)所在細(xì)胞。
如果d點(diǎn)表示另一個(gè)起點(diǎn)細(xì)胞,該起點(diǎn)細(xì)胞準(zhǔn)備向g點(diǎn)所在的終點(diǎn)細(xì)胞發(fā)出數(shù)據(jù),由于d點(diǎn)與g點(diǎn)之間顯然是無(wú)法形成一條直線的通信路徑,則在與d點(diǎn)所在細(xì)胞相鄰的細(xì)胞之中,e點(diǎn)所在的細(xì)胞和f點(diǎn)所在的細(xì)胞顯然更靠近g點(diǎn)所在的終點(diǎn)細(xì)胞,則這兩個(gè)細(xì)胞屬于d點(diǎn)所在細(xì)胞的待選相鄰細(xì)胞,可以選擇其中輸出數(shù)據(jù)的通信任務(wù)更少的細(xì)胞作為中轉(zhuǎn)細(xì)胞,若這兩個(gè)細(xì)胞輸出數(shù)據(jù)的通信任務(wù)相同,則隨意選擇一個(gè)細(xì)胞作為中轉(zhuǎn)細(xì)胞。如圖8所示,選擇e點(diǎn)所在的細(xì)胞還是f點(diǎn)所在的細(xì)胞,將形成不同的細(xì)胞間通信路徑。
需要說(shuō)明的是,本實(shí)施例中是以圖3所示的相鄰細(xì)胞之間的通信方式為例對(duì)細(xì)胞間通信的路徑選擇進(jìn)行說(shuō)明的,本領(lǐng)域技術(shù)人員能夠理解的是,若是采用圖4所示的相鄰細(xì)胞之間的通信方式,則可供選擇的發(fā)送方向?qū)?huì)更多。
綜上,在實(shí)際實(shí)施時(shí),每一個(gè)發(fā)出或中轉(zhuǎn)數(shù)據(jù)的細(xì)胞,其網(wǎng)絡(luò)控制器都必須選擇一個(gè)相鄰的細(xì)胞作為下一站。當(dāng)起點(diǎn)和終點(diǎn)在一條直線上時(shí),合理的選擇一般只有一個(gè);其他情況下,有兩個(gè)同樣合理的選擇,網(wǎng)絡(luò)控制器將選擇一個(gè)交通相對(duì)不忙的鄰居。
如果某個(gè)輸入fifo隊(duì)列有數(shù)據(jù)進(jìn)入,則網(wǎng)絡(luò)控制器將首先檢查它:
如果終點(diǎn)是本細(xì)胞,那么:若終點(diǎn)是特定相對(duì)地址,由于網(wǎng)絡(luò)控制器具有直接內(nèi)存訪問(wèn)(dma,directmemoryaccess)的能力,將把接收到的數(shù)據(jù)直接存入所述非易失隨機(jī)存儲(chǔ)器中的相應(yīng)地址,并用中斷通知mpu;若終點(diǎn)是mpu,則直接用中斷信號(hào)通知mpu進(jìn)行處理。
如果終點(diǎn)是其他細(xì)胞,或者本細(xì)胞的mpu向外發(fā)出數(shù)據(jù),那么:若終點(diǎn)與本細(xì)胞在一條直線上,則選擇正確的方向,向相鄰細(xì)胞發(fā)送數(shù)據(jù);其他情況下,有兩個(gè)可能的方向,選擇其中輸出fifo隊(duì)列更空閑的相鄰細(xì)胞發(fā)送,如果兩個(gè)待選相鄰細(xì)胞中的輸出fifo隊(duì)列的情況相同,則可以從中隨意選擇一個(gè)相鄰細(xì)胞發(fā)送。
在實(shí)際實(shí)施時(shí),當(dāng)所述細(xì)胞陣列中存在的數(shù)千個(gè)mpu一起計(jì)算時(shí),怎樣把各個(gè)細(xì)胞的輸出數(shù)據(jù)發(fā)送給所述主控cpu就成為一個(gè)問(wèn)題。一般來(lái)說(shuō),每個(gè)mpu可以把輸出數(shù)據(jù)存放在其所在細(xì)胞的非易失隨機(jī)存儲(chǔ)器中的約定地址,讓主控cpu通過(guò)逐個(gè)輪詢(xún)每個(gè)mpu的方式進(jìn)行讀取。然而,這并不適用于所有問(wèn)題,在有些問(wèn)題中,當(dāng)細(xì)胞陣列中只有少數(shù)幾個(gè)細(xì)胞需要向主控cpu輸出數(shù)據(jù)時(shí),那么主控cpu逐個(gè)輪詢(xún)每個(gè)mpu效率太低。
因此,本發(fā)明實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)還包括:所述細(xì)胞陣列中還設(shè)有至少一個(gè)專(zhuān)職輸出細(xì)胞,所述專(zhuān)職輸出細(xì)胞作為終點(diǎn)細(xì)胞接收并存儲(chǔ)其他細(xì)胞給所述主控cpu的輸出數(shù)據(jù),并以中斷信號(hào)通知所述主控cpu讀取所述輸出數(shù)據(jù)。
在具體實(shí)施時(shí),還可以在所述專(zhuān)職輸出細(xì)胞的非易失隨機(jī)存儲(chǔ)器中設(shè)置fifo隊(duì)列,其他細(xì)胞給所述主控cpu的所有輸出數(shù)據(jù)存儲(chǔ)在該fifo隊(duì)列中,該fifo隊(duì)列應(yīng)當(dāng)具有足夠的存儲(chǔ)空間,有能力存儲(chǔ)其他細(xì)胞給所述主控cpu的所有輸出數(shù)據(jù)。
實(shí)際實(shí)施時(shí),可以在細(xì)胞陣列中選擇一個(gè)或幾個(gè)細(xì)胞作為所述專(zhuān)職輸出細(xì)胞,一般可以選擇在位置上與主控cpu之間進(jìn)行通信更為便捷的細(xì)胞。所述專(zhuān)職輸出細(xì)胞與所述主控cpu之間設(shè)有中斷線,所述專(zhuān)職輸出細(xì)胞可以給主控cpu發(fā)送中斷信號(hào),例如新到其他細(xì)胞的輸出數(shù)據(jù)、mram中設(shè)置的fifo隊(duì)列已滿、mram中設(shè)置的fifo已空等等。
基于上述設(shè)有專(zhuān)職輸出細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng),本發(fā)明實(shí)施例還提供一種細(xì)胞陣列計(jì)算系統(tǒng)中的通信方法,包括:所述專(zhuān)職輸出細(xì)胞接收并存儲(chǔ)其他細(xì)胞給所述主控cpu的輸出數(shù)據(jù)之后,向所述主控cpu發(fā)出通知讀取的中斷信號(hào);所述主控cpu在接收到所述通知讀取的中斷信號(hào)后,從所述專(zhuān)職輸出細(xì)胞中讀取所述輸出數(shù)據(jù)。
具體實(shí)施時(shí),所述其他細(xì)胞可以通過(guò)如下方式將所述輸出數(shù)據(jù)發(fā)送至所述專(zhuān)職輸出細(xì)胞:所述其他細(xì)胞中的任一細(xì)胞作為起點(diǎn)細(xì)胞,將所述輸出數(shù)據(jù)按選定的發(fā)送方向發(fā)送至相鄰的細(xì)胞;當(dāng)所述細(xì)胞陣列中的任一細(xì)胞接收到相鄰細(xì)胞發(fā)送的所述輸出數(shù)據(jù)時(shí),若判斷出所述輸出數(shù)據(jù)中所標(biāo)明的終點(diǎn)細(xì)胞的id與本細(xì)胞的id一致,由于所述輸出數(shù)據(jù)中所標(biāo)明的終點(diǎn)細(xì)胞的id為所述專(zhuān)職輸出細(xì)胞的id,表明 本細(xì)胞為所述專(zhuān)職輸出細(xì)胞,則將所述輸出數(shù)據(jù)存入本細(xì)胞的非易失隨機(jī)存儲(chǔ)器,否則本細(xì)胞作為中轉(zhuǎn)細(xì)胞,在選定發(fā)送方向后將所述輸出數(shù)據(jù)中轉(zhuǎn)給與本細(xì)胞相鄰的細(xì)胞。
所述其他細(xì)胞將所述輸出數(shù)據(jù)發(fā)送至所述專(zhuān)職輸出細(xì)胞的過(guò)程中,所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞可以通過(guò)如下方式選定所述發(fā)送方向:若所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞與所述專(zhuān)職輸出細(xì)胞之間能形成一條直線的通信路徑,則所述發(fā)送方向?yàn)橛伤銎瘘c(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞沿所述直線向所述專(zhuān)職輸出細(xì)胞的方向,否則所述發(fā)送方向?yàn)橛伤銎瘘c(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞向待選相鄰細(xì)胞的方向,所述待選相鄰細(xì)胞為與所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞相鄰的細(xì)胞之中靠近所述專(zhuān)職輸出細(xì)胞的細(xì)胞。
本發(fā)明實(shí)施例的專(zhuān)職輸出細(xì)胞的實(shí)施過(guò)程還可以參閱圖9。圖9示出了主控cpu、細(xì)胞陣列以及細(xì)胞陣列總線,細(xì)胞陣列內(nèi)的一個(gè)個(gè)小方格簡(jiǎn)單地表示出一個(gè)個(gè)細(xì)胞,其中j點(diǎn)所在的細(xì)胞(即粗線框小方格表示的細(xì)胞)為專(zhuān)職輸出細(xì)胞,圖9還進(jìn)一步示出了專(zhuān)職輸出細(xì)胞的結(jié)構(gòu),如圖9中虛線箭頭所示,可以看到,專(zhuān)職輸出細(xì)胞中的mram中設(shè)有存儲(chǔ)其他細(xì)胞給所述主控cpu的所有輸出數(shù)據(jù)的fifo隊(duì)列。
假設(shè)h點(diǎn)所在的細(xì)胞和i點(diǎn)所在的細(xì)胞需要向主控cpu提供輸出數(shù)據(jù),則可以通過(guò)細(xì)胞之間的通信方式將所述輸出數(shù)據(jù)發(fā)送至j點(diǎn)所在的細(xì)胞,h點(diǎn)至j點(diǎn)的細(xì)胞間通信路徑以及i點(diǎn)至j點(diǎn)的細(xì)胞間通信路徑,請(qǐng)參閱圖9。由于細(xì)胞間通信方式此前已有詳細(xì)描述,此處不再贅述。
j點(diǎn)所在的細(xì)胞接收到h點(diǎn)所在的細(xì)胞或i點(diǎn)所在的細(xì)胞發(fā)出的輸出數(shù)據(jù)后,則可以發(fā)送通知讀取的中斷信號(hào)給主控cpu,主控cpu接收到該通知讀取的中斷信號(hào)后,便可以通過(guò)細(xì)胞陣列總線從j點(diǎn)所在的細(xì)胞中讀取該輸出數(shù)據(jù)。
通過(guò)在細(xì)胞陣列中設(shè)置專(zhuān)職輸出細(xì)胞,以所述專(zhuān)職輸出細(xì)胞作為所述終點(diǎn)細(xì)胞接收并存儲(chǔ)其他細(xì)胞給主控cpu的輸出數(shù)據(jù),并以中斷信號(hào)的方式通知所述主控cpu讀取所述輸出數(shù)據(jù),如此能夠在只有少數(shù)幾個(gè)細(xì)胞需要向主控cpu輸出數(shù)據(jù)時(shí)提高主控cpu讀取輸出數(shù)據(jù)的效率。
下面再介紹一個(gè)應(yīng)用上述細(xì)胞陣列計(jì)算系統(tǒng)的實(shí)例。
語(yǔ)音識(shí)別可以用已知的語(yǔ)音庫(kù)和輸入的聲音信號(hào)進(jìn)行比對(duì),這個(gè)比對(duì)可以是在時(shí)域比對(duì)也可以在頻域比對(duì)。當(dāng)需要比對(duì)的字詞越來(lái)越多,比如說(shuō),考慮到不同的口音可以到數(shù)萬(wàn)個(gè),如果僅依靠少數(shù)幾個(gè)cpu的計(jì)算能力對(duì)于實(shí)時(shí)語(yǔ)音識(shí)別就顯得不足了。
本發(fā)明實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)則非常適合解決此類(lèi)問(wèn)題。
為此,本發(fā)明實(shí)施例還提供一種應(yīng)用上述細(xì)胞陣列計(jì)算系統(tǒng)進(jìn)行數(shù)據(jù)比對(duì)的方法,包括:所述主控cpu選擇所述細(xì)胞陣列中全部或一個(gè)目標(biāo)區(qū)域內(nèi)的細(xì)胞后,把比對(duì)程序廣播到每個(gè)細(xì)胞的非易失隨機(jī)存儲(chǔ)器中;所述主控cpu把所選擇的每個(gè)細(xì)胞負(fù)責(zé)比對(duì)的樣品分別寫(xiě)入到各細(xì)胞的約定地址中;所述主控cpu廣播指令給所選擇細(xì)胞的微處理器,使各個(gè)微處理器完成初始化后等待輸入待比對(duì)的數(shù)據(jù);所述主控cpu把待比對(duì)的數(shù)據(jù)廣播給所選擇細(xì)胞的微處理器;所選擇細(xì)胞的微處理器運(yùn)行所述比對(duì)程序,對(duì)接收到的待比對(duì)的數(shù)據(jù)與本細(xì)胞負(fù)責(zé)比對(duì)的樣品進(jìn)行比較,若獲得兩者一致的比較結(jié)果,則使用上述細(xì)胞陣列計(jì)算系統(tǒng)中的通信方法,將所述比較結(jié)果作為輸出數(shù)據(jù)發(fā)送至所述專(zhuān)職輸出細(xì)胞以供所述主控cpu讀取。
具體實(shí)施時(shí),所述待比對(duì)的數(shù)據(jù)既可以是待識(shí)別的語(yǔ)音數(shù)據(jù),也可以是待識(shí)別的圖像數(shù)據(jù),還可以是其他需要進(jìn)行比對(duì)的數(shù)據(jù)。
在實(shí)際實(shí)施時(shí),每個(gè)mpu不斷接受語(yǔ)音數(shù)據(jù)進(jìn)行比對(duì),通常情況下,幾百個(gè)到幾千個(gè)細(xì)胞中,只有一個(gè)或少數(shù)幾個(gè)得到待比對(duì)的數(shù)據(jù)與本細(xì)胞負(fù)責(zé)比對(duì)的樣品兩者相一致的比較結(jié)果,這些細(xì)胞把比較結(jié)果發(fā)送到專(zhuān)職輸出細(xì)胞,后者用中斷信號(hào)通知主控cpu接收。
若所述待比對(duì)的數(shù)據(jù)具體為語(yǔ)音數(shù)據(jù),則數(shù)據(jù)比對(duì)的過(guò)程可以在時(shí)域或是頻域進(jìn)行,如果是后者,可以先由主控cpu分段進(jìn)行快速傅里葉變換(fft,fastfouriertransformation),再?gòu)V播已轉(zhuǎn)換到頻域的語(yǔ)音數(shù)據(jù)給所選擇細(xì)胞的mpu。
通過(guò)應(yīng)用上述設(shè)有專(zhuān)職輸出細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng)進(jìn)行數(shù)據(jù)比對(duì),可以使細(xì)胞陣列中大量的細(xì)胞同時(shí)進(jìn)行比對(duì)程序的運(yùn)算,由此具有極強(qiáng)的并行處理能力,解決了現(xiàn)有技術(shù)中cpu和內(nèi)存之間的通信瓶頸問(wèn)題,使實(shí)時(shí)語(yǔ)音/圖像識(shí)別的能力得到大大提升。
如前所述,從一個(gè)細(xì)胞廣播信息到細(xì)胞陣列中的某個(gè)目標(biāo)區(qū)域,已經(jīng)有一個(gè)簡(jiǎn)單的方法:由主控cpu讀取信息再進(jìn)行廣播。本實(shí)施例還提供另外一種實(shí)現(xiàn)方式:把細(xì)胞間的點(diǎn)對(duì)點(diǎn)通信功能被擴(kuò)展到區(qū)域群發(fā),這種方式可以支持更高的平行度,高得多的總帶寬。
在本實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)中,所述細(xì)胞陣列中的任一細(xì)胞還能作為所述起點(diǎn)細(xì)胞向目標(biāo)區(qū)域內(nèi)的所有細(xì)胞進(jìn)行群發(fā)通信,參與所述群發(fā)通信且位于目標(biāo)區(qū)域內(nèi)的細(xì)胞作為所述起點(diǎn)細(xì)胞、或作為所述終點(diǎn)細(xì)胞、或同時(shí)作為所述中轉(zhuǎn)細(xì)胞和終點(diǎn)細(xì)胞,參與所述群發(fā)通信且位于目標(biāo)區(qū)域外的細(xì)胞作為所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞。
具體實(shí)施時(shí),每個(gè)細(xì)胞中與微處理器相連的網(wǎng)絡(luò)控制器,除了在任意兩個(gè)細(xì)胞進(jìn)行細(xì)胞間通信,而且還在所述群發(fā)通信時(shí),對(duì)發(fā)出的數(shù)據(jù)、中轉(zhuǎn)的數(shù)據(jù)或者最終接收的數(shù)據(jù)進(jìn)行收發(fā)控制,所述網(wǎng)絡(luò)控制器還用于向所述微處理器發(fā)送中斷信號(hào)。
在實(shí)際實(shí)施時(shí),細(xì)胞間群發(fā)通信的原始發(fā)送者(細(xì)胞陣列中作為起點(diǎn)細(xì)胞的細(xì)胞)負(fù)責(zé)標(biāo)明目標(biāo)區(qū)域,仍然通過(guò)一系列中轉(zhuǎn)完成數(shù)據(jù)的群發(fā)。本領(lǐng)域技術(shù)人員能夠理解的是,細(xì)胞間群發(fā)通信也可以認(rèn)為是多次細(xì)胞間的點(diǎn)對(duì)點(diǎn)通信的有效疊加,因此細(xì)胞間群發(fā)通信的具體實(shí)施也可以參考任意兩個(gè)細(xì)胞之間進(jìn)行通信的實(shí)施,例如此前提及的所述細(xì)胞陣列中的細(xì)胞同樣可以包括與所述網(wǎng)絡(luò)控制器相連的一組或一組以上先入先出隊(duì)列,此處不再贅述。
在上述細(xì)胞陣列計(jì)算系統(tǒng)支持細(xì)胞間群發(fā)通信的基礎(chǔ)上,本發(fā)明實(shí)施例還提供一種上述細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞間群發(fā)通信方法,包括:當(dāng)細(xì)胞陣列中的任一細(xì)胞作為起點(diǎn)細(xì)胞向目標(biāo)區(qū)域內(nèi)所有細(xì)胞發(fā)起群發(fā)通信時(shí),若該起點(diǎn)細(xì)胞位于該目標(biāo)區(qū)域內(nèi),則將細(xì)胞間群發(fā)數(shù)據(jù)發(fā)送至所有位于該目標(biāo)區(qū)域內(nèi)的相鄰細(xì)胞,并針對(duì)每一個(gè)相鄰細(xì)胞更新目標(biāo)區(qū)域,否則按靠近目標(biāo)區(qū)域的方向?qū)⑺黾?xì)胞間群發(fā)數(shù)據(jù)發(fā)送至相鄰的細(xì)胞;若位于目標(biāo)區(qū)域外的細(xì)胞接收到相鄰細(xì)胞發(fā)送的所述細(xì)胞間群發(fā)數(shù)據(jù),則在判斷出所述細(xì)胞間群發(fā)數(shù)據(jù)中所標(biāo)明的目標(biāo)區(qū)域不包含本細(xì)胞后,本細(xì)胞作為中轉(zhuǎn)細(xì)胞,按靠近目標(biāo)區(qū)域的方向?qū)⑺黾?xì)胞間群發(fā)數(shù)據(jù)中轉(zhuǎn)給相鄰細(xì)胞;若位于目標(biāo)區(qū)域內(nèi)的細(xì)胞接收到相鄰細(xì)胞發(fā)送的所述細(xì)胞間群發(fā)數(shù)據(jù),則在判斷出所述細(xì)胞間群發(fā)數(shù)據(jù)中所標(biāo)明的目標(biāo)區(qū)域包含本細(xì)胞后,本細(xì)胞作為終點(diǎn)細(xì)胞,將 接收到的所述細(xì)胞間群發(fā)數(shù)據(jù)存入本細(xì)胞的非易失隨機(jī)存儲(chǔ)器,或者通知本細(xì)胞的微處理器對(duì)所述細(xì)胞間群發(fā)數(shù)據(jù)進(jìn)行處理,如果目標(biāo)區(qū)域內(nèi)仍然存在與本細(xì)胞相鄰的細(xì)胞,則本細(xì)胞還作為中轉(zhuǎn)細(xì)胞,將接收到的所述細(xì)胞間群發(fā)數(shù)據(jù)中轉(zhuǎn)給所有位于目標(biāo)區(qū)域內(nèi)的相鄰細(xì)胞,并針對(duì)每一個(gè)相鄰細(xì)胞更新目標(biāo)區(qū)域;更新后的目標(biāo)區(qū)域包括由更新前的目標(biāo)區(qū)域劃分而成的一個(gè)或一個(gè)以上目標(biāo)區(qū)域,更新前的目標(biāo)區(qū)域內(nèi)發(fā)出或中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)的細(xì)胞的每一個(gè)相鄰細(xì)胞分別包含于更新后的各個(gè)目標(biāo)區(qū)域內(nèi),已發(fā)出或已中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)的細(xì)胞排除在更新后的目標(biāo)區(qū)域之外。
需要說(shuō)明的是,由于主控cpu也可以將某個(gè)細(xì)胞的數(shù)據(jù)廣播到細(xì)胞陣列中的某個(gè)目標(biāo)區(qū)域,為了與“主控cpu的廣播數(shù)據(jù)”有所區(qū)別,因此本實(shí)施例中將細(xì)胞間群發(fā)通信時(shí)所涉及的群發(fā)數(shù)據(jù)稱(chēng)為“細(xì)胞間群發(fā)數(shù)據(jù)”。發(fā)起細(xì)胞間群發(fā)通信的細(xì)胞會(huì)明確目標(biāo)區(qū)域,該目標(biāo)區(qū)域內(nèi)所有細(xì)胞的id或者所有細(xì)胞id的范圍將會(huì)標(biāo)明在所述細(xì)胞間群發(fā)數(shù)據(jù)之中,任一細(xì)胞接收到所述細(xì)胞間群發(fā)數(shù)據(jù),便能夠根據(jù)所述細(xì)胞間群發(fā)數(shù)據(jù)中所標(biāo)明的目標(biāo)區(qū)域判斷該細(xì)胞間群發(fā)數(shù)據(jù)是由本細(xì)胞最終接收的,或是需要進(jìn)一步中轉(zhuǎn)給其他相鄰細(xì)胞的,還是兩者皆需執(zhí)行的。
此外,所述針對(duì)每一個(gè)相鄰細(xì)胞更新目標(biāo)區(qū)域,具體便是將更新前的目標(biāo)區(qū)域劃分而成的一個(gè)或一個(gè)以上目標(biāo)區(qū)域(已發(fā)出或已中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)的細(xì)胞被排除在更新后的目標(biāo)區(qū)域之外),其中每個(gè)目標(biāo)區(qū)域會(huì)各自包含一個(gè)所述相鄰細(xì)胞(即與更新前的目標(biāo)區(qū)域內(nèi)發(fā)出或中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)的細(xì)胞相鄰的細(xì)胞),所述每一個(gè)相鄰細(xì)胞在各自所對(duì)應(yīng)的更新后的目標(biāo)區(qū)域內(nèi)繼續(xù)進(jìn)行細(xì)胞間的群發(fā)通信,相應(yīng)地,所述細(xì)胞間群發(fā)數(shù)據(jù)中所標(biāo)明的目標(biāo)區(qū)域同樣也會(huì)得到更新。
本實(shí)施例中,以圖3所示相鄰細(xì)胞之間通信方式,且以發(fā)起群發(fā)通信的起點(diǎn)細(xì)胞所確定的目標(biāo)區(qū)域的形狀為矩形為例進(jìn)行說(shuō)明。需要說(shuō)明的是,本實(shí)施例所給出的細(xì)胞間群發(fā)通信方式是實(shí)際實(shí)施時(shí)較為便捷和高效的方式,本領(lǐng)域技術(shù)人員能夠理解,在其他實(shí)施例中,上述細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞間群發(fā)通信方法同樣能適用于其他相鄰細(xì)胞之間通信方式或是其他形狀的目標(biāo)區(qū)域。
具體實(shí)施時(shí),作為起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞的細(xì)胞所處位置的不同,發(fā)出或中轉(zhuǎn)的方式將有所不同。
當(dāng)作為起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞的第一細(xì)胞位于矩形目標(biāo)區(qū)域的角上時(shí),如果所述矩形目標(biāo)區(qū)域中均含有所述第一細(xì)胞的相鄰兩邊的其中一邊的細(xì)胞數(shù)量為1,則更新后的目標(biāo)區(qū)域?yàn)樗鼍匦文繕?biāo)區(qū)域在所述相鄰兩邊的另一邊排除所述第一細(xì)胞后形成的矩形區(qū)域,否則更新后的目標(biāo)區(qū)域包括兩個(gè)矩形的目標(biāo)區(qū)域,其中一個(gè)目標(biāo)區(qū)域?yàn)樗鱿噜弮蛇呏腥我贿吪懦龅谝患?xì)胞后形成的矩形區(qū)域。需要說(shuō)明的是,本實(shí)施例中的所述第一細(xì)胞是位于矩形目標(biāo)區(qū)域的角上的一類(lèi)細(xì)胞的統(tǒng)稱(chēng)。
可以參閱圖10,假設(shè)k點(diǎn)所在的細(xì)胞為發(fā)起細(xì)胞間群發(fā)通信的起點(diǎn)細(xì)胞,或者為負(fù)責(zé)中轉(zhuǎn)細(xì)胞間群發(fā)數(shù)據(jù)的中轉(zhuǎn)細(xì)胞,矩形目標(biāo)區(qū)域101為k點(diǎn)所在的細(xì)胞發(fā)出或中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)前所確定的目標(biāo)區(qū)域,此時(shí)k點(diǎn)所在的細(xì)胞在矩形目標(biāo)區(qū)域101內(nèi),且位于矩形目標(biāo)區(qū)域101的角上,由于矩形目標(biāo)區(qū)域101在水平方向的這條邊僅包含1個(gè)細(xì)胞,此時(shí)k點(diǎn)所在的細(xì)胞只有一個(gè)鄰居可以選擇為下一站中轉(zhuǎn),那么該細(xì)胞的網(wǎng)絡(luò)控制器將所述細(xì)胞間群發(fā)數(shù)據(jù)發(fā)送到l點(diǎn)所在的細(xì)胞,并對(duì)矩形目標(biāo)區(qū)域101進(jìn)行更新,更新后形成的目標(biāo)區(qū)域?yàn)榫匦文繕?biāo)區(qū)域102,相當(dāng)于 將k點(diǎn)所在的細(xì)胞排除在矩形目標(biāo)區(qū)域101之外;隨著目標(biāo)區(qū)域的不斷更新,如果目標(biāo)區(qū)域中剩下最后一個(gè)細(xì)胞,則停止中轉(zhuǎn)。
假設(shè)m點(diǎn)所在的細(xì)胞也為發(fā)起細(xì)胞間群發(fā)通信的起點(diǎn)細(xì)胞,或者為負(fù)責(zé)中轉(zhuǎn)細(xì)胞間群發(fā)數(shù)據(jù)的中轉(zhuǎn)細(xì)胞,矩形目標(biāo)區(qū)域103為m點(diǎn)所在的細(xì)胞發(fā)出或中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)前所確定的目標(biāo)區(qū)域,此時(shí)m點(diǎn)所在的細(xì)胞在矩形目標(biāo)區(qū)域103內(nèi),且位于矩形目標(biāo)區(qū)域103的角上,由于矩形目標(biāo)區(qū)域103相鄰兩邊均包含1個(gè)以上的細(xì)胞,此時(shí)m點(diǎn)所在的細(xì)胞有兩個(gè)鄰居可以選擇為下一站中轉(zhuǎn),那么該細(xì)胞的網(wǎng)絡(luò)控制器將所述細(xì)胞間群發(fā)數(shù)據(jù)發(fā)送到n點(diǎn)所在的細(xì)胞和o點(diǎn)所在的細(xì)胞,并對(duì)矩形目標(biāo)區(qū)域103進(jìn)行更新,更新后的目標(biāo)區(qū)域包括兩個(gè)矩形的目標(biāo)區(qū)域,其中一個(gè)目標(biāo)區(qū)域?yàn)榫匦文繕?biāo)區(qū)域104,另一個(gè)目標(biāo)區(qū)域?yàn)榫匦文繕?biāo)區(qū)域105,相當(dāng)于將m點(diǎn)所在的細(xì)胞排除在矩形目標(biāo)區(qū)域103之外,矩形目標(biāo)區(qū)域104和矩形目標(biāo)區(qū)域105可以作為獨(dú)立的目標(biāo)區(qū)域繼續(xù)以前述類(lèi)似方法進(jìn)行數(shù)據(jù)中轉(zhuǎn);隨著目標(biāo)區(qū)域的不斷更新,如果目標(biāo)區(qū)域中剩下最后一個(gè)細(xì)胞,則停止中轉(zhuǎn)。
當(dāng)作為起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞的第二細(xì)胞位于矩形目標(biāo)區(qū)域的邊上時(shí),如果所述矩形目標(biāo)區(qū)域中與所述第二細(xì)胞所在邊相鄰的邊的細(xì)胞數(shù)量為1,則更新后的目標(biāo)區(qū)域包括所述第二細(xì)胞所在邊排除所述第二細(xì)胞后形成的兩個(gè)矩形的目標(biāo)區(qū)域,否則更新后的目標(biāo)區(qū)域包括三個(gè)矩形的目標(biāo)區(qū)域,其中兩個(gè)目標(biāo)區(qū)域?yàn)樗龅诙?xì)胞所在邊排除所述第二細(xì)胞后形成的兩個(gè)矩形區(qū)域。需要說(shuō)明的是,本實(shí)施例中的所述第二細(xì)胞是位于矩形目標(biāo)區(qū)域的邊上的一類(lèi)細(xì)胞的統(tǒng)稱(chēng)。
可以參閱圖11,假設(shè)p點(diǎn)所在的細(xì)胞為發(fā)起細(xì)胞間群發(fā)通信的起點(diǎn)細(xì)胞,或者為負(fù)責(zé)中轉(zhuǎn)細(xì)胞間群發(fā)數(shù)據(jù)的中轉(zhuǎn)細(xì)胞,矩形目標(biāo)區(qū)域111為p點(diǎn)所在的細(xì)胞發(fā)出或中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)前所確定的目標(biāo)區(qū)域,此時(shí)p點(diǎn)所在的細(xì)胞在矩形目標(biāo)區(qū)域111內(nèi),且位于矩形目標(biāo)區(qū)域111的某條邊上,由于矩形目標(biāo)區(qū)域111中與p點(diǎn)所在的細(xì)胞所在邊相鄰的邊的細(xì)胞數(shù)量大于1,則此時(shí)p點(diǎn)所在的細(xì)胞有三個(gè)鄰居可以選擇為下一站中轉(zhuǎn),該細(xì)胞的網(wǎng)絡(luò)控制器將所述細(xì)胞間群發(fā)數(shù)據(jù)分別發(fā)送到q點(diǎn)所在的細(xì)胞、r點(diǎn)所在的細(xì)胞和s點(diǎn)所在的細(xì)胞,并對(duì)矩形目標(biāo)區(qū)域111進(jìn)行更新,更新后的目標(biāo)區(qū)域包括三個(gè)矩形的目標(biāo)區(qū)域,分別為矩形目標(biāo)區(qū)域112、矩形目標(biāo)區(qū)域113和矩形目標(biāo)區(qū)域114,相當(dāng)于將p點(diǎn)所在的細(xì)胞排除在矩形目標(biāo)區(qū)域111之外,矩形目標(biāo)區(qū)域112和矩形目標(biāo)區(qū)域113這兩個(gè)目標(biāo)區(qū)域相當(dāng)于是p點(diǎn)所在的細(xì)胞所在邊排除p點(diǎn)所在的細(xì)胞后形成的兩個(gè)矩形區(qū)域,矩形目標(biāo)區(qū)域112、矩形目標(biāo)區(qū)域113和矩形目標(biāo)區(qū)域114可以作為獨(dú)立的目標(biāo)區(qū)域繼續(xù)以前述類(lèi)似方法進(jìn)行數(shù)據(jù)中轉(zhuǎn);隨著目標(biāo)區(qū)域的不斷更新,如果目標(biāo)區(qū)域中剩下最后一個(gè)細(xì)胞,則停止中轉(zhuǎn)。
可以理解的是,若目標(biāo)區(qū)域(圖11中未標(biāo)示)中與p點(diǎn)所在的細(xì)胞所在邊相鄰的邊的細(xì)胞數(shù)量為1,則此時(shí)p點(diǎn)所在的細(xì)胞有兩個(gè)鄰居可以選擇為下一站中轉(zhuǎn),該細(xì)胞的網(wǎng)絡(luò)控制器將所述細(xì)胞間群發(fā)數(shù)據(jù)分別發(fā)送到q點(diǎn)所在的細(xì)胞和r點(diǎn)所在的細(xì)胞,并對(duì)目標(biāo)區(qū)域進(jìn)行更新,更新后的目標(biāo)區(qū)域包括兩個(gè)矩形的目標(biāo)區(qū)域,具體為矩形目標(biāo)區(qū)域112和矩形目標(biāo)區(qū)域113。
當(dāng)作為起點(diǎn)細(xì)胞的第三細(xì)胞位于矩形目標(biāo)區(qū)域的內(nèi)部時(shí),更新后的目標(biāo)區(qū)域包括四個(gè)矩形的目標(biāo)區(qū)域,其中兩個(gè)目標(biāo)區(qū)域?yàn)樗龅谌?xì)胞所在行或列排除所述第三細(xì)胞后形成的兩個(gè)矩形區(qū)域,另外兩個(gè)目標(biāo)區(qū)域?yàn)楦虑暗乃鼍匦文繕?biāo)區(qū)域被 所述第三細(xì)胞所在行或列分割而形成的兩個(gè)矩形區(qū)域。需要說(shuō)明的是,本實(shí)施例中的所述第三細(xì)胞是位于矩形目標(biāo)區(qū)域的內(nèi)部的一類(lèi)細(xì)胞的統(tǒng)稱(chēng),所述矩形目標(biāo)區(qū)域的內(nèi)部指的是除“角”和“邊”以外的區(qū)域。
可以參閱圖12,假設(shè)t點(diǎn)所在的細(xì)胞為發(fā)起細(xì)胞間群發(fā)通信的起點(diǎn)細(xì)胞(本實(shí)施例中t點(diǎn)所在的細(xì)胞不可能為負(fù)責(zé)中轉(zhuǎn)細(xì)胞間群發(fā)數(shù)據(jù)的中轉(zhuǎn)細(xì)胞),矩形目標(biāo)區(qū)域121為t點(diǎn)所在的細(xì)胞發(fā)出所述細(xì)胞間群發(fā)數(shù)據(jù)前所確定的目標(biāo)區(qū)域,此時(shí)t點(diǎn)所在的細(xì)胞位于矩形目標(biāo)區(qū)域121的內(nèi)部,t點(diǎn)所在的細(xì)胞有四個(gè)鄰居可以選擇為下一站中轉(zhuǎn),該細(xì)胞的網(wǎng)絡(luò)控制器將所述細(xì)胞間群發(fā)數(shù)據(jù)分別發(fā)送到u點(diǎn)所在的細(xì)胞、v點(diǎn)所在的細(xì)胞、w點(diǎn)所在的細(xì)胞和x點(diǎn)所在的細(xì)胞,并對(duì)矩形目標(biāo)區(qū)域121進(jìn)行更新,更新后的目標(biāo)區(qū)域包括四個(gè)矩形的目標(biāo)區(qū)域,分別為矩形目標(biāo)區(qū)域122、矩形目標(biāo)區(qū)域123、矩形目標(biāo)區(qū)域124和矩形目標(biāo)區(qū)域125,相當(dāng)于將t點(diǎn)所在的細(xì)胞排除在矩形目標(biāo)區(qū)域121之外,矩形目標(biāo)區(qū)域122和矩形目標(biāo)區(qū)域123這兩個(gè)目標(biāo)區(qū)域相當(dāng)于是t點(diǎn)所在的細(xì)胞所在行排除t點(diǎn)所在的細(xì)胞后形成的兩個(gè)矩形區(qū)域,矩形目標(biāo)區(qū)域124和矩形目標(biāo)區(qū)域125這兩個(gè)目標(biāo)區(qū)域相當(dāng)于是矩形目標(biāo)區(qū)域121被t點(diǎn)所在的細(xì)胞所在行分割而形成的兩個(gè)矩形區(qū)域,矩形目標(biāo)區(qū)域122、矩形目標(biāo)區(qū)域123、矩形目標(biāo)區(qū)域124和矩形目標(biāo)區(qū)域125可以作為獨(dú)立的目標(biāo)區(qū)域繼續(xù)以前述類(lèi)似方法進(jìn)行數(shù)據(jù)中轉(zhuǎn);隨著目標(biāo)區(qū)域的不斷更新,如果目標(biāo)區(qū)域中剩下最后一個(gè)細(xì)胞,則停止中轉(zhuǎn)。
本實(shí)施例中,當(dāng)作為起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞的第四細(xì)胞位于目標(biāo)區(qū)域之外時(shí),如果所述第四細(xì)胞與目標(biāo)區(qū)域內(nèi)任一細(xì)胞之間能形成一條直線的通信路徑,則所述第四細(xì)胞發(fā)出或中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)的發(fā)送方向?yàn)橛伤龅谒募?xì)胞沿所述直線向目標(biāo)區(qū)域的方向,否則所述發(fā)送方向?yàn)橛伤龅谒募?xì)胞向待選相鄰細(xì)胞的方向,所述待選相鄰細(xì)胞為與所述第四細(xì)胞相鄰的細(xì)胞之中靠近目標(biāo)區(qū)域的細(xì)胞。需要說(shuō)明的是,本實(shí)施例中的所述第四細(xì)胞是位于矩形目標(biāo)區(qū)域之外的一類(lèi)細(xì)胞的統(tǒng)稱(chēng)。
可以參閱圖13,假設(shè)y1點(diǎn)所在的細(xì)胞為發(fā)起細(xì)胞間群發(fā)通信的起點(diǎn)細(xì)胞,矩形目標(biāo)區(qū)域131為y1點(diǎn)所在的細(xì)胞發(fā)出所述細(xì)胞間群發(fā)數(shù)據(jù)前所確定的目標(biāo)區(qū)域,此時(shí)y1點(diǎn)所在的細(xì)胞在矩形目標(biāo)區(qū)域131之外,由于該細(xì)胞在矩形目標(biāo)區(qū)域相對(duì)兩個(gè)邊的延長(zhǎng)線之間,與矩形目標(biāo)區(qū)域內(nèi)y3點(diǎn)所在細(xì)胞之間能夠形成一條直線的通信路徑,此時(shí)只有一個(gè)鄰居可以作為下一站的中轉(zhuǎn),y1點(diǎn)所在的細(xì)胞的網(wǎng)絡(luò)控制器把所述細(xì)胞間群發(fā)數(shù)據(jù)發(fā)送至這個(gè)鄰居,即y2點(diǎn)所在的細(xì)胞,y2點(diǎn)所在的細(xì)胞作為負(fù)責(zé)中轉(zhuǎn)所述細(xì)胞間群發(fā)數(shù)據(jù)的中轉(zhuǎn)細(xì)胞。y2點(diǎn)所在的細(xì)胞將沿著圖13中虛線箭頭所示的方向中轉(zhuǎn)數(shù)據(jù),直至傳送到y(tǒng)3點(diǎn)所在細(xì)胞。y3點(diǎn)所在細(xì)胞位于矩形目標(biāo)區(qū)域131的邊上,可以按照前述相關(guān)方法繼續(xù)完成矩形目標(biāo)區(qū)域131內(nèi)的中轉(zhuǎn)過(guò)程。
繼續(xù)參閱圖13,假設(shè)z1點(diǎn)所在的細(xì)胞為發(fā)起細(xì)胞間群發(fā)通信的起點(diǎn)細(xì)胞,矩形目標(biāo)區(qū)域131為z1點(diǎn)所在的細(xì)胞發(fā)出所述細(xì)胞間群發(fā)數(shù)據(jù)前所確定的目標(biāo)區(qū)域,此時(shí)z1點(diǎn)所在的細(xì)胞在矩形目標(biāo)區(qū)域131之外,由于該細(xì)胞并不在矩形目標(biāo)區(qū)域相對(duì)兩個(gè)邊的延長(zhǎng)線之間,與矩形目標(biāo)區(qū)域內(nèi)任一細(xì)胞之間都難以形成一條直線的通信路徑,此時(shí)有兩個(gè)鄰居可以作為下一站的中轉(zhuǎn),即z2點(diǎn)所在的細(xì)胞和z3點(diǎn)所在的細(xì)胞,這兩個(gè)細(xì)胞為z1點(diǎn)所在的細(xì)胞的待選相鄰細(xì)胞,因?yàn)檫@兩個(gè)細(xì)胞為z1點(diǎn)所在的細(xì)胞相鄰的細(xì)胞之中更靠近矩形目標(biāo)區(qū)域131的細(xì)胞。在實(shí)際實(shí)施時(shí),可 以任意選擇一個(gè)或更加實(shí)際通信情況選擇一個(gè)負(fù)擔(dān)比較輕的細(xì)胞作為下一站中轉(zhuǎn),所述負(fù)擔(dān)比較輕的細(xì)胞具體指的是輸出數(shù)據(jù)的通信任務(wù)更少的細(xì)胞。從z1點(diǎn)所在的細(xì)胞出發(fā),通過(guò)兩條可行的中轉(zhuǎn)通信路徑,直至將所述細(xì)胞間群發(fā)數(shù)據(jù)中轉(zhuǎn)至z4點(diǎn)所在細(xì)胞。z4點(diǎn)所在細(xì)胞位于矩形目標(biāo)區(qū)域131的角上,可以按照前述相關(guān)方法繼續(xù)完成矩形目標(biāo)區(qū)域131內(nèi)的中轉(zhuǎn)過(guò)程。
本實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞間群發(fā)通信方法,通過(guò)將細(xì)胞間的點(diǎn)對(duì)點(diǎn)通信功能擴(kuò)展到區(qū)域群發(fā),可以支持更高的平行度,獲得高得多的總帶寬,從而進(jìn)一步提升計(jì)算系統(tǒng)的整體性能。
本實(shí)施例中,通過(guò)將一個(gè)以上兼具獨(dú)立計(jì)算和存儲(chǔ)功能的單元(“細(xì)胞”)組成二維或三維陣列(“細(xì)胞陣列”),其中每一個(gè)細(xì)胞包括微處理器和非易失隨機(jī)存儲(chǔ)器,所述非易失隨機(jī)存儲(chǔ)器既能支持所述微處理器進(jìn)行計(jì)算時(shí)所涉及數(shù)據(jù)的隨機(jī)存取,也能支持存儲(chǔ)軟件的指令代碼和需要永久保存的數(shù)據(jù),使內(nèi)存、存儲(chǔ)、計(jì)算三個(gè)功能集成到每個(gè)細(xì)胞中,并使各細(xì)胞之間形成密集的通信網(wǎng)絡(luò),一方面,內(nèi)控cpu能通過(guò)細(xì)胞陣列總線與細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行通信,另一方面,細(xì)胞陣列中的相鄰細(xì)胞之間也能相互發(fā)送數(shù)據(jù),由此能通過(guò)數(shù)據(jù)群發(fā)和內(nèi)部網(wǎng)絡(luò),克服現(xiàn)有計(jì)算機(jī)架構(gòu)因cpu與內(nèi)存、存儲(chǔ)之間存在的通信瓶頸。
本領(lǐng)域技術(shù)人員知曉,cpu依托于一代又一代演進(jìn)的半導(dǎo)體工藝,變得越來(lái)越復(fù)雜。這產(chǎn)生了一個(gè)問(wèn)題,隨著半導(dǎo)體芯片越來(lái)越復(fù)雜,先進(jìn)工藝上一個(gè)芯片可以有超過(guò)10億個(gè)mos管元器件。然而,10億個(gè)元器件,如果有一個(gè)在芯片制造過(guò)程中損壞,一般來(lái)說(shuō),整個(gè)芯片就會(huì)成為廢品,而要把元器件的損壞率控制在遠(yuǎn)不到10億分之一,對(duì)半導(dǎo)體工藝的挑戰(zhàn)非常大,而良品率低,將會(huì)大大提高芯片的成本。
本發(fā)明實(shí)施例提供的如圖1所示細(xì)胞陣列計(jì)算系統(tǒng)的架構(gòu),大量能夠獨(dú)立運(yùn)算的細(xì)胞集成在一個(gè)芯片上,那么在生產(chǎn)制造過(guò)程中,一小部分細(xì)胞出現(xiàn)問(wèn)題,就有可能使整個(gè)細(xì)胞陣列計(jì)算系統(tǒng)不能正常運(yùn)行,導(dǎo)致集成細(xì)胞陣列計(jì)算系統(tǒng)的芯片報(bào)廢,由此使產(chǎn)品的良率下降,芯片的成本上升。
為此,本發(fā)明實(shí)施例還提供一種在所述細(xì)胞陣列中增加冗余設(shè)計(jì)的細(xì)胞陣列計(jì)算系統(tǒng),通過(guò)在細(xì)胞陣列中預(yù)留一部分冗余細(xì)胞作為備用,當(dāng)細(xì)胞陣列中的任意一個(gè)其他細(xì)胞被確定為已損壞細(xì)胞時(shí),將備用的冗余細(xì)胞作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞,如此能夠在一小部分細(xì)胞出現(xiàn)生產(chǎn)制造問(wèn)題的情況下不至于影響整個(gè)系統(tǒng)的工作,從而提高產(chǎn)品良率,降低生產(chǎn)制造成本。
如圖14所示,在如圖1所示的細(xì)胞陣列計(jì)算系統(tǒng)的基礎(chǔ)上,所述細(xì)胞陣列中還預(yù)留了一個(gè)以上冗余細(xì)胞作為備用細(xì)胞,所述備用細(xì)胞用于在所述細(xì)胞陣列中的任意一個(gè)其他細(xì)胞被確定為已損壞細(xì)胞時(shí)作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞;所述細(xì)胞陣列以及所述細(xì)胞陣列總線集成在一個(gè)芯片上。
需要指出的是,在本實(shí)施例中,所述細(xì)胞陣列中的相鄰細(xì)胞之間有通信接口,能互相收發(fā)數(shù)據(jù),而在其他實(shí)施例中,為了簡(jiǎn)化設(shè)計(jì),也可以使細(xì)胞陣列計(jì)算系統(tǒng)中的細(xì)胞間不具備相互通信的功能,而僅僅保留主控cpu與細(xì)胞陣列中各個(gè)細(xì)胞之間的通信功能。
在實(shí)際實(shí)施時(shí),可以在所述細(xì)胞陣列中預(yù)留一部分冗余細(xì)胞作為備用,當(dāng)細(xì)胞陣列為二維陣列時(shí),例如可以預(yù)留細(xì)胞陣列中的一行或一列細(xì)胞作為備用細(xì)胞。備用細(xì)胞只是在細(xì)胞陣列中的其他細(xì)胞發(fā)生損壞的情況下作為相應(yīng)的替換細(xì)胞,未成 為所述替換細(xì)胞的備用細(xì)胞則始終處于未開(kāi)啟的狀態(tài),不會(huì)參與細(xì)胞陣列計(jì)算系統(tǒng)的運(yùn)行,而只有成為替換細(xì)胞的備用細(xì)胞才會(huì)參與細(xì)胞陣列計(jì)算系統(tǒng)的運(yùn)行。
在至少集成有所述細(xì)胞陣列以及所述細(xì)胞陣列總線的芯片完成生產(chǎn)進(jìn)行產(chǎn)線測(cè)試時(shí),將會(huì)對(duì)細(xì)胞陣列中的每個(gè)細(xì)胞進(jìn)行測(cè)試。具體實(shí)施時(shí),可以通過(guò)廣播一個(gè)測(cè)試程序的方法讓各個(gè)細(xì)胞進(jìn)行自測(cè),如此能夠確定哪些細(xì)胞已損壞,如果某一個(gè)細(xì)胞不能通過(guò)測(cè)試,則宣布其為死細(xì)胞(已損壞細(xì)胞),在備用細(xì)胞中挑選一個(gè)正常細(xì)胞(未損壞細(xì)胞)作為替換,并把所替換細(xì)胞的地址(即:被替換的已損壞細(xì)胞在細(xì)胞陣列中的位置)寫(xiě)在替換細(xì)胞的相應(yīng)的非易失寄存器內(nèi)。
因此,若所述備用細(xì)胞以外的某一個(gè)細(xì)胞不能通過(guò)測(cè)試,則確定該細(xì)胞為已損壞細(xì)胞,在所述備用細(xì)胞中挑選一個(gè)正常細(xì)胞作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞,并將被替換的已損壞細(xì)胞在所述細(xì)胞陣列中的位置存儲(chǔ)于所述替換細(xì)胞內(nèi)。
在本實(shí)施例中,細(xì)胞陣列中有些細(xì)胞一旦被確定為已損壞細(xì)胞,那么細(xì)胞陣列計(jì)算系統(tǒng)在工作時(shí),這些已損壞細(xì)胞始終處在關(guān)閉狀態(tài)(或稱(chēng)為未開(kāi)啟狀態(tài)),由已損壞細(xì)胞相應(yīng)的替換細(xì)胞負(fù)責(zé)收聽(tīng)細(xì)胞陣列總線上的指令,遇到涉及所替換細(xì)胞的讀、寫(xiě)和廣播指令,執(zhí)行相關(guān)的操作。
如前所述,細(xì)胞陣列中細(xì)胞的讀寫(xiě)和廣播協(xié)議,按圖5所示實(shí)施。每一個(gè)細(xì)胞陣列內(nèi)部有一個(gè)總線控制器,它用來(lái)收聽(tīng)細(xì)胞陣列總線上的指令,并執(zhí)行相關(guān)本細(xì)胞的指令。而在本實(shí)施例中,所述備用細(xì)胞的總線控制器則用于識(shí)別所述主控cpu與本細(xì)胞所替換的已損壞細(xì)胞之間進(jìn)行的通信。具體地,已損壞細(xì)胞相應(yīng)替換細(xì)胞的總線控制器在收聽(tīng)細(xì)胞陣列總線上的指令時(shí),將與本細(xì)胞所替換細(xì)胞相關(guān)的指令識(shí)別為相關(guān)本細(xì)胞的指令(相當(dāng)于已損壞細(xì)胞相應(yīng)替換細(xì)胞的總線控制器在收聽(tīng)細(xì)胞陣列總線上的指令時(shí)假設(shè)本細(xì)胞具有被替換細(xì)胞的id),然后連接所述微處理器以傳遞所述主控cpu發(fā)送的指令或數(shù)據(jù)、狀態(tài)讀取,或者通過(guò)所述細(xì)胞內(nèi)部總線連接所述非易失隨機(jī)存儲(chǔ)器進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。
冗余細(xì)胞設(shè)計(jì)要求在所述總線控制器內(nèi)添加一個(gè)非易失存儲(chǔ)器,以便在產(chǎn)線測(cè)試時(shí)給備用細(xì)胞寫(xiě)入所替換細(xì)胞的地址(x和y坐標(biāo))。因此,在本實(shí)施例中,所述備用細(xì)胞的總線控制器內(nèi)設(shè)有第一非易失性存儲(chǔ)器,用于存儲(chǔ)本細(xì)胞所替換的已損壞細(xì)胞在所述細(xì)胞陣列中的位置。所述第一非易失性存儲(chǔ)器具體可以為一次性可編程的存儲(chǔ)器,例如可以使用目前成熟的fuse技術(shù)(只可以寫(xiě)一次的非易失存儲(chǔ)器)。
當(dāng)細(xì)胞陣列總線上有內(nèi)存讀寫(xiě)指令時(shí),從地址可以推導(dǎo)出相應(yīng)細(xì)胞的地址(細(xì)胞的id),總線控制器比較所收聽(tīng)到的細(xì)胞地址與本細(xì)胞所替換的細(xì)胞地址,如果相同,執(zhí)行相關(guān)的讀寫(xiě)指令;當(dāng)細(xì)胞陣列總線上有廣播指令時(shí),總線控制器檢查所替換細(xì)胞是否在廣播區(qū)域內(nèi),如果在,則執(zhí)行相關(guān)的讀入指令。
如前所述,所述細(xì)胞陣列中的任意兩個(gè)細(xì)胞之間能進(jìn)行通信,參與細(xì)胞間通信的細(xì)胞包含起點(diǎn)細(xì)胞、終點(diǎn)細(xì)胞和中轉(zhuǎn)細(xì)胞;此外,所述細(xì)胞陣列中的任一細(xì)胞還能作為所述起點(diǎn)細(xì)胞向目標(biāo)區(qū)域內(nèi)的所有細(xì)胞進(jìn)行群發(fā)通信。
本實(shí)施例中,還可以在死細(xì)胞周?chē)南噜徏?xì)胞(當(dāng)采用如圖3所示的相鄰細(xì)胞之間通信方式時(shí),最多為四個(gè))中,用一個(gè)非易失存儲(chǔ)器標(biāo)定該細(xì)胞為死細(xì)胞,并記錄替換細(xì)胞的地址。這個(gè)信息將被用于指導(dǎo)細(xì)胞間通信網(wǎng)絡(luò)的傳輸協(xié)議。
細(xì)胞陣列內(nèi)部網(wǎng)絡(luò)的通信按圖7所示實(shí)施。如前所述,所述細(xì)胞陣列中的細(xì)胞還包括與所述微處理器相連的網(wǎng)絡(luò)控制器,所述網(wǎng)絡(luò)控制器用于在所述群發(fā)通信時(shí) 或任意兩個(gè)細(xì)胞進(jìn)行細(xì)胞間通信時(shí),對(duì)發(fā)出的數(shù)據(jù)、中轉(zhuǎn)的數(shù)據(jù)或者最終接收的數(shù)據(jù)進(jìn)行收發(fā)和路由控制,還用于向所述微處理器發(fā)送中斷信號(hào)。實(shí)際實(shí)施例時(shí),每個(gè)細(xì)胞內(nèi)部的網(wǎng)絡(luò)控制器負(fù)責(zé)讀寫(xiě)與四個(gè)相鄰細(xì)胞的通信的fifo,并與該細(xì)胞的mpu通信。
冗余細(xì)胞設(shè)計(jì)要求在所述網(wǎng)絡(luò)控制器內(nèi)部也增加一個(gè)非易失存儲(chǔ)器,用于標(biāo)定相鄰死細(xì)胞的替換細(xì)胞的地址。因此,在本實(shí)施例中,所述網(wǎng)絡(luò)控制器內(nèi)設(shè)有第二非易失性存儲(chǔ)器,與所述已損壞細(xì)胞相鄰的所有正常細(xì)胞內(nèi)的第二非易失性存儲(chǔ)器用于標(biāo)定與本細(xì)胞相鄰的已損壞細(xì)胞,以及存儲(chǔ)所述已損壞細(xì)胞相應(yīng)的替換細(xì)胞在所述細(xì)胞陣列中的位置;在傳遞數(shù)據(jù)時(shí),已損壞細(xì)胞的相鄰細(xì)胞的網(wǎng)絡(luò)控制器在進(jìn)行路由控制時(shí)會(huì)繞開(kāi)該已損壞細(xì)胞,若該已損壞細(xì)胞是終點(diǎn)細(xì)胞(針對(duì)任意兩個(gè)細(xì)胞進(jìn)行的細(xì)胞間通信)或終點(diǎn)細(xì)胞之一(針對(duì)所述群發(fā)通信),則控制將數(shù)據(jù)轉(zhuǎn)發(fā)到該已損壞細(xì)胞相應(yīng)的替換細(xì)胞。類(lèi)似于所述第一非易失性存儲(chǔ)器,所述第二非易失性存儲(chǔ)器同樣可以為一次性可編程的存儲(chǔ)器,例如也可以用fuse技術(shù)實(shí)現(xiàn)。
實(shí)際實(shí)施時(shí),當(dāng)執(zhí)行點(diǎn)對(duì)點(diǎn)的傳輸協(xié)議(即任意兩個(gè)細(xì)胞間通信),可能路過(guò)死細(xì)胞時(shí),網(wǎng)絡(luò)控制器選擇繞開(kāi)死細(xì)胞的路徑。
當(dāng)執(zhí)行點(diǎn)對(duì)點(diǎn)的傳輸協(xié)議,終點(diǎn)是死細(xì)胞時(shí),則改向替換細(xì)胞轉(zhuǎn)發(fā)相關(guān)的消息。具體可以通過(guò)網(wǎng)絡(luò)控制器產(chǎn)生中斷,由mpu通過(guò)軟件來(lái)實(shí)施該轉(zhuǎn)發(fā)操作。
當(dāng)執(zhí)行細(xì)胞的片區(qū)廣播(即細(xì)胞的群發(fā)通信),終點(diǎn)涵蓋死細(xì)胞時(shí),改向替換細(xì)胞轉(zhuǎn)發(fā)相關(guān)的消息,并重新規(guī)劃后續(xù)的片區(qū)廣播傳輸。具體可以通過(guò)網(wǎng)絡(luò)控制器產(chǎn)生中斷,由mpu通過(guò)軟件來(lái)實(shí)施該轉(zhuǎn)發(fā)操作。
基于上述預(yù)留冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng),本發(fā)明實(shí)施例還提供一種上述細(xì)胞陣列計(jì)算系統(tǒng)的測(cè)試方法,包括:廣播一個(gè)測(cè)試程序使所述細(xì)胞陣列中的每一個(gè)細(xì)胞進(jìn)行自測(cè);若所述備用細(xì)胞以外的某一個(gè)細(xì)胞不能通過(guò)測(cè)試,則確定該細(xì)胞為已損壞細(xì)胞,在所述備用細(xì)胞中挑選一個(gè)正常細(xì)胞作為該已損壞細(xì)胞相應(yīng)的替換細(xì)胞,并將被替換的已損壞細(xì)胞在所述細(xì)胞陣列中的位置存儲(chǔ)于所述替換細(xì)胞內(nèi)。
本實(shí)施例中,在確定所述備用細(xì)胞以外的某一細(xì)胞為已損壞細(xì)胞后,還可以在該已損壞細(xì)胞相鄰的所有正常細(xì)胞內(nèi)標(biāo)定該已損壞細(xì)胞,并存儲(chǔ)將該已損壞細(xì)胞相應(yīng)的替換細(xì)胞在所述細(xì)胞陣列中的位置。
基于上述預(yù)留冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng),本發(fā)明實(shí)施例還提供一種上述細(xì)胞陣列計(jì)算系統(tǒng)中的通信方法,包括:所述替換細(xì)胞收聽(tīng)所述細(xì)胞陣列總線上的內(nèi)存讀寫(xiě)指令,若判斷出由所述內(nèi)存讀寫(xiě)指令所確定的目標(biāo)細(xì)胞的id與本細(xì)胞所替換的已損壞細(xì)胞的id相同,則執(zhí)行所述內(nèi)存讀寫(xiě)指令;所述替換細(xì)胞還收聽(tīng)所述細(xì)胞陣列總線上的廣播指令,若判斷出本細(xì)胞所替換的已損壞細(xì)胞在由所述廣播指令所確定的目標(biāo)區(qū)域中,則執(zhí)行相關(guān)的讀入指令。
此外,本發(fā)明實(shí)施例還提供一種上述預(yù)留冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞之間的通信方法,除了包括如圖1所示細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞之間的通信方法的全部?jī)?nèi)容之外,還包括:當(dāng)與所述起點(diǎn)細(xì)胞或中轉(zhuǎn)細(xì)胞相鄰的細(xì)胞為已損壞細(xì)胞時(shí),則選定繞開(kāi)該已損壞細(xì)胞的發(fā)送方向;當(dāng)所述終點(diǎn)細(xì)胞為已損壞細(xì)胞時(shí),則改向該已損壞細(xì)胞相應(yīng)的替換細(xì)胞轉(zhuǎn)發(fā)相關(guān)的數(shù)據(jù)。
此外,本發(fā)明實(shí)施例還提供一種上述預(yù)留冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞間群發(fā)通信方法,除了包括如圖1所示細(xì)胞陣列計(jì)算系統(tǒng)中細(xì)胞間群發(fā)通信方法的 全部?jī)?nèi)容之外,還包括:若所述群發(fā)通信中的終點(diǎn)細(xì)胞為已損壞細(xì)胞,則改向該已損壞細(xì)胞相應(yīng)的替換細(xì)胞轉(zhuǎn)發(fā)相關(guān)的數(shù)據(jù),并重新規(guī)劃后續(xù)更新后的目標(biāo)區(qū)域。實(shí)際實(shí)施時(shí),還會(huì)將已損壞細(xì)胞排除在更新后的目標(biāo)區(qū)域之外。
下面對(duì)細(xì)胞陣列冗余設(shè)計(jì)的優(yōu)勢(shì)進(jìn)行總結(jié):
傳統(tǒng)的計(jì)算架構(gòu),采用巨型的cpu內(nèi)核,每一個(gè)內(nèi)核中有大量(千萬(wàn)甚至上億個(gè))的元器件,在生產(chǎn)制造時(shí)只要有一個(gè)元器件出了問(wèn)題,整個(gè)內(nèi)核甚至整個(gè)芯片就是廢品。當(dāng)集成電路工藝進(jìn)一步演進(jìn),每個(gè)器件的尺寸只有20~30納米甚至更小時(shí),產(chǎn)品的良率很難控制,造成成本飆升。
而本發(fā)明實(shí)施例提供的細(xì)胞陣列計(jì)算系統(tǒng)的架構(gòu),采用微型內(nèi)核,大量能夠獨(dú)立運(yùn)算的細(xì)胞集成在一個(gè)芯片上,配合冗余設(shè)計(jì),一小部分細(xì)胞的出現(xiàn)的生產(chǎn)制造問(wèn)題不影響整個(gè)芯片的工作,解決了這一困境。
本發(fā)明實(shí)施例提供的預(yù)留冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng)及其測(cè)試方法與通信方法的具體實(shí)施還可以參考如圖1所示細(xì)胞陣列計(jì)算系統(tǒng)以及其中細(xì)胞之間的通信方法、細(xì)胞間群發(fā)通信方法的實(shí)施相關(guān)內(nèi)容。
需要指出的是,本發(fā)明實(shí)施例以所述細(xì)胞陣列具體為二維細(xì)胞陣列為例對(duì)預(yù)留有冗余細(xì)胞的細(xì)胞陣列計(jì)算系統(tǒng)進(jìn)行說(shuō)明的,在其他實(shí)施例中,所述細(xì)胞陣列也可以是三維細(xì)胞陣列,所述三維細(xì)胞陣列是由一個(gè)以上二維細(xì)胞陣列疊合而成,此時(shí)細(xì)胞陣列中“相鄰細(xì)胞”的概念不僅僅局限于二維平面,而是擴(kuò)展到三維空間。若是二維細(xì)胞陣列中采用如圖3所示的相鄰細(xì)胞之間的通信方式,則在空間直角坐標(biāo)系中,任一細(xì)胞在x軸正反方向、y軸正反方向和z軸正反方向這六個(gè)方向均具有相鄰的細(xì)胞。在實(shí)際實(shí)施時(shí),當(dāng)多片2d細(xì)胞陣列芯片可以疊合在一起組成3d芯片時(shí),通過(guò)過(guò)硅通孔(tsv,throughsiliconvias)在相鄰的細(xì)胞間建立縱向聯(lián)系,即分別位于相鄰兩個(gè)二維細(xì)胞陣列的相鄰細(xì)胞之間通過(guò)tsv建立通信聯(lián)系。3d的細(xì)胞陣列芯片,在保持低功耗優(yōu)勢(shì)的同時(shí),加大了細(xì)胞陣列的規(guī)模,拓展了內(nèi)部通信的帶寬。
雖然本發(fā)明披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與修改,因此本發(fā)明的保護(hù)范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準(zhǔn)。