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

文档序号:12464288阅读:208来源:国知局
高性能互连物理层的制作方法与工艺

领域

本公开案一般涉及计算机开发领域,尤其涉及包括协调相互依赖的受约束系统的软件开发。

背景

半导体处理和逻辑设计中的进展允许增加集成电路器件上存在的逻辑的数量。计算机系统配置必然已经从系统中的单个或多个集成电路演进为个别集成电路上存在的多核、多硬件线程及多逻辑处理器,以及这种处理器内集成的其他接口。处理器或集成电路一般包括单个物理处理器模,其中处理器模可包括任何数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中枢等。

作为在较小的封装包内适配更多处理能力的较高能力的结果,较小的计算设备越来越流行。智能电话、平板电脑、超薄笔记本电脑及其他用户设备呈指数型增长。然而,这些较小设备依赖于服务器来进行数据存储以及超出规格的复杂处理。因而,也增加了对高性能计算市场(即,服务器空间)的需求。例如,在现代服务器中,一般不仅存在具有多个核的单个处理器,也存在多个物理处理器(也称为多个插槽(socket))来提高计算能力。但随着处理能力随着计算系统中设备数量而增长,插槽及其他设备间的通信变得更为关键。

实际上,互连已经从主要处理电子通信的较传统的多点总线增长为便于快速通信的全面互连基础结构。不幸的是,由于存在对将来处理器以甚至更高速率进行消耗的需求,对现有互连基础结构的能力也存在相应的需求。

附图简述

图1示出按照一实施例的系统的简化框图,该系统包括一系列点对点互连以连接计算机系统中的多个I/O设备;

图2示出按照一实施例的分层协议栈的简化框图;

图3示出事务描述符的实施例。

图4示出串行点对点链路的实施例。

图5示出潜在的高性能互连(HPI)系统配置的多个实施例。

图6示出与HPI相关联的分层协议栈的实施例。

图7示出示例状态机的表示。

图8示出示例控制超序列。

图9示出到部分宽度状态的示例转换的流程图。

图10示出包括多核处理器的计算系统的框图的实施例。

图11示出包括多核处理器的计算系统的框图的另一实施例。

图12示出处理器的框图的实施例。

图13示出包括处理器的计算系统的框图的另一实施例。

图14示出包括多个处理器插槽的计算系统的框图的实施例。

图15示出计算系统的框图的另一实施例。

各附图中的相同附图标记和名称表示相同的元件。

详细描述

在以下描述中,提出了许多具体细节以便更透彻地理解本发明,诸如具体处理器和系统配置类型、具体硬件结构、具体结构和微结构细节、具体寄存器配置、具体指令类型、具体系统组件、具体处理器流水线阶段、具体互连层、具体分组/事务配置、具体事务名称、具体协议交换、具体链路宽度、具体实现方式以及操作等等的多个示例。然而,对于本领域技术人员显而易见的是,不需要必须采用这些具体细节来实现本公开案的主题。在其他情况下,为避免不必要地混淆本公开案,已经避免了已知组件或方法的非常详细的描述,所述组件或方法诸如具体的和替代的处理器体系结构、所述算法的具体逻辑电路/代码、具体固件代码、低级互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、算法用代码的具体表达、具体掉电和门控技术/逻辑以及计算机系统的其他具体操作细节。

尽管可以参照具体集成电路(诸如计算平台或微处理器)中的能量保存、能量效率等来描述以下实施例,然而其他实施例可应用于其他类型的集成电路和逻辑器件。这里所述的实施例的类似技术和原理可应用于也受益于这些特征的其他类型的电路或半导体器件。例如,所公开的实施例不限于服务器计算机系统、台式计算机系统、膝上型计算机、超级本(Ultrabooks)TM,而可以用于其他设备中,诸如手持设备、智能电话、平板电脑、其他薄型笔记本电脑、芯片上系统(SOC)设备及嵌入式应用。手持设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)及手持式PC。这里,用于高性能互连的类似技术可应用于增加低功率互连中的性能(或甚至节省功率)。嵌入式应用一般包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机或者可执行以下教导的功能和操作的任何其他系统。此外,这里所描述的装置、方法和系统不限于物理计算设备,而是也关于用于能量节省和效率的软件优化。从以下描述中可显而易见,这里所描述的方法、装置和系统的实施例(无论是参照硬件、固件、软件或其组合)可被视为对于以性能考虑因素平衡的“绿色技术”将来是关键的。

随着计算系统的进步,其中的组件变得更为复杂。用于在多个组件之间耦合和通信的互连体系结构的复杂度也增加,以确保对于最佳组件操作满足带宽需求。而且,不同的细分市场要求互连体系结构的不同方面来适合于相应的市场。例如,服务器要求较高性能,而移动生态系统有时能为节省功率而牺牲总性能。大多数构造的单一目的仍然是以最大的功率节省来提供最高的可能性能。而且,各种不同的互连可能潜在地受益于这里描述的主题。

外设布局互连(PCI)Express(快线)(PCIe)互连构造体系结构和快速路径(QPI)构造体系结构等示例可以根据这里描述的一个或多个原理得到潜在的改进。例如,PCIe的主要目标是使来自不同厂商的组件和设备能在开放式体系结构中互操作,跨越多个细分市场、客户机(台式机和移动机)、服务器(标准和企业)以及嵌入式设备和通信设备。PCI Express是为广泛的将来的计算和通信平台定义的高性能的、通用I/O互连。一些PCI属性(诸如其使用模型、负载存储体系结构和软件接口)已经通过其修订而被维持,而先前的并行总线实现方式已被高度可缩放的完全串行接口所替代。PCI Express的较新版本利用了点对点互连、基于交换机的技术以及分组化协议中的进步来实现新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性以及差错处理是PCI Express所支持的高级特征中的一些特征。尽管这里的主要讨论是参照新的高性能互连(HPI)体系结构,但是这里描述的本发明的多个方面可应用于其他互连体系结构,诸如PCIe兼容体系结构、QPI兼容体系结构、MIPI兼容体系结构、高性能体系结构或其他已知的互连体系结构。

参照图1,示出了由互连一组组件的多个点对点链路组成的构造的实施例。系统100包括与控制器中枢115耦合的处理器105和系统存储器110。处理器105可以包括任何处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前端总线(FSB)106耦合至控制器中枢115。在一实施例中,FSB 106是如下所述的串行点对点互连。在另一实施例中,链路106包括与不同的互连标准相兼容的串行差分互连体系结构。

系统存储器110包括任何存储器设备,诸如随机存取存储器(RAM)、非易失性(NV)存储器、或可由系统100内的设备访问的其他存储器。系统存储器110通过存储器接口116耦合至控制器中枢115。存储器接口的示例包括双数据速率(DDR)存储器接口、双通道DDR存储器接口以及动态RAM(DRAM)存储器接口。

在一实施例中,控制器中枢115可包括诸如PCIe互连层次结构中的根中枢(root hub)、根复合体(root complex)或根控制器。控制器中枢115的示例包括芯片集、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥以及根控制器/中枢。通常术语芯片集是指两个物理上分开的控制器中枢,例如与互连控制器中枢(ICH)耦合的存储器控制器中枢(MCH)。注意到,当前的系统通常包括与处理器105集成的MCH,而控制器115要以以下描述的类似方式与I/O设备通信。在一些实施例中,通过根复合体115任选地支持对等路由。

这里,控制器中枢115通过串行链路119耦合至交换机/桥120。输入/输出模块117和121也可称为接口/端口117和121,输入/输出模块117和121可包括/实现分层的协议栈以便在控制器中枢115和交换机120之间提供通信。在一实施例中,多个设备能够耦合至交换机120。

交换机/桥120将分组/消息自设备125向上游(即,自分层结构向上朝向根复合体)路由至控制器中枢115,并且自处理器105或系统存储器110向下游(即,自分层结构向下远离根控制器)路由至设备125。在一实施例中,交换机120被称为多个虚拟PCI对PCT桥设备的逻辑装配。设备125包括要耦合至电子系统的任何内部或外部设备或组件,诸如I/O设备、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线(Firewire)设备、通用串行总线(USB)设备、扫描仪以及其他输入/输出设备。通常在PCIe语言中,诸如设备被称为端点。尽管为特别示出,但设备125可以包括桥(例如PCIe对PCI/PCI-X桥)以支持设备或这些设备所支持的互连构造的传统或其他版本。

图形加速器130也可以通过串行链路132耦合至控制器中枢115。在一实施例中,图形加速器130耦合至MCH,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是由请求方代理(requesting agent)产生的字段,并且可以是对于对该请求方代理要求完成的所有未完成的请求唯一的。而且,在该示例中,源标识符310唯一地标识互连分层结构内的请求者代理(requestor agent)。因而,局部事务标识符308字段与源ID 310一起提供分层结构域内事务的全局标识。

属性字段304指定事务的特征和关系。在这点上,属性字段304可能用于提供允许修改事务的缺省处理方式的附加信息。在一实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316和无监听(no-snoop)字段318。这里,优先级子字段312可由发起者修改以将优先级分配给事务。保留属性字段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提供,发射机将符号串行化并且向外发射至外部设备。接收机被提供来自外部设备的经串行化符号并且将接收信号变换成位流。位流被解串行化并被提供给逻辑子块221。在一示例实施例中,采用8b/10b传输码,其中发射/接收10位的符号。这里,使用特殊的符号来用多个帧223对分组进行组帧。此外,在一示例中,接收机还提供从传入串行流恢复的符号时钟。

如上所述,尽管参照协议栈(诸如PCIe协议栈)的具体实施例讨论了事务层205、链路层210和物理层220,但是分层的协议栈不限于此。实际上,可以包括/实现任何分层的协议,分层的协议可以采用这里讨论的特征。作为一示例,被表示为分层协议的端口/接口可包括:(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自高逻辑电平驱动至低逻辑电平(即,下降沿)。差分信号潜在地说明较佳的电子特性,诸如较佳的信号完整性,即交叉耦合、电压过冲/下冲、振荡等其他示例优点。这允许较佳的定时窗口,从而允许较快的传输频率。

在一实施例中,提供了新的高性能互连(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所示的至少一些层可以是任选的。每一层处理其自身级别的信息粒度或信息量(协议层605a、b处理分组630,链路层610a、b处理飞片(flit)635,物理层605a、b处理相数位(phit)640)。注意到在一些实现中,基于实现方式,分组可以包括多个部分飞片、单个飞片或是多个飞片。

作为第一示例,相数位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将头部分割成相应的槽以便使飞片内的多个消息去往不同的节点。

在一实施例中,物理层605a、b可以负责在物理介质(电的或光的等等)上快速传递信息。物理链路可以是两个链路层实体(诸如层605a和605b)之间的点对点。链路层610a、b可以从较上层抽象出物理层605a、b,并且提供可靠地传递数据(以及请求)以及管理两个直连实体间的流控制的能力。链路层还可以负责将物理信道虚拟化为多个虚拟信道和消息类。协议层620a、b依赖于链路层610a、b来在将协议消息转交至物理层605a、b以便跨物理链路传递之前,将协议消息映射至适当的消息类和虚拟信道。在其他示例中,链路层610a、b可以支持多个消息,诸如请求、监听、响应、写回、非相干数据。

如图6所示,HPI的物理层605a、b(或PHY)可以在电气层(electricallayer)(即,连接两个组件的电导体)上方并且在链路层610a、b下方实现。物理层和相应的逻辑可以驻留在每个代理上,并且连接彼此隔开的两个代理(A和B)上的链路层(例如,在链路的任一侧上的设备上)。本地和远程的电层通过物理媒介(例如,电线、导体、光学媒介等)来连接。在一实施例中,物理层605a、b具有两个主要的相位、初始化和操作。在初始化器件,连接对链路层不透明,信令可以包括定时的状态和握手事件的组合。在操作期间,连接对链路层透明,信令具有一定速度,其中所有巷道在一起操作作为单个链路。在操作阶段期间,物理层将分片从代理A传输至代理B,且从代理B传输至代理A。该连接也称为链路,并且从链路层抽象出包括媒介、宽度和速度在内的某些物理方面,而同时与链路层交换当前配置的飞片和控制/状态(例如,宽度)。初始化阶段包括次要阶段,例如轮询、配置。操作阶段也包括次要阶段(例如,链路功率管理状态)。

在一实施例中,可以实现链路层610a、b以便在两个协议或路由实体间提供可靠的数据传输。链路层可以从协议层620a、b抽象出物理层605a、b,并且可以负责两个协议代理(A、B)之间的流控制,并且将虚拟信道服务提供给协议层(消息类)和路由层(虚拟网络)。协议层620a、b和链路层610a、b之间的接口一般可以处在分组级别。在一实施例中,链路层处的最小传输单位被称为飞片,飞片是指定数量的位,诸如192个位或某一其他数额。链路层610a、b依赖于物理层605a、b来将物理层605a、b的传输单位(相数位)组帧成链路层610a、b的传输单位(飞片)。此外,链路层610a、b可以在逻辑上被分成两部分,发送者和接收者。一个实体上的发送者/接收者对可以连接至另一实体上的接收者/发送者对。通常在飞片和分组两者的基础上进行流控制。也可能在飞片级基础上执行差错检测和校正。

在一实施例中,路由层615a、b可以提供灵活且分布式的方法以将HPI事务自源路由至目的地。由于可以通过每个路由器处的可编程路由表来指定多个拓扑结构的路由算法(一个实施例中的编程由固件、软件或其组合来执行),因此该方案是灵活的。路由功能可以是分布式的;路由可以通过一系列路由步骤来完成,且每个路由步骤通过源路由器、中间路由器或目的地路由器的任一个处的表格的查找来定义。源处的查找可用于将HPI分组注入HPI构造中。中间路由器处的查找可用于将HPI分组自输入端口路由至输出端口。目的地端口处的查找可用于瞄准目的地HPI协议代理。注意到,在一些实现中,路由层可以是薄的,因为路由表以及由此的路由算法未由说明书具体定义。这允许灵活性以及各种用途模型,包括要由系统实现定义的灵活的平台结构拓扑逻辑。路由层615a、b依赖于链路层610a、b来提供多达三个(或更多个)虚拟网络(VN)的使用――在一示例中,使用两个无死锁VN:VN0和VN1,且每个虚拟网络中定义了几个消息类。在其他特征和示例中,共享自适应虚拟网络(VNA)可定义于链路层中,但该自适应网络可能不直接暴露于路由概念,因为每个消息类和虚拟网络可以有专用的资源和有保证的进步。

在一些实现中,HPI可以使用嵌入式时钟。时钟信号可嵌入在使用互连发射的数据中。因为时钟信号嵌入于数据中,因此可以省略不同的和专用的时钟巷道。这可以是有用的,例如,因为它可以允许设备的更多引脚专用于数据传输,特别是在引脚空间非常重要的系统中。

可以在互连的任一侧上的两个代理之间建立链路。发送数据的代理可以是本地代理,接收数据的代理可以是远程代理。两个代理均可采用状态机来管理链路的各个方面。在一实施例中,物理层数据路径可以将多个飞片自链路层发射至电气前端。在一实现中,控制路径包括状态机(也称为链路训练状态机或类似物)。状态机的动作以及从状态的退出可以取决于内部信号、定时器、外部信号或其他信息。实际上,一些状态(诸如少数初始化状态)可具有定时器来提供退出一状态的超时值。注意到,在一些实施例中,检测是指检测一个巷道的两条腿(leg)上的事件,但不必要同时。然而,在其他实施例中,检测是指由所参考的代理来检测事件。作为一示例,防反跳(debounce)是指信号的持续断言。在一实施例中,HPI支持非功能巷道的情况下的操作。这里,巷道可以以特定的速率减少。

状态机中定义的状态可以包括重置状态、初始化状态和操作状态,以及其他类别和子类别。在一示例中,一些初始化状态可具有辅助定时器,辅助定时器用于在超时(特别是由于未能在状态中取得进展而造成的中止)时退出状态。中止可以包括更新寄存器,诸如状态寄存器。一些状态也可以具有(多个)主定时器,主定时器用于对状态内的主要功能定时。在其他示例中,可以定义其他状态,使得内部或外部信号(诸如握手协议)驱动从状态到另一状态的转变。

状态机还可以支持通过单步骤的调试、冻结初始化端口以及测试器的使用。这里,可以推迟/保持状态退出,直到调试软件准备好为止。在一些情况下,可以推迟/保持退出直到次级超时。在一实施例中,动作和退出可以基于训练序列的交换。在一实施例中,链路状态机要在本地代理时钟域中运行,并且自一个状态到下一个状态的转变要配合发射机训练序列边界。状态寄存器可用于反映当前状态。

图7示出在HPI的一个示例实现中由代理所使用的状态机的至少一部分的表示。应当理解,图7的状态表中所包括的状态包括可能状态的非穷尽列表。例如,省略了一些转变以简化该示意图。同样,可以组合、分割或省略一些状态,而同时可以增加其他状态。这样的状态可以包括:

事件重置状态:进入热或冷重置事件。恢复缺省值。初始化计数器(例如,同步计数器)。可能退出至另一状态,诸如另一重置状态。

定时重置状态:带内重置的定时状态。可能驱动预定义的电有序集(EOS)以使远程接收机也能够检测EOS并进入定时重置。接收机具有保持电气设置的巷道。可能退出至一代理以校准重置状态。

校准重置状态:道上无信令(例如,接收机校准状态)或将驱动器关闭的情况下进行校准。可以是基于定时器的状态中的预定量时间。可以设置操作速度。可以在端口不启用时充当等待状态。可以包括最小驻留时间。接收机调节或错开可基于设计而发生。可以在超时和/或校准完成之后退出至接收机检测状态。

接收机检测状态:检测巷道上接收机的存在。可以查找接收机终止(例如,接收机下拉插入)。可以在设置了指定值或在另一指定值未设置时退出至校准重置状态。如果检测到接收机或达到超时则可以退出至发射机校准状态。

发射机校准状态:用于发射机校准。可以是为发射机校准分配的定时状态。可以包括巷道上的信令。可以连续地驱动EOS,诸如电空闲退出有序集(或EIEIOS)。在校准完成或定时器到期时可以退出至服从状态。如果计数器已到期或已发生次级超时,则可以退出至发射机检测状态。

发射机检测状态:证明有效信令的资格。可以是握手状态,其中代理基于远程代理信令完成动作并且退出至下一状态。接收机可以证明来自发射机的有效信令的资格。在一实施例中,接收机寻找唤醒检测,并且如果在一个或多个巷道上防反跳,则在其他巷道上查找它。发射机驱动检测信号。响应于对于所有巷道完成反跳和/或超时、或者如果所有道上的防反跳未完成且存在超时,可以退出至轮询状态。这里,一个或多个监视道可以保持已唤醒以防反跳唤醒信号。如果被防反跳,则其他道可能被防反跳。这可以在低功率状态下实现功率节省。

轮询状态:接收机适配、初始化漂移缓冲器以及在位/字节(例如,标识符号边界)上锁定。巷道可以被纠偏。远程代理可以响应于确认消息而退出至下一状态(例如,链路宽度状态)。轮询另外可包括通过锁定至EOS的训练序列锁、以及训练序列头部。可以将远程发射机处的巷道与巷道之间的偏移上限设为针对最高速度的第一长度、以及针对低速度的第二长度。可以在低模式以及操作模式下执行纠偏。接收机可以具有具体最大值来纠偏巷道与巷道之间的偏移,诸如8、16或32个偏移间隔。接收机动作还可以包括延迟固定。在一实施例中,接收机动作可以在有效巷道地图的成功纠偏时完成。在一示例中,在带确认的情况下接收数个连续训练序列头部且在接收机已完成其动作之后传送带有确认的数个训练序列时,可以实现成功握手。

链路宽度状态:代理将最终巷道地图传送至远程发射机。接收机接收信息并解码。接收机可以在第二结构中的前一巷道地图值的检查点之后,将已配置的巷道地图记录在一结构中。接收机还可以用确认(“ACK”)来响应。可以发起带内重置。作为一示例,第一状态用于发起带内重置。在一实施例中,响应于ACK而退出至下一状态,诸如飞片配置状态。而且,在进入低功率状态之前,如果唤醒检测信号的出现频率跌落至指定值(例如,每单位间隔(UI)为1,诸如4K UI)以下,也可以产生重置信号。接收机可以保持当前的巷道地图和先前巷道地图。发射机可以基于具有不同值的训练序列来使用不同的巷道组。在一些实施例中,巷道地图可能不修改一些状态寄存器。

飞片锁配置状态:由发射机进入,但在发射机和接收机均已退出至阻断链路状态或其他链路状态时,该状态被视为退出(即,次级超时未决)。在一实施例中,发射机退出至链路状态,包括在接收行星(planetary)对准信号之后的数据序列开始(SDS)和训练序列(TS)边界。这里,接收机退出可以基于自远程发射机接收到SDS。该状态可以是自代理到链路状态的桥。接收机标识SDS。如果在初始化解扰器之后接收到SDS,则接收机可以退出至阻断链路状态(BLS)(或控制窗口)。如果发生超时,则可以退出至重置状态。发射机用配置信号来驱动巷道。发射机也可以基于多个条件或超时而退出至重置状态、BLS状态或其他状态。

发射链路状态:一种链路状态。飞片被发送至远程代理。可以自阻断链路状态进入并且在有事件(诸如超时)时返回至阻断链路状态。发射机发射飞片。接收机接收飞片。也可以退出至低功率链路状态。在一些实现中,发射链路状态(TLS)也可以被称为L0状态。

阻断链路状态:一种链路状态。发射机和接收机以统一方式工作。可以是一种定时状态,在该定时状态期间,在物理层信息被传送至远程代理的同时保持住链路层飞片。可以退出至低功率链路状态(或基于设计的其他链路状态)。在一实施例中,阻断链路状态(BLS)周期性地出现。周期被称为BLS间隔,并且可以被定时,以及在低速度和操作速度之间而不同。注意到可以周期性地阻止链路层发送飞片,使得可以发送一定长度的物理层控制序列,诸如在发射链路状态或部分宽度发射链路状态期间。在一些实现中,阻断链路状态(BLS)可以被称为L0控制(或L0c)状态。

部分宽度发射链路状态:可以通过进入部分宽度状态来节省功率。在一实施例中,非对称部分宽度是指在一些设计中可支持的具有不同宽度的两个方向链路的每个方向。图9的示例中示出诸如发射机的始发者的一示例,始发者发送部分宽度指示以进入部分宽度发射链路状态。这里,在具有第一宽度的链路上发射的同时,发送部分宽度指示,以便将该链路转变成以第二个新宽度进行发送。失配可能导致重置。注意到速度可能不改变,但宽度可以改变。因此,飞片可能以不同的跨度被发送。可能在逻辑上类似于发射链路状态;由于存在较小的宽度,因此发射飞片可能需要较长时间。可以退出至其他链路状态,诸如基于特定接收到的和发送的消息而退出至低功率链路状态,或是基于其他事件退出至部分宽度发射链路状态或链路阻断状态。在一实施例中,发射机端口可以以交错方式将空闲道关闭,以提供较佳的信号完整性(即,噪声减轻),如时序图中所示。这里,在链路宽度正在变化的时间段期间,可以使用不可重试(non-retry-able)飞片,诸如空(Null)飞片。相应的接收机可以丢掉这些空飞片并且以交错方式关闭空闲道。注意,状态以及相关联的状态寄存器可以保持不改变。在一些实现中,部分宽度发射链路状态可以被称为部分L0(或L0p)状态。

退出部分宽度发射链路状态:退出部分宽度状态。在一些实现中,可以使用或可以不使用阻断链路状态。在一实施例中,发射机通过在空闲巷道上发送部分宽度退出模式以便训练和纠偏它们,从而启动退出。作为一示例,退出模式以EIEOS开始,EIEOS被检测和防反跳以发信号通知,巷道已经准备好开始进入完全发射链路状态,并且可以以空闲道上的SDS或快速训练序列(FTS)结束。退出序列期间的任何故障(接收机动作,诸如在超时前未完成的纠偏)都停止到链路层的飞片传输,并且坚持重置,重置通过在下一阻断链路状态出现时重置链路来处理。SDS也可以将多个巷道上的扰频器/解扰器初始化为适当的值。

低功率链路状态:是一种较低功率状态。在一实施例中,它比部分宽度链路状态的功率要低,因为该实施例中的信令在所有巷道上以及在两个方向上都停止。发射机可以使用阻断链路状态来请求低功率链路状态。这里,接收机可以解码该请求并且以ACK或NAK来响应;否则可以触发重置。在一些实现中,低功率链路状态可以被称为L1状态。

在一些实现中,可以便于状态转变以允许状态被旁路,例如,在已经完成状态的状态动作(诸如特定的校准和配置)时。链路的先前状态结果和配置可以被存储,并且在链路的后续初始化和配置中被再用。可以旁路相应的状态,而不是重复这样的配置和状态动作。然而,实现状态旁路的传统系统通常实现复杂设计及昂贵的证实逃避(validation escape)。在一示例中,取代使用传统的旁路,HPI可以在特定状态下使用短定时器,诸如在不需要重复状态动作时。这可以潜在地允许更均匀和同步的状态机转变,以及其他潜在优点。

在一示例中,基于软件的控制器(例如,通过物理层的外部控制点)可以针对一个或多个特定状态启用短定时器。例如,对于已经执行和存储其动作的状态,状态可以被短定时以便于从该状态快速退出至下一状态。然而,如果前一状态动作失败或者不能在短定时器期间应用,可以执行状态退出。而且,控制器可以禁用短定时器,例如在应当重新执行状态动作时。可以为每个相应的状态设置长的,或即缺省的定时器。如果该状态下的动作不能在长定时器内完成,则可以发生状态退出。长定时器可以被设为合理持续期,以便允许状态动作的完成。相反,在其他示例中,短定时器可以短得多,在一些情况下,使其尤其不可能在参照回以前执行的状态动作的情况下执行状态动作。

在一些情况下,在链路初始化(或重新初始化)期间,随着代理前进通过状态机朝向操作链路状态,可能出现使状态重置(例如,重置为重置状态或其他状态)的一个或多个故障或状态退出。实践中,链路的初始化可以循环经过一个或多个状态,而无需完成初始化并进入链路状态。在一示例中,可以为链路初始化内的状态转变中的无效循环数目保持计数。例如,每次初始化在未达到链路状态的情况下返回至重置状态时,计数器可以递增。一旦链路成功地进入链路状态,可以为该链路重置计数器。这种计数器可由链路两侧上的代理来维持。而且,可以设置阈值,例如通过使用一个或多个外部控制点的基于软件的控制器来设置。当无效循环的计数满足(或超过)所定义的阈值时,链路的初始化可以被挂起(例如在重置状态时或之前被设置和保持)。在一些实现中,为了重新开始初始化并且自挂起状态释放初始化,基于软件的控制器可以触发链路的重启或重新初始化。在一些情况下,基于软件的工具可以分析被挂起初始化的性质并且进行诊断、设置寄存器值并且执行其他操作,以便防止初始化的进一步循环。实际上,在一些实现中,在其他示例中,控制器可以结合重启被挂起的链路初始化而设置较高的计数器阈值或甚至覆写计数器。

在HPI的一些实现中,可以定义超序列,每个超序列对应于一个相应状态或对该相应状态的进入/退出至/自其退出。超序列可包括数据集和符号的重复序列。在一些情况下,在其他示例中,序列可以重复,直到状态或状态转变的完成、或是相应事件的传送为止。在一些情况下,超序列的重复序列可以根据已定义的频率来重复,已定义的频率诸如已定义的单位间隔(UI)数目。单位间隔(UI)可以对应于在链路或系统的道上发射单个位的时间间隔。在一些实现中,重复序列可以以电有序集(EOS)开始。因而,可以预期EOS的实例根据预定义的频率来重复。这种有序集可以被实现为可以16进制格式表示的已定义的16字节码,以及其他示例。在一示例中,超序列的EOS可以使EIEIOS。在一示例中,EIEOS可以类似于低频时钟信号(例如,FF00或FFF000十六进制符号的预定义的重复数目等)。预定义的数据集可以跟随EOS,诸如预定义数目的训练序列或其他数据。在其他示例中,这种超序列可用于状态转变中,状态转变包括链路状态转变以及初始化。

在互连的一些实现中,诸如在QPI中,可以开启和关闭串行数据链路的终止,诸如在链路被重置或初始化时。该方法可以将复杂度和时间引入链路的初始化。在HPI的一些实现中,可以在链路的重置和重新初始化期间维持链路的终止。而且,HPI可允许设备的热插。当或通过热插或以其他方式引入另一设备时,向其上添加新远程代理的巷道的电压特性会变化。本地代理可以感测巷道电压中的这些变化以检测远程代理的存在并且促使链路的初始化。可以在状态机中定义状态机状态和定时器以在不终止的情况下协调链路的检测、配置和初始化。

在一种实现中,通过由接收代理针对传入信令筛选巷道,HPI可以支持带内重置上的重新初始化而不改变终止值。信令可用于标识良好的巷道。作为一示例,可以针对要由发射机设备发送的一组预定义信号中的任一个筛选该巷道,以便于恢复和配置该链路。在一示例中,超序列可以对应于一个或多个初始化或重新初始化任务而被定义。预定义序列可以包括EIEOS,其后是附加的序列数据。在一些情况下,随着巷道的任一侧上的每个设备变得活动,设备可以开始发送对应于特定初始化状态的超序列等等。在一实施例中,可以支持两类引脚重置;上电(即“冷”)重置和热重置。由软件发起或在一个代理上始发(在物理层或另一层中)的重置可以被带内传送至另一个代理。然而,由于使用了嵌入式时钟,因此可以通过使用有序集(诸如特定的电有序集,即EIOS)传送至另一代理来处理带内重置。

有序集可以在初始化期间被发送,PHY控制序列(或“阻断链路状态”)可以在初始化之后被发送。阻断链路状态可以阻止链路层发送飞片。作为另一示例,可以阻止链路层业务发送在接收机处被丢弃的少量空(NULL)飞片。

如以上所介绍,在一实施例中,初始化可以以最初低速度然后是快速初始化来完成。低速度下的初始化针对寄存器和定时器使用缺省值。然后,软件使用低速度链路来设置寄存器、定时器和电参数,并且清除校准臂板信号(semaphore)来为快速初始化铺路。作为一示例,在其他可能的示例中,初始化可由诸如重置(Reset)、检测(Detect)、轮询(Polling)和配置(Configuration)这样的状态或任务组成。

在一示例中,链路层阻断控制序列(即,阻断链路状态(BLS)或L0c状态)可以包括一定时状态,在该定时状态期间,在PHY信息被传送至远程代理的同时保持住链路层飞片。这里,发射机和接收机可以启动阻断控制序列定时器。并且在定时器到期时,发射机和接收机可以退出阻断状态并且可以采取其他动作,诸如退出至重置状态、退出至不同的链路状态(或其他状态),不同的链路状态包括允许跨链路发送飞片的状态。

在一实施例中,可以提供链路训练,链路训练包括发送经扰频的训练序列、有序集和控制序列中的一个或多个,诸如结合预定义超序列而发送。训练序列符号可以包括头部、保留部分、目标延迟、对号(pair number)、物理巷道地图代码参照巷道或一组巷道、以及初始化状态中的一个或多个。在一实施例中,头部可以ACK或NAK来发送,还有其他示例。作为一示例,训练序列可以作为超序列的一部分被发送并且可以被扰频。

在一实施例中,有序集和控制序列不被扰频或交错,并且可以在所有巷道上相同地、同时地和完全地被发送。有序集的有效接收可以包括检验有序集的至少一部分(或多个部分有序集的全部有序集)。有序集可以包括电有序集(EOS),诸如电空闲有序集(EIOS)或EIEOS。超序列可以包括数据序列的开始(SDS)或快速训练序列(FTS)。这种集和控制超序列可以被预定义,并且可具有任何模式或十六进制表示以及任何长度。例如,有序集和超序列可以为8字节、16字节或32字节等的长度。作为一示例,在退出部分宽度发射链路状态期间,可以为快速位锁定附加地使用FTS。注意到,FTS定义可以是按道定义的,并且可以使用FTS的旋转版本。

在一实施例中,超序列可以包括将EOS(诸如EIEOS)插入到训练序列流中。在一实施例中,当信令开始时,多个巷道以交错方式被上电。然而,这可能导致初始超序列在一些巷道上在接收机处被截短。然而,超序列可以在短间隔上被重复(例如近似一千单位间隔,(或即~1KUI))。训练超序列可另外用于纠偏、配置中的一个或多个,并且用于传送初始化目标、巷道地图等。EIEOS可用于以下的一个或多个:将巷道从不活动状态转变为活动状态,筛选良好的道,标识符号和TS边界,以及其他示例。

转至图8,示出示例超序列的表示。例如,可以定义示例性的检测超序列805。检测超序列805可以包括单个EIEOS(或其他EOS)且其后跟随特定训练序列(TS)的预定义数量的实例的重复序列。在一示例中,EIEOS可以被发送,其后立即跟随TS的七个重复实例。当七个TS的最后一个被发送时,可以再次发送EIEOS其后跟随TS的七个另外实例,以此类推。该序列可以根据特定的预定义频率来重复。在图8的示例中,EIEOS可以每一千个UI(~1KUI)在巷道上重复出现,其后跟随检测超序列805的其余部分。接收机可以监视巷道上是否存在重复的检测超序列805,并且在确认超序列705时推断出远程代理存在、已被添加(例如,热插拔)至巷道上、已经唤醒、或正在重新初始化等等。

在另一示例中,可以定义另一超序列810来表明轮询、配置或环回(loopback)条件或状态。对于示例的检测超序列805,可由接收机监视链路的巷道上是否有这种轮询/配置/循环(Poll/Config/Loop)超序列810,以标识轮询状态、配置状态或者环回状态或条件。在一示例中,轮询/配置/循环超序列810可以EIEOS开始,其后跟随TS的预定义数量的重复实例。例如,在一示例中,EIEOS后可跟随TS的三十一(31)个实例,其中EIEOS近似每四千个UI(例如,~4KUI)重复一次。

而且,在另一示例中,可以定义部分宽度发射状态(PWTS)退出超序列815。在一示例中,PWTS退出超序列可包括要重复的初始EIEOS,以便在发送超序列中的第一空序列之前对巷道进行预重复。例如,要在超序列815中重复的序列可以以EIEOS开始(要近似每1KUI重复一次)。而且,可以替代其他训练序列(TS)而使用快速训练序列(FTS),FTS被配置为帮助较快的位锁定、字节锁定和纠偏。在一些实现中,FTS可以被解扰,以帮助将空闲巷道尽可能快速和非打扰地带回至活跃。随着其他超序列进入链路发射状态,超序列815可以被中断,并且通过发送数据序列的开始(SDS)而结束。而且,可以发送部分FTS(FTSp)来帮助将新的巷道同步至活动的巷道,诸如通过允许向FTSp减去(或添加)多个位,以及其他示例。

超序列(诸如检测超序列705和轮询/配置/循环超序列710等)可能潜在地在链路的初始化或重新初始化期间被发送。在一些情况下,接收机在接收和检测特定的超序列时,可以通过在巷道上将同一超序列发回声(echo)给发射机来进行响应。发射机和接收机对特定超序列的接收和确认可以充当握手,以确认通过超序列传送的状态或条件。例如,诸如握手(例如,使用检测超序列705)可用于标识链路的重新初始化。在其他示例中,在另一示例中,这一握手可用于表明电重置或低功率状态的结束,导致相应的巷道被带回来。例如,可以自各自发射检测超序列705的发射机和接收机之间的握手来标识电重置的结束。

在其他事件中,在另一示例中,可以监视道上是否有超序列,巷道可以使用超序列来筛选道以进行检测、唤醒、状态退出和进入。还可以进一步使用超序列的预定义和可预测的性质和形式来执行这样的初始化任务,诸如位锁定、字节锁定、防反跳、解扰、纠偏、适配、延迟固定、协商延以及其他潜在用途。实际上,可以基本连续地监视道上是否有这些事件以加速系统反应于或处理这种条件的能力。

在防反跳的情况下,作为各种条件的结果,可以在道上引入瞬变。例如,设备的添加或上电可以将瞬变引入巷道上。此外,由于差的巷道质量或电故障,巷道上可能呈现电压不规则性。在一些情况下,巷道上的“反跳(bounce)”可以产生错误确定,诸如错误EIEOS。然而,在一些实现中,尽管超序列可以以EIEOS开始,但已定义的超序列还可以包括附加的数据序列以及EIEOS将重复所用的已定义频率。结果,即使错误EIEOS出现在巷道上,接收机处的逻辑分析器可以通过数据超过错误EIEOS,来确定EIEOS是错误确定。例如,如果预期的TS或其他数据不跟随EIEOS、或者EIEOS不在预定义超序列之一的多个预定义频率的特定一个频率内重复,接收机逻辑分析器可以使对接收到的EIEOS的确认失败。随着在将设备添加至巷道时反跳在启动时出现,也会产生错误确定。例如,在设备被添加至一组巷道后,设备可以开始发送检测超序列705以便向链路的另一侧警告它的存在,并且开始初始化链路。然而,巷道上引入的瞬变可以破坏初始EIEOS、TS实例以及超序列的其他数据。然而,在其他示例中,接收设备上的逻辑分析器可继续监视这些巷道,并且标识由新设备在重复检测超序列705中发送的EIEOS。

在一些实现中,HPI链路能够以嵌入式时钟实现的多个速度进行操作。例如,可以定义慢模式。在一些实例中,慢模式可用于帮助实施链路的初始化。链路的校准可包括基于软件的控制器提供逻辑来设置链路的各个已校准特征,包括链路要使用哪些巷道、巷道的配置、链路的操作速度、巷道和代理的同步、纠偏、目标延迟、以及其他可能的特征。这种基于软件的控制器可以利用外部控制点来将数据添加至物理层寄存器来控制物理层设施和逻辑的各方面。

链路的操作速度可以比链路初始化中使用的基于软件的控制器的实际操作速度快得多。在其他实例中,慢模式可用于允许使用这种基于软件的控制器,诸如在链路的初始化或重新初始化期间。慢模式可应用于链接接收机和发射机的巷道上,例如当链路被开启、被初始化、被重置等等的时候,以帮助实施链路的校准。

在一实施例中,时钟可嵌入在数据中,因此没有单独的时钟巷道。在巷道上发送的飞片可以被扰频以实施时钟恢复。作为一示例,接收机时钟恢复单元可以将采样时钟传递至接收机(即,接收机自数据恢复时钟并且用它来采样进入的数据)。一些实现中的接收机连续地适配于传入位流。通过嵌入时钟,可以潜在地减少引出线(pinout)。然而,将时钟嵌入在带内数据中可以改变实施带内重置的方式。在一实施例中,可以在初始化之后使用阻断链路状态(BLS)。在其他考虑因素中,同样,可以在初始化期间使用电有序集超序列来实施重置。嵌入式时钟可以在链路上的多个设备间共有,公共操作时钟可以在链路的校准和配置期间被设置。例如,HPI链路可以以漂移缓冲器来参考公共时钟。和非公共参考时钟中使用的弹性缓冲器相比,这种实现方式可以实现较低的延迟,还有其他潜在的优点。而且,参考时钟分布段可以被匹配至指定界限内。

如上所述,HPI链路能够以多个速度操作,包括用于缺省上电、初始化等的“慢模式”。每个设备的操作(或“快速”)速度或模式可由BIOS静态地设置。链路上的公共时钟可以基于链路任一侧上的每个设备的相应操作速度来配置。例如,在其他示例中,链路速度可基于两个设备操作速度中的较慢者。任何操作速度变化可伴随热重置或冷重置。

在一些示例中,在加电时,链路初始化为慢模式,其传输速率例如为100MT/s。然后,软件为链路的操作速度设置两侧,并且开始初始化。在其他情况下,在没有慢模式或慢模式不可用的情况下,可以使用侧带机制来设立链路,包括链路上的公共时钟。

在一实施例中,慢模式初始化阶段可以使用与操作速度相同的编码、扰频、训练序列(TS)、状态等,但可能有较少特征(例如,无电参数设立,无适配等)。与操作速度相比,慢模式操作节点也可能使用相同的编码、扰频等(尽管其他实现可能不相同)但可能有较少的状态和特征(例如,无低功率状态)。

而且,可以使用设备的本地锁相环(PLL)时钟频率来实现慢模式。例如,HPI可以支持模仿的慢模式,而不改变PLL时钟频率。尽管一些设计可以为慢速度和快速度使用单独的PLL,但在HPI的一些实现中,可以通过允许PLL时钟在慢模式期间以相同的快操作速度运行,来实现模仿的慢模式。例如,发射机可以通过多次重复多个位来模拟较慢的时钟信号,以便模拟一个慢的高时钟信号然后是一个慢的低时钟信号。然后,接收机可以对接收信号过采样以定位通过重复位所模拟的多个边缘,并且标识该位。在这种实现中,共享一PLL的多个端口可以在慢速度和快速度下共存。

公共慢模式速度可以在两个设备之间初始化。例如,链路上的两个设备可具有不同的快速操作速度。公共慢模式速度可以在例如发现阶段或链路上的状态期间被配置。在一示例中,模拟倍数可被设为快速度对慢速度的整数(或非整数)比,不同的快速度可以被向下转换以便与相同的慢速度一起工作。例如,支持至少一个公共频率的两个设备代理可以被热附着,无论主机端口以什么速度运行。然后,软件发现可以使用慢模式链路来标识和设立最优的链路操作速度。在倍数是快速度对慢速度的整数比时,不同的快速度可以与相同的慢速度一起工作,相同的慢速度可以在(例如,热附着的)发现阶段期间被使用。

在HPI的一些实现中,可以支持链路上多个巷道的适配。物理层可以支持接收机适配和发射机(或发送者)适配两者。对于接收机适配,巷道上的发射机可以将采样数据发送至接收机,接收机逻辑可以处理采样数据以标识巷道的电特性中的短处以及信号的质量。然后,接收机可以对巷道的校准作出调整以便基于对接收到的采样数据的分析来优化该巷道。在发射机适配的情况下,接收机可以再次接收采样数据并且开发描述巷道质量的度量,但在该情况下是将度量传送至发射机(例如,使用后信道(backchannel),诸如软件、硬件、嵌入式、侧带或其他信道),以使发射机能基于反馈对巷道作出调整。可以在轮询状态的开始处,使用自远程发射机发送的轮询超序列来发起接收机适配。类似地,通过为每个发射机参数重复以下事项,可以完成发射机适配。两个代理都可以作为主机进入环回模式状态,并且发射所指定的模式。两个接收机都可以测量远程代理处的该特定发射机设置的度量(例如,BER)。两个代理都可以进入环回标记状态,然后进入重置状态,并且使用后信道(慢模式TLS或侧带)来交换度量。基于这些度量,可以标识下一个发射机设置。最后可以标识最优发射机设置,并将其保存供后续使用。

由于链路上的两个设备都可以运行相同的参考时钟(例如,ref clk),因此可以省略弹性缓冲器(任何弹性缓冲器都可以被旁路,或者被用作具有最低可能延迟的漂移缓冲器)。然而,可以在每个巷道上使用相位调整或漂移缓冲器来将相应的接收机位流自远程时钟域传输至本地时钟域。漂移缓冲器的等待时间可能足以处理来自电规范中所有源(例如,电压、温度、参考时钟路由适配所引起的残余SSC等等)的漂移总和,但为了减少传输延迟要尽可能小。如果漂移缓冲器过浅,则漂移差错会产生并且会显示为一系列CRC差错。因而,在其他示例中,在一些实现中,可以提供漂移警告,漂移警告会在出现实际漂移差错之前发起物理层重置。

HPI的一些实现可以支持以同一标称参考时钟频率运行但具有ppm差异的两侧。在其他示例中,在该情况下,可能需要频率调整(或弹性)缓冲器,并且可能在扩展的BLS窗口期间或在会周期性出现的特殊序列期间重新调整频率调整缓冲器。

在其他考虑因素中,HPI PHY逻辑层的操作可以独立于底层的传输媒介——假如等待时间不导致链路层处的延迟固定差错或超时。

HPI中可以提供外部接口以帮助管理物理层。例如,可以提供外部信号(来自引脚、保险丝、其他层)、定时器、控制和状态寄存器。输入信号可以在相对于PHY状态的任一时刻变化,并且要由物理层在相应状态下的特定点处观察。例如,在其他示例中,在链路已进入发射链路状态之后,变化的对齐信号(如下介绍)可以被接收,但没有实际效果。类似地,命令寄存器值可由物理层实体仅在特定时间点处观测。例如,物理层逻辑可以获得值的快照,并且将其用于后续操作中。因而,在一些实现中,对命令寄存器的更新可以与特定时间段的有限子集(例如,在发射链路状态时或在保持于重置校准时、在慢模式发射链路状态时)相关联,以避免反常的行为。

由于状态值跟踪硬件改变,因此值读数可取决于它们何时被读取。然而,一些状态值(诸如链路地图、等待时间、速度等)可能在初始化之后不改变。例如,重新初始化(或低功率链路状态(LPLS)、或L1状态、退出)是唯一能使这些发生变化的事项(例如,TLS中的硬巷道故障不会导致链路的重新配置,直到重新初始化被触发,以及其他示例)。

接口信号可包括物理层外部但影响物理层行为的信号。作为示例,这样的接口信号可包括编码和定时信号。接口信号可以是设计专用的。这些信号可以是输入或输出。在其他示例中,一些接口信号(诸如所称的臂板信号和有前缀的EO等其他示例)可以在每次断言边缘时是活动的,即,它们可以被解除断言然后重新断言以再次有效。例如,表1包括示例功能的示例列表:

表1

可以成对地提供CSR定时器缺省值――一个用于慢模式,一个用于操作速度。在一些实例中,值0禁用定时器(即,超时用不发生)。定时器可以包括下表2示出的那些定时器。主定时器可用于对状态中的预期动作定时。次定时器用于中止未在进展中的初始化或者用于在自动测试设备(即ATE)模式中以准确的时刻推进状态转变。在一些情况下,状态内的次定时器可以比主定时器大得多。指数定时器集合可以用exp作后缀,定时器值被提高两倍至字段值。对于线性定时器,定时器值是字段值。任一定时器可以使用不同的粒度。此外,功率管理部分中的一些定时器可以在称为定时轮廓的集合中。这些可以与相同名称的时序图相关联。

表2

可以提供命令和控制寄存器。控制寄存器可以是迟到动作,并且可以在一些实例中由软件读取或写入。迟到动作值可以在重置时连续生效(例如,自软件面临的阶段经过至硬件面临的阶段)。控制臂板信号(有前缀的CP)是RWIS,并且可由硬件清除。可以使用控制寄存器来执行这里描述的任一条目。它们可由硬件、软件、固件或它们的组合来修改和访问。

可以提供状态寄存器来跟踪硬件变化(由硬件写入和使用的)并且可以是只读的(但调试软件可能也能够向它们写入)。这种寄存器可能不会影响互操作性,并且一般可用许多私有状态寄存器来实现。因为状态臂板信号(有前缀的SP)可由软件清除,因此可以强制执行状态臂板信号以重做设置状态的动作。缺省意味着可以提供初始(在重置时)值作为与初始化有关的这些状态位的一个子集。在初始化中止时,该寄存器可以被复制到存储结构内。

可以提供工具箱寄存器。例如,物理层中的可测试性工具箱寄存器可以提供模式生成、模式检验和环回控制机制。较高级的应用可以利用这些寄存器连同电参数来确定余量。例如,测试中构建的互连可以利用该工具箱来确定余量。在其他示例中,对于发射机适配,这些寄存器可以结合前面部分描述的特定寄存器一起使用。

在一些实现中,HPI支持使用物理层的可靠性、可用性及可服务性(RAS)能力。在一实施例中,HPI支持对于一个或多个层的热插拔和热移除,层可包括软件。热移除可包括使链路静默,并且可以清除初始化开始状态/信号使代理被移除。远程代理(即,未在被移除的代理(例如,主机代理))可以被设为慢速度,且其初始化信号也可以被清除。在其他示例和特征中,带内重置(例如,通过BLS)可以使两个代理均在重置状态(诸如校准重置状态(CRS))内等待;要被移除的代理可以被移除(或者可以被保持在定向的引脚重置、被掉电)。实际上,以上事件中的一些可以被省略,并且可以添加附加的事件。

热添加可以包括初始化速度可缺省为慢,且可以在要被添加的代理上设置初始化信号。软件可以将速度设为慢,并且可以清除远程代理上的初始化信号。链路可以在慢模式中发生,软件可以确定操作速度。在一些情况下,在此时不执行远程代理的PLL重新锁定。可以在两个代理上均设置操作速度,可以设置启用以进行适配(如果以前未完成)。可以清除两个代理上的初始化开始指示符,并且带内BLS重置会使两个代理都在CRS中等待。软件可以断言(要被添加的)代理的热重置(例如,定向的重置或自重置),其可以使PLL重新锁定。软件也可以通过任何已知的逻辑来设置初始化开始信号,并且进一步在远程代理上设置(因此将其推入接收机检测状态(RDS))。软件可以解除断言所添加代理的热重置(因此将其推入RDS)。然后,在其他示例中,链路可以在操作速度下初始化为发射链路状态(TLS)(或者如果设置了适配信号则初始化为环回状态)。实际上,可以省略以上事件中的一些事件,并且可以添加附加的事件。

可以支持数据道故障恢复。在一实施例中,HPI中的链路可以将其自身配置为比完全宽度要小(例如,小于完全宽度的一半),从而对单个巷道上的硬差错有弹性,这由此排出了故障巷道。作为一示例,配置可由链路状态机完成,在配置状态中可以关闭不用的巷道。结果,在其他示例中,飞片可以跨较窄的宽度上被发送。

在HPI的一些实现中,可以在一些链路上支持巷巷道逆转。例如,巷道逆转可以指发射机的巷道0/1/2…连接至接收机的巷道n/n-1/n-2…(例如,n可以等于19或7等等)。如TS头部的字段中所标识,巷道逆转可以在接收机处被检测。接收机可以通过对逻辑道0…n使用物理道n…0来开始轮询状态,实施巷道逆转。因此,对巷道的引用可以指逻辑巷道号码。因此,广泛的设计者可能更高效地规定物理或电设计,HPI可以与虚拟巷道分配一同工作,如此处描述的。此外,在一实施例中,极性可以被反转(即,当差分发射机+/-连接至接收机-/+时)。极性也可以在接收机处自一个或多个TS头部字段被检测,并且在一个实施例中在轮询状态中实施。

参照图10,描述了用于包括多核处理器的计算系统的框图的实施例。处理器1000包括任何处理器或处理设备或用于执行代码的其他设备,处理器或处理设备诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、芯片上系统(SOC)。在一实施例中,处理器1000包括至少两个核――核1001和1002,核可以包括不对称的核或对称的核(所示实施例)。然而,处理器1000可以包括可以对称或非对称的任何数量的处理元件。

在一实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他能够保持处理器的状态的元件,处理器的状态诸如执行状态或架构状态。换言之,在一实施例中,处理元件是指能够与代码独立相关联的任何硬件,代码诸如软件线程、操作系统、应用或其他代码。物理处理器(或处理器插座)一般是指集成电路,集成电路可能包括任何数量的其他处理元件,诸如核或硬件线程。

核通常是指位于能够维持独立架构状态的集成电路上的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相反,硬件线程一般是指位于能够维持独立架构状态上的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如图所示,当特定的资源被共享而其他资源专用于架构状态时,硬件线程的命名和核之间的线重叠。但往往,核和硬件线程被操作系统视为个别的逻辑处理器,其中操作系统能够个别地调度每个逻辑处理器上的操作。

如图10所示,物理处理器1000包括两个核――核1001和1002。这里,核1001和1002被视为对称核,即具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核1001包括无序处理器核,而核1002包括有序处理器核。然而,核1001和1002可以从任何类型的核中个别地选择,诸如本机核、软件管理的核、适用于执行本机指令集架构(ISA)的核、适用于执行经转换指令集架构(ISA)的核、共同设计的核或其他已知核。在异构核环境(即,非对称核)中,可以使用一些形式的转换(例如二进制转换)来在一个或两个核上调度或执行代码。为了进一步讨论,下面进一步详细描述了核1001中所示的功能单元,核1002中的单元在所述实施例中以类似方式操作。

如图所述,核1001包括两个硬件线程1001a和1001b,它们也可以被称为硬件线程槽1001a和1001b。因此,在一实施例中,诸如操作系统的软件实体可能将处理器1000视为四个分开的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如以上所提到的,第一线程与架构状态寄存器1001a相关联,第二线程与架构状态寄存器1001b相关联,第三线程可与架构状态寄存器1002a相关联,第四线程可与架构状态寄存器1002b相关联。这里,架构状态寄存器(1001a、1001b、1002a和1002b)的每一个可以被称为处理元件、线程槽或线程单元,如下所述。如图所示,架构状态寄存器1001a在架构状态寄存器1001b中被复制,因此个别的架构状态/上下文能够针对逻辑处理器1001a和逻辑处理器1001b而被存储。在核1001中,也可以为线程1001a和1001b复制其他较小的资源,诸如分配器和重命名器块1030中的指令指针和重命名逻辑。可以通过分区来共享一些资源,诸如重排序/隐退单元1035中的重排序缓冲器、ILTB 1020、负载/存储缓冲器以及队列。其他资源可能被完全共享,其他资源诸如通用内部寄存器、页表基础寄存器、低级数据高速缓存和数据TLB 1015、执行单元1040以及无序单元1035的部分。

处理器1000通常包括其他资源,其他资源可以被完全共享、通过分区被共享、或者由/对处理器元件专用。在图10中,示出具有处理器的示意性逻辑单元/资源的纯示例性处理器的实施例。注意到,处理器可包括或省略这些功能单元的任何,以及包括任何其他未图示的已知功能单元、逻辑或固件。如图所示,核1001包括简化的代表性的无序(OOO)处理器核。但在不同的实施例中可以使用有序处理器。OOO核包括用于预测要被执行/采取的分支的分支目标缓冲器1020和用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)1020。

核1001还包括耦合至取回单元1020以便对取回的元素进行解码的解码模块1025。在一实施例中,取回逻辑包括分别与线程槽1001a、1001b相关联的个别定序器。通常,核1001与第一ISA相关联,第一ISA定义/指定处理器1000上可执行的指令。通常,作为第一ISA一部分的机器码指令包括一部分指令(称为操作码),该部分指令引用/指定要被执行的指令或操作。解码逻辑1025包括用于从它们的操作码中认出这些指令并且在管线上传递经解码的指令用于如第一ISA所定义那样处理的电路。例如,如以下更详细讨论的,在一实施例中,解码器1025包括被设计或适配成识别特定指令(诸如事务指令)的逻辑。作为解码器1025的识别结果,架构或核1001采取特定的、预定义的动作来执行与适当指令相关联的任务。注意以下是重要的:这里描述的任何任务、块、操作和方法可以响应于单个或多个指令而执行;一些指令可以是新指令或旧指令。注意到,在一实施例中,解码器1026认出相同的ISA(或其子集)。或者,在异构核环境中,解码器1026认出第二ISA(或是第一ISA的子集,或是不同的ISA)。

在一示例中,分配器和重命名器块1030包括分配器以保留资源(诸如寄存器文件)以存储指令处理结果。然而,线程1001a和1001b可能能进行无序执行,其中分配器和重命名器块1030也保留其他资源,诸如用于跟踪指令结果的记录器缓冲器。单元1030也可以包括寄存器重命名器以便将程序/指令引用寄存器重命名为处理器1000内部的其他寄存器。记录器/隐退单元1035包括组件,诸如上述记录器缓冲器、负载缓冲器以及存储缓冲器,用以支持无序执行以及无序执行的指令的稍候有序隐退。

在一实施例中,调度器和执行单元块1040包括调度单元以便在执行单元上调度指令/操作。例如,浮点指令在执行单元的一部分上被调度,该部分具有可用的浮点执行单元。也包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳跃执行单元、负载执行单元、存储执行单元以及其他已知的执行单元。

较低级的数据高速缓存和数据转换缓冲器(D-TLB)1050被耦合至(多个)执行单元1040。数据高速缓存用于存储元件上最近使用/操作的诸如数据操作数,数据操作数可能被保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理的地址转换。作为一具体示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。

这里,核1001和1002共享对较高级或更高级高速缓存的访问,诸如与芯片上接口1010相关联的第二级高速缓存。注意到,较高级或更高级是指自(多个)执行单元提升或进一步提升的高速缓存级别。在一实施例中,较高级的高速缓存是最后级数据高速缓存-处理器1000上存储器层级中的最后高速缓存,诸如第二或第三级数据高速缓存。然而,较高级高速缓存不限于此,因为它可以与指令高速缓存相关联或者包括指令高速缓存。取而代之,痕迹(trace)高速缓存(一类指令高速缓存)可以耦合在解码器1025之后以存储最近解码的痕迹。这里,指令可能是指宏指令(即,解码器所认出的通用指令),宏指令可以解码为许多微指令(微操作)。

在所述配置中,处理器1000还包括芯片上接口模块1010。历史上,处理器1000外部的计算机系统中已经包括了存储器控制器,以下更详细地描述存储器控制器。在该场景下,芯片上接口101用于与处理器1000外部的设备通信,诸如系统存储器1075、芯片集(通常包括用于连接至存储器1075的存储器控制器中枢以及用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路。在此场景中,总线1005可以包括任何已知的互连,诸如多点总线、点对点互连、串行互连、并行总线、相干(例如,高速缓存相干)总线、分层协议架构、差分总线以及GTL总线。

存储器1075可以对处理器1000专用,或者与系统中的其他设备共享。存储器1075的常用类型示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知存储设备。注意到,设备1080可以包括图形加速器、耦合至存储器控制器中枢的处理器或卡、耦合至I/O控制器中枢的数据存储器、无线收发机、闪速设备、音频控制器、网络控制器或其他已知设备。

然而最近,随着更多的逻辑和设备被集成于单个芯片(诸如SOC)上,这些设备的每一个可以被结合于处理器1000上。例如,在一实施例中,存储器控制器中枢与处理器1000在相同的包和/或芯片上。这里,核的一部分(核上部分)1010包括一个或多个控制器,用于与诸如存储器1075或图形设备1080等其他设备相接口。包括互连以及用于与这些设备相接口的控制器在内的配置通常被称为核上(即,非核配置)。作为一示例,芯片上接口1010包括用于芯片上通信的环形互连以及用于芯片外通信的高速串行点对点链路1005。但是,在SOC环境中,可以在单个芯片或集成电路上集成甚至更多的设备(诸如网络接口、协处理器、存储器1075、图形处理器1080以及任何其他已知的计算机设备/接口)以便以高功能和低功耗来提供小的形状因子。

在一实施例中,处理器1000能够执行编译器、优化和/或转换器代码1077以编译、转换和/或优化应用码1076,以支持这里所述的装置和方法或者与这里所述的装置和方法相接口。编译器通常包括将源文本/代码转换成目标文本/代码的程序或程序集。通常,用编译器对程序/应用码所作的编译在多个阶段中被完成,并且多次通过以将高级编程语言代码转换成低级机器或汇编语言代码。然而,对于简单编译仍可利用单通编译器。编译器可以使用任何已知的编译计数并且执行任何已知的编译器操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码转换以及代码优化。

较大的编译器通常包括多个阶段,但通常这些阶段被包括于两个通用阶段:(1)前端,即,一般是词法处理、语义处理及一些转换/优化所发生的阶段;以及(2)后端,即,一般是分析、转换、优化和代码生成所发生的阶段。一些编译器适用于中间,说明编译器的前端和后端之间的划分是模糊的。结果,编译器的插入引用、关联、生成或其他操作可以发生于任一上述阶段或通过中、以及编译器的任何其他已知阶段或通过中。作为说明性的示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段插入调用/操作、然后在转换阶段将调用/操作转换成较低级代码。注意到在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,以及优化代码供运行时间执行。作为一具体的说明性示例,二进制代码(已编译的代码)可以在运行时间被动态地优化。这里,程序代码可以包括动态优化代码、二进制代码或者它们的组合。

类似于编译器,诸如二进制转换器这样的转换器或统计地或动态地转换代码,以优化和/或转换代码。因此,对代码执行、应用代码、程序代码或其他软件环境的引用可以是指:(1)或动态地或统计地执行编译器程序、优化代码优化器、或转换器,以编译程序代码、维持软件结构、执行其他操作、优化代码、或者转换代码;(2)执行包括操作/调用的主程序代码,主程序代码诸如已被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如库),以维持软件结构、执行其他软件相关的操作、或者优化代码;或(4)以上的组合。

限制参照图11,示出多核处理器的实施例的框图。如图11的实施例所示,处理器1100包括多个域。具体而言,核域1130包括多个核1130A-1130N,图形域1160包括具有媒体引擎1165的一个或多个图形引擎,以及系统代理域1110。

在各个实施例中,系统代理域1110实施功率控制事件和功率管理,使得域1130和1160的个别单元(例如,核和/或图形引擎)是独立可控的,以便根据给定单元内出现的活动(或不活动)以适当的功率模式/级别(例如,活动、涡轮(turbo)、睡眠、冬眠、深睡眠或其他高级配置功率接口类似的状态)进行动态地操作。域1130和1160的每一个可以以不同的电压和/或功率进行操作,而且,域内的每一个别单元可能以独立的频率和电压进行操作。注意到,虽然仅以三个域示出,但可以理解,本发明的范围不限于此,其他实施例中可以存在附加的域。

如图所示,除了各种执行单元和附加的处理元件以外,每个核1130还包括低级别高速缓存。这里,各个核彼此耦合,且耦合至共享高速缓存存储器,共享高速缓存存储器的形式为最后级高速缓存(LLC)的多个单元或片1140A-1140N;这些LLC通常包括存储器和高速缓存控制器功能并且在多个核间共享、也可能在图形引擎间共享。

如图所示,环形互连1150将核耦合在一起,并且经由多个环停止处1152A―1152N在核域1130、图形域1160和系统代理电路1110间提供互连。如图11所示,互连1150用于携带各种信息,包括地址信息、数据信息、确认信息以及监听/无效信息。尽管图示了环形互连,但是可以利用任何已知的芯片上互连或构造。作为一说明性示例,可以以类似方式使用以上讨论的一些构造(例如,另一芯片上互连、芯片上系统构造(OSF)、高级微处理器总线架构(AMBA)互连、多维网格构造或其他已知的互连架构)。

如进一步描述,系统代理域1110包括显示引擎1112,用于提供对到相关联显示器的接口的控制。系统代理域1110可包括其他单元,诸如:提供了到系统存储器(例如,以多个DIMM实现的DRAM)的接口;的集成的存储器控制器1120;用于执行存储器相干操作的相干逻辑1122。可存在多个接口以便在处理器和其他电路间进行互连。例如,在一实施例中,提供了至少一个直接媒体接口(DMI)1116接口以及一个或多个PCIeTM接口1114。显示引擎以及这些接口一般经由PCIeTM桥1118耦合至存储器。进一步,可以提供一个或多个其他接口,用于在其他代理之间的通信,其他代理诸如附加的处理器或其他电路。

现在参照图12,示出代表性核的框图;具体而言,示出核(诸如图11的核1130)的后端的多个逻辑块。通常,图12所示的结构包括具有前端单元1270的无序处理器,前端单元用于取回传入指令、执行各种处理(例如,高速缓存、解码、分支预测等)并将指令/操作一起传递至无序(OOO)引擎1280。OOO引擎1280对已解码的指令执行进一步的处理。

具体而言在图12的实施例中,无序引擎1280包括分配单元1282,分配单元1282用于自前端单元1270接收已解码指令,并且将已解码指令分配给诸如寄存器等适当的资源,已解码指令的形式可以是一个或多个微-指令即微指令。接着,指令被提供给保留站1284,保留站1284保留资源并且调度资源供在多个执行单元1286A-1286N之一上执行。可以存在各种类型的执行单元,包括例如算术逻辑单元(ALU)、负载和存储单元、向量处理单元(VPU)、浮点执行单元等等。来自这些不同的执行单元的结果被提供给记录缓冲器(ROB)1288,记录缓冲器1288记录无序的结果并返回它们以纠正程序次序。

仍然参照图12,注意到前端单元1270和无序引擎1280被耦合至存储器层级的不同级别。具体而言示出指令集高速缓存1272,指令集高速缓存1272又耦合至中级高速缓存1276,中级高速缓存1276又耦合至最后级高速缓存1295。作为一示例,单元1290类似于图8的系统代理810。如以上讨论的,非核1290与系统存储器1299通信,在所示实施例中,系统存储器1299经由ED RAM实现。还注意到,无序引擎1280内的各个执行单元1286与第一级高速缓存1274通信,第一级高速缓存1274也与中级高速缓存1276通信。还注意到,附加的核1230N-2…1230N可耦合至LLC 1295。尽管在图12的实施例中在此高级别示出,也可以理解,可以存在各种更改和附加的组件。

转至图13,示出了形成有处理器的示例性计算机系统的框图,处理器包括执行单元以执行指令,其中,多个互连的一个或多个按照本发明一实施例来实现一个或多个特征。根据本发明,诸如在此处所述的实施例中,系统1300包括一组件(诸如处理器1302)以采用执行单元,执行单元包括用于执行算法来处理数据的逻辑。系统1300代表基于PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的的处理系统,然而也可以使用其他系统(包括具有其他微处理器、工程师工作站、机顶盒等的PC)。在一实施例中,样本系统1300执行可以从华盛顿雷德蒙的微软公司获得的WINDOWSTM操作系统的一个版本,然而也可以使用其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面。因此,本发明的实施例不限于硬件电路和软件的任何具体组合。

实施例不限于计算机系统。本发明的替代实施例可用于诸如手持设备和嵌入式应用的其他设备中。手持设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)和手持PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、或者可按照至少一个实施例执行一个或多个指令的任何其他系统。

