KR100608592B1 - 플래시 메모리의 데이터 관리 장치 및 방법 - Google Patents

플래시 메모리의 데이터 관리 장치 및 방법 Download PDF

Info

Publication number
KR100608592B1
KR100608592B1 KR1020040005020A KR20040005020A KR100608592B1 KR 100608592 B1 KR100608592 B1 KR 100608592B1 KR 1020040005020 A KR1020040005020 A KR 1020040005020A KR 20040005020 A KR20040005020 A KR 20040005020A KR 100608592 B1 KR100608592 B1 KR 100608592B1
Authority
KR
South Korea
Prior art keywords
block
flash memory
data
error block
error
Prior art date
Application number
KR1020040005020A
Other languages
English (en)
Other versions
KR20050077505A (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 KR1020040005020A priority Critical patent/KR100608592B1/ko
Priority to JP2005004566A priority patent/JP4704759B2/ja
Priority to EP05250205A priority patent/EP1564755B1/en
Priority to DE602005022512T priority patent/DE602005022512D1/de
Priority to CNB2005100024882A priority patent/CN100334565C/zh
Priority to US11/043,214 priority patent/US7454670B2/en
Publication of KR20050077505A publication Critical patent/KR20050077505A/ko
Application granted granted Critical
Publication of KR100608592B1 publication Critical patent/KR100608592B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F16ENGINEERING ELEMENTS AND UNITS; GENERAL MEASURES FOR PRODUCING AND MAINTAINING EFFECTIVE FUNCTIONING OF MACHINES OR INSTALLATIONS; THERMAL INSULATION IN GENERAL
    • F16LPIPES; JOINTS OR FITTINGS FOR PIPES; SUPPORTS FOR PIPES, CABLES OR PROTECTIVE TUBING; MEANS FOR THERMAL INSULATION IN GENERAL
    • F16L59/00Thermal insulation in general
    • F16L59/02Shape or form of insulating materials, with or without coverings integral with the insulating materials
    • F16L59/029Shape or form of insulating materials, with or without coverings integral with the insulating materials layered
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B15/00Layered products comprising a layer of metal
    • B32B15/04Layered products comprising a layer of metal comprising metal as the main or only constituent of a layer, which is next to another layer of the same or of a different material
    • B32B15/046Layered products comprising a layer of metal comprising metal as the main or only constituent of a layer, which is next to another layer of the same or of a different material of foam
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B27/00Layered products comprising a layer of synthetic resin
    • B32B27/06Layered products comprising a layer of synthetic resin as the main or only constituent of a layer, which is next to another layer of the same or of a different material
    • B32B27/065Layered products comprising a layer of synthetic resin as the main or only constituent of a layer, which is next to another layer of the same or of a different material of foam
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B5/00Layered products characterised by the non- homogeneity or physical structure, i.e. comprising a fibrous, filamentary, particulate or foam layer; Layered products characterised by having a layer differing constitutionally or physically in different parts
    • B32B5/18Layered products characterised by the non- homogeneity or physical structure, i.e. comprising a fibrous, filamentary, particulate or foam layer; Layered products characterised by having a layer differing constitutionally or physically in different parts characterised by features of a layer of foamed material
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B9/00Layered products comprising a layer of a particular substance not covered by groups B32B11/00 - B32B29/00
    • B32B9/02Layered products comprising a layer of a particular substance not covered by groups B32B11/00 - B32B29/00 comprising animal or vegetable substances, e.g. cork, bamboo, starch
    • B32B9/025Layered products comprising a layer of a particular substance not covered by groups B32B11/00 - B32B29/00 comprising animal or vegetable substances, e.g. cork, bamboo, starch comprising leather
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2266/00Composition of foam
    • B32B2266/02Organic
    • B32B2266/0214Materials belonging to B32B27/00
    • B32B2266/0278Polyurethane
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2307/00Properties of the layers or laminate
    • B32B2307/30Properties of the layers or laminate having particular thermal properties
    • B32B2307/304Insulating
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B32LAYERED PRODUCTS
    • B32BLAYERED PRODUCTS, i.e. PRODUCTS BUILT-UP OF STRATA OF FLAT OR NON-FLAT, e.g. CELLULAR OR HONEYCOMB, FORM
    • B32B2607/00Walls, panels

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 적어도 하나 이상의 플래시 메모리를 사용하는 시스템에서 데이터 연산 방식에 따라 소정의 플래시 메모리에서 발생한 오류 블록을 처리할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 장치는 적어도 하나 이상의 플래시 메모리에 대한 동작을 제어하는 디바이스 드라이버와, 소정의 플래시 메모리에서 오류 블록이 발생한 경우 해당 플래시 메모리의 소정 블록으로 상기 오류 블록에 위치한 데이터를 이동시키는 제어부를 포함한다.
플래시 메모리, 멀티 채널, 인터리브

Description

플래시 메모리의 데이터 관리 장치 및 방법{Data managing device and method thereof}
도 1 은 일반적인 플래시 메모리의 개략적인 구조가 도시된 도면.
도 2 는 종래의 기술에 따른 단일 플래시 메모리에서의 초기 오류 블록 처리 방법이 도시된 도면.
도 3 은 종래의 기술에 따른 단일 플래시 메모리에서의 런타임 오류 블록 처리 방법이 도시된 도면.
도 4a 는 일반적인 단일 플래시 메모리의 데이터 연산이 도시된 도면.
도 4b 는 일반적인 단일 플래시 메모리의 런타임 오류 블록에 위치한 데이터의 이동이 도시된 도면.
도 5a 는 일반적인 멀티 채널 방식을 이용한 플래시 메모리 기반의 시스템이 도시된 도면.
도 5b 는 일반적인 멀티 채널 방식에서의 데이터 연산 과정이 도시된 도면.
도 6a 는 일반적인 인터리브 방식을 사용한 플래시 메모리 기반의 시스템이 도시된 도면.
도 6b 는 일반적인 인터리브 방식에서의 데이터 연산 과정이 도시된 도면.
도 7 은 본 발명에 따른 플래시 메모리의 데이터 관리 장치가 도시된 도면.
도 8 은 본 발명에 따른 멀티 채널 방식에서의 데이터 연산이 도시된 도면.
도 9 는 본 발명에 따른 인터리브 방식에서의 상위 블록이 도시된 도면.
도 10 은 본 발명에 따른 인터리브 방식에서의 가상 블록 관리 영역이 도시된 도면.
도 11 은 본 발명에 따른 상위 블록에서의 데이터 연산이 도시된 도면.
도 12 는 본 발명에 따른 플래시 메모리의 데이터 관리 방법이 도시된 도면.
도 13 은 본 발명에 따른 초기 오류 블록에 대한 처리 방법이 도시된 도면.
도 14a 및 도 14b 는 본 발명에 따른 오류 블록을 예비 영역의 소정 블록에 맵핑시키는 맵핑 테이블이 도시된 도면.
도 15 는 본 발명에 따른 멀티 채널 방식에서 런타임 오류 블록을 처리하는 방법이 도시된 도면.
도 16 은 본 발명에 따른 멀티 채널 방식에서의 런타임 오류 블록에 위치한 데이터를 예비 영역의 소정 블록으로 이동시키는 방법이 도시된 도면.
도 17 은 본 발명에 따른 인터리브 방식에서 런타임 오류 블록을 처리하는 방법이 도시된 도면.
도 18 은 본 발명에 따른 인터리브 방식에서의 데이터 연산 방법이 도시된 도면.
도 19 는 본 발명에 따른 인터리브 방식에서의 런타임 오류 블록에 위치한 데이터를 예비 영역의 소정 블록으로 이동시키는 방법이 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
210,220,230: 플래시 메모리 300: 디바이스 드라이버
400: 제어부
본 발명은 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것으로서, 더욱 상세하게는 적어도 하나 이상의 플래시 메모리를 사용하는 시스템에서 데이터 연산 방식에 따라 소정의 플래시 메모리에서 발생한 오류 블록을 처리할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
상기 비휘발성 메모리 중에서 주로 사용되는 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자로서, 마그네틱 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같은 빠른 액세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기 등에 적합하다.
또한, 상기 플래시 메모리는 하드웨어적 특성상 이미 기록된 데이터에 재기록을 할 경우, 해당 데이터가 기록된 블록 전체를 지우는 과정이 필요하다.
이와 같이, 상기 플래시 메모리에서 데이터의 기록 및 삭제 단위의 불일치로 발생할 수 있는 성능 저하를 방지하기 위하여 논리 주소와 물리 주소의 개념이 도입되 었다.
이때, 상기 논리 주소는 사용자가 소정의 사용자 프로그램을 통하여 상기 플래시 메모리에서 소정의 데이터 연산을 수행할 경우 사용되는 주소이고, 상기 물리 주소는 실제 플래시 메모리에 소정의 데이터 연산을 수행할 경우 사용되는 주소이다.
또한, 상기 플래시 메모리는 일반적으로 소블록 플래시 메모리와 대블록 플래시 메모리로 구분되는데, 상기 소블록 플래시 메모리는 논리적인 연산 단위와 물리적인 연산 단위가 동일한 반면, 상기 대블록 플래시 메모리는 논리적인 연산 단위에 비하여 물리적인 연산 단위가 큰 특성을 가진다.
즉, 상기 플래시 메모리의 논리적인 연산 단위 및 물리적인 연산 단위는 섹터 및 페이지라 칭하는 경우를 예를 들어 설명하면, 상기 소블록 플래시 메모리는 상기 섹터 및 페이지의 크기가 동일한 반면, 상기 대블록 플래시 메모리는 상기 페이지가 상기 섹터에 비해 소정 배수로 큰 크기를 가진다.
이러한 플래시 메모리의 블록은 제한된 삭제 횟수를 가지고 있는데, 상기 플래시 메모리는 소정 블록에 대한 삭제 횟수가 기준치를 초과하거나 물리적인 특성이 좋지 않은 블록의 경우 삭제 횟수가 상기 기준치에 근접하게 되면 오류 블록(Bad Block)이 발생할 수 있기 때문이다.
이때, 상기 오류 블록은 상기 플래시 메모리의 공장 출하시 이미 발생된 초기 오류 블록과 상기 플래시 메모리의 데이터 연산 중 발생되는 런타임 오류 블록으로 나누어질 수 있다.
상기 오류 블록은 상기 플래시 메모리의 모든 블록에서 발생될 수 있으며, 상기 플 래시 메모리의 성능에 큰 영향을 미치기 때문에 상기 오류 블록을 효과적으로 처리할 수 있는 다양한 방법들이 제안되고 있다.
도 1 은 일반적인 플래시 메모리의 개략적인 구조가 도시된 도면으로서, 상기 플래시 메모리에 발생한 오류 블록 처리를 위한 오류 블록 관리 영역(10)과, 데이터의 연산이 이루어지는 데이터 영역(20)을 포함한다.
여기서, 상기 오류 블록 관리 영역(10)은 상기 플래시 메모리에서 발생한 오류 블록에 대한 맵핑 정보를 포함하는 오류 블록 정보 영역(11)과, 상기 오류 블록을 대체하기 위한 예비 영역(12)을 포함한다.
이때, 상기 맵핑 정보는 상기 오류 블록을 상기 예비 영역(12)내의 소정 블록으로 맵핑시키는 맵핑 테이블로 이루어진다.
상기 오류 블록 관리 영역(10)을 이용한 종래의 기술에 따른 플래시 메모리의 데이터 관리 방법을 살펴보면, 도 2 에 도시된 바와 같이, 먼저 상기 플래시 메모리의 소정 블록에 대한 초기 오류 표시를 확인한다. (S11)
상기 초기 오류 표시를 통하여 해당 블록이 오류 블록인지의 여부를 판단한다.(S12)
즉, 해당 블록이 초기 오류 블록인지를 판단하는 것이다.
상기 판단 결과 오류 블록인 경우, 상기 오류 블록을 상기 플래시 메모리의 정상 블록으로 맵핑시킨다.(S13)
상기 초기 오류 블록은 상기 맵핑 정보를 통하여 정상 블록으로 맵핑되는데, 상기 초기 오류 블록은 상기 맵핑 테이블에 의해 상기 예비 영역(12)의 소정 블록으로 맵핑된다.
따라서, 상기 초기 오류 블록에 소정의 데이터 연산이 수행될 경우 상기 맵핑 테이블에 의해 상기 예비 영역(12)의 소정 블록에서 데이터 연산이 수행되도록 할 수 있다.
상기 플래시 메모리의 모든 블록에 대하여 초기 오류 블록 여부를 판단할때까지(S14) 다음 블록으로 이동하여 초기 오류 블록 여부를 판단하는 과정(S11, S12, S13)을 반복적으로 수행한다.(S15)
이때, 상기 판단 결과 정상 블록으로 판단되어 데이터 연산이 수행되는 도중 데이터 연산 실패가 발생되면, 해당 블록은 런타임 오류 블록으로 판단된다.
이와 같이 상기 런타임 오류 블록이 발생된 경우 플래시 메모리의 데이터 관리 방법은 도 3 에 도시된 바와 같이, 소정 블록에서 데이터 연산을 수행하는 도중(S21) 데이터 연산이 실패하였는지의 여부를 판단한다.(S22)
즉, 도 4a에 도시된 바와 같이, 플래시 메모리의 데이터 영역(20)에 포함된 소정의 블록(21)에 데이터 연산을 수행하는 도중 데이터 연산이 실패하였는지의 여부를 판단하는 것이다.
상기 판단 결과 데이터 연산이 실패한 경우, 해당 블록을 오류 블록으로 판단하여 상기 맵핑 정보에 포함시킨다.(S23)
또한, 상기 오류 블록을 상기 예비 영역(12)의 소정 블록을 맵핑시키고(S24), 상기 맵핑된 블록에서 데이터 연산이 수행되도록 한다.(S25)
즉, 도 4b에 도시된 바와 같이, 상기 플래시 메모리의 데이터 영역(20)의 소정 블 록(21)의 데이터를 상기 예비 영역(12)의 소정 블록(12a)로 이동시킨다.
이후, 상기 오류 블록에 대한 데이터 연산을 수행할 경우에는 상기 맵핑 정보에 따라 상기 오류 블록에 맵핑된 상기 예비 영역(12)의 소정 블록(12a)에서 데이터 연산이 수행되는 것이다.
이때, 상기 데이터 연산 중 데이터 쓰기를 예를 들어 설명하면, 상기 데이터 영역(20)의 소정 블록(21)에 데이터를 쓰는 도중 오류 블록이 발생되면, 상기 데이터를 상기 예비 영역(12)의 소정 블록(12a)으로 이동시킨다.
또한, 상기 오류 블록(21)에서 데이터 연산을 다시 수행할 경우에는 상기 맵핑 정보에 따라 상기 예비 영역(12)의 소정 블록(12a)에서 데이터 쓰기가 수행된다.
이후, 상기 데이터 연산이 완료될때까지 데이터 연산 도중 오류 블록이 발생되었는지의 여부를 판단하는 과정(S21, S22, S23, S24, S25)를 반복적으로 수행한다.(S26)
그러나, 상기와 같은 종래의 플래시 메모리의 데이터 관리 방법은 단일 플래시 메모리에 한하여 사용할 수 있기 때문에 적어도 하나 이상의 플래시 메모리를 포함하는 시스템에서 사용하기에는 어려움이 있다는 문제점이 있다.
본 발명은 여러 개의 플래시 메모리를 사용하는 시스템에서 상기 플래시 메모리에 발생한 오류 블록을 효율적으로 처리할 수 있는 플래시 메모리의 데이터 관리 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리의 데이터 관리 장치는 적어도 하나 이상의 플래시 메모리에 대한 동작을 제어하는 디바이스 드라이버와, 소정의 플래시 메모리에서 오류 블록이 발생한 경우 상기 오류 블록에 위치한 데이터를 해당 플래시 메모리의 소정 블록으로 이동시키는 제어부를 포함한다.
바람직하게는 상기 제어부는 멀티 채널(Multi-channel) 방식을 통한 데이터 연산을 수행할 경우, 상기 오류 블록과 동일한 오프셋 값을 가지는 다른 플래시 메모리의 블록에 위치한 데이터를 각 플래시 메모리의 소정 블록으로 이동시킨다.
바람직하게는 상기 제어부는 인터리브(Interleave) 방식을 통한 데이터 연산을 수행할 경우, 각 플래시 메모리에서 동일한 오프셋 값을 가지는 블록으로 이루어지는 상위 블록을 생성한다.
바람직하게는 상기 제어부는 상기 오류 블록을 해당 플래시 메모리의 소정 블록으로 이동시키고, 상기 소정 블록을 상기 상위 블록에 포함시킨다.
한편, 본 실시예에 따른 플래시 메모리의 데이터 관리 방법은 적어도 하나 이상의 플래시 메모리에서 발생된 오류 블록을 파악하는 제 1 단계와, 상기 오류 블록에 위치한 데이터를 해당 플래시 메모리의 소정 블록으로 이동시키는 제 2 단계를 포함한다.
바람직하게는 상기 제 1 단계는 소정 블록에 데이터 연산을 수행할 경우 데이터 연산 실패 여부에 따라 오류 블록을 파악한다.
바람직하게는 상기 제 2 단계는 멀티 채널을 통한 데이터 연산을 수행할 경우, 상기 오류 블록과 동일한 오프셋 값을 가지는 다른 플래시 메모리의 블록에 위치한 데이터를 각 플래시 메모리의 소정 블록으로 이동시킨다.
바람직하게는 상기 제 2 단계는 인터리브(Interleave) 방식을 통한 데이터 연산을 수행할 경우, 각 플래시 메모리에서 동일한 오프셋 값을 가지는 블록으로 이루어지는 상위 블록을 생성하는 과정을 포함한다.
바람직하게는 상기 제 2 단계는 상기 오류 블록을 해당 플래시 메모리의 소정 블록으로 이동시키는 제 1 과정과, 상기 소정 블록을 상기 상위 블록에 포함시키는 제 2 과정을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한 다.
최근 여러 개의 플래시 메모리를 사용하는 시스템은 주로 Multi-cahnnel 방식 및 Interleave 방식을 사용하여 전체적인 성능을 향상시키고 있다.
여기서, 상기 Multi-channel 방식은 여러 개의 플래시 메모리를 제어하기 위한 제어 라인을 공유으로 사용하기 때문에 각 플래시 메모리에 동시에 병렬적으로 데이터를 쓸 수 있다.
즉, 도 5a에 도시된 바와 같이, 두 개의 플래시 메모리(111, 112)를 제어하는 디바이스 드라이버(113)가 서로 제어 라인(114)을 공유하고, 데이터 라인(115, 116)은 각 플래시 메모리(111, 112)에 따라 별도로 사용한다.
따라서, 상기 Multi-channel 방식은 각 플래시 메모리의 버스가 n비트, 플래시 메모리의 개수를 m이라 하면, n
Figure 112004003106312-pat00001
m 버스를 가지는 하나의 플래시 메모리처럼 사용할 수 있는 것이다.
이러한 Multi-channel 방식의 동작을 도 5b에 도시된 바와 같이, 상기 Multi-channel 방식은 제어 라인(114)를 공유하기 때문에 각 플래시 메모리(111, 112)로 데이터 연산 명령과 데이터 연산이 수행될 주소를 포함하는 제어 신호(117)를 각 플래시 메모리(112, 113)로 동시에 전송한다.
또한, 상기 상기 각 플래시 메모리(112, 113)에 대한 데이터 라인(115, 116)은 별도로 사용하기 때문에 각 플래시 메모리(112, 113)의 데이터의 로딩(118) 및 데이터 연산(119)이 동시에 수행된다.
이때, 상기 데이터 로딩(118)은 각 플래시 메모리(118)에 해당하는 데이터를 함께 로딩하기 때문에 총 플래시 메모리에 해당하는 데이터가 로딩된다.
또한, 상기 Interleave 방식은 여러 개의 플래시 메모리와 데이터 라인을 공유하기 때문에 다중 데이터 쓰기 연산을 처리하는 경우를 예를 들어 설명하면, 소정 플래시 메모리에 대한 데이터 로딩 후 데이터를 쓰는 동안 다른 플래시 메모리에 데이터를 로딩할 수 있다.
이러한 Interleave 방식은 도 6a에 도시된 바와 같이, 두 개의 플래시 메모리(121, 122)를 제어하는 디바이스 드라이버(123)가 상기 각 플래시 메모리(121, 122)와 서로 데이터 라인(124)를 공유하고, 제어 라인(125, 126)은 각 플래시 메모리(121, 122)에 따라 별도로 사용한다.
상기 Interleave 방식의 동작은 도 6b에 도시된 바와 같이, 소정 플래시 메모리로 데이터 연산 명령과 데이터 연산이 수행될 주소를 포함한 제어 신호(127a)를 전송하고 데이터 로딩(128a)를 수행한 다음 데이터 연산(129a)이 수행될 동안 다른 플래시 메모리로 데이터 연산 명령과 데이터 연산이 수행되는 주소를 포함한 제어 신호(127b)를 전송하고, 데이터 로딩(128b)을 수행하여 데이터 연산(129b)를 수행한다.
본 실시예는 상기한 바와 같은 여러 개의 플래시 메모리가 사용된 시스템에서 상기 각 플래시 메모리에 오류 블록인 발생한 경우 데이터의 안정성 확보와 효율적인 오류 블록을 처리를 위한 플래시 메모리의 데이터 관리 장치로서, 도 7 에 도시된 바와 같이, 여러 개의 플래시 메모리(210, 220, 230)의 동작을 제어하는 디바이스 드라이버(300)와, 소정의 플래시 메모리에서 오류 블록이 발생한 경우 상기 오류 블 록에 위치한 데이터를 해당 플래시 메모리의 소정 블록으로 이동시키는 제어부(400)를 포함한다.
이러한 플래시 메모리의 데이터 관리 장치를 상기 Multi-channel방식과 Interleave 방식을 예를 들어 설명한다.
우선, 상기 Multi-channel 방식의 경우, 도 8에 도시된 바와 같이, 각 플래시 메모리(510, 520)는 각각 발생한 오류 블록의 맵핑 정보를 포함하는 가상 블록 관리 영역(511, 521), 상기 오류 블록에 위치한 데이터가 이동되는 예비 영역(512, 522) 및 소정의 데이터 연산이 수행되는 데이터 영역(513, 523)으로 구분될 수 있다.
여기서, 상기 Multi-channel 방식의 특성상 각 플래시 메모리(510, 520)에 병렬적으로 데이터의 연산을 수행할 수 있기 때문에 상기 각 데이터 영역(513, 523)에서 동일한 오프셋 값을 가지는 블록(513a, 523a)에 데이터가 존재하게 된다.
이때, 소정의 플래시 메모리에서 오류 블록이 발생하게 되면, 상기 제어부(400)는 상기 오류 블록에 위치한 데이터를 해당 플래시 메모리의 예비 영역내의 소정 블록으로 이동시키게 된다.
또한, 상기 제어부(400)는 상기 오류 블록과 동일한 오프셋 값을 가지는 다른 플래시 메모리의 정상 블록에 위치한 데이터도 해당 플래시 메모리의 예비 영역내의 소정 블록으로 이동시키게 된다.
이는 상기 Multi-channel 방식에서 각 플래시 메모리에 병렬적으로 데이터 연산을 수행하기 때문에 소정의 플래시 메모리에서 오류 블록이 발생하게 되면, 다른 데이터에도 영향을 미치게 되어 데이터의 손실을 야기시킬 수 있기 때문에 각 플래시 메모리(510, 520)의 데이터를 상기 예비 영역(512, 522)의 소정 블록으로 이동시키는 것이다.
한편, 다른 실시예로 상기 Interleave 방식의 경우, 상기 Multi-channel 방식과 마찬가지로 각 플래시 메모리(510, 520)는 오류 블록의 맵핑 정보를 포함하는 가상 블록 관리 영역(511, 521), 상기 오류 블록에 위치한 데이터가 이동되는 예비 영역(512, 522) 및 소정의 데이터 연산이 수행되는 데이터 영역(513, 523)으로 구분될 수 있다.
또한, 상기 제어부(400)는 도 9에 도시된 바와 같이, 각 플래시 메모리(510, 520)에서 동일한 오프셋 값을 가지는 블록(510a, 520a)을 합친 상위 블록(530)를 생성한다.
여기서, 상기 가상 블록 관리 영역(511, 521)은 도 10에 도시된 바와 같이, 상기 상위 블록(530)에 대한 정보를 포함하는 상위 블록 관리 영역(511a, 521a)과 상기 데이터 영역(513, 523)에서 오류 블록이 발생한 경우, 상기 오류 블록을 상기 예비 영역(512, 522)에 포함된 소정 블록으로 맵핑시키는 맵핑 테이블로 이루어지는 오류 블록 관리 영역(511b, 521b)를 포함한다.
따라서, 상기 제어부(400)는 상기 상위 블록 관리 영역(511a, 521a)에 포함된 상위 블록(530)을 통하여 연산시 도 11에 도시된 바와 같이, 상기 상위 블록(530)으로 묶인 각 플래시 메모리의 블록(510a, 520a)에 데이터 연산을 순차적으로 수행하는데 유리하기 때문이다.
이때, 상기 Interleave 방식은 소정의 플래시 메모리에서 오류 블록이 발생한 경우 해당 플래시 메모리의 예비 영역의 소정 블록으로 상기 오류 블록에 위치한 데이터를 이동시킨다.
또한, 상기 각 오류 블록과 같은 상위 블록에 포함된 다른 플래시 메모리의 블록은 상기 예비 영역의 소정 블록과 함께 다시 같은 상위 블록에 포함된다.
이와 같이 상기 예비 영역내의 소정 블록과 다시 상위 블록으로 묶인 다른 플래시 메모리의 블록들에 대한 정보는 상기 상위 블록 관리 영역(211a, 521a)에 저장되기 때문에 다시 해당 상위 블록에 대한 데이터 연산을 수행할 경우 상기 오류 블록이 아닌 상기 예비 영역내의 소정 블록을 통해 데이터 연산을 수행한다.
상기와 같이 구성되는 본 실시예에 따른 플래시 메모리의 데이터 관리 방법을 살펴보면 다음과 같다.
본 실시예에 따른 플래시 메모리의 데이터 관리 방법은 도 12에 도시된 바와 같이, 먼저 여러 개의 플래시 메모리가 사용되는 시스템에서 각 시스템에 대한 초기 오류 블록 정보를 파악한다.(S110)
상기 초기 오류 블록은 플래시 메모리의 공장 출하 당시 발생된 오류 블록으로서, 상기 초기 오류 블록을 파악하여 이를 예비 영역의 소정 블록에 맵핑시키는 맵핑 테이블을 생성한다.(S120)
이러한 맵핑 테이블은 상기 가상 블록 관리 영역(511, 521)에 저장되며, 소정의 플래시 메모리에서 초기 오류 블록에 데이터 연산을 수행할 경우, 상기 예비 영역에 맵핑된 블록에서 데이터 연산이 수행되도록 한다.
즉, 상기 초기 오류 블록은 도 13에 도시된 바와 같이, 상기 플래시 메모리의 공장 출하 당시 데이터 영역(630)에 발생한 오류 블록(631, 632)을 의미한다.
또한, 상기 초기 오류 블록(631, 632)은 상기 예비 영역(620)의 소정 블록(621, 622)로 맵핑되어 이후 상기 초기 오류 블록(631, 632)에서 데이터 연산이 수행될 경우 상기 예비 영역(620)의 맵핑된 블록(621, 622)에서 데이터 연산이 수행되도록 한다.
이때, 상기 초기 오류 블록(631, 632)에 맵핑된 상기 예비 영역(620)의 블록에 대한 맵핑 테이블은 상기 가상 블록 관리 영역(610)에 저장된다.
이러한 맵핑 테이블은 도 14a에 도시된 바와 같이, 상기 예비 영역(620)의 블록 주소을 해당 오류 블록에 지정할 수도 있고, 도 14b에 도시된 바와 같이, 상기 예비 영역(620)의 각 블록에 소정의 오프셋 값을 지정하고, 상기 오프셋 값에 따른 오류 블록을 지정할 수도 있다.
이후, 사용자가 소정의 플래시 메모리의 블록에서 데이터 연산을 요청하면(S130), 상기 맵핑 테이블에 포함된 블록인지의 여부를 통해 오류 블록인지를 판단한다.(S140)
상기 판단 결과 오류 블록인 경우, 상기 예비 영역의 소정 블록에서 데이터의 연산이 수행된다. (S150)
만일, 상기 판단 결과 정상 블록인 경우 해당 블록에서 데이터 연산을 수행하고(S160), 데이터 연산 수행 도중 연산 실패가 발생되는지의 여부를 판단한다.(S170)
상기 데이터 연산 수행 도중 연산 실패가 발생되면, 상기 연산 실패가 발생된 블록 을 런타임 오류 블록으로 판단하고(S180), 상기 데이터 연산 실패가 발생된 블록을 상기 맵핑 테이블에 추가하여 상기 예비 영역의 소정 블록으로 맵핑시킨다.(S190)
이후, 상기 예비 영역의 소정 블록으로 데이터를 이동시키고(S200), 다시 데이터 연산을 수행한다.(S210)
이때, 상기 Interleave 방식의 경우, 상기 데이터 연산은 각 플래시 메모리에서 동일한 오프셋 값을 가지는 묶은 상위 블록을 통해 데이터 연산을 수행하게 된다.
이때, 상기 예비 영역의 소정 블록으로 데이터를 이동시키는 방법을 여러 개의 플래시 메모리를 관리할 수 있는 방법인 Multi-channel 방식과 InterLeave 방식을 예를 들어 설명한다.
먼저, 상기 Multi-channel 방식의 경우, 도 15에 도시된 바와 같이, 소정 플래시 메모리에서 발생된 오류 블록의 데이터를 해당 플래시 메모리의 예비 영역내의 소정 블록으로 이동시킨다.(S311)
이후, 상기 오류 블록과 동일한 오프셋 값을 가지는 다른 플래시 메모리의 정상 블록에 위치한 데이터를 각 플래시 메모리의 예비 영역내의 소정 블록으로 이동시킨다.(S312)
즉, 이는 상기 Multi-channel 방식은 도 16에 도시된 바와 같이, 각 플래시 메모리(710, 720) 중 임의의 플래시 메모리(710)의 데이터 영역(713)에서 오류 블록(713a)이 발생한 경우, 상기 오류 블록(713a)에 위치한 데이터는 해당 플래시 메모리(710)의 예비 영역(712)에 포함된 소정 블록(712a)로 이동된다.
이때, 상기 오류 블록(713a)과 상기 예비 영역(712)내의 소정 블록(712a)에 대한 맵핑 테이블은 가상 블록 관리 영역(711)에 저장된다.
이때, 상기 Multi-channel 방식의 특성상 병렬적으로 데이터 연산을 수행하기 때문에 다른 플래시 메모리(720)의 데이터 영역(723)에 상기 오류 블록(713a)과 같은 오프셋 값을 가지는 정상 블록(723a)에 위치한 데이터도 해당 플래시 메모리(720)의 예비 영역(722)에 포함된 소정 블록(722a)로 이동된다.
또한, 상기 정상 블록(723a)과 상기 예비 영역(722)에 포함된 소정 블록(722a)에 대한 맵핑 테이블은 해당 플래시 메모리(720)의 가상 블록 관리 영역(721)에 저장된다.
한편, 다른 실시예로 상기 Interleave 방식의 경우, 도 17에 도시된 바와 같이, 먼저 소정의 플래시 메모리에서 발생된 오류 블록에 위치한 데이터를 해당 플래시 메모리의 예비 영역내의 소정 블록으로 이동시킨다.(S321)
또한, 상기 소정 블록을 상기 오류 블록과 동일한 오프셋 값을 가지는 다른 플래시 메모리의 블록과 함께 상위 블록을 구성한다. (S322)
즉, 상기 Interleave 방식은 도 18에 도시된 바와 같이, 각 플래시 메모리(810, 820)가 모두 오류 블록이 발생하지 않은 경우 각 플래시 메모리(810, 820)의 데이터 영역(813, 823)에서 같은 오프셋 값을 가지는 블록(813a, 823a)는 같은 상위 블록(830)으로 묶이고, 상기 상위 블록(830)에 대한 정보는 각 플래시 메모리(810, 820)의 가상 블록 관리 영역(811, 821)에 포함된 상위 블록 관리 영역에 저장된다.
이후, 소정의 플래시 메모리(810)에서 상기 상위 블록(830)에 포함된 블록(813a)에서 오류 블록이 발생한 경우, 도 19에 도시된 바와 같이, 상기 오류 블록(813a)에 위치한 데이터는 해당 플래시 메모리(810)의 예비 영역(812)에 포함된 소정 블록(812a)으로 이동된다.
또한, 상기 오류 블록(813a)과 같은 상위 블록(830)에 포함된 다른 플래시 메모리(820)의 블록(823a)을 상기 예비 영역(812)에 포함된 소정 블록(812a)와 함께 상위 블록(830)을 생성한다.
이때, 상기 상위 블록(830)에 관한 정보는 각 플래시 메모리(810, 820)의 가상 블록 관리 영역(811, 821)에 포함된 상위 블록 관리 영역에 저장된다.
본 발명에 따른 플래시 메모리의 데이터 관리 장치 및 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 플래시 메모리의 데이터 관리 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 적어도 하나 이상의 플래시 메모리를 사용하는 시스템에서 각 플래시 메모리에 발생된 오류 블록으로 인한 성능 저하를 효과적으로 방지할 수 있는 장점이 있다.
둘째, 여러 개의 플래시 메모리의 데이터를 관리하는 방식에 따라 오류 블록을 처리하는 방법을 달리하여 각 데이터 관리 방식에 따라 최적의 성능을 보장할 수 있는 장점도 있다.

Claims (9)

  1. 데이터 연산이 수행되는 데이터 영역 및 상기 데이터 영역에서 오류 블록에 위치한 데이터가 이동되는 예비 영역을 포함하는 다수의 플래시 메모리에 대한 동작을 제어하는 디바이스 드라이버; 및
    제 1플래시 메모리의 데이터 영역에서 오류 블록이 발생한 경우, 상기 오류 블록에 위치한 데이터를 상기 제 1플래시 메모리의 예비 영역으로 이동시키고 상기 오류 블록과 동일한 오프셋 값을 가지는 제 2플래시 메모리의 데이터 영역 내의 블록에 위치한 데이터를 상기 제 2플래시 메모리의 예비 영역으로 이동시키는 제 1방식, 및 상기 오류 블록에 위치한 데이터를 상기 제 1플래시 메모리의 예비 영역으로 이동시키고 상기 오류 블록과 동일한 오프셋 값을 가지는 제 2플래시 메모리의 데이터 영역내의 블록으로 이루어지는 상위 블록을 생성하여 상기 상위 블록에 상기 오류 블록에 위치한 데이터가 이동된 상기 제 1플래시 메모리의 예비 영역 내의 블록을 포함시키는 제 2방식 중 적어도 하나에 의해 데이터를 관리하는 제어부를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  2. 제 1 항에 있어서,
    상기 상위 블록에 대한 정보는, 상기 플래시 메모리의 가상 블록 관리 영역에 저장되는 것을 특징으로 하는 플래시 메모리의 데이터 관리 장치.
  3. 삭제
  4. 삭제
  5. 데이터 연산이 수행되는 데이터 영역 및 상기 데이터 영역에서 오류 블록에 위치한 데이터가 이동되는 예비 영역을 포함하는 다수의 플래시 메모리에서 발생된 오류 블록을 파악하는 제 1단계;
    제 1플래시 메모리에서 오류 블록이 발생한 경우, 상기 오류 블록에 위치한 데이터를 상기 제 1플래시 메모리의 예비 영역으로 이동시키는 제 2단계; 및
    상기 오류 블록과 동일한 오프셋 값을 가지는 제 2플래시 메모리의 데이터 영역 내 블록에 위치한 데이터를 상기 제 2플래시 메모리의 예비 영역으로 이동시키는 제 1방식, 및 상기 오류 블록과 동일한 오프셋 값을 가지는 상기 제 2플래시 메모리의 데이터 영역 내의 블록으로 이루어지는 상위 블록을 생성하여 상기 상위 블록에 상기 오류 블록에 위치한 데이터가 이동된 상기 제 1플래시 메모리의 예비 영역 내의 블록을 포함시키는 제 2방식 중 적어도 하나에 의해 데이터를 관리하는 제 3단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  6. 제 5 항에 있어서,
    상기 제 1 단계는 소정 블록에 데이터 연산을 수행할 경우 데이터 연산 실패 여부에 따라 오류 블록을 파악하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  7. 제 5 항에 있어서,
    상기 상위 블록에 대한 정보는, 상기 플래시 메모리의 가상 블록 관리 영역에 저장되는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  8. 삭제
  9. 삭제
KR1020040005020A 2004-01-27 2004-01-27 플래시 메모리의 데이터 관리 장치 및 방법 KR100608592B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020040005020A KR100608592B1 (ko) 2004-01-27 2004-01-27 플래시 메모리의 데이터 관리 장치 및 방법
JP2005004566A JP4704759B2 (ja) 2004-01-27 2005-01-11 フラッシュメモリのデータ管理装置及びその方法
EP05250205A EP1564755B1 (en) 2004-01-27 2005-01-17 Data management apparatus and method of flash memory
DE602005022512T DE602005022512D1 (de) 2004-01-27 2005-01-17 Vorrichtung und Verfahren zur Datenverwaltung in einem Flash-Speicher
CNB2005100024882A CN100334565C (zh) 2004-01-27 2005-01-25 闪速存储器的数据管理设备和方法
US11/043,214 US7454670B2 (en) 2004-01-27 2005-01-27 Data management apparatus and method of flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040005020A KR100608592B1 (ko) 2004-01-27 2004-01-27 플래시 메모리의 데이터 관리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20050077505A KR20050077505A (ko) 2005-08-03
KR100608592B1 true KR100608592B1 (ko) 2006-08-03

Family

ID=34698961

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040005020A KR100608592B1 (ko) 2004-01-27 2004-01-27 플래시 메모리의 데이터 관리 장치 및 방법

Country Status (6)

Country Link
US (1) US7454670B2 (ko)
EP (1) EP1564755B1 (ko)
JP (1) JP4704759B2 (ko)
KR (1) KR100608592B1 (ko)
CN (1) CN100334565C (ko)
DE (1) DE602005022512D1 (ko)

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7259988B2 (en) * 2005-10-06 2007-08-21 Phison Electronics Corp. Method for managing memory blocks in flash memory
KR100675015B1 (ko) * 2006-02-24 2007-01-29 삼성전자주식회사 스캔 기능 및 컬럼 리던던시를 포함하는 내장형 메모리장치, 리던던시 리페어 및 스캔 방법
KR100844988B1 (ko) * 2006-09-07 2008-07-08 주식회사 스타칩 메모리 고속복사 장치 및 방법
KR101342074B1 (ko) * 2006-10-25 2013-12-18 삼성전자 주식회사 컴퓨터시스템 및 그 제어방법
US7793175B1 (en) * 2007-01-10 2010-09-07 Marvell International Ltd. Automated scan testing of DDR SDRAM
WO2008087082A1 (en) * 2007-01-15 2008-07-24 Thomson Licensing Method and apparatus for recording data into a matrix of memory devices
US7669092B2 (en) 2007-02-26 2010-02-23 Micron Technology, Inc. Apparatus, method, and system of NAND defect management
US7996710B2 (en) * 2007-04-25 2011-08-09 Hewlett-Packard Development Company, L.P. Defect management for a semiconductor memory system
US7916540B2 (en) * 2007-05-17 2011-03-29 Samsung Electronics Co., Ltd. Non-volatile memory devices and systems including bad blocks address re-mapped and methods of operating the same
KR101091844B1 (ko) * 2007-05-17 2011-12-12 삼성전자주식회사 고속으로 배드 블록을 검색하는 플래시 메모리 시스템 및그것의 배드 블록 관리 방법
US20090013148A1 (en) * 2007-07-03 2009-01-08 Micron Technology, Inc. Block addressing for parallel memory arrays
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8341335B2 (en) 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
US8359516B2 (en) 2007-12-12 2013-01-22 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
TW200931425A (en) * 2008-01-11 2009-07-16 Phison Electronics Corp Method for managing flash memory blocks and controller using the same
CN101533663B (zh) * 2008-03-11 2014-07-16 深圳市朗科科技股份有限公司 提高闪存介质数据存取速度的方法
WO2009118720A2 (en) 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
TWI385667B (zh) * 2008-06-26 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料管理方法、儲存系統與控制器
US8095765B2 (en) * 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) * 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8868852B2 (en) * 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US9141538B2 (en) * 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
TWI435216B (zh) 2010-09-27 2014-04-21 Silicon Motion Inc 用來進行超區塊管理之方法以及記憶裝置及控制器
KR20120039985A (ko) 2010-10-18 2012-04-26 삼성전자주식회사 기록매체에 대한 리드 또는 라이트 처리 방법, 파라미터 조정 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
JP2012173778A (ja) * 2011-02-17 2012-09-10 Sony Corp 管理装置、および管理方法
JP5541194B2 (ja) 2011-02-23 2014-07-09 株式会社デンソー フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US8990614B2 (en) * 2013-03-14 2015-03-24 Apple Inc. Performance of a system having non-volatile memory
US8902532B2 (en) 2013-03-20 2014-12-02 International Business Machines Corporation Write avoidance areas around bad blocks on a hard disk drive platter
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
JP6221762B2 (ja) * 2014-01-16 2017-11-01 富士通株式会社 記憶装置、記憶方法及び制御装置
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US9368152B1 (en) * 2014-11-25 2016-06-14 Seagate Technology Llc Flexible virtual defect padding
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
KR102535700B1 (ko) * 2016-02-01 2023-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
TWI687933B (zh) * 2017-03-03 2020-03-11 慧榮科技股份有限公司 資料儲存裝置及其區塊釋放方法
US10387281B2 (en) 2017-08-30 2019-08-20 Micron Technology, Inc. Flash memory block retirement policy

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0121800B1 (ko) * 1992-05-08 1997-11-22 사또오 후미오 메모리 카드장치
JPH0729392A (ja) 1993-06-24 1995-01-31 Toshiba Corp 不揮発性半導体メモリおよびそれを使用した半導体ディスク装置
US5930815A (en) * 1995-07-31 1999-07-27 Lexar Media, Inc. Moving sequential sectors within a block of information in a flash memory mass storage architecture
US6081878A (en) * 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6728851B1 (en) * 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
KR19990055972A (ko) 1997-12-29 1999-07-15 윤종용 블록 재할당 기능을 갖는 플래시 메모리 이용 보조기억장치 및 그 방법
US6397313B1 (en) * 1999-10-19 2002-05-28 Advanced Micro Devices, Inc. Redundant dual bank architecture for a simultaneous operation flash memory
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
JP3574078B2 (ja) * 2001-03-16 2004-10-06 東京エレクトロンデバイス株式会社 記憶装置と記憶装置制御方法
JP4034947B2 (ja) * 2001-05-31 2008-01-16 株式会社ルネサステクノロジ 不揮発性記憶システム
EP1476873A4 (en) * 2002-02-22 2006-07-05 Lexar Media Inc MEMORY HOLDER WITH INTEGRATED LAMP LAMP
JP4196743B2 (ja) * 2003-06-12 2008-12-17 沖電気工業株式会社 半導体記憶装置

Also Published As

Publication number Publication date
CN1648876A (zh) 2005-08-03
US20050162947A1 (en) 2005-07-28
EP1564755B1 (en) 2010-07-28
DE602005022512D1 (de) 2010-09-09
US7454670B2 (en) 2008-11-18
EP1564755A2 (en) 2005-08-17
CN100334565C (zh) 2007-08-29
JP4704759B2 (ja) 2011-06-22
KR20050077505A (ko) 2005-08-03
JP2005216293A (ja) 2005-08-11
EP1564755A3 (en) 2007-07-25

Similar Documents

Publication Publication Date Title
KR100608592B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
US10204040B2 (en) High speed flash controllers
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP5418808B2 (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
EP2200045B1 (en) Method of updating contents of a multibit flash memory
CN102054533B (zh) 隔离顺序、随机和***数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器
JP4688584B2 (ja) ストレージ装置
US8156279B2 (en) Storage device and deduplication method
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US7814264B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US20070214309A1 (en) Nonvolatile storage device and data writing method thereof
KR100816761B1 (ko) 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법
US8601347B1 (en) Flash memory device and storage control method
US20130159605A1 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
JP7095568B2 (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
US20090210612A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
KR20050076156A (ko) 플래시 메모리의 데이터 복구 장치 및 방법
CN109933282B (zh) 存储器***及其操作方法
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
TWI793932B (zh) 固態儲存裝置及其相關的寫入控制方法
CN117420968B (zh) 存储控制器、存储设备的访问控制方法和存储***
CN110928480B (zh) 固态储存装置的数据处理方法
US11379362B2 (en) Memory system and operating method thereof

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: 20130701

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150630

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170630

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180629

Year of fee payment: 13