2014-09-13 65 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地址空间。

相关问题