存儲計算邏輯
① 數據結構的存儲方式有哪幾種
數據結構的存儲方式有順序存儲方法、鏈接存儲方法、索引存儲方法和散列存儲方法這四種。
1、順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據,把邏輯上相連的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接掛安息來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或者結構數組來描述。
2、鏈接存儲方法:它比較靈活,其不要求邏輯上相鄰的結點在物理位置上相鄰,結點間的邏輯關系由附加的引用欄位表示。一個結點的引用欄位往往指導下一個結點的存放位置。鏈接存儲方式也稱為鏈接式存儲結構,一般在原數據項中增加應用類型來表示結點之間的位置關系。
3、索引存儲方法:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。它細分為兩類:稠密索引:每個結點在索引表中都有一個索引項,索引項的地址指示結點所在的的存儲位置;稀疏索引:一組結點在索引表中只對應一個索引項,索引項的地址指示一組結點的起始存儲位置。
4、散列存儲方法:就是根據結點的關鍵字直接計算出該結點的存儲地址。
(1)存儲計算邏輯擴展閱讀
順序存儲和鏈接存儲的基本原理
在順序存儲中,每個存儲空間含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來的線性表的順序存儲,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元素在對應數組中的下標位置為i-1,它的後繼元素在對應數組中的下標位置為i+1。
在鏈式存儲結構中,存儲結點不僅含有所存元素本身的信息,還含有元素之間邏輯關系的信息。數據的鏈式存儲結構可用鏈接表來表示。其中data表示值域,用來存儲節點的數值部分。Pl,p2,…,Pill(1n≥1)均為指針域,每個指針域為其對應的後繼元素或前驅元素所在結點的存儲位置。
在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。
② 存算一體原理
存算一體晶元主流研究方向:
根據存儲器介質的不同,目前存算一體晶元的主流研發集中在傳統易失性存儲器,如SRAM、DRAM,以及非易失性存儲器,如RRAM,PCM,MRAM與快閃記憶體等,其中比較成熟的是以SRAM和MRAM為代表的通用近存計算架構。
通用近存計算架構:
採用同構眾核的架構,每個存儲計算核(MPU)包含計算引擎(Processing Engine, PE)、緩存(Cache)、控制(CTRL)與輸入輸出(Inout/Output, I/O)等,這里緩存可以是SRAM、MRAM或類似的高速隨機存儲器。
(1) SRAM存算一體
由於SRAM是二值存儲器,二值MAC運算等效於XNOR累加運算,可以用於二值神經網路運算。
(2) DRAM存算一體
基於DRAM的存算一體設計主要利用DRAM單元之間的電荷共享機制[33,34]。
(3) RRAM/PCM/Flash多值存算一體
基於RRAM/PCM/Flah的多值存算一體方案的基本原理是利用存儲單元的多值特性,通過器件本徵的物理電氣行為(例如基爾霍夫定律與歐姆定律)來實現多值MAC運算。每個存儲單元可以看作一個可變電導/電阻,用來存儲網路權重,當在每一行施加電流/電壓(激勵)時,每一列即可得到MAC運算的電壓/電流值。
(4) RRAM/PCM/MRAM二值存算一體
基於RRAM/PCM/MRAM的二值存算一體主要有兩種方案。第一種方案是利用輔助外圍電路,跟上述SRAM存算一體類似,第二種方案是直接利用存儲單元實現布爾邏輯計算。