内容概述:
- 双口RAM
- 多模块存储器
双口RAM
CPU1 数据线 双端口RAM 数据线 CPU2
地址线 地址线
控制线 控制线
优化多核CPU访问一条内存条的速度
需要两组完全独立的数据线、地址线、控制线
CPU和RAM也需要更复杂的控制电路
操作:
1.两个端口同时对不同的地址单元存取数据 √
2.对同一地址单元 读出数据 √
3.对同一地址单元 写入数据 ×
4.对同一地址单元 一个读,另一个写 ×
解决方式:置“忙”信号为0,类似操作系统的读者写者问题
多体并行存储器
以四体并行为例
可以理解为四个内存条
高位交叉编址: 体号+体内地址
体号正好使用两位,00 01 10 11可以代表四种内存条
低位交叉编址: 体内地址+体号
体号在后面,一样使用00 01 10 11可以代表四种内存条
连续访问时
00000 00001 00010 00011 00100
假设每个存储体的存取周期为T,存取时间为r,假设T=4r
则访问完
高位交叉编址需要5T
而低位需要T+4r
若连续读取n个存储字
低位需要T+(n-1)r
读写一个字的时间接近r
所以,如果要连续访问时,低位交叉编址更加快
若采用流水线方式并行存取(宏观上并行)
一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍
若存取周期为T,存取时间为r
为了使流水线不间断。要保证m>=T/r
若存取周期为T总线传输周期为r
为了使流水线不间断。要保证m<=T/r
多体并行存储器:
每个模块都也相同的容量和存取速度
各个模块都有独立的读写控制电路、地址寄存器和数据寄存器
可以并行的工作
也可以交叉的工作
单体多字存储器
每个存储单元存储m个字
总线宽度也为m个字
一次并行读数m个字
不能单独取某个字
指令和数据在主存内必须是连续存放的