CN115203109A - PCIe接口和接口系统 - Google Patents

PCIe接口和接口系统 Download PDF

Info

Publication number
CN115203109A
CN115203109A CN202111220170.7A CN202111220170A CN115203109A CN 115203109 A CN115203109 A CN 115203109A CN 202111220170 A CN202111220170 A CN 202111220170A CN 115203109 A CN115203109 A CN 115203109A
Authority
CN
China
Prior art keywords
skp
transmission interval
state
pcie
link
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
Application number
CN202111220170.7A
Other languages
English (en)
Inventor
全勇泰
朴大植
张宰瑛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN115203109A publication Critical patent/CN115203109A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4295Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0264Arrangements for coupling to transmission lines
    • H04L25/0272Arrangements for coupling to multiple lines, e.g. for differential transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/05Electric or magnetic storage of signals before transmitting or retransmitting for changing the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/38Synchronous or start-stop systems, e.g. for Baudot code
    • H04L25/40Transmitting circuits; Receiving circuits
    • H04L25/49Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems
    • H04L25/4906Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes
    • H04L25/4908Transmitting circuits; Receiving circuits using code conversion at the transmitter; using predistortion; using insertion of idle bits for obtaining a desired frequency spectrum; using three or more amplitude levels ; Baseband coding techniques specific to data transmission systems using binary codes using mBnB codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种装置,包括收发器,被配置为传输和接收数据;以及跳过有序集(SKP OS)控制逻辑,与收发器通信并且被配置为生成SKP OS并且控制收发器将SKP OS和数据块传输到与外部装置连接并且包括多个通道的链路。SKP OS控制逻辑被配置为响应于链路进入恢复状态,基于SKP OS的传输历史来增大或减小SKP OS的传输间隔,该恢复状态用于从错误中恢复链路。

Description

