[理工] 計組 指令

作者: yoz4ni (yoooooz)   2019-10-26 09:26:45
請問一下
ll、sc一定會同步出現,在Processor1 ll了($s1),所以裡面會有一個值會被設為1
那Processor2 同時也是設為1,這樣不是就同一個位置已經被讀2次了嗎
不太懂要怎麼判斷這2個指令
謝謝
https://i.imgur.com/8tqDjci.jpg
作者: b10007034 (Warren)   2019-10-26 11:07:00
有完整題目嗎?
作者: yoz4ni (yoooooz)   2019-10-26 15:30:00
https://i.imgur.com/l0h3OxV.jpg我想說要問的跟旁邊沒啥太大關西就沒拍了OAO
作者: DLHZ ( )   2019-10-26 17:41:00
processor2同時設為1?你是覺得processor的register共用嗎?processor1的sc沒有問題 所以設成1 但這樣就是修改過了 所以processor2的sc會失敗會傳一個0應該是sc失敗才會有人被設成0 不是ll讓某個被設成00是成功 改一下
作者: yoz4ni (yoooooz)   2019-10-26 19:37:00
所以在沒有sc之前,假如有3個processor都有是正常的一旦其中一個sc之後 其他要sc時就會失敗?這樣理解有錯嗎那是怎麼知道有一個已經sc了上面是要打有3個processor都做ll指令
作者: DLHZ ( )   2019-10-26 20:07:00
ll之後cpu會檢查過程中有沒有被寫入是
作者: yoz4ni (yoooooz)   2019-10-26 20:43:00
以上面為例子的話在第三行時也被寫入,所以會設定成0或1?那如果判斷已被寫入 所以第四行要寫入就失敗,那如果有重作的動作那不就永遠不會寫次第二次嗎?因為之前已寫入所以永遠都會判斷已被修改?
作者: DLHZ ( )   2019-10-26 20:54:00
判斷的基準是從自己LL開始啊重作的動作是什麼意思
作者: yoz4ni (yoooooz)   2019-10-26 21:52:00
就執行2時不是會失敗嗎,那如果用條件如果失敗就在執行一次,那怎麼知道已經可以寫入了
作者: DLHZ ( )   2019-10-26 22:00:00
執行2是什麼2 當那個位子一被改變你processor2的資料就是invalidate了 要嘛就是重新存取 為什麼一定要把錯的資料寫進去你資料來源invalidate 等再久系統也不會給你寫進去 因為你本來就應該重新來過
作者: yoz4ni (yoooooz)   2019-10-26 22:32:00
好的謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com