上篇《算一算Chiplet 的成本》的文章最后,我预留了两个问题,其一是Chiplet难在哪里?此外,上次有很多朋友反馈文章很晦涩,因此我决定这次写得通俗点。在诸多反馈之中,还有很多朋友私信问我,清华交叉院不是做AI+么?你怎么会做Chiplets?那,我先讲讲故事好了。我叫马恺声,是清华交叉院助理教授。2018年博士毕业于Penn State,导师为Vi jay和谢源。当时,这两个组里在做视频处理、处理器架构、3D IC、非易失存储相关,所以我算是在其中被熏陶了几年,包括最近写得Chiplet成本模型的文章,也是受到了读博前期组里某师兄/姐发表在DAC一篇类似的3D IC成本核算文章的一点启发(感谢 谢老师的培养)。18年博士毕业后,我加入了姚期智院士所创立的清华交叉院。交叉院是计算机和AI高地,但是在我之前,并没有人做应用芯片(量子芯片有)。AI+里面,数据、算法、算力三驾马车缺一不可,算力是重要因素。题目上,依托院里其他老师的研究方向做芯片岂不是不错?但是,院里有将近20位老师在做AI+。并且,他们的研究行业跨度极大,涵盖了AI+制药、金融、隐私、语音、数据库、自动驾驶等等。按照每2-3年做一款芯片的进度,我得做几十年。同期,受到了Rivian滑板底盘的启发,我就在想如果要能做个底座,随便其他什么行业往上一套,那不就快了么?另外一个启发来自苏州一家小公司叫贝塔微。他们开发了一个工具,能用非常初级的人力资源批量地生成芯片,可以跟德州仪器抢DC-DC、AC-DC的长尾市场,一年能做几十款!后来中科院的韩银河老师请我和鸣宇老师吃饭,我们谈到了学术界买不起IP,他就提议说能不能做成小块再拼起来(韩老师是引路人,在此谢谢韩银河老师)。然后,我们又仔细研究了包云岗老师所总结的“科研重工业模式”(谢谢包老师)。以上几个启发结合到一起,我就开始琢磨怎么能快速、低成本的做芯片,满足AI+X各行各业的需求。这事其实说起来并不复杂,就是把所有的IP都单独流片,做成一小个,然后再做个接口连起来,不就好了么?说干就干。我们打算先出一个简单的版本,然后我去调研了各种应用场景。发现了这个可能的场景:激光雷达,每个通道都需要模数转换等功能的芯片,比如64通路,就需要64组,那个PCB板子上密密麻麻全是数模芯片加个FPGA。2019年的时候,一个64线激光雷达还挺贵,三分之一的价格就在这个处理电路上。我聊了差不多四五家激光雷达公司,还请西安核心院孵化了一家(在此都表示感谢),顺道还摸底调研了些其他的,都有需求。我就把这几个场景的共性提取出来,打算做个Chiplet方案。我把高速总线跟低速总线拆开,每个定义好固定宽度,长度不限制。如果宽度不够,还可以选几倍的宽度来放,中间加个BUS Bridge来把时钟、电源等全部搞定。这样可以最大化利用基板的面积。于是,我就带着全组的同学,去见了几个IP厂商,大家都很感兴趣!回来的路上,我们都觉得,马上要走上人生巅峰了!01.系统总线的口,分成Master和Slave,做成很灵活的之后,我们不知道客户会怎么用。这个问题有两个解决方案:保守一点,留几个专门Master的,其他几个专门是Slave的,但是这需要跟潜在场景客户去沟通总结出来;或者,Master和Slave都留,能共用的数据线共用,然后留ubump让客户去选连接哪种。但是后者也有问题,就是会浪费一部分面积承载了某些客户用不到的功能,在面积成本上对比全定制,有所差距。02.我们不知道总线的带宽应该留多少,是留256根数据线,还是512,还是像华为一样直接拉到4096。留多了,浪费;留少了,又不够用。这事,还得回去问潜在客户。然后我们又跑回去把潜在客户全聊了一遍,顺带把问题1也给解决了。03.这个高速总线的die有问题,就是线太多,线又直又长,并且达到1-2cm,损耗很大,干扰很大。嗯,我想这是个工程问题,只是费点事,但好在有解。很快,我们就发现,传统的总线拉低拉高的形式并不适合Chiplets。我们花了很长时间,这个问题最终被解决掉了。04.我们遇到了CPU的问题,CPU的接口远远比想象的要复杂很多。MCU好解决,但是我们的场景有些需要算力,想要ARM。我去找了ARM中国,ARM的CPU专家李博(在此表示感谢)提出质疑,说ARM不适宜外挂。我开始不理解,后来发现,人家说的有道理!我不知道大家有没有想过,为什么AMD适合在边上挂x86的CPU,而且还可以挂8块?因为,x86天然就适合做chiplets!它本来就是三块芯片做成系统,包括x86的CPU,加上南桥和北桥。所以x86拉出来的线,就已经考虑到了连接。AMD之所以做个HUB外挂x86CPU,就相当于做了个大北桥,北桥上面本来就连接了PCIe和DDR控制器,AMD做成那样简直如丝般顺滑呀!但ARM不是这样,ARM就是为SOC设计而生的,一堆线连出来非常复杂,并且单根线频率也很高,还有各种中断的线,一球一球的!ARM核心,如果按照AMD的做法,客户买A78的核,跑出A72的性能就算不错了!并且D2D的问题是,ARM的核对延迟敏感,DDR独立,因此D2D很难做,延迟小只能用并口,但是并口的线又很多,封装成本一下就上去了;如果用高速串口,误码怎么办?误码又要纠错,FEC误码纠错模块一启动,搞不好上千个周期就delay了,你也不知道客户的场景,那你怎么知道在某个点上delay会出现什么后果,万一用在工业敏感场景,那是要出大问题的。05.快马加鞭,我们拿着我们的方案,去找了某封装厂。封装厂的总监一开始问了我一个问题:马老师,你们有多少量?我说,大约十万片。然后,对方说:嗯,是这样,我们产能爆满,你这个数量想做先进封装,我们不接。有钱也不接(况且我们还没钱)。后来,随着我请姚先生出面,这事才解决。(大佬说了一句话我至今难忘:马老师,这事能做成的话,能救我们于水火,你就是个漏斗呀,把所有先进封装的诉求收集起来到我们这来做封装)。但是大佬也提了要求:要做好复用方案。不能来一个客户有十万片的量就要找他们做一次先进封装(这也是为什么最后的方案中先进封装要做复用)。后来,我们正式开始研发,我才明白到了他的苦衷,这个东西太过复杂,基板、RDL、设计、信号完整性仿真、热仿真、应力仿真,加工、测试,这些工序需要好多厂家一起才能完成。且不说钱的问题,就沟通协调足够我喝一壶。况且,我们的方案还有问题。那个高速的die,按照我们的设想是在基板上挖个洞,反扣着(为了把ubump露到上面)放在基板里面。Intel EMIB能做是因为EMIB die很窄,反观我们的很长,存在应力和翘曲的问题,以及可能与基板其他部分高低不平导致封装良率很低,还有热可能也不均匀。这么长,万一应力不匀,die跟基板的膨胀系数不一致,很容易错位甚至碎。还有一个问题是,国内的封装情况对EMIB那时候还没完全掌握,我这个超大号的EMIB,更别说了。06.我接触了Foundary。又发现了新问题,我发现我算不过来账(这也是写Chiplet成本模型的motivation):Monolithic单个大芯片设计面积过大确实会导致良率低,但是拆分太多小芯片,D2D互联也有问题,通讯的代价会变高。还有封装良率的问题,封装的时候又分为Chip First和Chip Last,不管哪种都会导致封装过程中浪费些KDG(Known Good Die,已经CP测试过的小芯片)。给定工艺、良率等,如何选定最佳小芯片尺寸?我们开发了个工具,测算出来的面积有几个甜点(Sweet Point),但是在很小的面积上,连一个靠近的甜点都没有,更别说恰好在其中。也就是说,把一个IP单独做成一个Die,然后拼起来的方式,是不靠谱的!07.最后一个重要问题,就是在拆分过程中,如何选定最合适的“关节”节点。关节选得好,通讯量最少。如果关节选到肚子上,通讯量巨大且严重拖累系统。我们又开发了个in-house的工具来自动分析在哪选“关节”。自动化系统分析工具,追踪数据流动,自动选择通讯量最少、对延时最不敏感的位置进行拆分(但是我觉得这里水太深了,应该有EDA自动化工具探索的空间)。到此,我发现,如何拆分芯粒,是一个巨大的挑战。拆不拆、怎么拆、拆多大、在哪拆,都很有挑战。最终,这个项目收敛为以下基于全国产供应链可行的方案:但是,这个方案现在还没有推进执行,原因是当前先进封装价格仍然居高不下,以及如成本模型所计算,200平方毫米以下的芯片,不考虑复用的话,经济上并不划算。所以后来我们另外开辟了其他方案,跑去做大算力大面积的AI+X场景了(稍后再展开)。但是我觉得,随着各种良率的提高,5年后,也许我们可以重启这套方案,来满足CT和超声扫描、扫地机器人等等IOT中的碎片化场景。如果是企业自用,比如AMD、Intel、苹果、华为等大厂,那所有人都是按序列化产品拆(比如AMD,桌面、低档服务器、高端服务器就是同一套,只是边上算力的cpu die数量不同),然后自用,搭配成高中低档次的芯片。这条路是通的,并且已经被多次验证过。但是,我想做的事不一样,我想把die做好,方案做好,卖给ABCD不同客户。我想要做第三方,帮AI+X的系统厂家做芯片,比如提供裸die给其他公司,甚至某一天某客户能从市场上攒几个裸片就能凑出自己想要的芯片(这也是Chiplet的终极梦想)。这里面可要想清楚很多问题——整个芯片的拆解有多个维度:按照迭代速度,比如CPU能否独立(反正每年性能挤牙膏);按照功能,比如Codec单一功能,但是会不会以后人买?是做100帧的解码,还是100k帧的解码,要不要编码。根据这些算出来的带宽呢?按照模拟还是数字,IO用什么5nm嘛,用12/14nm性能一样并且便宜;以及凭什么能复用,包括我前面提到各种连接的带宽问题如何解决?大芯片不拆良率低(但是面积不大的时候还可以),工艺越先进越低;拆得多了划算、还是少了划算,到底应该拆成几个?怎么去卡每个工艺的甜点,工艺的甜点能卡到的话,那封装基板的甜点能卡到么?都能卡到的话,为什么英伟达Orin的基板面积是85mm*100mm,Intel基板面积是110mm*110mm?Intel用的24层基板看得我眼馋,但是我们国产产业链还供应不了,采购日本和台湾的,能不能买得到和价格都要另说。以及,基板为什么大?是因为DDR颗粒太多,需要的管脚则太多啦,bump pitch一定的情况下,只能撑大基板面积。基板上要不要支持HBM?HBM大概率需要硅基板,硅的基板受到ASML光刻机26mm*33mm的限制,无法再做大,以及大家都知道HBM价格是GDDR颗粒的3-4倍。HBM只是提高了带宽,但是容量有限。从算法的角度看,容量决定我能干什么,带宽决定干得有多快。容量上不去,场景cover不住,跑得快有什么用呢?这一整套全部都要跟应用以及场景强耦合。Intel、台积电,光解决封装和接口,不从应用、算法、场景等顶层往下看,本质上没有解决核心问题。但是,话说回来,他们也不了解场景,解决不了核心问题是必然的。Intel想得很好,把x86和UCIe都release出来,然后乖乖做一个金矿边上卖水的,挣Foundary和先进封装的钱。但是你看Intel的封装,EMIB 20多块芯片拼一起只有Intel能做,上去给加24层基板,结果就是价格飞上天。我们不能指望Intel降价,Intel指着这个赚钱呢。Intel能吃下传统自研序列化厂商吗(比如AMD、Apple会用么?)?Intel会愿意俯下身去给各个年几十万的系统厂商定制各种边上的die吗?我们封装上落后Intel,怎么做(这好复杂,以后单独写一篇来说潜在的破解方式好了)?拆不好,系统速度会很慢。怎么办?把DDR颗粒放ARM边上不就好了。为了解决多核Coherence问题,ARM一个大核也就1.x平方毫米,一个CXL/CCIX面积5-6平方毫米,D2D也得4-6平方毫米。ARM核:支持性IP可是1:10的比例呀,那做16个大核,也就勉强1:1,加上性能损失,确定能拼得过Monolithic方案?DDR这个单独做成一片也不合适呀,DDR这个东西,很复杂,比如根据Access Pattern,优化下控制器,轻松可以提高30%以上的性能。你的客户的burst length是频繁读都很短,还是不频繁读但是一读一大片?你以为去问做算法的人他会告诉你?别说算法是否保密,他们大概率连burst length是什么都不知道。这些乱七八糟的东西,都是我碰到的坑。想要给他们做芯片,我要对算法了然于胸。我的组里面有三分之二的同学,还有不少工程师在配合,在做各类的AI+X算法,从剪枝量化蒸馏到分类分割点云Nerf多模态,甚至在看怎么解波动方程,怎么用AI预测序列、天气等等各种。为什么要做这么多?因为你不懂的话,完全不知道芯片架构怎么做。拆到芯片通讯量大的肚子上,那会痛苦死。问题是我们怎么知道那是肚子?客户是否愿意把他的benchmark给你,让你跑跑,然后看看通讯瓶颈到底在哪。那为了减少通讯量岂不是得搞in-die的边缘计算呀,甚至得压缩然后解压。万一压缩了,那D2D不能误码,否则一旦错了就解压不出来了。有人可能还会想,如果是跑AI,非关键数据,错两个就错两个吧。但问题在于,我们怎么知道是关键数据还是非关键数据呢?是不是还得加个芯片或者包头指示下。Chiplets机遇与挑战并存,我想今天把我趟过的路写出来,供各位同仁借鉴。Chiplet到底是什么?谷歌一下Chiplet关键字出来的好多都是接口和封装,所以大家说Chiplet是接口和封装,这两个是核心技术。在过去的几年里,我应该是接触了国内外大部分做接口和封装的企业。我发现跟做接口的人沟通的时候,他们关注的是速度、误码、均衡。我跟封装的人沟通的时候,他们关注的是工艺、具体的封装方式。我去找了AMD、华为的人,我发现他们关注产品系列化,以及更大面积的集成。思来细想,我觉得,Chiplet,往小了说,就是小芯片拼接;往大了说,是芯片设计方法学;本质上,是通用化与专用化、规模经济与实际成本的平衡考量,以及由此构成的可拆、可拼、可升级的生态系统以及潜在的全新商业模式。为什么是现在?因为以前日子岁月静好,设计公司什么也不用干,18个月性能就能翻一翻,价格变一半。但是今天摩尔定律变缓,先进工艺价格飙升。产业上,除了手机能摊薄并且算的过账,其他行业开始变得越来越碎片化,甚至云计算,都开始从通用云转向专用云(不信的话,你随便去开个云,比如腾讯云的网站,你会发现出现超多行业解决方案,里面好多行业解决方案开始定制FPGA和ASIC。我问几个云厂商,为什么会这么干?他们给我讲AWS起家的能力外溢——黑五需求多,平时租出去;他们搞推荐大概率搞不过火山引擎,其他细分行业也都是竞争激烈,唯有做专做精,提质增效)。边缘端更是从通用计算转向Domain-specific加速器,甚至火爆的大模型,都开始提出网络架构不变,微调权重即可使用,更甚只需要微调10%的权重。大模型的推理是难点,但是如果告诉你网络架构固定了,只换权重,那是不是可以单独做个芯片就只做某一类大模型的推理。只支持单个模型,不需要那么通用,我想大部分芯片企业做出来的能效比都能轻松超过英伟达,这难道不香嘛?(基于此,我甚至跟我师兄电子系李学清老师合作了篇今年的DAC,In-ROM-computing,大部分模型参数不动,那就放ROM里呀,能效高出几个数量级,那岂不是有希望能把大模型放手机里)。在这些趋势下,Chiplet将越来越吃香。机会还在么?谁能第一个吃螃蟹?我原以为会是Foundary的附属Design House。这种Design House应该是又了解需求,又懂自己Foundary的工艺和封装,做Chiplets简直近水楼台先得月。但他们告诉我,他们也推不动,因为发现这个东西的难点不仅仅在接口和封装。Chiplet之难,难在需要从上到下摸通,然后提取共性的东西。Chiplets的架构设计理念和取舍在很多方面超出了传统SOC能理解的范畴。需要科研探索,需要算法人才和架构师协同进行深刻场景理解,解构和重构。这些高高的门槛,挡住了D2D IP Vendor、Design House、Foundary和封装厂。这也是到今天为止,全世界基本上没有什么人在做开放生态Chiplets的原因。长久来看,Chiplet还是一个平台化技术,今天能够解决集成的问题,明天还能解决把良率面积做不大的PIM挂载到外面异构集成(因为我发现好多做PIM的人找我),甚至光计算等等(光算得快,但做不了非线性操作)。长久看,Chiplets像一个胶水,可以把各种计算模式集合到一起。今天我只是说说Chiplet难点之“拆”。有说得不对的,认知不到位的,也欢迎各位同行批评指正,希望能跟各位一道,共同推进Chiplets行业发展。*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第2997内容,欢迎关注。
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装