細胞陣列計算系統的制作方法
【技術領域】
[0001]本發明涉及計算機及計算機應用技術領域,特別涉及一種細胞陣列計算系統。
【背景技術】
[0002]通常來說,一臺計算機主要包括三個核心部分:中央處理器(CPU,CentralProcessing Unit)、內存和存儲。
[0003]經過一些世界頂級公司的不懈努力,CPU已經演變成極度復雜的半導體芯片。頂級的CPU內核內部的MOS管數目可以超過一億個。目前的產業趨勢是受制于功耗,CPU的運行頻率已經很難再提高。已經極度復雜的現代CPU,運行效率同樣很難再提高。新的CPU產品,越來越多地朝多核方向演進。
[0004]在內存方面,目前居于統治地位的是動態隨機存取存儲器(DRAM,Dynamic RandomAccess Memory)技術。DRAM可以快速隨機讀寫,但卻不能在斷電的情況下保持內容。實際上,即使在通電的情況下,它也會由于內部用于儲存信息的電容器的漏電而丟失信息,必須周期性地自刷新。
[0005]在存儲方面,NAND閃存技術正在逐步取代傳統硬盤。閃存所依賴的浮置柵極(floating gate)技術,雖然能夠在斷電的情況下保持內容,但寫入(將‘I’改寫為‘0’ )的速度很慢,擦除(將‘0’改寫為‘I’)的速度更慢,無法像DRAM那樣用于對計算的直接支持。它被制作成塊設備(block device),必須整塊一起擦除,一個塊(block)包含很多頁(page),擦除后每頁可以進行寫入操作。NAND的另外一個問題是具有有限的壽命。
[0006]DRAM和NAND閃存,以及CPU的邏輯電路,雖然都是基于CMOS半導體工藝生產的,但這三者的工藝彼此并不兼容。于是,計算機的三個核心部分無法在一個芯片上共存,這深刻地影響了現代計算機的架構。
[0007]現有技術中的計算機架構如圖1所示,圖1中示出多個CPU內核,分別為CPU1、CPU2、CPU3、……、CPUn,每個CPU內核一般具有相應的一級緩存(LlCache),根據需要還可以進一步為每個CPU內核配備相應的二級緩存(L2Cache)、三級緩存(L3Cache)。DRAM與各個CPU內核之間通過雙倍速率(DDR,Double Data Rate)接口進行通信,硬盤(HD,HardDisk)或固態硬盤(SSD,Solid State Drives)與各個CPU內核之間則通過外圍設備接口進行通信。
[0008]—方面,CPU在向多核的方向發展,另一方面內存和存儲都在另外的芯片里。多核CPU吞吐信息量成比例增加,與內存、存儲的通信就越來越成為系統性能的瓶頸。為了緩解通信瓶頸,CPU不得不采用越來越大的多級緩存。緩存是把內存中的內容復制,通常是用成本比DRAM高得多但速度更快的靜態隨機存取存儲器(SRAM,Static Random AccessMemory)設計的。這樣的架構,費效比非常的差。半導體芯片的成本由其硅片的面積決定,而傳統計算機架構帶來的性能提升與其硅片面積的增加遠遠不成比例。
【發明內容】
[0009]本發明要解決的問題是現有技術中的計算機架構因CPU與內存、存儲之間存在的通信瓶頸而影響計算機整體性能的提升,并使費效比較差。
[0010]為解決上述問題,本發明技術方案提供一種細胞陣列計算系統,包括:主控CPU、細胞陣列、細胞陣列總線和至少一個內存單元陣列;所述細胞陣列是由一個以上兼具計算和存儲功能的細胞組成的二維陣列,其中每一個細胞包括微處理器(MPU,MicroProcessing Unit)和非易失(NV,Not Volatile)隨機存儲器;所述非易失隨機存儲器用于所述微處理器計算時所涉及數據的隨機存取,還用于存儲軟件的指令代碼和需要永久保存的數據;所述內存單元陣列是由一個以上內存單元組成的二維陣列,所述細胞陣列與所有內存單元陣列疊合形成三維結構,每個內存單元陣列中的內存單元與所述細胞陣列中的細胞一一對應地相連;所述內存單元用于所述微處理器計算時所涉及數據的隨機存取;每一個細胞儲存各自在所述細胞陣列中的位置作為身份識別號(ID,identificat1n)以供細胞中的軟件或硬件讀取;所述主控CPU通過所述細胞陣列總線與所述細胞陣列中的每一個細胞進行通信;所述細胞陣列中的相鄰細胞之間有通信接口,能相互發送數據。
[0011]可選的,所述主控CPU通過所述細胞陣列總線與所述細胞陣列中的每一個細胞進行的通信包括以下情況中的至少一種:
[0012]按地址讀寫所述細胞陣列中任一細胞的非易失隨機存儲器或相應的內存單元;
[0013]將數據廣播到目標區域內每一個細胞的非易失隨機存儲器或相應的內存單元,并寫入該目標區域內每一個細胞的非易失隨機存儲器或相應的內存單元中相同的相對地址;
[0014]給所述細胞陣列中任一細胞的微處理器發送指令、發送數據或讀取狀態;
[0015]給目標區域內所有細胞的微處理器廣播指令。
[0016]可選的,所述細胞陣列中的細胞還包括總線控制器和細胞內部總線,所述細胞內部總線連接所述微處理器、非易失隨機存儲器以及與本細胞相對應的內存單元,所述總線控制器與所述細胞陣列總線、微處理器以及細胞內部總線相連,所述總線控制器用于識別所述主控CPU與本細胞之間進行的通信,連接所述微處理器以傳遞所述主控CPU發送的指令或數據、狀態讀取,或者通過所述細胞內部總線連接所述非易失隨機存儲器或與本細胞相對應的內存單元進行數據的讀寫操作。
[0017]可選的,所述細胞陣列中的任意兩個細胞之間能進行通信,參與細胞間通信的細胞包含起點細胞、終點細胞和中轉細胞,所述起點細胞為向所述終點細胞發出數據的細胞,所述終點細胞為最終接收所述起點細胞所發數據的細胞,所述中轉細胞為沿細胞間通信路徑依次相鄰且通過所述通信接口中轉所述起點細胞所發數據的細胞,所述細胞間通信路徑是由所述起點細胞、中轉細胞和終點細胞所構成的數據收發路徑。
[0018]可選的,所述細胞陣列中的任一細胞還能作為所述起點細胞向目標區域內的所有細胞進行群發通信,參與所述群發通信且位于目標區域內的細胞作為所述起點細胞、或作為所述終點細胞、或同時作為所述中轉細胞和終點細胞,參與所述群發通信且位于目標區域外的細胞作為所述起點細胞或中轉細胞。
[0019]可選的,所述細胞陣列中的細胞還包括與所述微處理器相連的網絡控制器,所述網絡控制器用于在進行細胞間通信時,對發出的數據、中轉的數據或者最終接收的數據進行收發控制,還用于向所述微處理器發送中斷信號。
[0020]可選的,所述細胞陣列中的細胞還包括與所述網絡控制器相連的一組或一組以上先入先出隊列(FIFO,First Input First Output),各組先入先出隊列分別對應一個與本細胞相鄰的細胞,每一組先入先出隊列包括輸入先入先出隊列和輸出先入先出隊列,所述輸入先入先出隊列用于存儲輸入本細胞進行中轉的數據或最終接收的數據,所述輸出先入先出隊列用于存儲從本細胞輸出的需進行中轉的數據或本細胞向其他細胞發出的數據。
[0021]可選的,所述細胞陣列中還設有至少一個專職輸出細胞,所述專職輸出細胞作為所述終點細胞接收并存儲其他細胞給所述主控CPU的輸出數據,并以中斷信號通知所述主控CPU讀取所述輸出數據。
[0022]可選的,所述內存單元與所述細胞陣列中相對應的細胞之間通過過硅通孔(TSV,Through Silicon Vias)建立通信聯系。
[0023]可選的,所述微處理器中集成有浮點計算處理器(FPU,Float Point Unit)和圖像處理器中的至少一種。
[0024]可選的,所述主控CPU與所述細胞陣列和所述細胞陣列總線集成于一個芯片中。
[0025]可選的,所述主控CPU作為獨立的芯片,通過標準的內存接口與由所述細胞陣列和所述細胞陣列總線組成的芯片進行通信。
[0026]可選的,所述非易失隨機存儲器為磁性隨機存儲器(MRAM,Magnetic RandomAccess Memory)ο
[0027]可選的,所述內存單元陣列為MRAM、DRAM或SRAM芯片。
[0028]與現有技術相比,本發明的技術方案至少具有以下優點:
[0029]通過將一個以上兼具獨立計算和存儲功能的單元(稱為“細胞”)組成二維陣列(稱為“細胞陣列”),其中每一個細胞包括微處理器和非易失隨機存儲器,所述非易失隨機存儲器既能支持所述微處理器進行計算時所涉及數據的隨機存取,也能支持存儲軟件的指令代碼和需要永久保存的數據,使內存、存儲、計算三個功能集成到每個細胞中,并使各細胞之間形成密集的通訊網絡,一方面,主控CPU能通過細胞陣列總線與細胞陣列中的每一個細胞進行通信,另一方面,細胞陣列中的相鄰細胞之間也能相互發送數據,由此能通過數據群發和內部網絡,克服現有計算機架構因CPU與內存、存儲之間存在的通信瓶頸,從而提升計算系統的整體性能,并能使費效比較佳;此外,再通過將至少一個由一個以上內存單元組成的內存單元陣列,與所述細胞陣列疊合形成三維結構,并使每個內存單元陣列中的內存單元與細胞陣列中的細胞一一對應地相連,所述內存單元用于所述微處理器計算時所涉及數據的隨機存取,如此便能以較低的成本擴展細胞陣列中每個細胞的內存空間,提高細胞中微處理器的處理效率。
[0030]通過細胞陣列中相鄰細胞之間的通信接口,實現相鄰細胞之間對于數據的多次中轉,使細胞陣列中的任意兩個細胞之間不依靠主控CPU便能進行通信,提高了細胞間通信的效率,也降低了主控CPU的處理負擔,從而能進一步提升計算系統的整體性能。
[0031]通過將細胞間的點對點通信功能擴展到區域群發,可以支持更高的平行度,獲得高得多的總帶寬,從而進一步提升計算系統的整體性能。
[0032]通過在細胞陣列中設置專職輸出細胞,以所述專職輸出細胞作為所述終點細胞接收并存儲其他細胞給主控CPU的輸出數據,并以中斷信號的方式通知所述主控CPU讀取所述輸出數據,如此能夠在只有少數幾個細胞需要向主控CPU輸出數據時提高主控CPU讀取輸出數據的效率。
[0033]本發明解決了 CPU和內存之間的通信瓶頸問題。這樣,在相同的硅片面積下,大量微型MPU的處理能力,在很多問題上遠超少數幾個頂級CPU的處理能力,而耗電則低得多。
[0034]本發明使得計算機的架構更接近人腦,為未來的人工智能算法提供了強有力的引擎。
【附圖說明】
[0035]圖1是現有技術中計算機架構的示意圖;
[0036]圖2是本發明實施例提供的細胞陣列計算系統的一種結構示意圖;
[0037]圖3是本發明實施例的一種相鄰細胞之間通信方式的示意圖;
[0038]圖4是本發明實施例的另一種相鄰細胞之間通信方式的示意圖;
[0039]圖5是本發明實施例的細胞的結構示意圖;
[0040]圖6是應用細胞陣列計算系統以流水線的方式計算Monte Carlo積分的示意圖;
[0041]圖7是本發明實施例的細胞陣列中進行細胞間通信的細胞的結構示意圖;
[0042]圖8是本發明實施例的細胞陣列中細胞間通信的路徑選擇的示意圖;
[0043]圖9是本發明實施例的專職輸出細胞的實施過程示意圖;
[0044]圖10是本發明實施例的細胞陣列中起點細胞在目標區域角上的細胞群發