看板 CSSE 關於我們 聯絡資訊
※ 引述《hardcover (精裝版喔)》之銘言: : 標題: Re: [問題] little endian 的 alignment? : 時間: Wed Apr 12 23:33:01 2006 : : ※ 引述《hardcover (精裝版喔)》之銘言: : 請問一下 : little endian的系統 : 要考慮memory的alignment嗎? 兩回事, 真的是兩回事. : 大多數使用 big endian 機制的架構並不允許字組以非字組位址邊界寫入記憶體 : (例如,如果一個字組是2或4個位元組的話,它一定要是偶數的位元組位址才行) : 這樣很浪費空間。像intel這樣的litle endian 機器,就允許奇數位址的讀和寫, : 這讓寫程式的人方便許多。 : --- : p.225 : 計算機組織與結構 : 阮聖彰、蔡坤霖 譯 去看Patterson和Hennessy的書, 不會出現這種似是而非的句子. 第一: 大部分的big endian的機器的實做方式所造成的現象不代表是 全部big endian的機器的實做方式都會這樣. 第二: 實際上, 那本書的"大部份"不知道是那邊的東西. Sun UltraSPARCII/III的機器上就允許, Alpha也可以, ARM也可以. (這我手邊的三種常見的RISC的機器) 我實在搞不懂書為何這樣寫, 但為了你好, 還是去買本Patterson和Hennessy的書吧. 雖然他們書還是有一些錯誤, 但都是小問題, 不會有這種怪東西. alignment的話, 取一個word,只要用一次Bus就可以. misalignment的話, 取一個word,要用兩次Bus就才可以. 當以前memory很慢時, 這會差很多. 現在memory蠻快,又有cache, 這個差距就被縮小. 這種狀況應該只有一種情況成立, 就是code segment/code region/code area, 就是放instruction的地方, 因為幾乎所有的RISC的instruction fetch都是用word address, 所以instruction不能misalignment. 而CISC的instruction有可能會是variable length, 所以instruction fetch的功能要能handle misalignment的東西. 但這只是讀的動作, 而且還局限在instruction fetch, 但你的書說讀和寫,所以我覺得你的書該換了. XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.48.60
hardcover:感謝 XD 04/13 21:39