KR20060059615A - Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치 - Google Patents
Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치 Download PDFInfo
- Publication number
- KR20060059615A KR20060059615A KR1020040098749A KR20040098749A KR20060059615A KR 20060059615 A KR20060059615 A KR 20060059615A KR 1020040098749 A KR1020040098749 A KR 1020040098749A KR 20040098749 A KR20040098749 A KR 20040098749A KR 20060059615 A KR20060059615 A KR 20060059615A
- Authority
- KR
- South Korea
- Prior art keywords
- com
- alignment
- data
- buffers
- buffer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/10—Distribution of clock signals, e.g. skew
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
본 발명은 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치에 관한 것으로, 특히 PHY 레이어 수신부(110)로부터 데이터 및 컨트롤 신호를 입력받아 COM 심볼이 상위 바이트에서 검출될 경우에만 얼라인 신호를 출력하는 COM 정렬버퍼 제어부(231); COM 정렬버퍼 제어부(231)의 제어하에 PHY 레이어 수신부(110)의 신호를 COM 정렬하는 다수개의 COM 정렬 버퍼(232); COM 정렬 버퍼(232)의 출력 신호의 COM 심볼 위치를 비교하여 그 위치를 기반으로 먹스 제어신호를 출력하는 디스큐 버퍼 제어부(233); 및 다수개의 COM 정렬 버퍼(232)를 통해 COM 정렬된 신호를 각각 입력받은 후 각각 스큐 제거 동작을 수행하는 다수개의 디스큐 버퍼(244)로 구성된 것을 특징으로 하며, 이러한 본 발명은 시스템 구현시 16비트로 구성된 다중 레인 간의 스큐로 인한 채널별로 병렬화된 데이터의 동기가 어긋나는 현상을 없애주어 시스템 구현의 안정화를 제공해 준다는 뛰어난 효과가 있다.
PCI 익스프레스 프로토콜, 다중채널 스큐 제거, PHY 레이어, MAC 레이어,
Description
도 1은 본 발명이 적용된 PCI 익스프레스 PHY 인터페이스를 나타낸 기능 블록도,
도 2는 도 1에 따른 PCI 익스프레스 PHY 인터페이스에서 PHY 레이어 수신부의 구성을 나타낸 기능 블록도,
도 3a 내지 도 3c는 PCI 익스프레스 PHY 프로토콜에서의 TS1, TS2 및 SKP 오더드 셋의 모습을 보여주는 도면,
도 4는 본 발명의 일 실시예에 따른 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치의 구성을 나타낸 기능 블록도,
도 5는 도 4에 따른 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치에서 COM 정렬 버퍼의 내부 구성을 나타낸 기능 블록도,
도 6은 도 5에 따른 COM 정렬 버퍼에서 TS1 오더드 셋의 COM 심볼이 상위 바이트로 입력될 경우 하위 바이트로 COM 정렬이 수행되는 모습을 보여주는 도면,
도 7은 도 5에 따른 COM 정렬 버퍼의 시뮬레이션 결과를 보여주는 도면,
도 8은 도 4에 따른 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치 에서 디스큐 버퍼의 동작 원리를 보여주는 도면,
도 9는 도 8에 따른 디스큐 버퍼의 내부 구성을 나타낸 기능 블록도,
도 10은 도 5에 따른 COM 정렬 버퍼와 도 8에 따른 디스큐 버퍼의 통합 시뮬레이션 결과를 보여주는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : PHY 레이어 110 : PHY 레이어 수신부
111 : 8b/10b 디코더 112 : 8비트/16비트 전환부
200 : MAC 레이어 210 : 송신부
220 : LTSSM 230 : MAC 수신부
231 : COM 정렬버퍼 제어부 231a : COM 심볼 감지부
231b : COM 정렬신호 생성부 232 : COM 정렬 버퍼
232a : 제 1 상위바이트 버퍼(HB1) 232b : 제 2 상위바이트 버퍼(HB2)
232c : 제 1 하위바이트 버퍼(LB1) 232d : 제 2 하위바이트 버퍼(LB2)
232e : 먹스 233 : 디스큐 버퍼 제어부
233a : COM 심볼 감지부 233b : COM 위치 비교부
233c : 먹스 제어신호 생성부 244 : 디스큐 버퍼
234a : 16비트 버퍼 244b : 먹스
본 발명은 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치에 관한 것으로, 더욱 상세하게는 16비트/125MHz PCS-MAC 인터페이스를 가지는 PCI 익스프레스 프로토콜에서 MAC 영역(인텔에서 제안한 PCI 익스프레스용 PHY 인터페이스(PIPE Macro 1.0a ) : 규격 참조)에 위치하여 16비트로 구성된 다중 레인 간의 스큐를 제거해주는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치에 관한 것이다.
도 1은 PCI 익스프레스 PHY 인터페이스를 나타낸 기능 블록도이다. 일반적으로, PIPE 규격에 의하면 PCI 익스프레스 PHY는 크게 PCS 및 PMA 영역을 포함하는 PHY 레이어(100)와; 송신부(210), LTSSM(Link Training and Status State Machine)(220) 및 MAC 수신부(230)를 포함하는 MAC 레이어(200)로 이루어진다. 이 때, 상기 PHY 레이어(100)와 MAC 레이어(200)의 인터페이스는 16비트의 데이터 신호(TxD, RxD), 2비트의 컨트롤 신호(TxKD, RxKD), 7비트의 커맨드(command) 및 6비트의 상태(status) 등의 제어 신호들이 있다.
한편, 상기 PHY 레이어(100) 내 PHY 레이어 수신부(110)의 종단은 도 2에 도시된 바와 같이 8b/10b 디코더(111)와 8비트를 16비트로 전환시키는 8비트/16비트 전환부(112)으로 구성되어 있다. 상기 8b/10b 디코더(111)는 10 비트로 인코딩된 신호를 8비트 데이터 신호와 1비트 제어신호로 디코딩하는 역할을 하며, 도시치 않은 CDR(clock data recovery) 블록에서 생성된 250MHz 클럭에 의해 순차적으로 동작한다. 이 때, 8비트/250MHz 데이터 신호는 프로그래머블 로직(FPGA)에서 처리하기에는 동작 속도가 너무 빨라 MAC 영역 설계가 힘들기 때문에 8비트/16비트 전환부(112)를 통해 데이터 폭은 두 배로 속도는 절반으로, 즉 16비트/125MHz 인터페이스로 변경된다.
또한, PCI 익스프레스 프로토콜은 단일 레인(x1) 뿐 아니라 다중레인(x2, x4, x8, x12, x16, x32)을 지원한다. 따라서, PCI 프로토콜 PHY나 MAC 레이어 수신부(230)에는 다중 레인간의 데이터 스큐를 제거하는 블록이 반드시 필요하게 된다. 이 때, PCI 익스프레스 규격에서는 트레이닝 시퀀스(Training sequence : TS)나 SKP 오더드 셋을 사용하여 다중 레인간의 스큐를 제거할 것을 권고하고 있다. 왜냐하면 링크 트레이닝 시 발생하는 TS 신호나 상대편 트랜시버 CDR의 일래스틱 버퍼(Elastic buffer)를 위한 SKP 심볼은 스큐를 제거하는 과정에서 심볼의 가감이 발생하더라도 문제시 되지 않기 때문이다. 그리고, TS와 SKP 오더드 셋은 모든 레인에 동시에 전송되며 항상 COM 심볼 헤더를 가지고 있기 때문에 COM 심볼을 활용한 디스큐 블록 설계가 용이하기 때문이다.
도 3a 내지 도 3c는 다중 레인에서 TS(1a) 및 SKP(1b) 오더드 셋(ordered set)의 모습을 나타내고 있다. 이 때, TS 오더드 셋(ordered set)(1a)은 COM 심볼로 시작해서 총 16바이트로 구성되어 있으며, 식별자(Identifier)에 의해서 TS1, TS2 오더드 셋으로 구분된다. 한편, SKP 오더드 셋(1b) 역시 TS 오더드 셋(ordered set(1a)과 마찬가지로 COM 심볼로 시작되며, 3개의 SKP 심볼로 구성되어 있다. 이 때, SKP 심볼은 CDR의 일래스틱 버퍼(Elastic buffer)에서 가감이 발생하여 최종 1~5개의 SKP이 COM 뒤에 따라올 수 있다.
상술한 바와 같이, 상기 도 1에 도시된 PCI 익스프레스 프로토콜 같은 고속 직렬 프로토콜에서는 데이터 직병렬기(SERDES)를 사용하여 고속의 직렬 데이터를 저속의 병렬 데이터로 전환한다. 한편, 대부분의 직렬 프로토콜은 다중 채널 혹은 레인을 지원하며, 다중 직렬 고속 프로토콜로 전송된 데이터는 전송 선로를 거쳐 수신측 다중 데이터 직병렬기(SERDES)에서 병렬화가 이루어지게 되는데, 이 때 전송 선로의 지연, 특성 차이, 데이터 직병렬기(SERDES) 동작 차이 등으로 인해 채널별로 병렬화된 데이터의 동기가 어긋날 경우가 발생하게 된다. 따라서, MAC 레이어(200)의 MAC 수신측(230)에서는 반드시 다중 채널 스큐(Skew) 제거 장치를 만들어서 채널 별 동기화를 이뤄야 한다.
하지만, 종래의 PCI 익스프레스 프로토콜에서의 MAC 레이어 내 MAC 수신측에는 다중 채널 스큐(Skew) 제거 장치가 설치되어 있지 않았을 뿐만 아니라, 이러한 다중 채널 스큐 제거 장치를 설계할 수 방법이 제안되어 있지 않았다. 비록, 종래의 고속직렬 프로토콜에서는 채널간 스큐 제거 블록이 개발되어 있지만, 이는 다중 레인간의 스큐를 제거하기 위해 PCS(Physical Coding Sublayer) 부분의 8b/10b 디코딩 블록 앞 단에 레인 간의 스큐를 제거하는 디스큐(Deskew) 블록을 만든 것이다. 즉, PMA 내부에 디스큐 블록을 내장 시켜 PCS 이후 MAC 영역에 스큐가 없는 다중 레인 데이터를 제공하고 있는 것이다. 하지만, 상술한 고속직렬 프로토콜에 적용된 종래의 채널간 스큐 제거 블록은 8비트의 인터페이스 데이터 폭에 적용된 10기가 비트 이더넷 프로토콜에 적합화된 디스큐 방법론으로, 16비트의 인터페이스 데이터 폭을 갖는 PCI 익스프레스 프로토콜에는 적용 불가능한 것이다.
따라서, 종래의 PCI 익스프레스 프로토콜에는 다중 채널 스큐(Skew) 제거 장치의 부재로 인해, 시스템 구현시 전송 선로의 지연, 특성 차이, 데이터 직병렬기(SERDES) 동작 차이 등으로 발생되는 채널별로 병렬화된 데이터의 동기가 어긋나는 현상을 극복할 수 없었으며, 이로 인해 시스템 설계가 어려운 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 16비트/125MHz PCS-MAC 인터페이스를 가지는 PCI 익스프레스 프로토콜에서 MAC 영역에 위치하여 16비트로 구성된 다중 레인 간의 스큐를 제거해 줌으로써, 시스템 구현시 채널별로 병렬화된 데이터의 동기가 어긋나는 현상을 없애주어 시스템 구현의 안정화를 제공해 주기 위한 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치를 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치는, 상기 PHY 레이어 수신부의 각 레인으로부터 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 입력받은 후 COM 심볼이 상위 바이트에서 검출될 경우에만 얼라인(Align) 신호를 출력하는 COM 정렬버퍼 제어부;
상기 COM 정렬버퍼 제어부로부터 얼라인(Align) 신호가 입력되지 않으면 상기 PHY 레이어 수신부의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 각각 COM 정렬하지 않고 그대로 출력하는 한편, 상기 COM 정렬버퍼 제어부로부터 얼라인(Align) 신호가 입력되면 상기 PHY 레이어 수신부의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 각각 COM 정렬하여 출력하는 다수개의 COM 정렬 버퍼;
상기 다수개의 COM 정렬 버퍼의 출력 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 입력받아 그 신호의 COM 심볼 위치를 비교한 후 그 위치를 기반으로 먹스 제어신호(sel[3:0])를 출력하는 디스큐 버퍼 제어부; 및
상기 다수개의 COM 정렬 버퍼를 통해 COM 정렬된 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 각각 입력받은 후 상기 디스큐 버퍼 제어부로부터 공급되는 먹스 제어신호(sel[3:0])에 따라 각각 스큐 제거 동작을 수행하는 다수개의 디스큐 버퍼로 구성된 것을 특징으로 한다.
이하, 본 발명의 일 실시예에 의한 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치의 기능블록도로서, 본 발명의 일 실시예에 의한 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치는 COM 정렬버퍼 제어부(231), 다수개의 COM 정렬 버퍼(232), 디스큐 버퍼 제어부(233) 및 다수개의 디스큐 버퍼(234)로 구성되어 있다.
상기 COM 정렬버퍼 제어부(231)는 상기 PHY 레이어 수신부(110)의 각 레인으로부터 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 입력받은 후 COM 심볼이 상위 바이트에서 검출될 경우에만 얼라인(Align) 신호를 상기 다수개의 COM 정렬 버퍼(232)로 출력하는 역할을 하며, 도 4에 도시된 바와 같이 COM 심볼 감지부(231a) 및 COM 정렬신호 생성부(231b)로 구성되어 있다.
이 때, 상기 COM 정렬버퍼 제어부(231)의 COM 심볼 감지부(231a)는 상기 PHY 레이어 수신부(110)의 각 레인으로부터 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 입력받은 후 그 COM 심볼(Rxd=BCh, RxKD=1)이 상위 또는 하위 바이트 중 어디에서 검출되는지를 감지하는 역할을 한다.
또한, 상기 COM 정렬버퍼 제어부(231)의 COM 정렬신호 생성부(231b)는 상기 COM 심볼 감지부(231a)를 통해 COM 심볼이 상위 바이트에서 검출된 것으로 감지되면 얼라인(Align) 신호를 상기 다수개의 COM 정렬 버퍼(232) 중 해당 COM 정렬 버퍼(232)로 출력하는 역할을 한다.
한편, 상기 다수개의 COM 정렬 버퍼(232)는 상기 COM 정렬버퍼 제어부(231)로부터 얼라인(Align) 신호가 입력되지 않으면 상기 PHY 레이어 수신부(110)의 다 수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 각각 COM 정렬하지 않고 그대로 출력하는 한편, 상기 COM 정렬버퍼 제어부(232)로부터 얼라인(Align) 신호가 입력되면 상기 PHY 레이어 수신부(110)의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 각각 COM 정렬하여 출력하는 역할을 하며, 도 5에 도시된 바와 같이 제 1, 2 상위바이트 버퍼(HB1, HB2)(232a, 232b), 제 1, 2 하위바이트 버퍼(LB1, LB2)(232c, 232d) 및 먹스(232e)로 구성되어 있다.
이 때, 상기 다수개의 COM 정렬 버퍼(232) 내에 각각 장착된 제 1, 2 상위바이트 버퍼(HB1, HB2)(232a, 232b)는 상기 PHY 레이어 수신부(110)의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 중 상위 바이트로 입력되는 데이터(upper_data[8:0])를 각각 순차적으로 저장하는 역할을 한다.
또한, 상기 다수개의 COM 정렬 버퍼(232) 내에 각각 장착된 제 1, 2 하위바이트 버퍼(LB1, LB2)(232c, 232d)는 상기 PHY 레이어 수신부(110)의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 중 하위 바이트로 입력되는 데이터(lower_data[8:0])를 각각 순차적으로 저장하는 역할을 한다.
그리고, 상기 다수개의 COM 정렬 버퍼(232) 내에 각각 장착된 먹스(232e)는 상기 두 개의 상위바이트 버퍼(HB1, HB2)(232a, 232b) 및 상기 두 개의 하위바이트 버퍼(LB1, LB2)(232c, 232d)에 접속되어, 상기 COM 정렬버퍼 제어부(231)로부터 얼 라인(Align) 신호가 입력되지 않으면 상기 두 개의 상위바이트 버퍼(HB1, HB2)(232a, 232b)에 저장된 신호(bds_data[15:0], bds_ctrl[1:0])를 그대로 각각 출력하는 한편, 상기 COM 정렬버퍼 제어부(231)로부터 얼라인(Align) 신호가 입력되면 상기 제 1 하위바이트 버퍼(LB1)(232c) 및 상기 제 2 상위바이트 버퍼(HB2)(232b)의 데이터를 COM 정렬하여 출력하는 역할을 한다.
한편, 상기 디스큐 버퍼 제어부(233)는 상기 다수개의 COM 정렬 버퍼(232)의 출력 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 입력받아 그 신호의 COM 심볼 위치를 비교한 후 그 위치를 기반으로 먹스 제어신호(sel[3:0])를 출력하는 역할을 하며, 도 4에 도시된 바와 같이 COM 심볼 감지부(233a), COM 위치 비교부(233b) 및 먹스 제어신호 생성부(233c)로 구성되어 있다.
이 때, 상기 디스큐 버퍼 제어부(233)의 COM 심볼 감지부(233a)는 상기 다수개의 COM 정렬 버퍼(232)의 출력 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 입력받아 모든 레인에서 COM 심볼을 감지하는 역할을 한다.
한편, 상기 디스큐 버퍼 제어부(233)의 COM 위치 비교부(233b)는 상기 COM 심볼 감지부(233a)를 통해 모든 레인에서 감지된 COM 심볼의 위치를 서로 비교하는 역할을 한다.
또한, 상기 디스큐 버퍼 제어부(233)의 먹스 제어신호 생성부(233c)는 상기 COM 위치 비교부(233b)를 통해 서로 비교된 위치를 기반으로 먹스 제어신호(sel[3:0])를 출력하는 역할을 한다.
한편, 상기 다수개의 디스큐 버퍼(234)는 상기 다수개의 COM 정렬 버퍼(232) 를 통해 COM 정렬된 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 각각 입력받은 후 상기 디스큐 버퍼 제어부(233)로부터 공급되는 먹스 제어신호(sel[3:0])에 따라 각각 스큐 제거 동작을 수행하는 역할을 하며, 도 9에 도시된 바와 같이 5개의 16비트 버퍼(234a) 및 4개의 먹스(234b)로 구성되어 있다.
이 때, 상기 다수개의 디스큐 버퍼(234) 내에 각각 장착된 5개의 16비트 버퍼(234a)는 상기 다수개의 COM 정렬 버퍼(232)를 통해 COM 정렬된 신호(bds_data[15:0], bds_ctrl[1:0])를 입력받아 순차적으로 각각 저장하는 역할을 한다.
또한, 상기 다수개의 디스큐 버퍼(234) 내에 각각 장착된 4개의 먹스(234b)는 상기 5개의 16비트 버퍼(234a) 사이마다 각각 접속되어, 상기 디스큐 버퍼 제어부(233)로부터 '1'인 먹스 제어신호(sel[3:0])를 입력받으면 COM 정렬된 신호(bds_data[15:0], bds_ctrl[1:0])를 다음단 16비트 버퍼로 각각 연결시키는 한편, 상기 디스큐 버퍼 제어부(233)로부터 '0'인 먹스 제어신호(sel[3:0])를 입력받으면 COM 정렬된 신호(bds_data[15:0], bds_ctrl[1:0])를 다음단 16비트 버퍼를 건너 뛰도록 각각 바이패스시키는 역할을 한다.
그러면, 상기와 같은 구성을 가지는 본 발명의 일 실시예에 따른 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치의 동작 과정에 대해 첨부된 도면을 참조하여 설명하기로 한다.
먼저, 도 4의 상기 다수개의 COM 정렬 버퍼(232)의 동작 과정에 대한 설명을 한 후, 상기 다수개의 COM 정렬 버퍼(232)를 제어하는 상기 COM 정렬버퍼 제어부(231)에 대한 동작을 설명한다.
상기 다수개의 COM 정렬 버퍼(232)는 16비트(2바이트= 2심볼)/125MHz로 입력되는 데이터의 COM 심볼 위치를 모든 레인에서 동일하게 하위 바이트나 상위 바이트로 일치시키는 블록이다. 이 때, 상기 8비트/16비트 전환부(112)에서 출력되는 RxD[15:0] 데이터 신호 중 COM 심볼은 임의로 상위 바이트(Upper Byte) 혹은 하위 바이트(Lower Byte)에서 검출된다. 따라서 다중 레인간에 디스큐를 시행하기 이전 하위 바이트 혹은 상위 바이트로 COM 심볼 정렬이 필요하다. 상기 다수개의 COM 정렬 버퍼(232)로 입력되는 데이터(RxD[15:0])와 제어신호(RxKD[1:0])는 상기 PHY 레이어 수신부(110)의 8비트/16비트 전환부(112)의 출력이다.
이 때, 상기 다수개의 COM 정렬 버퍼(232)는 도 5와 같이 4개의 심볼 버퍼(HB1, HB2, LB1, LB2)(232a, 232b, 232c, 232d)와 MUX(232e)로 구성되어 있다. 또한, 상위 바이트로 입력되는 데이터(upper_data[8:0])와 하위 바이트로 입력되는 데이터(lower_data[8:0])는 각각 8비트의 수신 데이터와 1비트의 제어신호로 구성 되어 있다. 이 때, COM 정렬을 하위 바이트로 설정하였을 경우, COM 심볼이 하위 바이트에서 검출되면 COM 정렬이 불 필요하다. 이 경우는 상, 하위 데이터는 2단의 버퍼(HB1, HB2)(232a, 232b)와 MUX(232e)를 거쳐 16비트 데이터(data[15:0])와 2비트 제어신호(ctrl[1:0])로 출력된다. 그러나 COM 심볼이 상위 바이트에서 검출되면 상기 COM 정렬버퍼 제어부(231)에서 출력되는 얼라인(align) 신호에 의해 상기 버퍼(232e)의 출력 데이터는 data[15:0]={LB2, HB1}로 출력된다.
도 6은 TS1 오더드 셋(ordered set)의 COM 심볼이 상위 바이트로 입력 될 경우 하위 바이트로 COM 정렬이 수행되는 모습을 나타내고 있다. COM 정렬 수행 후 HB1 버퍼(232a)에 있는 COM과 LB2(232d)에 위치한 Link Num 심볼이 각각 하위, 상위 바이트로 출력된다. 다음에는 Lane Num와 N_FTS 심볼이, Data Rate 와 TC 심볼이 정렬되어 출력된다.
한편, 다수개(N)의 레인에서 COM 정렬 버퍼(232)를 제어하는 얼라인(align[N-1:0]) 신호는 상기 COM 정렬버퍼 제어부(231)에서 생성된다. 상기 COM 정렬버퍼 제어부(231)의 COM 심볼 감지부(231a)는 RxD, RxKD 신호를 각 레인에서 입력 받아 COM 심볼(RxD=BCh, RxKD=1)이 상위 혹은 하위 바이트에서 검출됨을 감지한다. 만약 상위 바이트에서 검출되면 상기 COM 정렬버퍼 제어부(231)는 얼라인(align) 신호를 발생시켜 상기 다수개의 COM 정렬 버퍼(232)를 제어한다. 하지만, 만약 하위 바이트에서 검출되면 상기 COM 정렬버퍼 제어부(231)는 얼라인(align) 신호를 출력하지 않는다.
도 7은 COM 정렬 버퍼(232)의 시뮬레이션 결과이다. 시뮬레이션에 사용된 x4 레인은 각각 16비트 데이터 폭을 가진다. RxD0[15:0] ~ RxD3[15:0] 데이터는 TS2 오더드 셋 패킷으로 도 3과 같이 F7BCh - 01F7h - 0200h - 4545h - 4545h - 4545h - 4545h - 4545h 의 형태로 전송된다. COM 정렬 버퍼(232)에 입력되는 RxD 데이터 중에서 첫번째 레인의 RxD0 데이터가 가장 먼저 COM이 입력된다. 두 클럭 이 후 두 번째 레인의 RxD1 데이터가, 세 클럭 후 세 번째 RxD2, 네 번째 RxD3 데이터의 COM이 입력된다. 이 때, RxD0와 RxD2의 데이터의 COM(BCh) 심볼이 상위 바이트에서 검출되고 있다. 따라서 상기 다수개의 COM 정렬 버퍼(232)를 통과한 데이터 bds_data0~bds_data3 에서는 COM 심볼이 모두 하위 바이트로 정렬되어 출력되었다.
한편, 상기 다수개의 COM 정렬 버퍼(232)를 통해 COM 심볼이 정렬된 데이터(bds_data[15:0], bds_ctrl[15:0])는 상기 다수개의 디스큐 버퍼(244)에 각각 입력된다. 상기 다수개의 디스큐 버퍼(244)는 도 8과 같은 원리로 동작하며, 도 9와 같은 구성도를 갖는다. 또한, 상기 다수개의 디스큐 버퍼(244)를 제어하기 위한 상기 디스큐 버퍼 제어부(233)이 설치된다.
도 8은 다중 레인 상의 디스큐 원리를 나타내고 있으며 개념의 이해를 돕기 위해 8비트 데이터 인터페이스, 4 레인 구조를 나타내었다. 도 8에서 C는 COM 심볼, B는 사용 중인 버퍼, 빈칸은 사용 않는 버퍼를 각각 나타낸다. 다중 레인간의 스큐 제거 원리는 다음과 같다. 첫 클럭(10a)에서 첫번째 레인에서만 COM 심볼이 입력되었다. 두 클럭(10b) 이후 두 번째 레인에서 COM 심볼이 입력되었다. 그리고 한 클럭 이후 세 번째, 네 번째 레인에서 COM 심볼이 입력되었다. 가장 먼저 COM 심볼이 도착한 첫 번째 레인은 마지막 COM 심볼이 입력되기까지 이후의 세 심볼을 버퍼에 저장했다. 두 번째로 COM 심볼이 도착한 두 번째 레인은 마지막 COM 심볼이 입력되기까지 한 심볼을 버퍼에 저장했다. 마지막으로 COM 심볼이 도착한 세 번째, 네 번째 레인은 데이터를 버퍼에 저장하지 않는다. 이러한 방법으로 최종 출력은 모든 레인이 동일 시간에 선상에 데이터를 수신하게 된다. 레 인간의 스큐를 제거하게 된다.
상술한 도 8과 같은 원리를 기반으로 16비트 데이터 인터페이스로 확장하여 디스큐 버퍼 회로를 구성하면 도 9와 같다. PCI 익스프레스 규격이 제시하는 다중 레인간의 수신 최대 허용 스큐는 LRX-SKEW = 20ns로 약 5 심볼 시간이다. 따라서, 디스큐 버퍼(244)는 5개의 16비트 버퍼(244a)로 구성되어 있다. 이는 8심볼(4 x 2심볼)을 저장할 수 있기 때문에 PCI 익스프레스 규격을 충분히 만족시킨다. 또한, 각 레지스터(244a)를 지나칠지(bypass), 아니면 통과할지 제어하는 4개의 먹스(MUX)(244b)가 설치되어 있다. 상기 먹스(244b)의 제어신호(sel[3:0])는 상기 디스큐 버퍼 제어부(233)에서 생성된다. sel 신호가 '1'이면 먹스(244b)는 다음 단 레지스터(244a) 입력으로 데이터 경로를 연결하며, sel 신호가 '0'이면 먹스(244b)는 다음단 레지스터(244a)를 건너 뛰도록 데이터의 경로를 제어한다. 즉, sel[3:0]="1111"은 모든 레지스터(244a)를 통과하도록 제어신호를 발생함을, sel[3:0]="0000"은 모든 레지스터(244a)를 건너 뛰도록 제어신호를 발생함을 의미한다.
한편, 상기 디스큐 버퍼 제어부(233)의 COM 심볼 감지부(233a)는 COM 정렬 버퍼(232)를 통과한 bds_data 데이터에서 COM 심볼을 감지한다. 이 때, 모든 레인에서 검출된 COM 심볼은 상기 COM 위치 비교부(233b)에서 위치를 비교하게 된다. 이렇듯 서로 비교된 위치를 기반으로 상기 먹스 제어신호 생성부(233c)는 먹스 제어 신호(sel[N:0][3:0])를 발생시킨다. 이 때, 디스큐를 실행하기 위한 먹스 제어 신호는 스큐셋(skewset) 신호로 출력된다. PCI 익스프레스 규격에 의하면 L0 상태 이전 컨피그레이션(Configuration) 또는 L0s 또는 리커버리(Recovery) 상태에서 반드시 레인 디스큐가 이루어져야 됨을 명시하고 있다. 즉 상기 LTSSM(22)은 컨피그레이션(Configuration)에서 L0로 또는 L0s에서 L0로 또는 리커버리(Recovery)에서 L0로 상태 천이 시 스큐셋(skewset) 신호를 상기 디스큐 버퍼 제어부(233)에 입력하여 디스큐 작업을 수행한다.
도 10은 도 7에서 COM 정렬이 수행된 데이터를 상기 다수개의 디스큐 버퍼(244)를 통과했을 때 모습을 시뮬레이션을 통해 나타낸 것이다. 스큐셋(skewset) 신호가 '1'로 펄스 입력된 이후 상기 디스큐 버퍼 제어부(233)는 먹스 제어신호(wsel0[3:0]~wsel3[3:0])를 발생한다. 첫 레인에서 COM이 입력된 1 클럭 이후 wsel0[3:0]="0001"을 발생시켜 다음 심볼을 버퍼에 저장하게 한다. 2 클럭 이후 wsel0[3:0]="0011"을 발생시켜 두 심볼을 버퍼에 저장한다. 3클럭 이후 첫 레인은 wsel0[3:0]="0111"을 발생시켜 3 심볼을 버퍼에 저장하며, COM 심볼이 도착한 두 번째 레인은 wsel1[3:0]="0100"을 발생시켜 3번째 버퍼에 첫 심볼을 저장한다. 4 클럭에 세 번째, 네 번째 레인의 COM이 모두 도착한 이 후 첫 레인은 wsel0[3:0]="1111"을, 두 번째 레인은 wsel1[3:0]="1100"을, 세 번째, 네 번째 레인은 wsel2[3:0]=wsel3[3:0]="0000"의 제어신호가 출력된다. 이후 클럭부터 모든 레인의 데이터, wRxD0~wRxD3가 정렬되어 출력된다.
이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어 나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
상술한 바와 같이 본 발명에 의한 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치에 의하면, 16비트/125MHz PCS-MAC 인터페이스를 가지는 PCI 익스프레스 프로토콜에서 MAC 영역에 위치하여 16비트로 구성된 다중 레인 간의 스큐를 제거해 줌으로써, 시스템 구현시 채널별로 병렬화된 데이터의 동기가 어긋나는 현상을 없애주어 시스템 구현의 안정화를 제공해 준다는 뛰어난 효과가 있다.
Claims (6)
- PHY 레이어 수신부를 구비한 PHY 레이어와 MAC 수신부를 구비한 MAC 레이어로 이루어진 PCI 익스프레스 프로토콜에서의 MAC 수신부 영역 구현된 다중채널 스큐 제거 장치에 있어서,상기 PHY 레이어 수신부의 각 레인으로부터 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 입력받은 후 COM 심볼이 상위 바이트에서 검출될 경우에만 얼라인(Align) 신호를 출력하는 COM 정렬버퍼 제어부;상기 COM 정렬버퍼 제어부로부터 얼라인(Align) 신호가 입력되지 않으면 상기 PHY 레이어 수신부의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 각각 COM 정렬하지 않고 그대로 출력하는 한편, 상기 COM 정렬버퍼 제어부로부터 얼라인(Align) 신호가 입력되면 상기 PHY 레이어 수신부의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0])를 각각 COM 정렬하여 출력하는 다수개의 COM 정렬 버퍼;상기 다수개의 COM 정렬 버퍼의 출력 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 입력받아 그 신호의 COM 심볼 위치를 비교한 후 그 위치를 기반으로 먹스 제어신호(sel[3:0])를 출력하는 디스큐 버퍼 제어부; 및상기 다수개의 COM 정렬 버퍼를 통해 COM 정렬된 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 각각 입력받은 후 상기 디스큐 버퍼 제어부로부터 공급되는 먹스 제어신호(sel[3:0])에 따라 각각 스큐 제거 동작을 수행하는 다수개의 디스큐 버퍼로 구성된 것을 특징으로 하는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치.
- 제 1항에 있어서,상기 COM 정렬버퍼 제어부는, 상기 PHY 레이어 수신부의 각 레인으로부터 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 입력받은 후 그 COM 심볼(Rxd=BCh, RxKD=1)이 상위 또는 하위 바이트 중 어디에서 검출되는지를 감지하는 COM 심볼 감지부; 및상기 COM 심볼 감지부를 통해 COM 심볼이 상위 바이트에서 검출된 것으로 감지되면 얼라인(Align) 신호를 상기 다수개의 COM 정렬 버퍼 중 해당 COM 정렬 버퍼로 출력하는 COM 정렬신호 생성부로 구성된 것을 특징으로 하는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치.
- 제 1항에 있어서,상기 다수개의 COM 정렬 버퍼는, 상기 PHY 레이어 수신부의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 중 상위 바이트로 입력되는 데이터(upper_data[8:0])를 각각 순차적으로 저장하는 제 1, 2 상위바이트 버퍼(HB1, HB2);상기 PHY 레이어 수신부의 다수개(N)의 레인으로부터 입력받은 데이터 및 컨트롤 신호(RxD[N:0][15:0], RxKD[N:0][1:0]) 중 하위 바이트로 입력되는 데이터(lower_data[8:0])를 각각 순차적으로 저장하는 제 1, 2 하위바이트 버퍼(LB1, LB2); 및상기 두 개의 상위바이트 버퍼(HB1, HB2) 및 상기 두 개의 하위바이트 버퍼(LB1, LB2)에 접속되어, 상기 COM 정렬버퍼 제어부로부터 얼라인(Align) 신호가 입력되지 않으면 상기 두 개의 상위바이트 버퍼(HB1, HB2)에 저장된 신호(bds_data[15:0], bds_ctrl[1:0])를 그대로 각각 출력하는 한편, 상기 COM 정렬버퍼 제어부로부터 얼라인(Align) 신호가 입력되면 상기 제 1 하위바이트 버퍼(LB1) 및 상기 제 2 상위바이트 버퍼(HB2)의 데이터를 COM 정렬하여 출력하는 먹스로 각각 구성된 것을 특징으로 하는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치.
- 제 1항에 있어서,상기 디스큐 버퍼 제어부는, 상기 다수개의 COM 정렬 버퍼의 출력 신호(bds_data[N:0][15:0], bds_ctrl[N:0][1:0])를 입력받아 모든 레인에서 COM 심볼을 감지하는 COM 심볼 감지부;상기 COM 심볼 감지부를 통해 모든 레인에서 감지된 COM 심볼의 위치를 서로 비교하는 COM 위치 비교부; 및상기 COM 위치 비교부를 통해 서로 비교된 위치를 기반으로 먹스 제어신호(sel[3:0])를 출력하는 먹스 제어신호 생성부로 구성된 것을 특징으로 하는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치.
- 제 1항에 있어서,상기 다수개의 디스큐 버퍼는, 상기 다수개의 COM 정렬 버퍼를 통해 COM 정렬된 신호(bds_data[15:0], bds_ctrl[1:0])를 입력받아 순차적으로 각각 저장하는 5개의 16비트 버퍼; 및상기 5개의 16비트 버퍼 사이마다 각각 접속되어, 상기 디스큐 버퍼 제어부로부터 공급되는 먹스 제어신호(sel[3:0])에 따라 COM 정렬된 신호(bds_data[15:0], bds_ctrl[1:0])를 다음단 16비트 버퍼로 각각 연결시키거나, 아니면 다음단 16비트 버퍼를 건너 뛰도록 각각 바이패스시키는 4개의 먹스로 구성된 것을 특징으로 하는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치.
- 제 5항에 있어서,상기 4개의 먹스는, 상기 디스큐 버퍼 제어부의 제어신호(sel)가 '1'이면 다음단 16비트 버퍼로 COM 정렬된 신호(bds_data[15:0], bds_ctrl[1:0])를 각각 연결 시키는 한편, 제어신호(sel)가 '0'이면 다음단 16비트 버퍼를 건너 뛰도록 각각 바이패스시키는 것을 특징으로 하는 PCI 익스프레스 프로토콜용 다중채널 스큐 제거 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040098749A KR100602872B1 (ko) | 2004-11-29 | 2004-11-29 | Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040098749A KR100602872B1 (ko) | 2004-11-29 | 2004-11-29 | Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060059615A true KR20060059615A (ko) | 2006-06-02 |
KR100602872B1 KR100602872B1 (ko) | 2006-07-28 |
Family
ID=37156781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040098749A KR100602872B1 (ko) | 2004-11-29 | 2004-11-29 | Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100602872B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058266B2 (en) | 2012-04-05 | 2015-06-16 | Electronics And Telecommunications Research Institute | Deskew apparatus and method for peripheral component interconnect express |
JP2022530591A (ja) * | 2019-04-29 | 2022-06-30 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法 |
-
2004
- 2004-11-29 KR KR1020040098749A patent/KR100602872B1/ko not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9058266B2 (en) | 2012-04-05 | 2015-06-16 | Electronics And Telecommunications Research Institute | Deskew apparatus and method for peripheral component interconnect express |
KR101876418B1 (ko) * | 2012-04-05 | 2018-07-10 | 한국전자통신연구원 | Pci 익스프레스 디스큐 장치 및 그 방법 |
JP2022530591A (ja) * | 2019-04-29 | 2022-06-30 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | マルチチップモジュール上の物理レイヤインタフェースに対するデスキュー方法 |
Also Published As
Publication number | Publication date |
---|---|
KR100602872B1 (ko) | 2006-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7570659B2 (en) | Multi-lane receiver de-skewing | |
EP1670199B1 (en) | Design of channel alignment, error handling, and clock routing using hard-wired blocks for data transmission within programmable logic integrated circuits | |
CN100549996C (zh) | 数据解扰码电路 | |
JP2004520778A (ja) | スキュー耐性のないデータグループを有するパラレルデータ通信 | |
EP2351303B1 (en) | Method, apparatus, and system for automatic data aligner for multiple serial receivers | |
US20050141661A1 (en) | Lane to lane deskewing via non-data symbol processing for a serial point to point link | |
US8234424B2 (en) | Efficient strip-down and re-alignment of ingressing physical layer/data layer packets in an aggregated PCI-express port having eight lanes | |
EP0813153A2 (en) | Serial-to-parallel converter in a data communication system | |
EP2629472A1 (en) | Transmission circuit, reception circuit, transmission method, reception method, communication system and communication method therefor | |
US7493423B2 (en) | Data transfer control device and electronic instrument | |
US6288656B1 (en) | Receive deserializer for regenerating parallel data serially transmitted over multiple channels | |
WO2013001631A1 (ja) | 伝送装置、伝送回路、伝送システムおよび伝送装置の制御方法 | |
JP2009109488A (ja) | シリアル・データ処理装置及び方法 | |
JP4917901B2 (ja) | 受信装置 | |
EP1897307B1 (en) | Method and apparatus for increasing data transfer rates through a communication channel | |
US20040042504A1 (en) | Aligning data bits in frequency synchronous data channels | |
KR100602872B1 (ko) | Pci 익스프레스 프로토콜용 다중채널 스큐 제거 장치 | |
JP2013055502A (ja) | シリアル通信回路 | |
JP4336860B2 (ja) | シリアルインタフェース回路、及びシリアル受信器 | |
US7694264B2 (en) | Pulse link and apparatus for transmitting data and timing information on a single line | |
US6889272B1 (en) | Parallel data bus with bit position encoded on the clock wire | |
US11258696B1 (en) | Low-latency signaling-link retimer | |
US20230128574A1 (en) | Method for data transmission | |
US20070104302A1 (en) | Method and apparatus for reducing synchronizer shadow | |
US8315348B2 (en) | Clock extraction circuit for use in a linearly expandable broadcast router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
N231 | Notification of change of applicant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20100701 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |