CN118103826A - 用于管芯对管芯(d2d)互连栈的标准接口 - Google Patents
用于管芯对管芯(d2d)互连栈的标准接口 Download PDFInfo
- Publication number
- CN118103826A CN118103826A CN202280045501.4A CN202280045501A CN118103826A CN 118103826 A CN118103826 A CN 118103826A CN 202280045501 A CN202280045501 A CN 202280045501A CN 118103826 A CN118103826 A CN 118103826A
- Authority
- CN
- China
- Prior art keywords
- die
- sideband
- adapter
- interconnect
- protocol
- 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
- 238000012549 training Methods 0.000 claims description 63
- 238000000034 method Methods 0.000 claims description 49
- 230000015654 memory Effects 0.000 claims description 41
- 230000004044 response Effects 0.000 claims description 13
- 239000000758 substrate Substances 0.000 claims description 12
- 230000008878 coupling Effects 0.000 claims description 9
- 238000010168 coupling process Methods 0.000 claims description 9
- 238000005859 coupling reaction Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 8
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 31
- 230000007704 transition Effects 0.000 description 26
- 238000004891 communication Methods 0.000 description 22
- 230000008439 repair process Effects 0.000 description 20
- 238000004806 packaging method and process Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 14
- 238000001514 detection method Methods 0.000 description 13
- 230000000977 initiatory effect Effects 0.000 description 13
- 229940125364 angiotensin receptor blocker Drugs 0.000 description 12
- 230000015556 catabolic process Effects 0.000 description 7
- 238000006731 degradation reaction Methods 0.000 description 7
- 230000037452 priming Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 229910052710 silicon Inorganic materials 0.000 description 6
- 239000010703 silicon Substances 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000010354 integration Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000037361 pathway Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 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
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 239000002333 angiotensin II receptor antagonist Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000000470 constituent Substances 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
- 230000009977 dual effect Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012536 packaging technology Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000011144 upstream manufacturing 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/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- 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/4031—Coupling between buses using bus bridges with arbitration
-
- 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/5381—Crossover interconnections, e.g. bridge stepovers
-
- 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/5386—Geometry or layout of the interconnection structure
-
- 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/18—Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
-
- 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
- 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
- H01L2224/16227—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 the bump connector connecting to a bond pad of the item
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L23/00—Details of semiconductor or other solid state devices
- H01L23/48—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor
- H01L23/488—Arrangements for conducting electric current to or from the solid state body in operation, e.g. leads, terminal arrangements ; Selection of materials therefor consisting of soldered or bonded constructions
- H01L23/498—Leads, i.e. metallisations or lead-frames on insulating substrates, e.g. chip carriers
- H01L23/49811—Additional leads joined to the metallisation on the insulating substrate, e.g. pins, bumps, wires, flat leads
- H01L23/49816—Spherical bumps on the substrate for external connection, e.g. ball grid arrays [BGA]
-
- 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
- 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/5385—Assembly of a plurality of insulating 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/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/1431—Logic devices
-
- 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/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/1432—Central processing unit [CPU]
-
- 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/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/14335—Digital signal processor [DSP]
-
- 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/10—Details of semiconductor or other solid state devices to be connected
- H01L2924/11—Device type
- H01L2924/14—Integrated circuits
- H01L2924/143—Digital devices
- H01L2924/1434—Memory
-
- 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)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Power Engineering (AREA)
- Geometry (AREA)
- Communication Control (AREA)
Abstract
在一个实施例中,第一管芯包括:第一管芯对管芯适配器,用于经微片感知管芯对管芯接口(FDI)与第一协议层电路系统通信并且经原始管芯对管芯接口(RDI)与第一物理层电路系统通信,其中所述第一管芯对管芯适配器用于接收消息信息,所述消息信息包括第一互连协议的第一信息;以及所述第一物理层电路系统,耦合到所述第一管芯对管芯适配器。所述第一物理层电路系统可被配置为接收所述第一信息并且经互连将所述第一信息输出给第二管芯,所述第一物理层电路系统包括多个模块,所述多个模块中的每个模块包括模拟前端,所述模拟前端具有传送器电路系统和接收器电路系统。描述并且要求保护其他实施例。
Description
背景技术
传统管芯对管芯(D2D)互连可以是销售商特定的或应用特定的(例如,高带宽存储器(HBM)可被用于连接封装上存储器)。存在一些传统D2D互连(例如,高级接口总线(AIB)、高带宽互连(HBI)、线束(BoW)等),所述传统D2D互连可能仅定义物理层,但可能不提供用于确保跨管芯的互操作性的机制。传统封装通常不配备映射无处不在的加载-存储输入/输出(I/O)协议的通用D2D互连,所述加载-存储输入/输出(I/O)协议可被用于管芯之间的无缝互操作性并且可在封装上提供开放创新机会以供行业创新。
附图说明
图1是根据实施例的封装的方框图。
图2A-2D是包括实施例的不同封装选项的剖视图。
图3A/3B是可实现一个或多个实施例的分层协议的方框图。
图4A-4B是根据各种实施例的多管芯封装的方框图。
图5是图示根据实施例的管芯对管芯连接的示意图。
图6A/6B是图示根据实施例的边带信令的时序图。
图7是图示根据实施例的用于封装上能够支持多协议的互连的初启(bring up)流程的流程图。
图8是根据实施例的链路训练状态机的流程图。
图9是根据实施例的主带初始化的进一步细节的流程图。
图10是根据实施例的主带训练的流程图。
图11A-11E是根据其他实施例的分层协议的部分的方框图。
图12是图示根据实施例的包括RDI初启流程的初启流程的时序图。
图13是图示根据实施例的包括FDI初启流程的初启流程的时序图。
图14是根据实施例的另一示例性系统的方框图。
图15是根据另一实施例(诸如,边缘平台)的系统的方框图。
图16是根据另一实施例的系统的方框图。
具体实施方式
在各种实施例中,通用D2D互连可被配置为映射无处不在的加载-存储输入/输出(I/O)协议,诸如外围组件互连快速(PCIe)和计算快速链路(CXL),所述加载-存储输入/输出(I/O)协议可被用于管芯之间的无缝互操作性并且可在封装上提供开放创新机会以供行业创新。本文中的实施例涉及这种接口,这种接口可被称为通用芯粒(chiplet)互连快速(UCIe),但这种技术的其他名称可能存在或者可被用在其他实施例中。
这种接口的标准化的目标之一是能够实现D2D硅设计的知识产权(IP)提供商的充满活力的生态系统。因此,本文中的实施例可涉及接口定义以及分层栈的不同块之间的分层功能分割。
本文中的实施例可包括或涉及许多方面。一个这种方面是D2D适配器和物理层之间的接口,该接口可被称为原始D2D接口(RDI)。另一这种方面是协议层和D2D适配器之间的接口,该接口可被称为微片感知D2D接口(FDI)。在一些实施例中,可从FDI得到RDI,并且RDI可将类似的规则用于诸如时钟门控和边带的元素。通常,RDI和FDI可被视为与逻辑PHY接口(LPIF)2.0规范相关或者是其子集,并且因此,本文中的实施例可包括或涉及用于D2D应用的LPIF 2.0规范的扩展。
本文中的实施例可包括许多优点。一个这种优点在于,实施例可允许销售商和片上系统(SoC)构建者以低集成成本和更快的上市时间容易地混合并且匹配来自不同提供商的不同层,(例如,使协议层与符合在本说明书中提供的接口握手的来自任何不同销售商的D2D适配器和物理层一起工作)。另外,考虑到在硅后期间的互操作性测试可能具有与它关联的更大的开销和成本,对总线功能模型(BFM)的一致理解和开发可允许这个栈的更容易的IP开发。另外,因为FDI可与LPIF 2.0相关或者是其子集,所以相同的协议层可在相对较少的变化的情况下与其他符合LPIF 2.0的实现一起工作。
结合能够支持多协议的封装上互连协议可实现实施例,所述能够支持多协议的封装上互连协议可被用于连接单个封装上的多个芯粒或管芯。利用这种互连协议,分解的管芯架构的充满活力的生态系统能够被互连在一起。这种封装上互连协议可被称为“通用芯粒互连快速”(UCIe)互连协议,该协议可符合可由特别兴趣小组(SIG)或其他发起人或其他实体发布的UCIe规范。尽管在本文中被称为“UCIe”,但应该理解,能够支持多协议的封装上互连协议可采用另一命名法。
这种UCIe互连协议可支持多种底层互连协议,包括某些通信协议的基于微片的模式。在一个或多个实施例中,UCIe互连协议可支持:计算快速有限(CXL)协议的微片模式,诸如根据CXL规范的给定版本,诸如CXL规范版本2.0(2020年11月公布)、其任何未来更新、版本或变体;外围组件互连快速(PCIe)微片模式,诸如根据PCIe规范的给定版本,诸如PCIe基础规范版本6.0(2022年公布)或其任何未来更新、版本或变体;以及原始(或流传输)模式,可被用于映射由链路合作伙伴支持的任何协议。需要注意的是,在一个或多个实施例中,UCIe互连协议可能不是向后兼容的,并且替代地可适应上述协议或支持通信的微片模式的其他协议的当前和未来版本。
实施例可被用于跨整个计算连续体提供计算、存储器、存储和连接性,跨越云、边缘、企业、5G、汽车、高性能计算和手持细分部分(segment)。实施例可被用于封装或者以其他方式耦合来自不同源(包括不同制造厂、不同设计和不同封装技术)的管芯。
封装上的芯粒集成还使顾客能够通过选择不同数量和类型的管芯来针对不同细分市场进行不同的折衷。例如,根据细分部分,人们能够选择不同数量的计算、存储器和I/O管芯。因此,不需要用于不同细分部分的不同管芯设计,从而带来更低的产品库存保管单位(SKU)成本。
现在参照图1,示出根据实施例的封装的方框图。如图1中所示,封装100可以是任何类型的集成电路封装。在示出的特定示图中,封装100包括多个芯粒或管芯,封装100包括中央处理单元(CPU)管芯1100-n、加速器管芯120、输入/输出(I/O)瓦片(tile)130和存储器1401-4。根据实施例,这些管芯中的至少某些管芯可经封装上互连而耦合在一起。如图中所示,互连1501-3可被实现为UCIe互连。CPU 110可经另一封装上互连155而耦合,在一些情况下,另一封装上互连155可使用运行一致性协议的UCIe互连而提供封装上CPU对CPU连接性。作为一个这种示例,这种一致性协议可以是超路径互连(UPI);当然,其他示例是可能的。
尽管映射到本文中论述的UCIe协议的协议包括PCIe和CXL,但应该理解,在这个方面,实施例不受限制。在示例性实施例中,可使用包括原始模式的微片格式来完成任何底层协议的映射。在实现中,根据实施例,通过利用UCIe管芯对管芯适配器和PHY替换某些物理层电路系统(例如,PCIe SERDES PHY和PCIe/CXL LogPHY以及链路级重试),这些协议映射可以能够实现更多的封装上集成以改善功率和性能特性。另外,原始模式可以是协议不可知的以使其他协议能够被映射,同时允许使用,诸如在封装上集成独立SERDES/收发器瓦片(例如,以太网)。如图1中另外所示,封装外互连可符合各种协议,包括CXL/PCIe协议、双倍数据速率(DDR)存储器互连协议以及诸如此类。
在示例性实现中,使用在UCIe互连150上运行的CXL事务,利用CXL的I/O、一致性和存储器协议,加速器120和/或I/O瓦片130能够连接到一个或多个CPU 110。在图1的实施例中,I/O瓦片130能够向封装的外部CXL、PCIe和DDR管脚提供接口。静态地或动态地,使用在UCIe互连150上运行的PCIe事务,加速器120也能够连接到CPU 110。
根据实施例的封装可被实现在许多不同类型的计算装置中,许多不同类型的计算装置的范围是从小型便携式装置(诸如,智能电话以及诸如此类)直至更大的装置(包括客户端计算装置和服务器或其他数据中心计算装置)。按照这种方式,UCIe互连可以能够实现在机架/机柜(pod)级别的本地连接性和长距离连接性。虽然未在图1中示出,但应该理解,至少一个UCIe重定时器可被用于使用封装外互连来在封装之外扩展UCIe连接性。封装外互连的示例包括电缆、光缆或用于在机架/机柜级别连接封装的任何其他技术。
实施例还可被用于使用CXL 2.0(或以后)协议来支持机架/机柜级别的分解。在这种布置中,来自不同计算机壳(chassis)的多个计算节点(例如,虚拟分级体系)耦合到CXL交换机,CXL交换机能够耦合到多个CXL加速器/类型-3存储器装置,所述多个CXL加速器/类型-3存储器装置能够被放置在一个或多个单独的抽屉中。通过UCIe重定时器,使用运行CXL协议的封装外互连,每个计算抽屉可耦合到交换机。
现在参照图2A-2D,示出包括实施例的不同封装选项的剖视图。如图2A中所示,封装200可以是提供高级封装技术的高级封装。在一个或多个实施例中,高级封装实现可被用于性能优化的应用,包括功率高效的性能应用。在一些这种示例性用例中,通道距离可能短(例如,小于2mm),并且为了高带宽和低延时,互连能够被优化以具有最佳性能和功率效率特性。
如图2A中所示,封装200包括多个管芯2100-2。应该理解,尽管三个特定管芯被示出在图2A中,但在其他实现中,可存在多得多的管芯。管芯210被适配在封装衬底220上。在一个或多个实施例中,管芯210可经凸块被适配到衬底220。如图中所示,封装衬底220包括多个硅桥2251-2,所述硅桥2251-2包括封装上互连2261-2。在实施例中,互连226可被实现为UCIe互连,并且硅桥225可被实现为EMIB桥。
现在参照图2B,示出高级封装的另一实施例,其中封装配置被实现为衬底上晶片上芯片(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微片模式和/或流传输协议中的一个或多个而操作以提供将要传送的用户定义的协议的通用模式。对于每个协议,不同的优化和关联的微片传递可用。
然后,协议层310经接口315耦合到管芯对管芯适配器(D2D)适配器320。在实施例中,接口315可被实现为微片感知D2D接口(FDI)。在实施例中,D2D适配器320可被配置为与协议层310和物理层330协调以确保跨UCIe链路340的成功的数据传递。适配器320可被配置为尽可能使主数据路径上的逻辑最小化,从而针对协议微片给出低延时的、优化的数据路径。
图3A图示在D2D适配器320内执行的各种功能性。D2D适配器320可为连接的管芯(也被称为“芯粒”)提供链路状态管理和参数协商。另外,D2D适配器320可以可选地通过循环冗余校验(CRC)和链路级别的重试机制来保证可靠的数据递送,例如,其中原始BER小于1e-27。当支持多个协议时,D2D适配器320可定义底层仲裁机制。例如,当输送CXL协议的通信时,适配器320可提供支持多个同时协议的通信的仲裁器/复用器(ARB/MUX)功能性。在一个或多个实施例中,当D2D适配器320负责可靠传递时,给定大小(例如,256字节)的流控制单元(微片)可定义底层传递机制。
当操作处于微片模式时,管芯对管芯适配器320可插入并且检查CRC信息。相比之下,当操作处于原始模式时,微片的所有信息(例如,字节)由协议层310填充。如果适用,则适配器320还可执行重试。适配器320还可被配置为协调更高级别的链路状态机管理和初启,与远程链路合作伙伴的协议选项相关的参数交换,以及当得到支持时与远程链路合作伙伴的功率管理协调。根据使用模型,可使用不同的底层协议。例如,在实施例中,可使用PCIe/CXL.io来处理使用直接存储器存取的数据传递、软件发现和/或错误处理等;可通过CXL.Mem来处理存储器用例;并且能够使用CXL.cache来处理应用(诸如,加速器)的高速缓存要求。
然后,D2D适配器320经接口325耦合到物理层330。在实施例中,接口325可以是原始D2D接口(RDI)。如图3B中所示,物理层330包括用于与管芯对管芯互连340(在实施例中,管芯对管芯互连340可以是UCIe互连或另一能够支持多协议的封装上互连)通过接口连接的电路系统。在一个或多个实施例中,物理层330可负责电气信令、计时、链路训练、边带等。
互连340可包括边带和主带链路,它们可具有所谓的“通路(lane)”的形式,通路是用于携带信令的物理电路系统。在实施例中,通路可构成用于携带映射到物理凸块或其他导电元件的一对信号的电路系统,一个信号用于传送,并且一个信号用于接收。在实施例中,xN UCIe链路由N个通路组成。
如图3B中所示,物理层330包括三个子组件,即,物理(PHY)逻辑332、电气/模拟前端(AFE)334和边带电路系统336。在实施例中,互连340包括在物理凸块上提供主数据路径的主带接口,主数据路径能够被组织为一组通路,该组通路被称为模块或群集。
互连340的构造单元在本文中同样地被称为“群集”或“模块”。在实施例中,群集可包括:N个单端单向全双工数据通路,一个用于“有效”(Valid)的单端通路、一个用于跟踪的通路、每个方向的差分转发时钟以及用于边带的、每个方向的2个通路(单端时钟和数据)。因此,模块(或群集)形成AFE 334的结构设计实现的原子粒度。对于标准和高级封装,可能存在每个模块提供的不同数量的通路。例如,对于标准封装,16个通路构成单个模块,而对于高级封装,64个通路构成单个模块。虽然实施例在这个方面不受限制,但互连340是可使用导电迹线、导电焊盘、凸块以及诸如此类中的一种或多种来实现的物理互连,该物理互连在存在于链路合作伙伴管芯上的PHY电路系统之间提供互连。
协议层310或D2D适配器320的给定实例能够通过其中实现带宽缩放的多个模块发送数据。管芯之间的互连340的物理链路可包括两个单独的连接:(1)边带连接;和(2)主带连接。在实施例中,边带连接被用于:参数交换、用于调试/符合(compliance)的寄存器访问以及用于链路训练和管理的与远程合作伙伴的协调。
在一个或多个实施例中,边带接口由在每个方向上的至少一个数据通路和至少一个时钟通路形成。换句话说,边带接口是用于传送和接收方向的双信号接口。在高级封装使用中,可提供冗余,其中在每个方向上具有另外的数据和时钟对用于修复或增加的带宽。边带接口可包括在每个方向上的转发时钟管脚和数据管脚。在一个或多个实施例中,边带时钟信号可由辅助时钟源产生,所述辅助时钟源被配置为在800MHz操作,而不管主数据路径速度如何。物理层330的边带电路系统336可被提供辅助功率,并且可被包括在始终开启的域中。在实施例中,可按照每秒800兆次传递(MT/s)的单数据速率信号(SDR)传输边带数据。边带可被配置为在始终开启的电源和辅助时钟源上运行。每个模块具有它自己的边带管脚集合。
构成主数据路径的主带接口可每个模块包括转发时钟、数据有效(valid)管脚和N个数据通路。对于高级封装选项,N=64(也被称为x64),并且在凸块图(bump map)中提供用于通路修复的总共四个额外管脚。对于标准封装选项,N=16(也被称为x16),并且不提供用于修复的额外管脚。物理层330可被配置为协调不同功能及其相对排序以用于合适的链路初启和管理(例如,边带传递、主带训练和修复等)。
在一个或多个实施例中,高级封装实现可支持冗余通路(在本文中也被称为“备用”通路)以处理故障通路(包括时钟、有效、边带等)。在一个或多个实施例中,标准封装实现可支持通路宽度降级以处理失效。在一些实施例中,多个群集能够被聚合以每个链路递送更高性能。
现在参照图4A,示出根据实施例的多管芯封装的方框图。如图4A中所示,封装400至少包括第一管芯410和第二管芯450。应该理解,管芯410和450可以是包括CPU、加速器、I/O装置或者诸如此类的各种类型的管芯。在图4A中示出的高级视图中,将管芯耦合在一起的互连440被图示为虚线。互连440可以是封装上能够支持多协议的互连的实例化(instantiation),例如如本文中所述的UCIe互连。尽管在图4A中未详细地示出,但应该理解,可使用适配在每个管芯上的导电凸块来实现互连440,所述导电凸块可耦合在一起以提供管芯之间的互连。另外,互连440还可包括封装内电路系统,诸如一个或多个衬底上或者一个或多个衬底内的导电线。如本文中所使用的,应该理解,术语“通路”指代将一个管芯耦合到另一管芯的任何和全部互连电路系统。
在特定实施例中,互连440可以是具有一个或多个模块的UCIe互连,其中每个模块包括边带接口和主带接口。在这个高级视图中,主带接口耦合到每个管芯内的主带接收器和传送器电路系统。具体地,管芯410包括主带接收器电路系统420和主带传送器电路系统425,而管芯450又包括主带接收器电路系统465和主带传送器电路系统460。
图4A还示出边带接口的连接性。通常,边带包括在每个方向上的数据通路和时钟通路,并且在高级封装使用中,可提供冗余,其中在每个方向上具有另外的数据和时钟对。因此,图4A示出两个管芯的边带电路系统之间的第一可能连接性实现。管芯410包括边带电路430,边带电路430包括第一边带电路系统432,第一边带电路系统432包括对应边带时钟和数据接收器(R_C和R_D)以及边带时钟和数据传送器(T_C和T_D),所述边带时钟和数据接收器(R_C和R_D)以及边带时钟和数据传送器(T_C和T_D)分别耦合到第二管芯450的边带电路系统470的对应边带传送器和接收器电路系统。边带电路系统430还包括具有用于冗余边带时钟和数据传送器和接收器的类似电路系统的第二边带电路系统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的边带接收器的不同组合接收信号。在边带初始化期间,传入边带数据信号可以是包括预定模式的预定边带初始化包(packet)。检测器570可被配置为:检测这个模式的存在,并且响应于有效检测到该模式(例如,对于该模式的许多次迭代)而产生第一结果(例如,逻辑1)并且响应于未检测到所述预定模式而产生第二结果(例如,逻辑0)。虽然实施例在这个方面不受限制,但在一个实现中,检测器570可配置有移位寄存器、计数器以及诸如此类以:执行这种检测操作,并且通过使用时钟信号和冗余时钟信号对数据和冗余数据进行采样来产生对应结果,从而带来四种组合。
需要注意的是,在其中冗余边带电路系统未被用于修复目的的情况下,它可被用于增加边带通信的带宽,特别是用于数据密集型传递。作为示例,根据实施例的边带可被用于传输将要被下载的大量信息,诸如固件和/或熔丝(fuse)下载。或者边带能够被用于诸如根据给定管理协议来传输管理信息。需要注意的是,这种通信可与功能边带上的其他边带信息通信同时发生。
现在参照图6A,示出图示根据实施例的边带信令的时序图。如图6A中所示,时序图600包括边带时钟信号610和边带消息信号620。边带消息格式可被定义为64位的信头(header),64位的信头具有在64个单位间隔(UI)期间传输的32位或64位的数据。边带消息信号620图示64位的串行包。边带数据可被与时钟(选通脉冲(strobe))信号边沿对准地发送。边带接口的接收器利用选通脉冲对传入数据进行采样。例如,选通脉冲的负边沿能够被用于对数据进行采样,因为数据使用SDR信令。
现在参照图6B,示出图示根据实施例的边带包背靠背(back-to-back)传送的时序图。如图6B中所示,时序图601图示后面跟随有第二边带包624的第一边带包622的传输。如图中所示,每个包可以是在64个UI的持续时间期间发送的64位的串行包。更具体地,第一边带包622被发送,然后在时钟和数据通路上后面都跟随有32个UI的持续时间的逻辑低,其后第二边带包624被传输。在实施例中,这种信令可被用于各种边带通信,包括在边带初始化期间的边带消息。
现在参照图7,示出图示根据实施例的用于封装上能够支持多协议的互连的初启流程的流程图。如图7中所示,通过在例如经UCIe互连(在图7中图示为D2D通道)耦合在一起的两个管芯(管芯0和1)上独立地执行重置流程,初启流程700开始。因此,第一管芯(管芯0)在阶段710执行独立重置流程,并且第二管芯(管芯1)也在阶段710执行独立重置流程。需要注意的是,每个管芯可在不同时间退出其重置流程。接下来,在阶段720,边带检测和训练可被执行。在阶段720中,边带可被检测并且训练。在其中通路冗余可用的高级封装的情况下,可用通路可被检测并且用于边带消息。需要注意的是,由于每个管芯可在不同时间退出重置流程(如以上所论述),所以这种边带检测和训练(包括如本文中所述的边带初始化)可被用于检测耦合的管芯中的活动的存在。在一个或多个实施例中,用于退出重置并且启动链路训练的触发是检测到边带消息模式。当在链路初启期间训练时,诸如当物理层脱离重置状态时,允许硬件多次尝试训练。在这种初启操作期间,可能发生同步,因为通过两个管芯之间的4路边带消息握手来确保管芯的每个状态和子状态进入和退出处于锁步。
在阶段730,可在功能边带上执行训练参数交换,并且发生主带训练。在阶段730中,主带被初始化、修复并且训练。最后,在阶段740,协议参数交换可发生在边带上。在阶段740中,通过确定本地管芯能力、与远程管芯的参数交换和耦合对应协议层与管芯的D2D适配器的FDI的初启,总体链路可被初始化。在实施例中,在主带初始化中,主带默认在最低允许数据速率初始化,其中修复和翻转检测被执行。链路速度随后转变为通过参数交换检测到的最高公共数据速率。在链路初始化之后,可使物理层能够经主带执行协议微片传递。
在一个或多个实施例中,不同类型的包可经边带接口而被传输,并且可包括:(1)寄存器访问,能够是配置(CFG)或存储器映射的读或写,并且能够是32位或64位(b);(2)没有数据的消息,能够是链路管理(LM)或销售商定义的包,并且不携带另外的数据净荷;(3)具有数据的消息,能够是参数交换(PE)、链路训练相关的或销售商定义的,并且携带64b的数据。包可携带5位的操作码、3位的源标识符(srcid)和3位的目的地标识符(dstid)。5位的操作码指示包类型以及它是携带32b的数据还是携带64b的数据。
能够跨FDI、RDI或UCIe边带链路传递流控制和数据完整性边带包。这些中的每个具有独立流控制。对于与FDI或RDI关联的每个传送器,接口的设计时间参数能够被用于确定由接收器通告的信用(credit)的数量,最多32个信用。每个信用对应于64位的信头和64位的潜在关联数据。因此,对于所有边带包,仅存在一种类型的信用,而不管它们携带多少数据。每个传送器/接收器对具有独立信用回路。例如,在RDI上,对于从适配器向物理层传送的边带包,信用被从物理层通告给适配器;并且对于从物理层向适配器传送的边带包,信用还被从适配器通告给物理层。在发送寄存器访问请求和消息之前,传送器检查可用信用。传送器在发送寄存器访问完成之前不检查信用,并且接收器保证无条件接收(sink)任何寄存器访问完成包。携带请求或响应的消息在FDI和RDI上消耗信用,但由接收器保证它们向前行进并且不会被阻挡在寄存器访问请求之后。对于跨那些接口的边带信用返回,RDI和FDI都给出专用信号。与RDI和FDI关联的所有接收器检查接收的消息是否存在数据或控制奇偶校检错误,并且这些错误被映射到不可校正内部错误(UIE)并且将RDI转变为链路错误(LinkError)状态。
现在参照图8,示出根据实施例的链路训练状态机的流程图。如图8中所示,方法800是例如由逻辑物理层电路系统执行的链路初始化的示例,所述逻辑物理层电路系统可包括链路状态机。表1是根据实施例的链路训练状态机的状态的高级描述,并且以下描述在每种状态下执行的细节和动作。
表1
参照图8,方法800在重置状态810下开始。在实施例中,PHY在预定最小持续时间(例如,4ms)期间保持处于重置状态以允许包括锁相环(PLL)的各种电路系统稳定。当电源稳定、边带时钟可用并且正在运行、主带和管芯对管芯适配器时钟稳定并且可用、主带时钟被设置为最慢IO数据速率(例如,用于4GT/s的2GHz)并且链路训练触发已发生时,可退出这种状态。接下来,控制传递给边带初始化(SBINIT)状态820,其中边带初始化可被执行。在这种状态下,边带接口被初始化并且修复(当适用时)。在这种状态期间,主带传送器可以是三态,并且允许主带接收器被禁用。
仍然参照图8,从边带初始化状态820,控制传递给主带初始化(MBINIT)状态830,在该状态下,主带初始化被执行。在这种状态下,主带接口被初始化并且修复或降级(当适用时)。主带上的数据速率可被设置为最低支持数据速率(例如,4GT/s)。对于高级封装,接口互连修复可被执行。MBINIT中的子状态允许数据、时钟、跟踪和有效通路的检测和修复。对于其中不需要通路修复的标准封装接口,子状态被用于在最低数据速率检查功能性并且如果需要则执行宽度降级。
接下来,在块840,进入主带训练(MBTRAIN)状态840,在该状态下,主带链路训练可被执行。在这种状态下,运行速度被设置,并且时钟对数据的中心对准(clock to datacentering)被执行。在更高的速度,另外的校准(比如,接收器时钟校正、传送和接收抗扭斜)可在子状态下被执行以确保链路性能。模块进入每种子状态并且退出每种状态是通过边带握手。如果不需要子状态内的特定动作,则允许UCIe模块通过边带握手来退出该子状态,而不执行该子状态的操作。在一个或多个实施例中,对于高级和标准封装接口,这种状态可能是常见的。
控制随后前进至块850,其中链路初始化(LINKINIT)状态发生,在该状态下,链路初始化可被执行。在这种状态下,在RDI上进入活动状态之前,管芯对管芯适配器完成初始链路管理。一旦RDI处于活动状态,PHY就从链路控制寄存器清除其“开始UCIe链路训练”位的副本。在实施例中,在进入这种状态时,线性反馈移位寄存器(LFSR)被重置。在一个或多个实施例中,对于高级和标准封装接口,这种状态可能是常见的。
最后,控制传递给活动状态860,其中通信可发生在正常操作中。更具体地,来自上层的包能够在两个管芯之间被交换。在一个或多个实施例中,可使用加扰器LFSR对在这种状态下的所有数据加扰。
仍然参照图8,需要注意的是,在活动状态860期间,可能发生至重新训练(PHYRETRAIN)状态870的转变,或者可能发生至低功率(L2/L1)链路状态880的转变。如图中所见,根据低功率链路状态的级别,可继续退出到主带训练状态840或重置状态810。在低功率链路状态下,与在活动状态下的动态时钟门控相比,消耗更低的功率。当RDI已转变为功率管理状态时,可进入这种状态。当本地适配器在RDI上请求活动或者远程链路合作伙伴请求L1退出时,PHY退出到MBTRAIN.SPEEDIDLE状态。在一个或多个实施例中,利用RDI上的对应L1状态退出转变,协调L1退出。当本地适配器在RDI上请求活动状态或者远程链路合作伙伴请求L2退出时,PHY退出到重置状态。需要注意的是,利用RDI上的对应L2状态退出转变,可协调L2退出。
如图8中另外所示,如果错误发生在初启状态中的任何初启状态期间,则控制传递给块890,其中可能发生训练错误状态。这种状态被用作由于任何致命或非致命事件导致的过渡状态以使状态机回到重置状态。如果边带是活动的,则执行边带握手以使链路合作伙伴从除SBINIT之外的任何状态进入训练错误状态。
在实施例中,管芯能够由于许多原因而进入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的中心设置转发时钟相位。模块合作伙伴利用传入转发时钟来对传入数据进行采样。16位的“按照通路ID”模式(未加扰)是使用对应通路的通路ID的通路特定的模式。
仍然参照图9,在仅在通路翻转检测和应用成功之后才进入的块960,模块的所有传送器和接收器被启用。模块在其主带的数据UI的中心设置时钟相位。模块合作伙伴利用其主带接收器上的传入转发时钟来对传入数据进行采样。在这种状态下,对于高级封装接口,并且对于标准封装接口的功能检查和宽度降级,检测并且修复主带通路(如果需要)。换句话说,如果在通路中检测到错误,则能够经冗余通路启用冗余电路系统。
在示例性实施例中,在初启和操作期间,若干降级技术可被用于使链路能够找到运行设置。首先,当检测到错误(在初始初启或功能操作期间)并且不需要修复时,可能发生速度降级。这种速度降级机制可使链路前往下一个更低的允许频率;重复这个过程,直至建立稳定的链路。其次,如果修复是不可能的(在其中不存在修复资源的标准封装链路的情况下),则可能发生宽度降级,作为示例,可允许宽度降级至半宽度配置。例如,16通路的接口能够被配置为作为8通路的接口操作。
现在参照图10,示出根据实施例的主带训练的流程图。如图10中所示,方法1000可由链路状态机实现以执行主带训练。在主带训练中,主带数据速率被设置为两个连接的装置的最高公共数据速率。可使用多种子状态来执行数据对时钟训练、抗扭斜和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。需要注意的是,也可能从低功率状态(例如,L1链路功率状态)或重新训练状态发生进入状态1015和1065。应该理解,尽管在图10的实施例中按照这种高级别示出,但许多变化和替代物是可能的。
现在参照图11A,示出根据另一实施例的分层协议的一部分的方框图。更具体地,在图11A中,电路1100包括经RDI 1125耦合到物理层1130的D2D适配器1120。需要注意的是,电路1100可被实现为类似于图3的电路300(并且因此,参照相同的标号(但在图11A中是“1100”系列,而非图3的“300”系列)),并且不进一步论述类似组件的细节。然而,需要注意的是,在图11A中,物理层1130支持多个模块,即,具有第一模拟前端11340的第一模块和具有第二模拟前端11341的第二模块。对于电路1100,RDI 1125具有参数化的数据路径,从而D2D适配器1120的单个实例化能够使用物理层1130的多个模拟前端来传送和接收数据。在不同实施例中,每个模块可提供例如16或64个主带数据通路和另外的冗余通路,如本文中所述。
在实施例中,RDI的单个实例可被用于与单个D2D适配器关联的配置(用于一个模块),或者单个实例还可适用于其中多个模块被聚集在一起以用于单个逻辑D2D适配器的配置(用于多个模块)。
又一些实现是可能的。例如,单个D2D适配器可与四个个体模块关联,每个个体模块具有其自己的模拟前端。因此,如图11B中所示,电路1101可被实现为类似于图11A中的;然而,这里,物理层1130包括四个模块,所述四个模块具有个体模拟前端11340-3。
再一些实现是可能的,其中可能存在多个FDI实例。也就是,单个D2D适配器实例化利用多个FDI实例来托管多个协议栈是可能的,其中每个实例维护独立状态机。
现在参照图11C,示出根据再一实施例的分层协议的一部分的方框图。如图中所示,电路1102具有协议层1110,协议层1110具有单个CXL栈,所述单个CXL栈具有多个组成协议。即,如图中所示,第一协议层1112可被用于CXL.i/o通信,而第二协议层1114可被用于CXL.cache或CXL.mem通信。如图中所见,这些个体协议层1112、1114中的每个个体协议层经独立FDI 11150,1耦合到D2D适配器1120。为了能够处理这两个协议层的通信,D2D适配器包括仲裁器/复用器(ARB/MUX 1122)。
在又一些情况下,多个协议栈可经独立FDI实例耦合到D2D适配器。因此,如图11D中所示,电路1103包括独立协议层11100,1,每个独立协议层可经独立FDI 11150,1耦合到D2D适配器1120。更具体地,如图中所示,这些多个协议层的通信可被提供给D2D适配器1120内的栈复用器1124。
在再一些情况下,多个CXL栈可被提供,并且通过独立FDI实例化而被互连到D2D适配器1120。因此,如图11E中所示,两个CXL栈具有协议层11120,1和11240,1,全部协议层可经独立FDI 11150-3耦合到D2D适配器1120。如图中所示,这些多个协议层的通信可被提供给单独的ARB/MUX实现11220,1,单独的ARB/MUX实现11220,1又耦合到栈复用器1124。
如以上例如针对图7所论述,封装中耦合在一起的多个管芯的初启流程可使用边带消息。为了RDI的初启流程的目的,这种边带消息可被用于协商活动状态转变。RDI初启流程的排序可依赖于在开始RDI初启流程之前完全完成链路训练的物理层。
现在参照图12,示出图示根据实施例的包括RDI初启流程的初启流程的时序图。如图12中所示,块1210、1220和1230与以上在图7中针对块710、720和730所论述的内容相同。在总体初启过程的阶段二的开始,物理层可向D2D适配器发送带内存在信号以指示互连的主带已完成链路训练。如图中所示,这个信号可作为pl_inband_pres信号被从物理层反映(reflect)到D2D适配器,该信号从重置状态转变为设置状态。需要注意的是,D2D适配器可处于时钟门控状态,直至它观测到这个信号。在那之后,D2D适配器可请求RDI移动到活动状态中(通过传输lp_state_req_active信号)。当传输两个物理层之间的边带消息(以下论述其细节)时,物理层将状况信号状态(即,pl_state_sts)等于活动状态返回给D2D适配器。此时,阶段二完成,并且总体初启流程的进一步操作可被执行。
如图12中所示,链路初启的阶段2的这个示例性流程突出显示RDI上的转变。RDI上的这种阶段排序协调从重置状态到活动状态的状态转变。在一个实施例中,下面的流程可能发生:
1.一旦物理层已完成链路训练,它就与适配器进行pl_clk_req握手并且在RDI上反映pl_inband_pres=1。需要注意的是,pl_clk_req握手未被示出在图12中的示例性流程中。
2.这是适配器通过lp_wake_req握手来请求活动状态的触发,lp_wake_req也未被示出在图12中的示例性流程中。
3.仅在对lp_state_req=活动进行采样之后,物理层才在边带上向远程链路合作伙伴的物理层发送{LinkMgmt.RDI.Req.Active}包。
4.物理层在边带上利用{LinkMgmt.RDI.Rsp.Active}消息对{LinkMgmt.RDI.Rsp.Active}边带消息做出响应。在物理层已对来自其本地RDI接口的lp_state_req=活动进行采样之后,{LinkMgmt.RDI.Rsp.Active}被发送。
5.一旦物理层已发送并且接收{LinkMgmt.RDI.Rsp.Active}边带消息,它就将pl_state_sts转变为活动状态。
6.这打开(open up)适配器以转变为初启流程的阶段3。步骤3至5被称为“活动进入握手”,并且在从重置或重新训练(Retrain)状态转变为活动之前完成步骤3至5。
在一个或多个实施例中,当状况信号(pl_state_sts)是重置、链路重置(LinkReset)、禁用(Disabled)或功率管理(PM)时,动态粗略时钟门控可能发生在D2D适配器和物理层中。握手机制可被使用,从而D2D适配器能够通过断言(assert)lp_wake_req(与物理层中的lclk可用性异步)来请求去除物理层的时钟门控。物理层利用pl_wake_ack(与lclk同步)做出响应。唤醒Req/Ack是当移动离开重置或PM状态时的状态转变请求(在lp_state_req或lp_linkerror上)的完全握手,并且还可被用于在边带接口上发送包。
在RDI接口上使用握手,可能发生PM进入(例如,所谓的L1或L2状态,其中L2是与L1相比更深的低功率状态)、退出和中止流程。用于L1和L2的操作可能是相同的,不同之处在于,从L2退出到重置状态,而从L1退出到重新训练状态。术语“PM”可被用于表明L1或L2。在实施例中,“PM请求”边带消息是{LinkMgmt.RDI.Req.L1}或{LinkMgmt.RDI.Req.L2},并且“PM响应”边带消息是{LinkMgmt.RDI.Rsp.L1}或{LinkMgmt.RDI.Rsp.L2}。
不管协议如何,PM进入或退出流程在RDI上是对称的。一旦PM进入的条件已满足,两个物理层就都通过边带消息发出PM进入请求。一旦两侧都已接收到有效“PM响应”边带消息,PM进入就被视为成功并且完成。一旦RDI状况是PM,物理层就能够将本身转变为功率节省状态(例如,关闭PLL)。需要注意的是,即使在L1状态期间,边带逻辑和对应PLL也保持开启。在适配器向远程链路合作伙伴请求PM进入之前,适配器中的适配器链路状态机(适配器LSM)可移动到对应PM状态。处于PM的适配器LSM意味着适配器的重试缓冲器是空的,并且它不具有等待(pending)调度的任何新微片(或Ack/Nak),本质上,当由适配器向物理层请求PM进入时,在主带上不存在业务。一旦RDI状况是PM并且在边带上不存在未完成的事务或响应,就允许适配器对它的边带逻辑进行时钟门控。
与以上在图12中所论述的初启流程类似的初启流程可被用于初启FDI。在这种情况下,也可使用边带通信与远程链路合作伙伴进行活动转变协商。由于边带运行得比主带慢,所以两个装置都可确保接收器在这种活动状态转变之前准备好。可能存在单独的握手以确保在两侧的协议层的接收器在这种活动状态转变之前并且在打开传送器之前都准备好。
现在参照图13,示出图示根据实施例的包括FDI初启流程的初启流程的时序图。这里示出与图12中用于RDI初启的流程类似的流程。然而,对于FDI初启,通信发生在对应D2D适配器和协议层之间以指示主带链路训练已完成,这使协议层退出时钟门控状态(如果存在的话)。其后,协议层可请求进入活动状态,并且边带通信发生在两个管芯的D2D适配器之间,如图中所示。在完成这些消息时,D2D适配器打开它的传送器并且移动到活动状况。其后,如果存在ARB/MUX,则在移动到协议层的活动状态之前,可能发生ARB/MUX链路管理包(ALMP)交换。此时,所有初启流程完成,并且正常微片传递可开始。
图13示出突出显示FDI上的转变的、链路初启的阶段3的示例性流程。FDI上的这种阶段排序协调从重置到活动的状态转变。如果存在多个协议栈或ARB/MUX,则对于每个协议层栈,相同的序列独立地发生。在边带消息编码中,针对适配器0链路状态机(LSM)图示FDI上的流程,然而,适配器1LSM向它的远程链路合作伙伴发送与适配器1对应的边带消息编码。在一个实施例中,该流程可如下:
7.一旦适配器已完成RDI上至活动的转变以及与远程链路合作伙伴的成功参数协商,它就与协议层进行pl_clk_req握手并且在FDI上反映pl_inband_pres=1。需要注意的是,pl_clk_req握手未被示出在图13中的示例性流程中。
8.这是协议层请求活动状态的触发。允许协议层在请求活动状态之前等待,直至pl_protocol_vld=1。它执行lp_wake_req握手,lp_wake_req握手也未被示出在图13中的示例性流程中。
9.在对lp_state_req=活动进行采样时,适配器在边带上向远程链路合作伙伴发送{LinkMgmt.Adapter0.Req.Active}消息。
10.在确保协议层的接收器准备好之后,适配器在边带上利用{LinkMgmt.Adapter.Rsp.Active}消息对{LinkMgmt.Adapter.Req.Active}边带消息做出响应。仅在适配器已对pl_rx_active_req=lp_rx_active_sts=1进行采样之后,才发送{LinkMgmt.Adapter0.Rsp.Active}。如前所述,pl_clk_req握手也适用于pl_rx_active_req;适配器能够在进行初启流程的同时持续地使pl_clk_req保持被断言(一旦它已针对pl_inband_pres被断言)。
11.如果不存在ARB/MUX,则一旦适配器已发送和接收{LinkMgmt.Adapter0.Rsp.Active}边带消息,它就针对协议层将pl_state_sts转变为活动,并且微片传递能够开始。
12.如果存在ARB/MUX,则{LinkMgmt.Adapter0.Rsp.Active}边带消息的发送和接收打开ARB/MUX以通过主带执行ALMP交换,并且最终将虚拟LSM转变为活动状态。步骤3至6构成FDI上的“活动进入握手”,并且针对每次进入活动状态,执行步骤3至6。
PM进入和退出的排序也可在FDI上被执行,可能对于L1或L2进入而发生这种情况,但L1退出使状态机通过重新训练转变为活动,而L2退出使状态机通过重置转变为活动。下面的流程说明使用L1作为示例。“PM请求”边带消息是{LinkMgmt.Adapter*.Req.L1}或{LinkMgmt.Adapter*.Req.L2},并且“PM响应”边带消息是{LinkMgmt.Adapter*.Rsp.L1}或{LinkMgmt.Adapter*.Rsp.L2}。在边带消息编码中,针对适配器0LSM图示FDI上的流程,然而,适配器1LSM向它的远程链路合作伙伴发送与适配器1对应的边带消息编码。
在空闲时间准则已满足之后,协议层可在FDI上请求PM进入。对于PCIe和CXL.io协议,当使用D2D适配器的重试缓冲器时,PM DLLP不被用于协商PM进入/退出(诸如,对于UCIe微片模式)。如果在UCIe微片模式下操作并且ARB/MUX存在于D2D适配器内,则它遵循CXL规范(对于256B微片模式)的规则以使vLSM变为对应PM状态。需要注意的是,即使对于CXL1.1、CXL 2.0、68B-增强微片模式,也使用与256B微片模式相同的ALMP规则。一旦vLSM处于PM状态,ARB/MUX就请求适配器LSM进入对应PM状态,并且适配器LSM转变为PM。如果CXL或PCIe协议已被协商,则仅上游端口(UP)能够使用从UP适配器到下游端口(DP)适配器的边带消息来启动PM进入。一旦UP接收到有效“PM响应”边带消息,PM进入就可被视为成功并且完成。
当pl_state_sts是重置、链路重置、禁用或PM状态时,动态粗略时钟门控可能发生在适配器和协议层中。需要注意的是,如果目的是当链路处于错误状态时节省功率,则在链路错误状态下不允许时钟门控,尽管预期UCIe使用使错误处理机能够确保链路不会卡在链路错误状态。
通过断言lp_wake_req(与适配器中的lclk可用性异步),协议层能够请求去除适配器的时钟门控。适配器利用pl_wake_ack(与lclk同步)做出响应。当pl_wake_ack被断言时的内部时钟去门控的范围是实现特定的,但lclk到此时是可用的以便能够从协议层实现FDI接口转变。唤醒Req/Ack是完全握手,并且被用于当移动离开重置或PM状态时的状态转变请求(在lp_state_req或lp_linkerror上),和/或被用于在边带接口上发送包。
需要注意的是,在各种实施例中,本文中描述的特征中的一个或多个可以是可被配置为例如在动态用户控制下基于存储在一个或多个配置寄存器(例如,所述一个或多个配置寄存器可存在于D2D适配器或物理层中的一个或多个中)中的信息被启用或禁用。除了各种特征的动态(或引导时间)启用或禁用之外,还可能的是,提供关于UCIe通信的某些方面的运行参数的可配置性。
实施例可支持两种广泛的使用模型。第一种是封装级别的集成以实现功率高效的且具有成本效益的性能。在板级别(board level)附着的组件(诸如,存储器、加速器、联网装置、调制解调器等)能够在封装级别被集成,适用于从手持到高端服务器。在这种用例中,来自潜在多个源的管芯可通过不同封装选项而连接,甚至连接在同一个封装上。
第二种使用是使用不同类型的介质(例如,光缆、电缆、毫米波)使用UCIe重定时器来提供封装外连接性以在机架或机柜级别输送底层协议(例如,PCIe、CXL),以便能够使用加载-存储语义、超越节点级别到达机架/机柜级别来实现资源池化(pool)、资源共享和/或消息传送,从而在边缘和数据中心得到更好的功率高效的且具有成本效益的性能。
如以上所论述,在数据中心用例中,可诸如结合机架或机柜来实现实施例。作为示例,来自不同计算机壳的多个计算节点可连接到CXL交换机。然后,CXL交换机可连接到多个CXL加速器/类型-3存储器装置,所述多个CXL加速器/类型-3存储器装置能够被放置在一个或多个单独的抽屉中。
现在参照图14,示出根据实施例的另一示例性系统的方框图。在图14中,系统1400可以是基于机架的服务器的全部或一部分,所述基于机架的服务器具有有着计算抽屉的形式的多个主机,所述多个主机可经一个或多个交换机耦合到池化存储器。
如图中所示,存在多个主机1430-1-n(在本文中也被称为“主机1430”)。每个主机可被实现为计算抽屉,所述计算抽屉具有一个或多个SoC、存储器、存储装置、接口电路系统以及诸如此类。在一个或多个实施例中,每个主机1430可包括与不同高速缓存一致性域对应的一个或多个虚拟分级体系。主机1430可耦合到交换机1420,交换机1420可被实现为UCIe或CXL交换机(例如,CXL 2.0(或以后)交换机)。在实施例中,通过至少一个UCIe重定时器(所述至少一个UCIe重定时器可存在于主机1430和交换机1420之一或二者中),使用封装外互连(例如,运行CXL协议的UCIe互连),每个主机1430可耦合到交换机1420。
交换机1420可耦合到多个装置1410-1-x(在本文中也被称为“装置1410”),所述多个装置1410-1-x中的每个可以是存储器装置(例如,类型3的CXL存储器扩展装置)和/或加速器。在图14的示图中,每个装置1410被示出为具有任何数量的存储器区域(例如,定义的分区、存储器范围等)的类型3的存储器装置。根据配置和用例,某些装置1410可包括分派给特定主机的存储器区域,而其他装置1410可包括指定为共享存储器的至少一些存储器区域。虽然实施例在这个方面不受限制,但可利用任何(一种或多种)类型的计算机存储器(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、非易失性存储器(NVM)、DRAM和NVM的组合等)来实现装置1410中所包括的存储器。
现在参照图15,示出根据另一实施例(诸如,边缘平台)的系统的方框图。如图15中所示,多处理器系统1500包括经互连1550耦合的第一处理器1570和第二处理器1580,互连1550能够是根据实施例的运行一致性协议的UCIe互连。如图15中所示,处理器1570和1580中的每个可以是众核(many core)处理器,所述众核处理器包括代表性的第一处理器核和第二处理器核(即,处理器核1574a和1574b以及处理器核1584a和1584b)。
在图15的实施例中,处理器1570和1580还包括点对点互连1577和1587,所述点对点互连1577和1587经互连1542和1544(所述互连1542和1544可以是根据实施例的UCIe链路)耦合到交换机1559和1560。然后,交换机1559、1560耦合到池化存储器1555和1565(例如,经UCIe链路)。
仍然参照图15,第一处理器1570还包括存储器控制器集线器(MCH)1572以及点对点(P-P)接口1576和1578。类似地,第二处理器1580包括MCH 1582以及P-P接口1586和1588。如图15中所示,MCH 1572和1582将处理器耦合到相应存储器,即,存储器1532和存储器1534,所述存储器1532和存储器1534可以是在本地附着到相应处理器的系统存储器(例如,DRAM)的部分。第一处理器1570和第二处理器1580可分别经P-P互连1576和1586耦合到芯片集1590。如图15中所示,芯片集1590包括P-P接口1594和1598。
另外,芯片集1590包括接口1592,接口1592用于通过P-P互连1539来耦合芯片集1590与高性能图形引擎1538。如图15中所示,各种输入/输出(I/O)装置1514以及总线桥1518可耦合到第一总线1516,总线桥1518将第一总线1516耦合到第二总线1520。在一个实施例中,各种装置可耦合到第二总线1520,各种装置例如包括键盘/鼠标1522、通信装置1526和可包括代码1530的数据存储单元1528(诸如盘驱动器或其他大容量存储装置)。另外,音频I/O 1524可耦合到第二总线1520。
现在参照图16,示出根据另一实施例的系统1600的方框图。如图16中所示,系统1600可以是任何类型的计算装置,并且在一个实施例中,可以是服务器系统。在图16的实施例中,系统1600包括多个CPU 1610a,b,所述CPU 1610a,b又耦合到相应系统存储器1620a,b,在实施例中,所述系统存储器1620a,b可被实现为DIMM,诸如双倍数据速率(DDR)存储器、永久或其他类型的存储器。需要注意的是,CPU 1610可经互连系统1615(诸如,UCIe或实现一致性协议的其他互连)耦合在一起。
为了使协同(coherent)加速器装置和/或智能适配器装置能够通过潜在多种通信协议耦合到CPU 1610,可存在多个互连1630a1-b2。每个互连1630可以是根据实施例的UCIe链路的给定实例。
在示出的实施例中,相应CPU 1610耦合到对应现场可编程门阵列(FPGA)/加速器装置1650a,b(在一个实施例中,所述FPGA/加速器装置1650a,b可包括GPU)。另外,CPU 1610还耦合到智能NIC装置1660a,b。然后,智能NIC装置1660a,b耦合到交换机1680a,b(例如,根据实施例的CXL交换机),交换机1680a,b又耦合到池化存储器1690a,b(诸如永久存储器)。在实施例中,图16中示出的各种组件可实现用于执行如本文中所述的技术的电路系统。
下面的示例涉及另外的实施例。
在一个示例中,一种设备包括:第一管芯,所述第一管芯包括:第一管芯对管芯适配器,用于经FDI与第一协议层电路系统通信并且经RDI与第一物理层电路系统通信,其中所述第一管芯对管芯适配器用于接收消息信息,所述消息信息包括第一互连协议的第一信息;以及所述第一物理层电路系统,耦合到所述第一管芯对管芯适配器,其中所述第一物理层电路系统用于接收所述第一信息并且经互连将所述第一信息输出给第二管芯,所述第一物理层电路系统包括多个模块,所述多个模块中的每个模块包括模拟前端,所述模拟前端具有传送器电路系统和接收器电路系统。
在示例中,所述第一管芯对管芯适配器用于托管多个协议层电路系统,其中所述第一管芯对管芯适配器用于经第一FDI与所述第一协议层电路系统耦合并且经第二FDI与第二协议层电路系统耦合。
在示例中,所述第一管芯对管芯适配器用于维护用于所述第一协议层电路系统的第一独立状态机和用于所述第二协议层电路系统的第二独立状态机。
在示例中,所述第一管芯对管芯适配器还包括栈复用器,其中所述栈复用器用于从所述第一协议层电路系统接收第一信息并且从所述第二协议层电路系统接收第二信息,并且用于经所述RDI将所述第一信息或所述第二信息中的至少一个递交给所述第一物理层电路系统。
在示例中,所述设备还包括:多个仲裁器/复用器,所述多个仲裁器/复用器耦合到所述栈复用器。
在示例中,所述第一管芯对管芯适配器还包括仲裁器/复用器,所述仲裁器/复用器用于接收第二互连协议的CXL.mem信息和所述第二互连协议的CXL.i/o信息。
在示例中,所述第一管芯对管芯适配器用于向所述第一物理层电路系统发送CRC信息或奇偶校验信息中的至少一个,所述CRC信息或所述奇偶校验信息相对于与所述CRC信息或所述奇偶校验信息关联的数据交错(stagger)。
在示例中,所述第一物理层电路系统用于:在所述第一管芯的重置之后并且在边带训练之前,发送具有重置状态的带内存在状态信号。
在示例中,在所述边带训练和主带训练之后,所述第一物理层电路系统用于发送具有设置状态的带内存在状态信号。
在示例中,所述第一管芯对管芯适配器将处于时钟门控状态,直至接收到具有所述设置状态的所述带内存在状态信号。
在示例中,所述互连包括具有UCIe架构的能够支持多协议的互连,所述第一互连协议包括PCIe协议的微片模式,并且所述互连还用于传输第二互连协议的第二信息,所述第二互连协议包括CXL协议的微片模式。
在另一实例中,一种方法包括:经第一管芯的物理层电路系统,执行耦合所述第一管芯与第二管芯的互连的主带的链路训练,所述互连包括所述主带和边带;在执行所述链路训练之后,经RDI向所述第一管芯的耦合到所述物理层电路系统的管芯对管芯适配器发送具有设置状态的第一信号,具有所述设置状态的所述第一信号用于指示所述链路训练的完成;经所述RDI与所述管芯对管芯适配器执行唤醒请求握手;并且在所述唤醒请求握手之后,经所述边带向所述第二管芯发送第一边带消息以指示所述管芯对管芯适配器处于活动状态。
在示例中,所述方法还包括:与所述管芯对管芯适配器执行第一请求握手以请求去除时钟门控。
在示例中,所述方法还包括:经所述边带从所述第二管芯接收第二边带消息,所述第二边带消息用于指示所述第二管芯的管芯对管芯适配器处于活动状态;并且经所述边带向所述第二管芯发送第三边带消息,所述第三边带消息用于确认所述第二边带消息。
在示例中,所述方法还包括:在所述物理层电路系统和所述第二管芯的第二物理层电路系统之间执行对称功率管理流程,并且其后将所述物理层电路系统转变为功率节省状态。
在另一示例中,一种包括指令的计算机可读介质用于执行如以上示例中的任何示例所述的方法。
在再一示例中,一种包括数据的计算机可读介质将由至少一个机器用来加工至少一个集成电路以执行如以上示例中的任何一个示例所述的方法。
在又一示例中,一种设备包括用于执行如以上示例中的任何一个示例所述的方法的部件。
在另一示例中,一种封装包括:第一管芯和经互连耦合到所述第一管芯的第二管芯。所述第一管芯包括CPU和协议栈,所述第一管芯包括:管芯对管芯适配器,用于经FDI与协议层电路系统通信并且经RDI与物理层电路系统通信,其中所述管芯对管芯适配器用于传输消息信息,所述消息信息包括第一互连协议的第一信息;以及所述物理层电路系统,经所述RDI耦合到所述管芯对管芯适配器,其中所述物理层电路系统用于接收所述第一信息并且经包括主带和边带的互连将所述第一信息输出给第二管芯;其中所述管芯对管芯适配器用于:经所述FDI向所述协议层电路系统发送具有设置状态的第一信号以指示所述互连的链路训练的完成;经所述FDI与所述协议层电路系统执行唤醒请求握手;并且在所述唤醒请求握手之后,经所述边带向所述第二管芯发送第一边带消息以指示所述协议层电路系统处于活动状态。
在示例中,响应于来自所述第二管芯的适配器活动请求边带消息,所述管芯对管芯适配器用于确保所述协议层电路系统的接收器处于活动状态并且随后向所述第二管芯发送适配器活动响应边带消息。
在示例中,在独立于所述第二管芯的重置流程的所述第一管芯的重置流程之后,所述物理层电路系统用于执行所述边带的边带初始化。
在示例中,所述封装还包括:封装衬底,所述封装衬底包括所述互连,所述互连包括封装上互连,所述封装上互连用于耦合所述第一管芯和所述第二管芯。
在示例中,所述第二管芯包括加速器,其中所述第一管芯用于根据PCIe协议的微片模式或CXL协议的微片模式中的至少一个与所述第二管芯通信。
在另一示例中,一种设备包括:用于执行耦合第一管芯部件与第二管芯部件的互连部件的主带的链路训练的部件,所述互连部件包括所述主带和边带;用于经RDI部件向所述第一管芯部件的耦合到物理层部件的管芯对管芯适配器部件发送具有设置状态的第一信号的部件,具有所述设置状态的所述第一信号用于指示所述链路训练的完成;用于经所述RDI部件与所述管芯对管芯适配器部件执行唤醒请求握手的部件;以及用于经所述边带向所述第二管芯部件发送第一边带消息以指示所述管芯对管芯适配器部件处于活动状态的部件。
在示例中,所述设备还包括:用于与所述管芯对管芯适配器部件执行第一请求握手以请求去除时钟门控的部件。
在示例中,所述设备还包括:用于经所述边带从所述第二管芯部件接收第二边带消息的部件,所述第二边带消息用于指示所述第二管芯部件的管芯对管芯适配器部件处于活动状态;以及用于经所述边带向所述第二管芯部件发送第三边带消息的部件,所述第三边带消息用于确认所述第二边带消息。
在示例中,所述设备还包括:用于在所述物理层部件和所述第二管芯部件的第二物理层部件之间执行对称功率管理流程的部件;以及用于将所述物理层部件转变为功率节省状态的部件。
应该理解,以上示例的各种组合是可能的。
需要注意的是,术语“电路”和“电路系统”在本文中可互换地使用。如本文中所使用的,这些术语和术语“逻辑”被用于单独或按照任何组合指代模拟电路系统、数字电路系统、硬连线电路系统、可编程电路系统、处理器电路系统、微控制器电路系统、硬件逻辑电路系统、状态机电路系统和/或任何其他类型的物理硬件组件。实施例可被用在许多不同类型的系统中。例如,在一个实施例中,通信装置能够被布置为执行本文中描述的各种方法和技术。当然,本发明的范围不限于通信装置,并且替代地,其他实施例能够涉及用于处理指令的其他类型的设备或者包括指令的一个或多个机器可读介质,响应于在计算装置上执行所述指令,所述指令使所述装置执行本文中描述的方法和技术中的一个或多个。
实施例可用代码来实现,并且可被存储在已在其上存储有指令的非暂态存储介质上,所述指令能够被用于对系统进行编程以执行所述指令。实施例还可用数据来实现,并且可被存储在非暂态存储介质上,如果所述非暂态存储介质由至少一个机器使用,则所述非暂态存储介质使所述至少一个机器加工至少一个集成电路系统以执行一个或多个操作。又一些实施例可被实现在包括信息的计算机可读存储介质中,当所述信息被制造到SOC或其他处理器中时,所述信息用于配置SOC或其他处理器以执行一个或多个操作。存储介质可包括但不限于:任何类型的盘,包括:软盘、光盘、固态驱动器(SSD)、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)和磁光盘;半导体装置,诸如,只读存储器(ROM)、随机存取存储器(RAM)(诸如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM);磁卡或光卡;或者适合存储电子指令的任何其他类型的介质。
尽管已针对有限数量的实现来描述了本公开,但受益于本公开的本领域技术人员将会从其中理解许多修改和变化。旨在所附权利要求涵盖所有这种修改和变化。
Claims (26)
1.一种设备,包括:
第一管芯,包括:
第一管芯对管芯适配器,用于经微片感知管芯对管芯接口(FDI)与第一协议层电路系统通信并且经原始管芯对管芯接口(RDI)与第一物理层电路系统通信,其中所述第一管芯对管芯适配器用于接收消息信息,所述消息信息包括第一互连协议的第一信息;以及
所述第一物理层电路系统,耦合到所述第一管芯对管芯适配器,其中所述第一物理层电路系统用于接收所述第一信息并且经互连将所述第一信息输出给第二管芯,所述第一物理层电路系统包括多个模块,所述多个模块中的每个模块包括模拟前端,所述模拟前端具有传送器电路系统和接收器电路系统。
2.如权利要求1所述的设备,其中所述第一管芯对管芯适配器用于托管多个协议层电路系统,其中所述第一管芯对管芯适配器用于经第一FDI与所述第一协议层电路系统耦合并且经第二FDI与第二协议层电路系统耦合。
3.如权利要求2所述的设备,其中所述第一管芯对管芯适配器用于维护用于所述第一协议层电路系统的第一独立状态机和用于所述第二协议层电路系统的第二独立状态机。
4.如权利要求2所述的设备,其中所述第一管芯对管芯适配器还包括栈复用器,其中所述栈复用器用于从所述第一协议层电路系统接收所述第一信息并且从所述第二协议层电路系统接收第二信息,并且用于经所述RDI将所述第一信息或所述第二信息中的至少一个递交给所述第一物理层电路系统。
5.如权利要求4所述的设备,还包括:多个仲裁器/复用器,所述多个仲裁器/复用器耦合到所述栈复用器。
6.如权利要求4所述的设备,其中所述第一管芯对管芯适配器还包括仲裁器/复用器,所述仲裁器/复用器用于接收第二互连协议的计算快速链路(CXL)存储器(CXL.mem)信息和所述第二互连协议的CXL输入/输出(CXL.i/o)信息。
7.如权利要求1所述的设备,其中所述第一管芯对管芯适配器用于向所述第一物理层电路系统发送循环冗余校验和(CRC)信息或奇偶校验信息中的至少一个,所述CRC信息或所述奇偶校验信息相对于与所述CRC信息或所述奇偶校验信息关联的数据交错。
8.如权利要求1-7中任何一项所述的设备,其中所述第一物理层电路系统用于:在所述第一管芯的重置之后并且在边带训练之前,发送具有重置状态的带内存在状态信号。
9.如权利要求8所述的设备,其中在所述边带训练和主带训练之后,所述第一物理层电路系统用于发送具有设置状态的带内存在状态信号。
10.如权利要求9所述的设备,其中所述第一管芯对管芯适配器将处于时钟门控状态,直至接收到具有所述设置状态的所述带内存在状态信号。
11.如权利要求1所述的设备,其中所述互连包括具有通用芯粒互连快速(UCIe)架构的能够支持多协议的互连,所述第一互连协议包括外围组件互连快速(PCIe)协议的微片模式,并且所述互连还用于传输第二互连协议的第二信息,所述第二互连协议包括计算快速链路(CXL)协议的微片模式。
12.一种方法,包括:
经第一管芯的物理层电路系统,执行耦合所述第一管芯与第二管芯的互连的主带的链路训练,所述互连包括所述主带和边带;
在执行所述链路训练之后,经原始管芯对管芯接口(RDI)向所述第一管芯的耦合到所述物理层电路系统的管芯对管芯适配器发送具有设置状态的第一信号,具有所述设置状态的所述第一信号用于指示所述链路训练的完成;
经所述RDI与所述管芯对管芯适配器执行唤醒请求握手;并且
在所述唤醒请求握手之后,经所述边带向所述第二管芯发送第一边带消息以指示所述管芯对管芯适配器处于活动状态。
13.如权利要求12所述的方法,还包括:与所述管芯对管芯适配器执行第一请求握手以请求去除时钟门控。
14.如权利要求12所述的方法,还包括:
经所述边带从所述第二管芯接收第二边带消息,所述第二边带消息用于指示所述第二管芯的管芯对管芯适配器处于活动状态;并且
经所述边带向所述第二管芯发送第三边带消息,所述第三边带消息用于确认所述第二边带消息。
15.如权利要求12所述的方法,还包括:在所述物理层电路系统和所述第二管芯的第二物理层电路系统之间执行对称功率管理流程,并且其后将所述物理层电路系统转变为功率节省状态。
16.一种计算机可读存储介质,包括计算机可读指令,当所述计算机可读指令被执行时,所述计算机可读指令实现如权利要求12至15中任何一项所述的方法。
17.一种设备,包括用于执行如权利要求12至15中任何一项所述的方法的部件。
18.一种封装,包括:
第一管芯,包括中央处理单元(CPU)和协议栈,所述第一管芯包括:
管芯对管芯适配器,用于经微片感知管芯对管芯接口(FDI)与协议层电路系统通信并且经原始管芯对管芯接口(RDI)与物理层电路系统通信,其中所述管芯对管芯适配器用于传输消息信息,所述消息信息包括第一互连协议的第一信息;以及
所述物理层电路系统,经所述RDI耦合到所述管芯对管芯适配器,其中所述物理层电路系统用于接收所述第一信息并且经包括主带和边带的互连将所述第一信息输出给第二管芯;
其中所述管芯对管芯适配器用于:
经所述FDI向所述协议层电路系统发送具有设置状态的第一信号以指示所述互连的链路训练的完成;
经所述FDI与所述协议层电路系统执行唤醒请求握手;并且
在所述唤醒请求握手之后,经所述边带向所述第二管芯发送第一边带消息以指示所述协议层电路系统处于活动状态;以及
所述第二管芯,经所述互连耦合到所述第一管芯。
19.如权利要求18所述的封装,其中响应于来自所述第二管芯的适配器活动请求边带消息,所述管芯对管芯适配器用于确保所述协议层电路系统的接收器处于活动状态并且随后向所述第二管芯发送适配器活动响应边带消息。
20.如权利要求18所述的封装,其中所述物理层电路系统用于:在独立于所述第二管芯的重置流程的所述第一管芯的重置流程之后,执行所述边带的边带初始化。
21.如权利要求18所述的封装,还包括:封装衬底,所述封装衬底包括所述互连,所述互连包括封装上互连,所述封装上互连用于耦合所述第一管芯和所述第二管芯。
22.如权利要求18所述的封装,其中所述第二管芯包括加速器,其中所述第一管芯用于根据外围组件互连快速(PCIe)协议的微片模式或计算快速链路(CXL)协议的微片模式中的至少一个与所述第二管芯通信。
23.一种设备,包括:
用于执行耦合第一管芯部件与第二管芯部件的互连部件的主带的链路训练的部件,所述互连部件包括所述主带和边带;
用于经RDI部件向所述第一管芯部件的耦合到物理层部件的管芯对管芯适配器部件发送具有设置状态的第一信号的部件,具有所述设置状态的所述第一信号用于指示所述链路训练的完成;
用于经所述RDI部件与所述管芯对管芯适配器部件执行唤醒请求握手的部件;以及
用于经所述边带向所述第二管芯部件发送第一边带消息以指示所述管芯对管芯适配器部件处于活动状态的部件。
24.如权利要求23所述的设备,还包括:用于与所述管芯对管芯适配器部件执行第一请求握手以请求去除时钟门控的部件。
25.如权利要求23所述的设备,还包括:
用于经所述边带从所述第二管芯部件接收第二边带消息的部件,所述第二边带消息用于指示所述第二管芯部件的管芯对管芯适配器部件处于活动状态;以及
用于经所述边带向所述第二管芯部件发送第三边带消息的部件,所述第三边带消息用于确认所述第二边带消息。
26.如权利要求23所述的设备,还包括:
用于在所述物理层部件和所述第二管芯部件的第二物理层部件之间执行对称功率管理流程的部件;以及
用于将所述物理层部件转变为功率节省状态的部件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163295144P | 2021-12-30 | 2021-12-30 | |
US63/295144 | 2021-12-30 | ||
US17/844366 | 2022-06-20 | ||
US17/844,366 US20220327083A1 (en) | 2021-12-30 | 2022-06-20 | Standard interfaces for die to die (d2d) interconnect stacks |
PCT/US2022/050657 WO2023129306A1 (en) | 2021-12-30 | 2022-11-22 | Standard interfaces for die to die (d2d) interconnect stacks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118103826A true CN118103826A (zh) | 2024-05-28 |
Family
ID=83509267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280045501.4A Pending CN118103826A (zh) | 2021-12-30 | 2022-11-22 | 用于管芯对管芯(d2d)互连栈的标准接口 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220327083A1 (zh) |
CN (1) | CN118103826A (zh) |
WO (1) | WO2023129306A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118394696A (zh) * | 2024-06-28 | 2024-07-26 | 中国人民解放军国防科技大学 | 一种兼容多种芯粒互连接口的层次化链路管理方法及芯片 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220327083A1 (en) * | 2021-12-30 | 2022-10-13 | Intel Corporation | Standard interfaces for die to die (d2d) interconnect stacks |
US20240186999A1 (en) * | 2022-12-01 | 2024-06-06 | Xilinx, Inc. | Clocking architecture for communicating synchronous and asynchronous clock signals over a communication interface |
WO2024118171A1 (en) * | 2022-12-01 | 2024-06-06 | Xilinx, Inc. | Clocking architecture for communicating clock signals over a communication interface |
CN117457619B (zh) * | 2023-12-26 | 2024-04-05 | 北京奎芯集成电路设计有限公司 | 一种基于高带宽互联技术的半导体器件 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5970917B2 (ja) * | 2012-03-30 | 2016-08-17 | 富士通株式会社 | 受信回路、情報処理装置、および制御方法 |
US8549205B1 (en) * | 2012-05-22 | 2013-10-01 | Intel Corporation | Providing a consolidated sideband communication channel between devices |
US11095556B2 (en) * | 2017-06-30 | 2021-08-17 | Intel Corporation | Techniques to support multiple protocols between computer system interconnects |
US10901933B2 (en) * | 2019-06-17 | 2021-01-26 | Hewlett Packard Enterprise Development Lp | Programmable link training sequences |
US11971841B2 (en) * | 2020-05-21 | 2024-04-30 | Intel Corporation | Link layer-PHY interface adapter |
US20220327083A1 (en) * | 2021-12-30 | 2022-10-13 | Intel Corporation | Standard interfaces for die to die (d2d) interconnect stacks |
-
2022
- 2022-06-20 US US17/844,366 patent/US20220327083A1/en active Pending
- 2022-11-22 CN CN202280045501.4A patent/CN118103826A/zh active Pending
- 2022-11-22 WO PCT/US2022/050657 patent/WO2023129306A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118394696A (zh) * | 2024-06-28 | 2024-07-26 | 中国人民解放军国防科技大学 | 一种兼容多种芯粒互连接口的层次化链路管理方法及芯片 |
Also Published As
Publication number | Publication date |
---|---|
WO2023129306A1 (en) | 2023-07-06 |
US20220327083A1 (en) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3913489A1 (en) | Link layer-phy interface adapter | |
US11003610B2 (en) | Multichip package link | |
US20240020259A1 (en) | Extending multichip package link off package | |
TWI634432B (zh) | 多晶片封裝鏈結技術 | |
US20220327083A1 (en) | Standard interfaces for die to die (d2d) interconnect stacks | |
US20220342841A1 (en) | Die-to-die adapter | |
US20160285624A1 (en) | Pseudorandom bit sequences in an interconnect | |
US20220334995A1 (en) | Parameter exchange for a die-to-die interconnect | |
WO2023121808A1 (en) | Sideband interface for die-to-die interconnects | |
US20220237138A1 (en) | Link initialization training and bring up for die-to-die interconnect | |
US20220327276A1 (en) | Lane repair and lane reversal implementation for die-to-die (d2d) interconnects | |
US20210004347A1 (en) | Approximate data bus inversion technique for latency sensitive applications | |
KR20240124187A (ko) | 다이-투-다이 인터커넥트의 컴플라이언스 및 디버그 테스트 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |