Chapter 8 Cache(4)

这一节是讲解Structure of Larger Memories的。

Contents of this lecture

English 中文
Static Memory Systems 静态存储系统
How to connect a number of static memory chips to form a much larger memory? 如何连接多个静态存储芯片,形成一个更大的内存?
Dynamic Memory Systems 动态存储系统
How to connect a number of dynamic memory chips to form a much larger memory? 如何连接多个动态存储芯片,形成一个更大的内存?

静态存储系统 (Static Memory System)

  1. 位扩展法 (Bit Expansion Method)

    • 概念:芯片每个存储单元的位数小于存储器字长,需进行位扩展。

    • 例子:用 1 M × 1 位存储芯片组成 1 M × 8 位存储器。

      • 共需 8 片 1M × 1 位的芯片,每片存储同一位权的数据。
      • 片的 I/O 端接 D₀ 到 D₇。
      • 访问芯片需 20 位地址码 A₁₉ 到 A₀。
      • 读写控制信号:R/W。
      image-20241123135742249
  2. 字扩展法 (Word Expansion Method)

    • 概念:芯片每个存储单元的位数等于存储器字长,但容量不足,需进行字扩展。

    • 例子:用 256 K × 8 位芯片组成 1 M × 8 位存储器。

      • 共需 4 片 256K × 8 位的芯片(1MB / 256KB = 4)。
      • 1MB 容量需 20 位地址码 A₁₉ 到 A₀,而 256KB 芯片需 18 位片内地址码 A₁₇ 到 A₀。
      • 用高二位地址 A₁₉ 和 A₁₈ 经 2:4 译码器选择芯片进行读写。
      • 每片 8 条 I/O 线分别接 D₇ 到 D₀。
      image-20241123135856069
  3. 字位同时扩展法 (Word and Bit Expansion Method)

    • 概念:单片芯片的字数和位数均小于主存的容量要求,需进行字、位的扩展。

    • 例子:用 512K × 8 位的存储器芯片组成 2M × 32 位的存储器。

      • 共需 8 片 512K × 8 位的芯片,组成 4 × 4 的阵列。
      • 2M × 32 容量需 21 位地址码 A₂₀ 到 A₀,而 512KB 芯片需 19 位片内地址码 A₁₈ 到 A₀。
      • 用高二位地址 A₂₀ 和 A₁₉ 经 2:4 译码器选择一行芯片进行读写。
      • 每片 8 条 I/O 线分别接 D₇ 到 D₀。
      image-20241123140010617
  4. 结论

    • 假设内存单元的容量为 M × N 位,如果使用 l × k 位的芯片来构建,所需的芯片数量为 (M/l) × (N/k)。

这些方法帮助设计和组织更大容量的存储器,并且实现了多个存储单元的组合。

动态存储系统 (Dynamic Memory System)

  1. 大容量动态存储系统的组织
    • 大容量动态存储系统的组织基本上与静态存储系统相同。
  2. 封装方式:内存模块
    • 内存模块:将内存芯片组装在一个小板上,并插入计算机主板上的插槽。
  3. SIMM(单排内存模块,Single In-line Memory Module)
    • SIMM 是一种基本的 DRAM 封装类型,适用于大多数旧系统。
    • SIMM 可以是单面(只有一面有内存芯片)或双面(两面都有内存芯片)。
      • 30 引脚 SIMM:1MB,8 位数据,外加 1 位奇偶校验;单面。
      • 72 引脚 SIMM:1MB,4MB,16MB(单面);2MB,8MB,32MB(双面);32 位数据,外加 4 位用于奇偶校验/ECC。
  4. SIMM 示例
    • 一个 32MB 的单排内存模块(SIMM),两个芯片控制这个 SIMM。
  5. DIMM(双排内存模块,Dual In-line Memory Module)
    • 当前,DIMM 是内存封装的标准方式。
    • DIMM 能一次传输 64 位数据。
    • 常见的 DIMM 类型:
      • 72 引脚、144 引脚、200 引脚 DIMM:用于 SO DIMM(小型轮廓 DIMM)。
      • 168 引脚 DIMM:用于 FPM(快速页模式)DRAM,EDO(扩展数据输出)DRAM 和 SDRAM。
      • 184 引脚 DIMM:用于 DDR SDRAM。
      • 240 引脚 DIMM:用于 DDR2 和 DDR3 SDRAM。
      • 284 引脚 DIMM:用于 DDR4 SDRAM。
      • 288 引脚 DIMM:用于 DDR5 SDRAM。
  6. DIMM 示例
    • 两种类型的 DIMM:一个 168 引脚 SDRAM 模块(顶部)和一个 184 引脚 DDR SDRAM 模块(底部)。

这些内存封装技术有助于提高内存的传输速率和容量,满足不同计算需求的需求。

示例说明

地址总线与控制总线:

  • CPU 地址总线:16根 (A15~A0),其中A0为低位。
  • 双向数据总线:8根 (D7~D0)。
  • 控制总线
    • MREQ:允许访存,低电平有效。
    • R/W:高电平为读命令,低电平为写命令。

主存地址空间分配:

  • 0000H ~ 3FFFH:系统程序区,由只读存储器(EPROM)组成。
  • 4000H ~ 4FFFH:系统程序工作区,由 SRAM 组成。
  • 6000H ~ 9FFFH:用户程序区,由 SRAM 组成。
  • 地址空间按字节编址。

