KR20170016548A - 백업 기능을 갖는 메모리 모듈 - Google Patents

백업 기능을 갖는 메모리 모듈 Download PDF

Info

Publication number
KR20170016548A
KR20170016548A KR1020150109520A KR20150109520A KR20170016548A KR 20170016548 A KR20170016548 A KR 20170016548A KR 1020150109520 A KR1020150109520 A KR 1020150109520A KR 20150109520 A KR20150109520 A KR 20150109520A KR 20170016548 A KR20170016548 A KR 20170016548A
Authority
KR
South Korea
Prior art keywords
data
backup
interface
volatile memory
host
Prior art date
Application number
KR1020150109520A
Other languages
English (en)
Other versions
KR102274038B1 (ko
Inventor
조영진
이영근
이한주
신효덕
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150109520A priority Critical patent/KR102274038B1/ko
Priority to US15/093,769 priority patent/US9824734B2/en
Publication of KR20170016548A publication Critical patent/KR20170016548A/ko
Application granted granted Critical
Publication of KR102274038B1 publication Critical patent/KR102274038B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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
    • 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/1694Configuration of memory controller to different memory types
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell
    • G11C14/0018Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell whereby the nonvolatile element is an EEPROM element, e.g. a floating gate or metal-nitride-oxide-silicon [MNOS] transistor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 모듈은, 호스트와 제 1 채널을 통해서 데이터를 교환하는 휘발성 메모리 장치, 불휘발성 메모리 장치, 그리고 상기 휘발성 메모리 장치와 제 2 채널을 통해서 연결되며 상기 호스트로부터의 지시 또는 전원의 상태를 검출하여 상기 휘발성 메모리에 저장된 데이터를 상기 제 2 채널을 경유하여 상기 불휘발성 메모리 장치로 백업하도록 상기 휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되, 상기 휘발성 메모리 장치는 상기 제 1 채널을 통해서 상기 호스트와 통신하기 위한 제 1 인터페이스와, 상기 제 2 채널을 통해 상기 메모리 컨트롤러와 통신하기 위한 제 2 인터페이스를 포함한다.

Description

백업 기능을 갖는 메모리 모듈{NONVOLATILE MEMORY MODULE HAVING BACK-UP FUNCTION}
본 발명은 반도체 메모리에 관한 것으로, 더욱 상세하게는 백업 기능을 갖는 메모리 모듈에 관한 것이다.
반도체 메모리 장치(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 장치들과 연결된 인터페이스의 데이터 대역폭 또는 통신 속도보다 데이터 처리량이 많아져서 데이터 병목 현상이 발생한다. 이러한 현상들은 컴퓨팅 시스템의 성능을 저해하는 요인으로 작용되며, 상술된 문제점을 해결하기 위한 다양한 성능 향상 기법들이 개발되고 있다.
본 발명의 목적은 휘발성 메모리로부터 불휘발성 메모리로의 데이터 백업이 용이한 메모리 모듈 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 메모리 모듈은, 호스트와 제 1 채널을 통해서 데이터를 교환하는 휘발성 메모리 장치, 불휘발성 메모리 장치, 그리고 상기 휘발성 메모리 장치와 제 2 채널을 통해서 연결되며 상기 호스트로부터의 지시 또는 전원의 상태를 검출하여 상기 휘발성 메모리에 저장된 데이터를 상기 제 2 채널을 경유하여 상기 불휘발성 메모리 장치로 백업하도록 상기 휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되, 상기 휘발성 메모리 장치는 상기 제 1 채널을 통해서 상기 호스트와 통신하기 위한 제 1 인터페이스와, 상기 제 2 채널을 통해 상기 메모리 컨트롤러와 통신하기 위한 제 2 인터페이스를 포함한다.
본 발명의 다른 실시 예에 따른 메모리 모듈은, 불휘발성 메모리 장치, 제 1 인터페이스와, 상기 불휘발성 메모리 장치로의 백업 동작을 위해 상기 제 1 인터페이스와는 별도로 제공되는 제 2 인터페이스를 포함하는 디램, 백업 동작시, 상기 디램의 제 2 인터페이스를 활성화시키고, 상기 디램으로부터 제공되는 백업 데이터를 상기 불휘발성 메모리에 프로그램하는 불휘발성 메모리 컨트롤러를 포함한다.
본 발명에 따르면, 휘발성 메모리와 불휘발성 메모리 컨트롤러 사이의 부가 채널을 통해서 휘발성 메모리의 백업 데이터가 불휘발성 메모리로 신속히 백업될 수 있다. 따라서, 전원 오류와 같은 상황에서 용이한 데이터의 복구가 가능하여 향상된 신뢰성 및 향상된 성능을 갖는 메모리 모듈이 제공될 수 있다.
도 1은 본 발명의 실시 예에 따른 사용자 장치를 보여주는 블록도이다.
도 2는 도 1의 불휘발성 메모리 모듈을 좀더 상세히 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 디램의 구조를 간략히 보여주는 블록도이다.
도 4는 본 발명의 NVM 컨트롤러(126)의 구성을 예시적으로 보여주는 블록도이다.
도 5는 도 1 또는 도 4의 NVM 컨트롤러(126)의 백업 동작을 수행하는 방법을 예시적으로 보여주는 순서도이다.
도 6은 본 발명의 실시 예에 따른 불휘발성 메모리 모듈의 백업 동작을 예시적으로 보여주는 도면이다.
도 7은 도 1의 불휘발성 메모리 모듈의 다른 구성을 보여주는 블록도이다.
도 8은 도 7의 불휘발성 메모리 모듈이 호스트의 지시에 따라 수행하는 백업 동작을 예시적으로 보여주는 순서도이다.
도 9는 도 7의 불휘발성 메모리 모듈이 자체적인 판단에 따라 실행 여부가 결정되는 백업 동작을 예시적으로 보여주는 순서도이다.
도 10은 본 발명의 백업 채널을 구비하는 디램과 NVM 컨트롤러를 보여주는 블록도이다.
도 11a, 도 11b, 그리고 도 11c는 백업 채널의 구성 방법을 예시적으로 보여주는 도면들이다.
도 12는 도 11a에 도시된 양방향 통신 방식의 백업 채널의 동작을 보여주는 타이밍도이다.
도 13은 본 발명의 실시 예에 따른 사용자 장치(200)의 예를 보여주는 블록도이다.
도 14는 도 13의 불휘발성 메모리 모듈의 좀더 구체적으로 보여주는 예시적인 블록도이다.
도 15는 도 13의 불휘발성 메모리 모듈의 다른 형태를 보여주는 예시적인 블록도이다.
도 16은 본 발명 실시 예에 따른 사용자 장치(300)의 예를 보여주는 블록도이다.
도 17은 도 16의 불휘발성 메모리 모듈을 좀더 구체적으로 보여주는 블록도이다.
도 18은 도 1, 도 2, 도 7, 도 13 내지 도 17에서 설명된 불휘발성 메모리의 구성을 예시적으로 보여주는 블록도이다.
도 19는 도 18의 메모리 셀 어레이에 포함된 메모리 블록들 중 제 1 메모리 블록의 예를 보여주는 회로도이다.
도 20은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다.
도 21은 도 20의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 22는 도 20의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다.
도 23은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다.
도 24는 도 23의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 25는 도 23의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
도 26은 도 23의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예들이 상세하게 설명된다. 이하의 설명에서, 상세한 구성들 및 구조들과 같은 세부적인 사항들은 단순히 본 발명의 실시 예들의 전반적인 이해를 돕기 위하여 제공된다. 그러므로, 본 발명의 기술적 사상 및 범위로부터의 벗어남 없이 본문에 기재된 실시 예들의 변형들은 당업자에 의해 수행될 수 있다. 더욱이, 잘 알려진 기능들 및 구조들에 대한 설명들은 명확성 및 간결성을 위하여 생략된다. 본문에서 사용된 용어들은 본 발명의 기능들을 고려하여 정의된 용어들이며, 특정 기능에 한정되지 않는다. 용어들의 정의는 상세한 설명에 기재된 사항을 기반으로 결정될 수 있다.
이하의 도면들 또는 상세한 설명에서의 모듈들은 도면에 도시되거나 또는 상세한 설명에 기재된 구성 요소 이외에 다른 것들과 연결될 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 직접적 또는 비직접적일 수 있다. 모듈들 또는 구성 요소들 사이의 연결은 각각 통신에 의한 연결이거나 또는 물리적인 접속일 수 있다.
다르게 정의되지 않는 한, 본문에서 사용되는 기술적 또는 과학적인 의미를 포함하는 모든 용어들은 본 발명이 속하는 기술 분야에서의 당업자에 의해 이해될 수 있는 의미를 갖는다. 일반적으로 사전에서 정의된 용어들은 관련된 기분 분야에서의 맥락적 의미와 동등한 의미를 갖도록 해석되며, 본문에서 명확하게 정의되지 않는 한, 이상적 또는 과도하게 형식적인 의미를 갖도록 해석되지 않는다.
본 발명의 실시 예에 따른 불휘발성 메모리 시스템은 활성화된 저장 신호에 응답하여 플러시 동작을 수행한다. 플러시 동작이 수행되는 동안 불휘발성 메모리 시스템은 저장 신호를 활성화 상태로 유지한다. 플러시 동작이 종료된 이후에 불휘발성 메모리 시스템은 저장 신호를 비활성화시킨다. 비활성화된 저장 신호를 통해 불휘발성 메모리 시스템과 연결된 프로세서는 불휘발성 메모리 시스템의 플러시 완료를 인지할 수 있다. 따라서, 향상된 신뢰성 및 향상된 성능을 갖는 불휘발성 메모리 시스템 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 사용자 장치를 보여주는 블록도이다. 도 1을 참조하면, 사용자 장치(100)는 호스트(110)와 불휘발성 메모리 모듈(120)을 포함한다.
호스트(110)는 데이터를 처리하거나 또는 사용자 장치(100)에 포함된 구성 요소들을 제어할 수 있다. 예를 들어, 호스트(110)는 다양한 운영 체제(OS)를 구동할 수 있고, 운영 체제(OS)상에서 다양한 애플리케이션들을 실행할 수 있다. 호스트(110)는 불휘발성 메모리 모듈(120)에 데이터를 기입하거나 또는 불휘발성 메모리 모듈(120)에 저장된 데이터를 읽을 수 있다.
호스트(110)는 불휘발성 메모리 모듈(120)에 백업 동작을 지시할 수 있다. 예를 들면, 호스트(110)는 호스트 내부의 상태나 전원 상태를 감지하여 불휘발성 메모리 모듈(120)에 백업 동작을 지시할 수 있다. 호스트(110)는 명령어/어드레스 시퀀스를 사용하여 불휘발성 메모리 모듈(120)에 백업 동작을 지시할 수 있다. 또는 호스트(110)는 제어 신호(CTRL)를 사용하여 불휘발성 메모리 모듈(120)에 백업 동작을 지시할 수 있다. 더불어, 호스트(110)는 데이터 버스를 통해서 제공되는 데이터(DQ)를 사용하거나, 또는 별도로 구비되는 직렬 인터페이스를 사용하여 불휘발성 메모리 모듈(120)의 백업 동작을 지시할 수 있을 것이다.
불휘발성 메모리 모듈(120)은 호스트(110)의 지시에 따라 데이터를 디램(124)에 저장하거나, 불휘발성 메모리(128)에 저장할 수 있다. 불휘발성 메모리 모듈(120)은 호스트(110)로부터의 지시에 따라 또는 자체적인 전원 상태 검출을 통해서 디램(124)에 저장된 데이터를 불휘발성 메모리(128)로 백업할 수 있다. 이러한 동작을 수행하기 위해 불휘발성 모듈(120)은 레지스터 클록 드라이버(Registering Clock Driver; 이하 RCD, 122), 디램(124), NVM 컨트롤러(126), 그리고 불휘발성 메모리(128)를 포함할 수 있다.
RCD(122)는 호스트(110)에서 제공되는 명령어나 어드레스를 버퍼링한다. 그리고 버퍼링된 명령어나 어드레스를 복수의 디램(124)에 전달해 준다. 더불어, 도시되지는 않았지만, RCD(122)는 필요시 디램(124)의 전단에 위치하는 데이터 버퍼(DB)에 순차적으로 명령어를 제공할 수도 있다. RCD(122)는 호스트(110)로부터 제공되는 제어 신호(CTRL)를 버퍼링하여 디램(124)이나 타깃 장치에 제공할 수 있다. 예를 들면, 어떤 실시 예에서 RCD(122)는 호스트(110)에서 제공된 백업 제어 신호(SAVE_n)를 NVM 컨트롤러(126)에 전달할 수도 있을 것이다.
디램(124)은 메인 채널(M_CH)을 통해서 호스트(110)와 데이터를 교환할 수 있다. 더불어, 디램(124)은 백업 채널(BU_CH)을 통해서 NVM 컨트롤러(126)와 데이터를 교환할 수 있다. 정상 동작시, 디램(124)은 메인 채널(M_CH)을 사용하여 호스트(110)로부터 데이터를 제공받거나 호스트(110)로 데이터를 출력할 수 있다. 메인 채널(M_CH)은 예를 들면, 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 전달하기 위한 신호 라인들을 포함할 것이다. 그리고 백업 채널(BU_CH)은 예를 들면, 메인 채널(M_CH)과는 별도의 데이터 신호(DQ') 및 데이터 스트로브 신호(DQS')를 전달하기 위한 신호 라인들을 포함할 것이다.
여기서, 메인 채널(M_CH)은 예를 들면, 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) 중 적어도 하나를 포함할 수 있다. 그리고 백업 채널(BU_CH)은 예를 들면, I2C(Inter-Integrated Circuit) 버스, UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), CAN(Controller Area Network), SMBUS(System Management Bus) 중 적어도 하나를 포함할 수 있다.
NVM 컨트롤러(126)는 디램(124)에 저장된 데이터에 대한 백업 필요성을 판단할 수 있다. 백업 동작의 필요성은 호스트(110)에서 제공되는 제어 신호(CTRL)나 명령어에 의해서 NVM 컨트롤러(126)에 전달될 수 있다. 어떤 실시 예에서는, NVM 컨트롤러(126)는 불휘발성 메모리 모듈(120)에 제공되는 전압의 레벨을 모니터링하여 백업 필요성을 판단할 수도 있다. 백업 동작이 시작되면, NVM 컨트롤러(126)는 디램(124)에 백업이 필요한 데이터에 대한 읽기 명령을 백업 채널(BU_CH)을 사용하여 제공할 수 있다. 그리고 디램(124)에서 백업 채널(BU_CH)을 통해서 제공되는 백업 데이터를 NVM 컨트롤러(126)가 수신한다. 이후에 백업 데이터는 불휘발성 메모리(128)에 프로그램될 것이다.
불휘발성 메모리(128)는 NVM 채널(NVM_CH)을 통해서 NVM 컨트롤러(126)와 연결된다. 불휘발성 메모리(128)는 예를 들면, 하나 이상의 플래시 메모리로 제공될 수 있다. 불휘발성 메모리(128)는 NVM 컨트롤러(126)의 제어에 따라 백업 데이터를 프로그램하거나 백업된 데이터를 출력할 수 있다. 예시적으로, 불휘발성 메모리(128)는 EEPROM(Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM(Phase-change RAM), ReRAM(Resistive RAM), FRAM(Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 소자들로 구현될 수 있다. 간결한 설명을 위하여, 불휘발성 메모리(128)는 낸드 플래시 메모리를 포함하는 것으로 가정한다.
예시적으로, 본 발명의 기술적 사상에 따른 예시적인 실시 예로서, 불휘발성 메모리(128)는 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호에 개시되어 있으며, 본 발명의 레퍼런스로 포함된다.
이상에서 설명된 사용자 장치(100)에 따르면, 본 발명의 불휘발성 메모리 모듈(120)은 호스트(110)와의 데이터 교환을 위한 메인 채널(M_CH)과 백업 데이터를 전달하기 위한 백업 채널(BU_CH)를 각각 갖는 디램(124)을 포함할 수 있다. 정상 동작시에는 불휘발성 메모리 모듈(120)은 메인 채널(M_CH)을 통해서 호스트(110)와 데이터를 교환한다. 불휘발성 메모리 모듈(120)은 전원 오류 발생시에 호스트(110)의 제어 또는 자체적인 모니터링을 통해 이러한 상황을 인식하고, 디램(124)에 로딩된 데이터를 불휘발성 메모리(128)에 백업할 수 있다.
예시적으로, 비록 도면에 도시되지는 않았으나, 불휘발성 메모리 모듈(120)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 가질 수 있고, 호스트(110)와 전기적 또는 직접적으로 연결된 DIMM 소켓에 장착될 수 있다. 더불어, 사용자 장치(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), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나를 포함할 수 있다.
도 2는 도 1의 불휘발성 메모리 모듈을 좀더 상세히 보여주는 블록도이다. 도 2를 참조하면, 불휘발성 메모리 모듈(120)은 RCD(122), 복수의 디램(124_1, 124_2), NVM 컨트롤러(126), 불휘발성 메모리(128_1, 128_2)를 포함할 수 있다. 더불어, 복수의 디램(124_1, 124_2)과 호스트(110, 미도시) 사이에서 데이터 버퍼(121_1, 121_2)가 더 포함될 수 있다.
RCD(122)는 호스트(110, 미도시)로부터 제공되는 명령어, 어드레스, 또는 제어 신호(CTRL)를 수신하여 디램(124_1, 124_2)에 전달한다. 디램(124_1, 124_2)은 RCD(122)로부터 제공되는 명령어, 어드레스, 제어 신호에 응답하여 호스트(110)와의 데이터 교환을 수행할 것이다. 여기서, 디램(124_1, 124_2)은 호스트(110)와의 사이에 배치되는 데이터 버퍼(121_1, 121_2)를 통해서 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 교환할 수 있다. RCD(122)는 도시되지는 않았지만, 데이터 버퍼(121_1, 121_2)를 제어하기 위한 명령어를 제공할 수도 있다.
NVM 컨트롤러(126)는 호스트(110)로부터의 제어에 따라 또는 자체적인 모니터링 동작을 통해서 백업 동작을 활성화할 수 있다. 호스트(110)로부터 제공되는 명령어나, 제어 신호, 또는 다양한 수단을 통해서 백업 동작을 지시하는 정보가 RCD(122)를 통해서 또는 직접적으로 NVM 컨트롤러(126)에 제공될 수 있다. 자체적으로는 불휘발성 메모리 모듈(120)에 공급되는 전원 전압의 레벨을 검출하여 전원 오류의 발생을 모니터링할 수 있다. 백업 동작이 활성화되면, NVM 컨트롤러(126)는 디램(124_1, 124_2)들 중 적어도 하나로부터 백업 데이터의 출력을 백업 채널(BU_CH)을 통해서 지시할 수 있다. 그리고 NVM 컨트롤러(126)는 디램(124_1, 124_2) 중에서 출력되는 데이터를 백업 채널(BU_CH)을 경유하여 수신할 수 있다. 수신된 백업 데이터는 이후 불휘발성 메모리(128_1, 128_2)에 프로그램될 것이다.
이상에서 설명된 불휘발성 메모리 모듈(120)에 따르면, 디램(124_1, 124_2)은 호스트(110)와의 데이터 교환을 위한 메인 채널(M_CH)과 백업을 위한 백업 채널(BU_CH)을 포함할 수 있다. 더불어, 불휘발성 메모리 모듈(120)은 정상 동작시에는 디램 모듈(DRAM Module)과 같이 동작하지만, 전원이 제거되거나 전원 오류가 발생하는 경우 사용중인 데이터를 불휘발성 메모리(128_1, 128_2)에 백업할 수 있다. 따라서, 고속의 액세스가 가능한 디램 모듈과 같이 동작하지만, 전원이 제거되는 순간에도 구동 중인 데이터는 보존할 수 있는 불휘발성 특성을 가질 수 있다.
도 3은 본 발명의 실시 예에 따른 디램의 구조를 간략히 보여주는 블록도이다. 도 3을 참조하면, 본 발명의 실시 에에 따른 디램(124)은 디램 코어(124c)와 더불어 DDR 인터페이스(124a) 및 백업 인터페이스(124b)를 포함할 수 있다.
디램 코어(124c)는 데이터를 저장하기 위한 셀 어레이(Cell array)와, 셀 어레이(Cell array)에 데이터를 기입하거나 센싱하기 위한 구성들을 포함할 수 있다. 더불어 다양한 동작을 수행하기 위한 레지스터 셋들도 이러한 디램 코어(124c)에 포함될 수 있을 것이다.
DDR 인터페이스(124a)는 디램(124)이 호스트(110)와의 데이터를 교환하기 위한 인터페이스이다. 호스트(110)로부터 제공되는 명령어와 어드레스, 제어 신호는 DDR 인터페이스(124a)에 의해서 디코딩되고 처리될 수 있다. 그리고 디램(124)은 DDR 인터페이스(124a)를 통해서 호스트(110)로부터 제공되는 데이터 신호(DQ)와 데이터 스트로브 신호(DQS)를 수신할 수 있다. 더불어, 디램(124)은 DDR 인터페이스(124a)를 경유하여 호스트(110)로 데이터 신호(DQ) 또는 데이터 스트로브 신호(DQS)를 송신할 수 있다.
백업 인터페이스(124b)는 NVM 컨트롤러(126)와의 데이터 교환을 위한 인터페이싱을 제공한다. 백업 인터페이스(124b)를 통해서 디램(124)은 백업 동작을 위한 데이터 읽기 명령어와 어드레스를 NVM 컨트롤러(128)로부터 제공받을 수 있다. 그리고 백업을 위해서 디램 코어(124c)로부터 읽혀진 데이터는 백업 인터페이스(124b)를 통해서 NVM 컨트롤러(126)에 전달될 수 있다.
여기서, 백업 인터페이스(124b)에 의해서 구동되는 입출력 신호는 양방향 신호 방식을 사용하는 직렬 통신 방식이 사용될 수 있다. 하지만, 백업 인터페이스(124b)의 입출력 신호를 생성하기 위한 신호 방식은 DDR 인터페이스(124a)에 의해서 생성되는 신호 방식과 동일하게 사용될 수 있을 것이다. 예를 들면, 백업 인터페이스(124b)의 신호 방식은 DDR 인터페이스(124a)의 신호 방식과 동일하게 적용될 수 있다. 즉, 백업 인터페이스(124b)의 신호 방식이 의사 오픈 드레인(POD) 방식으로 적용될 수 있을 것이다. 하지만, 백업 인터페이스(124b)의 신호 방식은 여기의 설명에만 국한되지 않음은 잘 이해될 것이다.
백업 인터페이스(124b)의 데이터 전송을 위한 대역폭은 호스트(110)와의 데이터 교환을 위한 DDR 인터페이스(124a)의 대역폭과는 다르게 설정될 수 있을 것이다. 백업에 소요되는 시간에 따라 또는 백업에 지원되는 보조 전원 장치의 성능에 따라 백업 인터페이스(124b)의 대역폭이 설계될 수 있을 것이다. 더불어, 백업 인터페이스(124b)의 활성화는 DDR 인터페이스(124a)와 동시에 활성화될 수 있다. 따라서, 듀얼 포트 방식으로 DDR 인터페이스(124a)와 백업 인터페이스(124b)가 동작하고, 명령어 및 데이터를 입출력할 수 있을 것이다. 또는, 백업 인터페이스(124b)의 활성화는 DDR 인터페이스(124a)가 비활성화되는 시점(예를 들면, Idle)에 이루어질 수 있다. 즉, 백업 인터페이스(124b)와 DDR 인터페이스(124a) 중 어느 하나의 인터페이스만이 활성화되도록 디램(124)이 설정될 수 있을 것이다.
도 4는 본 발명의 NVM 컨트롤러(126)의 구성을 예시적으로 보여주는 블록도이다. 도 4를 참조하면, NVM 컨트롤러(126)는 중앙처리장치(CPU, 126_1), 호스트 인터페이스(126_2), 버퍼(126_3) 및 NVM 인터페이스(126_4)를 포함할 수 있다.
중앙처리장치(126_1)는 NVM 컨트롤러(126)를 구동하기 위한 펌웨어나 소프트웨어를 구동할 수 있다. 예를 들면, 중앙처리장치(126_1)는 NVM 컨트롤러(126)에서 수행되는 장치 컨트롤러(226) 내에서 수행되는 다양한 데이터 교환, 에러 정정, 스크램블링(Scrambling) 등의 기능을 수행하기 위한 펌웨어를 실행할 수 있다. 특히, 백업 동작을 위해 중앙처리장치(126_1)는 호스트(110, 도 1 참조)로부터 전달되는 제어 신호나 또는 자체적인 전원 모니터링의 결과를 참조할 수 있다. 중앙처리장치(126_1)는 백업 동작이 결정되면, 백업 인터페이스(126_2)를 사용하여 디램(124)에 백업 데이터를 요청할 것이다. 디램(124)으로부터 출력되는 백업 데이터는 백업 인터페이스(126_2)를 경유하여 버퍼(126_3)에 저장될 수 있다. 버퍼(126_3)에 저장된 백업 데이터는 이후 NVM 인터페이스(126_4)에 의해서 선택된 불휘발성 메모리(128_1, 128_2)에 프로그램될 수 있다.
중앙처리장치(126_1)는 역으로 백업된 데이터를 불휘발성 메모리(128_1, 128_2)로부터 디램(124)으로 로드할 수 있다. 부팅이나 리셋 동작시, 중앙처리장치(126_1)는 미리 결정된 절차에 따라 백업된 데이터를 백업 이전의 상태로 디램(124)에 로드할 수 있다. 이때의 데이터 흐름은 백업 동작의 역순임은 잘 이해될 것이다. 중앙처리장치(126_1)가 상술한 제어 동작을 수행하기 위한 멀티-코어(Multi-Core)로 제공될 수 있음은 당업자들에게 잘 이해될 것이다.
도 5는 도 1 또는 도 4의 NVM 컨트롤러(126)의 백업 동작을 수행하는 방법을 예시적으로 보여주는 순서도이다. 도 5를 참조하면, NVM 컨트롤러(126)는 백업 동작을 위해서 백업 채널(BU_CH)을 통해서 디램(124)과 통신할 수 있다.
S110 단계에서, NVM 컨트롤러(126)는 디램(124)에 저장된 데이터의 백업이 필요한지의 여부를 검출할 수 있다. 예를 들면, 호스트(110)로부터 제공되는 명령어나 제어 신호, 또는 다양한 정보에 따라 NVM 컨트롤러(126)는 백업 동작을 시작할 수 있다. 또는, NVM 컨트롤러(126)는 불휘발성 메모리 모듈(120)에 제공되는 전원의 상태를 모니터링하여 백업 요청을 검출할 수 있을 것이다.
S120 단계에서, NVM 컨트롤러(126)는 백업 조건에 해당하는지 판단하고, 판단 결과에 따라 동작 분기를 수행한다. 백업 조건에 해당하는 것으로 판단되면, 절차는 S130으로 이동한다. 반면, 백업 조건에 해당하지 않는 것으로 판단되면, 절차는 S110 단계로 복귀할 것이다.
S130 단계에서, NVM 컨트롤러(126)는 백업 채널(BU_CH)을 통해서 디램(124)에 백업을 위한 읽기 명령어를 전송할 것이다. NVM 컨트롤러(126)는 이때 디램(124)에 로드된 일부 데이터만을 선택적으로 백업하도록 명령어 및 어드레스를 제공할 수도 있다. 또는, NVM 컨트롤러(126)는 디램(124)에 로드된 모든 데이터를 불휘발성 메모리(128)로 백업하기 위한 명령어 및 어드레스를 제공할 수도 있을 것이다.
S140 단계에서, NVM 컨트롤러(126)는 디램(124)으로부터 백업 채널(BU_CH)을 통해서 출력되는 데이터를 수신한다. 읽기 명령에 응답하여 디램(124)은 백업 채널(BU_CH)로 백업 데이터를 페이지 단위로, 또는 순차적으로 출력할 수 있을 것이다. 하지만, 백업 데이터의 전송 사이즈는 여기의 개시에 국한되지 않음은 잘 이해될 것이다. 즉, 디램(124)에 의해서 NVM 컨트롤러(126)에 전송되는 백업 데이터는 페이지보다 큰 단위로, 또는 페이지보다 작은 단위로도 제공될 수 있을 것이다.
S150 단계에서, NVM 컨트롤러(126)는 디램(124)로부터 제공된 백업 데이터를 불휘발성 메모리(128)에 프로그램할 것이다.
백업 동작을 위해 NVM 컨트롤러(126)가 디램(124)과 백업 채널(BU_CH)을 통해서 통신하는 방법이 설명되었다. 백업 동작시에 활성화되는 백업 채널(BU_CH)은 디램(124)이 호스트(110)와 데이터를 교환하기 위해 사용하는 메인 채널(M_CH)의 대역폭과 다르게 설정될 수 있을 것이다. 왜냐하면, 백업 동작시 디램(124)과 NVM 컨트롤러(126) 사이의 백업 데이터 전송 대역폭은, NVM 컨트롤러(126)와 불휘발성 메모리(128) 사이의 대역폭보다 크거나 같기만 하면 되기 때문이다.
도 6은 본 발명의 실시 예에 따른 불휘발성 메모리 모듈의 백업 동작을 예시적으로 보여주는 도면이다. 도 6을 참조하면, NVM 컨트롤러(126)와 디램(124)은 백업 채널(BU_CH)을 통하여 명령어와 어드레스 그리고 페이지 단위의 데이터를 교환할 수 있다.
S11에서, NVM 컨트롤러(126)는 백업이 필요한 상태를 감지한다. 예를 들면, 호스트(110, 도 1 참조)에서 제어 신호(SAVE_n)나 명령어 등을 통해서 불휘발성 메모리 모듈(120)에 백업 동작을 지시하는 경우가 있을 수 있다. 또는, NVM 컨트롤러(126)가 공급 전압의 상태를 모니터링하여 백업 동작이 필요한지를 판단할 수 있다. 만일, 백업이 불필요한 상태라면, NVM 컨트롤러(126)는 계속해서 백업에 대한 필요성을 감지할 것이다. 반면, 백업이 필요한 상태라면, NVM 컨트롤러(126)는 디램(124)에 읽기 명령어, 어드레스 등을 제공할 것이다.
S12에서, NVM 컨트롤러(126)는 백업 채널(BU_CH)을 통해서 디램(124)에 백업을 위한 읽기 명령어를 전송한다. 백업 채널(BU_CH)을 통해서 NVM 컨트롤러(126)는 읽기 명령어와 어드레스를 전송하고, 백업 채널(BU_CH)의 권한을 디램(124)에게 넘겨준다.
S13에서, 디램(124)은 읽기 요청된 백업 데이터를 센싱하고 버퍼링할 수 있다. S14에서, 디램(124)은 백업 채널(BU_CH)을 통해서 읽기 요청된 데이터의 출력이 준비되었음을 NVM 컨트롤러(126)에 알려준다. S15에서, NVM 컨트롤러(126)는 백업 데이터에 대한 전송을 승인한다.
S16에서, 디램(124)은 백업 데이터를 백업 채널(BU_CH)을 통해서 페이지 단위로 전송할 수 있다. 백업 채널(BU_CH)이 시리얼 방식인 경우, 백업 데이터는 클록(CLK)에 동기되어 디램(124)으로부터 NVM 컨트롤러(126)로 직렬 방식으로 전송될 것이다. 또는, 백업 데이터는 데이터 스트로브 신호(DQS)에 동기되어 NVM 컨트롤러(126)에 전달될 수도 있다. 여기서, 페이지 단위로 데이터가 전달되는 예를 설명하였으나 본 발명은 여기에 국한되지 않음은 잘 이해될 것이다. 페이지 단위보다 작거나 큰 데이터 단위로 백업 데이터가 전송될 수 있을 것이다.
S17에서, NVM 컨트롤러(126)에 전달된 백업 데이터는 불휘발성 메모리(128)에 프로그램된다. NVM 컨트롤러(126)는 예를 들면 페이지 단위의 데이터를 NVM 채널(NVM_CH)에 대응하는 포맷으로 재배열하여 불휘발성 메모리(128)에 프로그램할 수 있다.
이상에서는 백업 동작시 디램(124), NVM 컨트롤러(126), 그리고 불휘발성 메모리(128)의 상호 동작이 간략히 설명되었다. 하지만, 백업 동작시 디램(124)에서 전송되는 백업 데이터는 데이터의 신뢰성을 위해서 에러 정정이나, CRC를 위한 패리티가 부가될 수도 있을 것이다.
도 7은 도 1의 불휘발성 메모리 모듈의 다른 구성을 보여주는 블록도이다. 도 7을 참조하면, 불휘발성 메모리 모듈(120a)은 RCD(122), 복수의 디램(124_1, 124_2), NVM 컨트롤러(126), 불휘발성 메모리(128_1, 128_2)를 포함할 수 있다. 더불어, 복수의 디램(124_1, 124_2)과 호스트(110, 미도시) 사이에 위치하는 데이터 버퍼(121_1, 121_2), 그리고 백업을 위해 제공되는 보조 전원 소스(127), 저전압 검출기(129)가 더 포함될 수 있다. 여기서, 복수의 디램(124_1, 124_2)과 불휘발성 메모리(128_1, 128_2)의 상세한 동작이나 구성은 도 2의 그것들과 실질적으로 동일하므로 이것들에 대한 설명은 생략하기로 한다.
RCD(122)는 호스트(110, 미도시)로부터 제공되는 명령어, 어드레스, 또는 제어 신호(CTRL)를 수신하여 복수의 디램(124_1, 124_2)에 전달한다. 복수의 디램(124_1, 124_2)에 전달되는 명령어나 어드레스, 제어 신호는 제 1 제어 신호(CS1)로 도시되어 있다. 특히, RCD(122)는 호스트(110)로부터 제어 신호(SAVE_n)를 수신하면, 백업이 필요한 상태임을 NVM 컨트롤러(126a)에 알려줄 수 있다. 이때 NVM 컨트롤러(126a)에 제공되는 제어 신호는 제 2 제어 신호(CS2)로 표시되어 있다.
NVM 컨트롤러(126a)는 호스트(110)로부터의 제어에 따라 또는 자체적인 모니터링 동작을 통해서 백업 동작을 활성화할 수 있다. 호스트(110)로부터 제공되는 명령어나, 제어 신호, 또는 다양한 수단을 통해서 백업 동작을 지시하는 정보가 RCD(122a)를 통해서 또는 직접적으로 NVM 컨트롤러(126a)에 제공될 수 있다. 자체적으로는 불휘발성 메모리 모듈(120)에 공급되는 전원 전압의 레벨을 검출하여 전원 오류의 발생을 모니터링할 수 있다. 백업 동작이 활성화되면, NVM 컨트롤러(126a)는 백업 채널(BU_CH)을 통해서 디램(124_1, 124_2)들 중 적어도 하나로부터 백업 데이터를 제공받을 수 있다. NVM 컨트롤러(126a)는 디램(124_1, 124_2)으로부터 출력되는 데이터를 NVM 채널(NVM_CH)을 통해서 불휘발성 메모리(128_1, 128_2)에 저장할 것이다.
이상에서 설명된 불휘발성 메모리 모듈(120a)에 따르면, 디램(124_1, 124_2)은 호스트(110)와의 데이터 교환을 위한 메인 채널(M_CH)과 백업을 위한 백업 채널(BU_CH)을 포함할 수 있다. 더불어, 불휘발성 메모리 모듈(120a)은 정상 동작시에는 디램 모듈(DRAM Module)과 동일하게 동작할 것이다. 하지만, 전원 오류가 발생하는 경우, 불휘발성 메모리 모듈(120a)은 호스트(110)의 지시 또는 자체적인 판단에 따라 디램(124_1, 124_2)에 로드된 데이터의 일부 또는 전부의 데이터를 불휘발성 메모리(128_1, 128_2)에 백업할 수 있다. 따라서, 불휘발성 메모리 모듈(120a)은 정상 동작시에는 고속의 액세스가 가능한 워킹 메모리(Working memory)로 동작할 수 있다. 그러나 불휘발성 메모리 모듈(120a)의 전원이 제거되는 순간에는 디램(124_1, 124_2)에 로드된 데이터를 보존할 수 있는 불휘발성 특성을 가질 수 있다.
도 8은 도 7의 불휘발성 메모리 모듈이 호스트의 지시에 따라 수행하는 백업 동작을 예시적으로 보여주는 순서도이다. 도 8을 참조하면, NVM 컨트롤러(126a)는 호스트(110)에서 제공되는 명령어나 제어 신호, 또는 다양한 힌트 정보에 응답하여 백업 동작을 시작할 수 있다.
S21에서, 호스트(110)는 사용자 장치(100)의 전원 상태를 모니터링하여 파워 로스(Power Loss: PL) 또는 의도하지 않은 전원 오류(Power Failure)를 검출할 것이다. 만일, 전원 오류나 파워 로스(PL)가 검출되면, S22에서와 같이 호스트(110)는 제어 신호(예를 들면, SAVE_n)를 불휘발성 메모리 모듈(120a)에 전송한다. 여기서, 제어 신호(예를 들면, SAVE_n)는 RCD(122a)를 경유하여 NVM 컨트롤러(126a)에 전달될 수 있을 것이다. 호스트(110)는 제어 신호 대신에 명령어나 또 다른 별도의 신호를 사용하여 백업을 위한 힌트 정보를 제공할 수도 있을 것이다.
S23에서, NVM 컨트롤러(126)는 불휘발성 메모리 모듈(120a)을 구동하기 위한 전원을 백업 동작을 수행하기 위한 보조 전원(127)으로 전환한다. 보조 전원(127)은 예를 들면, 수퍼캡(Super Cap)과 같은 구성일 수 있다. 보조 전원(127)은 정상 동작시에는 호스트(110)에서 제공되는 전력을 충전하고, 백업 동작시에 충전된 전력을 방전하는 방식으로 동작할 수 있을 것이다. 보조 전원에서 제공하는 전력은 디램(124_1, 124_2), NVM 컨트롤러(126), 그리고 불휘발성 메모리(128_1, 128_2)와 같은 백업 동작에 사용되는 구성들에 제공될 것이다.
S24에서, NVM 컨트롤러(126)는 보조 전원(127)에 의해서 구동되는 디램(124_1, 124_2)으로 백업을 위한 읽기 명령어, 어드레스 등을 전송한다. 백업 채널(BU_CH)을 경유하여 이러한 읽기 명령어가 제공될 수 있다.
S25에서, 읽기 명령어에 응답하여 디램(124_1, 124_2)들 중 적어도 하나는 셀 어레이에 로드된 데이터를 센싱한다. S26에서, 디램(124_1, 124_2)들 중 적어도 하나는 센싱된 백업 데이터를 백업 채널(BU_CH)을 통해서 NVM 컨트롤러(126a)에 전송할 것이다. 여기서, 백업 데이터를 NVM 컨트롤러(126a)에 전송하는 방법은 앞서 설명한 바와 같이 페이지 단위로 또는 그보다 작거나 큰 단위로 전송될 수 있을 것이다.
S27에서, NVM 컨트롤러(126a)는 디램(124_1, 124_2)으로부터 제공된 백업 데이터를 불휘발성 메모리(128)에 프로그램할 것이다.
이상에서는 호스트(110)에서 제공되는 제어 신호, 명령어 등에 의해서 수행되는 불휘발성 메모리 모듈(120a)의 백업 동작이 간략히 설명되었다.
도 9는 도 7의 불휘발성 메모리 모듈이 자체적인 판단에 따라 실행 여부가 결정되는 백업 동작을 예시적으로 보여주는 순서도이다. 도 9를 참조하면, NVM 컨트롤러(126a)는 불휘발성 메모리 모듈(120a)에 구비되는 저전압 검출기(129)에 의해서 제공되는 검출 결과에 따라 백업 동작을 시작할 것이다.
S31에서, NVM 컨트롤러(126a)는 저전압 검출기(129)로부터 제공되는 저전압 검출신호(LDET)를 모니터링할 것이다. NVM 컨트롤러(126a)는 저전압 검출신호(LDET)가 기준 레벨 이하인 상태를 검출하면, 전원 오류나 파워 로스(PL) 상황으로 인식할 것이다. 전원 오류나 파워 로스(PL) 상황을 검출하면, 절차는 S32로 이동한다.
S32에서, NVM 컨트롤러(126a)는 불휘발성 메모리 모듈(120a)을 구동하기 위한 전원을 이전의 호스트(110)에서 제공되는 전원으로부터 백업 동작을 수행하기 위한 보조 전원(127)으로 전환한다.
S33에서, 전원의 전환이 완료되면, NVM 컨트롤러(126a)는 보조 전원(127)에 의해서 백업 데이터가 유지되는 디램(124_1, 124_2)으로 백업을 위한 읽기 명령어, 어드레스 등을 전송한다. 상술한 읽기 명령어, 어드레스 등은 백업 채널(BU_CH)을 경유하여 디램(124_1, 124_2)에 제공될 것이다. S34에서, 읽기 명령어에 응답하여 디램(124_1, 124_2)은 셀 어레이에 로드된 데이터를 센싱한다. 그리고 S35에서, 디램(124_1, 124_2)은 센싱된 백업 데이터를 백업 채널(BU_CH)을 통해서 NVM 컨트롤러(126a)에 전송할 것이다. 여기서, 백업 데이터를 NVM 컨트롤러(126a)에 전송하는 방법은 앞서 설명한 바와 같이 페이지 단위로 또는 그보다 작거나 큰 단위로 전송될 수 있을 것이다. S36에서, NVM 컨트롤러(126a)는 디램(124_1, 124_2)으로부터 제공된 백업 데이터를 불휘발성 메모리(128)에 프로그램할 것이다.
이상에서는 불휘발성 메모리 모듈(120a) 내에서 전력 상태를 검출하여 백업을 개시하는 동작이 간략히 설명되었다. 여기서, 불휘발성 메모리 모듈(120a)은 상술한 백업 동작의 신뢰성을 제공하기 위해 제반 백업 절차를 수행하기에 충분한 전력 용량을 갖는 보조 전원을 구비해야 할 것이다.
도 10은 본 발명의 백업 채널을 구비하는 디램과 NVM 컨트롤러를 보여주는 블록도이다. 도 10을 참조하면, 디램(124)은 호스트(110)와의 통신을 위한 DDR 인터페이스(124a)와는 별도로 백업을 수행하기 위한 백업 인터페이스(124b)를 포함할 수 있다.
디램(124)은 앞서 설명한 바와 같이 디램 코어(124c)와 인터페이싱을 수행하는 DDR 인터페이스(124a) 및 백업 인터페이스(124b)를 포함할 수 있다. 특히, 백업 인터페이스(124b)는 백업 데이터에 에러 정정 코드(Error Correction Code: ECC) 또는 순환 중복 검사(Cyclic Redundancy Checking: CRC) 코드를 제공하기 위한 구성을 포함할 수 있다. 백업 데이터는 비정상적인 보조 전원을 사용하여 이루어지기 때문에, 에러 정정이나 에러 검출 수단을 부가하여 백업 데이터에 대한 높은 신뢰성을 제공할 수 있을 것이다.
NVM 컨트롤러(126)는 적어도 디램(124)와 통신하기 위한 백업 인터페이스(126a)와, 불휘발성 메모리(128)에 접근하기 위한 플래시 인터페이스(126b)를 포함할 수 있다. 그리고 컨트롤 코어(126c)는 제반 백업 동작의 시작 여부의 판단, 백업 데이터의 요청, 그리고 수신된 백업 데이터에 대한 불휘발성 메모리(128)로의 기입 등을 제어할 것이다.
더불어, NVM 컨트롤러(126)는 백업 채널(125)을 통해서 제공되는 백업 데이터의 에러 존재 유무를 검출하기 위한 구성이나, 검출된 에러를 정정할 수 있는 에러 정정 또는 에러 검출 엔진을 구비할 수 있다. 이러한 에러 검출(CRC) 및 에러 정정(ECC) 엔진은 NVM 컨트롤러(126)의 백업 인터페이스(126a)에 포함될 것이다. 만일, NVM 컨트롤러(126)가 백업 데이터에 에러가 존재하는 것으로 검출하면, NVM 컨트롤러(126)는 디램(124)에 백업 데이터를 재요청할 수 있을 것이다. 또는, NVM 컨트롤러(126)가 백업 데이터에 에러가 존재하는 것으로 검출하면, NVM 컨트롤러(126)는 에러 정정 엔진을 사용하여 정정 가능한 에러 비트를 정정한 후에 불휘발성 메모리에 저장할 수 있을 것이다.
도 11a, 도 11b, 그리고 도 11c는 백업 채널의 구성 방법을 예시적으로 보여주는 도면들이다. 도 11a는 양방향 직렬 통신이 가능한 백업 채널의 예를, 도 11b는 양방향 병렬 통신이 기능한 백업 채널의 예를, 그리고 도 11c는 송신 채널과 수신 채널이 별도로 제공되는 백업 채널의 예를 보여준다.
도 11a를 참조하면, 디램(124)과 NVM 컨트롤러(126) 사이의 백업 채널(125a)은 데이터 스트로브 신호(DQS) 및 데이터 신호(DQ)를 양방향 통신(Bidirection) 방식으로 교환하도록 구성될 수 있다. 여기서, 데이터 스트로브 신호(DQS)는 클록 신호로 대체될 수 있음은 잘 이해될 것이다. 그리고, 디램(124)의 버퍼 인터페이스(124b) 및 NVM 컨트롤러(126)의 버퍼 인터페이스(126a)는 앞서 도 10에서 설명된 것과 같은 에러 정정 엔진(예를 들면, ECC) 및 에러 검출 엔진(예를 들면, CRC)을 포함할 수 있을 것이다.
도 11b를 참조하면, 디램(124)과 NVM 컨트롤러(126) 사이의 백업 채널(125b)은 데이터 스트로브 신호(DQS) 및 데이터 신호(DQ)를 양방향 통신(Bidirection) 방식으로 교환하도록 구성될 수 있다. 하지만, 대역폭을 높이기 위해 한번에 전송되는 데이터 신호(DQ)의 비트 폭을 확장할 수 있을 것이다. 즉, 양방향으로 전송되는 데이터 신호(DQ)를 전달하는 라인의 수가 복수로 제공될 수 있을 것이다.
도 11c를 참조하면, 디램(124)과 NVM 컨트롤러(126) 사이의 백업 채널(125)은 송신 채널(125c)과 수신 채널(125d)로 구성할 수 있다. 송수신 채널을 별도로 구성하는 경우, 디램(124)과 NVM 컨트롤러(126)에 구비되는 백업 인터페이스들(124b, 126a)의 구성을 상대적으로 간략화할 수 있다. 즉, 데이터 스트로브 신호(DQSa)와 데이터 신호(DQa)를 포함하는 송신 채널(125c)을 통해서 NVM 컨트롤러(126)는 디램(124)에 읽기 명령어나 어드레스를 전송할 수 있다. 더불어, 데이터 스트로브 신호(DQSb)와 데이터 신호(DQb)를 포함하는 수신 채널(125d)을 통해서 NVM 컨트롤러(126)는 디램(124)으로부터 백업 데이터를 수신할 수 있다.
이상에서 백업 채널(125)의 구성 방식에 대해서 몇몇 예시들이 제공되었다. 하지만, 본 발명의 백업 채널(125)의 구성은 상술한 예시들에만 국한되지 않으며, 다양한 설계 변경이나 조정에 의해서 본 발명의 백업 채널(125)이 구현될 수 있음은 잘 이해될 것이다.
도 12는 도 11a에 도시된 양방향 통신 방식의 백업 채널의 동작을 보여주는 타이밍도이다. 도 12를 참조하면, NVM 컨트롤러(126)는 백업을 위해 디램(124)에 데이터 읽기 명령 및 어드레스를 제공할 수 있다. 그리고 디램(124)은 읽기 요청된 데이터를 백업 채널(125)을 통해서 NVM 컨트롤러(126)로 전송할 수 있다. 양방향 통신 방식의 백업 채널을 통한 데이터 교환은 크게 명령어 단계(CMD Phase)와 데이터 단계(Data Phase)로 구분할 수 있다.
백업이 필요한 상태에 직면하면, NVM 컨트롤러(126)는 디램(124)에 백업 채널(125)을 통해서 읽기 명령을 전달하기 명령어 단계(CMD Phase)에 돌입할 것이다. 백업 채널(125)에 대한 마스터 권한은 디폴트 값으로 NVM 컨트롤러(126)가 점유하고 있을 것이다. 읽기 명령을 전달하기 위해서 NVM 컨트롤러(126)는 먼저 데이터 스트로브 신호(DQS)에 동기하여 T0 시점에 시작 비트(S)를 전송할 수 있다. 시작 비트(S)에 이어서 읽기나 쓰기와 같은 명령어의 속성을 나타내는 속성 비트(R/W)를 전달하고, 이후에는 뱅크나 행과 같은 어드레스 비트들이 전송될 수 있을 것이다. 제반 어드레스 비트들(B, R)의 전송이 완료되면, T1 시점에서 명령어 단계(CMD Phase)를 종료하는 종료 비트(E)가 전달될 수 있다.
NVM 컨트롤러(126)는 명령어 단계(CMD Phase)의 종료에 동기하여 데이터 스트로브 신호(DQS) 라인을 고임피던스(Hi-Z) 상태로 플로팅시킨다. 그러면, 백업 채널(125)에 대한 권한은 NVM 컨트롤러(126)에서 디램(124)에게 이양된다.
디램(124)은 NVM 컨트롤러(126)로부터의 읽기 명령어에 응답하여 내부적으로 백업 데이터를 센싱할 것이다. 그리고 백업 데이터에 대한 출력의 준비가 완료되는 T2 시점에서 데이터 스트로브 신호(DQS)를 로우 레벨로 천이시킬 것이다. 이때부터 데이터 단계(Data Phase)가 시작된다. 데이터 스트로브 신호(DQS)의 프리앰블(예를 들면, 소정의 클록)이 경과한 후에, 디램(124)은 백업 데이터의 출력을 시작할 것이다. 데이터 비트(D)는 데이터 라인(DQ)을 통해서 순차적으로 전달된다. 예를 들면, 데이터 비트(D)는 페이지 단위로 순차적으로 전달될 수 있을 것이다. 더불어, 디램(124)에서 백업 데이터에 대한 에러 정정 코드(ECC)나 에러 검출 코드(CRC)를 패리티로 부가한 경우, 이러한 비트들이 데이터 단계(Data Phase)에서 전달될 수 있을 것이다.
이상에서는 양방향 통신 방식에서의 백업 채널(125)을 통한 디램(124)과 NVM 컨트롤러(126)의 통신 방법이 간략히 설명되었다. 하지만, 본 발명의 백업 채널(125)은 송수신 라인을 별도로 구비하거나, 복수의 데이터 라인들(DQ) 단위로 데이터를 교환하는 방식으로도 구현될 수 있음은 잘 이해될 것이다.
도 13은 본 발명의 실시 예에 따른 사용자 장치(200)의 예를 보여주는 블록도이다. 도 13을 참조하면, 사용자 장치(200)는 호스트(210)와 불휘발성 메모리 모듈(220)을 포함할 수 있다. 여기서, 불휘발성 메모리 모듈(220)은 사용자 장치(200)의 스토리지로 사용되며, 디램(224)은 스토리지의 버퍼 메모리의 용도로 사용될 수 있다. 호스트(210)의 기능 및 동작은 도 1의 그것과 실질적으로 동일하므로 호스트(210)의 동작 설명은 생략될 것이다.
불휘발성 메모리 모듈(220)은 장치 컨트롤러(226)와 디램(224), 그리고 불휘발성 메모리(228)를 포함할 수 있다. 장치 컨트롤러(226)는 호스트(210)와의 하위 레벨의 인터페이싱을 위한 물리 계층(222)을 더 포함할 수 있을 것이다. 물리 계층(222)을 통해서 호스트(210)는 명령어 또는 제어 신호를 사용하여 디램(224)에 로드된 데이터를 불휘발성 메모리(228)에 백업하도록 제어할 수 있다. 또는, 장치 컨트롤러(226)에서 전원 오류나 전원 차단을 검출하여 디램(224)의 데이터를 불휘발성 메모리(228)에 백업하도록 제어할 수 있다.
이러한 디램(224)의 데이터를 불휘발성 메모리(228)로 백업하기 위해 디램(224)과 장치 컨트롤러(226)는 백업 채널(BU_CH)을 통해서 데이터를 교환할 수 있다. 백업 채널(BU_CH)은 앞서 설명한 바와 같이 데이터 스트로브 신호(DQS, 또는 클록)와 데이터 신호(DQ)를 포함하는 직렬 통신 방식이 사용될 수 있다. 따라서, 디램(224)은 이러한 백업 채널(BU_CH)을 통해서 데이터를 교환하기 위한 별도의 인터페이스를 구비해야 한다.
장치 컨트롤러(226)는 호스트(210)로부터 백업을 수행하기 위한 제어 신호(SAVE_n)나 명령어를 수신하면, 백업 동작을 지원하기 위한 보조 전원을 활성화할 것이다. 그리고 보조 전원 상태에서, 장치 컨트롤러(226)는 디램(224)에 읽기 명령어를 백업 채널(BU_CH)을 통해서 전달한다. 이후, 디램(224)은 백업 데이터를 장치 컨트롤러(226)에 전달하고, 장치 컨트롤러(226)는 백업 데이터를 불휘발성 메모리(228)에 프로그램할 것이다.
디램(224)과 장치 컨트롤러(226) 사이에 백업 데이터의 교환을 위해서 제공되는 백업 채널(BU_CH)의 특징은 도 1 내지 도 12에서 설명된 신호 방식이나 에러 검출, 에러 정정 방식들을 적용하여 구현할 수 있을 것이다. 따라서, 백업 채널(BU_CH)에 대한 구체적인 설명은 이하에서는 생략될 것이다.
도 14는 도 13의 불휘발성 메모리 모듈의 좀더 구체적으로 보여주는 예시적인 블록도이다. 도 14를 참조하면, 불휘발성 메모리 모듈(220a)은 데이터 버퍼(221_1, 221_2), 디램(224), 장치 컨트롤러(226), 그리고 불휘발성 메모리(228)를 포함할 수 있다.
데이터 버퍼(221_1, 221_2)는 호스트(210)와의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 수신하여 장치 컨트롤러(226)에 전달한다. 일반적으로, 데이터 버퍼(221_1, 221_2)의 존재에 따라 불휘발성 메모리 모듈(220a)은 예를 들면, LRDIMM(Load Reduced DIMM)과 호환되는 구조를 가질 수 있다.
장치 컨트롤러(226)는 호스트(210)로부터 제어 신호(예를 들면, SAVE_n)와 명령어/어드레스(CMD/ADD)를 수신할 수 있다. 그리고 장치 컨트롤러(226)는 디램(224)을 버퍼로 활용하여 호스트(210)에서 제공되는 데이터를 불휘발성 메모리(228_1, 228_2)에 저장할 수 있다. 역으로, 장치 컨트롤러(226)는 디램(224)을 버퍼로 활용하여 불휘발성 메모리(228_1, 228_2)에 저장된 데이터를 호스트(210)에 전송할 수 있다. 여기서, 디램(224)과 장치 컨트롤러(226) 사이에는 본 발명의 백업 채널이 사용될 수 있다.
장치 컨트롤러(226)가 호스트(210)로부터 제어 신호(SAVE_n)나 백업을 개시하기 위한 명령어를 수신하면, 디램(224)에 읽기 명령어를 백업 채널(BU_CH)을 통해서 전달한다. 이후, 디램(224)은 백업 데이터를 장치 컨트롤러(226)에 전달하고, 장치 컨트롤러(226)는 백업 데이터를 불휘발성 메모리(228_1, 228_2)에 프로그램할 것이다.
도 15는 도 13의 불휘발성 메모리 모듈의 다른 형태를 보여주는 예시적인 블록도이다. 도 15를 참조하면, 불휘발성 메모리 모듈(220b)은 디램(224), 장치 컨트롤러(226), 그리고 불휘발성 메모리(228)를 포함할 수 있다. 도 14의 불휘발성 메모리 모듈(220a)에 비하여, 도 14의 불휘발성 메모리 모듈(220b)은 데이터 버퍼를 포함하지 않는다. 이러한 구조는 불휘발성 메모리 모듈(220b)이 예를 들면, RDIMM(Reduced DIMM) 형태의 메모리 모듈들과 호환되는 구조를 가질 수 있음을 의미한다. 디램(224), 장치 컨트롤러(226), 그리고 불휘발성 메모리(228_1, 228_2)의 기능이나 구조는 앞서 설명된 도 14의 그것들과 동일하므로 이것들에 대한 설명은 생략될 것이다.
도 16은 본 발명 실시 예에 따른 사용자 장치(300)의 예를 보여주는 블록도이다. 도 16을 참조하면, 사용자 장치(300)는 호스트(310)와 불휘발성 메모리 모듈(320)을 포함할 수 있다. 여기서, 불휘발성 메모리 모듈(320)은 호스트(310)에 의해서 디램 모듈과 같은 워킹 메모리로 인식되거나 또는 불휘발성 스토리지로 인식될 수도 있다.
호스트(310)는 불휘발성 메모리 모듈(310)에 대해 디램 모듈(DRAM Module)로 인식하고 메인 메모리로 불휘발성 메모리 모듈(310)을 활용할 수 있다. 즉, 호스트(310)는 불휘발성 메모리 모듈(320)의 디램(324)과 불휘발성 메모리(328)를 서로 다른 랭크로 인식하고 각각 독립적으로 접근할 수 있다. 또는, 호스트(310)는 불휘발성 메모리 모듈(320)의 데이터 신호(DQ)와 데이터 스트로브 신호(DQS)는 공유하지만 명령어/어드레스(ADD1/CMD1, ADD2/CMD2)를 통해서 디램(324)과 불휘발성 메모리(328) 중 어느 한쪽에 접근할 수 있다. 또한, 호스트(310)는 전원 오류와 같은 상황에서 불휘발성 메모리 모듈(320)에 이러한 상황에 대한 힌트 정보를 명령어 또는 제어 신호를 통해서 제공할 수 있다. 예를 들면, 제어 신호(SAVE_n)를 사용하여 불휘발성 메모리 모듈(320)에 이러한 정보를 제공할 수 있을 것이다.
불휘발성 메모리 모듈(320)은 RCD(322), 디램(324), NVM 컨트롤러(326), 그리고 불휘발성 메모리(328)를 포함할 수 있다. RCD(322)는 호스트(310)에서 제공되는 명령어/어드레스(CMD1/ADD1)를 버퍼링한다. RCD(322)는 버퍼링된 명령어/어드레스(CMD1/ADD1)를 복수의 디램(324)에 전달한다. 앞서 설명한 바와 같이, RCD(322)는 전단에 위치하는 데이터 버퍼(DB, 미도시)를 제어하기 위한 명령어를 제공할 수도 있다. RCD(322)는 호스트(310)로부터 제공되는 제어 신호(CTRL)를 버퍼링하여 디램(324), 또는 NVM 컨트롤러(326)에 제공할 수 있다. 어떤 실시 예에서 RCD(322)는 호스트(310)에서 제공되는 백업을 위한 제어 신호(SAVE_n)를 NVM 컨트롤러(326)에 전달할 수도 있을 것이다.
디램(324)은 메인 채널(M_CH)을 통해서 호스트(310)와 데이터를 교환하고, 백업 채널(BU_CH)을 통해서 NVM 컨트롤러(326)와 데이터를 교환할 수 있다. 디램(324)은 메인 채널(M_CH)로 제공되는 호스트(310)로부터 데이터를 저장한다. 그리고 디램(324)은 호스트(310)로부터 요청된 데이터를 메인 채널(M_CH)의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 사용하여 출력할 수 있다. 디램(324)은 메인 채널(M_CH)과는 별도로 NVM 컨트롤러(326)와의 통신을 위한 백업 채널(BU_CH)을 포함할 수 있다. 백업 채널(BU_CH)은 메인 채널(M_CH)과는 다른 신호 방식이나 프로토콜, 대역폭 들을 갖는 시리얼 인터페이스를 적용하여 구현될 수 있다. 디램(324)의 구성 및 기능은 앞서 설명된 도 1의 그것과 실질적으로 동일하므로 구체적인 설명은 생략하기로 한다. 더불어, 메인 채널(M_CH)의 프로토콜 방식이나 백업 채널(BU_CH)의 특징도 앞서 설명된 도 1의 그것들과 실질적으로 동일할 수 있다.
NVM 컨트롤러(326)는 호스트(310)의 명령어/어드레스(CMD2/ADD2)를 제공받을 수 있다. 그리고 NVM 컨트롤러(326)는 호스트(310)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 사용하여 데이터를 교환할 수 있다. 어떤 동작 모드에서 NVM 컨트롤러(326)는 RCD(322)와의 독립적인 동작을 통해서 호스트(310)에게 서로 다른 랭크(Rank)로 인식되도록 동작할 수 있다. 또 다른 동작 모드에서, NVM 컨트롤러(326)는 디램(324)의 백업 용도로 사용될 수도 있다.
만일, 호스트(310)로부터 백업 개시를 암시하는 제어 신호(예를 들면, SAVE_n)나 명령어를 수신하면, NVM 컨트롤러(326)는 불휘발성 메모리 모듈(320)의 전원을 백업 동작을 위한 보조 전원으로 전환시킨다. 그리고 NVM 컨트롤러(326)는 디램(324)에 저장된 데이터를 불휘발성 메모리(328)로 백업한다. 이때, 디램(324)에 저장된 데이터를 NVM 컨트롤러(326)에 옮기기 위해 디램(324)과 NVM 컨트롤러(326) 사이에는 백업 채널(BU_CH)이 제공된다.
도 17은 도 16의 불휘발성 메모리 모듈을 좀더 구체적으로 보여주는 블록도이다. 도 17을 참조하면, 불휘발성 메모리 모듈(320)은 데이터 버퍼(321_1, 321_2), RCD(322), 디램(324_1, 324_2), NVM 컨트롤러(326), 그리고 불휘발성 메모리(328_1, 328_2)를 포함할 수 있다. 여기서, 데이터 버퍼(321_1, 321_2), 디램(324_1, 324_2), 불휘발성 메모리(328_1, 328_2) 등은 도 1의 그것들과 실질적으로 동일하다. 따라서 이것들에 대한 설명은 생략하기로 한다.
불휘발성 메모리 모듈(320)의 구조에서, 호스트(310)는 RCD(322)에 제공되는 명령어/어드레스(CMD/ADD)를 통해서 디램(324_1, 324_2)을 제어할 수 있다. 그리고 데이터 버퍼(321_1, 321_2)를 통해서 호스트(310)는 디램(324_1, 324_2)과 데이터 신호(DQ), 데이터 스트로브 신호(DQS)를 교환할 수 있다. 더불어, 호스트(310)는 명령어/어드레스(CMD/ADD)와 데이터 버퍼(321_1, 321_2)를 통해서 제공되는 데이터 신호(DQ), 데이터 스트로브 신호(DQS)를 사용하여 불휘발성 메모리(328_1, 328_2)에 직접 접근할 수도 있다. 즉, 호스트(310)는 NVM 컨트롤러(326)를 제어하여 디램(324_1, 324_2)과는 개별적으로 불휘발성 메모리(328_1, 328_2)에 접근할 수도 있다.
더불어, 본 발명의 NVM 컨트롤러(326)는 자체적인 판단에 따라서 혹은 호스트(310)로부터의 명령어나 제어 신호(예를 들면, SAVE_n)에 응답하여 백업 동작을 수행할 수 있다. NVM 컨트롤러(326)는 백업 동작시, 디램(324_1, 324_2)에 저장된 데이터를 백업 채널(BU_CH)을 사용하여 불휘발성 메모리(328_1, 328_2)에 백업할 수 있다. NVM 컨트롤러(326)와 디램(324_1, 324_2) 사이의 백업 채널(BU_CH)은, 디램(324_1, 324_2)이 호스트(310)와 통신하기 위한 메인 채널(M_CH)과는 다른 신호 방식, 대역폭, 프로토콜이 적용될 수 있다.
도 18은 도 1, 도 2, 도 7, 도 13 내지 도 17에서 설명된 불휘발성 메모리의 구성을 예시적으로 보여주는 블록도이다. 예시적으로, 도 1의 불휘발성 메모리(128)가 이들 불휘발성 메모리들 각각의 기능이나 특징을 대표하여 설명될 것이다. 도 18을 참조하면, 불휘발성 메모리 장치(128)는 메모리 셀 어레이(128a), 어드레스 디코더(128b), 제어 로직 및 전압 발생 회로(128c), 페이지 버퍼(128d), 및 입출력 회로(128e)를 포함한다.
메모리 셀 어레이(128a)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 셀 스트링들을 포함할 수 있다. 복수의 셀 스트링들 각각은 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들은 복수의 워드라인들(WL)과 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트를 저장하는 단일 레벨 셀(SLC; Single Level Cell) 또는 적어도 2-비트를 저장하는 멀티 레벨 셀(MLC; Multi Level Cell)을 포함할 수 있다.
어드레스 디코더(128b)는 복수의 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(128a)와 연결된다. 어드레스 디코더(128b)는 외부 장치(예를 들어, 장치 컨트롤러(110))로부터 물리 어드레스(ADDR_P)를 수신하고, 수신된 물리 어드레스(ADDR)를 디코딩하여, 복수의 워드라인들(WL)을 구동할 수 있다. 예를 들어, 어드레스 디코더(128b)는 외부 장치로부터 수신된 물리 어드레드(ADDR_P)를 디코딩하고, 디코딩된 물리 어드레스(ADDR_P)를 기반으로 복수의 워드라인들(WL) 중 적어도 하나의 워드라인을 선택하고, 선택된 적어도 하나의 워드라인을 구동할 수 있다. 예시적으로, 물리 어드레스(ADDR_P)는 스토리지 어드레스(ADDR_S, 도 1 및 도 2 참조)가 변환된, 제1 불휘발성 메모리(131)의 물리 어드레스를 가리킨다. 상술된 어드레스 변환 동작은 장치 컨트롤러(110) 또는 장치 컨트롤러(110)에 의해 구동되는 플래시 변환 계층(FTL)에 의해 수행될 수 있다.
제어 로직 및 전압 발생 회로(128c)는 외부 장치로부터 스토리지 커맨드(CMD_S) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(128b), 페이지 버퍼(128d), 및 입출력 회로(128e)를 제어할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(128c)는 신호들(CMD_S, CTRL)에 응답하여 데이터(DATA)가 메모리 셀 어레이(128a)에 저장되도록 다른 구성 요소들을 제어할 수 있다. 또는 제어 로직 및 전압 발생 회로(128c)는 신호들(CMD_S, CTRL)에 응답하여 메모리 셀 어레이(128a)에 저장된 데이터(DATA)가 외부 장치로 전송되도록 다른 구성 요소들을 제어할 수 있다. 예시적으로, 외부 장치로부터 수신된 스토리지 커맨드(CMD_S)는 도 1의 스토리지 커맨드(CMD_S)가 변형된 커맨드일 수 있다. 제어 신호(CTRL)는 장치 컨트롤러(110)가 불휘발성 메모리(131)를 제어하기 위하여 제공하는 신호일 수 있다.
제어 로직 및 전압 발생 회로(128c)는 불휘발성 메모리(131)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 제어 로직 및 전압 발생 회로(128c)는 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들, 복수의 검증 전압들과 같은 다양한 전압들을 생성할 수 있다. 제어 로직 및 전압 발생 회로(128c)는 생성된 다양한 전압들을 어드레스 디코더(128b)로 제공하거나 또는 메모리 셀 어레이(128a)의 기판으로 제공할 수 있다.
페이지 버퍼(128d)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(128a)와 연결된다. 페이지 버퍼(128d)는 제어 로직 및 전압 발생 회로(128c)의 제어에 따라 입출력 회로(128e)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(128a)에 저장되도록 비트 라인들(BL)을 제어할 수 있다. 페이지 버퍼(128d)는 제어 로직 및 전압 발생 회로(128c)의 제어에 따라 메모리 셀 어레이(110)에 저장된 데이터를 읽고, 읽은 데이터를 입출력 회로(128e)로 전달할 수 있다. 예시적으로, 페이지 버퍼(128d)는 입출력 회로(128e)로부터 페이지 단위로 데이터를 수신하거나 또는 메모리 셀 어레이(128a)로부터 페이지 단위로 데이터를 읽을 수 있다.
입출력 회로(131a)는 외부 장치로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 페이지 버퍼(128d)로 전달할 수 있다. 또는 입출력 회로(128e)는 페이지 버퍼(128d)로부터 데이터(DATA)를 수신하고, 수신된 데이터(DATA)를 외부 장치(예를 들어, 장치 제어기(110))로 전달할 수 있다. 예시적으로, 입출력 회로(160)는 제어 신호(CTRL)와 동기되어 외부 장치와 데이터(DATA)를 송수신할 수 있다.
도 19는 도 18의 메모리 셀 어레이에 포함된 메모리 블록들 중 제 1 메모리 블록의 예를 보여주는 회로도이다. 예시적으로, 도 19를 참조하여 3차원 구조의 제 1 메모리 블록(BLK1)이 설명된다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리(128) 각각에 포함된 다른 메모리 블록들 또한 제 1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.
도 19를 참조하면, 제 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) 중 일부는 하나의 소거 요청에 따라 동시에 소거되고, 나머지 일부는 소거 금지될 수 있다. 소거되는 메모리 셀들에 연결된 워드 라인에 저전압(예를 들어, 접지 전압)이 공급되고, 소거 금지된 메모리 셀들에 연결된 워드 라인은 플로팅될 수 있다.
도 19에 도시된 제 1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제 1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들는 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제 1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
도 20은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템을 예시적으로 보여주는 블록도이다. 도 20을 참조하면, 컴퓨팅 시스템(1000)은 프로세서(1100), 램 모듈들(1200, 1250), 불휘발성 메모리 모듈들(1300, 1350), 칩셋(1400), GPU(1500), 입출력 장치(1600), 및 스토리지 장치(1700)를 포함할 수 있다.
프로세서(1100)는 컴퓨팅 시스템(1000)의 제반 동작을 제어할 수 있다. 프로세서(1100)는 컴퓨팅 시스템(1000)에서 수행되는 다양한 연산을 수행할 수 있다.
불휘발성 메모리 모듈들(1300, 1350) 및 램 모듈들(1200, 1250)은 프로세서(1100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈들(1300, 1350) 및 램 모듈들(1200, 1250) 각각은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 가질 수 있고, 불휘발성 메모리 모듈들(1300, 1350) 및 램 모듈들(1200, 1250) 각각은 프로세서(1100)와 직접적으로 연결된 DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다. 예시적으로, 불휘발성 메모리 모듈들(1300, 1350)은 도 1 내지 도 17을 참조하여 설명된 불휘발성 메모리 모듈(120, 220, 230)들 중 어느 하나의 형태일 수 있다.
불휘발성 메모리 모듈들(1300, 1350) 및 램 모듈들(1200, 1250)은 동일한 인터페이스(1150)를 통해 프로세서(1100)와 통신할 수 있다. 예를 들어, 불휘발성 메모리 모듈들(1300, 1350) 및 램 모듈들(1200, 1250) DDR(Double Data Rate) 인터페이스(1150)를 통해 통신할 수 있다. 예시적으로, 프로세서(1100)는 램 모듈들(1200, 1250)을 컴퓨팅 시스템(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, 메모리 카드, 메모리 스틱 등과 같은 대용량 저장 매체들을 포함할 수 있다.
예시적으로, 불휘발성 메모리 모듈들(1300, 1350)은 프로세서(1100)에 의해 컴퓨팅 시스템(1000)의 스토리지 또는 워킹 메모리로 사용될 수 있다. 불휘발성 메모리 모듈들(1300, 1350) 및 프로세서(1100) 사이의 인터페이스(1150)는 스토리지 장치(1700) 및 프로세서(1100) 사이의 인터페이스보다 고속 인터페이스일 수 있다. 즉, 프로세서(1100)가 불휘발성 메모리 모듈들(1300, 1350)을 저장 매체로서 사용함으로써 컴퓨팅 시스템의 성능이 향상된다.
이상에서 설명된 불휘발성 메모리 모듈들(1300, 1350) 각각은 프로세서(1100)의 요청이나 자체적인 전원 오류의 검출에 응답하여 디램(DRAM)에 저장된 데이터를 불휘발성 메모리에 백업할 수 있다. 메모리 모듈들(1300, 1350)에 포함되는 디램들 각각은 호스트와 데이터를 교환하기 위한 제 1 채널과 백업을 위해 불휘발성 메모리로 데이터를 전달하기 위한 제 2 채널을 가질 수 있다. 디램의 제 1 채널과 제 2 채널을 구동하기 위한 인터페이스에는 서로 다른 신호 방식이나 프로토콜이 적용될 수 있을 것이다. 예를 들면, 프로세서(1100)와의 통신을 위한 제 1 채널에는 DDR4 인터페이스 프로토콜이 적용되고, 백업을 위한 제 2 채널에는 양방향 또는 단방향 직렬 통신 인터페이스가 적용될 수 있을 것이다.
도 21은 도 20의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 21은 LRDIMM(Load Reduced DIMM) 형태를 갖는 불휘발성 메모리 모듈(1300)의 블록도이다. 예시적으로, 도 21에 도시된 불휘발성 메모리 모듈(1300)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 21을 참조하면, 불휘발성 메모리 모듈(1300)은 장치 컨트롤러(1310), 버퍼 메모리(1320), 불휘발성 메모리 장치(1330), 및 직렬 프레즌스 검출 칩(1340)(SPD; Serial Presence Detect chip)를 포함한다. 장치 컨트롤러(1310)는 램(1311)을 포함할 수 있다. 예시적으로, 불휘발성 메모리 장치(1330)는 복수의 불휘발성 메모리들(NVM)을 포함할 수 있다. 불휘발성 메모리 장치(1330)에 포함된 복수의 불휘발성 메모리들 각각은 별도의 칩, 별도의 패키지, 별도의 장치, 또는 별도의 모듈로 각각 구현될 수 있다. 또는 불휘발성 메모리 장치(1330)는 하나의 칩 또는 하나의 패키지로 구현될 수 있다.
장치 컨트롤러(1310)는 프로세서(1100)로부터 제어 신호(SAVE_n)나 명령어에 응압하여 버퍼 메모리(1320)에 저장된 데이터를 불휘발성 메모리(1330)에 백업할 수 있다. 버퍼 메모리(1320)는 프로세서(1100)와의 데이터 교환을 위한 채널 이외에 백업을 위한 백업 채널을 포함할 수 있다.
SPD(1340)는 프로그램 가능 읽기 전용 기억 장치(EEPROM)일 수 있다. SPD(1340)는 불휘발성 메모리 모듈(1300)의 초기 정보 또는 장치 정보를 포함할 수 있다. 예시적으로, SPD(1340)는 불휘발성 메모리 모듈(1300)의 모듈 형태, 모듈 구성, 저장 용량, 모듈 종류, 실행 환경 등과 같은 초기 정보 또는 장치 정보를 포함할 수 있다. 불휘발성 메모리 모듈(1300)이 포함된 컴퓨팅 시스템이 부팅될 때, 컴퓨팅 시스템의 프로세서(1100)는 SPD(1340)를 읽고, 이를 기반으로 불휘발성 메모리 모듈(1300)을 인식할 수 있다. 프로세서(1100)는 SPD(1340)를 기반으로 불휘발성 메모리 모듈(1300)을 저장 매체로서 사용할 수 있다.
예시적으로, SPD(1340)는 부가 통신 채널(Side-Band Communication Channel)을 통해 프로세서(1100)와 통신할 수 있다. 프로세서(1100)는 부가 통신 채널을 통해 SPD(1340)와 부가 신호(SBS; Side-Band Signal)을 주고 받을 수 있다. 예시적으로, SPD(1340)는 부가 통신 채널을 통해 장치 컨트롤러(1310)와 통신할 수 있다. 예시적으로, 부가 통신 채널은 I2C 통신에 기반된 채널일 수 있다. 예시적으로, SPD(1340), 장치 컨트롤러(1310), 및 프로세서(1100)는 I2C 통신을 기반으로 서로 통신하거나 또는 정보를 주고 받을 수 있다.
도 22는 도 20의 불휘발성 메모리 모듈들 중 어느 하나를 예시적으로 보여주는 블록도들이다. 예시적으로, 도 22는 RDIMM(Registered DIMM) 형태를 갖는 불휘발성 메모리 모듈(2300)의 블록도이다. 예시적으로, 도 22에 도시된 불휘발성 메모리 모듈(2300)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(1100)와 통신할 수 있다.
도 22을 참조하면, 불휘발성 메모리 모듈(2300)은 장치 컨트롤러(2310), 버퍼 메모리(2320), 불휘발성 메모리 장치(2330), 직렬 프레즌스 검출 칩(2340)(SPD; Serial Presence Detect chip), 및 데이터 버퍼 회로(2350)를 포함한다. 장치 컨트롤러(2310)는 램(2311)을 포함한다. 장치 컨트롤러(2310), 램(2311), 불휘발성 메모리 장치(2330), 및 SPD(2340)는 도 21을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
데이터 버퍼 회로(2350)는 프로세서(1100, 도 20 참조)로부터 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 장치 컨트롤러(2350)로 전달할 수 있다. 또는 데이터 버퍼 회로(2350)는 장치 컨트롤러(2310)로부터 정보 또는 데이터를 수신하고, 수신된 정보 또는 데이터를 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 통해 프로세서(1100)로 전달할 수 있다.
예시적으로, 데이터 버퍼 회로(2350)는 복수의 데이터 버퍼들(Data Buffer)을 포함할 수 있다. 복수의 데이터 버퍼들(Data Buffer) 각각은 프로세서(1100)와 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 주고 받을 수 있다. 또는 복수의 데이터 버퍼들 각각은 장치 컨트롤러(2310)와 신호를 주고 받을 수 있다. 예시적으로, 복수의 데이터 버퍼들 각각은 장치 컨트롤러(2310)의 제어에 따라 동작할 수 있다.
장치 컨트롤러(2310)는 프로세서(1100)로부터 제어 신호(SAVE_n)나 명령어에 응압하여 버퍼 메모리(2320)에 저장된 데이터를 불휘발성 메모리(2330)에 백업할 수 있다. 버퍼 메모리(2320)는 프로세서(1100)와의 데이터 교환을 위한 채널 이외에 백업을 위한 백업 채널을 포함할 수 있다.
도 23은 본 발명에 따른 불휘발성 메모리 모듈이 적용된 컴퓨팅 시스템의 다른 예를 예시적으로 보여주는 블록도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다. 도 23을 참조하면, 컴퓨팅 시스템(3000)은 프로세서(3100), 불휘발성 메모리 모듈(3200), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)를 포함한다. 프로세서(3100), 칩셋(3400), GPU(3500), 입출력 장치(3600), 및 스토리지 장치(3700)는 도 20을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
불휘발성 메모리 모듈(3200)은 프로세서(3100)와 직접적으로 연결될 수 있다. 예를 들어, 불휘발성 메모리 모듈(3200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module)의 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다.
불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함할 수 있다. 도 20 내지 도 22을 참조하여 설명된 불휘발성 메모리 모듈들(1300, 2300)과 달리, 프로세서(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 소켓에 장착된 하나의 메모리 모듈에 포함된 불휘발성 메모리 장치(3220) 또는 램 장치(3230)를 각각 선택적으로 접근할 수 있다.
여기서, 램 장치(3230)는 프로세서(3100)와의 통신을 위한 제 1 채널과, 불휘발성 메모리 장치(3220)로 데이터를 백업하기 위한 제 2 채널을 포함할 수 있다.
도 24는 도 23의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 24를 참조하면, 불휘발성 메모리 모듈(3200)은 제어 회로(3210), 불휘발성 메모리 장치(3220), 및 램 장치(3230)를 포함한다. 예시적으로, 불휘발성 메모리 장치(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)를 선택적으로 접근할 수 있다. 램 장치(3230)는 프로세서(3100)와의 통신을 위한 제 1 채널과, 백업을 위한 제 2 채널을 포함할 수 있다. 장치 컨트롤러(3211)는 프로세서(3100)의 요청에 따라 또는 자체적인 상태 검출을 통해서 램 장치(3230)의 제 2 채널을 통한 백업 동작을 수행할 수 있다.
도 25는 도 23의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 예시적으로, 도 25의 불휘발성 메모리 모듈(4200)은 듀얼 인-라인 메모리 모듈(DIMM; Dual In-line Memory Module) 형태를 갖고, DIMM 소켓에 장착되어 프로세서(3100)와 통신할 수 있다. 도 25를 참조하면, 불휘발성 메모리 모듈(4200)은 제어 회로(4100), 불휘발성 메모리 장치(4220), 및 램 장치(4230)을 포함할 수 있다. 제어 회로(4210)는 장치 컨트롤러(4211), SPD(4212), 및 데이터 버퍼 회로(4213)를 포함한다. 램 장치(4230)는 데이터 버퍼(4213)와 연결되는 메인 채널(M_CH)과 백업 동작시 사용되는 백업 채널(BU_CH)을 포함할 수 있다.
장치 컨트롤러(4211)는 프로세서(3100)로부터 커맨드(CMD), 어드레스(ADDR), 및 클록(CK)을 수신한다. 장치 컨트롤러(4211)는 특히 프로세서(3100)로부터의 제어 신호(SAVE_n)나 자체적인 상태 검출에 응답하여 램 장치(4230)에 저장된 데이터를 불휘발성 메모리 장치(4220)로 백업할 수 있다.
도 26은 도 23의 불휘발성 메모리 모듈을 예시적으로 보여주는 블록도이다. 도 26을 참조하면, 불휘발성 메모리 모듈(5200)은 제어 회로(5210), 불휘발성 메모리 장치(5220), 및 램 장치(5230)를 포함한다. 제어 회로(5210)는 장치 컨트롤러(5211) 및 SPD(5212)를 포함한다. 도 26의 불휘발성 메모리 모듈(5200)은 도 25의 불휘발성 메모리 모듈(4200)과 유사하게 동작할 수 있다. 다만, 도 26의 불휘발성 메모리 모듈(5200)은 도 25의 불휘발성 메모리 모듈(4200)과 달리 데이터 버퍼 회로(4213)를 포함하지 않는다. 예시적으로, 도 25의 불휘발성 메모리 모듈(4200)은 LRDIMM(Load Redued DIMM) 형태의 메모리 모듈이고, 도 26의 불휘발성 메모리 모듈(5200)은 RDIMM(Registered DIMM) 형태의 메모리 모듈일 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 청구범위뿐만 아니라 이 발명의 청구범위와 균등한 것들에 의해 정해져야 할 것이다.

Claims (20)

  1. 호스트와 제 1 채널을 통해서 데이터를 교환하는 휘발성 메모리 장치;
    불휘발성 메모리 장치; 그리고
    상기 휘발성 메모리 장치와 제 2 채널을 통해서 연결되며 상기 호스트로부터의 지시 또는 전원의 상태를 검출하여 상기 휘발성 메모리 장치에 저장된 데이터를 상기 제 2 채널을 경유하여 상기 불휘발성 메모리 장치로 백업하도록 상기 휘발성 메모리 장치 및 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하되,
    상기 휘발성 메모리 장치는 상기 제 1 채널을 통해서 상기 호스트와 통신하기 위한 제 1 인터페이스와, 상기 제 2 채널을 통해 상기 메모리 컨트롤러와 통신하기 위한 제 2 인터페이스를 포함하는 메모리 모듈.
  2. 제 1 항에 있어서,
    상기 제 2 인터페이스에 의해서 제공되는 전송 대역폭은 상기 제 1 인터페이스에 의해서 제공되는 전송 대역폭과 다른 메모리 모듈.
  3. 제 2 항에 있어서,
    상기 제 1 인터페이스는 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) 중 적어도 하나의 프로토콜에 따라 데이터를 교환하는 메모리 모듈.
  4. 제 2 항에 있어서,
    상기 제 2 인터페이스는 단방향 또는 양방향 통신이 가능한 직렬 통신 프로토콜을 갖는 메모리 모듈.
  5. 제 4 항에 있어서,
    상기 제 2 인터페이스의 포로토콜은 I2C(Inter-Integrated Circuit) 버스, UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), CAN(Controller Area Network), SMBUS(System Management Bus) 프로토콜들 중 적어도 하나를 포함하는 메모리 모듈.
  6. 제 1 항에 있어서,
    상기 제 2 인터페이스는 백업 데이터에 대한 에러 정정 코드 또는 에러 검출 코드를 부가하기 위한 에러 관리 블록을 포함하는 메모리 모듈.
  7. 제 1 항에 있어서,
    상기 제 2 인터페이스의 신호 라인은 데이터 신호(DQ)와 데이터 스트로브 신호(DQS), 그리고 클록 신호(CLK)들 중 적어도 하나를 포함하는 메모리 모듈.
  8. 제 7 항에 있어서,
    상기 제 2 인터페이스에 의한 통신은 명령어 단계와 데이터 단계를 포함하며, 상기 명령어 단계에는 상기 메모리 컨트롤러에 의해서 제공되는 시작 비트, 종료 비트, 그리고 상기 시작 비트와 상기 종료 비트 사이에 제공되는 명령어 비트, 어드레스 비트들이 포함되는 메모리 모듈.
  9. 제 7 항에 있어서,
    상기 제 2 인터페이스는 페이지 단위, 복수의 페이지 단위, 또는 상기 페이지 단위보다 작은 단위로 백업 데이터를 전송하는 메모리 모듈.
  10. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 호스트로부터 제어 신호(SAVE_n)에 응답하여, 백업을 위한 전원을 보조 전원 소스로 전환하고, 상기 휘발성 메모리 장치에 로드된 데이터를 상기 불휘발성 메모리 장치로 백업하는 메모리 모듈..
  11. 제 1 항에 있어서,
    상기 메모리 모듈은 듀얼 인-라인 메모리 모듈(DIMM) 형태로 상기 호스트에 연결되는 메모리 모듈.
  12. 제 1 항에 있어서,
    상기 호스트의 명령어, 어드레스, 또는 제어 신호를 버퍼링하여 상기 휘발성 메모리에 전달하는 레지스터 클록 드라이버(RCD)를 더 포함하는 메모리 모듈.
  13. 제 1 항에 있어서,
    상기 불휘발성 메모리 장치는 3차원 메모리 어레이를 포함하는 메모리 모듈.
  14. 불휘발성 메모리 장치;
    제 1 인터페이스와, 상기 불휘발성 메모리 장치로의 백업 동작을 위해 상기 제 1 인터페이스와는 별도로 제공되는 제 2 인터페이스를 포함하는 디램; 그리고
    백업 동작시, 상기 제 2 인터페이스를 활성화시키고, 상기 디램으로부터 제공되는 백업 데이터를 상기 불휘발성 메모리에 프로그램하는 불휘발성 메모리 컨트롤러를 포함하는 메모리 모듈.
  15. 제 14 항에 있어서,
    상기 불휘발성 메모리 컨트롤러는 호스트로부터의 지시에 따라 또는 전원 전압의 레벨을 모니티링하여 상기 백업 동작의 실시 여부를 판단하는 메모리 모듈.
  16. 제 14 항에 있어서,
    상기 제 2 인터페이스는 상기 불휘발성 메모리 컨트롤러와의 데이터 교환을 수행하기 위한 단방향 또는 양방향 직렬 통신 프로토콜에 따라 구동되는 메모리 모듈.
  17. 제 16 항에 있어서,
    상기 제 2 인터페이스는 상기 백업 데이터에 대한 에러 정정 코드 또는 에러 검출 코드를 제공하기 위한 에러 검출 또는 에러 정정 엔진을 포함하는 메모리 모듈.
  18. 제 17 항에 있어서,
    상기 불휘발성 메모리 컨트롤러는 상기 백업 데이터에 에러가 존재하는 경우, 상기 디램에 재전송을 요청하는 메모리 모듈.
  19. 제 14 항에 있어서,
    상기 제 2 인터페이스는 상기 백업 데이터를 페이지 단위 또는 상기 페이지 단위보다 크거나 작은 데이터들의 버스트 단위로 전송하는 메모리 모듈.
  20. 제 14 항에 있어서,
    상기 제 1 인터페이스는 상기 호스트와 더블 데이터 레이트(DDR, DDR2, DDR3, DDR4) 방식의 프로토콜에 따라 데이터를 교환하는 메모리 모듈.
KR1020150109520A 2015-08-03 2015-08-03 백업 기능을 갖는 메모리 모듈 KR102274038B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150109520A KR102274038B1 (ko) 2015-08-03 2015-08-03 백업 기능을 갖는 메모리 모듈
US15/093,769 US9824734B2 (en) 2015-08-03 2016-04-08 Nonvolatile memory module having backup function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150109520A KR102274038B1 (ko) 2015-08-03 2015-08-03 백업 기능을 갖는 메모리 모듈

Publications (2)

Publication Number Publication Date
KR20170016548A true KR20170016548A (ko) 2017-02-14
KR102274038B1 KR102274038B1 (ko) 2021-07-09

Family

ID=58053849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150109520A KR102274038B1 (ko) 2015-08-03 2015-08-03 백업 기능을 갖는 메모리 모듈

Country Status (2)

Country Link
US (1) US9824734B2 (ko)
KR (1) KR102274038B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180010953A (ko) * 2016-07-22 2018-01-31 삼성전자주식회사 비휘발성 메모리 익스프레스(NVMe) 장치의 커맨드의 실행 조정을 위한 시스템 및 방법
KR20190073055A (ko) * 2017-12-18 2019-06-26 삼성전자주식회사 스토리지 컨트롤러, 그것을 포함하는 스토리지 장치, 및 스토리지 컨트롤러의 동작 방법
KR20200108367A (ko) * 2018-02-05 2020-09-17 마이크론 테크놀로지, 인크. 영구 메모리로의 cpu 캐시 플러싱

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10198320B2 (en) * 2014-10-31 2019-02-05 Hewlett-Packard Development Company, L.P. Power-loss protection
US10275299B2 (en) * 2017-02-02 2019-04-30 International Business Machines Corporation Efficient transfer of data from CPU to onboard management device
KR20180101760A (ko) * 2017-03-06 2018-09-14 에스케이하이닉스 주식회사 저장 장치, 데이터 처리 시스템 및 이의 동작 방법
US10338838B2 (en) 2017-03-24 2019-07-02 Samsung Electronics Co., Ltd. Multi-mode NVMe over fabrics device for supporting CAN (controller area network) bus or SMBus interface
US11029879B2 (en) 2018-01-29 2021-06-08 Samsung Electronics Co., Ltd Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel
US11099831B2 (en) * 2018-02-08 2021-08-24 Micron Technology, Inc. Firmware update in a storage backed memory system
US11243757B2 (en) * 2018-12-03 2022-02-08 Dell Products L.P. Systems and methods for efficient firmware update of memory devices in BIOS/UEFI environment
US11320990B2 (en) * 2019-05-24 2022-05-03 Dell Products L.P. NVDIMM serial interface for out-of-band management by a baseboard management controller and method therefor
US11204752B1 (en) * 2019-06-11 2021-12-21 American Megatrends International, Llc Intelligent migration of firmware configuration settings
US11055220B2 (en) 2019-08-19 2021-07-06 Truememorytechnology, LLC Hybrid memory systems with cache management
US11526441B2 (en) 2019-08-19 2022-12-13 Truememory Technology, LLC Hybrid memory systems with cache management
US11341246B2 (en) * 2019-08-23 2022-05-24 Dell Products L.P. Secure firmware update for device with low computing power
TWI716993B (zh) * 2019-09-03 2021-01-21 宜鼎國際股份有限公司 雙通道資料儲存系統
KR20210033588A (ko) * 2019-09-18 2021-03-29 삼성디스플레이 주식회사 표시장치
US11681352B2 (en) * 2019-11-26 2023-06-20 Adesto Technologies Corporation Standby current reduction in memory devices
US11941286B2 (en) * 2022-02-04 2024-03-26 Western Digital Technologies, Inc. Keeping a zone random write area in non-persistent memory
CN114721880B (zh) * 2022-05-19 2022-09-09 中诚华隆计算机技术有限公司 任务恢复方法、soc芯片及电子设备
KR20240018254A (ko) * 2022-08-02 2024-02-13 삼성전자주식회사 스토리지 장치 및 스토리지 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323452A1 (en) * 2008-06-25 2009-12-31 International Business Machines Corporation Dual Mode Memory System for Reducing Power Requirements During Memory Backup Transition
JP2011164994A (ja) * 2010-02-10 2011-08-25 Toshiba Corp メモリシステム
KR101343252B1 (ko) * 2006-02-09 2013-12-18 구글 인코포레이티드 메모리 회로 시스템 및 방법
US20150135039A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. Block closure techniques for a data storage device

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024518B2 (en) 1998-02-13 2006-04-04 Intel Corporation Dual-port buffer-to-memory interface
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US7580465B2 (en) 2005-06-30 2009-08-25 Intel Corporation Low speed access to DRAM
US7930513B2 (en) 2006-11-04 2011-04-19 Virident Systems Inc. Writing to asymmetric memory
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US8046546B2 (en) 2007-07-25 2011-10-25 AGIGA Tech Variable partitioning in a hybrid memory subsystem
US7865679B2 (en) 2007-07-25 2011-01-04 AgigA Tech Inc., 12700 Power interrupt recovery in a hybrid memory subsystem
US8154259B2 (en) 2007-07-25 2012-04-10 Agiga Tech Inc. Capacitor save energy verification
US8200885B2 (en) 2007-07-25 2012-06-12 Agiga Tech Inc. Hybrid memory system with backup power source and multiple backup an restore methodology
US8074034B2 (en) 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
US7941591B2 (en) 2008-07-28 2011-05-10 CacheIQ, Inc. Flash DIMM in a standalone cache appliance system and methodology
US8008894B2 (en) 2008-12-05 2011-08-30 Agiga Tech Inc. Adjusting a top charge capacitor voltage according to an operating temperature of the capacitor
US8977831B2 (en) * 2009-02-11 2015-03-10 Stec, Inc. Flash backed DRAM module storing parameter information of the DRAM module in the flash
US8169839B2 (en) 2009-02-11 2012-05-01 Stec, Inc. Flash backed DRAM module including logic for isolating the DRAM
US8479061B2 (en) 2009-09-24 2013-07-02 AGIGA Tech Solid state memory cartridge with wear indication
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
US8392761B2 (en) 2010-03-31 2013-03-05 Hewlett-Packard Development Company, L.P. Memory checkpointing using a co-located processor and service processor
US8374049B2 (en) 2010-04-08 2013-02-12 Agiga Tech Inc. DIMM memory module reference voltage switching circuit
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9779020B2 (en) 2011-02-08 2017-10-03 Diablo Technologies Inc. System and method for providing an address cache for memory map learning
US8638634B2 (en) 2011-03-01 2014-01-28 Agiga Tech Inc. Apparatus and method to measure energy capacity of a backup power supply without compromising power delivery
US8468317B2 (en) 2011-06-07 2013-06-18 Agiga Tech Inc. Apparatus and method for improved data restore in a memory system
US9013946B2 (en) 2012-01-12 2015-04-21 Agiga Tech Inc. Apparatus and method to manage energy capacity of a backup power supply
KR101745846B1 (ko) 2012-05-02 2017-06-12 인텔 코포레이션 다수의 미디어 액세스 제어기들을 이용하는 데이터의 패킷 프로세싱
US20140095769A1 (en) 2012-10-02 2014-04-03 International Business Machines Corporation Flash memory dual in-line memory module management
US9280497B2 (en) 2012-12-21 2016-03-08 Dell Products Lp Systems and methods for support of non-volatile memory on a DDR memory channel
US9583183B2 (en) * 2014-09-26 2017-02-28 Sandisk Technologies Llc Reading resistive random access memory based on leakage current

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101343252B1 (ko) * 2006-02-09 2013-12-18 구글 인코포레이티드 메모리 회로 시스템 및 방법
US20090323452A1 (en) * 2008-06-25 2009-12-31 International Business Machines Corporation Dual Mode Memory System for Reducing Power Requirements During Memory Backup Transition
JP2011164994A (ja) * 2010-02-10 2011-08-25 Toshiba Corp メモリシステム
US20150135039A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. Block closure techniques for a data storage device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180010953A (ko) * 2016-07-22 2018-01-31 삼성전자주식회사 비휘발성 메모리 익스프레스(NVMe) 장치의 커맨드의 실행 조정을 위한 시스템 및 방법
KR20190073055A (ko) * 2017-12-18 2019-06-26 삼성전자주식회사 스토리지 컨트롤러, 그것을 포함하는 스토리지 장치, 및 스토리지 컨트롤러의 동작 방법
US11940862B2 (en) 2017-12-18 2024-03-26 Samsung Electronics Co., Ltd. Storage controller, storage device including the same, and operation method of storage controller
KR20200108367A (ko) * 2018-02-05 2020-09-17 마이크론 테크놀로지, 인크. 영구 메모리로의 cpu 캐시 플러싱

Also Published As

Publication number Publication date
US20170040057A1 (en) 2017-02-09
KR102274038B1 (ko) 2021-07-09
US9824734B2 (en) 2017-11-21

Similar Documents

Publication Publication Date Title
KR102274038B1 (ko) 백업 기능을 갖는 메모리 모듈
KR102430561B1 (ko) 듀얼 포트 디램을 포함하는 메모리 모듈
US10649894B2 (en) Nonvolatile memory module and operation method thereof
US11106363B2 (en) Nonvolatile memory device and operation method thereof
CN110471866B (zh) 存储器系统和存储器系统的操作方法
TW201820325A (zh) 記憶體系統及其操作方法
KR20170036964A (ko) 불휘발성 메모리 시스템의 동작 방법
US20190155767A1 (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
KR20210146643A (ko) 저장 장치 및 그 동작 방법
KR20210077451A (ko) 저장 장치 및 그 동작 방법
KR102513903B1 (ko) 불휘발성 메모리 모듈 및 메모리 시스템
KR20160144564A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
US11521684B2 (en) Memory device and method of operating the same
US11314652B2 (en) Memory controller and method of operating the same
KR102629487B1 (ko) 메모리 컨트롤러 및 그 동작 방법
KR20220120016A (ko) 메모리 컨트롤러 및 그 동작 방법
KR102548574B1 (ko) 불휘발성 메모리 모듈
US11482291B2 (en) Memory device and method of operating the same
US11886314B2 (en) Memory system and operating method thereof
KR20170007580A (ko) 불휘발성 메모리 모듈 및 그것의 동작 방법
US11282570B2 (en) Storage device and method of operating the same
KR20160144556A (ko) 불휘발성 메모리 모듈
KR20220035755A (ko) 메모리 장치 및 그 동작 방법
KR20230149967A (ko) 메모리 컨트롤러 및 그 동작 방법

Legal Events

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