1

CPU架构基础知识点

 6 months ago
source link: https://www.biaodianfu.com/cpu-architecture.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在下载安装Linux或Linux软件时,有时需要选择不同的架构的版本,由于对CPU架构缺乏一定的了解,可能会导致一些混乱,今天就抽空整理下。

cpu-architecture-1.png

什么是CPU架构?

CPU架构,也称为微处理器架构, CPU架构(Central Processing Unit Architecture)指的是计算机处理器的设计和组织方式,包括指令集、寄存器、内存访问方式以及各种执行单元等。它定义了处理器如何执行指令、处理数据以及与其他系统组件进行交互。

CPU架构可以大致分为两类:

  • CISC(Complex Instruction Set Computing,复杂指令集计算): 这种架构的特点是具有大量的指令,每个指令可以执行复杂的操作。这大大减少了编程的复杂性,因为程序员可以使用较少的代码行来执行一个操作。然而,这也可能导致处理器效率降低,因为每个指令都需要更多的时间来执行。Intel的x86架构就是一个CISC架构的例子。
  • RISC(Reduced Instruction Set Computing,精简指令集计算): 这种架构的特点是具有较少的指令,每个指令只执行一个简单的操作。这可以提高处理器的效率,因为每个指令都可以在一次时钟周期内完成。然而,这也可能增加编程的复杂性,因为需要更多的代码行来执行一个操作。ARM架构就是一个RISC架构的例子。

CPU架构决定了处理器的功能、性能和兼容性。不同的CPU架构在指令集和内部实现上可能存在差异,因此软件和操作系统需要根据特定的CPU架构来编译和优化。

按照CISC(复杂指令集计算)和RISC(精简指令集计算)的划分方法,下面是一些常见的CPU架构:

CISC架构:

  • x86: 由Intel首创,并被AMD等公司采纳。这种架构广泛应用于个人计算机和服务器。
  • Motorola 68000: 由Motorola公司设计,用于早期的Apple Macintosh计算机,以及一些游戏机和嵌入式系统。

RISC架构:

  • ARM: 由ARM公司设计,广泛应用于移动设备,如智能手机和平板电脑等。
  • PowerPC: 由IBM、Apple和Motorola联合设计,曾经用于Apple的Macintosh计算机。
  • MIPS: 由MIPS Technologies公司设计,应用于一些嵌入式系统和网络设备。
  • SPARC: 由Sun Microsystems(现为Oracle公司)设计,主要应用于高性能服务器和工作站。
  • RISC-V: 是一个开源的RISC架构,旨在提供一种免费和开放的CPU架构标准,以支持各种硬件开发。

以上架构的选择,通常取决于特定的应用需求,包括但不限于功耗、性能、成本等因素。

CPU架构常见问题

i386、i686、x86-64有什么区别?

“i386″、”i686″和”x86-64″都是用于描述x86架构的CPU系列的术语,他们的区别主要在于处理器的bit数和一些指令集的差异。

  • i386: 这是Intel 80386微处理器的别名,这个处理器在1985年发布,是首款32位x86架构的微处理器。因此,”i386″通常用来表示32位的x86架构,这个术语也常用于软件编译,表示软件是为32位系统编译的。
  • i686: 这是Intel的P6微处理器系列的别名,该系列包括Pentium Pro、Pentium II、Pentium III等处理器。这些处理器在1990年代中期到2000年代初推出,它们采用了一些新的指令集和优化,使得它们比i386系列的处理器更快,更高效。因此,”i686″通常用来表示这些处理器,或者是为这些处理器编译的软件。
  • x86-64: 这是64位的x86架构,也被称为”x64″、”AMD64″或”Intel 64″。它在2000年代初由AMD首次推出,后来也被Intel采用。”x86-64″的处理器不仅支持64位计算,还兼容32位的x86指令集,因此它们可以运行为i386或i686编译的软件。

在选择Linux发行版时,”i386″、”i686″和”x86-64″主要是用来表示该发行版支持的CPU架构和位数。选择哪个版本,主要取决于你的CPU支持哪种架构和位数。

  • i386: 如果你的CPU是较旧的32位x86架构,如Intel 80386或其后继产品(到Pentium 4、Athlon XP为止),你应该选择标记为”i386″的Linux发行版。
  • i686: 如果你的CPU是稍微新一些的32位x86架构,如Pentium Pro、Pentium II或更后期的处理器(到Intel Core 2 Duo、AMD Athlon 64 X2为止),你应该选择标记为”i686″的Linux发行版。”i686″版本的Linux发行版通常会对软件进行更多的优化,以提高运行效率。
  • x86-64: 如果你的CPU是64位x86架构,如AMD Athlon 64和后续产品,或者Intel Pentium D和后续产品,你应该选择标记为”x86-64″的Linux发行版。”x86-64″版本的Linux发行版可以充分利用64位CPU的能力,如处理更大的内存(超过4GB)。

一般来说,对于现代的计算机,最好选择”x86-64″的版本,除非你有特殊的原因需要使用32位版本。如果你的计算机RAM小于4GB,并且CPU较旧,那么选择32位版本可能是更好的选择。

x86、x64、x86_64、AMD64的区别和联系

“x86″、”x64″、”x86_64″和”AMD64″这些术语都是用来描述CPU架构的,他们之间的关系和区别如下:

  • x86: 这是一个由Intel首创的CPU架构,最初应用在1978年的8086微处理器上,因此得名。x86架构的早期处理器(如Intel 8086和80286)只支持16位计算,后来的版本(如Intel 80386和80486)支持32位计算。所以当我们提到”x86″,一般指的是32位的Intel或AMD的CPU架构。
  • x64: 这是一种64位的CPU架构,它扩展了x86架构,允许处理器使用更多的内存(超过4GB)。这个术语经常被用来泛指所有64位的x86架构,无论是Intel还是AMD。
  • x86_64: 这其实和”x64″是同样的东西,只是另一个称呼而已。也就是说,它指的是64位的x86架构。
  • AMD64: 这是AMD开发的64位x86架构。在2000年,AMD发布了第一款支持64位计算的x86处理器,定义了这个架构,所以又被称为”AMD64″。后来,Intel也采纳了这个架构。

所以,简单来说,”x86″通常指32位的x86架构,而”x64″、”x86_64″和”AMD64″都指的是64位的x86架构。

ARM的不同版本

ARM架构有很多版本,每一个版本都添加了一些新的特性和指令集。以下列出了一些主要的ARM架构版本:

  • ARMv1: 1985年发布,这是ARM的第一个版本。
  • ARMv2: 1986年发布,添加了新的指令和条件执行特性。
  • ARMv3: 1991年发布,首次支持32位地址空间。
  • ARMv4: 1994年发布,添加了新的DSP(数字信号处理)指令。
  • ARMv5: 1999年发布,增加了新的DSP和SIMD(单指令多数据)指令。
  • ARMv6: 2002年发布,引入了硬件分支预测和媒体处理指令。
  • ARMv7: 2005年发布,标志着ARM架构的主要转变,引入了Thumb-2指令集。这个版本的架构是现代大多数ARM处理器的基础,包括用在许多智能手机和平板电脑的Cortex-A系列处理器。
  • ARMv8: 2011年发布,这是ARM的第一个64位架构,也增加了新的加密指令。
  • 1: 2014年发布,增加了虚拟化和安全性特性。
  • 2: 2016年发布,增加了针对机器学习和向量计算的指令。
  • 3: 2017年发布,增加了针对JavaScript和安全性的指令。
  • 4: 2018年发布,进一步增加了新的安全性和虚拟化特性。
  • 5: 2019年发布,增加了新的故障预测和修复特性。
  • ARMv9: 2021年发布,这是最新的ARM架构,提供更多的安全特性,如Confidential Compute Architecture,以及针对AI和ML的新指令。

这只是对ARM处理器架构的一个简要概述,每一个版本都有很多详细的改进和特性。每一个版本都对提升性能、功耗和功能性提供了重要的贡献。

确定Android手机的ARM版本稍微复杂一些,但可以通过下载一些特定的应用程序来查看。一款名为”Droid Hardware Info”的应用就可以帮助你查看你的设备的详细硬件信息,包括ARM版本。

主流的手机CPU,如Apple的A15 Bionic、华为的麒麟9000、三星的Exynos 2100、高通的Snapdragon 8cx Gen 3等,都采用的是ARMv8架构或者其改良版如ARMv8.2,ARMv8.3等。这些都是64位架构,支持现代的指令集和优化,如NEON(用于加速多媒体和信号处理)和AES(用于加密和解密)。不过具体来说,大多数制造商在设计他们的处理器时,通常会采用自己的一些专有技术和优化,所以并不是所有的ARMv8或ARMv9处理器都会有完全一样的性能和功能。

