KR20080026393A - 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 - Google Patents

플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 Download PDF

Info

Publication number
KR20080026393A
KR20080026393A KR1020060091361A KR20060091361A KR20080026393A KR 20080026393 A KR20080026393 A KR 20080026393A KR 1020060091361 A KR1020060091361 A KR 1020060091361A KR 20060091361 A KR20060091361 A KR 20060091361A KR 20080026393 A KR20080026393 A KR 20080026393A
Authority
KR
South Korea
Prior art keywords
sector
mapping information
recorded
mapping
physical
Prior art date
Application number
KR1020060091361A
Other languages
English (en)
Other versions
KR100843133B1 (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 KR1020060091361A priority Critical patent/KR100843133B1/ko
Priority to US11/774,198 priority patent/US8595409B2/en
Priority to CNA2007101534294A priority patent/CN101149705A/zh
Publication of KR20080026393A publication Critical patent/KR20080026393A/ko
Application granted granted Critical
Publication of KR100843133B1 publication Critical patent/KR100843133B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법이 제공된다. 플래시 메모리에서 매핑 정보 재구성을 위한 장치는 물리적 유닛에 유저(User) 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 확보하고 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단하는 섹터 관리 모듈 및 상기 판단 결과에 따라 상기 확보된 매핑 정보가 기록되는 섹터에 상기 유저 데이터가 기록되는 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 기록하고 저장하는 매핑 정보 기록 모듈을 포함한다.
플래시 메모리, 블록, 섹터, 매핑, 메타 데이터

Description

플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법{Apparatus and method for reorganization of Mapping information in flash memory}
도 1a 내지 도 1c는 플래시 메모리 디바이스에서 페이지, 블록 그리고 유닛의 관계를 도시한 도면이다.
도 2는 종래의 물리적 유닛 내의 논리적 섹터와 물리적 섹터의 매핑 관계를 도시한 도면이다.
도 3은 본 발명의 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 장치의 구성을 도시한 구성도이다.
도 4a는 본 발명의 실시예에 따른 물리적 유닛 내의 논리적 섹터와 물리적 섹터의 매핑 관계를 도시한 도면이다.
도 4b는 논리적 유닛과 물리적 유닛의 매핑 관계를 도시한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 장치의 구성을 도시한 구성도이다.
도 6은 본발명의 실시예에 따른 물리적 유닛 내 물리적 섹터 와 논리적 섹터간의 매핑 정보를 도시한 도면이다.
도 7은 본 발명의 실시예에 따른 매핑 데이터 섹터를 포함한 데이터 섹터 쓰기 과정을 나타낸 흐름도이다.
도 8은 플래시 메모리 초기화 시 매핑 정보를 메모리로 재구성 하는 작업 순서를 나타낸 흐름도이다.
<도면의 주요 부분에 관한 부호의 설명>
301 : 섹터 관리 모듈
302 : 매핑 정보 기록 모듈
304 : 제어 모듈
본 발명은 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법에 관한 것으로서, 더욱 상세하게는 플래시 메모리 초기화 시 물리적 유닛 내의 물리적 섹터와 논리적 섹터를 재구성 하는데 필요한 엑세스(Access)를 최소화하여 매핑 재구성에 소요되는 시간을 단축시키는 플래시 메모리에서 빠른 재구성을 제공하는 장치 및 방법에 관한 것이다.
최근 디지털 카메라, MP3 플레이어, 핸드폰, 개인 휴대 정보 단말기(PDA) 와 같은 디지털 기기들이 많이 사용되고 있다.
플래시 메모리는 저전력, 비휘발성, 고성능, 물리적 안정성, 휴대성 등의 특징으로 인해 상술한 휴대용 디지털 기기의 저장 장치로 많이 사용되고 있으며, 특히 플래시 메모리의 용량이 크게 늘어나면서 디스크를 플래시 메모리로 대체하는 경향이 증가하는 추세다.
플래시 메모리는 물리적인 특성으로 인하여 쓰기 전 소거(Erase-Before-Write)연산을 실시한다.
이것은 섹터(Sector)에 쓰기 연산을 할 경우, 그 섹터가 속한 블록(Block)을 소거 연산을 통해 지운 후 쓰기 연산을 수행하는 것이다.
그러므로 섹터에 덮어쓰기 연산을 수행할 수 있는 하드 디스크에 비하여 동일한 I/O에 대해 더 많은 시간이 소요 될 수 있다.
또한 플래시 메모리의 블록은 10만 번 정도의 소거 연산을 수행하면 더 이상 소거 연산을 수행할 수 없다.
따라서 소거 연산은 플래시 메모리의 수명을 단축시키는 연산이다.
이러한 특성으로 인해 플래시 메모리의 특정 섹터에 대한 쓰기 연산을 수행하면 플래시 메모리에서는 현재 할당된 블록에서 비어있는 영역을 찾거나 혹은 소거 연산의 횟수가 적은 블록을 할당하여 쓰기 연산을 수행하는데, 이러한 소프트웨어를 플래시 트랜스레이션 레이어(Flash Translation Layer, 이하 FTL이라 칭한다)라 부르며 파일 시스템의 논리적 섹터 주소를 플래시의 물리적 섹터 주소로 맵핑하는 기능을 수행한다.
상술한 이유로 인해, 바람직한 FTL 알고리즘은 소거 연산을 가능한 최소화하고 한 개의 블록에 집중 되지 않도록 해야 한다.
FTL 알고리즘에서 사용되는 맵핑은 섹터 맵핑, 블록 맵핑, 하이브리드(Hybrid) 맵핑으로 나누어지는데, 섹터 맵핑은 섹터단위로 맵핑 테이블을 만들어 물리적인 섹터와 논리적인 섹터를 맵핑하는 것이고, 블록 맵핑은 물리적인 블록과 논리적인 블록을 맵핑하는 것이며, 하이브리드 맵핑은 두 가지 맵핑을 동시에 사용하는 것으로 두 가지 맵핑의 장점을 취할 수 있다.
이러한 맵핑 테이블은 성능상의 문제로 주로 시스템의 주기억장치 저장하여 실시간으로 참조하며, 전원이 off 되는 상황에 대비하여 플래시 메모리에도 저장된다.
도 1a 내지 도 1c는 플래시 메모리 디바이스에서 페이지, 블록 그리고 유닛의 관계를 도시한 도면이다.
유닛(Unit)은 FTL에서 사용하는 논리적인 개념으로서 하나의 물리적 유닛(110)은 소정 개수의 연속한 물리적 블록(120)으로 구성되어 있으며, 하나의 유닛은 물리적 유닛의 메타정보 저장영역(111)과 데이터 저장영역(112)으로 구분된다.
물리적 유닛의 메타정보 저장영역(111)은 해당 물리적 유닛에 매핑되는 논리적 유닛의 번호(111a)와 해당 물리적 유닛의 나이(Age)를 나타내는 뎁스(Depth)(111b), 그리고 해당 유닛의 삭제 횟수(111c)로 구성되며 해당 내용이 도 1b에 도시되어 있다.
참고로 뎁스(111b)는 그 숫자가 클수록 최근에 생성된 유닛에 속한다.
물리적 유닛의 데이터 저장 영역(112)은 데이터가 기록되는 영역(112a)과 해당 물리적 섹터와 매핑된 논리적 섹터 번호가 기록되는 영역(112b)으로 구성되며 해당 내용이 도 1c에 도시되어 있다.
도 2는 종래의 물리적 유닛 내의 논리적 섹터와 물리적 섹터의 매핑 관계를 도시한 도면이다.
플래시 메모리의 물리적 유닛(201) 내에는 데이터를 저장하는 물리적 섹터(201a), 그리고 해당 섹터에 매핑되는 논리적 섹터에 대한 정보(201b)가 표시되어 있다.
또한 시스템의 주기억장치에 저장되는 매핑 테이블(202)에는 논리적 섹터에 매핑되는 물리적 섹터(201a)에 대한 정보(202a, 202b)가 표시되어 있다.
참고로, 물리적 섹터(201a)에 대한 정보를 나타내는 논리적 섹터 번호(202a)는 편의상 그림으로 표현한 것이며, 실제로는 테이블(Table)의 인덱스(Index)로 표현될 수 있기 때문에 실제 매핑 테이블에는 저장되지 않는다.
이러한 종래 기술은 플래시 메모리 초기화 시 각 물리적 유닛 내의 논리적 섹터와 물리적 섹터간의 매핑을 재구성 하기 위해 플래시 메모리 내의 모든 물리적 유닛들에 속한 물리적 섹터를 읽는 작업을 필요로 하기 때문에 부팅 시간이 너무 오래 걸리는 문제점을 가지고 있으며, 이는 시스템의 성능 저하로 이어지게 된다.
본 발명은 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법을 통하여 플래시 메모리 초기화 시 물리적 유닛 내의 물리적 섹터와 논리적 섹터를 재구성하는데 필요한 엑세스를 최소화하여 매핑 재구성에 소요되는 시간을 단축시켜 시스템의 성능저하를 최소화하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것 이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 장치는 물리적 유닛에 유저(User) 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 확보하고 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단하는 섹터 관리 모듈 및 상기 판단 결과에 따라 상기 확보된 매핑 정보가 기록되는 섹터에 상기 유저 데이터가 기록되는 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 기록하고 저장하는 매핑 정보 기록 모듈을 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 다른 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 장치는 매핑 테이블 재구성 시 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 획득하는 매핑 정보 획득 모듈; 및 상기 획득한 매핑 정보 중 가장 최근에 기록된 매핑 데이터를 검색하여 매핑 테이블을 재구성하는 매핑 정보 재구성 모듈을 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 방법은 물리적 유닛에 유저(User) 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 확보하고 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단하는 섹터 관리 단계 및 상기 판단 결과에 따라 상기 확보된 매핑 정보가 기록되는 섹터에 상기 유저 데이터가 기록되는 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 기록하고 저장하는 매 핑 정보 기록 단계를 포함한다.
상기 목적을 달성하기 위하여, 본 발명의 다른 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 방법은 매핑 테이블 재구성 시 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 획득하는 매핑 정보 획득 단계 및 상기 획득한 매핑 정보 중 가장 최근에 기록된 매핑 데이터를 검색하여 매핑 테이블을 재구성하는 매핑 정보 재구성 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는
도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의한 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법을 설명하기 위한 구성도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다.
이 때, 처리 흐름도 도면들의 각 구성과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다.
이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 구성(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 구성(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑제되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 구성(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 구성은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있 다.
또, 몇 가지 대체 실행예들에서는 구성들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다.
예컨대, 잇달아 도시되어 있는 두 개의 구성들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 구성들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 플래시 메모리에서 매핑 정보 재구성을 위한 장치의 구성을 도시한 구성도이다.
플래시 메모리에서 매핑 정보 재구성을 위한 장치(300)는 물리적 유닛에 유저(User) 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 확보하고 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단하는 섹터 관리 모듈(301), 섹터 관리 모듈(301)의 판단 결과에 따라 확보된 매핑 정보가 기록되는 섹터에 유저 데이터가 기록되는 물리적 섹터 및 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 기록하고 저장하는 매핑 정보 기록 모듈(302) 및 각 모듈을 제어하는 제어 모듈(303)을 포함한다.
본 발명의 실시예에서 사용되는 '~모듈'이라는 용어는 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성요소를 의미하며, '~모듈'은 어떤 역할들을 수행한 다.
그렇지만 '~모듈'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다.
'~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다.
구성요소들과 '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~모듈'들로 결합되거나 추가적인 구성요소들과 '~모듈'들로 더 분리될 수 있다.
섹터 관리 모듈(301)은 물리적 유닛에 유저 데이터를 기록할 섹터와 매핑 정보를 기록할 섹터를 확보하고, 물리적 유닛에서 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단한다.
판단 결과, 소정 위치의 섹터까지 유저 데이터가 기록됐을 경우, 섹터 관리 모듈(301)은 매핑 정보 기록 모듈(302)을 호출하여 매핑 정보를 기록하도록 한다.
여기에서 '소정 위치의 섹터'란 물리적 유닛 내에서 유저 데이터가 기록되는 섹터 중 하나를 의미하는 것으로, 후에 설명하는 매핑 정보 기록 모듈(302)의해 매핑 정보가 기록 되는 섹터를 'N'이라 했을 때 소정 위치의 섹터는 'N-1'번째 섹터 가 된다.
'소정 위치의 섹터'에 대한 자세한 설명은 후에 매핑 정보 기록 모듈(302)에 대한 설명에서 더 자세히 다루도록 하겠다.
또한, 섹터 관리 모듈(301)은 물리적 유닛에 프리 상태의 섹터가 존재하는지 확인한다.
만일 프리 상태의 섹터가 존재하지 않을 경우, 섹터 관리 모듈(301)은 새로운 블록을 할당하고 해당 블록에 유저 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 할당한다.
도 4a는 본 발명의 실시예에 따른 물리적 유닛 내의 논리적 섹터와 물리적 섹터의 매핑 관계를 도시한 도면이다.
매핑 데이터 기록 모듈(302)은 섹터 관리 모듈(301)의 판단 결과에 따라, 섹터 관리 모듈(301)에서 확보한 매핑 정보가 기록 되는 섹터에 논리적 섹터와 물리적 섹터의 관계를 나타내는 매핑 정보를 기록한다.
매핑 데이터 기록 모듈(302)에 의해 매핑 정보가 기록되는 섹터를 '매핑 섹터'라고 하며, 매핑 섹터(401)는 소정의 개수를 가지고 물리적 유닛 내에 미리 정해진 곳에 위치한다.
즉, 섹터 관리 모듈(301)에서 확보한 매핑 정보가 기록 되는 섹터가 바로 매핑 섹터(401)가 되는 것이다.
여기에서 '매핑 정보'는 물리적 유닛 내의 물리적 섹터 번호와 일대일 매핑 된 논리적 섹터 번호를 포함한다.
참고로, 유저 데이터가 기록되는 섹터를 앞으로 '데이터 섹터'(402)로 칭하도록 한다.
매핑 섹터(401)는 데이터 섹터(402)와는 별도로, 섹터 재구성 시간을 줄이기 위해 유닛 내 특정 섹터 위치 마다 배치된다.
매핑 섹터(401)를 유닛내의 'K'번째 섹터라고 한다면 매핑 섹터에 기록되는 매핑 정보는 유닛내의 첫번째 섹터부터 K-1번째 섹터까지의 물리적 데이터 섹터(402)에 대한 논리적 섹터의 매핑 정보를 포함하며, 매핑 데이터 기록 모듈(302)은 상술한 K-1번째 섹터까지의 매핑 정보를 매핑 섹터(401)에 누적하여 기록한다.
참고로, 하나의 물리적 블록 내에 기록 할 수 있는 매핑 섹터 개수는 1 ~ N까지 가능 하다. (N : 블록내의 섹터 개수/2).
도 4b는 논리적 유닛과 물리적 유닛의 매핑 관계의 실시예를 도시한 도면이다.
논리적 유닛 0에 대해 물리적 유닛 13, 7, 12, 15가 매핑 되어 있으며, 뎁스가 높은 블록일수록 최신 데이터가 저장되어 있다.
동일하게 논리적 유닛 1 에는 물리적 유닛 2가, 논리적 유닛 2에는 물리적 유닛 3, 5가 매핑되어 있고, 논리적 유닛 3에는 물리적 유닛 9, 8, 4가 매핑 되어 있다.
물리적 유닛 10, 14, 6, 0, 11, 13, 1은 논리적 유닛에 매핑 되지 않은 물리적 유닛이다.
도 5는 본 발명의 다른 실시예에 따른 플래시 메모리에서 매핑 정보 재구성 을 위한 장치를 도시한 구성도이다.
플래시 메모리에서 매핑 정보 재구성을 위한 장치(500)는 매핑 테이블 재구성 시 물리적 섹터 및 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 획득하는 매핑 정보 획득 모듈(501) 및 획득한 매핑 정보 중 가장 최근에 기록된 매핑 정보를 검색하여 매핑 테이블을 재구성하는 매핑 정보 재구성 모듈(502) 및 각 모듈을 제어하는 제어 모듈(503)을 포함한다.
매핑 정보 획득 모듈(501)은 매핑 테이블 재구성 시 물리적 섹터 및 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 획득한다.
도 3에 도시된 매핑 정보 기록 모듈(302)은 매핑 정보가 기록 되기 바로 전까지의 매핑 정보를 누적하여 기록하므로, 매핑 정보 획득 모듈(501)은 가장 최근에 기록된 매핑 정보를 찾기 위해 물리적 유닛 내에 존재하는 가장 마지막으로 기록된 매핑 섹터부터 검색한다.
한편 매핑 정보 재구성 모듈(502)은 매핑 정보 중 가장 최근에 기록된 매핑 정보를 통해 매핑 정보를 재구성하고 재구성한 매핑 정보를 매핑 테이블에 반영한다.
도 6은 본발명의 실시예에 따른 물리적 유닛 내 물리적 섹터 와 논리적 섹터간의 매핑 정보를 도시한 도면이다.
참고로, 물리적 유닛 내 물리적 섹터 개수는 K 개 이고, 매핑 정보는 K/4번째, K/2번째, 3K/4번째 섹터, 3 곳의 섹터에 쓰기가 실행된다고 가정한다.
또한, 현재 데이터는 M+4 번째 섹터까지 쓰기가 되어 있으며, K/2 은 M+1 과 같다는 것을 가정한다.
매핑 정보 획득 모듈(501)은 물리적 유닛 내 물리적 섹터들의 논리적 섹터 매핑을 재구성하기 위해서 유닛 내에서, 가장 최근에 기록된 매핑 섹터를 찾는다.
찾는 방법은 NAND에 대한 엑세스를 최대한 적게 하는 방법을 선택하게 되는데, 본 발명의 실시예로 바이너리 검색(Binary Search)을 사용하도록 한다.
먼저, 매핑 정보 획득 모듈(501)은 유닛 내에서 K/2번째 섹터를 확인하고 매핑 정보가 존재한다면, 3K/4번째 섹터를 확인한다.
3K/4번째 섹터에 매핑 정보가 존재한다면, 3K/4번째 섹터가 가장 최근에 기록된 매핑 섹터가 되고, 만일 존재하지 않는다면, K/2번째 섹터가 가장 최근에 기록된 매핑 섹터가 된다.
만일, K/2번째 섹터에 매핑 정보가 존재하지 않을 경우, K/4번째 섹터에 매핑 정보가 존재하는지 확인 한다.
K/4번째 섹터에 매핑 정보가 존재 할 경우, K/4번째 섹터가 가장 최근에 기록된 매핑 섹터가 되고, 만일 K/4번째 섹터에 매핑 정보가 존재하지 않는다면, 매핑 정보 획득 모듈(501)은 해당 유닛을 아직 매핑 섹터가 기록되지 않은 상태로 파악하게 된다.
매핑 정보 획득 모듈(501)은, 실시예로 제시한 바이너리 검색 방법을 통해, K/2번째 섹터를 가장 최근에 기록된 매핑 섹터로 파악한 후, K/2번째 섹터를 획득하고, 매핑 정보 재구성 모듈(502)은 매핑 정보 획득 모듈(501)에서 획득한 정보를 바탕으로 물리적 섹터 대 논리적 섹터 간의 매핑 테이블을 재구성 한다.
K/2번째 섹터에는 물리적 섹터 번호(Physical Sector Number, PSN) 1 ~ M(K/2-1)번째 데이터 섹터들의 논리적 섹터 매핑 정보가 기록되어 있다.
매핑 정보 재구성 모듈(502)은, 섹터 M+2 부터 M+4 까지의 물리적 섹터에 대해서는 직접 해당 섹터들의 스페어 영역에 기록되어 있는 논리적 섹터 번호(Logical Sector Number, LSN)를 읽어 매핑 정보를 구한 후, 매핑 테이블에 반영한다.
본 발명은 물리적 유닛 내 유저 데이터 섹터 쓰기 시, 논리적 섹터와 물리적 섹터 간의 매핑을 나타내는 매핑 정보를 물리적 유닛 내 미리 정해진 위치에 기록 하는 동작과 이를 이용하여 플래시 메모리의 물리적 섹터와 논리적 섹터의 매핑을 재구성하는 동작으로 이루어져 있다.
여기에서 유닛내에 매핑 정보를 저장하는 섹터의 개수와 위치는 시스템 사용자 혹은 개발자가 임의로 조정 가능하다.
물리적 유닛의 미리 정해진 위치에 존재 하는 매핑 정보를 이용하여, 플래시 메모리 재 구동 시 필요한 매핑 정보 재구성에 소요되는 시간을 최소화하는 방법을 도 6내지 도 7을 통해 설명하도록 한다.
도 7은 본 발명의 실시예에 따른 매핑 섹터를 포함한 데이터 섹터 쓰기 과정을 나타낸 흐름도이다.
FTL에 데이터 섹터 쓰기 요청이 도착 하면, 섹터 관리 모듈(301)은 쓰기 요청된 데이터 섹터의 논리적 섹터가 매핑 되어 있는 논리적 유닛을 찾는다(S701).
S701 후, 섹터 관리 모듈(301)은 논리적 유닛에 매핑 되어 있는 물리적 유닛 에 프리 상태의 섹터가 남아 있는지 확인 한다(S702).
S702 결과, 물리적 유닛에 프리 상태의 섹터가 남아 있지 않다면, 섹터 관리 모듈(301)은 새로운 물리적 유닛을 해당 논리적 유닛에 할당하고 할당된 새로운 물리적 유닛의 블록에 유저 데이터를 기록할 섹터와 매핑 데이터를 기록할 섹터를 확보한다(S703).
만일 S702 결과, 물리적 유닛에 프리 상태의 섹터가 남아있다면, 섹터 관리 모듈(301)은 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단한다. 즉, 발견된 물리적 섹터의 오프셋(Offset) N번째 섹터가 매핑 정보를 기록하기로 예정되어 있는 위치인지 확인 한다(S704).
여기에서 '소정 위치의 섹터'란 물리적 유닛 내에서 유저 데이터가 기록되는 섹터 중 하나를 의미하는 것으로, 매핑 정보 기록 모듈(302)의해 매핑 정보가 기록되는 섹터를' N'이라 했을 때 소정 위치의 섹터는 N-1번째 섹터가 된다.
S704 결과, 발견된 물리적 섹터의 오프셋 N 이 매핑 정보를 기록하기로 예정되어 있는 위치가 아니라면, 매핑 정보 기록 모듈(302)은 쓰기 요청된 논리적 섹터를 물리적 섹터의 오프셋 N 번째 섹터에 논리적 섹터 번호와 함께 기록한다(S705).
만일 S704 결과, 물리적 섹터의 오프셋 N 번째 섹터가 매핑 정보를 기록할 위치라면 매핑 정보 기록 모듈(302)은 오프셋 0 ~ N-1까지의 물리적 섹터들의 논리적 섹터 매핑 정보를 물리적 섹터의 오프셋 N번째 섹터에 기록한다(S706).
S706 후, 매핑 정보 기록 모듈(302)은 쓰기 요청된 논리적 섹터를 오프셋 N+1 번째 물리적 섹터에 논리적 섹터 번호와 함께 기록하고(S707) 메모리 상의 섹 터 매핑 정보를 업데이트한다(S708).
도 8은 부팅 시 매핑 정보를 메모리로 재구성하는 작업 순서를 나타낸 흐름도이다.
매핑을 재구성하는 작업은 크게 Level 1 매핑인 논리적 유닛과 물리적 유닛 매핑 정보를 플래시로부터 읽어서 재구성하는 작업과 Level 2 매핑인 각 물리적 유닛 내에서의 논리적 섹터와 물리적 섹터의 매핑을 재구성하는 작업으로 나뉘어져 있다.
Level 2 매핑인 각 물리적 유닛안에서의 논리적 섹터와 물리적 섹터의 매핑을 재구성하는 작업은 물리적 유닛내의 매핑 정보를 참조해서 최대한 적은 개수의 물리적 데이터를 읽은 방향으로 구성되어 있다.
먼저 디바이스 내의 모든 물리적 유닛의 메타 정보를 스캔하여, 논리적 유닛 대 물리적 유닛의 매핑 정보를 재구성 한다(S801).
S801 후, 매핑 데이터 재구성 모듈(303)은 논리적 유닛에 매핑된 모든 물리적 유닛에 대해 S802 ~ S810을 수행하여 물리적 유닛 내의 물리적 섹터들과 논리적 섹터 간의 매핑을 재구성한다.
매핑 정보 획득 모듈(501)은 물리적 유닛 번호를 0으로 초기화한 후(S802), 물리적 유닛 번호가 논리적 유닛에 매핑 되었는지 확인한다(S803).
S803 결과, 물리적 유닛 번호가 논리적 유닛에 매핑 되어있지 않다면 매핑 정보 획득 모듈(501)은 물리적 유닛 번호가 디바이스의 마지막 물리적 유닛 번호인지를 확인하고(S804), 확인 결과 물리적 유닛 번호가 디바이스의 마지막 물리적 유 닛 번호이면 작업을 종료한다.
만일 S804 결과, 물리적 유닛 번호가 디바이스의 마지막 물리적 유닛 번호가 아니라면 물리적 유닛 번호를 1 증가시키고 S803의 과정을 반복한다(S805).
만일 S803의 결과, 물리적 유닛 번호가 논리적 유닛에 매핑 되어있다면 매핑 정보 획득 모듈(501)은 물리적 유닛 내 가장 마지막으로 기록된 매핑 섹터를 찾는다(S806).
S806 후, 매핑 정보 재구성 모듈(502)은 메모리의 매핑 테이블을 업데이트 하고(S807), 가장 마지막으로 메핑 정보를 기록한 이후 기록된 다른 데이터가 있는지 확인한다(S808).
참고로, 매핑 정보를 기록 하는 위치는 고정되어 있기 때문에 물리적 유닛 내에서 가장 최근에 기록된 매핑 데이터를 찾는 것은 1 ~ N 번의 NAND 엑세스를 통해 수행 가능하다(N : 물리적 블록 내에 미리 정해진 매핑 섹터 개수).
S808 결과, 가장 마지막으로 매핑 정보를 기록한 이후 기록된 다른 데이터가 없다면 S804의 과정을 반복한다.
만일 S808의 결과, 가장 마지막으로 메핑 정보를 기록한 이후 기록된 다른 데이터가 있다면, 매핑 정보 재구성 모듈(502)은 유닛 내 가장 마지막으로 기록된 매핑 섹터(K번째 섹터로 가정)에 저장된 정보를 가지고 K-1 번째 섹터까지 기록된 데이터 섹터들의 매핑 정보를 재구성 한다(S809).
S809 후, 매핑 정보 재구성 모듈(503)은 K번째 이후 기록되어 있는 데이터 섹터가 있을 경우, 이들 섹터 들에 대한 매핑 정보를 S809에서 재구성된 매핑 정보 에 업데이트한다(S810).
S810 후, 매핑 데이터 재구성 모듈(303)은 S804의 과정을 반복한다.
위의 예는 단지 하나의 실시예로서, 실제로 물리적 유닛내에 저장되는 매핑 데이타 섹터의 개수와 위치, 최신 매핑 데이타 섹터를 찾는 방법 등은 임의로 선택할 수 있으며 본 발명의 실시예로 한정되지 않는다.
이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
상기한 바와 같은 본 발명의 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
플래시 메모리 초기화 시 물리적 유닛 내의 물리적 섹터와 논리적 섹터를 재구성하는데 필요한 플래시 메모리 엑세스를 최소화하여 매핑 재구성에 소요되는 시간을 단축시켜 시스템의 성능저하를 최소화하는 장점이 있다.

Claims (18)

  1. 물리적 유닛에 유저(User) 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 확보하고 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단하는 섹터 관리 모듈; 및
    상기 판단 결과에 따라 상기 확보된 매핑 정보가 기록되는 섹터에 상기 유저 데이터가 기록되는 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 기록하고 저장하는 매핑 정보 기록 모듈을 포함하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  2. 제 1항에 있어서,
    상기 소정 위치의 섹터는 상기 매핑 정보가 기록되는 섹터를 'N'이라 했을 때 'N-1번째' 섹터인 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  3. 제 2항에 있어서,
    상기 매핑 정보가 기록되는 섹터는 소정의 개수를 가지고 상기 물리적 유닛 내에 미리 위치가 정해지는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  4. 제 1항에 있어서,
    상기 섹터 관리 모듈은 유닛내에 프리 상태의 섹터가 존재하지 않을 경우 새 로운 블록을 할당하고 해당 블록에서 상기 매핑 정보가 기록되는 섹터를 할당하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  5. 제 1항에 있어서,
    상기 매핑 정보 기록 모듈은 상기 매핑 정보가 기록되는 섹터 바로 전까지의 섹터에 대한 매핑 정보를 누적하여 기록하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  6. 매핑 테이블 재구성 시 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 획득하는 매핑 정보 획득 모듈; 및
    상기 획득한 매핑 정보 중 가장 최근에 기록된 매핑 데이터를 검색하여 매핑 테이블을 재구성하는 매핑 정보 재구성 모듈을 포함하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  7. 제 6항에 있어서,
    상기 매핑 정보 획득 모듈은 상기 가장 최근에 기록된 매핑 정보를 상기 물리적 유닛 내에 존재하는 가장 마지막으로 기록된 매핑 정보 섹터부터 검색하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  8. 제 7항에 있어서,
    상기 매핑 정보 재구성 모듈은 상기 매핑 정보가 기록된 섹터를 참조하여 매핑 정보를 재구성하고 상기 재구성한 정보를 매핑 테이블에 반영하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  9. 제 6항에 있어서,
    상기 매핑 정보는 상기 물리적 유닛 내의 물리적 섹터 번호와 일대일 매핑 된 논리적 섹터 번호를 포함하는 플래시 메모리에서 매핑 정보 재구성을 위한 장치.
  10. 물리적 유닛에 유저(User) 데이터가 기록되는 섹터 및 매핑 정보가 기록되는 섹터를 확보하고 소정 위치의 섹터까지 유저 데이터가 기록됐는지 판단하는 섹터 관리 단계; 및
    상기 판단 결과에 따라 상기 확보된 매핑 정보가 기록되는 섹터에 상기 유저 데이터가 기록되는 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 기록하고 저장하는 매핑 정보 기록 단계를 포함하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  11. 제 10항에 있어서,
    상기 소정 위치의 섹터는 상기 매핑 정보를 기록하는 섹터를 'N'이라 했을 때 'N-1번째' 섹터인 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  12. 제 11항에 있어서,
    상기 매핑 정보가 기록되는 섹터는 소정의 개수를 가지고 상기 물리적 유닛 내에 미리 위치가 정해지는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  13. 제 10항에 있어서,
    상기 섹터 관리 단계는 유닛내에 프리 상태의 섹터가 존재하지 않을 경우 새로운 블록을 할당하고 해당 블록에서 상기 매핑 정보가 기록되는 섹터를 할당하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  14. 제 10항에 있어서,
    상기 매핑 정보 기록 단계는 상기 매핑 정보가 기록되는 섹터 바로 전까지의 섹터에 대한 매핑 정보를 누적하여 기록하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  15. 매핑 테이블 재구성 시 물리적 섹터 및 상기 물리적 섹터에 대응하는 논리적 섹터의 관계를 나타내는 매핑 정보를 획득하는 매핑 정보 획득 단계; 및
    상기 획득한 매핑 정보 중 가장 최근에 기록된 매핑 데이터를 검색하여 매핑 테이블을 재구성하는 매핑 정보 재구성 단계를 포함하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  16. 제 15항에 있어서,
    상기 매핑 정보 획득 단계는 상기 가장 최근에 기록된 매핑 정보를 상기 물리적 유닛 내에 존재하는 가장 마지막으로 기록된 매핑 정보 섹터부터 검색하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  17. 제 16항에 있어서,
    상기 매핑 정보 재구성 단계는 상기 매핑 정보가 기록된 섹터를 참조하여 매핑 정보를 재구성하고 상기 재구성한 정보를 매핑 테이블에 반영하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
  18. 제 15항에 있어서,
    상기 매핑 정보는 상기 물리적 유닛 내의 물리적 섹터 번호와 일대일 매핑 된 논리적 섹터 번호를 포함하는 플래시 메모리에서 매핑 정보 재구성을 위한 방법.
KR1020060091361A 2006-09-20 2006-09-20 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법 KR100843133B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060091361A KR100843133B1 (ko) 2006-09-20 2006-09-20 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
US11/774,198 US8595409B2 (en) 2006-09-20 2007-07-06 Apparatus and method for reorganization of mapping information in flash memory
CNA2007101534294A CN101149705A (zh) 2006-09-20 2007-09-19 在闪存中用于重构映射信息的设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060091361A KR100843133B1 (ko) 2006-09-20 2006-09-20 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20080026393A true KR20080026393A (ko) 2008-03-25
KR100843133B1 KR100843133B1 (ko) 2008-07-02

Family

ID=39190028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060091361A KR100843133B1 (ko) 2006-09-20 2006-09-20 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법

Country Status (3)

Country Link
US (1) US8595409B2 (ko)
KR (1) KR100843133B1 (ko)
CN (1) CN101149705A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101155566B1 (ko) * 2008-12-01 2012-06-19 한국전자통신연구원 공간 데이터의 페이지 매핑 방법
KR101432398B1 (ko) * 2009-07-16 2014-08-20 기제케 운트 데브리엔트 게엠베하 메모리 구성을 알리는 방법
US10126978B2 (en) 2016-08-19 2018-11-13 SK Hynix Inc. Memory device detecting last erased page, memory system having the same, and operating method thereof
KR20220038604A (ko) 2019-05-30 2022-03-29 래피드 제노믹스 엘엘씨 표적 게놈 영역의 유연한 및 고처리량 시퀀싱

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
KR20100021868A (ko) * 2008-08-18 2010-02-26 삼성전자주식회사 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
CN101676882B (zh) * 2008-09-16 2013-01-16 美光科技公司 存储器装置的内嵌映射信息
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US20120254541A1 (en) * 2011-04-04 2012-10-04 Advanced Micro Devices, Inc. Methods and apparatus for updating data in passive variable resistive memory
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9823863B1 (en) * 2014-06-30 2017-11-21 Sk Hynix Memory Solutions Inc. Sub-blocks and meta pages for mapping table rebuild
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9990278B2 (en) * 2014-10-20 2018-06-05 Cypress Semiconductor Corporation Overlaid erase block mapping
TWI698744B (zh) * 2019-04-10 2020-07-11 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之更新方法
US11768631B2 (en) * 2021-08-31 2023-09-26 Micron Technology, Inc. Rapid reliable file system access

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US6978342B1 (en) * 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
JPH09212411A (ja) 1996-02-06 1997-08-15 Tokyo Electron Ltd メモリシステム
JP3197815B2 (ja) * 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
KR100319598B1 (ko) 1998-03-18 2002-04-06 김영환 플래시메모리어레이액세스방법및장치
JP4315488B2 (ja) 1998-06-30 2009-08-19 ソニー株式会社 データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法
US6282605B1 (en) * 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
GB0123415D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
US6711663B2 (en) * 2001-11-15 2004-03-23 Key Technology Corporation Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6839826B2 (en) 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
KR100706242B1 (ko) * 2005-02-07 2007-04-11 삼성전자주식회사 메모리 시스템 및 그것의 런 단위 어드레스 매핑 테이블 구성 방법
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
KR101185617B1 (ko) * 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US7711923B2 (en) * 2006-06-23 2010-05-04 Microsoft Corporation Persistent flash memory mapping table
US7991942B2 (en) * 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101155566B1 (ko) * 2008-12-01 2012-06-19 한국전자통신연구원 공간 데이터의 페이지 매핑 방법
KR101432398B1 (ko) * 2009-07-16 2014-08-20 기제케 운트 데브리엔트 게엠베하 메모리 구성을 알리는 방법
US10126978B2 (en) 2016-08-19 2018-11-13 SK Hynix Inc. Memory device detecting last erased page, memory system having the same, and operating method thereof
KR20220038604A (ko) 2019-05-30 2022-03-29 래피드 제노믹스 엘엘씨 표적 게놈 영역의 유연한 및 고처리량 시퀀싱

Also Published As

Publication number Publication date
US20080071971A1 (en) 2008-03-20
CN101149705A (zh) 2008-03-26
KR100843133B1 (ko) 2008-07-02
US8595409B2 (en) 2013-11-26

Similar Documents

Publication Publication Date Title
KR100843133B1 (ko) 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
KR101257989B1 (ko) 인덱스 페이지 복구
KR100526190B1 (ko) 플래시 메모리의 재사상 방법
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
US20080077728A1 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
US20100125694A1 (en) Memory device and management method of memory device
US20150046636A1 (en) Storage device, computer system and methods of operating same
JP2012198811A (ja) メモリシステム、不揮発性記憶装置及びその制御方法
JP2008112445A (ja) 不揮発性メモリを管理する装置及び方法
KR100703807B1 (ko) 블록 방식의 메모리에서 데이터의 변경 유형에 따라 블록을관리하는 방법 및 장치
TWI421683B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
KR20130030242A (ko) 비휘발성 메모리를 갖는 시스템에 대한 비정상 셧다운의 핸들링
US9606912B2 (en) Tracking and utilizing second level map index for recycling of solid state drive blocks
KR100781517B1 (ko) 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법
CN114036079B (zh) 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法
KR20020092261A (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
CN112306377B (zh) 数据恢复方法、数据恢复装置、电子设备及存储介质
CN112306375B (zh) 用户数据搬移的恢复方法、装置、电子设备及存储介质
JP2016177822A (ja) メモリシステム
KR20080112069A (ko) 블록 단위 입출력 디바이스에서 피램을 이용한 데이터 기록시스템 및 방법
KR20240065774A (ko) 네임스페이스의 순차성을 기초로 논리 주소를 변환하는 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
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