評價: 4 回應: 1 閱覽: 98
置頂

8-bit系統還是要data alignment嗎?

如題

在讀data alignment 碰到一些問題:

如果每次都是1 byte抓資料,那就不會有misaligned了問題吧?

還是說不管什麼系統都要照資料大小的倍數來排記憶體位址?  

感覺8bit沒必要啊


 

http://www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packi

ng/

這網站很下面講的General Questions 第二點

請問是什麼意思? 如果是32位元系統不是一律抓32bit嗎

不管放在哪一條bank有差嗎?

多抓的24bits怎麼辦?

再擺回去?

熱門回應

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怎麼辦?

丟掉就好了,又沒用到

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言