KR101146082B1 - 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법 - Google Patents

비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법 Download PDF

Info

Publication number
KR101146082B1
KR101146082B1 KR1020100029145A KR20100029145A KR101146082B1 KR 101146082 B1 KR101146082 B1 KR 101146082B1 KR 1020100029145 A KR1020100029145 A KR 1020100029145A KR 20100029145 A KR20100029145 A KR 20100029145A KR 101146082 B1 KR101146082 B1 KR 101146082B1
Authority
KR
South Korea
Prior art keywords
hot data
data
page number
hot
count value
Prior art date
Application number
KR1020100029145A
Other languages
English (en)
Other versions
KR20110109418A (ko
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 KR1020100029145A priority Critical patent/KR101146082B1/ko
Publication of KR20110109418A publication Critical patent/KR20110109418A/ko
Application granted granted Critical
Publication of KR101146082B1 publication Critical patent/KR101146082B1/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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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]

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

비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법이 개시된다. 논리 페이지 번호 및 데이터를 포함하는 쓰기 명령을 제공받으면, 논리 페이지 번호에 해당하는 핫 데이터 카운트 값을 증가시키고, 증가된 핫 데이터 카운트 값에 기초하여 데이터가 핫 데이터이고 새로운 핫 데이터인가를 판단하고, 데이터가 핫 데이터이고 새로운 핫 데이터인 경우, 상변화 메모리의 여유 공간을 고려하여 데이터의 기록 위치를 상변화 메모리 및 플래시 메모리 중 어느 하나로 결정한다. 따라서, 비휘발성 메모리 저장 장치의 전체적인 성능을 향상시킬 수 있고, 플래시메모리의 지움 연산을 감소시킴으로써 플래시메모리의 수명도 향상시킬 수 있다.

Description

비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법 {NON-VOLATILE MEMORY STORAGE AND METHOD FOR IMPROVING PERFORMANCE OF NON-VOLATILE MEMORY STORAGE}
본 발명은 비휘발성 메모리 저장 장치에 관한 것으로, 더욱 상세하게는 상변화메모리 및 플래시메모리로 구성된 비휘발성 메모리 저장 장치에 적용될 수 있는 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법에 관한 것이다.
플래시메모리는 비휘발성 메모리로서 그 자체로서 휴대용 저장 장치로 사용될 수도 있고, 하드 디스크와 디스크 캐시(Disk Cache)간의 병목 현상을 줄이고 디스크 캐시의 전력 소비를 줄이기 위한 2차 캐시로 사용될 수도 있으며, 기존의 하드 디스크와 결합된 하이브리드 하드 디스크(Hybrid HDD) 또는 복수의 플래시메모리 칩을 하나의 저장 장치로 구성한 SSD(Solid State Disk, 이하, 'SSD'라 약칭함)에 활용될 수도 있다.
플래시메모리는 크게 기존의 랜덤 메모리의 특성을 많이 가지는 노어형 플래시(NOR Flash) 메모리와 하드디스크 등과 같은 저장 매체의 특성을 많이 가지는 낸드형 플래시(NAND Flash) 메모리로 분류될 수 있다.
낸드 플래시메모리는 집적도가 1999년 이후 매년 2배씩 증가해왔고 집적도가 증가함에 따라 기존의 하드 디스크를 대체하는 새로운 저장 장치로서의 가능성을 인정받기 시작하였다. 일 예로 복수의 낸드 플래시 칩과 제어장치로 구성된 SSD는 이미 휴대용 컴퓨터에서부터 하드 디스크를 대체하고 있다.
낸드 플래시메모리는 읽기(Read) 및 쓰기(Write) 연산은 페이지 단위로 수행하고 지우기(Erase) 연산은 블록 단위로 수행하며, 데이터가 갱신(update)되는 경우 해당 영역을 갱신된 데이터로 덮어쓸 수 없고 해당 블록이 삭제되어야만 그 위치에 새로운 데이터를 쓸 수 있다는 특징을 가진다. 상기와 같은 특징으로 인해 낸드 플래시메모리는 이전에 데이터가 기록된 위치에 갱신된 데이터를 바로 덮어쓸 수 없고 새로운 위치에 데이터를 기록한 후(out-place update) 위치 정보를 갱신해야 하는 단점이 있고, 이로 인해 전체적인 속도가 저하될 수 있다.
또한, 플래시메모리는 쓰기 및 지우기 회수가 통상 소정 회수로 제한되어 있으므로 동일 블록을 제한 회수를 초과하여 사용하게 되면 그 블록은 데이터 오류 발생률이 급격하게 증가하여 더 이상 정상적인 사용이 불가능한 단점이 있다. 따라서, 데이터의 갱신이 발생할 경우 해당 블록을 지우고 지워진 블록에 갱신된 데이터를 기록하지 않고, 해당 블록은 다음 작업을 위해 지우되 갱신된 데이터는 새로운 블록에 기록하는 닳기 균등화(wear leveling) 방식을 일반적으로 사용한다.
전술한 바와 같은 낸드 플래시메모리의 특징으로 인해 하드 디스크 기반으로 설계된 호스트 시스템의 파일 시스템(File System)과 낸드 플래시메모리 사이에는 낸드 플래시메모리를 하드 디스크인 것처럼 에뮬레이션(emulation) 해주는 플래시 변환 계층(Flash Translation Layer, 이하, 'FTL'이라 약칭함)이라는 시스템 소프트웨어가 사용된다.
FTL은 호스트 시스템의 파일 시스템에게 낸드 플래시메모리가 가지고 있는 고유의 특성들을 감추며, 하드 디스크와 동일한 입/출력 연산을 수행할 수 있도록 파일 시스템으로부터 전달되는 논리적인 주소를 낸드 플래시메모리의 물리적 주소와 매핑(mapping)하는 기능을 수행한다.
한편, 차세대 비휘발성 메모리로 각광받고 있는 상변화메모리(PRAM: Phase-change Random Access Memory)는 칼코게나이드계(Ge2SB2Te5: GST) 합금에 전류나 전압을 인가할 때 발생하는 줄 히팅(Joule heating)에 의해 결정(SET 상태, 낮은 전기저항) 및 비정질(RESET 상태, 높은 전기저항)간의 가역적인 상변화가 발생할 때의 저항차이를 이용하여 정보를 저장하는 메모리로서, DRAM과 플래시메모리의 장점만을 융합하여 플래시메모리에 비해 읽기 및 쓰기 성능이 우수하고, 덮어쓰기가 가능한 장점이 있다.
그러나, 상변화메모리는 GeSbTe의 일부가 리셋(RESET)시의 과전류에 의해 열화되어 GeSb로 변화하는 현상과 고집적시 인접셀의 열간섭 등으로 인해 대용량화가 어려운 단점이 있다.
최근에는 상술한 낸드 플래시메모리와 상변화메모리 각각의 장점만을 이용하여 전체적인 성능을 향상시키기 위하여 낸드 플래시메모리 및 상변화메모리를 모두 구비한 혼성(hybrid) 형태의 저장 장치가 개발되고 있다.
도 1은 일반적인 혼성 저장 장치의 구성 및 사용환경을 나타내는 블록도이다.
도 1에 도시한 바와 같이 혼성 저장 장치(10)는 상변화메모리(11) 및 낸드 플래시메모리(12)를 포함하고, 상변화메모리(11)와 낸드 플래시메모리(12)의 장점을 이용하기 위해 FAT 파일 시스템의 메타데이터 및 FTL의 매핑 테이블을 상변화메모리(11)에 위치시킴으로써 전체적인 처리 성능을 향상시킨다.
그러나, 종래의 혼성 저장 장치는 상변화메모리에 파일 시스템의 메타데이터 및 매핑 테이블 만을 저장하고 참조 비율이 훨씬 높은 일반 데이터는 낸드 플래시메모리에 저장하기 때문에 성능 향상에 한계가 있고, 실질적인 성능 향상률이 저조한 단점이 있다.
본 발명의 목적은 상변화메모리 및 플래시메모리 각각의 장점을 이용하여 성능 향상을 최대화할 수 있는 비휘발성 메모리 저장 장치를 제공하는 것이다.
또한, 본 발명의 다른 목적은 상기 비휘발성 메모리 저장 장치의 성능 향상 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상술한 본 발명의 목적을 달성하기 위한 본 발명의 일 측면에 따른 비휘발성 메모리 저장 장치는 호스트 장치와 상기 비휘발성 메모리 저장 장치의 인터페이스를 수행하는 호스트 인터페이스와, 상기 호스트 인터페이스를 통해 제공된 읽기 및 쓰기 명령의 회수에 기초하여 핫 데이터를 판단하고, 핫 데이터로 판단된 데이터에 대해서는 상기 상변화 메모리의 여유 공간을 고려하여 기록 위치를 상기 플래시 메모리 및 상기 상변화 메모리 중 어느 하나로 결정하는 제어부 및 상기 제어부의 제어에 상응하여 상기 제공된 읽기 또는 쓰기 명령에 상응하는 데이터를 플래시 메모리에 상응하는 저수준의 명령으로 변환하는 낸드 제어부를 포함한다. 상기 제어부는 상기 호스트 인터페이스를 통해 호스트 장치로부터 제공된 읽기 및 쓰기 명령의 회수를 카운트하고, 카운트된 값이 미리 설정된 기준값 이상인 경우에는 핫 데이터로 판단하고, 상기 상변화 메모리의 여유 공간을 고려하여 상기 핫 데이터가 저장될 위치를 결정하는 핫 데이터 검출 모듈을 포함할 수 있다. 상기 제어부는 논리 페이지 번호와 물리 페이지 번호가 매핑된 매핑 테이블에 읽기 또는 쓰기 참조 회수를 카운트하는 핫 데이터 카운트 필드를 추가하고, 상기 호스트 인터페이스를 통해 읽기 또는 쓰기 명령이 제공되면, 제공된 읽기 또는 쓰기 명령의 논리 페이지 번호에 대응되는 핫 데이터 카운트값을 증가시키고, 핫 데이터 카운트값 중 미리 설정된 크기를 가지는 상위 비트들을 검출하여 핫 데이터를 판단할 수 있다. 상기 제어부는 상기 핫 데이터 카운트 필드의 값 중 가장 큰 값에 대응되는 논리 페이지 번호인 최대 핫 데이터 카운트 페이지 번호를 관리하고, 상기 최대 핫 데이터 카운트 페이지 번호에 대응되는 핫 데이터 카운트 값이 최대가 된 후 상기 최대 핫 데이터 카운트 페이지 번호에 대응되는 논리 페이지 번호에 대해 쓰기 명령이 제공되는 경우 핫 데이터 카운트 필드의 모든 값을 0으로 리셋할 수 있다. 상기 제어부는 상기 핫 데이터 카운트 필드의 값 중 가장 작은 값에 대응되는 논리 페이지 번호인 최소 핫 데이터 카운트 페이지 번호를 관리하고, 제공된 쓰기 명령이 새로운 핫 데이터이고, 상변화 메모리에 상기 새로운 핫 데이터를 기록할 여유 공간이 없는 경우 상기 새로운 핫 데이터의 핫 데이터 카운트 값이 상기 최소 핫 데이터 카운트 페이지 번호에 대응되는 논리 페이지 번호의 핫 데이터 카운트값 보다 큰 경우에만 상기 새로운 핫 데이터를 최종적으로 핫 데이터로 판별할 수 있다. 상기 제어부는 상기 호스트 인터페이스를 통해 제공된 쓰기 또는 읽기 명령어를 해석하여 플래시 메모리의 동작에 상응하도록 변환하고, 호스트 장치의 파일 시스템으로부터 제공되는 논리 페이지 번호를 플래시 메모리의 물리 페이지 번호로 매핑하는 플래시 변환 계층을 포함할 수 있다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 일 측면에 따른 비휘발성 메모리 저장 장치의 성능 향상 방법은, 논리 페이지 번호를 포함하는 읽기 명령을 제공받는 단계와, 상기 논리 페이지 번호에 해당하는 핫 데이터 카운트 값을 증가시키는 단계와, 매핑 테이블을 참조하여 상기 논리 페이지 번호에 매핑된 물리 페이지 번호를 획득하는 단계 및 상기 획득한 물리 페이지 번호에 기초하여 데이터를 독출하는 단계를 포함한다.
또한, 본 발명의 다른 목적을 달성하기 위한 본 발명의 다른 측면에 따른 비휘발성 메모리 저장 장치의 성능 향상 방법은, 논리 페이지 번호 및 데이터를 포함하는 쓰기 명령을 제공받는 단계와, 상기 논리 페이지 번호에 해당하는 핫 데이터 카운트 값을 증가시키는 단계와, 상기 증가된 핫 데이터 카운트 값에 기초하여 상기 데이터가 핫 데이터이고, 새로운 핫 데이터인가를 판단하는 단계 및 상기 데이터가 핫 데이터이고 새로운 핫 데이터인 경우, 상변화 메모리의 여유 공간을 고려하여 상기 데이터의 기록 위치를 상변화 메모리 및 플래시 메모리 중 어느 하나로 결정하는 단계를 포함한다. 상기 증가된 핫 데이터 카운트 값에 기초하여 상기 데이터가 핫 데이터이고, 새로운 핫 데이터인가를 판단하는 단계는, 상기 증가된 핫 데이터 카운트 값이 미리 설정된 기준값 이상인 경우 핫 데이터로 판단하고, 핫 데이터 카운트 값을 증가함에 따라 상기 데이터가 핫 데이터로 판단된 경우에 새로운 핫 데이터로 판단할 수 있다. 상기 비휘발성 메모리 저장 장치의 성능 향상 방법은, 상기 데이터가 핫 데이터가 아닌 것으로 판단된 경우 플래시 메모리에 상기 데이터를 기록하는 단계를 더 포함할 수 있다. 상기 비휘발성 메모리 저장 장치의 성능 향상 방법은, 상기 데이터가 핫 데이터이고 새로운 핫 데이터가 아닌 경우, 매핑 테이블에서 상기 논리 페이지 번호에 매핑된 상변화 메모리의 물리 페이지 번호를 획득하는 단계 및 획득한 상기 물리 페이지 번호에 상기 데이터를 덮어쓰는 단계를 더 포함할 수 있다. 상기 데이터가 핫 데이터이고 새로운 핫 데이터인 경우 상변화 메모리의 여유 공간을 고려하여 상기 데이터의 기록 위치를 상변화 메모리 및 플래시 메모리 중 어느 하나로 결정하는 단계는, 상기 상변화 메모리에 상기 데이터를 기록할 여유 공간이 존재하는 경우, 상기 논리 페이지 번호를 상기 상변화 메모리의 소정 물리 페이지 번호에 매핑하는 단계 및 상기 매핑된 소정 물리 페이지 번호에 상기 데이터를 기록하는 단계를 포함할 수 있다. 상기 데이터가 핫 데이터이고 새로운 핫 데이터인 경우 상변화 메모리의 여유 공간을 고려하여 상기 데이터의 기록 위치를 상변화 메모리 및 플래시 메모리 중 어느 하나로 결정하는 단계는, 상기 상변화 메모리에 여유 공간이 없는 경우, 상기 데이터의 핫 데이터 카운트 값이 핫 데이터로 판별된 핫 데이터 카운트 값 중 가장 작은 핫 데이터 카운트 값 보다 큰 가를 판단하는 단계와, 상기 데이터의 핫 데이터 카운트 값이 상기 가장 작은 핫 데이터 카운트 값 보다 큰 것으로 판단된 경우, 상기 가장 작은 핫 데이터 카운트 값을 가지는 논리 페이지 번호에 대응되는 데이터를 플래시 메모리에 이동시키는 단계와, 상기 데이터를 상기 가장 작은 핫 데이터 카운트 값을 가지는 논리 페이지 번호에 매핑된 상변화 메모리의 물리 페이지 번호에 기록하는 단계를 포함할 수 있다. 상기 데이터가 핫 데이터이고 새로운 핫 데이터인 경우 상변화 메모리의 여유 공간을 고려하여 상기 데이터의 기록 위치를 상변화 메모리 및 플래시 메모리 중 어느 하나로 결정하는 단계는, 상기 상변화 메모리에 여유 공간이 없는 경우, 상기 데이터의 핫 데이터 카운트 값이 핫 데이터로 판별된 핫 데이터 카운트 값 중 가장 작은 핫 데이터 카운트 값 보다 큰 가를 판단하는 단계 및 상기 데이터의 핫 데이터 카운트 값이 상기 가장 작은 핫 데이터 카운트 값 보다 작은 것으로 판단된 경우, 상기 데이터를 플래시 메모리에 기록하는 단계를 포함할 수 있다.
본 발명에 따른 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법에 따르면, 상변화메모리 및 플래시메모리를 포함하는 혼성 구조의 비휘발성 메모리 저장 장치에서 미리 설정된 기준 이상 참조되는 데이터를 핫 데이터로 판별한 후, 덮어쓰기가 가능한 상변화메모리에 메타데이터 뿐만 아니라 핫 데이터를 저장함으로써, 전체적인 성능을 향상시키고, 플래시메모리의 지움 연산을 감소시킴으로써 용량 비중이 큰 플래시메모리의 수명도 향상시킬 수 있다.
도 1은 일반적인 혼성 저장 장치의 구성 및 사용 환경을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치의 구성을 나타내는 블록도이다.
도 3은 도 2에 도시한 비휘발성 메모리 저장 장치의 동작을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치에서 핫 데이터를 관리하기 위한 핫 데이터 관리 테이블을 나타낸다.
도 5은 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치의 성능 향상 방법 중 읽기 수행 과정을 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치의 성능 향상 방법 중 쓰기 수행 과정을 나타내는 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다거나 "직접 접속되어"있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
이하, 본 발명의 실시예에서 핫 데이터(Hot Data)는 미리 설정된 기준 참조 회수 이상 참조되는 데이터를 의미한다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치의 구성을 나타내는 블록도이고, 도 3은 도 2에 도시한 비휘발성 메모리 저장 장치의 동작을 설명하기 위한 개념도이다. 또한, 도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치에서 핫 데이터를 관리하기 위한 핫 데이터 관리 테이블을 나타낸다.
도 2 내지 도 4를 참조하면, 본 발명의 일 실시예 따른 비휘발성 메모리 저장 장치(100)는 호스트 인터페이스(110), 버퍼(120), 낸드 제어부(130), 제어부(140) 및 비휘발성 메모리 유닛(150)을 포함할 수 있고, 상기 비휘발성 메모리 유닛(150)은 상변화메모리 유닛(151) 및 플래시메모리 유닛(153)을 포함한다.
호스트 인터페이스(110)는 호스트 장치(미도시)와 비휘발성 메모리 저장 장치(100) 사이의 인터페이스 기능을 수행하며, 고속의 데이터 전송을 지원하는 규격이 채용될 수 있다.
버퍼(120)는 DRAM 또는 SDRAM으로 구성될 수 있고, 호스트 인터페이스(110)를 통해 호스트 장치로부터 제공된 데이터가 해당 비휘발성 메모리 유닛(150)에 기록되기 전까지 일시적으로 저장되는 쓰기 버퍼(Write Buffer)로 사용될 수 있다.
낸드 제어부(130)는 제어부(140)의 제어에 상응하여 버퍼(120)로부터 페이지 단위의 데이터를 제공받고, 제공받은 데이터를 플래시메모리 유닛(153)에 상응하는 저수준의 명령으로 변환하여 해당 플래시메모리 유닛(153)에 제공한다. 낸드 제어부(130)에서 처리되는 명령어는 예를 들어, write page, read page, erase page, copyback page 등이 될 수 있다.
제어부(140)는 호스트 장치로부터 제공된 읽기 또는 쓰기 명령의 회수에 기초하여 핫 데이터를 판단하고, 핫 데이터로 판단된 데이터에 대해서는 기록 위치를 상변화메모리 유닛(151) 또는 플래시메모리 유닛(153) 중 어느 하나로 결정한다.
또한, 제어부(140)는 플래시메모리 유닛(153)에 읽기 또는 쓰기 명령이 수행되는 경우에는 호스트 장치로부터 제공된 명령어를 해석하여 플래시 메모리의 동작에 상응하도록 변환하여 처리하는 FTL(Flash Tranlation Layer) 기능을 수행하고, 비휘발성 메모리 저장 장치(100)의 각 구성 요소에 대한 최상위 제어를 수행한다.
구체적으로, 제어부(140)는 핫 데이터 검출 모듈(141) 및 플래시 변환 계층(143)을 포함할 수 있고, 상기 핫 데이터 검출 모듈(141) 및 플래시 변환 계층(143)은 소프트웨어적으로 구현될 수 있다.
핫 데이터 검출 모듈(141)은 호스트 장치로부터 제공되는 읽기 및 쓰기 명령의 회수를 카운트하고, 카운트된 값이 미리 설정된 기준값 이상인 경우에는 핫 데이터로 판단하고, 상변화메모리 유닛(151)의 여유 공간을 고려하여 상기 핫 데이터가 저장될 위치를 결정한다.
본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치(100)에서는 도 3에 도시한 바와 같이 핫 데이터의 검출을 위해 논리 페이지 번호(210)와 물리 페이지 번호가 매핑된 주소 매핑 테이블(200)에 핫 데이터 카운트 필드(250)를 추가하고, 핫 데이터 검출 모듈(141)은 호스트 장치로부터 읽기 또는 쓰기 명령이 제공될 때마다 제공된 논리 페이지 번호(210)에 해당하는 핫 데이터 카운트 필드(250)의 값을 증가시킨다.
상기 핫 데이터 카운트 필드(250)는 상변화메모리가 바이트(byte)별 접근이 가능하고 카운트 값의 증가에 따른 수정의 용이성을 고려하여 8비트로 구성될 수 있다. 이하, 본 발명의 실시예에서 핫 데이터 카운트 필드(250)는 8비트로 구성된 것으로 예를 들어 설명한다. 그러나, 본 발명의 다른 실시예에서는 비휘발성 메모리 저장 장치의 저장 용량이나 사용 환경 등에 따라 핫 데이터 카운트 필드가 8비트 보다 더 많은 비트로 구성될 수 있다.
또한, 핫 데이터 검출 모듈(141)은 호스트 장치로부터 쓰기 명령이 제공되면, 쓰기 명령의 논리 페이지 번호(210)에 대응되는 매핑 테이블(200)의 핫 데이터 카운트 필드(250)를 참조하여 제공된 쓰기 명령의 데이터가 핫 데이터인가를 판단한다. 여기서, 핫 데이터 검출 모듈(141)은 핫 데이터 카운트 필드(250)의 상위 3비트(255)를 참조하여 핫 데이터 여부를 판단할 수 있다. 즉, 핫 데이터 검출 모듈(141)은 호스트 장치로부터 제공된 쓰기 명령의 논리 페이지 번호에 대응되는 핫 데이터 카운트 필드의 상위 3비트 중 어느 하나라도 1이 포함된 경우(즉, 읽기 또는 쓰기 회수가 32 이상인 경우)에는 핫 데이터로 판단한다.
예를 들어, 도 3에서 논리 페이지 번호 4, 5 및 10에 대응되는 핫 데이터 카운트 필드의 상위 3비트는 각각 010, 001 및 111이므로 핫 데이터 검출 모듈(141)은 상기 논리 페이지 번호 4, 5 및 10에 해당하는 데이터를 핫 데이터로 판단하고, 상변화메모리 유닛(151)의 물리 페이지 번호 202, 201 및 200에 매핑시킴으로써, 논리 페이지 번호 4, 5 및 10에 해당하는 데이터가 상변화메모리 유닛(151)에 기록되도록 한다.
또한, 핫 데이터 검출 모듈(141)은 핫 데이터가 상변화메모리 유닛(151)에 저장됨으로 인해 발생할 수 있는 상변화메모리 유닛(151)의 저장 공간 부족 문제와, 매핑 테이블(200)의 핫 데이터 카운트 필드(250)가 8비트로 구성됨으로 인해 발생될 수 있는 카운트 값 제한 문제를 해결하기 위해 핫 데이터 관리 기능을 수행한다. 본 발명의 일 실시예에서는 핫 데이터 관리를 위해 도 4에 도시된 바와 같이 별도의 핫 데이터 관리 테이블(Hot data management table)(300)을 마련하여 최대 핫 데이터 카운트 페이지 번호(Highest hot data count page number)(310) 및 최소 핫 데이터 카운트 페이지 번호(Lowest hot data count page number)(330)를 관리한다.
최대 핫 데이터 카운트 페이지 번호(310)는 핫 데이터 카운트 필드(250)에서 카운트 값이 가장 큰 논리 페이지 번호를 나타내며, 소정 논리 페이지 번호에 대응되는 핫 데이터 카운트 값이 모두 1이 된 후(즉, 11111111), 다시 상기 소정 논리 페이지 번호로 쓰기 명령이 제공되었을 경우 핫 데이터 카운트 필드(250)의 모든 카운트 값을 0으로 리셋(reset)하여 다시 카운트를 시작하도록 하는 기준점 역할을 한다.
최소 핫 데이터 카운트 페이지 번호(330)는 핫 데이터 카운트 필드(250)에서 카운트 값이 가장 작은 논리 페이지 번호를 나타내며, 본 발명의 일 실시예에서는 연산 오버헤드를 줄이기 위해서 상변화메모리 유닛(151)에 더 이상의 추가적인 핫 데이터를 저장하기 위한 장소가 없는 시점부터 상기 최소 핫 데이터 카운트 페이지 번호(330)를 이용하여 관리를 시작한다.
예를 들어, 소정의 논리 페이지 번호로 쓰기 명령이 제공되어 핫 데이터로 판정된 상태에서 상변화메모리 유닛(151)에 상기 판정된 핫 데이터를 저장할 장소가 없는 경우, 핫 데이터 검출 모듈(141)은 상기 핫 데이터로 판정된 데이터의 논리 페이지 번호에 해당하는 핫 데이터 카운트 값이 최소 핫 데이터 카운트 페이지 번호의 핫 데이터 카운트 값보다 큰 경우에만 핫 데이터로 최종 판정한다.
여기서, 핫 데이터 관리 테이블(300)의 최대 핫 데이터 카운트 페이지 번호(310) 및 최소 핫 데이터 카운트 페이지 번호(330)는 도 3에 도시한 핫 데이터 카운트 필드(250)의 상위 3비트(255)에 기초하여 판단할 수 있고, 핫 데이터 카운트 필드(250)의 카운트 값이 갱신될 때마다 이에 상응하여 갱신될 수 있다.
도 3에 도시한 매핑 테이블(200)의 핫 데이터 카운트 필드(250) 및 도 4에 도시한 핫 데이터 관리 테이블(300)을 참조하여 핫 데이터 관리 방법을 보다 구체적으로 설명하면, 핫 데이터 카운트 필드(250)의 논리 페이지 번호 '10'은 핫 데이터 카운트 필드(250)의 상위 3 비트(255)가 '111'로서 가장 큰 값을 가지기 때문에 도 4에 도시한 바와 같이 최대 핫 데이터 카운트 페이지 번호(310)는 '10'이 되고, 이와 같은 상황에서 만약 논리 페이지 번호 '10'에 대한 쓰기 명령이 제공되는 경우에는 핫 데이터 카운트 필드(250)의 모든 카운트 값은 '0'으로 설정된 후, 상기 논리 페이지 번호 '10'에 대응되는 핫 데이터 카운트 값만 1만큼 증가된다.
또한, 핫 데이터 카운트 필드(250)의 논리 페이지 번호 '5'는 핫 데이터 카운트 필드(250)의 상위 3 비트(255)가 '001'로서 핫 데이터로 판별된 카운트 값 중에서는 가장 작은 값을 가지기 때문에 도 4에 도시한 바와 같이 최소 핫 데이터 카운트 페이지 번호(330)는 '5'가 되고, 이와 같은 상황에서 만약 상변화메모리 유닛(151)에 더 이상 저장할 공간이 없고 새로운 쓰기 명령이 제공되는 경우, 최소 핫 데이터 카운트 페이지 번호인 논리 페이지 번호 '5'의 카운트 값보다 더 큰 카운트 값을 가지는 논리 페이지 번호의 데이터에 대해서만 핫 데이터로 판별하게 된다.
다시 도 1을 참조하면, 플래시 변환 계층(143)은 호스트 장치로부터 제공되는 쓰기 또는 읽기 명령어를 해석하여 플래시메모리의 동작에 상응하도록 변환하고, 호스트 장치의 파일 시스템으로부터 전달되는 논리적인 주소(즉, 논리 페이지 번호)를 플래시메모리 유닛의 물리적인 주소(즉, 물리 페이지 번호)로 매핑하는 기능을 수행한다.
또한, 플래시 변환 계층(143)은 핫 데이터 검출 모듈(141)에 의해 검출된 핫 데이터가 상변화메모리 유닛(151)에 위치될 수 있도록 상기 판별된 핫 데이터에 대응되는 논리 페이지 번호를 상변화메모리 유닛(151)의 물리 페이지 번호에 매핑하는 기능을 수행할 수도 있다.
비휘발성 메모리 유닛(150)은 상변화메모리 유닛(151) 및 플래시메모리 유닛(153)을 모두 구비하는 혼성 형태로 구성될 수 있고, 상변화메모리 유닛(151)에는 파일 시스템의 메타 데이터와 플래시 변환 계층에서 관리하는 매핑 테이블 및 상술한 방법에 의해 판별된 핫 데이터가 저장될 수 있다.
플래시메모리 유닛(153)은 복수의 낸드 플래시메모리 칩으로 구성될 수 있고, 각각의 낸드 플래시 메모리 칩은 멀티채널로 연결되어 동시에 접근 가능하도록 구성될 수 있다. 또한, 플래시메모리 유닛(153)에는 핫 데이터로 판별되지 않는 일반 데이터가 저장될 수 있다.
도 2 내지 도 4에서는 호스트 장치로부터 제공된 읽기 또는 쓰기 명령에 상응하여 핫 데이터 검출 모듈(141)이 해당 논리 페이지 번호의 핫 데이터 카운트값을 증가시키고, 핫 데이터 관리 기능을 수행하는 것으로 예를 들어 설명하였으나, 본 발명의 다른 실시예에서는 별도의 핫 데이터 검출 모듈(141)을 구비하지 않고 상술한 핫 데이터 검출 모듈의 기능을 플래시 변환 계층(143)에서 수행하도록 구성될 수도 있다.
도 5은 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치의 성능 향상 방법 중 읽기 수행 과정을 나타내는 흐름도이다.
도 5를 참조하면, 먼저 호스트 장치로부터 논리 페이지 번호를 포함하는 읽기 명령이 제공되면(단계 410), 비휘발성 메모리 저장 장치는 제공된 읽기 명령의 논리 페이지 번호에 대응되는 핫 데이터 카운트 값을 증가시킨다(단계 420). 여기서, 상기 제공된 읽기 명령의 논리 페이지 번호에 대응되는 핫 데이터 카운트 값의 증가는 도 2에 도시한 비휘발성 메모리 저장 장치(100)의 제어부(140)에 의해 수행될 수 있다.
이후, 비휘발성 메모리 저장 장치는 매핑 테이블을 참조하여 호스트 장치로부터 제공된 읽기 명령의 논리 페이지 번호에 매핑된 물리 페이지 번호를 획득하고(단계 430), 획득한 물리 페이지 번호에 기초하여 데이터가 상변화메모리 유닛과 플래시 메모리 유닛 중 어디에 저장되었는가를 판단한다(단계 440). 여기서, 비휘발성 메모리 저장 장치는 물리 페이지 번호의 크기에 기초하여 데이터의 저장 위치를 판단할 수 있다. 예를 들어, 물리 페이지 번호가 200 미만인 경우에는 플래시메모리 유닛에 저장된 것으로 판단하고, 물리 페이지 번호가 200 이상인 경우에는 상변화메모리 유닛에 저장된 것으로 판단할 수 있다.
단계 440에서 판단결과, 읽기 명령의 대상이 되는 데이터가 상변화메모리 유닛에 저장된 것으로 판단된 경우, 비휘발성 메모리 저장 장치는 상변화메모리 유닛의 물리 페이지 번호가 지시하는 해당 위치에서 데이터를 독출하고(단계 450), 상기 읽기 명령의 대상이 되는 데이터가 플래시 메모리 유닛에 저장된 것으로 판단된 경우에는 플래시메모리 유닛의 물리 페이지 번호가 지시하는 해당 위치에서 데이터를 독출한다(단계 460).
도 6은 본 발명의 일 실시예에 따른 비휘발성 메모리 저장 장치의 성능 향상 방법 중 쓰기 수행 과정을 나타내는 흐름도이다.
도 6을 참조하면, 먼저 호스트 장치로부터 논리 페이지 번호 및 기록할 데이터를 포함하는 쓰기 명령이 제공되면(단계 501), 비휘발성 메모리 저장 장치는 제공된 쓰기 명령의 논리 페이지 번호에 대응되는 핫 데이터 카운트 값을 증가시킨다(단계 503).
이후, 비휘발성 메모리 저장 장치는 증가된 핫 데이터 카운트 값에 기초하여 제공된 쓰기 명령의 데이터가 핫 데이터인가를 판단하고(단계 505), 핫 데이터인 것으로 판단되면 새로운 핫 데이터인가를 판단한다(단계 507). 여기서, 비휘발성 메모리 저장 장치는 도 3에 도시한바와 같은 매핑 테이블(200)의 핫 데이터 카운트 필드(250) 중 상위 3비트(255)에 기초하여 핫 데이터 여부를 판단할 수 있고, 카운트값의 증가에 따라 핫 데이터 카운트 필드의 상위 3비트가 '001'인 경우 새로운 핫 데이터로 판단할 수 있다.
단계 507에서 판단한 결과, 핫 데이터가 새로운 핫 데이터로 판단되면 비휘발성 메모리 저장 장치는 상변화메모리 유닛에 상기 제공된 쓰기 명령의 데이터를 기록할 여유 공간이 존재하는가를 판단하고(단계 509), 상변화메모리 유닛에 여유 공간이 존재하지 않은 것으로 판단되면, 상기 제공된 쓰기 명령에 대한 핫 데이터 카운트 값이 핫 데이터 관리 테이블의 최소 핫 데이터 카운트 페이지 번호에 해당하는 핫 데이터 카운트 값보다 큰 가를 판단한다(단계 511).
여기서, 제공된 쓰기 명령에 대한 핫 데이터 카운트 값이 최소 핫 데이터 카운트 페이지 번호에 해당하는 핫 데이터 카운트 값보다 더 큰 것으로 판단되면, 비휘발성 메모리 저장 장치는 최소 핫 데이터 카운트 페이지 번호에 대응되는 데이터를 플래시 메모리 유닛으로 이동시킨 후(단계 513), 상기 최소 핫 데이터 카운트 페이지 번호에 대응되는 물리 페이지 번호(즉, 상변화메모리 유닛의 물리 페이지 번호)에 상기 제공된 쓰기 명령의 데이터를 기록한다(단계 515).
또는, 단계 511에서 제공된 쓰기 명령에 대한 핫 데이터 카운트 값이 최소 핫 데이터 카운트 페이지 번호에 해당하는 핫 데이터 카운트 값보다 작은 것으로 판단되면, 비휘발성 메모리 저장 장치는 제공된 쓰기 명령에 포함된 논리 페이지 번호를 플래시메모리 유닛의 물리 페이지 번호에 매핑하고(단계 517), 매핑된 플래시메모리 유닛의 물리 페이지 번호에 제공된 데이터를 기록한다(단계 519).
또한, 단계 509에서 상변화메모리 유닛에 여유 공간이 존재하는 것으로 판단되는 경우, 비휘발성 메모리 저장 장치는 제공된 쓰기 명령에 포함된 논리 페이지 번호를 상변화메모리 유닛의 물리 페이지 번호에 매칭한 후(단계 521), 매핑된 상변화메모리 유닛의 물리 페이지 번호에 제공된 데이터를 기록한다(단계 523).
또한, 단계 507에서 핫 데이터가 새로운 핫 데이터가 아닌 것으로 판단되면, 이는 제공된 쓰기 명령의 데이터가 핫 데이터이고 이미 상변화메모리 유닛에 기록된 것을 의미하므로, 비휘발성 메모리 저장 장치는 매핑 테이블에서 제공된 쓰기 명령에 포함된 논리 페이지 번호에 매핑된 상변화메모리 유닛의 물리 페이지 번호를 독출한 후(단계 525), 독출된 상변화메모리 유닛의 물리 페이지 번호에 제공된 데이터를 덮어쓴다(단계 527).
또한, 단계 505에서 제공된 쓰기 명령의 데이터가 핫 데이터가 아닌 것으로 판단되면, 이는 일반 데이터를 의미하므로 비휘발성 메모리 저장 장치는 종래의 방법과 동일한 방법으로 제공된 데이터를 플래시 메모리 유닛에 기록한다. 즉, 비휘발성 메모리 저장 장치는 제공된 일반 데이터에 대해 플래시메모리 유닛의 물리 페이지 번호를 매핑하고, 매핑된 물리 페이지 번호에 제공된 상기 일반 데이터를 기록한다(단계 529).
이상, 본 발명을 바람직한 실시예를 들어 상세하게 설명하였으나, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 사상 및 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
110 : 호스트 인터페이스 120 : 버퍼
130 : 낸드 제어부 140 : 제어부
141 : 핫 데이터 검출 모듈 143 : 플래시 변환 계층
150 : 비휘발성 메모리 유닛 151 : 상변화메모리 유닛
153 : 플래시메모리 유닛

Claims (14)

  1. 플래시 메모리 및 상변화 메모리를 포함하는 비휘발성 메모리 저장 장치에 있어서,
    호스트 장치와 상기 비휘발성 메모리 저장 장치의 인터페이스를 수행하는 호스트 인터페이스;
    상기 호스트 인터페이스를 통해 제공된 읽기 및 쓰기 명령의 회수에 기초하여 핫 데이터를 판단하고, 핫 데이터로 판단된 데이터에 대해서는 상기 상변화 메모리의 여유 공간을 고려하여 기록 위치를 상기 플래시 메모리 및 상기 상변화 메모리 중 어느 하나로 결정하는 제어부; 및
    상기 제어부의 제어에 상응하여 상기 제공된 읽기 또는 쓰기 명령에 상응하는 데이터를 플래시 메모리가 처리 가능한 명령으로 변환하는 낸드 제어부를 포함하되,
    상기 제어부는 매핑 테이블에 읽기 또는 쓰기 참조 회수를 카운트하는 핫 데이터 카운트 필드를 추가하고, 상기 읽기 또는 쓰기 명령에 따라 핫 데이터 카운트값을 증가시키고, 상기 핫 데이터 카운트 필드의 값 중 가장 큰 값에 대응되는 논리 페이지 번호인 최대 핫 데이터 카운트 페이지 번호에 대응되는 핫 데이터 카운트 값이 최대가 된 후 상기 최대 핫 데이터 카운트 페이지 번호에 대응되는 논리 페이지 번호에 대해 쓰기 명령이 제공되는 경우 핫 데이터 카운트 필드의 모든 값을 리셋하는 것을 특징으로 하는 비휘발성 메모리 저장 장치.
  2. 제1항에 있어서, 상기 제어부는
    상기 호스트 인터페이스를 통해 호스트 장치로부터 제공된 읽기 및 쓰기 명령의 회수를 카운트하고, 카운트된 값이 미리 설정된 기준값 이상인 경우에는 핫 데이터로 판단하고, 상기 상변화 메모리의 여유 공간을 고려하여 상기 핫 데이터가 저장될 위치를 결정하는 핫 데이터 검출 모듈을 포함하는 것을 특징으로 하는 비휘발성 메모리 저장 장치.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 제어부는
    상기 핫 데이터 카운트 필드의 값 중 가장 작은 값에 대응되는 논리 페이지 번호인 최소 핫 데이터 카운트 페이지 번호를 관리하고, 제공된 쓰기 명령이 새로운 핫 데이터이고, 상변화 메모리에 상기 새로운 핫 데이터를 기록할 여유 공간이 없는 경우 상기 새로운 핫 데이터의 핫 데이터 카운트 값이 상기 최소 핫 데이터 카운트 페이지 번호에 대응되는 논리 페이지 번호의 핫 데이터 카운트값 보다 큰 경우에만 상기 새로운 핫 데이터를 최종적으로 핫 데이터로 판별하는 것을 특징으로 하는 비휘발성 메모리 저장 장치.
  6. 제1항에 있어서, 상기 제어부는
    상기 호스트 인터페이스를 통해 제공된 쓰기 또는 읽기 명령어를 해석하여 플래시 메모리의 동작에 상응하도록 변환하고, 호스트 장치의 파일 시스템으로부터 제공되는 논리 페이지 번호를 플래시 메모리의 물리 페이지 번호로 매핑하는 플래시 변환 계층을 포함하는 것을 특징으로 하는 비휘발성 메모리 저장 장치.
  7. 삭제
  8. 논리 페이지 번호 및 데이터를 포함하는 쓰기 명령을 제공받는 단계;
    상기 논리 페이지 번호에 해당하는 핫 데이터 카운트 값을 증가시키는 단계;
    상기 증가된 핫 데이터 카운트 값에 기초하여 상기 데이터가 핫 데이터이고, 새로운 핫 데이터인가를 판단하는 단계;
    상기 데이터가 핫 데이터이고 새로운 핫 데이터인 경우, 상변화 메모리의 여유 공간을 고려하여 상기 상변화 메모리에 여유 공간이 없는 경우,
    상기 데이터의 핫 데이터 카운트 값이 핫 데이터로 판별된 핫 데이터 카운트 값 중 가장 작은 핫 데이터 카운트 값보다 큰가를 판단하는 단계;
    상기 데이터의 핫 데이터 카운트 값이 상기 가장 작은 핫 데이터 카운트 값보다 큰 것으로 판단된 경우, 상기 가장 작은 핫 데이터 카운트 값을 가지는 논리 페이지 번호에 대응되는 데이터를 플래시 메모리에 이동시키는 단계; 및
    상기 데이터를 상기 가장 작은 핫 데이터 카운트 값을 가지는 논리 페이지 번호에 매핑된 상변화 메모리의 물리 페이지 번호에 기록하는 단계를 포함하는 비휘발성 메모리 저장 장치의 성능 향상 방법.
  9. 제8항에 있어서, 상기 증가된 핫 데이터 카운트 값에 기초하여 상기 데이터가 핫 데이터이고, 새로운 핫 데이터인가를 판단하는 단계는,
    상기 증가된 핫 데이터 카운트 값이 미리 설정된 기준값 이상인 경우 핫 데이터로 판단하고, 핫 데이터 카운트 값을 증가함에 따라 상기 데이터가 핫 데이터로 판단된 경우에 새로운 핫 데이터로 판단하는 것을 특징으로 하는 비휘발성 메모리 저장 장치의 성능 향상 방법.
  10. 제8항에 있어서, 상기 비휘발성 메모리 저장 장치의 성능 향상 방법은,
    상기 데이터가 핫 데이터가 아닌 것으로 판단된 경우 플래시 메모리에 상기 데이터를 기록하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 저장 장치의 성능 향상 방법.
  11. 제8항에 있어서, 상기 비휘발성 메모리 저장 장치의 성능 향상 방법은,
    상기 데이터가 핫 데이터이고 새로운 핫 데이터가 아닌 경우,
    매핑 테이블에서 상기 논리 페이지 번호에 매핑된 상변화 메모리의 물리 페이지 번호를 획득하는 단계; 및
    획득한 상기 물리 페이지 번호에 상기 데이터를 덮어쓰는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 저장 장치의 성능 향상 방법.
  12. 제8항에 있어서, 상기 데이터가 핫 데이터이고 새로운 핫 데이터인 경우 상변화 메모리의 여유 공간을 고려하여 상기 상변화 메모리에 상기 데이터를 기록할 여유 공간이 존재하는 경우,
    상기 논리 페이지 번호를 상기 상변화 메모리의 소정 물리 페이지 번호에 매핑하는 단계; 및
    상기 매핑된 소정 물리 페이지 번호에 상기 데이터를 기록하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 저장 장치의 성능 향상 방법.
  13. 삭제
  14. 제8항에 있어서, 상기 비휘발성 메모리 저장 장치의 성능 향상 방법은,
    상기 데이터의 핫 데이터 카운트 값이 핫 데이터로 판별된 핫 데이터 카운트 값 중 가장 작은 핫 데이터 카운트 값 보다 큰 가를 판단하는 단계 이후,
    상기 데이터의 핫 데이터 카운트 값이 상기 가장 작은 핫 데이터 카운트 값 보다 작은 것으로 판단된 경우에는, 상기 데이터를 플래시 메모리에 기록하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리 저장 장치의 성능 향상 방법.

