CN117616406A - 用于管芯到管芯互连的边带接口 - Google Patents
用于管芯到管芯互连的边带接口 Download PDFInfo
- Publication number
- CN117616406A CN117616406A CN202280046730.8A CN202280046730A CN117616406A CN 117616406 A CN117616406 A CN 117616406A CN 202280046730 A CN202280046730 A CN 202280046730A CN 117616406 A CN117616406 A CN 117616406A
- Authority
- CN
- China
- Prior art keywords
- sideband
- die
- clock
- data
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000008878 coupling Effects 0.000 claims abstract description 10
- 238000010168 coupling process Methods 0.000 claims abstract description 10
- 238000005859 coupling reaction Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 46
- 238000012549 training Methods 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 18
- 238000005070 sampling Methods 0.000 claims description 18
- 239000000758 substrate Substances 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 12
- 229910052710 silicon Inorganic materials 0.000 claims description 6
- 239000010703 silicon Substances 0.000 claims description 6
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 3
- 230000015654 memory Effects 0.000 description 50
- 238000001514 detection method Methods 0.000 description 26
- 230000008439 repair process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 23
- 238000004891 communication Methods 0.000 description 18
- 238000004806 packaging method and process Methods 0.000 description 16
- 238000007726 management method Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 230000015556 catabolic process Effects 0.000 description 7
- 238000006731 degradation reaction Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 230000007704 transition Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000761456 Nops Species 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 108010020615 nociceptin receptor Proteins 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4273—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/405—Coupling between buses using bus bridges where the bridge performs a synchronising function
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2224/00—Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
- H01L2224/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L2224/10—Bump connectors; Manufacturing methods related thereto
- H01L2224/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L2224/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
- H01L2224/161—Disposition
- H01L2224/16151—Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive
- H01L2224/16221—Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked
- H01L2224/16225—Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/52—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
- H01L23/538—Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames the interconnection structure between a plurality of semiconductor chips being formed on, or in, insulating substrates
- H01L23/5383—Multilayer substrates
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L24/00—Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
- H01L24/01—Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
- H01L24/10—Bump connectors ; Manufacturing methods related thereto
- H01L24/15—Structure, shape, material or disposition of the bump connectors after the connecting process
- H01L24/16—Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L25/00—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
- H01L25/03—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
- H01L25/04—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
- H01L25/065—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
- H01L25/0655—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00 the devices being arranged next to each other
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/15—Details of package parts other than the semiconductor or other solid state devices to be connected
- H01L2924/151—Die mounting substrate
- H01L2924/1517—Multilayer substrate
- H01L2924/15192—Resurf arrangement of the internal vias
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L2924/00—Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
- H01L2924/15—Details of package parts other than the semiconductor or other solid state devices to be connected
- H01L2924/151—Die mounting substrate
- H01L2924/153—Connection portion
- H01L2924/1531—Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface
- H01L2924/15311—Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface being a ball array, e.g. BGA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Communication Control (AREA)
- Infusion, Injection, And Reservoir Apparatuses (AREA)
Abstract
在一个实施例中,一种装置包括:管芯到管芯适配器,用于与协议层电路装置和物理层电路装置进行通信;以及物理层电路装置,耦合到管芯到管芯适配器,其中物理层电路装置用于接收第一信息并经由互连将第一信息输出到第二管芯。物理层电路装置可以包括:第一边带数据接收器,用于耦合到第一边带数据通道;以及第一边带时钟接收器,用于耦合到第一边带时钟通道;以及第二边带数据接收器,用于耦合到第二边带数据通道,以及第二边带时钟接收器,用于耦合到第二边带时钟通道。物理层电路装置可以分配工作边带,该工作边带包括:第一或第二边带数据通道中的一个;以及第一或第二边带时钟通道中的一个。描述并要求保护了其他实施例。
Description
背景技术
多芯片封装(multi-chip packaging,MCP)的进步使得性能增长和复杂产品的创造成为可能。针对短距离优化的高密度、低延时管芯到管芯互连能够实现高数据速率和很低的误码率(bit error rate,BER)。这种封装内的管芯到管芯链路可以寻求实现与封装迹线传输、链路状态机和链路状态转换相关的同步。用于交换此信息的机制用于执行连接设备的启动和操作。虽然可以通过主带传送该信息,但是这种通信减少了总带宽。
附图说明
图1是根据实施例的封装的框图。
图2A-2D是结合实施例的不同封装选项的剖视图。
图3A/3B是可以实现一个或多个实施例的分层协议的框图。
图4A-4B是根据各种实施例的多管芯封装的框图。
图5是示出根据实施例的管芯到管芯连接的示意图。
图6A/6B是示出根据实施例的边带信令的时序图。
图7是示出根据实施例的封装上具有多协议能力的互连的启动流程的流程图。
图8是根据实施例的链路训练状态机的流程图。
图9是根据实施例的主带初始化的进一步细节的流程图。
图10是根据实施例的主带训练的流程图。
图11是根据实施例的另一示例系统的框图。
图12是根据另一个实施例的系统(例如边缘平台)的框图。
图13是根据另一实施例的系统的框图。
具体实施方式
在各种实施例中,具有多协议能力的封装上互连的边带可以用于传送各种信息类型,并且可以被利用来实现具有经由这样的互连耦合的多个管芯的封装的更快启动和初始化。另外,在一些封装实现方式中,可以包括冗余边带电路装置并用于在出现错误的情况下提供冗余,并且进一步实现用于边带通信的更高带宽。
在各种实施例中,支持多协议的封装上互连可以用于在封装的分解管芯(disaggregated dies)之间进行通信。该互连可以通过有序启动流程进行初始化和训练,以实现不同管芯的独立复位、伙伴管芯复位退出(partner dies'reset exit)的检测以及互连的边带和主带接口的有序初始化和训练(按该顺序)。更具体地,可以执行边带初始化以检测链路伙伴管芯已经退出复位并且初始化和训练边带。此后,主带可以被初始化和训练,这可以包括如本文进一步描述的任何通道反转和/或修复操作。此类主带操作可以利用已经启动的边带来传送同步和状态信息。
利用执行通道反转和/或修复的实施例,可以恢复由于先进封装多芯片封装(multi-chip package,MCP)的通道连接性问题而造成的良率损失。此外,通过根据实施例的通道修复技术,左移技术和右移技术二者都可以覆盖整个凹凸图以用于高效的通道修复。更进一步的通道反转检测可以实现管芯旋转和管芯镜像,以实现具有相同管芯的多个封装上实例化。以这种方式,通道反转可以消除同一管芯的多个绝缘带。
实施例可以结合具有多协议能力的封装上互连协议来实现,该协议可以用于连接单个封装上的多个小芯片或管芯。利用这种互连协议,可以将分解管芯架构的充满活力的生态系统互连在一起。该封装上互连协议可以被称为“通用小芯片快速互连”(UniversalChiplet Interconnect express,UCIe)互连协议,其可以符合由特殊兴趣小组(specialinterest group,SIG)或其他发起人或者其他实体发布的UCIe规范。虽然本文中被称为“UCIe”,但要理解的是,具有多协议能力的封装上互连协议可以采用另一术语。
该UCIe互连协议可以支持多个底层互连协议,包括某些通信协议的基于flit的模式。在一个或多个实施例中,UCIe互连协议可以支持:计算快速限制(Compute ExpressLimited,CXL)协议的flit模式,例如根据CXL规范的给定版本,例如CXL规范版本2.0(2020年11月发布),其任何未来的更新、版本或变体;外围组件快速互连(Peripheral ComponentInterconnect express,PCIe)flit模式,例如根据给定版本的PCIe规范,例如PCIe基本规范版本6.0(2022年发布)或其任何未来更新、版本或变体;以及用于映射链接伙伴所支持的任何协议的原始(或流送)模式。注意,在一个或多个实施例中,UCIe互连协议可以不是向后兼容的,而是可以适应上述协议或支持flit通信模式的其他协议的当前和未来版本。
实施例可用于提供跨整个计算连续体、跨越云、边缘、企业、5G、汽车、高性能计算和手持细分(segment)的计算、存储器、存储和连接性。实施例可以用于封装或以其他方式耦合来自不同来源的管芯,不同来源包括不同的生产工厂(fab)、不同的设计和不同的封装技术。
封装上的小芯片集成还使得客户能够通过选择不同数量和类型的管芯来针对不同的细分市场做出不同的权衡。例如,可以根据细分来选择不同数量的计算、存储器和I/O管芯。因此,无需针对不同细分采用不同的管芯设计,从而降低产品库存单位(stockkeeping unit,SKU)成本。
现在参考图1,示出了根据实施例的封装的框图。如图1所示,封装100可以是任何类型的集成电路封装。在所示的特定图示中,封装100包括多个小芯片或管芯,包括中央处理单元(central processing unit,CPU)管芯1100-n、加速器管芯120、输入/输出(input/output,I/O)分片130和存储器1401-4。根据实施例,这些管芯中的至少某些可以经由封装上互连耦合在一起。如图所示,互连1501-3可以被实现为UCIe互连。CPU 110可以经由另一个封装上互连155耦合,在一些情况下,封装上互连155可以使用运行一致性协议的UCIe互连来提供封装上的CPU到CPU连接性。作为一个此类示例,该一致性协议可以是UltraPath互连(UPI);当然,其他示例也是可能的。
虽然本文讨论的映射到UCIe协议的协议包括PCIe和CXL,但应理解实施例不限于此。在示例实施例中,针对任何底层协议的映射可以使用flit格式来完成,包括原始模式。在实现方式中,根据一个实施例,这些协议映射可以通过用UCIe管芯到管芯适配器和PHY替换某些物理层电路装置(例如,PCIe SERDES PHY和PCIe/CXL LogPHY以及链路级重试)来实现更多封装上集成,以提高功率和性能特性。此外,原始模式可以是与协议无关的(protocol-agnostic),以使得其他协议能够被映射,同时允许诸如在封装上集成独立SERDES/收发器分片(例如以太网)之类的用途。如图1进一步所示,封装外互连可以根据各种协议,包括CXL/PCIe协议、双倍数据速率(doubledata rate,DDR)存储器互连协议等等。
在示例实现方式中,加速器120和/或I/O分片130可以使用在UCIe互连150上运行的CXL事务连接到CPU 110,利用CXL的I/O、一致性和存储器协议。在图1的实施例中,I/O分片130可以提供到封装的外部CXL、PCIe和DDR引脚的接口。加速器120还可以使用在UCIe互连150上运行的PCIe事务静态地或动态地连接到CPU 110。
根据实施例的封装可以在许多不同类型的计算设备中实现,范围从诸如智能电话等的小型便携式设备到包括客户端计算设备和服务器或其他数据中心计算设备的较大设备。通过这种方式,UCIe互连可以实现机架/pod级别的本地连接性和长距离连接性。尽管图1中未示出,应当理解,至少一个UCIe重定时器可以用于使用封装外互连将UCIe连接性扩展到封装之外。封装外互连的示例包括电缆、光缆或用于在机架/pod级别连接封装的任何其他技术。
实施例还可用于支持使用CXL 2.0(或更晚版本)协议的机架/pod级别分解。在这种布置中,来自不同计算机箱的多个计算节点(例如,虚拟层次结构)耦合到CXL交换机,该CXL交换机可以耦合到多个CXL加速器/Type-3存储器设备,其可以放置在一个或多个单独的抽屉中。每个计算抽屉可以使用通过UCIe重定时器运行CXL协议的封装外互连耦合到交换机。
现在参考图2A-2D,示出了结合实施例的不同封装选项的剖视图。如图2A所示,封装200可以是提供先进封装技术的先进封装。在一个或多个实施例中,先进封装实现方式可用于性能优化的应用,包括节能性能应用。在一些此类示例用例中,信道范围可能很短(例如,小于2毫米),并且可以针对高带宽和低延时来优化互连,并具有最佳性能和功率效率特性。
如图2A所示,封装200包括多个管芯2100-2。要理解的是,虽然图2A中示出了三个特定管芯,但在其他实现方式中可以存在更多管芯。管芯210适配于封装衬底220上。在一个或多个实施例中,管芯210可以经由凸块适配于衬底220。如图所示,封装衬底220包括多个硅桥2251-2,其包括封装上互连2261-2。在一个实施例中,互连226可以被实现为UCIe互连,并且硅桥225可以被实现为EMIB桥。
现在参考图2B,示出了先进封装的另一个实施例,其中封装配置被实现为衬底上晶圆上芯片(Chip on Wafer on Substrate,CoWoS)。在该图示中,封装201包括适配在中介层(interposer)230上的管芯210,其中该中介层包括对应的封装上互连236。进而,中介层230经由凸块适配到封装衬底220。
现在参考图2C,示出了先进封装的另一个实施例,其中封装配置是利用扇出有机中介层230来实现的。在该图示中,封装202包括适配在中介层230上的管芯210,中介层230包括对应的封装上互连236。进而,中介层230经由凸块适配于封装衬底220。
现在参考图2D,示出了另一个封装图示。封装203可以是提供标准封装技术的标准封装。在一个或多个实施例中,标准封装实现方式可用于使用有机封装/衬底上的迹线的低成本和长距离(例如,10mm至25mm)互连,同时与封装外SERDES相比仍提供显著更好的BER特性。在该实现方式中,封装203包括适配于封装衬底220的管芯210,其中封装上互连226直接适配于封装衬底220内,而不包含硅桥等。
现在参考图3A/3B,示出了可以实现一个或多个实施例的分层协议的框图。如图3A中的高层级所示,电路300中实现的分层协议的多个层可以实现互连协议。协议层310可以传送一个或多个应用特定协议的信息。在一种或多种实现方式中,协议层310可以根据PCIe或CXL flit模式和/或流送协议中的一种或多种来操作,以提供用于要发送的用户定义协议的通用模式。对于每个协议,不同的优化和相关联的flit传输是可用的。
协议层310又经由接口315耦合到管芯到管芯(die-to-die adapter,D2D)适配器320。在实施例中,接口315可以被实现为flit感知D2D接口(flit-aware D2D interface,FDI)。在一个实施例中,D2D适配器320可以被配置为与协议层310和物理层330协调,以确保跨UCIe链路340的成功数据传输。适配器320可以被配置为尽可能地最小化主数据路径上的逻辑,从而为协议flit提供低延时、优化的数据路径。
图3A示出了在D2D适配器320内执行的各种功能。D2D适配器320可以为连接的管芯(也称为“小芯片”)提供链路状态管理和参数协商。另外,D2D适配器320可以可选地通过循环冗余校验(CRC)和链路级重试机制来保证数据的可靠传送,例如,在原始BER小于1e-27的情况下。当支持多个协议时,D2D适配器320可以定义底层仲裁机制。例如,当传输CXL协议的通信时,适配器320可以提供支持多个同时协议的通信的仲裁器/复用器(arbitrator/multiplexer,ARB/MUX)功能。在一个或多个实施例中,当D2D适配器320负责可靠传输时,给定大小(例如256字节)的流控制单元(flit)可以定义底层传输机制。
当操作处于flit模式时,管芯到管芯适配器320可以插入并检查CRC信息。与此相比,当操作处于原始模式时,flit的所有信息(例如,字节)由协议层310填充。如果适用,则适配器320还可以执行重试。适配器320还可以被配置为协调更高级别的链路状态机管理和启动、与远程链路伙伴的参数交换相关的协议选项、以及(当支持时)与远程链路伙伴的功率管理协调。根据使用模型,可以使用不同的底层协议。例如,在一个实施例中,使用直接存储器访问、软件发现和/或错误处置等的数据传输可以使用PCIe/CXL.io来处置;存储器用例可以通过CXL.Mem处置;并且诸如加速器之类的应用的缓存要求可以使用CXL.cache来处置。
进而,D2D适配器320经由接口325耦合到物理层330。在实施例中,接口325可以是原始D2D接口(raw D2D interface,RDI)。如图3B所示,物理层330包括用于与管芯至管芯互连340(其在实施例中可以是UCIe互连或另一具有多协议能力的封装上互连)接合的电路装置。在一个或多个实施例中,物理层330可以负责电信令、时钟控制(clocking)、链路训练、边带等。
互连340可以包括边带和主带链路,其可以是所谓的“通道”的形式,其是承载信令的物理电路装置。在一个实施例中,通道可以构成用于承载映射到物理凸块或其他导电元件的一对信号的电路装置,一个用于发送,并且一个用于接收。在实施例中,xN个UCIe链路由N个通道组成。
如图3B所示,物理层330包括三个子组件,即物理(physical,PHY)逻辑332、电/模拟前端(analog front end,AFE)334和边带电路装置336。在一个实施例中,互连340包括主带接口,该主带接口提供物理凸块上的主数据路径可以组织为一组称为模块或集群的通道。
互连340的构造单元在本文中同样被称为“集群”或“模块”。在一个实施例中,集群可以包括N个单端、单向、全双工数据通道、一个用于有效的单端通道、一个用于跟踪的通道、每个方向的差分转发时钟、以及每个方向的2个用于边带的通道(单端时钟和数据)。因此,模块(或集群)形成AFE 334的结构设计实现方式的原子粒度。对于标准和高级封装,每个模块可以提供不同数量的通道。例如,对于标准封装,16个通道构成单个模块,而对于高级封装,64个通道构成单个模块。虽然实施例不限于此,但是互连340是可以使用导电迹线、导电焊盘、凸块等中的一个或多个来实现的物理互连,其提供链路伙伴管芯上存在的PHY电路装置之间的互连。
协议层310或D2D适配器320的给定实例可以通过实现带宽缩放的多个模块发送数据。管芯之间的互连340的物理链路可以包括两个单独的连接:(1)边带连接;以及(2)主带连接。在实施例中,边带连接用于参数交换、用于调试/合规性的寄存器访问以及与远程伙伴的协调以用于链路训练和管理。
在一个或多个实施例中,边带接口由每个方向上的至少一个数据通道和至少一个时钟通道形成。换句话说,边带接口是用于发送和接收方向的双信号接口。在高级封装使用中,可以在每个方向上通过附加数据和时钟对来提供冗余,以用于修复或增加的带宽。边带接口可以包括每个方向上的转发时钟引脚和数据引脚。在一个或多个实施例中,边带时钟信号可以由被配置为在800MHz下操作的辅助时钟源生成,而不管主数据路径速度如何。物理层330的边带电路装置336可以被提供有辅助电源并且被包括在始终开启域中。在实施例中,边带数据可以以800兆传送每秒(megatransfer per second,MT/s)的单一数据速率信号(singledata rate signal,SDR)来传送。边带可以配置为在始终开启的供电装置和辅助时钟源上运行。每个模块都有其自己的一组边带引脚。
构成主数据路径的主带接口可以包括转发时钟、数据有效引脚和每个模块的N个数据通道。对于高级封装选项,N=64(也称为x64),并且在凹凸图中提供了用于通道修复的总共四个额外引脚。对于标准封装选项,N=16(也称为x16)并且不提供用于修复的额外引脚。物理层330可以被配置为协调不同的功能及其相对排序以用于正确的链路启动和管理(例如,边带传输、主带训练和修复等)。
在一个或多个实施例中,高级封装实现方式可以支持冗余通道(本文也称为“备用”通道)以处置故障通道(包括时钟、有效、边带等)。在一个或多个实施例中,标准封装实现方式可以支持通道宽度降级以处置故障。在一些实施例中,可以聚合多个集群以为每个链路提供更多性能。
现在参考图4A,示出了根据实施例的多管芯封装的框图。如图4A所示,封装400至少包括第一管芯410和第二管芯450。应当理解,管芯410和450可以是各种类型的管芯,包括CPU、加速器、I/O设备等。在图4A所示的高级视图中,将管芯耦合在一起的互连440被示出为虚线。互连440可以是封装上具有多协议能力的互连的实例化,例如本文所述的UCIe互连。虽然在图4A中没有详细示出,但是应当理解,互连440可以使用适配于每个管芯上的导电凸块来实现,导电凸块可以耦合在一起以提供管芯之间的互连。另外,互连440还可以包括封装内电路装置,例如一个或多个衬底上或内的导线。如本文所使用的,应理解,术语“通道”指的是将一个管芯耦合到另一管芯的任何和所有互连电路装置。
在特定实施例中,互连440可以是具有一个或多个模块的UCIe互连,其中每个模块包括边带接口和主带接口。在这个高级视图中,主带接口耦合到每个管芯内的主带接收器和发射器电路装置。具体地,管芯410包括主带接收器电路装置420和主带发射器电路装置425,而管芯450又包括主带接收器电路装置465和主带发射器电路装置460。
图4A进一步示出了边带接口的连接性。一般而言,边带包括每个方向上的数据通道和时钟通道,并且在高级封装使用中,可以在每个方向上利用附加数据和时钟对来提供冗余。因此,图4A示出了两个管芯的边带电路装置之间的第一种可能的连接实现方式。管芯410包括边带电路430,边带电路430包括第一边带电路装置432,第一边带电路装置432包括分别耦合到第二管芯450的边带电路装置470的对应边带发射器和接收器电路装置的对应的边带时钟和数据接收器(R_C和R_D)以及边带时钟和数据发射器(T_C和T_D)。边带电路430还包括第二边带电路装置434,第二边带电路装置434具有用于冗余边带时钟和数据发射器和接收器(如上所列举,以“R”结尾的发射器和接收器缩写)的类似电路装置。
在图4A中,示出了第一边带连接性实例化,其中边带电路装置432和472充当工作边带,并且边带电路装置434和474充当冗余边带。
根据在边带初始化期间执行的边带检测,可以确定一个或多个边带通道和/或相关联的边带电路装置有缺陷,并且因此冗余边带电路装置的至少一部分可以用作工作边带。更具体地,图4B示出了两个管芯的边带电路装置之间的第二种可能的连接性实现方式。在该示例中,冗余边带数据发射器和接收器存在于边带电路装置472中以充当工作边带的一部分。
在不同的实现方式中,初始化和启动流程可以允许任何连接性,只要保持数据到数据和时钟到时钟连接性。如果基于这种初始化不需要冗余,则两个边带电路对都可以用于扩展边带带宽,从而实现更快的消息交换。请注意,虽然图4A和图4B是在高级封装配置的背景下示出的,类似的边带电路装置可以存在于标准封装中使用的管芯上。然而,在某些实现方式中,冗余边带电路装置和冗余边带通道可能不存在于标准封装中,因为标准封装可能不提供冗余和通道修复支持。
现在参考图5,示出的是说明根据实施例的管芯到管芯连接的示意图。如图5所示,封装500包括第一管芯510和第二管芯560。互连540(例如UCIe互连)包括多个边带通道,即边带通道541-544。应理解,虽然示出了单个方向的边带通道,但是也可以为其他方向提供对应的边带通道组。第一管芯510包括边带数据发射器和边带时钟发射器,即边带数据发射器511、512(其中边带数据发射器512是冗余发射器)。第一管芯510还包括边带时钟发射器514、515(其中边带时钟发射器515是冗余发射器)。第二管芯560又包括边带数据接收器和边带时钟接收器,即边带数据接收器561、562(其中边带数据接收器562是冗余接收器)。第二管芯560还包括边带时钟接收器564、565(其中边带时钟接收器565是冗余接收器)。
仍然参考图5,检测电路装置存在于第二管芯560中,检测电路装置可用于执行边带检测,边带检测可以是边带初始化的一部分,以用于确定哪些通道将被包括在工作边带中以及哪些通道可以是冗余边带的一部分。如图所示,提供了多个检测器5700-3。每个检测器570接收传入边带数据信号和传入边带时钟信号,使得每个检测器570从第二管芯560的边带接收器的不同组合接收信号。在边带初始化期间,传入边带数据信号可以是包括预定模式的预定边带初始化分组。检测器570可以被配置为检测该模式的存在并响应于对模式的有效检测(例如,对于模式的多次迭代)生成第一结果(例如,逻辑1),并响应于没有检测到预定模式而生成第二结果(例如,逻辑0)。尽管实施例不限于此,但在一种实现方式中,检测器570可以配置有移位寄存器、计数器等,以通过使用时钟信号和冗余时钟信号对数据和冗余数据进行采样(产生四种组合)来执行该检测操作并生成对应的结果。
下面的表1是用于选择时钟和数据通道的适当组合作为工作边带的边带分配或选择过程的示例伪代码。在一个或多个实施例中,如果不需要冗余,则两对边带通道可用于扩展边带带宽,从而实现更快的消息交换。
表1
CKSB采样DATASB=Result[0]#1:检测到;0:未检测到
CKSBRD采样DATASB=Result[1]#1:检测到;0:未检测到
CKSB采样DATASBRD=Result[2]#1:检测到;0:未检测到
CKSBRD采样DATASBRD=Result[3]#1:检测到;0:未检测到
IF(Result[3:0]==XXX1):边带=(DATASB/CKSB)
ELSE IF(Result[3:0]==XX10):边带=(DATASB/CKSBRD)
ELSE IF(Result[3:0]==X100):边带=(DATASBRD/CKSB)
ELSE IF(Result[3:0]==1000):边带=(DATASBRD/CKSBRD)
Else:边带不是工作的基于所生成的结果(例如,如表1中所示的Result[0-3]),可以发送边带消息(这里被称为失去复位边带消息(out of reset sideband message)),其包括边带数据/时钟分配以指示哪个通道将用作工作边带(以及潜在地哪些通道可以用作冗余边带)。
注意,在冗余边带电路装置不用于修复目的的情况下,其可用于增加边带通信的带宽,特别是对于数据密集型传输。作为示例,根据实施例的边带可以用于传送要下载的大量信息,例如固件和/或熔丝下载。或者边带可以用于传送管理信息,例如根据给定的管理协议。注意,这样的通信可以与工作边带上的其他边带信息通信同时发生。
在一个实施例中,可能需要互连修复的高级封装接口的边带初始化(sidebandinitialization,SBINIT)序列如下:
1.UCIe模块启动并继续在两个边带数据发射器(TXDATASB和TXDATASBRD)上发送64UI时钟模式和32UI低电平的迭代。UCIe模块在活动数据传输期间在TXCKSB和TXCKSBRD二者上发送选通信号,否则进行门控。
2.UCIe模块伙伴使用两个传入边带时钟对其边带接收器上的每个传入数据模式进行采样(这形成四个接收器/时钟组合)。
3.如果检测到步骤1中模式的两次连续迭代,则认为边带数据-时钟接收器组合检测成功。
4.如果UCIe模块伙伴在其边带数据-时钟接收器组合的至少一个上成功检测到该模式,则在
64UI时钟模式和32UI低电平的四次迭代之后,它会停止在其边带发射器上发送数据和时钟。
这将允许UCIe模块和UCIe模块伙伴二者在退出复位(RESET)状态时存在任何时间差异。
然后启用UCIe模块上的边带发射器和接收器来发送和接收边带消息。
5.如果在其边带接收器上未检测到该模式,则UCIe模块继续在预定持续时间内在其边带发射器上发送该模式,例如1ms和空闲1ms持续8ms。在此时间期间,UCIe模块的边带接收器保持启用状态。在此预定持续时间(例如8ms)之后发生超时,并且UCIe模块进入TRAINERROR状态。
6.如果对多于一个边带数据/时钟组合的检测成功,则设备可以基于优先级顺序(例如,根据表1)选择一种组合。
7.如果UCIe模块上的边带被启用以发送和接收边带消息(步骤5),则UCIe模块启动并继续在TXDATASB和TXDATASBRD二者上发送给定的边带消息(例如,{SBINIT Out ofReset}
边带消息),同时发送TXCKSB和TXCKSBRD二者,直到在其边带接收器中检测到相同的消息或发生超时(例如,在8ms时)。
8.如果在其边带接收器上成功检测到{SBINIT Out of Reset}边带消息,则UCIe模块停止发送边带消息。在发送任何进一步的边带消息之前,UCIe模块和UCIe模块伙伴二者都会基于
{SBINIT Out of Reset}边带消息中包含的信息应用边带数据/时钟分配(称为工作边带)。
9.任何其他边带消息均在工作边带上被发送和接收。现在可以执行任何边带消息交换。
10.UCIe模块发送边带消息{SBINIT done req}并等待响应。如果成功接收到此消息,则UCIe模块伙伴将用{SBINIT done resq}进行响应。当UCIe模块已经发送和接收{SBINIT done resq}
时,如果边带消息交换成功,则它将退出到主带初始化(main bandinitialization,MBINIT)。在一个或多个实施例中,不支持互连通道冗余和修复的标准封装接口的SBINIT序列如下:
1.UCIe模块启动并继续在其边带发射器(TXDATASB)上发送64UI时钟模式和32UI低电平的迭代。UCIe模块在活动数据持续时间内在其边带时钟(TXCKSB)上发送选通脉冲,否则进行门控。
2.UCIe模块伙伴用传入时钟对传入数据模式进行采样。
3.如果检测到步骤1中模式的两次连续迭代,则认为边带模式检测成功。
4.如果UCIe模块成功检测到该模式,则在步骤1中的模式再进行四次迭代后,它会停止在其边带发射器上发送数据和时钟。这将允许两个UCIe模块在失去复位时的任何时间差异。现在启用UCIe模块边带发射器和接收器以发送和接收边带消息。
5.如果在其边带接收器上未检测到该模式,则UCIe模块将继续在预定持续时间(例如1ms)
内在其发射器上发送该模式并空闲1ms持续8ms。边带接收器在此时间期间被启用。在8ms后发生超时,并且UCIe模块退出至TRAINERROR。如果在任何时候成功检测到模式,如步骤3中所述,则UCIe模块启用边带消息传输,如步骤4中所述,并开始发送边带消息(步骤6)。
6.一旦边带检测成功(步骤5),UCIe模块就启动并继续在TXDATASB上发送{SBINITOut ofReset}边带消息,同时发送TXCKSB,直到在其边带接收器中检测到相同消息或发生超时。
7.如果{SBINIT Out of Reset}边带消息检测成功,则UCIe模块停止发送消息。现在可以执行任何物理层边带消息交换。
8.然后,UCIe模块发送边带消息{SBINIT done req}。如果成功接收到此消息,则每个UCIe模块伙伴都会以{SBINIT done resp}进行响应。当UCIe模块已经发送和接收{SBINIT done resp}
时,它退出到MBINIT。如果边带消息交换成功,则下一个状态是主带初始化(mainbandinitialization,MBINIT)。
现在参考图6A,示出的是说明根据实施例的边带信令的时序图。如图6A所示,时序图600包括边带时钟信号610和边带消息信号620。边带消息格式可以被定义为具有在64个单位间隔(UI)期间传送的32比特或64比特数据的64比特报头。边带消息信号620示出了64比特串行分组。边带数据可以与时钟(选通)信号边沿对齐来发送。边带接口的接收器用选通信号对传入数据进行采样。例如,当数据使用SDR信令时,选通信号的下降沿可用于对数据进行采样。
现在参考图6B,示出了说明根据实施例的边带分组背靠背传输的时序图。如图6B所示,时序图601示出了第一边带分组622随后是第二边带分组624的通信。如图所示,每个分组可以是在64UI持续时间期间发送的64比特串行分组。更具体地,第一边带分组622被发送,其之后又是时钟通道和数据通道二者上的32UI持续时间的逻辑低电平,之后传送了第二边带分组624。在实施例中,这样的信令可以用于各种边带通信,包括边带初始化期间的边带消息。
现在参考图7,示出的是说明根据实施例的封装上具有多协议能力的互连的启动流程的流程图。如图7所示,启动流程700通过以下操作开始:在经由例如UCIe互连(在图7中示出为D2D信道)耦合在一起的两个管芯(管芯0和1)上独立地执行复位流程。因此,第一管芯(管芯0)在阶段710执行独立的复位流程,并且第二管芯(管芯1)也在阶段710执行独立的复位流程。注意,每个管芯可以在不同时间退出其复位流程。接下来,在阶段720,可以执行边带检测和训练。在阶段720中,可以检测和训练边带。在可用通道冗余的高级封装的情况下,可以检测可用通道并将其用于边带消息。注意,包括如本文所描述的边带初始化的该边带检测和训练可以用于检测耦合管芯中活动的存在,因为如上所述,每个管芯可以在不同时间退出复位流程。在一个或多个实施例中,退出失去复位并发起链路训练的触发是检测到边带消息模式。当在链路启动期间进行训练时,就像当物理层从复位状态转换出来时一样,允许硬件多次尝试训练。在此启动操作期间,同步可以发生,因为两个管芯的每个状态和子状态进入和退出都通过管芯之间的4路边带消息握手来确保处于锁步状态(lockstep)。
在阶段730,可以在工作边带上执行训练参数交换,并且发生主带训练。在阶段730,主带被初始化、修复和训练。最后在阶段740,协议参数交换可以发生在边带上。在阶段740中,可以通过确定本地管芯能力、与远程管芯的参数交换以及将对应的协议层与管芯的D2D适配器耦合的FDI的启动来初始化整个链路。在实施例中,主带默认以主带初始化中的最低允许数据速率进行初始化,其中执行修复和反转检测。然后,链路速度转变为通过参数交换检测到的最高通用数据速率。在链路初始化之后,可以使物理层能够经由主带执行协议flit传输。
在一个或多个实施例中,不同类型的分组可以经由边带接口进行通信,并且可以包括:(1)寄存器访问,其可以是配置(CFG)或存储器映射读取或写入并且可以是32比特或64比特(b);(2)没有数据的消息,其可以是链路管理(LM)或供应商定义的分组,并且不携带附加的数据有效载荷;(3)带有数据的消息,其可以是参数交换(PE)、链路训练相关的或供应商定义的,并且携带64比特的数据。分组可以携带5比特操作码、3比特源标识符(sourceidentifier,srcid)和3比特目的地标识符(destination identifier,dstid)。5比特操作码指示分组类型,以及它是否携带32比特数据或64比特数据。下面的表2给出了根据实施例的操作码编码到分组类型的映射。
表2映射到分组类型的操作码编码
操作码编码 | 分组类型 |
00000b | 32比特存储器读取 |
00001b | 32比特存储器写入 |
00100b | 32比特配置读取 |
00101b | 32比特配置写入 |
01000b | 64比特存储器读取 |
01001b | 64比特存储器写入 |
10000b | 没有数据的完成 |
10001b | 带有32比特数据的完成 |
11001b | 带有64比特数据的完成 |
10010b | 没有数据的消息 |
11011b | 带有64比特数据的消息 |
其他编码 | 预留 |
下面的表3中描绘的源/目的地标识符(srcid/dstid)编码可以给出源标识符和目的地标识符的编码。可能不允许来自链路一侧的协议层直接访问远程链路伙伴的协议层(这种通信可以经由主带)。在实施例中,消息发起者有责任确保其在srcid/dstid中设置正确的编码。例如,如果D2D适配器正在向其远程链路伙伴发送消息,则它可以将srcid设置为远程D2D适配器,并且其可以将dstid设置为远程D2D适配器。因此,可能不会出现srcid为“本地”但dstid为“远程”的情况。
表3源/目的地标识符编码
如上所述,一种类型的边带分组用于寄存器访问请求。如表4所示,寄存器访问请求的字段描述可以给出除操作码、srcid和dstid之外的字段的描述,并且表5示出了不同请求的地址字段映射。
表4.寄存器访问请求的字段描述
表5针对不同请求的Addr字段(例如,表6的)的映射
另一种类型的边带分组是寄存器访问完成。表6的完成的字段描述提供了完成的示例字段描述。
表6完成的字段描述
/>
另一种边带分组类型是没有数据有效载荷的消息。此类消息可以是例如链路管理分组、参数交换分组、NOP或供应商定义的消息分组。对于链路管理分组和NOP,16比特消息信息(MsgInfo)可能是0000h。它可以是针对供应商定义的消息由供应商定义的。对于参数交换分组,可以携带通告参数的能力信息,或者协商后的最终化的配置参数。
操作码、srcid、dstid、dp、cp和ak字段的定义可以与寄存器访问分组相同。各种编码可以如表7或表8所示。
表7Msgcode和MsgSubcode编码
/>
表8D2D适配器能力的MsgInfo比特(通告或最终化的)
比特 | 描述 |
0 | Raw_Mode |
1 | Optimized_Mode_Three_Lanes |
2 | Optimized_Mode_Two_Lanes |
3 | CXL |
4 | PCIe |
5 | 重试 |
6 | Two_Protocol_Stacks |
7 | 奇偶校验 |
8 | 流送 |
[15:9] | 预留 |
具有数据有效载荷的消息可以包括与寄存器访问分组相同的操作码、srcid、dstid、dp、cp和ak字段。
流控制和数据完整性边带分组可以跨FDI、RDI或UCIe边带链路传输。其中每一个都有独立的流控制。对于与FDI或RDI相关联的每个发射器,可以使用接口的设计时间参数来确定接收器通告的信用数,最大为32个信用。每个信用对应于64比特报头和64比特潜在相关联数据。因此,所有边带分组都只有一种类型的信用,无论它们携带多少数据。每个发射器/接收器对都有一个独立的信用循环。例如,在RDI上,对于从适配器传输到物理层的边带分组,信用从物理层通告到适配器;并且对于从物理层传输到适配器的边带分组,信用也从适配器通告到物理层。发射器在发送寄存器访问请求和消息之前检查可用的信用。发射器在发送寄存器访问完成之前不检查信用,并且接收器保证针对任何寄存器访问完成分组的无条件接收(sink)。携带请求或响应的消息会消耗FDI和RDI上的信用,但接收器保证它们能够向前推进,并且不会被阻止在寄存器访问请求之后。RDI和FDI二者都为跨这些接口的边带信用返回给出专用信号。与RDI和FDI相关联的所有接收器都会检查接收到的消息中是否有数据或控制奇偶校验错误,并且这些错误会映射到不可纠正的内部错误(Uncorrectable Internal Error,UIE),并将RDI转换到链路错误(LinkError)状态。
现在参考图8,示出了根据实施例的链路训练状态机的流程图。如图8所示,方法800是例如由逻辑物理层电路装置执行的链路初始化的示例,该逻辑物理层电路装置可以包括链路状态机。表9是根据实施例的链路训练状态机的状态的高级描述,并且在下面描述在每个状态中执行的细节和动作。
表9
参考图8,方法800开始于复位状态810。在实施例中,PHY在预定的最小持续时间(例如,4ms)内停留在复位状态,以允许包括锁相环(phase lock loop,PLL)的各种电路装置稳定。当供电装置稳定、边带时钟可用并正在运行、主带和管芯到管芯适配器时钟稳定且可用、主带时钟设置为最慢IO数据速率(例如,对于4GT/s为2GHz),并且已经发生了链路训练触发,可以退出该状态。接下来控制传递到边带初始化(sideband initialization,SBINIT)状态820,其中可以执行边带初始化。在此状态下,边带接口将被初始化并修复(如果适用)。在此状态期间,主带发射器可以是三态的并且允许主带接收器被禁用。
仍参考图8,控制从边带初始化状态820传递到主带初始化(main bandinitialization,MBINIT)状态830,其中执行主带初始化。在此状态下,主带接口被初始化并修复或降级(如果适用)。主带上的数据速率可以设置为支持的最低数据速率(例如,4GT/s)。对于高级封装,可以执行接口互连修复。MBINIT中的子状态允许检测和修复数据、时钟、轨道和有效通道。对于不需要通道修复的标准封装接口,子状态用于以最低数据速率检查功能,并在需要时执行宽度降级。
接下来,在框840,进入主带训练(main band training,MBTRAIN)状态840,其中可以执行主带链路训练。在此状态下,设置运行速度并执行时钟到数据居中。在更高的速度下,可以在子状态下执行附加的校准,如接收器时钟校正、发送和接收去偏斜,以确保链路性能。模块进入每个子状态和退出每个状态都通过边带握手。如果不需要子状态内的特定动作,则允许UCIe模块通过边带握手退出该子状态,而不执行该子状态的操作。在一个或多个实施例中,该状态对于高级和标准封装接口可以是常见的。
然后控制进行到框850,其中发生链路初始化(link initialization,LINKIN IT)状态,其中可以执行链路初始化。在此状态下,管芯到管芯适配器在RDI上进入活动状态之前完成初始链路管理。一旦RDI处于活动状态,PHY就会从链路控制寄存器中清除其“启动UCIe链路训练”比特的副本。在实施例中,线性反馈移位寄存器(linear feedback shiftregister,LFSR)在进入该状态时被复位。在一个或多个实施例中,这一状态对于高级和标准封装接口可以是常见的。
最后,控制传递到活动状态860,其中通信可以在正常操作中发生。更具体地,来自上层的分组可以在两个管芯之间交换。在一个或多个实施例中,可以使用加扰器LFSR对处于该状态的所有数据进行加扰。
仍参考图8,注意,在活动状态860期间,可以发生到重新训练(PHYRETRAIN)状态870的转变或者可以发生低功率(L2/L1)链路状态880。如图所示,根据低功率链路状态的级别,退出可以进行到主带训练状态840或复位状态810。在低功率链路状态中,比ACTIVE状态中的动态时钟门控消耗更低的功率。当RDI已转变为电源管理状态时,可以进入该状态。当本地适配器请求RDI上的活动或远程链路伙伴请求L1退出时,PHY退出到MBTRAIN.SPEEDIDLE状态。在一个或多个实施例中,L1退出与RDI上的对应L1状态退出转变协调。当本地适配器请求RDI上的活动状态或远程链路伙伴请求L2退出时,PHY退出到RESET状态。注意,L2退出可以与RDI上对应的L2状态退出转变协调。
如图8进一步所示,如果在任何启动状态期间发生错误,则控制传递到框890,其中可能发生训练错误状态。由于任何致命或非致命事件,该状态被用作过渡状态,以使状态机返回到RESET状态。如果边带处于活动状态,则为链路伙伴执行边带握手,以从SBINIT以外的任何状态进入TRAINERROR状态。
在一个实施例中,管芯可以出于多种原因进入PHYRETRAIN状态。触发可以通过适配器引导的PHY重新训练或PHY发起的PHY重新训练。本地PHY在检测到有效成帧错误时发起重新训练。远程管芯可以请求PHY重新训练,这导致本地PHY在接收到该请求时进入PHY重新训练。如果在MBTRAIN.LINKSPEED状态期间在运行时链路测试控制寄存器中检测到变化,则也可以进入该重新训练状态。要理解的是,虽然在图8的实施例中以该高级别示出,但许多变化和替代是可能的。
现在参考图9,示出了根据实施例的主带初始化的进一步细节的流程图。方法900可以由链路状态机来实现以执行主带初始化。如图所示,该初始化通过多个状态进行,包括参数交换状态910、校准状态920、修复时钟状态930、修复验证状态940、反转主带状态950以及最后的主带修复状态960。在完成该主带初始化之后,控制进行到主带训练。
在参数交换状态910中,可以发生参数交换以设置最大协商速度和其他PHY设置。在实施例中,可以与链路伙伴交换以下参数(例如,在每个模块的基础上):电压摆幅;最大数据速率;时钟模式(例如,选通或连续时钟);时钟相位;以及模块ID。在状态920中,可以执行任何所需的校准(例如,发射占空比校正、接收器偏移和Vref校准)。
接下来,在框930处,可以进行对高级封装接口的时钟和轨道通道的检测和修复(如果需要)以及对标准封装接口的时钟和轨道通道的工作检查。在框940处,模块可以将时钟相位设置在其主带发射器上的数据UI的中心处。模块伙伴用接收到的转发时钟对接收到的有效信号进行采样。在此状态期间,所有数据通道都可以保持在低电平。此状态可用于检测有效通道并对有效通道应用修复(如果需要)。
仍参考图9,仅当时钟和有效通道工作时才进入块950。在此状态下,检测到数据通道反转。模块的所有发射器和接收器均已启用。该模块将转发的时钟相位设置在其主带上的数据UI的中心。模块伙伴用传入转发时钟对传入数据进行采样。表10所示的16比特“每通道ID”模式(未加扰)是使用对应通道的通道ID的通道特定模式。表11示出了通道0和通道31的“每通道ID”模式的示例。
表10-每通道ID模式
表11-每通道ID模式示例
在一个实施例中,高级封装接口和标准封装接口的反转主带序列如下:
1.模块发送边带消息{MBINIT.REVERSALMB init req}。当准备好接收“每通道ID”模式并执行每通道模式比较时,模块伙伴以{MBINIT.REVERSALMB init resp}进行响应。
2.在接收到{MBINIT.REVERSALMB init resp}边带消息时,模块发送
{MBINIT.REVERSALMB clear error req}边带消息。在接收到此消息时,模块伙伴清除任何先前的错误并以{MBINIT.REVERSALMB clear error resp}进行响应。在接收到
{MBINIT.REVERSALMB clear error resp}后,模块在所有N个数据通道上发送128次迭代的每通道ID模式(LSB在前),其中在有效通道上有正确的有效成帧以及转发的时钟。对于高级封装接口,N为68(64数据+4RD),并且对于标准封装接口,N为16。
3.模块伙伴对其所有N个通道上的接收器执行每通道比较。如果检测到至少16次连续迭代的“每通道ID”模式,则认为对通道的检测成功。模块伙伴记录其接收通道的检测结果,以用于通道反转检测。
4.发送128次迭代的“每通道ID”模式后,模块停止发送该模式并发送{MBINIT.REVERSALMBresult req}边带消息以获取记录的结果。
5.模块伙伴停止比较,并以每个通道结果具有N比特(对于高级封装接口为68比特并且对于标准封装接口为16比特)的{MBINIT.REVERSALMB result resp}边带消息进行响应。
6.如果大多数通道显示成功(因为一些通道可能需要修复),则不需要通道反转,并且发生步骤11。
7.否则,如果来自步骤5的结果显示大多数通道不成功,则模块将在其发射器上应用通道反转。
8.在其发射器上的通道反转应用后,模块重复步骤2-5。
9.如果大多数通道显示成功,则需要通道反转。如果被应用,则为设备操作的其余部分保留通道反转,并发生步骤11。
10.否则,如果来自步骤8的结果显示大多数通道不成功,则模块在完成TRAINERROR握手后退出到TRAINERROR状态。
11.模块发送{MBINlT.ReversaIMB done req}边带消息,并且模块伙伴以{MBINlT.RversaIMBdone resp}进行响应。当模块已发送并接收{MBIN1T.ReversaIMB doneresp}边带消息时,其进行到下一个主带初始化状态(例如,REPAIRMB状态960)。
仍参照图9,在块960处,仅在通道反转检测和应用成功之后才进入块960,启用了模块的所有发射器和接收器。该模块将时钟相位设置在其主带的数据UI的中心处。模块伙伴用其主带接收器上的传入转发时钟对传入数据进行采样。在此状态下,如果对于高级封装接口并且对于标准封装接口的工作检查和宽度降级是需要的,则会检测并修复主带通道。换句话说,如果在通道中检测到错误,则可以经由冗余通道启用冗余电路装置。
在示例实施例中,在启动和操作期间可以使用若干降级技术来使得链路能够找到操作设置。首先,当检测到错误(在初始启动或工作操作期间)并且不需要修复时,可能会发生速度降级。这种速度降级机制可能会导致链路进入下一个较低的允许频率;重复此操作,直到建立稳定的链路。其次,如果修复不可能(在没有修复资源的标准封装链路的情况下),则可能发生宽度降级,可以允许宽度降级到半宽度配置,作为示例。例如,16通道接口可配置为作为8通道接口操作。
现在参考图10,示出了根据实施例的主带训练的流程图。如图10所示,方法1000可以由链路状态机来实现以执行主带训练。在主带训练中,主带数据速率设置为两个连接设备的最高通用数据速率。数据到时钟训练、抗扭斜(deskew)和Vref训练可以使用多个子状态来执行。如图10所示,主带训练通过多个状态或子状态进行。如图所示,主带训练通过执行有效参考电压训练状态1005开始。在状态1005中,对传入有效信号进行采样的接收器参考电压(Vref)被优化。主带上的数据速率继续处于支持的最低数据速率。模块伙伴将转发的时钟相位设置为其主带发射器上的数据UI的中心。接收器模块用转发的时钟对有效信号上的模式进行采样。在有效通道参考电压训练期间,所有数据通道均保持低电平。控制接下来进行到数据参考电压状态1010,其中对传入数据进行采样的接收器参考电压(Vref)被优化,同时数据速率继续处于支持的最低数据速率(例如,4GT/s)。发射器将转发的时钟相位设置在数据UI的中心。此后,出现怠速状态1015,其中在该电怠速状态下可以允许频率改变;更具体地,数据速率可以被设置为在先前状态下决定的最大公共数据速率。此后,可以在发射器和接收器校准状态下更新电路装置参数(1020和1025)。
仍然参考图10,各种训练状态1030、1035、1040和1045可以继续分别训练有效到时钟训练参考电压电平、完全数据到时钟训练和数据接收器参考电压。在状态1030中,为了确保有效信号工作,在数据通道训练之前执行有效到时钟训练。接收器用转发的时钟对有效信号上的模式进行采样。在状态1035中,模块可以优化参考电压(Vref)以在操作数据速率下对传入有效信号进行采样。在状态1040中,模块使用LFSR模式执行完全数据到时钟训练(包括有效信号)。在状态1045中,模块可以优化其数据接收器上的参考电压(Vref)以优化以操作数据速率对传入数据的采样。
仍参考图10,此后可能发生接收器抗扭斜状态1050,这是接收器发起的训练步骤,用于让接收器执行通道到通道抗扭斜,以改善定时余量。接下来发生另一个数据训练状态1055,其中模块可以使时钟重新居中以聚合数据(在模块伙伴的接收器执行了每通道抗扭斜的情况下)。控制接下来传递到链路速度状态1060,其中在状态1055中设置最终采样点之后可以检查操作数据速率下的链路稳定性。如果在数据速率下不满足链路性能,则速度降级到下一个支持的较低数据速率并再次执行训练。取决于这种状态的结果,主带训练可以结束,其中控制接下来传递到链路初始化。否则,可能发生状态1015下的链路速度改变或修复状态1065。注意,进入状态1015和1065中也可以从低功率状态(例如,L1链路功率状态)或重新训练状态发生。应理解的是,虽然在图10的实施例中以如此高的级别示出,但是许多变化和替代是可能的。
实施例可以支持两种广泛的使用模型。第一个是封装级集成,用于提供节能和成本效益高的性能。板级附接的组件(例如,存储器、加速器、网络设备、调制解调器等)可以以封装级集成,其适用性从手持式到高端服务器。在此类用例中,来自潜在多个来源的芯片可以通过不同的封装选项进行连接,甚至在同一封装上也是如此。
第二种用途是使用不同类型的介质(例如,光纤、电缆、毫米波)提供封装外连接性,使用UCIe重定时器来在机架或pod级别传输底层协议(例如,PCIe、CXL)以用于使用负载存储语义实现资源池化、资源共享和/或消息传递,超过节点级别到机架/pod级别,以在边缘和数据中心得到更好的节能和成本效益高的性能。
如上所述,实施例可以在数据中心用例中实现,例如与机架或pod结合。例如,来自不同计算机箱的多个计算节点可以连接到CXL交换机。CXL交换机转而可以连接到多个CXL加速器/Type-3存储器设备,CXL加速器/Type-3存储器设备可以放置在一个或多个单独的抽屉中。
现在参考图11,示出了根据实施例的另一个示例系统的框图。在图11中,系统1100可以是具有计算抽屉形式的多个主机的基于机架的服务器的全部或一部分,所述主机可以经由一个或多个交换机耦合到池化存储器。
如图所示,存在多个主机1130-1-n(本文中也称为“主机1130”)。每个主机可以被实现为具有一个或多个SoC、存储器、存储装置、接口电路装置等的计算抽屉。在一个或多个实施例中,每个主机1130可以包括与不同缓存一致性域相对应的一个或多个虚拟层次结构。主机1130可以耦合到交换机1120,交换机1120可以被实现为UCIe或CXL交换机(例如,CXL 2.0(或更晚版本)交换机)。在实施例中,每个主机1130可以使用封装外互连(例如,通过至少一个UCIe重定时器(其可以存在于主机1130和交换机1120之一或两者中)运行CXL协议的UCIe互连)耦合到交换机1120。
交换机1120可以耦合到多个设备1110-1-x(本文也称为“设备1110”),每个设备可以是存储器设备(例如,类型3CXL存储器扩展设备)和/或加速器。在图11的说明中,每个设备1110被示出为具有任意数量的存储器区域(例如,定义的分区、存储器范围等)的类型3存储器设备。取决于配置和使用情况,某些设备1110可以包括分配给特定主机的存储器区域,而其他设备可以包括被指定为共享存储器的至少一些存储器区域。尽管实施例不限于此,但是设备1110中包括的存储器可以用任何类型的计算机存储器(例如,动态随机存取存储器(dynamic random-access memory,DRAM)、静态随机存取存储器(static random-accessmemory,SRAM)、非易失性存储器(non-volatile memory,NVM)、DRAM和NVM的组合等)来实现。
现在参考图12,示出了根据另一个实施例的系统(例如边缘平台)的框图。如图12所示,多处理器系统1200包括经由互连1250耦合的第一处理器1270和第二处理器1280,互连1250可以是根据运行一致性协议的实施例的UCIe互连。如图12所示,处理器1270和1280中的每一个可以是多核处理器,包括代表性的第一和第二处理器核心(即,处理器核心1274a和1274b以及处理器核心1284a和1284b)。
在图12的实施例中,处理器1270和1280还包括点对点互连1277和1287,它们经由互连1242和1244(根据实施例,其可以是UCIe链路)耦合到交换机1259和1260。交换机1259、1260转而耦合到池化存储器1255和1265(例如,经由UCIe链路)。
仍参考图12所示,第一处理器1270还包括存储器控制器中枢(memory controllerhub,MCH)1272以及点对点(point-to-point,P-P)接口1276和1278。类似地,第二处理器1280包括MCH 1282以及P-P接口1286和1288。如图12所示,MCH 1272和1282将处理器耦合到相应的存储器,即存储器1232和存储器1234,其可以是本地附接到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器1270和第二处理器1280可以分别经由P-P互连1276和1286耦合到芯片组1290。如图12所示,芯片组1290包括P-P接口1294和1298。
此外,芯片组1290包括接口1292以通过P-P互连1239将芯片组1290与高性能图形引擎1238耦合。如图12所示,各种输入/输出(input/output,I/O)设备1214可以与将第一总线1216耦合到第二总线1220的总线桥1218一起耦合到第一总线1216。各种设备可以耦合到第二总线1220,在一个实施例中各种设备包括例如键盘/鼠标1222、通信设备1226和数据存储单元1228(例如,磁盘驱动器或可以包括代码1230的其他大容量存储设备)。此外,音频I/O 1224可以耦合到第二总线1220。
现在参考图13,示出了根据另一个实施例的系统1300的框图。如图13所示,系统1300可以是任何类型的计算设备,并且在一个实施例中可以是服务器系统。在图13的实施例中,系统1300包括多个CPU 1310a、b,这些CPU 1310a、b转而耦合到相应的系统存储器1320a、b,在实施例中,系统存储器1320a、b可以被实现为诸如双倍数据速率(doubledatarate,DDR)存储器、持久存储器或其他类型的存储器之类的DIMM。注意,CPU 1310可以经由互连系统1315(例如,UCIe或实现一致性协议的其他互连)耦合在一起。
为了使得一致加速器设备和/或智能适配器设备能够通过潜在的多个通信协议耦合到CPU 1310,可以存在多个互连1330a1-b2。根据实施例,每个互连1330可以是UCIe链路的给定实例。
在所示的实施例中,相应CPU 1310耦合到对应的现场可编程门阵列(fieldprogrammable gate array,FPGA)/加速器设备1350a、b(在一个实施例中,其可以包括GPU)。另外,CPU 1310还耦合到智能NIC设备1360a、b。智能NIC设备1360a、b转而耦合到交换机1380a、b(例如,根据实施例的CXL交换机),交换机1380a、b转而耦合到池化存储器1390a、b(例如持久存储器)。在实施例中,图13中所示的各种组件可以实现电路装置来执行本文描述的技术。
以下示例涉及进一步的实施例。
在一个示例中,一种装置,包括:第一管芯,所述第一管芯包括:管芯到管芯适配器,所述管芯到管芯适配器用于与协议层和物理层电路装置进行通信,其中所述管芯到管芯适配器用于接收消息信息,该消息信息包括第一互连协议的第一信息;以及物理层电路装置,物理层电路装置耦合到管芯到管芯适配器。物理层电路装置用于接收所述第一信息并经由互连将其输出到第二管芯。该物理层电路装置包括:耦合到第一边带数据通道的第一边带数据接收器和耦合到第一边带时钟通道的第一边带时钟接收器;以及耦合到第二边带数据通道的第二边带数据接收器和耦合到第二边带时钟通道的第二边带时钟接收器,其中所述物理层电路装置用于分配工作边带,所述工作边带包括:所述第一边带数据通道或所述第二边带数据通道中的一个;以及所述第一边带时钟通道或所述第二边带时钟通道中的一个。
在示例中,物理层电路装置:响应于边带初始化期间生成的第一结果,将所述第一边带数据通道和所述第一边带时钟通道分配为所述工作边带;以及响应于所述边带初始化期间生成的第二结果,将所述第一边带数据通道和所述第二边带时钟通道分配为所述工作边带。
在示例中,在边带初始化期间,物理层电路装置用于禁用主带接口。
在示例中,第二边带数据通道和第二边带时钟通道包括冗余边带对。
在示例中,物理层电路装置用于接收包括工作分配的边带消息,并且响应于所述工作分配来分配冗余边带通道作为所述工作边带的一部分。
在示例中,该装置还包括封装,该封装包括所述第一管芯和所述第二管芯,其中所述互连包括用于耦合所述第一管芯和所述第二管芯的封装上互连。
在示例中,该装置还包括封装衬底,该封装衬底包括适配在硅桥内的所述封装上互连。
在示例中,该装置还包括中介层,该中介层包括封装上互连。
在示例中,互连包括具有UCIe架构的具有多协议能力的互连,所述第一互连协议包括PCIe协议的flit模式,并且所述互连用于进一步传送第二互连协议的第二信息,所述第二互连协议包括CXL协议的flit模式。
在另一示例中,一种方法包括:在包括第一管芯和第二管芯的封装的所述第一管芯中,经由第一边带数据通道和第二边带数据通道从第二管芯接收具有预定模式的边带初始化分组;在所述第一管芯中经由第一边带时钟通道和第二边带时钟通道从所述第二管芯接收边带时钟信号;用经由所述第一边带时钟通道接收的边带时钟信号和经由所述第二边带时钟通道接收的边带时钟信号对经由所述第一边带数据通道接收的边带初始化分组进行采样,以生成第一结果和第二结果;用经由所述第一边带时钟通道接收的边带时钟信号和经由所述第二边带时钟通道接收的边带时钟信号对经由所述第二边带数据通道接收的边带初始化分组进行采样,以生成第三结果和第四结果;基于所述第一结果、所述第二结果、所述第三结果或所述第四结果中的至少一个:将所述第一边带数据通道或所述第二边带数据通道中的一个分配为工作边带数据通道;以及将所述第一边带时钟通道或所述第二边带时钟通道中的一个分配为工作边带时钟通道;以及向所述第二管芯发送边带消息以指示所述工作边带数据通道和所述工作边带时钟通道的分配。
在示例中,该方法还包括:通过利用经由所述第一边带时钟通道接收的边带时钟信号对经由所述第一边带数据通道接收的边带初始化分组进行采样,响应于检测到所述预定模式来生成具有第一值的所述第一结果;以及通过利用经由所述第一边带时钟通道接收的边带时钟信号对经由所述第一边带数据通道接收的边带初始化分组进行采样,响应于没有检测到所述预定模式来生成具有第二值的所述第一结果。
在示例中,该方法还包括:基于所述第一结果具有所述第一值:分配包括所述第一边带数据通道和所述第一边带时钟通道的工作边带;以及分配包括所述第二边带数据通道和所述第二边带时钟通道的冗余边带。
在示例中,第一边带数据通道和第二边带数据通道中的另一个以及第一边带时钟通道和第二边带时钟通道中的另一个包括冗余边带对。
在示例中,该方法还包括:经由第三边带数据通道和第四边带数据通道从所述第一管芯向所述第二管芯发送具有所述预定模式的边带初始化分组的多次迭代;以及在边带初始化分组的多次迭代期间经由第三边带时钟通道和第四边带时钟通道从所述第一管芯向所述第二管芯发送所述边带时钟信号。
在示例中,发送所述多次迭代包括:发送所述边带初始化分组的多次迭代中的第一边带初始化分组;在多个单位间隔内发送数据低电平信号;以及发送所述边带初始化分组的多次迭代中的第二边带初始化分组。
在示例中,该方法还包括:在检测到所述预定模式之后,停止发送所述边带初始化分组的所述多次迭代。
在另一示例中,包括指令的计算机可读介质用于执行以上示例中的任一个的方法。
在另一示例中,包括数据的计算机可读介质将由至少一台机器使用来制造至少一个集成电路以执行上述示例中的任一个的方法。
在又一示例中,一种装置包括用于执行以上示例中的任一个的方法的单元。
在又一示例中,封装包括:第一管芯,所述第一管芯包括CPU和协议栈,该协议栈包括:管芯到管芯适配器,所述管芯到管芯适配器用于经由FDI与协议层通信,并经由RDI与物理层电路装置通信,其中所述管芯到管芯适配器用于传送消息信息,该消息信息包括第一互连协议的第一信息;以及物理层电路装置,该物理层电路装置经由所述RDI耦合到所述管芯到管芯适配器。该物理层电路装置用于接收第一信息并且经由互连将所述第一信息输出到第二管芯,并且用于:对所述互连的边带接口执行边带初始化,以用于:检测所述第二管芯的活动的存在;训练所述边带接口;以及经由所述边带接口发送和接收失去复位消息;以及执行所述互连的主带接口的主带初始化。该封装还可以包括第二管芯,该第二管芯经由互连耦合至第一管芯。
在示例中,在所述边带初始化期间,所述物理层电路装置用于:将多个第一边带分组发送到所述第二管芯,所述多个第一边带分组包括预定数据模式;从所述第二管芯接收多个第二边带分组,所述多个第二边带分组包括所述预定数据模式;在所述多个第二边带分组中的至少两个中检测到预定数据模式之后:使边带接收器能够接收第一边带消息;以及使边带发射器能够发送第二边带消息。
在示例中,物理层电路装置用于在第一管芯的复位流程之后执行边带初始化,复位流程独立于第二管芯的复位流程。
在示例中,第二管芯包括加速器,其中所述第一管芯用于根据PCIe协议的flit模式或CXL协议的flit模式中的至少一个与所述第二管芯进行通信。
在又一示例中,一种装置包括:用于经由第一边带数据通道单元和第二边带数据通道单元接收具有预定模式的边带初始化分组的单元;用于经由第一边带时钟通道单元和第二边带时钟通道单元接收边带时钟信号的单元;用于利用经由所述第一边带时钟通道单元接收的边带时钟信号和经由所述第二边带时钟通道单元接收的边带时钟信号对经由所述第一边带数据通道单元接收的边带初始化分组进行采样以用于生成第一结果和第二结果的单元;用于利用经由所述第一边带时钟通道单元接收的边带时钟信号和经由所述第二边带时钟通道单元接收的边带时钟信号对经由所述第二边带数据通道单元接收的边带初始化分组进行采样以用于生成第三结果和第四结果的单元;用于基于第一结果、第二结果、第三结果或第四结果中的至少一个将所述第一边带数据通道单元或所述第二边带数据通道单元中的一个分配为工作边带数据通道单元的单元;用于基于所述第一结果、所述第二结果、所述第三结果或所述第四结果中的至少一个将所述第一边带时钟通道单元或所述第二边带时钟通道单元中的一个分配为工作边带时钟通道单元的单元;以及用于发送边带消息以指示所述工作边带数据通道单元和所述工作边带时钟通道单元的分配的单元。
在示例中,该装置还包括:用于通过利用经由所述第一边带时钟通道单元接收的边带时钟信号对经由所述第一边带数据通道单元接收的边带初始化分组进行采样、响应于检测到预定模式而生成具有第一值的第一结果的单元;以及用于通过利用经由所述第一边带时钟通道单元接收的边带时钟信号对经由所述第一边带数据通道单元接收的边带初始化分组进行采样、响应于没有检测到所述预定模式而生成具有第二值的第一结果的单元。
在示例中,该装置还包括:用于基于所述第一结果具有所述第一值来分配工作边带的单元,所述工作边带包括所述第一边带数据通道单元和所述第一边带时钟通道单元;以及用于基于所述第一结果具有所述第一值来分配冗余边带的单元,所述冗余边带包括所述第二边带数据通道单元和第二边带时钟通道单元。
应理解的是,上述示例的各种组合是可能的。
注意,术语“电路”和“电路装置”在本文中可互换使用。如本文所使用的,这些术语和术语“逻辑”用于单独或以任何组合指代模拟电路装置、数字电路装置、硬连线电路装置、可编程电路装置、处理器电路装置、微控制器电路装置、硬件逻辑电路装置、状态机电路装置和/或任何其他类型的物理硬件组件。实施例可以用在许多不同类型的系统中。例如,在一个实施例中,通信设备可以被布置为执行本文描述的各种方法和技术。当然,本发明的范围不限于通信设备,而是其他实施例可以涉及用于处理指令的其他类型的装置,或者包括指令的一种或多种机器可读介质,所述指令响应于在通信设备上被执行而使得该设备执行本文描述的方法和技术中的一种或多种。
实施例可以用代码来实现,并且可以存储在其上存储有指令的非暂时性存储介质上,所述指令可以用于对系统进行编程以执行指令。实施例还可以以数据来实现并且可以存储在非暂时性存储介质上,如果该非暂时性存储介质被至少一台机器使用,则使得该至少一台机器制造至少一个集成电路以执行一项或多项操作。又一些实施例可以在计算机可读存储介质中实现,该计算机可读存储介质包括当被制造到SoC或其他处理器中时用于配置SoC或其他处理器以执行一个或多个操作的信息。存储介质可以包括但不限于任何类型的磁盘,包括软盘、光盘、固态驱动器(solid state drive,SSD)、光盘只读存储器(compactdisk read-only memories,CD-ROM)、可重写光盘(compact disk rewritables,CD-RW)和磁光盘、半导体器件(例如只读存储器(read-only memories,ROM))、随机存取存储器(random access memories,RAM)(例如动态随机存取存储器(dynamic random accessmemories,DRAM)、静态随机存取存储器(static random access memories,SRAM))、可擦除可编程只读存储器(erasable programmable read-only memories,EPROM)、闪存、电可擦除可编程只读存储器(electrically erasable programmable read-only memories,EEPROM)、磁卡或光卡或任何其他类型的适合存储电子指令的介质。
虽然已经关于有限数量的实施方式描述了本公开,但是受益于本公开的本领域技术人员将意识到由此得到的多种修改和变化。所附权利要求旨在涵盖所有此类修改和变化。
Claims (25)
1.一种装置,包括:
第一管芯,所述第一管芯包括:
管芯到管芯适配器,所述管芯到管芯适配器用于与协议层和物理层电路装置进行通信,其中,所述管芯到管芯适配器用于接收消息信息,所述消息信息包括第一互连协议的第一信息;以及
所述物理层电路装置,所述物理层电路装置耦合到所述管芯到管芯适配器,其中,所述物理层电路装置用于接收所述第一信息并且经由互连将所述第一信息输出到第二管芯,
其中,所述物理层电路装置包括:
用于耦合到第一边带数据通道的第一边带数据接收器和用于耦合到第一边带时钟通道的第一边带时钟接收器;以及
用于耦合到第二边带数据通道的第二边带数据接收器和用于耦合到第二边带时钟通道的第二边带时钟接收器,
其中,所述物理层电路装置用于分配工作边带,所述工作边带包括:
所述第一边带数据通道或所述第二边带数据通道中的一个;以及
所述第一边带时钟通道或所述第二边带时钟通道中的一个。
2.根据权利要求1所述的装置,其中,所述物理层电路装置用于:
响应于在边带初始化期间生成的第一结果,将所述第一边带数据通道和所述第一边带时钟通道分配为所述工作边带;以及
响应于在所述边带初始化期间生成的第二结果,将所述第一边带数据通道和所述第二边带时钟通道分配为所述工作边带。
3.根据权利要求2所述的装置,其中,在所述边带初始化期间,所述物理层电路装置用于禁用主带接口。
4.根据权利要求1所述的装置,其中,所述第二边带数据通道和所述第二边带时钟通道包括冗余边带对。
5.根据权利要求1所述的装置,其中,所述物理层电路装置用于:接收包括工作分配的边带消息,并且响应于所述工作分配而分配冗余边带通道作为所述工作边带的一部分。
6.根据权利要求1-5中任一项所述的装置,还包括封装,所述封装包括所述第一管芯和所述第二管芯,其中,所述互连包括用于耦合所述第一管芯和所述第二管芯的封装上互连。
7.根据权利要求6所述的装置,还包括封装衬底,所述封装衬底包括适配在硅桥内的所述封装上互连。
8.根据权利要求6所述的装置,还包括中介层,所述中介层包括所述封装上互连。
9.根据权利要求1-8中任一项所述的装置,其中,所述互连包括具有通用小芯片快速互连(UCIe)架构的具有多协议能力的互连,所述第一互连协议包括外围组件快速互连(PCIe)协议的flit模式,并且所述互连进一步用于传送第二互连协议的第二信息,所述第二互连协议包括计算快速链路(CXL)协议的flit模式。
10.一种方法,包括:
在包括第一管芯和第二管芯的封装的所述第一管芯中,经由第一边带数据通道和第二边带数据通道从所述第二管芯接收具有预定模式的边带初始化分组;
在所述第一管芯中经由第一边带时钟通道和第二边带时钟通道从所述第二管芯接收边带时钟信号;
用经由所述第一边带时钟通道接收的边带时钟信号和经由所述第二边带时钟通道接收的边带时钟信号对经由所述第一边带数据通道接收的边带初始化分组进行采样,以生成第一结果和第二结果;
用经由所述第一边带时钟通道接收的边带时钟信号和经由所述第二边带时钟通道接收的边带时钟信号对经由所述第二边带数据通道接收的边带初始化分组进行采样,以生成第三结果和第四结果;
基于所述第一结果、所述第二结果、所述第三结果或所述第四结果中的至少一个:
将所述第一边带数据通道或所述第二边带数据通道中的一个分配为工作边带数据通道;以及
将所述第一边带时钟通道或所述第二边带时钟通道中的一个分配为工作边带时钟通道;以及
向所述第二管芯发送边带消息以指示所述工作边带数据通道和所述工作边带时钟通道的所述分配。
11.根据权利要求10所述的方法,还包括:
通过用经由所述第一边带时钟通道接收的边带时钟信号对经由所述第一边带数据通道接收的边带初始化分组进行采样,响应于检测到所述预定模式而生成具有第一值的所述第一结果;以及
通过用经由所述第一边带时钟通道接收的边带时钟信号对经由所述第一边带数据通道接收的边带初始化分组进行采样,响应于没有检测到所述预定模式而生成具有第二值的所述第一结果。
12.根据权利要求11所述的方法,还包括:基于所述第一结果具有所述第一值:
分配包括所述第一边带数据通道和所述第一边带时钟通道的工作边带;以及
分配包括所述第二边带数据通道和所述第二边带时钟通道的冗余边带。
13.根据权利要求10所述的方法,其中,所述第一边带数据通道和所述第二边带数据通道中的另一个以及所述第一边带时钟通道和所述第二边带时钟通道中的另一个包括冗余边带对。
14.根据权利要求10所述的方法,还包括:
经由第三边带数据通道和第四边带数据通道从所述第一管芯向所述第二管芯发送具有所述预定模式的边带初始化分组的多次迭代;以及
在边带初始化分组的所述多次迭代期间经由第三边带时钟通道和第四边带时钟通道从所述第一管芯向所述第二管芯发送所述边带时钟信号。
15.根据权利要求14所述的方法,其中,发送所述多次迭代包括:
发送边带初始化分组的所述多次迭代中的第一边带初始化分组;
在多个单位间隔内发送数据低电平信号;以及
发送边带初始化分组的所述多次迭代中的第二边带初始化分组。
16.根据权利要求14所述的方法,还包括:在检测到所述预定模式之后,停止发送边带初始化分组的所述多次迭代。
17.一种计算机可读存储介质,包括计算机可读指令,所述计算机可读指令在被执行时用于实现根据权利要求10至16中任一项所述的方法。
18.一种装置,包括用于执行根据权利要求10至16中任一项所述的方法的单元。
19.一种封装,包括:
第一管芯,所述第一管芯包括中央处理单元(CPU)和协议栈,所述协议栈包括:
管芯到管芯适配器,所述管芯到管芯适配器用于经由flit感知管芯到管芯接口(FDI)与协议层通信,并且经由原始管芯到管芯接口(RDI)与物理层电路装置通信,其中,所述管芯到管芯适配器用于传送消息信息,所述消息信息包括第一互连协议的第一信息;以及
所述物理层电路装置,所述物理层电路装置经由所述RDI耦合到所述管芯到管芯适配器,其中,所述物理层电路装置用于接收所述第一信息并且经由互连将所述第一信息输出到第二管芯,其中,所述物理层电路装置用于:
对所述互连的边带接口执行边带初始化,以用于:
检测所述第二管芯的活动的存在;
训练所述边带接口;以及
经由所述边带接口发送和接收失去复位消息;以及
执行所述互连的主带接口的主带初始化;以及
所述第二管芯,所述第二管芯经由所述互连耦合到所述第一管芯。
20.根据权利要求19所述的封装,其中,在所述边带初始化期间,所述物理层电路装置用于:
将多个第一边带分组发送到所述第二管芯,所述多个第一边带分组包括预定数据模式;
从所述第二管芯接收多个第二边带分组,所述多个第二边带分组包括所述预定数据模式;
在所述多个第二边带分组中的至少两个中检测到所述预定数据模式之后:
使边带接收器能够接收第一边带消息;以及
使边带发射器能够发送第二边带消息。
21.根据权利要求19所述的封装,其中,所述物理层电路装置用于在所述第一管芯的复位流程之后执行所述边带初始化,所述第一管芯的复位流程独立于所述第二管芯的复位流程。
22.根据权利要求19所述的封装,其中,所述第二管芯包括加速器,其中,所述第一管芯用于根据外围组件快速互连(PCIe)协议的flit模式或计算快速链路(CXL)协议的flit模式中的至少一个与所述第二管芯进行通信。
23.一种装置,包括:
用于经由第一边带数据通道单元和第二边带数据通道单元接收具有预定模式的边带初始化分组的单元;
用于经由第一边带时钟通道单元和第二边带时钟通道单元接收边带时钟信号的单元;
用于用经由所述第一边带时钟通道单元接收的边带时钟信号和经由所述第二边带时钟通道单元接收的边带时钟信号对经由所述第一边带数据通道单元接收的边带初始化分组进行采样以用于生成第一结果和第二结果的单元;
用于用经由所述第一边带时钟通道单元接收的边带时钟信号和经由所述第二边带时钟通道单元接收的边带时钟信号对经由所述第二边带数据通道单元接收的边带初始化分组进行采样以用于生成第三结果和第四结果的单元;
用于基于所述第一结果、所述第二结果、所述第三结果或所述第四结果中的至少一个将所述第一边带数据通道单元或所述第二边带数据通道单元中的一个分配为工作边带数据通道单元的单元;
用于基于所述第一结果、所述第二结果、所述第三结果或所述第四结果中的至少一个将所述第一边带时钟通道单元或所述第二边带时钟通道单元中的一个分配为工作边带时钟通道单元的单元;以及
用于发送边带消息以指示所述工作边带数据通道单元和所述工作边带时钟通道单元的所述分配的单元。
24.根据权利要求23所述的装置,还包括:
用于通过用经由所述第一边带时钟通道单元接收的边带时钟信号对经由所述第一边带数据通道单元接收的边带初始化分组进行采样、响应于检测到所述预定模式而生成具有第一值的所述第一结果的单元;以及
用于通过用经由所述第一边带时钟通道单元接收的边带时钟信号对经由所述第一边带数据通道单元接收的边带初始化分组进行采样、响应于没有检测到所述预定模式而生成具有第二值的所述第一结果的单元。
25.根据权利要求23-24中任一项所述的装置,还包括:
用于基于所述第一结果具有所述第一值来分配工作边带的单元,所述工作边带包括所述第一边带数据通道单元和所述第一边带时钟通道单元;以及
用于基于所述第一结果具有所述第一值来分配冗余边带的单元,所述冗余边带包括所述第二边带数据通道单元和所述第二边带时钟通道单元。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163292948P | 2021-12-22 | 2021-12-22 | |
US63/292,948 | 2021-12-22 | ||
US17/708,367 | 2022-03-30 | ||
US17/708,367 US20220222198A1 (en) | 2021-12-22 | 2022-03-30 | Sideband interface for die-to-die interconnects |
PCT/US2022/050655 WO2023121808A1 (en) | 2021-12-22 | 2022-11-22 | Sideband interface for die-to-die interconnects |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117616406A true CN117616406A (zh) | 2024-02-27 |
Family
ID=82323080
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280041100.1A Pending CN117615807A (zh) | 2021-06-11 | 2022-06-10 | 具有被透气屏障覆盖的孔以使得灭菌气体能够进入和离开同时防止可流动材料泄漏的可气体灭菌的注射器 |
CN202280046730.8A Pending CN117616406A (zh) | 2021-12-22 | 2022-11-22 | 用于管芯到管芯互连的边带接口 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280041100.1A Pending CN117615807A (zh) | 2021-06-11 | 2022-06-10 | 具有被透气屏障覆盖的孔以使得灭菌气体能够进入和离开同时防止可流动材料泄漏的可气体灭菌的注射器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220222198A1 (zh) |
CN (2) | CN117615807A (zh) |
WO (1) | WO2023121808A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11784890B2 (en) * | 2021-12-20 | 2023-10-10 | Nvidia Corporation | Link training through handshake on high-speed interconnect |
US20220222198A1 (en) * | 2021-12-22 | 2022-07-14 | Narasimha Lanka | Sideband interface for die-to-die interconnects |
WO2024040483A1 (zh) * | 2022-08-24 | 2024-02-29 | 华为技术有限公司 | 一种调频方法和装置 |
CN115622666B (zh) * | 2022-12-06 | 2023-03-21 | 北京超摩科技有限公司 | 用于芯粒间数据链路传输的故障通道替换方法及芯粒 |
CN117834755B (zh) * | 2024-03-04 | 2024-05-10 | 中国人民解放军国防科技大学 | 面向芯粒互连接口的协议层与适配器层间接口电路及芯片 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5970917B2 (ja) * | 2012-03-30 | 2016-08-17 | 富士通株式会社 | 受信回路、情報処理装置、および制御方法 |
DE112015006944B4 (de) * | 2015-09-25 | 2023-03-23 | Intel Corporation | Einrichtung, System und Verfahren zum Ermöglichen einer Kommunikation über eine Verbindung mit einer Vorrichtung außerhalb einer Baugruppe |
US10008287B2 (en) * | 2016-07-22 | 2018-06-26 | Micron Technology, Inc. | Shared error detection and correction memory |
US11907035B2 (en) * | 2020-05-15 | 2024-02-20 | Intel Corporation | Sideband signaling over existing auxiliary pins of an interface |
US11971841B2 (en) * | 2020-05-21 | 2024-04-30 | Intel Corporation | Link layer-PHY interface adapter |
US20220222198A1 (en) * | 2021-12-22 | 2022-07-14 | Narasimha Lanka | Sideband interface for die-to-die interconnects |
-
2022
- 2022-03-30 US US17/708,367 patent/US20220222198A1/en active Pending
- 2022-06-10 CN CN202280041100.1A patent/CN117615807A/zh active Pending
- 2022-11-22 CN CN202280046730.8A patent/CN117616406A/zh active Pending
- 2022-11-22 WO PCT/US2022/050655 patent/WO2023121808A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20220222198A1 (en) | 2022-07-14 |
CN117615807A (zh) | 2024-02-27 |
WO2023121808A1 (en) | 2023-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797378B2 (en) | Multichip package link error detection | |
CN117616406A (zh) | 用于管芯到管芯互连的边带接口 | |
EP2027538B1 (en) | Systems and methods for providing remote pre-fetch buffers | |
US7594055B2 (en) | Systems and methods for providing distributed technology independent memory controllers | |
US7895374B2 (en) | Dynamic segment sparing and repair in a memory system | |
US7669086B2 (en) | Systems and methods for providing collision detection in a memory system | |
US7952944B2 (en) | System for providing on-die termination of a control signal bus | |
US8151042B2 (en) | Method and system for providing identification tags in a memory system having indeterminate data response times | |
US8082474B2 (en) | Bit shadowing in a memory system | |
US20100005214A1 (en) | Enhancing bus efficiency in a memory system | |
CN101405708B (zh) | 自动计算机器的存储器系统 | |
US7979616B2 (en) | System and method for providing a configurable command sequence for a memory interface device | |
US20220237138A1 (en) | Link initialization training and bring up for die-to-die interconnect | |
US20220327083A1 (en) | Standard interfaces for die to die (d2d) interconnect stacks | |
US20100005206A1 (en) | Automatic read data flow control in a cascade interconnect memory system | |
US20220318111A1 (en) | Compliance and debug testing of a die-to-die interconnect | |
US20230350795A1 (en) | Dual-port memory module design for composable computing | |
US20220327276A1 (en) | Lane repair and lane reversal implementation for die-to-die (d2d) interconnects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |