3.5 双端口RAM和多模块存储器
最后更新于
最后更新于
为了解决存取周期的恢复时间内无法读写的问题,可以采用空间和时间上的并行两种思路来解决问题。
拥有两个端口,可以同时访问不同的地址单元。
当连个端口访问同一个地址单元时:
两个端口不同时对同一地址单元存取数据 ✔
两个端口同时对同一地址单元读出数据 ✔
两个端口同时对同一地址单元写入数据 ❌
两个端口同时对同一地址单元,一个写入数据,另一个读出数据 ❌
可以通过忙信号解决这一问题,当有忙信号时,暂时关闭其中一个端口。
每个存储单元内存储m个字
总线宽度为m个字
一次并行读/写m个字
优点
提高了带宽,增加了读写速度
缺点
指令和数据在主存内必须是连续存放的
对转移指令、不连续操作数据效果不明显
有多个存储模块,每个存储模块有相同的容量和存取速度;单独的读写控制器、地址寄存器和数据寄存器。
能并行工作,也能交叉工作。
连续访问时还是在一个模块内进行,实际上仅仅实现了扩容,不能提高访问速度。
高位交叉编制不满足程序的局部性原理。
当连续访问时,在多个模块间切换,提高了吞吐效率。
低位交叉编制满足程序的局部性原理。
例:模块数m=4,存储周期为T,字长w,数据总线宽度为W,总线传输周期为r,连续存储n个字,求交叉存储器的带宽。
连续存储n个字耗时: 前提:
带宽:
n较大时,带宽趋近于
单个存储体的带宽: