Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
苹果新CPU如何兼容并超越Intel? -ErrataRob
20-11-28
banq
Apple取代Intel处理器的确非常有效。一些其他持怀疑态度的技术人员将其称为“黑魔法”。它可以很好地运行Intel代码。
根本原因是Arm和Intel架构已经融合。是的,指令集是不同的,但是基本的体系结构问题已经非常相似。
最大的障碍是“内存排序”,即两个CPU彼此看到内存修改的顺序。这是影响微软在基于Arm的“ Surface”笔记本电脑上模拟x86的最大问题。
苹果只是将Intel的内存顺序添加到了他们的CPU中。当运行那些编译成x86的代码时,它们会切换CPU的模式以符合Intel的内存顺序。
解决了基础
架构
问题后,运行x86代码仅意味着将这些指令转换为Arm等效指令。这非常有效,并且导致代码通常以相同的速度运行。但是,有时这种转换也会导致代码稍慢,但是基准测试显示x86始终至少是速度的70%。
当您为新CPU架构重新编译代码时,它通常会中断。但是正如我在上面说的那样:Arm和Intel架构已经融合到足够多的程度,从而使代码被破坏的可能性大大降低,从而使重新编译更加容易。
苹果做出了令人惊讶的决策:他们使用特殊的JavaScript特定指令,双倍大小的L1缓存以及其他我不知道的技巧对JavaScript进行了优化。
因此,当您浏览网页时,他们的新笔记本电脑看起来更快,用电池续航时间更长,这是因为JavaScript,即使其他基准测试显示它的速度与Intel / AMD大致相同。
较旧的MacBook Air具有双核CPU,运行频率为3.8 GHz,但在低功耗模式下为1.2 GHz。快速模式和慢速模式之间的切换是节省移动电源的方式。但是最终效率低下。英特尔CPU设计为以5 GHz运行。将时钟降频到1 GHz可以节省功率。
苹果公司的策略是使用两种处理器:一种设计为在3 GHz以上运行速度快,另一种设计为在2 GHz以下运行速度慢。苹果将其称为“性能”和“效率”处理器。每个人都进行了优化,以实现自己的最佳目标。
当需要节省电量时,他们关闭“性能”处理器并在其“效率”处理器上运行代码。他们拥有4倍性能处理器(是旧Mac的两倍)和4倍效率处理器。
所有8个都可以激活。当做一些可以使用8个处理器的事情(例如编译代码)时,它的运行速度很快。8个处理器与旧笔记本中的2个处理器有所不同。
这个故事的很大一部分是,英特尔在摩尔定律方面落后了约3年。Apple Silicon使用TMSC的最新5nm技术,而Intel使用较老的10nm / 7nm一代。英特尔的许多产品线都使用甚至更老的14nm / 10nm一代。
这都不是真正的“黑魔法”。这一切都是可以理解的。只是所有各种事情都被很好地执行了,从而导致综合结果提升,这是一个巨大的飞跃。
另一个“魔术”技巧是他们的“ Swift”编程语言如何在Android中使用“引用计数”而不是“垃圾收集”。他们在CPU中做了一些事情,使引用计数的速度提高了一倍。
即使翻译x86代码,计数开销(已经比垃圾回收效率更高)的所有引用都减少了一半。这又是另一个怪异的性能增强措施。。
1
swift语言
编程语言平台比较
Android安卓