KR20170007580A - 불휘발성 메모리 모듈 및 그것의 동작 방법 - Google Patents

불휘발성 메모리 모듈 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20170007580A
KR20170007580A KR1020150097289A KR20150097289A KR20170007580A KR 20170007580 A KR20170007580 A KR 20170007580A KR 1020150097289 A KR1020150097289 A KR 1020150097289A KR 20150097289 A KR20150097289 A KR 20150097289A KR 20170007580 A KR20170007580 A KR 20170007580A
Authority
KR
South Korea
Prior art keywords
data
ram
volatile memory
processor
nonvolatile memory
Prior art date
Application number
KR1020150097289A
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 KR1020150097289A priority Critical patent/KR20170007580A/ko
Priority to US15/132,466 priority patent/US10048878B2/en
Publication of KR20170007580A publication Critical patent/KR20170007580A/ko
Priority to US16/044,024 priority patent/US10671299B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • 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

Abstract

본 발명에 따른 불휘발성 메모리 모듈은 복수의 불휘발성 메모리 장치들, 및 복수의 불휘발성 메모리 장치들을 제어하는 장치 컨트롤러를 포함한다. 불휘발성 메모리 모듈의 동작 방법은 서든 파워 오프가 감지된 경우, 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계, 및 판별 결과에 따라 램에 저장된 데이터를 선택적으로 복수의 불휘발성 메모리 장치들 죽 적어도 하나로 플러시하는 단계를 포함한다.

Description