PCIe接口和接口系统
相关申请的交叉引用
本专利文件要求于2021年4月5日提交的申请号为10-2021-0044151的韩国专利申请的优先权和权益,其通过引用整体并入本文。
技术领域
本专利文件中公开的技术和实施方案涉及一种电子装置,并且更特别地,涉及一种高速外围组件互连(PCIe)接口和接口系统。
背景技术
半导体处理和逻辑设计的进步允许可存在于集成电路装置上的逻辑的数量的增加。因此,计算机系统配置已经从一个系统中的单个集成电路或多个集成电路发展到不仅在单个集成电路上的多核、多硬件线程和多逻辑处理器,而且还发展到集成在这样的处理器中的其它接口。处理器或集成电路通常包括单个物理处理器管芯。处理器管芯可以包括任意数量的内核、硬件线程、逻辑处理器、接口、存储器控制器集线器等。
由于在较小封装中形成更多处理能力的技术能力得到了集中,因此紧凑型计算装置的普及性已经增加。然而,由紧凑型装置执行的数据存储和超过形状因子的复杂处理都依赖于外部装置。因此,互连架构与其它装置通信的能力变得更加重要。
发明内容
实施例提供了一种改进的高速外围组件互连(PCIe)接口和包括该PCIe接口的接口系统。
根据所公开技术的一个方面,提供了一种装置,包括:收发器,被配置为传输和接收数据;以及跳过有序集(SKP OS)控制逻辑,与所述收发器通信并且被配置为生成SKP OS以及控制所述收发器将SKP OS和数据块传输到与外部装置连接并且包括多个通道(lane)的链路,其中SKP OS控制逻辑被配置为响应于链路进入用于从错误中恢复链路的恢复状态,基于SKP OS的传输历史,来增大或减小SKP OS的传输间隔。
根据所公开技术的另一方面,提供了一种接口系统,包括:第一高速外围组件互连(PCIe)装置以及第二PCIe装置,第二PCIe装置通过包括多个通道的链路与第一PCIe装置联结并且与之通信,其中第一PCIe装置被配置为生成跳过有序集(SKP OS),并且响应于链路进入恢复状态,基于第二PCIe装置的弹性缓冲器的状态来增大或减小SKP OS的传输间隔。
附图说明
现在将在下文中参照附图更全面地描述示例性实施例。
在附图中,为了清楚地说明,尺寸可能被夸大。将理解的是,当元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。相同的附图标记始终表示相同的元件。
图1是示出根据所公开技术的实施例的高速外围组件互连(PCIe)系统的示图。
图2是示出根据所公开技术的实施例的通道的示图。
图3是示出根据所公开技术的实施例的差分信号的示图。
图4是示出根据所公开技术的实施例的PCIe接口的示图。
图5是示出根据所公开技术的实施例的数据包的配置的示图。
图6是示出根据所公开技术的实施例的数据流的示图。
图7是示出根据所公开技术的实施例的PCIe系统的链路状态的示图。
图8是示出根据所公开技术的实施例的弹性缓冲器的状态的示图。
图9是示出根据所公开技术的实施例的弹性缓冲器的状态的示图。
图10是示出根据所公开技术的实施例的物理层的配置的示图。
图11是示出根据所公开技术的实施例的跳过有序集(SKP OS)控制逻辑的示图。
图12是示出根据所公开技术的实施例的PCIe系统的操作方法的示图。
图13是示出根据所公开技术的实施例的PCIe系统的操作方法的示图。
具体实施方式
基于所公开技术的装置和系统可以被实现为基于高速外围组件互连(PCIe)接口的高速计算机总线标准来接收和传输数据。图1是示出根据所公开技术的实施例的高速外围组件互连(PCIe)系统的示图。
参照图1,PCIe系统可以包括PCIe主机和PCIe接口。具体地,第一PCIe系统1000可以包括第一PCIe接口100和第一PCIe主机300,并且第二PCIe系统2000可以包括第二PCIe接口200和第二PCIe主机400。
第一PCIe系统1000或第二PCIe系统2000可以是支持使用PCIe接口的通信的电子装置。例如,第一PCIe系统1000可以是PC、膝上型计算机或者移动计算装置。此外,第二PCIe系统2000可以表示扩展卡、扩展板、适配器卡、插卡或附件卡,并且它们中的每一个可以表示印刷电路板(PCB),该PCB可以插入到第一PCIe系统1000的母板上的电连接器或扩展槽中,以便通过扩展总线向第一PCIe系统1000提供附加功能。而且,第二PCIe系统2000可以是诸如固态驱动器(SSD)的存储装置,并且可以是图形卡、网卡或者USB卡。
第一PCIe系统1000或第二PCIe系统2000可以通过使用第一PCIe接口100或第二PCIe接口200来执行通信。具体地,第一PCIe系统1000或第二PCIe系统2000可以通过使用第一PCIe接口100或第二PCIe接口200,将从第一PCIe主机300或第二PCIe主机400接收到的数据转换为适于通信的协议。第一PCIe系统1000或第二PCIe系统2000可以形成链路,并且通过该链路彼此通信。例如,第一PCIe系统1000或者第二PCIe系统2000可以通过链路传输和/或接收数据包(packet)。
图2是示出根据所公开技术的实施例的通道的示图。
参照图2,示出了第一发射器TX1、第二发射器TX2、第一接收器RX1和第二接收器RX2。通道可以包括路径,该路径包括差分驱动信号对,例如,被配置用于传输的传输路径对和被配置用于接收的接收路径对。PCIe系统可以包括用于向另一PCIe系统传输数据的传输逻辑和用于从另一PCIe系统接收数据的接收逻辑。例如,该通道可以包括连接到第一发射器TX1的两个传输路径和连接到第一接收器RX1的两个接收路径。
传输路径可以用于传输数据,并且被配置为包括传输线、铜线、光线、无线通信信道、红外通信链路或任何其它通信路径。接收路径可以用于接收数据,并且被配置为包括接收线、铜线、光线、无线通信信道、红外通信链路或任何其它通信路径。
两个装置(例如,第一PCIe系统1000和第二PCIe系统2000)之间的连接可以被指定为链路。链路可以支持一个或多个通道。在一些实施方案中,每个通道可以代表一组差分信号对(一对用于传输,另一对用于接收)。链路可以包括多个通道以便调节带宽。例如,链路可以包括1个通道、2个通道、4个通道、8个通道、12个通道、32个通道、64个通道等。
图3是示出根据所公开技术的实施例的差分信号的示图。
参照图3,示出了差分信号对(Sig1和Sig2)。PCIe系统可以使用差分信号对来进行传输和/或接收。差分信号对包括具有相同频率和相同幅度但相位彼此相反的两个信号。例如,当第一信号处于第一信号从0切换到V+的上升沿时,第二信号可以处于第二信号从0切换到V-的下降沿。PCIe系统可以通过使用差分信号来使用信号完整性,例如更满意的电气特性,诸如交叉耦合、电压过冲/下冲和振铃。PCIe系统能够更快地调整传输频率。
图4是示出了根据所公开技术的实施例的PCIe接口的示图。
参照图4,示出了第一PCIe接口100和第二PCIe接口200。
包括在PCIe接口中的PCIe层可以包括三个分立的逻辑层。例如,第一PCIe接口100可以包括PCIe内核110、事务层120、数据链路层130以及物理层140。第二PCIe接口200可以包括PCIe内核210、事务层220、数据链路层230和物理层240。层120、130、140、220、230和240中的每一层可以包括两个部分,这两个部分包括Tx和Rx。一个部分Tx可处理出站(或传输)信息,且另一部分Rx可处理入站(或接收)信息。在一些实施方案中,PCIe接口可以使用数据包来与其他PCIe接口通信信息。
PCIe内核110或210通常可以控制PCIe接口100或200。例如,PCIe内核110或210可以包括用于操作接口的软件层。在一些实施方案中,PCIe内核110或210可以向事务层120或220传输地址、事务类型、数据等,和/或从事务层120或220接收地址、事务类型、数据等。
事务层120或220可以对应于PCIe接口的结构中的上层。事务层120或220可以提供PCIe系统1000或2000中的PCIe主机300或400与互连架构(例如,数据链路层130或230以及物理层140或240)之间的接口连接。事务层120或220的主要功能可以是或包括事务层数据包(TLP)的组装和分解。在一些实施方案中,事务层120或220可以实现拆分事务,即允许在目标系统组装响应所需的数据的同时,通过链路传输另一业务(traffic)的事务。例如,事务层120或220可以实现将请求和响应暂时彼此分离的事务。在实施例中,四个事务地址空间可以包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务可以包括向/从存储器映射位置传输数据的一个或多个读取和写入请求。在实施例中,存储器空间事务可以使用两种不同的地址格式,例如,诸如32位地址的短地址格式,或诸如64位地址的长地址格式。配置空间事务可用于访问PCIe装置的配置空间。针对配置空间的事务可以包括读取和写入请求。可以定义消息空间事务(或消息)以支持PCIe系统之间的带内通信。
事务层120或220可以存储从PCIe内核110或210接收到的链路配置信息等。在一些实施方案中,事务层120或220可以生成从PCIe内核110或210请求的TLP,或者将所接收到的TLP转换成有效载荷或状态信息。
数据链路层130或230可以对应于PCIe接口的结构中的中间层,并且执行事务层120或220与物理层140或240之间的中间级的功能。数据链路层130或230的主要功能可以包括链路管理和包括错误检测和错误校正的数据完整性。具体地,数据链路层130或230的传输侧可以接受在事务层120或220中组装的TLP,提供数据保护代码,或者计算TLP序列号。在一些实施方案中,数据链路层130或230的传输侧可以将数据保护代码和TLP序列号传输到物理层140或240,使得数据保护代码和TLP序列号通过链路传输。数据链路层130或230的接收侧可以检查从物理层140或240接收的TLP的数据完整性,并且将TLP传输到事务层120或220以便执行附加处理。
物理层140或240可以包括用于接口操作的电路。该电路可以包括驱动器、输入缓冲器、串联-并联转换电路、并联-串联转换电路、锁相环(PLL)以及阻抗匹配电路。
在一些实施方案中,物理层140或240可以包括物理地将数据包传输到外部PCIe系统的逻辑子块和电气子块。逻辑子块可以执行物理层的“数字”功能所必需的角色。与此相关地,逻辑子块可以包括传输部分和接收部分,其中传输部分用于准备待由物理子块传输的发送信息,并且接收部分用于识别和准备在接收的信息被传输到数据链路层130或230之前接收的信息。物理层140或240可以包括发射器TX和接收器RX。发射器TX可以从逻辑子块接收待由发射器串行化并且发送到外部设备的符号。另外,接收器RX可从外部装置接收串行化符号,且将所接收的符号转换为位流。可以将位流进行反串行化以供应到逻辑子块。也就是说,物理层140或240可以将从数据链路层130或230接收的TLP转换成串行化格式,并且将从外部装置接收的数据包转换成反串行化格式。而且,物理层140或240可以包括与接口初始化和维护相关联的逻辑功能。
PCIe接口100或200的结构在图4中示例性地示出,并且可以被修改。例如,PCIe接口100或200的结构可以包括任意形式,诸如快速路径互连结构、下一代高性能计算互连结构或另一分级结构。
图5是示出根据所公开技术的实施例的数据包的配置的示图。
参照图5,可以在PCIe接口的每层中顺序地处理数据包50的每个部分。具体地,数据包50可以以在每层中处理的形式,利用不同的协议来配置。例如,可以在事务层120或220中生成和处理事务层数据包(TLP)。TLP可包括数据头字段、数据字段和端到端循环冗余校验(ECRC)字段。数据头字段可以是包括TLP的类型、关于是否将包括数据的信息、关于是否将包括循环冗余校验(CRC)的信息等的字段。另外,数据字段可以是包括待传输或接收的数据的字段,并且ECRC字段可以是包括表示关于端点的信息的ECRC值的字段。在一些实施方案中,数据字段和ECRC字段可以不包括在TLP中。
此外,可以在数据链路层130或230中生成和处理数据链路层数据包(DLLP)。除了TLP之外,DLLP还可以包括序列号字段和链路循环冗余校验(LCRC)字段。序列号字段可以是包括关于TLP的序列号的信息的字段,LCRC字段可以是包括关于LCRC的信息的字段。
此外,可以在物理层140或240中生成和处理物理层数据包(PLP)。除了DLLP之外,PLP还可以包括成帧字段。成帧字段可以是包括关于串行化格式的信息的字段。
图6是示出根据所公开技术的实施例的数据流的示图。
参照图6,示出了通过x8链路传输的数据流。数据流可以包括跳过有序集(SKP)的传输。
数据流可以从表示数据块的同步数据头Sync Hdr H1H=10b的传输开始。因此,TLP开始(STP)成帧令牌可作为第零符号来传输,其中第零符号表示在通道0至通道3中的TLP流的开始。另外,TLP数据头和TLP数据可作为第一符号和第二符号来传输。链路循环冗余校验(LCRC)可在TLP数据之后传输,表示DLLP数据将在LCRC之后传输的SDP数据头可作为第三符号来传输。另外,还可以提供与DLLP数据相关的循环冗余校验(CRC)数据。
随后,可以传输逻辑空闲令牌(IDL),该IDL表示通过链路没有传输任何数据。此外,可以传输EDS令牌以表示数据被改变为通道上的SKP OS数据。例如,可以传输另一同步数据,其被编码为表示随后的块将是SKP OS数据块的“01b”。
SKP OS可以包括表示链路的通道(例如,第零至第七通道)中的每一个的奇偶校验状态的奇偶校验位。SKP OS还可以包括由接收器预先定义并且可识别的布局。例如,在PCIe中的128b/130b编码的情况下,SKP OS可以包括16个基本符号。四个SKP符号分组可以通过端口来添加或移除,并且SKP OS可以包括8个符号、12个符号、16个符号、20个符号、24个符号等。此外,可以提供SKP_END符号以表示通道上的SKP OS的结束位置和通过通道传输的下一块同步数据头的位置。
图7是示出了根据所公开技术的实施例的PCIe系统的链路状态的示图。
在图7中,示出了PCIe系统的链路状态,其包括检测状态、轮询状态、配置状态、热复位状态、禁用状态、L0状态等。
检测状态是在加电复位之后的初始状态。例如,检测状态可从配置状态、热复位状态、禁用状态、L2状态、回环状态和恢复状态进入。检测状态和禁用状态通常可以在维持通道的配置设置的同时,启用超低功耗。
在轮询状态期间,在检测到的通道之中来识别可用于数据通信的通道。在轮询状态期间,可以检查极性反转,这包括检查Rx+和Rx-。
在配置状态期间,确认可用于数据通信的通道宽度。在配置状态期间,可以检查通道反转。可以从轮询状态进入配置状态。可选地,可在进入L0状态之后进入配置状态以用于通道减小和通道宽度增大(lanes width up)。
恢复状态可以用于重新配置链路带宽。在恢复状态下,可以改变设置链路的链路带宽。在恢复状态期间,可重置位锁、符号锁和/或通道到通道去偏斜中的至少一个。当在L0状态中出现错误时,可进入恢复状态。错误恢复到恢复状态之后,可将恢复状态改变为L0状态。
L0状态可以是正常操作状态,在该正常操作状态中数据和数据包可以通过链路传输和接收。例如,L0状态可以是物理总线接口的操作状态,通过该物理总线接口可以传输和接收数据和控制数据包。
L0s状态可以是省电状态,使得物理总线接口能够快速进入电力保持状态,并且能够在不经过任何恢复状态的情况下,从电力保持状态恢复。
L1状态可以是功率节省状态,在该功率节省状态中可以主动节省功率。大多数发射器和接收器可能被关闭。无法确保主电源和时钟,但是可以使用辅助电源。
回环状态可以是用于测试和故障分离的状态。回环状态仅以通道为单位进行操作,并且将选择和配置回环接收通道。
禁用状态用于直到进一步通知之前,禁用设置链路。热复位状态可以仅由下游端口触发。下游端口可以使用训练序列(例如,TS1或TS2)来传播热复位。
图8是示出根据所公开技术的实施例的弹性缓冲器的状态的示图。
参照图8,示出了当在PCIe系统之间执行通信时弹性缓冲器的第一至第三状态81至83。弹性缓冲器可以临时存储待传输的数据或临时存储待接收的数据。在一些实施方案中,弹性缓冲器可以包括在传输侧和接收侧中的每一个中。弹性缓冲器可临时存储SKP OS和数据块。
每个PCIe系统可以在传输侧和接收侧中包括时钟,并且包括在各个PCIe系统中的时钟可以以不同的频率操作。不同的频率可能导致上溢或下溢错误。例如,弹性缓冲器的第一状态81是传输侧传输数据块的速度快于在接收侧接收和处理数据块的速度的情况,并且可以是在接收侧发生上溢的状态。也就是说,弹性缓冲器的第一状态81可以是传输侧的时钟快于接收侧的时钟的情况,并且PCIe系统可以进入恢复状态以便解决上溢的错误。也就是说,PCIe系统之间的通信可能被暂停,并且在PCIe系统中可能发生大的性能劣化和数据丢失的问题。
弹性缓冲器的第二状态82是接收侧接收和处理数据块的速度快于在传输侧传输数据块的速度的情况,并且可以是在接收侧发生下溢的状态。也就是说,弹性缓冲器的第二状态82是接收侧的时钟快于传输侧的时钟的情况,并且PCIe系统可以进入恢复状态以便解决下溢的错误。因此,在PCIe系统中可能出现大的性能劣化的问题。
为了防止由于PCIe系统之间的时钟差异所导致的上溢或下溢的错误,PCIe系统可以使用添加或移除特殊符号的方式。具体地,PCIe系统可以通过使用SKP OS来防止上溢或下溢的发生。在弹性缓冲器的第三状态83中,可以将在传输侧生成的SKP OS传输到接收侧。SKP OS可以在数据块的传输之间传输。
在下文中,将描述SKP OS的规则和内容。
时钟容差补偿
SKP OS可以用于补偿在链路两端的位率之间的频率差。执行补偿的弹性缓冲器可以包括在接收侧的物理层的逻辑子块中。SKP OS的传输间隔可以基于预先设计的传输和接收时钟频率差的绝对值来设置。本说明书可以支持具有不同的发射器Tx和接收器Rx参考时钟(Refclk)速度的两种时钟。一种时钟是没有SSC(SRNS)的单独的参考时钟,并且可以允许最大600ppm的差而没有任何单独的参考时钟(SSC)。另外,其它时钟是具有独立SSC(SRIS)的单独参考时钟,并且可以允许相对于使用独立SSC的单独Refclk而具有5600ppm的差。然而,Refclk架构通常使用与发射器Tx和接收器Rx相同的Refclk,因此,发射器Tx和接收器Rx的Refclk速度之间可能不会出现任何差异。
特定形状因子规范可仅使用SRIS或仅使用SRNS,并且被允许提供用于选择时钟架构的机制。上游端口可实现对SRIS和SRNS的所有组合的支持(包括对SRIS和SRNS两者之一的任何支持的情况),但要遵守所有相关形状因子规范的要求。
支持SRIS的下游端口用于支持SRNS,只要该下游端口不是仅连接到该端口修改这些要求所针对的特定形状因子。用于满足特定相关形状因子的要求的端口配置可以根据实施方案而改变。当时钟容差误差平均为600ppm时,发射器Tx和接收器Rx中的每一个的时钟可以每1666个时钟移动一个时钟。当时钟容差误差是5600ppm时,发射器Tx和接收器Rx中的每一个的时钟可以每178个时钟移动一个时钟。
当接收器利用以在SRNS中使用的速度生成的SKP OS操作时,即使端口在SRIS中执行,端口也可以以速度向量中的适当的数据速度来设置位,该速度向量支持对链路能力2寄存器的字段的较低SKP OS的接收。当发射器利用以在SRNS中使用的速度生成的SKP OS操作时,即使端口在SRIS中执行,端口也可以以速度向量中的适当的数据速度来设置位,该速度向量支持对链路能力2寄存器的字段的较低SKP OS的接收。系统软件可以在链路控制3寄存器的链路伙伴的较低SKP OS生成向量激活字段中设置适当的数据速度位之前,检查在较低SKP OS接收支持速度向量字段中是否设置了任何位。存在于链路中的所有软件扩展装置(例如,中继器)可以支持较低SKP OS生成,使得系统软件在较低SKP OS生成向量激活字段中设置位。在扩展装置中支持的软件的配置可以根据实施方案而改变。当在较低SKP OS生成向量激活字段中设置关于执行链路的数据速度的使能位时,发射器可以以SRNS中使用的速度来保留在L0状态中生成SKP OS,而不管执行链路的时钟架构。在链路训练和状态机制(LTSSM)状态中对SKP OS的调度可以以适合于时钟架构的速度进行。
与仅支持SRNS的设计相比,支持SRIS的组件可允许对弹性缓冲器请求大量要求。当SKP OS刚好在具有最大有效载荷大小的数据包之后传输时,这些要求可能使得需要额外的时间来调度SKP OS。
用于8b/10b编码的SKP OS
当使用8b/10b编码时,除了在回环活动状态中的回环从设备中允许SKP OS的情况之外,所传输的SKP OS可以具有COM符号之后的三个SKP符号。所接收的SKP OS可以具有COM符号之后的一个至五个SKP符号。
用于128b/130b编码的SKP OS
当使用128b/130b编码时,所传输的SKP OS可具有16个符号,并且所接收的SKP OS可具有8、12、16、20或24个符号。
如表1和表2所示,可以针对128b/130b编码定义两种SKP OS格式。两种格式都可以包括利用4个SKP符号配置的1至5个组,其中利用4个符号配置的、被指定为SKP_END或SKP_END_CTL的最后组位于最后。当PCIe系统以8.0GT/s操作时,仅可以使用标准SKP OS。当PCIe系统以16.0GT/s操作时,可以使用标准SKP OS和控制SKP OS二者。不涉及特定SKP OS格式的规范的所有状态可以应用于这两种格式。当SKP OS被传输时,所有通道可以传输相同类型的SKP OS。所有通道可以传输标准SKP OS或传输控制SKP OS。
基于LTSSM状态和块序列的SKP_END符号之后的信息可以包括在标准SKP OS中。在轮询合规(Polling.Compliance)状态下,符号可以包括通道的错误状态信息。否则,当SKPOS跟随数据块时,符号可以包括LFSR值和数据奇偶校验位。控制SKP OS中可以包括三个数据奇偶校验位和SKP_END_CTL符号之后的附加信息。
当PCIe系统以8.0GT/s的数据速度操作时,标准SKP OS的数据奇偶校验位可以是通道通信的所有数据块有效载荷的偶数编号的奇偶校验,并且可以针对每个通道独立地计算。上游和下游端口发射器可以如下计算奇偶校验。
在实施例中,当传输SDS OS时,奇偶校验可以被初始化。
在实施例中,在执行加扰之后,奇偶校验可以更新为数据块有效载荷的每个位。
在实施例中,可以将紧邻数据块而传输的标准SKP OS的数据奇偶校验位设置为当前奇偶校验。
在实施例中,奇偶校验可以在传输标准SKP OS之后被初始化。
上游和下游端口接收器可以计算奇偶校验并且操作。
在实施例中,当接收到SDS OS时,可以初始化奇偶校验。
在实施例中,在执行解扰之前,奇偶校验可以更新为数据块有效载荷的每个位。
在实施例中,当刚好在数据块之后接收到标准SKP OS时,每个通道可以将所接收的数据奇偶校验位与所计算的奇偶校验进行比较。当感测到不一致时,接收器可设置与通道的基本通道编号相对应的通道错误状态寄存器位。不一致不是接收器的任何错误,并且由于不一致,可能不执行链路重训练。
在实施例中,当接收到标准SKP OS时,奇偶校验被初始化。
当PCIe系统以16.0GT/s的数据速度操作时,标准SKP OS和控制SKP OS两者的数据奇偶校验位可以是通道通信的所有数据块有效载荷的偶数编号的奇偶校验,并且可以针对每个通道独立地计算。上游和下游端口发射器可以如下计算奇偶校验。
在实施例中,当LTSSM处于恢复速度(Recovery.Speed)状态中时,奇偶校验可以被初始化。
在实施例中,当传输SDS OS时,奇偶校验可以被初始化。
在实施例中,在执行加扰之后,奇偶校验可以更新为数据块有效载荷的每个位。
在实施例中,可以将刚好在数据块之后传输的标准SKP OS的数据奇偶校验位设置为当前奇偶校验。
在实施例中,控制SKP OS的数据奇偶校验、第一重定时器数据奇偶校验和第二重定时器奇偶校验都可被设置为当前奇偶校验。
在实施例中,可以在传输控制SKP OS之后,将奇偶校验初始化。然而,在传输标准SKP OS之后,奇偶校验可能不会被初始化。
上游和下游端口接收器可以计算奇偶校验并且如下操作。
在实施例中,当LTSSM处于恢复速度状态时,奇偶校验可以被初始化。
在实施例中,当接收到SDS OS时,可以初始化奇偶校验。
在实施例中,在执行解扰之前,奇偶校验可以被更新为数据块有效载荷的每个位。
在实施例中,当接收到控制SKP OS时,每个通道可以将所接收的第一重定时器数据的奇偶校验位与所计算的奇偶校验进行比较。当感测到不一致时,接收器可设置寄存器的位,该位表示与通道的基本通道编号相对应的端口的第一重定时器数据奇偶校验的不一致状态。不一致不是接收器的任何错误,并且由于不一致,可能不执行链路重训练。
在实施例中,当接收到控制SKP OS时,每个通道可将所接收的第二重定时器数据的奇偶校验位与所计算的奇偶校验进行比较。当感测到不一致时,接收器可设置寄存器的位,该位表示与通道的基本通道编号相对应的端口的第二重定时器数据奇偶校验的不一致状态。不一致不是接收器的任何错误,并且由于不一致,可能不执行链路重训练。
在实施例中,当刚好在数据块之后接收到标准SKP OS时,接收器可以将所接收的数据奇偶校验位与所计算的奇偶校验进行比较。然而,比较结果对表示通道错误状态的寄存器的状态没有影响。
在实施例中,当接收到控制SKP OS时,可以初始化奇偶校验。然而,当接收到标准SKP OS时,可能无法初始化奇偶校验。
表1
表1:128b/130b编码中的标准SKP OS
Figure BDA0003312298690000151
控制SKP OS可以不同于利用最后四个符号配置的标准SKP OS。除了由上游和下游端口计算的数据奇偶校验位之外,由每个重定时器计算的奇偶校验位可以用于通信。另外,如下所述,奇偶校验位可以用于重定时器接收器的通道余量。
表2
表2:128b/130b编码中的控制SKP OS
Figure BDA0003312298690000161
‘余量CRC[4:0]’可以通过以下来计算:符号4N+2的位[6:0](d[0]可以是符号4N+2的位0,d[1]可以是符号4N+2的位1,......,且d[6]可以是符号4N+2的位6),以及符号4N+3的位[7:0](d[7]可以是符号4N+3的位0,d[8]可以是符号4N+3的位1,......,且d[14]可以是符号4N+3的位7)。
余量CRC[0]=d[0]^d[3]^d[5]^d[6]^d[9]^d[10]^d[11]^d[12]^d[13]
余量CRC[1]=d[0]^d[4]^d[6]^d[7]^d[10]^d[11]^d[12]^d[13]^d[14]
余量CRC[2]=d[0]^d[2]^d[3]^d[6]^d[7]^d[8]^d[9]^d[10]^d[14]
余量CRC[3]=d[1]^d[3]^d[4]^d[7]^d[8]^d[9]^d[10]^d[11]
余量CRC[4]=d[2]^d[4]^d[5]^d[8]^d[9]^d[10]^d[11]^d[12]
“余量奇偶校验”可以是符号4N+1的位[4:0]、符号4N+2的位[6:0]和符号4N+3的位[7:0]的偶数编号的奇偶校验。(即,余量奇偶校验=余量CRC[0]^余量CRC[1]^余量CRC[2]^余量CRC[3]^余量CRC[4]^d[0]^d[1]^d[2]^d[3]^d[4]^d[5]^d[6]^d[7]^d[8]^d[9]^d[10]^d[11]^d[12]^d[13]^d[14])。
控制SKP OS的错误保护
符号4N+1(位[4:0])、符号4N+2(位[7:0])以及符号4N+3(位[7:0])的21位可以包括5位的CRC和1位的奇偶校验,并且剩余的15位用于信息传输。虽然奇偶校验位可以提供对奇数编号的位翻转(例如,位1或位3)的感测,但是CRC可以提供对1位和2位翻转的确保感测。因此,可以确保对21位的三位翻转感测和长度为5的突发错误感测。5位CRC可以从多项式,即x5+x2+1中导出。
该21位不是TLP的一部分,因此,当重复传输相同内容时可以确保传输。这可以通过结构化寄存器来实现。当下游命令可从反映架构寄存器的内容的下游端口传输时,通过错误测试的上游状态可以通过下游端口的状态寄存器来更新。因此,在软件中可能存在执行命令并且在执行新的命令之前等待再次反馈状态的机制。因此,15位信息可以用作微数据包。
发射器标准
在实施例中,所有通道可以以相同频率传输符号(所有多通道链路中的位率之间的差可以是0ppm)。
在实施例中,除了在传输中允许回环从设备处于回环激活LTSSM状态的情况之外,可以在多通道链路的所有通道中同时传输具有相同长度的SKP OS。
在实施例中,当使用8b/10b编码时:
-在链路不在SRIS中操作的情况下,或者在较低SKP OS生成向量激活字段中设置了与当前链路速度相对应的位,并且LTSSM处于L0状态的情况下,可以调度SKP OS以在1118个符号时间至1538个符号时间的间隔传输。
-在链路在SRIS中操作,在较低SKP OS生成向量激活字段中清除对应于当前链路速度的位,或者LTSSM不处于L0状态的情况下,可以调度SKP OS以在小于154个符号时间的间隔传输。
在实施例中,当使用128b/130b编码时:
-在链路不在SRIS中操作,或者在较低SKP OS生成向量激活字段中设置对应于当前链路速度的位,并且LTSSM处于L0状态的情况下,可以调度SKP OS以在370个块至375个块的间隔传输。回环从设备可以操作以满足该要求,直到回环从设备开始回送接收到的位流。
-在链路在SRIS中操作,在较低SKP OS生成向量激活字段中清除对应于当前链路速度的位,或者LTSSM不处于L0状态的情况下,可以调度SKP OS以短于38个块的间隔传输。回环从设备可以操作以满足该要求,直到回环从设备开始回送接收到的位流。
-在LTSSM处于回环状态并且链路不在SRIS中操作的情况下,可以调度回环主设备,以370个块至375个块的间隔、以最多两个块的方式来传输彼此间隔开的两个SKP OS。
-在LTSSM处于所述回环状态并且链路在SRIS中操作的情况下,可以调度回环主设备,以小于38个块的间隔、以最多两个块的方式来传输彼此间隔开的两个SKP OS。
-控制SKP OS可以仅在以下的时间被传输。
当数据速度是16.0GT/s并且数据流被传输时,可以相对于在数据流内传输的SKPOS交替地传输标准SKP OS和控制SKP OS。
当数据速率为16.0GT/s时,LTSSM处于配置空闲(Configuration.Idle)状态或恢复空闲(Recovery.Idle)状态时,上述最小恒定间隔的要求可能无法应用于控制SKP OS的即时传输。在发射器传输控制SKP OS的实例(instance)之后,发射器可以重置SKP OS的调度间隔定时器。
在实施例中,即使当数据包或有序集(OS)不在进行中时,也将传输调度的SKP OS。否则,SKP OS可被累积。因此,可以将SKP OS连续地插入到下一数据包或下一OS的边界中。作为参考,当使用128b/130b编码时,SKP OS不能在数据流内的连续的块中传输。
在实施例中,当监视连续符号或OS时,由于暂停(例如,8个连续的TS1 OS处于轮询活动(Polling.Active)状态中),可能无法计算SKP OS。
在实施例中,当使用8b/10b编码时:在合规模式或修改的合规模式正在轮询合规状态中进行时,在链路控制2寄存器的合规SOS位为0b的情况下,可以不传输SKP OS。当使用8b/10b编码时,在链路控制2寄存器的合规SOS位为1b的情况下,在合规模式或修改的合规模式正在进行时,可以针对所有调度的SKP OS时间间隔来传输两个(而不是一个)连续的SKP OS。
在实施例中,当使用128b/130b编码时:合规SOS寄存器位没有影响。在轮询合规状态期间,发射器可以仅传输在修改的合规模式中被指定为特定部分的SKP OS。
在实施例中,当发射器在电气方面(electrically)处于空闲状态时,可以重置用于保留SKP OS的计数器或另一机制。
接收器规则
在实施例中,当使用8b/10b编码时,接收器可以如已经决定的方式来识别所接收的SKP OS。当使用128b/130b编码时,接收器可以如已经决定的方式来识别所接收的SKPOS。
在实施例中,除了在回环活动(Loopback.Active)状态期间发生的情况之外,针对多通道链路的每个通道,可不改变所接收的SKP OS的长度。
在实施例中,当支持速度向量字段的较低SKP OS接收器中的链路不在SRIS中操作时,或者当链路没有以用于设置的当前链路速度的位来操作时,并且当使用8b/10b编码时,接收器可以以平均1180至1538个符号时间的间隔来接收和处理SKP OS。此外,当使用128b/130b编码时,接收器可以以平均370至375个块的间隔来接收并处理SKP OS。当链路在SRIS中操作时并且当使用8b/10b编码时,接收器可以以平均154个符号时间的间隔来接收和处理SKP OS。此外,当使用128b/130b编码时,接收器可以以平均小于38个块的间隔来接收和处理SKP OS。
在一些实施方案中,在电气方面处于空闲状态的发射器不需要重置SKP OS的基于时间调度的机制。因此,在接收器在电气方面处于空闲状态之后,接收器可以在比SKP OS的平均时间间隔短的时间内接收和处理首先调度的SKP OS。
在实施例中,在数据速度为8.0GT/s或更高的情况下,处于L0状态的接收器可检查在每个SKP OS之前是否存在任何具有EDS令牌的数据块。
在实施例中,接收器可以以2.5GT/s和5.00GT/s的数据速度来连续地接收和处理SKP OS。
根据接收器的组件支持的Max_Payload_Size,接收器可以以最大间隔来接收和处理SKP OS。在2.5GT/s和5.00GT/s的数据速度的情况下,关于SKP OS之间的最大符号数N的公式可以是N=1538+(Max_payload_size_byte+28)。例如,当Max_Payload_Size为4096字节时,N=1538+4096+28=5662。
图9是示出根据所公开技术的实施例的弹性缓冲器的状态的示图。
参照图9,示出了当在PCIe系统之间执行通信时弹性缓冲器的第一至第三状态91至93。
弹性缓冲器可以临时存储待传输的数据或临时存储待接收的数据。具体地,弹性缓冲器可以包括在传输侧和接收侧中的每一个中。弹性缓冲器可临时存储SKP OS和数据块。PCIe系统可以通过使用SKP OS来防止上溢或下溢的发生。具体地,在Gen3/4/5的基于PCIe的规范中的Gen3或更大中,在公共参考时钟或SRNS的情况下,PCIe系统可以每370至375个数据块来传输SKP OS。在SRIS的情况下,PCIe系统可以每37个数据块来传输SKP OS。然而,不考虑PCIe系统之间的时钟差的SKP OS的传输可能导致由不必要的SKP OS引起的性能劣化。具体地,在PCIe系统之间的时钟差是600ppm或更大的SRNS的情况下,不能防止上溢或下溢。此外,在PCIe系统之间的时钟差为5600ppm或更大的SRIS的情况下,不能防止上溢或下溢。
根据所公开技术的实施例,可以实时应用最佳SKP OS间隔,而不管公共参考时钟、SRNS或SRIS。在实施例中,当PCIe系统使用SRNS模式或SRIS模式时,可以通过移除不必要的SKP OS来提高性能。可选地,当进一步需要SKP OS时,可以通过添加数量对应于最佳数量的SKP OS来防止PCIe系统进入恢复状态,并且可以通过防止链路断开(link down)来防止数据丢失。
参照弹性缓冲器的第一状态91,传输侧的PCIe系统可以通过添加数量大于传统SKP OS的数量的SKP OS来传输数据块和SKP OS,并且接收侧的弹性缓冲器可以移除所添加的SKP OS。当在SRIS或SRNS中传输侧的时钟快于接收侧的时钟时,接收侧的弹性缓冲器移除所添加的SKP OS,从而可以防止上溢的发生。另外,在传输侧生成附加的SKP OS,从而可以降低数据块的传输速度。此外,可以防止数据丢失或进入恢复状态。当移除SKP OS时,PCIe系统无法移除存在于弹性缓冲器中的所有SKP OS。PCIe系统可以通过根据PCI/PCIe规则而仅移除存在于弹性缓冲器中的一些SKP OS来减小SKP OS的长度。
参照弹性缓冲器的第二状态92,接收侧的弹性缓冲器可以通过扩大所接收的SKPOS的长度来防止下溢的发生。具体地,当在SRIS或SRNS中接收侧的时钟比传输侧的时钟快时,接收侧的弹性缓冲器可以通过添加SKP OS来防止下溢的发生。在一些实施方案中,接收侧的弹性缓冲器可以仅在从传输侧接收到SKP OS时添加SKP OS。
参照弹性缓冲器的第三状态93,传输端的PCIe系统可以传输数量小于传统SKP OS的数量的SKP OS,从而可以实现PCIe最大效率。具体地,当传输侧和接收侧几乎不具有时钟差时(例如,在公共参考时钟的情况下),将发生上溢或下溢的概率极低。因此,传输数据块而不是SKP OS,从而可以最大化通信效率。
图10是示出根据所公开技术的实施例的物理层的配置的示图。
参照图10,物理层140可以包括用于向外部PCIe系统传输数据包的组件。具体地,物理层140可以包括编码器/解码器150、SKP OS控制逻辑160、弹性缓冲器170、收发器180和时钟信号发生器190。
编码器/解码器150可以是用于为了串行化和反串行化的目的而对数据包执行编码和解码的组件。例如,编码器/解码器150可对从数据链路层130接收的DLLP进行编码,并且物理层140可将经编码的DLLP转换成串行化格式。此外,编码器/解码器150可对从外部装置接收的数据包进行解码。
SKP OS控制逻辑160可以生成SKP OS并且控制传输间隔。在一些实施方案中,SKPOS控制逻辑160可以生成SKP OS。SKP OS控制逻辑160可以控制收发器180以控制传输间隔。将参照图11详细描述SKP OS控制逻辑160。
弹性缓冲器170可以临时存储从外部装置接收的数据包。例如,弹性缓冲器170可以临时存储通过收发器180接收的SKP OS和数据块。此外,弹性缓冲器170可以移除或添加所接收的SKP OS。例如,因为PCIe系统可能在上溢状态或下溢状态下进入恢复状态。因此,弹性缓冲器170可以移除临时存储的SKP OS,以便防止容量变为最大的上溢状态。此外,弹性缓冲器170可以添加所接收的SKP OS,以便防止容量变为最小的下溢状态。
收发器180可以包括锁相环(PLL)电路、发射器Tx和接收器Rx。PLL电路可以通过使用从时钟信号发生器190提供的时钟信号来生成待供应到发射器Tx或接收器Rx的时钟信号。PLL电路可以通过倍增从时钟信号发生器190接收的信号来生成具有改变的频率的时钟信号。例如,PLL电路可以将具有100MHz频率的参考时钟信号REFCLK倍增为具有2.5GHz频率的时钟信号。发射器Tx可以通过使用PLL电路的输出信号来将并行数据信号转换为串行数据信号,并且将串行数据信号传输到外部装置,例如,外部PCIe系统。接收器Rx可接收从外部装置传输的串行数据信号,并且通过使用PLL电路的输出信号,来生成用于恢复接收的串行数据信号的时钟信号以及用于将恢复的串行数据信号转换为并行数据信号的时钟信号。
时钟信号发生器190可以生成用于PCIe接口的操作的参考时钟信号REFCLK。PCIe接口的操作可以与外部装置通信。例如,时钟信号发生器190可以自动检测是否从PCIe系统提供了时钟信号,并且基于检测结果而生成内部时钟信号。当从PCIe系统提供时钟信号时,时钟信号发生器190可以使用从PCIe系统接收的时钟信号。在一些实施方案中,时钟信号发生器190可以将参考时钟信号REFCLK传输到SKP OS控制逻辑160和收发器180。
图11是示出了根据所公开技术的实施例的SKP OS控制逻辑的示图。
参照图11,SKP OS控制逻辑160可以包括中央处理单元(CPU)161、寄存器163和SKPOS计数器165。
CPU 161通常可以控制用于生成和移除SKP OS的操作。例如,CPU161可以控制收发器,以增大或减小SKP OS的传输间隔。在一些实施方案中,CPU 161可以响应于恢复状态进入或恢复状态进入请求来控制SKP OS的传输间隔。在一些实施方案中,CPU 161可以计算与传输间隔相对应的恢复状态进入的频率。CPU 161可以基于恢复状态进入的频率来增大或减小SKP OS的传输间隔。CPU 161可以仅以预定数量来增大或减小传输间隔。当PCIe系统在预定时间内没有进入恢复状态时,CPU 161可以将当前SKP OS传输间隔存储在寄存器163中,并且固定SKP OS的传输间隔。
CPU 161可以确定是否由于SKP OS的传输间隔的增大或减小而已经发生了恢复状态进入。在一些实施方案中,PCIe系统的链路状态可以通过与该PCIe系统链接的另一PCIe系统的请求而进入恢复状态。例如,当PCIe系统接收从另一PCIe系统传输的训练序列TS1时,PCIe系统可以进入恢复系统。当PCIe系统进入恢复状态时,CPU 161可以检查该PCIe系统进入恢复状态的原因。在一些实施方案中,CPU 161可以根据以下顺序来检查PCIe系统由于另一PCIe系统而进入恢复状态的原因。在一些实施方案中,当恢复状态不对应于以下情况时,CPU 161可以识别到PCIe系统是由于SKP OS的传输间隔的增大或减小而进入恢复状态:
1.变速请求
2.重新均衡请求
3.通道减小或通道配置升级(upconfigure)请求
4.热复位、禁用或回环请求
5.重放超时或重放翻转
变速请求可以由所连接端口中的任何一个端口做出,以请求变速(例如,来自Gen1至Gen3的变速请求)。所连接端口中的任何一个可以通过将TS1或TS2的变速位设置为1来请求变速。重新均衡请求可以由所连接端口中的任何一个做出来请求改变EQ系数。所连接端口中的任何一个可以通过将TS2的请求均衡位设置为1来请求重新均衡。此外,可以由所连接端口中的任何一个做出通道减小或通道配置升级请求,以请求增大或减小通道宽度。例如,通道减小或通道配置升级请求可以请求从通道1改变为通道4或从通道4改变为通道1。热复位、禁用或回环请求是由所连接端口中的任何一个做出的状态改变请求。通过设置热复位位、禁用位或回环位,所连接端口中的任何一个可请求状态改变。当LCRC错误发生时,可以进行重放超时或重放翻转,以请求从接收一定数量或更多的否定确认(NAK)的端口到状态端口的恢复状态进入。
当恢复状态进入对应于SKP OS的传输间隔的增大时,CPU 161可以将传输间隔减小传输间隔的增量的1/2。在一些实施方案中,CPU基于CPU先前是否增大了传输间隔来确定恢复状态进入对应于SKP OS的传输间隔的增大。当恢复状态进入对应于SKP OS的传输间隔的减小时,CPU 161可以将传输间隔增大传输间隔的减量的1/2。在一些实施方案中,CPU基于CPU先前是否减小了传输间隔来确定恢复状态进入对应于SKP OS的传输间隔的减小。CPU161可以基于外部装置的弹性缓冲器状态来控制传输间隔。
寄存器163可以存储SKP OS的传输历史。在一些实施方案中,寄存器163可以存储传输历史,传输历史包括SKP OS的传输间隔、由SKP OS计数器165计数的SKP OS的传输间隔控制数量、SKP OS的传输间隔的每次改变、每单位时间的恢复状态进入频率等。
SKP OS计数器165可以对SKP OS的传输进行计数。SKP OS计数器165可以向CPU161或寄存器163提供表示SKP OS已经被传输的信息。在一些实施方案中,CPU 161可以基于由SKP OS计数器165提供的信息来计算SKP OS的传输间隔。
图12是示出了根据所公开技术的实施例的PCIe系统的操作方法的示图。
图12示出了当PCIe系统接收恢复请求时执行的操作方法。PCIe系统和物理地连接到PCIe系统的外部装置(例如,另一PCIe系统)可以进入链接和L0状态(S1210)。
当PCIe系统从PCIe内核或者PCIe主机接收到恢复状态进入请求时(S1220-是),PCIe系统可以计算恢复状态进入频率(S1230)。在一些实施方案中,PCIe系统可以计算每单位时间进入恢复状态的进入请求或进入频率。恢复状态进入请求可以基于SKP OS或接收侧的弹性缓冲器状态来作出。
PCIe系统可以基于SKP OS的传输历史来确定SKP OS传输间隔是增大还是减小(S1240)。传输历史可以包括传输间隔的改变或与传输间隔相对应的恢复状态进入频率中的至少一个。当PCIe系统没有控制SKP OS传输间隔(S1240-否)时,PCIe系统可以减小SKPOS传输间隔(S1250)。
在一些实施方案中,当PCIe系统控制SKP OS传输间隔(S1240-是)时,PCIe系统可以确定是否刚好在进入恢复状态的进入请求之前,已经增大SKP OS传输间隔(S1245)。当PCIe系统刚好在进入恢复状态的进入请求之前没有增大SKP OS传输间隔(S1245-否)时,PCIe系统可以减小SKP OS传输间隔(S1250)。
在一些实施方案中,当PCIe系统刚好在进入恢复状态的进入请求之前增大SKP OS传输间隔时(S1245-是),PCIe系统可以将SKP OS传输间隔减小SKP OS传输间隔的刚好在进入恢复状态的进入请求之前增量的1/2(S1260)。PCIe系统减小SKP OS传输间隔表示PCIe系统更频繁地传输SKP OS。因此,PCIe系统减小SKP OS传输间隔可表示PCIe系统传输更大量的SKP OS。
图13是示出了根据所公开技术的实施例的PCIe系统的操作方法的示图。
图13示出了当PCIe系统没有接收到进入恢复状态的进入请求时执行的操作方法。PCIe系统和物理地连接到PCIe系统的外部装置(例如,另一PCIe系统)可以进入链接和L0状态(S1210)。此外,即使当PCIe系统没有从PCIe内核或者PCIe主机接收到恢复状态进入请求时,PCIe系统也可以控制SKP OS的传输间隔(S1220-否)。
PCIe系统可以维持在PCIe系统在超过预定时间T的时间内没有进入恢复状态的稳定状态。稳定状态是L0状态,并且可以是PCIe系统在链路被激活的状态下与外部装置平稳地通信的状态。当维持稳定状态的稳定时间超过预定时间T时(S1310-是),PCIe系统可以将SKP OS的传输间隔的增大/减小数量与预定数量N进行比较(S1320)。
当SKP OS的传输间隔的增大/减小数量超过预定数量时(S1320-是),PCIe系统可以暂停SKP OS的传输间隔的控制。另一方面,当SKP OS的传输间隔的增大/减小数量小于预定数量时(S1320-否),PCIe系统可以确定刚好在恢复状态进入请求之前SKP OS传输间隔是否已经减小(S1330)。
当PCIe系统没有减小SKP OS传输间隔(S1330-否)时,PCIe系统可以增大SKP OS传输间隔,以便增大通信效率(S1340)。另外,当PCIe系统减小了SKP OS传输间隔时(S1330-是),PCIe系统可以将SKP OS传输间隔增大SKP OS传输间隔的刚好在恢复状态进入请求之前减量的1/2,以便增大通信效率(S1350)。PCIe系统增大SKP OS传输间隔表示PCIe系统更少地传输SKP OS。因此,PCIe系统增大SKP OS传输间隔可表示PCIe系统传输更少量的SKPOS。
在本说明书中,已经详细描述了使用PCIe的协议。然而,所公开的技术可以应用于除了PCIe之外的、使用对应于SKP OS的虚拟数据的协议。即,将显而易见的是,所公开的技术可以被修改并且在除了PCIe之外的协议中实现,从而控制虚拟数据或空闲数据,以便防止弹性缓冲器的下溢或上溢。
根据所公开的技术,可以提供一种改进的PCIe接口和包括该PCIe接口的接口系统。
尽管已经参照所公开技术的特定示例性实施例示出和描述了本公开技术,但是本领域技术人员将理解,在不脱离由所附权利要求及其等同方案限定的所公开技术的精神和范围的情况下,可以在形式和细节上对所公开技术进行各种改变。因此,所公开技术的范围不应限于上述示例性实施例,而是应当不仅由所附权利要求书而且由其等同方案来确定。
在上述实施例中,可以选择性地执行所有步骤或者部分步骤,并且可以省略这些步骤。在每个实施例中,这些步骤不一定根据所描述的顺序来执行,并且可以重新排列。在本说明书和附图中公开的实施例仅是便于理解所公开技术的示例,并且所公开技术不限于此。即,本领域技术人员应当清楚,可以基于所公开技术的技术范围进行各种修改。
在附图和说明书中描述了所公开技术的示例性实施例。基于本专利文件中所公开和示出的内容,所公开实施例和其它实施例的变型和增强是可能的。

