高性能互连物理层的制作方法

文档序号:6631760阅读:132来源:国知局
高性能互连物理层的制作方法
【专利摘要】链路的重新初始化可以不终止链路而发生,其中链路包括,发射机和接收机耦合至多个巷道中的每个巷道,链路的重新初始化包括在每一个巷道上发射预定义的序列。
【专利说明】高性能互连物理层
[0001] 本申请是PCT国际申请号为PCT/US2013/032690、国际申请日为2013年3月15 日、中国国家申请号为201380016998. 8、题为"高性能互连物理层"的申请的分案申请。
[0002] 领域
[0003] 本公开案一般涉及计算机开发领域,尤其涉及包括协调相互依赖的受约束系统的 软件开发。
[0004] 背景
[0005] 半导体处理和逻辑设计中的进展允许增加集成电路器件上存在的逻辑的数量。计 算机系统配置必然已经从系统中的单个或多个集成电路演进为个别集成电路上存在的多 核、多硬件线程及多逻辑处理器,以及这种处理器内集成的其他接口。处理器或集成电路一 般包括单个物理处理器模,其中处理器模可包括任何数量的核、硬件线程、逻辑处理器、接 口、存储器、控制器中枢等。
[0006] 作为在较小的封装包内适配更多处理能力的较高能力的结果,较小的计算设备越 来越流行。智能电话、平板电脑、超薄笔记本电脑及其他用户设备呈指数型增长。然而,这些 较小设备依赖于服务器来进行数据存储以及超出规格的复杂处理。因而,也增加了对高性 能计算市场(即,服务器空间)的需求。例如,在现代服务器中,一般不仅存在具有多个核 的单个处理器,也存在多个物理处理器(也称为多个插槽(socket))来提高计算能力。但 随着处理能力随着计算系统中设备数量而增长,插槽及其他设备间的通信变得更为关键。
[0007] 实际上,互连已经从主要处理电子通信的较传统的多点总线增长为便于快速通信 的全面互连基础结构。不幸的是,由于存在对将来处理器以甚至更高速率进行消耗的需求, 对现有互连基础结构的能力也存在相应的需求。
[0008] 附图简述
[0009] 图1示出按照一实施例的系统的简化框图,该系统包括一系列点对点互连以连接 计算机系统中的多个I/O设备;
[0010] 图2示出按照一实施例的分层协议栈的简化框图;
[0011] 图3示出事务描述符的实施例。
[0012] 图4示出串行点对点链路的实施例。
[0013] 图5示出潜在的高性能互连(HPI)系统配置的多个实施例。
[0014] 图6不出与HPI相关联的分层协议栈的实施例。
[0015] 图7示出示例状态机的表示。
[0016] 图8示出示例控制超序列。
[0017] 图9示出到部分宽度状态的示例转换的流程图。
[0018] 图10示出包括多核处理器的计算系统的框图的实施例。
[0019] 图11示出包括多核处理器的计算系统的框图的另一实施例。
[0020] 图12示出处理器的框图的实施例。
[0021] 图13示出包括处理器的计算系统的框图的另一实施例。
[0022] 图14示出包括多个处理器插槽的计算系统的框图的实施例。
[0023] 图15示出计算系统的框图的另一实施例。
[0024] 各附图中的相同附图标记和名称表示相同的元件。
[0025] 详细描述
[0026] 在以下描述中,提出了许多具体细节以便更透彻地理解本发明,诸如具体处理器 和系统配置类型、具体硬件结构、具体结构和微结构细节、具体寄存器配置、具体指令类型、 具体系统组件、具体处理器流水线阶段、具体互连层、具体分组/事务配置、具体事务名称、 具体协议交换、具体链路宽度、具体实现方式以及操作等等的多个示例。然而,对于本领域 技术人员显而易见的是,不需要必须采用这些具体细节来实现本公开案的主题。在其他情 况下,为避免不必要地混淆本公开案,已经避免了已知组件或方法的非常详细的描述,所述 组件或方法诸如具体的和替代的处理器体系结构、所述算法的具体逻辑电路/代码、具体 固件代码、低级互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、算法用代 码的具体表达、具体掉电和门控技术/逻辑以及计算机系统的其他具体操作细节。
[0027] 尽管可以参照具体集成电路(诸如计算平台或微处理器)中的能量保存、能量效 率等来描述以下实施例,然而其他实施例可应用于其他类型的集成电路和逻辑器件。这里 所述的实施例的类似技术和原理可应用于也受益于这些特征的其他类型的电路或半导体 器件。例如,所公开的实施例不限于服务器计算机系统、台式计算机系统、膝上型计算机、 超级本(Ultrabooks)?,而可以用于其他设备中,诸如手持设备、智能电话、平板电脑、其他 薄型笔记本电脑、芯片上系统(SOC)设备及嵌入式应用。手持设备的一些示例包括蜂窝电 话、网际协议设备、数码相机、个人数字助理(PDA)及手持式PC。这里,用于高性能互连的 类似技术可应用于增加低功率互连中的性能(或甚至节省功率)。嵌入式应用一般包括微 控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域 网(WAN)交换机或者可执行以下教导的功能和操作的任何其他系统。此外,这里所描述的 装置、方法和系统不限于物理计算设备,而是也关于用于能量节省和效率的软件优化。从以 下描述中可显而易见,这里所描述的方法、装置和系统的实施例(无论是参照硬件、固件、 软件或其组合)可被视为对于以性能考虑因素平衡的"绿色技术"将来是关键的。
[0028] 随着计算系统的进步,其中的组件变得更为复杂。用于在多个组件之间耦合和通 信的互连体系结构的复杂度也增加,以确保对于最佳组件操作满足带宽需求。而且,不同的 细分市场要求互连体系结构的不同方面来适合于相应的市场。例如,服务器要求较高性能, 而移动生态系统有时能为节省功率而牺牲总性能。大多数构造的单一目的仍然是以最大的 功率节省来提供最高的可能性能。而且,各种不同的互连可能潜在地受益于这里描述的主 题。
[0029] 外设布局互连(PCI)Express (快线)(PCIe)互连构造体系结构和快速路径(QPI) 构造体系结构等示例可以根据这里描述的一个或多个原理得到潜在的改进。例如,PCIe的 主要目标是使来自不同厂商的组件和设备能在开放式体系结构中互操作,跨越多个细分市 场、客户机(台式机和移动机)、服务器(标准和企业)以及嵌入式设备和通信设备。PCI Express是为广泛的将来的计算和通信平台定义的高性能的、通用I/O互连。一些PCI属性 (诸如其使用模型、负载存储体系结构和软件接口)已经通过其修订而被维持,而先前的并 行总线实现方式已被高度可缩放的完全串行接口所替代。PCI Express的较新版本利用了 点对点互连、基于交换机的技术以及分组化协议中的进步来实现新级别的性能和特征。功 率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性以及差错处理是PCI Express所 支持的高级特征中的一些特征。尽管这里的主要讨论是参照新的高性能互连(HPI)体系结 构,但是这里描述的本发明的多个方面可应用于其他互连体系结构,诸如PCIe兼容体系结 构、QPI兼容体系结构、MIPI兼容体系结构、高性能体系结构或其他已知的互连体系结构。
[0030] 参照图1,示出了由互连一组组件的多个点对点链路组成的构造的实施例。系统 100包括与控制器中枢115耦合的处理器105和系统存储器110。处理器105可以包括任何 处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105 通过前端总线(FSB) 106耦合至控制器中枢115。在一实施例中,FSB 106是如下所述的串 行点对点互连。在另一实施例中,链路106包括与不同的互连标准相兼容的串行差分互连 体系结构。
[0031] 系统存储器110包括任何存储器设备,诸如随机存取存储器(RAM)、非易失性(NV) 存储器、或可由系统100内的设备访问的其他存储器。系统存储器110通过存储器接口 116 耦合至控制器中枢115。存储器接口的示例包括双数据速率(DDR)存储器接口、双通道DDR 存储器接口以及动态RAM (DRAM)存储器接口。
[0032] 在一实施例中,控制器中枢115可包括诸如PCIe互连层次结构中的根中枢(root hub)、根复合体(root complex)或根控制器。控制器中枢115的示例包括芯片集、存储器 控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥以及根控制器/中枢。通常术语芯片 集是指两个物理上分开的控制器中枢,例如与互连控制器中枢(ICH)耦合的存储器控制器 中枢(MCH)。注意到,当前的系统通常包括与处理器105集成的MCH,而控制器115要以以 下描述的类似方式与1/0设备通信。在一些实施例中,通过根复合体115任选地支持对等 路由。
[0033] 这里,控制器中枢115通过串行链路119耦合至交换机/桥120。输入/输出模块 117和121也可称为接口 /端口 117和121,输入/输出模块117和121可包括/实现分层 的协议栈以便在控制器中枢115和交换机120之间提供通信。在一实施例中,多个设备能 够耦合至交换机120。
[0034] 交换机/桥120将分组/消息自设备125向上游(S卩,自分层结构向上朝向根复 合体)路由至控制器中枢115,并且自处理器105或系统存储器110向下游(S卩,自分层结 构向下远离根控制器)路由至设备125。在一实施例中,交换机120被称为多个虚拟PCI对 PCT桥设备的逻辑装配。设备125包括要耦合至电子系统的任何内部或外部设备或组件,诸 如1/0设备、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬盘驱动器、存储设 备、⑶/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线(Firewire)设 备、通用串行总线(USB)设备、扫描仪以及其他输入/输出设备。通常在PCIe语言中,诸如 设备被称为端点。尽管为特别示出,但设备125可以包括桥(例如PCIe对PCI/PCI-X桥) 以支持设备或这些设备所支持的互连构造的传统或其他版本。
[0035] 图形加速器130也可以通过串行链路132耦合至控制器中枢115。在一实施例中, 图形加速器130耦合至MCH,MCH耦合至ICH。于是,交换机120及相应的1/0设备125耦 合至ICH。1/0模块131和118也用于实现分层的协议栈以便在图形加速器130和控制器 中枢115之间通信。类似于以上的MCH讨论,图形控制器或图形加速器130本身可集成在 处理器105内。
[0036] 转至图2,示出分层协议栈的实施例。分层协议栈200可包括任何形式的分层通信 栈,诸如QPI栈、PCI e栈、下一代高性能计算互连(HPI)栈或其他分层栈。在一实施例中, 协议栈200可包括事务层205、链路层210和物理层220。接口(诸如图1中的接口 117、 118、121、122、126和131)可以被表示为通信协议栈200。表示为通信协议栈也可以被称为 实现/包括协议栈的模块或接口。
[0037] 分组可用于在多个组件间传送信息。分组可形成于事务层205和数据链路层210 中以将信息自发射组件携带至接收组件。随着所发送的分组流经其他层,使用用于在那些 层处理分组的附加信息来扩展这些所发送的分组。在接收侧发生相反过程,分组从它们的 物理层220表示变换成数据链路层210表示,最终(对于事务层分组)变换成可由接收设 备的事务层205处理的形式。
[0038] 在一实施例中,事务层205可以在设备的处理核和互连体系结构之间提供接口, 诸如数据链路层210和物理层220。在这点上,事务层205的主要责任可包括分组(即,事 务层分组,即TLP)的装配和分解。事务层205也可以管理TLP的基于信用的流控制。在一 些实现中,在其他示例中,可以利用分割事务,即关于请求的事务和关于响应的事务按时间 分开,允许链路携带其他业务而同时目标设备为响应收集数据。
[0039] 基于信用的流控制可用于实现利用互连构造的虚拟信道和网络。在一示例中,设 备可以为事务层205中的每个接收缓冲器广告初始量的信用。在链路相对端的外部设备 (诸如图1中的控制器中枢115)可以对每个TLP所消耗的信用数量计数。如果事务不超过 信用界限,则发送事务。在接收到响应时,恢复信用的数量。这一信用方案的优点的一个示 例在于,在其他潜在优点中,假如不遇到信用界限,信用返回的延迟就不影响性能。
[0040] 在一实施例中,四个事务地址空间可包括配置地址空间、存储器地址空间、输入/ 输出地址空间以及消息地址空间。存储器空间事务包括读请求和写请求中的一个或多个, 用以将数据传递至存储器映射的位置/自存储器映射的位置传递数据。在一实施例中,存 储器空间事务能够使用两个不同的地址格式,例如短地址格式(诸如32位地址)或长地址 格式(诸如64位地址)。配置空间事务可用于访问与互连相连接的各个设备的配置空间。 到配置空间的事务可包括读请求和写请求。也可以定义消息空间事务(或简称为消息)来 支持互连代理之间的带内通信。因此,在一示例实施例中,事务层205可以装配分组头部/ 有效载荷206。
[0041] 快速参照图3,示出事务层分组描述符的示例实施例。在一实施例中,事务描述符 300可以是用于携带事务信息的机制。在这点上,事务描述符300支持系统中事务的标识。 其他潜在用途包括跟踪缺省事务次序的修改以及事务与信道的关联。例如,事务描述符300 可包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,全局标 识符字段302被描述为包括局部事务标识符字段308和源标识符字段310。在一实施例中, 全局事务标识符302对于所有未完成的请求是唯一的。
[0042] 根据一种实现方式,局部事务标识符字段308是由请求方代理(requesting agent)产生的字段,并且可以是对于对该请求方代理要求完成的所有未完成的请求唯一 的。而且,在该示例中,源标识符310唯一地标识互连分层结构内的请求者代理(requestor agent)。因而,局部事务标识符308字段与源ID 310 -起提供分层结构域内事务的全局标 识。
[0043] 属性字段304指定事务的特征和关系。在这点上,属性字段304可能用于提供允许 修改事务的缺省处理方式的附加信息。在一实施例中,属性字段304包括优先级字段312、 保留字段314、排序字段316和无监听(no-snoop)字段318。这里,优先级子字段312可由 发起者修改以将优先级分配给事务。保留属性字段314预留给将来的用途或是厂商定义的 用途。可以使用保留属性字段来实现使用优先级或安全属性的可能的用途模型。
[0044] 在该示例中,排序属性字段316用于提供任选的信息,该任选的信息传递可以修 改缺省排序规则的排序类型。根据一种示例实现方式,为"〇"的排序属性表示要应用缺省 的排序规则,其中为"1"的排序属性表示不受拘束的排序,其中写操作可以在相同方向上通 过写操作,而读操作完成可以在相同方向上通过写操作。监听属性字段318用于确定事务 是否被监听。如图所示,信道ID字段306标识事务与之相关联的信道。
[0045] 返回图2的讨论,链路层210 (也称为数据链路层210)可以充当事务层205和物理 层220之间的中间阶段。在一实施例中,数据链路层210的责任是提供用于在链路上的两 个组件之间交换事务层分组(TLP)的可靠机制。数据链路层210的一侧接受事务层205所 装配的TLP,应用分组序列标识符211 (即,标识号或分组号),计算和应用差错检测码(即 CRC 212),并且将经修改的TLP提交给物理层220,用于跨过物理组件传输至外部设备。
[0046] 在一示例中,物理层220包括逻辑子块221和电气子块222以便将分组物理地发 送至外部设备。这里,逻辑子块221负责物理层221的"数字"功能。在这点上,逻辑子块 可以包括发射部分和接收部分,发射部分用于准备传出信息供物理子块222发送,接收部 分用于在将接收到的信息传递至链路层210之前标识和准备该接收到的信息。
[0047] 物理块222包括发射机和接收机。发射机由具有符号的逻辑子块221提供,发射 机将符号串行化并且向外发射至外部设备。接收机被提供来自外部设备的经串行化符号并 且将接收信号变换成位流。位流被解串行化并被提供给逻辑子块221。在一示例实施例中, 采用8b/10b传输码,其中发射/接收10位的符号。这里,使用特殊的符号来用多个帧223 对分组进行组帧。此外,在一示例中,接收机还提供从传入串行流恢复的符号时钟。
[0048] 如上所述,尽管参照协议栈(诸如PCIe协议栈)的具体实施例讨论了事务层205、 链路层210和物理层220,但是分层的协议栈不限于此。实际上,可以包括/实现任何分层 的协议,分层的协议可以采用这里讨论的特征。作为一示例,被表示为分层协议的端口 /接 口可包括:(1)用于装配分组的第一层,即事务层;用于序列化分组的第二层,即链路层;以 及用于发射分组的第三层,即物理层。作为一具体示例,使用如此处描述的高性能互连分层 协议。
[0049] 接下来参照图4,示出串行点对点构造的示例实施例。串行点对点链路可包括用于 发射串行数据的任何发射路径。在所示实施例中,链路可以包括两个、低压、差分驱动的信 号对:发射对406/411和接收对412/407。因而,设备405包括用于将数据发射至设备410 的发射逻辑406和用于从设备410接收数据的接收逻辑407。换言之,在链路的一些实现中 包括两个发射路径(即路径416和417)和两个接收路径(即路径418和419)。
[0050] 发射路径是指用于发射数据的任何路径,诸如传输线、铜线、光学线路、无线通信 信道、红外通信链路或其他通信路径。两个设备(诸如设备405和设备410)之间的连接被 称为链路,诸如链路415。链路可以支持一条巷道,每条巷道表示一组差分信号对(一对用 于发射,一对用于接收)。为缩放带宽,链路可以聚集由xN标记的多个巷道,其中N是任何 所支持的链路宽度,诸如1、2、4、8、12、16、32、64或更宽。
[0051] 差分对可以指用于发射差分信号的两条发射路径,诸如线路416和417。作为一示 例,当线路416从低电压级别切换至高电压级别时(S卩,上升沿),线路417自高逻辑电平驱 动至低逻辑电平(即,下降沿)。差分信号潜在地说明较佳的电子特性,诸如较佳的信号完 整性,即交叉耦合、电压过冲/下冲、振荡等其他示例优点。这允许较佳的定时窗口,从而允 许较快的传输频率。
[0052] 在一实施例中,提供了新的高性能互连(HPI)。HPI可以包括下一代高速缓存相干 的基于链路的互连。作为一示例,HPI可用于诸如工作站或服务器等高性能计算平台中,包 括在其中PCIe或另一互连协议一般用来连接处理器、加速器、I/O设备等的系统中。然而, HPI不限于此。相反,HPI可用在这里描述的任一系统或平台中。而且,所开发的个别理念 可应用于其他互连和平台,诸如PCIe、MIPI、QPI等。
[0053] 为了支持多个设备,在一示例实现中,HPI可包括指令集架构(ISA)不可知的(即, HPI能够实现于多个不同的设备中)。在另一情况下,HPI也可用于连接高性能I/O设备,而 不仅仅是处理器或加速器。例如,高性能PCIe设备可通过适当的转换桥(即,HPI至PCIe) 耦合至HPI。此外,HPI连接可由许多基于HPI的设备(诸如处理器)以各种方式(例如, 星形、环形、网状等)来使用。图5示出多个潜在的多插槽配置的示例实现。如图所示,双 插槽配置505可包括两个HPI链路;然而,在其他实现中,可以使用一个HPI链路。对于较 大的拓扑结构,只要可分配标识符(ID)并且存在某一形式的虚拟路径以及其他附加或替 代特征,就可以使用任何配置。如图所示,在一示例中,四插槽配置510具有从每个处理器 到每个其他处理器的HPI链路。但在配置515所示的八插槽实现中,不是每一个插槽都通 过HPI链路彼此直接连接。然而,如果在多个处理器之间存在虚拟路径或信道,则支持该配 置。所支持的处理器的范围包括本地域中的2-32个处理器。在其他示例中,可以通过使用 多个域或节点控制器之间的其他互连来达到较高数量的处理器。
[0054] HPI架构包括分层协议架构的定义,在一些示例中,分层协议架构包括协议层(相 干的、非相干的、及任选的其他基于存储器的协议)、路由层、链路层以及物理层。而且,在 其他示例中,HPI还可包括与功率管理器(诸如功率控制单元(PCU))、测试和调试的设计 (DFT)、错误处理、寄存器、安全性有关的增强。图5示出示例HPI分层协议栈的实施例。在 一些实现中,图5所示的至少一些层可以是任选的。每一层处理其自身级别的信息粒度或 信息量(协议层605a、b处理分组630,链路层610a、b处理飞片(flit) 635,物理层605a、 b处理相数位(phit)640)。注意到在一些实现中,基于实现方式,分组可以包括多个部分飞 片、单个飞片或是多个飞片。
[0055] 作为第一示例,相数位640的宽度包括链路宽度到位的1对1映射(例如,20位链 路宽度包括20位的相数位,等等)。飞片可以具有更大的尺寸,诸如184、192或200个位。 注意到,如果相数位640为20位宽而飞片635的尺寸为184位,则需要一部分数目的相数 位640来发射一个飞片635(例如,在其他示例中,20位下的9. 2个相数位来发射184位的 飞片635,或者20位下的9. 6个相数位来发射192位的飞片)。注意到物理层处的基本链 路宽度可以变化。例如,每个方向的道数目可以包括2、4、6、8、10、12、14、16、18、20、22、24 等。在一实施例中,链路层610a、b能够将多片不同的事务嵌入在单个飞片中,并且一个或 多个头部(例如1、2、3、4)可以被嵌入在飞片内。在一示例中,HPI将头部分割成相应的槽 以便使飞片内的多个消息去往不同的节点。
[0056] 在一实施例中,物理层605a、b可以负责在物理介质(电的或光的等等)上快速传 递信息。物理链路可以是两个链路层实体(诸如层605a和605b)之间的点对点。链路层 610a、b可以从较上层抽象出物理层605a、b,并且提供可靠地传递数据(以及请求)以及管 理两个直连实体间的流控制的能力。链路层还可以负责将物理信道虚拟化为多个虚拟信道 和消息类。协议层620a、b依赖于链路层610a、b来在将协议消息转交至物理层605a、b以 便跨物理链路传递之前,将协议消息映射至适当的消息类和虚拟信道。在其他示例中,链路 层610a、b可以支持多个消息,诸如请求、监听、响应、写回、非相干数据。
[0057] 如图6所示,HPI的物理层605a、b (或PHY)可以在电气层(electrical layer) (即,连接两个组件的电导体)上方并且在链路层610a、b下方实现。物理层和相应的逻辑 可以驻留在每个代理上,并且连接彼此隔开的两个代理(A和B)上的链路层(例如,在链路 的任一侧上的设备上)。本地和远程的电层通过物理媒介(例如,电线、导体、光学媒介等) 来连接。在一实施例中,物理层605a、b具有两个主要的相位、初始化和操作。在初始化器 件,连接对链路层不透明,信令可以包括定时的状态和握手事件的组合。在操作期间,连接 对链路层透明,信令具有一定速度,其中所有巷道在一起操作作为单个链路。在操作阶段期 间,物理层将分片从代理A传输至代理B,且从代理B传输至代理A。该连接也称为链路,并 且从链路层抽象出包括媒介、宽度和速度在内的某些物理方面,而同时与链路层交换当前 配置的飞片和控制/状态(例如,宽度)。初始化阶段包括次要阶段,例如轮询、配置。操作 阶段也包括次要阶段(例如,链路功率管理状态)。
[0058] 在一实施例中,可以实现链路层610a、b以便在两个协议或路由实体间提供可靠 的数据传输。链路层可以从协议层620a、b抽象出物理层605a、b,并且可以负责两个协议 代理(A、B)之间的流控制,并且将虚拟信道服务提供给协议层(消息类)和路由层(虚拟 网络)。协议层620a、b和链路层610a、b之间的接口一般可以处在分组级别。在一实施例 中,链路层处的最小传输单位被称为飞片,飞片是指定数量的位,诸如192个位或某一其他 数额。链路层610a、b依赖于物理层605a、b来将物理层605a、b的传输单位(相数位)组 帧成链路层610a、b的传输单位(飞片)。此外,链路层610a、b可以在逻辑上被分成两部 分,发送者和接收者。一个实体上的发送者/接收者对可以连接至另一实体上的接收者/ 发送者对。通常在飞片和分组两者的基础上进行流控制。也可能在飞片级基础上执行差错 检测和校正。
[0059] 在一实施例中,路由层615a、b可以提供灵活且分布式的方法以将HPI事务自源 路由至目的地。由于可以通过每个路由器处的可编程路由表来指定多个拓扑结构的路由算 法(一个实施例中的编程由固件、软件或其组合来执行),因此该方案是灵活的。路由功能 可以是分布式的;路由可以通过一系列路由步骤来完成,且每个路由步骤通过源路由器、中 间路由器或目的地路由器的任一个处的表格的查找来定义。源处的查找可用于将HPI分组 注入HPI构造中。中间路由器处的查找可用于将HPI分组自输入端口路由至输出端口。目 的地端口处的查找可用于瞄准目的地HPI协议代理。注意到,在一些实现中,路由层可以是 薄的,因为路由表以及由此的路由算法未由说明书具体定义。这允许灵活性以及各种用途 模型,包括要由系统实现定义的灵活的平台结构拓扑逻辑。路由层615a、b依赖于链路层 610a、b来提供多达三个(或更多个)虚拟网络(VN)的使用--在一示例中,使用两个无 死锁VN :VNO和VNl,且每个虚拟网络中定义了几个消息类。在其他特征和示例中,共享自 适应虚拟网络(VNA)可定义于链路层中,但该自适应网络可能不直接暴露于路由概念,因 为每个消息类和虚拟网络可以有专用的资源和有保证的进步。
[0060] 在一些实现中,HPI可以使用嵌入式时钟。时钟信号可嵌入在使用互连发射的数 据中。因为时钟信号嵌入于数据中,因此可以省略不同的和专用的时钟巷道。这可以是有 用的,例如,因为它可以允许设备的更多引脚专用于数据传输,特别是在引脚空间非常重要 的系统中。
[0061] 可以在互连的任一侧上的两个代理之间建立链路。发送数据的代理可以是本地代 理,接收数据的代理可以是远程代理。两个代理均可采用状态机来管理链路的各个方面。在 一实施例中,物理层数据路径可以将多个飞片自链路层发射至电气前端。在一实现中,控制 路径包括状态机(也称为链路训练状态机或类似物)。状态机的动作以及从状态的退出可 以取决于内部信号、定时器、外部信号或其他信息。实际上,一些状态(诸如少数初始化状 态)可具有定时器来提供退出一状态的超时值。注意到,在一些实施例中,检测是指检测一 个巷道的两条腿(leg)上的事件,但不必要同时。然而,在其他实施例中,检测是指由所参 考的代理来检测事件。作为一示例,防反跳(debounce)是指信号的持续断言。在一实施例 中,HPI支持非功能巷道的情况下的操作。这里,巷道可以以特定的速率减少。
[0062] 状态机中定义的状态可以包括重置状态、初始化状态和操作状态,以及其他类别 和子类别。在一示例中,一些初始化状态可具有辅助定时器,辅助定时器用于在超时(特别 是由于未能在状态中取得进展而造成的中止)时退出状态。中止可以包括更新寄存器,诸 如状态寄存器。一些状态也可以具有(多个)主定时器,主定时器用于对状态内的主要功 能定时。在其他示例中,可以定义其他状态,使得内部或外部信号(诸如握手协议)驱动从 状态到另一状态的转变。
[0063] 状态机还可以支持通过单步骤的调试、冻结初始化端口以及测试器的使用。这里, 可以推迟/保持状态退出,直到调试软件准备好为止。在一些情况下,可以推迟/保持退出 直到次级超时。在一实施例中,动作和退出可以基于训练序列的交换。在一实施例中,链路 状态机要在本地代理时钟域中运行,并且自一个状态到下一个状态的转变要配合发射机训 练序列边界。状态寄存器可用于反映当前状态。
[0064] 图7示出在HPI的一个示例实现中由代理所使用的状态机的至少一部分的表示。 应当理解,图7的状态表中所包括的状态包括可能状态的非穷尽列表。例如,省略了一些转 变以简化该示意图。同样,可以组合、分割或省略一些状态,而同时可以增加其他状态。这 样的状态可以包括:
[0065] 事件重置状杰:进入热或冷重置事件。恢复缺省值。初始化计数器(例如,同步计 数器)。可能退出至另一状态,诸如另一重置状态。
[0066] 定时重置状杰:带内重置的定时状杰。可能驱动预定义的电有序集(EOS)以使远 程接收机也能够检测EOS并进入定时重置。接收机具有保持电气设置的巷道。可能退出至 一代理以校准重置状态。
[0067] 校准重置状态:道上无信令(例如,接收机校准状态)或将驱动器关闭的情况下进 行校准。可以是基于定时器的状态中的预定量时间。可以设置操作速度。可以在端口不启 用时充当等待状态。可以包括最小驻留时间。接收机调节或错开可基于设计而发生。可以 在超时和/或校准完成之后退出至接收机检测状态。
[0068] 接收机检测状杰:检测巷道上接收机的存在。可以查找接收机终止(例如,接收机 下拉插入)。可以在设置了指定值或在另一指定值未设置时退出至校准重置状态。如果检 测到接收机或达到超时则可以退出至发射机校准状态。
[0069] 发射机校准状杰:用于发射机校准。可以是为发射机校准分配的定时状态。可以 包括巷道上的信令。可以连续地驱动E0S,诸如电空闲退出有序集(或EIEI0S)。在校准完 成或定时器到期时可以退出至服从状态。如果计数器已到期或已发生次级超时,则可以退 出至发射机检测状态。
[0070] 发射机检测状杰:证明有效信令的资格。可以是握手状态,其中代理基于远程代理 信令完成动作并且退出至下一状态。接收机可以证明来自发射机的有效信令的资格。在一 实施例中,接收机寻找唤醒检测,并且如果在一个或多个巷道上防反跳,则在其他巷道上查 找它。发射机驱动检测信号。响应于对于所有巷道完成反跳和/或超时、或者如果所有道 上的防反跳未完成且存在超时,可以退出至轮询状态。这里,一个或多个监视道可以保持已 唤醒以防反跳唤醒信号。如果被防反跳,则其他道可能被防反跳。这可以在低功率状态下 实现功率节省。
[0071] 轮询状态:接收机适配、初始化漂移缓冲器以及在位/字节(例如,标识符号边 界)上锁定。巷道可以被纠偏。远程代理可以响应于确认消息而退出至下一状态(例如, 链路宽度状态)。轮询另外可包括通过锁定至EOS的训练序列锁、以及训练序列头部。可以 将远程发射机处的巷道与巷道之间的偏移上限设为针对最高速度的第一长度、以及针对低 速度的第二长度。可以在低模式以及操作模式下执行纠偏。接收机可以具有具体最大值来 纠偏巷道与巷道之间的偏移,诸如8、16或32个偏移间隔。接收机动作还可以包括延迟固 定。在一实施例中,接收机动作可以在有效巷道地图的成功纠偏时完成。在一示例中,在带 确认的情况下接收数个连续训练序列头部且在接收机已完成其动作之后传送带有确认的 数个训练序列时,可以实现成功握手。
[0072] 链路宽度状杰:代理将最终巷道地图传送至远程发射机。接收机接收信息并解码。 接收机可以在第二结构中的前一巷道地图值的检查点之后,将已配置的巷道地图记录在一 结构中。接收机还可以用确认("ACK")来响应。可以发起带内重置。作为一示例,第一状 态用于发起带内重置。在一实施例中,响应于ACK而退出至下一状态,诸如飞片配置状态。 而且,在进入低功率状态之前,如果唤醒检测信号的出现频率跌落至指定值(例如,每单位 间隔(UI)为1,诸如4K UI)以下,也可以产生重置信号。接收机可以保持当前的巷道地图 和先前巷道地图。发射机可以基于具有不同值的训练序列来使用不同的巷道组。在一些实 施例中,巷道地图可能不修改一些状态寄存器。
[0073] 飞片锁配置状杰:由发射机讲入,佰在发射机和接收机均已退出至阻断链路状杰 或其他链路状态时,该状态被视为退出(即,次级超时未决)。在一实施例中,发射机退出至 链路状态,包括在接收行星(planetary)对准信号之后的数据序列开始(SDS)和训练序列 (TS)边界。这里,接收机退出可以基于自远程发射机接收到SDS。该状态可以是自代理到 链路状态的桥。接收机标识SDS。如果在初始化解扰器之后接收到SDS,则接收机可以退出 至阻断链路状态(BLS)(或控制窗口)。如果发生超时,则可以退出至重置状态。发射机用 配置信号来驱动巷道。发射机也可以基于多个条件或超时而退出至重置状态、BLS状态或 其他状态。
[0074] 发射链路状杰:一种链路状杰。飞片被发送至远程代理。可以自阻断链路状态进 入并且在有事件(诸如超时)时返回至阻断链路状态。发射机发射飞片。接收机接收飞 片。也可以退出至低功率链路状态。在一些实现中,发射链路状态(TLS)也可以被称为LO 状态。
[0075] 阳断链路状杰:一种链路状杰。发射机和接收机以统一方式工作。可以是一种定 时状态,在该定时状态期间,在物理层信息被传送至远程代理的同时保持住链路层飞片。可 以退出至低功率链路状态(或基于设计的其他链路状态)。在一实施例中,阻断链路状态 (BLS)周期性地出现。周期被称为BLS间隔,并且可以被定时,以及在低速度和操作速度之 间而不同。注意到可以周期性地阻止链路层发送飞片,使得可以发送一定长度的物理层控 制序列,诸如在发射链路状态或部分宽度发射链路状态期间。在一些实现中,阻断链路状态 (BLS)可以被称为LO控制(或LOc)状态。
[0076] 部分宽度发射链路状杰:可以通过进入部分宽度状态来节省功率。在一实施例中, 非对称部分宽度是指在一些设计中可支持的具有不同宽度的两个方向链路的每个方向。图 9的示例中示出诸如发射机的始发者的一示例,始发者发送部分宽度指示以进入部分宽度 发射链路状态。这里,在具有第一宽度的链路上发射的同时,发送部分宽度指示,以便将该 链路转变成以第二个新宽度进行发送。失配可能导致重置。注意到速度可能不改变,但宽 度可以改变。因此,飞片可能以不同的跨度被发送。可能在逻辑上类似于发射链路状态;由 于存在较小的宽度,因此发射飞片可能需要较长时间。可以退出至其他链路状态,诸如基于 特定接收到的和发送的消息而退出至低功率链路状态,或是基于其他事件退出至部分宽度 发射链路状态或链路阻断状态。在一实施例中,发射机端口可以以交错方式将空闲道关闭, 以提供较佳的信号完整性(即,噪声减轻),如时序图中所示。这里,在链路宽度正在变化 的时间段期间,可以使用不可重试(non-retry-able)飞片,诸如空(Null)飞片。相应的接 收机可以丢掉这些空飞片并且以交错方式关闭空闲道。注意,状态以及相关联的状态寄存 器可以保持不改变。在一些实现中,部分宽度发射链路状态可以被称为部分LO(或LOp)状 态。
[0077] 退出部分宽度发射链路状杰:退出部分宽度状杰。在一@实现中,可以俥用或可以 不使用阻断链路状态。在一实施例中,发射机通过在空闲巷道上发送部分宽度退出模式以 便训练和纠偏它们,从而启动退出。作为一示例,退出模式以EIEOS开始,EIEOS被检测和 防反跳以发信号通知,巷道已经准备好开始进入完全发射链路状态,并且可以以空闲道上 的SDS或快速训练序列(FTS)结束。退出序列期间的任何故障(接收机动作,诸如在超时 前未完成的纠偏)都停止到链路层的飞片传输,并且坚持重置,重置通过在下一阻断链路 状态出现时重置链路来处理。SDS也可以将多个巷道上的扰频器/解扰器初始化为适当的 值。
[0078] 低功率链路状杰:是一种较低功率状态。在一实施例中,它比部分宽度链路状态的 功率要低,因为该实施例中的信令在所有巷道上以及在两个方向上都停止。发射机可以使 用阻断链路状态来请求低功率链路状态。这里,接收机可以解码该请求并且以ACK或NAK 来响应;否则可以触发重置。在一些实现中,低功率链路状态可以被称为Ll状态。
[0079] 在一些实现中,可以便于状态转变以允许状态被旁路,例如,在已经完成状态的状 态动作(诸如特定的校准和配置)时。链路的先前状态结果和配置可以被存储,并且在链 路的后续初始化和配置中被再用。可以旁路相应的状态,而不是重复这样的配置和状态 动作。然而,实现状态旁路的传统系统通常实现复杂设计及昂贵的证实逃避(validation escape)。在一示例中,取代使用传统的旁路,HPI可以在特定状态下使用短定时器,诸如在 不需要重复状态动作时。这可以潜在地允许更均匀和同步的状态机转变,以及其他潜在优 点。
[0080] 在一示例中,基于软件的控制器(例如,通过物理层的外部控制点)可以针对一个 或多个特定状态启用短定时器。例如,对于已经执行和存储其动作的状态,状态可以被短定 时以便于从该状态快速退出至下一状态。然而,如果前一状态动作失败或者不能在短定时 器期间应用,可以执行状态退出。而且,控制器可以禁用短定时器,例如在应当重新执行状 态动作时。可以为每个相应的状态设置长的,或即缺省的定时器。如果该状态下的动作不 能在长定时器内完成,则可以发生状态退出。长定时器可以被设为合理持续期,以便允许状 态动作的完成。相反,在其他示例中,短定时器可以短得多,在一些情况下,使其尤其不可能 在参照回以前执行的状态动作的情况下执行状态动作。
[0081] 在一些情况下,在链路初始化(或重新初始化)期间,随着代理前进通过状态机朝 向操作链路状态,可能出现使状态重置(例如,重置为重置状态或其他状态)的一个或多个 故障或状态退出。实践中,链路的初始化可以循环经过一个或多个状态,而无需完成初始化 并进入链路状态。在一示例中,可以为链路初始化内的状态转变中的无效循环数目保持计 数。例如,每次初始化在未达到链路状态的情况下返回至重置状态时,计数器可以递增。一 旦链路成功地进入链路状态,可以为该链路重置计数器。这种计数器可由链路两侧上的代 理来维持。而且,可以设置阈值,例如通过使用一个或多个外部控制点的基于软件的控制 器来设置。当无效循环的计数满足(或超过)所定义的阈值时,链路的初始化可以被挂起 (例如在重置状态时或之前被设置和保持)。在一些实现中,为了重新开始初始化并且自挂 起状态释放初始化,基于软件的控制器可以触发链路的重启或重新初始化。在一些情况下, 基于软件的工具可以分析被挂起初始化的性质并且进行诊断、设置寄存器值并且执行其他 操作,以便防止初始化的进一步循环。实际上,在一些实现中,在其他示例中,控制器可以结 合重启被挂起的链路初始化而设置较高的计数器阈值或甚至覆写计数器。
[0082] 在HPI的一些实现中,可以定义超序列,每个超序列对应于一个相应状态或对该 相应状态的进入/退出至/自其退出。超序列可包括数据集和符号的重复序列。在一些情 况下,在其他示例中,序列可以重复,直到状态或状态转变的完成、或是相应事件的传送为 止。在一些情况下,超序列的重复序列可以根据已定义的频率来重复,已定义的频率诸如已 定义的单位间隔(UI)数目。单位间隔(UI)可以对应于在链路或系统的道上发射单个位的 时间间隔。在一些实现中,重复序列可以以电有序集(EOS)开始。因而,可以预期EOS的实 例根据预定义的频率来重复。这种有序集可以被实现为可以16进制格式表示的已定义的 16字节码,以及其他示例。在一示例中,超序列的EOS可以使EIEI0S。在一示例中,EIEOS 可以类似于低频时钟信号(例如,FFOO或FFF000十六进制符号的预定义的重复数目等)。 预定义的数据集可以跟随E0S,诸如预定义数目的训练序列或其他数据。在其他示例中,这 种超序列可用于状态转变中,状态转变包括链路状态转变以及初始化。
[0083] 在互连的一些实现中,诸如在QPI中,可以开启和关闭串行数据链路的终止,诸如 在链路被重置或初始化时。该方法可以将复杂度和时间引入链路的初始化。在HPI的一 些实现中,可以在链路的重置和重新初始化期间维持链路的终止。而且,HPI可允许设备的 热插。当或通过热插或以其他方式引入另一设备时,向其上添加新远程代理的巷道的电压 特性会变化。本地代理可以感测巷道电压中的这些变化以检测远程代理的存在并且促使链 路的初始化。可以在状态机中定义状态机状态和定时器以在不终止的情况下协调链路的检 测、配置和初始化。
[0084] 在一种实现中,通过由接收代理针对传入信令筛选巷道,HPI可以支持带内重置上 的重新初始化而不改变终止值。信令可用于标识良好的巷道。作为一示例,可以针对要由 发射机设备发送的一组预定义信号中的任一个筛选该巷道,以便于恢复和配置该链路。在 一示例中,超序列可以对应于一个或多个初始化或重新初始化任务而被定义。预定义序列 可以包括EIE0S,其后是附加的序列数据。在一些情况下,随着巷道的任一侧上的每个设备 变得活动,设备可以开始发送对应于特定初始化状态的超序列等等。在一实施例中,可以支 持两类引脚重置;上电(即"冷")重置和热重置。由软件发起或在一个代理上始发(在物 理层或另一层中)的重置可以被带内传送至另一个代理。然而,由于使用了嵌入式时钟,因 此可以通过使用有序集(诸如特定的电有序集,即EI0S)传送至另一代理来处理带内重置。
[0085] 有序集可以在初始化期间被发送,PHY控制序列(或"阻断链路状态")可以在初 始化之后被发送。阻断链路状态可以阻止链路层发送飞片。作为另一示例,可以阻止链路 层业务发送在接收机处被丢弃的少量空(NULL)飞片。
[0086] 如以上所介绍,在一实施例中,初始化可以以最初低速度然后是快速初始化来完 成。低速度下的初始化针对寄存器和定时器使用缺省值。然后,软件使用低速度链路来 设置寄存器、定时器和电参数,并且清除校准臂板信号(semaphore)来为快速初始化铺 路。作为一示例,在其他可能的示例中,初始化可由诸如重置(Reset)、检测(Detect)、轮询 (Polling)和配置(Configuration)这样的状态或任务组成。
[0087] 在一示例中,链路层阻断控制序列(即,阻断链路状态(BLS)或LOc状态)可以包 括一定时状态,在该定时状态期间,在PHY信息被传送至远程代理的同时保持住链路层飞 片。这里,发射机和接收机可以启动阻断控制序列定时器。并且在定时器到期时,发射机和 接收机可以退出阻断状态并且可以采取其他动作,诸如退出至重置状态、退出至不同的链 路状态(或其他状态),不同的链路状态包括允许跨链路发送飞片的状态。
[0088] 在一实施例中,可以提供链路训练,链路训练包括发送经扰频的训练序列、有序集 和控制序列中的一个或多个,诸如结合预定义超序列而发送。训练序列符号可以包括头部、 保留部分、目标延迟、对号(pair number)、物理巷道地图代码参照巷道或一组巷道、以及初 始化状态中的一个或多个。在一实施例中,头部可以ACK或NAK来发送,还有其他示例。作 为一示例,训练序列可以作为超序列的一部分被发送并且可以被扰频。
[0089] 在一实施例中,有序集和控制序列不被扰频或交错,并且可以在所有巷道上相同 地、同时地和完全地被发送。有序集的有效接收可以包括检验有序集的至少一部分(或多 个部分有序集的全部有序集)。有序集可以包括电有序集(EOS),诸如电空闲有序集(EIOS) 或EIE0S。超序列可以包括数据序列的开始(SDS)或快速训练序列(FTS)。这种集和控制 超序列可以被预定义,并且可具有任何模式或十六进制表示以及任何长度。例如,有序集和 超序列可以为8字节、16字节或32字节等的长度。作为一示例,在退出部分宽度发射链路 状态期间,可以为快速位锁定附加地使用FTS。注意到,FTS定义可以是按道定义的,并且可 以使用FTS的旋转版本。
[0090] 在一实施例中,超序列可以包括将EOS (诸如EIE0S)插入到训练序列流中。在一 实施例中,当信令开始时,多个巷道以交错方式被上电。然而,这可能导致初始超序列在一 些巷道上在接收机处被截短。然而,超序列可以在短间隔上被重复(例如近似一千单位间 隔,(或即?IKUI))。训练超序列可另外用于纠偏、配置中的一个或多个,并且用于传送初 始化目标、巷道地图等。EIEOS可用于以下的一个或多个:将巷道从不活动状态转变为活动 状态,筛选良好的道,标识符号和TS边界,以及其他示例。
[0091] 转至图8,示出示例超序列的表示。例如,可以定义示例性的检测超序列805。检 测超序列805可以包括单个EIEOS (或其他E0S)且其后跟随特定训练序列(TS)的预定义 数量的实例的重复序列。在一示例中,EIEOS可以被发送,其后立即跟随TS的七个重复实 例。当七个TS的最后一个被发送时,可以再次发送EIEOS其后跟随TS的七个另外实例,以 此类推。该序列可以根据特定的预定义频率来重复。在图8的示例中,EIEOS可以每一千 个n (?1KUI)在巷道上重复出现,其后跟随检测超序列805的其余部分。接收机可以监 视巷道上是否存在重复的检测超序列805,并且在确认超序列705时推断出远程代理存在、 已被添加(例如,热插拔)至巷道上、已经唤醒、或正在重新初始化等等。
[0092] 在另一示例中,可以定义另一超序列810来表明轮询、配置或环回(loopback)条 件或状态。对于示例的检测超序列805,可由接收机监视链路的巷道上是否有这种轮询/配 置/循环(Poll/Config/Loop)超序列810,以标识轮询状态、配置状态或者环回状态或条件。 在一示例中,轮询/配置/循环超序列810可以EIEOS开始,其后跟随TS的预定义数量的 重复实例。例如,在一示例中,EIEOS后可跟随TS的三i^一(31)个实例,其中EIEOS近似 每四千个UI (例如,?4KUI)重复一次。
[0093] 而且,在另一示例中,可以定义部分宽度发射状态(PWTS)退出超序列815。在一示 例中,PWTS退出超序列可包括要重复的初始EIE0S,以便在发送超序列中的第一空序列之 前对巷道进行预重复。例如,要在超序列815中重复的序列可以以EIEOS开始(要近似每 IKn重复一次)。而且,可以替代其他训练序列(TS)而使用快速训练序列(FTS),FTS被配 置为帮助较快的位锁定、字节锁定和纠偏。在一些实现中,FTS可以被解扰,以帮助将空闲 巷道尽可能快速和非打扰地带回至活跃。随着其他超序列进入链路发射状态,超序列815 可以被中断,并且通过发送数据序列的开始(SDS)而结束。而且,可以发送部分FTS(FTSp) 来帮助将新的巷道同步至活动的巷道,诸如通过允许向FTSp减去(或添加)多个位,以及 其他示例。
[0094] 超序列(诸如检测超序列705和轮询/配置/循环超序列710等)可能潜在地在 链路的初始化或重新初始化期间被发送。在一些情况下,接收机在接收和检测特定的超序 列时,可以通过在巷道上将同一超序列发回声(echo)给发射机来进行响应。发射机和接收 机对特定超序列的接收和确认可以充当握手,以确认通过超序列传送的状态或条件。例如, 诸如握手(例如,使用检测超序列705)可用于标识链路的重新初始化。在其他示例中,在另 一示例中,这一握手可用于表明电重置或低功率状态的结束,导致相应的巷道被带回来。例 如,可以自各自发射检测超序列705的发射机和接收机之间的握手来标识电重置的结束。
[0095] 在其他事件中,在另一示例中,可以监视道上是否有超序列,巷道可以使用超序列 来筛选道以进行检测、唤醒、状态退出和进入。还可以进一步使用超序列的预定义和可预测 的性质和形式来执行这样的初始化任务,诸如位锁定、字节锁定、防反跳、解扰、纠偏、适配、 延迟固定、协商延以及其他潜在用途。实际上,可以基本连续地监视道上是否有这些事件以 加速系统反应于或处理这种条件的能力。
[0096] 在防反跳的情况下,作为各种条件的结果,可以在道上引入瞬变。例如,设备的添 加或上电可以将瞬变引入巷道上。此外,由于差的巷道质量或电故障,巷道上可能呈现电压 不规则性。在一些情况下,巷道上的"反跳(bounce)"可以产生错误确定,诸如错误EIE0S。 然而,在一些实现中,尽管超序列可以以EIEOS开始,但已定义的超序列还可以包括附加的 数据序列以及EIEOS将重复所用的已定义频率。结果,即使错误EIEOS出现在巷道上,接收 机处的逻辑分析器可以通过数据超过错误EIE0S,来确定EIEOS是错误确定。例如,如果预 期的TS或其他数据不跟随EIE0S、或者EIEOS不在预定义超序列之一的多个预定义频率的 特定一个频率内重复,接收机逻辑分析器可以使对接收到的EIEOS的确认失败。随着在将 设备添加至巷道时反跳在启动时出现,也会产生错误确定。例如,在设备被添加至一组巷道 后,设备可以开始发送检测超序列705以便向链路的另一侧警告它的存在,并且开始初始 化链路。然而,巷道上引入的瞬变可以破坏初始EIE0S、TS实例以及超序列的其他数据。然 而,在其他示例中,接收设备上的逻辑分析器可继续监视这些巷道,并且标识由新设备在重 复检测超序列705中发送的EIE0S。
[0097] 在一些实现中,HPI链路能够以嵌入式时钟实现的多个速度进行操作。例如,可以 定义慢模式。在一些实例中,慢模式可用于帮助实施链路的初始化。链路的校准可包括基 于软件的控制器提供逻辑来设置链路的各个已校准特征,包括链路要使用哪些巷道、巷道 的配置、链路的操作速度、巷道和代理的同步、纠偏、目标延迟、以及其他可能的特征。这种 基于软件的控制器可以利用外部控制点来将数据添加至物理层寄存器来控制物理层设施 和逻辑的各方面。
[0098] 链路的操作速度可以比链路初始化中使用的基于软件的控制器的实际操作速度 快得多。在其他实例中,慢模式可用于允许使用这种基于软件的控制器,诸如在链路的初始 化或重新初始化期间。慢模式可应用于链接接收机和发射机的巷道上,例如当链路被开启、 被初始化、被重置等等的时候,以帮助实施链路的校准。
[0099] 在一实施例中,时钟可嵌入在数据中,因此没有单独的时钟巷道。在巷道上发送的 飞片可以被扰频以实施时钟恢复。作为一示例,接收机时钟恢复单元可以将采样时钟传递 至接收机(即,接收机自数据恢复时钟并且用它来采样进入的数据)。一些实现中的接收机 连续地适配于传入位流。通过嵌入时钟,可以潜在地减少引出线(pinout)。然而,将时钟 嵌入在带内数据中可以改变实施带内重置的方式。在一实施例中,可以在初始化之后使用 阻断链路状态(BLS)。在其他考虑因素中,同样,可以在初始化期间使用电有序集超序列来 实施重置。嵌入式时钟可以在链路上的多个设备间共有,公共操作时钟可以在链路的校准 和配置期间被设置。例如,HPI链路可以以漂移缓冲器来参考公共时钟。和非公共参考时 钟中使用的弹性缓冲器相比,这种实现方式可以实现较低的延迟,还有其他潜在的优点。而 且,参考时钟分布段可以被匹配至指定界限内。
[0100] 如上所述,HPI链路能够以多个速度操作,包括用于缺省上电、初始化等的"慢模 式"。每个设备的操作(或"快速")速度或模式可由BIOS静态地设置。链路上的公共时钟 可以基于链路任一侧上的每个设备的相应操作速度来配置。例如,在其他示例中,链路速度 可基于两个设备操作速度中的较慢者。任何操作速度变化可伴随热重置或冷重置。
[0101] 在一些示例中,在加电时,链路初始化为慢模式,其传输速率例如为100MT/S。然 后,软件为链路的操作速度设置两侧,并且开始初始化。在其他情况下,在没有慢模式或慢 模式不可用的情况下,可以使用侧带机制来设立链路,包括链路上的公共时钟。
[0102] 在一实施例中,慢模式初始化阶段可以使用与操作速度相同的编码、扰频、训练序 列(TS)、状态等,但可能有较少特征(例如,无电参数设立,无适配等)。与操作速度相比, 慢模式操作节点也可能使用相同的编码、扰频等(尽管其他实现可能不相同)但可能有较 少的状态和特征(例如,无低功率状态)。
[0103] 而且,可以使用设备的本地锁相环(PLL)时钟频率来实现慢模式。例如,HPI可以 支持模仿的慢模式,而不改变PLL时钟频率。尽管一些设计可以为慢速度和快速度使用单 独的PLL,但在HPI的一些实现中,可以通过允许PLL时钟在慢模式期间以相同的快操作速 度运行,来实现模仿的慢模式。例如,发射机可以通过多次重复多个位来模拟较慢的时钟信 号,以便模拟一个慢的高时钟信号然后是一个慢的低时钟信号。然后,接收机可以对接收信 号过采样以定位通过重复位所模拟的多个边缘,并且标识该位。在这种实现中,共享一 PLL 的多个端口可以在慢速度和快速度下共存。
[0104] 公共慢模式速度可以在两个设备之间初始化。例如,链路上的两个设备可具有不 同的快速操作速度。公共慢模式速度可以在例如发现阶段或链路上的状态期间被配置。在 一示例中,模拟倍数可被设为快速度对慢速度的整数(或非整数)比,不同的快速度可以被 向下转换以便与相同的慢速度一起工作。例如,支持至少一个公共频率的两个设备代理可 以被热附着,无论主机端口以什么速度运行。然后,软件发现可以使用慢模式链路来标识和 设立最优的链路操作速度。在倍数是快速度对慢速度的整数比时,不同的快速度可以与相 同的慢速度一起工作,相同的慢速度可以在(例如,热附着的)发现阶段期间被使用。
[0105] 在HPI的一些实现中,可以支持链路上多个巷道的适配。物理层可以支持接收机 适配和发射机(或发送者)适配两者。对于接收机适配,巷道上的发射机可以将采样数据 发送至接收机,接收机逻辑可以处理采样数据以标识巷道的电特性中的短处以及信号的质 量。然后,接收机可以对巷道的校准作出调整以便基于对接收到的采样数据的分析来优化 该巷道。在发射机适配的情况下,接收机可以再次接收采样数据并且开发描述巷道质量的 度量,但在该情况下是将度量传送至发射机(例如,使用后信道(backchannel),诸如软件、 硬件、嵌入式、侧带或其他信道),以使发射机能基于反馈对巷道作出调整。可以在轮询状 态的开始处,使用自远程发射机发送的轮询超序列来发起接收机适配。类似地,通过为每个 发射机参数重复以下事项,可以完成发射机适配。两个代理都可以作为主机进入环回模式 状态,并且发射所指定的模式。两个接收机都可以测量远程代理处的该特定发射机设置的 度量(例如,BER)。两个代理都可以进入环回标记状态,然后进入重置状态,并且使用后信 道(慢模式TLS或侧带)来交换度量。基于这些度量,可以标识下一个发射机设置。最后 可以标识最优发射机设置,并将其保存供后续使用。
[0106] 由于链路上的两个设备都可以运行相同的参考时钟(例如,ref elk),因此可以 省略弹性缓冲器(任何弹性缓冲器都可以被旁路,或者被用作具有最低可能延迟的漂移缓 冲器)。然而,可以在每个巷道上使用相位调整或漂移缓冲器来将相应的接收机位流自远 程时钟域传输至本地时钟域。漂移缓冲器的等待时间可能足以处理来自电规范中所有源 (例如,电压、温度、参考时钟路由适配所引起的残余SSC等等)的漂移总和,但为了减少传 输延迟要尽可能小。如果漂移缓冲器过浅,则漂移差错会产生并且会显示为一系列CRC差 错。因而,在其他示例中,在一些实现中,可以提供漂移警告,漂移警告会在出现实际漂移差 错之前发起物理层重置。
[0107] HPI的一些实现可以支持以同一标称参考时钟频率运行但具有ppm差异的两侧。 在其他示例中,在该情况下,可能需要频率调整(或弹性)缓冲器,并且可能在扩展的BLS 窗口期间或在会周期性出现的特殊序列期间重新调整频率调整缓冲器。
[0108] 在其他考虑因素中,HPI PHY逻辑层的操作可以独立于底层的传输媒介--假如 等待时间不导致链路层处的延迟固定差错或超时。
[0109] HPI中可以提供外部接口以帮助管理物理层。例如,可以提供外部信号(来自引 脚、保险丝、其他层)、定时器、控制和状态寄存器。输入信号可以在相对于PHY状态的任一 时刻变化,并且要由物理层在相应状态下的特定点处观察。例如,在其他示例中,在链路已 进入发射链路状态之后,变化的对齐信号(如下介绍)可以被接收,但没有实际效果。类似 地,命令寄存器值可由物理层实体仅在特定时间点处观测。例如,物理层逻辑可以获得值的 快照,并且将其用于后续操作中。因而,在一些实现中,对命令寄存器的更新可以与特定时 间段的有限子集(例如,在发射链路状态时或在保持于重置校准时、在慢模式发射链路状 态时)相关联,以避免反常的行为。
[0110] 由于状态值跟踪硬件改变,因此值读数可取决于它们何时被读取。然而,一些状态 值(诸如链路地图、等待时间、速度等)可能在初始化之后不改变。例如,重新初始化(或 低功率链路状态(LPLS)、或Ll状态、退出)是唯一能使这些发生变化的事项(例如,TLS中 的硬巷道故障不会导致链路的重新配置,直到重新初始化被触发,以及其他示例)。
[0111] 接口信号可包括物理层外部但影响物理层行为的信号。作为示例,这样的接口信 号可包括编码和定时信号。接口信号可以是设计专用的。这些信号可以是输入或输出。在 其他示例中,一些接口信号(诸如所称的臂板信号和有前缀的EO等其他示例)可以在每次 断言边缘时是活动的,即,它们可以被解除断言然后重新断言以再次有效。例如,表1包括 示例功能的示例列表:
[0112] 表 1
[0113]
【权利要求】
1. 一种装置,包括: 协议逻辑、链路逻辑和物理逻辑, 其中所述物理逻辑包括发射机和接收机, 所述物理逻辑用于在包括慢模式和操作速度的各种速度下操作, 其中所述慢模式的慢模式单位间隔是所述操作速度的操作速度单位间隔的整数倍, 并且其中通过所述发射机在所述操作模式下多次传送相同位以及所述接收机多次对 接收到的信号进行过采样以标识接收到的位来仿真所述慢模式。
2. 如权利要求1所述的装置,其特征在于,所述物理逻辑被配置成耦合至串行差分链 路。
3. 如权利要求1所述的装置,其特征在于,所述协议逻辑支持高速缓存相干事务和非 相干事务。
4. 如权利要求1所述的装置,其特征在于,所述物理逻辑被配置成在相数位级下与另 一物理层通信。
5. 如权利要求4所述的装置,其特征在于,相数位包括等于链路宽度的数个位。
6. 如权利要求1所述的装置,其特征在于,还包括锁相环(PLL)设备,其用于在所述物 理层在所述慢模式和所述操作模式下操作时时钟控制所述操作速度下的所述发射机和接 收机。
7. 如权利要求1所述的装置,其特征在于,对于缺省上电,所述物理层在所述慢模式下 操作。
8. 如权利要求1所述的装置,其特征在于,所述物理层从所述慢模式转换至所述操作 速度。
9. 如权利要求1所述的装置,其特征在于,所述操作速度与所述慢模式之间的转换伴 随有重置。
10. 如权利要求1所述的装置,其特征在于,所述重置包括热重置或冷重置。
11. 如权利要求1所述的装置,其特征在于,所述装置包括耦合在两个插槽服务器中的 处理器。
12. 如权利要求1所述的装置,其特征在于,所述装置包括耦合在包含至少四个插槽的 服务器中的处理器。
13. 如权利要求1所述的装置,其特征在于,所述装置包括与微服务器中的多个其他 (SoC)耦合的芯片上系统(SoC)。
14. 如权利要求1所述的装置,其特征在于,所述装置包括用于支持基于非Intel?的指 令集。
15. -种装置,包括: 分层栈,其包括物理层、链路层和协议层, 其中所述物理层包括发射机、接收机和用于向所述发射机和所述接收机提供操作频率 的锁相环, 其中所述发射机和所述接收机从操作模式转换至慢模式,所述转换伴随有重置; 其中在所述慢模式中,所述发射机在所述操作频率下整数倍地传送相同位,而在慢模 式中,所述接收机在所述操作频率下整数倍地过采样接收到的信号以表示接收的位。
16. -种系统,包括: 第一处理器,其包括用于识别第一指令集的解码器; 第二处理器,其包括用于识别与所述第一指令集不同的第二指令集的解码器; 控制器,用于在至少所述第一和第二处理器之间接口;所述控制器包括但不限于:分 层栈,其包括物理层、链路层、和协议层,其中所述物理层包括用于向所述第一处理器进行 传送以及从所述第一处理器进行接收的发射机和发射机,所述物理层能在包括慢模式和操 作速度的各种速度下操作,其中所述慢模式的慢模式单位间隔是所述操作速度的操作速度 单位间隔的整数倍,并且其中通过所述发射机在所述操作模式下多次传送相同位以及所述 接收机多次对接收到的信号进行过采样以标识接收到的位来仿真所述慢模式。
17. 如权利要求15所述的系统,其特征在于,所述物理层通过串行差分链路耦合至包 括在所述第一处理器中的处理器物理层。
18. 如权利要求15所述的装置,其特征在于,所述协议层支持高速缓存相干事务和非 相干事务。
19. 如权利要求16所述的装置,其特征在于,所述物理层被配置成在尺寸为所述第一 处理器和所述控制器之间的链路的宽度的相数位粒度下与所述处理器物理层通信。
20. 如权利要求15所述的装置,其特征在于,对于缺省上电,所述物理层在所述慢模式 下操作。
21. 如权利要求15所述的装置,其特征在于,所述第一指令集包括基于Intel?的指令 集。
22. 如权利要求1所述的装置,其特征在于,所述重置包括热或冷重置。
23. 如权利要求1所述的装置,其特征在于,所述分层栈被包括在多处理器系统中。
24. 如权利要求21所述的装置,其特征在于,所述协议层支持高速缓存相干事务和非 相干事务。
25. 如权利要求21所述的装置,其特征在于,所述分层栈被包括在包含多于八个SoC的 系统内的芯片上系统(SoC)中。
26. 如权利要求21所述的装置,其特征在于,所述分层栈被包括在耦合至触摸屏接口 的芯片上系统(SoC)中。
27. 如权利要求21所述的装置,其特征在于,所述分层栈被包括控制器中,所述控制器 用于与能够解码基于Intel?的指令集的第一处理器接口以及与能够解码基于非Intel?的 指令集的第二处理器接口。
28. -种包括代码的计算机可读介质,所述代码在被执行时导致分层协议栈的物理 层: 在操作模式下操作,其中所述物理层的发射机在所述操作模式下以操作速度来传送, 而所述物理层的接收机在所述操作模式下以所述操作速度来接收;以及 在慢模下操作,其中所述物理层的所述发射机在所述慢模式下以所述操作速度传送每 个所传送位的整数倍,而所述接收机在所述慢模式下以所述操作速度整数倍地采样接收到 的信号以确定接收到的位。
29. 如权利要求28所述的计算机可读介质,其特征在于,所述代码在被执行时还导致 所述物理层在缺省上电期间在所述慢模式下操作。
30. 如权利要求28所述的计算机可读介质,其特征在于,所述代码在被执行时还导致 所述物理层在所述操作模式和所述慢模式之间的转换之际重置。
31. -种装置,包括: 物理层逻辑、链路层逻辑和协议层逻辑,其中所述协议层逻辑被配置成支持高速缓存 相关事务,而所述物理层逻辑被耦合至串行差分互连且在第一模式下以第一速度传送数据 以及在第二模式下以第二速度传送数据,并且其中锁相环(PLL)速度在所述第一模式和所 述第二模式中相同。
32. 如权利要求31所述的装置,其特征在于,所述第一速度包括操作数据,而所述第二 速度包括慢速度。
33. 如权利要求32所述的装置,其特征在于,所述慢速度由所述操作速度仿真。
34. 如权利要求33所述的装置,其特征在于,仿真所述慢速度包括以所述操作速度发 送一系列位以仿真所述慢模式中的位。
35. 如权利要求31所述的装置,其特征在于,所述物理层还从所述第一速度转换至所 述第二速度。
36. 如权利要求35所述的装置,其特征在于,所述转换是基于至少部分基于软件的控 制器的请求。
37. -种方法,包括: 在缺省上电期间在慢模式下进行操作,其中分层协议栈中的物理层的发射机在所述慢 模式下以所述操作速度传送每个所传送的位的整数倍,而所述物理层的接收机在所述慢模 式下以所述操作速度整数次地采样接收到的信号; 在缺省上电之后转换至操作模式,其中所述发射机在所述操作模式下以所述操作速度 进行传送,而接收机在所述操作模式下以所述操作速度进行接收。
38. 如权利要求37所述的方法,其特征在于,还包括响应于所述操作模式与所述慢模 式之间的转换重置所述物理层。
39. -种装置,包括: 控制器,其将被耦合在差分点对点互连体系结构,所述差分点对点互连体系结构支持 高速缓存相关事务,并且包括多个处理器,所述控制器确定在链路上被连至第二设备的第 一设备的操作速度,确定所述第二设备的操作速度,以及确定由所述第一和第二设备在数 据在链路上的传输期间应用的常用的慢速度。
40. 如权利要求39所述的装置,其特征在于,所述常用的慢速度在所述链路的初始化 期间确定。
41. 如权利要求40所述的装置,其特征在于,所述第一设备的操作速度不同于所述第 二设备的操作速度,并且所述链路的初始化还包括所述控制器确定常用的操作速度。
42. 如权利要求41所述的装置,其特征在于,所述常用的操作速度是基于所述第一和 第二设备的操作速度中的较慢者。
43. 如权利要求39所述的装置,其特征在于,所述控制器确定所述常用的慢模式包括 控制器确定要应用于所述第一设备的操作速度以实现所述常用慢速度的第一比率,以及确 定要应用于所述第二设备的操作速度以实现所述常用慢速度的第二比率。
44. 如权利要求39所述的装置,其特征在于,所述常用慢速度由所述操作速度来仿真。
45.如权利要求44所述的装置,其特征在于,仿真所述慢速度包括以相应的操作速度 来发送一系列位以便仿真所述常用慢模式中的位。
【文档编号】G06F13/14GK104391816SQ201410582176
【公开日】2015年3月4日 申请日期:2013年3月15日 优先权日:2012年10月22日
【发明者】V·艾耶, D·S·尤, R·G·布朗肯希普, F·斯帕戈纳, A·古普塔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1