불휘발성 메모리 모듈 및 그것의 동작 방법{NONVOLATILE MEMORY MODULE AND OPERATION METHOD THEREOF}
본 발명은 반도체 메모리에 관한 것으로서, 더욱 상세하게는 불휘발성 메모리 모듈 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.
플래시 메모리는 대용량, 저소음, 저전력 등의 장점으로 인하여 다양한 분야에서 스토리지 장치로 널리 쓰인다. 특히, 플래시 메모리를 기반으로 구현된 솔리드 스테이트 드라이브(SSD)는 개인용 컴퓨터, 노트북, 워크 스테이션, 서버 시스템 등에서 대용량 스토리지로서 사용된다. 일반적인 SSD 장치들은 SATA 인터페이스 또는 PCI-express 인터페이스를 기반으로 컴퓨팅 시스템과 연결된다. 그러나 최근에는 컴퓨팅 시스템에서 처리되는 데이터가 증가함에 따라 SSD 장치들과 연결된 인터페이스의 데이터 대역폭 또는 통신 속도보다 데이터 처리량이 많아져서 데이터 병목 현상이 발생한다. 이러한 현상들은 컴퓨팅 시스템의 성능을 저해하는 요인으로 작용되며, 상술된 문제점을 해결하기 위한 다양한 성능 향상 기법들이 개발되고 있다.
본 발명은 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 모듈 및 그것의 동작 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 모듈은 복수의 불휘발성 메모리 장치들, 및 상기 복수의 불휘발성 메모리 장치들을 제어하는 장치 컨트롤러를 포함한다. 상기 불휘발성 메모리 모듈의 동작 방법은 서든 파워 오프가 감지된 경우, 상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계; 및 상기 판별 결과에 따라 상기 램에 저장된 데이터를 선택적으로 상기 복수의 불휘발성 메모리 장치들 죽 적어도 하나로 플러시하는 단계를 포함한다.
실시 예로서, 상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계는 상기 데이터의 사이즈 및 기준 사이즈를 비교하는 단계; 및 상기 데이터의 사이즈가 상기 기준 사이즈보다 작은 경우, 상기 램에 저장된 데이터가 무효한 것으로 판별하고, 상기 데이터의 사이즈가 상기 기준 사이즈보다 크거나 같은 경우, 상기 램에 저장된 데이터가 유효한 것으로 판별하는 단계를 포함한다.
실시 예로서, 상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계는 상기 데이터와 대응되는 페이즈 비트가 저장되어 있는지 판별하는 단계; 및 상기 대응되는 페이즈 비트가 저장된 경우, 상기 데이터가 유효한 것으로 판별하고, 상기 대응되는 페이즈 비트가 저장되어 있지 않은 경우, 상기 데이터가 무효한 것으로 판별하는 단계를 포함한다.
실시 예로서, 상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계는 상기 데이터의 에러를 검출 및 정정하는 단계; 및 상기 데이터의 에러가 정정된 경우, 상기 데이터가 유효한 것으로 판별하고, 상기 데이텅의 에러가 정정되지 않은 경우, 상기 데이터가 무효한 것으로 판별하는 단계를 포함한다.
실시 예로서, 외부 장치로부터 램 커맨드, 램 어드레스, 및 클럭을 수신하는 단계; 및 상기 수신된 램 커맨드, 램 어드레스, 및 클럭을 기반으로 상기 램에 스토리지 커맨드, 스토리지 어드레스, 쓰기 데이터, 또는 상태 정보를 저장하는 단계를 더 포함한다.
실시 예로서, 상기 데이터는 상기 외부 장치로부터 수신된 상기 스토리지 커맨드, 상기 스토리지 어드레스, 상기 쓰기 데이터, 또는 상기 상태 정보 중 적어도 하나를 포함한다.
실시 예로서, 상기 불휘발성 메모리 모듈은 상기 외부 장치와 DDR(Double Data Rate) 인터페이스를 기반으로 통신한다.
실시 예로서, 상기 동작 방법은 상기 외부 장치로부터 저장 신호를 수신하는 단계; 및 상기 수신된 저장 신호에 응답하여 상기 서든 파워 오프를 감지하는 단계를 더 포함한다.
본 발명의 다른 실시 예에 따른 불휘발성 메모리 모듈은 복수의 불휘발성 메모리 장치들; 및 상기 복수의 불휘발성 메모리 장치들을 제어하는 장치 컨트롤러를 포함하고, 상기 장치 컨트롤러는 램을 포함하고, 상기 불휘발성 메모리 모듈로의 전원이 차단된 경우, 상기 램에 저장된 데이터의 유효성을 판별하고, 상기 판별 결과에 따라 상기 램에 저장된 데이터를 선택적으로 상기 복수의 불휘발성 메모리 장치들 중 적어도 하나로 플러시한다.
실시 예로서, 상기 장치 컨트롤러는 외부 장치로부터 램 커맨드, 램 어드레스, 및 클럭을 수신하고, 상기 수신된 램 커맨드, 상기 램 어드레스, 및 상기 클럭에 응답하여 상기 램에 상기 데이터를 저장한다.
실시 예로서, 상기 데이터는 스토리지 커맨드, 스토리지 어드레스, 쓰기 데이터, 읽기 데이터, 또는 상태 정보 중 적어도 하나를 포함한다.
실시 예로서, 상기 장치 컨트롤러는 상기 데이터를 기반으로 상기 복수의 불휘발성 메모리 장치들을 제어한다.
실시 예로서, 상기 장치 컨트롤러 및 상기 외부 장치는 DDR(Double Data Rate) 인터페이스를 기반으로 서로 통신한다.
실시 예로서, 상기 장치 컨트롤러는 상기 램에 저장된 상기 데이터의 사이즈를 기반으로 상기 데이터의 유효성을 판별한다.
실시 예로서, 상기 장치 컨트롤러는 상기 램에 저장된 상기 데이터와 대응되는 페이즈 비트를 기반으로 상기 데이터의 유효성을 판별한다.
실시 예로서, 상기 페이즈 비트는 상기 장치 컨트롤러와 통신하는 외부 장치에 의해 상기 램에 기입된다.
실시 예로서, 상기 장치 컨트롤러는 상기 램에 저장된 데이터의 에러를 검출 및 정정하는 에러 정정 코드(ECC; Error Correction Code) 엔진을 더 포함하고, 상기 장치 컨트롤러는 상기 EC C 엔진의 에러 정정 결과를 기반으로 상기 램에 저장된 상기 데이터의 유효성을 판별한다.
실시 예로서, 상기 불휘발성 메모리 모듈은 외부 장치로부터 저장 신호를 수신하고, 상기 수신된 저장 신호에 응답하여 상기 플러시 동작을 수행한다.
실시 예로서, 상기 장치 컨트롤러는 상기 램에 저장된 상기 데이터를 선택적으로 플러시한 이후에, 상기 램에 저장된 상기 데이터 전체를 상기 복수의 불휘발성 메모리 장치들 중 적어도 하나로 플러시한다.
본 발명에 따르면, 불휘발성 메모리 모듈은 램에 포함된 데이터의 유효성을 판별하고, 판별 결과에 따라 데이터를 선택적으로 플러시한다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 모듈 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 2는 도 1의 램을 설명하기 위한 도면이다.
도 3은 도 1의 사용자 시스템의 쓰기 동작을 보여주는 순서도이다.
도 4는 도 1의 사용자 시스템의 읽기 동작을 보여주는 순서도이다.
도 5는 도 1의 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 6 및 도 7은 데이터 유효성 판별 동작을 설명하기 위한 도면들이다.
도 8은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다.
도 9는 본 발명의 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 10은 본 발명에 따른 불휘발성 메모리 시스템에 포함된 복수의 불휘발성 메모리 장치들 중 제1 불휘발성 메모리 장치를 예시적으로 보여주는 블록도이다.
도 11은 본 발명에 따른 불휘발성 메모리 시스템이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 12는 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 13은 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 14는 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다.
도 15는 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 16은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 17은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로, 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 당업자에 의해 수행될 수 있다. 더욱이, 잘 알려진 기능들 및 구조들에 대한 설명들은 명확성 및 간결성을 위하여 생략된다. 본문에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 집적적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서의 당업자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기분 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
본 발명의 실시 예에 다른 불휘발성 메모리 모듈은 서든 파워 오프(SPO) 상황에서, 램에 저장된 데이터의 유효성을 판별하고, 판별 결과에 따라 램에 저장된 데이터를 선택적으로 플러시할 수 있다. 따라서, 향상된 성능 및 향상된 신뢰성을 갖는 불휘발성 메모리 모듈이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다. 도 2는 도 1의 램을 설명하기 위한 도면이다. 도 1 및 도 2를 참조하면 사용자 시스템(10)은 프로세서(101) 및 불휘발성 메모리 시스템(100)을 포함한다. 예시적으로, 사용자 시스템(100)은 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 서버 컴퓨터, 넷-북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나를 포함할 수 있다.
프로세서(101)는 데이터를 처리하거나 또는 사용자 시스템(100)에 포함된 구성 요소들을 제어할 수 있다. 예를 들어, 프로세서(101)는 다양한 운영체제를 구동할 수 있고, 운영체제상에서 다양한 애플리케이션들을 실행할 수 있다. 프로세서(101)는 불휘발성 메모리 시스템(100)에 데이터(DATA)를 기입하거나 또는 불휘발성 메모리 시스템(100)에 저장된 데이터(DATA)를 읽을 수 있다.
예시적으로, 프로세서(101)는 불휘발성 메모리 시스템(100)으로 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)을 전송할 수 있다. 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 시스템(100)과 주고받을 수 있다. 예시적으로, 데이터 신호(DQ)는 스토리지 커맨드(CMD_S), 스토리지 어드레스(ADDR_S), 데이터(DATA), 및 상태 정보(STI)를 포함하는 신호일 수 있다.
예시적으로, 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)는 각각 불휘발성 메모리 시스템(100)의 물리 계층(111)에 포함된 램(111b)을 제어하기 위한 커맨드 및 어드레스일 수 있다. 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)는 불휘발성 메모리 시스템(100)에 포함된 복수의 불휘발성 메모리 장치들(131~13n)을 제어하기 위한 커맨드 및 어드레스일 수 있다.
예시적으로, 프로세서(101) 및 불휘발성 메모리 시스템(100) 사이에서 송수신되는 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 클럭(CK), 데이터 신호(DQ), 및 데이터 스트로브 신호(DQS)는 프로세서(101) 및 불휘발성 메모리 시스템(100) 사이의 인터페이스에 의해 미리 정의된 규약에 따를 수 있다. 예시적으로, 프로세서(101) 및 불휘발성 메모리 시스템(100) 사이의 인터페이스는 DDR(Double Data Rate) 인터페이스를 기반으로 할 수 있다. 예를 들어, 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 클럭(CK)은 DDR 인터페이스에 의해 정의된 규약에 따른 신호들일 수 있다.
그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 프로세서(101) 및 불휘발성 메모리 시스템(100) 사이의 인터페이스는 DDR, DDR2, DDR3, DDR4, LPDDR(Low Power DDR), USB (Universal Serial Bus), MMC (multimedia card), embedded MMC, PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer small interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe (Nonvolatile Memory express) 등과 같은 다양한 통신 규격들 중 적어도 하나를 포함할 수 있다.
불휘발성 메모리 시스템(100)은 장치 컨트롤러(110), 버퍼 메모리(120), 복수의 불휘발성 메모리 장치들(131~13n), 및 보조 전원 장치(140)를 포함할 수 있다. 예시적으로, 불휘발성 메모리 시스템(100)은 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(101)로부터 수신된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(101)로부터 수신된 데이터(DATA)를 복수의 불휘발성 메모리 장치들(131~13n) 중 적어도 하나에 저장할 수 있다. 또는, 불휘발성 메모리 시스템(100)은 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(101)로부터 수신된 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)에 응답하여, 복수의 불휘발성 메모리 장치들(131~13n) 중 적어도 하나에 저장된 데이터(DATA)를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(101)로 전송할 수 있다.
예시적으로, 비록 도면에 도시되지는 않았으나, 불휘발성 메모리 시스템(100)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태(form factor)를 가질 수 있고, 프로세서(101)와 전기적 또는 직접적으로 연결된 DIMM 소켓에 장착될 수 있다.
장치 컨트롤러(110)는 물리 계층(111, PHY; PHYsical layer) 및 제어기(112)를 포함할 수 있다. 물리 계층(111)은 램 컨트롤러(111a) 및 램(111b)을 포함할 수 있다. 물리 계층(111)은 프로세서(101)와 전기적으로 직접 연결될 수 있고, 프로세서(101) 및 제어기(112) 사이의 인터페이스를 제공할 수 있다.
램 컨트롤러(111a)는 프로세서(101)로부터 수신된 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)에 응답하여 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신되는 정보 또는 데이터를 램(111b)에 저장하거나 또는 램(111b)에 저장된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(101)로 제공할 수 있다. 예시적으로, 램(111b)은 듀얼 포트 SRAM(Dual Port SRAM), 공유 램(shared RAM) 등과 같은 다중 포트 램(Multi Port RAM)을 포함할 수 있다. 즉, 프로세서(101) 또는 제어기(112)는 각각 독립적인 포트 또는 독립적인 경로를 통해 램(111b)을 엑세스할 수 있다.
예시적으로, 도 2에 도시된 바와 같이 램(111b)은 커맨드 영역(CA; Command Area), 쓰기 영역(WA; Write Area), 읽기 영역(RA; Read Area), 및 상태 영역(STA; STatus Area)을 포함할 수 있다. 커맨드 영역(CA), 쓰기 영역(WA), 읽기 영역(RA), 및 상태 영역(STA) 각각은 프로세서(101)로부터 수신된 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)에 따라 각각 선택될 수 있다.
램(111b)의 커맨드 영역(CA)은 램 컨트롤러(111a)의 제어에 따라 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(101)로부터 수신되는 스토리지 커맨드(CMD_S)를 저장할 수 있다. 제어기(112)는 램(111b)의 커맨드 영역(CA)에 저장된 스토리지 커맨드(CMD_S)를 읽을 수 있다. 예시적으로, 스토리지 커맨드(CMD_S)는 스토리지 어드레스(ADDR_S)를 포함할 수 있고, 스토리지 커맨드(CMD_S) 및 스토리지 어드레스(ADDR_S)는 커맨드 영역(CA)에 저장될 수 있다.
램(111b)의 쓰기 영역(WA)은 램 컨트롤러(111a)의 제어에 따라 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신되는 쓰기 데이터(DATA_W)를 저장할 수 있다. 제어기(111b)는 램(111b)의 쓰기 영역(WA)에 저장된 쓰기 데이터(DATA_W)를 읽을 수 있다.
램(111b)의 읽기 영역(RD)은 제어기(112)의 제어에 따라 읽기 데이터(DATA_R)를 저장할 수 있다. 램(111b)의 읽기 영역(RD)은 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(101)로 전송될 수 있다.
램(111b)의 상태 영역(STA)은 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(101)로부터 수신되는 상태 정보(STI)를 저장하거나 저장된 상태 정보(STI)를 프로세서(101)로 전송할 수 있다. 램(111b)의 상태 영역(STA)은 제어기(112)의 제어에 따라 저장된 상태 정보(STI)를 제어기(112)로 전송하거나 또는 제어기(112)로부터 수신된 상태 정보(STI)를 저장할 수 있다.
제어기(112)는 물리 계층(111)과 통신할 수 있다. 제어기(112)는 버퍼 메모리(120) 및 복수의 불휘발성 메모리 장치들(131~13n) 각각을 제어할 수 있다. 물리 계층(111)의 램(111b)에 스토리지 커맨드(CMD_S)가 기입된 경우, 제어기(112)는 램(111b)에 기입된 스토리지 커맨드(CMD_S)에 대응하는 동작을 수행할 수 있다. 예를 들어, 램(111b)에 기입된 스토리지 커맨드(CMD_S)가 쓰기 커맨드인 경우, 제어기(112)는 램(111b)의 쓰기 영역(WA)에 기입된 쓰기 데이터(DATA_W)를 읽고, 읽은 쓰기 데이터(DATA_W)를 복수의 불휘발성 메모리 장치들(131~13n) 중 적어도 하나에 프로그램할 수 있다. 램(111b)에 기입된 스토리지 커맨드(CMD_S)가 읽기 커맨드인 경우, 제어기(112)는 스토리지 어드레스(ADDR_S)와 대응되는 데이터를 복수의 불휘발성 메모리 장치들(131~13n)로부터 읽고, 읽은 데이터를 램(111b)의 읽기 영역(RA) 읽기 데이터(DATA_S)로서 기입할 수 있다. 예시적으로, 쓰기 동작 및 읽기 동작이 완료된 이후에 제어기(112)는 상태 영역(STA)에 동작 완료를 가리키는 상태 정보(STI)를 기입할 수 있다.
비록 도면에 도시되지는 않았으나, 제어기(112)는 특정 시스템 버스 또는 내부 시스템 버스를 통해 램(111b)을 엑세스할 수 있다. 비록 도면에 도시되지는 않았으나, 제어기(112)는 스크램블러, 데이터 버퍼, 플래시 변환 계층 등과 같은 하드웨어 또는 소프트웨어 구성 요소들을 더 포함할 수 있다. 제어기(112)는 스크램블러를 통해 램(111b)으로부터 읽은 데이터를 디스크램블하거나 또는 램(111b)에 기입될 데이터를 스크램블할 수 있다. 제어기(112)는 데이터 버퍼를 통해 램(111b)으로부터 읽은 데이터를 임시 저장하거나 또는 복수의 불휘발성 메모리 장치들(131~131n)로부터 읽은 데이터를 임시 저장할 수 있다.
제어기(112)는 플래시 변환 계층을 통해 어드레스 변환 동작을 수행할 수 있다. 예를 들어, 스토리지 어드레스(ADDR_S)는 논리적 어드레스일 수 있다. 제어기(112)는 플래시 변환 계층을 통해 프로세서(101)로부터 수신된 스토리지 어드레스(ADDR_S)를 복수의 불휘발성 메모리 장치들(131~13n)의 물리적 어드레스로 변환하는 동작을 수행할 수 있다. 예시적으로, 어드레스 변환 동작에 의해 쓰기 데이터(DATA_W)가 기입될 물리적 위치 또는 읽기 데이터(DATA_R)가 저장된 물리적 위치가 결정될 수 있다. 예시적으로, 물리적 위치는 복수의 불휘발성 메모리 장치들(131~13n)에 대한 물리적 위치를 가리킨다.
예시적으로, 제어기(112)는 램(111b)에 저장된 스토리지 커맨드(CMD_S) 또는 데이터(DATA)를 패킷화하여 관리할 수 있다. 예를 들어, 제어기(112)는 램(111b)의 쓰기 영역(WA)에 저장된 쓰기 데이터(DATA_W)를 읽고, 읽은 쓰기 데이터(DATA_W)를 패킷화하여 복수의 불휘발성 메모리 장치들(131~13n)에 기입하거나 또는 데이터 버퍼에 임시 저장할 수 있다.
버퍼 메모리(120)는 장치 컨트롤러(110)의 버퍼 메모리, 동작 메모리, 또는 캐시 메모리로서 사용될 수 있다. 버퍼 메모리(120)는 불휘발성 메모리 시스템(100)이 동작하는데 요구되는 다양한 정보를 포함할 수 있다. 예시적으로, 버퍼 메모리(120)는 복수의 불휘발성 메모리 장치들(131~13n)을 관리하기 위한 데이터를 포함할 수 있다. 예를 들어, 버퍼 메모리(120)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(101)로부터 수신되는 불휘발성 어드레스(ADDR_S)와 복수의 불휘발성 메모리 장치들(131~13n)의 물리 어드레스 사이의 맵핑 테이블을 포함할 수 있다. 예시적으로, 버퍼 메모리(120)는 SRAM, DRAM, SDRAM, MRAM, ReRAM, PRAM, FRAM 등과 같은 랜덤 엑세스 메모리를 포함할 수 있다.
복수의 불휘발성 메모리 장치들(131~13n)은 복수의 채널들(CH1~CHn)을 통해 장치 컨트롤러(110)와 각각 연결된다. 복수의 불휘발성 메모리 장치들(131~131n)은 장치 컨트롤러(110)의 제어에 따라 수신된 데이터를 프로그램하거나 또는 저장된 데이터를 출력할 수 있다. 예시적으로, 복수의 불휘발성 메모리 장치들(131~13n) 각각은 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 소자들로 구현될 수 있다. 간결한 설명을 위하여, 복수의 불휘발성 메모리 장치들(131~13n) 각각은 낸드 플래시 메모리를 포함하는 것으로 가정한다.
상술된 바와 같이, 불휘발성 메모리 시스템(100)은 램(111b)을 통해 프로세서(101)로부터 스토리지 커맨드(CMD_S), 데이터(DATA), 스토리지 어드레스(ADDR_S) 등을 송수신할 수 있다. 예시적으로, 상술된 바와 같이, 램(111b)은 SRAM과 같은 휘발성 메모리일 수 있다. 즉, 사용자 시스템(10)의 전원이 차단될 경우, (또는 서든 파워 오프(SPO)가 발생할 경우) 램(111b)에 저장된 스토리지 커맨드(CMD_S), 데이터(DATA), 상태 정보(STI)가 소실될 수 있다. 본 발명에 따른 불휘발성 메모리 시스템(100)은 서든 파워 오프 상황을 감지하고, 램(111b)에 저장된 데이터를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다. 이 때, 불휘발성 메모리 시스템(100)은 램(111b)에 저장된 데이터의 유효성을 판별하고, 판별 결과에 따라 램(111b)에 저장된 데이터를 선택적으로 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다.
도 3은 도 1의 사용자 시스템의 쓰기 동작을 보여주는 순서도이다. 도 4는 도 1의 사용자 시스템의 읽기 동작을 보여주는 순서도이다. 먼저, 도 1, 도 2, 및 도 3을 참조하면, S11 단계에서, 프로세서(101)는 램( 111b)의 커맨드 영역(CA)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 시스템(100)으로 전송한다. 이 후, S12 단계에서, 프로세서(101)는 선택된 커맨드 영역(CA)에 스토리지 커맨드(CMD_S)를 기입하기 위한 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 시스템(100)으로 전송한다. 예시적으로, S12 단계의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 쓰기 동작을 위한 스토리지 커맨드(CMD_S)를 포함할 수 있다. 예시적으로, S11 단계 및 S12 단계는 스토리지 커맨드(CMD_S)에 대한 처리 과정(transaction)일 수 있다.
S13 단계에서, 프로세서(101)는 램(111b)의 쓰기 영역(WA)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 시스템(100)으로 전송한다. 이 후, S14 단계에서, 프로세서(101)는 선택된 쓰기 영역(WA)에 쓰기 데이터(DATA_W)를 기입하기 위한 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 시스템(100)으로 전송한다. 예시적으로, S14 단계의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 쓰기 데이터(DATA_W)를 포함할 수 있다. 예시적으로, S13 단계 및 S14 단계는 쓰기 데이터에 대한 처리 과정(Data Transaction)일 수 있다.
S15 단계에서, 프로세서(101)는 램(111b)의 상태 영역(STA)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 시스템(100)으로 전송한다. S16 단계에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 선택된 상태 영역(STA)에 저장된 상태 정보(STI)를 읽을 수 있다. 예시적으로, S16 단계의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 상태 정보(STI)를 포함하고, 램(111b)으로부터 프로세서(101)로 제공되는 신호들일 수 있다.
S17 단계에서, 프로세서(101)는 읽은 상태 정보(STI)를 기반으로 쓰기 동작이 완료되었는지 판별할 수 있다. 예시적으로, 불휘발성 메모리 시스템(100)의 제어기(112)는 램(111b)의 쓰기 영역(WA)에 저장된 쓰기 데이터(DATA_W)에 대한 처리를 완료한 경우, 램(111b)의 상태 영역(STA)에 쓰기 동작의 완료를 가리키는 상태 정보(STI)를 기입할 수 있다. 이 경우, S16 단계에서, 쓰기 동작의 완료를 가리키는 상태 정보(STI)가 프로세서(101)로 전송된다. 프로세서(101)는 수신된 상태 정보(STI)를 쓰기 동작이 완료되었는지 판별할 수 있다.
수신된 상태 정보(STI)가 쓰기 동작의 완료를 가리키지 않는 경우, 프로세서(101)는 S15 단계 내지 S17 단계를 주기적으로 반복 수행할 수 있다. 수신된 상태 정보(STI)가 쓰기 동작의 완료를 가리키는 경우, 사용자 시스템(10)의 쓰기 동작은 종료된다. 예시적으로, S15 단계 내지 S17 단계의 동작들은 쓰기 동작의 완료를 검사하기 위한 처리 과정일 수 있다.
예시적으로, 쓰기 동작이 완료되지 않은 경우, 불휘발성 메모리 시스템(100)의 제어기(112)는 상태 정보(STI)를 램(111b)에 기입하지 않을 것이다. 이 경우, S16 단계에서, 상태 정보(STI)가 프로세서(101)로 전송되지 않거나 또는 다른 상태 정보가 전송될 수 있다. 프로세서(101)는 상태 정보(STI)가 수신되지 않거나 또는 다른 상태 정보가 수신된 경우, 쓰기 동작이 완료되지 않은 것으로 판별하고, S15 단계 내지 S17 단계를 반복 수행할 수 있다.
다음으로, 도 1, 도 2, 및 도 4를 참조하면, S21 단계에서, 프로세서(101)는 램(111b)의 커맨드 영역(CA)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 시스템(100)으로 전송할 수 있다. S22 단계에서, 프로세서(101)는 선택된 커맨드 영역(CA)에 스토리지 커맨드(CMD_S)를 기입하기 위하여 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 시스템(100)으로 전송할 수 있다. 예시적으로, S22 단계의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 읽기 동작을 위한 스토리지 커맨드(CMD_S)를 포함할 수 있다. 예시적으로, S21 단계 및 S22 단계의 동작들은 스토리지 커맨드(CMD_S)에 대한 처리 과정일 수 있다.
S23 단계에서, 프로세서(101)는 상태 영역(STA)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 시스템(100)으로 전송할 수 있다. S24 단계에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 선택된 상태 영역(STA)에 저장된 상태 정보(STI)를 읽을 수 있다. 예시적으로, S24 단계의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 상태 정보(STI)를 포함하고, 램(111b)으로부터 프로세서(101)로 제공되는 신호들일 수 있다.
S25 단계에서, 프로세서(101)는 읽은 상태 정보(STI)를 기반으로 읽기 동작이 완료되었는지 판별할 수 있다. 읽기 동작이 완료되지 않은 경우, 프로세서(101)는 S23 단계 내지 S24 단계의 동작들을 주기적으로 반복 수행할 수 있다. 예시적으로, S23 단계 내지 S25 단계의 동작들은 읽기 동작의 완료를 검사하기 위한 처리 과정일 수 있다.
예시적으로, 불휘발성 메모리 시스템(100)이 읽기 동작을 완료하지 않은 경우, 불휘발성 메모리 시스템(100)의 제어기(112)는 읽기 동작의 완료를 가리키는 상태 정보(STI)를 램(111b)에 기입하지 않을 수 있다. 이 경우, S24 단계에서, 상태 정보(STI)가 프로세서(101)로 전송되지 않을 수 있다. 상태 정보(STI)가 전송되지 않은 경우, 프로세서(101)는 S23 단계 내지 S25 단계를 반복 수행할 수 있다.
읽은 상태 정보(STI)가 읽기 동작의 완료를 가리키는 경우, S26 단계에서, 프로세서(101)는 램(111b)의 읽기 영역(RA)을 선택하기 위한 램 커맨드(CMD_R) 및 램 어드레스(ADDR_R)를 불휘발성 메모리 시스템(100)으로 전송한다. S27 단계에서, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 선택된 읽기 영역(RA)에 저장된 읽기 데이터(DATA_R)를 읽을 수 있다. 예시적으로, S27 단계의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)는 읽기 데이터(DATA_R)를 포함하고, 램(111b)으로부터 프로세서(101)로 제공되는 신호들일 수 있다.
도 5는 도 1의 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 1, 도 2, 및 도 5를 참조하면, S110 단계에서, 불휘발성 메모리 시스템(100)은 SPO를 감지할 수 있다. 예시적으로, 불휘발성 메모리 시스템(100)은 프로세서(101) 또는 외부로부터 제공되는 전원의 차단을 직접 감지하거나 또는, 프로세서(101)로부터 저장 신호(SAVE_n, 미도시)를 수신하고, 수신된 저장 신호를 기반으로 SPO 상황을 감지할 수 있다.
S120 단계에서, 불휘발성 메모리 시스템(100)은 램(111b)에 저장된 데이터의 유효성을 판별할 수 있다. 예를 들어, 불휘발성 메모리 시스템(100)은 프로세스(101)로부터 쓰기 데이터(DATA_W)를 수신하는 도중에 SPO를 감지할 수 있다. 이 때, 쓰기 데이터(DATA_W)는 프로세서(101)로부터 일부만 수신된 상태일 수 있다. 이 경우, 램(111b)에 저장된 쓰기 데이터(DATA_W)의 일부는 유효하지 않은(즉, 무효한) 데이터일 것이다. 불휘발성 메모리 시스템(100)의 제어기(112)는 램(111b)에 저장된 데이터의 유효성을 판별할 수 있다. 예시적으로, 제어기(112)는 램(111b)에 저장된 데이터의 크기, 페이즈 비트 등을 기반으로 유효성을 판별할 수 있다.
S130 단계에서, 불휘발성 메모리 시스템(100)은 판별 결과를 기반으로 램(111b)에 저장된 데이터를 선택적으로 플러시할 수 있다. 예를 들어, 불휘발성 메모리 시스템(100)은 램(111b)에 저장된 데이터 중 유효한 것으로 판별된 데이터만 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다.
예시적으로, 본 발명에 따른 기술적 사상은 램(111b)에 저장된 데이터(DATA)에 한정되는 것은 아니다. 앞서 설명된 바와 같이, 램(111b)은 스토리지 커맨드(CMD_S), 스토리지 어드레스(ADDR_S), 쓰기 데이터(DATA_W), 읽기 데이터(DATA_R), 또는 상태 정보(STI)를 포함할 수 있다. 불휘발성 메모리 시스템(100)은 램(111b)에 저장된 스토리지 커맨드(CMD_S), 스토리지 어드레스(ADDR_S), 쓰기 데이터(DATA_W), 읽기 데이터(DATA_R), 또는 상태 정보(STI) 각각의 유효성을 판별하고, 판별 결과에 따라, 유효한 것으로 판별된 정보를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다.
이하에서, 간결한 설명을 위하여, 불휘발성 메모리 시스템(100)이 램(111b)에 저장된 데이터(DATA)의 유효성을 판별하는 것으로 가정한다. 그러나, 상술된 바와 같이, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 6 및 도 7은 데이터 유효성 판별 동작을 설명하기 위한 도면들이다. 예시적으로, 도 6을 참조하여, 데이터 사이즈에 기반된 데이터 유효성 판별이 설명된다. 도 7을 참조하여, 페이즈 비트(Phase Bit)에 기반된 데이터 유효성 판별이 설명된다.
먼저 도 1, 도 2, 및 도 6을 참조하면, 불휘발성 메모리 시스템(100)은 램(111b)에 저장된 데이터의 사이즈를 기반으로 데이터 유효성 판별을 수행할 수 있다. 예를 들어, 불휘발성 메모리 시스템(100) 및 프로세서(101)는 미리 정해진 데이터 단위를 기반으로 데이터를 서로 주고 받을 수 있다. 미리 정해진 데이터 단위는 프로세서(101)에 의해 관리되는 데이터 크기를 가리킬 수 있다. 또는 미리 정해진 데이터 단위는 불휘발성 메모리 시스템(100)의 쓰기 또는 읽기 단위일 수 있다.
예시적으로, 불휘발성 메모리 시스템(100)이 프로세서(101)로부터 데이터(DATA)(특히, 쓰기 데이터)를 수신하는 경우, 프로세서(101)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 데이터(DATA)를 불휘발성 메모리 시스템(100)으로 전송할 것이다. 데이터(DATA)는 복수의 비트들을 포함하고, 데이터(DATA)에 포함된 복수의 비트들은 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 순차적으로 불휘발성 메모리 시스템(100)으로 전송될 것이다. 이 때, 데이터(DATA)에 복수의 비트들이 불휘발성 메모리 시스템(100)으로 전송되는 도중에 SPO가 발생할 수 있다. 이 경우, 데이터(DATA)에 포함된 모든 비트들이 불휘발성 메모리 시스템(100)의 램(111b)에 저장되지 않기 때문에, 전송 중인 데이터(DATA)의 유효성은 보장되지 않을 것이다.
즉, 불휘발성 메모리 시스템(100)은 수신된 데이터(즉, 램(111b)에 저장된 데이터)의 크기를 기반으로 데이터의 유효성을 판별할 수 있다. 예를 들어, 제1 내지 제4 데이터(DATA1~DATA4)가 저장될 수 있다. 예시적으로, 제1 내지 제 4 데이터(DATA1~DATA4) 각각은 제1 내지 제4 바이트들(B1~B4)를 포함하고, 제1 내지 제4 바이트들(B1~B4)은 프로세서(101)에 의해 관리되는 데이터 사이즈와 대응되는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
도 6에 도시된 바와 같이, 제1 내지 제4 데이터(DATA1~DATA4)가 램(111b)에 저장될 수 있다. 이 때, 제1 및 제3 데이터(DATA1, DATA3)의 모든 바이트들(즉, 제1 내지 제4 바이트들(B1~B4))이 램(111b)에 저장된 상태일 수 있다. 반면에, 제2 및 제4 데이터(DATA2, DATA4)는 각각 제1 내지 제3 바이트들(B1~B3), 및 제1 및 제2 바이트들(B1, B2)만 램(111b)에 저장된 상태일 수 있다. 상술된 바와 같이, 제1 및 제3 데이터(DATA1, DATA3)는 프로세서(101)로부터 모든 바이트가 수신된 상태이므로, 유효한 데이터일 것이다. 그러나, 제2 및 제4 데이터(DATA2, DATA4)는 모든 바이트들이 수신되지 않은 상태이므로, 유효하지 않은 데이터일 것이다.
불휘발성 메모리 시스템(100)은 램(111b)에 저장된 데이터 중 미리 정해진 데이터 단위를 만족하는 데이터를 유효한 데이터인 것으로 판별한다. 예를 들어, 불휘발성 메모리 시스템(100)은 모든 바이트가 수신된 제1 및 제3 데이터(DATA1, DATA3)를 유효한 데이터로서 판별할 수 있다. 이 때, 제1 및 제3 데이터(DATA1, DATA3)는 프로세서(101)에 의해 관리되는 미리 정해진 데이터 단위와 동일한 사이즈일 것이다.
불휘발성 메모리 시스템(100)은 유효한 것으로 판별된 제1 및 제3 데이터(DATA1, DATA3)를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다.
다음으로, 도 1, 도 2, 및 도 7을 참조하면, 프로세서(101)는 쓰기 데이터(DATA)를 불휘발성 메모리 시스템(100)으로 모두 전송한 이후에, 페이즈 비트(PB; Phase Bit)를 기입할 수 있다. 페이즈 비트(PB)는 대응하는 쓰기 데이터(DATA)가 램(111b)에 모두 기입되었음을 가리키는 정보를 포함할 수 있다. 즉, 대응되는 페이즈 비트(PB)가 기입된 경우, 대응되는 쓰기 데이터는 램(111b)에 기입된 상태이며, 유효한 상태일 것이다. 그러나, 대응되는 페이지 비트(PB)가 기입되지 않은 경우, 대응되는 쓰기 데이터의 유효성은 보장되지 않을 것이다.
불휘발성 메모리 시스템(100)은 SPO 감지시, 페이즈 비트(PB)를 기반으로 램(111b)에 저장된 데이터의 유효성을 판별할 수 있다. 예를 들어, SPO 발생시, 램(111b)에 제1 내지 제4 데이터(DATA1~DATA4)가 기입된 상태일 수 있다. 제1 및 제2 데이터(DATA1, DATA2) 각각과 대응되는 제1 및 제2 페이즈 비트들(PB1, PB2)이 램(111b)의 특정 영역에 기입될 수 있다. 제1 및 제2 페이즈 비트들(PB1, PB2)이 램(111b)에 기입된 것은 제1 및 제2 데이터(DATA1, DATA2)가 유효함을 의미할 것이다.
예시적으로, 제1 및 제2 페이즈 비트들(PB1, PB2)은 프로세서(101)에 의해 기입될 수 있다. 예를 들어, 프로세서(101)는 제1 데이터(DATA1)를 램(111b)에 모두 기입한 이후에, 제1 데이터(DATA1)에 대응되는 제1 페이즈 비트(PB1)를 램(111b)에 기입할 수 있다. 마찬가지로, 프로세서(101)는 제3 데이터(DATA3)를 모두 기입한 이후에, 제3 데이터(DATA3)에 대응되는 제3 페이즈 비트(PB2)를 램(111b)에 기입할 수 있다.
불휘발성 메모리 시스템(100)은 SPO 감지시, 제1 및 제3 페이즈 비트들(PB1, PB2)을 기반으로 제1 및 제3 데이터(DATA1, DATA3)가 유효함을 판별할 수 있다. 불휘발성 메모리 시스템(100)은 유효한 것으로 판별된 제1 및 제3 데이터(DATA1, DATA3)를 복수의 불휘발성 메모리 장치들(131, 13n)로 플러시할 수 있다.
예시적으로, 복수의 불휘발성 메모리 장치들(131, 13n)로 플러시된 데이터는 추 후 파워 온되거나 또는 복원 동작시, 램(111b)으로 다시 복원될 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 불휘발성 메모리 시스템(100)은 SPO 발생시, 램(111b)에 저장된 데이터를 보장하기 위하여, 램(111b)에 저장된 데이터를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시한다. 이 때, 불휘발성 메모리 시스템(100)은 램(111b)에 저장된 데이터의 유효성을 판별하고, 유효한 것으로 판별된 데이터를 선택적으로 복수의 불휘발성 메모리 장치들(131~13n)로 플러시한다. 상술된 바와 같이, 유효한 데이터를 선택적으로 플러시 함으로써, 데이터 유효성을 보장할 수 있고, 무효한 데이터를 복수의 불휘발성 메모리 장치들(131~13n)에 저장하지 않음으로써 데이터 신뢰성이 향상된다. 또한, 유효한 데이터만 선택적으로 플러시되기 때문에, 플러시 동작의 오버헤드가 감소된다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템(또는 불휘발성 메모리 모듈)이 제공된다.
도 8은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 시스템이 적용된 사용자 시스템을 보여주는 블록도이다. 도 8을 참조하면, 사용자 시스템(20)은 프로세서(201) 및 불휘발성 메모리 시스템(200)을 포함한다. 불휘발성 메모리 시스템(200)은 장치 컨트롤러(210), 버퍼 메모리(220), 및 복수의 불휘발성 메모리 장치들(231~23n)을 포함한다. 장치 컨트롤러(210)는 물리 계층(211) 및 제어기(212)를 포함한다. 물리 계층(211)은 램 컨트롤러(211a) 및 램(211b)을 포함한다. 프로세서(201), 불휘발성 메모리 시스템(200), 장치 컨트롤러(210), 버퍼 메모리(220), 복수의 불휘발성 메모리 장치들(231~23n), 물리 계층(211), 램 컨트롤러(211a), 및 램(211b)은 도 1을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
제어기(212)는 에러 정정 코드 엔진(212a)(ECC engine; error correction code engine)을 포함한다. ECC 엔진(212a)은 프로세서(201)로부터 수신된 스토리지 커맨드(CMD_S), 데이터(DATA) 등의 에러를 검출 및 정정할 수 있다. 예를 들어, 프로세서(201)는 스토리지 커맨드(CMD_S), 데이터(DATA) 등에 대한 에러 정정 코드를 생성할 수 있다. 프로세서(201)는 생성된 에러 정정 코드와 함께 스토리지 커맨드(CMD_S) 및 데이터(DATA)를 불휘발성 메모리 시스템(200)으로 전송할 수 있다. ECC 엔진(212a)은 수신된 에러 정정 코드를 사용하여 스토리지 커맨드(CMD_S) 및 데이터(DATA)의 에러를 검출 및 정정할 수 있다.
예시적으로, 정상적으로 스토리지 커맨드(CMD_S) 또는 데이터(DATA)가 수신된 경우, 스토리지 커맨드(CMD_S) 또는 데이터(DATA)의 에러는 ECC 엔진(212a)에 의해 검출 및 정정될 수 있다. 그러나, 스토리지 커맨드(CMD_S) 또는 데이터(DATA)가 정상적으로 수신되지 않은 경우, 스토리지 커맨드(CMD_S) 또는 데이터(DATA)의 에러가 ECC 엔진(212a)에 의해 정정되지 않을 것이다. 이 경우, 프로세서(201)로부터 수신되거나 또는 램(211b)에 저장된 스토리지 커맨드(CMD_S) 또는 데이터(DATA)의 유효성을 보장할 수 없다.
본 발명에 따른 불휘발성 메모리 시스템(200)은 SPO를 감지하고, 램(211b)에 저장된 데이터의 유효성을 판별하고, 판별 결과에 따라 데이터를 선택적으로 플러시한다. 이 때, 불휘발성 메모리 시스템(200)은 ECC 엔진(212a)의 에러 정정 결과를 기반으로 램(211b)에 저장된 데이터의 유효성을 판별할 수 있다. 예를 들어, 상술된 바와 같이, 프로세서(201)로부터 수신된 데이터가 유효한 경우, ECC 엔진(212a)에 의해 데이터의 에러는 정정될 것이다. 이와 반대로, 프로세서(201)로부터 수신된 데이터가 무효한 경우,(즉, 데이터의 모든 비트들이 수신되지 않은 경우) ECC 엔진(212a)에 의해 데이터의 에러가 정정되지 않을 것이다. 불휘발성 메모리 시스템(200)은 ECC 엔진(212a)의 에러 정정 결과에 따라 데이터의 유효성을 판별하고, 판별된 결과를 기반으로 데이터를 선택적으로 플러시할 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다. 도 1 및 도 9를 참조하면, 불휘발성 메모리 시스템(100)은 S210 단계 내지 S230 단계의 동작들을 수행할 수 있다. S210 단계 내지 S230 단계의 동작들은 도 5의 S110 단계 내지 S130 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S240 단계에서, 불휘발성 메모리 시스템(100)은 램(111b)에 기입된 데이터를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다. 이 때, 불휘발성 메모리 시스템(100)은 S230 단계의 동작과 달리 램(111b)에 저장된 정보 전체를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시한다. 즉, 불휘발성 메모리 시스템(100)은 S230 단계의 플러시 동작을 통해 유효한 데이터를 선택적으로 플러쉬하고, S240 단계의 플러시 동작을 통해, 램(111b)에 저장된 정보 전체를 플러시한다. 램(111b)에 저장된 전체 정보를 플러시함으로써 이 후 복원 동작시의 신뢰성을 향상시킬 수 있다.
상술된 바와 같이 본 발명의 실시 예들에 따른 불휘발성 메모리 시스템은 SPO 발생시, 램에 저장된 데이터의 유효성을 판별하고, 판별 결과에 따라 데이터를 선택적으로 플러시할 수 있다. 이 때, 불휘발성 메모리 시스템은 램에 저장된 데이터의 사이즈, 페이즈 비트, ECC 동작 결과를 기반으로 데이터의 유효성을 판별할 수 있다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템이 제공된다.
도 10은 본 발명에 따른 불휘발성 메모리 시스템에 포함된 복수의 불휘발성 메모리 장치들 중 제1 불휘발성 메모리 장치를 예시적으로 보여주는 블록도이다. 도 10을 참조하면, 불휘발성 메모리 장치(131)는 메모리 셀 어레이(131a), 어드레스 디코더(131b), 제어 로직 및 전압 발생 회로(131c), 페이지 버퍼(131d), 및 입출력 회로(131e)를 포함한다.
메모리 셀 어레이(131a)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 셀 스트링들을 포함할 수 있다. 복수의 셀 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 워드라인들(WL)과 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 단일 레벨 셀(SLC; Single Level Cell) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(MLC; Multi Level Cell)을 포함할 수 있다.
어드레스 디코더(131b)는 복수의 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(131a)와 연결된다. 어드레스 디코더(131b)는 외부 장치(예를 들어, 장치 컨트롤러(110))로부터 물리 어드레스(ADDR_P)를 수신하고, 수신된 물리 어드레스(ADDR)를 디코딩하여, 복수의 워드라인들(WL)을 구동할 수 있다. 예를 들어, 어드레스 디코더(131b)는 외부 장치로부터 수신된 물리 어드레드(ADDR_P)를 디코딩하고, 디코딩된 물리 어드레스(ADDR_P)를 기반으로 복수의 워드라인들(WL) 중 적어도 하나의 워드라인을 선택하고, 선택된 적어도 하나의 워드라인을 구동할 수 있다. 예시적으로, 물리 어드레스(ADDR_P)는 스토리지 어드레스(ADDR_S, 도 1 및 도 2 참조)가 변환된, 제1 불휘발성 메모리(131)의 물리 어드레스를 가리킨다. 상술된 어드레스 변환 동작은 장치 컨트롤러(110) 또는 장치 컨트롤러(110)에 의해 구동되는 플래시 변환 계층(FTL)에 의해 수행될 수 있다.
제어 로직 및 전압 발생 회로(131c)는 외부 장치로부터 스토리지 커맨드(CMD_S) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(131b), 페이지 버퍼(131d), 및 입출력 회로(131e)를 제어할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(131c)는 신호들(CMD_S, CTRL)에 응답하여 데이터(DATA)가 메모리 셀 어레이(131a)에 저장되도록 다른 구성 요소들을 제어할 수 있다. 또는 제어 로직 및 전압 발생 회로(131c)는 신호들(CMD_S, CTRL)에 응답하여 메모리 셀 어레이(131a)에 저장된 데이터(DATA)가 외부 장치로 전송되도록 다른 구성 요소들을 제어할 수 있다. 예시적으로, 외부 장치로부터 수신된 스토리지 커맨드(CMD_S)는 도 1의 스토리지 커맨드(CMD_S)가 변형된 커맨드일 수 있다. 제어 신호(CTRL)는 장치 컨트롤러(110)가 불휘발성 메모리(131)를 제어하기 위하여 제공하는 신호일 수 있다.
제어 로직 및 전압 발생 회로(131c)는 불휘발성 메모리(131)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(131c)는 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들과 같은 다양한 전압들을 생성할 수 있다. 제어 로직 및 전압 발생 회로(131c)는 생성된 다양한 전압들을 어드레스 디코더(131b)로 제공하거나 또는 메모리 셀 어레이(131a)의 기판으로 제공할 수 있다.
페이지 버퍼(131d)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(131a)와 연결된다. 페이지 버퍼(131d)는 제어 로직 및 전압 발생 회로(131c)의 제어에 따라 입출력 회로(131e)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(131a)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(131d)는 제어 로직 및 전압 발생 회로(131c)의 제어에 따라 메모리 셀 어레이(110)에 저장된 데이터를 읽고, 읽은 데이터를 입출력 회로(131e)로 전달할 수 있다. 예시적으로, 페이지 버퍼(131d)는 입출력 회로(131e)로부터 페이지 단위로 데이터를 수신하거나 또는 메모리 셀 어레이(131a)로부터 페이지 단위로 데이터를 읽을 수 있다.
입출력 회로(131a)는 외부 장치로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 페이지 버퍼(131d)로 전달할 수 있다. 또는 입출력 회로(131e)는 페이지 버퍼(131d)로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 외부 장치(예를 들어, 장치 제어기(110))로 전달할 수 있다. 예시적으로, 입출력 회로(160)는 제어 신호(CTRL)와 동기되어 외부 장치와 데이터(DATA)를 송수신할 수 있다.
예시적으로, 본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 복수의 불휘발성 메모리 장치들(131~13n) 각각은 3차원 메모리 어레이를 포함할 수 있다. 3차원 메모리 어레이는, 실리콘 기판 및 메모리 셀들의 동작에 연관된 회로의 위에 배치되는 활성 영역을 갖는 메모리 셀들의 어레이들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성될 수 있다. 메모리 셀들의 동작에 연관된 회로는 기판 내에 또는 기판 위에 위치할 수 있다. 모놀리식(monolithical)이란 용어는, 3차원 어레이의 각 레벨의 층들이 3차원 어레이의 하위 레벨의 층들 위에 직접 증착됨을 의미한다.
본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 3차원 메모리 어레이는 수직의 방향성을 가지며, 적어도 하나의 메모리 셀이 다른 하나의 메모리 셀 위에 위치하는 수직 NAND 스트링들을 포함한다. 적어도 하나의 메모리 셀은 전하 트랩 층을 포함한다. 각각의 수직 NAND 스트링은 메모리 셀들 위에 위치하는 적어도 하나의 선택 트랜지스터를 포함할 수 있다. 적어도 하나의 선택 트랜지스터는 메모리 셀들과 동일한 구조를 갖고, 메모리 셀들과 함께 모놀리식으로 형성될 수 있다.
3차원 메모리 어레이가 복수의 레벨들로 구성되고, 레벨들 사이에 공유된 워드 라인들 또는 비트 라인들을 갖고, 3차원 메모리 어레이에 적합한 구성은 미국등록특허공보 제7,679,133호, 미국등록특허공보 제8,553,466호, 미국등록특허공보 제8,654,587호, 미국등록특허공보 제8,559,235호, 그리고 미국공개특허공보 제2011/0233648호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
도 11은 본 발명에 따른 불휘발성 메모리 시스템이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다. 도 11을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100), 불휘발성 메모리 모듈들(1200, 1201), 램 모듈들(1300, 1301), 칩셋(1400), GPU(1500), 입출력 장치(1600), 및 스토리지 장치(1700)를 포함한다.
프로세서(1100)는 컴퓨팅 시스템(1000)의 제반 동작을 제어할 수 있다. 프로세서(1100)는 컴퓨팅 시스템(1000)에서 수행되는 다양한 연산을 수행할 수 있다.
불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301)은 프로세서(1100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301) 각각은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 가질 수 있고, 불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301) 각각은 프로세서(1100)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. 예시적으로, 불휘발성 메모리 모듈들(1200, 1201)은 도 1 내지 도 9를 참조하여 설명된 불휘발성 메모리 시스템(100, 200)일 수 있다.
불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301)은 동일한 인터페이스(1001)를 통해 프로세서(1100)와 통신할 수 있다. 예를 들어, 불휘발성 메모리 모듈들(1200, 1201) 및 램 모듈들(1300, 1301) DDR(Double Data Rate) 인터페이스(1001)를 통해 통신할 수 있다. 예시적으로, 프로세서(1100)는 램 모듈들(1300, 1301)을 컴퓨팅 시스템(1000)의 동작 메모리, 버퍼 메모리, 또는 캐시 메모리로서 사용할 수 있다.
칩셋(1400)은 프로세서(1100)와 전기적으로 연결되고, 프로세서(1100)의 제어에 따라 컴퓨팅 시스템(1000)의 하드웨어를 제어할 수 있다. 예를 들어, 칩셋(1400)은 주요 버스들을 통해 GPU(1500), 입출력 장치(1600), 및 스토리지 장치(1700) 각각과 연결되고, 주요 버스들에 대한 브릿지 역할을 수행할 수 있다.
GPU(1500)는 컴퓨팅 시스템(1000)의 영상 데이터를 출력하기 위한 일련의 연산 동작을 수행할 수 있다. 예시적으로 GPU(1500)는 시스템-온-칩 형태로 프로세서(1100) 내에 실장될 수 있다.
입출력 장치(1600)는 컴퓨팅 시스템(1000)으로 데이터 또는 명령어를 입력하거나 또는 외부로 데이터를 출력하는 다양한 장치들을 포함한다. 예르르 들어, 입출력 장치(1600)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 마이크, 자이로스코프 센서, 진동 센서, 압전 소자 등과 같은 사용자 입력 장치들 및 LCD (Liquid Crystal Display), OLED (Organic Light Emitting Diode) 표시 장치, AMOLED (Active Matrix OLED) 표시 장치, LED, 스피커, 모터 등과 같은 사용자 출력 장치들을 포함할 수 있다.
스토리지 장치(1700)는 컴퓨팅 시스템(1000)의 저장 매체로서 사용될 수 있다. 스토리지 장치(1600)는 하드 디스크 드라이브, SSD, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.
예시적으로, 불휘발성 메모리 모듈들(1200, 1201)은 프로세서(1100)에 의해 컴퓨팅 시스템(1000)의 대용량 저장 매체로서 사용될 수 있다. 불휘발성 메모리 모듈들(1200, 1201) 및 프로세서(1100) 사이의 인터페이스(1001)는 스토리지 장치(1700) 및 프로세서(1100) 사이의 인터페이스보다 고속 인터페이스일 수 있다. 즉, 프로세서(1100)가 불휘발성 메모리 모듈들(1200, 1201)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다.
도 12는 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 12는 RDIMM(Registered DIMM) 형태를 갖는 불휘발성 메모리 모듈(1200)의 블록도이다. 예시적으로, 도 12에 도시된 불휘발성 메모리 모듈(1200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 12를 참조하면, 불휘발성 메모리 모듈(1200)은 장치 컨트롤러(1210), 버퍼 메모리(1220), 불휘발성 메모리 장치(1230), 및 직렬 프레즌스 검출 칩(1240)(SPD; Serial Presence Detect chip)를 포함한다. 장치 컨트롤러(1210)는 램(1211)을 포함할 수 있다. 예시적으로, 불휘발성 메모리 장치(1230)는 복수의 불휘발성 메모리들(NVM)을 포함할 수 있다. 불휘발성 메모리 장치(1230)에 포함된 복수의 불휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 불휘발성 메모리 장치(1230)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.
예시적으로, 장치 컨트롤러(1210), 램(1211), 버퍼 메모리(1220), 및 불휘발성 메모리 장치(1230)은 도 1 내지 도 8을 참조하여 설명된 장치 컨트롤러, 램, 버퍼 메모리, 및 복수의 불휘발성 메모리 장치들과 동일하거나 또는 유사하게 동작할 수 있다. 즉, 불휘발성 메모리 모듈(1200)은 도 1 내지 도 9를 참조하여 설명된 불휘발성 메모리 시스템일 수 있다.
예시적으로, 장치 컨트롤러(1210)는 프로세서(1100)와 복수의 데이터 신호들(DQ) 및 복수의 데이터 스트로브 신호들(DQS)을 송수신할 수 있고, 별도의 신호 라인들을 통해 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)을 수신할 수 있다. 예시적으로, 장치 컨트롤러(1210)는 프로세서(1100)로부터 저장 신호(SAVE_n)를 수신할 수 있다.
SPD(1240)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1240)는 불휘발성 메모리 모듈(1200)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1240)는 불휘발성 메모리 모듈(1200)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 불휘발성 메모리 모듈(1200)이 포함된 컴퓨팅 시스템이 부팅될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1240)를 읽고, 이를 기반으로 불휘발성 메모리 모듈(1200)을 인식할 수 있다. 프로세서(1100)는 SPD(1240)를 기반으로 불휘발성 메모리 모듈(1200)을 저장 매체로서 사용할 수 있다.
예시적으로, SPD(1240)는 직렬 버스(SB)를 통해 프로세서(1100)와 통신할 수 있다. 프로세서(1100)는 직렬 버스(SB)를 통해 SPD(1240)와 신호(SBS)를 주고 받을 수 있다. 예시적으로, SPD(1240)는 직렬 버스(SB)를 통해 장치 컨트롤러(1210)와 통신할 수 있다. 예시적으로, 직렬 버스(SB)는 I2C, SMBus, PMBus, IPMI, MCTP 등과 같은 2라인 직렬 버스들 중 적어도 하나를 포함할 수 있다.
도 13은 도 11의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 13은 LRDIMM(Load Reduced DIMM) 형태를 갖는 불휘발성 메모리 모듈(2200)의 블록도이다. 예시적으로, 도 13에 도시된 불휘발성 메모리 모듈(2200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 13을 참조하면, 불휘발성 메모리 모듈(2200)은 장치 컨트롤러(2210), 버퍼 메모리(2220), 불휘발성 메모리 장치(2230), 직렬 프레즌스 검출 칩(2240)(SPD; Serial Presence Detect chip), 및 데이터 버퍼 회로(2250)를 포함한다. 장치 컨트롤러(2210)는 램(2211)을 포함한다. 장치 컨트롤러(2210), 램(2211), 불휘발성 메모리 장치(2230), 및 SPD(2240)는 도 1 및 도 12를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
데이터 버퍼 회로(2250)는 프로세서(1100, 도 11 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 장치 컨트롤러(2250)로 전달할 수 있다. 또는 데이터 버퍼 회로(2250)는 장치 컨트롤러(2210)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.
예시적으로, 데이터 버퍼 회로(2250)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 장치 컨트롤러(2210)와 신호를 주고 받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 장치 컨트롤러(2210)의 제어에 따라 동작할 수 있다.
예시적으로, 장치 컨트롤러(2210)는 도 1 내지 도 9를 참조하여 설명된 동작 방법에 따라 램(2211)에 저장된 데이터의 유효성을 판별하고, 판별 결과에 따라 플러시 동작을 수행할 수 있다.
도 14는 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 도 14를 참조하면, 컴퓨팅 시스템(3000)은 프로세서(3100), 불휘발성 메모리 모듈(3200), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)를 포함한다. 프로세서(3100), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)는 도 11을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
불휘발성 메모리 모듈(3200)은 프로세서(3100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈(3200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.
불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함할 수 있다. 도 10 내지 도 12를 참조하여 설명된 불휘발성 메모리 모듈들(1200, 2200)과 달리, 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 불휘발성 메모리 장치(3220) 및 램 장치(3230)를 각각 엑세스할 수 있다. 좀 더 상세한 예로서, 제어 회로(3210)는 프로세서(3100)의 제어에 따라 수신된 데이터를 불휘발성 메모리 장치(3210)에 저장하거나 또는 램 장치(3220)에 저장할 수 있다. 또는 제어 회로(3210)는 프로세서(3100)의 제어에 따라 불휘발성 메모리 장치(3210)에 저장된 데이터를 프로세서(3100)로 전송하거나 또는 램 장치(3220)에 저장된 데이터를 프로세서(3100)로 전송할 수 있다. 즉, 프로세서(3100)는 불휘발성 메모리 모듈(3200)에 포함된 불휘발성 메모리 장치(3210) 및 램 장치(3220)를 각각 인식할 수 있다. 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 불휘발성 메모리 장치(3220)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다. 또는 프로세서(3100)는 램 장치(3230)에 데이터를 저장하거나 또는 저장된 데이터를 읽을 수 있다.
예시적으로, 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 불휘발성 메모리 장치(3220)을 컴퓨팅 시스템(3000)의 스토리지 매체로서 사용할 수 있고, 프로세서(3100)는 불휘발성 메모리 모듈(3200)의 램 장치(3220)를 컴퓨팅 시스템(3000)의 메인 메모리로서 사용할 수 있다. 즉, 프로세서(3100)는 하나의 DIMM 소켓에 장착된 하나의 메모리 모듈에 포함된 불휘발성 메모리 장치 또는 램 장치를 각각 선택적으로 엑세스할 수 있다.
예시적으로, 프로세서(3100)는 DDR(Double Data Rate) 인터페이스(3001)를 통해 불휘발성 메모리 모듈(3200)과 통신할 수 있다.
도 15는 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 14 및 도 15를 참조하면, 불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3220)를 포함한다. 예시적으로, 불휘발성 메모리 장치(3220)는 복수의 불휘발성 메모리들을 포함할 수 있고, 램 장치(3230)는 복수의 DRAM들을 포함할 수 있다. 예시적으로, 복수의 불휘발성 메모리들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 스토리지로서 사용될 수 있다. 예시적으로, 복수의 불휘발성 메모리들 각각은 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 불휘발성 메모리 소자들을 포함할 수 있다.
복수의 DRAM들은 프로세서(3100)에 의해 컴퓨팅 시스템(3000)의 메인 메모리로서 사용될 수 있다. 예시적으로, 램 장치(3230)는 DRAM, SRAM, SDRAM, PRAM, ReRAM, FRAM, MRAM 등과 같은 랜덤 엑세스 메모리 소자들을 포함할 수 있다.
제어 회로(3210)는 장치 컨트롤러(3211) 및 SPD(3212)를 포함한다. 장치 컨트롤러(3211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신할 수 있다. 장치 컨트롤러(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 불휘발성 메모리 장치(3220) 또는 램 장치(3230)에 선택적으로 저장할 수 있다. 또는 장치 컨트롤러(3211)는 프로세서(3100)로부터 수신된 신호들에 응답하여, 불휘발성 메모리 장치(3220) 또는 램 장치(3230)에 저장된 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(3100)로 선택적으로 전송할 수 있다.
예시적으로, 프로세서(3100)는 커맨드(CMD), 어드레스(ADDR), 또는 별도의 신호 또는 별도의 정보를 통해 불휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. 즉, 프로세서(3100)는 불휘발성 메모리 모듈(3200)에 포함된 불휘발성 메모리 장치(3220) 또는 램 장치(3230)를 선택적으로 엑세스할 수 있다. 예시적으로, 장치 컨트롤러(3211)는 도 1 내지 도 8을 참조하여 설명된 동작 방법에 따라 알림 신호(Alert_n)를 프로세서(3100)로 전송할 수 있다.
도 16은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 예시적으로, 도 16의 불휘발성 메모리 모듈(4200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.
도 14 및 도 16을 참조하면, 불휘발성 메모리 모듈(4200)은 제어 회로(4100), 불휘발성 메모리 장치(4220), 및 램 장치(4230)을 포함한다. 제어 회로(4210)는 장치 컨트롤러(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다.
장치 컨트롤러(4211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신한다. 장치 컨트롤러(4211)는 수신된 신호들에 응답하여 불휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다. 예를 들어, 도 28을 참조하여 설명된 바와 같이, 프로세서(3100)는 불휘발성 메모리 장치(4220) 또는 램 장치(4230) 각각을 선택적으로 엑세스할 수 있다. 장치 컨트롤러(4231)는 프로세서(3100)의 제어에 따라 불휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다.
데이터 버퍼 회로(4213)는 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하고, 수신된 신호들을 장치 컨트롤러(4211) 및 램 장치(4230)로 제공할 수 있다. 또는 데이터 버퍼 회로(4213)는 장치 컨트롤러(4211) 또는 램 장치(4230)로부터 수신된 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다.
예시적으로, 프로세서(3100)가 불휘발성 메모리 장치(4220)에 데이터를 저장하는 경우, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신되는 데이터는 장치 컨트롤러(4211)로 제공되고, 장치 컨트롤러(4211)는 수신된 데이터를 가공하여 불휘발성 메모리 장치(4220)로 제공할 수 있다. 또는 프로세서(3100)가 불휘발성 메모리 장치(4220)에 저장된 데이터를 읽는 경우, 데이터 버퍼 회로(4213)는 장치 컨트롤러(4211)로부터 제공되는 데이터를, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 제공할 수 있다. 또는 프로세서(3100)가 램 장치(4230)에 데이터를 저장하는 경우, 데이터 버퍼 회로(4213)로 수신된 데이터는 램 장치(4230)로 제공되고, 장치 컨트롤러(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 램 장치(4230)로 전달할 수 있다. 또는 프로세서(3100)가 램 장치(4230)에 저장된 데이터를 읽는 경우, 장치 컨트롤러(4231)는 수신된 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 램 장치(4230)로 전달하고, 램 장치(4230)는 전달된 신호들에 응답하여, 데이터를 데이터 버퍼 회로(4213)로 제공하고, 데이터 버퍼 회로(4213)는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 데이터를 프로세서(3100)로 제공할 수 있다.
예시적으로, 장치 컨트롤러(4211)는 도 1 내지 도 8을 참조하여 설명된 동작 방법에 따라 알림 신호(Alert_n)를 프로세서(3100)로 전송할 수 있다.
도 17은 도 14의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 14 및 도 17을 참조하면, 불휘발성 메모리 모듈(5200)은 제어 회로(5210), 불휘발성 메모리 장치(5220), 및 램 장치(5230)를 포함한다. 제어 회로(5210)는 장치 컨트롤러(5211) 및 SPD(5212)를 포함한다.
도 17의 불휘발성 메모리 모듈(5200)은 도 16의 불휘발성 메모리 모듈(4200)과 유사하게 동작할 수 있다. 도 16의 불휘발성 메모리 모듈(5200)은 도 15의 불휘발성 메모리 모듈(4200)과 달리 데이터 버퍼 회로(4213)를 포함하지 않는다. 즉, 도 16의 불휘발성 메모리 모듈(5200)은 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 장치 컨트롤러(5211) 또는 램 장치(5230)로 직접 제공할 수 있다. 또는 도 20의 불휘발성 메모리 모듈(5200)의 장치 컨트롤러(5211)로부터의 데이터 또는 램 장치(5230)로부터의 데이터는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 직접 제공할 수 있다.
예시적으로, 도 16의 불휘발성 메모리 모듈(4200)은 LRDIMM(Load Redued DIMM) 형태의 메모리 모듈이고, 도 17의 불휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다. 도 18을 참조하면, 서버 시스템(6000)은 복수의 서버 랙들(6110~61n0)을 포함할 수 있다. 복수의 서버 랙들(6110~61n0) 각각은 복수의 불휘발성 메모리 모듈들(6200)을 포함할 수 있다. 복수의 불휘발성 메모리 모듈들(6200)은 복수의 서버 랙들(6110~61n0) 각각에 포함된 프로세서들과 직접적으로 연결될 수 있다. 예를 들어, 복수의 불휘발성 메모리 모듈들(6200) 듀얼 인-라인 메모리 모듈의 형태를 갖고, 프로세서와 전기적으로 연결된 DIMM 소켓에 장착되어 프로세서와 서로 통신할 수 있다. 예시적으로, 복수의 불휘발성 메모리 모듈들(6200)은 서버 시스템(6000)의 스토리지로서 사용될 수 있다. 예시적으로, 복수의 불휘발성 메모리 모듈들(6200)은 도 1 내지 도 17을 참조하여 설명된 방법에 따라 동작할 수 있다.
상술된 본 발명의 실시 예들에 따르면, 불휘발성 메모리 시스템 또는 불휘발성 메모리 모듈은 SPO 발생시 플러시 동작을 수행한다. 이 때, 불휘발성 메모리 시스템은 데이터 사이즈, 페이즈 비트, 또는 ECC 엔진의 에러 정정 결과를 기반으로 데이터의 유효성을 판별하고, 판별 결과에 따라 플러시 동작을 수행한다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템이 제공된다.
본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10 : 사용자 시스템
101 : 프로세서
100 : 불휘발성 메모리 시스템
110 : 장치 드라이버
111 : 물리 계층
111a : 램 컨트롤러
111b : 램
112 : 제어기
120 : 버퍼 메모리
131~13n : 복수의 불휘발성 메모리 장치들

Claims (10)

  1. 복수의 불휘발성 메모리 장치들, 및 상기 복수의 불휘발성 메모리 장치들을 제어하는 장치 컨트롤러를 포함하는 불휘발성 메모리 모듈의 동작 방법에 있어서,
    서든 파워 오프가 감지된 경우, 상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계; 및
    상기 판별 결과에 따라 상기 램에 저장된 데이터를 선택적으로 상기 복수의 불휘발성 메모리 장치들 죽 적어도 하나로 플러시하는 단계를 포함하는 동작 방법.
  2. 제 1 항에 있어서,
    상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계는,
    상기 데이터의 사이즈 및 기준 사이즈를 비교하는 단계; 및
    상기 데이터의 사이즈가 상기 기준 사이즈보다 작은 경우, 상기 램에 저장된 데이터가 무효한 것으로 판별하고, 상기 데이터의 사이즈가 상기 기준 사이즈보다 크거나 같은 경우, 상기 램에 저장된 데이터가 유효한 것으로 판별하는 단계를 포함하는 동작 방법.
  3. 제 1 항에 있어서,
    상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계는,
    상기 데이터와 대응되는 페이즈 비트가 저장되어 있는지 판별하는 단계; 및
    상기 대응되는 페이즈 비트가 저장된 경우, 상기 데이터가 유효한 것으로 판별하고, 상기 대응되는 페이즈 비트가 저장되어 있지 않은 경우, 상기 데이터가 무효한 것으로 판별하는 단계를 포함하는 동작 방법.
  4. 제 1 항에 있어서,
    상기 장치 컨트롤러의 램에 저장된 데이터의 유효성을 판별하는 단계는,
    상기 데이터의 에러를 검출 및 정정하는 단계; 및
    상기 데이터의 에러가 정정된 경우, 상기 데이터가 유효한 것으로 판별하고, 상기 데이텅의 에러가 정정되지 않은 경우, 상기 데이터가 무효한 것으로 판별하는 단계를 포함하는 동작 방법.
  5. 제 1 항에 있어서,
    외부 장치로부터 램 커맨드, 램 어드레스, 및 클럭을 수신하는 단계; 및
    상기 수신된 램 커맨드, 램 어드레스, 및 클럭을 기반으로 상기 램에 스토리지 커맨드, 스토리지 어드레스, 쓰기 데이터, 또는 상태 정보를 저장하는 단계를 더 포함하는 동작 방법.
  6. 제 5 항에 있어서,
    상기 데이터는 상기 외부 장치로부터 수신된 상기 스토리지 커맨드, 상기 스토리지 어드레스, 상기 쓰기 데이터, 또는 상기 상태 정보 중 적어도 하나를 포함하는 동작 방법.
  7. 제 5 항에 있어서,
    상기 불휘발성 메모리 모듈은 상기 외부 장치와 DDR(Double Data Rate) 인터페이스를 기반으로 통신하는 동작 방법.
  8. 제 5 항에 있어서,
    상기 외부 장치로부터 저장 신호를 수신하는 단계; 및
    상기 수신된 저장 신호에 응답하여 상기 서든 파워 오프를 감지하는 단계를 더 포함하는 동작 방법.
  9. 복수의 불휘발성 메모리 장치들; 및
    상기 복수의 불휘발성 메모리 장치들을 제어하는 장치 컨트롤러를 포함하고,
    상기 장치 컨트롤러는 램을 포함하고, 상기 불휘발성 메모리 모듈로의 전원이 차단된 경우, 상기 램에 저장된 데이터의 유효성을 판별하고, 상기 판별 결과에 따라 상기 램에 저장된 데이터를 선택적으로 상기 복수의 불휘발성 메모리 장치들 중 적어도 하나로 플러시하는 불휘발성 메모리 모듈.
  10. 제 9 항에 있어서,
    상기 장치 컨트롤러는 외부 장치로부터 램 커맨드, 램 어드레스, 및 클럭을 수신하고, 상기 수신된 램 커맨드, 상기 램 어드레스, 및 상기 클럭에 응답하여 상기 램에 상기 데이터를 저장하는 불휘발성 메모리 모듈.

KR1020150097289A 2015-06-08 2015-07-08 불휘발성 메모리 모듈 및 그것의 동작 방법 KR20170007580A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150097289A KR20170007580A (ko) 2015-07-08 2015-07-08 불휘발성 메모리 모듈 및 그것의 동작 방법
US15/132,466 US10048878B2 (en) 2015-06-08 2016-04-19 Nonvolatile memory module and storage system having the same
US16/044,024 US10671299B2 (en) 2015-06-08 2018-07-24 Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150097289A KR20170007580A (ko) 2015-07-08 2015-07-08 불휘발성 메모리 모듈 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20170007580A true KR20170007580A (ko) 2017-01-19

Family

ID=57990944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150097289A KR20170007580A (ko) 2015-06-08 2015-07-08 불휘발성 메모리 모듈 및 그것의 동작 방법

Country Status (1)

Country Link
KR (1) KR20170007580A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726708B2 (en) 2020-02-17 2023-08-15 SK Hynix Inc. Storage device which stores write data and an authentication code into a protected memory block and method of operating the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11726708B2 (en) 2020-02-17 2023-08-15 SK Hynix Inc. Storage device which stores write data and an authentication code into a protected memory block and method of operating the same

Similar Documents

Publication Publication Date Title
US10649894B2 (en) Nonvolatile memory module and operation method thereof
KR102274038B1 (ko) 백업 기능을 갖는 메모리 모듈
KR102430561B1 (ko) 듀얼 포트 디램을 포함하는 메모리 모듈
US10929064B2 (en) Methods of operating mixed device type memory modules, and processors and systems configured for operating the same
US10754800B2 (en) Storage device configured to update field programmable gate array and method of operating the same
US11600338B2 (en) Memory device and method of operating the memory device
KR20160144564A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
TWI679641B (zh) 非揮發性記憶體裝置和操作方法及包括其的資料存儲裝置
CN114373498A (zh) 页缓冲器、包括该页缓冲器的存储器装置及其操作方法
KR102513903B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
KR20170007580A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR20150042041A (ko) 전압발생기, 집적회로 및 전압 발생 방법
KR102475547B1 (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR20160075175A (ko) 반도체 장치
KR102538246B1 (ko) 불휘발성 메모리 모듈
KR102548574B1 (ko) 불휘발성 메모리 모듈
KR20130125570A (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20160144556A (ko) 불휘발성 메모리 모듈
US11886314B2 (en) Memory system and operating method thereof
US11482291B2 (en) Memory device and method of operating the same
KR102513913B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
CN116931820A (zh) 存储器控制器及其操作方法
KR20230038971A (ko) 스토리지 장치 및 그 동작 방법
CN115376592A (zh) 存储装置及其操作方法
CN116804909A (zh) 存储装置及其操作方法