内存地址通常以位为单位

eag*_*arn 6 memory byte processor cpu-architecture cpu-word

我有这么多的术语感到困惑,例如,我的教练会谈word,byte addressingmemory location.

我的印象是,对于a 32-bit processor,它可以解决2^32 bits,这是4.29 X 10^9 bits (NOT BYTES).

我现在的想法是:

memory是像arraybuckets每一个的1 byte length.

当我们说byte addressing(我猜这是最常见的)时,每个char都是1 byte从第一个桶中检索出来的(例如).为了int下一个4 bytes被放在一起来little-endian ordering计算Integer价值.

所以每一个记忆,我认为它,8 bits或者1 byte,它可以放弃2^8 locations,这远远小于cpu可以解决的问题.

在我看来,有一些非常基本的误解,如果一些专家可以用简单的术语解释一个CS-专业的学生可以永远这样做.

我已阅读各种网页,包括这一项上的字,并在这里unit of address resolution给出8bARM,它增加了更多的我的困惑.

Typ*_*eIA 14

处理器使用32位来存储地址.使用32位,您可以存储2 ^ 32个不同的数字,范围从0到2 ^ 32 - 1."字节寻址"表示存储器中的每个字节都是可单独寻址的,即存在指向该特定字节的地址x.由于可以将2 ^ 32个不同的数字放入32位地址,因此我们可以处理最多2 ^ 32个字节或4 GB.

听起来关键的误解是"字节寻址"的含义.这只意味着每个字节都有自己的地址.地址本身仍然由多个字节组成(在这种情况下为4,因为四个8位字节一起被解释为一个32位数字).

我的印象是,对于32位处理器,它可以处理高达2 ^ 32位,即4.29 X 10 ^ 9位(非BYTES).

通常情况并非如此 - 位级寻址非常罕见.字节寻址更为常见.但是,您可以设计一种以这种方式工作的CPU.在那种情况下,正如您所说,您将能够处理最多2 ^ 32位= 1 GBytes.