KR102108380B1 - 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로 - Google Patents

송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로 Download PDF

Info

Publication number
KR102108380B1
KR102108380B1 KR1020140012733A KR20140012733A KR102108380B1 KR 102108380 B1 KR102108380 B1 KR 102108380B1 KR 1020140012733 A KR1020140012733 A KR 1020140012733A KR 20140012733 A KR20140012733 A KR 20140012733A KR 102108380 B1 KR102108380 B1 KR 102108380B1
Authority
KR
South Korea
Prior art keywords
data
transmission data
interface circuit
recovery
transmission
Prior art date
Application number
KR1020140012733A
Other languages
English (en)
Other versions
KR20150091915A (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 KR1020140012733A priority Critical patent/KR102108380B1/ko
Priority to US14/593,585 priority patent/US9515675B2/en
Publication of KR20150091915A publication Critical patent/KR20150091915A/ko
Application granted granted Critical
Publication of KR102108380B1 publication Critical patent/KR102108380B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • 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/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Communication Control (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)

Abstract

본 발명은 통신 규약에 따라 데이터를 송수신하기 위한 인터페이스 회로를 제공한다. 본 발명의 인터페이스 회로는 입력 데이터를 인코딩하여 송신 데이터를 생성하기 위한 인코딩 유닛, 송신 데이터를 출력하기 위한 송신단, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출하는 데이터 시퀀스 검출 유닛, 및 데이터 시퀀스 검출 유닛의 검출 결과에 기초하여 복구 작동을 제어하기 위한 복구부를 포함할 수 있다. 본 발명의 실시 예에 따르면, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우에 발생하는 오류가 방지될 수 있다. 본 발명의 실시 예에 따르면, 데이터 손실이 방지될 수 있고, 데이터의 신뢰성이 보장될 수 있다.

Description

송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로{INTERFACE CIRCUIT OPERATING TO RECOVER TRANSMITTED DATA ERROR}
본 발명은 인터페이스(Interface) 기술에 관한 것으로, 좀 더 구체적으로는 통신 규약에 따라 데이터를 송수신하기 위한 인터페이스 회로에 관한 것이다.
인터페이스 기술은 서로 다른 전자 장치 사이에서 데이터 신호를 주고 받기 위해 사용된다. 근래, 전자 장치의 성능이 향상되면서, 큰 대역폭(Bandwidth)을 갖는 인터페이스 기술의 필요성이 높아지고 있다. 특히, 피씨아이 익스프레스(PCI Express, 이하 PCIe) 규약(Protocol)에 기초를 둔 인터페이스 기술은 고속 직렬(Serial) 인터페이스 기술로서 널리 사용되고 있다.
1세대(First Generation) 및 2세대(Second Generation) PCIe 규약에서, 8b/10b 인코딩(Encoding) 방법이 사용된다. 8b/10b 인코딩 방법에 따르면, 8비트의 데이터에 2비트의 비트열을 부가함으로써, 총 10비트의 길이를 갖는 데이터가 생성된다. 생성된 데이터는 PCIe 규약에 따라 직렬로 전송된다. 이때, 2비트의 비트열은 직렬로 전송되는 데이터에 포함되는 논리 '0' 값과 논리 '1' 값의 개수를 같게 만들기 위해 부가된다. 그런데, 부가된 2비트의 비트열은 직렬로 전송되는 데이터의 길이(즉, 10비트) 중 20퍼센트를 차지한다. 따라서, 8b/10b 인코딩 방법이 사용되는 경우, 대역폭의 사용 효율이 떨어지는 문제가 있다.
3세대(Third Generation) PCIe 규약에서, 128b/130b 인코딩 방법이 사용된다. 128b/130b 인코딩 방법에 따르면, 정보 데이터는 128비트의 길이를 갖는다. 그리고, 128비트의 정보 데이터가 일반 데이터인지 제어 데이터인지 여부를 나타내는 2비트의 싱크 헤더(Sync Header) 데이터가 128비트의 정보 데이터에 부가된다. 128b/130b 인코딩 방법에 따르면, 정보 데이터의 길이(즉, 128비트)가 싱크 헤더 데이터의 길이(즉, 2비트)에 비해 훨씬 길다. 따라서, 128b/130b 인코딩 방법이 사용되는 경우, 대역폭 사용의 효율이 향상된다.
PCIe 규약에 따르면, 데이터 수신단에 CDR(Clock and Data Recovery) 회로가 포함된다. CDR 회로는 입력되는 데이터에서 데이터 송신단의 클록(Clock) 정보를 추출한다. 그리고, CDR 회로는 추출된 클록 정보에 기초하여, 입력되는 데이터를 샘플링(Sampling)함으로써 원래의 데이터를 복원한다. 8b/10b 인코딩 방법에 따르면, CDR 회로로 입력되는 데이터의 데이터 열은 같은 수의 논리 '0' 값과 논리 '1' 값을 포함한다. 따라서, 8b/10b 인코딩 방법에 따르면, CDR 회로로 입력되는 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이(Transition)한다.
그러나, 128b/130b 인코딩 방법에 따르면, CDR 회로로 입력되는 데이터의 데이터 열의 논리 값은 충분히 전이하지 않을 수 있다. 128b/130b 인코딩 방법에 따르면, 최악의 경우, CDR 회로로 입력되는 데이터의 데이터 열은 129개의 연속되는 논리 '0' 값 또는 논리 '1' 값을 포함할 수 있다. 이때, CDR 회로는 데이터 송신단의 클록 정보를 추출하지 못하고, 따라서, 원래의 데이터를 복원하지 못한다.
송신 데이터의 데이터 열 중 같은 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우 복구 작동을 수행하는 인터페이스 회로가 제공된다. 특히, 본 발명의 실시 예에 따라 입력 데이터가 인코딩되면, 기준 연속 횟수 이상으로 연속되는 논리 값을 포함하지 않는 데이터 열을 갖는 변경된 송신 데이터가 생성될 수 있다.
본 발명의 실시 예의 통신 규약에 따라 데이터를 송수신하기 위한 인터페이스 회로는 입력 데이터를 인코딩하여 송신 데이터를 생성하기 위한 인코딩 유닛; 송신 데이터를 출력하기 위한 송신단; 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출하는 데이터 시퀀스 검출 유닛; 및 데이터 시퀀스 검출 유닛의 검출 결과에 기초하여 복구 작동을 제어하기 위한 복구부를 포함할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구부의 제어에 따라, 인코딩 유닛은 송신 데이터를 생성할 때 이용된 것과 다른 방법으로 입력 데이터를 인코딩하여 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 송신단은 변경된 송신 데이터를 출력할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로는, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구부의 제어에 따라 복구 상태로 진입할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구부의 제어에 따라 임의의 하나 이상의 비트가 입력 데이터의 데이터 열의 임의의 위치에 삽입되고, 인코딩 유닛은 입력 데이터와 삽입된 임의의 하나 이상의 비트를 함께 인코딩하여 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 송신단은 변경된 송신 데이터를 출력할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로에서, 인코딩 유닛 및 송신단 각각은 복수이고, 복수의 인코딩 유닛 각각과 복수의 송신단 각각은 일대일로 연결될 수 있다. 이 실시 예에서, 복수의 인코딩 유닛에 포함되는 제 1 인코딩 유닛은 입력 데이터를 인코딩하여 제 1 송신 데이터를 생성할 수 있다. 나아가, 제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구부의 제어에 따라, 복수의 인코딩 유닛에 포함되는 제 2 인코딩 유닛은 입력 데이터를 인코딩하여 제 1 송신 데이터와 다른 데이터 열을 갖는 제 2 송신 데이터를 생성하고, 제 2 인코딩 유닛과 연결된 송신단은 제 2 송신 데이터를 출력할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로는 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부를 검출하는 복구 횟수 검출 유닛을 더 포함할 수 있다. 이 실시 예에서, 복구부는 데이터 시퀀스 검출 유닛 및 복구 횟수 검출 유닛의 검출 결과에 기초하여 복구 작동을 제어할 수 있다.
본 발명의 실시 예의 피씨아이 익스프레스 규약에 따라 데이터를 송수신하기 위한 인터페이스 회로는 피씨아이 익스프레스 규약의 인코딩 방법으로 입력 데이터를 인코딩하여 송신 데이터를 생성하기 위한 레인 인코더; 송신 데이터를 출력하기 위한 송신단; 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출하는 데이터 시퀀스 검출 유닛; 및 데이터 시퀀스 검출 유닛의 검출 결과에 기초하여 복구 작동을 제어하기 위한 LTSSM(Link Training and Status State Machine)을 포함할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, LTSSM의 제어에 따라, 레인 인코더는 2세대 또는 1세대 피씨아이 익스프레스 규약의 인코딩 방법으로 입력 데이터를 인코딩하여 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 송신단은 변경된 송신 데이터를 출력할 수 있다. 이 실시 예에서, 변경된 송신 데이터의 출력 후, 레인 인코더는 3세대 피씨아이 익스프레스 규약에 따라 작동할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로는 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우 LTSSM의 제어에 따라 복구 상태로 진입할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, LTSSM의 제어에 따라 임의의 하나 이상의 비트가 입력 데이터의 데이터 열의 임의의 위치에 삽입되고, 레인 인코더는 입력 데이터와 삽입된 임의의 하나 이상의 비트를 함께 인코딩하여 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 송신단은 변경된 송신 데이터를 출력할 수 있다. 이 실시 예에서, 임의의 하나 이상의 비트는 IDL 심볼(Symbol) 및 DLLP(Data Link Layer Packet) 중 적어도 하나에 대응하는 비트 열이고, 입력 데이터의 데이터 열의 첫 비트의 앞에 삽입될 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로에서, 레인 인코더 및 송신단 각각은 복수이고, 복수의 레인 인코더 각각과 복수의 송신단 각각은 일대일로 연결될 수 있다. 이 실시 예에서, 복수의 레인 인코더에 포함되는 제 1 레인 인코더는 입력 데이터를 인코딩하여 제 1 송신 데이터를 생성할 수 있다. 나아가, 제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, LTSSM의 제어에 따라, 복수의 레인 인코더에 포함되는 제 2 레인 인코더는 입력 데이터를 인코딩하여 제 1 송신 데이터와 다른 데이터 열을 갖는 제 2 송신 데이터를 생성하고, 제 2 레인 인코더와 연결된 송신단은 제 2 송신 데이터를 출력할 수 있다.
본 발명의 실시 예에 따른 인터페이스 회로는 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부를 검출하는 복구 횟수 검출 유닛을 더 포함할 수 있다. 이 실시 예에서, LTSSM은 데이터 시퀀스 검출 유닛 및 복구 횟수 검출 유닛의 검출 결과에 기초하여 복구 작동을 제어할 수 있다.
본 발명의 실시 예에 따르면, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우에 발생하는 오류가 방지될 수 있다. 본 발명의 실시 예에 따르면, 데이터 손실이 방지될 수 있고, 데이터의 신뢰성이 보장될 수 있다.
도 1 내지 도 3은 인터페이스 회로의 작동을 설명하기 위한 블록도 및 개념도이다.
도 4는 본 발명의 실시 예에 따른 인터페이스 회로가 가질 수 있는 구성을 나타낸 블록도이다.
도 5는 본 발명의 실시 예에 따른 인터페이스 회로의 작동을 설명하는 흐름도이다.
도 6은 본 발명의 실시 예에 따른 인터페이스 회로의 작동을 더 자세히 설명하는 흐름도이다.
도 7은 본 발명의 실시 예에 따른 인터페이스 회로의 다른 작동을 설명하기 위한 개념도이다.
도 8은 본 발명의 실시 예에 따른 인터페이스 회로의 또 다른 작동을 설명하기 위한 개념도이다.
도 9는 본 발명의 실시 예에 따른 인터페이스 회로가 가질 수 있는 다른 구성을 나타낸 블록도이다.
도 10은 본 발명의 실시 예에 따른 인터페이스 회로의 또 다른 작동을 설명하는 흐름도이다.
도 11은 본 발명의 실시 예에 따른 인터페이스 회로가 가질 수 있는 또 다른 구성을 나타낸 블록도이다.
도 12는 본 발명의 실시 예에 따른 인터페이스 회로의 또 다른 작동을 설명하는 흐름도이다.
도 13은 본 발명의 실시 예가 적용된 인터페이스 회로의 작동을 설명하기 위한 블록도이다.
도 14는 본 발명의 실시 예에 따른 두 인터페이스 회로가 데이터를 주고 받는 과정을 설명하기 위한 블록도이다.
도 15는 본 발명의 실시 예에 따른 인터페이스 회로를 포함하는 스토리지가 가질 수 있는 구성을 나타낸 블록도이다.
도 16은 본 발명의 실시 예가 적용된 스토리지를 포함하는 컴퓨팅 시스템이 가질 수 있는 구성을 나타낸 블록도이다.
전술한 특성 및 이하 상세한 설명은 모두 본 발명의 설명 및 이해를 돕기 위한 예시적인 사항이다. 즉, 본 발명은 이와 같은 실시 예에 한정되지 않고 다른 형태로 구체화될 수 있다. 다음 실시 형태들은 단지 본 발명을 완전히 개시하기 위한 예시이며, 본 발명이 속하는 기술 분야의 통상의 기술자들에게 본 발명을 전달하기 위한 설명이다. 따라서, 본 발명의 구성 요소들을 구현하기 위한 방법이 여럿 있는 경우에는, 이들 방법 중 특정한 것 또는 이와 동일성 있는 것 가운데 어떠한 것으로든 본 발명의 구현이 가능함을 분명히 할 필요가 있다.
본 명세서에서 어떤 구성이 특정 요소들을 포함한다는 언급이 있는 경우, 또는 어떤 과정이 특정 단계들을 포함한다는 언급이 있는 경우는, 그 외 다른 요소 또는 다른 단계들이 더 포함될 수 있음을 의미한다. 즉, 본 명세서에서 사용되는 용어들은 특정 실시 형태를 설명하기 위한 것일 뿐이고, 본 발명의 개념을 한정하기 위한 것이 아니다. 나아가, 발명의 이해를 돕기 위해 설명한 예시들은 그것의 상보적인 실시 예도 포함한다.
본 명세서에서 사용되는 용어들은 본 발명이 속하는 기술 분야의 통상의 기술자들이 일반적으로 이해하는 의미를 갖는다. 보편적으로 사용되는 용어들은 본 명세서의 맥락에 따라 일관적인 의미로 해석되어야 한다. 또한, 본 명세서에서 사용되는 용어들은, 그 의미가 명확히 정의된 경우가 아니라면, 지나치게 이상적이거나 형식적인 의미로 해석되지 않아야 한다. 이하 첨부된 도면을 통하여 본 발명의 실시 예가 설명된다.
도 1 내지 도 3은 인터페이스(Interface) 회로의 작동을 설명하기 위한 블록도 및 개념도이다.
도 1은 인터페이스 회로(10)가 가질 수 있는 구성을 나타낸다. 특히, 도 1의 인터페이스 회로(10)는 피씨아이 익스프레스(PCI Express, 이하 PCIe) 규약에 따라 작동한다. 인터페이스 회로(10)는 송신부(20), 수신부(30), 및 LTSSM(Link Training and Status State Machine, 40)을 포함할 수 있다. 즉, 인터페이스 회로(10)는 PCIe 규약에 의해 정의되는 물리 계층(Physical Layer)의 기능을 수행한다.
송신부(20)로 제공된 데이터는 스트리퍼(Stripper, 22)에 의해 N개의 레인(Lane) 각각으로 전송될 데이터들로 분할된다. N개의 오더 셋(Order Set) 생성기(24_1 내지 24_N) 각각은 N개의 레인 각각을 통해 전송되는 오더 셋을 생성한다. 오더 셋은 특정 기능의 수행을 위해 PCIe 규약의 스펙(Specification)에 따라 설정된 패턴의 비트 열(String)로 형성되는 신호이다. N개의 레인 인코더(26_1 내지 26_N) 각각은 N개의 레인 각각을 통해 전송된 데이터를 인코딩(Encoding)한다. N개의 레인 인코더(26_1 내지 26_N) 각각의 구성은 도 2에 대한 설명과 함께 언급된다.
도 2는 제 1 레인 인코더(26_1)가 가질 수 있는 구성을 나타낸다. 먼저, 128비트의 길이를 갖는 정보 데이터가 3세대 스크램블러(Third Generation Scrambler, 26_11)로 제공된다. 3세대 스크램블러(26_11)는 (223-1)비트의 길이를 갖는 비트 열을 저장하는 LFSR(Linear Feedback Shift Registers)을 포함한다. 3세대 스크램블러(26_11)는 128비트의 정보 데이터와 LFSR에 저장된 (223-1)비트의 비트 열 중 일부분을 이용하여 PCIe 규약의 스펙에 따라 설정된 논리 연산을 수행한다. LFSR에 저장된 비트 열을 형성하는 각 비트는 첫 번째 자리의 것부터 차례대로 논리 연산에 이용된다. 3세대 스크램블러(26_11)는 논리 연산의 결과로써 128비트의 길이를 갖는 스크램블 데이터를 출력한다.
싱크 헤더(Sync Header) 생성기(26_13)는 2비트의 길이를 갖는 싱크 헤더 데이터를 출력한다. 싱크 헤더 데이터는 3세대 스크램블러(26_11)로 입력된 128비트의 정보 데이터가 일반 데이터인지 제어 데이터인지 여부를 나타낸다. 결합기(26_15)는 싱크 헤더 생성기(26_13)에서 출력된 2비트의 싱크 헤더 데이터와 3세대 스크램블러(26_11)에서 출력된 128비트의 스크램블 데이터를 결합한다. 결합기(26_15)에 의해 생성된 130비트의 길이를 갖는 인코딩된 데이터는 제 1 레인 인코더(26_1)에서 출력된다.
다른 레인 인코더(26_2 내지 26_N) 각각은 제 1 레인 인코더(26_1)와 같은 구성 및 기능을 갖는다. 다만, N개의 레인 인코더(26_1 내지 26_N)의 3세대 스크램블러 각각에 포함되는 LFSR은 서로 다른 비트 열을 저장한다. 따라서, N개의 레인 인코더(26_1 내지 26_N) 각각으로 동일한 정보 데이터가 제공되더라도, N개의 레인 인코더(26_1 내지 26_N) 각각은 서로 다른 인코딩된 데이터를 출력한다.
다시 도 1을 참조하면, N개의 레인 인코더(26_1 내지 26_N) 각각에서 출력된 인코딩된 데이터는 N개의 시리얼라이저(Serializer, 28_1 내지 28_N) 각각으로 제공된다. N개의 시리얼라이저(28_1 내지 28_N) 각각은 제공받은 데이터의 데이터 열을 직렬화하여 직렬화된 데이터를 출력한다. N개의 송신단(29_1 내지 29_N) 각각은 N개의 시리얼라이저(28_1 내지 28_N) 각각으로부터 제공받은 직렬화된 데이터를 출력한다. N개의 송신단(29_1 내지 29_N)에서 출력된 데이터는 다른 인터페이스 회로의 수신단(미도시)으로 송신된다.
수신부(30)의 N개의 수신단(32_1 내지 32_N)은 다른 인터페이스 회로의 송신단(미도시)에서 송신된 데이터를 수신한다. N개의 수신단(32_1 내지 32_N) 각각은 수신된 데이터를 N개의 CDR(Clock and Data Recovery) 회로(33_1 내지 33_N) 각각으로 제공한다. N개의 CDR 회로(33_1 내지 33_N) 각각은 제공받은 데이터에서 다른 인터페이스 회로의 송신단의 클록(Clock) 정보를 추출한다. 그리고, N개의 CDR 회로(33_1 내지 33_N) 각각은 추출된 클록 정보에 기초하여, 제공받은 데이터를 샘플링(Sampling)함으로써 원래의 데이터를 복원한다. N개의 레인 디코더(34_1 내지 34_N) 각각은 N개의 CDR 회로(33_1 내지 33_N) 각각에 의해 복원된 데이터를 디코딩(Decoding)한다.
N개의 오더 셋 검출기(35_1 내지 35_N) 각각은 디코딩된 데이터의 데이터 열에 오더 셋에 대응하는 비트 열이 포함되어 있는지 여부를 검출한다. 언스트리퍼(Unstripper, 37)는 N개의 레인 각각을 통해 수신된 데이터를 결합하여 의미있는 데이터를 생성한다. 배열 검사기(38)는 언스트리퍼(37)에 의해 생성된 데이터에 배열(Alignment) 오류가 있는지 여부를 검사한다. 언스트리퍼(37)에 의해 생성된 데이터에 배열 오류가 있는 경우, LTSSM(40)은 복구 작동이 수행되도록 인터페이스 회로(10)를 제어한다. 특히, LTSSM(40)은 다른 인터페이스 회로의 송신단으로부터 수신한 오더 셋에 따라 인터페이스 회로(10)를 제어할 수 있다. 나아가, LTSSM(40)은 다른 인터페이스 회로의 수신단으로 오더 셋이 송신되도록 N개의 오더 셋 생성기(24_1 내지 24_N)를 제어할 수 있다.
3세대 PCIe 규약의 128b/130b 인코딩 방법에 따르면, N개의 CDR 회로(33_1 내지 33_N) 중 적어도 하나로 제공된 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이(Transition)하지 않을 수 있다. 최악의 경우, N개의 CDR 회로(33_1 내지 33_N) 중 적어도 하나로 제공된 데이터의 데이터 열은 129개의 연속되는 논리 '0' 값 또는 논리 '1' 값을 포함할 수 있다. 예컨대, 큰 용량을 갖는 데이터가 존재하는 환경에서, 3세대 스크램블러(26_11)는 충분히 전이하지 않는 데이터 열을 우연히 생성할 수 있다. 또는, 3세대 스크램블러(26_11)에 포함되는 LFSR에 저장된 비트 열의 값을 아는 악의적 공격자에 의해 충분히 전이하지 않는 데이터 열이 의도적으로 생성될 수 있다.
충분히 전이하지 않는 데이터 열이 N개의 CDR 회로(33_1 내지 33_N)로 제공되면, N개의 CDR 회로(33_1 내지 33_N)는 다른 인터페이스 회로의 송신단의 클록 정보를 추출하지 못한다. 결국, N개의 CDR 회로(33_1 내지 33_N)는 원래의 데이터를 복원하지 못한다. N개의 CDR 회로(33_1 내지 33_N)가 원래의 데이터를 복원하지 못하면, 배열 검사기(38)는 언스트리퍼(37)에 의해 생성된 데이터에 배열 오류가 있는 것으로 판단한다. 배열 검사기(38)의 판단 결과에 따라, LTSSM(40)은 복구 작동이 수행되도록 인터페이스 회로(10)를 제어한다. LTSSM(40)의 제어에 따라 수행되는 복구 작동의 내용이 도 3에 대한 설명과 함께 언급된다.
도 3은 언스트리퍼(37)에 의해 생성된 데이터에 배열 오류가 있는 경우 수행되는 복구 작동을 설명하기 위한 개념도이다. 인터페이스 회로 A와 인터페이스 회로 B는 일반 상태(L0)에서 3세대 PCIe 규약에 따라 데이터를 주고 받는다. 인터페이스 회로 A의 N개의 레인 인코더(26_1 내지 26_N) 중 적어도 하나에 의해 충분히 전이하지 않는 데이터 열이 생성된 것으로 가정한다. 이 경우, 인터페이스 회로 B의 N개의 CDR 회로(33_1 내지 33_N) 중 충분히 전이하지 않는 데이터 열을 제공받은 CDR 회로는 원래의 데이터를 복원하지 못한다. 결국, 인터페이스 회로 B의 언스트리퍼(37)에 의해 생성된 데이터에 배열 오류가 발생한다.
인터페이스 회로 B의 LTSSM(40)은 복구 상태(RECOVERY)로 진입하도록 인터페이스 회로 B를 제어한다. 인터페이스 회로 B의 LTSSM(40)은 'EIEOS' 오더 셋을 인터페이스 회로 A로 송신한다. 'EIEOS' 오더 셋에 의해, 인터페이스 회로 A의 LFSR에 저장된 비트 열 중 논리 연산에 이용되는 부분의 위치가 초기화된다. 초기화에 의해, LFSR에 저장된 비트 열을 형성하는 각 비트는 다시 첫 번째 자리의 것부터 차례대로 논리 연산에 이용된다. 이후, 인터페이스 회로 A와 인터페이스 회로 B는 'TS1' 및 'TS2' 오더 셋을 주고 받으며 복구 작동을 수행한다. 인터페이스 회로 A와 인터페이스 회로 B는 대기 상태(IDLE)에 진입하여 'SDS' 오더 셋 및 'IDL' 오더 셋을 주고 받는다. 그리고, 인터페이스 회로 A와 인터페이스 회로 B는 다시 일반 상태(L0)로 진입하여 데이터를 주고 받는다.
인터페이스 회로 A와 인터페이스 회로 B가 다시 일반 상태(L0)로 진입하면, 이전의 배열 오류의 기초가 된 데이터가 다시 인터페이스 회로 A의 N개의 레인 인코더(26_1 내지 26_N)로 제공된다. 그런데, 위에 언급된 바와 같이, 'EIEOS' 오더 셋에 의해, 인터페이스 회로 A의 LFSR에 저장된 비트 열 중 논리 연산에 이용되는 부분의 위치가 초기화되었다. 따라서, 인터페이스 회로 A의 3세대 스크램블러(26_11)에 의한 논리 연산은 이전의 배열 오류의 기초가 된 데이터와 LFSR에 저장된 비트 열을 형성하는 다른 비트들에 대해 수행된다. 결과적으로, N개의 레인 인코더(26_1 내지 26_N)는 이전의 배열 오류의 원인인 인코딩된 데이터와 다른 데이터 열을 갖는 데이터를 출력할 수 있다.
다시 진입된 일반 상태(L0)에서 새로 출력된 데이터의 데이터 열은 클록 정보 추출에 필요한 만큼 충분히 전이하는 논리 값을 포함할 가능성이 크다. 즉, 출력된 데이터 열이 인터페이스 회로 B로 송신되면, 인터페이스 회로 B의 N개의 CDR 회로(33_1 내지 33_N)는 원래의 데이터를 올바르게 복원할 가능성이 크다. 이상의 처리에 따라, 충분히 전이하지 않는 데이터 열의 생성에 의해 발생하는 오류가 복구될 수 있다. 이상의 처리는 3세대 PCIe 규약에 기초하여 수행될 수 있다.
그런데, 인터페이스 회로 A의 LFSR에 저장된 비트 열 중 첫 번째 자리의 비트를 포함하는 비트 열이 배열 오류의 기초가 될 수 있다. 이 경우, 인터페이스 회로 A가 복구 상태(RECOVERY)로 진입 후 'EIEOS' 오더 셋을 수신하면, LFSR에 저장된 비트 열 중 첫 번째 자리의 비트를 포함하는 비트 열이 다시 논리 연산에 이용된다. 결국, 다시 오류가 발생하고 인터페이스 회로 A가 복구 상태(RECOVERY)로 진입한다. 이 과정이 반복되고, 인터페이스 회로 A 및 인터페이스 회로 B는 복구되지 않는 오류에 의해 교착 상태(Deadlock)에 빠지게 된다. 즉, 3세대 PCIe 규약에 의해서도 복구될 수 없는 오류가 발생할 수 있다.
본 발명의 실시 예에 따르면, 3세대 PCIe 규약에 의해서도 복구될 수 없는 오류가 방지될 수 있다. 특히, 본 발명의 실시 예에 따르면, 기준 연속 횟수 이상으로 연속되는 논리 값을 포함하지 않는 데이터 열을 갖는 송신 데이터가 생성될 수 있다. 이하에서, 본 발명의 실시 예와 PCIe 규약에 따라 작동하는 인터페이스 회로가 주로 설명된다. 그러나, 이하의 설명은 본 발명의 기술 사상의 이해를 돕기 위한 예시이며, 본 발명의 범위를 제한하기 위한 것은 아니다. 본 발명의 실시 예는 PCIe 규약 외의 다른 통신 규약에 따라 작동하는 인터페이스 회로에도 적용될 수 있다. 이하에서, 도 4 내지 도 14에 대한 설명과 함께 본 발명의 실시 예가 언급된다.
도 4는 본 발명의 실시 예에 따른 인터페이스 회로가 가질 수 있는 구성을 나타낸 블록도이다. 인터페이스 회로(100)는 통신 규약에 따라 다른 인터페이스 회로(미도시)와 데이터를 송수신할 수 있다. 인터페이스 회로(100)는 인코딩 유닛(111), 송신단(113), 데이터 시퀀스(Sequence) 검출 유닛(115), 및 복구부(130)를 포함할 수 있다. 인코딩 유닛(111), 송신단(113), 및 데이터 시퀀스 검출 유닛(115)은 송신부(110)에 포함될 수 있다.
송신부(110)는 입력 데이터를 제공받을 수 있다. 입력 데이터는 인코딩 유닛(111)으로 제공될 수 있다. 인코딩 유닛(111)은 입력 데이터를 인코딩할 수 있다. 인코딩 유닛(111)은 인코딩 결과로서 송신 데이터를 생성할 수 있다. 송신 데이터는 다른 인터페이스 회로로 송신하기 위한 데이터이다. 실시 예로서, 인터페이스 회로(100)가 PCIe 규약에 따라 작동하는 경우, 인코딩 유닛(111)은 레인 인코더(26_1 내지 26_N, 도 1 참조)일 수 있다. 이 실시 예에서, 인코딩 유닛(111)은 입력 데이터와 미리 저장된 비트 열을 이용하여 논리 연산을 수행할 수 있다. 나아가, 인코딩 유닛(111)은 논리 연산의 결과에 싱크 헤더 데이터를 부가하여 송신 데이터를 생성할 수 있다. 인코딩 유닛(111)에 의해 생성된 송신 데이터는 송신단(113)으로 제공될 수 있다. 송신단(113)은 송신 데이터를 다른 인터페이스 회로로 송신하기 위해 송신 데이터를 출력할 수 있다.
데이터 시퀀스 검출 유닛(115)은 송신 데이터의 오류를 검출할 수 있다. 구체적으로, 데이터 시퀀스 검출 유닛(115)은 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다. 예컨대, 데이터 시퀀스 검출 유닛(115)은 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다.
인터페이스 회로(100)가 PCIe 규약에 따라 작동하는 경우, 기준 연속 횟수는, 예컨대, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하기 위해 같은 논리 값이 연속되는 횟수가 넘지 않아야 할 임계 횟수로 정의될 수 있다. 즉, 데이터 시퀀스 검출 유닛(115)은 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하는지 여부를 검출할 수 있다. 만일, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상이면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 것으로 검출될 수 있다. 반면, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수보다 작으면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하는 것으로 검출될 수 있다.
실시 예로서, 데이터 시퀀스 검출 유닛(115)은 카운터(Counter) 회로를 포함할 수 있다. 이 실시 예에서, 데이터 시퀀스 검출 유닛(115)은 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수를 셀 수 있다. 실시 예로서, 데이터 시퀀스 검출 유닛(115)은 인코딩 유닛(111)의 출력 단자에 연결되어 송신 데이터를 제공받을 수 있다. 인터페이스 회로(100)가 PCIe 규약에 따라 작동하는 경우, 송신 데이터는 시리얼라이저(28_1 내지 28_N)에 의해 직렬화되기 전에 데이터 시퀀스 검출 유닛(115)으로 제공될 수 있다. 그러나, 데이터 시퀀스 검출 유닛(115)은 다른 연결 관계를 갖도록 구성될 수 있다. 예컨대, 데이터 시퀀스 검출 유닛(115)은 송신단(113)으로부터 송신 데이터를 제공받을 수도 있다. 즉, 도 4에 도시된 연결 관계는 본 발명의 기술 사상의 이해를 돕기 위한 예시이다.
복구부(130)는 데이터 시퀀스 검출 유닛(115)의 검출 결과를 제공받을 수 있다. 복구부(130)는 데이터 시퀀스 검출 유닛(115)의 검출 결과에 기초하여 인터페이스 회로(100)의 복구 작동을 제어할 수 있다. 구체적으로, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우(즉, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않은 경우), 복구부(130)는 복구 작동이 수행되도록 인터페이스 회로(100)를 제어할 수 있다. 특히, 복구부(130)는 송신부(110)에서 복구 작동이 수행되도록 인터페이스 회로(100)를 제어할 수 있다. 실시 예로서, 인터페이스 회로(100)가 PCIe 규약에 따라 작동하는 경우, 복구부(130)는 LTSSM(40, 도 1 참조)일 수 있다.
PCIe 규약에 따라 작동하는 인터페이스 회로에서 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터가 생성되면, 송신 데이터를 수신한 다른 인터페이스 회로가 오류를 검출한다. 그리고, 송신 데이터를 수신한 다른 인터페이스 회로는 복구 상태(RECOVERY, 도 3 참조)로의 진입을 위한 오더 셋을 송신한다. 두 인터페이스 회로는 오더 셋에 따라 복구 상태(RECOVERY)를 거친 후, 일반 상태(L0, 도 3 참조)에서 다시 송신 데이터를 주고 받는다. 그러나, 위에서 언급된 것과 같이, 교착 상태를 유발하는 오류가 발생할 수 있다.
반면, 본 발명의 기술 사상에 따르면, 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터가 생성되면, 송신 데이터를 생성한 인터페이스 회로가 먼저 오류를 검출할 수 있다. 즉, 송신 데이터가 다른 인터페이스 회로로 송신되기 전에 오류가 미리 검출될 수 있다. 그리고, 본 발명의 실시 예에 따른 복구 작동에 의해, 교착 상태를 유발하는 오류가 방지될 수 있다. 본 발명의 실시 예에 따라 수행되는 복구 작동에 관한 설명은 도 6 내지 도 10에 대한 설명과 함께 언급된다.
도 5는 본 발명의 실시 예에 따른 인터페이스 회로의 작동을 설명하는 흐름도이다.
S110 단계에서, 입력 데이터가 인코딩될 수 있다. 인코딩의 결과로서, 송신 데이터가 생성될 수 있다. 실시 예로서, 인터페이스 회로가 PCIe 규약에 따라 작동하는 경우, 입력 데이터와 미리 저장된 비트 열을 이용하는 논리 연산이 수행될 수 있다. 논리 연산의 결과에 기초하여, 송신 데이터가 생성될 수 있다.
S120 단계에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 즉, S120 단계에서, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 위에서 언급된 바와 같이, 인터페이스 회로가 PCIe 규약에 따라 작동하는 경우, 기준 연속 횟수는 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하기 위해 같은 논리 값이 연속되는 횟수가 넘지 않아야 할 임계 횟수로 정의될 수 있다.
만일, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수보다 작으면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하는 것으로 검출될 수 있다. 이 경우, 복구 작동이 수행되지 않을 수 있다. 반면, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상이면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 것으로 검출될 수 있다. 이 경우, S130 단계가 수행될 수 있다.
S130 단계에서, 복구 작동이 수행될 수 있다. 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, 복구 작동에 의해 오류가 복구될 수 있다. 본 발명의 실시 예에 따라 수행되는 복구 작동에 관한 설명은 도 6 내지 도 10에 대한 설명과 함께 언급된다.
도 6은 본 발명의 실시 예에 따른 인터페이스 회로의 작동을 더 자세히 설명하는 흐름도이다.
본 발명의 기술 사상의 이해를 돕기 위해, 도 4가 함께 참조된다. 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구 작동이 수행될 수 있다. 즉, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, 인터페이스 회로(100, 도 4 참조)는 복구부(130, 도 4 참조)의 제어에 따라 복구 작동을 수행할 수 있다.
본 발명의 일 실시 예에서, 인코딩 유닛(111, 도 4 참조)은 복구부(130)의 제어에 따라, 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터를 생성할 때 이용된 것과 다른 방법으로 입력 데이터를 다시 인코딩할 수 있다. 이 경우, 인코딩 유닛(111)은 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성할 수 있다. 인코딩 방법이 변경되면, 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터가 생성될 가능성이 커진다. 송신단(113, 도 4 참조)은 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터를 출력할 수 있다.
도 6의 흐름도는 위에 설명된 복구 작동이 PCIe 규약에 따라 작동하는 인터페이스 회로에 적용된 경우에 수행되는 처리 과정을 나타낸다. S210 단계에서, 입력 데이터가 인코딩될 수 있다. 특히, 입력 데이터는 3세대 PCIe 규약의 128b/130b 인코딩 방법에 따라 인코딩될 수 있다. 인코딩 결과로서, 송신 데이터가 생성될 수 있다.
S220 단계에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 즉, S220 단계에서, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 만일, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수보다 작으면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하는 것으로 검출될 수 있다. 이 경우, 복구 작동이 수행되지 않을 수 있다. 반면, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상이면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 것으로 검출될 수 있다. 이 경우, S230 단계가 수행될 수 있다.
S230 단계에서, 복구 작동이 수행될 수 있다. 구체적으로, S230 단계에서, 입력 데이터가 1세대(First Generation) 또는 2세대(Second Generation) PCIe 규약의 8b/10b 인코딩 방법에 따라 인코딩될 수 있다. 즉, S230 단계에서 이용되는 인코딩 방법은 S210 단계에서 이용되는 인코딩 방법과 다를 수 있다. 입력 데이터가 8b/10b 인코딩 방법에 따라 인코딩되는 경우, 클록 정보 추출에 필요한 만큼 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터가 생성될 수 있다. LTSSM(40, 도 1 참조)은 복구 작동의 수행을 위해 작동 모드가 변경되도록 인터페이스 회로(100)를 제어할 수 있다. 변경된 송신 데이터가 출력된 후, 인터페이스 회로(100)는 다시 3세대 PCIe 규약에 따라 작동할 수 있다.
도 7은 본 발명의 실시 예에 따른 인터페이스 회로의 다른 작동을 설명하기 위한 개념도이다.
본 발명의 기술 사상의 이해를 돕기 위해, 도 4가 함께 참조된다. 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구 작동이 수행될 수 있다. 즉, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, 인터페이스 회로(100, 도 4 참조)는 복구부(130, 도 4 참조)의 제어에 따라 복구 작동을 수행할 수 있다. 특히, 본 발명의 실시 예에서, 인터페이스 회로(100)는 복구부(130)의 제어에 따라 복구 상태로 진입할 수 있다.
도 7의 개념도는 위에 설명된 복구 작동이 PCIe 규약에 따라 작동하는 인터페이스 회로에 적용된 경우에 수행되는 처리 과정을 나타낸다. 인터페이스 회로 A와 인터페이스 회로 B는 일반 상태(L0)에서 3세대 PCIe 규약에 따라 데이터를 주고 받는다. 본 발명의 실시 예에서, 인터페이스 회로 A에서 생성된 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 인터페이스 회로 A는 LTSSM(40, 도 1 참조)의 제어에 따라 바로 복구 상태(RECOVERY)로 진입할 수 있다.
도 4에 대한 설명에서 언급된 것과 같이, PCIe 규약에 따르면, 인터페이스 회로 A와 인터페이스 회로 B는 인터페이스 회로 B에서 'EIEOS' 오더 셋이 생성된 후 복구 상태(RECOVERY)로 진입한다. 그러나, 도 7에 나타난 본 발명의 실시 예에서, 인터페이스 회로 A에서 생성된 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 인터페이스 회로 A는 바로 복구 상태(RECOVERY)로 진입할 수 있다. 이후, 인터페이스 회로 A에서 생성된 'EIEOS' 오더 셋에 의해, 인터페이스 회로 B 역시 복구 상태(RECOVERY)로 진입할 수 있다.
도 7에 나타난 실시 예에 따르면, 인터페이스 회로 A와 인터페이스 회로 B가 복구 상태(RECOVERY)에서 주고 받는 오더 셋의 패턴이 도 4에 나타난 패턴과 달라질 수 있다. 이로써, 인터페이스 회로 A의 LFSR에 저장된 비트 열 중 인터페이스 회로 A와 인터페이스 회로 B가 복구 상태(RECOVERY)에서 벗어나 다시 일반 상태(L0)로 진입했을 때 논리 연산에 이용되는 비트 열은 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터가 생성될 때 논리 연산에 이용된 비트 열과 달라질 수 있다. 결과적으로, 도 7에 나타난 실시 예에 따르면, 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터가 생성될 가능성이 커진다.
도 8은 본 발명의 실시 예에 따른 인터페이스 회로의 또 다른 작동을 설명하기 위한 개념도이다.
본 발명의 기술 사상의 이해를 돕기 위해, 도 4가 함께 참조된다. 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구 작동이 수행될 수 있다. 즉, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, 인터페이스 회로(100, 도 4 참조)는 복구부(130, 도 4 참조)의 제어에 따라 복구 작동을 수행할 수 있다.
본 발명의 실시 예에서, 복구부(130)의 제어에 따라, 임의의 하나 이상의 비트가 입력 데이터의 데이터 열의 임의의 위치에 삽입될 수 있다. 나아가, 인코딩 유닛(111, 도 4 참조)은 입력 데이터 및 입력 데이터에 삽입된 임의의 하나 이상의 비트를 함께 인코딩할 수 있다. 이 경우, 인코딩 유닛(111)은 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성할 수 있다. 입력 데이터의 내용이 변경되면, 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터가 생성될 가능성이 커진다. 송신단(113, 도 4 참조)은 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터를 출력할 수 있다.
도 8의 개념도는 위에 설명된 복구 작동이 PCIe 규약에 따라 작동하는 인터페이스 회로에 적용된 경우에 수행되는 처리 과정을 나타낸다. LTSSM(40, 도 1 참조)의 제어에 따라, 임의의 하나 이상의 비트가 입력 데이터의 데이터 열의 임의의 위치에 삽입될 수 있다. 도 8에서, 8비트의 길이를 갖는 비트 열이 입력 데이터의 데이터 열의 첫 비트의 앞에 삽입된 경우가 도시되었다. 도 8에 나타난 실시 예에 따르면, LFSR에 저장된 비트 열과 함께 논리 연산에 이용되는 입력 데이터의 내용이 변경될 수 있다. 따라서, 도 8에 나타난 실시 예에 따르면, 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터가 생성될 수 있다. 결과적으로, 도 8에 나타난 실시 예에 따르면, 충분히 전이하는 데이터 열을 갖는 변경된 송신 데이터가 생성될 가능성이 커진다.
실시 예로서, PCIe 규약에 따라 작동하는 인터페이스 회로에서, 입력 데이터에 삽입되는 임의의 하나 이상의 비트는 IDL 심볼(Symbol)에 대응하는 비트 열일 수 있다. 다른 실시 예로서, 입력 데이터에 삽입되는 임의의 하나 이상의 비트는 DLLP(Data Link Layer Packet)에 대응하는 비트 열일 수 있다. 나아가, 임의의 하나 이상의 비트는 입력 데이터의 데이터 열의 첫 비트의 앞에 삽입될 수 있다. 그러나, 이 실시 예들은 본 발명의 기술 사상을 구현하기 위한 다양한 실시 예들 중 일부일 뿐이다. 입력 데이터에 삽입되는 임의의 하나 이상의 비트의 비트 수, 비트 열 패턴, 삽입 위치 등은 필요에 따라 여러 형태로 변경될 수 있음이 명백하다. 다만, 인코딩된 데이터를 수신하는 다른 인터페이스 회로는 삽입된 임의의 하나 이상의 비트와 원래의 입력 데이터를 구별할 수 있도록 구성되어야 한다.
도 9는 본 발명의 실시 예에 따른 인터페이스 회로가 가질 수 있는 다른 구성을 나타낸 블록도이다. 인터페이스 회로(200)는 N개의 인코딩 유닛(211_1 내지 211_N), N개의 송신단(213_1 내지 213_N), 데이터 시퀀스 검출 유닛(215), 및 복구부(230)를 포함할 수 있다. N개의 인코딩 유닛(211_1 내지 211_N), N개의 송신단(213_1 내지 213_N), 및 데이터 시퀀스 검출 유닛(215)은 송신부(210)에 포함될 수 있다. 각각의 인코딩 유닛(211_1 내지 211_N), 각각의 송신단(213_1 내지 213_N), 데이터 시퀀스 검출 유닛(215), 및 복구부(230)의 구성 및 기능에는 도 4의 인코딩 유닛(111), 송신단(113), 데이터 시퀀스 검출 유닛(115), 및 복구부(130)의 구성 및 기능이 각각 포함될 수 있다. N개의 인코딩 유닛(211_1 내지 211_N), N개의 송신단(213_1 내지 213_N), 데이터 시퀀스 검출 유닛(215), 및 복구부(230)의 구성 및 기능에 관한 설명은 도 4에 대한 설명과 중복되는 범위에서 생략된다.
실시 예로서, 송신부(210)는 복수(즉, N개)의 인코딩 유닛(211_1 내지 211_N)을 포함할 수 있다. 또한, 송신부(210)는 복수(즉, N개)의 송신단(213_1 내지 213_N)을 포함할 수 있다. 이 실시 예에서, N개의 인코딩 유닛(211_1 내지 211_N) 각각과 N개의 송신단(213_1 내지 213_N) 각각은 일대일로 연결될 수 있다. 인터페이스 회로(200)가 N개의 인코딩 유닛(211_1 내지 211_N) 및 N개의 송신단(213_1 내지 213_N)을 포함하는 경우, 대역폭(Bandwidth)이 증가한다.
데이터 시퀀스 검출 유닛(215)은 N개의 인코딩 유닛(211_1 내지 211_N) 각각에 의해 생성된 송신 데이터를 제공받을 수 있다. 데이터 시퀀스 검출 유닛(215)은 제공받은 송신 데이터 각각의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다.
N개의 인코딩 유닛(211_1 내지 211_N)에 포함되는 제 1 인코딩 유닛은 제공받은 입력 데이터를 인코딩할 수 있다. 제 1 인코딩 유닛은 인코딩의 결과로서 제 1 송신 데이터를 생성할 수 있다. 데이터 시퀀스 검출 유닛(215)은 제 1 송신 데이터를 제공받을 수 있다. 데이터 시퀀스 검출 유닛(215)은 제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다.
제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구부(230)는 복구 작동이 수행되도록 인터페이스 회로(200)를 제어할 수 있다. 특히, 복구부(230)는 복구 작동이 수행되도록 송신부(210)를 제어할 수 있다. 복구부(230)의 제어에 따라, N개의 인코딩 유닛(211_1 내지 211_N)에 포함되는 제 2 인코딩 유닛은 제 1 인코딩 유닛으로 제공되었던 입력 데이터를 제공받을 수 있다. 제 2 인코딩 유닛은 제공받은 입력 데이터를 인코딩할 수 있다. 제 2 인코딩 유닛은 인코딩의 결과로서 제 2 송신 데이터를 생성할 수 있다. 제 2 송신 데이터는 제 1 송신 데이터와 다른 데이터 열을 가질 수 있다. 제 2 인코딩 유닛과 연결된 송신단은 제 2 송신 데이터를 출력할 수 있다.
동일한 입력 데이터가 제공되더라도, 제 1 인코딩 유닛과 제 2 인코딩 유닛 각각에 의한 인코딩의 결과는 서로 다를 수 있다. 예컨대, 인터페이스 회로(200)가 PCIe 규약에 따라 작동하는 경우, 위에서 언급된 바와 같이, N개의 인코딩 유닛(211_1 내지 211_N) 각각에 포함되는 LFSR은 서로 다른 비트 열을 저장한다. 즉, 입력 데이터의 인코딩을 위한 논리 연산에 이용되는 비트 열이 다르므로, 제 1 인코딩 유닛과 제 2 인코딩 유닛 각각에 의한 인코딩의 결과가 서로 다를 수 있다. N개의 인코딩 유닛(211_1 내지 211_N) 중 어느 하나의 인코딩 유닛에 의해 충분히 전이하지 않는 데이터 열을 갖는 송신 데이터가 생성되더라도, 동일한 입력 데이터가 다른 인코딩 유닛에 의해 인코딩되면 충분히 전이하는 데이터 열을 갖는 송신 데이터가 생성될 가능성이 커진다.
실시 예로서, 인터페이스 회로(200)가 PCIe 규약에 따라 작동하는 경우, N개의 인코딩 유닛(211_1 내지 211_N)은 N개의 레인 인코더(26_1 내지 26_N, 도 1 참조)일 수 있다. 제 1 레인 인코더에 의해 생성된 제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 인터페이스 회로(200)는 LTSSM(40, 도 1 참조)의 제어에 따라 복구 작동을 수행할 수 있다. 특히, 제 1 레인 인코더로 제공되었던 입력 데이터는 제 2 레인 인코더로 제공될 수 있다. 제 1 레인 인코더의 LSFR과 제 2 레인 인코더의 LSFR은 서로 다른 비트 열을 저장할 수 있다. 따라서, 제 2 레인 인코더에 의해 입력 데이터가 인코딩되면, 제 1 송신 데이터와 다른 데이터 열을 갖는 제 2 송신 데이터가 생성될 수 있다. 제 2 송신 데이터는 충분히 전이하는 데이터 열을 가질 수 있다.
도 10은 본 발명의 실시 예에 따른 인터페이스 회로의 또 다른 작동을 설명하는 흐름도이다.
S310 단계에서, 입력 데이터가 인코딩될 수 있다. 특히, S310 단계에서, 입력 데이터는 제 1 인코딩 유닛에 의해 인코딩될 수 있다. 인코딩의 결과로서, 제 1 송신 데이터가 생성될 수 있다.
S320 단계에서, 제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 즉, S320 단계에서, 제 1 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 만일, 제 1 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수보다 작으면, 제 1 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하는 것으로 검출될 수 있다. 이 경우, 복구 작동이 수행되지 않을 수 있다. 반면, 제 1 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상이면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 것으로 검출될 수 있다. 이 경우, S330 단계가 수행될 수 있다.
S330 단계에서, 복구 작동이 수행될 수 있다. 구체적으로, S330 단계에서, 입력 데이터가 다시 인코딩될 수 있다. 특히, S330 단계에서, 입력 데이터는 제 2 인코딩 유닛에 의해 인코딩될 수 있다. 인코딩의 결과로서, 제 2 송신 데이터가 생성될 수 있다. S310 및 S330 단계 각각에서 동일한 입력 데이터가 인코딩되더라도, 제 1 송신 데이터와 제 2 송신 데이터는 서로 다른 데이터 열을 가질 수 있다. 제 1 인코딩 유닛에 의해 생성된 제 1 송신 데이터가 충분히 전이하지 않는 데이터 열을 갖더라도, 동일한 입력 데이터가 제 2 인코딩 유닛에 의해 인코딩되면 충분히 전이하는 데이터 열을 갖는 제 2 송신 데이터가 생성될 수 있다.
도 11은 본 발명의 실시 예에 따른 인터페이스 회로가 가질 수 있는 또 다른 구성을 나타낸 블록도이다. 인터페이스 회로(300)는 인코딩 유닛(311), 송신단(313), 데이터 시퀀스 검출 유닛(315), 복구 횟수 검출 유닛(317), 및 복구부(330)를 포함할 수 있다. 인코딩 유닛(311), 송신단(313), 데이터 시퀀스 검출 유닛(315), 및 복구 횟수 검출 유닛(317)은 송신부(310)에 포함될 수 있다. 인코딩 유닛(311), 송신단(313), 데이터 시퀀스 검출 유닛(315), 및 복구부(330)의 구성 및 기능에는 도 4의 인코딩 유닛(111), 송신단(113), 데이터 시퀀스 검출 유닛(115), 및 복구부(130)의 구성 및 기능이 포함될 수 있다. 인코딩 유닛(311), 송신단(313), 데이터 시퀀스 검출 유닛(315), 및 복구부(330)에 관한 설명은 도 4에 대한 설명과 중복되는 범위에서 생략된다.
인코딩 유닛(311)은 입력 데이터를 인코딩하여 송신 데이터를 생성할 수 있다. 데이터 시퀀스 검출 유닛(315)은 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다. 복구부(330)는 데이터 시퀀스 검출 유닛(315)의 검출 결과에 기초하여 인터페이스 회로(300)의 복구 작동을 제어할 수 있다. 즉, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 복구부(330)의 제어에 따라 복구 작동이 수행될 수 있다.
복구 횟수 검출 유닛(317)은 복구 작동의 수행 횟수를 셀 수 있다. 실시 예로서, 복구 횟수 검출 유닛(317)은 카운터 회로를 포함할 수 있다. 나아가, 복구 횟수 검출 유닛(317)은 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부를 검출할 수 있다. 기준 복구 횟수는 필요에 따라 적당한 값을 갖도록 설정될 수 있다.
복구부(330)는 데이터 시퀀스 검출 유닛(315)의 검출 결과는 물론 복구 횟수 검출 유닛(317)의 검출 결과에 기초하여 인터페이스 회로(300)의 복구 작동을 제어할 수 있다. 즉, 복구 작동의 수행 횟수가 기준 복구 횟수 이상인 경우, 복구부(330)의 제어에 따라 복구 작동이 수행될 수 있다. 실시 예로서, 인터페이스 회로(300)가 PCIe 규약에 따라 작동하는 경우, 복구 작동은 LTSSM(40, 도 1 참조)의 제어에 따라 수행될 수 있다. 복구 횟수 검출 유닛(317)의 검출 결과에 기초하여 복구 작동이 수행되는 과정은 도 12에 대한 설명과 함께 더 자세히 언급된다.
도 12는 본 발명의 실시 예에 따른 인터페이스 회로의 또 다른 작동을 설명하는 흐름도이다.
S410 단계에서, 입력 데이터가 인코딩될 수 있다. 인코딩의 결과로서, 송신 데이터가 생성될 수 있다. 실시 예로서, 인터페이스 회로가 PCIe 규약에 따라 작동하는 경우, 입력 데이터와 미리 저장된 비트 열을 이용하는 논리 연산이 수행될 수 있다. 논리 연산의 결과에 기초하여, 송신 데이터가 생성될 수 있다.
S420 단계에서, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 즉, S420 단계에서, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 만일, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수보다 작으면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하는 것으로 검출될 수 있다. 이 경우, 복구 작동이 수행되지 않을 수 있다. 반면, 송신 데이터의 데이터 열 중 논리 '0' 값 또는 논리 '1' 값이 연속되는 횟수가 기준 연속 횟수 이상이면, 송신 데이터의 데이터 열의 논리 값은 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 것으로 검출될 수 있다. 이 경우, S430 단계가 수행될 수 있다.
S430 단계에서, 제 1 복구 작동이 수행될 수 있다. 즉, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, 제 1 복구 작동에 의해 오류의 복구가 시도될 수 있다. 제 1 복구 작동에 의해 송신 데이터가 새로 생성될 수 있다. 예로서, 제 1 복구 작동은 도 3에 대한 설명에서 언급된 3세대 PCIe 규약에 제시되어 있는 복구 작동일 수 있다. 위에서 설명된 것과 같이, 제 1 복구 작동이 수행되더라도, 오류가 반복하여 발생할 가능성이 있다.
S440 단계에서, 제 1 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부가 판단될 수 있다. 예컨대, 기준 복구 횟수가 3의 값을 갖는 경우, 제 1 복구 작동이 3회 이상 수행되었는지 여부가 판단될 수 있다. 만일, 제 1 복구 작동의 수행 횟수가 기준 복구 횟수보다 작으면, 새로 생성된 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부가 판단될 수 있다. 새로 생성된 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 제 1 복구 작동이 다시 수행될 수 있다. 즉, 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, 제 1 복구 작동이 반복하여 수행될 수 있다. 제 1 복구 작동의 수행 횟수가 기준 복구 횟수 이상이면, S450 단계가 수행될 수 있다.
S450 단계에서, 제 2 복구 작동이 수행될 수 있다. 즉, 제 1 복구 작동의 반복 수행에도 불구하고 송신 데이터의 데이터 열의 논리 값이 클록 정보 추출에 필요한 만큼 충분히 전이하지 않는 경우, S430 단계에서 수행된 제 1 복구 작동과 다른 제 2 복구 작동이 수행될 수 있다. 제 2 복구 작동은 도 6 내지 도 10에 대한 설명에서 언급된 복구 작동 중 적어도 하나일 수 있다.
도 13은 본 발명의 실시 예가 적용된 인터페이스 회로의 작동을 설명하기 위한 블록도이다. 특히, 도 13의 인터페이스 회로(400)는 PCIe 규약에 따라 작동한다. 인터페이스 회로(400)는 도 1의 인터페이스 회로(10)에 본 발명의 기술 사상을 구현하기 위한 복구 횟수 검출기(421) 및 데이터 시퀀스 검출기(427)를 포함할 수 있다.
송신부(420)의 스트리퍼(422), N개의 오더 셋 생성기(424_1 내지 424_N), N개의 레인 인코더(426_1 내지 426_N), N개의 시리얼라이저(428_1 내지 428_N), 및 N개의 송신단(429_1 내지 429_N), 수신부(430)의 N개의 수신단(432_1 내지 432_N), N개의 CDR 회로(433_1 내지 433_N), N개의 레인 디코더(434_1 내지 434_N), N개의 오더 셋 검출기(435_1 내지 435_N), 언스트리퍼(437), 및 배열 검사기(438), 및 LTSSM(440)의 구성 및 기능에는 도 1의 송신부(20)의 스트리퍼(22), N개의 오더 셋 생성기(24_1 내지 24_N), N개의 레인 인코더(26_1 내지 26_N), N개의 시리얼라이저(28_1 내지 28_N), 및 N개의 송신단(29_1 내지 29_N), 수신부(30)의 N개의 수신단(32_1 내지 32_N), N개의 CDR 회로(33_1 내지 33_N), N개의 레인 디코더(34_1 내지 34_N), N개의 오더 셋 검출기(35_1 내지 35_N), 언스트리퍼(37), 및 배열 검사기(38), 및 LTSSM(40)의 구성 및 기능이 포함될 수 있다. 스트리퍼(422), N개의 오더 셋 생성기(424_1 내지 424_N), N개의 레인 인코더(426_1 내지 426_N), N개의 시리얼라이저(428_1 내지 428_N), N개의 송신단(429_1 내지 429_N), N개의 수신단(432_1 내지 432_N), N개의 CDR 회로(433_1 내지 433_N), N개의 레인 디코더(434_1 내지 434_N), N개의 오더 셋 검출기(435_1 내지 435_N), 언스트리퍼(437), 배열 검사기(438), 및 LTSSM(440)의 구성 및 기능에 대한 설명은 도 1에 대한 설명과 중복되는 범위에서 생략된다.
데이터 시퀀스 검출기(427)는 도 9의 데이터 시퀀스 검출 유닛(215, 도 9 참조)의 기능을 수행할 수 있다. 즉, 데이터 시퀀스 검출기(427)는 N개의 레인 디코더(426_1 내지 426_N) 각각에서 생성된 송신 데이터의 오류를 검출할 수 있다. 구체적으로, 데이터 시퀀스 검출기(427)는 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다.
복구 횟수 검출기(421)는 도 11의 복구 횟수 검출 유닛(317, 도 11 참조)의 기능을 수행할 수 있다. 즉, 복구 횟수 검출기(421)는 복구 작동의 수행 횟수를 셀 수 있다. 나아가, 복구 횟수 검출기(421)는 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부를 검출할 수 있다.
LTSSM(440)은 데이터 시퀀스 검출기(427)의 검출 결과에 기초하여 인터페이스 회로(400)의 복구 작동을 제어할 수 있다. 또는, LTSSM(440)은 데이터 시퀀스 검출기(427) 및 복구 횟수 검출기(421)의 검출 결과에 기초하여 인터페이스 회로(400)의 복구 작동을 제어할 수 있다. 인터페이스 회로(400)는 도 6 내지 도 12에 대한 설명에서 언급된 실시 예에 따라 복구 작동을 수행할 수 있다.
도 14는 본 발명의 실시 예에 따른 두 인터페이스 회로가 데이터를 주고 받는 과정을 설명하기 위한 블록도이다. 인터페이스 시스템(1000)은 제 1 인터페이스 회로(1100) 및 제 2 인터페이스 회로(1200)를 포함할 수 있다. 제 1 인터페이스 회로(1100) 및 제 2 인터페이스 회로(1200) 각각은 인코딩 유닛(1111, 1211), 송신단(1113, 1213), 데이터 시퀀스 검출 유닛(1115, 1215), 복구 횟수 검출 유닛(1117, 1217), 수신단(1120, 1220), 및 복구부(1130, 1230)를 포함할 수 있다. 인코딩 유닛(1111), 송신단(1113), 데이터 시퀀스 검출 유닛(1115), 및 복구 횟수 검출 유닛(1117)은 송신부(1110)에 포함될 수 있다. 인코딩 유닛(1211), 송신단(1213), 데이터 시퀀스 검출 유닛(1215), 및 복구 횟수 검출 유닛(1217)은 송신부(1210)에 포함될 수 있다.
데이터 시퀀스 검출 유닛(1115, 1215)은 도 4의 데이터 시퀀스 검출 유닛(115, 도 4 참조)의 기능을 수행할 수 있다. 즉, 데이터 시퀀스 검출 유닛(1115)은 인코딩 유닛(1111)에서 생성된 송신 데이터의 오류를 검출할 수 있다. 그리고, 데이터 시퀀스 검출 유닛(1215)은 인코딩 유닛(1211)에서 생성된 송신 데이터의 오류를 검출할 수 있다. 구체적으로, 데이터 시퀀스 검출 유닛(1115, 1215) 각각은 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출할 수 있다.
복구 횟수 검출 유닛(1117, 1217)은 도 11의 복구 횟수 검출 유닛(317, 도 11 참조)의 기능을 수행할 수 있다. 즉, 복구 횟수 검출 유닛(1117)은 제 1 인터페이스 회로(1100)에서 수행된 복구 작동의 수행 횟수를 셀 수 있다. 그리고, 복구 횟수 검출 유닛(1217)은 제 2 인터페이스 회로(1200)에서 수행된 복구 작동의 수행 횟수를 셀 수 있다. 나아가, 복구 횟수 검출 유닛(1117, 1217) 각각은 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부를 검출할 수 있다.
복구부(1130)는 데이터 시퀀스 검출 유닛(1115)의 검출 결과에 기초하여 제 1 인터페이스 회로(1100)의 복구 작동을 제어할 수 있다. 또는, 복구부(1130)는 데이터 시퀀스 검출 유닛(1115) 및 복구 횟수 검출 유닛(1117)의 검출 결과에 기초하여 제 1 인터페이스 회로(1100)의 복구 작동을 제어할 수 있다. 복구부(1230)는 데이터 시퀀스 검출 유닛(1215)의 검출 결과에 기초하여 제 2 인터페이스 회로(1200)의 복구 작동을 제어할 수 있다. 또는, 복구부(1230)는 데이터 시퀀스 검출 유닛(1215) 및 복구 횟수 검출 유닛(1217)의 검출 결과에 기초하여 제 2 인터페이스 회로(1200)의 복구 작동을 제어할 수 있다. 제 1 인터페이스 회로(1100) 및 제 2 인터페이스 회로(1200) 각각은 도 6 내지 도 12에 대한 설명에서 언급된 실시 예에 따라 복구 작동을 수행할 수 있다.
도 4, 도 9, 및 도 11에는 도시되지 않았으나, 인터페이스 회로는 수신부를 포함할 수 있다. 제 1 인터페이스 회로(1100)와 제 2 인터페이스 회로(1200) 각각은 수신부에 포함되는 수신단(1120, 1220)을 포함할 수 있다. 수신단(1120)은 송신단(1213)에서 송신된 데이터를 수신할 수 있다. 수신단(1220)은 송신단(1113)에서 송신된 데이터를 수신할 수 있다.
본 발명의 실시 예에 따르면, 송신 데이터의 데이터 열 중 같은 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 인터페이스 회로가 복구 작동을 수행할 수 있다. 본 발명의 실시 예에 따르면, 기준 연속 횟수 이상으로 연속되는 논리 값을 포함하지 않는 데이터 열을 갖는 송신 데이터가 생성될 수 있다. 특히, 본 발명의 실시 예에 따르면, 3세대 PCIe 규약에 따라 복구될 수 없는 오류가 방지될 수 있다. 구체적으로, 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우에 발생하는 오류가 방지될 수 있다.
본 발명의 실시 예에 따르면, 데이터의 손실이 방지될 수 있다. 뿐만 아니라, 본 발명의 실시 예에 따르면, 데이터의 신뢰성이 보장될 수 있다. 따라서, 본 발명의 기술 사상은 핵 무기 제어 시스템과 같이 높은 데이터 신뢰성이 요구되는 환경에서 유용하게 활용될 수 있다. 그리고, 본 발명의 실시 예에 따르면, 악의적 공격자에 의해 의도적으로 발생하는 오류가 방지될 수 있다. 본 발명의 기술 사상은 3세대 PCIe 규약의 한계를 해결하기 위해 고안되었지만, 다른 통신 규약에 따라 작동하는 인터페이스 회로에도 적용될 수 있다.
도 15는 본 발명의 실시 예에 따른 인터페이스 회로를 포함하는 스토리지가 가질 수 있는 구성을 나타낸 블록도이다. 스토리지(2000)는 복수의 불휘발성 메모리(2100), 메모리 컨트롤러(2300), 인터페이스 회로(2500), 및 커넥터(2700)를 포함할 수 있다.
복수의 불휘발성 메모리(2100) 각각은 데이터를 저장할 수 있다. 실시 예로서, 복수의 불휘발성 메모리(2100) 각각은 플래시(Flash) 메모리일 수 있다. 이 실시 예에서, 스토리지(2000)는 솔리드 스테이트 드라이브(Solid State Drive)일 수 있다. 그러나, 본 발명의 기술 사상은 위 실시 예에 의해 제한되지 않음이 명백하다. 예컨대, 복수의 불휘발성 메모리(2100) 각각은 PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM) 등과 같은 불휘발성 메모리들 중 적어도 하나를 포함할 수 있다. 복수의 불휘발성 메모리(2100)의 작동은 메모리 컨트롤러(2300)에 의해 제어될 수 있다.
인터페이스 회로(2500)는 호스트(Host, 미도시)와 스토리지(2000) 사이의 데이터 송수신을 인터페이싱할 수 있다. 인터페이스 회로(2500)는 본 발명의 실시 예에 따라 복구 작동을 수행하도록 구성될 수 있다. 즉, 송신 데이터의 데이터 열 중 같은 값이 연속되는 횟수가 기준 연속 횟수 이상인 경우, 인터페이스 회로(2500)는 도 6 내지 도 12에 대한 설명에서 언급된 복구 작동 중 적어도 하나를 수행할 수 있다. 커넥터(2700)는 스토리지(2000)를 호스트에 연결하도록 구성된다. 실시 예로서, 인터페이스 회로(2500)는 PCIe 규약에 따라 작동할 수 있다. 이 실시 예에서, 커넥터(2700)는 PCIe 규약에 따른 통신을 가능하게 하도록 구성될 수 있다.
도 15에서, 본 발명의 기술 사상이 적용된 인터페이스 회로(2500)를 포함하는 장치로서 스토리지(2000)가 제시되었다. 그러나, 본 발명의 기술 사상이 적용된 인터페이스 회로(2500)는 다른 전자 장치에도 포함될 수 있다. 예컨대, 본 발명의 기술 사상이 적용된 인터페이스 회로(2500)는 메인보드(Mainboard), 프린터, 스캐너, 모뎀 등 다양한 전자 장치에 포함될 수 있다. 나아가, 본 발명의 기술 사상이 적용된 인터페이스 회로(2500)가 PCIe 규약에 따라 작동하는 경우, 인터페이스 회로(2500)는 그래픽 카드나 사운드 카드와 같은 전자 장치에 포함될 수 있다.
도 16은 본 발명의 실시 예가 적용된 스토리지를 포함하는 컴퓨팅 시스템이 가질 수 있는 구성을 나타낸 블록도이다. 컴퓨팅 시스템(3000)은 스토리지(3100) 및 호스트(3300)를 포함할 수 있다. 호스트(3300)는 버스(3310), 프로세서(3330), 및 시스템 메모리(3350)를 포함할 수 있다. 스토리지(3100)는 도 15에 나타난 스토리지(2000, 도 15 참조)와 같은 구성을 가질 수 있다. 스토리지(3100)의 구성 및 기능에 관한 설명은 도 15에 대한 설명과 중복되는 범위에서 생략된다.
버스(3310)는 컴퓨팅 시스템(3000)의 구성 요소들 사이의 통신 채널을 제공할 수 있다. 예컨대, 버스(3310)는 스토리지(3100), 프로세서(3330), 및 시스템 메모리(3350) 사이의 통신 채널을 제공할 수 있다. 버스(3310)는 도 16에 도시되지 않은 다른 구성 요소들 사이의 통신 채널을 제공할 수 있다. 버스(3310)는 컴퓨팅 시스템(3000)의 표준 인터페이스 규약에 따라 작동할 수 있다. 실시 예로서, 버스(3310)는 PCIe 규약에 따라 작동할 수 있다. 그러나, 이것은 실시 예일 뿐이며, 버스(3310)는 다른 다양한 통신 규약에 따라 작동할 수 있다.
프로세서(3330)는 버스(3310)를 통해 컴퓨팅 시스템(3000)의 구성 요소를 제어할 수 있다. 예컨대, 프로세서(3330)는 버스(3310)를 통해 시스템 메모리(3350) 및 스토리지(3100)를 제어할 수 있다. 실시 예로서, 프로세서(3330)는 PCIe 규약에 따라 컴퓨팅 시스템(3000)의 구성 요소를 제어할 수 있다. 실시 예로서, 프로세서(3330)는 범용 CPU(Central Processing Unit) 또는 어플리케이션 프로세서(Application Processor)일 수 있다.
시스템 메모리(3350)는 버스(3330)를 통해 프로세서(3330) 및 스토리지(3100)와 통신할 수 있다. 시스템 메모리(3350)는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 PRAM, MRAM, RRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다.
호스트(3300)는 스토리지(3100)에 저장된 데이터를 불러오거나 스토리지(3100)에 저장할 데이터를 전송할 수 있다.
스토리지(3100)는 메모리 컨트롤러(2300, 도 15 참조)를 포함할 수 있다. 메모리 컨트롤러(2300)는 버스(3310) 또는 프로세서(3330)에 의해 인식되는 장치 정보를 가질 수 있다. 예컨대, 스토리지(3100)가 커넥터(2700, 도 15 참조)에 의해 버스(3310)에 연결되면, 메모리 컨트롤러(2300)는 버스(3310) 또는 프로세서(3330)와 소정의 통신을 수행할 수 있다. 소정의 통신을 수행함으로써, 스토리지(3100)는 버스(3310) 또는 프로세서(3330)에 의해 스토리지인 것으로 식별될 수 있다.
각각의 블록도에 도시된 장치 구성은 발명의 이해를 돕기 위한 것이다. 각각의 블록은 기능에 따라 더 작은 단위의 블록들로 형성될 수 있다. 또는, 복수의 블록들은 기능에 따라 더 큰 단위의 블록을 형성할 수 있다. 즉, 본 발명의 기술 사상은 블록도에 도시된 구성에 의해 한정되지 않는다.
이상에서 본 발명에 대한 실시 예를 중심으로 본 발명이 설명되었다. 다만, 본 발명이 속하는 기술 분야의 특성상, 본 발명이 이루고자 하는 목적은 본 발명의 요지를 포함하면서도 위 실시 예들과 다른 형태로 달성될 수 있다. 따라서, 위 실시 예들은 한정적인 것이 아니라 설명적인 측면에서 이해되어야 한다. 즉, 본 발명의 요지를 포함하면서 본 발명과 같은 목적을 달성할 수 있는 기술 사상은 본 발명의 기술 사상에 포함되는 것으로 해석되어야 한다.
따라서, 본 발명의 본질적인 특성을 벗어나지 않는 범위 내에서 수정 또는 변형된 기술 사상은 본 발명이 청구하는 보호 범위에 포함되는 것이다. 또한, 본 발명의 보호 범위는 위 실시 예들로 한정되는 것이 아니다.
10 : 인터페이스 회로 20 : 송신부
22 : 스트리퍼 24_1 내지 24_N : 오더 셋 생성기
26_1 내지 26_N : 레인 인코더 26_11 : 3세대 스크램블러
26_13 : 싱크 헤더 생성기 26_15 : 결합기
28_1 내지 28_N : 시리얼라이저 29_1 내지 29_N : 송신단
30 : 수신부 32_1 내지 32_N : 수신단
33_1 내지 33_N : CDR 회로 34_1 내지 34_N : 레인 디코더
35_1 내지 35_N : 오더 셋 검출기 37 : 언스트리퍼
38 : 배열 검사기 40 : LTSSM
100, 200, 300 : 인터페이스 회로 110, 210, 310 : 송신부
111, 211_1 내지 211_N, 311 : 인코딩 유닛
113, 213_1 내지 213_N, 313 : 송신단
115, 215, 315 : 데이터 시퀀스 검출 유닛
130, 230, 330 : 복구부 317 : 복구 횟수 검출 유닛
400 : 인터페이스 회로 420 : 송신부
421 : 복구 횟수 검출기 422 : 스트리퍼
424_1 내지 424_N : 오더 셋 생성기 426_1 내지 426_N : 레인 인코더
427 : 데이터 시퀀스 검출기 428_1 내지 428_N : 시리얼라이저
429_1 내지 429_N : 송신단 430 : 수신부
432_1 내지 432_N : 수신단 433_1 내지 433_N : CDR 회로
434_1 내지 434_N : 레인 디코더 435_1 내지 435_N : 오더 셋 검출기
437 : 언스트리퍼 438 : 배열 검사기
440 : LTSSM
1000 : 인터페이스 시스템 1100 : 제 1 인터페이스 회로
1200 : 제 2 인터페이스 회로 1110, 1210 : 송신부
1111, 1211 : 인코딩 유닛 1113, 1213 : 송신단
1115, 1215 : 데이터 시퀀스 검출 유닛
1117, 1217 : 복구 횟수 검출 유닛
1120, 1220 : 수신부 1130, 1230 : 복구부
2000 : 스토리지 2100 : 복수의 불휘발성 메모리
2300 : 메모리 컨트롤러 2500 : 인터페이스 회로
2700 : 커넥터
3000 : 컴퓨팅 시스템 3100 : 스토리지
3300 : 호스트 3310 : 버스
3330 : 프로세서 3350 : 시스템 메모리

