问答题

某16位计算机中,带符号整数用补码表示,数据Cache和指令Cache分离。表1给出了指令系统中部分指令格式,其中Rs和Rd表示寄存器,mem表示存储单元地址,(x)表示寄存器x或存储单元x的内容。
该计算机采用5段流水方式执行指令,各流水段分别是取指IF、译码/读寄存器ID、执行/计算有效地址EX、访问存储器M、结果写回寄存器WB,流水线采用“按序发射,按序完成”方式,没有采用转发技术处理数据相关,并且同一寄存器的读和写操作不能在同一个时钟周期内进行。请回答下列问题。
表1 指令系统中部分指令格式
名 称 指令的汇编格式 指令功能
加法指令 ADD Rs,Rd (Rs)+(Rd)→Rd
算术左移 SHL Rd 2*(Rd)→Rd
算术右移 SHR Rd (Rd)/2→Rd
取数指令 LOAD Rd,mem (mem)→Rd
存数指令 STORE Rs,mem (Rs)→mem
若高级语言程序中某赋值语句为x=a+b,x、a和b均为int型变量,它们的存储单元地址分别为[x]、[a]和[b]。该语句对应的指令序列如下,其在指令流水线中的执行过程见表2。 I1 LOAD R1,[a] I2 LOAD R2,[b] I3 ADD R1,R2 I4 STORE R2,[x]
表2 指令序列的执行过程
指令 时间单元
1 2 3 4 5 6 7 8 9 10 11 12 13 14
I1 IF ID EX M WB
I2 IF ID EX M WB
I3 IF ID EX M WB
I4 IF ID EX M WB
这4条指令执行过程中,I3的ID段和I4的IF段被阻塞的原因各是什么

【参考答案】

各条指令语句的含义如下: I1 LOAD R1,[a] //将[a]单元中的内容取出,送入寄存器R1中 I2 LOAD ......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题