64位CPU/OS简史

https://www.expreview.com/77702.html

1960年代64位的CPU就已用在超级计算机上,到了1990年代64位处理器开始应用于工作站与服务器,个人电脑是在AMD 2003年推出速龙64后才开始渐渐普及,而手机上用的64位处理器ARMv8-A架构是2011年发布的。

CPU位宽指的是CPU能方便地处理的最大的二进制位数,如8086 CPU是16位的,可以一次处理2个字节(16个bit),80386 CPU是32位,能一次处理4个字节,目前的CPU基本上64位的了,一次能处理8个字节。

算数

16位:sizeof(int) = sizeof(short) = 2; sizeof(long) = 4; AX, BX寄存器都是16位。DX:AX两个拼起来放32位

32位:sizeof(int) = sizeof(long) = 4; EAX等寄存器32位

64位:sizeof(int) = 4; sizeof(long) = 8; RAX等寄存器64位

地址

8086用段寄存器+段内偏移量可访问20位地址 (1MB),指针void*还分near和far.

  • near, far, wherever you are?

80286首先用在IBM AT上,再加上某个寄存器的某位,实模式下可访问1MB以上的内存。比如该位为0时1MB以下,为1时视为addr + 1MB

奔腾MMX处理器所引入的MMX指令集开创了x86处理器支持SIMD操作的先河,该指令集定义了8个64位的浮点向量两用寄存器,而奔腾MMX本身只是个32位处理器。

MMX技术借用了处理器的浮点单元(FPU)的80位寄存器中的低64位作为其MMX寄存器(MM0至MM7)。由于这些寄存器是共享资源,如果在MMX操作后不进行清理,后续的浮点运算就可能因寄存器状态混乱而得到错误的结果emms指令的作用清空这些MMX寄存器,使其恢复到可供浮点运算正常使用的初始状态。因此,在包含MMX指令的代码段末尾,需要使用emms指令来复位寄存器从SSE起不再需要这样做。

奔腾MMX的最大意义是可以软解VCD. 看352x288分辨率的机器,能买1平米房子:2000多。现在花10万买个能看8K视频的?不是8K 100寸电视,仅仅是播放器。

目前CPU内部最大的是AVX-512指令集所用的512位寄存器(64个字节)。

Physical Address Extensions (PAE) is a feature that allows 32-bit processors to access a physical address space larger than 4 gigabytes. 

64位CPU的地址总线位宽一般采用的是36位或者40位,它们寻址的物理地址空间为64GB或者1T。

虚拟地址经过段页式转换成为物理地址。虚拟地址可以有洞不连续,比如从0开始一块,从2^64-1向下一块。

Windows 7 32位只能识别4GB内存,但同为32位的Windows Server 2003/2008却可用使用4GB以上的内存,因为它们支持PAE物理地址扩展技术。

Windows 7 32位通常保留约768MB的地址空间用于硬件映射(如显卡显存),因此实际可用内存约为4GB减去保留空间,即3.25GB左右‌不同硬件配置下,保留空间大小可能略有差异,导致可用内存可能在3.2GB至3.5GB之间浮动。

PAE除了CPU自身支持之外,还需要芯片组、主板还有操作系统的支持才行,比如一些旧主板就不支持大于4GB物理内存,而微软也没有把PAE功能开放到32位的家用操作系统中,即使是Windows Server系统,如果不是企业版的也没有开放PAE功能。32位版的系统可通过破解开启以支持4GB以上内存。

我拿着自己6GB内存的手机陷入了沉思:

  • 现在12/16 GB内存的手机,都比我手里的重,旧手机坏了后买不到轻的咋办
    • 8G内存的电脑会不会有意见。 10万词2MB,猴年马月能整理完 
  • 以前还root手机,现在豌豆荚之类的网站好像都不行了吧
  • Long live 下载的1000多集象棋视频
posted @ 2025-11-16 10:11  华容道专家  阅读(17)  评论(0)    收藏  举报