tags
课程
type
Post
status
Published
date
Mar 22, 2026
slug
future_computing
summary
category
摸鱼的笔记
password
icon

#0 Introduction

微分方程、线性方程组、矩阵计算几乎涵盖了当今所有的计算需求
进制导致了进位,导致了复杂逻辑的产生。如果没有晶体管微缩,没有人会用现在这套表达数字和计算的方法,因为它实在是太复杂了
摩尔定律正盛的时候,没有足够的资金支持非传统计算。“摩尔定律的结束是摩尔定律开始以来最好的事情”;“一鲸落万物生”
notion image
analog其实本意与连续没关系,只是因为经常与digital并列相提,才被认为是连续信号运算。事实上analog强调的是“模拟”,即用物理系统模拟数学运算过程。原则上,任何合理可控的、数学描述的物理过程都可以用于计算
吉尔伯特单元可以用来做模拟的乘法
完备的逻辑门 → 算术运算 → 矩阵运算 → 神经网络。但实际上神经网络的阈值逻辑也在进行逻辑分类,从而这里有一种衔尾蛇的结构。
核心关注点:用完成计算。(在集成电路里基本只有电阻和电容,电感比较少)
notion image
左边利用电流和为0,,这里的输入输出可以是模拟的或者多比特的
右边更类似于传统逻辑门,输入输出是二进制的。只要有一个导通,就会迅速下降。
notion image
左边利用电荷守恒,,一般电路中电容不能随意改变值
右边如果有一个电容上没有电荷,则当BL预充结束,所有开关打开之后,会迅速下降。
notion image
冯诺依曼架构让存储和逻辑两方面的公司各自做好自己的事情,这导致存储工艺和逻辑工艺是两条不一样的路径,优化的方向不一样(比如金属层数就不同)。存储的工艺和逻辑的工艺也很难融合在一起,如果把memory分散在logic阵列中,很可能发现面积大了好多倍。
摩尔定律适用于logic单元而不适用于memory单元。(It’s the Memory, Stupid!)
notion image
所有的计算都是在做Z=X?Y。根据X,Y,Z三个数据在存储单元中还是存储单元外,可以分为6类。
XY
Z
图中左起
均在内
一外一内
均在外
均在内
一外一内
均在外

#1 Logic In Memory

DRAM(XYZ-tpye)

notion image
notion image
DRAM主要由cell(1T1C)、SA(锁存型,输入输出是同一组端口,像SRAM cell)、precharge(图中没画)构成。其中SA的面积远大于DRAM的阵列,其原理大致如右图,有一个enable控制信号,当Va>Vb且被enable时迅速将A拉到VDD,B拉到0。
  • 读取
  1. 将SA的两端(BL/BLB)都预充到1/2VDD。
  1. 打开WL,BL上电位会因为cell充电与否发生细微变化。
  1. enable SA,根据BL和BLB的电位差迅速输出结果。
  1. BL和BLB电位稳定为VDD/0后,cell中在2)损失或填入的电荷可以被复原为原来的状态!这说明DRAM的读取并不是破坏性的,并且,只要重复读取就可以实现refresh
  • 写入
  1. 利用BLB将BL强制变成VDD或0
  1. 打开WL,改变cell的充电状态
  • 逻辑门
notion image
同时打开多条(奇数条)WL实现majority函数。过程完成之后,原cell的状态会变得一致,即为所需要的结果(所以DRAM存内计算属于前面的XYZ存内计算)。
注意到这样的运算会破坏原来的结果,所以需要做行克隆。行克隆也很简单,先进行一次读出,之后不precharge,则BL上仍然保存着读出的信息。打开写入行的WL即可实现数据转移。
另外,这样的运算需要新的解码器来同时打开多条WL。显然我们不可能让任意3行都能同时打开,我们可以用一些多余的地址来代表打开某些预先固定的3行。
令A=1即可实现或门,令A=0即可实现与门,而要实现非门,需要引入额外的MOS,如下。在读出完成之后再打开n-WL,把BLB上的数据写入原cell。
notion image
💡
DRAM存算一体其实可以视为一个感知机模型。MAC用电容的电荷分享完成,非线性函数用SA完成
因为工艺variations,成功率是个问题。

SRAM(XY-type/X-type)

notion image
SRAM的工艺与逻辑工艺是兼容的。这一点与传统DRAM相差很大(不过嵌入式DRAM,eDRAM,用的是逻辑工艺)
  • 写入
如果写0,则BL=0,BLB=1,打开WL使Q通过M6放电到GND,进而通过M1M2把QB拉高到VDD
注意在此过程中,如果BL=BLB=1,则不会改变Q和QB的状态,QB从0到1是由Q的放电带动的。这就是所谓的”写0不写1“。只有这样,才能保证在读取的时候,数据不会被”读翻掉“
  • 读取
预充电使BL=BLB=VDD。打开WL,含0的一端(假设是Q=0)BL就会有微小的放电,通过SA放大到输出端
💡
SRAM和DRAM中的SA有显著区别。前者就是传统意义上的查分放大器,输入和输出端口是分离的;后者的输入和输出端口是一样的,从而形成了正反馈结构(锁存型SA),与SRAM cell更相似
  • 行克隆
与DRAM行克隆的做法类似。先进行一次读出操作,但不重新precharge而是维持BL和BLB电位不变。
之后打开另一行的WL,前面读取的数据就能被写入新的行里。注意该过程中BL和BLB不是外加恒定电位驱动,而是电容保存的电荷驱动,所以要提高WL的电压来确保写入能够完成
  • 逻辑门
notion image
notion image
同时开启两行,两个SA,分别比较BL和Vref(右侧);BLB和Vref(左侧)
以BL为例分析,当Q=0,BL就会放电。如果QA=QB=0肯定是电位下降最多的,01组合也会下降但下降得少一些,QA=QB=1则不会下降。
于是,取恰当的Vref,可使右侧SA的结果=A and B。
同理,取恰当的Vref,可使左侧SA的结果=(not A) and (not B)=A nor B。
以上可以对应感知机模型中的电阻阵列(的右图)。
二者再用一个外置NOR门运算即可得到A xor B。
同时开启两行会面临串扰的问题,通过降低WL电压(延长数据可能被“读翻掉”的时间,在此之前完成运算)or异步开启WL(仍然能使00/01/11组合放电量不同)or 8Tcell读写分离可以缓解
notion image
对SRAM cell的结构稍加改进(上图),将左右的WL分裂为两条WLL和WLR。对每一行可以施加WL=1(WLR=1,WLL=0)或者WL=0(WLL=1,WLR=0)或者WL=M(WLL=WLR=0,maintain,这一行不参与运算)。
考虑只对两行施加0或1,其余行都施加M。 如果WLA=WLB=1,则BL的SA的结果是AND逻辑;如果WLA=WLB=0,则BLB的SA的结果是NOR逻辑;如果WLA=0,WLB=1,则BL的SA的结果是A’,BLB的SA的结果是B,通过外围逻辑进一步运算;如果WLA=1,WLB=0也大致同理。
  • CAM
notion image
notion image
在上图(图左)中,注意到:WL=1 cell=0 BL放电;WL=0 cell=1 BLB放电;其余情况下,BL和BLB均不会放电
因此,BL或BLB放电 = WL xor cell。要使得BL和BLB都不放电,必须要求所有行的WL=cell。基于此,我们得到了content addressable memory(CAM).
注意CAM和SRAM逻辑门在原理上还不太一样,前者是X-type因为一个输入是用WL给入的,而后者是XY-type。

#2 Compute In Memory

DRAM和SRAM存内计算就是一种感知机,已经暗含MAC操作,但是权重是固定的,输入和(最后的)输出都是二进制的(因为我们采用阶跃函数作为非线性函数)。
💡
AND可以视为是0和1的乘法器;
XOR可以视为是+1和-1的乘法器。
如果需要多位的输入,我们需要选择性量化一部分电路参数。如果需要多位的输出,我们必须使用一种新的非线性函数——ADC(阶梯函数)。
💡
DRAM cell尚可能存储多bit,但SRAM cell只可能存储1bit,因为它是双稳态电路

SRAM

  • 标准6T cell
WL=1 cell=0 BL放电;WL=1 cell=1 BLB放电;其余情况下,BL和BLB均不会放电。如果考虑放电量的多少,完全可以将其作为模拟的输出
notion image
权重+1/-1分别对应存储1和0,分别导致BLB和BL放电。在MOS的线性区,放电速率与VWL线性相关,因此可以用WL的不同电压来编码多比特输入,最终用BL和BLB的电压差分得到1bit输出(用SA取sgn)
  • split-WL 6T cell
