分享

一文解惑intel、amd和arm

 柚子塘 2022-06-27 发布于中国香港

公众号gocloudcoder回复书籍领取学习资料,包括linux,golang,java,js,操作系统,计算机网络,编程经验,算法与数据结构等。

由于最近想买macbook pro m1

对其进行了一个稍微深入的研究

我们知道m1芯片是基于arm架构的

那它与intel、amd有什么区别呢?

CPU架构

CPU的全称是“中央处理单元”,它是计算机的核心,计算都由它完成。不同的CPU架构有不同的指令集(汇编),彼此不通用这就导致运行在上面的软件不兼容,必须重新编译。如果没有做适配,一个架构下的软件就无法移植到另一个架构。

目前市面上的CPU架构为X86架构和arm架构。由于m1芯片是首次基于arm架构,采用了m1芯片的macbook,很多软件厂商都没有做适配,所以需要等待各大软件厂商进行适配再去入手比较合适。

按道理讲,将代码重新编译一下即可,但是由于CPU架构不同,如果说该代码中含有汇编代码而对应的arm没有对应的指令集,那么就无法编译成功。或者说在该代码中使用了第三方库,第三方库中不支持arm架构,那同样无法进行编译。

X86架构与ARM架构的区别与联系

intel 与 amd 厂商使用的是基于X86架构的CPU,X86架构使用的是复杂指令集即指令一步到位,而arm使用的是精简指令集即指令由几个指令完成。

X86架构性能好,但是耗电多、电压高,主要用于桌面合服务器。

然而ARM架构耗电少、电压低,但是单核性能不如X86,主要用于移动设备。

近几年来,X86架构发展迟缓,ARM架构进步显著,已经从移动设备向桌面电脑和服务器进军了,如m1芯片。

软件安装版本说明

我们通过go语言官方安装包和oracle java官方安装包来看看。

image-20210222142645096 image-20210222143717017

amd64 、X86_64 与X64

不同的公司称呼不一样,其实是一个东西,如amd64 与 X86_64 和 X64。

这个标准是amd公司制定的标准可以兼容32位,intel采用了这个标准,有时又称为intel64。

以Go官方安装包为例子

windowslinuxmacos
windows-386(32位X86架构)linux-386 (32位X86架构)darwin-amd64 (64位 X86架构CPU)
windows-amd64(64位X86架构)linux-amd64(64位X86架构)darwin-arm64(64位 ARM架构CPU)
linux-arm64(64位ARM架构)

苹果为什么要采用ARM架构

一个重大的原因是inter公司多年来创新乏力,产品没有突破,并且没有解决功率和散热的问题。

自从2010年开始,苹果手机就采用ARM架构自研芯片。

可以想象如果笔记本的整个 CPU 都由苹果自己设计,一定会有更多的功能集成进来。

苹果手机的安全特性、图形支持、视频处理、音频处理、加密解密、人工智能都可以放进桌面设备。苹果也能对它进行更好的优化,批量生产,降低成本

一旦苹果可以控制芯片、硬件、软件整个堆栈,就能让它们更好的协同,创造出更多多令人激动的新功能。

Mac 电脑采用 ARM 架构后,还能实现统一的 Apple 生态,而不是现在分隔开来的 Mac 生态和 iPhone/iPad 生态。不同设备都有同样的架构,运行同样的程序,差别只是外形尺寸与性能。

你可以在你的macbook m1上刷抖音等hhh。

m1主打的就是低功耗,续航,效率高。

其实也想早点入手m1,说不动咱能为此做点贡献呢(痴人说梦hhh)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多