CN105721057A - 高性能光中继器 - Google Patents
高性能光中继器 Download PDFInfo
- Publication number
- CN105721057A CN105721057A CN201510802308.2A CN201510802308A CN105721057A CN 105721057 A CN105721057 A CN 105721057A CN 201510802308 A CN201510802308 A CN 201510802308A CN 105721057 A CN105721057 A CN 105721057A
- Authority
- CN
- China
- Prior art keywords
- link
- signal
- equipment
- path
- electric
- 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.)
- Granted
Links
- 230000003287 optical effect Effects 0.000 title claims abstract description 170
- 238000001514 detection method Methods 0.000 claims description 68
- 238000000034 method Methods 0.000 claims description 39
- 238000012549 training Methods 0.000 claims description 32
- 230000015572 biosynthetic process Effects 0.000 claims description 26
- 238000003786 synthesis reaction Methods 0.000 claims description 26
- 238000013507 mapping Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 14
- 230000002085 persistent effect Effects 0.000 claims description 9
- 230000003252 repetitive effect Effects 0.000 claims description 7
- 239000013078 crystal Substances 0.000 claims description 3
- 102000005962 receptors Human genes 0.000 description 107
- 108020003175 receptors Proteins 0.000 description 107
- 230000005540 biological transmission Effects 0.000 description 46
- 238000003860 storage Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 27
- 239000003795 chemical substances by application Substances 0.000 description 25
- 230000011664 signaling Effects 0.000 description 21
- 230000006978 adaptation Effects 0.000 description 20
- 238000013461 design Methods 0.000 description 20
- 238000012937 correction Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 14
- 238000004804 winding Methods 0.000 description 14
- 230000009471 action Effects 0.000 description 12
- 239000000872 buffer Substances 0.000 description 12
- 230000014509 gene expression Effects 0.000 description 10
- 230000036961 partial effect Effects 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 7
- 230000000903 blocking effect Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000008093 supporting effect Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 238000010009 beating Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 3
- 230000001737 promoting effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000014616 translation Effects 0.000 description 3
- CVOFKRWYWCSDMA-UHFFFAOYSA-N 2-chloro-n-(2,6-diethylphenyl)-n-(methoxymethyl)acetamide;2,6-dinitro-n,n-dipropyl-4-(trifluoromethyl)aniline Chemical compound CCC1=CC=CC(CC)=C1N(COC)C(=O)CCl.CCCN(CCC)C1=C([N+]([O-])=O)C=C(C(F)(F)F)C=C1[N+]([O-])=O CVOFKRWYWCSDMA-UHFFFAOYSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000002045 lasting effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000007958 sleep Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000007739 conversion coating Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000002789 length control Methods 0.000 description 1
- 238000011068 loading method Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000004899 motility Effects 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007363 ring formation reaction Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000009331 sowing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/29—Repeaters
- H04B10/291—Repeaters in which processing or amplification is carried out without conversion of the main signal from optical form
- H04B10/298—Two-way repeaters, i.e. repeaters amplifying separate upward and downward lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/29—Repeaters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/25—Arrangements specific to fibre transmission
- H04B10/2575—Radio-over-fibre, e.g. radio frequency signal modulated onto an optical carrier
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/40—Transceivers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Electromagnetism (AREA)
- Information Transfer Systems (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本公开涉及高性能光中继器。光学元件通过第二电气链路耦合于第二设备。特定光学元件进一步在第二电气链路的第一入站通路上从第二设备接收第一信号、在第二电气链路的第二入站通路上从第二设备接收第二信号以及在特定光学链路上使第一和第二信号复用以向第一设备发送第一和第二信号。
Description
技术领域
本公开一般涉及计算机发展的领域,并且更具体地涉及中继器。
背景技术
半导体处理和逻辑设计的发展允许可在集成电路设备上存在的逻辑的数量增加。作为必然结果,计算机系统配置从系统中的单个或多个集成电路演变成在个体集成电路上存在的多个核、多个硬件线程和多个逻辑处理器,以及与这样的处理器集成的其他接口。处理器或集成电路典型地包括单个物理处理器芯片,其中该处理器芯片可包括任意数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中枢等。
由于在较小封装件装入更多处理能力的较大能力,较小计算设备越来越流行。智能电话、平板电脑、超薄笔记本和其他用户设备呈指数增长。然而,这些较小设备依赖既用于数据存储又用于超越形状因子的复杂处理的服务器。因此,高性能计算市场(即,服务器空间)的需求也增加。例如,在现代服务器中,典型地不仅存在具有多个核的单个处理器,而且还存在多个物理处理器(也称为多个插座)用于提高计算能力。但随着处理能力连同计算系统中设备的数量增加,插座与其他设备之间的通信变得更加关键。
信号中继器和再驱动器电路可以在一些系统中实现来补偿对物理通道长度的限制。例如,设备可具有有限的驱动能力,从而限制可安全驱动信号的距离。此外,一些互连标准可以规定对于信号线的物理长度的限制。长距离线可分成两个或以上段,在段与段之间具有缓冲器或中继器。中继器可以包括重定时器和再驱动器。
附图说明
图1图示根据一个实施例的系统的简化框图,该系统包括串行点到点互连用于连接计算机系统中的I/O设备。
图2图示根据一个实施例的分层协议栈的简化框图。
图3图示事务描述符的实施例。
图4图示串行点到点链路的实施例。
图5图示潜在高性能互连(HPI)系统配置的实施例。
图6图示与HPI关联的分层协议栈的实施例。
图7图示示例状态机的表示。
图8图示示例电气有序集的表示。
图9图示示例控制超序列。
图10图示具有嵌入式控制窗口的链路层数据流。
图11图示代表系统(其包括用于连接两个装置的光学链路)的简化框图。
图12图示代表电气链路上的下拉的简化框图。
图13图示代表系统(其包括用于连接两个装置的光学链路)的简化框图。
图14图示代表系统(其包括用于连接两个设备的光学链路)中的复用和解复用块的简化框。
图15图示代表示例时钟控制器的简化框。
图16图示对于计算系统(其包括多核处理器)的框图的实施例。
图17图示对于计算系统(其包括多核处理器)的框图的另一个实施例。
图18图示对于计算系统(其包括多个处理器插座)的方框的实施例。
各种图中的类似标号和名称指示类似元件。
具体实施方式
在下列描述中,阐述许多特定细节,例如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统部件、特定处理器流水线阶段、特定互连层、特定包/事务配置、特定事务名称、特定协议交换、特定链路宽度、特定实现和操作等的示例,以便提供本发明的全面理解。然而,不必采用这些特定细节来实践本公开的主旨,这对于本领域内技术人员可是明显的。在其他实例中,避免已知部件或方法的很详细描述,例如特定和备选处理器架构、对于描述的算法的特定逻辑电路/代码、特定固件代码、低级互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、采用代码的算法的特定表达、特定掉电和选通技术/逻辑和计算机系统的其他特定操作细节以便避免不必要地混淆本发明。
尽管下列实施例可参考特定集成电路中(例如计算平台或微处理器)的能量节约、能量效率、处理效率等描述,其他实施例能适用于其他类型的集成电路和逻辑设备。本文描述的实施例的相似技术和教导可适用于其他类型的电路或半导体器件,其也可从这样的特征获益。例如,公开的实施例不限于服务器计算机系统、台式计算机系统、便携式电脑、Ultrabooks™,而还可在例如手持设备、智能电话、平板电脑、其他薄笔记本、片上系统(SOC)设备和嵌入式应用等其他设备中使用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字拍摄装置、个人数字助理(PDA)和手持PC。在这里,对于高性能互连的相似技术可应用于在低功率互连中提高性能(或甚至节省电力)。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下文教导的功能和操作的任何其他系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而还可涉及对于能量节约和效率的软件优化。如将在下文的描述中变得很明显的,本文描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是其组合)对于进一步与性能考虑平衡的 ‘绿色技术’是必不可少的。
随着计算系统的发展,其中的部件正变得更复杂。用于在部件之间耦合和通信的互连架构在复杂性上也增加来确保对于最佳部件操作满足带宽要求。此外,不同的市场细分需要互连架构的不同方面来适应对应市场的需求。例如,服务器需要更高的性能,而移动生态系统有时能够为了功率节省而牺牲整体性能。甚至,大部分构造的广义目的是以最大功率节省提供最高可能性能。此外,多种不同互连可以潜在地从本文描述的主旨获益。
除其他示例外,外围部件互连(PCI)高速(PCIe)互连构造架构和QuickPath互连(QPI)构造架构可以潜在地根据除其他示例外的本文描述的一个或多个原理来改进。例如,PCIe的主要目标是使来自不同供应商的部件和设备能够在开放架构中互操作,从而跨越多个市场细分:客户端(台式机和手机)、服务器(标准和企业)以及嵌入式和通信设备。PCI 高速是对很多种未来计算和通信平台限定的高性能、通用I/O互连。一些PCI属性(例如它的使用模型、负载-贮存架构和软件接口)已经通过它的修订来维持,而先前的并行总线实现已经被高度能缩放的完全串行接口所取代。PCI高速的更近版本利用点到点互连、基于交换机的技术和封包化协议中的进展来交付新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和错误处理属于PCI高速所支持的一些高级特征之中。尽管本文的主要论述参考新的高性能互连(HPI)架构,本文描述的本发明的方面可适用于其他互连架构,例如PCIe兼容架构、QPI兼容架构、MIPI兼容架构、高性能架构或其他已知互连架构。
参考图1,图示构造的实施例,其由互连一组部件的点到点链路组成。系统100包括处理器105和耦合于控制器中枢115的系统存储器110。处理器105可以包括任何处理元件,例如微处理器、主处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前端总线(FSB)106耦合于控制器中枢115。在一个实施例中,FSB 106是如上文描述的串行点到点互连。在另一个实施例中,链路106包括串行差分互连架构,其与不同互连标准兼容。
系统存储器110包括任何存储器设备,例如随机存取存储器(RAM)、非易失性(NV)存储器或可被系统100中的设备访问的其他存储器。系统存储器110通过存储器接口116耦合于控制器中枢115。存储器接口的示例包括双数据速率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中枢115可以包括根中枢、根复合体或根控制器,例如在PCIe互连等级中。控制器中枢115的示例包括芯片集、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥和根控制器/中枢。术语芯片集通常指两个物理独立控制器中枢,例如耦合于互连控制器中枢(ICH)的存储器控制器中枢(MCH)。注意当前系统通常包括与处理器105集成的MCH,而控制器115采用如下文描述的相似的方式与I/O设备通信。在一些实施例中,对等路由可选地通过根复合体115来支持。
在这里,控制器中枢115通过串行链路119耦合于交换机/桥120。输入/输出模块117和121(其也可称为接口/端口117和121)可以包括/实现分层协议栈以在控制器中枢115与交换机120之间提供通信。在一个实施例中,多个设备能够耦合于交换机120。
交换机/桥120将包/消息从设备125上游(朝着根复合体沿层级向上)路由到控制器中枢115和下游(即远离根控制器沿层级向下)、从处理器105或系统存储器110路由到设备125。在一个实施例中,交换机120称为多个虚拟PCI到PCI桥设备的逻辑组件。设备125包括要耦合于例如I/O设备、网络接口控制器(NIC)、插卡、音频处理器、网络处理器、硬驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、Firewire设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备等电子系统的任何内部或外部设备或部件。通常在PCIe通俗语中,例如设备称为端点。尽管未具体示出,设备125可包括桥(例如,PCIe到PCI/PCI-X桥),用于支持设备的遗留或其他版本或这样的设备所支持的互连构造。
图形加速器130还可以通过串行链路132耦合于控制器中枢115。在一个实施例中,图形加速器130耦合于MCH,其耦合于ICH。交换机120以及相应地I/O设备125然后耦合于ICH。I/O模块131和118也用于实现分层协议栈以在图形加速器130与控制器中枢115之间通信。与上文的MCH论述相似,图形控制器或图形加速器130自身可在处理器105中集成。
转向图2,图示分层协议栈的实施例。分层协议栈200可以包括任何形式的分层通信栈,例如QPI栈、PCIe栈、下一代高性能计算互连(HPI)栈或其他分层栈。在一个实施例中,协议栈200可以包括事务层205、链路层210和物理层220。接口(例如图1中的接口117、118、121、122、126和131)可表示为通信协议栈200。作为通信协议栈的表示也可称为实现/包括协议栈的模块或接口。
包可以用于在部件之间传递信息。包可以在事务层205和数据链路层210中形成以将信息从传输部件运送到接收部件。当传输包流过其他层时,它们被扩展有额外信息,用于在那些层处理包。在接收侧,出现逆过程并且包从它们的物理层220表示变换成数据链路层210表示并且最后(对于事务层包)变换成可以由接收设备的事务层205处理的形式。
在一个实施例中,事务层205可以在设备的处理核与互连架构(例如数据链路层210与物理层220)之间提供接口。在该方面,事务层205的主要责任可以包括组装和拆卸包(即,事务层包或TLP)。转化层205还可以管理对于TLP的基于信用的流控。在一些实现中,除其他示例外,还可以使用分离事务(即,具有通过时间分离的请求和响应的事务),从而允许链路在目标设备聚集对于响应的数据时运送其他业务。
基于信用的流控可以用于利用互连构造来实现虚拟通道和网络。在一个示例中,设备可以对于事务层205中的接收缓冲器中的每个公告初始信用量。链路的相对端处的外部设备(例如图1中的控制器中枢115)可以对每个TLP所消耗的信用数量计数。如果事务未超出信用极限,可以传送事务。在接收响应时恢复一定信用量。除其他潜在优势外,这样的信用方案的优势的一个示例是信用回归的延时不影响性能(假定未遇到信用极限)。
在一个实施例中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括读请求和写请求中的一个或多个以将数据传输到存储器映射位点/从存储器映射位点传输数据。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如短地址格式(例如32位地址)或长地址格式(例如64位地址)。配置空间事务可以用于访问连接到互连的各种设备的配置空间。对于配置空间的事务可以包括读请求和写请求。消息空间事务(或简单地,消息)还可以定义成支持互连代理之间的带内通信。因此,在一个示例实施例中,事务层205可以组装包标头/有效载荷206。
快速参考图3,图示事务层包描述符的示例实施例。在一个实施例中,事务描述符300可以是用于运送事务信息的机构。在该方面,事务描述符300支持系统中事务的识别。其他潜在使用包括跟踪默认事务排序的修改和事务与通道关联。例如,事务描述符300可以包括全局标识符字段302、属性字段304和通道标识符字段306。在图示的示例中,描绘全局标识符字段302,其包括局部事务描述符字段308和源标识符字段310。在一个实施例中,全局事务描述符302对于所有未决请求是唯一的。
根据一个实现,局部事务标识符字段308是由请求代理生成的字段,并且对于该请求代理需要完成的所有未决请求可以是唯一的。此外,在该示例中,源标识符310在互连层级内唯一地标识请求者代理。因此,连同源ID 310,局部事务标识符308字段提供在层级域内事务的全局识别。
属性字段304规定事务的特性和关系。在该方面,属性字段304潜在地用于提供额外信息,其允许事务默认处理的修改。在一个实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316和非窥探字段318。在这里,优先级子字段312可由启动程序(initiator)修改来对事务指派优先级。保留属性字段314被保留以用于未来或供应商定义使用。使用优先级或安全属性的可能使用模型可使用保留属性字段来实现。
在该示例中,排序属性字段316用于供应可选信息,其传递可修改默认排序规则的排序类型。根据一个示例实现,排序属性“0”指示默认排序规则适用,其中排序属性“1”指示放宽排序,其中写可以超过在相同方向上的写,并且读完成可以超过在相同方向上的写。窥探属性字段318用于确定事务是否被窥探。如示出的,通道ID字段306识别事务与之关联的通道。
返回图2的论述,链路层210(也称为数据链路层210)可以充当事务层205与物理层220之间的中间阶段。在一个实施例中,数据链路层210的责任是提供可靠机制用于在链路上的两个部件之间交换事务层包(TLP)。数据链路层210的一侧接受事务层205所组装的TLP、应用包序列标识符211(即,识别号或包编号)、计算并且应用检错码(即,CRC
212)并且将修改的TLP提交给物理层220用于跨物理到外部设备的传送。
在一个示例中,物理层220包括逻辑子块221和电气子块222,用于将包物理传送到外部设备。在这里,逻辑子块221负责物理层221的“数字”功能。在该方面,逻辑子块可以包括:传送段,用于准备出站信息以供物理子块222传送;和接收器段,用于在将接收信息传递到链路层210之前识别并且准备它。
物理块222包括传送器和接收器。传送器由逻辑子块221供应符号,传送器使这些符号串行化并且传送到外部设备上。接收器被供应有来自外部设备的串行化符号并且将接收信号变换成位流。该位流被去串行化(de-serialized)并且供应给逻辑子块221。在一个示例实施例中,采用8b/10b传送代码,其中传送/接收十位符号。在这里,特殊符号用于用帧223来使包成帧。另外,在一个示例中,接收器还提供从进入串行流恢复的符号时钟。
如上文规定的,尽管事务层205、链路层210和物理层220参考协议栈(例如PCIe协议栈)的特定实施例论述,分层协议栈未这样受限制。事实上,可包括/实现任何分层协议并且采用本文论述的特征。作为示例,表示为分层协议的端口/接口可以包括:(1)用于组装包的第一层,即事务层;使包序列化的第二层,即链路层;和用于传送包的第三层,即物理层。作为特定示例,使用如本文描述的高性能互连分层协议。
接着参考图4,图示串行点到点构造的示例实施例。串行点到点链路可以包括用于传送串行数据的任何传送路径。在示出的实施例中,链路可以包括两个低压差分驱动信号对:传送对406/411和接收对412/407。因此,设备405包括用于将数据传送到设备410的传送逻辑406,和用于从设备410接收数据的接收逻辑407。也就是说,两个传送路径(即路径416和417)和两个接收路径(即路径418和419)被包括在链路的一些实现中。
传送路径指用于传送数据的任何路径,例如传送线、铜线、光学线、无线通信通道、红外通信链路或其他通信路径。两个设备(例如设备405和设备410)之间的连接称为链路,例如链路415。链路可支持一个通路-每个通路代表一组差分信号对(一对用于传送,一对用于接收)。为了对带宽定标,链路可聚集由xN指示的多个通路,其中N是任何支持的链路宽度,例如1、2、4、8、12、16、32、64或更宽。
差分对可以指用于传送差分信号的两个传送路径(例如线路416和417)。作为示例,当线路416从低电压水平切换到高电压水平(即,上升沿)时,线路417从高逻辑水平驱动到低逻辑水平(即,下降沿)。除其他示例优势外,差分信号潜在地证明更好的电气特性,例如更好的信号完整性,即,交叉耦合、电压过冲/下冲、成环(ringing)。这允许更好的定时窗口,其实现更快传送频率。
在一个实施例中,提供新的高性能互连(HPI)。HPI可以包括下一代高速缓存一致、基于链路的互连。作为一个示例,HPI可在包括在系统中的高性能计算平台(例如工作站或服务器)中使用,其中PCIe或另一个互连协议典型地用于连接处理器、加速器、I/O设备及类似物。然而,HPI不这样受限制。相反,HPI可在本文描述的系统或平台中的任何之中使用。此外,开发的个体思想可适用于其他互连和平台,例如PCIe、MIPI、QPI等。
为了支持多个设备,在一个示例实现中,HPI可以包括指令集架构(ISA),混合的(即,HPI能够在多个不同设备中实现)。在另一个情景中,HPI也可用于连接高性能I/O设备,而只是处理器或加速器。例如,高性能PCIe设备可通过合适的转化桥(即HPI到PCIe)而耦合于HPI。此外,HPI链路可由若干基于HPI的设备(例如处理器)采用各种方式(例如,星型、环型、网格,等)使用。图5图示多个潜在多插座配置的示例实现。双插座配置505如描述的那样可以包括两个HPI链路;然而,在其他实现中,可使用一个HPI链路。对于较大拓扑,可以使用任何配置,只要标识符(ID)可指派并且除其他额外或替代特征外还存在某一形式的虚拟路径即可。如示出的,在一个示例中,四插座配置510具有从每个处理器到另一个的HPI链路。但在配置515中示出的八插座实现中,不是每个插座都通过HPI链路直接连接到彼此。然而,如果在处理器之间存在虚拟路径或通道,配置受到支持。一系列受支持的处理器在本地域中包括2-32个。除其他示例外,通过使用多个域或节点控制器之间的其他互连来达到更高数量的处理器。
HPI架构包括分层协议架构的定义,其在一些示例中包括协议层(一致、不一致以及可选地,其他基于存储器的协议)、路由层、链路层和物理层。此外,除其他示例外, HPI可以进一步包括与功率管理器(例如功率控制单元(PCU))、测试和调试(DFT)设计、故障处理、寄存器、安全性相关的增强。图5图示示例HPI分层协议栈的实施例。在一些实现中,在图5中图示的层中的至少一些可以是可选的。每个层应对它自己的粒度级或量子级的信息(具有包630的协议层605a、b,具有flit 635的链路层610a、b,和具有phit 640的物理层605a、b)。注意包在一些实施例中可基于实现包括部分flit、单个flit或多个flit。
作为第一示例,phit 640的宽度包括1对1链路宽度到位的映射(例如,20位链路宽度包括20个位的phit,等)。flit可具有更大尺寸,例如184、192或200个位。注意如果phit 640是20位宽并且flit635的尺寸是184个位,则它取一部分的phit 640来传送一个flit635(例如,除其他示例外,以20个位的9.2个phit传送184位flit635或以20个位的9.6传送192位flit)。注意物理层处的基础链路的宽度可变化。例如,每方向通路的数量可包括2、4、6、8、10、12、14、16、18、20、22、24等。在一个实施例中,链路层610a、b能够将不同事务的多个片嵌入单个flit中,并且一个或多个标头(例如,1、2、3、4个)可嵌入flit内。在一个示例中,HPI将标头分成对应槽以使flit中的多个消息能够被派往不同节点。
在一个实施例中,物理层605a、b可以负责信息在物理介质上的快速传输(电或光等)。物理链路在两个链路层实体(例如层605a和605b)之间可以是点到点的。链路层610a、b可以从上层提炼物理层605a、b并且提供可靠传输数据(以及请求)和管理两个直接连接实体之间的流控的能力。链路层还可以负责将物理通道虚拟化为多个虚拟通道和消息类别。协议层620a、b在将协议消息递交给物理层605a、b以用于跨物理链路传输之前依赖链路层610a、b来将它们映射到合适的消息类别和虚拟通道。除其他示例外,链路层610a、b可支持多个消息,例如请求、窥探、响应、回写、不一致数据。
HPI的物理层605a、b(或PHY)可以在电气层(即,连接两个部件的电导体)之上和链路层610a、b以下实现,如在图6中图示的。物理层和对应的逻辑可以驻存在每个代理上并且连接彼此分离的两个代理(A和B)(例如,在链路任一侧上的设备上)上的链路层。本地和远程电气层通过物理介质(例如,线、导体、光等)连接。在一个实施例中,物理层605a、b具有两个主要阶段:初始化和操作。在初始化期间,连接对于链路层是不透明的并且信令可牵涉定时状态和握手事件的组合。在操作期间,连接对于链路层是透明的并且信令处于一定速度,其中所有通路作为单个链路一起操作。在操作阶段期间,物理层将flit从代理A传输到代理B以及从代理B传输到代理A。连接也称为链路并且在与链路层交换flit和当前配置的控制/状态(例如,宽度)时提炼一些物理方面,其包括来自链路层的介质、宽度和速度。初始化节点包括次要阶段,例如轮询、配置。操作阶段还包括次要阶段(例如,链路功率管理状态)。
在一个实施例中,可以实现链路层610a、b以便在两个协议或路由实体之间提供可靠数据传输。链路层可以从协议层620a、b提炼物理层605a、b,并且可以负责两个协议代理(A,B)之间的流控,并且向协议层(消息类别)和路由层(虚拟网络)提供虚拟通道服务。协议层620a、b与链路层610a、b之间的接口可以典型地处于包级。在一个实施例中,链路层处的最小传输单位称为flit,其是规定数量的位,例如192个位或某一其他额度。链路层610a、b依赖物理层605a、b来将物理层605a、b的传输单位(phit)成帧为链路层610a、b的传输单位(flit)。另外,链路层610a、b可在逻辑上分解成两个部分:发送者和接收者。一个实体上的发送者/接收者对可连接到另一个实体上的接收者/发送者对。流控通常既在flit又在包基础上进行。检错和纠错也潜在地在flit级基础上进行。
在一个实施例中,路由层615a、b可以提供灵活和分布式方法来将HPI事务从源路由到目的地。因为对于多个拓扑的路由算法可通过每个路由器处的可编程路由表来规定(编程在一个实施例中由固件、软件或其组合进行),方案是灵活的。路由功能性可被分布;路由可通过一系列路由步骤来进行,其中每个路由步骤通过源、中间或目的路由器处的表的查找来定义。源处的查找可用于将HPI包注入HPI构造。中间路由器的查找可用于将HPI包从输入端口路由到输出端口。目的端口处的查找可用于对准目的HPI协议代理。注意路由层在一些实现中可以是薄的,因为路由表以及因此路由算法未被规范具体定义。这允许灵活性和多种使用模型,其包括要由系统实现定义的灵活平台架构拓扑。路由层615a、b依赖链路层610a、b用于提供多至三个(或更多)虚拟网络(VN)的使用-在一个示例中,两个无死锁VN(VN0和VN1)具有在每个虚拟网络中定义的若干消息类别。共享自适应虚拟网络(VNA)可在链路层中定义,但该自适应网络可未在路由概念中直接暴露,因为除其他特征和示例外,每个消息类别和虚拟网络可具有专用资源和保证的转发进度。
在一个实施例中,HPI可以包括一致性协议层620a、b,用于支持代理高速缓存来自存储器的数据的行。希望高速缓存存储器数据的代理可使用一致性协议来读取数据行以装载到它的高速缓存。希望修改它的高速缓存中的数据行的代理可使用一致性协议以在修改数据之前获取行的所有权。在修改行后,代理可遵循使它保持在它的高速缓存中直到它将行写回存储器或在对外部请求的响应中包括行这一协议要求。最后,代理可满足外部请求来使它的高速缓存中的行无效。协议通过指定所有高速缓存代理可遵循的规则来确保数据的一致性。它还对于没有高速缓存的代理提供一致地读和写存储器数据的部件。
可实施两个条件来支持使用HPI一致性协议的事务。首先,协议可以作为示例在每地址基础上在代理的高速缓存中的数据之间以及在那些数据和存储器中的数据之间维持数据一致性。非正式地,数据一致性可指代理的高速缓存中代表数据最新值的数据的每个有效行,并且在一致性协议包中传送的数据可以代表数据被发送时的它的最新值。当在高速缓存中或在传送中不存在数据的有效副本时,协议可确保数据的最新值驻存在存储器中。其次,协议可以对请求提供明确定义的承诺点。对于读的承诺点可指示数据何时有用;并且对于写,它们可指示被写的数据何时全局可观察并且将被后续读所加载。协议可在一致性存储器空间中对于可高速缓存和不可高速缓存(UC)两者都支持这些承诺点。
在一些实现中,HPI可以使用嵌入式时钟。时钟信号可嵌入使用互连而传送的数据中。随着时钟信号被嵌入数据中,可以省略截然不同且专用时钟通路。这例如因为它可以允许设备的更多引脚专用于数据传输、特别在其中用于引脚的空间非常珍贵的系统中而可以是有用的。
物理层
链路可以在互连的任一侧上的两个代理之间建立。发送数据的代理可以是本地代理并且接收数据的代理可以是远程代理。状态机可以由两个代理采用来管理链路的各种方面。在一个实施例中,物理层数据路径可以将flit从链路层传送到电气前端。控制路径在一个实现中包括状态机(也称为链路训练状态机或相似物)。状态机的动作和从状态的退出可取决于内部信号、定时器、外部信号或其他信息。事实上,状态中的一些(例如一些初始化状态)可具有定时器,用于提供超时值来退出状态。注意检测在一些实施例中指在通路的两个臂上检测事件;但不一定是同时。然而,在其他实施例中,检测指通过参考代理的事件检测。作为一个示例,去抖(debounce)指信号的持续声明。在一个实施例中,HPI支持非功能通路情况下的操作。在这里,通路可在特定状态被丢弃。
除其他种类和子种类外,状态机中定义的状态可以包括复位状态、初始化状态和操作状态。在一个示例中,一些初始化状态可以具有辅定时器,其用于在超时时退出状态(基本上由于未能在状态中取得进展而中止)。中止可包括更新寄存器,例如状态寄存器。一些状态还可以具有主定时器,其用于对状态中的主要功能定时。除其他示例外,可以定义其他状态使得内部或外部信号(例如握手协议)驱动从状态到另一个状态的转变。
状态机还可支持通过单步骤的调试、初始化中止的冻结和检验器的使用。在这里,状态退出可以被延缓/保持直到调试软件就绪。在一些实例中,退出可以被延缓/保持直到二次超时。动作和退出在一个实施例中可以基于训练序列的交换。在一个实施例中,链路状态机在本地代理时钟域中运行并且从一个状态到下一个的转变与传送器训练序列边界一致。状态寄存器可用于反映当前状态。
图7图示在HPI的一个示例实现中代理所使用的状态机的至少一部分的表示。应意识到图7的状态表中包括的状态包括可能状态的非详尽列表。例如,省略一些转变来简化图。一些状态还可组合、划分或省略,而可增加其他。这样的状态可以包括:
事件复位状态:在热或冷复位事件时进入。恢复默认值。使计数器(例如,同步计数器)初始化。可退到另一个状态,例如另一个复位状态。
定时复位状态:对于带内复位的定时状态。可驱动预定义电气有序集(EOS),因此远程接收器能够检测EOS并且也进入定时复位。接收器具有通路,其保持电气设定值。可退到代理来校准复位状态。
校准复位状态:在通路上没有信令的校准(例如,接收器校准状态)或关闭驱动器。基于定时器在状态中可以是预定时间量。可设置操作速度。在端口未被启用时可充当等待状态。可包括最小驻存时间。接收器调节或错开可基于设计而出现。在校准超时和/或完成后可退到接收器检测状态。
接收器检测状态:检测通路上接收器的存在。可查找接收器终端(例如,接收器下拉插入)。在设置规定值时或在未设置另一个规定值时可退到校准复位状态。如果检测到接收器或达到超时可退到传送器校准状态。
传送器校准状态:用于传送器校准。可以是对传送器校准分配的定时状态。可包括通路上的信令。可持续驱动EOS,例如电子闲置退出有序集(或EIEIOS)。在进行校准时或在定时器到期时可退到兼容性状态。如果定时器到期或出现二次超时,可退到传送器检测状态。
传送器检测状态:规定有效信令。可以是握手状态,其中代理完成动作并且基于远程代理信令退到下一个状态。接收器可规定来自传送器的有效信令。接收器在一个实施例中寻找唤醒检测,并且如果在一个或多个通路上被去抖,则在其他通路上寻找它。传送器驱动检测信号。可响应于对所有通路完成去抖和/或超时或如果所有通路上的去抖未完成并且存在超时则可退到轮询状态。在这里,一个或多个监测器通路可保持清醒来对唤醒信号去抖。并且如果被去抖则其他通路潜在地被去抖。这可以在低功率状态实现功率节省。
轮询状态:接收器更改漂移缓冲器、使其初始化并且锁住位/字节(例如,识别符号边界)。可对通路进行倾斜校正。远程代理可响应于确认消息而促使退到下一个阶段(例如,链路宽状态)。轮询可以通过锁定到EOS和训练序列标头而另外包括训练序列锁。在远程传送器处通路对通路倾斜可对于最高速度控制在第一长度并且对于慢速控制在第二速度。倾斜校正可采用慢模式以及操作模式进行。接收器可具有特定最大值来对通路对通路倾斜进行倾斜校正,例如8、16或32个倾斜间隔。接收器动作可包括延时固定。接收器动作在一个实施例中可以在对有效通路映射(valid lane map)成功进行倾斜校正时完成。成功握手在一个示例中可以在带有确认地接收若干连续训练序列标头以及在接收器完成它的动作后传送若干具有确认的训练序列时实现。
链路宽状态:代理与到远程传送器的最后通路映射通信。接收器接收信息并且解码。接收器可在第二结构中之前的通路映射值的检查点之后在结构中记录配置通路映射。接收器还可用确认(“ACK”)作出响应。可发起带内复位。作为一个示例,第一状态发起带内复位。在一个实施例中,退到下一个状态(例如flit配置状态)响应于ACK而进行。此外,在进入低功率状态之前,如果唤醒检测信号出现的频率下降到规定值(例如,每单位间隔(UI)数量1个,例如4K UI)以下,还可生成复位信号。接收器可保持当前和之前的通路映射。传送器可基于具有不同值的训练序列来使用不同通路组。在一些实施例中,通路映射可未修改一些状态寄存器。
flit 锁定配置状态:由传送器进入,但该状态在传送器和接收器两者都退到阻断链路状态或其他链路状态时视为退出(即,二次超时无实际意义)。在一个实施例中,传送器退到链路状态包括在接收行星对准信号后数据序列的开始(SDS)和训练序列(TS)边界。在这里,接收器退出可基于从远程传送器接收SDS。该状态可从代理到链路状态的桥接。接收器识别SDS。如果在解扰器被初始化之后接收SDS则接收器可退到阻断链路状态(BLS)(或控制窗口)。如果出现超时,退出可以到复位状态。传送器用配置信号驱动通路。传送器退出可以到复位、BLS或基于条件或超时的其他状态。
兼容状态:从传送器校准状态进入。一个设备(充当主控装置)可以向另一个设备(从装置)发送兼容模式并且该从装置可以在对它的本地时钟重新定时之后使模式回环。当回环不起作用时可以用于表征通路的某一子集上的模拟前端的操作。兼容状态可用于抖动或噪声调查、调试、开发链路等。兼容状态可以用来自主控装置的传送器驱动超序列。接收器在监测通路上寻找唤醒、对唤醒去抖动、丢弃坏的通路、更改并且位锁定等。从传送器可以驱动兼容模式直到完成它的接收器动作。则回环被重新定时并且未被倾斜校正。从接收器进行相似的监测和去抖动等动作。除其他示例外,退出可以到复位状态(例如定时复位),或到回环模式状态来开始测试。
代理回环标记状态:回环标记是代理状态,但与其他代理状态不同,主控装置和从装置动作以及退出可不同。回环从装置可撤销任何极性反转和/或通路逆转但可对回环位解扰或重新扰乱回环位。因为它在回环,确认交换可不适用于从装置。因为从装置可在符号边界上回环之前倾斜校正,主控装置可未被迫重新字节锁定或重新倾斜校正,但主控装置可重新锁定训练序列来避免锁定到一些化名。这意指这么做可包括LFSR的重新播种、比较TS和/或EIEOS或这些的某一组合。SDS的末端标记回环设置的末端和模式生成的开始、检查和计数。
代理回环模式状态(或阻断链路状态):在该状态中,代替控制模式,主传送器可以发送IBIST模式并且它的接收器可以在接收模式中检查错误。对于传送器自适应,两个代理都可以是主控装置。对于预定时期,传送器可以发送模式并且远程接收器可以比较该模式并且确定记录在存储元件(例如寄存器)中对于接收模式的品质或度量的数字。比较方法和度量可取决于设计(例如,具有抖动注入的BER)。在时期结束时,两个代理都可以退到复位以供反向通道检查度量并且设置传送器自适应的下一个迭代。
传送链路状态:链路状态。flit被发送到远程代理。可从阻断链路状态进入并且在事件(例如超时)时返回阻断链路状态。传送器传送flit。接收器接收flit。还可退到低功率链路状态。在一些实现中,传送链路状态(TLS)可以称为L0状态。
阻断链路状态:链路状态。传送器和接收器采用统一方式操作。可以是定时状态,在其期间链路层flit被拖延而物理层信息被传递到远程代理。可退到低功率链路状态(或基于设计的其他链路状态)。阻断链路状态(BLS)在一个实施例中周期地出现。该周期称为BLS间隔并且可被定时,以及可区分慢速和操作速度。注意,可定期防止链路层发送flit使得具有一定长度的物理层控制序列可被发送,例如在传送链路状态或部分宽度传送链路状态期间。在一些实现中,阻断链路状态(BLS)可以称为L0控制或L0c状态。
部分宽度传送链路状态:链路状态。可通过进入部分宽度状态(其中链路的一个或多个可用通路在部分宽度传送链路状态期间变得闲置)来节省功率。在一个实施例中,不对称部分宽度指具有不同宽度的两个方向链路的每个方向,其在一些设计中可得到支持。注意速度可不更改但宽度可更改。因此,flit潜在地以不同宽度发送。在逻辑上可与传送链路状态相似;然而,因为存在较小宽度,可花更长时间来传送flit。可退到其他链路状态,例如基于某些接收和发送消息的低功率链路或部分宽度传送链路状态的退出或基于其他事件的链路阻断状态。在一个实施例中,传送器端口可采用交错方式关闭闲置通路来提供更好的信号完整性(即,噪声减轻),如在定时图中示出的。在这里,不能重试的flit(例如Nullflit)可在链路宽度改变的时期期间使用。对应的接收器可丢弃这些nullflit并且采用交错方式关闭闲置通路,以及在一个或多个结构中记录当前和之前的通路映射。注意状态和关联的状态寄存器可保持不更改。在一些实现中,部分宽度传送链路状态可以称为部分L0或L0p状态。
退出部分宽度传送链路状态:退出部分宽度状态。在一些实现中,可或可不使用阻断链路状态。传送器在一个实施例中通过在闲置通路上发送部分宽度退出模式来训练它们并且对它们进行倾斜校正而发起退出。作为一个示例,退出模式以EIEOS开始(其被检测并且对于通路准备开始进入全传送链路状态这一信号去抖动),并且可以闲置通路上的SDS或快速训练序列(FTS)结束。在退出序列期间的任何失效(接收器动作,例如在超时之前未完成倾斜校正)停止到链路层的flit传输并且声称复位,其在下一个阻断链路状态出现时通过重设链路来处理。SDS还可将通路上的扰乱器/解扰器初始化为合适的值。
低功率链路状态:是低功率状态。在一个实施例中,它是比部分宽度链路状态更低的功率,因为信令在该实施例中在所有通路上和在两个方向上都被停止。传送器可使用阻断链路状态用于请求低功率链路状态。在这里,接收器可对请求解码并且用ACK或NAK作出响应;否则可触发复位。在一些实现中,低功率链路状态可以称为L1状态。
在HPI的一些实现中,可以定义超序列,每个超序列对应于相应状态或进入相应状态/从相应状态退出。超序列可以包括数据集和符号的重复序列。除其他示例外,序列在一些实例中可以重复直到完成状态或状态转变,或对应事件的组合。在一些实例中,超序列的重复序列可以根据定义的频率(例如定义的单位间隔(UI)数)来重复。单位间隔(UI)可以对应于用于在链路或系统的通路上传送单个位的时间间隔。在一些实现中,重复序列可以以电气有序集(EOS)开始。因此,EOS的实例可以预期根据预定义频率来重复。这样的有序集可以实现为定义的16字节代码,其除其他示例外还可采用十六进制格式表示。在一个示例中,超序列的EOS可以是EIEIOS,例如在图8中表示的。例如,EIEOS可以类似于低频时钟信号(例如,预定义数量的重复FF00或FFF000十六进制符号,等)。数据的预定义集可以跟随EOS,例如预定义数量的训练序列或其他数据。这样的超序列可以在状态转变(其除其他示例外还包括链路状态转变以及初始化)中使用。
在互连的一些实现中,可以引入和除去串行数据链路的终端,例如在重设或初始化链路时。该方法可以将复杂性和时间引入链路的初始化内。在HPI的一些实现中,链路的终端可以被维持,其包括在链路的复位或重新初始化期间。此外,HPI可以准许设备的热插拔。当引入另一个设备(通过热插拔或用别的方式)时,添加新的远程代理所在的通路的电压特性将改变。本地代理可以感测通路电压中的这些改变(例如,下拉)来检测远程代理的存在并且提示链路的初始化。状态机状态和定时器可以在状态机中限定来协调链路的检测、配置和初始化(在没有终端的情况下)。
作为示例,设备的传送器在接收器检测(“RxDetect”)状态期间可以就远程接收器终端的存在来监测链路的通路,该远程接收器终端的存在指示在链路的另一端上存在远程设备。这可以充当一类握手,其中接收器终端导致退到下一个状态(例如,传送器校准状态)。如果握手未在预定时间内未出现,监测设备可以使初始化中止,从而导致在重新进入RxDetect状态之前转变回到复位状态以再次尝试识别在链路上远程设备的引入(例如,除其他示例外,连同由软件发起的热插拔事件或受控链路启动)。在RxDetect期间,接收器终端(下拉)要在所有好的通路上插入。在退出状态并且转变到另一个(其中检测超序列在链路上的设备之间传递)之前可丢弃任何坏的通路。此外,由接收器终端生成的信号可以被去抖,因为就信号的持续声称来检查通路。除其他示例外,在一个示例中,去抖可以持续对应于用于在RxDetect状态期间监测链路的预定义时间的时期地出现并且可以是预定义时间的倍数。
在一个实现中,HPI可以支持在带内复位时重新初始化而没有通过接收代理对于进入信令筛选通路来改变终端值。信令可以用于识别好的通路。作为示例,可以对于要由传送器设备发送以便于链路的发现和配置的预定义信号集中的任一个来筛选通路。在一个示例中,可以定义超序列,其对应于一个或多个初始化或重新初始化任务。预定义序列可以包括EIEOS,后跟额外序列数据。在一些实例中,当通路的任一侧上的每个设备变得活跃时,设备可以开始发送超序列,其对应于特定初始化状态等。在一个实施例中,可以支持两个类型的引脚复位;上电(或“冷”)复位和热复位。由软件发起或在一个代理上起源(在物理或另一个层中)的复位可带内传递到另一代理。然而,由于使用嵌入式时钟,带内复位可使用有序集(例如特定电气有序集或EIOS)通过到另一个代理的传递来处理。
有序集可以在初始化期间发送并且PHY控制序列(或“阻断链路状态”)可以在初始化后发送。阻断链路状态可以防止链路层发送flit。作为另一个示例,可阻止链路层业务发送一些NULLflit,其可在接收器处被抛弃。
在一个实施例中,链路层阻断控制序列(即阻断链路状态(BLS)或L0c状态)可以包括定时状态,在其期间链路层flit被拖延而PHY信息被传递到远程代理。在这里,传送器和接收器可起动块控制序列定时器。并且在定时器到期时,传送器和接收器可以退出阻断状态并且可采取其他动作,例如退到复位、退到不同链路状态(或其他状态),其包括允许跨链路发送flit的状态。
在一个实施例中,可以提供链路训练并且其包括发送扰乱训练序列、有序集和控制序列中的一个或多个,例如连同定义的超序列。训练序列符号可包括标头、保留部分、目标延时、配对数、物理通路映射代码参考通路或一组通路和初始化状态中的一个或多个。在一个实施例中,除其他示例外,标头可以与确认(ACK)或否定确认(NAK)一起发送。作为示例,训练序列可作为超序列的部分被发送并且可被扰乱。
在一个实施例中,有序集和控制序列未被扰乱或交错并且在所有通路上等同地、同时且完全被传送。有序集的有效接收可包括检查有序集的至少一部分(或对于部分有序集是整个有序集)。有序集可包括电气有序集(EOS),例如电气闲置有序集(EIOS)或EIEOS。超序列可包括快速训练序列(FTS)或数据序列的开始(SDS)。这样的集和控制序列可以被预定义并且可具有任何模式或十六进制表示,以及任何长度。例如,有序集和超序列可以是具有8个字节、16个字节或32字节等的长度。作为示例,FTS可以另外在退出部分宽度传送链路状态期间用于快速位锁定。注意FTS定义可根据通路并且可使用FTS的旋转版本。
在一个实施例中,超序列可以包括EOS(例如EIEOS)插入训练序列流中。在信令开始时,在一个实现中,通路采用交错方式上电。然而,这可导致在一些通路上在接收器处看到初始超序列被截短。然而,超序列可以在短间隔(例如,近似一千个单位间隔(或~1KUI))上重复。训练超序列可另外用于倾斜校正、配置中的一个或多个并且用于传递初始化目标、通路映射等。除其他示例外,EIEOS可以用于将通路从无效转变成有效状态、筛选好的通路、识别符号和TS边界中的一个或多个。
转向图9,示出示例超序列的表示。例如,可以定义示范性检测超序列905。检测超序列805可以包括单个EIEOS(或其他EOS)的重复序列,后跟预定义数量的特定训练序列(TS)的实例。在一个示例中,EIEOS可以被传送,紧跟TS的七个重复实例。当七个TS中的最后一个被发送时,EIEOS可以再次被发送,后跟TS的七个额外实例,等等。该序列可以根据特定预定义频率而重复。在图9的示例中,EIEOS可以近似每一千UI(~1KUI)一次地重新出现在通路上,后跟检测超序列905的余下部分。接收器可以就重复检测超序列905的存在监测通路并且在证实超序列905可以断定远程代理存在、在通路上添加(例如,热插拔)、唤醒或重新初始化等时监测通路。
在另一个示例中,另一个超序列910可以定义成指示轮询、配置或回环状况或状态。如与示例检测超序列905一样,链路的通路可以被接收器就这样的轮询/配置/循环超序列910来监测以识别轮询状态、配置状态或回环状态或状况。在一个示例中,轮询/配置/循环超序列910可以以EIEOS开始,后跟预定义数量的TS的重复实例。例如,在一个示例中,EIEOS可以后跟TS的三十一个(31)实例,其中除其他示例外,EIEOS近似每四千个UI(~4KUI)地重复。
超序列(例如检测超序列905和轮询/配置/循环超序列910等)可以潜在地大致在链路的整个初始化或重新初始化中发送。接收器在接收并且检测特定超序列时在一些实例中可以通过在通路上对传送器呼应相同超序列而作出响应。特定超序列被传送器和接收器的接收和证实可以充当握手来确认通过超序列传递的状态或状况。例如,这样的握手(例如,使用检测超序列905)可以用于识别链路的重新初始化。在另一个示例中,这样的握手除其他示例外还可以用于指示电气复位或低功率状态的结束,从而导致对应通路被重新唤起。电气复位的结束可以例如从各传送检测超序列905的传送器与接收器之间的握手识别。
在另一个示例中,可以就超序列来监测通路并且这些通路使用超序列连同除其他事件外还对于检测、唤醒、状态退出和进入来筛选通路。超序列的预定义和可预测本质及形式可以进一步用于执行这样的初始化任务,如位锁定、字节锁定、去抖、解扰、倾斜校正、自适应、延时固定、协商延迟和其他潜在使用。确实,通路可以就这样的事件被大致持续监测以加快系统对这样的状况作出反应并且处理这样的状况的能力。在一些情况下,超序列可以在控制窗口(例如,L0c控制窗口)内发送以除其他示例外还触发链路状态转变。
训练序列(TS)在一些实例中可以包括标头和各种其他字段(例如,有效载荷),其可以用于传递信息连同链路的初始化。例如,在一个示例中,除其他字段外还可以包括对于目标延时、状态、通路配对数、通路映射的字段。在一些实现中,TS的部分可以例如被随机或伪随机二进制序列(PRBS)扰乱。在一个示例中,TS标头可以作为明文被保存而TS的余下部分(或有效载荷)除其他示例外例如通过使TS的那些部分与PRBS进行XOR而被扰乱。
在一个实现中,TS在长度上可以是十六(16)个字节并且TS标头可以占据TS的第一字节(即,字节0)。TS有效载荷可以被扰乱并且占据余下的十五个字节。在一个示例实现中,TS尾部或后缀可以包括TS的最后几个字节。例如,在一个示例中,扰乱同步字段可以占据TS的至少三个字节,例如TS的字节6-8。TS的尾位(例如,字节9-15)在该特定实现中可以作为保留位被维持。字节6-15中的位可以全部设置成0。
在一些实现中,代替对于关键初始化参数的TS有效载荷或除其之外,HPI还可以支持使用TS标头。在一些实现中,TS有效载荷可用于交换初始化参数,像ACK和通路号。还可使用用于传递通路极性的DC级。然而,在一些实现中,HPI可以在TS标头中对关键参数实现DC平衡代码。例如,在其中TS标头未被扰乱的实例中,可以定义可用TS标头代码使得数字“1”大致等于在TS标头字段中出现的数字“0”。DC平衡可以通过扰乱TS有效载荷的位(通过对随机或伪随机二进制序列和位进行XOR)而在TS的整个余下部分(例如,TS有效载荷)中实现。
在一个示例实现中,PRBS序列可以采用至少23个位(PRBS23)而被利用。PRBS可以根据特定选择的多项式生成。在一个示例中,PRBS可以由相似位大小、自播的存储元件(例如线性反馈移位寄存器(LFSR))生成。LFSR可以是23位Fibonacci LFSR,其能够生成在长度上超过8Mb的PRBS序列。PRBS可以在序列结束后重复。在一些实现中,PRBS23序列的整体可以在例如在HPI中链路的初始化中使用的超序列中所包括的训练序列的扰乱中使用。
尽管可以使用全长的PRBS序列,在一些实现中,HPI可以支持允许使用长度变化的可用PRBS序列(例如,使用仅仅PRBS23序列的一部分)。在一些示例中,设备的控制器可以规定仅仅使用PRBS序列的全长的一部分。这除潜在其他应用外例如在其中期望位序列可重复性的测试应用中可以是可取的。基于软件的控制器可以规定要应用的PRBS的变化长度。例如,设备的BIOS可以规定要在链路上应用的PRBS长度。在一些实现中,PRBS序列全长的使用可以是默认设置,例如以便使冗长PRBS序列的益处最大化。
传送链路状态(TLS)中的通路业务和训练序列可以用具有特定最小长度(例如,23个位)的PRBS扰乱。应用于流的起始种子可以在通路之间变化来提高链路上PRBS的电气益处。在一个示例实现中,PRBS可以由实现6抽头发生器多项式(例如(x23+x21+x16+x8+x5+x2+1))的23位Fibonacci LFSR生成。
对于通路号对模数8的起始(在扰乱器/解扰器初始化时)种子值可以是任意值,例如8个十六进制值,其中每一个与链路中通路的2或3关联。这样的种子的使用可以导致通路之间PRBS的旋转(或交错)。LFSR的数量可以通过使用偶数通路PRBS可以从奇数通路的PRBS的XOR得到这一性质而减少。训练序列的EIEOS和标头可未被扰乱。每个通路上超序列的进入点可以在每个通路上的不同点处发起(例如,其中传送器开始驱动)。这可以能够以交错方式打开通路以便减少功率递送系统中的噪声。确实,每个通路可以具有它自己的LFSR的实例。交错次数可以变化打开的通路的数量并且在初始化期间可取决于实现。这些可以在定时图中规定并且对于部分传送宽度状态的定时器轮廓(timer
profile)退出。此外,快速训练序列(FTS)(也在下文论述)也可以按通路旋转。
在一些实例中,扰乱可以减少传送器处的电力供应噪声并且在接收器处提供更丰富的频谱。扰乱器可以被传送的第一EIEOS初始化。解扰器可以例如通过自播种而同步到扰乱器。例如,接收的23位模式可以嵌入TS字段中作为种子。在一个示例中,23位种子可以从扰乱同步字段的位的扰乱来识别。接收器可以使用种子值来识别用于扰乱接收TS的PRBS的特定位点。例如,接收器可以识别种子并且将种子加载到它自己的LFSR内来同步到传送器所使用的PRBS。在一些实例中,接收器可读取超序列中的多个扰乱同步字段或多个TS以便播种它自己的LFSR。然而,在检测并且同步到传送器的PRBS时,除其他示例外,接收器可以在链路的初始化期间对TS的余下部分以及在超序列中发送的所有后续TS解扰。
超序列可以用于便于通路上的位锁定和同步。如上文论述的,超序列的至少一部分可以被扰乱。返回图9的论述,检测超序列可以被接收器用于检测或锁定接收位流的位和字节边缘并且识别在超序列中发送哪些字节。例如,EIEOS和TS标头可以未被扰乱以在更快速锁定到超序列方面帮助接收器。另外,超序列可以定义成允许EIEOS(以及超序列的开始)以相对短的频率重复(例如,以更快地允许接收器有在第一EIEOS未被准确检测的情况下检测EIEOS的另一个机会)。例如,在一个示例中,超序列可以定义成每1KUI或更短地重复。这样的超序列可以进一步在初始化期间允许更随机化的转变,以及简化TS锁定、延时固定及其他动作。
另外,使得EIEOS和TS标头未被扰乱可以允许出现字节锁定并且准许接收器能够识别后续字节和符号(其包括扰乱TS符号)的位点。例如,未被扰乱TS标头的边缘可以被识别并且由此也识别扰乱同步字段的开始。在扰乱同步字段中检测到PRBS种子时,接收器将知道接着的PRBS模式值并且将也能够预测后续扰乱同步字段值的值。因此,接收器在锁定到PRBS时可以进一步使用扰乱同步字段值以促进其他配置任务,例如自适应、倾斜校正和其他任务。
在多通路链路上,符号可以由传送器在所有通路上同时发送,然而,链路对链路倾斜可以随着一些符号在相同时间未到达接收器而显现。除其他示例外,倾斜源可以包括例如芯片差分驱动器和接收器、印刷线路板阻抗变化、通路线长度不匹配。在一个实施例中,HPI提供先进逻辑来对通路倾斜校正。作为示例,TS锁定后的TS边界可以用于对通路倾斜校正。例如,TS锁定可以用于检测倾斜(例如,一个通路上的TS比链路通路中的另一个上的另一个TS更晚到达)。EIEOS也可以用于检测倾斜。另外,使用同步PRBS模式的可预测性,HPI的一些实现可通过在有效载荷的特定点期间比较LFSR中的通路PRBS模式来进行倾斜校正。
在自适应的情况下,通路的电气特性可以基于例如在传送器与接收器之间传送的样本数据而在传送器与接收器之间调整。例如,接收器自适应可以包括传送器用在接收器处的调整接收器处的电气特性来使通路适应于链路的逻辑向接收器发送数据模式。传送器自适应可以牵涉传送器向接收器发送样本数据以及接收器向传送器发送可以被传送器使用以在传送器处做出调整来更改通路的反馈。接收器可以基于在传送器处做出的调整而继续向传送器发送反馈。
在一个示例中,自适应样本数据可以通过扰乱TS数据体现。作为一个示例,固定UI模式可用于用到自适应状态的旁路扰乱。但通过用PRBS23扰乱TS,可在没有旁路的情况下进行接收器自适应。另外,在时钟恢复和采样期间偏移和其他错误可以减少。通过长PRBS序列(例如,PRBS23)提供的随机性可以证明是自适应的有效样本流。此外,在一些实现中,通路可以设置成采用慢模式操作以在分析并且适应于在通路上接收的样本数据方面帮助逻辑。在通过自适应批准通路的特性时,更改的特性可以被设置并且应用于链路的初始化。
一旦链路被成功校准和配置,初始化可以结束并且转变到传送链路状态(TLS),其中flit开始被传送。在HPI的一些实现中,转变到TLS可以基于系统上的行星对准。例如,行星对准信号可以指示转变到TLS的机会。代替在超序列EIEOS或TLS的边缘处转变,HPI的一些实现可以使用根据行星对准发送的数据序列的开始(SDS)符号以结束初始化并且转变到TLS。在一个示例中,SDS可以在初始化位流中的任何地方发送。因此,接收器可以对于SDS来连续扫描接收位以根据行星对准加速初始化的结束。
在一个示例中,示例EIEOS可以仿效低频时钟信号,例如重复FF00信号。在一些实现中,示例SDS可以包括重复F0信号。因此,在这样的实例中,检测在EIEOS中间发送的SDS可以相对简单地识别,因为在EIEOS内混叠的风险可以是最小的。然而,TS有效载荷的扰乱以及所得的TS数据的随机性可以引入一些形式的SDS混叠的风险。在一些实现中,可以生成PRBS,其将从未在相应数量位的任何特定跨距上使SDS或EIEOS的一部分混叠。此外,可以在TS上提供尾部或后缀,例如使用TS的最后的字节或使PRBS的有效载荷归零以促使PRBS在后缀中是进行XOR 0值并且在TS结束时在明文中有效呈现PRBS。
在一些实现中,在从配置状态退到TLS,传送和接收LFSR由在传送器与接收器之间交换的SDS重新初始化。例如,八个起始PRBS种子可以分别应用于通路0…7、12…19和8…11(例如,仅前四个)。此外,也可以确定链路的通路逆转和通路的极性反转,例如除其他示例外通过将EIEOS之后的TS的未被扰乱的第一个字节(例如TS标头)与可能值集比较。
在去抖情况下,由于多种状况而可以在通路上引入瞬态。例如,设备的添加或上电可以将瞬态引入通路上。另外,因为差的通路质量或电气失效,可以在通路上呈现电压不规则性。在一些情况下,通路上的“跳动”可以产生假阳性,例如假EIEOS。然而,在一些实现中,尽管超序列可以以EIEOS开始,定义的超序列可以进一步包括数据的额外序列以及EIEOS将重复的定义频率。因此,甚至在通路上出现假EIEOS的情况下,接收器处的逻辑分析器可以通过证实继假EIEOS之后的数据来确定EIEOS是假阳性。例如,如果预期TS或其他数据未跟随EIEOS或EIEOS未在预定义超序列中的一个的预定义频率中的特定频率内重复,接收器逻辑分析器可未能证实接收的EIEOS。因为在将设备添加到线路时可以在起动时出现跳动,还可以产生假阴性。例如,在添加到一组通路时,设备可以开始发送检测超序列905来提醒链路的另一侧它的存在并且开始链路的初始化。然而,在通路上引入的瞬态可损坏初始EIEOS、TS实例和超序列的其他数据。然而,除其他示例外,接收设备上的逻辑分析器可以继续监测通路并且在重复检测超序列905中识别由新的设备发送的下一个EIEOS。
在一个示例中,传送设备可以尝试进入特定状态。例如,传送设备可以尝试激活链路并且进入初始化状态。在另一个示例中,除其他示例外,传送设备可以尝试退出低功率状态,例如L1状态。在L1状态的一些实例中,L1状态可以充当功率节省、闲置或待命状态。确实,在一些示例中,主电力供应可在L1状态中保持活跃。在退出L1状态中,第一设备可以发送与从L1状态转变到特定其他状态(例如L0传送链路状态(TLS))关联的超序列。超序列像在其他示例中一样可以是EOS的重复序列后跟预定数量的TS,使得EOS以特定预定义频率重复。在一个示例中,检测超序列可以用于退出L1或其他低功率状态。接收设备可以接收并且证实数据,从而识别超序列,并且接收设备可以通过将超序列发回传送设备而完成与传送设备的握手。
随着传送和接收设备两者都接收相同超序列,每个设备可以进一步使用超序列执行额外初始化任务。例如,每个设备可以使用超序列进行去抖、位锁定、字节锁定、解扰和倾斜校正。额外初始化信息可以通过超序列中包括的TS的标头和有效载荷来传递。当链路被初始化时,起始数据发送(SDS)序列在一些情况下可以发送,从而中断超序列(例如,在TS或EIEOS中间发送的)并且链路的任一侧上的相应设备可以准备同步进入TLS。在TLS或“L0”状态中,超序列可以结束并且flit可以使用协议栈的链路层传送。
尽管在TLS中,可仍然对物理层提供执行控制任务的有限机会。例如,可以在L0状态期间在一个或多个通路上识别位错误和其他错误。在一个实现中,可以提供控制状态L0c。L0c状态可以作为TLS内的周期性窗口而提供以允许在通过链路层发送的flit的流之间发送物理层控制消息。例如,如在图10中图示的示例中表示的,L0状态可以细分成L0c间隔。每个L0c间隔可以以L0c状态或窗口(例如,1005)开始,其中可以发送物理层控制代码和其他数据。L0c间隔的余下部分(例如,1010)可以专用于发送flit。L0c间隔的长度和每个间隔中L0c状态可以除其他示例外例如由一个或多个设备中的BIOS或另一个基于软件的控制器通过编程定义。L0c状态可以以指数方式短于L0c间隔的余下部分。例如,在一个示例中,除其他示例外,L0c可以是8UI,而L0c间隔的余下部分是约4KUI。这可以允许有窗口,其中可以发送相对短的预定义消除而大致未打断或浪费链路数据带宽。
L0c状态消息可以在物理层级传递多种状况。在一个示例中,一个设备可以例如基于位错误或超出特定阈值数量的其他错误来发起链路或通路的复位。这样错误也可以在L0c窗口(例如在前面的L0c窗口)中传递。也可以利用L0c状态来实现其他带内信令,例如供在帮助或触发其他链路状态之间的转变中使用的信令。在一个示例中,L0c消息可以用于使链路从活跃L0状态转变到待命或低功率状态,例如L1状态。例如,特定L0c状态可以用于传递L1进入请求、复位请求或其他请求。除其他示例外,请求可以牵涉发送限定成指示从链路状态进入或退出的对应超序列。
除使用L0c代码的握手外(或作为其的备选),可以发送超序列(例如检测超序列)连同重设链路和使其重新初始化。另外的握手可以在设备之间出现,如超序列由第一设备发送并且被第二接收设备呼应。超序列可以如上文描述的那样用于帮助链路的重新初始化,其包括对链路的通路去抖、位锁定、字节锁定、解扰和倾斜校正。此外,除其他示例外,设备可以使用定时器(例如,体现L0c间隔)来使设备和链路进入请求状态同步。
在一个实施例中,平台可以包括时钟,其充当系统中设备的参考时钟。时钟可以嵌入数据中,因此没有独立时钟通路。时钟信号可以从接收数据提取。此外,在通路上发送的flit可以被扰乱以便于时钟恢复。作为一个示例,接收器时钟恢复单元可以向接收器交付采样时钟(即,接收器恢复来自数据的时钟并且使用它来对进入数据采样)。接收器在一些实现中持续适应于进入的位流。通过嵌入时钟,引出线可以潜在减少。然而,将时钟嵌入带内数据中可以更改着手处理带内复位所采用的方式。在一个实施例中,阻断链路状态(BLS)可以在初始化后被使用。除其他考量外,在初始化期间还可以使用电气有序集超序列以便于复位(例如,如上文描述的)。嵌入式时钟在链路上的设备之间可以是共同的并且共同操作时钟可以在链路的校准和配置期间设置。
在HPI的一些实现中,可以支持链路上的通路的自适应。物理层可以既支持接收器自适应又支持传送器或发送者自适应。利用接收器自适应,通路上的传送器可以向接收器发送样本数据,接收器逻辑可以处理该样本数据来识别通路的电气特性和信号质量中的不足。接收器然后可以对通路的校准做出调整以基于接收样本数据的分析来优化通路。在传送器自适应的情况下,接收器可以再次接收样本数据并且开发描述通路质量的度量,但在该情况下将度量传递到传送器(例如,使用反向通道,例如软件、硬件、嵌入式、边带或其他通道)以允许传送器基于反馈对通路做出调整。接收器自适应可以使用从远程传送器发送的轮询超序列在开始轮询状态时发起。相似地,传送器自适应可以通过对每个传送器参数重复以下而进行。两个代理都可以进入回环模式状态作为主控以及传送规定模式。两个接收器都可以对于在远程代理处的特定传送器设置来测量度量(例如,BER)。两个代理都可以转到回环标记状态并且然后复位并且使用反向通道(慢模式TLS或边带)来交换度量。基于这些度量,可以识别下一个传送器设置。最终可以识别最佳传送器设置并且保存它以供后续使用。
在自适应中,代理的传送器可以将随机或伪随机模式传送到远程接收器。在一些实例中,扰乱超序列可以用作模式。接收器处的逻辑可以确定链路的一个或多个通路的特性并且生成描述这样的特性的度量数据。在接收器自适应的情况下,接收器可以尝试基于度量确定对于通路的最佳配置并且在接收器处应用这些配置。在传送器自适应的情况下,接收器可以将度量传递到传送器以供传送器代理用于基于度量配置和更改通路。在任一实例中,在一些实现中,硬件或软件可以用于按算法顺序评价不同传送器设定值来确定最佳设定值。
接收器自适应可以在使用从远程传送器发送的轮询超序列开始轮询状态时发起。相似地,传送器自适应可以通过对每个传送器参数重复以下而进行。两个代理都可以进入回环模式状态作为主控并且传送规定模式。此外,两个接收器都可以对于在远程代理处的特定传送器设置来测量度量(例如,BER)。两个代理都可以转到回环标记状态并且然后复位并且使用反向通道(慢模式TLS或边带)来交换度量。基于这些度量,可以识别下一个传送器设置。最终可以识别最佳传送器设置并且保存它以供后续使用。
使用HPI的一些系统和设备可以是确定性的,使得它们的事务和与其他系统的交互(其包括在HPI链路上的通信)与系统或设备上的特定事件同步。这样的同步可以根据对应于确定性事件的行星对准点或信号而发生。例如,行星对准信号可以用于使状态转变(其包括进入链路传送状态)与设备上的其他事件同步。在一些实例中,可以采用同步计数器来维持与设备的行星对准的对准。例如,每个代理可以包括本地同步计数器,其被行星对准信号初始化(即,对于同步的所有代理/层是共同且同时的(固定倾斜除外))。该同步计数器可以甚至在掉电或低功率状态(例如,L1状态)中正确地对对准点计数并且可以用于对初始化过程(在复位或L1退出后)定时,包括在初始化期间使用的超序列中包括的EIEOS(或其他EOS)的边界(即,开始或结束)。这样的超序列在大小可以固定并且大于链路上的最大可能延时。超序列中的EIEOS-TS边界从而可以用作远程同步计数器值的代理。
此外,HPI可以支持主-从模型,其中确定性主控设备或系统可以根据它自己的行星对准时刻来驱动与另一个设备的交互的定时。此外,在一些示例中,可以支持主-主决定论。主-主或主从决定论可以确保两个或以上链路对可以在物理层及以上处于锁步。在主-主决定论中,从初始化的每个方向的退出可以由相应传送器控制。在主-从决定论的情况下,例如,除其他潜在示例和实现外,主代理可以通过使从传送器初始化退出等待它的接收器退出初始化而控制链路对的决定论(即,在两个方向上)。
在一些实现中,可以使用同步(或“同步”)计数器连同在HPI环境内维持决定论。例如,可实现同步计数器来对定义数量(例如256或521个UI)计数。该同步计数器可通过异步事件重设并且可从那时(潜在地甚至在低功率链路状态期间)持续(利用翻转)计数。除其他示例外,基于引脚的复位(例如,上电复位、热复位)可以是同步事件,其重设同步计数器。在一个实施例中,这些事件可以两侧出现,具有比同步计数器值小(并且在许多情况下,小得多)倾斜。在初始化期间,在训练超序列的训练序列前面的传送退出有序集(例如,EIEOS)的开始可与同步计数器(例如,同步计数器翻转)的复位值对准。这样的同步计数器可以在链路上的每个代理处维持以便通过在特定链路上维持flit传送的恒定延时来保留决定论。
除其他信号外,控制序列和代码可以与行星对准信号同步。例如,EIEOS序列、BLS或L0c窗口(和包括的代码)、SDS等可以配置成同步到行星对准。此外,除其他示例外,同步计数器可以根据外部信号(例如来自设备的行星对准信号)重设以便使其自身与行星对准同步。
链路上两个代理的同步计数器可以同步。链路的重设、初始化或重新初始化可以包括同步计数器的复位,用于使同步计数器彼此和/或与外部控制信号(例如,行星对准信号)重新对准。在一些实现中,同步计数器可仅通过进入复位状态来重设。在一些实例中,决定论可以例如在返回L0状态中维持,而没有同步计数器的复位。相反,已经调谐到行星对准的其他信号或其他确定性事件可以用作复位的代理。在一些实现中,EIEOS可以在确定性状态进入中使用。在一些实例中,EIEOS的边界和超序列的初始TS可以用于识别同步时刻并且使链路上的代理中的一个的同步计数器同步。除其他示例外,EIEOS的结束可以例如用于避免损坏EIEOS的起始边界的瞬态的可能性。
在HPI的一些实现中还可以提供延时固定。延时不仅可以包括由用于flit传递的传送线所引入的延时,而且还包括由链路的另一侧上的代理的处理所产生的延时。通路的延时可以在链路初始化期间确定。此外,还可以确定延时中的改变。从确定的延时可以发起延时固定来补偿这样的改变并且使对通路预期的延时返回恒定的预期值。维持通路上的一致延时对在一些系统中维持决定论可是关键的。
在一些实现中,延时可以使用延时缓冲器结合决定论而在接收器链路层处固定为编程值并且通过在同步计数器翻滚时开始检测(例如,通过发送检测超序列)而启用。因此,在一个示例中,轮询和配置中的传送EIEOS(或其他EOS)可以在同步计数器翻滚时出现。也就是说,EIEOS可以精确地与同步计数器对准,使得同步的EIEOS(或其他EOS)可以在一些实例中对于同步计数器值本身(至少连同某些延时固定活动)充当代理。例如,接收器可以对接收的EIEOS添加足够延时使得它在物理层-链路层界面处满足指定的目标延时。作为示例,如果目标延时是96个UI并且倾斜校正后的接收器EIEOS在同步计数处是80个UI,可以添加16个UI的延时。本质上,给出EIEOS的同步,通路的延时可以基于在知道要发送EIEOS的时候(例如,在特定同步计数器值)与接收EIEOS的时候之间的延迟而确定。此外,延时可以使用EIEOS而固定(例如,通过向EIEOS的传送添加延时来维持目标延时,等)。
延时固定可以在决定论的上下文中使用以准许外部实体(例如提供行星对准信号的实体)在两个方向上使跨链路的两个代理的物理状态同步。这样的特征可以例如在本领域内的调试问题中使用并且用于支持锁步行为。因此,这样的实现可以包括可导致物理层在两个代理上转变到传送链路状态(TLS)的一个或多个信号的外部控制。代理处理决定论能力可以在TS边界上退出初始化,这在声称信号时或之后也潜在地是清空的flit。主-从决定论可允许主控装置在两个方向上使跨链路的主和从代理的物理层状态同步。如实现的话,从初始化的从传送器退出可以取决于(例如,遵循或与之协调)它从初始化的接收器退出(除基于决定论的其他考虑外)。除其他示例外,具有决定论能力的代理可另外拥有进入清空flit上的BLS或L0c窗口的功能性。
在一些实现中,HPI中的决定论可以包括促进一个代理基于确定性信号确定和应用延迟的能力。主控装置可以向远程代理发送目标延时的指示。远程代理可以确定通路上的实际延时并且应用延迟来调整延时以满足目标延时(例如,在TS中识别的)。调整延迟或延时可以帮助促进在行星对准点最终同步进入链路传送状态。延迟值可以例如在超序列的TS有效载荷中由主控装置传递到从装置。延迟可以规定为延迟所确定的特定数量的UI。从装置可以基于确定的延迟而延时进入状态。除其他示例外,这样的延迟可以例如用于便于测试以使链路的通路上的L0c间隔交错。
如上文指出的,状态退出可以根据行星对准点而发生。例如,可以发送SDS来中断状态超序列以驱动从状态到另一个状态的转变。可以对SDS的发送定时以与行星对准点一致,并且在一些情况下,响应于行星对准信号。在其他实例中,SDS的发送可以基于同步计数器值或同步到行星对准的其他信号而与行星对准点同步。在一些情况下,SDS可以在超序列中在任何点处发送,从而中断超序列的特定TS或EIEOS等。除其他示例外,这可以确保在保留与行星对准点的对准时具有很少延迟的状态转变。
在一些实现中,高速链路(例如支持和使用HPI的那些)可以由于对实现链路的物理线的电气需求而在长度上受到约束。例如,在HPI系统实现中的电气驱动器/接收器可以对具有有限长度和带宽(例如,在10.4Gbs是FR4的24’’)的电气通道优化。这对于几何上更小的架构更加可接受,但对于例如服务器机架以及其他大小更大的高速系统等应用,可采用中继器(例如重定时器或重驱动器)来扩展链路的长度。此外,可以引入光学链路来取代或补充电气链路的段并且由此增加支持HPI的物理链路的距离。
转向图11的示例,系统可以包括使用高速链路而互连的两个或以上设备1105、1110。在该示例中,链路的一部分可以包括电气链路段1115、1120,其使相应设备1105、1110连接到光学元件1125、1130。这些光学元件1125、1130可以由光学链路1135连接。光学链路(例如,1135)可以包括两个或以上光纤通路,其中这些通路中的至少一些指定为支持前向或出站业务并且通路中的其他支持逆向或入站业务。光学元件1125、1130中的一个或两个在一些实例中可以实现为中继器设备,例如重定时器。在一些实现中,光学元件(例如,1125、1130)可以在对应设备(例如,1105、1110)上集成使得设备将数据直接发送到光学链路1135上。
如上文指出的,在HPI的一些实现中,可以定义一个或多个状态,其依赖下拉的检测来确定链路上远程接收器的存在。例如,如在图7的示例状态机中示出的,使两个设备(例如,1105、1110)耦合的链路在除三个状态(事件复位、校准复位和接收器检测)以外的状态中是活跃的。在这些闲置状态中的一个或多个中,接收器终端可以用于提示从状态退出或转变。例如,RxDetect状态可以牵涉由传送器监测链路的另一端上的接收器终端。这可以导致状态转变到这样的状态,其中数据从传送器主动被信号传递到接收器。图12图示该概念,即下拉电压1205在响应于接收器插入它的终端而在使传送器1210连接到接收器1215的特定链路的通路上(在通路的逆向方向上)可以显现。可以由传送器1210使用相同通路来向接收器1215发送信号1220,连同链路的配置和自适应以及活跃链路状态(信号在前向方向上发送(即,从传送器到接收器))。
转向图11的示例,为了使设备A 1105上的传送器支持HPI的实现(其包括定义的接收器在链路状态机中定义的检测状态上检测到下拉电压),设备A
1105应能够对于设备B 1110的接收器的终端来监测电气链路1115以便识别握手来退出检测状态(例如,RxDetect)。尽管插入设备B
1110的终端将生成下拉电压(其具有遵从设备A在检测状态监测期间所预期的下拉电压的特性),下拉电压将仅在光学元件1130处被识别。此外,终端电压无法在光学通道上再现。因此,光学元件1125、1130可以被提供有用于使设备(例如,1110)连接到光学元件(例如,1130)的电气链路(例如,1120)上的光学元件(例如,1130)所检测的下拉电压合成的功能性。合成的下拉信号然后可以在监测设备(例如,1105)的电气链路的通路上产生,从而允许监测设备检测远程设备(例如,1110)的存在并且成功退出检测状态。
在电气系统中,接收器下拉的检测典型地在传送器处进行,例如通过使用分压器并且在具有和没有远程终端的情况下监测电气(例如,电压)差。为了允许在链路上识别这样的下拉(其中链路的至少一部分使用光学链路来实现),可以使用备选技术方案和增强。例如,可以提供一个或多个额外电线来补充光学链路。补充电线可以主要为了传播下拉改变而提供并且可以从其他HPI信令省略,从而打消使用具有与光学链路相同的扩展长度的电线的劣势。在另一个备选方案中,用于连接HPI设备的光学链路可以被工程化以在逆向方向上具有某一带宽。例如,下拉打开/关闭可以简单地作为光学信号在逆向方向上在这样的链路上传播。在本实现中,HPI链路可以包括链路对,其中链路(每个由多个通路组成)在相对方向上行进。除其他示例外,可以利用双向链路来传递合成下拉信号作为检测状态握手的部分。
转向图13的示例,示出两个设备1105、1110,其被电气(例如,1115、1120)和光学(例如,1135)链路两者所连接。光学元件1125、1130可以用于使电气链路转变到光学链路并且转变回。电气链路1115、1120可以是双向链路(例如相应地,1305、1310和1315、1320),其中每个链路包括多个通路。光学链路1135还可以包括双向链路1325、1330,其包括便于从设备A到设备B的传送的一个或多个光学链路以及便于从设备B到设备A的传送的一个或多个光学链路。双向对(例如,1305和1310、1314和1320、1325和1330)可以用于根据设备A或设备B在电气链路(例如,1305、1320)中的对应一个处插入它的终端来发送合成的下拉信号。例如,在设备A的接收器插入它的终端时,下拉电压在链路1305上传播(在逆向方向上)。光学元件1125可以包括检测器,用于检测下拉电压并且将下拉电压解释为对应于握手中的下拉。光学元件1125可以生成信号,例如低频光学信号,并且通过光学链路1330将该信号传送到光学元件1130。光学元件1130在光学链路1330上接收信号时可以将信号解释为下拉电压已在连接到设备1110的远程设备(例如,1105)上检测这一指示。作为响应,在传送器监测链路1315时(例如,在RxDetect状态期间),光学元件1130可以生成与设备B 1110的传送器所预期(并且潜在地在HPI的电气规范中定义)的下拉电压相当的合成下拉电压。因此,尽管光学下拉信号在光学链路1330上传送(在与电气链路1315逆向的方向上),光学元件1130可以提供在检测状态期间设备1110所监测的电气链路1315上的合成下拉电压。相似地,光学元件1130从设备1110的终端所检测的下拉可以促使光学元件1130在光学链路1325上向光学元件1125发送光学下拉信号(例如,低频脉冲或预定义成识别下拉电压的检测的其他信号)。光学下拉信号可以促使光学元件1105在电气链路1310上生成下拉电压,从而允许设备1105确定远程设备1110连接并且准备行进到另一个链路状态。
在一些实现中,在链路的逆向方向上传播的电压可以解释为仅当持续一定持续时间地存在下拉电压时表明远程设备终端的下拉电压。在一个实现中,光学元件1130可以监测电气链路以在发送对应光学下拉信号以促使在远程设备处生成下拉信号的合成版本之前确定电压持续一定持续时间地存在。可以生成下拉信号的合成版本来确保它也持续一定持续时间的保持以便确保接收合成下拉电压的设备适当地解释它。在其他实现中,为了使检测状态期间的延时减小,任何时候电压超过特定值,可以以大致等于电压持续时间的持续时间生成对应的光学下拉信号。接收光学元件可以重新生成电压来匹配电压(当它在发送光学元件上出现时)。因此,除其他潜在实现,接收合成下拉电压的设备可以做出下拉电压在将合成下拉电压解释为在退出检测状态的握手的部分之前是否持续一定持续时间地保持这一确定。
在一些示例中,光学元件1125、1130可以是状态感知的。确实,在状态机中可以定义额外状态来指示光学元件所遵循的协议。例如,电气和光学元件两者都保持闲置,只要未声称下拉即可。当电气链路处于复位状态(例如ResetP或ResetC)时,光学链路(和光学元件1125、1130)可以被置于光学复位或闲置状态(例如,ResetPC)中。当设备A和/或设备B在线(例如,在RxDetect状态)时,光学元件可以进入RxDetect光学(或“RxDetectO”)状态。当处于RxDetectO状态时,光学元件1125、1130可以监测它们相应的电气链路(例如,1310、1315)来识别设备(例如,1105、1110)的下拉。此外,响应于识别下拉,光学元件可以在对应的光学链路上发送光学下拉信号来触发远程设备可检测的合成下拉电压的生成。例如,当处于RxDetectO状态时,非常低的幅度、占空比频(例如,ladf)波(眼睛安全型信号)可以定义成解释为光学下拉信号。接收合成下拉可以促使设备完成它们的RxDetect握手并且移到下一个阶段(例如,TxCalib)。检测超序列可以在后续校准状态期间发送。为了便于在光学链路上转发这些超序列,光学元件1125、1130可以从RxDetectO状态(例如,当设备1105、1110退出RxDetect时利用它们)转变成活跃传送状态(例如,ActiveO状态)并且从传送ladf切换到跨光学链路传输检测超序列。光学元件可以持续处于该ActiveO状态直到来自设备1105、1110的进入信号转到电气闲置并且从电气链路去除终端。除其他示例外,这可促使光学元件1125、1130也变黑、从光学链路去除终端并且使光纤链路返回复位状态(例如,ResetPC)。
在一些实现中,光学链路不仅可以在更大距离上允许高速信令,而且光学链路的带宽可以明显大于馈入它的电气链路的带宽。因此,光学通路可以潜在地承载多个电气通路的业务,从而允许在实现光学链路扩展中使用更少光学缆。转向图14,示出这样的示例,其中来个来个电气通路(例如,每个能够承载10.4Gbs)可以在单个光学通路(例如,能够承载25Gbs)上复用。光学元件的传送器可以包括复用器1405,其可以将从多个电气通路接收的数据复用成要在光学链路上发送的单个流。光学元件可以进一步包括接收器。光学元件的接收器可以包括解复用器和移位逻辑(例如,1410)。解复用器可以将复用流在它们适合的通路上解复用回。
在链路上(例如,在RxDetect中)检测接收设备之后,接着可以是额外链路训练和配置状态。超序列可以通过EIEOS到训练序列(TS)流内的周期性插入来表征。超序列可以在要训练的链路的所有通路上发送并且可以采用同步方式发送(例如,使用同步计数器、行星对准信号等)。确实,EIEOS到TS转变可以为了决定论目的而充当同步计数器的代理。初始超序列可以采用交错方式在通路上发送(由于电气原因),然而,在通路上发送的在第一超序列之后的超序列可被截短来维持通路上超序列的对准。训练序列(它的标头除外)可以使用伪随机位序列(例如PRBS23)而被扰乱。
在一个示例中,HPI可以包括发送检测超序列,例如在图9中图示的。这可以牵涉EIEOS、后跟以PRBS为主的TS流的发送。在其中使用光学链路并且电气链路的多个通路在单个光学通路上复用(如在图14的示例中的)同时超序列的EIEOS部分被发送的示例中,复用流(在两个复用通路的情况下)可以有效地是双EIEOS。例如EIEOS值FF00…可以在复用器1405处与来自通路B的相同EIEOS值FF00…并发地从电气通路(例如,通路A)接收。除其他示例外,光学链路上表明的信号从而可以是FFFF0000…(假设在1405处的通路之间没有倾斜并且取决于通路如何被复用)。
在另一光学元件上,解复用器1410可不能立即识别哪个位适于接收器上的哪个通路。因此。解复用器1410可以选择位到通路的初始映射。在一个实现中,位初始可以被随机映射,而在其他情况下预设或其他模式可以选为初始映射。如在光学链路中接收的位然后可以相应地根据初始映射而映射到通路并且被传递到EIEOS检测逻辑(例如,1415)。EIEOS检测逻辑可以检查通路中的每个上的位来确定位是否对应于重复超序列的EIEOS部分。然而,在其中超序列包括具有以伪随机值为主的TS流的实例中,存在EIEOS混叠的可能性。然而,用于扰乱TS流的PRBS可以保证在某一位跨度内未使周期性EIEOS混叠。除其他示例增强外,流中TS的有效载荷在一些实现中可归零以减少保证没有混叠的跨度的长度。在其中检测超序列中的TS置零的情况下,TS的有效载荷可以在解复用成功后在后续链路状态(例如,轮询、回环)的其他超序列中传送。在任一实例中,EIEOS检测模块可等待直到经过位的跨度,之后确认如预期的那样接收超序列(并且不是由混叠产生的假阳性)并且出现EIEOS(其中它应在超序列中)。
此外,通过识别初始EIEOS(或初始EIEOS中的一个)在哪里落在超序列中,后续EIEOS也可以被预测和识别(因为EIEOS的重现根据超序列中的设置频率出现)。这些后续EIEOS可以用于评价EIEOS在通路上是否对准并且从该评价确定通路的初始映射是否正确。在初始映射不正确的情况下,对准检测逻辑(例如,在1415处)可以确定如何使通路指派移位使得在接收器通路上产生对准的EIEOS。因此,对准检测逻辑1415可以基于它的EIEOS对准确定来确定移位值并且将该移位值传递给移位逻辑(例如,在1410处)来促使进入光学链路流的位相应地在解复用中被重新指派给它们合适的通路。当位流被正确映射到接收器通路时,EIEOS应在对准检测逻辑块1415处显示为对准。该映射然后可以管理光学链路的寿命时间(例如,直到它的下一个复位)。
如在图14中示出的,嵌入式时钟信号也可以从到达光学元件的接收器的光学链路信令数据提取。嵌入式时钟可以基于参考时钟。该参考时钟可由使用光学链路而连接的端点设备(例如,1105、1110)中的一个本地的晶体提供。然而,当设备处于复位或RxDetect状态(例如,在插入终端之前)时,远离参考时钟的设备可以失去对参考时钟的访问。在这样的实例中,远程参考时钟可以至少暂时被不同的本地时钟取代。本地时钟可以管理直到再次从远程设备接收信令,其包括嵌入式时钟信号。
作为示例,参考时钟本地的设备可以充当主控装置,并且另一远程设备充当从装置。从装置可以在链路(例如组合电气和光学链路)活跃时使用参考时钟,但在链路闲置(并且嵌入式时钟信号不可用)时切换到它的本地时钟。例如,当没有进入信令时,控制器(例如在图15中图示的)可以使从时钟切换到从本地参考时钟所得到的。此外,在一些实现中,根据HPI协议的信令可以包括在从装置处触发时钟切换的信号。例如,L0c间隔可以用于发送触发时钟切换的消息。此外,闲置(例如,L1、复位等)与非闲置(L0、L0p等)状态之间的转变可以在链路上的两个设备(例如,1105、1110)之间同步,并且可以利用该特征来管理从装置的时钟从远程参考时钟通路从装置的本地时钟的转变。该方法也可以使从装置的延时减少(例如,通过消除漂移缓冲器)。在确定性系统中,当转变回到远程参考时钟时,从装置可以帮助除其他示例外例如在轮询状态中进行延时固定并且/或使它的同步计数器/EIEOS(例如,在行星对准时)重新初始化。
应意识到可以在高性能互连(其包括使用光学链路来扩展物理通道的实现)中提供其他细节和特征。另外,上文描述的特征中的至少一些可以在可以用于扩展HPI通道的电气中继器(例如,重定时器和重驱动器)中实现。此外,高性能互连(HPI)可以应用在美国专利申请号14/060,191中描述的题为“High
Performance Interconnect(高性能互连)”的一个或多个特征和原理,其通过引用合并于此。
HPI可以包含在任意多种计算设备和系统中,其除其他示例外还包括大型机、服务器系统、个人计算机、移动计算机(例如平板、智能电话、个人数字助理等)、智能家电、游戏或娱乐控制台以及机顶盒。例如,参考图16,描述对于计算系统(其包括多核处理器)的框图的实施例。处理器1600包括任意处理器或处理设备,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或执行代码的其他设备。处理器1600在一个实施例中包括至少两个核-核1601和1602,其可包括不对称核或对称核(图示的实施例)。然而,处理器1600可包括任意数量的处理元件,其可以是对称或不对称的。
在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、过程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他元件,其能够保持对于处理器的状态,例如执行状态或架构状态。也就是说,在一个实施例中,处理元件指要独立与例如软件线程、操作系统、应用等代码或其他代码关联的任何硬件。物理处理器(或处理器插槽)典型地指集成电路,其潜在地包括任意数量的其他处理元件,例如核或硬件线程。
代码通常指位于集成电路上、能够维持独立架构状态的逻辑,其中每个独立维持与至少一些专用执行资源关联的架构状态。与核相比之下,硬件线程典型地指位于集成电路上、能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可以看到,当共享某些资源并且其他专用于架构状态,硬件线程和核的命名重叠。甚至经常,核和硬件线程可由操作系统视为个体逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。
物理处理器1600(如在图16中图示的)包括两个核-核1601和1602。在这里,核1601和1602视为对称核,即具有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核1601包括无序处理器核,而核1602包括有序处理器核。然而,核1601和1602可单独从任意类型的核选择,例如原生核、软件管理核、适于执行原生指令集架构(ISA)的核、适于执行转换的指令集架构(ISA)的核、共同设计的核或其他已知核。在异构核环境(即,非对称核)中,例如二进制转换等一些形式的转换可用于调度或执行一个或两个核上的代码。甚至对于进一步的论述,当核1602中的单元在描绘的实施例中采用相似方式操作时,在核1601中图示的功能单元在下文进一步详细描述。
如描绘的,核1601包括两个硬件线程1601a和1601b,其也可称为硬件线程槽1601a和1601b。因此,软件实体(例如操作系统)在一个实施例中潜在地将处理器1600视为四个独立处理器,即能够并发执行四个软件线程的四个逻辑处理器或处理元件。如上文提到的,第一线程与架构状态寄存器1601a关联,第二线程与架构状态寄存器1601b关联,第三线程可与架构状态寄存器1602a关联,并且第四线程可与架构状态寄存器1602b关联。在这里,架构状态寄存器(1601a、1601b、1602a和1602b)中的每个可称为处理元件、线程槽或线程单元,如上文描述的。如图示的,架构状态寄存器1601a在架构状态寄存器1601b中复制,因此个体架构状态/上下文能够对逻辑处理器1601a和逻辑处理器1601b贮存。在核1601中,其他较小的资源(例如分配器和重命名器块1630中的指令指针和重命名逻辑)还可对于线程1601a和1601b复制。例如记录器/引退单元1635中的重排序缓冲器、ILTB 1620、负载/贮存缓冲器和队列等一些资源可通过分区而共享。例如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据TLB 1615、执行单元1640和无序单元1635的部分等其他资源潜在地被完全共享。
处理器1600通常包括其他资源,其可完全被共享、通过分区而共享或被处理元件专用/专用于处理元件。在图16中,图示具有处理器的说明性逻辑单元/资源的纯粹示范性处理器的实施例。注意处理器可包括或省略这些功能单元中的任一个,以及包括未描绘的任何其他已知功能单元、逻辑或固件。如图示的,核1601包括简化的代表性无序(OOO)处理器核。但有序处理器可在不同的实施例中使用。OOO核包括用于预测要执行/采取的分支的分支目标缓冲器1620,和用于贮存对于指令的地址转换条目的I-TLB 1620。
核1601进一步包括解码模块1625,其耦合于提取单元1620来对提取的元素解码。在一个实施例中,提取逻辑包括分别与线程槽1601a、1601b关联的个体定序器。通常,核1601与第一ISA关联,其限定/规定能在处理器1600上执行的指令。通常,是第一ISA的部分的机器代码指令包括指令的一部分(称为操作码),其参考/规定要执行的指令或操作。解码逻辑1625包括电路,其识别来自它们的操作码的这些指令并且在流水线中传递解码指令用于如由第一ISA限定的处理。例如,如在下文更详细论述的,在一个实施例中,解码器1625包括设计成或适于识别特定指令(例如交易指令)的逻辑。由于被解码器1625识别,架构或核1601采取特定、预定义动作来执行与适合的指令关联的任务。重要的是要注意本文描述的任务、块、操作和方法中的任一个可响应于单个或多个指令来执行;其中的一些可以是新的或旧的指令。注意在一个实施例中,解码器1626识别相同的ISA(或其子集)。备选地,在异构核环境中,解码器1626识别第二ISA(第一ISA或截然不同的子集)。
在一个示例中,分配器和重命名器块1630包括用于保留资源(例如用于贮存指令处理结果的寄存器文件)的分配器。然而,线程1601a和1601b潜在地能够无序执行,其中分配器和重命名器块1630还保留其他资源,例如用于跟踪指令结果的记录器缓冲器。单元1630还可包括寄存器重命名器,用于对于处理器1600内部的其他寄存器重命名程序/指令参考寄存器。记录器/引退单元1635包括部件,例如上文提到的记录器缓冲器、负载缓冲器和贮存缓冲器,用于支持无序执行,以及稍后无序执行的指令的有序引退。
在一个实施例中,调度器和执行单元块1640包括调度器单元,用于调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元关联的寄存器文件来贮存信息指令处理结果。示范性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、负载执行单元、贮存执行单元和其他已知的执行单元。
较低级数据高速缓存和数据转换缓冲器(D-TLB)1650耦合于执行单元1640。数据高速缓存用于贮存最近使用/操作的元素,例如数据操作数,其潜在地保持在存储器一致性状态。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为特定示例,处理器可包括页表结构,用于将物理存储器分成多个虚拟页。
在这里,核1601和1602共享对更高级或更远高速缓存的访问,例如与片上接口1610关联的第二级高速缓存。注意更高级或更远离指增加或变得更远离执行单元的高速缓存级别。在一个实施例中,更高级高速缓存是最后级别的数据高速缓存-在处理器1600上的存储器等级中最后的高速缓存-例如第二或第三数据高速缓存。然而,更高级高速缓存不这样受限制并且可与指令高速缓存关联或包括指令高速缓存。踪迹高速缓存-一个类型的指令高速缓存-相反可耦合在解码器1625后面来贮存最近解码的踪迹。在这里,指令潜在地指宏指令(即,由解码器识别的一般指令),其可解码成许多微指令(微操作)。
在描绘的配置中,处理器1600还包括片上接口模块1610。历史上,存储器控制器(其在下文更详细描述)已经包括在处理器1600外部的计算系统中。在该场景中,片上接口1610与处理器1600外部的设备通信,例如系统存储器1675、芯片集(通常包括用于连接到存储器1675的存储器控制器中枢和用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路。并且在该场景中,总线1605可包括任何已知的互连,例如多点总线、点到点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层协议架构、差分总线和GTL总线。
存储器1675可专用于处理器1600或与系统中的其他设备共享。存储器1675的类型的常见示例包括DRAM、SRAM、非易失性存储器(NVM)和其他已知的存储设备。注意装置1680可包括图形加速器、耦合于存储器控制器中枢的处理器或卡、耦合于I/O控制器中枢的数据存储、无线收发器、闪存设备、音频控制器、网络控制器或其他已知设备。
然而近来,因为更多的逻辑和设备在单个芯片(例如SOC)上集成,这些设备中的每个可包含在处理器1600上。例如,在一个实施例中,存储器控制器中枢在与处理器1600相同的封装件和/或芯片上。在这里,核1610的一部分(核上的部分)包括一个或多个控制器,用于与例如存储器1675或图形设备1680等其他设备接口。包括用于与这样的设备接口的互连和控制器的配置通常称为核上(或非核配置)。作为示例,片上接口1610包括用于片上通信的环型互连和用于片外通信的高速串行点到点链路1605。甚至,在SOC环境中,甚至更多的设备(例如网络接口、协处理器、存储器1675、图形处理器1680和任何其他已知的计算机设备/接口)可在单个芯片或集成电路上集成来以高功能性和低功耗地提供小的形状因子。
在一个实施例中,处理器1600能够执行编译器、优化和/或转换器代码1677来编译、转换和/或优化应用代码1676以支持本文描述的装置和方法或与之接口。编译器通常包括用于将源文本/代码转换成目标文本/代码的程序或程序集。通常,程序/应用代码用编译器的编译可在多个阶段和遍次中执行以将高级编程语言代码变换成低级机器或汇编语言代码。甚至,单遍编译器可用于简单编译。编译器可使用任何已知的编译技术并且执行任何已知的编译器操作,例如词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器通常包括多个阶段,但很多时候这些阶段包括在两个一般阶段内:(1)前端,即大体上在可发生句法分析、语义处理,以及一些变换/优化的地方,以及(2)后端,即大体上在可发生分析、变换、优化和代码生成的地方。一些编译器指中间,其图示编译器的前端与后端之间轮廓的模糊。因此,对插入、关联、生成或编译器的其他操作的引用可在任何前面提到的阶段或遍次以及编译器的任何其他已知阶段或遍次中发生。作为说明性示例,编译器潜在地可在编译的一个或多个阶段中插入操作、调用、函数等,例如调用/操作在编译的前端阶段中的插入以及然后在变换阶段期间调用/操作到较低级代码的变换。注意,在动态编译期间,编译器代码或代码优化代码可插入这样的操作/调用,以及在运行时间期间优化代码以用于执行。作为特定说明性示例,二进制代码(已经编译的代码)可在运行时间期间被动态优化。在这里,程序代码可包括动态优化代码、二进制代码或其组合。
与编译器相似,例如二进制转换器等转换器可静态或动态地转换代码来优化和/或转换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可指:(1)动态或静态执行编译器程序、优化代码优化器或转换器来编译程序代码、维持软件结构、执行其他操作、优化代码或转换代码;(2)主程序代码的执行,该主程序代码包括操作/调用,例如已经被优化/编译的应用代码;(3)执行与主程序代码关联的其他程序代码(例如库),来维持软件结构、执行其他软件相关操作或优化代码;或(4)其组合。
现在参考图17,示出多核处理器的实施例的框图。如在图17的实施例中示出的,处理器1700包括多个域。具体地,核域1730包括多个核1730A-1730N,图形域1760包括具有媒体引擎1765的一个或多个图形引擎,和系统代理域1710。
在各种实施例中,系统代理域1710处理功率控制事件和功率管理,使得域1730和1760的个体单元(例如,核和/或图形引擎)独立可控以鉴于在指定单元中出现的活动性(或不活动性)而以适合的功率模式/级(例如,活跃、涡轮、睡眠、休眠、深度睡眠或其他高级配置功率接口类状态)动态操作。域1730和1760中的每个可以不同电压和/或功率操作,并且此外域内的个体单元每个潜在地以独立频率和电压操作。注意尽管仅示出有三个域,理解本发明的范围在该方面不受限制并且在其他实施例中可存在额外域。
如示出的,除各种执行单元和额外处理元件外,每个核1730进一步包括低级高速缓存。在这里,各种核彼此耦合并且耦合于由最后级别的高速缓存(LLC)1740A-1740N的多个单元或片形成的共享高速缓存存储器;这些LLC通常包括存储和高速缓存控制器功能性并且在核之中共享,以及潜在地也在图形引擎之间共享。
如看到的,环型互连1750使核耦合在一起,并且经由多个环型止动1752A-1752N(每个在核与LLC片之间的耦合处)而在核域1730、图形域1760和系统代理电路1710之间提供互连。如在图17中看到的,互连1750用于承载各种信息,其包括地址信息、数据信息、确认信息和窥探/无效信息。尽管图示环型互连,可使用任何已知的片上互连或构造。作为说明性示例,上文论述的构造中的一些(例如,另一个片上互连、片上系统构造(OSF)、高级微控制器总线架构(AMBA)互连、多维网状构造或其他已知互连架构)可采用相似方式使用。
如进一步描绘的,系统代理域1710包括显示引擎1712,其提供关联显示器的控制和到关联显示器的接口。系统代理域1710可包括其他单元,例如:集成存储器控制器1720,其提供到系统存储器的接口(例如,用多个DIMM实现的DRAM;执行存储器一致性操作的一致性逻辑1722)。可存在多个接口以在处理器与其他电路之间实现互连。例如,在一个实施例中,提供至少一个直接媒体接口(DMI)1716以及一个或多个PCIe™接口1714。显示引擎和这些接口典型地经由PCIe™网桥1718耦合于存储器。再进一步地,为了在其他代理(例如额外处理器或其他电路)之间提供通信,可提供一个或多个其他接口。
现在参考图18,示出根据本发明的实施例的第二系统1800的框图。如在图18中示出的,多处理器系统1800是点到点互连系统,并且包括经由点到点互连1850而耦合的第一处理器1870和第二处理器1880。处理器1870和1880中的每个可以是处理器的某一版本。在一个实施例中,1852和1854是串行点到点一致性互连构造(例如高性能架构)的部分。因此,本发明可在QPI架构内实现。
尽管仅示出有两个处理器1870、1880,要理解本发明的范围不这样受限制。在其他实施例中,在指定处理器中可存在一个或多个额外处理器。
示出处理器1870和1880,其分别包括集成存储器控制器单元1872和1882。处理器1870还包括点到点(P-P)接口1876和1878作为它的总线控制器单元的部分;相似地,第二处理器1880包括P-P接口1886和1888。处理器1870、1880可使用P-P接口电路1878、1888经由点到点(P-P)接口1850来交换信息。如在图18中示出的,IMC 1872和1882使处理器耦合于相应的存储器,即存储器1832和存储器1834,其可以是本地附连到相应处理器的主存储器的部分。
处理器1870、1880每个使用点到点接口电路1876、1894、1886、1898经由个体P-P接口1852、1854而与芯片集1890交换信息。芯片集1890还经由接口电路1892沿高性能图形互连1839与高性能图形电路1838交换信息。
在处理器中或两个处理器外部可包括共享高速缓存(未示出);仍然经由P-P互连与处理器连接,使得如果处理器被置于低功率模式则任一或两个处理器的本地高速缓存信息都可存储在共享高速缓存中。
芯片集1890可经由接口1896耦合于第一总线1816。在一个实施例中,第一总线1816可以是外围部件互连(PCI)总线,或例如PCI高速总线或另一个第三代I/O互连总线等总线,但本发明的范围不这样受限制。
如在图18中示出的,各种I/O设备1814连同总线桥1818一起耦合于第一总线1816,该总线桥1818可使第一总线1816耦合于第二总线1820。在一个实施例中,第二总线1820可以是低引脚计数(LPC)总线。各种设备耦合于第二总线1820,其包括例如键盘/鼠标1822、通信设备1827和存储单元1828,例如盘驱动器或其他大容量存储设备,其在一个实施例中可包括指令/代码和数据1830。此外示出音频I/O 1824,其耦合于第二总线1820。注意其他架构是可能的,其中包括的部件和互连架构变化。例如,代替图18的点到点架构,系统可实现多点总线或其他这样的架构。
尽管已经关于有限数量的实施例描述本发明,本领域内技术人员将意识到从其处的许多修改和变化。规定附上的权利要求涵盖所有这样的修改和变化,它们落入本发明的真正精神和范围内。
设计可经历各种阶段,从创建到模拟到制造。代表设计的数据可采用许多方式来代表该设计。首先,如在模拟中有用的,硬件可使用硬件描述语言(HDL)或另一个功能描述语言来表示。另外,具有逻辑和/或晶体管门的电路级模型可在设计过程的某些阶段产生。此外,大部分设计在某个阶段达到代表硬件模型中各种设备的物理布局的数据水平。在其中使用常规半导体制造技术的情况下,代表硬件模型的数据可以是规定对用于生产集成电路的掩模的不同掩模层上的各种特征存在或不存在的数据。在一些实现中,这样的数据可采用数据库文件格式存储,例如图形数据系统II(GDS II)、开放艺术品系统互换标准(OASIS)或相似格式。
在一些实现中,除其他示例外,基于软件的硬件模型和HDL以及其他功能描述语言对象可以包括寄存器传输语言(RTL)文件。这样的对象可以是机器可解析的,使得设计工具可以接受HDL对象(或模型)、就描述的硬件的属性来解析HDL对象并且从对象确定物理电路和/或片上布局。设计工具的输出可以用于制造物理设备。例如,设计工具可以从HDL对象确定各种硬件和/或固件元件的配置,除将被实现以便实现在HDL对象中模型化的系统的其他属性外例如宽度、寄存器(其包括大小和类型)、存储器块、物理链路路径、构造拓扑。设计工具可以包括用于确定片上系统(SoC)和其他硬件设备的拓扑和构造配置的工具。在一些实例中,HDL对象可以用作用于开发可以被制造设备使用来制造描述的硬件的模型和设计文件的基础。确实,HDL对象本身可以作为对制造系统软件的输入而提供来导致描述的硬件。
在设计的任何表示中,数据可采用任何机器可读介质的形式存储。存储器或例如盘等磁性或光学存储可以是用于存储经由光或电波传送的信息的机器可读介质,调制或用别的方式产生该光或电波来传送这样的信息。当传送指示或携带代码或设计的电载波时,就执行电信号的复制、缓冲或重传来说,做出新的副本。从而,通信提供商或网络提供商可将例如编码到载波内的信息等物品存储在有形、机器可读的介质上(至少暂时地),其体现本发明的实施例的技术。
如本文使用的模块指硬件、软件和/或固件的任何组合。作为示例,模块包括硬件,例如微控制器,其与非暂时性介质关联来存储适于由该微控制器执行的代码。因此,在一个实施例中对模块的引用指硬件,其具体配置成识别和/或执行在非暂时性介质上保持的代码。此外,在另一个实施例中,模块的使用指包括代码的非暂时性介质,该代码具体适于由微控制器执行来执行预定的操作。并且如可以推断的,在再另一个实施例中,术语模块(在该示例中)可指微控制器和非暂时性介质的组合。通常,图示为分开的模块边界通常变化并且潜在地重叠。例如,第一和第二模块可共享硬件、软件、固件,或其组合,同时潜在地保留一些独立硬件、软件或固件。在一个实施例中,术语逻辑的使用包括例如晶体管、寄存器等硬件或例如可编程逻辑设备等其他硬件。
在一个实施例中,短语‘配置成’的使用指设置、装配、制造、推销、进口和/或设计装置、硬件、逻辑或元件来执行指定或确定的任务。在该示例中,不在操作的装置或其元件如果它被设计、耦合和/或互连来执行所述指定任务则仍然‘配置成’执行指定任务。作为纯粹说明性的示例,逻辑门在操作期间可提供0或1。但‘配置成’向时钟提供启用信号的逻辑门不包括可提供1或0的每个潜在的逻辑门。相反,逻辑门是采用在操作期间1或0输出要启用时钟的某个方式耦合的一个。再一次注意术语‘配置成’的使用不要求操作,而相反集中在装置、硬件和/或元件的潜伏状态,其中在潜伏状态中,装置、硬件和/或元件设计成当装置、硬件和/或元件操作时执行特别任务。
此外,在一个实施例中,短语 ‘以’、‘能够’和或‘可操作以’的使用指一些装置、逻辑、硬件和/或元件采用能够以采用规定方式使用这些装置、逻辑、硬件和/或元件这样的方式设计。如上文注意以、能够或可操作成在一个实施例中的使用指装置、逻辑、硬件和/或元件的潜伏状态,其中装置、逻辑、硬件和/或元件不操作但采用能够采用规定的方式使用设备这样的方式设计。
如本文使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑水平、逻辑值或逻辑值的使用也称为1和0,其简单地表示二进制逻辑状态。例如,1指高逻辑水平并且0指低逻辑水平。在一个实施例中,例如晶体管或闪存单元等存储单元可能够保持单个逻辑值或多个逻辑值。然而,在计算机系统中已经使用了值的其他表示。例如,十进制数字十也可表示为1010的二进制值和十六进制字母A。因此,值包括能够保持在计算机系统中的信息的任何表示。
此外,状态可由值或值的部分表示。作为示例,例如逻辑一等第一个值可代表默认或初始状态,而例如逻辑零等第二个值可代表非默认状态。另外,术语重设和设置在一个实施例中分别指默认和更新的值或状态。例如,默认值潜在地包括高逻辑值,即重设,而更新值潜在地包括低逻辑值,即设置。注意可使用值的任何组合来代表任何数量的状态。
上文阐述的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上、可由处理元件执行的指令或代码实现。非暂时性机器可访问/可读介质包括采用可由例如计算机或电子系统等机器读取的形式提供(即,存储和/或传送)信息的任何机构。例如,非暂时性机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁性或光学存储介质;闪速存储器设备;电存储设备;光存储设备;声存储设备;用于保持从暂时(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,其要与可从其处接收信息的非暂时性介质区别开。
用于为逻辑编程来执行本发明的实施例的指令可存储在系统中的存储器内,例如DRAM、高速缓存、闪存或其他存储等。此外,这些指令可以经由网络或通过其他计算机可读介质而分发。从而机器可读介质可包括用于采用由机器(例如,计算机)可读的形式存储或传送信息的任何机构,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)和磁光盘、只读存储存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪速存储器或有形的机器可读存储,其在经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传送信息中使用。因此,计算机可读介质包括任何类型的有形机器可读介质,其适合于采用由机器(例如,计算机)可读的形式存储或传送电子指令或信息。
下面的示例关于根据该说明书的实施例。一个或多个实施例可提供方法、装置、系统、机器可读存储、机器可读介质、基于硬件和/或软件的逻辑(例如,通路监视器),其中特定光学元件在特定光学链路上从另一个光学元件接收特定光学信号,其中该特定信号识别要由另一光学元件在第一电气链路上检测的第一设备的下拉电压的检测。合成下拉电压基于特定光学信号在第二电气链路的出站通路上生成,其中光学元件要通过第二电气链路耦合于第二设备。特定光学元件可以进一步在第二电气链路的第一入站通路上从第二设备接收第一信号、在第二电气链路的第二入站通路上从第二设备接收第二信号以及在特定光学链路上使第一和第二信号复用以向第一设备发送第一和第二信号。
在至少一个示例中,特定光学信号包括低频信号。
在至少一个示例中,第一和第二信号包括超序列以供在检测链路状态中使用。
在至少一个示例中,检测链路状态要基于合成下拉信号而进入。
在至少一个示例中,超序列包括电气有序集的重复序列和若干训练序列。
在至少一个示例中,特定光学信号在入站光学通道上接收,并且第一和第二信号在光学链路的出站通道上复用。
在至少一个示例中,接收特定光学信号并且合成下拉信号在接收器检测链路状态中提供。
在至少一个示例中,对于接收器检测链路状态期间的下拉电压来监测第一电气链路。
在至少一个示例中,第一和第二信号包括嵌入式时钟信号,并且嵌入式时钟基于第二设备本地的晶体并且充当第一和第二设备的参考时钟。
在至少一个示例中,特定光学元件将复位进入信号转发到第一设备,该复位进入信号导致转变到复位状态,并且复位进入信号指示在复位状态期间第一设备从嵌入式时钟切换到第一设备本地的时钟。
一个或多个实施例可提供装置、系统、机器可读存储、机器可读介质、基于硬件和/或软件的逻辑和方法,该方法用于在光学链路的特定通路上接收信号、将信号解复用成多个信号、将该多个信号映射到电气链路的多个电气通路、识别信号的一部分对应于电气有序集、使多个信号在多个电气通路上对准以及在多个电气通路上将多个信号传送到多个设备。
在至少一个示例中,确定多个信号到多个电气通路上的初始映射。从电气有序集确定初始映射是不正确的。初始映射移位到多个信号到多个电气通路上的最后映射。
在至少一个示例中,电气有序集包括EIEOS。
在至少一个示例中,信号源自另一个设备并且在包括另一多个电气通路的另一个电气链路上发送。
在至少一个示例中,提供下拉电压检测器来检测多个电气通路中的一个或多个上的下拉电压,并且提供下拉信号发生器以在光学链路上发送信号来向光学元件指示下拉电压。
在至少一个示例中,光学元件基于信号生成合成下拉电压。
在至少一个示例中,下拉电压检测器确定是否声称下拉电压长于定义的持续时间,并且信号响应于声称下拉电压长于定义的持续时间这一确定而发送。
一个或多个实施例可提供系统,其包括第一设备、通过第一电气链路(其包括第一多个电气通路)耦合于第一设备的第一光学元件、通过光学链路耦合于第一光学元件的第二光学元件以及通过第二电气链路(其包括第二多个通路)耦合于第二光学元件的第二设备。光学链路可以包括:一个或多个第一光学通路,用于将数据从第一光学元件发送到第二光学元件;和一个或多个第二光学通路,用于将数据从第二光学元件发送到第一光学元件。第二光学元件在特定光学链路上从第一元件接收特定信号并且基于该特定信号在第二电气链路的出站通路上生成合成下拉电压。该合成下拉信号识别在第一电气链路上由第一光学元件对第一设备的下拉电压的检测。
在至少一个示例中,第一光学元件将合成下拉电压解释为握手、基于该握手来退出接收器检测状态、在第一多个电气通路上从第一设备接收信号以及使来自第一多个电气通路中的两个或以上的信号复用到光学链路的单个光学通路上。信号在光学链路上发送以交付给第二设备。
在该整个说明书中对“一个实施例”或“实施例”的引用意思是连同实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。从而,短语“在一个实施例中”或“在实施例中”在该整个说明书中各种地方的出现不一定都指相同的实施例。此外,特定特征、结构或特性采用任何适合的方式在一个或多个实施例中组合。
在前面的说明书中,参考具体示范性实施例给出详细描述。然而,可对其做出各种修改和改变而不偏离如附上的权利要求中阐述的本发明更广泛的精神和范围,这将是明显的。说明书和图因此要在说明性意义而非限制性意义上考虑。此外,实施例和其他示范性语言在前面的使用不一定都指相同的实施例或相同的示例,而可指不同且截然不同的实施例,以及潜在地相同的实施例。
Claims (22)
1.一种用于传递数据的装置,所述装置包括:
特定光学元件,用于:
在特定光学链路上从另一个光学元件接收特定光学信号,其中所述特定信号识别第一设备的下拉电压的检测,所述第一设备的下拉电压要由另一个光学元件在第一电气链路上检测;
基于所述特定光学信号在第二电气链路的出站通路上生成合成下拉电压,其中所述光学元件要通过所述第二电气链路耦合于第二设备;
从所述第二设备接收第一信号,其中所述第一信号在所述第二电气链路的第一入站通路上被接收;
从所述第二设备接收第二信号,其中所述第二信号在所述第二电气链路的第二入站通路上被接收;以及
在特定光学链路上使所述第一和第二信号复用以向所述第一设备发送所述第一和第二信号。
2.如权利要求1所述的装置,其中所述特定光学信号包括低频信号。
3.如权利要求1所述的装置,其中所述第一和第二信号包括超序列以供在检测链路状态中使用。
4.如权利要求3所述的装置,其中基于合成下拉信号而进入所述检测链路状态。
5.如权利要求3所述的装置,其中所述超序列包括电气有序集的重复序列和若干训练序列。
6.如权利要求1所述的装置,其中所述特定光学信号在入站光学通道上被接收,并且所述第一和第二信号在所述光学链路的出站通道上复用。
7.如权利要求1所述的装置,其中接收所述特定光学信号并且所述合成下拉信号在接收器检测链路状态中提供。
8.如权利要求7所述的装置,其中在所述接收器检测链路状态期间对于下拉电压来监测所述第一电气链路。
9.如权利要求1所述的装置,其中所述第一和第二信号包括嵌入式时钟信号,并且所述嵌入式时钟基于所述第二设备本地的晶体并且充当所述第一和第二设备的参考时钟。
10.如权利要求9所述的装置,其中所述特定光学元件将复位进入信号转发到所述第一设备,所述复位进入信号导致转变到复位状态,并且所述复位进入信号指示在所述复位状态期间所述第一设备从所述嵌入式时钟切换到所述第一设备本地的时钟。
11.一种用于传递数据的装置,所述装置包括:
接收器,用于在光学链路的特定通路上接收信号;
解复用器,用于将所述信号解复用成多个信号并且将所述多个信号映射到电气链路的多个电气通路上;
对准逻辑,用于识别所述信号的一部分对应于电气有序集并且使所述多个信号在所述多个电气通路上对准;以及
传送器,用于在所述多个电气通路上将所述多个信号传送到特定设备。
12.如权利要求11所述的装置,其中所述解复用器用于:
确定所述多个信号到所述多个电气通路上的初始映射;
从所述电气有序集确定所述初始映射是不正确的;以及
使所述初始映射移位到所述多个信号到所述多个电气通路上的最后映射。
13.如权利要求11所述的装置,其中所述电气有序集包括EIEOS。
14.如权利要求11所述的装置,其中所述信号源自另一个设备并且在包括另一多个电气通路的另一个电气链路上被发送。
15.如权利要求11所述的装置,其进一步包括:
下拉电压检测器,用于检测所述多个电气通路中的一个或多个上的下拉电压;
下拉信号发生器,用于在所述光学链路上发送信号来向光学元件指示所述下拉电压。
16.如权利要求15所述的装置,其中所述光学元件基于所述信号生成合成下拉电压。
17.如权利要求15所述的装置,其中所述下拉电压检测器确定是否声称所述下拉电压长于定义的持续时间,并且所述信号响应于声称所述下拉电压长于所述定义的持续时间这一确定而被发送。
18.一种用于传递数据的方法,所述方法包括:
在特定光学链路上从另一个光学元件接收特定光学信号,其中所述特定信号识别第一设备的下拉电压的检测,所述第一设备的下拉电压要由另一个光学元件在第一电气链路上检测;
基于所述特定光学信号在第二电气链路的出站通路上生成合成下拉电压,其中所述光学元件要通过所述第二电气链路耦合于第二设备;
从所述第二设备接收第一信号,其中所述第一信号在所述第二电气链路的第一入站通路上被接收;
从所述第二设备接收第二信号,其中所述第二信号在所述第二电气链路的第二入站通路上被接收;以及
在特定光学链路上使所述第一和第二信号复用以向所述第一设备发送所述第一和第二信号。
19.一种系统,其包括用于执行如权利要求18所述的方法的部件。
20.如权利要求19所述的系统,其中所述部件包括逻辑,所述逻辑的至少一部分在硬件逻辑中,所述逻辑执行如权利要求18所述的方法。
21.一种系统,其包括:
第一设备;
第一光学元件,其通过第一电气链路耦合于所述第一设备,所述第一电气链路包括第一多个电气通路;
第二光学元件,其通过光学链路耦合于所述第一光学元件;
第二设备,其通过第二电气链路耦合于所述第二光学元件,所述第二电气链路包括第二多个通路;
其中所述光学链路可以包括:一个或多个第一光学通路,用于将数据从所述第一光学元件发送到所述第二光学元件;和一个或多个第二光学通路,用于将数据从所述第二光学元件发送到所述第一光学元件;
其中所述第二光学元件用于:
在特定光学链路上从所述第一元件接收特定信号,其中所述合成下拉信号识别由所述第一光学元件对所述第一电气链路上所述第一设备的下拉电压的检测;以及
基于所述特定信号在所述第二电气链路的出站通路上生成合成下拉电压。
22.如权利要求21所述的系统,其中所述第一光学元件:
将所述合成下拉电压解释为握手;
基于所述握手来退出接收器检测状态;
在所述第一多个电气通路上从所述第一设备接收信号;以及
使来自所述第一多个电气通路中的两个或以上的信号复用到所述光学链路的单个光学通路上,其中所述信号在所述光学链路上被发送以交付给所述第二设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/577979 | 2014-12-19 | ||
US14/577,979 US9444551B2 (en) | 2014-12-19 | 2014-12-19 | High performance optical repeater |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105721057A true CN105721057A (zh) | 2016-06-29 |
CN105721057B CN105721057B (zh) | 2019-01-22 |
Family
ID=54704973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510802308.2A Active CN105721057B (zh) | 2014-12-19 | 2015-11-19 | 高性能光中继器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9444551B2 (zh) |
EP (1) | EP3035563B1 (zh) |
KR (1) | KR101776182B1 (zh) |
CN (1) | CN105721057B (zh) |
TW (1) | TWI578720B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130648A (zh) * | 2016-07-07 | 2016-11-16 | 长沙凌峰科技开发有限公司 | 智能双向中继系统及其信道控制方法 |
CN112732621A (zh) * | 2019-05-13 | 2021-04-30 | 英特尔公司 | 用于高速互连的有序集 |
US20220376785A1 (en) * | 2019-11-20 | 2022-11-24 | Mitsubishi Electric Corporation | Optical communication device and communication system |
US12189470B2 (en) | 2020-09-18 | 2025-01-07 | Intel Corporation | Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects |
US12242336B2 (en) | 2019-11-27 | 2025-03-04 | Intel Corporation | Multi-protocol support on common physical layer |
US12355565B2 (en) | 2019-02-15 | 2025-07-08 | Intel Corporation | Low-latency forward error correction for high-speed serial links |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9552269B2 (en) * | 2014-12-23 | 2017-01-24 | Intel Corporation | Test logic for a serial interconnect |
US9859974B2 (en) | 2015-06-25 | 2018-01-02 | International Business Machines Corporation | Rerouting bus data signals from faulty signal carriers to existing healthy signal carriers |
WO2018063233A1 (en) * | 2016-09-29 | 2018-04-05 | Intel Corporation | Mechanism for mipi communication using optical interface |
US10445265B2 (en) * | 2017-10-20 | 2019-10-15 | Cisco Technology, Inc. | Method and apparatus for deskewing decentralized data streams |
US11356636B2 (en) | 2018-01-19 | 2022-06-07 | Caavo Inc | Device identification and power state determination using media device information |
US10735340B2 (en) | 2018-04-18 | 2020-08-04 | Avago Technologies International Sales Pte. Limited | System and method for maximizing port bandwidth with multi-channel data paths |
US10623090B2 (en) * | 2018-05-24 | 2020-04-14 | At&T Intellectual Property I, L.P. | Multi-lane optical transport network recovery |
US10601425B2 (en) * | 2018-05-30 | 2020-03-24 | Intel Corporation | Width and frequency conversion with PHY layer devices in PCI-express |
KR102560251B1 (ko) * | 2018-06-20 | 2023-07-26 | 삼성전자주식회사 | 반도체 장치 및 반도체 시스템 |
US11467999B2 (en) | 2018-06-29 | 2022-10-11 | Intel Corporation | Negotiating asymmetric link widths dynamically in a multi-lane link |
US11169940B2 (en) * | 2019-02-20 | 2021-11-09 | Qualcomm Incorporated | Trace length on printed circuit board (PCB) based on input/output (I/O) operating speed |
US10846247B2 (en) | 2019-03-05 | 2020-11-24 | Intel Corporation | Controlling partial link width states for multilane links |
US11232058B2 (en) | 2019-03-08 | 2022-01-25 | Intel Corporation | Enabling sync header suppression latency optimization in the presence of retimers for serial interconnect |
US11177877B2 (en) * | 2019-05-29 | 2021-11-16 | Hewlett Packard Enterprise Development Lp | Data transfer between electrical-optical devices |
TWI762828B (zh) * | 2019-11-01 | 2022-05-01 | 緯穎科技服務股份有限公司 | 高速序列電腦匯流排的訊號調整方法及其相關電腦系統 |
US11836101B2 (en) | 2019-11-27 | 2023-12-05 | Intel Corporation | Partial link width states for bidirectional multilane links |
US20210311897A1 (en) * | 2020-04-06 | 2021-10-07 | Samsung Electronics Co., Ltd. | Memory with cache-coherent interconnect |
WO2021224180A1 (en) * | 2020-05-08 | 2021-11-11 | Signify Holding B.V. | Power saving for an optical wireless communication system |
US11669473B2 (en) * | 2020-06-26 | 2023-06-06 | Advanced Micro Devices, Inc. | Allreduce enhanced direct memory access functionality |
CN114125592A (zh) * | 2020-08-27 | 2022-03-01 | 中兴通讯股份有限公司 | 光传送网的路由计算方法、路由计算装置及存储介质 |
US12007933B2 (en) | 2020-09-14 | 2024-06-11 | Rockwell Automation Technologies, Inc. | Bi-directional bus topology |
US11403248B2 (en) * | 2020-09-14 | 2022-08-02 | Rockwell Automation Technologies, Inc. | Bi-directional bus topology |
TWI763470B (zh) * | 2021-05-04 | 2022-05-01 | 瑞昱半導體股份有限公司 | 網路裝置之操作方法及網路裝置之控制晶片 |
CN115396382B (zh) * | 2021-05-08 | 2024-08-09 | 瑞昱半导体股份有限公司 | 网络装置的操作方法及网络装置的控制芯片 |
TWI782694B (zh) * | 2021-09-06 | 2022-11-01 | 智原科技股份有限公司 | 時序調整電路、時序不對稱消除方法及接收電路 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1136246A (zh) * | 1995-03-28 | 1996-11-20 | 皮雷利·卡维有限公司 | 具有传送和接收业务信道的光通信方法 |
US6493847B1 (en) * | 1999-06-15 | 2002-12-10 | Applied Micro Circuits Corporation | Sonet B2 parity byte calculation method and apparatus |
CN102790648A (zh) * | 2011-05-20 | 2012-11-21 | 上海晨兴希姆通电子科技有限公司 | 信号接收发送装置及其通信方法 |
US20140215437A1 (en) * | 2012-10-22 | 2014-07-31 | Venkatraman Iyer | High performance interconnect physical layer |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001197012A (ja) * | 1999-10-27 | 2001-07-19 | Toyo Commun Equip Co Ltd | 光伝送中継器及びこれを用いた中継システム |
US6763390B1 (en) * | 2000-01-24 | 2004-07-13 | Ati Technologies, Inc. | Method and system for receiving and framing packetized data |
US20030038681A1 (en) * | 2000-06-02 | 2003-02-27 | Masoud Djafari | System and method of digital tuning a voltage controlled oscillator |
KR100869858B1 (ko) * | 2007-06-27 | 2008-11-24 | (주)엠씨테크놀로지 | 액정 표시 장치, 그의 구동 장치, 디지털 아날로그 변환기및 출력 전압 증폭 회로 |
WO2013147754A1 (en) * | 2012-03-27 | 2013-10-03 | Intel Corporation | Optical link handshake techniques and configurations |
US9304829B2 (en) * | 2013-01-30 | 2016-04-05 | Hewlett Packard Enterprise Development Lp | Determining and ranking distributions of operations across execution environments |
US9647757B2 (en) * | 2014-04-21 | 2017-05-09 | Arris Enterprises, Inc. | Systems and methods for optical modulation index calibration in a CATV network |
-
2014
- 2014-12-19 US US14/577,979 patent/US9444551B2/en not_active Expired - Fee Related
-
2015
- 2015-11-09 TW TW104136860A patent/TWI578720B/zh active
- 2015-11-16 EP EP15194836.1A patent/EP3035563B1/en active Active
- 2015-11-19 CN CN201510802308.2A patent/CN105721057B/zh active Active
- 2015-11-19 KR KR1020150162321A patent/KR101776182B1/ko active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1136246A (zh) * | 1995-03-28 | 1996-11-20 | 皮雷利·卡维有限公司 | 具有传送和接收业务信道的光通信方法 |
US6493847B1 (en) * | 1999-06-15 | 2002-12-10 | Applied Micro Circuits Corporation | Sonet B2 parity byte calculation method and apparatus |
CN102790648A (zh) * | 2011-05-20 | 2012-11-21 | 上海晨兴希姆通电子科技有限公司 | 信号接收发送装置及其通信方法 |
US20140215437A1 (en) * | 2012-10-22 | 2014-07-31 | Venkatraman Iyer | High performance interconnect physical layer |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130648A (zh) * | 2016-07-07 | 2016-11-16 | 长沙凌峰科技开发有限公司 | 智能双向中继系统及其信道控制方法 |
CN106130648B (zh) * | 2016-07-07 | 2018-08-17 | 长沙凌峰科技开发有限公司 | 智能双向中继系统及其信道控制方法 |
US12355565B2 (en) | 2019-02-15 | 2025-07-08 | Intel Corporation | Low-latency forward error correction for high-speed serial links |
CN112732621A (zh) * | 2019-05-13 | 2021-04-30 | 英特尔公司 | 用于高速互连的有序集 |
US20220376785A1 (en) * | 2019-11-20 | 2022-11-24 | Mitsubishi Electric Corporation | Optical communication device and communication system |
US11967985B2 (en) * | 2019-11-20 | 2024-04-23 | Mitsubishi Electric Corporation | Optical communication device and communication system |
US12242336B2 (en) | 2019-11-27 | 2025-03-04 | Intel Corporation | Multi-protocol support on common physical layer |
US12189470B2 (en) | 2020-09-18 | 2025-01-07 | Intel Corporation | Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects |
Also Published As
Publication number | Publication date |
---|---|
CN105721057B (zh) | 2019-01-22 |
US9444551B2 (en) | 2016-09-13 |
KR20160075313A (ko) | 2016-06-29 |
TWI578720B (zh) | 2017-04-11 |
KR101776182B1 (ko) | 2017-09-07 |
US20160182154A1 (en) | 2016-06-23 |
EP3035563B1 (en) | 2019-06-19 |
TW201624944A (zh) | 2016-07-01 |
EP3035563A1 (en) | 2016-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105721057A (zh) | 高性能光中继器 | |
CN112583540B (zh) | 在通道测试期间在多通道链路中的串扰生成 | |
US10795841B2 (en) | High performance interconnect physical layer | |
JP6423040B2 (ja) | 装置およびシステム | |
US10931329B2 (en) | High speed interconnect with channel extension | |
JP6251806B2 (ja) | 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体 | |
CN107408032B (zh) | 互连中的伪随机比特序列 | |
US9692589B2 (en) | Redriver link testing | |
CN110366842A (zh) | 可调节的重定时器缓冲器 | |
CN105718391A (zh) | 事务性缓冲式存储器中的提早识别 | |
TW201705696A (zh) | 高性能中繼器 | |
US9965370B2 (en) | Automated detection of high performance interconnect coupling | |
US10025746B2 (en) | High performance interconnect | |
JP6552581B2 (ja) | 装置、方法、およびシステム | |
JP2019192287A (ja) | 装置、方法、プログラム、システム、およびコンピュータ可読ストレージ媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |