KR20230169733A - 메모리 장치 동작 방법 - Google Patents

메모리 장치 동작 방법 Download PDF

Info

Publication number
KR20230169733A
KR20230169733A KR1020220070226A KR20220070226A KR20230169733A KR 20230169733 A KR20230169733 A KR 20230169733A KR 1020220070226 A KR1020220070226 A KR 1020220070226A KR 20220070226 A KR20220070226 A KR 20220070226A KR 20230169733 A KR20230169733 A KR 20230169733A
Authority
KR
South Korea
Prior art keywords
memory device
memory
read
slc
data
Prior art date
Application number
KR1020220070226A
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 KR1020220070226A priority Critical patent/KR20230169733A/ko
Priority to CN202310031798.5A priority patent/CN117219144A/zh
Priority to US18/101,232 priority patent/US20230400992A1/en
Publication of KR20230169733A publication Critical patent/KR20230169733A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)

Abstract

일 실시예에 따른 메모리 장치 동작 방법은, 제1 동작에 대한 제1 설정 동작을 수행하는 단계; 상기 제1 설정 동작에 기반하여 맵 데이터를 독출하는 단계; 및 상기 맵 데이터를 독출한 후에, 제2 동작에 대한 제2 설정 동작을 수행하는 단계를 포함한다.

Description