notion image
WL
cell(Q)
BLL
BLR
1(x=1)开启WLL
1(w=1)
上拉
1(x=1)开启WLL
0(w=-1)
下拉
0(x=-1)开启WLR
1(w=1)
下拉
0(x=-1)开启WLR
0(w=-1)
上拉
notion image
把BLL和BLR短接成为RBL。当x*w=+1,RBL上拉,当x*w=-1,RBL下拉。【注意这里不对RBL进行预充电】设RBL电压为Vx,有n个上拉(+1)和N-n个下拉(-1)
而我们需要的结果是n-(N-n)=2n-N,二者可以建立线性联系

RRAM device

新型存储除了电压之外,还用电导编码信息,引入了一个新的维度
💡
算内计算首先要是一个存储器,而不能仅仅用来计算
集成电路中超过两种元素的材料很少有成功的。RRAM的一个好处是与cmos工艺兼容(从08年发现HfO2开始迅速发展
非易失性的判准:在V=0存在两种不同的状态,典型的是高阻态和低阻态,这个状态与外加的电压无关(与MOS的核心区别)
rram写入延时与dram类似,约几十ns;rram耐久性比flash好2-3个数量级
  • Set & Reset
RRAM根据材料性质可以分成阴离子迁移(OxRAM)和阳离子迁移(CBRAM)。Set和Reset的过程可以理解为是“导电细丝”形成和断开的过程
notion image
根据reset的电压是否需要反向分成单极性和双极性。由于单极性只能用热效应,能效较差,所以现在研究的大多都是利用场效应的双极性器件
Set:变成低阻态。当电压超过阈值电压,电流引导离子形成导电细丝,直到达到Ic(通过串联电阻或MOS实现),通过设置不同的Ic可以让器件编码到不同的电导值
Reset:变成高阻态。(以双极性为例)当反向电压超过阈值,导电细丝开始被破坏,电导下降。同样通过控制电压的极限Vstop可以让器件编码到不同的电导值
注意由于相变与电流挂钩,所以set是正反馈(电流大→电导大→电流大)曲线陡峭;reset是负反馈(电流大→电导小→电流小)
notion image
除了控制Ic,Vstop之外,也可以控制脉冲的高度(上方两图)/持续时间(下方左图)来编码至不同电导状态。
可以看到reset(上方左图)和set(上方右图)都有一个阈值电压,且set关于电压的变化更剧烈(因为正反馈)
考虑器件variation,RRAM存4-8个态更合适

PCM device

PCM的发展路径和RRAM高度相似,且二者都是通过改变器件的性质来编码电导,因此RRAM和PCM耐久性都有问题
晶体态是低阻态,非晶态是高阻态。二者的转变通过电流的热效应来实现。
notion image
notion image
大的电流对应reset到高阻态(非晶),由于时间较短,材料熔化后还没有时间结晶。且无论材料初始是晶体态或非晶态,当电流很大时都会变成非晶态
中等的电流对应set到低阻态(晶体),时间比reset长一些,可以使材料熔化后再结晶
然而,高阻态电阻约1M,Iset~0.5mA,难道我们需要500V的电压来set?实际上不需要。高阻态到低阻态,中间有一个易失性的低阻态,从而我们无需加极高的电压即可获得0.5mA电流
随着擦写次数增加,高阻态的阻值会逐渐变大,高阻态漂移不利于多比特存储。可以用并联电阻解决漂移问题:
notion image
当相变材料在高阻态,总电阻约等于并联的电阻

RRAM/PCM array

一般定义高电导(低阻态)为1,低电导(高阻态)为0。Set是变成1,Reset是变回0
二维阵列分为两种。一种是1T1R,有晶体管控制,每个cell有3个端口,这种阵列原理与memory一样。还有另一种无源阵列passive crossbar,每个cell都是一个2端的,直接集成在WL和BL间,其结构密度非常之夸张
下面主要讨论第二种(passive crossbar)
  • 串扰问题
无源阵列最严重的问题是串扰。下面分别是写入和读取的串扰问题。要分析串扰问题就分析sneak path,虽然其长度可能为3,5等等,但最严重的是长度为3的。
notion image
最naive的写入:把目标WL和BL之外的都悬空,但这样如果sneak path上两个LRS,一个HRS,则电压会几乎全加在HRS上,可能改变其状态(我们并不想这样)。
V/2写入:把蓝色部分电阻短接,绿色和黄色上加V/2电压(希望它们不要有状态改变),目标电阻加V
V/3写入:除目标电阻之外都加V/3的电压
后面两种解决方法功耗都比较大
notion image
读取时也有sneak path干扰电流值,使得阵列尺寸非常受限
  • 解决方案一:选通管,1S1R
如果选通管可以在低压时有很大的电阻,超过某电压后电阻骤然减小,那么对于sneak path,由于selector个数多于正常的1个,故而这些selectors无法同时导通。也可以配合V/2或V/3法使用降低sneak path器件分到的电压
但是这样对selector的性能要求很高
  • 解决方案二:二极管,1D1R
注意到sneak path一定有在WL和BL之间“逆流”的。加入二极管使其无法逆流
问题是二极管很难做小,且有二极管无法加负压,只适用于单极性器件
  • 解决方案三:互补RRAM
notion image
上方器件A和下方器件B极性相反,假设Vset=Vreset
原始态:A高阻,B高阻。加反向|V|>2*Vset,使A set。对B而言负压只能reset,但B本就是高阻态。这样我们初始化到1态。
1态:A低阻,B高阻。电压几乎全部加在B上。从原点向右走,加正向电压V>Vset(Vth1),B set,从而经过路径①得到On态。
On态:A低阻,B低阻。当正向电压达到2*Vreset,A被reset,经过路径②得到0态。
0态:A高阻,B低阻。电压几乎全部加在A上。从原点向左走,加反向电压|V|>Vset(Vth3),A set,从而经过路径③得到On态。当反向电压达到2*Vreset,B被reset,经过路径④得到1态。
总结:图中“①”只能从左边进入,“③”只能从右边进入。从左往右是1态,从右往左是0态。
写入:只要电压大于Vth2,总是得到0态。只要电压大于Vth4,总是得到1态。整体行为与单个双极性RRAM一样
读取:加入Vth1~Vth2的电压,1态从左到右能进入On态(有大电流),而0态不行。这样也能解决sneak path,因为无论01都是整体高阻态,sneak path上不存在哪个cell分压特别大,都小于Vth1,什么都不会发生。但注意这是破坏性的读取。

Ferromagnetic device (MRAM)

利用铁磁性的非易失性。磁滞回线在H=0时仍然有非零的磁化强度
磁阻:不同的磁化方向构型下,器件具有不同的电阻
磁阻主要有三种(按发现时间顺序): 各向异性磁阻(Anisotropic Magnetoresistance, AMR) 巨磁阻(Giant Magnetoresistance, GMR) 隧穿磁阻(Tunneling Magnetoresistance, TMR)
  • AMR
材料电阻与自身磁化强度和电流方向的夹角相关
效应<10%,不是很显著,可以用来做磁头
  • GMR
AMR是体效应,不能做得太小;而GMR是界面效应,可以做得很小
notion image
notion image
没有外加磁场的时候,两片铁磁材料反平行,无论自旋向上或向下的电子总会有在一个界面上被散射,总体电阻大;有外加磁场的时候,两片铁磁材料变成平行,自旋向上的电子不会被散射,总体电阻小
GMR效应可以达到80%,比AMR大得多
用GMR做存储的时候,一层是固定的(自旋阀),一层是自由的(可以被外加磁场改变磁化方向)
  • TMR
AMR和GMR的问题:相较于PCM和RRAM中间都有绝缘层,AMR和GMR中间是金属,其电阻很小,只有几欧,难以与CMOS的几千欧电阻配合
把中间换成MgO,可以达到500%-1000%的磁阻效应,且实现了几千欧的电阻
怎么用TMR做存储器?
notion image
notion image
(a)传统MRAM是通过电流产生磁场来写入(两条电流,确保只有交接点处磁场最大),但(b)STT-MRAM可以用电流直接写入。STT-MRAM的行为已经与RRAM无异——加电流使得器件电阻发生改变
TMR的磁阻效应不如RRAM显著,因此比较难实现多bit存储

Ferroelectric device (FTJ/FeFET/FeRAM)

  • 铁电性
不是金属材料!铁电性是说P和E的关系是非线性的,E=0时仍然有非零的极化强度Pr。
加比较大的正向或反向电场,可以改变其极化方向
  • FTJ
两边金属性质不同。中间电介质的极化方向会影响中间势垒的高度,对应高阻态和低阻态
但是由于电流是隧穿产生的,只有nA量级,难以直接跟CMOS电路匹配。(可以用大量FTJ并行计算?)
不同“畴”有不同的极化方向,可以实现多阻态
  • FeFET
在Gate和Channel间加入一层铁电材料,其极化方向会影响FET的阈值电压Vt
改变FeFET的参数可以使其更适用于Storage/Memory
与FTJ同理,Vt存在多个状态

CIM

用电导作为输入,电压作为权重
课程须知-26春量子计算导论
Loading...