KR20220057820A - 메모리 장치 및 시스템 - Google Patents

메모리 장치 및 시스템 Download PDF

Info

Publication number
KR20220057820A
KR20220057820A KR1020200142873A KR20200142873A KR20220057820A KR 20220057820 A KR20220057820 A KR 20220057820A KR 1020200142873 A KR1020200142873 A KR 1020200142873A KR 20200142873 A KR20200142873 A KR 20200142873A KR 20220057820 A KR20220057820 A KR 20220057820A
Authority
KR
South Korea
Prior art keywords
data
error correction
correction block
divided clock
lsb
Prior art date
Application number
KR1020200142873A
Other languages
English (en)
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 KR1020200142873A priority Critical patent/KR20220057820A/ko
Priority to EP21187134.8A priority patent/EP3992968A1/en
Priority to US17/398,158 priority patent/US11461176B2/en
Priority to CN202111200481.7A priority patent/CN114446376A/zh
Publication of KR20220057820A publication Critical patent/KR20220057820A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • 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/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/156Arrangements in which a continuous pulse train is transformed into a train having a desired pattern
    • H03K5/1565Arrangements in which a continuous pulse train is transformed into a train having a desired pattern the output pulses having a constant duty cycle
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes

Abstract

멀티-레벨 시그널링(Multi-level signaling)이 이용되는 메모리 장치에서 다중 위상 클럭에 발생하는 에러를 제거하는 메모리 장치 및 시스템이 제공된다. 몇몇 실시예들에 따른 메모리 장치는 복수의 분주 클럭 신호들을 생성하는 멀티-위상 클럭 생성기, 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 수신하는 제1 에러 정정 블록, 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하는 제1 데이터 멀티 플렉서, 제1 분주 클럭 신호를 수신하는 제2 에러 정정 블록, 및 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 제2 데이터 멀티 플렉서를 포함하되, 제1 에러 정정 블록은 제1 LSB 데이터를 수신하여 제1 LSB 데이터의 토글 시점을 정정하고, 제2 에러 정정 블록은 제1 MSB 데이터를 수신하여 제1 MSB 데이터의 토글 시점을 정정하여, 제1 LSB 데이터와 제1 MSB 데이터가 동일한 시점에 토글된다.

Description

메모리 장치 및 시스템{Memory device and system}
본 발명은 메모리 장치 및 시스템에 관한 것이다.
멀티-레벨 시그널링(Multi-level signaling)이 이용되는 복수의 반도체 장치들로 구성된 시스템에서 반도체 메모리 장치는 데이터를 저장할 수 있다. 데이터 처리 장치, 예를 들면 중앙처리장치(CPU)등에서 데이터를 요구하게 되면, 반도체 메모리 장치는 데이터를 요구하는 장치로부터 입력된 어드레스에 대응하는 데이터를 출력하거나, 그 어드레스에 대응하는 위치에 데이터 요구 장치로부터 제공되는 데이터를 저장한다.
반도체 장치들로 구성된 시스템의 동작속도가 빨라지고, 반도체 집적회로에 관한 기술이 발달하면서, 반도체 메모리 장치는 보다 빠른 속도로 데이터를 출력하거나 저장하도록 요구받아 왔다. 이에 따라 고속으로 데이터를 입출력시키기 위해 입력받은 시스템 클럭에 동기되어 데이터를 입/출력시킬 수 있는 동기식 메모리 장치가 개발되었다. 하지만, 동기식 메모리 장치로도 요구되는 데이터 입출력 속도를 만족시키기가 충분하지 않아서, 시스템 클럭의 라이징 에지와 폴링에지에 각각 데이터가 입/출력되는 DDR(Double Data Rate) 동기식 메모리 장치가 개발되었다.
DDR 동기식 메모리 장치는 시스템 클럭의 라이징 에지와 폴링 에지에 각각 데이터를 입출력시켜야 하기 때문에 시스템 클럭의 한 주기 안에서 2개의 데이터를 처리해야 한다. 즉, DDR 동기식 메모리 장치는 클럭 신호의 라이징 에지 및 폴링 에지에 각각 데이터를 출력하거나 입력받아 저장해야만 한다. 특히 DDR 메모리 장치가 데이터를 출력하는 타이밍은 시스템 클럭의 라이징 에지 또는 폴링 에지에 정확하게 동기시켜 출력시켜야 한다.
더 빠른 속도로 동작하는 반도체 메모리 장치를 개발하기 위해 시스템 클럭의 한 주기 동안 2개보다 많은 데이터를 전달할 수 있는 개념이 제안되고 있다.
이러한 반도체 메모리 장치에 인가된 시스템 클럭은 반도체 메모리 장치 내부에 배치된 클럭 입력 버퍼 및 클럭 신호를 전송하기 위한 전송라인 등에 의해 지연되거나 위상이 변경되고 혹은 신호가 왜곡될 가능성이 존재한다. 이를 해결하기 위해, 반도체 메모리 장치는 시스템 클럭의 복수의 분주 클럭 신호에 대응하여 정확한 데이터를 전달하기 위한 내부의 에러 정정 블록이 필요하다.
본 발명이 해결하고자 하는 기술적 과제는 멀티-레벨 시그널링(Multi-level signaling)이 이용되는 메모리 장치에서 다중 위상 클럭에 발생하는 에러를 제거하는 메모리 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 멀티-레벨 시그널링(Multi-level signaling)이 이용되는 메모리 장치에서 다중 위상 클럭에 발생하는 에러를 제거하는 메모리 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 메모리 장치는, 복수의 분주 클럭 신호들을 생성하는 멀티-위상 클럭 생성기, 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 수신하는 제1 에러 정정 블록, 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하는 제1 데이터 멀티 플렉서, 제1 분주 클럭 신호를 수신하는 제2 에러 정정 블록, 및 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 제2 데이터 멀티 플렉서를 포함하되, 제1 에러 정정 블록은 제1 LSB 데이터를 수신하여 제1 LSB 데이터의 토글 시점을 정정하고, 제2 에러 정정 블록은 제1 MSB 데이터를 수신하여 제1 MSB 데이터의 토글 시점을 정정하여, 제1 LSB 데이터와 제1 MSB 데이터의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 서로 동일하 다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 메모리 장치는, 메모리 인터페이스, 메모리 인터페이스로부터 명령을 수신받는 제어 로직 회로, 및 제어 로직 회로에 의해 제어되며, 데이터를 저장하는 메모리 셀 어레이를 포함하되, 메모리 인터페이스는, 멀티-위상 클럭 생성기를 통해, 복수의 분주 클럭 신호들을 생성하고, 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 제1 에러 정정 블록이 수신하고, 제1 데이터 멀티 플렉서를 통해, 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하고, 제1 분주 클럭 신호를 제2 에러 정정 블록이 수신하고, 제2 데이터 멀티 플렉서를 통해, 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 것을 포함하되, 제1 에러 정정 블록은 제1 LSB 데이터를 수신하여 제1 LSB 데이터의 토글 시점을 정정하고, 제2 에러 정정 블록은 제1 MSB 데이터를 수신하여 제1 MSB 데이터의 토글 시점을 정정하여, 제1 LSB 데이터와 제1 MSB 데이터의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 서로 동일하다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 메모리 시스템은, 컨트롤러 인터페이스 회로를 포함하는 메모리 컨트롤러, 및 메모리 컨트롤러로부터 신호를 수신받는 메모리 인터페이스와, 메모리 인터페이스로부터 명령을 수신받는 제어 로직 회로와, 그리고 데이터를 저장하며 제어 로직 회로와 연결되는 메모리 셀 어레이를 포함하는 메모리 장치를 포함하되, 메모리 인터페이스는, 복수의 분주 클럭 신호들을 생성하는 멀티-위상 클럭 생성기, 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 수신하는 제1 에러 정정 블록, 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하는 제1 데이터 멀티 플렉서, 제1 분주 클럭 신호를 수신하는 제2 에러 정정 블록, 및 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 제2 데이터 멀티 플렉서를 포함하되, 제1 에러 정정 블록은 제1 LSB 데이터를 수신하여 제1 LSB 데이터의 토글 시점을 정정하고, 제2 에러 정정 블록은 제1 MSB 데이터를 수신하여 제1 MSB 데이터의 토글 시점을 정정하여, 제1 LSB 데이터와 제1 MSB 데이터의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 서로 동일하다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1 및 도 2는 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 예시적인 도면이다.
도 3은 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 예시적인 도면이다.
도 4는 몇몇 실시예들에 따른 메모리 장치의 인터페이스를 설명하기 위한 예시적인 블록도이다.
도 5는 몇몇 실시예들에 따른 메모리 장치의 읽기 동작을 설명하기 위한 예시적인 타이밍도이다.
도 6은 몇몇 실시예들에 따른 메모리 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 7 및 도 8은 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스를 설명하기 위한 예시적인 블록도이다.
도 8도 9은 몇몇 실시예들에 따른 도 8의 메모리 장치의 읽기 동작을 설명하기 위한 예시적인 타이밍도이다.
도 8도 10는 몇몇 실시예들에 따른 도 8의 메모리 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 11은 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스를 설명하기 위한 예시적인 블록도이다.
도 12는 몇몇 실시예들에 따른 메모리 장치가 적용된 다른 메모리 시스템을 설명하기 위한 예시적인 도면이다.
도 13는 몇몇 실시예들에 따른 메모리 장치가 적용된 UFS 시스템을 설명하기 위한 예시적인 도면이다.
도 1 및 도 2는 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 예시적인 도면이다.
도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(20)와 메모리 장치(30)를 포함한다. 메모리 컨트롤러(20)는 클럭 발생기(21), 커맨드/어드레스 발생기(22), 커맨드/어드레스 전송부(이하, "CA 전송부"라 칭한다:23), 레지스터부(24), 비교부(26), 위상/타이밍 제어부(25), 그리고 데이터 입출력부(27)를 포함한다.
메모리 컨트롤러(20)는 클럭 발생기(21)로부터 생성되는 클럭 신호(CK)를 클럭 신호 라인(11)을 통해 메모리 장치(30)로 제공할 수 있다. 커맨드/어드레스 발생기(22)는 초기 커맨드/어드레스 신호(CA0)를 발생하여 CA 전송부(23)로 제공할 수 있다.
CA 전송부(23)는 초기 커맨드어드레스 신호(CA0)를 수신하고, 위상/타이밍 제어부(25)의 제어 신호(CTRL)에 응답하여 초기 커맨드/어드레스 신호(CA0)의 위상 또는 타이밍을 조정하여 제1 커맨드/어드레스 신호(CA1)를 발생할 수 있다. 제1 커맨드/어드레스 신호(CA1)는 레지스터부(24)로 제공되어 레지스터부(24)에서 그 값이 저장될 수 있다. 또한, 제1 커맨드/어드레스 신호(CA1)는 커맨드/어드레스 버스(12)를 통해 메모리 장치(30)로 제공될 수 있다. 이때, 제1 커맨드/어드레스 신호(CA1)는 클럭 신호(CK)와 함께 메모리 장치(30)로 제공될 수 있다.
레지스터부(24)는 제1 커맨드/어드레스 신호(CA1)를 저장한다. 비교부(26)는 레지스터부(24)에 저장된 제1 커맨드/어드레스 신호(CA1)와 데이터 입출력부(27)로부터 출력되는 제3 커맨드/어드레스 신호(CA3)를 비교한다. 비교부(26)는 제1 커맨드/어드레스 신호(CA1)와 제3 커맨드/어드레스 신호(CA3)의 데이터를 비교하여 패스 또는 페일 신호(P/F)를 발생한다.
레지스터부(24)와 비교부(26)는, 도 2에 도시된 바와 같이, 클럭 신호(CK)의 상승 에지 및 하강 에지에서의 제1 커맨드/어드레스 신호(CA1)와 제3 커맨드/어드레스 신호(CA3)를 저장하고 비교할 수 있다.
도 2를 참조하면, 레지스터부(24)는 클럭 신호(CK)의 상승 에지에서의 제1 커맨드/어드레스 신호(CA1)를 저장하는 제1 레지스터(24a)와, 클럭 신호(CK)의 하강 에지에서의 제1 커맨드/어드레스 신호(CA1)를 저장하는 제2 레지스터(24b)를 포함할 수 있다. 비교부(26)는 클럭 신호(CK)의 상승 에지에서의 제1 커맨드/어드레스 신호(CA1)와 제3 커맨드/어드레스 신호(CA3)를 비교하는 제1 비교부(26a)와, 클럭 신호(CK)의 하강 에지에서의 제1 커맨드/어드레스 신호(CA1)와 제3 커맨드/어드레스 신호(CA3)를 비교하는 제2 비교부(26b)를 포함할 수 있다.
제1 비교부(26a)는 클럭 신호(CK)의 상승 에지에서의 제1 커맨드/어드레스 신호(CA1)와 제3 커맨드/어드레스 신호(CA3) 데이터를 비교하여 제1 패스 또는 페일 신호를 발생할 수 있다. 제2 비교부(26b)는 클럭 신호(CK)의 하강 에지에서의 제1 커맨드/어드레스 신호(CA1)와 제3 커맨드/어드레스 신호(CA3) 데이터를 비교하여 제2 패스 또는 페일 신호를 발생할 수 있다. 비교부(26)는 제1 패스 또는 페일 신호와 제2 패스 또는 페일 신호를 논리합하여 패스 또는 페일 신호(P/F)를 발생할 수 있다.
다시, 도 1로 돌아가서, 위상/타이밍 제어부(25)는 비교부(26)의 패스 또는 페일 신호(P/F)에 따라 제1 커맨드/어드레스 신호(CA1)의 위상 변이(shift)를 지시하는 제어 신호(CTRL)를 발생한다. 제어 신호(CTRL)는 CA 전송부(23)로 제공되고, 초기 커맨드/어드레스 신호(CA)의 위상 또는 타이밍을 조정하여, 위상 조정된 제1 커맨드/어드레스 신호(CA1)를 발생시킨다.
데이터 입출력부(27)는, 일반 동작 모드에서 DQ 버스(13)를 통해 메모리 장치(30)로부터 전달되는 독출 데이터(R_Data1)를 수신하거나, 메모리 장치(30)에 기입될 기입 데이터(W_Data1)를 DQ 버스(13)를 통해 메모리 장치(30)로 전달한다. 또한, 데이터 입출력부(27)는, 커맨드/어드레스 신호(CA) 캘리브레이션 모드에서 메모리 장치(30)가 수신한 제1 커맨드/어드레스 신호(CA1) 값에 대응되는 제2 커맨드/어드레스 신호(CA2)를 DQ 버스(13)를 통해 메모리 장치(30)로부터 수신한다.
데이터 입출력부(27)는 입력 버퍼(27a), 선택부(27b), 그리고 출력 버퍼(27c)를 포함한다. 입력 버퍼(27a)는 DQ 버스(13)을 통해 전달되는 데이터 및 제2 커맨드/어드레스 신호(CA2)값을 수신한다. 선택부(27b)는 일반 동작 모드에서 제1 선택 신호(SEL1)에 응답하여 입력 버퍼(27a)로 수신된 데이터를 메모리 콘트롤러(20)의 내부 회로 블락으로 독출 데이터(R_Data1)로서 전달하거나 커맨드/어드레스 신호(CA) 캘리브레이션 모드에서는 제1 선택 신호(SEL1)에 응답하여 입력 버퍼(27a)로 수신된 제2 커맨드/어드레스 신호(CA2)를 비교부(26)로 제3 커맨드/어드레스 신호(CA3)로 전달한다. 출력 버퍼(27c)은 메모리 장치(30)에 기입될 기입 데이터(W_Data1)를 DQ 버스(13)를 통해 메모리 장치(30)로 전달한다.
메모리 장치(30)는 클럭 버퍼(32), 커맨드/어드레스 수신부(이하 "CA 수신부"라 칭한다: 34), 그리고 데이터 입출력부(31)를 포함한다. 메모리 장치(30)는 DRAM 메모리 셀들을 포함할 수 있다. 클럭 버퍼(32)는 클럭 신호 라인(11)을 통해 전달되는 클럭 신호(CK)를 수신하여 내부 클럭 신호(ICK)를 발생한다. CA 수신부(34)는 내부 클럭 신호(ICK)에 응답하여 칩 선택 신호(/CS), 클럭 인에이블 신호(CKE) 그리고 커맨드/어드레스 버스(12)를 통해 전달되는 제1 커맨드/어드레스 신호(CA1)에 따라 제2 커맨드/어드레스 신호(CA2)를 발생한다. 도 1에 표시된 칩 선택 신호(/CS)와 클럭 인에이블 신호(CKE)는 도 1에서처럼 커맨드/어드레스 신호 라인(12)과는 별도로 구성될 수도 있고, 또한 도면에 나타내지는 않았지만 커맨드/어드레스 신호 라인(12)에 포함되어 메모리 장치(30)로 전송될 수 있다.
클럭 인에이블 신호(CKE)는 커맨드/어드레스 버스(12)를 통해 전달되는 제1 커맨드/어드레스 신호(CA1)의 독출 커맨드로 작용하는 의사 커맨드(pseudo command)로 사용될 수 있다. 커맨드/어드레스 수신부(34)는 클럭 인에이블 신호(CKE)가 활성화일 때에 수신되는 제1 커맨드/어드레스 신호(CA1)에 따라 제2 커맨드/어드레스 신호(CA2)를 발생한다. 제2 커맨드/어드레스 신호(CA2)는 데이터 입출력부(31)로 제공된다.
데이터 입출력부(31)는 일반 독출 동작 모드에서 제2 선택 신호(SEL2)에 응답하여 메모리 장치(30)의 내부 회로 블락으로부터 전달되는 독출 데이터(R_Data2)를 수신하여 DQ 버스(13)로 전달하거나, 캘리브레이션 모드에서는 제2 선택 신호(SEL2)에 응답하여 제2 커맨드/어드레스 신호(CA2)를 DQ 버스(13)로 전달한다. 또한 일반 기입 동작 모드에서는 DQ 버스(13)를 통해 메모리 장치(30)에 기입될 기입 데이터(W_Data1)를 수신해서 메모리 장치(30)의 내부 회로 블락으로 전달한다. 데이터 입출력부(31)는 선택부(31c), 출력 버퍼(31a), 그리고 입력 버퍼(31b)를 포함한다. 선택부(31c)는 일반/캘리브레이션 동작 모드에 따라 제2 선택 신호(SEL2)에 응답하여 커맨드/어드레스 수신부(34)에서 출력되는 제2 커맨드/어드레스 신호(CA2)와 메모리 장치(30)의 내부 회로 블락에서 제공되는 독출 데이터(R_Data2) 중 하나를 선택하여 출력 버퍼(31a)로 전달한다.
출력 버퍼(31a)는 선택부(31c)에서 출력되는 제2 커맨드/어드레스 신호(CA2) 또는 독출 신호(R_Data2)를 DQ 버스(13)로 전달한다. 입력 버퍼(31b)는 DQ 버스(13)을 통해 전달되는 데이터를 수신하여 메모리 장치(30)의 내부 회로 블락으로 기입 데이터(W_Data2)로서 전달한다.
본 실시예에서는 메모리 장치(30)의 출력 버퍼(31a)에서 출력되는 제2 커맨드/어드레스 신호(CA2)가 DQ 버스(13)를 통해 메모리 콘트롤러(20)로 제공되는 예에 대하여 기술하고 있다. 이와는 달리, 메모리 장치(30)의 출력 버퍼(31a)에서 출력되는 제2 커맨드/어드레스 신호(CA2)가 DQS 버스와 DQ 버스(13)를 통해 메모리 콘트롤러(20)로 제공될 수도 있다. 이 때, 메모리 콘트롤러(20)의 데이터 입출력부(27)와 메모리 장치(30)의 데이터 입출력부(31)는 DQS 버스와 DQ 버스(13)를 통해 서로 연결될 수 있다.
도 3은 몇몇 실시예들에 따른 메모리 시스템을 설명하기 위한 예시적인 도면이다.
도 3을 참조하면, 몇몇 실시예들에 따른 메모리 시스템(1)은 메모리 장치(100) 및 메모리 컨트롤러(300)를 포함할 수 있다. 메모리 장치(100)는 복수의 채널들 중 하나를 기반으로 메모리 컨트롤러(300)와 통신하는 비휘발성 메모리 장치들 중 하나에 대응할 수 있다.
메모리 장치(100)는 제1 내지 제8 핀들(P11~P18), 메모리 인터페이스 (200), 제어 로직 회로(110), 및 메모리 셀 어레이(120)를 포함할 수 있다.
메모리 인터페이스(200)는 제1 핀(P11)을 통해 메모리 컨트롤러(300)로부터 칩 인에이블 신호(nCE)를 수신할 수 있다. 메모리 인터페이스(200)는 칩 인에이블 신호(nCE)에 따라 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(300)와 신호들을 송수신할 수 있다. 예를 들어, 칩 인에이블 신호(nCE)가 인에이블 상태(예를 들어, 로우 레벨)인 경우, 메모리 인터페이스(200)는 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(300)와 신호들을 송수신할 수 있다.
메모리 인터페이스(200)는 제2 내지 제4 핀들(P12~P14)을 통해 메모리 컨트롤러(300)로부터 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 쓰기 인에이블 신호(nWE)를 수신할 수 있다. 메모리 인터페이스(200)는 제7 핀(P17)을 통해 메모리 컨트롤러(300)로부터 데이터 신호(DQ)를 수신하거나, 메모리 컨트롤러(300)로 데이터 신호(DQ)를 전송할 수 있다. 데이터 신호(DQ)를 통해 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA)가 전달될 수 있다. 예를 들어, 데이터 신호(DQ)는 복수의 데이터 신호 라인들을 통해 전달될 수 있다. 이 경우, 제7 핀(P17)은 복수의 데이터 신호들에 대응하는 복수개의 핀들을 포함할 수 있다.
메모리 인터페이스(200)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드 래치 인에이블 신호(CLE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 커맨드(CMD)를 획득할 수 있다. 메모리 인터페이스(200)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 어드레스(ADDR)를 획득할 수 있다.
예시적인 실시 예에서, 쓰기 인에이블 신호(nWE)는 고정된(static) 상태(예를 들어, 하이(high) 레벨 또는 로우(low) 레벨)를 유지하다가 하이 레벨과 로우 레벨 사이에서 토글할 수 있다. 예를 들어, 쓰기 인에이블 신호(nWE)는 커맨드(CMD) 또는 어드레스(ADDR)가 전송되는 구간에서 토글할 수 있다. 이에 따라, 메모리 인터페이스(200)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드(CMD) 또는 어드레스(ADDR)를 획득할 수 있다.
메모리 인터페이스(200)는 제5 핀(P15)을 통해 메모리 컨트롤러(300)로부터 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스(200)는 제6 핀(P16)을 통해 메모리 컨트롤러(300)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 컨트롤러(300)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 장치(100)의 데이터(DATA) 출력 동작에서, 메모리 인터페이스(200)는 데이터(DATA)를 출력하기 전에 제5 핀(P15)을 통해 토글하는 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스(200)는 읽기 인에이블 신호(nRE)의 토글링에 기초하여 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예를 들어, 메모리 인터페이스(200)는 읽기 인에이블 신호(nRE)의 토글링 시작 시간을 기준으로 미리 정해진 딜레이(예를 들어, tDQSRE) 이후에 토글하기 시작하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 메모리 인터페이스(200)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터(DATA)를 포함하는 데이터 신호(DQ)를 전송할 수 있다. 이에 따라, 데이터(DATA)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 정렬되어 메모리 컨트롤러(300)로 전송될 수 있다.
메모리 장치(100)의 데이터(DATA) 입력 동작에서, 메모리 컨트롤러(300)로부터 데이터(DATA)를 포함하는 데이터 신호(DQ)이 수신되는 경우, 메모리 인터페이스(200)는 메모리 컨트롤러(300)로부터 데이터(DATA)와 함께 토글하는 데이터 스트로브 신호(DQS)를 수신할 수 있다. 메모리 인터페이스(200)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터 신호(DQ)로부터 데이터(DATA)를 획득할 수 있다. 예를 들어, 메모리 인터페이스(200)는 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지에서 데이터 신호(DQ)를 샘플링함으로써 데이터(DATA)를 획득할 수 있다.
메모리 인터페이스(200)는 제8 핀(P18)을 통해 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(300)로 전송할 수 있다. 메모리 인터페이스(200)는 레디/비지 출력 신호(nR/B)를 통해 메모리 장치(100)의 상태 정보를 메모리 컨트롤러(300)로 전송할 수 있다. 메모리 장치(100)가 비지 상태인 경우(즉, 메모리 장치(100) 내부 동작들이 수행 중인 경우), 메모리 인터페이스(200)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(300)로 전송할 수 있다. 메모리 장치(100)가 레디 상태인 경우(즉, 메모리 장치(100) 내부 동작들이 수행되지 않거나 완료된 경우), 메모리 인터페이스(200)는 레디 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(300)로 전송할 수 있다. 예를 들어, 메모리 장치(100)가 페이지 독출 명령에 응답하여 메모리 셀 어레이(120)로부터 데이터(DATA)를 독출하는 동안, 메모리 인터페이스(200)는 비지 상태(예를 들어, 로우 레벨)를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(300)로 전송할 수 있다. 예를 들어, 메모리 장치(100)가 프로그램 명령에 응답하여 메모리 셀 어레이(120)로 데이터(DATA)를 프로그램하는 동안, 메모리 인터페이스(200)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(300)로 전송할 수 있다.
제어 로직 회로(110)는 메모리 장치(100)의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(110)는 메모리 인터페이스(200)로부터 획득된 커맨드/어드레스(CMD/ADDR)를 수신할 수 있다. 제어 로직 회로(110)는 수신된 커맨드/어드레스(CMD/ADDR)에 따라 메모리 장치(100)의 다른 구성 요소들을 제어하기 위한 제어 신호들을 생성할 수 있다. 예를 들어, 제어 로직 회로(110)는 메모리 셀 어레이(120)에 데이터(DATA)를 프로그램하거나, 또는 메모리 셀 어레이(120)로부터 데이터(DATA)를 독출하기 위한 각종 제어 신호들을 생성할 수 있다.
메모리 셀 어레이(120)는 제어 로직 회로(110)의 제어에 따라 메모리 인터페이스(200)로부터 획득된 데이터(DATA)를 저장할 수 있다. 메모리 셀 어레이(120)는 제어 로직 회로(110)의 제어에 따라 저장된 데이터(DATA)를 메모리 인터페이스(200)로 출력할 수 있다.
메모리 셀 어레이(120)는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 복수의 메모리 셀들은 플래시 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 메모리 셀들은 RRAM(Resistive Random Access Memory) 셀, FRAM(Ferroelectric Random Access Memory) 셀, PRAM(Phase Change Random Access Memory) 셀, TRAM(Thyristor Random Access Memory) 셀, MRAM(Magnetic Random Access Memory) 셀, 또는 DRAM(dynamic random access) 셀, DDR4(double data rate 4) SDRAM(synchronous DRAM) 셀, LPDDR4(low power DDR4) SDRAM 셀, 또는 LPDDR5 SDRAM 셀들일 수 있다.
메모리 컨트롤러(300)는 제1 내지 제8 핀들(P21~P28), 및 컨트롤러 인터페이스 회로(310)를 포함할 수 있다. 제1 내지 제8 핀들(P21~P28)은 메모리 장치(100)의 제1 내지 제8 핀들(P11~P18)에 대응할 수 있다.
컨트롤러 인터페이스 회로(310)는 제1 핀(P21)을 통해 메모리 장치(100)로 칩 인에이블 신호(nCE)를 전송할 수 있다. 컨트롤러 인터페이스 회로(310)는 칩 인에이블 신호(nCE)를 통해 선택한 메모리 장치(100)와 제2 내지 제8 핀들(P22~P28)을 통해 신호들을 송수신할 수 있다.
컨트롤러 인터페이스 회로(310)는 제2 내지 제4 핀들(P22~P24)을 통해 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 쓰기 인에이블 신호(nWE)를 메모리 장치(100)로 전송할 수 있다. 컨트롤러 인터페이스 회로(310)는 제7 핀(P27)을 통해 메모리 장치(100)로 데이터 신호(DQ)를 전송하거나, 메모리 장치(100)로부터 데이터 신호(DQ)를 수신할 수 있다.
컨트롤러 인터페이스 회로(310)는 토글하는 쓰기 인에이블 신호(nWE)와 함께 커맨드(CMD) 또는 어드레스(ADDR)를 포함하는 데이터 신호(DQ)를 메모리 장치(100)로 전송할 수 있다. 컨트롤러 인터페이스 회로(310)는 인에이블 상태를 가지는 커맨드 래치 인에이블 신호(CLE)를 전송함에 따라 커맨드(CMD)를 포함하는 데이터 신호(DQ)를 메모리 장치(100)로 전송하고, 인에이블 상태를 가지는 어드레스 래치 인에이블 신호(ALE)를 전송함에 따라 어드레스(ADDR)를 포함하는 데이터 신호(DQ)를 메모리 장치(100)로 전송할 수 있다.
컨트롤러 인터페이스 회로(310)는 제5 핀(P25)을 통해 메모리 장치(100)로 읽기 인에이블 신호(nRE)를 전송할 수 있다. 컨트롤러 인터페이스 회로(310)는 제6 핀(P26)을 통해 메모리 장치(100)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 장치(100)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 장치(100)의 데이터(DATA) 출력 동작에서, 컨트롤러 인터페이스 회로(310)는 토글하는 읽기 인에이블 신호(nRE)를 생성하고, 읽기 인에이블 신호(nRE)를 메모리 장치(100)로 전송할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(310)는 데이터(DATA)가 출력되기 전에 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)에서 토글 상태로 변경되는 읽기 인에이블 신호(nRE)를 생성할 수 있다. 이에 따라, 메모리 장치(100)에서 읽기 인에이블 신호(nRE)에 기초하여 토글하는 데이터 스트로브 신호(DQS)가 생성될 수 있다. 컨트롤러 인터페이스 회로(310)는 메모리 장치(100)로부터 토글하는 데이터 스트로브 신호(DQS)와 함께 데이터(DATA)를 포함하는 데이터 신호(DQ)를 수신할 수 있다. 컨트롤러 인터페이스 회로(310)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터 신호(DQ)로부터 데이터(DATA)를 획득할 수 있다.
메모리 장치(100)의 데이터(DATA) 입력 동작에서, 컨트롤러 인터페이스 회로(310)는 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(310)는 데이터(DATA)를 전송하기 전에 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)에서 토글 상태로 변경되는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 컨트롤러 인터페이스 회로(310)는 데이터 스트로브 신호(DQS)의 토글 타이밍들에 기초하여 데이터(DATA)를 포함하는 데이터 신호(DQ)를 메모리 장치(100)로 전송할 수 있다.
컨트롤러 인터페이스 회로(310)는 제8 핀(P28)을 통해 메모리 장치(100)로부터 레디/비지 출력 신호(nR/B)를 수신할 수 있다. 컨트롤러 인터페이스 회로(310)는 레디/비지 출력 신호(nR/B)에 기초하여 메모리 장치(100)의 상태 정보를 판별할 수 있다.
몇몇 실시예들에 따른 메모리 장치(100)는 멀티-레벨 시그널링을 사용하여 다수의 채널들을 통해 데이터를 전송할 수 있다. 이러한 멀티-레벨 시그널링은 데이터 전송의 주파수 및/또는 통신된 데이터의 전송 전력을 증가시키기 않고 데이터 전송 속도를 증가시키도록 구성될 수 있다. 멀티-레벨 시그널링 방식의 예는 펄스 폭 변조(PAM: Pulse Amplitude Modulation)일 수 있으며, 멀티-레벨 신호의 고유한 기호는 복수의 비트들의 데이터를 나타내도록 구성될 수 있다. 이하에서, 몇몇 실시예들에 따른 메모리 장치(100)가 사용하는 멀티-레벨 시그널링은 펄스 폭 변조(PAM)임을 가정하고 설명한다. 몇몇 실시예들에 따른 메모리 장치(100)가 사용하는 PAM은 예를 들어, PAM4, PAM8, 또는 PAMN(N은 2보다 큰 자연수) 등일 수 있다.
몇몇 실시예들에 따른 메모리 장치(100)는 한 주기 동안 2개보다 많은 데이터를 전달할 수 있다. 예를 들어, 몇몇 실시예들에 따른 메모리 장치(100)는 시스템 클럭의 한 주기 동안 4개의 데이터가 입/출력되는 QDR(Quad Data Rate) 동기식 메모리 장치일 수 있다. 이하에서, 몇몇 실시예들에 따른 메모리 장치(100)는 QDR 동기식 메모리 장치인 것으로 가정하고 설명한다.
몇몇 실시예들에 따른 메모리 장치(100)는 DDR 동기식 메모리 장치보다 이론적으로 최대 두 배로 많은 데이터를 전달할 수 있다. 몇몇 실시예들에 따른 메모리 장치(100), 즉 몇몇 실시예들에 따른 QDR 메모리 장치(100)는 두 개의 클럭을 사용할 수 있다. 하나의 클럭은 데이터를 읽고 쓰기 위한 명령과 주소를 전달하는 기준으로 사용될 수 있으며, 다른 하나의 클럭은 데이터를 전달하는 기준으로 사용될 수 있다. 이를 통해, 몇몇 실시예들에 따른 메모리 장치(100)는 읽기와 쓰기 동작의 속도가 더 빨라질 수 있게 된다.
몇몇 실시예들에 따른 메모리 장치(100)가 4개의 데이터를 시스템 클럭의 한 주기 동안 입출력하기 위해서는 시스템 클럭의 0도, 90도, 180도, 및 270도의 위상에 데이터를 정확히 동기 할 수 있어야 한다. 즉, 90도마다 하나의 데이터를 출력해야 한다. 데이터가 시스템 클럭의 위상에 정확히 동기 될수록 각각의 데이터가 가지는 반도체 메모리 장치의 동작상 유효 윈도우(valid window)가 최대한 보장되어 동작의 신뢰성을 높일 수 있다. 몇몇 실시예들에 따른 메모리 장치(100)는 동작의 신뢰성을 높이기 위해, PAMN(N은 2보다 큰 자연수)을 사용하는 경우 형성될 수 있는 log2N개의 데이터 경로 각각에 에러 정정 블록을 배치할 수 있다. 더 자세히는, 몇몇 실시예들에 따른 메모리 장치(100)의 동작 신뢰성을 높이기 위해, 메모리 인터페이스(200) 내에, log2N개의 데이터 경로 각각에 에러 정정 블록을 배치할 수 있다. 이에 대한 자세한 설명을 이하에서 설명한다.
도 4는 몇몇 실시예들에 따른 메모리 장치의 인터페이스를 설명하기 위한 예시적인 블록도이다.
도 4를 참조하면, 몇몇 실시예들에 따른 메모리 인터페이스(200a)는 멀티-위상 클럭 생성기(210), 클럭 멀티 플렉서(220), 그리고, 각각의 데이터 경로에 배치되는 에러 정정 블록들(230a, 및 230b), 데이터 멀티 플렉서들(240a, 및 240b), 버퍼들(250a, 및 250b), 프리 드라이버들(260a, 및 260b), 드라이버 회로들(270a, 및 270b), 그리고 입출력 패드(280)를 포함할 수 있다. 몇몇 실시예들에 따른 메모리 인터페이스(200a)는 예를 들어, PAM4를 사용하는 것으로 설명한다.
참고적으로, 각각의 데이터 경로에 에러 정정 블록들(230a, 및 230b), 버퍼들(250a, 및 250b), 프리 드라이버들(260a, 및 260b), 드라이버 회로들(270a, 및 270b)이 배치되는 것으로 설명했으나, 이는 예시적인 것으로, 에러 정정 블록들(230a, 및 230b) 각각이 각각의 데이터 경로를 통해 전달되는 데이터를 피드백 받을 수 있는 구조면 어떤 구조든 가능할 수 있다.
멀티-위상 클럭 생성기(210)는 기준 클럭 신호를 수신하고, 수신된 기준 클럭 신호의 주파수를 분주하여 서로 90도의 위상차를 가지는 복수의 분주 클럭 신호들(예를 들어, 제1 분주 클럭 신호(CLK 0), 제2 분주 클럭 신호(CLK 90), 제3 분주 클럭 신호(CLK 180), 및 제4 분주 클럭 신호(CLK 270))을 생성할 수 있다.
클럭 멀티 플렉서(220)는 멀티-위상 클럭 생성기(210)로부터 복수의 분주 클럭 신호들(CLK 0, CLK 90, CLK 180, 및 CLK 270)을 수신할 수 있다. 클럭 멀티 플렉서(220)는 복수의 분주 클럭 신호들(CLK 0, CLK 90, CLK 180, 및 CLK 270) 중 적어도 하나의 분주 클럭 신호를 선택하여, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b)에 전송할 수 있다. 이하에서는, 설명의 편의를 위해, 클럭 멀티 플렉서(220)가 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b)에 전송하는 분주 클럭 신호가 제1 분주 클럭 신호(CLK 0)임을 가정하여 설명한다.
제1 에러 정정 블록(230a)은 클럭 멀티 플렉서(220)로부터 수신된 제1 분주 클럭 신호(CLK0)의 위상 변경이나 왜곡 등으로 인해 어긋난 듀티비를 보정하기 위한 듀티 사이클 정정(DCC: Duty Cycle Correction) 회로를 포함할 수 있다. 듀티 사이클 정정 회로는 제1 에러 정정 블록(230a)으로 입력 혹은 출력되는 클럭 신호의 듀티비를 바로잡거나 데이터를 메모리 장치(예를 들어, 도 3의 100)의 내부 혹은 외부로 전달하기 위한 클럭의 듀티비를 바로잡는 데 사용될 수 있다.
제1 에러 정정 블록(230a)은 또한, 쿼드 에러 정정(QEC: Quadrature Error Correction) 회로를 포함할 수 있다. 쿼드 에러 정정(QEC: Quadrature Error Correction) 회로는 제1 에러 정정 블록(230a), 제1 데이터 멀티 플렉서(240a), 제1 버퍼(250a), 제1 프리 드라이버(260a), 및 제1 드라이버 회로(270a)로 이루어진 제1 데이터 경로를 통해 전송되는 LSB 데이터(예를 들어, 제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))를 피드백 받아, LSB 데이터의 토글 시점을 정정하여, 후술하는 제2 데이터 경로를 통해 전송되는 MSB 데이터(예를 들어, 제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))의 의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 서로 동일하게 만들어줄 수 있다. 이에 대해선 후술하는 내지 를 통해 자세히 설명한다.
제1 에러 정정 블록(230a)으로부터 제1 분주 클럭 신호(CLK 0)를 수신 받은 제1 데이터 멀티 플렉서(240a)는 LSB 데이터(예를 들어, 제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))들 중, 제1 분주 클럭 신호(CLK 0)에 대응하는 LSB 데이터를 제1 버퍼(250a)에 전송할 수 있다. 이하에서, 제1 데이터 멀티 플렉서(240a)가 제1 버퍼(250a)에 전송하는 LSB 데이터는 제1 LSB 데이터(LSB Data 1)인 것으로 가정하여 설명한다.
제1 버퍼(250a)는 예를 들어, FIFO 컴포넌트를 포함할 수 있다. 예를 들어, 제1 데이터 멀티 플렉서(240a)로부터 제1 버퍼(250a)로 전송된 LSB 데이터(예를 들어, 제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))들은, 제1 버퍼(250a)를 통해 라우팅될 수 있다. 제1 버퍼(250a)는 예를 들어, LSB 데이터(예를 들어, 제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))들의 입력 시간 및 우선 순위에 따라 데이터를 처리할 수 있다. 예를 들어, 제1 버퍼(250a)는 먼저 들어온 데이터를 먼저 처리할 수 있다(FIFO: First In First Out).
제1 버퍼(250a)를 통해, 프리 드라이버(260a)로 제1 LSB 데이터(LSB Data 1)가 전송될 수 있다. 프리 드라이버(260a)는 예를 들어, 저전력 신호를 생성하기 위한 바이어싱 회로일 수 있다
제1 프리 드라이버(260a)를 통해, 제1 LSB 데이터(LSB Data 1)가 제1 드라이버 회로(270a)에 전송될 수 있다. 제1 드라이버 회로(270a)는 예를 들어, 풀-업(pull-up) 회로와 풀-다운(pull-down) 회로를 포함할 수 있다. 즉, 제1 LSB 데이터(LSB Data 1)는 제1 프리 드라이버(260a)를 통해 원하는 진폭 레벨로 "풀-업"되거나 "풀-다운"되어 입출력 패드(280)로 출력될 수 있다.
입출력 패드(280)로 전송된 제1 LSB 데이터(LSB Data 1)는 입출력 패드(280)를 통해, 외부(예를 들어, 도 3의 컨트롤러 인터페이스 회로(310))로 전송될 수 있다.
몇몇 실시예들에 따른 메모리 인터페이스(200a)에서 제1 에러 정정 블록(230a)은 제1 LSB 데이터(LSB Data 1)를 피드백 받을 수 있다. 제1 LSB 데이터(LSB Data 1)를 피드백 받은 제1 에러 정정 블록(230a)은 제1 LSB 데이터의 토글 시점을 정정하여, 제1 분주 클럭 신호(CLK 0)에 대응하여 토글되는 MSB 데이터(예를 들어, 제1 MSB 데이터(MSB Data 1))의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 서로 동일하게 만들 수 있다. 이에 대한 자세한 설명을 아래의 내지 의 타이밍도를 통해 설명한다.
참고적으로, 상술한 설명은 제1 데이터 경로에 대한 설명으로, 제2 에러 정정 블록(230b), 제2 데이터 멀티 플렉서(240b), 제2 버퍼(250b), 제2 프리 드라이버(260b), 및 제2 드라이버 회로(270b)를 통해 MSB 데이터가 전송되는 제2 데이터 경로에 대한 설명에도 적용될 수 있는 바, 중복되는 설명은 생략한다.
참고적으로 이하의 모든 설명에서, 데이터들이 토글링되는 전송 시점은 본 명세서에 제한되는 것은 아니다.
도 5는 몇몇 실시예들에 따른 메모리 장치의 읽기 동작을 설명하기 위한 예시적인 타이밍도이다.
도 3 내지 도 5를 참조하면, 컨트롤러 인터페이스 회로(310)가 메모리 장치(100)로부터 데이터를 읽기 위하여 메모리 장치(100) 내부적으로 제공되는 제어 신호 (CLK0, CLK90, CLK180, 및 CLK270), 그리고 메모리 장치(100)가 출력하는 데이터들(LSB Data, 및 MSB Data) 신호가 도시되어 있다.
메모리 장치(100)는 t 시간 동안 메모리 셀 어레이(120)로부터 읽어온 데이터를 메모리 장치(100)의 외부(예를 들어, 메모리 컨트롤러(300))로 출력할 수 있다. 이때, 컨트롤러 인터페이스 회로(310)는 리드 인에이블 신호를 토글할 수 있다. 리드 인에이블 신호는 도 3의 읽기 인에이블 신호(nRE)에 대응될 수 있다. 리드 인에이블 신호가 토글될 때 메모리 셀 어레이(120)로부터 데이터를 읽어올 수 있다.
더 자세히는, 제1 분주 클럭 신호(CLK 0)에 대응하는 제1 LSB 데이터(LSB Data 1)와 제1 MSB 데이터(MSB Data 1)가 제1 분주 클럭 신호(CLK 0)의 라이징 엣지(p1) 이후 메모리 셀 어레이(120)로부터 추출될 수 있다. 또한, 제2 분주 클럭 신호(CLK 90)에 대응하는 제2 LSB 데이터(LSB Data 2)와 제2 MSB 데이터(MSB Data 2)가 제2 분주 클럭 신호(CLK 90)의 폴링 엣지(p2) 이후 메모리 셀 어레이(120)로부터 추출될 수 있다. 또한, 제3 분주 클럭 신호(CLK 180)에 대응하는 제3 LSB 데이터(LSB Data 3)와 제3 MSB 데이터(MSB Data 3)가 제3 분주 클럭 신호(CLK 180)의 라이징 엣지(p3) 이후 메모리 셀 어레이(120)로부터 추출될 수 있다. 또한, 제4 분주 클럭 신호(CLK 270)에 대응하는 제4 LSB 데이터(LSB Data 4)와 제4 MSB 데이터(MSB Data 4)가 제4 분주 클럭 신호(CLK 270)의 라이징 엣지(p4) 이후 메모리 셀 어레이(120)로부터 추출될 수 있다.
즉, 제1 데이터 경로를 통해 전송되는 LSB 데이터(예를 들어, 제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))들과, 제2 데이터 경로를 통해 전송되는 MSB 데이터(예를 들어, 제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))들이 각각의 데이터 경로에 배치된 에러 정정 블록을 통해 토글링되는 시점이 조정됨으로써, 각 분주 클럭 신호에 대응되는 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해 질 수 있다.더 자세히는, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제1 LSB 데이터(LSB Data 1)를 피드백 받아 제1 LSB 데이터(LSB Data 1)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제1 MSB 데이터(MSB Data 1)를 피드백 받아 제1 MSB 데이터(MSB Data 1)가 전송되는 시점을 조정함으로써, 제1 분주 클럭 신호(CLK 0)에 대응하는 제1 LSB 데이터(LSB Data 1)와 제1 MSB 데이터(MSB Data 1)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
또한, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제2 LSB 데이터(LSB Data 2)를 피드백 받아 제2 LSB 데이터(LSB Data 2)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제2 MSB 데이터(MSB Data 2)를 피드백 받아 제2 MSB 데이터(MSB Data 2)가 전송되는 시점을 조정함으로써, 제2 분주 클럭 신호(CLK 90)에 대응하는 제2 LSB 데이터(LSB Data 2)와 제2 MSB 데이터(MSB Data 2)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
또한, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제3 LSB 데이터(LSB Data 3)를 피드백 받아 제3 LSB 데이터(LSB Data 3)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제3 MSB 데이터(MSB Data 3)를 피드백 받아 제3 MSB 데이터(MSB Data 3)가 전송되는 시점을 조정함으로써, 제3 분주 클럭 신호(CLK 180)에 대응하는 제3 LSB 데이터(LSB Data 3)와 제3 MSB 데이터(MSB Data 3)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
또한, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제4 LSB 데이터(LSB Data 4)를 피드백 받아 제4 LSB 데이터(LSB Data 4)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제4 MSB 데이터(MSB Data 4)를 피드백 받아 제4 MSB 데이터(MSB Data 4)가 전송되는 시점을 조정함으로써, 제4 분주 클럭 신호(CLK 270)에 대응하는 제4 LSB 데이터(LSB Data 4)와 제4 MSB 데이터(MSB Data 4)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
도 6은 몇몇 실시예들에 따른 메모리 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 3, 도 4, 및 도 6을 참조하면, 몇몇 실시예들에 따른 메모리 장치에 포함된 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서, LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4)) 각각에 대한 에러 정정을 수행한다(S100).
에러 정정은, 듀티 사이클 정정(Duty Cycle Correction) 및/또는 쿼드 에러 정정(Quadrature Error Correction)일 수 있다.
제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))는 각각의 데이터 경로를 통해 전달된다(S200).
이후, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))의 각각의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 데이터 입출력 패드에서 합쳐져서 출력되는 출력의 아이 창이 최대의 크기가 되는지 판단한다(S300).
만약, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))의 각각의 분주 클럭 신호에 대응한 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 데이터 입출력 패드에서 합쳐져서 출력되는 출력의 아이 창이 최대의 크기가 된다고 판단되면(Y) 피드백을 멈추고, 입출력 패드(280)를 통해 데이터를 전송한다.
그렇지 않고, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))의 각각의 분주 클럭 신호에 대응한 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 데이터 입출력 패드에서 합쳐져서 출력되는 출력의 아이 창이 최대의 크기가 되지 않는다고 판단되면(N) 다시 각각의 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b)이, LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4)) 각각에 대한 에러 정정을 수행한다(S100).
도 7 및 도 8은 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스를 설명하기 위한 예시적인 블록도이다. 설명의 편의를 위해, 상술된 설명과 중복되는 설명은 생략하고, 차이점을 중심으로 설명한다.
도 7을 참조하면, 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스(200b)는 도 4의 인터페이스(200a)와는 달리, 멀티-위상 클럭 생성기(210)와 클럭 멀티 플렉서(220) 사이에 연결된 제3 에러 정정 블록(235)이 더 추가될 수 있다.
몇몇 실시예들에 따른 제3 에러 정정 블록(234)은 멀티-위상 클럭 생성기(210)로부터 수신된 복수의 분주 클럭 신호들(제1 분주 클럭 신호(CLK 0), 제2 분주 클럭 신호(CLK 90), 제3 분주 클럭 신호(CLK 180), 또는 제4 분주 클럭 신호(CLK 270))의 위상 변경이나 왜곡 등으로 인해 어긋난 듀티비를 보정하기 위한 듀티 사이클 정정(DCC: Duty Cycle Correction) 회로를 포함할 수 있다. 듀티 사이클 정정 회로는 클럭 멀티 플렉서(220)로 입력되는 클럭 신호의 듀티비를 바로잡거나 데이터를 메모리 장치(예를 들어, 도 3의 100)의 내부 혹은 외부로 전달하기 위한 클럭의 듀티비를 바로잡는 데 사용될 수 있다.
도 8을 참조하면, 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스(200c)는 도 4의 인터페이스(200a)와는 달리, PAM8을 사용할 수 있다.
즉, 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스(200c)는 도 4의 인터페이스(200a)와는 달리 하나의 추가적인 데이터 경로를 포함한다.
추가적인 데이터 경로는 제3 에러 정정 블록(230c), 제3 데이터 멀티 플렉서(240c), 제3 버퍼(250c), 제3 프리 드라이버(260c), 제3 드라이버 회로(270c), 그리고 입출력 패드(280)를 포함할 수 있다. 추가적인 데이터 경로에 대한 설명은 도 4를 통해 상술된 설명과 유사하므로 중복된 설명을 생략한다.
이외의 설명은 도 5의 설명과 유사하므로 중복된 설명은 생략한다.
도 9은 몇몇 실시예들에 따른 도 8의 메모리 장치의 읽기 동작을 설명하기 위한 예시적인 타이밍도이다.
도 8 및 도 9을 참조하면, 제1 데이터 경로를 통해 전송되는 LSB 데이터(예를 들어, 제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))들과, 제2 데이터 경로를 통해 전송되는 MSB 데이터(예를 들어, 제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4))들과, 제3 데이터 경로를 통해 전송되는 CSB 데이터(예를 들어, 제1 CSB 데이터(CSB Data 1), 제2 CSB 데이터(CSB Data 2), 제3 CSB 데이터(CSB Data 3), 또는 제4 CSB 데이터(CSB Data 4))들이 각각의 데이터 경로에 배치된 에러 정정 블록을 통해 토글링되는 시점이 조정됨으로써, 각 분주 클럭 신호에 대응되는 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해 질 수 있다.
더 자세히는, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제1 LSB 데이터(LSB Data 1)를 피드백 받아 제1 LSB 데이터(LSB Data 1)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제1 MSB 데이터(MSB Data 1)를 피드백 받아 제1 MSB 데이터(MSB Data 1)가 전송되는 시점을 조정하고, 제3 데이터 경로에 배치된 제3 에러 정정 블록(230c)이, 제1 CSB 데이터(CSB Data 1)를 피드백 받아 제1 CSB 데이터(CSB Data 1)가 전송되는 시점을 조정함으로써, 제1 분주 클럭 신호(CLK 0)에 대응하는 제1 LSB 데이터(LSB Data 1)와 제1 MSB 데이터(MSB Data 1), 그리고 제1 CSB 데이터(CSB Data 1)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
또한, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제2 LSB 데이터(LSB Data 2)를 피드백 받아 제2 LSB 데이터(LSB Data 2)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제2 MSB 데이터(MSB Data 2)를 피드백 받아 제2 MSB 데이터(MSB Data 2)가 전송되는 시점을 조정하고, 제3 데이터 경로에 배치된 제3 에러 정정 블록(230c)이, 제2 CSB 데이터(CSB Data 2)를 피드백 받아 제2 CSB 데이터(CSB Data 2)가 전송되는 시점을 조정함으로써, 제2 분주 클럭 신호(CLK 90)에 대응하는 제2 LSB 데이터(LSB Data 2)와 제2 MSB 데이터(MSB Data 2), 그리고 제2 CSB 데이터(CSB Data 2)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
또한, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제3 LSB 데이터(LSB Data 3)를 피드백 받아 제3 LSB 데이터(LSB Data 3)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제3 MSB 데이터(MSB Data 3)를 피드백 받아 제3 MSB 데이터(MSB Data 3)가 전송되는 시점을 조정하고, 제3 데이터 경로에 배치된 제3 에러 정정 블록(230c)이, 제3 CSB 데이터(CSB Data 3)를 피드백 받아 제3 CSB 데이터(CSB Data 3)가 전송되는 시점을 조정함으로써, 제3 분주 클럭 신호(CLK 180)에 대응하는 제3 LSB 데이터(LSB Data 3)와 제3 MSB 데이터(MSB Data 3), 그리고 제3 CSB 데이터(CSB Data 3)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
또한, 제1 데이터 경로에 배치된 제1 에러 정정 블록(230a)이 제4 LSB 데이터(LSB Data 4)를 피드백 받아 제4 LSB 데이터(LSB Data 4)가 전송되는 시점을 조정하고, 제2 데이터 경로에 배치된 제2 에러 정정 블록(230b)이, 제4 MSB 데이터(MSB Data 4)를 피드백 받아 제4 MSB 데이터(MSB Data 4)가 전송되는 시점을 조정하고, 제3 데이터 경로에 배치된 제3 에러 정정 블록(230c)이, 제4 CSB 데이터(CSB Data 4)를 피드백 받아 제4 CSB 데이터(CSB Data 4)가 전송되는 시점을 조정함으로써, 제4 분주 클럭 신호(CLK 270)에 대응하는 제4 LSB 데이터(LSB Data 4)와 제4 MSB 데이터(MSB Data 4), 그리고 제4 CSB 데이터(CSB Data 4)의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 최대의 크기로 서로 동일해질 수 있다.
이외의 설명은 도 5를 통해 상술된 설명과 유사하므로, 설명을 생략한다.
도 10는 몇몇 실시예들에 따른 도 8의 메모리 장치의 동작을 설명하기 위한 예시적인 흐름도이다.
도 10는 도 6과는 달리, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b), 그리고 제3 에러 정정 블록(230c) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4)), CSB 데이터(제1 CSB 데이터(CSB Data 1), 제2 CSB 데이터(CSB Data 2), 제3 CSB 데이터(CSB Data 3), 또는 제4 CSB 데이터(CSB Data 4))의 각각의 분주 클럭 신호에 대응한 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 데이터 입출력 패드에서 합쳐져서 출력되는 출력의 아이 창이 최대의 크기가 되는지 판단한다(S310)는 점이 다르다.
만약, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4)), 그리고 CSB 데이터(제1 CSB 데이터(CSB Data 1), 제2 CSB 데이터(CSB Data 2), 제3 CSB 데이터(CSB Data 3), 또는 제4 CSB 데이터(CSB Data 4))의 각각의 분주 클럭 신호에 대응한 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 데이터 입출력 패드에서 합쳐져서 출력되는 출력의 아이 창이 최대의 크기라고 판단되면(Y) 피드백을 멈추고, 입출력 패드(280)를 통해 데이터를 전송한다.
그렇지 않고, 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b) 각각에서 에러 정정된 LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4)), 그리고 CSB 데이터(제1 CSB 데이터(CSB Data 1), 제2 CSB 데이터(CSB Data 2), 제3 CSB 데이터(CSB Data 3), 또는 제4 CSB 데이터(CSB Data 4))의 각각의 분주 클럭 신호에 대응한 데이터들의 아이 다이어그램(eye diagram)의 아이 창(eye window)의 크기가 데이터 입출력 패드에서 합쳐져서 출력되는 출력의 아이 창이 최대의 크기가 아니라고 판단되면(N) 다시 각각의 제1 에러 정정 블록(230a)과 제2 에러 정정 블록(230b)이, LSB 데이터(제1 LSB 데이터(LSB Data 1), 제2 LSB 데이터(LSB Data 2), 제3 LSB 데이터(LSB Data 3), 또는 제4 LSB 데이터(LSB Data 4))와 MSB 데이터(제1 MSB 데이터(MSB Data 1), 제2 MSB 데이터(MSB Data 2), 제3 MSB 데이터(MSB Data 3), 또는 제4 MSB 데이터(MSB Data 4)), 그리고 CSB 데이터(제1 CSB 데이터(CSB Data 1), 제2 CSB 데이터(CSB Data 2), 제3 CSB 데이터(CSB Data 3), 또는 제4 CSB 데이터(CSB Data 4)) 각각에 대한 에러 정정을 수행한다(S100).
도 11은 몇몇 실시예들에 따른 다른 메모리 장치의 인터페이스를 설명하기 위한 예시적인 블록도이다.
도 11은 도 7과 유사하게, 멀티-위상 클럭 생성기(210)와 클럭 멀티 플렉서(220) 사이에 연결된 제3 에러 정정 블록(235)이 더 추가될 수 있다.
그 외의 설명은 도 7 및 도 8을 통해 상술된 설명과 유사하므로 설명을 생략한다.
도 12는 몇몇 실시예들에 따른 메모리 장치가 적용된 다른 메모리 시스템을 설명하기 위한 예시적인 도면이다.
도 12를 참조하면, 몇몇 실시예들에 따른 메모리 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 12의 메모리 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용 장비(automotive device) 등이 될 수도 있다.
도 12를 참조하면, 메모리 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 메모리 시스템(1000)의 전반적인 동작, 보다 구체적으로는 메모리 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator) 블록(1130)을 더 포함할 수 있다. 이와 같은 가속기 블록(1130)은 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 메모리 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성(non-volatile memory, NVM) 스토리지(1320a, 1320b)를 포함할 수 있다. 비휘발성 스토리지(1320a, 1320b)는 2D(2-dimensional) 구조 혹은 3D(3-dimensional) 구조의 V-NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 메모리 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 메모리 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(universal flash storage)와 같은 표준 규약이 적용되는 장치일 수 있으나, 반드시 이에 한정되는 건 아니다.
촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 메모리 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keyboard), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(1430)는 메모리 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 메모리 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 메모리 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 메모리 시스템(1000)에 내장된 배터리(도시 안함) 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 메모리 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 메모리 시스템(1000)과, 메모리 시스템(1000)에 연결되어 메모리 시스템(1000)과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다. 연결 인터페이스(1480)는 도 1 내지 도 11을 통해 상술된 몇몇 실시예들에 따른 인터페이스일 수 있다.
도 13는 몇몇 실시예들에 따른 메모리 장치가 적용된 UFS 시스템을 설명하기 위한 예시적인 도면이다.
도 13는 본 발명의 일 실시예에 따른 UFS 시스템(2000)에 대해 설명하기 위한 도면이다. UFS 시스템(2000)은 JEDEC(Joint Electron Device Engineering Council)에서 발표하는 UFS 표준(standard)을 따르는 시스템으로서, UFS 호스트(2100), UFS 장치(2200) 및 UFS 인터페이스(2300)를 포함할 수 있다. 전술한 도 12의 메모리 시스템(1000)에 대한 설명은, 도 13에 대한 이하의 설명과 상충되지 않는 범위 내에서 도 13의 UFS 시스템(2000)에도 적용될 수 있다.
도 13를 참조하면, UFS 호스트(2100)와 UFS 장치(2200)는 UFS 인터페이스(2300)를 통해 상호 연결될 수 있다. 도 12의 메인 프로세서(1100)가 애플리케이션 프로세서일 경우, UFS 호스트(2100)는 해당 애플리케이션 프로세서의 일부로서 구현될 수 있다. UFS 호스트 컨트롤러(2110) 및 호스트 메모리(2140)는 도 12의 메인 프로세서(1100)의 컨트롤러(1120) 및 메모리(1200a, 1200b)에 각각 대응될 수 있다. UFS 장치(2200)는 도 12의 스토리지 장치(1300a, 1300b)에 대응될 수 있으며, UFS 장치 컨트롤러(2210) 및 비휘발성 스토리지(2220)는 도 12의 스토리지 컨트롤러(1310a, 1310b) 및 비휘발성 스토리지(1320a, 1320b)에 각각 대응될 수 있다.
UFS 호스트(2100)는 UFS 호스트 컨트롤러(2110), 애플리케이션(2120), UFS 드라이버(2130), 호스트 메모리(2140) 및 UIC(UFS interconnect) 레이어(2150)를 포함할 수 있다. UFS 장치(2200)는 UFS 장치 컨트롤러(2210), 비휘발성 스토리지(2220), 스토리지 인터페이스(2230), 장치 메모리(2240), UIC 레이어(2250) 및 레귤레이터(2260)를 포함할 수 있다. 비휘발성 스토리지(2220)는 복수의 스토리지 유닛(2221)으로 구성될 수 있으며, 이와 같은 스토리지 유닛(2221)은 2D 구조 혹은 3D 구조의 V-NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. UFS 장치 컨트롤러(2210)와 비휘발성 스토리지(2220)는 스토리지 인터페이스(2230)를 통해 서로 연결될 수 있다. 스토리지 인터페이스(2230)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
애플리케이션(2120)은 UFS 장치(2200)의 기능을 이용하기 위해 UFS 장치(2200)와의 통신을 원하는 프로그램을 의미할 수 있다. 애플리케이션(2120)은 UFS 장치(2200)에 대한 입출력을 위해 입출력 요청(input-output request, IOR)을 UFS 드라이버(2130)로 전송할 수 있다. 입출력 요청(IOR)은 데이터의 독출(read) 요청, 저장(write) 요청 및/또는 소거(discard) 요청 등을 의미할 수 있으나, 반드시 이에 한정되는 것은 아니다.
UFS 드라이버(2130)는 UFS-HCI(host controller interface)를 통해 UFS 호스트 컨트롤러(2110)를 관리할 수 있다. UFS 드라이버(2130)는 애플리케이션(2120)에 의해 생성된 입출력 요청을 UFS 표준에 의해 정의된 UFS 명령으로 변환하고, 변환된 UFS 명령을 UFS 호스트 컨트롤러(2110)로 전달할 수 있다. 하나의 입출력 요청은 복수의 UFS 명령으로 변환될 수 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의된 명령일 수 있지만, UFS 표준 전용 명령일 수도 있다.
UFS 호스트 컨트롤러(2110)는 UFS 드라이버(2130)에 의해 변환된 UFS 명령을 UIC 레이어(2150)와 UFS 인터페이스(2300)를 통해 UFS 장치(2200)의 UIC 레이어(2250)로 전송할 수 있다. 이 과정에서, UFS 호스트 컨트롤러(2110)의 UFS 호스트 레지스터(2111)는 명령 큐(command queue, CQ)로서의 역할을 수행할 수 있다.
UFS 호스트(2100) 측의 UIC 레이어(2150)는 MIPI M-PHY(2151)와 MIPI UniPro(2152)를 포함할 수 있으며, UFS 장치(2200) 측의 UIC 레이어(2250) 또한 MIPI M-PHY(2251)와 MIPI UniPro(2252)을 포함할 수 있다.
UFS 인터페이스(2300)는 기준 클락(REF_CLK)을 전송하는 라인, UFS 장치(2200)에 대한 하드웨어 리셋 신호(RESET_n)를 전송하는 라인, 차동 입력 신호 쌍(DIN_t와 DIN_c)을 전송하는 한 쌍의 라인 및 차동 출력 신호 쌍(DOUT_t와 DOUT_c)을 전송하는 한 쌍의 라인을 포함할 수 있다.
UFS 호스트(2100)로부터 UFS 장치(2200)로 제공되는 기준 클락의 주파수 값은 19.2MHz, 26MHz, 38.4MHz 및 52MHz의 네 개의 값 중 하나일 수 있으나, 반드시 이에 한정되지는 않는다. UFS 호스트(2100)는 동작 중에도, 즉 UFS 호스트(2100)와 UFS 장치(2200) 사이에서 데이터 송수신이 수행되는 중에도 기준 클락의 주파수 값을 변경할 수 있다. UFS 장치(2200)는 위상 동기 루프(phase-locked loop, PLL) 등을 이용하여, UFS 호스트(2100)로부터 제공받은 기준 클락으로부터 다양한 주파수의 클락을 생성할 수 있다. 또한, UFS 호스트(2100)는 기준 클락의 주파수 값을 통해 UFS 호스트(2100)와 UFS 장치(2200) 간의 데이터 레이트(data rate)의 값을 설정할 수도 있다. 즉, 상기 데이터 레이트의 값은 기준 클락의 주파수 값에 의존하여 결정될 수 있다.
UFS 인터페이스(2250)는 복수의 레인들(multiple lanes)을 지원할 수 있으며, 각 레인은 차동(differential) 쌍으로 구현될 수 있다. 예컨대, UFS 인터페이스는 하나 이상의 수신 레인(receive lane)과 하나 이상의 송신 레인(transmit lane)을 포함할 수 있다. 도 13에서, 차동 입력 신호 쌍(DIN_T와 DIN_C)을 전송하는 한 쌍의 라인은 수신 레인을, 차동 출력 신호 쌍(DOUT_T와 DOUT_C)을 전송하는 한 쌍의 라인은 송신 레인을 각각 구성할 수 있다. 도 13에서는 하나의 송신 레인과 하나의 수신 레인을 도시하였지만, 송신 레인과 수신 레인의 수는 변경될 수 있다. UFS 인터페이스(2250)는 도 1 내지 도 11을 통해 상술된 몇몇 실시예들에 따른 메모리 인터페이스일 수 있다.
수신 레인 및 송신 레인은 직렬 통신(serial communication) 방식으로 데이터를 전송할 수 있으며, 수신 레인과 송신 레인이 분리된 구조에 의해 UFS 호스트(2100)와 UFS 장치(2200) 간의 풀 듀플렉스(full-duplex) 방식의 통신이 가능하다. 즉, UFS 장치(2200)는 수신 레인을 통해 UFS 호스트(2100)로부터 데이터를 수신받는 동안에도, 송신 레인을 통해 UFS 호스트(2100)로 데이터를 송신할 수 있다. 또한, UFS 호스트(2100)로부터 UFS 장치(2200)로의 명령과 같은 제어 데이터와, UFS 호스트(2100)가 UFS 장치(2200)의 비휘발성 스토리지(2220)에 저장하고자 하거나 비휘발성 스토리지(2220)로부터 독출하고자 하는 사용자 데이터는 동일한 레인을 통해 전송될 수 있다. 이에 따라, UFS 호스트(2100)와 UFS 장치(2200) 간에는 한 쌍의 수신 레인과 한 쌍의 송신 레인 외에 데이터 전송을 위한 별도의 레인이 더 구비될 필요가 없다.
UFS 장치(2200)의 UFS 장치 컨트롤러(2210)는 UFS 장치(2200)의 동작을 전반적으로 제어할 수 있다. UFS 장치 컨트롤러(2210)는 논리적인 데이터 저장 단위인 LU(logical unit)(2211)를 통해 비휘발성 스토리지(2220)를 관리할 수 있다. LU(2211)의 개수는 8개일 수 있으나, 이에 한정되는 것은 아니다. UFS 장치 컨트롤러(2210)는 플래시 변환 계층(flash translation layer, FTL)을 포함할 수 있으며, FTL의 어드레스 매핑(address mapping) 정보를 이용하여 UFS 호스트(2100)로부터 전달된 논리적인 데이터 주소, 예컨대 LBA(logical block address)를 물리적인 데이터 주소로, 예컨대 PBA(physical block address)로 변환할 수 있다. UFS 시스템(2000)에서 사용자 데이터(user data)의 저장을 위한 논리 블록(logical block)은 소정 범위의 크기를 가질 수 있다. 예컨대, 논리 블록의 최소 크기는 4Kbyte로 설정될 수 있다.
UFS 호스트(2100)로부터의 명령이 UIC 레이어(2250)를 통해 UFS 장치(2200)로 입력되면, UFS 장치 컨트롤러(2210)는 입력된 명령에 따른 동작을 수행하고, 상기 동작이 완료되면 완료 응답을 UFS 호스트(2100)로 전송할 수 있다.
일례로서, UFS 호스트(2100)가 UFS 장치(2200)에 사용자 데이터를 저장하고자 할 경우, UFS 호스트(2100)는 데이터 저장 명령을 UFS 장치(2200)로 전송할 수 있다. 사용자 데이터를 전송받을 준비가 되었다(ready-to-transfer)는 응답을 UFS 장치(2200)로부터 수신하면, UFS 호스트(2100)는 사용자 데이터를 UFS 장치(2200)로 전송할 수 있다. UFS 장치 컨트롤러(2210)는 전송받은 사용자 데이터를 장치 메모리(2240) 내에 임시로 저장하고, FTL의 어드레스 매핑 정보에 기초하여 장치 메모리(2240)에 임시로 저장된 사용자 데이터를 비휘발성 스토리지(2220)의 선택된 위치에 저장할 수 있다.
또 다른 예로서, UFS 호스트(2100)가 UFS 장치(2200)에 저장된 사용자 데이터를 독출하고자 할 경우, UFS 호스트(2100)는 데이터 독출 명령을 UFS 장치(2200)로 전송할 수 있다. 명령을 수신한 UFS 장치 컨트롤러(2210)는 상기 데이터 독출 명령에 기초하여 비휘발성 스토리지(2220)로부터 사용자 데이터를 독출하고, 독출된 사용자 데이터를 장치 메모리(2240) 내에 임시로 저장할 수 있다. 이러한 독출 과정에서, UFS 장치 컨트롤러(2210)는 내장된 ECC(error correction code) 회로(미도시)를 이용하여, 독출된 사용자 데이터의 에러를 검출하고 정정할 수 있다. 그리고, UFS 장치 컨트롤러(2210)는 장치 메모리(2240) 내에 임시로 저장된 사용자 데이터를 UFS 호스트(2100)로 전송할 수 있다. 아울러, UFS 장치 컨트롤러(2210)는 AES(advanced encryption standard) 회로(미도시)를 더 포함할 수 있으며, AES 회로는 UFS 장치 컨트롤러(2210)로 입력되는 데이터를 대칭 키 알고리즘(symmetric-key algorithm)을 이용하여 암호화(encryption)하거나 복호화(decryption)할 수 있다.
UFS 호스트(2100)는 명령 큐로 기능할 수 있는 UFS 호스트 레지스터(2111)에 UFS 장치(2200)로 송신될 명령들을 순서에 따라 저장하고, 상기 순서대로 UFS 장치(2200)에 명령을 송신할 수 있다. 이 때, UFS 호스트(2100)는 이전에 송신된 명령이 아직 UFS 장치(2200)에 의해 처리 중인 경우에도, 즉 이전에 송신된 명령이 UFS 장치(2200)에 의해 처리가 완료되었다는 통지를 받기 전에도 명령 큐에 대기 중인 다음 명령을 UFS 장치(2200)로 송신할 수 있으며, 이에 따라 UFS 장치(2200) 역시 이전에 송신된 명령을 처리하는 중에도 다음 명령을 UFS 호스트(2100)로부터 수신할 수 있다. 이와 같은 명령 큐에 저장될 수 있는 명령의 최대 개수(queue depth)는 예컨대 32개일 수 있다. 또한, 명령 큐는 헤드 포인터(head point)와 테일 포인터(tail pointer)를 통해 큐에 저장된 명령 열의 시작과 끝을 각각 나타내는 원형 큐(circular queue) 타입으로 구현될 수 있다.
복수의 스토리지 유닛(2221) 각각은 메모리 셀 어레이(미도시)와 상기 메모리 셀 어레이의 작동을 제어하는 제어 회로(미도시)를 포함할 수 있다. 상기 메모리 셀 어레이는 2차원 메모리 셀 어레이 또는 3차원 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 셀을 포함하며, 각각의 메모리 셀은 1비트의 정보를 저장하는 셀(single level cell, SLC)일 수도 있지만, MLC(multi level cell), TLC(triple level cell), QLC(quadruple level cell)와 같이 2비트 이상의 정보를 저장하는 셀일 수도 있다. 3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다.
UFS 장치(2200)에는 전원 전압으로서 VCC, VCCQ, VCCQ2 등이 입력될 수 있다. VCC는 UFS 장치(2200)를 위한 주 전원 전압으로서, 2.4~3.6V의 값을 가질 수 있다. VCCQ는 낮은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 UFS 장치 컨트롤러(2210)를 위한 것이며. 1.14~1.26V의 값을 가질 수 있다. VCCQ2는 VCC보다는 낮지만 VCCQ보다는 높은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 MIPI M-PHY(2251)와 같은 입출력 인터페이스를 위한 것이며, 1.7~1.95V의 값을 가질 수 있다. 상기 전원 전압들은 레귤레이터(2260)를 거쳐 UFS 장치(2200)의 각 구성 요소들을 위해 공급될 수 있다. 레귤레이터(2260)는 전술한 전원 전압들 중 서로 다른 것에 각각 연결되는 단위 레귤레이터의 집합으로 구현될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 메모리 장치 200: 메모리 인터페이스 210: 멀티-위상 클럭 생성기 230a: 제1 에러 정정 블록 230b: 제2 에러 정정 블록 235: 제3 에러 정정 블록

