KR20160144556A - 불휘발성 메모리 모듈 - Google Patents

불휘발성 메모리 모듈 Download PDF

Info

Publication number
KR20160144556A
KR20160144556A KR1020150080731A KR20150080731A KR20160144556A KR 20160144556 A KR20160144556 A KR 20160144556A KR 1020150080731 A KR1020150080731 A KR 1020150080731A KR 20150080731 A KR20150080731 A KR 20150080731A KR 20160144556 A KR20160144556 A KR 20160144556A
Authority
KR
South Korea
Prior art keywords
data
ram
volatile memory
processor
storage
Prior art date
Application number
KR1020150080731A
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 KR1020150080731A priority Critical patent/KR20160144556A/ko
Priority to US15/083,425 priority patent/US10152413B2/en
Publication of KR20160144556A publication Critical patent/KR20160144556A/ko
Priority to US16/195,533 priority patent/US10649894B2/en

Links

Images

Classifications

    • 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
    • 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
    • G06F13/1673Details of memory controller using buffers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명의 실시 예에 따른 불휘발성 메모리 모듈은 복수의 불휘발성 메모리 장치들, 복수의 불휘발성 메모리 장치들을 제어하기 위한 데이터를 저장하는 버퍼 메모리, 및 버퍼 메모리의 데이터를 기반으로 복수의 불휘발성 메모리 장치들을 제어하고, 외부 프로세서로부터 활성화된 저장 신호를 수신하고, 활성화된 저장 신호에 응답하여 버퍼 메모리의 데이터를 복수의 불휘발성 메모리 장치들로 플러시하고, 플러시가 완료된 이후에 저장 신호를 비활성화하는 장치 컨트롤러를 포함한다.

Description