在该所示实施例中,处理器1302包括一个或多个执行单元1308以实现用于执行至少一个指令的算法。可以在单处理器台式或服务器系统的上下文中描述一个实施例,但是替代的实施例可以被包括在多处理器系统中。系统1300是“中枢”系统架构的一个示例。计算机系统1300包括处理器1302以处理数据信号。作为一个说明性示例,处理器1302包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、极长指令字(VLIW)微处理器、实现指令集的组合的处理器、或者任何其他处理器设备(诸如例如数字信号处理器)。处理器1302耦合至处理器总线1310,处理器总线1310在处理器1302和系统1300中的其他组件之间发射数据信号。系统1300的多个元件(例如,图形加速器1312、存储器控制器中枢1316、存储器1320、I/O控制器中枢1324、无线收发机1326、闪速BIOS 1328、网络控制器1334、音频控制器1336、串行扩展端口1338、I/O控制器1340等)执行对于本领域技术人员熟知的它们的常规功能。

在一实施例中,处理器1302包括级1(L1)内部高速缓存存储器1304。取决于架构,处理器1302可以具有单个内部高速缓存,或多个级别的内部高速缓存。取决于特定实现和需求,一个实施例包括内部和外部高速缓存两者的组合。寄存器文件1306用于将不同类型的数据存储于各种寄存器中,各种寄存器包括整数寄存器、浮点寄存器、向量寄存器、分组(banked)寄存器、影子寄存器、检查点寄存器、状态寄存器以及指令指针寄存器。

