推 hardcover:感謝 XD 04/13 21:39
※ 引述《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