COD作业4

1

(1)

关键路径:

PC -> InstMem -> decoder -> (rf read = 0) -> MUX -> alu -> RDMUX -> rf_write

time=30+250+50+25+200+25+20=600ps

(2)

PC -> InstMem -> decoder -> sext(imm) -> MUX -> alu -> DataMem -> RDMUX -> rf_write

time =30+250+50+50+25+200+250+25+20=900ps

(3)

PC -> InstMem -> decoder -> sext(imm) -> MUX -> alu -> DataMem

time =30+250+50+50+25+200+250=855

(4)

PC -> InstMem -> decoder -> (rf read = 0) -> MUX -> alu -> PCMUX -> PC

time =30+250+50+25+200+25+20=600ps

(5)

PC -> InstMem -> decoder -> sext(imm) -> MUX -> alu -> RDMUX -> rf_write

time =30+250+50+50+25+200+25+20=650

(6)

可见 load 指令延迟最大,为 900ps.

故周期为 900ps.

2

  1. RAW
  2. add x1, x2, x3
    sub x4, x1, x5
    
  3. 读取后再传递给 ALU 需要经过 Data Mem 和 ALU 两大高延迟组件,会显著降低运行频率,故需要插入气泡。

3

(1) init = 0; TFTFTFTFTFTFTFTFTFTFTFTFTFTFTF\ldots

(2)

int x10=12;
while(x10!=0){//12F1T
    int x11=12;
    while(x11!=0){//(12F1T)*12
        //x12+=1;
        x11-=1;
    }//12T*12
    x10-=1;
}//12T

错误数量:1+12+2+2=17

正确率 0.948

初值为1 错误数量:1+12+1+1=15

2: 2+13+0+0=15

3: 3+14+0+0=17

故应该设置为 1 或 2

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注