[go: up one dir, main page]

KR100568115B1 - 점진적 머지 방법 및 그것을 이용한 메모리 시스템 - Google Patents

점진적 머지 방법 및 그것을 이용한 메모리 시스템 Download PDF

Info

Publication number
KR100568115B1
KR100568115B1 KR1020040050507A KR20040050507A KR100568115B1 KR 100568115 B1 KR100568115 B1 KR 100568115B1 KR 1020040050507 A KR1020040050507 A KR 1020040050507A KR 20040050507 A KR20040050507 A KR 20040050507A KR 100568115 B1 KR100568115 B1 KR 100568115B1
Authority
KR
South Korea
Prior art keywords
merge
merge operation
flash memory
memory
completed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1020040050507A
Other languages
English (en)
Other versions
KR20060001393A (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 KR1020040050507A priority Critical patent/KR100568115B1/ko
Priority to US10/990,065 priority patent/US7529879B2/en
Priority to TW094114862A priority patent/TWI349192B/zh
Priority to CN2005100794219A priority patent/CN1722109B/zh
Priority to JP2005190651A priority patent/JP4422652B2/ja
Priority to DE102005031525A priority patent/DE102005031525A1/de
Publication of KR20060001393A publication Critical patent/KR20060001393A/ko
Application granted granted Critical
Publication of KR100568115B1 publication Critical patent/KR100568115B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

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

Abstract

여기에는 플래시 메모리를 제어하는 방법이 제공된다. 본 발명의 플래시 메모리 제어 방법에 의하면, 명령이 입력될 때, 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타내는 지의 여부가 판별된다. 만약 상기 플래시 메모리가 머지 상태에 있지 않으면, 상기 플래시 메모리에 머지 동작이 요구되는 지의 여부가 판별된다. 만약 머지 동작이 요구되지 않으면, 상기 입력된 명령이 처리되도록 상기 플래시 메모리가 제어된다.

Description

점진적 머지 방법 및 그것을 이용한 메모리 시스템{INCREMENTAL MERGE METHOD AND MEMORY SYSTEM USING THE SAME}
도 1 내지 도 3은 일반적인 머지 방법들을 설명하기 위한 도면들;
도 4는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도; 그리고
도 5는 본 발명에 따른 점진적 머지 방법을 설명하기 위한 흐름도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 호스트 200 : 외부 저장 장치
300 : 인터페이스 장치 400 : 플래시 메모리
310 : 호스트 인터페이스 320 : 중앙처리장치
330 : 워크 메모리 340 : 버퍼 메모리
350 : 플래시 컨트롤러
본 발명의 저장 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리와 같은 불 휘발성의 소거 가능한 반도체 메모리를 포함하는 반도체 메모리 장치를 효 율적으로 관리하는 방법 및 장치에 관한 것이다.
최근 기술 개발에 따르면, 사무용 데스크탑 컴퓨터와 이동 환경용 노트북 컴퓨터와 같은 다양항 형태의 개인용 컴퓨터가 개발되고 시장에 출시되고 있다. 일반적으로, 이러한 컴퓨터 시스템들은 메인 메모리와 외부 저장 장치를 포함한다. 외부 저장 장치가 저장 용량의 낮은 단위 가격의 큰 메모리 용량을 갖는 것이 바람직하다.
외부 저장 장치들은 디스크 저장 매체를 이용한 종래의 하드 디스크 드라이브 (HDD) 또는 플로피 디스크 드라이브 (FDD)일 것이다. 이러한 디스크 저장 장치들은 일반적으로 낮은 가격으로 큰 메모리 용량을 제공하지만, 마크네틱 헤드로 다양한 동작들 (예를 들면, 디스크 탐색 동작)을 수행하기 위해 상당히 섬세한 기계적인 기술을 요구한다. 따라서, 디스크 저장 장치들은 물리적인 충격에 쉽게 손상될 수 있고 그러므로 다른 형태의 메모리 장치보다 신뢰성이 낮은 것으로 여겨질 수 있다.
과거에, DRAM 또는 SRAM과 같은 저장 매체로서 반도체 메모리를 사용한 외부 메모리 장치들은 디스크 저장 장치들에 대한 실행가능한 대안을 제공하지 못하고 있다. 비록 반도체-타입 외부 메모리 장치들이 디스크 액세스 시간보다 빠른 처리 속도를 갖고 물리적인 충격에 대해 더 영향을 받더라도, DRAM과 SRAM 기술과 관련된 근본적인 단점은 대용량의 스토리지를 위해서 SRAM과 DRAM 기술의 사용을 막아왔다는 것이다.
일반적으로, SRAM의 메모리 용량 당 가격은 SRAM을 대용량 스토리지 용도로 비용 효과적으로 (cost-effective) 사용하기에는 너무 비싸다. 게다가, DRAM 내의 데이터를 보존하기 위해 요구되는 추가적인 전력은 외부 저장 장치의 운용 비용을 증가시키고, DRAM 리프레쉬 동작과 관련된 전력 소모는 감소된 전력 소모가 바람직한 이동 환경에 DRAM을 구현하기 어렵게 만든다.
반면, 플래시 EEPROM과 같은 플래시 메모리로 구현된 외부 반도체 메모리 장치들은 임의의 환경에서 디스크 저장 장치들에 대한 실행 가능한 대안을 제공한다. 플래시 메모리 장치들은 한 번 이상 프로그램되는 불 휘발성 메모리 장치들이다. 게다가, 플래시 메모리 장치들은 쉽게 구현될 수 있는 간단한 구조를 갖는다. 플래시 메모리 장치들이 일반적으로 적은 전력을 소모하고, 콤팩트하고, 가볍고, 그리고 물리적인 충격에 덜 손상되기 때문에, 플래시 메모리 장치들은 플래시 메모리 장치와 관련된 트레이드-오프 (trade-offs)에도 불구하고 종종 이동 환경에 적합하다. 이러한 트레이드-오프는 프로그램 동작 이전에 소거 동작이 수행되어야 한다는 요구 조건, 소거 동작을 수행하기 위한 고전압 (예를 들면, 12V 또는 20V)의 요구 조건, 그리고 수KB에서 수백KB의 비교적 큰 메모리 유니트가 동시에 소거되어야 한다는 요구 조건을 포함한다.
컴퓨터 시스템 (이하, "호스트"라 칭함)은 논리적인 어드레스를 지시함으로써 외부 저장 장치를 액세스한다. 논리적인 어드레스는 물리적인 저장 위치와 비교하여 볼 때 호스트 소프트웨어 (즉, 운영 시스템 또는 어플리케이션)이 인식하는 논리적인 메모리 공간 중 임의의 위치를 참조한다. 따라서, 논리적인 어드레스는 지정된 물리적인 메모리 공간을 액세스하기 위해서 외부 저장 장치의 물리적인 메 모리 공간에 대응하는 물리적인 어드레스로 변환된다.
일반적으로, 플래시 메모리를 사용한 외부 저장 장치는 액세스 동작 동안 호스트와의 호환성을 보장하기 위해서 디스크 에뮬레이션 소프트웨어 (disk emulation software)라 불리는 추가적인 소프트웨어를 필요로 한다. 액세스 동작 동안 호스트와 외부 플래시 저장 장치 사이의 호환성은 FTL (flash translation layer)과 같은 종래의 파일 시스템을 운영함으로써 달성될 수 있다. 다시 말해서, 호스트는 외부 플래시 메모리 장치를 HDD/SRAM으로서 인식하여 HDD/SRAM과 동일한 방식으로 외부 플래시 메모리 장치를 액세스한다. FTL은 특정 PC의 운영 시스템에 의해서 사용되는 파일 시스템에 플래시 메모리 카드를 연결하며, 동일한 어드레스에 소거없이 한번 이상의 쓰기를 허여하지 않는다.
FTL의 기능들은 논리 어드레스-물리 어드레스 사상 정보 관리, 배드 블럭 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리, 마모도 관리 등을 포함한다. FTL의 기능들 중 핵심적인 기능은 사상 기법에 관련된 것으로, 예시적인 사상 기법들이 U.S. Patent No. 5,404,485에 "FLASH FILE SYSTEM"이라는 제목으로, U.S. Patent No. 5,937,425에 "FLASH FILE SYSTEM OPTIMIZED FOR PAGE-MODE FLASH TECHNOLOGIES"라는 제목으로, 그리고 U.S. Patent No. 6,381,176에 "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
플래시 메모리가 블록 단위로 액세스되는 경우에, 플래시 메모리는 복수의 블록들로 분할된다. 분할된 블록에 순차적으로 할당된 번호는 물리 블록 번호라 불 리며, 사용자가 생각하는 분할된 블록의 가상 번호는 논리 블록 번호라 불린다. 논리 블록 번호와 물리 블록 번호 간의 사상을 제공하는 방법은 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법을 포함한다. 사상 기법을 이용한 FTL에서는 논리적으로 연속된 어드레스를 가지는 데이터가 물리적으로는 서로 상이한 위치에 기록되어 있을 수 있다. 플래시 메모리는 쓰기 (또는 프로그램) 단위보다 소거 단위가 더 크기 때문에 일정한 한계에 다다르면 임의의 빈 블록을 이용하여 물리적으로 서로 상이한 위치에 분산되어 있는 연속된 데이터를 동일한 어드레스 공간으로 모으는 작업을 필요로 하며, 이러한 과정을 머지 동작이라고 한다.
앞서 언급된 블록 사상 기법, 섹터 사상 기법, 그리고 로그 사상 기법을 이용한 머지 동작이 이하 상세히 설명될 것이다. 머지 동작을 설명하기에 앞서, 플래시 메모리가 복수 개의 메모리 블록들로 분할되어 있고 각 메모리 블록은 복수 개의 페이지들 (또는 섹터들)로 구성된다고 가정하자. 기호 "PBN"은 물리 블록 번호를 나타내고, 기호 "PPN"은 물리 페이지 번호를 나타내며, 기호 "LPN"은 논리 페이지 번호를 나타낸다.
블록 사상 기법
블록 사상 기법에 따른 머지 동작이 도 1a 및 도 1b를 참조하여 이하 설명된다. 블록 사상 기법에 따르면, 임의의 메모리 블록에 데이터를 저장하는 경우, 메모리 블록의 페이지들에 순차적으로 데이터가 저장된다. 물리 블록 번호가 '2'인 메모리 블록 (예를 들면, PBN2)의 i번째 페이지 (PPNi)에 데이터를 업데이트하는/재기입하는 경우, 먼저, 업데이터가 요청된 물리 페이지 번호가 'i'인 페이지 (PPNi)를 제외한 나머지 페이지들에 저장된 데이터가 빈 메모리 블록 (예를 들면, PBN3)의 대응하는 페이지들로 각각 전송된다/복사된다. 그 다음에, 메모리 블록 (PBN2)의 페이지 (PPNi)에 저장될 데이터는 메모리 블록 (PBN3)의 i번째 페이지에 업데이트된다/재기입된다. 이후, 메모리 블록 (PBN2)은 소거되어 빈 메모리 블록 (free memory block)이 된다. 도 1b에 도시된 바와 같이, 머지 동작이 수행된 후 섹터 사상 테이블이 업데이트된다. 즉, 논리 메모리 블록 (LBN0)에 대응하는 물리 메모리 블록이 "PBN2"에서 "PBN3"로 변경된다. 블록 사상 기법에 의하면, 앞서 설명된 머지 동작은 데이터가 저장된 페이지에 다른 데이터가 업데이트될 때마다 수행되어야 한다.
섹터 (또는 페이지) 사상 기법
섹터 사상 기법에 따른 머지 동작이 도 2a 및 도 2b를 참조하여 이하 설명된다. 섹터 (또는 페이지) 사상 기법에 의하면, 메모리 블록의 페이지들에 순차적으로 데이터가 쓰여진다. 여기서, 페이지는 섹터와 동일한 크기를 갖지만, 하나의 페이지가 복수의 섹터들로 구성될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 논리 페이지 (LPN0)의 데이터는 물리 페이지 (PPN0)에 저장되고, 논리 페이지 (LPN1)의 데이터는 물리 페이지 (PPN1)에 저장되며, 논리 페이지 (LPN2)의 데이터는 물리 페이지 (PPN2)에 저장된다. 논리 페이지 (예를 들면, LPN1)에 데이터를 업데이트하고자 하는 경우, 논리 페이지 (LPN1)의 데이터는 물리 페이지 (PPN3)에 저장되고, 물리 페이지 (PPN1)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2b에서 "X"로 표기됨). 또한, 논리 페이지 (예를 들면, LPN0)에 데이터를 업데이트하고자 하는 경우, 논리 페이지 (LPN0)의 데이터는 물리 페이지 (PPN4)에 저장되고, 물리 페이지 (PPN0)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2b에서 "X"로 표기됨). 만약 모든 페이지들에 대해 쓰기 동작이 수행되면, 즉, 메모리 블록 (PBN0)에 빈 페이지가 존재하지 않는 경우, 메모리 블록 (PBN0)에 쓰기 동작이 요구될 때 머지 동작이 수행된다. 도 2a에 도시된 바와 같이, 메모리 블록 (PBN0)의 유효 데이터만 즉, 물리 페이지들 (PPN2-PPN5)이 빈 메모리 블록 (PBN1)의 대응하는 페이지들 (PPN10-PPN13)로 복사되고, 쓰기 동작이 요구된 논리 페이지 (LPN0)의 데이터가 메모리 블록 (PBN1)의 물리 페이지 (PPN14)에 저장된다. 이때, 메모리 블록 (PBN1)의 물리 페이지 (PPN0)는 무효 데이터가 저장된 것으로 처리될 것이다 (도 2b에서 "X"로 표기됨). 그 다음에 메모리 블록 (PBN0)은 소거될 것이다. 변경되는 사상 테이블은 FTL에 의해서 관리되며, 도 2b에 도시된 바와 같이 변경된다.
로그 사상 기법
로그 사상 기법을 이용한 머지 동작이 도 3a 내지 도 3d를 참조하여 이하 상세히 설명된다. 로그 사상 기법에 의하면, 도 3a에 도시된 바와 같이, 메모리 블록들은 데이터 영역, 로그 영역, 그리고 메타 영역으로 구분되며, 이러한 사상 정보의 테이블은 FTL에 의해서 관리된다. 로그 사상 기법에 따르면, 로그 영역의 메모 리 블록들은 데이터 영역의 메모리 블록들 중 일부 메모리 블록들에 각각 지정된다. 예를 들면, 플래시 메모리가 9개의 메모리 블록들 (PBN0-PBN8)을 포함한다고 가정하자. 메모리 블록들이 사용되지 않은 상태에서, 메모리 블록들 (PBN0-PBN4)은 데이터 영역으로, 메모리 블록들 (PBN5-PBN7)은 로그 영역으로, 그리고 메모리 블록 (PBN8)은 메타 영역으로 각각 정의될 수 있다. 이때, 로그 영역의 메모리 블록들 (PBN5, PBN6)은 데이터 영역의 메모리 블록들 (PBN0, PBN2)에 각각 지정되며, 로그 영역의 메모리 블록 (PBN7)은 빈 메모리 블록으로 지정된다. 앞서 언급된 사상 정보 테이블들 (블록 사상 테이블, 로그 블록 사상 테이블, 그리고 로그 사상 테이블)이 도 3b에 도시되어 있다. 각 메모리 블록은 복수 개의 페이지들 (또는 복수 개의 섹터들)로 구성된다.
메모리 블록 (PBN0)에 데이터를 쓰고자 하는 경우, 데이터는 메모리 블록 (PBN0)에 직접 쓰여지는 것이 아니라 메모리 블록 (PBN0)에 대응하는 로그 영역의 메모리 블록 (PBN5)에 저장된다. 예를 들면, 논리 페이지 (LPN2)에 대응하는 데이터를 메모리 블록 (PBN0)에 쓰고자 하는 경우, 로그 영역의 메모리 블록 (PBN5)의 물리 페이지 (PBN0)에 데이터가 쓰여진다. 마찬가지로, 논리 페이지 (LPN0)에 대응하는 데이터를 메모리 블록 (PBN0)에 쓰고자 하는 경우, 로그 영역의 메모리 블록 (PBN5)의 물리 페이지 (PBN1)에 데이터가 쓰여진다. 메모리 블록 (PBN1)에 데이터를 쓰고자 하는 경우, 메모리 블록 (PBN1)에 대응하는 로그 영역의 메모리 블록이 지정되어 있지 않기 때문에, 아래와 같이 머지 동작이 수행된다. 먼저, 빈 메모리 블록이 로그 영역 (또는 데이터 영역)에 존재하는 지의 여부가 판별된다. 로그 영 역에 빈 메모리 블록이 있는 경우, 도 3b에 도시된 바와 같이, 로그 영역의 메모리 블록들 (PBN5, PBN6) 중 어느 하나의 메모리 블록 (예를 들면, PBN5)에 저장된 유효 데이터가 빈 메모리 블록 (PBN7)으로 복사된다/이동된다. 그리고, 메모리 블록 (PBN5)에 대응하는 데이터 영역의 메모리 블록 (PBN0)에 저장된 유효 데이터가 메모리 블록 (PBN7)으로 복사/이동된다. 이러한 복사 과정이 도 3b에 도시되어 있다. 메모리 블록들 (PBN0, PBN5)이 소거된 후, 도 3c에 도시된 바와 같이, 로그 영역의 메모리 블록 (PBN5)이 빈 메모리 블록으로 지정되고, 데이터 영역의 메모리 블록 (PBN0)이 로그 영역의 메모리 블록으로 지정되며, 메모리 블록 (PBN7)이 데이터 영역의 메모리 블록으로 지정된다. 마지막으로, 메모리 블록 (PBN1)에 쓰고자 하는 데이터가 로그 영역의 메모리 블록 (PBN0)에 쓰여진다. 앞서 설명된 머지 동작이 수행되기 전후의 사상 테이블들 (블록 사상 테이블, 로그 블록 사상 테이블, 로그 사상 테이블)이 도 3d에 도시되어 있다.
앞서의 설명에 따르면, 로그 사상 기법에 의한 머지 동작을 관리하기 위해서는 3개의 테이블들 즉, 블록 사상 테이블, 로그 블록 사상 테이블, 그리고 로그 사상 테이블이 요구된다. 각 테이블의 사상 정보는 FTL에 의해서 관리되며, 메타 영역 (PBN8)에 저장된다.
머지 동작 전후에 변경된 사상 정보의 관리는 FTL의 사상 정책에 따른다. 앞서 언급된 머지 동작은 FTL의 필요에 의해서 자동적으로 수행되는 것으로, 호스트는 머지 동작이 수행되고 있는 지의 여부를 알 수 없다. 그러한 이유때문에, 호스트는 플래시 메모리를 포함한 외부 저장 장치로 명령 (예를 들면, 읽기, 쓰기 또는 소거 명령)이 출력되고 일정 시간이 경과한 후에도 외부 저장 장치로부터 응답이 없을 때 외부 저장 장치를 초기화시킨다. 상술한 동작이 호스트 타임-아웃이라 불린다. 타임-아웃을 유발하는 원인들 중 하나가 앞서 언급된 머지 동작이다. 메모리 블록 사이즈 (또는 페이지 사이즈)가 커짐에 따라 머지 동작을 수행하는 데 필요한 시간은 더욱 길어질 것이다. 이는 타임-아웃이 더욱 빈번히 유발될 수 있음을 의미한다. 다시 말해서, 머지 동작이 수행되고 있음에도 불구하고 외부 저장 장치가 초기화되기 때문에, 외부 저장 장치의 신뢰성을 보장하는 데 어려움이 있다.
따라서, 근본적으로 호스트 타임-아웃을 회피할 수 있는 새로운 머지 스킴이 절실히 요구되고 있다.
본 발명의 목적은 호스트 타임-아웃을 회피할 수 있는 머지 스킴 및 이를 이용한 메모리 시스템을 제공하는 것이다.
상술한 제반 목적을 달성하기 위한 본 발명의 특징에 따르면, 플래시 메모리를 제어하는 방법이 제공되며, 이 방법은 명령이 입력될 때, 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타내는 지의 여부를 판별하는 단계와; 만약 상기 플래시 메모리가 머지 상태에 있지 않으면, 상기 플래시 메모리에 머지 동작이 요구되는 지의 여부를 판별하는 단계와; 그리고 만약 머지 동작이 요구되지 않으면, 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어하는 단계를 포함한다.
이 실시예에 있어서, 상기 플래시 메모리의 머지 동작은 적어도 2개의 처리 과정들을 포함한다.
이 실시예에 있어서, 상기 플래시 메모리에 머지 동작이 요구될 때, 상기 머지 동작의 첫 번째 처리 과정을 수행하는 단계를 더 포함하며, 상기 머지 상태 정보는 상기 머지 동작의 다음의 처리 과정을 나타내도록 변경된다.
이 실시예에 있어서, 상기 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타낼 때, 상기 머지 동작의 몇 번째 처리 과정이 수행되어야 하는 지의 여부를 판별하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 판별된 처리 과정이 수행된 후 상기 머지 상태 정보가 다음의 처리 과정을 나타내도록 변경된다.
이 실시예에 있어서, 상기 판별된 처리 과정이 수행된 후, 상기 머지 동작이 완료되었는 지의 여부를 판별하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 머지 동작이 완료되지 않으면, 상기 입력된 명령이 처리된다.
이 실시예에 있어서, 상기 머지 동작이 완료되면, 상기 머지 상태 정보를 초기화시키는 단계를 더 포함한다.
이 실시예에 있어서, 상기 머지 상태 정보를 초기화시킨 후, 상기 입력된 명령이 처리된다.
이 실시예에 있어서, 상기 머지 동작이 완료되었는 지의 여부는 유효한 데이터의 복사가 완료되는 지의 여부에 의해서 판별된다.
이 실시예에 있어서, 상기 머지 동작이 완료되었는 지의 여부는 상기 머지 동작의 처리 과정들이 모두 수행되었는 지의 여부에 의해서 판별된다.
이 실시예에 있어서, 상기 머지 동작이 요구되는 지의 여부는 상기 플래시 메모리의 메모리 블록들 중 어느 하나에 빈 페이지가 존재하는 지의 여부에 의해서 판별된다.
이 실시예에 있어서, 상기 입력된 명령이 쓰기 명령일 때, 상기 머지 동작이 수행되는 동안, 상기 쓰기 명령과 함께 전송되는 데이터는 임시적으로 버퍼 메모리에 저장된다.
이 실시예에 있어서, 상기 버퍼 메모리에 저장된 데이터는 상기 머지 동작이 완료되는 명령 입력 사이클에서 상기 플래시 메모리에 저장된다.
본 발명의 다른 특징에 따르면, 메모리 시스템은 호스트와; 플래시 메모리와; 그리고 상기 플래시 메모리의 머지 상태 정보를 저장하도록 구성된 인터페이스 장치를 포함한다. 상기 인터페이스 장치는 상기 호스트로부터 명령이 전송될 때 상기 머지 상태 정보에 따라 점진적 머지 동작을 수행할 지의 여부를 판별한다.
이 실시예에 있어서, 상기 인터페이스 장치는 상기 플래시 메모리가 머지 상태에 있지 않을 때 상기 플래시 메모리에 머지 동작이 요구되는 지의 여부를 판별한다.
이 실시예에 있어서, 상기 머지 동작이 요구되지 않을 때, 상기 인터페이스 장치는 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어한다.
이 실시예에 있어서, 상기 플래시 메모리의 머지 동작은 적어도 2개의 처리 과정들을 포함한다.
이 실시예에 있어서, 상기 플래시 메모리에 머지 동작이 요구될 때, 상기 인터페이스 장치는 상기 머지 동작의 첫 번째 처리 과정을 수행하고, 상기 머지 동작의 다음의 처리 과정을 나타내도록 상기 머지 상태 정보를 변경된다.
이 실시예에 있어서, 상기 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타낼 때, 상기 인터페이스 장치는 상기 머지 상태 정보에 따라 상기 머지 동작의 몇 번째 처리 과정이 수행되어야 하는 지의 여부를 판별한다.
이 실시예에 있어서, 상기 인터페이스 장치는 상기 판별된 처리 과정이 수행된 후 다음의 처리 과정을 나타내도록 상기 머지 상태 정보를 변경한다.
이 실시예에 있어서, 상기 판별된 처리 과정이 수행된 후, 상기 인터페이스 장치는 상기 머지 동작이 완료되었는 지의 여부를 판별한다.
이 실시예에 있어서, 상기 머지 동작이 완료되지 않으면, 상기 인터페이스 장치는 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어한다.
이 실시예에 있어서, 상기 머지 동작이 완료되면, 상기 인터페이스 장치는 상기 머지 상태 정보를 초기화시킨다.
이 실시예에 있어서, 상기 머지 상태 정보를 초기화시킨 후, 상기 인터페이스 장치는 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어한다.
이 실시예에 있어서, 상기 머지 동작이 완료되었는 지의 여부는 유효한 데이터의 복사가 완료되는 지의 여부에 의해서 판별된다.
이 실시예에 있어서, 상기 머지 동작이 완료되었는 지의 여부는 상기 머지 동작의 처리 과정들이 모두 수행되었는 지의 여부에 의해서 판별된다.
이 실시예에 있어서, 상기 머지 동작이 요구되는 지의 여부는 상기 플래시 메모리의 메모리 블록들 중 어느 하나에 빈 페이지가 존재하는 지의 여부에 의해서 판별된다.
이 실시예에 있어서, 상기 인터페이스 장치는 버퍼 메모리를 포함하며, 상기 입력된 명령이 쓰기 명령일 때, 상기 머지 동작이 수행되는 동안, 상기 쓰기 명령과 함께 전송되는 데이터는 임시적으로 버퍼 메모리에 저장된다.
이 실시예에 있어서, 상기 버퍼 메모리에 저장된 데이터는 상기 머지 동작이 완료되는 명령 입력 사이클에서 상기 플래시 메모리에 저장된다.
본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 이하 상세히 설명될 것이다. 본 발명의 신규한 머지 방법에 따르면, 호스트로부터 명령이 입력될 때마다 머지 동작이 수행되어야 하는 지의 여부가 판별되고, 판별 결과에 따라 머지 동작이 분산되어 점진적으로 처리된다. 즉, 머지 동작은 입력된 명령의 처리 사이클 내에서 한번에 처리되는 것이 아니라 이후에 입력될 명령들의 처리 사이클들 내에서 각각 부분적으로 처리된다. 다시 말해서, 입력된 명령을 처리하고 남는 여분의 시간 동안 머지 동작이 부분적으로 수행된다. 이는 이후 상세히 설명될 것이다. 따라서, 머지 동작에 필요한 시간이 호스트 타임-아웃 시간을 초과하더라도, 머지 동작을 점진적으로/부분적으로 수행함으로써 호스트 타임-아웃을 회피하는 것이 가능하다.
도 4는 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 4를 참조하면, 본 발명에 따른 메모리 시스템 (1000)은 호스트 (100)와 외부 저장 장치 (200)를 포함한다. 외부 저장 장치 (200)는 인터페이스 장치 (300)와 플래시 메모리 (400)로 구성된다. 인터페이스 장치 (300)는 호스트 (100)로부터 플래시 메모리 (400)에 대한 액세스가 요청될 때 플래시 메모리 (400)를 제어한다. 예를 들면, 인터페이스 장치 (300)는 플래시 메모리 (400)의 읽기/쓰기/소거 동작을 제어한다. 뿐만 아니라, 인터페이스 장치 (300)는 호스트 (100)가 플래시 메모리 (400)를 SRAM/HDD처럼 읽기/쓰기/소거 동작이 자유롭게 수행되는 매체로서 사용되도록 플래시 메모리 (400)의 사상 정보를 관리한다.
인터페이스 장치 (300)는 호스트 인터페이스 (310), 중앙처리장치 (320), 워크 메모리 (330), 버퍼 메모리 (340), 그리고 플래시 컨트롤러 (350)를 포함한다. 호스트 인터페이스 (310)는 외부 저장 장치 (200)와 호스트 (100) 사이의 인터페이스 기능을 제공하며, 중앙처리장치 (320)는 외부 저장 장치 (200)의 전반적인 동작을 제어한다. 워크 메모리 (330)는 FTL 기능을 수행하는 데 필요한 소프트웨어를 저장하는 데 사용된다. 워크 메모리 (330)는 또한 플래시 메모리 (400)의 사상 정보를 저장하는 데 사용된다. 플래시 메모리 (400)의 사상 정보는 플래시 메모리 (400)에 임의의 영역 (예를 들면, 메타 영역)에 저장되고, 파워-업시 워크 메모리 (330)로 자동적으로 로드된다. 또한, FTL 기능을 수행하는 데 필요한 소프트웨어는 플래시 메모리 (400)의 임의의 영역 (예를 들면, 부트 코드 영역)에 저장되고, 파워-업시 워크 메모리 (330)로 자동적으로 로드된다.
게다가, 워크 메모리 (330)에는 점진적 머지 상태를 나타내는 머지 상태 정 보가 저장된다. 중앙처리장치 (320)는 소정 명령 (예를 들면, 읽기/쓰기/소거 명령)이 호스트 (100)로부터 전송될 때마다 워크 메모리 (330)의 머지 상태 정보를 참조하여 이후 설명될 점진적 머지 스킴을 제어한다. 버퍼 메모리 (340)는 플래시 메모리 (400)에 데이터를 저장하고자 하는 경우 또는 플래시 메모리 (400)로부터 데이터를 읽는 경우 임시적으로 데이터를 저장하는 데 사용된다. 버퍼 메모리 (340)는, 예를 들면, 플래시 메모리 (400)의 페이지 사이즈에 대응하는 저장 용량을 갖는다. 워크 메모리 (320)와 버퍼 메모리 (330)는 각각 휘발성 메모리 (예를 들면, SRAM)로 구현될 수 있다. 플래시 컨트롤러 (350)는 중앙처리장치 (320)의 제어 하에서 플래시 메모리 (400)의 액세스 동작 (예를 들면, 읽기/쓰기/소거 동작들)을 제어하도록 구현된다.
워크 메모리 (330) 및 버퍼 메모리 (340)가 동일한 기능을 수행하도록 하나의 메모리 (예를 들면, SRAM)로 구현될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
플래시 메모리 (400)는 복수 개의 메모리 블록들로 구성된 메모리 셀 어레이를 포함하며, 각 메모리 블록은 복수의 페이지들로 구성된다. 하나의 페이지는 하나의 섹터에 대응하거나 복수의 섹터들에 대응한다. 메모리 셀 어레이의 메모리 블록들은, 앞서 언급된 바와 같이, 데이터 영역, 로그 영역, 그리고 메타 영역으로 구분된다. 또한, 메모리 셀 어레이에는, 일반적으로, 부트 코드 그리고/또는 FTL를 저장하기 위한 메모리 블록이 더 제공된다. 데이터 플래시 메모리 (400)의 어레이 구조가 이상의 설명에 국한되지 않음은 자명하다. 즉, FTL의 사상 기법에 따라 메 모리 셀 어레이의 구조가 다양하게 구현될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 5는 본 발명에 따른 점진적 머지 방법을 설명하기 위한 흐름도이다. 도 1 내지 도 3에서 설명된 바와 같이, 머지 동작은 다양한 사상 기법들 (예를 들면, 블록 사상 기법, 섹터 사상 기법, 로그 사상 기법, 등)을 이용하여 수행될 수 있다. 어떤 사상 기법이 외부 저장 장치에 적용되더라도 본 발명의 머지 방법이 적용될 수 있다. 로그 사상 기법이 적용되는 메모리 시스템을 기초로 하여 본 발명의 점진적 머지 방법이 이하 상세히 설명될 것이다. 로그 사상 기법을 이용한 일반적인 머지 방법은 도 3a 내지 도 3d에서 설명되었으며, 전반적인 머지 동작은 동일하게 수행된다. 본 발명과 종래 기술의 차이점은 임의의 사이클 내에서 머지 동작이 완료되는 지의 여부에 있다. 이는 이하 좀 더 구체적으로 설명될 것이다.
단계 (S100)에서는 읽기, 소거 그리고 쓰기 명령들 중 어느 하나의 명령이 호스트 (100)에서 외부 저장 장치 (200)로 전송된다. 명령이 입력되면, 워크 메모리 (330)에 저장된 머지 상태 정보에 따라 외부 저장 장치 (200)가 점진적 머지 상태에 있는 지의 여부가 중앙처리장치 (320)에 의해서 판별된다 (S110). 만약 점진적 머지 상태가 아니면, 절차는 다음 단계 (S120)로 진행한다. S120 단계에서는 로그 영역의 메모리 블록들에 대한 머지 동작이 수행되어야 하는 지의 여부가 판별된다. 머지 동작을 수행해야 하는 지의 여부는 로그 영역의 메모리 블록들에 빈 페이지가 존재하는 지의 여부에 따라 결정될 수 있다. 빈 페이지가 메모리 블록 내에 존재하는 지의 여부는 사상 테이블을 이용하여 결정될 수 있다. 빈 페이지의 수는 다양하게 변경될 수 있다. 예를 들면, 하나의 빈 페이지만이 메모리 블록에 존재할 때, 머지 동작이 수행될 수 있다. 본 발명의 점진적 머지 스킴이 적용되는 메모리 시스템 및 플래시 메모리 용량에 따라 빈 페이지의 수가 다양하게 변경될 수 있다.
만약 머지 동작이 수행될 필요가 없다면, 입력된 명령에 대한 동작이 수행될 것이다 (S130). 입력된 명령이 정상적으로 처리된 후, 외부 저장 장치 (200)는 호스트 (100)에게 입력 명령에 대응하는 동작이 종료되었음을 알린다. 이 분야의 통상적인 지식을 습득한 자들에게 잘 이해될 수 있는 바와 같이, 입력된 명령에 대응하는 동작이 정해진 시간 (예를 들면, 타임-아웃 시간) 내에 정상적으로 수행되면, 호스트 타임-아웃은 발생하지 않을 것이다. 만약 입력된 명령에 대응하는 동작이 정해진 시간 (예를 들면, 타임-아웃 시간) 내에 정상적으로 수행되지 못하면, 호스트 타임-아웃이 유발되며, 외부 저장 장치 (200)는 초기화될 것이다.
S120 단계에서 메모리 블록(들)에 대한 머지 동작이 수행되어야 하는 것으로 판별되는 경우, 절차는 S150_1 단계로 진행한다. S150_1 단계에서는 점진적 머지 동작의 첫 번째 처리 과정이 수행된다. 머지 동작은, 앞서 설명된 바와 같이, 많은 처리 과정들을 통해 수행된다. 예를 들면, 로그 사상 기법에 따른 머지 방법은 크게 빈 메모리 블록을 준비하는 단계, 로그 영역의 메모리 블록에 저장된 유효 데이터를 빈 메모리 블록으로 복사하는 단계, 데이터 영역의 메모리 블록에 저장된 유효 데이터를 빈 메모리 블록으로 복사하는 단계, 사상 정보를 갱신하는 단계, 등을 포함한다. 유효 데이터를 빈 메모리 블록으로 복사하는 단계는 플래시 메모리의 페이지 사이즈에 따라 다시 2단계 또는 그 보다 많은 단계들로 구분될 수 있다.
이 실시예에 있어서, 첫 번째 처리 단계는 빈 메모리 블록을 준비하는 단계와 로그 영역의 메모리 블록에 저장된 유효 데이터를 빈 메모리 블록으로 복사하는 단계를 포함하고, 두 번째 처리 단계는 데이터 영역의 메모리 블록에 저장된 유효 데이터를 빈 메모리 블록으로 복사하는 단계와 사상 정보를 갱신하는 단계를 포함한다. 머지 동작에 필요한 시간이 유효 데이터를 빈 메모리 블록으로 복사하는 데 대부분 소요된다는 점을 고려하여 볼 때, 메모리 블록의 사이즈 (또는 용량)가 증가함에 따라 유효 데이터를 복사하는 데 필요한 시간이 증가된다. 이러한 경우, 점진적 머지 동작의 처리 단계들이 증가될 것이다. 본 발명의 점진적 머지 동작이 2번의 처리 과정들을 통해 수행될 수도 있고 그 보다 많은 처리 과정들을 통해 수행될 수도 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
머지 동작의 첫 번째 처리 과정이 수행된 후, 머지 상태 정보는 다음의 처리 단계를 나타내도록 갱신된다. 점진적 머지 동작의 첫 번째 처리 과정이 수행된 후, 머지 동작이 완료되었는 지의 여부가 판별된다 (S160). 예를 들면, 정해진 처리 단계들 (S150_1-S150_n)이 모두 수행될 때 머지 동작이 완료된 것으로 판별될 수 있다. 만약 머지 동작이 완료되지 않았으면, 절차는 S130 단계로 진행한다. 만약 머지 동작이 완료되었으면, 워크 메모리 (320)에 저장된 머지 상태 정보 값은 점진적 머지 상태에서 빠져나왔음을 나타내도록 초기화된다 (S170). 이후, 입력된 명령이 S130 단계에서 정상적으로 처리된 후, 외부 저장 장치 (200)는 호스트 (100)에게 입력 명령에 대응하는 동작이 종료되었음을 알린다.
그 다음에, 임의의 명령이 다시 호스트 (100)에서 외부 저장 장치 (200)로 전송되면 (S100), 워크 메모리 (330)에 저장된 머지 상태 정보에 따라 외부 저장 장치 (200)가 점진적 머지 상태에 있는 지의 여부가 중앙처리장치 (320)에 의해서 판별된다 (S110). 이전의 명령의 입력에 따라 첫 번째 처리 과정이 수행되었기 때문에, 절차는 S140 단계로 진행하여 머지 동작의 다음 처리 과정이 수행될 것이다. 두 번째 처리 과정이 완료된 후, 머지 상태 정보는 다음의 처리 단계를 나타내도록 갱신된다. 그 다음에, 절차는 머지 동작이 완료되었는 지의 여부가 판별되는 S160 단계로 진행한다. 만약 머지 동작이 완료되지 않았으면, 절차는 S130 단계로 진행한다. 만약 머지 동작이 완료되었으면, 워크 메모리 (320)에 저장된 머지 상태 정보 값은 점진적 머지 상태에서 빠져나왔음을 나타내도록 초기화된다 (S170). 이후, 입력된 명령이 S130 단계에서 정상적으로 처리된 후, 외부 저장 장치 (200)는 호스트 (100)에게 입력 명령에 대응하는 동작이 종료되었음을 알린다. 앞서 설명된 과정들은 점진적 머지 동작이 완료될 때까지 반복적으로 수행될 것이다.
일단 외부 저장 장치 (200)가 점진적 머지 상태에 진입하면, 외부 저장 장치 (200)는 정해진 처리 단계들 중 일부 처리 단계들을 통해 머지 동작이 완료되었음에도 불구하고 정해진 처리 단계들이 모두 수행될 때까지 머지 상태에 머물러 있게 된다. 이에 반해서, 머지 동작이 완료되었는 지의 여부를 빈 메모리 블록으로 유효 데이터가 모두 복사되었는 지의 여부를 기준으로 판별하는 경우, 정해진 처리 단계들 중 일부 처리 단계들을 통해 머지 동작이 완료되었을 때 외부 저장 장치 (200)는 점진적 머지 상태에서 빠져나오게 된다. 또한, 점진적 머지 동작이 2번의 처리 단계들을 통해 완료된다고 가정하면, 머지 동작이 완료되었는 지의 여부는 머지 상 태 정보를 이용하여 판별될 수 있다. 언급된 판별 방법들 이외에도 예상될 수 있는 모든 판별 방법들이 본 발명에 적용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
입력된 명령이 쓰기, 읽기 또는 소거 명령인 경우, S130 단계에서는 입력된 명령에 대응하는 쓰기/읽기/소거 동작이 수행된다. 이에 반해서, 입력된 명령이 쓰기 명령인 경우, S130 단계에서는 입력된 명령에 대응하는 쓰기 동작이 수행되지 않도록 점진적 머지 동작이 구현될 수 있다. 이러한 경우, 쓰기 명령과 함께 입력된 데이터는 임시적으로 버퍼 메모리 (340)에 저장된다. 다음의 쓰기 명령이 입력되면, 점진적 머지 동작의 다음 과정이 수행된다. 이때, 쓰기 명령과 입력된 데이터는 임시적으로 버퍼 메모리 (340)에 저장된다. 이러한 동작은 버퍼 메모리 (340)가 모두 채워질 때까지 2번 또는 그 이상 반복적으로 수행될 수 있다. 점진적 머지 동작이 완료된 후, 버퍼 메모리 (340)에 저장된 데이터는 플래시 메모리 (400)에 저장된다.
본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 명령이 입력될 때마다 머지 동작을 점진적으로/부분적으로 수행함으로써 호스트 타임-아웃을 회피하는 것이 가능하다.

Claims (30)

  1. 플래시 메모리를 제어하는 방법에 있어서:
    명령이 입력될 때, 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타내는 지의 여부를 판별하는 단계와;
    만약 상기 플래시 메모리가 머지 상태에 있지 않으면, 상기 플래시 메모리에 머지 동작이 요구되는 지의 여부를 판별하는 단계와; 그리고
    만약 머지 동작이 요구되지 않으면, 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 플래시 메모리의 머지 동작은 적어도 2개의 처리 과정들을 포함하는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 플래시 메모리에 머지 동작이 요구될 때, 상기 머지 동작의 첫 번째 처리 과정을 수행하는 단계를 더 포함하며, 상기 머지 상태 정보는 상기 머지 동작의 다음의 처리 과정을 나타내도록 변경되는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서,
    상기 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타낼 때, 상기 머지 동작의 몇 번째 처리 과정이 수행되어야 하는 지의 여부를 판별하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 판별된 처리 과정이 수행된 후 상기 머지 상태 정보가 다음의 처리 과정을 나타내도록 변경되는 것을 특징으로 하는 방법.
  6. 제 4 항에 있어서,
    상기 판별된 처리 과정이 수행된 후, 상기 머지 동작이 완료되었는 지의 여부를 판별하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서,
    상기 머지 동작이 완료되지 않으면, 상기 입력된 명령이 처리되는 것을 특징으로 하는 방법.
  8. 제 6 항에 있어서,
    상기 머지 동작이 완료되면, 상기 머지 상태 정보를 초기화시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 8 항에 있어서,
    상기 머지 상태 정보를 초기화시킨 후, 상기 입력된 명령이 처리되는 것을 특징으로 하는 방법.
  10. 제 6 항에 있어서,
    상기 머지 동작이 완료되었는 지의 여부는 유효한 데이터의 복사가 완료되는 지의 여부에 의해서 판별되는 것을 특징으로 하는 방법.
  11. 제 6 항에 있어서,
    상기 머지 동작이 완료되었는 지의 여부는 상기 머지 동작의 처리 과정들이 모두 수행되었는 지의 여부에 의해서 판별되는 것을 특징으로 하는 방법.
  12. 제 1 항에 있어서,
    상기 머지 동작이 요구되는 지의 여부는 상기 플래시 메모리의 메모리 블록들 중 어느 하나에 빈 페이지가 존재하는 지의 여부에 의해서 판별되는 것을 특징으로 하는 방법.
  13. 제 3 항에 있어서,
    상기 입력된 명령이 쓰기 명령일 때, 상기 머지 동작이 수행되는 동안, 상기 쓰기 명령과 함께 전송되는 데이터는 임시적으로 버퍼 메모리에 저장되는 것을 특 징으로 하는 방법.
  14. 제 13 항에 있어서,
    상기 버퍼 메모리에 저장된 데이터는 상기 머지 동작이 완료되는 명령 입력 사이클에서 상기 플래시 메모리에 저장되는 것을 특징으로 하는 방법.
  15. 호스트와;
    플래시 메모리와; 그리고
    상기 플래시 메모리의 머지 상태 정보를 저장하도록 구성된 인터페이스 장치를 포함하며,
    상기 인터페이스 장치는 상기 호스트로부터 명령이 전송될 때 상기 머지 상태 정보에 따라 점진적 머지 동작을 수행할 지의 여부를 판별하는 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 인터페이스 장치는 상기 플래시 메모리가 머지 상태에 있지 않을 때 상기 플래시 메모리에 머지 동작이 요구되는 지의 여부를 판별하는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 머지 동작이 요구되지 않을 때, 상기 인터페이스 장치는 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어하는 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 플래시 메모리의 머지 동작은 적어도 2개의 처리 과정들을 포함하는 메모리 시스템.
  19. 제 18 항에 있어서,
    상기 플래시 메모리에 머지 동작이 요구될 때, 상기 인터페이스 장치는 상기 머지 동작의 첫 번째 처리 과정을 수행하고, 상기 머지 동작의 다음의 처리 과정을 나타내도록 상기 머지 상태 정보를 변경되는 메모리 시스템.
  20. 제 18 항에 있어서,
    상기 머지 상태 정보가 상기 플래시 메모리의 머지 상태를 나타낼 때, 상기 인터페이스 장치는 상기 머지 상태 정보에 따라 상기 머지 동작의 몇 번째 처리 과정이 수행되어야 하는 지의 여부를 판별하는 메모리 시스템.
  21. 제 20 항에 있어서,
    상기 인터페이스 장치는 상기 판별된 처리 과정이 수행된 후 다음의 처리 과정을 나타내도록 상기 머지 상태 정보를 변경하는 메모리 시스템.
  22. 제 21 항에 있어서,
    상기 판별된 처리 과정이 수행된 후, 상기 인터페이스 장치는 상기 머지 동작이 완료되었는 지의 여부를 판별하는 메모리 시스템.
  23. 제 22 항에 있어서,
    상기 머지 동작이 완료되지 않으면, 상기 인터페이스 장치는 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어하는 메모리 시스템.
  24. 제 23 항에 있어서,
    상기 머지 동작이 완료되면, 상기 인터페이스 장치는 상기 머지 상태 정보를 초기화시키는 메모리 시스템.
  25. 제 24 항에 있어서,
    상기 머지 상태 정보를 초기화시킨 후, 상기 인터페이스 장치는 상기 입력된 명령이 처리되도록 상기 플래시 메모리를 제어하는 메모리 시스템.
  26. 제 23 항에 있어서,
    상기 머지 동작이 완료되었는 지의 여부는 유효한 데이터의 복사가 완료되는 지의 여부에 의해서 판별되는 메모리 시스템.
  27. 제 23 항에 있어서,
    상기 머지 동작이 완료되었는 지의 여부는 상기 머지 동작의 처리 과정들이 모두 수행되었는 지의 여부에 의해서 판별되는 메모리 시스템.
  28. 제 16 항에 있어서,
    상기 머지 동작이 요구되는 지의 여부는 상기 플래시 메모리의 메모리 블록들 중 어느 하나에 빈 페이지가 존재하는 지의 여부에 의해서 판별되는 메모리 시스템.
  29. 제 16 항에 있어서,
    상기 인터페이스 장치는 버퍼 메모리를 포함하며,
    상기 입력된 명령이 쓰기 명령일 때, 상기 머지 동작이 수행되는 동안, 상기 쓰기 명령과 함께 전송되는 데이터는 임시적으로 버퍼 메모리에 저장되는 메모리 시스템.
  30. 제 29 항에 있어서,
    상기 버퍼 메모리에 저장된 데이터는 상기 머지 동작이 완료되는 명령 입력 사이클에서 상기 플래시 메모리에 저장되는 메모리 시스템.
