KR100434833B1 - 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기 - Google Patents

직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기 Download PDF

Info

Publication number
KR100434833B1
KR100434833B1 KR10-2001-0065626A KR20010065626A KR100434833B1 KR 100434833 B1 KR100434833 B1 KR 100434833B1 KR 20010065626 A KR20010065626 A KR 20010065626A KR 100434833 B1 KR100434833 B1 KR 100434833B1
Authority
KR
South Korea
Prior art keywords
data
clock
serial
status
holding means
Prior art date
Application number
KR10-2001-0065626A
Other languages
English (en)
Other versions
KR20020032350A (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 세이코 엡슨 가부시키가이샤
Publication of KR20020032350A publication Critical patent/KR20020032350A/ko
Application granted granted Critical
Publication of KR100434833B1 publication Critical patent/KR100434833B1/ko

Links

Classifications

    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

본 발명은 직렬/병렬 변환 기능과 클럭 주파수 차를 흡수하는 버퍼 기능을 더불어 갖는 직렬/병렬 변환 회로, 데이터 전송 제어 장치, 전자 기기를 제공하는 것을 목적으로 한다. 직렬/병렬 변환 회로 (탄성 버퍼)는 USB 2.0의 HS 모드에서의 CLK1 (480㎒)에서 입력되는 직렬 데이터 DIN을 유지하는 데이터 유지 레지스터(50)와, 유지되는 데이터가 유효한지의 여부를 데이터 셀 단위로 판단하는 판단 회로(60)와, 유효라고 판단된 데이터 셀의 데이터를 CLK1보다도 주파수가 낮은 CLK2 (60㎒)에서 데이터 유지 레지스터(50)로부터 출력하는 셀렉터(66)를 포함한다. 선두 비트의 데이터가 유효라고 판단된 데이터 셀을 CLK2의 다음 클럭 사이클에서 유효라고 간주한다. CLK2의 클럭 사이클마다 데이터 셀이 유효한지의 여부를 판단하고, 유효가 아니라고 판단된 데이터 셀의 데이터의 출력을 1 클럭 사이클분만큼 대기한다. 기입 펄스 신호를 생성하여 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)를 동작시킨다.

Description

직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기{SERIAL/PARALLEL CONVERSION CIRCUIT, DATA TRANSFER CONTROL DEVICE AND ELECTRONIC EQUIPMENT}
본 발명은 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기에 관한 것이다.
최근, 퍼스널 컴퓨터와 주변 기기 (광의로는 전자 기기)를 접속하기 위한 인터페이스 규격으로서, USB(Universal Serial Bus)가 주목을 받고 있다. 이 USB에는 종래는 별도 규격의 커넥터로 접속되어 있던 마우스나 키보드나 프린터 등의 주변 기기를 동일한 규격의 커넥터로 접속 가능함과 함께 소위 플러그 플레이나 핫 플러그도 실현할 수 있다는 이점이 있다.
한편, 이 USB에는 동일하게 직렬 버스 인터페이스 규격으로서 각광을 받고 있는 IEEE 1394에 비하여 전송 속도가 느리다는 문제점이 있다.
그래서, 종래의 USB 1.1의 규격에 대한 하위 호환성을 가지면서, USB 1.1에 비하여 매우 고속의 480Mbps (HS 모드)의 데이터 전송 속도를 실현할 수 있는 USB 2.0 규격이 책정되어 주목을 받고 있다. 또한, USB 2.0의 물리층 회로나 논리층 회로의 인터페이스 사양을 정의한 UTMI(USB 2.0 Transceiver Macrocell Interface)도 책정되어 있다.
그런데, 이 USB 2.0에서는 HS(High Speed) 모드 시에는 480Mbps로 데이터 전송이 행해지기 때문에, 고속의 전송 속도가 요구되는 하드디스크 드라이브나 광 디스크 드라이브 등의 스토리지 기기의 인터페이스로서 이용할 수 있다는 이점이 있다.
그러나, 한편으로는 USB 버스에 접속되는 데이터 전송 제어 장치 (물리층 회로, 논리층 회로)는 480Mbps의 전송 데이터를 처리해야만 하기 때문에, 480㎒의 클럭 주파수에서 동작 가능한 고속의 회로 부분이 필요해진다. 그리고, 미세 가공이 가능한 최신 반도체 공정을 이용하면, 이러한 480㎒에서의 회로 동작도 실현 가능하지만, 최신 반도체 공정을 사용할 수 없는 경우에는 이러한 고속의 회로 동작의 실현은 매우 곤란해진다.
또한, 최신 반도체 공정을 사용하지 않고 480㎒의 고속 회로 동작을 실현하는 하나의 방법으로서, 수작업으로 회로를 배치, 배선하여 클럭 스큐(clock skew)를 최소화하고 동기 동작을 보증하는 방법이 있다.
그러나, 이러한 수작업에 의한 회로의 배치, 배선은 HDL(Hardware Description Language)에 의한 회로 합성이나 자동 배치 배선을 이용한 효율적인 회로 설계 방법에 비하여, 설계 기간의 장기화나 장치의 고비용화를 초래함과 함께, 데이터 전송 제어 장치 (물리층 회로, 논리층 회로)의 매크로셀화에 방해가 된다.
본 발명은 이상과 같은 기술적 과제를 감안하여 이루어진 것으로, 그 목적으로 하는 바는 고속버스를 통해 전송되어 오는 데이터의 직렬/병렬 변환에 최적인 직렬/병렬 변환 회로 및 이것을 이용한 데이터 전송 제어 장치, 전자 기기를 제공하는 데 있다.
또한, 본 발명의 다른 목적은 직렬/병렬 변환 기능과 클럭 주파수 차 등을 흡수하는 버퍼 기능을 더불어 갖는 직렬/병렬 변환 회로 및 이것을 이용한 데이터 전송 제어 장치, 전자 기기를 제공하는 데 있다.
상기 과제를 해결하기 위해서, 본 발명은 직렬 데이터를 병렬 데이터로 변환하는 직렬/병렬 변환 회로로서, 제1 클럭에서 입력되는 직렬 데이터를 수신하여 유지하는 데이터 유지 수단; 상기 데이터 유지 수단에 유지되는 데이터가 유효한지의 여부를 복수의 비트로 구성되는 데이터 셀 단위로 판단하는 판단 수단; 및 유효라고 판단된 데이터 셀의 데이터를 제1 클럭보다도 주파수가 낮은 제2 클럭에서 상기 데이터 유지 수단으로부터 출력하는 수단을 포함하는 직렬/병렬 변환 회로이다.
본 발명에 따르면, 주파수가 빠른 제1 클럭에서 직렬 데이터가 입력되면, 데이터 유지 수단이 이것을 유지한다. 그리고, 데이터가 유효한지의 여부가 데이터 셀 단위로 판단되고, 유효라고 판단된 데이터 셀이 제1 클럭보다도 주파수가 낮은 제2 클럭에서 출력된다.
본 발명에 따르면, 입력된 직렬 데이터가 데이터 셀 단위의 병렬 데이터로 출력되도록 되어 있기 때문에, 데이터의 직렬/병렬 변환 기능을 실현할 수 있다. 또한, 입력된 직렬 데이터는 데이터 유지 수단에 의해 유지되고 유효라고 판단된 데이터 셀만이 데이터 유지 수단으로부터 출력되도록 되어 있기 때문에, 클럭 주파수 차, 위상 차 등을 흡수 (보상)하는 버퍼 기능도 실현할 수 있다.
이와 같이 본 발명에 따르면, 직렬/병렬 변환 기능과 클럭 주파수 차 등을 흡수하는 버퍼 기능을 더불어 갖는 신규 타입의 직렬/병렬 변환 회로를 실현할 수 있다. 또한, 본 발명에 따르면, 판단 수단은 주파수가 낮은 제2 클럭으로 동작할 수 있도록 되어 있기 때문에, 이들의 직렬/병렬 변환 기능이나 버퍼 기능을 실현하기 위한 여러가지의 처리를, 시간적으로 여유를 갖고 행하는 것이 가능해지며, 데이터 전송 제어 장치 등에 최적의 직렬/병렬 변환 회로를 제공할 수 있다.
또한, 본 발명은 상기 판단 수단이 상기 제2 클럭의 제K 클럭 사이클에 있어서 소정의 비트의 데이터가 유효라고 판단한 데이터 셀에 대해서는, 상기 제2 클럭의 제K+1 클럭 사이클 이후의 클럭 사이클에 있어서 유효한 데이터 셀이라고 판단하도록 해도 된다.
이와 같이 하면, 데이터 셀 중 소정의 비트 (예를 들면, 선두 비트)의 데이터의 유효, 비유효를 판단하는 것만으로, 데이터 셀의 유효, 비유효를 판단할 수 있게 되기 때문에, 판단 수단의 구성이나 처리의 간소화를 도모할 수 있게 된다.
또한, 본 발명은 상기 판단 수단이 상기 제2 클럭의 클럭 사이클마다 데이터 셀이 유효한지의 여부를 판단하고, 데이터 셀이 유효가 아니라고 판단한 경우에는 그 데이터 셀의 데이터의 출력을 적어도 1 클럭 사이클분만큼 대기하도록 해도 된다.
이와 같이 대기 제어를 행하면, 적절한 데이터만을 후단에 출력할 수 있게 된다. 또한, 데이터 유지 수단이 언더 플로우 상태가 된 경우 등에도 처리에 혼란이 생기는 것을 효과적으로 방지할 수 있다. 또한, 판단 수단은 주파수가 낮은 제2 클럭의 클럭 사이클 기간을 이용하여 대기 제어를 행하는 것이 가능해지기 때문에, 보다 지능적인 대기 제어를 실현할 수 있다.
또한, 본 발명은 상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단을 포함하고, 상기 판단 수단이 상기 데이터 스테이터스 유지 수단으로부터의 데이터 스테이터스에 기초하여 각 데이터 셀이 유효한지의 여부를 판단하도록 해도 된다.
이와 같이 데이터 유지 수단과는 별도로 데이터 스테이터스 유지 수단을 설치하도록 하면, 데이터 유지 수단의 구성을 간소화할 수 있게 되어 직렬 데이터의 수신 처리의 신뢰성 향상 등을 도모할 수 있게 된다.
또한, 본 발명은 상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단을 포함하고, 상기 판단 수단이 상기 데이터 스테이터스 유지 수단으로부터의 데이터 스테이터스에 기초하여, 각 데이터 셀의 데이터의 출력을 대기하는지의 여부를 판단하도록 해도 된다.
이와 같이 하면, 데이터 스테이터스 유지 수단의 데이터 스테이터스를 모니터하는 것만으로, 대기 제어를 실현할 수 있게 된다. 그리고, 대기 제어를 실현함으로써, 적절한 데이터만을 후단에 출력할 수 있게 됨과 함께 언더플로우 시에 있어서도 처리에 혼란이 생기는 것을 방지할 수 있게 된다.
또한, 본 발명은 상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단을 포함하고, 상기 판단 수단이 상기 데이터 스테이터스 유지 수단에 유지되어 있는 데이터 스테이터스를 데이터 셀 단위로 클리어하도록 해도 된다.
이와 같이 하면, 출력이 완료된 데이터 셀에 대한 데이터 스테이터스를 클리어할 수 있기 때문에, 그 데이터 스테이터스를 다른 데이터 셀의 데이터 스테이터스로서 재차 이용할 수 있게 된다. 따라서, 예를 들면 데이터 유지 수단을 링 버퍼 구조로 한 경우에도 적절한 데이터 스테이터스를 데이터 스테이터스 유지 수단에 유지할 수 있게 된다.
또한, 본 발명은 상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단; 및 상기 제1 클럭의 N 클럭 사이클마다 주기적으로 펄스가 활성화됨과 함께 펄스가 활성화되는 기간이 1 클럭 사이클씩 상호 어긋나 있는 제1 ∼ 제N 기입 펄스 신호를 생성하는 기입 펄스 생성 수단을 포함하고, 상기 데이터 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터를 유지하며, 상기 데이터 스테이터스 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터의 스테이터스를 유지하도록 해도 된다.
또한, 본 발명은 직렬 데이터를 병렬 데이터로 변환하는 직렬/병렬 변환 회로로서, 제1 클럭에서 입력되는 직렬 데이터를 수신하여 유지하는 데이터 유지 수단; 상기 데이터 유지 수단으로부터의 데이터를 제1 클럭보다도 주파수가 낮은 제2 클럭에서 출력하는 수단; 상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단; 및 상기 제1 클럭의 N 클럭 사이클마다 주기적으로 펄스가 활성화됨과 함께 펄스가 활성화되는 기간이 1 클럭 사이클씩 상호 어긋나 있는 제1 ∼ 제N 기입 펄스 신호를 생성하는 기입 펄스 생성 수단을 포함하고, 상기 데이터 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터를 유지하며, 상기 데이터 스테이터스 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터의 스테이터스를 유지하는 직렬/병렬 변환 회로에 관계된다.
본 발명에 따르면, 그 펄스가 제1 클럭의 N (N은, 예를 들면 데이터 유지 수단이나 데이터 스테이터스 유지 수단의 비트수) 클럭 사이클마다 주기적으로 활성화되는 기입 펄스 신호가 생성된다. 그리고, 데이터 유지 수단이나 데이터 스테이터스 유지 수단은 이 기입 펄스 신호에 기초하여 동작한다. 따라서, 데이터 유지 수단이 포함하는 유지 수단 (각 비트의 데이터를 유지하는 수단)이나 데이터 스테이터스 유지 수단이 포함하는 유지 수단 (각 비트의 데이터의 스테이터스를 유지하는 수단)을 시간적으로 여유를 갖고 동작시키는 것이 가능해지며, 이들의 유지 수단의 동작의 신뢰성을 높일 수 있다. 또한, N 클럭 사이클의 기간을 이용하여 오버플로우 제어 등의 여러 가지의 처리를 실현하는 것도 가능하게 된다. 또, 데이터 스테이터스 유지 수단은 데이터의 모든 비트의 스테이터스를 유지할 필요는 없고, 적어도 데이터 셀 단위로 데이터의 스테이터스를 유지할 수 있으면 된다. 그리고, 데이터의 일부 비트의 스테이터스만을 유지하는 경우에는 제1 ∼ 제N 기입 펄스 신호의 일부만을 사용하게 된다.
또한, 본 발명은 버스를 통한 데이터 전송을 위한 데이터 전송 제어 장치로서, 상기한 어느 하나의 직렬/병렬 변환 회로; 및 상기 직렬/병렬 변환 회로로부터의 데이터를 수신하여, 데이터 전송을 위한 소정의 처리를 행하는 회로를 포함하도록 해도 된다.
본 발명에 따르면, 직렬/병렬 변환 기능과 클럭 주파수 차 등을 흡수하는 버퍼 기능을 더불어 갖는 직렬/병렬 변환 회로를 이용하여, 버스를 통해 전송되는 데이터의 직렬/병렬 변환 처리를 실현할 수 있다. 또한, 데이터 전송 제어 장치 내부의 클럭과 버스에 접속되는 외부 장치의 클럭에 주파수 차나 위상 차가 있는 경우에도 이것을 흡수하는 것이 가능해져서 보다 신뢰성이 높은 데이터 전송 처리를 실현할 수 있다.
또한, 본 발명은 소정의 규격에 준거하여 데이터 전송이 행해지는 경우에 있어서, 상기 소정의 규격에 의해 정의되어 있는 상기 제1 클럭의 주파수보다도 높은 주파수의 제3 클럭에 기초하여 상기 제2 클럭이 생성되도록 해도 된다.
이와 같이 하면, 버스에 접속되는 외부 장치가 클럭 주파수의 규격을 준수하지 않는 경우에도 유연하게 이에 대처할 수 있는 데이터 전송 제어 장치를 실현할 수 있게 된다.
또한, 본 발명은 USB(Universal Serial Bus)의 규격에 준거한 데이터 전송을 행하도록 해도 된다.
이와 같이 하면, 예를 들면 USB 2.0으로 규격화된 HS 모드에서의 데이터 전송 등에 대해서도 적정하게 실현할 수 있다.
또한, 본 발명에 따른 전자 기기는 상기한 어느 하나의 데이터 전송 제어 장치; 및 상기 데이터 전송 제어 장치 및 상기 버스를 통해 전송되는 데이터의 출력 처리 또는 수신 처리 또는 기억 처리를 행하는 장치를 포함하도록 해도 된다.
본 발명에 따르면, 전자 기기에 사용되는 데이터 전송 제어 장치의 저비용화, 신뢰성의 향상을 도모할 수 있기 때문에, 전자 기기의 저비용화, 신뢰성의 향상도 도모할 수 있게 된다. 또한, 본 발명에 따르면, 고속의 전송 모드로 데이터 전송을 행할 수 있게 되기 때문에, 전자 기기 처리의 고속화를 도모할 수 있게 된다.
도 1은 본 실시예의 데이터 전송 제어 장치의 구성예를 나타내는 도면.
도 2는 비교예에 대하여 설명하기 위한 도면.
도 3a, 도 3b, 도 3c는 비교예에 대하여 설명하기 위한 도면.
도 4는 본 실시예의 직렬/병렬 변환 회로의 구성예를 나타내는 도면.
도 5는 본 실시예의 직렬/병렬 변환 회로의 동작 개념도.
도 6은 데이터 유지 레지스터의 상세한 회로 구성예를 나타내는 도면.
도 7은 데이터 스테이터스 레지스터의 상세한 회로 구성예를 나타내는 도면.
도 8은 기입 펄스 생성 회로의 상세한 회로 구성예를 나타내는 도면.
도 9는 본 실시예의 동작에 대하여 설명하기 위한 타이밍 파형도.
도 10은 본 실시예의 동작에 대하여 설명하기 위한 타이밍 파형도.
도 11a, 도 11b, 도 11c는 데이터 셀의 선두 비트의 데이터가 유효한지의 여부를 판단하여, 그 데이터 셀의 유효, 비유효를 판단하는 방법에 대하여 설명하기 위한 도면.
도 12a, 도 12b는 데이터 스테이터스를 데이터 셀 단위로 클리어하는 방법에 대하여 설명하기 위한 도면.
도 13은 본 실시예의 대기 제어에 대하여 설명하기 위한 도면.
도 14는 기입 펄스 신호에 대하여 설명하기 위한 타이밍 파형도.
도 15는 클럭 주파수의 설정 방법에 대하여 설명하기 위한 도면.
도 16a, 도 16b, 도 16c는 다양한 전자 기기의 내부 블록도의 예시도.
도 17a, 도 17b, 도 17c는 다양한 전자 기기의 외관도의 예시도.
<도면의 주요 부분에 대한 부호의 설명>
10 : HSDLL 회로
12 : 탄성 버퍼
20 : 발진 회로
22 : HSPLL (480㎒)
24 : FSPLL (60㎒)
400 : 데이터 핸들러 회로
410 : HS 회로
420 : FS 회로
430 : 아날로그 프론트엔드 회로
440 : 클럭 생성 회로
450 : 클럭 제어 회로
이하, 본 발명의 적합한 실시예에 대하여 도면을 이용하여 상세히 설명한다.
1. 구성 및 동작
1.1 데이터 전송 제어 장치
도 1은 본 실시예의 데이터 전송 제어 장치 구성의 예를 나타낸다.
본 실시예의 데이터 전송 제어 장치는 데이터 핸들러 회로(400), HS(High Speed) 회로(410), FS(Full Speed) 회로(420), 아날로그 프론트엔드 회로(430), 클럭 생성 회로(440), 클럭 제어 회로(450)를 포함한다. 또, 본 발명의 데이터 전송 제어 장치는 도 1에 도시된 회로 블록을 모두 포함할 필요는 없고, 이들의 일부를 생략하는 구성으로 해도 된다.
데이터 핸들러 회로(400; 광의로는 데이터 전송을 행하기 위해 소정의 회로)는 USB 등에 준거한 데이터 전송을 위한 다양한 처리를 행한다. 보다 구체적으로는, 송신 시에는 송신 데이터에 SYNC(synchronization), SOP(Start Of Packet), EOP(End Of Packet)를 부가하는 처리나 비트 스터핑(bit stuffing) 처리 등을 행한다. 한편, 수신 시에는 수신 데이터의 SYNC, SOP, EOP를 검출/삭제하는 처리나 비트 언스터핑 처리 등을 행한다. 또한, 데이터의 송수신을 제어하기 위한 각종 타이밍 신호를 생성하는 처리도 행한다.
또, 수신 데이터는 데이터 핸들러 회로(400)로부터 후단의 회로인 SIE(Serial Interface Engine)에 출력되며, 송신 데이터는 SIE로부터 데이터 핸들러 회로(400)에 입력되게 된다.
HS 회로(410)는 데이터 전송 속도가 480Mbps가 되는 HS(High Speed)에서의 데이터의 송수신을 행하기 위한 논리 회로로서, FS 회로(420)는 데이터 전송 속도가 12Mbps가 되는 FS(Full Speed)에서의 데이터의 송수신을 행하기 위한 논리 회로이다.
여기서, HS 모드는 USB 2.0에 의해 새로이 정의된 전송 모드이다. 한편, FS 모드는 종래의 USB 1.1로 이미 정의되어 있는 전송 모드이다.
USB 2.0에서는 이러한 HS 모드가 준비되어 있기 때문에, 프린터, 오디오, 카메라 등에서의 데이터 전송 뿐만 아니라, 하드디스크 드라이브나 광 디스크 드라이브 (CDROM, DVD) 등의 스토리지 기기에서의 데이터 전송도 실현할 수 있게 된다.
HS 회로(410)는 HSDLL(High Speed Delay Line PLL) 회로(10), 탄성 버퍼(elasticity buffer; 12)를 포함한다.
여기서, HSDLL 회로(10)는 수신 데이터와 클럭 생성 회로(PLL; 440)로부터의 클럭에 기초하여, 데이터의 수신 클럭을 생성하는 회로이다.
또한, 탄성 버퍼(12)는 내부 장치 (데이터 전송 제어 장치)와 외부 장치 (버스에 접속되는 외부 장치)와의 클럭 주파수 차 (클럭 드리프트) 등을 흡수하기 위한 회로이다.
아날로그 프론트엔드 회로(430)는 FS나 HS에서의 송수신을 행하기 위한 드라이버나 리시버를 포함하는 아날로그 회로이다. USB에서는 DP (Data+)와 DM (Data-)을 이용한 차동 신호에 의해 데이터를 송수신한다.
클럭 생성 회로(440)는 장치 내부에서 사용하는 480㎒의 클럭이나 장치 내부및 SIE에서 사용하는 60㎒의 클럭을 생성한다.
클럭 생성 회로(440)는 발진 회로(20), HSPLL(22), FSPLL(24)을 포함한다.
여기서, 발진 회로(20)는, 예를 들면 외부 진동자와의 조합에 의해 베이스 클럭을 생성한다.
HSPLL(HS Phase Locked Loop; 22)은 발진 회로(20)에서 생성된 베이스 클럭에 기초하여, HS 모드에 필요한 480㎒의 클럭과, FS 모드, 장치 내부 및 SIE에서 필요한 60㎒의 클럭을 생성하는 PLL이다. 또, HS 모드로 송수신을 행하는 경우에는 이 HSPLL(22)에 의한 클럭 생성을 유효로 할 필요가 있다.
FSPLL(FS Phase Locked Loop; 24)은 발진 회로(20)에서 생성된 베이스 클럭에 기초하여, FS 모드, 장치 내부 및 SIE에서 필요한 60㎒의 클럭을 생성한다. 또, 이 FSPLL(24)에 의한 클럭 생성을 유효로 하였을 때에는 HS 모드에서의 송수신은 불가능하게 된다.
클럭 제어 회로(450)는 SIE로부터의 각종 제어 신호를 받아서, 클럭 생성 회로(440)를 제어하는 처리 등을 행한다. 또, 클럭 생성 회로(440)에 의해 생성된 60㎒의 시스템 클럭은 클럭 제어 회로(450)를 통해 SIE에 출력된다.
1.2 직렬/병렬 변환 회로
그런데, USB 2.0의 물리층 회로나 논리층 회로의 인터페이스 사양을 정의한 UTMI에서는 내부 장치 (데이터 전송 제어 장치)와 외부 장치 (버스에 접속되는 외부 장치)와의 클럭 주파수 차 등을 흡수하기 위한 버퍼로서의 탄성 버퍼를 설치하는 것이 추천되고 있다.
도 2는 탄성 버퍼의 구현예를 비교예로서 나타낸다.
도 2에 도시된 탄성 버퍼(600)는 24 비트 깊이의 직렬 버퍼(FIFO)로서, CLK1 (HSDLL로부터 출력되는 수신 클럭으로, 외부 480㎒ 동기의 클럭)을 이용하여 직렬 데이터 DIN을 순차적으로 수신한다. 그리고, 수신된 DIN을 먼저 입력된 순서로 CLK3 (내부 480㎒ 동기의 클럭)에 동기시켜 직렬 데이터 DSO로서 출력한다. 그리고, 직렬/병렬 변환 회로(610)가 이 직렬 데이터 DSO를 8 비트의 병렬 데이터로 변환하고 CLK2 (내부 60㎒ 동기)에 동기시켜 DOUT로서 출력한다.
그리고, 도 3a에 도시된 바와 같이, 탄성 버퍼(600)는 데이터가 12 비트분의 깊이만큼 축적된 곳에서 CLK3에 동기시킨 데이터 DSO의 출력을 개시한다.
또한, 도 3b에 도시된 바와 같이, 탄성 버퍼(600) 내의 데이터가 24 비트를 넘어서 가득차면 오버플로우 에러가 출력된다.
한편, 도 3c에 도시된 바와 같이, 탄성 버퍼(600) 내의 데이터가 비게 되면 언더플로우 에러가 출력된다.
예를 들면, USB 2.0 (UTMI)에서는 HS 모드에서의 클럭 오차는 480㎒+/-500 ppm으로 정의되고 있다. 그리고, 외부 장치 및 내부 장치의 양쪽이 480㎒+/-500 ppm의 규격을 준수하면, 1 패킷분의 전송으로 최대 +/-12 비트의 드리프트가 생기게 된다. 따라서, 탄성 버퍼(600)의 깊이를 24 비트 이상으로 설정함과 함께, 데이터 출력 개시의 임계치를 도 3a와 같이 중간 포인트 (12 비트)로 설정하면, 오버플로우 에러나 언더플로우 에러의 발생을 방지할 수 있다.
그런데, 도 2에 도시된 비교예의 탄성 버퍼(600)는 직렬로 입력된 데이터를480㎒의 CLK3을 이용하여 직렬로 출력한다. 따라서, 탄성 버퍼(600)의 모든 회로 부분을 480㎒의 클럭으로 동작시킬 필요가 있다. 즉, FIFO에서의 데이터의 입력 포인트 (입력 어드레스)나 출력 포인트 (출력 어드레스)의 설정 처리, 도 3a에 도시된 바와 같은 데이터 출력 개시의 임계치가 되는 중간 포인트 (12 비트)의 설정 처리, 도 3b, 도 3c에 도시된 바와 같은 오버플로우 에러나 언더플로우 에러의 검출 처리 (풀 신호나 엠프티 신호의 생성 처리) 등을 480㎒로 동작하는 회로에서 실현해야만 한다.
이 경우, 미세 가공이 가능한 최신 반도체 공정을 채택하면, 이러한 480㎒로 동작하는 고속의 회로를 실현하는 것도 가능하다.
그러나, 데이터 전송 제어 장치 (UTMI 트랜시버)를 매크로셀화하여, ASIC(Application Specific Integrated Circuit) 등에 이용하는 경우에는 비용 면에서 볼 때, 이러한 최신 반도체 공정이 아니라, 통상의 반도체 공정을 채용하는 것이 바람직하다.
또한, 탄성 버퍼의 회로 패턴을 배선 용량이 최적이 되도록 수작업으로 레이아웃하면, 통상의 반도체 공정을 이용하면서도 480㎒의 고속 동작을 실현할 수 있는 가능성이 있다.
그러나, 이러한 수작업의 레이아웃은 설계의 비효율화, 개발 기간의 장기화, 장치의 고비용화 등의 문제를 초래한다.
그래서, 본 실시예에서는 직렬/병렬 변환 기능과, 클럭 주파수 차를 흡수 (보상)하는 버퍼 기능을 더불어 갖는 직렬/병렬 변환 회로를 창출함으로써, 상기 문제점을 해결하고 있다.
도 4는 본 실시예의 직렬/병렬 변환 회로 (탄성 버퍼)의 구성예를 나타낸다.
도 4의 직렬/병렬 변환 회로는 탄성 버퍼(12), 판단 회로(60), 버퍼(64), 셀렉터(66)를 포함한다. 또, 탄성 버퍼(12)는 도 1의 HS 회로(410)에 포함되는 회로로서, 판단 회로(60), 버퍼(64), 셀렉터(66)는 도 1의 예를 들면 데이터 핸들러 회로(400)에 포함되는 회로이다.
탄성 버퍼(12)는 데이터 유지 레지스터(50; 데이터 유지 수단), 데이터 스테이터스 레지스터(52; 데이터 스테이터스 유지 수단), 기입 펄스 생성 회로(54; 기입 펄스 생성 수단)를 포함한다.
여기서, 데이터 유지 (홀드) 레지스터(50)는 480㎒의 CLK1 (제1 클럭)을 수신 클럭으로서 입력되는 직렬 데이터 DIN을 받아, 이것을 유지하는 32 비트폭의 레지스터이다. 또, 이 CLK1, DIN은 도 1의 HSDLL 회로(10)로부터 입력되는 것이다.
데이터 스테이터스 레지스터(52)는 데이터 유지 레지스터(50)의 각 비트의 데이터의 스테이터스를 유지하는 32 비트폭의 레지스터이다.
기입 펄스 생성 회로(54)는, 32 비트폭의 기입 펄스 신호 WP[31 : 0]을 생성하여, 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)에 출력하는 회로이다.
여기서, 기입 펄스 신호 WP[31 : 0]은 그 각 펄스가 CLK1의 32 클럭 사이클마다 (광의로는 CLK1의 일반화된 복수의 클럭 사이클인 수인 N 클럭 사이클마다) 주기적으로 활성화됨과 함께, 각 펄스가 활성화되는 기간이 1 클럭 사이클씩 상호 어긋나 있는 신호이다. 데이터 유지 레지스터(50)는 이 기입 펄스 신호 WP[31 : 0]에 기초하여, 각 비트의 데이터를 유지한다. 마찬가지로, 데이터 스테이터스 레지스터(52)도, 이 기입 펄스 신호 WP[31 : 0]에 기초하여, 각 비트의 데이터의 스테이터스를 유지한다.
판단 회로(60; 판단 수단)는, 데이터 유지 레지스터(50)에 유지되는 데이터가 유효(valid)한 지의 여부를 복수의 비트 (예를 들면, 8 비트)로 구성되는 데이터 셀 단위로 판단하는 회로로서, 내장된 스테이트 머신(62)에 따라 동작한다.
보다 구체적으로는, 판단 회로(60)는 데이터 유지 레지스터(50)의 각 데이터 셀이 유효한 지의 여부를 나타내는 4 비트폭의 신호 VALID[3 : 0]나 데이터 유지 레지스터(50)의 오버플로우 시에 활성화되는 신호 OVFLOW를 데이터 스테이터스 레지스터(52)로부터 받는다.
그리고, 판단 회로(60)는 각 데이터 셀이 유효한 지의 여부를 판단하고, 유효한 데이터 셀을 선택하기 위한 4 비트폭의 신호 SEL[3 : 0]을 셀렉터(66)에 출력한다. 예를 들면, SEL[3]이 「1」일 때에는 DBUF[31 : 24]가 DOUT[7 : 0]으로서 선택되어 출력된다. 마찬가지로, SEL[2], SEL[1], SEL[0]이 「1」일 때에는 각각, DBUF[23 : 16], DBUF[15 : 8], DBUF[7 : 0]이 DOUT[7 : 0]으로서 선택되어 출력되게 된다.
또한, 판단 회로(60)는 셀렉터(66)로부터 출력되는 데이터 DOUT[7 : 0]이 유효한 지의 여부를 나타내는 스트로브 신호 DSTRB를 후단의 회로에 출력한다. 이 DSTRB는 클럭 CLK2에 동기하여 변화하는 신호로, DOUT[7 : 0]이 유효할 때에 활성화된다.
또한, 판단 회로(60)는 데이터 스테이터스 레지스터(52)에 유지되어 있는 데이터 스테이터스를 데이터 셀 단위로 클리어하기 위한 4 비트폭의 신호 STRB[3 : 0]을 데이터 스테이터스 레지스터(52)에 출력한다. 또한, HS 모드에서의 패킷 수신 종료 시에 활성화되는 신호 TERM이나 HS 모드에서의 수신 동작을 인에이블 상태로 하는 신호 HSENB를 탄성 버퍼(12)에 출력한다.
또, 셀렉터(66), 판단 회로(60), 데이터 스테이터스 레지스터(52)에 디코드 회로를 설치하면, 신호 SEL, VALID, STRB를 4 비트폭이 아니라 2 비트폭으로 할 수 있게 된다.
버퍼(64)는 데이터 유지 레지스터(50)로부터의 32 비트폭의 병렬 데이터 DPA[31 : 0]을 받아, 60㎒의 클럭 CLK2에서 동기화하여 버퍼링한 데이터 DBUF[31 : 0]을 셀렉터(66)로 출력한다.
셀렉터(66; 출력 수단)는 판단 회로(60)로부터의 신호 SEL[3 : 0]에 기초하여, 버퍼(64)로부터의 데이터 DBUF[31 : 0]으로부터, 유효한 데이터 셀의 데이터를 선택하고, 8 비트폭의 데이터 DOUT[7 : 0]으로서 출력한다.
도 5는 본 실시예의 직렬/병렬 변환 회로의 동작 개념도를 나타낸다.
본 실시예에서는, 예를 들면 도 5의 A1 ∼ A5에 도시된 바와 같이, 480㎒의 CLK1 (제1 클럭)에서 입력되는 직렬 데이터 DIN이 데이터 유지 레지스터(50)에 순차적으로 유지된다.
그리고, 도 5의 B1 ∼ B5에 도시된 바와 같이, 데이터 유지 레지스터(50)에 유지되는 데이터가 유효한 지의 여부 (출력할 수 있는 데이터가 준비되었는 지의여부)가, 예를 들면 8 비트 (광의로는 복수 비트)로 구성되는 데이터 셀 단위로 판단된다. 이것은, 예를 들면 도 4의 판단 회로(60)가 데이터 스테이터스 레지스터(52)로부터의 신호 VALID[3 : 0]에 기초하여 판단함으로써 실현된다.
그리고, 도 5의 C1 ∼ C5에 도시된 바와 같이, 유효라고 판단된 데이터 셀이 CLK1보다도 주파수가 낮은 60㎒인 CLK2 (제2 클럭)에서 본 실시예의 직렬/병렬 변환 회로로부터 출력된다. 이것은, 예를 들면 도 4의 셀렉터(66)가 판단 회로(60)로부터 신호 SEL[3 : 0]에 기초하여, DBUF[31 : 0] 중에서 유효한 데이터 셀의 데이터를 선택함으로써 실현된다.
또, 도 5의 C6에 도시된 바와 같이, 본 실시예의 데이터 유지 레지스터(50; 탄성 버퍼)는 링 버퍼 구조로 되어 있다.
도 5에 도시된 바와 같이, 본 실시예에 따르면, 데이터 셀 단위 (복수 비트 단위)로 데이터의 유효, 비유효가 판단되며, 데이터 셀 단위로 본 실시예의 직렬/병렬 변환 회로로부터 데이터가 출력된다. 따라서, 데이터의 유효, 비유효의 판단이나 오버플로우 에러의 판단 등을, 예를 들면 주파수가 낮은 60㎒의 CLK2에 기초하여 실현할 수 있다. 따라서, 이러한 판단 처리를 480㎒의 CLK3에서 행해야만 하는 도 2의 비교예와는 달리, 미세 가공이 가능한 최신 반도체 공정을 이용하지 않고, UTMI에서 정의되는 탄성 버퍼의 기능을 실현할 수 있게 된다.
또한, 수작업에 의한 레이아웃이 불필요해져서, 회로 패턴을 게이트 어레이 등의 자동 배치 배선으로 생성할 수 있게 되기 때문에, 개발 기간의 단축화, 장치의 저비용화를 도모할 수 있다.
또한, 판단 회로(60) 등은 60㎒의 저속 클럭 주파수로 동작하면 되기 때문에, 클럭의 스큐나 지터에 대한 내성을 높일 수 있어 데이터 전송의 신뢰성을 대폭 향상시킬 수 있다.
또한, 도 2의 비교예에서는 CLK1, CLK3 간에서의 동기 타이밍 조정, CLK3, CLK2 간에서의 동기 타이밍 조정이라는 2 단계의 조정이 필요하지만, 본 실시예에서는 CLK1, CLK2 간의 1 단계의 타이밍 조정으로 해결된다. 따라서, 타이밍 설계가 용이해짐과 함께 회로 동작의 신뢰성도 높일 수 있다.
또한, 도 2의 비교예에서는 데이터가 12 비트분만큼 축적되고 나서, 데이터의 출력 처리 등을 개시할 필요가 있어, 처리를 개시하기까지의 시간 지연이 발생하지만, 도 4의 본 실시예에 따르면 이러한 시간 지연을 해소할 수 있다.
1.3 상세한 회로 구성
도 6은 도 4의 데이터 유지 레지스터(50)의 상세한 회로 구성예를 나타낸다. 또, 설명의 편의성을 위해서 도 6에는 데이터 유지 레지스터(50)의 주요부만을 나타낸다.
도 6에 도시된 바와 같이, 데이터 유지 레지스터(50)는 D 플립플롭 (광의로는 유지 수단) DFA31 ∼ DFA0을 갖는다.
그리고, 이들 DFA31 ∼ 0의 데이터 입력 단자에는 직렬 데이터 DIN이 입력된다.
또한, DFA31 ∼ 0의 각 클럭 단자에는 도 4의 기입 펄스 생성 회로(54)로부터의 각 기입 펄스 신호 WP[31 : 0]이 입력된다.
또한, DFA31 ∼ 0의 리세트 단자에는 제어 회로(60)로부터의 신호 TERM이 입력된다.
또한, DFA31 ∼ 0의 출력 신호는, DPA[31 : 0]으로서 도 4의 버퍼(64)에 출력된다.
도 6의 구성에 따르면, 직렬 데이터 DIN의 각 비트는 기입 펄스 신호 WP[31 : 0]에 의해 DFA31 ∼ 0에 순차적으로 유지되어 간다. 즉, DIN의 소정의 비트가 DFA0에 유지되면, 다음의 비트는 DFA1에 유지되고, 그 다음 비트는 DFA2에 유지된다. 그리고, 이와 같이 하여 DIN의 각 비트가 순차적으로 유지되고, DIN의 소정의 비트가 DFA31에 유지되면, 다음의 비트는 DFA0에 유지됨으로써 링 버퍼가 실현된다.
또한, 리세트 신호 RES가 활성화되면, DFA31 ∼ 0은 모두 리세트되며, DPA[31 : 0]은 전부 「0」 (논리 레벨)이 된다.
또, 신호 RES는 도 4의 신호 TERM 등에 기초하여 생성된다.
또한, 도 6에 도시된 바와 같이, DFA7 ∼ 0 (출력 DPA[7 : 0]), DFA15 ∼ 8 (DPA[15 : 8]), DFA23 ∼ 16 (DPA[23 : 16]), DFA31 ∼ 24 (DPA[31 : 24])가 각 데이터 셀을 구성하게 된다.
도 7은 도 4의 데이터 스테이터스 레지스터(52)의 상세한 회로 구성예를 나타낸다. 또, 설명을 간단히 하기 위해서 도 7에는 데이터 스테이터스 레지스터(52)의 주요부만을 나타낸다.
도 7에 도시된 바와 같이, 데이터 스테이터스 레지스터(52)는 D 플립플롭DFB31 ∼ DFB0을 갖는다.
그리고, 이들 DFB31 ∼ 0의 데이터 입력 단자는 전원 전압 VDD가 접속되어 「1」 (논리 레벨)로 설정된다.
또한, DFB31 ∼ 0의 각 클럭 단자에는 기입 펄스 생성 회로(54)로부터의 각 기입 펄스 신호 WP[31 : 0]이 입력된다.
또한, DFB31 ∼ 24, DFB23 ∼ 16, DFB15 ∼ 8, DFB7 ∼ 0의 리세트 단자에는, 각각 논리합 회로 OR3, OR2, OR1, OR0의 출력이 입력된다. 그리고, OR3 ∼ OR0의 한쪽 입력 단자에는 신호 PSTRB[3 : 0]이 입력되고, 다른쪽 입력 단자에는 신호 RES가 입력된다.
또, 신호 PSTRB[3 : 0]은 도 4에서 판단 회로(60)로부터 입력되는 스트로브 신호 STRB[3 : 0]의 상승 엣지에서 소정의 시간동안 활성화되는 펄스 신호이다.
또한, 각 데이터 셀의 선두 비트에 상당하는 DFB24, DFB16, DFB8, DFB0의 출력 신호는 데이터 셀의 유효, 비유효를 나타내는 신호 VALID[3 : 0]으로서 도 4의 판단 회로(60)에 출력된다.
도 7의 구성에 따르면, 기입 펄스 신호 WP[31 : 0]의 각 펄스가 활성화될 때마다 각 DFB31 ∼ 0에 「1」이 세트된다. 예를 들면, 도 6의 데이터 유지 레지스터(50)의 각 비트(DFA31 ∼ 0)에 데이터가 유지되면, 대응하는 데이터 스테이터스 레지스터(52)의 각 비트(DFB31 ∼ 0)에도 「1」이 세트된다. 즉, 데이터 스테이터스 레지스터(52)의 각 비트에는 데이터 유지 레지스터(50)의 각 비트의 데이터의 스테이터스 (「1」의 경우에는 데이터가 유효한 것을 나타내고, 「0」인 경우에는비유효한 것을 나타내는 스테이터스)가 유지되게 된다.
또한, 도 7에서는 PSTRB[3], PSTRB[2], PSTRB[1], PSTRB[0]이 활성화되면, 각각 DFB31 ∼ 24, DFB23 ∼ 16, DFB15 ∼ 8, DFB7 ∼ 0이 「0」으로 리세트된다. 그리고, DFB31 ∼ 24, DFB23 ∼ 16, DFB15 ∼ 8, DFB7 ∼ 0에 유지되는 데이터 스테이터스는 도 6에 도시된 데이터 셀인 DFA31 ∼ 24, DFA23 ∼ 16, DFA15 ∼ 8, DFA7 ∼ 0의 스테이터스이다. 따라서, PSTRB[3 : 0] 각각을 활성화함으로써, 데이터 스테이터스 레지스터(52)의 데이터 스테이터스가 데이터 셀 단위로 클리어되게 된다.
또, 도 7에 있어서, 신호 VALID[3 : 0]을 출력하기 위해서는 D 플립플롭 DFB31 ∼ 0 중에서, DFB24, DFB16, DFB8, DFB0을 설치하면 충분하고 (데이터 셀 단위의 스테이터스를 유지하는 유지 수단을 설치하면 충분하고), 그 밖의 D 플립플롭 DFB31 ∼ 25, DFB23 ∼ 17, DFB15 ∼ 9, DFB7 ∼ 1에 대해서는 생략할 수도 있다.
단, 이들 DFB31 ∼ 25, DFB23 ∼ 17, DFB15 ∼ 9, DFB7 ∼ 1을 단순히 제거해 버리면, WP[31 : 0]에 기생하는 부하 용량이 상호 달라지게 된다. 예를 들면, WP[24]는 DFA24 및 DFB24의 양쪽의 클럭 단자에 접속되는 것에 대하여, WP[31]은 DFA31의 클럭 단자에만 접속되어, WP[24]에 기생하는 부하 용량쪽이 WP[31]보다도 커지게 된다. 그리고, 이와 같이 WP[31 : 0]에 기생하는 부하 용량이 상호 다르면, WP[31 : 0]에 신호 지연차가 생겨서 회로 동작이 불안정해지는 문제가 발생할 가능성이 있다.
그래서, 이러한 문제를 해결하기 위해서, 불필요한 D 플립플롭 DFB31 ∼ 25,DFB23 ∼ 17, DFB15 ∼ 9, DFB7 ∼ 1을 대신하여, 이들 D 플립플롭의 클럭 단자와 동등한 부하 용량을 갖는 더미 소자를 설치하도록 해도 된다. 이러한 더미 소자로서는, D 플립플롭보다도 트랜지스터 수가 적은 소자 (예를 들면, 인버터 회로)를 사용하는 것이 바람직하다.
예를 들면, D 플립플롭의 트랜지스터 수를 NDF, 더미 소자의 트랜지스터 수를 NDM, 제거한 D 플립플롭의 수를 NOM으로 한다. 그러면, 이러한 더미 소자를 이용함으로써, NTR = (NDF - NDM) ×NOM의 수만큼 트랜지스터 수를 줄일 수 있어 회로를 소규모화할 수 있다.
도 8은 도 4의 기입 펄스 생성 회로(54)의 상세한 회로 구성예를 나타낸다. 또, 설명을 간단히 하기 위해서, 도 8에는 기입 펄스 생성 회로(54)의 주요부만을 나타낸다.
도 8에 도시된 바와 같이, 기입 펄스 생성 회로(54)는 D 플립플롭 DFC31 ∼ DFC0을 갖는다.
그리고, 이들 각 D 플립플롭 DFC31 ∼ 0의 데이터 입력 단자에는 전단의 각 D 플립플롭의 출력이 입력된다. 예를 들면, DFC0의 데이터 입력 단자에는 DFC31의 출력이 입력되고, DFC1의 데이터 입력 단자에는 DFC0의 출력이 입력되며 DFC2의 데이터 입력 단자에는 DFC1의 출력이 입력된다.
또한, DFC31 ∼ 0의 각 클럭 단자에는 HSDLL 회로(10)로부터의 480㎒의 클럭 CLK1이 입력된다.
또한, DFC31의 세트 단자 및 DFC30 ∼ 0의 리세트 단자에는 신호 RES가 입력된다.
그리고, DFC31 ∼ 0의 출력 신호는 기입 펄스 신호 WP[31 : 0]으로서 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)에 출력된다.
도 8의 구성에 따르면, 신호 RES가 활성화되면, DFC31은 「1」로 세트되며 DFC30 ∼ 0은 「0」으로 리세트된다.
그리고, 이 상태에서 CLK1이 입력되면, DFC31 ∼ DFC0에 있어서 「1」의 펄스가 DFC0에서 DFC31로 순차적으로 시프트해 가고, 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)로의 기입 펄스 신호 WP[31 : 0]이 생성되게 된다.
1.4 동작의 상세
다음으로, 본 실시예의 동작의 상세에 대하여 도 9, 도 10의 타이밍 파형도를 이용하여 설명한다.
도 9의 D1에 도시된 바와 같이, 직렬 데이터 DIN이 입력되고 나서 조금 후에, HSDLL 회로(10)로부터 DIN의 수신 클럭 CLK1이 입력된다.
그러면, 도 9의 D2에 도시된 바와 같이, 기입 펄스 생성 회로(54)가 이 CLK1 에 기초하여 기입 펄스 신호 WP[31 : 0]을 생성한다. 이 WP[31 : 0]은 CLK1의 32 클럭 사이클 (N 클럭 사이클)마다 그 펄스가 활성화됨과 함께, 예를 들면 D3, D4에 도시된 바와 같이 펄스가 활성화되는 기간이 상호 1 클럭 사이클씩 시프트하고 있는 신호이다.
그리고, 도 9의 D5에 도시된 바와 같이, 데이터 유지 레지스터(50)는 이 WP[31 : 0]에 기초하여 DIN의 각 비트를 유지하고, DPA[31 : 0]을 출력한다. 마찬가지로, 데이터 스테이터스 레지스터(52)도 이 WP[31 : 0]에 기초하여 각 비트의 데이터 스테이터스 (DSTATUS[31 : 0])를 유지한다.
VALID[3 : 0]은 각 데이터 셀의 선두의 1 비트가 유지되었을 때에 「1」 (논리 레벨)이 되며, PSTRB[3 : 0]이 활성화되면 「0」 (논리 레벨)이 된다. 또, PSTRB[3 : 0]은 STRB[3 : 0]의 상승 엣지에서 활성화되는 펄스 신호이다.
예를 들면, 데이터 셀의 선두 비트가 되는 데이터 유지 레지스터(50)의 DFA0 (도 6 참조)에 데이터가 유지되면, 데이터 스테이터스 레지스터(52)의 DFB0 (도 7 참조)에 「1」이 세트되기 때문에, VALID「0」은 도 9의 D7에 도시된 바와 같이 「1」이 된다.
한편, 도 9의 D8에 도시된 바와 같이 STRB[0]의 상승 엣지에 의해 PSTRB[0]의 펄스가 활성화되면, 데이터 스테이터스 레지스터의 DFB7 ∼ DFB0 (도 7 참조)이 리세트되기 때문에, VALID[0]은 도 9의 D9에 도시된 바와 같이 「0」으로 되돌아간다.
또한, VALID[1]은 다음의 데이터 셀의 선두 비트가 되는 데이터 유지 레지스터(50)의 DFA8 (도 6 참조)에 데이터가 유지되면, 도 9의 D10에 도시된 바와 같이 「1」이 되고, PSTRB[1]이 활성화되면 「0」으로 되돌아간다.
마찬가지로, VALID[2], VALID[3]도 데이터 유지 레지스터(50)의 DFA16, 24 (도 6 참조)에 데이터가 유지되면 「1」이 되고, PSTRB[2], PSTRB[3]이 활성화되면 「0」으로 되돌아간다.
다음으로, 도 10의 타이밍 파형도에 대하여 설명한다. 도 10에 있어서, 예를 들면, 「0x???0」이나 「0x?A??」의 「?」는 무효한 1 바이트 또는 유효/무효에 관계없는 1 바이트를 나타내고, 「0」, 「A」 등의 숫자나 알파벳은 유효한 1 바이트를 나타낸다. 또한, 「0b???0」, 「0b???1」의 「?」는 무효한 1 비트 또는 유효/무효에 관계없는 1 비트를 나타내고, 「0」, 「1」은 유효한 1 비트를 나타낸다. 또한, RSTATE는 스테이트 머신(62) (도 4 참조)의 상태를 나타내는 것으로, DSTRB는 DOUT[7 : 0]이 유효할 때 「1」이 되는 신호이다.
판단 회로(60)는 데이터 스테이터스 레지스터(52)로부터의 VALID[3 : 0]에 기초하여 데이터 셀의 선두 비트 (광의로는 소정의 비트)의 데이터가 유효한지의 여부를 판단하고, 유효라고 판단한 데이터 셀을 CLK2의 다음 클럭 사이클로 출력하는 제어를 행한다.
예를 들면, 도 10의 T0에서는, 0 바이트째 (1번째)의 데이터 셀의 선두 비트가 유효이면, VALID[3 : 0] (VALID[3 : 0]을 CLK2에 동기화한 신호 SVALID[3 : 0])에 기초하여 판단되어 있다. 그러면, 다음 클럭 사이클인 T1에서 스테이트 머신(62) (도 4 참조)의 스테이트 RSTATE가 「IDLE」에서 「GOT0」으로 변화한다. 그리고, 판단 회로(60)로부터의 신호 SEL[3 : 0]에 기초하여 셀렉터(66)가 그 0 바이트째의 데이터 셀의 데이터를 선택하고 DOUT[7 : 0]으로서 출력한다.
또한, 이 때, 판단 회로(60)가 STRB[0]을 「0」에서 「1」로 변화시킨다. 이에 따라, 출력된 0 바이트째의 데이터 셀에 대한 데이터 스테이터스가 클리어된다.
또한, 도 10의 T1에서는, 1 바이트째 (2번째)의 데이터 셀의 선두 비트가 유효이면 VALID[3 : 0]에 기초하여 판단되어 있다. 그러면, 다음의 클럭 사이클인 T2에서, 스테이트 머신(62)의 스테이트 RSTATE가 「GOT1」로 변화한다. 그리고, 그 1 바이트째의 데이터 셀의 데이터가 셀렉터(66)에 의해 선택되어 DOUT[7 : 0]으로서 출력된다.
또한, 이 때에 판단 회로(60)가 STRB[1]을 「0」에서 「1」로 변화시킨다. 이에 따라, 출력된 1 바이트째의 데이터 셀에 대한 데이터 스테이터스가 클리어된다.
또한, 도 10의 T2에서는 2 바이트째 (3번째)의 데이터 셀의 선두 비트가 유효이면 VALID[3 : 0]에 기초하여 판단되어 있다. 그러면, 다음 클럭 사이클인 T3에서 스테이트 머신(62)의 스테이트 RSTATE가 「GOT2」로 변화한다. 그리고, 그 2 바이트째의 데이터 셀의 데이터가 셀렉터(66)에 의해 선택되어 DOUT[7 : 0]으로서 출력된다.
또한, 이 때에 판단 회로(60)가 STRB[2]를 「0」에서 「1」로 변화시킨다. 이에 따라, 출력된 2 바이트째의 데이터 셀에 대한 데이터 스테이터스가 클리어된다.
또한, 도 10의 T3에서는, 3 바이트째 (4번째)의 데이터 셀의 선두 비트가 비 유효(INVALID)이면, VALID[3 : 0]에 기초하여 판단되어 있다. 그러면, 다음의 클럭 사이클인 T4에서 스테이트 머신(62)의 스테이트가 대기를 나타내는 「W3」으로 변화한다. 그리고, DOUT[7 : 0]의 출력이 1 클럭 사이클 기간만큼 대기한다.
또, 도 10의 T4에서는 앞의 스테이트가 「GOT2」이기 때문에, 3 바이트째의 데이터 셀을 대기하는 스테이트 「W3」으로 변화하고 있고, 다음의 T5에서 3 바이트째의 데이터 셀이 유효가 되면, 스테이트는 「GOT3」으로 변화하게 된다. 예를 들면, 가령 앞의 스테이트가 「GOT1」이었던 경우에는 2 바이트째의 데이터 셀을 대기하는 스테이트 「W2」로 변화하고, 다음의 클럭 사이클에서 2 바이트째의 데이터 셀이 유효가 되면, 스테이트는 「GOT2」로 변화하게 된다.
이상과 같이 본 실시예에서는, 데이터 셀 단위로 데이터의 유효, 비유효가 판단되면서, 직렬 데이터 DIN이 8 비트의 병렬 데이터 DOUT[7 : 0]으로 변환되어, CLK2에 동기화되어 출력된다. 이에 따라, 직렬/병렬 변환 기능과 클럭 주파수 차를 흡수하는 버퍼 기능을 더불어 갖는 직렬/병렬 변환 회로를 실현할 수 있게 된다.
2. 본 실시예의 특징
2.1 데이터 셀의 유효, 비유효의 판단
그런데, 본 실시예에서는, 데이터 셀이 유효한지의 여부를 데이터 셀의 선두 비트 (광의로는 소정의 비트)의 데이터를 모니터함으로써 판단하고 있다. 그리고, 선두 비트가 유효라고 판단된 데이터 셀에 대해서는, CLK2의 다음 클럭 사이클 (광의로는 다음의 클럭 사이클 이후)에 있어서 유효한 데이터 셀이라고 간주하고 있다.
예를 들면, 도 11a에 도시된 바와 같이, 데이터 유지 레지스터(50)에서의 데이터 셀 DC0의 선두 비트 (도 6의 DFA0)에 데이터가 유지되고, 이 DC0에 대응하는데이터 스테이터스의 선두 비트 (도 7의 DFB0)가 「1」로 세트되면, 신호 VALID[0]이 「1」이 된다 (도 9의 D7).
그러면, 이 VALID[0] (VALID[0]을 CLK2에서 동기화된 SVALID[0])을 수신하는 판단 회로(60)는 도 11b, 도 11c에 도시된 바와 같이 CLK2의 다음 클럭 사이클에서 이 DC0을 유효한 데이터 셀이라고 판단하고, DOUT[7 : 0]으로서 출력한다.
마찬가지로, 데이터 셀 DC1, DC2, DC3의 선두 비트가 유효로 되면, VALID[1], [2], [3]이 「1」이 되고, 이것을 수신한 판단 회로(60)는 CLK2의 다음 클럭 사이클에서 DC1, DC2, DC3을 유효한 데이터 셀이라고 판단한다.
이와 같이 본 실시예에서는, 데이터 셀의 모든 비트가 아니라 선두 비트 (광의로는 소정의 비트)의 데이터의 유효, 비유효만을 모니터하여 데이터 셀의 유효, 비유효를 판단하기 때문에, 신호 VALID의 비트폭을 적게 할 수 있어, 판단 회로(60)의 구성이나 처리를 간소화할 수 있다. 또한, 데이터 유지 레지스터(50)의 비트수 (깊이)를 보다 적은 비트수로 하는 것도 가능해진다.
또한, 판단 회로(60)는 480㎒의 빠른 주파수의 CLK1의 클럭 사이클이 아니고, 60㎒의 느린 주파수의 CLK2의 클럭 사이클에서, 데이터 셀의 유효, 비유효를 판단할 수 있다. 따라서, 판단 처리에 시간적인 여유를 가질 수 있게 되어, 최신 반도체 공정을 이용하지 않아도, 외부 장치와의 클럭 주파수 차를 흡수하는 탄성 버퍼의 기능을 실현할 수 있게 된다.
또한, 본 실시예에서는, 데이터 유지 레지스터(50)와는 별도로 데이터 스테이터스 레지스터(52)를 설치하고, 이 데이터 스테이터스 레지스터(52)로부터의 신호 VALID[3 : 0]에 기초하여 데이터 셀의 유효, 비유효를 판단하고 있다. 따라서, 데이터 유지 레지스터(50)의 구성을 도 6에 도시된 바와 같은 간소한 구성으로 할 수 있어, 직렬 데이터 DIN의 확실한 수신 처리를 실현할 수 있다.
또, 데이터 셀이 유효한 지의 여부는 선두 비트로 판단하는 것이 특히 바람직하지만, 선두 비트 이외의 비트로 판단해도 된다.
또한, 본 실시예에서는, 예를 들면 CLK2의 제K 클럭 사이클에서 선두 비트가 유효라고 판단된 데이터 셀을 다음 제K+1 클럭 사이클에서 유효라고 간주하고 있지만, 제K+2 클럭 사이클 이후에 유효라고 간주해도 된다. 예를 들면, 직렬 데이터 DIN을 8 비트가 아니라, 60㎒에 동기한 16 비트의 병렬 데이터로 변환하는 경우에는 데이터 셀의 비트폭을 16 비트로 한다. 그리고, 제K 클럭 사이클에서 선두 비트가 유효라고 판단된 데이터 셀을 제K+1이 아니라 제K+2 클럭 사이클에서 유효라고 간주하면 된다. 또는, 16 비트폭의 데이터 셀의 9비트째를 보아 데이터 셀이 유효한 지의 여부를 판단해도 된다.
또, 본 실시예에서는 데이터 스테이터스 레지스터(52)에 유지되어 있는 데이터 스테이터스를 데이터 셀 단위로 클리어하고 있다.
예를 들면, 도 12a에 도시된 바와 같이, 데이터 셀 DC0이 출력되면(DC0이 처리 완료가 되면), 이 데이터 셀 DC0에 대응하는 데이터 스테이터스가 클리어된다. 또한, 도 12b에 도시된 바와 같이, 데이터 셀 DC1이 출력되면, 이 데이터 셀 DC1에 대응하는 데이터 스테이터스가 클리어된다. 마찬가지로, 데이터 셀 DC2, DC3이 출력되면, DC2, DC3에 대응하는 데이터 스테이터스가 클리어된다.
이와 같이 하면, 예를 들면 데이터 유지 레지스터(50)를 링 버퍼 구조로 한 경우에도 데이터 스테이터스 레지스터(52)에 적절한 데이터 스테이터스를 유지할 수 있게 된다.
2.2 대기 제어
본 실시예에서는 데이터 셀이 유효한 지의 여부를 CLK2의 클럭 사이클마다 판단하고, 데이터 셀이 유효가 아니라고 판단한 경우에는 그 데이터 셀의 데이터의 출력을, 적어도 1 클럭 사이클분만큼 대기하도록 하고 있다.
예를 들면, 도 13의 E1에서는, 0 바이트째의 데이터 셀이 비유효라고 판단되기 때문에, 그 데이터 셀에 대응하는 DOUT[7 : 0]의 출력이 E2에 도시된 바와 같이, 예를 들면 1 클럭 사이클만큼 대기한다 (2 클럭 사이클 이상 대기해도 된다).
이러한 대기 제어를 행함으로써, 적절한 데이터만을 DOUT[7 : 0]으로서 후단의 회로에 출력할 수 있게 된다. 즉, 후단의 회로는 신호 DSTRB가 「1」일 때에 DOUT[7 : 0]을 수신하고, DSTRB가 「0」일 때 데이터가 수신을 대기하면 된다. 또한, 이러한 대기 제어를 행하면, 탄성 버퍼(12; 데이터 유지 레지스터)가 언더플로우 상태가 된 경우에도 처리에 혼란이 생기는 것을 방지할 수 있다.
예를 들면, 도 2의 비교예에서는, 480㎒의 빠른 주파수의 CLK1에서 모든 회로를 동작시켜야 하므로, 도 13에 도시된 바와 같은 대기 제어를 행하는 것은 매우 곤란해진다. 또한, 도 2의 비교예에서는 입력되는 직렬 데이터 DIN을 480㎒의 CLK3에서 차례차례로 출력해야만 하기 때문에, 탄성 버퍼(600)가 언더플로우 상태가 된 경우에 처리에 혼란이 생길 가능성이 있다.
이것에 대하여, 본 실시예에서는, 대기 제어를 행하는 판단 회로(60)를 60㎒의 느린 주파수의 CLK2에서 동작시킬 수 있다. 따라서, 도 2의 비교예와는 달리, 처리에 시간적인 여유를 갖게 할 수 있어, 스테이트 머신(62)을 이용한 지능형 대기 제어를 실현할 수 있다. 따라서, 탄성 버퍼(12)가 언더플로우 상태가 된 경우에도, 언더플로우 상태가 해소되기까지 대기하는 것이 가능해져서, 처리에 혼란이 생기는 것을 효과적으로 방지할 수 있다.
2.3 기입 펄스 신호의 이용
본 실시예에서는 도 14에 도시된 바와 같은 기입 펄스 신호 WP[31 : 0]을 이용하여, 데이터 유지 레지스터(50)의 각 비트의 데이터나 데이터 스테이터스 레지스터(52)의 각 비트의 데이터 스테이터스를 유지하도록 하고 있다.
여기서, 기입 펄스 신호 WP[31 : 0]은, 예를 들면 도 14의 F1, F2에 도시된 바와 같이 그 펄스가 CLK1의 32 클럭 사이클 (광의로는 N 클럭 사이클)마다 주기적으로 활성화되는 신호이다. 또한, 예를 들면 도 14의 F1, F3, F4에 도시된 바와 같이, 각 펄스가 활성화되는 기간이 CLK1의 1 클럭 사이클씩 상호 어긋나 있다.
이와 같이, 주파수가 빠른 CLK1에 기초하여 이러한 기입 펄스 신호 WP[31 : 0]을 생성하고, 이 WP[31 : 0]에 기초하여 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)를 동작시키도록 하면, 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)의 동작에 여유를 갖는 것이 가능해진다. 즉, 도 14에 도시된 바와 같이 각 기입 펄스 신호 WP[31 : 0]이 활성화되는 주기 TP를 길게할 수 있기 때문에, 데이터 유지 레지스터(50), 데이터 스테이터스 레지스터(52)가 포함하는 D 플립플롭의 셋업 타임이나 홀드 타임에 여유를 갖는 것이 가능해진다. 또한, 주기 TP가 길기 때문에, 이 주기 TP의 기간을 이용하여, 오버플로우 제어 처리 등의 각종 처리를 행하는 것이 가능해진다.
또한, 도 14에 도시된 바와 같이 주기적으로 활성화되는 기입 펄스 신호 WP[31 : 0]을 이용하여 도 6에 도시된 바와 같은 데이터 유지 레지스터(50)를 동작시키면, 간소한 구성으로 링 버퍼를 실현할 수 있게 된다.
2.4 클럭 주파수의 설정
한편, 도 15에 도시된 바와 같이, USB 2.0의 규격 (광의로는 소정의 규격)에서는 HS 모드에서의 최대 클럭 오차는 480㎒+/-500ppm으로 정의되어 있다. 그리고, 외부 장치 및 내부 장치의 양쪽이 480㎒+/-500ppm의 규격을 준수하고 있는 경우에는, 탄성 버퍼(12)를 적절한 깊이 (예를 들면, 본 실시예에서는 32 비트 깊이)로 설정해 둠으로써, 오버플로우 에러나 언더플로우 에러의 발생을 막을 수 있다.
그러나, 버스에 접속되는 외부 장치가 이러한 최대 클럭 오차의 규격을 준수하지 않았던 경우나 어떠한 문제점이 생긴 경우에는 탄성 버퍼(12)를 적절한 깊이로 설정해 두어도 오버플로우 에러나 언더플로우 에러가 발생할 우려가 있다.
그래서, 이러한 문제에 대처하기 위해서 USB 2.0의 HS 모드로 정의되어 있는 CLK1의 주파수보다도 높은 주파수의 CLK3 (제3 클럭)에 기초하여, 탄성 버퍼(12)의 후단의 회로를 동작시키는 60㎒의 CLK2 (제2 클럭)를 생성해도 된다. 예를 들면, CLK1의 주파수의 규격이 480㎒+/-500ppm인 경우에 CLK3의 주파수를 상한치인 480㎒+500ppm 이상으로 한다. 그리고, 이 CLK3을 분주함으로써 60㎒의 CLK2를 생성한다.
이와 같이 하면, 내부 장치의 클럭 주파수 (≥480㎒+500ppm)를 외부 장치의 클럭 주파수 (480㎒+/-500ppm) 이상으로 설정할 수 있기 때문에, 언더플로우 에러는 발생하기 쉬워지지만, 오버플로우 에러가 생길 가능성은 거의 없어진다.
그리고, 본 실시예에서는 도 13에서 설명한 바와 같은 대기 제어를 행함으로써, 언더플로우 에러에 대해서는 적절하게 대처할 수 있다. 따라서, 도 15에 도시된 바와 같은 클럭 주파수의 설정으로 하면, 외부 장치가 클럭 주파수의 규격을 준수하지 않은 경우에도 유연하게 이에 대처할 수 있는 데이터 전송 제어 장치를 실현할 수 있다.
3. 전자 기기
다음에, 본 실시예의 데이터 전송 제어 장치를 포함하는 전자 기기의 예에 대하여 설명한다.
예를 들면, 도 16a는 전자 기기 중의 하나인 프린터의 내부 블록도를 나타내고, 도 17a는 그 외관도를 나타낸다. CPU(마이크로 컴퓨터; 510)는 시스템 전체의 제어 등을 행한다. 조작부(511)는 프린터를 사용자가 조작하기 위한 것이다. ROM(516)에는 제어 프로그램, 폰트 등이 저장되며, RAM(517)은 CPU(510)의 작업 영역으로서 기능한다. DMAC(518)은 CPU(510)를 통하지 않고 데이터 전송을 행하기 위한 DMA 컨트롤러이다. 표시 패널(519)은 프린터의 동작 상태를 사용자에게 알리기 위한 것이다.
USB를 통해 퍼스널 컴퓨터 등의 다른 디바이스로부터 보내진 직렬 프린트 데이터는 데이터 전송 제어 장치(500)에 의해 병렬 프린트 데이터로 변환된다. 그리고, 변환 후의 병렬 프린트 데이터는 CPU(510) 또는 DMAC(518)에 의해 프린트 처리부(프린터 엔진; 512)로 보내진다. 그리고, 프린트 처리부(512)에 있어서 병렬 프린트 데이터에 대하여 소정의 처리가 실시되고, 프린트 헤더 등을 포함하는 프린트부(데이터의 출력 처리를 행하는 장치; 514)에 의해 종이에 프린트되어 출력된다.
도 16b는 전자 기기 중의 하나인 스캐너의 내부 블록도를 나타내고, 도 17b는 그 외관도를 나타낸다. CPU(520)는 시스템 전체의 제어 등을 행한다. 조작부(521)는 스캐너를 사용자가 조작하기 위한 것이다. ROM(526)에는 제어 프로그램 등이 저장되고, RAM(527)은 CPU(520)의 작업 영역으로서 기능한다. DMAC(528)는 DMA 컨트롤러이다.
광원, 광전 변환기 등을 포함하는 화상 판독부(데이터의 수신 처리를 행하는 장치; 522)에 의해 원고의 화상이 판독되고, 판독된 화상의 데이터는 화상 처리부(스캐너 엔진; 524)에 의해 처리된다. 그리고, 처리 후의 화상 데이터는, CPU(520) 또는 DMAC(528)에 의해 데이터 전송 제어 장치(500)로 보내진다. 데이터 전송 제어 장치(500)는 이 병렬의 화상 데이터를 직렬 데이터로 변환하고, USB를 통해 퍼스널 컴퓨터 등의 다른 디바이스에 송신한다.
도 16c는 전자 기기 중의 하나인 CD-RW 드라이브의 내부 블록도를 나타내고, 도 17c는 그 외관도를 나타낸다. CPU(530)는 시스템 전체의 제어 등을 행한다. 조작부(531)는 CD-RW를 사용자가 조작하기 위한 것이다. ROM(536)에는 제어 프로그램 등이 저장되며, RAM(537)은 CPU(530)의 작업 영역으로서 기능한다.DMAC(538)는 DMA 컨트롤러이다.
레이저, 모터, 광학계 등을 포함하는 판독·기입부(데이터의 수신 처리를 행하는 장치 또는 데이터의 기억 처리를 행하기 위한 장치; 533)에 의해 CD-RW(532)로부터 판독된 데이터는 신호 처리부(534)에 입력되며, 에러 정정 처리 등 소정의 신호 처리가 실시된다. 그리고, 신호 처리가 실시된 데이터가 CPU(530) 또는 DMAC(538)에 의해 데이터 전송 제어 장치(500)로 보내진다. 데이터 전송 제어 장치(500)는 이 병렬의 데이터를 직렬 데이터로 변환하고, USB를 통해 퍼스널 컴퓨터 등의 다른 디바이스에 송신한다.
한편, USB를 통해 다른 디바이스로부터 보내진 직렬 데이터는 데이터 전송 제어 장치(500)에 의해 병렬의 데이터로 변환된다. 그리고, 이 병렬 데이터는 CPU(530) 또는 DMAC(538)에 의해 신호 처리부(534)로 보내진다. 그리고, 신호 처리부(534)에 있어서 이 병렬 데이터에 대하여 소정의 신호 처리가 실시되며, 판독·기입부(533)에 의해 CD-RW(532)에 기억된다.
또, 도 16a, 도 16b, 도 16c에 있어서, CPU(510, 520, 530) 외에 데이터 전송 제어 장치(500)에서의 데이터 전송 제어를 위한 CPU를 별도로 설치하도록 해도 된다.
본 실시예의 데이터 전송 제어 장치를 전자 기기에 이용하면, USB 2.0에서의 HS 모드에서의 데이터 전송이 가능하게 된다. 따라서, 사용자가 퍼스널 컴퓨터 등에 의해 프린트 아웃의 지시를 행한 경우에 적은 시간 지연으로 프린트가 완료하게 된다. 또한, 스캐너로의 화상 수신의 지시 후에 적은 시간 지연으로 판독 화상을사용자는 볼 수 있게 된다. 또한, CD-RW로부터의 데이터의 판독이나 CD-RW로의 데이터의 기입을 고속으로 행할 수 있게 된다.
또한, 본 실시예의 데이터 전송 제어 장치를 전자 기기에 이용하면, 제조 비용이 저렴한 통상의 반도체 공정으로 데이터 전송 제어 장치의 IC를 제조할 수 있게 된다. 따라서, 데이터 전송 제어 장치의 저비용화를 도모하고, 전자 기기의 저비용화도 도모할 수 있게 된다. 또한, 데이터 전송 제어 중에서 고속으로 동작하는 부분을 적게 할 수 있기 때문에, 데이터 전송의 신뢰성을 향상시킬 수 있어 전자 기기의 신뢰성도 향상시킬 수 있다.
또, 본 실시예의 데이터 전송 제어 장치를 적용할 수 있는 전자 기기로서는, 상기한 기기 이외에도, 예를 들면 다양한 광 디스크 드라이브 (CD-ROM, DVD), 광 자기 디스크 드라이브 (MO), 하드디스크 드라이브, TV, VTR, 비디오 카메라, 오디오 기기, 전화기, 프로젝터, 퍼스널 컴퓨터, 전자수첩, 워드 프로세서 등의 기기를 고려할 수 있다.
또, 본 발명은 본 실시예에 한정되지 않고, 본 발명의 요지의 범위 내에서 여러 가지의 변형 실시가 가능하다.
예를 들면, 본 발명의 데이터 전송 제어 장치의 구성은 도 1에 도시된 구성에 한정되지는 않는다.
또한, 직렬/병렬 변환 회로의 구성도 도 4에 도시된 구성이 특히 바람직하지만, 이것에 한정되지는 않고 다양한 변형 실시가 가능하다.
또한, 데이터 유지 수단 (데이터 유지 레지스터), 데이터 스테이터스 유지수단 (데이터 스테이터스 레지스터), 기입 펄스 생성 수단 (기입 펄스 생성 회로)의 구성도 도 6, 도 7, 도 8에 도시된 구성에 한정되지는 않는다.
또한, 데이터 셀의 비트수나 제1, 제2, 제3 클럭의 주파수나 데이터 유지 레지스터나 데이터 스테이터스 유지 수단이나 기입 펄스 생성 수단의 비트수 등도 본 실시예에서는 그 일례를 나타낸 것으로, 이에 한정되지는 않는다.
또한, 본 발명은 USB 2.0에서의 데이터 전송에 적용되는 것이 특히 바람직하지만, 이에 한정되지는 않는다. 예를 들면, USB 2.0과 동일한 사상에 기초하는 규격이나 USB 2.0을 발전시킨 규격에서의 데이터 전송에도 본 발명은 적용할 수 있다.
이상 진술한 본 발명에 따르면, 전자 기기에 사용되는 데이터 전송 제어 장치의 저비용화, 신뢰성의 향상을 도모할 수 있기 때문에, 전자 기기의 저비용화, 신뢰성의 향상도 도모할 수 있게 된다. 또한, 본 발명에 따르면, 고속의 전송 모드로 데이터 전송을 행할 수 있게 되기 때문에, 전자 기기의 처리의 고속화를 도모할 수 있게 된다.

Claims (15)

  1. 직렬 데이터를 병렬 데이터로 변환하는 직렬/병렬 변환 회로에 있어서,
    제1 클럭에서 입력되는 직렬 데이터를 수신하여 유지하는 데이터 유지 수단;
    상기 데이터 유지 수단에 유지되는 데이터가 유효한지의 여부를 복수의 비트로 구성되는 데이터 셀 단위로 판단하고, 또한, 상기 제1 클럭보다 주파수가 낮은 제2 클럭에 기초하여 판단하는 판단 수단; 및
    유효라고 판단된 데이터 셀의 데이터를 상기 제1 클럭보다도 주파수가 낮은 상기 제2 클럭에서 상기 데이터 유지 수단으로부터 출력하는 수단
    을 포함하는 직렬/병렬 변환 회로.
  2. 제1항에 있어서,
    상기 판단 수단은, 상기 제2 클럭의 제K 클럭 사이클에 있어서 소정의 비트의 데이터가 유효라고 판단한 데이터 셀에 대해서, 상기 제2 클럭의 제K+1 클럭 사이클 이후의 클럭 사이클에 있어서 유효한 데이터 셀이라고 판단하는 직렬/병렬 변환 회로.
  3. 제1항에 있어서,
    상기 판단 수단은, 상기 제2 클럭의 클럭 사이클마다 데이터 셀이 유효한지의 여부를 판단하고, 데이터 셀이 유효가 아니라고 판단된 경우에는 상기 데이터 셀의 데이터의 출력을 적어도 1 클럭 사이클분만큼 대기하는 직렬/병렬 변환 회로.
  4. 제1항에 있어서,
    상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단
    을 포함하고,
    상기 판단 수단은, 상기 데이터 스테이터스 유지 수단으로부터의 데이터 스테이터스에 기초하여, 각 데이터 셀이 유효한지의 여부를 판단하는 직렬/병렬 변환 회로.
  5. 제1항에 있어서,
    상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단
    을 포함하고,
    상기 판단 수단은, 상기 데이터 스테이터스 유지 수단으로부터의 데이터 스테이터스에 기초하여, 각 데이터 셀의 데이터의 출력을 대기하는지의 여부를 판단하는 직렬/병렬 변환 회로.
  6. 제1항에 있어서,
    상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단
    을 포함하고,
    상기 판단 수단은 상기 데이터 스테이터스 유지 수단에 유지되어 있는 데이터 스테이터스를 데이터 셀 단위로 클리어하는 직렬/병렬 변환 회로.
  7. 제1항에 있어서,
    상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단; 및
    상기 제1 클럭의 N 클럭 사이클마다 주기적으로 펄스가 활성화됨과 함께 펄스가 활성화되는 기간이 1 클럭 사이클씩 상호 어긋나 있는 제1 ∼ 제N 기입 펄스 신호를 생성하는 기입 펄스 생성 수단
    을 포함하고,
    상기 데이터 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터를 유지하며,
    상기 데이터 스테이터스 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터의 스테이터스를 유지하는 직렬/병렬 변환 회로.
  8. 직렬 데이터를 병렬 데이터로 변환하는 직렬/병렬 변환 회로에 있어서,
    제1 클럭에서 입력되는 직렬 데이터를 수신하여 유지하는 데이터 유지 수단;
    상기 데이터 유지 수단으로부터의 데이터를 제1 클럭보다도 주파수가 낮은 제2 클럭에서 출력하는 수단;
    상기 데이터 유지 수단에 유지되는 데이터의 스테이터스를 유지하는 데이터 스테이터스 유지 수단; 및
    상기 제1 클럭의 N 클럭 사이클마다 주기적으로 펄스가 활성화됨과 함께 펄스가 활성화되는 기간이 1 클럭 사이클씩 상호 어긋나 있는 제1 ∼ 제N 기입 펄스 신호를 생성하는 기입 펄스 생성 수단
    을 포함하고,
    상기 데이터 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터를 유지하며,
    상기 데이터 스테이터스 유지 수단은 상기 제1 ∼ 제N의 각 기입 펄스 신호에 기초하여 데이터의 스테이터스를 유지하는 직렬/병렬 변환 회로.
  9. 버스를 통한 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    제1항에 기재된 직렬/병렬 변환 회로; 및
    상기 직렬/병렬 변환 회로로부터의 데이터를 수신하여 데이터 전송을 위한 소정의 처리를 행하는 회로
    를 포함하는 데이터 전송 제어 장치.
  10. 버스를 통한 데이터 전송을 위한 데이터 전송 제어 장치에 있어서,
    제8항에 기재된 직렬/병렬 변환 회로; 및
    상기 직렬/병렬 변환 회로로부터의 데이터를 수신하여 데이터 전송을 위한소정의 처리를 행하는 회로
    를 포함하는 데이터 전송 제어 장치.
  11. 제9항에 있어서,
    소정의 규격에 준거하여 데이터 전송이 행해지는 경우에, 상기 소정의 규격으로 정의되어 있는 상기 제1 클럭의 주파수보다도 높은 주파수의 제3 클럭에 기초하여, 상기 제2 클럭이 생성되는 데이터 전송 제어 장치.
  12. 제10항에 있어서,
    소정의 규격에 준거하여 데이터 전송이 행해지는 경우에, 상기 소정의 규격으로 정의되어 있는 상기 제1 클럭의 주파수보다도 높은 주파수의 제3 클럭에 기초하여, 상기 제2 클럭이 생성되는 데이터 전송 제어 장치.
  13. 제9항에 있어서,
    USB(Universal Serial Bus)의 규격에 준거한 데이터 전송을 행하는 데이터 전송 제어 장치.
  14. 제10항에 있어서,
    USB의 규격에 준거한 데이터 전송을 행하는 데이터 전송 제어 장치.
  15. 전자 기기에 있어서,
    제9항 내지 제14항 중 어느 한 항에 기재된 데이터 전송 제어 장치; 및
    상기 데이터 전송 제어 장치 및 상기 버스를 통해 전송되는 데이터의 출력 처리 또는 수신 처리 또는 기억 처리를 행하는 장치
    를 포함하는 전자 기기.
