KR102248279B1 - 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법 - Google Patents

불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법 Download PDF

Info

Publication number
KR102248279B1
KR102248279B1 KR1020140072170A KR20140072170A KR102248279B1 KR 102248279 B1 KR102248279 B1 KR 102248279B1 KR 1020140072170 A KR1020140072170 A KR 1020140072170A KR 20140072170 A KR20140072170 A KR 20140072170A KR 102248279 B1 KR102248279 B1 KR 102248279B1
Authority
KR
South Korea
Prior art keywords
timing signal
data
signal
nonvolatile memory
memory
Prior art date
Application number
KR1020140072170A
Other languages
English (en)
Other versions
KR20150143943A (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 삼성전자주식회사
Priority to KR1020140072170A priority Critical patent/KR102248279B1/ko
Priority to US14/665,148 priority patent/US9601171B2/en
Publication of KR20150143943A publication Critical patent/KR20150143943A/ko
Application granted granted Critical
Publication of KR102248279B1 publication Critical patent/KR102248279B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1066Output synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization

Abstract

본 발명은 스토리지 장치에 관한 것이다. 본 발명의 스토리지 장치는 불휘발성 메모리, 그리고 읽기 시에 불휘발성 메모리로 제1 타이밍 신호를 전송하는 메모리 컨트롤러로 구성된다. 불휘발성 메모리는, 제1 타이밍 신호에 응답하여 읽기 데이터 및 제2 타이밍 신호를 출력하는 불휘발성 메모리 장치, 그리고 제1 타이밍 신호에 따라 고정 지연을 검출하고, 고정 지연을 이용하여 제2 타이밍 신호로부터 제3 타이밍 신호를 생성하고, 제3 타이밍 신호에 동기되어 읽기 데이터를 리타이밍하고, 그리고 제3 타이밍 신호 및 리타이밍된 읽기 데이터를 메모리 컨트롤러로 출력하는 리타이밍 회로로 구성된다.

Description

불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법{STORAGE DEVICE INCLUDING NONVOLATILE MEMORY AND MEMORY CONTROLLER AND OPERATING METHOD OF RETIMING CIRCUIT INTERFACING COMMUNICATION BETWEEN NONVOLATILE MEMORY AND MEMORY CONTROLLER}
본 발명은 반도체 메모리에 관한 것으로, 더 상세하게는 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법에 관한 것이다.
스토리지 장치는 컴퓨터, 스마트폰, 스마트패드 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 스토리지 장치는 하드 디스크 드라이브(HDD, Hard Disk Drive)와 같이 자기 디스크에 데이터를 저장하는 장치, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 메모리 카드 등과 같이 반도체 메모리, 특히 불휘발성 메모리에 데이터를 저장하는 장치를 포함한다.
불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다.
반도체 제조 기술이 발전되면서, 스토리지 장치의 고용량화 및 고속화가 진행되고 있다. 스토리지 장치의 고용량화는 반도체 메모리 칩의 고집적화 뿐 아니라, 복수의 반도체 메모리 칩들을 중첩하여 사용함으로써 달성되고 있다. 스토리지 장치의 고속화는, SDR (Single Data Rate) 방식 대신에 DDR (Dual Data Rate) 방식을 적용함으로써 달성되고 있다.
그러나, 스토리지 장치의 고용량화 및 고속화는 스토리지 장치의 신뢰성을 저해할 수 있다. 예를 들어, 중첩되어 사용되는 반도체 칩들의 수가 증가할수록, 반도체 칩들로 인해 생성되는 저항 성분이 증가한다. 저항 성분이 증가하면, 반도체 칩들과 통신하는 채널의 토글 속도가 저해된다. 토글 속도의 저해는 스큐(skew)를 증가시킬 수 있다. 특히 스토리지 장치가 고속화될수록, 스큐의 증가는 스토리지 장치의 신뢰성을 저해할 수 있다. 따라서, 스토리지 장치의 고속화 및 고용량화가 진행될수록, 향상된 신뢰성을 갖는 스토리지 장치를 구현하기 위한 방법이 요구되고 있다.
본 발명의 목적은 향상된 신뢰성을 갖는 스토리지 장치 및 리타이밍 회로를 제공하는 데에 있다.
본 발명의 실시 예에 따른 스토리지 장치는, 불휘발성 메모리; 그리고 상기 불휘발성 메모리를 제어하고, 읽기 시에 상기 불휘발성 메모리로 제1 타이밍 신호를 전송하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 불휘발성 메모리는, 상기 제1 타이밍 신호에 응답하여 읽기 데이터 및 제2 타이밍 신호를 출력하도록 구성되는 불휘발성 메모리 장치; 그리고 상기 제1 타이밍 신호에 따라 고정 지연(locking delay)을 검출하고, 상기 검출된 고정 지연을 이용하여 상기 제2 타이밍 신호로부터 제3 타이밍 신호를 생성하고, 상기 제3 타이밍 신호에 동기되어 상기 읽기 데이터를 래치함으로써 상기 읽기 데이터를 리타이밍(retiming)하고, 그리고 상기 제3 타이밍 신호 및 상기 리타이밍된 읽기 데이터를 상기 메모리 컨트롤러로 출력하도록 구성되는 리타이밍 회로를 포함한다.
실시 예로서, 상기 리타이밍 회로는, 상기 메모리 컨트롤러로부터 상기 제1 타이밍 신호를 수신하는 제1 타이밍 수신 노드; 상기 타이밍 수신 노드를 통해 수신되는 상기 제1 타이밍 신호를 상기 불휘발성 메모리로 전달하는 제1 타이밍 송신 노드; 상기 불휘발성 메모리로부터 상기 제2 타이밍 신호를 수신하는 제2 타이밍 수신 노드; 상기 제1 수신 노드를 통해 수신되는 상기 제1 타이밍 신호로부터 상기 고정 지연(locking delay)을 검출하고, 상기 제2 타이밍 수신 노드를 통해 수신되는 상기 제2 타이밍 신호로부터 상기 검출된 고정 지연을 이용하여 상기 제3 타이밍 신호를 생성하는 지연 고정 루프; 그리고 상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호를 상기 메모리 컨트롤러로 출력하는 제2 타이밍 송신 노드를 포함한다.
실시 예로서, 상기 리타이밍 회로는, 상기 불휘발성 메모리로부터 출력되는 상기 읽기 데이터를 수신하는 데이터 수신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호에 동기되어, 상기 데이터 수신 노드를 통해 수신되는 상기 읽기 데이터를 수신 및 출력하는 플립플롭; 그리고 상기 플립플롭의 출력을 상기 리타이밍된 데이터로서 상기 메모리 컨트롤러로 출력하는 데이터 송신 노드를 더 포함한다.
실시 예로서, 상기 메모리 컨트롤러는 쓰기 시에 상기 불휘발성 메모리로 쓰기 데이터 및 제4 타이밍 신호를 전송하도록 구성되고, 상기 리타이밍 회로는 상기 제4 타이밍 신호로부터 제2 고정 지연(locking delay)을 검출하고, 상기 검출된 고정 지연을 이용하여 상기 제4 타이밍 신호로부터 제5 타이밍 신호를 생성하도록 구성된다.
실시 예로서, 상기 리타이밍 회로는 상기 제5 타이밍 신호에 동기되어 상기 쓰기 데이터를 래치함으로써 상기 쓰기 데이터를 리타이밍(retiming)하고, 그리고 상기 제5 타이밍 신호 및 상기 리타이밍된 쓰기 데이터를 상기 불휘발성 메모리로 출력하도록 구성된다.
실시 예로서, 상기 리타이밍 회로는, 상기 메모리 컨트롤러로부터 상기 제4 타이밍 신호를 수신하는 타이밍 수신 노드; 상기 제1 수신 노드를 통해 수신되는 상기 제4 타이밍 신호로부터 상기 제2 고정 지연을 검출하고, 상기 검출된 제2 고정 지연을 이용하여 상기 제4 타이밍 신호로부터 상기 제5 타이밍 신호를 생성하는 지연 고정 루프; 그리고 상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호를 상기 불휘발성 메모리로 전송하는 타이밍 송신 노드를 포함한다.
실시 예로서, 상기 리타이밍 회로는, 상기 메모리 컨트롤러로부터 상기 쓰기 데이터를 수신하는 데이터 수신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호에 동기되어 상기 쓰기 데이터를 수신 및 출력하는 플립플롭; 그리고 상기 플립플롭의 출력을 상기 리타이밍된 쓰기 데이터로서 상기 불휘발성 메모리로 전송하는 데이터 송신 노드를 더 포함한다.
실시 예로서, 상기 리타이밍 회로는, 상기 메모리 컨트롤러로부터 제어 신호를 수신하고, 상기 수신된 제어 신호에 응답하여 상기 불휘발성 메모리의 쓰기 또는 읽기를 판별하고, 그리고 상기 불휘발성 메모리의 쓰기 또는 읽기를 가리키는 동작 신호를 출력하는 디코더; 상기 메모리 컨트롤러 및 상기 불휘발성 메모리로부터 타이밍 신호를 수신하고, 상기 수신된 타이밍 신호에 기반하여 리타이밍용 타이밍 신호를 생성하는 타이밍 신호 처리부; 그리고 상기 메모리 컨트롤러 및 상기 불휘발성 메모리로부터 데이터를 수신하고, 상기 타이밍 신호 처리부로부터 수신되는 상기 리타이밍용 타이밍 신호를 이용하여 상기 수신된 데이터를 리타이밍하는 데이터 리타이밍부를 포함한다.
실시 예로서, 상기 타이밍 신호 처리부는, 상기 메모리 컨트롤러로부터 상기 제1 타이밍 신호를 수신하는 제1 타이밍 수신 노드; 상기 제1 수신 노드를 통해 수신되는 상기 제1 타이밍 신호를 상기 불휘발성 메모리로 전달하는 제1 타이밍 송신 노드; 상기 불휘발성 메모리로부터 상기 제2 타이밍 신호를 수신하는 제2 타이밍 수신 노드; 상기 메모리 컨트롤러로부터 상기 제4 타이밍 신호를 수신하는 제3 타이밍 수신 노드; 상기 동작 신호에 응답하여, 읽기 시에 상기 제1 타이밍 수신 노드를 통해 수신되는 상기 제1 타이밍 신호 및 상기 제2 타이밍 수신 노드를 통해 수신되는 상기 제2 타이밍 신호를 출력하고, 쓰기 시에 상기 제3 타이밍 수신 노드를 통해 수신되는 상기 제4 타이밍 신호를 출력하도록 구성되는 멀티플렉서; 읽기 시에, 상기 멀티플렉서로부터 출력되는 상기 제1 타이밍 신호로부터 상기 고정 지연을 검출하고, 상기 검출된 고정 지연을 이용하여 상기 제2 타이밍 신호로부터 상기 제3 타이밍 신호를 생성하고, 쓰기 시에, 상기 멀티플렉서로부터 출력되는 상기 제4 타이밍 신호로부터 상기 제2 고정 지연을 검출하고, 상기 검출된 제2 고정 지연을 이용하여 상기 제4 타이밍 신호로부터 상기 제5 타이밍 신호를 생성하는 지연 고정 루프; 상기 지연 고정 루프의 출력되는 상기 제3 타이밍 신호를 상기 메모리 컨트롤러로 전송하는 제2 타이밍 송신 노드; 그리고 상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호를 상기 불휘발성 메모리로 전송하는 제3 타이밍 송신 노드를 포함한다.
실시 예로서, 상기 데이터 리타이밍부는, 상기 불휘발성 메모리로부터 상기 읽기 데이터를 수신하는 제1 데이터 수신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호에 동기되어 상기 제1 데이터 수신 노드를 통해 수신되는 상기 읽기 데이터를 수신 및 출력하도록 구성되는 제1 플립플롭; 상기 제1 플립플롭의 출력을 상기 리타이밍된 읽기 데이터로서 상기 메모리 컨트롤러로 전송하는 제1 데이터 송신 노드; 상기 메모리 컨트롤러로부터 상기 쓰기 데이터를 수신하는 제2 데이터 수신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호에 동기되어 상기 제2 데이터 수신 노드를 통해 수신되는 상기 쓰기 데이터를 수신 및 출력하도록 구성되는 제2 플립플롭; 그리고 상기 제2 플립플롭의 출력을 상기 리타이밍된 쓰기 데이터로서 상기 불휘발성 메모리로 전송하는 제2 데이터 송신 노드를 포함한다.
실시 예로서, 상기 타이밍 신호 처리부는, 상기 메모리 컨트롤러로부터 상기 제1 타이밍 신호를 수신하는 제1 타이밍 수신 노드; 상기 제1 수신 노드를 통해 수신되는 상기 제1 타이밍 신호를 상기 불휘발성 메모리로 전달하는 제1 타이밍 송신 노드; 상기 불휘발성 메모리로부터 상기 제2 타이밍 신호를 수신하는 제2 타이밍 수신 노드; 상기 메모리 컨트롤러로부터 상기 제4 타이밍 신호를 수신하는 제3 타이밍 수신 노드; 상기 동작 신호에 응답하여, 읽기 시에 상기 제1 타이밍 수신 노드를 통해 수신되는 상기 제1 타이밍 신호 및 상기 제2 타이밍 수신 노드를 통해 수신되는 상기 제2 타이밍 신호를 출력하고, 쓰기 시에 상기 제3 타이밍 수신 노드를 통해 수신되는 상기 제4 타이밍 신호를 출력하도록 구성되는 제1 멀티플렉서; 읽기 시에, 상기 멀티플렉서로부터 출력되는 상기 제1 타이밍 신호로부터 상기 고정 지연을 검출하고, 상기 검출된 고정 지연을 이용하여 상기 제2 타이밍 신호로부터 상기 제3 타이밍 신호를 생성하고, 쓰기 시에, 상기 멀티플렉서로부터 출력되는 상기 제4 타이밍 신호로부터 상기 제2 고정 지연을 검출하고, 상기 검출된 제2 고정 지연을 이용하여 상기 제4 타이밍 신호로부터 상기 제5 타이밍 신호를 생성하는 지연 고정 루프; 상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호 및 상기 제2 타이밍 수신 노드를 통해 수신되는 상기 제2 타이밍 신호를 수신하고, 활성 신호에 응답하여 상기 제3 타이밍 신호 및 상기 제2 타이밍 신호 중 하나를 출력하는 제2 멀티플렉서; 상기 제2 멀티플렉서의 출력을 상기 메모리 컨트롤러로 전송하는 제2 타이밍 송신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호 및 상기 제3 타이밍 수신 노드를 통해 수신되는 상기 제4 타이밍 신호를 수신하고, 상기 활성 신호에 응답하여 상기 제5 타이밍 신호 및 상기 제4 타이밍 신호 중 하나를 출력하는 제3 멀티플렉서; 그리고 상기 제3 멀티플렉서의 출력을 상기 불휘발성 메모리로 전송하는 제3 타이밍 송신 노드를 포함한다.
실시 예로서, 상기 불휘발성 메모리로부터 상기 읽기 데이터를 수신하는 제1 데이터 수신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호에 동기되어 상기 제1 데이터 수신 노드를 통해 수신되는 상기 읽기 데이터를 수신 및 출력하도록 구성되는 제1 플립플롭; 상기 제1 데이터 수신 노드를 통해 수신되는 상기 읽기 데이터 및 상기 제1 플립플롭으로부터 출력되는 상기 리타이밍된 읽기 데이터를 수신하고, 상기 활성 신호에 응답하여 상기 읽기 데이터 및 상기 리타이밍된 읽기 데이터 중 하나를 출력하는 제4 멀티플렉서; 상기 제4 멀티플렉서의 출력을 상기 메모리 컨트롤러로 전송하는 제1 데이터 송신 노드; 상기 메모리 컨트롤러로부터 상기 쓰기 데이터를 수신하는 제2 데이터 수신 노드; 상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호에 동기되어 상기 제2 데이터 수신 노드를 통해 수신되는 상기 쓰기 데이터를 수신 및 출력하도록 구성되는 제2 플립플롭; 상기 제2 데이터 수신 노드를 통해 수신되는 상기 쓰기 데이터 및 상기 제2 플립플롭으로부터 출력되는 상기 리타이밍된 쓰기 데이터를 수신하고, 상기 활성 신호에 응답하여 상기 쓰기 데이터 및 상기 리타이밍된 쓰기 데이터 중 하나를 출력하는 제5 멀티플렉서; 그리고 상기 제5 멀티플렉서의 출력을 상기 불휘발성 메모리로 전송하는 제2 데이터 송신 노드를 포함한다.
실시 예로서, 상기 제5 타이밍 신호는 상기 제4 타이밍 신호보다 1/4 주기만큼 지연된 신호이고, 상기 리타이밍된 쓰기 데이터는 상기 쓰기 데이터보다 상기 제4 타이밍 신호의 1/4 주기만큼 지연된다.
실시 예로서, 상기 제5 타이밍 신호는, 상기 불휘발성 메모리의 쓰기 시에 상기 메모리 컨트롤러에 의해 토글되는 데이터 스트로브(Data Strobe, DQS) 신호이다.
실시 예로서, 상기 제1 타이밍 신호는 상기 불휘발성 메모리의 읽기 시에 상기 메모리 컨트롤러에 의해 토글되는 읽기 인에이블 신호(Read Enable, RE)이고, 상기 제2 타이밍 신호는 읽기 시에 상기 불휘발성 메모리가 상기 읽기 인에이블 신호에 기반하여 생성하는 데이터 스트로브(Data Strobe, DQS) 신호이다.
실시 예로서, 상기 제3 타이밍 신호는 상기 제2 타이밍 신호보다 1/4 주기만큼 지연된 신호이고, 상기 리타이밍된 읽기 데이터는 상기 읽기 데이터보다 상기 제3 타이밍 신호의 1/4 주기만큼 지연된다.
실시 예로서, 상기 불휘발성 메모리는 복수의 불휘발성 메모리 장치들을 더 포함하고, 상기 불휘발성 메모리 및 상기 복수의 불휘발성 메모리 장치들은 상기 리타이밍 회로에 공통으로 연결된다.
실시 예로서, 상기 불휘발성 메모리 및 상기 복수의 불휘발성 메모리 장치들은 상기 제1 타이밍 신호 및 상기 제3 타이밍 신호를 하나의 공유 채널을 통해 상기 리타이밍 회로와 교환하고, 상기 읽기 데이터를 적어도 두 개의 공유 채널들을 통해 상기 리타이밍 회로와 교환한다.
실시 예로서, 상기 고정 지연의 검출은 상기 제1 타이밍 신호가 두 사이클 토글되는 동안 수행된다.
불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 본 발명의 실시 예에 따른 리타이밍 회로의 동작 방법은, 상기 메모리 컨트롤러로부터 제1 타이밍 신호를 수신하는 단계; 상기 제1 타이밍 신호로부터 고정 지연(locking delay)을 검출하는 단계; 상기 불휘발성 메모리로부터 데이터 및 제2 타이밍 신호를 수신하는 단계; 상기 검출된 고정 지연 및 상기 제2 타이밍 신호를 이용하여 제3 타이밍 신호를 생성하는 단계; 그리고 상기 제3 타이밍 신호를 이용하여 상기 데이터를 래치함으로써 상기 데이터를 리타이밍하는 단계를 포함한다.
본 발명의 실시 예들에 따르면, 스토리지 장치의 정상 동작들에 중첩되어 데이터가 리타이밍된다. 따라서, 동작 성능을 저해하지 않으면서 향상된 신뢰성을 갖는 스토리지 장치 및 리타이밍 회로를 제공하는 데에 있다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 2는 메모리 컨트롤러 및 리타이밍 회로 사이의 연결 관계를 보여주는 블록도이다.
도 3은 리타이밍 회로 및 불휘발성 메모리 장치 사이의 연결 관계를 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 리타이밍 회로의 동작 방법을 보여주는 순서도이다.
도 5는 본 발명의 제1 실시 예에 따른 리타이밍 회로를 보여준다.
도 6은 본 발명의 제1 실시 예에 따른 지연 고정 루프를 보여준다.
도 7은 리타이밍 회로에 입력 및 출력되는 신호들을 보여주는 타이밍도이다.
도 8은 본 발명의 제2 실시 예에 따른 리타이밍 회로를 보여준다.
도 9는 본 발명의 제2 실시 예에 따른 지연 고정 루프를 보여준다.
도 10은 리타이밍 회로에 입력 및 출력되는 신호들을 보여주는 타이밍도이다.
도 11은 본 발명의 제3 실시 예에 따른 리타이밍 회로를 보여준다.
도 12는 본 발명의 제4 실시 예에 따른 리타이밍 회로를 보여준다.
도 13은 리타이밍 회로 및 불휘발성 메모리 장치 사이의 연결 관계의 다른 예를 보여주는 블록도이다.
도 14는 본 발명의 제5 실시 예에 따른 리타이밍 회로를 보여준다.
도 15는 본 발명의 제2 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 16은 본 발명의 제3 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 17은 본 발명의 제4 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 메모리 컨트롤러를 보여주는 블록도이다.
도 19는 본 발명의 제5 실시 예에 따른 스토리지 장치를 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 메모리 컨트롤러를 보여주는 블록도이다.
도 21은 본 발명의 실시 예에 따른 불휘발성 메모리를 보여주는 블록도이다.
도 22는 본 발명의 실시 예에 따른 메모리 블록을 보여주는 회로도이다.
도 23은 본 발명의 다른 실시 예에 따른 메모리 블록을 보여주는 회로도이다.
도 24는 본 발명의 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 스토리지 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 스토리지 장치(100)는 불휘발성 메모리(110), 메모리 컨트롤러(120) 및 RAM (130)을 포함한다.
불휘발성 메모리(110)는 메모리 컨트롤러(120)의 제어에 따라 쓰기, 읽기 및 소거를 수행할 수 있다. 불휘발성 메모리(110)는 불휘발성 메모리(120)와 제1 데이터(DATA1)를 교환할 수 있다. 예를 들어, 불휘발성 메모리(110)는 메모리 컨트롤러(120)로부터 쓰기 데이터를 수신하고, 쓰기 데이터를 기입할 수 있다. 불휘발성 메모리(110)는 읽기를 수행하고, 읽기 데이터를 메모리 컨트롤러(120)로 출력할 수 있다.
불휘발성 메모리(110)는 메모리 컨트롤러(120)로부터 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 수신할 수 있다. 불휘발성 메모리(110)는 메모리 컨트롤러(120)와 제어 신호(CTRL)를 교환할 수 있다. 예를 들어, 불휘발성 메모리(110)는 불휘발성 메모리(110)를 구성하는 복수의 반도체 칩들 중 적어도 하나의 반도체 칩을 선택하는 칩 선택 신호(/CE), 메모리 컨트롤러(120)로부터 수신되는 신호가 제1 커맨드(CMD1)임을 가리키는 커맨드 래치 인에이블 신호(CLE), 메모리 컨트롤러(120)로부터 수신되는 신호가 제1 어드레스(ADDR1)임을 가리키는 어드레스 래치 인에이블 신호(ALE), 읽기 시에 메모리 컨트롤러(120)에 의해 생성되며 주기적으로 토글되어 타이밍을 맞추는 데에 사용되는 읽기 인에이블 신호(/RE), 제1 커맨드(CMD1) 또는 제1 어드레스(ADDR1)가 전송될 때에 메모리 컨트롤러(120)에 의해 활성화되는 쓰기 인에이블 신호(/WE), 전원이 변화할 때에 의도하지 않은 쓰기 또는 소거를 방지하기 위해 메모리 컨트롤러(120)에 의해 활성화되는 쓰기 방지 신호(/WP), 쓰기 시에 메모리 컨트롤러(120)에 의해 생성되며 주기적으로 토글되어 제1 데이터(DATA1)의 입력 싱크를 맞추는 데에 사용되는 데이터 스트로브 신호(DQS) 중 적어도 하나를 메모리 컨트롤러(120)로부터 수신할 수 있다. 예를 들어, 불휘발성 메모리(110)는 불휘발성 메모리(110)가 프로그램, 소거 또는 읽기 동작을 수행중인지를 가리키는 레디 및 비지 신호(R/nB), 불휘발성 메모리(110)에 의해 읽기 인에이블 신호(/RE)로부터 생성되며 주기적으로 토글되어 제1 데이터(DATA1)의 출력 싱크를 맞추는 데에 사용되는 데이터 스트로브 신호(DQS) 중 적어도 하나를 메모리 컨트롤러(120)로 출력할 수 있다.
불휘발성 메모리(110)는 불휘발성 메모리 장치(111) 및 리타이밍 회로(113)를 포함한다. 불휘발성 메모리 장치(111)는 리타이밍 회로(113)를 통해 메모리 컨트롤러(120)와 통신할 수 있다. 리타이밍 회로(113)는 불휘발성 메모리(111) 및 메모리 컨트롤러(120) 사이의 통신을 중개할 수 있다. 리타이밍 회로(113)는 메모리 컨트롤러(1200 및 불휘발성 메모리(111) 사이에서 교환되는 데이터에 대해 리타리밍(retiming)을 수행할 수 있다. 리타이밍은 전송되는 데이터를 저장 및 출력하는 버퍼링을 포함할 수 있다. 전송되는 데이터가 저장 및 출력되면, 전송되는 데이터의 타이밍이 재정렬되고, 스큐(skew)가 감소한다. 즉, 리타이밍 회로(113)는 불휘발성 메모리(111) 및 메모리 컨트롤러(120) 사이에서 교환되는 데이트를 재정렬하여, 스토리지 장치(100)의 신뢰성을 향상시킨다.
불휘발성 메모리(110)는 플래시 메모리를 포함할 수 있다. 그러나, 불휘발성 메모리(110)는 플래시 메모리를 포함하는 것으로 한정되지 않는다. 불휘발성 메모리(110)는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 불휘발성 메모리들 중 적어도 하나를 포함할 수 있다.
메모리 컨트롤러(120)는 불휘발성 메모리(110)를 제어하도록 구성된다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리(110)가 쓰기, 읽기 또는 소거를 수행하도록 제어할 수 있다. 메모리 컨트롤러(120)는 불휘발성 메모리(110)와 제1 데이터(DATA1) 및 제어 신호(CTRL)를 교환하고, 불휘발성 메모리(110)로 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 출력할 수 있다.
메모리 컨트롤러(120)는 외부의 호스트 장치(미도시)의 제어에 따라 불휘발성 메모리(110)를 제어할 수 있다. 메모리 컨트롤러(120)는 호스트 장치와 제2 데이터(DATA2)를 교환하고, 호스트 장치로부터 제2 커맨드(CMD2) 및 제2 어드레스(ADDR2)를 수신할 수 있다.
예시적으로, 메모리 컨트롤러(120)는 제1 단위로 불휘발성 메모리(110)와 제1 데이터(DATA1)를 교환하고, 제1 단위와 다른 제2 단위로 호스트 장치와 제2 데이터(DATA2)를 교환할 수 있다.
메모리 컨트롤러(120)는 제1 포맷에 따라 불휘발성 메모리(110)와 제1 데이터(DATA1)를 교환하고, 불휘발성 메모리(110)로 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 전송할 수 있다. 메모리 컨트롤러(120)는 제1 포맷과 다른 제2 포맷에 따라, 호스트 장치와 제2 데이터(DATA2)를 교환하고, 호스트 장치로부터 제2 커맨드(CMD2) 및 제2 어드레스(ADDR2)를 수신할 수 있다.
메모리 컨트롤러(120)는 RAM (130)을 버퍼 메모리, 캐시 메모리, 또는 동작 메모리로 사용할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 호스트 장치로부터 제2 데이터(DATA2)를 수신하고, 수신된 제2 데이터(DATA2)를 RAM (130)에 저장하고, 그리고 RAM (130)에 저장된 제2 데이터(DATA2)를 제1 데이터(DATA1)로서 불휘발성 메모리(110)에 기입할 수 있다. 메모리 컨트롤러(120)는 불휘발성 메모리(110)로부터 제1 데이터(DATA1)를 읽고, 수신된 제1 데이터(DATA1)를 RAM (130)에 저장하고, RAM (130)에 저장된 제1 데이터(DATA1)를 제2 데이터(DATA2)로서 호스트 장치로 출력할 수 있다. 메모리 컨트롤러(130)는 불휘발성 메모리(110)로부터 읽은 데이터를 RAM (130)에 저장하고, RAM (130)에 저장된 데이터를 다시 불휘발성 메모리(110)에 기입할 수 있다.
메모리 컨트롤러(120)는 불휘발성 메모리(110)를 관리하기 위해 필요한 데이터 또는 코드를 RAM (130)에 저장할 수 있다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리(110)를 관리하기 위해 필요한 데이터 또는 코드를 불휘발성 메모리(110)로부터 읽고, RAM (130)에 로딩하여 구동할 수 있다.
RAM (130)은 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 다양한 랜덤 액세스 메모리들 중 적어도 하나를 포함할 수 있다.
스토리지 장치(100)는 호스트 장치의 요청에 따라, 데이터의 쓰기, 읽기 또는 소거를 수행할 수 있다. 스토리지 장치(100)는 솔리드 스테이트 드라이브(SSD, Solid State Drive) 또는 하드 디스크 드라이브(HDD, Hard Disk Drive)를 포함할 수 있다. 스토리지 장치(100)는 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), USB (Universal Serial Bus) 메모리 카드, 유니버설 플래시 스토리지(UFS) 등과 같은 메모리 카드들을 포함할 수 있다. 스토리지 장치(100)는 eMMC (embedded MultiMedia Card), UFS, PPN (Perfect Page New) 등과 같은 실장형 메모리를 포함할 수 있다.
도 2는 메모리 컨트롤러(120) 및 리타이밍 회로(113) 사이의 연결 관계를 보여주는 블록도이다. 도 2를 참조하면, 메모리 컨트롤러(120) 및 리타이밍 회로(113) 각각은 제1 데이터(DATA1), 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 공통 채널을 통해 교환할 수 있다. 메모리 컨트롤러(120) 및 리타이밍 회로(113) 각각은 제1 내지 제k 입출력 패드들(DQ1~DQk)을 포함한다. 메모리 컨트롤러(120) 및 리타이밍 회로(113)는 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 데이터(DATA1), 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 교환할 수 있다. 예를 들어, 제어 신호(CTRL)의 형태에 따라, 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 전송되는 신호는 제1 데이터(DATA1), 제1 커맨드(CMD1) 또는 제1 어드레스(ADDR1)로 식별될 수 있다. 예를 들어, 제1 내지 제k 입출력 패드들(DQ1~DQk)은 8, 16 또는 32개일 수 있으며, 한정되지 않는다.
메모리 컨트롤러(120) 및 리타이밍 회로(113)는 제어 신호(CTRL)를 교환할 수 있다. 메모리 컨트롤러(120) 및 리타이밍 회로(113) 각각은, 데이터 스트로브 신호(DQS), 읽기 인에이블 신호(/RE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP), 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN), 그리고 제1 내지 제N 레디 및 비지 신호들(R/nB1~R/nBN)을 각각 교환하는 복수의 패드들을 포함한다.
예를 들어, 메모리 컨트롤러(120)가 칩 인에이블 신호들(/CE1~/CEN) 중 하나를 활성화(예를 들어, 로직 로우)하고, 커맨드 래치 인에이블 신호(CLE)를 활성화(예를 들어, 로직 하이)하고, 어드레스 래치 인에이블 신호(ALE)를 비활성화(예를 들어, 로직 로우)하고, 쓰기 인에이블 신호(/WE)를 활성화(예를 들어, 로직 로우)한 후 비활성화(예를 들어, 로직 하이)할 때, 메모리 컨트롤러(120)는 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 커맨드(CMD1)를 출력할 수 있다. 또한, 리타이밍 회로(113) 또는 불휘발성 메모리 장치(111)는 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 커맨드(CMD1)가 수신되는 것으로 식별할 수 있다.
예를 들어, 메모리 컨트롤러(120)가 칩 인에이블 신호들(/CE1~/CEN) 중 하나를 활성화(예를 들어, 로직 로우)하고, 커맨드 래치 인에이블 신호(CLE)를 비활성화(예를 들어, 로직 로우)하고, 어드레스 래치 인에이블 신호(ALE)를 활성화(예를 들어, 로직 하이)하고, 쓰기 인에이블 신호(/WE)를 활성화(예를 들어, 로직 로우)한 후 비활성화(예를 들어, 로직 하이)할 때, 메모리 컨트롤러(120)는 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 어드레스(ADDR1)를 출력할 수 있다. 또한, 리타이밍 회로(113) 또는 불휘발성 메모리 장치(111)는 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 어드레스(ADDR1)가 수신되는 것으로 식별할 수 있다.
예를 들어, 메모리 컨트롤러(120)가 칩 인에이블 신호들(/CE1~/CEN) 중 하나를 활성화(예를 들어, 로직 로우)하고, 커맨드 래치 인에이블 신호(CLE)를 비활성화(예를 들어, 로직 로우)하고, 어드레스 래치 인에이블 신호(ALE)를 비활성화(예를 들어, 로직 로우)하고, 쓰기 인에이블 신호(/WE)를 비활성화(예를 들어, 로직 하이)하고, 읽기 인에이블 신호(/RE)를 비활성화(예를 들어, 로직 하이)한 경우, 메모리 컨트롤러(120)는 주기적으로 토글되는 데이터 스트로브 신호(DQS)를 생성하고, 데이터 스트로브 신호(DQS)에 동기되어 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 데이터(DATA1)를 출력할 수 있다. 리타이밍 회로(113) 또는 불휘발성 메모리 장치(111)는 데이터 스트로브 신호(DQS)에 동기되어 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 데이터(DATA1)가 수신되는 것으로 식별할 수 있다.
예를 들어, 메모리 컨트롤러(120)가 칩 인에이블 신호들(/CE1~/CEN) 중 하나를 활성화(예를 들어, 로직 로우)하고, 커맨드 래치 인에이블 신호(CLE)를 비활성화(예를 들어, 로직 로우)하고, 어드레스 래치 인에이블 신호(ALE)를 비활성화(예를 들어, 로직 로우)하고, 쓰기 인에이블 신호(/WE)를 비활성화(예를 들어, 로직 하이)하고, 읽기 인에이블 신호(/RE)를 주기적으로 토글할 수 있다. 리타이밍 회로(113) 또는 불휘발성 메모리 장치(111)는 주기적으로 토글되는 읽기 인에이블 신호(/RE)로부터 주기적으로 토글되는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 리타이밍 회로(113) 또는 불휘발성 메모리 장치(111)는 데이터 스트로브 신호(DQS)에 동기되어 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 데이터(DATA1)를 출력할 수 있다. 메모리 컨트롤러(120)는 데이터 스트로브 신호(DQS)에 동기되어 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 데이터(DATA1)가 수신되는 것으로 식별할 수 있다.
도 3은 리타이밍 회로(113) 및 불휘발성 메모리 장치(111) 사이의 연결 관계를 보여주는 블록도이다. 도 3을 참조하면, 불휘발성 메모리 장치(111)는 복수의 불휘발성 메모리 장치들(111_1~111_N)을 포함할 수 있다. 예를 들어, 복수의 불휘발성 메모리 장치들(111_1~111_N) 각각은 하나의 반도체 칩으로 구성될 수 있다.
리타이밍 회로(113) 및 복수의 불휘발성 메모리 장치들(111_1~111_N) 각각은 제1 내지 제k 입출력 패드들(DQ1~DQk)을 포함한다. 복수의 불휘발성 메모리 장치들(111_1~111_N)의 제1 내지 제k 입출력 패드들(DQ1~DQk)은 리타이밍 회로(113)의 제1 내지 제k 입출력 패드들(DQ1~DQk)에 공통으로 연결될 수 있다. 리타이밍 회로(113) 및 복수의 불휘발성 메모리 장치들(111_1~111_N)은 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 제1 데이터(DATA1), 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 교환할 수 있다. 예를 들어, 제어 신호(CTRL)의 형태에 따라, 제1 내지 제k 입출력 패드들(DQ1~DQk)을 통해 전송되는 신호는 제1 데이터(DATA1), 제1 커맨드(CMD1) 또는 제1 어드레스(ADDR1)로 식별될 수 있다. 예를 들어, 제1 내지 제k 입출력 패드들(DQ1~DQk)은 8, 16 또는 32개일 수 있으며, 한정되지 않는다.
리타이밍 회로(113) 및 복수의 불휘발성 메모리 장치들(111_1~111_N)은 제어 신호(CTRL)를 교환할 수 있다. 리타이밍 회로(113)는, 데이터 스트로브 신호(DQS), 읽기 인에이블 신호(/RE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP), 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN), 그리고 제1 내지 제N 레디 및 비지 신호들(R/nB1~R/nBN)을 각각 교환하는 복수의 패드들을 포함한다.
복수의 불휘발성 메모리 장치들(111_1~111_N) 각각은, 데이터 스트로브 신호(DQS), 읽기 인에이블 신호(/RE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP), 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN) 중 하나의 신호, 그리고 제1 내지 제N 레디 및 비지 신호들(R/nB1~R/nBN) 중 하나의 신호를 각각 교환하는 복수의 패드들을 포함한다.
복수의 불휘발성 메모리 장치들(111_1~111_N)은 리타이밍 회로(113)와 공통 채널을 통해 데이터 스트로브 신호(DQS), 읽기 인에이블 신호(/RE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP)를 각각 교환할 수 있다.
복수의 불휘발성 메모리 장치들(111_1~111_N) 각각은 리타이밍 회로(113)로부터 하나의 칩 인에이블 신호를 수신하고, 리타이밍 회로(113)로 하나의 레디 및 비지 신호를 출력할 수 있다. 복수의 불휘발성 메모리 장치들(111_1~111_N)은 리타이밍 회로(113)의 서로 다른 패드들로부터 칩 인에이블 신호들(/CE1~/CEN)을 각각 수신할 수 있다. 복수의 불휘발성 메모리 장치들(111_1~111_N)은 리타이밍 회로(113)의 서로 다른 패드들로 레디 및 비지 신호들(R/nB1~R/nBN)을 각각 전송할 수 있다.
도 2 및 도 3을 참조하여 설명된 바와 같이, 리타이밍 회로(113)는 메모리 컨트롤러(120) 및 복수의 불휘발성 메모리 장치들(111_1~111_N) 사이의 통신을 중개할 수 있다. 리타이밍 회로(113)는 메모리 컨트롤러(120)로부터 수신되는 제1 데이터(DATA1)를 재정렬하여 복수의 불휘발성 메모리 장치들(111_1~111_N)로 전달할 수 있다. 리타이밍 회로(113)는 복수의 불휘발성 메모리 장치들(111_1~111_N)로부터 수신되는 제1 데이터(DATA1)를 재정렬하여 메모리 컨트롤러(120)로 전달할 수 있다. 리타이밍 회로(120)는 메모리 컨트롤러(120) 및 복수의 불휘발성 메모리 장치들(111_1~111_N) 사이의 통신 과정에 숨겨진(shadow) 형태로 리타이밍을 수행한다. 따라서, 리타이밍 회로(113)는 스토리지 장치(100)의 동작 속도를 저해하지 않으면서 스토리지 장치(100)의 신뢰성을 향상시킨다.
도 4는 본 발명의 실시 예에 따른 리타이밍 회로(113)의 동작 방법을 보여주는 순서도이다. 도 1 내지 도 4를 참조하면, S110 단계에서, 리타이밍 회로(113)는 제1 장치로부터 제1 타이밍 신호를 수신한다. 예를 들어, 리타이밍 회로(113) 회로는 메모리 컨트롤러(120)로부터 제1 타이밍 신호를 수신할 수 있다. 제1 타이밍 신호는 주기적으로 천이하며, 싱크를 제공하는 신호일 수 있다. 예를 들어, 제1 타이밍 신호는 읽기 시에 주기적으로 천이하며 싱크를 제공하는 읽기 인에이블 신호(/RE)일 수 있다.
S120 단계에서, 리타이밍 회로(113)는 제1 타이밍 신호의 고정 지연(locking delay)을 검출할 수 있다. 예를 들어, 리타이밍 회로(113)는 지연 고정 루프(DLL, Delay Locked Loop)를 이용하여 제1 타이밍 신호에 싱크될 수 있다. 리타이밍 회로(113)는 미리 정해진 방법에 따라 제1 타이밍 신호에 싱크될 때의 지연 고정 루프(DLL)의 지연량(예를 들어, 위상 지연)을 고정 지연(locking delay)으로서 검출할 수 있다.
S130 단계에서, 리타이밍 회로(113)는 제2 장치로부터 데이터 및 제2 타이밍 신호를 수신한다. 예를 들어, 리타이밍 회로(113)는 불휘발성 메모리 장치(111)로부터 데이터 및 제2 타이밍 신호를 수신할 수 있다. 수신되는 데이터는 읽기 시에 불휘발성 메모리 장치(111)에서 읽혀진 데이터일 수 있다. 제2 타이밍 신호는 주기적으로 천이하며, 싱크를 제공하는 신호일 수 있다. 예를 들어, 제2 타이밍 신호는 읽기 시에 불휘발성 메모리 장치(111)로부터 제공되며 주기적으로 천이하는 데이터 스트로브 신호(DQS)일 수 있다.
S140 단계에서, 리타이밍 회로(113)는 제2 타이밍 신호 및 고정 지연을 이용하여 제3 타이밍 신호를 생성한다. 예를 들어, 리타이밍 회로(113)는 불휘발성 메모리 장치(111)로부터 수신되는 데이터 스트로브 신호(DQS)를, 지연 고정 루프(DLL)를 이용하여, 읽기 인에이블 신호(/RE)로부터 검출된 고정 지연만큼 지연시킬 수 있다. 리타이밍 회로(113)는 데이터 스트로브 신호(DQS)가 지연된 신호를 제3 타이밍 신호로 생성할 수 있다.
S150 단계에서, 리타이밍 회로(113)는 제3 타이밍 신호를 이용하여 데이터를 리타이밍 한다. 예를 들어, 리타이밍 회로(113)는 제3 타이밍 신호에 동기되어, 불휘발성 메모리 장치(111)로부터 수신되는 데이터를 래치할 수 있다. 리타이밍 회로(113)는 래치된 데이터를 제3 타이밍 신호와 함께 메모리 컨트롤러(120)로 출력할 수 있다. 제3 타이밍 신호는 데이터 스트로브 신호(DQS)로서 출력될 수 있다. 즉, 리타이밍 회로(113)는 불휘발성 메모리 장치(111)로부터 출력되는 읽기 데이터를 제3 타이밍 신호에 동기되어 재정렬할 수 있다. 리타이밍 회로(113)가 읽기 데이터를 재정렬하는 동작은, 스토리지 장치(100)의 정상 동작들에 중첩되어 수행된다. 따라서, 리타이밍 회로(113)는 스토리지 장치(100)의 동작 성능을 저해하지 않으면서 스토리지 장치(100)의 신뢰성을 향상시킨다.
도 5는 본 발명의 제1 실시 예에 따른 리타이밍 회로(113a)를 보여준다. 도 2, 도 3 및 도 5를 참조하면, 리타이밍 회로(113a)는 타이밍 신호 처리부(115a) 및 데이터 리타이밍부(117a)를 포함한다.
타이밍 신호 처리부(115a)는 제1 터미널(T1)을 통해 메모리 컨트롤러(120)로부터 읽기 인에이블 신호(/RE)를 수신할 수 있다. 제1 터미널(T1)은 도 2에서 읽기 인에이블 신호(/RE)를 수신하는 리타이밍 회로(113)의 패드에 대응할 수 있다. 타이밍 신호 처리부(115a)는 제2 터미널(T2)을 통해 불휘발성 메모리 장치(111)로 읽기 인에이블 신호(/RE)를 출력할 수 있다. 제2 터미널(T2)은 도 3에서 읽기 인에이블 신호(/RE)를 출력하는 리타이밍 회로(113)의 패드에 대응할 수 있다.
타이밍 신호 처리부(115a)는 제3 터미널(T3)을 통해 메모리 컨트롤러(120)와 데이터 스트로브 신호(DQS)를 교환할 수 있다. 제3 터미널(T3)은 도 2에서 데이터 스트로브 신호(DQS)를 교환하는 리타이밍 회로(113)의 패드에 대응할 수 있다. 타이밍 신호 처리부(115a)는 제4 터미널(T4)을 통해 불휘발성 메모리 장치(111)와 데이터 스트로브 신호(DQS)를 교환한다. 제4 터미널(T4)은 도 3에서 데이터 스트로브 신호(DQS)를 교환하는 리타이밍 회로(113)의 패드에 대응할 수 있다.
타이밍 신호 처리부(115a)는 제1 내지 제3 수신 노드들(RX1~RX3), 제1 내지 제3 송신 노드들(TX1~TX3), 그리고 지연 고정 루프(DLL)를 포함한다.
제1 수신 노드(RX1)는 제1 터미널(T1)을 통해 읽기 인에이블 신호(/RE)를 수신할 수 있다. 제1 수신 노드(RX1)를 통해 수신된 읽기 인에이블 신호(/RE)는 제1 송신 노드(TX1)를 통해 제2 터미널(T2)로 전달될 수 있다. 예를 들어, 불휘발성 메모리(110)의 읽기 시에, 읽기 인에이블 신호(/RE)가 제1 터미널(T1)로부터 제1 수신 노드(RX1) 및 제1 송신 노드(TX1)를 통해 제2 터미널(T2)로 전달될 수 있다.
제2 수신 노드(RX2)는 제3 터미널(T3)을 통해 데이터 스트로브 신호(DQS)를 수신할 수 있다. 제3 수신 노드(RX3)를 통해 수신된 데이터 스트로브 신호(DQS)는 제2 송신 노드(TX2)를 통해 제4 터미널(T4)로 전달될 수 있다. 예를 들어, 쓰기 시에, 데이터 스트로브 신호(DQS)는 제3 터미널(T3)로부터 제2 수신 노드(RX2) 및 제2 송신 노드(TX2)를 통해 제4 터미널(T4)로 전달될 수 있다.
제3 수신 노드(RX3)는 제4 터미널(T4)을 통해 데이터 스트로브 신호(DQS)를 수신할 수 있다. 제3 수신 노드(RX3)를 통해 수신된 데이터 스트로브 신호(DQS)는 지연 고정 루프(DLL)로 전달된다.
지연 고정 루프(DLL)는 제1 수신 노드(RX1)를 통해 읽기 인에이블 신호(/RE)를 수신하고, 제3 수신 노드(RX3)를 통해 데이터 스트로브 신호(DQS)를 수신할 수 있다. 지연 고정 루프(DLL)는 읽기 인에이블 신호(/RE)에 동기되어, 고정 지연(locking delay)을 검출할 수 있다. 지연 고정 루프(DLL)는 제3 수신 노드(RX3)를 통해 수신되는 데이터 스트로브 신호(DQS)보다 검출된 고정 지연만큼 지연된 신호를 내부 신호(iDQS)로 생성할 수 있다. 내부 신호(iDQS)는 제3 수신 노드(TX3)를 통해 데이터 스트로브 신호(DQS)로서 제3 터미널(T3)로 전달될 수 있다. 또한, 내부 신호(iDQS)는 데이터 리타이밍부(117a)로 전달될 수 있다.
데이터 리타이밍부(117a)는 제5 터미널(T5)을 통해 메모리 컨트롤러(120)로부터 제1 어드레스(ADDR1) 또는 제1 커맨드(CMD1)를 수신할 수 있다. 데이터 리타이밍부(117a)는 제5 터미널(T5)을 통해 메모리 컨트롤러(120)와 제1 데이터(DATA1)를 교환할 수 있다. 제5 터미널(T5)은 도 2의 리타이밍 회로(113)의 제1 내지 제k 입출력 패드들(DQ1~DQk)에 대응할 수 있다. 타이밍 신호 처리부(115a)는 제6 터미널(T6)을 통해 불휘발성 메모리 장치(111)로 제1 어드레스(ADDR1) 또는 제1 커맨드(CMD1)를 출력할 수 있다. 데이터 리타이밍부(117a)는 제6 터미널(T6)을 통해 메모리 컨트롤러(120)와 제1 데이터(DATA1)를 교환할 수 있다. 제6 터미널(T6)은 도 3의 리타이밍 회로(113)의 제1 내지 제k 입출력 패드들(DQ1~DQk)에 대응할 수 있다. 이하에서, 간결한 설명을 위하여, 제5 및 제 6 터미널들(T5, T6)을 통해 교환되는 제1 데이터(DATA1)를 참조하여 본 발명의 실시 예들이 설명된다. 제5 및 제 6 터미널들(T5, T6)을 통해 전송되는 제1 어드레스(ADDR1) 및 제1 커맨드(CMD1)에 대한 설명은 생략된다.
데이터 리타이밍부(117a)는 제4 및 제5 수신 노드들(RX4, RX5), 제4 및 제5 송신 노드들(TX4, TX5), 그리고 제1 플립플롭(FF1)을 포함한다.
제4 수신 노드(RX4)는 제5 터미널(T5)을 통해 제1 데이터(DATA1)를 수신할 수 있다. 제4 수신 노드(RX4)를 통해 수신된 제1 데이터는 제5 송신 노드(TX4)를 통해 제6 터미널(T6)로 전송된다. 예를 들어, 쓰기 시에, 제1 데이터(DATA1)는 제5 터미널(T5)로부터 제4 수신 노드(RX4) 및 제4 송신 노드(TX4)를 통해 제6 터미널(T6)로 전송될 수 있다.
제5 수신 노드(RX5)는 제6 터미널(T6)을 통해 제1 데이터(DATA1)를 수신할 수 있다. 제5 수신 노드(RX5)를 통해 수신되는 제1 데이터(DATA1)는 제1 플립플롭(FF1)으로 전달된다. 제1 플립플롭(FF1)은 제5 수신 노드(RX5)로부터 제1 데이터(DATA1)를 수신하고, 타이밍 신호 처리부(115a)로부터 내부 신호(iDQS)를 수신한다. 제1 플립플롭(FF1)은 내부 신호(iDQS)에 동기되어, 제5 수신 노드(RX5)를 통해 수신되는 제1 데이터(DATA1)를 래치(또는 저장)하고 출력한다. 즉, 제1 플립플롭(FF1)은 내부 신호(iDQS)에 동기되어 제1 데이터(DATA1)를 재정렬한다. 제1 플립플롭(FF1)에 의해 재정렬된 제1 데이터(DATA1')는 제5 송신 노드(TX5)를 통해 제5 터미널(T5)로 전달된다.
상술된 바와 같이, 리타이밍 회로(113a)는 불휘발성 메모리(110)의 읽기 시에 읽기 인에이블 신호(/RE)로부터 고정 위상을 검출한다. 검출된 고정 위상을 이용하여, 리타이밍 회로(113a)는 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성한다. 리타이밍 회로(113a)는 내부 신호(iDQS)를 이용하여 제1 데이터(DATA1)를 재정렬한다. 리타이밍 회로(113a)는 재정렬된 제1 데이터(DATA1')를 출력하고, 내부 데이터(iDQS)를 데이터 스트로브 신호(DQS)로서 출력한다.
지연 고정 루프(DLL)가 위상 고정을 수행할 때에, 고정 시간이 소요된다. 본 발명의 실시 예에 따른 리타이밍 회로(113a)는 읽기 인에이블 신호(/RE)로부터 검출되는 고정 위상을 이용함으로써, 위상 고정을 수행하지 않고 제3 수신 노드(RX3)로부터의 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성한다. 제3 수신 노드(RX3)로부터의 데이터 스트로브 신호(DQS)에 대해 위상 고정을 수행하지 않으므로, 리타이밍 회로(113a)는 스토리지 장치(100)의 동작 성능(예를 들어, 속도)에 영향을 주지 않고 제1 데이터(DATA1)의 재정렬을 수행할 수 있다.
도 5에서, 리타이밍 회로(113a)는 제1 내지 제k 입출력 패드들(DQ1~DQk), 데이터 스트로브 신호(DQS)를 전송하는 패드들, 그리고 읽기 인에이블 신호(/RE)를 전송하는 패드들과 연관된 것으로 설명된다. 도 2 및 도 3에서 리타이밍 회로(113)를 통해 전송되는 것으로 설명된 신호들 중 도 5를 참조하여 설명되지 않은 나머지 신호들은, 리타이밍 회로(113a)를 별도의 처리 또는 상호 작용 없이 통과할 수 있다.
도 6은 본 발명의 제1 실시 예에 따른 지연 고정 루프(DLL)를 보여준다. 도 5 및 도 6을 참조하면, 지연 고정 루프(DLL)는 고정 제어 회로(D1), 위상 분리기(D2), 지연 라인(D3), 감지 라인(D4), 래치(D5), 위상 검출기(D6), 코드 보상기(D7), 그리고 위상 선택기(D8)를 포함한다.
고정 제어 회로(D1)는 제1 수신 노드(RX1)로부터 읽기 인에이블 신호(/RE)를 수신하고, 제3 수신 노드(RX3)로부터 데이터 스트로브 신호(DQS)를 수신할 수 있다. 고정 제어 회로(D1)는 읽기 인에이블 신호(/RE)에 대해 위상 고정을 수행하는 위상 고정 구간에 대한 정보를 저장할 수 있다. 고정 제어 회로(D1)는 위상 고정 구간 동안 읽기 인에이블 신호(/RE)를 타이밍 신호(TS)로서 출력할 수 있다. 고정 제어 회로(D1)는 위상 고정 구간이 아닌 때에, 데이터 스트로브 신호(DQS)를 타이밍 신호(TS)로서 출력할 수 있다. 고정 제어 회로(D1)는 위상 고정 구간 동안 제어 신호(PER)를 활성화할 수 있다. 고정 제어 회로(D1)는 위상 고정 구간이 아닌 때에, 제어 신호(PER)를 비활성화할 수 있다. 예를 들어, 위상 고정 구간은 읽기 인에이블 신호(/RE)의 적어도 최초 1주기를 포함할 수 있다.
위상 분리기(D2)는 고정 제어 회로(D1)로부터 타이밍 신호(TS)를 수신한다. 위상 분리기(D2)는 타이밍 신호(TS)로부터 반전 타이밍 신호(/TS)를 생성할 수 있다. 위상 분리기(D2)는 타이밍 신호(TS) 및 반전 타이밍 신호(/TS)를 지연 라인(D3)으로 출력할 수 있다.
지연 라인(D3)은 복수의 지연기들을 포함한다. 각 지연기는 수신 신호들을 반전하여 출력하는 반전기들일 수 있다. 제1 지연기는 위상 분리기(D2)로부터 타이밍 신호(TS) 및 반전 타이밍 신호(/TS)를 수신한다. 제1 지연기는 수신된 타이밍 신호(TS) 및 반전 타이밍 신호(/TS)를 각각 반전하여 출력할 수 있다. 제k 지연기는 제k-1 지연기로부터 상보 신호들을 수신할 수 있다. 제k 지연기는 수신된 상보 신호들을 각각 반전하여 출력할 수 있다.
예시적으로, 지연 라인(D3)은, 타이밍 신호(TS) 및 반전 타이밍 신호(/TS)를 64번 지연할 수 있다. 즉, 지연 라인(D3)은 적어도 64 개의 지연기들을 포함할 수 있다. 지연 라인(D3)의 지연기들의 수는 한정되지 않으며, 다양하게 변경 및 응용될 수 있다. 또한, 지연 라인(D3)의 지연기들은 상보 신호들이 아닌 하나의 신호만을 지연하여 출력하도록 변경 및 응용될 수 있다.
감지 라인(D4)은 복수의 감지기들을 포함한다. 각 감지기는 타이밍 신호에 동기되어, 지연 라인(D3)의 대응하는 지연기의 출력 신호들을 감지할 수 있다. 각 감지기는 대응하는 지연기로부터 수신되는 상보 신호들을 반전하여 출력할 수 있다. 감지 라인(D4)의 각 감지기의 상보 출력 신호들 또는 상보 신호 출력 신호들 중 양의 신호들(또는 음의 신호들)은 래치(D5)에 저장될 수 있다. 지연 라인(D3)이 타이밍 신호(TS) 및 반전 타이밍 신호(/TS)를 64번 지연하는 경우, 감지 라인(D4)은 64개의 감지기들을 포함할 수 있다. 래치(D5)는 64개의 감지 결과들(Q[64:1])을 저장할 수 있다.
감지 라인(D4)의 감지기들의 수는 한정되지 않으며, 다양하게 응용 및 변경될 수 있다. 또한, 감지 라인(D4)의 감지기들은 상보 신호들이 아닌 하나의 신호만을 감지하고 출력하도록 변경 및 응용될 수 있다.
위상 검출기(D6)는 고정 제어 회로(D1)로부터 제어 신호(PER)를 수신하고, 래치(D4)로부터 감지 결과(Q[64:1])를 수신할 수 있다. 제어 신호(PER)가 활성화된 동안, 위상 검출기(D6)는 감지 결과(Q[64:1])로부터 코드(B[6:1])를 추출하도록 구성된다. 예를 들어, 위상 검출기(D6)는 감지 결과(Q[64:1])로부터 타이밍 신호(TS)의 1주기에 해당하는 위치를 검출하도록 구성된다.
예를 들어, 지연 라인(D3)의 각 지연기의 양의 신호가 '1'일 때, 감지 라인(D4)의 대응하는 감지기의 양의 신호는 '1'일 수 있다. 지연 라인(D3)의 각 지연기의 양의 신호가 '0'일 때, 감지 라인(D4)의 대응하는 감지기의 양의 신호는 '0'일 수 있다. 감지 라인(D4)의 감지기들의 양의 신호들에 대응하는 감지 결과(Q[64:1])는 '1' 및 '0'으로 구성될 수 있다. 감지 결과(Q[64:1])는 순차적으로 '1'의 값을 갖다가 '0'의 값을 가질 수 있다. 또한, 감지 결과(Q[64:1])는 순차적으로 '0'의 값을 갖다가 '1'의 값을 가질 수 있다. 감지 결과(Q[64:1])의 값은 타이밍 신호(TS)가 천이하는 위치에서 변화할 수 있다. 즉, 위상 검출기(D6)는 감지 결과(Q[64:1])의 값들의 변화를 모니터함으로써, 타이밍 신호(TS)의 1주기에 해당하는 위치, 즉 감지 라인(D4)의 감지기들 상의 위치를 검출할 수 있다.
위상 검출기(D6)는 검출된 1주기의 위치로부터 1/4 주기의 위치를 다시 검출할 수 있다. 위상 검출기(D6)는 1/4주기의 위치에 대한 정보를 코드(B[6:1])로서 저장할 수 있다. 예시적으로, 제어 신호(PER)가 활성 상태인 동안, 위상 검출기(D6)는 코드(B[6:1])를 출력하지 않을 수 있다. 제어 신호(PER)가 비활성화된 후, 위상 검출기(D6)는 코드(B[6:1])를 코드 보상기(D7)로 출력할 수 있다.
코드 보상기(D7)는 위상 검출기(D6)로부터 코드(B[6:1])를 수신한다. 코드 보상기(D7)는 지연 고정 루프(DLL)의 입력, 출력, 처리 등에 소요되는 부수적인 지연들을 반영하여, 코드(B[6:1])를 보상할 수 있다. 코드 보상기(D7)는 보상된 코드(A[6:1])를 위상 선택기(D8)로 출력할 수 있다.
위상 선택기(D8)는 보상된 코드(A[6:1])에 기반하여, 지연 라인(D3)의 출력들(P1~P16) 중 하나를 선택할 수 있다. 선택된 출력은 내부 신호(iDQS)로 출력될 수 있다.
상술된 예에서, 위상 검출기(D6)는 타이밍 신호(TS)의 1/4 주기를 검출하여 코드(B[6:1])를 생성하는 것으로 설명되었다. 지연 라인(D3)이 타이밍 신호(TS) 및 반전 타이밍 신호(/TS)를 64번 지연하는 경우, 타이밍 신호(TS)의 1주기는 64개의 지연 포인트들(예를 들어, 64개의 감지기들)에서 검출될 수 있다. 타이밍 신호(TS)의 1/4 주기는 64의 1/4인 16개의 지연 포인트들(예를 들어, 16개의 감지기들)에서 검출될 수 있다. 따라서, 위상 선택기(D8)는 지연 라인(D3)의 제1 내지 제16 출력들(P1~P16) 중 하나를 선택함으로써, 타이밍 신호(TS)로부터 1/4주기만큼 지연된 신호를 선택할 수 있다.
위상 선택기(D8)는 거친 위상 선택기(D9), 위상 보간기(D10) 및 정교한 위상 선택기(D11)를 포함할 수 있다. 거친 위상 선택기(D9)는 보상된 코드(A[6:1]) 중 4개의 비트들을 이용하여, 제1 내지 제16 출력들(P1~P16)로부터 2 개의 출력들을 선택할 수 있다. 예를 들어, 거친 위상 선택기(D9)는 타이밍 신호(TS)의 1/4 주기에 가장 인접한 두 개의 출력들을 선택할 수 있다.
위상 보간기(D10)는 거친 위상 선택기의 출력 신호들에 대해 위상 보간을 수행하여, 4개의 신호들을 출력할 수 있다. 정교한 위상 선택기(D11)는 보상된 코드(A[6:1])의 나머지 두 개의 비트들을 이용하여, 위상 보간이(D10)의 4 개의 출력 신호들 중 하나를 내부 신호(iDQS)로서 선택할 수 있다.
도 6을 참조하여, 지연 고정 루프(DLL)의 상세한 구성이 설명되었으나, 지연 고정 루프(DLL)의 구성은 도 6에 도시된 것으로 한정되지 않는다. 지연 고정 루프(DLL)의 구성은 본 발명의 기술적 사상으로부터 괴리되지 않는 한 다양하게 변경 및 응용될 수 있다.
도 7은 리타이밍 회로(113a)에 입력 및 출력되는 신호들을 보여주는 타이밍도이다. 예시적으로, 불휘발성 메모리(110)의 읽기 시에 리타이밍 회로(113a)에 입력 및 출력되는 신호들이 도 7에 도시된다. 도 1, 도 5 내지 도 7을 참조하면, 제1 시간(T1)에 읽기 인에이블 신호(/RE)가 활성화된다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리(110)에 대한 읽기 동작을 수행함에 따라, 읽기 인에이블 신호(/RE)를 활성화할 수 있다. 읽기 인에이블 신호(/RE)가 활성화됨에 따라, 제1 시간(T1)에 제어 신호(PER) 또한 활성화될 수 있다.
읽기 인에이블 신호(/RE)가 활성화된 후 제2 시간(T2)에, 읽기 인에이블 신호(/RE)가 주기적으로 토글(toggle)하기 시작할 수 있다. 예를 들어, 읽기 인에이블 신호(/RE)가 활성화된 후 읽기 프림블 시간(tRPRE)이 경과한 제2 시간(T2)부터, 읽기 인에이블 신호(/RE)가 주기적으로 천이할 수 있다.
제어 신호(PER)는 읽기 인에이블 신호(/RE)가 주기적으로 토글하기 시작한 후 한주기 반의 시간(또는 위상)이 경과한 후에 비활성화될 수 있다. 예를 들어, 제어 신호(PER)는 읽기 인에이블 신호(/RE)가 두 번 토글(또는 네 번 천이)할 때까지 활성 상태를 유지할 수 있다.
제어 신호(PER)가 활성화된 동안, 읽기 인에이블 신호(/RE)가 타이밍 신호(TS)로 출력된다. 따라서, 제어 신호(PER)가 활성화된 동안, 타이밍 신호(TS)의 파형은 읽기 인에이블 신호(/RE)와 동일하게 한주기 반에 걸쳐 토글(또는 천이)할 수 있다. 타이밍 신호(TS)가 읽기 인에이블 신호(/RE)에 따라 토글(또는 천이)하는 동안, 지연 고정 루프(DLL)의 위상 검출기(D6)는 타이밍 신호(TS)의 1/4 주기에 해당하는 고정 지연을 검출할 수 있다.
제어 신호(PER)가 활성화된 동안, 즉 지연 고정 루프(DLL)가 고정 지연을 검출하는 동안, 리타이밍 회로(113a)는 신호를 출력하지 않는다. 예를 들어, 제어 신호(PER)가 활성화된 동안, 위상 검출기(D6)는 코드(B[6:1])를 출력하지 않는다. 따라서, 타이밍 신호(TS)가 토글(또는 천이)하여도, 내부 신호(iDQS)는 비활성 상태를 유지한다.
읽기 인에이블 신호(/RE)가 주기적으로 토글(또는 천이)하기 시작한 후 미리 정해진 시간(tDQSRE)이 경과하면, 제3 시간(T3)에, 데이터 스트로브 신호(DQS)가 주기적으로 토글(또는 천이)하기 시작한다. 예를 들어, 불휘발성 메모리 장치(111)는 제2 시간(T2)으로부터 주기적으로 토글(또는 천이)하는 읽기 인에이블 신호(/RE)를 리타이밍 회로(113a)의 제2 터미널(T2)을 통해 수신할 수 있다. 불휘발성 메모리 장치(111)는 주기적으로 토글하는 읽기 인에이블 신호(/RE)에 기반하여, 주기적으로 천이하는 데이터 스트로브 신호(DQS)를 리타이밍 회로(113a)의 제4 터미널(T4)로 전달할 수 있다.
데이터 스트로브 신호(DQS)는 읽기 인에이블 신호(/RE)와 동일한 주기 또는 주파수를 가질 수 있다. 불휘발성 메모리 장치(111)는 읽기 인에이블 신호(/RE)가 주기적으로 토글하기 시작한 후 미리 정해진 시간(tDQSRE)이 경과한 때에, 데이터 스트로브 신호(DQS)를 토글하기 시작할 수 있다.
데이터 스트로브 신호(DQS)가 토글하기 시작하면, 지연 고정 루프(DLL)는 읽기 인에이블 신호(/RE)로부터 검출된 고정 지연을 이용하여, 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성할 수 있다. 위상 검출기(D6)는 읽기 인에이블 신호(/RE)로부터 검출된 1/4 주기의 고정 지연을 이용하여, 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성할 수 있다.
제어 신호(PER)가 비활성 상태이므로, 데이터 스트로브 신호(DQS)가 타이밍 신호(TS)로서 제공된다. 제어 신호(PER)가 비활성 상태이므로, 위상 검출기(D6)는, 데이터 스트로브 신호(DQS)가 1/4 주기의 고정 지연 만큼 지연된 신호를 내부 신호(iDQS)로 출력할 수 있다.
불휘발성 메모리 장치(111)는 데이터 스트로브 신호(DQS)를 토글하기 시작함과 함께, 제1 데이터(DATA1)를 리타이밍 회로(113a)의 제6 터미널(T6)로 전달할 수 있다.
데이터 리타이밍부(117a)의 제1 플립플롭(FF1)은 내부 신호(iDQS)에 동기되어 제6 터미널(T6)을 통해 수신되는 제1 데이터(DATA1)를 저장 및 출력한다. 내부 신호(iDQS)는 데이터 스트로브 신호(DQS)가 1/4 주기의 고정 지연 만큼 지연된 신호이다. 따라서, 제1 플립플롭(FF1)은 내부 신호(iDQS)에 동기되어, 제6 터미널(T6)을 통해 수신되는 제1 데이터(DATA1)를 최적의 타이밍에 저장 및 출력할 수 있다.
제1 플립플롭(FF1)에 의해 재정렬된 제1 데이터(DATA1')는 내부 신호(iDQS)에 동기된다. 리타이밍 회로(113a)는 내부 신호(iDQS)를 재정렬된 제1 데이터(DATA1')와 동기된 데이터 스트로브 신호(DQS)로서 제3 터미널(T3)을 통해 출력할 수 있다.
도 5 내지 도 7을 참조하여 설명된 실시 예에 따르면, 리타이밍 회로(113a)는 읽기 인에이블 신호(/RE)와 데이터 스트로브 신호(DQS) 사이의 지연 시간(tDQSRE) 동안 고정 지연을 검출한다. 즉, 리타이밍 회로(113a)가 고정 지연을 검출하는 동작은 스토리지 장치(100)의 정상 동작들에 가려져(shadowed) 수행되며, 별도의 시간을 필요로 하지 않는다. 또한, 미리 검출된 고정 지연을 이용하여 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성하므로, 미리 검출된 고정 지연인 1/4 주기의 지연 외에 내부 신호(iDQS)를 생성하기 위한 별도의 시간이 요구되지 않는다. 따라서, 리타이밍 회로(113a)는 스토리지 장치(100)의 동작 성능(또는 동작 속도)를 저해하지 않으면서 제1 데이터(DATA1)를 재정렬함으로써, 스토리지 장치(100)의 신뢰성을 향상시킨다.
도 8은 본 발명의 제2 실시 예에 따른 리타이밍 회로(113b)를 보여준다. 도 8을 참조하면, 리타이밍 회로(113b)는 타이밍 신호 처리부(115b) 및 데이터 리타이밍부(117b)를 포함한다.
도 5의 리타이밍 회로(113a)와 비교하면, 타이밍 신호 처리부(115b)에서, 제4 터미널(T4) 및 제3 수신 노드(RX3)를 통해 수신되는 데이터 스트로브 신호(DQS)는 제3 송신 노드(TX3) 및 제3 터미널(T3)로 전달된다. 제3 터미널(T3) 및 제2 수신 노드(RX2)를 통해 수신되는 데이터 스트로브 신호(DQS)는 지연 고정 루프(DLL)로 전달된다.
지연 고정 루프(DLL)는 제2 수신 노드(RX2)를 통해 수신되는 데이터 스트로브 신호(DQS)를 수신한다. 지연 고정 루프(DLL)는 데이터 스트로브 신호(DQS)로부터 고정 지연을 검출하고, 검출된 고정 지연을 이용하여 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성한다. 지연 고정 루프(DLL)는 데이터 스트로브 신호(DQS)보다 데이터 스트로브 신호(DQS)의 1/4 주기만큼 지연된 신호를 내부 신호(iDQS)로 출력할 수 있다. 지연 고정 루프(DLL)로부터 출력되는 내부 신호(iDQS)는 제2 송신 노드(TX2)를 통해 제4 터미널(T4)로 전달된다. 또한, 내부 신호(iDQS)는 데이터 리타이밍부(117b)로 전달된다.
데이터 리타이밍부(117b)에서, 제6 터미널(T6) 및 제5 수신 노드(RX5)를 통해 수신되는 제1 데이터(DATA1)는 제5 송신 노드(TX5)를 통해 제5 터미널(T5)로 전달된다. 제5 터미널(T5) 및 제4 수신 노드(RX4)를 통해 수신되는 제1 데이터(DATA1)는 제2 플립플롭(FF2)에 전달된다. 제2 플립플롭(FF2)은 타이밍 신호 처리부(115b)로부터 수신되는 내부 신호(iDQS)에 동기되어, 제1 데이터(DATA1)를 저장 및 출력할 수 있다. 즉, 제2 플립플롭(FF2)은 제1 데이터(DATA1)를 재정렬할 수 있다. 제2 플립플롭(FF2)에 의해 재정렬된 제1 데이터(DATA1')는 제4 송신 노드(TX4)를 통해 제6 터미널(T6)로 전달된다.
도 9는 본 발명의 제2 실시 예에 따른 지연 고정 루프(DLL')를 보여준다. 도 8 및 도 9를 참조하면, 지연 고정 루프(DLL')는 고정 제어 회로(D1'), 위상 분리기(D2), 지연 라인(D3), 감지 라인(D4), 래치(D5), 위상 검출기(D6), 코드 보상기(D7), 그리고 위상 선택기(D8)를 포함한다.
도 6의 지연 고정 루프(DLL)와 비교하면, 고정 제어 회로(D1')는 제2 수신 노드(RX2)로부터 데이터 스트로브 신호(DQS)를 수신할 수 있다. 고정 제어 회로(D1')는 제어 신호(PER)에 관계 없이, 데이터 스트로브 신호(DQS)를 타이밍 신호(TS)로서 출력할 수 있다. 고정 제어 회로(D1')는 데이터 스트로브 신호(DQS)의 두 주기 동안 활성 상태를 유지하고, 이후에 비활성화될 수 있다.
도 10은 리타이밍 회로(113b)에 입력 및 출력되는 신호들을 보여주는 타이밍도이다. 예시적으로, 불휘발성 메모리(110)의 쓰기 시에 리타이밍 회로(113b)에 입력 및 출력되는 신호들이 도 10에 도시된다. 도 1, 도 8 내지 도 10을 참조하면, 제1 시간(T1)에 데이터 스트로브 신호(DQS)가 주기적으로 토글(또는 천이)하기 시작한다. 예를 들어, 메모리 컨트롤러(120)는 불휘발성 메모리(110)에 대한 쓰기 동작을 수행함에 따라, 데이터 스토로브 신호(DQS)를 주기적으로 토글할 수 있다. 데이터 스토로브 신호(DQS)가 주기적으로 토글함에 따라, 제1 시간(T1)에 제어 신호(PER) 또한 활성화될 수 있다.
제어 신호(PER)는 데이터 스트로브 신호(DQS)가 주기적으로 토글하기 시작한 후 두 주기의 시간(또는 위상)이 경과한 후에 비활성화될 수 있다. 예를 들어, 제어 신호(PER)는 데이터 스트로브 신호(DQS)가 두 번 토글(또는 네 번 천이)할 때까지 활성 상태를 유지할 수 있다.
제어 신호(PER)의 활성 여부에 관계 없이, 데이터 스트로브 신호(DQS)가 타이밍 신호(TS)로 제공된다. 따라서, 타이밍 신호(TS)는 데이터 스트로브 신호(DQS)와 동일한 파형을 가질 수 있다.
제어 신호(PER)가 활성화된 동안, 지연 고정 루프(DLL)의 위상 검출기(D6)는 타이밍 신호(TS)의 1/4 주기에 해당하는 고정 지연을 검출할 수 있다.
제어 신호(PER)가 활성화된 동안, 즉 지연 고정 루프(DLL)가 고정 지연을 검출하는 동안, 리타이밍 회로(113b)는 신호를 출력하지 않는다. 예를 들어, 제어 신호(PER)가 활성화된 동안, 위상 검출기(D6)는 코드(B[6:1])를 출력하지 않는다. 따라서, 타이밍 신호(TS)가 토글(또는 천이)하여도, 내부 신호(iDQS)는 비활성 상태를 유지한다.
제어 신호(PER)가 비활성화된 후, 제2 시간(T2)에, 위상 검출기(D6)는 코드(B[6:1])를 출력한다. 따라서, 지연 고정 루프(DLL)는 데이터 스트로브 신호(DQS)보다 1/4 주기만큼 지연된 내부 신호(iDQS)를 출력한다.
예시적으로, 메모리 컨트롤러(120)는 토글 낸드 플래시 메모리의 표준에서 정의된 "Latency2"에 따라 데이터 스트로브 신호(DQS)를 제어할 수 있다. "Latency2"에 따르면, 메모리 컨트롤러(120)는 데이터 스트로브 신호(DQS)를 두 주기 동안 토글한 후에, 데이터 스트로브 신호(DQS)와 동기된 제1 데이터(DATA1)를 전송할 수 있다. 따라서, 메모리 컨트롤러(120)는 데이터 스트로브 신호(DQS)가 두 주기 동안 토글한 후 제2 시간에, 제5 터미널(T5)로 데이터 스트로브 신호(DQS)와 동기된 제1 데이터(DATA1)를 전송할 수 있다.
데이터 리타이밍부(117b)의 제2 플립플롭(FF2)은 내부 신호(iDQS)에 동기되어 제5 터미널(T5)을 통해 수신되는 제1 데이터(DATA1)를 저장 및 출력한다. 내부 신호(iDQS)는 데이터 스트로브 신호(DQS)가 1/4 주기의 고정 지연 만큼 지연된 신호이다. 따라서, 제2 플립플롭(FF2)은 내부 신호(iDQS)에 동기되어, 제5 터미널(T5)을 통해 수신되는 제1 데이터(DATA1)를 최적의 타이밍에 저장 및 출력할 수 있다.
제2 플립플롭(FF2)에 의해 재정렬된 제1 데이터(DATA1')는 내부 신호(iDQS)에 동기된다. 리타이밍 회로(113b)는 내부 신호(iDQS)를 재정렬된 제1 데이터(DATA1')와 동기된 데이터 스트로브 신호(DQS)로서 제4 터미널(T4)을 통해 출력할 수 있다.
도 8 내지 도 10을 참조하여 설명된 실시 예에 따르면, 리타이밍 회로(113b)는 "Latency2"에 의해 정의된 데이터 스트로브 신호(DQS)의 더미 토글 구간 동안에 고정 지연을 검출한다. 즉, 리타이밍 회로(113b)가 고정 지연을 검출하는 동작은 스토리지 장치(100)의 정상 동작들에 가려져(shadowed) 수행되며, 별도의 시간을 필요로 하지 않는다. 또한, 미리 검출된 고정 지연을 이용하여 데이터 스트로브 신호(DQS)로부터 내부 신호(iDQS)를 생성하므로, 미리 검출된 고정 지연인 1/4 주기의 지연 외에 내부 신호(iDQS)를 생성하기 위한 별도의 시간이 요구되지 않는다. 따라서, 리타이밍 회로(113b)는 스토리지 장치(100)의 동작 성능(또는 동작 속도)를 저해하지 않으면서 제1 데이터(DATA1)를 재정렬함으로써, 스토리지 장치(100)의 신뢰성을 향상시킨다.
도 11은 본 발명의 제3 실시 예에 따른 리타이밍 회로(113c)를 보여준다. 도 11을 참조하면, 리타이밍 회로(113c)는 타이밍 신호 처리부(115c), 데이터 리타이밍부(117c), 그리고 커맨드 식별부(119c)를 포함한다.
도 5 및 도 8의 리타이밍 회로들(113a,113b)와 비교하면, 리타이밍 회로(113c)는 커맨드 식별부(119c)를 더 포함한다. 커맨드 식별부(119c)는 제7 터미널(T7)을 통해 메모리 컨트롤러(120)로부터 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)을 수신할 수 있다. 제7 터미널(T7)은 도 2에서, 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)을 각각 수신하는 리타이밍 회로(113)의 패드들에 대응할 수 있다. 또한, 커맨드 식별부(119c)는 제5 터미널(T5)을 통해 제1 커맨드(CMD1)를 수신할 수 있다.
커맨드 식별부(119c)는 제8 터미널(T8)을 통해 불휘발성 메모리 장치(111)로 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)을 출력할 수 있다. 제8 터미널(T8)은 도 3에서, 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)을 각각 출력하는 리타이밍 회로(113)의 패드들에 대응할 수 있다.
커맨드 식별부(119c)는 제6 수신 노드(RX6), 제6 송신 노드(TX6), 그리고 커맨드 디코더(CD)를 포함한다.
제6 수신 노드(RX6)은 제7 터미널(T7)로부터 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)을 수신할 수 있다. 제6 수신 노드(RX6)를 통해 수신된 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)은 커맨드 디코더(CD)로 전달된다.
커맨드 디코더(CD)는 제7 터미널(T7)로부터 수신되는 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)에 기반하여, 제5 터미널(T5)로부터 수신되는 신호가 제1 커맨드(CMD1)인지 식별할 수 있다. 예를 들어, 메모리 컨트롤러(120)가 칩 인에이블 신호들(/CE1~/CEN) 중 하나를 활성화(예를 들어, 로직 로우)하고, 커맨드 래치 인에이블 신호(CLE)를 활성화(예를 들어, 로직 하이)하고, 어드레스 래치 인에이블 신호(ALE)를 비활성화(예를 들어, 로직 로우)하고, 쓰기 인에이블 신호(/WE)를 활성화(예를 들어, 로직 로우)한 후 비활성화(예를 들어, 로직 하이)할 때, 리타이밍 회로(113)는 제5 터미널(T5)을 통해 제1 커맨드(CMD1)가 수신되는 것으로 식별할 수 있다.
제5 터미널(T5)을 통해 제1 커맨드(CMD1)가 수신될 때, 커맨드 디코더(CD)는 수신되는 제1 커맨드(CMD1)가 읽기 커맨드인지 또는 쓰기 커맨드인지 식별할 수 있다. 식별 결과에 따라, 커맨드 디코더(CD)는 제어 신호(RW)를 제어할 수 있다. 예를 들어, 제1 커맨드(CMD1)가 읽기 커맨드일 때, 커맨드 디코더(CD)는 제어 신호(RW)를 제1 값으로 제어할 수 있다. 제1 커맨드(CMD1)가 쓰기 커맨드일 때, 커맨드 디코더(CD)는 제어 신호(RW)를 제2 값으로 제어할 수 있다. 제1 커맨드(CMD1)가 읽기 커맨드 또는 쓰기 커맨드가 아닐 때, 커맨드 디코더(CD)는 제어 신호(RW)를 비활성화할 수 있다. 제어 신호(RW)는 타이밍 신호 처리부(115c)로 전달된다.
커맨드 디코더(CD)는 어드레스 래치 인에이블 신호(ALE), 커맨드 래치 인에이블 신호(CLE), 쓰기 인에이블 신호(/WE), 그리고 제1 내지 제N 칩 인에이블 신호들(/CE1~/CEN)를 제6 송신 노드(TX6)를 통해 제8 터미널(T8)로 전달할 수 있다.
제1 터미널(T1) 및 제1 수신 노드(RX1)를 통해 수신되는 읽기 인에이블 신호(/RE)는 제1 멀티플렉서(MUX1)로 전달되며, 제1 송신 노드(TX1)를 통해 제2 터미널(T2)로 전달된다.
제3 터미널(T3) 및 제2 수신 노드(RX2)를 통해 수신되는 데이터 스트로브 신호(DQS)는 제1 멀티플렉서(MUX1)로 전달된다. 제4 터미널(T4) 및 제3 수신 노드(RX3)를 통해 수신되는 데이터 스트로브 신호(DQS)는 제1 멀티플렉서(MUX1)로 전달된다.
제1 멀티플렉서(MUX1)는 제1 수신 노드(RX1)로부터 읽기 인에이블 신호(/RE)를 수신하고, 제2 수신 노드(RX2)로부터 데이터 스트로브 신호(DQS)를 수신하고, 제3 수신 노드(RX3)로부터 데이터 스트로브 신호(DQS)를 수신하고, 그리고 커맨드 디코더(CD)로부터 제어 신호(RW)를 수신한다. 제어 신호(RW)가 읽기를 가리킬 때, 제1 멀티플렉서(MUX1)는 제1 수신 노드(RX1)로부터 수신된 읽기 인에이블 신호(/RE) 및 제3 수신 노드(RX3)로부터 수신된 데이터 스트로브 신호(DQS)를 지연 고정 루프(DLL)로 전달할 수 있다. 제어 신호(RW)가 쓰기를 가리킬 때, 제1 멀티플렉서(MUX1)는 제2 수신 노드(RX2)로부터 수신된 데이터 스트로브 신호(DQS)를 지연 고정 루프(DLL)로 전달할 수 있다.
지연 고정 루프(DLL)는, 읽기 시에, 제1 멀티플렉서(MUX1)로부터 읽기 인에이블 신호(/RE) 및 제3 수신 노드(RX3)로부터 수신되는 데이터 스트로브 신호(DQS)를 수신한다. 도 5 내지 도 7을 참조하여 설명된 바와 같이, 지연 고정 루프(DLL)는 읽기 인에이블 신호(/RE)로부터 1/4 주기의 고정 지연을 검출하고, 검출된 고정 지연을 이용하여 데이터 스트로브 신호(DQS)로부터 1/4 주기만큼 지연된 내부 신호(iDQS)를 출력할 수 있다. 내부 신호(iDQS)는 데이터 리타이밍부(115c)로 전달되고, 제3 송신 노드(TX3) 및 제3 터미널(T3)을 통해 데이터 스트로브 신호(DQS)로서 출력된다.
지연 고정 루프(DLL)는, 쓰기 시에, 제2 수신 노드(RX2)로부터 수신되는 데이터 스트로브 신호(DQS)를 제1 멀티플렉서(MUX1)로부터 수신한다. 도 8 내지 도 10을 참조하여 설명된 바와 같이, 지연 고정 루프(DLL)는 데이터 스트로브 신호(DQS)로부터 1/4주기의 고정 지연을 검출하고, 검출된 고정 지연을 이용하여 데이터 스트로브 신호(DQS)로부터 1/4 주기만큼 지연된 내부 신호(iDQS)를 출력할 수 있다. 내부 신호(iDQS)는 데이터 리타이밍부(115c)로 전달되고, 제2 송신 노드(TX2) 및 제4 터미널(T4)을 통해 데이터 스트로브 신호(DQS)로서 출력된다.
데이터 리타이밍부(115c)에서, 제1 플립플롭(FF1)은, 도 5 내지 도 7을 참조하여 설명된 바와 같이, 읽기 시에 제6 터미널(T6) 및 제5 수신 노드(RX5)를 통해 수신되는 제1 데이터(DATA1)를 내부 신호(iDQS)에 동기되어 재정렬할 수 있다. 제2 플립플롭(FF2)은, 도 8 내지 도 10을 참조하여 설명된 바와 같이, 쓰기 시에 제5 터미널(T5) 및 제4 수신 노드(RX4)를 통해 수신되는 제1 데이터(DATA1)를 내부 신호(iDQS)에 동기되어 재정렬할 수 있다.
상술된 바와 같이, 리타이밍 회로(113c)는 읽기 및 쓰기 시에, 메모리 컨트롤러(120) 및 불휘발성 메모리(110) 사이에서 교환되는 제1 데이터(DATA1)를 리타이밍할 수 있다. 리타이밍 회로(113c)의 리타이밍은, 스토리지 장치(100)의 정상 동작들에 가려져(shadowed) 수행되며, 별도의 시간을 필요로 하지 않는다. 따라서, 리타이밍 회로(113c)는 스토리지 장치(100)의 동작 성능(또는 동작 속도)를 저해하지 않으면서 제1 데이터(DATA1)를 재정렬함으로써, 스토리지 장치(100)의 신뢰성을 향상시킨다.
도 12는 본 발명의 제4 실시 예에 따른 리타이밍 회로(115d)를 보여준다. 도 12를 참조하면, 리타이밍 회로(113d)는 타이밍 신호 처리부(115d), 데이터 리타이밍부(117d), 그리고 커맨드 식별부(119d)를 포함한다. 도 11의 리타이밍 회로(113c)와 비교하면, 리타이밍 회로(113d)는 제1 데이터(DATA1)의 리타이밍을 선택적으로 수행할 수 있다.
도 11의 타이밍 신호 처리부(113c)와 비교하면, 타이밍 신호 처리부(113d)는 제2 및 제3 멀티플렉서들(MUX2, MUX3)을 더 포함한다. 제2 멀티플렉서(MUX2)는 지연 고정 루프(DLL)로부터 내부 신호(iDQS)를 수신하고, 제4 터미널(T4) 및 제3 수신 노드(RX3)를 통해 데이터 스트로브 신호(DQS)를 수신할 수 있다. 활성 신호(EN)에 응답하여, 제2 멀티플렉서(MUX2)는 내부 신호(iDQS) 또는 데이터 스트로브 신호(DQS)를 제3 송신 노드(TX3)로 전달할 수 있다.
제3 멀티플렉서(MUX3)는 지연 고정 루프(DLL)로부터 내부 신호(iDQS)를 수신하고, 제3 터미널(T3) 및 제2 수신 노드(RX2)를 통해 데이터 스트로브 신호(DQS)를 수신한다. 활성 신호(EN)에 응답하여, 제3 멀티플렉서(MUX3)는 내부 신호(iDQS) 또는 데이터 스트로브 신호(DQS0를 제2 송신 노드(TX2)로 전달할 수 있다.
도 11의 데이터 리타이밍부(115c)와 비교하면, 데이터 리타이밍부(115c)는 제4 및 제5 멀티플렉서들(MUX4, MUX5)을 더 포함한다. 제4 멀티플렉서(MUX4)는 제1 플립플롭(FF1)으로부터 재정렬된 제1 데이터(DATA1')를 수신하고, 제6 터미널(T6) 및 제5 수신 노드(RX5)를 통해 제1 데이터(DATA1)를 수신할 수 있다. 활성 신호(EN)에 응답하여, 제4 멀티플렉서(MUX4)는 재정렬된 제1 데이터(DATA1') 또는 제1 데이터(DATA1)를 제5 송신 노드(TX5)로 전달할 수 있다.
제5 멀티플렉서(MUX5)는 제2 플립플롭(FF2)으로부터 재정렬된 제1 데이터(DATA1')를 수신하고, 제5 터미널(T5) 및 제4 수신 노드(RX4)를 통해 제1 데이터(DATA1)를 수신한다. 활성 신호(EN)에 응답하여, 제5 멀티플렉서(MUX5)는 재정렬된 제1 데이터(DATA1') 또는 제1 데이터(DATA1)를 제4 송신 노드(TX4)로 전달한다.
활성 신호(EN)가 활성 상태일 때, 제2 멀티플렉서(MUX2) 또는 제3 멀티플렉서(MUX3)를 통해 내부 신호(iDQS)가 데이터 스트로브 신호(DQS)로서 출력된다. 활성 신호(EN)가 비활성 상태일 때, 제2 멀티플렉서(MUX2) 또는 제3 멀티플렉서(MUX3)를 통해 데이터 스트로브 신호(DQS)가 출력된다.
활성 신호(EN)가 활성 상태일 때, 제4 멀티플렉서(MUX4) 또는 제5 멀티플렉서(MUX5)를 통해, 내부 신호(iDQS)와 동기되는 재정렬된 제1 데이터(DATA1')가 출력된다. 활성 신호(EN)가 비활성 상태일 때, 제4 멀티플렉서(MUX4) 또는 제5 멀티플렉서(MUX5)를 통해, 데이터 스트로브 신호(DQS)와 동기되는 제1 데이터(DATA1)가 출력된다.
즉, 리타이밍 회로(113d)는 활성 신호(EN)에 따라 선택적으로 리타이밍을 수행할 수 있다. 예시적으로, 활성 신호(EN)는 메모리 컨트롤러(120)로부터 제공될 수 있다. 예를 들어, 활성 신호(EN)는 리타이밍 회로(113d) 또는 불휘발성 메모리(110)에 제공되며 메모리 컨트롤러(120)에 의해 제어되는 레지스터의 값에 따라 생성될 수 있다.
도 13은 리타이밍 회로(113e) 및 불휘발성 메모리 장치(111) 사이의 연결 관계의 다른 예를 보여주는 블록도이다. 도 3의 리타이밍 회로(113)와 비교하면, 리타이밍 회로(113e)는 제1 내지 제N 불휘발성 메모리 장치들(111_1~111_N)과 통신하기 위한 별도의 입출력 패드들(DQ1~DQk)을 구비한다. 리타이밍 회로(113e)가 제1 불휘발성 메모리 장치(111_1)와 통신하는 입출력 패드들(DQ1~DQk)은, 리타이밍 회로(113e)가 제N 불휘발성 메모리 장치(111_N)와 통신하는 입출력 패드들(DQ1~DQk)과 다를 수 있다.
도 14는 본 발명의 제5 실시 예에 따른 리타이밍 회로(115e)를 보여준다. 도 13 및 도 14를 참조하면, 리타이밍 회로(113e)는 타이밍 신호 처리부(115e), 데이터 리타이밍부(117e), 그리고 커맨드 식별부(119e)를 포함한다. 도 12의 리타이밍 회로(113d)와 비교하면, 데이터 리타이밍부(117e)는 복수의 제6 터미널들(T6_1~T6_N)을 통해 복수의 불휘발성 메모리 장치들(111_1~111_N)과 각각 제1 데이터(DATA1), 제1 어드레스(ADDR1) 또는 제1 커맨드(CMD1)를 교환한다. 복수의 제6 터미널들(T6_1~T6_N) 각각은 도 13의 리타이밍 회로(113e)의 제1 내지 제N 입출력 패드들(DQ1~DQk)의 한 개의 셋트에 해당할 수 있다.
도 12의 데이터 리타이밍부(117d)와 비교하면, 데이터 리타이밍부(117e)는 제6 멀티플렉서(MUX6)를 더 포함한다. 제6 멀티플렉서(MUX6)는 제4 송신 노드(TX4)를 통해 수신되는 제1 데이터(DATA1), 제1 커맨드(CMD1) 또는 제1 어드레스(ADDR1)를 복수의 제6 터미널들(T6_1~T6_N) 중 하나로 전달할 수 있다. 예를 들어, 제6 멀티플렉서(MUX6)는 제7 터미널(T6)을 통해 복수의 칩 인에이블 신호들(/CE1~/CEN)을 수신할 수 있다. 제6 멀티플렉서(MUX6)는 복수의 제6 터미널들(T6_1~T6_N) 중 활성화된 칩 인에이블 신호에 해당하는 터미널로 제1 데이터(DATA1), 제1 어드레스(ADDR1) 또는 제1 커맨드(CMD1)를 전달할 수 있다.
제6 멀티플렉서(MUX6)는 복수의 제6 터미널들(T6_1~T6_N) 중 하나로부터 수신되는 제1 데이터(DATA1)를 제5 수신 노드(RX5)로 전달할 수 있다.
도 13 및 도 14에서, 리타이밍 회로(113e)는 복수의 불휘발성 메모리 장치들(111_1~111_N)과 서로 다른 입출력 패드들을 통해 통신하는 것으로 설명되었다. 이 경우, 데이터 리타이밍부(117e)의 복수의 제6 터미널들(T6_1~T6_N)의 수는 복수의 불휘발성 메모리 장치들(111_1~111_N)의 수와 동일할 수 있다.
그러나, 복수의 불휘발성 메모리 장치들(111_1~111_N)은 복수의 그룹들로 분할될 수 있다. 각 그룹은 둘 이상의 불휘발성 메모리 장치들을 포함할 수 있다. 리타이밍 회로(113e)는 복수의 그룹들과 서로 다른 입출력 패드들을 통해 통신할 수 있다. 이 경우, 데이터 리타이밍부(117e)의 복수의 제6 터미널들의 수는, 복수의 그룹들의 수와 동일할 수 있다. 각 그룹에 속한 둘 이상의 불휘발성 메모리 장치들은 하나의 제6 터미널을 공유할 수 있다.
도 15는 본 발명의 제2 실시 예에 따른 스토리지 장치(200)를 보여주는 블록도이다. 도 15를 참조하면, 스토리지 장치(200)는 복수의 불휘발성 메모리들(210), 메모리 컨트롤러(220), 그리고 RAM (230)을 포함한다. 각 불휘발성 메모리(210)는 불휘발성 메모리 장치(211) 및 리타이밍 회로(213)를 포함할 수 있다. 각 불휘발성 메모리(210)는 도 2 내지 도 14를 참조하여 설명된 불휘발성 메모리(110)와 동일한 구조를 갖고, 동일한 방법으로 동작할 수 있다. 불휘발성 메모리 장치(211)는 복수의 불휘발성 메모리 장치들로 구성될 수 있다. 리타이밍 회로(213)는 복수의 불휘발성 메모리 장치들 및 메모리 컨트롤러(220) 사이에서 리타이밍을 수행할 수 있다.
메모리 컨트롤러(220)는 공통 채널을 통해 복수의 불휘발성 메모리들(210)과 제1 데이터(DATA1), 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 통신할 수 있다. 메모리 컨트롤러(220)는 공통 채널을 통해 복수의 불휘발성 메모리들(210)과 제어 신호(CTRL')를 교환할 수 있다. 제어 신호(CTRL')는 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 읽기 인에이블 신호(/RE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP)를 포함할 수 있다.
메모리 컨트롤러(210)는 서로 다른 채널들을 통해 복수의 불휘발성 메모리들(210)과 칩 인에이블 신호(/CE)와 레디 및 비지 신호(R/nB)를 통신할 수 있다. 메모리 컨트롤러(210)는 칩 인에이블 신호(/CE)를 제어함으로써, 불휘발성 메모리들(210) 및 각 불휘발성 메모리(210) 내의 불휘발성 메모리 장치들(211)을 개별적으로 선택할 수 있다. 또한, 메모리 컨트롤러(210)는 레디 및 비지 신호(R/nB)에 기반하여, 불휘발성 메모리들(210) 및 각 불휘발성 메모리(210) 내의 불휘발성 메모리 장치들(211)이 통신 가능한 상태인지 식별할 수 있다.
도 16은 본 발명의 제3 실시 예에 따른 스토리지 장치(300)를 보여주는 블록도이다. 도 16을 참조하면, 스토리지 장치(300)는 복수의 불휘발성 메모리들(310), 메모리 컨트롤러(320), 그리고 RAM (330)을 포함한다. 각 불휘발성 메모리(310)는 불휘발성 메모리 장치(311) 및 리타이밍 회로(313)를 포함할 수 있다. 각 불휘발성 메모리(310)는 도 2 내지 도 14를 참조하여 설명된 불휘발성 메모리(110)와 동일한 구조를 갖고, 동일한 방법으로 동작할 수 있다. 불휘발성 메모리 장치(311)는 복수의 불휘발성 메모리 장치들로 구성될 수 있다. 리타이밍 회로(313)는 복수의 불휘발성 메모리 장치들 및 메모리 컨트롤러(320) 사이에서 리타이밍을 수행할 수 있다.
불휘발성 메모리들(310)은 복수의 채널들(CH)을 통해 메모리 컨트롤러(320)와 통신할 수 있다. 서로 다른 채널들(CH)에 연결된 불휘발성 메모리들은 서로 독립적으로 메모리 컨트롤러(320)와 통신할 수 있다. 각 채널(CH)에서. 메모리 컨트롤러(320)는 공통 채널을 통해 불휘발성 메모리들(310)과 제1 데이터(DATA1), 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 통신할 수 있다. 각 채널(CH)에서, 메모리 컨트롤러(320)는 공통 채널을 통해 불휘발성 메모리들(310)과 제어 신호(CTRL')를 교환할 수 있다. 제어 신호(CTRL')는 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 읽기 인에이블 신호(/RE), 쓰기 인에이블 신호(/WE), 쓰기 방지 신호(/WP)를 포함할 수 있다.
각 채널(CH)에서, 메모리 컨트롤러(310)는 서로 다른 채널들을 통해 불휘발성 메모리들(310)과 칩 인에이블 신호(/CE)와 레디 및 비지 신호(R/nB)를 통신할 수 있다. 각 채널(CH)에서, 메모리 컨트롤러(310)는 칩 인에이블 신호(/CE)를 제어함으로써, 불휘발성 메모리들(310) 및 각 불휘발성 메모리(310) 내의 불휘발성 메모리 장치들(311)을 개별적으로 선택할 수 있다. 또한, 각 채널(CH)에서, 메모리 컨트롤러(310)는 레디 및 비지 신호(R/nB)에 기반하여, 불휘발성 메모리들(310) 및 각 불휘발성 메모리(310) 내의 불휘발성 메모리 장치들(311)이 통신 가능한 상태인지 식별할 수 있다.
도 17은 본 발명의 제4 실시 예에 따른 스토리지 장치(400)를 보여주는 블록도이다. 도 17을 참조하면, 스토리지 장치(400)는 불휘발성 메모리(410), 메모리 컨트롤러(420), RAM (430), 그리고 리타이밍 회로(440)를 포함한다. 도 1을 참조하여 설명된 스토리지 장치(100)와 비교하면, 리타이밍 회로(440)는 불휘발성 메모리(410)의 내부가 아닌 외부에 제공될 수 있다. 리타이밍 회로(440)는 불휘발성 메모리(410) 및 메모리 컨트롤러(420) 사이에서 제1 데이터(DATA1)를 재정렬할 수 있다.
불휘발성 메모리(410)는 복수의 불휘발성 메모리 장치들로 구성될 수 있다. 리타이밍 회로(440)는 복수의 불휘발성 메모리들과 통신하도록 구성될 수 있다.
도 18은 본 발명의 실시 예에 따른 메모리 컨트롤러(120)를 보여주는 블록도이다. 도 1 및 도 18을 참조하면, 메모리 컨트롤러(120)는 버스(121), 프로세서(122), RAM (123), 호스트 인터페이스(124), 메모리 인터페이스(125), 그리고 버퍼 제어 회로(127)를 포함한다.
버스(121)는 메모리 컨트롤러(120)의 구성 요소들 사이에 채널을 제공하도록 구성된다. 예를 들어, 외부의 호스트 장치로부터 메모리 컨트롤러(120)에 수신되는 제2 커맨드(CMD2) 및 제2 어드레스(ADDR2)는 버스(121)를 통해 프로세서(122)로 전달될 수 있다. 프로세서(122)는 제2 커맨드(CMD2) 및 제2 어드레스(ADDR2)에 기반하여, 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 생성할 수 있다. 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)는 버스(121)를 통해 메모리 인터페이스(125)로 전달될 수 있다. 즉, 버스(121)는 호스트 인터페이스(124), 프로세서(122), 그리고 메모리 인터페이스(125) 사이에서 커맨드 및 어드레스가 전송되는 경로를 제공할 수 있다. 또한, 버스(121)는 프로세서(122)가 호스트 인터페이스(124), 메모리 인터페이스(125) 및 버퍼 제어 회로(127)를 제어하는 제어 채널을 제공할 수 있다. 버스(121)는 프로세서(122)가 RAM (123)을 액세스하는 액세스 채널을 제공할 수 있다.
프로세서(122)는 메모리 컨트롤러(120)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서(122)는 호스트 인터페이스(125)를 통해 외부의 호스트 장치와 통신할 수 있다. 프로세서(122)는 호스트 인터페이스(125)를 통해 수신되는 제2 커맨드(CMD2) 또는 제2 어드레스(ADDR2)를 RAM (123)에 저장할 수 있다. 프로세서(122)는 RAM (123)에 저장된 커맨드 또는 어드레스에 따라 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 생성하고, 생성된 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 메모리 인터페이스(125)를 통해 출력할 수 있다.
예를 들어, 제2 어드레스(ADDR2)는 호스트 장치에서 사용되는 논리 어드레스이고, 제1 어드레스(ADDR2)는 불휘발성 메모리(110)에서 사용되는 물리 어드레스일 수 있다. 프로세서(122)는 제2 어드레스(ADDR2)를 제1 어드레스(ADDR1)로 변환할 때에 사용되는 정보를 RAM (123)에 로드하고, RAM (123)에 로드된 정보를 참조할 수 있다.
프로세서(122)는 호스트 인터페이스(125)를 통해 수신되는 데이터가 버퍼 제어 회로(127)를 통해 출력되도록 제어할 수 있다. 프로세서(122)는 버퍼 제어 회로(126)를 통해 수신되는 데이터가 메모리 인터페이스(125)로 전달되도록 제어할 수 있다. 프로세서(122)는 메모리 인터페이스(125)를 통해 수신되는 데이터가 버퍼 제어 회로(127)를 통해 출력되도록 제어할 수 있다. 프로세서(122)는 버퍼 제어 회로(127)를 통해 수신되는 데이터가 호스트 인터페이스(124) 또는 메모리 인터페이스(125)를 통해 출력할 수 있다.
RAM (123)은 프로세서(122)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM (123)은 프로세서(122)가 실행하는 코드들 및 명령들을 저장할 수 있다. RAM (123)은 프로세서(122)에 의해 처리되는 데이터를 저장할 수 있다. RAM (123)은 SRAM (Static RAM)을 포함할 수 있다.
호스트 인터페이스(124)는 프로세서(122)의 제어에 따라, 외부의 호스트 장치와 통신하도록 구성된다. 호스트 인터페이스(124)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 통신 방법들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
호스트 인터페이스(124)는 호스트 장치로부터 수신되는 제2 커맨드(CMD2) 및 제2 어드레스(ADDR2)를 버스(121)를 통해 프로세서(122)로 전달할 수 있다. 호스트 인터페이스(124)는 호스트 장치로부터 수신되는 제2 데이터(DATA2)를 데이터 채널(DC)을 통해 버퍼 제어 회로(127)로 전달할 수 있다. 호스트 인터페이스(124)는 버퍼 제어 회로(127)로부터 수신되는 제2 데이터(DATA2)를 호스트 장치로 출력할 수 있다.
메모리 인터페이스(125)는 프로세서(122)의 제어에 따라, 불휘발성 메모리(110)와 통신하도록 구성된다. 메모리 인터페이스(125)는 프로세서(122)로부터 버스(121)를 통해 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 수신할 수 있다. 메모리 인터페이스(125)는 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 불휘발성 메모리(110)로 출력할 수 있다. 또한, 메모리 인터페이스(125)는 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)에 기반하여 제어 신호(CTRL)를 생성하고, 생성된 제어 신호(CTRL)를 불휘발성 메모리(110)로 출력할 수 있다.
메모리 인터페이스(125)는 버퍼 제어 회로(127)로부터 데이터 채널(DC)을 통해 제1 데이터(DATA1)를 수신할 수 있다. 메모리 인터페이스(125)는 데이터 채널(DC)을 통해 수신된 제1 데이터(DATA1)를 불휘발성 메모리(110)로 출력할 수 있다. 메모리 인터페이스(125)는 불휘발성 메모리(110)로부터 제어 신호(CTRL) 및 제1 데이터(DATA1)를 수신할 수 있다. 메모리 인터페이스(121)는 불휘발성 메모리(110)로부터 수신되는 제1 데이터(DATA1)를 데이터 채널(DC)을 통해 버퍼 제어 회로(127)로 전달할 수 있다.
메모리 인터페이스(125)는 에러 정정 블록(126)을 포함한다. 에러 정정 블록(126)은 에러 정정을 수행할 수 있다. 에러 정정 블록(126)은 메모리 인터페이스(125)를 통해 불휘발성 메모리(110)로 출력되는 제1 데이터(DATA1)에 기반하여, 에러 정정을 수행하기 위한 패리티를 생성할 수 있다. 생성된 패리티는 제1 데이터(DATA1)와 함께 불휘발성 메모리(110)에 기입될 수 있다. 불휘발성 메모리(110)로부터 제1 데이터(DATA1)가 수신될 때, 제1 데이터(DATA1)와 연관된 패리티가 함께 수신될 수 있다. 에러 정정 블록(126)은 메모리 인터페이스(125)를 통해 수신되는 제1 데이터(DATA1) 및 제1 데이터(DATA1)와 패리티를 이용하여, 제1 데이터(DATA1)의 에러 정정을 수행할 수 있다.
버퍼 제어 회로(127)는 프로세서(222)의 제어에 따라, RAM (130)을 제어하도록 구성된다. 버퍼 제어 회로(127)는 RAM (130)에 데이터를 쓰고, RAM (130)으로부터 데이터를 읽을 수 있다.
예시적으로, 프로세서(122)는 코드들을 이용하여 메모리 컨트롤러(120)를 제어할 수 있다. 프로세서(122)는 메모리 컨트롤러(120)의 내부에 제공되는 불휘발성 메모리(예를 들어, Read Only Memory)로부터 코드들을 읽고, 읽어진 코드들을 RAM (123)에 저장하여 실행할 수 있다. 다른 예로서, 프로세서(122)는 메모리 인터페이스(125)를 통해 수신되는 코드들을 RAM (123)에 저장하여 실행할 수 있다.
예시적으로, 메모리 인터페이스(125) 또는 프로세서(122)는 불휘발성 메모리(110)에 기입되는 제1 데이터(DATA1)에 대해 임의화(randomization)를 더 수행할 수 있다. 임의화는 제1 데이터(DATA1)에서 특정한 패턴이 발생하는 것이 방지되도록, 제1 데이터(DATA1)를 임의적으로 또는 미리 정해진 규칙에 따라 코딩하는 동작일 수 있다. 메모리 인터페이스(125) 또는 프로세서(122)는 불휘발성 메모리(110)로부터 읽히는 제1 데이터(DATA1)에 대해 역임의화(derandomization)를 더 수행할 수 있다.
예시적으로, 메모리 인터페이스(125) 또는 프로세서(122)는 불휘발성 메모리(110)에 기입되는 제1 데이터(DATA1)의 보안성을 향상시키는 암호화(Encryption)를 더 수행할 수 있다. 메모리 인터페이스(125) 또는 프로세서(122)는 불휘발성 메모리(110)로부터 읽히는 제1 데이터(DATA1)에 대해 복호화(decryption)를 더 수행할 수 있다. 암호화 및 복호화는 DES (Data Encryption Standard), AES (Advanced Encryption Standard) 등과 같은 표준 규약에 따라 수행될 수 있다.
예시적으로, 메모리 컨트롤러(120)는 보조 전원을 제공하도록 구성될 수 있다. 예를 들어, 메모리 컨트롤러(120)는 호스트 장치로부터 공급되는 전원을 슈퍼캡(super cap)과 같은 충전소에 저장할 수 있다. 호스트 장치로부터 공급되는 전원이 갑자기 차단될 때에, 메모리 컨트롤러(120)는 충전소에 저장된 전원을 보조 전원으로 사용할 수 있다. 메모리 컨트롤러(120)는 보조 전원을 이용하여, 메모리 컨트롤러(120)의 동작 상태에 대한 백업을 수행하거나, 불휘발성 메모리(110)에 아직 기입되지 않은 데이터를 기입할 수 있다. 메모리 컨트롤러(120)는 보조 전원을 이용하여, 정상적인 파워 오프 시퀀스를 수행할 수 있다.
도 19는 본 발명의 제5 실시 예에 따른 스토리지 장치(500)를 보여주는 블록도이다. 도 19를 참조하면, 스토리지 장치(500)는 불휘발성 메모리(510) 및 메모리 컨트롤러(520)를 포함한다. 불휘발성 메모리(510)는 불휘발성 메모리 장치(511) 및 리타이밍 회로(513)를 포함한다.
도 1의 스토리지 장치(100)와 비교하면, 스토리지 장치(500)에 RAM이 제공되지 않는다. 메모리 컨트롤러(520)는 외부의 RAM 대신에 내부의 RAM을 사용하여 동작할 수 있다.
도 20은 본 발명의 실시 예에 따른 메모리 컨트롤러(520)를 보여주는 블록도이다. 도 20을 참조하면, 메모리 컨트롤러(520)는 버스(521), 프로세서(522), RAM (523), 호스트 인터페이스(524), 그리고 메모리 인터페이스(525)를 포함한다.
버스(521)는 메모리 컨트롤러(120)의 구성 요소들 사이에 채널을 제공하도록 구성된다.
프로세서(522)는 메모리 컨트롤러(520)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서(522)는 호스트 인터페이스(525)를 통해 외부의 호스트 장치와 통신할 수 있다. 프로세서(522)는 호스트 인터페이스(525)를 통해 수신되는 제2 커맨드(CMD2) 또는 제2 어드레스(ADDR2)를 RAM (523)에 저장할 수 있다. 프로세서(522)는 RAM (523)에 저장된 커맨드 또는 어드레스에 따라 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 생성하고, 생성된 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 메모리 인터페이스(525)를 통해 출력할 수 있다.
예를 들어, 제2 어드레스(ADDR2)는 호스트 장치에서 사용되는 논리 어드레스이고, 제1 어드레스(ADDR2)는 불휘발성 메모리(510)에서 사용되는 물리 어드레스일 수 있다. 프로세서(122)는 제2 어드레스(ADDR2)를 제1 어드레스(ADDR1)로 변환할 때에 사용되는 정보를 RAM (523)에 로드하고, RAM (523)에 로드된 정보를 참조할 수 있다.
프로세서(522)는 호스트 인터페이스(525)를 통해 수신되는 제2 데이터(DATA2)를 RAM (523)에 저장할 수 있다. 프로세서(522)는 RAM (523)에 저장된 데이터를 제1 데이터(DATA1)로서 메모리 인터페이스(525)로 전달할 수 있다. 프로세서(522)는 메모리 인터페이스(525)를 통해 수신되는 제1 데이터(DATA1)를 RAM (523)에 저장할 수 있다. 프로세서(522)는 RAM (523)에 저장된 데이터를 제2 데이터(DATA2)로서 호스트 인터페이스(524)를 통해 출력할 수 있다.
RAM (523)은 프로세서(522)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. RAM (523)은 프로세서(522)가 실행하는 코드들 및 명령들을 저장할 수 있다. RAM (523)은 프로세서(522)에 의해 처리되는 데이터를 저장할 수 있다. RAM (523)은 불휘발성 메모리(510)에 기입되는 제1 데이터(DATA1) 또는 불휘발성 메모리(510)로부터 읽히는 제1 데이터(DATA1)를 저장할 수 있다. RAM (523)은 SRAM (Static RAM)을 포함할 수 있다.
호스트 인터페이스(524)는 프로세서(522)의 제어에 따라, 외부의 호스트 장치와 통신하도록 구성된다. 호스트 인터페이스(524)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 통신 방법들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
호스트 인터페이스(524)는 호스트 장치로부터 수신되는 제2 커맨드(CMD2) 및 제2 어드레스(ADDR2)를 버스(521)를 통해 프로세서(522)로 전달할 수 있다. 호스트 인터페이스(524)는 호스트 장치로부터 수신되는 제2 데이터(DATA2)를 버스(521)를 통해 RAM (523)으로 전달할 수 있다. 호스트 인터페이스(524)는 RAM (523)으로부터 버스(521)를 통해 전달되는 제2 데이터(DATA2)를 호스트 장치로 출력할 수 있다.
메모리 인터페이스(525)는 프로세서(522)의 제어에 따라, 불휘발성 메모리(510)와 통신하도록 구성된다. 메모리 인터페이스(525)는 프로세서(522)로부터 버스(521)를 통해 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 수신할 수 있다. 메모리 인터페이스(525)는 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)를 불휘발성 메모리(510)로 출력할 수 있다. 또한, 메모리 인터페이스(525)는 제1 커맨드(CMD1) 및 제1 어드레스(ADDR1)에 기반하여 제어 신호(CTRL)를 생성하고, 생성된 제어 신호(CTRL)를 불휘발성 메모리(510)로 출력할 수 있다.
메모리 인터페이스(525)는 RAM (523)으로부터 버스(521)를 통해 전달되는 제1 데이터(DATA1)를 불휘발성 메모리(510)로 출력할 수 있다. 메모리 인터페이스(525)는 불휘발성 메모리(510)로부터 제어 신호(CTRL) 및 제1 데이터(DATA1)를 수신할 수 있다. 메모리 인터페이스(521)는 불휘발성 메모리(510)로부터 수신되는 제1 데이터(DATA1)를 버스(521)를 통해 RAM (523)으로 전달할 수 있다.
메모리 인터페이스(525)는 에러 정정 블록(526)을 포함한다. 에러 정정 블록(526)은 에러 정정을 수행할 수 있다. 에러 정정 블록(526)은 메모리 인터페이스(525)를 통해 불휘발성 메모리(510)로 출력되는 제1 데이터(DATA1)에 기반하여, 에러 정정을 수행하기 위한 패리티를 생성할 수 있다. 생성된 패리티는 제1 데이터(DATA1)와 함께 불휘발성 메모리(510)에 기입될 수 있다. 불휘발성 메모리(510)로부터 제1 데이터(DATA1)가 수신될 때, 제1 데이터(DATA1)와 연관된 패리티가 함께 수신될 수 있다. 에러 정정 블록(526)은 메모리 인터페이스(525)를 통해 수신되는 제1 데이터(DATA1) 및 제1 데이터(DATA1)와 패리티를 이용하여, 제1 데이터(DATA1)의 에러 정정을 수행할 수 있다.
예시적으로, 프로세서(522)는 코드들을 이용하여 메모리 컨트롤러(520)를 제어할 수 있다. 프로세서(522)는 메모리 컨트롤러(520)의 내부에 제공되는 불휘발성 메모리(예를 들어, Read Only Memory)로부터 코드들을 읽고, 읽어진 코드들을 RAM (523)에 저장하여 실행할 수 있다. 다른 예로서, 프로세서(522)는 메모리 인터페이스(525)를 통해 수신되는 코드들을 RAM (523)에 저장하여 실행할 수 있다.
예시적으로, 메모리 인터페이스(525) 또는 프로세서(522)는 불휘발성 메모리(510)에 기입되는 제1 데이터(DATA1)에 대해 임의화(randomization)를 더 수행할 수 있다. 임의화는 제1 데이터(DATA1)에서 특정한 패턴이 발생하는 것이 방지되도록, 제1 데이터(DATA1)를 임의적으로 또는 미리 정해진 규칙에 따라 코딩하는 동작일 수 있다. 메모리 인터페이스(525) 또는 프로세서(522)는 불휘발성 메모리(50)로부터 읽히는 제1 데이터(DATA1)에 대해 역임의화(derandomization)를 더 수행할 수 있다.
예시적으로, 메모리 인터페이스(525) 또는 프로세서(522)는 불휘발성 메모리(510)에 기입되는 제1 데이터(DATA1)의 보안성을 향상시키는 암호화(Encryption)를 더 수행할 수 있다. 메모리 인터페이스(525) 또는 프로세서(522)는 불휘발성 메모리(510)로부터 읽히는 제1 데이터(DATA1)에 대해 복호화(decryption)를 더 수행할 수 있다. 암호화 및 복호화는 DES (Data Encryption Standard), AES (Advanced Encryption Standard) 등과 같은 표준 규약에 따라 수행될 수 있다.
예시적으로, 메모리 컨트롤러(520)는 보조 전원을 제공하도록 구성될 수 있다. 예를 들어, 메모리 컨트롤러(520)는 호스트 장치로부터 공급되는 전원을 슈퍼캡(super cap)과 같은 충전소에 저장할 수 있다. 호스트 장치로부터 공급되는 전원이 갑자기 차단될 때에, 메모리 컨트롤러(520)는 충전소에 저장된 전원을 보조 전원으로 사용할 수 있다. 메모리 컨트롤러(520)는 보조 전원을 이용하여, 메모리 컨트롤러(520)의 동작 상태에 대한 백업을 수행하거나, 불휘발성 메모리(510)에 아직 기입되지 않은 데이터를 기입할 수 있다. 메모리 컨트롤러(520)는 보조 전원을 이용하여, 정상적인 파워 오프 시퀀스를 수행할 수 있다.
도 21은 본 발명의 실시 예에 따른 불휘발성 메모리(110)를 보여주는 블록도이다. 도 1 및 도 21을 참조하면, 불휘발성 메모리(110)는 메모리 셀 어레이(111), 어드레스 디코더 회로(113), 페이지 버퍼 회로(115), 데이터 입출력 회로(117), 그리고 제어 로직 회로(119)를 포함한다.
메모리 셀 어레이(111)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각 메모리 블록은 복수의 메모리 셀들을 포함한다. 각 메모리 블록은 적어도 하나의 접지 선택 라인(GSL), 복수의 워드 라인들(WL), 그리고 적어도 하나의 스트링 선택 라인(SSL)을 통해 어드레스 디코더 회로(113)에 연결될 수 있다. 각 메모리 블록은 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(115)에 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)은 복수의 비트 라인들(BL)에 공통으로 연결될 수 있다. 복수의 메모리 블록들(BLK1~BLKz)의 메모리 셀들은 동일한 구조들을 가질 수 있다. 예시적으로, 복수의 메모리 블록들(BLK1~BLKz) 각각은 소거 동작의 단위일 수 있다. 메모리 셀 어레이(111)의 메모리 셀들은 하나의 메모리 블록의 단위로 소거될 수 있다. 하나의 메모리 블록에 속한 메모리 셀들은 동시에 소거될 수 있다.
어드레스 디코더 회로(113)는 복수의 접지 선택 라인들(GSL), 복수의 워드 라인들(WL), 그리고 복수의 스트링 선택 라인들(SSL)을 통해 메모리 셀 어레이(111)에 연결된다. 어드레스 디코더 회로(113)는 제어 로직 회로(119)의 제어에 따라 동작한다. 어드레스 디코더 회로(113)는 메모리 컨트롤러(120)로부터 제1 어드레스(ADDR1)를 수신할 수 있다. 어드레스 디코더 회로(113)는 수신된 제1 어드레스(ADDR1)를 디코딩하고, 디코딩된 어드레스에 따라 워드 라인들(WL)에 인가되는 전압들을 제어할 수 있다.
예를 들어, 프로그램 시에, 어드레스 디코더 회로(113)는, 제1 어드레스(ADDR1)가 가리키는 선택된 메모리 블록의 선택된 워드 라인에 프로그램 전압(VGPM)을 인가하고, 선택된 메모리 블록의 비선택된 워드 라인들에 패스 전압(VPASS)을 인가할 수 있다. 읽기 시에, 어드레스 디코더 회로(131)는 제1 어드레스(ADDR1)가 가리키는 선택된 메모리 블록의 선택된 워드 라인에 선택 읽기 전압(VRD)을 인가하고, 선택된 메모리 블록의 비선택된 워드 라인들에 비선택 읽기 전압(VREAD)을 인가할 수 있다. 소거 시에, 어드레스 디코더 회로(113)는 제1 어드레스(ADDR1)가 가리키는 선택된 메모리 블록의 워드 라인들에 소거 전압(예를 들어, 접지 전압)을 인가할 수 있다.
페이지 버퍼 회로(115)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(111)에 연결된다. 페이지 버퍼 회로(115)는 복수의 데이터 라인들(DL)을 통해 데이터 입출력 회로(117)와 연결된다. 페이지 버퍼 회로(115)는 제어 로직 회로(119)의 제어에 따라 동작한다.
페이지 버퍼 회로(115)는 메모리 셀 어레이(111)의 메모리 셀들에 프로그램될 데이터 또는 메모리 셀들로부터 읽히는 데이터를 저장할 수 있다. 프로그램 시에, 페이지 버퍼 회로(115)는 메모리 셀들에 프로그램될 데이터를 저장할 수 있다. 저장된 데이터에 기반하여, 페이지 버퍼 회로(115)는 복수의 비트 라인들(BL)을 바이어스할 수 있다. 프로그램 시에, 페이지 버퍼 회로(115)는 쓰기 드라이버로 기능할 수 있다. 읽기 시에, 페이지 버퍼 회로(115)는 비트 라인들(BL)의 전압들을 센싱하고, 센싱 결과를 저장할 수 있다. 읽기 시에, 페이지 버퍼 회로(115)는 감지 증폭기로 기능할 수 있다.
데이터 입출력 회로(117)는 복수의 데이터 라인들(DL)을 통해 페이지 버퍼 회로(115)와 연결된다. 데이터 입출력 회로(117)는 메모리 컨트롤러(120)와 제1 데이터(DATA1)를 교환할 수 있다.
데이터 입출력 회로(117)는 메모리 컨트롤러(220)로부터 수신되는 제1 데이터(DATA1)를 임시로 저장할 수 있다. 데이터 입출력 회로(117)는 저장된 데이터를 페이지 버퍼 회로(115)로 전달할 수 있다. 데이터 입출력 회로(117)는 페이지 버퍼 회로(115)로부터 전달되는 데이터(DATA)를 임시로 저장할 수 있다. 데이터 입출력 회로(117)는 저장된 데이터(DATA)를 메모리 컨트롤러(220)로 전송할 수 있다. 데이터 입출력 회로(117)는 버퍼 메모리로 기능할 수 있다.
제어 로직 회로(119)는 메모리 컨트롤러(220)로부터 제1 커맨드(CMD1) 및 제어 신호(CTRL)를 수신한다. 제어 로직 회로(119)는 수신된 제1 커맨드(CMD1)를 디코딩하고, 디코딩된 커맨드에 따라 불휘발성 메모리(110)의 제반 동작을 제어할 수 있다.
예시적으로, 제어 로직 회로(119)는 본 발명의 실시 예에 따른 위상 고정 루프(DLL)를 포함할 수 있다. 읽기 시에, 제어 로직 회로(119)는 제어 신호(CTRL) 중 읽기 인에이블 신호(/RE)로부터 고정 위상을 검출하고, 검출된 고정 위상 및 읽기 인에이블 신호(/RE)를 이용하여 데이터 스트로브 신호(DQS)를 출력할 수 있다. 쓰기 시에, 제어 로직 회로(119)는 제어 신호(CTRL) 중 데이터 스트로브 신호(DQS)로부터 고정 위상을 검출하고, 검출된 고정 위상 및 데이터 스트로브 신호(DQS)를 이용하여 데이터 스트로브 신호(DQS)를 출력할 수 있다.
도 22는 본 발명의 실시 예에 따른 메모리 블록(BLKa)을 보여주는 회로도이다. 도 22를 참조하면, 메모리 블록(BLKa)은 복수의 셀 스트링들(CS11~CS21, CS12~CS22)을 포함한다. 복수의 셀 스트링들(CS11~CS21, CS12~CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배열되어, 행들 및 열들을 형성할 수 있다.
예를 들어, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS11, CS12)은 제1 행을 형성하고, 행 방향(row direction)을 따라 배열된 셀 스트링들(CS21, CS22)은 제2 행을 형성할 수 있다. 열 방향(column direction)을 따라 배열된 셀 스트링들(CS11, CS21)은 제1 열을 형성하고, 열 방향(column direction)을 따라 배열된 셀 스트링들(CS12, CS22)은 제2 열을 형성할 수 있다.
각 셀 스트링은 복수의 셀 트랜지스터들을 포함할 수 있다. 복수의 셀 트랜지스터들은 접지 선택 트랜지스터들(GSTa, GSTb), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, SSTb)을 포함한다. 각 셀 스트링의 접지 선택 트랜지스터들(GSTa, GSTb), 메모리 셀들(MC1~MC6), 그리고 스트링 선택 트랜지스터들(SSTa, GSTb)은 셀 스트링들(CS11~CS21, CS12~CS22)이 행들 및 열들을 따라 배열되는 평면(예를 들어, 메모리 블록(BLKa)의 기판 상의 평면)과 수직한 높이 방향으로 적층될 수 있다.
복수의 셀 트랜지스터들은 절연막에 포획된 전하량에 따라 가변하는 문턱 전압들을 갖는 전하 포획형(charge trap type) 트랜지스터들일 수 있다.
최하단의 접지 선택 트랜지스터들(GSTa)은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다.
예시적으로, 동일한 높이(또는 순서)의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 높이(또는 순서)를 갖는 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. 예를 들어, 제1 높이의 접지 선택 트랜지스터들(GSTa)은 제1 접지 선택 라인에 공통으로 연결되고, 제2 높이의 접지 선택 트랜지스터들(GSTb)은 제2 접지 선택 라인에 공통으로 연결될 수 있다.
예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결되고, 서로 다른 행의 접지 선택 트랜지스터들은 서로 다른 접지 선택 라인들에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 접지 선택 트랜지스터들(GSTa, GSTb)은 제1 접지 선택 라인에 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 제2 접지 선택 라인에 연결될 수 있다.
기판(또는 접지 선택 트랜지스터들(GST))으로부터 동일한 높이(또는 순서)에 위치한 메모리 셀들은 하나의 워드 라인에 공통으로 연결되고, 서로 다른 높이(또는 순서)에 위치한 메모리 셀들은 서로 다른 워드 라인들(WL1~WL6)에 각각 연결될 수 있다. 예를 들어, 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결된다. 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결된다. 메모리 셀들(MC3)은 워드 라인(WL3)에 공통으로 연결된다. 메모리 셀들(MC4)은 워드 라인(WL4)에 공통으로 연결된다. 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결된다. 메모리 셀들(MC6)은 워드 라인(WL6)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제1 스트링 선택 트랜지스터들(SSTa)에서, 서로 다른 행의 제1 스트링 선택 트랜지스터들(SSTa)은 서로 다른 스트링 선택 라인들(SSL1a~SSL2a)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL2a)에 공통으로 연결된다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 동일한 높이(또는 순서)의 제2 스트링 선택 트랜지스터들(SSTb)에서, 서로 다른 행의 제2 스트링 선택 트랜지스터들(SSTb)은 서로 다른 스트링 선택 라인들(SSL1b~SSL2b)에 각각 연결된다. 예를 들어, 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)에 공통으로 연결된다. 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)에 공통으로 연결된다.
즉, 서로 다른 행의 셀 스트링들은 서로 다른 스트링 선택 라인들에 연결된다. 동일한 행의 셀 스트링들의 동일한 높이(또는 순서)의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인에 연결된다. 동일한 행의 셀 스트링들의 서로 다른 높이(또는 순서)의 스트링 선택 트랜지스터들은 서로 다른 스트링 선택 라인들에 연결된다.
예시적으로, 동일한 행의 셀 스트링들의 스트링 선택 트랜지스터들은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다. 제2 행의 샐 스트링들(CS21, CS22)의 스트링 선택 트랜지스터들(SSTa, SSTb)은 하나의 스트링 선택 라인에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11~CS21, CS12~CS22)의 열들은 서로 다른 비트 라인들(BL1, BL2)에 각각 연결된다. 예를 들어, 제1 열의 셀 스트링들(CS11~CS21)의 스트링 선택 트랜지스터들(SSTb)은 비트 라인(BL1)에 공통으로 연결된다. 제2 열의 셀 스트링들(CS12~CS22)의 스트링 선택 트랜지스터들(SST)은 비트 라인(BL2)에 공통으로 연결된다.
셀 스트링들(CS11, CS12)은 제1 플레인을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 제2 플레인을 형성할 수 있다.
메모리 블록(BLKa)에서, 쓰기 및 읽기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BKLa)의 하나의 플레인이 선택될 수 있다. 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제1 플레인의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 즉, 제1 플레인이 선택된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제2 플레인의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, Bl2)에 연결된다. 즉, 제2 플레인이 선택된다. 선택된 플레인에서, 워드 라인들(WL1~WL6)에 의해 메모리 셀들(MC)의 하나의 행이 선택될 수 있다. 선택된 행에서, 쓰기 또는 읽기가 수행될 수 있다.
메모리 블록(BLKa)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLKa)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 메모리 블록(BLKa)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅될 수 있다.
도 22에 도시된 메모리 블록(BLKa)은 예시적인 것이다. 본 발명의 기술적 사상은 도 22에 도시된 메모리 블록(BLKa)에 한정되지 않는다. 예를 들어, 셀 스트링들의 행들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 행들의 수가 변경됨에 따라, 셀 스트링들의 행들에 연결되는 스트링 선택 라인들 또는 접지 선택 라인의 수, 그리고 하나의 비트 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 열들의 수는 증가 또는 감소될 수 있다. 셀 스트링들의 열들의 수가 변경됨에 따라, 셀 스트링들의 열들에 연결되는 비트 라인들의 수, 그리고 하나의 스트링 선택 라인에 연결되는 셀 스트링들의 수 또한 변경될 수 있다.
셀 스트링들의 높이는 증가 또는 감소될 수 있다. 예를 들어, 셀 스트링들 각각에 적층되는 접지 선택 트랜지스터들, 메모리 셀들 또는 스트링 선택 트랜지스터들의 수는 증가 또는 감소될 수 있다.
도 23은 본 발명의 다른 실시 예에 따른 메모리 블록(BLKb)을 보여주는 회로도이다. 도 23을 참조하면, 메모리 블록(BKLb)은 복수의 스트링들(SR)을 포함한다. 복수의 스트링들(SR)은 복수의 비트 라인들(BL1~BLn)에 각각 연결될 수 있다. 각 스트링(SR)은 접지 선택 트랜지스터(GST), 메모리 셀들(MC), 그리고 스트링 선택 트랜지스터(SST)를 포함한다.
각 스트링(SR)의 접지 선택 트랜지스터(GST)는 메모리 셀들(MC) 및 공통 소스 라인(CSL)의 사이에 연결된다. 복수의 스트링들(SR)의 접지 선택 트랜지스터들(GST)은 공통 소스 라인(CSL)에 공통으로 연결된다.
각 스트링(SR)의 스트링 선택 트랜지스터(SST)는 메모리 셀들(MC) 및 비트 라인(BL)의 사이에 연결된다. 복수의 스트링들(SR)의 스트링 선택 트랜지스터들(SST)은 복수의 비트 라인들(BL1~BLn)에 각각 연결된다.
각 스트링(SR)에서, 접지 선택 트랜지스터(GST) 및 스트링 선택 트랜지스터(SST) 사이에 복수의 메모리 셀들(MC)이 제공된다. 각 스트링(SR)에서, 복수의 메모리 셀들(MC)은 직렬 연결될 수 있다.
복수의 스트링들(SR)에서, 공통 소스 라인(CSL)으로부터 동일한 순서에 위치한 메모리 셀들(MC)은 하나의 워드 라인에 공통으로 연결될 수 있다. 복수의 스트링들(SR)의 메모리 셀들(MC)은 복수의 워드 라인들(WL1~WLm)에 연결될 수 있다.
메모리 블록(BLKb)에서, 소거는 메모리 블록 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 메모리 블록(BLKb)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다.
도 24는 본 발명의 실시 예에 따른 컴퓨팅 장치(1000)를 보여주는 블록도이다. 도 24를 참조하면, 컴퓨팅 장치(1000)는 프로세서(1100), 메모리(1200), 스토리지 장치(1300), 모뎀(1400), 그리고 사용자 인터페이스(1500)를 포함한다.
프로세서(1100)는 컴퓨팅 장치(1000)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 예를 들어, 프로세서(1100)는 시스템-온-칩(SoC, System-on-Chip)으로 구성될 수 있다. 프로세서(1100)는 범용 프로세서, 특수 목적 프로세서 또는 어플리케이션 프로세서일 수 있다.
RAM (1200)은 프로세서(1100)와 통신할 수 있다. RAM (1200)은 프로세서(1100) 또는 컴퓨팅 장치(1000)의 메인 메모리일 수 있다. 프로세서(1100)는 RAM (1200)에 코드 또는 데이터를 임시로 저장할 수 있다. 프로세서(1100)는 RAM (1200)을 이용하여 코드를 실행하고, 데이터를 처리할 수 있다. 프로세서(1100)는 RAM (1200)을 이용하여 운영체제, 어플리케이션과 같은 다양한 소프트웨어들을 실행할 수 있다. 프로세서(1100)는 RAM (1200)을 이용하여 컴퓨팅 장치(1000)의 제반 동작을 제어할 수 있다. RAM (1200)은 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
스토리지 장치(1300)는 프로세서(1100)와 통신할 수 있다. 스토리지 장치(1300)는 장기적으로 보존되어야 하는 데이터를 저장할 수 있다. 즉, 프로세서(1100)는 장기적으로 보존되어야 하는 데이터를 스토리지 장치(1300)에 저장할 수 있다. 스토리지 장치(1300)는 컴퓨팅 장치(1000)를 구동하기 위한 부트 이미지를 저장할 수 있다. 스토리지 장치(1300)는 운영체제, 어플리케이션과 같은 다양한 소프트웨어들의 소스 코드들을 저장할 수 있다. 스토리지 장치(1300)는 운영체제, 어플리케이션과 같은 다양한 소프트웨어들에 의해 처리된 데이터를 저장할 수 있다.
예시적으로, 프로세서(1100)는 스토리지 장치(1300)에 저장된 소스 코드들을 RAM (1200)에 로드하고, RAM (1200)에 로드된 코드들을 실행함으로써, 운영체제, 어플리케이션과 같은 다양한 소프트웨어들을 구동할 수 있다. 프로세서(1100)는 스토리지 장치(1300)에 저장된 데이터를 RAM (1200)에 로드하고, RAM (1200)에 로드된 데이터를 처리할 수 있다. 프로세서(1100)는 RAM (1200)에 저장된 데이터 중 장기적으로 보존하고자 하는 데이터를 스토리지 장치(1300)에 저장할 수 있다.
스토리지 장치(1300)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
모뎀(1400)은 프로세서(1100)의 제어에 따라 외부 장치와 통신을 수행할 수 있다. 예를 들어, 모뎀(1400)은 외부 장치와 유선 또는 무선 통신을 수행할 수 있다. 모뎀(140)은 LTE (Long Term Evolution), 와이맥스(WiMax), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), 블루투스(Bluetooth), NFC (Near Field Communication), 와이파이(WiFi), RFID (Radio Frequency IDentification) 등과 같은 다양한 무선 통신 방식들, 또는 USB (Universal Serial Bus), SATA (Serial AT Attachment), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), 파이어와이어(Firewire), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), SDIO, UART (Universal Asynchronous Receiver Transmitter), SPI (Serial Peripheral Interface), HS-SPI (High Speed SPI), RS232, I2C (Inter-integrated Circuit), HS-I2C, I2S, (Integrated-interchip Sound), S/PDIF (Sony/Philips Digital Interface), MMC (MultiMedia Card), eMMC (embedded MMC) 등과 같은 다양한 유선 통신 방식들 중 적어도 하나에 기반하여 통신을 수행할 수 있다.
사용자 인터페이스(1500)는 프로세서(1100)의 제어에 따라 사용자와 통신할 수 있다. 예를 들어, 사용자 인터페이스(1500)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 등과 같은 사용자 입력 인터페이스들을 포함할 수 있다. 사용자 인터페이스(150)는 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 인터페이스들을 포함할 수 있다.
스토리지 장치(1300)는 본 발명의 실시 예에 따른 스토리지 장치들(100, 200, 300, 400, 500) 중 적어도 하나를 포함할 수 있다. 프로세서(1100), RAM (1200), 모뎀(1400), 그리고 사용자 인터페이스(1500)는 스토리지 장치(1300)와 통신하는 호스트 장치를 형성할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100; 스토리지 장치
110; 불휘발성 메모리
120; 메모리 컨트롤러
130; 랜덤 액세스 메모리
111; 불휘발성 메모리 장치
113, 113a, 113b, 113c, 113d, 113e; 리타이밍 회로
115a, 115b, 115c,115d, 115e; 타이밍 신호 처리부
117a, 117b, 117c,117d, 117e; 데이터 리타이밍부
119c, 119d, 119e; 커맨드 식별부
200; 스토리지 장치
210; 복수의 불휘발성 메모리들
220; 메모리 컨트롤러
230; 랜덤 액세스 메모리
211; 불휘발성 메모리 장치
213; 리타이밍 회로
300; 스토리지 장치;
310; 복수의 불휘발성 메모리들
320; 메모리 컨트롤러
330; 랜덤 액세스 메모리
311; 불휘발성 메모리 장치
313; 리타이밍 회로
121; 버스
122; 프로세서
123; 랜덤 액세스 메모리
124; 호스트 인터페이스
125; 메모리 인터페이스
126; 에러 정정 블록
127; 버퍼 제어 회로
400; 스토리지 장치
410; 불휘발성 메모리
420; 메모리 컨트롤러
430; 랜덤 액세스 메모리
440; 리타이밍 회로
411; 불휘발성 메모리 장치
500; 스토리지 장치
510; 불휘발성 메모리
520; 메모리 컨트롤러
511; 불휘발성 메모리 장치
513; 리타이밍 회로
521; 버스
522; 프로세서
523; 랜덤 액세스 메모리
524; 호스트 인터페이스
525; 메모리 인터페이스
526; 에러 정정 블록
111; 메모리 셀 어레이
113; 어드레스 디코더 회로
115; 페이지 버퍼 회로
117; 데이터 입출력 회로
119; 제어 로직 회로
1000; 컴퓨팅 장치
1100; 프로세서
1200; 랜덤 액세스 메모리
1300; 스토리지 장치
1400; 모뎀
1500; 사용자 인터페이스

Claims (10)

  1. 불휘발성 메모리; 그리고
    상기 불휘발성 메모리를 제어하고, 읽기 시에 상기 불휘발성 메모리로 제1 타이밍 신호를 전송하도록 구성되는 메모리 컨트롤러를 포함하고,
    상기 불휘발성 메모리는,
    상기 제1 타이밍 신호에 응답하여 읽기 데이터 및 제2 타이밍 신호를 출력하도록 구성되는 불휘발성 메모리 장치; 그리고
    상기 제1 타이밍 신호에 따라 고정 지연(locking delay)을 검출하고, 상기 검출된 고정 지연을 이용하여 상기 제2 타이밍 신호로부터 제3 타이밍 신호를 생성하고, 상기 제3 타이밍 신호에 동기되어 상기 읽기 데이터를 래치함으로써 상기 읽기 데이터를 리타이밍(retiming)하고, 그리고 상기 제3 타이밍 신호 및 상기 리타이밍된 읽기 데이터를 상기 메모리 컨트롤러로 출력하도록 구성되는 리타이밍 회로를 포함하는 스토리지 장치.
  2. 제1 항에 있어서,
    상기 리타이밍 회로는,
    상기 메모리 컨트롤러로부터 상기 제1 타이밍 신호를 수신하는 제1 타이밍 수신 노드;
    상기 제1 타이밍 수신 노드를 통해 수신되는 상기 제1 타이밍 신호를 상기 불휘발성 메모리로 전달하는 제1 타이밍 송신 노드;
    상기 불휘발성 메모리로부터 상기 제2 타이밍 신호를 수신하는 제2 타이밍 수신 노드;
    상기 제1 타이밍 수신 노드를 통해 수신되는 상기 제1 타이밍 신호로부터 상기 고정 지연(locking delay)을 검출하고, 상기 제2 타이밍 수신 노드를 통해 수신되는 상기 제2 타이밍 신호로부터 상기 검출된 고정 지연을 이용하여 상기 제3 타이밍 신호를 생성하는 지연 고정 루프; 그리고
    상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호를 상기 메모리 컨트롤러로 출력하는 제2 타이밍 송신 노드를 포함하는 스토리지 장치.
  3. 제2 항에 있어서,
    상기 리타이밍 회로는,
    상기 불휘발성 메모리로부터 출력되는 상기 읽기 데이터를 수신하는 데이터 수신 노드;
    상기 지연 고정 루프로부터 출력되는 상기 제3 타이밍 신호에 동기되어, 상기 데이터 수신 노드를 통해 수신되는 상기 읽기 데이터를 수신 및 출력하는 플립플롭; 그리고
    상기 플립플롭의 출력을 상기 리타이밍된 데이터로서 상기 메모리 컨트롤러로 출력하는 데이터 송신 노드를 더 포함하는 스토리지 장치.
  4. 제1 항에 있어서,
    상기 메모리 컨트롤러는 쓰기 시에 상기 불휘발성 메모리로 쓰기 데이터 및 제4 타이밍 신호를 전송하도록 구성되고,
    상기 리타이밍 회로는 상기 제4 타이밍 신호로부터 제2 고정 지연(locking delay)을 검출하고, 상기 검출된 고정 지연을 이용하여 상기 제4 타이밍 신호로부터 제5 타이밍 신호를 생성하도록 구성되는 스토리지 장치.
  5. 제4 항에 있어서,
    상기 리타이밍 회로는 상기 제5 타이밍 신호에 동기되어 상기 쓰기 데이터를 래치함으로써 상기 쓰기 데이터를 리타이밍(retiming)하고, 그리고 상기 제5 타이밍 신호 및 상기 리타이밍된 쓰기 데이터를 상기 불휘발성 메모리로 출력하도록 구성되는 스토리지 장치.
  6. 제5 항에 있어서,
    상기 리타이밍 회로는,
    상기 메모리 컨트롤러로부터 상기 제4 타이밍 신호를 수신하는 타이밍 수신 노드;
    상기 타이밍 수신 노드를 통해 수신되는 상기 제4 타이밍 신호로부터 상기 제2 고정 지연을 검출하고, 상기 검출된 제2 고정 지연을 이용하여 상기 제4 타이밍 신호로부터 상기 제5 타이밍 신호를 생성하는 지연 고정 루프; 그리고
    상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호를 상기 불휘발성 메모리로 전송하는 타이밍 송신 노드를 포함하는 스토리지 장치.
  7. 제6 항에 있어서,
    상기 리타이밍 회로는,
    상기 메모리 컨트롤러로부터 상기 쓰기 데이터를 수신하는 데이터 수신 노드;
    상기 지연 고정 루프로부터 출력되는 상기 제5 타이밍 신호에 동기되어 상기 쓰기 데이터를 수신 및 출력하는 플립플롭; 그리고
    상기 플립플롭의 출력을 상기 리타이밍된 쓰기 데이터로서 상기 불휘발성 메모리로 전송하는 데이터 송신 노드를 더 포함하는 스토리지 장치.
  8. 제5 항에 있어서,
    상기 제5 타이밍 신호는 상기 제4 타이밍 신호보다 1/4 주기만큼 지연된 신호이고,
    상기 리타이밍된 쓰기 데이터는 상기 쓰기 데이터보다 상기 제4 타이밍 신호의 1/4 주기만큼 지연되고,
    상기 제5 타이밍 신호는, 상기 불휘발성 메모리의 쓰기 시에 상기 메모리 컨트롤러에 의해 토글되는 데이터 스트로브(Data Strobe, DQS) 신호인 스토리지 장치.
  9. 제1 항에 있어서,
    상기 제1 타이밍 신호는 상기 불휘발성 메모리의 읽기 시에 상기 메모리 컨트롤러에 의해 토글되는 읽기 인에이블 신호(Read Enable, RE)이고,
    상기 제2 타이밍 신호는 읽기 시에 상기 불휘발성 메모리가 상기 읽기 인에이블 신호에 기반하여 생성하는 데이터 스트로브(Data Strobe, DQS) 신호이고,
    상기 제3 타이밍 신호는 상기 제2 타이밍 신호보다 1/4 주기만큼 지연된 신호이고,
    상기 리타이밍된 읽기 데이터는 상기 읽기 데이터보다 상기 제3 타이밍 신호의 1/4 주기만큼 지연되는 스토리지 장치.
  10. 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법에 있어서:
    상기 메모리 컨트롤러로부터 제1 타이밍 신호를 수신하는 단계;
    상기 제1 타이밍 신호로부터 고정 지연(locking delay)을 검출하는 단계;
    상기 불휘발성 메모리로부터 데이터 및 제2 타이밍 신호를 수신하는 단계;
    상기 검출된 고정 지연 및 상기 제2 타이밍 신호를 이용하여 제3 타이밍 신호를 생성하는 단계; 그리고
    상기 제3 타이밍 신호를 이용하여 상기 데이터를 래치함으로써 상기 데이터를 리타이밍하는 단계를 포함하는 동작 방법.