KR1020040050507A 2004-06-30 2004-06-30 점진적 머지 방법 및 그것을 이용한 메모리 시스템 Expired - Fee Related KR100568115B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020040050507A KR100568115B1 (ko) 2004-06-30 2004-06-30 점진적 머지 방법 및 그것을 이용한 메모리 시스템
US10/990,065 US7529879B2 (en) 2004-06-30 2004-11-16 Incremental merge methods and memory systems using the same
TW094114862A TWI349192B (en) 2004-06-30 2005-05-09 Incremental merge methods and memory systems using the same
CN2005100794219A CN1722109B (zh) 2004-06-30 2005-06-21 增量归并方法和使用该方法的存储系统
JP2005190651A JP4422652B2 (ja) 2004-06-30 2005-06-29 漸進的マージ方法及びそれを利用したメモリシステム
DE102005031525A DE102005031525A1 (de) 2004-06-30 2005-06-30 Verfahren und System zur Steuerung eines Flashspeichers und Speichersystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040050507A KR100568115B1 (ko) 2004-06-30 2004-06-30 점진적 머지 방법 및 그것을 이용한 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20060001393A KR20060001393A (ko) 2006-01-06
KR100568115B1 true KR100568115B1 (ko) 2006-04-05

Family

ID=35511655

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040050507A Expired - Fee Related KR100568115B1 (ko) 2004-06-30 2004-06-30 점진적 머지 방법 및 그것을 이용한 메모리 시스템

Country Status (6)

Country Link
US (1) US7529879B2 (ko)
JP (1) JP4422652B2 (ko)
KR (1) KR100568115B1 (ko)
CN (1) CN1722109B (ko)
DE (1) DE102005031525A1 (ko)
TW (1) TWI349192B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9368223B2 (en) 2012-10-05 2016-06-14 Samsung Electronics Co., Ltd. Memory system and read reclaim method thereof

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
WO2007038138A2 (en) * 2005-09-21 2007-04-05 Incyte Corporation Amido compounds and their use as pharmaceuticals
JP5002201B2 (ja) * 2006-06-30 2012-08-15 株式会社東芝 メモリシステム
CN100423001C (zh) * 2006-09-26 2008-10-01 北京北大方正电子有限公司 一种信息归并方法及系统
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
KR100843135B1 (ko) * 2006-11-20 2008-07-02 삼성전자주식회사 비휘발성 메모리 관리 방법 및 장치
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR100881597B1 (ko) * 2007-02-02 2009-02-03 지인정보기술 주식회사 읽기 요청 처리 시스템 및 방법
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US8082384B2 (en) * 2008-03-26 2011-12-20 Microsoft Corporation Booting an electronic device using flash memory and a limited function memory controller
TWI385519B (zh) * 2008-04-18 2013-02-11 Phison Electronics Corp 資料寫入方法及使用此方法的快閃儲存系統與其控制器
KR101497074B1 (ko) * 2008-06-17 2015-03-05 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR100987251B1 (ko) * 2008-10-10 2010-10-12 한양대학교 산학협력단 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치
KR101510120B1 (ko) * 2008-11-21 2015-04-10 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
KR101581859B1 (ko) * 2009-02-27 2016-01-21 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
US9753847B2 (en) 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8417876B2 (en) * 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
KR101734200B1 (ko) 2010-12-03 2017-05-11 삼성전자주식회사 적응적 머지를 수행하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US9396106B2 (en) * 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
TWI461913B (zh) * 2011-11-30 2014-11-21 Silicon Motion Inc 快閃記憶裝置及其資料讀取方法
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
US10318987B2 (en) * 2014-02-18 2019-06-11 International Business Machines Corporation Managing cookie data
US9760481B2 (en) * 2014-06-13 2017-09-12 Sandisk Technologies Llc Multiport memory
JP6860965B2 (ja) * 2015-06-12 2021-04-21 任天堂株式会社 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
KR102709416B1 (ko) 2019-06-03 2024-09-24 삼성전자주식회사 3차원 메모리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044351A (ja) 2001-07-27 2003-02-14 Matsushita Electric Ind Co Ltd フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US20030110343A1 (en) 2001-12-11 2003-06-12 Mitsubishi Denki Kabushiki Kaisha File system including non-volatile semiconductor memory device having a plurality of banks

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1628505A (en) * 1927-05-10 Extension step
US653769A (en) * 1897-09-13 1900-07-17 Samuel B Fuller Car-step.
US823401A (en) * 1905-08-02 1906-06-12 Bucyrus Co Rope-fastening for winding-drums.
US981024A (en) * 1909-07-01 1911-01-10 Walter T Stall Interior detachable pad for garments.
US953733A (en) * 1909-07-30 1910-04-05 Edwin H Allfree Adjustable step and platform.
US961024A (en) * 1909-11-04 1910-06-07 Isaac H Saunders Car-platform closure.
US986103A (en) * 1910-07-19 1911-03-07 Adrian A Taylor Car-step.
US1102287A (en) * 1914-02-26 1914-07-07 Edvard M Moller Combination door and door-step for platforms of cars.
US1149482A (en) * 1914-11-05 1915-08-10 John A Stellner Swinging reversible car-steps.
US1168484A (en) * 1914-11-23 1916-01-18 Cilos C Dalton Folding shipping-crate for eggs.
US1141064A (en) * 1915-03-06 1915-05-25 John R Kunzelman Auxiliary step for car-platforms.
US1169140A (en) * 1915-11-08 1916-01-25 William H Cheever Foldable car-steps.
US1183707A (en) * 1915-12-20 1916-05-16 Elmer E Cressler Folding car-step and trap-door.
US1387134A (en) * 1920-04-20 1921-08-09 Dufek Louis Approachway for platforms of cars
US1419992A (en) * 1921-05-04 1922-06-20 Szczurek Joe Extension steps
US1425149A (en) * 1922-03-27 1922-08-08 Swanson Peter Auxiliary car step
US1685124A (en) * 1925-07-21 1928-09-25 American Car & Foundry Co Holding-means for car-vestibule trapdoors
US1868599A (en) * 1925-11-02 1932-07-26 Percy M Griffin Closure operating device
US1965387A (en) * 1933-01-27 1934-07-03 Mcdonald John Francis Keeper for fastening a platform to a door guide
US2082536A (en) * 1933-02-15 1937-06-01 Clark Equipment Co Rail car
US2162964A (en) * 1936-06-05 1939-06-20 American Car & Foundry Co Folding car step
US2123505A (en) * 1936-07-29 1938-07-12 Faries Robert Motor truck
US2190742A (en) * 1938-04-30 1940-02-20 American Car & Foundry Co Railway car
US2190708A (en) * 1938-07-30 1940-02-20 Chester L Fowler Vehicle transporting car
US2415341A (en) * 1943-11-08 1947-02-04 Budd Co Trap door and step arrangement
US2370427A (en) * 1944-07-24 1945-02-27 Henry A Sherry Portable ramp for vehicles
US2498375A (en) * 1946-09-19 1950-02-21 Francis W Moore Ladder lock
US2825582A (en) * 1953-06-25 1958-03-04 Albert W Mcdonald Foldable steps for trailer
US2828027A (en) * 1954-03-03 1958-03-25 George A Ramlose Foundation In Means of handling articles
US2951454A (en) * 1957-04-08 1960-09-06 Pullman Standard Car Mfg Co Vehicle folding step assembly
US2878533A (en) * 1958-01-13 1959-03-24 Youngstown Steel Door Co Doors for box cars
US2979327A (en) * 1958-11-17 1961-04-11 Gen Motors Corp Flush type vehicle window
US3086261A (en) * 1961-06-13 1963-04-23 Torjesen Inc Floor seal
US3138831A (en) * 1961-06-26 1964-06-30 American Seal Kap Corp Latching arrangements for sliding flush doors
US3166277A (en) * 1963-07-19 1965-01-19 Hiller Aircraft Company Inc Vehicle work platform
US3330329A (en) * 1965-09-13 1967-07-11 David R Ligh Hatch cover operating arrangement
US3374821A (en) * 1965-10-14 1968-03-26 New Castle Products Inc Movable space divider structure
US3468580A (en) * 1967-04-21 1969-09-23 Veseley Co Combination door and step for vehicle bodies
GB1214028A (en) * 1967-11-10 1970-11-25 Brownbuilt Ltd Storage facility
DE1755862B1 (de) * 1968-07-02 1970-12-23 Volkswagenwerk Ag Selbsttaetig ausfahrbares Trittbrett fuer Fahrzeuge,insbesondere Kraftfahrzeuge
US3651767A (en) * 1968-10-23 1972-03-28 Linke Hofmann Busch Multistep entry particularly for vehicles
US3672311A (en) * 1968-10-23 1972-06-27 Linke Hofmann Busch Movable stair mounting arrangement for vehicles
US3687186A (en) * 1969-05-02 1972-08-29 Hamilton Neil King Paton Boxcar full-side closure
US3572754A (en) * 1969-07-11 1971-03-30 Gen Motors Corp Vehicle step arrangement
US3675593A (en) * 1969-12-11 1972-07-11 Waggonfabrik Verdingen Ag Stairway for rail-mounted conveyances
US3724396A (en) * 1971-02-18 1973-04-03 Vapor Corp Door system for high low platforms
US3709155A (en) * 1971-03-22 1973-01-09 Pullman Inc Automobile hold-down device
US3788500A (en) * 1971-04-27 1974-01-29 J Lemelson Automatic transfer and transport system
US3715043A (en) * 1971-05-28 1973-02-06 Fmc Corp Loading and unloading conveyor
US3730361A (en) * 1971-07-28 1973-05-01 Zink R Vehicle ramp
US3799288A (en) * 1972-05-17 1974-03-26 L Manuel Rotatable stair assembly adapted for attachment to a vehicle platform
US3795205A (en) * 1972-08-28 1974-03-05 Vac Ind Inc Door system for a railway car
US3830332A (en) * 1972-12-01 1974-08-20 Fail Safe Brake Corp Automatic door lock
US3893697A (en) * 1973-05-16 1975-07-08 Blitz Corp Loading and unloading system for bus
US3870170A (en) * 1973-06-06 1975-03-11 Donald E Noble Loading ramp for pick-up trucks and the like
US4141179A (en) * 1974-03-21 1979-02-27 Westinghouse Brake & Signal Co., Ltd. Vehicle door arrangements
AU497070B2 (en) * 1974-03-21 1978-11-23 Westinghouse Brake And Signal Compan'i Limited Vehicle door arrangements
US4016991A (en) * 1974-04-10 1977-04-12 Oldford William G Railway loading and unloading system
US3957284A (en) * 1974-09-13 1976-05-18 The Boeing Company Movable steps for a transit vehicle
CA1025159A (en) * 1974-10-31 1978-01-31 Jacques Pradon Safety equipment for variable height vehicle access
US3955827A (en) * 1975-03-03 1976-05-11 Wonigar Joseph J Stowable step for vehicles
US4002891A (en) * 1975-08-13 1977-01-11 The B. F. Goodrich Company Mixer control system
US4251179A (en) * 1978-03-13 1981-02-17 Transportation Design & Technology, Inc. Wheelchair lift
US4081091A (en) * 1975-08-20 1978-03-28 Transportation Design & Technology, Inc. Wheelchair lift
US4015866A (en) * 1975-10-28 1977-04-05 Pullman Incorporated Operating mechanism for double sliding doors
US4018239A (en) * 1975-11-17 1977-04-19 Hobart Corporation Tray washer apparatus
US4039091A (en) * 1976-03-25 1977-08-02 Mb Associates Elevator type bus boarder
US4020920A (en) * 1976-06-28 1977-05-03 Abbott John D Retractable transit coach step
US4074786A (en) * 1976-08-10 1978-02-21 Steiger Tractor Inc. Self locking compartment for tractor
FR2405849A1 (fr) * 1977-10-13 1979-05-11 Faiveley Sa Marchepied escamotable, notamment pour une porte de voiture de chemins de fer
US4140327A (en) * 1977-12-30 1979-02-20 Hackney & Sons, Inc. Truck body bay doorway platform
US4216725A (en) * 1978-11-13 1980-08-12 Pullman Incorporated Combination door and emergency stairway exit
US4252491A (en) * 1979-03-30 1981-02-24 Jelco Service Co., Inc. Material lift platform
US4249634A (en) * 1979-09-12 1981-02-10 Eastman Kodak Company Safety floating step assembly for platform
US4275664A (en) * 1979-09-26 1981-06-30 Vapor Corporation Step-platform operation
US4273498A (en) * 1979-11-07 1981-06-16 The Budd Company Railway car trap door lift
DE2946531C2 (de) * 1979-11-17 1982-06-24 M.A.N. Maschinenfabrik Augsburg-Nürnberg AG, 8000 München Mehrstufiger, seitlich ausfahrbarer Einstieg für Fahrzeuge für den Personenverkehr, insbesondere Omnibusse
DE3004640A1 (de) * 1980-01-28 1981-07-30 SIG Schweizerische Industrie-Gesellschaft, 8212 Neuhausen am Rheinfall Einstiegtreppe fuer schienenfahrzeuge
JPS5876669A (ja) * 1981-10-29 1983-05-09 株式会社大井製作所 自動車等における自動扉開閉装置
US4453684A (en) * 1981-12-09 1984-06-12 Omac, Inc. Step operated locking mechanism for aircraft lower door
US4583466A (en) * 1982-11-08 1986-04-22 Vapor Corporation Step lift for railway cars
US4570962A (en) * 1984-01-16 1986-02-18 Chavira Salvador V Retractable vehicle step assembly
US4720116A (en) * 1986-11-24 1988-01-19 Williams Michael G Storable stairway and platform apparatus for recreational vehicles
US4759682A (en) * 1987-05-06 1988-07-26 Transpec Inc. Vehicle entrance ramp
US4850788A (en) * 1987-07-13 1989-07-25 Dickson Industries, Inc. Ramp assembly for trailers and the like
US5228707A (en) * 1991-08-16 1993-07-20 Carriage, Inc. Retractable vehicle step
DE4223320C1 (en) * 1992-07-16 1993-09-16 Deutsche Aerospace Airbus Gmbh, 21129 Hamburg, De Folding stairway between decks of large aircraft - has extending access housing at upper end to collapse into small unit for unimpeded emergency exit path
JPH06222986A (ja) 1993-01-26 1994-08-12 Oki Electric Ind Co Ltd メモリ制御装置
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
CA2146739C (en) * 1995-04-10 2002-06-18 Jacobus N. Hanemaayer Improved sewer discharge and stowing system for a recreation vehicle
US5878088A (en) * 1997-04-10 1999-03-02 Thomson Consumer Electronics, Inc. Digital variable symbol timing recovery system for QAM
US6125459A (en) * 1997-01-24 2000-09-26 International Business Machines Company Information storing method, information storing unit, and disk drive
US6179312B1 (en) * 1997-03-14 2001-01-30 Freightliner Llc Retractable stairway for entering and exiting a vehicle
US5876086A (en) * 1997-04-14 1999-03-02 The Budd Company Multi-piece door with hidden hinge
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6178364B1 (en) * 1999-02-12 2001-01-23 Freightliner Corporation Method of controlling a retractable stairway assembly
US6263804B1 (en) * 1999-07-22 2001-07-24 Tekdata Inc. Dual level access door system for railway vehicles
KR100577380B1 (ko) 1999-09-29 2006-05-09 삼성전자주식회사 플래시 메모리와 그 제어 방법
US6401629B1 (en) * 1999-12-10 2002-06-11 Faiveley Transport Door for railroad car
AUPQ555700A0 (en) * 2000-02-11 2000-03-02 Canon Kabushiki Kaisha Fifo overflow management
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044351A (ja) 2001-07-27 2003-02-14 Matsushita Electric Ind Co Ltd フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US20030110343A1 (en) 2001-12-11 2003-06-12 Mitsubishi Denki Kabushiki Kaisha File system including non-volatile semiconductor memory device having a plurality of banks

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9368223B2 (en) 2012-10-05 2016-06-14 Samsung Electronics Co., Ltd. Memory system and read reclaim method thereof
US9431117B2 (en) 2012-10-05 2016-08-30 Samsung Electronics Co., Ltd. Memory system and read reclaim method thereof
US9672104B2 (en) 2012-10-05 2017-06-06 Samsung Electronics Co., Ltd. Memory system and read reclaim method thereof

Also Published As

Publication number Publication date
US7529879B2 (en) 2009-05-05
TW200602867A (en) 2006-01-16
DE102005031525A1 (de) 2006-01-26
JP4422652B2 (ja) 2010-02-24
JP2006018839A (ja) 2006-01-19
TWI349192B (en) 2011-09-21
CN1722109A (zh) 2006-01-18
KR20060001393A (ko) 2006-01-06
CN1722109B (zh) 2010-05-26
US20060004971A1 (en) 2006-01-05

Similar Documents

Publication Publication Date Title
KR100568115B1 (ko) 점진적 머지 방법 및 그것을 이용한 메모리 시스템
KR100684942B1 (ko) 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
KR100684887B1 (ko) 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US9928167B2 (en) Information processing system and nonvolatile storage unit
JP4155463B2 (ja) 順次書き込みのみを用いるフラッシュ管理システムを有するシステム、及びその方法
US10789160B2 (en) Utilizing different data storage policies in response to different characteristics of data
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20070094445A1 (en) Method to enable fast disk caching and efficient operations on solid state disks
EP0978040B1 (en) Memory device
US20100318754A1 (en) Apparatus and methods using invalidity indicators for buffered memory
CN110955384A (zh) 数据储存装置以及非挥发式存储器控制方法
KR20040082921A (ko) 플래쉬 파일 시스템
JP2011221996A (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
KR20080045833A (ko) 플래쉬 메모리 관리 방법 및 이를 이용하는 플래쉬 메모리시스템
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
US20060059296A1 (en) Emulating small block size of flash memory
KR20220096247A (ko) 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
CN114691534A (zh) 控制器以及包括控制器的存储器系统
KR20240058637A (ko) 데이터 및 대응되는 맵을 선택적으로 저장하는 메모리 시스템 및 그 동작 방법
KR20090113624A (ko) 솔리드 스테이트 드라이브 및 그 동작 제어방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20040630

PA0201 Request for examination
PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20060125

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20060330

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20060331

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20090309

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20100315

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20110302

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20120229

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20130228

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20140228

Start annual number: 9

End annual number: 9

FPAY Annual fee payment
PR1001 Payment of annual fee

Payment date: 20150302

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20160229

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20160229

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20170228

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20180228

Start annual number: 13

End annual number: 13

FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20190228

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee

Payment date: 20210225

Start annual number: 16

End annual number: 16

PR1001 Payment of annual fee

Payment date: 20220223

Start annual number: 17

End annual number: 17

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20250110