KR20180075759A - 메모리 시스템 및 이의 동작 방법 - Google Patents

메모리 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20180075759A
KR20180075759A KR1020160179321A KR20160179321A KR20180075759A KR 20180075759 A KR20180075759 A KR 20180075759A KR 1020160179321 A KR1020160179321 A KR 1020160179321A KR 20160179321 A KR20160179321 A KR 20160179321A KR 20180075759 A KR20180075759 A KR 20180075759A
Authority
KR
South Korea
Prior art keywords
memory
memory module
control bus
bus
control
Prior art date
Application number
KR1020160179321A
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 KR1020160179321A priority Critical patent/KR20180075759A/ko
Priority to US15/670,087 priority patent/US10474378B2/en
Publication of KR20180075759A publication Critical patent/KR20180075759A/ko
Priority to US16/680,017 priority patent/US11194479B2/en
Priority to US16/799,566 priority patent/US11138120B2/en
Priority to US17/493,313 priority patent/US11709777B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 시스템은, 메모리 콘트롤러; 상기 메모리 콘트롤러의 제어를 받아 동작하고, 하나 이상의 제1휘발성 메모리 장치들을 포함하는 제1메모리 모듈; 상기 메모리 콘트롤러의 제어를 받아 동작하고, 하나 이상의 비휘발성 메모리 장치들을 포함하는 제2메모리 모듈; 상기 메모리 콘트롤러, 상기 제1메모리 모듈 및 상기 제2메모리 모듈 간의 데이터 전송을 위한 데이터 버스; 상기 메모리 콘트롤러, 상기 제1메모리 모듈 및 상기 제2메모리 모듈 간의 제1제어 신호들의 전송을 위한 제1제어 버스; 상기 메모리 콘트롤러와 상기 제1메모리 모듈 간의 제2제어 신호들의 전송을 위한 제2제어 버스; 및 상기 메모리 콘트롤러와 상기 제2메모리 모듈 간의 제3제어 신호들의 전송을 위한 제3제어 버스를 포함하고, 상기 하나 이상의 제1휘발성 메모리 장치들의 데이터를 상기 하나 이상의 비휘발성 메모리 장치들로 백업하는 백업 동작시에, 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결될 수 있다.

Description

메모리 시스템 및 이의 동작 방법 {MEMORY SYSTEM AND OPERATION METHOD OF THE SAME}
본 특허 문헌은 메모리 시스템에 관한 것이다.
일반적으로, 퍼스널 컴퓨터(PC), 워크 스테이션(workstation), 서버 컴퓨터(server computer), 또는 통신 시스템 등과 같은 데이터 처리 시스템에서 모듈 보드 상에 다수의 메모리(칩)들을 탑재한 형태의 메모리 모듈이 데이터 저장용 메모리로서 채용된다.
데이터 처리 시스템에서 사용되는 대부분의 메모리 모듈에 탑재된 메모리 칩들은 휘발성 메모리(예, DRAM)인데, 휘발성 메모리는 고속 동작이 가능하지만, 전원이 공급되지 않으면 데이터를 잃어버린다는 단점이 있다. 최근에는 이러한 단점을 보완하기 위해 NVDIMM(Non-Volatile Dial In Line Memory Module) 방식의 메모리 모듈이 등장하고 있다. NVDIMM은 메모리 모듈 내에 휘발성 메모리와 함께 비휘발성 메모리를 탑재하고, 필요한 경우에 휘발성 메모리의 데이터를 비휘발성 메모리로 백업(backup)하는 동작을 통해 데이터의 유실을 방지하는 메모리 모듈을 의미한다.
본 발명의 실시예들은, 메모리 시스템 내의 서로 다른 메모리 모듈들 간에 데이터의 백업 및 복원을 가능하게 하는 기술을 제공할 수 있다.
본 발명의 일실시예에 따른 메모리 시스템은, 메모리 콘트롤러; 상기 메모리 콘트롤러의 제어를 받아 동작하고, 하나 이상의 제1휘발성 메모리 장치들을 포함하는 제1메모리 모듈; 상기 메모리 콘트롤러의 제어를 받아 동작하고, 하나 이상의 비휘발성 메모리 장치들을 포함하는 제2메모리 모듈; 상기 메모리 콘트롤러, 상기 제1메모리 모듈 및 상기 제2메모리 모듈 간의 데이터 전송을 위한 데이터 버스; 상기 메모리 콘트롤러, 상기 제1메모리 모듈 및 상기 제2메모리 모듈 간의 제1제어 신호들의 전송을 위한 제1제어 버스; 상기 메모리 콘트롤러와 상기 제1메모리 모듈 간의 제2제어 신호들의 전송을 위한 제2제어 버스; 및 상기 메모리 콘트롤러와 상기 제2메모리 모듈 간의 제3제어 신호들의 전송을 위한 제3제어 버스를 포함하고, 상기 하나 이상의 제1휘발성 메모리 장치들의 데이터를 상기 하나 이상의 비휘발성 메모리 장치들로 백업하는 백업 동작시에, 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결될 수 있다.
상기 하나 이상의 비휘발성 메모리 장치들에 백업된 데이터를 상기 하나 이상의 제1휘발성 메모리 장치들로 복원하는 복원 동작시에, 상기 메모리 콘트롤러는 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결할 수 있다.
상기 백업 동작시와 상기 복원 동작시에, 상기 메모리 콘트롤러는 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결할 수 있다.
상기 백업 동작시와 상기 복원 동작시에, 상기 제2메모리 모듈은 시스템 관리 버스(SMB: System Management Bus)를 통해 상기 메모리 콘트롤러에 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결하라는 요청을 송신할 수 있다.
상기 제2메모리 모듈은 모듈 콘트롤러를 더 포함하고, 상기 모듈 콘트롤러는 상기 백업 동작시에 상기 하나 이상의 제1휘발성 메모리 장치들로부터 데이터가 리드되도록 상기 제1메모리 모듈을 제어하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 라이트되도록 상기 하나 이상의 비휘발성 메모리 장치를 제어할 수 있다.
상기 모듈 콘트롤러는 상기 백업 동작시에 상기 제1제어 버스와 상기 제2제어 버스에 전기적으로 연결된 상기 제3제어 버스를 이용해 상기 제1메모리 모듈을 제어하고, 상기 백업 동작시에 상기 제1메모리 모듈로부터 리드된 데이터는 상기 데이터 버스를 통해 상기 제2메모리 모듈로 전달될 수 있다.
상기 제2메모리 모듈은 하나 이상의 제2휘발성 메모리 장치들을 더 포함하고, 상기 백업 동작시에 상기 하나 이상의 제2휘발성 메모리 장치들의 데이터가 상기 하나 이상의 비휘발성 메모리 장치들로 백업될 수 있다.
상기 제1제어 신호들은 상기 제1메모리 모듈과 상기 제2메모리 모듈을 위한 액티브 신호, 컬럼 어드레스 스트로브 신호, 로우 어드레스 스트로브 신호, 및 어드레스 신호들을 포함할 수 있다.
상기 제2제어 신호들은 상기 제1메모리 모듈을 위한 칩 셀렉트 신호, 클럭 인에이블 신호, 온 다이 터미네이션 신호 및 클럭 신호를 포함할 수 있다.
상기 제3제어 신호들은 상기 제2메모리 모듈을 위한 셀렉트 신호, 클럭 인에이블 신호, 온 다이 터미네이션 신호 및 클럭 신호를 포함할 수 있다.
상기 메모리 시스템은, 상기 백업 동작시에 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결하기 위한 스위치 어레이를 더 포함할 수 있다.
상기 스위치 어레이는 상기 제2제어 버스와 상기 제3제어 버스의 전기적 연결시에 상기 제2제어 버스와 상기 제3버스를 상기 메모리 콘트롤러와 전기적으로 분리할 수 있다.
상기 메모리 시스템은 비상 전원을 더 포함하고, 호스트의 파워 페일에 의한 백업 동작시에, 상기 제1메모리 모듈과 상기 제2메모리 모듈은 상기 비상 전원으로부터 전원을 공급 받을 수 있다.
본 발명의 일실시예에 따른 동작 방법은, 메모리 콘트롤러, 제1메모리 모듈, 제2메모리 모듈, 상기 제1메모리 모듈과 상기 제2메모리 모듈이 공유하는 데이터 버스, 상기 제1메모리 모듈과 상기 제2메모리 모듈이 공유하는 제1제어 버스, 상기 제1메모리 모듈을 위한 제2제어 버스 및 상기 제2메모리 모듈을 위한 제3제어 버스를 포함하는 메모리 시스템의 동작 방법에 있어서, 백업 동작의 수행이 결정되는 단계; 상기 제2제어 버스와 상기 제3제어 버스가 전기적으로 연결되는 단계; 상기 제2메모리 모듈이 상기 제1제어 버스와 상기 제2제어 버스에 전기적으로 연결된 상기 제3제어 버스를 이용해 상기 제1메모리 모듈의 휘발성 메모리 장치들로부터 데이터가 리드되도록 제어하는 단계; 상기 제1메모리 모듈의 하나 이상의 휘발성 메모리 장치들로부터 리드된 데이터가 상기 데이터 버스를 통해 상기 제2메모리 모듈로 전달되는 단계; 및 상기 데이터 버스를 통해 전달된 데이터가 상기 제2메모리 모듈의 하나 이상의 비휘발성 메모리 장치들에 라이트되는 단계를 포함할 수 있다.
상기 메모리 시스템의 동작 방법은, 상기 라이트되는 단계 이후에, 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 분리하는 단계를 더 포함할 수 있다.
상기 메모리 시스템의 동작 방법은, 복원 동작의 수행이 결정되는 단계; 상기 제2제어 버스와 상기 제3제어 버스가 전기적으로 다시 연결되는 단계; 상기 제2메모리 모듈의 하나 이상의 비휘발성 메모리 장치들로부터 데이터가 리드되는 단계; 상기 하나 이사의 비휘발성 메모리 장치들로부터 리드된 데이터가 상기 데이터 버스를 통해 상기 제1메모리 모듈로 전달되는 단계; 및 상기 제2메모리 모듈이 상기 제1제어 버스와 상기 제2제어 버스에 전기적으로 연결된 상기 제3제어 버스를 이용해 상기 제1메모리 모듈의 휘발성 메모리 장치들에 상기 제1메모리 모듈로 전달된 데이터가 라이트되도록 제어하는 단계를 더 포함할 수 있다.
상기 백업 동작의 수행은 상기 메모리 콘트롤러의 요청에 의해 또는 호스트의 파워 페일에 의해 결정될 수 있다.
본 발명의 실시예들에 따르면, 메모리 시스템 내의 서로 다른 메모리 모듈들 간에 데이터의 백업 및 복원이 가능할 수 있다.
도 1은 본 발명의 일실시예에 따른 메모리 시스템(100)의 구성도.
도 2는 본 발명의 다른 실시예에 따른 메모리 시스템(200)의 구성도.
도 3은 본 발명의 또 다른 실시예에 따른 메모리 시스템(300)의 구성도.
도 4는 도 2와 도 3의 메모리 시스템(200, 300)에서의 백업 및 복원 동작을 도시한 순서도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 본 발명을 설명함에 있어서, 본 발명의 요지와 무관한 공지의 구성은 생략될 수 있다. 각 도면의 구성요소들에 참조 번호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다.
도 1은 본 발명의 일실시예에 따른 메모리 시스템(100)의 구성도이다.
도 1을 참조하면, 메모리 시스템(100)은 메모리 콘트롤러(110), 제1메모리 모듈(120), 제2메모리 모듈(130), 데이터 버스(DATA_BUS), 제1제어 버스(CONTROL_BUS0), 제2제어 버스(CONTROL_BUS1_FOR_120), 제3제어 버스(CONTROL_BUS1_FOR_130), 시스템 관리 버스(SM_BUS) 및 비상 전원(140)을 포함할 수 있다.
메모리 콘트롤러(110)는 제1메모리 모듈(120)과 제2메모리 모듈(130)의 리드(read) 및 라이트(write) 등의 각종 동작을 제어할 수 있다. 메모리 콘트롤러(110)는 제1제어 버스(CONTROL_BUS0)와 제2제어 버스(CONTROL_BUS1_FOR_120)를 이용해 제1메모리 모듈(120)을 제어하고, 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_130)를 이용해 제2메모리 모듈(130)을 제어할 수 있다. 그리고 메모리 콘트롤러(110)는 데이터 버스(DATA_BUS)를 이용해 제1메모리 모듈(120) 및 제2메모리 모듈(130)과 데이터를 송수신할 수 있다. 그리고 시스템 관리(system management) 버스(SM_BUS)를 통해 제1메모리 모듈(120) 및 제2메모리 모듈(130)에 대한 정보를 수신할 수 있다.
제1제어 버스(CONTROL_BUS0)는 제1메모리 모듈(120)과 제2메모리 모듈(130)에 의해 공유되며, 제1메모리 모듈(120)과 제2메모리 모듈(130)을 제어하기 위한 공통의 제어 신호들이 메모리 콘트롤러(110)로부터 제1메모리 모듈(120)과 제2메모리 모듈(130)로 전달될 수 있다. 예를 들어, 제1제어 버스(CONTROL_BUS0)로는 액티브(ACT: Active) 신호, 컬럼 어드레스 스트로브(CAS: Column Address Strobe) 신호, 로우 어드레스 스트로브(RAS: Row Address Strobe) 신호 및 어드레스 신호들이 전달될 수 있다.
제2제어 버스(CONTROL_BUS1_FOR_120)는 제1메모리 모듈(120)의 제어를 위해 사용되며, 제1메모리 모듈(120)을 위한 독립적인 제어 신호들을 전달할 수 있다. 예를 들어, 제2제어 버스(CONTROL_BUS1_FOR_120)로는 1번 칩 셀렉트(CS1: Chip Select 1) 신호, 1번 클럭 인에이블(CKE1: Clock Enable 1) 신호, 1번 온 다이 터미네이션(ODT1: On Die Termination 1) 신호 및 1번 클럭(CK1: Clock 1) 신호가 전달될 수 있다. 여기서 1번이라는 명칭은 제1메모리 모듈(120)을 위한 신호들이라는 것을 의미할 수 있다.
제3제어 버스(CONTROL_BUS1_FOR_130)는 제2메모리 모듈(130)의 제어를 위해 사용되며, 제2메모리 모듈(130)을 위한 독립적인 제어 신호들을 전달할 수 있다. 예를 들어, 제3제어 버스(CONTROL_BUS1_FOR_130)로는 2번 칩 셀렉트(CS2: Chip Select 2) 신호, 2번 클럭 인에이블(CKE2: Clock Enable 2) 신호, 2번 온 다이 터미네이션(ODT2: On Die Termination 2) 신호 및 2번 클럭(CK2: Clock 2) 신호가 전달될 수 있다. 여기서 2번이라는 명칭은 제2메모리 모듈(130)을 위한 신호들이라는 것을 의미할 수 있다.
데이터 버스(DATA_BUS)는 데이터 전송을 위한 다수의 데이터 전송 라인들 및 다수의 데이터 전송 라인들로 전달되는 데이터를 스트로빙하기 위한 데이터 스트로브(data strobe) 신호들을 전달하는 다수의 데이터 스트로브 신호 전송 라인들을 포함할 수 있다.
제1메모리 모듈(120)은 메모리 버퍼(121), 휘발성 메모리 장치들(123_0~123_7), SPD(125, Serial Presence Detect)를 포함할 수 있다. 메모리 버퍼(121)는 제1제어 버스(CONTROL_BUS0)와 제2제어 버스(CONTROL_BUS1_FOR_120)를 통해 수신된 제어 신호들을 버퍼링해 휘발성 메모리 장치들(123_0~123_7)로 전달하고, 라이트 동작시에는 데이터 버스(DATA_BUS)를 통해 수신된 데이터를 버퍼링해 휘발성 메모리 장치들(123_0~123_7)로 전달하고, 리드 동작시에는 휘발성 메모리 장치들(123_0~123_7)로부터 리드된 데이터를 데이터 버스(DATA_BUS)로 송신할 수 있다. 내부 버스(127)는 메모리 버퍼(121)와 휘발성 메모리 장치들(123_0~123_7) 간에 제어 신호들 및 데이터를 전달하기 위해 사용되는 버스일 수 있다. SPD(125)는 제1메모리 모듈(120)에 관한 정보, 예를 들어 제1메모리 모듈(120) 내에 구비된 메모리 장치들의 종류, 개수, 용량 등에 관한 정보, 를 저장할 수 있다. 그리고 시스템 관리 버스(SM_BUS)를 통해 제1메모리 모듈(120)에 관한 정보를 메모리 콘트롤러(110)에게 전달할 수 있다. 제1메모리 모듈(120)에 포함된 휘발성 메모리 장치들(123_0~123_7) 각각은 DRAM일 수 있다. 그리고 제1메모리 모듈(120)은 DIMM(Dual In Line Memory Module) 타입일 수 있다.
제2메모리 모듈(130)은 모듈 콘트롤러(131), 휘발성 메모리 장치들(133_0~133_7), SPD(135) 및 비휘발성 메모리 장치(139)를 포함할 수 있다.
모듈 콘트롤러(131)는 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_130)를 통해 수신된 제어 신호들을 버퍼링해 휘발성 메모리 장치들(133_0~133_7)로 전달하고, 라이트 동작시에는 데이터 버스(DATA_BUS)를 통해 수신된 데이터를 버퍼링해 휘발성 메모리 장치들(133_0~133_7)로 전달하고, 리드 동작시에는 휘발성 메모리 장치들(133_0~133_7)로부터 리드된 데이터를 데이터 버스(DATA_BUS)로 송신할 수 있다. 내부 버스(137)는 모듈 콘트롤러(131)와 휘발성 메모리 장치들(133_0~133_7) 및 비휘발성 메모리 장치(139) 간에 제어 신호들 및 데이터를 전달하기 위해 사용되는 버스일 수 있다. SPD(135)는 제2메모리 모듈(130)에 관한 정보, 예를 들어 제2메모리 모듈(130) 내에 구비된 메모리 장치들의 종류, 개수, 용량 등에 관한 정보, 를 저장할 수 있다. 그리고 시스템 관리 버스(SM_BUS)를 통해 제2메모리 모듈(130)에 관한 정보를 메모리 콘트롤러(110)에게 전달할 수 있다.
또한, 모듈 콘트롤러(131)는 휘발성 메모리 장치들(133_0~133_7)과 비휘발성 메모리 장치(139)를 제어해 백업(backup) 동작 및 복원(recovery) 동작을 수행할 수 있다. 백업 동작시에 모듈 콘트롤러(131)는 휘발성 메모리 장치들(133_0~133_7)의 데이터를 리드해 비휘발성 메모리 장치(139)에 라이트할 수 있다. 비휘발성 메모리 장치(139)에 백업된 데이터는 메모리 시스템(100)의 전원이 꺼지더라도 유실되지 않고 유지될 수 있다. 복원 동작시에 모듈 콘트롤러(131)는 비휘발성 메모리 장치(139)에 저장된 데이터를 리드해 휘발성 메모리 장치들(133_0~133_7)에 라이트할 수 있다. 복원 동작에 의해 백업되었던 데이터가 그대로 복원될 수 있다.
백업 동작은 메모리 콘트롤러(110)의 명령에 의해 시작될 수 있다. 메모리 콘트롤러(110)는 시스템 관리 버스(SM_BUS)를 통해 모듈 콘트롤러(131)에게 백업 동작의 수행을 지시할 수 있다. 또한, 백업 동작은 호스트의 파워 페일에 의해 시작될 수 있다. 모듈 콘트롤러(131)는 호스트의 파워 페일시에 휘발성 메모리 장치들(133_0~133_7)에 저장된 데이터를 비휘발성 메모리 장치(139)에 백업해 데이터의 유실을 방지할 수 있다. 호스트의 파워 페일로 인한 백업 동작의 수행시에는, 백업 동작의 수행을 위해 비상 전원(140)이 사용될 수 있다. 여기서 비상 전원은 슈퍼 캐패시터(super capacitor)일 수 있다. 메모리 시스템(100) 내의 구성들은 평소에는 호스트의 파워에 의해 동작할 수 있다.
복원 동작은 메모리 콘트롤러(110)의 명령에 의해 시작될 수 있다. 메모리 콘트롤러(110)는 시스템 관리 버스(SM_BUS)를 통해 모듈 콘트롤러(131)에게 복원 동작의 수행을 지시할 수 있다. 백업 동작이 호스트의 파워 페일에 의해 시작된 경우에는 호스트의 파워가 정상적으로 복구되면 복원 동작이 수행될 수 있다
제2메모리 모듈(130)에 포함된 휘발성 메모리 장치들(133_0~133_7) 각각은 DRAM일 수 있다. 그리고 비휘발성 메모리 장치(139)는 NAND Flash 메모리 및 PCRAM 등 모든 종류의 비휘발성 메모리들 중 한가지일 수 있다. 도면에서는 비휘발성 메모리 장치(139)를 1개로 도시했지만 비휘발성 메모리 장치(139)가 다수개일 수도 있음은 당연하다. 비휘발성 메모리 장치(139)는 휘발성 메모리 장치들(133_0~133_7)의 모든 데이터를 백업할 수 있을 만큼 충분한 용량을 가질 수 있다. 제2메모리 모듈(130)은 DIMM 타입일 수 있으며, 비휘발성 메모리 장치(139)를 이용한 백업 및 복원 동작을 통해 전원이 꺼지는 경우에도 데이터를 유지하는 것이 가능하므로 NVDIMM일 수 있다.
메모리 시스템(100)에서 제2메모리 모듈(130)에는 비휘발성 메모리 장치(139)를 이용한 백업 및 복원 기능이 구현되어 있으므로, 데이터의 유실을 방지할 수 있다. 그러나 제1메모리 모듈(120)은 백업 및 복원 기능을 지원하지 않으므로 데이터가 유실될 수 있다. 메모리 시스템(100) 내의 모든 메모리 모듈을 제2메모리 모듈(130)과 같은 NVDIMM으로 구성하는 경우에는 모든 데이터의 유실을 방지할 수 있지만, 메모리 시스템(100) 내의 모든 메모리 모듈을 NVDIMM으로 구성하려면 많은 비용이 필요하다.
도 2는 본 발명의 다른 실시예에 따른 메모리 시스템(200)의 구성도이다.
도 2를 참조하면, 메모리 시스템(200)은 메모리 콘트롤러(210), 제1메모리 모듈(220), 제2메모리 모듈(230), 데이터 버스(DATA_BUS), 제1제어 버스(CONTROL_BUS0), 제2제어 버스(CONTROL_BUS1_FOR_220), 제3제어 버스(CONTROL_BUS1_FOR_230), 시스템 관리 버스(SM_BUS) 및 비상 전원(240)을 포함할 수 있다.
메모리 콘트롤러(210)는 제1메모리 모듈(220)과 제2메모리 모듈(230)의 리드(read) 및 라이트(write) 등의 각종 동작을 제어할 수 있다. 메모리 콘트롤러(210)는 제1제어 버스(CONTROL_BUS0)와 제2제어 버스(CONTROL_BUS1_FOR_220)를 이용해 제1메모리 모듈(220)을 제어하고, 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 이용해 제2메모리 모듈(230)을 제어할 수 있다. 그리고 메모리 콘트롤러(210)는 데이터 버스(DATA_BUS)를 이용해 제1메모리 모듈(220) 및 제2메모리 모듈(230)과 데이터를 송수신할 수 있다. 그리고 시스템 관리(system management) 버스(SM_BUS)를 통해 제1메모리 모듈(220) 및 제2메모리 모듈(230)에 대한 정보를 수신할 수 있다. 메모리 콘트롤러(210)는 스위치 어레이(211)를 포함할 수 있다. 스위치 어레이(211)는 백업 및 복원 동작시에 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 전기적으로 연결해, 제2메모리 모듈(230)의 모듈 콘트롤러(230)가 제1메모리 모듈(220)을 제어 가능하도록 할 수 있다. 백업 및 복원 동작시에 제2메모리 모듈(230)이 시스템 관리 버스(SM_BUS)를 통해 메모리 콘트롤러(210)에게 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)의 전기적인 연결을 요청하고, 메모리 콘트롤러(210)가 이에 응답해 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 전기적으로 연결할 수 있다.
제1제어 버스(CONTROL_BUS0)는 제1메모리 모듈(220)과 제2메모리 모듈(230)에 의해 공유되며, 제1메모리 모듈(220)과 제2메모리 모듈(230)을 제어하기 위한 공통의 제어 신호들이 메모리 콘트롤러(210)로부터 제1메모리 모듈(220)과 제2메모리 모듈(230)로 전달될 수 있다. 예를 들어, 제1제어 버스(CONTROL_BUS0)로는 액티브(ACT: Active) 신호, 컬럼 어드레스 스트로브(CAS: Column Address Strobe) 신호, 로우 어드레스 스트로브(RAS: Row Address Strobe) 신호 및 어드레스 신호들이 전달될 수 있다.
제2제어 버스(CONTROL_BUS1_FOR_220)는 제1메모리 모듈(220)의 제어를 위해 사용되며, 제1메모리 모듈(220)을 위한 독립적인 제어 신호들을 전달할 수 있다. 예를 들어, 제2제어 버스(CONTROL_BUS1_FOR_220)로는 1번 칩 셀렉트(CS1: Chip Select 1) 신호, 1번 클럭 인에이블(CKE1: Clock Enable 1) 신호, 1번 온 다이 터미네이션(ODT1: On Die Termination 1) 신호 및 1번 클럭(CK1: Clock 1) 신호가 전달될 수 있다. 여기서 1번이라는 명칭은 제1메모리 모듈(220)을 위한 신호들이라는 것을 의미할 수 있다.
제3제어 버스(CONTROL_BUS1_FOR_230)는 제2메모리 모듈(230)의 제어를 위해 사용되며, 제2메모리 모듈(230)을 위한 독립적인 제어 신호들을 전달할 수 있다. 예를 들어, 제3제어 버스(CONTROL_BUS1_FOR_230)로는 2번 칩 셀렉트(CS2: Chip Select 2) 신호, 2번 클럭 인에이블(CKE2: Clock Enable 2) 신호, 2번 온 다이 터미네이션(ODT2: On Die Termination 2) 신호 및 2번 클럭(CK2: Clock 2) 신호가 전달될 수 있다. 여기서 2번이라는 명칭은 제2메모리 모듈(230)을 위한 신호들이라는 것을 의미할 수 있다.
데이터 버스(DATA_BUS)는 데이터 전송을 위한 다수의 데이터 전송 라인들 및 다수의 데이터 전송 라인들로 전달되는 데이터를 스트로빙하기 위한 데이터 스트로브(data strobe) 신호들을 전달하는 다수의 데이터 스트로브 신호 전송 라인들을 포함할 수 있다.
제1메모리 모듈(220)은 메모리 버퍼(221), 휘발성 메모리 장치들(223_0~223_7), SPD(225, Serial Presence Detect)를 포함할 수 있다. 메모리 버퍼(221)는 제1제어 버스(CONTROL_BUS0)와 제2제어 버스(CONTROL_BUS1_FOR_220)를 통해 수신된 제어 신호들을 버퍼링해 휘발성 메모리 장치들(223_0~223_7)로 전달하고, 라이트 동작시에는 데이터 버스(DATA_BUS)를 통해 수신된 데이터를 버퍼링해 휘발성 메모리 장치들(223_0~223_7)로 전달하고, 리드 동작시에는 휘발성 메모리 장치들(223_0~223_7)로부터 리드된 데이터를 데이터 버스(DATA_BUS)로 송신할 수 있다. 내부 버스(227)는 메모리 버퍼(221)와 휘발성 메모리 장치들(223_0~223_7) 간에 제어 신호들 및 데이터를 전달하기 위해 사용되는 버스일 수 있다. SPD(225)는 제1메모리 모듈(220)에 관한 정보, 예를 들어 제1메모리 모듈(220) 내에 구비된 메모리 장치들의 종류, 개수, 용량 등에 관한 정보, 를 저장할 수 있다. 그리고 시스템 관리 버스(SM_BUS)를 통해 제1메모리 모듈(220)에 관한 정보를 메모리 콘트롤러(210)에게 전달할 수 있다. 제1메모리 모듈(220)에 포함된 휘발성 메모리 장치들(223_0~223_7) 각각은 DRAM일 수 있다. 그리고 제1메모리 모듈(220)은 DIMM(Dual In Line Memory Module) 타입일 수 있다. 제1메모리 모듈(220)은 자체적으로는 백업 및 복원 기능이 없지만, 제2메모리 모듈(230)에 의해 백업 및 복원 동작을 수행할 수 있다.
제2메모리 모듈(230)은 모듈 콘트롤러(231), 휘발성 메모리 장치들(233_0~233_7), SPD(235) 및 비휘발성 메모리 장치들(239_0, 239_1)를 포함할 수 있다.
모듈 콘트롤러(231)는 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 통해 수신된 제어 신호들을 버퍼링해 휘발성 메모리 장치들(233_0~233_7)로 전달하고, 라이트 동작시에는 데이터 버스(DATA_BUS)를 통해 수신된 데이터를 버퍼링해 휘발성 메모리 장치들(233_0~233_7)로 전달하고, 리드 동작시에는 휘발성 메모리 장치들(233_0~233_7)로부터 리드된 데이터를 데이터 버스(DATA_BUS)로 송신할 수 있다. 내부 버스(237)는 모듈 콘트롤러(231)와 휘발성 메모리 장치들(233_0~233_7) 및 비휘발성 메모리 장치(239_0, 239_1) 간에 제어 신호들 및 데이터를 전달하기 위해 사용되는 버스일 수 있다. SPD(235)는 제2메모리 모듈(230)에 관한 정보, 예를 들어 제2메모리 모듈(230) 내에 구비된 메모리 장치들의 종류, 개수, 용량 등에 관한 정보, 를 저장할 수 있다. 그리고 시스템 관리 버스(SM_BUS)를 통해 제2메모리 모듈(230)에 관한 정보를 메모리 콘트롤러(210)에게 전달할 수 있다.
또한, 모듈 콘트롤러(231)는 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7), 제2메모리 모듈(230)의 휘발성 메모리 장치들(233_0~233_7)과 비휘발성 메모리 장치들(239_0, 239_1)을 제어해 백업 동작 및 복원 동작을 수행할 수 있다. 모듈 콘트롤러(231)는 백업 동작 및 복원 동작시에 시스템 관리 버스(SM_BUS)를 통해 메모리 콘트롤러(210)에게 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 전기적으로 연결하라고 요청하고, 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 이용해 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)을 제어할 수 있다. 백업 동작시에 모듈 콘트롤러(231)는 제1메모리 모듈(220)과 제2메모리 모듈(230)의 휘발성 메모리 장치들(223_0~223_7, 233_0~233_7))의 데이터를 리드해 비휘발성 메모리 장치들(239_0, 239_1)에 라이트할 수 있다. 백업 동작시에 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)로부터 리드된 데이터는 데이터 버스(DATA_BUS)를 통해 제2메모리 모듈(230)에 전달되고 비휘발성 메모리 장치들(239_0, 239_1)에 라이트될 수 있다. 비휘발성 메모리 장치들(239_0, 239_1)에 백업된 데이터는 메모리 시스템(200)의 전원이 꺼지더라도 유실되지 않고 유지될 수 있다. 복원 동작시에 모듈 콘트롤러(231)는 비휘발성 메모리 장치들(239_0, 239_1)에 저장된 데이터를 리드해 제1메모리 모듈(220)과 제2메모리 모듈(230)의 휘발성 메모리 장치들(223_0~223_7, 233_0~233_7)에 라이트할 수 있다. 복원 동작에 의해 백업되었던 데이터가 그대로 복원될 수 있다.
백업 동작은 메모리 콘트롤러(210)의 명령에 의해 시작될 수 있다. 메모리 콘트롤러(210)는 시스템 관리 버스(SM_BUS)를 통해 모듈 콘트롤러(231)에게 백업 동작의 수행을 지시할 수 있다. 또한, 백업 동작은 호스트의 파워 페일에 의해 시작될 수 있다. 모듈 콘트롤러(231)는 호스트의 파워 페일시에 휘발성 메모리 장치들(223_0~223_7, 233_0~233_7)에 저장된 데이터를 비휘발성 메모리 장치들(239_0, 239_1)에 백업해 데이터의 유실을 방지할 수 있다. 호스트의 파워 페일로 인한 백업 동작의 수행시에는, 백업 동작의 수행을 위해 비상 전원(240)이 사용될 수 있다. 비상 전원(240)은 제1메모리 모듈(220)과 제2메모리 모듈(230)에 백업 동작에 필요한 전원을 공급할 수 있다. 여기서 비상 전원은 슈퍼 캐패시터(super capacitor)일 수 있다.
복원 동작은 메모리 콘트롤러(210)의 명령에 의해 시작될 수 있다. 메모리 콘트롤러(210)는 시스템 관리 버스(SM_BUS)를 통해 모듈 콘트롤러(231)에게 복원 동작의 수행을 지시할 수 있다. 백업 동작이 호스트의 파워 페일에 의해 시작된 경우에는 호스트의 파워가 정상적으로 복구되면 복원 동작이 수행될 수 있다
제2메모리 모듈(230)에 포함된 휘발성 메모리 장치들(233_0~233_7) 각각은 DRAM일 수 있다. 그리고 비휘발성 메모리 장치들(239_0, 239_1)는 NAND Flash 메모리 및 PCRAM 등 모든 종류의 비휘발성 메모리들 중 한가지일 수 있다. 도면에서는 비휘발성 메모리 장치들(239_0, 239_1)을 2개로 도시했지만 비휘발성 메모리 장치들(239_0, 239_1)의 개수가 이와 다를 수도 있음은 당연하다. 비휘발성 메모리 장치들(239_0, 239_1)는 휘발성 메모리 장치들(223_0~223_7, 233_0~233_7))의 모든 데이터를 백업할 수 있을 만큼 충분한 용량을 가질 수 있다. 제2메모리 모듈(230)은 DIMM 타입일 수 있으며, 비휘발성 메모리 장치들(239_0, 239_1)을 이용한 백업 및 복원 동작을 통해 전원이 꺼지는 경우에도 데이터를 유지하는 것이 가능하므로 NVDIMM일 수 있다.
도 2의 메모리 시스템(200)에서는 2개의 메모리 모듈(220, 230) 중 1개의 메모리 모듈(230)만이 비휘발성 메모리 장치들(239_0, 239_1)을 포함하지만, 2개의 메모리 모듈(220, 230) 내의 휘발성 메모리 장치들(223_0~223_7, 233_0~233_7)의 데이터를 모두 백업 및 복원하는 것이 가능할 수 있다.
도 3은 본 발명의 또 다른 실시예에 따른 메모리 시스템(300)의 구성도이다.
도 3을 참조하면, 메모리 시스템(300)은 메모리 콘트롤러(310), 제1메모리 모듈(220), 제2메모리 모듈(230), 데이터 버스(DATA_BUS), 제1제어 버스(CONTROL_BUS0), 제2제어 버스(CONTROL_BUS1_FOR_220), 제3제어 버스(CONTROL_BUS1_FOR_230), 시스템 관리 버스(SM_BUS), 비상 전원(240) 및 스위치 어레이(350)를 포함할 수 있다.
도 3의 메모리 시스템(300)은 도 2의 메모리 시스템(200)에서 메모리 콘트롤러(210) 내에 존재하던 스위치 어레이(211)가 메모리 콘트롤러(310) 외부에 위치한다는 차이점을 가진다. 스위치 어레이(350)는 호스트 파워 페일시, 즉 메모리 콘트롤러(310)를 포함하는 호스트의 파워 페일시, 에 비상 전원(240)을 이용해 동작할 수 있다. 스위치 어레이(350)를 메모리 콘트롤러(310) 외부에 위치시키는 것에 의해 호스트의 파워 페일시에 스위치 어레이(350)가 보다 안정적으로 동작할 수 있다.
도 4는 도 2와 도 3의 메모리 시스템(200, 300)에서의 백업 및 복원 동작을 도시한 순서도이다.
도 4를 참조하면, 먼저 백업 동작의 수행이 결정될 수 있다(S410). 백업 동작의 수행의 결정은 메모리 콘트롤러(210, 310)가 시스템 관리 버스(SM_BUS)를 통해 제2메모리 모듈(230)의 모듈 콘트롤러(231)에게 백업 동작의 수행을 요청하는 것에 의해 이루어질 수 있다. 또한, 호스트의 파워 페일에 의해 백업 동작의 수행이 결정될 수도 있다.
이제 백업 동작의 수행을 위해 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)가 전기적으로 연결될 수 있다(S420). 이는 모듈 콘트롤러가 시스템 관리 버스(SM_BUS)를 통해 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_220)를 전기적으로 연결하라는 요청을 보내고, 스위치 어레이(211, 350)가 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 전기적으로 연결하는 것에 의해 수행될 수 있다. 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_220)가 전기적으로 연결되는 동안에 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_220)는 메모리 콘트롤러(210, 310)로부터 전기적으로 분리될 수 있다.
이제 모듈 콘트롤러(231)의 제어에 의해 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)과 제2메모리 모듈(230)의 휘발성 메모리 장치들(233_0~233_7)의 데이터가 제2메모리 모듈(230)의 비휘발성 메모리 장치들(239_0, 239_1)에 백업될 수 있다(S430). 백업 동작시에 모듈 콘트롤러(231)는 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 이용해 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)로부터 데이터가 리드되도록 제어할 수 있으며, 휘발성 메모리 장치들(223_0~223_7)로부터 리드된 데이터는 데이터 버스(DATA_BUS)를 통해 제2메모리 모듈(230)로 전달될 수 있다.
백업 동작이 완료되면 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)가 전기적으로 분리될 수 있다(S440).
이제 복원 동작의 수행이 결정될 수 있다(S450). 복원 동작의 수행의 결정은 메모리 콘트롤러(210, 310)가 시스템 관리 버스(SM_BUS)를 통해 제2메모리 모듈(230)의 모듈 콘트롤러(231)에게 백업 동작의 수행을 요청하는 것에 의해 이루어질 수 있다. 또한, 호스트의 파워 페일 후 파워가 정상 복구되는 것에 의해 복원 동작의 수행이 결정될 수 있다.
이제 복원 동작의 수행을 위해 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)가 전기적으로 연결될 수 있다(S460). 이는 모듈 콘트롤러가 시스템 관리 버스(SM_BUS)를 통해 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_220)를 전기적으로 연결하라는 요청을 보내고, 스위치 어레이(211, 350)가 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 전기적으로 연결하는 것에 의해 수행될 수 있다. 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_220)가 전기적으로 연결되는 동안에 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_220)는 메모리 콘트롤러(210, 310)로부터 전기적으로 분리될 수 있다.
이제 모듈 콘트롤러(231)의 제어에 의해 제2메모리 모듈(230)의 비휘발성 메모리 장치들(239_0, 239_1)의 데이터가 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)과 제2메모리 모듈(230)의 휘발성 메모리 장치들(233_0~233_7)로 복원될 수 있다(S470). 복원 동작시에 비휘발성 메모리 장치들(239_0, 239_1)에 저장된 데이터 중 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)로 복원되어야 할 데이터는 데이터 버스(DATA_BUS)를 통해 제1메모리 모듈(220)로 전달될 수 있다. 또한, 모듈 콘트롤러는 제1제어 버스(CONTROL_BUS0)와 제3제어 버스(CONTROL_BUS1_FOR_230)를 이용해 제1메모리 모듈(220)의 휘발성 메모리 장치들(223_0~223_7)에 데이터가 라이트되도록 제어할 수 있다.
복원 동작이 완료되면 제2제어 버스(CONTROL_BUS1_FOR_220)와 제3제어 버스(CONTROL_BUS1_FOR_230)가 전기적으로 분리될 수 있다(S480).
본 발명의 기술사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 전문가라면 본 발명의 기술사상의 범위 내에서 다양한 실시예가 가능함을 알 수 있을 것이다.
200: 메모리 시스템 210: 메모리 콘트롤러
220: 제1메모리 모듈 230: 제2메모리 모듈
DATA_BUS: 데이터 버스 CONTROL_BUS0: 제1제어 버스
CONTROL_BUS1_FOR_220: 제2제어 버스
CONTROL_BUS1_FOR_230: 제3제어 버스
SM_BUS: 시스템 관리 버스 240: 비상 전원

Claims (17)

  1. 메모리 콘트롤러;
    상기 메모리 콘트롤러의 제어를 받아 동작하고, 하나 이상의 제1휘발성 메모리 장치들을 포함하는 제1메모리 모듈;
    상기 메모리 콘트롤러의 제어를 받아 동작하고, 하나 이상의 비휘발성 메모리 장치들을 포함하는 제2메모리 모듈;
    상기 메모리 콘트롤러, 상기 제1메모리 모듈 및 상기 제2메모리 모듈 간의 데이터 전송을 위한 데이터 버스;
    상기 메모리 콘트롤러, 상기 제1메모리 모듈 및 상기 제2메모리 모듈 간의 제1제어 신호들의 전송을 위한 제1제어 버스;
    상기 메모리 콘트롤러와 상기 제1메모리 모듈 간의 제2제어 신호들의 전송을 위한 제2제어 버스; 및
    상기 메모리 콘트롤러와 상기 제2메모리 모듈 간의 제3제어 신호들의 전송을 위한 제3제어 버스를 포함하고,
    상기 하나 이상의 제1휘발성 메모리 장치들의 데이터를 상기 하나 이상의 비휘발성 메모리 장치들로 백업하는 백업 동작시에, 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결되는
    메모리 시스템.
  2. 제 1항에 있어서,
    상기 하나 이상의 비휘발성 메모리 장치들에 백업된 데이터를 상기 하나 이상의 제1휘발성 메모리 장치들로 복원하는 복원 동작시에, 상기 메모리 콘트롤러는 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결하는
    메모리 시스템.
  3. 제 2항에 있어서,
    상기 백업 동작시와 상기 복원 동작시에, 상기 메모리 콘트롤러는 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결하는
    메모리 시스템.
  4. 제 3항에 있어서,
    상기 백업 동작시와 상기 복원 동작시에, 상기 제2메모리 모듈은 시스템 관리 버스(SMB: System Management Bus)를 통해 상기 메모리 콘트롤러에 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결하라는 요청을 송신하는
    메모리 시스템.
  5. 제 1항에 있어서,
    상기 제2메모리 모듈은 모듈 콘트롤러를 더 포함하고,
    상기 모듈 콘트롤러는 상기 백업 동작시에 상기 하나 이상의 제1휘발성 메모리 장치들로부터 데이터가 리드되도록 상기 제1메모리 모듈을 제어하고, 리드된 데이터가 상기 하나 이상의 비휘발성 메모리 장치에 라이트되도록 상기 하나 이상의 비휘발성 메모리 장치를 제어하는
    메모리 시스템.
  6. 제 5항에 있어서,
    상기 모듈 콘트롤러는 상기 백업 동작시에 상기 제1제어 버스와 상기 제2제어 버스에 전기적으로 연결된 상기 제3제어 버스를 이용해 상기 제1메모리 모듈을 제어하고,,
    상기 백업 동작시에 상기 제1메모리 모듈로부터 리드된 데이터는 상기 데이터 버스를 통해 상기 제2메모리 모듈로 전달되는
    메모리 시스템.
  7. 제 1항에 있어서,
    상기 제2메모리 모듈은 하나 이상의 제2휘발성 메모리 장치들을 더 포함하고,
    상기 백업 동작시에 상기 하나 이상의 제2휘발성 메모리 장치들의 데이터가 상기 하나 이상의 비휘발성 메모리 장치들로 백업되는
    메모리 시스템.
  8. 제 1항에 있어서,
    상기 제1제어 신호들은 상기 제1메모리 모듈과 상기 제2메모리 모듈을 위한 액티브 신호, 컬럼 어드레스 스트로브 신호, 로우 어드레스 스트로브 신호, 및 어드레스 신호들을 포함하는
    메모리 시스템.
  9. 제 8항에 있어서,
    상기 제2제어 신호들은 상기 제1메모리 모듈을 위한 칩 셀렉트 신호, 클럭 인에이블 신호, 온 다이 터미네이션 신호 및 클럭 신호를 포함하는
    메모리 시스템.
  10. 제 9항에 있어서,
    상기 제3제어 신호들은 상기 제2메모리 모듈을 위한 셀렉트 신호, 클럭 인에이블 신호, 온 다이 터미네이션 신호 및 클럭 신호를 포함하는
    메모리 시스템.
  11. 제 1항에 있어서,
    상기 메모리 시스템은
    상기 백업 동작시에 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 연결하기 위한 스위치 어레이
    를 더 포함하는 메모리 시스템.
  12. 제 11항에 있어서,
    상기 스위치 어레이는 상기 제2제어 버스와 상기 제3제어 버스의 전기적 연결시에 상기 제2제어 버스와 상기 제3버스를 상기 메모리 콘트롤러와 전기적으로 분리하는
    메모리 시스템.
  13. 제 1항에 있어서,
    상기 메모리 시스템은 비상 전원을 더 포함하고,
    호스트의 파워 페일에 의한 백업 동작시에, 상기 제1메모리 모듈과 상기 제2메모리 모듈은 상기 비상 전원으로부터 전원을 공급 받는
    메모리 시스템.
  14. 메모리 콘트롤러, 제1메모리 모듈, 제2메모리 모듈, 상기 제1메모리 모듈과 상기 제2메모리 모듈이 공유하는 데이터 버스, 상기 제1메모리 모듈과 상기 제2메모리 모듈이 공유하는 제1제어 버스, 상기 제1메모리 모듈을 위한 제2제어 버스 및 상기 제2메모리 모듈을 위한 제3제어 버스를 포함하는 메모리 시스템의 동작 방법에 있어서,
    백업 동작의 수행이 결정되는 단계;
    상기 제2제어 버스와 상기 제3제어 버스가 전기적으로 연결되는 단계;
    상기 제2메모리 모듈이 상기 제1제어 버스와 상기 제2제어 버스에 전기적으로 연결된 상기 제3제어 버스를 이용해 상기 제1메모리 모듈의 휘발성 메모리 장치들로부터 데이터가 리드되도록 제어하는 단계;
    상기 제1메모리 모듈의 하나 이상의 휘발성 메모리 장치들로부터 리드된 데이터가 상기 데이터 버스를 통해 상기 제2메모리 모듈로 전달되는 단계; 및
    상기 데이터 버스를 통해 전달된 데이터가 상기 제2메모리 모듈의 하나 이상의 비휘발성 메모리 장치들에 라이트되는 단계
    를 포함하는 메모리 시스템의 동작 방법.
  15. 제 14항에 있어서,
    상기 라이트되는 단계 이후에, 상기 제2제어 버스와 상기 제3제어 버스를 전기적으로 분리하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  16. 제 15항에 있어서,
    복원 동작의 수행이 결정되는 단계;
    상기 제2제어 버스와 상기 제3제어 버스가 전기적으로 다시 연결되는 단계;
    상기 제2메모리 모듈의 하나 이상의 비휘발성 메모리 장치들로부터 데이터가 리드되는 단계;
    상기 하나 이사의 비휘발성 메모리 장치들로부터 리드된 데이터가 상기 데이터 버스를 통해 상기 제1메모리 모듈로 전달되는 단계; 및
    상기 제2메모리 모듈이 상기 제1제어 버스와 상기 제2제어 버스에 전기적으로 연결된 상기 제3제어 버스를 이용해 상기 제1메모리 모듈의 휘발성 메모리 장치들에 상기 제1메모리 모듈로 전달된 데이터가 라이트되도록 제어하는 단계
    를 더 포함하는 메모리 시스템의 동작 방법.
  17. 제 14항에 있어서,
    상기 백업 동작의 수행은
    상기 메모리 콘트롤러의 요청에 의해 또는 호스트의 파워 페일에 의해 결정되는
    메모리 시스템의 동작 방법.
KR1020160179321A 2015-10-16 2016-12-26 메모리 시스템 및 이의 동작 방법 KR20180075759A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020160179321A KR20180075759A (ko) 2016-12-26 2016-12-26 메모리 시스템 및 이의 동작 방법
US15/670,087 US10474378B2 (en) 2016-12-26 2017-08-07 Memory system and operating method thereof
US16/680,017 US11194479B2 (en) 2016-12-26 2019-11-11 Memory system and operating method thereof
US16/799,566 US11138120B2 (en) 2015-10-16 2020-02-24 Memory system
US17/493,313 US11709777B2 (en) 2015-10-16 2021-10-04 Memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160179321A KR20180075759A (ko) 2016-12-26 2016-12-26 메모리 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20180075759A true KR20180075759A (ko) 2018-07-05

Family

ID=62629675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160179321A KR20180075759A (ko) 2015-10-16 2016-12-26 메모리 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (2) US10474378B2 (ko)
KR (1) KR20180075759A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200201566A1 (en) * 2018-12-19 2020-06-25 Micron Technology, Inc. Module processing resource
US11126251B2 (en) * 2019-03-01 2021-09-21 Micron Technology, Inc. Power management in memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3204143B2 (ja) 1997-01-06 2001-09-04 日本電気株式会社 ディスクキャッシュの制御方法
US8250330B2 (en) 2004-12-11 2012-08-21 International Business Machines Corporation Memory controller having tables mapping memory addresses to memory modules
JP4474648B2 (ja) 2005-03-25 2010-06-09 日本電気株式会社 メモリシステム及びそのホットスワップ方法
JP2010170597A (ja) * 2009-01-20 2010-08-05 Elpida Memory Inc 半導体記憶装置及びそのリードプリアンブル信号の制御方法、並びにデータ伝送システム
US8098539B2 (en) 2009-08-26 2012-01-17 Qualcomm Incorporated Hybrid single and dual channel DDR interface scheme by interleaving address/control signals during dual channel operation
JP5060574B2 (ja) * 2010-03-16 2012-10-31 株式会社東芝 メモリシステム
US9164679B2 (en) * 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US8880790B2 (en) * 2011-04-11 2014-11-04 Inphi Corporation Methods and apparatus for transferring data between memory modules

