首页 > 试题广场 >

某32位计算机,CPU主频为800MHz,Cache命中时的

[问答题]

某32位计算机,CPU主频为800 MHz, Cache命中时的CPI为4, Cache块大小为32字节;主存采用8体交叉存储方式,每个体的存储字长为32位、存储周期为40 ns;存储器总线宽度为32位,总线时钟频率为200 MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32字节,传送地址或32位数据均需要一个总线时钟周期。请回答下列问题,要求给出理由或计算过程。

(1) CPU和总线的时钟周期各为多少?总线的带宽(即最大数据传输率)为多少?

(2) Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?

(3) 存储器总线完成一次读突发传送总线事务所需的时间是多少?

(4) 若程序BP执行过程中,共执行了100条指令,平均每条指令需进行1.2次访存,Cache缺失率为5%,不考虑替换等开销,则BP的CPU执行时间是多少?

(1)CPU的时钟周期为:1/800 MHz=1.25 ns。
总线的时钟周期为:1/200 MHz=5ns.
总线带宽为:4BX200 MHz=800 MB/s或4 B/5 ns=800 MB/s。
(2)Cache块大小是32 B,总线宽度为32B,因此Cache缺失时需要一个读突发传送总线事务读取一个主存块。
(3)一次读突发传送总线事务包括一次地址传送和32 B数据传送:用1个总线时钟周期传输地址由题干给出,存储周期为40ns,则我们启动第一个存储体花费的时间40ns,突发传输总共要读取8个字(32B/(32位/8bit)),那么总共花费的时间是40+(8-1)*5 ns(传输上一个体数据的时间5ns和启动下一个体的时间5ns重叠,所以每次只需要算1个5ns即可,具体可以画个图看看),还要花1个总线周期把最后读出来的传过去,读突发传送总线事务时间:5ns +40 ns+(8-1)*5 ns+5 ns=85 ns.
【低位交叉的存储器,连续读取n个字所需要的时间是:t1 = T + (n-1)*t2
(其中T表示存储周期,t2代表总线传输周期)】
4)BP的CPU执行时间包括Cache命中时的指令执行时间和Cache缺失时带来的额外开销。命中时的指令执行时间:100×4× 1.25 ns=500 ns。指令执行过程中Cache缺失时的额外开销:1.2× 100× 5%×85 ns=510 ns.(85ns是上一题算出来的cache缺失耗费的时间)
BP的CPU执行时间:500 ns+510 ns=1 010 ns.

编辑于 2022-11-02 19:46:12 回复(4)