KR1020100029145A 2010-03-31 2010-03-31 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법 KR101146082B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100029145A KR101146082B1 (ko) 2010-03-31 2010-03-31 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100029145A KR101146082B1 (ko) 2010-03-31 2010-03-31 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법

Publications (2)

Publication Number Publication Date
KR20110109418A KR20110109418A (ko) 2011-10-06
KR101146082B1 true KR101146082B1 (ko) 2012-05-15

Family

ID=45390358

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100029145A KR101146082B1 (ko) 2010-03-31 2010-03-31 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법

Country Status (1)

Country Link
KR (1) KR101146082B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942678B2 (en) 2018-08-09 2021-03-09 Samsung Electronics Co., Ltd. Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
US11450394B2 (en) 2019-09-11 2022-09-20 SK Hynix Inc. Controller and operating method thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101375838B1 (ko) * 2012-06-25 2014-03-17 인텔렉추얼디스커버리 주식회사 데이터 저장 시스템 및 데이터 관리 방법
KR101481633B1 (ko) * 2013-07-03 2015-01-15 아주대학교산학협력단 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
KR20160058458A (ko) 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10942678B2 (en) 2018-08-09 2021-03-09 Samsung Electronics Co., Ltd. Method of accessing data in storage device, method of managing data in storage device and storage device performing the same
US11450394B2 (en) 2019-09-11 2022-09-20 SK Hynix Inc. Controller and operating method thereof