ARMv9是ARM公司在2021年发布的最新架构,旨在提供更高的性能,更好的机器学习和人工智能能力,以及更强的安全性。目前,还没有太多的CPU公布使用ARMv9架构,但有以下一些已知的处理器:

  • ARM Cortex-X2: 这是ARM自家的一款高性能处理器,专为高端手机和移动设备设计。
  • ARM Cortex-A710 和 ARM Cortex-A510: 这两款处理器同样来自ARM,是面向中高端设备的新款处理器。
  • Qualcomm Snapdragon: 高通已经公布,他们将在未来的Snapdragon系列处理器中采用ARMv9架构。
  • Samsung Exynos: 三星也已经宣布他们未来的Exynos系列处理器将使用ARMv9架构。

这些都是已经公开宣布将采用ARMv9架构的处理器,但具体型号和发布日期还有待制造商公布。另外,由于ARM架构被广泛地应用在各种设备中,从手机和平板电脑到嵌入式系统和服务器,所以可以预见会有更多的ARMv9处理器在未来几年中出现。

“AArch64″和”ARM64″是什么关系

“AArch64″和”ARM64″都是指ARM架构的64位版本。

  • AArch64: 这是ARM的官方术语,用于指代其64位架构。”AArch”是”ARM Architecture”的缩写,”64″指的是64位。AArch64的引入标志着ARM从32位系统(AArch32)向64位系统的转变。
  • ARM64: 这通常被用作AArch64的同义词,尤其是在某些操作系统和平台上。例如,在安卓系统和Linux系统中,你可能会看到”ARM64″这个术语用于描述应用程序的64位ARM版本。

请注意,尽管”AArch64″和”ARM64″在许多情况下可以互换使用,但在一些特定的环境和上下文中,它们可能会有不同的含义。例如,在某些操作系统中,”ARM64″可能指的是特定的64位ARM实现或变体。因此,重要的是理解你正在处理的特定上下文和环境。

关于RISC-V的一些信息

RISC-V是一个开源的硬件指令集架构(ISA),其设计原则是精简、模块化和可扩展,被广泛应用于研究,教育和商业产品中。RISC-V的开源特性意味着任何公司、组织或个人都可以基于其设计和制造自己的处理器,无需支付任何许可费用。

近年来,RISC-V架构得到了广泛的关注和发展,一些公司已经开始开发基于RISC-V的CPU:

  • SiFive: 该公司是一个RISC-V的重要推动者,他们已经设计了多款RISC-V处理器,包括SiFive U74、U84等。
  • Western Digital: 这家知名的存储解决方案提供商也已经开始使用RISC-V。他们已经公开表示,他们的未来产品将使用基于RISC-V的处理器。
  • Alibaba: 阿里巴巴的子公司平头哥(Alibaba T-Head)已经发布了一款名为XuanTie 910的RISC-V处理器,这是一款定位于云计算、人工智能和自动化的高性能处理器。
  • Nvidia: Nvidia的Denver和Carmel核心虽然并非基于RISC-V,但在一些内部的控制器设计中已经采用了RISC-V。

除了这些,还有一些公司和组织在研究、教育和特定用途的硬件中使用RISC-V,比如低功耗物联网设备、嵌入式系统等。RISC-V由于其开源特性,预计将在未来几年内得到更广泛的应用。

华为是全球领先的信息和通信技术(ICT)解决方案提供商,对于RISC-V架构非常熟悉。华为是RISC-V基金会的一员,这意味着他们参与到了RISC-V架构的开发和推广工作中。

近年来,华为在面临美国政府对其业务的限制时,RISC-V的开放源代码架构可能为华为提供了一种可能的解决方案。然而,至今,华为并未公开宣布他们已经在产品中使用或计划使用RISC-V架构。

华为的HiSilicon部门开发了一系列的Kirin芯片,这些芯片大多基于ARM架构。然而,考虑到RISC-V架构的开放源代码特性,华为可能会考虑在未来的某个时点使用RISC-V,尤其是在其无法使用ARM技术的情况下。

总的来说,华为已经对RISC-V表示出浓厚的兴趣,并在进行相关的研究,但就目前来看,华为的主要产品仍然在使用ARM架构。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK