由于存储芯片的容量有限,主存储器往往要是由一定数量的芯片构成的位扩展:位扩展是指只在位数方面扩展(加大字长),而芯片的字数和存储器的字数。位扩展的连接方式是将各存储芯片的地址线、片选线和读写线相应地并联起来,而将各芯片的数据线单独列出字扩展:字扩展是指仅在字数方面扩展,而位数不变。字扩展将芯片的地址线、数据线、读写控制线并联,而片选信号来区分各个芯片字和位同时扩展:当构成一个容量较大的容器时,往往需要在字数方向和位数方向上同时扩展。
CPU要实现对存储单元的访问,首先要选择存储芯片,即进行片选;然后再从选中的芯片中依地址码选择出相应的存储单元,以进行数据的存取,这称为字选。片内的字选是由CPU送出的N条低位地址线完成的,地址线直接接到所有存储芯片的地址输入端,而存储芯片的片选信号则大多是通过高位地址译码后产生的。
线选法:
线选法就是用除片内寻址外的高位地址线直接分别接至各个存储芯片的片选端,当某地址线信息为0时,就选中与之对应的存储芯片。这些片选地址线每次寻址时只能有一位有效,不允许同时有多位有效,这样才能保证每次只选中一个芯片。线选法不能充分利用系统的存储器空间,把地址空间分成了相互隔离的区域,给编程带来了一定困难。
全译码法:
全译码法将除片内寻址外的全部高位地址线都作为地址译码器的输入,译码器的输出作为各芯片的片选信号,将它们分别接到存储芯片的片选端,以实现对存储芯片的选择。全译码法的优点是每片芯片的地址范围是唯一确定的,而且是连续的,也便于扩展,不会产生地址重叠的存储区,但全译码法对译码电路要求较高。
部分译码法:所谓部分译码法即用除片内寻址外的高位地址的一部分来译码产生片选信号,部分译码法会产生地址重叠。
主存与CPU之间的硬连接:主存与CPU的硬连接有三组连线:地址总线(AB)、数据总线(DB)和控制总线(CB)。把主存看作一个黑盒子,存储器地址寄存器(MAR)和存储器数据寄存器(MDR)是主存和CPU之间的接口。MAR可以接收由程序计数器(PC)的指令地址或来自运算器的操作数的地址,以确定要访问的单元。MDR是向主存写入数据或从主存读出数据的缓冲部件。MAR和MDR从功能上看属于主存,但通常放在CPU内。
CPU对主存的基本操作:CPU对主存进行读写操作时,首先CPU在地址总线上给出地址信号,然后发出相应的读写命令,并在数据总线上交换信息。读写基本操作如下:
读:读操作是指从CPU送来的地址所指定的存储单元中取出信息,再送给CPU,其操作过程如下:
地址-->MAR--ABCPU将地址信号送至地址总线
WaitForMFC等待存储器工作完成信号
M(MAR)-->DB-->MDR读出信息经数据总线至CPU
写:写操作是指将要写入的信息存入CPU所指定的存储单元中,其操作过程是:
地址-->MAR-->ABCPU将地址信号送至地址总线
数据-->MDR-->DBCPU将要写入的数据送至数据总线
WaitForMFC等待存储器工作完成信号
CPU与主存之间的速度匹配:同步存储器读取和异步存储器读取。
异步存储器读取:CPU和主存间没有统一的时钟,由主存工作完成信号(MFC)通知CPU"主存工作已完成"。
同步存储器读取:CPU和主存采用统一时钟,同步工作,因为主存速度较慢,所以CPU与之配合必须放慢速度,在这种存储器中,不需要主存工作完成信号。