
文|史中
CPU 的“庶民的胜利”
文 | 史中
(一)堤坝上的裂缝
人们总说要“活在当下”。
但好多烦恼恰恰来自人们太活在“当下”了。
就拿芯片“卡脖子”这件事来说,很多人的第一反应是——中国脖子已经被卡了好久,都卡秃噜皮了。
但看看以下时间点:
2022 年 10 月,美国宣布对中国先进计算芯片的出口管制。距今 1.5 年。
2020 年 3 月,美国宣布禁止台积电为华为代工。距今 4 年。
2018 年 10 月,美国宣布对福建晋华实施制裁,这已是美国对华芯片压制的起点,距今 5.5 年。
这段时间,实际上比很多人的感觉更短。也许只是痛苦才让它显得漫长,这就是“相对论”吧。。。
有人可能会想:“虽说开始没多久,但不知道什么时候才能摆脱制裁啊!大的还没来,岂不是更让人灼菊?”
要我说,摆脱在芯片上的困局,绝不会难到“家祭无忘告乃翁”的程度!
“理解当下”的最好办法是“活进历史”。
你看,1971 年现代 CPU 才诞生,创造 CPU 的那一代人也还世。而在 50 多年的历史中,CPU 江湖已经改朝换代不知几何。
君不见,每一代霸主都期待构建起雄伟的大坝,把技术之水围住,可谁又成功了呢?

世界上第一个 CPU,Intel 4004 的结构图。 世界上第一个 CPU,Intel 4004 的结构图。
正如中国古话所说:“千里之堤毁于蚁穴”。
小小的蚁穴都能溃坝,何况。。。这次鹰酱用政策构建的堤坝上可不只是蚁穴,甚至可以说有不少裂缝,创可贴都贴不过来。
说到这儿,可能有浅友要吐槽:“中哥你这不就是‘遥遥领先党’吗?”
非也。情感毕竟虚幻,事实才能通向答案。
所以,今天的节目我带大家来参观一下 CPU 历史上的“溃坝事件”。大家看后,也许自有论断。
我们就从大陆的另一端,烟雨蒙蒙的英国开始吧。

(二)小小的橡果&傲慢的巨头
1978 年,那是一个春天。
那一年,Intel 公司搞出了一个芯片,叫做“8086”。
那一年,美国的铁子们开始口耳相传一个叫做“Apple II”的东西。一千多美元,就能拥有一个性能堪比“阿波罗登月计划”、设计骚骚的、界面屌屌的电脑,感觉相当膨胀。
那一年,原本做计算器出身的俩老哥库里和豪瑟也看到了“微型计算机”的机会,于是合伙在英国建立了一家芯片公司。
公司名字非常狠,叫:CPU,它的全称是“剑桥处理器公司”。

Chris Curry & Hermann Hauser
此时,赌狗们开始展现硬核实力了。
一家专门做赌博机(水果机)的公司找到 CPU,问问他们能不能搞一个芯片,里面能跑程序的那种,帮助赌狗们更愉快地耍(shu)钱。
库里他们砸吧嘴,赌博机。。。四舍五入也是微型计算机的一个分支吧。有钱不赚王八蛋。
就这样,他们赚到了创业的第一桶金。

就是这种水果机
搞定之后一抬头,这玩意儿也不难嘛。苹果能生产个人电脑整机,我们为毛不行??
于是 CPU 公司赶紧注册了一个对标 Apple 的子公司,给新公司起名不靠风水大师,就靠自己硬凹,标准就是:在通讯录里一定要TMD排在苹果公司前面。
所以这个公司必须以 A 开头,第二个字母还得在 p 之前。
想来想去,他们选定了“Acorn”,也就是橡果,看上去比苹果命硬多了。
话说,苹果当时已经很流行了,橡果怎么阻击呢?
没错,靠的就是:不是苹果买不起,而是橡果更有性价比!
1980 年,橡果搞出了一款个人电脑,叫做原子(Atom)。

Atom 只是前面带键盘的盒子,显示器就直接用家里的电视。
它用的 CPU 是 MOS 公司生产的 6502。
看到这你可能快出戏了,我只听过 9527,没听过 6502 啊!
嘿嘿,如果你没听过 6502,那你绝对欠它一张票钱。因为大名鼎鼎的任天堂“红白机”(FC),用的正是这个芯片。

这是红白机的拆机图,红圈里就是 6502
话说这个芯片当时很流行,Apple II 用的也是它。那原子电脑怎么竞争呢?
好办,显卡简配,扩展插槽减少,各种基础功能都挤在一个电路板上。能省的地方全省了,再把价格直接定到苹果的三分之一。你就说香不香吧?

这是 Atom 里面电路板的样子。芯片排布是不是很密集?
风口来了,猪想不上天都难。
1980 年,英国 BBC 推出了一套教育节目,给大家科普一下计算机时代的浪潮要来了。结果这个节目太火了,观众们纷纷来电,请 BBC 推荐:我家娃想学电脑,该买啥?
BBC 一看,这么好的机会,我自己攒一台电脑卖不就行了?
这个活儿最终转包到了橡果电脑身上,廉价够用的原子电脑把一排键帽换成红色,就成了 BBC Micro 电脑,卖得相当火。

BBC Micro
由此,橡果被英国人称为“英国版苹果”。
要我说,这路线哪是英国版苹果,分明是英国版小米。。。
这不,很快橡果就遇到了和小米一样的问题,界面过于朴实,价格过于亲民,冲不了高端。卖 10 台的利润还赶不上苹果、IBM 一台的零头。。。
伤害来自对比。当时苹果刚推出 Apple Lisa,那叫一个美轮美奂,相比之下橡果的超级玛丽风就不能看了。

