当前位置: 首页 > article >正文

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 各自具有独立的内存库,并且如果不来回复制数据,就无法协同处理相同的数据。


http://www.kler.cn/a/288251.html

相关文章:

  • spring boot整合https协议
  • RabbitMQ 篇-深入了解延迟消息、MQ 可靠性(生产者可靠性、MQ 可靠性、消费者可靠性)
  • 嵌入式硬件实战提升篇(一)-泰山派RK3566制作多功能小手机
  • java的JJWT 0.91在jdk21中报错的解决方法
  • [宁波24届]平方数
  • 当你想要conda安装遇到UnavailableInvalidChannel: HTTP 404 NOT FOUND for channel的问题
  • 猎板PCB正片与负片工艺:深入解析PCB制造中的光刻技术及其应用
  • 【深度学习 transformer】transformer 训练一个文本分类任务,超简单了
  • 【初出江湖】分布式之什么是分布式存储?
  • 函数式编程(纯函数函数柯里化代码组合)
  • WPF性能优化之UI虚拟化
  • 贪心算法---监控二叉树
  • 综合评价 | 基于层次-熵权-博弈组合法的综合评价模型(Matlab)
  • JavaScript学习文档(12):什么是正则表达式、语法、元字符、修饰符
  • Flask中多app应用怎么完成
  • Ps:颜色模型、色彩空间及配置文件
  • 个人旅游网(3)——功能详解——旅游路线功能
  • java后端开发-Mybatis连接数据库步骤
  • 【数据结构取经之路】布隆过滤器BloomFilter原理、误判率推导、代码实现
  • 具备自动灵敏度校准、支持单键和多点触控的触摸芯片-GTX315L
  • 一文读懂flask--gunicorn是如何启动flask应用
  • token过期时间分平台(web和app)设置方法
  • OpenCV绘图函数(15)图像上绘制矩形函数 rectangle()的使用
  • 【学习笔记】卫星通信NTN 3GPP标准化进展分析(二)- 3GPP Release16 内容
  • opencv计算机视觉识别图像处理c++项目实战python网课程视频教程
  • STM32开发资料