KR102518285B1 - PCIe 인터페이스 및 인터페이스 시스템 - Google Patents

PCIe 인터페이스 및 인터페이스 시스템 Download PDF

Info

Publication number
KR102518285B1
KR102518285B1 KR1020210044151A KR20210044151A KR102518285B1 KR 102518285 B1 KR102518285 B1 KR 102518285B1 KR 1020210044151 A KR1020210044151 A KR 1020210044151A KR 20210044151 A KR20210044151 A KR 20210044151A KR 102518285 B1 KR102518285 B1 KR 102518285B1
Authority
KR
South Korea
Prior art keywords
skp
state
transmission interval
pcie
pcie interface
Prior art date
Application number
KR1020210044151A
Other languages
English (en)
Other versions
KR20220138245A (ko
Inventor
전용태
박대식
장재영
Original Assignee
에스케이하이닉스 주식회사
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 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020210044151A priority Critical patent/KR102518285B1/ko
Priority to US17/349,775 priority patent/US11546128B2/en
Priority to US17/350,885 priority patent/US11782792B2/en
Priority to CN202111220170.7A priority patent/CN115203109A/zh
Priority to TW110144997A priority patent/TW202241110A/zh
Priority to US17/840,340 priority patent/US20220311590A1/en
Publication of KR20220138245A publication Critical patent/KR20220138245A/ko
Application granted granted Critical
Publication of KR102518285B1 publication Critical patent/KR102518285B1/ko
Priority to US18/350,220 priority patent/US20230353341A1/en

Links

Images

Classifications

    • 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/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
    • 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
    • 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
    • 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
    • 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

Abstract

본 기술은 PCIe 인터페이스에 관한 것으로, 외부 장치와 복수의 레인을 포함하는 링크를 통해 연결되는 PCIe 인터페이스에 있어서, 송수신기 및 SKP OS를 생성하고, SKP OS 및 데이터 블록을 링크로 전송하도록 송수신기를 제어하는 SKP OS 제어 로직을 포함하되, 상기 SKP OS 제어 로직은 리커버리 상태 진입에 응답하여, 상기 SKP OS의 전송 히스토리에 기초하여 상기 SKP OS의 전송 간격을 증감시킬 수 있다.

Description

PCIe 인터페이스 및 인터페이스 시스템 {PCIe INTERFACE AND INTERFACE SYSTEM}
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로는 PCIe 인터페이스 및 인터페이스 시스템에 관한 것이다.
반도체 처리 및 로직 설계의 발전으로 집적 회로 디바이스 상에서 존재할 수 있는 로직의 양적 증가가 가능하게 되었다. 그 결과로서, 컴퓨터 시스템 구성은 한 시스템 내의 단일 또는 복수의 집적 회로에서부터 개개의 집적 회로상에 존재하는 다중 코어, 다중 하드웨어 쓰레드, 및 다중 논리 프로세서뿐만 아니라, 그러한 프로세서 내에서 집적된 다른 인터페이스에 이르기까지 진화하였다. 프로세서 또는 집적 회로는 전형적으로 단일의 물리적인 프로세서 다이를 포함하는데, 이 프로세서 다이는 임의의 개수의 코어, 하드웨어 쓰레드, 논리 프로세서, 인터페이스, 메모리 제어기 허브 등을 포함할 수 있다.
더 많은 처리 능력을 더 작은 패키지 내에 형성하는 기술적 역량이 커진 결과로서, 소형의 컴퓨팅 디바이스의 인기가 증가하고 있다. 그러나, 소형의 디바이스는 데이터 저장 및 폼팩터를 초과하는 복잡한 처리를 모두 외부 장치에 의존하고 있다. 그 결과, 다른 장치와 통신을 위한 인터커넥트 아키텍처의 역량이 중요해지고 있다.
본 발명의 실시 예는 향상된 PCIe 인터페이스 및 이를 포함하는 인터페이스 시스템을 제공한다.
본 발명의 실시 예에 따른 외부 장치와 복수의 레인을 포함하는 링크를 통해 연결되는 PCIe 인터페이스는 송수신기 및 SKP OS를 생성하고, 상기 SKP OS 및 데이터 블록을 상기 링크로 전송하도록 상기 송수신기를 제어하는 SKP OS 제어 로직을 포함하되, 상기 SKP OS 제어 로직은 리커버리 상태 진입에 응답하여, 상기 SKP OS의 전송 히스토리에 기초하여 상기 SKP OS의 전송 간격을 증감시킬 수 있다.
본 발명의 실시 예에 따른 제1 PCIe 인터페이스 및 상기 제1 PCIe 인터페이스와 복수의 레인을 포함하는 링크를 통해 연결되는 제2 PCIe 인터페이스를 포함하는 인터페이스 시스템에 있어서, 상기 제1 PCIe 인터페이스는 SKP OS를 생성하고, 상기 SKP OS 및 데이터 블록을 상기 링크로 전송하되, 상기 링크의 연결 상태가 리커버리 상태로 진입하면, 상기 제2 PCIe 인터페이스의 탄성 버퍼의 상태에 기초하여 상기 SKP OS의 전송 간격을 증감시킬 수 있다.
본 기술에 따르면 향상된 PCIe 인터페이스 및 이를 포함하는 인터페이스 시스템이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 PCIe 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 레인(lane)을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 차동 신호를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 PCIe 인터페이스를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 패킷의 구성을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 데이터 스트림을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 PCIe 시스템의 링크 상태를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 탄성 버퍼의 상태를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시 예에 따른 탄성 버퍼의 상태를 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시 예에 따른 피지컬 레이어의 구성을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시 예에 따른 SKP OS 제어 로직을 설명하기 위한 도면이다.
도 12는 본 발명의 일 실시 예에 따른 PCIe 시스템의 동작 방법을 설명하기 위한 도면이다.
도 13은 본 발명의 일 실시 예에 따른 PCIe 시스템의 동작 방법을 설명하기 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예를 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시 예에 따른 PCIe 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, PCIe(Peripheral component interconnect express) 시스템은 PCIe 호스트 및 PCIe 인터페이스를 포함할 수 있다. 구체적으로, 제1 PCIe 시스템(1000)은 제1 PCIe 인터페이스(100) 및 제1 PCIe 호스트(300)를 포함할 수 있고, 제2 PCIe 시스템(2000)은 제2 PCIe 인터페이스(200) 및 제2 PCIe 호스트(400)를 포함할 수 있다.
제1 PCIe 시스템(1000) 또는 제2 PCIe 시스템(2000)은 PCIe 인터페이스를 이용한 통신을 지원하는 전자 장치일 수 있다. 예를 들어, 제1 PCIe 시스템(1000)은 PC, 랩탑 컴퓨터 또는 모바일 컴퓨팅 장치일 수 있다. 그리고, 제2 PCIe 시스템(2000)은 확장 카드(expansion card), 확장 보드(expansion board), 어댑터 카드(adapter card), 애드-인 카드(add-in card) 또는 액세서리 카드 (accessory card)를 의미할 수 있고, 이들 각각은 확장 버스를 통해 제1 PCIe 시스템(1000)에 부가적인 기능을 제공하기 위해 제1 PCIe 시스템(1000)의 마더보드 상의 전기적 커넥터 또는 확장 슬롯에 삽입될 수 있는 인쇄 회로 기판 (printed circuit board(PCB))을 의미할 수 있다. 또한, 제2 PCIe 시스템(2000)는 솔리드 스테이트 드라이브(solid state drives(SSD))와 같은 저장 장치일 수 있고, 그래픽 카드, 네트워크 카드, 또는 USB 카드일 수 있다.
제1 PCIe 시스템(1000) 또는 제2 PCIe 시스템(2000)은 제1 PCIe 인터페이스(100) 또는 제2 PCIe 인터페이스(200)를 이용하여 통신을 수행할 수 있다. 구체적으로, 제1 PCIe 시스템(1000) 또는 제2 PCIe 시스템(2000)은 제1 PCIe 호스트(300) 또는 제2 PCIe 호스트(400)로부터 수신한 데이터를 제1 PCIe 인터페이스(100) 또는 제2 PCIe 인터페이스(200)를 이용하여 통신에 적합한 프로토콜로 변환할 수 있다. 제1 PCIe 시스템(1000) 및 제2 PCIe 시스템(2000)은 링크(Link)를 형성하고, 제1 PCIe 시스템(1000) 및 제2 PCIe 시스템(2000)은 형성된 링크를 통해 통신할 수 있다. 예를 들어, 제1 PCIe 시스템(1000) 또는 제2 PCIe 시스템(2000)은 링크를 통하여 패킷을 송수신할 수 있다.
도 2는 본 발명의 일 실시 예에 따른 레인(lane)을 설명하기 위한 도면이다.
도 2를 참조하면, 제1 송신기(TX1), 제2 송신기(TX2), 제1 수신기(RX1) 및 제2 수신기(RX2)가 도시되어 있다. 레인(lane)은 차동 구동된 신호 쌍들을 포함하는 경로, 예컨대, 송신용으로 구성된 송신 경로 쌍 및 수신용으로 구성된 수신 경로 쌍을 포함할 수 있다. PCIe 시스템은 데이터를 다른 PCIe 시스템으로 송신하는 송신 로직 및 데이터를 다른 PCIe 시스템으로부터 수신하는 수신 로직을 포함할 수 있다. 예를 들어, 제1 송신기(TX1)에 연결된 두 개의 송신 경로 및 제1 수신기(RX1)에 연결된 두 개의 수신 경로를 포함할 수 있다.
여기서, 송신 경로는 송신 회선, 구리 회선, 광 회선, 무선 통신 채널, 적외선 통신 링크, 또는 다른 통신 경로와 같이 데이터를 송신하기 위한 임의의 경로를 의미할 수 있다. 그리고, 수신 경로는 송신 경로와 동일하게 구현되나, 수신을 위해 이용되는 경로일 수 있다.
두 디바이스, 예컨대, 제1 PCIe 시스템(1000) 및 제2 PCIe 시스템(2000) 사이의 접속은 링크라고 지칭될 수 있다. 링크는 1개 이상의 레인(lane)을 지원할 수 있다. 그리고, 각각의 레인은 한 세트의 차동 신호 쌍(하나의 쌍은 송신용, 하나의 쌍은 수신용)을 나타낼 수 있다. 그리고, 링크는 대역폭을 조정하기 위해, 복수의 레인을 포함할 수 있다. 예를 들어, 링크는 1, 2, 4, 8, 12, 16, 32, 64 등의 레인을 포함할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 차동 신호를 설명하기 위한 도면이다.
도 3을 참조하면, 하나의 차동 신호가 도시되어 있다. PCIe 시스템은 송신을 위해 차동 신호를 이용할 수 있다. 또한, PCIe 시스템은 수신을 위해 차동 신호를 이용할 수 있다. 차동 신호는 2개의 주파수와 진폭이 같으나, 위상이 반대인 신호 쌍을 의미할 수 있다. 예를 들어, 제1 신호가 0에서 V+의 전압 레벨로 토글하는 상승 에지(edge)일 때, 제2 신호는 0에서 V-의 전압 레벨로 토글하는 하강 에지(edge)로 진행할 수 있다. PCIe 시스템은 차동 신호를 이용하여 신호 무결성(signal integrity), 예컨대, 크로스-커플링, 전압 오버슈트/언더슈트, 링잉 등과 같은 더 양호한 전기적 특성을 이용할 수 있고, 송신 주파수를 더 빠르게 조정할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 PCIe 인터페이스를 설명하기 위한 도면이다.
도 4를 참조하면, 제1 PCIe 인터페이스(100) 및 제2 PCIe 인터페이스(200)가 도시되어 있다.
PCIe 인터페이스에 포함된 PCIe 레이어들은 3개의 이산적 논리적 계층들(three discrete logical layers)을 포함할 수 있다. 예를 들어, 제1 PCIe 인터페이스(100)는 PCIe 코어(110), 트랜잭션 레이어(120), 데이터 링크 레이어(130) 및 피지컬 레이어(140)를 포함할 수 있다. 제2 PCIe 인터페이스(200)는 PCIe 코어(210), 트랜잭션 레이어(220), 데이터 링크 레이어(230) 및 피지컬 레이어(240)를 포함할 수 있다. 각 레이어들(120, 130, 140, 220, 230 및 240)은 두 개의 섹션들을 포함할 수 있다. 하나의 섹션(TX)은 아웃바운드(또는 전송될) 정보를 처리할 수 있고, 다른 하나(RX)는 인바운드(또는 수신된) 정보를 처리할 수 있다. 그리고, PCIe 인터페이스는 다른 PCIe 인터페이스 사이에서 정보를 통신하기 위해 패킷들 (packets)을 사용할 수 있다.
PCIe 코어(110 또는 210)는 PCIe 인터페이스(100 또는 200)를 전반적으로 제어할 수 있다. 구체적으로, PCIe 코어(110 또는 210)는 인터페이스를 동작하기 위한 소프트웨어 레이어를 포함할 수 있다. 그리고, PCIe 코어(110 또는 210)는 트랜잭션 레이어(120 또는 220)로 어드레스, 트랜잭션 타입 및 데이터 등을 전송하거나 트랜잭션 레이어(120 또는 220)로부터 어드레스, 트랜잭션 타입 및 데이터 등을 수신할 수 있다.
PCIe 인터페이스의 구조에서 상위(upper) 레이어는 트랜잭션 레이어(120 또는 220)일 수 있다. 트랜잭션 레이어(120 또는 220)는 PCIe 시스템(1000 또는 2000)의 PCIe 호스트(300 또는 400)와 인터커넥트 아키텍처(예컨대, 데이터 링크 레이어(130 또는 230) 및 피지컬 레이어(140 또는 240)) 사이에서 인터페이스를 제공할 수 있다. 트랜잭션 레이어(120 또는 220)의 주요한 기능은 트랜잭션 레이어 패킷들(transaction layer packets(TLPs))을 모으고(assembly) 분해(disassembly)할 수 있다. 그리고, 트랜잭션 레이어(120 또는 220)는 스플릿 트랜잭션(split tansaction), 즉, 타겟 시스템이 응답에 필요한 데이터를 수집하는 동안 링크로 다른 트래픽을 전달하게 해주는 트랜잭션을 구현할 수 있다. 예컨대, 트랜잭션 레이어(120 또는 220)는 요청과 응답이 시간적으로 분리되어 있는 트랜잭션을 구현할 수 있다. 일 실시예에서, 네 개의 트랜잭션 어드레스 공간은 구성 어드레스 공간, 메모리 어드레스 공간, 입력/출력 어드레스 공간, 및 메시지 어드레스 공간을 포함할 수 있다. 메모리 공간 트랜잭션은 데이터를 메모리-매핑된 장소로/로부터 전달하는 읽기 요청 및 쓰기 요청 중 하나 이상을 포함할 수 있다. 일 실시예에서, 메모리 공간 트랜잭션은 두 가지 상이한 어드레스 포맷, 예를 들면, 32-비트 어드레스와 같이 짧은 어드레스 포맷, 또는 64-비트 어드레스와 같이 긴 어드레스 포맷을 사용할 수 있다. 구성 공간 트랜잭션은 PCIe 시스템의 구성 공간에 액세스하는데 사용될 수 있다. 구성 공간으로의 트랜잭션은 읽기 요청 및 쓰기 요청을 포함할 수 있다. 메시지 공간 트랜잭션(또는, 메시지)은 PCIe 시스템들 간의 대역-내(in-band) 통신을 지원하기 위해 정의될 수 있다.
트랜잭션 레이어(120 또는 220)는 PCIe 코어(110 또는 210)로부터 수신한 링크 구성 정보(Link configuration information) 등을 저장할 수 있다. 그리고, PCIe 코어(110 또는 210)에서 요청한 TLP를 생성하거나, 수신한 TLP를 페이로드(payload) 또는 상태 정보(status information)로 변환할 수 있다.
PCIe 인터페이스의 구조에서 중간 레이어(middle layer)는 데이터 링크 레이어(130 또는 230)이고, 데이터 링크 레이어(130 또는 230)는 트랜잭션 레이어(120 또는 220) 및 피지컬 레이어(140 또는 240) 사이의 중간 스테이지(intermediate stage)의 기능을 수행할 수 있다. 데이터 링크 레이어(130 또는 230)의 주요한 기능은 링크 관리(link management) 및 에러 검출과 에러 정정을 포함하는 데이터 무결성(data integrity)일 수 있다. 구체적으로, 데이터 링크 레이어(130 또는 230)의 송신 측은 트랜잭션 레이어(120 또는 220)에서 수집된(assembled) TLPs를 수용(accept)하고, 데이터 보호 코드를 부여하거, TLP 시퀀스 번호를 계산할 수 있다. 그리고, 데이터 링크 레이어(130 또는 230)의 송신 측은 링크를 통해 전송하기 위해 데이터 보호 코드와 TLP 시퀀스 번호를 피지컬 레이어(140 또는 240)로 전송할 수 있다. 데이터 링크 레이어(130 또는 230)의 수신 측은 피지컬 레이어(140 또는 240)로부터 수신된 TLPs의 데이터 무결성을 체크하고, 추가적인 처리를 위해 트랜잭션 레이어(120 또는 220)로 TLPs를 전송할 수 있다.
피지컬 레이어(140 또는 240)는 인터페이스 동작을 위한 모든 회로(all circuitry)를 포함할 수 있다. 여기서, 모든 회로는 드라이버, 입력 버퍼, 직렬-병렬 변환 회로, 병렬-직렬 변환 회로, 위상 동기 루프(phase locked loop(PLLs)), 및 임피던스 매칭 회로를 포함할 수 있다.
그리고, 피지컬 레이어(140 또는 240)는 패킷을 외부 PCIe 시스템에 물리적으로 전송하는 논리 서브블록 및 전기 서브블록을 포함할 수 있다. 여기서, 논리 서브블록은 피지컬 레이어의 '디지털' 기능에 필요한 역할을 수행할 수 있다. 이와 관련하여, 논리 서브블록은 물리 서브블록에 의해 전송하기 위한 발송 정보를 준비하는 송신 섹션과 수신된 정보를 데이터 링크 레이어(130 또는 230)에 전달하기 전에 수신된 정보를 식별하고 준비하는 수신 섹션을 포함할 수 있다. 피지컬 레이어(140 또는 240)는 송신기(TX) 및 수신기(RX)를 포함할 수 있다. 송신기(TX)는 논리 서브블록에 의해 송신기가 직렬화하여 외부 장치에 송신하는 심볼을 공급받을 수 있다. 그리고, 수신기(RX)는 외부 장치로부터 직렬화된 심볼을 공급받고 수신된 신호를 비트스트림으로 변환할 수 있다. 비트스트림은 역직렬화되어 논리 서브블록에 공급될 수 있다. 즉, 피지컬 레이어(140 또는 240)는 데이터 링크 레이어(130 또는 230)로부터 수신한 TLPs를 직렬화된 형식(serialized format)으로 변환하고, 외부 장치로부터 수신한 패킷을 역직렬화된 형식(deserialized format)으로 변환할 수 있다. 그리고, 피지컬 레이어(140 또는 240)는 인터페이스 초기화 및 유지에 관련된 논리적 기능들을 포함할 수 있다.
도 4에서는 PCIe 인터페이스(100 또는 200)의 구조를 예시적으로 도시하였으나, 퀵 패스 인터커넥트(Quick Path Interconnect) 구조, 차세대 고성능 컴퓨팅 인터커넥트(Next Generation High Performance Computing Interconnect) 구조 또는 다른 계층화된 구조 등과 같은 임의의 형태를 포함할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 패킷의 구성을 설명하기 위한 도면이다.
도 5를 참조하면, 패킷(50)의 각 구성은 PCIe 인터페이스의 각 레이어에서 순차적으로 처리될 수 있다. 구체적으로, 패킷(50)은 각 레이어에서 처리되는 형태로 상이한 프로토콜을 구성할 수 있다. 예를 들어, TLP(transaction layer packet)는 트랜잭션 레이어(120 또는 220)에서 생성 및 처리될 수 있고, TLP는 헤더 필드, 데이터 필드 및 ECRC 필드를 포함할 수 있다. 여기서, 헤더 필드는 TLP의 타입, 데이터의 포함 여부 및 CRC의 포함 여부에 대한 정보 등을 포함하는 필드일 수 있다. 그리고, 데이터 필드는 송신 또는 수신할 데이터를 포함하는 필드일 수 있으며, ECRC 필드는 엔드 포인트에 대한 정보를 나타내는 ECRC(end-to-end cyclic redundancy check) 값을 포함하는 필드일 수 있다. 한편, 데이터 필드 및 ECRC 필드는 TLP에 포함되지 않을 수 있다.
그리고, DLLP(data link layer packet)는 데이터 링크 레이어(130 또는 230)에서 생성 및 처리될 수 있다. DLLP는 TLP에 시퀀스 넘버 필드 및 LCRC 필드를 더 포함할 수 있다. 여기서, 시퀀스 넘버 필드는 TLP의 시퀀스 넘버에 대한 정보를 포함하는 필드일 수 있으며, LCRC 필드는 링크 순환 중복 검사(link cyclic redundancy check)에 관한 정보를 포함하는 필드일 수 있다.
그리고, PLP(physical layer packet)는 피지컬 레이어(140 또는 240)에서 생성 및 처리될 수 있다. PLP는 DLLP에서 프레이밍 필드를 더 포함할 수 있다. 여기서, 프레이밍 필드는 직렬화된 형식(serialized format)에 대한 정보를 포함하는 필드일 수 있다.
도 6은 본 발명의 일 실시 예에 따른 데이터 스트림을 설명하기 위한 도면이다.
도 6을 참조하면, x8 링크를 통해 전송되는 데이터 스트림이 도시되어 있다. 데이터 스트림은 SKP OS(SKIP Ordered Set)의 전송을 포함할 수 있다.
데이터 스트림은 데이터 블록을 표시하는 싱크 헤더(Sync Hdr) H1H=10b의 전송으로부터 시작할 수 있다. 따라서, STP(Start of TLP) 프레이밍 토큰은 레인 0 내지 레인 3에서 TLP 스트림의 시작을 표시하는 제0 심볼로서 전송될 수 있다. 그리고, TLP 헤더 및 TLP 데이터가 제1 심볼 및 제2 심볼로 전송될 수 있다. 링크 순환 중복 검사(link cyclic redundancy check, LCRC)는 TLP 데이터의 뒤에 전송될 수 있고, 그 뒤를 이어 DLLP 데이터가 전송될 예정이라는 것을 표시하는 SDP 헤더가 제3 심볼에서 전송될 수 있다. 그리고, 순환 중복 검사(CRC) 데이터가 또한 DLLP 데이터와 관련하여 제공될 수 있다.
이후, 링크를 통해 아무 데이터도 송신되지 않음을 나타내는 논리 유휴(IDL) 토큰이 전송될 수 있다. 그리고, 레인 상에서 SKP OS 데이터로 전이하는 것을 표시하기 위해 EDS 토큰이 전송될 수 있다. 예를 들어, 후속 데이터 블록이 SKP OS 데이터 블록일 것이라는 것을 표시하는 "01b"로서 인코딩된 다른 싱크 헤더가 전송될 수 있다.
여기서, SKP OS는 링크의 각 레인(예를 들면, 제0 레인 내지 제7 레인)마다 패리티 상태를 표시하는 패리티 비트를 포함할 수 있다. SKP OS는 수신기에게 식별될 수 있는 정의된 레이 아웃을 더 포함할 수 있다. 예를 들어, PCIe에서 128b/130b 인코딩의 사례에서, SKP OS는 기본 16 심볼을 포함할 수 있다. 네 개의 SKP 심볼 그룹핑은 포트에 의해 추가되거나 제거될 수 있고, SKP OS는 8, 12, 16, 20, 또는 24개 등의 심볼일 수 있다. 또한, SKP END 심볼은 도 6에서 도시된 바와 같이, 레인 상에서 SKP OS의 끝 위치 및 레인을 통해 송신된 다음 블록 싱크 헤더의 위치를 표시하기 위해 제공될 수 있다.
도 7은 본 발명의 일 실시 예에 따른 PCIe 시스템의 링크 상태를 설명하기 위한 도면이다.
도 7을 참조하면, 검출(detect) 상태, 폴링(polling) 상태, 구성(configuration) 상태, 핫 리셋(hot reset), 불능(disabled) 상태, L0 상태 등의 PCIe 시스템의 링크 상태가 도시되어 있다.
검출 상태는 파워 온 리셋 후의 초기 상태이며 이하의 상태들로부터 진입된 것일 수 있다. 예를 들어, 검출 상태는 구성 상태, 핫 리셋, 불능 상태, L2 상태, 룩백(loopback) 상태 및 리커버리 상태로부터 진입된 상태일 수 있다. 검출 상태 및 불능 상태는 통상적으로 레인의 구성 설정을 유지하면서 초저전력 소비를 가능할 수 있다.
폴링 상태는 검출된 레인들 중 데이터 통신이 가능한 레인을 구별하는 상태를 의미할 수 있다. 그리고, 폴링 상태는 극적 반전(polarity inversion)을 확인하는 상태일 수 있다. 여기서, 극적 반전은 Rx+ 및 Rx-를 확인하는 것을 의미할 수 있다.
구성 상태는 데이터 통신이 가능한 레인 폭(lane width)를 확정하는 단계일 수 있다. 그리고, 구성 상태는 레인 반전(lane reverse)을 확인하는 단계일 수 있다. 구성 상태는 폴링 상태에서 진입할 수 있고, 또는, L0 상태 진입 후 레인 감소(lane reduce) 및 레인 폭 증가(lane width up)시 구성 상태로 진입할 수 있다.
리커버리 상태는 링크 대역폭의 재구성을 위해 사용되는 상태일 수 있다. 리커버리 상태는 설정된 링크의 링크 대역폭을 바꾸고, 비트 락(bit lock), 심볼 락 및 레인-투-레인 디스큐(lane-to-lane de-skew)를 재설정할 수 있다. 리커버리 상태는 L0 상태에서 에러가 발생한 경우 진입할 수 있고, 이후, 리커버리 상태에서 에러를 복구한 후 L0 상태로 변경될 수 있다.
L0 상태는 데이터 및 패킷들이 링크를 통해 송신 및 수신될 수 있는 정상 동작 상태일 수 있다. 구체적으로, L0 상태는 데이터 및 제어 패킷들이 송신 및 수신될 수 있는 물리적 버스 인터페이스의 동작 상태일 수 있다.
L0s 상태는 물리적 버스 인터페이스가 전력 보존 상태에 신속하게 진입할 수 있게 하고 복구 상태를 거치지 않고서 그로부터 복구될 수 있게 하는 전력 절감 상태이다.
L1 상태는 전력 절감 상태일 수 있다. 전력은 L2 상태에서 능동적으로 절약될 수 있다. 송신기 및 수신기 대부분이 셧 오프될 수 있다. 메인 전력 및 클록들은 보장되지 않지만, 보조 전력은 이용할 수 있다..
루프백 상태는 테스트 및 오작동 분리 사용을 위한 상태일 수 있다. 루프백 상태는 레인 단위로만 동작되며, 루프백 수신 레인이 선택되고 구성되어야 한다.
불능 상태의 목적은 설정된 링크가 지시될 때까지 불능이 되게 하는 것이다. 핫 리셋 상태는 다운스트림 포트에 의해서만 트리거될 수 있다. 다운스트림 포트는 핫 리셋을 전파하기 위해 트레이닝 시퀀스들(예컨대, TS1 또는 TS2)을 사용할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 탄성 버퍼의 상태를 설명하기 위한 도면이다.
도 8을 참조하면, PCIe 시스템 상호 간에 통신을 수행할 때의 탄성 버퍼(elastic buffer)의 제1 상태(81) 내지 제3 상태(83)가 도시되어 있다. 탄성 버퍼(elastic buffer)는 송신될 데이터를 임시 저장하거나, 수신된 데이터를 임시 저장할 수 있다. 구체적으로, 탄성 버퍼는 송신측 및 수신측에 각각 포함될 수 있고, 탄성 버퍼는 SKP OS 및 데이터 블록을 임시 저장할 수 있다.
송신측 및 수신측의 PCIe 시스템 각각은 클럭을 포함할 수 있고, 각 PCIe 시스템에 포함된 클럭은 상이한 주파수로 동작할 수 있다. 상이한 주파수는 오버플로우 또는 언더플로우의 에러를 발생시킬 수 있다. 예를 들어, 탄성 버퍼의 제1 상태(81)는 송신측에서 데이터 블록을 송신하는 속도가 수신측에서 데이터 블록을 수신 및 처리하는 속도보다 빠른 경우로, 수신측에 오버플로우가 발생한 상태일 수 있다. 즉, 송신측의 클럭이 수신측의 클럭보다 빠른 경우일 수 있고, PCIe 시스템은 오버플로우의 오류를 해결하기 위하여, PCIe 시스템은 리커버리 상태로 진입할 수 있다. 즉, PCIe 시스템 상호간 통신이 중단될 수 있고, PCIe 시스템은 큰 성능 저하 및 데이터의 유실의 문제가 발생할 수 있다.
탄성 버퍼의 제2 상태(82)는 수신측에서 데이터 블록을 수신 및 처리하는 속도가 송신측에서 데이터 블록을 송신하는 속도보다 빠른 경우로, 수신측에 언더플로우가 발생한 상태일 수 있다. 즉, 수신측의 클럭이 송신측의 클럭보다 빠른 경우일 수 있고, PCIe 시스템은 언더플로우의 오류를 해결하기 위하여 리커버리 상태로 진입할 수 있다. 따라서, 이 경우에도 PCIe 시스템은 큰 성능 저하의 문제가 발생할 수 있다.
각 PCIe 시스템의 클럭 차이로 기인한 오버플로우 또는 언더플로우의 에러를 방지하기 위하여, PCIe 시스템은 특수 심벌들의 추가 또는 제거의 수단을 이용할 수 있다. 구체적으로, PCIe 시스템은 SKP OS을 이용하여 오버플로우 또는 언더플로우의 발생을 방지할 수 있다. 탄성 버퍼의 제3 상태(83)는 송신측에서 생성된 SKP OS가 수신측으로 전달되고, SKP OS는 데이터 블록들의 전송 사이에 전달될 수 있다.
이하에서는, SKP OS에 대한 규칙 및 내용에 대하여 설명한다.
클럭 공차 보상(Clock Tolerance Compensation)
SKP OS는 링크의 두 끝에서 비트 전송률(bit rate) 간의 주파수 차이를 보상하는데 사용될 수 있다. 이러한 보상을 수행하는 탄성 버퍼는 수신측의 피지컬 레이어의 논리 서브블록에 포함될 수 있다. SKP OS의 전송 간격은 기지정된 전송 및 수신 클럭 주파수 차이의 절대 값을 기초로 설정될 수 있다. 이 사양은 송신기(Tx) 및 수신기(Rx) Refclk(Reference clock)의 속도가 다른 두가지 종류의 클럭킹을 지원할 수 있다. 하나는 SRNS(Separate Reference Clocks With No SSC)로 SSC(Separate Reference Clocks)가 없이 최대 600ppm 차이를 허용할 수 있다. 그리고, 다른 하나는 SRIS(Separate Reference Clocks with Independent SSC)로 독립 SSC를 사용하는 별도의 Refclks에 대해 5600ppm 차이를 허용할 수 있다. 다만, 일반적으로 Refclk 아키텍처는 송신기(Tx) 및 수신기(Rx)에 대해 동일한 Refclk을 사용하므로, 송신기(Tx) 및 수신기(Rx) Refclk 속도 간에 차이가 발생하지 않을 수 있다.
특정 폼 팩터 사양은 SRIS만 사용하거나, SRNS만 사용할 수 있고, 클럭킹 아키텍처 선택을 위한 메커니즘을 제공하도록 허용할 수 있다. 업스트림 포트는 SRIS와 SRNS의 모든 조합에 대한 지원을 구현할 수 있지만(둘 중 하나에 대한 지원 없는 경우를 포함), 모든 관련 폼 팩터 사양의 요구 사항을 준수해야 한다.
SRIS를 지원하는 다운 스트림 포트는 포트가 이러한 요구 사항을 수정하는 특정 폼 팩터에만 연결되지 않는 한 SRNS도 지원해야 한다. 특정 관련 폼 팩터의 요구 사항을 충족하기 위한 포트 구성은 구현에 따라 다를 수 있다. 클럭 허용 오차가 평균 600ppm이면 송신기(Tx) 및 수신기(Rx) 클럭은 1666 클럭마다 1 클럭을 이동할 수 있다. 클록 허용 오차가 5600ppm이면 178 클록마다 1 클록의 이동이 발생할 수 있다.
수신기가 SRIS에서 포트가 실행 중이지만, SRNS에서 사용되는 속도로 생성되는 SKP OS로 작동 할 수 있는 경우, 포트는 제2 링크 기능(Link Capabilities 2) 레지스터의 필드의 하위 SKP OS의 수신을 지원하는 속도 벡터에서 적절한 데이터 속도로 비트를 설정할 수 있다. 송신기가 SRIS에서 포트가 실행 중임에도 SRNS에서 사용되는 속도로 생성되는 SKP OS로 작동 할 수 있는 경우, 포트는 제2 링크 기능(Link Capabilities 2) 레지스터의 필드의 하위 SKP OS의 생성을 지원하는 속도 벡터에서 적절한 데이터 속도로 비트를 설정할 수 있다. 시스템 소프트웨어는 제3 링크 제어(Link Control 3) 레지스터의 링크 파트너의 하위 SKP OS 생성 벡터 활성화 필드에서 적절한 데이터 속도 비트를 설정하기 전에 하위 SKP OS 수신 지원 속도 벡터 필드에 비트가 설정되어 있는지 확인할 수 있다. 링크에 있는 모든 소프트웨어 확장 장치(예: 리피터)는 시스템 소프트웨어가 하위 SKP OS 생성 벡터 활성화 필드에서 비트를 설정하기 위해 하위 SKP OS 생성을 지원할 수 있다. 확장 장치에서 지원하는 소프트웨어의 구성은 구현에 따라 다를 수 있다. 링크가 실행 중인 데이터 속도에 대한 인에이블(enable) 비트가 하위 SKP OS 생성 벡터(Generation Vector) 필드에서 설정되면, 송신기는 링크가 실행 중인 클럭킹 아키텍처에 관계없이 SRNS에서 사용되는 속도로 L0에서 SKP OS의 생성을 예약할 수 있다. 다른 LTSSM(Link Training and Status State Machine) 상태에서 SKP OS의 스케줄링은 클럭킹 아키텍처에 적합한 속도일 수 있다.
SRIS를 지원하는 구성 요소는 SRNS 만 지원하는 설계보다 탄성 버퍼(elastic buffer)에 더 많은 요구 조건이 필요할 수 있다. 이러한, 요구 조건은 SKP OS가 최대 페이로드 크기의 패킷 직후에 전송되는 경우, SKP OS의 스케줄을 하기 위한 추가적인 시간이 소요될 수 있다.
8b / 10b 인코딩을 위한 SKP OS
8b / 10b 인코딩을 사용하는 경우, 전송된 SKP OS는 루프백-액티브(Loopback-Active) 상태에서 루프백(Loopback) 슬레이브(Slave)에 허용되는 경우를 제외하고, COM 심볼 뒤에 3 개의 SKP 심볼이 있을 수 있다. 수신된 SKP OS는 COM 심볼을 따르는 1개 내지 5 개의 SKP 심볼일 수 있다.
128b / 130b 인코딩을 위한 SKP OS
128b / 130b 인코딩을 사용하는 경우, 전송된 SKP OS은 16개 심볼이고, 수신된 SKP OS은 8, 12, 16, 20 또는 24 개 심볼이 될 수 있다.
[표 1] 및 [표 2]과 같이 128b / 130b 인코딩에 대해 정의된 두 가지 SKP OS 형식을 포함할 수 있다. 두 형식은 모두 SKP_END 또는 SKP_END_CTL 심볼로 표시된 4개의 심볼로 구성된 최종 그룹이 뒤에 오는 4개의 SKP 심볼로 구성된 1개 내지 5개의 그룹을 포함할 수 있다. 8.0GT/s로 작동 할 때, 표준 SKP OS 만 사용될 수 있다. 16.0 GT/s로 작동 할 때, 표준 및 제어 SKP OS가 모두 사용될 수 있다. 특정 SKP OS 형식을 참조하지 않는 사양의 모든 상태는 두 형식 모두에 적용될 수 있다. SKP OS가 전송 될 때, 모든 레인은 동일한 형식의 SKP OS를 전송할 수 있다. 모든 레인은 표준 SKP OS를 전송하거나 모든 레인이 제어 SKP OS를 전송할 수 있다.
표준 SKP OS에는 LTSSM 상태 및 블록 시퀀스를 기반으로 하는 SKP_END 심볼 다음에 오는 정보가 포함될 수 있다. Polling.Compliance 상태에 있을 때, 심볼은 레인의 오류 상태 정보를 포함할 수 있다. 그렇지 않으면, SKP OS가 데이터 블록을 따를 때, LFSR 값 및 데이터 패리티 비트를 포함할 수 있다. 제어 SKP OS에는 3 개의 데이터 패리티 비트와 SKP_END_CTL 심볼을 따르는 추가 정보를 포함할 수 있다.
PCIe 시스템이 8.0GT/s의 데이터 속도에서 작동 할 때, 표준 SKP OS의 데이터 패리티 비트는 레인이 통신하는 모든 데이터 블록 페이로드의 짝수 패리티이며 각 레인에 대해 독립적으로 계산될 수 있다. 업스트림 및 다운 스트림 포트 송신기는 다음과 같이 패리티를 계산할 수 있다.
실시 예에서, 패리티는 SDS OS가 전송 될 때 초기화될 수 있다.
실시 예에서, 패리티는 스크램블링이 수행된 후, 데이터 블록 페이로드의 각 비트로 업데이트될 수 있다.
실시 예에서, 데이터 블록 바로 다음에 전송되는 표준 SKP OS의 데이터 패리티 비트는 현재 패리티로 설정될 수 있다.
실시 예에서, 패리티는 표준 SKP OS가 전송 된 후 초기화될 수 있다.
업스트림 및 다운 스트림 포트 수신기는 패리티에서 계산하고 작동할 수 있다.
실시 예에서, SDS OS가 수신되면 패리티를 초기화할 수 있다.      
실시 예에서, 디-스크램블링이 수행되기 전에 데이터 블록 페이로드의 각 비트로 패리티가 업데이트될 수 있다.      
실시 예에서, 데이터 블록 바로 다음에 표준 SKP OS가 수신되면, 각 레인은 수신된 데이터 패리티 비트를 계산된 패리티와 비교할 수 있다. 불일치가 감지되면, 수신기는 레인의 기본 레인 번호에 해당하는 포트의 레인 오류 상태 레지스터 비트를 설정할 수 있다. 불일치는 수신기의 오류가 아니며, 불일치를 이유로 링크 리트레인(retrain)을 하지 않을 수 있다.
실시 예에서, 표준 SKP OS가 수신되면, 패리티가 초기화될 수 있다. 
PCIe 시스템이 16.0 GT/s의 데이터 속도에서 작동할 때, 표준 SKP OS와 제어 SKP OS 모두의 데이터 패리티 비트는 레인이 통신하는 모든 데이터 블록 페이로드의 짝수 패리티이며, 각 레인에 대해 독립적으로 계산될 수 있다. 업스트림 및 다운 스트림 포트 송신기는 다음과 같이 패리티를 계산할 수 있다.
실시 예에서, 패리티는 LTSSM이 Recovery.Speed 상태에 있을 때 초기화될 수 있다.
실시 예에서, 패리티는 SDS OS가 전송될 때 초기화될 수 있다.      
실시 예에서, 패리티는 스크램블링이 수행된 후, 데이터 블록 페이로드의 각 비트로 업데이트 될 수 있다.      
실시 예에서, 데이터 블록 바로 다음에 전송되는 표준 SKP OS의 데이터 패리티 비트는 현재 패리티로 설정될 수 있다.      
실시 예에서, 제어 SKP OS 의 데이터 패리티, 첫 번째 리-타이머 데이터 패리티 및 두 번째 리-타이머 데이터 패리티 비트는 모두 현재 패리티로 설정될 수 있다.                    
실시 예에서, 패리티는 제어 SKP OS이 전송된 후 초기화될 수 있다. 그러나, 표준 SKP OS가 전송된 후에는 패리티가 초기화되지 않을 수 있다. 
업스트림 및 다운 스트림 포트 수신기는 다음과 같이 패리티에서 계산하고 작동할 수 있다.
실시 예에서, 패리티는 LTSSM이 Recovery.Speed 상태에 있을 때 초기화될 수 있다.      
실시 예에서, SDS OS가 수신되면 패리티가 초기화될 수 있다.      
실시 예에서, 디-스크램블링이 수행되기 전에, 데이터 블록 페이로드의 각 비트로 패리티가 업데이트될 수 있다.
실시 예에서, 제어 SKP OS가 수신되면, 각 레인은 수신된 데이터 패리티 비트를 계산된 패리티와 비교할 수 있다. 불일치가 감지되면, 수신기는 레인의 기본 레인 번호에 해당하는 포트의 로컬 데이터 패리티의 불일치 상태를 나타내는 레지스터의 비트를 설정할 수 있다. 불일치는 수신기의 오류가 아니며, 불일치를 이유로 링크 리트레인(retrain)을 하지 않을 수 있다.
실시 예에서, 제어 SKP OS가 수신되면, 각 레인은 수신된 첫 번째 리타이머 데이터의 패리티 비트를 계산된 패리티와 비교할 수 있다. 불일치가 감지되면, 수신기는 레인의 기본 레인 번호에 해당하는 포트의 첫 번째 리타이머 데이터 패리티의 불일치 상태를 나타내는 레지스터의 비트를 설정할 수 있다. 불일치는 수신기의 오류가 아니며, 불일치를 이유로 링크 리트레인(retrain)을 하지 않을 수 있다.
실시 예에서, 제어 SKP OS가 수신되면, 각 레인은 수신된 두 번째 리타이머 데이터의 패리티 비트를 계산된 패리티와 비교할 수 있다. 불일치가 감지되면, 수신기는 레인의 기본 레인 번호에 해당하는 포트의 두 번째 리타이머 데이터 패리티의 불일치 상태를 나타내는 레지스터의 비트를 설정할 수 다. 불일치는 수신기의 오류가 아니며, 불일치를 이유로 링크 리트레인(retrain)을 하지 않을 수 있다.
실시 예에서, 데이터 블록 바로 뒤에 표준 SKP OS가 수신되면, 수신기는 수신된 데이터 패리티 비트를 계산된 패리티 비트와 비교할 수 있다. 단, 비교 결과는 레인 오류 상태를 나타내는 레지스터의 상태에 영향을 주지 않을 수 있다.      
실시 예에서, 패리티는 제어 SKP OS가 수신될 때 초기화될 수 있다. 그러나, 표준 SKP OS가 수신될 때 패리티는 초기화되지 않을 수 있다.
[표 1] : 128b/130b 인코딩에서 표준 SKP OS
심볼 번호 내용
0에서 (4 * N-1)
[N은 1 내지 5]
AAh SKP 심볼. 
심볼 0은 SKP OS 식별자다. 
4 * N E1h SKP_END 심볼.  3 개의 추가 심볼 이후, SKP OS의 끝을 나타낸다.
4 * N + 1 00-FFh (i) LTSSM 상태가 Polling.Compliance 상태인 경우: AAh (ii) 이전 블록이 데이터 블록인 경우: 
     비트 [7] = 데이터 패리티
비트 [6: 0] = LFSR [22:16]
(iii) 기타: 
      비트 [7] = ~ LFSR [22]
      비트 [6:0] = LFSR [22:16]
4 * N + 2 00-FFh (i) LTSSM 상태가 Polling.Compliance 상태인 경우: Error_Status [7:0] (ii) 기타: LFSR [15:8]
4 * N + 3 00-FFh (i) LTSSM 상태가 Polling.Compliance 상태인 경우:   ~ Error_Status [7:0]
(ii) 기타: LFSR [7:0]
제어 SKP OS는 마지막 4개 심볼의 표준 SKP OS와 다를 수 있다. 업스트림 및 다운 스트림 포트에 의해 계산된 데이터 패리티 비트 외에 각 리-타이머에 의해 계산된 패리티 비트를 통신하는데 사용될 수 있다. 또한, 아래에 설명된 바와 같이, 리-타이머 수신기의 차선 마진에 사용할 수도 있다.
[표 2]: 128b/130b 인코딩에서 제어 SKP OS
심볼 번호 기술
0에서 (4 * N-1)
[N은 1 내지5]
AAh SKP 심볼. 
심볼 0은 SKP OS 식별자다. 
4 * N 78 시간 SKP_END_CTL 심볼.  3 개의 추가 심볼 이후 제어 SKP OS의 끝을 나타낸다.
4 * N + 1 00-FFh 비트 7: 데이터 패리티  비트 6: 첫 번째 리 타이머 데이터 패리티
비트 5: 두 번째 리 타이머 패리티
비트 [4:0]: 마진 CRC [4 : 0]
4 * N + 2 00-FFh 비트 7: 마진 패리티 
'마진 CRC [4:0]'는 Symbols 4N + 2의 Bits [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일 수 있다.)에서 계산될 수 있다.
Margin CRC [0] = d [0] ^ d [3] ^ d [5] ^ d [6] ^ d [9] ^ d [10] ^ d [11] ^ d [12] ^ d [13]
Margin CRC [1] = d [1] ^ d [4] ^ d [6] ^ d [7] ^ d [10] ^ d [11] ^ d [12] ^ d [13] ^ d [14]
Margin CRC [2] = d [0] ^ d [2] ^ d [3] ^ d [6] ^ d [7] ^ d [8] ^ d [9] ^ d [10] ^ d [14]
Margin CRC [3] = d [1] ^ d [3] ^ d [4] ^ d [7] ^ d [8] ^ d [9] ^ d [10] ^ d [11]
Margin CRC [4] = d [2] ^ d [4] ^ d [5] ^ d [8] ^ d [9] ^ d [10] ^ d [11] ^ d [12]
'Margin Parity'는 심볼 4N + 1의 비트 [4:0], 심볼 4N + 2의 비트 [6:0] 및 비트의 짝수 패리티일 수 있다.
심볼 4N + 3의 [7:0] (즉, 마진 패리티 = Margin CRC [0] ^ Margin CRC [1] ^ Margin CRC [2] ^ Margin CRC [3] ^ Margin 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 비트에 대한 3 중 비트 플립 감지 보장과 길이 5의 버스트 오류 감지가 보장될 수 있다. 5 비트 CRC는 기본 다항식에서 파생될 수 있다. x5 + x2 + 1
이러한 21 비트는 TLP의 일부가 아니므로, 동일한 콘텐츠를 반복적으로 전달하면 전달이 보장될 수 있다. 이것은 구조화 된 레지스터를 통해 달성될 수 있다. 다운 스트림 명령은 아키텍처 레지스터의 내용을 반영하는 다운 스트림 포트에서 전송되는 반면, 오류 검사를 통과한 업스트림 상태는 다운 스트림 포트의 상태 레지스터로 업데이트될 수 있다. 따라서, 소프트웨어에는 명령을 실행하고 새 명령을 실행하기 전에 상태가 다시 반영될 때까지 기다리는 메커니즘이 있을 수 있다. 따라서, 15 비트 정보는 마이크로 패킷 역할을 할 수 있다.
송신기 규칙
실시 예에서, 모든 레인은 동일한 주파수에서 심볼을 전송할 수 있다. (모든 다중 레인 링크 내에서 비트 전송률 간의 차이는 0ppm일 수 있다).      
실시 예에서, 전송시 루프백 활성 LTSSM 상태에서 루프백(Loopback) 슬레이브(Slave)에 허용되는 경우를 제외하고, 동일한 길이의 SKP OS가 다중 레인 링크의 모든 레인에서 동시에 전송될 수 있다.
실시 예에서, 8b / 10b 인코딩을 사용하는 경우:  
- 링크가 SRIS에서 작동하지 않거나, 현재 링크 속도에 해당하는 비트가 하위 SKP OS 생성 벡터 활성화 필드에서 설정되고, LTSSM이 L0상태에 있는 경우, SKP OS는 1180 심볼 시간 내지 1538 심볼 시간 사이의 간격으로 전송되도록 스케줄링될 수 있다.
- 링크가 SRIS에서 동작 중이고, 현재 링크 속도에 해당하는 비트가 하위 SKP OS 생성 벡터 활성화 필드에서 클리어(clear)거나, LTSSM이 L0상태가 아닌 경우, SKP OS는 154 심볼 시간 미만의 간격으로 전송되도록 스케줄링될 수 있다. 
실시 예에서, 128b / 130b 인코딩을 사용하는 경우: 
- 링크가 SRIS에서 작동하지 않거나, 현재 링크 속도에 해당하는 비트가 하위 SKP OS 생성 벡터 활성화 필드에 설정되어 있고, LTSSM이 L0 상태에 있는 경우, SKP OS는 370 블록 내지 375 블록의 간격으로 전송되도록 스케줄링 될 수 있다. 루프백 슬레이브는 들어오는 비트 스트림을 루프백하기 시작할 때까지, 이러한 요구 사항을 충족하도록 동작할 수 있다.
- 링크가 SRIS에서 작동 중이고, 현재 링크 속도에 해당하는 비트가 하위 SKP OS 생성 벡터 활성화 필드에서 지워지거나, LTSSM이 L0 상태가 아닌 경우, SKP OS는 38 블록보다 짧은 간격으로 전송되도록 SKP OS를 스케줄링할 수 있다. 루프백 슬레이브는 들어오는 비트 스트림을 루프백하기 시작할 때까지, 이러한 요구 사항을 충족하도록 동작할 수 있다.
- LTSSM이 루프백 상태에 있고, 링크가 SRIS에서 작동하지 않는 경우, 루프백 마스터는 370 내지 375 블록 사이의 간격으로 최대 2개 블록만큼 떨어져있는 두 개의 SKP OS를 전송하도록 스케줄링할 수 있다. 
- LTSSM이 루프백 상태에 있고, 링크가 SRIS에서 작동 중일 때, 루프백 마스터는 38 블록 미만의 간격으로 최대 2개 블록만큼 떨어져있는 두 개의 SKP OS가 전송되도록 스케줄링할 수 있다.
- 제어 SKP OS는 다음 시간에만 전송될 수 있다.
데이터 속도가 16.0 GT/s이고, 데이터 스트림을 전송하는 경우, 데이터 스트림 내에서 전송된 SKP OS는 표준 SKP OS와 제어 SKP OS가 번갈아 가며 전송될 수 있다.
데이터 속도가 16.0GT/s이고 LTSSM이 Configuration.Idle 상태 또는 Recovery.Idle 상태인 경우, 제어 SKP OS의 인스턴스 전송에는 위에서 설명한 최소 일정 간격의 요구 사항이 적용되지 않을 수 있다. 송신기는 제어 SKP OS 의 인스턴스를 전송한 후, SKP OS의 스케줄링 간격 타이머를 재설정할 수 있다.             
실시 예에서, 스케줄된 SKP OS는 패킷 또는 OS(Ordered Set)이 이미 진행 중이 아닌 경우에도 전송되어야 하고, 그렇지 않으면, SKP OS는 누적될 수 있으므로, 다음 패킷 또는 다음 OS(Ordered Set)의 경계에 연속적으로 삽입될 수 있다. 참고: 128b / 130b 인코딩을 사용하는 경우, SKP OS는 데이터 스트림 내의 연속 블록에서 전송할 수 없다.
실시 예에서, SKP OS는 연속 심볼 또는 OS를 모니터링할 때, 중단으로 계산되지 않을 수 있다 (예: Polling.Active 상태에서 8개의 연속 TS1 OS).      
실시 예에서, 8b / 10b 인코딩을 사용하는 경우: Polling.Compliance 상태에서 컴플라이언스 패턴(Compliance Pattern) 또는 수정된 컴플라이언스 패턴(Modified Compliance Pattern) 이 진행되는 동안 컴플라이언스 SOS 비트의 링크 제어 2 레지스터(Link Control2 register)가 0b이면 SKP OS를 전송하지 않을 수 있다. 8b/10b 인터딩을 사용할 때, 링크 제어 2 레지스터(Link Control2 register)의 컴플라이언스 SOS 비트가 1b 인 경우, 준수 패턴 또는 수정된 준수 패턴이 진행 중인 동안 스케줄된 모든 SKP OS 시간 간격에 대해 두 개(한 개 대신에)의 연속된 SKP OS 가 전송될 수 있다.
실시 예에서, 128b / 130b 인코딩을 사용하는 경우: 컴플라이언스 SOS 레지스터 비트가 효과가 없다. Polling.Compliance 상태에 있는 동안, 송신기는 수정된 컴플라이언스 패턴 중 특정한 일부로 지정된 것의 SKP OS만을 전송할 수 있다.      
실시 예에서, 송신기가 전기적으로 유휴 상태에서 보낸 모든 시간은 SKP OS의 전송을 스케줄링 하는데 사용되는 스케줄 간격에 포함되지 않는다.         
실시 예에서, 송신기가 전기적으로 유휴 상태 일 때, SKP OS를 예약하는데 사용되는 카운터 또는 기타 메커니즘을 재설정할 수 있다.      
수신자 규칙
실시 예에서, 수신기는 8b / 10b 인코딩을 사용할 때, 기정의된 대로 수신된 SKP OS를 인식하고, 128b / 130b 인코딩을 사용할 때, 기정의된 대로 수신된 SKP OS를 인식할 수 있다.
실시 예에서, 수신된 SKP OS의 길이는, 루프백-액티브(Loopback.Active) 동안 발생하는 경우를 제외하고는, 멀티 레인 링크(multi-Lane Link)의 레인에서 레인마다 변하지 않을 수 있다.
실시 예에서, 수신기는 속도 벡터 필드를 지원하는 하위 SKP OS 수신기에서 링크가 SRIS에서 동작하지 않거나, 셋(set)된 현재 링크 속도를 위한 비트에서 동작하지 않을때, 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.0 GT/s 이상의 데이터 속도의 경우, L0 상태에서 수신기는 각 SKP OS 앞에 EDS 토큰이 있는 데이터 블록이 있는지 확인할 수 있다.      
실시 예에서, 수신기는 2.5GT/s 및 5.0GT/s 데이터 속도에서 연속적으로 SKP OS를 수신하고 처리 할 수 있다.        
- 수신기는 구성 요소가 지원하는 최대_페이로드_크기(Max_Payload_Size)에 따라 최대 간격의 SKP OS를 수신하고 처리 할 수 있다. 2.5GT/s 및 5.0GT/0s 데이터 속도의 경우, SKP OS 간의 최대 심볼수(N)에 대한 공식은 N = 1538 + (Max_payload_size_byte + 28)일 수 있다. 예를 들어, 최대_페이로드_크기 (Max_Payload_Size)가 4096 바이트이면 N = 1538 + 4096 + 28 = 5662일 수 있다.
도 9는 본 발명의 일 실시 예에 따른 탄성 버퍼의 상태를 설명하기 위한 도면이다.
도 9를 참조하면, PCIe 시스템 상호 간에 통신을 수행할 때의 탄성 버퍼(elastic buffer)의 제1 상태(91) 내지 제3 상태(93)가 도시되어 있다.
탄성 버퍼는 송신될 데이터를 임시 저장하거나, 수신된 데이터를 임시 저장할 수 있다. 구체적으로, 탄성 버퍼는 송신측 및 수신측에 각각 포함될 수 있고, 탄성 버퍼는 SKP OS 및 데이터 블록을 임시 저장할 수 있다. PCIe 시스템은 SKP OS을 이용하여 오버플로우 또는 언더플로우의 발생을 방지할 수 있다. 구체적으로, PCIe 시스템은 Gen3/4/5 PCIe 기반 스펙에서 Gen3 이상일 때, 공통 기준 클럭 또는 SRNS일 경우에는 370 내지 375 데이터 블럭마다, SRIS 인 경우에는 37 데이터 블록마다 SKP OS를 전송할 수 있다. 다만, PCIe 시스템 간의 클럭 차이를 고려하지 않은 SKP OS의 전송은 불필요한 SKP OS로 인한 성능 저하 요소가 될 수 있다. 구체적으로, PCIe 시스템 간의 클럭 차이가 600ppm 이상인 SRNS의 경우에는 오버플로우 또는 언더플로우를 방지할 수 없으며, PCIe 시스템 간의 클럭 차이가 5600ppm 이상인 SRIS의 경우에도 오버플로우 및 언더플로우를 방지할 수 없다.
본 발명의 일 실시 예에 따르면, 공통 기준 클럭, SRNS 또는 SRIS에 관계 없이 최적의 SKP OS 간격을 실시간으로 적용할 수 있다. 일 실시 예에 따르면, PCIe 시스템들이 SRNS 모드 또는 SRIS 모드를 이용하는 경우, 불필요한 SKP OS를 제거하여 성능을 개선하거나, SKP OS가 더 필요한 경우에 SKP OS를 최적의 개수만큼 추가하여 PCIe 시스템이 리커버리 상태로 진입을 방지하고, 링크 다운(Linkdown)을 방지하여 데이터 유실을 방지할 수 있다.
탄성 버퍼의 제1 상태(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의 길이를 감소시킬 수 있다.
탄성 버퍼의 제2 상태(92)를 참조하면, 수신측의 탄성 버퍼는 수신한 SKP OS의 길이를 확장하여 언더플로우가 발생하는 것을 방지할 수 있다. 구체적으로, SRIS 또는 SRNS에서 수신측 클럭이 송신측 클럭보다 빠른 경우에, 수신측의 탄성 버퍼는 SKP OS를 추가함으로써 언더플로우가 발생하는 것을 방지할 수 있다. 한편, 수신측의 탄성 버퍼는 SKP OS를 송신측으로부터 수신한 경우에만 SKP OS를 추가할 수 있다.
탄성 버퍼의 제3 상태(93)를 참조하면, 송신측의 PCIe 시스템은 종래의 SKP OS보다 적은 양의 SKP OS를 전송함으로써 PCIe 최대 효율을 달성할 수 있다. 구체적으로, 송신측 및 수신측의 클럭 차이가 거의 없는 경우(예컨대, 공통 기준 클럭의 경우)에는 오버플로우 또는 언더플로우가 발생할 가능성이 극히 적으므로, SKP OS 대신 데이터 블록을 전송함으로써 통신 효율을 극대화할 수 있다.
도 10은 본 발명의 일 실시 예에 따른 피지컬 레이어의 구성을 설명하기 위한 도면이다.
도 10을 참조하면, 피지컬 레이어(140)는 패킷을 외부 PCIe 시스템에 전송하기 위한 구성을 포함할 수 있다. 구체적으로, 피지컬 레이어(140)는 인코더/디코더(150), SKP OS 제어 로직(160), 탄성 버퍼(170), 송수신기(180) 및 클럭 신호 생성기(190)를 포함할 수 있다.
인코더/디코더(150)는 직렬화(serialized) 및 역직렬화(deserialized)를 위해 패킷에 인코딩 및 디코딩을 수행하는 구성일 수 있다. 구체적으로, 인코더/디코더(150)는 데이터 링크 레이어(130)로부터 수신한 DLLP를 인코딩할 수 있고, 피지컬 레이어(140)는 인코딩된 DLLP를 직렬화 포멧으로 변환할 수 있다. 그리고, 인코더/디코더(150)는 외부 장치로부터 수신한 패킷을 디코딩할 수 있다.
SKP OS 제어 로직(160)은 SKP OS의 생성 및 전송 간격을 제어할 수 있다. 구체적으로, SKP OS 제어 로직(160)은 송수신기(180)가 SKP OS를 생성하도록 제어할 수 있고, SKP OS 제어 로직(160)은 송수신기(180)가 SKP OS의 전송 간격을 제어할 수 있다. SKP OS 제어 로직(160)에 대한 구체적인 설명은 도 11을 참조하여 후술한다.
탄성 버퍼(170)는 외부 장치로부터 수신한 패킷을 임시 저장할 수 있다. 구체적으로, 탄성 버퍼(170)는 송수신기(180)를 통하여 수신한 SKP OS 및 데이터 블록을 임시 저장할 수 있다. 그리고, 탄성 버퍼(170)는 수신한 SKP OS를 제거하거나 추가할 수 있다. 구체적으로, 오버플로우 상태 또는 언더플로우 상태가 되면 리커버리 상태로 진입할 수 있으므로, 탄성 버퍼(170)는 용적이 최대가 되는 오버플로우 상태를 방지하기 위하여 임시 저장한 SKP OS를 제거할 수 있다. 그리고, 탄성 버퍼(170)는 용적이 최소가 되는 언더플로우 상태를 방지하기 위하여 수신한 SKP OS를 추가할 수 있다.
송수신기(180)는 위상 고정 루프(PLL; Phase Locked Loop) 회로, 송신기(Tx), 및 수신기(Rx)를 포함할 수 있다. PLL 회로는 클럭 신호 생성기(190) 로부터 제공된 클럭 신호를 이용하여 송신기(Tx) 또는 수신기(Rx)로 공급될 클럭 신호를 생성할 수 있다. PLL 회로는 클럭 신호 생성기로부터 수신한 신호를 체배하여 변경된 주파수를 갖는 클럭 신호를 생성할 수 있다. 예컨대, PLL 회로(262)는 100MHz의 주파수를 갖는 기준 클럭 신호(REFCLK)를 2.5GHz의 주파수를 갖는 클럭 신호로 체배할 수 있다. 송신기(Tx)는 PLL 회로의 출력 신호를 이용하여 병렬 데이터 신호를 직렬 데이터 신호로 변환하고, 직렬 데이터 신호를 외부 장치, 예컨대, 외부 PCIe 시스템으로 전송할 수 있다. 수신기(Rx)는 외부 장치로부터 전송된 직렬 데이터 신호를 수신하고, PLL 회로의 출력 신호를 이용하여, 수신된 직렬 데이터 신호를 복원하기 위한 클럭 신호와 복원된 직렬 데이터 신호를 병렬 데이터 신호로 변환하기 위한 클럭 신호를 생성할 수 있다.
클럭 신호 생성기(190)는 PCIe 인터페이스의 동작에 이용되는 기준 클럭 신호(REFCLK)를 생성할 수 있다. 여기서, PCIe 인터페이스의 동작은 외부 장치와 통신일 수 있다. 구체적으로, 클럭 신호 생성기(190)는 PCIe 시스템으로부터 클럭 신호가 공급되는지를 자동으로 검출하고, 검출 결과에 따라 클럭 신호 생성기(190)는 내부 클럭 신호를 생성할 수 있다. 즉, PCIe 시스템으로부터 클럭 신호가 제공되는 경우, 클럭 신호 생성기(190)는 PCIe 시스템으로부터 수신한 클럭 신호를 이용할 수 있다. 그리고, 클럭 신호 생성기(190)는 기준 클럭 신호(REFCLK)를 SKP OS 제어 로직(160) 및 송수신기(180)로 전송할 수 있다.
도 11은 본 발명의 일 실시 예에 따른 SKP OS 제어 로직을 설명하기 위한 도면이다.
도 11을 참조하면, SKP OS 제어 로직은 CPU(161), 레지스터(163) 및 SKP OS 카운터(165)를 포함할 수 있다.
CPU(161)는 SKP OS의 생성 및 제거를 위한 동작을 전반적으로 제어할 수 있다. 예를 들어, CPU(161)는 SKP OS의 전송 간격을 증감하도록 송수신기를 제어할 수 있다. 그리고, CPU(161)는 리커버리 상태 진입 또는 리커버리 상태 진입 요청에 응답하여, SKP OS의 전송 간격을 조절할 수 있다. 그리고, CPU(161)는 전송 간격에 대응하는 리커버리 상태 진입의 빈도를 계산할 수 있다. CPU(161)는 리커버리 상태 진입의 빈도에 기초하여 SKP OS의 전송 간격을 증감시킬 수 있다. CPU(161)는 전송 간격을 기설정된 횟수까지만 증감시킬 수 있으며, 기설정된 시간 동안 리커버리 상태에 진입하지 않으면, 현재 SKP OS 전송 간격을 레지스터(163)에 저장하고, SKP OS 전송 간격을 고정시킬 수 있다.
CPU(161)는 리커버리 상태 진입이 SKP OS의 전송 간격의 증가 또는 감소 때문에 발생하였는지 판단할 수 있다. 구체적으로, PCIe 시스템의 링크 상태는 링크된 타 PCIe 시스템의 요청에 의하여 리커버리 상태로 진입할 수 있다. 구체적으로, 타 PCIe 시스템으로부터 전송된 TS1를 수신하면, PCIe 시스템은 리커버리 상태로 진입할 수 있다. 리커버리 상태에 진입하면, CPU(161)는 리커버리 상태로 진입한 이유를 확인할 수 있다. 구체적으로, CPU(161)는 타 PCIe 시스템으로부터 다음과 같은 순서에 따라 리커버리 상태로 진입한 이유를 확인할 수 있다. 그리고, CPU(161)는 리커버리 상태 진입이 아래의 경우에 해당하지 않는 경우, SKP OS의 전송 간격의 증감 때문에 리커버리 상태로 진입한 것으로 식별할 수 있다.
1. 스피드 체인지 요청(speed change) 요청,
2. 리-이퀄라이제이션(re-equalization) 요청,
3. 레인 감소(reduce) 또는 레인 업컨피규얼(upconfigure) 요청,
4. 핫 리셋(hot reset), 불능(disable) 또는 루프백(loop back) 요청,
5. 리플레이 타임아웃(replay timeout) 또는 리플레이 롤오버(replay rollover)
여기서, 스피드 체인지 요청 요청은 연결된 포트들 중 어느 하나가 스피드 체인지(예컨대, Gen1에서 Gen3으로의 변경 요청)를 요청한 것으로, 연결된 포트들 중 어느 하나는 TS1 또는 TS2의 speed change bit을 1로 셋(set)하여 스피드 체인지를 요청할 수 있다. 리-이퀄라이제이션 요청은 연결된 포트들 중 어느 하나가 EQ 계수를 변경할 것을 요청한 것으로, 연결된 포트들 중 어느 하나는 TS2의 request equalization bit을 1로 셋(set)하여 리-이퀄라이제이션을 요청할 수 있다. 그리고, 레인 감소 또는 레인 업컨피규얼 요청은 연결된 포트들 중 어느 하나가 레인의 폭(lane width)의 증감을 요청하는 것(예컨대, 1Lane에서 4lane으로의 변경 요청 또는 4lane에서 1lane으로의 변경 요청)일 수 있다. 핫 리셋(hot reset), 불능(disable) 또는 루프백(loop back) 요청은 상태 변경 요청으로, TS1 또는 TS2의 hot reset bit, disable bit 또는 loopback bit를 셋(set)하여 상태 변경을 요청할 수 있다. 리플레이 타임아웃(replay timeout) 또는 리플레이 롤오버(replay rollover)는 LCRC 오류가 발생한 경우, NAK(Negative Acknowledge)를 일정 횟수 이상 수신한 포트에서 상태 포트로 리커버리 상태 진입을 요청하는 것일 수 있다.
그리고, 리커버리 상태 진입이 SKP OS의 전송 간격의 증가에 대응되면, CPU(161)는 전송 간격의 증가분의 1/2만큼 전송 간격을 감소시킬 수 있다. 리커버리 상태 진입이 전송 간격의 감소에 대응되면, CPU(161)는 전송 간격의 감소분의 1/2만큼 전송 간격을 증가시킬 수 있다. CPU(161)는 외부 장치의 탄성 버퍼 상태를 기초로 전송 간격을 조절할 수도 있다.
레지스터(163)는 SKP OS의 전송 히스토리를 저장할 수 있다. 구체적으로, 레지스터(163)는 SKP OS의 전송 간격, SKP OS 카운터에서 카운트한 SKP OS의 전송 간격 조절 횟수, 시간별 SKP OS의 전송 간격의 변화, 단위 시간당 리커버리 상태 진입 빈도 등을 포함하는 전송 히스토리를 저장할 수 있다.
SKP OS 카운터(165)는 SKP OS의 전송을 카운트할 수 있다. SKP OS 카운터(165)는 SKP OS의 전송시 CPU(161) 또는 레지스터(163)에 SKP OS가 전송되었다는 정보를 제공할 수 있다. 그리고, SKP OS 카운터(165)가 제공한 정보를 바탕으로 CPU(161)는 SKP OS의 전송 간격을 계산될 수 있다.
도 12는 본 발명의 일 실시 예에 따른 PCIe 시스템의 동작 방법을 설명하기 위한 도면이다.
도 12를 참조하면, 리커버리 요청을 수신한 경우의 동작 방법이 도시되어 있다. PCIe 시스템은 물리적으로 연결된 외부 장치(예컨대, 타 PCIe 시스템)와 링크업 및 L0 상태로 진입할 수 있다(S1210).
그리고, PCIe 시스템은 PCIe Core 또는 PCIe 호스트로부터 리커버리 상태 진입 요청을 수신하면(S1220-Yes), PCIe 시스템은 리커버리 상태 진입 빈도를 계산할 수 있다(S1230). 구체적으로, PCIe 시스템은 단위 시간당 리커버리 상태로의 진입 요청 또는 진입 빈도를 계산할 수 있다. 여기서, 리커버리 상태 진입 요청은 SKP OS 또는 수신측의 탄성 버퍼 상태에 기초한 경우일 수 있다.
그리고, PCIe 시스템은 SKP OS의 전송 히스토리에 기초하여 SKP OS 전송 간격의 증감 여부를 판단할 수 있다(S1240). 여기서, 전송 히스토리는 SKP OS의 전송 간격, 상기 전송 간격의 변화 또는 상기 전송 간격에 대응하는 상기 리커버리 상태 진입 빈도 중 적어도 하나를 포함할 수 있다. PCIe 시스템이 SKP OS 전송 간격을 조절하지 않은 경우(S1240-No), PCIe 시스템은 SKP OS 전송 간격을 감소시킬 수 있다(S1250).
한편, PCIe 시스템이 SKP OS 전송 간격을 조절한 경우(S1240-Yes), PCIe 시스템은 리커버리 상태로의 진입 요청 직전에 SKP OS 전송 간격을 증가시켰는지 판단할 수 있다(S1245). PCIe 시스템이 리커버리 상태로의 진입 요청 직전에 SKP OS 전송 간격을 증가시키지 않은 경우(S1245-No), PCIe 시스템은 SKP OS 전송 간격을 감소시킬 수 있다(S1250).
한편, PCIe 시스템이 리커버리 상태로의 진입 요청 직전에 SKP OS 전송 간격을 증가시킨 경우(S1245-Yes), PCIe 시스템은 SKP OS 전송 간격을 직전 증가분의 1/2만큼 감소시킬 수 있다(S1260). 여기서, SKP OS 전송 간격을 감소시키는 것은 SKP OS를 더 빈번하게 전송하는 것을 의미하므로, 더 많은 양의 SKP OS를 전송하는 것을 의미할 수 있다.
도 13은 본 발명의 일 실시 예에 따른 PCIe 시스템의 동작 방법을 설명하기 위한 도면이다.
도 13을 참조하면, 리커버리 상태로의 진입 요청을 수신하지 않은 경우의 동작 방법이 도시되어 있다. PCIe 시스템은 물리적으로 연결된 외부 장치(예컨대, 타 PCIe 시스템)와 링크업 및 L0 상태로 진입할 수 있다(S1210). 그리고, PCIe 시스템은 PCIe Core 또는 PCIe 호스트로부터 리커버리 상태 진입 요청을 수신하지 않은 경우에도(S1220-No), SKP OS의 전송 간격을 조절할 수 있다.
구체적으로, PCIe 시스템은 기설정된 시간(T)을 초과하는 시간 동안 리커버리 상태로 진입하지 않은 안정 상태로 유지될 수 있다. 여기서, 안정 상태는 L0 상태로, 링크가 활성화된 상태로 외부 장치와 원활하게 통신을 수행하는 상태일 수 있다. 안정 상태가 유지된 안정 시간이 기설정된 시간(T)을 초과하면(S1310-Yes), PCIe 시스템은 SKP OS의 전송 간격의 증감 횟수가 기설정된 횟수와 비교할 수 있다(S1320).
그리고, SKP OS의 전송 간격의 증감 횟수가 기설정된 횟수를 초과하면(S1320-Yes), PCIe 시스템은 SKP OS의 전송 간격의 조절을 중단할 수 있다. 반면에, SKP OS의 전송 간격의 증감 횟수가 기설정된 횟수보다 적으면(S1320-No), PCIe 시스템은 리커버리 상태 진입 요청 직전에 SKP OS 전송 간격을 감소시켰는지 판단할 수 있다(S1330).
SKP OS 전송 간격을 감소시키지 않은 경우(S1330-No), PCIe 시스템은 통신 효율을 증가시키기 위하여 SKP OS 전송 간격을 증가시킬 수 있다(S1340). 그리고, SKP OS 전송 간격을 감소시킨 경우(S1330-Yes), PCIe 시스템은 통신 효율을 증가시키기 위하여 리커버리 상태 진입 요청 직전의 감소분의 1/2만큼 SKP OS 전송 간격을 증가시킬 수 있다(S1350). 여기서, SKP OS 전송 간격을 증가시키는 것은 SKP OS를 더 드물게 전송하는 것을 의미하므로, 더 적은 양의 SKP OS를 전송하는 것을 의미할 수 있다.
본 명세서에서는 PCIe를 이용한 프로토콜에 대하여 구체적으로 설명하였으나, 본 발명은 SKP OS에 대응되는 더미 데이터를 이용하는 PCIe 이외의 프로토콜에도 적용될 수 있다. 즉, 본 발명은 탄성 버퍼의 언더플로우 또는 오버플로우를 방지하기 위하여 더미 데이터 또는 유휴 데이터를 조절하는 PCIe 이외의 프로토콜에도 변형 실시될 수 있음은 당연하다.
1000: 제1 PCIe 시스템
100: 제1 PCIe 인터페이스
140: 피지컬 레이어
160: SKP OS 제어 로직

Claims (20)

  1. 외부 장치와 복수의 레인을 포함하는 링크를 통해 연결되는 PCIe 인터페이스에 있어서,
    송수신기; 및
    SKP OS를 생성하고, 상기 SKP OS 및 데이터 블록을 상기 링크로 전송하도록 송수신기를 제어하는 SKP OS 제어 로직;을 포함하되,
    상기 SKP OS 제어 로직은,
    상기 링크의 리커버리 상태 진입에 응답하여, 상기 SKP OS의 전송 간격의 변화를 포함하는 전송 히스토리에 기초하여 상기 SKP OS의 전송 간격을 증감시키는 PCIe 인터페이스.
  2. 제1항에 있어서,
    상기 SKP OS 제어 로직은,
    상기 SKP OS의 전송 간격을 증감하도록 상기 송수신기를 제어하는 CPU;
    상기 전송 히스토리를 저장하는 레지스터; 및
    상기 SKP OS의 전송 간격을 카운트하는 SKP OS 카운터;를 포함하는 PCIe 인터페이스.
  3. 제1항에 있어서,
    상기 전송 히스토리는,
    상기 SKP OS의 전송 간격 또는 상기 전송 간격에 대응하는 상기 리커버리 상태 진입 빈도 중 적어도 하나를 더 포함하는 PCIe 인터페이스.
  4. 제1항에 있어서,
    상기 SKP OS 제어 로직은,
    상기 전송 간격에 대응하는 상기 리커버리 상태 진입의 빈도를 계산하고, 상기 리커버리 상태 진입의 빈도에 기초하여 상기 SKP OS의 전송 간격을 증감시키는 PCIe 인터페이스.
  5. 제1항에 있어서,
    상기 SKP OS 제어 로직은,
    상기 전송 간격을 기설정된 횟수까지만 증감시키는 PCIe 인터페이스.
  6. 제5항에 있어서,
    상기 SKP OS 제어 로직은,
    기설정된 시간 동안 상기 리커버리 상태 진입에 대한 요청을 수신하지 않으면, 상기 전송 간격을 고정시키는 PCIe 인터페이스.
  7. 제1항에 있어서,
    상기 SKP OS 제어 로직은,
    상기 리커버리 상태 진입이 상기 전송 간격의 증가에 대응되면, 상기 전송 간격의 증가분의 1/2만큼 상기 전송 간격을 감소시키는 PCIe 인터페이스.
  8. 제1항에 있어서,
    상기 SKP OS 제어 로직은,
    상기 리커버리 상태 진입이 상기 전송 간격의 감소에 대응되면, 상기 전송 간격의 감소분의 1/2만큼 상기 전송 간격을 증가시키는 PCIe 인터페이스.
  9. 제1항에 있어서,
    상기 SKP OS 제어 로직은,
    상기 외부 장치의 탄성 버퍼의 상태에 기초하여 상기 SKP OS의 전송 간격을 증감시키는PCIe 인터페이스.
  10. 제1항에 있어서,
    상기 SKP OS는,
    PCIe 기반 프로토콜에 따른 포맷을 포함하는 PCIe 인터페이스.
  11. 제1 PCIe 인터페이스; 및 상기 제1 PCIe 인터페이스와 복수의 레인을 포함하는 링크를 통해 연결되는 제2 PCIe 인터페이스;를 포함하는 인터페이스 시스템에 있어서,
    상기 제1 PCIe 인터페이스는,
    SKP OS를 생성하고, 상기 SKP OS 및 데이터 블록을 상기 링크로 전송하되, 상기 링크의 연결 상태가 리커버리 상태로 진입하면, 상기 제2 PCIe 인터페이스의 탄성 버퍼의 상태 및 상기 SKP OS의 전송 간격의 변화를 포함하는 전송 히스토리에 기초하여 상기 SKP OS의 전송 간격을 증감시키는 인터페이스 시스템.
  12. 제11항에 있어서,
    상기 탄성 버퍼는,
    상기 제1 PCIe 인터페이스로부터 수신한 상기 SKP OS를 임시 저장하는 인터페이스 시스템.
  13. 제11항에 있어서,
    상기 탄성 버퍼의 상태는,
    상기 탄성 버퍼의 용적이 최대가 되는 오버플로우 상태, 상기 탄성 버퍼의 용적이 최소가 되는 언더플로우 상태 및 기설정된 시간이상 오류가 발생하지 않는 노멀 상태를 포함하는 인터페이스 시스템.
  14. 제13항에 있어서,
    상기 탄성 버퍼는,
    상기 오버플로우 상태를 방지하기 위해 상기 SKP OS를 제거하는 인터페이스 시스템.
  15. 제13항에 있어서,
    상기 탄성 버퍼는,
    상기 언더플로우 상태를 방지하기 위해 상기 SKP OS를 추가하는 인터페이스 시스템.
  16. 제13항에 있어서,
    상기 제1 PCIe 인터페이스는,
    상기 리커버리 상태 진입에 응답하여, 상기 탄성 버퍼가 상기 오버플로우 상태 또는 상기언더플로우 상태이면, 상기 SKP OS의 전송 간격을 감소시키는 인터페이스 시스템.
  17. 제13항에 있어서,
    상기 제1 PCIe 인터페이스는,
    상기 리커버리 상태 진입 이후, 상기 탄성 버퍼가 상기 노멀 상태이면 상기 SKP OS의 전송 간격을 증가시키는 인터페이스 시스템.
  18. 삭제
  19. 제11항에 있어서,
    상기 전송 히스토리는,
    상기 SKP OS의 전송 간격 또는 상기 전송 간격에 대응하는 상기 리커버리 상태 진입 빈도 중 적어도 하나를 더 포함하는 인터페이스 시스템.
  20. 제11항에 있어서,
    상기 SKP OS는,
    PCIe 기반 프로토콜에 따른 포맷을 포함하는 인터페이스 시스템.
KR1020210044151A 2020-06-16 2021-04-05 PCIe 인터페이스 및 인터페이스 시스템 KR102518285B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020210044151A KR102518285B1 (ko) 2021-04-05 2021-04-05 PCIe 인터페이스 및 인터페이스 시스템
US17/349,775 US11546128B2 (en) 2020-06-16 2021-06-16 Device and computing system including the device
US17/350,885 US11782792B2 (en) 2021-04-05 2021-06-17 PCIe interface and interface system
CN202111220170.7A CN115203109A (zh) 2021-04-05 2021-10-20 PCIe接口和接口系统
TW110144997A TW202241110A (zh) 2021-04-05 2021-12-02 PCIe介面和介面系統
US17/840,340 US20220311590A1 (en) 2020-06-16 2022-06-14 Device and computing system including the device
US18/350,220 US20230353341A1 (en) 2020-06-16 2023-07-11 Device and computing system including the device

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
KR20220138245A KR20220138245A (ko) 2022-10-12
KR102518285B1 true KR102518285B1 (ko) 2023-04-06

Family

ID=83449778

Family Applications (1)

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

Country Status (4)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829276B1 (en) * 2022-02-23 2023-11-28 Cadence Design Systems, Inc. System and method for monitoring compliance patterns

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200364129A1 (en) * 2020-04-07 2020-11-19 Intel Corporation Characterizing error correlation based on error logging for computer buses

Family Cites Families (57)

* 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
JP5138050B2 (ja) 2008-02-20 2013-02-06 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 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
JP6339198B2 (ja) 2013-12-26 2018-06-06 インテル・コーポレーション インターコネクトリタイマのエンハンスメント
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
WO2017052665A1 (en) 2015-09-26 2017-03-30 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 ルネサスエレクトロニクス株式会社 半導体装置
KR20180092125A (ko) 2017-02-08 2018-08-17 에스케이하이닉스 주식회사 반도체 장치
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
US20200249275A1 (en) 2019-01-31 2020-08-06 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
US11397701B2 (en) 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
CN113765363A (zh) 2020-06-01 2021-12-07 株式会社村田制作所 频率调制的dc-dc转换器的降emi方法及其装置
KR102415309B1 (ko) 2020-06-16 2022-07-01 에스케이하이닉스 주식회사 인터페이스 장치 및 그 동작 방법
US11546128B2 (en) 2020-06-16 2023-01-03 SK Hynix Inc. Device and computing system including the device
US20210050941A1 (en) 2020-07-06 2021-02-18 Intel Corporation Characterizing and margining multi-voltage signal encoding for interconnects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200364129A1 (en) * 2020-04-07 2020-11-19 Intel Corporation Characterizing error correlation based on error logging for computer buses

Also Published As

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

Similar Documents

Publication Publication Date Title
US10552358B2 (en) Interface for bridging out-of-band information from a downstream communication link to an upstream communication link
KR101419292B1 (ko) 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법
US7631118B2 (en) Lane to lane deskewing via non-data symbol processing for a serial point to point link
US7444558B2 (en) Programmable measurement mode for a serial point to point link
US20210391973A1 (en) Device and computing system including the device
US20090106476A1 (en) Association of multiple pci express links with a single pci express port
US8463962B2 (en) MAC and PHY interface arrangement
US11467909B1 (en) Peripheral component interconnect express interface device and operating method thereof
WO2005066827A2 (en) Buffer management via non-data symbol processing for a point to point link
EP1700224B1 (en) Receiver corporation
KR102518285B1 (ko) PCIe 인터페이스 및 인터페이스 시스템
JP5545146B2 (ja) シリアル通信システム
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
US20230315672A1 (en) Interface device and computing system including the same
RU187642U1 (ru) Устройство коммуникационного интерфейса gigaspacewire
RU2700560C1 (ru) Устройство коммуникационного интерфейса gigaspacewire
CN116893996A (zh) PCIe装置和包括PCIe装置的计算系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right