KR20180044451A - 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 - Google Patents

메모리 시스템 및 이를 이용한 웨어-레벨링 방법 Download PDF

Info

Publication number
KR20180044451A
KR20180044451A KR1020160137339A KR20160137339A KR20180044451A KR 20180044451 A KR20180044451 A KR 20180044451A KR 1020160137339 A KR1020160137339 A KR 1020160137339A KR 20160137339 A KR20160137339 A KR 20160137339A KR 20180044451 A KR20180044451 A KR 20180044451A
Authority
KR
South Korea
Prior art keywords
memory
zones
data area
space
zone
Prior art date
Application number
KR1020160137339A
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 KR1020160137339A priority Critical patent/KR20180044451A/ko
Publication of KR20180044451A publication Critical patent/KR20180044451A/ko

Links

Images

Classifications

    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

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

Abstract

본 기술은 메모리 시스템 및 그 동작방법에 관한 것으로서, 비휘발성 메모리 장치, 및 상기 비휘발성 메모리 장치의 제1 및 제2 공간들을 각각 시스템 메모리 및 저장 장치로 할당하는 메모리 컨트롤러를 제공하고, 상기 메모리 컨트롤러는 상기 제1 및 제2 공간들을 서로 다른 크기의 구역들로 구분하여, 각각의 구역에서 핫 또는 콜드 데이터 영역을 검출한다.

Description