불휘발성 메모리 모듈{NONVOLATILE MEMORY MODULE}
본 발명은 반도체 메모리에 관한 것으로, 더욱 상세하게는 불휘발성 메모리 모듈에 관한 것이다.
반도체 메모리 장치(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) 인터페이스이다.
실시 예로서, 상기 불휘발성 메모리 모듈은 듀얼 인-라인 메모리 모듈(DIMM)이다.
실시 예로서, 상기 장치 컨트롤러는 상기 외부 프로세서로부터 수신된 스토리지 커맨드, 스토리지 어드레스, 및 쓰기 데이터를 저장하는 램, 및 상기 외부 프로세서로부터의 램 커맨드, 램 어드레스, 및 클럭을 기반으로 상기 램를 제어하는 램 컨트롤러를 포함한다.
실시 예로서, 상기 장치 컨트롤러는 상기 램에 저장된 스토리지 커맨드 및 스토리지 어드레스를 기반으로 상기 복수의 불휘발성 메모리 장치들을 제어하는 제어기를 더 포함한다.
실시 예로서, 상기 장치 컨트롤러는 상기 활성화된 저장 신호에 응답하여 동작하는 저장 신호 드라이버를 포함한다.
실시 예로서, 상기 플러시가 수행되는 동안, 상기 장치 컨트롤러는 상기 저장 신호가 활성화 상태를 유지하도록 상기 저장 신호 드라이버를 제어한다.
실시 예로서, 상기 저장 신호 드라이버는 상기 저장 신호를 수신하는 제1 전극, 접지 단자와 접속된 제2 전극, 및 제어 신호를 수신하는 제어 전극을 포함하는 제1 제어 트랜지스터를 포함한다.
실시 예로서, 상기 플러시가 수행되는 동안 상기 장치 컨트롤러는 상기 제1 제어 트랜지스터가 턴-온 상태를 유지하도록 상기 제어 신호를 제어하고, 상기 플러시가 완료된 이후에 상기 장치 컨트롤러는 상기 제1 제어 트랜지스터가 턴-오프되도록 상기 제어 신호를 제어한다.
실시 예로서, 상기 플러시가 수행되는 동안 상기 복수의 불휘발성 메모리 장치들, 상기 버퍼 메모리, 및 상기 장치 컨트롤러로 보조 전원을 제공하는 보조 전원 장치를 더 포함한다.
실시 예로서, 상기 불휘발성 메모리 모듈에 대한 장치 정보를 포함하는 직렬 프레즌스 검출 칩(SPD)을 더 포함한다.
실시 예로서, 상기 직렬 프레즌스 검출 칩은 상기 외부 프로세서의 요청에 응답하여 상기 장치 정보를 상기 외부 프로세서로 전송한다.
실시 예로서, 상기 직렬 프레즌스 검출 칩은 I2C 통신을 기반으로 상기 장치 정보를 상기 외부 프로세서로 전송한다.
실시 예로서, 상기 외부 프로세서 또는 상기 장치 컨트롤러와 데이터 신호 및 데이터 스트로브 신호를 송수신하는 데이터 버퍼 회로를 더 포함한다.
실시 예로서, 상기 장치 컨트롤러는 상기 데이터 버퍼 회로를 제어한다.
실시 예로서, 상기 복수의 불휘발성 메모리 장치들 중 적어도 하나의 불휘발성 메모리 장치는 복수의 메모리 셀들을 포함하고, 상기 복수의 메모리 셀들 각각은 전하 트랩 층을 포함하는 3차원 메모리 어레이를 포함한다.
본 발명의 다른 실시 예에 따른 불휘발성 메모리 모듈은 복수의 불휘발성 메모리 장치들, 상기 복수의 불휘발성 메모리 장치들을 관리하기 위한 데이터를 포함하는 버퍼 메모리, 및 상기 버퍼 메모리의 데이터를 기반으로 상기 복수의 불휘발성 메모리 장치들을 제어하는 장치 컨트롤러를 포함하고, 상기 불휘발성 메모리 모듈의 동작 방법은 외부 프로세서로부터 활성화된 저장 신호를 감지하는 단계; 상기 활성화된 저장 신호에 응답하여 상기 버퍼 메모리에 포함된 데이터를 상기 복수의 불휘발성 메모리 장치들로 플러시하는 단계; 및 상기 플러시 동작이 완료된 이후에 상기 활성화된 저장 신호를 비활성화시키는 단계를 포함한다.
실시 예로서, 상기 불휘발성 메모리 모듈 및 상기 외부 프로세서는 DDR(Double Data Rate) 인터페이스를 통해 통신한다.
실시 예로서, 상기 활성화된 저장 신호에 응답하여 상기 버퍼 메모리에 포함된 데이터를 상기 복수의 불휘발성 메모리 장치들로 플러시하는 단계는, 상기 플러시가 수행되는 동안 상기 저장 신호를 활성화 상태로 유지하는 단계를 포함한다.
본 발명에 따르면, 프로세서는 불휘발성 메모리 모듈의 플러시 완료 여부를 저장 신호를 통해 인지할 수 있다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 모듈 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 시스템을 보여주는 블록도이다.
도 2는 도 1의 램을 설명하기 위한 도면이다.
도 3은 도 1의 사용자 시스템의 쓰기 동작을 보여주는 순서도이다.
도 4는 도 1의 사용자 시스템의 읽기 동작을 보여주는 순서도이다.
도 5는 도 1의 불휘발성 메모리 시스템의 동작을 보여주는 순서도이다.
도 6 내지 도 8은 도 5의 동작을 설명하기 위한 블록도들이다.
도 9는 도 1의 저장 신호 드라이버의 예시적인 실시 예를 보여주는 회로도이다.
도 10은 도 9의 저장 신호 드라이버의 예시적인 동작을 설명하기 위한 타이밍도이다.
도 11은 도 1의 사용자 시스템의 동작을 보여주는 순서도이다.
도 12는 도 1의 복수의 불휘발성 메모리 장치들 중 제1 불휘발성 메모리 장치를 예시적으로 보여주는 블록도이다.
도 13은 도 12의 메모리 셀 어레이에 포함된 메모리 블록들 중 제1 메모리 블록의 예를 보여주는 회로도이다.
도 14는 본 발명에 따른 불휘발성 메모리 시스템이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 15는 도 14의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 16은 도 14의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 17은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다.
도 18은 도 17의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 19는 도 17의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 20은 도 17의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 21은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로, 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 당업자에 의해 수행될 수 있다. 더욱이, 잘 알려진 기능들 및 구조들에 대한 설명들은 명확성 및 간결성을 위하여 생략된다. 본문에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 집적적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서의 당업자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기분 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
본 발명의 실시 예에 따른 불휘발성 메모리 시스템은 활성화된 저장 신호에 응답하여 플러시 동작을 수행한다. 플러시 동작이 수행되는 동안 불휘발성 메모리 시스템은 저장 신호를 활성화 상태로 유지한다. 플러시 동작이 종료된 이후에 불휘발성 메모리 시스템은 저장 신호를 비활성화시킨다. 비활성화된 저장 신호를 통해 불휘발성 메모리 시스템과 연결된 프로세서는 불휘발성 메모리 시스템의 플러시 완료를 인지할 수 있다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템 및 그것의 동작 방법이 제공된다.
도 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)의 형태를 가질 수 있고, 프로세서(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) 등과 같은 다중 포트 램을 포함할 수 있다. 즉, 프로세서(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)과 통신할 수 있다. 물리 계층(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)를 기입할 수 있다. 불휘발성 메모리 시스템(100)의 읽기 및 쓰기 동작들은 도 3 및 도 4를 참조하여 더욱 상세하게 설명된다.
비록 도면에 도시되지는 않았으나, 제어기(112)는 특정 시스템 버스 또는 내부 시스템 버스를 통해 램(111b)을 엑세스할 수 있다. 비록 도면에 도시되지는 않았으나, 제어기(112)는 ECC 엔진(Error Correction Code Engine), 스크램블러, 데이터 버퍼, 플래시 변환 계층 등과 같은 하드웨어 또는 소프트웨어 구성 요소들을 더 포함할 수 있다. 제어기(112)는 스크램블러를 통해 램(111b)으로부터 읽은 데이터를 디스크램블하거나 또는 램(111b)에 기입될 데이터를 스크램블할 수 있다. 제어기(112)는 ECC 엔진을 통해 램(111b)으로부터 읽은 데이터의 에러를 검출 및 정정하거나 또는 램(111b)에 기입될 데이터에 ECC 코드를 추가할 수 있다. 제어기(112)는 데이터 버퍼를 통해 램(111b)으로부터 읽은 데이터를 임시 저장하거나 또는 복수의 불휘발성 메모리 장치들(131~131n)로부터 읽은 데이터를 임시 저장할 수 있다.
제어기(112)는 플래시 변환 계층을 통해 어드레스 변환 동작을 수행할 수 있다. 예를 들어, 스토리지 어드레스(ADDR_S)는 논리적 어드레스일 수 있다. 제어기(112)는 플래시 변환 계층을 통해 프로세서(101)로부터 수신된 스토리지 어드레스(ADDR_S)를 복수의 불휘발성 메모리 장치들(131~13n)의 물리적 어드레스로 변환하는 동작을 수행할 수 있다. 예시적으로, 어드레스 변환 동작에 의해 쓰기 데이터(DATA_W)가 기입될 물리적 위치 또는 읽기 데이터(DATA_R)가 저장된 물리적 위치가 결정될 수 있다. 예시적으로, 물리적 위치는 복수의 불휘발성 메모리 장치들(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) 각각은 낸드 플래시 메모리를 포함하는 것으로 가정한다.
예시적으로, 본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 복수의 불휘발성 메모리 장치들(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호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
보조 전원 장치(140)는 프로세서(101)로부터의 전원(PWR)을 통해 충전될 수 있다. 보조 전원 장치(140)는 장치 컨트롤러(110)의 제어에 따라 보조 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(140)는 슈퍼 캐패시터, 탄탈 캐패시터와 같은 전력 저장 소자들을 포함할 수 있다. 예시적으로, 전원(PWR)은 미리 정해진 전원 핀을 통해 수신될 수 있다. 예시적으로, 전원(PWR)은 12V의 고전압 전원일 수 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 시스템(100)의 장치 컨트롤러(110)의 물리 계층(111)은 저장 신호 드라이버(111c)를 포함한다. 예를 들어, 프로세서(101)는 서든 파워 오프(SPO; Suddenly Power Off, 이하에서, 'SPO'라 함) 상황을 감지하여 저장 신호(SAVE_n)를 활성화시킬 수 있다. 활성화된 저장 신호(SAVE_n)는 불휘발성 메모리 시스템(100)으로 제공된다. 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행할 수 있다. 플러시 동작은 버퍼 메모리(120)에 저장된 데이터를 복수의 불휘발성 메모리 장치들(131~13n)에 저장시키는 동작을 가리킨다. 예시적으로, 플러시 동작동안 보조 전원 장치(140)로부터 보조 전원을 공급받을 수 있다.
예를 들어, 버퍼 메모리(120)가 휘발성 메모리이고, 서든 파워 오프가 발생하는 경우, 버퍼 메모리(120)에 저장된 맵핑 테이블이 소실될 수 있다. 맵핑 테이블은 프로세서(101)에 의해 관리되는 스토리지 어드레스(ADDR_R) 및 복수의 불휘발성 메모리 장치들(131~13n) 사이의 대응 관계에 대한 정보를 포함한다. 즉, 맵핑 테이블이 소실될 경우, 복수의 불휘발성 메모리 장치들(131~13n)에 저장된 데이터의 유효성을 보장할 수 없다.
서든 파워 오프 발생시, 프로세스(101)는 저장 신호(SAVE_n)를 활성화시키고, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)를 기반으로 서든 파워 오프 상황을 감지할 수 있다. 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 버퍼 메모리(120)에 저장된 맵핑 테이블을 복수의 불휘발성 메모리 장치들(131~131n)로 플러시함으로써 맵핑 테이블 및 데이터에 대한 유효성이 보장될 수 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 시스템(100)은 플러시 동작을 완료한 이후에, 저장 신호(SAVE_n)를 비활성화시킬 수 있다. 예를 들어, 장치 컨트롤러(110)의 물리 계층(111)은 저장 신호 드라이버(111c)를 포함할 수 있다. 저장 신호 드라이버(111c)는 오픈 드레인 구조를 포함할 수 있다. 즉, 활성화된 저장 신호(SAVE_n)에 응답하여 저장 신호 드라이버(111c)는 저장 신호(SAVE_n)를 활성화 상태로 유지할 수 있다. 이 후, 불휘발성 메모리 시스템(100)의 플러시 동작이 완료된 이후에, 제어기(112)의 제어에 따라 저장 신호 드라이버(111c)는 저장 신호(SVAE_n)를 비활성화시킬 수 있다.
예시적으로, 저장 신호 드라이버(111c)는 오픈 드레인 구조를 포함하기 때문에, 불휘발성 메모리 시스템(100)이 플러시 동작을 완료하기 이전에, 프로세서(101)가 저장 신호(SAVE_n)를 비활성화시키더라도, 저장 신호(SAVE_n)는 활성화 상태(예를 들어, 로직 로우 상태)를 유지할 것이다. 프로세서(101)는 비활성화된 저장 신호(SAVE_n)에 의해 불휘발성 메모리 시스템(100)의 플러시 완료를 인지할 수 있다.
종래 기술에 따르면, 프로세서가 플러시 완료 여부를 확인하지 않을 경우, 불휘발성 메모리 시스템에 저장된 데이터의 유효성을 보장할 수 없기 때문에, 프로세서는 불휘발성 메모리 시스템의 상태 정보를 주기적으로 폴링(polling)하여 플러시 완료 여부를 검사한다. 이 경우, 프로세서가 주기적으로 불휘발성 메모리 시스템의 특정 영역(예를 들어, 상태 레지스터)을 폴링하기 때문에, 이로 인한 오버헤드가 발생한다.
그러나, 상술된 본 발명의 실시 예에 따르면, SPO 발생시 프로세서(101)에 의해 저장 신호(SAVE_n)가 활성화되고, 활성화된 저장 신호(SAVE_n)에 응답하여 불휘발성 메모리 시스템(100)은 플러시 동작을 수행한다. 불휘발성 메모리 시스템(100)은 플러시 동작을 완료한 이후에 저장 신호(SAVE_n)를 비활성화시킨다. 비활성화된 저장 신호(SAVE_n)에 따라 프로세서(101)는 불휘발성 메모리 시스템(100)이 플러시 동작을 완료했음을 인지할 수 있다. 따라서, 불휘발성 메모리 시스템(100)에 저장된 데이터의 유효성이 보장될 수 있을 뿐만 아니라, 종래의 폴링 방식과 비교하여 플러시 동작의 완료를 검사하기 위한 오버헤드가 감소된다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템이 제공된다.
도 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 및 도 5를 참조하면, S110 단계에서, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)를 감지할 수 있다. 예를 들어, 도 1을 참조하여 설명된 바와 같이 프로세서(101)는 서든 파워 오프 상황을 감지하고, 저장 신호(SVAE_n)를 활성화할 수 있다. 또는 프로세서(101)는 특정 조건 하에서 저장 신호(SAVE_n)를 활성화할 수 있다. 예시적으로 특정 조건은 불휘발성 메모리 시스템(100)의 동작이 불안정한 경우, 또는 불휘발성 메모리 시스템(100)이 제거되는 경우, 또는 불휘발성 메모리 시스템(100)의 초기화가 요구되는 경우와 같은 다양한 조건들을 포함할 수 있다.
S120 단계에서, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행할 수 있다. 예를 들어, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 버퍼 메모리(130)에 저장된 맵핑 테이블을 복수의 불휘발성 메모리 장치들(131~13n) 중 적어도 하나로 플러시할 수 있다. 예시적으로, 불휘발성 메모리 시스템(100)은 불휘발성 메모리 시스템(100) 내에 계류 데이터(pending data)를 복수의 불휘발성 메모리 장치들(131~13n)로 플러시할 수 있다. 예시적으로, 계류 데이터(pending data)는 불휘발성 메모리 시스템(100)의 램(111b) 또는 버퍼 메모리(120) 또는 별도의 저장 장치에 저장된 데이터들 중 미처리된 데이터를 가리킬 수 있다.
S130 단계에서, 불휘발성 메모리 시스템(100)은 플러시 동작을 완료한 이후에, 저장 신호(SAVE_n)를 비활성화할 수 있다. 예시적으로, 비활성화된 저장 신호(SAVE_n)에 의해 프로세서(101)는 불휘발성 메모리 시스템(100)이 플러시 동작을 완료했음을 인지할 수 있다.
도 6 내지 도 8은 도 5의 동작을 설명하기 위한 블록도들이다. 도 1, 도 5 내지 도 8을 참조하면, 사용자 시스템(10)은 프로세서(101) 및 불휘발성 메모리 시스템(100)을 포함한다. 불휘발성 메모리 시스템(100)은 장치 컨트롤러(110), 버퍼 메모리(120), 복수의 불휘발성 메모리 장치들(131~13n), 및 보조 전원 장치(140)를 포함한다. 장치 컨트롤러(110)는 물리 계층(111) 및 제어기(112)를 포함한다. 물리 계층(111)은 램 컨트롤러(111a), 램(111b), 및 저장 신호 드라이버(111c)를 포함한다. 간결한 설명을 위하여, 도 1을 참조하여 설명된 프로세서(1010), 불휘발성 메모리 시스템(100), 장치 컨트롤러(110), 버퍼 메모리(120), 복수의 불휘발성 메모리(131~13n), 보조 전원 장치(140), 물리 계층(111), 제어기(112), 램 컨트롤러(111a), 램(111b), 및 저장 신호 드라이버(111c)에 대한 설명은 생략된다.
먼저 도 1, 도 5, 및 도 6을 참조하면, 프로세서(101)는 외부(미도시)로부터 전원을 공급받고, 공급받은 전원을 사용하여 불휘발성 메모리 시스템(100)을 제어할 수 있다. 프로세서(101)로 공급되는 전원이 차단될 수 있다. 즉, 서든 파워 오프가 발생할 수 있다. 프로세서(101)는 서든 파워 오프 상황을 감지하고, 저장 신호(SAVE_n)를 활성화시킬 수 있다. 예시적으로, 저장 신호(SAVE_n)는 저레벨 활성화 신호일 수 있다. 즉, 활성화된 저장 신호(SAVE_n)는 로직 로우일 수 있다.
활성화된 저장 신호(SVAE_n)에 응답하여 저장 신호 드라이버(111c)가 동작할 수 있다. 예를 들어, 저장 신호 드라이버(111c)는 오픈 드레인 구조를 포함할 수 있다. 저장 신호 드라이버(111c)는 활성화된 저장 신호(SAVE_n)에 응답하여 저장 신호(SAVE_n)가 활성화 상태를 유지하도록 동작할 수 있다. 예시적으로, 활성화된 저장 신호(SAVE_n)에 응답하여 동작된 저장 신호 드라이버(111c)는 제어기(112)의 제어가 있기 전까지 저장 신호(SAVE_n)를 활성화 상태로 유지시킬 수 있다.
다음으로, 도 1, 도 5, 및 도 7을 참조하면, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행할 수 있다. 예를 들어, 플러시 동작동안 장치 컨트롤러(110)는 버퍼 메모리(120)에 저장된 데이터를 읽고, 읽은 데이터를 복수의 불휘발성 메모리 장치들(131~13n)에 저장할 수 있다. 예시적으로, 버퍼 메모리(120)에 저장된 데이터는 맵핑 테이블, 메타 데이터와 같이 불휘발성 메모리 시스템(100)이 동작하는데 요구되는 다양한 정보를 포함할 수 있다.
예시적으로, 플러시 동작동안 장치 컨트롤러(110)는 버퍼 메모리(120)에 저장된 데이터와 함께 계류 데이터를 복수의 불휘발성 메모리 장치들(131~13n)에 저장할 수 있다. 예시적으로, 계류 데이터는 장치 컨트롤러(110)에서 미처리된 데이터를 가리킬 수 있다. 계류 데이터는 램(111b)에 저장된 커맨드, 쓰기 데이터, 읽기 데이터, 또는 상태 정보를 포함할 수 있다. 계류 데이터는 불휘발성 메모리(112)에 아직 기입되지 않고 제어기(112)에 포함된 별도의 버퍼 메모리(미도시)에 임시 저장된 데이터 또는 데이터 패킷를 가리킬 수 있다.
예시적으로, 보조 전원 장치(140)는 플러시 동작동안 버퍼 메모리(120), 복수의 불휘발성 메모리 장치들(131~13n), 및 장치 컨트롤러(110)로 보조 전원을 제공할 수 있다.
다음으로, 도 1, 도 5, 및 도 8을 참조하면, 불휘발성 메모리 시스템(100)은 플러시 동작을 완료한 이후에 저장 신호(SAVE_n)를 비활성화시킬 수 있다. 예를 들어, 제어기(112)는 플러시 동작을 완료한 이후에 트리거 신호(TRIG)를 저장 신호 드라이버(111c)로 제공할 수 있다. 트리거 신호(TRIG)에 응답하여 저장 신호 드라이버(111c)는 저장 신호(SAVE_n)를 비활성화시킬 수 있다. 비활성화된 저장 신호(SAVE_n)는 프로세서(101)로 제공된다. 프로세서(101)는 비활성화된 저장 신호(SAVE_n)를 통해 불휘발성 메모리 시스템(100)이 플러시 동작을 완료했음을 인지할 수 있다.
상술된 본 발명의 실시 예에 따르면, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행할 수 있다. 불휘발성 메모리 시스템(100)은 플러시 동작을 수행하는 동안에 저장 신호(SAVE_n)를 활성화 상태로 유지할 수 있다. 불휘발성 메모리 시스템(100)은 플러시 동작을 완료한 이후에, 저장 신호(SAVE_n)를 비활성화시킬 수 있다. 프로세서(101)는 비활성화된 저장 신호(SAVE_n)를 통해 불휘발성 메모리 시스템(100)이 플러시 동작을 완료했음을 인지할 수 있다. 따라서, 향상된 성능 및 향상된 신뢰성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 9는 도 1의 저장 신호 드라이버의 예시적인 실시 예를 보여주는 회로도이다. 도 10은 도 9의 저장 신호 드라이버의 예시적인 동작을 설명하기 위한 타이밍도이다. 간결한 설명을 위하여 저장 신호 드라이버(111c)를 설명하는데 불필요한 구성 요소들은 생략된다.
도 1, 도 9, 및 도 10을 참조하면, 저장 신호 드라이버(111c)는 프로세서(101)로부터 제1 노드(N1)를 통해 저장 신호(SAVE_n)를 수신할 수 있다. 저장 신호 드라이버(111c)는 제어 트랜지스터(TR)를 포함할 수 있다. 제어 트랜지스터(TR)의 일 전극은 제1 노드(N1)와 연결되고, 타 전극은 접지될 수 있다. 제어기(112)는 제1 노드(N1)를 통해 저장 신호(SAVE_n)를 수신할 수 있다. 제어 트랜지스터(TR)의 게이트 전극은 제어기(112)로부터 트리거 신호(TRIG)를 수신할 수 있다. 예시적으로, 도 9에 도시된 제어 트랜지스터(TR)는 nMOS 트랜지스터이나, 본 발명의 범위가 이에 한정되는 것은 아니다. 제어 트랜지스터(TR)는 pMOS 트랜지스터, BJT 트랜지스터, Thyristor, SCR, GTO, MCT, IGBT, RCT, NCT, SSS, SUS, SBS, LAS, SCS, LASCS 등과 같은 다양한 스위칭 소자로 변형될 수 있다. 간결한 설명을 위하여, 제어 트랜지스터(TR)는 로직 하이의 트리거 신호(TRIG)에 응답하여 턴-온되는 nMOS 트랜지스터인 것으로 가정한다.
도 10에 도시된 바와 같이, 외부 전원(AC)은 프로세서(101)로 공급될 수 있다. 프로세서(101)는 외부 전원(AC)을 사용하여 각종 연산 동작을 수행하거나 또는 불휘발성 메모리 시스템(100)을 제어할 수 있다. 제1 시점(t1)에서, 외부 전원(AC)이 갑자기 차단되는 서든 파워 오프 상황이 발생할 수 있다. 이 경우, 프로세서(101)는 저장 신호(SAVE_n)를 활성화시킴으로써 불휘발성 메모리 시스템(100)으로 서든 파워 오프 상황을 알릴 수 있다.
불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행할 수 있다. 이 때, 불휘발성 메모리 시스템(100)의 제어기(112)는 플러시 동작을 수행하는 동안 트리거 신호(TRIG)를 로직 하이로 유지할 수 있다. 로직 하이의 트리거 신호(TRIG)에 응답하여 제어 트랜지스터(TR)는 턴-온될 것이다. 턴-온된 제어 트랜지스터(TR)에 의해 제1 노드(N1)는 로직 로우 레벨을 유지할 것이다. 즉, 트리거 신호(TRIG)가 로직 하이인 동안 저장 신호(SAVE_n)는 로직 로우 레벨(즉, 활성화 상태)를 유지할 것이다.
예시적으로, 제2 시점(t3)에서, 외부 전원(AC)이 프로세서(101)로 정상적으로 공급될 수 있다. 이 경우, 프로세서(101)는 저장 신호(SAVE_n)를 활성화시킬 수 있다. 그러나, 도 10에 도시된 바와 같이 불휘발성 메모리 시스템(100)이 제2 시점(t2)에서 플러시 동작을 수행중이기 때문에, 트리거 신호(TRIG)는 로직 하이이다. 로직 하이인 트리거 신호(TRIG)에 따라 제어 트랜지스터(TR)는 턴-온되고, 턴-온된 제어 트랜지스터(TR)에 의해 저장 신호(SAVE_n)는 로직 로우를 유지할 것이다.
이 후, 제3 시점(t3)에서, 불휘발성 메모리 시스템(100)은 플러시 동작을 완료할 수 있다. 플러시 동작이 완료된 이 후에, 제어기(112)는 트리거 신호(TRIG)를 로직 로우로 변경하고, 로직 로우의 트리거 신호(TRIG)에 의해 제어 트랜지스터(TR)가 턴-오프되고, 저장 신호(SAVE_n)는 로직 하이로 변경될 것이다.
예시적으로, 상술된 신호 레벨 또는 소자들은 본 발명의 예시적인 실시 예를 구체적으로 설명하기 위한 것이며, 본 발명의 기술적 사상이 이에 한정되는 것은 아니다. 예를 들어, 활성화된 저장 신호(SAVE_n)는 로직 하이이거나, 플러시 동작 동안 트리거 신호(TRIG)는 로직 로우일 수 있다.
예시적으로, 도 9 및 도 10을 참조하여, 저장 신호 드라이버(111c)가 설명되었으나, 본 발명의 기술적 사상이 이에 한정되는 것은 아니다. 저장 신호 드라이버(111c)는 추가 수동 소자 또는 추가 능동 소자들을 더 포함할 수 있고, 플러시 동작 동안 저장 신호(SAVE_n)를 활성화 상태로 유지할 수 있도록 다양한 방식으로 구현될 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행한다. 불휘발성 메모리 시스템(100)은 플러시 동작을 수행하는 동안 저장 신호(SAVE_n)를 활성화 상태로 유지한다. 불휘발성 메모리 시스템(100)은 플러시 동작을 완료한 이후에 저장 신호(SAVE_n)를 비활성화한다. 비활성화된 저장 신호(SAVE_n)를 통해 프로세서(101)는 불휘발성 메모리 시스템(100)이 플러시 동작을 완료했음을 감지할 수 있다. 따라서, 향상된 성능 및 향상된 신뢰성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 11은 도 1의 사용자 시스템의 동작을 보여주는 순서도이다. 도 1 및 도 11을 참조하면, S210 단계에서, 프로세서(101)는 SPO 또는 플러시 필요 상황을 감지할 수 있다. SPO 상황은 외부 전원이 갑작스럽게 차단되는 상황을 가리킨다. 플러시 필요 상황은 불휘발성 메모리 시스템(100)이 프로세서(101)로부터 제거 또는 연결 해제되는 상황, 외부 전원이 불안정한 상황, 불휘발성 메모리 시스템(100)의 동작이 불안정한 상황, 불휘발성 메모리 시스템(100)의 초기화가 요구되는 상황 등과 같은 다양한 상황들을 포함할 수 있다.
감지 결과에 따라, S220 단계에서, 프로세서(101)는 저장 신호(SAVE_n)를 활성화시킨다.
S230 단계에서, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행할 수 있다. 플러시 동작은 도 7을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다. 예시적으로, 불휘발성 메모리 시스템(100)은 S230 단계를 수행하는 동안 저장 신호(SAVE_n)를 활성화 상태로 유지할 수 있다.
S240 단계에서, 플러시 동작이 완료된 이후에, 불휘발성 메모리 시스템(100)은 저장 신호(SAVE_n)를 비활성화시킬 수 있다.
S250 단계에서, 프로세서(101)는 불휘발성 메모리 시스템(100)을 복원하는 동작을 수행할 수 있다. 예를 들어, 프로세서(101)는 비활성화된 저장 신호(SAVE_n)에 의해 불휘발성 메모리 시스템(100)의 플러시 동작이 완료되었음을 인지할 수 있다. SPO 상황 이후에 외부 전원이 복구될 수 있다. 이 때, 프로세서(100)는 불휘발성 메모리 시스템(100)의 플러시 동작에 의해 복수의 불휘발성 메모리 장치들(131~13n)에 저장된 데이터가 버퍼 메모리(120) 또는 램(111b)에 저장되도록 불휘발성 메모리 시스템(100)을 제어할 수 있다. 또는 프로세서(100)는 트레이닝 동작을 수행하여 불휘발성 메모리 시스템(100)을 초기화할 수 있다. 예시적으로, S250 단계에서 설명된 프로세서(101)의 동작은 예시적인 것이며, 본 발명의 기술적 사상이 이에 한정되는 것은 아니다.
상술된 본 발명의 실시 예들에 따르면, 불휘발성 메모리 시스템(100)은 활성화된 저장 신호(SAVE_n)에 응답하여 플러시 동작을 수행하고, 플러시 동작을 완료한 이후에 저장 신호(SAVE_n)를 비활성화시킨다. 프로세서(101)는 비활성화된 저장 신호(SAVE_n)를 통해 불휘발성 메모리 시스템(100)의 플러시 동작이 완료되었음을 인지한다. 따라서, 향상된 성능 및 향상된 신뢰성을 갖는 불휘발성 메모리 시스템이 제공된다.
도 12는 도 1의 복수의 불휘발성 메모리 장치들 중 제1 불휘발성 메모리 장치를 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 불휘발성 메모리 장치(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)를 송수신할 수 있다.
도 13은 도 12의 메모리 셀 어레이에 포함된 메모리 블록들 중 제1 메모리 블록의 예를 보여주는 회로도이다. 예시적으로, 도 13을 참조하여 3차원 구조의 제1 메모리 블록(BLK1)이 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 복수의 불휘발성 메모리 장치들(131~13n) 각각에 포함된 다른 메모리 블록들 또한 제1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.
도 13을 참조하면, 제1 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS12)은 스트링 선택 라인들(SSL1a, SSL1b)와 연결되어, 제1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택 라인들(SSL2a, SSL2b)와 연결되어 제2 행을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS21)은 제1 비트라인(BL1)과 연결되어 제1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제2 비트라인(BL2)과 연결되어 제2 열을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택된 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택된 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다.
예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평명과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택된 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택된 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택된 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택된 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택된 트랜지스터들(GSTa, GSTb) 사이에 제1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택된 트랜지스터들(SSTa, SSTb) 사이에 제2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택된 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다.
예시적으로, 동일한 행의 접지 선택된 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택된 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 접지 선택된 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결될 수 있고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 접지 선택된 트랜지스터들(GSTa)은 제2 접지 선택 라인에 연결될 수 있다.
예시적으로, 도면에 도시되지는 않았으나, 기판(미도시)으로부터 동일한 높이에 제공되는 접지 선택된 트랜지터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 높이에 제공되는 접지 선택된 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 접지 선택된 트랜지스터들(GSTa)은 제1 접지 선택 라인에 연결되고, 제2 접지 선택 트랜지스터들(GSTb)은 제2 접지 선택 라인에 연결될 수 있다.
기판(또는 접지 선택된 트랜지스터(GSTa, GSTb)으로부터 동일한 높이의 메모리 셀들은 동일한 워드라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드라인에 연결된다. 예를 들어, 셀 스트링들(CS11, CS12, CS21, CS22)의 제1 내지 제8 메모리 셀들(MC8)은 제1 내지 제8 워드라인들(WL1~WL8)에 각각 공통으로 연결된다.
동일한 높이의 제1 스트링 선택된 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 스트링 선택된 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제2 스트링 선택된 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택된 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제2 스트링 선택된 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.
비록 도면에 도시되지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택된 트랜지스터들은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 및 제2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 제2 행의 셀 스트링들(CS21, CS22)의 제1 및 제2 스트링 선택된 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다.
예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다. 예를 들어, 제1 더미 메모리 셀들(DMC1)은 제1 더미 워드라인(DWL1)과 연결되고, 제2 더미 메모리 셀들(DMC2)은 제2 더미 워드라인(DWL2)과 연결된다.
제1 메모리 블록(BLK1)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 행이 선택될 수 있다.
예를 들어, 스트링 선택 라인들(SSL1a, SSL1b)이 턴-온 전압이 공급되고 스트링 선택 라인들(SSL2a, SSL2b)에 턴-오프 전압이 공급될 때, 제1 행의 셀 스트링들(CS11, CS12)이 비트 라인들(BL1, BL2)에 연결된다. 스트링 선택 라인들(SSL2a, SSL2b)에 턴-온 전압이 공급되고 스트링 선택 라인들(SSL1a, SSL1B)에 턴-오프 전압이 공급될 때, 제2 행의 셀 스트링들(CS21, CS22)이 비트 라인들(BL1, BL2)에 연결되어 구동된다. 워드라인을 구동함으로써 구동되는 행의 셀 스트링의 메모리 셀들 중 동일한 높이의 메모리 셀들이 선택된다. 선택된 메모리 셀들에서 읽기 및 쓰기 동작이 수행될 수 있다. 선택된 메모리 셀들은 물리 페이지 단위를 형성할 수 있다.
제1 메모리 블록(BLK1)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다. 메모리 블록 단위로 소거가 수행될 때, 제1 메모리 블록(BLK1)의 모든 메모리 셀들(MC)이 하나의 소거 요청에 따라 동시에 소거될 수 있다. 서브 블록의 단위로 수행될 때, 제1 메모리 블록(BLK1)의 메모리 셀들(MC) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅될 수 있다.
예시적으로, 도 13에 도시된 제1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들는 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
도 14는 본 발명에 따른 불휘발성 메모리 시스템이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 컴퓨팅 시스템(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 내지 도 13을 참조하여 설명된 불휘발성 메모리 시스템(100)일 수 있다.
불휘발성 메모리 모듈들(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)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다.
도 15는 도 14의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 15는 LRDIMM(Load Reduced DIMM) 형태를 갖는 불휘발성 메모리 모듈(1200)의 블록도이다. 예시적으로, 도 15에 도시된 불휘발성 메모리 모듈(1200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 15를 참조하면, 불휘발성 메모리 모듈(1200)은 장치 컨트롤러(1210), 버퍼 메모리(1220), 불휘발성 메모리 장치(1230), 및 직렬 프레즌스 검출 칩(1240)(SPD; Serial Presence Detect chip)를 포함한다. 장치 컨트롤러(1210)는 램(1211)을 포함할 수 있다. 예시적으로, 불휘발성 메모리 장치(1230)는 복수의 불휘발성 메모리들(NVM)을 포함할 수 있다. 불휘발성 메모리 장치(1230)에 포함된 복수의 불휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 불휘발성 메모리 장치(1230)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.
예시적으로, 장치 컨트롤러(1210), 램(1211), 버퍼 메모리(1220), 및 불휘발성 메모리 장치(1230)은 도 1 내지 도 13을 참조하여 설명된 장치 컨트롤러(110), 램(111b), 버퍼 메모리(120), 및 복수의 불휘발성 메모리 장치들(131~13n)과 동일하거나 또는 유사하게 동작할 수 있다. 즉, 불휘발성 메모리 모듈(1200)은 도 1의 불휘발성 메모리 시스템(100)과 동일할 수 있다.
예시적으로, 장치 컨트롤러(1210)는 프로세서(1100)와 복수의 데이터 신호들(DQ) 및 복수의 데이터 스트로브 신호들(DQS)을 송수신할 수 있고, 별도의 신호 라인들을 통해 램 커맨드(CMD_R), 램 어드레스(ADDR_R), 및 클럭(CK)을 수신할 수 있다. 예시적으로, 장치 컨트롤러(1210)는 도 1 내지 도 13을 참조하여 설명된 동작 방법에 따라 저장 신호(SAVE_n)의 활성화 상태를 유지하거나 또는 비활성화할 수 있다.
SPD(1240)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1240)는 불휘발성 메모리 모듈(1200)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1240)는 불휘발성 메모리 모듈(1200)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 불휘발성 메모리 모듈(1200)이 포함된 컴퓨팅 시스템이 부팅될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1240)를 읽고, 이를 기반으로 불휘발성 메모리 모듈(1200)을 인식할 수 있다. 프로세서(1100)는 SPD(1240)를 기반으로 불휘발성 메모리 모듈(1200)을 저장 매체로서 사용할 수 있다.
예시적으로, SPD(1240)는 부가 통신 채널(Side-Band Communication Channel)을 통해 프로세서(1100)와 통신할 수 있다. 프로세서(1100)는 부가 통신 채널을 통해 SPD(1240)와 부가 신호(SBS; Side-Band Signal)을 주고 받을 수 있다. 예시적으로, SPD(1240)는 부가 통신 채널을 통해 장치 컨트롤러(1210)와 통신할 수 있다. 예시적으로, 부가 통신 채널은 I2C 통신에 기반된 채널일 수 있다. 예시적으로, SPD(1240), 장치 컨트롤러(1210), 및 프로세서(1100)는 I2C 통신을 기반으로 서로 통신하거나 또는 정보를 주고 받을 수 있다.
도 16은 도 14의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 16은 RDIMM(Registered DIMM) 형태를 갖는 불휘발성 메모리 모듈(2200)의 블록도이다. 예시적으로, 도 16에 도시된 불휘발성 메모리 모듈(2200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 16을 참조하면, 불휘발성 메모리 모듈(2200)은 장치 컨트롤러(2210), 버퍼 메모리(2220), 불휘발성 메모리 장치(2230), 직렬 프레즌스 검출 칩(2240)(SPD; Serial Presence Detect chip), 및 데이터 버퍼 회로(2250)를 포함한다. 장치 컨트롤러(2210)는 램(2211)을 포함한다. 장치 컨트롤러(2210), 램(2211), 불휘발성 메모리 장치(2230), 및 SPD(2240)는 도 1 및 도 15을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
데이터 버퍼 회로(2250)는 프로세서(1100, 도 14 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 장치 컨트롤러(2250)로 전달할 수 있다. 또는 데이터 버퍼 회로(2250)는 장치 컨트롤러(2210)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.
예시적으로, 데이터 버퍼 회로(2250)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 장치 컨트롤러(2210)와 신호를 주고 받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 장치 컨트롤러(2210)의 제어에 따라 동작할 수 있다.
예시적으로, 장치 컨트롤러(2210)는 도 1 내지 도 13을 참조하여 설명된 동작 방법에 따라 저장 신호(SAVE_n)의 활성화 상태를 유지하거나 또는 비활성화할 수 있다.
도 17은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 도 17을 참조하면, 컴퓨팅 시스템(3000)은 프로세서(3100), 불휘발성 메모리 모듈(3200), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)를 포함한다. 프로세서(3100), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)는 도 14를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
불휘발성 메모리 모듈(3200)은 프로세서(3100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈(3200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함할 수 있다. 도 14 내지 도 16을 참조하여 설명된 불휘발성 메모리 모듈들(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)과 통신할 수 있다.
도 18은 도 17의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 17 및 도 18을 참조하면, 불휘발성 메모리 모듈(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 내지 도 13을 참조하여 설명된 동작 방법에 따라 저장 신호(SAVE_n)의 활성화 상태를 유지하거나 또는 비활성화할 수 있다.
도 19는 도 17의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 예시적으로, 도 19의 불휘발성 메모리 모듈(4200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.
도 17 및 도 19를 참조하면, 불휘발성 메모리 모듈(4200)은 제어 회로(4100), 불휘발성 메모리 장치(4220), 및 램 장치(4230)을 포함한다. 제어 회로(4210)는 장치 컨트롤러(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다.
장치 컨트롤러(4211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클럭(CK)을 수신한다. 장치 컨트롤러(4211)는 수신된 신호들에 응답하여 불휘발성 메모리 장치(4220) 또는 램 장치(4230)를 제어할 수 있다. 예를 들어, 도 18을 참조하여 설명된 바와 같이, 프로세서(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 내지 도 13을 참조하여 설명된 동작 방법에 따라 저장 신호(SAVE_n)의 활성화 상태를 유지하거나 또는 비활성화할 수 있다.
도 20은 도 17의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 17 및 도 20을 참조하면, 불휘발성 메모리 모듈(5200)은 제어 회로(5210), 불휘발성 메모리 장치(5220), 및 램 장치(5230)를 포함한다. 제어 회로(5210)는 장치 컨트롤러(5211) 및 SPD(5212)를 포함한다.
도 20의 불휘발성 메모리 모듈(5200)은 도 19의 불휘발성 메모리 모듈(4200)과 유사하게 동작할 수 있다. 도 20의 불휘발성 메모리 모듈(5200)은 도 19의 불휘발성 메모리 모듈(4200)과 달리 데이터 버퍼 회로(4213)를 포함하지 않는다. 즉, 도 20의 불휘발성 메모리 모듈(5200)은 프로세서(3100)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 수신된 데이터를 장치 컨트롤러(5211) 또는 램 장치(5230)로 직접 제공할 수 있다. 또는 도 20의 불휘발성 메모리 모듈(5200)의 장치 컨트롤러(5211)로부터의 데이터 또는 램 장치(5230)로부터의 데이터는, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해, 프로세서(3100)로 직접 제공할 수 있다.
예시적으로, 도 19의 불휘발성 메모리 모듈(4200)은 LRDIMM(Load Redued DIMM) 형태의 메모리 모듈이고, 도 20의 불휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.
예시적으로, 장치 컨트롤러(5211)는 도 1 내지 도 13을 참조하여 설명된 동작 방법에 따라 저장 신호(SAVE_n)의 활성화 상태를 유지하거나 또는 비활성화할 수 있다.
도 21은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템이 적용된 서버 시스템을 예시적으로 보여주는 도면이다. 도 21을 참조하면, 서버 시스템(6000)은 복수의 서버 랙들(6110~61n0)을 포함할 수 있다. 복수의 서버 랙들(6110~61n0) 각각은 복수의 불휘발성 메모리 모듈들(6200)을 포함할 수 있다. 복수의 불휘발성 메모리 모듈들(6200)은 복수의 서버 랙들(6110~61n0) 각각에 포함된 프로세서들과 직접적으로 연결될 수 있다. 예를 들어, 복수의 불휘발성 메모리 모듈들(6200) 듀얼 인-라인 메모리 모듈의 형태를 갖고, 프로세서와 전기적으로 연결된 DIMM 소켓에 장착되어 프로세서와 서로 통신할 수 있다. 예시적으로, 복수의 불휘발성 메모리 모듈들(6200)은 서버 시스템(6000)의 스토리지로서 사용될 수 있다. 예시적으로, 복수의 불휘발성 메모리 모듈들(6200)은 도 1 내지 도 13을 참조하여 설명된 방법에 따라 동작할 수 있다.
상술된 본 발명의 실시 예들에 따르면, 불휘발성 메모리 시스템은 프로세서로부터의 활성화된 저장 신호에 응답하여 플러시 동작을 수행할 수 있다. 불휘발성 메모리 시스템은 플러시 동작을 수행하는 동안 저장 신호를 활성화 상태로 유지시킨다. 플러시 동작을 완료한 이후에, 불휘발성 메모리 시스템은 저장 신호를 비활성화시킬 수 있다. 프로세서는 비활성화된 저장 신호를 통해 불휘발성 메모리 시스템이 플러시 동작을 완료했음을 인지할 수 있다. 따라서, 종래와 비교하여 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템 및 그것의 동작 방법이 제공된다.
본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 청구범위뿐만 아니라 이 발명의 청구범위와 균등한 것들에 의해 정해져야 할 것이다.
10: 사용자 시스템 101: 프로세서
100: 불휘발성 메모리 시스템 110: 장치 컨트롤러
111: 물리 계층 111a: 램 컨트롤러
111b: 램 111c: 저장 신호 드라이버
112: 제어기 120: 버퍼 메모리
131~13n: 복수의 불휘발성 메모리 장치들
140: 보조 전원 장치
CMD_R: 램 커맨드 ADDR_R: 램 어드레스
CK: 클럭 DQ: 데이터 신호
DQS: 데이터 스트로브 신호 CMD_S: 스토리지 커맨드
ADDR_S: 스토리지 어드레스 DATA: 데이터
STI: 상태 정보 SAVE_n: 저장 신호
CA: 커맨드 영역 WA: 쓰기 영역
RA: 읽기 영역 STA: 상태 영역

Claims (10)

  1. 복수의 불휘발성 메모리 장치들;
    상기 복수의 불휘발성 메모리 장치들을 제어하기 위한 데이터를 저장하는 버퍼 메모리; 및
    상기 버퍼 메모리의 정보를 기반으로 상기 복수의 불휘발성 메모리 장치들을 제어하고, 외부 프로세서로부터 활성화된 저장 신호를 수신하고, 상기 활성화된 저장 신호에 응답하여 상기 버퍼 메모리의 정보를 상기 복수의 불휘발성 메모리 장치들로 플러시하고, 상기 플러시가 완료된 이후에 상기 저장 신호를 비활성화하는 장치 컨트롤러를 포함하는 불휘발성 메모리 모듈.
  2. 제 1 항에 있어서,
    상기 외부 프로세서와 상기 불휘발성 메모리 시스템은 DDR(Double Data Rate) 인터페이스인 불휘발성 메모리 모듈.
  3. 제 1 항에 있어서,
    상기 불휘발성 메모리 모듈은 듀얼 인-라인 메모리 모듈(DIMM)인 불휘발성 메모리 모듈.
  4. 제 1 항에 있어서,
    상기 장치 컨트롤러는
    상기 외부 프로세서로부터 수신된 스토리지 커맨드, 스토리지 어드레스, 및 쓰기 데이터를 저장하는 램; 및
    상기 외부 프로세서로부터의 램 커맨드, 램 어드레스, 및 클럭을 기반으로 상기 램를 제어하는 램 컨트롤러를 포함하는 불휘발성 메모리 모듈.
  5. 제 4 항에 있어서,
    상기 장치 컨트롤러는
    상기 램에 저장된 스토리지 커맨드 및 스토리지 어드레스를 기반으로 상기 복수의 불휘발성 메모리 장치들을 제어하는 제어기를 더 포함하는 불휘발성 메모리 모듈.
  6. 제 1 항에 있어서,
    상기 장치 컨트롤러는 상기 활성화된 저장 신호에 응답하여 동작하는 저장 신호 드라이버를 포함하는 불휘발성 메모리 모듈.
  7. 제 6 항에 있어서,
    상기 플러시가 수행되는 동안, 상기 장치 컨트롤러는 상기 저장 신호가 활성화 상태를 유지하도록 상기 저장 신호 드라이버를 제어하는 불휘발성 메모리 모듈.
  8. 제 7 항에 있어서,
    상기 저장 신호 드라이버는
    상기 저장 신호를 수신하는 제1 전극;
    접지 단자와 접속된 제2 전극; 및
    제어 신호를 수신하는 제어 전극을 포함하는 제1 제어 트랜지스터를 포함하는 불휘발성 메모리 모듈.
  9. 제 8 항에 있어서,
    상기 플러시가 수행되는 동안 상기 장치 컨트롤러는 상기 제1 제어 트랜지스터가 턴-온 상태를 유지하도록 상기 제어 신호를 제어하고,
    상기 플러시가 완료된 이후에 상기 장치 컨트롤러는 상기 제1 제어 트랜지스터가 턴-오프되도록 상기 제어 신호를 제어하는 불휘발성 메모리 모듈.
  10. 제 1 항에 있어서,
    상기 불휘발성 메모리 모듈에 대한 장치 정보를 포함하는 직렬 프레즌스 검출 칩(SPD)을 더 포함하는 불휘발성 메모리 모듈.
KR1020150080731A 2015-06-08 2015-06-08 불휘발성 메모리 모듈 KR20160144556A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150080731A KR20160144556A (ko) 2015-06-08 2015-06-08 불휘발성 메모리 모듈
US15/083,425 US10152413B2 (en) 2015-06-08 2016-03-29 Nonvolatile memory module and operation method thereof
US16/195,533 US10649894B2 (en) 2015-06-08 2018-11-19 Nonvolatile memory module and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150080731A KR20160144556A (ko) 2015-06-08 2015-06-08 불휘발성 메모리 모듈

Publications (1)

Publication Number Publication Date
KR20160144556A true KR20160144556A (ko) 2016-12-19

Family

ID=57735279

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150080731A KR20160144556A (ko) 2015-06-08 2015-06-08 불휘발성 메모리 모듈

Country Status (1)

Country Link
KR (1) KR20160144556A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051259A (ko) * 2017-11-06 2019-05-15 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190051259A (ko) * 2017-11-06 2019-05-15 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법

Similar Documents

Publication Publication Date Title
US10649894B2 (en) Nonvolatile memory module and operation method thereof
US9767903B2 (en) Nonvolatile memory module having dual-port DRAM
KR102274038B1 (ko) 백업 기능을 갖는 메모리 모듈
US10418111B2 (en) Memory system and operating method thereof
US10929064B2 (en) Methods of operating mixed device type memory modules, and processors and systems configured for operating the same
KR20150112074A (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법
US11600338B2 (en) Memory device and method of operating the memory device
CN114373498A (zh) 页缓冲器、包括该页缓冲器的存储器装置及其操作方法
KR20170023254A (ko) 반도체 메모리 시스템 및 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
KR20160144564A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR102513903B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
US10607706B2 (en) Memory system and operating method thereof
KR20210012825A (ko) 저장 장치 및 그 동작 방법
US11521684B2 (en) Memory device and method of operating the same
US11436152B2 (en) Data transmission circuit for preventing a node from floating and method of operating the same
US11086566B2 (en) Storage device and operating method thereof
KR102461751B1 (ko) 메모리 장치 및 이의 동작 방법
CN113971975A (zh) 存储器装置及其操作方法
KR20160144556A (ko) 불휘발성 메모리 모듈
KR102475547B1 (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR102538246B1 (ko) 불휘발성 메모리 모듈
US11482291B2 (en) Memory device and method of operating the same
KR20170007580A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
KR20170064627A (ko) 불휘발성 메모리 모듈
KR102513913B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템