作者Aa841018 (andrew)
看板Grad-ProbAsk
标题[理工] 计组上册324(2)!
时间Wed Nov 14 15:56:19 2018
https://i.imgur.com/AihTSZK.jpg
请问一下,为何(2)是load,不是store?两个都是20%,cpi又都是3,是怎麽区分的啊?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.242.94.62
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1542182181.A.70F.html
1F:推 ss455032: Register-mem,add $t0,t1,0(S2),可以想成先load到一个re 11/14 16:06
2F:→ ss455032: gister在相加 11/14 16:06
3F:→ Aa841018: 可是store也是register-memory啊!怎麽就不是store? 11/14 16:12
4F:推 b10007034: 觉得详解不知道在干麻,如果q2是如详解这样写,那为何 11/14 23:41
5F:→ b10007034: q3计算load的部份没有把cpi=3改为cpi=2? 11/14 23:41
6F:→ b10007034: 我的想法是load&store都是受益者,新的cpi计算为2*0.4 11/14 23:44
7F:→ b10007034: +2*0.2+2*0.2+2*0.2=2,新的cpu time=IC*2*1.05T仍然 11/14 23:44
8F:→ b10007034: 大於旧的,因此不选择新的 11/14 23:44
9F:推 b10007034: 有人可以解释一下吗,我也想知道解答写啥QQ 11/14 23:46
10F:推 b10007034: 自问自答,我刚刚查了一下知道怎麽了,store-load其实 11/15 00:09
11F:→ b10007034: 是reg-reg的架构,原文书是这样的定义。 11/15 00:09
12F:→ b10007034: 同第一个的推文,只要想add $1,$2,imm,这样类似的指 11/15 00:13
13F:→ b10007034: 令可以直接存取记忆体就好 11/15 00:13
14F:推 b10007034: 只有load的原因是因为原来要做运算的话一定要把资料从 11/15 00:19
15F:→ b10007034: 记忆体搬到reg(load)才可以,而这个定址模式解放这 11/15 00:19
16F:→ b10007034: 个限制了,所以load的数量就会变少。 11/15 00:19
17F:→ b10007034: 没有store的原因也就是上述说明的相反,没有人希望在 11/15 00:23
18F:→ b10007034: 记忆体做运算,因为可以在reg算就尽量在reg算,reg跟 11/15 00:23
19F:→ b10007034: 记忆体的解码速度差太多了,还有sram跟dram的差别。 11/15 00:23
20F:推 seika555: 题目开始有假设ALU的cpi及总cycle time都增加,又他是从 11/15 02:13
21F:→ seika555: reg-reg改成reg-mem 因此合理的假设ALU多了access mem 11/15 02:13
22F:→ seika555: 的部分,然後在做运算时是要取暂存器的值,sw 是把reg 11/15 02:13
23F:→ seika555: 存回mem不会影响读取,因此能减少的就是原本lw 的指令, 11/15 02:13
24F:→ seika555: 分给ALU让他可access mem 和运算,就不用全透过lw去acce 11/15 02:13
25F:→ seika555: ss 不知道这样想对不对 11/15 02:13
26F:推 b10007034: 你是从MIPS现有架构去思考这个问题吗? 11/15 09:17
27F:→ b10007034: 假设要相容现有架构的话,我认为是从instruction deco 11/15 09:19
28F:→ b10007034: de就有access mem.的部份了 11/15 09:19
29F:推 seika555: 哦哦对耶 没考虑到 不过我想说的是多pipelined 的第4个s 11/15 09:25
30F:→ seika555: tep 11/15 09:25