双口RAM多模块存储器
双口RAM
两个端口对同一主存操作有以下4种情况:
- 两个端口不同时对同一地址单元存取数据,可以运行
- 两个端口同时对同一地址读取数据,可以运行
- 两个端口同时对同一地址单元写入数据,写入错误
- 两个端口同时对同一地址单元,一个写数据,一个读数据,读出问题
解决方案:
置"忙"信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问
,被关闭的端口在一个很短的时间间隔后再进行访问
多模块存储器
既能并行工作,又能够交叉工作
普通存储器:每行为1个存储单元
多模块存储器的构成方式
- 单体多字存储器
- 多体并行存储器
单体多字存储器
- 每个存储单元存储m个
- 总线宽度为m个字,一次并行读出m个字
- 指令和数据在主存内必须是连续存放的
多体并行存储器
- 每个模块都具有相同的容量和存取速度
- 各个模块都具有独立的读写控制电路、地址寄存器和数据寄存器
设每个存储体的存储周期为T
高位交叉编址的多体存储器
耗时计算:n个连续存储字,耗时
n
T
nT
nT
低位交叉编址的多体存储器
耗时计算:n个连续存储字,耗时
T
+
(
n
−
1
)
τ
T+(n-1)\tau
T+(n−1)τ
流水线
微观(计算题)
模块数m=4,存储周期为T,字长为W,数据总线宽度为W,总线传输周期为r,连续存储n个字,求
交叉存储器的带宽
连续存储n个字的耗时:
t
=
T
+
(
n
−
1
)
τ
,
m
≥
T
τ
t=T+(n-1)\tau,\quad m\ge\frac{T}{{\tau}}
t=T+(n−1)τ,m≥τT
带宽:
带
宽
=
n
∗
W
T
+
(
n
−
1
)
τ
带宽=\frac{n*W}{T+(n-1)\tau}
带宽=T+(n−1)τn∗W
宏观(概念题)
在一个存储周期内,交叉存储器可以提供的数据量为单个模块的m倍
多体并行存储器在并行工作的时候,如果搭配总线宽度为mW,可以同时取出的长度为mW的数据