执行单元1308也驻留于处理器1302中,执行单元1308包括用于执行整数和浮点运算的逻辑。在一实施例中,处理器1302包括用于存储微代码的微代码(微码)ROM,微代码在被执行时用于执行特定宏指令的算法或处理复杂情况。这里,微代码可能可被更新以实施处理器1302的逻辑错误/修复。对于一个实施例,执行单元1308包括用于处理分组指令集1309的逻辑。通过将分组指令集1309包括于通用处理器1302的指令集中,连同用于执行指令的相关联电路,可以使用通用处理器1302中的分组数据来执行由许多多媒体应用所使用的操作。由此,通过使用处理器的数据总线的完全宽度来对分组数据执行操作,可以更有效地加速和执行许多多媒体应用。这潜在地消除了跨处理器的数据总线传递较小数据单元以执行一个或多个操作的需求,一次传递一个数据元素。

执行单元1308的替代实施例也可用于微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。系统1300包括存储器1320。存储器1320包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储器设备。存储器1320存储由数据信号所表示的指令和/或数据,数据信号要由处理器1302执行。

注意到,本发明的上述特征或方面的任一个可用于图13所示的一个或多个互连上。例如,芯片上互连(ODI)(未示出)用于耦合处理器1302的内部单元,芯片上互连实现了上述本发明的一个或多个方面。或者,本发明与以下相关联:处理器总线1310(例如其他已知的高性能计算互连)、到存储器1320的高带宽存储器路径1318、到图形加速器1312的点对点链路(例如,外围组件互连快线(PCIe)兼容的构造)、控制器中枢互连1322、用于耦合其他所示组件的I/O或其他互连(例如,USB、PCI、PCIe)。这些组件的一些示例包括音频控制器1336、固件中枢(闪速BIOS)1328、无线收发机1326、数据存储器1324、包含用户输入和键盘接口1342的的传统I/O控制器1310、诸如通用串行总线(USB)的串行扩展端口1338、以及网络控制器1334。数据存储设备1324可包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。

