KR20130113276A - Pci 익스프레스 디스큐 장치 및 그 방법 - Google Patents

Pci 익스프레스 디스큐 장치 및 그 방법 Download PDF

Info

Publication number
KR20130113276A
KR20130113276A KR1020120035725A KR20120035725A KR20130113276A KR 20130113276 A KR20130113276 A KR 20130113276A KR 1020120035725 A KR1020120035725 A KR 1020120035725A KR 20120035725 A KR20120035725 A KR 20120035725A KR 20130113276 A KR20130113276 A KR 20130113276A
Authority
KR
South Korea
Prior art keywords
data
symbol
bit
lane
skp
Prior art date
Application number
KR1020120035725A
Other languages
English (en)
Other versions
KR101876418B1 (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 KR1020120035725A priority Critical patent/KR101876418B1/ko
Priority to US13/835,084 priority patent/US9058266B2/en
Publication of KR20130113276A publication Critical patent/KR20130113276A/ko
Application granted granted Critical
Publication of KR101876418B1 publication Critical patent/KR101876418B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4013Coupling between buses with data restructuring with data re-ordering, e.g. Endian conversion
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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
    • 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/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • G06F13/4217Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous 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/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
    • G06F13/423Bus 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 with synchronous 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0626Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers plesiochronous multiplexing systems, e.g. plesiochronous digital hierarchy [PDH], jitter attenuators
    • H04J3/0629Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers plesiochronous multiplexing systems, e.g. plesiochronous digital hierarchy [PDH], jitter attenuators in a network, e.g. in combination with switching or multiplexing, slip buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/07Synchronising arrangements using pulse stuffing for systems with different or fluctuating information rates or bit rates
    • H04J3/073Bit stuffing, e.g. PDH
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • H04L7/005Correction by an elastic buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/10Arrangements for initial synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명은 PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는 레인 데이터 입력기; COM 심볼을 이용하여 상기 18비트 데이터에 대한 정렬을 수행하는 레인 데이터 정렬기; 및 상기 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하는 레인 데이터 감지기;를 포함하여 스큐를 보상하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치를 제공한다.

Description

PCI 익스프레스 디스큐 장치 및 그 방법{APPARATUS AND METHOD DESKEW ON PERIPHERAL COMPONENT INTERCONNECT EXPRESS}
본 발명은 PCI 익스프레스의 디스큐 장치 및 그 방법에 관한 것으로, 보다 자세하게는 PCI 익스프레스에서 입력되는 데이터를 18 비트를 기준으로 정렬하여 정적인 스큐를 보상함과 동시에 동적인 스큐도 보상할 수 있는 PCI 익스프레스의 디스큐 장치 및 그 방법에 관한 것이다.
PCI 익스프레스(Express)의 속도는 최근 고속화 경향으로 인해 초기에는2.5Gbps에서 현재는 5Gbps가 일반적이며, 8Gbps의 디바이스도 출시될 예정이다. PCI 익스프레스에서 기본적으로 사용되는 데이터 단위는 1 바이트, 즉 8 비트로 구성되어 있는데, 초기의 2.5 Gbps에서는 직렬화/병렬화 장치에서의 인터페이스의 데이터폭과 동작속도를 8-bit, 250MHz 혹은 16-bit, 125MHz로 사용하였으나, 최근의 5 Gbps에서는 프로토콜 엔진의 속도 한계로 인해 16-bit, 250MHz가 일반적이며, 8 Gbps 일 경우에는 16-bit, 500MHz혹은 32-bit, 250MHz가 될 가능성이 높다.
따라서, 수신하는 데이터가 일반적으로 16-bit나 32-bit일 경우에는 데이터를 구성하는 바이트가 정렬되어 있지 않아, 관련된 물리계층, 데이터링크계층, 트랜잭션계층 패킷을 검출시 별도로 정렬하는 로직이 필요하게 된다.
이러한 PCI 익스프레스 규격에서는 다중채널 스큐 발생시 물리계층 패킷인 TS 순서화 세트나 SKP 순서화 세트의 내부에 있는 COM 심볼을 이용하여 다중채널 스큐를 진행할 것을 권고하고 있으며, 그 밖의 디스큐 장치의 사용을 옵션으로 두고 있다.
도 1은 종래기술에 따른 9비트 데이터 입력을 기준으로 한 디스큐 장치의 구조를 간략하게 나타낸 도면이다. 도 1을 참조하면, 종래의 디스큐 장치는 PCIe 규격의 기본 단위인 1바이트 즉, 8 + 1= 9 비트를 기준으로 COM 심볼만을 기준으로 정렬하는 디스큐 장치로, 기준레인 처리기(20)는 기준레인의 9비트 데이터 입력기(10)로부터 9비트 데이터를 입력받으며, 입력받은 9비트 데이터는 기준레인처리기(20)의 9비트 레지스터(21)로 클럭에 맞추어 저장된다. 매 클럭마다 데이터는 하위의 9비트 레지스터(22~26)로 전송되며, 최종단의 9비트 레지스터(26)에는 COM 비교기(27)가 붙어있어서, COM 심볼이 발생할 때 1값을 생성한다. 최종단의 9비트 레지스터(26)의 값은 그대로 기준레인 처리기(20)로 출력값이 되어 9비트 데이터 출력기(70)로 출력된다. 추가레인 처리기(40)는 추가레인의 9비트 데이터 입력기(30)로부터 9비트 데이터를 입력받으며, 입력받은 9비트 데이터는 추가레인 처리기(40)의 9비트 레지스터(41)로 클럭에 맞추어 저장된다. 매 클럭마다 데이터는 하위의 9비트 레지스터로 전파되며, 각 9비트 레지스터(41~51)마다 COM 비교기(52~62)가 붙어있어서, COM 심볼이 발생할 때 1값을 생성한다. 이때, 11 x 9 비트 데이터 선택기(63)은 COM 비교기(52~62)의 출력값이 1이 될 때, 어떤 COM 비교기(52~62)가 1이 되는지를 판별하여 이를 기준으로 9비트 레지스터(41~51)에서 어떤 값을 선택할지를 결정한다. 11 x 9비트 데이터 선택기(63)에서 선택한 값은 9비트 데이터 출력기(80)로 출력된다.
상기와 같은 구조를 갖으며, COM 심볼만을 기준으로 데이터를 정렬하는 디스큐 장치는 대한민국 특허 출원 공개번호 제2006-00881522호(2006년 07월 13일 공개)에 개시된 '피씨아니 익스프레스의 바이트 스큐 보상방법 및 이를 위한 피씨아이 익스프레스 물리 계층 수신기'와 같이 수신되는 COM 심볼 이후의 데이터들이 동일한 타이밍이 되도록 데이터를 정렬하여 COM 심볼 이후에 바로 송신 정보를 담은 데이터가 오면 문제가 없으나 COM 심볼 이후에 SKP 심볼이 전송되어 추가 또는 삭제가 발생하게 되면, 바이트 스큐를 보상하지 못하는 경우가 발생하게 된다.
따라서, PCI 익스프레스에서 SKP 심볼의 추가 또는 삭제가 발생함 에도 불구하고 적절하게 스큐를 보상할 수 있는 장치 및 방법의 필요성이 절실하게 대두 된다.
본 발명은 상기와 같은 문제점을 해결하기 위해 발명된 것으로서, 다중 레인으로 구성된 PCI 익스프레스의 물리계층에서 데이터의 손실 없이 레인간의 스큐를 제거하기 위한 장치로, PCI 익스프레스 규격에서 데이터의 기본 단위인 1 바이트, 즉 8비트가 아닌 상위와 하위의 2바이트, 16 비트로 구성되어 있는 입력 데이터를 하위 바이트 기준으로 정렬함으로써, 중간에 데이터가 유실되지 않도록 해주는 PCI 익스프레스의 디스큐 장치 및 그 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 데이터 정렬상태의 변경을 감지함으로써, 레인간의 클럭속도 차이 보상을 위하여 사용되는 SKP 순서화 세트의 사용으로 발생하는 데이터 비 정렬 상태에 대처할 수 있는 PCI 익스프레스의 디스큐 장치 및 그 방법을 제공하는데 그 목적이 있다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 CI 익스프레스의 디스큐 장치는 PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는 레인 데이터 입력기; COM 심볼을 이용하여 상기 18비트 데이터에 대한 정렬을 수행하는 레인 데이터 정렬기; 및 상기 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하여, 상기 레인들 간의 동기화를 수행하는 레인 데이터 감지기;를 포함한다.
또한, 상기 레인 데이터 정렬기는, 상기 18비트 데이터 중 상기 COM 심볼이 포함된 9비트 데이터를 입력받는 9비트 하위 데이터 입력부; 상기 18비트 데이터 중 상기 COM 심볼이 아닌 심볼이 포함된 9비트 데이터를 입력받는 9비트 상위 데이터 입력부; 상기 하위 데이터 입력부의 내용을 저장하는 9비트 하위 데이터 레지스터; 상기 상위 데이터 입력부의 내용을 저장하는 9비트 상위 데이터 레지스터; 상기 입력된 9비트 데이터들의 정렬 여부에 따른 정렬신호를 출력하는 정렬 신호 출력기; 및상기 정렬 여부 판단에 따라 상기 9비트 데이터들의 출력을 제어하는 데이터 제어부;를 포함하는 것을 특징으로 한다.
또한, 상기 정렬 신호 출력기는, 상기 입력된 9비트 데이터들이 정렬된 정렬 상태로 판단되면 정렬신호를 '0'으로 출력하고, 상기 입력된 9비트 데이터들이 정렬되지 않은 비 정렬상태로 판단되면 정렬신호를 '1'로 출력하는 것을 특징으로 한다.
또한, 상기 정렬 신호 출력기는, 상기 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이고, 상기 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아닌 심볼이면, 상기 입력된 데이터가 정렬된 정렬 상태로 판단하는 것을 특징으로 한다.
또한, 상기 정렬 신호 출력기는, 상기 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아니고, 상기 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이면, 상기 입력된 데이터가 정렬되지 않은 비 정렬 상태로 판단하는 것을 특징으로 한다.
또한, 상기 데이터 제어부는, 상기 입력된 9비트 데이터들이 정렬 상태로 판단된 경우, 상기 하위 레지스터의 내용은 하위 데이터 출력기로 출력하고 상기 상위 레지스터의 내용은 상위 데이터 출력기로 출력하도록 제어하는 것을 특징으로 한다.
또한, 상기 데이터 제어부는, 상기 입력된 9비트 데이터들이 비 정렬 상태로 판단된 경우, 상기 하위 레지스터의 내용은 상위 데이터 출력기로 출력하고 상기 상위 레지스터의 내용은 하위 데이터 출력기로 출력하도록 제어하는 것을 특징으로 한다.
또한, 상기 레인 데이터 감지기는, 상기 18비트 데이터 정렬시 상기 SKP 심볼의 추가 또는 삭제에 따른 SKP 심볼 값을 출력하는 SKP 비교기; 상기 출력된 SKP 심볼 값과 대응되는 상기 COM 심볼 값을 출력하는 COM 비교기;를 포함하는 것을 특징으로 한다.
또한, 상기 레인 데이터 감지기는, 상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 요건을 충족시키지 못하면 상기 SKP 심볼 값을 상기 COM 심볼 값으로 변경하여 동기화를 이루는 것을 특징으로 한다.
또한, 상기 레인 데이터 감지기는, 상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여, SKP 순서화 세트의 중복이 발생하면 상기 COM 심볼 값 대신 상기 SKP 심볼 값으로 변경하는 동기화를 이루는 것을 특징으로 한다.
상기한 목적을 달성하기 위하여 본 발명의 실시예에 따른 CI 익스프레스의 디스큐 보상방법은 레인 데이터 입력기에 의해, PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는 단계; 레인 데이터 정렬기에 의해, 상기 18비트 데이터에 대한 정렬을 수행하는 단계; 및 레인 데이터 감지기에 의해, 상기 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하여 상기 레인들 간의 동기화를 수행하는 단계;를 포함한다.
또한, 상기 COM 심볼을 이용하여 상기 18비트 데이터의 정렬을 수행하는 단계에서, 상기 레인 데이터 정렬기에 의해, 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이고, 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아닌 심볼이면, 상기 입력된 9비트 데이터들이 정렬된 상태인 것을 특징으로 한다.
또한, 상기 COM 심볼을 이용하여 상기 18비트 데이터의 정렬을 수행하는 단계에서, 상기 레인 데이터 정렬기에 의해, 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아니고, 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이면, 상기 입력된 9비트 데이터들이 비 정렬된 상태인 것을 특징으로 한다.
또한, 상기 18비트 데이터 정렬시 상기 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하는 단계 이후에, 상기 레인 데이터 감지기에 의해, 상기 데이터 정렬시 상기 SKP 심볼의 추가 또는 삭제에 따라 출력되는 상기 SKP 심볼 값과 이에 대응되어 출력되는 상기 COM 심볼 값을 비교하여 심볼을 변경시키는 단계;를 더 포함하는 것을 특징으로 한다.
또한, 상기 심볼을 변경시키는 단계에서, 상기 레인 데이터 감지기에 의해, 상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 요건을 충족시키지 못하면 상기 SKP 심볼 값을 상기 COM 심볼 값으로 변경하여 동기화를 이루는 것을 특징으로 한다.
또한, 상기 심볼을 변경시키는 단계에서, 상기 레인 데이터 감지기에 의해, 상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 중복이 발생하면 상기 COM 심볼 값 대신 상기 SKP 심볼 값으로 변경하여 동기화를 이루는 것을 특징으로 한다.
상기와 같은 구성을 갖는 본 발명에 의한 PCI 익스프레스의 디스큐 장치 및 그 방법은 PCI 익스프레스 규격에서 데이터의 기본 단위인 1 바이트, 즉 8비트가 아닌 상위와 하위의 2바이트, 16 비트로 구성되어 있는 입력 데이터를 하위 바이트 기준으로 정렬함으로써, 중간에 데이터가 유실되지 않도록 해주는 효과가 있다.
또한, 본 발명은 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 데이터 정렬상태의 변경을 감지함으로써, 레인간의 클럭속도 차이 보상을 위하여 사용되는 SKP 순서화 세트의 사용으로 SKP 심볼이 추가 또는 삭제될 때 발생하는 데이터 비 정렬 상황에 대처할 수 있는 효과가 있다.
따라서, 본 발명은 PCI 익스프레스에서 입력되는 데이터를 18 비트를 기준으로 정렬하여 정적인 스큐를 보상함과 동시에 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 데이터 정렬상태의 변경을 감지하여 동적인 스큐를 보상하는 구조를 가짐으로써, 데이터 전송 효율을 높이고 PCI 익스프레스의 다양한 계층에서 별도의 데이터 정렬 없이 사용할 수 있는 효과가 있다.
도 1은 종래기술에 따른 9비트 데이터 입력을 기준으로 한 디스큐 장치의 구조를 나타내고,
도 2는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치의 구조를 나타내고,
도 3은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치에 채용되는 레인 데이터 정렬기의 구조를 나타내고,
도 4는 본 발명의 실시예에 따른 레인 데이터 정렬기의 동작을 예시하고,
도 5는 본 발명의 실시예에 레인 데이터 정렬기의 동작으로 불필요하게 추가된 SKP 심볼의 제거가 이루어지는 것을 예시하고,
도 6는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치에 채용되는 레인 데이터 감지기의 구조를 나타내고,
도 7은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법의 순서를 나타내고,
도 8은 종래기술을 이용하여 COM 심볼만으로 데이터 정렬시에 심볼 손실이 발생하는 것을 예시하고,
도 9는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 SKP 심볼의 변화를 감지하여 정렬상태를 변경시킬 때 데이터 손실이 발생하지 않는 것을 예시하고,
도 10은 비 정렬상태에서 정렬상태로 변화시에 심볼이 추가됨으로 인해 발생하는 것을 예시하고,
도 11은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 비 정렬상태에서 정렬상태로 변화시에 심볼 추가로 인해 발생하는 문제가 해결되는 것을 예시하고,
도 12는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 데이터 정렬기에 의해 레인이 정렬상태에서 비 정렬상태로 바뀌었다가 다시 정렬상태로 바뀔 때 레인간의 동적인 스큐가 제거되는 것을 예시하고,
도 13은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 데이터 정렬기의 사용으로 레인이 비 정렬상태에서 정렬상태로 바뀌었다가 다시 비 정렬상태로 바뀔 때 레인간의 동적인 스큐가 제거되는 것을 예시하고,
도 14, 15는 종래기술을 사용하여 COM 심볼 비교로 레인간의 스큐를 제거하는 방식을 사용할 때 데이터가 손실되는 문제점이 발생한다는 것을 예시하고,
도 16, 17은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에 의하여 데이터 손실의 문제점이 해결된다는 것을 예시하고,
도 18, 19는 종래기술을 사용하여 COM 심볼을 이용하여 디스큐를 처리할 때 심볼 추가로 인해 문제점이 발생한다는 것을 예시하고,
도 20, 21, 22는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에 의하여 심볼 추가로 인한 문제점이 해결된다는 것을 예시한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선, 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
이하에서는, 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치 및 그 방법에 대하여 첨부된 도면을 참고로 하여 상세히 설명한다.
도 2는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치의 구조를 나타내고, 도 3은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치에 채용되는 레인 데이터 정렬기의 구조를 나타내고, 도 4는 본 발명의 실시예에 따른 레인 데이터 정렬기의 동작을 예시하고, 도 5는 본 발명의 실시예에 레인 데이터 정렬기의 동작으로 불필요하게 추가된 SKP 심볼의 제거가 이루어지는 것을 예시하고, 도 6는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 장치에 채용되는 레인 데이터 감지기의 구조를 나타내고는 도면이다.
도 2를 참조하여 설명하면, 본 발명에 따른 PCI 익스프레스의 디스큐 장치는 크게 PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는 레인 데이터 입력기(100), COM 심볼을 이용하여 18비트 데이터에 대한 정렬을 수행하는 레인 데이터 정렬기(500), 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하여, 상기 레인들 간의 동기화를 수행하는 레인 데이터 감지기(900) 및 레인 데이터 출력기(300)를 포함하여 정적인 스큐를 보상함과 동시에 동적인 스큐도 보상할 수 있다.
즉, 본 발명에 따른 PCI 익스프레스의 디스큐 장치는 레인 데이터 입력기(100) 또는 추가 레인 데이터 입력기(200,300,400)를 통해 입력된 18비트 데이터가 데이터 정렬기(500)를 거쳐 정렬된 후에 레인 데이터 감지기(900)에 보내지고, 레인 데이터 감지기(900)는 SKP 심볼에서 SKP 심볼이 아닌 심볼로 변경되는 것을 감지하여 이를 다수개 구비되는 추가 레인 데이터 감지기(1000,1100,1200)에 전송한다. 이때, 레인 데이터 감지기(900)는 추가 레인 데이터 감지기(1000,1100,1200)가 가지고 있는 레지스터의 대략 반의 레지스터를 가지고 있다. 레인 데이터 감지기(900)에서 최종 레지스터 된 내용은 레인 데이터 출력기(300)로 출력된다.
여기서, 추가 레인 데이터 입력기(200,300,400)에서 수신한 18비트 데이터는 추가 데이터 정렬기(600,700,800)를 거쳐 정렬된 후에 추가 레인 데이터 감지기(1000,1100,1200)로 보내지고, 추가 레인 데이터 감지기(1000,1100,1200)는 자신의 레인에서 SKP 심볼에서 SKP 심볼이 아닌 심볼로 넘어갈 때를 감지하고 이를 레인 데이터 감지기(900)에서 수신된 신호를 바탕으로 출력할 레지스터를 동기화한다. 이때, 추가 레인 데이터 감지기(1000,1100,1200)에서 동기화된 데이터는 추가 레인 데이터 출력기(1400,1500,1600)로 출력된다. 추가 레인 데이터 입력기(200,300,400), 추가 데이터 정렬기(600,700,800), 추가 레인 데이터 감지기(1000,1100,1200), 추가 레인 출력기(1400,1500,1600)는 PCI 익스프레스의 레인 수만큼 증가 또는 감소시킬 수 있다.
레인 데이터 정렬기(500)는 도 3에 도시된 바와 같이, 레인간의 바이트 정렬을 위해 9비트 하위 데이터 입력부(510), 9비트 상위 데이터 입력부(520), 9비트 하위 데이터 레지스터(530), 9비트 상위 데이터 레지스터(540), 정렬 신호 출력기(550), 데이터 제어부(560), 9비트 하위 데이터 출력기(570), 9비트 상위 데이터 출력기(580)를 포함한다.
9비트 하위 데이터 입력부(510)는 18비트 데이터 중 COM 심볼이 포함된 9비트 데이터를 입력받는다. 9비트 상위 데이터 입력부(520)는 18비트 데이터 중 COM 심볼이 아닌 심볼이 포함된 9비트 데이터를 입력받는다. 9비트 하위 데이터 레지스터(530)는 하위 데이터 입력부(510)의 내용을 저장하고, 9비트 상위 데이터 레지스터(540)는 상위 데이터 입력부(520)의 내용을 저장한다.
정렬 신호 출력기(550)는 9비트 하위 데이터 입력부(510)에 입력된 9비트 데이터가 COM 심볼이고, 9비트 상위 데이터 입력부(520)에 입력된 9비트 데이터가 COM 심볼이 아닌 심볼이면, 상기 입력된 데이터가 정렬된 상태로 판단한다. 이때, 데이터 제어부(560)는 9비트 하위 데이터 레지스터(530)의 내용을 9비트 하위 데이터 출력기(570)로 보내고, 9비트 상위 데이터 레지스터(540) 내용을 9비트 상위 데이터 출력기(580)로 보낸다. 한편, 정렬 신호 출력기(550)는 9비트 하위 데이터 입력부(510)에 입력된 9비트 데이터가 COM 심볼이 아니고, 9비트 상위 데이터 입력부(520)에 입력된 9비트 데이터가 COM 심볼이면, 입력된 데이터가 정렬되지 않은 상태로 판단한다. 이때, 데이터 제어부(560)는 9비트 하위 데이터 레지스터(530)의 내용을 9비트 상위 데이터 출력기(580)로 보내고, 9비트 상위 데이터 레지스터(540) 내용을 9비트 하위 데이터 출력기(570)로 보낸다.
상기와 같이 구성된 레인 데이터 정렬기(500)의 동작을 도 4를 참조하여 자세히 설명하면, 9비트 상위 데이터 입력부(520)의 값이 COM 심볼이고 9비트 하위 데이터 입력부(510)의 값이 COM 심볼 아닌 TimeStamp 2 이후부터 정렬 신호 출력기(550)는 정렬신호를 0으로 내리고, 9비트 상위데이터 입력부(520)의 값이 COM 심볼이 아니고 9비트 하위데이터 입력부(510)의 값이 COM 심볼인 TimeStamp 8 이후부터 정렬 신호 출력기(550)는 그 이후로부터 정렬신호를 1로 올린다. 데이터 제어부(560)는 9비트 상위데이터 레지스터(540)와 9비트 하위데이터 레지스터(530)와 9비트 하위데이터 입력부(510)의 값을 조합하여 9비트 상위데이터 출력기(580) 및 9비트 하위데이터 비교기(570)로 값을 내보낸다. 한편, TimeStamp 8에서 9비트 하위데이터 입력부(510)로 들어오는 COM 심볼은 TimeStamp 9에서 9비트 상위데이터 레지스터(540)에 출력되었으나, 정렬단위가 바뀜으로 인해 TimeStamp 10에서 중복되어 출력되지만, COM 심볼은 이후 디스크램블러의 리셋 신호로 작용하므로 디스크램블러에서 연속으로 리셋이 걸리더라도 문제가 발생하지 않는다. 또한, TimeStamp 3에 9비트 하위데이터 레지스터(530)에 저장되어 있는 D3는 이 값을 출력하는 TimeStamp 4 이후에 데이터에서 제거되는데, COM 심볼을 이용하여 정렬 상태의 변경이 일어나는 경우는 앞의 심볼이 SKP 심볼로 구성되어서 SKP 심볼 한 개가 제거되었거나 추가 되었을때뿐이다. 따라서, SKP 심볼이 추가되어서 정렬 단위가 변경하는 경우를 도 5에서 표시한다. 도 4에서 제거된 D3 심볼은 도 5에서 SKP 심볼에 해당하며, PCIe 규격에서는 SKP 심볼이 1~5개까지 있는 SKP 순서화 세트를 모두 인식할 수 있으므로 SKP 심볼의 제거는 문제가 되지 않는다.
레인 데이터 감지기(900)는 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 18비트 데이터 정렬상태가 변경됨을 감지하여, 레인들 간의 동기화를 수행한다.
이를 위해, 레인 데이터 감지기(900)는 도 6에 도시된 바와 같이 SKP 비교기(910) 및 COM 비교기(920)를 포함한다. SKP 비교기(910)는 18비트 데이터 정렬시 SKP 심볼의 추가 또는 삭제에 따른 SKP 심볼 값을 출력하고, COM 비교기(920)는 출력된 SKP 심볼 값과 대응되는 COM 심볼 값을 출력한다. 레인 데이터 감지기(900)는 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 요건을 충족시키지 못하면 SKP 심볼 값을 COM 심볼 값으로 변경하거나, 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 중복이 발생하면 COM 심볼 값 대신 SKP 심볼 값으로 변경하여 동기화를 수행한다.
레인 데이터 출력기(1300)는 레인 데이터 정렬기(600)를 이용하여 정렬되고, 레인 데이터 감지기(900)로부터 COM 심볼 및 SKP 심볼의 변화가 감지된 의미있는 데이터를 출력한다. 예를 들어, 7 x 2 x 9 비트 데이터 선택기에서 9비트 상위 데이터 출력기에 출력하도록 선택받을 수 있는 경우의 수는 9비트 상위데이터 입력기에서 입력받은 데이터를 저장하는 9비트 레지스터만으로 1/7의 확률을 가지게 되며, 9비트 하위데이터 비교기에 출력하도록 선택받을 수 있는 경우의 수도 역시 1/7의 확률을 가지게 된다.
도 7은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법의 순서를 나타내고, 도 8은 종래기술을 이용하여 COM 심볼만으로 데이터 정렬시에 심볼 손실이 발생하는 것을 예시하고, 도 9는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 SKP 심볼의 변화를 감지하여 정렬상태를 변경시킬 때 데이터 손실이 발생하지 않는 것을 예시하고, 도 10은 비 정렬상태에서 정렬상태로 변화시에 심볼이 추가됨으로 인해 발생하는 것을 예시하고, 도 11은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 비 정렬상태에서 정렬상태로 변화시에 심볼 추가로 인해 발생하는 문제가 해결되는 것을 예시하고, 도 12는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 데이터 정렬기에 의해 레인이 정렬상태에서 비 정렬상태로 바뀌었다가 다시 정렬상태로 바뀔 때 레인간의 동적인 스큐가 제거되는 것을 예시하고, 도 13은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에서 데이터 정렬기의 사용으로 레인이 비 정렬상태에서 정렬상태로 바뀌었다가 다시 비 정렬상태로 바뀔 때 레인간의 동적인 스큐가 제거되는 것을 예시하고, 도 14, 15는 종래기술을 사용하여 COM 심볼 비교로 레인간의 스큐를 제거하는 방식을 사용할 때 데이터가 손실되는 문제점이 발생한다는 것을 예시하고,도 16, 17은 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에 의하여 데이터 손실의 문제점이 해결된다는 것을 예시하고, 도 18, 19는 종래기술을 사용하여 COM 심볼을 이용하여 디스큐를 처리할 때 심볼 추가로 인해 문제점이 발생한다는 것을 예시하고, 도 20, 21, 22는 본 발명의 실시예에 따른 PCI 익스프레스의 디스큐 보상 방법에 의하여 심볼 추가로 인한 문제점이 해결된다는 것을 예시한다.
도 7에 도시된 바와 같이, 본 발명에 따른 PCI 익스프레스의 디스큐 보상 방법은 먼저, 레인 데이터 입력기(100)에 의해, PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는다.(S100) 그 다음 레인 데이터 정렬기(500)에 의해, 18비트 데이터에 대한 정렬을 수행한다.(S200) 레인 데이터 감지기(900)에 의해, 상기 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 18비트 데이터 정렬상태가 변경됨을 감지하여 레인들 간의 동기화를 수행한다.(S300) 이하에서는 종래기술에서 발생되는 문제점을 상기와 같은 본 발명을 이용하여 해결하는 예시를 통해 자세하게 설명하기로 한다.
도 8은 종래의 데이터 정렬시 심볼 손실이 발생하는 문제는 나타내고 있다. TimeStamp 2에서부터는 9비트 상위데이터 입력기(520) 및 9비트 하위데이터 입력기(530)의 데이터가 SKP 심볼의 추가로 인해 정렬이 되지 않았으나, COM심볼만을 기준으로 데이터를 정렬하기 때문에, 데이터의 손실이 발생했다. 이의 결과는 TimeStamp 8에서 SKP 순서화 세트를 수신할 때 정렬 상태에 영향을 미쳐서 결과적으로 TimeStamp 9에서 9비트 하위데이터 레지스터(550)에 있는 D11이 손실되는 결과를 낳게 되며, 이것이 패킷 내의 의미 있는 데이터일 경우 이 패킷은 결국 손실된다. 따라서, 본 발명에서는 이를 방지하기 위해 정렬 기준을 COM 심볼만을 기준으로 하는 것이 아니라, SKP 심볼의 추가 또는 삭제로 인한 정렬 단위의 변경도 감지하며, 이를 도 9에 나타내었다.
도 9에 도시된 바와 같이, TimeStamp 2에서 SKP 심볼의 추가로 인해 정렬상태가 비 정렬상태로 전환될 때, 정렬 신호 출력기는 이를 감지하여 정렬신호를 0으로 내린다. 이후는 비 정렬상태를 유지하므로, 도 9에서의 D11의 손실이 없다. 이때, SKP 심볼의 추가로 정렬상태가 변경되는 경우는 정렬상태가 비 정렬상태로 전환되는 경우 외에 비 정렬상태가 정렬상태로 변경되는 경우도 감지해야 한다. 비 정렬상태가 정렬상태로 변경되는 경우에는 심볼의 추가로 인해 문제가 발생할 수 있는데, 이를 나타낸 것이 도 10이다.
도 10에서는 TimeStamp 9에서 9비트 하위데이터 입력기(510)와 9비트 상위데이터 레지스터(540)의 값을 검사하여 SKP 심볼의 추가로 인해 비 정렬상태가 정렬상태로 변경됨을 감지할 수 있고, 이는 TimeStamp 10 이후부터 반영된다. 이때, 심볼의 추가가 발생하는데 여기서는 D8 심볼이 추가되었다. 심볼의 추가는 보 발명의디스큐 장치 다음의 디스크램블러에 영향을 미치게 되어, 이후 데이터가 손상되게 하므로, 이를 방지하는 방식이 필요하다. 이런 방식을 이용한 것이 도 11이다.
도 11에서 TimeStamp 10에서의 9비트 상위데이터 레지스터(540)에는 9비트 하위 데이터 입력기(510)의 값이 반영되는 대신에 SKP 심볼을 사용하게 된다. PCI 익스프레스 규격에서의 SKP 순서화 세트는 SKP 심볼의 개수가 3개로 정해진 것이 아니라 1~5개까지 가변하는 것을 모두 감지할 수 있으며, SKP 심볼의 추가 또는 삭제는 디스크램블러에 영향을 미치지 않으므로, 데이터는 손상되는 일이 없다.
도 12는 SKP 심볼의 추가 또는 삭제로 인해 정렬상태에서 비 정렬상태로 바뀌었다가 다시 정렬상태로 바뀔 때 본 발명의 동작을 나타내고 있다. 여기서 두 개의 레인을 표시하였는데, 각 레인의 SKP 심볼의 추가 또는 삭제가 개별적으로 이루어질 때 동적으로 스큐가 발생할 수 있다. 여기서 본 발명의 구조를 사용하면 레인마다 SKP 심볼의 추가 또는 삭제로 인해 발생하는 동적인 스큐가 제거되고, 데이터가 순서대로 정렬된다.
도 13은 SKP 심볼의 추가 또는 삭제로 인해 비 정렬상태에서 정렬상태로 바뀌었다가 다시 비 정렬상태로 바뀔 때 본 발명의 동작을 나타내고 있다. 여기서 두 개의 레인을 표시하였는데, 각 레인의 SKP 심볼의 추가 또는 삭제가 개별적으로 이루어질 때 동적으로 스큐가 발생할 수 있다. 여기서 본 발명의 구조를 사용하면 레인마다 SKP 심볼의 추가 또는 삭제로 인해 발생하는 동적인 스큐가 제거되고, 데이터가 순서대로 정렬된다.
도 14, 15에서는 COM 심볼 비교로 레인간의 스큐를 제거하는 방식을 사용하였을 때, 레인마다 SKP 심볼의 추가 또는 삭제가 개별적으로 이루어질 때 동적으로 발생하는 스큐 때문에 COM 심볼을 이용하여 레인간의 스큐를 제거하게 되면 발생하는 문제를 나타내고 있다. 추가 레인 데이터 감지기와 레인 데이터 감지기의 COM 심볼 검출 결과를 바탕으로 자신의 COM 심볼을 동기화할 경우에 TimeStamp 11에서 D6와 D7이 유실되고, TimeStamp 14에서 D14와 D15가 유실되는 결과를 가지게 되는 경우를 나타내었다. 즉 COM 심볼을 이용하여 동기화를 시킬 경우에는 데이터의 유실이 발생하며, 이는 패킷 오류로 이어지게 된다. 또한 출력되는 데이터에서도 동기화를 이룰 수 없다. 따라서, 이에 대한 대응이 필요한데 이를 위해 본 발명에서는 COM 심볼 검출 대신에 SKP 심볼의 변화 즉, SKP 심볼의 삭제 또는 추가에 따른 변화를 감지하는 방식을 사용한다.
도 16, 17은 도 14, 15에서 나타낸 데이터 손실의 문제점이 본 발명을 이용하여 해결되는 것을 나타내고 있다. 일상적으로 9비트 상위 데이터 출력기 및 9비트 하위 데이터 출력기는 9비트 하위 데이터 레지스터 및 9비트 상위 데이터 레지스터(540)의 값을 출력하다가 SKP 비교기에서 SKP 심볼의 변화가 감지된 TimeStamp 7 이후부터는 동일하게 SKP 심볼의 변화가 있는 9비트 하위 데이터 레지스터 및 9비트 상위 데이터 레지스터의 값을 출력하며, 또다시 SKP 심볼의 변화가 감지된 TimeStamp 10 이후부터는 9비트 상위 데이터 레지스터 및 9비트 하위 데이터 레지스터의 값을 출력하게 된다. 단 TimeStamp 10에서는 COM 비교기의 값도 1이므로 이 경우에는 9비트 레지스터의 값을 출력할 경우에는 SKP 심볼 두 개만으로 구성되어 SKP 순서화 세트의 요건을 충족시키지 못하므로, 이를 방지하기 위해 아래의 SKP 심볼을 COM 심볼로 변환한다. 또다시 SKP 심볼의 변화가 감지된 TimeStamp 14 이후부터는 동일하게 SKP 심볼의 변화가 있는 9비트 상위 데이터 레지스터 및 9비트 하위 데이터 레지스터의 값을 출력하게 된다.
도 18, 19는 COM 심볼을 이용하여 디스큐를 처리했을 때 나타나는 또 다른 문제를 나타내고 있다. TimeStamp 8에서 기준레인에는 SKP 심볼이 추가되었으나, 추가레인에서는 이를 감지하지 못하므로 데이터가 그대로 출력됨으로 인해 레인간 동기화를 이루지 못하며, 또한 이후에 추가되는 SKP 심볼에 대해서는 COM 및 SKP 형태가 추가됨으로 인해 SKP 순서화 세트 자체가 추가된 것으로 인식되므로 이럴 경우 1개만 수신된 SKP 순서화 세트를 2개 수신된 것으로 오해하여 이후 동작시에 문제를 발생할 소지가 있다.
도 20, 21, 22는 본 발명을 이용하여 도 18, 19의 문제점이 해결되는 모양을 나타내고 있다. TimeStamp 8 이전까지는 9비트 상위 데이터 레지스터 및 9비트 하위 데이터 레지스터의 값을 9비트 상위 데이터 출력기와 9비트 하위 데이터 출력기에서 출력하다가, TimeStamp 8에서 기준레인의 SKP 심볼의 변화를 감지한 이후에는 9비트 상위 데이터 레지스터 및 9비트 하위 데이터 레지스터의 값을 9비트 상위데이터 출력기와 9비트 하위 데이터 출력기에서 출력하기 시작한다. 이후에 또다시 SKP 심볼의 변화를 감지한 TimeStamp 12 이후부터는 9비트 상위 데이터 레지스터 및 9비트 하위 데이터 레지스터의 값을 9비트 상위 데이터 출력기와 9비트 하위 데이터 출력기에서 출력한다. 단 TimeStamp 12에서 COM 비교기의 값도 1이므로, 이 때 SKP 순서화 세트의 중복을 방지하기 위해서 COM 심볼 값 대신에 SKP 심볼 값으로 변경하여 출력한다. 이후에 SKP의 변화를 감지한 TimeStamp 17 이후부터는 9비트 상위 데이터 레지스터 및 9비트 하위 데이터 레지스터의 값을 9비트 상위데이터 출력기와 9비트 하위데이터 출력기에서 출력한다.
이처럼, 본 발명은 PCI 익스프레스에서 입력되는 데이터를 18 비트를 기준으로 정렬하여 정적인 스큐를 보상함과 동시에 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 데이터 정렬상태의 변경을 감지하여 동적인 스큐를 보상하는 구조를 가짐으로써, 데이터 전송 효율을 높이고 PCI 익스프레스의 다양한 계층에서 별도의 데이터 정렬 없이 사용할 수 있다.
이상에서, 본 발명에 따른 바람직한 실시예에 대해 설명하였으나, 다양한 형태로 변형이 가능하며, 본 기술분야에서 통상의 지식을 가진자라면 본 발명의 특허청구범위를 벗어남이 없이 다양한 변형예 및 수정예를 실시할 수 있을 것으로 이해된다.
100 : 레인 데이터 입력기 500 : 레인 데이터 정렬기
900 : 레인 데이터 감지기 1300 : 레인 데이터 출력기

Claims (16)

  1. PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는 레인 데이터 입력기;
    COM 심볼을 이용하여 상기 18비트 데이터에 대한 정렬을 수행하는 레인 데이터 정렬기; 및
    상기 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하여, 상기 레인들 간의 동기화를 수행하는 레인 데이터 감지기;
    를 포함하여 스큐를 보상하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  2. 제 1항에 있어서,
    상기 레인 데이터 정렬기는,
    상기 18비트 데이터 중 상기 COM 심볼이 포함된 9비트 데이터를 입력받는 9비트 하위 데이터 입력부;
    상기 18비트 데이터 중 상기 COM 심볼이 아닌 심볼이 포함된 9비트 데이터를 입력받는 9비트 상위 데이터 입력부;
    상기 하위 데이터 입력부의 내용을 저장하는 9비트 하위 데이터 레지스터;
    상기 상위 데이터 입력부의 내용을 저장하는 9비트 상위 데이터 레지스터;
    상기 입력된 9비트 데이터들의 정렬 여부에 따른 정렬신호를 출력하는 정렬 신호 출력기; 및
    상기 정렬 여부 판단에 따라 상기 9비트 데이터들의 출력을 제어하는 데이터 제어부;
    를 포함하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  3. 제 2항에 있어서,
    상기 정렬 신호 출력기는,
    상기 입력된 9비트 데이터들이 정렬된 정렬 상태로 판단되면 정렬신호를 '0'으로 출력하고, 상기 입력된 9비트 데이터들이 정렬되지 않은 비 정렬상태로 판단되면 정렬신호를 '1'로 출력하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  4. 제 3항에 있어서,
    상기 정렬 신호 출력기는,
    상기 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이고, 상기 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아닌 심볼이면, 상기 입력된 데이터가 정렬된 정렬 상태로 판단하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  5. 제 3항에 있어서,
    상기 정렬 신호 출력기는,
    상기 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아니고, 상기 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이면, 상기 입력된 데이터가 정렬되지 않은 비 정렬 상태로 판단하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  6. 제 2항에 있어서,
    상기 데이터 제어부는,
    상기 입력된 9비트 데이터들이 정렬 상태로 판단된 경우, 상기 하위 레지스터의 내용은 하위 데이터 출력기로 출력하고 상기 상위 레지스터의 내용은 상위 데이터 출력기로 출력하도록 제어하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  7. 제 2항에 있어서,
    상기 데이터 제어부는,
    상기 입력된 9비트 데이터들이 비 정렬 상태로 판단된 경우, 상기 하위 레지스터의 내용은 상위 데이터 출력기로 출력하고 상기 상위 레지스터의 내용은 하위 데이터 출력기로 출력하도록 제어하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  8. 제 1항에 있어서,
    상기 레인 데이터 감지기는,
    상기 18비트 데이터 정렬시 상기 SKP 심볼의 추가 또는 삭제에 따른 SKP 심볼 값을 출력하는 SKP 비교기;
    상기 출력된 SKP 심볼 값과 대응되는 상기 COM 심볼 값을 출력하는 COM 비교기;
    를 포함하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  9. 제 8항에 있어서,
    상기 레인 데이터 감지기는,
    상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 요건을 충족시키지 못하면 상기 SKP 심볼 값을 상기 COM 심볼 값으로 변경하여 동기화를 이루는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  10. 제 8항에 있어서,
    상기 레인 데이터 감지기는,
    상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여, SKP 순서화 세트의 중복이 발생하면 상기 COM 심볼 값 대신 상기 SKP 심볼 값으로 변경하는 동기화를 이루는 것을 특징으로 하는 PCI 익스프레스의 디스큐 장치.
  11. 레인 데이터 입력기에 의해, PCI 익스프레스 각각의 레인(lane)으로부터 수신되는 18비트 데이터를 입력받는 단계;
    레인 데이터 정렬기에 의해, 상기 18비트 데이터에 대한 정렬을 수행하는 단계; 및
    레인 데이터 감지기에 의해, 상기 18비트 데이터 정렬시 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하여 상기 레인들 간의 동기화를 수행하는 단계;
    를 포함하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 보상방법.
  12. 제 11항에 있어서,
    상기 COM 심볼을 이용하여 상기 18비트 데이터의 정렬을 수행하는 단계에서,
    상기 레인 데이터 정렬기에 의해, 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이고, 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아닌 심볼이면, 상기 입력된 9비트 데이터들이 정렬된 상태인 것을 특징으로 하는 PCI 익스프레스의 디스큐 보상방법.
  13. 제 11항에 있어서,
    상기 COM 심볼을 이용하여 상기 18비트 데이터의 정렬을 수행하는 단계에서,
    상기 레인 데이터 정렬기에 의해, 하위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이 아니고, 상위 데이터 입력부에 입력된 9비트 데이터가 상기 COM 심볼이면, 상기 입력된 9비트 데이터들이 비 정렬된 상태인 것을 특징으로 하는 PCI 익스프레스의 디스큐 보상방법.
  14. 제 11항에 있어서,
    상기 18비트 데이터 정렬시 상기 SKP 심볼의 삭제 또는 추가에 따른 상기 18비트 데이터 정렬상태가 변경됨을 감지하는 단계 이후에,
    상기 레인 데이터 감지기에 의해, 상기 데이터 정렬시 상기 SKP 심볼의 추가 또는 삭제에 따라 출력되는 상기 SKP 심볼 값과 이에 대응되어 출력되는 상기 COM 심볼 값을 비교하여 심볼을 변경시키는 단계;를 더 포함하는 것을 특징으로 하는 PCI 익스프레스의 디스큐 보상방법.
  15. 제 14항에 있어서,
    상기 심볼을 변경시키는 단계에서,
    상기 레인 데이터 감지기에 의해, 상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 요건을 충족시키지 못하면 상기 SKP 심볼 값을 상기 COM 심볼 값으로 변경하여 동기화를 이루는 것을 특징으로 하는 PCI 익스프레스의 디스큐 보상방법.
  16. 제 14항에 있어서,
    상기 심볼을 변경시키는 단계에서,
    상기 레인 데이터 감지기에 의해, 상기 출력된 SKP 심볼 값과 COM 심볼 값을 비교하여 SKP 순서화 세트의 중복이 발생하면 상기 COM 심볼 값 대신 상기 SKP 심볼 값으로 변경하여 동기화를 이루는 것을 특징으로 하는 PCI 익스프레스의 디스큐 보상방법.
KR1020120035725A 2012-04-05 2012-04-05 Pci 익스프레스 디스큐 장치 및 그 방법 KR101876418B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120035725A KR101876418B1 (ko) 2012-04-05 2012-04-05 Pci 익스프레스 디스큐 장치 및 그 방법
US13/835,084 US9058266B2 (en) 2012-04-05 2013-03-15 Deskew apparatus and method for peripheral component interconnect express

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120035725A KR101876418B1 (ko) 2012-04-05 2012-04-05 Pci 익스프레스 디스큐 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20130113276A true KR20130113276A (ko) 2013-10-15
KR101876418B1 KR101876418B1 (ko) 2018-07-10

Family

ID=49293282

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120035725A KR101876418B1 (ko) 2012-04-05 2012-04-05 Pci 익스프레스 디스큐 장치 및 그 방법

Country Status (2)

Country Link
US (1) US9058266B2 (ko)
KR (1) KR101876418B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102052866B1 (ko) 2014-08-26 2019-12-09 한국전자통신연구원 패킷 송수신 시스템, 장치 및 방법
US9866413B2 (en) 2015-01-28 2018-01-09 Mediatek Inc. Transition enforcing coding receiver for sampling vector signals without using clock and data recovery
US9720439B2 (en) 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
EP3214554B1 (en) * 2016-01-25 2018-06-06 MediaTek Inc. Transition enforcing coding receiver for sampling vector signals without using clock and data recovery
US10445265B2 (en) * 2017-10-20 2019-10-15 Cisco Technology, Inc. Method and apparatus for deskewing decentralized data streams

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464307B2 (en) * 2003-03-25 2008-12-09 Intel Corporation High performance serial bus testing methodology
TWI249681B (en) * 2003-07-02 2006-02-21 Via Tech Inc Circuit and method for aligning data transmitting timing of a plurality of lanes
US7007115B2 (en) * 2003-07-18 2006-02-28 Intel Corporation Removing lane-to-lane skew
US20050024926A1 (en) * 2003-07-31 2005-02-03 Mitchell James A. Deskewing data in a buffer
US7631118B2 (en) * 2003-12-31 2009-12-08 Intel Corporation Lane to lane deskewing via non-data symbol processing for a serial point to point link
US7339995B2 (en) * 2003-12-31 2008-03-04 Intel Corporation Receiver symbol alignment for a serial point to point link
US7174412B2 (en) * 2004-08-19 2007-02-06 Genesys Logic, Inc. Method and device for adjusting lane ordering of peripheral component interconnect express
KR100586047B1 (ko) * 2004-11-03 2006-06-08 한국전자통신연구원 PCI Express 프로토콜용 16비트 데이터스크램블링/디스크램블링 장치 및 방법
KR100602872B1 (ko) * 2004-11-29 2006-07-28 한국전자통신연구원 Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치
KR20060081522A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 피씨아이 익스프레스의 바이트 스큐 보상방법 및 이를위한 피씨아이 익스프레스 물리 계층 수신기
US7230549B1 (en) * 2005-09-09 2007-06-12 Qlogic, Corporation Method and system for synchronizing bit streams for PCI express devices
US8867683B2 (en) * 2006-01-27 2014-10-21 Ati Technologies Ulc Receiver and method for synchronizing and aligning serial streams
US20080147916A1 (en) * 2006-12-19 2008-06-19 Via Technologies, Inc. Data synchronization method of data buffer device
KR100846352B1 (ko) * 2006-12-28 2008-07-15 전자부품연구원 4 x pci―express 프레임 변환 모듈 및 이를이용한 pci―express 프레임 변환 장치
KR101419292B1 (ko) * 2008-02-20 2014-07-14 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 2개의 기준 클럭을 구비한 리드라이버 및 그의 동작 방법
US8285884B1 (en) * 2008-11-03 2012-10-09 Integrated Device Technology Inc. Data aggregation system and method for deskewing data at selectable data rates
US8161210B1 (en) * 2008-11-03 2012-04-17 Integrated Device Technology Inc. Multi-queue system and method for deskewing symbols in data streams
US8806093B2 (en) * 2010-04-01 2014-08-12 Intel Corporation Method, apparatus, and system for enabling a deterministic interface
WO2013001631A1 (ja) * 2011-06-29 2013-01-03 富士通株式会社 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法

Also Published As

Publication number Publication date
US9058266B2 (en) 2015-06-16
US20130268814A1 (en) 2013-10-10
KR101876418B1 (ko) 2018-07-10

Similar Documents

Publication Publication Date Title
US8001412B2 (en) Combined alignment scrambler function for elastic interface
KR101470989B1 (ko) 다중 직렬 수신기용 자동 데이터 정렬기를 위한 방법, 장치, 및 시스템
US8913705B2 (en) Dynamic skew correction in a multi-lane communication link
US6804800B2 (en) Method and apparatus for detecting and recovering from errors in a source synchronous bus
EP2976866B1 (en) Timestamp correction in a multi-lane communication link with skew
US7461287B2 (en) Elastic interface de-skew mechanism
KR20130113276A (ko) Pci 익스프레스 디스큐 장치 및 그 방법
US20120030438A1 (en) Method and Apparatus for Performing Skew Removal in the Receiver of a Multi-Lane Communication Link
US20050188146A1 (en) FIFO module, deskew circuit and rate matching circuit having the same
US20060209735A1 (en) Auto realignment of multiple serial byte-lanes
KR100440585B1 (ko) 대용량 데이터의 분할 전송을 위한 다중 레인간의 비틀림정렬 장치 및 방법, 그리고 기록매체
US7634692B2 (en) SATA primitive prediction and correction
US6952739B2 (en) Method and device for parameter independent buffer underrun prevention
US7197098B2 (en) High-speed serial data recovery
JP4917901B2 (ja) 受信装置
US7558893B2 (en) Latency optimized data alignment racheting scheme
CN113946526B (zh) 一种高速串行总线的多通道数据绑定系统及方法
US20120317380A1 (en) Device and method for a half-rate clock elasticity fifo
US20030112827A1 (en) Method and apparatus for deskewing parallel serial data channels using asynchronous elastic buffers
US7450038B2 (en) Determining oversampled data to be included in unit intervals
CN115699668A (zh) 宽弹性缓冲器
WO2024086657A1 (en) Low latency pcie retimer with skew correction
JPS63229949A (ja) No.7方式における有効信号識別回路
JPH08184633A (ja) 活線挿抜検出方式
JPH06197155A (ja) 文字列受信検出回路

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
GRNT Written decision to grant