Arm 公司凭什么就让海思、三星、联发科、高通等等公司只能向它买授权,而不是独立山头自己搞呢?

2021-02-04 14:10:33 +08:00
 Pzdmultiverse

如题,小弟没理解,为什么 Arm 可以一直收授权费,自己了解了下,Arm 指令集相对来说不复杂,而微架构像海思、三星、高通、联发科也可以自己搞,为什么这些拿 arm 授权的公司不自己搞一个指令集呢?这当中的技术壁垒在哪里呢?求大神科普,万分感谢!

4897 次点击
所在节点    问与答
40 条回复
systemcall
2021-02-04 14:16:35 +08:00
没生态。你打算自己搞架构,就要自己弄起来生态
之前 MIPS 在嵌入式用的挺多的,后来好多都换 ARM 了
而且你说的那些公司,这几年基本上也是公版架构了,顶多稍微改一下
secondwtq
2021-02-04 14:18:15 +08:00
第一,ISA 不是你想的这么简单的事情
你可以去了解下最近的新星 RISC-V,然后思考下,为啥这么多资源投在里面,这东西进展还是这么慢
其实 WebAssembly,以及很多标准化的东西都是类似的道理
Pzdmultiverse
2021-02-04 14:24:02 +08:00
@systemcall #1 请教下,这里的生态,具体是指的什么呢?
像 Android 生态,我理解就是开发者、使用者组成,那像这个生态是什么样一个组成呢?
linksNoFound
2021-02-04 14:26:25 +08:00
自己搞花钱太多,100 万美元买来立马就能开干,和投入 10 个亿美元赌一个未来
Leonard
2021-02-04 14:27:59 +08:00
你说的这几个现在都是 ARM 公版架构上改了,自研架构都翻车了
czfy
2021-02-04 14:30:45 +08:00
“相对来说不复杂”
真当从 0 开始,完全不涉及现有知识产权,不复杂?

要真不复杂,为什么三星自己做 SoC 这么多年了,还是半死不活?
要真不复杂,华为海思能有现在的惨状?

RISC-V 也算是明日之星了,但只看到阿里做了个玄铁 910,最近确实有运行 Android 的消息,然而距离量产做手机 SoC 也是十万八千里
还没听说过谁量产基于 RISC-V 的手机 SoC,如果有行业里的人科普一下情况也是好的
secondwtq
2021-02-04 14:33:42 +08:00
第二,uArch 也不是你想的这么简单的事情。
高通在十年前是自己的微架构,但是被 64 位的 A7 偷袭了,来不及搞新架构,就公版架构套了一个出来,你猜那代产品叫啥?就是大名鼎鼎的骁龙 810
后来 820 又整出了个新架构,但是表现一般,再往后就接着用公版了
三星的自研架构前段时间刚黄。就算在的时候,貌似也是骁龙版比猎户座版更好,你猜是为啥……
海思也是小改公版
联发科更逗,公版做的都不算太好
你想想为啥手机处理器除了苹果之外没人做 uArch
secondwtq
2021-02-04 14:34:51 +08:00
第三,你有本事做 ISA,你有本事做 uArch,你有本事做 Rosetta 么?
jmc891205
2021-02-04 14:45:28 +08:00
因为付 ARM 授权费比自己研发便宜
echo1937
2021-02-04 14:46:29 +08:00
09 年的时候,Intel 想进军手机 Soc,搞了一个 Android_x86,
这个工作和苹果现在搞的 Mac OS on ARM and x86 工作非常类似。

第一步,Intel 就需要配合谷歌把 Android 移植到 x86 服务器上,从底层驱动到移植 Dalvik 虚拟机,工作量还挺大的,

第二步,x86 和 ARM 的指令集不同,有些应用还是不支持运行在 Android_x86 上,为了快速解决这些问题,英特尔试图通过技术去完善,开发了一种转换技术“Houdini”。“Houdini”相当于一个中间层,可以让原本不兼容的应用跑在 X86 上。但这种强行结合的技术运行起来往往效率不高,容易出问题,且会增加 2%左右的耗电。

第三步,为了彻底解决转换层的问题,英特尔就提供了 X86 的 NDK 。开发者只需在应用中支持这个 NDK,应用在提交时会自动生成 2 个 App,设备在下载时会根据自己的架构下载合适的 App 。这种方法并不难,效果也最好,难的是如何让众多开发商甘愿合作。所以英特尔以及手机厂商会去和应用厂商挨个合作,督促其支持 X86 的 NDK 。

第四步,Soc 有了,系统也支持了,没有手机厂商用怎么办,Intel 到处找硬件厂商推销自己的处理器,又是合作又是补贴,联想出了几款,其他厂商也有少量出货,但总体机型并不多。

你看,x86 这种成熟而完善的处理器,已经有完整工具链支持,要想和 ARM 竞争都如此困难,你从无到有设计一个新的指令集,成功的几率有多大?
fline
2021-02-04 14:48:30 +08:00
因为人家的文化自信靠的是有文化,不是有自信。
fiveelementgid
2021-02-04 14:49:59 +08:00
@fline 谁让你发这些内容的
你哪个单位的?
你们有什么目的?
secondwtq
2021-02-04 14:52:17 +08:00
@echo1937 其实要真是新 ISA,还得折腾 gcc, glibc, kernel 一套全家桶……
然后人家 ARM 能跑 Windows,你不行
secondwtq
2021-02-04 14:56:38 +08:00
@fiveelementgid 你取得有关部门许可了吗?你背后是谁,发这些想干什么?你想颠覆什么、破坏什么?

https://i.loli.net/2021/02/04/94hQRUBHKbsXVra.png
cmostuor
2021-02-04 15:07:47 +08:00
ISA 只是做一个 CPU 里的一小部分, 能做出一套新的 ISA 不等同于就能做出一块可以商业化的 CPU 不然 RISC-V 为啥开源, 做 CPU 都如此的难更何况做 SOC 那就更复杂了.
cmostuor
2021-02-04 15:13:57 +08:00
来给你个非商业但完整的 uArch 项目 https://github.com/mads3009/uarch_project
Pzdmultiverse
2021-02-04 17:01:06 +08:00
@echo1937 #10 学习到很多,感谢!

还有两个问题,不知道可否再帮忙解答一下:

1. 关于第一步:把 Android 移植到 X86 上,这一步移植主要是做什么工作,可以具象的说一下吗?

2. 关于第二步:如果已经 Android 移植到了 X86 上,那在 Android 上的 APP 为什么会有一些特殊的还不支持呢,对 APP 的支持我理解是操作系统层级之上,而指令集在操作系统之下,操作系统应该就屏蔽了指令集对 APP 的区别,所以对这里有的 APP 还需要再去单独适配 X86 指令集,不是很理解,能举一个具象的例子吗?

行业外的人,这些基础不是很理解,如果提的问题很弱智,请大佬见谅,感谢大佬帮忙解答!
echo1937
2021-02-04 17:19:07 +08:00
@Pzdmultiverse #17

第一步,写底层驱动,移植 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 的指令集,而没有自己开发一套指令集。
fiveelementgid
2021-02-04 18:23:56 +08:00
@secondwtq 还是你背的比较熟(🐶
yafoo
2021-02-04 18:44:09 +08:00
记得这些公司好像都有 arm 的股份

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/751239

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX