KR20080037283A - 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 - Google Patents
플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 Download PDFInfo
- Publication number
- KR20080037283A KR20080037283A KR1020060104152A KR20060104152A KR20080037283A KR 20080037283 A KR20080037283 A KR 20080037283A KR 1020060104152 A KR1020060104152 A KR 1020060104152A KR 20060104152 A KR20060104152 A KR 20060104152A KR 20080037283 A KR20080037283 A KR 20080037283A
- Authority
- KR
- South Korea
- Prior art keywords
- block
- information
- blocks
- mapping table
- wsbl
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Abstract
본 발명에 따른 소모 레벨링(Wear leveling) 방식에 따른 어드레스 사상법을 사용하고, 플래시 메모리 장치를 사용하는 시스템의 블록 맵핑 테이블의 복구 방법은: (a) 플래시 메모리 장치로부터 상기 소모 레벨링을 위한 블록 정렬 정보(WSBL)를 읽어 오는 단계; (b) 상기 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하는 단계; 및 (c) 상기 블록 정렬 정보(WSBL)에 포함되는 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 할당 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신하는 단계를 포함한다.
상술한 블록 맵핑 테이블의 복구 방법에 따르면, 전원 오류 발생 후의 재부팅시, 플래시 메모리 전체의 블록 영역을 검색하지 않고도 어드레스의 맵핑 테이블의 신속한 복구가 가능하다.
Description
도 1은 일반적인 버츄얼 블록 사상법을 설명하는 도면;
도 2는 본 발명의 블록 맵핑 테이블의 복구 방법을 설명하는 블록도;
도 3은 도 2의 플래시 메모리 저장 영역의 구성을 예시적으로 보여주는 도면;
도 4는 도 3의 WSBL의 구성을 간략히 보여주는 블록도;
도 5는 도 3의 트리 정보 영역을 설명하기 위한 도면;
도 6은 본 발명에 따른 트리 정보 영역의 복구 동작을 설명하는 블록도;
도 7은 본 발명의 맵핑 테이블의 복구 동작을 설명하는 흐름도;
도 8은 본 발명에 따른 맵핑 테이블의 복구 방법을 적용하는 시스템을 간략히 보여주는 블록도.
*도면의 주요부분에 대한 부호의 설명*
10 : 블록 맵핑 테이블 20 : 파티션 정보 영역
30 : 메타 데이터 영역 40 : 유저 데이터 영역
100 : 하이브리드 하드 디스크 110 : 중앙 처리 장치
120 : 램 130 : 입출력 장치
140 : 시스템 버스
본 발명은 저장매체에 관한 것으로, 더욱 상세하게는 불휘발성 메모리의 데이터 복구 방법에 관한 것이다.
일반적으로, 플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크 대신 플래시 메모리가 저장장치로서 널리 사용되고 있다.
플래시 메모리는 셀과 비트 라인의 연결 상태에 따라 NOR형과 NAND형으로 구분된다. NOR형 플래시메모리는 읽기 속도가 빠른데 반하여 쓰기 속도가 느리기 때문에, 주로 코드용 메모리로 사용된다. 그리고 NAND형 플래시메모리는 쓰기 속도가 빠르고 단위 면적당 단가가 낮기 때문에, 주로 대용량 데이터 저장장치로 사용된다. 플래시 메모리는 다른 메모리 소자와 비교할 때, 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 플래시 메모리에 데이터를 기입하기 위해서는 소거 동작이 반드시 선행되어야 하며, 기입되는 데이터의 단위보다 삭제되는 데이터의 단위가 크다는 특징이 있다. 이러한 특징은 플래시 메모리를 주 메모리로 사용하는 것을 어렵게 할 뿐만 아니라, 플래시 메모리가 보조기억장치로 사용되는 경우에도 일반 하드디스크용 파일 시스템(File System)을 그대로 활용하 는 것을 저해하는 요인이 된다. 따라서, 플래시 메모리의 삭제 연산을 감추기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(flash translation layer; 이하, FTL이라 칭함)이 사용된다. FTL은, 플래시 메모리의 기입 동작시, 파일 시스템이 생성한 논리주소를 삭제 연산이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행한다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(address mapping table)을 사용한다. 일반적으로, 어드레스 맵핑 테이블은 비교적 고가인 SRAM으로 구성된다.
FTL의 어드레스 맵핑 기능으로 인해, 호스트는 플래시 메모리 장치를 하드디스크 드라이버(또는 SRAM)로 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다. FTL은 호스트 시스템으로부터 독립된 하드웨어 형태로 구현될 수도 있고, 호스트 시스템 내부의 디바이스 드라이버 형태로 구현될 수도 있다.
도 1은 FTL에서 이루어지는 블록 어드레스 맵핑(Block Address Mapping)의 일 예로써 버츄얼 블록 사상법(Virtual Block Mapping)을 간략히 보여주는 도면이다. 도 1을 참조하면, 버츄얼 블록 사상법은 호스트로부터 제공되는 논리 어드레스와 플래시 메모리의 물리적 어드레스의 정렬 순서가 일치하지 않는다. FTL은 호스트로부터의 논리 어드레스에 대해서, 비정상적인 블록(Bad Block)을 배제하고 정상적인 블록들에 대해서 임의로 맵핑한다. 비정상적인 블록(Bad Block)에 대해서는 예비적으로 형성된 예비 블록으로 그 어드레스 할당이 넘겨진다.
상술한 버츄얼 블록 사상법에 따르면, 플래시 메모리의 열화 작용을 균등화 시키기 위한 블록 맵핑에 대한 요구가 발생한다. 이러한 서열화 작업을 소모 레벨링(Wear Leveling)이라 한다. 소모 레벨링은 각 블록에 대해서 소거 횟수(Erase Count)에 대한 정보를 저장하고, 횟수가 적은 수의 블록을 우선적으로 호스트로부터의 논리적 블록 어드레스에 할당하는 방식으로 이루어진다.
또한, 플래시 메모리 장치는 동작 중에 심각한 오류의 발생으로 재부팅(Re-booting) 해야 하는 상황이 발생할 수 있다. 대표적으로, 예상치 못한 전원 오류(일례로 정전과 같은 상황)를 예로 들 수 있다. 전원 오류의 발생시에 상술한 블록의 맵핑 정보를 복구하는 것으로 데이터의 복구를 진행한다. 그러나 일반적으로 이러한 전원 오류 이후의 복구를 위해서는 재부팅(Re-booting) 후에 모든 블록들을 스캐닝하여 각각의 블록들에 포함되는 특정 영역에 저장된 맵핑 정보를 독출하고, 램(RAM)에서 구성되는 맵핑 테이블을 복구한다. 이러한 복구 방법에 의하면, 각각의 블록들에 포함된 맵핑 정보를 독출하고 독출된 데이터를 이용하여 맵핑 정보를 복구하는데에는 필연적으로 시간의 소모가 뒤따른다. 따라서, 심각한 전원 오류의 발생시에도 신속하게 전원 오류이전의 데이터들을 복구할 수 있는 플래시 메모리 장치 및 데이터 복구 방법이 요구되고 있다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 예상치 못한 전원 오류의 발생시 고속으로 맵핑 데이터를 복구할 수 있는 시스템 및 그 방법을 제공하는 데 있다.
상술한 제반 목적을 달성하기 위하여, 소모 레벨링(Wear leveling) 방식에 따른 어드레스 사상법을 사용하고, 플래시 메모리 장치를 사용하는 시스템의 블록 맵핑 테이블의 복구 방법은: (a) 플래시 메모리 장치로부터 상기 소모 레벨링을 위한 블록 정렬 정보(WSBL)를 읽어 오는 단계; (b) 상기 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하는 단계; 및 (c) 상기 블록 정렬 정보(WSBL)에 포함되는 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 할당 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보는 상기 플래시 메모리 장치의 블록들에 대한 소거 횟수정보를 포함한다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보는 상기 소거 횟수가 적은 블록들로부터 증가하는 순서로 정렬되며, 호스트로부터 제공되는 논리 블록 어드레스에 소거 횟수가 적은 블록들이 우선적으로 할당된다.
바람직한 실시예에 있어서, 상기 블록 맵핑 테이블은 상기 시스템의 랜덤 액세스 메모리에 구성된다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보는, 소거 카운트 순서에 따라 정렬되며, 논리 블록 어드레스에 대해서 이미 할당된 할당 블록들의 정보; 소거 카운트 순서에 따라 정렬되며, 소거된 블록들에 대한 정보를 저장하는 프리 블록 정보; 및 중복 또는 무효 데이터가 저장되는 가비지 블록에 대한 정보를 포함한다.
바람직한 실시예에 있어서, 상기 (C)단계는 상기 가비지 블록들에 대해서는 수행되지 않는다.
바람직한 실시예에 있어서, 상기 가비지 블록들의 스페어 영역에는 가비지 블록임을 지시하는 가비지 마크가 표시된다.
상술한 제반 목적을 달성하기 위한 본 발명의 소모 레벨링(Wear-leveling)을 위한 어드레스 사상법에 따라 블록 정열 정보(WSBL;Wear-leveling Sorted Block List)를 사용하는 메모리 시스템은: 상기 블록 정렬 정보를 저장하는 불휘발성 메모리 장치; 중앙 처리 장치; 및 상기 중앙 처리 장치로부터 제공되는 논리 블록 어드레스에 대응하는 상기 불휘발성 메모리 장치의 물리 블록 어드레스가 할당되도록 구성되는 블록 맵핑 테이블을 저장하는 램을 포함하되, 전원 오류에 따른 재부팅시, 상기 중앙 처리 장치는 상기 불휘발성 캐시 메모리의 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하고, 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신한다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보(WSBL)는 상기 불휘발성 메모리 장치에 포함되는 블록들을 소거 카운트 수에 따라 정렬된 어드레스 정보를 포함하되, 상기 어드레스 정보는, 유효한 데이터가 저장되는 블록들에 대한 블록 어드레스 정보인 할당 블록 정보(Alloc)와, 소거된 블록들에 대한 블록 어드레스 정보인 소거 블록 정보(Free) 및 무효한 데이터가 저장되는 블록들에 대한 블록 어드레스 정보가 저장되는 가비지 블록 정보(Garbage)를 포함한다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보(WSBL)는 가비지 컬렉 션(Garbage Collection) 동작시에 상기 램으로부터 상기 불휘발성 메모리 장치에 업데이트된다.
바람직한 실시예에 있어서, 상기 블록 맵핑 테이블은 상기 불휘발성 메모리 장치의 데이터 구조를 포함하는 트리 구조체에 의해서 정의된다.
바람직한 실시예에 있어서, 상기 트리 구조체는 주기적으로 상기 불휘발성 메모리 장치에 저장된다.
바람직한 실시예에 있어서, 상기 불휘발성 메모리 장치는 낸드형 플래시 메모리를 포함한다.
바람직한 실시예에 있어서, 상기 불휘발성 메모리 장치는 원낸드(OneNAND)형 플래시 메모리를 포함한다.
바람직한 실시예에 있어서, 상기 외부로부터 데이터의 입출력 동작을 수행하는 입출력 장치를 더 포함한다.
바람직한 실시예에 있어서, 상기 입출력 장치, 상기 중앙 처리 장치, 상기 램 및 상기 불휘발성 메모리 장치 간을 연결하는 시스템 버스를 더 포함한다.
상술한 제반 목적을 달성하기 위한 본 발명의 소모 레벨링(Wear-leveling)을 위한 어드레스 사상법에 따라 블록 정열 정보(WSBL;Wear-leveling Sorted Block List)를 사용하는 불휘발성 캐시 메모리를 사용하는 시스템은: 중앙 처리 장치; 데이터를 저장하며, 상기 불휘발성 캐시 메모리를 갖는 하이브리드 하드 디스크 장치; 및 상기 중앙 처리 장치로부터 제공되는 논리 블록 어드레스에 대응하는 상기 불휘발성 캐시 메모리의 물리 블록 어드레스가 할당되도록 구성되는 블록 맵핑 테 이블을 저장하는 램을 포함하되, 전원 오류에 따른 재부팅시, 상기 중앙 처리 장치는 상기 불휘발성 캐시 메모리의 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하고, 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신한다.
바람직한 실시예에 있어서, 상기 하이브리드 하드 디스크 장치는, 상기 불휘발성 캐시 메모리의 캐시 데이터가 저장되는 자기 디스크; 상기 외부와 인터페이싱하고, 상기 불휘발성 캐시 메모리의 캐시 데이터를 상기 자기 디스크로 플러시 하도록 제어하는 디스크 제어기를 포함한다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보(WSBL)는 상기 불휘발성 캐시 메모리에 포함되는 블록들을 소거 카운트 수에 따라 정렬된 어드레스 정보를 포함하되, 상기 어드레스 정보는, 유효한 데이터가 저장되는 블록들에 대한 블록 어드레스 정보인 할당 블록 정보(Alloc)와, 소거된 블록들에 대한 블록 어드레스 정보인 소거 블록 정보(Free) 및 무효한 데이터가 저장되는 블록들에 대한 블록 어드레스 정보가 저장되는 가비지 블록 정보(Garbage)를 포함한다.
바람직한 실시예에 있어서, 상기 블록 정렬 정보(WSBL)는 상기 플러시 동작 또는 가비지 컬렉션(Garbage Collection) 동작시에 상기 램으로부터 상기 불휘발성 캐시 메모리에 업데이트된다.
바람직한 실시예에 있어서, 상기 블록 맵핑 테이블은 상기 불휘발성 캐시 메모리의 데이터 구조를 포함하는 트리 구조체에 의해서 정의되는 것을 특징으로 한 다.
바람직한 실시예에 있어서, 상기 트리 구조체는 주기적으로 상기 불휘발성 캐시 메모리에 업데이트된다.
바람직한 실시예에 있어서, 상기 불휘발성 캐시 메모리는 낸드(NAND)형 플래시 메모리를 포함한다.
바람직한 실시예에 있어서, 상기 불휘발성 캐시 메모리는 원낸드(OneNAND)형 플래시 메모리를 포함한다.
바람직한 실시예에 있어서, 상기 외부로부터 데이터의 입출력 동작을 수행한다.
바람직한 실시예에 있어서, 상기 입출력 장치, 상기 중앙 처리 장치, 상기 램 그리고 상기 하이브리드 하드 디스크 장치 간을 연결하는 시스템 버스를 더 포함한다.
(실시예)
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 2는 본 발명에 따른 플래시 메모리 장치의 전원 오류 발생 이후에 이루어지는 맵핑 테이블의 복구 방법을 간략히 보여주는 블록도이다. 도 2를 참조하면, 전원 오류 이후의 재부팅시, 본 발명에 따른 맵핑 테이블의 복구는 플래시 메모리에 저장된 소모 레벨링 정보(WSBL)를 이용한다. 일차적으로는 소모 레벨링 정 보(WSBL)에 포함되는 유효한 데이터가 저장되는 할당 블록들의 어드레스 정보가 복구된다. 이후에는 소모 레벨링 정보에 포함되는 소거된 블록들에 대한 어드레스 정보를 참조하여, 대응하는 블록들의 스페어 영역에 기록된 어드레스 맵핑 정보들이 검색되어 전원 오류가 발생한 시점의 제반 데이터 구조가 고속으로 복구된다.
블록 맵핑 테이블(10)은 일반적으로 모바일 기기나 컴퓨터 등을 포함하는 시스템의 램(RAM)에서 구성된다. 그리고 주기적으로 또는 호스트의 명령에 의해서 플래시 메모리로 저장된다. 호스트로부터 제공되는 논리 블록 어드레스(LBN)는 블록 맵 테이블(10)에서 맵핑된 물리적 블록 어드레스(PBN)로 할당된다.
플래시 메모리의 저장 영역(Flash Storage Area)은 일반적으로 소거의 단위인 블록들로 이루어진다. 블록들은 플래시 메모리 장치의 기입 단위가 되는 페이지(Page)들로 구성된다. 블록들은 또한 파티션 정보(Partition Information) 영역(20), 메타 데이터(Meta Data) 영역(30), 유저 데이터(User Data) 영역(40)으로 구분될 수 있다. 파티션 정보 영역(20)에는 플래시 메모리의 전체 파일들의 파티션 정보(Partition Information) 및 오류 블록의 위치가 저장된다. 메타 데이터 영역(30)은 호스트로부터 제공되는 논리적 어드레스와 플래시 메모리의 물리적 어드레스에 대한 맵핑 정보, 소모 레벨링 정보(WSBL) 등이 포함된다. 유저 데이터 영역(40)에는 호스트로부터 입력되는 데이터가 저장되는 영역이다. 상술한 각 영역들을 구성하게 되는 블록은 각각의 데이터가 저장되는 메인 영역(Main Area)과 메인 영역의 데이터에 대한 정보가 저장되는 스페어 영역(Spare Area)을 포함한다.
이하에서는 플래시 메모리 장치가 하드 디스크 드라이버(HDD)의 캐시 메모리 로 사용되는 경우를 예로 들어서 본 발명의 맵핑 테이블의 복구 방법을 설명하기로 한다. 또한, 플래시 메모리 장치는 각 블록들에 흩어져 있는 데이터들을 모아서 하나의 블록에 채우는 가비지 컬렉션(Garbage Collection) 동작을 지원하고 있다. 그리고 캐시로 사용되는 플래시 메모리 장치로부터 캐시 데이터를 디스크로 저장하는 플러시(Flush) 동작이 있다. 상술한 블록 맵핑 테이블(10)은 플래시 메모리 장치를 장착하는 시스템의 램(RAM) 상에서 구성되며, 파일 시스템을 구성하게 된다. 이러한 블록 맵핑 테이블(10)은 그 설정이 변할 때마다 플래시 메모리 장치의 특정 영역으로 저장하여 오류가 발생하는 경우 복구를 위한 데이터로 활용된다. 그러나 블록 맵핑 테이블(10)의 변경시마다 매번 플래시 메모리 장치로 변경 내용을 저장하는 것은 많은 오버헤드를 발생시킨다. 하나의 블록에 대한 소거 동작이 있을 경우에도 블록 맵 테이블은 설정이 변하게 된다. 따라서, 본 발명은 이러한 오버헤드의 발생을 줄이기 위하여 블록 맵 테이블의 업데이트를 변경할 수 있다. 본 발명에서는 이러한 블록 맵 테이블을 램 상에서 업데이트 한다. 그리고 상술한 가비지 컬렉션(Garbage Collection)이나 플러시(Flush)의 발생시에만 플래시 메모리 장치에 있는 소모 레벨링 블록 리스트(Wear Sorted Block List;이하 WSBL이라 칭함)를 업데이트 한다. 본 발명의 시스템은 상술한 WSBL을 이용하여 일차적으로 맵핑 테이블을 복구하고, 전원 오류 이전 WSBL의 업데이트 이후에 갱신된 맵핑 정보는 WSBL의 소모 카운트를 참조하여 대응하는 블록에 직접 액세스하여 맵핑 정보를 독출하는 스캐닝을 통하여 복구한다.
이상의 본 발명에 따른, 전원 오류 발생에 따르는 블록 맵핑 테이블(10)의 복구는 상대적으로 업데이트 횟수가 적은 WSBL을 참조하여 이루어진다. WSBL을 참조하여 WSBL이 업데이트된 시점의 블록 맵핑 테이블이 일차적으로 복구된다. 그리고 WSBL의 정보를 참조하여 소거 블록들에 대한 순차적인 스페어 영역의 검색을 실시하여 WSBL의 업데이트 시점으로부터 전원 오류가 발생한 시점까지의 변동된 블록 어드레스 정보가 독출된다. 그리고 독출된 변동된 블록 어드레스 정보를 참조하여 블록 맵핑 테이블(10)은 전원 오류 발생 시점의 상태로 복구될 수 있다.
도 3은 상술한 플래시 메모리의 저장 영역을 간략히 보여주는 도면이다. 도 3을 참조하면, 플래시 메모리의 저장 영역은 파티션 정보 영역(20), 메타 데이터 영역(30) 및 유저 데이터 영역(40)을 포함한다.
파티션 정보 영역(20)에는 하나의 물리적 메모리 영역을 복수의 영역으로 나누어 관리하기 위한 분할 정보가 저장된다. 이러한 파티션 정보는 파일 시스템에 의해서 독출되고 램(RAM)으로 마운트 된다. 또한, 파티션 정보 영역(20)에는 오류 블록들에 대한 정보(Bad Block Info)가 제공되어 블록 맵핑 테이블의 구성시에 마운트(Mount) 된다.
메타 데이터 영역(30)은 메타 데이터 영역의 위치 정보를 가진 테이블 포인터(31) 영역을 포함한다. 그리고 상술한 소모 레벨링 정보(WSBL)가 저장되는 영역이 포함된다. 소모 레벨링 정보 영역(32)에는 각각의 블록들에 대한 할당 정보들이 소거 카운트(Erase Count)를 기준으로 배열되도록 저장된다. 트리 테이블(33)은 플래시 메모리 장치의 블록들의 맵핑 정보, 섹터 어드레스 정보들이 저장된다. 트리 테이블(33)은 실질적으로 상술한 블록 맵핑 테이블(10)을 구성하는 데이터가 된다.
유저 데이터 영역(40)에는 블록 맵핑 테이블(10)에서 할당되는 물리적 어드레스에 대응되는 블록들로 각각의 입력 데이터들이 저장된다. 유저 데이터 영역(40)으로 입력 데이터들이 저장되는 동안 발생하는 가비지 컬렉션이나, 플러시 동작시 상술한 소모 레벨링 정보 영역(32)의 WSBL 및 트리 테이블(33)이 업데이트 된다.
본 발명의 파일 시스템에 따르면, WSBL은 가비지 컬렉션이나 플러시 동작과 같은 동작시에 램 상에서 구성되는 최신 정보로 플래시 메모리에 업데이트 된다. 그리고 트리 테이블(33)은 트리 정보의 변경이 발생하는 경우, 램 상에서는 즉시 업데이트 되지만, 플래시 메모리로는 주기적으로 변경된 정보만 업데이트 된다. 램 상에 구성되는 블록 맵핑 테이블을 복구하는 것은 트리 테이블(33)을 전원 오류가 발생한 시점의 상태로 복구하는 것이다. 본 발명의 메모리 장치는 전원 오류의 발생시에 WSBL을 이용하여 일차적으로 트리 테이블(33)을 복구하고, 이어서 최소한의 블록 스캐닝 동작만으로 전원 오류 이전의 램 상에 구성된 트리 테이블(33)로 복구할 수 있다.
도 4는 도 3의 본 발명의 WSBL의 구조를 간략히 보여주는 도면이다. 도 4를 참조하면 WSBL은 할당 블록 정보 영역(Allocation Area : Alloc)과 프리 블록 정보 영역(Free Area : Free) 그리고 가비지 블록 정보 영역(Garbage)을 포함한다.
할당 블록 정보 영역(320)에는 호스트로부터 전달되는 데이터가 이미 프로그램되어 데이터의 저장이 완료된 블록에 대한 정보가 저장된다. 이때의 저장 방식은 소거 카운트(Erase Count: 이하에서는 EC)의 순서에 따른다. 즉 소거 카운트(EC)가 낮은 블록일수록 호스트로부터 제공되는 논리 블록 어드레스(LBN)에 우선하여 할당되도록 우선순위를 갖는다. 할당 블록 정보 영역(320)에 포함되는 블록에는 각각의 블록에 프로그램된 데이터는 유효한 데이터임을 나타내도록 (0xAA)로 WSBL_마크(WSBL_mark)가 표시된다.
프리 블록 정보 영역(321)에는 소거 상태에 존재하는 블록들, 즉 프리 블록들에 대한 제반 정보가 소거 카운트(EC)의 크기에 의거하여 정렬되도록 설정된다. 물리적 어드레스(PBN)는 소거 카운트(EC)가 낮은 블록이 호스트로부터 제공되는 논리 블록 어드레스(LBN)에 우선적으로 할당된다. 프리 블록들(Free Block)에는 (0xA5)로 WSBL_마크(WSBL_mark)가 표시된다.
가비지 블록 정보 영역(322)에는 시스템에서 발생하는 가비지 컬렉션(Garbage Collection)을 위해 지정되는 블록들, 즉 가비지 블록들에 대한 정보들이 저장된다. 가비지 컬렉션(Garbage Collection)은 더 이상 사용하지 않는 데이터 객체들을 탐지 및 제거하는 동작이다. 가비지 컬렉션은 파일 시스템에 의해서 사용 가능한 메모리가 특정 임계치로 떨어지면 자동으로 실행된다. 자동적으로 실행되는 가비지 컬렉션에 의해서 전체 데이터 객체들은 상호 연관성이 있는지의 여부가 검색되며, 플래시 메모리 내의 캐시 데이터와 연관성이 없거나 중복되는 데이터 또는 블록은 가비지 마크(0x55)로 마킹된다. 이때 가비지 마킹된 데이터의 위치가 페이지 단위 또는 블록 단위의 데이터가 될 수 있다. 가비지 마크(0x55)에 의해서 표시된 데이터는 불필요한 데이터이고, 이것은 시스템에 반환되는 메모리 영역임을 나타낸다. 따라서, 가비지 마크(0x55)가 존재하는 영역은 소거되어야 할 영역이다. 가비지 마크(0x55)가 존재하는 블록이 소거되면 프리 블록(또는, 소거 블록)으로 그 마킹이 전환되며, 그 소거 카운트에 따라 외부로부터의 논리 블록 어드레스에 대응하도록 할당될 수 있다.
이상에서 설명된 WSBL의 구성 및 배열을 참조하면, 전원 오류에 의해서 재부팅시, WSBL을 플래시 메모리로부터 독출하면 플러시(Flush)나 가비지 컬렉션이 발생한 시점의 블록 맵핑 정보로 복구될 수 있음을 알 수 있다. WSBL의 할당 블록 정보 영역(320)에는 플러시나 가비지 컬렉션이 발생한 시점에 논리 블록 어드레스들에 대한 물리 블록 어드레스가 소거 카운트 순으로 정렬된 정보가 존재하기 때문이다. 그러나 전원 오류가 플러시나 가비지 컬렉션 동작 이후에 발생하는 경우, WSBL만으로는 전원 오류 시점의 맵핑 테이블의 완전한 복구가 될 수 없다. 즉, 추가적으로 WSBL의 프리 블록 정보 영역(321)의 소거 블록들을 소거 카운트 순서대로 검색해야 완전한 블록 맵핑 테이블의 복구가 가능하다.
도 5는 모든 파일들 또는 블록들의 어드레스 정보(또는 맵핑 정보)가 저장되는 트리 영역(33)에 대한 구성을 간략히 보여주는 블록도이다. 도 5를 참조하면, 트리 영역(33)은 플래시 메모리의 파일 시스템에 대한 트리 정보(iTree)가 저장된다. 트리 정보(iTree)는 어드레스 맵핑 정보들을 포함한다. 특히, 트리 정보(iTree)에 의하여 램(RAM) 상에 로드되는 파일 시스템의 계층 구조와 파일 관리를 위한 트리(Tree)가 구성된다. 트리 영역에 저장되는 트리 정보(iTree)에는 시스템을 부팅시키고 다른 파일 시스템을 마운트할 수 있는 상태로 만드는데 필요한 파일들을 포함한다. 이러한 파일들은 시스템의 램(RAM) 상에 로드되어 트리 구조체를 형성하게 된다. 결국, 시스템을 재부팅(Re-booting) 하여 데이터를 복구한다는 것은 램 상에 형성되는 트리 구조체(iTree)를 전원 오류 직전의 트리 구조체로 복원하는 것을 의미한다.
플래시 메모리 장치의 파일 시스템의 트리 정보(iTree)가 저장되는 트리 영역(33)은 시스템의 부팅시에 이전의 정상적인 전원의 차단시에 백업된 트리 정보가 저장되는 백업 영역(331)과 이후에 변경되는 트리 정보들이 저장되는 업데이트 영역들(Update1~UpdateM :332)로 이루어진다. 플래시 메모리 장치는 일회성 프로그램 소자이기 때문에 덮어쓰기 동작이 불가능하다. 따라서, 트리 정보가 변경되는 매 순간마다 트리 영역의 업데이트 영역에 매번 변경된 트리 정보가 기록된다. 일반적으로 업데이트 정보는 페이지 단위로 기록될 수 있으나 이는 본 발명의 일 실시예에 불과하다.
트리 정보의 업데이트 영역(Update1~UpdateM :332)에 프로그램되는 데이터는 램(RAM)에 마운트되는 트리 정보에 대한 변경 정보를 포함한다. 헤드 영역(334)은 헤드 정보임을 나타내는 제반 ID 정보(336), 변수들(337), 업데이트 되는 노드의 수를 나타내는 정보(338) 및 업데이트 되는 노드의 인덱스(339)가 포함된다.
이러한 데이터 구조를 갖는 플래시 메모리 장치의 트리 정보 영역(33)은 최초 블록 맵핑 테이블에 대응하는 트리 정보(iTree)가 플래시 메모리의 트리 정보 영역(331)에 저장된다. 그 이후에 변경되는 트리 정보 영역들이 순차적으로 업데이트 되어 트리 구조체를 구성하게 된다. 그리고 트리 정보 영역에 더 이상 기입할 수 없는 경우, 트리 정보 영역은 소거되고, 램 상에서 형성된 최근 시점의 트리 정 보로 트리 정보 영역(331)에 프로그램된다.
도 6은 본 발명에 따른 WSBL을 이용한 트리 영역(33)의 복구 동작을 설명하는 도면이다. 도 6을 참조하면, 본 발명에 따른 파일 시스템은 전원 오류의 발생시 재부팅되면, WSBL의 할당 블록 정보(320)를 이용하여 트리 영역의 백업 영역(331;도 5 참조)을 복구하고 이후에는 업데이트 영역은 WSBL의 프리 블록 정보 영역(321)을 참조하여 스캐닝하는 것으로 제반 트리 정보 또는 블록 맵핑 테이블을 복구할 수 있다.
시스템이 재부팅되면, 최후에 업데이트된 WSBL이 플래시 메모리 장치로부터 독출되고, WSBL에 기초하여 트리 정보가 복구된다. 도면에서 트리 영역의 백업 영역(331)이 이에 해당된다. WSBL의 독출을 통해서 블록(PBN 27)까지의 트리 영역 데이터들은 모두 복구된다. 그리고 WSBL의 할당 블록 영역(320; Alloc)에 포함되지 않는 나머지 블록들에 대해서 스캐닝 동작을 실시한다. 이러한 동작은 WSBL에 포함되는 프리 블록들을 소거 카운트 수를 참조하여 스캐닝하는 것으로 가능하다. 소거 카운트 순으로 프리 블록들에 대해서 직접 액세스하여 그 스페어 영역에 포함되는 트리 정보를 독출하고 해독하여 WSBL이 최종적으로 업데이트된 이후로부터 전원 오류가 발생하기 이전까지의 트리 정보를 획득한다.
도면에서는 블록 37(Pbn 37)에 대한 스캐닝 동작이 예시적으로 설명되어 있다. 블록의 스캐닝 동작은 블록의 첫 번째 페이지의 스페어 영역에 저장되는 블록 정보를 포함하는 트리 정보일 수 있다. 특히 대응하는 블록의 논리 블록 어드레스, 섹터 정보들이 독출되어 트리 영역의 업데이트 영역(332)이 복구될 수 있다. 이러 한 프리 블록들에 대한 스캐닝 동작은 가비지 블록이 검출될 때까지 진행된다. 모든 프리 블록들에 대한 트리 정보 또는 블록 맵핑 정보가 독출되면, 블록 맵핑 테이블의 복구는 완료된다. 그리고 복구된 블록 맵핑 테이블에 기초하여 파일 시스템의 트리 구조체가 램 마운트될 수 있다.
스캐닝 동작은 플래시 메모리 장치의 블록 정보 영역에 대해서 독출하고 독출된 데이터를 해독하여 가비지 마크의 존재 여부를 판단하는 단계들을 포함한다. 플래시 메모리 장치의 블록 정보 영역에 저장되는 가비지 마크(GM)를 발견할 때까지 스캐닝 동작은 계속된다. 가비지 마크(GM)를 발견하면, 대응하는 블록까지의 맵핑 테이블이 복구된다. 결국, WSBL을 통해서 정전 이전에 일어난 플러시 또는 가비지 컬렉션이 발생한 시점의 블록 맵핑 테이블을 복구한다. 그리고 가비지 컬렉션이나 플러시가 발생한 시점으로부터 전원 오류가 발생한 시점까지의 맵핑 정보는 나머지 블록들에 대한 스캐닝 동작을 통해서 복구된다. 여기서, 프리 블록에 대한 스페어 영역의 스캐닝 동작은 가비지 마크를 검색하는 시점까지 이루어지지만, 프리 블록으로 WSBL_mark(0xA5)가 표시된 블록들에 대해서만 스캐닝을 수행할 수 있다.
도 7은 상술한 맵핑 테이블의 복구 동작을 간략히 설명하는 흐름도이다. 도 7을 참조하면, WSBL을 통한 1차적인 맵핑 테이블의 복구와, 뒤따르는 블록 스캐닝을 통한 나머지 맵핑 정보의 복구 과정이 시간의 흐름에 따라 간략히 설명된다. 블록 맵핑 테이블의 복구 과정이 이하에서 상술한 도면들에 의거하여 설명될 것이다.
예상치 못한 전원 오류에 의해 시스템이 재부팅되면, 파일 관리자(또는 펌웨어)에 의한 데이터 복구 동작이 시작된다. 데이터 복구 동작에 있어서, 블록 맵핑 테이블의 복구 동작이 시작되면, 정전 이전에 최종적으로 업데이트된 WSBL이 플래시 메모리 장치의 WSBL 영역으로부터 독출된다(S10). 독출된 WSBL에 포함된 소모 카운트(Erase Count)를 참조하여 시스템은 WSBL이 업데이트된 시점의 블록 맵핑 테이블을 복구한다. WSBL은 플래시 메모리 장치의 가비지 컬렉션(Garbage Collection)이나, 플러시 동작이 발생하는 시점에 램 상에서 업데이트되고 이후에 플래시 메모리 장치의 메타 데이터 영역에 프로그램된다. 따라서, 시스템은 비정상적인 전원 오류로 인한 재부팅 시에는 WSBL을 독출하도록 설정되어야 할 것이다. WSBL에 지정된 모든 블록들의 소거 카운트의 순서에 따라서, 램 상에서 구성되는 블록 맵핑 테이블이 일차적으로 완성된다(S20). 독출된 WSBL을 참조한 블록 맵핑 테이블의 복구가 완료되면, WSBL에 의해서 지정되지 아니한 물리적 블록들에 대해서 맵핑 정보를 획득하기 위한 스캐닝 동작이 시작된다. 이러한 스캐닝 동작은 WSBL에 의해서 정의되지 않는 블록들에 대하여 블록 정보 영역을 독출하는 것으로 시작된다(S30). WSBL에 의해서 지정되지 않은 물리적 블록의 스페어 영역에 포함되는 블록 맵핑 정보가 독출되고 이는 램 상에서 이루어지는 블록 맵핑 테이블에 추가된다(S40). 각 블록에 대한 블록 정보 영역을 스캐닝하여 가비지 마크가 존재하면 가비지 마크가 존재하는 블록까지 블록 맵핑 테이블의 복구가 이루어진다. 따라서, 가비지 마크가 존재하는 지의 여부가 검출된다(S50). 스캐닝 된 블록에 가비지 마크(GM)가 없는 경우에는 WSBL에서 정의되지 않은 나머지 블록으로 이동하여 스캐닝 동작을 실시한다. 이동된 블록에 대하여 블록 정보 영역에 포함되는 맵핑 데이터를 독출하고 이를 기반으로 램 상에 구성되는 블록 맵핑 테이블을 업데이트한 다(S60). 가비지 마크(GM)가 존재하는 블록이 검출되면, 가비지 마크가 표시된 블록까지의 맵핑 정보를 램 상의 블록 맵핑 테이블에 적용하면 제반 맵핑 테이블의 복구 동작이 완료된다(S70).
도 8은 상술한 맵핑 테이블의 복구 기능을 갖는 컴퓨터 시스템을 간략히 보여주는 블록도이다. 도 8을 참조하면, 본 발명의 컴퓨터 시스템은 중앙처리장치(110)와 램(120), 입출력 장치(130) 및 플래시 메모리 장치를 쓰기 캐시로 사용하는 하이브리드형 하드 디스크(100)를 포함한다. 그리고 예상치 못한 전원 오류로 인한 재부팅시에 시스템은 플래시 메모리 장치를 사용하는 불휘발성 캐시 메모리(102)에 저장된 WSBL을 독출하여 블록 맵핑 테이블을 복구한다. 그리고 WSBL에 의해서 할당되지 못한 블록은 가비지 마크(GM)의 검출 시점까지 스캐닝 되는 것으로 블록 맵핑 데이터는 복구될 수 있다. 하이브리드형 하드 디스크(100)는 일반적으로 시스템 버스(130)로부터 전달되는 명령어, 어드레스 및 데이터들을 제공받는다. 디스크 제어기는 불휘발성 캐시 메모리에 제공되는 데이터들을 일시 저장하고, 불휘발성 캐시 메모리가 더 이상 데이터를 저장할 수 없는 시점에 디스크(103)로 캐시 데이터를 플러시(Flush) 한다. 또한, 디스크 제어기(101)는 중앙처리장치나, 운영 시스템으로부터 제공되는 논리 어드레스에 대응하는 플래시 메모리 장치의 물리 어드레스를 맵핑 한다.
예상치 못한 전원 오류의 발생시, 시스템은 불휘발성 캐시 메모리(102)에 프로그램된 WSBL을 독출하고, WSBL에 포함되는 소거 카운트 값을 이용하여 물리 블록 어드레스를 램(120) 상에서 구성되는 블록 맵핑 테이블에 할당한다. 그리고 WSBL 의해서 지정되지 못한 블록들에 대해서는 블록 정보 영역을 독출한다. 이러한 블록 정보 영역을 독출하는 동작은 가비지 마크가 존재하는 블록이 검출될 때까지 진행된다.
이상에서 설명된 방식으로 블록 맵핑 데이터를 복구하는 시스템은 비정상적인 전원 오류의 발생시에 신속한 복구가 가능하다. 재부팅시, 불휘발성 캐시 메모리(120)에 최종 업데이트된 WSBL에 대한 호출이 이루어지고, 이후에는 WSBL에 따른 블록 맵핑 데이터가 일차적으로 복구된다. 그리고 나머지 블록들에 대한 맵핑 정보는 블록들에 포함되는 가비지 마크의 검출 시까지 진행된다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형할 수 있은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 본 발명의 플래시 메모리 장치의 복구 방법에 따르면, 플래시 메모리 장치의 복구 속도를 높일 수 있는 캐시 메모리 장치를 제공할 수 있다. 또한, 별도의 맵핑 정보를 플래시 메모리 장치에 저장할 필요가 없어 캐시 동작의 오버헤드를 줄일 수 있다.
Claims (26)
- 소모 레벨링(Wear leveling) 방식에 따른 어드레스 사상법을 사용하고, 플래시 메모리 장치를 사용하는 시스템의 블록 맵핑 테이블의 복구 방법에 있어서:(a) 플래시 메모리 장치로부터 상기 소모 레벨링을 위한 블록 정렬 정보(WSBL)를 읽어 오는 단계;(b) 상기 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하는 단계; 및(c) 상기 블록 정렬 정보(WSBL)에 포함되는 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 할당 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신하는 단계를 포함하는 블록 맵핑 테이블의 복구 방법.
- 제 1 항에 있어서,상기 블록 정렬 정보는 상기 플래시 메모리 장치의 블록들에 대한 소거 횟수정보를 포함하는 블록 맵핑 테이블의 복구 방법.
- 제 2 항에 있어서,상기 블록 정렬 정보는 상기 소거 횟수가 적은 블록들로부터 증가하는 순서로 정렬되며, 호스트로부터 제공되는 논리 블록 어드레스에 소거 횟수가 적은 블록 들이 우선적으로 할당되는 블록 맵핑 테이블의 복구 방법.
- 제 1 항에 있어서,상기 블록 맵핑 테이블은 상기 시스템의 랜덤 액세스 메모리에 구성되는 것을 특징으로 하는 블록 맵핑 테이블의 복구 방법.
- 제 1 항에 있어서,상기 블록 정렬 정보는,소거 카운트 순서에 따라 정렬되며, 논리 블록 어드레스에 대해서 이미 할당된 할당 블록들의 정보;소거 카운트 순서에 따라 정렬되며, 소거된 블록들에 대한 정보를 저장하는 프리 블록 정보; 및중복 또는 무효 데이터가 저장되는 가비지 블록에 대한 정보를 포함하는 것을 특징으로 하는 블록 맵핑 테이블의 복구 방법.
- 제 5 항에 있어서,상기 (C)단계는 상기 가비지 블록들에 대해서는 수행되지 않는 것을 특징으로 하는 블록 맵핑 테이블의 복구 방법.
- 제 6 항에 있어서,상기 가비지 블록들의 스페어 영역에는 가비지 블록임을 지시하는 가비지 마크가 표시되는 것을 특징으로 하는 블록 맵핑 테이블의 복구 방법.
- 소모 레벨링(Wear-leveling)을 위한 어드레스 사상법에 따라 블록 정열 정보(WSBL;Wear-leveling Sorted Block List)를 사용하는 메모리 시스템에 있어서:상기 블록 정렬 정보를 저장하는 불휘발성 메모리 장치;중앙 처리 장치; 및상기 중앙 처리 장치로부터 제공되는 논리 블록 어드레스에 대응하는 상기 불휘발성 메모리 장치의 물리 블록 어드레스가 할당되도록 구성되는 블록 맵핑 테이블을 저장하는 램을 포함하되,전원 오류에 따른 재부팅시, 상기 중앙 처리 장치는 상기 불휘발성 캐시 메모리의 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하고, 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신하는 것을 특징으로 하는 메모리 시스템.
- 제 8 항에 있어서,상기 블록 정렬 정보(WSBL)는 상기 불휘발성 메모리 장치에 포함되는 블록들을 소거 카운트 수에 따라 정렬된 어드레스 정보를 포함하되,상기 어드레스 정보는, 유효한 데이터가 저장되는 블록들에 대한 블록 어드 레스 정보인 할당 블록 정보(Alloc)와, 소거된 블록들에 대한 블록 어드레스 정보인 소거 블록 정보(Free) 및 무효한 데이터가 저장되는 블록들에 대한 블록 어드레스 정보가 저장되는 가비지 블록 정보(Garbage)를 포함하는 메모리 시스템.
- 제 9 항에 있어서,상기 블록 정렬 정보(WSBL)는 가비지 컬렉션(Garbage Collection) 동작시에 상기 램으로부터 상기 불휘발성 메모리 장치에 업데이트 되는 것을 특징으로 하는 메모리 시스템.
- 제 10 항에 있어서,상기 블록 맵핑 테이블은 상기 불휘발성 메모리 장치의 데이터 구조를 포함하는 트리 구조체에 의해서 정의되는 것을 특징으로 하는 메모리 시스템.
- 제 11 항에 있어서,상기 트리 구조체는 주기적으로 상기 불휘발성 메모리 장치에 저장되는 것을 특징으로 하는 메모리 시스템.
- 제 8 항에 있어서,상기 불휘발성 메모리 장치는 낸드형 플래시 메모리를 포함하는 것을 특징으로 하는 메모리 시스템.
- 제 8 항에 있어서,상기 불휘발성 메모리 장치는 원낸드(OneNAND)형 플래시 메모리를 포함하는 것을 특징으로 하는 메모리 시스템.
- 제 8 항에 있어서,상기 외부로부터 데이터의 입출력 동작을 수행하는 입출력 장치를 더 포함하는 메모리 시스템.
- 제 15 항에 있어서,상기 입출력 장치, 상기 중앙 처리 장치, 상기 램 및 상기 불휘발성 메모리 장치 간을 연결하는 시스템 버스를 더 포함하는 것을 특징으로 하는 메모리 시스템.
- 소모 레벨링(Wear-leveling)을 위한 어드레스 사상법에 따라 블록 정열 정보(WSBL;Wear-leveling Sorted Block List)를 사용하는 불휘발성 캐시 메모리를 사용하는 시스템에 있어서:중앙 처리 장치;데이터를 저장하며, 상기 불휘발성 캐시 메모리를 갖는 하이브리드 하드 디스크 장치; 및상기 중앙 처리 장치로부터 제공되는 논리 블록 어드레스에 대응하는 상기 불휘발성 캐시 메모리의 물리 블록 어드레스가 할당되도록 구성되는 블록 맵핑 테이블을 저장하는 램을 포함하되,전원 오류에 따른 재부팅시, 상기 중앙 처리 장치는 상기 불휘발성 캐시 메모리의 블록 정렬 정보(WSBL)에 포함되는 할당 블록 정보(Alloc)를 참조하여 상기 블록 맵핑 테이블을 복구하고, 소거 블록 정보(Free)를 참조하여 소거된 블록들의 스페어 영역에 포함되는 어드레스 정보를 검색하고, 상기 검색된 정보에 따라 상기 블록 맵핑 테이블을 갱신하는 것을 특징으로 하는 시스템.
- 제 17 항에 있어서,상기 하이브리드 하드 디스크 장치는,상기 불휘발성 캐시 메모리의 캐시 데이터가 저장되는 자기 디스크;상기 외부와 인터페이싱하고, 상기 불휘발성 캐시 메모리의 캐시 데이터를 상기 자기 디스크로 플러시 하도록 제어하는 디스크 제어기를 포함하는 것을 특징으로 하는 시스템.
- 제 18 항에 있어서,상기 블록 정렬 정보(WSBL)는 상기 불휘발성 캐시 메모리에 포함되는 블록들을 소거 카운트 수에 따라 정렬된 어드레스 정보를 포함하되,상기 어드레스 정보는, 유효한 데이터가 저장되는 블록들에 대한 블록 어드 레스 정보인 할당 블록 정보(Alloc)와, 소거된 블록들에 대한 블록 어드레스 정보인 소거 블록 정보(Free) 및 무효한 데이터가 저장되는 블록들에 대한 블록 어드레스 정보가 저장되는 가비지 블록 정보(Garbage)를 포함하는 시스템.
- 제 19 항에 있어서,상기 블록 정렬 정보(WSBL)는 상기 플러시 동작 또는 가비지 컬렉션(Garbage Collection) 동작시에 상기 램으로부터 상기 불휘발성 캐시 메모리에 업데이트 되는 것을 특징으로 하는 시스템.
- 제 19 항에 있어서,상기 블록 맵핑 테이블은 상기 불휘발성 캐시 메모리의 데이터 구조를 포함하는 트리 구조체에 의해서 정의되는 것을 특징으로 하는 시스템.
- 제 21 항에 있어서,상기 트리 구조체는 주기적으로 상기 불휘발성 캐시 메모리에 업데이트되는 것을 특징으로 하는 시스템.
- 제 17 항에 있어서,상기 불휘발성 캐시 메모리는 낸드(NAND)형 플래시 메모리를 포함하는 것을 특징으로 하는 시스템.
- 제 17 항에 있어서,상기 불휘발성 캐시 메모리는 원낸드(OneNAND)형 플래시 메모리를 포함하는 것을 특징으로 하는 시스템.
- 제 17 항에 있어서,상기 외부로부터 데이터의 입출력 동작을 수행하는 입출력 장치를 더 포함하는 시스템.
- 제 24 항에 있어서,상기 입출력 장치, 상기 중앙 처리 장치, 상기 램 그리고 상기 하이브리드 하드 디스크 장치 간을 연결하는 시스템 버스를 더 포함하는 것을 특징으로 하는 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060104152A KR100843543B1 (ko) | 2006-10-25 | 2006-10-25 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
US11/653,986 US8028120B2 (en) | 2006-10-25 | 2007-01-17 | System with flash memory device and data recovery method thereof |
CN2007101814312A CN101169751B (zh) | 2006-10-25 | 2007-10-25 | 具有闪存设备的***及其数据恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060104152A KR100843543B1 (ko) | 2006-10-25 | 2006-10-25 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080037283A true KR20080037283A (ko) | 2008-04-30 |
KR100843543B1 KR100843543B1 (ko) | 2008-07-04 |
Family
ID=39331749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060104152A KR100843543B1 (ko) | 2006-10-25 | 2006-10-25 | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8028120B2 (ko) |
KR (1) | KR100843543B1 (ko) |
CN (1) | CN101169751B (ko) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100988388B1 (ko) * | 2009-04-20 | 2010-10-18 | 성균관대학교산학협력단 | 플래시 메모리 장치의 성능 향상 방법 및 이를 수행하는 플래시 메모리 장치 |
KR101029704B1 (ko) * | 2008-06-17 | 2011-04-18 | 주식회사 셀픽 | 플래시 메모리 관리 방법 |
KR101067018B1 (ko) * | 2009-04-17 | 2011-09-22 | 서울대학교산학협력단 | 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치 |
KR101390134B1 (ko) * | 2011-01-03 | 2014-04-28 | 애플 인크. | 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리 |
US9164845B2 (en) | 2009-08-25 | 2015-10-20 | Electronics And Telecommunications Research Institute | Partition recovery method and apparatus |
KR101676175B1 (ko) * | 2015-06-16 | 2016-11-14 | 한양대학교 산학협력단 | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 |
KR20190051259A (ko) * | 2017-11-06 | 2019-05-15 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR20210103380A (ko) * | 2020-02-13 | 2021-08-23 | 주식회사 멤레이 | 지속성 지원 장치 및 방법, 그리고 컴퓨팅 장치 |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8935302B2 (en) | 2006-12-06 | 2015-01-13 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume |
US9495241B2 (en) | 2006-12-06 | 2016-11-15 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for adaptive data storage |
WO2008070813A2 (en) | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for a front-end, distributed raid |
JP5026102B2 (ja) * | 2007-02-07 | 2012-09-12 | 株式会社日立製作所 | ストレージ制御装置及びデータ管理方法 |
US8892831B2 (en) * | 2008-01-16 | 2014-11-18 | Apple Inc. | Memory subsystem hibernation |
US8397014B2 (en) * | 2008-02-04 | 2013-03-12 | Apple Inc. | Memory mapping restore and garbage collection operations |
JP5049835B2 (ja) * | 2008-03-27 | 2012-10-17 | 株式会社東芝 | ハイブリッド記録装置 |
WO2009140157A2 (en) * | 2008-05-15 | 2009-11-19 | Board Of Governors Of Higher Education, State Of Rhode Island And Providence Plantations | Systems and methods for recovering information from nand gate array memory systems |
US20090307409A1 (en) * | 2008-06-06 | 2009-12-10 | Apple Inc. | Device memory management |
KR101033465B1 (ko) * | 2008-12-30 | 2011-05-09 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
US8700840B2 (en) * | 2009-01-05 | 2014-04-15 | SanDisk Technologies, Inc. | Nonvolatile memory with write cache having flush/eviction methods |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US20100185806A1 (en) * | 2009-01-16 | 2010-07-22 | Arvind Pruthi | Caching systems and methods using a solid state disk |
US8516219B2 (en) * | 2009-07-24 | 2013-08-20 | Apple Inc. | Index cache tree |
US8468293B2 (en) * | 2009-07-24 | 2013-06-18 | Apple Inc. | Restore index page |
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 |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US9063728B2 (en) * | 2010-03-17 | 2015-06-23 | Apple Inc. | Systems and methods for handling hibernation data |
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 |
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 |
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 |
US8856438B1 (en) | 2011-12-09 | 2014-10-07 | Western Digital Technologies, Inc. | Disk drive with reduced-size translation table |
US8812816B2 (en) * | 2010-03-23 | 2014-08-19 | Apple Inc. | Garbage collection schemes for index block |
CN101833510B (zh) * | 2010-03-29 | 2012-10-10 | 清华大学 | 闪存ftl的地址转换方法 |
US8554741B1 (en) | 2010-06-16 | 2013-10-08 | Western Digital Technologies, Inc. | Timeline application for log structured storage devices |
KR20110139956A (ko) * | 2010-06-24 | 2011-12-30 | 삼성전자주식회사 | 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법 |
US9146875B1 (en) * | 2010-08-09 | 2015-09-29 | Western Digital Technologies, Inc. | Hybrid drive converting non-volatile semiconductor memory to read only based on life remaining |
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 |
US20120239860A1 (en) | 2010-12-17 | 2012-09-20 | Fusion-Io, Inc. | Apparatus, system, and method for persistent data management on a non-volatile storage media |
US9268646B1 (en) | 2010-12-21 | 2016-02-23 | Western Digital Technologies, Inc. | System and method for optimized management of operation data in a solid-state memory |
CN102567210B (zh) * | 2010-12-27 | 2015-01-21 | 厦门市美亚柏科信息股份有限公司 | 闪存芯片数据分析环境重组方法和装置 |
JP2012173778A (ja) * | 2011-02-17 | 2012-09-10 | Sony Corp | 管理装置、および管理方法 |
US9361044B2 (en) | 2011-03-28 | 2016-06-07 | Western Digital Technologies, Inc. | Power-safe data management system |
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 |
US8949508B2 (en) | 2011-07-18 | 2015-02-03 | Apple Inc. | Non-volatile temporary data handling |
US9104614B2 (en) | 2011-09-16 | 2015-08-11 | Apple Inc. | Handling unclean shutdowns for a system having non-volatile memory |
AU2011369945B2 (en) * | 2011-10-27 | 2015-06-25 | Huawei Technologies Co., Ltd. | Method for Controlling Cache Mapping and Cache System |
US9164887B2 (en) | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
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 |
US10019353B2 (en) | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US8898548B1 (en) | 2012-08-24 | 2014-11-25 | Western Digital Technologies, Inc. | Methods, data storage devices and systems having variable size ECC page size |
JP5990430B2 (ja) | 2012-08-29 | 2016-09-14 | 株式会社バッファローメモリ | Ssd(ソリッドステートドライブ)装置 |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9507523B1 (en) | 2012-10-12 | 2016-11-29 | Western Digital Technologies, Inc. | Methods, devices and systems for variable size logical page management in a solid state drive |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
CN103106125B (zh) * | 2013-01-04 | 2016-09-28 | 国网山东省电力公司胶州市供电公司 | 基于存储块修复的闪存存储方法 |
US9396755B2 (en) * | 2013-02-20 | 2016-07-19 | Kabushiki Kaisha Toshiba | Temperature-defined data-storage policy for a hybrid disk drive |
KR102127284B1 (ko) | 2013-07-01 | 2020-06-26 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 관리 방법 |
US9354955B1 (en) | 2014-03-19 | 2016-05-31 | Western Digital Technologies, Inc. | Partial garbage collection for fast error handling and optimized garbage collection for the invisible band |
CN106528440B (zh) * | 2014-03-26 | 2020-06-09 | 青岛海信宽带多媒体技术有限公司 | 一种基于嵌入式***的闪存操作方法及装置 |
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 |
US9990278B2 (en) | 2014-10-20 | 2018-06-05 | Cypress Semiconductor Corporation | Overlaid erase block mapping |
US20160179399A1 (en) * | 2014-12-23 | 2016-06-23 | Sandisk Technologies Inc. | System and Method for Selecting Blocks for Garbage Collection Based on Block Health |
US10474569B2 (en) * | 2014-12-29 | 2019-11-12 | Toshiba Memory Corporation | Information processing device including nonvolatile cache memory and processor |
CN106201911A (zh) * | 2015-05-05 | 2016-12-07 | 苏州携云信息科技有限公司 | 一种基于固态硬盘的缓存加速方法 |
CN104809037B (zh) * | 2015-05-13 | 2018-04-13 | 深圳芯邦科技股份有限公司 | eMMC基于特殊页的快速启动方法及装置 |
US20180189144A1 (en) * | 2015-06-16 | 2018-07-05 | Iucf-Hyu (Industry-University Cooperation Foundation Hanyang University) | Apparatus and method for memory storage to protect data-loss after power loss |
US9785507B2 (en) | 2015-07-30 | 2017-10-10 | International Business Machines Corporation | Restoration of consistent regions within a streaming environment |
KR102501751B1 (ko) | 2015-09-22 | 2023-02-20 | 삼성전자주식회사 | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 |
CN105589767B (zh) * | 2015-12-21 | 2018-07-31 | 北京时代民芯科技有限公司 | 一种用于nand flash的***掉电保护实现方法 |
US9940261B2 (en) | 2016-05-05 | 2018-04-10 | Western Digital Technology, Inc. | Zoning of logical to physical data address translation tables with parallelized log list replay |
CN107544913B (zh) * | 2016-06-29 | 2021-09-28 | 北京忆恒创源科技股份有限公司 | 一种ftl表快速重建方法与装置 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
CN106897228A (zh) * | 2017-02-20 | 2017-06-27 | 山东威尔数据股份有限公司 | 一种NOR‑Flash哈希表存储方法及装置 |
US10101942B1 (en) * | 2017-04-17 | 2018-10-16 | Sandisk Technologies Llc | System and method for hybrid push-pull data management in a non-volatile memory |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20180128588A (ko) * | 2017-05-24 | 2018-12-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10649661B2 (en) * | 2017-06-26 | 2020-05-12 | Western Digital Technologies, Inc. | Dynamically resizing logical storage blocks |
KR102384773B1 (ko) | 2017-10-12 | 2022-04-11 | 삼성전자주식회사 | 스토리지 장치, 컴퓨팅 시스템, 그리고 그것의 디버깅 방법 |
KR20190107504A (ko) * | 2018-03-12 | 2019-09-20 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
KR20190134034A (ko) * | 2018-05-24 | 2019-12-04 | 에스케이하이닉스 주식회사 | 복구 가능한 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
US11860947B2 (en) * | 2019-01-31 | 2024-01-02 | International Business Machines Corporation | Deleted data restoration |
KR20210044564A (ko) | 2019-10-15 | 2021-04-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 가비지 컬렉션 방법 |
US11656967B2 (en) | 2020-02-13 | 2023-05-23 | MemRay Corporation | Method and apparatus for supporting persistence and computing device |
CN111949220B (zh) * | 2020-09-03 | 2023-12-08 | 合肥沛睿微电子股份有限公司 | 存储设备异常断电恢复方法及存储设备 |
KR20220066688A (ko) | 2020-11-16 | 2022-05-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
CN113096713B (zh) * | 2021-04-12 | 2024-05-07 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06150673A (ja) * | 1992-11-12 | 1994-05-31 | Casio Electron Mfg Co Ltd | 不揮発メモリのアクセス制御装置 |
JP3313576B2 (ja) * | 1996-04-25 | 2002-08-12 | エヌイーシービューテクノロジー株式会社 | メモリアクセス制御方法及び装置 |
DE60116504T2 (de) | 2000-09-29 | 2006-07-13 | Nsk Ltd. | Lagereinheit für radantrieb |
JP3675375B2 (ja) | 2001-07-25 | 2005-07-27 | ソニー株式会社 | 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法 |
KR100449708B1 (ko) * | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
DE10227255B4 (de) | 2002-06-19 | 2008-06-26 | Hyperstone Gmbh | Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers |
US6985992B1 (en) * | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
JP4266742B2 (ja) | 2003-08-04 | 2009-05-20 | Necディスプレイソリューションズ株式会社 | フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム |
JP2005168652A (ja) | 2003-12-09 | 2005-06-30 | Sanyo Electric Co Ltd | 洗濯機 |
KR100704618B1 (ko) | 2004-01-19 | 2007-04-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 복구 장치 및 방법 |
US7149866B2 (en) * | 2004-06-04 | 2006-12-12 | International Business Machines Corporation | Free item distribution among multiple free lists during garbage collection for more efficient object allocation |
US7558906B2 (en) * | 2005-08-03 | 2009-07-07 | Sandisk Corporation | Methods of managing blocks in nonvolatile memory |
US20080005462A1 (en) * | 2006-06-30 | 2008-01-03 | Mosaid Technologies Incorporated | Method of configuring non-volatile memory for a hybrid disk drive |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
-
2006
- 2006-10-25 KR KR1020060104152A patent/KR100843543B1/ko active IP Right Grant
-
2007
- 2007-01-17 US US11/653,986 patent/US8028120B2/en active Active
- 2007-10-25 CN CN2007101814312A patent/CN101169751B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101029704B1 (ko) * | 2008-06-17 | 2011-04-18 | 주식회사 셀픽 | 플래시 메모리 관리 방법 |
KR101067018B1 (ko) * | 2009-04-17 | 2011-09-22 | 서울대학교산학협력단 | 가비지 컬렉션 수행 방법 및 상기 방법을 이용한 플래시 메모리 장치 |
KR100988388B1 (ko) * | 2009-04-20 | 2010-10-18 | 성균관대학교산학협력단 | 플래시 메모리 장치의 성능 향상 방법 및 이를 수행하는 플래시 메모리 장치 |
US9164845B2 (en) | 2009-08-25 | 2015-10-20 | Electronics And Telecommunications Research Institute | Partition recovery method and apparatus |
KR101390134B1 (ko) * | 2011-01-03 | 2014-04-28 | 애플 인크. | 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리 |
KR101676175B1 (ko) * | 2015-06-16 | 2016-11-14 | 한양대학교 산학협력단 | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 |
KR20190051259A (ko) * | 2017-11-06 | 2019-05-15 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR20210103380A (ko) * | 2020-02-13 | 2021-08-23 | 주식회사 멤레이 | 지속성 지원 장치 및 방법, 그리고 컴퓨팅 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN101169751B (zh) | 2012-07-04 |
US8028120B2 (en) | 2011-09-27 |
KR100843543B1 (ko) | 2008-07-04 |
CN101169751A (zh) | 2008-04-30 |
US20080104308A1 (en) | 2008-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100843543B1 (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
USRE46404E1 (en) | Flash memory management method | |
US8312204B2 (en) | System and method for wear leveling in a data storage device | |
US8898371B2 (en) | Accessing logical-to-physical address translation data for solid state disks | |
JP5198245B2 (ja) | メモリシステム | |
JP5317690B2 (ja) | メモリシステム | |
US7191306B2 (en) | Flash memory, and flash memory access method and apparatus | |
EP2570927B1 (en) | Handling unclean shutdowns for a system having non-volatile memory | |
US8756458B2 (en) | Mount-time reconciliation of data availability | |
US20190369892A1 (en) | Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables | |
KR100526178B1 (ko) | 플래시 메모리 액세스 장치 및 방법 | |
JP2005242897A (ja) | フラッシュディスク装置 | |
US8650436B2 (en) | Systems and methods for recovering information from NAND gates array memory systems | |
CN115705152A (zh) | 使用存储器内日志在非易失性存储器装置中的元数据管理 | |
EP2264602A1 (en) | Memory device for managing the recovery of a non volatile memory | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
CN115705153A (zh) | 有条件更新和延迟的查找 | |
JP2008047155A (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
JP2008112455A (ja) | メモリカード | |
CN113377282B (zh) | 数据存储装置与数据处理方法 |
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 | ||
FPAY | Annual fee payment |
Payment date: 20130531 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140530 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150601 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160531 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20190530 Year of fee payment: 12 |