KR20110139956A - 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법 - Google Patents

맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법 Download PDF

Info

Publication number
KR20110139956A
KR20110139956A KR1020100060096A KR20100060096A KR20110139956A KR 20110139956 A KR20110139956 A KR 20110139956A KR 1020100060096 A KR1020100060096 A KR 1020100060096A KR 20100060096 A KR20100060096 A KR 20100060096A KR 20110139956 A KR20110139956 A KR 20110139956A
Authority
KR
South Korea
Prior art keywords
page
data
link
stored
address
Prior art date
Application number
KR1020100060096A
Other languages
English (en)
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 KR1020100060096A priority Critical patent/KR20110139956A/ko
Priority to US13/159,075 priority patent/US20110320689A1/en
Publication of KR20110139956A publication Critical patent/KR20110139956A/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

본 발명은 고속으로 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법에 대하여 개시된다. 데이터 기억 장치는, 복수개의 블락으로 분할되고 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되는 불휘발성 반도체 메모리와, 각 블락의 각 페이지의 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 적어도 2개 이상의 포워드 링크를 저장하도록 제어하는 제어부를 포함한다. 또한, 제어부는 각 블락의 각 페이지의 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지 위치를 알려주는 링크 오프셋을 저장하도록 제어한다.

Description

맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법{Data storage device and data management method for processing of mapping table}
본 발명은 저장 매체에 관한 것으로, 특히 불휘발성 반도체 메모리를 기억 매체로 하고 호스트 기기에 착탈 가능한 데이터 기억 장치 및 데이터 기억 장치의 데이터 관리 방법에 관한 것이다.
불휘발성 반도체 메모리는 대용량 데이터 저장 장치로 사용된다. 예를 들면, PC(Personal Computer)나 휴대 전화기, 휴대형 AV(audio/Video) 기기 등의 호스트 기기에 착탈 가능한 기반성의 데이터 저장 장치로서 널리 사용되고 있다. 데이터 저장 장치는 FAT(File Allocation table) 파일 시스템 등의 호스트 기기 측의 파일 시스템에 따라서 데이터의 기록 및 읽기 동작의 관리가 행해진다. 불휘발성 반도체 메모리 내의 물리 영역은 복수의 블락들로 분할되고, 해당 블락은 데이터의 소거 단위가 된다. 또한, 블락은 복수의 페이지들로 분할되고, 해당 페이지는 데이터 기록 및 읽기의 단위가 된다. 파일 시스템을 이용하여 데이터를 기록하고 읽고 소거를 행하는 때에는, 호스트 기기의 시스템측으로부터 부여받은 논리 어드레스와 불휘발성 반도체 메모리 내의 페이지의 물리 어드레스와의 대응 관계를 관리할 필요가 있다.
본 발명이 이루고자하는 기술적 과제는 예상치 못한 전원 오류의 발생시 고속으로 맴핑 테이블을 복구할 수 있는 데이터 기억 장치를 제공하는 데 있다.
본 발명이 이루고자하는 다른 기술적 과제는 상기 데이터 기억 장치의 데이터 관리 방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일면에 따른 데이터 기억 장치는, 복수개의 블락으로 분할되고 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되는 불휘발성 반도체 메모리와, 각 블락의 각 페이지의 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 적어도 2개 이상의 포워드 링크를 저장하도록 제어하는 제어부를 포함한다.
본 발명의 실시예들에 따라, 제어부는 적어도 2개 이상의 포워드 링크 중 데이터 영역으로부터 가장 먼 최상위 포워드 링크를 가장 신뢰성이 높은 포워드 링크가 되도록 제어할 수 있다.
본 발명의 실시예들에 따라, 제어부는 적어도 2개 이상의 포워드 링크 중 데이터 영역에 가장 가까운 최하위 포워드 링크를 가장 신뢰성이 높은 포워드 링크가 되도록 제어할 수 있다.
본 발명의 실시예들에 따라, 제어부는 적어도 2개 이상의 포워드 링크 중 무효인 포워드 링크를 사용자가 정의한 숫자로 설정할 수 있다.
본 발명의 실시예들에 따라, 불휘발성 반도체 메모리는 적어도 2개 이상의 포워드 링크 저장을 위하여 프로그램 횟수를 1회 이상 제공할 수 있다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 다른 면에 따른 데이터 기억 장치는, 복수개의 블락으로 분할되고 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되는 불휘발성 반도체 메모리와, 각 블락의 각 페이지의 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지 위치를 알려주는 링크 오프셋을 저장하도록 제어하는 제어부를 포함한다.
본 발명의 실시예들에 따라, 링크 오프셋은 이전 데이터가 저장되어 있는 페이지 주소를 저장할 수 있다.
본 발명의 실시예들에 따라, 링크 오프셋은 이전 데이터가 저장되어 있는 페이지 주소와 갱신된 데이터가 저장되어 있는 페이지의 주소의 차에 해당하는 값을 저장할 수 있다.
본 발명의 실시예들에 따라, 링크 오프셋은 이전 데이터가 저장되어 있는 페이지 주소와 시작 페이지 주소의 차에 해당하는 값을 저장할 수 있다.
본 발명의 실시예들에 따라, 링크 오프셋은 사용자가 정의한 숫자에 의해 무효 링크 오프셋으로 설정될 수 있다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명의 일면에 따른 데이터 관리 방법은, 복수개의 블락으로 분할되고 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되고 각 페이지의 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 적어도 2개 이상의 포워드 링크를 포함하는 불휘발성 반도체 메모리를 갖는 데이터 기억 장치에 있어서, 해당 페이지의 적어도 2개 이상의 포워드 링크를 읽는 단계; 읽혀진 적어도 2개 이상의 포워드 링크 중 가장 신뢰성이 높을 것으로 판단되는 포워드 링크에 저장된 페이지의 주소를 읽는 단계, 그리고 신뢰성이 높을 것으로 판단되는 포워드 링크에 저장된 페이지의 주소를 맵핑 테이블에 작성한다.
본 발명의 실시예들에 따라, 적어도 2개 이상의 포워드 링크 중 가장 신뢰성이 높을 것으로 판단되는 포워드 링크가 무효 포워드 링크인 경우, 다음 포워드 링크에 저장된 페이지 주소를 읽고, 다음 포워드 링크에 저장된 페이지의 주소를 맵핑 테이블에 작성할 수 있다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명의 다른 면에 따른 데이터 관리 방법은, 복수개의 블락으로 분할되고 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되고 각 페이지의 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지의 위치를 알려주는 링크 오프셋을 포함하는 불휘발성 반도체 메모리를 갖는 데이터 기억 장치에 있어서, 복수개의 페이지 모두의 포워드 링크를 읽는 단계, 복수개의 페이지 모두의 링크 오프셋을 읽는 단계, 해당 페이지의 링크 오프셋이 무효 링크 오프셋이면 해당 페이지의 포워드 링크에 저장된 페이지 주소를 맵핑 테이블에 작성하는 단계, 그리고 해당 페이지의 링크 오프셋이 유효 링크 오프셋이면 해당 페이지의 링크 오프셋에 대응하는 페이지 주소를 무시하고 해당 페이지의 주소를 갱신된 페이지 주소로 맵핑 테이블에 작성하는 단계를 포함한다.
상술한 본 발명에 의하면, 적어도 2개 이상의 포워드 링크를 이용하여 다음 데이터가 저장되어 있는 페이지 정보를 알려줌으로써, 데이터 저장 장치에 급작스럽게 전원이 차단되는 경우나 메타 테이블에 오류가 발생하는 경우에도 전체 페이지를 스캔하지 않고 데이터가 저장되어 있는 해당 페이지만을 읽음에 따라 맵핑 테이블을 고속으로 복구할 수 있다.
또한, 본 발명은 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지의 위치를 알려주는 링크 오프셋을 이용함에 따라, 정확하게 맵핑 테이블을 복구할 수 있다.
도 1은 본 발명의 일실시예에 따른 데이터 저장 장치를 설명하는 도면이다.
도 2는 도 1의 데이터 저장 장치가 이용되는 환경을 설명하는 도면이다.
도 3은 도 1의 불휘발성 반도체 메모리 내 메모리 영역의 구성을 설명하는 도면이다.
도 4는 도 3의 1개의 블락 내 각 페이지의 구성을 나타내는 도면이다.
도 5는 도 4의 페이지 구성을 이용한 맵 테이블 작성 방법을 설명하는 도면이다.
도 6은 본 발명의 제1 실시예에 따른 스페어 섹터에 저장되는 정보를 나타내는 도면이다.
도 7은 도 6의 포워드 링크들의 기능을 설명하는 도면이다.
도 8은 도 6의 스페어 섹터에 저장되는 복수개의 포워드 링크를 이용하여 불휘발성 반도체 메모리를 관리하는 방법을 설명하는 도면이다.
도 9는 도 8에서 설명된 맵핑 테이블을 작성하는 방법을 설명하는 플로우챠트이다.
도 10은 본 발명의 제2 실시예에 따른 스페어 섹터에 저장되는 정보를 나타내는 도면이다.
도 11은 도 10의 스페어 섹터에 저장되는 포워드 링크와 링크 오프셋를 이용하여 불휘발성 반도체 메모리를 관리하는 방법을 설명하는 도면이다.
도 12 내지 도 14는 도 11의 포워드 링크과 링크 오프셋의 기능을 설명하는 도면들이다.
도 15는 도 10의 스페어 섹터에 저장된 포워드 링크와 링크 오프셋을 이용하여 맵핑 테이블을 작성하는 방법을 설명하는 플로우챠트이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 데이터 저장 장치를 설명하는 도면이다. 도 1을 참조하면, 데이터 저장 장치(10)는 불휘발성 반도체 메모리(1), 프로세서(2), 내부 램(3), 버퍼 램(4) 그리고 인터페이스부(5)를 포함한다. 데이터 저장 장치(10)는, 도 2에 도시된 바와 같이, 적어도 하나 이상의 호스트와 스토리지 서버를 가지는 유무선 클라우드 컴퓨터 시스템 또는 DSFS(Distributed shared file system)에서 스토리지 서버 내에 사용된다. 또는 데이터 저장 장치(10)는 카드 형태의 소위 메모리 카드이고, PC나 디지털 카메라 등의 호스트 기기에 착탈 가능한 리무버블 메모리(removable memory)로서 사용된다.
불휘발성 반도체 메모리(1)는 복수의 싱글 레벨 셀로 구성되거나 복수의 멀티 레벨 셀로 구성되는 NAND 플래쉬 메모리이다.
프로세서(2)는, 데이터 저장 장치(10)를 전체적으로 제어하면서 내부 램(3) 또는 버퍼 램(4)과 불휘발성 반도체 메모리(1)과의 사이에서 데이터 전송을 행하고, 데이터의 독출, 기록 및 소거 동작을 행하는 제어부이다.
내부 램(3)은, 프로세서(2)의 작업용의 저장 영역으로서 사용되고, 예를 들면 호스트 기기로부터 전송되는 프로세서(2)에 대한 동작 제어 커맨드나 해당 동작 제어 커맨드를 실행하는 때에 필요한 파라미터 등이나 데이터 저장 장치(10) 내부 상태를 일시적으로 저장한다. 또한, 내부 램(3)은 불휘발성 반도체 메모리(1)로 부터 독출되는 데이터를 불휘발성 메모리 장치(1)에 기록하는 때에 해당 데이터를 일단 저장한다.
버퍼 램(4)은 소위 페이지 버퍼로서 기능하고, 인터페이스부(5)를 통하여 호스트 기기로부터 전송되는 기록 데이터를 일단 저장함과 동시에 인터페이스부(5)를 통하여 불휘발성 반도체 메모리(1)로부터 독출되는 데이터를 호스트 기기에 전송하기 위하여 일단 저장한다.
인터페이스부(5)는 호스트 기기의 호스트 인터페이스부(11)와의 인터페이스 기능을 한다. 인터페이스부(5)는, 예를 들면 시리얼 프로토콜에 의해 3개의 신호선을 이용하여 데이터 전송을 행하는 시리얼 인터페이스와 패러럴 프로토콜에 의해 6개의 신호선을 이용하여 데이터 전송을 행하는 패러럴 인터페이스를 갖는다.
도 3은 도 1의 불휘발성 반도체 메모리(1) 내 메모리 영역의 구성을 설명하는 도면이다. 도 3을 참조하면, 메모리 영역은 복수개의 블락(21, 블락0, 블락1,…)으로 분할되어 있다. 각 블락(21)은 데이터의 소거 단위가 된다. 각 블락(21)은 데이터의 기록 단위 또는 독출 단위가 되는 복수개의 페이지(22, 페이지0, 페이지1, 페이지2, …)로 분할되어 있다.
도 4는 1개의 블락(21)의 각 페이지(22)의 구성을 나타내는 도면이다. 도 4를 참조하면, 1개의 블락(21)은, 예컨대 64개의 페이지(22)로 구성되고, 각 페이지(22)는 데이터의 기록 영역인 복수개의 섹터(23), 예를 들면 8개의 섹터와 에러 정정 부호나 그 밖의 메타 데이터의 저장 영역인 스페어 섹터(24)를 포함한다. 스페어 섹터(24)에는 각 페이지(22)에 관련된 여러 가지 정보들이 저장되는 데, 호스트 기기에 의해 할당되는 논리 공간에서의 각 데이터의 논리 주소(Logical Address)와 ECC 패리티, 프로그램/삭제(P/E) 사이클 횟수 등의 정보가 저장된다. 불휘발성 반도체 메모리(1)의 메모리 영역에 데이터를 기록하기 위해서는 블락 단위의 삭제 동작이 반드시 선행되어야 한다. 즉, 메모리 셀들을 기록 가능한 초기 상태로 되돌려놓아야 한다. 삭제 동작은 일반적으로 기록 동작에 비해 매우 긴 시간이 소요된다. 더욱이 삭제 동작은 페이지 단위의 기록 동작보다 훨씬 큰 블락 단위로 수행되기 때문에, 기록이 요청되지 않는 부분까지 함께 삭제되는 결과를 초래한다. 부득이 삭제된 부분은 재기록을 통해 복원되어야 하므로, 최악의 경우 한 번의 데이터 기록 요청이 한 번의 삭제 동작과 삭제된 단위만큼의 기록 동작을 필요로 하게 된다. 이와 같이 삭제와 기록의 실행 단위의 불일치로 인하여 기록 수행 능력은 읽기 수행 능력에 비해 현저히 떨어진다.
이러한 불휘발성 반도체 메모리(1)의 특성으로 인하여, 불휘발성 반도체 메모리(1)를 관리함에 있어서 호스트 기기의 파일 시스템과 불휘발성 반도체 메모리(1) 사이에 플래쉬 변환 계층(Flash Translation Layer :이하 "FTL"이라 칭함)이 사용된다. FTL은, 불휘발성 반도체 메모리(1)의 기입 동작시, 파일 시스템이 생성한 논리 주소를 삭제 연산이 수행된 불휘발성 반도체 메모리(1)의 물리 주소로 맵핑시켜 주는 역활을 한다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블을 사용한다.
FTL의 어드레스 맵핑 기능에 의해 불휘발성 반도체 메모리(1)에서 사용되는 맵핑 방법은 맵핑 단위에 따라 섹터 맵핑 알고리즘, 페이지 맵핑 알고리즘, 블락 맵핑 알고리즘이 있고, 블락 맵핑과 페이지 맵핑을 혼용하는 로그 블락 알고리즘이 있다. 맵핑 단위가 작을수록 전체 맵핑 테이블의 크기가 커지고, 맵핑 단위가 클수록 맵핑 테이블의 크기는 작아진다. 맵핑 테이블의 크기는 요구되는 RAM의 용량으로 알 수 있다. 맵핑 알고리즘은 데이터 저장 장치(10)가 가지고 있는 RAM 용량에 따라 결정될 수 있다.
페이지 맵핑 알고리즘은 새로운 블락의 다른 영역으로 기록시 자유도가 높아 랜덤 기록 성능이 증가한다. 페이지 맵핑 알고리즘은 다음과 같은 관리 방법으로 이루어진다. 1개의 불휘발성 반도체 메모리(1), 예컨대 NAND 플래쉬 메모리를 크게 1개의 블락으로 인식하고, 순차적으로 데이터가 기록된다고 가정하자. 블락 0의 페이지 0에서 페이지 63에는 0~63 물리 페이지 주소가 저장되고, 블락 1의 페이지 0에서 페이지 63에는 64~127 물리 페이지 주소가 저장된다. 시퀀스 순서(sequence number)는 NAND 플래쉬 메모리에 데이터가 기록된 페이지를 순차적으로 적는다. 시퀀스 순서는 순차적이지 않고 랜덤하게 쓰여질 수도 있다.
한편, 데이터 저장 장치(10)에 급작스럽게 전원이 차단되는 경우나 메타 테이블에 오류가 발생하는 경우, FTL은 불휘발성 반도체 메모리(1), 즉 NAND 플래쉬 메모리 내부의 상태를 기초로, 논리 페이지 어드레스와 물리 페이지 어드레스와의 대응 관계를 나타내는 페이지 맵 테이블(page map table)을 작성한다. 이 경우, 도 5에 도시된 바와 같이, FTL은 모든 페이지를 읽어서 페이지 맵 테이블을 작성하지 않으면 안되기 때문에, 막대한 횟수의 읽기 동작이 발생하고 시스템의 처리 속도가 저하되는 문제점이 발생된다. 이러한 문제점을 해결하기 위하여, 각 페이지의 스페어 섹터에 적어도 2개 이상의 포워드 링크를 저장하는 방법을 채용하여 불휘발성 반도체 메모리(1)를 관리할 필요가 있다.
도 6은 본 발명의 제1 실시예에 따른 스페어 섹터(24)에 저장되는 정보를 나타내는 도면이다. 도 6을 참조하면, 메타 정보를 저장하는 스페어 섹터(24)에는 적어도 2개 이상의 포워드 링크들(FL1, FL2)과 ECC 패리티, 프로그램/삭제(P/E) 사이클 횟수(NOP) 등의 기타 정보들이 저장된다. 포워드 링크(FL1, FL2)는 데이터가 저장되어 있는 다음 페이지의 위치를 알려주는 정보이다. 스페어 섹터(24)에 저장된 적어도 2개 이상의 포워드 링크(FL1, FL2)는 포워드 리스트(forward list) 또는 스킵 리스트(skip list)로 칭한다. 스페어 섹터(24)에 적어도 2개 이상의 포워드 링크(FL1, FL2)를 저장하기 위하여, 불휘발성 반도체 메모리(1)는 적어도 1회 이상의 프로그램(NOP) 횟수가 지원된다.
도 7은 도 6의 포워드 링크들(FL1, FL2)의 기능을 설명하는 도면이다. 도 7은 예시적으로 4개의 포워드 링크들(FL1, Fl2, FL3, FL4)이 스페어 섹터(24)에 저장되는 경우를 설명한다. 페이지 0에는 제1 내지 제4 포워드 링크(FL1~Fl4)가 저장되어 있고, 페이지 1에는 제1 포워드 링크(FL1)가 저장되어 있고, 페이지 2에는 제1 및 제2 포워드 링크(FL1, FL2)가 저장되어 있다.
페이지 0에서, 스페어 섹터(24)에 포워드 링크들(FL1, Fl2, FL3, FL4)이 쓰여지는 순서는 제1 포워드 링크(FL1) - 제2 포워드 링크(FL2) - 제3 포워드 링크(FL3) - 제4 포워드 링크(FL4) 순으로 쓰여진다. 즉, 페이지 0에서 다음 데이터가 있는 페이지의 위치는, 제1 포워드 링크(FL1)에서 제2 포워드 링크(FL2)로 갱신되고, 제2 포워드 링크(FL2)에서 제3 포워드 링크(FL3)로 갱신되고, 제3 포워드 링크(FL3)에서 제4 포워드 링크(FL4)로 갱신된다. 이에 따라, 스페어 섹터(24)에 가장 나중에 쓰여진 제4 포워드 링크(FL4)가 다음 데이터가 있는 페이지의 위치를 알려주게 된다.
페이지 0에서, 스페어 섹터(24)에 쓰여진 포워드 링크들(FL1, Fl2, FL3, FL4)이 읽혀지는 순서는 제4 포워드 링크(FL4) - 제3 포워드 링크(FL3) - 제2 포워드 링크(FL2) - 제1 포워드 링크(FL1) 순으로 읽혀진다. 제1 내지 제4 포워드 링크(FL1, Fl2, FL3, FL4)에서 "닐(NIL)"이 읽혀지게 되면, "NIL"이 읽혀진 포워드 링크는 연결 페이지 위치를 가지고 있지 않음을 의미하고, 무효한 포워드 링크임을 나타낸다. 이에 따라, 다음 포워드 링크를 읽게 된다. 페이지 0의 제4 포워드 링크(FL4)에서 "NIL"이 읽혀지므로, 제3 포워드 링크(FL3)를 읽게 된다. 페이지 0의 제3 포워드 링크(FL3)는 페이지 3의 주소가 쓰여 있으므로, 다음 데이터는 페이지 3에 저장되어 있음을 알 수 있다. 페이지 0의 제2 포워드 링크(FL2)에 쓰여있는 페이지 2의 주소와 제1 포워드 링크(FL1)에 쓰여있는 페이지 1의 주소는 무효한 주소가 된다.
무효한 포워드 링크임을 나타내는 "NIL"은 사용자가 임의로 설정할 수 있다. 예컨대, 포워드 링크(FL1, FL2, FL3, FL4)에 "FFFFh"를 기록함으로써 "NIL"임을 나타낼 수 있다.
페이지 1에서, 제2, 제3 및 제4 포워드 링크(F2, FL3, FL4)는 "NIL"이므로, 제1 포워드 링크(FL1) 만이 유효하다. 그러나, 이미 페이지 0에서 다음 데이터가 페이지 3에 저장되어 있음을 나타내었기 때문에, 페이지 1의 제1 포워드 링크(FL1)는 읽지 않는다. 마찬가지로, 페이지 2의 제2 포워드 링크(FL2)와 제1 포워드 링크(FL1)도 읽지 않는다.
페이지 3에서, 제3 포워드 링크(FL3)에는 페이지 5의 주소가 쓰여 있으므로, 다음 데이터는 페이지 5에 저장되어 있음을 알 수 있다. 페이지 5에서, 제3 포워드 링크(FL3)에 "NIL"이 쓰여 있으므로, 제2 포워드 링크(FL2)에 쓰여있는 페이지 8의 주소를 읽는다. 페이지 8에서, 제2 포워드 링크(FL2)에 "NIL"이 쓰여 있으므로, 제1 포워드 링크(FL1)에 쓰여있는 페이지 9의 주소를 읽는다.
이에 따라, 도 7의 포워드 리스트(FL1, FL2, FL3, FL4)를 이용하여, FTL에서 메타 데이터를 읽는 순서는 페이지 0 - 페이지 3 - 페이지 5 - 페이지 8 - 페이지 9 순서로 이루어진다. 이는 종래의 모든 페이지를 읽어서 맵핑 테이블을 작성해야 하는 오버헤드를 줄인다.
한편, 도 7에서는 스페어 섹터(24)에 포워드 리스트(FL1, Fl2, FL3, FL4)가 쓰여지는 순서가 제1 포워드 링크(FL1) - 제2 포워드 링크(FL2) - 제3 포워드 링크(FL3) - 제4 포워드 링크(FL4) 순으로 쓰여짐에 따라, 가장 신뢰성이 높은 포워드 링크는 제4 포워드 링크(FL4)가 된다. 이에 따라, FTL은 읽혀진 포워드 리스트(FL1, FL2, FL3, FL4) 중 최상위 포워드 리스트인 제4 포워드 링크(FL4)를 가장 신뢰성이 높은 것으로 판단한다.
이와는 반대로, 스페어 섹터(24)에 포워드 리스트(FL1, Fl2, FL3, FL4)이 쓰여지는 순서가 제4 포워드 링크(FL4) - 제3 포워드 링크(FL3) - 제2 포워드 링크(FL2) - 제1 포워드 링크(FL1) 순으로 쓰여지는 경우, 가장 신뢰성이 높은 포워드 링크는 제1 포워드 링크(FL1)가 된다. 이 경우, FTL은 최하위 포워드 리스트인 제1 포워드 링크(FL1)를 가장 신뢰성이 높은 것으로 판단한다.
도 8은 도 6의 스페어 섹터에 저장되는 복수개의 포워드 링크를 이용하여 불휘발성 반도체 메모리(1)를 관리하는 방법을 설명하는 도면이다. 도 8은, 도 6에서 설명된 제1 및 제2 포워드 링크(FL1, FL2)를 유효 포워드 링크와 무효 포워드 링크로 구분하여 설명한다. 유효 포워드 링크는 가장 신뢰성이 높은 포워드 링크임을 의미한다.
블락 0에서 페이지 0의 유효 포워드 링크에는 페이지 1의 주소가 쓰여있다. 설명의 편의를 위하여, 제1 포워드 링크(FL1)을 유효 포워드 링크라고 하고, 제2 포워드 링크(FL2)를 무효 포워드 링크라고 하자. 페이지 1의 제1 포워드 링크에는 페이지 2의 주소가 쓰여있고, 페이지 2의 제1 포워드 링크에는 페이지 3의 주소가 쓰여있다. 블락 0은 다음 데이터가 저장된 페이지의 주소가 순차적으로 쓰여있음을 알 수 있다.
블락 1의 페이지 65와 페이지 66에서, 다음 데이터가 저장되어 있는 페이지 주소가 변경됨을 알 수 있다. 새로 변경되는 페이지는 블락 2의 페이지 140과 페이지 141임을 볼 수 있다. 페이지 140과 페이지 141은 해당 데이터가 저장되어 있는 블락 2의 마지막 페이지 139에 연속하여 저장되어 있다. 이에 따라, 페이지 64에서, 페이지 65의 주소를 저장하고 있던 제1 포워드 링크(FL1)는 무효 포워드 링크가 되고, 제2 포워드 링크(FL2)에 새로 변경되는 페이지 140의 주소가 쓰여진다. 페이지 64의 제2 포워드 링크(FL2)가 유효 포워드 링크가 된다.
페이지 140의 제1 포워드 링크(FL1)는 페이지 141의 주소가 쓰여있고, 페이지 141의 제1 포워드 링크(FL1)에는 페이지 67의 주소가 쓰여있다. 페이지 67의 제1 포워드 링크(FL1)에는 페이지 68의 주소가 쓰여있다. 블락 1의 페이지 67부터 블락 2의 페이지 138까지 해당 페이지의 제1 포워드 링크(FL1)에는 다음 데이터가 저장되어 있는 페이지의 주소가 순차적으로 쓰여 있다. 블락 2의 페이지 139의 제1 포워드 링크(FL1)에는 "NIL"이 쓰여 있으므로, 페이지 139는 데이터가 저장된 마지막 페이지, 즉 엔딩 포인트가 된다.
이에 따라, 도 8의 포워드 리스트를 이용하여, FTL에서 메타 데이터를 읽는 순서는 페이지 0 - 페이지 1 - … - 페이지 60 - 페이지 64 - 페이지 140 - 페이지 141 - 페이지 67 - 페이지 68 - … - 페이지 124 - 페이지 128 - 페이지 129 - … - 페이지 139 순서로 읽게 된다. 이에 따라, FTL은, 불휘발성 반도체 메모리(1) 내 메타 데이터가 저장된 마지막 페이지 139 이후에 갱신될 메타 데이터가 페이지 140, 페이지 141에 저장되어 있더라도, 전체 페이지를 스캔하여 머징(merging)하지 않더라도 맵핑 테이블을 복구할 수 있다.
도 9는 도 8에서 설명된 맵핑 테이블을 작성하는 방법을 설명하는 플로우챠트이다. 도 9를 참조하면, FTL은 불휘발성 반도체 메모리(1)의 데이터가 저장되어 있는 시작 페이지(900)부터 해당 페이지의 포워드 리스트(FL1, FL2)를 읽는다(901). FTL은, 예시적으로 최상위 포워드 리스트인 제2 포워드 링크(FL2)를 가장 신뢰성이 높은 포워드 링크일 것으로 판단한다. 읽혀진 포워드 리스트(FL1, FL2) 중 가장 신뢰성이 높을 것으로 판단되는 제2 포워드 링크(FL2)에 저장된 페이지 주소를 읽는다(903). 제2 포워드 링크(FL2)에 저장된 페이지 주소가 "NIL"인 경우, 제2 포워드 링크(FL2)는 무효 포워드 링크가 된다. 이 때, 다음 포워드 링크인 제1 포워드 링크(FL1)의 페이지 주소를 읽는다(905). 제1 포워드 링크(FL1)에 저장된 페이지 주소를 맵핑 테이블에 작성한다(907). 이러한 맴핑 테이블 작성을 데이터가 저장되어 있는 마지막 페이지까지 수행한다(909).
도 10은 본 발명의 제2 실시예에 따른 스페어 섹터(24)에 저장되는 정보를 나타내는 도면이다. 도 10을 참조하면, 메타 정보를 저장하는 스페어 섹터(24)에는 포워드 링크(FL)와 링크 오프셋(LO), 그리고 ECC 패리티, 프로그램/삭제(P/E) 사이클 횟수 등의 기타 정보들이 저장된다. 포워드 링크(FL)는 데이터가 저장되어 있는 다음 페이지의 주소를 알려주는 정보이다. 링크 오프셋(LO)은 데이터가 갱신될 때 이전 데이터가 저장되어 있던 페이지의 위치를 알려주는 정보이다. 링크 오프셋(LO)은 해당 페이지 주소에 저장되어 있는 데이터가 이전에 읽은 페이지들 중 어떤 페이지의 데이터를 대체하는 지를 알려준다.
링크 오프셋(LO)에 저장되는 이전 데이터의 페이지 위치를 알려주는 정보는 다양하게 구현될 수 있다. 링크 오프셋(LO)은 이전 데이터가 저장되어 있던 페이지의 주소를 저장할 수 있다. 링크 오프셋(LO)에는 갱신된 데이터가 저장되어 있는 페이지의 주소와 이전 데이터가 저장되어 있는 페이지 주소의 차에 해당하는 값이 저장될 수 있다. 링크 오프셋(LO)은 시작 페이지 주소와 이전 데이터가 저장되어 있는 페이지 주소의 차에 해당하는 값이 저장될 수도 있다.
도 11은 도 10의 스페어 섹터에 저장되는 포워드 링크(FL)와 링크 오프셋(LO)를 이용하여 불휘발성 반도체 메모리(1)를 관리하는 방법을 설명하는 도면이다. 설명의 편의를 위하여, 도 11은 앞서 설명한 도 8의 불휘발성 반도체 메모리(1)와 유사하게, 블락 1의 페이지 65와 페이지 66에서 다음 데이터가 저장되어 있는 페이지 주소가 변경된다.
블락 0에서 페이지 0의 포워드 링크에는 페이지 1의 주소가 쓰여있고, 링크 오프셋에는 무효한 값, 예컨대 "NIL"이 쓰여있다. 페이지 0의 링크 오프셋은 무효 링크 오프셋이 된다. 페이지 1의 제1 포워드 링크에는 페이지 2의 주소가 쓰여있고, 페이지 2의 제1 포워드 링크에는 페이지 3의 주소가 쓰여있다. 블락 0의 각 페이지들의 포워드 링크(FL)에는 다음 데이터가 저장된 페이지의 주소가 순차적으로 쓰여있다. 페이지 1에서 페이지 60까지 각 페이지의 링크 오프셋은 무효 링크 오프셋이다.
블락 1의 페이지 64의 포워드 링크에는 페이지 65의 주소가 쓰여있고, 페이지 65의 포워드 링크에는 페이지 66의 주소가 쓰여있다. 블락 1의 각 페이지들의 포워드 링크(FL)에도 다음 데이터가 저장된 페이지의 주소가 순차적으로 쓰여있다. 블락 1의 각 페이지들의 링크 오프셋은 무효 링크 오프셋이다.
블락 2의 페이지 128부터 페이지 138까지의 포워드 링크에는 다음 데이터가 저장된 페이지의 주소가 순차적으로 쓰여있고, 각 페이지들의 링크 오프셋은 무효 링크 오프셋이다. 페이지 139의 포워드 링크에는 "NIL"이 쓰여 있으므로, 페이지 139는 데이터가 저장된 마지막 페이지, 즉 엔딩 포인트가 된다. 페이지 140 및 페이지 141은 도 12 내지 도 14와 같은 방법으로 포워드 링크(FL)과 링크 오프셋(LO_)이 쓰여있다.
도 12의 링크 오프셋에는 이전 데이터가 저장되어 있던 페이지의 주소가 쓰여있다. 도 12를 참조하면, 페이지 140의 포워드 링크(LC)에는 페이지 141의 주소가 쓰여있고, 링크 오프셋(LO)에는 이전 데이터가 저장되어 있는 페이지 65의 주소가 쓰여있다. 이에 따라, 페이지 140은 페이지 65의 갱신된 페이지 주소가 된다. 페이지 141의 포워드 링크(LC)에는 다음 데이터가 저장되어 있는 페이지 142의 주소가 쓰여있고, 링크 오프셋(LO)에는 이전 데이터가 저장되어 있는 페이지 66의 주소가 쓰여 있다. 이에 따라, 페이지 141은 페이지 66의 갱신된 페이지 주소가 된다. 페이지 140 및 페이지 141의 링크 오프셋은 유효 링크 오프셋이다. 페이지 142의 포워드 링크(FC)와 링크 오프셋(LO)에는 "NIL"이 쓰여 있으므로, 무효 포워드 링크와 무효 링크 오프셋이다.
도 13의 링크 오프셋에는 갱신된 데이터가 저장되어 있는 페이지의 주소와 이전 데이터가 저장되어 있는 페이지 주소의 차에 해당하는 값이 쓰여있다. 도 13을 참조하면, 페이지 140의 포워드 링크(LC)에는 페이지 141의 주소가 쓰여있고, 링크 오프셋(LO)에는 75가 쓰여있다. 페이지 140으로부터 링크 오프셋(LO) 값 75를 뺀 페이지 65가 갱신된 페이지 주소가 된다. 페이지 141의 포워드 링크(LC)에는 다음 데이터가 저장되어 있는 페이지 142의 주소가 쓰여있고, 링크 오프셋(LO)에는 75가 쓰여있다. 페이지 141로부터 링크 오프셋(LO) 값 75를 뺀 페이지 66가 갱신된 페이지 주소가 된다. 페이지 140 및 페이지 141의 링크 오프셋은 유효 링크 오프셋이다.
도 14의 링크 오프셋에는 링크 오프셋(LO)은 시작 페이지 주소와 이전 데이터가 저장되어 있는 페이지 주소의 차에 해당하는 값이 쓰여 있다. 도 14를 참조하면, 페이지 140의 포워드 링크(FL)에는 페이지 141의 주소가 쓰여있고, 링크 오프셋(LO)에는 65가 쓰여있다. 도 11에 도시된 바와 같이, 시작 페이지의 주소가 0이므로, 페이지 140의 링크 오프셋(LO)에는 이전 데이터가 저장되어 있는 페이지 65와 시작 페이지 0의 차이인 65가 쓰여있다. 이에 따라, 페이지 140은 페이지 65의 갱신된 페이지 주소가 된다. 페이지 141의 포워드 링크(FL)에는 페이지 142의 주소가 쓰여있고, 링크 오프셋(LO)에는 이전 데이터가 저장되어 있는 페이지 66과 시작 페이지 0의 차이인 66이 쓰여있다. 페이지 141은 페이지 66의 갱신된 페이지 주소가 된다.
만약, 도 14의 링크 오프셋에서 시작 페이지의 주소가 10이라 가정하면, 페이지 140의 링크 오프셋(LO)에는 이전 데이터가 저장되어 있는 페이지 65와 시작 페이지 10의 차이인 55가 쓰여지고, 페이지 141의 링크 오프셋(LO)에는 이전 데이터가 저장되어 있는 페이지 66과 시작 페이지 10의 차이인 56이 쓰여진다. 페이지 140은 페이지 65의 갱신된 페이지 주소가 되고, 페이지 141은 페이지 66의 갱신된 페이지 주소가 된다.
도 12 내지 도 14에서 설명된 바와 같이, 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지의 위치를 알려주는 링크 오프셋을 이용함에 따라, 정확하게 맵핑 테이블을 복구할 수 있다.
도 15는 도 10의 스페어 섹터에 저장된 포워드 링크와 링크 오프셋을 이용하여 맵핑 테이블을 작성하는 방법을 설명하는 플로우챠트이다. 도 15를 참조하면, FTL은 불휘발성 반도체 메모리(1)의 모든 페이지의 포워드 링크와 링크 오프셋을 읽는다(1501, 1503). FTL은, 해당 페이지의 링크 오프셋이 무효인 경우, 해당 페이지의 포워드 링크에 저장된 페이지 주소를 맵핑 테이블에 작성한다(15105). FTL은, 해당 페이지의 링크 오프셋이 유효인 경우, 해당 페이지의 링크 오프셋에 대응하는 페이지 주소를 무시하고, 해당 페이지의 주소를 갱신된 페이지 주소로 맵핑 테이블에 작성한다(1507).
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
FL, FL1, FL2, FL3, FL4 : 포워드 링크 LO : 링크 오프셋
10 : 데이터 저장 장치 1 : 불휘발성 반도체 메모리
2 : 프로세서 3 : 내부 램 4 : 버퍼 램 5 : 인터페이스부
21 : 블락 22 : 페이지 23 : 데이터 섹터 24 : 스페어 섹터

Claims (10)

  1. 복수개의 블락으로 분할되고, 상기 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되는 불휘발성 반도체 메모리; 및
    상기 각 블락의 상기 각 페이지의 상기 스페어 영역에, 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 적어도 2개 이상의 포워드 링크를 저장하도록 제어하는 제어부를 구비하는 것을 특징으로 하는 데이터 기억 장치.
  2. 제1항에 있어서, 상기 제어부는
    상기 적어도 2개 이상의 포워드 링크 중 상기 데이터 영역으로부터 가장 먼 최상위 포워드 링크를 가장 신뢰성이 높은 포워드 링크가 되도록 제어하는 것을 특징으로 하는 데이터 기억 장치.
  3. 제1항에 있어서, 상기 제어부는
    상기 적어도 2개 이상의 포워드 링크 중 상기 데이터 영역에 가장 가까운 최하위 포워드 링크를 가장 신뢰성이 높은 포워드 링크가 되도록 제어하는 것을 특징으로 하는 데이터 기억 장치.
  4. 복수개의 블락으로 분할되고, 상기 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되는 불휘발성 반도체 메모리; 및
    상기 각 블락의 상기 각 페이지의 상기 스페어 영역에, 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지 위치를 알려주는 링크 오프셋을 저장하도록 제어하는 제어부를 구비하는 것을 특징으로 하는 데이터 기억 장치.
  5. 제4항에 있어서, 상기 링크 오프셋은
    상기 이전 데이터가 저장되어 있는 페이지 주소를 저장하는 것을 특징으로 하는 데이터 기억 장치.
  6. 제4항에 있어서, 상기 링크 오프셋은
    상기 이전 데이터가 저장되어 있는 페이지 주소와 갱신된 데이터가 저장되어 있는 페이지의 주소의 차에 해당하는 값을 저장하는 것을 특징으로 하는 데이터 기억 장치.
  7. 제4항에 있어서, 상기 링크 오프셋은
    상기 이전 데이터가 저장되어 있는 페이지 주소와 시작 페이지 주소의 차에 해당하는 값을 저장하는 것을 특징으로 하는 데이터 기억 장치.
  8. 복수개의 블락으로 분할되고, 상기 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되고, 상기 각 페이지의 상기 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 적어도 2개 이상의 포워드 링크를 포함하는 불휘발성 반도체 메모리를 갖는 데이터 기억 장치에 있어서,
    해당 페이지의 상기 적어도 2개 이상의 포워드 링크를 읽는 단계;
    읽혀진 상기 적어도 2개 이상의 포워드 링크 중 가장 신뢰성이 높을 것으로 판단되는 포워드 링크에 저장된 페이지의 주소를 읽는 단계; 및
    상기 신뢰성이 높을 것으로 판단되는 포워드 링크에 저장된 페이지의 주소를 맵핑 테이블에 작성하는 것을 특징으로 하는 데이터 관리 방법.
  9. 제8항에 있어서,
    상기 적어도 2개 이상의 포워드 링크 중 가장 신뢰성이 높을 것으로 판단되는 포워드 링크가 무효 포워드 링크인 경우, 다음 포워드 링크에 저장된 페이지 주소를 읽고 상기 다음 포워드 링크에 저장된 페이지의 주소를 상기 맵핑 테이블에 작성하는 것을 특징으로 하는 데이터 관리 방법.
  10. 복수개의 블락으로 분할되고, 상기 각 블락이 데이터 영역과 스페어 영역을 가지는 복수개의 페이지로 분할되고, 상기 각 페이지의 상기 스페어 영역에 다음 데이터가 저장되어 있는 페이지의 위치를 알려주는 포워드 링크와 해당 페이지의 데이터로 대체되는 이전 데이터의 페이지의 위치를 알려주는 링크 오프셋을 포함하는 불휘발성 반도체 메모리를 갖는 데이터 기억 장치에 있어서,
    상기 복수개의 페이지 모두의 상기 포워드 링크를 읽는 단계;
    상기 복수개의 페이지 모두의 상기 링크 오프셋을 읽는 단계;
    해당 페이지의 상기 링크 오프셋이 무효 링크 오프셋이면, 상기 해당 페이지의 상기 포워드 링크에 저장된 페이지 주소를 맵핑 테이블에 작성하는 단계; 및
    상기 해당 페이지의 상기 링크 오프셋이 유효 링크 오프셋이면, 상기 해당 페이지의 상기 링크 오프셋에 대응하는 페이지 주소를 무시하고, 상기 해당 페이지의 주소를 갱신된 페이지 주소로 맵핑 테이블에 작성하는 단계를 구비하는 것을 특징으로 하는 데이터 관리 방법.
KR1020100060096A 2010-06-24 2010-06-24 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법 KR20110139956A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100060096A KR20110139956A (ko) 2010-06-24 2010-06-24 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법
US13/159,075 US20110320689A1 (en) 2010-06-24 2011-06-13 Data Storage Devices and Data Management Methods for Processing Mapping Tables

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100060096A KR20110139956A (ko) 2010-06-24 2010-06-24 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법

Publications (1)

Publication Number Publication Date
KR20110139956A true KR20110139956A (ko) 2011-12-30

Family

ID=45353629

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100060096A KR20110139956A (ko) 2010-06-24 2010-06-24 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법

Country Status (2)

Country Link
US (1) US20110320689A1 (ko)
KR (1) KR20110139956A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101676175B1 (ko) * 2015-06-16 2016-11-14 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
WO2016204529A1 (ko) * 2015-06-16 2016-12-22 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US10824518B2 (en) 2017-09-20 2020-11-03 SK Hynix Inc. Memory system and operating method thereof

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281802A1 (en) * 2013-03-15 2014-09-18 SEAKR Engineering, Inc. Multi-dimensional error detection and correction memory and computing architecture
CN103198028B (zh) * 2013-03-18 2015-12-23 华为技术有限公司 一种内存数据迁移方法、装置及系统
US9292434B2 (en) * 2013-08-22 2016-03-22 CNEXLABS, Inc. Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device
KR20160075165A (ko) * 2014-12-19 2016-06-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9894510B1 (en) * 2015-08-10 2018-02-13 Acronis International Gmbh Event-based data backup and recovery for mobile devices
KR102552689B1 (ko) 2018-04-26 2023-07-05 삼성전자주식회사 데이터 저장 장치
US11720504B2 (en) * 2021-04-15 2023-08-08 Apple Inc. Secure storage of datasets in a thread network device

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319778A (en) * 1991-07-16 1994-06-07 International Business Machines Corporation System for manipulating elements in linked lists sharing one or more common elements using head nodes containing common offsets for pointers of the linked lists
WO1995018997A2 (en) * 1993-12-30 1995-07-13 Connectix Corporation Virtual memory management system and method using data compression
AUPP638698A0 (en) * 1998-10-06 1998-10-29 Canon Kabushiki Kaisha Efficient memory allocator utilising a dual free-list structure
US7213198B1 (en) * 1999-08-12 2007-05-01 Google Inc. Link based clustering of hyperlinked documents
KR100678930B1 (ko) * 1999-10-11 2007-02-07 삼성전자주식회사 디지털 시그널 프로세서를 위한 실시간 제어 시스템
US7865545B1 (en) * 1999-12-28 2011-01-04 International Business Machines Corporation System and method for independent room security management
US7127465B2 (en) * 2002-09-30 2006-10-24 Sun Microsystems, Inc. Memory-efficient metadata organization in a storage array
US7685121B2 (en) * 2002-10-10 2010-03-23 Emulex Corporation Structure and method for maintaining ordered linked lists
US7127547B2 (en) * 2003-09-30 2006-10-24 Agere Systems Inc. Processor with multiple linked list storage feature
IL172551A0 (en) * 2005-12-13 2006-04-10 Grois Dan Method for assigning one or more categorized scores to each document over a data network
US7536428B2 (en) * 2006-06-23 2009-05-19 Microsoft Corporation Concurrent read and write access to a linked list where write process updates the linked list by swapping updated version of the linked list with internal list
KR100843543B1 (ko) * 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
KR100789406B1 (ko) * 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
JP4967680B2 (ja) * 2007-01-23 2012-07-04 ソニー株式会社 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7937378B2 (en) * 2008-08-13 2011-05-03 Oracle America, Inc. Concurrent lock-free skiplist with wait-free contains operator

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101676175B1 (ko) * 2015-06-16 2016-11-14 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
WO2016204529A1 (ko) * 2015-06-16 2016-12-22 한양대학교 산학협력단 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US10824518B2 (en) 2017-09-20 2020-11-03 SK Hynix Inc. Memory system and operating method thereof

Also Published As

Publication number Publication date
US20110320689A1 (en) 2011-12-29

Similar Documents

Publication Publication Date Title
KR20110139956A (ko) 맵핑 테이블을 복구하는 데이터 기억 장치 및 데이터 관리 방법
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
JP4185058B2 (ja) フラッシュメモリのリマッピング方法
JP4164118B1 (ja) フラッシュメモリを用いた記憶装置
JP5581256B2 (ja) メモリシステム、コントローラ、およびメモリシステムの制御方法
JP5525605B2 (ja) フラッシュメモリモジュール
US8516182B2 (en) Controller and memory system for managing data
US8291189B2 (en) Storage system and storage control method that compress and store data elements
TWI533152B (zh) 資料儲存裝置及方法
JP5708216B2 (ja) フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
US20150089103A1 (en) Non-volatile memory controller processing new request before completing current operation, system including same, and method
US20160335195A1 (en) Storage device
US20130227198A1 (en) Flash memory device and electronic device employing thereof
US20100169556A1 (en) Nonvolatile storage device, information recording system, and information recording method
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
US10649891B2 (en) Storage device that maintains mapping data therein
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US20100318726A1 (en) Memory system and memory system managing method
JP2018160189A (ja) メモリシステム
US20100180072A1 (en) Memory controller, nonvolatile memory device, file system, nonvolatile memory system, data writing method and data writing program
JP2010237907A (ja) ストレージ装置および記録方法
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法
JP2006252137A (ja) 不揮発性記憶装置の最適化方法
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid