我很困惑我的导师谈到的许多术语,例如word
,byte addressing
和memory location
。
我的印象是32-bit processor
,
它可以解决2^32 bits
,4.29 X 10^9 bits (NOT BYTES)
。
我现在的想法是:
memory
就像array
buckets
1 byte length
{。}}。{/ 1>
当我们说byte addressing
(我猜这是最常见的)时,每个char
都是1 byte
并从第一个存储桶中检索(例如)。
对于int
,4 bytes
将little-endian ordering
放在一起以计算Integer
值。
所以每个内存,我看作8 bits
或1 byte
,它可以放弃2^8 locations
,这远远小于cpu
可以解决的内容。
在我看来,有一些非常基本的错误理解,如果一些专家可以简单地解释一个CS-专业的学生可以永远解决它。
我已经阅读了包含这一个on word的各种页面,unit of address resolution
8b
为ARM
{{1}},这增加了我的困惑。
答案 0 :(得分:13)
处理器使用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。
答案 1 :(得分:-1)
对于一位,你将有0或1和对于两位,你将有00,01,10,11。对于8位,你将有2 ^ 8这是256个地址值。地址和数据是单独的术语。地址是位置,数据是该位置的内容。数据宽度(内容)是您可以在一个存储单元地址中存储的位数。(想象一下带有卧室的公寓 - 每栋公寓在建筑物中有两间卧室)和数据深度(地址)是如何您可以拥有的许多地址(在建筑物中您将拥有多少公寓#1至#1400等)。 CPU寄存器中的一位可以引用存储器中的单个字节,就像公寓号中的一个数字可以引用一个公寓。 SIMM模块RAM具有32位数据宽度,DIMM模块具有64位数据宽度。它意味着在DIMM中的一个存储器地址中,它存储64位数据。可以通过两条线复用多少个地址(两位处理),可以生成4个地址。 (如果它是DIMM模块,则每个地址可以容纳64位)。 32位处理装置,32线,2 ^ 32地址选项。即使64位处理具有64位寄存器而内部总线(线)为64位http://www.tech-faq.com/address-bus.html,地址总线最大值为44位。意味着英特尔超级服务器CPU安腾2可以实现2 ^ 44最大寻址。