Also Published As

Publication number Publication date
KR20110109418A (ko) 2011-10-06

Similar Documents

Publication Publication Date Title
JP6538940B2 (ja) 不揮発性メモリの制御方法
US9952766B2 (en) Memory system, including memory device capable of overwrite operation, and method of operating the memory system
KR101894625B1 (ko) 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집
US9069662B2 (en) Semiconductor device and method of controlling non-volatile memory device
US9355027B2 (en) Zone-based defragmentation methods and user devices using the same
US20160231941A1 (en) Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
KR102373852B1 (ko) 기입 시간들에 기초한 방해 관리
US11204705B2 (en) Retention-aware data tiering algorithm for hybrid storage arrays
US10997080B1 (en) Method and system for address table cache management based on correlation metric of first logical address and second logical address, wherein the correlation metric is incremented and decremented based on receive order of the first logical address and the second logical address
US20130103893A1 (en) System comprising storage device and related methods of operation
KR101979735B1 (ko) 비휘발성 메모리 시스템 및 이와 통신하는 호스트
CN106557428B (zh) 数据存储设备的映射系统选择
KR20200116372A (ko) 저장 장치, 컨트롤러 및 컨트롤러의 동작 방법
KR101146082B1 (ko) 비휘발성 메모리 저장 장치 및 비휘발성 메모리 저장 장치의 성능 향상 방법
KR20210028729A (ko) 논리적 대 물리적 테이블 프래그먼트들
US11537293B2 (en) Wear leveling methods for zoned namespace solid state drive
US20110264848A1 (en) Data recording device
US20230359550A1 (en) File system integration into data mining model
CN111610929A (zh) 数据储存装置以及非挥发式存储器控制方法
KR20160119607A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN110297596B (zh) 具有宽工作温度范围的存储设备
CN111338975A (zh) 面向多流的垃圾回收方法及其存储设备
KR101655508B1 (ko) 메모리 장치 및 그 동작 방법
CN114968833A (zh) 提高企业级固态存储设备顺序写性能的方法与存储设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160328

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee