嵌入式硬件 · SRAM · 读写原理
SRAM读一次会不会把原数据改掉?读出和写入走的不是同一条动作链
SRAM 读出以观察状态为目标,写入则必须主动强制内部状态翻转
典型六管 SRAM 单元用交叉耦合结构保存一位数据。读操作通过字线把单元接到互补位线,由外围电路感知差异,目标是不破坏原状态;写操作则主动驱动两条位线,压过原有反馈并建立新状态。理解这一区别,才能正确看待读稳定性与写裕量。
很多初学者会把存储器读写理解成‘同一条线上的两个方向’:读就是拿出来,写就是放进去。对 SRAM 单元来说,两者的电气动作差别更大。
读操作要尽量轻地观察已有状态,写操作却必须足够强地把内部锁存状态翻转。一个强调不扰动,一个强调覆盖原状态。
一、SRAM怎样在不刷新时保存一位数据
典型六管 SRAM 单元包含一对交叉耦合反相器和两个访问晶体管。交叉耦合形成两个互补节点,只要供电保持,它们会互相维持当前逻辑状态。
图 1 六管 SRAM 单元的保持、读出和写入概念
这与需要周期刷新电荷的 DRAM 不同。SRAM 的‘静态’是指供电存在时状态可由反馈维持,并不代表掉电后仍能保存。
二、交叉耦合为什么能锁住状态
图 2 SRAM 内部两个互补节点通过反馈保持一位状态(原理示意,非晶体管级精确电路)
一个节点为高时,会通过反相关系维持另一个节点为低;反过来也一样。字线关闭后,访问晶体管把存储单元与位线隔离,外部总线变化不会直接进入内部节点。
三、读操作为什么叫非破坏性读出
读之前,外围电路先把位线准备到规定状态。字线打开后,存储单元只让两条位线产生可判读的差异,再由感应放大器识别 0 或 1。设计目标是让这个扰动不足以把内部状态翻转。
图 3 SRAM 读操作以感知已有状态为目标(原理示意,非实测结果)
如果访问晶体管、单元尺寸、位线条件或时序设计不当,读过程也可能影响读稳定性。所以‘非破坏性’是电路设计要保证的结果,不是无条件成立的口号。
四、写操作为什么必须更强
写入时,外围电路在互补位线上建立目标数据对应的强制状态,再打开字线。外部驱动要压过单元原来的反馈,使两个内部节点翻转;字线关闭后,新状态重新由交叉耦合维持。
图 4 SRAM 写操作需要主动压过原有状态并建立新状态(原理示意,非实测结果)
确认地址与片选稳定,再进入目标读或写窗口。
读操作关注位线预处理、感应窗口和不扰动原状态。
写操作关注互补数据驱动、写脉冲与足够写裕量。
总线方向切换时避免读写驱动同时占用,防止争用电流。
具体时序、极性和等待周期必须以目标 SRAM 数据手册为准。
五、3个常见误区
静态等于掉电保持:普通 SRAM 断电后不保证保留数据。
读操作完全无扰动:读稳定性仍依赖单元、位线和时序设计。
写入只是反向读出:写需要外部驱动压过原有锁存状态。
工程判断:SRAM 读写不是同一动作的两个方向。读操作要建立可感知差异且不翻转单元,写操作要有足够驱动和时序裕量主动翻转单元。
写在最后
理解 SRAM 的关键,不是先背控制引脚,而是先分清‘观察已有状态’和‘强制建立新状态’。
这个视角再回到时序图,读稳定性、写裕量和总线争用就更容易定位。