用于混合通道停转或无锁总线架构的方法、设备、系统的制作方法

文档序号:6540693阅读:75来源:国知局
用于混合通道停转或无锁总线架构的方法、设备、系统的制作方法
【专利摘要】本发明涉及用于混合通道停转或无锁总线架构的方法、设备、系统。用于恢复总线的时钟的方法、设备和系统包括:指派主通道;将非主通道锁定到主通道;在数据不活动期间填充主通道;在数据不活动期间使非主通道闲置;维持主通道的时钟;以及使非主通道的时钟从主通道恢复。用于以不同步时钟传送和接收串行数据的方法、设备和系统包括:传送位流中数据,该数据具有多位冗余;接收位流中的数据;对位流中的数据的值采样;使用对于位流中数据的值的表决;以及从表决确定数据的正确逻辑状态。
【专利说明】用于混合通道停转或无锁总线架构的方法、设备、系统

【技术领域】
[0001]本公开关于计算系统,并且特别地涉及(但不专用)互连。

【专利附图】

【附图说明】
[0002]图1图示包括多核处理器的计算系统的实施例。
[0003]图2A、B图示具有多个通道的单向数据总线的实施例。
[0004]图3A、B图示混合通道停转(stalling)总线的实施例。
[0005]图4A、B图示双单工(dual simplex)数据链路的实施例。
[0006]图5A、B、C图示具有多位冗余和采用表决的采样的无锁总线的实施例。
[0007]图6图示用于使时钟从主通道恢复的混合通道停转的方法的实施例。
[0008]图7图示使用多位冗余并且采用表决来采样以确定正确逻辑状态的无锁总线方法的实施例。

