KR20230069800A - 서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법 - Google Patents

서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법 Download PDF

Info

Publication number
KR20230069800A
KR20230069800A KR1020220077088A KR20220077088A KR20230069800A KR 20230069800 A KR20230069800 A KR 20230069800A KR 1020220077088 A KR1020220077088 A KR 1020220077088A KR 20220077088 A KR20220077088 A KR 20220077088A KR 20230069800 A KR20230069800 A KR 20230069800A
Authority
KR
South Korea
Prior art keywords
memory device
volatile memory
data
volatile
user data
Prior art date
Application number
KR1020220077088A
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 US18/054,196 priority Critical patent/US20230152985A1/en
Priority to CN202211411089.1A priority patent/CN116126589A/zh
Publication of KR20230069800A publication Critical patent/KR20230069800A/ko

Links

Images

Classifications

    • 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/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • 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
    • 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/0647Migration 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Landscapes

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

Abstract

서든 파워 오프(sudden power-off) 시 데이터를 백업(back-up)하기 위한 메모리 시스템 및 그 동작 방법이 개시된다. 본 개시의 기술적 사상의 일측면에 따른 메모리 시스템은, 제1 비휘발성 메모리 장치, 제2 비휘발성 메모리 장치, 사용자 데이터(user data) 또는 맵 테이블(map table)을 저장하도록 구성된 적어도 하나의 휘발성 메모리 장치 및 서든 파워 오프(sudden power-off)가 발생한 경우, 적어도 하나의 휘발성 메모리 장치로부터 제1 비휘발성 메모리 장치로 사용자 데이터를 데이터 덤프(data dump)하도록 구성된 메모리 컨트롤러를 포함하고, 제1 비휘발성 메모리 장치는, 제2 비휘발성 메모리 장치보다, 데이터가 기입되는 속도가 빠르고, 용량이 작은 것을 특징으로 할 수 있다.

Description

서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법{MEMORY SYSTEM FOR BACKING-UP DATA IN CASE OF SUDDEN POWER-OFF AND METHOD OF OPERATION THEREOF}
본 개시의 기술적 사상은 메모리 시스템에 관한 것으로서, 상세하게는 서든 파워 오프(sudden power-off) 시 데이터를 백업(back-up)하기 위한 메모리 시스템 및 그 동작 방법에 관한 것이다.
메모리 장치로 공급되는 전원이 갑자기 차단되는 서든 파워 오프(sudden power-off) 상황에서, 휘발성 메모리 등에 저장된 사용자 데이터는 보호받지 못할 수 있으며, 데이터 손실 등의 문제가 발생할 수 있다. 따라서, 서든 파워 오프 상황에서도 사용자 데이터를 보호할 수 있는 기술이 필요하다.
한편, 메모리 장치에서, 고용량 지원, 속도 향상, 신뢰도 향상, 작은 폼 팩터(form factor)로의 구현 등은 중요한 요소이다. 다만, 서든 파워 오프 상황에서 사용자 데이터를 보호하기 위하여 다량의 커패시터 등이 요구된다면, 메모리 장치를 작은 폼 팩터로 구현하지 못할 수 있으며, 메모리 장치에 요구되는 전력 소모량이 증가하는 문제가 발생할 수 있다.
본 개시의 기술적 사상은, 서든 파워 오프(sudden power-off) 시 데이터를 백업(back-up)하기 위한 메모리 시스템 및 그 동작 방법을 제공하는 데에 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일 측면에 따른 메모리 시스템은, 제1 비휘발성 메모리 장치, 제2 비휘발성 메모리 장치, 사용자 데이터(user data) 또는 맵 테이블(map table)을 저장하도록 구성된 적어도 하나의 휘발성 메모리 장치 및 서든 파워 오프(sudden power-off)가 발생한 경우, 적어도 하나의 휘발성 메모리 장치로부터 제1 비휘발성 메모리 장치로 사용자 데이터를 데이터 덤프(data dump)하도록 구성된 메모리 컨트롤러를 포함하고, 제1 비휘발성 메모리 장치는, 제2 비휘발성 메모리 장치보다, 데이터가 기입되는 속도가 빠르고, 용량이 작은 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 메모리 시스템은, 제1 비휘발성 메모리 장치, 제2 비휘발성 메모리 장치, 맵 테이블을 저장하도록 구성된 제3 비휘발성 메모리 장치, 사용자 데이터를 저장하도록 구성된 휘발성 메모리 장치 및 서든 파워 오프가 발생한 경우, 휘발성 메모리 장치로부터 제1 비휘발성 메모리 장치로 사용자 데이터를 데이터 덤프하도록 구성된 메모리 컨트롤러를 포함하고, 제1 비휘발성 메모리 장치는, 제2 비휘발성 메모리 장치보다, 데이터가 기입되는 속도가 빠르고, 용량이 작은 것을 특징으로 할 수 있다.
본 개시의 기술적 사상의 일 측면에 따른 제1 비휘발성 메모리 장치, 제2 비휘발성 메모리 장치 및 휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법은, 정상 동작 상태에서, 휘발성 메모리 장치로부터 제2 비휘발성 메모리 장치로 사용자 데이터를 기입하는 단계, 서든 파워 오프가 발생한 경우, 휘발성 메모리 장치로부터 제1 비휘발성 메모리 장치로 사용자 데이터를 기입하는 단계 및 제1 비휘발성 메모리 장치로부터 제2 비휘발성 메모리 장치로 사용자 데이터를 기입하는 단계를 포함하고, 제1 비휘발성 메모리 장치는, 제2 비휘발성 메모리 장치보다, 데이터가 기입되는 속도가 빠르고, 용량이 작은 것을 특징으로 할 수 있다.
본 개시의 예시적 실시예에 따른 시스템 및 동작 방법에 의하면, 메모리 시스템에 서든 파워 오프가 발생하더라도, 안전하게 사용자 데이터를 백업할 수 있다.
또한, 본 개시의 예시적 실시예에 따른 시스템 및 동작 방법에 의하면, 작은 폼 팩터를 갖는 메모리 시스템이 제공될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 시스템 및 동작 방법에 의하면, 서든 파워 오프가 발생했을 때, 적은 소모 전력으로 사용자 데이터가 백업될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 시스템 및 동작 방법에 의하면, 비용적으로 유리한 메모리 시스템이 제공될 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 메모리 시스템의 예시를 나타내는 도면이다.
도 2는 메모리 시스템의 예시를 나타내는 도면이다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 장치를 설명하기 위한 도면이다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 시스템 동작 방법의 예시를 나타내는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 메모리 시스템 동작 방법의 예시를 나타내는 도면이다.
도 10은 본 개시의 예시적 실시예에 메모리 시스템의 구현 예를 나타내는 도면이다.
이하, 첨부한 도면을 참조하여 본 개시의 실시예들에 대해 상세히 설명한다.
도 1은 메모리 시스템의 예시를 나타내는 도면이다.
도 1을 참조하면, 메모리 시스템(10)은, 메모리 컨트롤러(100), 비휘발성 메모리 장치(110) 및/또는 휘발성 메모리 장치(120)를 포함할 수 있다. 메모리 컨트롤러(100)는 각종 신호를 비휘발성 메모리 장치(110) 또는 휘발성 메모리 장치(120)로 제공함으로써, 기록 및 독출 등의 메모리 동작을 제어한다. 예컨대, 메모리 컨트롤러(100)는 커맨드(CMD) 및 어드레스(ADD)를 비휘발성 메모리 장치(110) 또는 휘발성 메모리 장치(120)로 제공하여 비휘발성 메모리 장치(110) 또는 휘발성 메모리 장치(120)의 데이터(DATA)를 액세스한다.
메모리 컨트롤러(100)는 호스트(HOST)로부터의 요청에 따라 비휘발성 메모리 장치(110) 또는 휘발성 메모리 장치(120)로 액세스할 수 있다. 메모리 컨트롤러(100)는 다양한 프로토콜을 사용하여 호스트와 통신할 수 있으며, 예컨대, 메모리 컨트롤러(100)는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA) 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 호스트와 통신할 수 있다. 이외에도, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface) 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 다양한 인터페이스 프로토콜들이 호스트와 메모리 컨트롤러(100) 사이의 프로토콜에 적용될 수 있으며, 다만, 이에 제한되는 것은 아니다.
비휘발성 메모리 장치(110)는 다양한 종류의 메모리를 포함할 수 있으며, 일 예로서 비휘발성 메모리 장치(110)는 플래시(flash) 메모리, MRAM(Magnetic RAM), FeRAM(Ferroelectric RAM), PRAM(Phase change RAM) 및 ReRAM(Resistive RAM) 등을 포함할 수 있고, 다만, 이에 제한되는 것은 아니다.
휘발성 메모리 장치(120)는 일 예로서 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등과 같은 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, DRAM)를 포함할 수 있으며, 다만, 이에 제한되는 것은 아니다.
비휘발성 메모리 장치(110) 또는 휘발성 메모리 장치(120)는 다양한 표준에 따른 인터페이스를 통해 메모리 컨트롤러(100)와 통신할 수 있다. 일 예로서, 메모리 컨트롤러(100)와 비휘발성 메모리 장치(110) 또는 휘발성 메모리 장치(120)는 LPDDR(Low Power Double Data Rate) 또는 다른 다양한 종류의 표준에 따른 인터페이스를 통해 통신을 수행할 수 있다.
메모리 시스템(10)은 일 예로서, SSD(Solid State Drive)에 해당할 수 있다. 구체적으로, 메모리 컨트롤러(100)는 SSD 컨트롤러와 대응될 수 있고, 휘발성 메모리 장치(120)는 라이트 버퍼(write buffer)에 대응될 수 있다. 다시 말해, 메모리 시스템(10)은 PCB(Printed Circuit Board) 상에 배치된 SSD 컨트롤러, 라이트 버퍼, 비휘발성 메모리 및/또는 보조 전원을 포함하는 SSD에 대응될 수 있다. 보조 전원은 일 예로서, 커패시터가 사용될 수 있다. 따라서, SSD에서 사용되는 소모 전력량이 증가할수록 요구되는 커패시터의 용량이 증가할 수 있다. 또한, 요구되는 커패시터의 용량이 증가함에 따라, PCB 상에 커패시터가 차지하는 면적이 증가하는 문제가 발생할 수 있으며, SSD의 폼 팩터가 증가될 수 있다.
메모리 시스템(10)이 정상 동작하기 위해서는, 메모리 컨트롤러(100), 비휘발성 메모리 장치(110) 및 휘발성 메모리 장치(120)로 충분한 전력이 공급되어야 한다. 메모리 시스템(10)에 충분한 전력이 공급되지 못하는 경우, 사용자 데이터가 손실되는 등의 문제가 발생할 수 있다. 예를 들어, 메모리 시스템(10)에 공급되는 전력이 갑자기 차단되는 서든 파워 오프(sudden power-off)가 발생한 경우, 휘발성 메모리 장치(120)에 포함된 라이트 버퍼에 저장된 사용자 데이터가 손실될 수 있다.
서든 파워 오프가 발생하였을 때 사용자 데이터를 보호하기 위한 방법으로, 대용량의 커패시터(capacitor)들을 이용하는 방법이 있을 수 있다. 구체적으로, 서든 파워 오프가 발생한 경우, 메모리 컨트롤러(100)는 휘발성 메모리 장치(120)에 포함된 라이트 버퍼에 저장된 사용자 데이터를, 대용량의 커패시터를 이용하여 비휘발성 메모리 장치(110)로 백업(back-up)할 수 있다. 예를 들어, 서든 파워 오프가 발생한 경우, 메모리 컨트롤러(100)는 대용량의 커패시터들을 이용하여, DRAM 내의 라이트 버퍼에 저장된 사용자 데이터를 V-NAND(Vertical NAND) 메모리 장치의 SLC(Single Level Cell) 영역으로 백업할 수 있다. V-NAND 메모리 장치의 SLC 영역에 사용자 데이터를 백업하는 경우, V-NAND 메모리 장치의 SLC 영역은 데이터 기입 속도가 느리기 때문에 사용자 데이터의 백업 시간이 길어질 수 있다. 또한, V-NAND 메모리 장치의 모든 채널(channel) 및 웨이(way)에 연결된 NAND 메모리 장치 마다 기입 동작이 발생함에 따라, 사용자 데이터 백업에 많은 전력이 요구될 수 있다. 사용자 데이터 백업에 요구되는 시간이 길어지고, 사용자 데이터 백업에 요구되는 전력이 많아질수록, 메모리 시스템(10)에 요구되는 커패시터의 용량이 증가될 수 있다. 요구되는 커패시터의 용량이 증가되는 경우, 작은 폼 팩터를 갖는 메모리 시스템(10)을 구현할 수 없으며, 메모리 시스템(10)의 생산 비용 측면에서도 불리할 수 있다. 본 개시의 예시적 실시예에 따른 메모리 시스템은, MRAM과 같은 비휘발성 메모리 장치를 포함함으로써, MRAM과 같은 비휘발성 메모리 장치에 사용자 데이터를 데이터 덤프(data dump)하도록 할 수 있으며, 요구되는 커패시터의 용량을 감소시킬 수 있다. 본 개시의 예시적 실시예에 따른 메모리 시스템이 MRAM과 같은 비휘발성 메모리 장치를 포함하는 것과 관련된 보다 자세한 내용은 후술하기로 한다.
도 2는 메모리 시스템의 예시를 나타내는 도면이다.
도 2를 참조하면, 메모리 시스템(10')은 메모리 컨트롤러(100'), 비휘발성 메모리 장치(110') 및/또는 휘발성 메모리 장치(120')를 포함할 수 있다. 메모리 시스템(10')은 메모리 컨트롤러(100'), 비휘발성 메모리 장치(110') 및 휘발성 메모리 장치(120')는 도 1의 메모리 시스템(10)은, 메모리 컨트롤러(100), 비휘발성 메모리 장치(110) 및 휘발성 메모리 장치(120)와 각각 대응될 수 있다.
메모리 컨트롤러(100')는 호스트 매니저(101), 버퍼 매니저(102) 및/또는 플래시 매니저(103)를 포함할 수 있다. 호스트 매니저(101)는 호스트와 통신하도록 구성될 수 있고, 버퍼 매니저(102)는 휘발성 메모리 장치(120')와 통신하도록 구성될 수 있고, 플래시 매니저(103)는 비휘발성 메모리 장치(110')와 통신하도록 구성될 수 있다.
메모리 컨트롤러(100')는 서든 파워 오프가 발생한 경우에도, 맵 테이블(map table) 관리, 데이터 버퍼 관리, 블록(block) 할당/반납, 배드 블록(bad block) 대체, Reclaim, Wear Leveling, Compaction, Garbage Collection, 비휘발성 메모리 인터페이스 스케줄링, 방어 코드 수행 등의 다양한 동작들을 수행해야 할 수 있으므로, 사용자 데이터 백업은 오랜 동작 시간과 많은 전력량을 요구할 수 있다. 앞서 설명한 바와 같이, 사용자 데이터 백업에 요구되는 시간이 길어지고, 사용자 데이터 백업에 요구되는 전력이 많아질수록, 메모리 시스템(10')에 요구되는 커패시터의 용량이 증가될 수 있다. 요구되는 커패시터의 용량이 증가하는 경우, 작은 폼 팩터를 갖는 메모리 시스템(10')을 구현할 수 없으며, 메모리 시스템(10')의 생산 비용 측면에서도 불리할 수 있다. 본 개시의 예시적 실시예에 따른 메모리 시스템은, MRAM과 같은 비휘발성 메모리 장치를 포함함으로써, MRAM과 같은 비휘발성 메모리 장치에 사용자 데이터를 데이터 덤프(data dump)하도록 할 수 있으며, 요구되는 커패시터의 용량을 감소시킬 수 있다. 본 개시의 예시적 실시예에 따른 메모리 시스템이 MRAM과 같은 비휘발성 메모리 장치를 포함하는 것과 관련된 보다 자세한 내용은 후술하기로 한다.
도 3은 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 3을 참조하면, 본 개시의 예시적 실시예에 따른 메모리 시스템(30)은 메모리 컨트롤러(300), 제1 비휘발성 메모리 장치(311), 제2 비휘발성 메모리 장치(312) 및/또는 휘발성 메모리 장치(320)를 포함할 수 있다. 메모리 컨트롤러(300), 제1 비휘발성 메모리 장치(311), 제2 비휘발성 메모리 장치(312) 및/또는 휘발성 메모리 장치(320)는 앞서 도 1 및 도 2에서 설명했던 메모리 컨트롤러(100, 100'), 비휘발성 메모리 장치(110, 110'), 휘발성 메모리 장치(120, 120')와 대응될 수 있다.
휘발성 메모리 장치(320)는 사용자 데이터 또는 맵 테이블을 저장하도록 구성될 수 있다. 또한, 도 3에는 휘발성 메모리 장치(320)가 하나로 도시되어 있으나, 메모리 시스템(30)은 복수의 휘발성 메모리 장치(320)들을 포함할 수 있다. 다시 말해, 메모리 시스템(30)은 적어도 하나의 휘발성 메모리 장치(320)를 포함할 수 있다.
메모리 컨트롤러(300)는 정상 동작 상태에서, 휘발성 메모리 장치(320)로부터 제2 비휘발성 메모리 장치(312)로 사용자 데이터를 기입하도록 구성될 수 있다. 구체적으로, 메모리 컨트롤러(300)는 정상 동작 상태에서, 제1 비휘발성 메모리 장치(311)를 거치지 않고, 휘발성 메모리 장치(320)에서 제2 비휘발성 메모리 장치(312)로 데이터를 이동시킬 수 있다.
메모리 컨트롤러(300)는 서든 파워 오프가 발생한 경우, 적어도 하나의 휘발성 메모리 장치(320)로부터 제1 비휘발성 메모리 장치(311)로 사용자 데이터를 데이터 덤프하도록 구성될 수 있다. 제1 비휘발성 메모리 장치(311)는 서든 파워 오프가 발생한 경우에만 사용되는 메모리 장치일 수 있다.
메모리 컨트롤러(300)는 제1 비휘발성 메모리 장치(311)에 저장된 사용자 데이터를 제2 비휘발성 메모리 장치(312)에 기입하도록 구성될 수 있다.
제1 비휘발성 메모리 장치(311)는 제2 비휘발성 메모리 장치(312)보다 데이터가 기입되는 속도가 빠르고, 용량이 작을 수 있다. 예를 들어, 제1 비휘발성 메모리 장치(311)는 MRAM일 수 있고, 제2 비휘발성 메모리 장치(312)는 NAND 플래시 메모리 장치일 수 있으며, 다만, 이에 제한되는 것은 아니다.
서든 파워 오프가 발생한 경우, 메모리 컨트롤러(300)가 적어도 하나의 휘발성 메모리 장치(320)로부터 제1 비휘발성 메모리 장치(311)로 사용자 데이터를 데이터 덤프함으로써, 메모리 시스템(30)은 사용자 데이터를 보호할 수 있다. 또한, 제1 비휘발성 메모리 장치(311)에 데이터가 기입되는 속도가 제2 비휘발성 메모리 장치(312)에 데이가 기입되는 속도보다 빠르므로, 휘발성 메모리 장치(320)로부터 제2 비휘발성 메모리 장치(312)로 사용자 데이터가 데이터 덤프되는 경우보다, 휘발성 메모리 장치(320)로부터 제1 비휘발성 메모리 장치(311)로 사용자 데이터가 데이터 덤프되는 경우 데이터 백업 시간이 감소될 수 있으며, 요구되는 전력량도 감소될 수 있다. 데이터 백업 시간의 감소 및 요구되는 전력량 감소로 인하여, 메모리 시스템(30)에 요구되는 커패시터의 용량이 감소할 수 있으며, 따라서, 메모리 시스템(30)은 작은 폼 팩터로 구현될 수 있고, 적은 비용으로 생산될 수 있다.
작은 폼팩터로 메모리 시스템(30)을 구현할 경우, 동일한 크기의 메모리 시스템(30)에 더 많은 용량의 메모리 장치를 구현할 수 있다. 또한, 메모리 시스템(30)에 더 많은 용량의 메모리 장치를 구현하는 경우, 요구되는 동일 용량에 대해 메모리 시스템(30)의 수가 감소될 수 있으며, 따라서, TCO(Total Cost of Ownership)가 개선될 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 4를 참조하면, 본 개시의 예시적 실시예에 따른 메모리 시스템(40)은, 메모리 컨트롤러(400), 제1 비휘발성 메모리 장치(411), 제2 비휘발성 메모리 장치(412), 휘발성 메모리 장치(420) 및/또는 FBI(Frequency Boosting Interface) 회로(430)를 포함할 수 있다. 메모리 컨트롤러(400), 제1 비휘발성 메모리 장치(411), 제2 비휘발성 메모리 장치(412) 및 휘발성 메모리 장치(420)는 도 3의 메모리 컨트롤러(300), 제1 비휘발성 메모리 장치(311), 제2 비휘발성 메모리 장치(312), 휘발성 메모리 장치(320)와 각각 대응될 수 있다.
제1 비휘발성 메모리 장치(411) 및 FBI 회로(430)은 하나의 칩(one-chip)(440)으로 구현될 수 있다. 다시 말해, 제1 비휘발성 메모리 장치(411) 및 FBI 회로(430)은 하나의 칩(440)에 실장될 수 있다.
메모리 컨트롤러(400)는 FBI 회로(430)을 통해 제1 비휘발성 메모리 장치(411) 또는 제2 비휘발성 메모리 장치(412)와 통신하도록 구성될 수 있다.
또한, 도 4에 도시되어 있지 않으나, 제1 비휘발성 메모리 장치(411) 및 제2 비휘발성 메모리 장치(412)도 서로 FBI 회로(430)을 통하여 통신하도록 구성될 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 5를 참조하면, 본 개시의 예시적 실시예에 따른 메모리 시스템(50)은, 메모리 컨트롤러(500), 제1 비휘발성 메모리 장치(511), 제2 비휘발성 메모리 장치(512), 제1 휘발성 메모리 장치(521) 및/또는 제2 휘발성 메모리 장치(522)를 포함할 수 있다. 메모리 컨트롤러(500), 제1 비휘발성 메모리 장치(511), 제2 비휘발성 메모리 장치(512) 및 제1 휘발성 메모리 장치(521) 및 제2 휘발성 메모리 장치(522)는 도 3의 메모리 컨트롤러(300), 제1 비휘발성 메모리 장치(311), 제2 비휘발성 메모리 장치(312), 휘발성 메모리 장치(320)와 대응될 수 있다.
메모리 시스템(50)에서 사용될 수 있는 휘발성 메모리 장치는, 사용자 데이터, 메타데이터(metadata), 맵 테이블 등을 저장하도록 구성될 수 있다. 메모리 시스템(50)에서 사용될 수 있는 휘발성 메모리 장치에 저장되는 데이터들의 비중은, 사용자 데이터가 약 2~3%, 맵 테이블이 약 97~98%일 수 있으며, 다만, 이에 제한되는 것은 아니다.
메모리 시스템(50)에서 사용될 수 있는 휘발성 메모리 장치는 라이트 버퍼로서의 역할로 인하여, 비교적 속도가 빠른 고성능 휘발성 메모리 장치일 것이 요구될 수 있다. 다만, 맵 테이블을 저장하는 측면에서 휘발성 메모리 장치의 역할을 살펴보면, 고성능의 휘발성 메모리 장치일 것이 요구되지 않을 수 있다. 따라서, 기능에 따라 요구되는 휘발성 메모리의 성능이 상이한 점을 고려하여, 본 개시의 예시적 실시예에 따른 메모리 시스템(50)은 라이트 버퍼인 제1 휘발성 메모리 장치(521) 및 맵 테이블을 저장하도록 구성된 제2 휘발성 메모리 장치(522)를 포함할 수 있다. 예를 들어, 제1 휘발성 메모리 장치(521)는 앞서 설명한 바와 같이, 휘발성 메모리에 저장되는 데이터들 중 적은 비중을 차지하는 사용자 데이터를 저장하도록 구성될 수 있다. 또한, 제2 휘발성 메모리 장치(522)는 휘발성 메모리에 저장되는 데이터들 중 비교적 큰 비중을 차지하는 맵 테이블을 저장하도록 구성될 수 있다. 따라서, 제1 휘발성 메모리 장치(521)는 제2 휘발성 메모리 장치(522)보다 고속이고, 용량이 작은 메모리인 DBM(Data Boosting Memory)일 수 있다.
메모리 시스템(50)은 비교적 고성능이면서 용량이 작은 제1 휘발성 메모리 장치(521)와 비교적 고성능은 아니지만 용량이 큰 제2 휘발성 메모리 장치(522)를 각각 포함함으로써, 고성능이면서 고용량인 하나의 휘발성 메모리를 포함하는 경우보다, 생산 비용적 측면에서 유리할 수 있다.
제1 휘발성 메모리 장치(521) 및 제2 휘발성 메모리 장치(522)는 각각 DRAM일 수 있으며, 다만, 이에 제한되는 것은 아니다.
도 6은 본 개시의 예시적 실시예에 따른 메모리 시스템의 예시를 나타내는 도면이다.
도 6을 참조하면, 본 개시의 예시적 실시예에 따른 메모리 시스템(60)은, 메모리 컨트롤러(600), 제1 비휘발성 메모리 장치(611), 제2 비휘발성 메모리 장치(612), 제3 비휘발성 메모리 장치(613) 및/또는 휘발성 메모리 장치(620)를 포함할 수 있다. 메모리 컨트롤러(600), 제1 비휘발성 메모리 장치(611), 제2 비휘발성 메모리 장치(612), 제3 비휘발성 메모리 장치(613) 및 휘발성 메모리 장치(620)는 도 3의 메모리 컨트롤러(300), 제1 비휘발성 메모리 장치(311), 제2 비휘발성 메모리 장치(312), 휘발성 메모리 장치(320)와 대응될 수 있다.
제3 비휘발성 메모리 장치(613)는 맵 테이블을 저장하도록 구성될 수 있다. 앞서 설명한 바와 같이, 맵 테이블을 저장하는 메모리 장치는, 라이트 버퍼보다 비교적 고용량일 것이 요구되나, 고성능일 것이 요구되진 않는다. 따라서, 제3 비휘발성 메모리 장치(613)는, 일 예로서 PRAM(Phase-change Random Access Memory) 등의 저항성 메모리 장치를 포함할 수 있으며, 다만, 이에 제한되는 것은 아니다.
휘발성 메모리 장치(620)는 사용자 데이터를 저장하도록 구성될 수 있다. 휘발성 메모리 장치(620)는 제3 비휘발성 메모리 장치보다, 고속이고, 용량이 작은 메모리인 DBM일 수 있다. 예를 들어, 휘발성 메모리 장치(620)는 DRAM일 수 있으며, 다만, 이에 제한되는 것은 아니다.
도 6에 구체적으로 도시되어 있진 않으나, 제1 비휘발성 메모리 장치(611) 및 휘발성 메모리 장치(620)는 하나의 칩으로 구현될 수 있다. 다시 말해, 제1 비휘발성 메모리 장치(611) 및 휘발성 메모리 장치(620)는 하나의 칩에 실장될 수 있다.
메모리 시스템(60)은 비교적 고성능이면서 용량이 작은 휘발성 메모리 장치(620)와 비교적 고성능은 아니지만 용량이 큰 제3 비휘발성 메모리 장치(613)를 각각 포함함으로써, 고성능이면서 고용량인 하나의 휘발성 메모리를 포함하는 경우보다, 생산 비용적 측면에서 유리할 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 메모리 장치를 설명하기 위한 도면이다. 이하에서, 도 7은 도 3을 참조하여 설명될 것이다.
도 7을 참조하면, 본 개시의 예시적 실시예에 따른 메모리 시스템(7)은 복수의 제1 비휘발성 메모리 장치들(711) 및 제2 비휘발성 메모리 장치(712)를 포함할 수 있다. 제1 비휘발성 메모리 장치들(711) 각각은 도 3의 제1 비휘발성 메모리 장치(311)와 대응될 수 있으며, 제2 비휘발성 메모리 장치(712)는 도 3의 제2 비휘발성 메모리 장치(312)와 대응될 수 있다. 구체적으로, 제1 비휘발성 메모리 장치들(711)은, 서든 파워 오프가 발생된 경우, 휘발성 메모리 장치(320)로부터 사용자 데이터를 수신하도록 구성될 수 있다. 예를 들어, 제1 비휘발성 메모리 장치들(711)은 각각 MRAM에 해당할 수 있으며, 다만, 이에 제한되는 것은 아니다. 또한, 제2 비휘발성 메모리 장치(712)는 제1 비휘발성 메모리 장치들(711)로부터 사용자 데이터를 수신하도록 구성될 수 있다. 예를 들어, 제2 비휘발성 메모리 장치(712)는 NAND 플래시 메모리 장치에 해당할 수 있으며, 다만, 이에 제한되는 것은 아니다.
복수의 제1 비휘발성 메모리 장치들(711)은 제2 비휘발성 메모리 장치(712)의 채널들 마다 각각 배치될 수 있다. 예를 들어, 도 7에 도시된 바와 같이, 제2 비휘발성 메모리 장치(712)에 16개의 채널(CH)이 포함된 경우, 16개의 제1 비휘발성 메모리 장치들(711)이 각 채널마다 배치될 수 있다. 제2 비휘발성 메모리 장치(712)의 채널들의 수는 16개로 제한되지 않으며, 다양한 개수로 존재할 수 있다.
또한, 도 7에 도시되어 있진 않으나, 제1 비휘발성 메모리 장치 및 FBI 회로가 하나의 칩으로 구성된 경우에도, 해당 하나의 칩들이 각각 제2 비휘발성 메모리 장치(712)의 채널들 마다 각각 배치될 수 있다.
메모리 컨트롤러(300)는 적어도 하나의 휘발성 메모리 장치(320) 중 사용자 데이터가 저장된 휘발성 메모리 장치(320)의 주소 공간(address space)을 제2 비휘발성 메모리 장치(712)의 채널들의 수로 균등 분할할 수 있다. 또한, 메모리 컨트롤러(300)는 휘발성 메모리 장치(320)의 균등 분할된 주소 공간으로부터 복수의 제1 비휘발성 메모리 장치들(711)의 주소공간으로, 사용자 데이터를 전송하도록 구성될 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 메모리 시스템 동작 방법의 예시를 나타내는 도면이다. 이하에서, 도 8은 도 3을 참조하여 설명될 것이다.
본 개시의 예시적 실시예에 따른 메모리 시스템(30)은 메모리 컨트롤러(300), 제1 비휘발성 메모리 장치(311), 제2 비휘발성 메모리 장치(312) 및/또는 휘발성 메모리 장치(320)를 포함할 수 있다.
제1 비휘발성 메모리 장치(311)는 일 예로서 MRAM일 수 있다.
단계 S810에서, 메모리 컨트롤러(300)는, 휘발성 메모리 장치(320)으로부터제1 비휘발성 메모리 장치(311)로 사용자 데이터를 덤프하기 전에, MRAM인 제1 비휘발성 메모리 장치(311)에 포함된 자성층들을 반-병렬 상태(anti-parallel state)로 초기화할 수 있다.
제1 비휘발성 메모리 장치(311)에 포함된 자성층들이 반-병렬 상태(anti-parallel state)로 초기화된 후, 단계 S820에서, 휘발성 메모리 장치(320)로부터 제1 비휘발성 메모리 장치(311)로 사용자 데이터를 데이터 덤프할 수 있다.
MRAM의 경우, MRAM에 포함된 자성층들이 반-병렬 상태에서 병렬 상태(parallel state)로 변하며 데이터가 기입되는 경우가, MRAM에 포함된 자성층들이 병렬 상태에서 반-병렬 상태로 변하며 데이터가 기입되는 경우보다 전력 소모가 적다. 따라서, 휘발성 메모리 장치(320)로부터 MRAM인 제1 비휘발성 메모리 장치(311)로 사용자 데이터를 데이터 덤프하기 전, 제1 비휘발성 메모리 장치(311)에 포함된 자성층들이 반-병렬 상태(anti-parallel state)로 초기화하면, 사용자 데이터를 기입하는 데 소모되는 전력량을 줄일 수 있다. 소모되는 전력량이 줄어듦에 따라, 메모리 시스템(30)에 요구되는 커패시터의 용량이 줄어들 수 있다.
또한, 메모리 컨트롤러(300)는, 메모리 시스템(30)에 공급되는 주 시스템 전력(main system power)을 사용하여 제1 비휘발성 메모리 장치(311)를 초기화하도록 구성될 수 있다. 다시 말해, 제1 비휘발성 메모리 장치(311)를 초기화 하기 위해, 커패시터에 충전된 전력을 사용하는 것이 아닌, 주 시스템 전력을 사용함으로써, 요구되는 커패시터의 용량을 감소시킬 수 있다.
따라서, 메모리 시스템(30)은 작은 폼 팩터로 구현될 수 있고, 생산 비용 측면에서 유리할 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 메모리 시스템 동작 방법의 예시를 나타내는 도면이다. 이하에서, 도 9는 도 3을 참조하여 설명될 것이다.
단계 S910에서, 메모리 컨트롤러(300)는, 정상 동작 상태에서, 휘발성 메모리 장치(320)로부터 제2 비휘발성 메모리 장치(312)로 사용자 데이터를 기입할 수 있다.
단계 S920에서, 메모리 시스템(30)에 서든 파워 오프가 발생되었는지 여부가 결정될 수 있다. 메모리 컨트롤러(300)는 메모리 시스템(30)에 서든 파워 오프가 발생하지 않은 경우, 전력 공급 측면에서 정상 동작 상태에 해당하므로, 단계 S910으로 돌아갈 수 있다.
메모리 시스템(30)에 서든 파워 오프가 발생한 경우, 단계 S930에서, 메모리 컨트롤러(300)는 휘발성 메모리 장치(320)로부터 제1 비휘발성 메모리 장치(311)로 사용자 데이터를 기입할 수 있다.
단계 S940에서, 메모리 컨트롤러(300)는 제1 비휘발성 메모리 장치(311)로부터 제2 비휘발성 메모리 장치(312)로 사용자 데이터를 기입할 수 있다.
제1 비휘발성 메모리 장치(311)는 제2 비휘발성 메모리 장치보다 데이터가 기입되는 속도가 빠르고, 용량이 작을 수 있다.
도 10은 본 개시의 예시적 실시예에 메모리 시스템의 구현 예를 나타내는 도면이다. 일부 실시예들에서, 도면들을 참조하여 전술된 시스템은 어플리케이션 서버 및/또는 스토리지 서버로서 데이터 센터(2)에 포함될 수 있다.
도 10를 참조하면, 데이터 센터(2)는 다양한 데이터를 수집하고 서비스를 제공할 수 있고, 데이터 스토리지 센터로 지칭될 수도 있다. 예를 들면, 데이터 센터(2)는 검색 엔진 및 데이터 베이스 운용을 위한 시스템일 수 있고, 은행 등의 기업 또는 정부기관에서 사용되는 컴퓨팅 시스템일 수도 있다. 도 10에 도시된 바와 같이, 데이터 센터(2)는 어플리케이션 서버들(50_1 ~ 50_n) 및 스토리지 서버들(60_1 ~ 60_m)을 포함할 수 있다(m 및 n은 1보다 큰 정수). 어플리케이션 서버들(50_1 ~ 50_n)의 개수 n 및 스토리지 서버들(60_1 ~ 60_m)의 개수 m은 실시예에 따라 다양하게 선택될 수 있고, 어플리케이션 서버들(50_1 ~ 50_n)의 개수 n 및 스토리지 서버들(60_1 ~ 60_m)의 개수 m은 상이할 수 있다.
어플리케이션 서버(50_1 ~ 50_n)는 프로세서(51_1 ~ 51_n), 메모리(52_1 ~ 52_n), 스위치(53_1 ~ 53_n), NIC(network interface controller)(54_1 ~ 54_n) 및 스토리지 장치(55_1 ~ 55_n) 중 적어도 하나를 포함할 수 있다. 프로세서(52_1 ~ 51_n)는 어플리케이션 서버(50_1 ~ 50_n)의 전반적인 동작을 제어할 수 있고, 메모리(52_1 ~ 52_n)에 액세스하여 메모리(52_1 ~ 52_n)에 로딩된 명령어들(instructions) 및/또는 데이터를 실행할 수 있다. 메모리(52_1 ~ 52_n)는 비제한적인 예시로서, DDR SDRAM(Double Data Rate Synchronous DRAM), HBM(High Bandwidth Memory), HMC(Hybrid Memory Cube), DIMM(Dual In-line Memory Module), Optane DIMM 또는 NVMDIMM(Non-Volatile DIMM)를 포함할 수 있다.
실시예에 따라, 어플리케이션 서버(50_1 ~ 50_n)에 포함되는 프로세서들의 개수 및 메모리들의 개수는 다양하게 선택될 수 있다. 일부 실시예들에서, 프로세서(51_1 ~ 51_n)와 메모리(52_1 ~ 52_n)는 프로세서-메모리 페어를 제공할 수 있다. 일부 실시예들에서, 프로세서(51_1 ~ 51_n)와 메모리(52_1 ~ 52_n)의 개수는 상이할 수 있다. 프로세서(51_1 ~ 51_n)는 단일 코어 프로세서 또는 다중 코어 프로세서를 포함할 수 있다. 일부 실시예들에서, 도 13에서 점선으로 도시된 바와 같이, 어플리케이션 서버(50_1 ~ 50_n)에서 스토리지 장치(55_1 ~ 55_n)는 생략될 수도 있다. 스토리지 서버(60_1 ~ 60_m)에 포함되는 스토리지 장치(55_1 ~ 55_n)의 개수는 실시예에 따라 다양하게 선택될 수 있다. 프로세서(51_1 ~ 51_n), 메모리(52_1 ~ 52_n), 스위치(53_1 ~ 53_n), NIC(54_1 ~ 54_n) 및/또는 스토리지 장치(55_1 ~ 55_n)는, 도면들을 참조하여 전술된 링크를 통해서 상호 통신할 수 있다.
스토리지 서버(60_1 ~ 60_m)는 프로세서(61_1 ~ 61_m), 메모리(62_1 ~ 62_m), 스위치(63_1 ~ 63_m), NIC(64_1 ~ 64_n) 및 스토리지 장치(65_1 ~ 65_m) 중 적어도 하나를 포함할 수 있다. 프로세서(61_1 ~ 61_m) 및 메모리(62_1 ~ 62_m)는, 전술된 어플리케이션 서버(50_1 ~ 50_n)의 프로세서(51_1 ~ 51_n) 및 메모리(52_1 ~ 52_n)와 유사하게 동작할 수 있다.
어플리케이션 서버들(50_1 ~ 50_n) 및 스토리지 서버들(60_1 ~ 60_m)은 네트워크(70)를 통해 상호 통신할 수 있다. 일부 실시예들에서, 네트워크(70)는 FC(Fibre Channel) 또는 이더넷(Ethernet) 등을 이용하여 구현될 수 있다. FC는 상대적으로 고속의 데이터 전송에 사용되는 매체일 수 있고, 고성능/고가용성을 제공하는 광 스위치가 사용될 수 있다. 네트워크(70)의 액세스 방식에 따라 스토리지 서버들(60_1 ~ 60_m)은 파일 스토리지, 블록 스토리지, 또는 오브젝트 스토리지로서 제공될 수 있다.
일부 실시예들에서, 네트워크(70)는 SAN(Storage Area Network)와 같은 스토리지 전용 네트워크일 수 있다. 예를 들어, SAN은 FC 네트워크를 이용할 수 있고 FCP(FC Protocol)에 따라 구현된 FC-SAN일 수 있다. 다르게는, SAN은 TCP/IP 네트워크를 이용하고 iSCSI(SCSI over TCP/IP 또는 Internet SCSI) 프로토콜에 따라 구현된 IP-SAN일 수 있다. 일부 실시예들에서, 네트워크(70)는 TCP/IP 네트워크와 같은 일반 네트워크일 수 있다. 예를 들면, 네트워크(70)는 FCoE(FC over Ethernet), NAS(Network Attached Storage), NVMe-oF(NVMe over Fabrics) 등의 프로토콜에 따라 구현될 수 있다.
이하에서, 어플리케이션 서버(50_1) 및 스토리지 서버(60_1)가 주로 설명되나, 어플리케이션 서버(50_1)에 대한 설명은 다른 어플리케이션 서버(예컨대, 50_n)에도 적용될 수 있고, 스토리지 서버(60_1)에 대한 설명은 다른 스토리지 서버(예컨대, 60_m)에도 적용될 수 있는 점이 유의된다.
어플리케이션 서버(50_1)는 사용자 또는 클라이언트가 저장을 요청한 데이터를 네트워크(70)를 통해 스토리지 서버들(60_1 ~ 60_m) 중 하나에 저장할 수 있다. 또한, 어플리케이션 서버(50_1)는 사용자 또는 클라이언트가 독출을 요청한 데이터를 스토리지 서버들(60_1 ~ 60_m) 중 하나로부터 네트워크(70)를 통해 획득할 수 있다. 예를 들어, 어플리케이션 서버(50_1)는 웹 서버 또는 DBMS(Database Management System) 등으로 구현될 수 있다.
어플리케이션 서버(50_1)는 네트워크(70)를 통해 다른 어플리케이션 서버(50_n)에 포함된 메모리(52_n) 및/또는 스토리지 장치(55_n)에 액세스할 수 있고, 그리고/또는 네트워크(70)를 통해 스토리지 서버들(60_1 ~ 60_m)에 포함된 메모리들(62_1 ~ 62_m) 및/또는 스토리지 장치들(65_1 ~ 65_m)에 액세스할 수 있다. 이에 따라, 어플리케이션 서버(50_1)는 어플리케이션 서버들(50_1 ~ 50_n) 및/또는 스토리지 서버들(60_1 ~ 60_m)에 저장된 데이터에 대해 다양한 동작들을 수행할 수 있다. 예를 들어, 어플리케이션 서버(50_1)는 어플리케이션 서버들(50_1 ~ 50_n) 및/또는 스토리지 서버들(60_1 ~ 60_m) 사이에서 데이터를 이동시키거나 복사(copy)하기 위한 명령어를 실행할 수 있다. 이 때 데이터는 스토리지 서버들(60_1 ~ 60_m)의 스토리지 장치로(65_1 ~ 65_m)부터 스토리지 서버들(60_1 ~ 60_m)의 메모리들(62_1 ~ 62_m)을 통해서 또는 직접적으로 어플리케이션 서버들(50_1 ~ 50_n)의 메모리(52_1 ~ 52_n)로 이동될 수 있다. 일부 실시예들에서, 네트워크(70)를 통해 이동하는 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.
스토리지 서버(60_1)에서, 인터페이스(IF)는 프로세서(61_1)와 컨트롤러(CTRL)의 물리적 연결 및 NIC(64_1)와 컨트롤러(CTRL)의 물리적 연결을 제공할 수 있다. 예를 들어, 인터페이스(IF)는 스토리지 장치(65_1)를 전용 케이블로 직접 접속하는 DAS(Direct Attached Storage) 방식으로 구현될 수 있다. 또한, 예를 들어, 인터페이스(IF)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
스토리지 서버(60_1)에서, 스위치(63_1)는 프로세서(61_1)의 제어에 따라 프로세서(61_1)와 스토리지 장치(65_1)를 선택적으로 접속시키거나, NIC(64_1)과 스토리지 장치(65_1)를 선택적으로 접속시킬 수 있다.
일부 실시예들에서, NIC(64_1)는 네트워크 인터페이스 카드, 네트워크 어댑터 등을 포함할 수 있다. NIC(54_1)는 유선 인터페이스, 무선 인터페이스, 블루투스 인터페이스, 광학 인터페이스 등에 의해 네트워크(70)에 연결될 수 있다. NIC(54_1)는 내부 메모리, DSP, 호스트 버스 인터페이스 등을 포함할 수 있으며, 호스트 버스 인터페이스를 통해 프로세서(61_1) 및/또는 스위치(63_1) 등과 연결될 수 있다. 일부 실시예들에서, NIC(64_1)는 프로세서(61_1), 스위치(63_1), 스토리지 장치(65_1) 중 적어도 하나와 통합될 수도 있다.
어플리케이션 서버(50_1 ~ 50_n) 또는 스토리지 서버(60_1 ~ 60_m)에서 프로세서(51_1 ~ 51_m, 61_1 ~ 61_n)는 스토리지 장치들(55_1 ~ 55_n, 65_1 ~ 65_m) 또는 메모리(52_1 ~ 52_n, 62_1 ~ 62_m)로 커맨드를 전송하여 데이터를 프로그램하거나 리드할 수 있다. 이 때 데이터는 ECC(Error Correction Code) 엔진을 통해 에러 정정된 데이터일 수 있다. 데이터는 데이터 버스 변환(Data Bus Inversion: DBI) 또는 데이터 마스킹(Data Masking: DM) 처리된 데이터로서, CRC(Cyclic Redundancy Code) 정보를 포함할 수 있다. 데이터는 보안 또는 프라이버시를 위해 암호화된 데이터일 수 있다.
스토리지 장치(55_1 ~ 55_n, 65_1 ~ 65_m)는 프로세서(51_1 ~ 51_m, 61_1 ~ 61_n)로부터 수신된 독출 커맨드에 응답하여, 제어 신호 및 커맨드/어드레스 신호를 비휘발성 메모리 장치(예컨대 NAND 플래시 메모리 장치)(NVM)로 전송할 수 있다. 이에 따라 비휘발성 메모리 장치(NVM)로부터 데이터를 독출하는 경우, 독출 인에이블 신호는 데이터 출력 제어 신호로 입력되어, 데이터를 DQ 버스로 출력하는 역할을 할 수 있다. 독출 인에이블 신호를 이용하여 데이터 스트로브 신호를 생성할 수 있다. 커맨드와 어드레스 신호는 기입 인에이블 신호의 상승 엣지 또는 하강 엣지에 따라 래치될 수 있다.
컨트롤러(CTRL)는 스토리지 장치(65_1)의 동작을 전반적으로 제어할 수 있다. 일 실시예에서, 컨트롤러(CTRL)는 SRAM(Static Random Access Memory)을 포함할 수 있다. 컨트롤러(CTRL)는 기입 커맨드에 응답하여 비휘발성 메모리 장치(NVM)에 데이터를 기입할 수 있고, 또는 독출 커맨드에 응답하여 비휘발성 메모리 장치(NVM)로부터 데이터를 독출할 수 있다. 예를 들어, 기입 커맨드 및/또는 독출 커맨드는 호스트, 예컨대 스토리지 서버(60_1) 내의 프로세서(61_1), 다른 스토리지 서버(60_m) 내의 프로세서(61_m) 또는 어플리케이션 서버(50_1 ~ 50_n) 내의 프로세서(51_1 ~ 51_n)로부터 제공된 요청에 기초하여 생성될 수 있다. 버퍼(BUF)는 비휘발성 메모리 장치(NVM)에 기입될 데이터 또는 비휘발성 메모리 장치(NVM)로부터 독출된 데이터를 임시 저장(버퍼링)할 수 있다. 일부 실시예들에서 버퍼(BUF)는 DRAM을 포함할 수 있다. 또한, 버퍼(BUF)는 메타 데이터를 저장할 수 있고, 메타 데이터는 사용자 데이터 또는 비휘발성 메모리 장치(NVM)를 관리하기 위해 컨트롤러(CTRL)에서 생성된 데이터를 지칭할 수 있다. 스토리지 장치(65_1)는 보안 또는 프라이버시를 위해 SE(Secure Element)를 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 제1 비휘발성 메모리 장치;
    제2 비휘발성 메모리 장치;
    사용자 데이터(user data) 또는 맵 테이블(map table)을 저장하도록 구성된 적어도 하나의 휘발성 메모리 장치; 및
    서든 파워 오프(sudden power-off)가 발생한 경우, 상기 적어도 하나의 휘발성 메모리 장치로부터 상기 제1 비휘발성 메모리 장치로 상기 사용자 데이터를 데이터 덤프(data dump)하도록 구성된 메모리 컨트롤러를 포함하고,
    상기 제1 비휘발성 메모리 장치는,
    상기 제2 비휘발성 메모리 장치보다, 데이터가 기입되는 속도가 빠르고, 용량이 작은 것을 특징으로 하는 메모리 시스템.
  2. 청구항 1에 있어서,
    제1 비휘발성 메모리 장치는,
    MRAM(Magnetic Random Access Memory)인 것을 특징으로 하는 메모리 시스템.
  3. 청구항 1에 있어서,
    FBI(Frequency Boosting Interface) 회로를 더 포함하고,
    상기 제1 비휘발성 메모리 장치 및 상기 FBI 회로는 하나의 칩(one-chip)에 실장된 것을 특징으로 하는 메모리 시스템.
  4. 청구항 1에 있어서,
    상기 적어도 하나의 휘발성 메모리 장치는,
    라이트 버퍼(write buffer)인 제1 휘발성 메모리 장치 및 상기 맵 테이블을 저장하도록 구성된 제2 휘발성 메모리 장치를 포함하는 것을 특징으로 하는 메모리 시스템.
  5. 청구항 4에 있어서,
    상기 제1 휘발성 메모리 장치는,
    상기 제2 휘발성 메모리 장치보다, 고속이고, 용량이 작은 메모리인 DBM(Data Boosting Memory)인 것을 특징으로 하는 메모리 시스템.
  6. 청구항 5에 있어서,
    상기 제1 휘발성 메모리 장치 및 상기 제2 휘발성 메모리 장치 각각은,
    DRAM(Dynamic Random Access Memory)인 것을 특징으로 하는 메모리 시스템.
  7. 청구항 2에 있어서,
    상기 메모리 컨트롤러는,
    상기 사용자 데이터를 데이터 덤프하기 전에, 상기 제1 비휘발성 메모리 장치에 포함된 자성층들을 반-병렬 상태(anti-parallel state)로 초기화하는 것을 특징으로 하는 메모리 시스템.
  8. 청구항 7에 있어서,
    상기 메모리 컨트롤러는,
    상기 메모리 시스템에 공급되는 주 시스템 전력(main system power)을 사용하여 상기 제1 비휘발성 메모리 장치를 초기화하도록 구성된 것을 특징으로 하는 메모리 시스템.
  9. 청구항 1에 있어서,
    복수의 제1 비휘발성 메모리 장치들을 포함하고,
    상기 제2 비휘발성 메모리 장치는,
    낸드 플래시 메모리(NAND flash memory)이고,
    상기 복수의 제1 비휘발성 메모리 장치들은,
    상기 제2 비휘발성 메모리 장치의 채널들 마다 각각 배치되는 것을 특징으로 하는 메모리 시스템.
  10. 청구항 9에 있어서,
    상기 메모리 컨트롤러는,
    상기 적어도 하나의 휘발성 메모리 장치 중 상기 사용자 데이터가 저장된 휘발성 메모리 장치의 주소 공간(address space)을 상기 채널들의 수로 균등 분할하고, 상기 균등 분할된 주소 공간으로부터 상기 복수의 제1 비휘발성 메모리 장치들의 주소 공간으로, 상기 사용자 데이터를 전송하도록 구성된 것을 특징으로 하는 메모리 시스템.
KR1020220077088A 2021-11-12 2022-06-23 서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법 KR20230069800A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/054,196 US20230152985A1 (en) 2021-11-12 2022-11-10 Memory system for backing up data in case of sudden power-off and operation method thereof
CN202211411089.1A CN116126589A (zh) 2021-11-12 2022-11-11 存储器系统及其操作方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210156055 2021-11-12
KR1020210156055 2021-11-12

Publications (1)

Publication Number Publication Date
KR20230069800A true KR20230069800A (ko) 2023-05-19

Family

ID=86546814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220077088A KR20230069800A (ko) 2021-11-12 2022-06-23 서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR20230069800A (ko)

Similar Documents

Publication Publication Date Title
KR102168838B1 (ko) 저장 장치들에 대한 매핑 테이블들
US9927999B1 (en) Trim management in solid state drives
US9767017B2 (en) Memory device with volatile and non-volatile media
US10235069B2 (en) Load balancing by dynamically transferring memory range assignments
US20240045597A1 (en) Storage device and operation method thereof
EP4273706A1 (en) Storage device, memory device, and system including storage device and memory device
EP4386557A1 (en) Method and device for log structured merge-tree based key-value data storage
US20230376216A1 (en) Memory device, storage device, and computing system including memory device and storage device
US20230350832A1 (en) Storage device, memory device, and system including storage device and memory device
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US20230126685A1 (en) Storage device and electronic system
US11662949B2 (en) Storage server, a method of operating the same storage server and a data center including the same storage server
CN116917854A (zh) 跨多个协议管理持久性存储器区域
US20230152985A1 (en) Memory system for backing up data in case of sudden power-off and operation method thereof
KR20230069800A (ko) 서든 파워 오프 시 데이터를 백업하기 위한 메모리 시스템 및 그 동작 방법
KR102435910B1 (ko) 스토리지 장치 및 그것의 동작 방법
EP4273703A1 (en) Computing system generating map data, and method of operating the same
US20230359379A1 (en) Computing system generating map data, and method of operating the same
EP4283456A1 (en) Memory device, storage device, and computing system including memory device and storage device
EP4283474A1 (en) Storage device, memory device, and computing system including the same
US20230376217A1 (en) Storage device, memory device, and computing system including the same
EP4276634A1 (en) Storage device, computing device including storage device and memory device, and operating method of computing device
EP4318249A1 (en) Storage device and operation method thereof
EP4273708A1 (en) Operation method of host configured to communicate with storage devices and memory devices, and system including storage devices and memory devices
EP4246330A1 (en) Storage device and operating method thereof