存储器相关,聚焦于半导体存储器,主要分为读写存储器、只读存储器以及读为主的存储器。接着叙述芯片逻辑,以及芯片优化。
# 回顾:存储器
# 回顾:存储器
1Byte(字节) = 8 bit(比特)
1 字 可能是 4 字节,也可能是 8 字节。根据计算机是 32 位还是 64 位有所不同,不同计算机有不同的字长。
# 存储器层次结构
# 半导体存储器
半导体
位元 存储 1 位数据
# 半导体存储器类型
表中列出的而所有类型的存储器都是随机存取的。
快闪 flash——U 盘是其中的一种。
# 读 - 写存储器 —— 随机存取存储器 RAM
RAM 的明显特征是,可以方便快捷地从存储器读取数据和向存储器写入新数据,且读写操作都是通过使用电信号来实现的。
易失 —— 必须持续供电,一旦断电,数据就会丢失。
# SRAM 静态 RAM
CS 片送
RW 控制读写
推导过程
# DRAM 动态 RAM
通过电容充电来存储数据。
电容器有漏电趋势,动态 RAM 需要周期地充电刷新来维持数据的存储。
动态一词就是在描述存储电荷丢失的趋势,即使电源一直在供电。
# SRAM 与 DRAM 的对比
DRAM 密度高,价格便宜,趋向于满足大容量存储器的要求。但是 SRAM 更快。
SRAM 一般用于 cache 存储器(片上或者片外的)【CPU 中】,而 DRAM 则用于主存储器中。
# 只读存储器
# ROM 只读存储器
问题补充:固化数据需要较大的固定成本,无论是制造一片或者复制上千片特殊的 ROM。但是可以通过批量生产降低单片芯片的成本。
# 可编程 ROM(PROM)
需要少量的存储特定内容的 ROM 芯片,可以选择较为廉价的可编程 PROM
可由供应商或者用户在芯片出厂后写入一次、
# 主要进行读操作的存储器
# EPROM
使芯片暴露在紫外线辐射下使所有的存储位元都被擦除,没有办法做到很精确,因此是芯片级的可擦除性。
# EEPROM
任何时候都可以写入,无需擦除原先内容,只更新寻址到的一个或多个字节。
将非易失性和数据修改灵活的优点结合起来。修改数据只需要使用常规的控制、地址和地址总线。
电写入,从 1 变成 0; 电擦除,从 0 变成 1。
# 快闪存储器
NAND Flash 共用一条线 —— 外部存储器
# 各类 ROM 对比
# 芯片逻辑
# 从位元到主存
位扩展,从 1bit 增加到 8bit,需要增加 7 根线。
字扩展,从 16K 变成 64K,16K 需要 7 根线,64K 需要 8 根线【因为行列复用】,只需要增加一根线,就可以实现 16K 到 64K。
1K = 2 10
有多少位数据,就需要有多少根数据线。
# 如何寻址:地址译码器
DRAM 不用刷新,采用行列复用 —— 用 11 位分别计算出行地址和列地址进行访问, 因为 DRAM 的存储空间较大,且行列复用耗时较高,所以只在 DRAM 中使用。
SRAM 且没有 RAS(行地址选通)和 CAS(列地址选通),也没有数据输入输出缓冲器,SRAM 常作为缓存,需要更快的速度。
WE 写允许
OE 输出允许
# 如何刷新
集中式刷新会造成死区,影响使用,因此开发分散式刷新和异步刷新进行优化。
译码阶段不需要进行缓存,每行的刷新相对独立,不需要按照顺序。
# 高级的 DRAM 架构
# 同步 DRAM (Synchorounous DRAM, SDRAM)
# 双频率 SDRAM (Double-Data-Rate SDRAM)
SDRAM
在每一次行选之前,都需要做预充电
如果下一次仍然是同一行的数据,不需要行选。
在时钟上升沿才能发数据
DDR SDRAM
在时钟下升沿也可以发数据
核心频率无法改变 —— 电容很难提升
# 寄存器基本原理
边沿 D 触发器,RS 锁存器以及增加了 input 和 clock(?
寄存器和 CPU 的时钟同步