KR1020140072170A 2014-06-13 2014-06-13 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법 KR102248279B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140072170A KR102248279B1 (ko) 2014-06-13 2014-06-13 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법
US14/665,148 US9601171B2 (en) 2014-06-13 2015-03-23 Storage device including nonvolatile memory and memory controller and operating method of retiming circuit interfacing communication between nonvolatile memory and memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140072170A KR102248279B1 (ko) 2014-06-13 2014-06-13 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법

Publications (2)

Publication Number Publication Date
KR20150143943A KR20150143943A (ko) 2015-12-24
KR102248279B1 true KR102248279B1 (ko) 2021-05-07

Family

ID=54836684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140072170A KR102248279B1 (ko) 2014-06-13 2014-06-13 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법

Country Status (2)

Country Link
US (1) US9601171B2 (ko)
KR (1) KR102248279B1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102226370B1 (ko) 2015-01-13 2021-03-15 삼성전자주식회사 집적 회로 및 집적 회로를 포함하는 스토리지 장치
KR102336455B1 (ko) 2015-01-22 2021-12-08 삼성전자주식회사 집적 회로 및 집적 회로를 포함하는 스토리지 장치
JP6432699B2 (ja) * 2016-01-25 2018-12-05 アイシン・エィ・ダブリュ株式会社 メモリコントローラ
KR102573131B1 (ko) 2016-07-04 2023-09-01 에스케이하이닉스 주식회사 고속 데이터 전송을 위한 메모리 장치
JP2018032141A (ja) * 2016-08-23 2018-03-01 東芝メモリ株式会社 半導体装置
KR20180092476A (ko) 2017-02-09 2018-08-20 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20180093648A (ko) * 2017-02-14 2018-08-22 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10090067B1 (en) * 2017-05-30 2018-10-02 Seagate Technology Llc Data storage device with rewritable in-place memory
US10923166B2 (en) 2018-02-27 2021-02-16 SK Hynix Inc. Semiconductor devices performing a write leveling training operation and semiconductor systems including the semiconductor devices
US11232820B2 (en) * 2018-02-27 2022-01-25 SK Hynix Inc. Semiconductor devices performing a write leveling training operation and semiconductor systems including the semiconductor devices
KR102519572B1 (ko) 2018-05-11 2023-04-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102182718B1 (ko) * 2018-05-24 2020-11-25 에센코어 리미티드 메모리 장치, 메모리 장치의 제어 방법 및 메모리 장치를 제어하는 방법
KR20200126666A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11404097B2 (en) 2018-12-11 2022-08-02 SK Hynix Inc. Memory system and operating method of the memory system
US11139010B2 (en) 2018-12-11 2021-10-05 SK Hynix Inc. Memory system and operating method of the memory system
KR20200137548A (ko) 2019-05-30 2020-12-09 에스케이하이닉스 주식회사 메모리 장치 및 이의 테스트 동작 방법
KR20200126678A (ko) 2019-04-30 2020-11-09 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200124045A (ko) 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11315614B2 (en) * 2019-10-07 2022-04-26 Samsung Electronics Co., Ltd. Memory device including interface circuit and method of operating the same
KR20210041357A (ko) * 2019-10-07 2021-04-15 삼성전자주식회사 인터페이스 회로를 포함하는 메모리 장치 및 이의 동작 방법

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100603687B1 (ko) * 1997-10-10 2006-07-20 람버스 인코포레이티드 최소의 대기시간으로 페일-세이프 재동기화를 위한 방법및 장치
US6788593B2 (en) 2001-02-28 2004-09-07 Rambus, Inc. Asynchronous, high-bandwidth memory component using calibrated timing elements
US6901013B2 (en) 2001-06-05 2005-05-31 Micron Technology, Inc. Controller for delay locked loop circuits
US7259606B2 (en) * 2004-01-27 2007-08-21 Nvidia Corporation Data sampling clock edge placement training for high speed GPU-memory interface
US7109767B1 (en) 2004-07-12 2006-09-19 Sun Microsystems, Inc. Generating different delay ratios for a strobe delay
US7171321B2 (en) 2004-08-20 2007-01-30 Rambus Inc. Individual data line strobe-offset control in memory systems
US7543172B2 (en) 2004-12-21 2009-06-02 Rambus Inc. Strobe masking in a signaling system having multiple clock domains
US7380084B2 (en) * 2005-09-30 2008-05-27 Intel Corporation Dynamic detection of block boundaries on memory reads
US8121237B2 (en) 2006-03-16 2012-02-21 Rambus Inc. Signaling system with adaptive timing calibration
US20070288716A1 (en) * 2006-06-09 2007-12-13 Infineon Technologies Ag Memory system with a retiming circuit and a method of exchanging data and timing signals between a memory controller and a memory device
US7685454B2 (en) 2006-07-12 2010-03-23 Agere Systems Inc. Signal buffering and retiming circuit for multiple memories
JP4759717B2 (ja) 2008-02-18 2011-08-31 スパンション エルエルシー 同期型不揮発性メモリおよびメモリシステム
US7869287B2 (en) * 2008-03-31 2011-01-11 Advanced Micro Devices, Inc. Circuit for locking a delay locked loop (DLL) and method therefor
US8754631B2 (en) * 2008-05-09 2014-06-17 Advantest Corporation Test apparatus for digital modulated signal
WO2010080174A1 (en) * 2009-01-12 2010-07-15 Rambus Inc. Mesochronous signaling system with core-clock synchronization
US8355478B1 (en) * 2009-05-29 2013-01-15 Honeywell International Inc. Circuit for aligning clock to parallel data
JP4998519B2 (ja) 2009-05-29 2012-08-15 富士通株式会社 非同期インタフェース回路及び非同期データ転送方法
KR101589542B1 (ko) * 2009-11-30 2016-01-29 에스케이하이닉스 주식회사 라이트드라이빙 장치
KR101043722B1 (ko) 2010-02-04 2011-06-27 주식회사 하이닉스반도체 레이턴시 제어회로 및 이를 포함하는 반도체 메모리장치
JP5379744B2 (ja) * 2010-05-20 2013-12-25 株式会社アドバンテスト データラッチ回路およびそれを用いた試験装置
US9088276B2 (en) * 2011-05-31 2015-07-21 Ati Technologies Ulc Pre-emphasis control circuit for adjusting the magnitude of a signal over a period according to a fraction of a bit-time
JP2013030245A (ja) 2011-07-28 2013-02-07 Elpida Memory Inc 情報処理システム
US8850258B2 (en) * 2012-06-20 2014-09-30 Intel Corporation Calibration for source-synchronous high frequency bus synchronization schemes
KR102084553B1 (ko) * 2013-01-03 2020-03-04 삼성전자주식회사 메모리 시스템
US20150310898A1 (en) * 2014-04-23 2015-10-29 Diablo Technologies Inc. System and method for providing a configurable timing control for a memory system
US9443572B2 (en) * 2014-06-06 2016-09-13 Qualcomm Incorporated Programmable power for a memory interface
KR102226370B1 (ko) * 2015-01-13 2021-03-15 삼성전자주식회사 집적 회로 및 집적 회로를 포함하는 스토리지 장치

