上次聊了开源鸿蒙,这次接着说硬件部分。同样主打一个无条理。
在硬件层面,目前开源鸿蒙适配或正在适配的芯片指令集包括arm、X86、Loongarch、RISC-V,能适配的都在适配。目前最好用的肯定是arm,毕竟华为自己用的就是arm。而且短期也未必会发生变化。经常看到人说,华为只有armV8的授权,没有V9的,arm一升级华为自己的芯片就不行了,跟不上了。这个不客观,据一些IT圈的人透露,华为是有V9的授权的,而且在麒麟9000s里面就有V9的IP。而且客观来说V8也不慢,指令集的优化现在也是慢慢接近天花板,intel号称牙膏厂,不就是年年挤牙膏么。短期来说,是够用了。
但是一年之后呢?两年之后呢?五年之后呢?
我们来想这个道理:如果甲方供货商老板已经明确表示,再过一年合同就到期了,到时候不续了,而你现在确实也没钱把甲方收购回来,你怎么办?一方面你要继续服务好下游,这个钱还是要挣,另一方面是不是赶快找二供?再有志气一点的,赶快布局上游,自己生产?那我们看看华为海思现在有哪些选择:
1.最刚的,自己搞一个指令集。
2.用RISC-V,二供。
3.从arm指令集搞分叉,搞自己一套。
4.使用龙芯Loongarch架构。
先说3,技术层面不讨论是否能不能续上,法律层面行不通,arm指令禁止修改和转授权,我们就算撕破脸,国内就去他妈的不理法律问题,硬用,那这些芯片在国外也搞不开,会被美国司法打击,而且确实是我们理亏的一方。不能往国际推广,只能自己窝里用的,得不偿失。这条放过。
再看1,有可能,短期不可能。换开源鸿蒙已经是要竭尽全力了,再换个指令集,会死人的,生态问题。
再看2,不可能,因为RISC-V开放度自由度奇高,本身已经非常碎片化了,你根本借不到所谓生态,而且RISC-V某种程度上是学院派或者极客们的玩具,不是个用来干大活的东西。所谓加入RISC-V生态吧,还不如说你重新设计了一个指令集,但是包含或兼容了部分RISC-V的指令,跟1其实基本是一回事,还要受到RISC-V开源协议的制约。
再看4,有可能,但是短期也不行。为什么这么说呢,arm指令集还是很能打的,华为又是很现实的公司,钱都花了,也要物尽其用。而且龙芯架构是按照通用CPU来设计的,没考虑功耗,你也用不到手机上,如果非要往手机里面塞,肯定要做优化,比如改指令的电路设计,选择速度可能没那么快但是功耗低的设计;不用的核或模块暂时休眠;甚至精简指令,不搞那么多向量运算进去。
所以很遗憾,华为海思的大芯片短期还是要用arm的指令集,后续有可能会用RISC-V或者Loongarch做一些MCU小芯片,手机芯片和高性能SOC还是不行。
下面要重点分析一下龙芯中科。
龙芯目前的短板在生态,性价比已经不弱于intel和AMD,但是没有公平竞争的机会,windows不支持。国产linux的发行版更是一言难尽。但是在新的生态里,开源鸿蒙给了一个公平竞争的机会,Openharmony适配arm,适配X86,没理由不适配Loongarch,这可是非常严重的政治不正确。
再从技术角度分析分析。
适配一个CPU,尤其是大核,其实很难。不是仅仅点亮就行,基础软件(给开发者用的)的适配需要精通loongarch指令集的人员来干,这部分人又绝大部分在龙芯中科自己公司里,这跟已经很通用的x86、arm指令集不一样。也就是说,开源鸿蒙能否适配龙芯,其实要看龙芯自己是否积极。
开源鸿蒙Loongarch SIG的组长叫连志安,今年四月份的时候发了一个帖子,在知乎上面。节选部分:
“当时我在社区看到很多开发者希望LoongArch架构能适配OpenHarmony。于是乎,我觉得有必要拉上龙芯、OpenHarmony一起来做这个事情。
前面虽然适配了1C300,但是还只是适配了OpenHarmony轻量系统。对于小型系统、标准系统的适配,还是需要有龙芯的支持才能更快地将这个事情做起来,时间不等人。
2022年3月,我给广东龙芯总经理江山总发了一条信息,说我想过去拜访他。当时我心里还是没谱的,虽然之前已经跟广东龙芯合作适配了1C300芯片,但是一直没见过江山总。
当天下午交流非常顺畅,我跟江总提出了想要把OpenHarmony和LoongArch结合起来。江山总是一个非常有情怀的人,对这一块非常认可,并给予了很大的支持。
最终,在广东龙芯的支持下,我拉上润和软件、慧瑞思通、龙芯俱乐部等共同发起成立了OpenHarmony LoongArch SIG组,并通过了PMC的评审。正式开始了OpenHarmony与LonngArch的适配之路。”
“克服了各种苦难,最终OpenHarmony LoongArch SIG跟龙芯一起完成了2K0500、2K1000LA的芯片适配。并且得到了龙芯中科的官宣。”
“其中润开鸿(润和软件子公司)与广东龙芯一起完成了广东龙芯2K0500先锋板、2K1000LA星云板、DAYU400(芯片为2K0500)共计3个开发板的适配。
鸿湖万联与龙芯嵌入式事业部一起完成了乘风1000(芯片为2K1000LA)开发板的适配。”
“龙芯与OpenHarmony的故事还将继续下去,我们将与龙芯一起实现全芯片OpenHarmony全系列组合,推动OpenHarmony对LoongArch架构的全覆盖支持;同时也会逐步开源相关代码,吸引发动更多的开发者参与到OpenHarmony+龙芯生态中去,以多样化的芯片及产品来推动OpenHarmony的万物互联。”
从这些内容来看,龙芯的态度是积极的。
从gitee开源社区的信息看,开源鸿蒙对3a5000的适配一直在进行。
从技术角度,Loongarch的基础软件齐全,这里的基础软件指的不是微信、QQ、office,而是作为一个指令集,C/C++、LLVM、Golang等编程语言是否支持将代码转化为指令集的机器语言,音视频解码器是否支持,Qemu模拟器是否支持,加解密协议是否支持,换句话说,就是给程序员的工具是齐备的。有了这个基础,操作系统适配这个指令集才有意义,不然适配了也没人开发。
之前在社区提过,开源鸿蒙正在适配3A5000和2K2000,说的是今年底或明年初。3A5000是大芯片,有四个大核,最新发布的3A6000对于3A5000进行了大幅的优化,但是复杂度没有提高,能适配3A5000就能适配3A6000,技术难度是相似的。