메모리 장치 동작 방법{OPERATING METHOD OF MEMORY DEVICE}
개시 내용은 메모리 장치 동작 방법에 관한 것이다.
메모리 시스템은 데이터를 기록하고 필요할 때 이를 읽을 수 있는 기억 장치이며, 데이터가 기록되는 메모리 장치와, 메모리 장치의 전반적인 동작을 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 전원이 공급되지 않더라도 저장된 데이터가 소멸하지 않는 비휘발성 메모리(nonvolatile memory, NVM)와, 전원이 공급되지 않으면 저장된 데이터가 소멸하는 휘발성 메모리(volatile memory, VM)를 포함할 수 있다.
최근 메모리 장치의 집적도를 향상시키기 위한 연구로 인해 메모리 장치의 고밀도화 및 대용량화가 가능해지고 있으나, 동시에 메모리 장치의 초기화 및 설정 동작을 위한 시간도 증가하고 있다.
일 실시예는 부팅 시간이 단축된 메모리 시스템을 제공하고자 한다.
일 실시예는 부팅 시 전력을 절약하는 메모리 시스템을 제공하고자 한다.
일 실시예는 전력 관리 모드에서 부팅 시간이 개선된 메모리 시스템을 제공하고자 한다.
이러한 기술적 과제를 해결하기 위한 일 실시예에 따른 메모리 장치 동작 방법은, 제1 동작에 대한 제1 설정 동작을 수행하는 단계; 상기 제1 설정 동작에 기반하여 맵(map) 데이터를 독출하는 단계; 및 상기 맵 데이터를 독출한 후에, 제2 동작에 대한 제2 설정 동작을 수행하는 단계를 포함할 수 있다.
상기 제1 동작은 독출 동작을 포함할 수 있다.
상기 독출 동작은 SLC 독출이고, 상기 제2 동작은 상기 SLC 독출을 제외한 메모리 동작을 포함할 수 있다.
상기 SLC 독출을 제외한 메모리 동작은, SLC 프로그램, SLC 소거, 및 멀티 비트(multi-bit) 기반의 독출, 프로그램, 및 소거를 포함할 수 있다.
상기 제1 설정 동작을 수행하는 단계는, 방어 코드를 독출하는 단계를 포함하고, 상기 메모리 장치 동작 방법은, 독출 동작 시 UECC(Uncorrectable Error Correction Code)가 발생한 경우 상기 방어 코드를 사용하여 데이터를 독출하는 단계를 더 포함할 수 있다.
상기 제1 동작은 메인 펌웨어 코드(main firmware code)가 기록된 칩에 대한 SLC 독출 동작을 포함하고, 상기 메모리 장치 동작 방법은, 상기 맵 데이터를 독출하는 단계 이전에, 메모리 셀 어레이에 기록된 부트로더(boot-loader) 코드를 SLC 독출함으로써 부트로더를 실행하는 단계; 및 상기 부트로더가 상기 메인 펌웨어 코드를 실행하는 단계를 더 포함할 수 있다.
상기 부트로더를 실행하는 단계는, 상기 메모리 장치의 롬(ROM)에 기록된 롬 코드(ROM code)를 독출하여 상기 메모리 셀 어레이에 기록된 상기 부트로더 코드를 SLC 독출하는 단계를 포함할 수 있다.
상기 메모리 장치 동작 방법은, 상기 메인 펌웨어 코드를 실행하는 단계 이후에, SLC 프로그램 및 SLC 소거에 대한 제3 설정 동작을 수행하는 단계를 더 포함하고, 상기 제2 동작은 멀티 비트 기반의 독출, 프로그램, 및 소거를 포함할 수 있다.
상기 제1 설정 동작을 수행하는 단계 이전에, 상기 메모리 장치에 급작스러운 전원 오프(Sudden Power Off, SPO)가 발생한 후 메모리 장치의 전원을 켜는 단계를 더 포함하고, 상기 제1 동작은 SLC 독출, SLC 프로그램, 및 SLC 소거를 포함할 수 있다.
상기 제2 동작은 멀티 비트 기반의 독출, 프로그램, 및 소거를 포함할 수 있다.
상기 우선적으로 필요한 제1 동작에 대한 제1 설정 동작을 수행하는 단계는, 메모리 셀 어레이에서 상기 제1 동작을 위한 설정 데이터를 독출하여 페이지 버퍼에 저장하는 단계; 상기 페이지 버퍼에 저장된 설정 데이터의 유효성을 검증하는 단계; 및 유효성 검증을 통과한 설정 데이터를 버퍼에 저장하는 단계를 포함할 수 있다.
상기 페이지 버퍼에 저장된 설정 데이터의 유효성을 검증하는 단계는, 상기 설정 데이터의 각 비트를 n개 비트로 복제 및 확장하여 메모리 셀 어레이에 기록하는 단계; 및 상기 페이지 버퍼에 저장된 설정 데이터가 상기 n개 비트 중 기준 수 이상의 비트와 일치하는 경우, 유효성 검증을 통과하는 단계를 포함하고, n은 1보다 큰 정수일 수 있다.
상기 기준 수는 0.75*n일 수 있다.
상기 제1 동작은 비-PIR(Plane Independent Read) 동작을 포함하고, 상기 제2 동작은 PIR 동작을 포함할 수 있다.
일 실시예에 따른 메모리 장치 동작 방법은 전력 관리 모드(power management mode)에서 커맨드를 수신하는 단계; 상기 커맨드의 타입을 결정하는 단계; 상기 커맨드의 타입에 따른 제1 동작에 대한 제1 설정 동작을 수행하는 단계; 맵 데이터를 독출하는 단계; 및 상기 맵 데이터를 사용하여 상기 커맨드에 따른 요청을 처리하는 단계를 포함할 수 있다.
상기 커맨드의 타입에 따른 제1 동작에 대한 제1 설정 동작을 수행하는 단계는, 메모리 셀 어레이에서 상기 제1 동작을 위한 설정 데이터를 독출하여 페이지 버퍼에 저장하는 단계; 상기 페이지 버퍼에 저장된 설정 데이터의 유효성을 검증하는 단계; 및 유효성 검증을 통과한 설정 데이터를 버퍼에 저장하는 단계를 포함할 수 있다.
상기 메모리 장치 동작 방법은, 상기 맵 데이터를 사용하여 상기 커맨드에 따른 요청을 처리하는 단계 이후에, 제2 동작에 대한 제2 설정 동작을 수행하는 단계를 더 포함할 수 있다.
상기 방법은, 전력 관리 모드로 진입하라는 커맨드를 수신하는 단계; 및 상기 메모리 장치의 전원을 끄는 단계를 더 포함할 수 있다.
일 실시예에 따른 메모리 시스템은, 메모리 장치; 및 상기 메모리 장치에서 맵 데이터가 저장되어 있는 영역을 결정하고, 상기 맵 데이터가 저장된 영역에 대해 제1 설정 동작을 수행하고 상기 제1 설정 동작에 기초해서 상기 맵 데이터를 독출하고, 상기 맵 데이터를 독출한 후에, 상기 맵 데이터가 저장되지 않은 영역에 대해 제2 설정 동작을 수행하도록 구성되는 메모리 컨트롤러를 포함할 수 있다.
상기 영역은, 상기 메모리 장치의 다이(die) 또는 플레인(plane)일 수 있다.
도 1은 일 실시예에 따른 컴퓨팅 시스템의 개략적인 블록도이다.
도 2는 도 1에 도시된 메모리 장치를 설명하기 위한 개략적인 블록도이다.
도 3은 도 2에 도시된 메모리 셀 어레이를 설명하기 위한 개략적인 도면이다.
도 4는 도 3에 도시된 제1 메모리 블록의 등가 회로를 나타내는 회로도이다.
도 5는 일 실시예에 따른 메모리 장치의 초기화 및 설정 시간을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 메모리 장치의 초기화 및 설정 시간을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 커맨드 시퀀스의 일 예를 나타낸다.
도 8은 일 실시예에 따른 커맨드 시퀀스의 다른 예를 나타낸다.
도 9는 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 10은 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 11은 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 12는 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 13은 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 14는 일 실시예에 따른 컴퓨팅 시스템의 개략적인 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.
또한, 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다. 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 구성요소는 이러한 용어에 의해 한정되지는 않는다. 이들 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다.
도 1은 일 실시예에 따른 컴퓨팅 시스템의 개략적인 블록도이고, 도 2는 도 1에 도시된 메모리 장치를 설명하기 위한 개략적인 블록도이고, 도 3은 도 2에 도시된 메모리 셀 어레이를 설명하기 위한 개략적인 도면이고, 도 4는 도 3에 도시된 제1 메모리 블록의 등가 회로를 나타내는 회로도이다.
도 1을 참조하면, 컴퓨팅 시스템(computing system; 5)은 호스트(Host; 10) 및 메모리 시스템(memory system; 20)을 포함할 수 있다. 호스트(10)는 다양한 인터페이스를 통하여 메모리 시스템(20)과 통신할 수 있다. 호스트(10)는 메모리 시스템(20)에 데이터 처리 동작, 예를 들어, 데이터 독출 동작, 데이터 기록(프로그램) 동작, 및 데이터 소거 동작 등을 요청할 수 있다. 예를 들어, 호스트(10)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 또는 어플리케이션 프로세서(Application Processor, AP) 등일 수 있다.
컴퓨팅 시스템(5)은 PC(Personal Computer) 또는 데이터 서버, 랩탑(laptop) 컴퓨터 또는 휴대용 장치로 구현될 수 있다. 휴대용 장치는 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(Personal Navigation Device 또는 Portable Navigation Device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다. 또한, 컴퓨팅 시스템(5)은 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수도 있다.
메모리 시스템(20)은 메모리 장치(memory device; 100) 및 메모리 컨트롤러(memory controller; 200)를 포함할 수 있다. 메모리 시스템(20)은 솔리드-스테이트 드라이브(Solid-State Drive, SSD), 임베디드 멀티미디어 카드(embedded MultiMedia Card, eMMC), 유니버셜 플래시 스토리지(Universal Flash Storage, UFS), 또는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 종류의 저장 장치로 구현될 수 있다.
메모리 컨트롤러(200)는 호스트(10)로부터의 요청에 응답하여, 메모리 장치(100)에 액세스할 수 있다. 메모리 컨트롤러(200)는 메모리 장치(100) 및 호스트(10) 사이에 인터페이스를 제공하도록 구성될 수 있다. 또한, 메모리 컨트롤러(200)는 메모리 장치(100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성될 수도 있다.
메모리 컨트롤러(200)는 메모리 장치(100)의 동작을 제어할 수 있다. 구체적으로, 메모리 컨트롤러(200)는 메모리 장치(100)와 연결된 입출력 라인을 따라 주소(ADDR), 커맨드(CMD), 데이터(DATA), 제어 신호(CTRL), 및 파워(PWR) 중 적어도 하나를 제공할 수 있다.
메모리 컨트롤러(200)는 주소(ADDR), 커맨드(CMD), 제어 신호(CTRL), 및 파워(PWR) 중 적어도 하나를 사용하여 메모리 장치(100)에 데이터를 기록 또는 소거하거나, 또는 메모리 장치(100)로부터 데이터를 독출할 수 있다. 제어 신호(CTRL)는 칩 인에이블(CE), 라이트 인에이블(WE), 리드 인에이블(RE) 등을 포함할 수 있다.
메모리 장치(100)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND, VNAND), 노어 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory, RRAM), 상변화 메모리(Phase-Change Memory, PRAM), 자기저항 메모리(Magneto resistive Random Access Memory, MRAM), 강유전체 메모리(Ferroelectric Random Access Memory, FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory, STT-RAM) 등과 같은 비휘발성 메모리 장치일 수 있다.
도 2를 참조하면, 메모리 장치(100)는 메모리 셀 어레이(memory cell array; 110), 전압 생성기(voltage generator; 120), 로우 디코더(row decoder; 130), 페이지 버퍼(page buffer; 140), 입출력 회로(I/O circuit; 150), 및 제어 로직(control logic; 160)을 포함할 수 있다.
도 3을 참조하면, 메모리 셀 어레이(110)는 복수의 메모리 블록(blk1~BLKn)을 포함할 수 있다. 복수의 메모리 블록(blk1~BLKn) 각각은 워드라인(wordline, WL), 스트링 선택 라인(String Select Line, SSL), 및 접지 선택 라인(Ground Select Line, GSL)을 통해 로우 디코더(130)에 접속되고, 비트라인(bitline, BL)을 통해 페이지 버퍼(140)에 접속될 수 있다.
메모리 셀 어레이(110)는 복수의 워드라인(WL)과 복수의 비트라인(BL)이 교차하는 영역들에 배치되는 복수의 메모리 셀을 포함할 수 있다. 메모리 셀 각각은 SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell), QLC(Quad Level Cell) 등과 같은 셀 타입으로 형성될 수 있다.
복수의 메모리 블록(blk1~BLKn) 각각은 기판 상에 삼차원 구조로 형성될 수 있다. 예를 들어, 복수의 메모리 블록(blk1~BLKn) 각각에 포함되는 복수의 메모리 낸드 스트링(NS11~NS33)은 기판과 수직한 방향(D1)으로 형성될 수 있다. 기판의 상면은 방향(D2) 및 방향(D3)과 수직할 수 있다.
도 4를 참조하면, 제1 메모리 블록(BLK1)은 복수의 비트라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링(NS11~NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀(MCs), 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 도 4에서 복수의 비트라인(BL1~BL3)이 3개이고, 복수의 메모리 낸드 스트링(NS11~NS33)이 9개이고, 복수의 메모리 낸드 스트링(NS11~NS33) 각각이 8개의 메모리 셀(MCs)을 포함하는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니고, 실시예에 따라 다른 개수로 구현될 수도 있다.
스트링 선택 트랜지스터(SST)의 게이트는 상응하는 스트링 선택 라인(SSL1~SSL3)에 연결될 수 있다. 복수의 메모리 셀(MCs)은 각각 상응하는 워드라인(WL1~WL8)에 연결될 수 있다. 워드라인(WL1~WL8)은 게이트 라인에 해당할 수 있다. 접지 선택 트랜지스터(GST)의 게이트는 상응하는 접지 선택 라인(GSL1~GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트라인(BL1~BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다.
제1 메모리 블록(BLK1)에서 동일 높이의 워드 라인(예를 들어, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1~GSL3) 및 스트링 선택 라인(SSL1~SSL3)은 각각 분리될 수 있다.
도 2를 다시 참조하면, 메모리 셀 어레이(110)는 적어도 제1 영역(111) 및 제2 영역(112)을 포함할 수 있다. 제1 영역(111) 및 제2 영역(112)의 구분은 물리적인 구분이 아니라 가변적이고 논리적인 구분일 수 있다. 예를 들어, 메모리 컨트롤러(200)는 제1 메모리 블록(BLK1)을 제1 영역(111)으로 지정하고, 나머지 메모리 블록들(BLK2~BLKn)을 제2 영역(112)으로 지정할 수 있다. 이후에, 메모리 컨트롤러(200)는 호스트(10)의 명령에 따라 또는 필요에 따라 제1 메모리 블록(BLK1) 및 제2 메모리 블록(BLK2)을 제1 영역(111)으로 지정하고, 나머지 메모리 블록들(BLK3~BLKn)을 제2 영역(112)으로 지정하는 등 각 영역에 속한 메모리 블록을 지정하고 변경할 수 있다.
제1 영역(111)에 속한 메모리 블록들은 제2 영역(112)에 속한 메모리 블록들과 다른 셀당 비트(bit per cell) 수로 프로그램될 수 있다. 예를 들어, 메모리 컨트롤러(200)는 제1 영역(111)의 메모리 블록에 단일-비트 프로그램 방식으로 데이터를 기록하고, 제2 영역(112)의 메모리 블록에 멀티-비트 프로그램 방식으로 데이터를 기록할 수 있다. 단일-비트 프로그램 방식은 SLC 모드를 포함하고, 멀티-비트 프로그램 방식은 MLC 모드, TLC 모드, QLC 모드 등을 포함할 수 있다. 즉, 제1 영역(111)에 속한 각각의 메모리 셀은 1-비트 데이터를 저장하고, 제2 영역(112)에 속한 각각의 메모리 셀은 m-비트 데이터(m은 2 이상의 정수)를 저장할 것이다.
제1 영역(111)의 제1 메모리 블록(BLK1)에는 메모리 장치(100)의 구동에 필요한 설정 데이터(CDATA)가 기록되어 있을 수 있다. 설정 데이터(CDATA)는, 메모리 동작을 위해서 맵 오픈 동작에 앞서 메모리 장치(100)를 초기화하고 설정하기 위한 데이터로서, 사전에 메모리 셀의 특정 영역에 대한 테스트 단계에서 저장될 수 있다. 맵 오픈 동작은 메모리 장치(100)의 전원이 꺼지기 이전에 기록된 맵(map) 데이터(또는 메타(meta) 데이터)를 로드(load)하여 최신 정보로 재구성하는 동작을 나타낼 수 있다. 맵 데이터는 제1 영역(111)에 기록되어 있을 수 있다. 메모리 컨트롤러(200)는 맵 데이터를 사용하여 호스트(10)로부터의 요청을 처리할 수 있다. 맵 데이터는 L2P(logical-to-physical) 맵 데이터를 포함할 수 있다.
맵 오픈 동작은 독출 동작을 포함할 수 있다. 예를 들어, 독출 동작은 SLC 독출일 수 있다. SLC 독출은 하나의 전압을 사용하여 메모리 셀의 데이터를 독출하는 동작일 수 있다. 급작스러운 전원 오프(Sudden Power Off, SPO)가 발생한 뒤 다시 전원이 켜진 경우, 맵 오픈 동작은 소거 동작 및 프로그램 동작을 더 포함할 수 있다. 예를 들어, 소거 동작은 SLC 소거이고, 프로그램 동작은 SLC 프로그램일 수 있다. SLC 소거와 SLC 프로그램은 각각 하나의 전압을 사용하여 데이터를 소거하고 프로그램하는 동작일 수 있다.
메모리 장치(100)의 설정 데이터(CDATA)는 IDR(Information Data Read) 데이터로 표현될 수 있다. 설정 데이터(CDATA)는 메모리 셀 어레이(110) 별로 트림(trim)된 DC 정보, 옵션(option) 정보, 컬럼 리페어(column repair) 정보, 배드 블록(bad block) 정보 등을 포함할 수 있다. DC 정보는 메모리 장치(100)의 주변 회로(peripheral circuit), 펌프 회로(pump circuit) 등이 동작하기 위한 세팅 조건을 포함할 수 있다.
설정 데이터(CDATA)의 열화 등으로 인한 왜곡 발생 시 설정 데이터(CDATA)를 대신하여 사용되는 레플리카(replica)가 있을 수 있다. 레플리카는 플레인(plane) 레플리카 및/또는 SSL 레플리카를 포함할 수 있다. 즉, 설정 데이터(CDATA)는 제1 영역(111)의 다른 부분에 레플리카로서 복제되어 기록되어 있을 수 있다. 예를 들어, 설정 데이터(CDATA)는 제1 메모리 블록(BLK1)의 일 영역에 기록되고, 레플리카는 제1 메모리 블록(BLK1)의 다른 영역에 기록될 수 있다. 또한, 레플리카는 제2 메모리 블록(BLK2)에 기록될 수 있다. 레플리카는 제2 메모리 블록(BLK2)에서도 복수 개의 영역에 기록될 수 있다. 즉, 레플리카는 복수 개 존재할 수 있다.
메모리 컨트롤러(200)는 메모리 장치(100)의 전원이 켜진 후 메모리 장치(100)의 초기화 동작을 수행하고, 설정 데이터(CDATA) 및/또는 레플리카를 사용하여 우선적으로 필요한 동작에 대해 메모리 장치(100)의 설정 동작을 수행할 수 있다. 예를 들어, 우선적으로 필요한 동작은 독출 동작, 특히 SLC 독출일 수 있다. 메모리 컨트롤러(200)는 맵 오픈 동작이 완료된 후, 메모리 장치(100)의 일반 동작에 대한 설정 동작을 수행할 수 있다. 일반 동작은 메모리 동작 중 우선적으로 필요한 동작을 제외한 모든 메모리 동작을 포함할 수 있다. 예를 들어, 우선적으로 필요한 동작이 SLC 독출인 경우, 일반 동작은 SLC 프로그램, SLC 소거, 및 멀티 비트(multi-bit) 기반의 동작을 포함할 수 있다. 멀티 비트 기반의 동작은 상이한 복수의 전압을 사용하여 셀에 독출, 프로그램, 및 소거를 수행하는, MLC 독출, MLC 프로그램, MLC 소거, TLC 독출, TLC 프로그램, TLC 소거, QLC 독출, QLC 프로그램, QLC 소거 등을 포함할 수 있다.
설정 동작은 제1 영역(111)의 설정 데이터(CDATA)를 페이지 버퍼(140)로 독출하는 센싱(sensing), 센싱 결과 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)의 유효성을 검증한 후 래치(latch; 162)에 저장하는 덤프다운(dump-down), 및 래치(162)에 저장된 설정 데이터(CDATA)에 기초하여 메모리 장치(100)의 동작을 위한 조건들을 설정하는 후속 과정들을 포함한다. 예를 들어, 래치(162)에 저장된 설정 데이터(CDATA)는 스위치부로 제공되며, 스위치부는 설정 데이터(CDATA)에 따라 트림 회로, 리페어 회로 등을 담당하는 각 스위치의 온오프(ON/OFF)를 제어함으로써 설정 동작이 완료될 수 있다.
즉, 후속 과정들은, 동작 전압들의 DC 레벨을 설정하거나, 또는 컬럼 리페어 정보를 사용하여 불량 컬럼의 버퍼를 제외시키는 WOR-scan 등을 포함할 수 있다.
WOR-scan에서 페일(fail)이 발생하면, 메모리 장치(100)는 레플리카를 사용하여 설정 동작을 수행할 수 있다. 즉, 메모리 장치(100)는 메인 블록 및 메인 SSL에 기록된 설정 데이터(CDATA)에 페일이 발생하면, 레플리카 블록 및 메인 SSL에 기록된 레플리카를 사용하여 설정 동작을 수행할 수 있다. 이때, 다시 페일이 발생하면, 메모리 장치(100)는 메인 블록 및 레플리카 SSL에 기록된 레플리카를 사용하여 설정 동작을 수행하고, 다시 페일이 발생하면, 레플리카 블록 및 레플리카 SSL에 기록된 레플리카를 사용하여 설정 동작을 수행할 수 있다. 하지만 설정 동작의 순서가 반드시 이에 한정되는 것은 아니고, 다른 순서로 수행될 수도 있다.
일 실시예에 따른 메모리 장치(100)의 제1 영역(111)의 제1 메모리 블록(BLK1)에서, 설정 데이터와 레플리카는 표 1에 도시된 바와 같이 기록되어 있을 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL8)에 연결된 메모리 셀(MC)에는 일반 설정 데이터가 기록되어 있을 수 있다. 일반 설정 데이터는 SLC 소거, SLC 프로그램, SLC 독출, MLC 소거, MLC 프로그램, 및 MLC 독출을 위한 설정 데이터를 포함할 수 있다. 메모리 셀 어레이(110)가 TLC의 셀 타입을 지원하는 경우, 일반 설정 데이터는 TLC 소거, TLC 프로그램, 및 TLC 독출을 위한 설정 데이터를 더 포함할 수 있다. 메모리 셀 어레이(110)가 QLC의 셀 타입을 지원하는 경우, 일반 설정 데이터는 QLC 소거, QLC 프로그램, 및 QLC 독출을 위한 설정 데이터를 더 포함할 수 있다. MLC 동작(MLC 소거, MLC 프로그램, 및 MLC 독출), TLC 동작(TLC 소거, TLC 프로그램, 및 TLC 독출), 및 QLC 동작(QLC 소거, QLC 프로그램, 및 QLC 독출)은 상이한 복수의 전압을 사용하여 메모리 셀의 데이터를 소거, 프로그램 또는 독출하는 동작일 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL7)에 연결된 메모리 셀(MC)에는 SLC 동작을 위한 설정 데이터가 기록되어 있을 수 있다. SLC 동작을 위한 설정 데이터는 SLC 소거, SLC 프로그램, 및 SLC 독출을 위한 설정 데이터를 포함할 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL6)에 연결된 메모리 셀(MC)에는 비-SLC 동작을 위한 설정 데이터가 기록되어 있을 수 있다. 비-SLC 동작은 메모리 장치(100)의 동작 중 SLC 동작 이외의 동작일 수 있다. 예를 들어, 비-SLC 동작을 위한 설정 데이터는 MLC 소거, MLC 프로그램, MLC 독출, TLC 소거, TLC 프로그램, TLC 독출, QLC 소거, QLC 프로그램, 및 QLC 독출 중 적어도 하나를 위한 설정 데이터를 포함할 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL5)에 연결된 메모리 셀(MC)에는 SLC 소거 동작을 위한 설정 데이터가 기록되어 있을 수 있다.
스트링 선택 라인(SSL2)의 워드라인(WL5)에 연결된 메모리 셀(MC)에는 SLC 프로그램 동작을 위한 설정 데이터가 기록되어 있을 수 있다.
스트링 선택 라인(SSL3)의 워드라인(WL5)에 연결된 메모리 셀(MC)에는 SLC 독출 동작을 위한 설정 데이터가 기록되어 있을 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL4)에 연결된 메모리 셀(MC)에는 비-SLC 소거 동작을 위한 설정 데이터가 기록되어 있을 수 있다. 비-SLC 소거 동작을 위한 설정 데이터는 MLC 소거, TLC 소거, 및 QLC 소거 중 적어도 하나를 위한 설정 데이터를 포함할 수 있다.
스트링 선택 라인(SSL2)의 워드라인(WL4)에 연결된 메모리 셀(MC)에는 비-SLC 프로그램 동작을 위한 설정 데이터가 기록되어 있을 수 있다. 비-SLC 프로그램 동작을 위한 설정 데이터는 MLC 프로그램, TLC 프로그램, 및 QLC 프로그램 중 적어도 하나를 위한 설정 데이터를 포함할 수 있다.
스트링 선택 라인(SSL3)의 워드라인(WL4)에 연결된 메모리 셀(MC)에는 비-SLC 독출 동작을 위한 설정 데이터가 기록되어 있을 수 있다. 비-SLC 독출 동작을 위한 설정 데이터는 MLC 독출, TLC 독출, 및 QLC 독출 중 적어도 하나를 위한 설정 데이터를 포함할 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL3)에 연결된 메모리 셀(MC)에는 PIR(Plane Independent Read) 동작을 위한 설정 데이터가 기록되어 있을 수 있다. PIR 동작은 복수의 플레인을 포함하는 메모리 장치(100)에서, 한 플레인이 비지 상태이더라도, 다른 플레인에 대한 독출 동작을 수행할 수 있는 것을 의미할 수 있다.
스트링 선택 라인(SSL2)의 워드라인(WL3)에 연결된 메모리 셀(MC)에는 비-PIR 동작을 위한 설정 데이터가 기록되어 있을 수 있다.
스트링 선택 라인(SSL1)의 워드라인(WL2)에 연결된 메모리 셀(MC)에는 PIC(Plane Independent Core) 동작을 위한 설정 데이터가 기록되어 있을 수 있다. PIC 동작은 복수의 플레인을 포함하는 메모리 장치(100)에서, 한 플레인이 비지 상태이더라도, 다른 플레인에 대한 독출, 프로그램, 및 소거 동작을 수행할 수 있는 것을 의미할 수 있다.
스트링 선택 라인(SSL2)의 워드라인(WL2)에 연결된 메모리 셀(MC)에는 비-PIC 동작을 위한 설정 데이터가 기록되어 있을 수 있다.
스트링 선택 라인(SSLk)의 워드라인(WL2~WL8)에 연결된 복수의 메모리 셀(MCs)에는 설정 데이터에 대한 레플리카가 기록되어 있을 수 있다. k는 3보다 큰 정수일 수 있다. 메모리 컨트롤러(200)는 설정 데이터에 열화가 발생하는 등의 경우에 레플리카를 사용하여 메모리 장치(100)의 설정 동작을 수행할 수 있다.
메모리 장치(100)의 전원이 켜진 후에, 메모리 장치(100)는 초기화 동작을 수행하고, 표 1에 도시된 설정 데이터 중 적어도 하나를 독출하여 설정 동작을 수행할 수 있다. 일반 설정 데이터를 사용하여 메모리 장치(100)의 설정 동작을 수행하는 것과 비교하여, 일부 필요한 설정 데이터만을 우선적으로 사용하여 설정 동작을 수행함으로써 메모리 시스템(20)의 부팅(booting) 시간을 줄여 컴퓨팅 시스템(5)의 부팅 시간을 줄이고, 부팅 시 소모되는 전략이 절약될 수 있다. 예를 들어, 메모리 장치(100)는 SLC 동작을 위한 설정 데이터를 독출하여 설정 동작을 수행할 수 있다.
제2 영역(112)에는 사용자 데이터가 기록될 수 있다. 하지만, 반드시 이에 한정되는 것은 아니고, 제1 영역(111)에 사용자 데이터가 기록될 수도 있다.
제어 로직(160)은 메모리 장치(100)의 전반적인 동작을 제어하고, 메모리 동작과 관련된 각각의 제어 신호를 출력할 수 있다. 예를 들어, 제어 로직(160)은 메모리 컨트롤러(200)로부터 수신한 주소(ADDR), 커맨드(CMD), 및 제어 신호(CTRL) 중 적어도 하나에 기초하여 내부 제어 신호를 사용하여 메모리 장치(100)를 제어할 수 있다.
제어 로직(160)은 전압 생성기(120)를 제어하기 위한 제어 신호(VCTRL) 및 페이지 버퍼(140)를 제어하기 위한 제어 신호(PCTRL)를 생성하고, 주소(ADDR)에 기초하여 로우 주소(R_ADDR) 및 컬럼 주소(C_ADDR)를 생성할 수 있다. 제어 로직(160)은 로우 주소(R_ADDR)를 로우 디코더(130)에 출력하고, 컬럼 주소(C_ADDR)를 입출력 회로(150)에 출력할 수 있다.
전압 생성기(120)는 파워(PWR)를 입력받고, 제어 로직(160)으로부터의 제어 신호(VCTRL)에 따라 메모리 동작을 위한 전압(Vg)을 레귤레이팅하고, 전압(Vg)을 로우 디코더(130)를 통해 메모리 셀 어레이(110)에 제공할 수 있다.
로우 디코더(130)는 워드라인(WL), 스트링 선택 라인(SSL), 및 접지 선택 라인(GSL)을 통해 메모리 셀 어레이(110)에 접속될 수 있다. 로우 디코더(130)는 제어 로직(160)으로부터 입력된 로우 주소(R_ADDR)를 디코딩하여 복수의 메모리 블록(blk1~BLKn) 중 적어도 하나를 선택할 수 있다. 즉, 로우 디코더(130)는 로우 주소(R_ADDR)를 사용하여 워드라인(WL), 스트링 선택 라인(SSL), 및 접지 선택 라인(GSL)을 선택할 수 있다. 로우 디코더(130)는 전압 생성기(120)로부터 공급된 전압(Vg)을 워드라인(WL)에 제공할 수 있다.
페이지 버퍼(140)는 비트라인(BL)을 통해 메모리 셀 어레이(110)에 접속되고, 데이터라인(DL)을 통해 입출력 회로(150)에 접속될 수 있다. 프로그램 동작시, 입출력 회로(150)는 메모리 컨트롤러(200)로부터 제공되는 프로그램 데이터(DATA)를 수신하고, 제어 로직(160)으로부터 제공되는 컬럼 주소(C_ADDR)에 기초하여 프로그램 데이터(DATA)를 페이지 버퍼(140)에 제공할 수 있다. 독출 동작시, 입출력 회로(150)는 제어 로직(160)으로부터 제공되는 컬럼 주소(C_ADDR)에 기초하여 페이지 버퍼(140)에 저장된 독출 데이터(DATA)를 메모리 컨트롤러(200)에 제공할 수 있다.
제어 로직(160)은 덤프다운 회로(dump-down circuit, DDC; 161), 래치(162), 및 롬(ROM; 163)을 포함할 수 있다. 덤프다운 회로(161)는 설정 데이터(CDATA) 및/또는 레플리카를 사용하여 덤프다운을 수행할 수 있다. 예를 들어, 덤프다운 회로(161)는 페이지 버퍼(140)의 설정 데이터(CDATA) 및/또는 레플리카의 유효성을 검증할 수 있다. 덤프다운 회로(161)는 유효성 검증을 통과한 데이터를 래치(162)에 저장할 수 있다. 래치(162)는 덤프다운 회로(161)로부터 유효한 설정 데이터(CDATA) 또는 레플리카를 제공받아 저장할 수 있다. 래치(162)는 메모리 장치(100)에서 필요한 데이터를 저장하는 휘발성 메모리로 구현될 수 있다. 래치(162)는 e-Fuse(electrical-Fuse)를 포함할 수 있다. 롬(163)은 메모리 장치(100)의 전원이 오프된 후에도 보존되어야 할 데이터를 저장할 수 있다. 도 2에서는 덤프다운 회로(161), 래치(162), 및 롬(163)이 제어 로직(160)에 포함되는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니고, 덤프다운 회로(161), 래치(162), 및 롬(163) 중 적어도 하나는 제어 로직(160)과 구별되는 별개의 구성요소로 구현될 수도 있다.
도 5는 일 실시예에 따른 메모리 장치의 초기화 및 설정 시간을 설명하기 위한 도면이다.
도 5를 참조하면, 메모리 컨트롤러(200)는 메모리 장치(100)에 파워(PWR)를 인가하여 메모리 장치(100)의 전원을 켤 수 있다. 파워(PWR)는 메모리 장치(100)를 구동하기 위한 전압(VCC)일 수 있다. DQ 패드는 메모리 장치(100)와 메모리 컨트롤러(200) 사이에서 신호를 전달하기 위해 구비될 수 있다. R/B 패드는 메모리 장치(100)가 비지(busy) 상태(또는 활성화 상태) 또는 레디(ready) 상태(또는 비활성화 상태)임을 메모리 컨트롤러(200)에 출력하기 위해 구비될 수 있다.
메모리 컨트롤러(200)는 초기화 및 설정 동작을 지시하는 커맨드(ffh)를 DQ 패드를 통해 메모리 장치(100)에 출력할 수 있다. 메모리 장치(100)는 커맨드(ffh)에 응답하여 시구간(tBSY1) 동안 비지 상태가 되어 초기화 동작 및 설정 동작을 수행할 수 있다. 즉, 메모리 장치(100)는 초기화 동작을 수행하고, 제1 영역(111)의 설정 데이터(CDATA)를 독출하여 설정 동작을 수행할 수 있다. 이때, 설정 데이터(CDATA)는 일반 설정 데이터로서, SLC 소거, SLC 프로그램, SLC 독출, MLC 소거, MLC 프로그램, MLC 독출, TLC 소거, TLC 프로그램, TLC 독출, QLC 소거, QLC 프로그램, 및 QLC 독출 중 적어도 하나를 위한 설정 데이터를 포함할 수 있다.
제1 영역(111)의 설정 데이터(CDATA)에 열화가 있는 경우, 메모리 장치(100)는 제1 영역(111)의 레플리카를 독출하여 설정 동작을 수행할 수 있다. 메모리 장치(100)는 초기화 및 설정 동작이 끝나면 시구간(tRDY)에서 레디 상태가 될 수 있다. 메모리 컨트롤러(200)는 R/B 패드의 신호에 기초하여 메모리 장치(100)가 비지 상태인지 레디 상태인지 판단할 수 있다. 즉, R/B 패드의 신호가 논리 값 하이(high)인 경우, 메모리 컨트롤러(200)는 메모리 장치(100)가 레디 상태라고 판단하고, R/B 패드의 신호가 논리 값 로우(low)인 경우, 메모리 컨트롤러(200)는 메모리 장치(100)가 비지 상태라고 판단할 수 있다.
도 6은 일 실시예에 따른 메모리 장치의 초기화 및 설정 시간을 설명하기 위한 도면이고, 도 7은 일 실시예에 따른 커맨드 시퀀스의 일 예를 나타내고, 도 8은 일 실시예에 따른 커맨드 시퀀스의 다른 예를 나타낸다.
도 6을 참조하면, 메모리 컨트롤러(200)는 메모리 장치(100)에 파워(PWR)를 인가하여 메모리 장치(100)의 전원을 켤 수 있다. 파워(PWR)는 메모리 장치(100)를 구동하기 위한 전압(VCC)일 수 있다.
메모리 컨트롤러(200)는 초기화 및 설정 동작을 지시하는 커맨드 시퀀스(CMDs)를 DQ 패드를 통해 메모리 장치(100)에 출력할 수 있다. 메모리 컨트롤러(200)는 상이한 커맨드 시퀀스(CMDs)를 사용하여 메모리 장치(100)에 대해 초기화 동작이 수행된 후 상이한 설정 동작을 수행할 수 있다.
메모리 장치(100)는 커맨드 시퀀스(CMDs)에 응답하여 시구간(tBSY2) 동안 비지 상태가 되어 초기화 및 설정 동작을 수행할 수 있다. 즉, 메모리 장치(100)는 초기화 동작을 수행한 후 제1 영역(111)의 설정 데이터(CDATA)를 독출하여 설정 동작을 수행할 수 있다. 이때, 설정 데이터(CDATA)는 일반 설정 데이터 중 일부만을 포함할 수 있다. 예를 들어, 설정 데이터(CDATA)는 SLC 동작을 위한 설정 데이터, 비-SLC 동작을 위한 설정 데이터, SLC 소거 동작을 위한 설정 데이터, SLC 프로그램 동작을 위한 설정 데이터, SLC 독출 동작을 위한 설정 데이터, 비-SLC 소거 동작을 위한 설정 데이터, 비-SLC 프로그램 동작을 위한 설정 데이터, 비-SLC 독출 동작을 위한 설정 데이터, PIR 동작을 위한 설정 데이터, 비-PIR 동작을 위한 설정 데이터, PIC 동작을 위한 설정 데이터, 및 비-PIC 동작을 위한 설정 데이터 중 적어도 하나를 포함할 수 있다. 시구간(tBSY2)은 도 5의 시구간(tBSY1)보다 짧을 수 있다. 즉, 메모리 장치(100)는 초기화 동작 후 필요한 동작에 대해서 우선적으로 설정 동작을 수행함으로써 컴퓨팅 시스템(5)의 부팅 시간을 줄이고, 부팅 시 소모되는 전력을 줄일 수 있다. 메모리 장치(100)는 맵 오픈 동작이 완료된 이후에 나머지 동작에 대한 설정 동작을 수행할 수 있다.
제1 영역(111)의 설정 데이터(CDATA)에 열화가 있는 경우, 메모리 장치(100)는 제1 영역(111)의 레플리카를 독출하여 초기화 및 설정 동작을 수행할 수 있다. 메모리 장치(100)는 초기화 및 설정 동작이 끝나면 시구간(tRDY)에서 레디 상태가 될 수 있다. 메모리 컨트롤러(200)는 R/B 패드의 신호에 기초하여 메모리 장치(100)가 비지 상태인지 레디 상태인지 판단할 수 있다. 즉, R/B 패드의 신호가 논리 값 하이(high)인 경우, 메모리 컨트롤러(200)는 메모리 장치(100)가 레디 상태라고 판단하고, R/B 패드의 신호가 논리 값 로우(low)인 경우, 메모리 컨트롤러(200)는 메모리 장치(100)가 비지 상태라고 판단할 수 있다.
도 7을 참조하면, 상이한 초기화 및 설정 동작을 위한 셋피처(Set Feature) 방식의 커맨드 시퀀스(CMDs)를 확인할 수 있다. 도 7의 (a)를 참조하면, 커맨드 시퀀스(CMDs)는 IDR_A를 위한 것이고, 커맨드(EFh), 주소(11h), 데이터(DATA), 및 커맨드(FFh)를 포함할 수 있다. 도 7의 (b)를 참조하면, 커맨드 시퀀스(CMDs)는 IDR_B를 위한 것이고, 커맨드(EFh), 주소(22h), 데이터(DATA), 및 커맨드(FFh)를 포함할 수 있다. 도 7의 (c)를 참조하면, 커맨드 시퀀스(CMDs)는 IDR_C를 위한 것이고, 커맨드(EFh), 주소(33h), 데이터(DATA), 및 커맨드(FFh)를 포함할 수 있다. 도 7에서 커맨드(EFh)는 커맨드(FFh)에 선행하는 커맨드일 수 있다. 주소(11h~33h)는 설정 동작을 구분하기 위한 것일 수 있다. 예를 들어, IDR_A는 독출 동작을 위한 것이고, IDR_B는 프로그램 동작을 위한 것이고, IDR_C는 소거 동작을 위한 것일 수 있다. 일 실시예에서, 독출 동작은 SLC 독출이고, 프로그램 동작은 SLC 프로그램이고, 소거 동작은 SLC 소거일 수 있으나, 반드시 이에 한정되는 것은 아니다. 데이터(DATA)는 래치(162)의 시작과 끝 범위를 지정하기 위한 신호일 수 있다. 예를 들어, 데이터(DATA)는 4바이트(byte)의 신호일 수 있다. 커맨드(FFh)는 설정 동작을 트리거(trigger)하기 위한 신호일 수 있다.
도 8을 참조하면, 상이한 초기화 및 설정 동작을 위한 일반적인 커맨드 방식의 커맨드 시퀀스(CMDs)를 확인할 수 있다. 도 8(a)를 참조하면, 커맨드 시퀀스(CMDs)는 IDR_A를 위한 것이고, 커맨드(11h), 주소(ADDR), 및 커맨드(FFh)를 포함할 수 있다. 도 8(b)를 참조하면, 커맨드 시퀀스(CMDs)는 IDR_B를 위한 것이고, 커맨드(22h), 주소(ADDR), 및 커맨드(FFh)를 포함할 수 있다. 도 8(c)를 참조하면, 커맨드 시퀀스(CMDs)는 IDR_C를 위한 것이고, 커맨드(33h), 주소(ADDR), 및 커맨드(FFh)를 포함할 수 있다. 도 8에서 커맨드(11h~33h)는 설정 동작을 구분하기 위한 것일 수 있다. 예를 들어, IDR_A는 독출 동작을 위한 것이고, IDR_B는 프로그램 동작을 위한 것이고, IDR_C는 소거 동작을 위한 것일 수 있다. 일 실시예에서, 독출 동작은 SLC 독출이고, 프로그램 동작은 SLC 프로그램이고, 소거 동작은 SLC 소거일 수 있으나, 반드시 이에 한정되는 것은 아니다. 주소(ADDR)는 래치(162)의 시작과 끝 범위를 지정하기 위한 신호일 수 있다. 예를 들어, 주소(ADDR)는 4바이트의 신호일 수 있다. 커맨드(FFh)는 설정 동작을 트리거하기 위한 신호일 수 있다.
도 9는 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 9를 참조하면, 메모리 컨트롤러(200)는 메모리 장치(100)의 전원을 켤 수 있다(S910). 단계(S910) 이전에는 메모리 장치(100)의 전원은 꺼져있을 수 있다. 전원이 켜진 메모리 장치(100)는 초기화 및 설정 동작이 필요할 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 초기화 동작 및 설정 동작(IDR_A)을 수행할 수 있다(S920). 설정 동작(IDR_A)은 메모리 장치(100)에 우선적으로 필요한 동작을 위해 수행될 수 있다. 예를 들어, 메모리 장치(100)에 필요한 동작은 표 2와 같은 우선순위를 가질 수 있다.
일 실시예에 따른 메모리 장치(100)는 SLC 독출이 우선적으로 필요할 수 있다. 설정 동작(IDR_A)은 SLC 독출을 위해 필요한 설정 데이터(CDATA)를 제1 영역(111)에서 독출하여 페이지 버퍼(140)에 저장하는 센싱, 덤프다운 회로(161)가 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)에 다수결 판정을 수행하여 다수결 판정이 패스인 경우 래치(162)에 저장하는 덤프다운, 및 컬럼 리페어 정보를 이용하여 불량 컬럼의 버퍼는 제외하는 WOR-scan을 포함할 수 있다. 다수결 판정은 덤프다운 회로(161)가 포함하는 다수결 판정 회로가 수행할 수 있다.
다수결 판정 회로는 설정 데이터(CDATA)의 각 비트를 n(n은 1보다 큰 정수)개 비트로 복제 및 확장하여 제1 영역(111)에 기록할 수 있다. 예를 들어, n=8인 경우, 다수결 판정 회로는 설정 데이터(CDATA)의 각 비트 '0'을 '00000000'으로 복제 및 확장하고, 설정 데이터(CDATA)의 각 비트 '1'을 '11111111'로 복제 및 확장할 수 있다. 다수결 판정 회로는 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)가 8개 비트 중 기준 수 이상의 비트와 일치하는 경우에 설정 데이터(CDATA)의 각 비트가 유효하다고 판정하여 래치(162)에 기록하고, 8개 비트 중 기준 수 미만의 비트가 일치하는 경우에 설정 데이터(CDATA)의 각 비트가 무효하다고 판정하여 기록을 수행하지 않을 수 있다. 일 실시예에서, 기준 수는 0.75*n일 수 있다. 본 발명에서 n=8이고, 기준 수가 0.75*n인 것은 일 실시예일 뿐이며, 발명의 권리 범위가 반드시 이에 한정되는 것은 아니고, 16개 비트, 32개 비트 등 복수 개의 비트로 복제 및 확장되며 이들 중 기준 수 이상의 비트가 일치하는지 여부를 판정하여 다수결 판정을 수행하는 것으로 구현될 수 있다.
일 실시예에 따른 메모리 장치(100)는 SLC 독출과 함께 방어 코드가 우선적으로 필요할 수 있다. 독출 동작 시 UECC(Uncorrectable Error Correction Code)가 발생한 경우, 메모리 장치(100)는 방어 코드를 사용하여 데이터를 독출할 수 있다. 예를 들어, 열화 등의 이유로 독출 동작이 비정상적으로 이루어지는 경우, 방어 코드는 메모리 셀의 산포를 확인하여 실제 독출 레벨을 확인하고, 독출 오프셋(offset)을 가변시키는데 사용될 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 맵 오픈을 수행할 수 있다(S930). 맵 오픈은 루트 오픈(root open), 디렉토리 오픈(directory open), 아카이브 오픈(archive open) 등의 동작을 포함할 수 있다. 이 경우, 메모리 장치(100)는 제1 영역(111)의 해당 데이터에 대한 독출 동작을 수행할 수 있다. 독출 동작은 SLC 독출일 수 있으나, 반드시 이에 한정되는 것은 아니고, MLC 독출, TLC 독출, 또는 QLC 독출 등으로 구현될 수 있다. 메모리 장치(100)는 SLC 독출 동작을 통해 메모리 블록 별로 더미 펄스(dummy pulse)를 인가하는 프리스캔(pre-scan)을 더 수행할 수 있다. 프리스캔은 데이터 아웃(data out, Dout) 없이 데이터 전달(data transfer, tR)만 수행될 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 설정 동작(IDR_B)을 수행할 수 있다(S940). 설정 동작(IDR_B)은 메모리 장치(100)의 나머지 후순위의 동작에 대하여 수행될 수 있다. 예를 들어, 단계(S920)에서 SLC 독출에 대한 설정 동작(IDR_A)이 수행된 경우, 단계(S940)에서는 SLC 소거, SLC 프로그램, MLC 동작, TLC 동작, QLC 동작 등에 대한 설정 동작(IDR_B)이 수행될 수 있다. 단계(S940)는 메모리 장치(100)의 백그라운드(background)에서 수행될 수 있다.
메모리 장치(100)는 맵 오픈 이전에 필요한 동작에 대해서만 먼저 설정 동작(IDR_A)을 수행함으로써 컴퓨팅 시스템(5)의 부팅 시간을 단축시키고, 부팅 시 소모되는 전력을 줄일 수 있다.
본 발명에서는 설정 동작(IDR_A)이 SLC 독출을 위한 것으로 예를 들어 설명하였으나, 반드시 이에 한정되는 것은 아니고, SLC 프로그램, SLC 소거, MLC 동작, TLC 동작, QLC 동작, PIR 동작, 비-PIR 동작, PIC 동작, 또는 비-PIC 동작 중 적어도 하나 등을 위한 것일 수도 있다. 설정 동작(IDR_A)이 비-PIR 동작을 위한 것인 경우, 설정 동작(IDR_B)은 PIR 동작을 위한 것일 수 있다. 설정 동작(IDR_A)이 비-PIC 동작을 위한 것인 경우, 설정 동작(IDR_B)은 PIC 동작을 위한 것일 수 있다.
도 10은 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 10을 참조하면, 예기치 못한 상황 등으로 인해 메모리 장치(100)에 급작스러운 전원 오프(SPO)가 발생할 수 있다(S1010).
메모리 컨트롤러(200)는 메모리 장치(100)의 전원을 켤 수 있다(S1020). 전원이 켜진 메모리 장치(100)는 초기화 및 설정 동작이 필요할 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 초기화 동작 및 설정 동작(IDR)을 수행할 수 있다(S1030). 설정 동작(IDR)은 메모리 장치(100)가 동작하기에 앞서 필요한 값들을 설정하는 것으로서, 제1 영역(111)에서 설정 데이터(CDATA)를 독출하여 페이지 버퍼(140)에 저장하는 센싱, 덤프다운 회로(161)가 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)에 다수결 판정을 수행하여 다수결 판정이 패스인 경우 래치(162)에 저장하는 덤프다운, 및 컬럼 리페어 정보를 이용하여 불량 컬럼의 버퍼는 제외하는 WOR-scan을 포함할 수 있다. 다수결 판정은 덤프다운 회로(161)의 다수결 판정 회로가 수행할 수 있다.
다수결 판정 회로는 설정 데이터(CDATA)의 각 비트를 8개 비트로 복제 및 확장하여 제1 영역(111)에 기록할 수 있다. 예를 들어, 다수결 판정 회로는 설정 데이터(CDATA)의 각 비트 '0'을 '00000000'으로 복제 및 확장하고, 설정 데이터(CDATA)의 각 비트 '1'을 '11111111'로 복제 및 확장할 수 있다. 다수결 판정 회로는 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)가 8개 비트 중 기준 수 이상의 비트와 일치하는 경우에 설정 데이터(CDATA)의 각 비트가 유효하다고 판정하여 래치(162)에 기록하고, 8개 비트 중 기준 수 미만의 비트가 일치하는 경우에 설정 데이터(CDATA)의 각 비트가 무효하다고 판정하여 기록을 수행하지 않을 수 있다. 기준 수는 6일 수 있다. 급작스러운 전원 오프(SPO)가 발생한 경우, 맵 오픈 과정에서 메모리 장치(100)는 독출, 프로그램, 및 소거 동작을 할 수 있다, 이에, 메모리 장치(100)는 독출, 프로그램, 및 소거 동작을 위해 필요한 설정 데이터(CDATA)를 제1 영역(111)에서 독출할 수 있다. 독출, 프로그램, 및 소거 동작은 SLC 독출, SLC 프로그램, 및 SLC 소거일 수 있으나, 반드시 이에 한정되는 것은 아니고, 메모리 장치(100)는 MLC, TLC, QLC 등 다양한 셀당 비트 수로 각 동작을 수행할 수 있다. 또한, 본 발명에서는 다수결 판정 회로가 설정 데이터(CDATA)의 각 비트를 8개 비트로 복제 및 확장하는 것으로 한정되는 것이 아니고, 복수 개의 비트로 복제 및 확장되어 다수결 판정을 수행하는 것으로 구현될 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 맵 오픈을 수행할 수 있다(S1040). 맵 오픈은 루트 오픈, 디렉토리 오픈, 저널 리플레이(journal replay), 아카이브 오픈(archive open) 등의 동작을 포함할 수 있다. 루트 오픈, 디렉토리 오픈, 및 아카이브 오픈에서 메모리 장치(100)는 제1 영역(111)의 해당 데이터에 대한 독출 동작을 수행할 수 있다. 저널 리플레이에서, 메모리 장치(100)는 제1 영역(111)의 PLP(Power Loss Protection) 데이터와 연관된 독출, 프로그램, 및 소거 동작을 수행할 수 있다. 독출, 프로그램, 및 소거 동작은 SLC 독출, SLC 프로그램, 및 SLC 소거일 수 있으나, 반드시 이에 한정되는 것은 아니고, MLC, TLC, QLC 등 다양한 셀당 비트 수로 구현될 수 있다.
도 11은 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 11을 참조하면, 컴퓨팅 시스템(5)에서 호스트(10)는 전력 관리 모드(Power Management mode, PM mode)로 메모리 시스템(20)을 관리할 수 있다(S1110). PM 모드에서는 기본적으로 메모리 컨트롤러(200)의 전원은 켜져있고, 메모리 장치(100)의 전원은 꺼져있을 수 있다.
PM 모드에서, 메모리 시스템(20)은 호스트(10)로부터 커맨드(CMD)를 수신할 수 있다(S1120). 커맨드(CMD)는 커맨드 대기열(또는 큐(queue))에서 복수 개 존재할 수 있다. 호스트(10)로부터 커맨드(CMD)를 수신한 것에 응답하여, 메모리 컨트롤러(200)는 메모리 장치(100)의 전원을 켤 수 있다. 전원이 켜진 메모리 장치(100)는 초기화 및 설정 동작이 필요할 수 있다.
메모리 컨트롤러(200)는 커맨드 타입(CMD type)을 결정할 수 있다(S1130). 예를 들어, 메모리 컨트롤러(200)는 커맨드 대기열에서 커맨드 타입을 결정할 수 있다. 커맨드 타입은 SLC 독출, SLC 프로그램, SLC 소거, MLC 독출, MLC 프로그램, MLC 소거, TLC 독출, TLC 프로그램, TLC 소거, QLC 독출, QLC 프로그램, 또는 QLC 소거 등을 포함할 수 있다. 메모리 컨트롤러(200)는 커맨드 타입에 따라 설정 동작(IDR_A)을 수행할 것을 메모리 장치(100)에 지시할 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 지시에 응답하여 설정 동작(IDR_A)을 수행할 수 있다(S1140). 설정 동작(IDR_A)은 커맨드(CMD)를 수행하기 위해 필요한 동작이 우선적으로 수행될 수 있다.
일 예로, 호스트(10)는 메모리 시스템(20)에 SLC 독출을 포함하는 커맨드(CMD)를 출력할 수 있다. 이에, 메모리 컨트롤러(200)는 메모리 장치(100)에 SLC 독출을 위한 설정 동작(IDR_A)을 수행할 것을 지시할 수 있다. 메모리 장치(100)는 제1 영역(111)에서 SLC 독출을 위한 설정 데이터(CDATA)를 센싱하여 페이지 버퍼(140)에 기록하고, 페이지 버퍼(140)에 기록된 데이터를 다수결 판정 후 패스된 데이터를 래치(162)에 덤프다운할 수 있다. 메모리 장치(100)는 컬럼 리페어 정보를 이용하여 불량 버퍼를 제외시키는 WOR-scan을 더 수행할 수 있다.
다른 예로, 호스트(10)는 메모리 시스템(20)에 TLC 프로그램을 포함하는 커맨드(CMD)를 출력할 수 있다. 이에, 메모리 컨트롤러(200)는 메모리 장치(100)에 TLC 프로그램을 위한 설정 동작(IDR_A)을 수행할 것을 지시할 수 있다. 메모리 장치(100)는 제1 영역(111)에서 TLC 프로그램을 위한 설정 데이터(CDATA)를 센싱하여 페이지 버퍼(140)에 기록할 수 있다. TLC 프로그램을 위한 설정 데이터(CDATA)는 TLC 프로그램만을 위한 설정 데이터 및/또는 SLC 독출을 위한 설정 데이터를 포함할 수 있다. SLC 독출을 위한 설정 데이터는 맵 오픈 동작을 위해서 센싱이 필요할 수 있다. 메모리 장치(100)는 페이지 버퍼(140)에 기록된 데이터를 다수결 판정 후 패스된 데이터를 래치(162)에 덤프다운할 수 있다. 메모리 장치(100)는 컬럼 리페어 정보를 이용하여 불량 버퍼를 제외시키는 WOR-scan을 더 수행할 수 있다. 이상에서 SLC 독출과 TLC 프로그램은 설명의 편의를 위해 단지 예시로서 제시되었으며, 본 발명이 반드시 이에 한정되는 것은 아니고, 다른 동작에 대해서도 메모리 장치(100)는 설정 동작(IDR_A)을 수행할 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 지시에 응답하여 맵 오픈을 수행할 수 있다(S1150). 맵 오픈은 루트 오픈, 디렉토리 오픈, 아카이브 오픈 등의 동작을 포함할 수 있다. 이 경우, 메모리 장치(100)는 제1 영역(111)의 해당 데이터에 대한 독출 동작을 수행할 수 있다. 독출 동작은 SLC 독출일 수 있으나, 반드시 이에 한정되는 것은 아니고, MLC 독출, TLC 독출, 또는 QLC 독출 등으로 구현될 수 있다.
맵 오픈이 완료되면, 메모리 컨트롤러(200)는 커맨드(CMD)에 따라 동작할 수 있다(S1160). 예를 들어, 커맨드(CMD)가 SLC 독출인 경우, 메모리 컨트롤러(200)는 메모리 장치(100)에 대해 SLC 독출을 수행할 수 있다. 커맨드(CMD)가 TLC 프로그램인 경우, 메모리 컨트롤러(200)는 메모리 장치(100)에 대해 TLC 프로그램을 수행할 수 있다.
메모리 컨트롤러(200)는 호스트(10)로부터 PM 모드로 진입하라는 커맨드(CMD)가 입력되는지 여부를 판정할 수 있다(S1170).
호스트(10)로부터 PM 모드로 진입하라는 커맨드(CMD)가 입력되지 않으면, 메모리 장치(100)는 설정 동작(IDR_B)을 수행할 수 있다(S1180). 설정 동작(IDR_B)은 단계(S1140)의 설정 동작(IDR_A)에서 센싱 및 덤프다운 되지 않은 설정 데이터(CDATA)에 대해 수행될 수 있다. 예를 들어, 단계(S1140)에서 SLC 독출에 대한 설정 동작(IDR_A)이 수행된 경우, 단계(S1180)에서는 SLC 소거, SLC 프로그램, MLC 동작, TLC 동작, QLC 동작 등에 대한 설정 동작(IDR_B)이 수행될 수 있다. 단계(S1180)는 메모리 장치(100)의 백그라운드에서 수행될 수 있다.
호스트(10)로부터 PM 모드로 진입하라는 커맨드(CMD)가 입력되면, 메모리 컨트롤러(200)는 메모리 장치(100)의 전원을 끌 수 있다(S1190). 이후에는 호스트의 커맨드(CMD)에 따라 단계(S1120)가 수행될 수 있다.
도 12는 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 12를 참조하면, 메모리 컨트롤러(200)는 메모리 장치(100)의 전원을 켤 수 있다(S1210). 단계(S1210) 이전에는 메모리 장치(100)의 전원은 꺼져있을 수 있다. 전원이 켜진 메모리 장치(100)는 초기화 및 설정 동작이 필요할 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 초기화 동작 및 SLC 독출을 위한 설정 동작(IDR_A)을 수행할 수 있다(S1220). 이때, 설정 동작(IDR_A)은 메인 펌웨어 코드(main firmware code)가 기록된 칩(chip)에 대해서만 수행될 수 있다. SLC 독출을 위한 설정 동작(IDR_A)은 SLC 독출을 위해 필요한 설정 데이터(CDATA)를 제1 영역(111)에서 독출하여 페이지 버퍼(140)에 저장하는 센싱, 덤프다운 회로(161)가 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)에 다수결 판정을 수행하여 다수결 판정이 패스인 경우 래치(162)에 저장하는 덤프다운, 및 컬럼 리페어 정보를 이용하여 불량 컬럼의 버퍼는 제외하는 WOR-scan을 포함할 수 있다. 다수결 판정은 덤프다운 회로(161)의 다수결 판정 회로가 수행할 수 있다.
다수결 판정 회로는 설정 데이터(CDATA)의 각 비트를 8개 비트로 복제 및 확장하여 제1 영역(111)에 기록할 수 있다. 예를 들어, 다수결 판정 회로는 설정 데이터(CDATA)의 각 비트 '0'을 '00000000'으로 복제 및 확장하고, 설정 데이터(CDATA)의 각 비트 '1'을 '11111111'로 복제 및 확장할 수 있다. 다수결 판정 회로는 페이지 버퍼(140)에 저장된 설정 데이터(CDATA)가 8개 비트 중 기준 수 이상의 비트와 일치하는 경우에 설정 데이터(CDATA)의 각 비트가 유효하다고 판정하여 래치(162)에 기록하고, 8개 비트 중 기준 수 미만의 비트가 일치하는 경우에 설정 데이터(CDATA)의 각 비트가 무효하다고 판정하여 기록을 수행하지 않을 수 있다. 기준 수는 6일 수 있다. 본 발명에서는 다수결 판정 회로가 설정 데이터(CDATA)의 각 비트를 8개 비트로 복제 및 확장하는 것으로 한정되는 것이 아니고, 복수 개의 비트로 복제 및 확장되어 다수결 판정을 수행하는 것으로 구현될 수 있다.
설정 동작(IDR_A)이 완료되면, 롬(163)에 기록된 롬 코드(ROM code)가 실행되어 제1 영역(111)에 기록된 부트로더 코드(boot-loader code)를 SLC 독출할 수 있다. 이에, 부트로더가 실행되어 메모리 셀 어레이(110)의 특정 채널(channel) 및 특정 웨이(way)에 기록된 메인 펌웨어 코드를 SLC 독출할 수 있다(S1230).
메인 펌웨어 코드가 독출되어 메인 펌웨어가 실행되면, 설정 동작(IDR_B)을 수행할 수 있다(S1240). 설정 동작(IDR_B)은 모든 칩에 대해서 수행될 수 있다. 설정 동작(IDR_B)은 일반 설정 데이터를 센싱하여 덤프다운하거나, 또는 우선적으로 필요한 동작에 대한 설정 데이터를 센싱하여 덤프다운하는 동작일 수 있다.
메모리 장치(100)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 맵 오픈을 수행할 수 있다(S1250). 맵 오픈은 루트 오픈, 디렉토리 오픈, 아카이브 오픈 등의 동작을 포함할 수 있다. 이 경우, 메모리 장치(100)는 제1 영역(111)의 해당 데이터에 대한 독출 동작을 수행할 수 있다. 독출 동작은 SLC 독출일 수 있으나, 반드시 이에 한정되는 것은 아니고, MLC 독출, TLC 독출, 또는 QLC 독출 등으로 구현될 수 있다.
단계(S1240)의 설정 동작(IDR_B)에서 우선적으로 필요한 동작에 대해 설정 데이터를 센싱하여 덤프다운한 경우, 메모리 장치(100)는 단계(S1250)에 후속하여 나머지 동작에 대하여 설정 동작을 수행할 수 있다. 이 경우 메모리 장치(100)의 백그라운드에서 나머지 동작에 대한 설정 동작이 수행될 수 있다. 이에, 컴퓨팅 시스템(5)의 부팅 시간이 단축되고, 부팅 시 소모되는 전력이 감소될 수 있다.
도 13은 일 실시예에 따른 메모리 장치의 초기화 및 설정 동작을 설명하기 위한 순서도이다.
도 13을 참조하면, 일 실시예에 따른 메모리 장치(100)는 1웨이에 2개 이상의 다이(die)가 배치된 고용량 메모리 장치일 수 있다. 예를 들어, 표 3과 같이 메모리 장치(100)는 웨이(Way0)에 네 개의 다이(Die0~Die3)를 포함하며, 모든 다이(Die0~Die3)가 맵 데이터를 포함하는 것은 아닐 수 있다. 다이(Die0) 및 다이(Die1)만 맵 데이터를 포함하고, 다이(Die2) 및 다이(Die3)는 맵 데이터를 포함하지 않을 수 있다.
메모리 컨트롤러(200)는 메모리 장치(100)의 전원을 켤 수 있다(S1310). 단계(S1310) 이전에는 메모리 장치(100)의 전원은 꺼져있을 수 있다. 전원이 켜진 메모리 장치(100)는 초기화 및 설정 동작이 필요할 수 있다.
메모리 컨트롤러(200)는 메모리 장치(100)의 다이(Die0-Die3)가 맵 데이터를 포함하는지 여부를 판정할 수 있다(S1320). 맵 데이터는 메모리 장치(100)의 펌웨어 구동을 위한 것일 수 있다. 예를 들어, 메모리 컨트롤러(200)는 다이(Die0) 및 다이(Die1)가 맵 데이터를 포함하고, 다이(Die2) 및 다이(Die3)는 맵 데이터를 포함하지 않는다고 판정할 수 있다.
메모리 컨트롤러(200)는 메모리 장치(100)의 다이(Die0) 및 다이(Die1)에 대해 설정 동작(IDR)을 수행할 것을 메모리 장치(100)에 지시하고, 메모리 장치(100)의 다이(Die0) 및 다이(Die1)는 설정 동작(IDR)을 수행할 수 있다(S1330). 이때, 메모리 장치(100)에 우선적으로 필요한 동작을 위해 설정 동작(IDR)이 수행되거나, 또는 메모리 장치(100)의 일반적인 동작을 위해 설정 동작(IDR)이 수행될 수 있다. 메모리 장치(100)에 우선적으로 필요한 동작은 도 9를 참조하여 상술한 내용이 적용될 수 있다.
맵 데이터를 포함하지 않는 메모리 장치(100)의 다이(Die2) 및 다이(Die3)는 설정 동작(IDR)을 통과할 수 있다(S1340). 다이(Die2) 및 다이(Die3)는 맵 오픈 이후에 설정 동작(IDR)을 수행할 수 있다.
메모리 장치(100)의 다이(Die0) 및 다이(Die1)는 메모리 컨트롤러(200)로부터의 커맨드에 응답하여 맵 오픈을 수행할 수 있다(S1350). 맵 오픈은 루트 오픈, 디렉토리 오픈, 아카이브 오픈 등의 동작을 포함할 수 있다. 이 경우, 메모리 장치(100)는 제1 영역(111)의 해당 데이터에 대한 독출 동작을 수행할 수 있다. 독출 동작은 SLC 독출일 수 있으나, 반드시 이에 한정되는 것은 아니고, 복수의 비트를 저장하는 메모리 셀에 대한 독출로 구현될 수 있다. 복수의 비트를 저장하는 메모리 셀에 대한 독출은 MLC 독출, TLC 독출, 또는 QLC 독출 등을 포함할 수 있다.
메모리 컨트롤러(200)는 다이(Die0-Die3)에 대해 나머지 설정 동작(remaining IDR)을 수행할 것을 메모리 장치(100)에 지시하고, 메모리 장치(100)는 나머지 설정 동작(remaining IDR)을 수행할 수 있다(S1360). 나머지 설정 동작(remaining IDR)은 메모리 장치(100)의 백그라운드에서 수행될 수 있다.
예를 들어, 단계(S1330)의 설정 동작(IDR)에서 다이(Die0) 및 다이(Die1)의 우선적으로 필요한 동작에 대해 설정 데이터를 센싱하여 덤프다운한 경우, 메모리 장치(100)는 다이(Die0) 및 다이(Die1)의 나머지 동작에 대하여 설정 동작을 수행할 수 있다.
또한, 메모리 컨트롤러(200)는 설정 동작(IDR)을 통과했던 다이(Die2) 및 다이(Die3)에 대해 설정 동작(IDR)을 수행할 것을 메모리 장치(100)에 지시하고, 메모리 장치(100)의 다이(Die2) 및 다이(Die3)는 설정 동작(IDR)을 수행할 수 있다. 이때, 메모리 장치(100)의 일반적인 동작을 위해 설정 동작(IDR)이 수행될 수 있다.
메모리 장치(100)에서 맵 데이터를 포함하는지 여부에 따라 설정 동작(IDR)을 나누어 수행함으로써, 컴퓨팅 시스템(5)의 부팅 시간이 단축되고, 부팅 시 소모되는 전력이 감소될 수 있다.
다른 실시예에 따른 메모리 장치(100)는 표 4와 같이 하나의 다이에 다중 플레인(multi-plane)을 갖고, 플레인 별로 맵 데이터가 저장되거나 저장되어 있지 않을 수 있다.
이 경우에도, 다이(Die0~Die3) 별로 맵 데이터의 저장 여부가 상이한 경우와 마찬가지로, 플레인(Plane0~Plane3)에 맵 데이터가 포함되는지 여부에 따라 단계(S1330-S1360)가 수행될 수 있다.
도 14는 일 실시예에 따른 컴퓨팅 시스템의 개략적인 블록도이다.
컴퓨팅 시스템(1400)은 모바일 장치나 컴퓨터 등일 수 있다. 컴퓨팅 시스템(1400)는 호스트(1410), 램(1420), 장치 드라이버(1430), 메모리 시스템(1440), 통신 인터페이스(1450), 및 버스(1460)를 포함할 수 있다. 호스트(1410), 램(1420), 장치 드라이버(1430), 메모리 시스템(1440), 및 통신 인터페이스(1450)는 각각 버스(1460)에 전기적으로 연결되어 있을 수 있다. 컴퓨팅 시스템(1400)은 다른 범용적인 구성요소를 더 포함할 수 있다.
호스트(1410)는 컴퓨팅 시스템(1400)의 각 구성요소의 전반적인 동작을 제어할 수 있다. 호스트(1410)는 CPU(Central Processing Unit), GPU(Graphic Processing Unit), 마이크로프로세서, 또는 어플리케이션 프로세서(Application Processor, AP) 등일 수 있다.
램(1420)은 호스트(1410)의 데이터 메모리 역할을 할 수 있다.
호스트(1410)는 장치 드라이버(1430)를 통해서 메모리 시스템(1440)에 데이터를 기록하거나 메모리 시스템(1440)으로부터 데이터를 독출할 수 있다. 데이터는 설정 데이터 및 사용자 데이터를 포함할 수 있다. 실시예에 따라 장치 드라이버(1430)는 호스트(1410)의 내부에 구현될 수도 있다.
메모리 시스템(1440)은 비휘발성 메모리로 구현될 수 있다. 메모리 시스템(1440)은 메모리 컨트롤러 및 메모리 장치를 포함할 수 있다, 메모리 시스템(1440)은 장치 드라이버(1430)와 연결될 수 있다. 메모리 시스템(1440)은 도 1의 메모리 시스템(20)과 실질적으로 동일한 기능을 수행할 수 있다.
버스(1460)는 컴퓨팅 시스템(1400)의 구성요소 간 통신 기능을 제공할 수 있다. 버스(1360)는 구성요소 간의 통신 프로토콜에 따라 적어도 하나의 유형의 버스를 포함할 수 있다.
어떤 실시예에서, 도 1 내지 도 14을 참고로 하여 설명한 각 구성요소 또는 둘 이상의 구성요소의 조합은 디지털 회로, 프로그램 가능한 또는 프로그램할 수 없는 로직 장치 또는 어레이, 응용 주문형 집적 회로(application specific integrated circuit, ASIC) 등으로 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (10)

  1. 제1 동작에 대한 제1 설정 동작을 수행하는 단계;
    상기 제1 설정 동작에 기반하여 맵(map) 데이터를 독출하는 단계; 및
    상기 맵 데이터를 독출한 후에, 제2 동작에 대한 제2 설정 동작을 수행하는 단계
    를 포함하는 메모리 장치 동작 방법.
  2. 제1항에 있어서,
    상기 제1 동작은 독출 동작을 포함하는,
    메모리 장치 동작 방법.
  3. 제2항에 있어서,
    상기 독출 동작은 SLC 독출이고,
    상기 제2 동작은 상기 SLC 독출을 제외한 메모리 동작을 포함하는,
    메모리 장치 동작 방법.
  4. 제1항에 있어서,
    상기 제1 동작은 메인 펌웨어 코드(main firmware code)가 기록된 칩에 대한 SLC 독출 동작을 포함하고,
    상기 메모리 장치 동작 방법은, 상기 맵 데이터를 독출하는 단계 이전에,
    메모리 셀 어레이에 기록된 부트로더(boot-loader) 코드를 SLC 독출함으로써 부트로더를 실행하는 단계; 및
    상기 부트로더가 상기 메인 펌웨어 코드를 실행하는 단계
    를 더 포함하는 메모리 장치 동작 방법.
  5. 제4항에 있어서,
    상기 메모리 장치 동작 방법은, 상기 메인 펌웨어 코드를 실행하는 단계 이후에,
    SLC 프로그램 및 SLC 소거에 대한 제3 설정 동작을 수행하는 단계
    를 더 포함하고,
    상기 제2 동작은 멀티 비트 기반의 독출, 프로그램, 및 소거를 포함하는,
    메모리 장치 동작 방법.
  6. 제1항에 있어서,
    상기 제1 설정 동작을 수행하는 단계 이전에,
    상기 메모리 장치에 급작스러운 전원 오프(Sudden Power Off, SPO)가 발생한 후 메모리 장치의 전원을 켜는 단계
    를 더 포함하고,
    상기 제1 동작은 SLC 독출, SLC 프로그램, 및 SLC 소거를 포함하는,
    메모리 장치 동작 방법.
  7. 전력 관리 모드(power management mode)에서 커맨드를 수신하는 단계;
    상기 커맨드의 타입을 결정하는 단계;
    상기 커맨드의 타입에 따른 제1 동작에 대한 제1 설정 동작을 수행하는 단계;
    맵 데이터를 독출하는 단계; 및
    상기 맵 데이터를 사용하여 상기 커맨드에 따른 요청을 처리하는 단계
    를 포함하는 메모리 장치 동작 방법.
  8. 제7항에 있어서,
    상기 커맨드의 타입에 따른 제1 동작에 대한 제1 설정 동작을 수행하는 단계는,
    메모리 셀 어레이에서 상기 제1 동작을 위한 설정 데이터를 독출하여 페이지 버퍼에 저장하는 단계;
    상기 페이지 버퍼에 저장된 설정 데이터의 유효성을 검증하는 단계; 및
    유효성 검증을 통과한 설정 데이터를 버퍼에 저장하는 단계
    를 포함하는, 메모리 장치 동작 방법.
  9. 메모리 장치; 및
    상기 메모리 장치에서 맵 데이터가 저장되어 있는 영역을 결정하고, 상기 맵 데이터가 저장된 영역에 대해 제1 설정 동작을 수행하고 상기 제1 설정 동작에 기초해서 상기 맵 데이터를 독출하고, 상기 맵 데이터를 독출한 후에, 상기 맵 데이터가 저장되지 않은 영역에 대해 제2 설정 동작을 수행하도록 구성되는 메모리 컨트롤러
    를 포함하는 메모리 시스템.
  10. 제9항에 있어서,
    상기 영역은,
    상기 메모리 장치의 다이(die) 또는 플레인(plane)인,
    메모리 시스템.
