主存与CPU之间的连接
现在的计算机
存储器的输入输出信号
增加主存的存储字长——位扩展
单块主存芯片与CPU的连接
可以看到数据线的利用是非常不充分的,只连接了一根线。
通过相同的地址线连接两块主存,这样就可以同时指向两块芯片的相同位置,输出的不同数据线可以接在不同的CPU数据线接口上,这样就实现了位扩展(数据位)。
连接8块主存芯片,这样就把主存的存储字长扩展成了8bit
增加主存存储字数——字扩展
对于数据线已经是8位的主存芯片来说,位扩展法就不能达到扩展的目的,因为cpu的所有数据线已经被一个芯片占满了,但是我们发现cpu还多出了几根地址线,为了能够合理的利用上这三片地址线,我们让其连接不同芯片的使能接口,实现字扩展。
线选法:
地址线直接连接芯片使能接口
译码片选法:n条线可以对应2n 个片选信号
字位同时扩展
主存优化技术
需要解决的问题
DRAM恢复时间太长
双端口RAM
多模块存储器
多体并行存储器
采用高位交叉编址,地址顺序是在同一根内存条中纵向编址,采用低位交叉编址是在不同内存条中横向编址
CPU访问一个存储器的时间为存储周期,其中有一大半都是恢复时间,如果才用高位交叉编址,cpu需要等待主存的恢复,但是如果通过低位交叉编址的话,cpu则不需要等待主存的恢复时间,因为是在不同的主存中读取数据
单体并行存储器
真题
2017:某计算机主存按照字节编址,由4个64Mx8位的DRAM芯片采用交叉编址方式,并与宽度为32位的存储器总线相连,主存每次最多读写32位的数据,若double型变量X的主存地址为804001AH,则读取x需要的存储周期是多少?
解:采用交叉编址方式则最后两位表示芯片(4个芯片需要两位来表示),A=1010 知道最后两位是10,则数据是放在二号芯(0开始),则32位需要3个周期才能读取完成
2016:
某存储器容量为64KB,按字节编址。地址4000H-5FFFH位ROM区,其余为RAM区,采用8Kx4位的SRAM芯片进行设计,则需要该芯片的数量是多少?
解:4000H到5FFFH有2000H个字节10 0000 0000 0000=213=8KB,64kB-8kB=54kB,用这个芯片做出54KB的大小,8Kx4位,一个字节8位,所以一个芯片的容量是4kB,一共需要14个芯片。
2015:
某计算机使用4体交叉编址存储器,假定在存储器总线上出现的主存地址,序列为8005,8006,8007,8008,8001,8002,8003,8004,8000,则可能发生访存冲突的地址对是?
解:模块序号=访存地址%存储器交叉模块。所以8005在1号存储器,8006在2号存储器,8007在3号存储器,8008在0号存储器,8001在1号存储器,8002在2号存储器,8003在3号存储器,8004在0号存储器,8000在0号存储器,在相邻的4次访问中如果访问到同一个存储体则会出现冲突,所以8004和8000会发生冲突,因为在相邻的4次访问中都访问了0号存储器