KR20130051564A - 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법 - Google Patents

메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR20130051564A
KR20130051564A KR1020110116765A KR20110116765A KR20130051564A KR 20130051564 A KR20130051564 A KR 20130051564A KR 1020110116765 A KR1020110116765 A KR 1020110116765A KR 20110116765 A KR20110116765 A KR 20110116765A KR 20130051564 A KR20130051564 A KR 20130051564A
Authority
KR
South Korea
Prior art keywords
memory
controller
write
data
write data
Prior art date
Application number
KR1020110116765A
Other languages
English (en)
Inventor
박영진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110116765A priority Critical patent/KR20130051564A/ko
Priority to US13/619,580 priority patent/US20130120925A1/en
Publication of KR20130051564A publication Critical patent/KR20130051564A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory
    • G06F2212/2532Centralized memory comprising a plurality of modules

Abstract

메모리 모듈이 개시된다. 상기 메모리 모듈은 제1휘발성 메모리, 제2휘발성 메모리, 불휘발성 메모리, 및 상기 제2휘발성 메모리와 상기 불휘발성 메모리 각각의 동작을 제어하기 위한 컨트롤러를 포함하고, 라이트 동작시 외부 컨트롤러로부터 출력된 제1라이트 데이터가 상기 제1휘발성 메모리에 라이트될 때, 상기 컨트롤러는 상기 제1라이트 데이터를 수신하여 상기 제2휘발성 메모리에 라이트한다.

Description

메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법{MEMORY MODULE, BOARD ASSEMBLY HAVING SAME, MEMORY SYSTEM HAVING SAME, AND METHOD OF OPERATING THE MEMORY SYSTEM}
본 발명의 개념에 따른 실시 예는 메모리 모듈에 관한 것으로, 특히 메인 메모리에 저장된 데이터를 불휘발성 메모리로 백업할 수 있는 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법에 관한 것이다.
메모리 시스템, 예컨대 컴퓨팅 시스템에 포함된 중앙 처리 장치(central processing unit(CPU))는 메인 메모리에 저장된 데이터를 리드(read)하고, 리드된 데이터를 처리하고, 처리된 데이터를 상기 메인 메모리에 저장한다.
그러나, 상기 메모리 시스템으로의 전원 공급이 비정상적으로 중단되거나 또는 상기 메인 메모리에 저장된 데이터에 오류가 있는 경우, 상기 메모리 시스템은 정상적인 동작을 하지 못할 수 있다.
상기 메인 메모리가 휘발성 메모리(volatile memory)로 구현된 경우, 상기 메모리 시스템으로의 상기 전원 공급이 중단되면, 상기 메인 메모리에 저장된 데이터는 소멸한다. 상기 메인 메모리가 불휘발성 메모리(nonvolatile memory)로 구현된 경우, 상기 메인 메모리에 저장된 상기 데이터에 오류가 존재하는 경우, 상기 메인 메모리에 저장된 데이터는 그대로 유지되므로, 상기 메모리 시스템이 재부팅되더라도 상기 데이터의 오류는 해결되지 못한다.
본 발명이 이루고자 하는 기술적인 과제는 메모리 시스템의 메인 메모리에 저장된 데이터를 불휘발성 메모리로 백업(backup)하고 백업된 데이터를 이용하여 상기 메인 메모리에 저장된 데이터를 복구할 수 있는 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법을 제공하는 것이다.
본 발명의 일 실시 예에 따른 메모리 모듈은 제1 휘발성 메모리, 제2 휘발성 메모리, 불휘발성 메모리, 및 상기 제2 휘발성 메모리와 상기 불휘발성 메모리 각각의 동작을 제어하기 위한 컨트롤러를 포함하고, 라이트 동작시 외부 컨트롤러로부터 출력된 제1 라이트 데이터가 상기 제1 휘발성 메모리에 라이트될 때, 상기 컨트롤러는 상기 제1 라이트 데이터를 수신하여 상기 제2 휘발성 메모리에 라이트할 수 있다.
또한, 상기 라이트 데이터는 동일한 라이트 어드레스에 따라 지정된 상기 제1 휘발성 메모리의 제1 저장 영역과 상기 제2 휘발성 메모리의 제2 저장 영역에 저장될 수 있다.
상기 제2 휘발성 메모리에 저장된 상기 제1 라이트 데이터는 상기 컨트롤러의 제어에 따라 상기 불휘발성 메모리로 백업(back up)될 수 있다.
상기 메모리 모듈은 버퍼를 더 포함하고, 상기 제2 휘발성 메모리에 저장된 상기 제1 라이트 데이터가 상기 불휘발성 메모리로 백업되는 동안, 상기 컨트롤러는 상기 외부 컨트롤러로부터 출력되는 제2 라이트 데이터를 상기 버퍼에 저장하고, 상기 백업이 완료된 후, 상기 컨트롤러는 상기 버퍼에 저장된 제2 라이트 데이터를 상기 제2 휘발성 메모리에 라이트할 수 있다.
상기 제1 휘발성 메모리 및 상기 제2 휘발성 메모리 각각은 DRAM(dynamic random access memory)으로 구현될 수 있다.
본 발명의 일 실시 예에 따른 보드 어셈블리는 상기 메모리 모듈, 및 메인 보드를 포함하고, 상기 메모리 모듈은 상기 메인 보드에 장착된 슬롯을 통하여 상기 메인 보드에 접속된다.
상기 제1 라이트 데이터는 동일한 라이트 어드레스에 따라 지정된 상기 제1 휘발성 메모리의 제1 저장 영역과 상기 제2 휘발성 메모리의 제2 저장 영역에 저장될 수 있다.
본 발명의 일 실시 예에 따른 메모리 시스템은 상기 보드 어셈블리, 및 상기 메인 보드에 장착되고, 상기 메인 보드에 장착된 메모리 컨트롤러를 통하여 상기 메모리 모듈에 포함된 상기 제1 휘발성 메모리의 동작을 제어하기 위한 프로세서를 포함한다.
또한, 상기 메모리 모듈은 버퍼를 더 포함하고, 상기 제2 휘발성 메모리에 저장된 상기 제1 라이트 데이터는 상기 컨트롤러의 제어에 따라 상기 불휘발성 메모리로 백업되고, 상기 제2 휘발성 메모리에 저장된 상기 제1 라이트 데이터가 상기 불휘발성 메모리로 백업되는 동안, 상기 컨트롤러는 상기 외부 컨트롤러로부터 출력되는 제2 라이트 데이터를 상기 버퍼에 저장하고, 상기 백업이 완료된 후 상기 컨트롤러는 상기 버퍼에 저장된 제2 라이트 데이터를 상기 제2 휘발성 메모리에 라이트할 수 있다.
본 발명의 다른 실시 예에 따른 메모리 모듈은 제1 데이터 처리 방식에 따라 데이터를 처리하는 제1 불휘발성 메모리와 제2 불휘발성 메모리, 제2 데이터 처리 방식에 따라 데이터를 처리하는 제3 불휘발성 메모리, 및 상기 제2 불휘발성 메모리와 상기 제3 불휘발성 메모리 각각의 동작을 제어하기 위한 컨트롤러를 포함하고, 라이트 동작시 외부 컨트롤러로부터 출력된 제1 라이트 데이터가 상기 제1 불휘발성 메모리에 라이트될 때, 상기 컨트롤러는 상기 제1 라이트 데이터를 수신하여 상기 제2 불휘발성 메모리에 라이트할 수 있다.
또한, 상기 컨트롤러는 상기 제1 불휘발성 메모리에 라이트된 상기 제1 라이트 데이터와 상기 제1 라이트 데이터에 연관된 어드레스를 상기 제2 불휘발성 메모리에 라이트할 수 있다.
상기 제2 불휘발성 메모리에 저장된 상기 제1 라이트 데이터 및 상기 어드레스는 상기 컨트롤러의 제어에 따라 상기 제3 불휘발성 메모리로 백업되고, 상기 제2 불휘발성 메모리에 저장된 상기 제1 라이트 데이터 및 상기 어드레스는 상기 컨트롤러의 제어에 따라 이레이즈될 수 있다.
또한, 상기 메모리 모듈은 버퍼를 더 포함하고, 상기 제2 불휘발성 메모리에 저장된 상기 제1 라이트 데이터 및 상기 어드레스가 상기 제3 불휘발성 메모리로 백업되는 동안, 상기 컨트롤러는 상기 외부 컨트롤러로부터 출력되는 제2 라이트 데이터를 상기 버퍼에 저장하고, 상기 백업이 완료된 후 상기 버퍼에 저장된 제2 라이트 데이터를 상기 제2 불휘발성 메모리에 라이트할 수 있다.
본 발명의 일 실시 예에 따른 메모리 시스템의 동작 방법은, 메모리 컨트롤러의 제어에 따라 라이트 데이터가 제1 메모리에 라이트되는 단계, 컨트롤러가 상기 메모리 컨트롤러로부터 출력된 상기 라이트 데이터를 제2 메모리에 라이트하는 단계, 상기 컨트롤러가 상기 제2 메모리에 라이트된 데이터를 제3 메모리로 백업하는 단계, 및 재 부팅시 상기 컨트롤러가 상기 제3 메모리에 백업된 데이터에 기초하여 상기 제1 메모리의 데이터를 복구하는 단계를 포함한다.
상기 백업하는 단계는, 백업하는 동안 상기 컨트롤러가 상기 메모리 컨트롤러로부터 출력되는 새로운 데이터를 버퍼에 저장하는 단계, 및 백업이 완료된 후, 상기 컨트롤러가 상기 버퍼에 저장된 데이터를 상기 제2 메모리에 라이트하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 모듈은 메인 메모리에 저장된 데이터를 불휘발성 메모리로 백업함으로써, 상기 불휘발성 메모리로 백업된 데이터에 기초하여 상기 메인 메모리에 저장된 상기 데이터를 복구할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 메모리 시스템의 블럭도이다.
도 2는 도 1에 도시된 메모리 시스템의 라이트 동작을 설명하기 위한 도면이다.
도 3은 도 1에 도시된 메모리 시스템의 백업 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 휘발성 메모리의 메모리 맵(memory map)을 나타낸다.
도 5는 도 1에 도시된 메모리 시스템의 데이터 복구 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시 예에 따른 메모리 시스템의 블럭도이다.
도 7은 도 6에 도시된 메모리 시스템의 라이트 동작을 설명하기 위한 도면이다.
도 8은 도 6에 도시된 메모리 시스템의 백업 동작을 설명하기 위한 도면이다.
도 9는 도 6에 도시된 메모리 시스템의 데이터 복구 동작을 설명하기 위한 도면이다.
도 10은 도 1 또는 도 6에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 시스템의 블럭도이다.
도 12는 본 발명의 또 다른 실시 예에 따른 메모리 시스템의 블럭도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 메모리 시스템의 블럭도이다.
도 1을 참조하면, 메모리 시스템(1000)은 메인 보드(main board; 10), 메모리 모듈(memory module; 100), 메모리 컨트롤러(memory controller; 30), 및 CPU (central processing unit; 50)를 포함한다.
메모리 시스템(1000)은 PC(personal computer), 랩탑(laptop) 컴퓨터, 데이터 서버(data server), 네크워크-결합 스토리지(network-attached storage(NAS), 또는 휴대용 장치(portable device)로 구현될 수 있다. 상기 휴대용 장치는 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant), 또는 PMP(portable multimedia player)로 구현될 수 있다.
메모리 컨트롤러(30)는 메인 보드(10)에 장착되고, CPU(50)의 제어하에 메모리 모듈(100)의 동작을 제어할 수 있다. 즉, 라이트 동작(write operation)시, 메모리 컨트롤러(30)는 라이트 명령(write command), 라이트 어드레스(write address), 및 라이트 데이터(write data)를 출력하고, 이들을 메모리 모듈(100)의 해당 메모리 영역, 예컨대 제1휘발성 메모리(120)의 저장 영역에 라이트할 수 있다.
리드 동작(read operation)시, 메모리 컨트롤러(30)는 리드 명령(read command) 및 리드 어드레스(read address)를 출력할 수 있다. 여기서, 라이트 어드레스 및/또는 리드 어드레스는 메모리 모듈(100)에 포함된 제1휘발성 메모리(120)의 저장 영역에 연관된 어드레스를 의미한다.
CPU(50)는 메인 보드(10)에 장착되고, 메모리 컨트롤러(30)를 통하여 메모리 모듈(100)의 동작을 제어할 수 있다. CPU(50)와 메모리 컨트롤러(30)는 버스(12)를 통하여 서로 통신할 수 있다.
메모리 모듈(100)은 메인 보드(10)에 장착된 슬롯(slot) 또는, 메모리 소켓 (memory socket)을 통하여 메인 보드(10)에 접속된다.
메모리 모듈(100)은 제1휘발성 메모리(volatile memory; 120), 제2휘발성 메모리(140), 불휘발성 메모리(nonvolatile memory; 160), 및 컨트롤러(180)를 포함한다. 실시 예에 따라, 메모리 모듈(100)은 버퍼 (buffer; 190)를 더 포함할 수 있다.
메모리 모듈(100)에 포함된 제1휘발성 메모리(120)는 메모리 시스템(1000)의 메인 메모리(main memory)로 이용될 수 있다. 라이트 동작시, 제1휘발성 메모리 (120)는 메모리 컨트롤러(30)로부터 제공되는 라이트 명령과 라이트 어드레스에 따라 라이트 데이터를 상기 라이트 어드레스에 대응되는 저장 영역에 라이트 할 수 있다. 또한, 리드 동작시, 제1휘발성 메모리(120)는 메모리 컨트롤러(30)로부터 제공되는 리드 명령과 리드 어드레스에 따라 상기 리드 어드레스에 대응하는 저장 영역으로부터 데이터를 리드할 수 있다.
제1휘발성 메모리(120)와 제2휘발성 메모리(140) 각각은 DRAM(dynamic random access memory), SRAM(static random access memory), T-RAM(thyrister RAM), Z-RAM(zero capacitor RAM) 또는 TTRAM(twin transistor RAM)으로 구현될 수 있다. 제2휘발성 메모리(140)는 제1휘발성 메모리(120)의 특성과 동일한 특성을 갖는 메모리일 수 있다. 이는 메인 메모리로 사용되는 제1휘발성 메모리(120)의 성능 저하를 방지하기 위한 보완용으로의 사용을 포함할 수 있다.
예컨대, 제1휘발성 메모리(120)와 제2휘발성 메모리(140)가 동일한 종류의 메모리로 구현될 때, 제1휘발성 메모리(120)의 액세스 속도(access speed)와 제2 휘발성 메모리(140)의 액세스 속도는 동일할 수 있다. 따라서, 제1휘발성 메모리 (120)의 액세스 속도와 제2휘발성 메모리(140)의 액세스 속도가 다를 때 나타날 수 있는 제1휘발성 메모리(120)의 성능 저하를 방지할 수 있다.
제1휘발성 메모리(120)와 제2휘발성 메모리(140)가 DRAM으로 구현될 때, 메모리 모듈(100)은 SIMM(single in-line memory module), DIMM(dual in-line memory module), 또는 SO-DIMM(small outline dual in-line memory module)으로 구현될 수 있다.
불휘발성 메모리(160)는 자기 메모리(magnetic random access memory(MRAM)), 스핀-전달 토크 MRAM(Spin-Transfer Torque MRAM(STT-MRAM), 저항성 메모리(resistive memory), 상변화 메모리(phase change random access memory(PRAM), 또는 플래시 메모리(flash memory)로 구현될 수 있다. 플래시 메모리는 NOR 플래시 메모리와 NAND 플래시 메모리로 분류될 수 있다.
컨트롤러(180)는 제2휘발성 메모리(140)와 불휘발성 메모리(160)의 동작을 제어할 수 있다. 또한, 컨트롤러(180)는 메모리 컨트롤러(30)로부터 제공되는 제어 신호들을 디코딩하는 기능을 포함할 수 있다.
라이트 동작시, 컨트롤러(180)는 메모리 컨트롤러(30)로부터 출력된 라이트명령, 라이트 어드레스, 및 라이트 데이터를 수신하고 이들을 처리 또는 디코딩한다. 또한, 컨트롤러(180)는 디코딩된 라이트 명령을 제2휘발성 메모리(140)로 출력한다.
제2휘발성 메모리(140)는 상기 라이트 명령과 상기 라이트 어드레스, 및 상기 라이트 데이터를 수신하고, 상기 라이트 어드레스에 대응하는 저장 영역에 상기 라이트 데이터를 라이트할 수 있다. 또한, 컨트롤러(180)는 메모리 컨트롤러(30)로부터 제공되는 명령을 디코딩하고, 상기 명령에 따른 라이트 동작이나 리드 동작을 위한 제어 기능을 포함할 수 있다.
이때, 상기 라이트 데이터가 저장되는 제1휘발성 메모리(120)의 저장 영역의 어드레스와 상기 라이트 데이터가 저장되는 제2휘발성 메모리(140)의 저장 영역의 어드레스는 동일하며, 제1휘발성 메모리(120)의 크기와 제2휘발성 메모리(140)의 크기는 동일하거나 또는 서로 다를 수 있다. 따라서, 제1휘발성 메모리(120)에 데이터를 라이트할 때, 제2휘발성 메모리(140)로 동일한 데이터가 라이트된다. 제2휘발성 메모리(140)에 저장된 데이터는 불휘발성 메모리(160)로 다시 저장되며, 이를 "백업(back up) 동작"이라 할 수 있다.
상술한 백업 동작시, 컨트롤러(180)는 제2휘발성 메모리(140)에 저장된 데이터를 리드하고, 리드된 데이터를 불휘발성 메모리(160)로 라이트한다. 상기 백업 동작 도중에 메모리 컨트롤러(30)로부터 새로운 데이터가 출력될 때, 컨트롤러 (180)는 상기 새로운 데이터를 버퍼(190)에 임시적 저장하고, 상기 백업 동작이 완료된 후, 버퍼(190)에 저장된 데이터를 제2휘발성 메모리(140)에 라이트할 수 있다.
도 2는 도 1에 도시된 메모리 시스템의 라이트 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 라이트 동작시 메모리 컨트롤러(30)는 CPU(50)의 제어하에 제1라이트 명령, 제1라이트 어드레스, 및 제1라이트 데이터(WDATA1)를 출력한다.
제1휘발성 메모리(120)는 메모리 컨트롤러(30)로부터 출력된 상기 제1라이트 명령, 상기 제1라이트 어드레스, 및 제1라이트 데이터(WDATA1)를 수신하고, 상기 제1라이트 어드레스에 대응하는 제1저장 영역에 제1라이트 데이터(WDATA1)를 라이트할 수 있다(CASE1).
이때, 컨트롤러(180)는 메모리 컨트롤러(30)로부터 출력된 상기 제1라이트 명령, 상기 제1라이트 어드레스, 및 제1라이트 데이터(WDATA1)를 수신하고, 상기 제1라이트 어드레스에 대응하는 제2휘발성 메모리(140)의 제2저장 영역에 제1라이트 데이터(WDATA1)를 라이트할 수 있다(CASE2).
상기 제1저장 영역의 어드레스와 상기 제2저장 영역의 어드레스는 서로 동일하다. 따라서, 제1휘발성 메모리(120)에 저장된 제1라이트 데이터(WDATA1)와 제2휘발성 메모리(140)에 저장된 제1라이트 데이터(WDATA1)는 서로 동일하다.
도 3은 도 1에 도시된 메모리 시스템의 백업 동작을 설명하기 위한 도면이다.
도 2 및 도 3을 참조하면, 컨트롤러(180)는 제2휘발성 메모리(140)에 저장된 데이터(WDATA1)를 불휘발성 메모리(160)로 백업하는 백업 동작을 진행한다(CASE3). 즉, 제2휘발성 메모리(140)에 라이트된 제1라이트 데이터(WDATA1)는 컨트롤러(180)의 제어하에 불휘발성 메모리(160)로 백업될 수 있다. 이때, 컨트롤러(180)는 제2휘발성 메모리(140)에 저장된 제1라이트 데이터(WDATA1)를 리드하고, 리드된 제1라이트 데이터(WDATA1)를 불휘발성 메모리(160)에 라이트(예컨대, 리-라이트(re-write))할 수 있다.
상기 백업 동작은 주기적으로 수행될 수 있다. 즉, 미리 정해진 시간 간격마다, 컨트롤러(180)는 상기 백업 동작을 수행할 수 있다.
컨트롤러(180)가 상기 백업 동작을 수행하는 동안, 메모리 컨트롤러(30)로부터 제2라이트 명령, 제2라이트 어드레스, 및 제2라이트 데이터(WDATA2)가 출력될 때, 제1휘발성 메모리(120)는 상기 제2라이트 명령에 응답하여 상기 제2라이트 어드레스에 대응하는 저장 영역에 제2라이트 데이터(WDATA2)를 라이트한다.
한편, 백업 동작이 수행되고 있기 때문에, 컨트롤러(180)는 제2라이트 데이터(WDATA2)를 제2휘발성 메모리(140)에 라이트할 수 없다. 이때, 컨트롤러(180)는 메모리 컨트롤러(30)로부터 출력된 상기 제2라이트 명령, 상기 제2라이트 어드레스, 및 제2라이트 데이터(WDATA2)를 버퍼(190)에 저장할 수 있다(CASE4).
컨트롤러(180)는 상기 백업 동작을 완료한 후, 버퍼(190)에 저장된 제2라이트 데이터(WDATA2)를 제2휘발성 메모리(140)에 라이트할 수 있다(CASE5). 즉, 제2라이트 데이터(WDATA2)는 상기 제2라이트 어드레스에 대응하는 저장 영역에 라이트될 수 있다.
도 4는 본 발명의 일 실시 예에 따른 휘발성 메모리의 메모리 맵(memory map)을 나타낸다. 구체적으로, 도 4는 도 1에 도시된 제1휘발성 메모리(120)와 제2휘발성 메모리(140) 각각의 메모리 맵을 나타낸다.
도 1 내지 도 4를 참조하면, 제1휘발성 메모리(120)에 포함된 저장 영역들 각각에 어드레스가 할당된다. 예컨대, 제1휘발성 메모리(120)는 예컨대, 0000(16진수)으로 할당된 어드레스에 관련된 저장 영역부터 FFFF(16진수)로 할당된 어드레스에 관련된 저장 영역까지를 포함할 수 있다.
마찬가지로, 제2휘발성 메모리(140)에 포함된 저장 영역들 각각에 어드레스가 할당된다. 예컨대, 제2휘발성 메모리(140)는 예컨대, 0000(16진수)으로 할당된 어드레스에 관련된 저장 영역부터 FFFF(16진수)로 할당된 어드레스에 관련된 저장 영역까지를 포함할 수 있다.
메모리 컨트롤러(30)로부터 출력된 제1어드레스가 0000(16진수)일 때, 제1 라이트 데이터(WDATA1)는 어드레스 0000(16진수)에 대응되는 제1휘발성 메모리 (120)의 제1저장 영역(122)에 라이트된다. 마찬가지로, 제1라이트 데이터(WDATA1)는 어드레스 0000(16진수)에 대응되는 제2휘발성 메모리(140)의 제2저장 영역(142)에 라이트된다. 예컨대, 제1라이트 데이터(WDATA1)가 라이트된 제1저장 영역(122)의 어드레스와 제1라이트 데이터(WDATA1)가 라이트된 제2저장 영역(142)의 어드레스는 서로 동일하다.
메모리 컨트롤러(30)로부터 출력된 제2어드레스가 00F0(16진수)일 때, 제2 라이트 데이터(WDATA2)는 어드레스 00F0(16진수)에 대응되는 제1휘발성 메모리 (120)의 제3저장 영역(124)에 라이트된다. 마찬가지로, 제2라이트 데이터(WDATA2)는 어드레스 00F0(16진수)에 대응되는 제2휘발성 메모리(140)의 제4저장 영역(144)에 라이트된다. 예컨대, 제2라이트 데이터(WDATA1)가 라이트된 제3저장 영역(124)의 어드레스와 제2라이트 데이터(WDATA2)가 라이트된 제4저장 영역(144)의 어드레스는 서로 동일하다.
한편, 동일한 데이터가 저장된 제1휘발성 메모리(120)의 저장 영역의 물리적인 위치와 제2휘발성 메모리(140)의 저장 영역의 물리적인 위치는 서로 동일할 수도 있고 서로 다를 수도 있다.
도 5는 도 1에 도시된 메모리 시스템의 데이터 복구 동작을 설명하기 위한 도면이다.
도 5를 참조하면, 메모리 시스템(1000)으로의 전원 공급이 비정상적으로 중단된 경우, 제1휘발성 메모리(120)와 제2휘발성 메모리(140)에 저장된 데이터는 사라진다.
메모리 시스템(1000)이 재부팅되는 경우, CPU(50)는 복구 명령을 출력할 수 있다. 상기 복구 명령은 메모리 컨트롤러(30)를 경유하여 컨트롤러(180)로 전송된다. 상기 복구 명령을 수신한 컨트롤러(180)는 복구 동작(restore operation)을 수행한다.
구체적으로, 컨트롤러(180)는 불휘발성 메모리(160)에 저장된 데이터를 리드하고, 리드된 데이터를 제2휘발성 메모리(140)에 라이트할 수 있다(CASE6).
또한, 컨트롤러(180)는 제2휘발성 메모리(140)에 라이트된 데이터를 리드하고, 제2휘발성 메모리(140)로부터 리드된 데이터를 제1휘발성 메모리(120)에 라이트할 수 있다(CASE7). 따라서, 전원 공급의 비정상적인 중단으로 제1휘발성 메모리 (120)에서 사라진 데이터는 복구될 수 있다.
실시 예에 따라, 컨트롤러(180)는 불휘발성 메모리(160)에 저장된 데이터를 리드하고, 리드된 데이터를 직접 제1휘발성 메모리(120)에 라이트함으로써 복구 동작을 수행할 수 있다(CASE8).
도 6은 본 발명의 다른 실시 예에 따른 메모리 시스템의 블럭도이다.
도 6을 참조하면, 메모리 시스템(3000)은 메인 보드(10), 메모리 모듈(300), 메모리 컨트롤러(30), 및 CPU(50)를 포함한다.
도 6의 구성은 도 1의 구성에서 휘발성 메모리가 불휘발성 메모리로 대체된 것과 도면 번호를 제외면 사실상 동일한 구성이므로, 중복되는 구성에 대해서는 구체적인 설명을 상략한다.
메모리 컨트롤러(30)는 메인 보드(10)에 장착되고, CPU(50)의 제어하에 메모리 모듈(300)의 동작을 제어할 수 있다. 즉, 라이트 동작시, 메모리 컨트롤러(30)는 라이트 명령, 라이트 어드레스, 및 라이트 데이터를 출력할 수 있다. 리드 동작시, 메모리 컨트롤러(30)는 리드 명령과 리드 어드레스를 출력할 수 있다. 여기서, 상기 라이트 어드레스 및 상기 리드 어드레스는 메모리 모듈(300)에 포함된 제1불휘발성 메모리(320)의 어드레스를 의미한다.
CPU(50)는 메인 보드(10)에 장착되고, 메모리 컨트롤러(30)를 통하여 메모리 모듈(300)의 동작을 제어할 수 있다. CPU(50)와 메모리 컨트롤러(30)는 버스(12)를 통하여 서로 통신할 수 있다.
메모리 모듈(300)은 메인 보드(10)에 장착된 슬롯 또는 메모리 소켓을 통하여 메인 보드(10)에 접속된다.
메모리 모듈(300)은 제1불휘발성 메모리(320), 제2불휘발성 메모리(340), 제3불휘발성 메모리(360), 및 컨트롤러(380)를 포함한다. 실시 예에 따라, 메모리 모듈(300)은 버퍼(390)를 더 포함할 수 있다.
메모리 모듈(300)에 포함된 제1불휘발성 메모리(320)는 메모리 시스템(3000)의 메인 메모리로 이용될 수 있다. 라이트 동작시, 제1불휘발성 메모리(320)는 메모리 컨트롤러(30)로부터 제공되는 라이트 명령과 라이트 어드레스에 따라 라이트 데이터를 수신하고, 라이트 데이터를 상기 라이트 어드레스에 대응하는 저장 영역에 라이트 할 수 있다. 리드 동작시, 제1불휘발성 메모리(320)는 메모리 컨트롤러 (30)로부터 제공되는 리드 명령과 리드 어드레스에 따라 상기 리드 어드레스에 대응하는 저장 영역으로부터 데이터를 리드할 수 있다.
제1불휘발성 메모리(320)와 제2불휘발성 메모리(340)는 FeRAM (ferroelectric random access memory), PRAM(phase change random access memory), MRAM(magnetic random access memory), 또는 STT-MRAM(spin transfer torque-magnetic random access memory) 등으로 구현될 수 있다.
제1불휘발성 메모리(320)와 제2불휘발성 메모리(340)가 동일한 종류의 메모리로 구현될 때, 제1불휘발성 메모리(320)의 액세스 속도와 제2불휘발성 메모리 (340)의 액세스 속도는 서로 동일하다. 따라서, 제1불휘발성 메모리(320)의 액세스 속도와 제2불휘발성 메모리(340)의 액세스 속도가 서로 다를 때 나타날 수 있는 제1불휘발성 메모리(320), 즉 메인 메모리의 성능 저하를 최소화할 수 있다. 여기서, 액세스 속도는 리드 속도 또는 라이트 속도를 의미할 수 있다.
제3불휘발성 메모리(360)는 플래시 메모리(flash memory), 예컨대 NOR 플래시 메모리 또는 NAND 플래시 메모리로 구현될 수 있다.
예컨대, 제1불휘발성 메모리(320)와 제2불휘발성 메모리(340)가 제1데이터 처리 방식, 예컨대 자기 저항을 이용하여 데이터를 처리(예컨대, 라이트 또는 리드)할 수 있는 STT-MRAM일 때, 제3불휘발성 메모리(360)는 제2데이터 처리 방식, 예컨대 F-N 터널링(Fowler-Nordheim tunneling)을 이용하여 데이터를 처리(예컨대, 프로그램 또는 이레이즈(erase))할 수 있는 플래시 메모리로 구현될 수 있다.
컨트롤러(380)는 제2불휘발성 메모리(340)와 제3불휘발성 메모리(360)의 동작을 제어할 수 있다.
라이트 동작시, 컨트롤러(380)는 메모리 컨트롤러(30)로부터 출력된 라이트 명령, 라이트 어드레스, 및 라이트 데이터를 수신한다. 또한, 컨트롤러(380)는 수신된 상기 라이트 명령, 상기 라이트 어드레스, 및 상기 라이트 데이터를 제2불휘발성 메모리(340)로 출력한다. 제2불휘발성 메모리(340)는 상기 라이트 명령, 상기 라이트 어드레스, 및 상기 라이트 데이터를 수신하고, 상기 라이트 어드레스와 상기 라이트 데이터를 저장 영역에 라이트할 수 있다.
따라서, 상기 라이트 데이터가 저장되는 제1불휘발성 메모리(320)의 저장 영역의 어드레스는 상기 라이트 데이터와 함께 제2불휘발성 메모리(340)에 라이트된다.
상술한 백업 동작시, 컨트롤러(380)는 제2불휘발성 메모리(340)에 저장된 상기 라이트 어드레스와 상기 라이트 데이터를 리드하고, 리드된 라이트 어드레스와 라이트 데이터를 제3불휘발성 메모리(360)로 백업(back up)하는 백업 동작을 수행할 수 있다. 상기 백업 동작 도중에 메모리 컨트롤러(30)로부터 새로운 데이터가 출력되는 경우, 컨트롤러(380)는 상기 새로운 데이터를 버퍼(390)에 저장하고, 상기 백업 동작이 완료된 후, 버퍼(390)에 저장된 데이터를 제2불휘발성 메모리(340)에 라이트할 수 있다.
도 7은 도 6에 도시된 메모리 시스템의 라이트 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 라이트 동작시 메모리 컨트롤러(30)는 CPU(50)의 제어하에 제1라이트 명령, 제1라이트 어드레스, 및 제1라이트 데이터(WDATA1)를 출력한다.
제1불휘발성 메모리(320)는 메모리 컨트롤러(30)로부터 출력된 상기 제1라이트 명령, 상기 제1라이트 어드레스, 및 제1라이트 데이터(WDATA1)를 수신하고, 상기 제1라이트 어드레스에 대응하는 제1저장 영역에 제1라이트 데이터(WDATA1)를 라이트할 수 있다(CASE1).
이때, 컨트롤러(380)는 메모리 컨트롤러(30)로부터 출력된 상기 제1라이트 명령, 상기 제1라이트 어드레스, 및 제1라이트 데이터(WDATA1)를 수신하고, 제2불휘발성 메모리(340)의 제2저장 영역에 상기 제1라이트 어드레스 및 제1라이트 데이터(WDATA1)를 라이트할 수 있다(CASE2). 따라서, 상기 제1저장 영역의 어드레스와 동일한 상기 제1어드레스, 및 제1라이트 데이터(WDATA1)는 상기 제2저장 영역에 저장된다.
도 8은 도 6에 도시된 메모리 시스템의 백업 동작을 설명하기 위한 도면이다.
도 7 및 도 8을 참조하면, 컨트롤러(380)는 제2불휘발성 메모리(340)에 저장된 데이터를 제3불휘발성 메모리(360)로 백업하는 백업 동작을 수행할 수 있다 (CASE3). 즉, 제2불휘발성 메모리(340)에 라이트된 제1라이트 어드레스 및 제1라이트 데이터(WDATA1)는 컨트롤러(380)의 제어하에 제3불휘발성 메모리(360)에 라이트될 수 있다.
이때, 컨트롤러(380)는 제2불휘발성 메모리(340)에 저장된 상기 제1라이트 어드레스 및 제1라이트 데이터(WDATA1)를 리드하고, 리드된 제1라이트 어드레스 및 제1라이트 데이터(WDATA1)를 제3불휘발성 메모리(360)에 라이트할 수 있다. 이때 제2불휘발성 메모리(340)에 저장된 상기 제1라이트 어드레스 및 제1라이트 데이터 (WDATA1)는 컨트롤러(380)의 제어에 따라 이레이즈(erase)된다. 따라서, 제2불휘발성 메모리(340)의 크기는 제1불휘발성 메모리(320)의 크기보다 작게 구현될 수 있다.
상기 백업 동작은 주기적으로 수행될 수 있다. 즉, 미리 정해진 시간 간격마다, 컨트롤러(380)는 상기 백업 동작을 수행할 수 있다.
컨트롤러(380)가 상기 백업 동작을 수행하는 동안, 메모리 컨트롤러(30)로부터 제2라이트 명령, 제2라이트 어드레스, 및 제2라이트 데이터(WDATA2)가 출력되는 경우, 제1불휘발성 메모리(320)는 상기 제2라이트 명령에 응답하여 상기 제2라이트 어드레스에 대응하는 저장 영역에 제2라이트 데이터(WDATA2)를 라이트한다.
한편, 백업 동작을 수행하고 있기 때문에, 컨트롤러(380)는 제2라이트 데이터(WDATA2)를 제2불휘발성 메모리(340)에 라이트할 수 없다. 이 경우, 컨트롤러 (380)는 메모리 컨트롤러(30)로부터 출력된 상기 제2라이트 명령, 상기 제2라이트 어드레스, 및 제2라이트 데이터(WDATA2)를 버퍼(390)에 저장할 수 있다(CASE4).
제2불휘발성 메모리(340)에 저장된 상기 제1라이트 어드레스 및 제1라이트 데이터(WDATA1)가 컨트롤러(380)의 제어에 따라 이레이즈된 후, 컨트롤러(380)는 버퍼(390)에 저장된 상기 제2라이트 어드레스 및 제2라이트 데이터(WDATA2)를 제2 불휘발성 메모리(340)에 라이트할 수 있다(CASE5).
도 9는 도 6에 도시된 메모리 시스템의 데이터 복구 동작을 설명하기 위한 도면이다.
도 9를 참조하면, 메모리 시스템(3000)으로의 전원 공급이 비정상적으로 중단된 후 메모리 시스템(3000)이 재부팅되는 경우, CPU(50)는 복구 명령을 출력할 수 있다. 상기 복구 명령은 메모리 컨트롤러(30)를 경유하여 컨트롤러(380)로 전송된다. 상기 복구 명령을 수신한 컨트롤러(380)는 복구 동작을 수행한다.
구체적으로, 컨트롤러(380)는 제3불휘발성 메모리(360)에 저장된 데이터를 리드하고, 리드된 데이터를 제2불휘발성 메모리(340)에 라이트할 수 있다(CASE6). 또한, 컨트롤러(380)는 제2불휘발성 메모리(340)에 라이트된 데이터를 리드하고, 제2불휘발성 메모리(340)로부터 리드된 데이터를 제1불휘발성 메모리(320)에 라이트할 수 있다(CASE7). 따라서, 제1불휘발성 메모리(120)에 저장된 데이터는 복구될 수 있다.
실시 예에 따라, 컨트롤러(380)는 제3불휘발성 메모리(360)에 저장된 데이터를 리드하고, 리드된 데이터를 제1불휘발성 메모리(320)에 라이트함으로써 상기 복구 동작을 수행할 수 있다(CASE8).
상술한 바와 같이, 메모리 시스템(3000)이 재부팅되는 경우, 제3불휘발성 메모리(360)에 저장된 데이터에 기초하여 제1불휘발성 메모리(320)의 데이터가 복구됨으로써, 메모리 시스템(3000)이 재부팅되기 이전에 제1휘발성 메모리(320)에 저장된 데이터의 오류가 해결될 수 있다.
도 10은 도 1 또는 도 6에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 흐름도이다.
도 1부터 도 10을 참조하면, 메모리 컨트롤러(30)는 CPU(50)의 제어하에 제1라이트 데이터를 제1메모리에 라이트할 수 있다(S10). 즉, 제1메모리는 메모리 컨트롤러(30)로부터 출력되는 제1라이트 명령과 제1라이트 어드레스에 응답하여 상기 제1라이트 데이터를 상기 제1라이트 어드레스에 대응하는 제1저장 영역에 라이트할 수 있다.
컨트롤러(180 또는 380)는 메모리 컨트롤러(30)로부터 출력된 상기 제1라이트 명령, 상기 제1라이트 어드레스, 및 상기 제1라이트 데이터를 수신하고, 상기 제1라이트 어드레스에 대응하는 제2저장 영역에 상기 제1라이트 데이터를 라이트할 수 있다(S30). 상기 제2저장 영역은 상기 제1라이트 어드레스에 대응하는 상기 제2메모리의 저장 영역을 의미한다.
컨트롤러(180 또는 380)는 상기 제2메모리에 저장된 데이터를 제3메모리로 백업할 수 있다(S50). 컨트롤러(180 또는 380)는 주기적으로 백업 동작을 수행할 수 있다.
컨트롤러(180 또는 380)가 상기 백업 동작을 수행하는 동안, 메모리 컨트롤러(30)로부터 제2라이트 명령, 제2라이트 어드레스, 및 제2라이트 데이터가 출력될 때, 컨트롤러(180 또는 380)는 상기 제2라이트 명령, 상기 제2라이트 어드레스, 및 상기 제2라이트 데이터를 버퍼(190 또는 390)에 저장할 수 있다.
컨트롤러(180 또는 380)는 상기 백업 동작이 완료된 후, 버퍼(190 또는 390)에 저장된 상기 제2라이트 데이터를 상기 제2메모리에 라이트할 수 있다.
여기서, 상기 제1메모리는 도 1에 도시된 제1휘발성 메모리(120) 또는 도 6에 도시된 제1불휘발성 메모리(320)일 수 있다. 상기 제2메모리는 도 1에 도시된 제2휘발성 메모리(140) 또는 도 6에 도시된 제2불휘발성 메모리(340)일 수 있다. 또한, 상기 제3메모리는 도 1에 도시된 제1불휘발성 메모리(160) 또는 도 6에 도시된 제3불휘발성 메모리(360)일 수 있다.
메모리 시스템(1000 또는 3000)이 재부팅되는 경우, 컨트롤러(180 또는 380)는 CPU(50) 또는 메모리 컨트롤러(30)의 제어하에 상기 제1메모리의 데이터를 복구하는 복구 동작을 수행할 수 있다(S70). 즉, 컨트롤러(180 또는 380)는 CPU(50)로부터 출력된 복구 명령을 메모리 컨트롤러(50)를 경유하여 수신하고, 상기 복구 명령에 응답하여 상기 복구 동작을 수행할 수 있다.
구체적으로, 컨트롤러(180 또는 380)는 상기 제3메모리에 저장된 데이터를 리드하고, 리드된 데이터를 상기 제2메모리에 라이트할 수 있다. 또한, 컨트롤러 (180 또는 380)는 상기 제2메모리에 라이트된 데이터를 리드하고, 상기 제2메모리로부터 리드된 데이터를 상기 제1메모리에 라이트할 수 있다.
실시 예에 따라, 컨트롤러(180 또는 380)는 상기 제3메모리에 저장된 데이터를 리드하고, 리드된 데이터를 상기 제1메모리에 라이트함으로써 상기 복구 동작을 수행할 수 있다.
도 11은 본 발명의 또 다른 실시 예에 따른 메모리 시스템의 블럭도이다.
도 1, 도 6, 및 도 11을 참조하면, 메모리 시스템(5000)은 이동 전화기 (mobile phone), 스마트 폰(smart phone), 태블릿 PC, 또는 무선 인터넷 장치 등으로 구현될 수 있다.
메모리 시스템(5000)은 메모리 모듈(100 또는 300), 메모리 모듈(100 또는 300)의 데이터 처리 동작을 제어할 수 있는 CPU(50), CPU(30)의 제어하에 메모리 모듈(100 또는 300)에 대한 데이터 액세스 동작, 예컨대 라이트 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(30)를 포함한다.
메모리 모듈(100)에 포함된 제1휘발성 메모리(120) 또는 메모리 모듈(300)에 포함된 제1불휘발성 메모리(320)에 저장된 데이터는 CPU(50) 또는 메모리 컨트롤러 (30)의 제어하에 디스플레이(520)를 통하여 디스플레이될 수 있다.
무선 송수신기(560)는 안테나(580)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(560)는 안테나(580)를 통하여 수신된 무선 신호를 CPU (50)가 처리할 수 있는 신호로 변환할 수 있다.
따라서, CPU(50)는 무선 송수신기(560)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 컨트롤러(30)를 통하여 제1휘발성 메모리(120) 또는 제1불휘발성 메모리(320)에 저장하거나 디스플레이(520)를 통하여 디스플레이할 수 있다.
또한, 무선 송수신기(560)는 CPU(50)로부터 출력된 신호를 무선 신호로 변환하고 상기 무선 신호를 안테나(580)를 통하여 외부로 출력할 수 있다.
입력 장치(540)는 CPU(50)의 동작을 제어하기 위한 제어 신호 또는 CPU(50)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드 (keypad) 또는 키보드로 구현될 수 있다.
CPU(50)는 제1휘발성 메모리(120) 또는 제1불휘발성 메모리(320)로부터 출력된 데이터, 무선 송수신기(560)로부터 출력된 데이터 또는 입력 장치(540)로부터 출력된 데이터가 디스플레이(520)를 통하여 디스플레이될 수 있도록 디스플레이 (520)의 동작을 제어할 수 있다.
도 12는 본 발명의 또 다른 실시 예에 따른 메모리 시스템의 블럭도이다.
도 1, 도 6, 및 도 12를 참조하면, 메모리 시스템(7000)은 태블릿 PC, 넷-북 (net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있다.
메모리 시스템(5000)은 메모리 모듈(100 또는 300)과 메모리 모듈(100 또는 300)의 데이터 처리 동작을 제어할 수 있는 CPU(50)를 포함한다.
CPU(50)는 입력 장치(740)에 의하여 발생한 입력 신호에 따라 메모리 모듈(100)에 포함된 제1휘발성 메모리(120) 또는 메모리 모듈(300)에 포함된 제1불휘발성 메모리(320)에 저장된 데이터를 디스플레이(720)를 통하여 디스플레이할 수 있다.
메모리 컨트롤러(30)는 CPU(50)의 제어하에 제1휘발성 메모리(120) 또는 제1불휘발성 메모리(320)에 대한 데이터 액세스 동작을 제어할 수 있다.
입력 장치(740)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드 또는 키보드로 구현될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 메인 보드 12 : 버스
30 : 메모리 컨트롤러 50 : CPU
100 : 메모리 모듈 120 : 제1 휘발성 메모리
140 : 제2 휘발성 메모리 160 : 불휘발성 메모리
180 : 컨트롤러 190 : 버퍼
300 : 메모리 모듈 320 : 제1 불휘발성 메모리
340 : 제2 불휘발성 메모리 360 : 제3 불휘발성 메모리
380 : 컨트롤러 390 : 버퍼
1000, 3000 : 메모리 시스템

Claims (10)

  1. 제1휘발성 메모리;
    제2휘발성 메모리;
    불휘발성 메모리; 및
    상기 제2휘발성 메모리와 상기 불휘발성 메모리 각각의 동작을 제어하기 위한 컨트롤러를 포함하고,
    라이트 동작시 외부 컨트롤러로부터 출력된 제1라이트 데이터가 상기 제1휘발성 메모리에 라이트될 때, 상기 컨트롤러는 상기 제1라이트 데이터를 수신하여 상기 제2휘발성 메모리에 라이트하는 메모리 모듈.
  2. 제1항에 있어서,
    상기 제1라이트 데이터는 동일한 라이트 어드레스에 따라 지정된 상기 제1휘발성 메모리의 제1저장 영역과 상기 제2휘발성 메모리의 제2저장 영역에 저장되는 메모리 모듈.
  3. 제1항에 있어서,
    상기 제2휘발성 메모리에 저장된 상기 제1라이트 데이터는 상기 컨트롤러의 제어에 따라 상기 불휘발성 메모리로 백업(back up)되는 메모리 모듈.
  4. 제3항에 있어서,
    상기 메모리 모듈은 버퍼를 더 포함하고,
    상기 제2휘발성 메모리에 저장된 상기 제1라이트 데이터가 상기 불휘발성 메모리로 백업되는 동안, 상기 컨트롤러는 상기 외부 컨트롤러로부터 출력되는 제2라이트 데이터를 상기 버퍼에 저장하고,
    상기 백업이 완료된 후, 상기 컨트롤러는 상기 버퍼에 저장된 제2라이트 데이터를 상기 제2휘발성 메모리에 라이트하는 메모리 모듈.
  5. 제1항에 있어서,
    상기 제1휘발성 메모리와 상기 제2휘발성 메모리 각각은 DRAM(dynamic random access memory)인 메모리 모듈.
  6. 제1항의 메모리 모듈; 및
    메인 보드를 포함하고,
    상기 메모리 모듈은 상기 메인 보드에 장착된 슬롯을 통하여 상기 메인 보드에 접속되는 보드 어셈블리(board assembly).
  7. 제6항의 보드 어셈블리; 및
    상기 메인 보드에 장착되고, 상기 메인 보드에 장착된 메모리 컨트롤러를 통하여 상기 메모리 모듈에 포함된 상기 제1휘발성 메모리의 동작을 제어하기 위한 프로세서를 포함하는 메모리 시스템.
  8. 각각이 제1데이터 처리 방식에 따라 데이터를 처리하는 제1불휘발성 메모리와 제2불휘발성 메모리;
    제2데이터 처리 방식에 따라 데이터를 처리하는 제3불휘발성 메모리; 및
    상기 제2불휘발성 메모리와 상기 제3불휘발성 메모리 각각의 동작을 제어하기 위한 컨트롤러를 포함하고,
    라이트 동작시 외부 컨트롤러로부터 출력된 제1라이트 데이터가 상기 제1불휘발성 메모리에 라이트될 때, 상기 컨트롤러는 상기 제1라이트 데이터를 수신하여 상기 제2불휘발성 메모리에 라이트하는 메모리 모듈.
  9. 제8항에 있어서,
    상기 컨트롤러는 상기 제1불휘발성 메모리에 라이트된 상기 제1라이트 데이터와 상기 제1라이트 데이터에 연관된 어드레스를 상기 제2불휘발성 메모리에 라이트하는 메모리 모듈.
  10. 메모리 컨트롤러의 제어에 따라 라이트 데이터가 제1메모리에 라이트되는 단계;
    컨트롤러가 상기 메모리 컨트롤러로부터 출력된 상기 라이트 데이터를 제2메모리에 라이트하는 단계;
    상기 컨트롤러가 상기 제2메모리에 라이트된 데이터를 제3메모리로 백업하는 단계; 및
    재부팅시 상기 컨트롤러가 상기 제3메모리에 백업된 데이터에 기초하여 상기 제1메모리의 데이터를 복구하는 단계를 포함하는 메모리 시스템의 동작 방법.
KR1020110116765A 2011-11-10 2011-11-10 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법 KR20130051564A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110116765A KR20130051564A (ko) 2011-11-10 2011-11-10 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법
US13/619,580 US20130120925A1 (en) 2011-11-10 2012-09-14 Memory module, board assembly and memory system including the same, and method of operating the memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110116765A KR20130051564A (ko) 2011-11-10 2011-11-10 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
KR20130051564A true KR20130051564A (ko) 2013-05-21

Family

ID=48280441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110116765A KR20130051564A (ko) 2011-11-10 2011-11-10 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법

Country Status (2)

Country Link
US (1) US20130120925A1 (ko)
KR (1) KR20130051564A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727462B2 (en) * 2013-01-30 2017-08-08 Hewlett Packard Enterprise Development Lp Runtime backup of data in a memory module
TW201503768A (zh) * 2013-07-05 2015-01-16 Phison Electronics Corp 焊墊結構及應用其之印刷電路板與記憶體儲存裝置
TWI545564B (zh) 2015-03-24 2016-08-11 國立成功大學 一種非揮發性靜態隨機存取記憶體
CN105353989B (zh) 2015-11-19 2018-12-28 华为技术有限公司 存储数据访问方法及相关的控制器、设备、主机和系统
KR20180097026A (ko) * 2017-02-22 2018-08-30 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치 및 데이터 저장 장치의 동작 방법
US10949117B2 (en) * 2018-09-24 2021-03-16 Micron Technology, Inc. Direct data transfer in memory and between devices of a memory module
EP3915030B1 (en) * 2019-04-30 2023-10-18 Hewlett-Packard Development Company, L.P. Storage of network credentials
KR20230060817A (ko) * 2021-10-28 2023-05-08 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
JP2006285631A (ja) * 2005-03-31 2006-10-19 Yokogawa Electric Corp 二重化システム
JP2008134685A (ja) * 2006-11-27 2008-06-12 Konica Minolta Business Technologies Inc 不揮発メモリシステム及び不揮発メモリ制御方法
TWI385516B (zh) * 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템

Also Published As

Publication number Publication date
US20130120925A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
KR20130051564A (ko) 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법
US9940045B2 (en) Address mapping table recovery upon power failure
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20160062690A1 (en) Data storage device, data processing system including the same, and operating method thereof
KR102485812B1 (ko) 메모리 시스템과 메모리 시스템의 동작방법 및 메모리 시스템을 포함하는 데이터 처리 시스템
US10319461B2 (en) Low-overhead mechanism to detect address faults in ECC-protected memories
KR20150029402A (ko) 데이터 저장 시스템 및 그것의 동작 방법
US9606811B2 (en) Operating method of data storage device
KR102558901B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20180050862A (ko) 메모리 시스템 및 그의 동작 방법
US10649840B2 (en) Data storage device performing recovery operation after sudden power-off and operating method thereof
KR102511341B1 (ko) 메모리 장치, 메모리 컨트롤러 및 이들을 포함하는 메모리 시스템과, 이들의 동작 방법
US20130339584A1 (en) Method for accessing flash memory having pages used for data backup and associated memory device
CN108694101B (zh) 存储器侧高速缓存内容的持久性高速缓存
KR20180101760A (ko) 저장 장치, 데이터 처리 시스템 및 이의 동작 방법
CN107045484B (zh) 数据存储装置
US11003544B2 (en) Memory system and method of operating the same
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
KR20180017608A (ko) 메모리 시스템 및 그의 동작 방법
US9588708B2 (en) Semiconductor memory device, operating method thereof, and data storage device including the same
US9552210B2 (en) Volatile memory device and methods of operating and testing volatile memory device
KR20150042041A (ko) 전압발생기, 집적회로 및 전압 발생 방법
CN111124035B (zh) 基于实时时钟管理空闲页面的存储器系统及其操作方法
US9318164B2 (en) Semiconductor memory device with power-saving signal
KR102485694B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid