KR20090024971A - 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치 - Google Patents

섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치 Download PDF

Info

Publication number
KR20090024971A
KR20090024971A KR1020070089972A KR20070089972A KR20090024971A KR 20090024971 A KR20090024971 A KR 20090024971A KR 1020070089972 A KR1020070089972 A KR 1020070089972A KR 20070089972 A KR20070089972 A KR 20070089972A KR 20090024971 A KR20090024971 A KR 20090024971A
Authority
KR
South Korea
Prior art keywords
sectors
cache
cache memory
flash memory
data
Prior art date
Application number
KR1020070089972A
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 KR1020070089972A priority Critical patent/KR20090024971A/ko
Priority to EP07833916A priority patent/EP2186008A4/en
Priority to PCT/KR2007/005608 priority patent/WO2009031727A1/en
Priority to JP2010523923A priority patent/JP2010538385A/ja
Publication of KR20090024971A publication Critical patent/KR20090024971A/ko
Priority to US12/717,177 priority patent/US20100161890A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/462Track or segment
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Abstract

본 발명은 섹터의 집합(sector set)을 이용한 캐시 운용 방법 및 캐시 장치에 관한 것으로, 본 발명에 따른 캐시 운용 방법은 호스트로부터 소정의 데이터를 저장 장치에 소정의 섹터에 쓰기를 요청받고, 쓰기가 요청된 소정의 섹터를 포함하는 소정의 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하여 섹터의 집합을 위해 캐시 메모리를 할당하고, 할당된 캐시 메모리에 쓰기가 요청된 데이터를 저장하였다가 섹터의 집합 단위로 한꺼번에 쓰기를 수행함으로써 저장 장치의 액세스 속도가 빨라진다.
Figure P1020070089972
플래시 메모리, 캐시, 쓰기, 읽기

Description

섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치{Method and apparatus for cache using sector set}
본 발명은 캐시 운용 방법 및 그 방법에 따른 캐시 장치에 관한 것으로 보다 상세히는 저장 장치, 특히 저장 장치의 쓰기 및 소거 횟수를 최소화할 수 있도록 데이터를 캐싱하는 방법 및 장치에 관한 것이다.
플래시 메모리는 전기적으로 데이터를 지우거나 쓸 수 있는 비휘발성 기억 소자이다. 마그네틱 디스크를 기반으로 한 저장 장치에 비해 플래시 메모리는 전력 소모가 적으며 크기가 작아서 마그네틱 디스크 메모리의 대안으로서 연구 및 개발이 활발하게 진행되고 있다. 특히, 디지털 카메라, 모바일 폰, PDA와 같은 모바일 기기의 메모리뿐만 아니라, 대용량 하드 디스크를 대체할 SSD(Solid State Disk)로서 각광받을 것이 예상된다.
플래시 메모리는 데이터의 덮어쓰기가 자유로운 하드 디스크와 달리 데이터의 덮어쓰기가 불가능하다. 따라서, 이미 사용 중인 영역에 데이터를 덮어쓰기 위해서는 덮어쓰기 이전에 데이터를 소거(erase)해야 한다. 즉, 메모리 블록들을 쓰기 가능한 초기 상태로 되돌려 놓아야 한다. 플래시 메모리를 동작시킴에 있어 소 거는 쓰기에 비해 매우 긴 시간이 소요된다. 또한, 쓰기가 페이지(page) 단위로 수행됨에 비하여 소거는 페이지의 집합인 블록 단위로 수행되기 때문에 쓰기가 요청되지 않은 페이지까지 함께 소거해야하는 비효율이 있다.
이와 같은 소거 및 쓰기의 수행 단위의 불일치로 인해 쓰기의 수행 성능은 읽기에 비해 현저히 떨어진다. 따라서, 플래시 메모리를 기반으로 한 저장장치의 설계에 있어서 쓰기 및 소거의 성능 개선은 핵심 기술에 해당한다. 종래 기술에 따른 캐시 운용 방법 및 캐시 장치는 이러한 플래시 메모리 고유의 특성을 고려하지 않기 때문에 전술한 쓰기 및 소거의 성능 개선에 도움이 되지 못하는 단점이 있다.
도 1은 종래 기술에 따른 캐시 운용 방법을 설명하기 위한 도면이다.
호스트 장치(110)가 섹터 단위로 데이터의 쓰기(write) 또는 읽기(read)를 요청하면, 캐시 장치(120)는 쓰기 또는 읽기가 요청된 섹터들을 임시(temporally)로 저장한다. 쓰기가 요청된 섹터를 저장 장치(130)에 바로 쓰지하지 아니하고, 캐시 메모리에 임시로 저장한다. 읽기가 요청된 섹터는 저장 장치(130)로부터 읽어와 캐시 메모리에 임시로 저장하여, 호스트 장치(110)가 직접 저장 장치(130)로부터 읽어오지 않고, 캐시 장치(120)로부터 읽어올 수 있도록 한다.
캐시 운용 방법으로 LRU(last recently used) 알고리즘을 사용하는 경우, 캐시 메모리에 임시로 저장되어 있는 섹터들 중 가장 오래전에 참조된 섹터를 차례대로 저장 장치(130)에 플러시(flush)하고 최근에 참조된 섹터들만 저장함으로써 호스트 장치(110)의 액세스가 캐시 장치(120)에서 히트(hit)될 확률을 높인다.
플래시 메모리는 전술한 바와 같이 소거는 메모리 블록 단위로 수행되고, 하나의 플래시 메모리 블록에는 복수개의 섹터들이 저장된다. 따라서, 종래 기술에 따른 캐시 장치(120)를 플래시 메모리에 적용하면 섹터를 플러시할 때마다 섹터가 저장되는 블록을 모두 소거하고 다시 써야하는 단점이 있다.
본 발명이 해결하고자 하는 기술적 과제는 쓰기 단위와 소거 단위가 일치하지 않는 플래시 메모리와 같은 저장 장치의 특성을 고려하여 데이터를 캐싱(caching)할 수 있는 캐시 운용 방법 및 캐시 장치를 제공함에 있고, 상기 캐시 운용 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공함에 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 캐시 운용 방법은 호스트로부터 소정에 데이터를 저장 장치의 소정의 섹터에 쓰기를 요청받는 단계; 상기 소정의 섹터를 포함하는 소정의 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하는 단계; 상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하는 단계; 및 상기 섹터의 집합을 위해 할당된 캐시 메모리에 상기 쓰기가 요청된 데이터를 저장하는 단계를 포함한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 저장 장치는 플래시 메모리인 것을 특징으로 한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 캐시 운용 방법은 상기 캐시 메모리에 저장된 데이터에 기초하여 상기 플래시 메모리에 저장되어 있는 상기 섹터의 집합을 갱신하는 단계를 더 포함한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 갱신하는 단계는 상기 섹터의 집합 중 상기 쓰기가 요청된 소정의 섹터를 제외한 나머지 섹터들에 저장된 데이터를 상기 플래시 메모리에서 읽는 단계; 상기 나머지 섹터들에 저장된 데이터 및 상기 쓰기가 요청된 데이터에 기초하여 상기 섹터의 집합에 저장할 데이터를 생성하는 단계; 및 상기 생성된 데이터를 상기 플래시 메모리에 쓰는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 캐시 운용 방법은 호스트로부터 저장 장치의 소정의 섹터에 저장된 데이터의 읽기를 요청받는 단계; 상기 소정의 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하는 단계; 상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하고, 상기 읽기가 요청된 데이터를 상기 플래시 메모리에서 읽어 상기 섹터의 집합을 위해 할당된 캐시 메모리에 저장하는 단계; 및 상기 캐시 메모리에 저장된 상기 읽기가 요청된 데이터를 상기 호스트에 전송하는 단계를 포함한다.
본 발명에 따른 보다 바람직한 실시예에 따르면, 상기 저장 장치는 플래시 메모리인 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 캐시 장치는 호스트로부터 소정의 데이터를 저장 장치의 소정의 섹터에 쓰기를 요청받는 호스트인터페이스; 상기 쓰기가 요청된 소정의 섹터를 포함하는 소정의 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하고, 상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하는 제어부; 및 상기 할당 결과에 따라 상기 쓰기가 요청된 데이터를 저장하는 캐시 메모리를 포함한다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 캐시 장치는 호스트로부터 저장 장치의 소정의 섹터에 저장된 데이터의 읽기를 요청받는 호스트인터페이스; 상기 소정의 섹터를 포함하는 섹터의 그룹을 위해 캐시 메모리가 할당되어 있는지 판단하고, 상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하는 제어부; 및 상기 할당 결과에 따라 상기 읽기가 요청된 데이터를 상기 플래시 메모리에서 읽어와 저장하는 캐시 메모리를 포함하고, 상기 호스트인터페이스는 상기 캐시 메모리에 저장된 상기 읽기가 요청된 데이터를 상기 호스트에 전송하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위해 본 발명에 따른 시스템은 소정의 데이터를 플래시 메모리의 소정의 섹터에 쓰기를 요청하거나, 상기 소정의 데이터를 상기 플래시 메모리의 소정의 섹터로부터 읽기를 요청하는 호스트; 상기 쓰기 요청 또는 상기 읽기 요청에 따라 상기 소정의 섹터를 포함하는 섹터의 집합 단위로 캐시 메모리를 관리하여 상기 소정의 데이터를 캐싱하는 캐시 장치; 및 상기 캐시 장치로부터 상기 섹터 집합 단위로 데이터를 수신하여 쓰기 또는 읽기를 수행하는 플래시 메모리를 포함한다.
상기 기술적 과제를 해결하기 위해 본 발명은 상기 캐시 운용 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 따르면, 저장 장치 특히 플래시 메모리의 특성을 고려하여 섹터의 집합 단위로 캐시 메모리를 관리할 수 있어, 플래시 메모리의 쓰기 및 쓰기를 위한 소거 횟수를 최소화할 수 있다.
쓰기 및 쓰기를 위한 소거 횟수가 최소화됨에 따라, 플래시 메모리의 액세스 속도가 향상되며, 플래시 메모리의 수명이 길어지게 된다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
도 2는 본 발명에 따른 캐시 장치(210)를 포함하는 시스템을 도시한다.
도 2를 참조하면, 본 발명에 따른 캐시 장치(210)는 호스트인터페이스(212), 제어부(214), 캐시 메모리(216) 및 갱신부(218)를 포함한다. 이하에서는 저장 장치로서 플래시 메모리(230)를 예로 들어 설명한다. 그러나, 본 발명에 따른 캐시 장치 및 캐시 운용 방법이 플래시 메모리와 같이 쓰기와 소거 단위가 상이한 특징을 가지는 모든 메모리에 적용될 수 있음은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 쉽게 알 수 있다.
호스트 장치(220)는 플래시 메모리(230)에 대한 쓰기 또는 읽기 명령을 캐시 장치(210)에 전송한다. 데이터를 플래시 메모리(230)의 소정의 섹터에 쓰기를 명령하거나, 플래시 메모리(230)의 소정의 섹터에 저장되어 있는 데이터의 읽기를 명령한다.
캐시 장치(210)는 호스트 장치(220)의 쓰기 또는 읽기 명령에 따라 섹터의 집합 단위로 캐시 메모리를 관리한다. 섹터의 집합이란 쓰기 또는 읽기가 요청된 섹터를 포함하는 복수의 섹터들의 그룹을 의미한다. 섹터의 집합은 플래시 메모 리(230)의 소거 단위에 기초하여 결정되며, 일반적으로 복수개의 연속된 섹터들이다. 자세한 내용은 도 3과 관련하여 후술한다.
호스트인터페이스(212)는 호스트 장치(220)가 전송하는 쓰기 또는 읽기 요청을 수신한다.
제어부(214)는 호스트인터페이스(212)가 수신한 쓰기 또는 읽기 요청에 따라 쓰기 또는 읽기가 요청된 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리(216)가 할당되어 있는지 판단한다. 도 3을 참조하여 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 캐시 운용 방법을 도시한다.
도 3을 참조하면, 제어부(214)는 섹터의 집합(310 내지 330) 단위로 캐시 메모리(216)를 관리한다. 전술한 바와 같이 플래시 메모리(230)는 덮어 쓰기를 할 수 없기 때문에 데이터를 저장하고 있는 메모리 블록을 먼저 소거한 후 블록 단위로 쓰기를 수행하여야 한다. 따라서, 제어부(214)는 플래시 메모리(230)의 소거 단위에 기초하여 결정된 섹터의 집합 단위로 캐시 메모리(216)을 관리한다.
플래시 메모리(230)의 메모리 소자가 한 개인 경우에는 플래시 메모리 블록한 개가 소거 단위이므로 메모리 블록 하나에 할당된 섹터들이 섹터의 집합이 된다. 그러나, 플래시 메모리(230)가 복수개의 메모리 소자를 가지고 있는 경우에는 각각의 메모리 소자에 포함되어 있는 블록들이 동시에 소거될 수 있으므로, 소거 단위는 (메모리 블록)ㅧ(메모리 소자의 개수)가 된다.
섹터의 집합이 플래시 메모리(230)의 소거 단위에 기초하여 결정되면, 제어부(214)는 호스트 장치(220)에 의해 쓰기 또는 읽기가 요청된 섹터의 집합들(310 내지 330)을 위해 캐시 메모리를 할당하고, 섹터의 집합 단위로 캐시 메모리를 관리한다.
도 3에 도시된 예와 같이 각각의 섹터의 집합(310 내지 330)을 위해 캐시 메모리를 할당하고, 호스트 장치가 쓰기 또는 읽기를 요청한 섹터만 캐시 메모리에 저장하여 호스트 장치가 액세스할 수 있도록 한다.
캐시 장치(210)로부터 플래시 메모리(230)로 플러시를 수행할 때에는 각각의 섹터의 집합이 아닌 섹터의 집합 단위로 플러시를 수행함으로써 플래시 메모리의 쓰기 횟수를 최소화한다. 도 1과 관련하여 전술한 종래 기술에 따른 캐시 장치(120)를 플러시 메모리에 적용하면, 섹터 단위로 플러시가 수행되므로 섹터 하나가 플러시 될 때마다 섹터가 저장되는 메모리 블록 전부를 소거하고 쓰기를 수행해야 했다. 그러나, 본 발명에 따른 캐시 장치는 섹터의 집합 단위로 플러시가 수행되므로, 플래시 메모리(230)에 플러시하는 횟수를 줄일 수 있다. 따라서, 플래시 메모리의 쓰기 및 쓰기를 위한 소거 횟수가 줄어든다.
플러시하는 섹터의 집합을 선택하는 알고리즘은 종래 기술과 동일한 LRU 알고리즘이 이용될 수 있다. 다시 말해, 가장 오래전에 참조된 섹터의 집합을 플러시하도록 실시예를 구성할 수 있다.
도 3에 도시된 예에서, Sector Set #5(310)가 가장 최근에 참조된 섹터의 집합이고, 참조된 순서대로 섹터의 집합이 캐시 메모리에 저장되어 있는 것으로 가정하면, Sector Set #9(330)가 가장 오래전에 참조된 섹터의 집합이다. 따라서, 호스트 장치의 쓰기 또는 읽기 요청에 따라 새로운 섹터의 집합을 위해 캐시 메모리 를 할당해야 하는 경우, 제어부(214)는 Sector Set #9(330)를 플래시 메모리에 플러시하고, 새로운 섹터의 집합을 위해 캐시 메모리를 할당한다.
만약, 가장 최근에 참조된 섹터의 집합을 결정할 때에는 각각의 섹터의 집합에 포함된 섹터들이 가장 최근에 참조되었는지 여부에 따라 결정한다. 만약 Sector Set #1(320)의 섹터들(322 내지 328) 중 하나라도 가장 최근에 참조되면, Sector Set #1(320) 전부가 가장 최근에 참조된 섹터의 집합이 된다.
다시 도 2를 참조하면, 제어부(214)가 섹터의 집합 단위로 캐시 메모리(316)를 관리하는 구체적인 방법은 호스트 장치가 쓰기를 요청했는지, 읽기를 요청했는지에 따라 달라진다. 제어부(214)의 캐시 운용 방법을 쓰기와 읽기를 나누어 설명한다.
(1) 쓰기
호스트인터페이스(212)가 호스트로부터 수신한 요청이 소정의 섹터에 대한 쓰기 요청이면, 제어부(214)는 우선 쓰기가 요청된 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리(216)가 할당되어 있는지 판단한다.
섹터의 집합을 위해 캐시 메모리(216)가 할당되어 있지 않으면, 갱신부(218)를 제어하여 가장 오래전에 참조된 섹터의 집합을 플래시 메모리(230)로 플러시하고, 섹터의 집합을 위해 캐시 메모리(216)를 할당한 후에 할당된 캐시 메모리에 쓰기가 요청된 데이터를 저장한다. 섹터의 집합을 위해 캐시 메모리(216)가 이미 할당되어 있으면, 할당된 캐시 메모리에 쓰기가 요청된 데이터를 저장한다.
(2) 읽기
호스트인터페이스(212)가 호스트로부터 수신한 요청이 소정의 섹터에 대한 읽기 요청이면, 제어부(214)는 읽기가 요청된 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리(216)가 할당되어 있는지 판단한다.
섹터의 집합을 위해 캐시 메모리(216)가 할당되어 있지 않으면, 갱신부(218)를 제어하여 가장 오래전에 참조된 섹터의 집합을 플래시 메모리(230)로 플러시하고, 섹터의 집합을 위해 캐시 메모리(216)를 할당한다. 그런 다음, 읽기가 요청된 데이터를 플래시 메모리(230)에서 읽어 할당된 캐시 메모리에 저장한다.
섹터의 집합을 위해 캐시 메모리(216)가 이미 할당되어 있으면, 할당된 캐시 메모리에 읽기가 요청된 데이터가 존재하는지 판단한다. 캐시 메모리(216)는 섹터의 집합에 포함되는 섹터들 중에서 과거에 호스트 장치(220)가 액세스한 섹터들의 데이터만 저장하고 있다. 따라서, 섹터의 집합을 위해 캐시 메모리(216)가 할당되어 있어도, 캐시 메모리(216)에 읽기가 요청된 데이터가 존재하지 않을 수 있다. 이 경우 제어부(214)는 플래시 메모리(230)에서 읽기가 요청된 데이터를 읽어와 섹터의 집합을 위해 할당된 캐시 메모리에 저장한다.
갱신부(218)는 제어부(214)의 제어에 따라 캐시 메모리(216)에 저장된 섹터의 집합을 플래시 메모리로 플러시한다. 새로운 섹터의 집합을 위해 캐시 메모리(216)를 할당하기 위해 가장 오래전에 참조된 섹터의 집합을 플래시 메모리(230) 에 플러시한다. 캐시 메모리(216)에 저장되어 있는 데이터에 기초하여 플래시 메모리(230)에 저장되어 있는 섹터의 집합을 갱신함으로써 플러시를 수행한다. 도 4를 참조하여 상세히 설명한다.
도 4는 본 발명의 일 실시예에 따른 섹터의 집합을 갱신하는 방법을 도시한다.
Sector Set #9(410)가 플래시 메모리(230)로 플러시되는 경우를 가정하여 설명한다. 섹터의 집합이 16개의 섹터로 이루어지고, 섹터의 집합 중에서 섹터 0, 12 및 15만이 호스트 장치(220)에 의해 액세스 되어 캐시 메모리(216)에 섹터 0, 12 및 15만이 저장되어 있다. 전술한 바와 같이 플래시 메모리의 특성에 따라 섹터의 집합은 소거 단위에 기초하여 결정되고, 소거 단위에 해당하는 메모리 블록을 전부 소거하고 한꺼번에 쓰기를 수행하여야 한다. 따라서, Sector Set #9를 플래시 메모리에 쓰기 위해서는 전체 섹터의 집합에 대하여 한꺼번에 쓰기를 수행하여야 한다.
따라서, 갱신부(218)는 플래시 메모리(230)에서 Sector Set #9(420) 중 캐시 메모리에 저장되어 있지 아니한 나머지 섹터의 데이터를 읽어와 쓰기를 수행할 Sector Set #9(430)을 생성한다. 섹터 1 내지 11, 13 및 14를 플래시 메모리(230)에서 읽고, 캐시 메모리에 저장되어 있는 섹터 0, 12 및 15와 읽어온 섹터들을 결합하여 플래시 메모리에 쓰기를 수행할 Sector Set #9(430)를 생성한다. 생성된 섹터의 집합을 플래시 메모리(230)에 다시 씀으로써 플러시를 수행한다. 플래시 메모리에 저장되어 있는 갱신 전 Sector Set #9(420)는 쓰기를 수행하기 전에 소거 된다.
도 5는 본 발명의 일 실시예에 따른 쓰기 요청에 의한 캐시 운용 방법을 설명하기 위한 흐름도이다.
단계 510에서 캐시 장치는 호스트 장치로부터 소정의 데이터를 저장 장치의 소정의 섹터에 쓰기를 요청받는다. 플래시 메모리에 액세스하는 호스트 장치가 전송하는 쓰기 요청을 수신한다.
단계 520에서 캐시 장치는 쓰기가 요청된 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단한다. 본 발명에 따른 캐시 운용 방법은 섹터 단위가 아닌 플래시 메모리의 소거 단위에 기초해 결정된 섹터의 집합 단위로 캐시 메모리를 관리한다. 따라서, 쓰기가 요청된 섹터가 아닌 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단한다.
섹터의 집합을 위해 캐시 메모리가 할당되어 있지 않으면, 단계 522에서 캐시 장치는 캐시 메모리에 저장되어있는 가장 오래전에 참조된 섹터의 집합을 플래시 메모리로 플러시하고, 쓰기가 요청된 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리를 새로이 할당한다.
단계 520에서 섹터의 집합을 위해 이미 캐시 메모리가 할당되어 있는 것으로 판단되었거나, 단계 522에서 새로이 섹터의 집합을 위해 캐시 메모리가 할당되면, 단계 530에서 캐시 장치는 할당된 캐시 메모리에 쓰기가 요청된 데이터를 저장한다.
단계 540에서 캐시 장치는 단계 530에서 저장된 데이터에 기초하여 플래시 메모리에 저장된 섹터의 집합을 갱신한다. 단계 530에서 캐시 메모리에서 데이터가 저장된 섹터의 집합이 플래시 메모리로 플러시한다
도 4와 관련하여 전술한 바와 같이 섹터의 집합 중에서 캐시 메모리에 저장되어 있지 않은 섹터들의 데이터를 플래시 메모리부터 읽어오고, 읽어온 섹터들의 데이터와 캐시 메모리에 저장되어 있는 데이터를 결합한다. 결합 결과 플래시 메모리에 쓰기를 수행할 섹터의 집합이 생성되고, 이를 플래시 메모리에 쓴다. 플래시 메모리에 저장되어 있는 갱신 전 섹터의 집합은 쓰기를 수행하기 전 플래시에 소거된다.
도 6은 본 발명의 일 실시예에 따른 읽기 요청에 의한 캐시 운용 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 단계 610에서 캐시 장치는 호스트 장치로부터 저장 장치에 소정의 섹터에 저장된 데이터의 읽기를 요청받는다.
단계 620에서 캐시 장치는 단계 610의 읽기 요청에 따라 읽기가 요청된 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단한다.
단계 620에서 섹터의 집합을 위해 캐시 메모리가 할당되어 있는 것으로 판단되면, 단계 622에서 캐시 장치는 섹터의 집합을 위해 할당된 캐시 메모리에 읽기가 요청된 섹터의 데이터가 존재하는지 판단한다. 섹터의 집합을 위해 할당된 캐시 메모리에는 섹터의 집합에 포함된 섹터들 중에서 과거에 호스트 장치가 액세스한 섹터들의 데이터만이 저장되어 있다. 따라서, 단계 622에서 캐시 장치는 다시 한번 읽기가 요청된 데이터가 섹터의 집합을 위해 할당된 캐시 메모리에 존재하는지 판단한다.
단계 620에서 섹터의 집합을 위해 캐시 메모리가 할당되어 있지 않은 것으로 판단되면, 단계 624에서 캐시 장치는 섹터의 집합을 위해 캐시 메모리를 할당한다.
단계 630에서 캐시 장치는 읽기가 요청된 데이터를 플래시 메모리에서 읽어 할당된 캐시 메모리에 저장한다. 섹터의 집합을 위해 이미 캐시 메모리가 할당되어 있으나, 단계 622 읽기가 요청된 데이터가 할당된 캐시 메모리에 없는 것으로 판단된 경우 및 섹터의 집합을 위해 캐시 메모리가 할당되어 있지 않아 단계 624에서 섹터의 집합을 위해 새로이 캐시 메모리를 할당한 경우에 읽기가 요청된 데이터를 플래시 메모리에서 읽어 섹터의 집합을 위해 할당된 캐시 메모리에 저장한다.
단계 640에서 캐시 장치는 읽기가 요청된 데이터를 호스트 장치에 전송한다. 단계 630에서 플래시 메모리에서 읽어 캐시 메모리에 저장한 경우 또는 단계 622에서 이미 캐시 메모리에 저장되어 있는 것으로 판단된 경우 읽기가 요청된 데이터를 호스트 장치에 전송한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터 가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
도 1은 종래 기술에 따른 캐시 운용 방법을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 캐시 장치를 포함하는 시스템을 도시한다.
도 3은 본 발명의 일 실시예에 따른 캐시 운용 방법을 도시한다.
도 4는 본 발명의 일 실시예에 따른 섹터의 집합을 갱신하는 방법을 도시한다.
도 5는 본 발명의 일 실시예에 따른 쓰기 요청에 의한 캐시 운용 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 읽기 요청에 의한 캐시 운용 방법을 설명하기 위한 흐름도이다.

