1、强调存储密度(Storage Density)Mb/mm2,存算一体的主要目的是减少数据搬运的开销,如果一味的堆计算单元而损失存储密度,那么虽然整体的计算吞吐率(TOPS)可以做到很大,相应的对计算密度也会有提升,但是由于需要频繁给CIM Macro刷新数据,从系统能效的角度上来说反而是下降的。这次的SRAM Array的行数做到了远超之前工作的宽度,之前的工作的row都做的非常小,也就个位数的水平,这次直接做到了18,并且有18个segments,也就是18*18=324,直接拉开了两个数量级的差距。
2、Interface+CTRL+DFT模块,除了一般CIM都有的存储器接口以及控制电路,还增加了DFT功能,根据论文描述是一个BIST电路,学术界论文一般不会重视这个,但是对于工业应用,BIST电路是必要的。
3、SRAM使用了BL分离的设计,每两个18 Rows的Array分成了BL_BOT/BLB_BOT和BL_TOP/BLB_TOP两套BL线,这个也是SRAM设计里比较Practical的做法,因为BL线太长了会导致Delay增大以及IR Drop产生Read Fail的问题。另外两个Bank的WL也是分离的,分成了WL_TOP和WL_BOT。对于具体的一个存算block的设计上,采用了两个18 Rows Array配两个LIO(分别给BL_BOT/BLB_BOT以及BL_TOP/BLB_TOP)以及一个LUT MAC,LIO即Local IO,还是采用了比较标准的Latch based SRAM读电路设计模式。写入时使用MUX4,读的时候用MUX1。存储单元和LIO用的VDDM域,高Vt器件,MAC电路用的是VDD域,低Vt器件。
4、对Bit serial和Bit parallel两种模式做了一个比较,在多个数据集上测试的结果是,对于input来说,MSB的翻转率是远低LSB的,Bit parallel可以利用到MSB低翻转率的特性(论文原文说是data correlation)数据相关性。对于Bit parallel来说,下一个Activaion跟上一个Activation从LSB到MSB都是对齐的,所以MSB很可能一起都不翻转。而对于Bit serial来说,下一个Activation是用MSB去跟上一个Activation的LSB,而MSB和LSB之间很大概率会存在数据翻转,所以Bit parallel会有比Bit serial更低的翻转率。他这里也给了在4个CNN Model上的对比,整体上来看Parallel MAC的翻转率是低于Serial MAC的,这也是给他们改用Bit parallel找了一个角度。所以bit parallel不仅增大带宽,还能降低功耗。