Also Published As

Publication number Publication date
US20180181325A1 (en) 2018-06-28
US10474378B2 (en) 2019-11-12
US20200081632A1 (en) 2020-03-12
US11194479B2 (en) 2021-12-07

Similar Documents

Publication Publication Date Title
US11797225B2 (en) Non-volatile memory module architecture to support memory error correction
US11830867B2 (en) Memory device with a multiplexed command/address bus
US8020035B2 (en) Expander circuit for a solid state persistent storage device that provides a plurality of interfaces to corresponding storage controllers
US10672474B2 (en) High-performance on-module caching architectures for non-volatile dual in-line memory module (NVDIMM)
CN104335187A (zh) 独立于存储器控制器的存储备份
US20190065320A1 (en) Memory module, module controller of memory module, and operation method of memory module
CN112835519B (zh) 一种数据读取方法、装置、电子设备及存储介质
CN112000276B (zh) 一种内存条
US11776627B2 (en) Memory module for platform with non-volatile storage
US20230259466A1 (en) Memory module with programmable command buffer
KR20180075759A (ko) 메모리 시스템 및 이의 동작 방법
US9389972B2 (en) Data retrieval from stacked computer memory
US20100125704A1 (en) Storage control apparatus and storage system
US10725876B2 (en) Electronic circuit board
US20110022741A1 (en) Recording and/or reproducing apparatus
KR101509183B1 (ko) 네트워크 직접 부착방식의 저장장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal