Architecture 处理器的位(32或64位)是硬件还是软件上下文?

Architecture 处理器的位(32或64位)是硬件还是软件上下文?,architecture,cpu,cpu-architecture,Architecture,Cpu,Cpu Architecture,我遇到过一些情况,我真的希望我能正确看待这一现象。在Visual Studio中开发C#软件时,必须使用第三方库,该指令有时会包含用于64位处理器(例如)的库版本使用说明。诸如此类的事情让我相信,处理器的位大小(即64位或32位)是一个软件问题。然后又是操作系统的安装,有时你会听到类似“这个ISO映像适用于64位处理器”。当我意识到在计算机商店中,计算机的广告是RAM和HD大小、处理器名称和速度等(例如500GB HD、4GB RAM、英特尔赛扬处理器2.2Ghz…)从未听说过在该上下文中提到6

我遇到过一些情况,我真的希望我能正确看待这一现象。在Visual Studio中开发C#软件时,必须使用第三方库,该指令有时会包含用于64位处理器(例如)的库版本使用说明。诸如此类的事情让我相信,处理器的位大小(即64位或32位)是一个软件问题。然后又是操作系统的安装,有时你会听到类似“这个ISO映像适用于64位处理器”。当我意识到在计算机商店中,计算机的广告是RAM和HD大小、处理器名称和速度等(例如500GB HD、4GB RAM、英特尔赛扬处理器2.2Ghz…)从未听说过在该上下文中提到64位或32位

根据上述解释,

  • 64位或32位是软件(安装在操作系统上) 还是硬件
  • 如果上述情况属实,则安装64位驱动器是否安全 任何计算机上的操作系统(如Ubuntu 64位操作系统)或 硬件/处理器考虑因素

  • 您的ISO映像应该说“此ISO映像适用于64位操作系统”。(或者更具体地说是x86-64操作系统,因为x86不是世界上唯一的ISA。)

    • 64位内核(长模式)可以运行64位用户空间(长模式)或32位(兼容模式)。这只能在支持长模式(即支持64位)的硬件上运行
    • 32位内核(传统模式)只能运行32位用户空间(传统模式)。它也可以使用vm86模式运行16位软件,但64位内核不能(没有像VirtualBox这样的完全虚拟化)
    因此,32位操作系统可以将64位CPU限制为仅在32位模式下运行


    尽管我不确定64位MIPS和PowerPC是否是不同的模式(即,指令集中可能有空间添加64位指令,而不会像x86-64那样改变现有指令编码的含义),但即使在x86之外(模式名称除外),这些要点通常都是正确的

    64位ARM有点像x86-64:AArch64是一种新的ISA,但一些支持它的CPU可以运行ARM32用户空间进程(也可能运行ARM32操作系统)。但一些较新的苹果芯片完全放弃了对32位ARM模式的硬件支持。(AArch64是一个非常激进的改变,值得一做。AMD64与AMD64不同,AMD64非常保守,几乎没有清除x86的任何缺点,因为这些缺点使得解码和高效运行变得非常困难。(例如,移位使标志保持不变,计数=0)。这将节省解码器和其他地方的晶体管,因为32位模式可以共享更多晶体管。)



    在32位操作系统完全过时之前,您有时会看到64位Windows与32位Windows搭配的计算机广告

    像您所说的计算机广告总是针对包括操作系统的系统,因此CPU支持的仅与OEM相关;他们可以选择销售具有32位操作系统的64位计算机(实际上上网本上也是如此,因为64位Windows占用了更多的空间,因为它包含了两个库,而32位Windows不使用64位库)

    使用Linux,您可以进行纯64位安装,但很少有PC销售Linux。而且它不会节省太多空间,因为普通Linux安装只有几个关键的32位库,而不是所有库的第二个副本。不过,64位安装往往比纯32位安装占用更多空间。x86-64的代码大小通常稍大一些,即使指令计数较低


    x86-64还需要更多的RAM用于指针密集型数据结构的程序(除非您使用类似ABI的程序),这也是您仍然看到一些32位Windows的低端计算机销售的另一个原因。32位操作系统实际上可能比具有2GB或更少RAM的64位操作系统运行得更好。

    简单点说:CPU有“32位”和“64位”模式(如果支持的话)。对于两种模式,相同的机器代码(如X)意味着不同的内容。可以在每个进程的基础上选择此模式(实际上它比这更复杂),因此加载到进程地址空间的每个“内容”(如DLL)必须具有相同的位。C#(或更好的ICL)没有位,VS中的CPU设置意味着:将解释器创建为32/64/默认位。其中默认为操作系统位。在32位操作系统完全过时之前,您有时会看到带有64位Windows和32位Windows的计算机的广告。像您所说的计算机广告总是针对包括操作系统的系统,那么CPU是什么呢支持仅与OEM相关;他们可以选择销售带有32位操作系统的64位机器(实际上在上网本上仍然如此,因为64位Windows占用更多空间,因为它包含了这两个库,而32位Windows不使用64位库)。使用Linux,您可以进行纯64位安装,很少有电脑销售Linux。这可能属于超级用户,其中可能存在副本,特别是如果您只关心x86(但您没有将其标记为x86,所以我尝试让我的回答不完全针对x86)超级用户上没有完全相同的问题。超级用户上的相关问题并不是专门为了澄清软件/硬件上下文。但是,您的答案非常明确且相关。32位已过时,所有当前x86 CPU都支持64位模式(Geode微控制器除外…)但一般来说,可以根据型号查找(例如google
    i7-6700k
    ),也可以检查CPUID功能位:。不支持长模式的最新CPU是Intel Atom,比Silvermont早几代。