乔布斯和 Apple Lisa
于是他们下决心设计新机型。
搞来搞去,发现了问题的根源——红白机的那颗 6502 CPU 给不上力了。
橡果找了一圈,觉得 Lisa 使用的摩托罗拉 68000 CPU 是又贵又难用,只有 Intel 的 x86 系列还勉强能打。
不过橡果没打算直接买,而是想在 x86 CPU 的基础架构上自己做进一步的定制开发。
于是 1983 年,橡果找到了 intel,直接问:“你们能不能把 CPU 的架构授权给我们用?”
Intel 说:“玩儿蛋去!”
其实。。。Intel 并没说这话,而是完全把橡果当空气。沉默是最大的蔑视。
话说回来,塞翁失马焉知非福。如果 Intel 搭理了橡果,情况可能更糟。
因为当时 Intel 答应了很多日本公司,授权他们用自己的 x86 架构生产芯片。
结果。。。
1984 年,美国通过了《半导体保护法》。然后 1986 年,Intel 80386 芯片上市前夜,他们直接翻脸,对日本公司“断供”,导致日本公司集体哑火,无法研制新处理器,只能购买 Intel 的。
看吧,过河拆桥,筑大坝,卡脖子,那都是传统艺能了。
总之,橡果和 Intel 的梁子算是结下了。但别急,未来 Intel 有足够的时间为当初的傲慢买单。

(三)恐龙和老鼠
橡果只好自力更生了。
不过此时,他们设计过 CPU 的最高水平是——赌博机芯片。
参与设计那款芯片的两位工程师 Roger Wilson 和 Steve Furber 心里没底,特意跑去 6502 的娘家,美国 MOS 公司参观了一下,回来时他们脸上挂满了自信的笑容。

Roger Wilson(左)和 Steve Furber(右)
MOS 公司的 CPU 部门,唯有破烂办公室一间,攻城狮几只。。。啥高级设备也没有。
这条件,我们也有啊!
橡果决定像素级对标 MOS:找了一间谷仓,塞进去几个工程师开始了新 CPU 的研发。

老师傅们发现,要想设计 CPU,自己首先得搞清一个哲学问题:
恐龙和老鼠,谁更有生命力?
Intel 芯片的设计理念就是“恐龙”,它的基因里刻着各种复杂指令,像恐龙一样能打。但设计、制造成本更高,跑起来的能耗也高一些。
6502 芯片的设计理念就是“老鼠”,它的基因里删掉了很多指令,只留下了比较简单的。正如老鼠,单位战斗力比较低,但设计、生产成本也低啊!
要这么说的话,结论不是明摆着么?小行星撞地球后,恐龙都变成石油了,“老鼠们”却进化成了各种高级动物。
选老鼠!

老师傅们博览当时的论文,找到了心仪的“老鼠原型”:来自伯克利大学的一个叫帕特森的老师主导的论文——精简指令集,也叫 RISC(Reduced instruction set computer)。
于是,他们决定开发一款橡果 RISC 电脑芯片:Acorn RISC Machine,简称 ARM。
没错,刚才你看到的这段往事,正是如今大名鼎鼎的 ARM 的诞生历史。

第一款 ARM 芯片
话说 ARM 芯片的研发非常成功。而你懂的,如果剧情一直这么顺利,大事儿就要来了。
从 1983 到 1987,研发新的芯片用了四年时间。
这四年里,“气候”发生了翻天覆地的变化——趁橡果埋头自研的功夫,冒出了一堆“魅蓝”之类的竞争对手,他们复制了低价路线,而且更加价格实惠、感动人心。。。
祸不单行,橡果电脑不仅价格优势荡然无存,还遭遇了供应链问题,有人买的时候供不上货,等供上货之后,人家早买了竞争对手的产品了。
1985 年,橡果的仓库里积压了 25 万台电脑,股价狂跌到了23便士。
有趣的是,这一年,同样走高端路线的苹果也遭遇了滑铁卢,差点儿破产,乔布斯都给董事会开除了。曾经风光无两的哥俩,转眼成了难兄难弟。
后来,橡果一蹶不振,苹果慢慢缓过来。
当时苹果觉得,既然电脑消费者不喜欢了,那来个“商务通”你们爱不爱?
于是 1990 年,苹果准备攒个 PDA,名叫牛顿(Newton)。这玩意个头小,电池也小,带不起来大功耗的 CPU。
苹果找来找去,发现只有 ARM CPU 比较符合要求,于是找到奄奄一息的橡果公司组建了合资公司,也就是 ARM 公司。

这就是 Newton,拿着它的是约翰·斯卡利,赶走乔布斯的那位老哥。
当然,“牛顿”最后没卖出去多少,但 ARM 作为独苗,好歹是活下来了。
从此,江湖再无橡果,只剩 ARM。
话说那一拨 IT 行业大洗牌,微软占了大便宜,它用 Windows 绑定了 Intel,也把后者送进了鼎盛时期。
随后,CPU 世界像极了侏罗纪时代:
Intel 这只恐龙制霸世界,而 ARM 只能躲在恐龙脚下抱头鼠窜,靠支持一些小型或手持设备苟着。
ARM 的边缘地位,决定了它搞不了 Intel 那种垄断,只能选择一种“开放”的生存方式——向各个 CPU 厂商出卖架构的授权。
每一家都收一点儿钱,争取铺得广一些,东方不亮西方亮嘛!

