存储器
存储器概述¶
数据存储器在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}\)
存储器常用技术指标¶
- 存储容量:存放二进制数的总位数
- 存储速度:存取时间(存储器的访问时间)、存取周期(连续两次独立的存储器操作所需的最小间隔时间)
半导体存储芯片的基本结构¶
存储器与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为用户程序区
- 合理选用上述芯片
- 详细画出存储芯片的片选逻辑