2014-09-13 53 views
2

如果2^32bits = 4Billion(大致)位而不是字節,32位地址是4GB?從本質上講,4Gb如何變成4GB?如果內存正在尋址字節,那麼可能性不應該是2 ^(32/8)?如果2^32bits = 4Billion位而不是字節,32位地址是4GB?

+3

令人困惑的問題(也許與錯字:23應該是32)。閱讀有關計算機體系結構最常見的處理器是尋址字節,而不是位。 – 2014-09-13 07:30:46

+0

謝謝。更正了23到32. – mkatt 2014-09-13 07:34:14

+2

「2^32」是(表達式表示)一個數*沒有*隱式單位;這是任意添加的,並且是這裏的核心混亂。嘗試別的..「2^32甜瓜味冰淇淋錐」,美味! – user2864740 2014-09-13 07:39:49

回答

3

這取決於您如何處理數據。

如果使用32位來尋址每個位,則可以尋址2^32位或4Gb = 512MB。如果你像大多數當前的體系結構一樣處理字節,它會給你4GB。

但是,如果您尋址更大的塊,則需要更少的位來尋址4GB。例如,如果您尋址每個512字節塊(2^9個字節),則可以使用23位尋址4GB。 FAT16使用16位來尋址最大64KB羣集,因此可以尋址最大4GB容量。一些較舊的體系結構使用word-addressed memory而不是像現今大多數字節一樣使用字節。在Java Compressed Oops中使用相同的地址,您可以使用32位參考地址來訪問32GB的RAM。無論如何,你的問題很混亂

0

芯片上的電氣接口包括(非常簡化)地址線(例如32條地址線)和數據線(例如8條線用於讀取來自RAM的數據,8條線用於寫入數據到RAM)。在這種情況下,您有8位2^32字,因此您可以處理2^32 * 8位數據。

如果你有一個字寬爲16位的RAM(比8位更有可能),你將能夠使用相同數量的地址位尋址兩倍的RAM。在現代系統中,你不能真正「讀取一個字節」,而是CPU從RAM中提取一個完整的緩存行,然後只給你所要求的字節。

+0

但邏輯地址仍然(通常)在一個字節的「分辨率」.. – user2864740 2014-09-13 07:57:42

0

大多數現代計算機都是可以字節尋址的,每個地址標識一個8位字節的存儲空間;太大而不能存儲在單個字節中的數據可能駐留在佔據一系列連續地址的多個字節中。存在可尋址的計算機,其中最小的可尋址存儲單元正是處理器的詞。例如,Data General Nova小型計算機,德州儀器TMS9900和美國國家半導體IMP-16微型計算機使用16位字,並且有許多使用18位字尋址的36位大型計算機(例如PDP-10)不是字節尋址,給出了2^18個36位字的地址空間,大約1兆字節的存儲空間。內存尋址的效率取決於用於地址的總線的位大小 - 使用的位數越多,計算機可用的地址就越多。例如,具有20位地址總線(例如Intel 8086)的8位字節可尋址機器可以尋址2^20(1,048,576)個存儲器位置,或者一個MiB存儲器,而32位總線(例如Intel 80386)尋址2^32(4,294,967,296)個位置或4個GiB地址空間。

相關問題