存储器分类
1.按存储介质分类
(1)半导体存储器 TTL、MOS (易失)
(2)磁表面存储器 磁头、载磁体(非易失)
(3)磁芯存储器 硬磁材料、环状元件(非易失)
2.按存取方式分类
(1)存取时间与物理地址无关(随机访问)
- 随机存储器 可读可写
- 只读存储器 只读
(2)存取时间与物理地址有关(串行访问)
- 顺序存取存储器 磁带
- 直接存取存储器 磁盘
3.按在计算机中的作用分类
存储器的层次结构
1.存储器三个主要特性的关系
从这上面我们能看到存储器分了很多种,为什么要分这么多种?因为没有一种存储器能同时满足价格低,速度快,容量大三个要求,因此我们可以利用主存的速度,辅存的容量以及辅存的价格
2.缓存——主存层次和主存——辅存层次
时间局部性:一段程序在一段时间内大概率会被反复使用
空间局部性:一段程序相邻空间代码大概率会被使用
现代存储器的运行速度比上图快多了,图上只是给一个参考,各个存储器之间的速度量级比较
主存储器
1.主存储器的基本组成
MAR中保存了我们要访问的存储单元的地址,必须经过译码器译码以后才能选择指定的存储单元。
2.CPU和主存的关系
数据总线连接的是MDR和主存。地址总线连接的是MAR和主存。数据总线是双向的,地址总线是单向的。
读/写为控制信号线。后面还会讲一种。
3.主存中存储单元地址的分配
分配方式有两种:大端(大尾)方式;小端(小尾)方式。
地址线24根,按字节寻址范围为224 =16M
若字长32位,则一个字有4个字节,所以要留2根地址线指出该字中的哪个字节(00,01,10,11),即寻址范围为$2^{24−2}=4M$
若字长16位,则一个字有2个字节,所以要留1根地址线指出该字中的哪个字节(0,1),即寻址范围为$2^{24−1}=8M$
4.主存的技术指标
(1)存储容量
主存存放二进制代码的总位数
(2)存储速度
- 存储时间 存储器的访问时间(读出时间,写入时间)
- 存取周期 连续两次独立的存储器操作,读或写所需的最小时间间隔
(3)存储器的带宽
某段时间内,能读出或者写入的总位数。单位:位/秒
半导体芯片
片选线的作用:芯片选择信号,指出了此次操作的地址是不是此芯片内部的地址。$\overline {CS} \overline {CE}$低电平有效。CE(chip select)芯片使能信号,CS(chip select)芯片选择信号
地址线(单向)和数据线(双向)与芯片的容量密切相关, 举几个例子:
读写控制线:可能为一根,也可能为两根;如果为一根$\overline {WE}$高电平时读,低电平时写。如果为两根则$\overline {WE}$低电平写,$\overline {OE}$低电平读
存储芯片片选线的作用
处理器地址分配的方法通常有两种:线选法和译码法
线选法
所谓线选法, 就是直接以系统的地址线作为存储器芯片的片选信号,为此只需把用到的地址线与存储器芯片的片选端直接相连即可
因为地址为65535,对应最后一片芯片,所以最后一片芯片对应的片选信号应该是低电平(低电平有效),其他芯片的片选信号应该是高电平
我们分析一下线选法的缺点,假设有两片存储芯片,芯片容量都是1K×4位,CPU地址线有12根,那么刚好$A_0~A_9$作为地址线与两片存储芯片直接相连,$A_{10}$连第一片存储芯片的片选信号$\overline {CE_{0}}$,$A_{11}$连第二片存储芯片的片选信号$\overline {CE_{1}}$,那么第一片有效的二进制数据范围为(从左到右依次是高位到低位):
1000 0000 0000~1011 1111 1111(800H~BFFH)
同样的,第二片有效的二进制数据范围为:
0100 0000 0000~0111 1111 1111(400H~9FFH)
因为最高位两位作为片选信号,低位有效,这就导致了其中很大一部分数据位浪费
译码法
所谓译码法,就是利用2-4译码器或3-8译码器进行译码。以2-4译码器为例,首先看一下2-4译码器的真值表
A B | $\overline {Y3}$ $\overline {Y2}$ $\overline {Y1}$ $\overline {Y0}$ |
---|---|
0 0 | 1 1 1 0 |
0 1 | 1 1 0 1 |
1 0 | 1 0 1 1 |
1 1 | 0 1 1 1 |
译码法相较于线选法就能很好解决数据位浪费的问题,假如现在有四片芯片,每一片的规格都是1K×4位,CPU地址线还是12根,利用2-4译码器,那么第四片芯片的数据范围为(从做左到右依次是高位到低位):
0000 0000 0000~0011 1111 1111(000H~3FFH)
第三片芯片的数据范围为:
0100 0000 0000~0111 1111 1111(400H~7FFH)
第二片芯片的数据范围为:
1000 0000 0000~1011 1111 1111(800H~BFFH)
第一片芯片的数据范围为:
1100 0000 0000~1111 1111 1111(C00H~FFFH)
可以看到,所有的数据位都被用上了,完全没有浪费
5.存储器容量的扩展
1.位扩展
位扩展的目的是为了增加存储字长。
位扩展相本质是将多片存储芯片并联,连接的地址线相同,线选信号相同,不同的是数据线
2.字扩展
字扩展的目的是为了增加存储字的数量
字扩展的本质是将多片存储芯片串联,连接的数据线相同,低位地址线相同,不同的是片选信号