组成原理(九):存储系统之 主存储器的连接与控制
存储芯片容量有限,主存储器往往要有一定数量的芯片构成。若干芯片吗构成的主存还需要与CPU连接,才能在CPU的正确控制下完成读写操作。
1、主存容量的扩展
多片组合起来常采用位扩展法、字扩展法、字和位同时扩展法。
1.1、位扩展
位拓展是指只在位数方向拓展(加大字长),而芯片的字数和存储器的字数是一致的。
位拓展的连接方式是将各存储芯片的地址线、片选线和读写线相应的并联起来,而将各芯片的数据线单独列出。
当CPU访问该存储器时,发出的地址和控制信号同时传给所有芯片,选中的每个芯片的同一单元,相应单元的内容被同时读至数据总线的各位,或将数据总线上的内容分别同时写入相应单元。
1.2、字扩展
字拓展是指仅在字数方向拓展,字拓展将芯片的地址线、数据线、读写线并联,由片选信号来区分各芯片。
1.3、字和位同时扩展
字数和位数同时拓展的方式。
2、存储芯片的地址分配和片选
CPU对存储单元的访问,首先选择存储芯片,即进行片选;再从选中芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。
片内的字选是由CPU送出的N条地位地址线完成的,地址线直接接到所有存储芯片的地址输入端。
芯片的片选信号则大多是通过高位地址译码或直接连接产生的。
片选信号的产生可细分为线选法、全译码法和部分译码法。
2.1、线选法
线选法,用除片内寻址外的高位地址线直接分别接至各个存储芯片的片选端,当某地址线信息为0时,就选中与之对应的储存芯片。
片选地址每次寻址时只能有一位有效,不允许同时有多位有效,如此才能保证每次只选中一个芯片。
线选法的地址分配:
线选法的优点是不需要地址译码器,线路简单,选择芯片无须外加逻辑电路,仅适用于连接存储芯片较少的场合;
线选法不能充分利用系统的存储空间,且把地址空间分成相互隔离的区域,给编程代码一定的困难。
2.2、全译码法
全译码法将除片内寻址外的全部高位地址线都作为地址译码器的输入,译码器的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。
全译码法的地址分配:
全译码法的优点是每片芯片的地址范围时唯一确定的,而且是连续的,便于拓展,不会产生地址重叠的存储区。但对译码电路要求较高。
2.3、部分译码法
部分译码法,用除片内寻址的高位地址的一部分来译码产生片选信号。
3、主存和CPU的连接
3.1、主存和CPU之间的硬连接
CPU与主存的硬连接是两个部件之间联系的物理基础,主存与CPU的硬连接有3组连线:
地址总线(AB)
|
数据总线(DB)
|
控制总线(CB)
|
示意图如下:
存储器地址寄存器MAR 和 存储器数据寄存器MDR 是主存和CPU之间的接口。
MAR接收来自程序计数器PC的指令地址或来自地址形成部件的操作数地址,以确定要访问的单元;
MDR是向主存写入数据或从主存读出数据的缓冲部件。
3.2、CPU对主存的基本操作
CPU与主存之间存在软连接,即CPU向主存发出读或写指令。
CPU对主存进行读写操作时,CPU先在地址总线上给出地址信号,然后发出相应的读或写命令,并在数据总线上交换信息。
3.2.1、读操作
从CPU送来的地址所指定的存储单元中取出信息,再送给CPU,操作过程如下:
地址 → MAR → AB
|
CPU将地址信号送至地址总线
|
Read
|
CPU发读指令
|
Wait for MFC
|
等待存储器工作完成信号
|
MAR → DB → MDR
|
读出信息经数据总线送至CPU
|
3.2.2、写操作
写操作是将要写入的信息存入CPU所指定的存储单元中,凑在过程如下:
地址 → MAR → AB
|
CPU将地址信号送至地址总线
|
数据 → MDR → DB
|
CPU将要写入的数据送至数据总线
|
Write
|
CPU发写命令
|
Wait for MFC
|
等待存储器工作完成信号
|
需要匹配CPU与主存的速度,通常由两种匹配方式:同步存储器读取和异步存储器读取。上述的读写操作是异步存储器读取。
同步存储器读取,CPU与主存采用有统一时钟,同步工作。