Claims (22)

  1. 캐시 운용 방법에 있어서,
    호스트로부터 소정의 데이터를 저장 장치의 소정의 섹터에 쓰기를 요청받는 단계;
    상기 소정의 섹터를 포함하는 소정의 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하는 단계;
    상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하는 단계; 및
    상기 섹터의 집합을 위해 할당된 캐시 메모리에 상기 쓰기가 요청된 데이터를 저장하는 단계를 포함하는 것을 특징으로 하는 캐시 운용 방법.
  2. 제 1 항에 있어서, 상기 저장 장치는
    플래시 메모리인 것을 특징으로 하는 캐시 운용 방법.
  3. 제 2 항에 있어서,
    상기 캐시 메모리에 저장된 데이터에 기초하여 상기 플래시 메모리에 저장되어 있는 상기 섹터의 집합을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 캐시 운용 방법.
  4. 제 3 항에 있어서, 상기 갱신하는 단계는
    상기 섹터의 집합 중 상기 쓰기가 요청된 소정의 섹터를 제외한 나머지 섹터들에 저장된 데이터를 상기 플래시 메모리에서 읽는 단계;
    상기 나머지 섹터들에 저장된 데이터 및 상기 쓰기가 요청된 데이터에 기초하여 상기 섹터의 집합에 저장할 데이터를 생성하는 단계; 및
    상기 생성된 데이터를 상기 플래시 메모리에 쓰는 단계를 포함하는 것을 특징으로 하는 캐시 운용 방법.
  5. 제 2 항에 있어서, 상기 섹터의 집합은
    상기 플래시 메모리의 소거(erase) 단위에 기초하여 결정되는 것을 특징으로 하는 캐시 운용 방법.
  6. 제 5 항에 있어서, 상기 소거 단위는
    상기 플래시 메모리의 블록 크기의 정수배인 것을 특징으로 하는 캐시 운용 방법.
  7. 캐시 운용 방법에 있어서,
    호스트로부터 저장 장치의 소정의 섹터에 저장된 데이터의 읽기를 요청받는 단계;
    상기 소정의 섹터를 포함하는 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하는 단계;
    상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하고, 상기 읽기가 요청된 데이터를 상기 플래시 메모리에서 읽어 상기 섹터의 집합을 위해 할당된 캐시 메모리에 저장하는 단계; 및
    상기 캐시 메모리에 저장된 상기 읽기가 요청된 데이터를 상기 호스트에 전송하는 단계를 포함하는 것을 특징으로 하는 캐시 운용 방법.
  8. 제 7 항에 있어서, 상기 저장 장치는
    플래시 메모리인 것을 특징으로 하는 캐시 운용 방법.
  9. 제 8 항에 있어서, 상기 캐시 메모리에 저장하는 단계는
    상기 섹터의 집합을 위해 캐시 메모리가 할당되어 있지 않으면, 상기 섹터의 집합을 위해 캐시 메모리를 할당하는 단계;
    상기 읽기가 요청된 데이터를 상기 플래시 메모리에서 읽는 단계; 및
    상기 섹터의 집합을 위해 할당된 캐시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 캐시 운용 방법.
  10. 제 8 항에 있어서, 상기 캐시 메모리에 저장하는 단계는
    상기 섹터의 집합을 위해 캐시 메모리가 이미 할당되어 있으면, 상기 섹터의 집합을 위해 할당되어 있는 캐시 메모리에 상기 읽기가 요청된 데이터가 존재하는 지 판단하는 단계; 및
    상기 읽기가 요청된 데이터가 상기 섹터의 집합을 위해 할당되어 있는 캐시 메모리에 존재하는지 여부에 따라 선택적으로 상기 읽기가 요청된 데이터를 상기 플래시 메모리에서 읽는 단계; 및
    상기 섹터의 집합을 위해 할당된 캐시 메모리에 저장하는 단계를 포함하는 것을 특징으로 하는 캐시 운용 방법.
  11. 제 8 항에 있어서, 상기 섹터의 집합은
    상기 플래시 메모리의 소거(erase) 단위에 기초하여 결정되는 것을 특징으로 하는 캐시 운용 방법.
  12. 제 11 항에 있어서, 상기 소거 단위는
    상기 플래시 메모리의 블록 크기의 정수배인 것을 특징으로 하는 캐시 운용 방법.
  13. 캐시 장치에 있어서,
    호스트로부터 소정의 데이터를 저장 장치의 소정의 섹터에 쓰기를 요청받는 호스트인터페이스;
    상기 쓰기가 요청된 소정의 섹터를 포함하는 소정의 섹터의 집합을 위해 캐시 메모리가 할당되어 있는지 판단하고, 상기 판단 결과에 기초하여 선택적으로 상 기 섹터의 집합을 위해 캐시 메모리를 할당하는 제어부; 및
    상기 할당 결과에 따라 상기 쓰기가 요청된 데이터를 저장하는 캐시 메모리를 포함하는 것을 특징으로 하는 캐시 장치.
  14. 제 13 항에 있어서, 상기 저장 장치는
    플래시 메모리인 것을 특징으로 하는 캐시 장치
  15. 제 14 항에 있어서,
    상기 캐시 메모리에 저장된 데이터에 기초하여 상기 플래시 메모리에 저장되어 있는 상기 섹터의 집합을 갱신하는 갱신부를 더 포함하는 것을 특징으로 하는 캐시 장치.
  16. 제 14 항에 있어서, 상기 섹터의 집합은
    상기 플래시 메모리의 소거(erase) 단위에 기초하여 결정되는 것을 특징으로 하는 캐시 장치.
  17. 캐시 장치에 있어서,
    호스트로부터 저장 장치의 소정의 섹터에 저장된 데이터의 읽기를 요청받는 호스트인터페이스;
    상기 소정의 섹터를 포함하는 섹터의 그룹을 위해 캐시 메모리가 할당되어 있는지 판단하고, 상기 판단 결과에 기초하여 선택적으로 상기 섹터의 집합을 위해 캐시 메모리를 할당하는 제어부; 및
    상기 할당 결과에 따라 상기 읽기가 요청된 데이터를 상기 플래시 메모리에서 읽어와 저장하는 캐시 메모리를 포함하고,
    상기 호스트인터페이스는 상기 캐시 메모리에 저장된 상기 읽기가 요청된 데이터를 상기 호스트에 전송하는 것을 특징으로 하는 캐시 장치.
  18. 제 17 항에 있어서, 상기 저장 장치는
    플래시 메모리인 것을 특징으로 하는 캐시 장치.
  19. 제 18 항에 있어서, 상기 섹터의 집합은
    상기 플래시 메모리의 소거(erase) 단위에 기초하여 결정되는 것을 특징으로 하는 캐시 장치.
  20. 소정의 데이터를 플래시 메모리의 소정의 섹터에 쓰기를 요청하거나, 상기 소정의 데이터를 상기 플래시 메모리의 소정의 섹터로부터 읽기를 요청하는 호스트;
    상기 쓰기 요청 또는 상기 읽기 요청에 따라 상기 소정의 섹터를 포함하는 섹터의 집합 단위로 캐시 메모리를 관리하여 상기 소정의 데이터를 캐싱하는 캐시 장치; 및
    상기 캐시 장치로부터 상기 섹터 집합 단위로 데이터를 수신하여 쓰기 또는 읽기를 수행하는 플래시 메모리를 포함하는 시스템.
  21. 제 20 항에 있어서, 상기 섹터의 집합은
    상기 플래시 메모리의 소거(erase) 단위에 기초하여 결정되는 것을 특징으로 하는 시스템.
  22. 제 1 항 내지 제 12 항 중 어느 한 항의 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020070089972A 2007-09-05 2007-09-05 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치 KR20090024971A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070089972A KR20090024971A (ko) 2007-09-05 2007-09-05 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