现在参照图14,示出按照本发明一实施例的第二系统1400的框图。如图14所示,微处理器1400是点对点互连系统,并且包括经由点对点互连1450耦合的第一处理器1470和第二处理器1480。处理器1470和1480的每一个可以是处理器的某一版本。在一实施例中,1452和1454是串行的点对点相干互连(诸如高性能架构)的一部分。结果,本发明可以在QPI架构内实现。

尽管示出仅有两个处理器1470、1480,但应当理解,本发明的范围不限于此。在其他实施例中,一个或多个附加的处理器可存在于给定处理器中。

所示的处理器1470和1480分别包括集成的存储器控制器单元1472和1482。处理器1470还包括点对点(P-P)接口1476和1478作为其总线控制器单元的一部分;类似地,第二处理器1480包括P-P接口1486和1488。处理器1470、1480可以使用接口电路1478、1488经由点对点(P-P)接口1450交换信息。如图14所示,IMC 1472和1482将处理器耦合至相应的存储器,也就是存储器1432和存储器1434,存储器1432和存储器1434可以是本地附着于相应处理器的主存储器的部分。

处理器1470、1480的每一个均使用点对点接口电路1476、1494、1486、1498经由个别的P-P接口1452、1454与芯片集1490交换信息。芯片集1490也根据高性能图形互连1439,经由接口电路1492与高性能图形电路1438交换信息。

共享高速缓存(未示出)可以被包括于或任一处理器内或两个处理器外;仍经由P-P互连与处理器相连接,使得在处理器被置于低功率模式时,任一个或两个处理器的本地高速缓存信息可以被存储于共享高速缓存中。

芯片集1490可以经由接口1496耦合至第一总线1416。在一实施例中,第一总线1416可以是外围组件互连(PCI)总线、或者诸如PCI Express(快速)总线这样的总线或者另一第三代I/O互连总线,然而本发明的范围不限于此。

如图14所示,各种I/O设备1414耦合至第一总线1416,连同将第一总线1416耦合至第二总线1420的总线桥1418。在一实施例中,第二总线1420包括低引脚数(LPC)总线。各种设备耦合至第二总线1420,包括例如键盘和/或鼠标1422、通信设备1427以及诸如磁盘驱动器或其他大容量存储设备的存储单元1428,在一实施例中,存储单元通常包括指令/代码和数据1430。而且,所示音频I/O 1424耦合至第二总线1420。注意到其他架构也是可能的,其中所包括的组件和互连架构可以变化。例如,取代图14的点对点架构,系统可以实现多点总线或其他这样的架构。

接下来转至图15,描述了按照本发明的芯片上系统(SOC)设计的实施例。作为具体的说明性示例,SOC 1500被包括于用户设备(UE)中。在一实施例中,UE是指要由终端用户用来传送的任何设备,诸如手持电话、智能电话、平板电脑、超薄笔记本电脑、具有宽带适配器的笔记本电脑或者任何其他类似的通信设备。通常UE连至基站或节点,基站或节点可能从性质上对应于GSM网络中的移动站(MS)。

