[toc]
一、主存容量的拓展
步骤:
- 计算所需芯片数目
- 确定拓展方式
- 确定片选逻辑并连线实现
- 分析存储地址空间映像
1.计算所需芯片数目
公式:
2.确定拓展方式
如果$M\neq1$则需要字拓展,如果$N\neq1$则需要位拓展
3.确定片选逻辑并连线实现
片选是指集成电路芯片能否工作的一个控制信号该信号的产生逻辑即片选逻辑。一般由CPU的地址信号和一些控制信号通过组合逻辑电路产生,同时考虑时序关系
连线主要是指CPU的三总线与存储器芯片的信号引脚的连接三总线是指:数据总线,地址总线,控制总线;
存储芯片的信号:片选信号与读写控制信号
CS:片选线
WE:读写控制线
3.1 位拓展的连接
如果用64K*1的SRAM芯片组成64K*8的的存储器,所需的芯片数为1*8=8个。因为$N\neq1$所以需要位拓展
组成的存储器具有$64K=2^{16}$个存储单元,每个存储单元具有8个位数
CPU将提供16根地址线,8根数据线与存储器相连;一个存储芯片则具有16根地址线,1根数据线。
具体的连接方法是:每个芯片的地址线$A_{15}\sim A_0$都是分别连在一起(例如所有芯片的$A_0$地址线连在一个,这样每次都能选到所有芯片的同一位),每个芯片的片选信号$\overline{CS}$以及读写控制信号$\overline{WE}$也都分别连在一起,只有数据线$D_7\sim D_0$独立,每片芯片提供一位 具体细节:当CPU访问存储器时,发出的地址信号传到8个芯片,选中8个芯片的同一单元,8个单元各提供一位数据,被读到数据总线,或将数据总线的内容写入 注意:所有的片选信号和读写控制信号都是连在一起的 ![image-20210616151112148](../img/image-20210616151112148.png) ### 3.2 字拓展的连接 如用16K\*8的SRAM组成64K\*8的存储器,则需要4\*1=4个芯片,由于$M\neq1$需要字拓展 同样的,CPU将提供16根地址线,8根数据线,而每个芯片提供14根地址线,8根数据线 具体的连接方法是:4个芯片的地址线$A_{13}\sim A_0$,数据线$D_7\sim D_0$和读写控制信号都是独立的(4个芯片都并联连着$A_{13}\sim A_0,D_7\sim D_0$),而CPU比芯片多出来的$A_{15},A_{14}$两个地址线经过2-4译码产生4个片选信号,选中一个芯片(由于芯片提供8位,而组成的存储器也只提供8位,所以一个芯片就能够提供8位数据,只需要选中一个芯片即可) 注意:片选信号都是分开的 ![image-20210616152700819](../img/image-20210616152700819.png) ## 4.地址存储映像分析 - 存储器连线完毕后,每个芯片中的每个存储单元在整个CPU地址空间中的位置也就确定下来,把每个芯片所对应的地址范围描述出来就是地址的存储映像分析 - 基本方法是:将所有地址信号排列出来,将所有可能的变化分析写出,再总结每个芯片对应的范围 ### 4.1 字拓展的地址映像 续字拓展连接的例子:同一时间4个芯片中只有1个芯片能被选中,CPU提供的$A_{15}\sim A_{0}$的16位地址线中,$A_{15}、A_{14}$用作片选,$A_{13}\sim A_{0}$用来选中芯片的某个地址,固称片内地址例如第一片的地址映像为:
- 第一片
- 最低地址:$00|00\ 0000\ 0000\ 0000B$
- 最高地址:$00|11\ 1111\ 1111\ 1111B$
二、存储芯片的地址分配和片选
字选:从选中的芯片中按照地址码选择出相应的存储单元,以进行数据的存取
片选:选择存储芯片
存储芯片的片选信号大都通过高位地址译码产生
片选信号的译码方法分为:
- 线选法
- 全译码法
- 部分译码法
1. 线选法
除了片内寻址外的高位地址线直接分别接到各个存储芯片的片选段
每次寻址时只能有一位有效,以保证每次只选中一个芯片(或组)
优点:(1)不需要地址译码器;(2)线路简单
缺点:(1)仅适用连接存储芯片较少的场合;(2)给编程带来了一定的困难
2.全译码法
除了片内寻址外的全部高位地址线都作为地址译码器的输入,输出作为各芯片的片选信号
优点:(1)每片芯片(或组)的地址范围是唯一确定的;而且是连续的,所以便于拓展,不会产生地址重叠的存储区
缺点:对译码电路要求较高
3.部分译码法
除了片内寻址外的部分高位地址线作为地址译码器的输入,输出作为各芯片的片选信号
但由于只用到了部分的高位地址线,会出现地址重叠,例如CPU的地址线有20根,14根用作片内寻址,2根用来产生片选信号,则无论剩下的4根高位地址线取什么值,只要$A_{14},A_{15}$这两根确定了,选择芯片就确定了,造成了一个存储单元对应$2^{(20-16)}=2^4$个地址