基于多管芯互联的集成电路的制作方法

文档序号:31342186发布日期:2022-08-31 10:39阅读:103来源:国知局
基于多管芯互联的集成电路的制作方法

1.本公开的实施例总体涉及半导体领域,并且更具体地涉及一种基于多管芯互联的集成电路。


背景技术:

2.传统单裸片系统级芯片soc(system on chip)是从设计的角度出发将系统所需的组件高度集成到一块芯片上,例如将原本不同功能的集成电路整合在一颗芯片中。藉由这个方法,不单可以缩小体积,还可以缩小不同集成电路间的距离,提升芯片的计算速度。它的一大特点就是硬件规模庞大,通常基于ip设计模式。
3.ip核(intellectual property core知识产权)核分为模拟ip核和数字ip核,数字ip核是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。模拟ip多为pll或各类接口,直接基于某一工艺的电路库进行搭建,与集成电路工艺相关。
4.无论是数字ip核还是模拟ip核,都是ip核供应商在某个工艺上已实现的、具有某个通用或常用功能的成熟电路。传统soc开发设计工作都是以ip模块为基础,开发者从不同的ip供应商手里购买一些ip,比如pll、ddr、pcie等常用的ip核,然后结合自研的算法模块一起集成在一个芯片上完成soc的开发。
5.然而在ai和5g的时代浪潮下,为了提高更高的运算效能和处理器核心数量,为了满足高频宽、低延迟与大量连线的需求,芯片需要更高的整合度,同时需要更多的存储,因此芯片开发需要集成的各种ip核越来越多,集成的架构也越来越复杂。并且由于算法的日新月异,对芯片开发周期的要求也越来越短。同时随着摩尔定律的结束,工艺节点奔向了3nm、1nm的物理极限之际,芯片的开发成本也大幅提升。
6.综上所述传统的用于将位图解析为结构化数据的方案所存在的不足之处在于:传统单裸片soc芯片研发周期长;传统单裸片soc芯片研发或迭代需要购买或重复购买ip核导致经济成本高;传统单裸片soc芯片研发需要大量人力用于ip核集成导致人力成本高;传统单裸片soc芯片研发需要承担ip核集成或质量的风险。


技术实现要素:

7.针对上述问题,本公开提供了一种基于多管芯互联的集成电路,大大减少复杂涉及ip核开发的芯片的人力成本和时间成本。
8.根据本公开的第一方面,提供了一种基于多管芯互联的集成电路,包括:基板,所述基板包括互连结构;第一管芯,所述第一管芯包括控制模块、通信模块、存储模块以及d2d互连组件,并且配置成用于控制或调度第二管芯;以及一个或多个第二管芯,所述第二管芯包括d2d互连组件和特定电路功能的ip核,并且配置成:经由d2d互连组件和所述第一管芯的d2d互连组件与所述第一管芯互联通信;从所述第一管芯接收数据,基于所述特定电路功能执行所述ip核的运算并且将运算的结果发送到所述第一管芯,其中所述第一管芯和所述
第二管芯经由所述互连结构封装在所述基板上。
9.在一个实施例中,d2d互连组件包括对外数据通路模块、片上数据通路模、互联数据通路模块和d2d接口,其中当所述第一管芯接收集成电路外的设备传入的数据时,所述d2d互连组件配置成:解析所述数据的目的地操作地址,从而确定所述数据待传输的目标管芯;响应于所述数据传输到所述第一管芯,将所述目的地操作地址转换为所述第一管芯的片内地址,从而将所述数据保存在所述第一管芯;以及响应于所述数据传输到所述第二管芯,将所述目的地操作地址转换为所述第二管芯的片内地址,从而将所述数据转发到所述第二管芯。
10.在一个实施例中,d2d互连组件包括对外数据通路模块、片上数据通路模、互联数据通路模块和d2d接口,其中当所述第一管芯发送所存储的数据时,所述d2d互连组件配置成:基于所述数据的源地址,从所述第一管芯的存储模块获取所述数据;解析所述数据的目的地操作地址,从而确定所述数据所要传输的对应于待传输的ip核的第二管芯;以及基于所确定的第二管芯的目的地操作地址,将所述数据转发到所述第二管芯。
11.在一个实施例中,d2d互连组件包括对外数据通路模块、片上数据通路模、互联数据通路模块和d2d接口,其中当所述第二管芯读取所述第一管芯中的数据时,所述d2d互连组件配置成:将所述数据的片内地址发送到所述第二管芯,以便由所述第二管芯读取所述第一管芯中的数据。
12.在一些实施例中,所述第一管芯的控制模块配置成实现具有管芯控制功能的ip核,第一管芯的通信模块配置成实现具有与集成电路外的设备进行数据交互功能的ip核,第一管芯的通信模块配置成实现具有与集成电路内的其他管芯进行数据交互功能的ip核,第一管芯的存储模块配置成实现具有与存储器或存储颗粒进行数据交互功能的ip核。
13.在一些实施例中,所述d2d接口是低速并行接口、中速并行接口、中速串行接口以及高速串行接口中的任意一种接口。
14.在一些实施例中,所述第一管芯和所述第二管芯经由所述互连结构封装在所述基板上包括:通过基板互联、重布线rdl或中介层interposer互联将所述第一管芯和所述第二管芯封装在所述基板上。
15.在一些实施例中,基于不同的ip核迭代开发所述第二管芯并且在所述第二管芯迭代开发后复用所述第一管芯。
16.根据本公开的第二方面,提供了一种基于多管芯互联的集成电路,包括:基板,所述基板包括互连结构;第一管芯,所述第一管芯包括控制模块、通信模块、存储模块以及d2d互连组件并且配置成用于控制或调度第二管芯、第三管芯;一个或多个第二管芯,所述第二管芯包括d2d互连组件和具有特定电路功能的ip核,并且配置成:经由d2d互连组件和所述第一管芯的d2d互连组件与所述第一管芯互联通信或经由d2d互连组件和所述第三管芯的d2d互连组件与第三管芯互联通信;从所述第一管芯或第三管芯接收数据,基于所述特定电路功能执行所述ip核的运算并且将运算的结果发送到所述第一管芯或第三管芯;以及一个或多个第三管芯,所述第三管芯包括控制模块、通信模块、存储模块以及d2d互连组件并且配置成:经由所述d2d互连组件与所述第一管芯、其他第三管芯、所述第一管芯和其他第三管芯中的任意一类管芯互联通信;从所述第一管芯或其他第三管芯接收数据,将所接收的数据发送到与所述第三管芯互联通信的第二管芯,接收所述第二管芯的运算的结果以及将
所述运算的结果发送到所述第一管芯或其他第三管芯,其中所述第一管芯、第二管芯和第三管芯经由所述互连结构封装在所述基板上。
17.在一些实施例中,第一管芯和第三管芯的d2d互连组件包括对外数据通路模块、片上数据通路模块、互联数据通路模块以及d2d接口,其中当所述第一管芯接收集成电路外的设备传入的数据时,所述d2d互连组件配置成:解析所述数据的目的地操作地址,从而确定所述数据待传输的目标管芯;响应于所述数据传输到第一管芯,将所述目的地操作地址转换为所述第一管芯的片内地址,从而将所述数据保存在目标第一管芯;响应于所述数据传输到所述第二管芯,确定与所述第二管芯互联的中转管芯;响应于所述第二管芯与所述第一管芯互联,将所述目的地操作地址转换为所述第二管芯的片内地址,从而将所述数据转发到目标第二管芯;响应于所述第二管芯与所述第三管芯互联,将所述目的地操作地址转换为所述第三管芯的片内地址,从而将所述数据转发到中转第三管芯;响应于所述数据传输到所述第三管芯,确定与所述第三管芯互联的中转管芯;响应于所述第三管芯与所述第一管芯互联,将所述目的地操作地址转换为所述第三管芯的片内地址,从而将所述数据转发到目标第三管芯;响应于所述第三管芯与其他第三管芯互联,将所述目的地操作地址转换为中转管芯的其他第三管芯的片内地址,从而将所述数据转发到目标第三管芯。
18.在一个实施例中,第一管芯和第三管芯的d2d互连组件包括对外数据通路模块、片上数据通路模块、互联数据通路模块以及d2d接口,其中当所述第一管芯发送存储在所述第一管芯中的数据时,所述d2d互连组件配置成:基于所述数据的源地址,从所述第一管芯的存储模块获取所述数据;解析所述数据待传输的目的地操作地址,从而确定所述数据所要传输的目标管芯;响应于所述数据传输到第二管芯,确定与所述第二管芯互联的中转管芯;响应于所述第二管芯与所述第一管芯互联,将所述目的地操作地址转换为所述第二管芯的片内地址,从而将所述数据转发到目标第二管芯;响应于所述第二管芯与所述第三管芯互联,将所述目的地操作地址转换为所述第三管芯的片内地址,从而将所述数据转发到所述第三管芯;响应于所述数据传输到所述第三管芯,确定与所述第三管芯互联的中转管芯;响应于所述第三管芯与所述第一管芯互联,将所述目的地操作地址转换为所述第三管芯的片内地址,从而将所述数据转发到目标第三管芯;响应于所述第三管芯与其他第三管芯互联,将所述目的地操作地址转换为中转管芯的其他第三管芯的片内地址,从而将所述数据转发到目标第三管芯。
19.在一个实施例中,第一管芯和第三管芯的d2d互连组件包括对外数据通路模块、片上数据通路模块、互联数据通路模块以及d2d接口,其中当所述第二管芯或第三管芯读取所述第一管芯或第三管芯中的数据时,所述d2d互连组件配置成:基于所述数据的源地址,确定待读取的数据所存储的管芯;响应于所述数据存储在第一管芯,确定与所述第二管芯或第三管芯与所述第一管芯是否互联;响应于所述第二管芯或第三管芯与所述第一管芯互联,将所述数据的片内地址发送到所述第二管芯或第三管芯;响应于所述第二管芯或第三管芯与所述第一管芯未互联,获取所述第二管芯或第三管芯与所述第一管芯之间的中转第三管芯,将所述数据的片内地址发送到中转第三管芯,从而将所述数据的片内地址经由所述中转第三管芯发送到所述第二管芯或第三管芯;响应于所述数据存储在第三管芯,确定与所述第二管芯或第三管芯与所述第三管芯是否互联;响应于所述第二管芯或第三管芯与所述第三管芯互联,将所述数据的片内地址发送到所述第二管芯或第三管芯;以及响应于
所述第二管芯或第三管芯与所述第三管芯未互联,获取所述第二管芯或第三管芯与所述第三管芯之间的中转第三管芯,将所述数据的片内地址发送到中转第三管芯,从而将所述数据的片内地址经由所述中转第三管芯发送到所述第二管芯或第三管芯。
20.在一些实施例中,第三管芯还配置成与所述第一管芯和/或其他第三管芯分布式存储数据。
21.在一些实施例中,第三管芯的控制模块配置成实现具有管芯控制功能的ip核,所述第三管芯的通信模块配置成实现具有与集成电路外的设备进行数据交互功能的ip核,所述第三管芯的通信模块配置成实现具有与集成电路内的其他管芯进行数据交互功能的ip核,所述第三管芯的存储模块配置成实现具有与存储器或存储颗粒进行数据交互功能的ip核。
22.在一些实施例中,第一管芯、所述第二管芯和所述第三管芯经由所述互连结构封装在所述基板上包括:通过基板互联、重布线rdl互联或中介层interposer将所述第一管芯和所述第二管芯封装在所述基板上。
23.在一些实施例中,基于不同的ip核迭代开发所述第二管芯并且在所述第二管芯迭代开发后复用所述第一管芯和所述第三管芯。
24.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
25.结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
26.图1示出了根据本发明的实施例的基于多管芯互联的集成电路的示意图。
27.图2示出了根据本公开的实施例的基于多管芯互联的集成电路的结构图。
28.图3示出了根据本公开的实施例的主管芯的示意图。
29.图4示出了根据本公开的实施例的从管芯的示意图。
30.图5示出了根据本公开的实施例的另一个基于多管芯互联的集成电路的示意图。
31.图6示出了根据本公开的实施例的d2d互连组件的示意图。
具体实施方式
32.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
33.在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
34.如上所述,传统的soc开发成本较高。传统的soc开发通常需要购买一些功能ip核
或接口ip核,这些ip核动则几十万、几百万,甚至上千万的价格使得soc开发的经济成本呈几何型增长,并且随着芯片工艺从10nm缩减到7nm,接下来还会进一步缩减到5nm,每一次工艺缩减导致ip核的经济成本也在大幅提升。因此很多中小型企业都难以承受ip核带来的高经济成本,特别是当芯片出货量达不到一定数量时,芯片成本难以下降,企业难以盈利。
35.同时,不同的ip核有不同的接口协议或使用规范,因此soc开发过程中,在架构设计阶段至少需要1名架构设计工程师来负责多个ip核兼容的集成方案。在模块设计阶段每个ip核至少需要1名电路设计工程师来专门负责集成。在验证阶段每个ip核也至少需要1名验证工程师来专门负责验证。这些都直接提高了soc开发的人力成本以及时间成本。
36.另外,当产品需要更新迭代,若企业自己的算法模块,购买的ip不需要更新时,需要向ip供应商重新支付一次ip的授权费,且集成、验证以及后端的工作也得重新再来一遍,增加了迭代的成本。因此无论是ip核本身的价格还是集成过程中所需要消耗的人力,都导致了很高的soc开发成本。同时由于一个芯片中需要集成ip核数量的增多,芯片的生产良率会直接或间接的受到影响,提高了风险成本。
37.其次,传统的soc开发周期较长。传统的soc开发是从ip供应商手中购买软核(rtl代码)或硬核(版图),然后把购买的ip核与自研模块集成在一起进行仿真验证,后端在集成在一起布局布线,因此ip核的多少直接影响芯片整体的仿真验证以及布局布线时间。并且先进工艺使得功率收敛和时序收敛的问题变得更加突出,这也将不可避免地导致更长的设计验证时间。
38.随着算法的迭代,对芯片的运算速度、功能以及兼容性要求越来越高,导致了芯片集成度也会越来越高,架构越来越复杂,这都直接导致了soc芯片的开发周期会越来越长。但是,对于算法迭代很快的领域,比如:ai领域,如果芯片的开发周期过长,可能当前开发还没完成,新的算法就又出现了。因此传统soc的开发周期已经难以满足市场与算法的更新速度。
39.最后,传统的soc开发灵活性较低。在soc开发的后端设计阶段,由于ip核的特殊布局布线需求,特别是模拟ip核的特殊布局布线需求会较多,这直接限制了soc整体的后端布局布线的灵活性,间接提高了时序设计的难度。
40.传统的soc开发具有以上问题:开发成本较高、开发周期较长和开发灵活性较低在本公开中,die指的是集成电路领域中由晶圆划分出的裸片,其称呼包括且不限于管芯、芯片、晶粒、裸片。为简介起见,本技术统一使用管芯进行表述,但注意的是,本公开的技术方案同样适用于如上所述其他集成电路。
41.为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本公开的示例实施例提出了一种基于多管芯互联的小芯片(chiplet)集成电路。基于多管芯互联的小芯片由主管芯(以下简称第一管芯或hub die)和从管芯(以下简称第二管芯或side die)构成。基于hub die和side die的结构,由于比较通用或常用的ip已经集成到成熟的hub die上,因此在设计的过程中不再需要购买昂贵的软核或硬核ip,只需要购买单片价格相对低廉的hub die来集成即可完成soc的开发,这会直接减少购买ip核的经济成本。同时由于hub die的设计已经比较成熟及稳定,设计过程中也不再需要考虑ip核的兼容性,只需要把专用的算法设计为side die,将hub和side die封装到一起即可,这会大大减少开发的人力成本和时间成本。因此无论是不再需要购买价格昂贵的ip核,还是减少集成ip核的工作量,这些
都直接或间接的降低了soc开发的开发成本。
42.从传统的soc研发流程上来看,所有soc都需要去ip供应商(例如,synopsys、tci,芯动、芯源等)购买在某工艺节点上比较成熟的ip核。ip核交付的程度分为硬核和软核,所谓硬核就是交付最终的gds文件,好处在于减少自身后端工作量,坏处在于对于后端顶层不灵活。软核指的是交付代码(加密或不加密),好处与坏处和硬核相反。但无论是软核或硬核,设计者都需要自己去做集成、验证以及后端的工作,在这个过程中需要花费很多人力物力去深入了解购买的ip,并且需要针对ip的特性去做架构方案上的修改,并且需要承担ip集成错误的风险。
43.基于hub die和side die的结构,在设计的过程中不再需要考虑ip核的集成,也就不需要考虑ip核的验证以及后端的布局布线,这样大大的减小了soc开发的周期。对于芯片的迭代来说,比如ai芯片,对于ai芯片的核心部分算法经常变化,芯片迭代时只迭代side die即可,其他的都不需要重复开发。因此节省ip核集成可使得首次开发或迭代开发的开发周期都大大的减小。
44.如上所述,很有多的芯片应用场景很碎片化,每一个应用场景都有自己专有的算法,但很多场景的芯片需求量又不是很大。例如扫地机器人相关的芯片一年需求量可能为10万片。那么投入大量的人力与财力来研发专用的soc芯片会导致产品的成本无法降低,使得应用场景使用的算法更新迭代周期很短。例如,在ai领域中,传统soc的研发周期短则1年,长则2~3年,在这个过程中算法已经更新迭代了很多次,做出来的soc可能也不适配于最新的算法。因此,在研发过程中很多场景对于存储、接口以及cpu的需求是一致的。因此本公开提出了一种解决方案:将通用性比较强的ip集成到中心的裸die上,其称之为主管芯(以下简称第一管芯或hub die),自身或客户专用的算法在另一块裸die上去实现,其称之为从管芯(以下简称第二管芯或side die)。
45.图1示出了根据本发明的实施例的基于多管芯互联的集成电路的示意图。如图1中所示,集成电路,下文又称小芯片(chiplet)包括基板100,基板100包括互连结构;第一管芯hub die 101,所述第一管芯101包括控制模块、通信模块、存储模块以及d2d互连组件;以及一个或多个第二管芯side die 102,所述第二管芯102包括d2d互连组件;其中hub die 102和side die 102可以通过2d或2.5d的封装方式基于基板、重布线(rdl)、中介层interposer方式互联,从而封装成一颗完整的芯片。
46.在本发明中,我们把上述这些通用性比较强的ip核集成并封装为成熟的hub die 101。hub die 101上提供自有的d2d互连组件的ip核,使得设计者不再需要去找ip供应商购买这些ip核,也不需要花时间去对这些ip进行集成、验证及后端,使得设计中不需要再去设计soc的架构,设计者仅需设计自己算法子系统的架构,并完成设计,在此技术上加上hub die 101同款的d2d互连组件ip核,即可通过封装把hub die 101和side die 102通过d2d接口连接起来,从而有效解决研发周期长,研发成本高,研发风险大的问题。
47.在一个实施例中,第一管芯主hub die的控制模块配置成实现具有管芯控制功能的ip核。第一管芯主hub die的通信模块配置成实现具有与集成电路内的其他管芯进行数据交互功能的ip核。第一管芯主hub die的通信模块还配置成实现具有与集成电路外的设备进行数据交互功能的ip核。第一管芯主hub die的存储模块配置成实现具有与存储器或存储颗粒进行数据交互功能的ip核。
48.可以基于不同的ip核迭代开发side die第二管芯,例如在一个或多个side die第二管芯上开发多个不同的ip核并且在side die第二管芯迭代开发后复用hub die第一管芯。
49.下文将具体描述hub die、side die和管芯至管芯(以下简称d2d)接口。
50.图2示出了根据本公开的实施例的基于多管芯互联的集成电路的结构图。如图2所示,基于多管芯互联的集成电路可以由一个主管芯(hub die)和多个从管芯(side die)构成。hub die与side die之间通过d2d互连组件和d2d互连组件(例如,d2d接口或d2d phy)互联并且基于基板、rdl、中介层interposer方式封装在基板上,从而形成小芯片(chiplet)。
51.图3示出了根据本公开的实施例的主管芯的示意图。如上所述,主管芯(hub die)至少包括控制模块301、通信模块302、存储模块303以及d2d互连组件304。
52.在一个实施例中,主管芯,又称hub die,第一管芯可能包括控制模块301、通信模块302、存储模块303以及d2d互连组件304。控制模块301配置成提供cpu控制功能,可以协调调度hub die内部以及side die的数据处理模块。通信模块302配置成提供上位机(host)端的数据交互功能,使得数据可以通过hub die与上位机进行通讯。另外通信模块302配置成提供与片外设备的数据交互功能,可提供多类型的接口:mipi、eth、emmc、spi等。存储模块303配置成提供片外存储接口,可将从上位机或外设传输进来的数据存储到ddr中,提供给第二管芯side die运算。
53.在一个实施例中,主管芯可以配置成实现接口类ip核,比如pcie、emmc、usb或eth等,该类ip主要用于芯片与外部进行数据交互;实现存储类ip核,比如ddr3/4、lpddr4/4x或gddr5/6等,该类ip主要用于芯片与存储颗粒或存储器进行数据交互;实现控制器类ip核,比如arm的各类cpu或rsic_v等,该类ip主要用于芯片的控制以及一些计算;实现互联类ip核,比如axi总线,该类ip主要用于芯片内部各子系统(ip)之间的数据交互。
54.在一个实施例中,hub die可以提供传统soc中除特殊数据处理模块外的其他通讯功能,为多颗side die提供数据交互通道以及控制调度。本发明的优势在于可以对hub die进行多场景、多次迭代的复用,针对于不同的应用场景或迭代时,根据hub die的要求,可以设计一定范围内大小的side die,并且在side die中集成与hub die一致的d2d(die to die)管芯到管芯接口ip。封装时,即可在基板或rdl层或中介层interposer上将hub die和side die合封在同一芯片中,形成一颗具有完整系统功能的芯片。
55.d2d互连组件304可以分为并行接口与串行接口。并行接口具有功耗低、延时低的优点,缺点在于并行接口的单位面积速度虽然优于串行接口,为了实现一定带宽需求,并行接口的io数量远大于串行接口,因此在现阶段往往会引入较复杂的封装设计,增加封装难度及成本(例如interposer,rdl,emib)。串行接口的优点就在于单io的带宽快于并行接口,因此在较大带宽的需求下,io数量远优于并行接口,封装成本低,但由于单io高速引入的功耗高以及延时高也不可避免。
56.基于以上优缺点,d2d互连组件中的d2d接口304的方案可以是低速并行接口、中速并行接口、中速串行接口以及高速串行接口中的任意一种接口或者多种接口共存,并且可以由客户根据自己对于带宽、功耗、面积以及封装成本的考虑动态调整。
57.低速d2d接口可采用基板封装的低速并行接口,频率《1.6ghz。在一个实施例中,对于带宽的需求并不大,只是希望有一个d2d的通道实现die间的一些信息交互,但是普通io
的带宽又无法满足,如果采用高速的并行接口又会引入较高的封装成本,因此我们把可以在基板上实现d2d通信,并具有一定带宽的低速并行接口定义为低速接口。
58.中速d2d接口采用rdl或interposer等先进封装的高速并行接口,频率:1.6ghz~16ghz。以及低于(包含)32gb/s的serdes低速串行接口。在一个实施例中,用户对带宽有着一定的需求,在这类客户里又区分为对延时容忍较低,或者对延时可以接受的两类,因此为了满足客户的需求,我们在中速接口中定义既有并行接口方案,也有串行接口方案。并行接口方案除了可以满足带宽需求外,数据传输的延时较低,适合满足实时通信需求,同时功耗和面积会有一定的优势,但为了保证带宽,会使得封装需要先进封装,提高了封装的成本。串行接口方案除了可以满足带宽需求外,不需要引入先进封装,但由于纠错等功能会导致数据传输的延时较长。
59.高速d2d接口采用最高112gb/s的高速serdes串行接口,速率可配置向下兼容。在一个实施例中,客户对带宽的需求特别大,在这种情况下若采用并行接口,会引入很多的io连接线,会导致封装的成本大大提升,封装良率也会大幅减小,并且面积和功耗已经不再是突出的优势,因此并行接口不再适合。所以在高速接口的定义中只有串行接口。
60.在一个实施例中,还可以采用中速的串行d2d接口(32gbps)。中速的串行接口是专用于基板互联的d2d接口,针对基板信噪通路远优于pcb信噪通路的条件。d2d采用纯模拟的结构,降低了端口物理层(phy)和控制器(controller)的架构复杂度,进而减少建链时间和路径延迟时间,功耗更低,面积更小,系统集成简单,封装成本低、稳定性更高,同时可以快速进入和退出低功耗状态。
61.图4示出了根据本公开的实施例的从管芯的示意图。如上所述,从管芯(side die)至少包括d2d互连组件401和特定电路功能的ip核的套接口(socket)402。从管芯side die可以是根据用户需求定制具有特定电路功能的ip核的不同类型的side die。一个主管芯可以互联有多个从管芯。第二管芯,即从管芯,side die配置成可以利用ip核的套接口(socket)402实现具有特定电路功能的ip核以及经由d2d互连组件401和第一管芯的d2d互连组件与所述第一管芯互联通信。例如,第二管芯可以由用户配置成实现具有神经网络运算的ip核,从而在第二管芯上完成神经网络运算(例如卷积运算)。
62.在一个实施例中,第二管芯side die还可以是输入输出io die,即,提供输入输出接口的管芯。通过第一管芯hub die配合第二管芯io die的方式,可以扩展hub die上的接口类型。例如,hub die上的接口类型和接口数量是有限的,但在某些应用场景下可能会需要新的接口类型,或者需要更多的接口,比如需要更多的ddr存储能力,那么可以通过把扩展的ddr phy做到io die(side die的一种类型)上,然后通过hub die + io die的方式来实现接口类型的增加,或者接口个数的增加。
63.因此,第二管芯side die还配置成从所述第一管芯接收数据,基于所述特定电路功能执行所述ip核的运算,以及将运算的结果发送到所述第一管芯。
64.d2d互连组件可以是与第一管芯的d2d互连组件匹配的端口物理层(phy)。因此,d2d互连组件401中的d2d接口也可以是如上所述的低速并行接口、中速并行接口、中速串行接口以及高速串行接口中的任意一种接口,在此不再赘述。
65.利用以上技术手段,通过复用hub die来研发芯片,可以在开发其他应用场景算法芯片或者迭代算法芯片的时候减少重复购买ip而带来的成本,以及减少需要集成ip带来的
工作量和风险。
66.图5示出了根据本公开的实施例的另一个基于多管芯互联的集成电路的示意图。在一个实施例中,提供了另一种基于多管芯互联的集成电路,包括:基板,所述基板包括互连结构;第一管芯,所述第一管芯包括控制模块、通信模块、存储模块以及d2d接口; 一个或多个第二管芯,所述第二管芯包括d2d互连组件;一个或多个第三管芯,所述第三管芯包括控制模块、通信模块、存储模块以及d2d接口,其中所述第一管芯、第二管芯和第三管芯经由所述互连结构封装在所述基板上。在图5的示例中,包括1个第一管芯(hub die)和1个第三管芯(副hub die),并且第一管芯(hub die)和第三管芯(副hub die)分别具有连接到其自身多个第二管芯(side die)。
67.此实施例中的集成电路与以上实施例所介绍的集成电路类似,但是其中包括一个或多个与第一管芯类似的第三管芯。第三管芯可以称副主管芯或副hub die。副hub die与主管芯hub die互联并且同样扩展有一个或多个属于副hub die的side die。在这样小芯片中,第二管芯同样配置成实现具有特定电路功能的ip核以及经由d2d互连组件和第一管芯的d2d互连组件与第一管芯互联通信或经由d2d互连组件和第三管芯的d2d互连组件与第三管芯互联通信。
68.在一个实施例中,第二管芯配置成从与其连接的第一管芯或与其连接的第三管芯接收数据,基于所述特定电路功能执行所述ip核的运算,以及将运算的结果发送到与其连接的第一管芯或与其连接的第三管芯。
69.在一个实施例中,第三管芯配置成经由d2d互连组件与第一管芯、其他第三管芯、所述第一管芯和其他第三管芯中的任意一类管芯互联通信,从而实现对第一管芯的扩展。
70.在一个实施例中,副hub die具有与主hub die类似的控制模块、存储模块、通信模块和d2d互连组件。
71.在一个实施例中,第三管芯副hub die还配置成从所述第一管芯主hub die、或其他第三管芯副hub die接收数据,将所接收的数据发送到与该第三管芯互联通信的第二管芯side die,接收所述第二管芯side die的运算的结果以及将所述运算的结果发送到第一管芯主hub die或其他第三管芯副hub die。例如,包括有第三管芯(一个或多个副hub die)的集成电路可以实现以下三类通信:对外数据通路:例如,主hub die上有很多对外的数据接口,比如:pcie、mipi以及usb等,因此会有各种数据从不同的接口由片外输入,或片上的数据从不同的接口输出到片外。数据输入时,数据可能会存储到主hub die的片上存储,或存储到side die的片上系统,或存储到副hub die的片上存储;片上数据通路:主hub die上有ddr存储和sram存储,因此side die或副hub die会对主hub die的片上存储进行读写数据,同时主hub die也会主动把数据从片上存储发送给side die或副hub die;以及互联数据通路:side die可以通过主hub die直接与副side die进行数据交互,同理,副hub die也可以通过主hub die与其他副hub die进行数据交互,甚至可以通过中转多个副hub die实现数据交互。
72.基于如上的通信,一个或多个第三管芯副hub die还可以配置成与第一管芯主hub die和/或其他第三管芯副hub die分布式存储数据。
73.在一个实施例中,第一管芯主hub die和第三管芯副hub die的控制模块配置成实现具有管芯控制功能的ip核。第一管芯主hub die和第三管芯副hub die的通信模块配置成
实现具有与集成电路内的其他管芯进行数据交互功能的ip核。第一管芯主hub die和第三管芯副hub die的通信模块还配置成实现具有与集成电路外的设备进行数据交互功能的ip核。第一管芯主hub die和第三管芯副hub die的的存储模块配置成实现具有与存储器或存储颗粒进行数据交互功能的ip核。
74.图6示出了根据本公开的实施例的d2d互连组件的示意图。在一个实施例中,d2d互连组件括对外数据通路模块601、片上数据通路模块602、互联数据通路模块603以及d2d接口604。
75.对外数据通路模块601可以实现对外数据通路:例如,主hub die上有很多对外的数据接口,比如:pcie、mipi以及usb等,因此会有各种数据从不同的接口由片外输入,或片上的数据从不同的接口输出到片外。数据输入时,数据可能会存储到主hub die的片上存储,或存储到side die的片上系统,或存储到副hub die的片上存储。
76.片上数据通路模块602可以实现片上数据通路:主hub die上有ddr存储和sram存储,因此side die或副hub die会对主hub die的片上存储进行读写数据,同时主hub die也会主动把数据从片上存储发送给side die或副hub die。
77.互联数据通路模块603可以实现互联数据通路:side die可以通过主hub die直接与副side die进行数据交互,同理,副hub die也可以通过主hub die与其他副hub die进行数据交互,甚至可以通过中转多个副hub die实现数据交互。
78.由以上三种数据通路组成的d2d互连组件实现了互联转发机制。互联转发机制是在标准的axi协议上进行地址映射。通过自定义的数据包协议,将传输数据的源id、目的地id、数据操作地址、数据长度、数据类型等基本信息打包成数据包头,优先于数据发送,当解析模块接收到包头后,可以根据数据包头中的信息识别当前数据的来源与去处,进而实现side die与主hub die、side die与副hub die、主hub die与副hub die的数据及信息交互。
79.在对外数据通路模块601实现对外数据通路时,例如当传输数据是由对外接口输入时,对外数据通路模块601需要解析目的地操作地址。从而判断该数据是传输给主hub die(第一管芯)的片上存储,或传输给主hub die的互联side die(第二管芯),或传输给相邻副hub die(第三管芯)的片上存储,或传输给非相邻副hub die(第三管芯)。然后根据该笔数据的去处,将原本的目的地操作地址转换为路径地址(为了到达目的地side die或副die,需要经过的d2d接口604),将原本的存储地址以及源id、目的地id、数据操作地址、数据长度、数据类型等基本信息打包成数据包头,跟随原数据一起发送。
80.如上所述,当主hub die第一管芯接收集成电路外的设备传入的数据时,对外数据通路模块配置成:解析从外部传入的数据的目的地操作地址,从而确定所述数据待传输的管芯。例如,外部传入的数据如果对应于side die第二管芯上的ip核,则确定数据待传输的第二管芯。响应于数据传输到所述第一管芯,将数据的目的地操作地址转换为第一管芯的片内地址(以下简称为地址,即代表第一管芯的片内地址),从而将所述数据保存在所述第一管芯;响应于数据传输到第二管芯,将所述目的地操作地址转换为与第一管芯相连的第二管芯side die的地址,从而将所述数据经由第一管芯转发到第二管芯。
81.在集成电路还包括多个第三管芯(副hub die)的情况下,对d2d互连组件的外数据通路模块601解析所述数据的目的地操作地址,从而确定所述数据待传输的管芯;响应于所述数据传输到第一管芯,将所述目的地操作地址转换为所述第一管芯的地址,从而将所述
数据保存在所述第一管芯;响应于所述数据传输到所述第二管芯,确定与所述第二管芯互联的管芯,即确定要传输的数据要传输的第二管芯与第一管芯(主hub die)或第三管芯(副hub die)相连。响应于第二管芯与所述第一管芯互联,将所述目的地操作地址转换为所述第二管芯的地址,从而将所述数据转发到所述第二管芯;响应于第二管芯与所述第三管芯(副hub die)互联,将所述目的地操作地址转换为所述第三管芯的地址,从而将所述数据转发到所述第三管芯;响应于数据传输到所述第三管芯,确定与所述第三管芯互联的管芯,即确定第三管芯是与第一管芯直接相连或是相隔其他第三管芯相连。响应于所述第三管芯与所述第一管芯互联,将所述目的地操作地址转换为所述第三管芯的地址,从而将所述数据转发到所述第三管芯;响应于所述第三管芯与其他第三管芯互联,将所述目的地操作地址转换为其他第三管芯的地址,从而由其他第三管芯的d2d接口将所述数据转发到最终数据需要传输的第三管芯。
82.在片上数据通路模块602实现片上数据通路时,例如当需要把片上存储的数据传输到主hub die互联的side die,或传输到副hub die的片上存储,或传输给副hub die的互联side die,需要配置片上数据通路模块602上的寄存器,相当于给片上数据通路模块602发送一条指令,片上数据通路模块602会根据指令,去对应的片上存储系统中把数据取出,并根据目的地操作地址,将目的地的操作地址以及源id、目的地id、数据操作地址、数据长度、数据类型等基本信息打包成数据包头,跟随数据一起发送。为了防止锁死,片上数据通路模块602会将要发送的数据都读回来之后,再一起发送。
83.当第一管芯主hub die发送在主hub die所存储的数据时,d2d互连组件的片上数据通路模块602配置成:基于所述数据的源地址,从所述第一管芯的存储模块获取所述数据;解析所述数据待传输的ip核,从而确定所述数据所要传输的对应于待传输的ip核的第二管芯;以及基于所确定的第二管芯的目的地操作地址,将所述数据转发到所述第二管芯。
84.在集成电路还包括多个第三管芯(副hub die)的情况下,片上数据通路模块602还可以基于所述数据的源地址,从第一管芯的存储模块获取所述数据;解析所述数据待传输的ip核,从而确定数据所要传输的管芯,即数据是传输到第三管芯或第二管芯,如果是传输到第二管芯,则第二管芯是与第一管芯相连或与第三管芯相连。如果要传输的第二管芯是与第三管芯相连,则是直接相连或是相隔其他第三管芯相连。
85.因此,响应于数据传输到第二管芯,片上数据通路模块602确定与所述第二管芯互联的管芯;响应于所述第二管芯与所述第一管芯互联,片上数据通路模块602将所述目的地操作地址转换为所述第二管芯的地址,从而将所述数据转发到所述第二管芯;响应于所述第二管芯与所述第三管芯互联,片上数据通路模块602将所述目的地操作地址转换为所述第三管芯的地址,从而将所述数据转发到所述第三管芯;响应于所述数据传输到所述第三管芯,片上数据通路模块602确定与所述第三管芯互联的管芯;响应于所述第三管芯与所述第一管芯互联,片上数据通路模块602将所述目的地操作地址转换为所述第三管芯的地址,从而将所述数据转发到所述第三管芯;响应于所述第三管芯与其他第三管芯互联,片上数据通路模块602将所述目的地操作地址转换为其他第三管芯的地址,从而将所述数据转发到其他第三管芯。
86.片上数据通路模块602还可以通过软件配置预留的information寄存器,用户自定义information的含义,将information打包成information数据包,实现hub die与hub die
之间的软件层次information通讯。
87.在d2d互连组件的互联数据通路模块603实现互联数据通路时,互联数据通路模块603可以实现不同的功能。首先,互联数据通路模块603可以使side die(第二管芯)或副hub die(第三管芯)去主hub die(第一管芯)的片上存储(例如第一管芯的存储模块)读写数据,因为片上存储地址在设计之初就已经分配,所以在该数据通路下,互联数据通路模块603不对操作地址进行修改或映射,side die或副hub die可以直接对主hub die的片上存储进行操作。
88.当第二管芯side die读取第一管芯主hub die中的数据时,互联数据通路模块603配置成:将所述数据的地址发送到所述第二管芯。
89.在集成电路还包括多个第三管芯(副hub die)的情况下,互联数据通路模块603还可以基于所述数据的源地址,确定待读取的数据所存储的管芯,即确定是存储在第一管芯(主hub die)或第三管芯(副hub die);响应于数据存储在第一管芯,确定与第二管芯或第三管芯与第一管芯是否互联;响应于第二管芯或第三管芯与第一管芯互联,将数据的地址发送到第二管芯或第三管芯;响应于第二管芯或第三管芯与所述第一管芯未互联,获取第二管芯或第三管芯与第一管芯之间的第三管芯,将数据的地址发送到所述第三管芯;响应于数据存储在第三管芯,确定与第二管芯或第三管芯与第三管芯是否互联;响应于第二管芯或第三管芯与第三管芯互联,将数据的地址发送到所述第二管芯或第三管芯;以及响应于第二管芯或第三管芯与第三管芯未互联,获取第二管芯或第三管芯与所述第三管芯之间的其他第三管芯,将数据的地址发送到其他第三管芯。
90.其次,互联数据通路模块603可以使side die或副hub die通过主hub die去另一个side die或另一个副hub die的片上存储进行操作,若另一个的side die或副hub die是在hub die的相邻,需要通过软件配置互联数据通路模块603模块的地址映射寄存器,互联数据通路模块603模块即可将side die或副hub die发出的操作地址映射成另一个side die或副hub die(相邻)的片上存储地址,直接进行数据的读写操作。若另一个的side die或副hub die并非是在hub die的相邻,需要通过软件配置互联数据通路模块603的寄存器,将互联数据通路模块603的模式切换至多hub die互联模式,互联数据通路模块603会根据操作地址识别出目的side die或副hub die的id,并将源id、目的地id、数据操作地址、数据长度、数据类型等基本信息打包成数据包头,并将源操作地址转换为路径地址,然后发出axi操作指令。
91.当互联数据通路模块603作为路径上的结点,互联数据通路模块603接收到一个数据包头后,会对数据包头里面的信息进行解析,若发现本次目的地id是自身hub die或side die时,则将数据包头中的数据操作地址取出,作为axi操作地址,并发起操作请求。并当该操作完成后,会产生中断信号告知目的地的cpu。
92.若解析出来的结果表示目的地id并非自身hub die或side die时,会根据寄存器中设定好的路径地址(系统在初始化时,可以通过软件配置),将数据包头的操作地址转换为新的路径地址,然后发起axi操作指令,将数据包头再次通过d2d接口发送到相邻的hub die。
93.本公开涉及方法、装置、系统、电子设备、计算机可读存储介质和/或计算机程序产品。计算机程序产品可以包括用于执行本公开的各个方面的计算机可读程序指令。
94.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
95.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘计算设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
96.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
97.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
98.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
99.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它
设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
100.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
101.以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1