2.2.2 内存地址【译】
内存由许许多多单元(或场所)组成,每个都能存储一块信息。每个单元有个编号,称作地址,程序可以通过该地址找到对应的单元。如果内存有n个单元,他们的编号就是0到n-1。一个内存中的所有单元拥有相同数量的比特。如果一个单元有k个比特,它能保存任意2^k种比特组合之一。图2-9展示了96位内存的三种组织方式。注意相邻的单元有着连续的地址(按定义)。
计算机使用二进制数字系统(包括八进制和十六进制符号)来把内存地址表示为二进制编号。如果一个地址有m位,则单元的最大可编址编号是2^m。比如指向图2-9(a)的地址至少需要4位,用来表示从0到11的所有编号。然而一个3比特地址对于图2-9(b)和2-9(c)来说足够了。地址编码的位数决定了内存中直接寻址单元的最大数量,并且该位数和每个地址单元能存放的比特数没有关联。一个有着2^12个单元,每单元存放8比特的内存和一个有着2^12个单元,每个单元存放64比特的内存都需要12位地址。
图2-10列出了曾经出售过的某些计算机中每个内存单元存放比特的数量。
内存单元的重要性体现在最小可编址单元上。最近几年,几乎所有的计算机厂商都标准化了8比特存储单元,又称作(byte)字节。也可以用术语octet。多个字节组织成一个字。32位字的计算机有着4字节/字,64位计算机有着8字节/字。字的重要性在于,大部分指令都操作完整的字,比如把两个字相加。因此32位计算机由32位寄存器和32位指令来操作32位的字,反之,64位计算机有着64位寄存器和64位指令,用于移动,加,减,和其他对64位字的操作。