CN110633241A - 用于非对称接口的动态高速通道方向切换的系统、方法和装置 - Google Patents
用于非对称接口的动态高速通道方向切换的系统、方法和装置 Download PDFInfo
- Publication number
- CN110633241A CN110633241A CN201910438525.6A CN201910438525A CN110633241A CN 110633241 A CN110633241 A CN 110633241A CN 201910438525 A CN201910438525 A CN 201910438525A CN 110633241 A CN110633241 A CN 110633241A
- Authority
- CN
- China
- Prior art keywords
- lanes
- downstream
- channels
- link
- subset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Abstract
公开了用于非对称接口的动态高速通道方向切换的系统、装置、计算机程序产品和方法,包括由连接管理器确定可以通过非对称多通道链路增强连接装置。连接管理器可以使用系统参数,包括带宽信息,以切换多通道链路的一条或多条通道的方向。连接管理器可以使用寄存器设置指令以改变主机侧上和装置侧上的寄存器设置,以切换多通道链路的一条或多条通道的方向。
Description
背景技术
互连可以用于提供系统内的不同装置之间的通信,使用了一些类型的互连机制。用于计算机系统中的装置之间的通信互连的一种典型通信协议是外围部件互连快速(PCIExpressTM(PCIeTM))通信协议。该通信协议是加载/存储输入/输出(I/O)互连系统的一个示例。典型地,根据该协议在非常高的速度下串行地执行装置之间的通信。
附图说明
图1示出了用于包括多核处理器的计算系统的方框图的实施例。
图2是根据本公开的实施例的示例性外围部件互连快速(PCIe)链路架构的示意图。
图3A是根据本公开的实施例的示例性多通道互连架构的示意图。
图3B是根据本公开的实施例的示例性通道方向切换的示意图。
图4是根据本公开的实施例的用于动态高速通道方向切换的过程流程图。
图5是根据本公开的实施例的用于使连接装置切换多通道互连的一条或多条通道的过程流程图。
图6示出了包括互连架构的计算系统的实施例。
图7示出了包括分层叠层的互连架构的实施例。
图8示出了要在互连架构内产生或接收的请求或数据包的实施例。
图9示出了用于互连架构的发射器和接收器对的实施例。
图10示出了用于包括处理器的计算系统的方框图的另一实施例。
图11示出了用于包括多个处理器插座的计算系统的方框图的实施例。
具体实施方式
在以下描述中,阐述了许多具体细节,例如具体类型的处理器和系统配置、具体硬件结构、具体架构和微架构细节、具体寄存器配置、具体指令类型、具体系统部件、具体测量值/高度、具体处理器管线级和操作等的示例,以提供对本公开的实施例的透彻理解。然而,对本领域技术人员将显而易见的是,不需要采用这些具体细节来实践本公开。在其它实例中,未详细描述公知的部件或方法,例如具体和替代的处理器架构、用于所描述的算法的具体逻辑电路/代码、具体固件代码、具体互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实施方式、算法在代码中的具体表达、具体的掉电和门控技术/逻辑以及计算机系统的未详细描述的其它具体操作细节,以免不必要地使本发明难以理解。
尽管可以参考具体集成电路中(例如计算平台或微处理器中)的能量节省和能量效率来描述以下实施例,但其它实施例适用于其它类型的集成电路和逻辑器件。可以将本文描述的实施例的类似技术和教导应用于也可以受益于更好的能量效率和能量节省的其它类型的电路或半导体器件。例如,公开的实施例不限于台式计算机系统或UltrabooksTM,并且也可以用于其它装置中,例如手持装置、平板电脑、其它薄笔记本、片上系统(SoC)装置和嵌入式应用。手持式装置的一些示例包括蜂窝电话、因特网协议装置、数字摄像机、个人数字助理(PDA)和手持式PC。嵌入式应用典型包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或可以执行下文教导的功能和操作的任何其它系统。此外,本文描述的设备、方法和系统不限于物理计算装置,而是还可以涉及用于能量节省和效率的软件优化。在以下描述中将变得显而易见的是,本文描述的方法、设备和系统的实施例(无论是否参考硬件、固件、软件或其组合)对于与性能考虑平衡的“绿色技术”未来都是至关重要的。
随着计算系统的发展,其中的部件变得越来越复杂。结果,在部件之间进行耦合和通信的互连架构的复杂性也增大,以确保符合最优部件操作的带宽要求。此外,不同的市场细分需要互连架构的不同方面适合市场需求。例如,服务器需要更高性能,而移动生态系统有时能够牺牲总体性能来实现功率节省。然而,大部分织构(fabric)的单一目的是提供具有最大功率节省的最高可能性能。下面论述将潜在地受益于本文所述的公开内容的各方面的若干互连。
参考图1,绘示了用于包括多核处理器的计算系统的方框图的实施例。处理器100包括任何处理器或处理装置,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其它装置。在一个实施例中,处理器100包括至少两个内核——内核101和102,其可以包括非对称内核或对称内核(例示的实施例)。然而,处理器100可以包括任何数量的处理元件,其可以是对称或非对称的。
在一个实施例中,处理元件是指用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、过程单元、上下文、上下文单元、逻辑处理器、硬件线程、内核和/或任何其它元件,其能够保持处理器的状态,例如执行状态或架构状态。换言之,在一个实施例中,处理元件是指能够独立地与诸如软件线程、操作系统、应用程序或其它代码之类的代码相关联的任何硬件。物理处理器(或处理器插座)典型地是指集成电路,其可能包括任何数量的其它处理元件,例如内核或硬件线程。
内核常常是指位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与内核相反,硬件线程典型地是指位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。可以看出,在某些资源被共享并且其它资源专用于架构状态时,硬件线程和内核的命名之间的界线交叠。然而操作系统常常将内核和硬件线程视为个体逻辑处理器,其中操作系统能够单独调度每个逻辑处理器上的操作。
如图1所示,物理处理器100包括两个内核——内核101和102。这里,内核101和102被认为是对称内核,即,具有相同配置、功能单元和/或逻辑的内核。在另一个实施例中,内核101包括无序处理器内核,而内核102包括有序处理器内核。然而,可以单独从任何类型的内核中选择内核101和102,例如本地内核、软件管理的内核、适于执行本地指令集架构(ISA)的内核、适于执行转换指令集架构(ISA)的内核、共同设计的内核或其它已知内核。在异质内核环境(即,非对称内核)中,可以利用某种形式的转换,例如二进制转换,以调度或执行内核之一或两者上的代码。还要进一步论述的是,下文更详细地描述了内核101中所示的功能单元,因为内核102中的单元以类似于绘示的实施例的方式进行操作。
如所示,内核101包括两个硬件线程101a和101b,其也可以被称为硬件线程槽101a和101b。因此,在一个实施例中,诸如操作系统的软件实体可能会将处理器100视为四个单独的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可以与架构状态寄存器102a相关联,并且第四线程可以与架构状态寄存器102b相关联。在这里,如上所述,架构状态寄存器(101a、101b、102a和102b)中的每个可以被称为处理元件、线程槽或线程单元。如所示,架构状态寄存器101a在架构状态寄存器101b中被复制,因此个体架构状态/上下文能够被存储以用于逻辑处理器101a和逻辑处理器101b。在内核101中,诸如分配器和重命名块130中的指令指针和重命名逻辑的其它较小资源也可以针对线程101a和101b被复制。可以通过分割来共享一些资源,例如重新排序/退出单元135中的重新排序缓冲器、ILTB 120、加载/存储缓冲器和队列。诸如通用内部寄存器、页面表基址寄存器、低级数据高速缓存和数据TLB 115、执行单元140和乱序单元135的部分的其它资源可能被完全共享。
处理器100常常包括其它资源,其可以是完全共享的,通过分割来共享的,或由处理元件专用的。在图1中,示出了具有处理器的例示性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何单元,以及包括任何其它已知的未描绘的功能单元、逻辑或固件。如所示,内核101包括简化的代表性无序(OOO)处理器内核。但在不同实施例中可以利用有序处理器。OOO内核包括用于预测要执行/采取的分支的分支目标缓冲器120、以及用于存储用于指令的地址转换条目的指令转换缓冲器(I-TLB)120。
内核101还包括耦合到取出单元120的解码模块125以对取出的要素进行解码。在一个实施例中,取出逻辑包括分别与线程槽101a、101b相关联的个体定序器。通常内核101与第一ISA相关联,第一ISA定义/指定处理器100上可执行的指令。作为第一ISA的部分的机器代码指令常常包括指令(称为操作码)的一部分,其提及/指定要执行的指令或操作。解码逻辑125包括从其操作码组织这些指令并将解码的指令在流水线中传递以如第一ISA定义的那样进行处理的电路。例如,如下文更详细所述,在一个实施例中,解码器125包括被设计或调节为识别特定指令(例如,事务指令)的逻辑。作为由解码器125进行识别的结果,架构或内核101采取特定的预定义动作,以执行与适当指令相关联的任务。重要的是要指出,可以响应于单一或多条指令来执行本文所述的任务、块、操作和方法中的任一者;所述指令中的一些可以是新的或旧的指令。注意,在一个实施例中,解码器126识别相同的ISA(或其子集)。替代地,在异质内核环境中,解码器126识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名块130包括分配器,其保留诸如寄存器文件的资源,以存储指令处理结果。然而,线程101a和101b可能能够无序执行,其中分配器和重命名块130也保留诸如重新排序缓冲器的其它资源,以跟踪指令结果。单元130还可以包括寄存器重命名器,以将程序/指令参考寄存器重命名为处理器100内部的其它寄存器。重新排序/退出单元135包括诸如上述重新排序缓冲器、加载缓冲器和存储缓冲器的部件,以支持无序执行和无序执行的指令的稍后的有序退出。
在一个实施例中,调度器和执行单元块140包括调度器单元,以调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其它已知执行单元。
较低级的数据高速缓存和数据转换缓冲器(D-TLB)150耦合到执行单元140。数据高速缓存用于存储最近使用/操作的要素,例如数据运算符,它们可能保持存储器一致性状态。D-TLB用于存储最近的虚拟/线性到物理地址的转换。作为具体示例,处理器可以包括页表结构,以将物理存储器分解成多个虚拟页。
在此,内核101和102共享对较高级或更远的高速缓存(例如与片上接口110相关联的第二级高速缓存)的访问。注意,较高级或更远是指从执行单元增大或更远离执行单元的高速缓存级。在一个实施例中,较高级高速缓存是最末级数据高速缓存——处理器100上的存储器分级结构中的最末高速缓存——例如第二或第三级数据高速缓存。然而,更高级高速缓存不受此限制,因为它可以不与指令高速缓存相关联或不包括指令高速缓存。跟踪高速缓存——一种类型的指令高速缓存——又可以耦合在解码器125之后,以存储最近解码的跟踪。这里,指令可能是指宏指令(即,解码器识别的一般指令),其可以被解码成若干微指令(微操作)。
在绘示的配置中,处理器100还包括片上接口模块110。在历史上,下文更详细描述的存储器控制器已经包括在处理器100外部的计算系统中。在该情形中,片上接口11用于与处理器100外部的装置通信,所述装置例如系统存储器175、芯片组(常常包括用于连接到存储器175的存储器控制器集线器和用于连接到外围装置的I/O控制器集线器)、存储器控制器集线器、北桥或其它集成电路。并且在该情形中,总线105可以包括任何已知的互连,例如多点总线、点到点互连、串行互连、并行总线、一致性(例如,高速缓存一致性)总线、分层协议架构、差分总线和GTL总线。
存储器175可以专用于处理器100或与系统中的其它装置共享。存储器175的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)和其它已知的存储装置。注意,装置180可以包括图形加速器、处理器或耦合到存储器控制器集线器的卡、耦合到I/O控制器集线器的数据储存器、无线收发器、闪存装置、音频控制器、网络控制器或其它已知装置。
然而,最近,随着更多逻辑和装置被集成在诸如SOC的单个管芯上,这些装置中的每个可以被并入在处理器100上。例如,在一个实施例中,存储器控制器集线器在与处理器100相同的封装和/或管芯上。这里,内核的一部分(内核上部分)110包括用于与诸如存储器175或图形装置180的其它装置接口连接的一个或多个控制器。包括互连和用于与这种装置接口连接的控制器的配置常常被称为内核上(或非内核配置)。作为示例,片上接口110包括用于片上通信的环形互连以及用于片外通信的高速串行点对点链路105。然而,在SOC环境中,诸如网络接口、协处理器、存储器175、图形处理器180以及任何其它已知计算机装置/接口的更多装置可以被集成在单个管芯或集成电路上,以为小外形因子提供高功能性和低功耗。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码177以编译、转换和/或优化应用代码176,以支持本文描述的设备和方法或与其接口连接。编译器常常包括程序或一组程序以将源文本/代码转换成目标文本/代码。通常,利用编译器对程序/应用代码进行编译是在多个阶段和多遍中完成的,以将高级编程语言代码变换成低级机器或汇编语言代码。然而,单遍编译器仍然可以用于简单编译。编译器可以利用任何已知编译技术并执行任何已知的编译器操作,例如词法分析、预处理、语法分析、语义分析、代码生成、代码变换和代码优化。
更大的编译器常常包括多个阶段,但这些阶段最常包括在两个一般阶段内:(1)前端,即,通常其中可以发生句法处理、语义处理和某些变换/优化,以及(2)后端,即,通常其中可以发生分析、变换、优化和代码生成。一些编译器是指中间,其示出了编译器前端和后端之间的界限划分的模糊。结果,可以在前述阶段或遍中的任一者以及编译器的任何其它已知阶段或遍中发生对插入、关联、生成或编译器的其它操作的提及。作为例示性示例,编译器可能在编译的一个或多个阶段中插入操作、调用、功能等,例如在编译的前端阶段中插入调用/操作,并且然后在变换阶段期间将调用/操作变换成低级代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,以及优化用于在运行时期间执行的代码。作为具体例示性示例,二进制代码(已经编译的代码)可以在运行时期间被动态优化。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
类似于编译器,诸如二进制转换器的转换器将代码静态或动态地转换以优化和/或转换代码。因此,提到代码、应用代码、程序代码或其它软件环境的执行可以是指:(1)动态或静态地执行编译器程序、优化代码优化器或转换器,以编译程序代码,维持软件结构,执行其它操作,优化代码,或转换代码;(2)执行包括操作/调用的主要程序代码,例如已经优化/编译的应用代码;(3)执行与主要程序代码相关联的其它程序代码,例如库,以维持软件结构,执行其它软件相关操作或优化代码;或(4)这些的组合。
PCIe支持热插拔功能,但可能缺少一致的方式以向系统软件报告信息的特定关键比特,使得PCIe子系统难以被最优地管理,并且导致系统限制和不良的用户体验。这些相同的限制影响了收敛的输入/输出(CIO)或“开放的”雷电接口,因为这些I/O配置使用PCIe作为隧穿I/O架构。
CIO是用于PCIe和显示端口的隧道。CIO链路可以是单通道或聚集的两通道,运行于10Gbps到40Gbps或更高。CIO可以跨越USB C型连接器(作为替代模式)进行操作,并启用系统框外部的PCIe装置。
在一些计算系统中,利用允许多种协议共存的接口,很多应用使用非对称带宽分配。在一些情况下,出站(或下游)带宽大于进站(或上游)带宽,例如在其中从中央处理系统向诸如监视器的显示装置传输数据的显示应用中。在一些情况下,上游带宽大于下游带宽。在I/O接口的总带宽受限时,某些通道未被充分利用,而其它通道供不应求。本公开描述了在对称接口到非对称接口之间动态切换而不影响当前流量。本文描述的系统、方法和装置可以使事件流保持完整,并且可以使用可用带宽通路而不影响用户体验。
图2是根据本公开的实施例的示例性外围部件互连快速(PCIe)链路架构200的示意图。PCIe链路架构200包括第一部件202,其可以是上游部件、根复合体或符合PCIe协议的交换机。第一部件202可以包括下游端口210,其促进跨越链路222(例如符合PCIe协议的链路)与上游部件进行通信。第一部件202可以耦合到第二部件208,其可以是下游部件、端点、或符合PCIe协议的交换机。在一些实施例中,第一部件可以链接到一个或多个中间部件,例如第一重定时器204和第二重定时器206。
在实施例中,第一部件202可以包括下游端口210,以促进与第二部件208(如果直接连接)或与重定时器204的上游(伪)端口212的下游通信(例如,朝向第二部件208)。第二部件208可以包括上游端口220,以促进与第一部件202(如果直接连接)或与重定时器204的下游(伪)端口212的上游通信(例如,朝向第一部件202)。
在图2中所示的示例中,第一部件202可以通过第一链路段224链接到第一重定时器204。类似地,第一重定时器204可以通过链路段226链接到第二重定时器206。第二重定时器206可以通过链路段228链接到第二部件208。链路段224、226和228可以构成链路222的全部或部分。
链路222可以促进第一部件202和第二部件208之间的上游和下游通信。在实施例中,上游通信是指从第二部件208向第一部件202传输的数据和控制信息;并且下游通信是指从第一部件202向第二部件208传输的数据和控制信息。如上所述,可以使用一个或多个重定时器(例如,重定时器204和206)来扩展第一部件202和第二部件208之间的链路222的范围。
并入了一个或多个重定时器(例如,重定时器204、206)的链路222可以形成以相当于采用类似协议但没有重定时器的链路所实现的数据速率的数据速率形成两个或更多单独的电气子链路。例如,如果链路222包括单个重定时器,链路222可以形成具有两个单独的子链路的链路,每个子链路在8.0GT/s或更高的速率下操作。如图2所示,可以利用多个重定时器204、206来扩展链路222。可以通过两个重定时器204、206来定义三个链路段222、224和226,其中第一子链路222将第一部件202连接到第一重定时器204,第二子链路224将第一重定时器204连接到第二重定时器206,并且第三子链路226将第二重定时器206连接到第二部件208。
如图2的示例中所示,在一些实施方式中,重定时器可以包括两个端口(或伪端口),并且端口可以动态地确定其相应的下游/上游取向。在实施例中,重定时器204可以包括上游端口212和下游端口214。类似地,重定时器206可以包括上游端口216和下游端口218。每个重定时器204、206可以具有上游路径和下游路径。此外,重定时器204、206可以支持包括转发模式和执行模式的操作模式。在一些实例中,重定时器204、206可以对在子链路上接收的数据进行解码并对用于在其其它子链路上向下游转发的数据进行重新编码。这样一来,重定时器可以在重新产生并向另一装置或甚至另一重定时器(或重驱动器或转发器)重新传输比特流之前,捕获所接收的比特流。在一些情况下,重定时器可以修改其接收的数据中的一些值,例如在处理并转发有序组数据时。此外,重定时器可以潜在地支持任何宽度选项作为其最大宽度,例如由诸如PCIe的规范所定义的一组宽度选项。
随着串行互连(例如,PCIe、UPI、USB等)的数据速率增大,越来越多地使用重定时器来扩展信道到达范围。可以级联多个重定时器以实现更长的信道到达范围。预期随着信号速度增大,普遍情况下信道到达范围将典型地减小。因此,随着互连技术加速,重定时器的使用可能变得更普遍。作为示例,由于PCIe Gen-4(其速率为16GT/s)被采用以利于PCIeGen-3(8GT/s),在PCIe互连中对重定时器的使用可以增加,随着速度增大,在其它互连中可能会是这种情况。
下游端口210(例如,在第一部件202中,其可以是上游部件,例如根复合体或交换机)可在链路建立之前或在链路222不能正常工作时被系统软件访问。在实施例中,诸如链路能力寄存器的寄存器可以被设置为在下游端口210中执行时钟模式选择。系统固件/软件可以将下游端口210配置为预期模式,并且如果需要改变,这将由系统固件/软件而非硬件来完成。
在实施例中,链路架构200可以包括控制器集线器250。控制器集线器250可以是根复合体、中央处理内核或主机系统的其它控制器逻辑的部分。控制器集线器可以包括系统管理器252。系统管理器252可以例如通过体现在非暂态计算机可读介质中的系统管理软件而实施在硬件电路和/或软件中。例如,系统管理器可以被实施为软件管理器、硬件电路(例如,协议栈电路)、(例如,数据处理器的)固件或这些的某种组合。系统管理器252可以包括CIO连接管理器、PCIe连接管理器、USB连接管理器、或可以建立和/或拆除跨越多通路链路(例如,基于PCIe、USB或CIO协议的链路)连接的下游装置的连接的其它连接管理逻辑。
系统管理器可以使用寄存器接口来配置上游和下游通道,以在主机装置(例如,上游装置202和/或任何居间重定时器204、206)和下游连接装置(208)之间建立非对称链路接口。系统管理器可以使用下游连接装置208公布的寄存器信息来判断下游连接装置是否包括可以处理上游或下游流量的附加通道的接口端口。类似地,系统管理器可以使用来自重定时器的寄存器信息来判断任何居间重定时器204、206是否可以支持超过标准数量的上行链路或下行链路通道。上游部件202的上游端口210也应当被配置为支持多个上游和/或下游通道以支持非对称接口。如果所有部件都包括可以支持非对称接口的端口,那么系统管理器可以将端口和对应通道配置为处于非对称配置中(例如,通过上游部件202、下游部件208和任何居间重定时器204、206上的寄存器接口)。
在一些实施例中,系统管理器可以使用带宽拓扑信息来动态调节上游和/或下游通道的数量以适应将使用超过一种类型的通道(例如,上游和下游)的连接装置的流量。例如,监视器可以使用比上游通道更多的下游通道,而存储装置或视频相机可以使用比下游通道更多的上游通道。如果通道上有带宽可用,那么系统管理器可以切换多通道链路的一条或多条通道的方向以建立非对称接口。
图3A是根据本公开的实施例的示例性多通道互连架构300的示意图。尽管可以将本文描述的系统和方法应用于任何数量的总通道或切换通道,图3A和图3B示出了四条通道,其中一条切换通道用于解释的目的。多通道互连架构300可以包括上游部件302。上游部件302可以类似于图2的上游部件202。上游部件302可以包括第一下游端口312和第一上游端口314。多通道互连架构300还可以包括下游部件304。下游部件304可以类似于下游部件208。下游部件304可以包括第二下游端口316和第二上游端口318。第一下游端口312可以通过包括通道0和通道1的下游链路耦合到第二下游端口316。第一上游端口314可以通过包括通道2和通道3的上游链路耦合到第二上游端口318。
第一下游端口312、第一上游端口314、第二下游端口316和第二上游端口318可以包括可以支持流量方向上的切换的逻辑电路和软件。例如,上游部件302可以包括控制器350,其包括被实施成硬件或软件之一或两者的逻辑,以用于切换多通道互连架构300的一条或多条通道的方向。控制器350还可以控制一个或多个端口以适应数据流量的增大(或减小)。下游部件304也可以包括控制器360,其可以类似于控制器350,其包括被实施成硬件或软件之一或两者的逻辑。控制器360可以控制下游部件304中的一个或多个端口,以适应通过相应端口的数据流量的增大或减小。
控制器350可以是或可以包括系统管理器。系统管理器可以是例如CIO连接管理器、PCIe连接管理器或其它类型的用于管理多通道互连架构的链路方向的系统管理软件。系统管理软件可以使用一个或多个参数来确定端口可以适应进入或离开端口的数据流量的增大。此外,系统管理器可以使用一个或多个参数来确定连接部件可以受益于非对称通道配置。系统管理器可以使用寄存器设置来指示通道方向的改变。例如,系统管理器可以设置上游部件302和/或下游部件304中的寄存器以使得每个部件识别通道方向的改变。系统管理器还可以判断相应端口是否可以适应通道流量的增大。例如,专用下游端口可能无法适应任何上游流量。系统管理器可以在执行任何动态通道方向切换之前判断端口是否可以适应通道方向切换。
多通道链路架构300示出了两个系统之间的示例性接口:上游部件302和下游部件304。接口包括两个下游通道:第一下游通道322(通道0)和第二下游通道324(通道1)。接口还包括两个上游通道:第一上游通道326(通道2)和第二上游通道328(通道3)。图3B是根据本公开的实施例的示例性通道方向切换的示意图。在图3A和图3B中所示的示例性情形中,在对称模式到非对称模式之间动态切换多通道链路(其中,下游通道322和324保持为下游通道,并且上游通道328保持为上游通道,但其中通道2326变为下游通道)。
可以基于使用要求来确定通道切换。例如,可以在向域中热插拔新装置或新能力时触发通道切换。系统管理器可以确定一个或多个运行协议可以遵守新的通道方案。如果系统管理器确定新通道配置可以启用新能力和/或更好地利用资源,它将触发通道切换。如先前所提及的,系统管理器可以与新连接装置(例如,热插拔连接装置)建立连接。系统管理器可以确定一个或多个参数,例如带宽信息、数据方向偏向(例如,更多数据是流向上游还是下游——这种情况的示例是连接的监视器,其将受益于更多下游通道)。系统管理器可以使用系统和/或装置寄存器设置来指示通道切换。例如,开/关寄存器设置可以指示通道切换的存在与否。其它寄存器也可以用于指示被切换的通道的数量以及通道切换的方向。
图4是根据本公开的实施例的用于动态高速通道方向切换的过程流程图400。一开始,有形地体现在主机装置上的系统管理器可以检测连接到主机装置的下游或外围连接装置的连接(402)。主机装置可以检测跨越基于热插拔或基于PCIe的多通道链路的下游或外围连接装置。在一些实施例中,主机装置可以判断下游连接装置是否可以支持多种互连协议,例如可以包括PCIe链路、CIO链路、USB链路等的多通道链路。系统管理器逻辑可以确定连接装置可以受益于非对称通道配置(404)。例如,系统管理器可以使用带宽信息、系统使用要求、系统资源可用性、连接装置的非对称通道支持特征、以及其它参数,以确定操作用于连接装置的协议可以支持或遵守非对称通道配置。
系统管理器可以确定一个或多个连接参数以配置非对称链路(406)。例如,系统管理器可以为连接装置确定通道方向性偏向。如果装置是监视器,例如,监视器可以支持下游通道数量的增大,因为用于监视器的下游带宽使用大于上游带宽使用。对于监视器而言,系统管理器可以使上游通道中的一个或多个切换成一个或多个下游通道。系统管理器还可以基于带宽使用能力、链路的总带宽可用性、构成互连的上游和下游端口的发射和接收带宽能力等来确定要切换的通道的数量。
系统管理器可以使连接装置发射高速有序集(UNBUNDLE_OS)以解除所标识的通道的捆绑(408)。可以在要解除捆绑的通道上发射UNBUNDLE_OS。例如,在监视器的情况下,监视器可以对要切换到下游通道的上游通道解除捆绑。系统管理器可以使主机装置和连接装置停止在解除捆绑的通道上发射或接收数据(410)。例如,在监视器的情况下,监视器可以停止在上行链路通道上发射,并且主机装置可以停止在上行链路通道上接收。
系统管理器可以使多通道链路的一条或多条通道切换方向(412)。对于监视器的示例而言,系统管理器可以使用寄存器设置指令来使针对一条或多条通道的寄存器设置为通道方向改变。寄存器访问可以是在主机装置和连接装置两者处都设置的开/关寄存器比特。寄存器设置可以是针对要切换方向的多通道链路的每条通道而设置的。寄存器的设置可以为一条或多条通道确立通道方向改变(414)。
系统管理器可以对跨越一条或多条切换的通道的数据发射或接收进行初始化(416)。系统管理器可以执行连接建立程序以及其它通道初始化步骤,以促进使用切换方向的通道进行发射或接收。系统管理器可以从连接装置接收切换的通道的初始化的确认(418)。例如,可以在未切换的通道上(例如在剩余的未切换的上游通道上)接收确认。
系统管理器可以接收高速有序集(BUNDLE_OS),其指示要将切换的通道与同一方向上的其它通道捆绑(420)。主机装置和连接装置然后可以使用多通道链路进行数据的发射和接收。
图5是根据本公开的实施例的用于使连接装置切换多通道互连的一条或多条通道的过程流程图500。在跨越基于热插拔或基于PCIe的多通道链路连接到主机装置之后,连接装置可以接收指令,以切换多通道链路的一条或多条通道的方向(502)。例如,要切换的一条或多条通道可以是被配置为在第一方向上引导数据的第一组通道的部分。多通道链路还可以包括被配置为在与第一方向相反的第二方向上引导数据的第二组通道。向主机装置发射高速有序集(UNBUNDLE_OS),以解除将连接装置链接到主机装置的一条或多条单向通道的捆绑(504)。停止使用被指示用于方向切换的一条或多条通道(506)。连接装置可以解除第一组通道的所有通道的捆绑(508)。连接装置可以接收指示以改变解除捆绑的通道中的一条或多条通道的方向(510)。例如,连接装置可以接收指示,以改变控制一条或多条通道的方向的寄存器设置。寄存器设置可以是比特设置,例如开/关设置,以使耦合到通道的端口改变数据流量的方向(例如,从发射变为接收,或反之)。
被切换的一条或多条通道可以由主机装置进行初始化(512)。连接装置可以在上游通道上发射确认(514)。连接装置可以接收BUNDLE_OS高速有序集以将切换的通道与第二组通道捆绑(516)。连接装置和主机装置可以使用第一和第二组通道进行数据的发射和接收。
前面的公开内容已经给出了若干示例测试链路状态,其可以补充互连协议中定义的标准链路状态。应当理解,除了上文指出的那些之外,还可以提供其它测试链路状态,而不脱离本公开内包含的更一般化原则。例如,尽管本文论述的示例性状态机和有序序列中的一些是参考PCIe或基于PCIe的协议描述的,但应当认识到,可以对其它互连协议做出类似的对应增强,其它互连协议例如是OpenCAPITM、Gen-ZTM、UPI、通用串行总线(USB)、用于加速器的高速缓存一致性互连(CCIXTM)、先进微型装置TM(AMDTM)的InfinityTM、通用通信接口(CCI)或高通TM的CentriqTM互连等。
注意,可以如前所述在任何电子装置或系统中实施上述的设备、方法和系统。作为具体例示,以下附图提供了用于利用本文所述公开内容的示例性系统。在更详细地描述以下系统时,若干不同的互连被公开、描述,并且根据以上论述重新讨论了这些互连。而且显而易见的是,可以将上文所述的改进应用于那些互连、织构或架构中的任一者。例如,可以实施主机和装置,它们被装备有用于在多种计算架构中的任一种中(例如,使用多种不同互连或织构中的任一种)实施以上示例中论述的认证和测量架构的功能。例如,主机可以连接到支持个人计算系统(例如,实施于膝上型计算机、台式机、移动电话、智能电话、物联网(IoT)装置、智能电器、游戏控制台、媒体控制台等中)内的认证架构的装置。在另一个示例中,主机可以连接到支持服务器计算系统(例如,机架式服务器、刀片服务器、塔式服务器、机架规模服务器架构或其它非聚集服务器架构)以及其它示例内的认证架构的装置。
一种互连织构架构包括外围部件互连(PCI)快速(PCIe)架构。PCIe的主要目标是使得来自不同供应商的部件和装置能够在跨越多个市场细分、客户端(台式机和移动设备)、服务器(标准的和企业的)以及嵌入式和通信装置的开放式架构中互操作。PCI快速是为各种将来的计算和通信平台定义的高性能通用I/O互连。一些PCI属性(例如其使用模型、负载-存储架构和软件接口)已经通过其修订版而得以维持,而先前的并行总线实施方式已经被高度可缩放的完全串行接口替代。PCI快速的更近版本利用了点到点互连、基于开关的技术和封包化协议中的进步,以输送新水平的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性和错误处理是PCI快速所支持的高级特征中的一些。
参考图6,示出了由将一组部件互连的点到点链路构成的织构的实施例。系统600包括耦合到控制器集线器615的处理器605和系统存储器610。处理器605包括任何处理元件,例如微处理器、主机处理器、嵌入式处理器、协处理器或其它处理器。处理器605通过前侧总线(FSB)606耦合到控制器集线器615。在一个实施例中,FSB 606是如下所述的串行点到点互连。在另一个实施例中,链路606包括符合不同互连标准的串行差分互连架构。
系统存储器610包括任何存储器装置,例如随机存取存储器(RAM)、非易失性(NV)存储器或系统600中的装置可访问的其它存储器。系统存储器610通过存储器接口616耦合到控制器集线器615。存储器接口的示例包括双数据速率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器615是外围部件互连快速(PCIe或PCIE)互连分级结构中的根集线器、根复合体或根控制器。控制器集线器615的示例包括芯片组、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。术语芯片组常常是指两个物理上独立的控制器集线器,即,耦合到互连控制器集线器(ICH)的存储器控制器集线器(MCH)。注意,当前的系统常常包括与处理器605集成的MCH,而控制器615用于以与下文所述的类似的方式与I/O装置通信。在一些实施例中,任选地通过根复合体615支持对等路由。
在此,控制器集线器615通过串行链路619耦合到交换机/网桥620。也可以被称为接口/端口617和621的输入/输出模块617和621可以包括/实施分层协议栈,以在控制器集线器615和交换机620之间提供通信。在一个实施例中,多个装置能够耦合到交换机620。
交换机/网桥620将数据包/消息从装置625向上游(即沿分级结构向上朝向根复合体)路由到控制器集线器615,以及向下游(即沿分级结构向下离开根控制器)从处理器605或系统存储器610路由到装置625。在一个实施例中,交换机620被称为多个虚拟PCI到PCI桥装置的逻辑组件。装置625包括要耦合到电子系统的任何内部或外部装置或部件,例如I/O装置、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘驱动器、存储装置、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储装置、Firewire装置、通用串行总线(USB)装置、扫描仪和其它输入/输出装置。在PCIe行话中,常常将例如装置称为端点。尽管未具体示出,但装置625可以包括PCIe到PCI/PCI-X桥,以支持旧式或其它版本的PCI装置。PCIe中的端点装置常常被分类为旧式、PCIe或根复合体集成端点。
图形加速器630还通过串行链路632耦合到控制器集线器615。在一个实施例中,图形加速器630耦合到MCH,MCH耦合到ICH。交换机620,因此还有I/O装置625然后耦合到ICH。I/O模块631和618也用于实施分层协议栈以在图形加速器630和控制器集线器615之间通信。类似于上文论述的MCH,图形控制器或图形加速器630自身可以集成在处理器605中。
转向图7,示出了分层协议栈的实施例。分层协议栈700包括任何形式的分层通信栈,例如快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或其它分层栈。尽管下文紧接着参考图6-9所做的论述涉及PCIe栈,但可以将相同的概念应用于其它互连栈。在一个实施例中,协议栈700是包括事务层705、链路层710和物理层720的PCIe协议栈。诸如图1中的接口617、618、621、622、626和631的接口可以被表示为通信协议栈700。表示为通信协议栈也可以被称为实施/包括协议栈的模块或接口。
PCI快速使用数据包在部件之间传送信息。数据包形成于事务层705和数据链路层710中,以从发射部件向接收部件传递信息。在发射的数据包流经其它层时,利用在那些层处理数据包所必要的附加信息来扩展发射的数据包。在接收侧,发生反向过程,并且数据包被从其物理层720表示变换成数据链路层710表示,并且最终(对于事务层数据包)变换成可以由接收装置的事务层705处理的形式。
事务层
在一个实施例中,事务层705用于在装置的处理内核和互连架构(例如数据链路层710和物理层720)之间提供接口。就此而言,事务层705的主要责任是组装和分解数据包(即,事务层数据包或TLP)。事务层705典型地为TLP管理基于信用的流控制。PCIe实施拆分事务,即,带有请求和响应的事务在时间上分开,从而在目标装置收集用于响应的数据时,允许链路传递其它流量。
此外,PCIe利用了基于信用的流控制。在该方案中,装置为事务层705中的接收缓冲器中的每者公布初始信用量。在链路的相对端的外部装置(例如图1中的控制器集线器115)对每个TLP所消耗的信用的数量进行计数。如果事务未超过信用极限,可以发射事务。在接收到响应时,恢复信用量。信用方案的优点在于,只要未遇到信用极限,信用返回的延迟不影响性能。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括用于向/从存储器映射的位置传输数据的读取请求和写入请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,诸如32比特地址的短地址格式或诸如64比特地址的长地址格式。配置空间事务用于访问PCIe装置的访问配置。用于配置空间的事务包括读取请求和写入请求。消息空间事务(或简称消息)被定义为支持PCIe代理之间的带内通信。
因此,在一个实施例中,事务层705组装数据包报头/有效载荷706。可以在PCIe规范网站的PCIe规范中找到当前数据包报头/有效载荷的格式。
快速参考图8,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符800是用于传递事务信息的机制。就此而言,事务描述符800支持系统中的事务的标识。其它潜在使用包括跟踪默认事务排序的修改和事务与信道的关联。
事务描述符800包括全局标识符字段802、属性字段804和信道标识符字段806。在例示的示例中,全局标识符字段802被示为包括本地事务标识符字段808和源标识符字段810。在一个实施例中,全局事务标识符802对于所有未解决的请求而言是唯一的。
根据一种实施方式,本地事务标识符字段808是由请求代理产生的字段,并且对于要求完成该请求代理的所有未解决的请求而言都是唯一的。此外,在该示例中,源标识符810唯一地标识PCIe体系结构内的请求器代理。因此,与源ID 810一起,本地事务标识符808字段提供了事务在体系结构域内的全局标识。
属性字段804指定事务的特性和关系。就此而言,属性字段804可能用于提供附加信息,其允许修改事务的默认处理。在一个实施例中,属性字段804包括优先级字段812、保留字段814、排序字段816和非窥探字段818。在这里,优先级子字段812可以由发起者修改,以向事务分配优先级。保留属性字段814为将来或供应商定义的用途而保留。可以使用保留属性字段来实施使用优先级或安全属性的可能用途模型。
在该示例中,排序属性字段816用于供应任选的信息,其传达可以修改默认排序规则的排序类型。根据一个示例性实施方式,“0”的排序属性表示要应用的默认排序规则,其中排序属性“1”表示放松的排序,其中写入可以传递相同方向上的写入,并且读取完成可以传递相同方向上的写入。窥探属性字段818用于判断事务是否被窥探。如所示,信道ID字段806标识与事务相关联的信道。
链路层
链路层710也被称为数据链路层710,其充当事务层705和物理层720之间的中间级。在一个实施例中,数据链路层710的责任是提供用于在链路上的两个部件之间交换事务层数据包(TLP)的可靠机制。数据链路层710的一侧接受由事务层705组装的TLP,应用数据包序列标识符711,即,标识号或数据包号,计算并应用错误检测代码,即,CRC 712,以及向物理层720提交修改的TLP,以跨越物理层向外部装置传输。
物理层
在一个实施例中,物理层720包括逻辑子块721和电气子块722,以向外部装置物理地传输数据包。在这里,逻辑子块721负责物理层721的“数位”功能。就此而言,逻辑子块包括发射部和接收部,发射部用于准备要由物理子块722发射的向外的信息,接收部用于标识并准备所接收的信息,之后将其传递到链路层710。
物理块722包括发射器和接收器。逻辑子块721为发射器供应符号,发射器对其进行串行化并发射到外部装置上。接收器被供应有来自外部装置的串行化符号,并将接收的信号变换成比特流。比特流被解串行化并供应到逻辑子块721。在一个实施例中,采用8b/10b传输代码,其中发射/接收十比特的符号。在此,使用特殊符号来构造具有帧723的数据包。此外,在一个示例中,接收器还提供从进入的串行流恢复的符号时钟。
如上所述,尽管参考PCIe协议栈的具体实施例论述了事务层705、链路层710和物理层720,但分层协议栈不受此限制。实际上,可以包括/实施任何分层协议。作为示例,被表示为分层协议的端口/接口包括:(1)用于组装数据包的第一层,即,事务层;用于按顺序排列数据包的第二层,即,链路层;以及用于发射数据包的第三层,即,物理层。作为具体示例,利用常见标准接口(CSI)分层协议。
接下来参考图9,示出了PCIe串行点对点织构的实施例。尽管示出了PCIe串行点对点链路的实施例,但串行点对点链路不受此限制,因为它包括用于发射串行数据的任何传输路径。在所示的实施例中,基本PCIe链路包括两个低电压差分驱动的信号对:发射对906/911和接收对912/907。因此,装置905包括用于向装置910发射数据的发射逻辑906和用于从装置910接收数据的接收逻辑907。换言之,在PCIe链路中包括两条发射路径(即路径916和917)以及两条接收路径(即路径918和919)。
发射路径是指用于发射数据的任何路径,例如传输线路、铜线路、光学线路、无线通信信道、红外通信链路或其它通信路径。诸如装置905和装置910的两个装置之间的连接被称为链路,例如链路415。链路可以支持一个通道——每条通道代表一组差分信号对(一对用于发射,一对用于接收)。为了缩放带宽,链路可以聚集由xN表示的多条通道,其中N是任何支持的链路宽度,例如1、2、4、8、12、16、32、64或更宽。
差分对是指用于发射差分信号的两条发射路径,例如线路916和917。作为示例,在线路916从低电压电平切换到高电压电平时,即上升沿,线路917从高逻辑电平驱动到低逻辑电平,即下降沿。差分信号可能展现出更好的电特性,例如更好的信号完整性,即交叉耦合、电压过冲/欠冲、振铃等。这样允许更好的时序窗口,其实现了更快的发射频率。
转到图10,示出了形成有处理器的示例性计算机系统的方框图,该处理器包括用于执行指令的执行单元,其中互连中的一个或多个实施根据本公开的一个实施例的一个或多个特征。根据本公开,系统1000包括例如本文所述的实施例中的诸如处理器1002的部件,以采用包括用于执行用于处理数据的算法的逻辑的执行单元。系统1000代表基于可从加利福尼亚圣克拉拉的英特尔公司得到的PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理系统,尽管也可以使用其它系统(包括具有其它微处理器的PC、工程设计工作站、机顶盒等)。在一个实施例中,样本系统1000执行可从华盛顿雷德蒙的微软公司获得的WINDOWSTM操作系统的版本,尽管也可以使用其它操作系统(例如,UNIX和Linux)、嵌入式软件和/或图形用户界面。于是,本公开的实施例不限于硬件电路和软件的任何特定组合。
实施例不限于计算机系统。可以在诸如手持式装置和嵌入式应用的其它装置中使用本公开的替代实施例。手持式装置的一些示例包括蜂窝电话、因特网协议装置、数字摄像机、个人数字助理(PDA)和手持式PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或根据至少一个实施例的可以执行一个或多个指令的任何其它系统。
在该例示的实施例中,处理器1002包括一个或多个执行单元1008,以实施用于执行至少一个指令的算法。可以在单处理器台式计算机或服务器系统的上下文中描述一个实施例,但替代实施例可以包括在多处理器系统中。系统1000是“集线器”系统架构的示例。计算机系统1000包括处理器1002以处理数据信号。作为一个例示性示例,处理器1002包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施指令集的组合的处理器、或任何其它处理器装置,例如数字信号处理器。处理器1002耦合到在处理器1002和系统1000中的其它部件之间发射数据信号的处理器总线1010。系统1000的元件(例如,图形加速器1012、存储器控制器集线器1016、存储器1020、I/O控制器集线器1024、无线收发器1026、闪存BIOS 1028、网络控制器1034、音频控制器1036、串行扩展端口1038、I/O控制器1040等)执行熟悉本领域的人员所公知的常规功能。
在一个实施例中,处理器1002包括1级(L1)内部高速缓存存储器1004。取决于该架构,处理器1002可以具有单个内部高速缓存或多级内部高速缓存。取决于特定实施方式和需要,其它实施例包括内部和外部高速缓存两者的组合。寄存器文件1006用于在各种寄存器中存储不同类型的数据,各种寄存器包括整数寄存器、浮点寄存器、矢量寄存器、分组寄存器(bankedregister)、阴影寄存器、检查点寄存器、状态寄存器和指令指针寄存器。
包括用于执行整数和浮点运算的逻辑的执行单元1008也驻留在处理器1002中。在一个实施例中,处理器1002包括微码(μcode)ROM,以存储微码,在被执行时,微码执行用于特定宏指令的算法或处理复杂情形。在此,微码可能是可更新的,以处理处理器1002的逻辑缺陷/修复。对于一个实施例,执行单元1008包括用于处理打包的指令集1009的逻辑。通过在通用处理器1002的指令集中包括打包的指令集1009连同用于执行指令的相关联的电路,可以使用通用处理器1002中的打包的数据来执行很多多媒体应用所使用的操作。于是,通过使用处理器的数据总线的完整带宽来对打包的数据执行操作,很多多媒体应用被加速并更有效率地执行。这样可能消除跨越处理器的数据总线传输更小单元数据以一次一个数据单元地执行一个或多个操作的需求。
也可以在微控制器、嵌入式处理器、图形装置、DSP和其它类型的逻辑电路中使用执行单元1008的替代实施例。系统1000包括存储器1020。存储器1020包括动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、闪存存储器装置或其它存储器装置。存储器1020存储要由处理器1002执行的数据信号所代表的指令和/或数据。
注意,可以在图10中所示的一个或多个互连上利用本公开的上述特征或方面中的任何特征或方面。例如,未示出的用于耦合处理器1002的内部单元的管芯上互连(ODI)实施上述公开内容的一个或多个方面。或者该公开内容与处理器总线1010(例如,英特尔快速路径互连(QPI)或其它已知高性能计算互连)、通往存储器1020的高带宽存储器路径1018、通往图形加速器1012的点对点链路(例如,外围部件互连快速(PCIe)兼容的织构)、控制器集线器互连1022、I/O或用于耦合其它例示的部件的其它互连(例如,USB、PCI、PCIe)相关联。这种部件的一些示例包括音频控制器1036、固件集线器(闪存BIOS)1028、无线收发器1026、数据储存器1024、包含用户输入和键盘接口1042的旧式I/O控制器1010、诸如通用串行总线(USB)的串行扩展端口1038、以及网络控制器1034。数据存储装置1024可以包括硬盘驱动器、软盘驱动器、CD-ROM装置、闪存存储器装置或其它大容量存储装置。
现在参考图11,示出了根据本公开的实施例的第二系统1100的框图。如图11所示,多处理器系统1100是点到点互连系统,并且包括经由点到点互连1150耦合的第一处理器1170和第二处理器1180。处理器1170和1180中的每个可以是处理器的某一版本。在一个实施例中,1152和1154是串行点对点一致性互连织构的部分,例如英特尔的快速路径互连(QPI)架构。结果,可以在QPI架构内实施本公开。
尽管被示为仅有两个处理器1170、1180,但要理解,本公开的范围不受此限制。在其它实施例中,在给定处理器中可以有一个或多个附加的处理器。
处理器1170和1180被示为分别包括集成存储器控制器单元1172和1182。处理器1170还包括点对点(P-P)接口1176和1178作为其总线控制器单元的部分;类似地,第二处理器1180包括P-P接口1186和1188。处理器1170、1180可以使用P-P接口电路1178、1188经由点对点(P-P)接口1150交换信息。如图11所示,IMC 1172和1182将处理器耦合到相应存储器,即存储器1132和存储器1134,它们可以是本地附接到相应处理器的主存储器的部分。
处理器1170、1180均使用点对点接口电路1176、1194、1186和1198经由个体P-P接口1152、1154与芯片组1190交换信息。芯片组1190还沿高性能图形互连1139经由接口电路1192与高性能图形电路1138交换信息。
共享高速缓存(未示出)可以被包括在处理器中或两个处理器外部;但仍然经由P-P互连与处理器连接,使得如果处理器被置于低功率模式中,可以在共享高速缓存中存储任一个或两个处理器的本地高速缓存信息。
芯片组1190可以经由接口1196耦合到第一总线1116。在一个实施例中,第一总线1116可以是外围部件互连(PCI)总线或诸如PCI快速总线或另一种第三代I/O互连总线的总线,尽管本公开的范围不受此限制。
如图11中所示,各种I/O装置1114连同将第一总线1116耦合到第二总线1120的总线桥1118耦合到第一总线1116。在一个实施例中,第二总线1120包括低引脚数(LPC)总线。在一个实施例中,各种装置耦合到第二总线1120,所述装置例如包括键盘和/或鼠标1122、通信装置1127和存储单元1128,例如磁盘驱动器或常常包括指令/代码和数据1130的其它大容量存储装置。此外,音频I/O 1124被示为耦合到第二总线1120。注意,其它架构是可能的,其中所包括的部件和互连架构有所变化。例如,替代图11的点对点架构,系统可以实施多点总线或其它这样的架构。
尽管已经相对于有限数量的实施例描述了本公开,但本领域的技术人员将认识到其许多修改和变化。旨在使所附权利要求覆盖落在本公开的真实精神和范围内的所有这种修改和变化。
设计可以经历从创建到模拟到制造的各种阶段。代表设计的数据可以通过若干方式代表设计。首先,在模拟中有用的是,可以使用硬件描述语言另一种功能描述语言来代表硬件。此外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,大部分设计在某一阶段达到代表在硬件模型中物理放置各种装置的数据的级别。在使用常规半导体制造技术的情况下,代表硬件模型的数据可以是指定在用于产生集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在设计的任何表达中,可以在任何形式的机器可读介质中存储数据。存储器或磁性或光学储存器(例如磁盘)可以是机器可读介质,以存储经由光波或电波发射的信息,光波或电波被调制或以其它方式生成其以发射这样的信息。在发射指示或承载代码或设计的电载波时,在执行电信号的复制、缓冲或重新发射的程度上,做出新副本。于是,通信提供者或网络提供者可以在有形的机器可读介质上至少暂时地存储制品,例如编码到载波中的体现本公开的实施例的技术的信息。
本文中使用的模块是指硬件、软件和/或固件的任何组合。作为示例,模块包括与非暂时性介质相关联的硬件,例如微控制器,以存储适于由微控制器执行的代码。因此,在一个实施例中提到模块是指被特别配置为识别和/或执行要保存在非暂态介质上的代码的硬件。此外,在另一个实施例中,模块的使用是指包括代码的非暂态介质,该代码特别适于由微控制器执行以执行预定操作。并且可以推断出,在又一实施例中,术语模块(在该示例中)可以指微控制器和非暂态介质的组合。图示为独立的模块边界常常共同变化并且可能交叠。例如,第一和第二模块可以共享硬件、软件、固件或其组合,同时可能保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,例如晶体管、寄存器或其它硬件,例如可编程逻辑器件。
在一个实施例中,短语“被配置为”的使用是指布置、装配、制造、供应销售、进口和/或设计设备、硬件、逻辑或元件以执行指定或确定的任务。在该示例中,如果被设计、耦合和/或互连以执行指定任务,则不操作的设备或元件仍然“被配置为”执行所述指定任务。作为纯例示性示例,逻辑门可以在操作期间提供0或1。但“被配置为”向时钟提供启用信号的逻辑门不包括可以提供1或0的每个可能的逻辑门。相反,逻辑门是以某种方式耦合的逻辑门,在操作期间,1或0输出用于启用时钟。再次指出,术语“被配置为”的使用并不要求操作,而是集中于设备、硬件和/或元件的潜伏状态,其中在潜伏状态中,该设备、硬件和/或元件被设计为在设备、硬件和/或元件正在操作时执行特定任务。
此外,在一个实施例中,短语“能够”和/或“可操作用于”的使用是指一些设备、逻辑、硬件和/或元件被设计为使得能够通过指定方式使用该设备、逻辑、硬件和/或元件。注意,在一个实施例中,上述“用以”、“能够”或“可操作用于”的使用是指设备、逻辑、硬件和/或元件的潜伏状态,其中该设备、逻辑、硬件和/或元件并未操作,但被设计为使得能够以指定方式使用设备。
如本文中使用的,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表达。通常,逻辑电平、逻辑值的使用也被称为1和0,其仅仅代表二进制逻辑状态。例如,1是指高逻辑电平,并且0是指低逻辑电平。在一个实施例中,诸如晶体管或闪存单元的存储单元能够保存单一逻辑值或多个逻辑值。然而,已经使用过计算机系统中的值的其它表示。例如,十进制数十也可以表达为二进制值的1010和十六进制字母A。因此,值包括能够保存在计算机系统中的信息的任何表达。
此外,状态可以由值或值的部分代表。作为示例,诸如逻辑一的第一值可以代表默认或初始状态,而诸如逻辑0的第二值可以代表非默认状态。此外,在一个实施例中,术语重置和设置分别是指默认和更新的值或状态。例如,默认值可能包括高逻辑值,即重置,而更新的值可能包括低逻辑值,即设置。注意,可以利用值的任何组合来代表任何数量的状态。
可以经由机器可访问、机器可读、计算机可访问或计算机可读介质上存储的可以由处理元件执行的指令或代码来实施上文阐述的方法、硬件、软件、固件或代码的实施例。一种非暂态机器可访问/可读介质包括以机器(例如,计算机或电子系统)可读的形式提供(即存储和/或发射)信息的任何机构。例如,非暂态机器可访问介质包括随机存取存储器(RAM),例如静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪速存储器装置;电存储装置;光存储装置;声存储装置;用于保存从暂态(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其它形式的存储装置等;其与可以从其接收信息的非暂态介质区分开。
用于对逻辑进行编程以执行本公开的实施例的指令可以存储于系统中的存储器内,例如DRAM、高速缓存、闪存存储器或其它储存器。此外,可以经由网络或通过其它计算机可读介质分配指令。于是,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或发射信息的任何机构,但不限于软盘、光盘、压缩磁盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器、或用于通过因特网经由电、光、声或其它形式的传播信号(例如,载波、红外信号、数字信号等)传输信息时使用的有形机器可读储存器。因此,计算机可读介质包括适于以机器(例如,计算机)可读的形式存储或发射电子指令或信息的任何类型的有形机器可读介质。
在整个本说明书中提到“一个实施例”或“实施例”表示在本公开的至少一个实施例中包括结合实施例所描述的特定特征、结构或特性。于是,整个本说明书中各处出现的短语“在一个实施例中”或“在实施例中”未必全都指相同实施例。此外,特定特征、结构或特性可以以任何适当的方式结合在一个或多个实施例中。
在以上说明书中,已经参考具体示例性实施例给出了详细描述。然而,将要明了的是,可以对其做出各种修改和改变而不脱离所附权利要求中阐述的本公开的更宽的精神和范围。因此,说明书和附图应被认为是用于例示性意义而非限制性意义。此外,实施例和其它示例性语言的以上使用未必是指相同实施例或相同示例,而是可以指不同且有区别的实施例,以及可能相同的实施例。
系统、方法和设备可以包括以下示例之一或组合:
示例1是一种用于基于外围部件互连快速(PCIe)协议配置多通道链路的设备,所述多通道链路包括在第一方向上配置的第一组捆绑通道和在第二方向上配置的第二组捆绑通道,第二方向与第一方向相反,第一组捆绑通道包括与第二组捆绑通道相等数量的通道,所述设备包括链路配置逻辑,其用于:解除第一组捆绑通道的捆绑;将一个或多个解除捆绑的通道的方向从第一方向切换到第二方向;以及将切换的一个或多个解除捆绑的通道与第二组捆绑通道捆绑;并且所述设备用于在第二组捆绑通道上执行数据发射或接收。
示例2可以包括示例1的主题,所述链路配置逻辑用于确定装置跨越多通道链路被连接;确定用于所述装置的一个或多个系统参数;以及确定所述装置能够支持通道方向切换。
示例3可以包括示例2的主题,所述链路配置逻辑用于向装置发射UNBUNDLE_OS信号,以使得所述装置解除第一组捆绑通道的捆绑。
示例4可以包括示例2-3的任一个的主题,所述链路配置逻辑用于向装置发射BUNDLE_OS信号,以将切换的一个或多个解除捆绑的通道与第二组捆绑通道捆绑。
示例5可以包括示例2的主题,其中用于所述装置的一个或多个系统参数包括系统的带宽、装置的数据方向偏好、或支持非对称通道配置的装置配置。
示例6可以包括示例2或5的主题,其中该装置的一个或多个系统参数包括确定连接装置是能够热插拔的装置。
示例7可以包括示例2或5或6的主题,其中该装置的一个或多个系统参数包括确定使用非对称通道配置增大了系统资源的利用率。
示例8可以包括示例1的主题,链路配置逻辑用于设置寄存器设置以切换一个或多个解除捆绑的通道的方向。
示例9可以包括示例8的主题,链路配置逻辑用于发射寄存器设置指令以使得连接装置切换多通道链路的一条或多条通道的方向。
示例10可以包括示例1的主题,其中该设备包括根端口控制器,以控制一个或多个互连端口切换多通道链路的一条或多条通道的方向。
示例11可以包括示例1的主题,其中在第一方向上配置的第一组捆绑通道包括一组下游通道,该组下游通道被配置为从该设备向下游连接装置引导数据,并且在第二方向上配置的第二组捆绑通道包括一组上游通道,该组上游通道被配置为从下游连接装置向该设备引导数据。
示例12可以包括示例11的主题,其中链路配置逻辑用于确定下游连接装置使用比上游带宽更多的下游带宽;确定下游连接装置能够支持将一个或多个上游通道切换为一个或多个下游通道;以及使得下游连接装置将一个或多个上游通道切换为一个或多个下游通道;并且该设备用于在切换的一条或多条下游通道上发射数据。
示例13可以包括示例11的主题,其中链路配置逻辑用于确定下游连接装置使用比下游带宽更多的上游带宽;确定下游连接装置能够支持将一个或多个下游通道切换为一个或多个上游通道;以及使得下游连接装置将一个或多个下游通道切换为一个或多个上游通道;并且该设备用于在切换的一条或多条上游通道上接收数据。
示例14是一种有形地体现在非暂态计算机可读介质上的计算机程序产品,该计算机程序产品包括指令,该指令在被执行时,使得与基于外围部件互连快速(PCIe)的协议兼容的主机装置上体现的系统管理器检测外围装置跨越与PCIe协议兼容的多通道链路的连接;确定该外围装置受益于非对称通道结构;切换一条或多条通道的方向以建立一条或多条切换通道;以及使得主机装置和外围装置在一条或多条切换的通道上发射或接收数据。
示例15可以包括示例14的主题,还包括使得系统管理器执行如下操作的指令:标识多通道链路中的用于方向切换的一条或多条通道;停止在所标识的用于方向切换的一条或多条通道上的数据发射或接收;从多通道链路的第一组捆绑通道解除所标识的用于方向切换的一条或多条通道的捆绑;切换所标识的一条或多条通道的方向;并且将切换的一条或多条通道与第二组通道捆绑。
示例16可以包括示例15的主题,其中系统管理器向外围装置发射高速有序集UNBUNDLE_OS以使得外围装置解除所标识的一条或多条通道的捆绑。
示例17可以包括示例15的主题,其中系统管理器向外围装置发射高速有序集BUNDLE_OS以使得外围装置将所标识的一条或多条通道与第二组通道捆绑。
示例18可以包括示例14的主题,其中系统管理器用于确定外围装置使用比上游带宽更多的下游带宽;确定外围装置能够支持将一个或多个上游通道切换为一个或多个下游通道;使得外围装置将一个或多个上游通道切换为一个或多个下游通道;并且使得主机在切换的一条或多条下游通道上发射数据。
示例19可以包括示例14的主题,其中系统管理器用于确定下游连接装置使用比下游带宽更多的上游带宽;确定下游连接装置能够支持将一个或多个下游通道切换为一个或多个上游通道;使得下游连接装置将一个或多个下游通道切换为一个或多个上游通道;并且使得主机在切换的一条或多条上游通道上接收数据。
示例20是一种系统,其包括主机装置,主机装置包括:与基于外围部件互连快速(PCIe)的协议兼容的根端口,该主机包括系统管理器;以及跨越基于PCIe协议的多通道链路而连接到主机装置的部件,该多通道链路包括被配置为在第一方向上引导数据的第一组捆绑通道,以及被配置为在与第一方向相反的第二方向上引导数据的第二组捆绑通道,第一组捆绑通道包括与第二组捆绑通道相等数量的通道;系统管理器用于:确定部件的一个或多个操作参数;基于部件的一个或多个操作参数确定将一条或多条通道从第一方向切换到第二方向;使得主机装置将一条或多条通道从第一方向切换到第二方向;以及使得主机装置使用切换的通道与第二组捆绑通道。
示例21可以包括示例20的主题,其中在第一方向上配置的第一组捆绑通道包括一组下游通道,该组下游通道被配置为从该设备向下游连接装置引导数据,并且在第二方向配置的第二组捆绑通道包括一组上游通道,该组上游通道被配置为从下游连接装置向该设备引导数据。
示例22可以包括示例21的主题,其中系统管理器用于确定下游连接装置使用比上游带宽更多的下游带宽;确定下游连接装置能够支持将一个或多个上游通道切换为一个或多个下游通道;使得下游连接装置将一个或多个上游通道切换为一个或多个下游通道;并且使得主机装置在切换的一条或多条下游通道上发射数据。
示例23可以包括示例22的主题,其中该部件包括热插拔兼容监视器、热插拔兼容投影仪、热插拔兼容音频装置或热插拔兼容数据存储装置之一。
示例24可以包括示例21的主题,其中系统管理器用于确定下游连接装置使用比下游带宽更多的上游带宽;确定下游连接装置能够支持将一个或多个下游通道切换为一个或多个上游通道;使得下游连接装置将一个或多个下游通道切换为一个或多个上游通道;并且使得主机装置在切换的一条或多条上游通道上接收数据。
示例25可以包括示例24的主题,其中该部件包括热插拔兼容相机之一。
示例26可以包括示例1或14或20的主题,其中链路配置逻辑或系统管理器之一包括有形地实现于非暂态计算机可读介质上的连接管理器。
示例27可以包括示例1或14或20或26的主题,其中基于PCIe的协议包括收敛的I/O协议。
示例28是一种设备,包括用于切换将主机装置连接到所连接装置的基于PCIe的多通道链路的一条或多条通道的单元。
示例29可以包括示例28的主题,该设备包括:用于为连接装置确定一个或多个系统参数的单元,所述系统参数包括方向带宽使用;以及用于基于一个或多个系统参数切换多通道链路的一条或多条通道的方向的单元。
示例30可以包括示例28的主题,该设备包括用于使得主机装置和连接装置解除一组捆绑通道的捆绑的单元。
示例31可以包括示例28和30的主题,该设备包括用于使得主机装置和连接装置将被解除捆绑的一组通道与该设备使其切换方向的一条或多条通道捆绑的单元。
示例32是一种符合热插拔或PCIe协议的设备,该设备包括控制器逻辑,以跨越基于热插拔或基于PCIe的多通道链路从主机装置接收指令,将互连端口的一条或多条通道从第一方向切换到第二方向,解除端口的通道的捆绑,将一条或多条通道从第一方向切换到第二方向,捆绑端口的通道,并且使用切换的通道进行数据发射或接收。
示例33是一种由基于PCIe的主机装置的连接管理器执行的方法,该方法包括确定能够通过非对称通道配置增强下游连接装置。连接管理器能够指导连接装置切换多通道链路的一条或多条通道的方向。连接管理器能够使得连接装置在用于发射或接收之一的所有通道上发送高速有序集(UNBUNDLE_OS)。
示例34可以包括示例33的主题,并且还可以包括接收UNBUNDLE_OS有续集,并基于接收到UNBUNDLE_OS而激活或去激活多通道链路的一条或多条通道的发射或接收。
示例35可以包括示例33的主题,连接管理器能够使用主机装置和连接装置两者处的寄存器访问来切换多通道链路的一条或多条通道的方向。
示例36可以包括示例35的主题,连接管理器能够对切换的一条或多条通道进行初始化以在与先前配置相反的方向上操作。
示例37可以包括示例36的主题,连接管理器能够在多通道链路中的未切换的通道上从连接装置接收通道初始化消息。
示例38可以包括示例33-37的主题,连接管理器能够在用于向连接装置进行发射的所有通道上发射高速有序集(BUNDLE_OS)。
示例39是一种下游连接装置,其跨越与诸如CIO或USB协议的基于PCIe的协议兼容的多通道链路连接到主机装置。下游连接装置能够从主机装置接收切换多通道链路的一条或多条通道的方向的指示。下游连接装置能够向主机装置发射高速有序集(UNBUNDLE_OS)以解除多通道链路的一条或多条单向通道的捆绑。下游连接装置能够停止使用多通道链路的一条或多条通道。用于要切换的通道的寄存器设置能够被设置为使得通道方向被切换。
示例40可以包括示例39的主题,下游连接装置能够确认多通道链路中的要在相反方向上使用的一条或多条通道的初始化。由主机装置提示进行初始化。下游连接装置能够使用多通道链路的未切换的通道来发射确认。
示例41可以包括示例39或40的主题,下游连接装置能够接收高速有序集(UNBUNDLE_OS)以将切换的通道与同一方向的其它通道捆绑。下游连接装置然后能够使用这些通道进行发射或接收。
示例42可以包括示例1-40的任一个的主题,系统管理器或链路配置管理器在一个或多个端口或装置之一或两者处针对寄存器执行寄存器访问,该寄存器控制耦合到一个或多个端口的一条或多条通道的极性;并且向寄存器写入寄存器值以反转通道的子集的极性。寄存器访问能够包括设置与控制通道的极性相关联的比特。
示例43是一种设备,包括用于确定跨越多通道链路的下游连接装置的存在的单元;用于确定下游连接装置能够在非对称链路配置下操作的单元;用于使得多通道链路的一组通道改变极性的单元;以及用于跨越该组通道与下游连接装置传送数据的单元。
示例44是一种装置,包括用于跨越多通道链路传送数据的端口;用于存储寄存器设置的存储器寄存器,该寄存器设置包括控制多通道链路的每条通道的极性的一个或多个寄存器值;用于指示该装置能够在非对称链路配置下操作的单元;以及用于改变用于多通道链路的一条或多条通道的寄存器设置以切换一条或多条通道的方向的单元。
示例45是一种方法,包括确定跨越多通道链路的下游连接装置的存在;确定下游连接装置能够在非对称链路配置下操作;使得多通道链路的一组通道改变极性;以及跨越该组通道与下游连接装置传送数据。
示例46可以包括示例45的主题并且还可以包括使得多通道链路的一条或多条通道变成解除捆绑;切换多通道链路的通道的子集的极性;以及使得通道的子集被捆绑。
示例47可以包括示例46的主题,其中多通道链路包括第一方向上的第一组通道,以及第二方向上的第二组通道,第二方向与第一方向相反,并且该方法包括解除第一组通道的捆绑,切换第一组通道的子集的极性,以及将通道的子集与第二组通道捆绑。
示例48可以包括示例46的主题,并且还可以包括确定至少部分地基于一个或多个系统操作参数来切换多通道链路的一条或多条通道的方向,该系统操作参数包括以下各项中的一个或多个:系统的带宽、外围装置的数据方向偏好、支持非对称通道配置的装置配置、确定外围装置是能够热插拔的装置、或确定使用非对称通道配置提高了系统资源利用效率。
Claims (25)
1.一种用于配置多通道链路的设备,所述设备包括:
一个或多个端口,其包括用于支持所述多通道链路的硬件,其中,所述多通道链路包括在第一方向上配置的第一组捆绑通道以及在第二方向上配置的第二组捆绑通道,所述第二方向与所述第一方向相反,所述第一组捆绑通道包括与所述第二组捆绑通道相等数量的通道,所述设备包括:
链路配置逻辑,所述链路配置逻辑至少部分地实施在硬件电路中,以:
使得所述第一组捆绑通道被解除捆绑;
将解除捆绑的通道的子集的方向从所述第一方向切换到所述第二方向;以及
将所切换的解除捆绑的通道的子集与所述第二组捆绑通道捆绑,以形成所述第一方向上的减少的第一组捆绑通道和所述第二方向上的扩展的第二组捆绑通道;
所述一个或多个端口用于使用所述减少的第一组捆绑通道和所述扩展的第二组捆绑通道进行数据的发射和接收。
2.根据权利要求1所述的设备,其中,所述一个或多个端口包括基于外围部件互连快速(PCIe)的端口或基于热插拔的端口之一或两者。
3.根据权利要求2所述的设备,其中,所述一个或多个端口包括收敛的输入/输出(CIO)或基于通用串行总线(USB)的端口之一或两者。
4.根据权利要求1所述的设备,其中,在第一方向上配置的所述第一组捆绑通道包括一组下游通道,所述一组下游通道被配置为从所述设备向下游连接装置引导数据,并且在第二方向上配置的所述第二组捆绑通道包括一组上游通道,所述一组上游通道被配置为从所述下游连接装置向所述设备引导数据。
5.根据权利要求4所述的设备,其中,所述链路配置逻辑用于:
确定所述下游连接装置使用比上游带宽更多的下游带宽;
确定所述下游连接装置能够支持将上游通道的子集切换为下游通道的子集;以及
使得所述下游连接装置将所述上游通道的子集切换为所述下游通道的子集;并且
所述设备用于在所切换的所述下游通道的子集上发射数据。
6.根据权利要求4所述的设备,其中,所述链路配置逻辑用于:
确定所述下游连接装置使用比下游带宽更多的上游带宽;
确定所述下游连接装置能够支持将下游通道的子集切换为上游通道的子集;以及
使得所述下游连接装置将所述下游通道的子集切换为所述上游通道的子集;并且
所述设备用于在所切换的所述上游通道的子集上接收数据。
7.根据权利要求1所述的设备,所述链路配置逻辑用于使得解除捆绑的有序集解除所述第一组捆绑通道的捆绑,所述解除捆绑的有序集是跨越所述第一组捆绑通道发射的。
8.根据权利要求1所述的设备,所述链路配置逻辑使得捆绑的有序集将所切换的所述通道的子集与所述第二组通道捆绑。
9.根据权利要求1所述的设备,所述链路配置逻辑用于:
执行与所述一个或多个端口相关联的寄存器的寄存器访问,所述一个或多个端口控制耦合到所述一个或多个端口的一条或多条通道的极性;以及
向所述寄存器写入寄存器值,以反转所述通道的子集的极性。
10.一种由基于PCIe的主机装置的连接管理器执行的方法,所述方法包括:
确定能够通过非对称通道配置增强下游连接装置;
指导所述连接装置切换所述多通道链路的一条或多条通道的方向;以及
使得所述连接装置在用于发射或接收之一的所有通道上发送高速有序集(UNBUNDLE_OS)。
11.根据权利要求10所述的方法,还包括:接收UNBUNDLE_OS有续集,以及基于接收到UNBUNDLE_OS而激活或去激活所述多通道链路的一条或多条通道的发射或接收。
12.根据权利要求10所述的方法,还包括:使用在所述主机装置和所述连接装置两者处的寄存器访问来切换所述多通道链路的一条或多条通道的方向。
13.根据权利要求12所述的方法,还包括对所切换的一条或多条通道进行初始化以在与先前配置的方向相反的方向上操作。
14.根据权利要求13所述的方法,还包括在所述多通道链路中的未切换的通道上从所述连接装置接收通道初始化消息。
15.根据权利要求10所述的方法,还包括在用于向所述连接装置进行发射的所有通道上发射高速有序集(BUNDLE_OS)。
16.一种下游连接装置,其跨越与诸如CIO或USB协议的基于PCIe的协议兼容的多通道链路连接到主机装置,所述下游连接装置用于:
从所述主机装置接收切换所述多通道链路的一条或多条通道的方向的指示;
向所述主机装置发射高速有序集(UNBUNDLE_OS)以解除所述多通道链路的一条或多条单向通道的捆绑;
停止使用所述多通道链路的一条或多条通道,其中,用于要切换的通道的寄存器设置能够被设置为使得通道方向被切换。
17.根据权利要求16所述的下游连接装置,所述下游连接装置用于:
确认所述多通道链路中的要在相反方向上使用的一条或多条通道的初始化,其中,由所述主机装置提示所述初始化;并且
使用所述多通道链路的未切换的通道来发射所述确认。
18.根据权利要求16所述的下游连接装置,所述下游连接装置用于:
接收高速有序集(UNBUNDLE_OS)以将所切换的通道与同一方向上的其它通道捆绑;并且
使用所述通道进行发射或接收。
19.根据权利要求16所述的下游连接装置,所述下游连接装置包括系统管理器或链路配置管理器,所述系统管理器或链路配置管理器用于:
在一个或多个端口或所述装置之一或两者处针对寄存器执行寄存器访问,所述寄存器控制耦合到所述一个或多个端口的一条或多条通道的极性;并且
向所述寄存器写入寄存器值以反转所述通道的子集的极性;
其中,所述寄存器访问能够包括设置与控制所述通道的极性相关联的比特。
20.一种系统,包括:
包括数据处理器和系统管理器的主机;以及
跨越多通道链路连接到所述主机的装置,所述多通道链路包括被配置为在第一方向上引导数据的第一组捆绑通道和被配置为在与所述第一方向相反的第二方向上引导数据的第二组捆绑通道,所述第一组捆绑通道包括与所述第二组捆绑通道相等数量的通道:
其中,所述系统管理器用于:
为所述装置确定一个或多个操作参数;
基于用于所述装置的所述一个或多个操作参数确定将一条或多条通道从所述第一方向切换到所述第二方向;
使得所述主机装置将一条或多条通道从所述第一方向切换到所述第二方向;以及
使得所述主机装置将所切换的通道与所述第二组捆绑通道一起使用。
21.根据权利要求20所述的系统,其中,在第一方向上配置的所述第一组捆绑通道包括一组下游通道,所述一组下游通道被配置为从所述主机向下游连接装置引导数据,并且在第二方向上配置的所述第二组捆绑通道包括一组上游通道,所述一组上游通道被配置为从所述下游连接装置向所述设备引导数据。
22.根据权利要求21所述的系统,其中,所述系统管理器用于:
确定所述下游连接装置使用比上游带宽更多的下游带宽;
确定所述下游连接装置能够支持将上游通道的子集切换为下游通道的子集;以及
使得所述下游连接装置将所述上游通道的子集切换为所述下游通道的子集;并且
所述主机装置用于在所切换的所述下游通道的子集上发射数据。
23.根据权利要求22所述的系统,其中,所述装置包括热插拔兼容监视器、热插拔兼容投影仪、热插拔兼容音频装置、能够热插拔的扩展坞、或热插拔兼容数据存储装置的其中之一。
24.根据权利要求21所述的系统,其中,所述系统管理器用于:
确定所述下游连接装置使用比下游带宽更多的上游带宽;
确定所述下游连接装置能够支持将下游通道的子集切换为上游通道的子集;以及
使得所述下游连接装置将所述下游通道的子集切换为所述上游通道的子集;并且
所述主机装置用于在所切换的所述上游通道的子集上接收数据。
25.根据权利要求24所述的系统,其中,所述装置包括热插拔兼容相机之一。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/017,481 | 2018-06-25 | ||
US16/017,481 US11474967B2 (en) | 2018-06-25 | 2018-06-25 | Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110633241A true CN110633241A (zh) | 2019-12-31 |
Family
ID=65275189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910438525.6A Pending CN110633241A (zh) | 2018-06-25 | 2019-05-24 | 用于非对称接口的动态高速通道方向切换的系统、方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11474967B2 (zh) |
CN (1) | CN110633241A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111883086A (zh) * | 2020-08-20 | 2020-11-03 | 上海中航光电子有限公司 | 转换电路、转换电路的控制方法以及显示装置 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11070527B2 (en) | 2018-12-07 | 2021-07-20 | Intel Corporation | Securing platform link with encryption |
US11743240B2 (en) | 2019-03-08 | 2023-08-29 | Intel Corporation | Secure stream protocol for serial interconnect |
US11301411B2 (en) | 2019-06-07 | 2022-04-12 | Intel Corporation | Data structures for refined link training |
US11329890B2 (en) * | 2020-05-20 | 2022-05-10 | Hewlett Packard Enterprise Development Lp | Network-aware workload management using artificial intelligence and exploitation of asymmetric link for allocating network resources |
CN114978916B (zh) * | 2021-02-27 | 2023-11-28 | 华为技术有限公司 | 一种数据传输带宽的配置方法及相关设备 |
WO2023163954A1 (en) * | 2022-02-22 | 2023-08-31 | Groq, Inc. | Die-to-die dense packaging of deterministic streaming processors |
CN117492525B (zh) * | 2023-12-29 | 2024-04-16 | 闪极科技(深圳)有限公司 | Usb扩展设备、带宽管理方法和可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7469311B1 (en) * | 2003-05-07 | 2008-12-23 | Nvidia Corporation | Asymmetrical bus |
US7293127B2 (en) * | 2004-01-15 | 2007-11-06 | Ati Technologies, Inc. | Method and device for transmitting data using a PCI express port |
US7809969B2 (en) | 2005-12-28 | 2010-10-05 | Intel Corporation | Using asymmetric lanes dynamically in a multi-lane serial link |
US8341303B2 (en) * | 2008-06-30 | 2012-12-25 | Intel Corporation | Asymmetrical universal serial bus communications |
US9183166B2 (en) * | 2009-12-14 | 2015-11-10 | Rambus Inc. | Expandable asymmetric-channel memory system |
US9535866B2 (en) * | 2011-06-15 | 2017-01-03 | Dell Products L.P. | Asymmetric storage device wide link |
US9740646B2 (en) * | 2014-12-20 | 2017-08-22 | Intel Corporation | Early identification in transactional buffered memory |
US9639276B2 (en) * | 2015-03-27 | 2017-05-02 | Intel Corporation | Implied directory state updates |
-
2018
- 2018-06-25 US US16/017,481 patent/US11474967B2/en active Active
-
2019
- 2019-05-24 CN CN201910438525.6A patent/CN110633241A/zh active Pending
-
2022
- 2022-08-26 US US17/896,721 patent/US20220414046A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111883086A (zh) * | 2020-08-20 | 2020-11-03 | 上海中航光电子有限公司 | 转换电路、转换电路的控制方法以及显示装置 |
CN111883086B (zh) * | 2020-08-20 | 2021-07-16 | 上海中航光电子有限公司 | 转换电路、转换电路的控制方法以及显示装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190050365A1 (en) | 2019-02-14 |
US11474967B2 (en) | 2022-10-18 |
US20220414046A1 (en) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11561910B2 (en) | In-band retimer register access | |
US11238203B2 (en) | Systems and methods for accessing storage-as-memory | |
US20220414046A1 (en) | Systems, methods, and devices for dynamic high speed lane direction switching for asymmetrical interfaces | |
US11663154B2 (en) | Virtualized link states of multiple protocol layer package interconnects | |
US10146291B2 (en) | Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints | |
CN108052466B (zh) | Pci快速增强 | |
US11550746B2 (en) | Multi-uplink device enumeration and management | |
CN111831594A (zh) | 用于高速互连中低延迟的双模phy | |
CN109844725B (zh) | 点对点互连中的非对称通道 | |
CN110659239A (zh) | 在多通路链路中动态地协商不对称链路宽度 | |
CN114528241A (zh) | 事务层分组格式 | |
US10884758B2 (en) | Method, apparatus, and system for propagating PCIe hot reset across a non-transparent bridge on a PCIe add-in card | |
US10817454B2 (en) | Dynamic lane access switching between PCIe root spaces | |
US9665513B2 (en) | Systems and methods for automatic root port to non-transparent bridge switching for a PCI express interconnect architecture | |
US20190095554A1 (en) | Root complex integrated endpoint emulation of a discreet pcie endpoint | |
CN112131148A (zh) | 预测性分组头部压缩 | |
US11704275B2 (en) | Dynamic presentation of interconnect protocol capability structures | |
US8958471B2 (en) | Method, apparatus, and system for sliding matrix scoreboard utilized in auto feedback closed loops |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |