KR101473344B1 - 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법 - Google Patents

플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법 Download PDF

Info

Publication number
KR101473344B1
KR101473344B1 KR1020080005829A KR20080005829A KR101473344B1 KR 101473344 B1 KR101473344 B1 KR 101473344B1 KR 1020080005829 A KR1020080005829 A KR 1020080005829A KR 20080005829 A KR20080005829 A KR 20080005829A KR 101473344 B1 KR101473344 B1 KR 101473344B1
Authority
KR
South Korea
Prior art keywords
flash memory
transaction
mapping table
page number
number field
Prior art date
Application number
KR1020080005829A
Other languages
English (en)
Other versions
KR20090021063A (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 CN2008801041158A priority Critical patent/CN101784993B/zh
Priority to PCT/KR2008/004852 priority patent/WO2009028828A2/en
Priority to EP08793365.1A priority patent/EP2203825B1/en
Priority to US12/195,588 priority patent/US7991946B2/en
Publication of KR20090021063A publication Critical patent/KR20090021063A/ko
Application granted granted Critical
Publication of KR101473344B1 publication Critical patent/KR101473344B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Memory System (AREA)

Abstract

본 발명은 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법에 관한 것으로서, 더욱 상세하게는 FTL와 데이터베이스를 결합하여 플래시 메모리에 최적화된 아키텍쳐를 제공할 수 있는 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법에 관한 것이다.
본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치는, 플래시 메모리, 상기 플래시 메모리에서의 데이터 연산에 따른 논리 주소 및 물리 주소간의 맵핑 테이블을 관리하는 디바이스 드라이버, 및 상기 디바이스 드라이버에서 제공하는 인터페이스를 통해 상기 맵핑 테이블을 요청하여 상기 플래시 메모리의 데이터 복구를 수행하는 제어부를 포함한다.
플래시 메모리, FTL, 데이터베이스

Description

플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법{Apparatus using flash memory as storage and operation method for the same}
본 발명은 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법에 관한 것으로서, 더욱 상세하게는 FTL와 데이터베이스를 결합하여 플래시 메모리에 최적화된 아키텍쳐를 제공할 수 있는 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 메모리가 많이 사용되고 있다.
비휘발성 메모리 중에서 주로 사용되는 플래시 메모리는 전기적으로 데이터를 삭제하거나 다시 기록할 수 있는 비휘발성 기억 소자로서, 자기식 디스크 메모리를 기반으로 하는 저장 매체에 비해 전력 소모가 적으면서도 하드 디스크와 같은 빠른 액세스 타임(Access Time)을 가지며 크기가 작기 때문에 휴대 기기 등에 적합하다.
이러한 플래시 메모리는 하드 디스크와 같은 자기식 저장 매체와는 다른 특 성을 가지는데, 페이지 단위로 읽기 및 쓰기가 가능한 반면, 데이터 갱신 작업은 페이지 단위로 할 수 없는 특성이 그것이다. 플래시 메모리에서 데이터 갱신 작업을 하기 위해서는 다수의 페이지 집합인 블록 단위의 삭제 과정이 필요한데, 삭제 단위가 쓰기 작업의 단위보다 더 큰 것이 문제가 된다.
이와 같이 플래시 메모리의 삭제 단위가 쓰기 단위보다 큰 특성, 그리고 삭제 횟수의 제한이 있는 특성을 보완하고, 하드 디스크를 기반으로 설계된 파일 시스템을 사용하기 위한 목적으로 플래시 변환 계층(Flash Translation Layer, 'FTL'이라 함)에서도 데이터베이스의 사용이 필수적이 되어가고 있다. 예를 들어, 플래시 메모리를 스토리지로 사용하는 장치에서 데이터 복구를 위한 메커니즘으로는 다음과 같은 로그 기반 복구(Log-based recovery) 및 쉐도우 페이징(shadow paging) 기법이 사용되고 있다.
로그 기반 복구 기법은 데이터베이스의 변경 사항에 있어서 로그 레코드를 만들어 이를 디스크에 저장하고, 이 로그 레코드들을 데이터베이스 복구를 위해 사용한다. 변경 사항에 대한 로그 레코드는 변경된 데이터에 대한 이전 데이터 및 새로운 데이터를 포함하며, 로그 버퍼에 존재하다가 필요에 따라 디스크에 쓰여진다. 이러한 로그 기반 복구 기법은 일반적으로 로그 레코드의 크기는 매우 작으나, 변경 사항이 발생될 때마다 로그 레코드들이 빈번하게 디스크에 쓰여지게 된다. 따라서, 로그 레코드가 빈번하게 쓰여짐에 따라 페이지가 자주 사용되며, 유효하지 않게 된 페이지를 회수하기 위해 읽기/쓰기 연산에 비하여 상대적으로 느린 연산이 삭제 연산이 빈번하게 발생하게 된다.
쉐도우 페이징 기법은 로그 레코드를 사용하지 않고, 소정 페이지가 갱신되면 다른 페이지에 해당 페이지의 복사본을 만들어 그 페이지에 데이터를 갱신한다. 트랜잭션이 종료하면 새로 디스크에 반영하고, 트랜잭션이 중지되면 복사본을 버리게 된다. 쉐도우 페이징 기법은 로그 기반 복구 기법에서와 같은 로그 레코드의 빈번한 쓰여짐은 발생하지 않으나, 데이터베이스에 쉐도우 페이징 기법을 위해 갱신된 페이지에 대한 복사본이 위치한 페이지를 관리하기 위한 페이지 테이블을 별도로 관리해야 한다. 즉, 데이터베이스에서는 논리 주소 및 물리 주소간 맵핑을 관리하게 된다. 그러나, 데이터베이스에서 관리하는 물리 주소는 FTL에서 관리하는 맵핑 테이블에 의해 다시 한번 물리 주소로 변환되어 데이터베이스 및 FTL에서 각각 맵핑 정보를 관리하기 때문에 불필요한 중복을 야기시키게 된다.
따라서, 플래시 메모리를 스토리지로 사용하는 장치에서 플래시 메모리의 특성을 고려한 데이터베이스 아키텍쳐가 요구되고 있다.
한국 공개 특허 2004-0082921에는 플래시 변환 계층을 가지고 호스트 시스템으로부터 수신된 논리 어드레스를 플래시 메모리의 물리적 어드레스로 맵핑하는 플래시 파일 시스템이 기재되어 있으나, 여전히 플래시 메모리를 스토리지로 사용하는 장치에서 플래시 메모리의 특성을 고려한 데이터베이스의 아키텍쳐는 제안되지 않고 있다.
본 발명은 FTL과 데이터베이스의 관계를 고려하여, FTL에서는 플래시 메모리에 적합한 데이터 복구 기법을 사용하고, 데이터베이스에서는 이를 이용하여 트랜잭션을 처리하여 로그 레코드 및 페이지 테이블의 관리 작업을 생략할 수 있는 플래시 메모리를 스토리지로 사용하는 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치는, 플래시 메모리, 상기 플래시 메모리에서의 데이터 연산에 따른 논리 주소 및 물리 주소간의 맵핑 테이블을 관리하는 디바이스 드라이버, 및 상기 디바이스 드라이버에서 제공하는 인터페이스를 통해 상기 맵핑 테이블을 요청하여 상기 플래시 메모리의 데이터 복구를 수행하는 제어부를 포함한다.
또한, 상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법은, 플래시 변환 계층에서 플래시 메모리에서의 데이터 연산에 따른 논리 주소 및 물리 주소간의 맵핑 테이블을 관리하는 단계, 및 데이터베이스가 상기 플래시 변환 계층에서 제공하는 인터페이스를 통해 상기 맵핑 테이블을 요청하여 상기 플래시 메모리의 데이터 복구를 수행하는 단 계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상기한 바와 같은 본 발명의 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
FTL와 데이터베이스의 특성을 고려하여, 플래시 메모리에서의 빈번한 삭제 작업 및 FTL과 데이터베이스에서의 중복 작업이 발생되는 것을 방지할 수 있는 효과가 있다.
또한, 삭제 작업 및 중복 작업을 방지하여 플래시 메모리의 수명을 증가시키고, 데이터 연산 속도를 향상시킬 수 있는 효과도 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법을 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있 다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치가 도시된 블록도이다.
도시된 바와 같이, 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치(100)는, 플래시 메모리(110), 디바이스 드라이버(120), 제어부(130) 및 사용자 요청부(140) 를 포함할 수 있다.
플래시 메모리(110)는 적어도 하나의 페이지(page)로 구성되는 다수의 블록(block)을 포함하고 있으며, 페이지는 플래시 메모리(110)에서의 읽기/쓰기 단위이고, 블록은 플래시 메모리(110)에서의 삭제 단위인 경우를 예를 들어 설명하기로 한다. 이때, 본 발명의 일 실시예에서 플래시 메모리(110)의 읽기/쓰기 단위와 삭제 단위를 지칭하는 용어로, 각각 페이지와 블록을 사용하였으나, 이는 본 발명의 이해를 돕기 위한 일 예에 불과한 것으로, 사용되는 용어는 변경될 수 있다.
디바이스 드라이버(120)는 전술한 FTL에 대응하는 기능을 수행할 수 있으며, 디바이스 드라이버(120)는 FTL 자체를 의미할 수도 있고, FTL 및 FTL을 구동시키기 위한 하드웨어 등을 포함한 것을 의미할 수도 있다.
본 발명의 일 실시예에 따른 디바이스 드라이버(120)는 플래시 메모리(110)에서의 읽기 및 쓰기 등과 같은 각종 데이터 연산을 수행하기 위한 다수의 API(Application Programming Interface)를 제공할 수 있다.
본 발명의 일 실시예에 따른 디바이스 드라이버(120)에서 제공하는 API는, 플래시 메모리(110)를 초기화하기 위한 'FTL_Init()', 플래시 메모리(110)를 포맷하기 위한 'FTL_Format()', 플래시 메모리(110)로부터 데이터를 읽기 위한 'FTL_Read()', 플래시 메모리(110)에 데이터를 쓰기 위한 'FTL_Write()', 플래시 메모리(110)로의 트랜잭션 시작을 위한 'FTL_BeginTxn()', 플래시 메모리(110)로의 트랜잭션 커밋(commit)을 위한 'FTL_CommitTxn()', 플래시 메모리(110)로의 트랜잭션 중지을 위한 'FTL_Abort()'를 포함할 수 있다.
또한, 디바이스 드라이버(120)는 플래시 메모리(110)에서 수행되는 다양한 데이터 연산에 대한 논리 주소 및 물리 주소간의 맵핑 관계를 나타내는 맵핑 테이블을 생성하고 관리할 수 있다. 이때, 본 발명이 일 실시예에 따른 디바이스 드라이버(120)에서 생성하는 맵핑 테이블은 전술한 데이터베이스의 쉐도우 페이징 기법을 기반으로 한 것으로 이해될 수 있다. 이하, 본 발명의 일 실시예에서는 논리 주소로는 논리 페이지 번호, 물리 주소로는 물리 페이지 번호를 사용하는 경우를 예를 들어 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 맵핑 테이블이 도시된 개략도이다.
도시된 바와 같이, 본 발명의 일 실시예에 따른 맵핑 테이블(210)은, 논리 페이지 번호 필드(211), 물리 페이지 번호 필드(212), 트랜잭션 페이지 번호 필드(213) 및 트랜잭션 ID 필드(214)를 포함할 수 있다.
논리 페이지 번호 필드(211)는, 사용자가 사용자 요청부(140)를 통해 데이터 연산 요청시 참조한 논리 페이지 번호가 표시되고, 물리 페이지 번호 필드(212)는 플래시 메모리(110)에서 사용자가 요청한 데이터 연산에 따른 데이터가 플래시 메모리(110)에서 실제로 기록되는 물리 페이지 번호가 표시되며, 트랜잭션 페이지 번호 필드(213)에는 이미 소정의 데이터가 기록된 물리 페이지 번호에 대한 데이터 갱신이 요청되는 경우, 해당 논리 페이지 번호에 대하여 새로 할당되는 물리 페이지 번호가 표시되고, 트랜잭션 ID 필드(214)에는 사용자가 요청한 데이터 연산마다 할당되는 트랜잭션 ID가 표시될 수 있다. 일 예로, 전술한 도 2에서 트랜잭션 ID가 1인 데이터 연산에 대하여, 논리 페이지 번호 2에 맵핑되는 물리 페이지 번호는 0이 될 수 있다. 이때, 논리 페이지 번호 2에 대하여 데이터 갱신이 요청되는 경우, 갱신되는 데이터는 물리 페이지 번호 69에 기록될 수 있다. 또한 전술한 도 2에서 '-'는 트랜잭션 페이지 번호 필드(213)에서는 데이터 갱신이 요청되지 않아 새로운 물리 페이지 번호가 할당되지 않았으며, 이로 인해 트랜잭션 ID가 생성되지 않았다는 것으로 이해될 수 있다. 이때, 본 발명의 일 실시예에 따른 사용자 요청부(140)는 사용자가 데이터 연산을 요청하고, 데이터 연산 결과를 확인할 수 있는 응용 프로그램인 경우를 예를 들어 설명하기로 한다.
디바이스 드라이버(120)는 트랜잭션 커밋시에는 전술한 도 2에서 트랜잭션 페이지 번호 필드(213)의 물리 페이지 번호로 물리 페이지 번호 필드(212)의 물리 페이지 번호를 갱신하고, 트랜잭션 ID 필드(214)를 삭제하여 도 3과 같이 논리 페이지 번호 필드(221), 물리 페이지 번호 필드(222)로 구성된 맵핑 테이블(220)를 생성할 수 있다. 또한, 디바이스 드라이버(120)는 트랜잭션 커밋시, 전술한 도 3의 맵핑 테이블(220)을 플래시 메모리(110)에 기록하여 추후에 예측하지 못한 전원 공급 중단 등의 상황이 발생하였을 경우, 데이터 복구를 위해 사용되도록 할 수 있다. 이와 같이, 디바이스 드라이버(120)에서 데이터 복구를 위한 맵핑 테이블을 트랜잭션 커밋시에 플래시 메모리(110)에 기록하기 때문에 추후에 데이터 복구를 위해서 별도의 정보를 이용하지 않고, 플래시 메모리(110)에 기록된 맵핑 테이블을 참조한 데이터 복구가 가능해질 수 있다.
제어부(130)는 데이터베이스 자체를 의미할 수도 있고, 데이터베이스 및 데이터베이스를 위한 하드웨어 등이 포함한 것을 의미할 수도 있다. 이러한 제어부(130)는 전술한 바와 같이, 디바이스 드라이버(120)가 제공하는 'FTL_Read()', 'FTL_Write()', 'FTL_BeginTxn()', 'FTL_CommitTxn()', 'FTL_Abort()' 등의 API를 호출하여 플래시 메모리(110)에서의 데이터 연산을 요청하고, 요청한 데이터 연산 결과를 받을 수 있다.
예를 들어, 제어부(130)는 'FTL_BeginTxn()'를 호출하여 디바이스 드라이버(120)로부터 새로운 트랜잭션 ID를 할당받을 수 있으며, 'FTL_Write()'를 호출하여 플래시 메모리(110)에 데이터를 기록할 수 있다. 또한, 제어부(130)는 'FTL_CommitTxn()'를 호출하여 트랜잭션을 완료할 수 있다. 이때, 디바이스 드라이버(120)는 제어부(130)가 'FTL_CommitTxn()'를 호출하는 경우, 전술한 도 2의 맵핑 테이블(210)을 전술한 도 3의 맵핑 테이블(220)로 갱신하여 플래시 메모리(110)에 기록할 수 있다.
한편, 제어부(130)가 'FTL_Read()'를 호출한 경우, 디바이스 드라이버(120) 는 해당 논리 페이지 번호에 대하여 트랜잭션 페이지 번호가 할당된 경우, 할당된 트랜잭션 페이지 번호를 반환하고, 그렇지 않은 경우에는 기존의 물리 페이지 번호를 반환할 수 있다. 그리고, 제어부(130)가 'FTL_Abort()'를 호출한 경우에는 트랜잭션 ID가 할당된 논리 페이지 번호를 찾아 이들의 트랜잭션 페이지 번호 및 트랜잭션 ID를 제거할 수 있다.
이와 같이, 본 발명의 일 실시예에서는 디바이스 드라이버(120)가 'FTL_Read()', 'FTL_Write()', 'FTL_BeginTxn()', 'FTL_CommitTxn()', 'FTL_Abort()' 등과 같은 API를 제공하고, 제어부(130)가 제공된 API를 호출하여 사용하며, 디바이스 드라이버(120)에서만 맵핑 테이블을 통해 논리 주소 및 물리 주소간의 맵핑 관계를 관리하기 때문에, 일반적으로 독립적으로 최적화되는 데이터베이스 및 FTL에서 작업이 중복으로 수행되는 것을 방지할 수 있다. 예를 들어, 데이터베이스 및 FTL에서 각각 데이터 복구를 위해 로그 기반 메커니즘이나 새도우 페이징 방식을 독립적으로 수행하는 것이 방지될 수 있는 것이다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법이 도시된 순서도이다. 도 4의 방법은, 데이터 복구를 위한 맵핑 테이블을 플래시 메모리(110)에 기록하는 방법으로 이해될 수 있다.
도시된 바와 같이, 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법은, 먼저 사용자가 사용자 요청부(140)를 통해 소정의 데이터 연산을 요청하게 된다(S110). 이때, 본 발명의 일 실시예에서는 사용자가 플래시 메모리(110)에 쓰기 연산을 요청한 경우를 예를 들어 설명하기로 한다.
사용자의 데이터 연산 요청에 따라 제어부(130)는 디바이스 드라이버(120)가 제공하는 'FTL_BeginTxn()'를 호출하여 디바이스 드라이버(120)로부터 생성된 트랜잭션 ID를 할당받게 된다(S120). 이때, 본 발명의 일 실시예에서는 디바이스 드라이버(120)가 제어부(130)로 트랜잭션 ID로 '1'을 할당받은 경우를 예를 들어 설명하기로 한다.
제어부(130)는 할당받은 트랜잭션 ID를 참조하여, 'FTL_Write()'를 호출하여 디바이스 드라이버(120)에게 데이터 쓰기를 요청하게 되고(S130), 디바이스 드라이버(120)는 제어부(130)로부터 요청받은 데이터를 플래시 메모리(110)에 쓰게 된다(S140). 예를 들어, 제어부(130)가 논리 페이지 번호 1, 2에 대하여 데이터 쓰기를 요청하고, 논리 페이지 번호 1,2에 대응하는 물리 페지이 번호에 이미 데이터가 기록된 경우, 디바이스 드라이버(120)는 전술한 도 2와 같이, 새로운 물리 페이지 번호 68, 69에 트랜잭션 ID와 함께 제어부(130)로부터 요청된 데이터를 쓰게 되는 것이다.
디바이스 드라이버(120)는 제어부(130)로부터 요청된 데이터를 쓰는 동시에 전술한 도 2와 같은 맵핑 테이블(210)를 생성하게 된다(S150). 이때, S150단계에서의 맵핑 테이블은 데이터 갱신이 이루어지는 것이므로, 트랜잭션 페이지 번호 및 트랜잭션 ID가 표시될 수 있다.
사용자의 데이터 연산 요청에 따른 데이터 쓰기가 완료된 경우, 제어부(130)는 디바이스 드라이버(120)가 제공하는 'FTL_CommitTxn()'를 호출하여 데이터 연산을 완료하게 된다(S160).
제어부(130)가 'FTL_CommitTxn()' 호출시, 디바이스 드라이버(120)는 전술한 도 2와 같은 맵핑 테이블을 전술한 도 3과 같이 변경하고, 변경된 맵핑 테이블을 플래시 메모리(110)에 기록하게 된다(S170).
도 5는 전술한 도 4의 방법에 의해 기록된 맵핑 테이블을 이용하여 데이터를 복구하는 방법이 도시된 순서도이다.
도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 복구 방법은, 먼저 갑작스러원 전원 공급 중단 등과 같이 예측하기 못한 상황이 발생한 경우, 제어부(130)는 디바이스 드라이버(120)로 맵핑 테이블을 요청한다(S210). 이때, 요청되는 맵핑 테이블은 전술한 도 4에서 제어부(130)가 'FTL_CommitTxn()'를 호출하여 디바이스 드라이버(120)가 플래시 메모리(110)에 기록한 맵핑 테이블로 이해될 수 있다.
제어부(130)는 디바이스 드라이버(120)로부터 요청한 맵핑 테이블을 전달받고(S220), 전달받은 맵핑 테이블을 참조로 하여 데이터를 복구하게 된다(S230).
전술한 도 5에 따른 데이터 복구 방법은, 디바이스 드라이버(120)가 FTL이고, 제어부(130)가 데이터베이스인 경우, 데이터베이스는 플래시 메모리(110)가 아닌 하드 디스크를 기반으로 만들어지기 때문에 제어부(130)에 의한 로그 레코드 생성 및 빈번한 쓰기와 디바이스 드라이버(120) 및 제어부(130)의 중복 작업 등을 사전에 방지하여, 플래시 메모리(110)에서의 삭제 작업으로 인한 수명 감소와 연산 속도 저하를 방지할 수 있게 된다.
이상과 같이 본 발명에 따른 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
도 1은 본 발명의 일 실시예에 따른 플래시 메모리를 스토리지로 사용하는 장치가 도시된 블록도.
도 2는 본 발명의 일 실시예에 따른 트랜잭션 수행시 맵핑 테이블이 도시된 개략도.
도 3은 본 발명의 일 실시예에 따른 트랜잭션 커밋시 맵핑 테이블이 도시된 개략도.
도 4는 본 발명의 일 실시예에 따른 맵핑 테이블 기록 방법이 도시된 순서도.
도 5는 본 발명의 일 실시예에 따른 데이터 복구 방법이 기록된 순서도.
<도면의 주요 부분에 관한 부호의 설명>
110: 플래시 메모리
120: 디바이스 드라이버
130: 제어부
140: 사용자 요청부

Claims (14)

  1. 플래시 메모리;
    쉐도우 페이징(shadow paging) 기법을 기초로 상기 플래시 메모리에서의 데이터 연산에 따른 논리 주소 및 물리 주소간의 맵핑 테이블을 관리하는 디바이스 드라이버; 및
    상기 디바이스 드라이버에서 제공하는 인터페이스를 통해 상기 플래시 메모리에 저장되어 있는 상기 맵핑 테이블을 요청하여 상기 플래시 메모리의 데이터 복구를 수행하는 제어부를 포함하는 플래시 메모리를 스토리지로 사용하는 장치.
  2. 제 1 항에 있어서,
    상기 디바이스 드라이버에서 제공하는 인터페이스는, 쓰기, 읽기, 트랜잭션 시작, 트랜잭션 커밋 및 중지를 포함하는 플래시 메모리를 스토리지로 사용하는 장치.
  3. 제 2 항에 있어서,
    상기 디바이스 드라이버는, 상기 제어부가 상기 트랜잭션 시작 호출시, 새로운 트랜잭션 ID를 생성하여 상기 제어부로 반환하는 플래시 메모리를 스토리지로 사용하는 장치.
  4. 제 3 항에 있어서,
    상기 디바이스 드라이버는, 상기 제어부가 상기 트랜잭션 시작 호출시, 논리 페이지 번호필드, 물리 페이지 번호 필드, 트랜잭션 페이지 번호 필드 및 트랜잭션 ID 필드를 포함하는 맵핑 테이블을 생성하는 플래시 메모리를 스토리지로 사용하는 장치.
  5. 제 4 항에 있어서,
    상기 디바이스 드라이버는, 상기 제어부가 상기 트랜잭션 커밋 호출시, 상기 맵핑 테이블에서 상기 물리 페이지 번호 필드를 상기 트랜잭션 페이지 번호로 갱신하고, 상기 트랜잭션 ID 필드를 삭제하여 상기 플래시 메모리에 기록하는 플래시 메모리를 스토리지로 사용하는 장치.
  6. 제 5 항에 있어서,
    상기 제어부는, 상기 기록된 맵핑 테이블을 요청하여 상기 플래시 메모리에서의 데이터 복구를 수행하는 플래시 메모리를 스토리지로 사용하는 장치.
  7. 제 4 항에 있어서,
    상기 디바이스 드라이버는, 상기 제어부가 상기 읽기 호출시, 상기 맵핑 테이블에서 물리 페이지 번호 필드 및 트랜잭션 페이지 번호 필드 중에서 상기 트랜잭션 페이지 번호 필드의 값을 우선적으로 반환하는 플래시 메모리를 스토리지로 사용하는 장치.
  8. 쉐도우 페이징(shadow paging) 기법을 기초로 플래시 변환 계층에서 플래시 메모리에서의 데이터 연산에 따른 논리 주소 및 물리 주소간의 맵핑 테이블을 관리하는 단계; 및
    데이터베이스가 상기 플래시 변환 계층에서 제공하는 인터페이스를 통해 상기 플래시 메모리에 저장되어 있는 상기 맵핑 테이블을 요청하여 상기 플래시 메모리의 데이터 복구를 수행하는 단계를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
  9. 제 8 항에 있어서,
    상기 인터페이스는, 쓰기, 읽기, 트랜잭션 시작, 트랜잭션 커밋 및 중지를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
  10. 제 9 항에 있어서,
    상기 맵핑 테이블을 관리하는 단계는, 상기 데이터베이스가 상기 트랜잭션 시작 호출시, 새로운 트랜잭션 ID를 생성하여 상기 데이터베이스로 반환하는 단계를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
  11. 제 10 항에 있어서,
    상기 맵핑 테이블을 관리하는 단계는, 상기 데이터베이스가 상기 트랜잭션 시작 호출시, 논리 페이지 번호필드, 물리 페이지 번호 필드, 트랜잭션 페이지 번호 필드 및 트랜잭션 ID 필드를 포함하는 맵핑 테이블을 생성하는 단계를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
  12. 제 11 항에 있어서,
    상기 맵핑 테이블을 관리하는 단계는, 상기 데이터베이스가 상기 트랜잭션 커밋 호출시, 상기 맵핑 테이블에서 상기 물리 페이지 번호 필드를 상기 트랜잭션 페이지 번호로 갱신하고, 상기 트랜잭션 ID 필드를 삭제하여 상기 플래시 메모리에 기록하는 단계를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
  13. 제 12 항에 있어서,
    상기 데이터 복구를 수행하는 단계는, 상기 데이터베이스가 상기 기록된 맵핑 테이블을 요청하여 상기 플래시 메모리에서의 데이터 복구를 수행하는 단계를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
  14. 제 11 항에 있어서,
    상기 맵핑 테이블을 관리하는 단계는, 상기 데이터베이스가 상기 읽기 호출시, 상기 맵핑 테이블에서 물리 페이지 번호 필드 및 트랜잭션 페이지 번호 필드 중에서 상기 트랜잭션 페이지 번호 필드의 값을 우선적으로 반환하는 단계를 포함하는 플래시 메모리를 스토리지로 사용하는 장치의 동작 방법.
KR1020080005829A 2007-08-24 2008-01-18 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법 KR101473344B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2008801041158A CN101784993B (zh) 2007-08-24 2008-08-20 使用闪存作为存储器的设备及其操作方法
PCT/KR2008/004852 WO2009028828A2 (en) 2007-08-24 2008-08-20 Apparatus using flash memory as storage and method of operating the same
EP08793365.1A EP2203825B1 (en) 2007-08-24 2008-08-20 Apparatus using flash memory as storage and method of operating the same
US12/195,588 US7991946B2 (en) 2007-08-24 2008-08-21 Apparatus using flash memory as storage and method of operating the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95778507P 2007-08-24 2007-08-24
US60/957,785 2007-08-24

Publications (2)

Publication Number Publication Date
KR20090021063A KR20090021063A (ko) 2009-02-27
KR101473344B1 true KR101473344B1 (ko) 2014-12-17

Family

ID=40688253

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080005829A KR101473344B1 (ko) 2007-08-24 2008-01-18 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법

Country Status (5)

Country Link
US (1) US7991946B2 (ko)
EP (1) EP2203825B1 (ko)
KR (1) KR101473344B1 (ko)
CN (1) CN101784993B (ko)
WO (1) WO2009028828A2 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510614B2 (en) * 2008-09-11 2013-08-13 Mediatek Inc. Bad block identification methods
US9542431B2 (en) * 2008-10-24 2017-01-10 Microsoft Technology Licensing, Llc Cyclic commit transaction protocol
TW201030514A (en) * 2009-02-04 2010-08-16 Mitac Int Corp Flash memory document system and its driving method
KR100929371B1 (ko) * 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법
KR101587995B1 (ko) * 2009-10-28 2016-01-22 삼성전자주식회사 적응적 로깅 장치 및 방법
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
US8788788B2 (en) 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8806160B2 (en) 2011-08-16 2014-08-12 Pure Storage, Inc. Mapping in a storage system
CN102521144B (zh) * 2011-12-22 2015-03-04 清华大学 一种闪存转换层系统
CN102402623A (zh) * 2011-12-28 2012-04-04 北京人大金仓信息技术股份有限公司 面向嵌入式数据库系统的无日志事务处理方法
JP5949122B2 (ja) * 2012-05-11 2016-07-06 ソニー株式会社 制御装置、記憶装置、記憶制御方法
US20140143476A1 (en) * 2012-11-16 2014-05-22 Rotem Sela Usage of cache and write transaction information in a storage device
US8937317B2 (en) 2012-12-28 2015-01-20 Avogy, Inc. Method and system for co-packaging gallium nitride electronics
CN103902406A (zh) * 2012-12-31 2014-07-02 杨威锋 高可靠性固态存储设备的映射表信息的保存和恢复技术
US9324645B2 (en) 2013-05-23 2016-04-26 Avogy, Inc. Method and system for co-packaging vertical gallium nitride power devices
US9405672B2 (en) 2013-06-25 2016-08-02 Seagate Technology Llc Map recycling acceleration
KR101491626B1 (ko) * 2013-07-01 2015-03-05 성균관대학교산학협력단 메모리 저장 장치, 데이터베이스를 위한 트랜잭션 기능을 지원하는 방법 및 메모리 시스템
CN103425605A (zh) * 2013-07-26 2013-12-04 记忆科技(深圳)有限公司 一种固态硬盘掉电保护及快速启动方法、系统
US9612973B2 (en) 2013-11-09 2017-04-04 Microsoft Technology Licensing, Llc Using shared virtual memory resources for performing memory-mapping
US9324809B2 (en) 2013-11-18 2016-04-26 Avogy, Inc. Method and system for interleaved boost converter with co-packaged gallium nitride power devices
KR102147970B1 (ko) 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
KR101529651B1 (ko) * 2014-08-28 2015-06-19 성균관대학교산학협력단 메모리 저장 장치, 데이터베이스를 위한 트랜잭션 기능을 지원하는 방법 및 메모리 시스템
US10515071B2 (en) * 2015-04-08 2019-12-24 Hitachi, Ltd. Database management system and database management method using logical addresses and timestamps
US20170185354A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Techniques for a Write Transaction at a Storage Device
CN105930500A (zh) * 2016-05-06 2016-09-07 华为技术有限公司 数据库系统中事务恢复的方法与数据库管理系统
US10467148B2 (en) * 2016-06-16 2019-11-05 SK Hynix Inc. System of multiple configurations and operating method thereof
CN108614665B (zh) * 2016-12-09 2021-04-02 北京兆易创新科技股份有限公司 基于NAND flash的映射表数据更新方法和装置
CN106802777A (zh) * 2017-01-20 2017-06-06 杭州电子科技大学 一种用于固态存储设备的闪存转换层控制方法
KR20180128588A (ko) * 2017-05-24 2018-12-04 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10459803B2 (en) * 2017-06-28 2019-10-29 Western Digital Technologies, Inc. Method for management tables recovery
CN108345669B (zh) * 2018-02-09 2020-12-01 北京搜狐互联网信息服务有限公司 一种基于闪存数据库的日志更新方法及装置
US11099980B2 (en) 2018-05-09 2021-08-24 International Business Machines Corporation Host aware update write
US10776010B1 (en) 2019-04-19 2020-09-15 Seagate Technology Llc Access schemes for drive-specific read/write parameters
US11748272B2 (en) 2021-05-05 2023-09-05 Seagate Technology, Llc Shared keys for no PCBA cartridges

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
KR100577380B1 (ko) * 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
US6732222B1 (en) * 2002-02-01 2004-05-04 Silicon Motion, Inc. Method for performing flash memory file management
US8041878B2 (en) 2003-03-19 2011-10-18 Samsung Electronics Co., Ltd. Flash file system
US7386700B2 (en) * 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system
KR100643287B1 (ko) * 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
WO2006064498A2 (en) * 2004-12-16 2006-06-22 Ramot At Tel-Aviv University Ltd. Transactional flash file system for microcontrollers and embedded systems
US20090172269A1 (en) * 2005-02-04 2009-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and associated data merge method
US8122193B2 (en) * 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100515890B1 (ko) * 2005-03-07 2005-09-20 주식회사 퓨전소프트 효율적인 데이터베이스 복구방법
JP5002944B2 (ja) * 2005-11-15 2012-08-15 ソニー株式会社 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
JP5295778B2 (ja) * 2005-12-09 2013-09-18 サンディスク アイエル リミテッド フラッシュメモリ管理方法
KR100874702B1 (ko) * 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
KR100806343B1 (ko) * 2006-10-19 2008-02-27 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
TWM317043U (en) * 2006-12-27 2007-08-11 Genesys Logic Inc Cache device of the flash memory address transformation layer
US7765426B2 (en) * 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
US8046542B2 (en) * 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US7917689B2 (en) * 2007-12-28 2011-03-29 Intel Corporation Methods and apparatuses for nonvolatile memory wear leveling
US8452927B2 (en) * 2008-01-02 2013-05-28 Sandisk Technologies Inc. Distributed storage service systems and architecture
US8270194B2 (en) * 2009-04-07 2012-09-18 Marvell World Trade Ltd. Distributed flash memory storage manager systems
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US8463826B2 (en) * 2009-09-03 2013-06-11 Apple Inc. Incremental garbage collection for non-volatile memories

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller

Also Published As

Publication number Publication date
US7991946B2 (en) 2011-08-02
EP2203825A4 (en) 2012-12-12
EP2203825A2 (en) 2010-07-07
WO2009028828A2 (en) 2009-03-05
KR20090021063A (ko) 2009-02-27
EP2203825B1 (en) 2014-06-11
WO2009028828A3 (en) 2009-04-23
CN101784993A (zh) 2010-07-21
CN101784993B (zh) 2013-08-14
US20090055578A1 (en) 2009-02-26

Similar Documents

Publication Publication Date Title
KR101473344B1 (ko) 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
US9026764B2 (en) Memory system performing wear leveling based on deletion request
KR100684942B1 (ko) 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US7191306B2 (en) Flash memory, and flash memory access method and apparatus
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
KR100568115B1 (ko) 점진적 머지 방법 및 그것을 이용한 메모리 시스템
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
KR101336258B1 (ko) 비휘발성 메모리의 데이터 처리 장치 및 방법
TWI406127B (zh) 更新使用者資料的方法
JP2005222550A (ja) フラッシュメモリのリマッピング方法
JP2011511388A (ja) メモリマッピング技術
WO2023116346A1 (zh) 异常掉电下Trim数据的恢复方法、系统及固态硬盘
US20100318726A1 (en) Memory system and memory system managing method
KR100703680B1 (ko) 플래시 파일 시스템
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
KR20110046118A (ko) 적응적 로깅 장치 및 방법
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2010237907A (ja) ストレージ装置および記録方法
KR100533683B1 (ko) 플래시 메모리의 데이터 관리 장치 및 방법
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
KR100801072B1 (ko) 플래시 메모리, 이를 위한 맵핑 장치 및 방법
KR20220096247A (ko) 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
JP2005149620A (ja) 記憶装置およびファイルシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191115

Year of fee payment: 6