对于32位或64位的程序来说,这意味着什么? [英] What does it mean for a program to be 32 or 64 bit?

查看:0
本文介绍了对于32位或64位的程序来说,这意味着什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个问题:How many bits does a WORD contain in 32/64 bit OS respectively?,提到字大小是指处理器寄存器的位大小--我认为它是指计算机处理器操作的位数/即处理器操作的最小"不可分割"位数。

对吗?使用Word/Excel等软件,安装者可以选择32位或64位安装。有什么不同?

由于计算机体系结构是固定的,在我看来,‘32位’的软件将被设计成与具有32位体系结构的计算机体系结构保持一致。而64位程序将努力使指令集与64位字长对齐。

正确吗?

这里提出了一个非常类似的问题:From a programming point of view, what does it mean when a program is 32 or 64 bit?-可接受的答案提到,区别在于可以分配给应用程序的内存量。但这太模糊了--除非32位/64位软件作为一个概念与32位/64位字处理器的大小完全无关?

推荐答案

单词大小是一个主要差异,但不是唯一的差异。它倾向于定义一个CPU被"评级"的位数,但字长和总体能力只是松散的关系。整体能力才是最重要的。

在Intel或AMD CPU上,32位与64位软件实际上指的是CPU运行时的运行模式。32位模式的可用寄存器和指令更少/更小,但最重要的限制是可用的内存量。32位软件通常只能使用2 GB到略低于4 GB的内存

内存的每个字节都有一个唯一的地址,这与每个家庭都有一个唯一的邮寄地址没有太大区别。内存地址只是一个数字,一旦程序将数据保存到内存中,它就可以用来再次查找数据,内存的每个字节都必须有一个地址。如果一个地址是32位,那么有2^32个可能的地址,这意味着2^32个可寻址的内存字节。在当今的Intel/AMD CPU上,内存地址的大小与寄存器的大小相同(尽管情况并不总是如此)。

对于32位地址,程序可以寻址4 GB(2^32字节),但是操作系统保留了多达一半的空间。放入可用存储空间必须适合程序代码、数据,通常还包括要访问的文件。在今天的个人电脑中,有许多GB的RAM,这无法利用可用内存。这就是64位变得流行的主要原因。64位CPU已经存在并被广泛使用了几年(通常是在32位模式下),直到超过2 GB的内存变得普遍,在这一点上,64位模式开始提供实际的优势,并变得流行起来。64位内存地址空间提供了16艾字节(~18万亿字节)的可寻址内存,这超出了任何当前软件所能使用的范围,当然也没有哪台PC拥有接近那么大的RAM。

典型应用程序中使用的大多数数据,即使是在64位模式中,也不需要是64位的,因此大多数数据仍然以32位(甚至更小)的格式存储。常见的ASCII和UTF-8文本表示法使用8位数据格式。如果程序需要将一大块文本从内存中的一个位置移动到另一个位置,它可能会尝试一次移动64位,但如果它需要解释文本,它可能会一次移动8位。同样,32位是整数的常见大小(最大范围为+/-2^31,约为+/-21亿)。21亿的射程对许多用途来说都足够了。图形数据通常自然地逐个像素表示,每个像素通常最多包含32位数据。

不必要地使用64位数据有其缺点。64位数据在内存中占用更多空间,在CPU缓存(CPU用于短期存储的非常快的内存)中占用更多空间。内存只能以最大速率传输数据,64位数据的大小是内存的两倍。如果浪费使用,这可能会降低性能。如果有必要同时支持32位和64位版本的软件,尽可能使用32位值可以缩小两个版本之间的差异,并使开发更容易(但并不总是这样)。

在32位之前,地址和字大小通常是不同的(例如,具有20位内存地址但具有16位寄存器的16位8086/88,或具有16位内存地址的8位6502,甚至具有26位地址的早期32位ARM)。虽然从来没有程序员对更好的寄存器不屑一顾,但内存空间通常是每一代先进技术的真正驱动力。这是因为大多数程序员很少直接使用寄存器,而是直接使用内存,而内存限制直接给程序员带来不快,在32位到64位的情况下,也会给用户带来不快。

总而言之,虽然各种位大小之间存在真实而重要的技术差异,但32位或64位(或16位或8位)真正意味着仅仅是倾向于与特定技术代的CPU相关联的功能的集合,和/或利用这些功能的软件。字长是其中的一部分,但不是唯一的,也不一定是最重要的部分。

来源:经历过所有这些技术时代的程序员。

这篇关于对于32位或64位的程序来说,这意味着什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