详说片上网络之四:片上网络研究的难与易
0赞上一篇文章讨论了片上网络的研究需求,经过朋友圈转发以后引起了大家的一些热议和讨论。很多朋友急不可耐的催更,也有一些朋友提出了一些问题。这些问题有时候问得过于“简单直接”,比如有人问在什么时候应该用片上网络什么时候可以用交换矩阵。其实简单直接的问题往往没有简单直接的答案,这类问题的答案一般都有一个固定的开头:“It depends ……”。所以这些问题的答案还需要各位耐心的看完我写的内容以后,再结合自己的实际情况来寻求答案。套用一句鸡汤来说:“成年人的世界,哪里有容易二字啊!”(除了容易胖)。
今天想讨论的是片外网络研究方法的问题。在帮助大家理解进一步理解片上网络的基础上分析片上网络在设计与实现中的难点所在,剔除垃圾论文和“水文”的干扰,把研究精力集中于有意义、有价值的方向上。
先回顾一下上篇中提到的片上网络发展的两个动机:从芯片互联技术的角度减少线延迟提升对于芯片整体性能的影响,从架构设计的角度减少由于交换矩阵过于庞大带来的硬件资源极大扩张和后端设计过难的问题。其实这两个动机的导向还是要设计出高性能、高可靠性、高能量效率的多核芯片。因此,任何脱离了这个导向的研究都无疑是镜花水月。很多时候我们走得太久,已经忘记是为了什么出发。所以“不忘初心”,对于任何事情都很重要。
大家可以先回顾一下上一期的内容:
详说片上网络之三:片上互联的需求与片上网络的研究意义(http://blog.chinaaet.com/molf/p/5100064669)
片上网络是一个既难又易的方向。先说易的方面。片上网络是一个典型的“门槛低”的研究方向,因此任何从事数字集成电路以及相关方向的人都可以到这个领域来“插一脚”。只要他具备基本的数字逻辑设计知识,甚至说可以不太具备这方面的知识而仅仅有一点网络方面的概念也可以进到这个领域来进行研究。
片上网络研究“门槛低”的第一个原因是研究平台容易获得。由于片上网络早期的研究者们制作出了多种片上网络的仿真工具,有很多“研究者”直接拿着这种仿真工具就“开搞”了。甚至有段时间国内还有些“研究者”是用Opnet这种计算机网络的仿真软件来做片上网络的仿真的。即使不会这些仿真的方法,其实用modelsim直接开仿也不是不可以的。比较片上网络单个路由器的功能并不复杂,如果只是仿真而不需要考虑后续的设计还是很容易搞起来的。
片上网络研究“门槛低”的第二个原因是背景知识要求相对较低。要想“研究”片上网络仅仅需要有一定的网络知识概念即可。相比于研究低功耗数字集成电路等与底层物理性质相关的方向所需要器件级知识,研究算法类(信号处理、自动控制、人工智能等)数字集成电路所需要的算法知识,以及研究处理器/片上系统类数字集成电路所需的计算机体系结构知识,理解片上网络锁需要的背景知识非常之少。由于互联网和移动互联网的大发展,常规的网络知识概念里面的什么互联、路由等等几乎成为了电子信息类甚至是理工类大学学生的常识。因此大家都能对片上网络来指手画脚几下。别的不说,在我电号称“研究过”片上网络的老师横跨了信软、计算机、通信、自动化等多个学院,前前后后有10余位老师的发表过和片上网络相关的论文(质量先不讨论)。
片上网络研究“门槛低”的第三个原因单纯的片上网络所需的验证条件也比较单纯。如果是研究研究低功耗数字集成电路等与底层物理性质相关的方向需要做电路级甚至是器件级的仿真验证实验,研究算法类数字集成电路需要讨论和设计算法原型,研究处理器/片上系统类数字集成电路需要搭建电子系统级仿真模型并运行真实的Benchmark。而片上网络的初级验证非常简单,使用所谓的Traffic pattern即可。也就是按照特定的规律,不断的生成一些包含特定地址的数据包即可。此外还有一种“轻量级”的验证方法,也就是所谓的Mapping。这一点我在第二期也谈到过:
详说片上网络之二:片上多核系统的互联需求(http://blog.chinaaet.com/molf/p/5100064656)
以上是体现片上网络研究“门槛低”的三个主要原因,还有一些其它原因。但我们如果不是从“水论文”的角度而是真正为了设计有意义的片上网络,以上三点会马上变身为三大难点。
首先是研究平台的问题。如果要想做出有意义的研究,研究平台马上会变身成一大难点。因为现在可用的大部分片上网络仿真器仅支持基本功能,而如果一旦要涉及到路由器微架构、数据包格式、流控方式等和电路设计紧密联系的仿真时往往需要对于仿真器进行修改。而并不是所有的片上网络仿真器都支持修改的,即使有一些开源的片上网络仿真器其修改难度也很大。当真正需要仿真片上网络的时候,往往需要模拟出真实的片上多核系统工作过程。在这个过程中又涉及到多种仿真器联合调试和整合的问题。目前用于多核体系结构级仿真最典型的是GEM5,其学习和修改的难度都是非常高的。一个没有经验的新手要完全熟悉和掌握GEM5一般需要一年半的时间。当要仿真一些例如功耗管理、容错设计等特定研究的时候,往往需要其它EDA工具的支持,同时还需要“魔改”现有的仿真工具。当年我们为了研究片上网络的可靠性和可测性设计,完全重写的片上网络仿真器,在此基础上诞生了我们自己的多核片上系统高层次建模与设计工具ESY-sim系列。该系列的工具获得中国研究生电子设计大赛集成电路专项赛(也就是现在的中国研究生“创芯”大赛的前身)特等奖。目前我们准备进一步重写这个工具,目前有一个最新版本的片上网络仿真器在Github上放出来:
第二点是真正要做出有意义的片上网络,需要兼顾微电子与固体电子学、通信与信息系统、计算机系统结构三个学科,具备从器件/工艺到系统软件均具备比较全面的知识体系。片上网络,既有“片上”的属性如电路设计、电气参数,又有“网络”的属性如路由、流控、拓扑。还由于其服务于多核互联,需要理解如何更好的支撑多核并行程序运行,理解片上多核的体系结构以及软件运行的过程。对于CMP结构的片上网络需要考虑如何有效的支持Cache一致性协议,对于MPSoC结构的片上网络需要考虑如何支持异构互联。这些内容在前面都有提到。具体在设计片上网络微架构的时候,既需要明白如何设计可以优化片上网络包传送的过程,又需要理解最终微架构在电路实现时后端设计所需要的各种问题。而我们这一研究小组在此前取得的多项研究成果也确实是我们“综合素质”的胜利,我们会去通过发现单纯考虑某一方面的片上网络设计不合理之处,通过系统、架构、电路三者的协同优化取得创新的突破。
第三点在要做出真正有意义的片上网络,需要搭建非常完善的验证平台。因为片上网络是为了支持多核片上系统而存在的,其本身只是多核片上系统的一个组件而已。要全面验证其是否真正的具有先进性和设计价值,除了简单的Traffic pattern仿真之外,还需要真是运行的Benchmark的仿真。而如果是真正要用到实际中,往往还需要真实的架构设计和前后端设计后的仿真与验证。其验证难度非常之高。我们在做很多研究的时候会尽量的去加强这一部分,但由于条件有限(仿真平台的限制、对应用需求理解不足等等),很多做得还不够好。但这些结果已经足够符合在顶级期刊(CCF推荐A类)发表的标准。
综上所述,片上网络的研究是非常具有“迷惑性”的。它可以做得很水也可以做得比较“实”。到底是“水”还是“实”可以从仿真工具、知识体系和验证过程三点加以判断。
最后我补充一点我的个人看法:如何判断一篇片上网络论文的价值?完全是个人看法,大家随意参考。首先看工具,如果使用的工具是一些过于古老或者明显不是片上网络研究的仿真工具,基本就可以不看了。如果只使用传统的EDA工具进行仿真,要看这个文章是否有足够的电路设计细节。其次看知识体系,如果仅仅只谈到了一个维度,尤其是只谈什么自适应路由、映射算法之类,而没有涉及到电路设计或系统架构,通常价值比较有限。另外需要鉴别有些看起来很不错的论文中存在某些研究前提错误,例如把路由器的关键路径都找错了之类的。第三是看是否有完整的验证结果,如果验证环节过于简单的,这篇论文要基本可以不看了。
今天先说到这里,后续会继续讨论片上网络的设计细节。