田 斌 张 伟
(上海高性能集成电路设计中心 上海 201204)(tianb@icdc.org.cn)
关于核心技术自主创新、信息技术安全可控[1]发展,习主席有一系列重要指示要求.习主席指出:“要搞清楚哪些是可以引进但必须安全可控的,哪些是可以引进消化吸收再创新的,哪些是可以同别人合作开发的,哪些是必须依靠自己的力量自主创新的.”[2]
处理器和操作系统是信息技术的核心和基石,核心技术必须掌握在我们自己手里,使我国重要信息基础设施建立在国产处理器和操作系统上,这已经形成共识.进一步,通过核心技术突破,掌握信息产业技术发展的主导权也是我们追求的目标.
在处理器领域,正是我国对自主发展的明确而迫切的要求,催生了目前百花齐放、百家争鸣的格局.当前国际上主流处理器厂家都在国内建立了各自的合作发展模式,有授权模式、技术合作模式等等.这是好事,意味着我国在这个领域发展有了非常丰富的可选项.同时,通过分析在国内落地的各主要处理器厂家的公报可以发现,所有合作方案都有“面向中国(大陆)市场定制”的定位或限制.一些交流宣传活动所透露的信息表明各处理器引进合作方案大多表达了最终实现自主发展的信心,有些还有明确的发展路线图.这说明国家的要求、我们的努力目标都是一致的,即实现国产处理器自主可控发展,实现“技术先进、产业领先、安全可靠、自主可控、不受制于人”[3].国产处理器的一个理想的目标状态是:处理器自主研发(拥有自主知识产权),掌握创新发展的主导权;围绕自主处理器的软硬件生态极大丰富,基于自主处理器的软硬件产品成为主流,掌握产业发展的主导权;自主处理器在国内完成流片封装测试等工作,获得厚实的工业基础支撑,掌握可持续发展的自主权.
本文试图对开展国产处理器自主研发所要具备的要素进行分析探讨,希望为如何牢牢把握国产处理器自主可控发展方向提供一些参考.
“十一五”期间,国产处理器发展的基调是“自主可控”.随着认识的深化拓展,相关表述逐渐演进为“安全可控”.笔者认为,自主可控更多强调的是能力建设,安全可控更多强调的是目标和效果.要实现关键信息基础设施的安全可控,其核心芯片和核心软件必须是自主研发的,即所谓“自主不一定安全,不自主一定不安全”.
有一种说法认为掌握了一款处理器核心的全部RTL 源码就满足了安全可控的要求.笔者认为,这只是达到了一种“安全透明”的状态,有了可以进一步分析消化的基础(先不讨论可行性).这里强调的是“全部RTL 源码”,类比于C程序中的全部源码,不能“开天窗”,更不能有不可读懂的“黑模块”.即使如此,在对源码特别是涉及安全性的源码进行彻底的分析消化之前,该处理器不能认为是安全可控的.
处理器技术发展到今天,经过了长期演进,其内部架构和逻辑关系已经变得错综复杂,可谓牵一发动全身.即使能拿到一个成熟的处理器的完整源码,要分析透彻也非常困难,不仅需要一定规模的高水平专业团队,往往还需要数年时间.这就回到了发展自主可控能力的命题上.没有现代处理器设计研发基础,即使拿到源码也难以看懂理清.更何况处理器面临升级换代和创新发展,针对别人发展道路上的一个产品的源码进行改进提升又对自身自主能力提出了更大的挑战.一旦更新换代跟不上需求发展,随着时间推移很可能落到不断买进原厂新款设计的境地.这显然不是我们所希望的,也满足不了安全可控的要求.
因此,国产处理器要自主发展必须立足自身能力的发展,否则只能是跟随发展.因此可以说安全可控是目标,自主可控是实现途径[4-5].
当前,处理器技术授权已经成为一种通行的合作发展模式.典型的包括架构授权、软核授权、硬核授权等.
其中架构授权事实上是“一纸文书”,允许被授权方研发芯片,兼容授权方发展出来的指令系统架构,从而获取授权方建立的软件生态所带来的红利,利于终端用户的持续选型应用.软核授权就是购买授权方提供的处理器核心RTL 源码,以此为基础可以快速发展出SoC芯片,避免了针对处理器核心的极具挑战性的大量设计与验证工作.硬核是授权方针对特定工艺开发完成的固化模块,直接拼接到用户的芯片中.相比软核授权,用户进一步省去了面向工艺的处理器核心物理设计和优化,可以更快速地完成项目.
从谋求自主发展的角度看,在考虑获取处理器技术授权时,建议关注以下几点:
1) 架构授权的有效期.永久性授权最好,如果有有效期,要认真研究延续授权的前提条件.有些厂家在授权时有严格的商业条款,尤其是禁止被授权方面向敏感领域研发处理器芯片.如果这些条款不能满足,或者在实施过程中违反了这些条款,则很有可能拿不到“续签”,前面的投资投入就会荒废.
2) 架构授权针对的领域.例如,有授权方提出只能用于研发服务器处理器,而且对核数也有限制等,这将极大制约被授权方的发展.有观点认为,可以利用一些灰色定义在一定程度上规避这些限制,但只有尊重市场、尊重规则才能获得长足的发展.
3) 指令架构的扩展权.这是自主创新发展的基础.在部分处理器架构授权商业条款中是不允许用户自主扩展的,甚至有些授权方要求用户自身所发展获得的相关专利也要与授权方共享.
4) 软核授权的自主修改权.部分公司的授权条款中是不允许修改软核的,这就限定了处理器未来创新发展的空间.
5) 架构授权加软核授权的发展模式.如果授权方同时授权了指令架构和相应的软核设计,并且允许以此为基础进行优化提升,发展自己的自主处理器,这将“站在巨人的肩膀上”,见效快,风险小.如果只是架构授权,自己从零起步开始设计,投入的人力物力巨大,极富挑战性.但据了解,这种组合发展模式似乎行不通.如果关起门来这样做,那是盗版行为,根本谈不上自主可控.
图1 流片前的前端质量检查
采用现在流行的各种处理器授权模式,被授权方拿到数据后可以较为便利地构建自己的SoC处理器芯片,加快了产品的研发速度,降低了产品的研发风险,但这只是买到了“鱼”而没有买到“渔”.要发展自主可控处理器,还是需要扎扎实实提升发展自身的研发能力.
总体看,高端处理器研发需要具备3种能力.
这不仅涉及到定义完备的指令集、清晰的软硬件接口,还涉及到设计包含高效的流水、仿存、一致性处理、异常处理等功能的处理器微结构[6].此外,一个成功的处理器结构设计还需要综合考虑产品的定位、工艺的支持、物理设计可行性等要素,还要与优秀的编译器研发团队进行深度合作,才能设计出兼顾性能、功耗、成本的处理器产品.买第三方处理器核心源码进行研发正如买了一整套发动机的零件图和装配图,只知其然不知其所以然,必然导致核心竞争力的缺失.因此架构设计和微结构设计是处理器自主研发能力的基础和核心.
微结构设计定义完成后,需要以某种形式对设计进行描述实现(如现在流行的Verilog或VHDL,当然还有一些定制设计).而这种描述是否正确,需要进行大量的验证工作.需要制订详细的验证方案,综合采用模块级验证、伪随机验证、功能级形式化验证等手段,对处理器核心设计进行深入全面的验证,小到每一个逻辑表达式是否正确,大到典型应用软件能否正确高效运行[7].在研发过程中建立的验证体系、验证课题和验证向量等随着发展,逐渐成为处理器系列设计的“关键基础设施”.这一套验证环境是经过长时间人力、物力和时间投入不断积累形成的,是经过大量流片验证的检验而不断补充、完善的.没有这样的验证环境作支撑,很难谈得上自主研发处理器,更谈不上创新发展.围绕处理器的基础软件也是需要这种基础能力支撑,一旦发现深层次问题,需要回归到设计验证平台进行查错找错,研究规避办法.当然,如果获得软核授权,这些挑战都可以不考虑,但也谈不上自主创新了.流片前的前端质量检查工作如图1所示.
正如发动机生产流程中有些零部件可以通过自动化加工获得,但有些关键部件只能由高水平工程师自己定制加工.处理器设计代码验证完成后,有些可以通过自动工具“编译”成电路,但关键部位需要自己进行定制设计,更要对工艺有全面的把握才能实现全片物理设计的整合.
由于高端处理器的复杂性,在设计流程上不可能把代码设计与物理设计完全分开,在关键的时序优化等工作中,必须代码优化和物理优化同时进行,有些关键模块甚至需要做数十上百个评估版本.典型的后端设计流程如图2所示:
图2 后端设计流程概要
为了更好地把控设计质量,高端处理器设计一般需要采取定制设计为主、自动综合为辅的设计方法学,并与工艺深度结合,在流片前做大量的设计检查,大小独立检查项达到数百种[8].
在大规模工业化生产某款处理器芯片时,质量一致性成为关键,这对物理设计能力提出了更高的要求.例如,Intel的处理器就可以在电脑城销售,而不用担心用的是某款某型主板.这需要处理器设计者建立起覆盖物理设计全流程的、完整的设计规范和质量检查体系来支撑工业化设计生产.与设计验证环境类似,这套物理设计体系经过大量流片实践淬炼迭代而不断完善,成为自主研发处理器的关键核心能力之一.
本文简要梳理了开展国产处理器自主研发所要具备的要素.实现国产处理器自主可控发展道远路艰,充满挑战,必须作好长期努力的准备.同时也要看到,只有坚持自主可控的发展路线,以能力建设为基础,才能最终实现核心技术的突破和跨越式发展.
[1]王秀军. 到底什么是“安全可控”?[EB/OL].(2017-05-11) [2017-11-06]. http://blog.sina.com.cn/s/blog_4ee4e8170 102x2t8.htm
[2]习近平在网络安全和信息化工作座谈会上的讲话[EB/OL]. (2016-04-19) [2017-11-06]. http://news.xinhuanet.com/newmedia/2016-04/26/c_135312437_3.htm
[3]陈君. 互联网信息安全的“中国设计”[J]. 今日中国: 中文版, 2014, 1(6): 23-25
[4]涂晓军. 推进信息技术“自主可控”,保障金融信息安全[J]. 中国金融电脑, 2014, 3(1): 17-21
[5]黄晓艳. 信息安全不仅仅是技术问题——访中国科学院、中国工程院院士王越[J]. 高科技与产业化, 2013, 201(5): 41-45
[6]Patterson D A, Hennessy J L. Computer Organization and Design[M]. San Francisco: Margan Kaufmann, 2004
[7]张珩, 沈海华. 龙芯2号微处理器的功能验证[J]. 计算机研究与发展, 2006, 43(6): 974-979
[8]李小明. 40nm数字集成电路后端设计实例及方法研究[D]. 北京: 北京大学, 2012