多芯片设计 Designing For Multiple Die

news2024/11/18 1:47:58

Why a system-level approach is essential, and why it's so challenging

作者:Ann Mutschler

Ann Mutschler is executive editor at Semiconductor Engineering.


将多个裸片或芯粒集成到一个封装中,与将它们放在同一硅片上有着很大的区别。在同一硅片上,它们使用相同的制造工艺开发。

随着设计变得更加异构heterogeneous 分解disaggregated,需要在系统环境中对其进行建模、适当的平面规划、验证和调试,而不是将其作为独立的组件处理。通常情况下,这种设计过程首先需要建立一个始于高层次抽象的系统完整规范specification 。然后将规范specification 拆分成功能模块并分配给各个设计人员,以便他们独立的优化设计。最后,将所有子系统作为一个整体重新组合、验证和测试。

在最简单的设计中,只有很少的小芯片和相对简单的互连,设计过程类似于具有几个大块的SoC。西门子数字工业软件公司DRC应用和Calibre设计解决方案的营销总监John Ferguson说:“不同的团队需要协调形状、面积、引脚位置及其连接等问题。” 对于数字设计而言,这种方法将现有的place&routre技术进行了延伸。但每增加一个芯粒或者互连,就会变得更加复杂。

最初,系统公司推动了转向异构架构,他们希望提高特定数据类型的性能,同时尽可能地省电。现在,芯片制造商正在研究如何将这种功率和性能优化方式扩展到更多的市场,同时使这种优化过程简化并且标准化,并使其更具成本效益。

“目前正在发生根本性的变化,芯片正在解构 (disruption)”Synopsys公司的高级营销总监Shekhar Kapoor说到,“以前,人们通过把芯片迁移到下一个节点来获得性能和功能的受益。但现在,这些受益正在消失,成本却在上涨。因此必须考虑‘分解’,并从成本的角度来看待异质集成。过去,芯片在片内进行功能分块,而现在,如果你将芯片分割成多个裸片,每一个block或裸片就是一个芯粒,你可以在下一个设计中重新使用它。'Multiple die'概念包含了各个方面,而'chiplet'则侧重于它的reuse方面。”

“然而,要实现这种异构架构需要一种截然不同的芯片设计方式。”Cadence公司Custom IC & PCB Group 主任John Park解释道,“你需要引入系统级聚合工具的概念,以便从单一芯片设计向多芯片设计过渡。你不再是在设计一个单独的芯片,而是在设计多个chiplet及其封装方式的组合。”

优化Die-to-Die的连接是至关重要的。但也需要考虑到其他芯片和IP,以及可能组建的其他系统。

“你需要在系统层面,而不是芯片层面,来验证chiplet A与chiplet B的连接”Park说道,“这是系统级设计的转变,也是摆脱单片式芯片的第一步。你需要引入一种能够组装和优化系统的工具。这将作为你的golden netlist来进行系统级的LVS(layout versus schematic)。这非常关键。如果设计者在一开始方式就错了,那他们可能会在流程进行到一半时遇到很多问题。

一些最大的挑战和限制涉及到设计中的功率、热、应力和EM-IR等。

“如果只是二维设计,这些问题就更容易解决”Ferguson 指出,“但是,随着堆叠或连接chiplets的复杂方式越来越多,这些挑战也变得更加困难。我希望我们能够达到每个人都有约束条件、有一些合理的保护来防止问题的地步。但由于连接这些东西的方式有着如此多的不同可能性组合,需要确定的这些约束条件就会更加复杂,每个堆叠/连接项目都会变得更加复杂和棘手。”

另一个需要考虑的因素是,multiple-die中的die并一定就是chiplet。“有时候是die,有时候是chiplet”Park说,"直到三年前左右,它被称为multi-chip modules(MCM),而我们现在所说的multi-die modules。也就是将芯片从它们的封装器件中取出,将裸芯片安装在层压板基材上,这就是所谓的SiP/MCM模块。这些不会因为我们进入chiplet世界而消失。”

智能手机多年来一直采用系统级封装(SiP),特别是射频和模拟组件。Park指出:“这当然是异质集成,但我们并不关心它们是在哪个节点上建造的,或者是用哪种技术建造的。在过去,我们只是没有使用异构集成这个词。”

芯粒将是下一个增长阶段。Keysight的应用开发工程师和科学家Matthew Ozalas说:“我们希望尝试在芯粒空间里建立一些标准。因为它真的很新,而且似乎对未来非常重要 - 不仅在数字领域,而且在堆栈内存方面也是如此。”随着无线6G系统的发展,芯粒可能是到达该领域的唯一途径。通常情况下,它从低级别或数字开始演化,因为芯片已经可以用功能块构建。最终,前沿总是高频射频微波,因此这将是chiplet的领域。

原因是高频射频不是一个标准化的设计过程。“如果你看数字芯片,这些芯片中有数十亿个晶体管,没有人能进行晶体管级别的设计”Ozalas说,“因此,人们建立这些功能块,并将它们很好地整合在一起。例如,他们会在数字芯片中建立加法器块,并将这些块粘合在一起。他们已经在做这种块状功能/块状水平设计。如果你是数字设计师,你并不真正与晶体管一起工作。你唯一真正接触到晶体管的时候是当你遇到可靠性问题时,或者当其中一个晶体管出现问题时,它吸收了太多电流或变得太热,或者导致你的各种闩锁问题。模拟技术紧随其后,也有一些功能块。然后,当我们进入射频和微波领域时,几乎全部都是晶体管。那里的设计人员都在使用晶体管。这是很微妙的事情。虽然我们希望在系统中有一个低噪声放大器,但这些元件都是高频的。它们确实是功能块,但不是那么标准。如果晶体管拓扑技术发生变化,这些元件不会随之缩小。所以一切都需要改变。”

他说,这就是为什么高频模块最终成为了最后的前沿。“无论你看到哪里,这都是事实,芯片模块也是如此。如果你正在构建一个芯片模块,你可以使用高频电路构建一个功能块。但是将它们组合在一起并让它们完美地工作就更困难了。”

成本也是芯片模块越来越考虑的因素。“人们正在为摩尔定律的终结而设计”Cadence的Park说,“他们正在从单片的巨大SoC和ASIC转向解构(disaggregated )或模块化方法,其中这些大型芯片上的IP已经分解为芯片模块。在这里,每个芯片模块都可以在最有意义的技术上进行设计。”

“在某种程度上简化了设计,因为传统的I/O,例如PCIe或SerDes,仍然可以与最先进的逻辑一起使用。这可能不会改变板子上和晶片上所使用的I/O连接方式”Cadence IP Group的产品营销组主管Wendy Wu说,“但对于芯片模块方法,设计团队将使用更具新兴性质的Die-to-Die I/O,这是非常低功耗的,可能在五年前还不存在。”

chiplet通常是side by side布局的,但它们也可以堆叠在2.5D封装中,使用中间层,或者堆叠在3D-IC中。Park认为中介层(silicon interposers)将会消失,并会向有机中介层(organic interposer)和interconnect bridges两个方向演进。

Extra questions with multiple die

Multiple-die的一个重要考虑是共同设计。“当工程团队开始把这些系统组合成装配体时,他们不可能知道限制是什么,直到他们定义该装配系统是什么。”西门子数字工业软件公司Calibre接口和mPower产品管理高级主管Joseph Davis说:“人们现在想做的一件大事是把来自不同制造商的小芯片放在一起。这就成了一个系统问题,现在所有的模型和限制都从不同的代工厂跨越出来,进入第三方。从知识产权的角度来看,这是令人难以置信的挑战。如果你真的想从集成的角度推动你能做的事情的界限,你也在你能做的事情周围画了一个框,因为现在你必须从一个制造商那里做所有事情。”

以如今的复杂程度,每个stack 都是独一无二的。“你不能说适用于2.5D的设计就适用于3D”戴维斯指出。“当你开始制造这些东西时,你就有了技术兼容性问题。即使在一个代工厂内,每次客户说:'嘿,我想做这个stack',他们必须解释:‘我想把这个芯片和这个芯片放在一起,这个芯片要在这里,还要一个interposer。’然后晶圆厂必须与参与其中的EDA供应商合作,提供所有配套的材料。你不能只是拿着标准的PDK,然后在它们周围放上一些 baling wire 。”

Synopsys的Kapoor认为第一个挑战是产品规格(spec )的定义。“例如,这可能是你的下一个移动设计,或下一个数据服务器设计。所以现在你必须打破它。你如何打破它呢?从系统功能的角度来看,哪些部分是由硬件处理的?哪一部分是由软件处理的?对于一些客户来说,这很容易。这只是一个存储和逻辑的权衡问题。但是当你把逻辑分割开来的时候,就会使问题大大复杂化。它分成了很多部分。关键部分是什么?GPU、CPU和I/O。你如何把它们放到理想的package中?你要使用什么互连结构,这有助于你满足某些约束和规范?这些决定过去很简单,可以在PowerPoint或Excel或Visio中完成。”

现在,为了探索的目的,需要有更复杂的工具。“这些工具必须更加复杂,以便在前面带来一些分析”Kapoor 说,“散热问题(Thermal)是一个典型的例子。设计团队过去从未考虑过散热,除非他们在做PCB封装设计或系统设计。现在,这些都需要在设计早期考虑。所以他们必须在做早期架构设计时开始考虑热能作为一种约束条件。一旦你决定了如何拆分设计,那么从封装和连接的角度来看,什么是最好的和最经济的配置?你还能满足你的PPA吗?PPA总是要存在的,而现在你被分割到了整个芯片上。你又该如何权衡呢?”

Enabling chiplets

在过去五年左右的时间里,衍生(derivative )设计变得更具挑战性。“你掌握一种核心技术,然后有一个较长的那种跨越式发展,"西门子的Davis说。"然后下一个将是一项新技术,然后我们再加倍。所以行业开始说,'等一下,我是不是可以做一个芯粒,然后把两个或四个或八个它放在一个基板上,而不必重新做一个新的流片(tape-out),这样是否可以?’这都是在组装层面,而不是硅层面,所以这非常有吸引力。”

有吸引力?确实。简单?一点也不!这个方法确实有吸引力,但并不简单。对于初创公司或中等规模的公司来说,这种方法可能会让人望而却步。“对于单个芯片,有许多不同的集成商可以处理这种封装模式和集成,并与代工厂合作。但是,如果你现在要做一个定制的集合(collection),能够胜任的人会非常有限。你可能需要考虑将这项工作内部化,并验证你的功能,因为现在有更多的东西需要在系统验证中完成。从系统的角度来看,可靠性验证变得非常困难,而且制造和采购决策也更加复杂。你的制造决策可能意味着需要雇用五个人而不是一个。这在很大程度上是一项开创性(bootstrap )的事情。而且,值得一提的是,全国可能只有五个人有这方面的经验,嗯,而且,他们可能只有三年的经验。”

在芯片的预计寿命内确保可靠性变得更加具有挑战性。Kapoor指出:“因为你分割了芯片,你现在有更多的互连和接口,其中任何一个都可能出现故障,都会成为安全问题的入口。”虽然KGD(已知好芯片)已经被广泛讨论,但如何真正引入监控部分以及如何确保它在整个流程中都是可观察、可优化和可测试的,这些都是新的挑战。

此外,工程团队如何有效地完成所有这些工作?如果说单芯片设计是困难的,那么多芯片系统则引出了对新模式和标准化的需求。

“传统的芯片工作方式是采用一个基于buffer的die-to-die通信边界用于驱动和接收信号,处理SD和测试等”Cadence的Park说,“但现在它们(buffer)变得更小了,因为我们没有大电容负载一路通到电路板上。这意味着你要进行寄存器到寄存器之间的时序分析等,并通过混合键(hybrid bond)在两个不同器件之间传递信号。在多芯片设计中,您需要验证协议完整性(compliance),这可能基于AIB、UCIe、BoW或其他标准。现在有许多新兴的芯片标准,您还要验证这些标准的信号完整性。您基本上是通过一些具有正确信号行为的互连通道来验证收发器的工作,而且在该接口上没有太多的抖动或噪音。这使得信号完整性成为一个系统级问题,这个行业已经做了40多年了。”

问题在于,芯片设计者并不一定知道如何实现这一点。“数字芯片设计者只关心时序分析,而对于理解信号完整性的挑战和重要性则关注较少。由于所有这些原因,多芯片设计,包括3D异质集成,需要被视为一个系统,而不是一个单独的芯片。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/375085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

断点续传实现

断点续传 1、 什么是断点续传 通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上…

分布式之ZAB协议

写在前面 假定我们现在使用zk执行了如下的指令: [zk: 192.168.0.10:2181(CONNECTED) 0] create /dongshidaddy 123 Created /dongshidaddy [zk: 192.168.0.10:2181(CONNECTED) 1] create /dongshidaddy/mongo 456 Created /dongshidaddy/mongo假定因为节点故障最终…

Python曲线肘部点检测-膝部点自动检测

文章目录一. 术语解释二. 拐点检测肘部法则是经常使用的法则。很多时候,可以凭人工经验去找最优拐点,但有时需要自动寻找拐点。最近解决了一下这个问题,希望对各位有用。一. 术语解释 **肘形曲线(elbow curve)**类似人胳膊状的曲线&#xff…

Echarts 每个柱子一种渐变色的象形柱状图

第023个点击查看专栏目录本示例是解决每个柱状图的每一个柱子都呈现一种渐变色,每个柱子的颜色都不同。这里同时采用了象形的柱状图效果。 文章目录示例效果示例源代码(共125行)相关资料参考专栏介绍示例效果 示例源代码(共125行&…

JavaScript DOM【快速掌握知识点】

目录 DOM简介 获取元素 修改元素 添加和移除元素 事件处理 DOM简介 JavaScript DOM 是指 JavaScript 中的文档对象模型(Document Object Model);它允许 JavaScript 与 HTML 页面交互,使开发者可以通过编程方式动态地修改网页…

RocketMQ源码分析

RocketMQ源码深入剖析 1 RocketMQ介绍 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠…

汽轮机胀差及轴向位移(转载的)

这个文章是微信公众号推送看到的。搬运到这里方便以后学习用。 1、轴向位移和胀差的概念 轴位移指的是轴的位移量,而胀差则指的是轴相对于汽缸的相对膨胀量,一般轴向位移变化时其数值较小。轴向位移为正值时,大轴向发电机方向移,若此时汽缸膨…

如何快速了解一个系统?

前言 开发人员经常会面临下面一些场景: 新人入职,需要学习已有系统,作为 landing 的一部分,如何学习?被拉过去参与一个陌生系统的迭代开发或者系统维护(bugfix),如何快速上手&…

关键词聚类和凸现分析-实战1——亚急性甲状腺炎的

审稿人问题第8页第26行-请指出#是什么意思,并解释为什么亚急性甲状腺炎在这里被列为#8。我认为在搜索亚急性甲状腺炎相关文章时,关键词共现分析应该提供关键词共现的数据。这些结果的实际用途是什么?亚急性甲状腺炎是一种较为罕见但重要的甲状腺疾病&am…

vue + qiankun 项目搭建

一、cli3构建vue2项目 1、前期工作:查看cli安装情况与安装 npm install -g vue/cli 已安装情况查看:vue -V(大写的V) 2、新建项目 vue create main-project 3、选择自定义配置 配置选择 选择vue版本、babel、router、vuex、css预处理器、lint格式校…

【神经网络】GRU

1.什么是GRU GRU(Gate Recurrent Unit)门控循环单元,是循环神经网络(RNN)的变种种,与LSTM类似通过门控单元解决RNN中不能长期记忆和反向传播中的梯度等问题。与LSTM相比,GRU内部的网络架构较为简…

Android 实现菜单拖拽排序

效果图简介本文主角是ItemTouchHelper。它是RecyclerView对于item交互处理的一个「辅助类」,主要用于拖拽以及滑动处理。以接口实现的方式,达到配置简单、逻辑解耦、职责分明的效果,并且支持所有的布局方式。功能拆解功能实现4.1、实现接口自…

【员工管理系统】

员工管理系统前言需求分析系统设计系统框图所需技术系统实现编写代码测试前言 这是一个使用epoll实现TCP并发服务器,并让客户端登录服务器可以进行员工的管理,员工的信息存储在sqlite数据库中,对数据库进行增删改查实现对员工的添加&#xf…

一文理解服务端渲染SSR的原理,附实战基于vite和webpack打造React和Vue的SSR开发环境

SSR和CSR 首先,我们先要了解什么是SSR和CSR,SSR是服务端渲染,CSR是客户端渲染,服务端渲染是指 HTTP 服务器直接根据用户的请求,获取数据,生成完整的 HTML 页面返回给客户端(浏览器)展…

嵌入式 STM32 通讯协议--MODBUS

目录 一、自定义通信协议 1、协议介绍 2、网络协议 3、自定义的通信协议 二、MODBUS通信协议 1、概述 2、MODBUS帧结构 协议描述 3、MODBUS数据模型 4、MODBUS事务处理的定义 5、MODBUS功能码 6、功能码定义 7、MODBUS数据链路层 8、MODBUS地址规则 9、MO…

SpringBoot 2.x ——使用 mail 实现邮件发送

文章目录前言环境、版本等pom依赖引入springboot项目配置文件获取邮箱授权码配置properties文件定义接口信息接收类编写邮件发送服务类编写接口swagger测试1、简单邮件发送2、html格式发送(支持附件)前言 最近再看xxl-job的源码,其中在邮件告警通知中使用到了告警信…

Go调用dll 解决方案 dll查看工具

准备工作 Go需要1.10版本,即支持动态链接库 基本调用代码 lib : syscall.NewLazyDLL("lib/plugin.dll") // 读取dll f : lib.NewProc("Sum") // 调用dll函数 res, _, _ : f.Call(param) // 传值 fmt.Println(res)可能出现的问题 %1 is not a …

移动硬盘不显示怎么办?恢复硬盘的方法汇总

在日常工作和生活中,移动硬盘是非常重要的存储设备,它们可以储存大量的数据,比如照片、音乐、视频、文档等。但是,有时候你可能会遇到移动硬盘不显示的问题。这个问题通常会让人感到困惑,因为你无法访问移动硬盘里的数…

Appium自动化测试之启动时跳过初始化设置

Appium每次启动时都会检查和安装Appium Settings,这是完全没有必要的,在首次使用Appium连接设备是Appium Settings便已经安装好。怎样跳过安装Appium Settings呢?之前的做法是修改appium中的源文件中的android-helpers.js实现,如M…

足球俱乐部管理系统

技术:Java、JSP等摘要:网站是一种主要的渠道。人们通过互联网快速、准确的发布信息、获取信息。而足球俱乐部是足球职业化、专业化的一个标志,是足球运动员以足球谋生时,所被聘用的机构,应运时代发展,规模、…