Claims (20)

1.一种装置,包括:
收发器,传输和接收数据;以及
跳过有序集控制逻辑,即SKP OS控制逻辑,与所述收发器通信,并且生成SKP OS以及控制所述收发器将所述SKP OS和数据块传输到与外部装置连接并且包括多个通道的链路,
其中所述SKP OS控制逻辑响应于所述链路进入恢复状态,基于所述SKP OS的传输历史,来增大或减小所述SKP OS的传输间隔,所述恢复状态用于从错误中恢复所述链路。
2.根据权利要求1所述的装置,其中所述SKP OS控制逻辑包括:
中央处理单元,即CPU,控制所述收发器增大或减小所述SKP OS的传输间隔;
寄存器,存储所述传输历史;以及
SKP OS计数器,对所述SKP OS的传输间隔进行计数。
3.根据权利要求1所述的装置,其中所述传输历史包括所述SKP OS的传输间隔、所述传输间隔的改变以及与所述传输间隔相对应的进入所述恢复状态的发生频率中的至少一个。
4.根据权利要求1所述的装置,其中所述SKP OS控制逻辑进一步计算与所述传输间隔相对应的进入所述恢复状态的发生频率,并且基于所述频率来增大或减小所述SKP OS的传输间隔。
5.根据权利要求1所述的装置,其中所述SKP OS控制逻辑将所述传输间隔增大或减小直到预定数量。
6.根据权利要求1所述的装置,其中所述SKP OS控制逻辑进一步在预定时间内没有接收到进入所述恢复状态的请求的情况下,固定所述传输间隔。
7.根据权利要求1所述的装置,其中在进入与所述传输间隔增大相对应的恢复状态的情况下,所述SKP OS控制逻辑将所述传输间隔减小所述传输间隔的增量的1/2。
8.根据权利要求1所述的装置,其中当进入与所述传输间隔减小相对应的恢复状态时,所述SKP OS控制逻辑将所述传输间隔增大所述传输间隔的减量的1/2。
9.根据权利要求1所述的装置,其中所述SKP OS控制逻辑基于所述外部装置的弹性缓冲器的状态,来增大或减小所述SKP OS的传输间隔。
10.根据权利要求1所述的装置,其中所述SKP OS包括根据基于高速外围组件互连总线接口标准,即PCIe总线接口标准的协议的格式。
11.一种系统,包括:
第一高速外围组件互连装置,即第一PCIe装置,以及
第二PCIe装置,通过包括多个通道的链路与所述第一PCIe装置联接并且通信,
其中所述第一PCIe装置生成跳过有序集,即SKP OS,并且响应于所述链路进入恢复状态,基于所述第二PCIe装置的弹性缓冲器的状态来增大或减小所述SKP OS的传输间隔。
12.根据权利要求11所述的系统,其中所述弹性缓冲器临时存储从所述第一PCIe装置接收的所述SKP OS。
13.根据权利要求11所述的系统,其中所述弹性缓冲器的状态包括所述弹性缓冲器的容量变为最大的上溢状态、所述弹性缓冲器的容量变为最小的下溢状态以及在预定时间或更长时间内没有错误的正常状态。
14.根据权利要求13所述的系统,其中所述弹性缓冲器移除所述SKP OS以防止所述上溢状态。
15.根据权利要求13所述的系统,其中所述弹性缓冲器添加所述SKP OS以防止所述下溢状态。
16.根据权利要求13所述的系统,其中在所述弹性缓冲器处于所述上溢状态或所述下溢状态的情况下,所述第一PCIe装置响应于进入所述恢复状态而减小所述SKP OS的传输间隔。
17.根据权利要求13所述的系统,其中在进入所述恢复状态之后,在所述弹性缓冲器处于所述正常状态的情况下,所述第一PCIe装置增大所述SKP OS的传输间隔。
18.根据权利要求11所述的系统,其中所述第一PCIe装置基于所述SKP OS的传输历史来增大或减小所述SKP OS的传输间隔。
19.根据权利要求18所述的系统,其中所述传输历史包括所述SKP OS的传输间隔、所述传输间隔的改变以及与所述传输间隔相对应的进入所述恢复状态的发生频率中的至少一个。
20.根据权利要求11所述的系统,其中所述SKP OS包括根据基于PCIe的协议的格式。
CN202111220170.7A 2021-04-05 2021-10-20 PCIe接口和接口系统 Pending CN115203109A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210044151A KR102518285B1 (ko) 2021-04-05 2021-04-05 PCIe 인터페이스 및 인터페이스 시스템
KR10-2021-0044151 2021-04-05

