【具体实施方式】
遍及整篇描述和权利要求的某些术语用于指代特定部件。如本领域的技术人员意识到的,制造商可用不同的名称指代部件。此文档不打算区别名称不同但功能相同的部件。在权利要求和下文的描述中,术语“包括”和“包含”用于开放方式,且因此应该解释为意思是“包含,但不限于”。而且,术语“耦合”意于表示间接或直接电连接。因此,如果一个装置耦合到另一装置,那个连接可以通过直接电连接,或通过经由其它装置和连接的间接电连接。
图1是图示根据本发明的实施例的晶圆级封装件的示意图。在本实施例中,单个晶圆级封装件100具有装配于其中的多个半导体裸芯片,例如,两个半导体裸芯片102和104。例如,晶圆级封装件100是集成的扇出(fan-out)(InFO)封装件或基板上晶圆上芯片(CoWoS)封装件,半导体裸芯片102和104是同构裸芯片(即,相同裸芯片)或异构裸芯片(即,有区别的裸芯片),和/或半导体裸芯片102和104装配于晶圆级封装件100,以执行网络切换功能。然而,此仅仅是用于说明性的目的,且并非打算作为本发明的限制。
晶圆级封装是封装半导体裸芯片的技术,其不同于典型的将晶圆分割为个别半导体裸芯片并封装个别半导体裸芯片的封装方法。因此以上提及的晶圆级封装件是基于晶圆级制程来制造的。即,半导体裸芯片(例如,同构裸芯片或异构裸芯片)装配于相同的晶圆级封装件和路由于半导体裸芯片之间的连接路径/通信总线/通信信道用晶圆级制程来制造。因此,连接路径、通信总线或通信信道可以由金属层(例如,RDL金属层、重分布层、使集成电路上的I/O垫在其他位置可用的裸芯片上的金属层)而不是接合导线来实现。
以InFO封装作为下文的晶圆级封装件(例如,100、400)的示例,但并非是限制。因为使用提出的流控制机制的晶圆级封装件可以是InFO封装件或CoWoS封装件,“InFO封装件”和“CoWoS封装件”可以互换,且“InFO总线”和“CoWoS总线”可以互换。
晶圆级封装件100(例如,InFO封装件)的半导体裸芯片102具有处理电路(例如,总线主控106)和通信接口(例如,总线接口)107,其中总线主控106通过通信接口107耦合到半导体裸芯片102和104之间的通信总线103。晶圆级封装件100(例如,InFO封装件)的半导体裸芯片104具有处理电路(例如,总线从控108)和通信接口(例如,总线接口)109,其中总线从控108通过通信接口109耦合到半导体裸芯片102和104之间的通信总线103。
在晶圆级封装件100是InFO封装件,通信总线103是高速InFO总线的情况中。位于一个半导体裸芯片102的总线主控106用于与位于另一半导体裸芯片104的总线从控108经由通信总线103通信。在本实施例中,总线主控106具有支持流控制机制的控制器112,且总线从控108具有支持相同的流控制机制的控制器114。因此,总线主控106可以由流控制机制控制,且总线从控108可触发流控制机制,其中流控制机制用于管理由总线主控106通过通信总线103初始化的交易流。
如图1所示,每个通信接口107和109包含地址相位信道、写数据相位信道、读数据相位信道以及流控制信道,其中每个信道可包含经由通信总线103的信号线发送的信号。地址相位信道可发送读/写命令、读/写地址、控制信息等。写数据相位信道可发送即将写入总线从控108的写数据。读数据相位信道可发送从总线从控108获取的读数据。响应信道可发送读/写命令的执行结果。流控制信道可从总线从控108发送流控制信号总线从控到总线主控106。
在本实施例中,没有在总线主控106和总线从控108之间执行的现有的实时握手,且总线从控108具有保留用于缓冲从总线主控106生成的命令和数据的队列115。另外,总线主控106可支持基于突发的交易(其允许连续的读/写命令以突发方式发送),读/写交易的多个未解决(multiple outstanding)(其允许新的读/写命令在之前的读/写命令的握手消息接收之前发送),对等主/从方案(其将一个专属总线接口分配到一个总线主控),和/或自动交易(其确保属于相同数据访问任务的读/写命令通过通信总线连续发送)。
此外,总线从控108可支持无序交易执行(其允许由不同总线主控有序地发送的读/写命令总线主控由总线从控无序地执行),和/或对等主/从方案(其将一个专属总线接口分配到一个总线从控)。此外,为了防止由于队列115有限的存储容量使得队列115丢弃待定命令/数据,提出的流控制机制可以激活以管理由总线主控106通过通信总线(例如,InFO总线)103初始化的交易流。以此方式,高性能管理总线(特别地,高带宽和延迟不敏感的管理总线)可以通过InFO技术来提供。
在第一示范性设计中,流控制机制是使用用于从总线从控108生成后向压力(back-pressure)信号到总线主控106的后向压力机制实施的。如上所述,队列115用于缓冲包含于由总线主控106通过通信总线103初始化的流交易中的命令和数据。总线从控108可监视队列115的存储状态以确定预定准则是否满足。
例如,总线从控108将队列115中使用的空间的大小与预定阈值比较,并当队列115中的使用的空间的大小大于预定阈值时决定预定准则是满足的,其中预定阈值可以基于通信总线(例如,InFO总线)103的实际延迟来配置。对于另一示例,总线从控108将队列115中的空间空间的大小与预定阈值比较,并当队列115中的空闲空间的大小小于预定阈值时决定预定准则是满足的,其中预定阈值可以基于通信总线(例如,InFO总线)103的实际延迟来配置。
当后向压力信号没有由总线从控108断言,总线主控106假设总线从控108可接受所有发送的读/写交易且读/写交易可以随时发送。然而,当后向压力信号由总线从控108断言,总线主控106被阻止通过通信总线103发送新的读/写交易。因为通过通信总线103的交易流停止,队列115中使用的空间没有增加,以及总线从控108可处理在队列115中缓冲的命令和数据,以释放队列115中使用的空间的至少部分(即,部分或所有)。当队列115的存储状态不满足预定准则(例如,队列115中使用的空间不大于预定阈值或队列115中的空闲空间不小于预定阈值)时,总线从控108解断言后向压力信号,且总线主控106可当后向压力信号解断言时恢复交易。
图2是图示根据本发明第一提出的总线协议总线主控和总线从控之间的交易的时序图。符合本发明的第一提出的总线协议的通信接口107和109可具有多个信号,包含mst_write、mst_addr、mst_id、mst_valid,mst_wdata、mst_last、slv_bp、slv_rvalid、slv_rid、slv_resp、slv_rdata等。从总线主控106生成的信号mst_write指示交易是否是写交易(mst_write=1)或读交易(mst_write=0)。从总线主控106生成的信号mst_addr承载读/写交易目标地址。从总线主控106生成的信号mst_id承载总线主控106的标识符(ID)。从总线主控106生成的信号mst_valid指示交易有效(mst_valid=1)用于通知总线从控108以锁存数据。从总线主控106生成的信号mst_wdata承载写交易数据,当mst_write=1且mst_valid=1。从总线主控106生成的信号mst_last指示当前交易是否是从相同的总线主控106发出的一组连续交易的最后交易。
信号slv_bp是从总线从控108生成的后向压力信号。从总线从控108生成的信号slv_rvalid指示无论读/写交易,交易响应有效。当slv_rvalid=1,从总线从控108生成的信号slv_resp承载交易执行结果(例如,OK、失败或其它预定义的值)。信号slv_rid用于支持无序交易执行,且总线从控108通过信号slv_rid返回回应,以指示执行哪个交易。当slv_rvalid=1,从总线从控108生成的信号slv_rdata承载读交易数据。
根据提出的总线协议,总线主控106和总线从控108可经由通过使用通信总线(例如,InFO总线)103实施的高性能管理总线(特别地,高带宽和延迟不敏感管理总线)彼此通信。不论何时信号mst_valid具有背靠背(back-to-back)的有效断言,总线主控106可进行任何类型的交易的突发转移。总线主控106可继续发送新的读/写交易,而不等待指示以前读/写交易的交易执行结果的信号slv_resp,由此达到读/写交易的多个未解决。总线主控106可发出具有mst_id的交易,以使能在总线从控108执行的无序交易。总线从控108可使用信号slv_bp以停止从总线主控106发出的任何新的读/写交易,以避免丢弃待定的命令/数据。总线主控106可使用信号mst_last用于使能总线仲裁器,以决定何时对总线主控106当前使用的通信总线103授予访问权限到不同的总线主控。因此,信号mst_last可用于支持原子交易(atomic transaction)。
存在与通信接口107和109的信号关联的基本规则。例如,一个mst_valid=1推断一个slv_rvalid=1并具有有意义的slv_resp。对于另一示例,当mst_valid=1时信号mst_write、mst_addr和mst_wdata是有效的,且当slv_rvalid=1时,信号slv_resp和alv_rdata是有效的。对于又一示例,信号slv_bp(即,后向压力信号)可以随时有效/断言的,且一旦检测到信号slv_bp的断言,总线主控应该停止发送新的读/写交易。如图2所示,总线从控108在时间点T1断言信号slv_bp且在时间点T3解断言信号slv_bp。在检测到信号slv_bp的断言后,总线主控106在时间点T2解断言信号mst_valid,以便停止发送新的读/写交易。在检测到信号slv_bp的解断言后,总线主控106在时间点T4断言信号mst_valid,以便恢复发送新的读/写交易。
半导体裸芯片102的通信接口107根据第一时钟操作,以及半导体裸芯片102的通信接口109根据第二时钟操作。理想地,第二时钟应该与第一时钟同步。然而,由于某些因素,相移可存在于第一时钟和第二时钟之间。因此,当相移超过预定阈值,总线主控106可以被命令停止在特定时间段(例如,一个时钟周期)通过通信总线103发送新的读/写交易的操作,且时钟相位补偿过程可以在相同的特定时间段执行。换句话说,后向压力机制和时钟相移可指令总线主控106停止通过通信总线103发送新的读/写交易的操作。
在第二示范性设计中,流控制机制是使用用于管理总线主控106的信用的基于信用的流控制机制来实施的。当总线主控106的信用没能通过预定准则,总线主控106被阻止通过通信总线103发送新的读/写交易。初始地,默认信用(例如,credit=3)在总线主控106和总线从控108之间广告。如果信用足够,总线主控106可发送新的读/写交易。例如,如果总线主控106的信用不是零,总线主控106的信用可通过预定准则,且总线主控106被允许发送新的读/写交易到总线从控108。
在本实施例中,当通过通信总线103发送新的读/写交易时,总线主控106更新信用。例如,当一个新的读/写交易从总线主控106发送时,总线主控106的信用通过减量值来更新(例如,credit=credit-1)。对于另一示例,当多于一个新的读/写交易从总线主控106发送时,总线主控106的信用由减量值来更新(例如,credit=credit-N,其中N>1)。另外,当从总线主控106发送的一个交易已经由总线从控108执行时,总线从控108断言经由通信总线103发送到总线主控106的信用更新信号。因此,当接收到从总线从控108生成的信用更新信号时,总线主控106更新信用。例如,一旦检测信用更新信号的断言时,总线主控106的信用由增量值更新(例如,credit=credit+1)。对于另一示例,一旦检测到多于一个信用更新信号的断言时,总线主控106的信用由增量值更新(例如,credit=credit+M,其中M>1)。要注意,在一些实施例中,有多个信用更新信号,且对应于不同设计总线主控106的信用是由等于或大于一的减量值或增量值来更新的。
简而言之,每次一个或多个新的读/写交易发送到总线从控108时总线主控消耗信用,且每次从总线主控发送的一个或多个交易被执行后总线从控108返回信用。因为无论何时信用检查失败,总线主控被阻止发送新的读/写交易,从总线主控通过通信总线初始化的交易流可以合适地由基于信用的流控制机制管理,以由此防止队列115由于队列115的有限的存储容量而丢弃待定命令/数据。
图3是图示根据本发明第二个提出的总线协议的总线主控和总线从控之间的交易的时序图。符合本发明的第二个提出的总线协议的通信接口107和109可具有多个信号,包含mst_write、mst_addr、mst_id、mst_valid、mst_wdata、mst_last、slv_crdt_upd、slv_rvalid、slv_rid、slv_resp、slv_rdata等。显示于图2和图3中的总线协议设计的主要差别是信号slv_crdt_upd替代了信号slv_bp。信号slv_crdt_upd是从总线从控108生成的信用更新信号。
在时间点T0’,默认信用设置为3。因此,在总线主控106发送了3个连续的写交易后,信用在时间点T0减为零值。因此,信号mst_valid在时间点T0解断言。在从总线主控106发送的3个连续写交易的第一个写交易已经由总线从控108执行后,总线从控108在时间点T1断言信号slv_crdt_upd。一旦在时间点T3检测到信号slv_crdt_upd的断言,信用增加一,且总线主控106断言信号mst_valid并发送一个写交易。在一个写交易发送后,信用减少一为零值,且信号mst_valid因此解断言。
类似地,在从总线主控106发送的3个连续写交易的第二个写交易已经由总线从控108执行后,总线从控108在时间点T2断言信号slv_crdt_upd。一旦在时间点T4检测到信号slv_crdt_upd的断言,信用增加一,且总线主控106断言信号mst_valid并发送一个写交易。在一个写交易发送后,信用减少一为零值,且信号mst_valid因此解断言。
要注意,在一些实施例中,信号slv_crdt_upd可用于指示总线从控和总线主控之间的多个交易。例如,当执行多个交易时,总线从控对应地返回相关的信用到总线主控,例如slv_crd_upd=1表示仅仅一个信用从总线从控返回;slv_crd_upd=2表示两个信用从总线从控返回;slv_crd_upd=0表示没有信用从总线从控返回(即,没有交易)。
半导体裸芯片102的通信接口107根据第一时钟操作,以及半导体裸芯片102的通信接口109根据第二时钟操作。理想地,第二时钟应该与第一时钟同步。然而,由于某些因素,相移可存在于第一时钟和第二时钟之间。因此,当相移超过预定阈值时,总线主控106可以被指令停止在特定时间段(例如,一个时钟周期)通过通信总线103发送读/写交易的操作,且时钟相位补偿过程可以在相同的特定时间段执行。换句话说,基于信用的流控制机制和时钟相移可指令总线主控106停止通过通信总线103发送新的读/写交易的操作。
在图1示出的实施例中,半导体裸芯片102显示具有一个总线主控106,且半导体裸芯片104显示具有一个总线从控108。然而,此仅仅是用于说明性的目的,并非是本发明的限制。备选地,一个半导体裸芯片可包含多于一个总线主控,且另一半导体裸芯片可包含多于一个总线从控。高性能总线可要求总线主控和总线从控支持对等主/从方案。本发明因此提出在具有多个总线主控的一个半导体裸芯片中实施总线仲裁器,以及在具有多个总线从控的一个半导体裸芯片中实施总线调度器。
图4是图示根据本发明的实施例的另一晶圆级封装件的示意图。在本实施例中,单个晶圆级封装件400具有装配于其中的多个半导体裸芯片,例如两个半导体裸芯片402和404。例如,晶圆级封装件400是集成的扇出(InFO)封装件或基板上晶圆上芯片(CoWoS)封装件,半导体裸芯片402和404是同构裸芯片(即,相同的裸芯片)或异构裸芯片(即,区别的裸芯片),和/或半导体裸芯片402和404装配于晶圆级封装件400以执行网络切换功能。然而,此仅仅是用于说明性的目的,且并非是本发明的限制。
由于使用提出的流控制机制和对等主/从方案的晶圆级封装件可以是InFO封装件或CoWoS封装件,“InFO封装件”和“CoWoS封装件”可以可互换,且“InFO总线”和“CoWoS总线”可互换。
晶圆级封装件400(例如,InFO封装件)的半导体裸芯片402具有多个处理电路(例如,总线主控406_1、406_2、406_3和406_4)以及总线仲裁器407。晶圆级封装件400(例如,InFO封装件)的半导体裸芯片404具有多个处理电路(例如,总线从控408_1、408_2和408_3)以及总线调度器409。此外,连接于装配在相同的晶圆级封装件400的半导体裸芯片402和404之间的通信总线(例如,InFO总线)403。应该注意到,实施于相同的半导体裸芯片的总线主控的数目以及实施于相同半导体裸芯片的总线从控的数目可以被调整,依据实际设计考虑。每个总线主控406_1-406_4和每个总线从控408_1-408_3支持以上提及的总线协议。因此,每个总线主控406_1-406_4可以由流控制机制(例如,后向压力机制或基于信用的流控制机制)控制,且每个总线从控408_1-408_3可触发流控制机制(例如,后向压力机制或基于信用的流控制机制),其中采用流控制机制(例如,后向压力机制或基于信用的流控制机制)以管理通过通信总线403的交易流。
在本实施例中,总线主控406_1-406_4和总线从控408_1-408_3支持对等主/从方案。因此,总线仲裁器407和总线主控406_1-406_4中的一个之间的总线接口不与总线主控406_1-406_4的另一个共享,以及总线调度器409和总线从控408_1-408_3中的一个之间的总线接口不与总线从控408_1-408_3中的另一个共享。总线仲裁器407经由独立的总线接口连接到总线主控406_1-406_4,并当交易请求从总线主控406_1-406_4发送时执行仲裁,并每次仅仅对总线主控406_1-406_4的一个授予通信总线403的访问权限。总线调度器409经由独立的总线接口连接到总线从控408_1-408_3,且每次调度来自通信总线403的交易流到总线从控408_1-408_3中的一个(即,单播模式)。
以示例的方式,并非限制,由总线仲裁器407授权以访问通信总线403的选择的总线主控的标识符(ID)也发送到总线调度器409,以及总线调度器409可参考选择的总线主控的标识符(ID),以决定总线从控408_1-408_3中的哪一个应该被选择用于处理从选择的总线主控初始化的交易流。
然而,在其它实施例中,当从总线主控406_1-406_4中的一个发送且被总线仲裁器407仲裁的交易请求是组播命令或广播命令时,总线调度器409根据组播/广播命令或相关的标识符(ID)或地址每次将来自通信总线403交易流调度到总线从控408_1-408_3的若干(组播模式)或所有(广播模式)。
本领域技术人员将容易观察到,在保留本发明的教导之下,可以对装置和方法进行许多修改和替换。因此,以上揭示应该解释为仅仅由所附的权利要求的精神和界限所限制。