这里,SOC 1500包括2个核――1506和1507。类似于以上的讨论,核1506和1507可以符合指令集架构,诸如基于架构核TM的处理器、高级微设备公司(AMD)的处理器、基于MIPS的处理器、基于ARM的处理器或者其消费者以及它们的许可证或采用者。核1506和1507耦合至高速缓存控件1508,高速缓存控件1508与总线接口单元1509和L2高速缓存1511相关联以便与系统1500的其他部分通信。互连1510包括芯片上互连,诸如IOSF、AMBA或以上讨论的其他互连,芯片上互连可能实现此处描述的一个或多个方面。

互连1510向其他组件提供通信信道,其他组件诸如订户身份模块(SIM)1530、SDRAM控制器1540、闪存控制器1545、外围控件1550、GPU1515等等,其中,订户身份模块(SIM)1530用于与SIM卡、引导rom 1535相接口,以保留由核1506和1507执行以初始化和引导SOC 1500的引导代码;SDRAM控制器1540用于与外部存储器(例如,DRAM 1560)相接口;闪存控制器1545用于与非易失性存储器(例如,闪存1565)相接口;外围控件1550(例如,串行外围接口)用于与外围设备、视频编解码器1520和视频接口1525相接口以显示和接收输入(例如,触控输入);GPU 1515用于执行图形相关的计算。任何这些接口可以结合这里所述的本发明的各方面。

此外,系统示出用于通信的外围设备,诸如蓝牙模块1570、3G调制解调器1575、GPS 1585及WiFi 1585。注意到如上所述,UE包括用于通信的无线电。结果,这些外围设备通信模块不是全部需要的。然而,在UE中,要包括用于外部通信的某一形式的无线电。

尽管已经相对于有限数量的实施例描述了本发明,但是本领域的技术人员会理解从中得出的许多修改和变化。所附权利要求书意图覆盖所有这些修改和变化,它们落在本发明的实际精神和范围内。

设计可以经历各种阶段,从创建到仿真到制造。表示设计的数据可以以许多方式来表示该设计。首先,如仿真中有用的,硬件可以用硬件描述语言或另一功能描述语言来表示。此外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管门的电路级模型。而且,许多设计在某一阶段达到了表示各个设备在硬件模型中的物理位置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定各个特征在用于生产集成电路的掩膜的不同掩膜层上存在或不存在的数据。在设计的任何表示中,数据可以被存储于任何形式的机器可读介质中。存储器或者诸如磁盘的磁性或光学存储器可以是机器可读介质,机器可读介质用于存储经由光波或电波发射的信息,光波或电波被调制或以其他方式生成以发射这样的信息。当发射指示或携带代码或设计的电载波时,就电信号的复制、缓冲或重传的方面来说,制作新的副本。由此,通信提供商或网络提供商可以至少暂时地在有形的机器可读介质上存储体现本发明实施例的技术的项目,所述项目诸如被编码为载波的信息。

这里使用的模块是指硬件、软件和/或固件的任何组合。作为一示例,模块包括与非暂时性介质相关联的硬件(诸如微控制器),用于存储适合由微控制器执行的代码。因此,在一实施例中,对模块的引用是引用硬件,硬件被专门配置为认出和/或执行要被保持于非暂时性介质上的代码。而且,在另一实施例中,模块的使用是指包括代码的非暂时性介质,代码专门适用于由微处理器执行以便执行预定的操作。在还有另一实施例中,如可推断的,术语模块(在该示例中)是指微处理器和非暂时性介质的组合。通常,图示为分开的模块边界通常会变化并且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或它们的组合,而可能保留某些独立的硬件、软件或固件。在一实施例中,术语逻辑的使用包括诸如晶体管、寄存器等硬件,或者诸如可编程逻辑器件等其他硬件。

在一实施例中,短语“被配置为”的使用是指对装置、硬件、逻辑或元件进行排列、置于一起、制造、承诺销售、进口和/或设计以执行指定的或确定的任务。在该示例中,如果装置或其元件被设计、耦合和/或互连以执行指定的任务,则装置或元件即使未在运行也仍然“被配置成”执行所述指定的任务。作为纯说明性的示例,逻辑门可以在运算期间提供0或1。但是逻辑门“被配置成”向时钟提供使能信号不包括可能提供1或0的每个可能的逻辑门。相反,逻辑门是以在操作期间1或0输出用于启用时钟的方式耦合的门。再次注意到,术语“被配置成”的使用不要求操作,而是聚焦于装置、硬件和/或元件的潜伏状态,其中在潜伏状态中,装置、硬件和/或元件被设计成在装置、硬件和/或元件正在操作时执行特定的任务。

而且,在一实施例中,短语“用于”、“能够/以”以及或者“可操作用于”的使用是指装置、硬件和/或元件以能以指定方式使用装置、硬件和/或元件的方式被设计。注意到以上,在一实施例中,“用于”、“能够”或“可操作用于”的使用是指装置、硬件和/或元件的潜伏状态,其中装置、硬件和/或元件不在操作,但是以能以指定方式使用装置的方式被设计。

如此处使用的,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑的值的使用也被称为1和0,仅表示二进制逻辑状态。例如,1是指高逻辑电平,0是指低逻辑电平。在一实施例中,存储单元(诸如晶体管或闪存单元)可能能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中值的其他表示。例如,十进制数10也可以被表示为二进制值1010和十六进制字母A。因此,值包括能被保持在计算机系统中的信息的任何表示。

此外,状态可由值或值的部分表示。作为一示例,第一值(诸如逻辑1)可以表示缺省或初始状态,而第二值(诸如逻辑0)可以表示非缺省状态。此外,在一实施例中,术语重置和设置分别指缺省的和更新的值或状态。例如,缺省的值可能包括高逻辑值,即重置,而更新的值可能包括低逻辑值,即设置。注意到,可以使用值的任何组合来表示任何数量的状态。

以上提出的方法、硬件、软件、固件或代码的实施例可以经由机器可存取、机器可读、计算机可存取或计算机可读介质上存储的指令或代码来实现,指令或代码可由处理元件执行。非暂时性的机器可存取/可读介质包括以可由机器(诸如计算机或电子系统)读取的形式提供(即,存储和/或发射)信息的任何机制。例如,非暂时性的机器可存取介质包括随机存取存储器(RAM)(诸如静态RAM(SRAM)或动态RAM(DRAM));ROM;磁性或光学存储介质;闪存设备;电子存储设备;光学存储设备;声学存储设备;其他形式的用于保持从瞬时(传播的)信号接收到的信息的存储设备等等,这些其他存储设备区别于可以接收信息的非暂时性介质。

用于对逻辑编程以执行本发明多个实施例的指令可以被存储在系统中的存储器内,诸如DRAM、高速缓存、闪存或其他存储器。而且,指令可以经由网络或通过其他计算机可读媒介来分布。由此,机器可读介质可以包括用于以机器(例如计算机)可读的形式存储或发射信息的任何机制,包括但不限于:软盘、光盘、压缩盘、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪存或者有形的、机器可读存储器,这些存储器用于经由电学、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)。因而,计算机可读介质包括适用于以机器(例如,计算机)可读形式存储或发射电子指令或信息的任何类型的有形机器可读介质。

以下示例关于按照本说明书的实施例。一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法来初始化链路,其中,链路要包括多个道,发射机和接收机要与多个巷道中的每个巷道耦合,链路的重新初始化要包括在每一巷道上发射预定义的序列,其中重新初始化在不终止链路的情况下提供。

在至少一个示例中,预定义的序列要从发射机被发送至接收机,接收机要将预定义的序列重复发送到发射机。

在至少一个示例中,序列包括电空闲退出有序集(EIEOS)。

在至少一个示例中,序列还包括训练序列的多个实例。

在至少一个示例中,要重复的EIEOS是根据最小频率的序列。

在至少一个示例中,重复序列直到链路被初始化。

一个或多个示例还可以提供验证预定义序列的接收实例以检测链路上的代理。

在至少一个示例中,链路包括差分串行数据链路。

在至少一个示例中,序列在重置状态期间被发送,以便发信号通知自重置状态退出。

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以在差分串行数据链路的多个道上将预定义序列发射至连接至该数据链路的另一实体、自该另一实体接收预定义序列的确认、以及使用该预定义序列来实施数据链路的初始化。

在至少一个实施例中,飞片可以通过数据链路自第一设备被发送至第二设备。第一第二设备可包括微处理器、图形加速器及其他设备。

以下示例关于按照该说明书的实施例。一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以在包括多个巷道的链路上在每一个巷道上检测预定义序列,并且基于预定义序列的检测来确定另一代理的状态。

一个或多个示例还可将预定义序列发回音至该另一代理。

在至少一个示例中,序列包括EIEOS,预定义序列的检测包括序列的验证。

在至少一个示例中,序列的验证至少部分基于标识该EIEOS根据预定义的频率被重复。

在至少一个示例中,序列在整个特定链路初始化状态时被重复。

在至少一个示例中,序列指示初始化状态。

在至少一个示例中,初始化状态被包括在链路的重新初始化中。

在至少一个示例中,序列在重置状态期间被检测,并且指示自重置状态退出。

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以监视链路初始化期间的循环,并且响应于确定初始化期间的不成功循环而使链路初始化挂起。

一个或多个示例还可在初始化期间在状态机内维持循环的计数。

在至少一个示例中,计数要被维持于使用链路通信连接的每个代理上。

在至少一个示例中,计数要在链路成功初始化时被重置。

在至少一个示例中,链路的成功初始化包括进入链路发射状态。

在至少一个示例中,循环包括重新进入链路训练状态机的重置状态。

在至少一个示例中,链路的初始化在链路训练状态机的重置状态中被挂起。

在至少一个示例中,链路的被挂起初始化要响应于来自控制器的命令而重启。

在至少一个示例中,链路具有20个巷道的链路宽度。

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以确定是否结合特定初始化状态而执行一个或多个初始化任务;以及基于确定是否执行初始化任务,应用短定时器以自特定状态转换。

一个或多个示例还可以应用第二短定时器以自第二初始化状态转换,第二短定时器的持续期不同于第一短定时器的持续期。

在至少一个示例中,短定时器基于确定不执行初始化任务而被应用。

在至少一个示例中,特定初始化状态的长定时器基于确定执行初始化任务而被应用。

在至少一个示例中,确定是基于短定时器被启用的指示。

在至少一个示例中,短定时器由基于软件的控制器启用。

在至少一个示例中,短定时器基于确定与初始化任务相关联的配置已完成而被启用。

在至少一个示例中,链路包括差分串行数据链路。

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以在第一模式中以第一速度发射飞片、以及在第二模式中以第二速度发射飞片,其中锁相环(PLL)速度在第一模式和第二模式中相同。

在至少一个示例中,第一速度包括操作速度,第二速度包括慢速度。

在至少一个示例中,慢速度要由操作速度仿真。

在至少一个示例中,仿真慢速度包括以操作速度发送一系列位以仿真慢模式中的位。

在至少一个示例中,物理层逻辑还用于从第一速度转换为第二速度。

在至少一个示例中,转换是基于至少一个部分基于软件的控制器的请求。

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以:确定第一设备的操作速度,第一设备要在链路上被连至第二设备;确定第二设备的操作速度;以及确定要由第一和第二设备在数据在链路上的传输期间应用的常用的慢速度。

在至少一个示例中,常用的慢速度在链路初始化期间确定。

在至少一个示例中,第一设备的操作速度不同于第二设备的操作速度,链路的初始化还包括确定常用的操作速度。

在至少一个示例中,常用的操作速度是基于第一和第二设备的操作速度中的较慢者。

在至少一个示例中,确定常用的慢模式包括:确定要应用于第一设备的操作速度以实现常用慢速度的第一比率;以及确定要应用于第二设备的操作速度以实现常用慢速度的第二比率。

在至少一个示例中,常用慢速度要由操作速度来仿真。

在至少一个示例中,仿真慢速度包括以相应的操作速度来发送一系列位以便仿真常用慢模式中的位。

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY包括同步(sync)计数器,且其中PHY用于发射电空闲退出有序集(EIEOS),电空闲退出有序集(EIEOS)与和训练序列相关联的同步计数器对齐。

在至少一个示例中,来自同步计数器的同步计数器值不在每个训练序列期间被交换。

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY包括同步(sync)计数器,且其中PHY用于发射电空闲退出有序集(EIEOS),电空闲退出有序集(EIEOS)与和训练序列相关联的同步计数器对齐。

在至少一个示例中,来自同步计数器的同步计数器值在每个训练序列期间不被交换。

在至少一个示例中,与同步计数器的EIEOS对齐要充当一代理,该代理用于在每个训练序列期间交换来自同步计数器的同步计数器值。

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),PHY用于包括软件可修改寄存器和PHY状态机,软件可修改寄存器包括控制字段,PHY状态机用于在多个状态间转换,其中PHY状态机用于基于寄存器的控制字段的第一值来保持第一状态和第二状态之间的转换。

在至少一个示例中,PHY状态机用于响应于软件将寄存器的控制字段更新至第二值而在第一状态和第二状态之间转换。

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),PHY用于包括PHY状态机以在多个状态之间转换,其中PHY状态机能够基于握手事件自第一状态转换至第二状态、以及基于主定时器事件将PHY自第三状态转换至第四状态。

在至少一个示例中,PHY状态机能够基于主定时器事件结合次定时器事件而将PHY自第五状态转换至第六状态。

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY用于以第一速度发射飞片、以及以第二速度发射飞片,且其中锁相环(PLL)速度在快模式和慢模式中相同。

在至少一个示例中,第一速度是慢速度,第二速度是快速度。

在至少一个示例中,PHY用于以慢速度发射飞片包括:在不改变PLL速度的情况下,PHY以快速度连续多次发射飞片的位,以仿真慢速度下的该位。

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY用于在慢模式中以慢速度发射飞片、以及在快模式中以快速度发射飞片,快速度大于2倍的慢速度,且其中锁相环(PLL)速度在快模式和慢模式中相同。

本说明书中通篇引用“一个实施例”或“一实施例”意指结合本发明至少一个实施例中所包括的实施例所描述的特定的特征、结构或特性。因此,本说明书中各处出现的短语“在一个实施例中”或“在一实施例中”不必要全部指同一个实施例。而且,特定的特征、结构或特性可以以任何适当的方式被组合在一个或多个实施例中。

在以上说明书中,已经参照具体的示例性实施例给出了详细描述。然而显而易见的是,可以对其作出各种修改和变化,而不背离所附权利要求书中所提出的本发明的更宽的精神和范围。因此,说明书和服务被视为是示意性的,而不是限制性的。而且,实施例及其他示例性语言的以上使用不必要是指相同的实施例或相同的示例,而可以指不同的和相异的实施例,以及可能相同的实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1