[go: up one dir, main page]

KR100654344B1 - 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 - Google Patents

플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 Download PDF

Info

Publication number
KR100654344B1
KR100654344B1 KR1020030050923A KR20030050923A KR100654344B1 KR 100654344 B1 KR100654344 B1 KR 100654344B1 KR 1020030050923 A KR1020030050923 A KR 1020030050923A KR 20030050923 A KR20030050923 A KR 20030050923A KR 100654344 B1 KR100654344 B1 KR 100654344B1
Authority
KR
South Korea
Prior art keywords
block
data
flash memory
stored
logical
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020030050923A
Other languages
English (en)
Other versions
KR20050011869A (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 KR1020030050923A priority Critical patent/KR100654344B1/ko
Publication of KR20050011869A publication Critical patent/KR20050011869A/ko
Application granted granted Critical
Publication of KR100654344B1 publication Critical patent/KR100654344B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 플래시 메모리를 이용하는 기억장치 및 그 기억장치의 에러 복구 방법을 개시한다.
본 발명의 플래시 메모리를 이용한 기억장치는 플래시 메모리에 저장될 데이터 및 외부로 출력될 데이터를 임시 저장하는 버퍼, 플래시 메모리에 저장될 데이터의 논리적 블럭주소(Logical Block Address)와 이에 대응되는 플래시 메모리의 물리적 블럭주소(Physical Block Address)의 매핑정보를 저장하는 블럭매핑테이블, 및 블럭매핑테이블의 매핑정보에 따라 플래시 메모리에 대한 데이터 리드 및 라이트를 제어하며, 버퍼의 데이터로 플래시 메모리의 제 1 블럭을 갱신시 제 2 블럭을 할당받아 갱신할 데이터와 상기 제 2 블럭에 대응되는 논리적 블럭번호를 라이트하는 메모리 제어부를 구비하여, 제 2 블럭에 대한 데이터 라이트가 정상적으로 완료된 경우에만 제 1 블럭의 데이터를 삭제함으로써, 플래시 메모리에서 메타 데이터 영역에 대한 데이터 갱신시 에러가 발생하여도 이전의 데이터를 용이하게 복원할 수 있도록 해준다.

Description

플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법{Memory device using flash memory and error correction method the same}
도 1은 본 발명에 따른 기억장치의 구성을 나타내는 구성도.
도 2는 본 발명에 따른 에러 복구를 위한 전처리 과정으로서 플래시 메모리에 데이터를 라이트하는 과정을 설명하기 위한 순서도.
도 3은 새로 할당받은 블럭에 데이터를 라이트 하는 원리를 설명하기 위한 개념도.
도 4는 도 2의 데이터 라이트 과정 중 에러가 발생하는 경우 이를 복구하는 과정을 설명하기 위한 순서도.
본 발명은 플래시 메모리(Flash Memory)에 관한 것으로서, 보다 상세하게는 플래시 메모리를 디스크 장치로 사용하는 시스템에서 플래시 메모리의 메타 데이터 영역에 대한 데이터 라이트시 발생되는 에러를 용이하게 복구할 수 있도록 해주는 기억장치 및 그 에러 복구 방법에 관한 것이다.
플래시 메모리는 EEPROM(Electrically erasable programmable read-only memory)의 변형된 형태로 일반적인 EEPROM과는 달리 블록단위로 데이터를 삭제하거나 수정한다. 이러한 플래시 메모리는 PC카드(PCMCIA)로서 하드디스크 대용으로 사용되기도 하는데, 하드디스크와 달리 기계적인 운동부분이 없어 하드디스크에 비해 전력소모가 매우 적어 노트북 컴퓨터과 같은 휴대형 정보기기들에 많이 이용되고 있다.
플래시 메모리에 데이터를 라이트하고자 할 때, 플래시 메모리의 특성상 라이트하고자 하는 영역에 이미 데이터가 저장되어 있으면 해당 영역이 포함된 블럭을 리라이트전에 삭제하여야 한다. 즉, 플래시 메모리에서는 일정 영역(블럭)에 한번 데이터를 저장하고 같은 영역에 새로운 데이터를 리라이트(갱신) 할 때, 먼저 해당 영역을 포함하는 블럭의 데이터를 삭제하고 나서 해당 블럭에 데이터를 라이트하게 된다.
하지만, 데이터 라이트 중 전원의 공급이 갑자기 끊어지거나 기타 충격으로 인해 섹터 또는 블럭 단위의 에러가 발생하는 경우 이에 대한 에러 복구에 어려움이 있었다. 특히, 실제 사용자 데이터를 저장하는 일반 데이터 영역이 아닌 파일정보를 저장하는 메타 데이터 영역에 대한 라이트(데이터 갱신) 중에 이러한 에러가 발생하게 되면, 디스크를 인식하지 못하게 되어 시스템이 제대로 부팅되지 않는 상황이 발생할 수 도 있다. 더욱이, 이러한 문제가 발생되면 디스크를 다시 포맷해서 사용해야 되는데 그렇게 되면 기존에 저장되어 있던 다른 데이터들도 삭제되므로 중요한 데이터가 사라질 수 있는 심각한 상황이 발생할 수 도 있게 된다.
따라서, 상술된 문제를 해결하기 위한 본 발명의 목적은 플래시 메모리에 대한 데이터 라이트 방법을 개선하여 플래시 메모리의 메타 데이터 영역에 대한 데이터 갱신 중 에러가 발생하더라도 용이하게 시스템을 원래대로 복구할 수 있도록 하는데 있다.
위와 같은 목적을 달성하기 위한 본 발명의 플래시 메모리를 이용한 기억장치는 상기 플래시 메모리에 저장될 데이터 및 외부로 출력될 데이터를 임시 저장하는 버퍼; 상기 플래시 메모리에 저장될 데이터의 논리적 블럭주소(Logical Block Address)와 이에 대응되는 상기 플래시 메모리의 물리적 블럭주소(Physical Block Address)의 매핑정보를 저장하는 블럭매핑테이블; 및 상기 블럭매핑테이블의 매핑정보에 따라 상기 플래시 메모리에 대한 데이터 리드 및 라이트를 제어하며, 상기 버퍼의 데이터로 상기 플래시 메모리의 제 1 블럭을 갱신시 제 2 블럭을 할당받아 갱신할 데이터와 상기 제 2 블럭에 대응되는 논리적 블럭번호를 라이트하는 메모리 제어부를 구비한다.
본 발명의 플래시 메모리를 이용한 기억장치의 에러 복구 방법은 상기 플래시 메모리의 제 1 블럭에 대한 데이터 갱신시 제 2 블럭을 할당받아 상기 제 2 블럭에 데이터를 라이트하는 제 1 단계; 상기 제 2 블럭에 대한 데이터 라이트 완료시, 상기 제 2 블럭 내 모든 스페어 영역에 상기 제 2 블럭에 대응되는 논리적 블럭번호를 저장하는 제 2 단계; 및 상기 논리적 블럭번호가 상기 모든 스페어 영역에 기재되었는지 여부에 따라 상기 제 2 블럭의 정상 여부를 판단하여 비 정상 블 럭에 대한 에러 복구를 수행하는 제 3 단계를 포함한다.
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.
도 1은 본 발명에 따른 기억장치의 구성을 나타내는 구성도이다.
파일 시스템(10)은 어플리케이션으로부터 요청 받은 파일 관련 작업들을 기억장치(20)로 전달한다.
본 발명의 기억장치(20)는 플래시 메모리(22), 버퍼(24), 블럭매핑테이블(26) 및 메모리 제어부(28)를 구비한다.
플래시 메모리(22)는 리드/라이트가 자유로우며, 전원이 꺼져도 저장된 데이터가 지워지지 않는 비휘발성 메모리로, 통상의 플래시 메모리와 동일하다. 도 1에서는 하나의 블럭(BK 0, BK 1, BK 2, …)이 32 섹터들(SECTOR 1 ∼ SECTOR 32)로 이루어진 플래시 메모리를 예시하고 있다. 이러한 플래시 메모리 내에는 파일정보가 저장되는 메타 데이터 영역과 실제 사용자 데이터가 저장되는 일반 데이터 영역이 구비되며, 각 블럭에는 데이터 저장 영역과 해당 블럭에 대응되는 논리적 블럭주소와, ECC(Error Correction Code) 데이터와, 블럭의 상태 등의 정보가 저장되는 스페어 영역이 구비된다. 더욱이, 본 발명에서는 블럭 내 각 섹터의 스페어 영역에 해당 물리적 블럭에 대응되는 논리적 블럭의 번호를 저장하기 위한 공간(필드)을 구비한다.
버퍼(24)는 파일 시스템(10)과 기억장치(20) 사이에서 송·수신 되는 데이터들을 임시 저장한다.
블럭매핑테이블(26)은 데이터의 리드/라이트를 위해 파일 시스템(10)에서 요구한 논리적 블럭주소(Logical Block Address)와 이에 대응되어 플래시 메모리(22)에서 실제 사용되는 물리적 블럭주소(Physical Block Address)에 대한 매핑정보를 저장한다.
메모리 제어부(28)는 시스템 부팅시 플래시 메모리(22)내 각 블럭들(BK 0, BK 1, BK 2, …)의 스페어 영역에 저장된 블럭 정보를 스캔하여 플래시 메모리(22)에 대한 블럭매핑테이블(26)을 작성하고, 이를 참조하여 플래시 메모리(22)에 대한 리드/라이트를 제어한다. 이때, 메모리 제어부(28)는 파일 시스템(10)으로부터 버퍼(24)로 전송된 데이터를 플래시 메모리(22)의 특정 영역에 라이트시 해당 특정 영역이 포함된 블럭(이하, 제 1 블럭이라 함)에 이미 데이터가 저장되어 있는 경우, 즉 제 1 블럭의 데이터를 갱신하고자 하는 경우, 해당 데이터를 제 1 블럭에 라이트하지 않고 새로운 블럭(이하, 제 2 블럭이라 함)을 할당받아 그곳에 데이터를 라이트한다. 그리고, 메모리 제어부(28)는 데이터 라이트 도중 전원차단이나 충격 등으로 에러가 발생하는 경우 이를 원래의 상태대로 복원하기 위해 제 2 블럭내 각 섹터들(SECTOR1 ∼ SECTOR32)의 스페어 영역에 제 2 블럭에 대응되는 논리적 블럭번호를 저장한다. 메모리 제어부(28)는 제 2 블럭에 대한 데이터 라이트가 정상적으로 완료되면, 블럭매핑테이블(26)을 제 2 블럭으로 매핑한 후 제 1 블럭(BK 0)의 데이터를 삭제한다.
결국, 메모리 제어부(28)는 라이트 하고자 하는 제 1 블럭에 데이터가 저장되어 있는 경우, 제 1 블럭의 데이터를 먼저 삭제하지 않고 제 1 블럭의 데이터가 그대로 저장되어 있는 상태에서 새로운 제 2 블럭을 할당받아 그곳에 데이터를 라이트한다. 그리고, 제 2 블럭에 대한 데이터 라이트가 정상적으로 완료된 후에 비로서 제 1 블럭의 데이터를 삭제하게 된다. 따라서, 제 2 블럭에 대한 데이터 라이트가 정상적으로 완료되지 않으면, 메모리 제어부(28)는 시스템 부팅시 이를 확인하여 에러가 발생된 제 2 블럭의 데이터를 모두 삭제하고 제 1 블럭을 유효블럭으로하여 시스템을 구동시킴으로써 데이터 갱신 이전 상태로 시스템을 복원하게 된다.
도 2는 본 발명에 따른 플래시 메모리의 에러 복구를 위한 전처리 과정으로서 플래시 메모리(22)에 데이터를 라이트하는 과정을 설명하기 위한 순서도이다.
플래시 메모리(22)의 제 1 블럭(BK 0)의 데이터를 갱신하기 위해 파일 시스템(10)으로부터 버퍼(24)로 데이터가 전송되면, 메모리 제어부(28)는 제 1 블럭(BK 0)의 데이터를 삭제하지 않고 플래시 메모리(22)에서 데이터가 저장되어 있지 않은 제 2 블럭을 검색하여 제 2 블럭(BK 2)을 제 1 블럭(BK 0)의 데이터를 갱신하기 위한 블럭으로 새로 할당한다(단계 201).
다음에, 메모리 제어부(28)는 새로 할당된 제 2 블럭(BK 2)의 데이터 영역에 데이터를 라이트한다(단계 202).
도 3은 이처럼 메모리 제어부(28)에서 새로 할당받은 제 2 블럭(BK 2)에 데이터를 갱신하는 방법을 설명하기 위한 개념도이다.
플래시 메모리(22)에서는 블럭 단위로 데이터를 삭제하기 때문에 블럭 중 어느 한 섹터의 내용만 갱신하려 하더라도 해당 섹터가 포함된 블럭 전체를 삭제해야 한다. 따라서, 메모리 제어부(28)는 제 1 블럭(BK 0) 중 일부 섹터 예컨대, 제 3 섹터(SECTOR 3)의 데이터 만을 갱신하고자 하는 경우, 우선 제 1 블럭(BK 0)에서 제 3 섹터(SECTOR 3)를 제외한 나머지 섹터들(SECTOR 1, SECTOR 2, SECTOR 4 ∼ SECTOR 32)을 제 2 블럭(BK 2)의 대응되는 섹터들로 이동시킨다. 다음에, 메모리 제어부(18)는 제 2 블럭(BK 2)의 제 3 섹터(SECTOR 3)에는 버퍼(24)에 저장된 갱신하고자 하는 새로운 데이터를 라이트한다.
그리고, 제 2 블럭(BK 2)에 대한 데이터 라이트가 정상적으로 완료되면, 메모리 제어부(28)는 제 2 블럭(BK 2)의 첫번째 섹터부터 시작하여 블럭내 모든 섹터들의 스페어 영역에 제 2 블럭(BK 2)에 대응되는 논리적 블럭번호를 저장한다(단계 203). 즉, 메모리 제어부(28)는 제 2 블럭(BK 2)에 대한 데이터 라이트가 완료되면, 제 2 블럭 내 모든 스페어 영역에 논리적 블럭번호를 저장하게 된다.
그리고, 만약에 갱신하고자 하는 블럭이 복수인 경우에는, 해당 블럭들을 구별할 수 있는 블럭 인덱스 정보 또는 플래그 정보를 같이 저장한다.
따라서, 전원차단이나 충격발생 등으로 제 2 블럭(BK 2)에 대한 데이터 라이트 도중에 에러가 발생하여 데이터 라이트가 정상적으로 완료되지 못하게 되면, 제 2 블럭(BK 2)의 일부 스페어 영역에는 논리적 블럭번호가 저장되지 못하게 된다. 즉, 가장 마지막 섹터(SECTOR 32)의 스페어 영역에 까지 논리적 블럭번호가 저장되어야만 메모리 제어부(28)는 제 2 블럭(BK 2)을 유효 블럭으로 인식하게 된다.
제 2 블럭(BK 2)의 가장 마지막 스페어 영역에 까지 논리적 블럭번호가 정상적으로 저장되면 제 1 블럭(BK 0)의 데이터는 더 이상 필요치 않게 된다. 따라서, 메모리 제어부(28)는 제 1 블럭(BK 0)을 다른 데이터의 저장을 위한 공간으로 재 사용할 수 있도록 제 1 블럭의(BK 0) 데이터를 바로 삭제하거나 제 1 블럭(BK 0)의 스페어 영역에 삭제 대상 플래그를 세팅하여 향후 삭제될 다른 블럭들과 같이 삭제될 수 있도록 한다(단계 204).
이때, 갱신되는 블럭들이 복수개인 경우에는 삭제 대상 플래그를 세팅하여 블럭들이 모두 정상적으로 쓰기완료되었거나 시스템 부팅시 갱신된 블럭들 모두에 아무 이상이 없는 것으로 판단되었을 경우에만 제 1 블럭들을 삭제한다.
도 4는 도 2의 데이터 라이트 과정 중 에러가 발생하는 경우 이를 복구하는 과정을 설명하기 위한 순서도이다.
시스템 전원이 온(ON)되면, 메모리 제어부(28)는 플래시 메모리(22)의 각 블럭들(BK 0, BK 1, ¨ )을 스캔하여 블럭 정보를 수집하게 된다. 이때, 메모리 제어부(28)는 각 블럭들(BK 0, BK 1, ¨ )의 첫번째 섹터(SECTOR 1)의 스페어 영역에 저장된 논리적 블럭번호와 마지막 섹터(SECTOR 32)의 스페어 영역에 저장된 논리적 블럭번호를 비교한다(단계 301).
이때, 두 논리적 블럭번호가 일치하게 되면 제 2 블럭(BK 2)에 대한 라이트가 정상적으로 완료된 것을 의미하며, 두 논리적 블럭번호가 일치하지 않게 되면 제 2 블럭(BK 2)에 대한 라이트가 정상적으로 완료되지 못했다는 것을 의미한다.
따라서, 첫번째 스페어 영역의 논리적 블럭번호와 마지막 스페어 영역의 논리적 블럭번호가 일치하면 제 2 블럭(BK 2)을 정상 블럭으로 간주하여 제 2 블럭의 데이터를 이용하여 시스템을 동작시키고, 두 논리적 블럭번호가 일치하지 않으면 제 2 블럭(BK 2)을 비 정상 블럭으로 간주하여 이에 대한 에러 복구를 수행한다(단계 302).
즉, 도 2의 데이터 라이트 과정에서, 제 2 블럭(BK 2)에 데이터가 정상적으로 라이트되지 않은 경우에는 제 1 블럭(BK 0)의 데이터가 삭제되지 않고 그대로 남아 있게 되며, 매핑테이블(26)에도 아직 제 1 블럭(BK 0)으로 매핑되어 있는 상 태로 남아 있게 된다. 따라서, 메모리 제어부(28)는 정상적으로 라이트되지 않은 제 2 블럭(BK 2)의 데이터를 모두 삭제함으로써 간단하게 에러가 발생되기 이전의 상태로 시스템을 복원할 수 있게 된다(단계 303).
이에 따라, 메모리 제어부(28)는 데이터 갱신 이전 블럭인 제 1 블럭(BK 0)의 데이터를 이용하여 시스템을 동작시키게 된다.
만약에, 갱신되는 블럭들이 복수개인 경우, 복수개의 블럭들(제 2 블럭들) 중 어느 하나의 블럭이라도 비 정상 블럭으로 판별되면 해당 모든 블럭들을 복구해야 한다. 따라서, 제 2 블럭들 중 어느 하나라도 비 정상인 경우에는 블럭 인덱스 정보 또는 플래그 정보를 이용해 비 정상 블럭 뿐만 아니라 비 정상 블럭과 함께 갱신된 모든 제 2 블럭들을 찾아내고, 찾아낸 제 2 블럭들의 스페어 영역에 저장된 대응되는 제 1 블럭들의 번호를 이용해 모든 제 2 블럭들을 이전 블럭들로 복구한다. 그리고, 제 2 블럭들의 데이터를 모두 삭제한다.
상술한 바와 같이, 본 발명의 에러 복구 방법은 플래시 메모리의 특정 블럭에 대한 데이터 갱신시 해당 특정 블럭의 데이터를 삭제하지 않은 상태에서 새로운 블럭을 할당받아 그 곳에 데이터를 저장한 후, 새로 할당받은 블럭에 대한 데이터 저장이 정상적으로 완료된 경우에만 이전 블럭(특정 블럭)의 데이터를 삭제함으로써, 플래시 메모리에서 메타 데이터 영역에 대한 데이터 갱신시 에러가 발생하여도 이전의 데이터를 용이하게 복원할 수 있으므로 시스템을 안정적으로 동작시킬 수 있게 된다.

Claims (11)

  1. 삭제
  2. 삭제
  3. 플래시 메모리에 저장될 데이터 및 외부로 출력될 데이터를 임시 저장하는 버퍼;
    상기 플래시 메모리에 저장될 데이터의 논리적 블럭주소(Logical Block Address)와 이에 대응되는 상기 플래시 메모리의 물리적 블럭주소(Physical Block Address)의 매핑정보를 저장하는 블럭매핑테이블; 및
    상기 블럭매핑테이블의 매핑정보에 따라 상기 플래시 메모리에 대한 데이터 리드 및 라이트를 제어하며, 상기 버퍼의 데이터로 상기 플래시 메모리의 제 1 블럭을 갱신시 제 2 블럭을 할당받아 상기 제 2 블럭에 갱신할 데이터 및 상기 제 2 블럭에 대응되는 논리적 블럭번호를 라이트하는 메모리 제어부를 구비하되,
    상기 제 1 블럭 및 상기 제 2 블럭은 복수의 섹터들을 구비하며, 상기 섹터들의 스페어 영역에 상기 논리적 블럭번호가 저장되고,
    상기 메모리 제어부는 상기 제 2 블럭 내 모든 섹터들의 스페어 영역에 상기 논리적 블럭번호가 저장되는 경우에 상기 제 1 블럭의 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리를 이용하는 기억장치.
  4. 제 3항에 있어서, 상기 메모리 제어부는
    시스템 부팅시, 상기 제 2 블럭 내 첫번째 섹터의 스페어 영역에 저장된 상기 논리적 블럭번호와 마지막 섹터의 스페어 영역에 저장된 상기 논리적 블럭번호가 서로 동일한 경우에 상기 제 2 블럭을 유효 블럭으로 인식하는 것을 특징으로 하는 플래시 메모리를 이용하는 기억장치.
  5. 플래시 메모리의 제 1 블럭에 대한 데이터 갱신시 제 2 블럭을 할당받아 상기 제 2 블럭에 데이터를 라이트하는 제 1 단계;
    상기 제 2 블럭에 대한 데이터 라이트 완료시, 상기 제 2 블럭 내 모든 스페어 영역에 상기 제 2 블럭에 대응되는 논리적 블럭번호를 저장하는 제 2 단계; 및
    상기 논리적 블럭번호가 상기 모든 스페어 영역에 기재되었는지 여부에 따라 상기 제 2 블럭의 정상 여부를 판단하여 비 정상 블럭에 대한 에러 복구를 수행하는 제 3 단계를 포함하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
  6. 제 5항에 있어서, 상기 제 1 단계는
    상기 제 1 블럭의 특정 섹터의 데이터 갱신시, 상기 제 1 블럭에서 상기 특정 섹터를 제외한 나머지 섹터들을 상기 제 2 블럭으로 이동시켜 저장하고, 상기 특정 섹터에 대응되는 제 2 블럭의 섹터에 상기 갱신될 데이터를 라이트하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
  7. 제 5항 또는 제 6항에 있어서, 상기 제 2 단계는
    상기 모든 스페어 영역에 상기 논리적 블럭번호가 정상적으로 저장된 후 상기 제 1 블럭의 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
  8. 제 7에 있어서, 상기 제 3 단계는
    상기 제 2 블럭 내 첫번째 스페어 영역과 마지막 스페어 영역에 저장된 상기 논리적 블럭번호의 동일성 여부를 이용하여 상기 제 2 블럭의 정상 여부를 판단하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
  9. 제 9항에 있어서, 상기 제 3 단계는
    상기 첫번째 스페어 영역과 마지막 스페어 영역에 저장된 상기 논리적 블럭번호가 상이한 경우, 상기 제 2 블럭의 데이터를 삭제하는 것을 특징으로 하는 기억장치의 에러 복구 방법.
  10. 제 5항에 있어서, 상기 제 2 단계는
    상기 제 1 블럭 및 상기 제 2 블럭이 복수개인 경우에는 복수개의 제 2 블럭들을 구별할 수 있는 블럭 인덱스 정보 또는 플래그 정보를 함께 저장하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
  11. 제 10항에 있어서, 상기 제 3 단계는
    상기 복수개의 제 2 블럭들 중 어느 하나라도 상기 쓰기 시작 플래그는 세팅되어 있으나 상기 쓰기 완료 플래그가 세팅되지 않은 경우에는 상기 복수개의 제 2 블럭들을 모두 비 정상 블럭으로 간주하고 상기 블럭 인덱스 정보를 이용하여 상기 복수개의 제 2 블럭들을 모두 대응되는 상기 복수개의 제 1 블럭들로 복구하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
KR1020030050923A 2003-07-24 2003-07-24 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 Expired - Fee Related KR100654344B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030050923A KR100654344B1 (ko) 2003-07-24 2003-07-24 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030050923A KR100654344B1 (ko) 2003-07-24 2003-07-24 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법

Publications (2)

Publication Number Publication Date
KR20050011869A KR20050011869A (ko) 2005-01-31
KR100654344B1 true KR100654344B1 (ko) 2006-12-05

Family

ID=37223797

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030050923A Expired - Fee Related KR100654344B1 (ko) 2003-07-24 2003-07-24 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법

Country Status (1)

Country Link
KR (1) KR100654344B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100704618B1 (ko) * 2004-01-19 2007-04-10 삼성전자주식회사 플래시 메모리의 데이터 복구 장치 및 방법
KR100801072B1 (ko) * 2005-09-30 2008-02-11 삼성전자주식회사 플래시 메모리, 이를 위한 맵핑 장치 및 방법
KR100764052B1 (ko) * 2006-08-03 2007-10-08 삼성전자주식회사 유동적 어드레스 바운더리를 갖는 플래시 메모리 장치 및그것의 프로그램 방법
JP2008074777A (ja) * 2006-09-22 2008-04-03 Maruzen Pharmaceut Co Ltd メラノサイト活性化抑制剤、及び皮膚外用剤
KR100809320B1 (ko) * 2006-09-27 2008-03-05 삼성전자주식회사 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법
KR100872186B1 (ko) * 2007-01-04 2008-12-09 삼성전자주식회사 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
KR100950281B1 (ko) * 2008-02-28 2010-03-31 아주대학교산학협력단 플래시 메모리 시스템 및 플래시 메모리의 데이터 연산방법
US20130031299A1 (en) * 2011-07-29 2013-01-31 Byungcheol Cho Disk input/output (i/o) layer architecture having block level device driver

Also Published As

Publication number Publication date
KR20050011869A (ko) 2005-01-31

Similar Documents

Publication Publication Date Title
JP4058322B2 (ja) メモリカード
JP4079506B2 (ja) 不揮発性半導体メモリシステムの制御方法
EP2955633B1 (en) Data erasing method and device for flash memory
US10503606B2 (en) Data backup method, data recovery method and storage controller
CN102163133B (zh) 针对具有可擦除/可重写存储器使用带有主机装置的一次或数次可编程存储器的方法及装置
US9996462B1 (en) Data storage device and data maintenance method thereof
US6865658B2 (en) Nonvolatile data management system using data segments and link information
US20150186224A1 (en) Data storage device and flash memory control method
KR20040014971A (ko) 비휘발성 메모리의 제어방법
JP2005242897A (ja) フラッシュディスク装置
JP3942612B2 (ja) 記憶装置、メモリ管理方法及びプログラム
KR101102155B1 (ko) 메모리 시스템
JPH08137634A (ja) フラッシュディスクカード
JP2009110538A (ja) フラッシュメモリ内のブロックにおける移動セクタ
JPWO2007000862A1 (ja) メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
WO2009118917A1 (ja) フラッシュメモリを用いた記憶装置
US20100318726A1 (en) Memory system and memory system managing method
JPWO2009004674A1 (ja) 記憶装置、ディスク装置、書込み判定方法、制御装置
JP2009205689A (ja) フラッシュディスク装置
KR100654344B1 (ko) 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법
US10248526B2 (en) Data storage device and data maintenance method thereof
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
US20210117315A1 (en) Memory controller and flash memory system
JP2007293917A (ja) メモリシステムの制御方法
JP2005222202A (ja) 不揮発性記憶装置のデータ保護方法

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20030724

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20050707

Patent event code: PE09021S01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20060224

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060920

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20061129

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20061129

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20091102

Start annual number: 4

End annual number: 6

FPAY Annual fee payment

Payment date: 20121130

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20121130

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20131030

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20131030

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20141020

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20141020

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20150914

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20150914

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20161011

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20161011

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20171020

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20171020

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20180921

Start annual number: 13

End annual number: 13

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20200910