KR20220125558A - 호스트 인터페이스 및 이를 포함하는 시스템-온-칩 - Google Patents
호스트 인터페이스 및 이를 포함하는 시스템-온-칩 Download PDFInfo
- Publication number
- KR20220125558A KR20220125558A KR1020210029543A KR20210029543A KR20220125558A KR 20220125558 A KR20220125558 A KR 20220125558A KR 1020210029543 A KR1020210029543 A KR 1020210029543A KR 20210029543 A KR20210029543 A KR 20210029543A KR 20220125558 A KR20220125558 A KR 20220125558A
- Authority
- KR
- South Korea
- Prior art keywords
- clock
- response
- phase
- signal
- detector
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 168
- 230000010363 phase shift Effects 0.000 claims abstract description 93
- 230000000630 rising effect Effects 0.000 claims description 128
- 238000000034 method Methods 0.000 claims description 19
- 238000012937 correction Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 9
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 62
- 238000003708 edge detection Methods 0.000 description 39
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 22
- 238000010586 diagram Methods 0.000 description 22
- 230000003111 delayed effect Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 101100194362 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res1 gene Proteins 0.000 description 12
- YIQAOPNCIJVKDN-XKNYDFJKSA-N Ala-Asn-Asp-Pro Chemical compound C[C@H](N)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](CC(O)=O)C(=O)N1CCC[C@H]1C(O)=O YIQAOPNCIJVKDN-XKNYDFJKSA-N 0.000 description 6
- 101000711846 Homo sapiens Transcription factor SOX-9 Proteins 0.000 description 4
- 102100034204 Transcription factor SOX-9 Human genes 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 3
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 3
- 101100232371 Hordeum vulgare IAT3 gene Proteins 0.000 description 3
- 101100194363 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res2 gene Proteins 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- 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
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H11/00—Networks using active elements
- H03H11/02—Multiple-port networks
- H03H11/16—Networks for phase shifting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
호스트 인터페이스 및 시스템-온-칩이 제공된다. 호스트 인터페이스는 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 그리고 상기 커맨드에 응답하는 응답을 상기 외부 장치로부터 수신할 수 있다. 호스트 인터페이스는 컨트롤 로직, 상기 컨트롤 로직의 제어에 응답하여 상기 응답에 기반하여 제 1 값을 출력하는 위상 쉬프트 검출기, 및 상기 컨트롤 로직의 제어에 응답하여, 상기 제 1 클럭의 위상을 상기 제 1 값에 기반하여 변조하고, 그리고 변조 클럭을 출력하는 위상 쉬프터를 포함하되, 상기 제 1 클럭은 상기 외부 장치로 송신 데이터를 전송하는 데 사용되고, 그리고 상기 변조 클럭은 상기 외부 장치로부터 수신되는 수신 데이터를 샘플링하는 데 사용될 수 있다.
Description
본 개시는 호스트 인터페이스 및 이를 포함하는 시스템-온-칩에 관한 것으로, 좀 더 구체적으로는 외부 장치로부터 수신되는 응답 또는 피드백 클럭에 기반하여 클럭의 위상을 변조하는 호스트 인터페이스 및 시스템-온-칩에 관한 것이다.
스토리지 장치는 호스트로부터 클럭 신호를 수신할 수 있다. 스토리지 장치는 수신된 클럭에 기반하여, 호스트로부터 요청된 동작을 처리할 수 있다. 호스트의 읽기 커맨드에 응답하여, 스토리지 장치는 응답 신호 및 데이터 신호를 호스트로 전송할 수 있다. 호스트는 스토리지 장치로부터 응답 신호가 수신되는 것에 응답하여, 수신된 데이터 신호를 샘플링 또는 처리할 수 있다.
스토리지 장치에서 사용되는 동작 전압 및 호스트에서 사용되는 동작 전압이 서로 상이한 경우, 호스트 및 스토리지 장치는 레벨 쉬프터를 거쳐 통신할 수 있다. 레벨 쉬프터는 호스트 및 스토리지 장치 사이에 전송되는 신호들의 전압을 적절하게 조정할 수 있다. 호스트 및 스토리지 장치가 레벨 쉬프터를 거쳐 통신함에 따라, 스토리지 장치로부터 호스트로 전송되는 응답 신호 및 데이터 신호가 더 지연될 수 있다.
본 개시의 목적은 장치로부터 수신되는 응답 또는 레벨 쉬프터로부터 제공되는 피드백 클럭에 기반하여, 클럭의 위상을 변조하는 위상 쉬프터를 포함하는 호스트 인터페이스 및 이를 포함하는 시스템-온-칩을 제공하는 데 있다.
본 개시의 몇몇 실시 예들에 따르면, 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 그리고 상기 커맨드에 응답하는 응답을 상기 외부 장치로부터 수신하는 호스트 인터페이스는: 컨트롤 로직; 상기 컨트롤 로직의 제어에 응답하여, 상기 응답에 기반하여 제 1 값을 출력하는 위상 쉬프트 검출기; 및 상기 컨트롤 로직의 제어에 응답하여, 상기 제 1 클럭의 위상을 상기 제 1 값에 기반하여 변조하고, 그리고 변조 클럭을 출력하는 위상 쉬프터를 포함하되, 상기 제 1 클럭은 상기 외부 장치로 송신 데이터를 전송하는 데 사용되고, 그리고 상기 변조 클럭은 상기 외부 장치로부터 수신되는 수신 데이터를 샘플링하는 데 사용될 수 있다.
본 개시의 몇몇 실시 예들에 따르면, 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 그리고 상기 커맨드에 응답하는 응답을 상기 외부 장치로부터 수신하는 호스트 인터페이스는: 컨트롤 로직; 상기 컨트롤 로직의 제어에 응답하여, 상기 응답 또는 레벨 쉬프터로부터 수신되는 피드백 클럭 중 어느 하나를 선택하고, 그리고 선택된 신호에 기반하여 제 1 값을 출력하는 위상 쉬프트 검출기; 및 상기 컨트롤 로직의 제어에 응답하여, 상기 제 1 클럭의 위상을 상기 제 1 값에 기반하여 변조하고, 그리고 변조 클럭을 출력하는 위상 쉬프터를 포함하되, 상기 제 1 클럭은 송신 데이터를 상기 외부 장치로 상기 레벨 쉬프터를 거쳐 전송하는 데 사용되고, 그리고 상기 변조 클럭은 상기 외부 장치로부터 상기 레벨 쉬프터를 거쳐 수신되는 수신 데이터를 샘플링하는 데 사용될 수 있다.
본 개시의 몇몇 실시 예들에 따르면, 시스템-온-칩은 프로세서; 및 상기 프로세서의 제어 하에, 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 상기 커맨드 응답하는 응답을 상기 외부 장치로부터 수신하고, 그리고 클럭 변조기를 포함하는 인터페이스 회로를 포함하되, 상기 클럭 변조기는 상기 외부 장치로부터 수신되는 상기 응답 또는 레벨 쉬프터로부터 상기 제 1 클럭에 응답하여 수신되는 피드백 클럭 중 어느 하나를 선택하고, 상기 제 1 클럭의 위상을 선택된 신호에 기반하여 변조하고, 그리고 변조 클럭을 출력하되, 상기 제 1 클럭은 송신 데이터를 상기 외부 장치로 상기 레벨 쉬프터를 거쳐 전송하는 데 사용되고, 그리고 상기 변조 클럭은, 상기 외부 장치로부터 상기 레벨 쉬프터를 거쳐 수신되는 수신 데이터를 샘플링하는 데 사용될 수 있다.
본 개시의 몇몇 실시 예들에 따른 클럭 변조기는 장치로부터 수신되는 응답 또는 레벨 쉬프터로부터 수신되는 피드백 클럭에 기반하여, 호스트 내에서 사용되는 클럭의 위상을 변조할 수 있다. 이에 따라, 장치로부터 수신되는 데이터의 유효 윈도우 내 데이터가 더 효율적으로 호스트에 의해 처리될 수 있다.
도 1은 본 개시의 몇몇 실시 예들에 따라 메모리 시스템의 블록도를 도시한다.
도 2는 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기 및 위상 쉬프터의 블록도를 도시한다.
도 3은 본 개시의 몇몇 실시 예들에 따라 상승 에지 검출기의 블록도를 도시한다.
도 4는 본 개시의 몇몇 실시 예들에 따라 하강 에지 검출기의 블록도를 도시한다.
도 5는 본 개시의 몇몇 실시 예들에 따라 클럭 변조기의 동작을 나타내는 타이밍도를 도시한다.
도 6은 본 개시의 몇몇 실시 예들에 따라 메모리 시스템의 블록도를 도시한다.
도 7은 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기 및 위상 쉬프터의 블록도를 도시한다.
도 8은 본 개시의 몇몇 실시 예들에 따라 컨트롤 로직의 블록도를 도시한다.
도 9는 본 개시의 몇몇 실시 예들에 따라 클럭 변조기의 동작을 나타내는 타이밍도를 도시한다.
도 10은 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기 및 위상 쉬프터의 블록도를 도시한다.
도 11은 본 개시의 몇몇 실시 예들에 따른 전자 장치의 블록도를 도시한다.
도 2는 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기 및 위상 쉬프터의 블록도를 도시한다.
도 3은 본 개시의 몇몇 실시 예들에 따라 상승 에지 검출기의 블록도를 도시한다.
도 4는 본 개시의 몇몇 실시 예들에 따라 하강 에지 검출기의 블록도를 도시한다.
도 5는 본 개시의 몇몇 실시 예들에 따라 클럭 변조기의 동작을 나타내는 타이밍도를 도시한다.
도 6은 본 개시의 몇몇 실시 예들에 따라 메모리 시스템의 블록도를 도시한다.
도 7은 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기 및 위상 쉬프터의 블록도를 도시한다.
도 8은 본 개시의 몇몇 실시 예들에 따라 컨트롤 로직의 블록도를 도시한다.
도 9는 본 개시의 몇몇 실시 예들에 따라 클럭 변조기의 동작을 나타내는 타이밍도를 도시한다.
도 10은 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기 및 위상 쉬프터의 블록도를 도시한다.
도 11은 본 개시의 몇몇 실시 예들에 따른 전자 장치의 블록도를 도시한다.
이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들이 명확하고 상세하게 기재될 것이다.
이하에서, 첨부한 도면들을 참조하여, 본 개시의 바람직한 실시 예를 보다 상세하게 설명하고자 한다. 본 개시를 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 유사한 구성요소에 대해서는 유사한 참조부호가 사용되고, 그리고 유사한 구성요소에 대해서 중복된 설명은 생략된다.
도 1은 본 개시의 몇몇 실시 예들에 따라 메모리 시스템(1000)의 블록도를 도시한다. 도 1을 참조하면, 메모리 시스템(1000)은 호스트(1100) 및 장치(1200)를 포함할 수 있다.
호스트(1100)는 프로세서(1110), RAM(Random Access Memory; 1120), 사용자 인터페이스(1130), 및 호스트 인터페이스(1140)를 포함할 수 있다. 호스트(1100)의 구성 요소들은 내부 버스를 통해 서로 통신할 수 있다.
프로세서(1110)는 호스트(1100)의 전반적인 동작을 제어할 수 있다. 프로세서(1110)는 RAM(1120)으로 로드된 다양한 소프트웨어, 펌웨어, 또는 프로그램 코드 등을 실행하기 위한 연산을 수행할 수 있다. 프로세서(1110)는 호스트(1100)의 중앙 처리 장치로서의 기능을 수행할 수 있다. 프로세서(1110)는 하나 이상의 프로세서 코어들을 포함할 수 있다.
몇몇 실시 예들에 있어서, 프로세서(1110)는 호스트(1100)의 동작에 사용되는 클럭(CLK)을 생성할 수 있다. 생성된 클럭(CLK)은 내부 버스를 통해 호스트(1100)의 다른 구성 요소들로 전송될 수 있다. 프로세서(1110), RAM(1120), 사용자 인터페이스(1130), 및 호스트 인터페이스(1140)는 클럭(CLK)에 기반하여 동작할 수 있다.
RAM(1120)은 프로세서(1110)에 의해 처리되거나 또는 처리될 예정인 데이터 및 프로그램 코드들을 저장할 수 있다. RAM(1120)은 호스트(1100)의 주 기억 장치로서의 기능을 수행할 수 있다. RAM(1120)은 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), PRAM(Phase-change Random Access Memory), MRAM(Magnetic Random Access Memory), FeRAM(Ferroelectronic Random Access Memory), RRAM(Resistive Random Access Memory) 등을 포함할 수 있다. RAM(1120)는 버퍼 메모리 혹은 캐시 메모리 등으로도 지칭될 수 있다. 도시된 바와 달리, RAM(1120)의 개수는 하나 이상일 수 있다. 도시된 바와 달리, RAM(1120)는 호스트(1100)와 통신 가능한 외부 장치로서 구현될 수도 있다.
사용자 인터페이스(1130)는 사용자와 통신할 수 있다. 예를 들어, 사용자 인터페이스(1130)는 프로세서(1100)에 의해 생성된 데이터를 사용자로 제공할 수 있다. 몇몇 실시 예들에 있어서, 사용자 인터페이스(1130)는 키보드, 터치패드, 마우스, 마이크 등과 같은 다양한 입력 장치들 중 적어도 하나를 포함할 수 있다. 사용자 인터페이스(1130)는 모니터 또는 프린터 등과 같은 다양한 출력 장치들 중 적어도 하나를 포함할 수 있다.
호스트 인터페이스(1140)는 호스트(1100)의 외부 장치와 통신할 수 있다. 예를 들어, 호스트(1100)는 호스트 인터페이스(1140)를 통해 장치(1200)와 통신할 수 있다. 호스트 인터페이스(1140)는 다양한 유선 또는 무선 통신 프로토콜들에 기반하여, 호스트(1100)의 외부 장치와 통신할 수 있다.
도시된 실시 예에서, 호스트 인터페이스(1140)는 호스트 인터페이스(1140)에서 사용되는 프로토콜에 의해 장치(1200)와의 통신을 위해 결정된 클럭(CLK), 장치(1200)의 동작을 지시하기 위한 커맨드(CMD), 및 장치(1200)에 저장되고자 하는 데이터(DATA)를 장치(1200)로 전송할 수 있다. 호스트 인터페이스(1140)는 커맨드(CMD)에 대응하는 응답(RES) 및 장치(1200)에 저장된 데이터(DATA)를 장치(1200)로부터 수신할 수 있다. 몇몇 실시 예들에 있어서, 커맨드(CMD) 및 응답(RES)은 동일한 버스를 통해 전송될 수 있다.
호스트 인터페이스(1140)는 클럭 변조기(100)를 포함할 수 있다. 클럭 변조기(100)는 장치(1200)로부터 수신되는 응답(RES)에 기반하여, 장치(1200)로부터 수신되는 데이터(DATA)를 처리하는 데 사용하기 위해 클럭(CLK)을 변조할 수 있다. 클럭 변조기(100)는 컨트롤 로직(101), 위상 쉬프트 검출기(102), 및 위상 쉬프터(103)를 포함할 수 있다.
컨트롤 로직(101)은 위상 쉬프트 검출기(102) 및 위상 쉬프터(103)를 제어하기 위한 다양한 신호들을 생성할 수 있다. 장치(1200)로부터 수신된 응답(RES)에 기반하여, 컨트롤 로직(101)의 제어 하에, 위상 쉬프트 검출기(102)는 장치(1200)와의 통신에 사용되는 클럭(CLK)의 위상이 쉬프트 될 양을 결정할 수 있다.위상 쉬프터(103)는 클럭(CLK)의 위상을 위상 쉬프트 검출기(102)에 의해 결정된 값에 기반하여 변조할 수 있다.
몇몇 실시 예들에 있어서, 클럭 변조기(100)는 호스트(1100)로부터 장치(1200)로 커맨드(CMD)가 전송된 시점으로부터, 장치(1200)로부터 응답(RES)을 수신하는 데 걸리는 시간을 카운트하고, 그리고 카운트된 값에 기반하여 클럭(CLK)의 위상을 지연시킬 수 있다. 예를 들어, 위상 쉬프트 검출기(102)는 장치(1200)로 클럭(CLK)을 전송한 시점부터 일정 시간이 경과된 후에 카운트를 시작하고, 장치(1200)로부터 응답(RES)이 수신되는 것에 응답하여, 카운트된 값을 위상 쉬프터(103)로 출력할 수 있다. 위상 쉬프터(103)는 위상 쉬프트 검출기(102)에 의해 카운트된 값에 기반하여, 클럭(CLK)의 위상을 지연시킬 수 있다.
몇몇 실시 예들에 있어서, 호스트 인터페이스(1140)는 위상 쉬프터(103)에 의해 변조된 클럭을 사용하여, 장치(1200)로부터 수신된 데이터(DATA)를 처리할 수 있다. 장치(1200)와의 통신에 사용되는 클럭(CLK) 대신에 위상 쉬프터(103)에 의해 변조된 클럭을 사용함으로써, 호스트 인터페이스(1140)는 장치(1200)로부터 수신된 데이터(DATA)를 더 효율적으로 처리할 수 있다. 예를 들어, 변조된 클럭을 사용함으로써, 호스트 인터페이스(1140)는 장치(1200)로부터 수신되는 데이터(DATA)의 유효 윈도우(Valid Window) 및 클럭의 토글 타이밍이 중복되지 않음으로 인해 유효 데이터를 샘플링하는 데 실패하는 것을 방지할 수 있다. 이에 따라, 데이터(DATA)의 손실이 감소될 수 있다. 클럭 변조기(100)의 동작은 구체적으로 후술된다.
장치(1200)는 장치 컨트롤러(1210), 메모리 장치(1220), 및 장치 인터페이스(1230)를 포함할 수 있다. 장치(1200)의 구성 요소들은 내부 버스를 통해 서로 통신할 수 있다. 몇몇 실시 예들에 있어서, 장치(1200)는 호스트(1100)로부터 클럭(CLK) 또는 클럭(CLK)과 유사한 신호를 커맨드(CMD)와 함께 수신하는 다양한 장치들 중 어느 하나로서 구현될 수 있다. 클럭(CLK)과 유사한 신호는 활성 구간 및 비활성 구간을 갖되, 활성 구간에서는 클럭(CLK)과 유사한 파형을 갖고, 그리고 비활성 구간에서는 특정 값으로 고정된 신호일 수 있다. 예를 들어, 장치(1200)는 SD 카드 등과 같이, 동기식(synchronous) 인터페이스 등을 통해 호스트(1100)와 통신하는 장치로 구현될 수 있다.
장치 컨트롤러(1210)는 메모리 장치(1220) 및 장치 인터페이스(1230)를 호스트(1100)로부터 수신되는 커맨드(CMD)에 기반하여 제어할 수 있다. 장치 컨트롤러(1210)는 메모리 장치(1220) 및 장치 인터페이스(1230)의 동작을 제어하기 위한 다양한 신호들을 생성할 수 있다. 예를 들어, 장치 컨트롤러(1210)는 메모리 장치(1220)의 읽기 동작 또는 쓰기 동작 등과 같은 다양한 동작들을 지시하는 제어 신호들을 생성할 수 있다. 장치 컨트롤러(1210)는 호스트(1100)와 통신하기 위한 제어 신호들을 생성할 수 있다. 장치 컨트롤러(1210)는 생성된 신호들을 메모리 장치(1220) 및 장치 인터페이스(1230)로 전송할 수 있다.
메모리 장치(1220)는 호스트(1100)로부터 수신된 데이터(DATA)를 장치 컨트롤러(1210)의 제어 하에 저장할 수 있다. 호스트(1100)로부터의 요청에 응답하여, 메모리 장치(1220)는 메모리 장치(1220) 내 메모리 코어(미도시)에 저장된 데이터를 읽을 수 있다. 메모리 장치(1220)는 읽은 데이터를 장치 인터페이스(1230)로 전송할 수 있다.
장치 인터페이스(1230)는 다양한 유선 또는 무선 통신 프로토콜들에 기반하여 호스트(1100)와 통신할 수 있다. 도시된 실시 예에서, 장치 인터페이스(1230)는 클럭(CLK), 커맨드(CMD), 및 데이터(DATA)를 호스트 인터페이스(1140)로부터 수신할 수 있다. 수신된 커맨드(CMD)에 응답하여, 장치 인터페이스(123)는 커맨드(CMD)에 대응하는 응답(RES) 및 메모리 장치(1220)에 저장된 데이터를 호스트(1100)로 전송할 수 있다.
도 2는 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기(102) 및 위상 쉬프터(103)의 블록도를 도시한다. 도 1 및 도 2를 참조하면, 위상 쉬프트 검출기(102)는 상승 에지 검출기(111), 상승 에지 카운터(112), 하강 에지 검출기(121), 하강 에지 카운터(122), 가산기(130), 및 쉬프트 값 레지스터(140)를 포함할 수 있다. 위상 쉬프터(103)는 위상 변조기(150)를 포함할 수 있다.
위상 쉬프트 검출기(102) 및 위상 쉬프터(103)의 몇몇 구성 요소들은 클럭(CLKD)에 기반하여 동작할 수 있다. 클럭(CLKD)은 호스트(1100) 내에서 사용되기 위해 프로세서(1110)에 의해 생성되는 클럭일 수 있다. 컨트롤 로직(101)은 프로세서(1110)로부터 클럭(CLKD)을 수신하고, 그리고 클럭(CLKD)을 위상 쉬프트 검출기(102) 및 위상 쉬프터(103)로 제공할 수 있다. 또는 클럭(CLKD)은 위상 쉬프트 검출기(102) 및 위상 쉬프터(103) 내에서 사용되기 위해 컨트롤 로직(101)에 의해 호스트(1100) 내에서 사용되는 클럭이 체배 또는 분주된 클럭일 수 있다.
상승 에지 검출기(111) 및 하강 에지 검출기(121)는 응답(RES)을 장치(1200)로부터 수신할 수 있고, 그리고 클럭(CLKD)을 컨트롤 로직(101) 또는 프로세서(1110)로부터 제공받을 수 있다. 상승 에지 검출기(111) 및 하강 에지 검출기(121)는 응답(RES)의 시작 에지(예로서, 논리 하이에서 논리 로우로 하강하는 에지; 또는 시작 신호)을 클럭(CLKD)에 기반하여 검출할 수 있다. 예를 들어, 상승 에지 검출기(111)는 응답(RES)의 하강 에지 및 클럭(CLKD)의 상승 에지에 기반하여, 논리 하이에 대응하는 상승 에지 검출 신호(DTP)를 생성할 수 있다. 하강 에지 검출기(121)는 응답(RES)의 하강 에지 및 클럭(CLKD)의 하강 에지에 기반하여, 논리 하이에 대응하는 하강 에지 검출 신호(DTN)를 생성할 수 있다. 상승 에지 검출기(111) 및 하강 에지 검출기(121)의 동작은 구체적으로 후술된다.
상승 에지 카운터(112) 및 하강 에지 카운터(122)는 컨트롤 로직(101)에 의해 생성된 카운터 인에이블 신호(ENCT) 및 클럭(CLKD)에 기반하여 정수 값을 카운트할 수 있다. 예를 들어, 상승 에지 카운터(112)는 카운터 인에이블 신호(ENCT)에 의해 인에이블되고, 그리고 클럭(CLKD)의 상승 에지의 수를 0에서 부터 계산할 수 있다. 상승 에지 카운터(112)는 상승 에지 검출 신호(DTP)에 응답하여, 계산된 값을 상승 에지 카운트 값(CNTP)으로서 출력할 수 있다. 유사한 방식으로, 하강 에지 카운터(122)는 카운터 인에이블 신호(ENCT)에 의해 인에이블되고, 그리고 클럭(CLKD)의 하강 에지의 수를 계산하고, 그리고 하강 에지 검출 신호(DTN)에 응답하여, 계산된 값을 하강 에지 카운트 값(CNTN)으로서 출력할 수 있다.
컨트롤 로직(101)은 호스트(1100)가 장치(1200)로 커맨드(CMD)를 전송한 시점으로부터 일정 시간이 경과한 후에, 논리 하이에 대응하는 카운터 인에이블 신호(ENCT)를 출력할 수 있다. 예를 들어, 논리 하이에 대응하는 카운터 인에이블 신호(ENCT)가 출력되는 시점은 호스트(1100) 및 장치(1200) 사이의 통신과 연관된 표준들, 호스트(1100) 또는 장치(1200)의 사양, 또는 사용자의 요구에 기반하여 결정될 수 있다. 이에 따라, 상승 에지 카운터(112) 및 하강 에지 카운터(122)는 장치(1200)로부터 응답(RES)이 수신되는 데 소요되는 시간을 카운트할 수 있다. 다시 말해서, 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)은 장치(1200)로부터 응답(RES)이 수신되는 데 걸리는 시간 또는 응답(RES)을 수신하는 데 지연된 시간에 대응할 수 있다.
가산기(130)는 컨트롤 로직(101)에 의해 생성되는 가산기 인에이블 신호(ENAD)에 의해 인에이블될 수 있다. 가산기(130)는 상승 에지 카운터(112)로부터 상승 에지 카운트 값(CNTP)을 수신할 수 있고, 그리고 하강 에지 카운터(122)로부터 하강 에지 카운트 값(CNTN)을 수신할 수 있다. 가산기(130)는 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)을 더할 수 있다. 가산기(130)는 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)의 합을 쉬프트 값(SHFT)으로서 출력할 수 있다.
쉬프트 값 레지스터(140)는 가산기(130)로부터 수신된 쉬프트 값(SHFT)을 일시적으로 저장할 수 있다. 쉬프트 값 레지스터(140)는 저장된 쉬프트 값(SHFT)을 위상 변조기(150)로 출력할 수 있다.
위상 변조기(150)는 위상 쉬프트 검출기(102)의 쉬프트 값 레지스터(140)로부터 쉬프트 값(SHFT)을 수신할 수 있다. 위상 변조기(150)는 변조에 사용하기 위한 체배된 클럭(CLKD) 및 호스트(1100) 내에서 사용되는 클럭(CLK)을 수신할 수 있다. 위상 변조기(150)는 쉬프트 값(SHFT) 및 클럭(CLKD)에 기반하여, 클럭(CLK)의 위상을 지연시킬 수 있다. 예를 들어, 위상 변조기(150)는 클럭(CLK)의 위상을 지연하되, 클럭(CLK)이 지연되는 량은 쉬프트 값(SHFT) 및 클럭(CLKD)의 주기의 곱에 대응할 수 있다. 위상 변조기(150)는 위상이 지연된 클럭을 클럭(CLKM)으로서 출력할 수 있다. 클럭(CLKM)은 장치(1200)로부터 수신된 데이터(DATA)를 처리하는 데 사용될 수 있다.
몇몇 실시 예들에 있어서, 도시된 바와 달리, 위상 쉬프트 검출기(102)는 가산기를 더 포함할 수 있다. 가산기는 쉬프트 값 레지스터(140)로부터 출력되는 쉬프트 값(SHFT) 및 컨트롤 로직(101)으로부터 제공되는 보정 코드를 더할 수 있다. 보정 코드는 쉬프트 값(SHFT)을 보정하기 위해 프로세서(1110)에 의해 실행되는 프로그램 코드 또는 소프트웨어를 통해 계산될 수 있다. 위상 쉬프트 검출기(102)는 가산기의 덧셈 결과를 위상 쉬프터(103)의 위상 변조기(150)로 제공할 수 있다. 위상 변조기(150)는 클럭(CLK)의 위상을 가산기의 덧셈 결과에 기반하여 변조할 수 있다. 가산기는 도 10의 가산기(341)와 유사하게 구현되고, 그리고 유사하게 동작할 수 있다.
몇몇 실시 예들에 있어서, 도시된 바와 달리, 위상 쉬프트 검출기 (103)는 멀티플렉서를 더 포함할 수 있다. 멀티플렉서는 쉬프트 값(SHFT) 및 컨트롤 로직(101)으로부터 제공되는 변조 코드 중 어느 하나를 선택하고, 그리고 선택된 값을 위상 변조기(150)로 출력할 수 있다. 변조 코드는 클럭(CLK)의 위상을 쉬프트할 양과 연관된 코드로서, 프로세서(1110)에 의해 실행되는 프로그램 코드 또는 소프트웨어를 통해 계산될 수 있다. 위상 변조기(150)는 클럭(CLK)의 위상을 멀티플렉서에 의해 선택된 값에 기반하여 변조할 수 있다. 멀티플렉서는 도 10의 멀티플렉서(342)와 유사하게 구현될 수 있고, 그리고 유사하게 동작할 수 있다.
도 3은 본 개시의 몇몇 실시 예들에 따라 상승 에지 검출기(111)의 블록도를 도시한다. 도 1 내지 도 3을 참조하면, 상승 에지 검출기(111)는 제 1 내지 제 3 상승 에지 싱크로나이저들(111_1~111_3) 및 AND 게이트(ANDP)를 포함할 수 있다. 몇몇 실시 예들에 있어서, 제 1 내지 제 3 상승 에지 싱크로나이저들(111_1~111_3)은 플립-플롭 등과 같은 소자로서 구현될 수 있으나, 이에 한정되는 것은 아니다. 제 1 내지 제 3 상승 에지 싱크로나이저들(111_1~111_3)은 클럭(CLKD)의 상승 에지에 트리거될 수 있다.
제 1 상승 에지 싱크로나이저(111_1)는 장치(1200)로부터 수신되는 응답(RES) 및 클럭(CLKD)을 수신할 수 있다. 제 1 상승 에지 싱크로나이저(111_1)는 응답(RES)을 클럭(CLKD)의 상승 에지에 동기화되도록 지연시킬 수 있다. 예를 들어, 제 1 상승 에지 싱크로나이저(111_1)는 응답(RES)이 토글되는 것에 응답하여, 싱크로나이저 신호(SYNP1)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 싱크로나이저 신호(SYNP1)는 지연된 응답(RES)으로서 여겨질 수 있다.
제 2 상승 에지 싱크로나이저(111_2)는 제 1 상승 에지 싱크로나이저(111_1)로부터 수신되는 싱크로나이저 신호(SYNP1) 및 클럭(CLKD)을 수신할 수 있다. 제 2 상승 에지 싱크로나이저(111_2)는 싱크로나이저 신호(SYNP1)가 토글되는 것이 응답하여, 싱크로나이저 신호(SYNP2)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 싱크로나이저 신호(SYNP2)는 지연된 싱크로나이저 신호(SYNP1)로서 여겨질 수 있다. 제 2 상승 에지 싱크로나이저(111_2)는 싱크로나이저 신호(SYNP2)의 반전된 신호(~SYNP2)를 AND 게이트(ANDP)로 출력할 수 있다.
제 3 상승 에지 싱크로나이저(111_3)는 제 2 상승 에지 싱크로나이저(111_2)로부터 수신되는 싱크로나이저 신호(SYNP2) 및 클럭(CLKD)을 수신할 수 있다. 제 3 상승 에지 싱크로나이저(111_3)는 싱크로나이저 신호(SYNP2)가 토글되는 것에 응답하여, 싱크로나이저 신호(SYNP3)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 싱크로나이저 신호(SYNP3)는 지연된 싱크로나이저 신호(SYNP2)로서 여겨질 수 있다.
AND 게이트(ANDP)는 싱크로나이저 신호(SYNP3) 및 반전된 싱크로나이저 신호(SYNP2)에 대해 AND 연산을 수행할 수 있다. AND 게이트(ANDP)는 연산 결과를 상승 에지 검출 신호(DTP)로서 출력할 수 있다.
도 4는 본 개시의 몇몇 실시 예들에 따라 하강 에지 검출기(121)의 블록도를 도시한다. 도 1 내지 도 4를 참조하면, 하강 에지 검출기(121)는 제 1 내지 제 3 하강 에지 싱크로나이저들(121_1~121_3) 및 AND 게이트(ANDN)를 포함할 수 있다.
제 1 내지 제 3 하강 에지 싱크로나이저들(121_1~121_3)은 클럭(CLKD)의 하강 에지에 트리거될 수 있다. 제 1 내지 제 3 하강 에지 싱크로나이저들(121_1~121_3)은 제 1 내지 제 3 상승 에지 싱크로나이저들(111_1~111_3)과 유사하게 구현될 수 있고, 그리고 유사하게 동작할 수 있다. 예를 들어, 제 1 하강 에지 싱크로나이저(121_1)는 응답(RES)이 토글되는 것에 응답하여, 싱크로나이저 신호(SYNN1)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있으며, 이때 싱크로나이저 신호(SYNN1)는 지연된 응답(RES)으로서 여겨질 수 있다. 제 2 하강 에지 싱크로나이저(121_2)는 싱크로나이저 신호(SYNN1)를 클럭(CLKD)의 다음 하강 에지에 토글함으로써, 지연된 싱크로나이저 신호(SYNN1)인 싱크로나이저 신호(SYNN2)를 제 3 하강 에지 싱크로나이저(121_3)로 출력하고, 그리고 싱크로나이저 신호(SYNN2)의 반전된 신호(~SYNN2)를 AND 게이트(ANDN)로 출력할 수 있다. 제 3 하강 에지 싱크로나이저(121_3)는 싱크로나이저 신호(SYNN2)를 클럭(CLKD)의 다음 하강 에지에 토글함으로써 싱크로나이저 신호(SYNN3)를 AND 게이트(ANDN)로 출력할 수 있다.
AND 게이트(ANDN)는 싱크로나이저 신호(SYNN3) 및 반전된 싱크로나이저 신호(~SYNN2)에 대해 AND 연산을 수행할 수 있다. AND 게이트(ANDN)는 연산 결과를 하강 에지 검출 신호(DTN)로서 출력할 수 있다.
도 5는 본 개시의 몇몇 실시 예들에 따라 클럭 변조기(100)의 동작을 나타내는 타이밍도를 도시한다. 도 1 내지 도 5를 참조하여, 클럭 변조기(100)가 클럭(CLK)을 응답(RES)에 기반하여 변조함으로서 클럭(CLKM)을 출력하는 동작이 설명될 것이다.
위상 쉬프트 검출기(102)의 상태는 컨트롤 로직(101)에 의해 제어될 수 있다. 예를 들어, 컨트롤 로직(101)은 프로세서(1110)의 요청에 응답하여, 위상 쉬프트 검출기(102)를 파워-온(또는 턴-온)하고, 그리고 위상 쉬프트 검출기(102)의 상태를 유휴 상태로 설정할 수 있다. 위상 쉬프트 검출기(102)가 파워-온될 때, 위상 쉬프트 검출기(102)의 상승 에지 검출기(111), 상승 에지 카운터(112), 하강 에지 검출기(121), 하강 에지 카운터(122), 가산기(130), 및 쉬프트 값 레지스터(140)는 모두 논리 0에 대응하는 값으로 재설정(또는 초기화)될 수 있다. 이후, 컨트롤 로직(101)은 호스트 인터페이스(1140)에 의해 장치(1200)로 클럭(CLK) 및 커맨드(CMD)가 전송된 시점으로부터 일정 시간이 경과할 때까지, 위상 쉬프트 검출기(102)의 상태를 유휴 상태로 설정할 수 있다. 위상 쉬프트 검출기(102)가 유휴 상태를 유지하는 시간은 프로세서(1110)에 의해, 장치(1200) 및 호스트(1100)와 연관된 표준들(예를 들어, SD(Secure Digital) 카드 등), 장치(1200) 또는 호스트(1100)의 사양, 또는 사용자의 요구에 기반하여 미리 결정될 수 있다.
도 5에 도시된 실시 예에서, 유휴 상태에서, 카운터 인에이블 신호(ENCT)는 논리 로우에 대응할 수 있다. 이에 따라, 상승 에지 카운터(112) 및 하강 에지 카운터(122)는 동작하지 않을 수 있다(예를 들어, 초기 값인 '0'을 유지할 수 있다).
시점(t1)에서, 장치(1200)로 클럭(CLK) 및 커맨드(CMD)가 전송된 시점으로부터 일정 시간이 경과한 후에, 컨트롤 로직(101)은 위상 쉬프트 검출기(102)의 상태를 유휴 상태에서 에지 검출 상태로 변경할 수 있다. 이에 따라, 컨트롤 로직(101)으로부터 출력되는 카운터 인에이블 신호(ENCT)는 논리 로우에서 논리 하이로 상승할 수 있다. 카운터 인에이블 신호(ENCT) 및 클럭(CLKD)에 응답하여, 상승 에지 카운터(112) 및 하강 에지 카운터(122)가 인에이블될 수 있다. 도 5에 도시된 실시 예에서, 상승 에지 카운터(112) 및 하강 에지 카운터(122)는 3비트 카운터로 각각 예시되었으나, 이에 한정되는 것은 아니다.
시점(t21)에서, 장치(1200)로부터 수신되는 응답(RES)이 논리 하이에서 논리 로우로 하강할 수 있다. 응답(RES)이 하강하는 것에 기반하여, 상승 에지 검출기(111)의 제 1 상승 에지 싱크로나이저(111_1)는 싱크로나이저 신호(SYNP1)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 싱크로나이저 신호(SYNP1)가 토글되는 것에 기반하여, 상승 에지 검출기(111)의 제 2 상승 에지 싱크로나이저(111_2)는 싱크로나이저 신호(SYNP2) 및 싱크로나이저 신호(SYNP2)의 반전된 신호(~SYNP2)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 싱크로나이저 신호(SYNP2)가 토글되는 것에 기반하여, 상승 에지 검출기(111)의 제 3 상승 에지 싱크로나이저(111_3)는 싱크로나이저 신호(SYNP3)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. AND 게이트(ANDP)는 싱크로나이저 신호(SYNP3) 및 반전된 싱크로나이저 신호(~SYNP2)에 기반하여, 시점(t22)에서 클럭(CLKD)의 한 사이클동안 논리 하이에 대응하는 상승 에지 검출 신호(DTP)를 출력할 수 있다.
상승 에지 검출 신호(DTP)가 논리 하이로 상승할 때 상승 에지 카운터(112)에 의해 카운트된 값이 상승 에지 카운트 값(CNTP)으로서 출력될 수 있다. 도시된 실시 예에서, 상승 에지 카운트 값(CNTP)은 정수 '4'에 대응할 수 있다.
유사한 방식으로, 응답(RES)이 논리 하이에서 논리 로우로 하강하는 것에 기반하여, 하강 에지 검출기(121)의 제 1 하강 에지 싱크로나이저(121_1)는 싱크로나이저 신호(SYNN1)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있다. 싱크로나이저 신호(SYNN1)가 토글되는 것에 기반하여, 하강 에지 검출기(121)의 제 2 하강 에지 싱크로나이저(121_2)는 싱크로나이저 신호(SYNN2) 및 싱크로나이저 신호(SYNN2)의 반전된 신호(~SYNN2)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있다. 싱크로나이저 신호(SYNN2)가 토글되는 것에 기반하여, 하강 에지 검출기(121)의 제 3 하강 에지 싱크로나이저(121_3)는 싱크로나이저 신호(SYNN3)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있다. AND 게이트(ANDP)는 싱크로나이저 신호(SYNN3) 및 반전된 싱크로나이저 신호(~SYNN2)에 기반하여, 시점(t22)으로부터 클럭(CLKD)의 반 사이클이 경과된 후에, 클럭(CLKD)의 한 사이클 동안 논리 하이에 대응하는 하강 에지 검출 신호(DTN)를 출력할 수 있다.
하강 에지 검출 신호(DTN)가 논리 하이로 상승할 때 하강 에지 카운터(122)에 의해 카운트된 값이 하강 에지 카운트 값(CNTN)으로서 출력될 수 있다. 도시된 실시 예에서, 하강 에지 카운트 값(CNTN)은 정수 '4'에 대응할 수 있다.
시점(t31)에서, 상승 에지 검출기(111)로부터 출력되는 상승 에지 검출 신호(DTP)가 논리 하이에서 논리 로우로 하강하는 것에 응답하여, 컨트롤 로직(101)은 위상 쉬프트 검출기(102)의 상태를 에지 검출 상태에서 위상 저장 상태로 변경할 수 있다. 이에 따라, 컨트롤 로직(101)으로부터 출력되는 가산기 인에이블 신호(ENAD)가 클럭(CLKD)의 한 사이클 동안(예를 들어, 시점(t31)부터 시점(t32) 동안) 논리 로우에서 논리 하이로 상승할 수 있다. 가산기 인에이블 신호(ENAD)에 응답하여, 가산기(130)는 상승 에지 카운터(112)로부터 출력된 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)을 더할 수 있다.
시점(t32)에서, 가산기(130)는 계산된 값을 쉬프트 값(SHFT)으로서 쉬프트 값 레지스터(140)로 출력할 수 있다. 쉬프트 값 레지스터(140)는 위상 변조기(150)로 쉬프트 값(SHFT)에 기반하여 변조 신호(STM)를 출력할 수 있다. 위상 변조기(150)는 변조 신호(STM)에 기반하여, 클럭(CLK)을 변조할 수 있다. 도시된 실시 예에서, 쉬프트 값(SHFT)은 정수 '8'에 대응할 수 있다. 이에 따라, 위상 변조기(150)는 클럭(CLK)의 위상을, 클럭(CLKD)의 '8' 주기만큼 지연시킬 수 있다. 위상 변조기(150)는 클럭(CLK)에 비해 클럭(CLKD)의 '8' 주기만큼 지연된 변조된 클럭(CLKM)을 출력할 수 있다.
도시된 실시 예에서, 클럭 변조기(100)의 동작에 사용된 클럭(CLKD)의 주기는 실제보다 길게 강조된 것일 수 있다. 도시의 편의를 위해, 클럭(CLKD) 및 변조된 클럭(CLKM)의 위상 차이는 실제보다 작게 도시된 것일 수 있다.
도시된 바와 달리, 컨트롤 로직(101)은 위상 쉬프트 검출기(102)의 상태를 위상 저장 상태에서 다시 유휴 상태로 변경할 수도 있다. 예를 들어, 호스트(1100)가 장치(1200)로 커맨드(CMD)를 새롭게 전송하는 것에 응답하여, 컨트롤 로직(101)은 위상 쉬프트 검출기(102)의 상태를 다시 유휴 상태로 변경할 수 있다. 다른 예를 들어, 컨트롤 로직(101)은 프로세서(1110)의 업데이트 요청에 응답하여, 위상 쉬프트 검출기(102)의 상태를 다시 유휴 상태로 변경할 수도 있다.
도 6은 본 개시의 몇몇 실시 예들에 따라 메모리 시스템(2000)의 블록도를 도시한다. 도 6을 참조하면, 메모리 시스템(2000)은 호스트(2100), 장치(2200), 및 레벨 쉬프터(2300)를 포함할 수 있다.
호스트(2100)는 프로세서(2110), RAM(2120), 사용자 인터페이스(2130), 및 호스트 인터페이스(2140)를 포함할 수 있다. 프로세서(2110), RAM(2120), 및 사용자 인터페이스(2130)는 도 1의 프로세서(1110), RAM(1120), 및 사용자 인터페이스(1130)와 각각 유사하게 구현될 수 있고, 그리고 각각 유사하게 동작할 수 있다.
호스트 인터페이스(2140)는 호스트(2100)의 외부 장치와 통신할 수 있다. 예를 들어, 호스트(2100)는 호스트 인터페이스(2140)를 통해 레벨 쉬프터(2300)를 거쳐 장치(2200)와 통신할 수 있다. 호스트 인터페이스(2140)는 다양한 유선 또는 무선 통신 프로토콜들에 기반하여, 호스트(2100)의 외부 장치와 통신할 수 있다.
호스트 인터페이스(2140)는 호스트 인터페이스(2140)에서 사용되는 프로토콜에 의해 장치(2200)와의 통신을 위해 결정된 클럭(CLK1), 장치(1200)의 동작을 지시하기 위한 커맨드(CMD1), 및 장치(2200)에 저장되고자 하는 데이터(DATA1)를 장치(2200)로 전송할 수 있다. 도 1의 호스트 인터페이스(1140)와 달리, 도 6의 호스트 인터페이스(2140)는 커맨드(CMD1)에 대응하는 응답(RES1) 및 장치(2200)에 저장된 데이터(DATA1)를 레벨 쉬프터(2300)를 거쳐 장치(2200)로부터 수신하고, 또한 피드백 클럭(CLKFB)을 레벨 쉬프터(2300)로부터 수신할 수 있다. 피드백 클럭(CLKFB)은 레벨 쉬프터(2300)로 제공된 클럭(CLK)이 레벨 쉬프터(2300)에 의해 피드백되어 호스트(2100)로 반환된 신호일 수 있다.
호스트 인터페이스(2140)는 클럭 변조기(200)를 포함할 수 있다. 클럭 변조기(200)는 도 1의 클럭 변조기(100)와 유사하게 구현될 수 있고, 그리고 유사하게 동작할 수 있다. 예를 들어, 클럭 변조기(200)는 컨트롤 로직(201), 위상 쉬프트 검출기(202), 및 및 위상 쉬프터(203)를 포함할 수 있다. 도 1의 컨트롤 로직(101)과 유사하게, 컨트롤 로직(201)은 위상 쉬프트 검출기(202) 및 위상 쉬프터(203)를 제어하기 위한 다양한 신호들을 생성할 수 있다. 도 1의 위상 쉬프트 검출기(102)와 달리, 컨트롤 로직(201)의 제어 하에, 도 6의 위상 쉬프트 검출기(202)는 장치(2200)와의 통신에 사용되는 클럭(CLK1)의 위상이 쉬프트될 양을 응답(RES) 또는 피드백 클럭(CLKFB) 중 어느 하나에 기반하여 결정할 수 있다. 도 1의 위상 쉬프터(103)와 유사하게, 도 6의 위상 쉬프터(203)는 컨트롤 로직(201)의 제어 하에, 클럭(CLK1)의 위상을 위상 쉬프트 검출기(202)에 의해 결정된 값에 기반하여 변조할 수 있다. 호스트(2100)는 위상 쉬프터(203)에 의해 변조된 클럭을 사용하여, 장치(2200)로부터 레벨 쉬프터(2300)를 거쳐 수신된 데이터(DATA1)를 처리할 수 있다.
몇몇 실시 예들에 있어서, 클럭 변조기(200)는 호스트(2100)로부터 커맨드(CMD1)가 레벨 쉬프터(2300)로 전송된 시점으로부터, 장치(2200)로부터 레벨 쉬프터(2300)를 거쳐 응답(RES1)을 수신하는 데 걸리는 시간을 카운트하고, 그리고 카운트된 값에 기반하여 클럭(CLK1)의 위상을 지연시킬 수 있다.
몇몇 실시 예들에 있어서,클럭 변조기(200)는 레벨 쉬프터(2300)로 클럭(CLK1)을 전송한 후부터, 레벨 쉬프터(2300)로부터 피드백 클럭(CLKFB)을 수신하는 데 걸리는 시간을 카운트하고, 그리고 카운트된 값에 기반하여, 클럭(CLK1)의 위상을 지연시킬 수 있다. 예를 들어, 위상 쉬프트 검출기(202)는 장치(1200)로 클럭(CLK)을 전송한 시점부터 일정 시간이 경과된 후에 카운트를 시작하고, 레벨 쉬프터(2300)로부터 피드백 클럭(CLKFB)이 수신되는 것에 응답하여, 카운트된 값을 위상 쉬프터(203)로 출력할 수 있다. 위상 쉬프트 검출기(202)에 의해 카운트된 값에 기반하여, 위상 쉬프터(203)는 클럭(CLK1)의 위상을 지연시킬 수 있다.
몇몇 실시 예들에 있어서, 장치(2200)로부터 전송되는 데이터(DATA2)는 레벨 쉬프터(2300)에 의해 지연되고, 그 다음 호스트(2100)에 의해 데이터(DATA1)로서 수신될 수 있다. 이에 따라, 데이터(DATA1)의 유효 윈도우 또한 데이터(DATA2)에 비해 지연될 수 있다. 위상 쉬프터(203)는 레벨 쉬프터(2300)로 인한 데이터(DATA1)의 지연을 반영하여 클럭(CLK1)의 위상을 변조할 수 있다. 장치(2200)와의 통신에 사용되는 클럭(CLK1) 대신에 위상 쉬프터(203)에 의해 변조된 클럭을 사용함으로써, 호스트(2100)는 장치(2200)로부터 수신된 데이터(DATA1)를 더 효율적으로 처리할 수 있고, 그리고 데이터(DATA2)의 전송 과정 상의 손실을 방지할 수 있다. 예를 들어, 호스트 인터페이스(2140)는 변조된 클럭에 기반하여 데이터(DATA1)를 샘플링할 수 있고, 이에 따라 샘플링된 데이터(DATA1)는 장치(2200)로부터 전송되는 데이터(DATA2)와 실질적으로 동일해질 수 있다. 위상 쉬프트 검출기(202) 및 위상 쉬프터(203)의 동작은 구체적으로 후술된다.
레벨 쉬프터(2300)는 호스트(2100) 및 장치(2200)로부터 출력되는 신호들의 전압 레벨을 조정할 수 있다. 예를 들어, 레벨 쉬프터(2300)는 호스트(2100)로부터 출력되는 클럭(CLK1), 커맨드(CMD1), 및 데이터(DATA1)의 전압 레벨들을 장치(2200)에서 처리할 수 있는 전압 레벨로 조정할 수 있다. 레벨 쉬프터(2300)는 조정된 신호들인 클럭(CLK2), 커맨드(CMD2), 및 데이터(DATA2)를 장치(2200)로 전송할 수 있다. 유사한 방식으로, 레벨 쉬프터(2300)는 장치(2200)로부터 출력되는 클럭(CLK2), 응답(RES2), 및 데이터(DATA2)의 전압 레벨들을 호스트(2100)에서 처리할 수 있는 전압 레벨로 조정하고, 그리고 조정된 신호들을 호스트(2100)로 전송할 수 있다. 레벨 쉬프터(2300)는 호스트(2100)로부터 수신되는 클럭(CLK1)에 대해 피드백 클럭(CLKFB)을 호스트(2100)로 반환할 수 있다. 예를 들어, 피드백 클럭(CLKFB)은 호스트(2100)로부터 수신된 클럭(CLK1)의 전압 레벨이 조정된 후, 다시 역으로 조정되어, 호스트(2100)로 반환되는 클럭일 수 있다.
장치(2200)는 도 1의 장치(1200)와 유사하게 동작하고, 그리고 유사하게 구현될 수 있다. 장치(2200)는 장치 컨트롤러(2210), 메모리 장치(2220), 및 장치 인터페이스(2230)를 포함할 수 있다. 장치 컨트롤러(2210), 메모리 장치(2220), 및 장치 인터페이스(2230)는 도 1의 장치(1200)의 장치 컨트롤러(1210), 메모리 장치(1220), 및 장치 인터페이스(1230)와 유사하게 동작할 수 있고, 그리고 유사하게 구현될 수 있다.
도 1의 장치(1200)와 달리, 도 6의 장치(2200)는 호스트(2100)로부터 전송된 신호들을 레벨 쉬프터(2300)를 거쳐 수신할 수 있다. 예를 들어, 장치(2200)는 레벨 쉬프터(2300)에 의해 조정된 클럭(CLK2), 커맨드(CMD2), 및 데이터(DATA2)를 수신할 수 있다. 커맨드(CMD2)에 응답하여, 장치(2200)는 응답(RES2) 및 데이터(DATA2)를 레벨 쉬프터(2300)로 전송할 수 있다. 응답(RES2) 및 데이터(DATA2)는 레벨 쉬프터(2300)에 의해 조정되고, 그리고 호스트(2100)로 응답(RES1) 및 데이터(DATA1)로서 제공될 수 있다.
도 7은 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기(202) 및 위상 쉬프터(203)의 블록도를 도시한다. 위상 쉬프트 검출기(202)는 멀티플렉서(202_1), 상승 에지 검출기(211), 상승 에지 카운터(212), 하강 에지 검출기(221), 하강 에지 카운터(222), 가산기(230), 쉬프트 값 레지스터(240), 및 위상 변조기(250)를 포함할 수 있다. 도 1, 도 2, 도 6, 및 도 7을 참조하여, 도 2의 위상 쉬프트 검출기(102) 및 도 7의 위상 쉬프트 검출기(202)의 차이점이 설명될 것이다.
도 2의 위상 쉬프트 검출기(102)와 달리, 도 7의 위상 쉬프트 검출기(202)는 멀티플렉서(202_1)를 더 포함할 수 있다. 컨트롤 로직(201)은 프로세서(2210)의 제어 하에, 응답(RES1) 및 피드백 클럭(CLKFB) 중 어느 하나를 선택하는 입력 선택 신호(SELIN)를 생성할 수 있다. 멀티플렉서(202_1)는 입력 선택 신호(SELIN)에 응답하여, 레벨 쉬프터(2300)로부터 제공되는 응답(RES1) 및 피드백 클럭(CLKFB) 중 어느 하나를 출력할 수 있다.
위상 쉬프트 검출기(202)의 상승 에지 검출기(211), 상승 에지 카운터(212), 하강 에지 검출기(221), 및 하강 에지 카운터(222), 가산기(230), 및 쉬프트 값 레지스터(240), 그리고 위상 쉬프터(203)의 위상 변조기(250)는 도 2의 위상 쉬프트 검출기(102)의 상승 에지 검출기(111), 상승 에지 카운터(112), 하강 에지 검출기(121), 하강 에지 카운터(122), 가산기(130), 및 쉬프트 값 레지스터(140), 그리고 위상 쉬프터(103)의 위상 변조기(150)와 각각 유사하게 구현되고, 그리고 유사하게 동작할 수 있다. 예를 들어, 멀티플렉서(202_1)에 의해 응답(RES1)이 선택될 때, 위상 쉬프트 검출기(202)의 구성 요소들, 위상 변조기(203)의 구성 요소, 및 컨트롤 로직(201)은 도 3 내지 도 5를 참조하여 상술된 방식과 유사하게 동작할 수 있다.
멀티플렉서(202_1)에 의해 피드백 클럭(CLKFB)이 선택될 때, 상승 에지 검출기(211) 및 하강 에지 검출기(221)는 응답(RES1) 대신 피드백 클럭(CLKFB)에 기반하여 상승 에지 검출 신호(DTP) 및 하강 에지 검출 신호(DTN)를 각각 출력할 수 있다. 예를 들어, 상승 에지 검출기(211)는 도 3의 상승 에지 검출기(111)와 유사하게 구현될 수 있다. 도 3의 상승 에지 검출기(111)와 달리, 상승 에지 검출기(211)의 싱크로나이저들은 싱크로나이저 신호들(SYNP1, SYNP2, ~SYNP2, SYNP3)을 응답(RES) 대신 피드백 클럭(CLKFB)에 기반하여 출력할 수 있다. 유사한 방식으로, 하강 에지 검출기(221)는 도 4의 하강 에지 검출기(121)와 유사하게 구현될 수 있으나, 하강 에지 검출기(221)의 싱크로나이저들은 싱크로나이저 신호들(SYNN1, SYNN2, ~SYNN2, SYNN3)을 응답(RES1) 대신 피드백 클럭(CLKFB)에 기반하여 출력할 수 있다. 멀티플렉서(202_1)에 의해 피드백 클럭(CLKFB)에 선택될 때의 위상 쉬프트 검출기(202), 위상 쉬프터(203), 및 컨트롤 로직(201)의 동작은 좀 더 구체적으로 후술된다.
도 8은 본 개시의 몇몇 실시 예들에 따라 컨트롤 로직(201)의 블록도를 도시한다. 도 6, 도 7, 및 도 8을 참조하면, 컨트롤 로직(201)은 카운터 인에이블러(201_1)를 포함할 수 있다.
카운터 인에이블러(201_1)는 프로세서(2110)로부터 피드백 클럭 인에이블 신호(ENCFB)를 수신할 수 있다. 피드백 클럭 인에이블 신호(ENCFB)는 클럭 변조기(200)로 하여금 피드백 클럭(CLKFB)에 기반하여 클럭(CLK1)을 변조하도록 지시하는 신호일 수 있다. 피드백 클럭 인에이블 신호(ENCFB)가 논리 하이에 대응할 때, 컨트롤 로직(201)은 피드백 클럭(CLKFB)을 선택하는 입력 선택 신호(SELIN)를 위상 쉬프트 검출기(202)의 멀티플렉서(202_1)로 제공하고, 그리고 카운터 인에이블러(201_1)를 인에이블할 수 있다. 피드백 클럭 인에이블 신호(ENCFB)가 논리 로우에 대응할 때, 컨트롤 로직(201)은 응답(RES)을 선택하는 입력 선택 신호(SELIN)를 위상 쉬프트 검출기(202)의 멀티플렉서(202_1)로 제공하고, 카운터 인에이블러(201_1)를 인에이블하는 대신에, 도 5를 참조하여 상술된 방식으로 카운터 인에이블 신호(ENCT)를 위상 쉬프트 검출기(202)로 제공할 수 있다.
카운터 인에이블러(201_1)는 카운터 싱크로나이저(201_11), 클럭 하강 에지 검출기(201_12), 및 인에이블 신호 생성기(201_13)를 포함할 수 있다. 카운터 싱크로나이저(201_11)는 플립-플롭 등과 같은 소자로 구현될 수 있다. 카운터 싱크로나이저(201_11)는 클럭(CLK1) 및 체배된 클럭(CLKD)을 수신할 수 있다. 카운터 싱크로나이저(201_11)는 클럭(CLK1)이 토글되는 것에 응답하여, 체배된 클럭(CLKD)의 다음 상승 에지에 클럭(CLK1_SY)을 출력할 수 있다. 클럭(CLK1_SY)은 클럭(CLK1)이 클럭(CLKD)의 한 사이클만큼 지연된 신호로서 여겨질 수 있다.
클럭 하강 에지 검출기(201_12)는 클럭(CLK1) 및 체배된 클럭(CLKD)을 수신할 수 있다. 클럭 하강 에지 검출기(201_12)는 클럭(CLK1)의 하강 에지에 응답하여, 클럭(CLKD)의 한 사이클 동안 논리 하이에 대응하는 클럭(CLK1_NE)을 생성할 수 있다. 클럭 하강 에지 검출기(201_12)는 클럭(CLK1_NE)을 인에이블 신호 생성기(201_13)로 출력할 수 있다.
인에이블 신호 생성기(201_13)는 카운터 인에이블 신호(ENCT)를 클럭(CLK1_SY) 및 클럭(CLK1_NE)에 기반하여 생성할 수 있다. 인에이블 신호 생성기(201_13)는 클럭(CLK1_SY) 및 클럭(CLK1_NE)에 기반하여, 카운터 인에이블 신호(ENCT)를 생성할 수 있다. 인에이블 신호 생성기(201_13)에 의해 생성되는 카운터 인에이블 신호(ENCT)는 위상 쉬프트 검출기(202)가 파워-온된 후(또는 초기화된 후) 처음으로 클럭(CLK1_SY) 및 클럭(CLK1_NE)이 동시에 논리 하이에서 논리 로우로 하강하는 시점부터 논리 하이에 대응할 수 있다. 카운터 인에이블 신호(ENCT)는 프로세서(2110)의 요청에 의해 다시 논리 로우에 대응하도록 재설정될 수 있다.
피드백 클럭 인에이블 신호(ENCFB)가 논리 로우에 대응할 때, 카운터 인에이블러(201_1)는 카운터 인에이블 신호(ENCT)를 카운터 싱크로나이저(201_11) 및 클럭 하강 에지 검출기(201_12)를 인에이블하지 않고, 응답(RES1)에 기반하여 생성할 수 있다. 예를 들어, 호스트(2100)는 응답(RES1)의 지연 시간을 카운트하도록 구성된 카운터를 더 포함할 수 있다. 응답(RES1)의 지연 시간을 카운트하는 카운터는 호스트(2100) 및 장치(2200) 사이의 통신과 연관된 표준, 호스트(2100) 또는 장치의 사양, 또는 사용자의 요구 등에 기반하여 미리 결정된 시간을 카운트하고, 그리고 카운트된 시간이 미리 결정된 시간을 초과하면, 논리 하이에 대응하는 신호를 출력할 수 있다. 응답(RES1)의 지연 시간을 카운트하는 카운터로부터 출력되는 논리 하이의 신호에 응답하여, 인에이블 신호 생성기(201_13)는 논리 하이에 대응하는 카운터 인에이블 신호(ENCT)를 출력할 수 있다.
논리 하이에 대응하는 카운터 인에이블 신호(ENCT)에 응답하여, 클럭(CLK1)이 레벨 쉬프터(2300)로 전송된 시점으로부터 일정 시간이 경과한 후에, 상승 에지 카운터(212) 및 하강 에지 카운터(222)가 인에이블될 수 있다. 이에 따라, 상승 에지 카운터(212) 및 하강 에지 카운터(222)는 피드백 클럭(CLKFB)의 수신이 지연되는 시간을 카운트할 수 있다.
도 9는 본 개시의 몇몇 실시 예들에 따라 클럭 변조기(200)의 동작을 나타내는 타이밍도를 도시한다. 도 6 내지 도 9를 참조하여, 클럭 변조기(200)가 클럭(CLK1)을 피드백 클럭(CLKFB)에 기반하여 변조함으로서 클럭(CLKM)을 출력하는 동작이 설명될 것이다.
도 5를 참조하여 상술된 방식과 유사하게, 위상 쉬프트 검출기 (202)의 상태는 컨트롤 로직(201)에 의해 제어될 수 있다. 예를 들어, 컨트롤 로직(201)은 프로세서(2110)의 요청에 응답하여, 위상 쉬프트 검출기(202)를 파워-온(또는 초기화)할 수 있다. 컨트롤 로직(201)은 호스트 인터페이스(2140)에 의해 장치(2200)로 레벨 쉬프터(2300)를 거쳐 클럭(CLK) 및 커맨드(CMD)가 전송된 시점으로부터 일정 시간이 경과할 때까지, 위상 쉬프트 검출기(202)의 상태를 유휴 상태로 설정할 수 있다. 일정 시간이 지난 후에, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 유휴 생태에서 에지 검출 상태로 변경할 수 있다. 위상 쉬프트 검출기(202)의 상태가 유휴 상태로 설정되는 시간의 길이는 호스트(2100) 및 장치(2200) 사이의 통신과 연관된 표준, 호스트(2100) 또는 장치(2200)의 사양, 또는 사용자의 요구 등에 기반하여 결정될 수 있다.
다른 예를 들어, 카운터 인에이블러(201_1)에 의해 논리 하이에 대응하는 카운터 인에이블 신호(ENCT)가 출력되는 것에 응답하여, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 유휴 상태에서 에지 검출 상태로 변경할 수 있다.
예를 들어, 도 9에 도시된 실시 예에서, 유휴 상태에서, 시점(t41) 이전에, 카운터 인에이블 신호(ENCT)는 논리 로우에 대응할 수 있다. 이에 따라, 상승 에지 카운터(212) 및 하강 에지 카운터(222)는 동작하지 않을 수 있다.
카운터 인에이블러(201_1)의 카운터 싱크로나이저(201_11)는 클럭(CLK1)이 토글되는 것에 응답하여, 클럭(CLK1_SY)을 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 클럭 하강 에지 검출기(201_12)는 클럭(CLK1)의 하강 에지에 응답하여, 클럭(CLKD)의 한 사이클 동안 논리 하이에 대응하는 클럭(CLK1_NE)을 출력할 수 있다. 인에이블 신호 생성기(201_13)는 위상 쉬프트 검출기(202)가 인에이블된 후 처음으로 클럭(CLK1_SY) 및 클럭(CLK1_NE)이 동시에 논리 하이에서 논리 로우로 하강하는 시점(예를 들어, 시점(t41))부터 위상 쉬프트 검출기(202)가 재설정되기 전까지 논리 하이에 대응하도록 카운터 인에이블 신호(ENCT)를 생성할 수 있다. 시점(t41)에서 카운터 인에이블 신호(ENCT)가 논리 로우에서 논리 하이로 상승하면, 위상 쉬프트 검출기(202)의 상태는 유휴 상태에서 에지 검출 상태로 변경될 수 있고, 그리고 상승 에지 카운터(212) 및 하강 에지 카운터(222)가 인에이블될 수 있다.
상승 에지 검출기(211)의 제 1 상승 에지 싱크로나이저는 피드백 클럭(CLKFB)이 토글되는 것에 응답하여, 싱크로나이저 신호(SYNP1)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 싱크로나이저 신호(SYNP1)가 토글되는 것에 응답하여, 상승 에지 검출기(211)의 제 2 상승 에지 싱크로나이저는 싱크로나이저 신호(SYNP2)를 클럭(CLKD)의 다음 상승 에지에 토글하고, 그리고 싱크로나이저 신호(SYNP2)의 반전된 신호(~SYNP2)를 출력할 수 있다. 싱크로나이저 신호(SYNP2)가 토글되는 것에 응답하여, 상승 에지 검출기(211)의 제 3 상승 에지 싱크로나이저는 싱크로나이저 신호(SYNP3)를 클럭(CLKD)의 다음 상승 에지에 토글할 수 있다. 상승 에지 검출기(211)의 AND 게이트는 싱크로나이저 신호(SYNP3) 및 반전된 싱크로나이저 신호(~SYNP2)에 대해 AND 연산을 수행함으로써 상승 에지 검출 신호(DTP)를 출력할 수 있다.
상승 에지 검출 신호(DTP)가 논리 하이로 상승할 때 상승 에지 카운터(212)에 의해 카운트된 값이 상승 에지 카운트 값(CNTP)으로서 출력될 수 있다. 도시된 실시 예에서, 상승 에지 카운트 값(CNTP)은 정수 '2'에 대응할 수 있다.
유사한 방식으로, 피드백 클럭(CLKFB)이 토글되는 것에 응답하여, 하강 에지 검출기(221)의 제 1 하강 에지 싱크로나이저는 싱크로나이저 신호(SYNN1)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있다. 싱크로나이저 신호(SYNN1)가 토글되는 것에 응답하여, 하강 에지 검출기(221)의 제 2 하강 에지 싱크로나이저는 싱크로나이저 신호(SYNN2)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있고, 그리고 싱크로나이저 신호(SYNN2)의 반전된 신호(~SYNN2)를 출력할 수 있다. 싱크로나이저 신호(SYNN2)가 토글되는 것에 응답하여, 하강 에지 검출기(221)의 제 3 하강 에지 싱크로나이저는 싱크로나이저 신호(SYNN3)를 클럭(CLKD)의 다음 하강 에지에 토글할 수 있다. 하강 에지 검출기(221)의 AND 게이트는 싱크로나이저 신호(SYNN3) 및 반전된 싱크로나이저 신호(~SYNN2)에 대해 AND 연산을 수행함으로써 하강 에지 검출 신호(DTN)를 출력할 수 있다.
하강 에지 검출 신호(DTN)가 논리 하이로 상승할 때(예를 들어, 시점(t42)에서), 하강 에지 카운터(222)에 의해 카운트된 값이 하강 에지 카운트 값(CNTN)으로서 출력될 수 있다. 도시된 실시 예에서, 하강 에지 카운트 값(CNTN)은 정수 '1'에 대응할 수 있다.
시점(t51)에서, 도 5를 참조하여 상술된 방식과 유사하게, 상승 에지 검출기(211)로부터 출력되는 상승 에지 검출 신호(DTP)가 논리 하이에서 논리 로우로 하강하는 것에 응답하여, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태에서 위상 저장 상태로 변경할 수 있다. 상승 에지 검출 신호(DTP)가 논리 하이에서 논리 로우로 하강됨에 따라 클럭(CLKD)의 한 사이클 동안 논리 하이에 대응하는 가산기 인에이블 신호(ENAD)가 컨트롤 로직(201)으로부터 출력될 수 있다. 가산기 인에이블 신호(ENAD)에 응답하여, 가산기(230)는 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)을 더할 수 있다.
시점(t52)에서, 가산기(230)는 계산된 값을 쉬프트 값(SHFT)으로서 쉬프트 값 레지스터(240)로 출력할 수 있다. 쉬프트 값 레지스터(240)는 위상 변조기(20)로 쉬프트 값(SHFT)을 출력할 수 있다. 위상 변조기(250)는 쉬프트 값(SHFT)에 기반하여, 클럭(CLK)을 변조할 수 있다. 도시된 실시 예에서, 쉬프트 값(SHFT)은 정수 '3'에 대응할 수 있다. 위상 변조기(250)는 클럭(CLK)의 위상을, 클럭(CLKD)의 '3' 주기만큼 지연시키고, 그리고 지연된 클럭을 변조된 클럭(CLKM)으로서 출력할 수 있다. 이후, 컨트롤 로직(201)에 의해, 위상 쉬프트 검출기(202)는 다시 유휴 상태로 변경될 수 있다.
도 5를 참조하여 상술된 방식과 달리, 도 9에 도시된 실시 예에서, 위상 쉬프트 검출기(202)의 상태가 위상 저장 상태로 변경된 시점으로부터 클럭(CLKD)의 1 주기가 경과된 후에, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 다시 유휴 상태로 변경할 수 있다. 유휴 상태에서, 비록 상승 에지 검출 신호(DTP) 및 하강 에지 검출 신호(DTN)에 응답하여 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)이 변경되더라도, 가산기(230)는 인에이블되지 않을 수 있다. 따라서, 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)이 변경되더라도, 쉬프트 값 레지스터(240)에 저장된 쉬프트 값(SHFT)은 변하지 않을 수 있다.
예를 들어, 시점(t61)에서, 하강 에지 검출 신호(DTN)는 논리 하이로 상승할 수 있고, 이에 따라 하강 에지 카운트 값(CNTN)이 정수 '5'로 업데이트될 수 있다. 유사한 방식으로, 클럭(CLKD)의 반 사이클 후에, 상승 에지 검출 신호(DTP) 또한 논리 하이로 상승할 수 있고, 이에 따라 상승 에지 카운트 값(CNTP)이 정수 '6'으로 업데이트될 수 있다. 그러나, 가산기 인에이블 신호(ENAD)는 논리 하이로 상승하지 않을 수 있고, 이에 따라 가산기(230)는 덧셈 연산을 수행하지 않을 수 있다.
프로세서(2110)에 의해 미리 결정된 시간이 경과된 후에, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태로 변경할 수 있다. 예를 들어, 유휴 상태에서, 클럭(CLK1_NE)이 논리 하이에서 논리 로우로 토글되는 것에 응답하여, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태로 변경할 수 있다. 다른 예를 들어, 컨트롤 로직(201)은 상승 에지 카운터(212)의 값이 다시 '0'으로 설정되는 것에 응답하여, 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태로 변경할 수 있다.
예를 들어, 시점(t71)에서, 컨트롤 로직(201)은 클럭(CLK1_NE)이 논리 로우로 토글되는 것에 응답하여, 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태로 변경할 수 있다. 도시된 바와 달리, 컨트롤 로직(201)은 프로세서(2110)의 요청, 또는 위상 쉬프트 검출기(202)가 유휴 상태로 변경된 시점으로부터 미리 결정된 시간이 경과한 것에 응답하여, 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태로 변경할 수도 있다.
시점(t72)에서, 하강 에지 검출 신호(DTN)가 논리 로우에서 논리 하이로 상승할 수 있다. 이에 따라, 하강 에지 카운트 값(CNTN)이 정수 '1'로 업데이트될 수 있다. 클럭(CLKD)의 반 사이클 이후, 상승 에지 검출 신호(DTP)가 논리 로우에서 논리 하이로 상승할 수 있다. 이에 따라, 상승 에지 카운트 값(CNTP)이 정수 '2'로 업데이트될 수 있다.
이후, 상술된 방식과 유사하게, 상승 에지 검출기(211)로부터 출력되는 상승 에지 검출 신호(DTP)가 논리 하이에서 논리 로우로 하강하는 것에 응답하여, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 에지 검출 상태에서 위상 저장 상태로 변경할 수 있다. 이에 따라, 가산기(230)가 다시 인에이블될 수 있고, 그리고 쉬프트 값(SHFT)이 업데이트될 수 있다. 예를 들어, 시점(t81)에서, 상승 에지 검출 신호(DTP)가 논리 하이에서 논리 로우로 하강됨에 따라 클럭(CLKD)의 한 사이클 동안 논리 하이에 대응하는 가산기 인에이블 신호(ENAD)가 컨트롤 로직(201)으로부터 출력될 수 있다. 가산기 인에이블 신호(ENAD)에 응답하여, 가산기(230)는 상승 에지 카운트 값(CNTP) 및 하강 에지 카운트 값(CNTN)을 더할 수 있다.
위상 쉬프트 검출기(202)의 상태가 위상 저장 상태로 변경된 시점으로부터 클럭(CLKD)의 1 주기가 경과된 후에, 컨트롤 로직(201)은 위상 쉬프트 검출기(202)의 상태를 다시 유휴 상태로 변경할 수 있다. 예를 들어, 시점(t82)에서, 가산기(230)는 계산된 값을 쉬프트 값(SHFT)으로서 쉬프트 값 레지스터(240)로 출력할 수 있다. 쉬프트 값 레지스터(240)는 위상 변조기(203)로 쉬프트 값(SHFT)을 출력할 수 있다. 위상 변조기(250)는 쉬프트 값(SHFT)에 기반하여, 클럭(CLK)을 변조할 수 있다. 도시된 실시 예에서, 쉬프트 값(SHFT)은 정수 '3'에 대응할 수 있다. 위상 변조기(250)는 클럭(CLK)의 위상을, 클럭(CLKD)의 '3' 주기만큼 지연시키고, 그리고 지연된 클럭을 변조된 클럭(CLKM)으로서 출력할 수 있다. 이후, 컨트롤 로직(201)에 의해, 위상 쉬프트 검출기(202)는 다시 유휴 상태로 변경될 수 있다.
도 10은 본 개시의 몇몇 실시 예들에 따라 위상 쉬프트 검출기(302) 및 위상 쉬프터(303)의 블록도를 도시한다. 몇몇 실시 예들에 있어서, 도 6의 클럭 변조기(200)는 위상 쉬프트 검출기(202) 대신에 위상 쉬프트 검출기(302)를 포함할 수 있고, 그리고 위상 쉬프터(203) 대신에 위상 쉬프터(303)를 포함할 수 있다. 도 6 및 도 10을 참조하면, 위상 쉬프트 검출기(302)는 멀티플렉서(302_1), 상승 에지 검출기(311), 상승 에지 카운터(312), 하강 에지 검출기(321), 하강 에지 카운터(322), 가산기(330), 보상기(331), 쉬프트 값 레지스터(340), 가산기(341), 및 멀티플렉서(342)를 포함할 수 있다. 위상 쉬프터(303)는 위상 변조기(350)를 포함할 수 있다. 도 6, 도 7, 및 도 10을 참조하여, 도 7의 위상 쉬프트 검출기(202) 및 위상 쉬프터(203) 그리고 도 10의 위상 쉬프트 검출기(302) 및 위상 쉬프터(302)의 차이점이 설명될 것이다.
멀티플렉서(302_1), 상승 에지 검출기(311), 상승 에지 카운터(312), 하강 에지 검출기(321), 하강 에지 카운터(322), 가산기(330), 쉬프트 값 레지스터(340), 및 위상 변조기(350)는 도 7의 멀티플렉서(202_1), 상승 에지 검출기(211), 상승 에지 카운터(212), 하강 에지 검출기(221), 하강 에지 카운터(222), 가산기(230), 쉬프트 값 레지스터(240), 및 위상 변조기(250)와 각각 유사하게 구현될 수 있고, 그리고 유사하게 동작할 수 있다.
도 7의 위상 쉬프트 검출기(202)에 비해, 도 10의 위상 쉬프트 검출기(302)는 보상기(331), 가산기(341) 및 멀티플렉서(342)를 더 포함할 수 있다. 보상기(331)는 시간에 따라 변화하는 쉬프트 값(SHFT)을 보상하기 위한 연산들을 수행할 수 있다. 보상기(331)는 복수의 주기들의 피드백 클럭(CLKFB)이 수신되는 동안에 가산기(330)로부터 출력된 쉬프트 값들의 평균을 계산할 수 있다. 예를 들어, 보상기(331)는 128 주기의 피드백 클럭(CLKFB)이 수신되는 동안에 가산기(330)로부터 출력되는 쉬프트 값들의 평균을 계산할 수 있다. 보상기(331)는 계산된 평균에 기반하여 보상된 쉬프트 값(SHFTC)을 생성하고, 그리고 보상된 쉬프트 값(SHFTC)을 쉬프트 값 레지스터(340)로 전송할 수 있다. 상술된 바와 달리, 보상기(331)는 쉬프트 값(SHFT)을 보상하기 위한 다른 연산들을 더 수행할 수도 있다.
가산기(341)는 보상기(331)로부터 보상된 쉬프트 값(SHFTC)을 수신할 수 있고, 그리고 컨트롤 로직(201; 또는 프로세서(2110))으로부터 코드(CODE1)를 수신할 수 있다. 코드(CODE1)는 보상된 쉬프트 값(SHFTC)을 조정하기 위한 코드일 수 있다. 예를 들어, 코드(CODE1)는 보상된 쉬프트 값(SHFTC)의 오프셋을 보정하기 위해 소프트웨어적으로 계산된 코드일 수 있다. 코드(CODE1)는 프로세서(2110)에 의해 계산되거나, 또는 프로세서(2110)의 요청에 응답하여 컨트롤 로직(201)에 의해 생성될 수 있다. 가산기(341)는 보상된 쉬프트 값(SHFTC) 및 코드(CODE1)에 대해 덧셈 연산을 수행할 수 있다.
멀티플렉서(342)는 가산기(341)로부터 덧셈 연산의 결과를 수신할 수 있고, 그리고 컨트롤 로직(201)(또는 프로세서(2110))으로부터 코드(CODE2)를 수신할 수 있다. 멀티플렉서(342)는 컨트롤 로직(201)으로부터 쉬프트 값 선택 신호(SELSH)를 수신할 수 있다. 쉬프트 값 선택 신호(SELSH)는 가산기(341)의 계산 결과 및 코드(CODE2) 중 어느 하나를 선택하기 위해 컨트롤 로직(201)에 의해 생성된 신호일 수 있다. 코드(CODE2)는 보상된 쉬프트 값(SHFTC) 대신에 클럭(CLK)의 위상을 변조하는 데 사용되기 위한 코드일 수 있다. 예를 들어, 코드(CODE2)는 클럭(CLK)의 위상을 변조함으로써 데이터 유효 윈도우를 조정하기 위해 프로세서(2110)에 의해 소프트웨어적으로 계산된 코드일 수 있다.
멀티플렉서(342)는 쉬프트 값 선택 신호(SELSH)에 기반하여, 가산기(341)에 의해 계산된 값 또는 코드(CODE2) 중 어느 하나를 위상 변조기(350)로 출력할 수 있다. 위상 변조기(350)는 멀티플렉서(342)로부터 출력된 값 및 클럭(CLKD)에 기반하여, 클럭(CLK)의 위상을 지연시킬 수 있다.
도 11은 본 개시의 몇몇 실시 예들에 따른 전자 장치(3000)의 블록도를 도시한다. 전자 장치(3000)는 MIPI(mobile industry processor interface) 연합(alliance)에 의해 제안된 인터페이스들을 이용하거나 지원할 수 있는 데이터 처리 장치일 수 있다. 전자 장치(3000)는 휴대용 통신 단말기, PDA(personal digital assistant), PMP(portable media player), 스마트폰, 또는 웨어러블(wearable) 장치일 수 있다.
전자 장치(3000)는 시스템 온 칩(system on chip; 이하 SoC, 3100) 및 스토리지 장치(3200)를 포함할 수 있다. SoC(3100)는 어플리케이션 프로세서로서 전자 장치(3000)의 전반적인 동작을 제어할 수 있다. SoC(3100)에는 전자 장치(3000)를 제어하기 위한 다양한 회로들이 집적될 수 있고, 예를 들어 SoC(3100)는 인터페이스 회로(3110)를 포함할 수 있다.
몇몇 실시 예들에 있어서, 인터페이스 회로(3110) 및 스토리지 장치(3200)는 데이터를 서로 교환할 수 있다. 인터페이스 회로(3110)는 스토리지 장치(3200)로 클럭(CLK), 커맨드(CMD), 및 데이터(DATA)를 전송할 수 있고, 그리고 스토리지 장치(3200)는 호스트(3100)로 응답(RES) 및 데이터(DATA)를 전송할 수 있다. 인터페이스 회로(3110) 및 스토리지 장치(3200)는 도 1의 호스트(1100) 및 장치(1200), 또는 도 6의 호스트(2100) 및 장치(2200)와 각각 유사하게 동작할 수 있다.
전자 장치(3000)는 디스플레이(3310) 및 이미지 센서(3320)를 포함할 수 있다. SoC(3100)는 DSI(display serial interface)에 따라 디스플레이(3310)의 DSI 장치(3315)와 통신할 수 있다. 예를 들어, SoC(3100)에는 광 시리얼라이저(SER)가 구현될 수 있고, DSI 장치(3315)에는 광 디시리얼라이저(DES)가 구현될 수 있다.
SoC(3100)는 CSI(camera serial interface)에 따라 이미지 센서(3320)의 CSI 장치(3325)와 통신할 수 있다. 예를 들어, SoC(3100)에는 광 디시리얼라이저(DES)가 구현될 수 있고, CSI 장치(3325)에는 광 시리얼라이저(SER)가 구현될 수 있다.
전자 장치(3000)는 SoC(3100)와 통신하는 RF(radio frequency) 칩(3330)을 더 포함할 수 있다. RF 칩(3330)은 물리 계층(3331), DigRF 슬레이브(3332), 및 안테나(3333)를 포함할 수 있다. 예를 들어, RF 칩(3330)의 물리 계층(3331)과 SoC(3100)의 물리 계층은 MIPI 연합에 의해 제안된 DigRF 인터페이스에 의해 서로 데이터를 교환할 수 있다.
전자 장치(3000)는 임베디드/카드 스토리지(3340)를 더 포함할 수 있다. 임베디드/카드 스토리지(3340)는 SoC(3100)와 데이터를 교환할 수 있다. 실시 예에 있어서, SoC(3100)는 임베디드/카드 스토리지(3340)로부터 출력된 데이터 입출력 신호들 및 데이터 스트로브 신호를 수신하고, 데이터 입출력 신호들의 데이터 유효 윈도우들을 판별하고, 그리고 데이터 입출력 신호들의 읽기 마진들을 각각 제어할 수 있다.
전자 장치(3000)는 WiMax(3350), WLAN(wireless local area network; 3360), UWB(ultra wide band; 3370) 등을 통해 외부 시스템과 통신할 수 있다. 또한, 전자 장치(3000)는 위치 정보를 처리하기 위한 GPS(global positioning system) 장치를 더 포함할 수 있다. 전자 장치(3000)는 주변 장치들과의 연결을 관리하기 위한 브릿지(bridge) 칩을 더 포함할 수 있다.
상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안 되며 후술하는 특허청구범위뿐만 아니라 이 본 개시의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
1000, 2000: 메모리 시스템
100, 200: 클럭 변조기
101, 201: 컨트롤 로직
102, 202, 302: 위상 쉬프트 검출기
103, 203: 위상 쉬프터
3000: 전자 장치
100, 200: 클럭 변조기
101, 201: 컨트롤 로직
102, 202, 302: 위상 쉬프트 검출기
103, 203: 위상 쉬프터
3000: 전자 장치
Claims (10)
- 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 그리고 상기 커맨드에 응답하는 응답을 상기 외부 장치로부터 수신하는 호스트 인터페이스에 있어서:
컨트롤 로직;
상기 컨트롤 로직의 제어에 응답하여, 상기 응답에 기반하여 제 1 값을 출력하는 위상 쉬프트 검출기; 및
상기 컨트롤 로직의 제어에 응답하여, 상기 제 1 클럭의 위상을 상기 제 1 값에 기반하여 변조하고, 그리고 변조 클럭을 출력하는 위상 쉬프터를 포함하되,
상기 제 1 클럭은 상기 외부 장치로 송신 데이터를 전송하는 데 사용되고, 그리고
상기 변조 클럭은 상기 외부 장치로부터 수신되는 수신 데이터를 샘플링하는 데 사용되는 호스트 인터페이스. - 제 1 항에 있어서,
상기 위상 쉬프트 검출기는:
상기 외부 장치로 상기 제 1 클럭을 전송한 시점부터 제 1 시간이 경과된 후에 카운트를 시작하고,
상기 외부 장치로부터 상기 응답이 수신되는 것에 응답하여, 카운트된 값을 출력하고, 그리고
상기 카운트된 값에 기반하여 상기 제 1 클럭의 위상을 지연시키는 호스트 인터페이스. - 제 1 항에 있어서,
상기 위상 쉬프트 검출기는 상기 컨트롤 로직으로부터 제공되는 제 2 클럭에 기반하여 동작하고, 그리고:
상기 응답이 논리 하이에서 논리 로우로 하강하는 것을 상기 제 2 클럭의 상승 에지에 기반하여 검출하고, 그리고 제 1 검출 신호를 생성하는 제 1 검출기;
상기 응답이 논리 하이에서 논리 로우로 하강하는 것을 상기 제 2 클럭의 하강 에지에 기반하여 검출하고, 그리고 제 2 검출 신호를 생성하는 제 2 검출기;
상기 제 2 클럭의 상기 상승 에지에 기반하여 카운트된 제 1 카운트 값을 상기 제 1 검출 신호에 응답하여 출력하는 제 1 카운터; 및
상기 제 2 클럭의 상기 하강 에지에 기반하여 카운트된 제 2 카운트 값을 상기 제 2 검출 신호에 응답하여 출력하는 제 2 카운터를 포함하는 호스트 인터페이스. - 제 3 항에 있어서,
상기 제 1 검출기는:
상기 응답이 토글되는 것에 응답하여, 제 1 싱크로나이저 신호를 상기 제 2 클럭의 다음 상승 에지에 토글하는 제 1 싱크로나이저;
상기 제 1 싱크로나이저 신호가 토글되는 것에 응답하여, 제 2 싱크로나이저 신호를 상기 제 2 클럭의 다음 상승 에지에 토글하는 제 2 싱크로나이저;
상기 제 2 싱크로나이저 신호가 토글되는 것에 응답하여, 제 3 싱크로나이저 신호를 상기 제 2 클럭의 다음 상승 에지에 토글하는 제 3 싱크로나이저; 및
상기 제 3 싱크로나이저 신호 및 상기 제 2 싱크로나이저 신호의 반전된 신호에 대해 AND 연산을 수행하고, 그리고 상기 제 1 검출 신호를 출력하는 AND 게이트를 포함하는 호스트 인터페이스. - 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 그리고 상기 커맨드에 응답하는 응답을 상기 외부 장치로부터 수신하는 호스트 인터페이스에 있어서:
컨트롤 로직;
상기 컨트롤 로직의 제어에 응답하여, 상기 응답 또는 레벨 쉬프터로부터 수신되는 피드백 클럭 중 어느 하나를 선택하고, 그리고 선택된 신호에 기반하여 제 1 값을 출력하는 위상 쉬프트 검출기; 및
상기 컨트롤 로직의 제어에 응답하여, 상기 제 1 클럭의 위상을 상기 제 1 값에 기반하여 변조하고, 그리고 변조 클럭을 출력하는 위상 쉬프터를 포함하되,
상기 제 1 클럭은 송신 데이터를 상기 외부 장치로 상기 레벨 쉬프터를 거쳐 전송하는 데 사용되고, 그리고
상기 변조 클럭은 상기 외부 장치로부터 상기 레벨 쉬프터를 거쳐 수신되는 수신 데이터를 샘플링하는 데 사용되는 호스트 인터페이스. - 제 5 항에 있어서,
상기 컨트롤 로직에 의해 상기 피드백 클럭이 선택된 때, 상기 위상 쉬프트 검출기는:
상기 외부 장치로 상기 제 1 클럭을 전송한 시점부터 제 1 시간이 경과된 후에 카운트를 시작하고,
상기 레벨 쉬프터로부터 상기 피드백 클럭이 수신되는 것에 응답하여, 카운트된 값을 출력하고, 그리고
상기 카운트된 값에 기반하여, 상기 제 1 값을 생성하는 호스트 인터페이스. - 제 5 항에 있어서,
상기 위상 쉬프트 검출기는 상기 컨트롤 로직으로부터 제공되는 제 2 클럭에 기반하여 동작하고, 그리고
상기 응답 및 상기 피드백 클럭 중 어느 하나를 상기 컨트롤 로직의 제어 하에 선택하고, 그리고 입력 신호를 출력하는 제 1 멀티플렉서;
상기 입력 신호가 논리 하이에서 논리 로우로 하강하는 것을 상기 제 2 클럭의 상승 에지에 기반하여 검출하고, 그리고 제 1 검출 신호를 생성하는 제 1 검출기;
상기 입력 신호가 논리 하이에서 논리 로우로 하강하는 것을 상기 제 2 클럭의 하강 에지에 기반하여 검출하고, 그리고 제 2 검출 신호를 생성하는 제 2 검출기;
상기 제 2 클럭의 상기 상승 에지에 기반하여 카운트된 제 1 카운트 값을 상기 제 1 검출 신호에 응답하여 출력하는 제 1 카운터;
상기 제 2 클럭의 상기 하강 에지에 기반하여 카운트된 제 2 카운트 값을 상기 제 2 검출 신호에 응답하여 출력하는 제 2 카운터; 및
상기 제 1 카운트 값 및 상기 제 2 카운트 값에 대해 덧셈 연산을 수행하고, 그리고 상기 덧셈 연산의 결과를 상기 제 1 값으로서 출력하는 제 1 가산기를 포함하는 호스트 인터페이스. - 제 7 항에 있어서,
상기 위상 쉬프터는 상기 제 1 클럭의 위상을 지연하는 위상 변조기를 포함하되, 상기 제 1 클럭의 상기 위상이 지연되는 양은 상기 제 2 클럭의 주기 및 상기 제 1 값의 곱에 대응하는 호스트 인터페이스. - 프로세서; 및
상기 프로세서의 제어 하에, 외부 장치로 커맨드 및 제 1 클럭을 전송하고, 상기 커맨드에 응답하는 응답을 상기 외부 장치로부터 수신하고, 그리고 클럭 변조기를 포함하는 인터페이스 회로를 포함하되,
상기 클럭 변조기는 상기 외부 장치로부터 수신되는 상기 응답 또는 레벨 쉬프터로부터 상기 제 1 클럭에 응답하여 수신되는 피드백 클럭 중 어느 하나를 선택하고, 상기 제 1 클럭의 위상을 선택된 신호에 기반하여 변조하고, 그리고 변조 클럭을 출력하되,
상기 제 1 클럭은 송신 데이터를 상기 외부 장치로 상기 레벨 쉬프터를 거쳐 전송하는 데 사용되고, 그리고
상기 변조 클럭은, 상기 외부 장치로부터 상기 레벨 쉬프터를 거쳐 수신되는 수신 데이터를 샘플링하는 데 사용되는 시스템-온-칩. - 제 9 항에 있어서,
상기 클럭 변조기는:
상기 외부 장치로 상기 제 1 클럭을 전송하는 것에 응답하여 카운트를 시작하고,
상기 선택된 신호를 수신하는 것에 응답하여, 카운트된 값에 기반하여 쉬프트 값을 계산하고,
상기 쉬프트 값을 상기 프로세서로부터 제공되는 보정 코드에 기반하여 보정하고, 그리고
상기 보정된 쉬프트 값 및 상기 프로세서로부터 제공되는 변조 코드 중 어느 하나에 기반하여 상기 제 1 클럭의 위상을 변조하되,
상기 보정 코드 및 상기 변조 코드는 상기 프로세서에 의해 계산되는 시스템-온-칩.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210029543A KR20220125558A (ko) | 2021-03-05 | 2021-03-05 | 호스트 인터페이스 및 이를 포함하는 시스템-온-칩 |
US17/580,861 US11947379B2 (en) | 2021-03-05 | 2022-01-21 | Host interface to modulate a phase of a clock and system-on-chip including same |
CN202210128787.4A CN115017091A (zh) | 2021-03-05 | 2022-02-11 | 主机接口和包括该主机接口的片上*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210029543A KR20220125558A (ko) | 2021-03-05 | 2021-03-05 | 호스트 인터페이스 및 이를 포함하는 시스템-온-칩 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220125558A true KR20220125558A (ko) | 2022-09-14 |
Family
ID=83067751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210029543A KR20220125558A (ko) | 2021-03-05 | 2021-03-05 | 호스트 인터페이스 및 이를 포함하는 시스템-온-칩 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11947379B2 (ko) |
KR (1) | KR20220125558A (ko) |
CN (1) | CN115017091A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149695B (zh) * | 2023-11-01 | 2024-02-27 | 北京紫光芯能科技有限公司 | Spi从设备的时钟端口ilde态时钟极性的识别电路 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5070492A (en) * | 1988-03-03 | 1991-12-03 | Mitsubishi Denki Kabushiki Kaisha | Signal decoding apparatus and method |
US7349498B2 (en) | 2002-10-07 | 2008-03-25 | International Business Machines Corporation | Method and system for data and edge detection with correlation tables |
US8121237B2 (en) | 2006-03-16 | 2012-02-21 | Rambus Inc. | Signaling system with adaptive timing calibration |
WO2008153645A2 (en) | 2007-05-29 | 2008-12-18 | Rambus, Inc. | Memory comprising : clock generator, clock circuit, voltage regulator |
KR101389810B1 (ko) * | 2010-02-22 | 2014-04-29 | 미쓰비시덴키 가부시키가이샤 | 광 송신기 |
JP5330340B2 (ja) * | 2010-08-31 | 2013-10-30 | 株式会社東芝 | サンプリング位相を補正するホストコントローラ及び方法 |
US9780795B2 (en) | 2013-09-16 | 2017-10-03 | Rambus Inc. | Source-synchronous receiver using edge-detection clock recovery |
KR102298160B1 (ko) * | 2015-08-13 | 2021-09-03 | 삼성전자주식회사 | 반도체 장치 및 이를 포함하는 통신 시스템 |
TWI620119B (zh) * | 2017-02-21 | 2018-04-01 | 群聯電子股份有限公司 | 隨機資料產生電路、記憶體儲存裝置及隨機資料產生方法 |
KR102523101B1 (ko) | 2018-01-10 | 2023-04-18 | 삼성전자주식회사 | 데이터 유효 윈도우를 판별하는 읽기 마진 제어 회로, 이를 포함하는 메모리 컨트롤러, 그리고 전자 장치 |
-
2021
- 2021-03-05 KR KR1020210029543A patent/KR20220125558A/ko active Search and Examination
-
2022
- 2022-01-21 US US17/580,861 patent/US11947379B2/en active Active
- 2022-02-11 CN CN202210128787.4A patent/CN115017091A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220283603A1 (en) | 2022-09-08 |
CN115017091A (zh) | 2022-09-06 |
US11947379B2 (en) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107835988B (zh) | 用于高速存储器接口的低功率时钟定时 | |
US10700671B2 (en) | Data transmission using delayed timing signals | |
US10565154B2 (en) | Mobile device and interfacing method thereof that adjusts clock frequency based on access mode | |
TWI716603B (zh) | 用於與射頻晶片通信的數據機晶片以及包含上述的應用處理器 | |
US10901452B2 (en) | System-on-chip to support full handshake and mobile device having the same | |
US9515686B2 (en) | Signal transmitting circuit using common clock, and storage device therewith | |
KR102523101B1 (ko) | 데이터 유효 윈도우를 판별하는 읽기 마진 제어 회로, 이를 포함하는 메모리 컨트롤러, 그리고 전자 장치 | |
US10408863B2 (en) | Reference voltage prediction in memory subsystem | |
TW201729186A (zh) | 彈性dll(延遲鎖定迴路)校準技術 | |
CN110495100B (zh) | 存储接口、时序控制方法及存储*** | |
US20150310903A1 (en) | Supporting Calibration For Sub-Rate Operation In Clocked Memory Systems | |
CN112992218A (zh) | 用于占空比校正的技术 | |
KR20220125558A (ko) | 호스트 인터페이스 및 이를 포함하는 시스템-온-칩 | |
KR20190093102A (ko) | 듀티 사이클을 조절하는 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US20220231829A1 (en) | Electronic device and operating method of electronic device | |
JP5221609B2 (ja) | Dllを共用してサンプリング位相設定を行うホストコントローラ | |
US20060184726A1 (en) | Flexible access and control of Dynamic Random Access Memory | |
US10998905B2 (en) | Semiconductor apparatus related to receiving clock signals having variable frequencies, and system including the semiconductor apparatus | |
CN116097234A (zh) | 数字前端处理器之间的通信信道同步 | |
US8631214B2 (en) | Memory control circuit, control method therefor, and image processing apparatus | |
KR20160019836A (ko) | 공통의 클록을 이용하는 송신 회로, 및 그것을 포함하는 저장 장치 | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
KR20190096753A (ko) | 클럭 트레이닝을 수행하는 시스템 온 칩 및 이를 포함하는 컴퓨팅 시스템 | |
US12019573B2 (en) | Continuous adaptive data capture optimization for interface circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |