CPU 的系统架构
Posted on Wed, 25 Dec 2024 10:37:14 +0800 by LiangMingJian
概述
当今市场上的 CPU 主要分为两大阵营,一个是以 intel、AMD 为首的复杂指令集 CPU( 如 X86 ),另一个是以 IBM、ARM 为首的精简指令集 CPU( 如 ARM )。
复杂指令集,CISC的特点是:指令复杂多样,只使用单条指令便可以完成多步操作,硬件逻辑复杂但编程效率高。代表架构 x86,x86-64 等。
简单指令集,RISC的特点是:指令精简固定,执行速度快,硬件设计简单,功耗低。代表架构:ARM,AArch64 等。
X86(32位)
X86 架构原称 IA-32,是指美国 Intel 公司为其第一块 CPU i8086 专门开发的一种 32 位复杂指令集。X86 的这个别称来自于那些以 86 结尾的处理器型号,比如 8086、80286、80386 处理器。
因此,X86,IA-32,x86-32 可以说是同一个东西。
AMD64(64位)
随着时代发展,32 位系统逐渐被淘汰,Intel 首先设计出 64 位系统的复杂指令集 IA-64,但由于其与 32 位指令集不兼容,因此渐渐被人们所淘汰。
同一时刻,AMD 公司基于 X86 设计出一个兼容 32 位的 64 位复杂指令集,名字叫做 AMD64,在后续的使用中,AMD64 逐渐被业界接受,成为了 x86 在 64 位平台的事实标准。
最后,在 AMD64 被大众接受之后,Intel 不得不兼容这个指令集。而 Intel 为了避嫌,将 AMD64 改为 x86_64。
因此,AMD64,x86_64,x64,可以说是同一个东西。
ARM(32位)
ARM 架构是一种低功耗、高性能的精简指令集计算架构,由英国 ARM 公司设计。
由于 ARM 架构节能的特点,因此其经常用于硬件嵌入式设备,手机,智能家居等方面。比如高通的骁龙、华为的麒麟、苹果的 M1,以及联发科的天玑。
ARM 根据版本不同,有不同的叫法,比如:ARMv6,ARMv7 和 ARMv8 ARMv9。
需要注意的是,不同版本的 ARM 架构会存在兼容性问题,因此打包时需要特别关注。
AArch64(64位)
与 X86 架构一样,ARM 架构也有 64 位版本,ARM 架构的 64 位版本称为 AArch64。
自 ARMv8 开始(ARM 架构的第 8 个版本),ARM 开始引入 64 位架构,而 AArch64 就是最终产物。
需要注意的是,AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新的构架,它是 ARMv8 的一种执行状态,完全使用全新的 A64 指令集。与 AArch64 相对应的 AArch32,则执行原有用于 ARMv7 及之前的 32 位代码。可以这么说 ARMv8 包括 AArch64 和 AArch32。
因此,AArch64,ARM64,可以说是同一个东西。