메모리 시스템 및 이를 이용한 웨어-레벨링 방법{MEMORY SYSTEM AND METHOD OF WEAR-LEVELING FOR THE SAME}
본 발명은 비휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것으로서, 더욱 상세하게는 비휘발성 메모리 장치를 웨어-레벨링(wear-leveling)하는 메모리 시스템 및 그 동작방법에 관한 것이다.
비휘발성 메모리의 특성과 랜덤 엑세스 메모리(RAM: Random Access Memory)의 특성을 모두 갖고 있는 비휘발성 램(NVRAM: Non-Volatile RAM), 또는, 스토리지 클래스 메모리(storage class memory)는 전원 공급이 차단되더라도 저장된 데이터를 유지하면서, 고속의 바이트 단위의 랜덤 접근을 지원한다. 대표적인 NVRAM으로는 PCRAM(Phase change Random Access Memory), MRAM(Magnetoresistive RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM), 등이 포함될 수 있다.
즉, NVRAM의 소자 특성상 내부의 메모리 셀 자체적으로 비휘발성을 띄면서도, 빠른 속도로 바이트 단위의 주소 접근이 가능하다. 따라서 NVRAM은 대용량 스토리지로서 적용되는 플래시 메모리, 자기 디스크, 또는 광학 디스크와 대조적으로, 프로세서에 의해서 다이렉트로 어드레스가 가능하다. 이러한 다이렉트 어드레스 능력은 프로세서가 DRAM인 것처럼 NVRAM에 메모리 요청들을 전송할 수 있음을 나타낸다.
한편, 컴퓨팅 시스템에서 사용되는 메모리 시스템은 주로 계층 구조(memory hierarchy)를 갖는다. 메모리의 계층 구조는 상위 레벨로 갈수록 접근 속도(access speed)가 빠르지만, 용량 단위당 가격이 비싸므로 상대적으로 적은 기억 용량을 가지고, 반대로 하위 레벨로 갈수록 접근 속도는 느리고, 용량 단위당 가격이 저렴하여 상대적으로 많은 기억 용량을 가진다.
이 같은 컴퓨팅 시스템의 동작은 고속의 바이트 단위의 랜덤 접근을 지원하는 휘발성 메인 메모리와 저속의 블록 단위의 접근을 지원하는 비휘발성 저장매체를 포함하는 메모리 계층 구조를 전제로 한다. 이에, 프로그램의 구동을 위해서는 먼저 비휘발성 저장매체에 저장되어 있는 프로그램의 실행 이미지를 메인 메모리로 적재하는 과정이 선행된다. 또한 메인 메모리에서 유지 및 관리되는 프로세스의 정보나 사용자 데이터는 휘발성이므로 필요에 따라 해당 프로세스가 종료되기 전에 비휘발성 저장매체에 기록되는 것이 요구된다.
따라서, 상기 특성을 갖는 NVRAM은 이 같은 시스템 계층 구조상에서 파일을 저장하기 위한 스토리지(storage) 공간뿐만 아니라 프로그램 수행을 위한 메인 메모리 공간으로 활용될 수 있다. 즉 NVRAM의 공간을 구분하여 하드 디스크 또는 플래시 메모리와 같은 대용량 저장장치나 DRAM과 같은 시스템 메모리로 동시에 사용될 수 있으며, 이에 대한 연구가 진행되고 있다.
본 발명은 비휘발성 메모리 장치의 내부 공간을 구분하고, 구분된 공간에 이뤄지는 데이터의 접근 방식에 따라 핫 또는 콜드 데이터를 검출할 수 있는 메모리 시스템 및 그 동작방법을 제공하고자 한다.
본 발명의 일실시예에 따른 메모리 시스템은, 비휘발성 메모리 장치; 및 상기 비휘발성 메모리 장치의 제1 및 제2 공간들을 각각 시스템 메모리 및 저장 장치로 할당하는 메모리 컨트롤러;를 포함하고, 상기 메모리 컨트롤러는 상기 제1 및 제2 공간들을 서로 다른 크기의 구역들로 구분하여, 각각의 구역에서 핫 또는 콜드 데이터 영역을 검출할 수 있다.
본 발명의 또 다른 실시예에 따른 메모리 시스템의 동작방법은, 비휘발성 메모리 장치의 제1 공간을 복수의 제1 구역들로 구분하고, 상기 비휘발성 메모리 장치의 제2 공간을 상기 제1 구역보다 큰 복수의 제2 구역들로 구분하는 단계; 상기 비휘발성 메모리 장치의 제1 공간을 복수의 제3 구역들로 구분하고, 상기 비휘발성 메모리 장치의 제2 공간을 상기 제3 구역보다 작은 복수의 제4 구역들로 구분하는 단계; 상기 제1 및 제2 구역들에서 핫 데이터 영역을 검출하는 단계; 및 상기 제3 및 제4 구역들에서 콜드 데이터 영역을 검출하는 단계;를 포함할 수 있다.
본 기술은 메모리 장치의 공간을 구분하고 각각에 다른 데이터 접근이 이뤄지는 메모리 시스템에서, 구분된 공간에 대해 다른 조건을 적용하여 핫 또는 콜드 데이터를 검출할 수 있다. 즉, 핫 데이터 접근이 많이 이뤄지는 공간에 대해서는 핫 데이터를 검출하는 구역을 작게 설정하거나 핫 데이터를 검출하는 빈도를 증가시켜, 핫 데이터를 상대적으로 빠르게 그리고 많이 검출할 수 있다. 반대로, 콜드 데이터 접근이 많이 이뤄지는 공간에 대해서는 콜드 데이터를 검출하는 구역을 작게 설정하거나 콜드 데이터를 검출하는 빈도를 증가시켜, 콜드 데이터를 상대적으로 빠르게 그리고 많이 검출할 수 있다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템을 도시한 블록도.
도 2는 본 발명의 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 도시한 블록도.
도 3은 도 1에 도시된 NVRAM의 웨어-레벨링 동작을 설명하기 위한 도면.
도 4는 본 발명의 실시예에 따른 도 2의 메모리 컨트롤러 및 비휘발성 메모리 장치를 포함하는 메모리 시스템의 전반적인 동작을 설명하기 위한 순서도.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩뜨리지 않도록 생략될 것이라는 것을 유의하여야 한다.
도 1은 본 발명의 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(100)은 프로세서(110), 메모리 컨트롤러(120), 시스템 메모리(130), 및 저장 장치(140)를 포함할 수 있다.
시스템 메모리(130)는 프로세서(110)에 의해 처리되는 다수의 프로세스에 대한 컴퓨팅 연산에 있어서 메인 메모리로써 동작할 수 있다. 시스템 메모리(130)는 프로세서(110)가 처리하는 다수의 프로세스에 대한 컴퓨팅 연산을 위해 저장 장치(140)로부터 필요한 데이터를 리드하여 임시로 저장하고, 프로세스에 대한 컴퓨팅 연산의 종료 등으로 인해 저장 장치(140)로 데이터가 옮겨지기 전까지 상기 프로세스에 대한 컴퓨팅 연산 중의 데이터, 및 결과 데이터를 저장할 수 있다.
시스템 메모리(130)는 일반적으로 빠른 동작을 위해 DRAM과 같은 휘발성 메모리 장치를 포함할 수 있다. 하지만, DRAM과 같은 휘발성 메모리 장치의 경우 갑작스런 전원 차단 시 데이터가 손실될 수 있다. 따라서, 갑작스런 전원 차단에도 데이터 손실이 없도록 비휘발성 특성을 가지며 상대적으로 동작 속도가 빠른 NVRAM이 구비되어 시스템 메모리(130)로 사용될 수 있다.
이 때, DRAM 역시 NVRAM과 함께 시스템 메모리(130)로 포함되어, NVRAM의 캐시 메모리, 등으로 사용될 수 있다. 시스템 메모리(130) 전체를 휘발성 또는 비휘발성 메모리로 구성하는 것보다, 휘발성 메모리와 비휘발성 메모리로 함께 구성하여, 두 가지 메모리 특성의 장점을 모두 활용하면서 단점을 보완할 수 있다. 또한, 메모리 공간 분리를 통해 메인 메모리의 신뢰성(reliability) 및 가용성(availability)이 향상될 수 있다.
비휘발성 특성을 갖는 NVRAM은 저장 장치(140)로도 사용될 수 있다. 물론, 적용되는 시스템 또는 플랫폼에 따라 저장 장치(140)는 플래시 메모리 또는 하드 드라이브, 등을 더 포함할 수 있으며, 이에 대해서는 아래에 좀더 자세히 설명하고자 한다. 따라서, 본 발명의 실시예에 따라 컴퓨팅 시스템(100)에 구비되는 NRRAM은 일부 공간은 시스템 메모리(130)로 할당되면서, 동시에 다른 남은 공간은 저장 장치(140)로 할당될 수 있다. 시스템 메모리(130), 및 저장 장치(140)로 각각 할당되는 공간들은 메모리 컨트롤러(110)에 의해 서로 다른 접근 방식(access pattern)이 이뤄지게 된다. 이에 대해서는 도 2를 통해 보다 더 구체적으로 설명하고자 한다.
도 2는 본 발명의 실시예에 따른 메모리 컨트롤러 및 비휘발성 메모리 장치를 도시한 블록도이다. 메모리 컨트롤러(210)는 도 1에 도시된 메모리 컨트롤러(120)에 대응할 수 있고. 비휘발성 메모리 장치(220)는 NVRAM을 포함할 수 있다.
메모리 컨트롤러(210)는 NVRAM(220)을 이중-파티션할 수 있으며, 그 중 하나의 공간은 시스템 메모리로, 그리고, 다른 공간은 저장 장치로 할당할 수 있다. 시스템 메모리, 즉, 메인 메모리로 할당된 제1 공간(221)은 프로그램 수행 공간으로 사용될 수 있으며, 운영체제(OS)의 물리적 메모리 공간과 같은 방식으로 관리 될 수 있다. 또한, 저장 장치, 즉, 스토리지로 할당된 제2 공간(222)은 파일 시스템 공간으로 사용될 수 있으며, 운영체제(OS)의 파일 시스템의 블록과 같은 방식으로 관리될 수 있다. 예를 들면, 메모리 컨트롤러(210)는 NVRAM(220)의 제1 및 제2 공간들(221, 및 222)을 각각 buddy 시스템 기법, 및 파일 할당 테이블(FAT: File Allocation Table) 기법을 통해 접근할 수 있다. 또는, 메모리 컨트롤러(210)에 의해 NVRAM(220)의 제1 및 제2 공간들(221, 및 222)은 각각 플랫폼-물리적 어드레스(platform-physical address), 및 논리적-블록 어드레스(logical-block address)를 사용하여 어드레싱될 수 있다.
물론, NVRAM(220)의 제1 및 제2 공간들(221, 및 222)을 관리하는 방식은 NVRAM(220)이 적용되는 플랫폼에 따라 달라질 수 있다. 예를 들어, 서버 시스템 같은 큰-스케일(large-scale)의 플랫폼에서는 플래시 메모리나 하드 드라이버, 등이 저장 장치로 함께 사용될 수 있다. 따라서, 저장 장치로 할당되는 NVRAM(220)의 제2 공간(222) 역시 운영체제(OS) 또는 어플리케이션(Application)에 의해 다른 장치들과 구분되지 않도록 블록 접근이 이뤄질 수 있다. 이 경우, 블록 접근이 가능한 인터페이스를 위해 저장 드라이버, 등이 사용될 수 있으며, 앞서 설명한 바와 같이, NVRAM(220)의 제1 및 제2 공간들(221, 및 222) 각각에 대한 데이터 접근 방식이 달라질 수 있다.
반면, 스마트 폰이나 PDA와 같은 모바일 장치, 즉, 작은 플랫폼에서는 동작 측면에서 계층 구조의 메모리 장치를 포함하는 것이 불리하다. 따라서, NVRAM(220)이 단독으로 시스템 메모리 및 저장 장치로 사용될 수 있다. 따라서, 블록 접근을 위한 저장 드라이버 없이, NVRAM(220)의 제1 공간(221)과 같이 제2 공간(222) 역시 접근 속도를 증가시키고 전체 전력 사용을 줄일 수 있다. 이 경우, NVRAM(220)의 제1 및 제2 공간들(221, 및 222)에 대한 데이터 접근 방식은 같을 수 있다.
NVRAM(220)의 제1 및 제2 공간들(221, 및 222)에 저장되는 데이터의 특성 또한 다를 수 있다. 메모리 컨트롤러(210)는 NVRAM(220)의 제1 공간(221)을 메인 메모리로 사용하면서, 프로세스의 연산에 관련된 데이터 등을 저장할 수 있다. 반면, 메모리 컨트롤러(210)는 NVRAM(220)의 제2 공간(222)을 스토리지로 사용하면서, 프로세스의 연산이 종료된 데이터 등을 옮겨 저장할 수 있다. 따라서, NVRAM(220)의 제1 공간(221)이 제2 공간(222)에 비해서 상대적으로 더 많은 핫 데이터를 저장할 수 있으며, 반면, NVRAM(220)의 제2 공간(222)은 제1 공간(222)에 비해서 상대적으로 더 많은 콜드 데이터를 저장할 수 있다. 메모리 컨트롤러(210) 이 같은 특성을 바탕으로 제1 및 제2 공간들(221, 및 222)에서 핫 및 콜드 데이터를 검출하여 웨어-레벨링 동작을 수행할 수 있다.
도 3은 도 1에 도시된 NVRAM(220)의 웨어-레벨링 동작을 설명하기 위한 도면이다. 좌측 도면은 핫 데이터 영역을 검출하기 위한 동작을 나타내고, 우측 도면은 콜드 데이터 영역을 검출하기 위한 동작을 나타낸다.
앞서 설명한 바와 같이, 메모리 컨트롤러(210)는 NVRAM(220)을 제1 및 제2 공간들로 나누고, 각각을 시스템 메모리 및 저장 장치로 할당할 수 있다. 제1 및 제2 공간들은 각각에 저장된 데이터의 사용에 따라 구분될 수 있다. 도 3의 'Physical Address'에서 보이듯이, NVRAM(220) 내에 물리적인 위치로는 각각의 공간들이 섞여있을 수 있다.
NVRAM(220)이 복수의 메모리 블록들로 구성되고, 메모리 블록을 기준으로 웨어-레벨링이 수행된다면, 도 3의 'Physical Address'는 메모리 블록 어드레스를 의미할 수 있다. 하지만, 본 발명이 이에 한정되는 것은 아니다. 메모리 블록에 포함되는 라이트 동작 단위, 예를 들면, 페이지를 나타낼 수 있고, 메모리 컨트롤러(210)는 페이지 단위로 웨어-레벨링을 수행할 수 있다.
본 발명의 일 실시예에 따라, 메모리 컨트롤러(210)가 메모리 블록 단위로 웨어-레벨링을 수행하면, 메모리 컨트롤러(210)는 메모리 블록 별로 라이트 동작 횟수를 카운트할 수 있다. 라이트 동작 횟수를 카운트하여, 카운트된 횟수가 큰 메모리 블록을 핫 데이터 영역으로 검출하고, 카운트 횟수가 작은 메모리 블록을 콜드 데이터 영역으로 검출할 수 있다. 핫 데이터 영역으로 검출된 메모리 블록의 데이터를 콜드 데이터 영역으로 검출된 메모리 블록의 데이터와 교환, 즉, 스왑(swapping)하여 웨어-레벨링을 수행할 수 있다.
카운트된 횟수가 크다는 것은 그만큼 라이트 동작이 많이 수행된 것을 나타내므로, 메모리 블록이 상대적으로 자주 접근되는 핫 데이터를 포함할 수 있다. 반면, 카운트된 횟수가 적은 메모리 블록은 그만큼 라이트 동작이 많이 수행되지 않은 콜드 데이터를 포함할 수 있다. 또한, 라이트 동작 횟수가 많을수록 해당 메모리 블록의 마모도 손상은 더 심해진다. 따라서, 카운트된 횟수가 큰 메모리 블록의 데이터, 즉, 핫 데이터와 카운트된 횟수가 적은 메모리 블록의 데이터, 즉, 콜드 데이터를 서로 교환하여 각각의 메모리 블록의 마모도를 균등하게 관리할 수 있다.
이때, 앞서 설명한 바와 같이, 본 발명의 실시예에 따르면 NVRAM(220)의 제1 공간에 해당하는 메모리 블록들이 제2 공간에 해당하는 메모리 블록들에 비해서 더 많은 핫 데이터를 저장할 수 있다. 즉, 제1 공간에 해당하는 메모리 블록들의 라이트 동작 횟수가 제2 공간에 해당하는 메모리 블록들의 라이트 동작 횟수보다 상대적으로 높을 수 있다. 따라서, 메모리 컨트롤러(210)는 핫 데이터 영역을 검출할 때, 제1 공간에 해당하는 메모리 블록들에 대해서는 제2 공간에 비해 적은 개수의 메모리 블록들을 기준으로 핫 데이터 영역을 검출할 수 있다. 반면, 콜드 데이터 영역을 검출할 때 메모리 컨트롤러(210)는, 제1 공간에 해당하는 메모리 블록들에 대해서는 제2 공간에 비해 많은 개수의 메모리 블록들을 기준으로 콜드 데이터 영역을 검출할 수 있다.
도 3의 좌측 도면을 참조하면, 메모리 컨트롤러(210)는 제1 공간에서는 2개의 메모리 블록들마다 핫 데이터 영역을 검출하는 반면, 제2 공간에서는 4개의 메모리 블록들마다 핫 데이터 영역을 검출할 수 있다. 즉, 제1 공간은 제1 면적의 복수의 제1 구역들로 구분하고, 제2 공간은 제1 면적보다 큰 제2 면적의 복수의 제2 구역들로 구분하여 핫 데이터 영역을 검출할 수 있다. 다시 말하면, 제1 구역들이 각각 n(n은 자연수)개의 메모리 블록들을 포함할 때, 제2 구역들은 각각 n'(n'는 n보다 큰 자연수)개의 메모리 블록들을 포함할 수 있다.
이때, 각각의 구역에 포함되는 메모리 블록들의 라이트 동작의 수행 횟수(Write Count)를 비교하여, 라이트 동작의 수행 횟수가 최대인 메모리 블록을 핫 데이터 영역으로 검출할 수 있다. 따라서, 제1 및 제2 공간들에서 각각 k 및 k'개의 메모리 블록들이 핫 데이터 영역으로 검출될 수 있다. 메모리 컨트롤러(210)는 웨어-레빌링이 요구될 때마다, 하나의 구역을 선택하고 선택된 구역에서 핫 데이터 영역을 검출할 수 있다. 선택되는 구역은 순차적으로 바뀔 수 있지만, 제1 공간이 제2 공간에 비해 상대적으로 많은 핫 데이터 영역을 가질 수 있으므로, 제1 공간에서 n”(n”은 2 이상의 자연수)개의 제1 구역들이 선택될 때마다 제2 공간에서 하나의 제2 구역을 선택할 수 있다. 즉, 메모리 컨트롤러(210)는 제1 및 제2 구역들을 순차적으로 선택하여 상기 핫 데이터 영역을 검출하되, 제1 구역 대비 제2 구역을 n”:1의 비율로 선택할 수 있다.
반면, 도 3의 우측 도면을 참조하면, 메모리 컨트롤러(210)는 제1 공간에서는 4개의 메모리 블록들마다 콜드 데이터 영역을 검출하는 반면, 제2 공간에서는 2개의 메모리 블록들마다 콜드 데이터 영역을 검출할 수 있다. 즉, 제1 공간은 제3 면적의 복수의 제3 구역들로 구분하고, 제2 공간은 제3 면적보다 작은 제4 면적의 복수의 제4 구역들로 구분하여 콜드 데이터 영역을 검출할 수 있다. 다시 말하면, 제3 구역들이 각각 n'개의 메모리 블록들을 포함할 때, 제2 구역들은 각각 n개의 메모리 블록들을 포함할 수 있다.
이때, 각각의 구역에 포함되는 메모리 블록들의 라이트 동작의 수행 횟수(Write Count)를 비교하여, 라이트 동작의 수행 횟수가 최소인 메모리 블록을 콜드 데이터 영역으로 검출할 수 있다. 따라서, 제1 및 제2 공간들에서 각각 k' 및 k개의 메모리 블록들이 콜드 데이터 영역으로 검출될 수 있다. 메모리 컨트롤러(210)는 웨어-레빌링이 요구될 때마다, 하나의 구역을 선택하고 선택된 구역에서 콜드 데이터 영역을 검출할 수 있다. 선택되는 구역은 순차적으로 바뀔 수 있지만, 제2 공간이 제1 공간에 비해 상대적으로 많은 콜드 데이터 영역을 가질 수 있으므로, 제2 공간에서 n”개의 제4 구역들이 선택될 때마다 제1 공간에서 하나의 제3 구역을 선택할 수 있다. 즉, 메모리 컨트롤러(210)는 제3 및 제4 구역들을 순차적으로 선택하여 상기 콜드 데이터 영역을 검출하되, 제3 구역 대비 제4 구역을 1:n”의 비율로 선택할 수 있다.
도 4는 본 발명의 실시예에 따른 도 2의 메모리 컨트롤러 및 비휘발성 메모리를 포함하는 메모리 시스템의 전반적인 동작을 설명하기 위한 순서도이다.
1) 구역 정의(S410).
NVRAM(220, 도 2 참조)에 포함되는 제1 및 제2 공간들에 대해서 메모리 컨트롤러(210, 도 2 참조)는 복수의 구역들을 정의할 수 있다. 이때, 메모리 컨트롤러(210)는 NVRAM(220)의 제1 공간을 복수의 제1 구역들로 구분하고, NVRAM(220)의 제2 공간을 제1 구역보다 큰 복수의 제2 구역들로 구분할 수 있다. 또한, 메모리 컨트롤러(210)는 NVRAM(220)의 제1 공간을 복수의 제3 구역들로 구분하고, NVRAM(220)의 제2 공간을 제3 구역보다 작은 복수의 제4 구역들로 구분할 수 있다
2) 구역 선택(S420)
메모리 컨트롤러(210)는 구분된 제1 및 제2 구역들에서 핫 데이터 영역을 검출하고, 구분된 제3 및 제4 구역들에서는 콜드 데이터 영역을 검출할 수 있다. 핫 데이터 영역을 검출하기 위해, 메모리 컨트롤러(310)는 제1 및 제2 구역들에서 중에서 순차적으로 하나의 구역을 선택할 수 있다. 이때, 메모리 컨트롤러(210)는 제1 구역들 중 n(n은 2 이상의 자연수)개의 구역들을 선택할 때마다, 상기 제2 구역들 중 하나의 구역을 선택할 수 있다. 또한, 콜드 데이터 영역을 검출하기 위해, 메모리 컨트롤러(310)는 제3 및 제4 구역들에서 중에서 순차적으로 하나의 구역을 선택할 수 있다. 이때, 메모리 컨트롤러(210)는 제4 구역들 중 n개의 구역들을 선택할 때마다, 상기 제3 구역들 중 하나의 구역을 선택할 수 있다.
3) 동작 횟수 비교(S430) 및 핫 데이터 영역 검출(S440)
메모리 컨트롤러(210)는 구역 선택 단계(S420)에서 선택된 구역에 포함된 복수의 메모리 블록들의 라이트 동작 횟수를 비교할 수 있다. 핫 데이터 영역을 검출하기 위해, 제1 및 제2 구역들 중 선택된 구역에 포함된 복수의 메모리 블록들의 라이트 동작 횟수를 비교할 수 있다. 라이트 동작 횟수의 비교 결과, 복수의 메모리 블록들 중 라이트 동작 횟수가 최대이면(YES, S430), 해당 메모리 블록은 핫 데이터 영역으로 검출된다(S440).
4) 동작 횟수 비교(S450) 및 콜드 데이터 영역 검출(S460)
메모리 컨트롤러(210)는 구역 선택 단계(S420)에서 선택된 구역에 포함된 복수의 메모리 블록들의 라이트 동작 횟수를 비교할 수 있다. 콜드 데이터 영역을 검출하기 위해, 제3 및 제4 구역들 중 선택된 구역에 포함된 복수의 메모리 블록들의 라이트 동작 횟수를 비교할 수 있다. 라이트 동작 횟수의 비교 결과, 복수의 메모리 블록들 중 라이트 동작 횟수가 최소이면(YES, S450), 해당 메모리 블록은 콜드 데이터 영역으로 검출된다(S460).
5) 데이터 스왑(S470)
메모리 컨트롤러(210)는 핫 데이터 영역 검출 단계(S440)에서 핫 데이터 영역으로 검출된 메모리 블록과 콜드 데이터 영역 검출 단계(S460)에서 콜드 데이터 영역으로 검출된 메모리 블록들 서로 스왑할 수 있다. 즉, 핫 데이터 영역으로 검출된 메모리 블록에 저장된 데이터와 콜드 데이터 영역으로 검출된 메모리 블록에 저장된 데이터를 서로 교환하여, 메모리 블록의 마모도를 균등하게 관리하는 웨어-레벨링을 수행할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 이상에서 기술된 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 여러 가지 치환, 변형 및 변경으로 다양한 실시예가 가능함을 이해할 수 있을 것이다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치의 제1 및 제2 공간들을 각각 시스템 메모리 및 저장 장치로 할당하는 메모리 컨트롤러;를 포함하고,
    상기 메모리 컨트롤러는 상기 제1 및 제2 공간들을 서로 다른 크기의 구역들로 구분하여, 각각의 구역에서 핫 또는 콜드 데이터 영역을 검출하는,
    메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러는 상기 제1 공간을 복수의 제1 구역들로 구분하고 상기 제2 공간을 상기 제1 구역보다 큰 복수의 제2 구역들로 구분하여, 각각의 구역에서 핫 데이터 영역을 검출하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 메모리 컨트롤러는 상기 제1 및 제2 구역들 각각에 포함된 복수의 메모리 블록들에 대해 라이트 동작의 수행 횟수를 비교하고, 상기 복수의 메모리 블록들 중에서 라이트 동작의 수행 횟수가 최대인 메모리 블록을 상기 핫 데이터 영역으로 검출하는 메모리 시스템.
  4. 제2항에 있어서,
    상기 메모리 컨트롤러는 상기 제1 및 제2 구역들을 순차적으로 선택하여 상기 핫 데이터 영역을 검출하되, 상기 제1 구역 대비 제2 구역을 n(n은 2 이상의 자연수):1의 비율로 선택하는 메모리 시스템.
  5. 제1항에 있어서,
    상기 메모리 컨트롤러는 상기 제1 공간을 복수의 제3 구역들로 구분하고 상기 제2 공간을 상기 제3 구역보다 작은 복수의 제4 구역들로 구분하여, 각각의 면적에서 콜드 데이터 영역을 검출하는 메모리 시스템.
  6. 제5항에 있어서,
    상기 메모리 컨트롤러는 상기 제3 및 제4 구역들 각각에 포함된 복수의 메모리 블록들 대해 라이트 동작의 수행 횟수를 비교하고, 상기 복수의 메모리 블록들 중에서 라이트 동작의 수행 횟수가 최소인 메모리 블록을 상기 콜드 데이터 영역으로 검출하는 메모리 시스템.
  7. 제5항에 있어서,
    상기 메모리 컨트롤러는 상기 제3 및 제4 구역들을 순차적으로 선택하여 상기 콜드 데이터 영역을 검출하되, 상기 제3 구역 대비 제4 구역을 1:n(n은 2 이상의 자연수)의 비율로 선택하는 메모리 시스템.
  8. 제1항에 있어서,
    상기 메모리 컨트롤러는 상기 검출된 핫 데이터 영역과 상기 검출된 콜드 데이터 영역의 데이터를 서로 스왑하는 메모리 시스템.
  9. 제1항에 있어서,
    상기 메모리 컨트롤러는 상기 비휘발성 메모리 장치의 제1 및 제2 공간들을 각각 운영체제의 물리적 메모리 및 파일 시스템 블록으로 관리하는 메모리 시스템.
  10. 제1항에 있어서,
    상기 비휘발성 메모리 장치는 PCRAM(Phase change Random Access Memory), MRAM(Magnetoresistive RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM)을 포함하는 메모리 시스템.
  11. 비휘발성 메모리 장치의 제1 공간을 복수의 제1 구역들로 구분하고, 상기 비휘발성 메모리 장치의 제2 공간을 상기 제1 구역보다 큰 복수의 제2 구역들로 구분하는 단계;
    상기 비휘발성 메모리 장치의 제1 공간을 복수의 제3 구역들로 구분하고, 상기 비휘발성 메모리 장치의 제2 공간을 상기 제3 구역보다 작은 복수의 제4 구역들로 구분하는 단계;
    상기 제1 및 제2 구역들에서 핫 데이터 영역을 검출하는 단계; 및
    상기 제3 및 제4 구역들에서 콜드 데이터 영역을 검출하는 단계;를 포함하는,
    메모리 시스템의 동작방법.
  12. 제11항에 있어서,
    상기 제1 및 제2 구역들에서 핫 데이터 영역을 검출하는 단계는,
    상기 제1 및 제2 구역들 중에서 하나의 구역을 선택하는 단계; 및
    산기 선택된 구역에 포함된 복수의 메모리 블록들의 라이트 동작의 수행 횟수를 비교하는 단계;를 포함하는 메모리 시스템의 동작방법.
  13. 제12항에 있어서,
    상기 제1 구역들 중 n(n은 2 이상의 자연수)개의 구역을 선택할 때마다, 상기 제2 구역들 중 하나의 구역을 선택하는 메모리 시스템의 동작방법.
  14. 제12항에 있어서,
    상기 비교하는 단계 결과, 상기 복수의 메모리 블록들 중 라이트 동작의 수행 횟수가 최대인 메모리 블록을 상기 핫 데이터 영역으로 검출하는 메모리 시스템의 동작방법.
  15. 제11항에 있어서,
    상기 제3 및 제4 구역들에서 콜드 데이터 영역을 검출하는 단계는,
    상기 제3 및 제4 구역들 중에서 하나의 구역을 선택하는 단계; 및
    산기 선택된 구역에 포함된 복수의 메모리 블록들의 라이트 동작의 수행 횟수를 비교하는 단계;를 포함하는 메모리 시스템의 동작방법.
  16. 제15항에 있어서,
    상기 제4 구역들 중 n(n은 2 이상의 자연수)개의 구역을 선택할 때마다, 상기 제3 구역들 중 하나의 구역을 선택하는 메모리 시스템의 동작방법.
  17. 제15항에 있어서,
    상기 비교하는 단계 결과, 상기 복수의 메모리 블록들 중 라이트 동작의 수행 횟수가 최소인 메모리 블록을 상기 콜드 데이터 영역으로 검출하는 메모리 시스템의 동작방법.
  18. 제11항에 있어서,
    상기 검출된 핫 데이터 영역과 상기 검출된 콜드 데이터 영역의 데이터를 서로 스왑하는 단계를 더 포함하는 메모리 시스템의 동작방법.
  19. 제11항에 있어서,
    상기 비휘발성 메모리 장치의 제1 및 제2 공간들은 각각 시스템 메모리 및 저장 장치로 할당되는 메모리 시스템의 동작방법.
  20. 제11항에 있어서,
    상기 비휘발성 메모리 장치는 PCRAM(Phase change Random Access Memory), MRAM(Magnetoresistive RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM)을 포함하는 메모리 시스템의 동작방법.
KR1020160137339A 2016-10-21 2016-10-21 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 KR20180044451A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160137339A KR20180044451A (ko) 2016-10-21 2016-10-21 메모리 시스템 및 이를 이용한 웨어-레벨링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160137339A KR20180044451A (ko) 2016-10-21 2016-10-21 메모리 시스템 및 이를 이용한 웨어-레벨링 방법

Publications (1)

Publication Number Publication Date
KR20180044451A true KR20180044451A (ko) 2018-05-03

Family

ID=62245020

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160137339A KR20180044451A (ko) 2016-10-21 2016-10-21 메모리 시스템 및 이를 이용한 웨어-레벨링 방법

Country Status (1)

Country Link
KR (1) KR20180044451A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986140A (zh) * 2021-11-03 2022-01-28 深圳市源微创新实业有限公司 一种高传输率大容量云存储固态硬盘
CN114185487A (zh) * 2021-11-25 2022-03-15 深圳市德明利技术股份有限公司 冷热数据识别方法、装置、计算机设备

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986140A (zh) * 2021-11-03 2022-01-28 深圳市源微创新实业有限公司 一种高传输率大容量云存储固态硬盘
CN113986140B (zh) * 2021-11-03 2023-10-27 深圳市源微创新实业有限公司 一种高传输率大容量云存储固态硬盘
CN114185487A (zh) * 2021-11-25 2022-03-15 深圳市德明利技术股份有限公司 冷热数据识别方法、装置、计算机设备

Similar Documents

Publication Publication Date Title
CN109144887B (zh) 存储器系统及控制非易失性存储器的控制方法
EP3869316B1 (en) Hybrid storage
US11003356B2 (en) Memory system
US10445005B2 (en) Memory system and operating method thereof
JP5943095B2 (ja) 複合不揮発性記憶装置のためのデータ移行
US8650379B2 (en) Data processing method for nonvolatile memory system
US20090172255A1 (en) Wear leveling method and controller using the same
US20100312955A1 (en) Memory system and method of managing the same
US20160253257A1 (en) Data processing system and operating method thereof
US9195579B2 (en) Page replacement method and memory system using the same
US20170364280A1 (en) Object storage device and an operating method thereof
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
CN104572478A (zh) 数据存取方法和数据存取装置
US8947937B1 (en) Host-managed logical mass storage device using magnetic random access memory (MRAM)
CN111930643B (zh) 一种数据处理方法及相关设备
US9558124B2 (en) Data storage system with passive partitioning in a secondary memory
US20180039443A1 (en) System and method for controlling a programmable deduplication ratio for a memory system
US11334272B2 (en) Memory system and operating method thereof
CN110119245B (zh) 用于操作nand闪存物理空间以扩展存储器容量的方法和系统
US10776262B2 (en) Memory system and operating method thereof
KR20180044451A (ko) 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR102330394B1 (ko) 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법
US11226738B2 (en) Electronic device and data compression method thereof
CN109727629B (zh) 使用利用多间隙进度字段的磨损均衡的方法和系统
US20170052899A1 (en) Buffer cache device method for managing the same and applying system thereof