Publications (1)

Publication Number Publication Date
CN115203109A true CN115203109A (zh) 2022-10-18

Family

ID=83449778

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111220170.7A Pending CN115203109A (zh) 2021-04-05 2021-10-20 PCIe接口和接口系统

Country Status (4)

Country Link
US (1) US11782792B2 (zh)
KR (1) KR102518285B1 (zh)
CN (1) CN115203109A (zh)
TW (1) TW202241110A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11546128B2 (en) * 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
US11829276B1 (en) * 2022-02-23 2023-11-28 Cadence Design Systems, Inc. System and method for monitoring compliance patterns

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4692894A (en) 1984-12-18 1987-09-08 Advanced Micro Devices, Inc. Overflow/Underflow detection for elastic buffer
US5025457A (en) 1989-04-21 1991-06-18 Codex Corporation Synchronizing continuous bit stream oriented terminals in a communications network
GB9410943D0 (en) 1994-06-01 1994-07-20 Newbridge Networks Corp Clock recovery unit
US6029194A (en) 1997-06-10 2000-02-22 Tektronix, Inc. Audio/video media server for distributed editing over networks
US5958027A (en) 1997-08-05 1999-09-28 Advanced Micro Devices, Inc. Method and system for optimizing the flow of isochronous data and clock rate information
US6279058B1 (en) 1998-07-02 2001-08-21 Advanced Micro Devices, Inc. Master isochronous clock structure having a clock controller coupling to a CPU and two data buses
US6061802A (en) 1998-07-02 2000-05-09 Advanced Micro Devices, Inc. Software based clock synchronization
US7031306B2 (en) 2000-04-07 2006-04-18 Artel Video Systems, Inc. Transmitting MPEG data packets received from a non-constant delay network
GB0100094D0 (en) 2001-01-03 2001-02-14 Vtech Communications Ltd System clock synchronisation using phased-lock loop
US7103125B1 (en) 2001-05-16 2006-09-05 Lexmark International, Inc. Method and apparatus for effecting synchronous pulse generation for use in serial communications
US7295578B1 (en) 2001-09-12 2007-11-13 Lyle James D Method and apparatus for synchronizing auxiliary data and video data transmitted over a TMDS-like link
JP3626452B2 (ja) 2001-12-27 2005-03-09 株式会社東芝 半導体装置
US20040263427A1 (en) 2003-06-25 2004-12-30 Horigan John W. Lossless clock domain translation for a pixel stream
WO2005096162A1 (ja) 2004-03-18 2005-10-13 Matsushita Electric Industrial Co., Ltd. アービトレーション方法及び装置
US7719371B2 (en) 2004-03-22 2010-05-18 Integrated Device Technology, Inc. Spread spectrum clock and reference signal generator
US7890735B2 (en) 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US20060209684A1 (en) 2005-03-18 2006-09-21 Via Technologies, Inc. Data rate controller, and method of control thereof
TWI282218B (en) 2005-07-01 2007-06-01 Realtek Semiconductor Corp Method of generating spread spectrum and/or over-clock and its circuit thereof
US20070041391A1 (en) 2005-08-18 2007-02-22 Micron Technology, Inc. Method and apparatus for controlling imager output data rate
US8867683B2 (en) 2006-01-27 2014-10-21 Ati Technologies Ulc Receiver and method for synchronizing and aligning serial streams
US20080141063A1 (en) 2006-12-12 2008-06-12 Ridgeway Curtis A Real time elastic FIFO latency optimization
US7936790B2 (en) 2007-08-30 2011-05-03 Silicon Image, Inc. Synchronizing related data streams in interconnection networks
KR101419292B1 (ko) 2008-02-20 2014-07-14 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법
TW201002055A (en) 2008-06-24 2010-01-01 Sunplus Technology Co Ltd Image format conversion system
US20100061424A1 (en) 2008-09-09 2010-03-11 International Business Machines Corporation Spread Spectrum Controller with Bit Error Rate Feedback
US8285884B1 (en) 2008-11-03 2012-10-09 Integrated Device Technology Inc. Data aggregation system and method for deskewing data at selectable data rates
TWI390991B (zh) 2008-11-05 2013-03-21 Realtek Semiconductor Corp 音訊裝置與音訊處理方法
US8548011B2 (en) * 2010-12-02 2013-10-01 Plx Technology, Inc. Dynamic host clock compensation
US8611486B2 (en) 2011-04-08 2013-12-17 Silicon Image, Inc. Adjustment of clock signals regenerated from a data stream
WO2013001631A1 (ja) 2011-06-29 2013-01-03 富士通株式会社 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
US9971603B2 (en) 2011-12-29 2018-05-15 Intel Corporation Causing an interrupt based on event count
US9264747B2 (en) 2012-03-11 2016-02-16 Broadcom Corporation Audio/video channel bonding configuration adaptations
US8781086B2 (en) 2012-06-26 2014-07-15 Adc Dsl Systems, Inc. System and method for circuit emulation
US8856573B2 (en) 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US8879680B2 (en) 2012-11-06 2014-11-04 Ati Technologies Ulc Adaptive clock mismatch compensation symbol insertion in signal transmissions
US9337934B1 (en) 2012-11-29 2016-05-10 Clariphy Communications, Inc. Coherent transceiver architecture
DE112013007726T5 (de) 2013-12-26 2017-02-02 Intel Corporation Verbesserungen eines Zwischenverbindungs-Retimers
US20150350656A1 (en) 2014-05-30 2015-12-03 Qualcomm Innovation Center, Inc. Dynamic video core clock and voltage scaling
US9626270B2 (en) 2014-09-26 2017-04-18 Intel Corporation Link retraining based on runtime performance characteristics
US9933809B2 (en) 2014-11-14 2018-04-03 Cavium, Inc. Automatic data rate matching
US10091119B2 (en) 2015-03-20 2018-10-02 Harman International Industries, Incorporated Managing data in a static network prior to initialization
US10671476B2 (en) 2015-09-26 2020-06-02 Intel Corporation In-band margin probing on an operational interconnect
GB2546812B (en) 2016-02-01 2020-05-27 Shields Energy Services Ltd System for controlling a plurality of power-consuming devices
KR102507714B1 (ko) 2016-05-02 2023-03-09 삼성전자주식회사 SRIS를 지원하는 PCIe 장치
US10019385B2 (en) 2016-06-29 2018-07-10 Intel Corporation Method and apparatus of real-time retimer delay measurement
US10229081B2 (en) 2016-09-26 2019-03-12 Dell Products, Lp System level crosstalk mitigation
JP6742899B2 (ja) 2016-12-27 2020-08-19 ルネサスエレクトロニクス株式会社 半導体装置
KR102668197B1 (ko) 2017-02-08 2024-05-23 에스케이하이닉스 주식회사 반도체 장치
US10860449B2 (en) 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
US10880137B2 (en) 2017-05-12 2020-12-29 Intel Corporation Bypassing equalization at lower data rates
EP3666182A1 (en) 2018-12-11 2020-06-17 Koninklijke Philips N.V. Device, system and method for providing bio-feedback to a user
CN113396396A (zh) 2019-01-31 2021-09-14 特克特朗尼克公司 高速输入/输出裕度测试的系统、方法和设备
US11397701B2 (en) 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
US11886312B2 (en) * 2020-04-07 2024-01-30 Intel Corporation Characterizing error correlation based on error logging for computer buses
CN113765363A (zh) 2020-06-01 2021-12-07 株式会社村田制作所 频率调制的dc-dc转换器的降emi方法及其装置
US11546128B2 (en) 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
KR102415309B1 (ko) 2020-06-16 2022-07-01 에스케이하이닉스 주식회사 인터페이스 장치 및 그 동작 방법
US20210050941A1 (en) 2020-07-06 2021-02-18 Intel Corporation Characterizing and margining multi-voltage signal encoding for interconnects

Also Published As

Publication number Publication date
KR20220138245A (ko) 2022-10-12
TW202241110A (zh) 2022-10-16
KR102518285B1 (ko) 2023-04-06
US20220318094A1 (en) 2022-10-06
US11782792B2 (en) 2023-10-10

Similar Documents

Publication Publication Date Title
US20210391973A1 (en) Device and computing system including the device
US7793030B2 (en) Association of multiple PCI express links with a single PCI express port
US10180927B2 (en) Device, system and method for communication with heterogeneous physical layers
KR101419292B1 (ko) 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법
US8463962B2 (en) MAC and PHY interface arrangement
KR102559387B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
CN115203109A (zh) PCIe接口和接口系统
CN106575269B (zh) 串行边带信令链路
CN115391261A (zh) 高速外围组件互连装置以及包括其的计算系统
KR102518317B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US11892927B2 (en) Method for error handling of an interconnection protocol, controller and storage device
CN115408318A (zh) 高速外围组件互连装置及其操作方法
CN115185875A (zh) 执行通信的装置和包括该装置的计算系统
US20230315672A1 (en) Interface device and computing system including the same
CN114968860B (zh) 高速外围组件互连接口装置以及包括该接口装置的系统
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
US20230315591A1 (en) PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME
US20240118983A1 (en) Method for facilitating testing for an interconnection protocol, a controller, and an electronic device
CN116680224A (zh) 不对称PCIe总线设计方法、装置、总线装置及系统

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