存储器芯片:

  1. EPROM:8K × 8 位,控制端只有 CS(片选信号)。
  2. SRAM:有多种容量配置:
    • 16K × 1 位
    • 2K × 8 位
    • 4K × 8 位
    • 8K × 8 位

主存设计:

  • 从上述存储器芯片中选择合适的芯片设计计算机主存储器。
  • 需要绘制 主存储器逻辑框图,并设计 选片逻辑,可选用门电路及 3:8 译码器(如 74 LS138),连接到 CPU。

主存地址空间:

  • 0000H ~ 3FFFH:16KB 的 EPROM 存储。
  • 4000H ~ 4FFFH:4KB 的 SRAM 存储。
  • 6000H ~ 9FFFH:16KB 的 SRAM 存储。

存储器选用与片选逻辑:

  • EPROM:可以选择 1片 8K × 8 位 EPROM 存储器,覆盖 0000H ~ 3FFFH 的地址区。
  • SRAM
    • 2片 8K × 8 位 SRAM,分别覆盖 4000H ~ 4FFFH6000H ~ 9FFFH 的地址区。
    • 选片逻辑:使用 3:8 译码器(74 LS138),根据地址选择相应的存储器片。

通过合理的选片逻辑,将上述存储器芯片合理地分配到主存的不同区域,确保每个存储区域都能访问到正确的存储器。

image-20241123140843691

Quiz

问题 1:

考虑使用 512K × 16 存储芯片构建 16M × 128 内存。需要多少行存储芯片?

解析

  • 总内存容量:16M × 128
  • 每个芯片容量:512K × 16
  • 所需的行数 = 总容量 / 每个芯片的容量 $ 16M / 512K = 32 $
  • 答案:C. 32

问题 2:

考虑使用 512K × 8 存储芯片构建 64M × 16 内存。需要多少个存储芯片?

解析

  • 总内存容量:64M × 16
  • 每个芯片容量:512K × 8
  • 所需的存储芯片数量 = 总容量 / 每个芯片的容量 $ (64M × 16) / (512K × 8) = 256 $
  • 答案:D. 256

问题 3:

假设一个内存可以使用 20 位地址访问,其字长为 64 位,并且是按字寻址的。假设我们使用 256K × 8 位的 SRAM 芯片来构成这个内存。

1. 该内存能存储多少字节?

  • 总地址空间:$ 2^{20} $
  • 字长:64 位 = 8 字节
  • 因为是按字寻址,所以总存储容量 = $ 2^{20} $ $ = 2^{20} = 8 $

答案:该内存可以存储 8 MB

2. 需要多少个 SRAM 芯片?

  • 每个 SRAM 芯片的存储容量:$ 256K = 256K $
  • 总存储容量:8 MB = $ 8 $
  • 需要的芯片数量 = 总存储容量 / 每个芯片的存储容量 $ 8 / 256 = 32 $

答案:需要 32 片 SRAM 芯片。

3. 需要多少地址引脚进行芯片选择?为什么?

  • 每片 SRAM 芯片的地址位数:18 位地址(对应于 256K 存储单元)
  • 总地址位数:20 位地址
  • 低 18 位地址直接接芯片的 18 位地址端,高 2 位地址通过 2:4 译码器来选择芯片。
  • 需要 2 位 地址引脚来进行芯片选择。

答案:需要 2 个地址引脚来进行芯片选择。

4. 画出使用 256K × 8 位 SRAM 芯片实现此内存的图形结构。

这个问题需要绘制图形,您可以通过如下方式理解:

  • 20 位地址中的低 18 位连接到每片 SRAM 芯片的地址端。
  • 高 2 位地址通过 2:4 译码器来选择芯片。
  • 数据线连接到所有 32 片 SRAM 芯片的相应端口。

问题 4:

假设有两种类型的静态存储芯片:128K × 8 位(共 4 片)和 512K × 4 位(共 2 片)。请使用这些内存芯片实现一个 512K × 16 位的内存,并画出该内存的组织结构图。

做会这道题,这一节的知识点你就掌握了。

解决方案:

为了构建一个 512K × 16 位的内存,我们可以按以下方式组合芯片:

  • 需要 2 片 512K × 4 位的芯片,和 4 片 128K × 8 位的芯片。
  • 每片 512K × 4 位芯片可以提供 4 位的数据宽度,而每片 128K × 8 位芯片可以提供 8 位的数据宽度。

内存组织结构:

  • 地址线:
    • 需要 18 位地址来寻址 512K 单元。低 16 位用于访问单元的特定位置,高 2 位用于选择芯片。
    • 通过 2:4 译码器来选择具体的芯片。
  • 数据线:
    • 通过组合 2 片 512K × 4 位芯片和 4 片 128K × 8 位芯片来实现 16 位的数据宽度。

图示(组织图):

  1. 两片 512K × 4 位芯片:
    • 这两片芯片连接到数据总线的 4 位宽度上。
  2. 四片 128K × 8 位芯片:
    • 这四片芯片提供额外的 8 位数据宽度。
  3. 译码器:
    • 使用 2:4 译码器将高位地址(A17, A18)连接到芯片的选择信号上。
image-20241123141426942