KR10-2001-0065626A 2000-10-25 2001-10-24 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기 KR100434833B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2000-00325341 2000-10-25
JP2000325341A JP3580242B2 (ja) 2000-10-25 2000-10-25 シリアル/パラレル変換回路、データ転送制御装置及び電子機器

Publications (2)

Publication Number Publication Date
KR20020032350A KR20020032350A (ko) 2002-05-03
KR100434833B1 true KR100434833B1 (ko) 2004-06-07

Family

ID=18802723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0065626A KR100434833B1 (ko) 2000-10-25 2001-10-24 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기

Country Status (6)

Country Link
US (1) US6732205B2 (ko)
EP (1) EP1202163A3 (ko)
JP (1) JP3580242B2 (ko)
KR (1) KR100434833B1 (ko)
CN (1) CN1160634C (ko)
TW (1) TW550462B (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ITVA20010035A1 (it) * 2001-10-16 2003-04-16 St Microelectronics Srl Dispositivo di memoria non volatile con doppia interfaccia di comunicazione seriale/parallela
US8751384B2 (en) 2002-05-08 2014-06-10 Metavante Corporation Integrated bill presentment and payment system and method of operating the same
JP4204290B2 (ja) * 2002-09-25 2009-01-07 アルプス電気株式会社 通信制御装置
TW589831B (en) 2002-12-05 2004-06-01 Via Tech Inc Multi-port network interface circuit and related method for triggering transmission signals of multiple ports with clocks of different phases
JP3649226B2 (ja) * 2003-05-20 2005-05-18 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
JP3614161B2 (ja) * 2003-05-20 2005-01-26 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
JP3649227B2 (ja) 2003-06-06 2005-05-18 セイコーエプソン株式会社 データ転送制御装置、電子機器及びデータ転送制御方法
CN1321382C (zh) * 2004-01-20 2007-06-13 宏达国际电子股份有限公司 串行/并行数据转换模块及相关计算机系统
US20050278042A1 (en) * 2004-05-26 2005-12-15 Sung-Jung Wu Fully digital audio output device
JP2006048767A (ja) * 2004-07-30 2006-02-16 Elpida Memory Inc 半導体メモリ試験装置
JP4517891B2 (ja) 2005-02-28 2010-08-04 日本電気株式会社 シリアル/パラレル変換回路及びパラレル/シリアル変換回路
US7526704B2 (en) * 2005-08-23 2009-04-28 Micron Technology, Inc. Testing system and method allowing adjustment of signal transmit timing
JP2007172574A (ja) * 2005-11-25 2007-07-05 Seiko Epson Corp 集積回路装置及び電子機器
US20070208980A1 (en) * 2006-01-30 2007-09-06 Peter Gregorius Method of transmitting data between different clock domains
JP4796983B2 (ja) * 2007-03-08 2011-10-19 オンセミコンダクター・トレーディング・リミテッド シリアル/パラレル変換回路、液晶表示駆動回路
JP4743456B2 (ja) * 2009-07-01 2011-08-10 テクトロニクス・インターナショナル・セールス・ゲーエムベーハー データ生成装置
KR20110058575A (ko) * 2009-11-26 2011-06-01 삼성전자주식회사 데이터 프로세싱 시스템에서의 대역폭 동기화 회로 및 그에 따른 대역폭 동기화 방법
US8335875B1 (en) * 2011-06-24 2012-12-18 Intel Corporation System and method for performing isochronous data buffering
JP5891758B2 (ja) * 2011-12-06 2016-03-23 サンケン電気株式会社 電子装置
CN104750648B (zh) * 2015-04-10 2017-07-21 北京拓盛电子科技有限公司 基于双线总线的单向通讯控制装置及方法
JP6687392B2 (ja) * 2016-01-08 2020-04-22 ザインエレクトロニクス株式会社 シリアライザ装置
CN106598134B (zh) * 2016-12-15 2020-02-11 中国人民解放军重庆通信学院 一种数字式相参窄脉冲发生装置
US20180173666A1 (en) * 2016-12-16 2018-06-21 Intel Corporation APPARATUSES AND METHODS TO COUPLE AN EMBEDDED UNIVERSAL SERIAL BUS (eUSB) CIRCUIT TO A UNIVERSAL SERIAL BUS (USB) TRANSCEIVER INTERFACE CIRCUIT
CN110601698B (zh) * 2018-06-13 2022-09-20 瑞昱半导体股份有限公司 串行器/解串器实体层电路
US11562780B2 (en) 2019-10-04 2023-01-24 Samsung Electronics Co., Ltd. Memory device and memory system including the same
KR20210040707A (ko) * 2019-10-04 2021-04-14 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0170390B1 (ko) * 1989-10-26 1999-03-30 존 지. 웨브 클록을 분배하는 시스템 및 방법
KR0177733B1 (ko) * 1994-08-26 1999-05-15 정장호 데이타 전송장치의 클럭동기 회로

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4447804A (en) * 1981-06-22 1984-05-08 The United States Of America As Represented By The Secretary Of The Navy Serial to parallel data conversion interface circuit
US4901076A (en) * 1987-10-29 1990-02-13 International Business Machines Corporation Circuit for converting between serial and parallel data streams by high speed addressing
US4945548A (en) * 1988-04-28 1990-07-31 Digital Equipment Corporation Method and apparatus for detecting impending overflow and/or underrun of elasticity buffer
US5274647A (en) * 1989-02-13 1993-12-28 Kabushiki Kaisha Toshiba Elastic buffer with error detection using a hamming distance circuit
US5323426A (en) * 1992-02-21 1994-06-21 Apple Computer, Inc. Elasticity buffer for data/clock synchronization
US6081561A (en) * 1994-02-25 2000-06-27 Texas Instruments Incorporated Method and apparatus for receiving and reconstituting a data signal employing oversampling and selection of a sampled data signal remote from transitions in the data signal
US6359951B1 (en) * 1998-06-03 2002-03-19 Intel Corporation Method and apparatus for high speed signaling
GB2338155B (en) * 1998-06-05 2003-02-12 3Com Technologies Ltd Hub system with ring arbitration
FI982040A (fi) * 1998-09-22 2000-03-23 Nokia Multimedia Network Terminals Oy Menetelmä ja laite datavirran synkronoimiseksi
JP3068593B1 (ja) * 1999-02-22 2000-07-24 日本電気アイシーマイコンシステム株式会社 シリアル―パラレル変換回路
US6594329B1 (en) * 1999-11-01 2003-07-15 Intel Corporation Elastic buffer
US6509851B1 (en) * 2000-03-30 2003-01-21 Cypress Semiconductor Corp. Method for using a recovered data-encoded clock to convert high-frequency serial data to lower frequency parallel data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0170390B1 (ko) * 1989-10-26 1999-03-30 존 지. 웨브 클록을 분배하는 시스템 및 방법
KR0177733B1 (ko) * 1994-08-26 1999-05-15 정장호 데이타 전송장치의 클럭동기 회로

Also Published As

Publication number Publication date
TW550462B (en) 2003-09-01
EP1202163A2 (en) 2002-05-02
KR20020032350A (ko) 2002-05-03
JP2002135132A (ja) 2002-05-10
US20020049872A1 (en) 2002-04-25
CN1160634C (zh) 2004-08-04
US6732205B2 (en) 2004-05-04
EP1202163A3 (en) 2004-09-08
JP3580242B2 (ja) 2004-10-20
CN1354425A (zh) 2002-06-19

Similar Documents

Publication Publication Date Title
KR100434833B1 (ko) 직렬/병렬 변환 회로, 데이터 전송 제어 장치 및 전자 기기
CN106487372B (zh) 包括单线接口的装置和具有该装置的数据处理系统
US6260152B1 (en) Method and apparatus for synchronizing data transfers in a logic circuit having plural clock domains
US6732204B2 (en) Data transfer control device and electronic equipment
US20020047738A1 (en) Sampling clock generation circuit, data transfer control device, and electronic equipment
KR100688516B1 (ko) 단일 라인을 이용한 직렬 데이터 통신 방법 및 그 장치
JP3646644B2 (ja) データ転送制御装置及び電子機器
US6990597B2 (en) Clock generation circuit, data transfer control device, and electronic instrument
JP3645584B2 (ja) データ転送同期装置
US6163584A (en) Synchronization element for converting an asynchronous pulse signal into a synchronous pulse signal
US6664859B1 (en) State machine based phase-lock-loop for USB clock recovery
EP3739463B1 (en) Circuit for asynchronous data transfer
CN113220609B (zh) 信号收发系统与方法
US20080201499A1 (en) Asynchronous Data Buffer
JP2596336B2 (ja) 非同期ディジタル通信装置
JP2001160817A (ja) トランシーバ、usb制御装置、プリンタ、およびusb制御方法
JP2994906B2 (ja) データ受信回路
KR100295751B1 (ko) 클럭신호의글리치발생억제회로
KR100314675B1 (ko) 디지털 텔레비전의 양위상 디코더
JP3115756B2 (ja) デマルチプレクサ回路
US20050273532A1 (en) Memory circuit
JP2000040054A (ja) シリアルインターフェース
JP2001222407A (ja) Fifo回路
JP2005321856A (ja) 半導体集積回路
JP2001036512A (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
FPAY Annual fee payment

Payment date: 20130430

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20140502

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20150430

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160427

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee