KR100654344B1 - 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 - Google Patents
플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000011084 recovery Methods 0.000 title claims abstract description 12
- 238000013507 mapping Methods 0.000 claims abstract description 17
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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
Description
그리고, 만약에 갱신하고자 하는 블럭이 복수인 경우에는, 해당 블럭들을 구별할 수 있는 블럭 인덱스 정보 또는 플래그 정보를 같이 저장한다.
이때, 갱신되는 블럭들이 복수개인 경우에는 삭제 대상 플래그를 세팅하여 블럭들이 모두 정상적으로 쓰기완료되었거나 시스템 부팅시 갱신된 블럭들 모두에 아무 이상이 없는 것으로 판단되었을 경우에만 제 1 블럭들을 삭제한다.
만약에, 갱신되는 블럭들이 복수개인 경우, 복수개의 블럭들(제 2 블럭들) 중 어느 하나의 블럭이라도 비 정상 블럭으로 판별되면 해당 모든 블럭들을 복구해야 한다. 따라서, 제 2 블럭들 중 어느 하나라도 비 정상인 경우에는 블럭 인덱스 정보 또는 플래그 정보를 이용해 비 정상 블럭 뿐만 아니라 비 정상 블럭과 함께 갱신된 모든 제 2 블럭들을 찾아내고, 찾아낸 제 2 블럭들의 스페어 영역에 저장된 대응되는 제 1 블럭들의 번호를 이용해 모든 제 2 블럭들을 이전 블럭들로 복구한다. 그리고, 제 2 블럭들의 데이터를 모두 삭제한다.
Claims (11)
- 삭제
- 삭제
- 플래시 메모리에 저장될 데이터 및 외부로 출력될 데이터를 임시 저장하는 버퍼;상기 플래시 메모리에 저장될 데이터의 논리적 블럭주소(Logical Block Address)와 이에 대응되는 상기 플래시 메모리의 물리적 블럭주소(Physical Block Address)의 매핑정보를 저장하는 블럭매핑테이블; 및상기 블럭매핑테이블의 매핑정보에 따라 상기 플래시 메모리에 대한 데이터 리드 및 라이트를 제어하며, 상기 버퍼의 데이터로 상기 플래시 메모리의 제 1 블럭을 갱신시 제 2 블럭을 할당받아 상기 제 2 블럭에 갱신할 데이터 및 상기 제 2 블럭에 대응되는 논리적 블럭번호를 라이트하는 메모리 제어부를 구비하되,상기 제 1 블럭 및 상기 제 2 블럭은 복수의 섹터들을 구비하며, 상기 섹터들의 스페어 영역에 상기 논리적 블럭번호가 저장되고,상기 메모리 제어부는 상기 제 2 블럭 내 모든 섹터들의 스페어 영역에 상기 논리적 블럭번호가 저장되는 경우에 상기 제 1 블럭의 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리를 이용하는 기억장치.
- 제 3항에 있어서, 상기 메모리 제어부는시스템 부팅시, 상기 제 2 블럭 내 첫번째 섹터의 스페어 영역에 저장된 상기 논리적 블럭번호와 마지막 섹터의 스페어 영역에 저장된 상기 논리적 블럭번호가 서로 동일한 경우에 상기 제 2 블럭을 유효 블럭으로 인식하는 것을 특징으로 하는 플래시 메모리를 이용하는 기억장치.
- 플래시 메모리의 제 1 블럭에 대한 데이터 갱신시 제 2 블럭을 할당받아 상기 제 2 블럭에 데이터를 라이트하는 제 1 단계;상기 제 2 블럭에 대한 데이터 라이트 완료시, 상기 제 2 블럭 내 모든 스페어 영역에 상기 제 2 블럭에 대응되는 논리적 블럭번호를 저장하는 제 2 단계; 및상기 논리적 블럭번호가 상기 모든 스페어 영역에 기재되었는지 여부에 따라 상기 제 2 블럭의 정상 여부를 판단하여 비 정상 블럭에 대한 에러 복구를 수행하는 제 3 단계를 포함하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
- 제 5항에 있어서, 상기 제 1 단계는상기 제 1 블럭의 특정 섹터의 데이터 갱신시, 상기 제 1 블럭에서 상기 특정 섹터를 제외한 나머지 섹터들을 상기 제 2 블럭으로 이동시켜 저장하고, 상기 특정 섹터에 대응되는 제 2 블럭의 섹터에 상기 갱신될 데이터를 라이트하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
- 제 5항 또는 제 6항에 있어서, 상기 제 2 단계는상기 모든 스페어 영역에 상기 논리적 블럭번호가 정상적으로 저장된 후 상기 제 1 블럭의 데이터를 삭제하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
- 제 7에 있어서, 상기 제 3 단계는상기 제 2 블럭 내 첫번째 스페어 영역과 마지막 스페어 영역에 저장된 상기 논리적 블럭번호의 동일성 여부를 이용하여 상기 제 2 블럭의 정상 여부를 판단하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
- 제 9항에 있어서, 상기 제 3 단계는상기 첫번째 스페어 영역과 마지막 스페어 영역에 저장된 상기 논리적 블럭번호가 상이한 경우, 상기 제 2 블럭의 데이터를 삭제하는 것을 특징으로 하는 기억장치의 에러 복구 방법.
- 제 5항에 있어서, 상기 제 2 단계는상기 제 1 블럭 및 상기 제 2 블럭이 복수개인 경우에는 복수개의 제 2 블럭들을 구별할 수 있는 블럭 인덱스 정보 또는 플래그 정보를 함께 저장하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
- 제 10항에 있어서, 상기 제 3 단계는상기 복수개의 제 2 블럭들 중 어느 하나라도 상기 쓰기 시작 플래그는 세팅되어 있으나 상기 쓰기 완료 플래그가 세팅되지 않은 경우에는 상기 복수개의 제 2 블럭들을 모두 비 정상 블럭으로 간주하고 상기 블럭 인덱스 정보를 이용하여 상기 복수개의 제 2 블럭들을 모두 대응되는 상기 복수개의 제 1 블럭들로 복구하는 것을 특징으로 하는 플래시 메모리를 이용한 기억장치의 에러 복구 방법.
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)
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 |
-
2003
- 2003-07-24 KR KR1020030050923A patent/KR100654344B1/ko not_active Expired - Fee Related
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 |