KR101180288B1 - 하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법 - Google Patents

하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법 Download PDF

Info

Publication number
KR101180288B1
KR101180288B1 KR1020100043729A KR20100043729A KR101180288B1 KR 101180288 B1 KR101180288 B1 KR 101180288B1 KR 1020100043729 A KR1020100043729 A KR 1020100043729A KR 20100043729 A KR20100043729 A KR 20100043729A KR 101180288 B1 KR101180288 B1 KR 101180288B1
Authority
KR
South Korea
Prior art keywords
cache
read
ssd
memory
volatile memory
Prior art date
Application number
KR1020100043729A
Other languages
English (en)
Other versions
KR20110124395A (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 KR1020100043729A priority Critical patent/KR101180288B1/ko
Publication of KR20110124395A publication Critical patent/KR20110124395A/ko
Application granted granted Critical
Publication of KR101180288B1 publication Critical patent/KR101180288B1/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/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
    • 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/061Improving I/O performance
    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 하이브리드 메모리와 SSD로 구성 된 시스템에서의 읽기 캐시 및 쓰기 캐시의 관리 방법에 관한 것으로서, 특히 휘발성 메모리, 비휘발성 메모리 및 SSD의 특성을 활용하여 시스템 성능의 향상을 위해서 읽기 캐시와 쓰기 캐시를 동시에 효율적으로 관리 해주는 방법에 관한 것이다.
본 발명의 실시예에 따른 메모리 시스템은, 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리; 및 하이브리드 메모리와 버스를 통하여 연결된 SSD 를 포함하고, SSD 가 저장장치로써 동작하며, 하이브리드 메모리는 SSD 의 캐쉬로써 동작한다.

Description

하이브리드 메모리와 SSD 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법 {METHOD FOR MANAGING THE READ AND WRITE CACHE IN THE SYSTEM COMPRISING HYBRID MEMORY AND SSD}
본 발명은 하이브리드 메모리와 SSD로 구성 된 시스템에서의 읽기 캐시 및 쓰기 캐시의 관리 방법에 관한 것으로서, 특히 휘발성 메모리, 비휘발성 메모리 및 SSD의 특성을 활용하여 시스템 성능의 향상을 위해서 읽기 캐시와 쓰기 캐시를 동시에 효율적으로 관리 해주는 방법에 관한 것이다.
현재 컴퓨터 시스템의 읽기 캐시 및 쓰기 캐시는 휘발성 메모리로 구성이 되어 자주 쓰이고 자주 읽히는 데이터를 디스크가 아닌 캐시에서 읽고 쓸 수 있도록 함으로써 디스크로의 읽기 및 쓰기 횟수를 줄여 읽기 및 쓰기 성능을 높이는데 사용이 되고 있다. 이는 휘발성 메모리의 읽기 및 쓰기 성능이 디스크에 비해 좋다는 장점을 활용한 것이다. 하지만 휘발성 메모리는 집적도가 낮기 때문에 용량 대비 가격이 높다는 단점이 있어 휘발성 메모리만을 사용하여 캐시를 구성하면 사용할 수 있는 휘발성 메모리의 크기가 제한이 되기 때문에 휘발성 메모리에 저장될 수 있는 데이터의 양이 한정이 되어 디스크로의 읽기 및 쓰기 횟수가 증가하게 된다.
상기 문제의 해결을 위하여 종래 특허 US5343437, US6263398 등은 휘발성 메모리를 1차적인 메모리로 사용하고, 비휘발성 메모리를 2차적인 메인 메모리로 사용하는 이종 메모리를 이용한 이단계 메인메모리 구조를 제안하였다. 비휘발성 메모리는 휘발성 메모리에 비해 쓰기 성능이 떨어지고 쓰기 횟수에 제한을 가진다는 단점은 가지고 있으나 읽기 성능은 휘발성 메모리와 비슷하고, 집적도가 높아 휘발성 메모리보다 같은 가격 대비 용량이 크다는 장점을 가지고 있다. 따라서 휘발성 메모리와 비휘발성 메모리로 구성된 메인 메모리 구조에서는 휘발성 메모리로만 구성된 메인 메모리 구조보다 더 큰 용량을 가질 수 있기 때문에 이로 인해 많은 데이터를 캐시 시킬 수 있기 때문에 디스크로의 쓰기 및 읽기 횟수를 줄일 수 있다는 장점이 있다.
따라서, 본 발명에서 이루고자 하는 기술적 과제는 하이브리드 메모리와 SSD로 구성된 시스템에서 읽기 캐시 및 쓰기 캐시를 관리하는 방법에 관한 것으로써, 메인 메모리를 휘발성 메모리만이 아닌 비휘발성 메모리와의 하이브리드 구조를 통해 용량을 증가시켰고 이 구조에서의 읽기 캐시 및 쓰기 캐시 관리 방법과 저장 장치를 기존의 하드디스크가 아닌 차세대 저장 장치인 SSD를 사용하여 SSD의 특성을 활용한 읽기 캐시 및 쓰기 캐시 관리 방법을 통해 전체적인 시스템의 성능을 향상시키는데 있다.
읽기 캐시 관리 방법에서는 휘발성 메모리에서 비휘발성 메모리로의 데이터 이동 시 불필요한 데이터를 선택적 제거시킴으로써 읽기 캐시의 성능을 높이고, 이로 인해 비휘발성 메모리로의 불필요한 데이터 쓰기 횟수를 줄임으로써 비휘발성 메모리의 공간을 효율적으로 사용할 수 있고 수명 역시 늘릴 수 있게 된다.
쓰기 캐시 관리 방법에서는 SSD의 멀티 채널 구조를 고려하여 쓰기 캐시 내에서 슈퍼페이지(페이지*채널수)로 관리를 해줌으로써, SSD로의 쓰기 연산에 있어서 병렬처리(Parallelis) 를 높여 성능을 향상시키는 효과를 얻게 되고, 비휘발성 메모리에서 휘발성 메모리로의 슈퍼페이지 이동 시 전체를 이동하는 것이 아닌 자주 쓰이는 페이지만을 복사함으로써 불필요한 페이지 이동 시간을 줄여 쓰기 캐시의 성능을 향상시키는 효과를 얻게 되고, 비휘발성 메모리로의 추가 쓰기 횟수를 줄여 수명을 늘리는 효과를 가져오게 된다.
또한, 읽기 캐시와 쓰기 캐시의 워크로드 특성에 따른 크기 변화를 통해 캐시를 최대한으로 활용할 수 있게 된다.
본 발명의 실시예에 따른 메모리 시스템은, 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리; 및 하이브리드 메모리와 버스를 통하여 연결된 SSD 를 포함하고, SSD 가 저장장치로써 동작하며, 하이브리드 메모리는 SSD 의 캐쉬로써 동작하며, 상기 휘발성 메모리는 제 1 읽기 캐시, 및 제 1쓰기 캐시를 포함하고, 상기 비휘발성 메모리는 제 2 읽기 캐시, 및 제 2쓰기 캐시를 포함하고, 워크로드에 기초하여 읽기 연산이 많을 경우 제 1 읽기 캐시 및 제 2 읽기 캐시의 크기를 늘리고, 쓰기 연산이 많을 경우 제 1 쓰기 캐시 및 제 2 쓰기 캐시의 크기를 늘린다.
바람직하게는, 메모리 시스템에서, 휘발성 메모리의 제 1 읽기 캐시의 데이터는 선택적 제거에 의하여 비휘발성 메모리의 제 2 읽기 캐시로 이동된다.
바람직하게는, 메모리 시스템에서, 선택적 제거에 의하여 이동되는 데이터는 SSD 로부터 제 1 읽기 캐시로 프리 패치 (pre-fetch) 된 데이터이다.
바람직하게는, 메모리 시스템에서, 자주 쓰이는 데이터는 선택적 제거에 의하여 상기 제 1 읽기 캐시 또는 상기 제 2 읽기 캐시로부터 상기 제 1 쓰기 캐시 및 상기 제 2 쓰기 캐시 중 하나로 이동된다.
바람직하게는, 메모리 시스템에서, 선택적 제거에 의하여 이동되는 데이터는 순차적 데이터이다.
바람직하게는, 메모리 시스템에서, 비휘발성 메모리의 제 2 쓰기 캐시로부터 SSD 로의 쓰기 성능을 높이기 위하여, 제 2 쓰기 캐리에서의 데이터는 SSD 의 내부 구조를 고려하여 슈퍼페이지 단위로 관리된다.
바람직하게는, 메모리 시스템에서, 제 2 쓰기 캐시의 슈퍼 페이지 중에서 사용 빈도가 높은 페이지만을 휘발성 메모리로 복사시킨다.
바람직하게는, 메모리 시스템에서, 슈퍼 페이지의 크기는 SSD 의 읽기 및 쓰기의 기본 연산 단위인 페이지 및 SSD 내부의 채널수의 곱으로 정의된다.
본 발명의 실시예에 따른, 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법은, 외부로부터 디스크 읽기 명령을 수신하는 단계; 디스크 읽기 명령에 응답하여 SSD 에 저장된 데이터를 휘발성 메모리의 읽기 캐시에 쓰는 단계; 휘발성 메모리의 읽기 캐시에 여유 공간이 있는지 여부를 확인하는 단계; 및 읽기 캐시에 여유 공간이 없을 경우, 프리패칭된 데이터를 비휘발성 메모리의 읽기 캐시로 이동시키는 단계를 포함한다.
본 발명의 실시예에 따른, 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법은, 외부로부터 디스크 읽기 명령을 수신하는 단계; 디스크 읽기 명령에 응답하여 SSD 에 저장된 데이터를 휘발성 메모리의 읽기 캐시에 쓰는 단계; 휘발성 메모리의 읽기 캐시에 여유 공간이 있는지 여부를 확인하는 단계; 및 읽기 캐시에 여유 공간이 없을 경우, 사용 빈도가 높은 데이터를 비휘발성 메모리의 읽기 캐시로 이동시키는 단계를 포함한다.
본 발명의 실시예에 따른, 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법은, 외부로부터 디스크 읽기 명령을 수신하는 단계; 디스크 읽기 명령에 응답하여 SSD 에 저장된 데이터를 휘발성 메모리의 읽기 캐시에 쓰는 단계; 휘발성 메모리의 읽기 캐시에 여유 공간이 있는지 여부를 확인하는 단계; 및 읽기 캐시에 여유 공간이 없을 경우, 사용 빈도가 높은 데이터를 비휘발성 메모리의 읽기 캐시로 이동시키는 단계를 포함한다.
본 발명의 실시예에 따른, 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법은, 외부로부터 디스크 읽기 명령을 수신하는 단계; 디스크 읽기 명령에 응답하여 SSD 에 저장된 데이터를 휘발성 메모리의 읽기 캐시에 쓰는 단계; 휘발성 메모리의 읽기 캐시에 여유 공간이 있는지 여부를 확인하는 단계; 및 읽기 캐시에 여유 공간이 없을 경우, 순차적 데이터를 비휘발성 메모리의 읽기 캐시로 이동시키는 단계를 포함한다.
본 발명의 실시예에 따른, 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법은, 외부로부터 디스크 쓰기 명령을 수신하는 단계; 비휘발성 메모리의 쓰기 캐시에 포함된 페이지들의 사용 빈도를 검출하는 단계; 및 사용 빈도에 기초하여 사용 빈도가 높은 페이지를 비휘발성 메모리의 쓰기 캐시로부터 휘발성 메모리의 쓰기 캐시로 복사하는 단계를 포함한다.
이상에서 살펴본 바와 같이, 본 발명은 하이브리드 메모리와 SSD로 이루어진 시스템에서 각 메모리 및 SSD의 특성을 고려한 읽기 캐시와 쓰기 캐시의 효율적인 관리를 제안함으로써 결과적으로 시스템의 읽기 및 쓰기 성능 향상에 있어서 기여를 하였다.
휘발성 메모리의 특성인 빠른 읽기 및 쓰기 능력을 활용하기 위해 읽기 캐시에서는 캐시 데이터 및 프리페치 데이터의 저장에 사용을 하고, 쓰기 캐시에서는 자주 쓰이는 데이터만을 저장함으로써 캐시의 성능을 최적화 시킨다.
비휘발성 메모리는 휘발성 메모리에 비해 같은 가격에 더 큰 용량을 가진다는 특성이 있고 읽기 성능이 휘발성 메모리와 비슷하다는 특성이 있으나, 쓰기 성능이 떨어지고 쓰기 횟수 제한이 있다는 단점이 있다는 것을 극복하기 위해, 읽기 캐시에서는 선택적 제거 기법, 쓰기 캐시에서는 슈퍼 페이지 관리 및 자주 쓰이는 데이터 이동을 통해 이러한 단점들에 대해서 해결이 가능하게 된다.
SSD의 읽기 및 쓰기 단위는 페이지(2KB)이고, 내부적으로 병렬성 증가를 위해 여러 채널로 구성이 되어 있어서 쓰기 캐시에서 슈퍼 페이지로 관리를 해줌으로써 하이브리드 메모리에서 디스크로의 쓰기 연산 시 이 특성을 활용하여 성능을 높일 수 있다.
또한 읽기 캐시 및 쓰기 캐시가 한 메모리에서 관리된다는 특성을 활용하여 워크로드 특성에 따른 크기 변환을 사용함으로써 메모리에서의 캐시가 보다 효율적으로 관리될 수 있도록 만든다.
도 1은 본 발명에 따른 하이브리드 메모리와 SSD를 포함한 전체 시스템 구조의 예를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 하이브리드 메모리에서 읽기 캐시의 관리 방법에 관한 예를 도시한 도이다.
도 3 은 본 발명에 따른 하이브리드 메모리에서 쓰기 캐시의 관리 방법에 관한 예를 도시한 도이다.
도 4는 본 발명에 따른 휘발성 메모리 (120) 와 비휘발성 메모리 (130) 에서의 읽기 캐시와 쓰기 캐시의 적응적 크기 변환에 관한 예를 도시한 도면이다.
이하, 본 발명의 바람직한 실시 예를 도면을 참조하여 설명한다. 단, 하기 실시 예는 본 발명을 예시하는 것을 뿐 본 발명의 내용이 하기 실시 예에 한정되는 것은 아니다.
도 1은 본 발명에 따른 하이브리드 메모리와 SSD를 포함한 전체 시스템 구조의 예를 도시한 것으로 중앙처리장치 (100), 하이브리드 메모리, Solid State Disk (SSD ; 110) 으로 구성되며, 하이브리드 메모리는 휘발성 메모리 (120) 와 비휘발성 메모리 (130) 로 이루어지게 된다. 휘발성 메모리 (120) 및 비휘발성 메모리 (130) 은 호스트 버스 (Host Bus) 를 통하여 연결될 수도 있으며, 호스트 버스 (Host Bus) 는 브리지 (140) 을 통하여 SSD (110) 에 연결될 수 있다.
휘발성 메모리 (120) 는 쓰기 및 읽기 속도가 빠르다는 장점이 있으나 용량 대비 가격이 비싸다는 단점을 가지고 있으며, 비휘발성 메모리 (130) 는 휘발성 메모리 (120) 에 비해 쓰기 속도가 느리고 쓰기 횟수에 제한이 있다는 단점이 있으나 집적도가 높아 용량 대비 가격이 싸고 읽기 속도가 휘발성 메모리와 비슷하다는 장점을 가지고 있다.
SSD (110) 는 하드디스크를 대체할 낸드 플래시 메모리 기반의 저장 장치로써 임의 요청에 대해 하드디스크보다 성능이 좋다는 장점이 있고, 내부 구조가 공개 되어 있어서 읽기 및 쓰기 연산에 대해 성능 예측이 가능하다는 장점을 가진다.
SSD (110) 내부는 여러 채널로 구성이 되어 있어 각 채널이 독립적으로 읽기 및 쓰기 연산이 가능하기 때문에 이 채널을 동시에 사용하게 되면 SSD의 성능을 높일 수 있게 된다. 이렇게 하이브리드 메모리와 SSD로 이루어진 구조에서 각 특성을 활용하여 읽기 캐시 및 쓰기 캐시를 관리를 한다면 전체 시스템의 성능을 높일 수 있다.
도 2는 본 발명의 일 실시예에 따른 하이브리드 메모리에서 읽기 캐시의 관리 방법에 관한 예를 도시한 도이다.
읽기 캐시를 사용하는 목적은 메모리보다 디스크에서 데이터를 읽어오는 것이 느리기 때문에 메모리에 자주 읽히는 데이터를 저장함으로써 읽기 성능을 높이기 위함이다. 본 발명에서는 디스크 대신에 SSD 가 사용되었으므로, 읽기 캐시는 중앙 처리 장치에서 SSD 에 접근할 때 임시적으로 데이터를 저장하는 저장공간의 역할을 한다. 읽기 캐시는 하이브리드 메모리의 휘발성 메모리 (120) 및/또는 비휘발성 메모리 (130) 에 존재할 수 있다.
하이브리드 메모리에서의 읽기 캐시 관리는 휘발성 메모리 (120) 와 비휘발성 메모리 (130) 으로 나뉘어서 관리된다. 우선 읽기 캐시의 관리 방법에 따라 자주 읽히는 데이터는 우선적으로 휘발성 메모리 (120) 에 저장이 된다. 또한, 읽기 캐시에서는 읽힐 데이터를 예측해서 디스크로부터 데이터를 읽어오는 프리페치 데이터가 존재를 하게 된다. 이렇게 휘발성 메모리 (120) 에 저장이 되다가 휘발성 메모리 (120) 가 다 차게 되면 비휘발성 메모리 (130) 으로 데이터가 이동을 하게 되는데, 이 때 휘발성 메모리 (120) 에서 비휘발성 메모리 (130) 로 모든 데이터가 이동을 하는 것이 아니라 선택적 제거라는 방법을 통해 휘발성 메모리 (120) 에 저장할 필요가 없는 데이터를 제거하고 비휘발성 메모리 (130) 로 이동시킨다.
이렇게 선택적 제거를 하는 이유는 비휘발성 메모리 (130) 가 상대적으로 휘발성 메모리 (120) 에 비해 쓰기 속도가 느리고 또한 쓰기 횟수에 제한이 있기 때문에 불필요한 데이터를 비휘발성 메모리 (130) 에 저장하는 것이 성능에 영향을 미치기 때문이다.
선택적 제거 방법은 세 가지의 실시 형태를 가질 수 있다.
우선 첫 번째로는 프리페치된 데이터를 선택적 제거 시키는 방법이다. 프리페치란 하이브리드 메모리 컨트럴러 (미도시) 가 중앙처리장치로부터 데이터 읽기 명령을 받을 경우, 추후에 읽어들일 것이라 예상되는 데이터를 미리 SSD (110) 로부터 휘발성 메모리 (120) 로 읽어들이는 것을 의미한다.
휘발성 메모리 (120) 에서 프리페치 된 데이터가 자주 읽히지 않았기 때문에 비휘발성 메모리 (130) 로 밀려난 것이므로 이를 비휘발성 메모리 (130) 에 저장한다고 할지라도 읽힐 확률이 낮다. 따라서 이는 불필요한 쓰기 연산을 발생시키기 때문에 이 프리페치 된 데이터를 선택적 제거시키는 것이 비휘발성 메모리 (130) 의 안정성에 있어서도 더 좋게 된다.
두 번째로는, 많이 쓰이는 데이터 (Write-intensive Data) 를 선택적 제거시키는 방법이다. 즉, 접근 빈도가 높은 데이터를 선택적 제거시키는 방법이다. 휘발성 메모리 (120) 에서는 쓰기 횟수에 제한이 없기 때문에 자주 쓰이는 데이터가 문제가 되지 않았지만 비휘발성 메모리 (130) 는 쓰기 횟수에 제한을 가지고 있기 때문에 자주 쓰이는 데이터를 선택적 제거 시키는 방법이 읽기 캐시의 성능 향상을 위해 더욱 좋을 것이다.
다만, 프리페치 데이터의 경우 비휘발성 메모리로 이동시키나 이와 는 다르게, 많이 사용되는 데이터는 휘발성 메모리의 쓰기 캐시로 옮김으로써 쓰기 연산이 왔을 때, 디스크에 쓰는 것이 아닌 쓰기 캐시에 쓰도록 해주게 된다.
마지막으로는 순차적 데이터를 선택적 제거 시키는 방법이다.
순차적 데이터는 임의 데이터에 비해 읽힐 확률이 낮기 때문에 이를 캐시시키는 것은 불필요하게 읽기 캐시의 저장 공간만을 차지하게 된다. 따라서, 휘발성 메모리 (120) 에서 비휘발성 메모리 (130) 로의 데이터 이동 시, 순차적 데이터를 선택적 제거함으로써 상대적으로 비휘발성 메모리 (130) 의 저장 공간을 늘리고 불필요한 쓰기 연산을 방지할 수 있을 것이다.
도 3 은 본 발명에 따른 하이브리드 메모리에서 쓰기 캐시의 관리 방법에 관한 예를 도시한 도이다.
쓰기 캐시 역시 읽기 캐시와 마찬가지로 자주 쓰이는 데이터를 메모리에 저장을 함으로써 디스크로의 쓰기 횟수를 줄여 성능을 높이는 역할을 하게 된다.
쓰기 캐시 역시 휘발성 메모리 (와 비휘발성 메모리으로 나누어서 관리를 하게 된다. 우선, 비휘발성 메모리에서는 슈퍼페이지(페이지*채널수)로 관리가 되어진다. 슈퍼페이지로 관리가 되는 이유는 데이터가 SSD (110) 에 쓰일 때 성능을 높이기 위함이다.
SSD (110) 는 내부가 여러 채널로 구성되어 있어서 병렬 연산이 가능한데 슈퍼페이지로 데이터를 관리함으로써 이 병렬성을 극대화 시킬 수 있게 된다. 따라서, SSD (110) 의 채널 수에 따라서 슈퍼페이지의 크기가 달라질 수 있게 된다.
비휘발성 메모리 (130) 에서 슈퍼페이지로 관리를 하다가 자주 쓰이는 페이지가 있게 되면 이를 휘발성 메모리 (120) 로 복사를 하게 된다.
이는 자주 쓰이는 페이지가 비휘발성 메모리 (130) 에 있게 되면 쓰기 연산 횟수가 늘어나기 때문에 이를 줄이기 위함이다. 또한, 슈퍼페이지가 아닌 페이지를 복사함으로써 이동 오버헤드도 줄이고 휘발성 메모리 (120) 에서의 쓰기 캐시 관리도 보다 효율적으로 할 수 있게 된다.
위와 같이 복사의 과정을 거치게 될 경우, 그 복사된 페이지는 휘발성 메모리 (120) 및 비휘발성 메모리 (130) 양 측에 동시에 존재하게 된다.
휘발성 메모리 (120) 의 쓰기 캐시의 내용이 업데이트가 되게 되면, 나중에 휘발성 메모리 (120) 의 쓰기 캐시 공간이 부족해 비휘발성 메모리 (130) 나 디스크로 이동을 해야 될 때, 만약 비휘발성 메모리 (130) 에 이 페이지를 가지는 슈퍼페이지가 존재하게 되면 비휘발성 메모리 (130) 에서 업데이트를 시키게 되고, 만약 비휘발성 메모리 (130) 에 존재하지 않으면, 디스크에서 슈퍼페이지를 읽어와 비휘발성 메모리 (130) 에서 그 페이지만을 업데이트 시키게 된다.
비휘발성 메모리 (130) 에서 휘발성 메모리 (120) 로 페이지를 이동하는 것이 아닌 복사를 하는 이유는 나중에 휘발성 메모리 (120) 에 저장 공간이 없을 때 다시 비휘발성 메모리 (130) 로 쓰기가 되어야 하는데 이에 대한 추가 쓰기 연산을 줄이기 위해서이다.
이렇게, 중복된 데이터가 휘발성 메모리 (120) 와 비휘발성 메모리 (130) 에 존재를 하게 되면 쓰기 캐시 저장 공간의 활용에 있어서 불이익이 있지만 비휘발성 메모리 (130) 의 용량이 크기 때문에 이 오버헤드 보다는 추가 쓰기 연산 오버헤드가 더 크다고 생각이 된다.
따라서 이렇게 쓰기 캐시 관리를 해줌으로써 SSD (110) 로의 쓰기 성능도 증가시키게 되고, 비휘발성 메모리 (130) 로의 불필요한 쓰기 연산을 줄일 수 있게 되고, 휘발성 메모리 (120) 를 자주 쓰이는 페이지의 쓰기 캐시로써 활용하여 성능을 높일 수 있다는 장점이 있다.
도 4는 본 발명에 따른 휘발성 메모리 (120) 와 비휘발성 메모리 (130) 에서의 읽기 캐시와 쓰기 캐시의 적응적 크기 변환에 관한 예를 도시한 도면이다.
휘발성 메모리 (120) 와 비휘발성 메모리 (130) 에 읽기 캐시와 쓰기 캐시가 공존하게 되기 때문에 이에 대한 크기 변환이 성능에 있어서 크게 영향을 미치게 될 것이다. 따라서, 우선은 워크로드 특성에 따른 크기 변화를 생각해 볼 수 있는데, 쓰기 연산이 많은 워크로드의 경우 쓰기 캐시를 크게 할당을 하고 읽기 캐시를 작게 할당을 할 수 있게 된다.
반대로 읽기 연산이 많은 워크로드의 경우는 반대로 캐시 크기 할당을 해주면 된다. 또한, 휘발성 메모리 (120) 에서의 캐시 크기와 비휘발성 메모리 (130) 에서의 캐시 크기를 바꿔 줌으로써 성능 변화를 보일 수도 있을 것이다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시 될 수 있다는 것을 이해할 수 있을 것이다.
그러므로 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 중앙 처리 장치
120 : 휘발성 메모리
130 : 비휘발성 메모리
140 : 브리지
110 : SSD (Solid State Disk)

Claims (15)

  1. 휘발성 메모리 및 비휘발성 메모리를 포함하는 하이브리드 메모리; 및
    상기 하이브리드 메모리와 버스를 통하여 연결된 SSD 를 포함하고,
    상기 SSD 가 저장장치로써 동작하며, 상기 하이브리드 메모리는 상기 SSD 의 캐쉬로써 동작하며,
    상기 휘발성 메모리는 제 1 읽기 캐시, 및 제 1쓰기 캐시를 포함하고,
    상기 비휘발성 메모리는 제 2 읽기 캐시, 및 제 2쓰기 캐시를 포함하고,
    워크로드에 기초하여 읽기 연산이 많을 경우 제 1 읽기 캐시 및 제 2 읽기 캐시의 크기를 늘리고, 쓰기 연산이 많을 경우 제 1 쓰기 캐시 및 제 2 쓰기 캐시의 크기를 늘리는, 메모리 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 휘발성 메모리의 제 1 읽기 캐시의 데이터는 선택적 제거에 의하여 상기 비휘발성 메모리의 제 2 읽기 캐시로 이동되는, 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 선택적 제거에 의하여 이동되는 데이터는 상기 SSD 로부터 상기 제 1 읽기 캐시로 프리 패치 (pre-fetch) 된 데이터인, 메모리 시스템.
  5. 제 1 항에 있어서,
    자주 쓰이는 데이터는 선택적 제거에 의하여 상기 제 1 읽기 캐시 또는 상기 제 2 읽기 캐시로부터 상기 제 1 쓰기 캐시 및 상기 제 2 쓰기 캐시 중 하나로 이동되는, 메모리 시스템.
  6. 제 3 항에 있어서,
    상기 선택적 제거에 의하여 이동되는 데이터는 순차적 데이터인, 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 비휘발성 메모리의 제 2 쓰기 캐시로부터 상기 SSD 로의 쓰기 성능을 높이기 위하여, 상기 제 2 쓰기 캐시에서의 데이터는 SSD 의 내부 구조를 고려하여 슈퍼페이지 단위로 관리되는, 메모리 시스템.
  8. 삭제
  9. 제 7 항에 있어서,
    슈퍼 페이지의 크기는 SSD 의 읽기 및 쓰기의 기본 연산 단위인 페이지 및 SSD 내부의 채널수의 곱으로 정의되는, 메모리 시스템.
  10. 삭제
  11. 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법으로서,
    외부로부터 디스크 읽기 명령을 수신하는 단계;
    상기 디스크 읽기 명령에 응답하여 상기 SSD 에 저장된 데이터를 상기 휘발성 메모리의 읽기 캐시에 쓰는 단계;
    상기 휘발성 메모리의 읽기 캐시에 여유 공간이 있는지 여부를 확인하는 단계;
    상기 읽기 캐시에 여유 공간이 없을 경우, 프리패칭된 데이터를 상기 비휘발성 메모리의 읽기 캐시로 이동시키는 단계를 포함하는, 메모리 관리 방법.
  12. 삭제
  13. 삭제
  14. 휘발성 메모리, 비휘발성 메모리 및 SSD를 포함하는 메모리 시스템을 관리하는 방법으로서,
    외부로부터 디스크 읽기 명령을 수신하는 단계;
    상기 디스크 읽기 명령에 응답하여 상기 SSD 에 저장된 데이터를 상기 휘발성 메모리의 읽기 캐시에 쓰는 단계;
    상기 휘발성 메모리의 읽기 캐시에 여유 공간이 있는지 여부를 확인하는 단계; 및
    상기 읽기 캐시에 여유 공간이 없을 경우, 순차적 데이터를 상기 비휘발성 메모리의 읽기 캐시로 이동시키는 단계를 포함하는, 메모리 관리 방법.
  15. 삭제
KR1020100043729A 2010-05-11 2010-05-11 하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법 KR101180288B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100043729A KR101180288B1 (ko) 2010-05-11 2010-05-11 하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100043729A KR101180288B1 (ko) 2010-05-11 2010-05-11 하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법

Publications (2)

Publication Number Publication Date
KR20110124395A KR20110124395A (ko) 2011-11-17
KR101180288B1 true KR101180288B1 (ko) 2012-09-07

Family

ID=45394144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100043729A KR101180288B1 (ko) 2010-05-11 2010-05-11 하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법

Country Status (1)

Country Link
KR (1) KR101180288B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101836597B1 (ko) * 2016-02-02 2018-03-08 전북대학교산학협력단 고속메모리를 이용한 캐시관리모듈 및 이를 이용한 관리방법
KR101847861B1 (ko) 2016-12-21 2018-04-11 성균관대학교산학협력단 컴퓨팅 장치, 스토리지 장치 및 데이터 관리 방법
US10782880B2 (en) 2017-08-30 2020-09-22 Electronics And Telecommunications Research Institute Apparatus and method for providing storage for providing cloud services

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102094163B1 (ko) * 2013-08-28 2020-03-27 삼성전자 주식회사 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템
KR102289919B1 (ko) 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
CN107506314B (zh) * 2016-06-14 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储***的方法和装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101836597B1 (ko) * 2016-02-02 2018-03-08 전북대학교산학협력단 고속메모리를 이용한 캐시관리모듈 및 이를 이용한 관리방법
KR101847861B1 (ko) 2016-12-21 2018-04-11 성균관대학교산학협력단 컴퓨팅 장치, 스토리지 장치 및 데이터 관리 방법
US10782880B2 (en) 2017-08-30 2020-09-22 Electronics And Telecommunications Research Institute Apparatus and method for providing storage for providing cloud services

Also Published As

Publication number Publication date
KR20110124395A (ko) 2011-11-17

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
US10860477B2 (en) Apparatus and method for low power low latency high capacity storage class memory
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US9256527B2 (en) Logical to physical address mapping in storage systems comprising solid state memory devices
US8935484B2 (en) Write-absorbing buffer for non-volatile memory
US8954656B2 (en) Method and system for reducing mapping table size in a storage device
US9513815B2 (en) Memory management based on usage specifications
KR101180288B1 (ko) 하이브리드 메모리와 ssd 로 구성된 시스템에서의 읽기 캐시 및 쓰기 캐시 관리 방법
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
US20090094391A1 (en) Storage device including write buffer and method for controlling the same
US10754785B2 (en) Checkpointing for DRAM-less SSD
CN108845957B (zh) 一种置换和回写自适应的缓冲区管理方法
WO2019047612A1 (zh) 基于闪存的存储路径优化的键值存储管理方法
KR101155542B1 (ko) Ssd 장치의 매핑 테이블 관리 방법
CN115203079A (zh) 一种将数据写入固态硬盘的方法
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
Du et al. SSW: A strictly sequential writing method for open-channel SSD
KR101480420B1 (ko) 메모리-디스크 통합 시스템
KR101353967B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법
Kim et al. Advil: A pain reliever for the storage performance of mobile devices
KR102014723B1 (ko) 하이브리드 메모리 시스템의 버퍼 효율성을 위한 페이지 병합 방법
KR101443678B1 (ko) 하이브리드 메인 메모리와 플래시 메모리 저장 장치의 버퍼 캐시 방법
KR101381597B1 (ko) 다중채널 ssd의 패턴기반 관리 시스템 및 그 방법
KR101373613B1 (ko) 환형 구조의 비휘발성 메모리 캐쉬를 포함하는 하이브리드 스토리지 장치
CN110471628B (zh) 一种可减少数据页分散的数据存储方法

Legal Events

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

Payment date: 20150729

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee