KR20000013044A - 고속 직렬 버스 인터페이스를 위한 인코더 - Google Patents

고속 직렬 버스 인터페이스를 위한 인코더 Download PDF

Info

Publication number
KR20000013044A
KR20000013044A KR1019980031693A KR19980031693A KR20000013044A KR 20000013044 A KR20000013044 A KR 20000013044A KR 1019980031693 A KR1019980031693 A KR 1019980031693A KR 19980031693 A KR19980031693 A KR 19980031693A KR 20000013044 A KR20000013044 A KR 20000013044A
Authority
KR
South Korea
Prior art keywords
data
parallel
bit
bits
parallel data
Prior art date
Application number
KR1019980031693A
Other languages
English (en)
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 KR1019980031693A priority Critical patent/KR20000013044A/ko
Publication of KR20000013044A publication Critical patent/KR20000013044A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

고속 직렬 버스 인터페이스를 위한 인코더가 개시된다. 본 발명에 따른 고속 직렬 버스 인터페이스를 위한 인코더는, 외부의 위상 동기 루프에서 생성된 제1~제4클럭 신호를 입력하고, 마이크로프로세서에서 인가된 속도 정보에 상응하는 제1~제4클럭 신호 중 하나에 응답하여 외부에서 인가된 병렬 데이타를 인코딩하는 인코더에 있어서, 제2~제4클럭 신호 중에서 속도 정보에 상응하는 하나의 클럭 신호에 응답하여 외부에서 인가된 N(>0)비트 병렬 데이타를 인코딩하고, 인코딩된 결과를 각각 병렬 데이타와 병렬 스트로브 신호로서 출력하는 인코딩 수단, 병렬 데이타 및 병렬 스트로브 신호를 입력하고, 제1클럭 신호의 한 사이클을 기준으로 병렬 데이타의 유효 비트와 병렬 스트로브 신호의 유효 비트를 각각 N비트로 확장하여 확장된 N비트 병렬 데이타 및 N비트 병렬 스트로브 신호로서 출력하는 확장 수단 및 제1~제3클럭 신호들에 응답하여 확장된 병렬 데이타 및 병렬 스트로브 신호를 직렬로 변환하고, 직렬 변환된 데이타 및 스트로브 신호를 출력하는 직렬 변환 수단을 포함하고, 제1~제4클럭 신호들은 각각 50MHz, 100MHz, 200MHZ 및 400MHz의 주파수를 갖는 것을 특징으로하며, 클럭 주파수 400MHz의 속도를 지향하는 IEEE1394 고속 직렬 버스 인터페이스를 이용한 시스템에서 400MHz의 클럭 신호를 사용하지 않고도 병렬 데이타를 직렬로 변환하는 것이 가능하기 때문에 인코더가 안정되게 동작할 수 있다는 효과가 있다.

Description

고속 직렬 버스 인터페이스를 위한 인코더
본 발명은 고속 직렬 버스 인터페이스(High Speed Serial Bus Interface)에 관한 것으로서, 특히, 고속 직렬 버스 인터페이스를 위한 인코더에 관한 것이다.
최근에는 동영상등을 기록/재생하는 멀티미디어 제품들이 증가하고 있으며, 멀티미디어 제품들 간의 데이타 전송 시에 한번에 전송하고자 하는 데이타 량이 점점 늘어나고 있다. 따라서, 고속으로 많은 양의 데이타를 전송할 수 있는 직렬 데이타 버스를 필요로하게 됨에 따라 IEEE1394 직렬 데이타 버스가 대두되었다. 즉, IEEE1394는 IEEE(Institute of Electrical and Electronics Engineers)에 의해 표준화된 고속 직렬 버스 인터페이스로서, 비디오, 캠코더, 전자 스틸 카메라, 컴퓨터, 디지탈 오디오/비디오 장비 등과 같은 멀티미디어 제품 사이에서 고속의 데이타 통신을 가능하게 한다. 최근에는 멀티미디어 제품 간에 전송되는 데이타량 이 더욱 더 증가함에 따라서 일반 가정에서도 많은 양의 데이타를 빠른 시간에 전송할 수 있는 시스템을 필요로하고 있기 때문에 IEEE1394 고속 직렬 버스 인터페이스가 널리 이용되고 있다.
멀티미디어 제품들 사이의 일반적인 데이타 송수신 시에, 송신부에서는 전송하고자하는 데이타를 소정 프로토콜에 따라서 인코딩하고, 수신부에서는 인코딩된 데이타를 상기의 프로토콜에 따라서 디코딩한다. 마찬가지로, 많은 양의 데이타를 고속으로 송수신하기 위한 IEEE1394직렬 버스 인터페이스를 통하여 데이타를 전송하는 경우에도 인코더와 디코더를 필요로 한다. IEEE1394 고속 직렬 버스 인터페이스에서는 고속으로 데이타를 전송하기 위해 400MHz의 클럭 속도를 지원하게 되며, 이러한 고속의 클럭 속도에서 디지탈 로직을 이용하여 데이타를 인코딩하거나 디코딩하는 것은 어려운 일이다. 예를 들어, 디코더에서는 서로 다른 소스를 갖는 클럭 신호들이 공존하기 때문에 이들의 위상 차를 없애기 위해서 주로 재동기화(Resynchronization) 과정을 수행한다. 즉, 디코더는 위상 동기 루프에서 생성되는 서로 다른 주파수를 갖는 클럭 신호들과, 인코더에서 출력된 데이타와 스트로브 신호를 배타적 논리합함으로써 생성한 클럭 신호 등 서로 다른 소스를 갖는 클럭 신호들이 존재한다.
한편, 인코더에서도 마찬가지로 고속의 클럭 신호에 응답하여 데이타를 인코딩해야 하는데, 이 때 각각의 프로토콜에 따라서 데이타를 인코딩하는 방식이 달라지므로 기본적인 인코딩 회로를 구비하는 것 외에도 각 시스템에 사용되는 목적에 따라 그 구현 방법이 달라지게 된다. 즉, IEEE1394 버스 인터페이스에서는 병렬 데이타를 인코딩한 후 직렬 데이타로 변환하여 외부의 노드로 전송한다. 그러나, IEEE1394버스 인터페이스에서 현재 이용되는 인코더는 인코딩된 데이타를 직렬로 변환하는데 있어서 400MHz의 주파수를 갖는 고속 클럭 신호를 이용하기 때문에, 상기의 인코더를 구현하는 디지탈 로직들이 고속의 클럭 주파수를 따라 가지 못하여 동작 상의 에러가 발생하거나 데이타 손실이 발생하는 등의 많은 불안한 요소들을 포함하게 된다는 문제점이 있다.
본 발명이 이루고자하는 기술적 과제는, 고속의 직렬 버스 인터페이스를 이용하는 시스템에서 데이타를 인코딩할 때, 특정의 고속 클럭 신호보다 낮은 임의의 클럭 신호들을 이용하여 인코딩된 데이타를 직렬 변환할 수 있는 고속 직렬 버스 인터페이스를 위한 인코더를 제공하는데 있다.
도 1은 본 발명에 따른 고속 직렬 버스 인터페이스를 위한 인코더를 설명하기 위한 개략적인 블럭도이다.
도 2는 도 1에 도시된 인코더의 인코딩부를 설명하기 위한 상세한 회로도이다.
도 3은 도 1에 도시된 인코더의 확장부에서 수행되는 데이타 확장 과정을 설명하기 위한 도면이다.
도 4는 도 1에 도시된 인코더의 직렬 변환부를 설명하기 위한 상세한 회로도이다.
상기 과제를 이루기위해, 본 발명에 따른 고속 직렬 버스 인터페이스를 인코더는, 외부의 위상 동기 루프에서 생성된 제1~제4클럭 신호를 입력하고, 마이크로프로세서에서 인가된 속도 정보에 상응하는 제1~제4클럭 신호 중 하나에 응답하여 외부에서 인가된 병렬 데이타를 인코딩하는 인코더에 있어서, 제2~제4클럭 신호 중에서 속도 정보에 상응하는 하나의 클럭 신호에 응답하여 외부에서 인가된 N(>0)비트 병렬 데이타를 인코딩하고, 인코딩된 결과를 각각 병렬 데이타와 병렬 스트로브 신호로서 출력하는 인코딩 수단, 병렬 데이타 및 병렬 스트로브 신호를 입력하고, 제1클럭 신호의 한 사이클을 기준으로 병렬 데이타의 유효 비트와 병렬 스트로브 신호의 유효 비트를 각각 N비트로 확장하여 확장된 N비트 병렬 데이타 및 N비트 병렬 스트로브 신호로서 출력하는 확장 수단 및 제1~제3클럭 신호들에 응답하여 확장된 병렬 데이타 및 병렬 스트로브 신호를 직렬로 변환하고, 직렬 변환된 데이타 및 스트로브 신호를 출력하는 직렬 변환 수단으로 구성되는 것이 바람직하다.
이하, 본 발명에 따른 고속 직렬 버스 인터페이스를 위한 인코더에 관하여 첨부된 도면을 참조하여 다음과 같이 설명한다.
도 1은 본 발명에 따른 고속 직렬 버스 인터페이스를 위한 인코더의 개략적인 블럭도로서, 인코딩부(12), 확장부(14) 및 직렬 변환부(16)를 포함하고, 직렬 변환부(16)는 제1직렬 변환부(17)와 제2직렬 변환부(18)를 포함한다.
도 1에 도시된 인코딩부(12)는 외부의 마이크로프로세서(미도시)에서 인가된 속도 정보(Speed)에 상응하는 클럭 신호를 입력하며, 외부에서 인가된 병렬 데이타(PAR_DATA)를 상기의 클럭 신호에 응답하여 인코딩하고, 인코딩된 결과를 병렬 데이타(PAR_DATA)와 병렬 스트로브 신호(PAR_STROBE)로서 출력한다. 여기에서, 클럭 신호는 외부 위상 동기 루프에서 생성되는 제1~제4클럭 신호들(CLK1~CLK4) 중 하나이며, 제1~제4클럭 신호들(CLK1~CLK4)은 각각 50MHz, 100MHz, 200MHz 및 400MHz의 주파수를 갖는 클럭 신호가 된다. 따라서, 마이크로프로세서(미도시)에서 인가된 속도 정보(Speed)에 상응하는 클럭 신호가 선택되어 인코딩부(12)의 클럭 신호로서 인가된다. 이 때, 상기의 클럭 신호들은 외부의 위상 동기 루프에서 400MHz의 발진 주파수 신호를 소정율로 분주함으로써 생성된다. 또한, 도 1에 도시된 인코딩부(12)는 인가된 병렬 데이타(PAR_DATA)와, 속도 정보(Speed)에 따라서 선택된 클럭 신호를 배타적 논리합한 결과를 스트로브 신호로서 출력한다. 또한, 인코딩부(12)는 외부에서 인가되는 시스템 리셋 신호(RESET)에 응답하여 리셋된다. 즉, 시스템 자체에 전원이 공급되면 인코딩부(12)는 초기화되며, 데이타 인에이블 신호(DATA_ENA)가 하이 레벨로 액티브될 때 입력된 데이타를 인코딩한다.
확장부(14)는 인코딩부(12)에서 생성된 병렬의 스트로브 신호(PAR_STROBE) 와 병렬 데이타(PAR_DATA)를 입력하고, 속도 정보(Speed)에 의해 주어진 클럭 신호에 응답하여 병렬 데이타(PAR_DATA)와 병렬 스트로브 신호(PAR_STROBE)의 유효 비트만을 확장하여 8비트의 병렬 데이타(EXP_DATA[0:7])와 확장된 스트로브 신호(EXP_STROBE[0:7])로서 출력한다.
직렬 변환부(16)는 확장부(14)에서 출력된 8비트의 병렬 데이타(EXP_DATA)와 병렬 스트로브 신호(EXP_STROBE)를 각각 소정 클럭 신호들(CLK1~CLK3)에 응답하여 직렬로 변환한다. 즉, 제1직렬 변환부(17)는 확장부(14)에서 확장된 8비트의 병렬 데이타(EXP_DATA[0:7])를 클럭 신호들에 응답하여 직렬 데이타(SER_DATA)로 변환 하고, 제2직렬 변환부(18)는 확장부(14)에서 출력된 병렬 스트로브 신호 (EXP_STROBE[0:7])를 직렬 스트로브 신호(SER_STROBE)로 변환한다.
또한, 도 1에 도시된 인코더는 IEEE1394 버스 인터페이스를 이용하는 노드의 물리 계층(PHYSICAL LAYER) 내부에 존재하며, 인코딩부(12)의 입력으로 인가되는 병렬 데이타(PAR_DATA)는 디코더(미도시), 아비터부(ATBITER) 또는 외부의 링크 계층(LINK LAYER)에서 인가될 수 있다.
이하에서, 본 발명에 따른 고속 직렬 데이타 전송을 위한 인코더의 동작에 관하여 설명한다. 여기에서, 인코딩부(12), 확장부(14) 및 직렬 변환부(16)의 상세한 동작에 대해서는 하기의 도 2~도 4를 참조하여 상세히 설명된다.
우선, 시스템 구동 초기에 전원이 공급되면, 인코딩부(12)는 시스템 리셋 신호(RESET)에 응답하여 리셋된다. 이 때, 데이타 인에이블 신호(DATA_ENA)가 액티브되면 마이크로프로세서에서 인가되는 속도 정보(Speed)에 의해 시스템 클럭 신호들 중 한 클럭 신호가 선택되어 입력되고, 외부에서 인가된 병렬 데이타 (PAR_DATA)는 선택된 클럭 신호와 배타적 논리합되어 병렬 스트로브 신호(PAR_STROBE)를 생성한다. 여기에서, 인코딩부(12)에는 50MHz의 클럭 신호를 기준으로 8비트의 병렬 데이타가 입력되며, 선택된 시스템 클럭 신호에 따라서 유효 데이타가 서로 다르다. 확장부(14)에서는 인코딩부(12)에서 출력된 병렬 데이타(PAR_DATA)와 상기의 주어진 클럭 신호에 따라서 생성된 스트로브 신호 (PAR_STROBE)의 유효 데이타를 각각 8비트로 확장하고, 확장된 결과를 8비트의 병렬 데이타(EXP_DATA[0:7]) 및 확장된 스트로브 신호(EXP_STROBE[0:7])로 생성 한다. 직렬 변환부(16)에서는 확장부(14)에서 출력된 병렬 데이타 및 병렬 스트로브 신호를 입력하여 클럭 신호들(CLK1,CLK2,CLK3)에 응답하여 직렬로 변환하고, 직렬 변환된 데이타(SER_DATA) 및 직렬 스트로브 신호(SER_STROBE)를 생성한다.
도 2는 도 1에 도시된 인코더의 인코딩부(12)를 설명하기 위한 상세한 회로도로서, 제1~제8인코딩부(210~280)를 포함한다. 제1인코딩부(210)는 배타적 오아 게이트들(212, 214)과 플립플롭들(216, 218)을 포함하고, 제2인코딩부(220)는 배타적 오아 게이트들(222, 224)과 플립플롭들(226, 228)을 포함한다. 마찬가지로 제3~제8인코딩부(230~280)도 각각 두 개의 배타적 오아 게이트들과 플립플롭들로 이루어지며, 간략한 도시를 위하여 생략하기로 한다.
여기에서, 제1비트 데이타(DATA0)와 클럭 신호(CLK)를 배타적 논리합한 결과는 제1스트로브 신호(STROBE0)로서 생성되고, 제2비트 데이타(DATA1)와 클럭 신호(CLK)를 배타적 논리합한 결과는 제2스트로브 신호(STROBE1)로서 생성된다. 제3~제8비트 데이타도 마찬가지이다. 또한, 클럭 신호(CLK)는 상술한 바와 같이, 각각 100MHz, 200MHz, 400MHz의 주파수를 갖는 시스템 클럭 신호들(CLK2~CLK4) 중에서 마이크로프로세서(미도시)에서 출력되는 속도 정보(Speed)에 상응하는 하나의 클럭 신호 임을 알 수 있다.
우선, 도 2에 도시된 제1인코딩부(210)를 예를 들어 스트로브 신호 (STROBE)의 발생 과정을 설명하기로 한다. 예를 들어, 속도 정보(Speed)에 상응하는 클럭 속도가 100MHz라면, 내부의 플립플롭(216)은 100MHz의 클럭 신호(CLK2)에 응답하여 0비트 데이타(DATA0)를 정출력 단자(Q)로 출력하며, 이러한 출력(Q)은 피드백되어 배타적 오아 게이트(212)의 제2입력으로 인가된다. 배타적 오아 게이트(212)는 인가되는 0비트 데이타(DATA0)와 플립플롭(216)의 정출력(Q) 을 배타적 논리합하여 두 신호의 레벨이 서로 다른 경우에만 하이 레벨의 신호를 출력한다. 배타적 오아 게이트(212)의 출력은 다시 배타적 오아 게이트(214)의 제1입력으로 인가되고, 플립플롭(218)의 부출력( )과 배타적 논리합되어 플립플롭 (218)의 데이타 입력(D)을 생성한다. 따라서, 플립플롭(218)에 입력되는 데이타 (D)는 배타적 오아 게이트(212)와 플립플롭(218)의 부출력( )이 서로 다른 레벨일 때만 하이 레벨의 신호를 출력한다. 플립플롭(218)은 클럭 신호(CLK)에 응답하여 정출력(Q)으로서 생성되고, 이러한 정출력(Q)은 병렬 스트로브 신호의 0비트 스트로브 신호(STROBE0)가 되며, 부출력( )은 피드백되어 배타적 오아 게이트(224)의 제2입력으로 인가된다. 제2~제8인코딩부(220~280)도 같은 방식으로 동작하게 되므로 설명을 생략한다. 또한, 클럭 신호가 200MHz와 400MHz의 주파수를 갖는 경우에도 같은 방식으로 동작한다.
도 3(a)~3(d)는 도 1에 도시된 인코더의 확장부(14)에서 수행되는 데이타 확장 과정을 설명하기 위한 도면들이다.
도 3(a)는 속도 정보(Speed)에 따라서 100MHz의 주파수를 갖는 클럭 신호 (CLK2)가 선택된 경우의 데이타 확장을 나타낸다. 즉, 50MHz의 클럭 신호를 기준으로 할 때, 인코딩부(12)에서 출력되는 8비트의 병렬 데이타(PAR_DATA) 중에서 유효한 데이타는 2비트이므로 비트0와 비트1을 확장하여 8비트의 확장된 병렬 데이타(EXP_DATA[0:7])를 생성한다. 즉, 전체 8비트 중에서 하위 4비트에는 비트 0의 데이타를 채우고, 상위 4비트에는 비트 1의 데이타를 채움으로써 8비트의 확장된 데이타를 생성한다. 이러한 과정을 통하여 확장된 데이타는 다음과 같이 표현될 수 있다.
EXP_DATA[0:7] = {PD[0],PD[0],PD[0],PD[0],PD[1],PD[1],PD[1],PD[1]}
여기에서, PD는 상기의 병렬 데이타(PAR_DATA)를 간략히 표시한 것으로서,
PD[0]는 병렬 데이타의 0비트 데이타를 나타내고, PD[1]는 병렬 데이타의 1비트 데이타를 나타낸다.
도 3(b)를 참조하면, 속도 정보(Speed)에 따라서 200MHz의 주파수를 갖는 클럭 신호(CLK3)가 선택된 경우의 데이타 확장을 설명하기 위한 도면이다. 이 때, 인코딩부(12)에서 출력되는 병렬 데이타 중에서 유효한 데이타는 4비트이므로 비트 0,1,2,3을 확장하여 8비트의 확장된 병렬 데이타를 생성한다. 즉, 도 3(b)에 도시된 바와 같이, 확장된 8비트 데이타(EXP_DATA[0:7])의 하위 비트 0와 비트 1에는 병렬 데이타(PAR_DATA)의 비트 0를 채우고, 비트 2와 비트 3에는 병렬 데이타(PAR_DATA)의 비트 1을 채우고, 비트 4와 비트 5에는 병렬 데이타(PAR_DATA)의 비트 2를 채운다. 또한, 비트 6~7도 같은 방식으로 병렬 데이타(PAR_DATA)의 비트 3을 채운다. 따라서, 확장된 병렬 데이타는 다음과 같이 나타낼 수 있다.
EXP_DATA[0:7] = {PD[0],PD[0],PD[1],PD[1],PD[2],PD[2],PD[3],PD[3]}
도 3(c)를 참조하면, 속도 정보(Speed)에 따라서 400MHz의 주파수를 갖는 클럭 신호(CLK4)가 선택된 경우의 데이타 확장을 설명하기 위한 도면이다. 이 때, 인코딩부(12)에서 출력되는 병렬 데이타(PAR_DATA) 중에서 유효한 데이타는 8비트이므로, 확장된 데이타(EXP_DATA)의 각 0~8비트는 병렬 데이타(PAR_DATA)의 각 0~8비트 데이타로 채워진다. 따라서, 확장된 병렬 데이타는 다음과 같이 나타낼 수 있다.
EXP_DATA[0:7] = {PD[0],PD[1],PD[2],PD[3],PD[4],PD[5],PD[6],PD[7]}
도 3(d)는 데이타 인에이블 신호(DATA_ENA)가 액티브되지 않는 상태의 디폴트(DEFAULT)를 나타낸 것으로서, 8비트의 확장된 데이타(EXP_DATA)는 모두 0로 설정된다.
즉, 상기의 과정에 따르면, 클럭 속도가 각각 100MHz, 200MHz, 400MHz인 경우에 병렬 데이타(PAR_DATA)의 유효 데이타만을 50MHz의 한 사이클을 기준으로하여 확장하게 된다. 또한, 도시되지는 않았으나, 병렬로 인가된 스트로브 신호(PAR_STROBE)의 경우에도 상기와 같은 방식으로 확장되어 확장된 스트로브 신호(EXP_STROBE)로서 생성됨을 알 수 있다.
도 4는 도 1에 도시된 인코더의 직렬 변환부(16)를 설명하기 위한 상세한 회로도이다. 상술한 바와 같이, 직렬 변환부(16)는 제1및 제2직렬 변환부(17,18)로 구성되며, 내부의 구성 요소들이 서로 같기 때문에 제1직렬 변환부(17)를 예를 들어 설명한다.
도 4를 참조하면, 제1직렬 변환부(17)는 제1멀티플렉서(400), 제2멀티플렉서 (420) 및 제3멀티플렉서(440)를 포함한다. 여기에서, 제1멀티플렉서(400)는 버퍼들(41,43)을 포함하고, 제2멀티플렉서(420)는 버퍼들(45,47)을 포함하고, 제3멀티플렉서(440)는 버퍼들(48, 49)을 포함한다.
도 4를 참조하면, 제1멀티플렉서(400)는 확장부(14)에서 확장된 8비트의 병렬 데이타(EXP_DATA)를 입력으로하며, 50MHz의 주파수를 갖는 제1클럭 신호(CLK1)를 선택 신호로서 입력하고, 상기의 선택 신호에 응답하여 각각 병렬 데이타(EXP_DATA[0:7])의 하위 4비트[0:3]와 상위 4비트[4:7]의 데이타를 선택하여 출력한다. 예를 들어, 클럭 신호(CLK1)가 하이 레벨이면, 버퍼(43)에 인가된 하위 비트 데이타들[0:3]이 선택되어 출력되고, 클럭 신호(CLK1)가 반전되어 로우 레벨이 되면 버퍼(41)에 인가된 상위 비트 데이타들[4:7]이 출력된다. 즉, 제1멀티플렉서(400)는 50MHz의 주파수를 갖는 제1클럭 신호(CLK1)에 응답하여 하위 4비트 또는 상위 4비트를 순차적으로 출력한다.
제2멀티플렉서(420)는 제1멀티플렉서(400)에서 출력된 4비트의 데이타를 입력 데이타로 인가하고, 100MHz의 주파수를 갖는 제2클럭 신호(CLK2)를 선택 신호로서 입력하고, 상기의 선택 신호에 응답하여 제1멀티플렉서(400)의 출력 중 하위 2비트 데이타 또는 상위 2비트 데이타를 선택적으로 출력한다. 예를 들어, 제2멀티플렉서(420)에 인가된 데이타가 하위 0~3비트 데이타라면, 버퍼(47)는 하위 2비트[0:1]를 입력으로하며 버퍼(45)는 상위 2비트[2:3]를 입력으로한다. 따라서, 100MHz를 갖는 클럭 신호(CLK2)가 하이 레벨이면 버퍼(47)에 입력된 하위 비트[0:1]를 출력하고, 클럭 신호(CLK2)가 로우 레벨이면 버퍼(45)에 입력되는 상위 비트[2:3]를 출력하게 된다. 또한, 제2멀티플렉서(420)에 입력되는 4비트의 데이타가 확장된 병렬 데이타(EXP_DATA[0:7])의 상위 4비트[4:7]라면, 버퍼(47)에 입력되는 데이타는 4비트[4:7]의 하위 2비트[4:5]가 되고, 버퍼(45)에 입력되는 데이타는 4비트[4:7]의 상위 비트[6:7]이 된다. 따라서, 클럭 신호(CLK2)가 하이 레벨이면 하위 2비트[4:5]가 출력되고, 로우 레벨이면 상위 2비트[6:7]가 출력 된다. 따라서, 제2멀티플렉서(420)는 100MHz의 제2클럭 신호(CLK2)에 응답하여 4비트의 입력 데이타 중에서 상위 2비트 또는 하위 2비트를 순차적으로 출력한다.
제3멀티플렉서(440)는 제2멀티플렉서(420)에서 출력되는 각 2비트의 데이타 를 입력으로하며, 200MHz의 주파수를 갖는 클럭 신호(CLK3)를 선택 신호로서 인가하고, 상기의 선택 신호에 응답하여 2비트 입력 데이타의 하위 1비트와 상위 1비트를 선택적으로 출력한다. 제3멀티플렉서(440)에서 출력된 데이타는 확장된 8비트의 병렬 데이타(EXP_DATA[0:7])를 직렬 변환시킨 최종적인 데이타 (SER_DATA)가 된다. 예를 들어, 제3멀티플렉서(440)에 인가된 데이타가 제2멀티플렉서(420)에서 출력된 하위 2비트[0:1]라면, 버퍼(49)에 입력되는 데이타는 비트 0이고, 버퍼(48)에 입력되는 데이타는 비트 1이 된다. 따라서, 클럭 신호(CLK3)가 하이 레벨일 때 멀티플렉서(440)는 최하위 비트인 비트 0를 출력하고, 클럭 신호(CLK3)가 로우 레벨일 때는 상위 비트인 비트 1을 출력하게 된다. 또한, 멀티플렉서(440)에 입력되는 데이타가 2,3비트인 경우에도 클럭 신호(CLK3)가 하이 레벨이면 비트 2를 출력하게 되고, 로우 레벨이면 비트 3을 출력하게 된다.
이러한 과정을 통하여 최종 출력 신호를 생성하는 제3멀티플렉서(440)는 최하위 비트 0에서 최상위 비트 7까지의 8비트 데이타를 순차적으로 출력하여 직렬 데이타(SER_DATA)를 생성한다. 상술한 바와 같이, 확장된 병렬 스트로브 신호 (EXP_STROBE)도 같은 과정을 통하여 직렬 스트로브 신호(SER_STROBE)로서 출력된다. 즉, 도 1에 도시된 인코더는 초기의 속도 정보(Speed)에 의해 주어진 클럭 신호에 응답하여 데이타를 인코딩하고, 주어진 클럭 신호에 따른 유효 데이타를 확장하여 8비트 병렬 데이타와 스트로브 신호를 생성한 후 50MHz, 100MHz 및 200MHz를 이용하여 직렬 변환하기 때문에, 400MHz의 클럭 신호를 이용하지 않고도 직렬 데이타를 생성할 수 있게 된다. 한편, 직렬 변환부(16)에서 출력된 직렬 데이타(SER_DATA) 및 직렬 스트로브 신호(SER_STROBE)는 외부 노드로 인가된다.
즉, 본 발명에 따른 인코더는 400MHz의 속도를 지향하는 IEEE1394직렬 버스의 프로토콜에 적합하도록 구현함에 있어서, 400MHz의 높은 주파수를 갖는 클럭 신호를 이용하지 않고도 낮은 클럭 신호들을 이용하여 직렬 데이타를 생성하는 것이 가능하기 때문에 좀더 안정적인 시스템을 구현할 수 있다.
본 발명에 따르면, 클럭 주파수 400MHz의 속도를 지향하는 IEEE1394 고속 직렬 버스 인터페이스를 이용한 시스템에서 400MHz의 고속 클럭 신호가 아닌 낮은 주파수의 클럭 신호들을 사용하여 병렬 데이타를 직렬로 변환하는 것이 가능하기 때문에, 고속 클럭 신호에 의해 발생되는 동작 상의 에러 및 데이타 손실을 없앨 수 있는 안정적인 인코더를 구현할 수 있다는 효과가 있다.

Claims (3)

  1. 외부의 위상 동기 루프에서 생성된 제1~제4클럭 신호를 입력하고, 마이크로프로세서에서 인가된 속도 정보에 상응하는 상기 제1~제4클럭 신호 중 하나에 응답하여 외부에서 인가된 병렬 데이타를 인코딩하는 인코더에 있어서,
    상기 제2~제4클럭 신호 중에서 상기 속도 정보에 상응하는 하나의 클럭 신호에 응답하여 외부에서 인가된 N(>0)비트 병렬 데이타를 인코딩하고, 상기 인코딩된 결과를 각각 병렬 데이타와 병렬 스트로브 신호로서 출력하는 인코딩 수단;
    상기 병렬 데이타 및 상기 병렬 스트로브 신호를 입력하고, 제1클럭 신호의 한 사이클을 기준으로 상기 병렬 데이타의 유효 비트와 상기 병렬 스트로브 신호의 유효 비트를 각각 N비트로 확장하여 상기 확장된 N비트 병렬 데이타 및 N비트 병렬 스트로브 신호로서 출력하는 확장 수단; 및
    상기 제1~제3클럭 신호들에 응답하여 상기 확장된 병렬 데이타 및 병렬 스트로브 신호를 직렬로 변환하고, 상기 직렬 변환된 데이타 및 스트로브 신호를 출력하는 직렬 변환 수단을 포함하고,
    상기 제1~제4클럭 신호들은 각각 50MHz, 100MHz, 200MHZ 및 400MHz의 주파수를 갖는 것을 특징으로하는 고속 직렬 버스 인터페이스를 위한 인코더.
  2. 제1항에 있어서, 상기 인코딩 수단은,
    상기 N비트의 병렬 데이타와 상기 속도 정보에 상응하는 제2~제4클럭 신호들 중 한 클럭 신호를 배타적 논리합하여 상기 병렬 스트로브 신호를 생성하는 것을 특징으로하는 고속 직렬 버스 인터페이스를 위한 인코더.
  3. 제1항에 있어서, 상기 직렬 변환 수단은,
    상기 확장 수단에서 출력된 N비트 병렬 데이타를 입력하고, 상기 제1클럭 신호에 응답하여 상기 N비트 병렬 데이타의 하위 N/2비트와 상위 N/2비트를 선택적으로 출력하는 제1멀티플렉서;
    상기 제1멀티플렉서의 출력을 입력으로하고, 상기 제2클럭 신호에 응답하여 상기 제1멀티플렉서 출력의 하위 N/4비트 또는 상위 N/4비트를 선택적으로 출력하는 제2멀티플렉서; 및
    상기 제2멀티플렉서의 출력을 입력으로하고, 상기 제3클럭 신호에 응답하여 상기 제2멀티플렉서 출력의 하위 N/8비트 또는 상위 N/8비트를 선택적으로 출력하는 제3멀티플렉서를 포함하는 것을 특징으로하는 고속 직렬 버스 인터페이스를 위한 인코더.
KR1019980031693A 1998-08-04 1998-08-04 고속 직렬 버스 인터페이스를 위한 인코더 KR20000013044A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980031693A KR20000013044A (ko) 1998-08-04 1998-08-04 고속 직렬 버스 인터페이스를 위한 인코더

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980031693A KR20000013044A (ko) 1998-08-04 1998-08-04 고속 직렬 버스 인터페이스를 위한 인코더

Publications (1)

Publication Number Publication Date
KR20000013044A true KR20000013044A (ko) 2000-03-06

Family

ID=19546368

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980031693A KR20000013044A (ko) 1998-08-04 1998-08-04 고속 직렬 버스 인터페이스를 위한 인코더

Country Status (1)

Country Link
KR (1) KR20000013044A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100657411B1 (ko) * 2005-09-09 2006-12-14 한국과학기술원 천이 수를 유지하는 내로우 버스 인코딩/디코딩 장치
KR102352006B1 (ko) 2020-09-23 2022-01-14 연세대학교 산학협력단 시간 인터리빙 방식 프리코더를 이용한 데이터 송수신 모듈 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100657411B1 (ko) * 2005-09-09 2006-12-14 한국과학기술원 천이 수를 유지하는 내로우 버스 인코딩/디코딩 장치
KR102352006B1 (ko) 2020-09-23 2022-01-14 연세대학교 산학협력단 시간 인터리빙 방식 프리코더를 이용한 데이터 송수신 모듈 및 방법

