作者kaidi620 (万能史哥)
看板Grad-ProbAsk
标题[理工] mutiple issue
时间Thu Feb 14 21:47:10 2019
想请问一下这一题
https://i.imgur.com/zkmFDw7.jpg
答案是
https://i.imgur.com/8IQuhsj.jpg
它们好像把指令重新排序了
但我的疑问是 为何
addi s1, s1 , -4
可以拉上去 它应该要等第三个指令sw把t0存进s1吧?
求解QQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.247.5.170
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1550152033.A.437.html
1F:推 chieya: s1存的是mem位址 sw存的是mem位址的data @@ 02/14 22:01
2F:→ GeniusPuddin: 同楼上 这个感觉很容易不小心看错XD 02/14 22:28
3F:推 Davidhu127: 只要记得,有write的指令只有Rtype, addi和lw 02/14 22:33
4F:→ kaidi620: 那想请问大神 就是 如果是这样 那应该addi也没有和lw 02/14 22:46
5F:→ kaidi620: 有相依 那为什麽addi不能往上拉跟lw 同时为cycle 1 呢 02/14 22:47
6F:推 sooge: addi不是把常数和暂存器的内容相加吗 为什麽变成算memory 02/14 22:49
7F:→ sooge: 位置了@@ 02/14 22:49
8F:推 pig4306: 你是不是没上课阿 凡神明明有说addi可以放cycle1 也可以 02/14 22:50
9F:→ pig4306: 放cycle2 这题只是因为指令数不够 每个packet才会出现一 02/14 22:50
10F:→ pig4306: 堆空格 你要是把addi搬上去也没差 只是cycle2明显是空包 02/14 22:51
11F:→ pig4306: 弹而已 02/14 22:51
12F:推 olen0622: 说不定人家没上课 02/14 22:55
13F:推 agag5123: addi和lw sw在s1还是有相依性的,不过属於WAR反相关 02/15 03:45
14F:→ agag5123: 移上去之後要调整原本的组语,把存取Men.的位置+4 02/15 03:47
15F:→ agag5123: 因为不是真实的data,只是存取位置,稍微改动抵消即可 02/15 03:51
16F:推 eric131204: 第一个cycle的两个指令有先後吗,为什麽要+4? 02/15 07:29
17F:→ eric131204: (如果把addi移上去的话) 02/15 07:31
18F:推 pig4306: eric理解上有点错误 加四的只有第一个cycle以外的所有s1 02/15 10:34
19F:→ pig4306: 相关的pc-relative addressing instructions 正常情况下i 02/15 10:34
20F:→ pig4306: ssue排满addi会在cycle1 所以cycle1的lw会跟addi平行运作 02/15 10:34
21F:→ pig4306: 这时候lw的s1是不需要+4的 02/15 10:34
22F:推 eric131204: 那agag大说的+4是什麽意思,我也是觉得cycle1读取的s1 02/15 10:50
23F:→ eric131204: 不互相干扰不是吗,还是我解读错误? 02/15 10:50
24F:→ agag5123: lw不会,在addi後才执行的都要加,应该表示存在forward 02/15 12:46
25F:→ agag5123: 不过我很好奇duel issue的add和lw包一起,它不会发现有 02/15 12:52
26F:→ agag5123: 相依而在MEstage把alu算出的数据传给DM用吗 02/15 12:52
27F:推 b10007034: 楼上,它们已经平行执行了,lw在addi後面才有可能 02/15 14:45
28F:推 agag5123: 可是DM元件不是在ALU後面吗?ex/mem.reg.後拉条线给DM 02/15 14:51
29F:推 b10007034: 好像理解错你的问题了,不过你可以观察一下DM前面有没 02/15 14:52
30F:→ b10007034: 有MUX 02/15 14:52
31F:→ b10007034: 另外,可以平行处理的指令,相依问题在更早就处理好了 02/15 14:55
32F:→ b10007034: 这边compiler已经检查好才包成一个packet,否则不会包 02/15 14:56
33F:推 agag5123: 发现是b大欸XD你分享的allocate和FGMT都帮助我很大 02/15 15:07
34F:推 skyHuan: 推b大 >///< 02/15 19:04