Claims (20)

  1. 복수의 분주 클럭 신호들을 생성하는 멀티-위상 클럭 생성기;
    상기 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 수신하는 제1 에러 정정 블록;
    상기 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하는 제1 데이터 멀티 플렉서;
    상기 제1 분주 클럭 신호를 수신하는 제2 에러 정정 블록; 및
    상기 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 제2 데이터 멀티 플렉서를 포함하되,
    상기 제1 에러 정정 블록은 상기 제1 LSB 데이터를 수신하여 상기 제1 LSB 데이터의 토글 시점을 정정하고, 상기 제2 에러 정정 블록은 상기 제1 MSB 데이터를 수신하여 상기 제1 MSB 데이터의 토글 시점을 정정하는 메모리 장치.
  2. 제 1항에 있어서,
    상기 제1 에러 정정 블록 및/또는 상기 제2 에러 정정 블록은 쿼드 에러 정정(QEC: Quadrature Error Correction) 회로를 포함하는 메모리 장치.
  3. 제 1항에 있어서,
    상기 제1 에러 정정 블록 및/또는 상기 제2 에러 정정 블록은 듀티 사이클 정정(DCC: Duty Cycle Correction) 회로를 포함하는 메모리 장치.
  4. 제 1항에 있어서,
    상기 멀티-위상 클럭 생성기와 연결되며, 상기 멀티-위상 클럭 생성기로부터 상기 복수의 분주 클럭 신호들을 수신받는 프리(pre) 에러 정정 블록을 더 포함하는 메모리 장치.
  5. 제 4항에 있어서,
    상기 프리(pre) 에러 정정 블록은 상기 복수의 분주 클럭 신호들 중 적어도 일부의 듀티 에러(Duty error)를 정정하는 메모리 장치.
  6. 제 1항에 있어서,
    상기 제1 분주 클럭 신호를 수신하는 제3 에러 정정 블록; 및
    상기 제1 분주 클럭 신호에 대응하는 제1 CSB 데이터를 전송하는 제3 데이터 멀티 플렉서를 더 포함하는 메모리 장치.
  7. 제 6항에 있어서,
    상기 제3 에러 정정 블록은 상기 제1 CSB 데이터를 수신하여 상기 제1 CSB 데이터의 토글 시점을 정정하는 메모리 장치.
  8. 메모리 인터페이스;
    상기 메모리 인터페이스로부터 명령을 수신받는 제어 로직 회로; 및
    상기 제어 로직 회로에 의해 제어되며, 데이터를 저장하는 메모리 셀 어레이를 포함하되,
    상기 메모리 인터페이스는,
    멀티-위상 클럭 생성기를 통해, 복수의 분주 클럭 신호들을 생성하고,
    상기 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 제1 에러 정정 블록이 수신하고,
    제1 데이터 멀티 플렉서를 통해, 상기 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하고,
    상기 제1 분주 클럭 신호를 제2 에러 정정 블록이 수신하고,
    제2 데이터 멀티 플렉서를 통해, 상기 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 것을 포함하되,
    상기 제1 에러 정정 블록은 상기 제1 LSB 데이터를 수신하여 상기 제1 LSB 데이터의 토글 시점을 정정하고, 상기 제2 에러 정정 블록은 상기 제1 MSB 데이터를 수신하여 상기 제1 MSB 데이터의 토글 시점을 정정하는 메모리 장치.
  9. 제 8항에 있어서,
    상기 제1 에러 정정 블록 및/또는 상기 제2 에러 정정 블록은 쿼드 에러 정정(QEC: Quadrature Error Correction) 회로를 포함하는 메모리 장치.
  10. 제 8항에 있어서,
    상기 제1 에러 정정 블록 및/또는 상기 제2 에러 정정 블록은 듀티 사이클 정정(DCC: Duty Cycle Correction) 회로를 포함하는 메모리 장치.
  11. 제 8항에 있어서,
    상기 멀티-위상 클럭 생성기와 연결되며, 상기 멀티-위상 클럭 생성기로부터 상기 복수의 분주 클럭 신호들을 수신받는 프리(pre) 에러 정정 블록을 더 포함하는 메모리 장치.
  12. 제 11항에 있어서,
    상기 프리(pre) 에러 정정 블록은 상기 복수의 분주 클럭 신호들 중 적어도 일부의 듀티 에러(Duty error)를 정정하는 메모리 장치.
  13. 제 8항에 있어서,
    상기 제1 분주 클럭 신호를 수신하는 제3 에러 정정 블록; 및
    상기 제1 분주 클럭 신호에 대응하는 제1 CSB 데이터를 전송하는 제3 데이터 멀티 플렉서를 더 포함하는 메모리 장치.
  14. 제 13항에 있어서,
    상기 제3 에러 정정 블록은 상기 제1 CSB 데이터를 수신하여 상기 제1 CSB 데이터의 토글 시점을 정정하는 메모리 장치.
  15. 컨트롤러 인터페이스 회로를 포함하는 메모리 컨트롤러; 및
    상기 메모리 컨트롤러로부터 신호를 수신받는 메모리 인터페이스와, 상기 메모리 인터페이스로부터 명령을 수신받는 제어 로직 회로와, 그리고 데이터를 저장하며 상기 제어 로직 회로와 연결되는 메모리 셀 어레이를 포함하는 메모리 장치를 포함하되,
    상기 메모리 인터페이스는,
    복수의 분주 클럭 신호들을 생성하는 멀티-위상 클럭 생성기;
    상기 복수의 분주 클럭 신호들 중 제1 분주 클럭 신호를 수신하는 제1 에러 정정 블록;
    상기 제1 분주 클럭 신호에 대응하는 제1 LSB 데이터를 전송하는 제1 데이터 멀티 플렉서;
    상기 제1 분주 클럭 신호를 수신하는 제2 에러 정정 블록; 및
    상기 제1 분주 클럭 신호에 대응하는 제1 MSB 데이터를 전송하는 제2 데이터 멀티 플렉서를 포함하되,
    상기 제1 에러 정정 블록은 상기 제1 LSB 데이터를 수신하여 상기 제1 LSB 데이터의 토글 시점을 정정하고, 상기 제2 에러 정정 블록은 상기 제1 MSB 데이터를 수신하여 상기 제1 MSB 데이터의 토글 시점을 정정하는 메모리 시스템.
  16. 제 15항에 있어서,
    상기 제1 에러 정정 블록 및/또는 상기 제2 에러 정정 블록은 쿼드 에러 정정(QEC: Quadrature Error Correction) 회로를 포함하는 메모리 시스템.
  17. 제 15항에 있어서,
    상기 제1 에러 정정 블록 및/또는 상기 제2 에러 정정 블록은 듀티 사이클 정정(DCC: Duty Cycle Correction) 회로를 포함하는 메모리 시스템.
  18. 제 15항에 있어서,
    상기 멀티-위상 클럭 생성기와 연결되며, 상기 멀티-위상 클럭 생성기로부터 상기 복수의 분주 클럭 신호들을 수신받는 프리(pre) 에러 정정 블록을 더 포함하는 메모리 시스템.
  19. 제 18항에 있어서,
    상기 프리(pre) 에러 정정 블록은 상기 복수의 분주 클럭 신호들 중 적어도 일부의 듀티 에러(Duty error)를 정정하는 메모리 시스템.
  20. 제 15항에 있어서,
    상기 제1 분주 클럭 신호를 수신하는 제3 에러 정정 블록; 및
    상기 제1 분주 클럭 신호에 대응하는 제1 CSB 데이터를 전송하는 제3 데이터 멀티 플렉서를 더 포함하되,
    상기 제3 에러 정정 블록은 상기 제1 CSB 데이터를 수신하여 상기 제1 CSB 데이터의 토글 시점을 정정하는 메모리 시스템.
KR1020200142873A 2020-10-30 2020-10-30 메모리 장치 및 시스템 KR20220057820A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200142873A KR20220057820A (ko) 2020-10-30 2020-10-30 메모리 장치 및 시스템
EP21187134.8A EP3992968A1 (en) 2020-10-30 2021-07-22 Memory system with multiphase clock generator and duty cycle correction
US17/398,158 US11461176B2 (en) 2020-10-30 2021-08-10 Memory device and memory system
CN202111200481.7A CN114446376A (zh) 2020-10-30 2021-10-14 存储器设备和存储器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200142873A KR20220057820A (ko) 2020-10-30 2020-10-30 메모리 장치 및 시스템

Publications (1)

Publication Number Publication Date
KR20220057820A true KR20220057820A (ko) 2022-05-09

Family

ID=77042717

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200142873A KR20220057820A (ko) 2020-10-30 2020-10-30 메모리 장치 및 시스템

Country Status (4)

Country Link
US (1) US11461176B2 (ko)
EP (1) EP3992968A1 (ko)
KR (1) KR20220057820A (ko)
CN (1) CN114446376A (ko)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6552619B2 (en) * 2001-02-05 2003-04-22 Pmc Sierra, Inc. Multi-channel clock recovery circuit
JP2008160610A (ja) 2006-12-26 2008-07-10 Nec Electronics Corp クロックデューティ変更回路
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
WO2012145117A2 (en) * 2011-04-22 2012-10-26 Rambus Inc. Memory components and controllers that calibrate multiphase synchronous timing references
KR20130015460A (ko) * 2011-08-03 2013-02-14 에스케이하이닉스 주식회사 반도체 장치의 카운팅 회로 및 이를 이용한 반도체 장치의 듀티 보정 회로
US9444442B2 (en) 2013-03-06 2016-09-13 Rambus Inc. Open-loop correction of duty-cycle error and quadrature phase error
DE112013007457B4 (de) * 2013-11-19 2018-09-27 Intel Corporation Taktkalibrierung unter Verwendung eines asynchronen digitalen Abtastens
US9559877B1 (en) 2015-10-23 2017-01-31 Inphi Corporation System and method for adjusting clock phases in a time-interleaved receiver
US9559880B1 (en) 2016-03-04 2017-01-31 Inphi Corporation Eye modulation for pulse-amplitude modulation communication systems
US10277435B2 (en) 2017-08-07 2019-04-30 Micron Technology, Inc. Method to vertically align multi-level cells
US10680592B2 (en) 2017-10-19 2020-06-09 Xilinx, Inc. Quadrature clock correction circuit for transmitters
US10784845B2 (en) 2018-09-27 2020-09-22 Macom Technology Solutions Holdings, Inc. Error detection and compensation for a multiplexing transmitter

