KR102031661B1 - 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 - Google Patents
데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법Info
- Publication number
- KR102031661B1 KR102031661B1 KR1020120118017A KR20120118017A KR102031661B1 KR 102031661 B1 KR102031661 B1 KR 102031661B1 KR 1020120118017 A KR1020120118017 A KR 1020120118017A KR 20120118017 A KR20120118017 A KR 20120118017A KR 102031661 B1 KR102031661 B1 KR 102031661B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory
- nonvolatile
- cell array
- memory cell
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/20—Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Static Random-Access Memory (AREA)
- Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 불휘발성 메모리에 관한 것이다. 본 발명의 불휘발성 메모리는, 메모리 셀 어레이, 복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더, 복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로, 전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기, 그리고 전압 변화 신호에 응답하여 메모리 셀 어레이에 저장된 데이터를 무효화하도록 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직으로 구성된다.
Description
본 발명은 반도체 메모리를 기억 소자로 사용하는 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법에 관한 것이다.
반도체 메모리 장치(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) 등이 있다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 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) 등이 있다.
본 발명의 목적은 설계가 단순하고 파워 소모가 절감되는 메인 메모리를 제공함과 동시에, 메인 메모리에 저장되는 보안 데이터의 유출을 방지할 수 있는 데이터 저장 장치를 제공하는데 있다.
본 발명의 실시 예에 따른 불휘발성 메모리는, 복수의 불휘발성 메모리 셀들을 포함하는 메모리 셀 어레이; 복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더; 복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로; 전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고 상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함한다.
실시 예로서, 상기 전원 전압 검출기는 상기 전원 전압이 일정 레벨 이하로 낮아지는 것을 감지하여 상기 전압 변화 신호를 출력하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 상기 메모리 셀 어레이의 불휘발성 메모리 셀들에 데이터 "1" 또는 데이터 "0"을 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어함으로서 상기 데이터를 무효화하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 상기 불휘발성 메모리 셀에 데이터 "0" 또는 데이터 "1" 중 파워 소모가 적게 소모되는 데이터를 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성된다.
실시 예로서, 외부 장치에 의해 설정되는 레지스터를 더 포함하고, 상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 전압 변화 신호에 응답하여 상기 데이터를 무효화할 지의 여부를 판별하고, 그리고 상기 판별 결과에 따라 상기 데이터의 무효화를 선택적으로 수행하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 데이터의 무효화가 수행될 때 데이터 "0" 또는 데이터 "1" 중 어느 데이터를 상기 불휘발성 메모리 셀들에 덮어쓸지를 판별하고, 상기 판별된 데이터를 이용하여 덮어쓰기를 수행하도록 구성된다.
실시 예로서, 상기 컨트롤 로직의 제어에 응답하여 랜덤 데이터를 생성하는 랜덤 데이터 생성기를 더 포함하며, 상기 컨트롤 로직은 상기 랜덤 데이터 생성기에서 생성된 랜덤 데이터를 상기 복수의 불휘발성 메모리 셀들에 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어한다.
실시 예로서, 상기 메모리 셀 어레이는 서로 다른 특성의 데이터를 저장하는 적어도 두 개의 영역들을 포함하며, 상기 전압 변화 신호에 응답하여, 상기 적어도 두 개의 영역들에 저장된 데이터는 선택적으로 무효화된다.
실시 예로서, 외부 장치에 의해 설정되는 레지스터를 더 포함하고, 상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 적어도 두 개의 영역들 중 무효화가 수행되는 영역 및 무효화가 수행되지 않는 영역을 판별하도록 구성된다.
실시 예로서, 상기 메모리 셀 어레이는 부팅 정보를 저장하는 부팅 정보 영역; 및 사용자 데이터를 저장하는 노멀 영역을 포함하며, 상기 전압 변화 신호에 응답하여, 상기 부팅 정보 영역에 저장된 부팅 정보는 무효화 되지 않는다.
실시 예로서, 상기 메모리 셀 어레이는 보안 데이터를 저장하는 보안 영역; 및 비보안 데이터를 저장하는 비보안 영역을 포함하며, 상기 전압 변화 신호에 응답하여, 상기 보안 영역에 저장된 상기 보안 데이터는 무효화 되고, 상기 비보안 영역에 저장된 상기 비보안 데이터는 무효화 되지 않는다.
실시 예로서, 파워 오프 시에 파워를 공급하는 수퍼 커패시터를 더 포함하며, 파워 오프 시에, 상기 컨트롤 로직은 상기 수퍼 커패시터로부터 제공된 파워를 이용하여, 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 외부로부터 수신되는 리셋 커맨드에 응답하여, 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 구성된다.
실시 예로서, 상기 불휘발성 메모리는 랜덤 액세스 메모리이다.
실시 예로서, 상기 불휘발성 메모리는 자기 랜덤 액세스 메모리(MRAM)이다.
본 발명의 실시 예에 따른 메모리 시스템은, 불휘발성 메모리; 그리고 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 불휘발성 메모리는 복수의 불휘발성메모리 셀들을 포함하는 메모리 셀 어레이; 복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더; 복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로; 전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고 상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함한다.
본 발명의 다른 실시 예에 따른 메모리 시스템은, 복수의 불휘발성 메모리 칩들을 포함하는 불휘발성 메모리; 그리고 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 전원 전압의 변화를 감지하여 상기 복수의 불휘발성 메모리 칩들 중 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 대한 무효화 동작이 수행되도록 상기 불휘발성 메모리를 제어한다.
실시 예로서, 상기 무효화 동작이 수행되는 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 메모리 컨트롤러에 의해 미리 선택된다.
실시 예로서, 상기 불휘발성 메인 메모리는 파워 오프 시에 상기 복수의 불휘발성 메모리 칩들 중 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 파워를 공급하는 수퍼 커패시터를 더 포함한다.
실시 예로서, 상기 불휘발성 메인 메모리의 외부에 위치하며, 상기 불휘발성 메인 메모리에 파워를 공급하는 수퍼 커패시터를 더 포함하며, 파워 오프 시에, 상기 복수의 불휘발성 메모리 칩들 중 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 수퍼 커패시터로부터 제공되는 파워를 이용하여 저장된 데이터에 대한 무효화 동작을 수행한다.
실시 예로서, 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 전원 전압이 일정 레벨 이하로 낮아지는 것을 감지하고, 상기 감지 결과에 따라 저장된 데이터에 대한 무효화 동작을 수행한다.
실시 예로서, 상기 메모리 컨트롤러는 파워 오프를 감지하여 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 리셋 커맨드를 전송하고, 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 리셋 커맨드에 응답하여 저장된 데이터에 대한 무효화 동작을 수행한다.
복수의 불휘발성 메모리 셀들을 포함하는 본 발명의 실시 예에 따른 불휘발성 메모리의 동작 방법은, 전원 전압의 변화를 감지하는 단계; 그리고 상기 감지에 응답하여, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 무효화하는 단계를 포함한다.
실시 예로서, 상기 저장된 데이터를 무효화하는 단계는, 상기 복수의 불휘발성 메모리 셀들에 데이터를 덮어쓰는 단계를 포함한다.
실시 예로서, 상기 저장된 데이터를 무효화하는 단계는, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 읽는 단계; 상기 읽어진 데이터에 기반하여, 데이터 "1" 및 데이터 "0" 중 상기 복수의 불휘발성 메모리 셀들의 일부 또는 전부에 덮어쓰기 위해 요구되는 파워 소모가 더 적은 데이터를 판별하는 단계; 그리고 상기 판별 결과에 따라, 상기 데이터 "1" 및 데이터 "0" 중 파워 소모가 더 적은 데이터를 상기 불휘발성 메모리 셀들의 일부 또는 전부에 덮어쓰는 단계를 포함한다.
실시 예로서, 상기 저장된 데이터를 무효화하는 단계는, 랜덤 데이터를 생성하는 단계; 그리고 상기 생성된 랜덤 데이터를 상기 복수의 불휘발성 메모리 셀들에 덮어쓰는 단계를 포함한다.
실시 예로서, 상기 전원 전압의 변화가 감지되었음을 가리키는 리셋 커맨드를 수신하는 단계; 그리고 상기 수신된 리셋 커맨드에 응답하여, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 무효화하는 단계를 더 포함한다.
실시 예로서, 상기 무효화하는 단계는 수퍼 커패시터에 저장된 파워를 이용하여 수행된다.
실시 예로서, 상기 무효화하는 단계는 모드 레지스터에 저장된 데이터에 따라 선택적으로 수행된다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 불휘발성 메인 메모리; 상기 메인 메모리를 제어하도록 구성되는 메모리 컨트롤러; 그리고 상기 메모리 컨트롤러를 통해 상기 불휘발성 메인 메모리를 액세스하고, 상기 불휘발성 메인 메모리를 동작 메모리로 사용하도록 구성되는 중앙 처리 장치를 포함하고, 상기 불휘발성 메인 메모리는, 복수의 불휘발성메모리 셀들을 포함하는 메모리 셀 어레이; 복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더; 복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로; 전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고 상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함한다.
실시 예로서, 상기 전원 전압 검출기는 상기 전원 전압이 일정 레벨 이하로 낮아지는 것을 감지하여 상기 전압 변화 신호를 출력하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 상기 메모리 셀 어레이의 불휘발성 메모리 셀들에 데이터 "1" 또는 데이터 "0"을 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어함으로서 상기 데이터를 무효화하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 상기 불휘발성 메모리 셀에 데이터 "0" 또는 데이터 "1" 중 파워 소모가 적게 소모되는 데이터를 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성된다.
실시 예로서, 외부 장치에 의해 설정되는 레지스터를 더 포함하고, 상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 전압 변화 신호에 응답하여 상기 데이터를 무효화할 지의 여부를 판별하고, 그리고 상기 판별 결과에 따라 상기 데이터의 무효화를 선택적으로 수행하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 데이터의 무효화가 수행될 때 데이터 "0" 또는 데이터 "1" 중 어느 데이터를 상기 불휘발성 메모리 셀들에 덮어쓸지를 판별하고, 상기 판별된 데이터를 이용하여 덮어쓰기를 수행하도록 구성된다.
실시 예로서, 상기 컨트롤 로직의 제어에 응답하여 랜덤 데이터를 생성하는 랜덤 데이터 생성기를 더 포함하며, 상기 컨트롤 로직은 상기 랜덤 데이터 생성기에서 생성된 랜덤 데이터를 상기 복수의 불휘발성 메모리 셀들에 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어한다.
실시 예로서, 상기 메모리 셀 어레이는 서로 다른 특성의 데이터를 저장하는 적어도 두 개의 영역들을 포함하며, 상기 전압 변화 신호에 응답하여, 상기 적어도 두 개의 영역들에 저장된 데이터는 선택적으로 무효화된다.
실시 예로서, 외부 장치에 의해 설정되는 레지스터를 더 포함하고, 상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 적어도 두 개의 영역들 중 무효화가 수행되는 영역 및 무효화가 수행되지 않는 영역을 판별하도록 구성된다.
실시 예로서, 상기 메모리 셀 어레이는 부팅 정보를 저장하는 부팅 정보 영역; 및 사용자 데이터를 저장하는 노멀 영역을 포함하며, 상기 전압 변화 신호에 응답하여, 상기 부팅 정보 영역에 저장된 부팅 정보는 무효화 되지 않는다.
실시 예로서, 상기 메모리 셀 어레이는 보안 데이터를 저장하는 보안 영역; 및 비보안 데이터를 저장하는 비보안 영역을 포함하며, 상기 전압 변화 신호에 응답하여, 상기 보안 영역에 저장된 상기 보안 데이터는 무효화 되고, 상기 비보안 영역에 저장된 상기 비보안 데이터는 무효화 되지 않는다.
실시 예로서, 파워 오프 시에 파워를 공급하는 수퍼 커패시터를 더 포함하며, 파워 오프 시에, 상기 컨트롤 로직은 상기 수퍼 커패시터로부터 제공된 파워를 이용하여, 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 구성된다.
실시 예로서, 상기 컨트롤 로직은 외부로부터 수신되는 리셋 커맨드에 응답하여, 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 구성된다.
실시 예로서, 상기 불휘발성 메모리는 랜덤 액세스 메모리이다.
실시 예로서, 상기 불휘발성 메모리는 자기 랜덤 액세스 메모리(MRAM)이다.
본 발명의 실시 예에 따른 메모리 시스템은, 불휘발성 메모리; 그리고 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 불휘발성 메모리는 복수의 불휘발성메모리 셀들을 포함하는 메모리 셀 어레이; 복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더; 복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로; 전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고 상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함한다.
본 발명의 다른 실시 예에 따른 메모리 시스템은, 복수의 불휘발성 메모리 칩들을 포함하는 불휘발성 메모리; 그리고 상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는 전원 전압의 변화를 감지하여 상기 복수의 불휘발성 메모리 칩들 중 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 대한 무효화 동작이 수행되도록 상기 불휘발성 메모리를 제어한다.
실시 예로서, 상기 무효화 동작이 수행되는 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 메모리 컨트롤러에 의해 미리 선택된다.
실시 예로서, 상기 불휘발성 메인 메모리는 파워 오프 시에 상기 복수의 불휘발성 메모리 칩들 중 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 파워를 공급하는 수퍼 커패시터를 더 포함한다.
실시 예로서, 상기 불휘발성 메인 메모리의 외부에 위치하며, 상기 불휘발성 메인 메모리에 파워를 공급하는 수퍼 커패시터를 더 포함하며, 파워 오프 시에, 상기 복수의 불휘발성 메모리 칩들 중 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 수퍼 커패시터로부터 제공되는 파워를 이용하여 저장된 데이터에 대한 무효화 동작을 수행한다.
실시 예로서, 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 전원 전압이 일정 레벨 이하로 낮아지는 것을 감지하고, 상기 감지 결과에 따라 저장된 데이터에 대한 무효화 동작을 수행한다.
실시 예로서, 상기 메모리 컨트롤러는 파워 오프를 감지하여 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 리셋 커맨드를 전송하고, 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 리셋 커맨드에 응답하여 저장된 데이터에 대한 무효화 동작을 수행한다.
복수의 불휘발성 메모리 셀들을 포함하는 본 발명의 실시 예에 따른 불휘발성 메모리의 동작 방법은, 전원 전압의 변화를 감지하는 단계; 그리고 상기 감지에 응답하여, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 무효화하는 단계를 포함한다.
실시 예로서, 상기 저장된 데이터를 무효화하는 단계는, 상기 복수의 불휘발성 메모리 셀들에 데이터를 덮어쓰는 단계를 포함한다.
실시 예로서, 상기 저장된 데이터를 무효화하는 단계는, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 읽는 단계; 상기 읽어진 데이터에 기반하여, 데이터 "1" 및 데이터 "0" 중 상기 복수의 불휘발성 메모리 셀들의 일부 또는 전부에 덮어쓰기 위해 요구되는 파워 소모가 더 적은 데이터를 판별하는 단계; 그리고 상기 판별 결과에 따라, 상기 데이터 "1" 및 데이터 "0" 중 파워 소모가 더 적은 데이터를 상기 불휘발성 메모리 셀들의 일부 또는 전부에 덮어쓰는 단계를 포함한다.
실시 예로서, 상기 저장된 데이터를 무효화하는 단계는, 랜덤 데이터를 생성하는 단계; 그리고 상기 생성된 랜덤 데이터를 상기 복수의 불휘발성 메모리 셀들에 덮어쓰는 단계를 포함한다.
실시 예로서, 상기 전원 전압의 변화가 감지되었음을 가리키는 리셋 커맨드를 수신하는 단계; 그리고 상기 수신된 리셋 커맨드에 응답하여, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 무효화하는 단계를 더 포함한다.
실시 예로서, 상기 무효화하는 단계는 수퍼 커패시터에 저장된 파워를 이용하여 수행된다.
실시 예로서, 상기 무효화하는 단계는 모드 레지스터에 저장된 데이터에 따라 선택적으로 수행된다.
본 발명의 실시 예에 따른 컴퓨팅 시스템은, 불휘발성 메인 메모리; 상기 메인 메모리를 제어하도록 구성되는 메모리 컨트롤러; 그리고 상기 메모리 컨트롤러를 통해 상기 불휘발성 메인 메모리를 액세스하고, 상기 불휘발성 메인 메모리를 동작 메모리로 사용하도록 구성되는 중앙 처리 장치를 포함하고, 상기 불휘발성 메인 메모리는, 복수의 불휘발성메모리 셀들을 포함하는 메모리 셀 어레이; 복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더; 복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로; 전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고 상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함한다.
본 발명의 실시 예에 따르면, 메인 메모리로 불휘발성 메모리 소자를 사용함으로써, 메인 메모리의 설계가 단순화되고 파워 소모가 절감될 수 있다. 동시에, 불휘발성 메인 메모리에 저장된 데이터에 대한 무효화 동작을 지원함으로써, 보안 데이터의 유출이 방지될 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 3은 도 1 및 도 2의 불휘발성 메인 메모리를 좀더 자세히 보여주는 도면이다.
도 4는 도 3의 메모리 셀 어레이의 구조를 좀더 자세히 보여주는 도면이다.
도 5는 도 3의 메모리 셀 어레이의 구조의 다른 실시 예를 보여주는 도면이다.
도 6은 도 4 및 도 5의 메모리 셀의 일 실시 예를 보여주는 도면이다.
도 7 및 도 8은 저장된 데이터에 따른 가변 저항 소자의 자화 방향을 나타내는 도면이다.
도 9는 STT-MRAM의 쓰기 동작을 설명하기 위한 도면이다.
도 10은 STT-MRAM의 가변 저항 소자의 다른 실시 예를 나타내는 도면이다.
도 11a 및 도 11b는 도 1의 메모리 시스템의 동작을 예시적으로 설명하기 위한 순서도이다.
도 12는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다.
도 13a 및 도 13b는 도 12의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 14는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다.
도 15a 및 도 15b는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 16은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다.
도 17a 및 도 17b는 도 16의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 18은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리를 보여주는 도면이다.
도 19는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리를 보여주는 도면이다.
도 20은 도 18 및 도 19에서 설명된 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 21은 본 발명의 일 실시 예에 따른 메모리 시스템의 구조를 보여주는 블록도이다.
도 22는 본 발명의 일 실시 예에 따른 메모리 시스템의 구조를 보여주는 블록도이다.
도 23 내지 도 26은 본 발명의 실시 예에 따른 메모리 시스템들의 구조를 보여주는 블록도이다.
도 27은 본 발명의 일 실시 예에 따른 메모리 시스템을 보여주는 도면이다.
도 2는 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 3은 도 1 및 도 2의 불휘발성 메인 메모리를 좀더 자세히 보여주는 도면이다.
도 4는 도 3의 메모리 셀 어레이의 구조를 좀더 자세히 보여주는 도면이다.
도 5는 도 3의 메모리 셀 어레이의 구조의 다른 실시 예를 보여주는 도면이다.
도 6은 도 4 및 도 5의 메모리 셀의 일 실시 예를 보여주는 도면이다.
도 7 및 도 8은 저장된 데이터에 따른 가변 저항 소자의 자화 방향을 나타내는 도면이다.
도 9는 STT-MRAM의 쓰기 동작을 설명하기 위한 도면이다.
도 10은 STT-MRAM의 가변 저항 소자의 다른 실시 예를 나타내는 도면이다.
도 11a 및 도 11b는 도 1의 메모리 시스템의 동작을 예시적으로 설명하기 위한 순서도이다.
도 12는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다.
도 13a 및 도 13b는 도 12의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 14는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다.
도 15a 및 도 15b는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 16은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다.
도 17a 및 도 17b는 도 16의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 18은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리를 보여주는 도면이다.
도 19는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리를 보여주는 도면이다.
도 20은 도 18 및 도 19에서 설명된 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
도 21은 본 발명의 일 실시 예에 따른 메모리 시스템의 구조를 보여주는 블록도이다.
도 22는 본 발명의 일 실시 예에 따른 메모리 시스템의 구조를 보여주는 블록도이다.
도 23 내지 도 26은 본 발명의 실시 예에 따른 메모리 시스템들의 구조를 보여주는 블록도이다.
도 27은 본 발명의 일 실시 예에 따른 메모리 시스템을 보여주는 도면이다.
이하에서는, 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예들이 첨부된 도면들을 참조하여 설명될 것이다. 또한, 동일한 구성 요소는 동일한 참조 번호를 사용하여 설명되고, 유사한 구성 요소는 유사한 참조 번호를 사용하여 설명될 것이다.
Ⅰ. 불휘발성 메인 메모리를 리셋하는 메모리 시스템
도 1은 본 발명의 실시 예에 따른 메모리 시스템(10)을 보여주는 블록도이다.
일반적인 메모리 시스템은 메인 메모리로 DRAM 등의 휘발성 메모리를 사용한다. 이 경우, 휘발성 메모리의 데이터 휘발 특성으로 인하여, 메인 메모리에 저장된 데이터는 일정 주기로 리프레쉬(refresh) 되어야 하거나, 불휘발성 메모리에 백업(back-up) 되어야 한다. 이는 메인 메모리의 설계의 복잡성 및 파워 소모의 증가를 야기한다.
이에 반하여, 본 발명의 실시 예에 따른 메모리 시스템(10)은 메인 메모리로 불휘발성 메모리를 제공한다. 따라서, 메인 메모리로 휘발성 메모리를 사용하는 경우에 비하여, 본 발명의 실시 예에 따른 메모리 시스템(10)은 설계를 단순화하고, 파워 소모를 감소시킬 수 있다.
한편, 메인 메모리로 불휘발성 메모리를 사용하는 경우에는, 메인 메모리에서 처리된 데이터(또는 처리 중이던 데이터)는 메인 메모리의 파워 오프(power off) 후에도 메인 메모리에 여전히 유지된다. 이는 보안 유지가 필요한 데이터(이하, 보안 데이터(security data))가 사용자의 의도에 관계없이 메인 메모리에 여전히 유지됨을 의미한다. 따라서, 만약 메인 메모리가 메모리 시스템(10)으로부터 탈착되어 다른 메모리 시스템에 부착된다면, 보안 데이터가 유출될 염려가 있다.
보안 데이터의 유출을 방지하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(10)은 파워 오프 시에 메인 메모리에 저장된 데이터를 무효화한다. 파워 오프 시에 메인 메모리를 무효화함으로써, 본 발명의 실시 예에 따른 메모리 시스템(10)은 보안 데이터의 유출을 방지할 수 있다.
도 1을 참조하여 좀더 구체적으로 설명하면, 메모리 시스템(10)은 CPU(100), 메모리 컨트롤러(200), 불휘발성 메인 메모리(300), 입출력 컨트롤러(400), 그리고 스토리지 디바이스(500)를 포함한다.
CPU(100)는 메모리 시스템(10)의 전반적인 동작을 제어한다. 예를 들어, CPU(100)는 외부로부터의 요청에 응답하여 쓰기 동작 또는 읽기 동작 또는 연산 동작 등이 수행되도록, 메모리 시스템(10)의 각 구성 요소들을 제어한다.
메모리 컨트롤러(200)는 CPU(100)로부터 쓰기 명령을 수신하며, 쓰기 요청된 데이터(이하, 쓰기 데이터)가 불휘발성 메인 메모리(300)를 통해 스토리지 디바이스(500)에 저장되도록 불휘발성 메인 메모리(300)를 제어한다. 또한, 메모리 컨트롤러(200)는 CPU(100)로부터 읽기 명령을 수신하며, 스토리지 디바이스(500)에 저장된 데이터 중 읽기 요청된 데이터에 대한 읽기 동작이 수행되도록, 불휘발성 메인 메모리(300)와 입출력 컨트롤러(400)를 통해 스토리지 디바이스(500)를 제어한다. 메모리 컨트롤러(200)는 리셋 컨트롤 유닛(210)을 포함한다.
리셋 컨트롤 유닛(210)은 파워 오프 시에 불휘발성 메인 메모리(300)에 저장된 데이터가 무효화 되도록 불휘발성 메인 메모리(3000)를 제어한다. 예를 들어, 리셋 컨트롤 유닛(210)은 파워 오프 시에 불휘발성 메인 메모리(300)에 저장된 데이터가 모두 무효화 되도록 불휘발성 메인 메모리(3000)를 제어할 수 있다. 다른 예로, 리셋 컨트롤 유닛(210)은 파워 오프 시에 불휘발성 메인 메모리(300)에 저장된 데이터 중 보안 데이터만이 선택적으로 무효화 되도록 불휘발성 메인 메모리(300)를 제어할 수 있다.
불휘발성 메인 메모리(300)는 메모리 시스템(10)에 대한 메인 메모리로 동작한다. 예를 들어, 불휘발성 메인 메모리(300)는 메모리 컨트롤러(200)에서 실행 중인 프로그램에 관련된 데이터를 저장할 수 있다. 다른 예로, 불휘발성 메인 메모리(300)는 CPU(100)에서 실행 중인 프로그램이 참조하는 데이터를 저장할 수 있다. 다른 예로, 불휘발성 메인 메모리(300)는 메모리 컨트롤러(200)를 통해 CPU(100)에 수신된 쓰기 데이터를 저장하거나, 스토리지 디바이스(500)로부터 독출된 데이터를 저장할 수 있다.
불휘발성 메인 메모리(300)는 MRAM과 같은 불휘발성 메모리 소자를 이용하여 구현될 수 있다. 다른 예로, 불휘발성 메인 메모리(300)는 상 변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속산화물질(Complex Metal Oxide)의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory)을 이용하여 구현될 수 있다.
입출력 컨트롤러(400)는 CPU(100) 또는 메모리 컨트롤러(200)의 제어에 응답하여, 스토리지 디바이스(500)를 제어한다. 예를 들어, 입출력 컨트롤러(400)는 CPU(100)의 제어에 응답하여 불휘발성 메인 메모리(300)에 저장된 쓰기 데이터가 스토리지 디바이스(500)에 저장되도록, 스토리지 디바이스(500)를 제어한다. 다른 예로, 입출력 컨트롤러(400)는 CPU(100)의 제어에 응답하여 스토리지 디바이스(500)에 저장된 데이터가 불휘발성 메인 메모리(300)로 독출되도록, 스토리지 디바이스(500)를 제어한다.
스토리지 디바이스(500)는 사용자 데이터를 저장한다. 예를 들어, 스토리지 디바이스(500)는 하드 디스크(hard disk) 또는 플래시 메모리와 같은 불휘발성 메모리 소자를 이용한 SSD(Solid State Device)로 구현될 수 있다. 다른 예로, 스토리지 디바이스(500)는 상 변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속산화물질(Complex Metal Oxide)의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory) 또는 강자성체 물질을 이용한 MRAM(Magnetic Random Access Memory)을 이용하여 구현될 수 있다.
도 1을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10)은 메모리 시스템(10)의 파워 오프 시 또는 불휘발성 메인 메모리(300)의 파워 제거 시에 불휘발성 메인 메모리(300)에 저장된 데이터를 무효화함으로써, 보안 데이터의 유출을 방지할 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 메모리 시스템(10_1)을 보여주는 도면이다. 도 2의 메모리 시스템(10_1)과 도 1의 메모리 시스템(10)은 서로 유사하다. 따라서, 유사한 구성요소는 유사한 참조번호를 사용하여 통합적으로 설명된다.
예시적으로, 도 1의 메모리 시스템(10)은 컴퓨터 아키텍처(computer architecture)의 일부 구성을 나타낸 것으로 이해될 수 있다. 또한, 도 2의 메모리 시스템(10_1)은 도 1의 스토리지 디바이스(500)의 구성을 나타낸 것으로 이해될 수 있다.
도 2를 참조하면, 메모리 시스템(10_1)은 CPU(100_1), 메모리 컨트롤러(200_1), 불휘발성 메인 메모리(300_1), 호스트 인터페이스(600), 스토리지 인터페이스(700), 그리고 불휘발성 메모리(800)를 포함한다.
불휘발성 메인 메모리(300_1)는 메모리 컨트롤러(200_1)의 제어에 응답하여 동작하며, 메모리 컨트롤러(200_1)와 데이터를 송수신한다. 불휘발성 메인 메모리(300_1)는, 도 1에서 설명된 것과 유사하게, MRAM, PRAM, RRAM과 같은 불휘발성 메모리 소자를 이용하여 구현될 수 있다. 이 중, MRAM은 빠른 읽기 속도 및 쓰기 속도, 덮어 쓰기(over-write) 동작의 지원, 그리고 DRAM 인터페이스와의 호환 가능함 등의 특성으로 인하여 DRAM을 대체할 수 있다. 이하에서는 설명의 편의상, MRAM을 이용하여, 도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)가 구현된다고 가정된다.
도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)가 MRAM을 이용하여 구현되는 경우, 불휘발성 메인 메모리(300, 300_1)는 DRAM 인터페이스 방식을 이용하여 메모리 컨트롤러(200, 200_1)와 데이터를 송수신할 수 있다. 예를 들어, 불휘발성 메인 메모리(300, 300_1)는 비동기식 DRAM 인터페이스 방식(classic DRAM 인터페이스 방식)을 이용하여 메모리 컨트롤러(200, 200_1)와 데이터를 송수신할 수 있다. 다른 예로, 불휘발성 메인 메모리(300, 300_1)는 동기식 DRAM 인터페이스 방식(예를 들어, DDR1, DDR2, DDR3 등의 SDRAM 인터페이스)을 이용하여 메모리 컨트롤러(200, 200_1)와 데이터를 송수신할 수 있다.
도 1 및 도 2의 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 시에 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터가 무효화 되도록 불휘발성 메인 메모리(300, 300_1)를 제어한다. 즉, 외부로부터 파워의 공급이 중단되는 경우, 리셋 컨트롤 유닛(210, 210_1)은 불휘발성 메인 메모리(300, 300_1)를 리셋한다.
예를 들어, 사용자로부터 메모리 시스템(10, 10_1)에 대한 파워 오프 요청이 있는 경우, 리셋 컨트롤 유닛(210, 210_1)은 CPU(100) 또는 CPU(100_1)로부터 파워 오프 신호(power off signal)를 수신할 수 있다. 다른 예로, 메모리 컨트롤러(200, 200_1)는 외부로부터 제공되는 파워의 전원 전압의 레벨을 감지함으로써, 자체적으로 파워 오프 신호를 생성할 수 있다. 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 요청에 응답하여 리셋 커맨드(reset command)를 불휘발성 메인 메모리(300, 300_1)에 제공할 수 있다. 불휘발성 메인 메모리(300, 300_1는 리셋 커맨드에 응답하여 저장된 데이터를 무효화할 수 있다.
도 1 및 도 2의 리셋 컨트롤 유닛(210, 210_1)은, 도 1 및 도 2에 도시된 바와 같이, 메모리 컨트롤러(200, 200_1) 내에 구현될 수 있다. 다만, 이는 예시적인 것이며, 다른 예로 리셋 컨트롤 유닛(210, 210_1)은 메모리 컨트롤러(200, 200_1)와는 구분되는 별도의 유닛으로 구현될 수도 있다.
한편, 도 1 및 도 2의 CPU(100, 100_1)는 메모리 컨트롤러(200, 200_1)의 전반적인 동작을 제어한다. 도 2의 호스트 인터페이스(600)는 호스트(미도시)와의 인터페이스를 제공하며, 도 2의 스토리지 인터페이스(700)는 저장 장치(800)와의 인터페이스를 제공한다.
도 1 및 도 2에서 설명된 바와 같이, 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터는 파워 오프 시에 무효화 됨으로써, 보안 데이터의 유출이 방지될 수 있다.
한편, 파워 오프 시의 무효화 동작에 소모되는 파워를 공급하기 위하여, 본 발명의 다른 실시 예에 따른 메모리 시스템(10, 10_1)은 수퍼 커패시터(super capacitor)를 더 포함할 수 있다. 특히, 본 발명의 일 실시 예에 있어서, 서든 파워 오프의 발생에 대비하여, 수퍼 커패시터가 구비될 수 있다. 이는 이하의 도 21 등을 참조하여 좀더 자세히 설명될 것이다.
도 3은 도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)를 좀더 자세히 보여주는 도면이다. 도 3을 참조하면, 불휘발성 메인 메모리(300, 300_1)는 메모리 셀 어레이(310), 데이터 입출력 회로(320), 디코더(330), 컨트롤 로직(340), 그리고 전원 전압 감지기(350)를 포함한다.
메모리 셀 어레이(310)는 복수의 메모리 셀들을 포함한다. 메모리 셀 어레이(310)의 메모리 셀들은, 예를 들어, STT-MRAM(Spin transfer magneto resistive random access memory)으로 구현될 수 있다.
메모리 셀들이 STT-MRAM으로 구현되는 경우, 각 메모리 셀은 자성 물질을 갖는 자기 터널 접합 소자(magnetic tunnel junction, 이하 가변 저항 소자)를 포함할 수 있다. 메모리 셀 어레이(310) 및 메모리 셀 어레이(310)의 메모리 셀은 이하의 도 4 내지 도 10을 참조하여 좀더 자세히 설명된다.
데이터 입출력 회로(320)는 비트 라인(BL)을 통하여 메모리 셀 어레이(310)에 연결된다. 데이터 입출력 회로(320)는 외부로부터 데이터를 수신하고, 수신된 데이터를 메모리 셀 어레이(310)에 저장한다. 데이터 입출력 회로(320)는 메모리 셀 어레이(310)로부터 데이터를 독출하고, 독출된 데이터를 외부로 전송한다.
메모리 셀 어레이(310)의 메모리 셀들이 STT-MRAM으로 구현되는 경우, 데이터 입출력 회로(320)는 메모리 셀에 쓰기 전류(write current) 및 읽기 전류(read current)를 제공하도록 구현될 수 있다. 예를 들어, 데이터 입출력 회로(320)는 쓰기 동작 시에 쓰기 전류(write current)를 메모리 셀 어레이(310)에 제공하도록 구현된다. 다른 예로, 데이터 입출력 회로(320)는 읽기 동작 시에 읽기 전류(read current)를 메모리 셀 어레이(310)에 제공하도록 구현된다.
또한, 데이터 입출력 회로(320)는 복수의 감지 증폭 회로들을 포함하도록 구현될 수 있다. 예를 들어, 읽기 동작 시에, 각각의 감지 증폭 회로는 비트 라인(BL)을 통하여 데이터 전압을 수신하고, 수신된 데이터 전압을 기준 전압(reference voltage)을 비교할 수 있다. 각각의 감지 증폭 회로는 비교 결과를 디지털 레벨의 데이터 신호로 출력할 수 있다.
디코더(330)는 워드 라인(WL)을 통하여 메모리 셀 어레이(310)에 연결된다. 디코더(330)는 외부로부터 수신된 어드레스(ADDR)에 따라, 대응하는 워드 라인을 선택한다.
컨트롤 로직(340)은 불휘발성 메인 메모리(300, 300_1)의 전반적인 동작을 제어한다. 예를 들어, 쓰기 동작 시에, 컨트롤 로직(340)은 외부로부터 수신된 데이터가 메모리 셀 어레이(310)에 저장되도록 디코더(330)와 데이터 입출력 회로(320)를 제어한다. 다른 예로, 읽기 동작 시에, 컨트롤 로직(340)은 메모리 셀 어레이(310)에 저장된 데이터에 대한 읽기 동작이 수행되도록 디코더(330)와 데이터 입출력 회로(320)를 제어한다.
본 발명의 기술적 사상에 따른 실시 예에 있어서, 사용자로부터 파워 오프 요청이 수신되는 경우, 컨트롤 로직(340)은 메모리 컨트롤러(200, 200_1)의 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(reset command, 이하 RS_CMD)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 내부 파워 오프 신호(Internal Power Off Signal, 이하 IPOS)를 생성하고, 이를 디코더(330)와 데이터 입출력 회로(320)에 전송한다. 디코더(330)와 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답해서, 메모리 셀 어레이(310)에 저장된 데이터가 무효화 되도록 동작한다.
본 발명의 기술적 사상에 따른 다른 실시 예에 있어서, 불휘발성 메인 메모리(300, 300_1)에 공급되는 전원 전압이 차단되는 경우, 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터의 무효화 동작이 진행될 수 있다. 이를 위하여, 불휘발성 메인 메모리(300, 300_1)는 전원 전압 감지기(350)를 더 구비할 수 있다.
좀더 자세히 설명하면, 불휘발성 메인 메모리(300, 300_1)는 전원 전압 감지기(350)를 구비한다. 전원 전압 감지기(350)는 전원 전압이 일정 레벨 이하로 내려가는 경우에 이를 감지하고, 컨트롤 로직(340)에 전압 감소 신호(VDS)를 전송한다. 전압 감소 신호(VDS)에 응답해서 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 동작하는 것과 동일하게, 메모리 셀 어레이(310)에 저장된 데이터가 무효화 되도록 디코더(330)와 데이터 입출력 회로(320)를 제어한다. 또한, 전원 전압 감지기(350)는 파워 온 시에도 전원 전압의 변화를 감지하고, 이에 응답하여 전압 증가 신호(VIS)를 발생할 수 있다.
계속해서 도 3을 참조하면, 컨트롤 로직(340)은 레지스터(341)를 더 포함할 수 있다. 레지스터(341)는 불휘발성 메인 메모리(300, 300_1)의 데이터 무효화 동작 지원 여부를 결정하는 정보를 저장한다.
좀더 자세히 설명하면, 메모리 컨트롤러(200, 200_1)는 데이터 무효화 모드(data invalidation mode) 셋팅을 위한 커맨드 및 데이터 무효화 모드 셋팅을 위한 데이터를 불휘발성 메인 메모리(300, 300_1)에 송신할 수 있다. 이 경우, 데이터 무효화 모드의 설정에 관한 정보가 레지스터(341)에 셋팅될 수 있다.
상기 데이터 무효화 모드가 설정되면, 불휘발성 메인 메모리(300, 300_1)는 파워 오프 시에 불휘발성 메모리 셀에 저장된 데이터의 무효화 동작을 수행할 것이다. 상기 데이터 무효화 모드가 설정되지 않으면, 불휘발성 메인 메모리(300, 300_1)는 파워 오프 후에도 불휘발성 메인 메모리(300, 300_1)의 셀에 저장된 데이터를 유지할 것이다.
한편, 본 발명의 기술적 사상에 따른 무효화 동작은 다양한 방식에 의하여 수행될 수 있다. 예를 들어, 컨트롤 로직(340)은 메모리 셀 어레이(310)의 메모리 셀들에 "1" 또는 "0"의 데이터를 일괄적으로 덮어씀으로써, 무효화 동작을 수행할 수 있다. 이 경우, 컨트롤 로직(340)은 "1" 또는 "0"의 데이터 중 덮어쓰기 동작에 소모되는 파워가 작은 데이터가 선택되도록 데이터 입출력 회로(320)를 제어할 수 있다. 이는 이하의 도 12, 도 13a 및 도 13b를 참조하여 좀더 자세히 설명될 것이다.
다른 예로, 컨트롤 로직(340)은 메모리 셀 어레이(310)의 메모리 셀들 중 선택된 메모리 셀들에 "1" 또는 "0"의 데이터를 덮어씀으로써, 무효화 동작을 수행할 수 있다. 구체적으로, 예를 들어 "1"의 데이터를 덮어쓰는 경우, 컨트롤 로직(340)은 "0"의 데이터를 갖는 메모리 셀들에 "1"의 데이터를 덮어쓰도록 디코더(330)와 데이터 입출력 회로(320)를 제어함으로써, 무효화 동작을 수행할 수 있다. 다른 예로는, 메모리 셀 어레이(310)의 메모리 셀들 중 선택된 메모리 셀들에 대하여만 무효화 동작을 수행함으로써, 무효화 동작에 소모되는 파워가 감소될 수 있다. 이는 이하의 도 14, 도 15a 및 도 15b 참조하여 좀더 자세히 설명될 것이다.
다른 예로, 컨트롤 로직(340)은 랜덤 데이터(random data)를 발생하고, 메모리 셀 어레이(310)의 메모리 셀들에 랜덤 데이터를 덮어씀으로써, 무효화 동작을 수행할 수 있다. 이는 이하의 도 16, 도 17a 및 도 17b를 참조하여 좀더 자세히 설명될 것이다.
다른 예로, 컨트롤 로직(340)은 메모리 셀 어레이(310)를 적어도 두 개의 영역으로 구분하고, 선택된 영역의 메모리 셀들에 대하여만, 무효화 동작을 수행할 수 있다. 메모리 셀 어레이(310)의 메모리 셀들 중 선택된 영역의 메모리 셀들에 대하여만 무효화 동작을 수행함으로써, 무효화 동작에 소모되는 파워가 감소될 수 있다. 이는 이하의 도 18 내지 도 21을 참조하여 좀더 자세히 설명될 것이다.
도 3에서 설명된 바와 같이, 메모리 셀 어레이(310)에 저장된 데이터는 파워 오프 시에 무효화 됨으로써, 보안 데이터의 유출이 방지될 수 있다.
도 4는 도 3의 메모리 셀 어레이(310)의 구조를 좀더 자세히 보여주는 도면이다. 도 4를 참조하면, 메모리 셀 어레이(310)는 복수의 메모리 셀들(MC)을 포함한다. 각 메모리 셀(MC)은 가변 저항 소자(Variable resistance memory, VR)와 셀 트랜지스터(CT)를 포함한다.
가변 저항 소자(VR)는 제공되는 전류(또는 전압)의 크기 및 방향에 따라 저항값이 가변된다. 또한, 가변 저항 소자(VR)는 전류(또는 전압)가 차단되어도, 저항값을 그대로 유지한다. 즉, 가변 저항 소자(VR)는 불휘발성의 특성을 가진다.
가변 저항 소자(VR)는 다양한 소자들을 이용하여 구현될 수 있다. 예를 들어, 가변 저항 소자(VR)는 STT-MRAM(Spin transfer torque magneto resistive random access memory)를 이용하여 구현될 수 있다. 다른 예로, 가변 저항 소자(VR)는 상 변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속산화물질(Complex Metal Oxide)의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory) 또는 강자성체 물질을 이용한 MRAM(Magnetic Random Access Memory)을 이용하여 구현될 수 있다.
셀 트랜지스터(CT)의 게이트는 워드 라인(WL)에 연결된다. 셀 트랜지스터(CT)는 워드 라인(WL)을 통하여 제공되는 신호에 의하여 스위칭 된다. 셀 트랜지스터(CT)의 드레인(drain)은 가변 저항 소자(VR)에 연결되며, 셀 트랜지스터(CT)의 소스(source)는 소스 라인(SL)에 연결된다.
예를 들어, 복수의 메모리 셀들(MC)의 셀 트랜지스터들(CT)의 소스들은 모두 동일한 소스 라인에 연결될 수 있다. 다른 예로, 복수의 메모리 셀들(MC)의 셀 트랜지스터들(CT)의 소스들은 각각 상이한 소스 라인들에 연결될 수 있다.
도 5는 도 3의 메모리 셀 어레이(310)의 구조의 다른 실시 예를 보여주는 도면이다.
도 5에 도시된 바와 같이, 메모리 셀 어레이(310)는 서로 다른 4 개의 메모리 셀들(MC)이 하나의 소스 라인(SL)을 공유하도록 구현될 수도 있다. 소스 라인(SL)의 연결 방식을 제외하면, 도 5의 메모리 셀 어레이(310)의 구조 및 메모리 셀(MC)은 도 4의 메모리 셀 어레이(310)의 구조 및 메모리 셀(MC)과 유사하디. 따라서, 자세한 설명은 이하 생략된다.
도 6은 도 4 및 도 5의 메모리 셀(MC)의 일 실시 예를 보여주는 도면이다. 도 6에서는, 메모리 셀(MC)이 STT-MRAM(Spin transfer torque magneto resistive random access memory)으로 구현된 예를 보여준다.
메모리 셀(MC)은 가변 저항 소자(VR) 및 셀 트랜지스터(CT)를 포함할 수 있다. 셀 트랜지스터(CT)의 게이트는 워드 라인(예컨대, 제 1 워드라인(WL1))에 연결되고, 셀 트랜지스터(CT)의 일 전극은 가변 저항 소자(VR)를 통해 비트라인(예컨대, 제 1 비트 라인(BL1))에 연결된다. 또한, 셀 트랜지스터(CT)의 다른 전극은 소스라인(예컨대, 제 1 소스라인 SL1)에 연결된다.
가변 저항 소자(VR)는 고정층(Pinned layer, 13)과 자유층(free layer, 11) 및 이들 사이에 터널층(12)을 포함할 수 있다. 고정층(13)의 자화 방향은 고정되어 있으며, 자유층(11)의 자화 방향은 조건에 따라 고정층(13)의 자화 방향과 같거나 역방향이 될 수 있다. 고정층(13)의 자화 방향을 고정시켜 주기 위하여, 예컨대, 반강자성층(anti-ferromagnetic layer, 미도시)이 더 구비될 수 있다.
STT-MRAM의 읽기 동작을 수행하기 위해서는, 워드 라인(WL1)에 로직 하이의 전압을 제공하여 셀 트랜지스터(CT)를 턴 온 시키고, 비트 라인(BL1)으로부터 소스 라인(SL) 방향으로 읽기 전류(read current)를 제공하여, 측정되는 저항값에 따라 가변 저항 소자(VR)에 저장된 데이터를 판별할 수 있다.
STT-MRAM의 쓰기 동작을 수행하기 위해서는, 워드 라인(WL1)에 로직 하이의 전압을 주어 셀 트랜지스터(CT)를 턴 온 시키고, 비트 라인(BL1)과 소스 라인(SL) 사이에 쓰기 전류를 제공한다.
도 7 및 도 8은 저장된 데이터에 따른 가변 저항 소자(VR)의 자화 방향을 나타내는 도면이다.
가변 저항 소자(VR)의 저항값은 자유층(11)의 자화 방향에 따라 달라진다. 가변 저항 소자에 읽기 전류(I)를 제공하면, 가변 저항 소자의 저항값에 따른 데이터 전압이 출력된다. 읽기 전류(I)의 세기는 쓰기 전류의 세기보다 매우 작기 때문에, 일반적으로 읽기 전류(I)에 의해 자유층(11)의 자화 방향이 변화되지 않는다.
도 7을 참조하면, 가변 저항 소자에서 자유층(11)의 자화 방향과 고정층(13)의 자화 방향이 평행(parallel)하게 배치된다. 따라서, 가변 저항 소자는 낮은 저항값을 가진다. 이 경우 데이터는, 예를 들어, '0'을 독출할 수 있다.
도 8을 참조하면, 가변 저항 소자(VR)는 자유층(11)의 자화 방향이 고정층(13)의 자화 방향과 반 평행(anti-parallel)으로 배치된다. 이 경우, 상기 가변 저항 소자(VR)는 높은 저항값을 가진다. 이 경우 데이터는, 예를 들어, '1'을 독출 할 수 있다.
한편, 도 7 및 도 8에서는, MTJ 셀(10)의 자유층(11)과 고정층(13)을 수평 자기 소자로 도시하였으나, 이에 한정되는 것은 아니다. 다른 실시 예로서, 자유층(11)과 고정층(13)은 수직 자기 소자를 이용할 수도 있다.
도 9는 STT-MRAM의 쓰기 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 가변 저항 소자(VR)를 흐르는 쓰기 전류(WC1, WC2)의 방향에 따라 자유층(11)의 자화 방향이 결정될 수 있다. 예컨대, 제 1 쓰기 전류(WC1)가 제공되면, 고정층(13)과 동일한 스핀 방향을 갖는 자유 전자들이 자유층(11)에 토크(torque)를 인가한다. 이로 인해, 자유층(11)은 고정층(13)과 평행(Parallel)하게 자화된다.
한편, 제 2 쓰기 전류(WC2)가 제공되면, 고정층(13)과 반대의 스핀을 갖는 전자들이 자유층(11)으로 토크를 제공한다. 이로 인해, 자유층(11)은 고정층(13)과 반 평행(Anti Parallel)하게 자화된다. 즉, 가변 저항 소자(VR)에서 자유층(11)의 자화 방향은 스핀 전달 토크(STT, Spin transfer torque)에 의해 변할 수 있다.
도 10은 STT-MRAM의 가변 저항 소자의 다른 실시 예를 나타내는 도면이다. 자화 방향이 수직인 가변 저항 소자는 전류의 이동 방향과 자화 용이축(easy axis)이 실질적으로 평행하다. 도 12을 참조하면, 가변 저항 소자(VR)는 자유층(41), 고정층(43) 및 터널층(42)을 포함한다.
자유층(41)의 자화 방향과 고정층(43)의 자화 방향이 평행(Parallel) 하면 저항값이 작아지고, 자유층(41)의 자화 방향과 고정층(43)의 자화 방향이 반 평행(Anti-Parallel) 하면 저항값이 커진다. 저항값에 따라 데이터가 저장될 수 있다.
자화 방향이 수직인 가변 저항 소자(VR)을 구현하기 위해서, 자유층(41)과 고정층(43)은 자기 이방성 에너지가 큰 물질로 구성되는 것이 바람직하다. 자기 이방성 에너지가 큰 물질로는, 비정질계 희토류 원소 합금, (Co/Pt)n 이나 (Fe/Pt)n과 같은 다층박막, 그리고 L10 결정 구조의 규칙격자 물질이 있다.
예를 들어, 자유층(41)은 규칙 합금(ordered alloy)일 수 있으며, 철(Fe), 코발트(Co), 니켈(Ni), 팔라듐(Pa), 및 백금(Pt) 중 적어도 어느 하나를 포함할 수 있다. 예를 들어 자유층(41)은 Fe-Pt 합금, Fe-Pd 합금, Co-Pd 합금, Co-Pt 합금, Fe-Ni-Pt 합금, Co-Fe-Pt 합금, 및 Co-Ni-Pt 합금 중 적어도 어느 하나를 포함할 수 있다. 상기 합금들은, 예를 들어 화학 정량적인 표현으로, Fe50Pt50, Fe50Pd50, Co50Pd50, Co50Pt50, Fe30Ni20Pt50, Co30Fe20Pt50, 또는 Co30Ni20Pt50 일 수 있다.
고정층(43)은 규칙합금(ordered alloy)일 수 있으며, 철(Fe), 코발트(Co), 니켈(Ni), 팔라듐(Pa), 및 백금(Pt) 중 적어도 어느 하나를 포함할 수 있다. 예를 들어 고정층(43)은 Fe-Pt 합금, Fe-Pd 합금, Co-Pd 합금, Co-Pt 합금, Fe-Ni-Pt 합금, Co-Fe-Pt 합금, 및 Co-Ni-Pt 합금 중 적어도 어느 하나를 포함할 수 있다. 상기 합금들은, 예를 들어 화학 정량적인 표현으로, Fe50Pt50, Fe50Pd50, Co50Pd50, Co50Pt50, Fe30Ni20Pt50, Co30Fe20Pt50, 또는 Co30Ni20Pt50 일 수 있다.
도 4 내지 도 10을 참조하여 설명된 바와 같이, 불휘발성 메인 메모리(300, 300_1)는 STT-MRAM을 이용하여 구현될 수 있다. STT-MRAM은 DRAM과 마찬가지로 덮어쓰기 동작을 지원하기 때문에, 불휘발성 메인 메모리(300, 300_1)는 DRAM과 동일 또는 유사한 속도로 동작할 수 있다. STT-MRAM은 셀에 흐르는 전류의 방향에 따라 데이터 '0' 또는 데이터 '1'을 나타내도록 프로그램될 수 있다. 이때, STT-MRAM 셀을 구성하는 물질 또는 제조 공정 조건에 따라, 데이터 '0' 또는 데이터 '1'로 프로그램하기 위해 요구되는 전류의 크기가 다를 수 있다. 본 발명은 무효화를 위헤 STT-MRAM 셀을 프로그램할 때 소모되는 전류가 적은 데이터로 STT-MRAM 셀에 저장된 데이터를 리셋할 수 있다.
도 11a는 도 1 및 도 2의 메모리 시스템(10, 10_1)의 동작을 예시적으로 설명하기 위한 순서도이다.
S111 단계에서, CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 파워 오프 신호(power off signal, 이하 POS)가 전송된다. 다만 이는 예시적인 것이며, 다른 예로, 메모리 컨트롤러(200, 200_1) 내부에서 파워 오프를 감지하고, 파워 오프에 대응하는 신호를 생성할 수도 있다.
S112 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS) 또는 상기 파워 오프에 대응하는 내부 신호에 응답하여, 리셋 명령(RS_CMD)을 불휘발성 메인 메모리(300, 300_1)에 제공한다.
S113 단계에서, 컨트롤 로직(340, 도 3 참조)은 리셋 명령(RS_CMD)에 응답하여 메모리 셀 어레이(310)에 저장된 데이터에 대한 무효화 동작을 수행한다. 컨트롤 로직(340)은 리셋 명령(RS_CMD)에 응답하여 내부 파워 오프 신호(IPOS)를 생성하고, 이를 디코더(330) 및 데이터 입출력 회로(320)에 전송한다. 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답해서, 메모리 셀 어레이(310)에 저장된 데이터를 리셋한다.
도 11b는 도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)의 내부에서 데이터 무효화 동작을 예시적으로 설명하기 위한 순서도이다.
S121 단계에서, 불휘발성 메인 메모리(300, 300_1)의 전원 전압 감지기(350)가 전원 전압(VDD)의 전압 레벨을 감지한다. 예를 들어, 전원 전압 감지기(350)는 실시간으로 전원 전압(VDD)의 전압 레벨을 감지할 수 있다. 다른 예로, 전원 전압 감지기(350)는 소정 시간 간격으로 전원 전압(VDD)의 전압 레벨을 감지할 수 있다.
S122 단계에서, 불휘발성 메인 메모리(300, 300_1)의 전원전압 감지기(350)가 전원 전압(VDD)의 전압 레벨을 기준 전압(Vref)의 전압 레벨과 비교한다.
전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우, 전원 전압 감지기(350)는 제어 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 전송한다(S123 단계).
이 경우, 컨트롤 로직(340)은 제어 신호(VDS)에 응답하여 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터에 대한 무효화 동작을 수행한다(S124 단계). 구체적으로, 컨트롤 로직(340)은 제어 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 생성하고, 이를 디코더(330) 및 데이터 입출력 회로(320)에 전송한다. 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답해서, 메모리 셀 어레이(310)에 저장된 데이터를 리셋한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 불휘발성 메모리 소자를 이용하여 메인 메모리를 구현함으로써, 메인 메모리의 설계를 단순화하고 파워 소모를 절감할 수 있다. 또한, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 파워 오프 시에 불휘발성 메인 메모리에 저장된 데이터에 대한 무효화 동작을 수행함으로써, 보안 데이터의 유출을 방지할 수 있다.
더불어, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 정상적인 메모리 시스템 파워 오프 시에는 메모리 컨트롤러(200, 200_1)부터 리셋 커맨드(RS_CMD)를 통해 불휘발성 메인 메모리(300, 300_1)의 데이터를 무효화 할 수 있다.
또한, 본 발명의 실시 예에 따른 불휘발성 메인 메모리(300, 300_1)는 자체적으로 전원 전압의 레벨을 감지하고, 감지 결과에 기초하여 저장된 데이터를 무효화할 수도 있다. 이는 불휘발성 메인 메모리가 탈부착 가능한 모듈 또는 카드 형태로 구성된 경우에, 메모리 시스템에서 분리될 때에 데이터를 무효화시켜 보안을 유지 할 수 있게 해 준다.
한편, 본 발명의 기술적 사상에 따른 실시 예에 있어서, 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터에 대한 무효화 동작은 다양한 방식으로 수행될 수 있다. 이하에서는, 본 발명의 실시 예에 따른 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터에 대한 무효화 동작들이 좀더 자세히 설명될 것이다.
Ⅱ. 파워가 적게 소모되는 방식으로 덮어쓰기 동작을 수행하는 불휘발성 메인 메모리
도 12는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다. 구체적으로, 도 12에서는 동일한 데이터를 이용하여 무효화 동작을 수행하는 실시 예가 설명된다. 이 경우, 보안 데이터의 유출을 방지하기 위한 무효화 동작은 무효화 동작에 따른 파워가 적게 되는 방식으로 수행된다.
설명의 편의상, 도 12에서는 "1"의 데이터가 메모리 셀 어레이(310)의 메모리 셀들에 기입된다고 가정된다. 또한, 메모리 셀 어레이(310)는 제 1 내지 제 6 메모리 셀들(MC1~MC6)을 포함하며, 각 메모리 셀은 도 12에 도시된 바와 같이 "1" 또는 "0"의 데이터를 저장하고 있다고 가정된다. 도 12에서 설명되는 불휘발성 메인 메모리는 도 3의 불휘발성 메인 메모리(300, 300_1)와 동일 또는 유사하며, 간략한 설명을 위하여 중첩되는 설명은 이하 생략된다.
도 12를 참조하면, 컨트롤 로직(340)은 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(RS_CMD)를 수신한다. 다른 예로, 컨트롤 로직(340)은 전원 전압 감지기(350)로부터 전압 감소 신호(VDS)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD) 또는 전압 감소 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 생성하고, 이를 디코더(330) 및 데이터 입출력 회로(320)에 전송한다. 디코더(330)는 내부 파워 오프 신호(IPOS)에 응답하여 워드 라인을 선택한다. 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여 리셋 데이터(reset data)를 생성하고, 이에 대응하는 전압을 비트 라인에 인가한다.
본 발명의 일 실시 예에 있어서, 컨트롤 로직(340)은 메모리 셀에 저장된 데이터가 무효화될 때, 전류가 적게 소모되는 방향으로 덮어쓰기 동작이 수행되도록 데이터 입출력 회로(320)를 제어할 수 있다. 예를 들어, STT_MRAM에 저장된 데이터가 "0"에서 "1"로 변경되는데 필요한 전류가 "1"에서 "0"으로 변경되는데 필요한 전류보다 적다고 가정된다. 이 경우, 컨트롤 로직(340)은 "1"의 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어할 것이다.
본 발명의 일 실시 예에 있어서, "1"의 데이터를 생성할 것이지 또는 "0"의 데이터를 생성할 것인지의 여부는 불휘발성 메모리 제조시의 메모리 셀 특성에 따라 미리 결정될 수 있다. 즉, "1"의 데이터를 덮어쓰는데 필요한 전류와 "0"의 데이터를 덮어쓰는데 필요한 전류 중 어느 것이 적은 지의 여부는 STT_MRAM의 특성에 따라 제조 시에 미리 결정될 수 있다. 도 3의 레지스터에 무효화 모드 지원 여부가 셋팅될 때, 데이터 '0' 및 데이터 '1' 중 덮어쓰기될 데이터가 함께 설정될 수 있다.
계속해서 도 12를 참조하면, 생성된 "1"의 데이터는 컨트롤 로직(340)의 제어에 응답하여, 메모리 셀 어레이(310)의 메모리 셀들(MC1~MC6)에 저장된다. 이 경우, STT_MRAM이 덮어쓰기 동작을 지원하기 때문에, "1"의 데이터는 메모리 셀 어레이(310)의 메모리 셀들(MC1~MC6)에 덮어쓰여 진다.
도 13a는 도 12의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 13a에서는 리셋 커맨드(RS_CMD)를 수신하는 경우에, 도 12의 불휘발성 메인 메모리의 동작이 예시적으로 설명된다.
S211 단계에서, 파워 오프 신호(POS)가 CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 수신된다.
S212 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS)에 응답하여 리셋 커맨드(RS_CMD)를 발생하고, 이를 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S213 단계에서, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S214 단계에서, 리셋 데이터가 불휘발성 메인 메모리에 덮어쓰기 된다.
도 13b는 도 12의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 13b에서는 불휘발성 메인 메모리가 자체적으로 전원 전압(VDD)의 전압 레벨을 감지하는 경우의 실시 예가 예시적으로 설명된다.
S221 단계에서, 전원 전압 감지기(350)는 전원 전압(VDD)의 전압 레벨을 감지하고, 이를 기준 전압(Vref)의 전압 레벨과 비교한다.
S222 단계에서, 전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우에, 전원 전압 감지기(350)는 전압 감소 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 제공한다.
S223 단계에서, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S224 단계에서, 리셋 데이터가 불휘발성 메인 메모리에 덮어쓰기 된다.
도 12 및 도 13a 및 도 13b를 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 파워 오프 시에 불휘발성 메인 메모리에 저장된 데이터를 무효화함으로써, 보안 데이터의 유출을 방지할 수 있다. 또한, 이 경우, 파워 소모가 적게 소모되는 데이터를 이용하여 덮어쓰기 동작을 수행함으로써, 무효화 동작에 소모되는 파워를 최소화할 수 있다.
Ⅲ. 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여만 덮어쓰기 동작을 수행하는 불휘발성 메인 메모리
도 14는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다. 구체적으로, 도 14에서는 리셋 데이터와 다른 데이터를 갖는 메모리 셀들에 대하여만 무효화 동작을 수행하는 실시 예가 설명된다.
설명의 편의상, 도 14에서는 "1"의 데이터가 리셋 데이터로 생성된다고 가정된다. 즉, 데이터 "0"에서 데이터 "1"로 변경되는데 필요한 전류가 데이터 "1"에서 데이터 "0"으로 변경되는데 필요한 전류보다 적다고 가정된다. 또한, 메모리 셀 어레이(310)는 도 12와 마찬가지로 제 1 내지 제 6 메모리 셀들(MC1~MC6)을 포함한다고 가정된다.
도 14를 참조하면, 컨트롤 로직(340)은 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(RS_CMD)를 수신한다. 다른 예로, 컨트롤 로직(340)은 전원 전압 감지기(350)로부터 전압 감소 신호(VDS)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD) 또는 전압 감소 신호(VDS)에 응답하여, "1"의 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
이 후, 컨트롤 로직(340)은 메모리 셀 어레이(310)의 메모리 셀들(MC1~MC6) 중 리셋 데이터와 다른 데이터를 갖는 메모리 셀에 대하여만 덮어쓰기 동작을 수행한다. 예를 들어, 도 14에 도시된 바와 같이, 제 3 및 제 4 메모리 셀(MC3, MC4)은 모두 "0"의 데이터를 갖는다. 따라서, 컨트롤 로직(340)은 제 1 내지 제 6 메모리 셀들(MC1~MC6) 중 제 3 및 제 4 메모리 셀(MC3, MC4)에 대하여만 "1"의 리셋 데이터를 덮어쓰는 동작을 수행한다.
이 경우, 예를 들어, 컨트롤 로직(340)은 제 1 내지 제 6 메모리 셀들(MC1~MC6)에 대한 읽기 동작을 수행하고, 읽혀진 제 1 내지 제 6 메모리 셀들(MC1~MC6)의 데이터와 리셋 데이터를 비교함으로써, 덮어쓰기 동작이 수행될 메모리 셀들(즉, 제 3 및 제 4 메모리 셀들(MC3, MC4))을 판별할 수 있다. 설명의 편의상, 이러한 동작은 데이터 비교 쓰기(Data Compare Write, 이하 DCW) 동작이라 칭해질 수 있다.
데이터 비교 쓰기(DCW) 동작을 지원함으로써, 본 발명의 실시 예에 따른 불휘발성 메인 메모리는 보안 데이터의 유출을 방지하는 동시에, 무효화 동작에 소모되는 파워를 절감할 수 있다.
도 15a는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 15a에서는 리셋 커맨드(RS_CMD)를 수신하는 경우에, 도 14의 불휘발성 메인 메모리의 동작이 예시적으로 설명된다.
S311 단계에서, 파워 오프 신호(POS)가 CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 수신된다.
S312 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS)에 응답하여 리셋 커맨드(RS_CMD)를 발생하고, 이를 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S313 단계에서, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S314 단계에서, 리셋 데이터가 덮어쓰기 될 메모리 셀들이 선택된다. 예를 들어, 컨트롤 로직(340)은 비교 쓰기(DCW) 동작을 수행함으로써, 리셋 데이터가 덮어쓰기 될 메모리 셀들을 선택할 수 있다.
S315 단계에서, 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행된다. 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행됨으로써, 불휘발성 메인 메모리에 저장된 데이터가 무효화 될 수 있다.
도 15b는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 15b에서는 불휘발성 메인 메모리가 자체적으로 전원 전압(VDD)의 전압 레벨을 감지하는 경우의 실시 예가 예시적으로 설명된다.
S321 단계에서, 전원 전압 감지기(350)는 전원 전압(VDD)의 전압 레벨을 감지하고, 이를 기준 전압(Vref)의 전압 레벨과 비교한다.
S322 단계에서, 전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우에, 전원 전압 감지기(350)는 전압 감소 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 제공한다.
S323 단계에서, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S324 단계에서, 리셋 데이터가 덮어쓰기 될 메모리 셀들이 선택된다. 예를 들어, 컨트롤 로직(340)은 비교 쓰기(DCW) 동작을 수행함으로써, 리셋 데이터가 덮어쓰기 될 메모리 셀들을 선택할 수 있다.
S325 단계에서, 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행된다. 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행됨으로써, 불휘발성 메인 메모리에 저장된 데이터가 무효화 될 수 있다.
도 14 및 도 15a, 도 15b를 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 파워 오프 시에 불휘발성 메인 메모리에 저장된 데이터를 무효화함으로써, 보안 데이터의 유출을 방지할 수 있다. 이 경우, 비교 쓰기 동작을 수행함으로써, 무효화 동작에 소모되는 파워가 최소화될 수 있다.
Ⅳ. 랜덤 데이터를 이용하여 무효화 동작을 수행하는 불휘발성 메인 메모리
도 16은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다. 구체적으로, 도 14에서는 랜덤 데이터(random data)를 생성하고, 생성된 랜덤 데이터를 이용하여 무효화 동작을 수생하는 실시 예가 설명된다.
설명의 편의상, 도 16의 메모리 셀 어레이(310)는 도 12 및 도 14와 마찬가지로 제 1 내지 제 6 메모리 셀들(MC1~MC6)을 포함한다고 가정된다. 도 16의 불휘발성 메인 메모리는 도 2의 불휘발성 메인 메모리(300, 300_1)와 유사하다. 따라서, 설명의 편의상, 중첩되는 설명은 이하 생략된다. 도 16의 불휘발성 메모리는 도 3의 불휘발성 메인 메모리(300, 300_1)와 달리, 랜덤 데이터 생성기(360)를 더 포함한다.
도 16을 참조하면, 컨트롤 로직(340)은 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(RS_CMD)를 수신한다. 다른 예로, 컨트롤 로직(340)은 전원 전압 감지기(350)로부터 전압 감소 신호(VDS)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD) 또는 전압 감소 신호(VDS)에 응답하여, 랜덤 데이터를 생성하도록 랜덤 데이터 생성기(360)를 제어한다. 설명의 편의상, 랜덤 데이터 생성기(360)는 "1", "0", "1", "1", "0", "1"의 데이터를 생성한다고 가정된다.
이 후, 랜덤 데이터 생성기(360)는 랜덤 데이터를 데이터 입출력 회로(320)에 전송한다. 데이터 입출력 회로(320)는 랜덤 데이터를 각각 대응하는 메모리 셀에 덮어쓰는 동작을 수행한다.
랜덤 데이터를 생성하고, 생성된 랜덤 데이터를 이용하여 덮어쓰기 동작을 수행함으로써, 본 발명의 실시 예에 따른 불휘발성 메인 메모리는 보안 데이터의 유출을 방지할 수 있다.
도 17a는 도 16의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 17a에서는 리셋 커맨드(RS_CMD)를 수신하는 경우에, 도 16의 불휘발성 메인 메모리의 동작이 예시적으로 설명된다.
S411 단계에서, 파워 오프 신호(POS)가 CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 수신된다.
S412 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS)에 응답하여 리셋 커맨드(RS_CMD)를 발생하고, 이를 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S413 단계에서, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 랜덤 데이터를 생성하도록 랜덤 데이터 생성기(360)를 제어한다. 랜덤 데이터 생성기(360)는 컨트롤 로직(340)의 제어에 응답하여 랜덤 데이터를 생성하고, 생성된 랜덤 데이터를 데이터 입출력 회로(320)에 전송한다.
S414 단계에서, 랜덤 데이터를 메모리 셀 어레이(310)의 메모리 셀들에 덮어쓰는 동작이 수행된다.
도 17b는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 17b에서는 불휘발성 메인 메모리가 자체적으로 전원 전압(VDD)의 전압 레벨을 감지하는 경우의 실시 예가 예시적으로 설명된다.
S421 단계에서, 전원 전압 감지기(350)는 전원 전압(VDD)의 전압 레벨을 감지하고, 이를 기준 전압(Vref)의 전압 레벨과 비교한다.
S422 단계에서, 전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우에, 전원 전압 감지기(350)는 전압 감소 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 제공한다.
S423 단계에서, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 랜덤 데이터를 생성하도록 랜덤 데이터 생성기(360)를 제어한다. 랜덤 데이터 생성기(360)는 컨트롤 로직(340)의 제어에 응답하여 랜덤 데이터를 생성하고, 생성된 랜덤 데이터를 데이터 입출력 회로(320)에 전송한다.
S424 단계에서, 랜덤 데이터를 메모리 셀 어레이(310)의 메모리 셀들에 덮어쓰는 동작이 수행된다.
도 16, 도 17a 및 도 17b를 참조하여 설명된 바와 같이, 랜덤 데이터를 이용하여 덮어쓰기 동작을 수행함으로써, 본 발명의 실시 예에 따른 불휘발성 메인 메모리는 보안 데이터의 유출을 방지할 수 있다.
Ⅴ. 데이터에 따른 파티션 기능을 지원하는 불휘발성 메인 메모리
이하에서는 앞서 설명된 도 1 내지 도 3을 참조하여, 메모리 셀 어레이(310)의 구성의 실시 예가 설명된다.
도 18은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 메모리 셀 어레이의 구성을 보여주는 도면이다. 구체적으로, 도 18에서는 메모리 셀 어레이(310)가 부팅 정보 영역(booting information area) 및 노멀 영역(normal area)으로 구분되는 경우의 실시 예가 예시적으로 설명된다.
도 18을 참조하면, 메모리 셀 어레이(310)는 부팅 정보 영역(310_1)과 노멀 영역(310_2)을 포함한다.
부팅 정보 영역(310_1)은 메모리 시스템(10, 10_1)을 부팅하는데 필요한 정보(이하, 부팅 정보)를 저장하는데 사용된다. 예를 들어, 부팅 정보 영역(310_1)은 메모리 시스템의 부팅에 필요한 오에스 이미지(OS image) 정보를 저장하는데 사용될 수 있다.
노멀 영역(310_2)은 메모리 시스템(10, 10_1)에 대한 메인 메모리로 동작한다. 예를 들어, 노멀 영역(310_2)은 메모리 컨트롤러(200)(또는 중앙 처리 장치(100))에서 실행 중인 프로그램에 관련된 데이터를 저장할 수 있다. 다른 예로, 노멀 영역(310_2)은 컨트롤러(100)에서 실행 중인 프로그램이 참조하는 데이터를 저장할 수 있다. 다른 예로, 노멀 영역(310_2)은 호스트(미도시)로부터 수신된 쓰기 데이터를 저장하거나, 스토리지 디바이스(500, 800)에서 독출된 데이터를 저장할 수 있다.
본 발명의 기술적 사상에 따른 메모리 시스템(10, 10_1)은 부팅 정보를 불휘발성 메인 메모리(300, 300_1)의 부팅 정보 영역(310_1)에 저장한다. 부팅 정보를 불휘발성 메인 메모리(300, 300_1)의 부팅 정보 영역(310_1)에 저장함으로써, 메모리 시스템(10, 10_1)은 빠른 부팅 동작을 수행할 수 있다.
좀더 구체적으로 설명하면, 일반적으로 휘발성 메모리를 메인 메모리로 사용하는 메모리 시스템에서는 파워 오프 후 메인 메모리의 모든 데이터가 사라진다. 따라서 다시 메모리 시스템을 가동하기 위해서는, 스토리지 디바이스로부터 OS image등 부팅에 필요한 정보가 다시 메인 메모리로 로딩되어야 한다. 따라서, 부팅 동작이 수행되는 시간이 길어지고, 부팅시간은 메모리 시스템의 중요한 성능지수가 되고 있다.
이에 반하여, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 부팅 정보를 불휘발성 메인 메모리(300, 300_1)의 부팅 정보 영역(310_1)에 저장하고. 파워 오프시에 노말 영역(310_2)에 저장된 데이터는 무효화(리셋)을 진행하고, 부팅 정보 영역(310_1)에 저장된 부팅 정보는 무효화(리셋)하지 않는다. 따라서 메모리 시스템(10, 10_1)이 재부팅될때는 부팅 정보 영역(310_1)에 저장된 부팅 정보를 그대로 이용하여 부팅 동작을 수행한다. 따라서, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 부팅 동작을 빠르게 수행할 수 있다.
또한, 본 발명의 기술적 사상에 따른 메모리 시스템(10)은 파워 오프 시에 부팅 정보 영역(310_1)에 저장된 데이터에 대하여는 무효화 동작을 수행하지 않는다. 즉, 메모리 시스템(10)은 파워 오프 시에 노멀 영역(310_2)에 저장된 데이터에 대하여만 무효화 동작을 수행한다.
도 19는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 메모리 셀 어레이의 구성을 보여주는 도면이다. 구체적으로, 도 19에서는 메모리 셀 어레이(310)가 보안 영역(security area, 310_3)과 비보안 영역(non-security area)으로 구분되는 경우의 실시 예가 예시적으로 설명된다.
도 19의 불휘발성 메인 메모리는 도 3의 불휘발성 메인 메모리(300, 300_1)와 유사하다. 따라서, 유사한 구성은 유사한 참조 번호를 사용하여 설명되며, 중첩되는 설명은 이하 생략된다. 도 19를 참조하면, 메모리 셀 어레이(310)는 보안 영역(310_3)과 비보안 영역(310_4)을 포함한다.
보안 영역(310_3)은 보안이 필요한 데이터(이하, 보안 데이터)를 저장하는데 사용된다. 예를 들어, 보안 영역(310_3)에는 사용자에 의하여 지정된 보안 데이터가 저장되거나, 미리 정해진 형식의 파일 확장자(file exetension)를 갖는 보안 데이터가 저장될 수 있다.
좀더 자세히 설명하면, 사용자는 작업 중인 파일을 보안 데이터로 설정할 수 있다. 예를 들어, 사용자는 작업 중인 파일이 보안 데이터로 저장되도록 요청함으로써, 작업 중인 데이터를 보안 데이터로 설정할 수 있다. 이 경우, 보안 데이터로 설정된 파일은 메모리 셀 어레이(310)의 보안 영역(310_3)에서 편집될 것이다.
다른 예로, 소정 형식의 파일 확장자(file exetension)를 갖는 데이터는 보안 데이터로 설정될 수 있다. 예를 들어, 이 경우, 보안 데이터에 대응하는 파일 확장자는 미리 정해질 수 있다. 예를 들어, 부팅 동작 시에, 보안 데이터에 대응하는 파일 확장자가 설정될 수 있다.
비보안 영역(310_4)은 보안이 필요하지 않은 데이터(이하, 비보안 데이터)를 저장하는데 사용된다. 예를 들어, 비보안 데이터는 사용자에 의하여 특별히 지정되지 않은 데이터일 수 있다. 다른 예로, 비보안 데이터는 보안 데이터와 유사하게 소정 형식의 파일 확장자를 갖는 데이터일 수 있다. 다른 예로, 비보안 데이터는 사용자에 의하여 지정된 데이터일 수도 있다.
본 발명의 기술적 사상에 따른 메모리 시스템(10)은 파워 오프 시에 보안 영역(310_3)에 저장된 보안 데이터에 대하여만 무효화 동작을 수행한다. 즉, 메모리 시스템(10, 10_1)은 비보안 영역(310_4)에 저장된 비보안 데이터에 대하여는 무효화 동작을 수행하지 않는다.
불휘발성 메인 메모리(300, 300_1)를 보안 영역(310_3)과 비보안 영역(310_4)으로 구분하고, 보안 영역(310_3)에 대해서 무효화 동작을 수행함으로써, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 보안 데이터의 유출을 방지할 수 있다. 또한, 비보안 데이터에 대해서는 무효화 동작을 수행하지 않음으로써, 비보안 데이터를 무효화하는데 소요되는 파워를 절감할 수 있다.
도 20은 도 18 및 도 19에서 설명된 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
S510 단계에서, 메모리 시스템(10, 10_1)이 파워 온(power on) 된다. 이 경우, 메모리 시스템(10)에 대한 부팅 동작이 수행된다.
S520 단계에서, 파티션 동작이 수행된다. 즉, 부팅 동작이 수행될 때, 불휘발성 메인 메모리(121)를 파티션 하는 동작이 수행된다. 파티션 동작은, 예를 들어, 불휘발성 메모리의 메모리 셀 어레이를 구성하는 뱅크 또는 블록 단위로 수행될 수 있다. 또한, 파티션 동작은 메모리 컨트롤러(200)의 모드 셋팅 동작에 의해 레지스터(341)에 파티션 정보를 세팅함으로써 구현될 수 있다.
도 18에서 설명된 바와 같이, 불휘발성 메인 메모리(121)는 부팅 정보 영역(310_1)과 노멀 영역(310_2)으로 파티션 될 수 있다. 다른 예로, 도 19에서 설명된 바와 같이, 불휘발성 메인 메모리(121)는 보안 영역(310_3)과 비보안 영역(310_4)으로 파티션 될 수 있다. 다른 예로, 불휘발성 메인 메모리(121)는 부팅 정보 영역(310_1), 보안 영역(310_3), 비보안 영역(310_4)으로 파티션 될 수도 있다.
S530 단계에서, CPU(100, 100_1)로부터 파워 오프 신호(POS)가 메모리 컨트롤러(200, 200_1)에 전송된다.
S540 단계에서, 리셋 컨트롤 유닛(210, 210_1, 100_1)은 파워 오프 신호(POS)에 응답하여, 리셋 명령(RS_CMD)을 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S550 단계에서, 파티션된 영역 중 리셋이 필요한 영역에 대한 무효화 동작이 수행된다. 예를 들어, 도 18에서 설명된 바와 같이, 부팅 정보 영역(310_1)을 제외한 노멀 영역(310_2)에 대한 무효화 동작이 수행된다. 다른 예로, 도 19에서 설명된 바와 같이, 비보안 영역(310_4)을 제외한 보안 영역(310_3)에 대한 무효화 동작이 수행된다.
한편, 도 13b, 도 15b, 도 17b에서 설명된 바와 유사하게, 본 발명의 기술적 사상에 불휘발성 메인 메모리는 자체적으로 전원 전압(VDD)의 전압 레벨을 감지할 수도 있다. 이 경우, 전원 전압 감지기(350)가 전원 전압(VDD)의 전압 레벨을 감지하고, 전압 감소 신호(VDS)를 컨트롤 로직(340)에 전송하는 것으로 S530 단계 및 S540 단계가 대체될 수 있다. 이 경우, S510 단계, S520 단계, S540 단계, S550 단계는 동일한 방식으로 수해될 것이다.
도 18 내지 도 20을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 불휘발성 메인 메모리(300, 300_1)를 파티션 하는 기능을 지원한다. 불휘발성 메인 메모리(300, 300_1)를 파티션 하고, 노멀 영역 또는 보안이 필요한 영역에 대하여만 무효화 동작을 수행함으로써, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 보안 데이터의 유출을 방지함과 동시에 무효화 동작에 소모되는 파워를 절감할 수 있다.
한편, 상술한 설명은 예시적인 것으로 이해되어야 하며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 이하에서는, 본 발명의 기술적 사상에 따른 다양한 실시 예들이 좀더 설명될 것이다.
Ⅵ. 수퍼 커패시터를 포함하는 컨트롤러
도 21은 본 발명의 일 실시 예에 따른 메모리 시스템(10_2)의 구조를 보여주는 블록도이다. 도 21의 메모리 시스템(10_2)은 도 1의 메모리 시스템(10)과 유사하다. 따라서, 동일 또는 유사한 구성요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략할 설명을 위하여, 중첩되는 설명은 이하에서 생략된다.
도 21의 메모리 시스템(10_2)은 도 1의 메모리 시스템(10)에 비하여 수퍼 커패시터(900)를 더 포함한다. 수퍼 커패시터(900)는 외부로부터 전원의 공급이 중단된 경우에, 불휘발성 메인 메모리의 무효화 동작에 소모되는 파워를 공급하는데 사용된다.
예를 들어, 서든 파워 오프(SPO)가 발생하는 경우, 무효화 동작이 수행되기 전에 외부로부터 파워의 공급이 중단될 수 있다. 이 경우, 본 발명의 실시 예에 따른 메모리 시스템(10_2)은 수퍼 커패시터(900)에 저장된 파워를 이용하여 불휘발성 메인 메모리(300, 300_1)에 대한 무효화 동작을 수행할 수 있다.
도 21에서 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 수퍼 커패시터를 구비함으로써, 불휘발성 메모리에 대한 무효화 동작을 안정적으로 수행할 수 있다.
Ⅶ. 파워 감지 유닛을 포함하는 컨트롤러
도 22는 본 발명의 일 실시 예에 따른 메모리 시스템(10_3)의 구조를 보여주는 블록도이다. 도 22의 메모리 시스템(10_3)은 도 2 및 도 21의 메모리 시스템(10_2, 10_3)과 유사하다. 따라서, 동일 또는 유사한 구성요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략할 설명을 위하여, 중첩되는 설명은 이하에서 생략된다.
도 22를 참조하면, 메모리 시스템(10_3)은 파워 감지 유닛(210_2)을 더 포함하는 것을 제외하면, 도 2 및 도 21의 메모리 시스템(10_1, 10_2)과 유사하다.
파워 감지 유닛(210_2)은 실시 간으로 또는 소정 간격으로 외부로부터의 전원 공급 중지 여부를 감지하고, 전원의 중단이 감지된 경우 리셋 컨트롤 유닛(210, 210_1)에 파워의 중단을 알리는 신호(즉, 파워 오프 신호(POS))를 전송한다.
이 경우, 리셋 컨트롤 유닛(210, 210_1)은 파워 감지 유닛(210_2)으로부터 전송된 파워 오프 신호(POS)에 응답하여, 리셋 명령을 불휘발성 메인 메모리(300, 300_1)에 전송한다. 불휘발성 메인 메모리(300, 300_1)는 리셋 명령에 응답하여 무효화 동작을 수행한다. 따라서, 본 발명의 실시 예에 따른 메모리 시스템(10_3)는 서든 파워 오프(SPO)가 발생한 경우에도, 안정적으로 무효화 동작을 수행할 수 있다.
예시적으로, 파워 오프 신호(POS)는 외부로부터 수신될 수 있고, 자체적으로 생성될 수도 있다. 파워 오프 신호(POS)를 생성하는 주체는 한정되지 않는다.
Ⅷ. 복수의 메모리 칩들을 포함하는 불휘발성 메인 메모리
도 23 내지 도 26은 본 발명의 실시 예에 따른 메모리 시스템들(10_4~10_7)의 구조를 보여주는 블록도이다. 구체적으로, 도 23 내지 도 26의 메모리 시스템들(10_4~10_7)은 불휘발성 메인 메모리가 메모리 모듈로써 구현되는 경우의 실시 예들을 보여준다.
도 23 내지 도 26의 메모리 시스템들(10_4~10_7)은 앞서 설명된 메모리 시스템들과 유사하다. 따라서, 동일 또는 유사한 구성요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략할 설명을 위하여, 중첩되는 설명은 이하에서 생략된다.
먼저, 도 23의 메모리 시스템(10_4)은 불휘발성 메인 메모리 대신에, 불휘발성 메인 메모리 모듈(300_2)을 포함한다. 불휘발성 메인 메모리 모듈(300_2)은 복수의 메모리 칩들(300_2a~300_2n)을 포함한다. 예시적으로, 도 23에서는, 불휘발성 메인 메모리 모듈(300_2)의 메모리 칩들(300_2a~300_2n)은 MRAM으로 구현되는 것으로 가정된다.
본 발명의 실시 예에 있어서, 메모리 시스템(10_4)은 파워 오프 시에 불휘발성 메인 메모리 모듈(300_2)의 복수의 메모리 칩들(300_2a~300_2n)에 대한 무효화 동작을 수행할 수 있다. 따라서, 보안 데이터의 유출이 방지될 수 있다.
한편, 불휘발성 메인 메모리 모듈(300_2)의 복수의 메모리 칩들은 병렬적(parallel)으로 쓰기 동작을 수행할 수 있다. 따라서, 복수의 메모리 칩들 모두에 대한 무효화 동작을 위해서는 큰 파워가 필요할 수 있다.
파워 소모를 절감하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(10_4)은 불휘발성 메인 메모리 모듈(300_2)의 메모리 칩들(300_2a~300_2n) 중 소정 메모리 칩만에 대하여만 무효화 동작을 수행할 수 있다. 따라서, 메모리 시스템(10_4)은 무효화 동작에 소모되는 파워를 절감할 수 있다. 이 경우, 파워 오프 시의 무효화 동작이 수행될 소정 메모리 칩의 결정은 메모리 컨트롤러의 모드 셋팅에 의해 결정될 수 있다. 이는 도 19에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
한편, 본 발명의 다른 실시 예에 있어서, 메모리 시스템(10_4)은 불휘발성 메인 메모리 모듈(300_2)의 메모리 칩들(300_2a~300_2n) 중 소정 메모리 칩에 부팅 정보를 저장할 수 있다. 이 경우, 메모리 시스템(10_4)는 부팅 정보가 저장된 메모리 칩에 대하여는 무효화 동작을 수행하지 않는다. 또한, 메모리 시스템(10_4)는 불휘발성 메인 메모리 모듈(300_2)의 소정 메모리 칩에 저장된 부팅 정보를 이용하여 부팅 동작을 수행함으로써, 부팅 동작을 빠르게 수행할 수 있다. 이는 도 18에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
계속해서 도 24를 참조하면, 도 24의 메모리 시스템(10_5)은 도 23의 메모리 시스템(10_4)에 비하여 수퍼 커패시터(900)를 더 포함한다. 수퍼 커패시터(900)는 불휘발성 메인 메모리 모듈(300_2) 내에 구현되며, 파워 오프 시에 불휘발성 메인 메모리 모듈(300_2)에 무효화 동작을 위한 파워를 공급한다. 수퍼 커패시터(900)를 구비함으로써, 도 24의 메모리 시스템(10_5)은 무효화 동작을 좀더 안정적으로 수행할 수 있다. 이는 도 21에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
한편, 도 24에서, 수퍼 커패시터(900)는 불휘발성 메인 메모리 모듈(300_2) 내에 구현된다. 다만, 이는 예시적인 것으로 이해되어야 하며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 도 25에 도시된 바와 같이, 메모리 메모리 시스템(10_6)은 수퍼 커패시터(900)를 구비하며, 수퍼 커패시터(900)는 불휘발성 메인 메모리 모듈(300_2)의 외부에 위치할 수 있다.
계속해서 도 26을 참조하면, 도 26의 메모리 시스템(10_7)은 도 25의 메모리 시스템(10_6)에 비하여 파워 감지 유닛(220)을 더 포함할 수 있다. 파워 감지 유닛(220)은 외부로부터 전원의 공급이 중단되는지의 여부를 실시간으로 또는 소정 시간 간격으로 감지한다.
도 23 내지 도 26을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 메인 메모리를 복수의 불휘발성 메모리 칩들을 포함하는 메모리 모듈로써 구현할 수 있으며, 메모리 모듈에 저장된 보안 데이터의 유출을 방지할 수 있다.
Ⅸ. 불휘발성 메모리와 휘발성 메모리를 포함하는 하이브리드 메인 메모리
도 27은 본 발명의 일 실시 예에 따른 메모리 시스템(10_8)을 보여주는 도면이다. 도 27의 메모리 시스템(10_8)은 도 1의 메모리 시스템(10)과 유사하다. 따라서, 동일 또는 유사한 구성 요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략한 설명을 위하여, 중첩되는 설명은 이하 생략된다.
도 27을 참조하면, 도 27의 메모리 메모리 시스템(10_8)는 도 1의 불휘발성 메인 메모리(300)를 대신하여, 하이브리드 메인 메모리(300_3)를 포함한다.
하이브리드 메인 메모리(300_3)는 휘발성 메모리 및 불휘발성 메모리를 포함한다. 설명의 편의상, 도 27에서, 하이브리드 메인 메모리(300_3)는 DRAM과 MRAM을 포함하는 것으로 가정된다. 다만, 이는 예시적인 것이며, 본 발명의 기술적 사상은 이에 한정되지 않음이 이해될 것이다.
파워 오프 신호(POS)가 전송된 경우, 리셋 컨트롤 유닛(210)은 하이브리드 메인 메모리(300_3)의 MRAM(300_3b)에 대한 무효화 동작을 수행한다. 예를 들어, MRAM(300_3b)에 보안 데이터가 저장된 경우, MRAM(300_3b)에 대한 무효화 동작을 수행함으로써, 보안 데이터의 유출이 방지될 수 있다.
한편, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 보안 데이터는 DRAM(300_3a)에 저장되고 비보안 데이터는 MRAM(300_3b)에 저장될 수 있다. 또한, 본 발명의 다른 실시 예에 있어서, 부팅 정보는 MRAM(300_3b)에 저장될 수 있다. 이 경우, 본 발명의 실시 예에 따른 메모리 시스템은 MRAM(300_3b)에 대한 무효화 동작을 수행하지 않을 수도 있다.
한편, MRAM(300_3b)과 DRAM(300_3a)은 모두 DRAM 인터페이스 방식을 이용하여 메모리 컨트롤러(130)와 데이터 전송을 수행할 수 있다.
지금까지 본 발명의 기술적 사상이 적용된 불휘발성 메모리 및 다양한 메모리 시스템들을 예시를 들어 설명하였다. 본 발명의 기술적 사상이 적용된 메모리 시스템은 예를 들어, 불휘발성 메모리를 메인 메모리로 사용하는 컴퓨터 시스템, 불휘발성 메모리를 불휘발성 메모리 스토리지 디바이스의 버퍼 메모리로 사용하는 솔리드 스테이트 저장장치, 불휘발성 메모리를 하드디스크 드라이버의 버퍼 메모리로 사용하는 하드디스크 저장장치, 또는 불휘발성 메모리를 메모리 컨트롤러에 임베디드 형태로 사용하는 메모리 카드일 수 있다.
상술한 실시 예들에서, 파워 오프를 감지하여 데이터를 무효화하는 구성이 설명되었다. 그러나, 본 발명의 기술적 사상은 상술된 실시 예들에 한정되지 않는다. 예를 들어, 본 발명의 기술적 사상은 파워 오프가 아닌 파워 온 시에 데이터를 무효화하는 구성으로 적용 및 응용될 수 있다. 이를 위해, 도 3의 불휘발성 메인 메모리(300)의 전압 검출기(350)는 파워 온 시에 전원 전압 변화를 감지하여 전압 상승 신호(VIS)를 발생할 수 있다. 이에 응답하여, 컨트롤 로직(340)은 데이터의 무효화를 수행하도록 불휘발성 메모리(300)를 제어할 수 있다. 또한, 본 발명의 실시 예에 따른 메모리 시스템은 파워 오프 시에 생성하는 신호(POS)를 파워 온 시에도 생성할 수 있다. 이에 응답하여, 메모리 컨트롤러는 리셋 커맨드를 불휘발성 메모리에 출력할 수 있다. 출력된 커맨드에 응답하여, 불휘발성 메모리는 데이터를 무효화할 수 있다. 즉, 본 발명의 기술적 사상은 파워 오프 또는 파워 온 시에 데이터를 무효화하는 구성으로 적용 및 응용될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
Ⅰ. 불휘발성 메인 메모리를 리셋하는 메모리 시스템
도 1은 본 발명의 실시 예에 따른 메모리 시스템(10)을 보여주는 블록도이다.
일반적인 메모리 시스템은 메인 메모리로 DRAM 등의 휘발성 메모리를 사용한다. 이 경우, 휘발성 메모리의 데이터 휘발 특성으로 인하여, 메인 메모리에 저장된 데이터는 일정 주기로 리프레쉬(refresh) 되어야 하거나, 불휘발성 메모리에 백업(back-up) 되어야 한다. 이는 메인 메모리의 설계의 복잡성 및 파워 소모의 증가를 야기한다.
이에 반하여, 본 발명의 실시 예에 따른 메모리 시스템(10)은 메인 메모리로 불휘발성 메모리를 제공한다. 따라서, 메인 메모리로 휘발성 메모리를 사용하는 경우에 비하여, 본 발명의 실시 예에 따른 메모리 시스템(10)은 설계를 단순화하고, 파워 소모를 감소시킬 수 있다.
한편, 메인 메모리로 불휘발성 메모리를 사용하는 경우에는, 메인 메모리에서 처리된 데이터(또는 처리 중이던 데이터)는 메인 메모리의 파워 오프(power off) 후에도 메인 메모리에 여전히 유지된다. 이는 보안 유지가 필요한 데이터(이하, 보안 데이터(security data))가 사용자의 의도에 관계없이 메인 메모리에 여전히 유지됨을 의미한다. 따라서, 만약 메인 메모리가 메모리 시스템(10)으로부터 탈착되어 다른 메모리 시스템에 부착된다면, 보안 데이터가 유출될 염려가 있다.
보안 데이터의 유출을 방지하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(10)은 파워 오프 시에 메인 메모리에 저장된 데이터를 무효화한다. 파워 오프 시에 메인 메모리를 무효화함으로써, 본 발명의 실시 예에 따른 메모리 시스템(10)은 보안 데이터의 유출을 방지할 수 있다.
도 1을 참조하여 좀더 구체적으로 설명하면, 메모리 시스템(10)은 CPU(100), 메모리 컨트롤러(200), 불휘발성 메인 메모리(300), 입출력 컨트롤러(400), 그리고 스토리지 디바이스(500)를 포함한다.
CPU(100)는 메모리 시스템(10)의 전반적인 동작을 제어한다. 예를 들어, CPU(100)는 외부로부터의 요청에 응답하여 쓰기 동작 또는 읽기 동작 또는 연산 동작 등이 수행되도록, 메모리 시스템(10)의 각 구성 요소들을 제어한다.
메모리 컨트롤러(200)는 CPU(100)로부터 쓰기 명령을 수신하며, 쓰기 요청된 데이터(이하, 쓰기 데이터)가 불휘발성 메인 메모리(300)를 통해 스토리지 디바이스(500)에 저장되도록 불휘발성 메인 메모리(300)를 제어한다. 또한, 메모리 컨트롤러(200)는 CPU(100)로부터 읽기 명령을 수신하며, 스토리지 디바이스(500)에 저장된 데이터 중 읽기 요청된 데이터에 대한 읽기 동작이 수행되도록, 불휘발성 메인 메모리(300)와 입출력 컨트롤러(400)를 통해 스토리지 디바이스(500)를 제어한다. 메모리 컨트롤러(200)는 리셋 컨트롤 유닛(210)을 포함한다.
리셋 컨트롤 유닛(210)은 파워 오프 시에 불휘발성 메인 메모리(300)에 저장된 데이터가 무효화 되도록 불휘발성 메인 메모리(3000)를 제어한다. 예를 들어, 리셋 컨트롤 유닛(210)은 파워 오프 시에 불휘발성 메인 메모리(300)에 저장된 데이터가 모두 무효화 되도록 불휘발성 메인 메모리(3000)를 제어할 수 있다. 다른 예로, 리셋 컨트롤 유닛(210)은 파워 오프 시에 불휘발성 메인 메모리(300)에 저장된 데이터 중 보안 데이터만이 선택적으로 무효화 되도록 불휘발성 메인 메모리(300)를 제어할 수 있다.
불휘발성 메인 메모리(300)는 메모리 시스템(10)에 대한 메인 메모리로 동작한다. 예를 들어, 불휘발성 메인 메모리(300)는 메모리 컨트롤러(200)에서 실행 중인 프로그램에 관련된 데이터를 저장할 수 있다. 다른 예로, 불휘발성 메인 메모리(300)는 CPU(100)에서 실행 중인 프로그램이 참조하는 데이터를 저장할 수 있다. 다른 예로, 불휘발성 메인 메모리(300)는 메모리 컨트롤러(200)를 통해 CPU(100)에 수신된 쓰기 데이터를 저장하거나, 스토리지 디바이스(500)로부터 독출된 데이터를 저장할 수 있다.
불휘발성 메인 메모리(300)는 MRAM과 같은 불휘발성 메모리 소자를 이용하여 구현될 수 있다. 다른 예로, 불휘발성 메인 메모리(300)는 상 변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속산화물질(Complex Metal Oxide)의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory)을 이용하여 구현될 수 있다.
입출력 컨트롤러(400)는 CPU(100) 또는 메모리 컨트롤러(200)의 제어에 응답하여, 스토리지 디바이스(500)를 제어한다. 예를 들어, 입출력 컨트롤러(400)는 CPU(100)의 제어에 응답하여 불휘발성 메인 메모리(300)에 저장된 쓰기 데이터가 스토리지 디바이스(500)에 저장되도록, 스토리지 디바이스(500)를 제어한다. 다른 예로, 입출력 컨트롤러(400)는 CPU(100)의 제어에 응답하여 스토리지 디바이스(500)에 저장된 데이터가 불휘발성 메인 메모리(300)로 독출되도록, 스토리지 디바이스(500)를 제어한다.
스토리지 디바이스(500)는 사용자 데이터를 저장한다. 예를 들어, 스토리지 디바이스(500)는 하드 디스크(hard disk) 또는 플래시 메모리와 같은 불휘발성 메모리 소자를 이용한 SSD(Solid State Device)로 구현될 수 있다. 다른 예로, 스토리지 디바이스(500)는 상 변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속산화물질(Complex Metal Oxide)의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory) 또는 강자성체 물질을 이용한 MRAM(Magnetic Random Access Memory)을 이용하여 구현될 수 있다.
도 1을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10)은 메모리 시스템(10)의 파워 오프 시 또는 불휘발성 메인 메모리(300)의 파워 제거 시에 불휘발성 메인 메모리(300)에 저장된 데이터를 무효화함으로써, 보안 데이터의 유출을 방지할 수 있다.
도 2는 본 발명의 다른 실시 예에 따른 메모리 시스템(10_1)을 보여주는 도면이다. 도 2의 메모리 시스템(10_1)과 도 1의 메모리 시스템(10)은 서로 유사하다. 따라서, 유사한 구성요소는 유사한 참조번호를 사용하여 통합적으로 설명된다.
예시적으로, 도 1의 메모리 시스템(10)은 컴퓨터 아키텍처(computer architecture)의 일부 구성을 나타낸 것으로 이해될 수 있다. 또한, 도 2의 메모리 시스템(10_1)은 도 1의 스토리지 디바이스(500)의 구성을 나타낸 것으로 이해될 수 있다.
도 2를 참조하면, 메모리 시스템(10_1)은 CPU(100_1), 메모리 컨트롤러(200_1), 불휘발성 메인 메모리(300_1), 호스트 인터페이스(600), 스토리지 인터페이스(700), 그리고 불휘발성 메모리(800)를 포함한다.
불휘발성 메인 메모리(300_1)는 메모리 컨트롤러(200_1)의 제어에 응답하여 동작하며, 메모리 컨트롤러(200_1)와 데이터를 송수신한다. 불휘발성 메인 메모리(300_1)는, 도 1에서 설명된 것과 유사하게, MRAM, PRAM, RRAM과 같은 불휘발성 메모리 소자를 이용하여 구현될 수 있다. 이 중, MRAM은 빠른 읽기 속도 및 쓰기 속도, 덮어 쓰기(over-write) 동작의 지원, 그리고 DRAM 인터페이스와의 호환 가능함 등의 특성으로 인하여 DRAM을 대체할 수 있다. 이하에서는 설명의 편의상, MRAM을 이용하여, 도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)가 구현된다고 가정된다.
도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)가 MRAM을 이용하여 구현되는 경우, 불휘발성 메인 메모리(300, 300_1)는 DRAM 인터페이스 방식을 이용하여 메모리 컨트롤러(200, 200_1)와 데이터를 송수신할 수 있다. 예를 들어, 불휘발성 메인 메모리(300, 300_1)는 비동기식 DRAM 인터페이스 방식(classic DRAM 인터페이스 방식)을 이용하여 메모리 컨트롤러(200, 200_1)와 데이터를 송수신할 수 있다. 다른 예로, 불휘발성 메인 메모리(300, 300_1)는 동기식 DRAM 인터페이스 방식(예를 들어, DDR1, DDR2, DDR3 등의 SDRAM 인터페이스)을 이용하여 메모리 컨트롤러(200, 200_1)와 데이터를 송수신할 수 있다.
도 1 및 도 2의 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 시에 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터가 무효화 되도록 불휘발성 메인 메모리(300, 300_1)를 제어한다. 즉, 외부로부터 파워의 공급이 중단되는 경우, 리셋 컨트롤 유닛(210, 210_1)은 불휘발성 메인 메모리(300, 300_1)를 리셋한다.
예를 들어, 사용자로부터 메모리 시스템(10, 10_1)에 대한 파워 오프 요청이 있는 경우, 리셋 컨트롤 유닛(210, 210_1)은 CPU(100) 또는 CPU(100_1)로부터 파워 오프 신호(power off signal)를 수신할 수 있다. 다른 예로, 메모리 컨트롤러(200, 200_1)는 외부로부터 제공되는 파워의 전원 전압의 레벨을 감지함으로써, 자체적으로 파워 오프 신호를 생성할 수 있다. 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 요청에 응답하여 리셋 커맨드(reset command)를 불휘발성 메인 메모리(300, 300_1)에 제공할 수 있다. 불휘발성 메인 메모리(300, 300_1는 리셋 커맨드에 응답하여 저장된 데이터를 무효화할 수 있다.
도 1 및 도 2의 리셋 컨트롤 유닛(210, 210_1)은, 도 1 및 도 2에 도시된 바와 같이, 메모리 컨트롤러(200, 200_1) 내에 구현될 수 있다. 다만, 이는 예시적인 것이며, 다른 예로 리셋 컨트롤 유닛(210, 210_1)은 메모리 컨트롤러(200, 200_1)와는 구분되는 별도의 유닛으로 구현될 수도 있다.
한편, 도 1 및 도 2의 CPU(100, 100_1)는 메모리 컨트롤러(200, 200_1)의 전반적인 동작을 제어한다. 도 2의 호스트 인터페이스(600)는 호스트(미도시)와의 인터페이스를 제공하며, 도 2의 스토리지 인터페이스(700)는 저장 장치(800)와의 인터페이스를 제공한다.
도 1 및 도 2에서 설명된 바와 같이, 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터는 파워 오프 시에 무효화 됨으로써, 보안 데이터의 유출이 방지될 수 있다.
한편, 파워 오프 시의 무효화 동작에 소모되는 파워를 공급하기 위하여, 본 발명의 다른 실시 예에 따른 메모리 시스템(10, 10_1)은 수퍼 커패시터(super capacitor)를 더 포함할 수 있다. 특히, 본 발명의 일 실시 예에 있어서, 서든 파워 오프의 발생에 대비하여, 수퍼 커패시터가 구비될 수 있다. 이는 이하의 도 21 등을 참조하여 좀더 자세히 설명될 것이다.
도 3은 도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)를 좀더 자세히 보여주는 도면이다. 도 3을 참조하면, 불휘발성 메인 메모리(300, 300_1)는 메모리 셀 어레이(310), 데이터 입출력 회로(320), 디코더(330), 컨트롤 로직(340), 그리고 전원 전압 감지기(350)를 포함한다.
메모리 셀 어레이(310)는 복수의 메모리 셀들을 포함한다. 메모리 셀 어레이(310)의 메모리 셀들은, 예를 들어, STT-MRAM(Spin transfer magneto resistive random access memory)으로 구현될 수 있다.
메모리 셀들이 STT-MRAM으로 구현되는 경우, 각 메모리 셀은 자성 물질을 갖는 자기 터널 접합 소자(magnetic tunnel junction, 이하 가변 저항 소자)를 포함할 수 있다. 메모리 셀 어레이(310) 및 메모리 셀 어레이(310)의 메모리 셀은 이하의 도 4 내지 도 10을 참조하여 좀더 자세히 설명된다.
데이터 입출력 회로(320)는 비트 라인(BL)을 통하여 메모리 셀 어레이(310)에 연결된다. 데이터 입출력 회로(320)는 외부로부터 데이터를 수신하고, 수신된 데이터를 메모리 셀 어레이(310)에 저장한다. 데이터 입출력 회로(320)는 메모리 셀 어레이(310)로부터 데이터를 독출하고, 독출된 데이터를 외부로 전송한다.
메모리 셀 어레이(310)의 메모리 셀들이 STT-MRAM으로 구현되는 경우, 데이터 입출력 회로(320)는 메모리 셀에 쓰기 전류(write current) 및 읽기 전류(read current)를 제공하도록 구현될 수 있다. 예를 들어, 데이터 입출력 회로(320)는 쓰기 동작 시에 쓰기 전류(write current)를 메모리 셀 어레이(310)에 제공하도록 구현된다. 다른 예로, 데이터 입출력 회로(320)는 읽기 동작 시에 읽기 전류(read current)를 메모리 셀 어레이(310)에 제공하도록 구현된다.
또한, 데이터 입출력 회로(320)는 복수의 감지 증폭 회로들을 포함하도록 구현될 수 있다. 예를 들어, 읽기 동작 시에, 각각의 감지 증폭 회로는 비트 라인(BL)을 통하여 데이터 전압을 수신하고, 수신된 데이터 전압을 기준 전압(reference voltage)을 비교할 수 있다. 각각의 감지 증폭 회로는 비교 결과를 디지털 레벨의 데이터 신호로 출력할 수 있다.
디코더(330)는 워드 라인(WL)을 통하여 메모리 셀 어레이(310)에 연결된다. 디코더(330)는 외부로부터 수신된 어드레스(ADDR)에 따라, 대응하는 워드 라인을 선택한다.
컨트롤 로직(340)은 불휘발성 메인 메모리(300, 300_1)의 전반적인 동작을 제어한다. 예를 들어, 쓰기 동작 시에, 컨트롤 로직(340)은 외부로부터 수신된 데이터가 메모리 셀 어레이(310)에 저장되도록 디코더(330)와 데이터 입출력 회로(320)를 제어한다. 다른 예로, 읽기 동작 시에, 컨트롤 로직(340)은 메모리 셀 어레이(310)에 저장된 데이터에 대한 읽기 동작이 수행되도록 디코더(330)와 데이터 입출력 회로(320)를 제어한다.
본 발명의 기술적 사상에 따른 실시 예에 있어서, 사용자로부터 파워 오프 요청이 수신되는 경우, 컨트롤 로직(340)은 메모리 컨트롤러(200, 200_1)의 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(reset command, 이하 RS_CMD)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 내부 파워 오프 신호(Internal Power Off Signal, 이하 IPOS)를 생성하고, 이를 디코더(330)와 데이터 입출력 회로(320)에 전송한다. 디코더(330)와 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답해서, 메모리 셀 어레이(310)에 저장된 데이터가 무효화 되도록 동작한다.
본 발명의 기술적 사상에 따른 다른 실시 예에 있어서, 불휘발성 메인 메모리(300, 300_1)에 공급되는 전원 전압이 차단되는 경우, 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터의 무효화 동작이 진행될 수 있다. 이를 위하여, 불휘발성 메인 메모리(300, 300_1)는 전원 전압 감지기(350)를 더 구비할 수 있다.
좀더 자세히 설명하면, 불휘발성 메인 메모리(300, 300_1)는 전원 전압 감지기(350)를 구비한다. 전원 전압 감지기(350)는 전원 전압이 일정 레벨 이하로 내려가는 경우에 이를 감지하고, 컨트롤 로직(340)에 전압 감소 신호(VDS)를 전송한다. 전압 감소 신호(VDS)에 응답해서 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 동작하는 것과 동일하게, 메모리 셀 어레이(310)에 저장된 데이터가 무효화 되도록 디코더(330)와 데이터 입출력 회로(320)를 제어한다. 또한, 전원 전압 감지기(350)는 파워 온 시에도 전원 전압의 변화를 감지하고, 이에 응답하여 전압 증가 신호(VIS)를 발생할 수 있다.
계속해서 도 3을 참조하면, 컨트롤 로직(340)은 레지스터(341)를 더 포함할 수 있다. 레지스터(341)는 불휘발성 메인 메모리(300, 300_1)의 데이터 무효화 동작 지원 여부를 결정하는 정보를 저장한다.
좀더 자세히 설명하면, 메모리 컨트롤러(200, 200_1)는 데이터 무효화 모드(data invalidation mode) 셋팅을 위한 커맨드 및 데이터 무효화 모드 셋팅을 위한 데이터를 불휘발성 메인 메모리(300, 300_1)에 송신할 수 있다. 이 경우, 데이터 무효화 모드의 설정에 관한 정보가 레지스터(341)에 셋팅될 수 있다.
상기 데이터 무효화 모드가 설정되면, 불휘발성 메인 메모리(300, 300_1)는 파워 오프 시에 불휘발성 메모리 셀에 저장된 데이터의 무효화 동작을 수행할 것이다. 상기 데이터 무효화 모드가 설정되지 않으면, 불휘발성 메인 메모리(300, 300_1)는 파워 오프 후에도 불휘발성 메인 메모리(300, 300_1)의 셀에 저장된 데이터를 유지할 것이다.
한편, 본 발명의 기술적 사상에 따른 무효화 동작은 다양한 방식에 의하여 수행될 수 있다. 예를 들어, 컨트롤 로직(340)은 메모리 셀 어레이(310)의 메모리 셀들에 "1" 또는 "0"의 데이터를 일괄적으로 덮어씀으로써, 무효화 동작을 수행할 수 있다. 이 경우, 컨트롤 로직(340)은 "1" 또는 "0"의 데이터 중 덮어쓰기 동작에 소모되는 파워가 작은 데이터가 선택되도록 데이터 입출력 회로(320)를 제어할 수 있다. 이는 이하의 도 12, 도 13a 및 도 13b를 참조하여 좀더 자세히 설명될 것이다.
다른 예로, 컨트롤 로직(340)은 메모리 셀 어레이(310)의 메모리 셀들 중 선택된 메모리 셀들에 "1" 또는 "0"의 데이터를 덮어씀으로써, 무효화 동작을 수행할 수 있다. 구체적으로, 예를 들어 "1"의 데이터를 덮어쓰는 경우, 컨트롤 로직(340)은 "0"의 데이터를 갖는 메모리 셀들에 "1"의 데이터를 덮어쓰도록 디코더(330)와 데이터 입출력 회로(320)를 제어함으로써, 무효화 동작을 수행할 수 있다. 다른 예로는, 메모리 셀 어레이(310)의 메모리 셀들 중 선택된 메모리 셀들에 대하여만 무효화 동작을 수행함으로써, 무효화 동작에 소모되는 파워가 감소될 수 있다. 이는 이하의 도 14, 도 15a 및 도 15b 참조하여 좀더 자세히 설명될 것이다.
다른 예로, 컨트롤 로직(340)은 랜덤 데이터(random data)를 발생하고, 메모리 셀 어레이(310)의 메모리 셀들에 랜덤 데이터를 덮어씀으로써, 무효화 동작을 수행할 수 있다. 이는 이하의 도 16, 도 17a 및 도 17b를 참조하여 좀더 자세히 설명될 것이다.
다른 예로, 컨트롤 로직(340)은 메모리 셀 어레이(310)를 적어도 두 개의 영역으로 구분하고, 선택된 영역의 메모리 셀들에 대하여만, 무효화 동작을 수행할 수 있다. 메모리 셀 어레이(310)의 메모리 셀들 중 선택된 영역의 메모리 셀들에 대하여만 무효화 동작을 수행함으로써, 무효화 동작에 소모되는 파워가 감소될 수 있다. 이는 이하의 도 18 내지 도 21을 참조하여 좀더 자세히 설명될 것이다.
도 3에서 설명된 바와 같이, 메모리 셀 어레이(310)에 저장된 데이터는 파워 오프 시에 무효화 됨으로써, 보안 데이터의 유출이 방지될 수 있다.
도 4는 도 3의 메모리 셀 어레이(310)의 구조를 좀더 자세히 보여주는 도면이다. 도 4를 참조하면, 메모리 셀 어레이(310)는 복수의 메모리 셀들(MC)을 포함한다. 각 메모리 셀(MC)은 가변 저항 소자(Variable resistance memory, VR)와 셀 트랜지스터(CT)를 포함한다.
가변 저항 소자(VR)는 제공되는 전류(또는 전압)의 크기 및 방향에 따라 저항값이 가변된다. 또한, 가변 저항 소자(VR)는 전류(또는 전압)가 차단되어도, 저항값을 그대로 유지한다. 즉, 가변 저항 소자(VR)는 불휘발성의 특성을 가진다.
가변 저항 소자(VR)는 다양한 소자들을 이용하여 구현될 수 있다. 예를 들어, 가변 저항 소자(VR)는 STT-MRAM(Spin transfer torque magneto resistive random access memory)를 이용하여 구현될 수 있다. 다른 예로, 가변 저항 소자(VR)는 상 변화 물질을 이용하는 PRAM(Phase Change Random Access Memory), 전이금속산화물질(Complex Metal Oxide)의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory) 또는 강자성체 물질을 이용한 MRAM(Magnetic Random Access Memory)을 이용하여 구현될 수 있다.
셀 트랜지스터(CT)의 게이트는 워드 라인(WL)에 연결된다. 셀 트랜지스터(CT)는 워드 라인(WL)을 통하여 제공되는 신호에 의하여 스위칭 된다. 셀 트랜지스터(CT)의 드레인(drain)은 가변 저항 소자(VR)에 연결되며, 셀 트랜지스터(CT)의 소스(source)는 소스 라인(SL)에 연결된다.
예를 들어, 복수의 메모리 셀들(MC)의 셀 트랜지스터들(CT)의 소스들은 모두 동일한 소스 라인에 연결될 수 있다. 다른 예로, 복수의 메모리 셀들(MC)의 셀 트랜지스터들(CT)의 소스들은 각각 상이한 소스 라인들에 연결될 수 있다.
도 5는 도 3의 메모리 셀 어레이(310)의 구조의 다른 실시 예를 보여주는 도면이다.
도 5에 도시된 바와 같이, 메모리 셀 어레이(310)는 서로 다른 4 개의 메모리 셀들(MC)이 하나의 소스 라인(SL)을 공유하도록 구현될 수도 있다. 소스 라인(SL)의 연결 방식을 제외하면, 도 5의 메모리 셀 어레이(310)의 구조 및 메모리 셀(MC)은 도 4의 메모리 셀 어레이(310)의 구조 및 메모리 셀(MC)과 유사하디. 따라서, 자세한 설명은 이하 생략된다.
도 6은 도 4 및 도 5의 메모리 셀(MC)의 일 실시 예를 보여주는 도면이다. 도 6에서는, 메모리 셀(MC)이 STT-MRAM(Spin transfer torque magneto resistive random access memory)으로 구현된 예를 보여준다.
메모리 셀(MC)은 가변 저항 소자(VR) 및 셀 트랜지스터(CT)를 포함할 수 있다. 셀 트랜지스터(CT)의 게이트는 워드 라인(예컨대, 제 1 워드라인(WL1))에 연결되고, 셀 트랜지스터(CT)의 일 전극은 가변 저항 소자(VR)를 통해 비트라인(예컨대, 제 1 비트 라인(BL1))에 연결된다. 또한, 셀 트랜지스터(CT)의 다른 전극은 소스라인(예컨대, 제 1 소스라인 SL1)에 연결된다.
가변 저항 소자(VR)는 고정층(Pinned layer, 13)과 자유층(free layer, 11) 및 이들 사이에 터널층(12)을 포함할 수 있다. 고정층(13)의 자화 방향은 고정되어 있으며, 자유층(11)의 자화 방향은 조건에 따라 고정층(13)의 자화 방향과 같거나 역방향이 될 수 있다. 고정층(13)의 자화 방향을 고정시켜 주기 위하여, 예컨대, 반강자성층(anti-ferromagnetic layer, 미도시)이 더 구비될 수 있다.
STT-MRAM의 읽기 동작을 수행하기 위해서는, 워드 라인(WL1)에 로직 하이의 전압을 제공하여 셀 트랜지스터(CT)를 턴 온 시키고, 비트 라인(BL1)으로부터 소스 라인(SL) 방향으로 읽기 전류(read current)를 제공하여, 측정되는 저항값에 따라 가변 저항 소자(VR)에 저장된 데이터를 판별할 수 있다.
STT-MRAM의 쓰기 동작을 수행하기 위해서는, 워드 라인(WL1)에 로직 하이의 전압을 주어 셀 트랜지스터(CT)를 턴 온 시키고, 비트 라인(BL1)과 소스 라인(SL) 사이에 쓰기 전류를 제공한다.
도 7 및 도 8은 저장된 데이터에 따른 가변 저항 소자(VR)의 자화 방향을 나타내는 도면이다.
가변 저항 소자(VR)의 저항값은 자유층(11)의 자화 방향에 따라 달라진다. 가변 저항 소자에 읽기 전류(I)를 제공하면, 가변 저항 소자의 저항값에 따른 데이터 전압이 출력된다. 읽기 전류(I)의 세기는 쓰기 전류의 세기보다 매우 작기 때문에, 일반적으로 읽기 전류(I)에 의해 자유층(11)의 자화 방향이 변화되지 않는다.
도 7을 참조하면, 가변 저항 소자에서 자유층(11)의 자화 방향과 고정층(13)의 자화 방향이 평행(parallel)하게 배치된다. 따라서, 가변 저항 소자는 낮은 저항값을 가진다. 이 경우 데이터는, 예를 들어, '0'을 독출할 수 있다.
도 8을 참조하면, 가변 저항 소자(VR)는 자유층(11)의 자화 방향이 고정층(13)의 자화 방향과 반 평행(anti-parallel)으로 배치된다. 이 경우, 상기 가변 저항 소자(VR)는 높은 저항값을 가진다. 이 경우 데이터는, 예를 들어, '1'을 독출 할 수 있다.
한편, 도 7 및 도 8에서는, MTJ 셀(10)의 자유층(11)과 고정층(13)을 수평 자기 소자로 도시하였으나, 이에 한정되는 것은 아니다. 다른 실시 예로서, 자유층(11)과 고정층(13)은 수직 자기 소자를 이용할 수도 있다.
도 9는 STT-MRAM의 쓰기 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 가변 저항 소자(VR)를 흐르는 쓰기 전류(WC1, WC2)의 방향에 따라 자유층(11)의 자화 방향이 결정될 수 있다. 예컨대, 제 1 쓰기 전류(WC1)가 제공되면, 고정층(13)과 동일한 스핀 방향을 갖는 자유 전자들이 자유층(11)에 토크(torque)를 인가한다. 이로 인해, 자유층(11)은 고정층(13)과 평행(Parallel)하게 자화된다.
한편, 제 2 쓰기 전류(WC2)가 제공되면, 고정층(13)과 반대의 스핀을 갖는 전자들이 자유층(11)으로 토크를 제공한다. 이로 인해, 자유층(11)은 고정층(13)과 반 평행(Anti Parallel)하게 자화된다. 즉, 가변 저항 소자(VR)에서 자유층(11)의 자화 방향은 스핀 전달 토크(STT, Spin transfer torque)에 의해 변할 수 있다.
도 10은 STT-MRAM의 가변 저항 소자의 다른 실시 예를 나타내는 도면이다. 자화 방향이 수직인 가변 저항 소자는 전류의 이동 방향과 자화 용이축(easy axis)이 실질적으로 평행하다. 도 12을 참조하면, 가변 저항 소자(VR)는 자유층(41), 고정층(43) 및 터널층(42)을 포함한다.
자유층(41)의 자화 방향과 고정층(43)의 자화 방향이 평행(Parallel) 하면 저항값이 작아지고, 자유층(41)의 자화 방향과 고정층(43)의 자화 방향이 반 평행(Anti-Parallel) 하면 저항값이 커진다. 저항값에 따라 데이터가 저장될 수 있다.
자화 방향이 수직인 가변 저항 소자(VR)을 구현하기 위해서, 자유층(41)과 고정층(43)은 자기 이방성 에너지가 큰 물질로 구성되는 것이 바람직하다. 자기 이방성 에너지가 큰 물질로는, 비정질계 희토류 원소 합금, (Co/Pt)n 이나 (Fe/Pt)n과 같은 다층박막, 그리고 L10 결정 구조의 규칙격자 물질이 있다.
예를 들어, 자유층(41)은 규칙 합금(ordered alloy)일 수 있으며, 철(Fe), 코발트(Co), 니켈(Ni), 팔라듐(Pa), 및 백금(Pt) 중 적어도 어느 하나를 포함할 수 있다. 예를 들어 자유층(41)은 Fe-Pt 합금, Fe-Pd 합금, Co-Pd 합금, Co-Pt 합금, Fe-Ni-Pt 합금, Co-Fe-Pt 합금, 및 Co-Ni-Pt 합금 중 적어도 어느 하나를 포함할 수 있다. 상기 합금들은, 예를 들어 화학 정량적인 표현으로, Fe50Pt50, Fe50Pd50, Co50Pd50, Co50Pt50, Fe30Ni20Pt50, Co30Fe20Pt50, 또는 Co30Ni20Pt50 일 수 있다.
고정층(43)은 규칙합금(ordered alloy)일 수 있으며, 철(Fe), 코발트(Co), 니켈(Ni), 팔라듐(Pa), 및 백금(Pt) 중 적어도 어느 하나를 포함할 수 있다. 예를 들어 고정층(43)은 Fe-Pt 합금, Fe-Pd 합금, Co-Pd 합금, Co-Pt 합금, Fe-Ni-Pt 합금, Co-Fe-Pt 합금, 및 Co-Ni-Pt 합금 중 적어도 어느 하나를 포함할 수 있다. 상기 합금들은, 예를 들어 화학 정량적인 표현으로, Fe50Pt50, Fe50Pd50, Co50Pd50, Co50Pt50, Fe30Ni20Pt50, Co30Fe20Pt50, 또는 Co30Ni20Pt50 일 수 있다.
도 4 내지 도 10을 참조하여 설명된 바와 같이, 불휘발성 메인 메모리(300, 300_1)는 STT-MRAM을 이용하여 구현될 수 있다. STT-MRAM은 DRAM과 마찬가지로 덮어쓰기 동작을 지원하기 때문에, 불휘발성 메인 메모리(300, 300_1)는 DRAM과 동일 또는 유사한 속도로 동작할 수 있다. STT-MRAM은 셀에 흐르는 전류의 방향에 따라 데이터 '0' 또는 데이터 '1'을 나타내도록 프로그램될 수 있다. 이때, STT-MRAM 셀을 구성하는 물질 또는 제조 공정 조건에 따라, 데이터 '0' 또는 데이터 '1'로 프로그램하기 위해 요구되는 전류의 크기가 다를 수 있다. 본 발명은 무효화를 위헤 STT-MRAM 셀을 프로그램할 때 소모되는 전류가 적은 데이터로 STT-MRAM 셀에 저장된 데이터를 리셋할 수 있다.
도 11a는 도 1 및 도 2의 메모리 시스템(10, 10_1)의 동작을 예시적으로 설명하기 위한 순서도이다.
S111 단계에서, CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 파워 오프 신호(power off signal, 이하 POS)가 전송된다. 다만 이는 예시적인 것이며, 다른 예로, 메모리 컨트롤러(200, 200_1) 내부에서 파워 오프를 감지하고, 파워 오프에 대응하는 신호를 생성할 수도 있다.
S112 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS) 또는 상기 파워 오프에 대응하는 내부 신호에 응답하여, 리셋 명령(RS_CMD)을 불휘발성 메인 메모리(300, 300_1)에 제공한다.
S113 단계에서, 컨트롤 로직(340, 도 3 참조)은 리셋 명령(RS_CMD)에 응답하여 메모리 셀 어레이(310)에 저장된 데이터에 대한 무효화 동작을 수행한다. 컨트롤 로직(340)은 리셋 명령(RS_CMD)에 응답하여 내부 파워 오프 신호(IPOS)를 생성하고, 이를 디코더(330) 및 데이터 입출력 회로(320)에 전송한다. 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답해서, 메모리 셀 어레이(310)에 저장된 데이터를 리셋한다.
도 11b는 도 1 및 도 2의 불휘발성 메인 메모리(300, 300_1)의 내부에서 데이터 무효화 동작을 예시적으로 설명하기 위한 순서도이다.
S121 단계에서, 불휘발성 메인 메모리(300, 300_1)의 전원 전압 감지기(350)가 전원 전압(VDD)의 전압 레벨을 감지한다. 예를 들어, 전원 전압 감지기(350)는 실시간으로 전원 전압(VDD)의 전압 레벨을 감지할 수 있다. 다른 예로, 전원 전압 감지기(350)는 소정 시간 간격으로 전원 전압(VDD)의 전압 레벨을 감지할 수 있다.
S122 단계에서, 불휘발성 메인 메모리(300, 300_1)의 전원전압 감지기(350)가 전원 전압(VDD)의 전압 레벨을 기준 전압(Vref)의 전압 레벨과 비교한다.
전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우, 전원 전압 감지기(350)는 제어 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 전송한다(S123 단계).
이 경우, 컨트롤 로직(340)은 제어 신호(VDS)에 응답하여 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터에 대한 무효화 동작을 수행한다(S124 단계). 구체적으로, 컨트롤 로직(340)은 제어 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 생성하고, 이를 디코더(330) 및 데이터 입출력 회로(320)에 전송한다. 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답해서, 메모리 셀 어레이(310)에 저장된 데이터를 리셋한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 불휘발성 메모리 소자를 이용하여 메인 메모리를 구현함으로써, 메인 메모리의 설계를 단순화하고 파워 소모를 절감할 수 있다. 또한, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 파워 오프 시에 불휘발성 메인 메모리에 저장된 데이터에 대한 무효화 동작을 수행함으로써, 보안 데이터의 유출을 방지할 수 있다.
더불어, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 정상적인 메모리 시스템 파워 오프 시에는 메모리 컨트롤러(200, 200_1)부터 리셋 커맨드(RS_CMD)를 통해 불휘발성 메인 메모리(300, 300_1)의 데이터를 무효화 할 수 있다.
또한, 본 발명의 실시 예에 따른 불휘발성 메인 메모리(300, 300_1)는 자체적으로 전원 전압의 레벨을 감지하고, 감지 결과에 기초하여 저장된 데이터를 무효화할 수도 있다. 이는 불휘발성 메인 메모리가 탈부착 가능한 모듈 또는 카드 형태로 구성된 경우에, 메모리 시스템에서 분리될 때에 데이터를 무효화시켜 보안을 유지 할 수 있게 해 준다.
한편, 본 발명의 기술적 사상에 따른 실시 예에 있어서, 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터에 대한 무효화 동작은 다양한 방식으로 수행될 수 있다. 이하에서는, 본 발명의 실시 예에 따른 불휘발성 메인 메모리(300, 300_1)에 저장된 데이터에 대한 무효화 동작들이 좀더 자세히 설명될 것이다.
Ⅱ. 파워가 적게 소모되는 방식으로 덮어쓰기 동작을 수행하는 불휘발성 메인 메모리
도 12는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다. 구체적으로, 도 12에서는 동일한 데이터를 이용하여 무효화 동작을 수행하는 실시 예가 설명된다. 이 경우, 보안 데이터의 유출을 방지하기 위한 무효화 동작은 무효화 동작에 따른 파워가 적게 되는 방식으로 수행된다.
설명의 편의상, 도 12에서는 "1"의 데이터가 메모리 셀 어레이(310)의 메모리 셀들에 기입된다고 가정된다. 또한, 메모리 셀 어레이(310)는 제 1 내지 제 6 메모리 셀들(MC1~MC6)을 포함하며, 각 메모리 셀은 도 12에 도시된 바와 같이 "1" 또는 "0"의 데이터를 저장하고 있다고 가정된다. 도 12에서 설명되는 불휘발성 메인 메모리는 도 3의 불휘발성 메인 메모리(300, 300_1)와 동일 또는 유사하며, 간략한 설명을 위하여 중첩되는 설명은 이하 생략된다.
도 12를 참조하면, 컨트롤 로직(340)은 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(RS_CMD)를 수신한다. 다른 예로, 컨트롤 로직(340)은 전원 전압 감지기(350)로부터 전압 감소 신호(VDS)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD) 또는 전압 감소 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 생성하고, 이를 디코더(330) 및 데이터 입출력 회로(320)에 전송한다. 디코더(330)는 내부 파워 오프 신호(IPOS)에 응답하여 워드 라인을 선택한다. 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여 리셋 데이터(reset data)를 생성하고, 이에 대응하는 전압을 비트 라인에 인가한다.
본 발명의 일 실시 예에 있어서, 컨트롤 로직(340)은 메모리 셀에 저장된 데이터가 무효화될 때, 전류가 적게 소모되는 방향으로 덮어쓰기 동작이 수행되도록 데이터 입출력 회로(320)를 제어할 수 있다. 예를 들어, STT_MRAM에 저장된 데이터가 "0"에서 "1"로 변경되는데 필요한 전류가 "1"에서 "0"으로 변경되는데 필요한 전류보다 적다고 가정된다. 이 경우, 컨트롤 로직(340)은 "1"의 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어할 것이다.
본 발명의 일 실시 예에 있어서, "1"의 데이터를 생성할 것이지 또는 "0"의 데이터를 생성할 것인지의 여부는 불휘발성 메모리 제조시의 메모리 셀 특성에 따라 미리 결정될 수 있다. 즉, "1"의 데이터를 덮어쓰는데 필요한 전류와 "0"의 데이터를 덮어쓰는데 필요한 전류 중 어느 것이 적은 지의 여부는 STT_MRAM의 특성에 따라 제조 시에 미리 결정될 수 있다. 도 3의 레지스터에 무효화 모드 지원 여부가 셋팅될 때, 데이터 '0' 및 데이터 '1' 중 덮어쓰기될 데이터가 함께 설정될 수 있다.
계속해서 도 12를 참조하면, 생성된 "1"의 데이터는 컨트롤 로직(340)의 제어에 응답하여, 메모리 셀 어레이(310)의 메모리 셀들(MC1~MC6)에 저장된다. 이 경우, STT_MRAM이 덮어쓰기 동작을 지원하기 때문에, "1"의 데이터는 메모리 셀 어레이(310)의 메모리 셀들(MC1~MC6)에 덮어쓰여 진다.
도 13a는 도 12의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 13a에서는 리셋 커맨드(RS_CMD)를 수신하는 경우에, 도 12의 불휘발성 메인 메모리의 동작이 예시적으로 설명된다.
S211 단계에서, 파워 오프 신호(POS)가 CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 수신된다.
S212 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS)에 응답하여 리셋 커맨드(RS_CMD)를 발생하고, 이를 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S213 단계에서, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S214 단계에서, 리셋 데이터가 불휘발성 메인 메모리에 덮어쓰기 된다.
도 13b는 도 12의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 13b에서는 불휘발성 메인 메모리가 자체적으로 전원 전압(VDD)의 전압 레벨을 감지하는 경우의 실시 예가 예시적으로 설명된다.
S221 단계에서, 전원 전압 감지기(350)는 전원 전압(VDD)의 전압 레벨을 감지하고, 이를 기준 전압(Vref)의 전압 레벨과 비교한다.
S222 단계에서, 전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우에, 전원 전압 감지기(350)는 전압 감소 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 제공한다.
S223 단계에서, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S224 단계에서, 리셋 데이터가 불휘발성 메인 메모리에 덮어쓰기 된다.
도 12 및 도 13a 및 도 13b를 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 파워 오프 시에 불휘발성 메인 메모리에 저장된 데이터를 무효화함으로써, 보안 데이터의 유출을 방지할 수 있다. 또한, 이 경우, 파워 소모가 적게 소모되는 데이터를 이용하여 덮어쓰기 동작을 수행함으로써, 무효화 동작에 소모되는 파워를 최소화할 수 있다.
Ⅲ. 복수의 메모리 셀들 중 선택된 메모리 셀들에 대하여만 덮어쓰기 동작을 수행하는 불휘발성 메인 메모리
도 14는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다. 구체적으로, 도 14에서는 리셋 데이터와 다른 데이터를 갖는 메모리 셀들에 대하여만 무효화 동작을 수행하는 실시 예가 설명된다.
설명의 편의상, 도 14에서는 "1"의 데이터가 리셋 데이터로 생성된다고 가정된다. 즉, 데이터 "0"에서 데이터 "1"로 변경되는데 필요한 전류가 데이터 "1"에서 데이터 "0"으로 변경되는데 필요한 전류보다 적다고 가정된다. 또한, 메모리 셀 어레이(310)는 도 12와 마찬가지로 제 1 내지 제 6 메모리 셀들(MC1~MC6)을 포함한다고 가정된다.
도 14를 참조하면, 컨트롤 로직(340)은 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(RS_CMD)를 수신한다. 다른 예로, 컨트롤 로직(340)은 전원 전압 감지기(350)로부터 전압 감소 신호(VDS)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD) 또는 전압 감소 신호(VDS)에 응답하여, "1"의 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
이 후, 컨트롤 로직(340)은 메모리 셀 어레이(310)의 메모리 셀들(MC1~MC6) 중 리셋 데이터와 다른 데이터를 갖는 메모리 셀에 대하여만 덮어쓰기 동작을 수행한다. 예를 들어, 도 14에 도시된 바와 같이, 제 3 및 제 4 메모리 셀(MC3, MC4)은 모두 "0"의 데이터를 갖는다. 따라서, 컨트롤 로직(340)은 제 1 내지 제 6 메모리 셀들(MC1~MC6) 중 제 3 및 제 4 메모리 셀(MC3, MC4)에 대하여만 "1"의 리셋 데이터를 덮어쓰는 동작을 수행한다.
이 경우, 예를 들어, 컨트롤 로직(340)은 제 1 내지 제 6 메모리 셀들(MC1~MC6)에 대한 읽기 동작을 수행하고, 읽혀진 제 1 내지 제 6 메모리 셀들(MC1~MC6)의 데이터와 리셋 데이터를 비교함으로써, 덮어쓰기 동작이 수행될 메모리 셀들(즉, 제 3 및 제 4 메모리 셀들(MC3, MC4))을 판별할 수 있다. 설명의 편의상, 이러한 동작은 데이터 비교 쓰기(Data Compare Write, 이하 DCW) 동작이라 칭해질 수 있다.
데이터 비교 쓰기(DCW) 동작을 지원함으로써, 본 발명의 실시 예에 따른 불휘발성 메인 메모리는 보안 데이터의 유출을 방지하는 동시에, 무효화 동작에 소모되는 파워를 절감할 수 있다.
도 15a는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 15a에서는 리셋 커맨드(RS_CMD)를 수신하는 경우에, 도 14의 불휘발성 메인 메모리의 동작이 예시적으로 설명된다.
S311 단계에서, 파워 오프 신호(POS)가 CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 수신된다.
S312 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS)에 응답하여 리셋 커맨드(RS_CMD)를 발생하고, 이를 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S313 단계에서, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S314 단계에서, 리셋 데이터가 덮어쓰기 될 메모리 셀들이 선택된다. 예를 들어, 컨트롤 로직(340)은 비교 쓰기(DCW) 동작을 수행함으로써, 리셋 데이터가 덮어쓰기 될 메모리 셀들을 선택할 수 있다.
S315 단계에서, 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행된다. 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행됨으로써, 불휘발성 메인 메모리에 저장된 데이터가 무효화 될 수 있다.
도 15b는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 15b에서는 불휘발성 메인 메모리가 자체적으로 전원 전압(VDD)의 전압 레벨을 감지하는 경우의 실시 예가 예시적으로 설명된다.
S321 단계에서, 전원 전압 감지기(350)는 전원 전압(VDD)의 전압 레벨을 감지하고, 이를 기준 전압(Vref)의 전압 레벨과 비교한다.
S322 단계에서, 전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우에, 전원 전압 감지기(350)는 전압 감소 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 제공한다.
S323 단계에서, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 리셋 데이터를 발생한다. 즉, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 내부 파워 오프 신호(IPOS)를 발생하고, 디코더(330) 및 데이터 입출력 회로(320)는 내부 파워 오프 신호(IPOS)에 응답하여, 전류 소모량이 적은 리셋 데이터를 생성하도록 데이터 입출력 회로(320)를 제어한다.
S324 단계에서, 리셋 데이터가 덮어쓰기 될 메모리 셀들이 선택된다. 예를 들어, 컨트롤 로직(340)은 비교 쓰기(DCW) 동작을 수행함으로써, 리셋 데이터가 덮어쓰기 될 메모리 셀들을 선택할 수 있다.
S325 단계에서, 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행된다. 선택된 메모리 셀들에 대한 덮어쓰기 동작이 수행됨으로써, 불휘발성 메인 메모리에 저장된 데이터가 무효화 될 수 있다.
도 14 및 도 15a, 도 15b를 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 파워 오프 시에 불휘발성 메인 메모리에 저장된 데이터를 무효화함으로써, 보안 데이터의 유출을 방지할 수 있다. 이 경우, 비교 쓰기 동작을 수행함으로써, 무효화 동작에 소모되는 파워가 최소화될 수 있다.
Ⅳ. 랜덤 데이터를 이용하여 무효화 동작을 수행하는 불휘발성 메인 메모리
도 16은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 동작을 보여주는 도면이다. 구체적으로, 도 14에서는 랜덤 데이터(random data)를 생성하고, 생성된 랜덤 데이터를 이용하여 무효화 동작을 수생하는 실시 예가 설명된다.
설명의 편의상, 도 16의 메모리 셀 어레이(310)는 도 12 및 도 14와 마찬가지로 제 1 내지 제 6 메모리 셀들(MC1~MC6)을 포함한다고 가정된다. 도 16의 불휘발성 메인 메모리는 도 2의 불휘발성 메인 메모리(300, 300_1)와 유사하다. 따라서, 설명의 편의상, 중첩되는 설명은 이하 생략된다. 도 16의 불휘발성 메모리는 도 3의 불휘발성 메인 메모리(300, 300_1)와 달리, 랜덤 데이터 생성기(360)를 더 포함한다.
도 16을 참조하면, 컨트롤 로직(340)은 리셋 컨트롤 유닛(210, 210_1)으로부터 리셋 커맨드(RS_CMD)를 수신한다. 다른 예로, 컨트롤 로직(340)은 전원 전압 감지기(350)로부터 전압 감소 신호(VDS)를 수신한다. 컨트롤 로직(340)은 리셋 커맨드(RS_CMD) 또는 전압 감소 신호(VDS)에 응답하여, 랜덤 데이터를 생성하도록 랜덤 데이터 생성기(360)를 제어한다. 설명의 편의상, 랜덤 데이터 생성기(360)는 "1", "0", "1", "1", "0", "1"의 데이터를 생성한다고 가정된다.
이 후, 랜덤 데이터 생성기(360)는 랜덤 데이터를 데이터 입출력 회로(320)에 전송한다. 데이터 입출력 회로(320)는 랜덤 데이터를 각각 대응하는 메모리 셀에 덮어쓰는 동작을 수행한다.
랜덤 데이터를 생성하고, 생성된 랜덤 데이터를 이용하여 덮어쓰기 동작을 수행함으로써, 본 발명의 실시 예에 따른 불휘발성 메인 메모리는 보안 데이터의 유출을 방지할 수 있다.
도 17a는 도 16의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 17a에서는 리셋 커맨드(RS_CMD)를 수신하는 경우에, 도 16의 불휘발성 메인 메모리의 동작이 예시적으로 설명된다.
S411 단계에서, 파워 오프 신호(POS)가 CPU(100, 100_1)로부터 메모리 컨트롤러(200, 200_1)로 수신된다.
S412 단계에서, 리셋 컨트롤 유닛(210, 210_1)은 파워 오프 신호(POS)에 응답하여 리셋 커맨드(RS_CMD)를 발생하고, 이를 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S413 단계에서, 컨트롤 로직(340)은 리셋 커맨드(RS_CMD)에 응답하여 랜덤 데이터를 생성하도록 랜덤 데이터 생성기(360)를 제어한다. 랜덤 데이터 생성기(360)는 컨트롤 로직(340)의 제어에 응답하여 랜덤 데이터를 생성하고, 생성된 랜덤 데이터를 데이터 입출력 회로(320)에 전송한다.
S414 단계에서, 랜덤 데이터를 메모리 셀 어레이(310)의 메모리 셀들에 덮어쓰는 동작이 수행된다.
도 17b는 도 14의 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다. 도 17b에서는 불휘발성 메인 메모리가 자체적으로 전원 전압(VDD)의 전압 레벨을 감지하는 경우의 실시 예가 예시적으로 설명된다.
S421 단계에서, 전원 전압 감지기(350)는 전원 전압(VDD)의 전압 레벨을 감지하고, 이를 기준 전압(Vref)의 전압 레벨과 비교한다.
S422 단계에서, 전원 전압(VDD)의 전압 레벨이 기준 전압(Vref)의 전압 레벨과 같거나 낮은 경우에, 전원 전압 감지기(350)는 전압 감소 신호(VDS)를 발생하고, 이를 컨트롤 로직(340)에 제공한다.
S423 단계에서, 컨트롤 로직(340)은 전압 감소 신호(VDS)에 응답하여 랜덤 데이터를 생성하도록 랜덤 데이터 생성기(360)를 제어한다. 랜덤 데이터 생성기(360)는 컨트롤 로직(340)의 제어에 응답하여 랜덤 데이터를 생성하고, 생성된 랜덤 데이터를 데이터 입출력 회로(320)에 전송한다.
S424 단계에서, 랜덤 데이터를 메모리 셀 어레이(310)의 메모리 셀들에 덮어쓰는 동작이 수행된다.
도 16, 도 17a 및 도 17b를 참조하여 설명된 바와 같이, 랜덤 데이터를 이용하여 덮어쓰기 동작을 수행함으로써, 본 발명의 실시 예에 따른 불휘발성 메인 메모리는 보안 데이터의 유출을 방지할 수 있다.
Ⅴ. 데이터에 따른 파티션 기능을 지원하는 불휘발성 메인 메모리
이하에서는 앞서 설명된 도 1 내지 도 3을 참조하여, 메모리 셀 어레이(310)의 구성의 실시 예가 설명된다.
도 18은 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 메모리 셀 어레이의 구성을 보여주는 도면이다. 구체적으로, 도 18에서는 메모리 셀 어레이(310)가 부팅 정보 영역(booting information area) 및 노멀 영역(normal area)으로 구분되는 경우의 실시 예가 예시적으로 설명된다.
도 18을 참조하면, 메모리 셀 어레이(310)는 부팅 정보 영역(310_1)과 노멀 영역(310_2)을 포함한다.
부팅 정보 영역(310_1)은 메모리 시스템(10, 10_1)을 부팅하는데 필요한 정보(이하, 부팅 정보)를 저장하는데 사용된다. 예를 들어, 부팅 정보 영역(310_1)은 메모리 시스템의 부팅에 필요한 오에스 이미지(OS image) 정보를 저장하는데 사용될 수 있다.
노멀 영역(310_2)은 메모리 시스템(10, 10_1)에 대한 메인 메모리로 동작한다. 예를 들어, 노멀 영역(310_2)은 메모리 컨트롤러(200)(또는 중앙 처리 장치(100))에서 실행 중인 프로그램에 관련된 데이터를 저장할 수 있다. 다른 예로, 노멀 영역(310_2)은 컨트롤러(100)에서 실행 중인 프로그램이 참조하는 데이터를 저장할 수 있다. 다른 예로, 노멀 영역(310_2)은 호스트(미도시)로부터 수신된 쓰기 데이터를 저장하거나, 스토리지 디바이스(500, 800)에서 독출된 데이터를 저장할 수 있다.
본 발명의 기술적 사상에 따른 메모리 시스템(10, 10_1)은 부팅 정보를 불휘발성 메인 메모리(300, 300_1)의 부팅 정보 영역(310_1)에 저장한다. 부팅 정보를 불휘발성 메인 메모리(300, 300_1)의 부팅 정보 영역(310_1)에 저장함으로써, 메모리 시스템(10, 10_1)은 빠른 부팅 동작을 수행할 수 있다.
좀더 구체적으로 설명하면, 일반적으로 휘발성 메모리를 메인 메모리로 사용하는 메모리 시스템에서는 파워 오프 후 메인 메모리의 모든 데이터가 사라진다. 따라서 다시 메모리 시스템을 가동하기 위해서는, 스토리지 디바이스로부터 OS image등 부팅에 필요한 정보가 다시 메인 메모리로 로딩되어야 한다. 따라서, 부팅 동작이 수행되는 시간이 길어지고, 부팅시간은 메모리 시스템의 중요한 성능지수가 되고 있다.
이에 반하여, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 부팅 정보를 불휘발성 메인 메모리(300, 300_1)의 부팅 정보 영역(310_1)에 저장하고. 파워 오프시에 노말 영역(310_2)에 저장된 데이터는 무효화(리셋)을 진행하고, 부팅 정보 영역(310_1)에 저장된 부팅 정보는 무효화(리셋)하지 않는다. 따라서 메모리 시스템(10, 10_1)이 재부팅될때는 부팅 정보 영역(310_1)에 저장된 부팅 정보를 그대로 이용하여 부팅 동작을 수행한다. 따라서, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 부팅 동작을 빠르게 수행할 수 있다.
또한, 본 발명의 기술적 사상에 따른 메모리 시스템(10)은 파워 오프 시에 부팅 정보 영역(310_1)에 저장된 데이터에 대하여는 무효화 동작을 수행하지 않는다. 즉, 메모리 시스템(10)은 파워 오프 시에 노멀 영역(310_2)에 저장된 데이터에 대하여만 무효화 동작을 수행한다.
도 19는 본 발명의 일 실시 예에 따른 불휘발성 메인 메모리의 메모리 셀 어레이의 구성을 보여주는 도면이다. 구체적으로, 도 19에서는 메모리 셀 어레이(310)가 보안 영역(security area, 310_3)과 비보안 영역(non-security area)으로 구분되는 경우의 실시 예가 예시적으로 설명된다.
도 19의 불휘발성 메인 메모리는 도 3의 불휘발성 메인 메모리(300, 300_1)와 유사하다. 따라서, 유사한 구성은 유사한 참조 번호를 사용하여 설명되며, 중첩되는 설명은 이하 생략된다. 도 19를 참조하면, 메모리 셀 어레이(310)는 보안 영역(310_3)과 비보안 영역(310_4)을 포함한다.
보안 영역(310_3)은 보안이 필요한 데이터(이하, 보안 데이터)를 저장하는데 사용된다. 예를 들어, 보안 영역(310_3)에는 사용자에 의하여 지정된 보안 데이터가 저장되거나, 미리 정해진 형식의 파일 확장자(file exetension)를 갖는 보안 데이터가 저장될 수 있다.
좀더 자세히 설명하면, 사용자는 작업 중인 파일을 보안 데이터로 설정할 수 있다. 예를 들어, 사용자는 작업 중인 파일이 보안 데이터로 저장되도록 요청함으로써, 작업 중인 데이터를 보안 데이터로 설정할 수 있다. 이 경우, 보안 데이터로 설정된 파일은 메모리 셀 어레이(310)의 보안 영역(310_3)에서 편집될 것이다.
다른 예로, 소정 형식의 파일 확장자(file exetension)를 갖는 데이터는 보안 데이터로 설정될 수 있다. 예를 들어, 이 경우, 보안 데이터에 대응하는 파일 확장자는 미리 정해질 수 있다. 예를 들어, 부팅 동작 시에, 보안 데이터에 대응하는 파일 확장자가 설정될 수 있다.
비보안 영역(310_4)은 보안이 필요하지 않은 데이터(이하, 비보안 데이터)를 저장하는데 사용된다. 예를 들어, 비보안 데이터는 사용자에 의하여 특별히 지정되지 않은 데이터일 수 있다. 다른 예로, 비보안 데이터는 보안 데이터와 유사하게 소정 형식의 파일 확장자를 갖는 데이터일 수 있다. 다른 예로, 비보안 데이터는 사용자에 의하여 지정된 데이터일 수도 있다.
본 발명의 기술적 사상에 따른 메모리 시스템(10)은 파워 오프 시에 보안 영역(310_3)에 저장된 보안 데이터에 대하여만 무효화 동작을 수행한다. 즉, 메모리 시스템(10, 10_1)은 비보안 영역(310_4)에 저장된 비보안 데이터에 대하여는 무효화 동작을 수행하지 않는다.
불휘발성 메인 메모리(300, 300_1)를 보안 영역(310_3)과 비보안 영역(310_4)으로 구분하고, 보안 영역(310_3)에 대해서 무효화 동작을 수행함으로써, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 보안 데이터의 유출을 방지할 수 있다. 또한, 비보안 데이터에 대해서는 무효화 동작을 수행하지 않음으로써, 비보안 데이터를 무효화하는데 소요되는 파워를 절감할 수 있다.
도 20은 도 18 및 도 19에서 설명된 불휘발성 메인 메모리의 동작을 설명하기 위한 순서도이다.
S510 단계에서, 메모리 시스템(10, 10_1)이 파워 온(power on) 된다. 이 경우, 메모리 시스템(10)에 대한 부팅 동작이 수행된다.
S520 단계에서, 파티션 동작이 수행된다. 즉, 부팅 동작이 수행될 때, 불휘발성 메인 메모리(121)를 파티션 하는 동작이 수행된다. 파티션 동작은, 예를 들어, 불휘발성 메모리의 메모리 셀 어레이를 구성하는 뱅크 또는 블록 단위로 수행될 수 있다. 또한, 파티션 동작은 메모리 컨트롤러(200)의 모드 셋팅 동작에 의해 레지스터(341)에 파티션 정보를 세팅함으로써 구현될 수 있다.
도 18에서 설명된 바와 같이, 불휘발성 메인 메모리(121)는 부팅 정보 영역(310_1)과 노멀 영역(310_2)으로 파티션 될 수 있다. 다른 예로, 도 19에서 설명된 바와 같이, 불휘발성 메인 메모리(121)는 보안 영역(310_3)과 비보안 영역(310_4)으로 파티션 될 수 있다. 다른 예로, 불휘발성 메인 메모리(121)는 부팅 정보 영역(310_1), 보안 영역(310_3), 비보안 영역(310_4)으로 파티션 될 수도 있다.
S530 단계에서, CPU(100, 100_1)로부터 파워 오프 신호(POS)가 메모리 컨트롤러(200, 200_1)에 전송된다.
S540 단계에서, 리셋 컨트롤 유닛(210, 210_1, 100_1)은 파워 오프 신호(POS)에 응답하여, 리셋 명령(RS_CMD)을 불휘발성 메인 메모리(300, 300_1)에 전송한다.
S550 단계에서, 파티션된 영역 중 리셋이 필요한 영역에 대한 무효화 동작이 수행된다. 예를 들어, 도 18에서 설명된 바와 같이, 부팅 정보 영역(310_1)을 제외한 노멀 영역(310_2)에 대한 무효화 동작이 수행된다. 다른 예로, 도 19에서 설명된 바와 같이, 비보안 영역(310_4)을 제외한 보안 영역(310_3)에 대한 무효화 동작이 수행된다.
한편, 도 13b, 도 15b, 도 17b에서 설명된 바와 유사하게, 본 발명의 기술적 사상에 불휘발성 메인 메모리는 자체적으로 전원 전압(VDD)의 전압 레벨을 감지할 수도 있다. 이 경우, 전원 전압 감지기(350)가 전원 전압(VDD)의 전압 레벨을 감지하고, 전압 감소 신호(VDS)를 컨트롤 로직(340)에 전송하는 것으로 S530 단계 및 S540 단계가 대체될 수 있다. 이 경우, S510 단계, S520 단계, S540 단계, S550 단계는 동일한 방식으로 수해될 것이다.
도 18 내지 도 20을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 불휘발성 메인 메모리(300, 300_1)를 파티션 하는 기능을 지원한다. 불휘발성 메인 메모리(300, 300_1)를 파티션 하고, 노멀 영역 또는 보안이 필요한 영역에 대하여만 무효화 동작을 수행함으로써, 본 발명의 실시 예에 따른 메모리 시스템(10, 10_1)은 보안 데이터의 유출을 방지함과 동시에 무효화 동작에 소모되는 파워를 절감할 수 있다.
한편, 상술한 설명은 예시적인 것으로 이해되어야 하며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 이하에서는, 본 발명의 기술적 사상에 따른 다양한 실시 예들이 좀더 설명될 것이다.
Ⅵ. 수퍼 커패시터를 포함하는 컨트롤러
도 21은 본 발명의 일 실시 예에 따른 메모리 시스템(10_2)의 구조를 보여주는 블록도이다. 도 21의 메모리 시스템(10_2)은 도 1의 메모리 시스템(10)과 유사하다. 따라서, 동일 또는 유사한 구성요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략할 설명을 위하여, 중첩되는 설명은 이하에서 생략된다.
도 21의 메모리 시스템(10_2)은 도 1의 메모리 시스템(10)에 비하여 수퍼 커패시터(900)를 더 포함한다. 수퍼 커패시터(900)는 외부로부터 전원의 공급이 중단된 경우에, 불휘발성 메인 메모리의 무효화 동작에 소모되는 파워를 공급하는데 사용된다.
예를 들어, 서든 파워 오프(SPO)가 발생하는 경우, 무효화 동작이 수행되기 전에 외부로부터 파워의 공급이 중단될 수 있다. 이 경우, 본 발명의 실시 예에 따른 메모리 시스템(10_2)은 수퍼 커패시터(900)에 저장된 파워를 이용하여 불휘발성 메인 메모리(300, 300_1)에 대한 무효화 동작을 수행할 수 있다.
도 21에서 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 수퍼 커패시터를 구비함으로써, 불휘발성 메모리에 대한 무효화 동작을 안정적으로 수행할 수 있다.
Ⅶ. 파워 감지 유닛을 포함하는 컨트롤러
도 22는 본 발명의 일 실시 예에 따른 메모리 시스템(10_3)의 구조를 보여주는 블록도이다. 도 22의 메모리 시스템(10_3)은 도 2 및 도 21의 메모리 시스템(10_2, 10_3)과 유사하다. 따라서, 동일 또는 유사한 구성요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략할 설명을 위하여, 중첩되는 설명은 이하에서 생략된다.
도 22를 참조하면, 메모리 시스템(10_3)은 파워 감지 유닛(210_2)을 더 포함하는 것을 제외하면, 도 2 및 도 21의 메모리 시스템(10_1, 10_2)과 유사하다.
파워 감지 유닛(210_2)은 실시 간으로 또는 소정 간격으로 외부로부터의 전원 공급 중지 여부를 감지하고, 전원의 중단이 감지된 경우 리셋 컨트롤 유닛(210, 210_1)에 파워의 중단을 알리는 신호(즉, 파워 오프 신호(POS))를 전송한다.
이 경우, 리셋 컨트롤 유닛(210, 210_1)은 파워 감지 유닛(210_2)으로부터 전송된 파워 오프 신호(POS)에 응답하여, 리셋 명령을 불휘발성 메인 메모리(300, 300_1)에 전송한다. 불휘발성 메인 메모리(300, 300_1)는 리셋 명령에 응답하여 무효화 동작을 수행한다. 따라서, 본 발명의 실시 예에 따른 메모리 시스템(10_3)는 서든 파워 오프(SPO)가 발생한 경우에도, 안정적으로 무효화 동작을 수행할 수 있다.
예시적으로, 파워 오프 신호(POS)는 외부로부터 수신될 수 있고, 자체적으로 생성될 수도 있다. 파워 오프 신호(POS)를 생성하는 주체는 한정되지 않는다.
Ⅷ. 복수의 메모리 칩들을 포함하는 불휘발성 메인 메모리
도 23 내지 도 26은 본 발명의 실시 예에 따른 메모리 시스템들(10_4~10_7)의 구조를 보여주는 블록도이다. 구체적으로, 도 23 내지 도 26의 메모리 시스템들(10_4~10_7)은 불휘발성 메인 메모리가 메모리 모듈로써 구현되는 경우의 실시 예들을 보여준다.
도 23 내지 도 26의 메모리 시스템들(10_4~10_7)은 앞서 설명된 메모리 시스템들과 유사하다. 따라서, 동일 또는 유사한 구성요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략할 설명을 위하여, 중첩되는 설명은 이하에서 생략된다.
먼저, 도 23의 메모리 시스템(10_4)은 불휘발성 메인 메모리 대신에, 불휘발성 메인 메모리 모듈(300_2)을 포함한다. 불휘발성 메인 메모리 모듈(300_2)은 복수의 메모리 칩들(300_2a~300_2n)을 포함한다. 예시적으로, 도 23에서는, 불휘발성 메인 메모리 모듈(300_2)의 메모리 칩들(300_2a~300_2n)은 MRAM으로 구현되는 것으로 가정된다.
본 발명의 실시 예에 있어서, 메모리 시스템(10_4)은 파워 오프 시에 불휘발성 메인 메모리 모듈(300_2)의 복수의 메모리 칩들(300_2a~300_2n)에 대한 무효화 동작을 수행할 수 있다. 따라서, 보안 데이터의 유출이 방지될 수 있다.
한편, 불휘발성 메인 메모리 모듈(300_2)의 복수의 메모리 칩들은 병렬적(parallel)으로 쓰기 동작을 수행할 수 있다. 따라서, 복수의 메모리 칩들 모두에 대한 무효화 동작을 위해서는 큰 파워가 필요할 수 있다.
파워 소모를 절감하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(10_4)은 불휘발성 메인 메모리 모듈(300_2)의 메모리 칩들(300_2a~300_2n) 중 소정 메모리 칩만에 대하여만 무효화 동작을 수행할 수 있다. 따라서, 메모리 시스템(10_4)은 무효화 동작에 소모되는 파워를 절감할 수 있다. 이 경우, 파워 오프 시의 무효화 동작이 수행될 소정 메모리 칩의 결정은 메모리 컨트롤러의 모드 셋팅에 의해 결정될 수 있다. 이는 도 19에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
한편, 본 발명의 다른 실시 예에 있어서, 메모리 시스템(10_4)은 불휘발성 메인 메모리 모듈(300_2)의 메모리 칩들(300_2a~300_2n) 중 소정 메모리 칩에 부팅 정보를 저장할 수 있다. 이 경우, 메모리 시스템(10_4)는 부팅 정보가 저장된 메모리 칩에 대하여는 무효화 동작을 수행하지 않는다. 또한, 메모리 시스템(10_4)는 불휘발성 메인 메모리 모듈(300_2)의 소정 메모리 칩에 저장된 부팅 정보를 이용하여 부팅 동작을 수행함으로써, 부팅 동작을 빠르게 수행할 수 있다. 이는 도 18에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
계속해서 도 24를 참조하면, 도 24의 메모리 시스템(10_5)은 도 23의 메모리 시스템(10_4)에 비하여 수퍼 커패시터(900)를 더 포함한다. 수퍼 커패시터(900)는 불휘발성 메인 메모리 모듈(300_2) 내에 구현되며, 파워 오프 시에 불휘발성 메인 메모리 모듈(300_2)에 무효화 동작을 위한 파워를 공급한다. 수퍼 커패시터(900)를 구비함으로써, 도 24의 메모리 시스템(10_5)은 무효화 동작을 좀더 안정적으로 수행할 수 있다. 이는 도 21에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
한편, 도 24에서, 수퍼 커패시터(900)는 불휘발성 메인 메모리 모듈(300_2) 내에 구현된다. 다만, 이는 예시적인 것으로 이해되어야 하며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 도 25에 도시된 바와 같이, 메모리 메모리 시스템(10_6)은 수퍼 커패시터(900)를 구비하며, 수퍼 커패시터(900)는 불휘발성 메인 메모리 모듈(300_2)의 외부에 위치할 수 있다.
계속해서 도 26을 참조하면, 도 26의 메모리 시스템(10_7)은 도 25의 메모리 시스템(10_6)에 비하여 파워 감지 유닛(220)을 더 포함할 수 있다. 파워 감지 유닛(220)은 외부로부터 전원의 공급이 중단되는지의 여부를 실시간으로 또는 소정 시간 간격으로 감지한다.
도 23 내지 도 26을 참조하여 설명된 바와 같이, 본 발명의 실시 예에 따른 메모리 시스템은 메인 메모리를 복수의 불휘발성 메모리 칩들을 포함하는 메모리 모듈로써 구현할 수 있으며, 메모리 모듈에 저장된 보안 데이터의 유출을 방지할 수 있다.
Ⅸ. 불휘발성 메모리와 휘발성 메모리를 포함하는 하이브리드 메인 메모리
도 27은 본 발명의 일 실시 예에 따른 메모리 시스템(10_8)을 보여주는 도면이다. 도 27의 메모리 시스템(10_8)은 도 1의 메모리 시스템(10)과 유사하다. 따라서, 동일 또는 유사한 구성 요소는 동일 또는 유사한 참조 번호를 사용하여 설명된다. 또한, 간략한 설명을 위하여, 중첩되는 설명은 이하 생략된다.
도 27을 참조하면, 도 27의 메모리 메모리 시스템(10_8)는 도 1의 불휘발성 메인 메모리(300)를 대신하여, 하이브리드 메인 메모리(300_3)를 포함한다.
하이브리드 메인 메모리(300_3)는 휘발성 메모리 및 불휘발성 메모리를 포함한다. 설명의 편의상, 도 27에서, 하이브리드 메인 메모리(300_3)는 DRAM과 MRAM을 포함하는 것으로 가정된다. 다만, 이는 예시적인 것이며, 본 발명의 기술적 사상은 이에 한정되지 않음이 이해될 것이다.
파워 오프 신호(POS)가 전송된 경우, 리셋 컨트롤 유닛(210)은 하이브리드 메인 메모리(300_3)의 MRAM(300_3b)에 대한 무효화 동작을 수행한다. 예를 들어, MRAM(300_3b)에 보안 데이터가 저장된 경우, MRAM(300_3b)에 대한 무효화 동작을 수행함으로써, 보안 데이터의 유출이 방지될 수 있다.
한편, 본 발명의 기술적 사상은 이에 한정되지 않는다. 예를 들어, 보안 데이터는 DRAM(300_3a)에 저장되고 비보안 데이터는 MRAM(300_3b)에 저장될 수 있다. 또한, 본 발명의 다른 실시 예에 있어서, 부팅 정보는 MRAM(300_3b)에 저장될 수 있다. 이 경우, 본 발명의 실시 예에 따른 메모리 시스템은 MRAM(300_3b)에 대한 무효화 동작을 수행하지 않을 수도 있다.
한편, MRAM(300_3b)과 DRAM(300_3a)은 모두 DRAM 인터페이스 방식을 이용하여 메모리 컨트롤러(130)와 데이터 전송을 수행할 수 있다.
지금까지 본 발명의 기술적 사상이 적용된 불휘발성 메모리 및 다양한 메모리 시스템들을 예시를 들어 설명하였다. 본 발명의 기술적 사상이 적용된 메모리 시스템은 예를 들어, 불휘발성 메모리를 메인 메모리로 사용하는 컴퓨터 시스템, 불휘발성 메모리를 불휘발성 메모리 스토리지 디바이스의 버퍼 메모리로 사용하는 솔리드 스테이트 저장장치, 불휘발성 메모리를 하드디스크 드라이버의 버퍼 메모리로 사용하는 하드디스크 저장장치, 또는 불휘발성 메모리를 메모리 컨트롤러에 임베디드 형태로 사용하는 메모리 카드일 수 있다.
상술한 실시 예들에서, 파워 오프를 감지하여 데이터를 무효화하는 구성이 설명되었다. 그러나, 본 발명의 기술적 사상은 상술된 실시 예들에 한정되지 않는다. 예를 들어, 본 발명의 기술적 사상은 파워 오프가 아닌 파워 온 시에 데이터를 무효화하는 구성으로 적용 및 응용될 수 있다. 이를 위해, 도 3의 불휘발성 메인 메모리(300)의 전압 검출기(350)는 파워 온 시에 전원 전압 변화를 감지하여 전압 상승 신호(VIS)를 발생할 수 있다. 이에 응답하여, 컨트롤 로직(340)은 데이터의 무효화를 수행하도록 불휘발성 메모리(300)를 제어할 수 있다. 또한, 본 발명의 실시 예에 따른 메모리 시스템은 파워 오프 시에 생성하는 신호(POS)를 파워 온 시에도 생성할 수 있다. 이에 응답하여, 메모리 컨트롤러는 리셋 커맨드를 불휘발성 메모리에 출력할 수 있다. 출력된 커맨드에 응답하여, 불휘발성 메모리는 데이터를 무효화할 수 있다. 즉, 본 발명의 기술적 사상은 파워 오프 또는 파워 온 시에 데이터를 무효화하는 구성으로 적용 및 응용될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
POS: 파워 오프 신호 (power off signal)
RS_CMD: 리셋 커맨드
ADDR: 어드레스
CMD: 명령
IPOS: 내부 파워 오프 신호
VDS: 전압 감소 신호
RS_CMD: 리셋 커맨드
ADDR: 어드레스
CMD: 명령
IPOS: 내부 파워 오프 신호
VDS: 전압 감소 신호
Claims (30)
- 복수의 불휘발성 메모리 셀들을 포함하는 메모리 셀 어레이;
복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더;
복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로;
전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고
상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함하는 불휘발성 메모리. - 제 1 항에 있어서,
상기 전원 전압 검출기는 상기 전원 전압이 일정 레벨 이하로 낮아지는 것을 감지하여 상기 전압 변화 신호를 출력하도록 구성되는 불휘발성 메모리. - 제 1 항에 있어서,
상기 컨트롤 로직은 상기 메모리 셀 어레이의 불휘발성 메모리 셀들에 데이터 "1" 또는 데이터 "0"을 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어함으로서 상기 데이터를 무효화하도록 구성되는 불휘발성 메모리. - 제 3 항에 있어서,
상기 컨트롤 로직은 상기 불휘발성 메모리 셀에 데이터 "0" 또는 데이터 "1" 중 파워 소모가 적게 소모되는 데이터를 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 불휘발성 메모리. - 제 3 항에 있어서,
외부 장치에 의해 설정되는 레지스터를 더 포함하고,
상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 전압 변화 신호에 응답하여 상기 데이터를 무효화할 지의 여부를 판별하고, 그리고 상기 판별 결과에 따라 상기 데이터의 무효화를 선택적으로 수행하도록 구성되는 불휘발성 메모리. - 제 5 항에 있어서,
상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 데이터의 무효화가 수행될 때 데이터 "0" 또는 데이터 "1" 중 어느 데이터를 상기 불휘발성 메모리 셀들에 덮어쓸지를 판별하고, 상기 판별된 데이터를 이용하여 덮어쓰기를 수행하도록 구성되는 불휘발성 메모리. - 제 3 항에 있어서,
상기 컨트롤 로직의 제어에 응답하여 랜덤 데이터를 생성하는 랜덤 데이터 생성기를 더 포함하며,
상기 컨트롤 로직은 상기 랜덤 데이터 생성기에서 생성된 랜덤 데이터를 상기 복수의 불휘발성 메모리 셀들에 덮어쓰도록 상기 디코더 및 데이터 입출력 회로를 제어하는 불휘발성 메모리. - 제 1 항에 있어서,
상기 메모리 셀 어레이는 서로 다른 특성의 데이터를 저장하는 적어도 두 개의 영역들을 포함하며,
상기 전압 변화 신호에 응답하여, 상기 적어도 두 개의 영역들에 저장된 데이터는 선택적으로 무효화되는 불휘발성 메모리. - 제 8 항에 있어서,
외부 장치에 의해 설정되는 레지스터를 더 포함하고,
상기 컨트롤 로직은 상기 레지스터에 설정된 정보에 따라 상기 적어도 두 개의 영역들 중 무효화가 수행되는 영역 및 무효화가 수행되지 않는 영역을 판별하도록 구성되는 불휘발성 메모리. - 제 1 항에 있어서,
상기 메모리 셀 어레이는
부팅 정보를 저장하는 부팅 정보 영역; 및
사용자 데이터를 저장하는 노멀 영역을 포함하며,
상기 전압 변화 신호에 응답하여, 상기 부팅 정보 영역에 저장된 부팅 정보는 무효화 되지 않는 불휘발성 메모리. - 제 1 항에 있어서,
상기 메모리 셀 어레이는
보안 데이터를 저장하는 보안 영역; 및
비보안 데이터를 저장하는 비보안 영역을 포함하며,
상기 전압 변화 신호에 응답하여, 상기 보안 영역에 저장된 상기 보안 데이터는 무효화 되고, 상기 비보안 영역에 저장된 상기 비보안 데이터는 무효화 되지 않는 불휘발성 메모리. - 제 1 항에 있어서,
파워 오프 시에 파워를 공급하는 수퍼 커패시터를 더 포함하며,
파워 오프 시에, 상기 컨트롤 로직은 상기 수퍼 커패시터로부터 제공된 파워를 이용하여, 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 구성되는 불휘발성 메모리. - 제 1 항에 있어서,
상기 컨트롤 로직은 외부로부터 수신되는 리셋 커맨드에 응답하여, 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 구성되는 불휘발성 메모리. - 삭제
- 삭제
- 불휘발성 메모리; 그리고
상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고,
상기 불휘발성 메모리는
복수의 불휘발성메모리 셀들을 포함하는 메모리 셀 어레이;
복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더;
복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로;
전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고
상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함하는 메모리 시스템. - 복수의 불휘발성 메모리 칩들을 포함하는 불휘발성 메모리; 그리고
상기 불휘발성 메모리를 제어하도록 구성되는 메모리 컨트롤러를 포함하고,
상기 메모리 컨트롤러는 전원 전압의 변화를 감지하여 상기 복수의 불휘발성 메모리 칩들 중 미리 정해진 적어도 하나의 불휘발성 메모리 칩에 대한 무효화 동작이 수행되도록 상기 불휘발성 메모리를 제어하는 메모리 시스템. - 삭제
- 삭제
- 제 17 항에 있어서,
상기 불휘발성 메모리의 외부에 위치하며, 상기 불휘발성 메모리에 파워를 공급하는 수퍼 커패시터를 더 포함하며,
파워 오프 시에, 상기 복수의 불휘발성 메모리 칩들 중 상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 상기 수퍼 커패시터로부터 제공되는 파워를 이용하여 저장된 데이터에 대한 무효화 동작을 수행하는 메모리 시스템. - 제 17 항에 있어서,
상기 미리 정해진 적어도 하나의 불휘발성 메모리 칩은 전원 전압이 일정 레벨 이하로 낮아지는 것을 감지하고, 상기 감지 결과에 따라 저장된 데이터에 대한 무효화 동작을 수행하는 메모리 시스템. - 삭제
- 복수의 불휘발성 메모리 셀들을 포함하는 불휘발성 메모리의 동작 방법에 있어서:
전원 전압의 변화를 감지하는 단계; 그리고
상기 감지에 응답하여, 상기 복수의 불휘발성 메모리 셀들에 저장된 데이터를 무효화하는 단계를 포함하는 동작 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 제 23 항에 있어서,
상기 무효화하는 단계는 모드 레지스터에 저장된 데이터에 따라 선택적으로 수행되는 동작 방법. - 불휘발성 메인 메모리;
상기 불휘발성 메인 메모리를 제어하도록 구성되는 메모리 컨트롤러; 그리고
상기 메모리 컨트롤러를 통해 상기 불휘발성 메인 메모리를 액세스하고, 상기 불휘발성 메인 메모리를 동작 메모리로 사용하도록 구성되는 중앙 처리 장치를 포함하고,
상기 불휘발성 메인 메모리는,
복수의 불휘발성 메모리 셀들을 포함하는 메모리 셀 어레이;
복수의 워드 라인들을 통해 상기 메모리 셀 어레이에 연결되는 디코더;
복수의 비트 라인들을 통해 상기 메모리 셀 어레이에 연결되는 데이터 입출력 회로;
전원 전압의 변화를 감지하여 전압 변화 신호를 출력하는 전원 전압 검출기; 그리고
상기 전압 변화 신호에 응답하여 상기 메모리 셀 어레이에 저장된 데이터를 무효화하도록 상기 디코더 및 데이터 입출력 회로를 제어하도록 구성되는 컨트롤 로직을 포함하는 컴퓨팅 시스템.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120118017A KR102031661B1 (ko) | 2012-10-23 | 2012-10-23 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
NL2011662A NL2011662B1 (en) | 2012-10-23 | 2013-10-22 | Data storage device, controller, and operating method of data storage device. |
TW102137989A TWI611407B (zh) | 2012-10-23 | 2013-10-22 | 非揮發性記憶體、記憶體系統、電腦系統,以及非揮發性記憶體的操作方法 |
US14/059,852 US9153332B2 (en) | 2012-10-23 | 2013-10-22 | Data storage device, controller, and operating method of data storage device |
CN201310502766.5A CN103778959B (zh) | 2012-10-23 | 2013-10-23 | 数据存储设备、控制器以及数据存储设备的操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120118017A KR102031661B1 (ko) | 2012-10-23 | 2012-10-23 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140051685A KR20140051685A (ko) | 2014-05-02 |
KR102031661B1 true KR102031661B1 (ko) | 2019-10-14 |
Family
ID=50485192
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120118017A KR102031661B1 (ko) | 2012-10-23 | 2012-10-23 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9153332B2 (ko) |
KR (1) | KR102031661B1 (ko) |
CN (1) | CN103778959B (ko) |
NL (1) | NL2011662B1 (ko) |
TW (1) | TWI611407B (ko) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150025782A (ko) * | 2013-08-30 | 2015-03-11 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 컴퓨터 시스템 |
US9406368B2 (en) | 2014-01-21 | 2016-08-02 | International Business Machines Corporation | Dynamic temperature adjustments in spin transfer torque magnetoresistive random-access memory (STT-MRAM) |
US9418721B2 (en) * | 2014-01-21 | 2016-08-16 | International Business Machines Corporation | Determining and storing bit error rate relationships in spin transfer torque magnetoresistive random-access memory (STT-MRAM) |
KR20150090418A (ko) * | 2014-01-29 | 2015-08-06 | 에스케이하이닉스 주식회사 | 최소 동작 전원을 사용하는 시스템 및 메모리의 전원전압 설정 방법 |
KR20160043711A (ko) | 2014-10-14 | 2016-04-22 | 에스케이하이닉스 주식회사 | 리페어 회로 및 이를 포함하는 반도체 메모리 장치 |
CN104716954A (zh) * | 2015-03-17 | 2015-06-17 | 广东高云半导体科技股份有限公司 | 带有片上用户非易失性存储器的可编程逻辑器件 |
CN105632534A (zh) * | 2015-03-24 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种混合使用dram和mram的固态硬盘 |
KR102280433B1 (ko) * | 2015-09-23 | 2021-07-22 | 삼성전자주식회사 | 전력 공급 회로 및 이를 포함하는 저장 장치 |
CN105550127A (zh) * | 2015-12-08 | 2016-05-04 | 中电海康集团有限公司 | 一种基于stt-mram的读写缓存分离的ssd控制器 |
KR102385552B1 (ko) * | 2015-12-29 | 2022-04-12 | 삼성전자주식회사 | 시스템-온-칩 및 이를 포함하는 전자 장치 |
KR102353058B1 (ko) * | 2016-02-02 | 2022-01-20 | 삼성전자주식회사 | 시스템 온 칩 및 그것의 동작 방법 |
US9747982B1 (en) * | 2016-02-22 | 2017-08-29 | Arm Ltd. | Device and method for generating random numbers |
JP2018032256A (ja) | 2016-08-25 | 2018-03-01 | 東芝メモリ株式会社 | メモリシステムおよびプロセッサシステム |
KR102680421B1 (ko) * | 2016-08-29 | 2024-07-03 | 삼성전자주식회사 | 불휘발성 메모리 및 불휘발성 메모리 시스템 |
KR20180094386A (ko) * | 2017-02-15 | 2018-08-23 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20180095765A (ko) * | 2017-02-17 | 2018-08-28 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10418082B2 (en) | 2017-10-03 | 2019-09-17 | Kuwait University | Minimizing two-step and hard state transitions in multi-level STT-MRAM devices |
KR102542286B1 (ko) | 2018-02-21 | 2023-06-13 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR102565913B1 (ko) * | 2018-06-12 | 2023-08-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR102387960B1 (ko) * | 2018-07-23 | 2022-04-19 | 삼성전자주식회사 | 컨트롤러 및 그것의 동작 방법 |
KR102553264B1 (ko) | 2018-09-03 | 2023-07-07 | 삼성전자 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
KR102651128B1 (ko) | 2018-12-11 | 2024-03-26 | 삼성전자주식회사 | 데이터 비교 기록을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR20200099825A (ko) * | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN109920462B (zh) * | 2019-03-01 | 2021-01-22 | 中国科学院微电子研究所 | 一种数据写入控制电路和控制方法 |
KR102144124B1 (ko) * | 2019-04-22 | 2020-08-13 | 고려대학교 산학협력단 | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 |
KR20210038189A (ko) * | 2019-09-30 | 2021-04-07 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN111309643B (zh) * | 2020-02-12 | 2021-05-18 | 合肥康芯威存储技术有限公司 | 一种数据存储装置及其控制方法与数据存储装置系统 |
WO2021253254A1 (zh) * | 2020-06-17 | 2021-12-23 | 深圳市欢太科技有限公司 | 芯片、芯片封装结构以及电子设备 |
US11704061B2 (en) * | 2021-03-16 | 2023-07-18 | Kioxia Corporation | Page buffer enhancements |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629047B1 (en) | 2000-03-30 | 2003-09-30 | Intel Corporation | Method and apparatus for flash voltage detection and lockout |
KR100463201B1 (ko) * | 2002-05-28 | 2004-12-23 | 삼성전자주식회사 | 파워 검출 회로, 이를 이용한 플래시 메모리 장치, 그 플래시 메모리 장치의 파워-온 독출 신호 발생 방법 및 플래시 메모리 장치의 안정적인 파워-온 독출 방법 |
KR100527571B1 (ko) | 2002-08-30 | 2005-11-09 | 주식회사 하이닉스반도체 | 불휘발성 메모리 칩의 저전압 감지 수단 및 감지 방법,그리고 그 감지 수단을 이용하는 저전압 감지 시스템 |
JP2006127648A (ja) | 2004-10-29 | 2006-05-18 | Sharp Corp | 不揮発性記憶装置及び電子機器 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960000837B1 (ko) * | 1992-12-02 | 1996-01-13 | 삼성전자주식회사 | 반도체 메모리장치 |
KR20010081556A (ko) * | 2000-02-16 | 2001-08-29 | 구자홍 | 가스압력 조정기 |
JP4173297B2 (ja) * | 2001-09-13 | 2008-10-29 | 株式会社ルネサステクノロジ | メモリカード |
US6522577B1 (en) | 2002-06-05 | 2003-02-18 | Micron Technology, Inc. | System and method for enabling chip level erasing and writing for magnetic random access memory devices |
JP4133166B2 (ja) * | 2002-09-25 | 2008-08-13 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
US7152942B2 (en) * | 2002-12-02 | 2006-12-26 | Silverbrook Research Pty Ltd | Fixative compensation |
US7224634B2 (en) | 2002-12-18 | 2007-05-29 | Nxp B.V. | Hardware security device for magnetic memory cells |
US7712147B2 (en) | 2002-12-18 | 2010-05-04 | Nxp B.V. | Method and device for protection of an mram device against tampering |
US6807084B1 (en) * | 2003-04-17 | 2004-10-19 | Infineon Technologies Ag | FeRAM memory device |
US7362644B2 (en) | 2005-12-20 | 2008-04-22 | Magic Technologies, Inc. | Configurable MRAM and method of configuration |
JP4929783B2 (ja) * | 2006-03-27 | 2012-05-09 | 富士通株式会社 | 電源監視装置 |
US7747926B2 (en) * | 2006-05-02 | 2010-06-29 | Everspin Technologies, Inc. | Methods and apparatus for a memory device with self-healing reference bits |
US7567098B2 (en) * | 2006-08-31 | 2009-07-28 | Atmel Corporation | Multi-threshold reset circuit |
JP4986651B2 (ja) * | 2007-02-16 | 2012-07-25 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7570532B1 (en) * | 2007-07-26 | 2009-08-04 | Zilog, Inc. | Overwriting memory cells using low instantaneous current |
US7596045B2 (en) | 2007-10-31 | 2009-09-29 | International Business Machines Corporation | Design structure for initializing reference cells of a toggle switched MRAM device |
KR20100097456A (ko) * | 2009-02-26 | 2010-09-03 | 삼성전자주식회사 | 메모리 시스템 및 그것의 플래시 변화 계층의 주소 할당 방법 |
EP2270708A1 (en) * | 2009-06-29 | 2011-01-05 | Thomson Licensing | Data security in solid state memory |
CN102236611B (zh) * | 2010-05-06 | 2013-11-06 | 新汉电脑股份有限公司 | 计算机存储装置的数据删除方法 |
CN201812500U (zh) * | 2010-10-18 | 2011-04-27 | 刘勇 | 移动存储设备 |
KR101777376B1 (ko) * | 2010-11-08 | 2017-09-11 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 구동 방법 |
US8892837B2 (en) * | 2011-02-22 | 2014-11-18 | Altera Corporation | Integrated circuit with tamper-detection and self-erase mechanisms |
KR101785006B1 (ko) * | 2011-07-20 | 2017-10-12 | 삼성전자주식회사 | 불휘발성 메모리를 포함하는 메모리 시스템 및 그것의 제어 방법 |
CN202258362U (zh) * | 2011-10-09 | 2012-05-30 | 中国船舶重工集团公司第七一○研究所 | 一种基于内存芯片的安全u盘 |
CN102436424B (zh) * | 2011-10-28 | 2014-12-24 | 中国人民解放军总参谋部第五十五研究所 | 防泄密复印机安全电子盘 |
-
2012
- 2012-10-23 KR KR1020120118017A patent/KR102031661B1/ko active IP Right Grant
-
2013
- 2013-10-22 TW TW102137989A patent/TWI611407B/zh active
- 2013-10-22 NL NL2011662A patent/NL2011662B1/en active
- 2013-10-22 US US14/059,852 patent/US9153332B2/en active Active
- 2013-10-23 CN CN201310502766.5A patent/CN103778959B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6629047B1 (en) | 2000-03-30 | 2003-09-30 | Intel Corporation | Method and apparatus for flash voltage detection and lockout |
KR100463201B1 (ko) * | 2002-05-28 | 2004-12-23 | 삼성전자주식회사 | 파워 검출 회로, 이를 이용한 플래시 메모리 장치, 그 플래시 메모리 장치의 파워-온 독출 신호 발생 방법 및 플래시 메모리 장치의 안정적인 파워-온 독출 방법 |
KR100527571B1 (ko) | 2002-08-30 | 2005-11-09 | 주식회사 하이닉스반도체 | 불휘발성 메모리 칩의 저전압 감지 수단 및 감지 방법,그리고 그 감지 수단을 이용하는 저전압 감지 시스템 |
JP2006127648A (ja) | 2004-10-29 | 2006-05-18 | Sharp Corp | 不揮発性記憶装置及び電子機器 |
Also Published As
Publication number | Publication date |
---|---|
US9153332B2 (en) | 2015-10-06 |
KR20140051685A (ko) | 2014-05-02 |
TW201419282A (zh) | 2014-05-16 |
US20140112082A1 (en) | 2014-04-24 |
CN103778959A (zh) | 2014-05-07 |
TWI611407B (zh) | 2018-01-11 |
CN103778959B (zh) | 2019-04-16 |
NL2011662B1 (en) | 2016-09-27 |
NL2011662A (en) | 2014-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102031661B1 (ko) | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 | |
KR101997079B1 (ko) | 가변 저항 메모리를 포함하는 저장 장치 및 그것의 동작 방법 | |
KR20130134918A (ko) | 불휘발성 메모리를 포함하는 컴퓨터 시스템 및 컴퓨터 시스템의 동작방법 | |
KR101987426B1 (ko) | 불휘발성 메모리 모듈, 불휘발성 메모리 모듈을 포함하는 메모리 시스템, 그리고 불휘발성 메모리 모듈의 제어 방법 | |
US9606743B2 (en) | Semiconductor memory device and driving method of the same | |
KR101476773B1 (ko) | 가변 저항 메모리 장치를 포함하는 반도체 메모리 장치 및메모리 시스템 | |
EP3441885B1 (en) | Technologies for caching persistent two-level memory data | |
US20140013036A1 (en) | User device having nonvolatile random access memory and method of booting the same | |
US20190034344A1 (en) | Method for accessing heterogeneous memories and memory module including heterogeneous memories | |
JP2004355689A (ja) | 半導体装置 | |
US10929064B2 (en) | Methods of operating mixed device type memory modules, and processors and systems configured for operating the same | |
US10268591B2 (en) | Delayed write-back in memory | |
KR102525229B1 (ko) | 메모리 모듈 및 이를 포함하는 시스템 | |
US9342257B2 (en) | Computer system having main memory and control method thereof | |
US20230273668A1 (en) | Semiconductor memory device, electronic device and method for setting the same | |
KR20160146401A (ko) | 메모리 시스템 | |
US20190027198A1 (en) | Electronic devices | |
US20240079074A1 (en) | Memory device included in memory system and method for detecting fail memory cell thereof | |
US20240127872A1 (en) | Extended address interface activate sequence using mode register write | |
KR20240104989A (ko) | 저장 장치, 이의 동작 방법, 및 전자 장치 | |
KR20200090289A (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 | ||
GRNT | Written decision to grant |