主存储器的连接与控制


[toc]

一、主存容量的拓展

步骤:

  1. 计算所需芯片数目
  2. 确定拓展方式
  3. 确定片选逻辑并连线实现
  4. 分析存储地址空间映像

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. 线选法
  2. 全译码法
  3. 部分译码法

1. 线选法

除了片内寻址外的高位地址线直接分别接到各个存储芯片的片选段

每次寻址时只能有一位有效,以保证每次只选中一个芯片(或组)

优点:(1)不需要地址译码器;(2)线路简单

缺点:(1)仅适用连接存储芯片较少的场合;(2)给编程带来了一定的困难

2.全译码法

除了片内寻址外的全部高位地址线都作为地址译码器的输入,输出作为各芯片的片选信号

优点:(1)每片芯片(或组)的地址范围是唯一确定的;而且是连续的,所以便于拓展,不会产生地址重叠的存储区

缺点:对译码电路要求较高

3.部分译码法

除了片内寻址外的部分高位地址线作为地址译码器的输入,输出作为各芯片的片选信号

但由于只用到了部分的高位地址线,会出现地址重叠,例如CPU的地址线有20根,14根用作片内寻址,2根用来产生片选信号,则无论剩下的4根高位地址线取什么值,只要$A_{14},A_{15}$这两根确定了,选择芯片就确定了,造成了一个存储单元对应$2^{(20-16)}=2^4$个地址