KR100781520B1 - 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법 - Google Patents

비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법 Download PDF

Info

Publication number
KR100781520B1
KR100781520B1 KR1020060018286A KR20060018286A KR100781520B1 KR 100781520 B1 KR100781520 B1 KR 100781520B1 KR 1020060018286 A KR1020060018286 A KR 1020060018286A KR 20060018286 A KR20060018286 A KR 20060018286A KR 100781520 B1 KR100781520 B1 KR 100781520B1
Authority
KR
South Korea
Prior art keywords
mapping information
block address
physical block
nonvolatile memory
cache
Prior art date
Application number
KR1020060018286A
Other languages
English (en)
Other versions
KR20070088102A (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 KR1020060018286A priority Critical patent/KR100781520B1/ko
Priority to US11/656,536 priority patent/US7636807B2/en
Priority to CN2007100791879A priority patent/CN101025712B/zh
Priority to EP07102661A priority patent/EP1826675A3/en
Priority to JP2007042015A priority patent/JP4597153B2/ja
Publication of KR20070088102A publication Critical patent/KR20070088102A/ko
Application granted granted Critical
Publication of KR100781520B1 publication Critical patent/KR100781520B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/0206Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings
    • H04M1/0208Portable telephones comprising a plurality of mechanically joined movable body parts, e.g. hinged housings characterized by the relative motions of the body parts
    • H04M1/0235Slidable or telescopic telephones, i.e. with a relative translation movement of the body parts; Telephones using a combination of translation and other relative motions of the body parts
    • H04M1/0237Sliding mechanism with one degree of freedom
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Abstract

본 발명은 비휘발성 메모리가 캐쉬로 사용되는 저장 장치, 및 이를 위한 맵핑 정보 복구 방법에 관한 것으로서, 더욱 상세하게는 맵핑 정보를 안전하게 복구할 수 있는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를 위한 맵핑 정보 복구 방법에 관한 것이다.
본 발명의 실시예에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치는, 비휘발성 메모리의 맵핑 정보, 및 상기 맵핑 정보가 저장된 시점에서 할당된 제 1물리 블록 주소를 상기 비휘발성 메모리에 저장하는 맵핑 정보 저장 모듈, 상기 제 1물리 블록 주소로부터 현재 할당된 제 2물리 블록 주소까지 스캔을 수행하는 스캔 모듈, 및 상기 스캔 결과에 따라 상기 제 1물리 블록 주소 및 상기 제 2물리 블록 주소 사이의 맵핑 정보를 복구하는 맵핑 정보 복구 모듈을 포함한다.
비휘발성 메모리, 캐쉬, 맵핑 정보

Description

비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를 위한 맵핑 정보 복구 방법{Storage apparatus using non volatile memory as cache and mapping information recovering method for the same}
도 1은 종래의 기술에 따른 비휘발성 메모리의 전체 스캔을 통한 맵핑 정보 복구 방법이 도시된 도면.
도 2는 도 1의 맵핑 정보 복구 방법에 따라 복구된 맵핑 정보가 도시된 도면.
도 3은 본 발명의 실시예에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치가 도시된 도면.
도 4는 본 발명의 실시예에 따른 비휘발성 메모리가 도시된 도면.
도 5는 본 발명의 실시예에 따른 맵핑 정보가 도시된 도면.
도 6은 본 발명의 실시예에 따른 맵핑 정보를 저장하는 방법이 도시된 도면.
도 7은 본 발명의 실시예에 따른 맵핑 정보를 저장하는 간격이 도시된 도면.
도 8은 본 발명의 실시예에 따른 맵핑 정보를 복구하는 방법이 도시된 도면.
도 9는 본 발명의 실시예에 따른 맵핑 정보를 복구하는 구간이 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
110: 비휘발성 메모리 120: 맵핑 정보 저장 모듈
130: 스캔 모듈 140: 맵핑 정보 복구 모듈
150: 캐쉬 관리 모듈
본 발명은 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를 위한 맵핑 정보 복구 방법에 관한 것으로서, 더욱 상세하게는 맵핑 정보를 안전하게 복구할 수 있는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를 위한 맵핑 정보 복구 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
비휘발성 메모리 중에서 주로 사용되는 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자로서, 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같은 빠른 액세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기 등에 적합하다.
최근에는 비휘발성 메모리를 하드디스크드라이브 등의 저장 매체에 대한 캐쉬로 사용하여 하드디스크드라이브의 전력 소모를 감소시키고, 비휘발성 메모리가 캐쉬로 사용되는 시스템의 부팅 시간을 감소시키고 있다. 캐쉬로 사용되는 비휘발 성 메모리는 호스트가 하드디스크드라이브에 데이터를 저장하고자 할 때 우선 비휘발성 메모리에 데이터가 저장되고, 비휘발성 메모리에 더 이상의 저장 공간이 없을 때 데이터를 하드디스크드라이브로 이동시키게 된다. 따라서, 비휘발성 메모리에서 데이터를 읽고 쓸 때는 하드디스크드라이브의 전원을 차단할 수 있기 때문에 전력 소모를 감소시킬 수 있게 된다.
이와 같이 비휘발성 메모리를 캐쉬로 사용하는 저장 장치는 호스트가 논리 블록 주소(Logical Block Address)를 통해 비휘발성 메모리의 물리 블록 주소(Physical Block Address) 에 접근할 수 있도록 논리 블록 주소를 물리 블록 주소로 변환해주는 맵핑 정보가 필요하게 된다.
일반적으로 맵핑 정보는 하드디스크드라이브 동작시에는 휘발성 메모리에 저장되나, 하드디스크드라이브의 전원이 오프될 경우에는 비휘발성 메모리에 저장되었다가 하드디스크드라이브에 다시 전원이 공급될 때, 휘발성 메모리에 다시 로드되어 호스트가 맵핑 정보를 통해 소정 데이터에 접근할 수 있도록 한다.
이때, 비휘발성 메모리가 캐쉬로 사용되는 저장 장치는 그 특성상 예측하지 못한 갑작스런 전원 차단이 발생할 수 있다. 이러한 경우, 휘발성 메모리에 저장된 맵핑 정보가 비휘발성 메모리로 저장되지 못하기 때문에 맵핑 정보를 복구하는 과정이 필요하게 된다.
일반적으로 맵핑 정보를 복구하는 방법으로는, 주로 비휘발성 메모리 전체를 스캔하는 방법, 및 주기적으로 맵핑 정보를 비휘발성 메모리에 저장하는 방법 등이 사용되고 있다.
우선, 비휘발성 메모리 전체를 스캔하는 방법은, 도 1과 같이 비휘발성 메모리 전체를 스캐닝하여 마지막으로 할당된 물리 블록 주소의 그 다음 물리 블록 주소에 저장되는 검출 데이터를 찾게 된다. 이때, 유효한 데이터 및 유효하지 않은 데이터를 구분하고 도 2와 같은 맵핑 정보를 복구하게 된다.
이때, 비휘발성 메모리 전체를 스캔하는 방법은, 최악의 경우 검출 데이터를 찾기 위한 전체 스캔, 및 맵핑 정보 복구를 위한 전체 스캔과 같이 2회의 전체 스캔을 거치게 된다. 따라서, 스캔에 소요되는 시간의 증가로 인해 비휘발성 메모리를 사용하는 시스템 부팅시 소요되는 시간이 지연된다는 문제점이 있다.
한편, 주기적으로 맵핑 정보를 비휘발성 메모리에 저장하는 방법은, 전술한 바와 같은 비휘발성 메모리의 전체 스캔을 피하기 위하여 주기적으로 맵핑 정보를 비휘발성 메모리에 저장하게 된다.
따라서, 비휘발성 메모리가 캐쉬로 사용되는 저장 장치의 다음 부팅시에는 비휘발성 메모리에 저장된 맵핑 정보를 통해 호스트가 비휘발성 메모리의 데이터에 접근할 수 있게 된다.
그러나, 주기적으로 맵핑 정보를 저장하는 방법은, 불필요하게 맵핑 정보를 매우 빈번하게 저장한다는 문제점이 있다. 다시 말해서, 맵핑 정보의 저장은 비휘발성 메모리가 캐쉬로 사용되는 저장 장치의 전원이 오프될 때만 사용되는 것이 아니라 동작 중에도 이루어지기 때문에 비휘발성 메모리가 캐쉬로 사용되는 저장 장치의 성능 저하의 주요한 원인으로 작용된다는 문제점이 있다.
한국 공개 특허 1998-0063018은 컴퓨터의 부팅시나 리셋시 사용자가 의도적 으로 캐시 기억 장치에 데이터를 채우게 하여 처음 라인페치(Line Fetch) 시간을 줄일 수 있는 캐시 기억 장치를 개시하고 있으나, 이는 컴퓨터의 부팅시나 리셋시 캐시 기억 장치에서 주 기억 장치로부터 데이터를 라인페치에 의해 가져올 때 시간이 많이 걸리고, 라인페치할 시작주소가 임의이기 때문에 최악의 경우 라인페치를 여러 번 해야 하는 문제점을 해결하기 위한 것으로, 예상치 못한 갑작스런 전원 차단시 신속하게 맵핑 정보를 복구하고, 맵핑 정보 복구를 위해 필요한 저장 공간을 최소화할 수 있는 방안은 제안되고 있지 않다.
본 발명은 예상치 못한 갑작스런 전원 차단시 맵핑 정보 복구를 위해 저장하는 맵핑 정보를 최소화하고, 신속한 맵핑 정보 복구를 가능케 하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치, 및 이를 위한 맵핑 정보 복구 방법을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치는, 비휘발성 메모리의 맵핑 정보, 및 상기 맵핑 정보가 저장된 시점에서 할당된 제 1물리 블록 주소를 상기 비휘발성 메모리에 저장하는 맵핑 정보 저장 모듈, 상기 제 1물리 블록 주소로부터 현재 할당된 제 2물리 블록 주소까지 스캔을 수행하는 스캔 모듈, 및 상기 스캔 결과에 따라 상기 제 1물리 블록 주소 및 상기 제 2물리 블록 주소 사이의 맵핑 정보를 복구하는 맵핑 정보 복구 모듈을 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법은, 비휘발성 메모리의 맵핑 정보, 및 상기 맵핑 정보가 저장된 시점에서 할당된 제 1물리 블록 주소를 상기 비휘발성 메모리에 저장하는 단계, 상기 제 1물리 블록 주소로부터 현재 할당된 제 2물리 블록 주소까지 스캔을 수행하는 단계, 및 상기 스캔 결과에 따라 상기 제 1물리 블록 주소 및 상기 제 2물리 블록 주소 사이의 맵핑 정보를 복구하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 비휘발성 메모리가 캐쉬로 사용되는 저 장 장치 및 이를 위한 맵핑 정보 복구 방법을 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 3은 본 발명의 실시예에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치가 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)는, 비휘발성 메모리(110), 맵핑 정보 저장 모듈(120), 스캔 모듈(130), 맵핑 정보 복구 모듈(140), 및 캐쉬 관리 모듈(150)을 포함할 수 있다.
한편, 도 3에는 도시되지 않았으나, 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)는 하드 디스크 드라이브(Hard Disk Drive) 등과 같은 대용량 저장 매체를 포함할 수 있으며, 비휘발성 메모리(110)는 대용량 저장 매체의 캐쉬로 사용될 수 있다. 따라서, 호스트가 대용량 저장 매체에 소정의 데이터를 쓰려고 하는 경우, 데이터는 우선 비휘발성 메모리(110)에 저장되며 비휘발성 메모리(110)에 더 이상 저장 공간이 없는 경우 대용량 저장 매체로 데이터가 이동될 수 있다.
이러한 비휘발성 메모리(110)는 도 4와 같이, 호스트가 논리 블록 주소를 통해 비휘발성 메모리(110)에 저장된 데이터에 접근할 수 있도록 논리 블록 주소를 물리 블록 주소로 변환해주는 맵핑 정보가 저장되는 맵핑 정보 저장 영역(111), 및 데이터가 저장되는 데이터 저장 영역(112)을 포함할 수 있다.
이때, 맵핑 정보는 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)가 동작 중일때는 휘발성 메모리에 저장이 되며, 전원 오프시 비휘발성 메모리(110)에 저장되어 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)로 다시 전원이 공급되면, 비휘발성 메모리(110)에 저장된 맵핑 정보가 휘발성 메모리로 재저장되고, 이 맵핑 정보에 근거하여 비휘발성 메모리(110)의 데이터 저장 영역(112)에 저장된 데이터에 접근이 가능하게 된다.
맵핑 정보 저장 모듈(120)은 맵핑 정보를 소정 간격으로 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)에 저장하며, 맵핑 정보가 저장되는 시점에서 마지막으로 할당된 물리 블록 주소(이하, 제 1물리 블록 주소라 함)를 맵핑 정보와 함께 저장할 수 있다. 이는, 비휘발성 메모리를 사용하는 시스템의 특성상 예측하지 못한 갑작스런 전원 차단이 발생하는 경우, 맵핑 정보를 복구하는 과정이 요구되며, 후술할 맵핑 정보 복구 모듈(140)은 맵핑 정보 저장 모듈(120)에 의해 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)에 저장된 맵핑 정보, 및 제 1물리 블록 주소를 통해 맵핑 정보의 복구를 수행할 수 있다.
도 5는 본 발명의 실시예에 따른 맵핑 정보의 구조가 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 맵핑 정보는, 논리 블록 주소 필드(210), 물리 블록 주소 필드(220), 및 업데이트 필드(230)를 포함할 수 있다. 논리 블록 주소 필드(210), 및 물리 블록 주소 필드(220)는 소정 논리 블록 주소에 대응하는 물리 블록 주소를 나타내며, 업데이트 필드(230)는 소정 논리 블록 주소 또는 물리 블록 주소에 대응하는 물리 블록 주소 또는 논리 블록 주소의 업데이트 여부를 나타낸다.
따라서, 맵핑 정보 저장 모듈(120)는 초기에는 비휘발성 메모리(110) 전체에 대한 맵핑 정보를 저장하나, 그 이후로는 업데이트 필드(230)에 근거하여 업데이트된 맵핑 정보만을 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)에 저장할 수 있다. 이하, 본 발명의 실시예에서 비휘발성 메모리(110) 전체에 대한 맵핑 정보를 제 1맵핑 정보라 칭하고, 업데이트된 맵핑 정보를 제 2맵핑 정보라 칭하기로 한다. 이때, 전술한 도 5의 맵핑 정보는 제 1맵핑 정보로 이해될 수 있다.
한편, 맵핑 정보 저장 모듈(120)는 소정 개수의 물리 블록 주소가 할당될때마다 맵핑 정보를 저장할 수 있으며, 맵핑 정보 저장 영역(111)에 더 이상 맵핑 정보를 저장할 공간이 남아있지 않는 경우에는 맵핑 정보 저장 영역(111)을 삭제하고 다시 제 1맵핑 정보를 저장한 후, 제 2맵핑 정보를 저장하는 과정을 반복적으로 수행할 수 있다. 또한, 제 2맵핑 정보를 저장한 후에는 전술한 도 5의 업데이트 필드(230)를 초기화하게 된다.
이때, 맵핑 정보 저장 모듈(120)이 소정 개수의 물리 블록 주소가 할당될때마다 맵핑 정보를 저장하는 것은, 너무 빈번하게 맵핑 정보를 저장하는 경우에는 그 데이터량이 너무 커지기 때문에 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)의 부팅시 가능한 부팅 지연 시간 내에서 후술할 스캔 모듈(130)이 스캔할 물리 블록 주소마다 맵핑 정보를 저장할 수 있다. 이는 스캔 모듈(130)이 물리 블록 주소를 스캔하는 시간이 맵핑 정보를 복구하는데 소요되는 시간으로 이 해될 수 있기 때문이다.
스캔 모듈(130)은 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)에서 예측하지 못한 갑작스런 전원 차단이 발생한 경우, 맵핑 정보 저장 모듈(120)에 의해 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)에 저장된 제 1물리 블록 주소로부터 전원 차단이 발생한 시점에서 할당된 물리 블록 주소(이하, 제 2물리 블록 주소라 함)까지의 스캔을 수행하여 제 1물리 블록 주소, 및 제 2물리 블록 주소 사이에 위치한 물리 블록 주소에 대응하는 논리 블록 주소를 스캔하게 된다. 이때, 소정 물리 블록 주소가 할당된 경우, 그 다음에 위치하는 물리 블록 주소에 이를 검출하기 위한 검출 데이터가 저장되기 때문에, 스캔 모듈(130)은 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)의 전원 차단이 발생한 시점에서의 제 2물리 블록 주소를 판단할 있다.
또한, 스캔 모듈(130)은 소정의 물리 블록 주소가 할당될 때, 해당 물리 블록 주소의 소정 영역(예를 들어, 스패어(Spare) 영역)에 맵핑된 논리 블록 주소를 저장하기 때문에 소정 물리 블록 주소에 맵핑된 논리 블록 주소를 스캔할 수 있다.
이때, 스캔 모듈(130)이 스캔하는 제 1물리 블록 주소, 및 제 2물리 블록 주소 사이의 물리 블록 주소의 개수는 전술한 맵핑 정보 저장 모듈(120)이 맵핑 정보를 저장하는 간격인, 제 1물리 블록 주소 이후로 할당된 물리 블록 주소의 개수로 이해될 수 있다. 예를 들어, 맵핑 정보 저장 모듈(120)이 N개의 물리 블록 주소가 할당될때마다 맵핑 정보를 저장하는 경우, 스캔 모듈(130)이 스캔하는 최대 물리 블록 주소는 N개가 될 수 있다. 이때, N개의 물리 블록 주소가 할당되기 전에 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)의 전원 차단이 발생한 경우 스캔하는 물리 블록 주소의 개수는 N개보다 적을 수 있다.
맵핑 정보 복구 모듈(140)은, 스캔 모듈(130)에 의해 스캔된 결과를 통해 제 1물리 블록 주소가 저장된 시점으로부터 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)의 전원 차단이 발생한 시점의 제 2물리 블록 주소까지의 맵핑 정보를 복구할 수 있다.
구체적으로, 맵핑 정보 복구 모듈(140)은, 스캔 모듈(130)의 스캔 결과 제 1물리 블록 주소, 및 제 2물리 블록 주소 사이에 할당된 물리 블록 주소와 그에 따른 논리 블록 주소를 통해 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치(100)의 전원 차단이 발생된 후 다시 전원이 공급되었을 때, 맵핑 정보를 복구할 수 있다.
이때, 맵핑 정보 복구 모듈(140)은, 제 1물리 블록 주소로부터 제 2물리 블록 주소까지의 맵핑 정보만을 복구하면 되므로, 기존에 마지막으로 할당된 물리 블록 주소를 판단하고, 판단된 물리 블록 주소로부터 전체 물리 블록 주소를 스캔하여 맵핑 정보를 복구하는 경우에 비하여 짧은 시간안에 맵핑 정보를 복구할 수 있게 된다.
캐쉬 관리 모듈(150)은 휘발성 메모리에 저장된 데이터를 비휘발성 메모리(110)의 데이터 저장 영역(112)에 저장하는 역할을 수행할 수 있다. 또한, 캐쉬 관리 모듈(150)은 비휘발성 메모리(110)의 소정 물리 블록 주소에 데이터를 저장할 경우, 그에 대응하는 논리 블록 주소를 해당하는 물리 블록 주소에 함께 저장할 수 있다. 이는 차후에 맵핑 정보를 복구할 경우, 전술한 스캔 모듈(130)이 물리 블록 주소를 스캔하는 과정에서 논리 블록 주소까지 판단할 수 있도록 하기 위함이다.
도 6은 본 발명의 실시예에 따른 맵핑 정보 저장 방법이 도시된 도면이다. 이때, 도 6의 맵핑 정보 저장 방법은, 맵핑 정보 저장 모듈(120)이 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)에 비휘발성 메모리(110) 전체 맵핑 정보인 제 1맵핑 정보를 저장한 경우를 예를 들어 설명하기로 한다. 또한, 제 1맵핑 정보와 함께 제 1맵핑 정보가 저장된 시점에서의 제 1물리 블록 주소도 함께 저장된 경우를 예를 들어 설명하기로 한다.
도시된 바와 같이, 본 발명의 실시예에 따른 맵핑 정보 저장 방법은, 먼저 맵핑 정보 저장 모듈(120)이 현재 시점에서 제 1물리 블록 주소 이후로 소정 개수의 물리 블록 주소가 할당되었는지를 판단한다(S110). 이때, 맵핑 정보 저장 모듈(120)이 판단하는 할당된 물리 블록 주소의 개수는 N개인 경우를 예를 들어 설명하기로 한다. 이때, 제 1물리 블록 주소로부터 할당된 N개의 물리 블록 주소는 스캔 모듈(130)이 스캔하는 물리 블록 주소의 개수이며, 이는 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 장치(100) 부팅시, 지연 가능한 시간내에서 스캔할 수 있는 최대 개수의 물리 블록 개수로 이해될 수 있다.
판단결과 제 1물리 블록 주소로부터 할당된 물리 블록 주소의 개수가 N개 이상인 경우(S120), 맵핑 정보 저장 모듈(120)은 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)에 저장 공간이 남아있는지의 여부를 판단한다(S130).
맵핑 정보 저장 영역(111)에 저장 공간이 있는 경우, 맵핑 정보 저장 모듈 (120)은 제 1맵핑 정보의 업데이트 필드(230)를 근거로 하여 업데이트된 맵핑 정보인 제 2맵핑 정보를 맵핑 정보 저장 영역(111)에 저장한다(S140).
이후, 맵핑 정보 저장 모듈(120)은 제 2맵핑 정보가 저장된 시점에서 마지막으로 할당된 물리 블록 주소를 제 1물리 블록 주소로 변경하고(S150), 변경된 제 1물리 블록 주소를 맵핑 정보 저장 영역(111)에 저장하게 된다(S160).
만일, 전술한 S130단계에서 맵핑 정보 저장 영역(111)에 저장 공간이 남아있지 않은 경우, 맵핑 정보 저장 모듈(120)는 맵핑 정보 저장 영역(111)을 삭제하고, 비휘발성 메모리(110)의 전체 맵핑 정보인 제 1맵핑 정보를 맵핑 정보 저장 영역(111)에 저장하게 된다(S170). 이때, S170단계에서 저장되는 제 1맵핑 정보는, 업데이트가 모두 적용된 맵핑 정보로 이해될 수 있다.
이후, 전술한 S150 및 S160단계와 같이, 현재 시점에서 마지막으로 할당된 물리 블록 주소를 제 1물리 블록 주소로 변경하고, 변경된 제 1물리 블록 주소를 맵핑 정보 저장 영역(111)에 저장하게 된다.
다시 말해서, 본 발명의 실시예에 따른 맵핑 정보 저장 모듈(120)은, 도 7과 같이, 제 1맵핑 정보가 저장된 시점에서 마지막으로 할당된 제 1물리 블록 주소로부터 N개의 물리 블록 주소가 할당된 경우, 맵핑 정보 저장 모듈(120)은 업데이트된 제 2맵핑 정보를 맵핑 정보 저장 영역(111)에 현재 시점에서 할당된 물리 블록 주소를 제 1물리 블록 주소로 변경하여 저장할 수 있다.
도 8은 본 발명의 실시예에 따른 맵핑 정보 복구 방법이 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 맵핑 정보 복구 방법은, 먼저 맵핑 정보 복구 모듈(140)이 맵핑 정보 저장 영역(111)으로부터 맵핑 정보, 및 제 1물리 블록 주소를 판단한다(S210). 이때, 판단되는 맵핑 정보는, 제 1맵핑 정보, 및 제 2맵핑 정보 중 적어도 하나를 포함할 수 있다.
맵핑 정보 복구 모듈(140)은 소정의 변수 i를 설정하고, 설정된 변수 i에 1을 입력한다(S220). 이후, 맵핑 정보 복구 모듈(140)은 추출된 제 1물리 블록 주소+i에 해당하는 물리 블록 주소를 스캔 모듈(130)를 통해 스캔하고(S230), 스캔 결과 해당 물리 블록 주소에 검출 데이터가 저장되었는지를 판단한다(S240).
판단 결과, 해당 물리 블록 주소에 검출 데이터가 저장되지 않은 경우, 맵핑 정보 복구 모듈(140)은 맵핑 정보를 업데이트하고(S250), 변수 i에 1을 더하게 된다(S260).
이후, 맵핑 정보 복구 모듈(140)은 제 1물리 블록 주소로부터 i를 1씩 증가시켜가면서 검출 데이터가 존재하는 제 2물리 블록 주소가 나올때까지 맵핑 정보를 업데이트하는 과정(S230 내지 S260)을 반복적으로 수행할 수 있다.
다시 말해서, 본 발명의 실시예에 따른 맵핑 정보 복구 모듈(140)은, 도 9과 같이, 비휘발성 메모리(110)의 맵핑 정보 저장 영역(111)으로부터 판단된 제 1물리 블록 주소로부터 순차적으로 스캔 모듈(130)에 의해 스캔된 결과를 통해 맵핑 정보를 업데이트할 수 있으며, 검출 데이터가 저장된 물리 블록 주소를 판단하여 그 이전 물리 블록 주소인 제 2물리 블록 주소까지의 맵핑 정보를 업데이트하여 맵핑 정보를 복구할 수 있다. 이때, 맵핑 정보 복구 모듈(140)은 물리 블록 주소이 스캔시, 판단되는 물리 블록 주소, 및 그에 대응하는 논리 블록 주소를 통해 맵핑 정보 를 복구할 수 있다.
본 발명의 실시예에서 사용되는 용어 중 '모듈'는 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(Application Specific Integrated Circuit, ASIC)과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 따라서, 일 예로서 모듈은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.
이상과 같이 본 발명에 따른 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를 위한 맵핑 정보 복구 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를 위한 맵핑 정보 복구 방법에 따르면, 맵핑 정보를 저장하는 횟수를 감소시 켜 비휘발성 메모리를 캐쉬로 사용하는 저장 장치의 수명 단축 및 성능 저하을 방지하고, 예측하지 못한 갑작스런 전원 차단후 다시 전원이 공급되었을 때 빠른 맵핑 정보의 복구가 가능하다는 효과가 있다.

Claims (20)

  1. 비휘발성 메모리의 맵핑 정보, 및 상기 맵핑 정보가 저장된 시점에서 할당된 제 1물리 블록 주소를 상기 비휘발성 메모리에 저장하며, 상기 제 1물리 블록 주소 이후로 소정 개수의 물리 블록 주소가 할당될때마다 상기 맵핑 정보를 저장하는 핑 정보 저장 모듈;
    상기 제 1물리 블록 주소로부터 현재 할당된 제 2물리 블록 주소까지 스캔을 수행하는 스캔 모듈; 및
    상기 스캔 결과에 따라 상기 제 1물리 블록 주소 및 상기 제 2물리 블록 주소 사이의 맵핑 정보를 복구하는 맵핑 정보 복구 모듈을 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  2. 제 1 항에 있어서,
    상기 비휘발성 메모리는, 상기 맵핑 정보, 및 상기 제 1물리 블록 주소가 저장되는 맵핑 정보 저장 영역을 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  3. 삭제
  4. 제 2 항에 있어서,
    상기 맵핑 정보는, 상기 비휘발성 메모리 전체의 맵핑 정보인 제 1맵핑 정보; 및
    업데이트된 주소의 맵핑 정보인 제 2맵핑 정보를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  5. 제 4 항에 있어서,
    상기 제 1맵핑 정보는, 논리 블록 주소 필드, 물리 블록 주소 필드, 및 소정 주소의 업데이트 여부를 나타내는 업데이트 필드를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  6. 제 5 항에 있어서,
    상기 맵핑 정보 저장 모듈은, 상기 제 1맵핑 정보를 상기 맵핑 정보 저장 영역에 저장하고,
    상기 업데이트 필드의 필드값에 근거하여 상기 제 2맵핑 정보를 상기 맵핑 정보 저장 영역에 추가로 저장하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  7. 제 6 항에 있어서,
    상기 맵핑 정보 저장 모듈은, 상기 맵핑 정보 저장 영역에서 저장 공간이 없을 경우, 상기 맵핑 정보 저장 영역을 삭제한 다음 상기 제 1맵핑 정보를 저장하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  8. 제 1 항에 있어서,
    상기 스캔 모듈은, 할당된 소정의 물리 블록 주소의 다음에 위치한 물리 블록 주소에 저장되는 검출 데이터를 통해 상기 제 2물리 블록 주소를 판단하고,
    상기 제 1물리 블록 주소로부터 상기 판단된 제 2물리 블록 주소까지 스캔을 수행하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  9. 제 8 항에 있어서,
    상기 맵핑 정보 복구 모듈은, 상기 스캔이 수행된 물리 블록 주소 및 상기 스캔이 수행된 물리 블록 주소에 대응하는 논리 블록 주소를 통해 맵핑 정보를 복구하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  10. 제 9 항에 있어서,
    소정의 물리 블록 주소에 대응하는 논리 블록 주소를 해당하는 물리 블록 주소에 저장하는 캐쉬 관리 모듈을 더 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치.
  11. 비휘발성 메모리의 맵핑 정보, 및 상기 맵핑 정보가 저장된 시점에서 할당된 제 1물리 블록 주소를 상기 비휘발성 메모리에 저장하며, 상기 제 1물리 블록 주소 이후로 소정 개수의 물리 블록 주소가 할당될때마다 상기 맵핑 정보를 저장하는 단계;
    상기 제 1물리 블록 주소로부터 현재 할당된 제 2물리 블록 주소까지 스캔을 수행하는 단계; 및
    상기 스캔 결과에 따라 상기 제 1물리 블록 주소 및 상기 제 2물리 블록 주소 사이의 맵핑 정보를 복구하는 단계를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  12. 제 11 항에 있어서,
    상기 비휘발성 메모리는, 상기 맵핑 정보, 및 상기 제 1물리 블록 주소가 저장되는 맵핑 정보 저장 영역을 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  13. 삭제
  14. 제 12 항에 있어서,
    상기 맵핑 정보는, 상기 비휘발성 메모리 전체의 맵핑 정보인 제 1맵핑 정보; 및
    업데이트된 주소의 맵핑 정보인 제 2맵핑 정보를 포함하는 비휘발성 메모리 가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  15. 제 14 항에 있어서,
    상기 제 1맵핑 정보는, 논리 블록 주소 필드, 물리 블록 주소 필드, 및 소정 주소의 업데이트 여부를 나타내는 업데이트 필드를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  16. 제 15 항에 있어서,
    상기 맵핑 정보를 저장하는 단계는, 상기 제 1맵핑 정보를 상기 맵핑 정보 저장 영역에 저장하는 단계; 및
    상기 업데이트 필드의 필드값에 근거하여 상기 제 2맵핑 정보를 상기 맵핑 정보 저장 영역에 추가로 저장하는 단계를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  17. 제 16 항에 있어서,
    상기 맵핑 정보를 저장하는 단계는, 상기 맵핑 정보 저장 영역에서 저장 공간이 없을 경우, 상기 맵핑 정보 저장 영역을 삭제한 다음 상기 제 1맵핑 정보를 저장하는 단계를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  18. 제 11 항에 있어서,
    상기 스캔을 수행하는 단계는, 할당된 소정의 물리 블록 주소의 다음에 위치한 물리 블록 주소에 저장되는 검출 데이터를 통해 상기 제 2물리 블록 주소를 판단하는 단계; 및
    상기 제 1물리 블록 주소로부터 상기 판단된 제 2물리 블록 주소까지 스캔을 수행하는 단계를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  19. 제 18 항에 있어서,
    상기 맵핑 정보를 복구하는 단계는, 상기 스캔이 수행된 물리 블록 주소 및 상기 스캔이 수행된 물리 블록 주소에 대응하는 논리 블록 주소를 통해 맵핑 정보를 복구하는 단계를 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
  20. 제 19 항에 있어서,
    소정의 물리 블록 주소에는 대응하는 논리 블록 주소를 해당하는 물리 블록 주소에 저장하는 단계를 더 포함하는 비휘발성 메모리가 캐쉬로 사용되는 저장 장치를 위한 맵핑 정보 복구 방법.
KR1020060018286A 2006-02-24 2006-02-24 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법 KR100781520B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060018286A KR100781520B1 (ko) 2006-02-24 2006-02-24 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
US11/656,536 US7636807B2 (en) 2006-02-24 2007-01-23 Storage apparatus using nonvolatile memory as cache and mapping information recovering method for the storage apparatus
CN2007100791879A CN101025712B (zh) 2006-02-24 2007-02-15 使用非易失性存储器的存储设备及其映射信息恢复方法
EP07102661A EP1826675A3 (en) 2006-02-24 2007-02-19 Storage apparatus and mapping information recovering method for the storage apparatus
JP2007042015A JP4597153B2 (ja) 2006-02-24 2007-02-22 非揮発性メモリがキャッシュとして使用される保存装置、及びそのためのマッピング情報復旧方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060018286A KR100781520B1 (ko) 2006-02-24 2006-02-24 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법

Publications (2)

Publication Number Publication Date
KR20070088102A KR20070088102A (ko) 2007-08-29
KR100781520B1 true KR100781520B1 (ko) 2007-12-03

Family

ID=38090869

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060018286A KR100781520B1 (ko) 2006-02-24 2006-02-24 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법

Country Status (5)

Country Link
US (1) US7636807B2 (ko)
EP (1) EP1826675A3 (ko)
JP (1) JP4597153B2 (ko)
KR (1) KR100781520B1 (ko)
CN (1) CN101025712B (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296337B2 (en) 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8074011B2 (en) 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8719501B2 (en) * 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
JP4961319B2 (ja) * 2007-10-11 2012-06-27 株式会社日立製作所 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
CN101470645B (zh) * 2007-12-29 2012-04-25 华为技术有限公司 一种高速缓存数据恢复的方法和装置
KR101477047B1 (ko) 2008-02-29 2014-12-30 삼성전자주식회사 메모리 시스템 및 그것의 블록 병합 방법
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8667248B1 (en) 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
KR101890767B1 (ko) * 2011-07-01 2018-09-28 시게이트 테크놀로지 인터내셔날 주소 사상 정보 관리 방법 이를 적용한 저장 장치
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
CN102567490B (zh) * 2011-12-21 2013-12-04 华为技术有限公司 数据库内的描述信息的恢复和数据的缓存方法及设备
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
CN104765656A (zh) * 2015-04-23 2015-07-08 浪潮电子信息产业股份有限公司 一种冷数据的备份方法及装置
WO2017131747A1 (en) * 2016-01-29 2017-08-03 Hewlett Packard Enterprise Development Lp Persistent virtual address spaces
US9971645B2 (en) 2016-08-23 2018-05-15 Seagate Technology Llc Auto-recovery of media cache master table data
US10318417B2 (en) * 2017-03-31 2019-06-11 Intel Corporation Persistent caching of memory-side cache content
US10223272B2 (en) 2017-04-25 2019-03-05 Seagate Technology Llc Latency sensitive metadata object persistence operation for storage device
KR102566635B1 (ko) 2017-12-18 2023-08-14 삼성전자주식회사 비휘발성 메모리 시스템 및 그 동작 방법
US11076441B2 (en) * 2018-05-21 2021-07-27 Nxp Usa, Inc. Unreachable node recovery in wireless mesh networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249217A (ja) * 1995-03-15 1996-09-27 Toshiba Corp キャッシュ管理装置
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
WO2003067437A1 (en) 2002-02-06 2003-08-14 Sandisk Corporation Memory mapping device utilizing sector pointers
US20040083348A1 (en) 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05225062A (ja) 1992-02-13 1993-09-03 Matsushita Electric Ind Co Ltd ディスク・キャッシュ装置
JPH0628261A (ja) 1992-04-17 1994-02-04 Hitachi Ltd データ転送方法及び装置
JPH0877074A (ja) * 1994-09-09 1996-03-22 Hitachi Ltd フラッシュメモリを用いた記憶装置システム
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
KR0174711B1 (ko) 1996-04-24 1999-04-15 김광호 하드디스크 캐시의 제어방법
KR19980063018A (ko) 1996-12-31 1998-10-07 문정환 캐시 기억장치
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
WO1999032977A1 (fr) * 1997-12-22 1999-07-01 Tdk Corporation Systeme de memoire flash
US20030163633A1 (en) 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
KR100457812B1 (ko) * 2002-11-14 2004-11-18 삼성전자주식회사 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
JP2005222202A (ja) * 2004-02-04 2005-08-18 Matsushita Electric Ind Co Ltd 不揮発性記憶装置のデータ保護方法
WO2007102117A2 (en) * 2006-03-07 2007-09-13 Nxp B.V. Electronic circuit with a memory matrix that stores pages including extra data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249217A (ja) * 1995-03-15 1996-09-27 Toshiba Corp キャッシュ管理装置
KR20030040817A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 플래시 메모리 관리방법
WO2003067437A1 (en) 2002-02-06 2003-08-14 Sandisk Corporation Memory mapping device utilizing sector pointers
US20040083348A1 (en) 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system

Also Published As

Publication number Publication date
KR20070088102A (ko) 2007-08-29
EP1826675A3 (en) 2008-08-13
US7636807B2 (en) 2009-12-22
US20070204100A1 (en) 2007-08-30
JP4597153B2 (ja) 2010-12-15
JP2007226806A (ja) 2007-09-06
CN101025712B (zh) 2011-01-12
CN101025712A (zh) 2007-08-29
EP1826675A2 (en) 2007-08-29

Similar Documents

Publication Publication Date Title
KR100781520B1 (ko) 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
KR100855467B1 (ko) 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑장치 및 방법
KR100809320B1 (ko) 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
CN110032403B (zh) 存储器装置与电子装置的启动程序加载方法
US9612954B2 (en) Recovery for non-volatile memory after power loss
KR101286477B1 (ko) 플래시 메모리 시스템의 고속 웨이크-업을 용이하게 하는방법 및 시스템
US8949512B2 (en) Trim token journaling
EP2203825B1 (en) Apparatus using flash memory as storage and method of operating the same
US7778078B2 (en) Memory system and control method thereof
JP6112595B2 (ja) メモリシステムにおける消去管理
TWI470426B (zh) Memory management device and memory management method
KR101583002B1 (ko) 컴퓨팅 시스템, 그것의 부팅 방법, 및 코드 데이터 피닝 방법
US20070016719A1 (en) Memory device including nonvolatile memory and memory controller
JP2013137770A (ja) Lbaビットマップの使用
JP2005115910A (ja) シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ
CN106802867B (zh) 固态储存装置及其数据编程方法
US20100318727A1 (en) Memory system and related method of loading code
JP2007179545A (ja) 不揮発性メモリをキャッシュとして用いる保存装置及びその管理方法
CN108108261B (zh) 数据存储装置及其操作方法
KR100781517B1 (ko) 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법
WO2013062542A1 (en) Segmented caches
JP2008276832A (ja) 半導体記憶装置およびその駆動方法
KR20050076156A (ko) 플래시 메모리의 데이터 복구 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20121031

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 13