问答题 某计算机字长32位,存储体的存储周期为200ns。
(1)采用4体交叉工作,用低2位的地址作为体地址,存储数据按地址顺序存放。主机最快多长时间可以读出一个数据字?存储器的带宽是多少?
(2)若4个体分别保存在主存中前1/4,次1/4,再下个1/4,最后1/4这四段中的数据,即选用高2位的地址作为体地址,可以提高存储器顺序读出数据的速度吗?为什么?
(3)若把存储器改成单体4字宽度,会带来什么好处和问题?
(4)比较采用4体低位地址交叉的存储器和4端口读出的存储器这两种方案的优缺点。
【正确答案】
【答案解析】交叉存储器的题在2013年、2015年出现过两次,希望能引起读者的足够重视,本题应该是这一类题中较难的了。
(1)因为每个体的存取周期是200ns。4体交叉轮流工作,每两个体间读出操作的延时时间为1/4个存储周期,理想情况是每个存取周期平均可以读出4个数据字,读出一个数据字的时间平均为200ns÷4=50ns。数据字长为32位,其数据传输率为:32位÷50ns=6400Mb/s=800MB/s。
(2)若对多体结构的存储器选用高位地址交叉,通常起不到提高存储器读写速度的作用,因为它不符合程序运行的局部性原理特性,一次连续读出彼此地址相差一个存储体容量的4个字的机会太少了。因此,通常只有一个存储模块在不停地忙碌,其他存储模块是空闲的。
(3)若把存储器的字长扩大为原来的4倍,实现的则是一个单体4字结构的存储器,每一次读可以同时读出4个字的内容,有利于提高存储器每个字平均的读写速度,但它使用的灵活性不如多体单字结构的存储器,还会多用到几个缓冲寄存器。
(4)多端口存储器是对同一个存储体使用多套读写电路实现的,扩大存储容量的难度显然比多体结构的存储器要大,而且不能对多端口存储器的同一个存储单元同时执行多个写入操作,而多体结构的存储器则允许在同一个存储周期对几个存储体执行写入操作。