64位/32位的较低级别优势和缺点是什么?
-
16-09-2019 - |
题
我敢肯定,我们都听过术语64bit和32bit的抛弃,但是它们实际上是什么意思?
我很确定他们与内存地址的大小有关。在64位机器上,对象的引用为64位。但是我想更深入地挖掘。
人们经常听到“ 64位机器”一词。计算机的哪一部分实际上是针对零件数的?处理器?操作系统?
拥有更大的内存地址的优势是什么?
我可以添加更多问题,但我认为摘要更好。
谢谢大家:D
解决方案
64位是指寄存器的宽度,记忆地址解决空间等。一个好处是能够解决超过4GB内存的能力。
维基百科有 有关64位计算的文章 还有更多细节。
编辑: 优点 更多记忆是,操作系统和程序具有更多的虚拟地址空间-16个exabytes(172亿GB) - 更重要的是,可以将更多的物理内存添加到系统并解决,从而减少了虚拟内存的交换。往返磁盘。
更广泛的寄存器和数据总线的优势在于,移动相同数量的数据更容易,更快。现在可以使用一个或两个以上的寄存器进行操作。
因此,重新编译64位软件时,通常会提高性能。
一个 坏处 是,较宽的数据可能意味着相同数据所占的空间。例如,存储数字300需要九个位。如果将其存储在32位整数中,则浪费了23位。在64位,浪费变成55位。因此,如果不进行重新处理,则简单的重新编译到64位可以更快地产生,但软件稍微稍微膨胀。
编辑:还有 64位技术页面 这里:
- 英特尔®64体系结构
- AMD64解决方案
- IBM: 从堆栈:使过渡到64位
- IBM: 将Linux应用程序移植到64位系统
- IBM: 64位计算决策者指南
- CodingHorror: 是时候在桌面上64位了吗?
- Classicars: 64位计算和X86-64的简介
其他提示
区别正好是32位;-)
您需要64位硬件(处理器)才能运行64位OS。您需要一个64位操作系统才能运行64位软件。这是依赖性。
- 在32位系统中,您仅限于解决4 Gibyte(2^32)内存,在64位中,理论限制为2^64字节。
- 64位软件需要更多的内存,主要用于指针8个字节而不是4个字节
- 在x86_64上,64位可执行文件需要更多的内存,因为还有许多指令的额外码,因此运行速度可能会较慢
- 在x86_64上,64位软件可以使用更多的寄存器,并且有可能更快地运行
- 64位系统可以直接解决更多的内存
- 64位系统可以在块中处理数据的两倍至32位,这有助于某些操作更快地进行
对于某些程序,例如Office Automation Suites,32位比64位几乎没有可观察到的差异。
但是,对于其他应用程序,例如数据库,图形/视频处理或托管虚拟机,能够立即达到更多的物理内存并能够使用每种指令处理更多信息,可以在性能上产生巨大差异。
请注意,今天,许多32位芯片具有64位扩展功能,因为许多芯片 FPU (数学)或 SSMD (向量)操作已经以64位模式完成。
看 32位与64位系统:有什么区别? 更多。
CPU寄存器和内存寻址。
系统可以引用(请参阅)更多内存。
我认为最好的答案是x86位x64汇编器中的比较
当您的x32位程序注册一个变量时,例如整数(5),代码等同于此:
push 5
为了更好地理解事物,“ push x”是一个快捷方式:
sub esp,4 //substracts esp with 4(4*8=32 bits.That's the size of a pointer in x32 executables) in order to make space for our variable
mov [esp],X //moves variable in @esp
这些寄存器是32位(4个字节长),这是任何32位编程语言中指针的大小。
在64位代码中,但是尺寸大两倍,寄存器也是如此。寄存器ESP存在于X64可执行文件中,但并未像X32可执行文件中那样被广泛使用。
取而代之的是,所有寄存器都在其名称前获得“ R”(EAX变为RAX,ESP变为RSP,EDX成为RDX等)。
因此,我们在x64中可执行文件中的代码不会有什么不同,除了“ push x”的快捷方式将是
sub esp,8
mov [rsp],X
RSP的大小是ESP -64位,8个字节的两倍。
最重要的是,X64位可执行文件比x32位可执行文件使用更多的内存。
让我们回到基础知识。
如今,99%的计算机是基于所谓的 冯·诺伊曼建筑. 。本质上,计算机处于恒定周期:
- 从RAM获取命令
- 在CPU上执行命令
(资源: wikimedia.org)
当指参考32/64位系统(或任何其他位尺寸)时,本质上,您正在谈论计算机的体系结构和实现:
- 内存空间的大小(RAM)
- CPU寄存器的大小
- 公交大小(即CPU,RAM,I/O等之间...)
如果您有一个64位系统,则有一个地址空间 2^64
. 。这就是为什么32位系统不能具有超过4GB的RAM的原因。您如何解决比大于 2^32
?
关于性能差异,没有明确的答案(就像CISC或RISC架构更好的情况下没有明确的答案一样)。这在很大程度上取决于您使用的应用程序。
总而言之:64位体系结构只是构建计算机的不同方法。这并不意味着它是更好的,或更糟的,也不意味着事情有所不同(在低级别上,每个计算机都在执行提取)。简直就是 实施计算机的另一种方式.
正是64位或32位引用,仅到主总线的宽度。