[理工] [計組] CPU對記憶體位置編碼

看板Grad-ProbAsk作者 (CC)時間9年前 (2016/07/14 00:12), 9年前編輯推噓13(13023)
留言36則, 5人參與, 最新討論串1/1
HI大家 我想講的題目是張凡課本(上) P82 的第四題(2) 想先請問記憶體的位址是signed還是unsigned 以 32BIT MIPS來講 記憶體從頭到尾的編碼: (1) signed 可能是 ffffffffh ~ 00000000h ~ 7fffffffh (2) unsigned 可能是 00000000h ~ ffffffffh 對CPU來說 都是數字 可能沒什麼 但是假如碰到branch branch有16bit可以跳動的範圍: -20000h ~ 1fffch 假如base是 0000000h branch的跳動範圍就會變成 fffe0000h ~ 0001fffch -------------------------------------------- 今天問題是問: ffffff00h是否在這個範圍內? 張凡是寫這個答案"對" 如果是signed 沒有問題 因為就在這塊連續的記憶體範圍內 但原本交大給的答案是"錯" (張凡後來改答案) 我在想喔 如果memory原本是unsigned, 那ffffff00h不就跑到記憶體的另外一端了嗎? 照理講這樣跳太多應該不合理吧 所以題目原本才給錯? 想跟各位討論,或是指出我有問題的地方,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.251.85 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1468426358.A.1D8.html

07/14 23:06, , 1F
unsigned 的,跳到另外一邊不合理。
07/14 23:06, 1F

07/15 10:54, , 2F
他上課是改yes沒錯,張凡上課是說可以把記憶體想成是一
07/15 10:54, 2F

07/15 10:54, , 3F
個圓(頭尾相連)。 jump指令才有256mb的區塊限制。
07/15 10:54, 3F
晚回,抱歉了 附圖:http://imgur.com/zlgtOlO
以一般ELF來說,從code sec跳到另外一端會到stack或是不合法的存取位址吧? 如果您有上課,可否幫我問問老師呢 (小弟沒上面授TAT) ※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 14:48:27

07/19 18:54, , 4F
我上tkb的。題目是問說能不能跳到而已,沒問你合不合法
07/19 18:54, 4F

07/19 18:54, , 5F
吧?
07/19 18:54, 5F
如果不合法,CPU根本不會給你跳吧? 硬體好像會有base register & limit register去做protection? (雖然不知道MIPS有沒有就是了,不過應該有對應的機制) http://stackoverflow.com/questions/8178001/mips-memory-execution-prevention "The CPU then on every instruction checks whether or not the memory accesses comply with the OS-established permissions and if everything's OK, carries on. If there's an attempt to violate those permissions the CPU raises an exception (a form of an interrupt similar to those from external to the CPU I/O devices) that the OS handles." ※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 19:45:23

07/19 20:17, , 6F
跳了合法-> 沒事,不合法->當機。 不是嗎= =?
07/19 20:17, 6F
應該說,吃到不合法位址,便直接跳到exception handler了 CPU 他不會餵給PC讓你跳到那邊讓你死機吧 0.0 ※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 20:59:27

07/19 22:11, , 7F
你是覺得一定會不合法? 他題目只是問有沒有可能而已
07/19 22:11, 7F
這是我有疑慮的點,因為答案原本給的是 False 我在想張凡跟交大老師是否有不同見解 @@? 我想找101交大解答,連結也失效 我覺得是不合法,畢竟stack就從頂端長下來,下面還有未分配之記憶體, heap,...etc 還是單純題目只是想考考二進位加減法? ※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 23:10:36

07/19 23:10, , 8F
畢竟stack就從頂端長下來->這邊想表達的是?
07/19 23:10, 8F

07/19 23:11, , 9F
他已經跳到另一個程式區塊了, 無法預期會跳到該程式的
07/19 23:11, 9F

07/19 23:11, , 10F
那邊已經不是code sec,CPU會擋下來
07/19 23:11, 10F

07/19 23:12, , 11F
哪一段吧. 這題目出的本來就怪怪的 PC也不太可能在0吧
07/19 23:12, 11F

07/19 23:12, , 12F
你怎能預期那邊不是code sec, 就不同程式了
07/19 23:12, 12F
可是 CPU 也會有 base & limit register去記錄此 process 的範圍呀 如果是不同程式,也會直接 exception? ※ 編輯: kyuudonut (220.132.251.85), 07/19/2016 23:16:49

07/19 23:19, , 13F
然後感謝糾正XD 有可能是別的code sec
07/19 23:19, 13F

07/19 23:27, , 14F
base & limit register->MIPS哪來這二個?
07/19 23:27, 14F
我知道沒有mips這兩個@@ 但我一直再想應該會有類似機制去防止存取其他process 但剛剛查了一下都找不到相關文件 orz 如果單純照課本畫的mips,要嘛就繼續執行其他程式, 不然就是instruction無法解碼跳exception, 但兩者的前提都是先跳到branch指定的address (!) 謝謝跟你的討論,但我的出發點只是怕兩個地方給答案不一樣 TAT ※ 編輯: kyuudonut (220.132.251.85), 07/20/2016 00:00:33

07/21 14:37, , 15F
後期很常遇到這種張凡和考試答案給的不一樣的題目
07/21 14:37, 15F

07/21 14:38, , 16F
這時侯 分數就在一念之間
07/21 14:38, 16F

07/21 14:39, , 17F
告訴你該怎麼做 你就想著張凡的講解 然後再想 三個字
07/21 14:39, 17F

07/21 14:39, , 18F
暫時的
07/21 14:39, 18F

07/21 14:40, , 19F
然後寫上 學校給的正確答案 (拍拍
07/21 14:40, 19F

07/21 14:51, , 20F
至於這題,翻開第71頁 BEQ為程式計數器相對定址法 從
07/21 14:51, 20F

07/21 14:51, , 21F
這裡其實就可以知道 它是signed了 不用想太多 instru
07/21 14:51, 21F

07/21 14:51, , 22F
ction 裡的常數加上pc的位址 第二題是yes沒有太大的
07/21 14:51, 22F

07/21 14:51, , 23F
異議
07/21 14:51, 23F

07/21 15:03, , 24F
後面學過pipeline就可以更清楚瞭解beq在整個管線流程
07/21 15:03, 24F

07/21 15:03, , 25F
中 它的常數會在IF時經過加法器 +上pc再傳回去
07/21 15:03, 25F

07/21 15:16, , 26F
更正是在ID時(In
07/21 15:16, 26F

07/21 15:16, , 27F
struction decode)
07/21 15:16, 27F

07/23 12:13, , 28F
所以考試時這種有不同講解答案的題目 還是要以學校為
07/23 12:13, 28F

07/23 12:13, , 29F
主嗎 @@但是我是覺得張凡的答案也有一套道理的說
07/23 12:13, 29F

07/23 12:57, , 30F
見仁見智 只不過你確定題目一模一樣 算出來又跟你
07/23 12:57, 30F

07/23 12:58, , 31F
印象中一樣有爭議 然後又剛好是同間學校考出來的
07/23 12:58, 31F

07/23 12:59, , 32F
這時 千萬 不要跟這間教授出題過不去 XDD
07/23 12:59, 32F

07/23 13:00, , 33F
只不過張凡 這類有爭議題目有講到也會這樣跟學生說
07/23 13:00, 33F

07/23 13:02, , 34F
只不過阿... 往年學校爭議送分題 尤其是資工的不少
07/23 13:02, 34F

07/23 13:03, , 35F
相信自己 相信自己的答案就好
07/23 13:03, 35F

07/24 10:04, , 36F
好的 反正就是相信自己 剩下的聽天由命XD 感謝
07/24 10:04, 36F
文章代碼(AID): #1NXcXs7O (Grad-ProbAsk)