0


【CPU 架构】x86、x86_64、x64、arm64、aarch64

x86、x86_64、x64、arm64、aarch64 

1.服务器分类

按照 CPU 体系架构来区分,服务器主要分为两类:

  • 非 x86 服务器:使用 RISC(精简指令集)或 EPIC(并行指令代码)处理器,并且主要采用 UNIX 和其它专用操作系统的服务器,指令系统相对简单,它只要求硬件执行很有限且最常用的那部分执令,CPU 主要有 Compaq 的 Alpha、HP 的 PA-RISC、IBM 的 Power PC、MIPS 的 MIPS 和 SUN 的 Sparc、Intel 研发的 EPIC 安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统。
  • x86 服务器:又称 CISC(复杂指令集)架构服务器,即通常所讲的 PC 服务器,它是基于 PC 机体系结构,使用 Intel 或其它兼容 x86 指令集的处理器芯片的服务器。目前主要为 Intel 的 Xeon E3E5E7 系列,价格相对便宜、兼容性好、稳定性较差、安全性不算太高。

在这里插入图片描述

2.CPU 架构

CPU 架构:x86 架构arm 架构

  • Intel(英特尔)与 AMD(超威半导体)是 x86 架构 CPU 制造商。
  • ARM 公司是 arm 架构 CPU 制造商。

2.1 x86 架构:x86、x86_64、x64

  • x86x86_64:基于 x86 架构的不同版本, 位数不同 32 32 32 位和 64 64 64 位
  • x86 版本是 Intel 率先研发出 x86 架构。
  • x86_64 版本(也称 x64)是 x86 的 64 64 64 位版本,由 AMD 率先研发,所以 x86_64 也叫 amd64
  • x86_64 = x64 = amd64

2.2 arm 架构:arm64 和 aarch64

  • arm64 = aarch64
  • arm 的历史遗留问题,arm64aarch 都曾代指过 64 64 64 位 arm 程序,目前 arm64aarch64 概念已合并,新版 64 64 64 位 arm 程序统称 aarch64

在这里插入图片描述

3.发展历史

x86

是指 Intel 开发的一种

     32 
    
   
  
    32 
   
  
32 位指令集,从  
 
  
   
   
     386 
    
   
  
    386 
   
  
386 开始时代开始的,一直沿用至今,是一种 CISC 指令集,所有 Intel 早期的 CPU,AMD 早期的 CPU 都支持这种指令集,Intel 官方文档里面称为 
IA-32

x86

CPU 开始迈向

     64 
    
   
  
    64 
   
  
64 位的时候有  
 
  
   
   
     2 
    
   
  
    2 
   
  
2 种选择:
  • 向下兼容 x86
  • 完全重新设计指令集,不兼容 x86

AMD 抢跑了,比 Intel 率先制造出了商用的兼容

x86

的 CPU,AMD 称之为

amd64

,抢了

     64 
    
   
  
    64 
   
  
64 位 PC 的第一桶金,得到了用户的认同。

Intel 选择了设计一种不兼容

x86

的全新

     64 
    
   
  
    64 
   
  
64 位指令集,称之为 
IA-64

(这玩意似乎就是安腾),但是比 AMD 晚了一步,而且

IA-64

也挺惨淡的,因为是全新设计的 CPU,没有编译器,也不支持 Windows(微软把 Intel 给忽悠了,承诺了会出安腾版

windows server

版,但是迟迟拿不出东西)。后来不得不在时机落后的情况下也开始支持

amd64

的指令集,但是换了个名字,叫

x86_64

,表示是

x86

指令集的

     64 
    
   
  
    64 
   
  
64 扩展,大概是不愿意承认这玩意是 AMD 设计出来的。

实际上,

x86_64

x64

AMD64

基本上是同一个东西,我们现在用的 Intel / AMD 的桌面级 CPU 基本上都是

x86_64

,与之相对的

arm

ppc

等都不是

x86_64

x86

x86_64

主要的区别就是

     32 
    
   
  
    32 
   
  
32 位和  
 
  
   
   
     64 
    
   
  
    64 
   
  
64 位的问题,
x86

中只有

     8 
    
   
  
    8 
   
  
8 个  
 
  
   
   
     32 
    
   
  
    32 
   
  
32 位通用寄存器:
eax

ebx

ecx

edx

ebp

esp

esi

edi

x86_64

把这

     8 
    
   
  
    8 
   
  
8 个通用寄存器扩展成了  
 
  
   
   
     64 
    
   
  
    64 
   
  
64 位的,并且比 
x86

增加了若干个寄存器(好像增加了

     8 
    
   
  
    8 
   
  
8 个,变成了总共  
 
  
   
   
     16 
    
   
  
    16 
   
  
16 个通用寄存器)。同样的 MMX(MultiMedia eXtensions,多媒体扩展)的寄存器的位数和数量也进行了扩展。此外 CPU 扩展到  
 
  
   
   
     64 
    
   
  
    64 
   
  
64 位后也能支持更多的内存了,等等许多好处。

对于普通程序来说,CPU 位数的扩展、寄存器数量的增加不会带来明显的性能提升,比如 IE 浏览器、Office 办公这类的软件。特定的程序很能够充分利用

     64 
    
   
  
    64 
   
  
64 位 CPU、更多的寄存器带来的优势,比如 MMX 除了能提升多媒体程序的性能,对矩阵、多项式、向量计算都能带来提升,更多的 MMX 寄存器、更大的寄存器字长都有利于 SIMD 指令的执行,能够提升 CPU 对数据的吞吐量(RISC 指令集的 CPU 动不动就有数百个寄存器,可以有效的缓存中间计算结果,不需要把中间结果写入内存,从而减少内存访问次数,显著提升性能)。
标签: 架构 cpu x86

本文转载自: https://blog.csdn.net/be_racle/article/details/134764629
版权归原作者 G皮T 所有, 如有侵权,请联系我们删除。

“【CPU 架构】x86、x86_64、x64、arm64、aarch64”的评论:

还没有评论