回顾 : 存储器

  • 存储器 : 由一定数量的单元构成, 每个单元可以被唯一标识, 每个单元都有存储一个数值的能力
    • 地址 : 单元的唯一标识符 (采用二进制)
    • 地址空间 : 可唯一标识的单元总数
    • 寻址能力 : 存储在每个单元中的信息的位数, 即内存中能被单独识别并独立存放一个数据的最小内存空间
      • 大多数存储器是字节(8bit)寻址的, 32位计算机的最大寻址空间为4GB

如何存1bit

image-20250119220122635

存储器层次结构

image-20250119220128463

image-20250119220133167

半导体存储器

  • 用半导体芯片作主存储器是目前的主流做法

  • 位元

    • 半导体存储器的基本元件, 用于存储1位数据

    • 特性

      • 呈现两种稳态(或半稳态) : 分别表示二进制的0和1
      • 它们能够至少被写入数据一次 : 用来设置状态
      • 它们能够被读取 : 来获得状态信息
    • 操作

      image-20250119220144899

  • 半导体存储器类型

    image-20250119220202716

读写存储器

随机存取存储器 (RAM)

  • Random-Access Memory (RAM)

    • 随机访问 : 对存储器中任意数据的访问所花费的时间与数据所在位置无关
  • 特性

    • 可以简单快速地进行读/写操作
    • 易失的
  • 类型

    • 静态RAM (SRAM)
    • 动态RAM (DRAM)

SRAM

image-20250119220209721

DRAM

image-20250119220215742

SRAM与DRAM的对比

image-20250119220220219

  • 无论多贵的电脑里, 内存用的都是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)

image-20250119220230394

  • 特性

    • 非易失的
    • 只能被写入一次
      • 写过程是用电信号执行 (电热熔断熔丝)
      • 需要特殊设备来完成写或"编程"过程
  • 与ROM的对比

    • PROM提供了灵活性和方便性
    • ROM在大批量生产领域仍具有吸引力

主要进行读操作的存储器

  • Read-Mostly Memory

  • 特性

    • 非易失的
    • 写操作与读操作相比, 较为困难
  • 应用

    • 读操作比写操作频繁得多的场景
  • 类型

    • EPROM
    • EEPROM
    • Flash Memory

光可擦除/可编程只读存储器 (EPROM)

  • Erasable Programmable Read-Only Memory (EPROM)

image-20250119220236112

  • 特性

    • 电写入 (1->0)
      • 漏极和选择栅加高压, 电子温度上升变为热电子, 上升穿过氧化层, 进入浮栅场效应管不导通, 数据被写入0
    • 光擦除 (0->1)
      • 擦除 : 在写操作前将封装芯片暴露在紫外线
        • 照射使电子获得能量, 逃出浮栅, 场效应管导通
        • 所有的存储单元都变回相同的初始状态1
        • 每次擦除需要约20分钟 (受玻璃影响)

电可擦除/可编程只读存储器 (EEPROM)

  • Electrically Erasable Programmable Read-Only Memory (EEPROM)

    image-20250119220243000

  • 特性

    • 可以随时写入而不删除之前的内容, 只更新寻址到的一个或多个字节
    • 电写入 (1->0)
      • 源极和漏极接地, 控制栅接高电平, 电子进入浮栅
      • 写操作每字节需要大约5ms, 而读一个字节大约0.5us
    • 电擦除 (0->1)
      • 源极和控制栅接地, 漏极接高电平, 浮栅中电子进入衬底
      • 每次擦除仅需4~6ms, 可擦除百万次

快闪存储器 (Flash Memory)

  • Flash Memory

    image-20250119220250613

  • 特性

    • 电可擦除, 与EEPROM原理类似, 优于EPROM
    • 可以在块级擦除, 不能在字节级擦除, 优于EPROM, 不如EEPROM
    • 需要先擦除再写入
  • 分类

    • NOR Flash : 数据线和地址线分开, 可以读任意字节

    • NAND Flash : 数据线和地址线共用, 只能按页读取

      image-20250119220257356

从位元到主存

寻址单元

  • 寻址单元 : 由若干相同地址的位元组成

  • 寻址模式

    • 字节 : 常用
    • 字 : 专门用途的计算机

image-20250119220305336

存储阵列

  • 存储阵列 : 由大量寻址单元组成

image-20250119220311332

芯片

  • 芯片引脚

    • Address : A0 - A19
    • Data : D0 - D7
    • Vcc : 电源
    • Vss : 地线
    • CE : 芯片允许引脚
    • Vpp : 程序电压
    • WE : 写允许
    • OE : 读允许
    • RAS : 行地址选通
    • CAS : 列地址选通

    image-20250119220317816

模块组织

  • 位扩展 : 地址线不变, 数据线增加

    image-20250119220326137

    • 使用8块4K*1bit的芯片组成4K*8bit的存储器

  • 字扩展 : 地址线增加, 数据线不变

    image-20250119220331623

    • 使用4个16K*8bit的芯片组成64K*8bit的存储器

  • 字, 位同时扩展 : 地址线增加, 数据线增加

    image-20250119220336311

    • 使用8个16K*4bit的芯片组成64K*8bit的存储器

主存

  • 插槽

    • 组合多个存储模块

如何寻址

获得总线控制权

image-20250119220342090

行访问

image-20250119220347679

列访问

image-20250119220353273

地址译码器

  • 一个n位译码器有2n种输出

  • 当所有n个寻址位都满足条件时, 该输出为1

  • 任何时候, 只有一个输出是1, 其他的都是0

image-20250119220359950

如何刷新

  • 约束 : 刷新会占用片选线, 地址线, 地址译码器

    image-20250119220411366

  • 集中式刷新

    • 停止读写操作, 并逐行刷新
    • 刷新时无法操作内存 (死区)
  • 分散式刷新

    • 在每个存储周期中, 当读写操作完成时进行刷新
    • 一次读写刷新一次, 逐行刷新
    • 会增加每个存储周期的时间
  • 异步刷新

    • 每一行各自以固定间隔 (小于最大刷新周期, 毫秒级) 刷新
    • 将DRAM的刷新安排在CPU对指令的译码阶段, 可有效避免死区
    • 效率高 : 常用