Claims (10)

  1. 데이터를 송수신하기 위한 인터페이스 회로에 있어서,
    입력 데이터를 인코딩하여 송신 데이터를 생성하기 위한 인코딩 유닛;
    상기 송신 데이터의 데이터 열에서 같은 논리 값이 연속되는 횟수를 세어 상기 송신 데이터의 상기 데이터 열 중 상기 같은 논리 값이 연속되는 상기 횟수가 기준 연속 횟수 이상인지 여부를 검출하기 위한 데이터 시퀀스 검출 유닛;
    상기 데이터 시퀀스 검출 유닛의 검출 결과에 기초하여 상기 송신 데이터에 대한 복구 작동을 제어하기 위한 복구부; 및
    상기 송신 데이터를 출력하기 위한 송신단을 포함하는 인터페이스 회로.
  2. 제 1 항에 있어서,
    상기 송신 데이터의 상기 데이터 열 중 상기 같은 논리 값이 연속되는 상기 횟수가 상기 기준 연속 횟수 이상인 경우, 상기 복구부의 제어에 따라, 상기 인코딩 유닛은 상기 송신 데이터를 생성할 때 이용된 것과 다른 방법으로 상기 입력 데이터를 인코딩하여 상기 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 상기 송신단은 상기 변경된 송신 데이터를 출력하는 인터페이스 회로.
  3. 제 1 항에 있어서,
    상기 데이터 시퀀스 검출 유닛은 상기 송신 데이터의 상기 데이터 열에서 상기 같은 논리 값이 연속되는 상기 횟수를 세기 위한 카운터 회로를 포함하는 인터페이스 회로.
  4. 제 1 항에 있어서,
    상기 송신 데이터의 상기 데이터 열 중 상기 같은 논리 값이 연속되는 상기 횟수가 상기 기준 연속 횟수 이상인 경우, 상기 복구부의 제어에 따라, 임의의 하나 이상의 비트가 상기 입력 데이터의 데이터 열의 임의의 위치에 삽입되고, 상기 인코딩 유닛은 상기 입력 데이터와 상기 삽입된 임의의 하나 이상의 비트를 함께 인코딩하여 상기 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 상기 송신단은 상기 변경된 송신 데이터를 출력하는 인터페이스 회로.
  5. 제 1 항에 있어서,
    상기 인코딩 유닛은 복수의 인코딩 유닛을 포함하고,
    상기 송신단은 복수의 송신단을 포함하고,
    상기 복수의 인코딩 유닛 각각과 상기 복수의 송신단 각각은 일대일로 연결되는 인터페이스 회로.
  6. 제 5 항에 있어서,
    상기 복수의 인코딩 유닛에 포함되는 제 1 인코딩 유닛은 상기 입력 데이터를 인코딩하여 제 1 송신 데이터를 생성하고,
    상기 제 1 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 상기 기준 연속 횟수 이상인 경우, 상기 복구부의 제어에 따라, 상기 복수의 인코딩 유닛에 포함되는 제 2 인코딩 유닛은 상기 입력 데이터를 인코딩하여 상기 제 1 송신 데이터와 다른 데이터 열을 갖는 제 2 송신 데이터를 생성하고, 상기 제 2 인코딩 유닛과 연결된 송신단은 상기 제 2 송신 데이터를 출력하는 인터페이스 회로.
  7. 제 1 항에 있어서,
    상기 복구 작동의 수행 횟수가 기준 복구 횟수 이상인지 여부를 검출하기 위한 복구 횟수 검출 유닛을 더 포함하고,
    상기 복구부는 상기 데이터 시퀀스 검출 유닛의 상기 검출 결과 및 상기 복구 횟수 검출 유닛의 검출 결과에 기초하여 상기 송신 데이터에 대한 상기 복구 작동을 제어하는 인터페이스 회로.
  8. 피씨아이 익스프레스(PCI Express) 규약에 따라 데이터를 송수신하기 위한 인터페이스 회로에 있어서,
    상기 피씨아이 익스프레스 규약의 제 1 인코딩 방법으로 입력 데이터를 인코딩하여 송신 데이터를 생성하기 위한 레인 인코더;
    상기 송신 데이터의 데이터 열 중 같은 논리 값이 연속되는 횟수가 기준 연속 횟수 이상인지 여부를 검출하기 위한 데이터 시퀀스 검출 유닛;
    상기 데이터 시퀀스 검출 유닛의 검출 결과에 기초하여 상기 송신 데이터에 대한 복구 작동을 제어하기 위한 LTSSM(Link Training and Status State Machine); 및
    상기 송신 데이터를 출력하기 위한 송신단을 포함하는 인터페이스 회로.
  9. 제 8 항에 있어서,
    상기 송신 데이터의 상기 데이터 열 중 상기 같은 논리 값이 연속되는 상기 횟수가 상기 기준 연속 횟수 이상인 경우, 상기 LTSSM의 제어에 따라, 상기 레인 인코더는 상기 제 1 인코딩 방법과 다른 2세대(Second Generation) 또는 1세대(First Generation) 피씨아이 익스프레스 규약의 제 2 인코딩 방법으로 상기 입력 데이터를 인코딩하여 상기 송신 데이터와 다른 데이터 열을 갖는 변경된 송신 데이터를 생성하고, 상기 송신단은 상기 변경된 송신 데이터를 출력하는 인터페이스 회로.
  10. 제 9 항에 있어서,
    상기 변경된 송신 데이터의 출력 후 상기 레인 인코더는 3세대(Third Generation) 피씨아이 익스프레스 규약에 따라 작동하는 인터페이스 회로.
