cpu架构:x86和arm

Windows PC通常建立在Intel和AMD使用的x86架构,apple的计算机使用该公司的基于arm架构的M1和M2处理器。

ARM和x86:指令集的区别

arm:精简指令集(RISC) :将cpu简化为最低限度的基本功能,使cpu尽可能简单。ARM架构只使用34条指令,这些指令主要处理简单的数学运算并在寄存器和存储器位置之间移动数据。

x86:复杂指令集(CISC):将越来越多的特性和功能构建到芯片中,使程序员只需几行代码就可以执行复杂的操作。英特尔8086支持82条指令,允许更高级的数据操作------随着后续的修订和扩展,已膨胀到200多条指令。

RISC方法似乎有悖常理。较小的指令集意味着程序需要更长、更复杂才能获得相同的结果。但是,RISC芯片的物理设计可能比CISC芯片简单得多。这可以使制造更容易、更便宜,并且可以以更快的速度分解指令------在大多数情况下,每个操作都在一个时钟周期内完成。它也可以消耗更少的功耗,这就是为什么ARM处理器在智能手机中占主导地位的原因,因为电池寿命是关键。

虽然 CISC 和 RISC 方法是相反的,但差异并不像想象的那么重要。如今,很少有程序是用纯汇编语言编写的,因此开发人员无需担心底层架构:他们可以在让解释器或编译器处理翻译之前用 Python、C# 或其他语言编写。事实上,Apple 基于 ARM 的 Mac 包括一个实时转换层,可以运行为 x86 系统编写的程序,而无需修改。

功耗的差异也比以前小。多年来,英特尔一直在努力与ARM芯片的低功耗相匹配,这不仅是因为其CPU设计的复杂性,还因为其内部制造工艺无法像竞争对手那样快速缩小芯片内部晶体管的尺寸。这是一个令人尴尬的点:最新的英特尔芯片仍在使用 10nm 制造工艺(被称为"Intel 7"),而苹果的 M 系列处理器自 2020 年推出以来一直使用 5nm 工艺。

ARM 和 x86 CPU 如何访问 RAM

苹果的芯片和英特尔的芯片之间还有最后一个区别------这不是ARM架构所固有的,而是苹果自己做出的设计决定。英特尔的芯片依赖于外部系统RAM,而苹果则将内存直接集成到其M系列处理器的芯片中。

这意味着你永远无法升级 Apple Silicon 计算机上的内存,这可能会导致在选择规格时做出一些痛苦的决定。这也意味着主流芯片上根本没有真正的大量内存分配:M1 提供最大 16GB 的 RAM,而 M2 的 RAM 限制为 24GB。如果你想要 32GB 或更多,则需要升级到昂贵的 M1 Pro、Max 或 Ultra 系统。相比之下,英特尔的所有第 12 代和第 13 代处理器都可以使用高达 128GB 的 RAM。

然而,由于苹果的RAM实际上位于处理器逻辑旁边,并通过最快的结构连接到它,因此其处理器可以非常快速有效地访问代码和数据。标准 M1 的最大内存带宽为 68GB/秒,而 M2 高达 100GB/秒,M1 Pro、Max 和 Ultra 型号分别高达 200GB/秒、400GB/秒和 800GB/秒。对于英特尔来说,这完全取决于处理器、RAM 和主板的具体情况,但即使是最新、最快的酷睿 i9 也被限制在理论上的最大值为 90GB/秒。

更重要的是,苹果使用所谓的"统一内存架构unified memory architecture",这意味着整个内存范围都可以由CPU或片上GPU直接访问。与传统的 PC 架构相比,这提供了巨大的效率优势,在传统的 PC 架构中,CPU 和 GPU 各自具有独立的内存库,并且如果不来回复制数据,就无法协同处理相同的数据。

相关推荐
森G3 小时前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
VekiSon6 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
AI+程序员在路上7 小时前
Nand Flash与EMMC区别及ARM开发板中的应用对比
arm开发
17(无规则自律)13 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
梁洪飞1 天前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
代码游侠2 天前
学习笔记——Linux字符设备驱动
linux·运维·arm开发·嵌入式硬件·学习·架构
syseptember2 天前
Linux网络基础
linux·网络·arm开发
代码游侠2 天前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
程序猿阿伟2 天前
《Apple Silicon与Windows on ARM:引擎原生构建与模拟层底层运作深度解析》
arm开发·windows
wkm9562 天前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt