位、字节、字长

计算机使用二进制表示信息,每一个二进制数是一位(单位为bit),但是只能表示两种状态,表达信息的能力及其有限,因此将多个位进行组合成一组,称为字节(Byte)。一个字节的长度通常为8位。在计算机硬件中,可以同时处理多位bit,这同时取决于操作系统与硬件,通常是字节的整数倍,称为字(Word),其包含的位的长度称为字长,通常为32或64位
image.png

存储器

除了CPU要处理二进制码之外,存储器需要对这些二进制码进行存储。
像这样
image.png
信息存储在存储器中,需要解决一个问题,如何知道信息存储的具体位置,一个较好的解决方法是地址,为存储器中的这些信息单元都对应一个地址,这样就可以精确的找到所需要的信息。

  • 不过为每一个bit赋予地址并不是很有必要
    • 因为信息表示的基本单位是字节,而不是位
    • 并且CPU与内存进行交互的时候使用的是地址总线,可同时表示n位0/1二进制码,这决定了所能表示地址的最大数量,如32的地址总线,最多能表示内存单元与寻址 - 图3个地址。

因此往往是给单个字节赋予地址。

  • 早期也有为单个字或半个字赋予地址的情况,现在一般都是按字节编址。
    按字节编址
    即每一个字节对应一个地址。逻辑上可以按照如下方式进行地址分配
    分配方式big-endian
    image.png
    分配方式little-endian
    image.png

    存储器操作

    CPU控制存储器进行操作,如读写
    image.png
    指令与数据存储在内存中,要执行指令CPU就要用从内存中获取指令,CPU通过控制总线说明要进行的操作,通过地址总线说明操作的地址,数据总线则是传送要从CPU写入内存指定地址的数据或是从内存处读取到发送给CPU的数据,具体取决于控制指令