CN117751355A - 确定外围组件快速互连端口的通道到链路的分配 - Google Patents
确定外围组件快速互连端口的通道到链路的分配 Download PDFInfo
- Publication number
- CN117751355A CN117751355A CN202280054253.XA CN202280054253A CN117751355A CN 117751355 A CN117751355 A CN 117751355A CN 202280054253 A CN202280054253 A CN 202280054253A CN 117751355 A CN117751355 A CN 117751355A
- Authority
- CN
- China
- Prior art keywords
- state
- link
- lanes
- lane
- identifier
- 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
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 93
- 230000004044 response Effects 0.000 claims abstract description 31
- 230000007704 transition Effects 0.000 claims description 81
- 238000001514 detection method Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000011664 signaling Effects 0.000 claims description 2
- 101150025612 POLL gene Proteins 0.000 description 66
- 238000010586 diagram Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/22—Handling requests for interconnection or transfer for access to input/output bus using successive scanning, e.g. polling
-
- 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
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本文所公开的示例包括一种方法,包括:经由外围组件快速互连(PCIe)端口的多个通道中的相应通道来传输相应通道标识符。该方法还可以包括经由该PCIe端口的该多个通道中的该相应通道来接收相应另外的通道标识符。该方法还可以包括至少部分地响应于该相应另外的通道标识符来确定将该多个通道中的哪一个通道分配给用于与耦接到该PCIe端口的设备通信的链路。该方法还可以包括将该多个通道中所确定的通道分配给该链路。还公开了相关设备和系统。
Description
优先权声明
本申请要求于2021年8月6日提交并且名称为″自动分叉外围组件快速互连通道(AUTOMATICALLY BIFURCATING PERIPHERAL COMPONENT INTERCONNECT EXPRESS LANES)″的美国临时专利申请63/260,035号的优先权日的权益,其公开内容全文以引用方式并入本文。
技术领域
本说明书一般涉及确定外围组件快速互连(PCIe)端口的通道到链路的分配。更具体地,一些示例涉及针对与通信地耦接到PCIe端口的卡上的设备的链路确定PCIe交换机的PCIe端口的分配通道,但不限于此。此外,一些示例涉及为链路分配所确定的通道,但不限于此。
背景技术
外围组件快速互连(PCIe)规范定义了由PCIe端口连接的设备达到L0状态(其可以是″链路连接″状态,该″链路连接″状态可以是设备可以经由链路进行通信的状态)的操作。在本公开中,术语″PCIe规范″可以是指由俄勒冈州比佛顿(Beaverton,Oregon)的外围组件互连特殊兴趣组(PCI-SIG)发布的PCI Express基础规范的任何修订版和/或版本。作为非限制性示例,术语PCIe规范可以是指2022年1月11日发布的″PCI Express基础规范修订版6.0,版本1.0″,但不限于此。
PCIe端口可以由多个通道构成。根据PCIe规范,可以在连接的设备的PCIe端口之间的链路初始化过程期间协商用于与连接的设备通信的通道的使用。
一些PCIe端口能够分叉,即特定端口上的多个通道可以被划分并分配到具有单独设备的单独链路中。作为非限制性示例,PCIe交换机的PCIe端口可以连接到包括两个单独设备的卡的PCIe端口。交换机的PCIe端口的通道可以分别被分配用于与卡的单独设备中的每个单独设备通信,使得PCIe端口的通道的第一子集可被分配给单独设备中的第一个单独设备,并且PCIe端口的通道的第二子集可被分配给单独设备中的第二个单独设备。
附图说明
虽然本公开以特别指出并清楚地要求保护具体示例的权利要求书作为结尾,但当结合附图阅读时,通过以下描述可更容易地确定本公开范围内的示例的各种特征和优点,在附图中:
图1是示出根据一个或多个示例的示例装置的功能框图;
图2是示出根据一个或多个示例的示例装置的功能框图;
图3示出了根据一个实施方案的主题的一方面;
图4示出了根据一个实施方案的主题的一方面;
图5示出了根据一个实施方案的主题的一方面;
图6示出了根据一个实施方案的方法;
图7示出了根据一个实施方案的主题的一方面;
图8示出了根据一个实施方案的主题的一方面;
图9示出了根据一个实施方案的主题的一方面;并且
图10示出了根据一个或多个示例的可用于实现各种功能、操作、动作、过程和/或方法的示例设备的框图。
具体实施方式
在以下具体实施方式中,参考了形成本公开的一部分的附图,并且在附图中以举例的方式示出了可实践本公开的特定示例。充分详细地描述了这些示例,以使本领域的普通技术人员能够实践本公开。然而,可以利用其他示例,并且可以在不脱离本公开的范围的情况下进行结构、材料和过程的变化。
本文所呈现的图示并不旨在为任何特定方法、系统、设备或结构的实际视图,而仅仅是用于描述本公开的示例的理想化表示。本文所呈现的附图未必按比例绘制。为了读者的方便,各附图中的类似结构或部件可以保持相同或相似的编号;然而,编号的相似性并不意味着该结构或部件在尺寸、组成、配置或任何其他属性方面必须是相同的。
以下描述可包括示例以帮助使得本领域的普通技术人员能够实践本发明所公开的示例。使用术语″示例性的″、″通过示例″和″例如″是指相关描述是说明性的,虽然本公开的范围旨在涵盖示例和法律等同形式,但使用此类术语并不旨在将本公开的示例的范围限制于指定的部件、步骤、特征或功能等。
应当容易理解,如本文一般所述并且在附图中示出的示例的部件可被布置和设计成多种不同的配置。因此,对各种示例的以下描述并不旨在限制本公开的范围,而是仅代表各种示例。虽然示例的各个方面可以在附图中呈现,但是附图未必按比例绘制,除非特别指明。
此外,所示出和描述的特定实施方式仅为示例,并且不应理解为实施本公开的唯一方式,除非本文另外指明。元件、电路和功能能够以框图形式示出,以便不以不必要的细节模糊本公开。相反,所示出和描述的特定实施方式仅为示例,并且不应理解为实施本公开的唯一方式,除非本文另外指明。另外,框定义和各个框之间逻辑的分区是特定实施方式的示例。对于本领域的普通技术人员将显而易见的是,本公开可通过许多其他分区解决方案来实践。在大多数情况下,已省略了关于定时考虑等的细节,其中此类细节不需要获得本公开的完全理解,并且在相关领域的普通技术人员的能力范围内。
本领域的普通技术人员将会理解,可以使用多种不同技术和技法中的任何一者来表示信息和信号。例如,可在该整个说明书中参考的数据、指令、命令、信息、信号、比特和符号可由电压、电流、电磁波、磁场或粒子、光场或粒子或者它们的任何组合来表示。为了清晰地呈现和描述,一些附图可以将信号示出为单个信号。本领域的普通技术人员应当理解,信号可表示信号总线,其中总线可具有多种位宽度,并且本公开可在包括单个数据信号在内的任意数量的数据信号上实现。本领域普通技术人员将理解,本公开涵盖量子信息的传送和用于表示量子信息的量子位。
结合本文所公开的示例描述的各种例示性逻辑框、模块和电路可以用通用处理器、专用处理器、数字信号处理器(DSP)、集成电路(IC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立栅极或晶体管逻辑部件、分立硬件部件或设计成执行本文所描述的功能的其任何组合来实现或执行。通用处理器(在本文中也可称为主机处理器或仅称为主机)可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器或任何其他此类配置。在包括处理器的通用计算机执行与本公开的示例相关的计算指令(例如,软件代码)时,该通用计算机被认为是专用计算机。
示例可以根据被描绘为流程图、流程示意图、结构图或框图的过程来描述。虽然流程图可将可操作动作描述为连续过程,但是这些动作中的许多动作可按照另一序列、并行地或基本上同时地执行。除此之外,可重新安排动作的顺序。过程可对应于方法、线程、函数、规程、子例程或子程序,但不限于此。此外,本文公开的方法可通过硬件、软件或这两者来实现。如果在软件中实现,这些函数可作为一个或多个指令或代码存储或传输到计算机可读介质上。计算机可读介质包括计算机存储介质和通信介质两者,该通信介质包括有利于将计算机程序从一个位置传递到另一个位置的任何介质。
PCIe端口包括多个通道。一些PCIe端口能够分叉,即具有分配给例如具有单独设备的单独链路的通道。作为非限制性示例,PCIe交换机可以具有PCIe端口,该PCIe端口具有十六个通道。PCIe交换机可以为与连接到PCIe端口的卡的第一设备的第一链路分配PCIe端口的八个通道。PCIe交换机还可以为与卡的第二设备的第二链路分配PCIe端口的四个通道,并且为与卡的第三设备的第三链路分配PCIe端口的附加的四个通道。
本公开的一些示例涉及用于确定针对链路的PCIe端口的通道的分配的方法、设备和/或系统。此外,一些示例涉及用于为链路分配通道的方法、设备和/或系统。作为非限制性示例,可以在第一设备(例如,PCIe交换机)的PCIe端口与第二设备(例如,具有PCIe端口的卡)的PCIe端口之间进行连接。第二设备可以包括使用PCIe端口的多个组件设备(例如,卡可以包括通信地耦接到PCIe端口的多个设备(例如,处理器或存储器,但不限于此))。第一设备可以确定如何为与第二设备的多个组件设备的链路分配其PCIe端口的通道。
本公开的一些示例是根据PCIe规范的。本公开的一些示例包括对由PCIe规范描述的默认设置的修改。本公开的一些示例以未由PCIe规范定义的方式操作。本公开的一些示例包括可能不根据PCIe规范的修改。此外,本公开的一些示例可在其他设备可根据PCIe规范操作的期望下操作。
图1是示出根据一个或多个示例的示例装置100的功能框图。
装置100包括用于存储外围组件快速互连(PCIe)端口110的通道112a至通道112d的链路标识符104的寄存器102。通道112a、通道112b、通道112c和通道112d可以统称为″通道112″和/或单独称为″通道112″。装置100还包括耦接到寄存器102以设置链路标识符104的值108的逻辑部件106。逻辑部件106可以经由PCIe端口110的多个通道112中的相应通道112传输相应通道标识符114。逻辑部件106还可以经由PCIe端口110的多个通道112接收相应另外的通道标识符116。逻辑部件106还可以至少部分地响应于另外的通道标识符116来确定将多个通道112中的哪一个通道分配给用于与耦接到PCIe端口110的(例如卡118的)设备120通信的链路122。值108可以至少部分地响应于所确定的分配给链路122的多个通道112。
装置100可以是包括PCIe端口110的任何合适的设备。作为非限制性示例,装置100可以是例如包括多个PCIe端口的PCIe交换机。PCIe交换机可以能够将信号从PCIe交换机的一个PCIe端口引导到另一PCIe端口。
寄存器102可存储将由逻辑部件106和/或由其他逻辑部件访问的值。作为非限制性示例,寄存器102可存储能够被逻辑部件106访问(例如,可读和/或可写)的链路标识符104和/或链路标识符104的值。
链路标识符104可以指示链路(诸如链路122)与相应通道112之间的关联。作为非限制性示例,链路标识符104可以指示通道112a和通道112b被分配给链路122。在一些示例中,链路标识符104可以包括用于PCIe端口110的通道112中的相应通道的相应值108(例如,对应于链路的值108)。在其他示例中,链路标识符104可以包括相应链路的值108以及链路与通道112之间的关联。
逻辑部件106可以是或者可以包括用于执行逻辑操作的任何合适的电路,包括例如集成电路,但不限于此。
值108可以是从寄存器102读取和/或写入到寄存器的值。值108可以是用于链路标识符104的值。作为非限制性示例,逻辑部件106可以从寄存器102读取链路标识符104的值108。附加地或另选地,逻辑部件106可将链路标识符104的值108写入到寄存器102。
PCIe端口110可以是用于根据PCIe规范传输和/或接收信号的端口。PCIe端口110可以是装置100的下游端口。PCIe端口110可包括多个通道112。通道112可以是用于传送相应信号的相应物理信道。在图1中,示出了四个通道112、通道112a、通道112b、通道112c和通道112d。为了描述的目的示出了四个通道112。在其他示例中,PCIe端口110可包括任何数量的通道。
PCIe端口110可以连接到卡118的PCIe端口(未示出)。卡118在图1中是任选的,如使用虚线示出的卡118所指示的。卡118可以包括设备120和一个或多个附加的设备(图1中未示出)。设备120在图1中是任选的,如使用虚线示出的设备120所指示的。
作为设想操作的示例,装置100可以与卡118的设备(包括设备120)建立一个或多个链路。例如,装置100可以与卡118、与卡118的PCIe端口(图1中未示出)或与卡118的设备协商链路号。例如,逻辑部件106可以向卡118传输(或者可以使PCIe端口110传输)链路号,其中每通道112发送相应链路,向卡118的PCIe端口传输链路号或者向卡118的设备传输链路号。卡118、卡118的PCIe端口或卡118的设备可以从所接收的链路号中选择链路号,并且利用所选择的链路号来响应装置100。链路号可以作为相应链路标识符104存储在装置100中。此后,与卡118的特定设备(包括设备120)的通信可以根据协商的链路和/或链路号。
例如,逻辑部件106可以在通道112处传输(或者可以使PCIe端口110传输)通道标识符114。作为非限制性示例,逻辑部件106可以在每个通道112处传输(或者可以使PCIe端口110传输)一个相应通道标识符114。作为非限制性示例,逻辑部件106可以传输(或者可以使PCIe端口110传输)具有根据协议(例如,根据PCIe规范)的字段的信号(例如,分组)。分组可以包括用于″链路″的字段。逻辑部件106可以使用″链路″字段来对通道标识符114中的相应一个通道标识符进行编码来传输(或者可以使PCIe端口110传输)分组。另外,分组可以包括用于″通道″的字段。逻辑部件106可以传输(或者可以使PCIe端口110传输)具有空值(例如,″通道″字段中的PAD字符)的分组。
在一些示例中,通道标识符114可以具有指示在其上传输通道标识符114的通道112的相应值。作为非限制性示例,逻辑部件106可以传输(或者可以使PCIe端口110传输)通道112a上具有值″0″的通道标识符114(例如,PCIe端口110的第一通道)、通道112b上具有值″1″的通道标识符114(例如,PCIe端口110的第二通道)、通道112c上具有值″2″的通道标识符114(例如,PCIe端口110的第三通道)以及通道112d上具有值″3″的通道标识符114(例如,PCIe端口110的第四通道)。
在其他示例中,通道标识符114可以具有与PCIe端口110向链路分配通道的能力相关的值。例如,在PCIe端口110能够形成具有两个通道(例如,最少)的链路的情况下,PCIe端口110可以在两个通道(例如,相邻通道)上传输具有相同值的通道标识符114。作为非限制性示例,逻辑部件106可以传输(或者可以使PCIe端口110传输)通道112a上具有值″0″的通道标识符114、通道112b上具有值″0″的通道标识符114、通道112c上具有值″1″的通道标识符114以及通道112d上具有值″1″的通道标识符114。关于传输通道标识符114的附加细节参照图3举例说明和描述。
设备120可以接收在通道112处传输的一个或多个通道标识符114。如前所述,通道标识符114可以被编码在分组的″链路″字段中。根据PCIe规范,设备120可以通过传输另外的通道标识符116来响应。根据PCIe规范,设备120可以在分组的″链路″字段中传输另外的通道标识符116。该分组还可以在″通道″字段中包括空值(例如,PAD)。根据PCIe规范,设备120可以在设备120将用于通信的所有通道上传输另外的通道标识符116(例如,根据卡118的布局或配置)。作为非限制性示例,基于设备120被有线连接以使用通道112a和通道112b来通信(例如,与装置100通信或者通过该装置进行通信),设备120可以在通道112a上传输一个另外的通道标识符116并且在通道112b上传输另一个另外的通道标识符116。另外,尽管未在图1中示出,但是卡118可以包括可以在通道112上(例如,在通道112c和通道112d上)接收通道标识符114并且可以在通道112上传输附加的另外的通道标识符116的附加的设备。
根据PCIe规范,设备120可以在其打算用来通信的所有通道112上传输相同的另外的通道标识符116(或具有相同值的另外的通道标识符116)。此外,根据PCIe规范,设备120可以传输与其接收到的通道标识符114中的一个通道标识符具有相同值的另外的通道标识符116。作为非限制性示例,如果设备120接收到通道112a上具有值″0″的通道标识符114,则设备120可以传输通道112a上具有值″0″的另外的通道标识符116以及通道112b上具有值″0″的另外的通道标识符116。此外,根据PCIe规范,设备120可以传输与在设备120的″第一″接口上接收到的通道标识符114具有相同值的另外的通道标识符116。附加地或另选地,根据PCIe规范,设备120可以传输与设备120已经接收到的通道标识符114的最低编号值具有相同值的另外的通道标识符116。关于传输另外的通道标识符116的附加细节参照图3举例说明和描述。
逻辑部件106可以接收另外的通道标识符116,并且可以至少部分地响应于另外的通道标识符116来确定将通道112分配给链路(包括链路122)。作为非限制性示例,逻辑部件106可以确定根据哪些通道112接收到相同的另外的通道标识符116(或者根据哪些通道112接收到具有相同值的另外的通道标识符116)来分配通道112。作为非限制性示例,逻辑部件106可以响应于在通道112a处接收到的具有值″0″的另外的通道标识符116并且基于在通道112b处接收到的具有值″0″的另外的通道标识符116,将通道112a和通道112b分配给链路122。
逻辑部件106可以将通道112分配给相应链路122。例如,逻辑部件106可以设置存储在寄存器102处的链路标识符104的值108,以指示通道112中的哪些通道被分配了各种链路。例如,逻辑部件106可以向寄存器102提供指示通道112a和通道112b将被分配给链路122的值108。例如,逻辑部件106可以为通道112a的链路标识符104提供值108″0″,以及为通道112b的链路标识符104提供值108″0″。
在一些情况下,可以重置PCIe端口110,并且可以根据存储在寄存器102处的链路标识符104来建立链路。
在一些情况下,在链路协商之后,装置100、逻辑部件106或PCIe端口110可以确定用于与设备的通道(来自分配给链路的通道中)的标识符。例如,在逻辑部件106已经将通道112a和通道112b分配给链路122以与设备120通信之后,装置100、逻辑部件106或PCIe端口110可以与设备120协作以识别关于链路122的通道112a和通道112b的通道号。例如,逻辑部件106可以使包括″通道″字段中的值的分组被发送到设备120。设备120可以用包括″通道″字段中的值的分组来答复。
此外,在一些示例中,逻辑部件106可以管理PCIe端口110,使得用于卡118的某些设备的某些接口的信号(例如,分组)根据所确定的通道112到对应于某些设备的链路122的分配在对应的通道112处被传输。而且,逻辑部件106可以管理PCIe端口110,使得在某些通道112处接收的信号(例如,分组)根据所确定的通道112到链路122的分配(例如,包括对应于信号所源自的卡118的设备的源地址)从装置100(例如,在另一PCIe端口(图1中未示出)处)被路由到其他设备(图1中未示出)。
图2是示出根据一个或多个示例的另一示例装置200的功能框图。
装置200包括用于存储外围组件快速互连(PCIe)端口210的通道212的链路标识符204的寄存器202。通道212a、通道212b、通道212c和通道212d可以统称为″通道212″和/或单独称为″通道212″。装置200还包括耦接到寄存器202以设置链路标识符204的值208的逻辑部件206。逻辑部件206可以经由PCIe端口210的相应通道212传输相应通道标识符214。逻辑部件206还可以经由PCIe端口210的通道212接收另外的通道标识符216。逻辑部件206还可以至少部分地响应于另外的通道标识符216来确定将多个通道212中的哪一个通道分配给用于与耦接到PCIe端口210的(例如卡218的)设备220通信的链路222。逻辑部件206还可以设置存储在寄存器202处的相应链路标识符204的值208。值208可以至少部分地响应于所确定的分配给链路222的多个通道212。装置200还可以包括耦接到寄存器202以读取链路标识符204的值208的另外的逻辑部件224。另外的逻辑部件224可以读取存储在寄存器202处的相应链路标识符204的值208。另外的逻辑部件224还可以至少部分地响应于相应链路标识符204将多个通道212中所确定的通道212分配给链路222。
寄存器202可以与图1的寄存器102相同、基本上类似、功能相同和/或功能基本上类似。链路标识符204可以与图1的链路标识符104相同、基本上类似、功能相同和/或功能基本上类似。逻辑部件206可以与图1的逻辑部件106相同、基本上类似、功能相同和/或功能基本上类似。值208可以与图1的值108相同、基本上类似、功能相同和/或功能基本上类似。PCIe端口210可以与图1的PCIe端口110相同、基本上类似、功能相同和/或功能基本上类似。通道212可以与图1的通道112相同、基本上类似、功能相同和/或功能基本上类似。通道标识符214可以与图1的通道标识符114相同、基本上类似、功能相同和/或功能基本上类似。另外的通道标识符216可以与图1的另外的通道标识符116相同、基本上类似、功能相同和/或功能基本上类似。卡218可以与图1的卡118相同、基本上类似、功能相同和/或功能基本上类似。设备220可以与图1的设备120相同、基本上类似、功能相同和/或功能基本上类似。链路222可以与图1的链路122相同、基本上类似、功能相同和/或功能基本上类似。
装置200可以与图1的装置100基本上类似和/或功能基本上类似。装置200和装置100之间的区别在于装置200包括另外的逻辑部件224。另外的逻辑部件224可以是或者可以包括用于执行逻辑操作的任何合适的电路,包括例如集成电路,但不限于此。
如关于逻辑部件106和图1所述,逻辑部件206可以确定通道的分配。在装置200中,另外的逻辑部件224可以实现所确定的通道分配。例如,另外的逻辑部件224尤其可以将通道212分配给链路222。例如,逻辑部件206可以确定通道212到链路222的分配,并且可以存储指示所确定的分配的链路标识符204。另外的逻辑部件224可读取链路标识符204的值208并且重置PCIe端口210以根据通道212到链路222的分配重新初始化PCIe端口210的状态机。
图3是示出根据一个或多个示例的在第一时间322和第二时间324处的示例系统300的功能框图。
系统300包括PCIe端口302、设备304、设备306和设备308。PCIe端口302包括十六个通道310。PCIe端口302可以在第一时间322处传输通道标识符312。耦接到通道310中的相应通道的设备304、设备306和设备308可以在第二时间324处传输另外的通道标识符314,其中第二时间324在第一时间322之后。响应于另外的通道标识符314,PCIe端口302的通道310可被分配给链路。作为非限制性示例,通过本文所述的操作,八个通道316可被分配给PCIe端口302与设备304之间的第一链路,四个通道318可被分配给PCIe端口302与设备306之间的第二链路,并且四个通道320可被分配给PCIe端口302与设备308之间的第三链路。在图3中,为了描述的目的示出了十六个通道310。在其他示例中,PCIe端口302可具有任何数量的通道。
PCIe端口302可以是图1的PCIe端口110或图2的PCIe端口210的示例。设备304、设备306和设备308中的每一者可以是图1的设备120或图2的设备220的示例。通道310可以是图1的通道112或图2的通道212的示例。通道标识符312可以是图1的通道标识符114或图2的通道标识符214的示例。另外的通道标识符314可以是图1的另外的通道标识符116或图2的另外的通道标识符216的示例。
作为本公开的示例的操作的示例,在第一时间322处,PCIe端口302可在通道310处传输通道标识符312。在一些示例中,通道标识符312中的相应通道标识符可以对应于在其上传输它们的相应通道。作为非限制性示例,在PCIe端口302的第一通道上传输的通道标识符可包括值″0″,在PCIe端口302的第二通道上传输的通道标识符可包括值″1″,等等。如以上关于图1的通道标识符114所描述的,并且作为非限制性示例,通道标识符312可以在分组的″链路″字段中传输,但不限于此。在其他示例中(图3中未示出),通道标识符312可以具有与PCIe端口302在链路之间拆分通道的能力相关的值。例如,在PCIe端口302能够形成具有两个通道(例如,最少)的链路的情况下,PCIe端口302可以在两个通道(例如,相邻通道)上传输具有相同值的通道标识符312,PCIe端口302可以使用该相同值来将通道分配给链路。作为非限制性示例,PCIe端口302可在PCIe端口302的第一通道310和第二通道310两者上传输具有值″0″的通道标识符312,并且在PCIe端口302的第三通道310和第四通道310两者上传输具有值″1″的通道标识符312。
继续操作的示例,在第二时间324处(或者到该第二时间),设备304、设备306和设备308中的每一者可能已经根据PCIe规范传输了另外的通道标识符314。如以上关于图1的另外的通道标识符116所描述的,并且作为非限制性示例,另外的通道标识符314可以在分组的″链路″字段中传输,但不限于此。作为非限制性示例,根据PCIe规范,包括通信地耦接到PCIe端口302的八个通道316的设备304可传输八个另外的通道标识符314(例如,通道316中的每个通道上的一个通道标识符)。此外,根据PCIe规范,包括通信地耦接到PCIe端口302的四个通道318的设备306可传输四个另外的通道标识符314(例如,通道318中的每个通道上的一个通道标识符)。此外,根据PCIe规范,包括通信地耦接到PCIe端口302的四个通道320的设备308可传输四个另外的通道标识符314(例如,通道320中的每个通道上的一个通道标识符)。
根据PCIe规范,设备304、设备306和设备308中的每一者可以在它们的相应通道中的所有相应通道处传输相同的相应另外的通道标识符314(或具有相同的相应值的另外的通道标识符314)。作为非限制性示例,根据PCIe规范,设备304可以在通道316中的每个通道处传输具有相同值(例如,″0″)的另外的通道标识符314。此外,根据PCIe规范,设备306可以在通道318中的每个通道处传输具有相同值(例如,″8″)的另外的通道标识符314。此外,根据PCIe规范,设备308可以在通道320中的每个通道处传输具有相同值(例如,″12″)的另外的通道标识符314。
此外,根据PCIe规范,设备304、设备306和设备308中的每一者可以传输与其接收到的通道标识符312中的一个通道标识符相同的相应另外的通道标识符314(或与其接收到的通道标识符312中的一个通道标识符具有相同相应值的另外的通道标识符314)。作为非限制性示例,根据PCIe规范,设备304可以传输具有值″0″的另外的通道标识符314,因为设备304接收到具有值″0″的通道标识符312作为其接收到的通道标识符312中的一个通道标识符。此外,根据PCIe规范,设备306可以传输具有值″8″的另外的通道标识符314,因为设备306接收到具有值″8″的通道标识符312作为其接收到的通道标识符312中的一个通道标识符。此外,根据PCIe规范,设备308可以传输具有值″12″的另外的通道标识符314,因为设备308接收到具有值″12″的通道标识符312作为其接收到的通道标识符312中的一个通道标识符。
此外,根据PCIe规范,设备304、设备306和设备308中的每一者可以传输与在相应设备的第一接口处接收到的通道标识符312相同(或具有相同值)的相应另外的通道标识符314。作为非限制性示例,通道316的最左边(从图3的角度来看)可通信地耦接到设备306的第一接口。基于设备304在第一接口处接收到具有值″0″的通道标识符312,设备304可以在所有通道316上传输均具有值″0″的另外的通道标识符314。类似地,设备306可以在其第一接口处接收具有值″8″的通道标识符312,并且因此可以在所有通道318上传输均具有值″8″的另外的通道标识符314。类似地,设备308可以在其第一接口处接收具有值″12″的通道标识符312,并且因此可以在所有通道320上传输均具有值″12″的另外的通道标识符314。
附加地或另选地,设备304、设备306和设备308中的每一者可以传输与由相应设备接收到的通道标识符312的最低编号的通道相同(或具有相同值)的相应另外的通道标识符314。作为非限制性示例,已经接收到具有值″0″的通道标识符312并且没有较低编号的通道标识符的设备304可以在所有通道316上传输均具有值″0″的另外的通道标识符314。类似地,设备306可接收具有值″8″的通道标识符312并且不接收较低值通道标识符。因此,设备306可以在所有通道318上传输均具有值″8″的另外的通道标识符314。类似地,设备308可接收具有值″12″的通道标识符312并且不接收较低值通道标识符。因此,设备308可以在所有通道320上传输均具有值″12″的另外的通道标识符314。
可以响应于另外的通道标识符314来确定通道310的分配。作为非限制性示例,PCIe端口302在其上接收到相同的另外的通道标识符314的每个通道可被分配给相同的链路。作为非限制性示例,在其的所有通道上接收到具有值″0″的另外的通道标识符314的通道316可被分配给用于与设备304通信的第一链路。相似地,在其的所有通道上接收到具有值″8″的另外的通道标识符314的通道318可被分配给用于与设备306通信的第二链路。相似地,在其的所有通道上接收到具有值″12″的另外的通道标识符314的通道320可被分配给用于与设备308通信的第三链路。
在一些示例中,在所确定的通道310到与设备的链路的分配之后,PCIe端口302可被重置。
在确定将通道310分配给链路之后的一些示例中,可以确定分配给链路的通道之间的通道号。例如,PCIe端口302可向设备304、设备306和设备308中的每一者发送包括″通道″字段中的值的分组。设备304、设备306和设备308中的每一者可以用包括″通道″字段中的值的分组来答复。
图4是示出根据一个或多个示例的PCIe端口配置过程的状态和PCIe端口配置状态转变的状态图400。
状态图400的PCIe端口配置过程和PCIe端口配置状态转变的状态中的一些状态是根据PCIe规范的。作为非限制性示例,状态图400包括检测静默状态402,检测静默状态402之后是检测激活状态404,检测激活状态404之后是轮询激活状态406,轮询激活状态406之后是轮询配置状态408,轮询配置状态408之后是配置链路宽度开始状态410,配置链路宽度开始状态410之后是配置链路宽度接受状态412。如果配置链路宽度接受状态412成功地完成,则配置链路宽度接受状态412之后可以是L0状态414。另选地,如果配置链路宽度接受状态412没有成功完成,则配置链路宽度接受状态412之后可以返回到检测静默状态402。L0状态414可以是″链路连接″状态,其中设备可以使用链路进行通信。
示出本公开的示例的状态图400与PCIe规范所描述的默认设置之间的差异在于时间段416在检测激活状态404(和/或检测静默状态402)与轮询激活状态406之间。时间段416可以是检测激活状态404和轮询激活状态406之间的延迟,以在允许状态转变之前在多个通道中的每个通道上接收另外的相应通道标识符。作为非限制性示例,在不存在时间段416的情况下,PCIe端口配置过程可在从第一设备接收到第一响应之后从检测激活状态404行进到轮询激活状态406。作为非限制性示例,在PCIe端口连接到单个设备的PCIe端口的情况下,在从该单个设备接收到单个响应之后从检测激活状态404转变到轮询激活状态406(根据PCIe规范中描述的默认设置)可以允许高效地建立链路。然而,在PCIe端口的通道正被潜在地分配给多个设备的情况下,延迟从检测激活状态404到轮询激活状态406的转变以等待附加的设备(即,在第一设备之后响应的设备)在从检测激活状态404行进到轮询激活状态406之前响应可以允许建立多个链路。
在检测激活状态404(和/或检测静默状态402)与轮询激活状态406之间包括时间段416可以使PCIe端口配置过程被延迟,使得在PCIe端口配置过程移至轮询激活状态406之前有足够的时间供连接到运行PCIe端口配置过程的PCIe端口的所有设备进行响应。时间段416可以在1毫秒和4毫秒418之间。在一些示例中,时间段416可以是2毫秒。
图5是示出根据一个或多个示例的PCIe端口配置过程的状态和PCIe端口配置状态转变的状态图500。
状态图500的PCIe端口配置过程和PCIe端口配置状态转变的状态中的一些状态是根据PCIe规范的。作为非限制性示例,状态图500包括轮询状态条目512,该轮询状态条目之后是轮询激活状态502。如果轮询激活状态502竞争成功,则轮询激活状态502之后可以是轮询配置状态506。另选地,根据PCIe规范,如果轮询激活状态502没有成功完成,则轮询激活状态502之后可以是轮询遵循状态504。如果轮询配置状态506成功完成,则轮询配置状态506之后可以退出到配置状态508。另选地,如果轮询配置状态506没有成功完成,则轮询配置状态506之后可以退出到检测状态510。
状态图500的一个或多个状态可以是图4的状态图400的状态的示例、子状态、进入或退出。作为非限制性示例,轮询状态条目512可在图4的检测激活状态404之后(例如,在图4的时间段416之后)。轮询激活状态502可以是图4的轮询激活状态406的示例,并且轮询配置状态506可以是图4的轮询配置状态408的示例。轮询遵循状态504可以是轮询激活状态502、轮询配置状态506、轮询激活状态406和/或轮询配置状态408的子状态。退出到配置状态508之后可以是图4的配置链路宽度开始状态410。退出到检测状态510之后可以是图4的检测静默状态402或检测激活状态404。
示出本公开的示例的状态图500与PCIe规范所描述的默认设置之间的差异在于,在状态图500中,从轮询激活状态502到轮询遵循状态504的转变514可被禁用。换句话说,在状态图500中,根据一个或多个示例,PCIe端口配置状态转变可以排除或防止从轮询激活状态502到轮询遵循状态504的转变514。在根据PCIe规范的PCIe端口配置过程将从轮询激活状态502转变到轮询遵循状态504的条件的情况下,本公开的示例可以改为退出到检测状态510。
例如,状态图500包括从轮询激活状态502到退出到检测状态510的转变516。在状态图500中,根据本公开的一个或多个示例,PCIe端口配置状态转变可以在某些条件下从轮询激活状态502转变到退出到检测状态510。在一些示例中,某些条件包括根据PCIe规范的PCIe端口配置过程将从轮询激活状态502转变到轮询遵循状态504的条件。换句话说,转变516可代替转变514。换句话说,如果轮询激活状态502没有成功完成,则状态图500的PCIe端口配置过程可以从轮询激活状态502转变到退出到检测状态510,而不是转变到轮询遵循状态504。
在根据PCIe规范的PCIe端口配置过程中,PCIe端口配置过程可以响应于某些条件从轮询激活状态502转变到轮询遵循状态504。在轮询遵循状态504中,PCIe端口配置过程可测试PCIe端口的链路,例如测试传输和接收,例如对PCIe规范的遵循。此后,PCIe端口配置过程可以从轮询遵循状态504返回到轮询激活状态502。在PCIe端口连接到单个设备的PCIe端口的情况下,从轮询激活状态502到轮询遵循状态504的转变可以允许PCIe端口测试链路,然后返回到正常操作。然而,在PCIe端口的通道被潜在地分配给多个设备的情况下,从轮询激活状态502到轮询遵循状态504的转变可能是不期望的。例如,触发从轮询激活状态502到轮询遵循状态504的转变的某些条件对于包括为多个链路分配的通道的PCIe端口可能不是问题。因此,某些条件可能不值得PCIe端口进行进一步测试。因此,抑制转变514或者用转变516替换转变514可以改善包括分配给多于一个链路的通道的PCIe端口的操作。
图6是根据本公开的各种示例的示例方法600的流程图。在一些示例中,方法600的至少一部分可由设备或系统执行,诸如图1的装置100、图1的逻辑部件106、图2的装置200、图2的逻辑部件206、图2的另外的逻辑部件224、图10的设备1000或另一设备或系统。尽管示出为离散框,但是根据期望的实施方式,可将各种框划分为附加框,组合成更少的框或者消除。
在操作602处,可经由外围组件快速互连(PCIe)端口的多个通道中的相应通道来传输相应通道标识符。图1的通道标识符114、图2的通道标识符214和图3的通道标识符312中的任一者可为方法600的通道标识符的示例。图1的通道112、图2的通道212和图3的通道310中的任一者可为方法600的通道的示例。图1的PCIe端口110、图2的PCIe端口210和图3的PCIe端口302中的任一者可以是方法600的PCIe端口示例。
在操作604处,可经由PCIe端口的多个通道中的相应通道来接收相应另外的通道标识符。图1的另外的通道标识符116、图2的另外的通道标识符216和图3的另外的通道标识符314中的任一者可为方法600的相应另外的通道标识符的示例。
在操作606处,可确定多个通道中的哪个通道分配给用于与耦接到PCIe端口的设备通信的相应链路。该确定可以至少部分地响应于相应另外的通道标识符。图1的链路122和图2的链路222中的任一者可为方法600的链路的示例。图1的设备120、图2的设备220、图3的设备304、图3的设备306和图3的设备308中的任一者可以是方法600的设备的示例。
在操作608中,将多个通道中所确定的通道分配给链路。作为非限制性示例,逻辑部件可以设置存储在寄存器处的链路标识符的值。这些值可以响应于被确定为分配给与设备的链路的多个通道。此外,在一些示例中,逻辑部件可以管理PCIe端口,使得用于某些设备的某些接口的信号(例如,分组)根据所确定的通道分配在对应的通道处被传输。此外,逻辑部件可以管理PCIe端口,使得根据所确定的通道分配来路由在某些通道处接收的信号(例如,分组)。
图7是根据本公开的各种示例的示例方法700的流程图。在一些示例中,方法700的至少一部分可由设备或系统执行,诸如图1的装置100、图1的逻辑部件106、图2的装置200、图2的逻辑部件206、图2的另外的逻辑部件224、图10的设备1000或另一设备或系统。尽管示出为离散框,但是根据期望的实施方式,可将各种框划分为附加框,组合成更少的框或者消除。
操作702可与图6的操作602相同。操作704可与图6的操作604相同。操作706可与图6的操作606相同。操作708可与图6的操作608相同。
在操作710处,可以在允许状态转变之前阻止状态转变一时间段以经由多个通道中的相应通道来接收相应另外的通道标识符。作为非限制性示例,可以在图4的时间段416内防止从图4的检测激活状态404到图4的轮询激活状态406的转变。
操作712至操作716可以是操作710的替代。在操作712处,PCIe端口配置状态转变可被管理以不从对应于检测状态的第一状态转变到对应于轮询状态的第二状态。作为非限制性示例,可以在图4的时间段416内防止从图4的检测激活状态404到图4的轮询激活状态406的转变。
在操作714处,在该时间段之后,可以引起状态转变并且可以发送信号。作为非限制性示例,在时间段416之后,可以引起从检测激活状态404到轮询激活状态406的转变。此外,可以发送信号,例如,可以发送中断信号。该信号可以由另外的逻辑部件接收。作为非限制性示例,图2的逻辑部件206可发送操作714的信号,并且图2的另外的逻辑部件224可接收该信号并且可响应于该信号。该信号可以指示链路连接过程已经开始。
在操作716处,可以响应于经由多个通道中的相应通道接收到相应另外的通道标识符而引起状态转变。作为非限制性示例,如果在图3的通道310中的每个通道处接收到图3的另外的通道标识符314,则可以引起状态转变。
图8是根据本公开的各种示例的示例方法800的流程图。在一些示例中,方法800的至少一部分可由设备或系统执行,诸如图1的装置100、图1的逻辑部件106、图2的装置200、图2的逻辑部件206、图2的另外的逻辑部件224、图10的设备1000或另一设备或系统。尽管示出为离散框,但是根据期望的实施方式,可将各种框划分为附加框,组合成更少的框或者消除。
操作802可与图6的操作602相同。操作804可与图6的操作604相同。操作806可与图6的操作606相同。操作808可与图6的操作608相同。
在操作810处,PCIe端口配置状态转变可被管理以不从对应于轮询激活状态的第一状态转变到对应于轮询遵循状态的第二状态。作为非限制性示例,PCIe端口配置状态转变可被管理以防止从轮询激活状态502到轮询遵循状态504的转变514。
在操作812处,在超时之后,PCIe端口配置状态转变可被管理以从第一状态转变到对应于检测状态的第三状态。作为非限制性示例,PCIe端口配置状态转变可被管理以引起在超时之后从轮询激活状态502到退出到检测状态510的转变516(例如,而不是从轮询激活状态502到退出到检测状态510的转变514)。
图9是根据本公开的各种示例的示例方法900的流程图。在一些示例中,方法900的至少一部分可由设备或系统执行,诸如图1的装置100、图1的逻辑部件106、图2的装置200、图2的逻辑部件206、图2的另外的逻辑部件224、图10的设备1000或另一设备或系统。尽管示出为离散框,但是根据期望的实施方式,可将各种框划分为附加框,组合成更少的框或者消除。
操作902可与图6的操作602相同。操作904可与图6的操作604相同。操作906可与图6的操作606相同。
在操作908处,可以确定在其上接收到相同的相应另外的通道标识符的所有通道将被分配给链路。例如,可以确定在其的所有通道上可能已经接收到相同的另外的通道标识符的通道316被分配给相同的链路。
在操作910处,可在寄存器处设置值。该值可以对应于分配给链路的多个通道中所确定的通道。图1的值108和图2的值208中的任一者可为方法900的值的示例。图1的寄存器102和图2的寄存器202中的任一者可为方法900的寄存器的示例。
在操作912处,可以至少部分地响应于检测到至PCIe端口的设备连接来传输相应通道标识符。在一些示例中,可以至少部分地响应于设备连接来传输在操作902处传输的通道标识符,例如,如操作912所描述的。作为操作的示例,设备可以连接到本公开的示例的PCIe端口。本公开的示例可以观察该连接并且可以响应于该连接来传输通道标识符。
可对图4的状态图400、图5的状态图500、图6的方法600、图7的方法700及图8的方法800、图9的方法900作出修改、添加或省略而不脱离本公开的范围。例如,方法600、方法700、方法800和/或方法900的操作可以不同的顺序实现。此外,概述的操作和动作仅作为示例提供,并且操作和动作中的一些可以是任选的,组合成更少的操作和动作,或者扩展成附加的操作和动作而不偏离所公开示例的本质。
图10是示例设备1000的框图,在各种示例中,该示例设备可用于实现本文所公开的各种功能、操作、动作、过程和/或方法。设备1000包括能够操作地耦接到一个或多个装置诸如数据存储设备(在本文中有时称为″存储装置1004")的一个或多个处理器1002(在本文中有时称为″处理器1002"),但不限于此。存储装置1004包括存储在其上(例如,存储在计算机可读存储器上)的机器可执行代码1006,并且处理器1002包括逻辑电路1008。机器可执行代码1006包括描述可由逻辑电路1008实现(例如,由该逻辑电路执行)的功能元件的信息。逻辑电路1008实现(例如,执行)由机器可执行代码1006描述的功能元件。当执行由机器可执行代码1006描述的功能元件时,设备1000应被视为可执行本文所公开的功能元件的专用硬件。在各种示例中,处理器1002可按顺序、同时地(例如,在一个或多个不同的硬件平台上)或在一个或多个并行过程流中执行由机器可执行代码1006描述的功能元件。
当由处理器1002的逻辑电路1008实现时,机器可执行代码1006可使得处理器1002适于执行本文所公开的示例的操作。例如,机器可执行代码1006可调整处理器1002以执行图6的方法600、图7的方法700、图8的方法800和/或图9的方法900的至少一部分或全部。又如,机器可执行代码1006可调整处理器1002以执行针对图1的装置100、图1的逻辑部件106、图2的装置200、图2的逻辑部件206、图2的另外的逻辑部件224所讨论的操作的至少一部分或全部。
处理器1002可包括通用处理器、专用处理器、中央处理单元(CPU)、微控制器、可编程逻辑控制器(PLC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立栅极或晶体管逻辑部件、分立硬件部件、其他可编程设备或被设计成执行本文所公开的功能的它们的任何组合。在包括处理器的通用计算机执行与本公开的示例相关的计算指令(例如,软件代码)时,该通用计算机被认为是专用计算机。需注意,通用处理器(在本文中也可称为主机处理器或简称主机)可以是微处理器,但在替代方案中,处理器1002可包括任何常规处理器、控制器、微控制器或状态机。处理器1002也可实现为计算设备的组合,诸如DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器或任何其他此类配置。
在各种示例中,存储装置1004包括易失性数据存储装置(例如,随机存取存储器(RAM))、非易失性数据存储装置(例如,闪存存储器、硬盘驱动器、固态驱动器、可擦除可编程只读存储器(EPROM),但不限于此)。在各种示例中,处理器1002和存储装置1004可实现为单个设备(例如,半导体器件产品、片上系统(SOC),但不限于此)。在各种示例中,处理器1002和存储装置1004可实现为单独的设备。
在各种示例中,机器可执行代码1006可包括计算机可读指令(例如,软件代码、固件代码)。作为非限制性示例,计算机可读指令可由存储装置1004存储,由处理器1002直接访问,并且由处理器1002使用至少逻辑电路1008来执行。同样作为非限制性示例,计算机可读指令可被存储在存储装置1004上,传输到存储器设备(未示出)以供执行,并且由处理器1002使用至少逻辑电路1008来执行。因此,在各种示例中,逻辑电路1008包括电可配置逻辑电路。
在各种示例中,机器可执行代码1006可描述要在逻辑电路1008中实现以执行功能元件的硬件(例如,电路)。该硬件可以从低级晶体管布局到高级描述语言的各种抽象级别中的任何一种进行描述。在高级抽象下,可使用硬件描述语言(HDL),诸如电气和电子工程师协会(IEEE)标准硬件描述语言(HDL),但不限于此。作为非限制性示例,可以使用VerilogTM、SystemVerilogTM或超大规模集成(VLSI)硬件描述语言(VHDLTM)。
HDL描述可根据需要以多种其他抽象级别中的任一种转换成描述。作为非限制性示例,高级描述可被转换为逻辑级描述诸如寄存器传送语言(RTL)、门级(GL)描述、布局级描述或掩模级描述。作为非限制性示例,待由逻辑电路1008的硬件逻辑电路(例如,栅极、触发器、寄存器,但不限于此)执行的微操作可在RTL中描述并且然后通过合成工具转换成GL描述,并且GL描述可通过安置和路由工具转换成布局级描述,该布局级描述对应于可编程逻辑器件的集成电路、分立栅极或晶体管逻辑部件、分立硬件部件或它们的组合的物理布局。因此,在各种示例中,机器可执行代码1006可包括HDL、RTL、GL描述、掩模级描述、其他硬件描述或它们的任何组合。
在机器可执行代码1006包括硬件描述(以任何抽象级别)的示例中,系统(未示出,但包括存储装置1004)可实现由机器可执行代码1006描述的硬件描述。作为非限制性示例,处理器1002可包括可编程逻辑器件(例如,FPGA或PLC),并且逻辑电路1008可被电控制以将对应于硬件描述的电路实现在逻辑电路1008中。同样作为非限制性示例,逻辑电路1008可包括根据机器可执行代码1006的硬件描述而由制造系统(未示出,但包括存储装置1004)制造的硬连线逻辑部件。
无论机器可执行代码1006包括计算机可读指令还是硬件描述,逻辑电路1008在实现机器可执行代码1006的功能元件时执行由机器可执行代码1006描述的功能元件。需注意,虽然硬件描述可能不直接描述功能元件,但硬件描述间接描述了由硬件描述所描述的硬件元件能够执行的功能元件。
如本文所用,对给定参数、属性或条件的标引的术语″基本上″是指并且包括在一定程度上本领域的技术人员将理解在具有较小差异的情况下(诸如,在可接受的制造公差内)满足该给定参数、属性或条件。例如,基本上满足的参数可以是至少约90%满足、至少约95%满足或甚至至少约99%满足。
如在本公开中使用的,术语″模块″或″部件″可以是指执行可存储在计算系统的通用硬件(例如,计算机可读介质、处理设备,但不限于此)上并且/或者由通用硬件执行的模块或部件和/或软件对象或软件例程的动作的特定硬件实施方式。在各种示例中,本公开中描述的不同部件、模块、引擎和服务可以实现为在计算系统上执行的对象或进程(例如,作为单独的线程)。虽然本公开中描述的系统和方法中的一些系统和方法通常被描述为在软件中实现(存储在通用硬件上并且/或者由通用硬件执行),但是特定硬件实施方式或软件和特定硬件实施方式的组合也是可能且可以预期的。
如在本公开中使用的,涉及多个元件的术语″组合″可包括所有元件的组合或某些元件的各种不同子组合中的任何一种组合。例如,短语″A、B、C、D或它们的组合″可指A、B、C或D中的任一者;A、B、C和D中的每一者的组合;以及A、B、C或D的任何子组合,诸如A、B和C;A、B和D;A、C和D;B、C和D;A和B;A和C;A和D;B和C;B和D;或C和D。
用于本公开,尤其是所附权利要求书中的术语(例如,所附权利要求书的主体)通常旨在作为″开放″术语(例如,术语″包括″应被解释为″包括但不限于″,术语″具有″应被解释为″至少具有″,术语″包括″应被解释为″包括但不限于″,但不限于此)。
另外,如果预期特定数量的引入的权利要求表述,则在权利要求中将明确叙述此类意图,并且在不进行此类表述的情况下,不存在此类意图。例如,作为对理解的辅助,以下所附权利要求书可包含使用引入性短语″至少一个″和″一个或多个″来引入权利要求叙述。然而,使用此类短语不应理解为暗示由不定冠词″一个″或″一种″引入的权利要求表述将包含此类引入的权利要求表述的任何特定权利要求限定于仅包含一个此类表述的示例,即使当相同的权利要求包括介绍性短语″一个或多个″或″至少一个″和不定冠词,诸如″一个″或″一种″(例如,″一个″和/或″一种″可被解释为指的是″至少一个″或″一个或多个″);使用定冠词来引入权利要求叙述也是如此。
另外,即使明确叙述了特定数量的所引入的权利要求叙述,本领域技术人员也将认识到,此类叙述应被解译为意味着至少所叙述的数量(例如,无修饰的叙述″两项叙述″在没有其他修饰成分的情况下意味着至少两项叙述,或两项或更多项叙述)。此外,在使用类似于″A、B和C中的至少一者,但不限于此″或″A、B和C中的一者或多者,但不限于此″的惯例的那些实例情况下,此类构造一般旨在包括单独A、单独B、单独C、A和B一起、A和C一起、B和C一起或A、B和C一起,但不限于此。
此外,无论在说明书、权利要求书或附图中,呈现两个或更多个替代性术语的任何分离的词或措辞应当理解为考虑包括该术语中的一个术语、该术语中的任意一个术语或两个术语的可能性。例如,短语″A或B″应理解为包括″A″或″B″或″A和B″的可能性。
本公开的附加非限制性示例可包括:
实施例1:一种方法,该方法包括:经由外围组件快速互连(PCIe)端口的多个通道中的相应通道来传输相应通道标识符;经由该PCIe端口的该多个通道中的该相应通道来接收相应另外的通道标识符;至少部分地响应于该相应另外的通道标识符来确定将该多个通道中的哪一个通道分配给用于与耦接到该PCIe端口的设备通信的链路;以及将该多个通道中所确定的通道分配给该链路。
实施例2:根据实施例1所述的方法,包括在允许状态转变之前,防止该状态转变一时间段以经由该多个通道中的该相应通道来接收该相应另外的通道标识符。
实施例3:根据实施例1和2中任一项所述的方法,其中防止该状态转变该时间段包括管理PCIe端口配置状态转变以不从对应于检测状态的第一状态转变到对应于轮询状态的第二状态。
实施例4:根据实施例1至3中任一项所述的方法,包括在该时间段之后引起该状态转变以及发送信号。
实施例5:根据实施例1至4中任一项所述的方法,包括响应于经由该多个通道中的该相应通道来接收该相应另外的通道标识符而引起该状态转变。
实施例6:根据实施例1至5中任一项所述的方法,包括管理PCIe端口配置状态转变以不从对应于轮询激活状态的第一状态转变到对应于轮询遵循状态的第二状态。
实施例7:根据实施例1至6中任一项所述的方法,其中管理PCIe端口配置状态转变以不从该第一状态转变到该第二状态包括:在超时之后,管理PCIe端口配置状态转变以从该第一状态转变到对应于检测状态的第三状态。
实施例8:根据实施例1至7中任一项所述的方法,其中确定将该多个通道中的哪一个通道分配给该链路包括确定将在其上接收到相同的相应另外的通道标识符的所有通道分配给该链路。
实施例9:根据实施例1至8中任一项所述的方法,其中该链路包括第一链路,其中该设备包括第一设备,其中该相同的相应另外的通道标识符包括第一相同的相应另外的通道标识符,并且其中该方法包括通过确定将在其上接收到相同的第二相应另外的通道标识符的所有通道分配给该第二链路来至少部分地响应于该相应另外的通道标识符确定将该多个通道中的哪一个通道分配给用于与耦接到该PCIe端口的第二设备通信的第二链路。
实施例10:根据实施例1至9中任一项所述的方法,其中分配该多个通道中所确定的通道包括在寄存器处设置值,该值对应于分配给该链路的该多个通道中所确定的通道。
实施例11:根据实施例1至10中任一项所述的方法,包括至少部分地响应于检测到至该PCIe端口的设备连接来传输该相应通道标识符。
实施例12:一种装置,该装置包括:寄存器,该寄存器用于存储外围组件快速互连(PCIe)端口的通道的链路标识符;耦接到该寄存器以设置该链路标识符的值的逻辑部件,该逻辑部件用于:经由该PCIe端口的多个通道中的相应通道来传输相应通道标识符;经由该PCIe端口的该多个通道中的该相应通道来接收相应另外的通道标识符;至少部分地响应于该相应另外的通道标识符来确定将该多个通道中的哪一个通道分配给用于与耦接到该PCIe端口的设备通信的链路;以及设置存储在该寄存器处的相应链路标识符的值,该值至少部分地响应于所确定的分配给该链路的多个通道。
实施例13:根据实施例12所述的装置,该逻辑部件用于管理PCIe端口配置状态转变以在从对应于检测的第一状态转变到对应于轮询状态的第二状态之前等待。
实施例14:根据实施例12和13中任一项所述的装置,该逻辑部件用于在从该第一状态转变到该第二状态之前等待1毫秒和4毫秒之间。
实施例15:根据实施例12至14中任一项所述的装置,该逻辑部件用于管理PCIe端口配置状态转变以在处于对应于轮询激活状态的第一状态一时间段之后转变到对应于检测状态的第二状态。
实施例16:根据实施例12至15中任一项所述的装置,其中该逻辑部件用于通过确定将在其上接收到相同的相应另外的通道标识符的所有通道分配给该链路来确定将该多个通道中的哪一个通道分配给该链路。
实施例17:根据实施例12至16中任一项所述的装置,其中该逻辑部件还用于至少部分地响应于检测到至该PCIe端口的设备连接来传输该相应通道标识符。
实施例18:一种装置,包括:寄存器,该寄存器用于存储外围组件快速互连(PCIe)端口的通道的链路标识符;耦接到该寄存器以设置该链路标识符的值的逻辑部件,该逻辑部件用于:经由该PCIe端口的多个通道中的相应通道来传输相应通道标识符;经由该PCIe端口的该多个通道接收相应另外的通道标识符;至少部分地响应于该相应另外的通道标识符来确定将该多个通道中的哪一个通道分配给用于与耦接到该PCIe端口的设备通信的链路;以及设置存储在该寄存器处的相应链路标识符的值,该值至少部分地响应于所确定的分配给该链路的多个通道;耦接到该寄存器以读取该链路标识符的值的另外的逻辑部件,该另外的逻辑部件用于:读取存储在该寄存器处的该相应链路标识符的该值;以及至少部分地响应于该相应链路标识符将该多个通道中所确定的通道分配给该链路。
实施例19:根据实施例18所述的装置,该另外的逻辑部件用于管理PCIe端口配置状态转变以不从对应于检测的第一状态转变到对应于轮询状态的第二状态一时间段,从而在该多个通道中的每个通道上接收相应传输。
实施例20:根据实施例18和19中任一项所述的装置,该另外的逻辑部件用于管理PCIe端口配置状态转变通过在超时之后从对应于轮询激活状态的第一状态转变到对应于检测状态的第三状态来不从该第一状态转变到对应于轮询遵循状态的第二状态。
虽然本公开关于某些图示示例描述了本发明,但本领域的普通技术人员将认识到并理解本发明不受此限制。相反,在不脱离下文所要求保护的本发明的范围及其法律等同形式的情况下,可对图示示例和所述示例进行许多添加、删除和修改。除此之外,来自一个示例的特征可与另一示例的特征组合,同时仍被包括在发明人所设想的本发明的范围内。
Claims (20)
1.一种方法,所述方法包括:
经由外围组件快速互连(PCIe)端口的多个通道中的相应通道来传输相应通道标识符;
经由所述PCIe端口的所述多个通道中的所述相应通道来接收相应另外的通道标识符;
至少部分地响应于所述相应另外的通道标识符来确定将所述多个通道中的哪一个通道分配给用于与耦接到所述PCIe端口的设备通信的链路;以及
将所述多个通道中所确定的通道分配给所述链路。
2.根据权利要求1所述的方法,包括在允许状态转变之前,防止所述状态转变一时间段以经由所述多个通道中的所述相应通道来接收所述相应另外的通道标识符。
3.根据权利要求2所述的方法,其中防止所述状态转变所述时间段包括管理PCIe端口配置状态转变以不从对应于检测状态的第一状态转变到对应于轮询状态的第二状态。
4.根据权利要求2所述的方法,包括在所述时间段之后引起所述状态转变以及发送信号。
5.根据权利要求2所述的方法,包括响应于经由所述多个通道中的所述相应通道来接收所述相应另外的通道标识符而引起所述状态转变。
6.根据权利要求1所述的方法,包括管理PCIe端口配置状态转变以不从对应于轮询激活状态的第一状态转变到对应于轮询遵循状态的第二状态。
7.根据权利要求6所述的方法,其中管理PCIe端口配置状态转变以不从所述第一状态转变到所述第二状态包括:在超时之后,管理PCIe端口配置状态转变以从所述第一状态转变到对应于检测状态的第三状态。
8.根据权利要求1所述的方法,其中确定将所述多个通道中的哪一个通道分配给所述链路包括确定将在其上接收到相同的所述相应另外的通道标识符的所有通道分配给所述链路。
9.根据权利要求8所述的方法,其中所述链路包括第一链路,其中所述设备包括第一设备,其中所述相同的相应另外的通道标识符包括第一相同的相应另外的通道标识符,并且其中所述方法包括通过确定将在其上接收到相同的第二相应另外的通道标识符的所有通道分配给所述第二链路来至少部分地响应于所述相应另外的通道标识符确定将所述多个通道中的哪一个通道分配给用于与耦接到所述PCIe端口的第二设备通信的第二链路。
10.根据权利要求1所述的方法,其中分配所述多个通道中所确定的通道包括在寄存器处设置值,所述值对应于分配给所述链路的所述多个通道中所确定的通道。
11.根据权利要求1所述的方法,包括至少部分地响应于检测到至所述PCIe端口的设备连接来传输所述相应通道标识符。
12.一种装置,所述装置包括:
寄存器,所述寄存器用于存储外围组件快速互连(PCIe)端口的通道的链路标识符;
耦接到所述寄存器以设置所述链路标识符的值的逻辑部件,所述逻辑部件用于:
经由所述PCIe端口的多个通道中的相应通道来传输相应通道标识符;
经由所述PCIe端口的所述多个通道中的所述相应通道来接收相应另外的通道标识符;
至少部分地响应于所述相应另外的通道标识符来确定将所述多个通道中的哪一个通道分配给用于与耦接到所述PCIe端口的设备通信的链路;以及
设置存储在所述寄存器处的相应链路标识符的值,所述值至少部分地响应于所确定的分配给所述链路的多个通道。
13.根据权利要求12所述的装置,所述逻辑部件用于管理PCIe端口配置状态转变以在从对应于检测的第一状态转变到对应于轮询状态的第二状态之前等待。
14.根据权利要求13所述的装置,所述逻辑部件用于在从所述第一状态转变到所述第二状态之前等待1毫秒和4毫秒之间。
15.根据权利要求12所述的装置,所述逻辑部件用于管理PCIe端口配置状态转变以在处于对应于轮询激活状态的第一状态一时间段之后转变到对应于检测状态的第二状态。
16.根据权利要求12所述的装置,其中所述逻辑部件用于通过确定将在其上接收到相同的所述相应另外的通道标识符的所有通道分配给所述链路来确定将所述多个通道中的哪一个通道分配给所述链路。
17.根据权利要求12所述的装置,其中所述逻辑部件还用于至少部分地响应于检测到至所述PCIe端口的设备连接来传输所述相应通道标识符。
18.一种装置,所述装置包括:
寄存器,所述寄存器用于存储外围组件快速互连(PCIe)端口的通道的链路标识符;
耦接到所述寄存器以设置所述链路标识符的值的逻辑部件,所述逻辑部件用于:
经由所述PCIe端口的多个通道中的相应通道来传输相应通道标识符;
经由所述PCIe端口的所述多个通道接收相应另外的通道标识符;
至少部分地响应于所述相应另外的通道标识符来确定将所述多个通道中的哪一个通道分配给用于与耦接到所述PCIe端口的设备通信的链路;以及
设置存储在所述寄存器处的相应链路标识符的值,所述值至少部分地响应于所确定的分配给所述链路的多个通道;
耦接到所述寄存器以读取所述链路标识符的值的另外的逻辑部件,所述另外的逻辑部件用于:
读取存储在所述寄存器处的所述相应链路标识符的所述值;以及
至少部分地响应于所述相应链路标识符将所述多个通道中所确定的通道分配给所述链路。
19.根据权利要求18所述的装置,所述另外的逻辑部件用于管理PCIe端口配置状态转变以不从对应于检测的第一状态转变到对应于轮询状态的第二状态一时间段,以在所述多个通道中的每个通道上接收相应传输。
20.根据权利要求18所述的装置,所述另外的逻辑部件用于管理PCIe端口配置状态转变通过在超时之后从对应于轮询激活状态的第一状态转变到对应于检测状态的第三状态来不从所述第一状态转变到对应于轮询遵循状态的第二状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163260035P | 2021-08-06 | 2021-08-06 | |
US63/260,035 | 2021-08-06 | ||
PCT/US2022/074626 WO2023015308A1 (en) | 2021-08-06 | 2022-08-05 | Determining allocation of lanes of a peripheral-component‑interconnect-express port to links |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117751355A true CN117751355A (zh) | 2024-03-22 |
Family
ID=83151689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280054253.XA Pending CN117751355A (zh) | 2021-08-06 | 2022-08-05 | 确定外围组件快速互连端口的通道到链路的分配 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230037421A1 (zh) |
CN (1) | CN117751355A (zh) |
DE (1) | DE112022003866T5 (zh) |
WO (1) | WO2023015308A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437643B2 (en) * | 2005-06-21 | 2008-10-14 | Intel Corporation | Automated BIST execution scheme for a link |
US20070233930A1 (en) * | 2006-03-14 | 2007-10-04 | International Business Machines Corporation | System and method of resizing PCI Express bus widths on-demand |
US7756123B1 (en) * | 2006-12-21 | 2010-07-13 | Nvidia Corporation | Apparatus, system, and method for swizzling of a PCIe link |
US10698856B1 (en) * | 2018-12-18 | 2020-06-30 | Ati Technologies Ulc | Alternative protocol selection |
US10936530B2 (en) * | 2019-07-24 | 2021-03-02 | Ati Technologies Ulc | Method and apparatus for determining link bifurcation availability |
US11836101B2 (en) * | 2019-11-27 | 2023-12-05 | Intel Corporation | Partial link width states for bidirectional multilane links |
KR102635457B1 (ko) * | 2021-05-24 | 2024-02-13 | 에스케이하이닉스 주식회사 | PCIe 장치 및 이를 포함하는 컴퓨팅 시스템 |
KR102635450B1 (ko) * | 2021-05-26 | 2024-02-13 | 에스케이하이닉스 주식회사 | PCIe 장치 및 그 동작 방법 |
-
2022
- 2022-08-05 CN CN202280054253.XA patent/CN117751355A/zh active Pending
- 2022-08-05 WO PCT/US2022/074626 patent/WO2023015308A1/en active Application Filing
- 2022-08-05 DE DE112022003866.7T patent/DE112022003866T5/de active Pending
- 2022-08-05 US US17/817,906 patent/US20230037421A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
DE112022003866T5 (de) | 2024-05-29 |
WO2023015308A1 (en) | 2023-02-09 |
US20230037421A1 (en) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108595353B (zh) | 一种基于PCIe总线的控制数据传输的方法及装置 | |
JP5036120B2 (ja) | 非ブロック化共有インターフェイスを持つ通信システム及び方法 | |
US6182183B1 (en) | Communications system and method with multilevel connection identification | |
US7426602B2 (en) | Switch for bus optimization | |
US7660922B2 (en) | Mechanism to flexibly support multiple device numbers on point-to-point interconnect upstream ports | |
KR102398515B1 (ko) | 버스간 통신들의 브리징 | |
JP2015500541A (ja) | メモリ応答の順序付けのためのメモリ装置、コンピュータシステムおよび方法 | |
EP3001323B1 (en) | Serial peripheral interface | |
US9424218B1 (en) | SAS expander with non-blocking virtual phy architecture | |
EP1582989B1 (en) | Data transfer processing device and data transfer processing method | |
CN107710179B (zh) | 具有多个sdio单元的多址单sdio接口 | |
KR20180019593A (ko) | 확장된 메시지 시그널링된 인터럽트들 (msi) 메시지 데이터 | |
US20050289278A1 (en) | Apparatus and method for programmable completion tracking logic to support multiple virtual channels | |
US10936530B2 (en) | Method and apparatus for determining link bifurcation availability | |
US20160371214A1 (en) | Single SDIO Interface with Multiple SDIO Units | |
CN107291641B (zh) | 用于计算单元的存储器直接访问控制装置及其运行方法 | |
CN107771328B (zh) | 具有多个sdio单元的单中继sdio接口 | |
CN117751355A (zh) | 确定外围组件快速互连端口的通道到链路的分配 | |
US8626974B2 (en) | Methods and systems for reduced signal path count for interconnect signals within a storage system expander | |
US20130219095A1 (en) | Circuit and method for pipe arbitration using available state information and arbitration | |
US9645959B2 (en) | Fast link training in embedded systems | |
US20160292093A1 (en) | Bus system including bridge circuit for connecting interlock bus and split bus | |
JP2006119724A (ja) | Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム | |
CN103365811A (zh) | 电子装置和主机确定方法 | |
US11467742B2 (en) | Configurable memory architecture for computer processing systems |
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 |