【具体实施方式】
[0009]在下列描述中,阐述许多特定细节,例如特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统部件、特定测量/高度、特定处理器流水线阶段和操作等的示例,以便提供本发明的全面理解。然而,不必采用这些特定细节来实践本发明,这对于本领域内技术人员将是明显的。在其他实例中,未详细描述众所周知的部件或方法,例如特定和备选处理器架构、对于描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现、采用代码的算法的特定表达、特定掉电和选通技术/逻辑和计算机系统的其他特定操作细节以便避免不必要地混淆本发明。
[0010]尽管下列实施例可参考特定集成电路(例如在计算平台或微处理器中)中的能量节约和能量效率而描述,其他实施例能适用于其他类型的集成电路和逻辑装置。本文描述的实施例的相似技术和教导可适用于其他类型的电路或半导体装置,其也可从较好的能量效率和能量节约获益。例如,公开的实施例不限于台式电脑系统或Ultrabooks "*并且还可在例如手持装置、平板电脑、其他薄的笔记本、芯片上系统(SOC)装置和嵌入式应用等其他装置中使用。手持装置的一些示例包括蜂窝电话、互联网协议装置、数字拍摄装置、个人数字助理(PDA)和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、S0C、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下文教导的功能和操作的任何其他系统。此外,本文描述的方法、设备和系统不限于物理计算装置,而还可涉及对于能量节约和效率的软件优化。如将在下文的描述中变得很明显,本文描述的方法、设备和系统的实施例(无论是关于硬件、固件、软件或其组合)对于进一步与性能考虑平衡的‘绿色技术’是必不可少的。
[0011]随着计算系统的进展,其中的部件正变得更复杂。因此,用于在部件之间耦合和通信的互连架构在复杂性上也增加来确保满足最佳部件操作的带宽要求。此外,不同的市场细分需要互连架构的不同方面来适应市场的需求。例如,服务器需要更高的性能,而移动生态系统有时能够为了功率节省而牺牲整体性能。甚至,大部分构造的单一目的是以最大功率节省来提供最高可能性能。在下文,论述许多互连,其将潜在地从本文描述的本发明的方面获益。
[0012]参考图1,描绘计算系统的框图的实施例,该计算系统包括多核处理器。处理器100包括任何处理器或处理装置,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协调处理器、SOC或执行代码的其他装置。在一个实施例中,处理器100包括至少两个核一核101和102,其可包括不对称核或对称核(图示的实施例)。然而,处理器100可包括任何数量的处理元件,其可以是对称或不对称的。
[0013]在一个实施例中,处理元件指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽(thread slot)、线程、过程单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他元件,用于保持处理器的状态,例如执行状态或架构状态。也就是说,在一个实施例中,处理元件指要独立与例如软件线程、操作系统、应用等代码或其他代码关联的任何硬件。物理处理器(或处理器插槽)典型地指集成电路,其潜在地包括任何数量的其他处理元件,例如核或硬件线程。
[0014]代码通常指位于集成电路上来维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源关联。与核相比之下,硬件线程典型地指位于集成电路上维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如可以看到,当共享某些资源并且其他专用于架构状态时,硬件线程和核的命名重叠。甚至经常,核和硬件线程可由操作系统视为个体逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。
[0015]物理处理器100 (如在图1中图示的)包括两个核一核101和102。在这里,核101和102视为对称核,即具有相同配置、功能单元和/或逻辑的核。在另一个实施例中,核101包括无序处理器核,而核102包括有序处理器核。然而,核101和102可单独从任何类型的核选择,例如原生核、软件管理核、适于执行原生指令集架构(ISA)的核、适于执行转译的ISA的核、共同设计的核或其他已知核。在异构核环境(即,非对称核)中,例如二进制转译等一些形式的转译可用于调度或执行一个或两个核上的代码。甚至对于进一步的论述,当核102中的单元采用描绘的实施例中的相似方式操作时,在核101中图示的功能单元在下文进一步详细描述。
[0016]如描绘的,核101包括两个硬件线程1la和101b,其也可称为硬件线程槽1la和1lb0因此,软件实体(例如操作系统)在一个实施例中潜在地将处理器100视为四个独立处理器,即能够并发执行四个软件线程的四个逻辑处理器或处理元件。如上文提到的,第一线程与架构状态寄存器1la关联,第二线程与架构状态寄存器1lb关联,第三线程可与架构状态寄存器102a关联,并且第四线程可与架构状态寄存器102b关联。在这里,架构状态寄存器(101a、101b、102a和102b)中的每个可称为处理元件、线程槽或线程单元,如上文描述的。如图示的,架构状态寄存器1la在架构状态寄存器1lb中复制,因此对于逻辑处理器1la和逻辑处理器101b,能够存储个体架构状态/上下文。在核101中,其他较小的资源(例如分配器和重命名器块130中的指令指针和重命名逻辑)还可对于线程1la和1lb复制。一些资源、例如重排序器/引退单元135中的重排序缓冲器、指令转译后备缓冲器(1-TLB)120、加载/存储缓冲器和队列等可通过分区而共享。例如通用内部寄存器、页表基址寄存器、低级数据高速缓存和数据转译后备缓冲器(D-TLB) 115、执行单元140和无序单元135的部分等其他资源潜在地被完全共享。
[0017]处理器100通常包括其他资源,其可完全被共享、通过分区而共享或被处理元件专用/专用于处理元件。在图1中,图示具有处理器的说明性逻辑单元/资源的纯粹示范性处理器的实施例。注意处理器可包括或省略这些功能单元中的任一个,以及包括任何其他已知的功能单元、逻辑或未描绘的固件。如图示的,核101包括简化的代表性无序(000)处理器核。但有序处理器可在不同的实施例中使用。000核包括用于预测要执行/采取的分支的分支目标缓冲器120,和用于存储对于指令的地址转译条目的1-TLB 120。
[0018]核101进一步包括解码模块125,其耦合于提取单元120来对提取的元素解码。在一个实施例中,提取逻辑包括分别与线程槽1laUOlb关联的个体定序器。通常,核101与第一 ISA关联,其限定/规定能在处理器100上执行的指令。通常,是第一 ISA的部分的机器代码指令包括指令的一部分(称为操作码),其引用/规定要执行的指令或操作。解码逻辑125包括电路,其识别来自它们的操作码的这些指令并且在流水线中传递解码指令用于如由第一 ISA限定的那样处理。例如,如在下文更详细论述的,在一个实施例中,解码器125包括设计成识别特定指令(例如业务指令)的逻辑。由于被解码器125识别,架构或核101采取特定、预定义动作来执行与适合的指令关联的任务。重要的是要注意本文描述的任何任务、块、操作和方法可响应于单个或多个指令来执行;其中的一些可以是新的或旧的指令。注意在一个实施例中,解码器126识别相同的ISA (或其子集)。备选地,在异构核环境中,解码器126识别第二 ISA (第一 ISA的子集或截然不同的ISA)。
[0019]在一个示例中,分配器和重命名器块130包括用于保留资源(例如用于存储指令处理结果的寄存器文件)的分配器。然而,线程1la和1lb潜在地能够无序执行,其中分配器和重命名器块130还保留其他资源,例如用于跟踪指令结果的重排序器缓冲器。单元130还可包括寄存器重命名器,用于对处理器100内部的其他寄存器重命名程序/指令引用寄存器。重排序器/引退单元135包括部件,例如上文提到的重排序器缓冲器、加载缓冲器和存储缓冲器,用于支持无序执行,以及稍后无序执行的指令的有序引退。
[0020]在一个实施例中,调度器和执行单元块140包括调度器单元,用于调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元上调度浮点指令。还包括与执行单元关联的寄存器文件来存储信息指令处理结果。示范性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
[0021]较低级数据高速缓存和数据转译缓冲器(D-TLB) 150耦合于执行单元140。数据高速缓存用于存储最近使用/操作的元素,例如数据操作数,其潜在地保持在存储器一致性状态。D-TLB用于存储最近的虚拟/线性到物理地址转译。作为特定示例,处理器可包括页表结构,用于将物理存储器分成多个虚拟页。
[0022]在这里,核101和102共享对更高级或更远离高速缓存的访问,例如与芯片上接口110关联的第二级高速缓存。注意更高级或更远离指增加或变得更远离执行单元的高速缓存级别。在一个实施例中,更高级高速缓存是最后级别的数据高速缓存一在处理器100上的存储器分级结构中最后的高速缓存一例如第二或第三数据高速缓存。然而,更高级高速缓存不这样受限制并且可与指令高速缓存关联或包括指令高速缓存。踪迹高速缓存一一种类型的指令高速缓存一反而可耦合在解码器125后面来存储最近解码的踪迹。在这里,指令潜在地指宏指令(即,由解码器识别的一般指令),其可解码成许多微指令(微操作)。
[0023]在描绘的配置中,处理器100还包括芯片上接口模块110。过去,存储器控制器(其在下文更详细描述)已经包括在处理器100外部的计算系统中。在该场景中,芯片上接口110与处理器100外部的装置通信,例如系统存储器175、芯片集(通常包括用于连接到存储器175的存储器控制器中枢和用于连接外围装置的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路。并且在该场景中,总线105可包括任何已知的互连,例如多点总线、点到点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层协议架构、差分总线和射电收发器逻辑(GTL)总线。
[0024]存储器175可专用于处理器100或与系统中的其他装置共享。存储器175的类型的常见示例包括DRAM、SRAM、非易失性存储器(NVM)和其他已知的存储装置。注意装置180可包括图形加速器、耦合于存储器控制器中枢的处理器或卡、耦合于I/O控制器中枢的数据存储、无线收发器、闪存装置、音频控制器、网络控制器或其他已知装置。
[0025]然而近来,因为更多的逻辑和装置在单个晶片(例如S0C)上集成,这些装置中的每个可包含在处理器100上。例如,在一个实施例中,存储器控制器中枢在与处理器100相同的封装件和/或晶片上。在这里,核110的一部分(核上部分)包括一个或多个控制器,用于与例如存储器175或图形装置180等其他装置接口。包括用于与这样的装置接口的互连和控制器的配置通常称为核上(或非核配置)。作为示例,芯片上接口 110包括用于芯片上通信的环型互连和用于片外通信的高速串行点到点链路105。甚至,在SOC环境中,甚至更多的装置(例如网络接口、协调处理器、存储器175、图形处理器180和任何其他已知的计算机装置/接口)可在单个晶片或集成电路上集成来以高功能性和低功耗来提供小形状因子。
[0026]在一个实施例中,处理器100可执行编译器、优化和/或转译器代码177来编译、转译和/或优化应用代码176以支持本文描述的设备和方法或与之接口。编译器通常包括用于将源文本/代码转译成目标文本/代码的程序或程序集。通常,程序/应用代码通过编译器的编译可在多个阶段和遍次中执行来将高级编程语言代码变换成低级机器或汇编语言代码。甚至,单遍编译器可用于简单编译。编译器可使用任何已知的编译技术并且执行任何已知的编译器操作,例如词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
[0027]较大的编译器通常包括多个阶段,但很多时候这些阶段包括在两个一般阶段内:(I)前端,即大体上其中可发生句法分析、语义处理,以及一些变换/优化,以及(2)后端,即大体上其中可发生分析、变换、优化和代码生成。一些编译器指中间,其图示编译器的前端与后端之间模糊分界。因此,对插入、关联、生成或编译器的其他操作的引用可在任何前面提到的阶段或遍次以及编译器的任何其他已知阶段或遍次中发生。作为说明性示例,编译器潜在地可在编译的一个或多个阶段中插入操作、调用、函数等,例如调用/操作在编译的前端阶段中的插入以及然后在变换阶段期间调用/操作向较低级代码的变换。注意,在动态编译期间,编译器代码或动态优化代码可插入这样的操作/调用,以及优化代码以供运行时间期间的执行。作为特定说明性示例,二进制代码(已经编译的代码)可在运行时间期间动态优化。在这里,程序代码可包括动态优化代码、二进制代码或其组合。
[0028]例如二进制转译器等转译器可静态或动态地转译代码来优化和/或转译代码。因此,对执行代码、应用代码、程序代码或其他软件环境的引用可指:(1)动态或静态执行编译器程序、优化代码优化器或转译器来编译程序代码、维持软件结构、执行其他操作、优化代码或转译代码;(2)主程序代码的执行,该主程序代码包括操作/调用,例如已经被优化/编译的应用代码;(3)执行与主程序代码关联的其他程序代码(例如库),来维持软件结构、执行其他软件相关操作或优化代码;或(4)其组合。
[0029]注意上文描述的设备、方法和系统可在如前面提到的任何电子装置或系统中实现。作为特定说明,下文的图提供示范性系统用于如本文描述的那样使用本发明。在更详细地描述下文的系统时,公开、描述许多不同的互连并且从上文的论述再提及它们。并且如非常明显的,上文描述的进展可适用于那些互连、构造或架构中的任一个。
[0030]一个互连构造架构包括外围部件互连(PCI)Express (PCIe)来使来自不同供应商的部件和装置在开放架构中互操作并且跨越多个市场细分:客户端(台式机和移动装置)、服务器(标准和企业)以及嵌入式和通信装置。PCI Express是对很多种未来计算和通信平台限定的高性能、通用I/O互连。一些PCI属性(例如它的使用模型、加载-存储架构和软件接口)已经通过它的修订来维持,而先前的并行总线实现已经被高度能定标的完全串行接口所取代。PCI Express的更近版本使用点到点互连、基于交换机的技术和分包化协议中的进展来交付新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和错误管理是在PCI Express所支持的一些高级特征之中。
[0031]在一个实施例中,提供高性能互连(HPI)。HPI是下一代高速缓存一致、基于链路的互连。作为一个示例,HPI可在例如工作站或服务器等高性能计算平台中使用,其中PCIe典型地用于连接加速器或I/O装置。然而,HPI不这样受限制。相反,HPI可在本文描述的任何系统或平台中使用。此外,发展的各个想法可适用于其他互连,例如PCIe。此外,HPI可扩展成在与例如PCIe等其他互连相同的市场上竞争。为了支持多个装置,在一个实现中,HPI包括ISA不可知(B卩,HPI能够在多个不同的装置中实现)。在另一个场景中,HPI还可用于连接高性能I/O装置,而不只是处理器或加速器。例如,高性能PCIe装置可通过适合的转译桥而耦合于HPI (S卩,HPI到PCIe)。此外,HPI链路可采用多种方式(例如,星型、环型、网格,等)由许多基于HPI的装置使用,例如处理器。
[0032]HPI架构包括分层协议架构的限定,其与PCIe相似之处在于它也包括分层协议架构。在一个实施例中,HPI限定协议层(一致、不一致以及可选地,其他基于存储器的协议)、路由层、链路层和物理层。此外,因为许多其他互连架构的HPI包括与功率管理器、测试设计(DFT)和调试、故障处理、寄存器、安全性等相关的增强。
[0033]在串行通信链路中,数据在一个方向(例如前向或反向方向)上或在两个方向(例如前向和反向方向)上相继从点到点(例如在单个流中,例如一次一个位)地发送或传送。
[0034]与并行数据链路相比,在串行数据链路中使用更少的缆线(导线或光纤)将减少I/O引脚数、物理占用面积和成本。为了补偿,串行链路大体上具有比并行链路中的更高的数据传输速率。从而,装置、核、处理器、芯片、计算机或系统中的高速串行数据链路或数据总线可需要在灵活性(可扩展性)与延迟(开销)之间平衡。
[0035]根据特定应用中的各种度量的优先级,串行数据链路或总线架构的各种实施例可规定成处理时钟和数据恢复(CDR)。串行数据链路或总线架构的其他实施例可响应于来自用户的输入而处理⑶R。
[0036]突发和停转数据链路或总线200架构在图2A中示出。示例包括具有多个(例如4个)数据通道201、202、203、204的单向数据链路或总线200。在没有数据需要发送时,总线200可停转并且进入睡眠210。当要发送或传送230新的数据时,总线200需要首先唤醒并且同步220。从而,性能由于消耗额外时间和功率而降低。此外,用于同步的信号可变成电磁干扰(EMI)的源,因此EMI的减轻可需要额外的屏蔽。
[0037]填充数据链路或总线200架构在图2B中示出。示例包括具有多个(例如4个)数据通道201、202、203、204的单向数据链路或总线200。甚至在没有数据需要发送时,总线根据需要填充215。因为它处于逻辑闲置状态,总线传送无意义的数据符号。然而,每当要传送230新数据时,总线200非常快速地变成可用,因此浪费更少的时间和功率。然而,在间歇或中间时间期间通过填充215而保持活跃浪费了功率并且可因为用于填充的信号不具有产出性而是EMI的源。
[0038]性能和功率矢量可在不活动期期间通过使用如在图3A中示出的混合通道停转(HLS)数据链路或总线300架构的设备、方法、系统的实施例而平衡。示例包括具有多个(例如4个)数据通道301、302、303、304的数据链路或总线300。该数据总线300可以是单向的。可指派或选择一个数据通道来充当主通道301。当没有数据需要发送时,对于给定方向,除主通道外的所有通道关闭或停转310。主通道301填充315来使数据接收方保持活跃并且与数据源保持同步。从而,每当要传送330新数据时,该接收方因为它仍锁定至主通道301而不必唤醒和同步。此外,非主通道302、303、304在间歇或中间时间期间的完全关闭或停转310减少功耗。因为较少的数据通道在不必要地信号传递并且不需要同步信号,EMI也被最小化。
[0039]EMI和射频干扰(RFI)两者都与关闭的通道的数量或通道静默的时间的百分比成比例地减小。占空比是“打开”时间与总“打开/关闭”时间的比率。例如,如果4通道总线300使用混合通道停转数据链路或总线300架构(在占空比上没有变化),干扰减小大约6分贝(dB)。
[0040]可用于混合通道停转数据链路或总线300架构的基本时钟架构的实施例在图3B中示出。传送器340包括第一数据速率锁相环(PLL) 342,用于将对于所有非主通道302、303、304的时钟恢复锁定到主通道301。对于每个非主通道可包括延迟(D)触发器。从而,信号可在延迟了一个时钟脉冲的持续时间(时间)的电路的输出处出现。
[0041]只要主通道301保持活跃,维持对于所有通道的时钟。接收器350包括对于时钟和数据恢复(⑶R) 354的第二数据速率PLL 352。
[0042]时钟信号是具有周期性波形的信号。该信号在低态与高态之间振荡。时钟发生器可产生时钟信号,例如具有规定频率的50%占空比的方波。频率是相位关于时间的导数。使用时钟信号用于电路不同部分的同步的电路可在时钟周期的上升沿和/或下降沿处变得活跃。
[0043]时钟参考应具有高质量,例如低噪声。串扰和干扰也应在板级被最小化。
[0044]时钟信号还可使用正弦波。正弦波时钟可使用差分信号。差分信号可传送具有在两对导线(例如,差分对)上发送的两个互补信号的信息。抗EMI性因为外部干扰将趋于影响两个导线而提高。对于给定供应电压,差分信令提供两倍的单端信令系统的抗噪度。差分信号可在平衡线路(具有相等的阻抗)上传送来提高抗EMI性。
[0045]PLL是控制系统,其生成具有与输入干扰信号的相位有关的相位的输出信号。PLL包括具有可变频率振荡器和相位检测器的电子电路。该电路将输入信号的相位与从它的输出振荡器得到的信号的相位比较并且调整它的振荡器的频率来使这两个相位保持匹配。来自相位检测器的信号用于控制反馈环中的振荡器。
[0046]PLL可在硬件中实现,例如通过使用集成电路。PLL还可在软件中实现。软件实现具有优势,例如反馈环的容易定制。
[0047]在实施例中,接收器包括一个或多个延迟锁定环(DLL),用于调整对于一个或多个非主通道302、303、304的静态相位对准。DLL具有内部电压控制的晶体振荡器。本质上,DLL在数字电路的时钟路径中放置负延迟门(gate )。DLL可用于改变时钟信号的相位(例如CDR 中)。
[0048]在另一个实施例中,接收器包括一个或多个延迟线,用于调整对于一个或多个非主通道302、303、304的静态相位对准。
[0049]在再另一个实施例中,接收器包括一个或多个相位内插器(PI),用于调整对于一个或多个非主通道302、303、304的静态相位对准。该相位内插器允许接收器以规定增量调整它的米样时钟的相位。相位内插器可产生输出时钟,其相对于输入时钟具有粗略或精细相移。
[0050]在实施例中,相位内插器可以是电压控制的。电压控制的相位内插器在面积上可更小并且可消耗更少的功率。
[0051]在另一个实施例中,相位内插器可以是电流控制的。电流控制的相位内插器可因为它采取数字输入而不是模拟输入而更线性且更容易控制。
[0052]许多延迟门可自前到后地连接。延迟链的输入可连接到被负延迟的时钟。复用器可连接到延迟链的每个级来组合这些单独效应。如果实际负载改变,元件的延迟可变化。控制电路可更新复用器的选择器来产生负延迟效应。输出可以是所得的负延迟时钟信号。相移可相对于延迟链门单元和/或相对于时钟期而规定。
[0053]在一些实施例中,混合通道停转数据链路或总线300架构可用于各种平台。在各种实施例中,例如I/o逻辑、接口逻辑或物理层逻辑等逻辑可与通道或信道耦合或接口。
[0054]一个这样的平台包括PCIe。
[0055]另一个这样的平台包括视频电子标准协会(VESA)显示端口数字显示接口。
[0056]再另一个这样的平台包括移动行业处理器接口(MIPI) D-PHY或它的后继M-PHY。D-PHY平台对于移动装置内部的部件(例如拍摄装置)之间的通信互连提供灵活的低成本、低功率、高速串行接口技术方案。M-PHY平台对移动应用提供高带宽、低引脚数、非常好的功率效率串行接口。
[0057]物理层(PHY)是计算机联网的开放系统互连(OSI)模型中的最低层(总共7层协议中的层I)。层I由网络的基本联网硬件传送技术组成。PHY是层I的实现来限定用于传送原始位(来建立并且维持数据链路)的部件。
[0058]示波器可探测数据链路或总线来监测混合通道停转数据链路或总线架构。逻辑分析器也可用于探测数据链路或总线来监测混合通道停转数据链路或总线架构。
[0059]混合通道停转的方法的实施例在图6中示出(从框600中开始到框640中结束)。在框620中指派或选择主通道。如果存在数据不活动,主通道填充,如在框622中示出的。如果不存在数据不活动,主通道传送或发送数据。主通道维持时钟,如在框624中示出的。在框630中指派或选择非主通道。非主通道锁定到主通道,如在框631中示出的。如果存在数据不活动,非主通道停转或闲置,如在框634中示出的。如果不存在数据不活动,非主通道传送或发送数据,如在框633中示出的。非主通道使时钟从主通道恢复,如在框636中示出的。
[0060]双-单工数据链路或总线400架构的实施例在图4A中示出。这样的数据链路或总线400在传送信号对上传送数据并且在接收信号对上接收完成响应。数据链路或总线的任一端的装置(或代理)可以是请求方或完成方。业务类型可在不同时间的不同情况在任一方向上在数据链路或总线上生成。
[0061]双-单工数据链路或总线400 (例如具有每秒2.5千兆位(Gbps)的数据传输速率)在数据加载(或带宽)上可以是不对称的。如在图4B中示出的,前向信道(例如第一信道421)可传送大突发的数据(有效载荷)430,例如具有1.000微秒(usee)的持续时间。大突发的数据(有效载荷)430根据需要被小突发的填充字符415分离。
[0062]反向信道(例如第二信道422)可传送小突发的数据,例如主要是确认(ACK) 435包,例如具有0.050 usee的持续时间。
[0063]双-单工数据链路或总线400具有第一端的第一装置和第二端的第二装置。该第一装置和第二装置定位在双-单工数据链路或总线400的相对端。
[0064]在实施例中,对于数据链路或总线400的第一端的第一装置,第一信道421可以是用于传送数据430的前向信道而第二信道422可以是用于接收ACK 435的反向信道。
[0065]对应地,对于数据链路或总线400的第二端的第二装置,第二信道422可以是用于传送ACK 435的前向信道而第一信道421可以是用于接收数据430的反向信道。
[0066]异步系统不交换或共享定时信息。同步系统因为它们使用可从共用或共享时钟得到的定时信息而很好地匹配。准同步系统(ples1chronous system)使用来自截然不同或单独时钟(其可能未精确匹配)的信号。在实施例中,失配可以是小的。在另一个实施例中,失配可随时间保持不变。在再另一个实施例中,失配可随时间漂移。
[0067]在实施例中,同步过程可用于将准同步输入/输出(I/O)或接口数据链路或总线400从睡眠状态唤醒。接收器锁定到训练位流上来恢复时钟419。然而,如果总线400仅具有小突发的数据(例如ACK 435)来传送,训练时间可长于数据传送时间。如果连续突发的数据(例如ACK 435)之间的间隔时间短于训练时间,则总线400无法在连续突发的数据(例如ACK 435)之间的间隔时间中休眠。
[0068]如果将反向信道422从睡眠唤醒的训练时间或同步时间(例如6.000 usee)大于数据(例如ACK)间隔时间(例如1.000 usee),则反向信道422无法在ACK 435包之间的数据(例如ACK)间隔时间中停转(或闲置或睡眠)。在这样的情形中,反向信道422传送大突发的FILL字符415来保持活跃,即使未发送有用数据也如此。然而,连续传送增加功耗。此夕卜,如果FILL字符未很好地随机化,EMI可变成问题。
[0069]数据链路或总线训练包括可由两个装置(代理)执行来建立对于数据链路或总线的配置参数的协议。有序数据集可被发送并且可被重复。在每个代理识别来自另一侧的数据集后,它们继续物理层链路协商。成功协商被具有另一个数据集的两个代理确认或证实。交换进一步的信息。可定期更新装置的状态。
[0070]在一些实施例中,可在没有时钟恢复的情况下接收准同步数据。具有无锁(NL)数据链路或总线500架构的设备、方法、系统的实施例在图5中示出。该无锁总线500架构用于传送数据和接收数据而不使用高速时钟来使数据锁存器517与输入数据流同步。
[0071]多位冗余可用于增加数据链路对大的(以百万分之几或ppm测量)时钟偏移的鲁棒性。在各种实施例中,冗余可包括3个位、4个位、5个位或甚至更多的位。
[0072]在实施例中,可使用3x位冗余。然后,反向信道ACK 535将由于冗余而具有3x持续时间502。接收器使用不同步的接收高速时钟515来对无锁输入位流采样。接收器可使用3:1表决518 (无同步性)来确定正确的逻辑状态。从而,原始数据可甚至对于时钟505和数据502 “最差情况”对准(其中时钟边沿与数据边沿重合)而正确恢复。因为接收器不必锁定到ACK 535,不使用SYNC (其可以是长的)。因此,反向信道522可持续长间隔时间地停转510,例如1.000微秒等。例如,反向信道522可持续该时间的80%以上停转510,从而减少功耗和EMI两者。
[0073]例如点到点等无锁数据传送(例如由第二装置)和接收(例如由第一装置)的方法的实施例在图7中示出(从框700的开始到框760的结束)。例如确认(ACK)等数据可传送(例如到第一装置等)或发送(例如从第二装置),其中具有多个(例如3x位)冗余,如在框710中示出的。由于3x位冗余,数据可具有3x持续时间。
[0074]具有多(例如3x位冗余等)的数据可(例如从第二装置)接收(例如由第一装置在第二或反向信道中),如在框715中示出的。可对数据的值采样(例如由第一装置),如在框720中示出的。可执行例如3:1等的表决(例如由第一装置),如在框730中示出的。可确定正确的逻辑状态(例如由第一装置),如在框740中示出的。当没有数据要接收时,第一装置(的第二或反向信道)可停转或闲置,如在框750中示出的。
[0075]EMI和RFI两者与通道或多个通道静默的时间的百分比成比例地减小。占空比是打开时间与总(打开和关闭)时间的比率。例如,如果1-通道总线使用具有20%占空比(SP,持续该时间的80%停转或关闭)的无锁总线500架构的实施例,干扰减小大约7dB (相对于100%占空比)。
[0076]在一些实施例中,无锁数据链路或总线500架构可用于包括数据链路或总线的平台,其中在每个方向上具有可静默的一个或多个通道或信道。在各种实施例中,例如I/o逻辑、接口逻辑或物理层逻辑等逻辑可与通道或信道耦合或接口。
[0077]一个这样的平台包括PCIe。
[0078]另一个这样的平台包括通用串行总线(USB)。USB设计成使个人计算机和计算机外围设备之间的连接标准化以既通信又供应电力。
[0079]再另一个这样的平台包括移动行业处理器接口(MIPI)M-PHY。该M-PHY平台对移动应用提供高带宽、低引脚数、很好的功率效率串行接口。
[0080]物理层(PHY)是计算机联网的开放系统互连(OSI)模型中的最低层(总共7层协议中的层I)。层I由网络的基本联网硬件传送技术组成。PHY是层I的实现来限定用于传送原始位(来建立并且维持数据链路)的部件。
[0081]示波器可探测数据链路或总线来监测无锁数据链路或总线架构。逻辑分析器也可用于探测数据链路或总线来监测无锁数据链路或总线架构。
[0082]尽管上文已经描述许多实施例,本领域内技术人员将意识到从这些实施例的许多修改和变化形式。规定附上的权利要求涵盖所有这样的修改和变化形式。
[0083]设计可经历各种阶段,从创建到仿真到制造。代表设计的数据可采用许多方式来代表该设计。首先,如在仿真中有用的,硬件可使用硬件描述语言或另一个功能描述语言来表示。另外,具有逻辑和/或晶体管门的电路级模型可在设计过程的某些阶段产生。此外,大部分设计在某个阶段获得代表硬件模型中各种装置的物理布置的数据级。在其中使用常规半导体制造技术的情况下,代表硬件模型的数据可以是规定对于用于生产集成电路的掩模的不同掩模层上的各种特征存在或不存在的数据。在设计的任何表示中,数据可采用任何机器可读介质的形式存储。存储器或例如盘等磁性或光学存储可以是用于存储经由光或电波传送的信息的机器可读介质,调制或用别的方式产生该光或电波来传送这样的信息。当传送指示或携带代码或设计的电载波时,就执行电信号的复制、缓冲或重新发送来说,做出新的副本。从而,通信提供商或网络提供商可将例如编码到载波内的信息等对象存储在有形、机器可读的介质上(至少暂时地),其体现本发明的实施例的技术。
[0084]如本文使用的模块指硬件、软件和/或固件的任何组合。作为示例,模块包括硬件,例如微控制器,其与用于存储适于由该微控制器执行的代码的非暂时性介质关联。因此,在一个实施例中对模块的引用指硬件,其具体配置成识别和/或执行在非暂时性介质上保持的代码。此外,在另一个实施例中,模块的使用指包括代码的非暂时性介质,该代码具体适于由微控制器执行来执行预定的操作。并且如可以推断的,在再另一个实施例中,术语模块(在该示例中)可指微控制器和非暂时性介质的组合。通常,图示为分开的模块边界通常变化并且潜在地重叠。例如,第一和第二模块可共享硬件、软件、固件,或其组合,同时潜在地保留某种独立硬件、软件或固件。在一个实施例中,术语逻辑的使用包括例如晶体管、寄存器等硬件或例如可编程逻辑装置等其他硬件。
[0085]在一个实施例中,短语‘用于’或‘配置成’的使用指设置、放置在一起、制造、推销、进口和/或设计设备、硬件、逻辑或元件来执行指定或确定的任务。在该示例中,不操作的设备或其元件如果它被设计、耦合和/或互连来执行所述指定任务则仍‘配置成’执行指定任务。作为纯粹说明性的示例,逻辑门在操作期间可提供O或I。但‘配置成’向时钟提供启用信号的逻辑门不包括可提供I或O的每个潜在的逻辑门。相反,逻辑门是采用在操作期间I或O输出用于启用时钟的某个方式耦合的逻辑门。再一次注意,术语‘配置成’的使用不要求操作,而相反集中在设备、硬件和/或元件的潜在状态,其中在潜在状态,设备、硬件和/或元件设计成当设备、硬件和/或元件操作时执行特别任务。
[0086]此外,在一个实施例中,短语‘能够’和或‘可操作成’的使用指某种设备、逻辑、硬件和/或元件采用能够以采用规定方式使用该设备、逻辑、硬件和/或元件这样的方式设计。如上文注意,能够或可操作成在一个实施例中的使用指设备、逻辑、硬件和/或元件的潜在状态,其中设备、逻辑、硬件和/或元件不操作但采用能够采用规定的方式使用设备这样的方式设计。
[0087]如本文使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或多个逻辑值的使用也称为I和0,其简单地表示二进制逻辑状态。例如,I指高逻辑电平并且O指低逻辑电平。在一个实施例中,例如晶体管或闪存单元等存储单元可能够保持单个逻辑值或多个逻辑值。然而,在计算机系统中已经使用了值的其他表示。例如,十进制数字十也可表示为1010的二进制值和十六进制字母A。因此,值包括能够保持在计算机系统中的信息的任何表示。
[0088]此外,状态可由值或值的部分表示。作为示例,例如逻辑一等第一值可代表默认或初始状态,而例如逻辑零等第二值可代表非默认状态。另外,术语重设和设置在一个实施例中分别指默认和更新的值或状态。例如,默认值潜在地包括高逻辑值,即重设,而更新值潜在地包括低逻辑值,即设置。注意可使用值的任何组合来代表任何数量的状态。
[0089]上文阐述的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上、可由处理元件执行的指令或代码实现。非暂时性机器可访问/可读介质包括采用可由例如计算机或电子系统等机器读取的形式提供(即,存储和/或传送)信息的任何机构。例如,非暂时性机器可访问介质包括随机存取存储器(RAM),例如静态RAM (SRAM)或动态RAM (DRAM) ;R0M ;磁性或光学存储介质;闪速存储器装置;电存储装置;光存储装置;声存储装置;用于保持从暂时(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储装置;等等,其与可从其处接收信息的非暂时性介质区别开。
[0090]用于为逻辑编程来执行本发明的实施例的指令可存储在系统中的存储器内,例如DRAM、高速缓存、闪存或其他存储等。此外,这些指令可以经由网络或通过其他计算机可读介质而分发。从而机器可读介质可包括用于采用可由机器(例如,计算机)读取的形式存储或传送信息的任何机构,但不限于软盘、光盘、压缩盘、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPR0M)、电可擦除可编程只读存储器(EEPR0M)、磁或光卡、闪速存储器或有形的机器可读存储,其在经由电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)在互联网上传送信息中使用。因此,计算机可读介质包括任何类型的有形机器可读介质,其适合于采用可由机器(例如,计算机)读取的形式存储或传送电子指令或信息。
[0091]在整个该说明书中对“一个实施例”或“实施例”的引用意思是连同实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。从而,短语“在一个实施例中”或“在实施例中”在整个该说明书中各种地方的出现不一定都指相同的实施例。此外,特定特征、结构或特性采用任何适合的方式在一个或多个实施例中组合。
[0092]在前面的说明书中,参考具体示范性实施例给出详细描述。然而,可对其做出各种修改和改变而不偏离如附上的权利要求中阐述的本发明更广泛的精神和范围,这将是明显的。说明书和图因此要在说明性意义而非限制性意义上考虑。此外,实施例和其他示范性语言在前面的使用不一定都指相同的实施例或相同的示例,而可指不同且截然不同的实施例,以及潜在地相同的实施例。
[0093]下列示例关于另外的实施例。这些示例中的细节可在一个或多个实施例中在任何地方使用。例如,本文描述的设备或系统的所有可选特征也可关于本文描述的方法或过程实现。
[0094]示例I是设备,其包括:链路,该链路包括多个通道,这些通道包括:主通道,该主通道使数据接收方保持活跃并且与数据源同步,和锁定到该主通道的第一非主通道,该第一非主通道在闲置时间期间完全关闭;和接口逻辑,用于与该链路接口。
[0095]示例2是示例I的设备,其进一步包括:锁定到主通道的其他非主通道,这些其他非主通道在闲置时间期间完全关闭。
[0096]示例3是示例I的设备,主通道是单向的。
[0097]示例4是示例I的设备,第一非主通道是单向的。
[0098]示例5是示例I的设备,第一非主通道不必唤醒和同步。
[0099]示例6是示例2的设备,其进一步包括对于每个非主通道的D触发器。
[0100]示例7是示例2的设备,其进一步包括一个或多个延迟锁定环,该一个或多个延迟锁定环用于调节一个或多个非主通道的静态相位对准。
[0101]示例8是示例2的设备,其进一步包括一个或多个延迟线,该一个或多个延迟线用于调节一个或多个非主通道的静态相位对准。
[0102]示例9是示例2的设备,其进一步包括一个或多个相位内插器,该一个或多个相位内插器用于调节一个或多个非主通道的静态相位对准。
[0103]示例10是设备,其包括链路,该链路包括多个通道,这些通道包括:主通道,该主通道使数据接收方活跃保持并且与数据源同步,和锁定到该主通道的第一非主通道,该第一非主通道在闲置时间期间完全关闭;和物理层逻辑,用于与该链路接口。
[0104]示例11是示例10的设备,其进一步包括:锁定到主通道的其他非主通道,这些其他非主通道在闲置时间期间完全关闭。
[0105]示例12是示例10的设备,主通道是单向的。
[0106]示例13是示例10的设备,第一非主通道是单向的。
[0107]示例14是示例10的设备,第一非主通道不必唤醒和同步。
[0108]示例15是示例11的设备,其进一步包括每个非主通道的D触发器。
[0109]示例16是示例11的设备,其进一步包括一个或多个延迟锁定环,该一个或多个延迟锁定环用于调节一个或多个非主通道的静态相位对准。
[0110]示例17是示例11的设备,其进一步包括一个或多个延迟线,该一个或多个延迟线用于调节一个或多个非主通道的静态相位对准。
[0111]示例18是示例11的设备,其进一步包括一个或多个相位内插器,该一个或多个相位内插器用于调节一个或多个非主通道的静态相位对准。
[0112]示例19是计算机系统,其包括:设备,该设备包括:链路,该链路包括多个通道,这些通道包括:主通道,该主通道使数据接收方保持活跃并且与数据源同步,和锁定到该主通道的第一非主通道,该第一非主通道在闲置时间期间完全关闭;和物理层逻辑,用于与该链路接口。
[0113]示例20是示例19的计算机系统,其进一步包括:其他非主通道,这些其他非主通道在闲置时间期间完全关闭,这些其他非主通道不必唤醒和同步。
[0114]示例21是示例19的计算机系统,主通道是单向的。
[0115]示例22是示例20的计算机系统,其进一步包括对于每个非主通道的D触发器。
[0116]示例23是示例20的计算机系统,其进一步包括用于一个或多个非主通道的静态相位对准的一个或多个延迟锁定环。
[0117]示例24是示例20的计算机系统,其进一步包括用于一个或多个非主通道的静态相位对准的一个或多个延迟线。
[0118]示例25是示例20的计算机系统,其进一步包括用于一个或多个非主通道的静态相位对准的一个或多个相位内插器。
[0119]示例26是方法,其包括:与链路的多个通道接口,这些通道包括:主通道和一个或多个非主通道;在不活动期期间停转非主通道;在不活动期期间维持主通道的活跃数据同步;响应于指示要在所述非主通道上传送的数据的活动指示符来唤醒非主通道,而不执行基于主通道的数据同步的非主通道的数据同步。
[0120]示例27是示例26的方法,其进一步包括:采用D触发器调节对于每个非主通道的延迟。
[0121]示例28是示例26的方法,其进一步包括:采用一个或多个延迟锁定环调节对于一个或多个非主通道的静态相位对准。
[0122]示例29是示例26的方法,其进一步包括:采用一个或多个延迟线调节对于一个或多个非主通道的静态相位对准。
[0123]示例30是示例26的方法,其进一步包括:采用一个或多个相位内插器调节对于一个或多个非主通道的静态相位对准。
【权利要求】
1.一种设备,包括: 链路,所述链路包括多个通道,所述通道包括: 主通道,所述主通道使数据接收方保持活跃并且与数据源同步,以及 锁定到所述主通道的第一非主通道,所述第一非主通道在闲置时间期间完全关闭;以及 接口逻辑,用于与所述链路接口。
2.如权利要求1所述的设备,其进一步包括: 锁定到所述主通道的其他非主通道,所述其他非主通道在闲置时间期间完全关闭。
3.如权利要求1所述的设备,所述主通道是单向的。
4.如权利要求1所述的设备,所述第一非主通道是单向的。
5.如权利要求1所述的设备,所述第一非主通道不必唤醒和同步。
6.如权利要求2所述的设备,其进一步包括对于每个非主通道的D触发器。
7.如权利要求2所述的设备,其进一步包括一个或多个延迟锁定环,所述一个或多个延迟锁定环用于调节一个 或多个非主通道的静态相位对准。
8.如权利要求2所述的设备,其进一步包括一个或多个延迟线,所述一个或多个延迟线用于调节一个或多个非主通道的静态相位对准。
9.如权利要求2所述的设备,其进一步包括一个或多个相位内插器,所述一个或多个相位内插器用于调节一个或多个非主通道的静态相位对准。
10.一种设备,其包括: 链路,所述链路包括多个通道,所述通道包括: 主通道,所述主通道使数据接收方活跃保持并且与数据源同步,以及 锁定到所述主通道的第一非主通道,所述第一非主通道在闲置时间期间完全关闭;以及 物理层逻辑,用于与所述链路接口。
11.如权利要求10所述的设备,其进一步包括:锁定到所述主通道的其他非主通道,所述其他非主通道在闲置时间期间完全关闭。
12.如权利要求10所述的设备,所述主通道是单向的。
13.如权利要求10所述的设备,所述第一非主通道是单向的。
14.如权利要求10所述的设备,所述第一非主通道不必唤醒和同步。
15.如权利要求11所述的设备,其进一步包括对于每个非主通道的D触发器。
16.如权利要求11所述的设备,其进一步包括一个或多个延迟锁定环,所述一个或多个延迟锁定环用于调节一个或多个非主通道的静态相位对准。
17.如权利要求11所述的设备,其进一步包括一个或多个延迟线,所述一个或多个延迟线用于调节一个或多个非主通道的静态相位对准。
18.如权利要求11所述的设备,其进一步包括一个或多个相位内插器,所述一个或多个相位内插器用于调节一个或多个非主通道的静态相位对准。
19.一种计算机系统,包括: 设备,所述设备包括: 链路,所述链路包括多个通道,所述通道包括:主通道,所述主通道使数据接收方保持活跃并且与数据源同步,以及 锁定到所述主通道的第一非主通道,所述第一非主通道在闲置时间期间完全关闭;以及 物理层逻辑,用于与所述链路接口。
20.如权利要求19所述的计算机系统,其进一步包括:其他非主通道,所述其他非主通道在闲置时间期间完全关闭,所述其他非主通道不必唤醒和同步。
21.如权利要求19所述的计算机系统,所述主通道是单向的。
22.如权利要求20所述的计算机系统,其进一步包括每个非主通道的D触发器。
23.如权利要求20所述的计算机系统,其进一步包括用于一个或多个非主通道的静态相位对准的一个或多个延迟锁定环。
24.如权利要求20所述的计算机系统,其进一步包括用于一个或多个非主通道的静态相位对准的一个或多个延迟线。
25.如权利要求20所述的计算机系统,其进一步包括用于一个或多个非主通道的静态相位对准的一个或多个相位内插器。
26.—种方法,包括: 与链路的多个通道接口,所述通道包括:主通道和一个或多个非主通道; 在不活动期期间停转所述非主通道; 在所述不活动期期间维持所述主通道的活跃数据同步; 响应于指示数据要在所述非主通道上传送的活动指示符来唤醒所述非主通道,而不执行基于所述主通道的数据同步的非主通道的数据同步。
27.如权利要求26所述的方法,其进一步包括:采用D触发器调整对于每个非主通道的延迟。
28.如权利要求26所述的方法,其进一步包括:采用一个或多个延迟锁定环调整对于一个或多个非主通道的静态相位对准。
29.如权利要求26所述的方法,其进一步包括:采用一个或多个延迟线调整对于一个或多个非主通道的静态相位对准。
30.如权利要求26所述的方法,其进一步包括:采用一个或多个相位内插器调整对于一个或多个非主通道的静态相位对准。
【文档编号】G06F15/163GK104050140SQ201410097017
【公开日】2014年9月17日 申请日期:2014年3月17日 优先权日:2013年3月15日
【发明者】G.L.伊伯特 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1