KR1020220070226A 2022-06-09 2022-06-09 메모리 장치 동작 방법 KR20230169733A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220070226A KR20230169733A (ko) 2022-06-09 2022-06-09 메모리 장치 동작 방법
CN202310031798.5A CN117219144A (zh) 2022-06-09 2023-01-10 用于操作存储器装置的方法和存储器系统
US18/101,232 US20230400992A1 (en) 2022-06-09 2023-01-25 Method for operating memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220070226A KR20230169733A (ko) 2022-06-09 2022-06-09 메모리 장치 동작 방법

Publications (1)

Publication Number Publication Date
KR20230169733A true KR20230169733A (ko) 2023-12-18

Family

ID=89034049

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220070226A KR20230169733A (ko) 2022-06-09 2022-06-09 메모리 장치 동작 방법

Country Status (3)

Country Link
US (1) US20230400992A1 (ko)
KR (1) KR20230169733A (ko)
CN (1) CN117219144A (ko)

Also Published As

Publication number Publication date
CN117219144A (zh) 2023-12-12
US20230400992A1 (en) 2023-12-14

Similar Documents

Publication Publication Date Title
US7336531B2 (en) Multiple level cell memory device with single bit per cell, re-mappable memory block
US8832360B2 (en) Solid state storage device controller with expansion mode
US9058900B2 (en) System, semiconductor memory device and operating method thereof
JP5421127B2 (ja) ダイナミックマルチモード動作を有する不揮発性メモリ
US7974139B2 (en) Non-volatile memory generating different read voltages
KR20220082473A (ko) 메모리 장치 및 그 동작 방법
US11481128B2 (en) Storage device and operating method thereof
US11557349B2 (en) Memory device and method of operating the memory device
US11366725B2 (en) Storage device and method of operating the same
US20210271603A1 (en) Memory controller and method of operating the same
KR20230169733A (ko) 메모리 장치 동작 방법
KR20220064101A (ko) 저장 장치 및 그 동작 방법
CN112783431A (zh) 存储装置及其操作方法
JP2004030849A (ja) データの一部書き換え機能を有する半導体不揮発性メモリ
US11543975B2 (en) Storage device and method of operating the same
US7002850B2 (en) System and method for over erase reduction of nitride read only memory
US11482291B2 (en) Memory device and method of operating the same
US11961574B2 (en) Memory device and method of operating the same
US20240036730A1 (en) Memory controller, memory system including the memory controller, and method of operating the same
US20240153546A1 (en) Memory device for performing read protection operation of limiting read operation and method of operating the same
US20240185929A1 (en) Memory device performing read operation and method of operating the same
KR20220113150A (ko) 메모리 장치 및 그 동작 방법
JP2008103076A (ja) データの一部書き換え機能を有する半導体不揮発性メモリ