Similar Documents

Publication Publication Date Title
US5777567A (en) System and method for serial to parallel data conversion using delay line
US5974464A (en) System for high speed serial video signal transmission using DC-balanced coding
KR101173942B1 (ko) 데이터 송신 장치, 데이터 수신 장치, 데이터 전송 시스템 및 데이터 전송 방법
US5107264A (en) Digital frequency multiplication and data serialization circuits
US7409005B2 (en) High speed data transmitter and transmitting method thereof
JPS62157425A (ja) 直列のデ−タパタ−ン信号を変換するための装置
JPH0657010B2 (ja) データコード間でデータ流れを変換するための変換システム
KR100648742B1 (ko) 직렬 통신 시스템 및 방법과, 송신 장치 및 수신 장치
US5237701A (en) Data unpacker using a pack ratio control signal for unpacked parallel fixed m-bit width into parallel variable n-bit width word
US20050223261A1 (en) Communication clocking conversion techniques
US7342520B1 (en) Method and system for multilevel serializer/deserializer
TWI400915B (zh) 不需相鎖迴路而可產生串列時脈的方法及裝置
US7397878B2 (en) Data communication method and data communication device and semiconductor device
US5748123A (en) Decoding apparatus for Manchester code
CN109831192B (zh) 用于传送器、接收器的物理层电路及其方法、及通讯系统
KR20000013044A (ko) 고속 직렬 버스 인터페이스를 위한 인코더
JPS59123344A (ja) 情報ビット送受方法
US7660364B2 (en) Method of transmitting serial bit-stream and electronic transmitter for transmitting a serial bit-stream
US20030076562A1 (en) High speed optical transmitter and receiver with a serializer with a minimum frequency generator
KR100946177B1 (ko) 데이터 송수신 장치 및 방법
KR100202943B1 (ko) 다치논리데이터송신시스템
KR100574359B1 (ko) 직렬데이터의 송수신 장치 및 그 방법
KR100210394B1 (ko) 다치논리데이터송신시스템
KR100314675B1 (ko) 디지털 텔레비전의 양위상 디코더
KR20000040531A (ko) 아이 트리플 이 1394 직렬 버스 인터페이스를 위한 고속 피지컬칩 시스템 및 그의 데이타 송/수신 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination