主存

容量扩展

存储芯片 $\to$ 存储器 容量记作 $m\mathrm{k}\times n/片$

  • $m$ := 字
  • $n$ := 位/字长
字与容量

注意不要把容量等于字数! e.g. 字长为 4B,则 32KB = 8K $\times$ 4B,字数为 8K

扩展方式 位扩展 字扩展 字位同时扩展
存储芯片容量 $m\mathrm{k}\times n/片$ $m\mathrm{k}\times n/片$ $m\mathrm{k}\times n/片$
存储器容量 $m\mathrm{k}\times N$ $M\mathrm{k}\times n$ $M\mathrm{k}\times N$
芯片数量 $\lceil N/n \rceil$ $\lceil M/m \rceil$ $\lceil M/m \rceil\lceil N/n \rceil$
特殊连接 各芯片数据线 $\xleftrightarrow{依次}$ 数据总线 片选信号 $\leftrightarrow$ 外部译码器
地址复用

地址引脚上先后传递两次拼接得到地址信息,节省一半引脚

注意!地址引脚 $\neq$ 地址总线,地址总线不能地址复用!

地址引脚&数据引脚

  • 地址引脚:一般采用译码法+地址复用(先后两次传递地址信息)
    • 最少地址引脚数 = ($\log_{2}$ 字数 $m$) / 2
    • 地址引脚 +1 根,由于地址复用,内存翻 4 倍
  • 数据引脚:一般采用线选法
    • 数据引脚数 = 字长
MAR

MAR 应保证访问整个地址空间,而不是某个芯片 所以 $\mathrm{bit}(\mathrm{MAR})\geq \log_{2} \left| 地址空间 \right|$

与 CPU 连接

  1. 确定总容量
  2. 确定芯片类型&数量
  3. 分配地址线
  4. 确定片选信号

地址线

地址分配 = 片选(高位) + 字选(低位)

选择信号方式 线选法 译码器
原理 一位 for 一片
低电位选中
译码为线选
需要位数(线数) $=芯片数$ $=\log_{2}芯片数$
优点 无需译码,线路简单
缺点 地址分配不充分&浪费
必须低电位工作
字选看做只有"线选法"

数据线

注意位扩展连接即可

控制线

  1. 注意读写线是否分开
  2. 注意读写线高低电平工作
MREQ

$\bar{\mathrm{MREQ}}$ := 访存信号线

  • 低电平: 选择存储芯片
  • 高电平: IO

通信方式

  • 异步连接
    1. CPU $\xrightarrow{地址}$ 主存:译码
    2. CPU:等待 $\xrightarrow{\mathrm{R/W}命令}$ 主存
    3. CPU $\xleftarrow{完成信号}$ 主存
    4. CPU $\xleftarrow{数据}$ 主存
  • 同步连接
    • 同一时钟信号控制
    • 无需应答信号