EP07833916A EP2186008A4 (en) 2007-09-05 2007-11-08 ANTI-MEMORY MANAGEMENT METHOD AND ANTI-MEMORY DEVICE USING AN AREA ASSEMBLY
PCT/KR2007/005608 WO2009031727A1 (en) 2007-09-05 2007-11-08 Cache management method and cache device using sector set
JP2010523923A JP2010538385A (ja) 2007-09-05 2007-11-08 セクタの集合を利用したキャッシュ運用方法及びキャッシュ装置
US12/717,177 US20100161890A1 (en) 2007-09-05 2010-03-04 Cache management method and cache device using sector set

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070089972A KR20090024971A (ko) 2007-09-05 2007-09-05 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치

Publications (1)

Publication Number Publication Date
KR20090024971A true KR20090024971A (ko) 2009-03-10

Family

ID=40429027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070089972A KR20090024971A (ko) 2007-09-05 2007-09-05 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치

Country Status (5)

Country Link
US (1) US20100161890A1 (ko)
EP (1) EP2186008A4 (ko)
JP (1) JP2010538385A (ko)
KR (1) KR20090024971A (ko)
WO (1) WO2009031727A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105127B1 (ko) * 2010-04-16 2012-01-16 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4762261B2 (ja) * 2008-03-12 2011-08-31 株式会社東芝 メモリシステム
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
US20120110239A1 (en) * 2010-10-27 2012-05-03 Seagate Technology Llc Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
US8918581B2 (en) 2012-04-02 2014-12-23 Microsoft Corporation Enhancing the lifetime and performance of flash-based storage
US20170351452A1 (en) * 2016-06-01 2017-12-07 Intel Corporation Dynamic host memory buffer allocation
US11169920B2 (en) * 2018-09-17 2021-11-09 Micron Technology, Inc. Cache operations in a hybrid dual in-line memory module
CN111324554B (zh) * 2020-02-18 2022-03-18 日立楼宇技术(广州)有限公司 闪存数据的管理方法及装置、电梯控制器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784886A (ja) * 1993-09-13 1995-03-31 Matsushita Electric Ind Co Ltd キャッシュメモリ制御方法およびキャッシュメモリ制御装置
US5726937A (en) * 1994-01-31 1998-03-10 Norand Corporation Flash memory system having memory cache
US6026027A (en) * 1994-01-31 2000-02-15 Norand Corporation Flash memory system having memory cache
US6418506B1 (en) * 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
US6209003B1 (en) * 1998-04-15 2001-03-27 Inktomi Corporation Garbage collection in an object cache
CN1088218C (zh) * 1999-11-14 2002-07-24 邓国顺 用于数据处理系统的快闪电子式外存储方法及其装置
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6477622B1 (en) * 2000-09-26 2002-11-05 Sun Microsystems, Inc. Simplified writeback handling
US20020069317A1 (en) * 2000-12-01 2002-06-06 Chow Yan Chiew E-RAID system and method of operating the same
US6782452B2 (en) * 2001-12-11 2004-08-24 Arm Limited Apparatus and method for processing data using a merging cache line fill to allow access to cache entries before a line fill is completed
TW569219B (en) * 2002-09-30 2004-01-01 Via Tech Inc Architecture and method for updating cache data
JP3587842B2 (ja) * 2002-12-17 2004-11-10 沖電気工業株式会社 データ書き換え装置およびデータ書き換え方法ならびにフラッシュメモリ装置
US7093072B2 (en) * 2003-02-21 2006-08-15 Enterasys Networks, Inc. Methods for improved data caching
US7055016B2 (en) * 2003-04-30 2006-05-30 Sun Microsystems, Inc. Computer system including a memory controller configured to perform pre-fetch operations
US7062615B2 (en) * 2003-08-29 2006-06-13 Emulex Design & Manufacturing Corporation Multi-channel memory access arbitration method and system
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7269708B2 (en) * 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7457922B2 (en) * 2004-11-20 2008-11-25 International Business Machines Corporation Cache line placement prediction for multiprocessor non-uniform cache architecture systems
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101105127B1 (ko) * 2010-04-16 2012-01-16 성균관대학교산학협력단 에스에스디 확장버퍼를 사용한 버퍼 캐쉬 관리 방법 및 에스에스디를 확장버퍼로서 사용하는 장치

Also Published As

Publication number Publication date
EP2186008A1 (en) 2010-05-19
WO2009031727A1 (en) 2009-03-12
US20100161890A1 (en) 2010-06-24
EP2186008A4 (en) 2011-08-10
JP2010538385A (ja) 2010-12-09

Similar Documents

Publication Publication Date Title
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
JP7366795B2 (ja) メモリシステムおよび制御方法
JP5571691B2 (ja) 記憶装置におけるマッピングアドレステーブルの維持
KR100885181B1 (ko) 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
US6938116B2 (en) Flash memory management method
JP4938460B2 (ja) 不揮発性メモリおよびブロック管理システムを伴う方法
KR101982251B1 (ko) 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법
US8635399B2 (en) Reducing a number of close operations on open blocks in a flash memory
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US20100332730A1 (en) Method and system for managing a nand flash memory
US20060020744A1 (en) Method and apparatus for maintaining data on non-volatile memory systems
US20130275650A1 (en) Semiconductor storage device
KR20090024971A (ko) 섹터의 집합을 이용한 캐시 운용 방법 및 캐시 장치
KR20070060070A (ko) 최적화된 순차적인 클러스터 관리용 에프에이티 분석
JP4682261B2 (ja) 不揮発性メモリおよびクラスベースの更新ブロック置換規則のための方法
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
KR20090107098A (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
US20030046482A1 (en) Data management in flash memory
KR101155542B1 (ko) Ssd 장치의 매핑 테이블 관리 방법
KR101119866B1 (ko) 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템
KR100868674B1 (ko) 플래시메모리 관리방법
US20240126433A1 (en) Method of controlling nonvolatile semiconductor memory
Lee et al. Memory management scheme for cost-effective disk-on-modules in consumer electronics devices
KR20090107309A (ko) 플래시 메모리 데이터 기록방법 및 플래시 메모리

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application