【连接原理】
主存储器通过数据总线、地址总线、控制总线与 CPU 连接
其中,数据总线的位数与工作频率的乘积正比于数据传输率,地址总线的位数决定了可寻址的最大内存空间,控制总线指出了总线周期的类型与本次输入/输出操作完成的时刻
【主存容量扩展】
由于单个存储芯片的容量是有限的,它在字数或字长方面与实际存储器的要求都有差距,因此,需要在字和位两方面进行扩充才能满足实际存储器的容量要求
位扩展法
CPU 的数据线数与存储芯片的数据位数不一定相等,此时必须对存储芯片扩位,即进行位扩展,用多个存储器件对字长进行扩充,增加存储字长,使其数据位数与 CPU 的数据线数相等。
位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出
如下图所示,用 $8$ 片 $8K\times 1$ 位的 RAM 芯片组成 $8K\times 8$ 位的存储器,$8$ 片 RAM 芯片的地址线 $A_{12}\sim A_o$、$\overline{CS}$、$\overline{WE}$ 都分别连在一起,每片的数据线依次作为 CPU 数据线的一位
在采用位扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同,在某一时刻选中所有芯片,因此片选信号 $\overline{CS}$ 要连接到所有芯片
字扩展法
字扩展指的是增加存储器中字的数量,而位数不变
字扩展将芯片的地址线、数据线、读写控制线相应并联,而由片选信号来区分各芯片的地址范围
如图下图所示,用 $4$ 片 $16K\times 8$ 位的 RAM 芯片组成 $64K\times 8$ 位的存储器,$4$ 片 RAM 芯片的数据线 $D_0\sim D_7$ 和 $\overline{WE}$ 都分别连在一起
将 $A_{15}A_{14}$ 用做片选信号,当 $A_{15}A_{14}=00$ 时,译码器输出端 $0$ 有效,选中最左边的 $1$ 号芯片,当 $A_{15}A_{14}=01$ 时,译码器输出端 $1$ 有效,选中 $2$ 号芯片,依次类推,使得在同一时间内只能有一个芯片被选中
各芯片的地址分配如下:
- 第一片:最低地址 $00,00000000000000$,最高地址 $00,11111111111111$($16$ 位)
- 第二片:最低地址 $01,00000000000000$,最高地址 $01,11111111111111$($16$ 位)
- 第三片:最低地址 $10,00000000000000$,最高地址 $10,11111111111111$($16$ 位)
- 第四片:最低地址 $11,00000000000000$,最高地址 $11,11111111111111$($16$ 位)
在采用字扩展时,各芯片连接地址线的方式相同,连接数据线的方式也相同,但在同一时刻只需选中部分芯片,因此通过片选信号 $\overline{CS}$ 或采用译码器设计连接到相应芯片即可
字位同时扩展法
实际上,存储器往往需要字和位同时扩充,也就是既增加存储字的数量,又增加存储字长
如图下图所示,用 $8$ 片 $16K\times 4$ 位的 RAM 芯片组成 $64K\times 8$ 位的存储器,每两片构成一组 $16K\times 8$ 位的存储器(位扩展),$4$ 组便构成 $64K\times 8$ 位的存储器(字扩展)
地址线 $A_{15}A_{14}$ 经译码器得到 $4$ 个片选信号,当 $A_{15}A_{14}=00$ 时,输出端 $0$ 有效,选中第一组的芯片(①和②),当 $A_{15}A_{14}=01$ 时,输出端 $1$ 有效,选中第二组的芯片(③和④),依次类推
采用字位同时扩展时,各芯片连接地址线的方式相同,但连接数据线的方式不同,而且需要通过片选信号 $\overline{CS}$ 或采用译码器设计连接到相应的芯片
【存储芯片的地址分配与片选】
CPU 要实现对存储单元的访问,首先要选择存储芯片,即进行片选,然后再为选中的芯片依地址码选择相应的存储单元,以进行数据的存取,即进行字选
片内的字选通常是由 CPU 送出的 $N$ 条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端,而片选信号是通过线选法或译码片选法产生的
线选法
线选法用除片内寻址外的高位地址线直接(或经反相器)分别接至各个存储芯片的片选端,当某地址线信息为 $0$ 时,就选中与之对应的存储芯片
这些片选地址线每次寻址时只能有一位有效,不允许同时有多位有效,这样才能保证每次只选中一个芯片(或芯片组)
线选法不需要地址译码器,线路简单,但地址空间不连续,同时,要求选片的地址线必须分时为低电平,否则不能工作,这不能充分利用系统的存储器空间,造成地址资源的浪费
假设 $4$ 片 $2K\times 8$ 位存储芯片用线选法构成 $8K\times 8$ 位存储器,那么各芯片的片选信号通过线选法进行地址分配,各地址如下表所示
芯片 | $A_{14}\sim A_{11}$ |
---|---|
$0$ | $1110$ |
$1$ | $1101$ |
$2$ | $1011$ |
$3$ | $0111$ |
译码片选法
译码片选法用除片内寻址外的高位地址线通过地址译码器芯片产生片选信号
如用 $8$ 片 $8K\times 8$ 位的存储芯片组成 $64K\times 8$ 位存储器(地址线为 $16$ 位,数据线为 $8$ 位),需要 $8$ 个片选信号
若采用线选法,除去片内寻址的 $13$ 位地址线,仅余高 $3$ 位,不足以产生 $8$ 个片选信号
【存储器与 CPU 的连接】
1.合理选择存储芯片
要组成一个主存系统,选择存储芯片是第一步,主要指存储芯片的类型(RAM 或 ROM)和数量的选择
通常选用 ROM 存放系统程序、标准子程序和各类常数,RAM 则是为用户编程而设置的
此外,在考虑芯片数量时,要尽量使连线简单、方便
2.地址线的连接
存储芯片的容量不同,其地址线数也不同,而 CPU 的地址线数往往比存储芯片的地址线数要多
通常将 CPU 地址线的低位与存储芯片的地址线相连,以选择芯片中的某一单元(字选),这部分的译码是由芯片片内逻辑完成的
而 CPU 地址线的高位则在扩充存储芯片时用,以用来选择存储芯片(片选),这部分译码由外接译码器逻辑完成
例如,设 CPU 地址线为 $16$ 位,即 $A_{15}\sim A_0$,$1K\times 4$ 位的存储芯片仅有 $10$ 根地址线,此时,可将 CPU 的低位地址 $A_9\sim A_0$ 与存储芯片的地址线 $A_9\sim A_0$ 相连
3.数据线的连接
CPU 的数据线与存储芯片的数据线数不一定相等,在相等时可直接相连,在不等时必须对存储芯片扩位,使其数据位数与CPU的数据线数相等
4.读写命令线的连接
CPU 读写命令线一般可直接与存储芯片的读写控制端相连,通常高电平为读,低电平为写
有些 CPU 的读写命令线是分开的(读为 $\overline{RD}$,写为 $\overline{WE}$,均为低电平有效),此时 CPU 的读命令线应与存储芯片的允许读控制端相连,而 CPU 的写命令线则应与存储芯片的允许写控制端相连
5.片选线的连接
片选线的连接是 CPU 与存储芯片连接的关键
存储器由许多存储芯片叠加而成,哪一片被选中完全取决于该存储芯片的片选控制端 $\overline{CS}$ 是否能接收到来自CPU的片选有效信号
片选有效信号与 CPU 的访存控制信号 $\overline{MREQ}$(低电平有效)有关,因为只有当 CPU 要求访存时,才要求选中存储芯片
若 CPU 访问 I/O,则 $\overline{MREQ}$ 为高,表示不要求存储器工作