KR101811133B1 - 수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치 - Google Patents

수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치 Download PDF

Info

Publication number
KR101811133B1
KR101811133B1 KR1020160063535A KR20160063535A KR101811133B1 KR 101811133 B1 KR101811133 B1 KR 101811133B1 KR 1020160063535 A KR1020160063535 A KR 1020160063535A KR 20160063535 A KR20160063535 A KR 20160063535A KR 101811133 B1 KR101811133 B1 KR 101811133B1
Authority
KR
South Korea
Prior art keywords
circuit
signal
data
determination
enable signal
Prior art date
Application number
KR1020160063535A
Other languages
English (en)
Other versions
KR20160140433A (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 KR20160140433A publication Critical patent/KR20160140433A/ko
Application granted granted Critical
Publication of KR101811133B1 publication Critical patent/KR101811133B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

[과제] 리드 데이터에 있어서의 오류를 저감하는 것을 과제로 한다.
[해결수단] 수신 회로(24)의 제어 신호 생성 회로(35)는, 지연 스트로브 신호(DQSd)에 기초하여 인에이블 신호(EN1)를 생성하고, 전송 설정치(FSP), 리드 제어 신호(RCNT), 코어 클록 신호(CKc)에 기초하여 인에이블 신호(EN2)를 생성한다. 패턴 데이터 생성 회로(PG)(36)는, 인에이블 신호(EN1)에 기초하여 판정용 패턴 데이터(TD)를 생성한다. 비동기 전송 회로(37)는, 인에이블 신호(EN1)와 지연 스트로브 신호(DQSd)에 기초하여 판정용 패턴 데이터(TD)를 래치하고, 인에이블 신호(EN2)와 코어 클록 신호(CKc)에 기초하여 판정용 데이터(CT)를 출력한다. 판정 회로(38)는 판정용 데이터(CT)에 기초하여 인에이블 신호(EN2)의 생성 타이밍을 판정한다. 그리고, 설정치 산출 회로(39)는 판정 회로(38)의 판정 결과에 기초하여 전송 설정치(FSP)를 산출한다.

Description

수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치{RECEPTION CIRCUIT, METHOD FOR ADJUSTING TIMING IN RECEPTION CIRCUIT, AND SEMICONDUCTOR DEVICE}
본 발명은 수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치에 관한 것이다.
종래 반도체 기억 장치, 예컨대 다이내믹 랜덤 액세스 메모리(DRAM: Dynamic Random Access Memory)는 시스템 장치의 데이터를 기억하기 위해서 이용된다. 또한, 클록 신호나 스트로브 신호의 상승과 하강 양쪽에서 데이터를 입출력하는 더블 데이터 레이트(DDR: Double Data Rate) 방식의 반도체 기억 장치는 시스템 장치의 동작 속도의 고속화에 대응한다.
시스템 장치는 메모리에 커맨드를 출력한다. 메모리는 커맨드에 기초하여 동작한다. 예컨대, 시스템 장치는 메모리에 리드 커맨드와 리드 어드레스를 출력한다. 메모리는 리드 커맨드에 기초하여 리드 어드레스의 데이터를 메모리 셀 어레이로부터 독출한다. 그리고, 메모리는, 데이터 스트로브 신호를 출력하고, 데이터 스트로브 신호에 동기하여 리드 데이터를 출력한다. 시스템 장치 내의 수신 회로는, 데이터 스트로브 신호를 수신하고, 타이밍을 조정한 데이터 스트로브 신호에 기초하여 리드 데이터를 받아들인다.
리드 데이터와 데이터 스트로브 신호의 상대적인 타이밍의 어긋남은 리드 데이터에 오류를 생기게 하는 요인이다. 이 때문에, 시스템 장치는 리드 데이터에 대하여 데이터 스트로브 신호의 타이밍을 조정하는 회로를 포함한다(예컨대, 특허문헌 1~3 참조).
특허문헌 1: 일본 특허공개 2012-27734호 공보 특허문헌 2: 일본 특허공개 2012-58997호 공보 특허문헌 3: 일본 특허공개 2013-58209호 공보
시스템 장치는, 상기한 메모리에 대하여 데이터의 입출력을 하는 코어 회로(예컨대 CPU), 상기한 메모리를 제어하는 제어 회로(메모리 컨트롤러: MC)를 포함한다. 이들 회로는 시스템 장치의 동작을 위한 내부 클록 신호(예컨대 시스템 로크 신호(SCK))에 기초하여 데이터를 주고받는다. 따라서, 수신 회로는, 데이터 스트로브 신호로 수신한 리드 데이터를, 내부 클록 신호에 기초하여 출력한다.
내부 클록 신호와 데이터 스트로브 신호 사이의 상대적인 타이밍은, 시스템 장치의 동작 전압의 변동이나 온도 변화(VT 드리프트) 등의 여러 가지 요인에 의해 변동한다. 그리고, 내부 클록 신호와 데이터 스트로브 신호의 타이밍의 어긋남은 수신 회로가 내부 클록 신호에 기초하여 출력하는 리드 데이터에 오류를 생기게 한다.
본 발명의 일 관점에 따르면, 스트로브 신호에 기초하여 제1 인에이블 신호를 생성하고, 리드 제어 신호와 전송 설정에 따른 포인터 제어 신호와 코어 클록 신호에 기초하여 제2 인에이블 신호를 생성하는 제어 신호 생성 회로와, 상기 제1 인에이블 신호와 상기 스트로브 신호에 기초하여 수신 데이터를 래치하고, 래치한 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하는 제1 비동기 전송 회로와, 상기 제1 인에이블 신호의 변화에 따라서 논리를 반전한 판정용 패턴 데이터를 생성하는 패턴 데이터 생성 회로와, 상기 제1 인에이블 신호와 상기 스트로브 신호에 기초하여 상기 판정용 패턴 데이터를 래치하고, 래치한 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하는 제2 비동기 전송 회로와, 상기 제2 비동기 전송 회로의 출력 데이터에 기초하여 상기 포인터 제어 신호의 생성 타이밍을 판정하는 판정 회로와, 상기 판정 회로의 판정 결과에 기초하여 상기 전송 설정치를 산출하는 설정치 산출 회로를 갖는다.
본 발명의 일 관점에 따르면, 리드 데이터에 있어서의 오류를 저감할 수 있다.
도 1은 제1 실시형태의 시스템을 도시하는 블록 회로도이다.
도 2는 수신 회로의 일부 블록 회로도이다.
도 3의 (a), (b)는 제어 신호 생성 회로의 제1 및 제2 BL 카운터의 회로도이다.
도 4는 제어 신호 생성 회로의 포인터 제어 회로 및 제3 BL 카운터의 회로도이다.
도 5는 비동기 전송 회로를 도시하는 회로도이다.
도 6은 패턴 데이터 생성 회로와 비동기 전송 회로를 도시하는 회로도이다.
도 7은 판정 회로, 설정치 산출 회로, 레이턴시 보상 회로를 도시하는 회로도이다.
도 8은 설정치 산출 회로의 동작을 도시하는 흐름도이다.
도 9는 비동기 전송 회로의 동작을 도시하는 타이밍도이다.
도 10은 전송 설정치의 설정을 도시하는 타이밍도이다.
도 11은 패턴 데이터 생성 회로, 비동기 전송 회로, 판정 회로의 동작을 도시하는 타이밍도이다.
도 12는 패턴 데이터 생성 회로, 비동기 전송 회로, 판정 회로의 동작을 도시하는 타이밍도이다.
도 13은 패턴 데이터 생성 회로, 비동기 전송 회로, 판정 회로의 동작을 도시하는 타이밍도이다.
도 14는 수신 회로의 동작을 도시하는 타이밍도이다.
도 15는 비교예의 시스템을 도시하는 블록 회로도이다.
도 16은 데이터의 변동에 대한 윈도우와 전송 설정치를 도시하는 타이밍도이다.
도 17은 하이 레이트일 때의 윈도우와 전송 설정치를 도시하는 타이밍도이다.
도 18은 제2 실시형태의 수신 회로의 일부 블록 회로도이다.
도 19는 설정치 산출 회로의 동작을 도시하는 흐름도이다.
도 20은 제2 실시형태의 수신 회로의 동작을 도시하는 타이밍도이다.
(제1 실시형태)
이하, 제1 실시형태를 설명한다.
도 1에 도시하는 것과 같이, 이 시스템(10)의 시스템 장치(11)는 메모리 장치(12)에 접속되어 있다. 시스템 장치(11)는, 예컨대 하나의 칩에 중앙 처리 장치(Central Processing Unit: CPU) 등의 코어 회로와 복수의 주변 회로를 포함하는 반도체 집적 회로 장치(LSI, 예컨대 SoC(System on Chip))이다. 메모리 장치(12)는 동기식의 반도체 기억 장치, 예컨대 DDR3-SDRAM(Double Data Rate 3 Synchronous Dynamic Random Access Memory)이다.
시스템 장치(11)의 메모리 컨트롤러(21)는 코어 클록 신호(CKc)에 기초하여 동작한다. 메모리 컨트롤러(21)는, 코어 회로로부터의 요구에 기초하여, 인터페이스 회로(22)를 통해 메모리 장치(12)를 액세스한다. 예컨대, 메모리 컨트롤러(21)는 코어 회로부터의 리드 요구에 기초하여 리드 명령(RRQ)을 출력한다. 또한, 메모리 컨트롤러(21)는 리드 요구에 기초하여 리드 제어 신호(RCNT)를 출력한다. 또한, 메모리 컨트롤러(21)는 인터페이스 회로(22)에 대한 전송 초기치(FSO)를 출력한다.
인터페이스 회로(22)의 송신 회로(23)는 코어 클록 신호(CKc)에 기초하여 클록 신호(CKT)를 출력한다. 또한, 송신 회로(23)는 메모리 컨트롤러(21)로부터 출력되는 리드 명령(RRQ)에 기초하여 리드 커맨드(RCMD)를 출력한다. 출력 버퍼 회로(25a)는 클록 신호(CKT)에 기초하여 클록 신호(CK)를 출력한다. 이 클록 신호(CK)는 전송로를 통해 메모리 장치(12)에 공급된다. 출력 버퍼 회로(25b)는 리드 커맨드(RCMD)에 기초하여 커맨드(CMD)를 출력한다. 커맨드(CMD)는 전송로를 통해 메모리 장치(12)에 공급된다.
메모리 장치(12)는 클록 신호(CK)에 기초하여 커맨드(CMD)를 수신한다. 또한, 도시하지 않지만, 메모리 장치(12)는 클록 신호(CK)에 기초하여 리드 어드레스를 수신한다. 메모리 장치(12)는 커맨드(CMD)에 기초하여 리드 동작을 행한다. 메모리 장치(12)는, 리드 동작에 있어서, 리드 어드레스의 메모리 셀로부터 버스트 길이(Burst Length: BL)에 따른 수의 데이터를 독출한다. 버스트 길이는 하나의 리드 커맨드에 따라서 메모리 장치(12)가 연속적으로 출력하는 데이터의 수이다. 버스트 길이는 예컨대 메모리 컨트롤러(21)에 의해 설정된다. 본 실시형태에서는, 예컨대, 버스트 길이를 「8」로 설정한 경우를 설명한다. 그리고, 메모리 장치(12)는 데이터(DQ)와 데이터 스트로브 신호(DQS)를 출력한다. 데이터(DQ)와 데이터 스트로브 신호(DQS)는 각각 전송로를 통해 시스템 장치(11)에 공급된다.
입력 버퍼 회로(27a)는 데이터 스트로브 신호(DQS)에 기초하여 수신 스트로브 신호(RDQS)를 출력한다. 입력 버퍼 회로(27b)는 데이터(DQ)에 기초하여 수신 데이터(RDQ)를 출력한다.
수신 회로(24)는, 수신 데이터(RDQ)(데이터(DQ))를 받아들여 출력(전송)하는 과정에서, 수신 스트로브 신호(RDQS)에서 코어 클록 신호(CKc)로의 클록 환승을 행한다. 그리고, 수신 회로(24)는, 수신 스트로브 신호(RDQS)에서 코어 클록 신호(CKc)로의 클록 환승을 행하는 타이밍을 전송 설정치(FSP)(처음에는 전송 초기치(FSO))에 기초하여 설정한다. 또한, 수신 회로(24)는, 현재의 환승 타이밍에 대한 수신 스트로브 신호(RDQS)의 지연이나 진행에 기초하여, 클록 환승 타이밍의 설정치를 조정한다.
인터페이스 회로(22)가 메모리 컨트롤러(21)로부터 리드 명령(RRQ)을 입력하고 나서 메모리 컨트롤러(21)에 리드 데이터(RD)를 출력할 때까지의 시간은 리드 레이턴시(Read Latency: RL)이다. 리드 레이턴시는 예컨대 코어 클록 신호(CKc)의 사이클수로 표시된다. 인터페이스 회로(22)가 리드 커맨드(RCMD)(코멘트(CMD))를 출력하고 나서 그 리드 커맨드(RCMD)에 대한 데이터(DQ)를 수신할 때까지의 시간을 라운드 트립 타임(Round Trip Time: RTT)이라고 한다.
라운드 트립 타임은, 시스템(10)의 환경 온도의 변화나 시스템(10)이 동작하는 전원 전압의 변화(이하, 이들을 VT 드리프트라고 부른다)에 의해서 변화된다. VT 드리프트는, 클록 환승 타이밍(설정치)과 수신 스트로브 신호(RDQS) 사이의 상대적인 타이밍 어긋남을 생기게 한다. 이 타이밍 어긋남은, 고주파수의 클록 신호나 스트로브 신호에 의한 고속 데이터 전송의 방해가 된다. 수신 회로(24)는, 수신 데이터(RDQ)를 받아들일 수 있는 유효 윈도우 내에서, 코어 클록 신호(CKc)에 기초하여 수신 데이터(RDQ)를 받아들인다. 수신 회로(24)는, 이 수신 데이터(RDQ)의 취득 타이밍을, 데이터 스트로브 신호(DQS)(수신 데이터 스트로브 신호(RDQS))에 기초하여 조정한다.
코어 클록 신호(CKc)에 기초하여 동작하는 메모리 컨트롤러(21)는, 리드 요구를 출력하여, 규정의 리드 레이턴시에 대응하는 사이클 후에 리드 데이터(RD)를 수취한다. 여기서, 코어 클록 신호(CKc)에 의해 수신 데이터(RDQ)를 받아들이는 타이밍을 조정하면, 메모리 컨트롤러(21)에 의해서 수신되는 리드 데이터(RD)의 레이턴시가 규정의 리드 레이턴시에서 틀어지는 경우가 생길 수 있다. 이 때문에, 수신 회로(24)는, 메모리 컨트롤러(21)의 리드 레이턴시에 따라서, 리드 데이터(RD)를 출력하는 타이밍을 보상한다. 즉, 수신 회로(24)는, 메모리 컨트롤러(21)에 전송하는 리드 데이터(RD)의 레이턴시를 보상한다.
수신 회로(24)의 지연 동기 루프(Delay Locked Loop: DLL) 회로(「DLL」라고 표기, 이하 DLL 회로)(31a)에는, 리드 제어 신호(RCNT)와 코어 클록 신호(CKc)가 공급된다. 또한, DLL 회로(31a)에는, 지연치가 예컨대 메모리 컨트롤러(21)에 의해 설정된다. DLL 회로(31a)는, 지연치에 따라서 리드 제어 신호(RCNT)를 지연시켜 게이트 신호(SG0)를 생성하고, 코어 클록 신호(CKc)에 기초하여 게이트 신호(SG0)를 출력한다. 메모리 컨트롤러(21)는, 메모리 장치(12)에서의 레이턴시를 고려하여, 메모리 장치(12)로부터 출력되는 데이터(DQ)가 수신 회로(24)에서 받아들여지는 타이밍에 따른 기간, H 레벨의 리드 제어 신호(RCNT)를 출력한다.
이 DLL 회로(31a)에 있어서의 지연치는 접속된 메모리 장치(12)에 따라서 설정된다. 예컨대, 메모리 컨트롤러(21)는, 소정 타이밍에 있어서 트레이닝 처리를 실행하여, 그 결과에 따른 지연치를 DLL 회로(31a)에 설정한다. 트레이닝 처리는, 데이터(DQ)를 수신 회로(24)로 받아들이는 타이밍을 교정(조정)하는 처리이다. 메모리 컨트롤러(21)는, 소정 타이밍, 예컨대, 시스템 장치(11)의 기동시나, 시스템 장치(11)의 동작 중에 있어서 메모리 장치(12)를 액세스하지 않는 기간의 임의의 타이밍에 트레이닝 처리를 실행한다. 이 트레이닝 처리에 의해, 취득이 불필요한 기간에 있어서의 잘못된 데이터의 취득을 방지한다.
루프백 입출력 회로(「LBIO」라고 표기)(26)는 버퍼 회로(26a, 26b)를 포함한다. 버퍼 회로(26a)는 상기한 출력 버퍼 회로(25a, 25b)와 동일한 전기적 특성을 갖는다. 버퍼 회로(26a)는 입력 신호에 응답하여 출력 신호를 출력한다. 버퍼 회로(26a)에 있어서, 입력 신호에 대한 출력 신호의 지연 시간(지연 시간 특성)은 출력 버퍼 회로(25a, 25b)의 지연 시간 특성과 동일하다. 버퍼 회로(26b)는 상기한 입력 버퍼 회로(27a, 27b)와 동일한 전기적 특성(지연 시간 특성)을 갖는다. 루프백 입출력 회로(26)는 게이트 신호(SG0)를 지연한 지연 게이트 신호(SG1)를 출력한다.
게이트 회로(32)는, 지연 게이트 신호(SG1)가 액티브인 기간에, 수신 스트로브 신호(RDQS)를 출력한다. 예컨대, 게이트 회로(32)는 논리곱 연산 회로(AND 회로)이며, 지연 게이트 신호(SG1)와 수신 스트로브 신호(RDQS)를 논리곱 연산한 결과에 따른 내부 스트로브 신호(IDQS)를 출력한다.
지연 동기 루프 회로(「DLL」라고 표기, 이하 DLL 회로)(31b)에는 지연치가 설정된다. DLL 회로(31b)는, 지연치에 따라서 내부 스트로브 신호(IDQS)를 지연시켜 지연 스트로브 신호(DQSd)를 생성하고, 코어 클록 신호(CKc)에 기초하여 지연 스트로브 신호(DQSd)를 출력한다. 이 DLL 회로(31b)에 있어서의 지연치는, 지연 스트로브 신호(DQSd)의 주기, 즉 데이터 스트로브 신호(DQS)(내부 스트로브 신호(IDQS))의 주기에 따라서 설정되어 있다. 예컨대, DLL 회로(31b)에서의 지연치는, 내부 스트로브 신호(IDQS)의 주기의 1/4(위상으로는 90도)를 기준치로서 이용하여, 상기한 트레이닝 처리에 의해 설정된다.
비동기 전송 회로(33)에는 수신 데이터(RDQ)가 공급된다. 또한, 비동기 전송 회로(33)에는 지연 스트로브 신호(DQSd)와 코어 클록 신호(CKc)가 공급된다. 또한, 비동기 전송 회로(33)에는 제어 신호 생성 회로(35)로부터 인에이블 신호(EN1, EN2)가 공급된다.
비동기 전송 회로(33)는 비동기식의 FIFO(First In First Out) 회로이다. 비동기 전송 회로(33)는, 인에이블 신호(EN1)에 기초하여 입력 기능을 유효로 하고, 지연 스트로브 신호(DQSd)에 기초하여 수신 데이터(RDQ)를 래치한다. 비동기 전송 회로(33)는, 지연 스트로브 신호(DQSd)의 상승 엣지와 하강 엣지에 기초하여, 버스트 길이에 따른 복수의 수신 데이터(RDQ)를 래치한다. 그리고, 비동기 전송 회로(33)는, 인에이블 신호(EN2)에 기초하여 출력 기능을 유효로 하고, 래치한 수신 데이터(RDQ)에 따른 출력 데이터(CD)를 코어 클록 신호(CKc)에 기초하여 출력한다.
레이턴시 보상 회로(34)는, 이 레이턴시 보상 회로(34)에 설정된 지연량에 따라서 비동기 전송 회로(33)의 출력 데이터(CD)를 지연시켜 리드 데이터(RD)를 출력한다. 레이턴시 보상 회로(34)는, 레이턴시 설정치(FSL)에 기초하여, 출력 데이터(CD)에 대한 리드 데이터(RD)의 지연량을 설정한다.
제어 신호 생성 회로(35)에는 설정치 산출 회로(39)로부터 전송 설정치(FSP)가 공급된다. 또한, 제어 신호 생성 회로(35)에는, 코어 클록 신호(CKc), 지연 스트로브 신호(DQSd), 리드 제어 신호(RCNT)가 공급된다. 도 1에 도시하는 메모리 컨트롤러(21)는, 트레이닝 처리에 의해 전송 초기치(FSO)를 결정하고, 그 전송 초기치(FSO)를 설정치 산출 회로(39)에 출력한다. 설정치 산출 회로(39)는 전송 초기치(FSO)에 기초하여 산출한 전송 설정치(FSP)를 출력한다.
제어 신호 생성 회로(35)는, 지연 스트로브 신호(DQSd)에 기초하여 제1 인에이블 신호(EN1)를 생성한다. 제어 신호 생성 회로(35)는, 전송 설정치(FSP), 리드 제어 신호(RCNT), 코어 클록 신호(CKc)에 기초하여, 제2 인에이블 신호(EN2)를 생성한다. 제어 신호 생성 회로(35)는, 전송 설정치(FSP)와 코어 클록 신호(CKc)에 기초하여, 리드 제어 신호(RCNT)를 지연한 지연 신호를 생성한다. 그리고, 제어 신호 생성 회로(35)는, 그 지연 신호와 코어 클록 신호(CKc)에 기초하여, 제2 인에이블 신호(EN2)를 생성한다.
패턴 데이터 생성 회로(PG)(36)는 인에이블 신호(EN1)에 기초하여 판정용 패턴 데이터(TD)를 출력한다. 또한, 패턴 데이터 생성 회로(36)는 인에이블 신호(EN1)의 변화에 따라서 판정용 패턴 데이터(TD)의 논리치를 반전한다. 예컨대, 패턴 데이터 생성 회로(36)는, 인에이블 신호(EN1)를 입력할 때마다(예컨대 인에이블 신호(EN1)의 상승 엣지마다), 판정용 패턴 데이터(TD)의 논리치를 반전한다. 따라서, 판정용 패턴 데이터(TD)의 논리치는 인에이블 신호(EN1)에 따라서 「0」→「1」→「0」으로 변화된다.
제어 신호 생성 회로(35)는 지연 스트로브 신호(DQSd)를 카운트하여 인에이블 신호(EN1)를 생성한다. 메모리 장치(12)는, 버스트 길이의 데이터(DQ)를, 데이터 스트로브 신호(DQS)의 상승 엣지와 하강 엣지 각각의 타이밍에 출력한다. 수신 회로(24)의 DLL 회로(31b)는 내부 스트로브 신호(IDQS)(즉, 수신 스트로브 신호(RDQS))를 지연시켜 지연 스트로브 신호(DQSd)를 생성한다. 따라서, 패턴 데이터 생성 회로(36)는, 버스트 길이에 따른 펄스수의 지연 스트로브 신호(DQSd)를 입력할 때마다 인에이블 신호(EN1)의 논리치를 반전함으로써 판정용 패턴 데이터(TD)를 생성한다.
비동기 전송 회로(37)는 비동기 전송 회로(33)와 마찬가지다. 즉, 비동기 전송 회로(37)에는 지연 스트로브 신호(DQSd)와 코어 클록 신호(CKc)가 공급된다. 또한, 비동기 전송 회로(37)에는 인에이블 신호(EN1, EN2)가 공급된다.
비동기 전송 회로(37)는 비동기식의 FIFO(First In First Out) 회로이다. 비동기 전송 회로(37)는, 인에이블 신호(EN1)에 기초하여 입력 기능을 유효로 하고, 지연 스트로브 신호(DQSd)에 기초하여 판정용 패턴 데이터(TD)를 래치한다. 그리고, 비동기 전송 회로(37)는, 인에이블 신호(EN2)에 기초하여 출력 기능을 유효로 하고, 래치한 판정용 패턴 데이터(TD)에 따른 판정용 데이터(CT)를 코어 클록 신호(CKc)에 기초하여 출력한다.
판정 회로(38)에는 판정용 데이터(CT)가 공급된다. 또한, 판정 회로(38)에는 코어 클록 신호(CKc)와 인에이블 신호(EN2)가 공급된다.
판정 회로(38)는 인에이블 신호(EN2)에 기초하여 기대치 데이터를 생성한다. 또한, 판정 회로(38)는 인에이블 신호(EN2)를 입력할 때마다 기대치 데이터의 논리치를 반전한다. 즉, 판정 회로(38)는, 패턴 데이터 생성 회로(36)에서 생성되는 판정용 패턴 데이터(TD)와 마찬가지로, 인에이블 신호(EN2)를 입력할 때마다 기대치 데이터의 논리치를 「0」→「1」→「0」으로 변경한다. 판정 회로(38)는, 판정용 데이터(CT)를 기대치 데이터와 비교하여, 비교 결과에 따른 판정 신호(EX)를 출력한다.
설정치 산출 회로(39)에는 메모리 컨트롤러(21)로부터 전송 초기치(FSO)가 공급된다.
설정치 산출 회로(39)는, 판정 회로(38)로부터의 판정 신호(EX)에 기초하여 전송 설정치(FSP)를 산출하고, 그 전송 설정치(FSP)를 제어 신호 생성 회로(35)에 출력한다. 또한, 설정치 산출 회로(39)는, 판정 회로(38)로부터의 판정 신호(EX)에 기초하여 레이턴시 설정치(FSL)을 산출하고, 그 레이턴시 설정치(FSL)을 레이턴시 보상 회로(34)에 출력한다.
도 2에 도시하는 것과 같이, 제어 신호 생성 회로(35)는, BL(Burst Length) 카운터(41, 42), 포인터 제어 회로(43), BL 카운터(44)를 갖고 있다.
BL 카운터(41, 42)는 4진의 원-핫 스테이트 카운터(one-hot state counter)이다. BL 카운터(41, 42)는 제1 인에이블 신호(EN1)를 생성하기 위해서 이용된다. BL 카운터(41)는 지연 스트로브 신호(DQSd)의 상승 엣지(positive edge)를 카운트하여 인에이블 신호(CP0~CP3)를 생성한다. BL 카운터(42)는 지연 스트로브 신호(DQSd)의 하강 엣지(negative edge)를 카운트하여 인에이블 신호(CN0~CN3)를 생성한다. 본 예에서는, BL 카운터(42)는, 지연 스트로브 신호(DQSd)의 반전 논리를 갖는 반전 스트로브 신호(xDQSd)를 이용함으로써, 지연 스트로브 신호(DQSd)의 하강 엣지를 카운트한다. 인에이블 신호(CP0~CP3)의 각각은 정상(正相) 인에이블 신호의 일례이며, 인에이블 신호(CN0~CN3)의 각각은 역상(逆相) 인에이블 신호의 일례이다.
도 3(a)에 도시하는 것과 같이, BL 카운터(41)는 4개의 플립플롭 회로(FF 회로)(51a~51d)를 갖고 있다. FF 회로(51a~51d)는 예컨대 D형 플립플롭 회로이다. 각 FF 회로(51a~51d)의 클록 단자에는 지연 스트로브 신호(DQSd)가 공급된다. FF 회로(51a~51c)의 출력 단자(Q)는 각각 FF 회로(51b~51d)의 입력 단자(데이터 단자(D))에 접속되어 있다. FF 회로(51d)의 출력 단자(Q)는 FF 회로(51a)의 입력 단자(데이터 단자(D))에 접속되어 있다. FF 회로(51a)는, 리셋시에 예컨대 L 레벨의 신호가 프리셋트 단자에 공급되고, H 레벨의 인에이블 신호(CP0)를 출력한다. FF 회로(51b~51d)는 리셋시에 예컨대 L 레벨의 신호가 리셋 단자에 공급되고, L 레벨의 인에이블 신호(CP1~CP3)를 출력한다. FF 회로(51a~51d)는, H 레벨의 지연 스트로브 신호(DQSd)에 기초하여 데이터 단자의 레벨과 같은 레벨의 인에이블 신호(CP0~CP3)를 출력한다. 이들 인에이블 신호(CP0~CP3)는 도 1에 도시하는 인에이블 신호(EN1)에 포함된다.
도 3(b)에 도시하는 것과 같이, BL 카운터(42)는 4개의 플립플롭 회로(FF 회로)(52a~52d)를 갖고 있다. FF 회로(52a~52d)는 예컨대 D형 플립플롭 회로이다. 각 FF 회로(52a~52d)의 클록 단자에는 반전 스트로브 신호(xDQSd)가 공급된다. 반전 스트로브 신호(xDQSd)는, 예컨대 도 1에 도시하는 DLL 회로(31b)에 있어서, 지연 스트로브 신호(DQSd)를 인버터 회로에 의해 논리 반전하여 생성된다. 이 인버터 회로는, 제어 신호 생성 회로(35) 내에(예컨대 BL 카운터(42)의 전단에) 설치되어도 좋고, 혹은 DLL 회로(31b) 내에 설치되어도 좋다. 지연 스트로브 신호(DQSd)의 하강 엣지의 타이밍은 반전 스트로브 신호(xDQSd)의 상승 엣지의 타이밍과 같다. 따라서, BL 카운터(42)에 있어서, 반전 스트로브 신호(xDQSd)를 이용함으로써, BL 카운터(41)와 동일한 회로에 의해, 지연 스트로브 신호(DQSd)의 하강 엣지(negative edge)에 기초한 인에이블 신호(CN0~CN3)를 생성한다.
FF 회로(52a~52c)의 출력 단자(Q)는 각각 FF 회로(52b~52d)의 입력 단자(데이터 단자(D))에 접속되어 있다. FF 회로(52d)의 출력 단자(Q)는 FF 회로(52a)의 입력 단자(데이터 단자(D))에 접속되어 있다. FF 회로(52a)는, 리셋시에 예컨대 L 레벨의 신호가 프리셋트 단자에 공급되고, H 레벨의 인에이블 신호(CN0)를 출력한다. FF 회로(52b~52d)는 리셋시에 예컨대 L 레벨의 신호가 리셋 단자에 공급되고, L 레벨의 인에이블 신호(CN1~CN3)를 출력한다. FF 회로(52a~52d)는, H 레벨의 반전 스트로브 신호(xDQSd)에 기초하여 데이터 단자의 레벨과 같은 레벨의 인에이블 신호(CN0~CN3)를 출력한다. 이들 인에이블 신호(CN0~CN3)는 도 1에 도시하는 인에이블 신호(EN1)에 포함된다.
도 4에 도시하는 것과 같이, 포인터 제어 회로(43)는, 복수의 플립플롭 회로(FF 회로)(53a, 53b, 53c, ···, 53n-1, 53n)와 멀티플렉서(「MUX」라고 표기)(54)를 갖고 있다. FF 회로(53a~53n)는 예컨대 D형 플립플롭 회로이다. 복수의 FF 회로(53a~53n)는 직렬로 접속되어 있다. 즉, 첫 단의 FF 회로(53a)의 출력 단자(Q)는 2번째 단의 FF 회로(53b)의 입력 단자(데이터 단자(D))에 접속되고, 2번째 단의 FF 회로(53b)의 출력 단자(Q)는 다음 단의 FF 회로(53c)의 입력 단자(데이터 단자(D))에 접속되어 있다. 그리고, (n-1)번째 단의 FF 회로(53n-1)의 출력 단자(Q)는 다음 단의 FF 회로(53n)의 입력 단자(데이터 단자(D))에 접속되어 있다.
FF 회로(53a~53n)의 클록 단자에는 코어 클록 신호(CKc)가 공급된다. 첫 단의 FF 회로(53a)의 입력 단자(데이터 단자(D))에는 리드 제어 신호(RCNT)가 공급된다. 각 FF 회로(53a~53n)는, H 레벨의 코어 클록 신호(CKc)에 기초하여, 데이터 단자의 레벨과 같은 레벨의 신호(RCa~RCn)를 출력한다. 이들 신호(RCa~RCn)는 멀티플렉서(54)에 공급된다.
멀티플렉서(54)에는 전송 설정치(FSP)가 공급된다. 멀티플렉서(54)는, 신호(RCa~RCn) 중, 전송 설정치(FSP)에 따른 신호를 선택하여, 그 선택한 신호의 레벨과 같은 레벨의 포인터 제어 신호(PCNT)를 출력한다.
첫 단의 FF 회로(53a)에는 리드 제어 신호(RCNT)가 공급되고, 다음 단 이후의 FF 회로(53b~53n)의 데이터 단자에는 전단의 FF 회로(53a~53n-1)의 출력 신호가 공급된다. 따라서, 복수의 FF 회로(53a~53n)는 코어 클록 신호(CKc)에 따라서 리드 제어 신호(RCNT)를 전송한다. 즉, 각 FF 회로(53a~53n)는, 첫 단의 FF 회로(53a)로부터의 단수에 따라서 리드 제어 신호(RCNT)를 지연한 신호(RCa~RCn)를 출력한다. 각 FF 회로(53a~53n)에 있어서의 지연 시간은 코어 클록 신호(CKc)의 1 주기(1 사이클)분이다. 그리고, 멀티플렉서(54)는 전송 설정치(FSP)에 따라서 신호(RCa~RCn) 중 하나를 선택한다. 따라서, 이 포인터 제어 회로(43)는, 전송 설정치(FSP)에 대응하는 코어 클록 신호(CKc)의 사이클수만큼 리드 제어 신호(RCNT)를 지연함으로써 포인터 제어 신호(PCNT)를 생성한다. 이 포인터 제어 신호(PCNT)는 BL 카운터(44)에 공급된다.
BL 카운터(44)는 4진의 원-핫 스테이트 카운터(One-hot state counter)이다. BL 카운터(44)는 제2 인에이블 신호(EN2)를 생성하기 위해서 이용된다. BL 카운터(44)는 코어 클록 신호(CKc)를 카운트하여 인에이블 신호(C00~C03)를 생성한다.
BL 카운터(44)는 4개의 플립플롭 회로(FF 회로)(55a~55d)를 갖고 있다. FF 회로(55a~55d)는 예컨대 D형 플립플롭 회로이다.
FF 회로(55a)는 인에이블 단자(EN)를 가지며, 그 인에이블 단자(EN)에 상기한 포인터 제어 신호(PCNT)가 공급된다. 각 FF 회로(55a~55d)의 클록 단자에는 코어 클록 신호(CKc)가 공급된다. FF 회로(55a~55c)의 출력 단자(Q)는 FF 회로(55b~55d)의 입력 단자(데이터 단자)에 접속되고, FF 회로(55d)의 출력 단자(Q)는 FF 회로(55a)의 입력 단자(데이터 단자)에 접속되어 있다.
FF 회로(55a)는, 리셋시에 예컨대 L 레벨의 신호가 프리셋트 단자에 공급되고, H 레벨의 인에이블 신호(C00)를 출력한다. FF 회로(55b~55d)는 리셋시에 예컨대 L 레벨의 신호가 리셋 단자에 공급되고, L 레벨의 인에이블 신호(C01~C03)를 출력한다. FF 회로(55a)는, 포인터 제어 신호(PCNT)가 H 레벨일 때, H 레벨의 코어 클록 신호(CKc)에 기초하여 데이터 단자의 레벨과 같은 레벨의 인에이블 신호(C00)를 출력한다. FF 회로(55b~55d)는 인에이블 신호(C00~C02)에 기초하여 인에이블 신호(C01~C03)를 출력한다. 그리고, FF 회로(55a)는 인에이블 신호(C03)에 기초하여 인에이블 신호(C00)를 출력한다. 이들 인에이블 신호(C00~C03)는 도 1에 도시하는 인에이블 신호(EN2)에 포함된다.
도 2에 도시하는 것과 같이, 비동기 전송 회로(33)는 제1 래치 회로(33a)와 제2 래치 회로(33b)를 갖고 있다. 제1 래치 회로(33a)는 제1 래치 회로의 일례, 제2 래치 회로(33b)는 제2 래치 회로의 일례이다.
제1 래치 회로(33a)에는, 지연 스트로브 신호(DQSd), 반전 스트로브 신호(xDQSd), 인에이블 신호(CP0~CP3, CN0~CN3)가 공급된다. 제2 래치 회로(33b)에는 코어 클록 신호(CKc)와 인에이블 신호(C00~C03)가 공급된다.
도 5에 도시하는 것과 같이, 제1 래치 회로(33a)는 8개의 플립플롭 회로(FF 회로)(610~617)를 갖고 있다. FF 회로(610~617)는 예컨대 D형 플립플롭 회로이다. 각 FF 회로(610~617)의 입력 단자(데이터 단자(D))에는 수신 데이터(RDQ)가 공급된다.
FF 회로(610, 612, 614, 616)의 인에이블 단자(EN)에는 인에이블 신호(CP0~CP3)가 공급된다. FF 회로(610, 612, 614, 616)의 클록 단자에는 지연 스트로브 신호(DQSd)가 공급된다. FF 회로(610, 612, 614, 616)는 인에이블 신호(CP0~CP3)가 H 레벨일 때, H 레벨의 지연 스트로브 신호(DQSd)에 기초하여 수신 데이터(RDQ)를 래치하고, 래치한 수신 데이터(RDQ)와 같은 레벨의 신호(DD0, DD2, DD4, DD6)를 출력한다. 즉, FF 회로(610, 612, 614, 616)는, 지연 스트로브 신호(DQSd)의 상승 엣지 타이밍에 수신 데이터(RDQ)를 래치하고, 래치한 수신 데이터(RDQ)에 대응하는 레벨의 신호(DD0, DD2, DD4, DD6)를 출력한다.
FF 회로(611, 613, 615, 617)의 인에이블 단자(EN)에는 인에이블 신호(CN0~CN3)가 공급된다. FF 회로(611, 613, 615, 617)의 클록 단자에는 반전 스트로브 신호(xDQSd)가 공급된다. FF 회로(611, 613, 615, 617)는, 인에이블 신호(CN0~CN3)가 H 레벨일 때, H 레벨의 반전 스트로브 신호(xDQSd)에 기초하여 수신 데이터(RDQ)를 래치하고, 래치한 수신 데이터(RDQ)와 같은 레벨의 신호(DD1, DD3, DD5, DD7)를 출력한다. 즉, FF 회로(611, 613, 615, 617)는, 지연 스트로브 신호(DQSd)의 하강 엣지의 타이밍에 수신 데이터(RDQ)를 래치하고, 래치한 수신 데이터(RDQ)에 대응하는 레벨의 신호(DD1, DD3, DD5, DD7)를 출력한다.
제2 래치 회로(33b)는 8개의 플립플롭 회로(FF 회로)(620~627)를 갖고 있다. FF 회로(620~627)는 예컨대 D형 플립플롭 회로이다.
FF 회로(620~627)의 클록 단자에는 코어 클록 신호(CKc)가 공급된다. 각 FF 회로(620~627)의 입력 단자(데이터 단자(D))에는 신호(DD0~DD7)가 공급된다. FF 회로(620, 621)의 인에이블 단자(EN)에는 인에이블 신호(C00)가 공급된다. FF 회로(622, 623)의 인에이블 단자(EN)에는 인에이블 신호(C01)가 공급된다. FF 회로(624, 625)의 인에이블 단자(EN)에는 인에이블 신호(C02)가 공급된다. FF 회로(626, 627)의 인에이블 단자(EN)에는 인에이블 신호(C03)가 공급된다.
FF 회로(620, 621)는, 인에이블 신호(C00)가 H 레벨일 때, H 레벨의 코어 클록 신호(CKc)에 기초하여 신호(DD0, DD1)를 래치하고, 래치한 신호(DD0, DD1)와 같은 레벨의 출력 데이터(CD0, CD1)를 출력한다. 마찬가지로, FF 회로(622~627)는, 인에이블 신호(C01~C03)가 H 레벨일 때, H 레벨의 코어 클록 신호(CKc)에 기초하여 신호(DD2~DD7)를 래치하고, 래치한 신호(DD2~DD7)와 같은 레벨의 출력 데이터(CD2~CD7)를 출력한다.
이와 같이, 제1 래치 회로(33a)는, 지연 스트로브 신호(DQSd)에 의존한 타이밍에, 수신 데이터(RDQ)를 래치하여 신호(DD0~DD7)를 출력한다. 이 제1 래치 회로(33a)는 DQS 도메인에 속하는 회로이다. 그리고, 제2 래치 회로(33b)는, 코어 클록 신호(CKc)에 의존한 타이밍에, 신호(DD0~DD7)를 래치하여 출력 데이터(CD0~CD7)를 출력한다. 이 제2 래치 회로(33b)는 코어 클록 도메인에 속하는 회로이다.
도 6에 도시하는 것과 같이, 패턴 데이터 생성 회로(36)는 제1 신호 생성 회로(36a)와 제2 신호 생성 회로(36b)를 갖고 있다.
제1 신호 생성 회로(36a)는, 지연 스트로브 신호(DQSd)와 인에이블 신호(CP3)에 기초하여, 판정용 패턴 데이터(TDa)를 생성한다. 판정용 패턴 데이터(TDa)는 제1 판정용 패턴 데이터의 일례이다.
제1 신호 생성 회로(36a)는 FF 회로(71a)와 인버터 회로(72a)를 갖고 있다. FF 회로(71a)는 예컨대 인에이블 단자(EN)를 갖는 D 플립플롭 회로이다. FF 회로(71a)의 클록 단자에는 지연 스트로브 신호(DQSd)가 공급된다. FF 회로(71a)의 인에이블 단자(EN)에는 인에이블 신호(CP3)가 공급된다. FF 회로(71a)의 출력 단자는 인버터 회로(72a)의 입력 단자에 접속되고, 인버터 회로(72a)의 출력 단자는 FF 회로(71a)의 데이터 입력 단자에 접속되어 있다.
FF 회로(71a)는, 인에이블 신호(CP3)가 H 레벨인 동안에, 지연 스트로브 신호(DQSd)의 상승 엣지에 기초하여, 데이터 입력 단자의 레벨과 같은 레벨의 판정용 패턴 데이터(TDa)를 출력한다. 인버터 회로(72a)는, 판정용 패턴 데이터(TDa)를 논리 반전한 레벨의 신호를 FF 회로(71a)의 데이터 입력 단자에 공급한다. 따라서, 제1 신호 생성 회로(36a)는, 인에이블 신호(CP3)가 H 레벨인 기간에 있어서, 지연 스트로브 신호(DQSd)의 상승 엣지의 타이밍에 판정용 패턴 데이터(TDa)의 논리 레벨을 반전한다.
제2 신호 생성 회로(36b)는 반전 스트로브 신호(xDQSd)와 인에이블 신호(CN3)에 기초하여 판정용 패턴 데이터(TDb)를 생성한다. 판정용 패턴 데이터(TDb)는 제2 판정용 패턴 데이터의 일례이다.
제2 신호 생성 회로(36b)는 FF 회로(71b)와 인버터 회로(72b)를 갖고 있다. FF 회로(71b)는 예컨대 인에이블 단자(EN)를 포함하는 D 플립플롭 회로이다. FF 회로(71b)의 클록 단자에는 반전 스트로브 신호(xDQSd)가 공급된다. FF 회로(71b)의 인에이블 단자(EN)에는 인에이블 신호(CN3)가 공급된다. FF 회로(71b)의 출력 단자는 인버터 회로(72b)의 입력 단자에 접속되고, 인버터 회로(72b)의 출력 단자는 FF 회로(71b)의 데이터 입력 단자에 접속되어 있다.
FF 회로(71b)는, 인에이블 신호(CN3)가 H 레벨인 동안에, 반전 스트로브 신호(xDQSd)의 상승 엣지, 즉 지연 스트로브 신호(DQSd)의 하강 엣지에 기초하여, 데이터 입력 단자의 레벨과 같은 레벨의 판정용 패턴 데이터(TDb)를 출력한다. 인버터 회로(72b)는 판정용 패턴 데이터(TDb)를 논리 반전한 레벨의 신호를 FF 회로(71b)의 데이터 입력 단자에 공급한다. 따라서, 제2 신호 생성 회로(36b)는, 인에이블 신호(CN3)가 H 레벨인 기간에 있어서, 반전 스트로브 신호(xDQSd)의 상승 엣지(지연 스트로브 신호(DQSd)의 하강 엣지)의 타이밍에 판정용 패턴 데이터(TDb)의 논리 레벨을 반전한다.
도 2에 도시하는 것과 같이, 비동기 전송 회로(37)는 제1 래치 회로(37a)와 제2 래치 회로(37b)를 갖고 있다. 제1 래치 회로(37a)는 제3 래치 회로의 일례, 제2 래치 회로(37b)는 제4 래치 회로의 일례이다.
제1 래치 회로(37a)에는 지연 스트로브 신호(DQSd), 반전 스트로브 신호(xDQSd), 인에이블 신호(CP0~CP3, CN0~CN3)가 공급된다. 제2 래치 회로(37b)에는 코어 클록 신호(CKc)와 인에이블 신호(C00~C03)가 공급된다.
도 6에 도시하는 것과 같이, 제1 래치 회로(37a)는, 도 5에 도시하는 제1 래치 회로(33a)와 마찬가지로 FF 회로(810~817)를 포함한다. FF 회로(810~817)는 예컨대 D형 플립플롭 회로이다. FF 회로(810, 812, 814, 816)의 클록 단자에는 지연 스트로브 신호(DQSd)가 공급된다. FF 회로(810, 812, 814, 816)의 입력 단자(데이터 단자(D))에는 판정용 패턴 데이터(TDa)가 공급된다. FF 회로(810, 812, 814, 816)의 인에이블 단자(EN)에는 인에이블 신호(CP0, CP1, CP2, CP3)가 공급된다.
FF 회로(810)는, H 레벨의 인에이블 신호(CP0)에 기초하여, 지연 스트로브 신호(DQSd)의 상승 엣지의 타이밍에 판정용 패턴 데이터(TDa)를 래치하고, 그 래치한 판정용 패턴 데이터(TDa)와 같은 레벨의 전송 신호(DT0)를 출력한다. 마찬가지로, FF 회로(812, 814, 816)는, H 레벨의 인에이블 신호(CP1, CP2, CP3)에 기초하여, 지연 스트로브 신호(DQSd)의 상승 엣지의 타이밍에 판정용 패턴 데이터(TDa)를 래치하고, 그 래치한 판정용 패턴 데이터(TDa)와 같은 레벨의 전송 신호(DT2, DT4, DT6)를 출력한다. 즉, FF 회로(810, 812, 814, 816)는, 지연 스트로브 신호(DQSd)의 상승 엣지의 타이밍에 판정용 패턴 데이터(TDa)에 따른 레벨의 전송 신호(DT0, DT2, DT4, DT6)를 출력한다.
FF 회로(811, 813, 815, 817)의 클록 단자에는 반전 스트로브 신호(xDQSd)가 공급된다. FF 회로(811, 813, 815, 817)의 입력 단자(데이터 단자(D))에는 판정용 패턴 데이터(TDb)가 공급된다. FF 회로(811, 813, 815, 817)의 인에이블 단자(EN)에는 인에이블 신호(CN0, CN1, CN2, CN3)가 공급된다.
FF 회로(811)는, H 레벨의 인에이블 신호(CN0)에 기초하여, 반전 스트로브 신호(xDQSd)의 상승 엣지의 타이밍에 판정용 패턴 데이터(TDb)를 래치하고, 그 래치한 판정용 패턴 데이터(TDb)와 같은 레벨의 전송 신호(DT0)를 출력한다. 마찬가지로, FF 회로(813, 815, 817)는, H 레벨의 인에이블 신호(CN1, CN2, CN3)에 기초하여, 반전 스트로브 신호(xDQSd)의 상승 엣지의 타이밍에 판정용 패턴 데이터(TDb)를 래치하고, 그 래치한 판정용 패턴 데이터(TDb)와 같은 레벨의 전송 신호(DT3, DT5, DT7)를 출력한다. 즉, FF 회로(811, 813, 815, 817)는, 지연 스트로브 신호(DQSd)의 하강 엣지의 타이밍에 판정용 패턴 데이터(TDb)에 따른 레벨의 전송 신호(DT1, DT3, DT5, DT7)를 출력한다.
이와 같이, 제1 래치 회로(37a)는 인에이블 신호(CP0~CP3, CN0~CN3)에 기초하여 래치 기능을 유효로 한다. 그리고, 제1 래치 회로(37a)는, 지연 스트로브 신호(DQSd)의 상승 엣지와 하강 엣지에 기초하여 판정용 패턴 데이터(TDa, TDb)를 래치하여, 전송 신호(DT0~DT7)를 출력한다.
제2 래치 회로(37b)는, 도 5에 도시하는 제2 래치 회로(33b)와 마찬가지로, FF 회로(820~827)를 포함한다. FF 회로(820~827)는 예컨대 D형 플립플롭 회로이다. FF 회로(820~827)의 클록 단자에는 코어 클록 신호(CKc)가 공급된다. FF 회로(820~827)의 입력 단자(데이터 단자(D))에는 전송 신호(DT0~DT7)가 공급된다. FF 회로(820, 821)의 인에이블 단자(EN)에는 인에이블 신호(C00)가 공급된다. FF 회로(822, 823)의 인에이블 단자(EN)에는 인에이블 신호(C01)가 공급된다. FF 회로(824, 825)의 인에이블 단자(EN)에는 인에이블 신호(C02)가 공급된다. FF 회로(826, 827)의 인에이블 단자(EN)에는 인에이블 신호(C03)가 공급된다.
FF 회로(820, 821)는, H 레벨의 인에이블 신호(C00)에 기초하여, 코어 클록 신호(CKc)의 상승 엣지의 타이밍에 전송 신호(DT0, DT1)를 래치하고, 그 래치한 전송 신호(DT0, DT1)와 같은 레벨의 판정용 데이터(CT0, CT1)를 출력한다. 마찬가지로, FF 회로(822, 823)는, H 레벨의 인에이블 신호(C01)에 기초하여, 코어 클록 신호(CKc)의 상승 엣지의 타이밍에 전송 신호(DT2, DT3)를 래치하고, 그 래치한 전송 신호(DT2, DT3)와 같은 레벨의 판정용 데이터(CT2, CT3)를 출력한다. 마찬가지로, FF 회로(824, 825)는, H 레벨의 인에이블 신호(C02)에 기초하여, 코어 클록 신호(CKc)의 상승 엣지의 타이밍에 전송 신호(DT4, DT5)를 래치하고, 그 래치한 전송 신호(DT4, DT5)와 같은 레벨의 판정용 데이터(CT4, CT5)를 출력한다. 마찬가지로, FF 회로(826, 827)는, H 레벨의 인에이블 신호(C03)에 기초하여, 코어 클록 신호(CKc)의 상승 엣지의 타이밍에 전송 신호(DT6, DT7)를 래치하고, 그 래치한 전송 신호(DT6, DT7)와 같은 레벨의 판정용 데이터(CT6, CT7)를 출력한다.
이와 같이, FF 회로(820~827)는 코어 클록 신호(CKc)의 상승 엣지의 타이밍에 전송 신호(DT0~DT7)에 따른 레벨의 판정용 데이터(CT0~CT7)를 출력한다. 따라서, 제2 래치 회로(37b)는 인에이블 신호(C00~C03)에 기초하여 래치 기능을 유효로 한다. 그리고, 제2 래치 회로(37b)는, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 전송 신호(DT0~DT7)를 래치하여, 판정용 데이터(CT0~CT7)를 출력한다.
도 7에 도시하는 것과 같이, 판정 회로(38)는 기대치 데이터 생성 회로(38a)를 갖고 있다. 기대치 데이터 생성 회로(38a)는 FF 회로(91a)와 인버터 회로(91b)를 포함한다.
FF 회로(91a)의 클록 입력 단자에는 코어 클록 신호(CKc)가 공급된다. FF 회로(91a)의 인에이블 단자(EN)에는 인에이블 신호(C00)가 공급된다. FF 회로(91a)의 출력 단자(Q)는 인버터 회로(91b)의 입력 단자에 접속되고, 그 인버터 회로(91b)의 출력 단자는 FF 회로(91a)의 데이터 입력 단자에 접속되어 있다.
FF 회로(91a)는, 인에이블 신호(C00)가 H 레벨인 기간, 코어 클록 신호(CKc)의 상승 엣지의 타이밍에, 데이터 입력 단자의 레벨과 같은 레벨의 기대치 데이터(ED)를 출력한다. 인버터 회로(91b)는 기대치 데이터(ED)를 논리 반전한 레벨의 신호를 FF 회로(91a)에 공급한다.
또한, 판정 회로(38)는 배타적 논리합(ExOR) 회로(920~927)를 갖고 있다. 각 ExOR 회로(920~927)에는 기대치 데이터(ED)가 공급된다. 또한, 각 ExOR 회로(920~927)에는 각각 대응하는 판정용 데이터(CT0~CT7)가 공급된다. ExOR 회로(920)는, 기대치 데이터(ED)와 판정용 데이터(CT0)를 상호 비교하여, 비교 결과에 따른 레벨의 판정 신호(EX0)를 출력한다. ExOR 회로(920)는, 기대치 데이터(ED)의 논리치가 판정용 데이터(CT0)의 논리치와 같을 때에 L 레벨의 판정 신호(EX0)를 출력하고, 기대치 데이터(ED)의 논리치가 판정용 데이터(CT0)의 논리치와 다른 경우에 H 레벨의 판정 신호(EX0)를 출력한다. 마찬가지로, ExOR 회로(921~927)는, 기대치 데이터(ED)의 논리치가 판정용 데이터(CT1~CT7)의 논리치와 같을 때에 L 레벨의 판정 신호(EX1~EX7)를 출력한다. 한편 ExOR 회로(921~927)는, 기대치 데이터(ED)의 논리치가 판정용 데이터(CT1~CT7)의 논리치와 다른 경우에 H 레벨의 판정 신호(EX1~EX7)를 출력한다.
설정치 산출 회로(39)는, 전송 초기치(FSO)와 판정 신호(EX0~EX7)에 기초하여, 전송 설정치(FSP)와 레이턴시 설정치(FSL)를 생성한다.
한편, 판정 신호(EX0~EX7)를 출력하는 판정 회로(38)는, 도 2에 도시하는 제2 래치 회로(37b)의 래치 타이밍, 즉 인에이블 신호(C00~C03)의 생성 타이밍이, 지연 스트로브 신호(DQSd)에 대하여 적절한지 여부를 판정하는 것이다. 따라서, 설정치 산출 회로(39)는, 인에이블 신호(C00~C03) 중 하나의 인에이블 신호에 기초하여 출력되는 판정 신호를 이용하면 된다.
예컨대, 설정치 산출 회로(39)는, 판정 신호(EX0, EX1)를 이용하여, 전송 설정치(FSP)와 레이턴시 설정치(FSL)를 산출한다. 판정용 데이터(CT0)는 제1 판정용 데이터의 일례이다. 판정용 데이터(CT1)는 제2 판정용 데이터의 일례이다. 판정 신호(EX0)는 제1 판정 신호의 일례이고, 판정 신호(EX1)는 제2 판정 신호의 일례이다. 설정치 산출 회로(39)는 판정 신호(EX0, EX1)의 값에 기초하여 보정치를 산출한다. 예컨대, 판정 신호(EX0, EX1)의 값이 「00」인 경우, 보정치를 「0」으로 한다. 또한, 판정 신호(EX0, EX1)의 값이 「01」인 경우, 보정치를 「+1」로 한다. 또한, 판정 신호(EX0, EX1)의 값이 「10」인 경우, 보정치를 「-1」로 한다.
설정치 산출 회로(39)는 레지스터를 갖고 있다. 설정치 산출 회로(39)는, 처음에는 전송 초기치(FSO)를 레지스터에 저장한다. 그리고, 설정치 산출 회로(39)는, 판정 신호(EX0, EX1)로부터 도출한 보정치와 레지스터에 저장된 값에 기초하여, 전송 설정치(FSP)를 산출한다. 그리고, 설정치 산출 회로(39)는 레지스터에 저장된 값을 전송 설정치(FSP)에 의해서 갱신한다. 또한, 설정치 산출 회로(39)는, 전송 설정치(FSP)에 기초하여 레이턴시 설정치(FSL)를 산출하고, 그 산출한 레이턴시 설정치(FSL)를 레지스터에 저장한다.
설정치 산출 회로(39)는, 레지스터의 전송 설정치(FSP)와 레이턴시 설정치(FSL)를, 상기한 것과 같이 판정 신호(EX0, EX1)로부터 산출한 보정치에 의해 갱신한다. 예컨대, 설정치 산출 회로(39)는, 레지스터로부터 독출한 전송 설정치(FSP)에 보정치를 가산하고, 그 가산 결과를 새로운 전송 설정치(FSP)로서 레지스터에 저장한다. 그리고, 설정치 산출 회로(39)는 그 새로운 전송 설정치(FSP)를 출력한다. 마찬가지로, 설정치 산출 회로(39)는, 레지스터로부터 독출한 레이턴시 설정치(FSL)에서 보정치를 감산하고, 그 감산 결과를 새로운 레이턴시 설정치(FSL)로서 레지스터에 저장한다. 그리고, 설정치 산출 회로(39)는 그 새로운 레이턴시 설정치(FSL)를 출력한다.
레이턴시 보상 회로(34)는 복수의 FF 회로(101a~101m)와 멀티플렉서(「MUX」라고 표기)(102)를 갖고 있다. 복수의 FF 회로(101a~101m)는 직렬로 접속되어 있다. 각 FF 회로(101a~101m)의 클록 단자에는 코어 클록 신호(CKc)가 공급된다. 첫 단의 FF 회로(101a)에는 비동기 전송 회로(33)로부터의 출력 데이터(CD)가 공급된다.
멀티플렉서(102)에는 각 FF 회로(101a~101m)의 출력 신호(CDa~CDm)가 공급된다. 멀티플렉서(102)는, 출력 신호(CDa~CDm) 중, 레이턴시 설정치(FSL)에 따른 하나의 출력 신호와 같은 리드 데이터(RD)를 출력한다.
도 8은 설정치 산출 회로(39)에 있어서의 처리를 도시한다.
우선, 단계 111에서, 설정치 산출 회로(39)는 디폴트치를 설정한다. 설정치 산출 회로(39)는, 도 1에 도시하는 메모리 컨트롤러(21)로부터 공급되는 전송 초기치(FSO)를 전송 설정치(FSP)의 디폴트치로서 설정한다. 또한, 설정치 산출 회로(39)는, 전송 초기치(FSO)에 대응하는 레이턴시 초기치를 산출하여, 그 레이턴시 초기치를 레이턴시 설정치(FSL)의 디폴트치로서 설정한다.
그리고, 설정치 산출 회로(39)는, 도 7에 도시하는 판정 회로(38)로부터 출력되는 각 판정 신호(EX0, EX1)가 「OK 판정」을 나타내는지 「NG 판정」을 나타내는지를 판정한다. 설정치 산출 회로(39)는, 판정 신호(EX0, EX1)의 각 값이 「0」인 경우에, 각 판정 신호(EX0, EX1)가 「OK 판정」을 나타내고, 판정 신호(EX0, EX1)의 각 값이 「1」인 경우에, 각 판정 신호(EX0, EX1)가 「NG 판정」을 나타낸다고 판정한다.
우선, 단계 112에서, 설정치 산출 회로(39)는, 판정 신호(EX0)가 「OK 판정」을 나타내면서 또한 판정 신호(EX1)가 「NG 판정」을 나타내는 경우(판정: YES), 단계 113으로 이행한다. 그 단계 113으로의 이행은 「설정치(클록 환승 타이밍)에 대하여 DQS가 늦는」 경우에 행해진다. 이 단계 113에서, 설정치 산출 회로(39)는, 전송 설정치(FSP)를 「+1」하고, 레이턴시 설정치(FSL)를 「-1」한다. 그리고, 설정치 산출 회로(39)는 처리를 단계 112로 이행한다.
이어서, 단계 114에서, 설정치 산출 회로(39)는, 판정 신호(EX0)가 「NG 판정」을 나타내면서 또한 판정 신호(EX1)가 「OK 판정」을 나타내는 경우(판정: YES), 단계 115로 이행한다. 그 단계 115로의 이행은 「설정치에 대하여 DQS가 빠른」 경우에 행해진다. 이 단계 115에서, 설정치 산출 회로(39)는, 전송 설정치(FSP)를 「-1」하고, 레이턴시 설정치(FSL)를 「+1」한다. 그리고, 설정치 산출 회로(39)는 처리를 단계 112로 이행한다.
이어서, 단계 116에서, 설정치 산출 회로(39)는, 판정 신호(EX0)가 「OK 판정」을 나타내면서 또한 판정 신호(EX1)가 「OK 판정」을 나타내는 경우(판정: YES), 「설정치에 대하여 DQS가 적절하다」고 판정한다. 이 때문에, 설정치 산출 회로(39)는, 전송 설정치(FSP)와 레이턴시 설정치(FSL)를 그대로로 하고, 처리를 단계 112로 이행한다.
한편, 단계 116에서 판정이 「NO」, 즉 판정 신호(EX0, EX1)가 함께 「NG 판정」을 나타내는 경우, 설정치 산출 회로(39)는 단계 117로 이행한다. 그 단계 117에서, 설정치 산출 회로(39)는 에러 처리를 하고, 단계 111로 이행한다. 예컨대, 설정치 산출 회로(39)는, 에러 처리에 있어서, 도 1에 도시하는 메모리 컨트롤러(21)에 에러 정보를 통지한다. 메모리 컨트롤러(21)는, 그 에러 정보에 기초하여 트레이닝 처리를 행하고, 그 처리 결과에 기초하여 전송 설정치(FSP)를 재차 설정한다.
이어서, 상기한 수신 회로(24)의 동작을 설명한다.
도 9에 도시하는 것과 같이, 데이터(DQ)가 도 1에 도시하는 메모리 장치(12)로부터 출력된다. 이 데이터(DQ)는 버스트 길이의 데이터를 포함한다. 도 9에서는, 데이터(DQ)에 포함되는 각 데이터를 [A]~[H]로서 나타낸다. 데이터(DQ)에 관해서, 개개의 데이터를 나타내는 경우에, [A]~[H]를 이용하는 경우가 있다.
도 1에 도시하는 수신 회로(24)는, 메모리 장치(12)로부터 수신한 데이터 스트로브 신호(DQS)(수신 스트로브 신호(RDQS))를 지연시켜 지연 스트로브 신호(DQSd)를 생성한다.
도 3에 도시하는 BL 카운터(41)는, 지연 스트로브 신호(DQSd)의 상승 엣지를 카운트하여 인에이블 신호(CP0~CP3)를 생성한다. 도 5에 도시하는 비동기 전송 회로(33)에 있어서, FF 회로(610)는, H 레벨의 인에이블 신호(CP0)를 받아, 지연 스트로브 신호(DQSd)의 상승 엣지에 기초하여 데이터[A]를 래치한다. 마찬가지로, FF 회로(612, 614, 616)는, H 레벨의 인에이블 신호(CP1, CP2, CP3)를 받아, 지연 스트로브 신호(DQSd)의 상승 엣지에 기초하여 데이터 [C], [E], [G]를 래치한다. 각 FF 회로(610, 612, 614, 616)는, 이들 데이터 [A], [C], [E], [G]를, 다음 데이터(DQ)를 수신할 때에 생성되는 지연 스트로브 신호(DQSd)의 상승 엣지까지 유지한다.
마찬가지로, 도 3에 도시하는 BL 카운터(42)는, 지연 스트로브 신호(DQSd)의 하강 엣지(반전 스트로브 신호(xDQSd)의 상승 엣지)를 카운트하여 인에이블 신호(CN0~CN3)를 생성한다. 도 5에 도시하는 비동기 전송 회로(33)에 있어서, FF 회로(611)는, H 레벨의 인에이블 신호(CN0)를 받아, 지연 스트로브 신호(DQSd)의 하강 엣지(반전 스트로브 신호(xDQSd)의 상승 엣지)에 기초하여 데이터 [B]를 래치한다. 마찬가지로, FF 회로(613, 615, 617)는, H 레벨의 인에이블 신호(CN1, CN2, CN3)를 받아, 지연 스트로브 신호(DQSd)의 하강 엣지(반전 스트로브 신호(xDQSd)의 상승 엣지)에 기초하여 데이터 [D], [F], [H]를 래치한다. 각 FF 회로(611, 613, 615, 617)는, 이들 데이터 [B], [D], [F], [H]를, 다음 데이터(DQ)를 수신할 때에 생성되는 지연 스트로브 신호(DQSd)의 하강 엣지까지 유지한다.
도 9에 도시하는 것과 같이, 데이터(DQ)에 있어서, 각 데이터 [A]~[H]의 폭은, 시간적으로 지연 스트로브 신호(DQSd)의 반주기분, 즉 1/2 사이클이다. 도 2에 도시하는 비동기 전송 회로(33)(제1 래치 회로(33a))는, 각 데이터 [A]~[H]의 폭을, 시간적으로 4 사이클 폭 이상으로 확장한다.
도 10에 도시하는 것과 같이, 데이터 [A]는, 지연 스트로브 신호(DQSd)의 상승 엣지에 기초하여 래치된다. 데이터 [B]는, 지연 스트로브 신호(DQSd)의 하강 엣지에 기초하여 래치된다. 한편, 도 10에서는, 데이터 [A], [B]를 각각 4 사이클 폭으로 나타내고 있다.
상기한 것과 같이, 도 2에 도시하는 비동기 전송 회로(33)에 있어서, 제1 래치 회로(33a)는, 다음 데이터(DQ)에 대응하는 지연 스트로브 신호(DQSd)의 상승 엣지까지, 래치한 데이터를 유지한다. 도 1에 도시하는 시스템(10)에서는, 시스템 장치(11)로부터 메모리 장치(12)에 대하여 연속적인 리드를 하는 것이 가능하다. 이러한 연속적인 리드 동작에서는, 메모리 장치(12)는 데이터(DQ) 및 데이터 스트로브 신호(DQS)를 연속적으로 출력한다. 예컨대, 버스트 길이를 「8」로 설정한 경우, 도 2에 도시하는 제1 래치 회로(33a)는 지연 스트로브 신호(DQSd)의 4 사이클 동안 데이터를 유지한다. 그리고, 도 2에 도시하는 비동기 전송 회로(33)(제2 래치 회로(33b))는 코어 클록 신호(CKc)에 기초하여 데이터 [A], [B]를 래치한다. 이 때문에, 비동기 전송 회로(33)는, 지연 스트로브 신호(DQSd)의 4 사이클 동안에 제1 래치 회로(33a)의 출력 데이터(DD)를 제2 래치 회로(33b)에서 래치할 필요가 있다. 즉, 지연 스트로브 신호(DQSd)의 4 사이클 동안에, 출력 데이터(DD)를 제1 래치 회로(33a)에서 제2 래치 회로(33b)로 전송할 필요가 있다.
데이터 [A]와 데이터 [B]는 지연 스트로브 신호(DQSd)의 반주기분만큼 틀어져 있다. 따라서, 양 데이터 [A], [B]는 도 10에 도시하는 「window」의 범위에서 시간적으로 동시에 전송하는 것이 가능하게 된다. 이 윈도우의 시간적인 폭은 지연 스트로브 신호(DQSd)의 3.5 사이클이다. 따라서, 비동기 전송 회로(33)(제2 래치 회로(33b))는, 코어 클록 신호(CKc)에 따라서, 도 10에 화살표로 나타내는 3개의 타이밍 중 어느 하나로 데이터 [A], [B]를 받아들일 수 있다. 도 1에 도시하는 메모리 컨트롤러(21)는, 트레이닝 처리에 의해, 이들 타이밍 중 하나를 전송 초기치(FSO)로서 설정한다.
예컨대, 도 10에 도시하는 것과 같이, 전송 초기치(FSO)가 「Pa」로 설정된다. 이 「Pa」에 의해, 리드 제어 신호(RCNT)가 도 4에 도시하는 포인터 제어 회로(43)에서 지연되어 포인터 제어 신호(PCNT)(도 10에서는 PCNTa)로서 BL 카운터(44)에 공급된다. BL 카운터(44)는 코어 클록 신호(CKc)를 카운트하여 인에이블 신호(C00)를 생성한다. 도 6에 도시하는 비동기 전송 회로(33)의 제2 래치 회로(33b)는, 인에이블 신호(C00)에 기초하여 유효가 되고, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 데이터 [A], [B]를 래치한다.
도 10에 도시하는 것과 같이, 전송 초기치(FSO)가 「Pb」로 설정된 경우, 포인터 제어 신호(PCNTb)로부터 생성된 인에이블 신호(C00)와 코어 클록 신호(CKc)에 기초하여 데이터 [A], [B]가 래치된다. 전송 초기치(FSO)가 「Pc」로 설정된 경우, 포인터 제어 신호(PCNTc)로부터 생성된 인에이블 신호(C00)와 코어 클록 신호(CKc)에 기초하여 데이터 [A], [B]가 래치된다.
여기서, 비교예의 시스템에 관해서 설명한다.
한편, 비교예에 관해서, 도 1에 도시하는 시스템(10)과 동일한 구성 부재에는 동일한 부호를 이용하고, 그 부재의 설명의 일부 또는 전부를 생략한다.
도 15에 도시하는 것과 같이, 비교예의 시스템 장치(200)는 메모리 컨트롤러(21)와 인터페이스 회로(201)를 갖고 있다. 인터페이스 회로(201)는 송신 회로(23), 수신 회로(202) 등을 포함한다.
수신 회로(202)의 제어 신호 생성 회로(35)는, 도 1에 도시하는 제어 신호 생성 회로(35)와 마찬가지로, 지연 스트로브 신호(DQSd)를 카운트하여 인에이블 신호(EN1)를 생성한다. 또한, 제어 신호 생성 회로(35)는, 메모리 컨트롤러(21)로부터의 전송 초기치(FSO)에 기초하여, 코어 클록 신호(CKc)를 카운트하여 인에이블 신호(EN2)를 생성한다.
수신 회로(202)의 비동기 전송 회로(33)는, 인에이블 신호(EN1)에 기초하여 입력 기능을 유효로 하고, 지연 스트로브 신호(DQSd)에 기초하여 수신 데이터(RDQ)를 래치한다. 그리고, 비동기 전송 회로(33)는, 인에이블 신호(EN2)에 기초하여 출력 기능을 유효로 하고, 래치한 데이터에 따른 리드 데이터(RD)를 출력한다.
예컨대, 메모리 장치(12)는 복수의 메모리 칩을 가지며, 각 데이터 [A]~[H](도 9 참조)는 각각 복수 비트(예컨대, 16 비트)의 데이터이다. 이러한 데이터의 경우, 각 비트의 데이터(DQ)와 데이터 스트로브 신호(DQS)의 수신 타이밍, 즉 라운드 트립 타임(RTT)에 변동이 생긴다.
예컨대, 도 16에 도시하는 것과 같이, 라운드 트립 타임(RTT)이 가장 짧은 (FAST) 경우에 출력된 지연 스트로브 신호(DQSd) 및 데이터(DQ0)에 기초하여 데이터 [A0], [B0]가 래치되는 경우가 있다. 또한, 라운드 트립 타임(RTT)이 가장 긴 (SLOW) 경우에 출력된 지연 스트로브 신호(DQSd) 및 데이터(DQ1)에 기초하여 데이터 [A1], [B1]가 래치되는 경우가 있다.
이러한 라운드 트립 타임(RTT)의 변동은, 시스템 장치(200)나 메모리 장치(12)의 제조 프로세스에 기인한 각종 변동(예컨대, 칩 내의 배선의 저항치의 변동)에 의해 생긴다. 이 RTT의 변동에 의해, 데이터 [A0], [B0], [A1], [B1]를 동시에 받아들일 수 있는 윈도우(유효 윈도우)의 폭이, 이상적인 윈도우 폭(수신하는 모든 비트의 라운드 트립 타임이 동일한 경우의 윈도우 폭)보다도 좁게 된다.
또한, 도 17에 도시하는 것과 같이, 시스템 장치(200)와 메모리 장치(12) 사이에 있어서의 데이터(DQ)의 전송 레이트가 높아지면, 즉 데이터 스트로브 신호(DQS)의 1 사이클이 짧아지면, 윈도우 폭이 좁아진다. 그리고, 윈도우 폭이 코어 클록 신호(CKc)의 1 사이클보다 짧아지면, VT 드리프트(전원 전압 등의 전압 변동이나 동작 환경 온도 등의 온도 변화)에 기인하여, 코어 클록 신호(CKc)에 의해 설정한 취득 타이밍에 대한 윈도우의 위치가 틀어진 경우에, 리드 데이터(RD)에 오류가 생긴다.
도 1에 도시하는 시스템 장치(11)(수신 회로(24))는 상기와 같은 리드 데이터(RD)에 있어서의 오류를 저감한다. 그 동작에 관해서 설명한다.
도 6에 도시하는 것과 같이, 패턴 데이터 생성 회로(36)의 제1 신호 생성 회로(36a)에 포함되는 FF 회로(71a)는, 인에이블 신호(CP3)에 기초하여 기능을 유효로 하고, 지연 스트로브 신호(DQSd)의 상승 엣지에 기초하여 입력 단자(데이터 단자(D))의 신호와 같은 레벨의 판정용 패턴 데이터(TDa)를 출력한다. 인버터 회로(72a)는 판정용 패턴 데이터(TDa)를 논리 반전한 신호를 출력한다. 따라서, 도 11에 도시한 것과 같이, 지연 스트로브 신호(DQSd)가 연속되는 경우, 판정용 패턴 데이터(TDa)는 지연 스트로브 신호(DQSd)의 4 사이클마다 「0」에서 「1」로 혹은 「1」에서 「0」으로 변화된다. 즉, 판정용 패턴 데이터(TDa)는 4 사이클마다 「0」과 「1」을 교대로 반복한다.
마찬가지로, 도 6에 도시하는 제2 신호 생성 회로(36b)에 포함되는 FF 회로(71b)는, 인에이블 신호(CN3)에 기초하여 기능을 유효로 하고, 반전 스트로브 신호(xDQSd)의 상승 엣지, 즉 지연 스트로브 신호(DQSd)의 하강 엣지에 기초하여, 입력 단자(데이터 단자(D))의 신호와 같은 레벨의 판정용 패턴 데이터(TDb)를 출력한다. 인버터 회로(72b)는 판정용 패턴 데이터(TDb)를 논리 반전한 신호를 출력한다. 따라서, 도 11에 도시하는 것과 같이, 판정용 패턴 데이터(TDb)는 지연 스트로브 신호(DQSd)의 4 사이클마다 「0」에서 「1」로 혹은 「1」에서 「0」으로 변화된다. 즉, 판정용 패턴 데이터(TDb)는 4 사이클마다 「0」과 「1」을 교대로 반복한다.
도 6에 도시하는 제1 래치 회로(37a)의 FF 회로(810)는, 인에이블 신호(CP0)에 기초하여 기능을 유효로 하고, 지연 스트로브 신호(DQSd)의 상승 엣지에 기초하여 판정용 패턴 데이터(TDa)를 래치한다. 그리고, FF 회로(810)는, 그 래치한 데이터(TDa)와 같은 레벨의 전송 신호(DT0)를 출력한다. 또한, FF 회로(811)는, 인에이블 신호(CN0)에 기초하여 기능을 유효로 하고, 반전 스트로브 신호(xDQSd)의 상승 엣지(지연 스트로브 신호(DQSd)의 하강 엣지)에 기초하여 판정용 패턴 데이터(TDb)를 래치한다. 그리고, FF 회로(811)는, 래치한 데이터(TDb)와 같은 레벨의 전송 신호(DT1)를 출력한다.
따라서, 도 11에 도시하는 것과 같이, 각 전송 신호(DT0, DT1)는, 판정용 패턴 데이터(TDa, TDb)와 마찬가지로, 4 사이클마다 「0」과 「1」을 교대로 반복한다. 그리고, 각 전송 신호(DT0, DT1)의 위상, 즉 각 전송 신호(DT0, DT1)의 값이 변화되는 타이밍은 지연 스트로브 신호(DQSd)의 반주기분만큼 틀어져 있다.
도 6에 도시하는 제2 래치 회로(37b)의 FF 회로(820)는, 인에이블 신호(C00)에 기초하여 기능을 유효로 하고, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 전송 신호(DT0)를 래치한다. 그리고, FF 회로(820)는, 그 래치한 전송 신호(DT0)와 같은 레벨의 판정용 데이터(CT0)를 출력한다. 마찬가지로, FF 회로(821)는, 인에이블 신호(C00)에 기초하여 기능을 유효로 하고, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 전송 신호(DT1)를 래치한다. 그리고, FF 회로(821)는, 그 래치한 전송 신호(DT1)와 같은 레벨의 판정용 데이터(CT1)를 출력한다.
따라서, 도 11에 도시하는 것과 같이, 코어 클록 신호(CKc)에 대하여 화살표로 나타내는 타이밍에 인에이블 신호(C00)가 설정되어 있는 경우, 판정용 데이터(CT0, CT1)는, 상호 동시에, 코어 클록 신호(CKc)의 4 사이클마다 「0」과 「1」을 교대로 반복한다.
도 7에 도시하는 판정 회로(38)의 FF 회로(91a)는, 인에이블 신호(C00)에 기초하여 기능을 유효로 하고, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 입력 단자(데이터 단자(D))의 신호와 같은 레벨의 기대치 데이터(ED)를 출력한다. 인버터 회로(91b)는 기대치 데이터(ED)를 논리 반전한 신호를 출력한다. 따라서, 도 11에 도시한 것과 같이, 기대치 데이터(ED)는, 코어 클록 신호(CKc)의 4 사이클마다 「0」에서 「1」로 혹은 「1」에서 「0」로 변화된다. 즉, 기대치 데이터(ED)는 4 사이클마다 「0」과 「1」을 교대로 반복한다.
그리고, 판정 회로(38)의 배타적 논리합 회로(920)는, 기대치 데이터(ED)와 판정용 데이터(CT0)를 비교(배타적 논리합 연산)하여 판정 신호(EX0)를 출력한다. 또한, 배타적 논리합 회로(921)는, 기대치 데이터(ED)와 판정용 데이터(CT1)를 비교(배타적 논리합 연산)하여 판정 신호(EX1)를 출력한다. 따라서, 도 11에 도시하는 것과 같이, 전송 설정치(FSP)가 화살표로 나타내는 타이밍인 경우, 판정 신호(EX0, EX1)가 함께「0」(판정 OK)으로 된다. 이 「판정 OK」은, 전송 설정치(FSP)의 타이밍이 지연 스트로브 신호(DQSd)에 기초한 윈도우에 맞음을 나타낸다.
이 경우, 도 7에 도시하는 설정치 산출 회로(39)는, 판정 신호(EX0, EX1)에 기초하여, 도 8에 도시하는 단계 116에서 「YES」라고 판정하여, 전송 설정치(FSP)와 레이턴시 설정치(FSL)를 유지한다.
도 12에 도시하는 것과 같이, VT 드리프트에 기인하여 지연 스트로브 신호(DQSd)가 늦어진 경우, 전송 신호(DT0)를 받아들였을 때의 판정용 데이터(CT0)의 값은 「1」이다. 그리고, 기대치 데이터(ED)의 값은 「1」이기 때문에, 판정 신호(EX0)의 값은 「0」이 된다. 이 「0」의 판정 신호(EX0)는 「판정 OK」를 나타낸다. 한편, 전송 신호(DT1)를 화살표로 나타내는 타이밍에 받아들였을 때의 판정용 데이터(CT1)의 값이 「0」이 된다. 기대치 데이터(ED)의 값은 「1」이기 때문에, 판정 신호(EX1)의 값은 「1」이 된다. 이 「1」의 판정 신호(EX1)는 「판정 NG」를 나타낸다.
이 경우, 도 7에 도시하는 설정치 산출 회로(39)는, 판정 신호(EX0, EX1)에 기초하여, 도 8에 도시하는 단계 112에서 「YES」라고 판정하여, 전송 설정치(FSP)를 「+1」하고, 레이턴시 설정치(FSL)를 「-1」한다. 그러면, 도 12에서, 화살표보다도 1 클록분 우측의 상승 엣지가 전송 설정치(FSP)로서 설정된다. 즉, 수신 회로(24)는, 지연 스트로브 신호(DQSd)의 지연에 따라서 비동기 전송 회로(33)의 제2 래치 회로(33b)에 있어서의 래치 타이밍, 즉 전송 타이밍을 늦게 한다. 그 결과, 판정 신호(EX0, EX1)는 함께 「1」이 된다. 이와 같이, 설정치 산출 회로(39)는, 지연 스트로브 신호(DQSd)의 지연에 따라서 전송 설정치(FSP)를 변경한다. 즉, VT 드리프트에 대하여 전송 설정치(FSP)를 변경함으로써, 코어 클록 신호(CKc)에 기초한 취득 타이밍을 변경한다. 이에 따라, 도 1에 도시하는 비동기 전송 회로(33)는, 지연 스트로브 신호(DQSd)에 의해서 설정된 윈도우에 대하여, 전송 설정치(FSP)의 타이밍에 데이터를 래치하여, 오류가 없는 출력 데이터(CD)를 출력한다.
도 7에 도시하는 레이턴시 보상 회로(34)는, 레이턴시 설정치(FSL)(「-1」을 더하여 변경된 값)에 기초하여 리드 데이터(RD)를 출력한다. 이 리드 데이터(RD)의 출력 타이밍은, 레이턴시 설정치(FSL)을 변경하기 전과 비교하여, 코어 클록 신호(CKc)의 1 사이클분 빨라진다. 따라서, 수신 회로(24)는, 비동기 전송 회로(33)에 있어서의 전송 타이밍을 1 사이클분 늦게 하고, 레이턴시 보상 회로(34)에 있어서의 지연 시간을 1 사이클분 짧게 한다. 이에 따라, 리드 데이터(RD)의 출력 타이밍은, 전송 설정치(FSP)를 변경하기 전과 같아진다. 이와 같이, 수신 회로(24)는, 전송 타이밍에 대한 레이턴시를 보상하여, 메모리 컨트롤러(21)에 대한 리드 데이터(RD)의 레이턴시를 일정하게 유지한다.
도 13에 도시하는 것과 같이, VT 드리프트에 기인하여 지연 스트로브 신호(DQSd)가 빨라진 경우, 전송 신호(DT0)를 화살표로 나타내는 타이밍에 받아들였을 때의 판정용 데이터(CT0)의 값이 「0」이 된다. 이 경우, 기대치 데이터(ED)의 값은 「1」이기 때문에, 판정 신호(EX0)의 값은 「1」이 된다. 이 「1」의 판정 신호(EX0)는 「판정 NG」를 나타낸다. 한편, 전송 신호(DT1)를 받아들였을 때의 판정용 데이터(CT1)의 값이 「1」이다. 기대치 데이터(ED)의 값은 「1」이기 때문에, 판정 신호(EX1)의 값은 「0」이 된다. 이 「0」의 판정 신호(EX1)는 「판정 OK」를 나타낸다.
이 경우, 도 7에 도시하는 설정치 산출 회로(39)는, 판정 신호(EX0, EX1)에 기초하여, 도 8에 도시하는 단계 114에서 「YES」라고 판정하여, 전송 설정치(FSP)를 「-1」하고, 레이턴시 설정치(FSL)를 「+1」한다. 그러면, 도 13에서, 화살표보다도 1 클록분 좌측의 상승 엣지가 전송 설정치(FSP)로서 설정된다. 즉, 수신 회로(24)는, 지연 스트로브 신호(DQSd)의 진행에 따라서 비동기 전송 회로(33)의 제2 래치 회로(33b)에 있어서의 래치 타이밍, 즉 전송 타이밍을 빠르게 한다. 그 결과, 판정 신호(EX0, EX1)는 함께 「1」이 된다. 이와 같이, 설정치 산출 회로(39)는, 지연 스트로브 신호(DQSd)의 진행에 따라서, 전송 설정치(FSP)를 변경한다. 즉, VT 드리프트에 대하여 전송 설정치(FSP)를 변경함으로써, 코어 클록 신호(CKc)에 기초한 취득 타이밍을 변경한다. 이에 따라, 도 1에 도시하는 비동기 전송 회로(33)에서는, 지연 스트로브 신호(DQSd)에 의해서 설정된 윈도우에 대하여, 전송 설정치(FSP)의 타이밍에 데이터를 래치하여, 오류가 없는 출력 데이터(CD)를 출력한다.
도 7에 도시하는 레이턴시 보상 회로(34)는, 레이턴시 설정치(FSL)(「+1」을 더하여 변경된 값)에 기초하여 리드 데이터(RD)를 출력한다. 이 리드 데이터(RD)의 출력 타이밍은, 레이턴시 설정치(FSL)를 변경하기 전과 비교하여, 코어 클록 신호(CKc)의 1 사이클분 늦어진다. 따라서, 수신 회로(24)는, 비동기 전송 회로(33)에 있어서의 전송 타이밍을 1 사이클분 빠르게 하고, 레이턴시 보상 회로(34)에 있어서의 지연 시간을 1 사이클분 길게 한다. 이에 따라, 리드 데이터(RD)의 출력 타이밍은 전송 설정치(FSP)를 변경하기 전과 같아진다. 이와 같이, 수신 회로(24)는, 전송 타이밍에 대한 레이턴시를 보상하여, 메모리 컨트롤러(21)에 대한 리드 데이터(RD)의 레이턴시를 일정하게 유지한다.
도 14에 도시하는 것과 같이, 라운드 트립 타임(RTT)이 가장 짧은 (FAST) 경우에 출력된 지연 스트로브 신호(DQSd) 및 데이터(DQ0)에 기초하여 데이터 [A0], [B0]가 래치되는 경우가 있다. 또한, 라운드 트립 타임(RTT)이 가장 긴 (SLOW) 경우에 출력된 지연 스트로브 신호(DQSd) 및 데이터(DQ1)에 기초하여 데이터 [A1], [B1]가 래치되는 경우가 있다.
도 1에 도시하는 메모리 컨트롤러(21)는, 데이터 [A0], [B0]에 대응하는 윈도우(W0)와 데이터 [A1], [B1]에 대응하는 윈도우(W1)에 기초하여, 전송 설정치(FSP)를 설정한다. 이 경우, 데이터(DQ0)에 관한 판정 처리와, 데이터(DQ1)에 관한 판정 처리에서, 판정 회로(38)는 각각 「판정 OK」의 판정 신호(EX0, EX1)를 출력한다.
도 14에서, 1점쇄선의 하측에 나타내는 것과 같이, VT 드리프트에 의해서, 윈도우(W0, W1)에 대하여 시간적으로 Δt만큼 윈도우(W0a, W1a)가 틀어진다. 이 경우, 상기한 전송 설정치(FSP)에 의한 취득 타이밍(TP0)은, 윈도우(W1a)의 범위 내이기 때문에, 이 타이밍(TP0)에 데이터 [A1], [B1]를 받아들일 수 있다.
한편, 타이밍(TP0)은 윈도우(W0a)의 범위에서 틀어진다. 따라서, 이 타이밍(TP0)에 연속적으로 데이터를 독출하는 경우, 리드 데이터에 오류를 생기게 한다.
본 실시형태에서는, 데이터(DQ0)에 관한 판정 처리에서, 판정 회로(38)는 「판정 NG」의 판정 신호(EX0)를 출력한다. 그리고, 도 7에 도시하는 설정치 산출 회로(39)는, 판정 신호(EX0)에 기초하여 전송 설정치(FSP)를 「-1」하여 새로운 전송 설정치(FSP)를 산출한다. 이 새로운 전송 설정치(FSP)에 기초하여, 도 14에 도시하는 타이밍(TP1)을 설정한다. 이 결과, 타이밍(TP1)은 윈도우(W0a)의 범위 내로 조정된다. 이 때문에, 이 타이밍(TP1)에 데이터 [A0], [B0]를 받아들일 수 있다.
이와 같이, 본 실시형태의 수신 회로(24)는, 타이밍(TP1)에 데이터 [A0], [B0]를 받아들이고, 타이밍(TP0)에 데이터 [A1], [B1]를 받아들인다. 따라서, 수신 회로(24)는, 데이터(DQ0), DQ1)에 관해서, 데이터를 받아들이는 윈도우의 실질적인 폭을 확대한다. 이와 같이, 윈도우 폭의 확대에 의해, 지연 스트로브 신호(DQSd)에서 코어 클록 신호(CKc)로 안정된 도메인 체인지를 하여, 리드 데이터(RD)에 있어서의 오류를 저감한다.
이상 기술한 것과 같이, 본 실시형태에 따르면, 이하의 효과를 발휘한다.
(1-1) 수신 회로(24)의 제어 신호 생성 회로(35)는, 지연 스트로브 신호(DQSd)(스트로브 신호 DQS)에 기초하여 인에이블 신호(EN1)를 생성하고, 전송 설정치(FSP), 리드 제어 신호(RCNT), 코어 클록 신호(CKc)에 기초하여 인에이블 신호(EN2)를 생성한다. 비동기 전송 회로(33)는, 인에이블 신호(EN1)와 지연 스트로브 신호(DQSd)에 기초하여 수신 데이터(RDQ)를 래치하고, 인에이블 신호(EN2)와 코어 클록 신호(CKc)에 기초하여 출력 데이터(CD)를 출력한다. 패턴 데이터 생성 회로(PG)(36)는, 인에이블 신호(EN1)로부터 판정용 패턴 데이터(TD)를 생성하여, 인에이블 신호(EN1)의 변화에 따라서 판정용 패턴 데이터(TD)의 논리를 반전한다. 비동기 전송 회로(37)는, 인에이블 신호(EN1)와 지연 스트로브 신호(DQSd)에 기초하여 판정용 패턴 데이터(TD)를 래치하고, 인에이블 신호(EN2)와 코어 클록 신호(CKc)에 기초하여 판정용 데이터(CT)를 출력한다. 판정 회로(38)는, 판정용 데이터(CT)에 기초하여 포인터 제어 신호(PCNT)의 생성 타이밍을 판정하여, 판정 신호(EX)를 생성한다. 그리고, 설정치 산출 회로(39)는 판정 회로(38)의 판정 신호(EX)에 기초하여 전송 설정치(FSP)를 산출한다. 이 전송 설정치(FSP)와 리드 제어 신호(RCNT)와 코어 클록 신호(CKc)에 기초하여 포인터 제어 신호(PCNT)가 생성(갱신)되고, 그 포인터 제어 신호(PCNT)와 코어 클록 신호(CKc)에 기초하여 인에이블 신호(EN2)가 생성(갱신)된다.
비동기 전송 회로(37)는, 판정용 패턴 데이터(TD)를 인에이블 신호(EN1)와 지연 스트로브 신호(DQSd)에 기초하여 래치한다. 그 래치 타이밍은, 비동기 전송 회로(33)에 있어서의 수신 데이터(RDQ)의 수신 타이밍, 즉, 메모리 장치(12)를 통해 데이터를 수신하는 라운드 트립 타임(RTT)에 대응한다. 비동기 전송 회로(37)는, 래치한 데이터(TD)에 대응하는 전송 신호(DT)를, 인에이블 신호(EN2)와 코어 클록 신호(CKc)에 기초하여 래치하고, 그 래치한 전송 신호(DT)에 대응하는 판정용 데이터(CT)를 출력한다. 이 판정용 데이터(CT)의 값은, 인에이블 신호(EN2)와 코어 클록 신호(CKc)에 기초하여 전송 신호(DT)를 래치하는 타이밍, 즉 지연 스트로브 신호(DQSd)에서 코어 클록 신호(CKc)로 도메인 체인지하는 타이밍에 따라서 변화된다. 따라서, 판정용 데이터(CT)의 판정 결과에 기초하여 전송 설정치(FSP)를 산출함으로써, 전송 설정치(FSP)에 의해 도메인 체인지의 타이밍을 조정할 수 있다. 이 결과, 비동기 전송 회로(33)의 출력 데이터(CD)에 있어서의 오류를 저감할 수 있다.
(1-2) 설정치 산출 회로(39)는 전송 설정치(FSP)에 기초하여 레이턴시 설정치(FSL)를 산출한다. 예컨대, 설정치 산출 회로(39)는, 설정치(클록 환승 타이밍)에 대하여 DQS가 늦다고 판정한 경우, 전송 설정치(FSP)를 「+1」하고, 그 전송 설정치(FSP)에 적합하도록 레이턴시 설정치(FSL)를 「-1」한다. 이 전송 설정치(FSP)의 변경에 의해, 비동기 전송 회로(33)로부터 출력되는 판정용 데이터(CT)의 타이밍이 지연된다. 그 만큼, 레이턴시 설정치(FSL)에 의해 레이턴시 보상 회로(34)의 지연 시간을 짧게 함으로써, 리드 데이터(RD)의 출력 타이밍, 즉, 메모리 컨트롤러(21)에 대한 리드 데이터(RD)의 출력 타이밍이 일정하게 된다. 이 결과, 메모리 컨트롤러(21)에 대한 레이턴시를 보상할 수 있다.
(1-3) 비동기 전송 회로(37)는, 비동기 전송 회로(33)와 마찬가지로, FF 회로(810~817, 820~827)를 갖는다. 따라서, 비동기 전송 회로(33, 37)에 있어서 지연 스트로브 신호(DQSd) 등의 각종 신호를 전달하는 배선의 상태는 상호 같다. 이에 따라, 신호의 전달이 비동기 전송 회로(33)와 비동기 전송 회로(37)에서 같게 되어, 비동기 전송 회로(37)의 동작 타이밍이 비동기 전송 회로(33)의 동작 타이밍과 같아진다. 따라서, 메모리 장치(12)를 통해 데이터(DQ)를 수신하는 라운드 트립 타임(RTT)을, 비동기 전송 회로(37)에 있어서 재현할 수 있다. 그리고, 이 비동기 전송 회로(37)로부터 출력되는 판정용 데이터(CT)에 의해, 포인터 제어 신호(PCNT)의 생성 타이밍, 즉 비동기 전송 회로(33)에 있어서의 인에이블 신호(C00~C03)의 생성 타이밍을 정밀도 좋게 조정할 수 있다.
(제2 실시형태)
이하 제2 실시형태를 설명한다.
한편, 이 실시형태에서, 상기 실시형태와 동일한 구성 부재에 관해서는 동일한 부호를 붙이고, 그 설명 및 도면의 전부 또는 일부를 생략한다.
도 18은 본 실시형태의 수신 회로(300)의 일부 블록 회로를 도시한다.
이 수신 회로(300)의 제어 신호 생성 회로(301)는 포인터 제어 회로(311)를 포함한다. 이 포인터 제어 회로(311)는, 상기 제1 실시형태의 포인터 제어 회로(43)와 마찬가지로, 전송 설정치(FSP)에 따라서 리드 제어 신호(RCNT)를 지연한 포인터 제어 신호(PCNT)를 출력한다.
또한, 포인터 제어 회로(311)는, 포인터 제어 신호(PCNT)보다 빠른 타이밍에 변화되는 패스트 제어 신호(PCF)를 출력한다. 또한, 포인터 제어 회로(311)는, 포인터 제어 신호(PCNT)보다 느린 타이밍에 변화되는 슬로우 제어 신호(PCS)를 출력한다.
예컨대, 포인터 제어 회로(311)는, 도 4에 도시하는 포인터 제어 회로(43)와 마찬가지로, 직렬로 접속된 복수의 플립플롭 회로(FF 회로)를 갖고 있다. 포인터 제어 회로(311)는, 전송 설정치(FSP)에 의해서 복수의 FF 회로 중 어느 하나를 선택하고, 선택한 FF 회로의 출력 신호를 포인터 제어 신호(PCNT)로서 출력한다. 그리고, 포인터 제어 회로(311)는, 그 포인터 제어 신호(PCNT)를 출력하는 FF 회로의 하나 전단의 FF 회로의 출력 신호를 패스트 제어 신호(PCF)로서 출력한다. 이 패스트 제어 신호(PCF)의 변화(예컨대 상승 엣지)의 타이밍은, 포인터 제어 신호(PCNT)의 타이밍보다 코어 클록 신호(CKc)의 1 사이클분 빠르다.
또한, 포인터 제어 회로(311)는, 포인터 제어 신호(PCNT)를 출력하는 회로로서 선택된 FF 회로의 하나 후단의 FF 회로의 출력 신호를 슬로우 제어 신호(PCS)로서 출력한다. 이 슬로우 제어 신호(PCS)의 변화(예컨대 상승 엣지)의 타이밍은, 포인터 제어 신호(PCNT)의 타이밍보다 코어 클록 신호(CKc)의 1 사이클분 늦다.
BL 카운터(44, 44F, 44S)의 각각은, 4개의 FF 회로를 갖는 4진의 원-핫 스테이트 카운터(one-hot state counter)이다. BL 카운터(44)는, 포인터 제어 신호(PCNT)에 기초하여 기능을 유효로 하고, 코어 클록 신호(CKc)를 카운트하여 인에이블 신호(C00~C03)를 생성한다. BL 카운터(44F)는, 패스트 제어 신호(PCF)에 기초하여 기능을 유효로 하고, 코어 클록 신호(CKc)를 카운트하여 패스트 인에이블 신호(CF0~CF3)를 생성한다. BL 카운터(44S)는, 슬로우 제어 신호(PCS)에 기초하여 기능을 유효로 하고, 코어 클록 신호(CKc)를 카운트하여 슬로우 인에이블 신호(CS0~CS3)를 생성한다.
제2 비동기 전송 회로(312)는, 하나의 제1 래치 회로(37a)와 2개의 제2 래치 회로(37F, 37S)를 갖고 있다. 제1 래치 회로(37a)는 제3 래치 회로의 일례, 제2 래치 회로(37F)는 제4 래치 회로의 일례, 제2 래치 회로(37S)는 제5 래치 회로의 일례이다. 한쪽의 제2 래치 회로(37F)에는 패스트 인에이블 신호(CF0~CF3)가 공급되고, 다른 쪽의 제2 래치 회로(37S)에는 슬로우 인에이블 신호(CS0~CS3)가 공급된다.
제2 래치 회로(37F)는 패스트 인에이블 신호(CF0~CF3)에 기초하여 래치 기능을 유효로 한다. 그리고, 제2 래치 회로(37F)는, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 전송 신호(DT)를 래치하여, 패스트 판정용 데이터(CTF)를 출력한다. 마찬가지로, 제2 래치 회로(37S)는, 슬로우 인에이블 신호(CS0~CS3)에 기초하여 래치 기능을 유효로 한다. 그리고, 제2 래치 회로(37S)는, 코어 클록 신호(CKc)의 상승 엣지에 기초하여 전송 신호(DT)를 래치하여, 슬로우 판정용 데이터(CTS)를 출력한다.
판정 회로(313)는 제1 판정 회로(38F)와 제2 판정 회로(38S)를 갖고 있다. 제1 판정 회로(38F)는 제1 판정 회로의 일례, 제2 판정 회로(38S)는 제2 판정 회로의 일례이다. 제1 판정 회로(38F)는, 도 7에 도시하는 판정 회로(38)와 마찬가지로, 패스트 인에이블 신호(CF0)에 기초하여 기대치 데이터(제1 기대치 데이터)를 생성한다. 그리고, 판정 회로(38)는, 그 제1 기대치 데이터와 패스트 판정용 데이터(CTF)를 비교(배타적 논리합 연산)하여, 판정 신호(EXF)를 출력한다. 예컨대, 제2 래치 회로(37F)는, 패스트 인에이블 신호(CF0)에 기초하여 판정용 데이터(CT0, CT1)를 패스트 판정용 데이터(CTF)로서 생성하고, 상기 제1 실시형태와 마찬가지로, 제1 판정 회로(38F)는, 판정용 데이터(CT0, CT1)(패스트 판정용 데이터(CTF))를 제1 기대치 데이터와 비교(배타적 논리합 연산)한다. 그리고, 판정용 데이터(CT0, CT1)(패스트 판정용 데이터(CTF))가 함께 「0」인 경우, 제1 판정 회로(38F)는 「0」의 값의 판정 신호(EXF)를 출력한다. 한편, 판정용 데이터(CT0, CT1)(패스트 판정용 데이터(CTF))의 적어도 한쪽이 「1」인 경우, 제1 판정 회로(38F)는 「1」의 값의 판정 신호(EXF)를 출력한다.
제2 판정 회로(38S)는, 제1 판정 회로(38F)와 마찬가지로(즉, 도 7에 도시하는 판정 회로(387)와 마찬가지로), 슬로우 인에이블 신호(CS0)에 기초하여 기대치 데이터(제2 기대치 데이터)를 생성한다. 그리고, 판정 회로(38)는, 그 제2 기대치 데이터와 슬로우 판정용 데이터(CTS)를 비교(배타적 논리합 연산)하여, 판정 신호(EXS)를 출력한다.
설정치 산출 회로(314)는, 제1 판정 회로(38F)의 판정 신호(EXF)에 기초하여, 패스트 제어 신호(PCF)의 타이밍이 「OK」인지 「NG」인지를 판정한다. 또한, 설정치 산출 회로(314)는, 제2 판정 회로(38S)의 판정 신호(EXS)에 기초하여, 슬로우 제어 신호(PCS)의 타이밍이 「OK」인지 「NG」인지를 판정한다. 그리고, 설정치 산출 회로(314)는 양 판정 결과에 기초하여 전송 설정치(FSP)를 산출한다. 또한, 설정치 산출 회로(314)는 전송 설정치(FSP)에 기초하여 레이턴시 설정치(FSL)를 산출한다.
도 19는 설정치 산출 회로(314)에 있어서의 처리를 도시한다.
단계 321에서, 설정치 산출 회로(314)는 디폴트치를 설정한다. 설정치 산출 회로(314)는, 메모리 컨트롤러(21)로부터 공급되는 전송 설정치(FSO)를 전송 설정치(FSP)의 디폴트치로서 설정한다. 또한, 설정치 산출 회로(314)는, 전송 초기치(FSO)에 대응하는 레이턴시 초기치를 산출하여, 그 레이턴시 초기치를 레이턴시 설정치(FSL)의 디폴트치로서 설정한다.
그리고, 설정치 산출 회로(314)는, 도 18에 도시하는 제1 판정 회로(38F)로부터 출력되는 판정 신호(EXF)에 기초하여, 제1 판정 회로(38F)가 「OK」를 나타내는 것인지 「NG」를 나타내는 것인지를 판정한다. 또한, 설정치 산출 회로(314)는, 도 18에 도시하는 제2 판정 회로(38S)로부터 출력되는 판정 신호(EXS)에 기초하여, 제2 판정 회로(38S)가 「OK」를 나타내는 것인지 「NG」를 나타내는 것인지를 판정한다.
우선, 단계 322에서, 설정치 산출 회로(314)는, 제2 판정 회로(38S)(「판정 회로(SLOW)」라고 표기)가 「OK 판정」을 나타내면서 또한 제1 판정 회로(38F)(「판정 회로(FAST)」라고 표기)가 「NG 판정」을 나타내는 경우(판정: YES), 단계 323으로 이행한다. 그 단계 323으로의 이행은 「설정치(클록 환승 타이밍)에 대하여 DQS가 늦는」 경우에 행해진다. 이 단계 323에서, 설정치 산출 회로(314)는, 전송 설정치(FSP)를 「+1」하고, 레이턴시 설정치(FSL)를 「-1」한다. 그리고, 설정치 산출 회로(314)는 처리를 단계 322로 이행한다.
이어서, 단계 324에서, 설정치 산출 회로(314)는, 제1 판정 회로(38F)가 「OK 판정」을 나타내면서 또한 제2 판정 회로(38S)가 「NG 판정」을 나타내는 경우(판정: YES), 단계 325로 이행한다. 그 단계 325로의 이행은 「설정치에 대하여 DQS가 빠른」 경우에 행해진다. 이 단계 325에서, 설정치 산출 회로(314)는, 전송 설정치(FSP)를 「-1」하고, 레이턴시 설정치(FSL)를 「+1」한다. 그리고, 설정치 산출 회로(314)는 처리를 단계 322로 이행한다.
이어서, 단계 326에서, 설정치 산출 회로(314)는, 제1 판정 회로(38F)가 「OK 판정」을 나타내며 또한 제2 판정 회로(38S)가 「NG 판정」을 나타내는 경우(판정: YES), 「설정치에 대하여 DQS가 적절하다」고 판정한다. 이 때문에, 설정치 산출 회로(314)는, 전송 설정치(FSP)와 레이턴시 설정치(FSL)를 그대로로 하고, 처리를 단계 322로 이행한다.
한편, 단계 326에서 판정이 「NO」, 즉 제1 판정 회로(38F)와 제2 판정 회로(38S)가 함께 「NG 판정」을 나타내는 경우, 설정치 산출 회로(314)는 단계 327로 이행한다. 그 단계 327에서, 설정치 산출 회로(314)는 에러 처리를 하고, 단계 321로 이행한다. 예컨대, 설정치 산출 회로(314)는, 에러 처리에 있어서, 도 1에 도시하는 메모리 컨트롤러(21)에 에러 정보를 통지한다. 메모리 컨트롤러(21)는, 그 에러 정보에 기초하여 트레이닝 처리를 하고, 그 처리 결과에 기초하여 전송 설정치(FSP)를 재차 설정한다.
이어서, 본 실시형태의 수신 회로(300)의 작용을 설명한다.
도 1에 도시하는 메모리 컨트롤러(21)는, 예컨대 시스템 장치(11)의 기동시에, 트레이닝 처리를 실행하여 하나의 전송 초기치(FSO)를 설정한다. 도 18에 도시하는 수신 회로(300)의 설정치 산출 회로(314)는 그 전송 초기치(FSO)를 전송 설정치(FSP)로서 설정한다. 그리고, 포인터 제어 회로(311)는, 전송 설정치(FSP)에 따른 지연을 갖는 포인터 제어 신호(PCNT)를 생성한다. BL 카운터(44)는 포인터 제어 신호(PCNT)에 기초하여 인에이블 신호(C00~C03)를 생성한다. 그 인에이블 신호(C00)에 기초한 타이밍은, 예컨대 도 14에 화살표로 나타내는 타이밍(TP0)이다.
도 18에 도시하는 포인터 제어 회로(311)는, 상기한 포인터 제어 신호(PCNT)보다도 1 사이클 빠른 패스트 제어 신호(PCF)와, 포인터 제어 신호(PCNT)보다도 1 사이클 늦는 슬로우 제어 신호(PCS)를 생성한다. BL 카운터(44F)는, 패스트 제어 신호(PCF)에 기초하여 패스트 인에이블 신호(CF0~CF3)를 생성한다. BL 카운터(44S)는 슬로우 제어 신호(PCS)에 기초하여 슬로우 인에이블 신호(CS0~CS3)를 생성한다.
패스트 인에이블 신호(CF0)에 기초한 타이밍은, 예컨대 도 14에 도시하는 타이밍(TP0)보다도 1 사이클 빠른 (도 14에서 좌측)의 코어 클록 신호(CKc)의 상승 엣지의 타이밍(패스트 타이밍)이다. 한편, 슬로우 인에이블 신호(CS0)에 기초한 타이밍은, 도 14에 도시하는 타이밍(TP0)보다도 1 사이클 늦는 (도 14에서 우측)의 코어 클록 신호(CKc)의 상승 엣지의 타이밍(슬로우 타이밍)이다.
예컨대, 도 14에서, 데이터(DQ0)의 데이터 [A0], [B0]의 윈도우(W0)에 대하여, 상기한 타이밍(TP0) 및 패스트 타이밍은 윈도우(W0)의 범위 내이고, 슬로우 타이밍은 윈도우(W0)의 범위 밖이다. 이 경우, 전송 설정치(FSP)에 대하여 지연 스트로브 신호(DQSd)가 빠르다. 따라서, 도 18에 도시하는 제2 판정 회로(38S)는 「NG 판정」의 판정 신호(EXS)를 출력한다. 설정치 산출 회로(314)는, 판정 신호(EXS)에 기초하여, 전송 설정치(FSP)를 「-1」하여 새로운 전송 설정치(FSP)를 산출한다. 이 새로운 전송 설정치(FSP)에 기초하여, BL 카운터(44, 44F, 44S)는 각각 1 사이클 빠른 타이밍에 인에이블 신호를 생성한다. 이 결과, 새롭게 생성된 인에이블 신호에 기초한 3개의 타이밍은 모두 도 14에 있어서 윈도우(W0)의 범위 내가 된다.
그리고, 도 18에 도시하는 비동기 전송 회로(33)의 제2 래치 회로(33b)는 인에이블 신호(C00~C03)에 기초하여 제1 래치 회로(33a)의 출력 신호(DD)를 래치한다. 이 때, 인에이블 신호(C00)의 타이밍은, 도 14에 도시하는 윈도우(W0)의 범위 내에 설정된 3개의 타이밍 중 중앙의 타이밍이다. 따라서, 도 18에 도시하는 제2 래치 회로(33b)는, 윈도우(W0)의 중앙 부근의 타이밍에 신호(DD)(DQ0)를 래치한다. 즉, 수신 회로(300)는 데이터(DQ0)에 관해서 최적의 취득 타이밍을 설정한다.
또한, 도 14에서, 데이터(DQ1)의 데이터 [A1], [B1]의 윈도우(W1)에 대하여, 상기한 타이밍(TP0) 및 슬로우 타이밍은 윈도우(W1)의 범위 내이며, 패스트 타이밍은 윈도우(W1)의 범위 밖이다. 이 경우, 전송 설정치(FSP)에 대하여 지연 스트로브 신호(DQSd)가 늦다. 따라서, 도 18에 도시하는 제1 판정 회로(38F)는 「NG 판정」의 판정 신호(EXF)를 출력한다. 설정치 산출 회로(314)는, 판정 신호(EXF)에 기초하여, 전송 설정치(FSP)를 「+1」하여 새로운 전송 설정치(FSP)를 산출한다. 이 새로운 전송 설정치(FSP)에 기초하여, BL 카운터(44, 44F, 44S)는 각각 1 사이클 느린 타이밍에 인에이블 신호를 생성한다. 이 결과, 새롭게 생성된 인에이블 신호에 기초한 3개의 타이밍은 모두 도 14에 있어서 윈도우(W1)의 범위 내가 된다.
그리고, 도 18에 도시하는 비동기 전송 회로(33)의 제2 래치 회로(33b)는, 인에이블 신호(C00~C03)에 기초하여, 제1 래치 회로(33a)의 출력 신호(DD)를 래치한다. 이 때, 인에이블 신호(C00(의 타이밍은, 도 14에 도시하는 윈도우(W1)의 범위 내에 설정된 3개의 타이밍 중 중앙의 타이밍이다. 따라서, 도 18에 도시하는 제2 래치 회로(33b)는, 윈도우(W1)의 중앙 부근의 타이밍에 신호(DD)(DQ1)를 래치한다. 즉, 수신 회로(300)는 데이터(DQ1)에 관해서 최적의 취득 타이밍을 설정한다.
도 20에 도시하는 것과 같이, 라운드 트립 타임(RTT)이 가장 짧은 (FAST) 경우에 출력된 지연 스트로브 신호(DQSd) 및 데이터(DQ0)에 기초하여 데이터 [A0], [B0]가 래치되는 경우가 있다. 여기서, 데이터 [A0], [B0]에 대응하는 윈도우(W0)가, VT 드리프트에 의해서 시간적으로 Δt만큼 틀어져, 윈도우(W0a)가 되는 경우가 있다. 이 경우, 전송 설정치(FSP)에 의해서 설정된 타이밍(TPF0)보다도 1 사이클 빠른 타이밍(TPF1)은 윈도우(W0a)의 범위에서 틀어진다. 이 경우, 전송 설정치(FSP)에 대하여 지연 스트로브 신호(DQSd)가 늦다. 따라서, 설정치 산출 회로(314)는, 판정 신호(EXF, EXS)에 기초하여, 전송 설정치(FSP)를 「+1」하여 새로운 전송 설정치(FSP)를 산출한다. 이 전송 설정치(FSP)에 기초하여, 인에이블 신호(C00)의 생성 타이밍이, 코어 클록 신호(CKc)의 1 사이클분 늦어져(도 20에서 우측으로 이동한다), 타이밍(TPF2)으로 조정된다. 또한, 설정치 산출 회로(314)는, 레이턴시 설정치(FSL)를 「-1」하여 새로운 레이턴시 설정치(FSL)를 산출한다. 이에 따라, 리드 커맨드(「READ」라고 표기)가 발행되고 나서 리드 데이터(RD(A), RD(B))가 출력될 때까지의 기간은 변화하지 않는다.
또한, 도 20에 도시하는 것과 같이, 라운드 트립 타임(RTT)이 가장 긴 (SLOW) 경우에 출력된 지연 스트로브 신호(DQSd) 및 데이터(DQ1)에 기초하여 데이터 [A1], [B1]가 래치되는 경우가 있다. 여기서, 데이터 [A1], [B1]에 대응하는 윈도우(W1)가, VT 드리프트에 의해서 시간적으로 Δt만큼 틀어져, 윈도우(W1a)가 되는 경우가 있다. 이 경우, 전송 설정치(FSP)에 의해서 설정된 타이밍(TPS0)보다도 1 사이클 빠른 타이밍(TPS1)은 윈도우(W1a)의 범위에서 틀어진다. 이 경우, 전송 설정치(FSP)에 대하여 지연 스트로브 신호(DQSd)가 늦다. 따라서, 설정치 산출 회로(314)는, 판정 신호(EXF, EXS)에 기초하여, 전송 설정치(FSP)를 「+1」하여 새로운 전송 설정치(FSP)를 산출한다. 이 전송 설정치(FSP)에 기초하여, 인에이블 신호(C00)의 생성 타이밍이, 코어 클록 신호(CKc)의 1 사이클분 늦어져(도 20에서 우측으로 이동한다), 타이밍(TPS2)으로 조정된다. 또한, 설정치 산출 회로(314)는, 레이턴시 설정치(FSL)를 「-1」하여 새로운 레이턴시 설정치(FSL)를 산출한다. 이에 따라, 리드 커맨드(「READ」라고 표기)가 발행되고 나서 리드 데이터(RD(A), RD(B))가 출력될 때까지의 기간은 변화하지 않는다.
이상 기술한 것과 같이, 본 실시형태에 따르면, 이하가 효과를 발휘한다.
(2-1) 포인터 제어 회로(311)는, 전송 설정치(FSP)에 따라서 리드 제어 신호(RCNT)를 지연한 포인터 제어 신호(PCNT)를 출력한다. 포인터 제어 회로(311)는, 포인터 제어 신호(PCNT)보다 빠른 타이밍에 변화되는 패스트 제어 신호(PCF)를 출력한다. 또한, 포인터 제어 회로(311)는, 포인터 제어 신호(PCNT)보다 느린 타이밍에 변화되는 슬로우 제어 신호(PCS)를 출력한다.
BL 카운터(44)는 포인터 제어 신호(PCNT)에 기초하여 인에이블 신호(C00~C03)를 생성한다. BL 카운터(44F)는 패스트 제어 신호(PCF)에 기초하여 패스트 인에이블 신호(CF0~CF3)를 생성한다. BL 카운터(44S)는 슬로우 제어 신호(PCS)에 기초하여 슬로우 인에이블 신호(CS0~CS3)를 생성한다. 제2 래치 회로(37F)는, 패스트 인에이블 신호(CF0~CF3)에 기초하여, 제1 래치 회로(37a)로부터의 전송 신호(DT)를 래치하여 패스트 판정용 데이터(CTF)를 출력한다. 제2 래치 회로(37S)는, 슬로우 인에이블 신호(CS0~CS3)에 기초하여, 제1 래치 회로(37a)로부터의 전송 신호(DT)를 래치하여 슬로우 판정용 데이터(CTS)를 출력한다. 제1 판정 회로(38F)는 패스트 판정용 데이터(CTF)에 기초하여 판정 신호(EXF)를 출력한다. 제2 판정 회로(38S)는 슬로우 판정용 데이터(CTS)에 기초하여 판정 신호(EXS)를 출력한다. 설정치 산출 회로(314)는, 제1 판정 회로(38F)의 판정 결과와 제2 판정 회로(38S)의 판정 결과에 기초하여, 전송 설정치(FSP)를 산출한다. 이 전송 설정치(FSP)는, 수신 데이터(RDQ)를 받아들이기 위한 윈도우의 거의 중앙에 포인터 제어 신호(PCNT)를 설정한다. 이에 따라, 수신 데이터(RDQ)의 윈도우에 대하여 최적의 포인터 제어 신호(PCNT)를 설정할 수 있다.
(2-2) 설정치 산출 회로(314)는, 제1 판정 회로(38F)의 판정 신호(EXF)와 제2 판정 회로(38S)의 판정 신호(EXS)에 기초하여, 전송 설정치(FSP)를 산출하고, 이 전송 설정치(FSP)에 의해서 포인터 제어 신호(PCNT)의 타이밍을 조정한다. 제1 판정 회로(38F)가 판정하는 타이밍은, 포인터 제어 신호(PCNT)의 타이밍, 즉 비동기 전송 회로(33)에서 도메인 체인지가 행해지는 타이밍보다 빠르다. 한편, 제2 판정 회로(38S)가 판정하는 타이밍은, 포인터 제어 신호(PCNT)의 타이밍, 즉 비동기 전송 회로(33)에서 도메인 체인지가 행해지는 타이밍보다 늦다. 따라서, 포인터 제어 신호(PCNT)의 타이밍은 항상 데이터(DQ)의 윈도우의 범위 내가 된다. 이 결과, 리드 데이터(RD)에 있어서의 오류를 저감할 수 있다.
한편, 상기 각 실시형태는 이하의 양태로 실시하여도 좋다.
·상기 각 실시형태에서는, 비동기 전송 회로(37)를 비동기 전송 회로(33)와 마찬가지로, FF 회로(810~817, 820~827)를 갖는 것으로 했다. 그러나, 상기 실시형태에서 나타낸 것과 같이, 타이밍 판정은 판정 신호(EX0, EX1)를 이용하여 행할 수 있다. 따라서, 도 6에서, 비동기 전송 회로(37)는 적어도 FF 회로(810, 811, 820, 821)를 포함하는 것이면 된다. 이 변경에 더불어, 도 7에서, 판정 회로(38)는 적어도 배타적 논리합(ExOR) 회로(920, 921)를 포함하는 것이면 된다.
·상기 각 실시형태에서는, 버스트 길이를 「8」로 설정한 경우를 나타냈지만, 다른 값을 버스트 길이로 설정하여도 좋다.
·상기 각 실시형태에서는, 최소 윈도우 폭을 판정했다. 최소 윈도우 폭은, 상기 실시형태에서 말한 것과 같이, 독출을 연속적으로 행하는 경우에, 그 독출에 의해 데이터(DQ)의 도메인 체인지가 가능한 윈도우의 폭이다. 단속적으로 메모리 장치(12)를 액세스하는 동작의 경우, 연속적인 리드 동작(예컨대, 커맨드의 교체나 더미의 리드 커맨드)에 의해서 2개 이상의 연속된 리드 액세스를 행함으로써, 윈도우 폭을 판정하여, 타이밍을 조정할 수 있다.
·상기 각 실시형태에서는, 메모리 컨트롤러(21)는, 데이터(DQ) 등의 출력 타이밍을 조정하는 트레이닝 동작을 행하지만, 메모리 컨트롤러(21)는 트레이닝 동작을 행하는 기능을 갖고 있지 않아도 된다.
·상기 각 실시형태에서는, 메모리 컨트롤러(21)가 트레이닝 동작을 행하는 것으로 했지만, 그 밖의 회로, 예컨대 코어 회로가 트레이닝 동작을 실행하도록 하여도 좋다.
33, 37: 비동기 전송 회로, 34: 레이턴시 보상 회로, 35: 제어 신호 생성 회로, 36: 패턴 데이터 생성 회로, 38: 판정 회로, 39: 설정치 산출 회로, DQ: 데이터, DQSd: 지연 스트로브 신호, EN1, EN2: 인에이블 신호, CP0~CP3, CN0~CN3: 인에이블 신호, C00~C03: 인에이블 신호, FSO: 전송 초기치, FSP: 전송 설정치, FSL: 레이턴시 설정치, RD: 리드 데이터

Claims (7)

  1. 스트로브 신호에 기초하여 제1 인에이블 신호를 생성하고, 리드 제어 신호와 전송 설정치에 따른 포인터 제어 신호와 코어 클록 신호에 기초하여 제2 인에이블 신호를 생성하는 제어 신호 생성 회로와,
    상기 제1 인에이블 신호와 상기 스트로브 신호에 기초하여 수신 데이터를 래치하고, 래치한 수신 데이터에 대응하는 출력 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하는 제1 비동기 전송 회로와,
    상기 제1 인에이블 신호의 변화에 따라서 논리를 반전한 판정용 패턴 데이터를 생성하는 패턴 데이터 생성 회로와,
    상기 제1 인에이블 신호와 상기 스트로브 신호에 기초하여 상기 판정용 패턴 데이터를 래치하고, 래치한 판정용 패턴 데이터에 대응하는 판정용 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하는 제2 비동기 전송 회로와,
    상기 제2 비동기 전송 회로로부터의 상기 판정용 데이터에 기초하여 상기 포인터 제어 신호의 생성 타이밍을 판정하는 판정 회로와,
    상기 판정 회로의 판정 결과에 기초하여 상기 전송 설정치를 산출하는 설정치 산출 회로
    를 포함하는 것을 특징으로 하는 수신 회로.
  2. 제1항에 있어서, 레이턴시 설정치에 기초하여 상기 제1 비동기 전송 회로의 상기 출력 데이터를 지연시켜 리드 데이터를 출력하는 레이턴시 보상 회로를 포함하고,
    상기 설정치 산출 회로는 상기 전송 설정치에 기초하여 상기 레이턴시 설정치를 산출하는 것을 특징으로 하는 수신 회로.
  3. 제1항 또는 제2항에 있어서, 상기 판정 회로는, 상기 제2 인에이블 신호에 기초하여 기대치 데이터를 생성하고, 상기 기대치 데이터와 상기 제2 비동기 전송 회로로부터 출력된 상기 판정용 데이터를 비교하여 상기 포인터 제어 신호의 생성타이밍을 판정하는 것을 특징으로 하는 수신 회로.
  4. 제1항 또는 제2항에 있어서, 상기 제어 신호 생성 회로가 생성하는 상기 제1 인에이블 신호는,
    상기 스트로브 신호에 기초하여 생성된 정상(正相) 인에이블 신호와,
    상기 스트로브 신호를 반전한 반전 스트로브 신호에 기초하여 생성된 역상(逆相) 인에이블 신호를 포함하고,
    상기 패턴 데이터 생성 회로는, 상기 정상 인에이블 신호에 기초하여 제1 판정용 패턴 데이터를 생성하고, 상기 역상 인에이블 신호에 기초하여 제2 판정용 패턴 데이터를 생성하고,
    상기 제2 비동기 전송 회로는, 상기 제1 판정용 패턴 데이터와 상기 제2 판정용 패턴 데이터를 각각 전송하여 제1 판정용 데이터와 제2 판정용 데이터를 출력하고,
    상기 판정 회로는, 상기 제2 인에이블 신호에 기초하여 기대치 데이터를 생성하고, 상기 제1 판정용 데이터를 상기 기대치 데이터와 비교하여 제1 판정 신호를 생성하고, 상기 제2 판정용 데이터를 상기 기대치 데이터와 비교하여 제2 판정 신호를 생성하고,
    상기 설정치 산출 회로는, 상기 제1 판정 신호와 상기 제2 판정 신호에 기초하여 상기 전송 설정치를 산출하는 것을 특징으로 하는 수신 회로.
  5. 제1항 또는 제2항에 있어서, 상기 제어 신호 생성 회로는, 상기 전송 설정치에 기초하여, 상기 제2 인에이블 신호보다 빠른 타이밍에 변화되는 패스트 인에이블 신호와, 상기 제2 인에이블 신호보다 느린 타이밍에 변화되는 슬로우 인에이블 신호를 생성하고,
    상기 제1 비동기 전송 회로는,
    상기 제1 인에이블 신호에 의해 상기 수신 데이터를 래치하는 제1 래치 회로와,
    상기 제1 래치 회로의 출력 신호를 상기 제2 인에이블 신호에 의해 래치하여 상기 출력 데이터를 출력하는 제2 래치 회로를 포함하고,
    상기 제2 비동기 전송 회로는,
    상기 제1 인에이블 신호에 의해 상기 판정용 패턴 데이터를 래치하는 제3 래치 회로와,
    상기 패스트 인에이블 신호에 의해 상기 제3 래치 회로의 출력 신호를 래치하는 제4 래치 회로와,
    상기 슬로우 인에이블 신호에 의해 상기 제3 래치 회로의 상기 출력 신호를 래치하는 제5 래치 회로를 포함하고,
    상기 판정 회로는,
    상기 패스트 인에이블 신호에 기초하여 제1 기대치 데이터를 생성하고, 상기 제1 기대치 데이터와 상기 제4 래치 회로의 출력 신호를 비교하여 상기 패스트 인에이블 신호의 타이밍을 판정하는 제1 판정 회로와,
    상기 슬로우 인에이블 신호에 기초하여 제2 기대치 데이터를 생성하고, 상기 제2 기대치 데이터와 상기 제5 래치 회로의 출력 신호를 비교하여 상기 슬로우 인에이블 신호의 타이밍을 판정하는 제2 판정 회로를 포함하고,
    상기 설정치 산출 회로는, 상기 제1 판정 회로의 판정 결과와 상기 제2 판정 회로의 판정 결과에 기초하여 상기 전송 설정치를 산출하는 것을 특징으로 하는 수신 회로.
  6. 스트로브 신호에 기초하여 수신 데이터를 수신하고, 코어 클록 신호에 기초하여 상기 수신 데이터에 따른 리드 데이터를 출력하는 수신 회로에서, 상기 스트로브 신호로부터 상기 코어 클록 신호로의 도메인 체인지의 타이밍을 조정하는 수신 회로의 타이밍 조정 방법으로서,
    상기 스트로브 신호에 기초하여 제1 인에이블 신호를 생성하고,
    리드 제어 신호와 전송 설정치에 따른 포인터 제어 신호와 상기 코어 클록 신호에 기초하여 제2 인에이블 신호를 생성하고,
    상기 제1 인에이블 신호의 변화에 따라서 논리를 반전한 판정용 패턴 데이터를 생성하고,
    상기 제1 인에이블 신호와 상기 스트로브 신호에 기초하여 상기 판정용 패턴 데이터를 래치하고,
    래치한 상기 판정용 패턴 데이터에 대응하는 판정용 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하고,
    상기 판정용 데이터에 기초하여 상기 포인터 제어 신호의 생성 타이밍을 판정하고,
    상기 생성 타이밍의 판정 결과에 기초하여 상기 전송 설정치를 산출하는 것을 특징으로 하는 수신 회로의 타이밍 조정 방법.
  7. 메모리 장치에 접속되는 반도체 장치로서,
    리드 제어 신호를 생성하여 메모리 장치로의 액세스를 제어하는 메모리 컨트롤러와,
    상기 메모리 장치로부터 출력된 스트로브 신호를 지연시켜 지연 스트로브 신호를 생성하고, 상기 지연 스트로브 신호에 기초하여 상기 메모리 장치로부터의 수신 데이터를 수신하고, 상기 수신 데이터에 기초하여 상기 메모리 컨트롤러에 리드 데이터를 출력하는 수신 회로
    를 포함하고,
    상기 수신 회로는,
    상기 지연 스트로브 신호에 기초하여 제1 인에이블 신호를 생성하고, 상기 리드 제어 신호와 전송 설정치에 따른 포인터 제어 신호와 코어 클록 신호에 기초하여 제2 인에이블 신호를 생성하는 제어 신호 생성 회로와,
    상기 제1 인에이블 신호와 상기 지연 스트로브 신호에 기초하여 상기 수신 데이터를 래치하고, 래치한 상기 수신 데이터에 대응하는 출력 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하는 제1 비동기 전송 회로와,
    상기 제1 인에이블 신호의 변화에 따라서 논리를 반전한 판정용 패턴 데이터를 생성하는 패턴 데이터 생성 회로와,
    상기 제1 인에이블 신호와 상기 지연 스트로브 신호에 기초하여 상기 판정용 패턴 데이터를 래치하고, 래치한 상기 판정용 패턴 데이터에 대응하는 판정용 데이터를 상기 제2 인에이블 신호와 상기 코어 클록 신호에 기초하여 출력하는 제2 비동기 전송 회로와,
    상기 제2 비동기 전송 회로로부터의 상기 판정용 데이터에 기초하여 상기 포인터 제어 신호의 생성 타이밍을 판정하는 판정 회로와,
    상기 판정 회로의 판정 결과에 기초하여 상기 전송 설정치를 산출하는 설정치 산출 회로
    를 포함하는 것을 특징으로 하는 반도체 장치.
KR1020160063535A 2015-05-28 2016-05-24 수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치 KR101811133B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2015-108644 2015-05-28
JP2015108644A JP6451505B2 (ja) 2015-05-28 2015-05-28 受信回路、受信回路のタイミング調整方法、半導体装置

Publications (2)

Publication Number Publication Date
KR20160140433A KR20160140433A (ko) 2016-12-07
KR101811133B1 true KR101811133B1 (ko) 2017-12-20

Family

ID=57282091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160063535A KR101811133B1 (ko) 2015-05-28 2016-05-24 수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치

Country Status (5)

Country Link
US (1) US9620196B2 (ko)
JP (1) JP6451505B2 (ko)
KR (1) KR101811133B1 (ko)
CN (1) CN106201909B (ko)
DE (1) DE102016208849B4 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015148488A1 (en) * 2014-03-26 2015-10-01 Rambus Inc. Memory controller with dynamic core-transfer latency
US10103718B1 (en) * 2017-04-05 2018-10-16 Xilinx, Inc. Recalibration of source synchronous systems
JP7044116B2 (ja) * 2018-01-11 2022-03-30 株式会社ソシオネクスト 超音波診断装置及び超音波診断システム
US10403340B2 (en) * 2018-02-07 2019-09-03 Micron Technology, Inc. Techniques for command synchronization in a memory device
KR20210076661A (ko) * 2019-12-16 2021-06-24 에스케이하이닉스 주식회사 데이터출력방법 및 이를 이용한 반도체장치
JP2022146543A (ja) * 2021-03-22 2022-10-05 キオクシア株式会社 半導体記憶装置、メモリシステム、および方法
TWI806516B (zh) * 2022-03-24 2023-06-21 瑞昱半導體股份有限公司 記憶體控制器與校準資料接收視窗的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6762974B1 (en) * 2003-03-18 2004-07-13 Micron Technology, Inc. Method and apparatus for establishing and maintaining desired read latency in high-speed DRAM
JP2005092923A (ja) * 2003-09-12 2005-04-07 Renesas Technology Corp 半導体記憶装置
JP2006101269A (ja) * 2004-09-30 2006-04-13 Sanyo Electric Co Ltd ラッチクロック生成回路及びシリアル−パラレル変換回路
JP4662536B2 (ja) * 2004-12-28 2011-03-30 パナソニック株式会社 タイミング調整方法及び装置
JP2012027734A (ja) 2010-07-23 2012-02-09 Panasonic Corp メモリコントローラおよびメモリアクセスシステム
JP2012058997A (ja) 2010-09-08 2012-03-22 Toshiba Corp 半導体集積回路
JP2012247319A (ja) 2011-05-27 2012-12-13 Advantest Corp 試験装置および試験方法
CN102279824B (zh) * 2011-08-24 2013-10-09 中国北车股份有限公司大连电力牵引研发中心 输入接口扩展电路及控制装置
US8897084B2 (en) 2011-09-08 2014-11-25 Apple Inc. Dynamic data strobe detection
JP5673842B2 (ja) * 2011-09-21 2015-02-18 富士通株式会社 半導体装置
JP6167855B2 (ja) * 2013-10-31 2017-07-26 富士通株式会社 信号制御回路、情報処理装置及び信号制御方法

Also Published As

Publication number Publication date
DE102016208849B4 (de) 2022-09-08
JP6451505B2 (ja) 2019-01-16
US9620196B2 (en) 2017-04-11
US20160351245A1 (en) 2016-12-01
KR20160140433A (ko) 2016-12-07
CN106201909A (zh) 2016-12-07
DE102016208849A1 (de) 2016-12-01
CN106201909B (zh) 2019-07-09
JP2016224605A (ja) 2016-12-28

Similar Documents

Publication Publication Date Title
KR101811133B1 (ko) 수신 회로, 수신 회로의 타이밍 조정 방법, 반도체 장치
KR100305546B1 (ko) 반도체장치,반도체시스템및디지탈지연회로
JP4921888B2 (ja) インターフェース回路
US6975149B2 (en) Method and circuit for adjusting the timing of output data based on an operational mode of output drivers
US7027336B2 (en) Semiconductor memory device for controlling output timing of data depending on frequency variation
US7936196B2 (en) First delay locking method, delay-locked loop, and semiconductor memory device including the same
US7633324B2 (en) Data output strobe signal generating circuit and semiconductor memory apparatus having the same
US7813215B2 (en) Circuit and method for generating data output control signal for semiconductor integrated circuit
US7825710B2 (en) Delay-locked loop circuits and method for generating transmission core clock signals
US8988126B2 (en) Apparatus and method for latency control in high frequency synchronous semiconductor device
KR100675009B1 (ko) 데이터 지연 조절 회로 및 방법
US7268601B2 (en) Delay locked loop and clock generation method thereof
US9536591B1 (en) Staggered DLL clocking on N-Detect QED to minimize clock command and delay path
TW201007424A (en) Apparatus and method for multi-phase clock generation
JP6209978B2 (ja) メモリコントローラ,情報処理装置及び基準電圧調整方法
JPWO2011077573A1 (ja) 信号受信回路、メモリコントローラ、プロセッサ、コンピュータ及び位相制御方法
US7994833B2 (en) Delay locked loop for high speed semiconductor memory device
US6760263B2 (en) Method and device for controlling data latch time
JP6273856B2 (ja) メモリコントローラ及び情報処理装置
JP5005928B2 (ja) インタフェース回路及びそのインタフェース回路を備えた記憶制御装置
US8624643B2 (en) Semiconductor memory apparatus
US7902899B2 (en) Apparatus and method of generating reference clock for DLL circuit

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right