7.3 设某流水线计算机有一个指令和数据合一的cache,已知cache的读/写时间为10ns,主存的读/写时间为100ns,取指的命中率为98%,数据的命中率为95%,在执行程序时,约有1/5指令需要存/取一个操作数,为简化起见,假设指令流水线在任何时候都不阻塞。问设置cache后,与无cache比较,计算机的运算速度可提高多少倍? 答:1)有cache的情况:
平均访存时间=平均取指时间+平均取数时间 =(98%*10ns+(1-98%)*(10ns+100ns))
+(95%*10ns+(1-95%)*(10ns+100ns))/5=12ns+3ns=15ns 2)无cache的情况
平均访存时间=平均取指时间+平均取数时间=100*1+100*1/5=120ns 3)速度提高倍数=120ns/15ns=8倍
7.5 设某计算机的cache采用4路组相联映像,已知cache容量为16KB,主存容量为2MB,每个字块有8个字,每个字有32位。请回答:
(1) 主存地址多少位(按字节编址),各字段如何划分(各需多少位)?
(2) 设cache起始为空,CPU从主存单元0,1,…,100。依次读出101个字(主存一次读出一个字),并重复按此次序数读11次,问命中率为多少?若cache速度是主存的5倍,问采用cache与无cache比较速度提高多少倍? 答:(1)主存地址位数:2MB=221B,即21位。