32位和64位处理器有什么区别?

时间:2010-12-29 09:27:27

标签: 64-bit hardware 32bit-64bit 32-bit processors

我一直试图读取32位和64位处理器(http://en.wikipedia.org/wiki/32-bit_processing)。我的理解是32位处理器(如x86)具有32位宽的寄存器。我不确定这意味着什么。所以它有特殊的“内存空间”,可以存储最多2 ^ 32的整数值?

我不想听起来很愚蠢,但我不知道处理器。我假设64位通常优于32位。虽然我的电脑现在(一年前,Win 7,Intel Atom)有一个32位处理器。

10 个答案:

答案 0 :(得分:36)

所有计算均在寄存器中进行。当你在代码中添加(或减去或者其他)变量时,它们会从内存加载到寄存器中(如果它们还没有存在,但是你可以声明无限数量的变量,寄存器的数量)是有限的)。因此,拥有更大的寄存器允许您在同一时间执行“更大”的计算。并不是说这种尺寸差异在实际中对于常规程序而言非常重要(因为至少我很少操纵大于2 ^ 32的值),但这就是它的工作原理。

此外,某些寄存器用作指向内存空间的指针,因此限制了可以引用的最大内存量。 32位处理器只能引用2 ^ 32字节(大约4 GB的数据)。 64位处理器可以更明显地管理很多。

还有其他后果,但这些是我想到的两个。

答案 1 :(得分:19)

处理器通过将其地址提供给MAR(存储器地址寄存器)来从存储器(即RAM)调用数据。选择器电子设备然后在存储器组中找到该地址并检索数据并将其放入MDR(存储器数据寄存器)中。该数据被记录在处理器中的一个寄存器中以供进一步处理。这就是为什么数据总线的大小决定了处理器中寄存器的大小。现在,如果我的处理器有32位寄存器,它一次只能调用4字节大小的数据。如果数据大小超过32位,则需要两个周期的获取以获取数据。与64位相比,这会降低32位机器的速度,这将仅在一个取指周期内完成操作。因此,对于较小的数据而言,如果我的处理器以相同的速度运行,则没有任何区别。 同样,对于64位处理器和64位操作系统,我的指令总是64位大小......这会不必要地占用更多的内存空间。

答案 2 :(得分:18)

第一个32位和64位称为体系结构。

这些架构意味着微处理器将在一个指令周期内处理多少数据,即fetch-decode-execute

根据处理器设计,在一秒钟内可能会有数千到数十亿的指令周期。

32位表示微处理器可以在一个指令周期内执行4个字节的数据,而64位表示微处理器可以在一个指令周期内执行8个字节的数据。

由于微处理器需要与计算机的其他部分通信以获取和发送数据,即存储器,数据总线和视频控制器等,因此它们理论上也必须支持64位数据传输。但是,由于兼容性和成本等实际原因,其他部分仍可能以32位与微处理器通信。这种情况发生在最初的IBM PC中,其微处理器8088能够以16位执行,同时由于成本和与现有部件的兼容性而与8位的计算机的其他部分通信。

想象一下,在32位计算机上,你需要写一个'作为' A'即在CAPSLOCK中,所以操作只需要2个字节,而计算机将读取4个字节的数据,从而产生开销。这种开销在64位计算机中增加到6个字节。因此,64位计算机不一定都很快。

请记住,只有64位窗口支持64位执行才能在微处理器上运行。

答案 3 :(得分:2)

32位处理器可以使用32位地址寻址存储区。因此,您可以拥有2 ^ 32个内存单元,因此可以使用有限数量的可寻址内存(~4GB)。即使您在计算机上添加了另一个内存条,也无法解决。因此,64位机器可以处理多达2 ^ 64个存储单元。

答案 4 :(得分:0)

来自here

  

32位处理器和64位处理器之间的主要区别是   他们的运作速度。 64位处理器可以采用双核,四核   核心,家庭计算的六个核心版本(八核心   版本即将推出)。多核允许增加处理   电源和更快的电脑操作。需要的软件程序   许多计算功能在多核64位上运行得更快   处理器,大多数情况下。重要的是要注意64位   计算机仍然可以使用基于32位的软件程序,即使是在   Windows操作系统是64位版本。

     

32位处理器和64位处理器之间的另一个重大区别   是支持的最大内存量(RAM)。 32位   计算机支持最大3-4GB的内存,而64位   计算机可以支持超过4 GB的内存。这很重要   用于图形设计,工程的软件程序   设计或视频编辑,执行许多计算   渲染图像,绘图和视频片段。

     

有一点需要注意的是,3D图形程序和游戏并没有受益   很多,如果有的话,从切换到64位计算机,除非   程序是一个64位程序。 32位处理器适用于任何处理器   为32位处理器编写的程序。在电脑游戏的情况下,   通过升级视频卡,您将获得更多性能   得到一个64位处理器。

     

最后,64位处理器变得越来越普遍   在家用电脑。大多数制造商使用64位构建计算机   处理器由于价格便宜而且现在有更多用户使用   64位操作系统和程序。电脑配件零售商是   提供越来越少的32位处理器,很快就不会提供   一点都不。

答案 5 :(得分:0)

32位和64位基本上是寄存器大小,注册最快的存储器类型并且最接近CPU。与32位寄存器相比,64位处理器可以存储更多用于寻址和传输的数据,但还有其他因素还可以根据处理器的速度进行测量,例如内核数,高速缓存,架构等。 / p>

参考:Difference between 32-bit processor and 64-bit processor

答案 6 :(得分:0)

  

来自what is the meaning of 32 bit or 64 bit process??   作者:kenshin123:

     

进程的虚拟地址是地址的映射   与系统上的实际物理内存对应的表。对于   效率和安全性的原因,内核创建了一个抽象   对于一个给它一个拥有自己地址的错觉的过程   空间。这种抽象称为虚拟地址空间。这只是一个   指向物理内存的指针表。

     

因此,给出了大约2 ^ 32或4GB的地址空间的32位进程。什么   这意味着该过程是一个32位的页面   表。此外,此页表具有映射到4GB的32位VAS   记忆在系统上。

     

是的,64位进程具有64位VAS。这有意义吗?

答案 7 :(得分:0)

此答案可能为时9年,但我认为上述答案未能充分回答问题。

任何标准机构都没有很好地定义或规范32位和64位的定义。它们仅仅是直观的概念。 32位或64位CPU通常指CPU指令集体系结构(ISA)的本机字长。那么什么是ISA,什么是字长?

ISA和字长

ISA是CPU使用的机器指令/汇编助记符。它们是软件的最低级别,可以直接告诉硬件要做什么。示例:

ADD r2,r1,r3   # add instruction in ARM architecture to do r2 = r1 + r3
               # r1, r2, r3 refer to values stored in register r1, r2, r3
               # using ARM since Intel isn't the best when learning about ISA

字长的旧定义是CPU在一个指令周期内可以计算的位数。在现代环境中,字长是寄存器的默认大小或基本指令所作用的寄存器的大小(我知道我在此定义中存在很多歧义,但这是跨多个体系结构的直观概念,并不完全匹配彼此之间)。示例:

ADD16 r2,r1,r3 # perform addition half-word wise (assuming 32 bit word size)

带有PAE的奔腾Pro CPU的位精度示例

首先,通用说明中的各种单词大小:

  • 算术逻辑指令:32位(请注意,这违反了字长的概念,因为乘法和除法需要一个以上的周期)
  • 分支,跳转指令:32位用于间接寻址,16位用于立即寻址(同样,由于CISC ISA,Intel并不是一个很好的例子,并且这里有足够的复杂性)
  • 移动,加载和存储:间接使用32位,立即使用16位(这些指令可能需要几个周期,因此旧的字长定义不成立)

硬件架构中的第二,总线和内存访问大小:

  • 虚拟地址转换前的逻辑地址大小:32位
  • 虚拟地址大小:64位
  • 物理地址大小的转换后:36位(系统总线地址总线)
  • 系统总线数据总线大小:256位

因此,从上述所有大小来看,大多数人直观地将其称为32位CPU(尽管在ALU字大小和地址位大小上没有明确的共识)。

这里要注意的有趣点是,在过去的70年代和80年代,有些CPU体系结构的ALU字大小与内存访问大小大不相同。另外请注意,我们甚至还没有在非通用说明中处理这些怪癖。

关于Intel x86_64的说明

与普遍的看法相反,x86_64不是真正意义上的64位体系结构。它是一种32位体系结构,支持可以执行64位操作的扩展指令。它还支持64位逻辑地址大小。英特尔自己将其称为ISA IA32e(扩展了IA32,IA32是其32位ISA)。

参考文献

ARM instruction examples

Intel addressing modes

答案 8 :(得分:-4)

一个字节有8位,所以如果它的32位你正在处理4字节的数据,无论ghz还是mhz,你的cpu都是以每秒钟为时钟。所以如果有64位cpu和32位cpu以相同的速度运行,那么64位cpu会更快

答案 9 :(得分:-4)

32位处理器每秒处理基于处理器Ghz的32位数据,64位处理器每秒处理64位数据的速度。 34位处理器也可以使用4GB RAM。