基本上,4Gb如何变成4GB?如果内存是寻址字节,那么可能不是2 (32/8)?
答案 0 :(得分:5)
这取决于您如何处理数据。
如果使用32位来寻址每个位,则可以寻址2 32 位或4Gb = 512MB。如果您像大多数当前架构一样解决字节,它将为您提供4GB。
但如果您使用更大的块,则需要更少的位来处理4GB。例如,如果你寻址每个512字节的块(2 ^ 9字节),你可以用23位寻址4GB。 FAT16使用16位来寻址(最大)64KB群集,因此可以处理最大4GB的卷。在Java Compressed Oops中使用相同的方法,您可以使用32位引用来处理32GB的内存。
一些较旧的架构甚至使用word-addressable memory而不是像现在这样的大多数字节。具有大于八位字节的最小可寻址单元的现代架构主要存在于DSP中。还有一些具有位可寻址存储器的架构,如Intel 8051
答案 1 :(得分:1)
大多数现代计算机都是字节可寻址的,每个地址标识一个8位字节的存储空间;太大而不能存储在单个字节中的数据可能驻留在占据一系列连续地址的多个字节中。存在可字寻址的计算机,其中最小可寻址存储单元正是处理器的字。例如,Data General Nova小型机,以及Texas Instruments TMS9900和National Semiconductor IMP-16微型计算机使用16位字,并且有许多36位主机计算机(例如,PDP-10)使用18位字寻址,不是字节寻址,给出2 ^ 18个36位字的地址空间,大约1兆字节的存储空间。存储器寻址的效率取决于用于地址的总线的位大小 - 使用的位越多,计算机可用的地址就越多。例如,具有20位地址总线的8位字节可寻址机器(例如Intel 8086)可以寻址2 ^ 20(1,048,576)个存储器位置,或者一个MiB内存,而32位总线(例如Intel) 80386)处理2 ^ 32(4,294,967,296)个位置或4 GiB地址空间。
答案 2 :(得分:0)
芯片上的电气接口包括(非常简化)地址线(例如32条地址线)和数据线(例如,8条线用于读取来自RAM的数据,8条线用于写入数据) RAM)。在这种情况下,您有2 ^ 32个8位字,因此您可以处理2 ^ 32 * 8位数据。
如果你有一个字宽为16位的RAM(比8位更可能),你可以用相同数量的地址位寻址两倍的RAM。在现代系统中,你不能真正“读取一个字节”,而是CPU从RAM中取出一个完整的缓存行,然后只返回你要求的字节。