KR1020140012733A 2014-02-04 2014-02-04 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로 KR102108380B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140012733A KR102108380B1 (ko) 2014-02-04 2014-02-04 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로
US14/593,585 US9515675B2 (en) 2014-02-04 2015-01-09 Interface circuit operating to recover error of transmitted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140012733A KR102108380B1 (ko) 2014-02-04 2014-02-04 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로

Publications (2)

Publication Number Publication Date
KR20150091915A KR20150091915A (ko) 2015-08-12
KR102108380B1 true KR102108380B1 (ko) 2020-05-08

Family

ID=53755723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012733A KR102108380B1 (ko) 2014-02-04 2014-02-04 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로

Country Status (2)

Country Link
US (1) US9515675B2 (ko)
KR (1) KR102108380B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12015508B2 (en) 2022-05-18 2024-06-18 SK Hynix Inc. System and operating method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108418582B (zh) 2018-02-11 2020-08-25 华为技术有限公司 传输信号的方法、驱动器及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211419A (ja) 2008-03-04 2009-09-17 Nec Access Technica Ltd インタフェース制御回路および情報処理装置
US20100246389A1 (en) * 2009-03-26 2010-09-30 Hitachi, Ltd. Transmission system, repeater and receiver
JP2011181006A (ja) 2010-03-03 2011-09-15 Ricoh Co Ltd データ通信装置、情報処理装置、データ通信方法、データ通信プログラム及び記録媒体
JP2013080519A (ja) 2007-12-27 2013-05-02 Ricoh Co Ltd 半導体集積回路及びその省電力制御方法、並びに半導体装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996097B1 (en) * 1999-05-21 2006-02-07 Microsoft Corporation Receiver-driven layered error correction multicast over heterogeneous packet networks
US6594318B1 (en) * 1999-12-02 2003-07-15 Qualcomm Incorporated Method and apparatus for computing soft decision input metrics to a turbo decoder
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
EP1775870A4 (en) * 2004-06-14 2012-11-07 Nec Corp METHOD AND DEVICE, SYSTEM AND PROGRAM FOR TWO-SIDED COMMUNICATION
US7395363B2 (en) 2004-09-09 2008-07-01 Intel Corporation Methods and apparatus for multiple bit rate serial communication
TWI273259B (en) 2004-11-09 2007-02-11 Via Tech Inc Built-in test architecture
US7757020B2 (en) 2005-06-29 2010-07-13 Intel Corporation Point-to-point link negotiation method and apparatus
WO2007100184A1 (en) * 2006-02-28 2007-09-07 Lg Electronics Inc. Digital broadcasting system and method of processing data
US7694204B2 (en) * 2006-03-09 2010-04-06 Silicon Image, Inc. Error detection in physical interfaces for point-to-point communications between integrated circuits
CN101206631B (zh) 2006-12-22 2010-09-29 中芯国际集成电路制造(上海)有限公司 高速外设部件互连接口及信号处理方法
JP5507813B2 (ja) * 2007-02-16 2014-05-28 パナソニック株式会社 送信装置及び受信装置
WO2009105095A1 (en) 2008-02-20 2009-08-27 Hewlett-Packard Development Company, L.P. Redriver with two reference clocks and method of operation thereof
JP2011071579A (ja) 2009-09-24 2011-04-07 Toshiba Corp PCIExpress通信システム
JP2011248814A (ja) 2010-05-31 2011-12-08 Nec Corp PCIExpressリンクエラー検出及び自動復旧機能を備えたデバイス
KR101717296B1 (ko) * 2010-12-15 2017-03-16 한국전자통신연구원 선택적 레인 운용을 위한 이더넷 장치 및 방법
TWI437828B (zh) * 2011-02-11 2014-05-11 Realtek Semiconductor Corp 傳輸介面的阻抗與增益補償裝置與方法
US9086965B2 (en) 2011-12-15 2015-07-21 International Business Machines Corporation PCI express error handling and recovery action controls
US8913705B2 (en) * 2012-08-27 2014-12-16 Oracle International Corporation Dynamic skew correction in a multi-lane communication link
US8879680B2 (en) * 2012-11-06 2014-11-04 Ati Technologies Ulc Adaptive clock mismatch compensation symbol insertion in signal transmissions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013080519A (ja) 2007-12-27 2013-05-02 Ricoh Co Ltd 半導体集積回路及びその省電力制御方法、並びに半導体装置
JP2009211419A (ja) 2008-03-04 2009-09-17 Nec Access Technica Ltd インタフェース制御回路および情報処理装置
US20100246389A1 (en) * 2009-03-26 2010-09-30 Hitachi, Ltd. Transmission system, repeater and receiver
JP2011181006A (ja) 2010-03-03 2011-09-15 Ricoh Co Ltd データ通信装置、情報処理装置、データ通信方法、データ通信プログラム及び記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12015508B2 (en) 2022-05-18 2024-06-18 SK Hynix Inc. System and operating method thereof

