跳转至

存储器

存储器概述

数据存储器在CPU外,也称为内存

存储器分类

  • 易失
    • 半导体存储器
  • 非易失
    • 磁表面存储器
    • 磁芯存储器
    • 光盘存储器

易失性存储器:在系统停止供电的时候数据丢失,比如内存、cache
非易失性存储:掉电后,数据不丢失的存储器,比如磁盘,固态硬盘

按照存取方式分类有:

  • 随机访问存储器——存取时间与物理地址无关(常用)
    • 随机存储器,在程序执行过程中可读可写
    • 只读存储器,比如ROM
  • 串行访问存储器——存取时间和物理地址有关

按照功能分类:

\[存储器\begin{cases} 主存储器\begin{cases} RAM\\\\ROM \end{cases}\\ Flash Memory(闪存) \\cache(高速缓冲存储器) \\辅助存储器 \end{cases}\]

程序运行的局部性原理

  • 在短时间内,最近被访问过的程序和数据很有可能被再次访问
  • 在存储空间上,这些被访问的程序和数据往往集中在一小存储区
  • 在访问顺存,指令顺序执行比分支执行的可能性大(比例约为5:1)

主存储器

主存储器的基本构成

MDR(主存数据寄存器)通过数据总线将数据存储至主存

MAR(主存地址寄存器)通过地址总线访问主存数据

主存中存储单元地址的分配

假如有16MB(\(2^{27}\))的存储器,

如果按照字节寻址,寻址范围为\(2^{24}\)

如果按照字(16位)寻址,寻址范围为\(2^{23}\)

存储器常用技术指标

  1. 存储容量:存放二进制数的总位数
  2. 存储速度:存取时间(存储器的访问时间)、存取周期(连续两次独立的存储器操作所需的最小间隔时间)

半导体存储芯片的基本结构

存储器与CPU的连接

如何扩展存储器的容量?

  • 采用位扩展——增加存储的字长

比如:使用两个1Kx4位存储芯片组成1Kx8位的存储器

1K意味着10根地址线(\(2^10\)),8位代表有8根数据线

  • 采用字扩展——增加存储字数量

比如:使用两个1Kx8位存储芯片组成2Kx8位的存储器

2K意味着11根地址线

  • 采用字、位扩展

比如:用8个1Kx4位存储芯片组成4Kx8位的存储器

主存储器与CPU的连接

  • 地址线的连接:通常将CPU 地址线低位与存储芯片地址线相连,高位用于存储芯片扩充,或用做片选信号等。
  • 数据线的连接:存储芯片与CPU的数据线数不等时,必须对存储芯片进行位扩展,使二者相等。
  • 读/写控制线的连接
  • 片选线的连接
  • 合理选择存储芯片
  • 其他:时序、负载等

例:假设CPU有16根地址线,8根数据线,\(\overline{MREQ}\)为访存控制信号(低电平有效),\(\overline{WR}\)为读/写控制信号(高电平为读,低电平为写),下列有芯片若干:RAM:1Kx4位;4Kx8位;8Kx8位;ROM:2Kx8位;4Kx8位;8Kx8位;74LS138译码器和各种门电路。请画出CPU与存储器的连接图

要求:

  • 主存地址空间分配
    • 6000H~67FFH为系统程序区
    • 6800H~6BFFH为用户程序区
  • 合理选用上述芯片
  • 详细画出存储芯片的片选逻辑