置頂
8-bit系統還是要data alignment嗎?
如題
在讀data alignment 碰到一些問題:
如果每次都是1 byte抓資料,那就不會有misaligned了問題吧?
還是說不管什麼系統都要照資料大小的倍數來排記憶體位址?
感覺8bit沒必要啊
http://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packi
這網站很下面講的General Questions 第二點
請問是什麼意思? 如果是32位元系統不是一律抓32bit嗎
不管放在哪一條bank有差嗎?
多抓的24bits怎麼辦?
再擺回去?
up vote
2
1.
講「系統」還是太籠統了一點
這東西必須翻閱你平台的 ISA (Instruction Set Architecture) 文件
看看裡面有沒有支援大於 8-bit 的運算指令 (如果有的話大概也是多週期的)
如果有的話,一般也能在 Programming Guide 裡看到一些提示跟範例
另外,如果有 CPU 以外的週邊裝置
有時是週邊裝置有不同的 alignment 要求
這種時候,在記憶體擺資料當然就是照週邊裝置的需求去擺
2.
只是一個 char 被放在 4 bytes 裡的哪個 byte 罷了
如果硬體設計上就是只能呆板地一次讀 4 bytes,那就是如他所說
若不是被放在最右邊的 byte (即 bank 0)
那硬體讀 4 bytes 以後會用 shift 處理
3.
多抓的24bits怎麼辦?
丟掉就好了,又沒用到
會員登入
(先登入會員才能回覆留言喔!)