KR101453176B1 - 정보 처리 장치 또는 정보 처리 방법 - Google Patents
정보 처리 장치 또는 정보 처리 방법 Download PDFInfo
- Publication number
- KR101453176B1 KR101453176B1 KR1020127018694A KR20127018694A KR101453176B1 KR 101453176 B1 KR101453176 B1 KR 101453176B1 KR 1020127018694 A KR1020127018694 A KR 1020127018694A KR 20127018694 A KR20127018694 A KR 20127018694A KR 101453176 B1 KR101453176 B1 KR 101453176B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- external device
- unit
- clock
- received
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0091—Transmitter details
-
- 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
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0016—Arrangements for synchronising receiver with transmitter correction of synchronization errors
- H04L7/0033—Correction by delay
- H04L7/0037—Delay of clock signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/02—Speed or phase control by the received code signals, the signals containing no special synchronisation information
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
- H04L7/10—Arrangements for initial synchronisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
외부 디바이스로부터 외부 디바이스 컨트롤러에 의해 수신된 데이터가 외부 디바이스 컨트롤러의 출력 클럭에 대해 1 사이클 이상 지연되면, 지연은 기존 구성으로 반드시 검출되지 않을 수 있다. 외부 디바이스 컨트롤러의 데이터 래치 타이밍이 조정될 때, 외부 디바이스 컨트롤러의 출력 클럭의 게이팅 또는 게이팅 해제는 미리 정해진 게이팅 정보에 따라 수행되므로, 데이터 래치 타이밍을 조정하기 위한 캘리브레이션의 정밀도가 향상된다.
Description
본 발명은, 외부 디바이스 컨트롤러 등의 정보 처리 장치가 외부 디바이스에 클럭을 공급하고 그 클럭에 동기하여 외부 디바이스로부터 출력된 외부 디바이스 데이터를 내부에서 래치하는 정보 처리 장치 또는 정보 처리 방법에 관한 것이다.
특허 문헌 1에 개시된 바와 같이, 외부 디바이스 컨트롤러를 포함하는 정보 처리 장치를 위한 기술이 있는데, 외부 디바이스가 정보 처리 장치와 통신할 수 있는 정보 처리 장치에 접속될 때, 동작 클럭이 정보 처리 장치의 외부 디바이스 컨트롤러로부터 외부 디바이스로 공급된다. 여기서, 일반적으로, 외부 디바이스는 외부 디바이스 컨트롤러로부터 공급된 클럭에 동기하여 데이터를 출력하도록 설정되고, 외부 디바이스 컨트롤러는 외부 디바이스로부터 출력된 데이터를 내부에서 래치하도록 구성된다.
상기 방법을 이용하여, 외부 디바이스 컨트롤러는 외부 디바이스에의 (클럭 게이팅에 대응하는) 클럭의 공급을 일시적으로 중지하므로, 외부 디바이스로부터 외부 디바이스 컨트롤러로의 데이터의 공급이 일시적으로 중지되게 할 수 있다. 예를 들어, 데이터가 외부 디바이스 컨트롤러에서의 수신 버퍼의 허용된 용량까지 누적될 때, 외부 디바이스 컨트롤러는 클럭의 공급을 중지하여 데이터의 공급을 중지할 수 있으므로, 버퍼의 용량이 작더라도 버퍼의 오버플로우를 원하는 대로 방지한다.
여기서, 외부 디바이스로부터 외부 디바이스 컨트롤러에 의해 수신된 데이터는 외부 디바이스 컨트롤러의 출력 클럭에 대해 한 사이클 이상 지연되면, 특허 문헌 1에서 개시된 것과 같은 구성으로는 지연의 유무를 검출하기가 어렵다.
따라서, 본 발명은 외부 디바이스 컨트롤러의 출력 클럭에 대해 한 사이클 이상의 지연이 생기는 경우 지연의 유무를 검출하는 정보 처리 장치 또는 정보 처리 장치를 제공한다.
본 발명의 한 양상에서, 정보 처리 장치는 외부 디바이스에 클럭을 공급하도록 구성된 공급 유닛; 외부 디바이스에 미리 정해진 패턴의 데이터를 출력하라고 명령하도록 구성된 명령 유닛; 클럭에 동기하여 외부 디바이스로부터 출력된 데이터를 수신하도록 구성된 수신 유닛; 및 명령 유닛으로부터의 명령에 따라 외부 디바이스로부터 출력된 미리 정해진 패턴의 데이터의 수신 동안 공급 유닛에 의한 클럭의 공급을 중단하도록 구성된 제어 유닛을 포함한다.
도 1은 본 발명의 예시적인 실시예에서의 외부 디바이스 컨트롤러의 구성도
도 2a는 스큐 제어 유닛의 구성도.
도 2b는 스큐 제어 유닛의 타이밍 차트.
도 3a는 사이클 제어 유닛의 구성도.
도 3b는 사이클 제어 유닛의 타이밍 차트.
도 4a는 캘리브레이션 처리의 플로우 차트.
도 4b는 출력 클럭 제어 유닛의 구성도.
도 5는 캘리브레이션 패턴의 수신 동안 게이팅 패턴에 기초한 출력 클럭의 게이팅의 타이밍 차트.
도 6은 사이클 지표와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 7은 사이클 지표와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 8은 게이팅 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 9는 게이팅 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 10은 게이팅 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 11은 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 12는 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 13은 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 14는 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 15는 게이팅 시작 위치, 게이팅 종료 위치, 및 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 16은 게이팅 시작 위치, 게이팅 종료 위치, 및 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 17은 게이팅 시작 위치, 게이팅 종료 위치, 및 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 18은 정확한 사이클이 사용될 때 외부 디바이스 컨트롤러 및 외부 디바이스에 의해 취급된 신호의 타이밍 차트.
도 19는 외부 디바이스 컨트롤러를 포함하는 시스템 구성의 개략도.
도 20은 실제로 수신된 캘리브레이션 패턴과 실제 사이클의 수와의 차 사이의 관계의 예를 도시한 표.
도 21a는 외부 디바이스 컨트롤러의 구성을 도시한 도면.
도 21b는 명령 또는 데이터의 포맷을 도시한 타이밍 차트.
도 22는 캘리브레이션 처리의 플로우 차트.
도 23은 캘리브레이션 처리의 타이밍 차트.
도 24는 외부 디바이스 컨트롤러에 의해 취급된 신호의 타이밍 차트.
도 2a는 스큐 제어 유닛의 구성도.
도 2b는 스큐 제어 유닛의 타이밍 차트.
도 3a는 사이클 제어 유닛의 구성도.
도 3b는 사이클 제어 유닛의 타이밍 차트.
도 4a는 캘리브레이션 처리의 플로우 차트.
도 4b는 출력 클럭 제어 유닛의 구성도.
도 5는 캘리브레이션 패턴의 수신 동안 게이팅 패턴에 기초한 출력 클럭의 게이팅의 타이밍 차트.
도 6은 사이클 지표와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 7은 사이클 지표와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 8은 게이팅 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 9는 게이팅 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 10은 게이팅 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 11은 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 12는 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 13은 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 14는 게이팅 동작 간의 사이클의 수와 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 15는 게이팅 시작 위치, 게이팅 종료 위치, 및 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 16은 게이팅 시작 위치, 게이팅 종료 위치, 및 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 17은 게이팅 시작 위치, 게이팅 종료 위치, 및 수신된 캘리브레이션 패턴 사이의 상관을 도시한 타이밍 차트.
도 18은 정확한 사이클이 사용될 때 외부 디바이스 컨트롤러 및 외부 디바이스에 의해 취급된 신호의 타이밍 차트.
도 19는 외부 디바이스 컨트롤러를 포함하는 시스템 구성의 개략도.
도 20은 실제로 수신된 캘리브레이션 패턴과 실제 사이클의 수와의 차 사이의 관계의 예를 도시한 표.
도 21a는 외부 디바이스 컨트롤러의 구성을 도시한 도면.
도 21b는 명령 또는 데이터의 포맷을 도시한 타이밍 차트.
도 22는 캘리브레이션 처리의 플로우 차트.
도 23은 캘리브레이션 처리의 타이밍 차트.
도 24는 외부 디바이스 컨트롤러에 의해 취급된 신호의 타이밍 차트.
본 발명의 예시적인 실시예가 이후 도면을 참조하여 설명될 것이다. 먼저, 외부 디바이스로부터 외부 디바이스 컨트롤러에 의해 수신된 데이터가 외부 디바이스 컨트롤러의 출력 클럭에 대해 한 사이클 이상 지연될 때 야기될 수 있는 문제를 해결하기 위한 예시적인 실시예가 이후 설명될 것이다.
도 19는 외부 디바이스(107)와 통신하는 정보 처리 장치를 포함하는 시스템의 블럭도이다. 외부 디바이스(107)와 통신하는 기능을 갖는 대규모 집적(LSI) 회로인 주문형 집적 회로(ASIC)(100)는 중앙 처리 유닛(CPU)(101), 다이너믹 랜덤 액세스 메모리(DRAM) 컨트롤러(104), 다이렉트 메모리 액세스(DMA) 컨트롤러(102), 외부 디바이스 컨트롤러(103), 및 클럭 발생기(105)를 포함한다. 또한, 발진 유닛으로서 기능하는 클럭 발생기(105)는 CPU(101), DMA 컨트롤러(102), 외부 디바이스 컨트롤러(103), 및 DRAM 컨트롤러(104)에 의해 사용되는 클럭(cpu_clock(113), dmac_clock(114), host_clock(115), dram_clock(116))을 발생하고 공급한다. CPU(101)는 외부 디바이스 컨트롤러(103), DMA 컨트롤러(102), 및 DRAM 컨트롤러(104)에 CPU 인터페이스(I/F)(110)를 통해 레지스터 액세스를 수행한다. DMA 컨트롤러(102)는 데이터를 DRAM 컨트롤러(104)에/로부터 CPU I/F(110)를 통해 데이터 전송을 수행한다. DRAM 컨트롤러(104)는 DRAM(106)에/으로부터 DRAM I/F(117)를 통해 데이터 전송을 수행한다. 외부 디바이스 컨트롤러(103)는 DMA 컨트롤러(102)에/으로부터 DMA I/F(111)를 통해 데이터 전송을 수행한다. 또한, 외부 디바이스 컨트롤러(103)는 외부 디바이스(107)에/로부터 외부 디바이스 I/F(112)를 통해 데이터 전송을 수행한다.
다음에, 외부 디바이스 컨트롤러에 대해 설명한다. 도 1은 본 발명의 예시적인 실시예에서의 외부 디바이스 컨트롤러(103)의 구성을 도시한다.
외부 디바이스 컨트롤러(103)는 클럭 발생기(105)로부터 호스트 클럭(115)(host_clk)을 수신한다. 호스트 클럭(115)은 외부 디바이스 컨트롤러(103)에서 각 블럭에 접속되고, 외부 디바이스 컨트롤러(103)의 각 블럭은 호스트 클럭(115)과 동기하여 동작한다.
CPU(101)로부터 카드에 송신될 데이터 또는 커맨드 및 레지스터 액세스를 접수하는 동안, CPU I/F 제어 유닛(201)은 카드로부터 수신되는 커맨드 또는 데이터를 CPU(101)에 송신한다. DMA I/F 제어 유닛(204)은 DMA 컨트롤러(102)로부터 외부 디바이스(107)에 송신될 데이터를 접수하고, 또한 외부 디바이스(107)로부터 수신된 데이터를 DMA 컨트롤러(102)에 송신한다.
외부 디바이스 컨트롤러(103)는 송신 커맨드 패러렐 시리얼 변환 유닛(125)(이후 "송신 커맨드 PS 변환 유닛"이라고 함) 및 수신 커맨드 시리얼 패러렐 변환 유닛(126)(이후 "수신 커맨드 SP 변환 유닛"이라고 함)을 통해 외부 디바이스(107)와 커맨드를 교환한다. 먼저, CPU I/F 제어 유닛(201)은 CPU I/F(110)를 통해 CPU(101)로부터 수신된 패러렐 포맷 송신 커맨드(223)(s_cmd_reg)를 송신 커맨드 PS 변환 유닛(125)에 송신한다. 송신 커맨드 PS 변환 유닛(125)은 수신된 패러렐 포맷 송신 커맨드(223)를 시리얼 포맷 송신 커맨드(224)(s_cmd_data)로 변환하고, 시리얼 포맷 송신 커맨드(224)를 외부 디바이스(107)에 송신한다.
외부 디바이스(107)는 수신된 시리얼 포맷 송신 커맨드(224)를 디코드하고, 송신 커맨드를 검출한다. 또한, 외부 디바이스(107)는 송신 커맨드의 검출 결과를 표시하는 검출 정보를 시리얼 포맷 수신된 커맨드(226)(r_cmd_data)로서 외부 디바이스 컨트롤러(103)에 송신한다.
수신 커맨드 SP 변환 유닛(126)은 외부 디바이스(107)로부터 출력된 시리얼 포맷 수신된 커맨드(226)를 수신하고, 시리얼 포맷 수신된 커맨드(226)를 패러렐 포맷 수신된 커맨드(225)(r_cmd_reg)로 변환하고, 패러렐 포맷 수신된 커맨드(225)를 CPU I/F 제어 유닛(201) 및 CPU I/F(110)를 통해 CPU(101)에 송신한다.
또한, 외부 디바이스 컨트롤러(103)는 송신 버퍼(207), 송신 데이터 패러렐 시리얼 변환 유닛(208), 스큐 제어 유닛(211), 수신 데이터 시리얼 패러렐 변환 유닛(이후, "수신 데이터 SP 변환 유닛"이라고 함)(210), 및 수신 버퍼(209)를 통해 외부 디바이스(107)와 데이터를 교환한다. 외부 디바이스 컨트롤러(103)는 출력 클럭(244)을 디어서트(de-assert)하여 외부 디바이스(107)로부터의 데이터의 공급을 중지하기 위해 출력 클럭 제어 유닛(213) 및 출력 클럭 게이팅 유닛(214)을 더 포함한다. 외부 디바이스 컨트롤러(103)는 또한 효율적인 사이클 조정을 위해 게이팅 모드 설정 레지스터(605) 및 게이팅 패턴 설정 레지스터(606)를 포함한다.
외부 디바이스 컨트롤러(103)는 스큐 조정(정정)을 위해 스큐 제어 유닛(211) 및 스큐 설정 레지스터(212)를 더 포함한다. 여기서, 용어 "스큐 조정(정정)"이라 함은 수신 데이터 SP 변환 유닛(210)으로 입력될 데이터 또는 외부 디바이스 컨트롤러(103)(즉, 스큐 제어 유닛(211)의 데이터 래치 타이밍을 (호스트 클럭(115)에 대해) 1 사이클 내의 지연을 이용하여 조정(정정)하는 것을 말한다.
외부 디바이스 컨트롤러(103)는 사이클 조정(정정)을 위해 사이클 설정 레지스터(601), 사이클 계산 유닛(602), 사이클 제어 유닛(603), 및 기대값 설정 레지스터(604)를 더 포함한다. 여기서, 용어 "사이클 조정(정정)"이라 함은, 수신 데이터 SP 변환 유닛(210)의 제어 신호인 수신 인에이블 신호(250)(rcv_en)를 (호스트 클럭(115)에 대해) 사이클마다 지연함으로써, 수신 데이터 SP 변환 유닛(210)의 데이터 래치 중단 타이밍 및 데이터 래치 재개 타이밍을 조정(정정)하는 것을 말한다.
스큐 설정 레지스터(212)는 CPU I/F 제어 유닛(201)으로부터 스큐 설정값(227)(skew_reg)을 수신하고, 스큐 설정값(227)을 유지한다. 스큐 제어 유닛(211)은 스큐 설정 레지스터(212)로부터 스큐 선택값(238)(skew_sel)을 수신하고, 설정값에 따라 외부 디바이스(107)로부터 수신된 시리얼 포맷 수신 데이터(236)(d2h_data)(이후 간단히 "수신 데이터(236)"라고 줄여 씀)를 지연시킨다.
사이클 설정 레지스터(601)는 CPU I/F 제어 유닛(201)으로부터 사이클 설정값(256)(cycle_reg)을 수신하고, 사이클 설정값(256)을 유지한다. 기대값 설정 레지스터(604)는 CPU/IF 제어 유닛(201)으로부터 기대값 설정값(253)(exp_reg)을 수신하고, 기대값 설정값(253)을 유지한다. 기대값 설정값(253)의 예가 도 20에 도시된다. 실제 사이클의 수와의 차가 0일 때 수신된 패턴은 참 값(외부 디바이스(107)로부터 출력된 패턴)과 일치하지만 외부 디바이스 컨트롤러(103)에 의해 수신된 패턴은 캘리브레이션이 수행될 때 얻어진 사이클 설정값과 (아래에 설명되는 사이클 지연량에 대응하는) 정확한 사이클 설정값 사이의 차에 따라 변화한다. 사이클 계산 유닛(602)은 사이클 설정 레지스터(601)로부터 사이클 설정값(255)(cycle_val)을 그리고 기대값 설정 레지스터(604)로부터 기대값(254)(exp_pattern)을 수신하고, 원하는 사이클 설정값을 계산한다. 구체적으로, 수신된 캘리브레이션 패턴은 기대값과 비교되어 일치되는지를 판정한다. 일치될 때 얻어진 기대값에 대응하는 사이클 설정값과 정확한 사이클 설정값 사이의 차가 결정된다. 그 후, 결정된 차는 정확한 사이클 설정값을 계산하기 위해 캘리브레이션이 수행될 때 얻어진 사이클 설정값에 가산된다. 사이클 제어 유닛(603)은 사이클 계산 유닛(602)으로부터 정확한 사이클 선택값(249)(cycle_sel)을 수신한다. 사이클 제어 유닛(603)은 출력 클럭 제어 유닛(213)으로부터 출력 클럭 인에이블 신호(243)(dev_clk_en)(클럭 제어 신호)를 더 수신한다.
데이터 수신 처리
다음에, 외부 디바이스 컨트롤러(103)가 데이터(외부 디바이스 데이터)를 외부 디바이스(107)로부터 수신하는 처리에 대해 설명한다.
외부 디바이스 컨트롤러(103)가 데이터 수신을 시작할 때, 먼저, 외부 디바이스 컨트롤러(103)는 외부 디바이스(107)에 데이터를 외부 디바이스(107)로 송신하라고 명령하는 커맨드를 송신하기 위해 상술한 커맨드 송신/수신 처리를 수행한다. 또한, 외부 디바이스(107)는 송신된 커맨드에 대한 응답을 수신 커맨드로서 외부 디바이스 컨트롤러(103)에 송신하고, 나아가 데이터를 송신한다.
데이터의 수신은 다음과 같이 수행된다. 먼저, 외부 디바이스(107)로부터 송신된 시리얼 포맷 수신 데이터(236)(d2h_data)는 스큐 제어 유닛(211)에 의해 수신된다.
스큐 제어 유닛(211)은 시리얼 포맷 수신 데이터(236)와 외부 디바이스 컨트롤러(103)의 클럭(115)(host_clk) 사이의 (그 상세가 이후에 설명되는) 스큐 조정을 수행한다. 스큐-조정된 수신 데이터(235)(d2h_data_1d)는 수신 데이터 SP 변환 유닛(210)에 입력된다.
수신 데이터 SP 변환 유닛(210)은 출력 클럭 제어 유닛(213)으로부터 출력된 출력 클럭 인에이블 신호(243)를, 이후 설명되는 사이클 제어 유닛(603)에 의해 지연함으로써 얻어진 (그 상세가 이후에 설명되는) 수신 인에이블 신호(250)를 수신할 수 있도록 구성된다. 수신 인에이블 신호(250)가 어서트(assert)되어 있으면, 수신 데이터 SP 변환 유닛(210)은 입력 스큐-조정된 수신 데이터(235)를 수신하고, 수신 데이터(235)를 패러렐 포맷 수신 데이터(234)(r_data_buf)로 변환한다.
수신 데이터 SP 변환 유닛(210)은 K 비트 패러렐 포맷 데이터로서 시리얼 포맷으로 수신된 데이터를 보내도록 구성된 K 단(도시 안 함)의 시프트 레지스터(직렬-입력/병렬-출력 플립 플롭)을 포함한다. 따라서, 수신 인에이블 신호(250)가 계속 어서트되어 있으면, 수신 데이터 SP 변환 유닛(210)은 패러렐 포맷 데이터를 K 사이클마다 한번 보낸다. 여기서, 수신 데이터 SP 변환 유닛(210)이 외부 디바이스(107)로부터의 데이터(외부 디바이스 데이터)를 내부에서 래치하는 타이밍은 (외부 디바이스(107) 측에서 볼 때) 제1 단(0-비트)의 플립 플롭의 래치 타이밍에 대응할 수 있다.
유지 유닛으로서 기능하는 수신 버퍼(209)는 내부에 현재 유지되어 있는 데이터보다 많은 데이터가 유지될 수 없다는 것을 수신 버퍼 풀 신호(241)(r_buff_full)를 이용하여 통지할 수 있도록 구성된다. 따라서, 수신 인에이블 신호(250)가 어서트되어 있고, 수신 버퍼(209)의 수신 버퍼 풀 신호(241)가 디어서트되어 있으면, 수신 데이터 SP 변환 유닛(210)은 패러렐 포맷 수신 데이터(234)를 수신 버퍼(209)에 송신한다. 수신 인에이블 신호(250)가 어서트되어 있지 않다면, 수신 데이터 SP 변환 유닛(210)은 스큐-조정된 수신 데이터(235)를 수신하는 것을 중지한다.
데이터의 수신의 시작 시에, 수신 데이터 SP 변환 유닛(210)은 수신 상태 신호(239)(rcv_status)를 어서트한다. 수신 데이터 SP 변환 유닛(210)은 최종 데이터가 외부 디바이스(107)로부터 수신될 때까지 수신 상태 신호(239)를 계속 어서트하고, 스큐-조정된 수신 데이터(235)의 종료 비트의 검출시에 수신 상태 신호(239)를 디어서트한다. 수신 데이터 SP 변환 유닛(210)이 패러렐 포맷 수신 데이터(234)를 수신 버퍼(209)에 송신하면, 수신 버퍼(209)는 수신 버퍼 엠프티 신호(233)(r_buff_emp)를 디어서트한다.
수신 버퍼(209)는 수신 데이터 SP 변환 유닛(210)으로부터 패러렐 포맷으로 변환된 수신 데이터(234)(r_data_buff)를 수신하고, 수신 데이터(234)를 유지한다. 여기서, 수신 버퍼(209)가 풀(full)로 되면, 수신 버퍼(209)는 출력 클럭 제어 유닛(213) 및 수신 데이터 SP 변환 유닛(210)에 수신 버퍼 풀 신호(241)를 어서트한다. 수신 버퍼(209)가 엠프티(empty)로 되면, 수신 버퍼(209)는 DMA I/F 제어 유닛(204)에 수신 버퍼 엠프티 신호(233)를 어서트한다.
수신 버퍼(209)의 수신 버퍼 엠프티 신호(233)의 디어서션에 응답하여, DMA I/F 제어 유닛(204)은 외부 디바이스(107)로부터 수신된 데이터가 수신 버퍼(209)에 남아 있다는 것을 검출한다. 다음에, 수신 버퍼(209)에 유지된 패러렐 포맷 수신 데이터(232)(r_data_dma)는 수신 버퍼(209)로부터 수신되고, DMA I/F(111)에 송신된다. 그러나, 수신 버퍼(209)가 엠프티로 되면, 데이터의 수신은 중지된다. 데이터의 수신이 중지되지 않으면, 수신 버퍼(209)의 버퍼 언더런이 일어날 수 있다. 따라서, 수신 버퍼(209)의 수신 버퍼 엠프티 신호(233)가 어서트되었을 때, DMA I/F 제어 유닛(204)은 패러렐 포맷 수신 데이터(232)를 수신하는 것을 중지하고, DMA I/F(111)로의 데이터의 송신을 중지한다.
수신 버퍼(209)의 수신 버퍼 엠프티 신호(233)가 디어서트되면, DMA I/F 제어 유닛(204)은 패러렐 포맷 수신 데이터(232)의 수신을 재개하고, DMA I/F(111)로의 수신 데이터의 송신을 재개한다.
한편, 수신 버퍼(209)가 풀 상태일 때 수신 버퍼(209)로의 기입이 새롭게 일어나는 경우, 수신 버퍼(209)의 버퍼 오버런이 일어나고 따라서 데이터의 수신이 중지된다. 수신 데이터 SP 변환 유닛(210)이 현재 데이터를 수신하고 수신 버퍼(209)가 풀일 때, 출력 클럭 제어 유닛(213)은 출력 클럭 인에이블 신호(243)를 디어서트한다.
수신 데이터 SP 변환 유닛(210)에서 진행 중인 데이터의 수신이 수신 상태 신호(239)의 어서션을 통해 검출된다. 최초 수신 데이터의 수신시에, 수신 데이터 SP 변환 유닛(210)은 수신 상태 신호(239)를 어서트하고, 최종 데이터가 수신될 때까지 계속 그 신호를 어서트하고, 최종 데이터의 수신시 그 신호를 디어서트한다. 그러므로, 출력 클럭 인에이블 신호(243)는 수신될 데이터를 대기하는 상태(검출될 시작 비트를 대기하는 상태)에서 디어서트되지 않는다.
출력 클럭(244)(dev_clk)의 디어서션에 응답하여, 외부 디바이스(107)는 수신 데이터(237)(d2h_data')의 송신을 중지한다. 데이터의 수신은 수신 버퍼(209)의 수신 버퍼 풀 신호(241)(r_buff_full)가 디어서트될 때까지 계속 중지된다. 수신 버퍼(209)의 수신 버퍼 풀 신호(241)(r_buff_full)가 디어서트되면, 수신 데이터 SP 변환 유닛(210)은 데이터의 수신을 재개한다. 다음에, 출력 클럭 게이팅 유닛(214)은 출력 클럭(244)의 게이팅을 해제하고, 외부 디바이스(107)는 수신 데이터(237)의 송신을 재개한다.
스큐
정정 구성
다음에, 스큐 정정을 위한 구성의 상세에 대해 설명한다.
도 2a는 스큐 제어 유닛(211)의 블럭도이다. 스큐 제어 유닛(211)은 클럭 발생기(105)(도 19)로부터 호스트 클럭(115)(host_clk)을 수신한다. 호스트 클럭(115)은 지연 소자(216)(제1 지연 유닛)를 이용하여 지연되고, 지연 소자의 수는 N1이고, 그 입력과 출력은 직렬로 접속된다. 각 지연 소자(216)의 출력은 지연 선택 유닛(217)에 입력되고, 출력에 이용되는 지연 소자(216)는 스큐 선택값(238)(skew_sel)의 값에 기초하여 선택된다.
선택된 지연 클럭 신호(246)(clk_with_skew)는 클럭으로서 플립 플롭(218)에 입력된다. 외부 디바이스(107)로부터 송신된 시리얼 포맷 수신 데이터(236)(d2h_data)는 플립 플롭(218)에 의해 수신되고, 플립 플롭(218)에 의해 지연 클럭 신호(246)(clk_with_skew)에 동기된다. 동기된 시리얼 포맷 수신 데이터는 스큐 제어 유닛(211)으로부터 스큐-조정된 시리얼 포맷 수신 데이터(235)(d2h_data_1d)(이후 "스큐-조정된 수신 데이터"(235)라고 함)로서 수신 데이터 SP 변환 유닛(210)에 출력된다.
스큐 제어 유닛(211) 내의 N1개의 지연 소자는 N1개의 세그멘트로 동등하게 나누어진 (호스트 클럭(115)의) 하나의 클럭의 N1분의 일과 동일한 기간의 지연 또는 약간 적은 지연을 발생시킬 수 있다.
도 2b는 스큐 설정값이 0, 1, 및 2로 설정될 때 스큐 제어 유닛(211)에 의해 취급된 신호의 타이밍 차트를 도시한다. 도 2b에서의 신호를 도 1 및 도 2a에서의 부호와 대응시키면, host_clk(115), dh2_data(236), clk_with_skew(246)(skew_sel(238)=0, 1, 2), 및 d2h_data_1d(235)(skew_sel(238)=0, 1, 2)가 위에서부터 순차적으로 플롯된다.
도 2b의 타이밍 차트에서, 스큐 선택값(238)(skew_sel)이 0 및 1일 때, d2h_data(236)는 clk_with_skew(246)의 상승 에지에서 가변적이다. 따라서, 플립 플롭(218)에서 래치된 데이터 d2h_data_1d(235)도 가변적으로 되고, 정상적인 데이터 래치가 이루어지지 않는다. 스큐 선택값(238)이 2일 때, d2h_data(236)은 clk_with_skew(246)의 상승 에지에서 안정된 출력 데이터를 나타낸다. 따라서, 플립 플롭(218)에서 래치된 데이터 d2h_data_1d(235)도 정상적이다. 스큐 선택값(238)의 조정은 이후에 설명되는 캘리브레이션 시퀀스를 이용하여 수행된다.
사이클 정정 구성
다음에, 사이클 지연을 정정하는 구성의 상세에 대해 설명한다.
도 3a는 사이클 제어 유닛(603)의 개략적인 구성을 도시한다. 사이클 제어 유닛(603)은, 개수가 N2이고 각 플립 플롭의 출력이 다음 플립 플롭의 입력과 직렬로 접속된 플립 플롭(701)(제2 지연 유닛)을 포함한다. 플립 플롭(701) 각각은 출력 클럭 인에이블 신호(243)를 1 클럭 만큼 지연시킨다. 사이클 제어 유닛(603)은 플립 플롭(701)이 입력된 출력 클럭 인에이블 신호(243)를 사이클 설정값(256)에 의해 표시된 사이클의 수만큼 지연하게 한다. 지연된 출력 클럭 인에이블 신호(243)는 수신 인에이블 신호(250)로서 수신 데이터 SP 변환 유닛(210)으로 입력된다.
도 3b는 사이클 제어 유닛(603)에 의해 취급된 다양한 신호의 파형을 도시한다. 도 1에서의 부호에 대응시킨 도 3b에서의 신호의 설명에서, host_clk(115), dev_clk_en(243), 및 rcv_en(250)은 위에서부터 순차적으로 플롯된다. 사이클 제어 유닛(603)은 사이클 선택값(249)(cycle_sel=0, 1, 2, 3)의 값에 따라 입력된 출력 클럭 인에이블 신호(243)를 지연시키고, 지연된 출력 클럭 인에이블 신호(243)를 수신 인에이블 신호(250)로서 출력한다. 사이클 선택값(249)으로 표시된 값이 2라고 가정하면, 사이클 제어 유닛(603)은 선택기(702)를 이용하여 2개의 플립 플롭(701)을 통과한 출력을 선택함으로써 출력 클럭 인에이블 신호(243)를 2 사이클만큼 지연시키고, 결과 신호를 수신 인에이블 신호(250)로서 출력한다. 도 3a 및 도 3b의 구성에서, N2개의 플립 플롭(701)이 존재하기 때문에, 출력 클럭 인에이블 신호(243)는 1 사이클의 정수배 만큼(N2개의 사이클까지) 지연될 수 있다.
본 예시적인 실시예에서, 수신 데이터 SP 변환 유닛(210)은 수신 인에이블 신호(250)의 디어서션에 기초하여 데이터 래치 중단 타이밍을 결정하고, 수신 인에이블 신호(250)가 다시 어서트되는 데이터 래치 재개 타이밍을 결정한다.
게이팅 모드 설정 레지스터(605)는 CPU I/F 제어 유닛(201)으로부터 게이팅 모드 레지스터 설정값(247)(gate_reg)을 수신하고, 게이팅 모드 레지스터 설정값(247)을 유지한다. 또한, 게이팅 모드 설정 레지스터(605)는 수신된 게이팅 모드 레지스터 설정값(247)을 게이팅 모드 설정값(251)(gate_mode)으로서 출력 클럭 제어 유닛(213)에 출력한다.
여기서, 본 예시적인 실시예에서의 외부 디바이스 컨트롤러(103)의 게이팅 모드는 캘리브레이션 모드와 정상 데이터 전송 모드인 2개의 모드를 포함한다. 게이팅 패턴 설정 레지스터(606)는 CPU I/F 제어 유닛(201)으로부터 게이팅 패턴 레지스터 설정값(248)(pattern_reg)을 수신하고, 게이팅 패턴 레지스터 설정값(248)을 유지한다. 또한, 게이팅 패턴 설정 레지스터(606)는 수신된 게이팅 패턴 레지스터 설정값(248)을 게이팅 패턴(252)(gate_pattern)으로서 출력 클럭 제어 유닛(213)으로 출력한다.
게이팅 패턴 레지스터 설정값(248)은 클럭 게이팅 패턴을 발생하는 정보(게이팅 정보)이고, 클럭 게이팅이 어떻게 수행되는지를 표시한다. (보다 구체적으로, 정보는 도 5에서 아래에 설명되는 L, N, S, 및 E를 표시하는 정보이다).
도 4b는 본 예시적인 실시예에서 선택 유닛으로서 기능하는 출력 클럭 제어 유닛(213)의 구성을 도시한다. 제1 클럭 제어 유닛(221)(제1 제어 유닛)은 수신 버퍼 풀 신호(241) 및 수신 상태 신호(239)를 수신하고, 특허 문헌 1에서 설명된 것과 유사한 클럭 제어를 수행한다. 제2 클럭 제어 유닛(222)(제2 제어 유닛)은 수신 상태 신호(239) 및 게이팅 패턴(252)에 기초하여 아래에 설명되는 클럭 제어(제1 클럭 제어 모드)를 수행한다. 또한, 제3 클럭 제어 유닛(223)(제3 제어 유닛)은 호스트 클럭(115)의 공급을 중지하지 않고 외부 디바이스 컨트롤러(103)의 호스트 클럭(115)을 출력하는 제어를 수행하기 위해 출력 클럭 인에이블 신호(243)를 발생하도록 제어를 수행한다(제2 클럭 제어 모드).
먼저, 수신 데이터 SP 변환 유닛(210)은 수신 데이터(236)에서 얼마나 많은 비트가 수신되어 수신 상태 신호(239)로 되는 등의 수신 상태를 표시하는 정보를 부가하고, 결과적인 수신 상태 신호(239)를 출력 클럭 제어 유닛(213)으로 송신한다. 제2 클럭 제어 유닛(222)은 수신 데이터 SP 변환 유닛(210)이 수신 상태 신호(239)에 부가된 수신 정보에 기초하여 얼마나 많은 비트를 수신했는지를 결정한다. 게이팅이 수행되는 것을 표시하는 조건에 게이팅 패턴(252)이 만족하지 않으면, 출력 클럭 인에이블 신호(243)가 발생된다.
클럭 제어 선택 유닛(220)은 선택기이고, 제1 클럭 제어 유닛(221), 제2 클럭 제어 유닛(222), 및 제3 클럭 제어 유닛(223) 중 하나가 게이팅 모드 설정 레지스터(605)로부터의 게이팅 모드 설정값(251)에 의해 표시된 설정값에 따라 선택적으로 기능하게 한다.
커맨드
/데이터 포맷
여기서, 외부 디바이스 컨트롤러(103)와 외부 디바이스(107) 사이에 커맨드 및 데이터를 송수신하는 데 사용되는 신호의 포맷에 대해 설명한다.
외부 디바이스 컨트롤러(103) 및 외부 디바이스(107)는 도 21b에 도시된 포맷으로 시리얼 포맷 커맨드 또는 시리얼 포맷 데이터를 상호 교환한다. 다음 설명에서, 패러렐 포맷 커맨드와 패러렐 포맷 데이터는 유사한 포맷을 갖는 것으로 가정한다.
먼저, 시리얼 포맷 송신 커맨드(224) 및 시리얼 포맷 수신된 커맨드(226)가 송수신될 때 취급되는 신호가 도 21b를 참조하여 설명된다. 송신 커맨드(224)는 1 비트 시작 비트, N 비트 송신 커맨드, M 비트 순회 용장 검사(CRC), 및 1 비트 종료 비트로 구성된다. 패러렐 포맷 송신 커맨드(223)의 수신 검출시에, 먼저, 송신 커맨드 PS 변환 유닛(125)은 1 비트 시작 비트를 송신한다. 후속하여, N 비트 패러렐 포맷 송신 커맨드(223)가 시리얼 포맷 송신 커맨드(224)로 변환되고, 시리얼 포맷 송신 커맨드(224)가 송신된다. 송신 커맨드 PS 변환 유닛(125)은 시리얼 포맷 송신 커맨드(224)의 송신에 부가하여 CRC를 계산한다. 시리얼 포맷 송신 커맨드(224)가 송신된 후에, 계산된 M 비트 CRC가 송신된다. 마지막으로, 1 비트 종료 비트가 송신되고, 커맨드 송신이 완료된다.
시리얼 포맷 수신된 커맨드(226)는 또한 도 21b에 도시된 바와 같은 포맷을 가진다. 그러나, 수신된 커맨드와 송신 커맨드는 서로 일치할 필요가 없기 때문에, 수신된 커맨드와 송신 커맨드는 다른 커맨드 길이 또는 CRC 길이를 가질 수 있다.
수신 커맨드 SP 변환 유닛(126)은 1 비트 시작 비트를 검출하고, 커맨드를 수신하는 것을 시작한다. 후속하여, N 비트 시리얼 포맷 수신된 커맨드가 수신되고 패러렐 포맷 수신된 커맨드로 변환된다. 수신 커맨드 SP 변환 유닛(126)은 시리얼 포맷 수신된 커맨드의 수신에 부가하여 CRC를 계산한다. 시리얼 포맷 수신된 커맨드가 수신된 후에, 계산된 CRC는 전달될 M 비트 CRC(순회 용장 검사)와 비교되고, CRC 에러가 검출된다. 마지막으로, 1 비트 종료 비트가 수신되고, 커맨드 수신이 완료된다.
송신 커맨드 PS 변환 유닛(125)과 같이, 송신 버퍼(207)로부터 패러렐 포맷 송신 데이터(230)(s_data_buf)의 수신시에, 송신 데이터 PS 변환 유닛(208)은 패러렐 포맷 송신 데이터(230)를 시리얼 포맷 송신 데이터(231)(h2d_data)로 변환하고, 시리얼 포맷 송신 데이터(231)를 외부 디바이스(107)로 송신한다. 송신 데이터의 길이 또는 CRC의 길이는 송신 커맨드의 것들과 다를 수 있다.
수신 데이터는 도 21b에 도시된 것과 같은 포맷을 가진다. 그러나, 수신 데이터의 길이와 CRC의 길이는 송신 커맨드의 것들과 다를 수 있다.
1 비트 시작 비트의 검출시에, 수신 데이터 SP 변환 유닛(210)은 데이터의 수신을 시작한다. 다음에, 수신 데이터 SP 변환 유닛(210)은 수신 커맨드 SP 변환 유닛(126)의 것과 유사한 방식으로 처리를 수행하여 시리얼 포맷 스큐-조정된 수신 데이터(235)를 패러렐 포맷 수신 데이터(234)로 변환하고, 패러렐 포맷 수신 데이터(234)를 수신 버퍼(209)에 송신한다. 송신 데이터 PS 변환 유닛(208)과 수신 데이터 SP 변환 유닛(210)의 CRC 계산 처리 및 비교 처리는 송신 커맨드 PS 변환 유닛(125)과 수신 커맨드 SP 변환 유닛(126)의 처리와 마찬가지이므로, 그 설명은 생략한다.
캘리브레이션
다음에, 외부 디바이스 컨트롤러(103)가 데이터를 내부에서 정확하게 래치할 수 있도록 다양한 파라미터(스큐 설정값, 사이클 설정값)를 조정하기 위한 캘리브레이션 처리에 대해 설명한다.
먼저, 도 21a에 도시된 구성을 갖는 외부 디바이스 컨트롤러(103)에서의 캘리브레이션 흐름이 도 22를 이용하여 설명된다.
먼저, 단계 S101에서, CPU(101)로부터의 캘리브레이션을 시작하는 명령에 응답하여, 외부 디바이스 컨트롤러(103)는 외부 디바이스(107)가 캘리브레이션 패턴을 출력하게 하는 송신 커맨드를 외부 디바이스(107)에 송신한다. 다음에, 외부 디바이스(107)는 캘리브레이션을 위한 송신 커맨드에 응답하여 외부 디바이스 컨트롤러(103)에 수신 커맨드를 송신한다. 또한, 외부 디바이스(107)는 시리얼 포맷 수신 데이터(237) 대신에 미리 정해진 캘리브레이션 패턴을 외부 디바이스 컨트롤러(103)에 송신한다. 외부 디바이스 컨트롤러(103)는 상술한 데이터 수신 흐름에 따라 캘리브레이션 패턴을 수신한다. 수신된 캘리브레이션 패턴은 DMA 컨트롤러(102) 및 DRAM 컨트롤러(104)를 통해 DRAM(106) 내에 기입된다.
모든 캘리브레이션 패턴이 DRAM(106) 내에 기입된 후에, 단계 S102에서, CPU(101)는 실제로 수신된 캘리브레이션 패턴을 DRAM(106) 등 내의 기대값으로서 미리 저장된 캘리브레이션 패턴과 비교한다. CPU(101)가 양측 캘리브레이션 패턴이 일치한다고 판정하면, 스큐 설정은 정확한 것으로 고려될 수 있다. 따라서, 캘리브레이션 시퀀스가 완료된다. 양 캘리브레이션 패턴이 일치하지 않으면, 스큐 설정은 잘못된 것으로 고려될 수 있다. 그러므로, 단계 S103에서, CPU(101)는 외부 디바이스 컨트롤러(103) 내의 다른 스큐 설정값(227)을 설정하고, 캘리브레이션 시퀀스(S101, S102)를 다시 수행한다. 상기 처리는 캘리브레이션이 성공할 때까지 반복적으로 수행된다.
여기서, 캘리브레이션 패턴이 외부 디바이스(107) 측에 미리 저장되고 외부 디바이스(107)는 캘리브레이션을 시작하기 위한 커맨드의 수신시에 저장된 캘리브레이션 패턴을 송신한다고 가정한다.
여기서, 스큐 조정이 완료될 때 단계 S101에서 취급된 신호의 파형에 대해 설명한다. 도 23은 수신 데이터(236)가 1 사이클 이상의 지연을 가질 때 캘리브레이션 시퀀스에서의 파형을 도시한다. 여기서, 수신 데이터(236)가 1 사이클 이상의 지연을 가지는 경우는 1/2 사이클 이상의 배선 지연이 외부 디바이스 컨트롤러(103)와 외부 디바이스(107) 사이에 발생한 경우일 수 있다. 도 21a 및 도 2a에서의 부호에 대응시킨 도 23의 신호의 설명에서, dev_clk(244), dev_clk_en(243), d2h_data(236), clk_with_skew(246), d2h_data_1d(235), host_clk(115), r_data_buff(234), dev_clk'(245), 및 d2h_data'(237)가 위에서부터 순차적으로 플롯된다. 래치 클럭과 래치된 데이터 간의 타이밍의 차이가 있는데, 클럭의 에지를 기준으로 하여 실제 회로에서 래치하는 경우에서 데이터가 플립 플롭에서 래치될 때까지의 지연을 표시한다. 이 지연은 본 발명에 의해 다루어지는 문제와 직접 관련되지 않은 부분에서 발생될 수 있고, 지연의 양은 적다. 그러므로, 수신 데이터가 1 사이클 이상 지연되면, 지연은 무시(배제)될 수 있다. 또한, 도 23에서, 캘리브레이션의 후반부 동안의 파형의 부분은 도시되지 않는다.
도 23의 예에서, 외부 디바이스(107)로 입력되는 클럭(245)(dev_clk')은 외부 디바이스 컨트롤러(103)로부터 출력된 출력 클럭(244)(dev_clk)에 대해 1/2 사이클만큼 지연된다. 또한, 외부 디바이스 컨트롤러에 의해 수신된 수신 데이터(236)(d2h_data)는 외부 디바이스(107)로부터 송신된 수신 데이터(237)(d2h_data')에 대해 1/2 사이클만큼 지연된다.
상기 지연들은 외부 디바이스(107)와 외부 디바이스 컨트롤러(103) 사이의 기판 상의 왕복 지연, 외부 디바이스(107)에서의 출력 지연, 외부 디바이스 컨트롤러(103)에서의 지연 등에 의해 발생되는 것으로 고려된다. 결과적으로, 도 23의 예에서, 외부 디바이스 컨트롤러(103)의 출력 클럭(244)에 응답하여 외부 디바이스(107)로부터 출력된 데이터로서 외부 디바이스 컨트롤러(103)에서 래치된 수신 데이터(236)는 1 사이클의 지연을 포함한다.
캘리브레이션 패턴의 크기는 일반적으로 수신 버퍼(209)의 크기보다 훨씬 작다. 따라서, 도 21a에 도시된 구성에서의 외부 디바이스 컨트롤러(103)는 캘리브레이션 동안 출력 클럭의 공급을 중지하지 않는다. (캘리브레이션 패턴의 크기가 수신 버퍼(209)의 크기보다 크더라도, 출력 클럭의 중지 여부는 DMA 컨트롤러(102)의 전송율 등에 의존할 수 있다. 그러므로, 출력 클럭(244)의 공급이 캘리브레이션 동안에 중지되는 상황은 거의 발생하지 않는다.)
도 23을 참조하면, r_data_buff(0)(234)의 내용은 입력 시리얼 포맷 수신 데이터 d2h_data(236)와 일치하기 때문에, 캘리브레이션 처리가 완료된다. 그러나, 도 24에 도시한 바와 같이, 데이터가 실제로 수신될 때, 데이터 래치의 실패 등이 발생할 수 있다.
도 24의 타이밍 차트는 도 23에서와 같이 수신 데이터(236)가 1 사이클의 지연을 가지는 경우에서 외부 디바이스 컨트롤러(103)가 실제로 외부 디바이스(107)로부터 데이터를 수신할 때 신호의 파형을 도시한다. 도 24에 도시된 신호와 도 21a 및 도 2a에서의 신호들 간의 대응은 도 23의 것과 마찬가지이므로, 그 설명은 생략한다.
도 24에서, 시리얼 포맷 수신 데이터(236)에서의 "D0"가 수신되는 시점에서, 수신 버퍼(209)의 수신 버퍼 풀 신호(241)(도 24에 도시되지 않음)가 어서트되는 상황이 발생한다. 수신 버퍼 풀 신호(241)의 어서션에 따라, 출력 클럭 제어 유닛(213)은 출력 클럭 인에이블 신호(243)(dev_clk_en)를 디어서트한다. 출력 클럭 인에이블 신호(243)의 디어서션에 응답하여, 출력 클럭 게이팅 유닛(214)은 출력 클럭(244)을 게이트한다. 출력 클럭(244)이 출력 클럭 게이팅 유닛(214)에 의해 게이트되지만, 시리얼 포맷 수신 데이터 "D1" 및 "D2"는 외부 디바이스(107)로부터 송신된다.
초기에는, 수신 버퍼(209)에 입력된 데이터(이 데이터에 기초하여 수신 버퍼 풀 신호(241)가 발행됨)는, 그 데이터가 외부 디바이스(107)로부터 외부 디바이스 컨트롤러(103)에 입력될 때 1/2 사이클만큼 지연된다. 출력 클럭(244)이 게이트될 때까지의 지연에 부가하여 수신 버퍼 풀 신호(241)가 어서트된 후에, 1/2 사이클의 지연은 외부 디바이스(107)가 출력 클럭(244)이 게이트되었다는 것을 인식할 수 있을 때까지 일어난다. 결과적으로, 데이터 송신이 중지되어야 한다는 외부 디바이스 컨트롤러(103)에 의한 요구를 외부 디바이스(107)가 인식할 때까지의 상기 지연들의 합과 등가인 지연이 있고, 따라서, "D1" 및 "D2"가 송신된다.
출력 클럭 인에이블 신호(243)의 디어서션에 응답하여, 수신 데이터 SP 변환 유닛(210)은 시리얼 포맷 수신 데이터(236)를 수신하는 것을 즉각 중지한다. 따라서, 수신 데이터 SP 변환 유닛(210)은 더 이상 시리얼 포맷 수신 데이터 "D1"을 수신하지 않을 수 있다. 도 24에 도시된 바와 같이, 수신 데이터 SP 변환 유닛(210)에 의해 수신되고 수신 버퍼(209)로 송신된 패러렐 포맷 수신 데이터(234)는 "D1"을 포함하지 않는다.
또한, 수신 버퍼(209)의 수신 버퍼 풀 신호(241)가 디어서트된 후에, 출력 클럭 인에이블 신호(243)는 어서트되고 출력 클럭(244)의 게이팅은 해제된다. 게이팅은 하강 에지에 기초하여 수행되기 때문에, 출력 클럭(244)은 게이팅의 해제 후 1/2 사이클 지나고 상승한다. 그러나, 외부 디바이스(107)와 외부 디바이스 컨트롤러(103) 사이의 지연으로 인해 출력 클럭(244)의 게이팅이 해제되었어도, 시리얼 포맷 수신 데이터 "D2"는 외부 디바이스(107)로부터 계속 송신된다.
한편, 출력 클럭 인에이블 신호(243)의 어서션에 응답하여, 수신 데이터 SP 변환 유닛(210)은 시리얼 포맷 수신 데이터의 수신을 즉각 재개한다. 이것은 수신 데이터 SP 변환 유닛(210)이 시리얼 포맷 수신 데이터 "D2"를 2번 수신하게 한다. 패러렐 포맷 수신 데이터(234)로부터 D2가 2번 수신되었다는 것을 알 수 있다.
이 방식으로, 외부 디바이스 컨트롤러(103)와 외부 디바이스(107) 사이에 1사이클 이상의 왕복 지연이 있으면, 도 21a에 도시된 구성은 캘리브레이션의 완료를 허용할 수 있지만(도 23), 실제 데이터 수신의 실패를 야기할 수 있다(도 24).
상기로부터 도 21a에 도시된 외부 디바이스 컨트롤러(103)는 캘리브레이션 시퀀스에서 수신 데이터(236)에서 일어날 수 있는 1 사이클 이상의 지연의 유무를 검출하지 못할 수도 있다는 것을 알 수 있다.
도 24의 시간 스케일은 설명의 편의상 수신 버퍼 풀 신호(241)가 어서트될 때부터 수신 버퍼 풀 신호(241)가 디어서트될 때까지의 기간이 극히 짧고 수신 버퍼(209)는 설명의 용이를 위해 극히 작다는 가정에 기초한 것이다.
다음에, 본 예시적인 실시예에서의 캘리브레이션 흐름이 도 4a를 참조하여 설명된다. 본 예시적인 실시예의 캘리브레이션 흐름에서, 먼저, 제3 클럭 제어 유닛(223)이 기능하게 하면서 스큐 조정이 수행되고, 다음에 제2 클럭 제어 유닛(222)이 기능하게 하면서 사이클 조정이 수행된다. 캘리브레이션 패턴의 크기가 수신 버퍼(209)의 크기보다 충분히 작고 클럭 게이팅이 캘리브레이션 패턴의 수신 중에 일어나지 않는다는 것이 알려진다면, 제3 클럭 제어 유닛(223) 대신에 제1 클럭 제어 유닛(221)이 사용될 수 있다.
여기서, 용어 "스큐 조정"은 호스트 클럭(115)과 수신 데이터(236) 사이의 위상의 시프트(위상 시프트)가 도 2a에 도시된 구성을 이용하여 정정되는 조정을 의미한다. 용어 "사이클 조정"은 호스트 클럭(115)과 수신 데이터(236) 사이의 주기간(period-to-period) 시프트가 도 3a에 도시된 구성을 이용하여 정정되는 조정을 의미한다. 다음의 설명에서, (데이터 래치 타이밍에서의 시프트 또는 데이터 래치 재개 타이밍에서의 시프트에 대응하는) 사이클 시프트를 지연 사이클의 수(사이클 지연량)라고 한다.
먼저, 스큐 조정 흐름에 대해 설명한다. 단계 S1201에서, CPU(101)는 외부 디바이스 컨트롤러(103)의 클럭 게이팅 모드를 클럭의 공급이 중지되는 캘리브레이션 모드(제3 클럭 제어 유닛(223)이 사용되는 모드)로 설정한다. 단계 S1202에서, CPU(101)는 외부 디바이스 컨트롤러(103)에 캘리브레이션 패턴을 획득하라고 명령한다. 외부 디바이스 컨트롤러(103)에 의해 수행되는 캘리브레이션 패턴 획득 처리는 도 21a에 도시된 구성에 의해 수행된 것과 유사하다. 캘리브레이션 패턴의 획득이 완료될 때, 단계 S1203에서, CPU(101)는 실제로 수신된 캘리브레이션 패턴을 수신될 캘리브레이션으로서 리드 온리 메모리(ROM) 또는 랜덤 액세스 메모리(RAM)로부터 판독된 캘리브레이션 패턴과 비교한다. 비교 결과가 일치하면, 스큐 설정은 정확한 것으로 고려될 수 있다. 따라서, 스큐 조정 흐름은 종료한다.
비교 결과가 일치하지 않으면, 스큐 설정은 잘못된 것으로 고려될 수 있다. 이 경우에, 단계 S1204에서, CPU(101)는 스큐 설정 레지스터(212)의 값을 변화하여 스큐 설정을 변화한 후, 단계 S1202로 진행한다. 스큐 설정이 변화되고, 단계 S1202 및 S1203의 처리가, 단계 S1203에서 패턴이 일치할 때까지 반복적으로 수행된다.
후속하여, 사이클 조정 흐름에 대해 설명한다. 단계 S1205에서, CPU(101)는 외부 디바이스 컨트롤러(103)의 클럭 게이팅 모드를 클럭의 공급이 수신 상태 신호(239) 및 게이팅 패턴(252)에 의해 표시된 값에 따라 중지되는 갤리브레이션 모드(제2 클럭 제어 유닛(222)이 기능하게 하는 모드)로 설정한다. 또한, CPU(101)는 외부 디바이스 컨트롤러(103)에서 게이팅 패턴 레지스터 설정값(248)을 설정한다. 단계 S1206에서, CPU(101)는 외부 디바이스 컨트롤러(103)에 캘리브레이션 패턴을 획득하라고 명령한다. 외부 디바이스 컨트롤러(103)에 의해 수행되는 캘리브레이션 패턴 획득 처리의 개요는 도 21a에 도시된 구성에 의해 수행된 것과 유사하다.
그러나, 본 예시적인 실시예의 출력 클럭 제어 유닛(213)은 게이팅 패턴(252)에 따라 출력 클럭 인에이블 신호(243)를 발행한다. 다음에, 출력 클럭 게이팅 유닛(214)은 캘리브레이션 패턴의 수신 중에 출력 클럭 인에이블 신호(243)에 따라 출력 클럭(244)을 게이트한다. 사이클 계산 유닛(602)이 단계 S1206에서 캘리브레이션 패턴의 획득을 완료할 때, 처리는 단계 S1207로 진행한다. 다음에, 단계 S1207에서, 사이클 계산 유닛(602)은 실제로 수신된 캘리브레이션 패턴을 수신될 캘리브레이션 패턴으로서 DRAM(106) 등으로부터 CPU(101)에 의해 판독되고 기대값 설정 레지스터(604)에 저장된 기대값과 비교한다. 실제로 수신된 캘리브레이션 패턴은 게이팅 패턴, 캘리브레이션 패턴(기대값), 및 현재 사이클 설정값과 실제 지연 사이클 간의 차에 따라 다를 수 있다. 그 상세가 아래에 설명된다.
도 20은 "01010101"이 캘리브레이션 패턴으로서 사용된 예를 도시한다. 상세가 아래에 설명되지만, 현재 사이클 설정값과 실제 지연 사이클의 수가 일치하면, 외부 디바이스 컨트롤러(103)는 "01010101"과 같은 캘리브레이션 패턴을 수신할 수 있다. 그러나, 실제 지연 사이클의 수가 현재 캘리브레이션 패턴보다 1 사이클 크다면, "01011101"과 같은 캘리브레이션 패턴이 수신된다. 이 경우에, 사이클 계산 유닛(602)은 상술한 처리를 통해 수신된 캘리브레이션 패턴을 수신될 캘리브레이션 패턴(기대값)과 비교하고, 지연의 유무를 검출한다. 지연이 있다면, 실제 지연 사이클의 수가 지연이 발생할 때 얻어진 캘리브레이션 패턴을 이용하여 검출된다(도 20 참조). S1208에서, 사이클 계산 유닛(602)(또는 CPU(101))은 실제 검출된 지연 사이클의 수를 사이클 설정값으로 설정하고, 사이클 조정 흐름을 완료한다. 캘리브레이션 시퀀스가 종료할 때, 출력 클럭 제어 유닛(213)은 모드를 제3 클럭 제어 모드로 스위칭하여 데이터의 송수신을 준비한다.
상술한 바와 같이, 캘리브레이션 패턴의 크기가 수신 버퍼(209)의 크기보다 작게 될 때, 수신 버퍼(209)는 캘리브레이션 시퀀스 동안 풀로 되지 않는다. 그러나, 본 예시적인 실시예의 외부 디바이스 컨트롤러(103)는 수신 버퍼 풀 신호(241)의 어서션에 관계없이 게이팅 패턴에 따라 출력 클럭(244)을 게이트한다. 사이클 설정 또는 스큐 설정이 잘못되면, 잘못된 캘리브레이션 패턴이 (캘리브레이션이 성공하지 않았음을 인식할 수 있도록) 그대로 획득된다. 모드를 제1 클럭 제어 유닛(221)이 사용되는 모드로 스위칭하기 위해, 도 4a에 도시된 흐름을 이용하여 캘리브레이션이 완료된 후, CPU(101)는 게이팅 모드 설정 레지스터(605)가 클럭 제어 선택 유닛(220)에 "0"을 저장하게 하도록 설정을 수행하고, 데이터의 송수신을 준비한다.
상기 처리로, 1 클럭 사이클 이상의 지연이 수신 데이터(236)에서 발생하더라도, 본 예시적인 실시예에서의 외부 디바이스 컨트롤러(103)는 지연의 유무를 검출할 수 있다. 따라서, 데이터 래치의 실패없이 데이터를 송수신하기 위한 다양한 파라미터(스큐 설정, 사이클 설정)가 설정될 수 있다.
또한, 도 4a에 도시한 바와 같이, 클럭 게이팅을 수행하지 않고 스큐 조정을 이용하여 지연이 조정된 후 게이팅 패턴에 기초하여 클럭 게이팅이 수행되면서 사이클 간의 지연이 조정되어, 효율적인 캘리브레이션이 가능하게 된다. 이 방식으로, 스큐 조정과 사이클 조정이 분리되지 않으면, 기대값과 수신 데이터(236)가 일치할 때까지 캘리브레이션 패턴을 수신하여 라운드 로빈 방식으로(N1×N2 회까지) 비교하고, 상당량의 시간이 캘리브레이션 처리에 필요할 수 있다.
또한, 캘리브레이션 패턴의 크기가 수신 버퍼(209)의 크기보다 충분히 작다면, 스큐 조정이 도 4a의 단계 S1201 내지 S1204에서 제3 클럭 제어 유닛(223) 대신에 제1 클럭 제어 유닛(221)을 사용하여 수행될 수 있다. 왜냐하면 제1 클럭 제어 유닛(221)은 캘리브레이션 패턴의 수신 중에 사용되어도 클럭 게이팅이 일어나지 않기 때문이다. 이 경우에도, 단계 S1205 내지 S1208의 처리로, 캘리브레이션은 도 21a에 도시된 구성의 것보다 성공하기가 더 쉽다. 즉, 캘리브레이션이 수행되는 횟수가 감소될 수 있다.
캘리브레이션
패턴 및
게이팅
패턴
여기서, 캘리브레이션 패턴과 게이팅 패턴 사이의 상관에 대해 설명한다. 캘리브레이션 처리가 완료될 때, 사이클 설정값(256)에 의해 표시된 사이클의 수는 실제로 지연된 사이클의 수와 일치하는 것으로 가정한다. 도 24의 예에서, 사이클 지연은 1 사이클이기 때문에, 설정될 정확한 사이클 설정값(256)에 의해 표시된 값은 "1"이다. 도 24에 도시한 파형은 사이클 설정값(256)이 사이클 조정되지 않을 때의 것들에 대응한다.
출력 클럭(244)의 게이팅 패턴 및 캘리브레이션 패턴의 적절한 설정은 그에 따라 캘리브레이션 처리의 정밀도를 높일 수 있다. 예를 들어, 도 24의 예에서, 수신 데이터 "D1"은 수신 불가능하고, 수신 데이터 "D2"가 대신 2번 수신된다. 이 방식으로, 데이터의 교체가 일어난다. 따라서, 수신 데이터(236)와의 비교가 바람직하지 않은 캘리브레이션 패턴(아래에 설명되는 관점을 고려하지 않은 패턴)을 사용하여 수행되면, 캘리브레이션 패턴의 수신 및 비교가 수행되는 횟수가 증가될 우려가 있거나, 또는 처리의 정밀도가 감소될 우려가 증가할 수 있다. 예를 들어, 스큐 조정 및 사이클 조정에서, 기대값과 수신 데이터(236)가 일치할 때까지 라운드 로빈 방식으로(N1+N2 회까지) 비교를 수행할 필요가 있다.
다음에서, 출력 클럭(244)의 게이팅 패턴과 캘리브레이션 패턴 사이의 상관이 4가지 관점에서 설명된다. 이들 관점을 고려하는데 캘리브레이션 패턴을 이용하면, 캘리브레이션 처리에서의 비교를 위한 횟수가 (N1+1 회까지) 감소될 수 있다.
게이팅 패턴은 캘리브레이션 패턴 및 다음의 4가지 관점에 따라 설정될 수 있다. 캘리브레이션을 위해 게이팅 패턴을 이용하면, 수신 데이터 SP 변환 유닛(210)의 데이터 래치 제어를 중지하기 위한 제어 신호(출력 클럭 인에이블 신호(243))가 사이클 지연량만큼 지연되지 않으면, 외부 디바이스 컨트롤러(103)에 의해 실제로 수신 데이터(수신 데이터(234))의 중복 수신 또는 래치의 실패를 야기할 수 있다. 도 20은, 원하는 게이팅 패턴(예를 들어, "01010101")이 설정되는 상황에서, 수신 데이터 SP 변환 유닛(210)에 의해 수신된 패턴(수신 데이터(234))과 사이클 지연량 사이의 상관을 도시한다.
(1) 실제 지연량과 사이클 설정값(이후, "지연 지표 M"이라고 함) 간의 차와 수신된 캘리브레이션 패턴 사이의 상관
지연 지표 M와 수신된 캘리브레이션 패턴 사이의 상관에 대해 설명하는데, 여기서, 지연 지표 M=(실제 지연량)-(사이클 설정값)이다. 여기서, 용어 "실제 지연량"은 사이클 설정값이 "0"일 때 (스큐 조정이 수행되고 사이클 조정이 수행되지 않는 경우에 대응) 수신 데이터(236)가 출력 클럭(244)에 대해 지연된 사이클의 수이다.
도 6 및 도 7은 수신 인에이블 신호(250)의 변화 타이밍이 어떤 지연 없이 타이밍에 고정될 때와 실제 지연량이 변화될 때 패러렐 포맷 수신 데이터(234)의 파형을 도시한다. 도 6 및 도 7의 신호를 도 1의 부호와 대응시키면, 위에서부터 순차적으로, dev_clk(244), dev_clk_en(243), dh2_data(236), host_clk(115), rcv_en(250), 및 r_data_buff(234)가 플롯된다. 또한, 도 6 및 도 7은 지연 지표 M이 0, 1, 2, 및 3일 때인 4개의 세트를 도시한다.
도 6 및 도 7에서, 출력 클럭 인에이블 신호(243)의 게이팅은 D3이 수신되는 시점에 수행되고, 출력 클럭(244)은 디어서트된다. 도 6 및 도 7에 도시한 바와 같이, (dh2_data(236)에 대응하는) 수신된 캘리브레이션 패턴은 지연 지표 M에 따라 다르다. 지연 지표가 M>1을 만족할 때, 게이팅이 시작되는 시점에 수신 데이터(도 6 및 도 7의 예에서, D3)에 대해 1 사이클 후의 데이터에서 M 사이클 후의 데이터까지의 범위는 M+1 사이클 후의 데이터로 교체된다. M=0을 유지할 때, 실제 지연량은 사이클 설정값과 일치하고, 정확한 패턴이 수신되었다.
(2) 게이팅의 양(N)과 수신된 패턴 사이의 상관
N과 (스큐 조정이 수행되었고 사이클 조정이 부정확한 경우에) 수신된 패턴 사이의 상관이 설명되는데, 여기서, N은 출력 클럭(244)의 게이팅이 계속되는 사이클의 수를 나타내는 게이팅의 양이다(N의 정의에 대해서는, 도 5 참조).
도 8, 9, 및 10은 각각 N이 3, 2, 및 1일 때 캘리브레이션 동안의 파형을 도시한다. 도 8, 9, 및 10에서의 r_data_buff(234)의 파형을 참조하면, M 사이클의 데이터는 N 값에 관계없이 교체되었다는 것을 알 수 있다. 그러나, 그 데이터를 어떤 데이터로 교체하는지는 N 값에 의존한다. 예를 들어, N=3이면, D1 내지 D3은 D4로 교체되고, N=2이면, D1은 D3으로 교체되고 D2 및 D3은 D4로 교체된다. 또한, N=1이면, D1, D2, 및 D3은 각각 D2, D3, 및 D4로 교체된다.
(3) 게이팅 동작 간의 사이클(L)과 수신된 패턴 사이의 상관
게이팅이 복수 회 수행될 때, L과 (스큐 조정이 수행되었고 사이클 조정이 부정확한 경우에) 수신된 캘리브레이션 패턴 사이의 상관이 설명되는데, 여기서, L은 하나의 게이팅 시간에서 다음 게이팅 시간까지의 사이클이다(L의 정의에 대해서는, 도 5 참조). 도 11, 12, 13, 및 14는 각각 L이 1, 2, 3 및 4일 때 캘리브레이션 동안의 파형을 도시한다. L이 M보다 크거나 같으면, 복수의 게이팅 동작이 독립적인 게이팅 동작으로 간주될 수 있다. 즉, M 사이클의 데이터의 교환은 게이팅이 수행된 횟수와 동일한 횟수로 일어난다. 그렇지 않은 경우, 복수의 게이팅 동작이 상호적으로 상관을 갖고, {M*(게이팅이 수행되는 횟수)-(M-L)}개의 데이터가 연속적으로 교체된다.
(4) 게이팅 시작 위치(S), 게이팅 종료 위치(E), 및 수신된 패턴 사이의 상관
S, E, 및 (스큐 조정이 수행되었고 사이클 조정이 부정확한 경우에) 수신된 캘리브레이션 패턴 사이의 상관이 설명되는데, 여기서, S는 게이팅 시작 위치이고 E는 게이팅 종료 위치이다(S 및 E의 정의에 대해서는, 도 5 참조).
도 15, 16, 및 17은 S와 시작 비트 간의 위치 관계 및 E와 종료 비트 간의 위치 관계가 변화될 때 캘리브레이션 동안의 파형을 도시한다. 도 15는 게이팅 시작 위치 S가 시작 비트의 검출 이후에 놓일 때와 게이팅 종료 위치 E가 종료 비트의 검출 전에 놓일 때의 파형을 도시한다. 도 16은 게이팅 시작 위치 S가 시작 비트의 검출 전에 놓일 때와 게이팅 종료 위치 E가 종료 비트의 검출 이후에 놓일 때의 파형을 도시한다. 도 17은 게이팅 시작 위치 S가 시작 비트의 검출 이후에 놓일 때와 게이팅 종료 위치 E가 종료 비트의 검출 이후에 놓일 때의 파형을 도시한다.
도 16에서와 같이, 클럭 게이팅이 호스트 클럭(115)의 한 사이클과 동기하도록 주기적으로 수행될 때, L>M이 만족되지 않고 게이팅 시작 위치 S가 시작 비트 전의 위치에 놓이고 게이팅 종료 위치 E가 종료 비트 이후의 위치에 놓이면, 패턴은 캘리브레이션을 위해 적합하지 않다. 왜냐하면 사이클 조정이 정확하지 않더라도 데이터가 정확하게 수신될 수 있기 때문이다.
게이팅 시작 위치 S가 시작 비트 이후에 놓이거나 또는 게이팅 종료 위치 E가 종료 비트 이후에 놓이면, 데이터는 사이클 조정이 정확하지 않은 상황에서 정확하게 수신되지 않는다. 따라서, 이 게이팅 패턴은 캘리브레이션을 위해 적합하다는 것을 알 수 있다. 그러므로, 캘리브레이션 패턴의 수신 동안에 게이팅 시작 위치 S와 게이팅 종료 위치 E 중 하나만을 배열하거나 게이팅 동작 간의 사이클 L을 고려할 필요가 있다.
또한, 도 15, 16, 또는 17에 직접 도시되지는 않았지만, 게이팅 패턴은 게이팅 시작 위치 S 또는 게이팅 종료 위치 E가 수신 데이터 SP 변환 유닛(210)에 의해 수신된 캘리브레이션 패턴의 값이 (아래에 설명되는 미리 정해진 수의 다른 값이 입력되는 기간에서) 변화하는 타이밍에 놓이도록 설정될 필요가 있다. 즉, 게이팅 패턴은, 출력 클럭(244)의 공급이 중단되기 시작하고 또는 그 중단이 캘리브레이션 패턴의 값이 변화하는 타이밍들 중 하나의 타이밍에서 취소되도록 설정된다. 예를 들어, 값이 변화하는 타이밍은 "01"(또는 "10")의 경우이고, 게이팅 패턴은 게이팅 시작 위치 S가 "01"의 "1"(또는 "10"의 "0")에 놓이고 게이팅 종료 위치 E가 "01"의 "0"(또는 "10"의 "1")에 놓이도록 설정된다.
상술한 바와 같이, 캘리브레이션 패턴과 게이팅 패턴은 상기 상관 (1) 내지 (4)를 갖는다. 도 6 및 7의 예에서, 게이팅은 캘리브레이션 패턴에서 "D3"이 수신되는 사이클에 후속하는 사이클 동안 수행된다. 본 예의 경우에, 사이클 설정값과 실제 지연 간의 관계로 인해, "D4 내지 D6"은 가능하게 "D5 내지 D7"로 교체될 수 있다. 이 때문에, 캘리브레이션 패턴에서의 "D4 내지 D7"의 모든 값들이 동일하더라도, 교체 전의 값들과 교체 후의 값들은 동일하며, 이는 지연(사이클 지연)의 검출을 위해서는 바람직하지 않다. 도 6 및 도 7의 예에서, 캘리브레이션 패턴에서의 "D4 내지 D7"은 상관 (1) 내지 (4)의 관점에서 "0101"로 변화될 수 있다.
상기 설정은 상관 (1) 내지 (4)에 기초한 것이다. "1"과 "0"이 반대이더라도, 본 경우에서 대응하는 기대값이 설정될 수 있다.
또한, 상기 캘리브레이션 패턴(기대값)이 사용될 때, 실제 사이클의 수와의 차와 수신된 패턴(수신 데이터(236)) 사이의 상관이 도 20에 도시된다. 수신된 패턴과 도 20에 도시된 지연량 간의 관계를 표시하는 정보에 기초하여 실제 사이클의 수와의 차를 결정할 수 있다. 상이한 캘리브레이션 패턴이 M에 따라 1:1로 수신될 수 있도록 패턴을 설정할 필요가 있다. 그러므로, 상관 (1) 내지 (4)에 따른 게이팅 패턴이 사용될 때, 캘리브레이션 패턴이 외부 디바이스 컨트롤러(103)에 먼저 입력된 값과 다른 미리 정해진 수의 연속값(비트)("1" 또는 "0" 등)을 갖는다면 미리 정해진 수의 사이클까지의 지연이 검출될 수 있다. (수신 데이터 SP 변환 유닛(210)에) 먼저 입력된 값들과 다르고 그 수가 검출될 수 있는 지연 사이클의 수보다 크거나 같은 값들은 연속적인 것이 바람직하다. "D4 내지 D7"이 상술한 "0101"인 경우에, "101" 부분에서, 선행하는 입력값과 다른 값들이 연속적이라는 것을 보장할 수 있다.
상기 관계를 나타내는 (도 20에 도시된 룩업 테이블 또는 간단한 수열 등의) 지연 정보는 미리 시험될 수 있고 DRAM(106) 또는 CPU(101)에 의해 참조될 수 있는 다른 저장 장치에 저장될 수 있고, 사이클 지연량이 결정될 때 CPU(101)에 의해 참조될 수 있다.
다음에, 정확한 파라미터(스큐 설정값, 사이클 설정값)가 사용되는 도 1의 구성의 동작에서 데이터의 수신 동안 외부 디바이스 컨트롤러(103) 및 외부 디바이스(107)에 의해 취급되는 신호의 거동이 도 18에 도시된다. 도 24의 예와 유사하게, 도 18의 예는 사이클 지연이 1 사이클일 때와 캘리브레이션이 완료되고 1 사이클에 대응하는 사이클 선택값(249)이 설정(사이클 설정값(256))될 때의 파형을 도시한다. 정확한 사이클 선택값(249)에 의해 표시된 설정(사이클 설정값(256))은 수신 데이터(236)에서 발생된 지연이 1 사이클일 때 1이다. 사이클 선택값(249)에 의해 표시된 설정이 1이기 때문에, 수신 인에이블 신호(250)는 사이클 제어 유닛(603)을 사용하여 출력 클럭 인에이블 신호(243)에 대해 1 사이클만큼 지연된다.
도 18의 예에서, 시리얼 포맷 수신 데이터(236)의 "D0"의 수신이 시작되는 시점에 출력 클럭 인에이블 신호(243)는 디어서트되고 출력 클럭(244)이 게이트된다. 출력 클럭(244)이 게이트되지만, 시리얼 포맷 수신 데이터(236)의 "D1" 및 "D2"가 외부 디바이스(107)로부터 송신된다. 수신 인에이블 신호(250)는 또한 출력 클럭 인에이블 신호(243)의 디어서션이 시작된 후 1 사이클 지나 디어서트된다. 수신 인에이블 신호(250)의 디어서션에 응답하여, 수신 데이터 SP 변환 유닛(210)은 시리얼 포맷 수신 데이터를 수신하는 것을 즉각 중지한다.
따라서, 스큐-조정된 수신 데이터(235)의 "D1"이 수신되는 동안 데이터 수신이 중지된다. 패러렐 포맷 수신 데이터(234)의 제1 비트의 데이터를 볼 때 알 수 있는 바와 같이, "D1"은 성공적으로 수신되었고 수신 데이터 SP 변환 유닛(210)의 데이터 래치 중단 타이밍은 사이클 지연에 대응하도록 성공적으로 조정되었다.
또한, 출력 클럭 인에이블 신호(243)는 그것이 디어서트된 후 1 사이클 지나 다시 어서트되고, 어서션에 응답하여, 출력 클럭(244)의 게이팅이 해제된다. 여기서, 출력 클럭(244)의 게이팅이 해제될 때에도, 상술한 수신 데이터(236)에서 1 사이클 이상의 지연으로 인해, 시리얼 포맷 수신 데이터(236)의 "D2"가 외부 디바이스(107)로부터 연속적으로 송신된다.
사이클 설정값(256)에 의해 표시된 지연량(1 사이클)에 기초하여, 수신 인에이블 신호(250)가 또한 출력 클럭 인에이블 신호(243)의 어서션 이후 1 사이클 지나 어서트된다. 수신 인에이블 신호(250)의 어서션에 응답하여, 수신 데이터 SP 변환 유닛(210)은 시리얼 포맷 수신 데이터를 수신하는 것을 즉각 재개한다. 따라서, 시리얼 포맷 수신 데이터(236)의 "D2"는 정확하게 수신될 수 있다. 패러렐 포맷 수신 데이터(234)의 제1 비트를 볼 때 알 수 있는 바와 같이, "D2"는 성공적으로 정확하게 수신되었고 수신 데이터 SP 변환 유닛(210)의 데이터 래치 재개 타이밍이 사이클 지연에 대응하도록 성공적으로 조정되었다.
상기와 같이, 본 예시적인 실시예는 정확하지 않은 설정을 갖는 캘리브레이션의 완료를 억제할 수 있다. 따라서, 수신 데이터(236)가 1 사이클 이상의 지연을 가질 때에도 수신 데이터(236)가 정확하게 검출될 수 있다.
또한, 본 예시적인 실시예에서의 사이클 제어 유닛(603)에 따르면, 정확한 사이클 설정값(256)이 설정될 때, 수신 데이터 SP 변환 유닛(210)의 데이터 래치 중단 타이밍 및 데이터 래치 재개 타이밍이 외부 디바이스 컨트롤러(103)와 외부 디바이스(107) 사이에서 일어나는 사이클 지연량에 대응하도록 지연될 수 있다. 이것은 도 24에 도시된 것과 같은 데이터 래치의 실패의 발생을 억제할 수 있다.
또한, 상기 예시적인 실시예에서, 스큐 제어 유닛(211) 및 사이클 제어 유닛(603)이 별도로 구성되지만, 스큐 조정과 사이클 조정은 단일 구성으로 결합될 수 있거나, 또는 수신 데이터 SP 변환 유닛(210)과 결합될 수 있다. 또한, 스큐 조정에서, 조정은 그 시프트가 정정된 클럭을 입력함으로써 수행된다. 그러나, 스큐 조정 또는 사이클 조정을 위한 지연 구성(지연 소자, 플립 플롭)이 데이터를 공급하는 시스템에 직접 배치될 수 있고, 지연량은 선택기 등을 이용하여 선택될 수 있다.
또한, 상기 예시적인 실시예에서, 캘리브레이션 처리를 실행할 기회에 대해 논의되지 않았다. 그러나, 캘리브레이션은 공지된 외부 디바이스 컨트롤러의 것과 유사한 기회로 수행될 수 있으므로, 본 발명의 효과를 달성한다. 예를 들어, 캘리브레이션은, ASIC(100)이 기동될 때, 외부 디바이스 컨트롤러(103)가 미리 정해진 시간 간격으로(예를 들어, 시큐어 디지털 익스텐디드 캐패시티(SDXC) 규격 등의 규격에 정의된 것과 같은 208MHz에서 10msec의 간격으로), 또는 미리 정해진 수의 사이클의 간격으로 초기화될 때, 또는 ASIC(100)이 외부 디바이스(107)와의 접속을 검출할 때, 구현될 수 있다.
또한, 상기 예시적인 실시예에서, 사이클 계산 유닛(602), 사이클 설정 레지스터(601), 및 기대값 설정 레지스터(604)는 하드웨어로서 설명되었지만, 대신 CPU(101)를 사용하여 소프트웨어로 또한 구현될 수 있다. 이 경우에, CPU(101)는 DRAM(106) 등으로부터 사이클 계산 유닛(602)의 기능을 구현하기 위한 프로그램을 판독하고 실행한다. 다양한 레지스터에 대응하는 저장 영역은 CPU(101)(또는 DRAM(106))의 캐시에 확보되고, 상술한 다양한 레지스터에 저장된 값은 저장 영역 내에 저장된다.
외부 디바이스(107)와 외부 디바이스 컨트롤러(103) 사이의 상술한 배선 지연은 외부 디바이스(107)가 외부 디바이스 I/F(112)에 탈착가능하게 부착되도록 구성되면 지연량이 크게 변화할 수 있다. 실제로, 배선의 길이 또는 재료 및 온도의 증가 이외의 접촉 불량 등의 다른 요인에 의해 발생된 지연이 포함될 수 있다.
상기 예시적인 실시예에서, 일례로 호스트 클럭(115)이 어느 주파수에서 동작하고 있는지가 도시되어 있지 않다. 그러나, 동작 주파수가 증가함에 따라, 도 21a에 도시된 구성으로 수신 데이터(236)에서 발생된 1 사이클 이상의 지연을 검출하기가 더 어렵고, 캘리브레이션 실패가 일어날 우려가 더 크게 된다. 호스트 클럭(115)의 주파수는 외부 디바이스 컨트롤러(103)와 외부 디바이스(107) 사이에서 데이터를 더욱 빠르게 교환하기 위해 증가될 수 있다. 따라서, 본 발명은 또한 고속 및 고신뢰성 데이터 통신을 구현하는 데 기여할 수 있다.
또한, 상기 예시적인 실시예에서, 사이클 계산 유닛(602)은 캘리브레이션 패턴(수신 데이터(234))과 기대값을 비교함으로써 사이클 조정을 수행한다. 그러나, 스큐 조정에서와 같이, CPU(101)는 기대값을 판독할 수 있고 비교 처리를 수행할 수 있다.
또한, 상기 예시적인 실시예에서, 수신 데이터(236)의 데이터 부분(도 21b에서 D0, D1,...)이 비교를 위해 이용된다. 그러나, 계산 유닛으로서 기능하는 수신 데이터 SP 변환 유닛(210)에 의해 계산된 CRC 부분(도 21b에서 CRC0, CRC1,... )이 비교를 위해 이용될 수 있다. 이 경우에, 스큐 설정 및 사이클 설정이 정확할 때 수신된 CRC들을, 미리 저장된 캘리브레이션 패턴을 위해, 미리 계산 및 저장할 필요가 있다.
도 1의 예시에서, 외부 디바이스 컨트롤러(103)와 외부 디바이스(107)는 1 비트 폭의 버스를 이용하여 서로 통신한다. 대신에, 4 비트 폭의 버스, 8 비트 폭의 버스 등이 또한 이용될 수 있고, 본 발명은 버스 폭에 한정하지 않고 적용될 수 있다. 그러나, 예를 들어, 4 비트 폭(8 비트)의 버스가 이용될 때, 스큐 제어 유닛(211)은 스큐 조정이 1 비트 폭마다 수행될 수 있도록 4개의 플립 플롭(218) 및 4개의 지연 선택 유닛(217)을 구비할 수 있다. 이 경우에, 수신 데이터 SP 변환 유닛(210)은 단지 4 비트 시퀀스를 병합하면 되고, 수신 데이터 SP 변환 유닛(210), 수신 버퍼(209) 등은 외부 디바이스(107)로부터 출력될 데이터와 일치하도록 4 비트 데이터를 재정렬하기 위한 구성을 필요로 할 수 있다.
또한, 상기 예시적인 실시예에서, 호스트 클럭(115)이 단일 동작 주파수를 갖는 예만이 설명되었다. 그러나, 동작 주파수는 외부 디바이스(107)를 식별함으로써 스위칭될 수 있다. 예를 들어, 호스트 클럭의 주파수를 분할하는 분주 회로, 체배 회로 등은 외부 디바이스 컨트롤러(103)에 입력될 호스트 클럭의 주파수를 스위칭하도록 클럭 발생기(105)와 외부 디바이스 컨트롤러(103) 사이에 설치될 수 있다. 이 경우에, 클럭 발생기(105)에 부가하여, 분주 회로 또는 체배 회로도 발진 유닛의 일부로서 기능한다.
이 경우에, 상술한 캘리브레이션이 성공적이지 않을 때, 외부 디바이스(107)에 입력되는 호스트 클럭(115)은 외부 디바이스(107)와의 통신이 안정화될 수 있도록 저주파수로 감소될 수 있다. 캘리브레이션이 성공적이지 않은 경우의 예는 상술한 캘리브레이션이 단위 시간당 미리 정해진 횟수 이상 발생하는 경우, 및 캘리브레이션에 필요한 횟수가 미리 정해진 횟수 이상(예를 들어 라운드 로빈 동작을 위해 필요한 횟수 이상)을 필요로 하는 경우를 포함한다. 또한, 외부 디바이스 I/F(112)의 물리적 접속기 형태가 규격으로 정해진 특정 타입의 외부 디바이스(107)에 맞도록 설계된 경우에, 특정 타입의 규격으로 정해진 주파수가 분주 회로 또는 체배 회로에서 스위칭될 주파수(예를 들어, 캘리브레이션이 208MHz에서 성공적이지 않으면, 주파수는 100MHz로 스위칭될 수 있음)로서 사용될 수 있다. 이것은 동일한 타입의 외부 디바이스들이 버전에 따라 다른 동작 주파수들을 가질 때 외부 디바이스 컨트롤러(103)의 하위 호환성이 유지될 수 있게 해 준다.
본 발명이 SDXC 규격에 따르는 외부 디바이스(107)에서 이용될 때, 데이터를 송수신하기 전에 외부 디바이스(107)의 규격(또는 외부 디바이스(107)와 외부 디바이스 컨트롤러(103) 사이의 통신의 타입)을 식별하는 것이 가능하다. 이 경우에, CPU(101)는 외부 디바이스(107)의 타입(또는 통신 타입)을 표시하는 식별 정보를 리턴하라고 명령하도록 상술한 커맨드의 송수신을 수행한다. 식별된 규격에 따른 식별 정보에 따라, CPU(101)는 상술한 발진 유닛이 주파수를 SDXC용 고주파수(208MHz) 또는 기타의 저주파수(50Hz 또는 20Hz)로 스위칭하게 한다. 상술한 바와 같이, 1 사이클 이상의 지연이 데이터의 수신에 영향을 주지 않도록 저주파수의 통신이 사용된다고 결정될 수 있으면, 캘리브레이션을 위한 사이클 조정 기능이 중지될 수 있다.
여기서, 본 발명이 SDXC 규격에 따르는 외부 디바이스(107)에 적용되는 경우에, 외부 디바이스(107)는 64 바이트 캘리브레이션 패턴을 외부 디바이스 컨트롤러(103)에 송신하도록 구성된다. 이 경우에, 외부 디바이스 컨트롤러(103)는 64 바이트를 위한 캘리브레이션 패턴을 취급할 수 있다. 그러나, 64 바이트 내에서 검출가능한 지연 사이클량만큼 먼저 입력된 값과는 다른 연속하는 값들을 포함하는 부분에 주목할 수 있다. 이 경우에, 외부 디바이스 컨트롤러(103)에 의해 수신된 64 바이트 캘리브레이션 패턴이 DRAM(106)에 기입된 후에, CPU(101)는 주목한 부분의 어드레스만을 판독할 수 있다. 또한, 몇몇 규격은 외부 디바이스(107)와 외부 디바이스 컨트롤러(103) 사이에 허용될 수 있는 최대 지연량을 정의한다. 따라서, 서로 연속한 다른 값들의 수(상술한 미리 정해진 수)는 허용된 지연량에 기초하여 설정될 수 있다. 이 경우에, 허용된 지연량에 대응하는 수보다 큰 수가 상술한 미리 정해진 수로서 미리 설정될 수 있다.
또한, 상기 예시적인 실시예에서의 송신 버퍼(207) 또는 수신 버퍼(209)는 선입 선출(FIFO) 버퍼일 수 있다. 이 경우에, 버퍼 풀 신호 또는 버퍼 엠프티 신호는 FIFO 버퍼의 가용 용량을 표시하는 정보(잔여 용량 정보)에 기초하여 생성될 수 있거나, 또는 대신에 잔여 용량 정보가 그대로 사용될 수 있다. 이 경우에, 수신 버퍼(209)로서 기능하는 FIFO 버퍼에 저장될 수 있는 데이터의 크기가 캘리브레이션 패턴의 데이터의 크기보다 크거나 같다면, 캘리브레이션 패턴은 FIFO 버퍼에 일시적으로 기입될 수 있고, 그 다음, CPU(101)는 비교를 위해 캘리브레이션 패턴을 직접 사용할 수 있다. 그러나, 수신 버퍼(209)로서 기능하는 FIFO 버퍼에 저장될 수 있는 데이터 크기가 캘리브레이션 패턴의 것보다 작다면, 캘리브레이션 패턴은 FIFO 버퍼의 용량보다 작거나 같은 데이터 크기의 단위로 연속적으로 (매 미리 정해진 사이클마다) 비교될 수 있다. 다르게는, 캘리브레이션 동안에 수신 버퍼(209)로서 기능하는 FIFO 버퍼에 데이터가 래치되지 않고 연속적으로 비교되는 브랜치 구성이 얻어질 수 있다. CPU(101)와는 별도의 구성을 갖고, 기대값이 또한 동일한 데이터 크기의 단위로 판독되는 레지스터로 구성되는 미리 정해진 사이클의 데이터를 위한 비교기가 비교 유닛으로서 설치될 수 있다. 다른 경우에, 제3 클럭 제어 유닛(223)이 스큐 조정에서 클럭을 중지하지 않도록 설계되면, 수신 버퍼(209)는 오버플로우할 수 있다.
또한, 상기 예시적인 실시예에서의 출력 클럭 인에이블 신호(243) 등의 제어 신호는 인에이블 신호가 디어서트되는 타이밍에 디스에이블 신호가 어서트되도록 구성될 수 있다.
상기 예시적인 실시예에서, 본 발명은 외부 디바이스 컨트롤러(103)를 포함하는 정보 처리 장치의 맥락에서 설명되었다. 그러나, 본 발명은 또한 정보 처리 장치가 그 안에 상술한 외부 디바이스(107)의 구성을 포함하는 경우에도 적용될 수 있고, 따라서 디바이스 컨트롤러에 적용가능하다. 본 발명에 따른 정보 처리 장치의 예는 화상 처리 장치 및 계산 처리 장치 등의 다양한 장치를 포함할 수 있다.
또한, 본 발명은 다음의 처리를 실행함으로써 구현될 수 있다: 상기 예시적인 실시예의 기능을 구현하는 소프트웨어(프로그램)가 네트워크 또는 다양한 저장 매체를 통해 시스템 또는 장치에 공급되고, 시스템 또는 장치의 컴퓨터(또는, CPU, 마이크로 프로세싱 유닛(MPU) 등)은 프로그램을 판독하고 실행한다.
본 발명이 예시적인 실시예를 참조하여 설명되었지만, 본 발명은 개시된 예시적인 실시예로 한정되지 않는다는 것을 이해하여야 한다. 다음의 청구의 범위는 모든 그러한 변형 및 등가 구조 및 기능을 포괄하도록 폭넓게 해석되어야 한다.
본 출원은, 그 전체가 본 명세서에 참고로 원용된, 2009년 12월 25일자 출원된 일본 특허 출원 2009-295616호인 우선권을 주장한다.
Claims (19)
- 외부 디바이스에 클럭을 공급하도록 구성된 공급 유닛;
상기 클럭에 동기하여 상기 외부 디바이스로부터 출력되는 데이터를 수신하도록 구성된 수신 유닛;
상기 수신 유닛에 의해 수신된 데이터를 유지하고 자신이 데이터를 유지할 수 없는 경우에 이를 통지하도록 구성된 유지 유닛;
상기 유지 유닛으로부터의 통지에 응답하여 상기 공급 유닛이 상기 클럭의 공급을 중지하게 하도록 구성된 제1 제어 유닛;
상기 클럭의 공급이 어느 타이밍에서 중지되는지를 표시하는 게이팅 정보에 따라 상기 공급 유닛이 상기 클럭의 공급을 중지하게 하도록 구성된 제2 제어 유닛; 및
상기 수신 유닛의 데이터 래치 타이밍이 조정될 때 상기 수신 유닛에 의한 데이터의 수신 동안 상기 제2 제어 유닛이 기능하게 하도록 구성된 선택 유닛
을 포함하는, 정보 처리 장치. - 제1항에 있어서,
상기 수신 유닛에 의한 래치가 예정된 패턴을 기대값으로서 유지하도록 구성된 저장 유닛; 및
상기 선택 유닛에 의해 상기 제2 제어 유닛이 기능하게 되는 동안 상기 수신 유닛에 의해 수신된 패턴을 상기 저장 유닛에 유지된 상기 기대값과 비교하도록 구성된 비교 유닛을 더 포함하는, 정보 처리 장치. - 제2항에 있어서,
상기 래치가 예정된 패턴 및 상기 수신된 패턴으로부터의 검사 신호를 계산하도록 구성된 계산 유닛을 더 포함하고,
상기 저장 유닛은 상기 수신 유닛에 의한 래치가 예정된 패턴으로부터의 상기 계산 유닛에 의해 계산될 수 있는 검사 신호를 기대값으로서 저장하고,
상기 비교 유닛은 상기 수신 유닛에 의해 수신된 캘리브레이션 패턴으로부터의 상기 계산 유닛에 의해 계산된 검사 신호를 상기 저장 유닛에 유지된 상기 기대값과 비교하는, 정보 처리 장치. - 제2항 또는 제3항에 있어서,
상기 래치가 예정된 패턴 및 상기 수신된 패턴은 복수의 값을 갖고,
상기 복수의 값에서의 미리 정해진 수의 연속한 값들의 각각은 선행값과는 다른, 정보 처리 장치. - 제4항에 있어서,
상기 미리 정해진 수는 상기 정보 처리 장치와 상기 외부 디바이스 사이에 일어날 수 있는 지연량에 대응하는 사이클의 수 이상인, 정보 처리 장치. - 제2항에 있어서,
상기 비교 유닛은 상기 수신 유닛에 의해 수신된 패턴이 상기 기대값과 일치한다고 판정하고, 상기 수신 유닛의 상기 데이터 래치 타이밍의 조정이 완료되었다고 판정하는, 정보 처리 장치. - 제1항에 있어서,
상기 제1 제어 유닛 및 상기 제2 제어 유닛의 각각은 제어 신호를 이용하여 상기 공급 유닛에 의한 클럭의 공급을 제어하는, 정보 처리 장치. - 제2항에 있어서,
상기 수신된 패턴이 상기 유지 유닛에 기입된 후, 상기 유지 유닛이 상기 외부 디바이스로부터 출력된 패턴의 데이터 이상의 양의 데이터를 유지할 수 있을 때, 상기 비교 유닛은 상기 유지 유닛에 유지된 패턴을 상기 기대값과 비교하는, 정보 처리 장치. - 제2항에 있어서,
상기 유지 유닛이 상기 외부 디바이스로부터 출력된 패턴의 데이터의 크기보다 작은 크기를 갖는 데이터를 유지할 수 있을 때, 상기 비교 유닛은, 상기 유지 유닛이 상기 외부 디바이스로부터 출력된 패턴의 데이터의 크기보다 작은 크기를 갖는 데이터를 수신하는 사이클에 대응하는 미리 정해진 사이클마다 상기 유지 유닛에 유지된 패턴을 상기 기대값과 비교하는, 정보 처리 장치. - 제1항에 있어서,
상기 수신 유닛은 상기 외부 디바이스로부터 출력된 데이터의 수신을 시작할 때 상태 신호를 출력하고,
상기 선택 유닛은 상기 상태 신호에 기초하여 상기 수신 유닛이 데이터를 현재 수신하고 있는지 여부를 검출하는, 정보 처리 장치. - 제1항에 있어서,
상기 제2 제어 유닛은 클럭의 공급을 주기적으로 중지하도록 상기 공급 유닛을 제어하는, 정보 처리 장치. - 제1항에 있어서,
상기 외부 디바이스와의 통신의 타입을 결정하도록 구성된 식별 유닛을 더 포함하고,
상기 외부 디바이스가 미리 정해진 타입이라고 결정될 수 있을 때, 상기 선택 유닛은 상기 수신 유닛의 데이터 래치 타이밍이 조정될 때 상기 제2 제어 유닛이 기능하게 하는, 정보 처리 장치. - 제1항에 있어서,
상기 외부 디바이스와의 통신의 타입을 결정하도록 구성된 식별 유닛을 더 포함하고,
상기 외부 디바이스가 미리 정해진 타입이 아니라고 결정될 수 있을 때, 상기 선택 유닛은 상기 수신 유닛의 데이터 래치 타이밍이 조정될 때 상기 제1 제어 유닛이 기능하게 하는, 정보 처리 장치. - 제1항에 있어서,
상기 유지 유닛은 선입 선출 버퍼를 포함하고,
상기 통지는 상기 선입 선출 버퍼에 대한 잔여 용량 정보를 표시하는 신호에 기초하는, 정보 처리 장치. - 제1항에 있어서,
상기 게이팅 정보는, 상기 제2 제어 유닛이 상기 클럭의 공급이 중지되기 시작하게 하는 타이밍, 상기 클럭의 공급의 중단이 취소되는 타이밍, 및 클럭의 공급이 중지되는 기간 중 하나 이상을 표시하는, 정보 처리 장치. - 제1항에 있어서,
상기 제2 제어 유닛은 상기 수신 유닛에 의해 수신된 캘리브레이션 패턴의 값이 변화하는 타이밍들 중 하나 이상의 타이밍에서 상기 클럭의 공급이 중지되기 시작하게 하는, 정보 처리 장치. - 제1항에 있어서,
상기 제2 제어 유닛은 상기 수신 유닛에 의해 수신된 캘리브레이션 패턴의 값이 변화하는 타이밍들 중 하나 이상의 타이밍에서 상기 클럭의 공급의 중단을 취소하는, 정보 처리 장치. - 외부 디바이스에 클럭을 공급하는 공급 단계;
상기 클럭에 동기하여 상기 외부 디바이스로부터 출력되는 데이터를 수신하는 수신 단계;
상기 수신 단계에서 수신된 데이터를 유지하고 유지 수단이 데이터를 유지할 수 없는 경우에 이를 통지하는 유지 단계;
상기 유지 단계에서의 통지에 응답하여 공급 수단이 상기 클럭의 공급을 중지하게 하는 제1 제어 단계;
상기 클럭의 공급이 어느 타이밍에서 중지되는지를 표시하는 게이팅 정보에 따라 공급 수단이 상기 클럭의 공급을 중지하게 하는 제2 제어 단계; 및
상기 수신 단계에서의 데이터 래치 타이밍이 조정될 때 상기 수신 단계에서의 데이터의 수신 동안 상기 제2 제어 단계를 선택하는 선택 단계
를 포함하는, 정보 처리 방법. - 외부 디바이스에 클럭을 공급하도록 구성된 공급 유닛;
상기 외부 디바이스에 미리 정해진 패턴의 데이터를 출력하라고 명령하도록 구성된 명령 유닛;
상기 클럭에 동기하여 상기 외부 디바이스로부터 출력되는 데이터를 수신하도록 구성된 수신 유닛; 및
상기 명령 유닛으로부터의 명령에 따라 상기 외부 디바이스로부터 출력된 상기 미리 정해진 패턴의 데이터의 수신 동안에 상기 수신 유닛의 데이터 래치 타이밍이 조정될 때 상기 공급 유닛에 의한 상기 클럭의 공급을 중단하도록 구성된 제어 유닛
을 포함하는, 정보 처리 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2009-295616 | 2009-12-25 | ||
JP2009295616A JP5448795B2 (ja) | 2009-12-25 | 2009-12-25 | 情報処理装置又は情報処理方法 |
PCT/JP2010/007404 WO2011077706A1 (en) | 2009-12-25 | 2010-12-21 | Information processing apparatus or information processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120094956A KR20120094956A (ko) | 2012-08-27 |
KR101453176B1 true KR101453176B1 (ko) | 2014-10-22 |
Family
ID=44195260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127018694A KR101453176B1 (ko) | 2009-12-25 | 2010-12-21 | 정보 처리 장치 또는 정보 처리 방법 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9479326B2 (ko) |
EP (1) | EP2517396B1 (ko) |
JP (1) | JP5448795B2 (ko) |
KR (1) | KR101453176B1 (ko) |
CN (1) | CN102696196B (ko) |
WO (1) | WO2011077706A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552169B2 (en) | 2017-03-17 | 2020-02-04 | Sandisk Technologies Llc | On-die signal calibration |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002247141A (ja) * | 2001-02-21 | 2002-08-30 | Aisin Seiki Co Ltd | シリアル通信装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4384307A (en) * | 1979-08-28 | 1983-05-17 | Inteq, Inc. | Facsimile communications interface adapter |
JPS59173839A (ja) * | 1983-03-22 | 1984-10-02 | Matsushita Electric Ind Co Ltd | 直列デ−タ転送回路 |
JP3157029B2 (ja) | 1992-02-28 | 2001-04-16 | 沖電気工業株式会社 | データ受信装置 |
JP3367009B2 (ja) | 1995-08-31 | 2003-01-14 | 京セラ株式会社 | プリンタ装置における同期式データ伝送方式 |
US5922076A (en) | 1997-09-16 | 1999-07-13 | Analog Devices, Inc. | Clocking scheme for digital signal processor system |
JP3173457B2 (ja) | 1998-03-23 | 2001-06-04 | 日本電気株式会社 | データ通信装置 |
US6757347B1 (en) * | 2000-04-28 | 2004-06-29 | Hewlett-Packard Development Company, L.P. | Source synchronous link with data and clock signals having the same electrical characteristics |
US6735709B1 (en) | 2000-11-09 | 2004-05-11 | Micron Technology, Inc. | Method of timing calibration using slower data rate pattern |
US6922789B2 (en) * | 2001-09-21 | 2005-07-26 | International Business Machines Corporation | Apparatus and method for recalibrating a source-synchronous pipelined self-timed bus interface |
CN100412749C (zh) | 2004-10-21 | 2008-08-20 | 威盛电子股份有限公司 | 存储器信号定时调校方法与相关装置 |
DE102005019041B4 (de) * | 2005-04-23 | 2009-04-16 | Qimonda Ag | Halbleiterspeicher und Verfahren zur Anpassung der Phasenbeziehung zwischen einem Taktsignal und Strobe-Signal bei der Übernahme von zu übertragenden Schreibdaten |
CN101416437A (zh) | 2006-04-05 | 2009-04-22 | 松下电器产业株式会社 | 可移动存储装置、相位同步方法、相位同步程序、其记录介质及主机终端 |
EP2026081A4 (en) * | 2006-05-01 | 2010-10-06 | Advantest Corp | TEST DEVICE AND TESTING METHOD |
TWI379569B (en) | 2007-03-08 | 2012-12-11 | Sandisk Il Ltd | Bias and random delay cancellation |
JP5188287B2 (ja) * | 2008-06-25 | 2013-04-24 | ルネサスエレクトロニクス株式会社 | 通信装置 |
KR100942953B1 (ko) | 2008-06-30 | 2010-02-17 | 주식회사 하이닉스반도체 | 데이터 전달 회로 및 그를 포함하는 반도체 메모리 장치 |
EP2351037A4 (en) * | 2009-01-12 | 2011-12-28 | Rambus Inc | MESOCHRONIC SIGNALING SYSTEM WITH CORE ACTIVE SYNCHRONIZATION |
-
2009
- 2009-12-25 JP JP2009295616A patent/JP5448795B2/ja active Active
-
2010
- 2010-12-21 EP EP10838945.3A patent/EP2517396B1/en active Active
- 2010-12-21 WO PCT/JP2010/007404 patent/WO2011077706A1/en active Application Filing
- 2010-12-21 US US13/518,321 patent/US9479326B2/en active Active
- 2010-12-21 KR KR1020127018694A patent/KR101453176B1/ko active IP Right Grant
- 2010-12-21 CN CN201080058942.5A patent/CN102696196B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002247141A (ja) * | 2001-02-21 | 2002-08-30 | Aisin Seiki Co Ltd | シリアル通信装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2517396A1 (en) | 2012-10-31 |
WO2011077706A1 (en) | 2011-06-30 |
EP2517396B1 (en) | 2018-10-10 |
KR20120094956A (ko) | 2012-08-27 |
EP2517396A4 (en) | 2017-12-27 |
US9479326B2 (en) | 2016-10-25 |
US20120259438A1 (en) | 2012-10-11 |
CN102696196B (zh) | 2015-04-01 |
JP2011135530A (ja) | 2011-07-07 |
JP5448795B2 (ja) | 2014-03-19 |
CN102696196A (zh) | 2012-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10129012B2 (en) | Tuning circuitry and operations for non-source-synchronous systems | |
JP2006013990A (ja) | 遅延制御装置 | |
US20110093753A1 (en) | Phase calibration circuit, memory card control device, and phase calibration method | |
US9054691B2 (en) | Information processing apparatus or information processing method | |
US9880949B1 (en) | Cross clock compensation between layers in peripheral component interconnect express | |
JPWO2006030904A1 (ja) | 半導体装置、及び通信制御方法 | |
US8751842B2 (en) | Microcontroller and method of controlling the same | |
KR101453176B1 (ko) | 정보 처리 장치 또는 정보 처리 방법 | |
US8909970B2 (en) | Information processing apparatus or information processing method which supplies a clock to an external device | |
JP2012124716A (ja) | データ受信装置、データ送信装置、制御方法 | |
US6760803B1 (en) | Aligning and offsetting bus signals | |
US9124416B2 (en) | Method for determining phase of clock used for reception of parallel data, receiving circuit, and electronic apparatus | |
US8401139B2 (en) | Data transfer unit, data transmission device, data receiving device, and control method | |
JP5717897B2 (ja) | 情報処理装置又は情報処理方法 | |
JP2008300915A (ja) | クロックのデューティ比を活用した高速度シリアル通信 | |
US7366207B1 (en) | High speed elastic buffer with clock jitter tolerant design | |
CN105589828A (zh) | 一种高速接口数据发送与接收的方法和装置 | |
US20090232266A1 (en) | Signal processing device | |
US11018677B1 (en) | Transmission enable signal generation circuit and integrated circuit | |
JP2006011495A (ja) | データ転送装置およびデータ転送方法 | |
JP2005094597A (ja) | 遅延制御装置 | |
JP2008079041A (ja) | 高速シリアルバスのクロック調整装置およびクロック調整方法 | |
JP2002244762A (ja) | クロック生成回路 | |
KR20140083367A (ko) | 지연 고정 루프 및 이를 포함하는 레이턴시 조절회로 | |
JP2007172026A (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: 20170925 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180928 Year of fee payment: 5 |