一、存储器的模块化组织
一个由若干个模块组成的主存储器是线性编址的。
这些地址在各模块有两种安排方式:一种是顺序方式,一种是交叉方式。 点击演示
顺序方式:某个模块进行存取时,其他模块不工作,某一模块出现故障时,其他模块可以照常工作,通过增添模块来扩充存储器容量比较方便。但各模块串行工作,存储器的带宽受到了限制。
交叉方式:地址码的低位字段经过译码选择不同的模块,而高位字段指向相应模块内的存储字。连续地址分布在相邻的不同模块内,同一个模块内的地址都是不连续的。对连续字的成块传送可实现多模块流水式并行存取,大大提高存储器的带宽。
二、多模块交叉存储器的基本结构?
四模块交叉存储器结构框图演示 点击演示
每个模块各自以等同的方式与CPU传送信息。CPU同时访问四个模块,由存储器控制部件控制它们分时使用数据总线进行信息传递。这是一种并行存储器结构。
下面做定量分析:我们认为模块字长等于数据总线宽度,模块存取一个字的存储周期为T,总线传送周期为τ,存储器的交叉模块数为m,为了实现流水线方式存取,应当满足
T=mτ (m=T/τ称为交叉存取度)
交叉存储器要求其模块数必须大于或等于m,以保证启动某模块后经mτ时间再次启动该模块时,它的上次存取操作已
经完成。这样,连续读取m 个字所需的时间为
t1=T+(m-1)τ
而顺序方式存储器连续读取m个字所需时间为t2=mT。交叉存储器的带宽确实大大提高了。
m=4的流水线方式存取示意图如下
图3.31 流水线方式存取示意图
【例4】 设存储器容量为32字,字长64位,模块数m=4,分别用顺序方式和交叉方式进行组织。存储周期T=200ns,数据总线宽度为64位,总线传送周期τ=50ns。问顺序存储器和交叉存储器的带宽各是多少?
【解】
顺序存储器和交叉存储器连续读出m=4个字的信息总量都是:
q=64位×4=256位
顺序存储器和交叉存储器连续读出4个字所需的时间分别是: t2=mT=4×200ns=800ns=8×10-7s
t1=T+(m-1)=200ns+30ns=350ns=35×10-7s? 顺序存储器和交叉存储器的带宽分别是: W2=q/t2=256÷(8×10-7)=32×107[位/s] W1=q/t1=256÷(35×10-7)=73×107[位/s] 三、二模块交叉存储器举例
二模块交叉存储器方框图演示 点击演示
DRAM存储器读/写周期时,在行选通信号RAS有效下输入行地址,在列选通信号CAS有效下输入列地址。如果是读周期,此位组内容被读出;如果是写周期,将总线上数据写入此位组。刷新周期是在RAS有效下输入刷新地址,此地址指示的一行所有存储元全部被再生。A20—A3的18位地址用于模块中256K个存储字的选择。A2用模块选择,连续的存储字交错分布在两个模块上,偶地址在模块0,奇地址在模块1。
DRAM存储器需要逐行定时刷新,而且,DRAM芯片的读出是一种破坏性读出,因此在读取之后要立即按读出信息予以充电再生。这样,若CPU先后两次读取的存储字使用同一RAS选通信号的话,CPU在接收到第一个存储字之后必须插入等待状态,直至前一存储字再生完毕才开始第二个存储字的读取。
无等待状态成块存取示意图演示 点击演示
由于采用m=2的交叉存取度的成块传送,两个连续地址字的读取之间不必插入等待状态(零等待存取)。