Also Published As

Publication number Publication date
US11461176B2 (en) 2022-10-04
US20220138045A1 (en) 2022-05-05
EP3992968A1 (en) 2022-05-04
CN114446376A (zh) 2022-05-06

Similar Documents

Publication Publication Date Title
US9792173B2 (en) Interface control circuit, memory system, and method of controlling an interface control circuit
US10360959B2 (en) Adjusting instruction delays to the latch path in DDR5 DRAM
US9640232B2 (en) Semiconductor systems and semiconductor devices
EP3249542A1 (en) Memory module, memory controller and associated control method for read training technique
US11217298B2 (en) Delay-locked loop clock sharing
WO2019036072A1 (en) DATA OUTPUT FOR HIGH FREQUENCY DOMAIN
US11874695B2 (en) Storage device and storage system including the same
WO2019045786A1 (en) SYSTEMS AND METHODS FOR DATA PATH ENERGY SAVINGS IN DDR5 MEMORY DEVICES
US20230401008A1 (en) Command address input buffer bias current reduction
US20220222011A1 (en) Processor using host memory buffer and storage system including the processor
US20240029768A1 (en) Offset calibration training method for adjusting data receiver offset and memory device therefor
WO2019022804A1 (en) DYNAMIC TERMINATION EDGE CONTROL
US10256795B1 (en) Pipelined latches to prevent metastability
KR20220057820A (ko) 메모리 장치 및 시스템
US10249353B2 (en) Memory controller with phase adjusted clock for performing memory operations
US20240046975A1 (en) Memory module adjusting inter-rank clock timing, memory system and training method thereof
US20220358061A1 (en) Unmatched architecture compensation via digital component delay
US20230395105A1 (en) Synchronous input buffer enable for dfe operation
KR20240019004A (ko) 랭크간 타이밍을 조정하는 메모리 모듈, 메모리 시스템, 그리고 그것의 트레이닝 방법
KR20230077952A (ko) 반도체 장치
KR20240007016A (ko) 레지스터 클럭 드라이버, 레지스터 클럭 드라이버의 동작 방법, 및 레지스터 클럭 드라이버 및 복수의 메모리 장치들을 포함하는 메모리 모듈
CN117524277A (zh) 存储器模块、其训练方法和存储器系统
CN117594079A (zh) 与时钟之间的同步相关的半导体器件和半导体系统
WO2019108278A1 (en) Power reduction technique during write bursts
KR20150001946A (ko) 순환 중복 검사 회로를 갖는 반도체 장치 및 메모리 시스템

Legal Events

Date Code Title Description
A201 Request for examination