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

问题描述 投票:36回答:10

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

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

64bit hardware 32bit-64bit 32-bit processors
10个回答
37
投票

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

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

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


-4
投票

32位处理器每秒处理基于Ghz of Processor的32位数据,64位处理器每秒处理64位数据的速度。此外,34位处理器可与4GB RAM配合使用。


19
投票

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


18
投票

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

这些架构意味着微处理器将在一个指令周期内处理多少数据,即获取 - 解码 - 执行

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

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

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

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

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


2
投票

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


0
投票

来自here

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

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

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

最后,64位处理器在家用计算机中变得越来越普遍。由于价格较低以及现在有更多用户使用64位操作系统和程序,大多数制造商使用64位处理器构建计算机。计算机零件零售商提供越来越少的32位处理器,很快就不会提供任何产品。


0
投票

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

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


0
投票

来自kazshs123的what is the meaning of 32 bit or 64 bit process??

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

因此,给出了大约2 ^ 32或4GB的地址空间的32位进程。这意味着该过程是一个32位页表。此外,此页表还有一个32位VAS,可映射到系统上的4GB内存。

所以,是的,64位进程具有64位VAS。那有意义吗?


0
投票

这个答案可能已经晚了9年,但我觉得上面的答案没有充分回答这个问题。

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

ISA and word size

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)

Example bit-ness of a Pentium Pro CPU with PAE

首先,通用指令中的各种字大小:

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

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

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

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

值得注意的是,在过去(70年代和80年代),存在CPU架构,其ALU字大小与其内存访问大小非常不同。另请注意,我们甚至没有处理非通用指令中的怪癖。

Note on Intel x86_64

与流行的看法相反,x86_64不是最真实意义上的64位架构。它是一个32位架构,支持可以执行64位操作的扩展指令。它还支持64位逻辑地址大小。英特尔自己称之为ISA IA32e(IA32扩展,IA32为32位ISA)。

References

ARM instruction examples

Intel addressing modes


-4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.