亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 26968 | 回復: 6
打印 上一主題 下一主題

[操作系統(tǒng)] 32位CPU一次可讀取32位內存數據,所以需要地址以4字節(jié)對齊為什么? [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-04-08 22:53 |只看該作者 |倒序瀏覽
32位CPU一次可讀取32位內存數據,所以需要地址以4字節(jié)對齊為什么?

32位CPU要一次讀取32位內存數據,是因為數據線是32位,但是一次讀取,是不是要求只取一次內存地址,但是一個內存地址不是只對應8位(1字節(jié)嗎),那它是怎么做到一個內存地址對應32位的,還是要取4次內存地址,但是這不就不是一次取32位數據而是8位數據了嗎?

我真的很疑惑,請大神解惑,還有這個問題是不是涉及到存儲區(qū)擴展(按位,按字)?

論壇徽章:
1
申猴
日期:2014-12-23 16:52:51
2 [報告]
發(fā)表于 2016-04-09 23:41 |只看該作者
隨便找份外掛DRAM的硬件原理圖就明白了。

論壇徽章:
0
3 [報告]
發(fā)表于 2016-04-11 13:13 |只看該作者
首先內存地址是32位的,如0x00000000~0xffffffff;每一個地址存放一個字節(jié)的數據;
至于取出的數據是多少位取決于數據類型,比如,如果是int類型的數據,那么一次讀取四個字節(jié)的數據,即從當前地址到往后三個地址的數據組成一個數據讀出;
如果是char類型的變量,一次只讀取一個字節(jié)的數據。

論壇徽章:
0
4 [報告]
發(fā)表于 2016-04-14 14:34 |只看該作者
每條指令都是不同的,CPU會根據編譯出來的指令來執(zhí)行不同的操作,4個字節(jié)的讀取也是一次性完成的,當在執(zhí)行讀取4個字節(jié)的數據時,32位地址總線的低2位全是0,所以需要地址對齊,如果不對齊,硬件上可能會出現(xiàn)異;蛘咂渌闆r。

論壇徽章:
0
5 [報告]
發(fā)表于 2016-12-15 10:37 |只看該作者
其實學過8051的人就可以解釋這個問題,不同位寬的訪存指令會使能不同寬帶的數據總線。

另外,對于32-bit cpu,這個問題沒這么簡單,因為RAM與cpu之間還有CACHE,RAM CONTROLLER,對于WB type memory region,cpu不會直接與RAM通信而是直接訪問CACHE

論壇徽章:
6
2015年迎新春徽章
日期:2015-03-04 09:48:00IT運維版塊每日發(fā)帖之星
日期:2015-06-11 22:20:00IT運維版塊每日發(fā)帖之星
日期:2015-08-23 06:20:00數據庫技術版塊每日發(fā)帖之星
日期:2015-10-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2015-12-24 06:20:00IT運維版塊每日發(fā)帖之星
日期:2016-04-15 06:20:00
6 [報告]
發(fā)表于 2016-12-15 13:26 |只看該作者
32位CPU,4字節(jié)=4*8=32bit,如果不對齊,會導致讀取操作需要分兩次才能完成,效率太低。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP