Arm 公司凭什么就让海思、三星、联发科、高通等等公司只能向它买授权,而不是独立山头自己搞呢?
如题,小弟没理解,为什么 Arm 可以一直收授权费,自己了解了下,Arm 指令集相对来说不复杂,而微架构像海思、三星、高通、联发科也可以自己搞,为什么这些拿 arm 授权的公司不自己搞一个指令集呢?这当中的技术壁垒在哪里呢?求大神科普,万分感谢!
如题,小弟没理解,为什么 Arm 可以一直收授权费,自己了解了下,Arm 指令集相对来说不复杂,而微架构像海思、三星、高通、联发科也可以自己搞,为什么这些拿 arm 授权的公司不自己搞一个指令集呢?这当中的技术壁垒在哪里呢?求大神科普,万分感谢!
要真不复杂,为什么三星自己做 SoC 这么多年了,还是半死不活?
要真不复杂,华为海思能有现在的惨状?
RISC-V 也算是明日之星了,但只看到阿里做了个玄铁 910,最近确实有运行 Android 的消息,然而距离量产做手机 SoC 也是十万八千里
还没听说过谁量产基于 RISC-V 的手机 SoC,如果有行业里的人科普一下情况也是好的
第一步,Intel 就需要配合谷歌把 Android 移植到 x86 服务器上,从底层驱动到移植 Dalvik 虚拟机,工作量还挺大的,
第二步,x86 和 ARM 的指令集不同,有些应用还是不支持运行在 Android_x86 上,为了快速解决这些问题,英特尔试图通过技术去完善,开发了一种转换技术“Houdini”。“Houdini”相当于一个中间层,可以让原本不兼容的应用跑在 X86 上。但这种强行结合的技术运行起来往往效率不高,容易出问题,且会增加 2%左右的耗电。
第三步,为了彻底解决转换层的问题,英特尔就提供了 X86 的 NDK 。开发者只需在应用中支持这个 NDK,应用在提交时会自动生成 2 个 App,设备在下载时会根据自己的架构下载合适的 App 。这种方法并不难,效果也最好,难的是如何让众多开发商甘愿合作。所以英特尔以及手机厂商会去和应用厂商挨个合作,督促其支持 X86 的 NDK 。
第四步,Soc 有了,系统也支持了,没有手机厂商用怎么办,Intel 到处找硬件厂商推销自己的处理器,又是合作又是补贴,联想出了几款,其他厂商也有少量出货,但总体机型并不多。
你看,x86 这种成熟而完善的处理器,已经有完整工具链支持,要想和 ARM 竞争都如此困难,你从无到有设计一个新的指令集,成功的几率有多大?
https://i.loli.net/2021/02/04/94hQRUBHKbsXVra.png
还有两个问题,不知道可否再帮忙解答一下:
1. 关于第一步:把 Android 移植到 X86 上,这一步移植主要是做什么工作,可以具象的说一下吗?
2. 关于第二步:如果已经 Android 移植到了 X86 上,那在 Android 上的 APP 为什么会有一些特殊的还不支持呢,对 APP 的支持我理解是操作系统层级之上,而指令集在操作系统之下,操作系统应该就屏蔽了指令集对 APP 的区别,所以对这里有的 APP 还需要再去单独适配 X86 指令集,不是很理解,能举一个具象的例子吗?
行业外的人,这些基础不是很理解,如果提的问题很弱智,请大佬见谅,感谢大佬帮忙解答!
第一步,写底层驱动,移植 Android OS,移植 Dalvik 虚拟机,主体就是这三大块。如果你是纯自研 CPU,甚至还要自己写编译器,自己搞工具链,把 Android 底层的 Linux 先移植过去。
第二步,我引用一段内容。
“大部分 Android 应用都使用基于 Dalvik Java 代码开发。理论上,由于 Dalvik 代码在系统的虚拟机中执行,在 x86 的 ATOM 平台上不会有性能损失。但由于虚拟机执行效率的有限,对于一些高性能追求的应用,谷歌允许开发者使用原生的 C 语言代码。而原生代码是针对硬件平台编译,x86,ARM 或是 MIPS 都有其相应的二进制文件。通常来说,针对 ARM 平台编译的二进制代码,x86 的处理器是无法直接运行的。而主流的安卓产品均采用 ARM 处理器,尽管很早之前,Google 的 Android NDK 就引入了 x86 编译的选项,但至今还是有相当一部分应用只针对 ARM 平台进行了编译,这就造成了 x86 安卓平台兼容性问题。” — https://www.igao7.com/news/201406/x86.html
也只有苹果这种自己开发芯片,自己开发 S,自己做硬件产品的厂家,Mac OS 才能说迁移到 ARM 就迁移到 ARM,甚至即便如此,Apple 也是买了 ARM 的指令集,而没有自己开发一套指令集。
话说 Intel 当年把 ARM 架构的 pxa 系列 SoC 给卖了,不过 Intel 搞 ARM 确实有点尴尬
所以主还不快去应聘这些公司, 这得给公司省多少钱啊
对公司来讲, 能在原来必须花钱的地方省钱是求之不得的事情
里面提到了几段:ARM 作为 RISC 芯片的优点、ARM 母公司拆分、与 Apple 早期合作。
This was a critical part of their success — licensing the processor design to anyone who wanted to make their own versions of the chip.
The happy accident that ARM processors had the best MIPS/Watt (highest performance for the lowest power) is the key thing that propelled their processor to success in the exploding world of smart phones.
Of course now ARM are focused almost entirely on that MIPS/Watt figure because that’s what customers are demanding — longer battery lives for their laptops, phones and watches.
总结起来,个人理解是:ARM 标准的优势是有 Apple 、三星等大厂合作的案例,而且符合当今商业时代的要求。
当然如果直接能编译,那还是好事,更多的情况是写程序的过程中有依赖于本平台的设计导致需要重新编码。
举个最简单的例子。gcc 编译器下,X86 平台的 long 和 int 一样都是 32 位的整数,而 X64 平台中 long 是 64 位的整数,int 依旧是 32 位。如果代码里混用了 int 和 long,,,那就等着推倒重写吧。。。。