比如,当时德州仪器买了 ARM 授权,生产出芯片卖给诺基亚做手机;
还有三星,也买了 ARM 芯片放进自家生产的 DVD 里。
隐忍终有出头日。
2007 年,回归苹果的乔布斯从兜里掏出 iPhone,ARM 凭借智能手机时代重返大众视野;

2008 年,谷歌第一台 Android 手机 G1 发布,同样使用了高通基于 ARM 的处理器;
2011 年, ARM 推出了服务器芯片架构,正式进军 Intel 的老巢——高性能计算;
2020 年,苹果倒戈,把 Mac 电脑的芯片从 Intel 全部换成基于 ARM 的 M 芯片。
至此,Intel 在所有战线上腹背受敌。

如今 Intel 架构能干的活儿,ARM 架构全能干,而且眼瞅着干得更好。昔日在恐龙脚下躲藏的老鼠如今已经有制霸世界的王者气息。
只是很多人不会记得,ARM 的第一个字母 A,仍旧背负着昔日橡果 Acorn 的旧梦与荣光;
很多人也没有嗅到,ARM 的第二个字母 R,藏着下一个时代的锋利预言。
不过在这里,我们首先回答那个问题:ARM 的王子复仇,Intel 的溃坝,这其中到底有多少运气,又有多少必然呢?
换句话说,如果把历史倒转,ARM 还有多大胜算逼退 Intel 呢?
我们不如把 CPU 的盖子撬开,让里面的“葫芦娃”告诉我们答案。
(四)“指令集”——葫芦娃的巴别塔
打个比方。CPU 的盖子里,密密麻麻排着好多逻辑电路,他们就像不知疲倦的葫芦娃。
他们的性格比较轴:
1、每种葫芦娃只会一种技能,不能变通。
2、但只要交给他任务,他就使命必达,一定能完成。

根据每一款 CPU 的用途不同,包含的葫芦娃种类也不同。
但是,总体上这些葫芦娃可以分为“胖娃”和“瘦娃”两种。
所谓胖娃,他们的技能是“组合拳”。
例如:A 胖娃每次接到命令,就炒一盘鱼香肉丝;B 胖娃每次接到命令,就炒一盘宫保鸡丁。

所谓瘦娃,他们的技能是“一拳超人”。
例如:A 瘦娃每次接到命令,就切一刀,B 瘦娃每次接到命令,就翻一下铲子。

Intel CPU 里,既有瘦娃也有胖娃,所以叫做“复杂指令集”——CISC。

ARM CPU 里,只有瘦娃,没有胖娃,所以叫做“精简指令集”——RISC。

有人可能会疑惑:
刚不是说 Intel 能干的事儿 ARM 全能干吗?ARM 没有胖娃怎么炒“鱼香肉丝”?
很简单,一个胖娃做的事情,总能拆成 N 个瘦娃来做。
这些瘦娃切墩,那些瘦娃颠勺,最后炒出来还是个“鱼香肉丝”。(我觉得这一点和冯·诺依曼的“元胞自动机”所暗示的生物学原理有一种隐秘联系)

瘦娃也能炒鱼香肉丝
你可能看出来了,使用精简指令集,虽然葫芦娃干起活来比较直白,但是写程序的人类就费劲多了,还得把组合拳拆解成左手右手慢动作,工作量大大的。
那,要“精简指令集”何用?
在“葫芦娃”的世界里,有一个 BUG,那就是——“食材”没地方放。
咱们假设,切一下肉需要 1 秒,但是从案板上拿起一块肉就需要 3 秒。
这还没完,案板才有多大啊,只能摆得下几样菜。如果要切的菜案板上没有,就得去冰箱里取,这一来一回就需要 15 秒;
这还没完,有些菜冰箱里也没存,得下楼去小卖部买,这么跑来跑去,少说也得 5 分钟;
这还没完,有些菜小卖部也没有,得去远处的农贸市场买,一来一回就得 1 天。

最夸张的是,我真的没有在夸张:
其实这些“食材”,就是 CPU 执行计算时所需要的数据。
案板就是 CPU 的 L1 缓存,从这里取一次数据是执行一次计算耗时的 3 倍;
冰箱就是 L2 缓存,取数据是计算耗时的 15 倍;
小卖部就是计算机的内存,存取时间是计算耗时的 300 倍;
而农贸市场,就是计算机的 SSD 硬盘,存取是计算速度的上万倍。
哎,归根结底还是人类技术太糙,搞出的存储架构比计算架构运转慢得多,而且几十年过去了,二者差距不仅没有缩小,还越拉越大。
也就是说,CPU 在运行的时候,大部分时间不是在“做菜”,而是在“等人买菜”。
有这个 BUG 存在,CISC(复杂指令集)的麻烦就来了。
在 CISC 架构下,胖葫芦娃只能按部就班干活儿,先看到需要萝卜就让人去冰箱里拿萝卜,切完一看下一步需要木耳而冰箱里没有,才差人去超市买。
这么一来,该耽误的时间全耽误了,不该耽误的时间也全耽误了↓↓↓

CISC 工作流程
而 RISC(精简指令集)架构下,因为瘦葫芦娃是分工的,每个葫芦娃只做一个动作,所以他们都知道自己需要什么原材料,这样他们每个人都能配个案板+冰箱,提前备好食材。
就算临时要去买食材,也能尽早差人去买,“不该耽误的时间”就能不耽误了↓↓↓

RISC 工作流程(这是个示意,没考虑步骤之间的依赖关系)
CISC 的计算过程更像寿司之神:“老师傅一人手搓”;
RISC 的计算过程更像富士康:“流水线万人协作”!
结论来了:ARM 的胜利,本质上是工业大生产的胜利,是技术的胜利。哪怕重来一百次,ARM 都大概率能战胜 Intel。
指令集就像是 CPU 的语言。
语言是个双刃剑,它让同种同族之间的协作变得顺畅,也在不同种族之间建起高墙。
如果一个程序是为 A 指令集的芯片开发的,哪怕 B 芯片的指令集哪怕只有微小的差异,程序运行过程中都可能遇到“缺娃”的状态,导致崩溃。
所以,操着不同语言的芯片,没办法相互理解。
这也是芯片界“巴别塔”的故事。

正因为有“巴别塔”,芯片之间的大坝才能建立。
当年 Intel 竖起高墙,不让 ARM 使用自己的指令集;
而后来 ARM 同样竖起高墙,不让别人“免费”使用自己的指令集。
只不过 ARM 比较地道。它的墙矮了很多:
为了在 Intel 这只恐龙的脚下生存, ARM 架构“给钱就卖”,要价确实不贵。
当然这也造就了 ARM 市场占有率接近垄断,但利润常年不高,还被卖来卖去的可怜兮兮形象。。。
反过来,对于全球芯片制造商来说,这就非常划算了,毕竟自己研发芯片架构比购买授权要花费更多的人力物力。
于是买卖双方都满意,一切相安无事。

Intel 的墙高,ARM 的墙矮
直到历史的大河来了个180度大拐弯。
美国开始了骚操作,放出十八道金牌,不允许 ARM 向中国出售它的先进架构设计。昔日的勇士,也(被逼)变成了恶龙。
当时已经有很多中国芯片厂商正在基于 ARM 架构研发芯片,最著名的当然就是华为的海思半导体。
这么一来,“指令集”从本来给点钱就解决的小事儿,成了用钱解决不了的大事儿。
那就只剩华山一条路了:让历史再轮回一遍,用 ARM 干掉 Intel 的姿势,再把 ARM 干掉。
这个战术翻译过来就是:用一种新的指令集来代替 ARM,而且,这种指令集的围墙要比 ARM 还低,最好低到——没有围墙,免费使用。
啊。。。这样的指令集存在吗?
太存在了。

(五)指令集想要自由
话分两头,咱们现在就拨转地球,回到那个热血奔流的黄金时代的美国。
大卫·帕特森来自一个极为普通美国家庭,1960 年代,他成了全家第一个考上大学的人,可谓全村的希望。
所以他的理想朴实无华——财务自由。
为此,他报了加州大学洛杉矶分校的数学系,准备将来成为精算师,赚他个小目标先。
可是他在大学里凑学分的时候,偶然上了一学期计算机课,然后热泪盈眶地顿悟:
财务自由算什么,搞机才是主要的!
他的人生走上了不归路。

David Patterson
1979 年,帕特森已经是加州大学伯克利分校的计算机教授。他被外派到 DEC 公司,改进他们 VAX 电脑的 VAX 处理器。
又出现了新词,啥是 VAX 电脑?
这么说吧,当时在个人电脑领域,不是苹果电脑风生水起嘛,在商用电脑领域,那 VAX 可谓呼风唤雨。
我们在另一篇文章《时代裂隙中的刺客》里,有提到 VAX 电脑的背景,大家可以去那儿了解。

VAX 11/780 计算机(1977) VAX 11/780 计算机(1977)
总之,帕特森到那儿一上手,直接惊呆。
VAX 复杂指令集的“疗效”,实际上远没有广告里说的那么好。
本来“胖娃”(复杂指令)的出现就是要降低芯片使用的复杂性,可是“胖娃”太多了,要想用好它们,还得搞个“爷爷”来管理他们,也就是额外编写一组调度程序,叫做“微代码”。

帕特森吐槽:为了“省事儿”又做了好多“费事儿”的事儿,你这不是闹么?
这么说的话,反正都要写一堆代码调度,那我干脆用最简单的“瘦娃”来组成 CPU 的指令,会不会总体上更省事儿呢?
回去之后,他四处拉赞助,竟然搞来了美国国防部高级研究计划局,也就是大名鼎鼎的 DARPA 的经费,投入精简指令集的研究。
1981 年,第一个研究性质的 RISC 芯片被做出来了。

RISC 芯片仅仅用了 44420 个晶体管,32条指令,理论运行速度就超过了晶体管数量多一倍的 VAX。(当然实际速度没这么快,主要原因是制造工艺比较粗糙。)
虽说这个芯片主要供研究,没装在任何商用计算机里,但它无疑做了一道证明题:
RISC 确实是可以比 CSIC 更快的。

第一代 RISC CPU 的晶体管电路图。
这里故事就接上了,舞台追光转到了大西洋彼岸,橡果看到了 RISC 论文,迅速把它商业化,做出了 ARM。
但在追光之外的加州大学,RISC 的故事可没有结束。
我们把进度条直接向后拖,人影如蚁进退,漫长的故事里,终于有第一个中国人出场了。
谭章熹是北京人,清华毕业后去加州大学做博士,成为了帕特森的关门弟子。

谭章熹和帕特森
2009 年时,他负责带着同学们研究第五代 RISC,也就是 RISC-V。
之所以要搞 RISC-V,是因为当时他们要做一个并行计算的研究,需要一款特殊的 CPU,市面上实在没有现成的,只好自己做。
这就好像我想做个煎饼果子,但是买不到油条,我只好自己炸一根。。。
你看,RISC-V 最开始真没啥野心,就是个“油条”。
谭章熹要毕业了,直接把做了一半的 RISC 项目倒给了实验室的师弟安德鲁·沃特曼和李允燮(他是韩国人)。
这哥俩一看,搓起了小手手,既然市面上流行的 CPU 都在吃“垄断饭”,那不如来点儿狠的,跟时任实验室的老师阿萨诺维奇一商量:
直接把 RISC-V 指令集免费开源出去,谁爱用谁用,肿么样?

