07.Internal Memory
回顾 : 存储器
- 存储器 : 由一定数量的单元构成, 每个单元可以被唯一标识, 每个单元都有存储一个数值的能力
- 地址 : 单元的唯一标识符 (采用二进制)
- 地址空间 : 可唯一标识的单元总数
- 寻址能力 : 存储在每个单元中的信息的位数, 即内存中能被单独识别并独立存放一个数据的最小内存空间
- 大多数存储器是字节(8bit)寻址的, 32位计算机的最大寻址空间为4GB
如何存1bit
存储器层次结构
半导体存储器
-
用半导体芯片作主存储器是目前的主流做法
-
位元
-
半导体存储器的基本元件, 用于存储1位数据
-
特性
- 呈现两种稳态(或半稳态) : 分别表示二进制的0和1
- 它们能够至少被写入数据一次 : 用来设置状态
- 它们能够被读取 : 来获得状态信息
-
操作
-
-
半导体存储器类型
读写存储器
随机存取存储器 (RAM)
-
Random-Access Memory (RAM)
- 随机访问 : 对存储器中任意数据的访问所花费的时间与数据所在位置无关
-
特性
- 可以简单快速地进行读/写操作
- 易失的
-
类型
- 静态RAM (SRAM)
- 动态RAM (DRAM)
SRAM
DRAM
SRAM与DRAM的对比
-
无论多贵的电脑里, 内存用的都是DRAM
-
DRAM多用于主存, SRAM多用于寄存器
高级的DRAM架构
-
问题 : 传统DRAM是异步的
-
解决 : 高级DRAM架构是同步的
- 同步DRAM (Synchronous DRAM, SDRAM)
- 双速率SDRAM (Double-Data-Rate SDRAM, DDR SDRAM)
只读存储器
只读存储器 (ROM)
-
Read-Only Memory (ROM)
- 一种可以长期保存信息的存储器, 具有断电后信息仍可继续保存的特点, 在正常工作时, 只可读取数据, 而不能写入数据
-
特性
- 非易失的 : 不要求供电来维持数据
- 可读, 但不能写入新数据
-
应用
- 微程序设计, 库子程序, 系统程序, 函数表
-
问题
- 无出错处理机会 : 如果有一位出错, 整批的ROM芯片只能报废
- 用户无法写入数据 : 唯一的数据写入机会在出厂时完成
可编程ROM (PROM)
-
Programmable ROM (PROM)
-
特性
- 非易失的
- 只能被写入一次
- 写过程是用电信号执行 (电热熔断熔丝)
- 需要特殊设备来完成写或"编程"过程
-
与ROM的对比
- PROM提供了灵活性和方便性
- ROM在大批量生产领域仍具有吸引力
主要进行读操作的存储器
-
Read-Mostly Memory
-
特性
- 非易失的
- 写操作与读操作相比, 较为困难
-
应用
- 读操作比写操作频繁得多的场景
-
类型
- EPROM
- EEPROM
- Flash Memory
光可擦除/可编程只读存储器 (EPROM)
-
Erasable Programmable Read-Only Memory (EPROM)
-
特性
- 电写入 (1->0)
- 漏极和选择栅加高压, 电子温度上升变为热电子, 上升穿过氧化层, 进入浮栅场效应管不导通, 数据被写入0
- 光擦除 (0->1)
- 擦除 : 在写操作前将封装芯片暴露在紫外线下
- 照射使电子获得能量, 逃出浮栅, 场效应管导通
- 所有的存储单元都变回相同的初始状态1
- 每次擦除需要约20分钟 (受玻璃影响)
- 擦除 : 在写操作前将封装芯片暴露在紫外线下
- 电写入 (1->0)
电可擦除/可编程只读存储器 (EEPROM)
-
Electrically Erasable Programmable Read-Only Memory (EEPROM)
-
特性
- 可以随时写入而不删除之前的内容, 只更新寻址到的一个或多个字节
- 电写入 (1->0)
- 源极和漏极接地, 控制栅接高电平, 电子进入浮栅
- 写操作每字节需要大约5ms, 而读一个字节大约0.5us
- 电擦除 (0->1)
- 源极和控制栅接地, 漏极接高电平, 浮栅中电子进入衬底
- 每次擦除仅需4~6ms, 可擦除百万次
快闪存储器 (Flash Memory)
-
Flash Memory
-
特性
- 电可擦除, 与EEPROM原理类似, 优于EPROM
- 可以在块级擦除, 不能在字节级擦除, 优于EPROM, 不如EEPROM
- 需要先擦除再写入
-
分类
-
NOR Flash : 数据线和地址线分开, 可以读任意字节
-
NAND Flash : 数据线和地址线共用, 只能按页读取
-
从位元到主存
寻址单元
-
寻址单元 : 由若干相同地址的位元组成
-
寻址模式
- 字节 : 常用
- 字 : 专门用途的计算机
存储阵列
-
存储阵列 : 由大量寻址单元组成
芯片
-
芯片引脚
- Address : A0 - A19
- Data : D0 - D7
- Vcc : 电源
- Vss : 地线
- CE : 芯片允许引脚
- Vpp : 程序电压
- WE : 写允许
- OE : 读允许
- RAS : 行地址选通
- CAS : 列地址选通
模块组织
-
位扩展 : 地址线不变, 数据线增加
-
使用8块4K*1bit的芯片组成4K*8bit的存储器
-
-
字扩展 : 地址线增加, 数据线不变
-
使用4个16K*8bit的芯片组成64K*8bit的存储器
-
-
字, 位同时扩展 : 地址线增加, 数据线增加
-
使用8个16K*4bit的芯片组成64K*8bit的存储器
-
主存
-
插槽
- 组合多个存储模块
如何寻址
获得总线控制权
行访问
列访问
地址译码器
-
一个n位译码器有2n种输出
-
当所有n个寻址位都满足条件时, 该输出为1
-
任何时候, 只有一个输出是1, 其他的都是0
如何刷新
-
约束 : 刷新会占用片选线, 地址线, 地址译码器
-
集中式刷新
- 停止读写操作, 并逐行刷新
- 刷新时无法操作内存 (死区)
-
分散式刷新
- 在每个存储周期中, 当读写操作完成时进行刷新
- 一次读写刷新一次, 逐行刷新
- 会增加每个存储周期的时间
-
异步刷新
- 每一行各自以固定间隔 (小于最大刷新周期, 毫秒级) 刷新
- 将DRAM的刷新安排在CPU对指令的译码阶段, 可有效避免死区
- 效率高 : 常用