术→技巧, 研发

CPU架构基础知识点

钱魏Way · · 0 次浏览

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

什么是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架构。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注