CN116893997A - 接口设备和包括该接口设备的计算系统 - Google Patents
接口设备和包括该接口设备的计算系统 Download PDFInfo
- Publication number
- CN116893997A CN116893997A CN202211543294.3A CN202211543294A CN116893997A CN 116893997 A CN116893997 A CN 116893997A CN 202211543294 A CN202211543294 A CN 202211543294A CN 116893997 A CN116893997 A CN 116893997A
- Authority
- CN
- China
- Prior art keywords
- state
- link
- speed
- configuration
- sub
- 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
- 238000011084 recovery Methods 0.000 claims description 74
- 230000008859 change Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 31
- 238000012549 training Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 5
- 238000011144 upstream manufacturing Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 24
- 238000001514 detection method Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000009432 framing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013139 quantization Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006880 cross-coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/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/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明的实施例涉及接口设备和包括该接口设备的计算系统。一种接口设备包括:多个端口,用于形成多条通道;以及链路控制器,通过基于进入到包括多条通道的链路的配置状态的原因确定链路的速度的方式设置链路的速度。
Description
相关申请的交叉引用
本申请要求于2022年4月1日提交的韩国专利申请号10-2022-0040881的优先权,其全部公开内容通过引用并入本文。
技术领域
本公开总体上涉及一种电子设备,并且更具体地,涉及一种接口设备和包括该接口设备的计算系统。
背景技术
外围组件互连(PCI)定义了用于将输入/输出设备连接到主机设备的总线协议。PCI快速(PCIe)被用来将物理通信层定义为高速串行接口,同时具有在PCI标准中定义的编程概念。
存储设备是在主机设备(诸如计算机或智能电话)的控制下存储数据的设备。存储设备可以包括用于存储数据的存储器设备和用于控制该存储器设备的存储器控制器。存储器设备被分类为易失性存储器设备和非易失性存储器设备。
易失性存储器设备是一种仅在电源被供应时存储数据,并且在电源供应被中断时所存储的数据消失的存储器设备。易失性存储器设备可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
非易失性存储器设备是一种即便在电源供应被中断时数据也不会消失的存储器设备。非易失性存储器设备可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEROM)、快闪存储器等等。
发明内容
本公开的各种实施例提供了一种接口设备和包括该接口设备的计算系统,该接口设备和计算系统可以在链路设置操作期间根据配置操作的进入因素而适应性地控制链路速度。
根据本公开的一个方面,提供了一种接口设备,包括:多个端口,被配置为形成多条通道;以及链路控制器,被配置为通过基于进入到包括多条通道的链路的配置状态的原因通过确定链路的速度的方式设置链路的速度。
根据本公开的另一个方面,提供了一种操作接口设备的方法,该方法包括:允许被连接到外部设备的链路的状态进入到配置状态;以及通过基于紧接在配置状态之前的链路的状态确定链路的速度的方式设置链路的速度。
根据本公开的另一个方面,提供了一种操作接口设备的方法,该方法包括:允许被连接到外部设备的链路的状态进入到配置状态;在链路的状态是恢复状态的子状态之中的一个子状态时,首先确定链路的状态是否要进入到配置状态;以及响应于该首先确定,其次确定链路的速度。
根据本公开的另一个方面,提供了一种设备的操作方法,该操作方法包括:在配置包括多条通道的链路时,根据紧接在配置之前的链路的第一状态,将链路的速度设置为第一值;以及在配置链路时,根据紧接在配置之前的链路的第二状态,将速度设置为第二值。
附图说明
现在将参考附图在下文中更充分地描述本公开的各种实施例,然而,这些实施例可以以不同的形式来实施,并且不应该被解释为限于本文所阐述的实施例。相反,提供这些实施例是为了使本公开彻底和完整,并将向本领域的技术人员充分传达本实施例的范围。
在附图中,为了清楚地进行图示,大小可能被夸大。可以理解的是,当一个元件被称为在两个元件“之间”时,它可以是所述两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。类似的附图标记贯穿全文指代类似的元件。
图1是图示了根据本公开的一个实施例的计算系统的图。
图2是图示了根据本公开的一个实施例的外围组件互连快速(PCIe)设备的图。
图3是图示了根据本公开的一个实施例的PCIe接口的图。
图4是图示了根据本公开的一个实施例的发送器、接收器和通道的图。
图5是图示了根据本公开的一个实施例的差分信号的图。
图6是图示了根据本公开的一个实施例的数据包的配置的图。
图7是图示了根据本公开的一个实施例的数据流的图。
图8是图示了根据本公开的一个实施例的端口的图。
图9是图示了根据本公开的一个实施例的PCIe设备的链路状态的图。
图10是图示了根据本公开的一个实施例的图9中所示的恢复状态的详细子状态的图。
图11是图示了根据本公开的一个实施例的PCIe设备的图。
图12A和图12B是图示了根据本公开的一个实施例的设置链路的操作的图。
图13是图示了根据本公开的一个实施例的配置状态的操作方法的流程图。
图14是图示了根据本公开的一个实施例的L0状态的操作方法的流程图。
图15是图示了根据本公开的另一个实施例的恢复状态的操作方法的流程图。
具体实施方式
本文所公开的具体结构或功能说明仅仅是以描述根据本公开的概念的实施例的目的而例示的。根据本公开的概念的实施例可以以各种形式来实现,并且不能被解释为限于本文所阐述的实施例。
图1是图示了根据本公开的一个实施例的计算系统的图。
参考图1,计算系统100可以包括CPU 110、根联合体120、存储器130、交换机140、外围组件互连快速(PCIe)端点150_1至150_3、传统端点160_1和160_2以及PCIe桥170。
计算系统100可以是支持使用PCIe接口的通信的电子设备。计算系统100可以是PC、笔记本计算机或移动计算设备,并且包括扩展卡、扩展板、适配器卡、插入卡或配件卡。另外,计算系统100可以包括能够被插入到计算系统100的主板上的电连接器或扩展槽的印刷电路板(PCB),以通过扩展总线向计算系统100提供附加功能。另外,计算系统100可以包括诸如固态驱动装置(SSD)之类的存储器设备,并且包括显卡、网卡、USB卡等等。
CPU 110可以与计算系统100的每个组件电连接,并控制该计算系统100的每种操作。具体地,CPU 110可以通过驱动操作系统或应用程序来控制连接到CPU 110的软件或硬件的组件,并执行各种数据处理和计算。另外,CPU 110可以执行用于控制计算系统100的操作的软件或应用。
根联合体120可以是PCIe互连架构中的根集线器、控制器集线器或根控制器。例如,根联合体120可以包括芯片集、存储器控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥和根控制器/集线器。另外,根联合体120可以将CPU 110和存储器130连接到输入/输出(I/O)层级结构。根联合体120可以支持对等(P2P)路由。根联合体120可以包括至少一个主机桥和至少一个根端口。根联合体120可以支持至少一个PCIe端口。
存储器130可以存储计算系统100的操作所需的数据、命令或程序代码。在一个实施例中,存储器130可以存储用于执行一个或多个操作系统(OS)和一个或多个虚拟机(VM)的程序代码以及用于执行用于管理VM的虚拟化中介(VI)的程序代码。另外,存储器130可以被实现为诸如DRAM或SRAM的易失性存储器设备。
交换机140可以将数据包或消息上行或下行路由。具体地,交换机140可以将数据包或消息从PCIe端点(例如,150_1)上行路由到朝向根联合体120的层。而且,交换机140可以将数据包或消息从根联合体120下行路由到朝向PCIe端点(例如,150_2)的层。
交换机140可以被指定为多个虚拟PCI到PCI桥设备的逻辑配件。能够连接到交换机140的设备可以包括连接到电子系统的任意的内部或外部设备或组件,诸如网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘、存储设备、CD/DVD ROM、显示器、打印机、鼠标、键盘、路由器、移动存储设备、火线设备、通用串行总线(USB)、扫描仪以及其他输入/输出设备。虽然没有详细示出,但是该设备可以包括支持传统版本或另一版本的PCI设备的PCIe到PCI/PCI-X桥。
在一个实施例中,根联合体120可以连接到端点。该端点可以表示能够成为PCIe事务的请求者或完成者的功能部的类型。该端点可以被分类为传统端点和PCIe端点。
PCIe端点150_1至150_3以及传统端点160_1和160_2可以充当PCIe事务的请求者或完成者。通过PCIe端点150_1至150_3以及传统端点160_1和160_2传送的事务层数据包(TLP)可以提供配置空间报头。另外,PCIe端点150_1至150_3和传统端点160_1和160_2作为完成者可以提供配置请求。在特定条件下,通过PCIe端点150_1至150_3和传统端点160_1和160_2传送的事务层数据包(TLP)必须提供配置空间报头。另外,PCIe端点150_1至150_3和传统端点160_1和160_2作为完成者必须提供配置请求。
PCIe端点150_1至150_3和传统端点160_1和160_2可以根据存储器事务的大小来划分。例如,当可能是超过4GB的存储器事务时,端点可以是PCIe端点150_1至150_3。当不可能是超过4GB的存储器事务时,端点可以是传统端点160_1和160_2。PCIe端点150_1至150_3不可以生成任何输入/输出请求,但是传统端点160_1和160_2可以提供或生成输入/输出请求。此外,PCIe端点150_3可以与根联合体120传送TLP。此外,PCI/PCI-X可以通过PCIe桥170与根联合体120传送TLP。PCIe端点150_1和150_2或传统端点160_1和160_2可以与交换机140传送TLP。
PCIe端点150_1至150_3可以是具有类型00h配置空间报头的功能部。PCIe端点150_1至150_3作为完成者可以支持配置请求。可以操作PCIe兼容软件驱动器和应用程序,以使得在访问PCIe端点150_1至150_3时不使用任何锁定语义。作为存储器事务的请求者而进行操作的PCIe端点150_1至150_3可以生成大于4GB的地址。当被请求中断资源时,PCIe端点150_1至150_3可能需要支持消息信号中断(MSI)、MSI-X或它们两者。当MSI被实现时,PCIe端点150_1至150_3可以支持MSI功能结构的64位消息地址版本。由基础地址寄存器要求的最小存储器地址范围可以是128字节。PCIe端点150_1至150_3可以存在于在根联合体120开始的层级结构域之一中。
传统端点160_1和160_2可以是具有00h类型配置空间报头的功能部。传统端点160_1和160_2作为完成者可以支持配置请求。传统端点160_1和160_2作为完成者可以支持I/O请求。传统端点160_1和160_2可以接受针对一个或两个位置80h和84h的I/O请求,而不考虑对应端点的I/O解码配置。传统端点160_1和160_2可以生成I/O请求。传统端点160_1和160_2可以包括经扩展的配置空间能力。作为存储器事务的请求者而进行操作的传统端点160_1和160_2可能不会生成4GB或更多的地址。当被请求中断资源时,传统端点160_1和160_2必须支持MSI、MSI-X或它们两者。当MSI被实现时,传统端点160_1和160_2可以支持MSI功能结构的32位或64位消息地址版本。关于请求存储器资源的基础地址寄存器,传统端点160_1和160_2可以支持32位地址规范。传统端点160_1和160_2可以存在于在根联合体120发起的层级结构域之一中。
图2是图示了根据本公开的一个实施例的PCIe设备的图。
参考图2,PCIe设备可以包括PCIe接口,并且该PCIe设备为支持使用PCIe接口的发送/接收的电子设备。例如,第一PCIe设备200-1或第二PCIe设备200-2可以是在图1中示出的根联合体120、交换机140、PCIe端点150_1至150_3、传统端点160_1和160_2以及PCIe桥170中的一个。
而且,第一PCIe设备200-1或第二PCIe设备200-2可以通过使用第一PCIe接口210-1或第二PCIe接口210-2执行通信。具体地,第一PCIe设备200-1可以通过使用第一PCIe接口210-1而将要从第二PCIe设备200-2发送的数据转换成适于通信的协议。此外,第一PCIe设备200-1和第二PCIe设备200-2可以形成链路。第一PCIe设备200-1和第二PCIe设备200-2可以通过所形成的链路而彼此通信。例如,第一PCIe设备200-1或第二PCIe设备200-2可以通过链路发送/接收数据包。
图3是图示了根据本公开的一个实施例的PCIe接口的图。
参考图3,图示了第一PCIe接口210-1和第二PCIe接口210-2。可以以相同的结构形成第一PCIe接口210-1和第二PCIe接口210-2。因此,为了便于讨论,将主要描述第一PCIe接口210-1。
在第一PCIe接口210-1中包括的PCIe层可以包括三个分离的逻辑层。例如,第一PCIe接口210-1可以包括事务层211-1、数据链路层212-1和物理层213-1。类似地,第二PCIe接口210-2可以包括事务层211-2、数据链路层212-2和物理层213-2。层中的每一个可以包括两个部分。一个部分可以处理出站(或发送)信息,而另一部分可以处理入站(或接收)信息。另外,第一PCIe接口210-1可以使用数据包在其他PCIe接口之间传送信息。
PCIe接口的结构中的上部层可以是事务层。该事务层可以组装和分解事务层数据包(TLP)。另外,事务层可以实现拆分事务,即,可以实现如下事务:在组装目标系统响应所需的数据的同时,允许通过链路转送另一流量。在一个实施例中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务可以包括用于将数据转送到存储器映射的位置/从存储器映射的位置转送数据的一个或多个读取和写入请求。在一个实施例中,存储器空间事务可以使用两种不同的地址格式,例如,诸如32位地址的短地址格式或诸如64位地址的长地址格式。配置空间事务可以被用来访问PCIe设备的配置空间。到配置空间的事务可以包括读取和写入请求。可以定义消息空间事务(或消息)以支持PCIe设备之间的带内通信。
事务层可以存储链路配置信息等。而且,事务层可以生成TLP,或者将接收到的TLP转换为有效负载或状态信息。
PCIe接口的结构中的中间层可以是数据链路层,并且该数据链路层可以执行事务层和物理层之间的中间阶段的功能。数据链路层的一个主要功能可以是链路管理和数据完整性,该数据完整性包括错误检测和错误纠正。具体来说,数据链路层的发送侧可以接受在事务层中组装的TLP、提供数据保护编码或者计算TLP序列号。另外,数据链路层的发送侧可以将数据保护编码和TLP序列号发送到物理层,以使得通过链路发送数据保护编码和TLP序列号。数据链路层的接收侧可以校验从物理层接收到的TLP的数据完整性,并将TLP发送到事务层以执行附加的处理。
物理层可以包括用于接口操作的所有电路。所有电路可以包括驱动器、输入缓冲器、串并转换电路、并串转换电路、锁相环(PLL)和阻抗匹配电路。
而且,物理层可以包括逻辑子块和电气子块,它们将数据包物理地发送到外部PCIe设备。逻辑子块可以执行物理层的“数字”功能所需的作用。关于这一点,逻辑子块可以包括:发送部分,用于准备将由物理子块发送的发送信息;以及接收部分,用于在接收的信息被转送到数据链路层之前识别和准备接收的信息。物理层可以包括发送器和接收器。因为发送器被逻辑子块串行化,所以发送器可以接收被发送到外部设备的符号。此外,接收器可以接收来自外部设备的串行化符号,并将接收到的符号转换为位流。该位流可以被反串行化以被供应到逻辑子块。也就是说,物理层可以将从数据链路数据接收到的TLP转换为串行化格式,并将从外部设备接收到的数据包转换为反串行化格式。另外,物理层可以包括与接口初始化和维护相关联的逻辑功能。
尽管在图3中图示了第一PCIe接口210-1和第二PCIe接口210-2的结构,但是第一PCIe接口210-1和第二PCIe接口210-2的结构可以包括任意的形式,诸如快速路径互连结构、下一代高性能计算互连结构或其他层级结构。
图4是图示了根据本公开的一个实施例的发送器、接收器和通道的图。
参考图4,图示了第一发送器TX1、第二发送器TX2、第一接收器RX1和第二接收器RX2。通道可以包括路径,该路径包括差分驱动的信号对,例如被配置以用于发送的发送路径对和被配置以用于接收的接收路径对。PCIe设备可以包括用于向另一个PCIe设备发送数据的发送逻辑和用于从另一个PCIe设备接收数据的接收逻辑。例如,通道可以包括连接到第一发送器TX1的两个发送路径和连接到第一接收器RX1的两个接收路径。
发送路径可以意指用于发送数据的任意路径,诸如发送线、铜线、光学线、无线通信信道、红外通信链路或另一通信路径。此外,接收路径可以是与发送路径相同地实现、但被用于接收的路径。
两个PCIe设备、例如第一PCIe设备200-1和第二PCIe设备200-2之间的连接可以被指定为链路。该链路可以支持一条或多条通道。例如,该链路可以包括多条通道。
图5是图示了根据本公开的一个实施例的差分信号的图。
参考图5,图示了一个差分信号。PCIe设备可以以发送为目的而使用差分信号。而且,PCIe设备可以以接收为目的而使用差分信号。差分信号可以意指具有相同频率和相同振幅但是具有彼此相反的相位的信号对。例如,当第一信号处于第一信号从0切换到V+的上升沿处时,第二信号可能处于第二信号从0切换到V-的下降沿处。PCIe设备可以通过使用差分信号来运用信号完整性,例如,更令人满意的电气特性(诸如交叉耦合、电压过冲/欠冲和振铃)。PCIe设备可以更迅速地调整发送频率。另外,链路可以包括多条通道以调整带宽。例如,两个PCIe设备可以形成包括1条通道、2条通道、4条通道、8条通道、12条通道、32条通道、64条通道等的链路。
图6是图示了根据本公开的一个实施例的数据包的配置的图。
参考图6,数据包50的每个组件可以在PCIe接口的每层中被顺序地处理。具体地,数据包50可以按照在各层中进行处理的形式配置有不同的协议。例如,事务层数据包(TLP)可以在事务层211-1或211-2中被生成和处理。TLP可以包括报头字段、数据字段和端到端循环冗余校验(ECRC)字段。报头字段可以是包括TLP类型、关于是否要包括数据的信息、关于是否要包括循环冗余校验(CRC)的信息等的子段。此外,数据字段可以是包括要发送或接收的数据的字段,而ECRC字段可以是包括表示端点上的信息的ECRC值的字段。同时,数据字段和ECRC字段可以不被包括在TLP中。
此外,可以在数据链路层212-1或212-2中生成和处理数据链路层数据包(DLLP)。除了TLP之外,DLLP还可以包括序列号字段和链路循环冗余校验(LCRC)字段。序列号字段可以是包括关于TLP的序列号的信息的字段,并且LCRC字段可以是包括关于LCRC的信息的字段。
此外,可以在物理层213-1或213-2中生成和处理物理层数据包(PLP)。除了DLLP之外,PLP还可以包括成帧字段。该成帧字段可以是包括关于串行化格式的信息的字段。
图7是图示了根据本公开的一个实施例的数据流的图。
参考图7,图示了通过x8链路发送的数据流。该数据流可以包括SKIP有序集(SKPOS)的发送。
数据流可以从发送表示数据块的同步报头Sync Hdr H1H=10b开始。因此,TLP(STP)成帧令牌的开始可以作为表示通道0至通道3中的TLP流的开始的第零个符号而被发送。此外,TLP报头和TLP数据可以作为第一符号和第二符号被发送。链路循环冗余校验(LCRC)可以在TLP数据之后被发送,表示DLLP数据要在LCRC之后被发送的SDP报头可以作为第三符号而被发送。此外,还可以提供与DLLP数据相关的循环冗余校验(CRC)数据。
随后,表示通过链路没有发送任何数据的逻辑空闲令牌(IDL)可以被发送。此外,可以发送EDS令牌以表示数据被改变为通道上的SKP OS数据。例如,可以发送另一个同步数据,该同步数据被编码为“01b”,其表示随后的块将是SKP OS数据块。
SKP OS可以包括表示链路的通道中的每一条(例如,第0至第7通道)的奇偶校验状态的校验位。SKP OS还可以包括被定义为由接收器识别的布局。例如,在PCIe中的128b/130b编码的情况下,SKP OS可以包括16个基本符号。四个SKP符号群组可以通过端口进行添加或去除,并且SKP OS可以包括8个符号、12个符号、16个符号、20个符号、24个符号等等。此外,如图7中所示,可以提供SKP_END符号以表示SKP OS在通道上的结束位置和通过通道发送的下一个块同步报头的位置。
图8是图示了根据本公开的一个实施例的端口的图。
参考图8,图示了下行端口215-1和上行端口215-2,它们分别被包括在第一PCIe设备200-1和第二PCIe设备200-2中。
在一个实施例中,第一PCIe设备200-1可以是第二PCIe设备200-2的层的上部层,并且向上部层的数据移动和发送可以被指定为上行。相反地,向下部层的数据移动和发送可以被指定为下行。例如,参考图1,交换机140可以支持上行和下行的路由。具体地,上行可以是将数据包或消息从PCIe端点(例如150_1)上行路由到朝向根联合体120的层,并且下行可以是将数据包或消息从根联合体120下行路由到朝向PCIe端点的层(例如150_2)。
在一个实施例中,包括下行端口215-1的第一PCIe设备200-1可以被指定为“上行组件”。上行组件可以表示在图1中示出的根联合体120或交换机140。此外,包括上行端口215-2的第二PCIe设备200-2可以被指定为“下行组件”。下行组件可以表示在图1中示出的交换机140、PCIe端点150_1至150_3、传统端点160_1和160_2以及PCIe桥170中的一个。
下行端口215-1和上行端口215-2中的每一个可以包括发送器Tx、接收器Rx和锁相环(PLL)电路。PLL电路可以通过使用从时钟信号生成器CLK GEN提供的时钟信号来生成要被供应到发送器Tx或接收器Rx的时钟信号。PLL电路可以通过倍增从时钟信号生成器CLKGEN接收到的信号来生成具有被改变的频率的时钟信号。例如,PLL电路可以将具有100MHz频率的参考时钟信号倍增为具有2.5GHz频率的时钟信号。发送器Tx可以通过使用PLL电路的输出信号而将并行数据信号转换为串行数据信号,并将串行数据信号发送到外部设备(例如外部PCIe设备)。接收器Rx可以接收从外部设备发送的串行数据信号,并通过使用PLL电路的输出信号生成用于恢复接收到的串行数据信号的时钟信号和用于将被恢复的串行数据信号转换为并行数据信号的时钟信号。时钟信号生成器CLK GEN可以生成被用于PCIe接口的操作的参考时钟信号。PCIe接口的操作可以是与外部PCIe设备的通信。
图9是图示了根据本公开的一个实施例的PCIe设备的链路状态的图。
参考图9,PCIe设备的链路状态包括检测状态、轮询状态、配置状态、热复位状态、禁用状态、L0状态、L0s状态、L1状态、L2状态等。更具体地,图9图示了链路训练和状况状态机(LTSSM)的操作配置。
检测状态是上电或复位之后的初始化状态,并且链路的状态从以下状态进入到检测状态。例如,检测状态可以是链路的状态从配置状态、热复位状态、禁用状态、L2状态、环回状态和恢复状态进入到检测状态的状态。检测状态可以将所有逻辑、所有端口和所有寄存器复位,并且是检测连接到PCIe接口的链路的阶段。也就是说,检测状态可以是对物理连接的通道进行搜索的阶段。
轮询状态可以意指用于在检测到的通道之中区分通过其可以进行数据通信的通道的状态。轮询状态可以是同步在PCIe接口两端处的时钟、校验通道的极性是D+还是D-以及校验通道可以使用的数据发送速度的阶段。也就是说,轮询状态可以是用于校验极性反转的状态。此外,处于轮询状态的链路可以进入到检测状态或配置状态。
配置状态可以是用于校验通道的连接状态的状态。具体地,配置状态可以是用于定义可以进行数据通信的通道宽度的状态。另外,配置状态可以是用于校验通道反转的状态。配置状态可以是链路的状态从轮询状态进入到配置状态的状态。替代地,链路的状态可以进入到L0状态,然后在通道减少和通道宽度上升时进入到配置状态。
恢复状态可以是被用于重新配置链路带宽的状态。恢复状态可以改变已设置链路的链路带宽,并将位锁定、符号锁定和通道与通道之间的去偏移(lane-to-lane de-skew)复位。当在L0状态下发生错误时,链路的状态可以进入到恢复状态。随后,当错误在恢复状态期间被恢复之后,链路的状态可以从恢复状态改变为L0状态。根据本公开的一个实施例,可以在恢复状态下执行链路的均衡操作。
L0状态可以是能够通过链路来发送和接收数据和数据包的正常操作状态。具体地,L0状态可以是物理总线接口的操作状态,通过该接口可以发送和接收数据和控制数据包。L0状态可以是完全激活的状态。
L0s状态可以是使物理总线接口能够迅速地进入到保电状态并使得物理总线接口能够不经过任何恢复状态便恢复的状态。L0s状态可以是省电状态。L0s状态可以是接口中的某些功能的空闲或待机状态。
L1状态可以是省电状态。L1状态可以是与L0s状态相比省电量增加的状态。L1状态可以是低功率待机状态。
L2状态可以是主动省电状态。大多数发送器和接收器可以被关闭。主电源和时钟不被保证,但是可以供应辅助电源。L2状态可以是不向大多数功能供电的较低功率睡眠状态。环回状态可以是用于测试和故障分离的状态。环回状态仅以通道为单位进行操作,并且要选择和配置环回接收通道。
禁用状态可以是在进一步通知之前禁用已设置链路的状态。热复位状态可以仅由下行端口触发。下行端口可以使用训练序列(例如,TS1或TS2)来传播热复位。训练序列(TS)可以是用于初始化位对准、符号对准和物理层参数交换的对准集。在本说明书中,“训练序列”可以被指定为“训练序列有序集”。
图10是图示了根据本公开的一个实施例的图9中所示的恢复状态的详细子状态的图。具体地,图10图示了恢复状态中的子状态机的操作。
(1)恢复.恢复锁定(Recovery.RcvrLock)
当链路以8.0GT/s或更高的数据速度进行操作时,接收器要考虑只有在对应的通道中获取块对准之后才会接收TS1或TS2命令集。当Recovery.RcvrLock子状态的项目在Recovery.Speed或L0s开始时,块对准将在电气空闲条件结束之后被获取。当这个子状态的项目在L0中开始时,块对准将在最后一个数据流结束之后被获取。
(2)恢复.均衡化(Recovery.Equalization)
发送器脱离配置状态,然后在使用链路和通道编号配置的所有通道中发送TS1有序集。
(3)恢复.速度(Recovery.Speed)
发送器进入到电气空闲状态,并维持该状态,直到接收器通道成为电气空闲状态。随后,发送器另外在下一次成功的速度协商(例如,success_speed_negotiation=1b)中将该状态维持至少800ns,或者在下一次失败的速度协商(例如,success_speed_negotiation=0b)中将该状态维持至少6μs,但是不停留1ms或更长时间。只有在接收器通道进入到电气空闲状态之后,操作频率才可能被改变为新的数据速度。
(4)恢复.恢复配置(Recovery.RcvrCfg)
发送器从配置状态中退出,然后将TS2命令集发送到使用相同设置线和相同设置通道编号配置的所有通道。当directed_speed_change变量已经被设置为1b时,speed_change位(TS2有序集中的数据速度标识符的位7)将被设置为1b。所发送的TS2命令集的N_FTS值要反映当前数据速度下的数字。
(5)恢复.空闲(Recovery.Idle)
在Recovery.Idle子状态中,链路的状态根据指示进行到Recovery.RcvrLock子状态、LTSSM的检测状态、LTSSM的热复位状态、LTSSM的L0、LTSSM的环回状态和LTSSM的配置状态中的任何一个状态。
根据本公开,Recovery.RcvrLock子状态和Recovery.RcvrCfg子状态是属于第一组Group1的子状态。
图11是图示了根据本公开的一个实施例的PCIe设备的图。
参考图11,PCIe设备700可以包括多个端口P0至Pn和链路控制器710。
多个端口P0至Pn可以形成多条通道。例如,如图4中所示,一个端口与另一个PCIe设备中包括的一个端口可以形成一条通道。在一个实施例中,多个端口P0至Pn中的每一个可以是下行端口或上行端口。例如,当多个端口P0至Pn是下行端口时,PCIe设备700可以是上行组件。另外,当多个端口P0至Pn是上行端口时,PCIe设备700可以是下行组件。多个端口P0至Pn中的每一个可以包括接收器和发送器。
链路控制器710可以设置链路。链路可以包括多个端口P0至Pn。也就是说,链路可以由多个端口P0至Pn形成。例如,链路控制器710可以执行设置链路的链路设置操作。链路设置操作可以表示对链路进行初始化和配置以使链路正常操作的过程。链路设置操作构成根据PCIe规范的链路初始化和训练操作。
在一个实施例中,链路控制器710可以包括链路训练和状况状态机(LTSSM)。LTSSM可以是用于执行链路设置操作的组件。
链路控制器710可以执行链路宽度和通道编号协商操作。链路宽度可以表示形成链路的通道数量。例如,链路控制器710可以在设置链路的过程中确定链路宽度。通道编号可以表示分配给链路中包括的每条通道的编号。例如,链路控制器710可以在设置链路的过程中协商分配给每条通道的编号,并根据协商确定每条通道的线路编号。所确定的通道编号可以被发送到另一个PCIe设备,并且该另一个PCIe设备可以接受对应的通道编号。
链路控制器710可以在设置链路的过程中检测多条通道之中的故障通道。故障通道可以是具有如下状态的通道:故障通道与其他通道不能形成链路。其他通道为不是故障通道的通道,并且可以包括多条通道之中除故障通道之外的所有通道。例如,当通道中包括的发送路径或接收路径中发生问题时,对应通道可能是故障通道。当数据被发送时,故障通道可能无法正常操作。例如,当链路的状态是检测状态时,链路控制器710可以通过与检测状态相对应的线路设置操作来检测故障通道。与检测状态相对应的链路设置操作是为了在检测状态中设置线路而执行的操作,并且可以包括用于在两端处寻找链路的操作。例如,两端可以是在通过链路彼此连接的不同PCIe设备中包括的端口。随后,链路控制器710可以对多条通道之中除故障通道之外的其他通道执行与检测状态相对应的链路设置操作。另外,当链路的状态是轮询状态时,链路控制器710可以通过与该轮询状态相对应的链路设置操作来检测故障通道。与轮询状态相对应的链路设置操作是为了在轮询状态中设置链路而执行的操作,并且可以包括发送/接收训练序列有序集的操作。例如,与轮询状态相对应的链路设置操作可以包括在通过链路连接的端口之间发送/接收训练序列有序集的操作。随后,链路控制器710可以在其他通道上执行与轮询状态相对应的链路设置操作。
在一个实施例中,链路控制器710可以将链路设置为具有包括除故障通道之外的其他通道之中的至少一条通道的链路宽度。例如,当链路的状态是配置状态时,链路控制器710可以对其他通道执行与配置状态相对应的链路设置操作。与配置状态相对应的链路设置操作可以是为了在配置状态中设置链路而执行的操作。例如,与配置状态相对应的链路设置操作可以包括设置链路宽度的操作、确定通道编号的操作、通道与通道之间的去偏移操作等等。
例如,链路控制器710可以确定处于配置状态的链路的链路编号,并且确定其他通道中的每一条的通道编号。链路控制器710可以通过通道编号协商操作来确定其他通道中的每一条的通道编号。在一个实施例中,链路控制器710可以确定其他通道中的每一条的通道编号以使其他通道的通道编号顺序地增加或减少。
在一个实施例中,链路控制器710可以将通过多个端口P0至Pn确定的链路编号和其他通道中的每一条的确定的通道编号提供给与多个端口P0至Pn一起形成多条通道的其他端口。其他端口可以是在不同于PCIe设备700的另一个PCIe设备中包括的端口。例如,链路控制器710可以向其他端口提供通过使用训练序列有序集而确定的链路编号和其他通道中的每一条的确定的通道编号。另一个PCIe设备可以接受该链路编号和其他通道中的每一条的通道编号。
图12A和图12B是图示了根据本公开的一个实施例的设置链路的操作的图。
参考图12A,第一PCIe设备700-1和第二PCIe设备700-2中的每一个可以表示PCIe设备700。例如,第一PCIe设备700-1可以是包括多个下行端口P0至P7的PCIe设备。而且,第二PCIe设备700-2可以是包括多个上行端口P0'至P7'的PCIe设备。然而,这仅仅是一个示例。在一些实施例中,在第一PCIe设备700-1中包括的端口可以是上行端口,而在第二PCIe设备700-2中包括的端口可以是下行端口。在一些实施例中,第一PCIe设备700-1可以包括下行端口,而第二PCIe设备700-2可以包括上行端口。此外,尽管图示了第一PCIe设备700-1和第二PCIe设备700-2中的每一个包括8个端口,在一些实施例中,端口的数量可以变化。
多个下行端口P0至P7与多个上行端口P0'至P7'可以一起形成多条通道。例如,第零下行端口P0和第零上行端口P0'可以形成第零通道Lane 0,第一下行端口P1和第一上行端口P1'可以形成第一通道Lane 1,第二下行端口P2和第二上行端口P2'可以形成第二通道Lane 2,第三下行端口P3和第三上行端口P3'可以形成第三通道Lane 3,第四下行端口P4和第四上行端口P4'可以形成第四通道Lane 4,第五下行端口P5和第五上行端口P5'可以形成第五通道Lane 5,第六下行端口P6和第六上行端口P6'可以形成第六通道Lane 6,并且第七下行端口P7和第七上行端口P7'可以形成第七通道Lane 7。形成这些通道的操作可以通过链路宽度和通道编号协商操作来执行。
图12B图示了在第一PCIe设备700-1和第二PCIe设备700-2设置链路时,第五下行端口P5和第五上行端口P5'之间的通道是故障通道的情况。
第一PCIe设备700-1可以按照多个端口P0至P7的端口编号增加的顺序对多个端口P0至P7执行通道编号协商操作。因此,根据PCIe规范,由于第五下行端口P5和第五上行端口P5'之间的通道是故障通道,可能无法对第六下行端口P6和第七下行端口P7执行通道编号协商操作。第六下行端口P6和第六上行端口P6'之间的通道以及第七下行端口P7和第七上行端口P7'之间的通道可以处于电气空闲状态。
此外,根据PCIe规范,链路宽度通常可以被确定为1条通道、2条通道、4条通道、8条通道、12条通道、16条通道和32条通道之一。因此,第一PCIe设备700-1可以将链路设置为具有包括4条通道Lane 0至Lane 3的链路宽度。该链路可以仅用4条通道Lane 0至Lane 3形成。尽管第四下行端口P4和第四上行端口P4'之间的通道不是故障通道,但是第四下行端口P4和第四上行端口P4'之间的通道可能处于电气空闲状态。
当在PCIe链路正在被操作的状态下发生链路错误时,对链路错误的措施被配置为调整操作速度或改变链路的配置(链路宽度和通道编号)。可以同时执行这两种操作。此外,在PCIe协议方面,不存在任何能够确定和详细分类链路错误的直接原因的方法。因此,当发生链路错误时,首先向下调整链路速度,并且其次改变链路配置。
根据上述过程,必须首先降低链路速度以改变链路配置。因此,当链路错误是由链路配置引起,而不是由链路速度引起时,由于不必要的下调链路速度而随之发生性能劣化。
参考图9和图10,存在以下四种链路的状态进入到配置状态的情况。
(1)轮询→配置
这是在识别主要活动通道的列表(在图9中由a指示)之后链路的状态进入到配置状态以执行特定通道配置(链路宽度识别和通道编号指定)的情况。该情况是在链路的初始化过程中必须执行的过程,并且不对应于本公开中成问题的情况。
(2)恢复→配置
该情况是链路的状态从恢复状态进入到配置状态的情况(在图9中用b指示)。同时,将详细研究链路的状态进入到恢复状态中包括的特定子状态之中的配置状态的情况。
(2-1)Recovery.RcvrLock→配置
在应用特定数据速率的情形中,当不可能发送/接收正常数据包时,会发生24ms的超时。随后,数据速率被调整为2.5GT/s。这是与PCIe链路可以被操作的最低性能相对应的数值。链路速度被降低到最低的数值是如下情形的结果:导致当前链路错误的原因起因于“高性能”,并且因此首先试图降低性能。即便当性能被向下调整,链路错误仍在继续时,最终确定链路本身的配置成问题,从而最终进入到配置状态(在图10中由b1指示)。
不可能发送/接收正常数据包的情况可能意指发送到每条通道的数据包上的通道编号或链路编号的值没有被正常匹配的情况。
(2-2)Recovery.RcvrCfg→配置
与前面的(2-1)情况b1相似,这是在不可能发送/接收正常数据包时发生的情况(在图10中由b2指示)。在Recovery.RcvrCfg子状态中,只有当链路和通道编号正常匹配的数据包TS2被发送/接收时才可能完成。否则,只有当数据速率为2.5GT/s时,Recovery.RcvrCfg子状态才最终进入到配置状态。
(2-3)Recovery.Idle→配置
这是当主机要任意地改变对应链路的配置时,链路的状态根据主机的请求进入到配置状态,从而改变链路配置的情况(在图10中由b3指示)。这是与链路错误的发生无关的过程,并且即使在正常操作被维持的时间段内,可以在需要改变链路宽度等时被执行。
因此,在上述四种情况之中,校验到成问题的“由于调整不必要的最低数据速率而发生性能劣化”的情况与b1和b2指示的情况相对应。当链路速度是导致链路错误的原因时,在向下调整链路速度之后,问题不再被校验到。所以,该情况不进入到配置状态。因此,链路的状态最终进入到配置状态的情况意指与链路速度无关的链路错误。因此,在通过改变链路配置解决链路错误之后,可以优选地将链路速度恢复到最高数值。
主机具有相对于PCIe基本规范而改变链路速度的权限,并且通过速度改变变量来控制链路速度。该速度改变变量可以是directed_speed_change(定向速度改变)变量。directed_speed_change变量在复位时具有为0b的值。在现有的LTSSM规定中,关于所有上述四种情况,应该被复位为“directed_speed_change=0b”。因此,即使在b1和b2指示的情况下,在配置状态结束之后,最终速度仍然维持最低数值(2.5GT/s)。
根据本公开的一个实施例,通过关于由b1和b2指示的上述情况而设置“direct_speed_change=1b”,当链路的状态在执行配置状态之后再次进入到恢复状态时,可以从一开始就应用最大链路速度。因此,当发生链路错误的原因不是链路速度时,可以将链路速度恢复到最高数值。如图10中所示,Recovery.RcvrLock子状态和Recovery.RcvrCfg子状态是属于第一组Group1的子状态。也就是说,根据本公开的一个实施例,在从恢复状态中的子状态之中属于第一组Group1的子状态进入到配置状态时,速度改变变量的任何值都不被复位。因此,在由b1和b2指示的情况下,可以将链路速度恢复到最高数值。
图13是图示了根据本公开的一个实施例的配置状态的操作方法的流程图。
参考图13,图示了图9中所示的LTSSM中包括的状态之中的配置状态的一个实施例。具体地,在链路的状态进入到配置状态(S110)之后,确定链路的状态进入到对应的配置状态是否为链路的状态从恢复状态的子状态之中的第一组的子状态进入到配置状态(S120)。如上所述,第一组的子状态包括Recovery.RcvrLock子状态和Recovery.RcvrCfg子状态中的至少一个。当链路的状态从第一组的子状态进入到配置状态时(S120:是),这对应于由b1指示的上述情况,并且因此,速度改变变量被设置为第二值(S150)。在操作S150中,速度改变变量可以是directed_speed_change变量,并且第二值可以是“1b”。
当链路的状态不是从第一组的子状态进入到配置状态时(S120:否),这意味着进入到对应的配置状态不属于由b1和b2指示的上述情况中的任一个。也就是说,所述进入到对应的配置状态将对应于由a或b3指示的情况。因此,速度改变变量被设置为第一值(S140)。在操作S140中,速度改变变量可以是directed_speed_change变量,并且第一值可以是“0b”。
由于directed_speed_change变量被完全设置,随后执行配置状态的详细操作(S160)。尽管在图13中没有详细示出,但是当操作S160被完全执行时,链路的状态可以脱离配置状态,然后如图9中所示地进入到L0状态。
图14是图示了根据本公开的一个实施例的L0状态的操作方法的流程图。
参考图14,图示了图9中所示的在LTSSM中包括的状态之中的L0状态的一个实施例。具体地,在图14中图示了当链路的状态从配置状态进入到L0状态时的操作。
在链路的状态进入到L0状态之后(S210),确定速度改变变量的值是否为第二值(S220)。在操作S210中,确定directed_speed_change变量的值是否为1b。当速度改变变量的值为第二值时,即,当速度改变变量的值为1b时(S220:是),链路的状态进入到恢复状态,并且链路速度被改变(S230)。由于directed_speed_change变量的值为1b,链路速度可以被改变为现有的最大速度。随后,执行L0状态的操作(S240)。
当速度改变变量的值是第一值而不是第二值时,即,当速度改变变量的值是0b时(S220:否),执行L0状态的操作(S240)。由于directed_speed_change变量的值为0b,链路速度可以被维持为最低数值(2.5GT/s)。
如上所述,根据本公开的实施例,根据在LTSSM中进入到配置状态的原因而适应性地设置速度改变变量的值。因此,可以防止链路速度被不必要地向下调整到最低值的情况。因此,可以整体地改善PCIe设备的操作速度。
图15是图示了根据本公开的另一个实施例的恢复状态的操作方法的流程图。在图15中,图示了在恢复状态中包括的子状态之中的第一组中包括的子状态的一个实施例。在图13中所示的实施例中,从配置状态的角度设置了速度改变变量,即directed_speed_change变量的值。然而,在图15中所示的实施例中,在进入到配置状态之前,从恢复状态的角度设置了速度改变变量,即directed_speed_change变量的值。
参考图15,首先,链路的状态进入到恢复状态中的第一组的子状态(S310)。恢复状态中的第一组的子状态可以是Recovery.RcvrLock子状态或Recovery.RcvrCfg子状态。在链路的状态进入到第一组的子状态之后,判断是否已经确定链路的状态要进入到配置状态(S320)。当确定链路的状态要进入到配置状态时(S320:是),这对应于由b1或b2指示的情况,并且因此,速度改变变量被设置为第二值(S330)。例如,在操作S330中,directed_speed_change被设置为1b。
当未确定链路的状态要进入到配置状态时(S320:否),链路的状态进入到恢复状态中的另一个子状态或检测状态(S340)。如图10中所示,当在操作S310中链路的状态进入到的第一组的子状态是Recovery.RcvrLock子状态时,链路的状态从Recovery.RcvrLock子状态进入到Recovery.RcvrCfg子状态、从Recovery.RcvrLock子状态进入到Recovery.Equalization子状态、从Recovery.RcvrLock子状态进入到Recovery.Speed子状态或者当链路的状态没有进入到配置状态时,从Recovery.RcvrLock子状态进入到检测状态。也就是说,当未确定链路的状态进入到配置状态(S320:否)时,链路的状态进入到恢复状态中的另一个子状态(例如,Recovery.RcvrCfg子状态、Recovery.Equalization子状态或Recovery.Speed子状态)或检测状态(S340)。directed_speed_change变量不被设置为1b。
在另一个示例中,如图10中所示,当在操作S310中链路的状态进入到的第一组的子状态是Recovery.RcvrCfg子状态时,链路的状态从Recovery.RcvrCfg子状态进入到Recovery.Idle子状态、从Recovery.RcvrCfg子状态进入到Recovery.Speed子状态或者从Recovery.RcvrCfg子状态进入到检测状态。当未确定链路的状态进入到配置状态(S320:否)时,链路的状态进入到在恢复状态中的另一个子状态(例如,Recovery.Idle子状态或Recovery.Speed子状态)或检测状态(S340)。directed_speed_change变量不被设置为1b。
根据本公开,可以提供一种接口设备和包括该接口设备的计算系统,该接口设备和计算系统可以在链路设置操作期间根据配置操作的进入因素而适应性地控制链路速度。
虽然本公开已经参考其特定实施例进行了示出和描述,但是本领域的技术人员将理解,在不脱离由所附权利要求及其等同物所定义的本公开的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。因此,本公开的范围不应限于上述实施例,而应当不仅由所附权利要求书确定,还应当由其等同物来确定。
在上述实施例中,可以选择性地执行所有操作,或者可以省略部分操作。在每个实施例中,操作不一定按照所描述的顺序来执行,并且可以重新整理。本说明书和附图中公开的实施例仅是用于促进本公开的理解的示例,而本公开并不限于此。也就是说,对于本领域的技术人员来说显而易见的是,可以在本公开的技术范围的基础上进行各种修改。
此外,本公开的实施例已经在附图和说明书中进行了描述。尽管在这里使用了特定的术语,但是这些术语只是为了描述本公开的实施例。因此,本公开并不局限于上述实施例,在本公开的精神和范围内可以进行许多变化。对于本领域的技术人员来说显而易见的是,除了本文所公开的实施例和所附权利要求书之外,还可以在本公开的技术范围的基础上进行各种修改。此外,可以对实施例进行组合以形成附加的实施例。
Claims (16)
1.一种接口设备,包括:
多个端口,被配置为形成多条通道;以及
链路控制器,被配置为通过基于进入到包括所述多条通道的链路的配置状态的原因确定所述链路的速度的方式设置所述链路的速度。
2.根据权利要求1所述的接口设备,其中所述链路控制器包括设置所述链路的链路训练和状况状态机LTSSM。
3.根据权利要求2所述的接口设备,其中所述链路控制器通过如下方式来设置所述速度:当所述链路的状态从轮询状态进入到所述配置状态时,通过将速度改变变量设置为第一值的方式初始化所述链路的速度。
4.根据权利要求2所述的接口设备,其中所述链路控制器通过如下方式来设置所述速度:当所述链路的状态从恢复状态中的第一组内的子状态进入到所述配置状态时,通过将速度改变变量设置为第二值的方式维持所述链路的速度。
5.根据权利要求4所述的接口设备,其中所述链路控制器通过如下方式来设置所述速度:当所述链路的状态从所述恢复状态中的第一组以外的子状态进入到所述配置状态时,通过将速度改变变量设置为第一值的方式初始化所述链路的速度。
6.根据权利要求3所述的接口设备,其中所述链路控制器还被配置为:当所述链路的状态从所述配置状态进入到L0状态时,响应于所述速度改变变量具有所述第一值,将所述链路的速度设置为第一速度和第二速度中的第一速度,所述第二速度高于所述第一速度。
7.根据权利要求4所述的接口设备,其中所述链路控制器还被配置为:当所述链路的状态从所述配置状态进入到L0状态时,响应于所述速度改变变量具有所述第二值,将所述链路的速度设置为第一速度和第二速度中的第一速度,所述第二速度高于所述第一速度。
8.根据权利要求2所述的接口设备,其中所述链路控制器还被配置为:当所述状态是恢复状态中的第一组内的子状态、所述链路的状态被确定为进入到所述配置状态时,将速度改变变量设置为第二值。
9.一种操作接口设备的方法,所述方法包括:
允许被连接到外部设备的链路的状态进入到配置状态;以及
通过基于紧接在所述配置状态之前的所述链路的状态确定所述链路的速度的方式设置所述链路的速度。
10.根据权利要求9所述的方法,其中所述设置包括:当紧接在所述配置状态之前的所述链路的状态是轮询状态时,通过将速度改变变量设置为第一值的方式初始化所述链路的速度。
11.根据权利要求9所述的方法,其中所述设置包括:当紧接在所述配置状态之前的所述链路的状态是恢复状态中的第一组内的子状态时,通过将速度改变变量设置为第二值的方式维持所述链路的速度。
12.根据权利要求9所述的方法,其中所述设置包括:当紧接在所述配置状态之前的所述链路的状态是所述恢复状态中的第一组以外的子状态时,通过将速度改变变量设置为第一值的方式初始化所述链路的速度。
13.一种操作接口设备的方法,所述方法包括:
允许被连接到外部设备的链路的状态进入到配置状态;
在所述链路的状态是恢复状态的子状态之中的一个子状态时,首先确定所述链路的状态是否要进入到配置状态;以及
响应于所述首先确定,其次确定所述链路的速度。
14.根据权利要求13所述的方法,
其中所述首先确定包括:当所述链路的状态是所述恢复状态中的第一组内的子状态时,确定所述链路的状态是否要进入到所述配置状态,以及
其中所述其次确定包括:当所述链路的状态是所述第一组内的所述子状态、所述链路的状态被确定为要进入到所述配置状态时,将所述链路的速度设置为所述恢复状态之前的速度。
15.根据权利要求13所述的方法,
其中所述首先确定包括:当所述链路的状态是所述恢复状态中的第一组以外的子状态时,确定所述链路的状态是否要进入到所述配置状态,以及
其中所述其次确定包括:当所述链路的状态是所述第一组以外的所述子状态、所述链路的状态被确定为要进入到所述配置状态时,初始化所述链路的速度。
16.一种设备的操作方法,所述操作方法包括:
在配置包括多条通道的链路时,根据紧接在所述配置之前的所述链路的第一状态,将所述链路的速度设置为第一值;以及
在配置所述链路时,根据紧接在所述配置之前的所述链路的第二状态,将所述速度设置为第二值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0040881 | 2022-04-01 | ||
KR1020220040881A KR20230142103A (ko) | 2022-04-01 | 2022-04-01 | 인터페이스 장치 및 이를 포함하는 컴퓨팅 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893997A true CN116893997A (zh) | 2023-10-17 |
Family
ID=88194468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211543294.3A Pending CN116893997A (zh) | 2022-04-01 | 2022-12-02 | 接口设备和包括该接口设备的计算系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230315672A1 (zh) |
KR (1) | KR20230142103A (zh) |
CN (1) | CN116893997A (zh) |
-
2022
- 2022-04-01 KR KR1020220040881A patent/KR20230142103A/ko unknown
- 2022-09-30 US US17/957,025 patent/US20230315672A1/en active Pending
- 2022-12-02 CN CN202211543294.3A patent/CN116893997A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230315672A1 (en) | 2023-10-05 |
KR20230142103A (ko) | 2023-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102559387B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
US20220311590A1 (en) | Device and computing system including the device | |
US11960424B2 (en) | Peripheral component interconnect express (PCIe) interface device and method of operating the same | |
TW202241110A (zh) | PCIe介面和介面系統 | |
US11797468B2 (en) | Peripheral component interconnect express device and computing system including the same | |
US11815941B2 (en) | Peripheral component interconnect express device and operating method thereof | |
US11599495B2 (en) | Device for performing communication and computing system including the same | |
CN116893997A (zh) | 接口设备和包括该接口设备的计算系统 | |
US20230315591A1 (en) | PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME | |
CN114968860B (zh) | 高速外围组件互连接口装置以及包括该接口装置的系统 | |
US11960367B2 (en) | Peripheral component interconnect express device and operating method thereof | |
US20240012770A1 (en) | Interface device having plurality of ports and method of operating the same |
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 |