作者yoz4ni (yoooooz)
看板Grad-ProbAsk
標題[理工] 計組 指令
時間Sat Oct 26 09:26:45 2019
請問一下
ll、sc一定會同步出現,在Processor1 ll了($s1),所以裡面會有一個值會被設為1
那Processor2 同時也是設為1,這樣不是就同一個位置已經被讀2次了嗎
不太懂要怎麼判斷這2個指令
謝謝
https://i.imgur.com/8tqDjci.jpg
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.213.197.216 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1572053207.A.C57.html
1F:推 b10007034: 有完整題目嗎? 10/26 11:07
3F:→ yoz4ni: 我想說要問的跟旁邊沒啥太大關西就沒拍了OAO 10/26 15:31
4F:→ DLHZ: processor2同時設為1?你是覺得processor的register共用嗎? 10/26 17:41
5F:→ DLHZ: processor1的sc沒有問題 所以設成1 但這樣就是修改過了 所以 10/26 17:42
6F:→ DLHZ: processor2的sc會失敗會傳一個0 10/26 17:42
7F:→ DLHZ: 應該是sc失敗才會有人被設成0 不是ll讓某個被設成0 10/26 17:43
8F:→ DLHZ: 0是成功 改一下 10/26 17:44
9F:→ yoz4ni: 所以在沒有sc之前,假如有3個processor都有是正常的 10/26 19:37
10F:→ yoz4ni: 一旦其中一個sc之後 其他要sc時就會失敗?這樣理解有錯嗎 10/26 19:39
11F:→ yoz4ni: 那是怎麼知道有一個已經sc了 10/26 19:40
12F:→ yoz4ni: 上面是要打有3個processor都做ll指令 10/26 19:41
13F:→ DLHZ: ll之後cpu會檢查過程中有沒有被寫入 10/26 20:07
14F:→ DLHZ: 是 10/26 20:07
15F:→ yoz4ni: 以上面為例子的話在第三行時也被寫入,所以會設定成0或1? 10/26 20:43
16F:→ yoz4ni: 那如果判斷已被寫入 所以第四行要寫入就失敗,那如果有重 10/26 20:44
17F:→ yoz4ni: 作的動作那不就永遠不會寫次第二次嗎?因為之前已寫入 10/26 20:46
18F:→ yoz4ni: 所以永遠都會判斷已被修改? 10/26 20:47
19F:→ DLHZ: 判斷的基準是從自己LL開始啊 10/26 20:54
20F:→ DLHZ: 重作的動作是什麼意思 10/26 20:54
21F:→ yoz4ni: 就執行2時不是會失敗嗎,那如果用條件如果失敗就在執行 10/26 21:52
22F:→ yoz4ni: 一次,那怎麼知道已經可以寫入了 10/26 21:53
23F:→ DLHZ: 執行2是什麼2 當那個位子一被改變你processor2的資料就是inv 10/26 22:00
24F:→ DLHZ: alidate了 要嘛就是重新存取 為什麼一定要把錯的資料寫進去 10/26 22:00
25F:→ DLHZ: 你資料來源invalidate 等再久系統也不會給你寫進去 因為你本 10/26 22:01
26F:→ DLHZ: 來就應該重新來過 10/26 22:01
27F:→ yoz4ni: 好的謝謝 10/26 22:32