从左到右:安德鲁·沃特曼、李允燮、阿萨诺维奇。
你看到了没,在那一时刻,RISC-V 有意无意地复刻了 ARM 对 Intel 的方法,就是我们刚才提到的“把围墙变矮战术”。
他们把这招做绝了,直接拆了围墙——都免费了,你还要啥自行车?
说到这儿,我突然想起了当年周鸿祎用免费杀毒干翻一票收费杀毒软件的故事。“免费”这两个字的杀伤力有多大,有时连当事人都无法预料。。。
在 2014 年,美国集成电路峰会上一个不起眼的角落,上演了科技史上经典的一幕。
RISC-V 的主创班底列队整齐,摆了几张纸板,笑吟吟地给每个路人发他们的徽章,小小的徽章上却写着狂妄的口号:
指令集想要自由!(Instruction sets want to be free!)

是啊,从 1971 年“指令集”的概念伴随着第一颗 CPU(Intel 4004)的出现,到 2014 年,已经过去了 43 年。
漫长的浮沉,城头虽然变幻大王旗,可指令集这个“天子”一直被关在监牢里,以此要挟向每一个“诸侯”听任调遣。
指令集想要自由。

这是当时的徽章
多说一句,RISC-V 的自由,不是那种“既不要钱也不管你”的自由,而是那种“不要钱还给你服务”的自由。
比如,它的指令集是像“乐高”一样的。
不同的指令被打包在不同的“子指令集”中:
有能计算加减乘除的“整数计算”;
有能计算小数的“浮点计算”;
也有能计算图形的“向量计算”;
也有能保证即使出现错误程序还能继续执行的“原子化计算”。
每个“子指令集”就像一块积木。
你可以用几块积木,也可以用几十块积木,丰俭由人。
你想要的 CPU 如果用不到某些指令,直接从芯片设计阶段就能“尅掉了”,保证芯片出炉后能以最佳的效率燃烧,一个葫芦娃都不浪费。

而且,这些积木还是不断改进样式的。例如,某种 AI 算法发展迅速,它用到的新指令也会被社区给“添油加醋”进去。
你看,这正是开源的精神所在。
如此说来,如果把 ARM 比作“老鼠”,那么 RISC-V 就更像“昆虫”,它们细小,奇形怪状,种类繁多,行动迅速,无孔不入。
本来的无心之举,却踩中了电门,全世界的程序员蜂拥而至。RISC-V 团队这才开始认真起来。
2015 年,他们在美国成立了“RISC-V 基金会”,正经八百地推广这个“自由指令集”。
从那一刻起,历史陡然加速。
虽然此时谭章熹已经离开 RISC-V 队伍去创业了,但我之所以特别强调他的贡献,是想告诉浅友们:这个有可能解放全世界指令集的架构,在一开始,就是有中国人的硬核智慧推动的。
从各种角度看,我们在使用它的过程中,不仅不用有“白吃白拿”的愧疚,反而可以”适度骄傲“。
说到这儿,我们终于能把地球仪转回来,看看我们脚下的这片土地,中国人绵延几十年的”CPU 焦虑“。
(六)“CPU 焦虑”和两道裂缝
你看这张图,右边是帕特森,左边这位老哥是约翰·轩尼诗。

1980 年他俩在一次学术会议上见面,马上私定终身成了一辈子的好基友。
在当时的学界,翻遍各位大佬,只有他俩力挺精简指令集理念,总在学术会议上舌战群儒。
不过他俩不在一个学校,常年两地分居,没办法合作同一个项目。
1981 年,轩尼诗在自己的斯坦福大学独立创建了一个独立的精简指令集 MIPS(MicroPRocessor without Interlocked PiPElined Stages)。
MIPS 可能有的浅友不熟悉,但我告诉你,1994 年索尼推出的 PlayStation 用的正是 MIPS 的芯片。
好多美好的童年记忆可都是 MIPS 一帧一帧给你算出来的呀。是不是又欠一张票钱?

PlayStation
而且 MIPS 和我们中国的缘分不止于此。
在 2001 年时,有一群人把 MIPS 架构作为“援军”引入中国,他们就是中科院背景的龙芯。
在当时,龙芯肩负的使命是四个字:自主可控。
CPU 架构一旦确定,极难转向,所以龙芯创业时也面临当年橡果一样的烦恼,要非常谨慎地选择指令集。
选谁呢?
以 Intel 的尿性,肯定不会给中国人自主可控的架构授权。它历史上就没给过,而且还过河拆桥实力坑过日本,不足与谋;
当时 ARM 还前途未卜,蜗居在恐龙脚下的“功能机世界”,没有王者之气;
只有 MIPS 最为优美简洁,人气蹿升也很快,四舍五入最符合中科院的要求。
你问为啥不用 RISC 指令集?因为那时候 RISC 早期版本都在学校的实验室里呢,没有开放给人用。。。
这么说的话,龙芯不是来晚了,而是来早了。

龙芯的首款芯片:龙芯一号
但命运不是电影,谁都没有主角光环,没人关心你的早晚。
由于之前提到的“葫芦娃的巴别塔问题”,MIPS 和 x86 在操作系统和软件生态上都无法适配,独立发展生态困难重重。
他们做出的 CPU 并未广泛商用,尤其没有打入民用市场,所以完全没有撼动 Intel 的地位。
而且不久后,连 MIPS 自己也开始式微。

“CPU 焦虑”仍在那里,不同的人开始纷纷求索,几乎试遍了所有道路。
正如大家所知道的,这些团队大多有高校、研究院等学术背景。例如海光和兆芯辗转拿到了 x86 架构的授权,尝试生产兼容 x86 的芯片;例如飞腾,后来拿到了 ARM 的授权,生产 ARM 芯片。
虽然这些 CPU 都存在缺点、妥协和短板,但“有”和“没有”的区别是巨大的。
很大程度上,它们缓解了中国人的“CPU 焦虑”;而他们所培养出来的老师傅,也成为了日后中国高性能计算芯片设计的中坚力量。
就在大家埋头探索,泪眼婆娑苦闷至极时,RISC-V 所代表的“自由指令集”思潮开始在中国萌动。
这种震撼,不亚于“十月革命的一声炮响”。
2014 年,伴随那次广场上“指令集想要自由”的呼喊,RISC-V 研究团队还放出了同名论文,那就是如今被奉为经典的《Instruction Sets Should Be Free: The Case For RISC-V》(《指令集应该自由:以 RISC-V 为例》)

加州大学的留学生钱学海马上决定把大洋彼岸的呐喊介绍给中国人。
帕特森很重视,特地让谭章熹抽出时间来把关,所以这篇文章的中文翻译质量极高。
钱学海把文章发给了中科院计算所的研究员包云岗。包云岗推荐到《中国计算机学会通讯》,在2015年2月发表。
当时,这个文章没有引起什么轰动,但包云岗的内心却“轰动”了。他决心把生命奉献给这个自由指令集,成为了中国 RISC-V 布道的先驱。
在他和很多中科院研究员的奔走呼号下,中国 CPU 的核心玩家都关注到了 RISC-V 的机会。
现在回望,这些研究员们就是“堤坝上的一条裂缝”。
与其说历史选择了他们,不如说他们选择了历史。中国人的 CPU 焦虑和 RISC-V 的开源优势客观地摆在这里,强大的压强必然会让它向中国渗透。
他们只是在正确的时间站在了正确的位置。

包云岗
2019年,帕特森来到上海开会,给大家介绍 RISC-V。
可很多人一听他的基金会总部在美国,马上皱眉:“谢谢,不敢用,算了吧。”
帕特森说:“行,你们等着。”
他可不是要报复谁,而是回家之后马上把 RISC-V 基金会的总部迁出美国,移到瑞士。
而且,就在 ARM 被禁运一个月后,他“逆势”宣布和清华-伯克利深圳学院(TBSI)合作,建立了一个 RISC-V 国际开源实验室,也就是“RIOS 图灵实验室”。
在刺骨寒风中,中国对于 RISC-V 的技术使用和学术交流畅通无阻,如爝火不熄。
你看,帕特森虽然是美国人,但他没有不加思考地就去“代表”美国的利益。作为一个科学家,他思考的是用什么方式可以推动全人类的进步。
帕特森和 RISC-V 核心团队,成为了堤坝上的“又一个裂缝”。
同样,与其说历史选择了帕特森,不如说他选择了历史。
“自由指令集”的思潮从2010年诞生,如果它没有顺应现实世界的利益博弈,又怎能顽强地长大?怎会在无数“CPU Guy”的心里生根发芽?
正如和一位中国创业者交谈时,帕特森说的那样:
只要 RISC-V 生态能做起来,我们不在乎是谁做成这件事。

在伯克利大学,专门设立了一个纪念 RISC 发明的铜牌。
(七)旧时代的黄昏和“赶夜路的人”
当一个时代的基本幻想枯竭后,这个时代就被视为结束了。
2018,我愿称之为“旧世界的最后一年”。
那一年是乐观的。
有大批学者把“逆全球化”视为短期阵痛,忍忍就过去了,接着奏乐接着舞。
那一年是嘈杂的。
很多投资人像甩扑克一样把钞票甩在 AI、网络安全、企业数字化等各个赛道;
互联网大厂也判断云计算、AI、大数据带来的技术红利会像一剂猛药,把中国经济顶上新台阶。于是他们冒险杀入传统行业,以至于选择性地忽略成本控制。
历史证明,没有谁的野心能超过时代的承载,大多努力并不会被命运奖赏。
然而,有少数例外。
2018 年,阿里巴巴宣布进军 IoT 赛道,同时收购中天微,重组为“平头哥半导体”,开始 RISC-V 架构芯片的研发。
第二年,他们拿出了一款性能非常高的,基于 RISC-V 的芯片设计,玄铁 C910。

平头哥发布玄铁 C910
现在回望,这是 RISC-V 在中国的第一声惊雷。
之后不久,世界隐隐的疼痛突然变成了公开的撕裂。
人们脑海中被陡然刻下钢印:
中国人要想造自己的芯片,“自由指令集”哪怕不是唯一的出路,也是最有希望的一条出路。
你可以说是“先见之明”,也可以说是“歪打正着”。反正这时,在 RISC-V 上先走一步的平头哥手里已经有东西了。
不过当时 RISC-V 的 CPU 主要用在 IoT 设备里,人们普遍不觉得它能放在“高性能计算”场景(也就是通常所说的电脑或者服务器)里。
举几个,玄铁的用户们,有人做工业控制芯片,有人做汽车控制器,有人做5G基带,有人做存储控制器,有人做网络安全设备。

全志科技基于玄铁架构做的 CPU D1 的开发板——哪吒
普通人基本不想花精力去了解这些芯片。它们没有华丽的故事,甚至长得灰头土脸。
但这些芯片的总数极大,遍布赛博世界的每一个角落。日复一日,如昆虫般通过简单的工作换取简单的生存。
这些芯片本来用的指令集五花八门,也没人特别在意。
但美国禁令推出后,大家脑袋里的那根弦都被拨动了。很多厂家主动去询问,能不能把下一代产品里的芯片替换为 RISC-V 架构,不仅降低成本,也及早规避风险。
给你看个数据感受下:
到 2021 年底时,全球 RISC-V 指令集的芯片累积卖出了100亿片。要知道,ARM 从 0 到 100 亿用了 15 年,RISC-V 只用了 7 年。
而在 100 亿片中,基于玄铁的就有25亿颗,占到了四分之一。
但是,如果虫子一直是虫子,即便数量再多,也一直会在生态的底部,和“性感”没一毛钱关系。
要打破“CPU 焦虑”,RISC-V 终究要去承担更重的“高性能计算”任务!
难度在哪呢?两个字:生态。
大家普遍认同,如果 RISC-V 芯片想进入高端生态,就得摸着 ARM 过河:先进手机,再进服务器,再进桌面电脑(PC)。
这条路想走通,必须得到这些平台的主流操作系统适配。
所以,第一步要突破的就是:让原本只跟 ARM 玩儿的 Android 也能支持 RISC-V。
之前我和平头哥的同事聊天,他们提到一段“单恋”往事:
2020 年,为了推动 Android 兼容 RISC-V,团队追着谷歌屁股后面大献殷勤,但对方表现冷淡。

谷歌高冷也是有原因的。毕竟,有姐妹受过“情伤”。
在 90 年代,微软看 MIPS 势头正劲,于是主动花很大力气让 Windows 适配了 MIPS,然后,就没有然后了。
谷歌可不想再当冤种。。。
有趣的是,时代不同了,Android 和 Windows 也不一样——Android 的代码本身就是开源的。
也就是说,理论上平头哥的老师傅不需要本家许可,就可以根据它的代码写出”野生“的适配程序。
正所谓,我喜欢你,跟你有什么关系?
正所谓,山不过来,我就过去!
那两年,无数顶尖程序员用巨大的热情和心力,写出累计十多万行的代码补丁,就这样源源不断地发布出来,不问收获,无问西东。

这是 Android 10 跑在玄铁芯片上。
在一个不被官方承认的地方下这么大的功夫是一种赌博。像极了痴情男子每天都送女孩一车花,连吃瓜群众都觉得他脑袋秀逗。
但这样的”痴情“,也只是因为三个字——不甘心!
大量的“野生补丁”持续放出来,谷歌终于看到了社区的诚意。
况且美国持续加码芯片管控,RISC-V 热度空前,谷歌心里也打鼓,要是再端着,后面别高攀不起,决定紧急投入重兵。
2022 年 12 月,在 Android 12 上开始原生适配 RISC-V。
历史再次踩下了加速踏板,系统之王“Linux”开始跟进。
Debian、 Fedora 这种老牌社区的 Linux 系统开始支持 RISC-V,中国的开源云上操作系统 openEuler 和 OpenAnolis 也陆续支持了 RISC-V,Ubuntu 和 openKylin 这样倾向于个人场景的 Linux 版本也支持了 RISC-V。
2021 年,平头哥宣布把“玄铁架构”主要的 CPU 家族开源,所有人都可以做一个和玄铁 C910 一样的 CPU,而不用给平头哥付费。
同样是 2021 年,RISC-V 最早的布道者包云岗也宣布,带领中科院大学的团队推出开源的 RISC-V 处理器架构“香山”,同样可以免费使用。
与此同时,华为、腾讯、小米、百度等等大厂也分别宣布支持 RISC-V 生态,一众创业公司也 All in 在 RISC-V 生态上。
2023 年 8 月,中国电子工业标准化技术协会牵头组建了“RISC-V 工委会”,把大大小小各路玩家都集结起来,开始严肃地制定产业标准、保护知识产权保护,培养人才。
虽然 RISC-V 在中国的生态结构刚刚成型,但是“RISC-V 大有希望”的信念却在人们心中越烙越深。
人们没时间等待瓜熟蒂落,必须尽快尝试向高性能计算的两座高峰——服务器和桌面电脑——发起冲锋。

(八)庶民的胜利
时间终于来到了 2024,给你介绍一个新朋友:如意 Book。
看上去,这是一个平平无奇的笔记本,但显然不是,它是一个“透明笔记本”。
它的芯片是平头哥的玄铁 C910,操作系统是华为的 OpenEuler,最上面能跑 LibreOffice 这种开源软件。
也就是说,从下到上,关键部位的代码都是可见的,这样一台完整开源的电脑,在人类科技史上是首次出现。
如意 BOOK 是中科院软件所和达摩院合作造出来的,它可不仅仅是能点亮这么简单,它还配备了 GPU、VPU、TEE 可信计算模块等等,也就是说,现在顶尖电脑的能力它都俱全。

这台电脑当然。。。不会有什么销量,但它的意义并不在于销量。
它标志着开源软硬件的“全链路跑通”。
有了这个“链路”,七国八制的工具软件、操作系统,还有千万程序员就能附着在上面,寻找自己的位置,成为 RISC-V 指令集自由路上的一块砖石。
2024 年,平头哥顺势推动成立了一个“无剑联盟”。
看看联盟的首批参加者,会发现不少玄机。
Arteris 做的是 SoC 芯片里的数据互联技术;
Imagination 做的是 GPU 设计;
新思科技是顶尖的芯片设计仿真(EDA)软件开发商;
芯昇科技是中国移动旗下的物联网芯片生产商;
电信研究院是做通讯技术和数据中心的。
注意,这里面 Arteris 和新思科技提供的都是芯片工业中有可能“卡脖子”的关键工具技术!
他们的全力支持,不仅意味着设计出一个 RISC-V 的 CPU 的成本和时间将大幅下降,也暗示着 RISC-V 芯片设计全链路目前是完全通畅的。
(这条路会不会一直通畅,会以什么方式“不通畅”,有什么办法应对,那是未来的问题,但重要的是,现在是完全通畅的!)

新思科技的 EDA 界面
所以,在这个时间点上,已经有很多先行者决定趁着晨光熹微赶紧出发。
例如比特大陆詹克团创办的算能科技,字节跳动前 RISC 负责人卢山创办的蓝芯算力。
甚至还有个有趣的骚操作,平头哥把自己玄铁芯片的负责人孟建熠也给“推”了出去,独立创办了知合计算。
这些大佬的目标基本相同:
把 RISC-V 架构用在服务器里的高性能 CPU 上,尝试有朝一日对 Intel 和 ARM 进行替代。
历史再次快进,有些公司的芯片已经开始交付。
比如算能科技,它的 RISC-V 服务器 CPU SG2042 已经获得了第一批客户,这些客户来自运营商和高校。
公开信息显示,山东大学已采购了 1024 片算能 CPU 用于仿真计算。
虽然人们都知道 RISC-V 架构的服务器 CPU早晚会出现,但当这枚芯片真实呈现在眼前时,仍让人心潮澎湃。
它就像乌云缝隙里洒下的一道光芒。

SG2042
在无数 RISC-V CPU 被制造出来的同时,还有一个更闪耀的机会出现,那就是——RISC-V 可以做出“AI 芯片”。
你可能会说:AI 芯片和 CPU 的架构不同啊!为啥 CPU 的指令集能做 AI 芯片?
不要忘了,RISC-V 指令集是“乐高积木”,它可以根据需要删减指令集,如果要做 AI 芯片,只要把指令集限制在 AI 芯片所需的范围内就好了!
达摩院 RISC-V 团队的技术专家李春强说,他们这帮老师傅们都认为 RISC-V 就是为 AI 而生的架构,正在编写一个名叫“Matrix”的指令集模块,专门用来做 RISC-V 的 AI 计算。
你可能还不太能想象这是一种什么芯片,我给你举两个例子吧:
1、现在很多厂商都想把大模型装进手机里,可是运转一个大模型要耗费很大的算力。
它们需要一个非常高效的专用 AI 芯片来跑这个模型——RISC-V 就是绝佳的候选人。
2、在汽车的自动驾驶系统里,需要 AI 芯片来分析路况,做出驾驶决策。
现在这些芯片的主要玩家是英伟达和高通,但 RISC-V 同样可以胜任,而且可能更适合。
这并非空谈,已经有先驱把这种 AI 芯片做出来了:
华米推出的“黄山 2S”芯片,就是放在手表里的 AI 芯片,可以加速 UI 动效,也可以精准识别“房颤”之类的身体指标异常;
嘉楠科技推出的“K230”芯片,可以放在机器人体内,作为它的“视神经”。

“黄山2S”芯片发布
这昭示了某种凶猛的未来。
2017 年,帕特森和轩尼诗因为对 RISC 和计算机体系架构的贡献而获得图灵奖,共同成为计算机历史上不可磨灭的一座纪念碑。
在他们的获奖演讲上,两位年逾古稀的计算机老炮儿大声疾呼:
未来的战场根本不在“芯片”,而在“计算”。
他们的意思是:
1、现有的芯片、编译器、编程语言和软件组成的“计算框架”是在长期发展中演化出来的结果,各层虽然能协作,但最多算“凑合过日子”,主要表现就是——计算效率极其低下。
2、摩尔定律已经失效,在现有框架下,做出再好的 RISC-V 芯片也只能把最终计算效率提升一点;
3、如果能做出从“芯片架构”到“编译器”到“编程语言”到“编程规范”的统一垂直架构,则可以把现有计算效率提升几万倍。
而想象中的“新计算”,只有 RISC-V 这种“自由指令集”才能支持。
如此说来,你我正在见证的,也许不是指令集的“改朝换代+1”,而是人类历史中一场前所未见的“计算黎明”。

回到我们的主题。
如果仅仅聚焦历史局部,你会发现诸多“反差”:
帕特森和轩尼诗两位大佬身为美国科学院院士,却在不同时期帮助中国走过芯片进步的关键一跳;
RISC 架构最初研究,靠的是美国国防部的预算,它如今却成为了中国突破技术封锁的有力武器。
为什么?
我再次提醒你:不要“活在当下”。
顺历史长河漂流下来,结论再明显不过:技术的发展从来与国界无关。
如果有人非要在国境线上用精心建立起来的堤坝来阻挡技术的流动,那么可以想见,它的崩溃可能在一瞬间。
恐龙轰然倒下,身体渐渐冷去;但整个地球的生命,正在蓬勃。
指令集的自由,正如庶民的胜利。

参考文献:
《Instruction Sets Should Be Free: The Case For RISC-V》
《指令集应该自由:以 RISC-V 为例》
https://people.eecs.berkeley.edu/~krste/papers/EECS-2014-146.pdf
John Hennessy and David Patterson 2017 ACM A.M. Turing Award Lecture
约翰·轩尼诗和大卫·帕特森 2017 年图灵奖演讲
https://www.YOUtube.com/watch?v=3LVeEjsn8Ts
再自我介绍一下吧。我叫史中,是一个倾心故事的科技记者。我的日常是和各路大神聊天,欢迎和我做朋友。
发表评论