Also Published As

Publication number Publication date
KR20150091915A (ko) 2015-08-12
US9515675B2 (en) 2016-12-06
US20150222389A1 (en) 2015-08-06

Similar Documents

Publication Publication Date Title
US10997016B2 (en) Method of encoding data
US9048856B2 (en) Data bus inversion apparatus, systems, and methods
JP4981102B2 (ja) 符号化方法、システム及びコード
CN109426636B (zh) 一种fpga片间高位宽数据传输的方法及装置
US9621303B2 (en) Method and apparatus for valid encoding
US8000404B2 (en) Method and apparatus to reduce the effect of crosstalk in a communications interface
JP2018501706A5 (ko)
WO2013001631A1 (ja) 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法
CN102708080B (zh) 一种对齐高速串行通信通道的方法和系统
CN106063181B (zh) 接收机电路和在接收机电路上操作的方法
JP2011049635A (ja) データ受信装置、データ受信方法及びプログラム
JP2012516115A5 (ko)
KR102108380B1 (ko) 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로
EP1700224B1 (en) Receiver corporation
US8837628B2 (en) Method of transmission through single wire
US20160269173A1 (en) Serial transmission having a low level emi
US20160301550A1 (en) Transmitting device for high speed communication, interface circuit and system including the same
KR101038112B1 (ko) 디스플레이 포트의 디지털 엔코더 및 디지털 디코더
CN114650138A (zh) 一种i2c通信方法、系统、设备以及介质
IL259732A (en) Serial data multiplication
CN103765799B (zh) 电气空闲状态处理方法及快速外设组件互联pcie设备
KR20190096728A (ko) 스크램블러와 디스크램블러를 이용한 동기화 및 정렬 방법 및 장치
WO2017016081A1 (zh) 字符边界确定方法、装置和存储介质
CN118353495A (zh) 基于双模通信的数据传输方法、装置、设备及存储介质
US20150146824A1 (en) Indexed i/o symbol communications

Legal Events

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