[問題] 請教一個計算機的問題
想要請問各位大大一個計算機的基本問題
是不是所有的CPU設計
都是把CPU看到的一個address對應的資料定義成一個byte(8 bit)?
請問有甚麼理由呢?
會這樣問的原因是
例如現在ARM是32 bit的CPU
我在去抓instrustion回來的時候
理論上我可以從CPU給出一個address
去access一個外部有32 bit IO bus的memory
(假設ARM core的 memory interface也是32 bit data IO)
如此 我就可以每次program counter都只+1
就能順序從外部memory讀進連續的32 bit instruction
但是我看到ARM的設計(或是MIPS)
都是PC=PC+4
也就是CPU認為的一個address還是對應到一個byte
所以必須一次跳4個address
我比較好奇的是
這樣做的話 如果外部接的memory是32 bit IO bus
那address連到這個memory的 address[1:0] 都要變成 don't care
也就是說 CPU address [x:2] = memory [y:0]
來滿足內部一次跳4個address的設計
有甚麼理由需要這樣做 而不設計成PC=PC+4的設計呢?
是因為要相容以前的設計嗎?
感謝回答~~ ^^
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.45.77.57
※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1438447917.A.BA5.html
→
08/02 01:16, , 1F
08/02 01:16, 1F
→
08/02 01:16, , 2F
08/02 01:16, 2F
推
08/02 09:08, , 3F
08/02 09:08, 3F
→
08/02 09:58, , 4F
08/02 09:58, 4F
→
08/02 09:59, , 5F
08/02 09:59, 5F
→
08/02 10:00, , 6F
08/02 10:00, 6F
→
08/02 22:26, , 7F
08/02 22:26, 7F
→
08/02 22:27, , 8F
08/02 22:27, 8F
→
08/02 22:31, , 9F
08/02 22:31, 9F
→
08/02 22:31, , 10F
08/02 22:31, 10F
→
08/02 22:50, , 11F
08/02 22:50, 11F
→
08/02 22:52, , 12F
08/02 22:52, 12F
→
08/02 22:53, , 13F
08/02 22:53, 13F
→
08/02 23:10, , 14F
08/02 23:10, 14F
→
08/02 23:11, , 15F
08/02 23:11, 15F
→
08/02 23:12, , 16F
08/02 23:12, 16F
→
08/02 23:13, , 17F
08/02 23:13, 17F
→
08/02 23:13, , 18F
08/02 23:13, 18F
→
08/02 23:18, , 19F
08/02 23:18, 19F
→
08/02 23:19, , 20F
08/02 23:19, 20F
推
08/04 11:07, , 21F
08/04 11:07, 21F
→
08/04 11:07, , 22F
08/04 11:07, 22F
→
08/04 11:08, , 23F
08/04 11:08, 23F
→
08/04 11:08, , 24F
08/04 11:08, 24F
→
08/04 11:10, , 25F
08/04 11:10, 25F
推
08/05 17:17, , 26F
08/05 17:17, 26F