存储计算逻辑
① 数据结构的存储方式有哪几种
数据结构的存储方式有顺序存储方法、链接存储方法、索引存储方法和散列存储方法这四种。
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存算一体类似,第二种方案是直接利用存储单元实现布尔逻辑计算。