但是时间上不好说,毕竟关心龙芯的人知道6000系列芯片在公开市场有相当的竞争力,信创只能扶上马,最终做大做强还是要靠公开市场。现在5000系列还没适配出来,按照计划“明年初”(我就按明年三月份来算)适配成功,今年3月份开始的,用了整整一年。那么适配6000我只能拍个脑袋,一回生二回熟,按半年算,预估明年9月吧。
这个时间有点巧,按照目前一些开源鸿蒙的PC版本开发者透露的进度,大概也是要到明年下半年。
所以,有可能鸿蒙PC版正式推出的时候,就是完全体:兼容arm、x86、loongarch。
最后还有一个问题,海思和龙芯是否存在竞争关系?
并不大有。
Arm指令集本身就天生不适合PC CPU(高性能计算差),loongarch指令集也不适合手机(能耗大)。在PC、服务器领域,华为可能都打不过龙芯。而且华为也有自己一趴,对于开发桌面CPU也兴趣不是很大,以前开发的盘古M900就是为了桌面,但是后来没怎么续上,现在性能和龙芯、海光相比差得有点远了。
也有竞争的地方,在平板芯片上。海思在这上面是强项,龙芯也完成了2K3000自带GPGPU的设计,预计最近也该去流片了(他们流片成功率真的高,基本上搞一次就成),低能耗算力相对不错,很便宜。所以他们也不是完全没有矛盾。
不过总体来说,毕竟上头有个党管着,矛盾也没那么大,合作远远大于冲突。
下次可以看看万物互联的通信芯片层面?都互联了,没有无线通信怎么行。