Also Published As

Publication number Publication date
KR20150143943A (ko) 2015-12-24
US9601171B2 (en) 2017-03-21
US20150364173A1 (en) 2015-12-17

Similar Documents

Publication Publication Date Title
KR102248279B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치, 그리고 불휘발성 메모리 및 메모리 컨트롤러 사이의 통신을 중개하는 리타이밍 회로의 동작 방법
CN108428463B (zh) 存储装置
CN108417233B (zh) 存储设备及其写入和读取方法、以及存储系统
KR101699377B1 (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US10255131B2 (en) Storage device including nonvolatile memory device
KR102292183B1 (ko) 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
KR102470606B1 (ko) 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
CN105632535B (zh) 存储设备和存储设备的操作方法
KR102358053B1 (ko) 복수의 불휘발성 메모리 칩들을 포함하는 스토리지 장치
KR102229970B1 (ko) 불휘발성 메모리, 랜덤 액세스 메모리 및 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브
KR20170021413A (ko) 스토리지 장치
KR20170005917A (ko) 불휘발성 메모리 장치
KR20160122911A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
CN106469570B (zh) 包括非易失性存储器件的存储设备及其操作方法
KR20170051841A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 동작 방법
KR102336455B1 (ko) 집적 회로 및 집적 회로를 포함하는 스토리지 장치
KR20170003779A (ko) 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
US9767873B2 (en) Semiconductor memory system, semiconductor memory device and method of operating the semiconductor memory device
KR20170062351A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치에 데이터를 프로그램 하는 프로그램 방법
US20200264959A1 (en) Storage device and method of operating the same
KR102556276B1 (ko) 저장 장치 및 그 동작 방법
KR20160144556A (ko) 불휘발성 메모리 모듈
CN115083482A (zh) 存储器装置和包括该存储器装置的存储装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant