要讨论这个问题,首先要搞清楚什么是指令集、什么是自主可控。
指令集不单是芯片的一部分,而是芯片提供功能与软件生态之间的“接口”。
自主可控的目的在于不会被“卡脖子”,而“卡脖子”包括任何封锁会造成的功能、性能、安全上的问题。脱离了这个目的的“自主可控”是没有意义的。
一个兼容的指令集可以在初期借助一些外国upstream获得更好的软件生态,当然,这样的软件生态在安全性上是难以抵御patchgap问题的。而一个针对自主软件生态优化的自主指令集在面对自主软件时拥有更好的优势,但如果一个自主指令集依托外国upstream的软件生态,则是最危险的,这就好比ms、Mozilla的自研浏览器面对Google提供的网页生态时的处境一样-一个像素点,你的优化统统报销;更不要说这些浏览器只是实现细节的差异,而upstream更新后还要面临外国是否愿意继续进行自主指令集适配工作的问题。某种意义上,这已经和不被“卡脖子”南辕北辙了。
当然,指令集对芯片而言不是对译码器电路的简单替换。而所谓的“高版本Arm指令集”更不是一个抽象的、虚无的、无论如何都比“低版本Arm指令集”nb的概念,而是一些具体的、有助于提升安全与性能的指令及其实现,比如说著名的PAC和MTE。如果一个“更加自主”的指令集只能做到老版本Arm指令集就能做到的事情,而不能“自主演进”出与PAC、MTE等等类似的功能、甚至比老版本Arm指令集支持的功能还少,那么这样的一个“自主”指令集只不过是对译码电路的简单替换罢了。
至于授权、专利费之类,仅在自由市场环境对于一个公司而言是重要的。而国家是专利的认定者乃至专利法的颁布者,非实质问题对大国影响有限。