KR100771521B1 - 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 - Google Patents

멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 Download PDF

Info

Publication number
KR100771521B1
KR100771521B1 KR1020060105692A KR20060105692A KR100771521B1 KR 100771521 B1 KR100771521 B1 KR 100771521B1 KR 1020060105692 A KR1020060105692 A KR 1020060105692A KR 20060105692 A KR20060105692 A KR 20060105692A KR 100771521 B1 KR100771521 B1 KR 100771521B1
Authority
KR
South Korea
Prior art keywords
block
data
write
log
mlc
Prior art date
Application number
KR1020060105692A
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 KR1020060105692A priority Critical patent/KR100771521B1/ko
Priority to US11/702,573 priority patent/US7970981B2/en
Application granted granted Critical
Publication of KR100771521B1 publication Critical patent/KR100771521B1/ko
Priority to US13/110,572 priority patent/US20110219180A1/en
Priority to US13/406,862 priority patent/US20120159054A1/en
Priority to US13/777,816 priority patent/US8843699B2/en
Priority to US14/479,472 priority patent/US9122592B2/en
Priority to US14/840,220 priority patent/US9886202B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash 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/7202Allocation control and policies
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

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

Abstract

본 발명에 따른 로그 블록 사상법에 의해 주소 사상을 구성하는 플래시 메모리 시스템의 데이터의 쓰기 방법은, 로그 블록에 기입될 데이터의 쓰기 패턴을 판단하는 단계와; 상기 쓰기 패턴에 따라 SLC 블록과 MLC 블록 중 어느 하나를 상기 로그 블록으로 할당하는 단계를 포함한다.
상술한 로그 블록의 할당에 의한 쓰기 방법에 따르면, 대용량의 MLC 셀 어레이를 사용하는 플래시 메모리 장치에서 쓰기 속도를 향상시킬 수 있다.

Description

멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의 데이터 쓰기 방법{FLASH MEMORY DEVICE HAVING A MULTI-LEVELED CELL AND PROGRAMMING METHOD THEREOF}
도 1a는 본 발명에 따른 SLC 블록을 갖는 플래시 메모리 시스템을 간략히 보여주는 블록도;
도 1b는 본 발명에 따른 하이브리드 플래시 메모리 장치가 장착되는 시스템의 구성을 간략히 도시한 블록도;
도 2a는 상술한 도 1a 및 도 1b의 시스템을 구동하는 소프트웨어의 계층적 구성을 간략히 보여주는 블록도;
도 2b는 도 2a의 FTL의 내부 구성을 간략히 도시한 블록도;
도 3은 본 발명의 로그 블록 할당 방법을 간략히 보여주는 도면;
도 4a는 본 발명에 따른 1:2 맵핑법을 간략히 보여주는 도면;
도 4b는 본 발명의 1:N 맵핑법을 간략히 보여주는 도면;
도 5는 본 발명에 따른 쓰기 패턴을 예측하는 방법을 보여주는 흐름도;
도 6은 임의 쓰기 패턴에서의 합병 연산을 표현한 도면;
도 7은 순차 쓰기 패턴에서의 합병 연산을 표현한 도면;
도 8은 본 발명에 따른 MLC 블록만을 포함하는 플래시 메모리 시스템의 하드 웨어적인 구성을 간략히 보여주는 블록도;
도 9는 MLC 블록의 페이지 구성을 간략히 보여주는 도면;
도 10은 MLC 블록만을 가지는 플래시 메모리 장치에 대한 로그 블록 할당 방법을 간략히 보여주는 도면;
도 11a는 본 발명의 1:2 맵핑법을 간략히 보여주는 도면;
도 11b는 본 발명의 1:N 맵핑법을 간략히 보여주는 도면;
도 12는 임의 쓰기 패턴에서의 합병 연산을 표현한 도면;
도 13은 순차 쓰기 패턴에서의 합병 연산을 표현한 도면;
도 14a, 14b는 본 발명의 로그 블록의 운용 방법을 순차적으로 도시한 도면.
*도면의 주요부분에 대한 부호의 설명*
10, 400 : 중앙 처리 장치 20, 410 : 램
30, 420 : 시스템 버스 40, 50, 430 : 플래시 메모리 장치
41, 51, 431 : 메모리 제어기 42 : SLC 플래시 메모리
43, 432 : MLC 플래시 메모리 52 : 하이브리드 플래시 메모리
100 : 응용 소프트웨어 110 :파일 시스템
120 : FTL 130 : 플래시 메모리 장치
본 발명은 플래시 메모리 장치에 관한 것으로, 더욱 상세하게는 낸드 플래시 메모리 장치의 주소 사상법에 관한 것이다.
일반적으로, 플래시 메모리는 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크 대신 플래시 메모리가 저장장치로서 널리 사용되고 있다. 상술한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재생 기능)을 제공하기 위해서 점차 대용량의 저장 장치들을 필요로 하고 있다. 그러한 요구를 충족하기 위한 다양한 노력들이 행해져 오고 있다. 그러한 노력들 중 하나로서 하나의 메모리 셀에 2비트 데이터 또는 그보다 많은 데이터 비트들을 저장하는 멀티 비트 메모리 장치가 제안되어 오고 있다. 메모리 셀당 다중 비트 데이터가 저장되는 메모리 셀을 이하에서는 "MLC(Multi-Leveled Cell)"라 칭하기로 한다. 그에 반해 메모리 셀당 1비트의 데이터가 저장되는 메모리 셀을 "SLC(Single-Leveled Cell)"라 칭하기로 한다. MLC를 채택한 플래시 메모리 장치는 가용 용량의 증가는 가능하지만, 데이터의 기입에 소요되는 시간이 증가한다. 반면에, SLC를 채택한 플래시 메모리 장치는 가용 용량은 상대적으로 작지만, 데이터의 기입에 소요되는 시간이 짧아 MLC에 비하여 고속의 동작 특성을 갖는다. 또한, 기술의 진보에 따라 동일한 메모리 셀을 MLC 또는 SLC로 선택적으로 사용가능한 하이브리드 플래시 메모리(Hybrid NAND Flash Memory)가 제안되고 있다.
플래시 메모리는 다른 메모리 소자와 비교할 때, 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 플래시 메모리에 데이터를 기입 하기 위해서는 소거 동작이 반드시 선행되어야 하며, 기입되는 데이터의 단위보다 삭제되는 데이터의 단위가 크다는 특징이 있다. 이러한 특징은 플래시 메모리를 주 메모리로 사용하는 것을 어렵게 할 뿐만 아니라, 플래시 메모리가 보조기억장치로 사용되는 경우에도 일반 하드디스크용 파일 시스템(File System)을 그대로 활용하는 것을 저해하는 요인이 된다. 따라서, 플래시 메모리의 삭제 연산을 감추기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(Flash translation layer; 이하, FTL이라 칭함)이 사용된다. FTL은, 플래시 메모리의 기입 동작시, 파일 시스템이 생성한 논리주소를 삭제 연산이 수행된 플래시 메모리의 물리 주소로 맵핑시켜 주는 역할을 수행한다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(Address Mapping Table)을 사용한다. 일반적으로, 어드레스 맵핑 테이블은 비교적 고가인 SRAM으로 구성된다. 그런데, 하드디스크와 달리, 플래시 메모리는 물리적 블록에 대한 덮어쓰기(Overwrite)가 되지 않는다는 약점을 갖고 있으며, 따라서 이를 극복하기 위한 효과적인 FTL 알고리즘이 필수적이다. 현재까지 제안된 FTL 기법들 중에서 대표적인 것이 로그 블록 사상법(Log block mapping)이 있다. 로그 블록 사상법은 한정된 수의 로그 블록을 쓰기 버퍼(Write buffer)로 이용하는 블록 사상법이다. 상술한 FTL의 어드레스 맵핑 기능으로 인해, 호스트는 플래시 메모리 장치를 하드디스크 드라이버(또는 SRAM)로 인식하고, 하드디스크 드라이버와 동일한 방식으로 플래시 메모리 장치를 액세스할 수 있게 된다.
이러한 FTL의 기능들 중 핵심적인 기능은 사상 기법에 관련된 것으로, 예시적인 사상 기법들이 U.S. Patent No. 5,404,485에 "FLASH FILE SYSTEM"이라는 제목 으로, 그리고 U.S. Patent No. 6,381,176에 "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다. 그러나 상술한 출원에서 MLC를 포함하는 플래시 메모리 장치에서의 효과적인 맵핑 방법에 대해서는 개시하고 있지 못한 실정이다. 특히, 로그 블록 사상법을 적용하는 MLC 플래시 메모리 장치의 쓰기 속도를 증가시킬 수 있는 로그 블록 사상법에 대해서는 어디에도 기재되어 있지 않다.
따라서, MLC를 포함하는 플래시 메모리 장치에서 블록 소거 횟수 감소 및 쓰기 속도의 증가라는 요구를 모두 만족시키기 위한 플래시 메모리 장치의 주소 사상법이 요구되고 있는 실정이다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 MLC를 포함하는 플래시 메모리 장치에서 쓰기 속도의 증가 및 블록의 소거 횟수 감소를 구현할 수 있는 주소 사상법 및 이를 구현하는 메모리 시스템을 제공하는 데 있다.
상술한 제반 목적을 달성하기 위하여, 로그 블록 사상법에 의해 주소 사상을 구성하는 플래시 메모리 시스템에서의 데이터의 쓰기 방법은, 로그 블록에 기입될 데이터의 쓰기 패턴을 판단하는 단계; 및 상기 쓰기 패턴에 따라 SLC 블록과 MLC 블록 중 어느 하나를 상기 로그 블록으로 할당하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 쓰기 패턴은 상기 로그 블록에서 순차적 페이지 단위로 기입되는 순차 쓰기 패턴과, 상기 로그 블록에 비순차적인 페이지 단위로 기입되는 임의 쓰기 패턴을 포함한다.
바람직한 실시예에 있어서, 상기 쓰기 패턴이 상기 순차 쓰기 패턴인 경우에는 MLC 블록이, 임의 쓰기 패턴인 경우에는 SLC 블록이 상기 로그 블록으로 각각 할당된다.
바람직한 실시예에 있어서, 상기 쓰기 패턴을 판단하는 단계는; (a) 상기 데이터가 쓰기 요청되는 최초의 쓰기 단위 데이터인지를 판별하는 단계; (b) 상기 데이터가 최초의 쓰기 단위 데이터인 경우, 오프셋이 0인지를 판단하는 단계; (c) 상기 (a) 단계에서 상기 데이터가 최초의 쓰기 단위 데이터가 아닌 경우 및 상기 (b) 단계에서 오프셋이 0인 경우에, 상기 데이터가 이전에 입력된 데이터와 연속 관계에 있는지를 판단하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 쓰기 단위는 플래시 메모리의 페이지 단위인 것을 특징으로 한다.
바람직한 실시예에 있어서, 상기 (b) 단계에서, 상기 페이지의 오프셋이 0이 아닌 경우에는 상기 데이터는 임의 쓰기 패턴으로 판단한다.
바람직한 실시예에 있어서, 상기 (c) 단계에서, 상기 데이터가 이전 페이지 데이터와 연속적인 데이터인 경우 순차 쓰기 패턴으로, 이전 페이지 데이터와 비연속적인 경우에는 임의 쓰기 패턴으로 판단한다.
바람직한 실시예에 있어서, 상기 SLC 블록은 상기 MLC 블록과는 별로도 구비 되는 셀 어레이로 제공된다.
바람직한 실시예에 있어서, 상기 SLC 블록은 상기 MLC 블록들 중 SLC 모드로 동작 가능한 블록이다.
바람직한 실시예에 있어서, 상기 로그 블록에 대응하는 데이터 블록으로는 MLC 블록들이 할당된다.
상술한 제반 목적을 달성하기 위한 본 발명의 로그 블록 사상법에 의해 주소 사상을 구성하는 MLC 플래시 메모리 시스템에서의 데이터의 쓰기 방법은, 쓰기 요청된 데이터의 쓰기 패턴을 판단하는 단계와; 상기 쓰기 패턴에 따라 제 1 블록과 제 2 블록 중 어느 하나를 쓰기 버퍼용 로그 블록으로 할당하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 쓰기 패턴은 상기 로그 블록에서 순차적 페이지 단위로 기입되는 순차 쓰기 패턴과, 상기 로그 블록에 비순차적인 페이지 단위로 기입되는 임의 쓰기 패턴을 포함한다.
바람직한 실시예에 있어서, 상기 제 1 블록은 블록 내의 고속 쓰기 페이지들이 가용 저장 영역으로 선택되는 MLC 블록이며, 상기 제 2 블록은 고속 쓰기 페이지와 저속 쓰기 페이지가 가용 저장 영역으로 선택되는 MLC 블록이다.
바람직한 실시예에 있어서, 상기 고속 쓰기 페이지는 LSB 페이지 단위, 상기 저속 쓰기 페이지는 MSB 페이지 단위이다.
바람직한 실시예에 있어서, 상기 임의 쓰기 패턴의 경우 제 1 블록이, 순차 쓰기 패턴의 경우 제 2 블록이 로그 블록으로 할당된다.
바람직한 실시예에 있어서, 상기 쓰기 패턴을 판단하는 단계는; (a) 상기 데 이터가 쓰기 요청되는 최초의 쓰기 단위 데이터인지를 판별하는 단계; (b) 상기 데이터가 최초의 쓰기 단위 데이터인 경우, 오프셋이 0인지를 판단하는 단계; (c) 상기 (a) 단계에서 상기 데이터가 최초의 쓰기 단위 데이터가 아닌 경우 및 상기 (b) 단계에서 오프셋이 0인 경우에, 상기 데이터가 이전에 입력된 데이터와 연속 관계에 있는지를 판단하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 쓰기 단위는 플래시 메모리의 페이지 단위이다.
바람직한 실시예에 있어서, 상기 (b) 단계에서, 상기 페이지의 오프셋이 0이 아닌 경우에는 상기 데이터는 임의 쓰기 패턴으로 판단한다.
바람직한 실시예에 있어서, 상기 (c) 단계에서, 상기 데이터가 이전 페이지 데이터와 연속적인 데이터인 경우 순차 쓰기 패턴으로, 이전 페이지 데이터와 비연속적인 경우에는 임의 쓰기 패턴으로 판단한다.
바람직한 실시예에 있어서, 상기 로그 블록에 대응하는 데이터 블록으로는 MLC 블록들이 할당된다.
상술한 제반 목적을 달성하기 위한 플래시 메모리 장치의 로그 블록 사상법에 의한 맵핑 방법은, 로그 블록으로 복수의 SLC 블록을 포함하고, 상기 로그 블록에 대응하는 데이터 블록으로 MLC 블록을 사용한다.
바람직한 실시예에 있어서, 상기 로그 블록은 하나의 MLC 블록을 포함한다.
바람직한 실시예에 있어서, 상기 SLC 블록은 상기 플래시 메모리 장치로 쓰기 요청되는 페이지 단위의 데이터가 임의 쓰기 패턴인 경우에 로그 블록으로 할당 된다.
바람직한 실시예에 있어서, 상기 MLC 블록은 상기 플래시 메모리 장치로 쓰기 요청되는 페이지 단위의 데이터가 순차 쓰기 패턴인 경우에 로그 블록으로 할당된다.
바람직한 실시예에 있어서, 상기 로그 블록으로부터 데이터 블록으로 데이터 복사가 발생하는 병합 연산시에는 상기 MLC 블록을 데이터 블록으로 할당 정보만 변경한다.
상기 목적을 달성하기 위한 본 발명의 특징에 따른로그 블록 사상법에 의해서 주소 사상을 구성하는 플래시 메모리 시스템에서의 데이터의 쓰기 방법은, (a) 적어도 제 1 블록과 제 2 블록을 로그 블록으로 할당하는 단계; (b) 상기 제 1 블록으로 상기 데이터를 기입하는 단계; (c) 상기 제 1 블록의 유효 페이지의 크기를 판별하는 단계; (d) 상기 유효 페이지의 데이터를 상기 제 2 블록으로 복사하는 단계; (e) 상기 제 2 블록으로 상기 데이터를 기입하는 단계; 및 (f) 상기 제 2 블록의 유효 페이지의 크기를 판별하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 제 1 블록 및 제 2 블록은 각각 SLC 블록이다.
바람직한 실시예에 있어서, 상기 제 1 블록 및 제 2 블록은 각각 고속 쓰기 페이지만을 가용 저장 영역으로 할당되는 MLC 블록이다.
바람직한 실시예에 있어서, 상기 제 2 블록의 유효 페이지 데이터를 상기 제 1 블록으로 복사하는 (g) 단계를 더 포함한다.
바람직한 실시예에 있어서, 상기 (c) 단계 및 상기 (f) 단계는 블록 내의 전체 페이지 중 상기 유효 페이지의 수가 절반 이하인 경우에 각각 (d) 단계 및 (g) 단계를 수행한다.
바람직한 실시예에 있어서, 상기 (d) 단계에서 상기 유효 페이지의 데이터가 상기 제 2 블록으로 복사된 이후, 제 1 블록은 소거된다.
상술한 목적을 달성하기 위한 로그 블록 사상법에 따라 주소 사상을 구성하는 메모리 시스템은, 저장 영역으로 복수의 SLC 블록과 복수의 MLC 블록을 포함하는 플래시 메모리 장치; 및 외부로부터 제공되는 데이터의 쓰기 패턴을 검출하여 로그 블록으로 상기 SLC 블록들 중 일부 또는 상기 복수의 MLC 블록들 중 어느 하나를 선택하는 제어부를 포함한다.
바람직한 실시예에 있어서, 상기 쓰기 패턴은 상기 로그 블록에서 순차적 페이지 단위로 기입되는 순차 쓰기 패턴과, 상기 로그 블록에 비순차적인 페이지 단위로 기입되는 임의 쓰기 패턴을 포함한다.
바람직한 실시예에 있어서, 상기 제어부는, 상기 쓰기 패턴이 상기 순차 쓰기 패턴으로 검출되는 경우에는 상기 복수의 MLC 블록들 중 어느 하나를 상기 로그 블록으로 할당하고, 상기 쓰기 패턴이 상기 임의 쓰기 패턴으로 검출되는 경우에는 상기 복수의 SLC 블록들 중 일부를 상기 로그 블록으로 할당한다.
바람직한 실시예에 있어서, 상기 복수의 SLC 블록들은 상기 복수의 MLC 블록들과 별도의 셀 어레이로 상기 플래시 메모리 장치의 내부에 구비된다.
바람직한 실시예에 있어서, 상기 복수의 SLC 블록들은 상기 복수의 MLC 블록 들 중 SLC 방식으로 쓰기 가능한 메모리 블록이다.
바람직한 실시예에 있어서, 상기 복수의 SLC 블록들은 상기 복수의 MLC 블록에 포함되는 페이지들 중 고속 쓰기 동작이 가능한 페이지들만을 쓰기 영역으로 선택하는 메모리 블록들이다.
바람직한 실시예에 있어서, 상기 고속 쓰기 동작이 가능한 페이지들은 상기 MLC 블록의 LSB 페이지들이다.
바람직한 실시예에 있어서, 상기 로그 블록에 대응하는 데이터 블록으로는 상기 복수의 MLC 블록들 중 일부가 할당된다.
(실시예)
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1a 및 도 1b는 본 발명에 따른 MLC 블록을 포함하는 시스템을 간략히 보여주는 블록도들이다.
도 1a를 참조하면, 본 발명에 따른 로그 블록 맵핑 방법은 중앙 처리 장치(10)와 램(20), 그리고 SLC 셀 어레이(42)와 MLC 셀 어레이(43)를 갖는 플래시 메모리 장치(40)들에 의해서 구성된다. 일반적으로 논리 주소를 물리 주소로 맵핑하는 FTL은 플래시 메모리 장치(40) 내부에 설정되는 플래시 메모리 제어기(41)에 의해서 구성될 수 있다. 또는, 시스템의 중앙 처리 장치(10)와 램(20)에 의해서 상술한 FTL이 구성될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명 하다.
도 1b는 동일 메모리 셀을 SLC로 또는 MLC로 사용 가능한 메모리 셀을 구비하는 하이브리드 플래시 메모리(50)를 사용하는 시스템의 구성을 간략히 도시한 블록도이다. 하이브리드 플래시 메모리(50)는 선택된 소정 단위의 메모리 셀들에 대한 고속의 쓰기 및 읽기 동작이 가능한 SLC 방식으로 사용할 수 있다. 일반적인 대용량 데이터의 저장을 위해서는 저속이지만 셀당 멀티 비트의 데이터가 저장될 수 있는 MLC 메모리로 사용할 수 있다.
도 2a는 상술한 시스템을 구동하기 위한 소프트웨어의 계층 구조를 간략히 보여주는 도면이다. 2a를 참조하면, FTL(120)은 애플리케이션 소프트웨어(100)와 파일 시스템(110) 계층으로부터 전달받은 논리 주소(예를 들면, 섹터 주소와 섹터 수)를 파라미터로 하여 플래시 메모리(130)로의 쓰기 및 읽기 동작을 위한 주소 변환 동작을 수행한다. FTL(120)은 논리 주소에 대응하는 플래시 메모리의 물리 주소를 맵핑하는 맵핑 테이블을 구성한다.
도 2b는 상술한 도 2a에 도시된 FTL(120)의 구성을 간략히 보여주는 블록도이다. 도 2b에 따르면, 본 발명에 따른 로그 블록 사상법에 의한 FTL(120)은 블록 맵핑 테이블(121) 및 로그 블록 페이지 맵핑 테이블(122)을 구성한다. 로그 블록 사상법에서는 기본적으로는 파일 시스템(110)으로부터 제공되는 읽기나 쓰기 요청에 따라 블록 맵핑 테이블을 유지한다. 또한, 쓰기 버퍼로 사용되는 로그 블록에 한해서 페이지 맵핑 테이블(32)을 구성한다. 로그 블록 사상법에 따르면, 쓰기 연산 요청에 따라 덮어 쓰기(Overwrite)를 해야 하는 경우에 바로 블록을 갱신하지 않고 로그 블록에 데이터를 기록한다. 이렇게 로그 블록에 기록된 데이터는 차후에 사용되지 않은 로그 블록이 필요할 경우 해당 로그 블록을 삭제하면서 합병 연산(Merge)을 하게 된다.
도 3은 상술한 블록 맵핑 테이블(122)의 구성 방법을 간략히 설명하기 위한 도면이다. 도 3을 참조하면, 플래시 메모리 장치에 포함되는 블록들은 쓰기 버퍼로 사용되는 로그 블록(200)과, 합병 연산(Merge)에 의하여 로그 블록(200)으로부터 버퍼링 데이터가 복사되는 데이터 블록(210)을 포함한다.
로그 블록(200)으로 할당된 블록은 데이터 블록(210)에 쓰기 요청에 따라 입력되는 데이터를 일시적으로 저장하는 쓰기 버퍼용 블록이다. 로그 블록(200)으로 할당된 블록들은 SLC 블록(201, 202)들을 포함하도록 할당된다. 더욱 구체적으로, FTL은 논리 어드레스의 페이지의 오프셋(Offset)이 0이 아닌 경우, 즉 임의 쓰기 패턴(Out-place order)인 경우 SLC 블록들을 로그 블록(200)으로 할당한다. 여기서, SLC 블록들이 로그 블록(200)으로 할당되기 위해서는 2개의 SLC 블록이 하나의 유닛을 구성한다. 이는 플래시 메모리 장치의 특성에 기인한 것으로, 블록 단위로 소거가 되며 페이지 단위로 읽기 동작이 가능하기 때문이다. 상술한 구성에 따르면, SLC 블록의 쓰기 시간이 MLC 블록에 비하여 빠르기 때문에 고속의 버퍼링 동작이 가능하다. 그러나, 파일 시스템으로부터 요청되는 쓰기 동작이 순차 쓰기 패턴(In-place order)으로 판별되는 경우, FTL은 하나의 MLC 블록을 로그 블록으로 할당한다. 순차 쓰기 패턴의 경우, 로그 블록으로 할당된 하나의 MLC 블록(203)은 순차적으로 데이터의 저장이 완료된 이후에는 데이터 블록으로의 데이터 복사나 소 거 동작이 없이 데이터 블록으로 전환(Swap)될 수 있다.
데이터 블록(210)은 FTL에 의해서 MLC 블록들이 할당된다. 임의 쓰기 패턴의 경우에는 SLC 블록들이 로그 블록으로, 순차 쓰기 패턴의 경우에는 MLC 블록이 로그 블록으로 지정되어 버퍼링 속도를 높이면서도, 고용량의 저장매체로서의 기능을 모두 구비할 수 있다.
상술한 로그 블록의 할당 방식에 따르면, MLC에 비하여 상대적으로 고속의 쓰기 동작 및 읽기 동작이 가능한 로그 블록에 의하여 쓰기 속도의 향상이 가능하다. 또한, 쓰기 패턴에 따라서 로그 블록을 SLC 블록으로 또는 MLC 블록으로 선택하는 블록 할당 방법에 의해서 각각의 쓰기 패턴에 최적화된 로그 블록 사상 기법이 제공된다.
도 4a 및 도 4b는 본 발명의 하나의 논리 블록에 대응하는 물리 블록들의 맵핑 방법의 구체적인 실시예를 간략히 보여주는 도면이다. 도 4a 및 도 4b를 참조하면, 본 발명에 따른 로그 블록 사상 기법에 의한 하나의 논리 블록에 대해서 할당되는 물리 블록들의 구성이 간략히 도시되었다.
도 4a는 하나의 논리 블록에 대하여 두 개의 SLC 블록이 로그 블록(220)으로, 하나의 MLC 블록(231)이 데이터 블록으로 할당되는 1:2 맵핑 방법을 간략히 보여준다. 도 4a를 참조하면, 하나의 논리 블록에 대해서 두 개의 SLC 블록이 로그 블록(220)으로 지정되고, 로그 블록으로 지정된 SLC 블록들로는 쓰기 데이터가 버퍼링 된다. 로그 블록(220)으로의 버퍼링 동작에 따라 SLC 블록들의 모든 페이지가 차게 되면, 두 SLC 블록에 프로그램된 데이터는 합병 연산(Merge)에 의하여 대응하 는 데이터 블록(231)으로 복사(Copy)된다.
도 4b는 하나의 논리 블록에 대응하는 로그 블록으로 적어도 두 개 이상의 SLC 블록들과 하나의 MLC 블록이 로그 블록으로 할당되는 1:N 맵핑 방법을 보여준다. 도 4b를 참조하면, 하나의 논리 블록에 대해서 복수의 SLC 블록들(241, 242)과 하나의 MLC 블록(243)이 로그 블록(240)으로 할당될 수 있다. 그리고 로그 블록들은 하나의 데이터 블록(251)에 대응한다. 임의 쓰기 동작 시에는 SLC 블록들(241, 242)이, 순차 쓰기 동작 시에는 MLC 블록(251)이 로그 블록으로 지정되어 데이터의 버퍼링 동작이 이루어진다.
이상의 논리 블록에 대응하는 물리 블록들의 맵핑 방식들을 통하여, 임의 쓰기 모드와 순차 쓰기 모드 각각에 대응하는 방식으로 최적의 성능을 갖는 맵핑 테이블의 구성이 가능하다.
도 5는 본 발명의 임의 쓰기 패턴과 순차 쓰기 패턴의 판단을 위해 FTL에서 수행하는 패턴 분석 알고리즘을 간략히 보여주는 흐름도이다. 파일 시스템으로부터 쓰기 요청이 있는 경우, FTL은 제공되는 논리 어드레스(LBN)를 참조하여 입력되는 데이터의 쓰기 패턴을 판단한다. 특히, 로그 블록의 페이지 할당의 패턴을 분석하여 요청되는 쓰기 연산의 패턴이 분석된다.
파일 시스템으로부터 쓰기 요청이 전달되면, FTL에서는 쓰기 연산의 패턴 분석이 시작된다. 쓰기 요청에 따라 입력되는 페이지가 쓰기 동작 단위의 첫 번째 페이지인지를 판단하게 된다. 첫 번째 페이지라면 쓰기 요청 페이지의 주소가 0인지를 판단하는 단계(S20)로, 첫 번째 페이지가 아니라면 이전의 쓰기 요청 페이지들 과의 연속관계를 판단하는 단계(S30)로 넘어간다(S10). 만일 쓰기 요청된 페이지가 첫 번째 페이지인 경우에는 페이지 주소가 시작 페이지 주소인지를 판단한다. 이것은 페이지의 오프셋을 판단하기 위한 동작이다(S20). 만일 시작 페이지의 주소가 (0)이 아니라면, 이 경우에는 랜덤하게 페이지 쓰기가 이루어지는 임의 쓰기 패턴(S40)으로 판단한다. 그러나 시작 페이지 주소가 0이라면 쓰기 요청 페이지 오프셋이 0이므로 연속적인 페이지 주소인지의 여부를 판단하게 된다. 여기서, 쓰기 요청 페이지가 최초 페이지이면서 페이지 오프셋이 0이고 이후의 쓰기 요청되는 페이지들과 연속관계에 있다면 이는 순차 쓰기 패턴(S50)으로 판단할 수 있다. 그러나 쓰기 요청 페이지 오프셋이 0이라 하더라도 이후에 쓰기 요청되는 페이지들과 연속적이지 않다면, 이는 임의 쓰기 패턴(S60)으로 판단한다.
여기서, 단계 (S30)은 페이지 크기의 단위에 한정되지 않는다. 즉, 일반적으로 쓰기 요청 페이지의 최소 단위가 하나의 페이지 단위(2K Byte)인 경우에 대해서 설명한 것이다. 그러나 대용량화의 트랜드에 따라서 쓰기 요청의 최소 단위가 복수의 페이지(예를 들면 2K Byte ×4) 단위인 경우, 단계 (S30)은 이러한 단위를 고려하여 판단하게 될 것이다.
상술한 패턴 분석 방법에 따라, 로그 블록에서의 페이지 할당은 쓰기 요청 페이지의 오프셋(Off-set)이 0이 아닌 경우에는 임의 쓰기 패턴을 의미하므로 이후 합병 연산시 페이지 복사 횟수가 증가한다. 이러한 경우에는 로그 블록으로 SLC 블록을 할당함으로써 쓰기 시간을 감소시킬 수 있다. 만일 쓰기 요청 페이지의 순서가 연속적이었다면, 이는 순차 쓰기 패턴임을 알 수 있다. 이런 경우에는 로그 블 록으로 MLC 블록을 할당하고, 이후 합병 연산시에는 할당된 로그 블록을 데이터 블록으로 전환(Swap)될 수 있다.
도 6은 상술한 패턴 분석 결과, 임의 쓰기 패턴으로 분석되는 경우, 로그 블록으로 (SLC1+SLC2) 블록(310)이 할당된 이후의 합병 연산을 설명하는 블록도이다. 쓰기 버퍼로 동작하는 로그 블록(310)에 프로그램된 데이터는 맵핑 테이블의 맵핑 정보에 따라 데이터 블록(320)에 복사된다.
합병 연산의 과정을 간략히 설명하면, 각각의 SLC 블록(311, 312)의 페이지들에 순차적으로 저장된 데이터는 MLC 블록인 데이터 블록(320)으로 복사된다. 여기서, 로그 블록(310)에 버퍼링 된 데이터가 덮어쓰기(Over-write) 된 데이터라면 최종적으로 업데이트 된 유효 데이터(Valid)만 데이터 블록(320)으로 복사된다. 그러나 동일한 로그 페이지로 프로그램된 데이터 중 최종 페이지 데이터를 제외한 이전의 데이터는 무효(Invalid) 데이터들로써 이러한 데이터는 합병 연산에서 제외된다. 따라서, 반복적인 덮어쓰기 동작이 빈번한 경우에는 SLC 블록들을 로그 블록으로 할당하여 신속한 버퍼링 동작을 지원하는 것으로 쓰기 속도를 향상시킬 수 있다.
도 7은 순차 쓰기 패턴으로 쓰기 요청이 이루어진 경우 합병 연산을 간략히 보여주는 블록도이다. 도 7을 참조하면, 미디어 데이터와 같은 대용량 데이터의 쓰기 요청이 있는 경우, MLC 블록이 로그 블록(330)으로 할당된다. 쓰기 버퍼용 로그 블록(330)으로 할당된 MLC 블록에는 쓰기 요청된 데이터가 순차적으로 프로그램된다. 로그 블록(330)으로의 쓰기 동작이 완료되면, 로그 블록(330)의 데이터는 데이 터 블록으로의 복사동작 없이 블록의 맵핑 정보를 로그 블록(340)에서 데이터 블록으로 전환(Swap)된다. 이러한 전환(Swap) 동작에 따르면, 로그 블록으로부터 데이터 블록으로의 데이터 복사가 이루어지는 합병 연산과 이후의 소거 연산이 생략된다. 따라서, 전환(Swap)에 의한 합병 연산은 합병 연산시에 소요되는 시간을 최소화할 수 있다.
이상의 실시예에서는 SLC 블록과 MLC 블록을 모두 포함하는 플래시 메모리 장치와 플래시 메모리 장치를 장착하는 시스템에 관해서 설명하였다. 합병 연산시에 페이지 복사 횟수가 증가하는 임의 패턴 쓰기 동작에서는 고속의 읽기 및 쓰기 동작이 가능한 SLC 블록을 쓰기 버퍼용 로그 블록으로 할당한다. 페이지 복사 횟수가 증가하더라도, 본 발명의 플래시 메모리 장치 또는 시스템은 상대적으로 고속의 동작이 가능한 SLC 블록을 쓰기 버퍼용 로그 블록으로 사용함으로써 합병 연산의 비용을 절감할 수 있다. 그리고 순차 쓰기 패턴으로 쓰기 요청된 경우에는 페이지 복사와 소거 동작이 없는 전환(Swap)에 의해서 합병 연산이 가능하므로, MLC 블록을 쓰기 버퍼용 로그 블록으로 할당한다. 데이터 블록으로는 최대의 용량을 보장하기 위하여 MLC 블록들이 할당됨은 물론이다. 이러한 쓰기 버퍼용 로그 블록 및 데이터 블록의 할당에 따라서, 본 발명은 SLC 셀 어레이를 포함하고 멀티 비트 데이터의 저장이 가능한 플래시 메모리 장치의 효율적인 쓰기 동작이 지원될 수 있다.
도 8은 본 발명의 다른 실시예에 따른 시스템을 간략히 보여주는 블록도이다. 도 8을 참조하면, 본 발명의 로그 블록 사상법에 따라 동작하는 플래시 메모리 장치(430)와 플래시 메모리 장치(430)를 불휘발성 저장 매체로 채용하는 시스템의 구성이 간략히 도시되었다.
중앙 처리 장치(400)와 램(410), 그리고 시스템 버스(420)에 의하여 파일 시스템과 응용 프로그램은 플래시 메모리 장치로의 쓰기 동작을 요청하고 FTL은 플래시 메모리 장치로의 어드레스 맵핑을 구성한다.
플래시 메모리 장치(430)는 MLC 셀 어레이(432)만을 포함하는 낸드형 플래시 메모리 장치이다. 이러한 경우에 상대적으로 고속 동작이 가능한 SLC 블록을 이용하는 로그 블록의 구성이 불가능하다. SLC 블록을 이용한 로그 블록의 구성이 불가능한 이상, 쓰기 동작에 필요한 로그 블록으로의 버퍼링 속도는 감소할 수밖에 없다. 그러나 본 발명에 따른 로그 블록 사상법에 의하면, MLC 블록을 로그 블록으로 할당하고도 고속의 버퍼링 동작이 가능하다. 이러한 효과는 MLC 블록을 로그 블록으로 할당하지만, 할당된 로그 블록의 페이지 할당 방식을 새롭게 하는 본 발명의 로그 블록 사상법에 의해서 나타난다. 이하에서는 로그 블록에 대한 페이지 할당 방식이 도면들에 의거하여 상세히 설명될 것이다.
도 9는 MLC 블록의 페이지 할당 구조를 간략히 보여주는 블록도이다. 도 9를 참조하면, MLC 블록은 프로그램에 소요되는 시간(tPGM)과 읽기 시간(tREAD)이 상대적으로 짧은 고속 페이지(Fast page)를 포함한다. 그리고 MLC 블록은 상대적으로 긴 프로그램 시간(tPGM)과 읽기 시간(tREAD)이 소요되는 저속 페이지(Slow page)를 포함한다. 이러한 고속 페이지와 저속 페이지는 각각 교대로 배열된다. 고속 페이지와 저속 페이지의 존재는 일반적으로 기입과 읽기 동작시 상대적으로 긴 시간의 소요가 필요한 MSB 페이지(Most Significant Bit page)와 LSB 페이지(Least Significant Bit page)의 존재에 기인한다. 예를 들면, 하나의 메모리 셀에 프로그램되는 데이터 중 LSB 페이지의 프로그램에 소요되는 시간(tPGM)은 약 200㎲라면 MSB 페이지의 프로그램에 소요되는 시간은 약 800~1000㎲ 정도로 알려져 있다. 따라서, LSB를 먼저 프로그램하고 MSB를 이후에 프로그램하는 플래시 메모리 장치의 페이지 구성은 도 9와 같이 표현될 수 있다.
일반적으로, MLC 블록으로 입력되는 페이지는 LSB 페이지를 먼저 기입하고 이후에 LSB 페이지의 기입이 이루어진다. 도면에서는 짝수 페이지(0, 2, 4, 6 pages)들은 고속 페이지로, 홀수 페이지(1, 3, 5, 7 pages)들은 저속 페이지로 도시되었으나 본 발명은 이에 국한되지 않는다. 저속 페이지로의 프로그램 시간과 저속 페이지에 기입된 데이터의 독출 시간은 상대적으로 크다. 따라서, MLC 블록을 SLC 블록 수준으로 동작시키기 위해서는 고속 페이지들만을 유효한 데이터 저장공간으로 할당하는 것으로 SLC 블록의 동작 효과를 얻을 수 있다. 이하에서는, 고속 페이지들만이 데이터 저장에 유효한 페이지로 할당되는 MLC 블록을 고속 하프 MLC 블록(FH MLC 블록)이라 칭하기로 한다.
도 10은 본 발명에 따른 MLC 블록들만을 가진 플래시 메모리 장치의 맵핑 테이블 할당 방식을 간략히 보여주는 블록도이다. 본 발명에 따른 로그 블록 사상법에 따르면, 상술한 고속 페이지(Fast Page)만을 사용하는 복수의 고속 하프 MLC 블록들로 구성되는 로그 블록(500)과 고속 및 저속의 페이지를 모두 사용하는 MLC 블록들로 이루어진 데이터 블록(510)으로 구분된다.
로그 블록(500)은 상술한 두 개의 고속 하프 MLC 블록이 하나의 유닛을 구성 하는 MLC 블록들(501~503)을 포함한다. 고속 페이지들을 사용하는 MLC 블록들은 2 개가 하나의 유닛을 구성하여 하나의 데이터 블록에 할당될 수 있다. 고속 페이지 만을 사용하는 MLC 블록은 모든 페이지를 사용하는 MLC 블록에 비하여 가용 데이터 용량이 반으로 줄기 때문이다.
데이터 블록(510)은 고속 페이지와 저속 페이지를 동시에 사용하는 MLC 블록들로 할당된다. 상술한 로그 블록(500)에 버퍼링 된 데이터는 합병 연산을 통하여 이미 할당된 데이터 블록(510)의 MLC 블록으로 복사된다.
상술한 MLC 블록들의 구성을 통하여 MLC 셀들만을 지원하는 플래시 메모리 장치에서도 고속의 쓰기 동작을 지원할 수 있다.
도 11a 및 도 11b는 도 10의 블록 할당 방식에서 하나의 논리 블록에 대응하는 로그 블록 및 데이터 블록의 구성을 간략히 보여주는 도면이다.
도 11a를 참조하면, 하나의 논리 블록은 두 개의 고속 하프 MLC 블록(521, 522)들을 로그 블록으로, 하나의 MLC 블록(523)을 데이터 블록으로 할당받는다. 두 개의 고속 하프 MLC 블록(521, 522)들에 포함되는 고속 페이지들은 하나의 MLC 블록에 포함되는 데이터 용량에 대응한다. 이러한 할당 방식은 파일 시스템으로부터 요청되는 쓰기 패턴이 임의 쓰기 패턴으로 판명되는 경우에 바람직한 맵핑 방식이다. 이러한 맵핑 방식을 1:2 맵핑 방식이라 칭하기로 한다.
도 11b를 참조하면, 하나의 논리 블록은 두 개의 고속 하프 MLC 블록을 하나의 블록 유닛으로 하는 고속 블록들(531, 532, 533)을 로그 블록으로 할당받는다. 그리고 데이터 블록으로는 하나의 MLC 블록(534)을 할당받는다. 이러한 맵핑 방식 을 1:N 맵핑 방식이라 칭하기로 한다. 여기서, N은 로그 블록과 데이터 블록을 합한 블록 수를 나타낸다.
도 12는 상술한 도 11a 또는 11b의 맵핑 방식에서 임의 쓰기 패턴으로 페이지 쓰기 동작이 이루어지는 경우, 이루어지는 합병 연산을 간략히 보여주는 도면이다. 여기서, 임의 쓰기 패턴과 순차 쓰기 패턴에 대한 분석은 이전에 설명된 도 5의 알고리즘에 따른다. 도 12를 참조하면, FTL이 상술한 도 5의 알고리즘에 따라 임의 쓰기 패턴으로 예측한 경우, 고속 하프 MLC 블록의 고속 페이지로 할당한다.
로그 블록(600)의 고속 페이지에 기록된 데이터들이 합병 연산시 데이터 블록(610)의 고속 및 저속 페이지들로 복사된다. 로그 블록(600)의 각 고속 하프 MLC 블록들(601, 602)의 고속 페이지들(빗금 친 페이지들)로 쓰기 요청된 페이지 데이터들이 기록된다. 저속 페이지들은 쓰기 버퍼에서 제외된다. 이후의 합병 연산(Merge)시에는 고속 페이지들에 기입된 페이지 데이터들 중, 유효 페이지(Valid Page)의 데이터만이 할당된 데이터 블록(610)으로 복사된다. 데이터 블록(610)에는 로그 블록의 고속 페이지들로부터 제공되는 유효 페이지 데이터가 일반적인 MLC의 프로그램 시퀀스에 따라서 고속 및 저속 페이지들로 순차적으로 프로그램된다.
도 13은 순차 쓰기 패턴에서의 합병 연산을 간략히 보여주는 도면이다. 순차 쓰기 패턴에서, 로그 블록(600)은 고속 페이지들만을 사용하는 고속 하프 MLC가 아닌 고속 및 저속 페이지들을 모두 사용하는 MLC 블록으로 할당된다. 즉, 고속 하프 MLC 블록이 아닌, MLC 블록이 로그 블록으로 할당된다. 그리고, MLC 블록으로 할당되는 로그 블록에 순차적으로 데이터 쓰기가 완료되면, MLC 블록(601)은 로그 블록 에서 데이터 블록으로 맵핑 정보가 전환(Swap)된다.
도 14a 및 14b는 로그 블록으로부터 데이터 블록으로의 합병 연산의 횟수를 최소화 할 수 있는 로그 블록의 운용 방법을 간략히 보여주는 도면이다. 특히 로그 블록에 대해서 특정 페이지가 반복적으로 할당되는 경우에 대해서 합병 연산을 최소화시킬 수 있다. 로그 블록의 운용 방법을 이하에서는 도 14a 및 14b를 참조하여 (1)~(4) 단계에 걸쳐 설명하기로 한다.
(1) 단계는 고속 하프 MLC 블록(B1)으로의 쓰기 버퍼 동작이 도시되었다. 파일 시스템으로부터 0번 페이지(0 page) → 1번 페이지 → 0번 페이지 → 1번 페이지 순서로 쓰기 요청이 발생하면, 임의 쓰기 패턴이므로 고속 하프 MLC 두 개로 구성되는 로그 블록이 할당된다. 자주 덮어쓰기가 발생하는 쓰기 패턴의 경우에는 마지막에 업데이트된 두 페이지(4, 6 page)만이 유효하다. 따라서, 블록 (B1)의 고속 페이지(0,2,4,6 page)가 모두 사용되면, 유효한 페이지(Valid Page) 수를 계산하고, 유효한 페이지의 수가 사용된 페이지 수의 절반 이하라면 자주 덮어쓰기가 발생하는 패턴으로 인식할 수 있다.
이때, 빈번한 덮어쓰기 패턴으로 인식되면 고속 하프 MLC 블록(B1)의 유효 페이지(Valid page)들만 고속 하프 MLC 블록 (B2)으로 복사한다. 이를 나타낸 것이 (2) 단계 동작이다.
(3) 단계 동작은 고속 하프 MLC 블록(B2)에서 이전의 고속 하프 MLC 블록(B1)으로부터 유효 데이터가 복사된 페이지(0, 2 page)에 고속 페이지만을 사용하여 로그 블록으로 사용된다. 즉, 고속 하프 MLC 블록(B2)의 블록 할당이 1번 페 이지 → 1번 페이지 → 1번 페이지의 순서인 경우, 고속 페이지들의 채워진 시점에서 다시 유효한 페이지 수를 계산하고, 다시 덮어쓰기 패턴으로 인식할 수 있다. 그리고 유효한 페이지 데이터들만을 다시 고속 하프 MLC 블록(B1)으로 복사하게 된다. 이러한 동작은 (4)단계에 설명되었다. 더 이상 유효 페이지의 수가 로그 블록들 사이에서 이동할 수 없을 때까지 이러한 블록간의 유효 페이지 데이터의 이동이 지속된다.
상술한 방식의 쓰기 버퍼용 로그 블록의 운용 방식을 핑퐁(Ping-pong) 로그 블록 방식이라 칭하기로 한다. 이러한 핑퐁 로그 블록 방식의 로그 블록 운용은 파일 시스템의 클러스터 할당 정보(FAT)이나, 디렉토리 정보(Directory Entry), 혹은 데이터 베이스 파일(Data base file)의 업데이트와 같은 빈번한 덮어쓰기 동작시에 유용하다. 일반적인 쓰기 버퍼용 로그 블록의 운용시에는 많은 수의 합병 연산이 발생하여 불필요한 페이지 복사와 소거를 발생시켜 성능에 치명적인 영향을 미치게 된다. 그러나, 본 발명에 따른 핑퐁 로그 블록 운용 방식에 따르면, 페이지 복사 횟수와 소거 횟수를 획기적으로 줄임으로써 쓰기 성능을 대폭 향상시킬 수 있다.
이상의 본 발명의 로그 블록 사상법에 따른 데이터의 쓰기 동작을 상술한 도면들에 의거하여 설명하였다. 그러나, 블록들에 포함되는 페이지 수는 간결한 설명을 위해서 예시적으로 나타낸 것일 뿐 본 발명은 이에 국한되지 않는다. 본 발명의 로그 블록 사상법 및 로그 블록의 운용 방법에 따라, 멀티 레벨 셀을 사용하는 플래시 메모리 시스템의 쓰기 속도를 획기적으로 증가시킬 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으 나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형할 수 있은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 본 발명의 플래시 메모리 장치의 로그 블록 사상법 및 로그 블록 관리 방법에 따르면, MLC 셀 어레이를 포함하는 플래시 메모리 장치의 쓰기 속도를 증가시킬 수 있다.

Claims (39)

  1. 로그 블록 사상법에 의해 주소 사상을 구성하는 플래시 메모리 시스템에서의 데이터의 쓰기 방법에 있어서,
    로그 블록에 기입될 데이터의 쓰기 패턴을 판단하는 단계; 및
    상기 쓰기 패턴에 따라 SLC 블록과 MLC 블록 중 어느 하나를 상기 로그 블록으로 할당하는 단계를 포함하는 데이터 쓰기 방법.
  2. 제 1 항에 있어서,
    상기 쓰기 패턴은 상기 로그 블록에서 순차적 페이지 단위로 기입되는 순차 쓰기 패턴과, 상기 로그 블록에 비순차적인 페이지 단위로 기입되는 임의 쓰기 패턴을 포함하는 것을 특징으로 하는 데이터 쓰기 방법.
  3. 제 2 항에 있어서,
    상기 쓰기 패턴이 상기 순차 쓰기 패턴인 경우에는 MLC 블록이, 임의 쓰기 패턴인 경우에는 SLC 블록이 상기 로그 블록으로 각각 할당되는 것을 특징으로 하는 데이터 쓰기 방법.
  4. 제 2 항에 있어서,
    상기 쓰기 패턴을 판단하는 단계는;
    (a) 상기 데이터가 쓰기 요청되는 최초의 쓰기 단위 데이터인지를 판별하는 단계;
    (b) 상기 데이터가 최초의 쓰기 단위 데이터인 경우, 오프셋이 0인지를 판단하는 단계;
    (c) 상기 (a) 단계에서 상기 데이터가 최초의 쓰기 단위 데이터가 아닌 경우 및 상기 (b) 단계에서 오프셋이 0인 경우에, 상기 데이터가 이전에 입력된 데이터와 연속 관계에 있는지를 판단하는 단계를 포함하는 데이터 쓰기 방법.
  5. 제 4 항에 있어서,
    상기 쓰기 단위는 플래시 메모리의 페이지 단위인 것을 특징으로 하는 데이터 쓰기 방법.
  6. 제 5 항에 있어서,
    상기 (b) 단계에서, 상기 페이지의 오프셋이 0이 아닌 경우에는 상기 데이터는 임의 쓰기 패턴으로 판단하는 것을 특징으로 하는 데이터 쓰기 방법.
  7. 제 5 항에 있어서,
    상기 (c) 단계에서, 상기 데이터가 이전 페이지 데이터와 연속적인 데이터인 경우 순차 쓰기 패턴으로, 이전 페이지 데이터와 비연속적인 경우에는 임의 쓰기 패턴으로 판단하는 것을 특징으로 하는 데이터 쓰기 방법.
  8. 제 1 항에 있어서,
    상기 SLC 블록은 상기 MLC 블록과는 별로도 구비되는 셀 어레이로 제공되는 것을 특징으로 하는 데이터 쓰기 방법.
  9. 제 1 항에 있어서,
    상기 SLC 블록은 상기 MLC 블록들 중 SLC 모드로 동작 가능한 블록인 것을 특징으로 하는 데이터 쓰기 방법.
  10. 제 1 항에 있어서,
    상기 로그 블록에 대응하는 데이터 블록으로는 MLC 블록들이 할당되는 것을 특징으로 하는 데이터 쓰기 방법.
  11. 로그 블록 사상법에 의해 주소 사상을 구성하는 MLC 플래시 메모리 시스템에서의 데이터의 쓰기 방법에 있어서,
    쓰기 요청된 데이터의 쓰기 패턴을 판단하는 단계와;
    상기 쓰기 패턴에 따라 제 1 블록과 제 2 블록 중 어느 하나를 쓰기 버퍼용 로그 블록으로 할당하는 단계를 포함하는 데이터 쓰기 방법.
  12. 제 11 항에 있어서,
    상기 쓰기 패턴은 상기 로그 블록에서 순차적 페이지 단위로 기입되는 순차 쓰기 패턴과, 상기 로그 블록에 비순차적인 페이지 단위로 기입되는 임의 쓰기 패턴을 포함하는 것을 특징으로 하는 데이터 쓰기 방법.
  13. 제 12 항에 있어서,
    상기 제 1 블록은 블록 내의 고속 쓰기 페이지들이 가용 저장 영역으로 선택되는 MLC 블록이며, 상기 제 2 블록은 고속 쓰기 페이지와 저속 쓰기 페이지가 가용 저장 영역으로 선택되는 MLC 블록인 것을 특징으로 하는 데이터 쓰기 방법.
  14. 제 13 항에 있어서,
    상기 고속 쓰기 페이지는 LSB 페이지 단위, 상기 저속 쓰기 페이지는 MSB 페이지 단위인 것을 특징으로 하는 데이터 쓰기 방법.
  15. 제 13 항에 있어서,
    상기 임의 쓰기 패턴의 경우 제 1 블록이, 순차 쓰기 패턴의 경우 제 2 블록이 로그 블록으로 할당되는 데이터 쓰기 방법.
  16. 제 12 항에 있어서,
    상기 쓰기 패턴을 판단하는 단계는;
    (a) 상기 데이터가 쓰기 요청되는 최초의 쓰기 단위 데이터인지를 판별하는 단계;
    (b) 상기 데이터가 최초의 쓰기 단위 데이터인 경우, 오프셋이 0인지를 판단하는 단계;
    (c) 상기 (a) 단계에서 상기 데이터가 최초의 쓰기 단위 데이터가 아닌 경우 및 상기 (b) 단계에서 오프셋이 0인 경우에, 상기 데이터가 이전에 입력된 데이터와 연속 관계에 있는지를 판단하는 단계를 포함하는 데이터 쓰기 방법.
  17. 제 16 항에 있어서,
    상기 쓰기 단위는 플래시 메모리의 페이지 단위인 것을 특징으로 하는 데이터 쓰기 방법.
  18. 제 17 항에 있어서,
    상기 (b) 단계에서, 상기 페이지의 오프셋이 0이 아닌 경우에는 상기 데이터는 임의 쓰기 패턴으로 판단하는 것을 특징으로 하는 데이터 쓰기 방법.
  19. 제 17 항에 있어서,
    상기 (c) 단계에서, 상기 데이터가 이전 페이지 데이터와 연속적인 데이터인 경우 순차 쓰기 패턴으로, 이전 페이지 데이터와 비연속적인 경우에는 임의 쓰기 패턴으로 판단하는 것을 특징으로 하는 데이터 쓰기 방법.
  20. 제 11 항에 있어서,
    상기 로그 블록에 대응하는 데이터 블록으로는 MLC 블록들이 할당되는 것을 특징으로 하는 데이터 쓰기 방법.
  21. 로그 블록 사상법에 따라 주소 사상이 구성되는 플래시 메모리 시스템의 주소 사상 방법에 있어서,
    로그 블록으로 복수의 SLC 블록들을 포함하고,
    상기 로그 블록에 대응하는 데이터 블록으로 MLC 블록을 사용하는 주소 사상 방법.
  22. 제 21 항에 있어서,
    상기 로그 블록은 하나의 MLC 블록을 포함하는 주소 사상 방법.
  23. 제 22 항에 있어서,
    상기 SLC 블록은 상기 플래시 메모리 장치로 쓰기 요청되는 페이지 단위의 데이터가 임의 쓰기 패턴인 경우에 로그 블록으로 할당되는 것을 특징으로 하는 주소 사상 방법.
  24. 제 23 항에 있어서,
    상기 MLC 블록은 상기 플래시 메모리 장치로 쓰기 요청되는 페이지 단위의 데이터가 순차 쓰기 패턴인 경우에 로그 블록으로 할당되는 것을 특징으로 하는 주소 사상 방법.
  25. 제 24 항에 있어서,
    상기 로그 블록으로부터 데이터 블록으로 데이터 복사가 발생하는 병합 연산시에는 상기 MLC 블록을 데이터 블록으로 할당 정보만 변경하는 것을 특징으로 하는 주소 사상 방법.
  26. 로그 블록 사상법에 의해서 주소 사상을 구성하는 플래시 메모리 시스템에서의 데이터의 쓰기 방법에 있어서,
    (a) 적어도 제 1 블록과 제 2 블록을 로그 블록으로 할당하는 단계;
    (b) 상기 제 1 블록으로 상기 데이터를 기입하는 단계;
    (c) 상기 제 1 블록의 유효 페이지의 크기를 판별하는 단계;
    (d) 상기 유효 페이지의 데이터를 상기 제 2 블록으로 복사하는 단계;
    (e) 상기 제 2 블록으로 상기 데이터를 기입하는 단계; 및
    (f) 상기 제 2 블록의 유효 페이지의 크기를 판별하는 단계를 포함하는 데이터 쓰기 방법.
  27. 제 26 항에 있어서,
    상기 제 1 블록 및 제 2 블록은 각각 SLC 블록인 것을 특징으로 하는 데이터 쓰기 방법.
  28. 제 26 항에 있어서,
    상기 제 1 블록 및 제 2 블록은 각각 고속 쓰기 페이지만을 가용 저장 영역으로 할당되는 MLC 블록인 것을 특징으로 하는 데이터 쓰기 방법.
  29. 제 26 항에 있어서,
    상기 제 2 블록의 유효 페이지 데이터를 상기 제 1 블록으로 복사하는 (g) 단계를 더 포함하는 데이터 쓰기 방법.
  30. 제 29 항에 있어서,
    상기 (c) 단계 및 상기 (f) 단계는 블록 내의 전체 페이지 중 상기 유효 페이지의 수가 절반 이하인 경우에 각각 (d) 단계 및 (g) 단계를 수행하는 것을 특징으로 하는 데이터 쓰기 방법.
  31. 제 26 항에 있어서,
    상기 (d) 단계에서 상기 유효 페이지의 데이터가 상기 제 2 블록으로 복사된 이후, 제 1 블록은 소거되는 것을 특징으로 하는 데이터 쓰기 방법.
  32. 로그 블록 사상법에 따라 주소 사상을 구성하는 메모리 시스템에 있어서,
    저장 영역으로 복수의 SLC 블록과 복수의 MLC 블록을 포함하는 플래시 메모리 장치; 및
    외부로부터 제공되는 데이터의 쓰기 패턴을 검출하여 로그 블록으로 상기 SLC 블록들 중 일부 또는 상기 복수의 MLC 블록들 중 어느 하나를 선택하는 제어부를 포함하는 메모리 시스템.
  33. 제 32 항에 있어서,
    상기 쓰기 패턴은 상기 로그 블록에서 순차적 페이지 단위로 기입되는 순차 쓰기 패턴과, 상기 로그 블록에 비순차적인 페이지 단위로 기입되는 임의 쓰기 패턴을 포함하는 것을 특징으로 하는 메모리 시스템.
  34. 제 33 항에 있어서,
    상기 제어부는,
    상기 쓰기 패턴이 상기 순차 쓰기 패턴으로 검출되는 경우에는 상기 복수의 MLC 블록들 중 어느 하나를 상기 로그 블록으로 할당하고, 상기 쓰기 패턴이 상기 임의 쓰기 패턴으로 검출되는 경우에는 상기 복수의 SLC 블록들 중 일부를 상기 로그 블록으로 할당하는 것을 특징으로 하는 메모리 시스템.
  35. 제 33 항에 있어서,
    상기 복수의 SLC 블록들은 상기 복수의 MLC 블록들과 별도의 셀 어레이로 상 기 플래시 메모리 장치의 내부에 구비되는 것을 특징으로 하는 메모리 시스템.
  36. 제 33 항에 있어서,
    상기 복수의 SLC 블록들은 상기 복수의 MLC 블록들 중 SLC 방식으로 쓰기 가능한 메모리 블록인 것을 특징으로 하는 메모리 시스템.
  37. 제 33 항에 있어서,
    상기 복수의 SLC 블록들은 상기 복수의 MLC 블록에 포함되는 페이지들 중 고속 쓰기 동작이 가능한 페이지들만을 쓰기 영역으로 선택하는 메모리 블록들인 것을 특징으로 하는 메모리 시스템.
  38. 제 37 항에 있어서,
    상기 고속 쓰기 동작이 가능한 페이지들은 상기 MLC 블록의 LSB 페이지들인 것을 특징으로 하는 메모리 시스템.
  39. 제 32 항에 있어서,
    상기 로그 블록에 대응하는 데이터 블록으로는 상기 복수의 MLC 블록들 중 일부가 할당되는 것을 특징으로 하는 메모리 시스템.
KR1020060105692A 2006-10-30 2006-10-30 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 KR100771521B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020060105692A KR100771521B1 (ko) 2006-10-30 2006-10-30 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US11/702,573 US7970981B2 (en) 2006-10-30 2007-02-06 Flash memory device with multi-level cells and method of writing data therein
US13/110,572 US20110219180A1 (en) 2006-10-30 2011-05-18 Flash memory device with multi-level cells and method of writing data therein
US13/406,862 US20120159054A1 (en) 2006-10-30 2012-02-28 Flash memory device with multi-level cells and method of writing data therein
US13/777,816 US8843699B2 (en) 2006-10-30 2013-02-26 Flash memory device with multi-level cells and method of writing data therein
US14/479,472 US9122592B2 (en) 2006-10-30 2014-09-08 Flash memory device with multi-level cells and method of writing data therein
US14/840,220 US9886202B2 (en) 2006-10-30 2015-08-31 Flash memory device with multi-level cells and method of performing operations therein according to a detected writing patter

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060105692A KR100771521B1 (ko) 2006-10-30 2006-10-30 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Publications (1)

Publication Number Publication Date
KR100771521B1 true KR100771521B1 (ko) 2007-10-30

Family

ID=38816331

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060105692A KR100771521B1 (ko) 2006-10-30 2006-10-30 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법

Country Status (2)

Country Link
US (6) US7970981B2 (ko)
KR (1) KR100771521B1 (ko)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
CN101552028A (zh) * 2008-03-31 2009-10-07 深圳市朗科科技股份有限公司 组合使用存储设备的存储装置及实现存储的方法
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8037233B2 (en) 2008-02-05 2011-10-11 Phison Electronics Corp. System, controller, and method for data storage
KR20110128992A (ko) * 2010-05-25 2011-12-01 삼성전자주식회사 반도체 메모리 장치의 블록 병합 방법
KR20120003282A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US8239616B2 (en) 2008-12-03 2012-08-07 Samsung Electronics Co., Ltd. Semiconductor device comprising flash memory and address mapping method
KR101319589B1 (ko) * 2011-08-12 2013-10-16 아주대학교산학협력단 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법 및 그 컨트롤러
KR20130135618A (ko) * 2012-06-01 2013-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
KR20140043329A (ko) * 2011-03-31 2014-04-09 샌디스크 테크놀로지스, 인코포레이티드 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템
US8812775B2 (en) 2011-03-28 2014-08-19 Samsung Electronics Co., Ltd. System and method for controlling nonvolatile memory
US8843697B2 (en) 2012-06-25 2014-09-23 SK Hynix Inc. Operating method of data storage device
KR101460881B1 (ko) 2013-03-28 2014-11-20 주식회사 티엘아이 메모리 관리 장치 및 방법
US8902649B2 (en) 2011-11-08 2014-12-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and related method of operation
KR101515098B1 (ko) 2008-11-20 2015-04-24 삼성전자주식회사 플래시 메모리 장치 및 이의 독출 방법
KR101515525B1 (ko) 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR20150062019A (ko) * 2013-11-28 2015-06-05 한양대학교 에리카산학협력단 메모리 장치 및 그 동작 방법
KR101856506B1 (ko) 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US11360886B2 (en) 2019-11-07 2022-06-14 SK Hynix Inc. Storage device and operating method thereof

Families Citing this family (277)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
JP2007305210A (ja) * 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US7697326B2 (en) 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
JP5224706B2 (ja) * 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
US8135900B2 (en) * 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
TW200841343A (en) * 2007-04-02 2008-10-16 Apacer Technology Inc A data storage device consisting of NAND (Not-AND) flash memory and its data storing method
US20080250220A1 (en) * 2007-04-06 2008-10-09 Takafumi Ito Memory system
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
KR101434567B1 (ko) * 2007-05-18 2014-08-27 삼성전자 주식회사 비휘발성 메모리의 맵핑 테이블 관리 장치 및 방법
US7525870B2 (en) * 2007-05-21 2009-04-28 Sandisk Il, Ltd. Methods for optimizing page selection in flash-memory devices
US7719889B2 (en) * 2007-06-25 2010-05-18 Sandisk Corporation Methods of programming multilevel cell nonvolatile memory
US7630252B2 (en) * 2007-06-25 2009-12-08 Sandisk Corporation Systems for programming multilevel cell nonvolatile memory
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
KR101447188B1 (ko) * 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US8583857B2 (en) * 2007-08-20 2013-11-12 Marvell World Trade Ltd. Method and system for object-oriented data storage
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8650352B2 (en) * 2007-09-20 2014-02-11 Densbits Technologies Ltd. Systems and methods for determining logical values of coupled flash memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009053961A2 (en) 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
US8341335B2 (en) 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
US8335977B2 (en) 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US8276051B2 (en) * 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US8359516B2 (en) 2007-12-12 2013-01-22 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
WO2009078006A2 (en) 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
JP4533968B2 (ja) * 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
TWI404076B (zh) * 2008-01-07 2013-08-01 Powerchip Technology Corp 記憶體裝置以及資料讀取方法
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
TWI397912B (zh) * 2008-02-13 2013-06-01 Genesys Logic Inc 調整存取效能的快閃記憶體儲存裝置
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8972472B2 (en) * 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
TWI385519B (zh) * 2008-04-18 2013-02-11 Phison Electronics Corp 資料寫入方法及使用此方法的快閃儲存系統與其控制器
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
TWI388986B (zh) * 2008-06-19 2013-03-11 Silicon Motion Inc 快閃記憶體裝置的運作方法及快閃記憶體裝置
TWI416524B (zh) * 2008-06-25 2013-11-21 Silicon Motion Inc 記憶體裝置和資料儲存方法
US8843691B2 (en) 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
KR101086857B1 (ko) * 2008-07-25 2011-11-25 주식회사 팍스디스크 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
JP5216463B2 (ja) * 2008-07-30 2013-06-19 株式会社日立製作所 ストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージ
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8566562B2 (en) * 2008-10-03 2013-10-22 Skymedi Corporation Method for sequentially writing data with an offset to a non-volatile memory
US9128821B2 (en) * 2008-10-10 2015-09-08 Seagate Technology Llc Data updating in non-volatile memory
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
JP5175703B2 (ja) * 2008-12-11 2013-04-03 株式会社東芝 メモリデバイス
US8239613B2 (en) * 2008-12-30 2012-08-07 Intel Corporation Hybrid memory device
KR101028929B1 (ko) * 2008-12-31 2011-04-12 성균관대학교산학협력단 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
WO2010078222A1 (en) * 2009-01-05 2010-07-08 Sandisk Corporation Non-volatile memory and method with write cache partitioning
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
TWI385527B (zh) * 2009-02-10 2013-02-11 Phison Electronics Corp Mlc nand型快閃記憶體儲存系統及其控制器與存取方法
KR101581859B1 (ko) * 2009-02-27 2016-01-21 삼성전자주식회사 메모리 시스템 및 그것의 플래시 변환 계층의 데이터 관리 방법
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8819385B2 (en) * 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
WO2010134300A1 (ja) * 2009-05-21 2010-11-25 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、アクセス装置、不揮発性記憶システム、データ書き込み方法、および、プログラム
US20100332726A1 (en) * 2009-06-26 2010-12-30 Solid State System Co., Ltd. Structure and method for managing writing operation on mlc flash memory
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
JP5330136B2 (ja) * 2009-07-22 2013-10-30 株式会社東芝 半導体記憶装置
US7948798B1 (en) 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8305812B2 (en) * 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8730729B2 (en) * 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
TW201120900A (en) * 2009-12-07 2011-06-16 Jmicron Technology Corp Method and control unit for performing storage management upon storage apparatus and related storage apparatus thereof
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US20110153912A1 (en) * 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8468294B2 (en) * 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
CN102103546A (zh) * 2009-12-21 2011-06-22 智微科技股份有限公司 用于储存装置以进行储存管理的方法及控制单元与相关储存装置
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
TWI414940B (zh) * 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8756387B2 (en) * 2010-03-05 2014-06-17 International Business Machines Corporation Method and apparatus for optimizing the performance of a storage system
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
TWI442222B (zh) * 2010-07-21 2014-06-21 Silicon Motion Inc 快閃記憶裝置與快閃記憶裝置管理方法
US8898374B2 (en) * 2010-07-21 2014-11-25 Silicon Motion, Inc. Flash memory device and method for managing flash memory device
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8850160B2 (en) 2010-08-23 2014-09-30 Apple Inc. Adaptive write behavior for a system having non-volatile memory
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US11614893B2 (en) * 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
JP5066241B2 (ja) 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8782370B2 (en) * 2011-05-15 2014-07-15 Apple Inc. Selective data storage in LSB and MSB pages
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
US9690694B2 (en) * 2011-09-27 2017-06-27 Sandisk Technologies, Llc Apparatus, system, and method for an address translation layer
US8977803B2 (en) * 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
KR20130087936A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 메모리 장치, 메모리 시스템 및 이의 프로그램 방법
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
JP5687649B2 (ja) * 2012-03-16 2015-03-18 株式会社東芝 半導体記憶装置の制御方法
US9251055B2 (en) * 2012-02-23 2016-02-02 Kabushiki Kaisha Toshiba Memory system and control method of memory system
TWI476680B (zh) * 2012-02-29 2015-03-11 Innostor Technology Corp Archives System for File Management of Flash Memory
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
TWI605458B (zh) 2012-04-25 2017-11-11 Sony Corp Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US8923045B2 (en) * 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
TWI454913B (zh) * 2012-06-26 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
KR101985952B1 (ko) * 2012-08-27 2019-06-05 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 구동 방법
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
CN103811054B (zh) * 2012-11-15 2017-09-19 北京兆易创新科技股份有限公司 一种NAND Flash存储器、NAND Flash存储器实现方法及其系统
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
CN103034586B (zh) * 2012-11-30 2016-03-23 记忆科技(深圳)有限公司 通过闪存转换层识别上层应用的方法及其系统
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9465731B2 (en) * 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9575886B2 (en) 2013-01-29 2017-02-21 Marvell World Trade Ltd. Methods and apparatus for storing data to a solid state storage device based on data classification
US9489148B2 (en) 2013-03-13 2016-11-08 Seagate Technology Llc Selecting between non-volatile memory units having different minimum addressable data unit sizes
US9715445B2 (en) 2013-03-14 2017-07-25 Sandisk Technologies Llc File differentiation based on data block identification
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US20150120988A1 (en) * 2013-10-28 2015-04-30 Skymedi Corporation Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9244631B2 (en) * 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US9632880B2 (en) 2013-12-26 2017-04-25 Silicon Motion, Inc. Data storage device and flash memory control method
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US9495101B2 (en) * 2014-01-29 2016-11-15 Sandisk Technologies Llc Methods for balancing write operations of SLC blocks in different memory areas and apparatus implementing the same
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
CN103870214A (zh) * 2014-02-26 2014-06-18 深圳市安信达存储技术有限公司 多层存储块兼具单层存储块性能的方法
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
KR20160028680A (ko) * 2014-09-04 2016-03-14 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
US10083117B2 (en) * 2014-09-09 2018-09-25 Hua Zhong University of Technology Filtering write request sequences
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
KR20160052278A (ko) 2014-11-04 2016-05-12 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
KR102295223B1 (ko) 2015-01-13 2021-09-01 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
KR102320864B1 (ko) * 2015-03-24 2021-11-03 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
SG11201607335XA (en) * 2015-11-27 2017-07-28 Huawei Tech Co Ltd Method for storing data by storage device and storage device
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US10031845B2 (en) 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US10019198B2 (en) * 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN111679787B (zh) * 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
CN106293841A (zh) * 2016-08-11 2017-01-04 青岛海信移动通信技术股份有限公司 一种烧录数据的方法和装置
US10223252B2 (en) * 2017-03-31 2019-03-05 Samsung Electronics Co., Ltd. Hybrid DRAM array including dissimilar memory cells
US10275170B2 (en) * 2017-04-10 2019-04-30 Sandisk Technologies Llc Folding operations in memory systems with single address updates
US10643707B2 (en) * 2017-07-25 2020-05-05 Western Digital Technologies, Inc. Group write operations for a data storage device
US10572388B2 (en) * 2017-08-30 2020-02-25 Micron Technology, Inc. Managed NVM adaptive cache management
US10515008B2 (en) 2017-10-25 2019-12-24 Western Digital Technologies, Inc. Performance based memory block usage
US11314635B1 (en) * 2017-12-12 2022-04-26 Amazon Technologies, Inc. Tracking persistent memory usage
US10541037B2 (en) * 2018-06-07 2020-01-21 Sandisk Technologies Llc Non-volatile memory with countermeasure for program disturb including delayed ramp down during program verify
CN109144896B (zh) * 2018-08-10 2022-09-27 暨南大学 一种基于mlc奇偶对称性的可感知型数据缓存管理方法
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
CN111324281B (zh) * 2018-12-14 2024-02-06 兆易创新科技集团股份有限公司 一种存储器及其控制方法和装置
US11199991B2 (en) * 2019-01-03 2021-12-14 Silicon Motion, Inc. Method and apparatus for controlling different types of storage units
TWI696074B (zh) 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI768336B (zh) * 2019-01-24 2022-06-21 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN110223726B (zh) * 2019-06-04 2020-12-01 深圳忆联信息系统有限公司 一种增加ssd使用寿命的方法及其系统
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
CN110531928B (zh) * 2019-08-09 2023-04-25 深圳大普微电子科技有限公司 DRAM-Less固态硬盘的数据随机写入方法、装置及DRAM-Less固态硬盘
KR20210034378A (ko) 2019-09-20 2021-03-30 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그것의 동작 방법
KR20210023203A (ko) * 2019-08-22 2021-03-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11734175B2 (en) 2019-08-22 2023-08-22 SK Hynix Inc. Storage device and method of operating the same
KR20210076497A (ko) 2019-12-16 2021-06-24 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
US11294827B2 (en) * 2019-09-12 2022-04-05 Western Digital Technologies, Inc. Non-sequential zoned namespaces
US11762769B2 (en) 2019-09-20 2023-09-19 SK Hynix Inc. Memory controller based on flush operation and method of operating the same
CN110750215A (zh) * 2019-10-14 2020-02-04 深圳忆联信息系统有限公司 提升固态硬盘随机读性能方法、装置和计算机设备
US11669464B1 (en) * 2020-04-24 2023-06-06 Xilinx, Inc. Multi-addressing mode for DMA and non-sequential read and write patterns
US11403032B2 (en) 2020-09-10 2022-08-02 Micron Technology, Inc. Data transfer management within a memory device having multiple memory regions with different memory densities
CN114327240A (zh) * 2020-09-29 2022-04-12 慧荣科技股份有限公司 计算机可读存储介质、闪存存储器的数据存储方法及装置
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
CN114415944A (zh) * 2021-12-27 2022-04-29 深圳忆联信息系统有限公司 固态硬盘物理块管理方法、装置、计算机设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060021099A (ko) * 2004-09-02 2006-03-07 삼성전자주식회사 낸드 플래시 메모리의 데이터 기입 방법

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804760B2 (en) * 1994-12-23 2004-10-12 Micron Technology, Inc. Method for determining a type of memory present in a system
US5737599A (en) * 1995-09-25 1998-04-07 Rowe; Edward R. Method and apparatus for downloading multi-page electronic documents with hint information
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US6018789A (en) * 1997-11-24 2000-01-25 Western Digital Corporation Disk drive with cache segment providing adaptively managed chunks
TW527604B (en) * 1998-10-05 2003-04-11 Toshiba Corp A memory systems
JP2000173281A (ja) 1998-12-04 2000-06-23 Sony Corp 半導体記憶装置
JP2001006374A (ja) 1999-06-17 2001-01-12 Hitachi Ltd 半導体記憶装置及びシステム
JP2001306393A (ja) 2000-04-20 2001-11-02 Mitsubishi Electric Corp 記憶装置
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4248772B2 (ja) 2001-07-05 2009-04-02 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6678785B2 (en) * 2001-09-28 2004-01-13 M-Systems Flash Disk Pioneers Ltd. Flash management system using only sequential write
US7076606B2 (en) * 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
JP2004310650A (ja) * 2003-04-10 2004-11-04 Renesas Technology Corp メモリ装置
CA2433254A1 (en) * 2003-06-25 2004-12-25 Ibm Canada Limited - Ibm Canada Limitee System and method for warm shutdown and restart of a buffer pool
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7873885B1 (en) * 2004-01-20 2011-01-18 Super Talent Electronics, Inc. SSD test systems and methods
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
WO2006093201A1 (ja) * 2005-03-03 2006-09-08 Matsushita Electric Industrial Co., Ltd. メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
US7366013B2 (en) * 2005-12-09 2008-04-29 Micron Technology, Inc. Single level cell programming in a multiple level cell non-volatile memory device
US8250316B2 (en) * 2006-06-06 2012-08-21 Seagate Technology Llc Write caching random data and sequential data simultaneously
US7451265B2 (en) * 2006-08-04 2008-11-11 Sandisk Corporation Non-volatile memory storage systems for phased garbage collection
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
TW201120900A (en) * 2009-12-07 2011-06-16 Jmicron Technology Corp Method and control unit for performing storage management upon storage apparatus and related storage apparatus thereof
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US8990477B2 (en) * 2012-04-19 2015-03-24 Sandisk Technologies Inc. System and method for limiting fragmentation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060021099A (ko) * 2004-09-02 2006-03-07 삼성전자주식회사 낸드 플래시 메모리의 데이터 기입 방법

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
US8037233B2 (en) 2008-02-05 2011-10-11 Phison Electronics Corp. System, controller, and method for data storage
TWI425523B (zh) * 2008-03-25 2014-02-01 Asmedia Technology Inc 混合型快閃儲存裝置及其操作方法
CN101552028A (zh) * 2008-03-31 2009-10-07 深圳市朗科科技股份有限公司 组合使用存储设备的存储装置及实现存储的方法
US8705272B2 (en) 2008-06-13 2014-04-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8565021B2 (en) 2008-06-13 2013-10-22 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8614919B2 (en) 2008-06-13 2013-12-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8625344B2 (en) 2008-06-13 2014-01-07 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8638585B2 (en) 2008-06-13 2014-01-28 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US8760918B2 (en) 2008-06-13 2014-06-24 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US9852061B2 (en) 2008-10-02 2017-12-26 Samsung Electronics Co., Ltd. Memory device and operating method of memory device
KR101515525B1 (ko) 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR101515098B1 (ko) 2008-11-20 2015-04-24 삼성전자주식회사 플래시 메모리 장치 및 이의 독출 방법
US8239616B2 (en) 2008-12-03 2012-08-07 Samsung Electronics Co., Ltd. Semiconductor device comprising flash memory and address mapping method
KR101635446B1 (ko) * 2010-05-25 2016-07-04 삼성전자주식회사 반도체 메모리 장치의 블록 병합 방법
KR20110128992A (ko) * 2010-05-25 2011-12-01 삼성전자주식회사 반도체 메모리 장치의 블록 병합 방법
US8677058B2 (en) 2010-07-02 2014-03-18 Samsung Electronics Co., Ltd. Memory system selecting write mode of data block and data write method thereof
KR20120003282A (ko) * 2010-07-02 2012-01-10 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
US8812775B2 (en) 2011-03-28 2014-08-19 Samsung Electronics Co., Ltd. System and method for controlling nonvolatile memory
KR20140043329A (ko) * 2011-03-31 2014-04-09 샌디스크 테크놀로지스, 인코포레이티드 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템
KR101319589B1 (ko) * 2011-08-12 2013-10-16 아주대학교산학협력단 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법 및 그 컨트롤러
KR101856506B1 (ko) 2011-09-22 2018-05-11 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 쓰기 방법
US8902649B2 (en) 2011-11-08 2014-12-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and related method of operation
US9025376B2 (en) 2011-11-08 2015-05-05 Samsung Electronics Co., Ltd. Nonvolatile memory device and related method of operation
KR20130135618A (ko) * 2012-06-01 2013-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
KR101997572B1 (ko) 2012-06-01 2019-07-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
US8843697B2 (en) 2012-06-25 2014-09-23 SK Hynix Inc. Operating method of data storage device
KR101460881B1 (ko) 2013-03-28 2014-11-20 주식회사 티엘아이 메모리 관리 장치 및 방법
KR20150062019A (ko) * 2013-11-28 2015-06-05 한양대학교 에리카산학협력단 메모리 장치 및 그 동작 방법
KR101655508B1 (ko) * 2013-11-28 2016-09-07 한양대학교 에리카산학협력단 메모리 장치 및 그 동작 방법
US11360886B2 (en) 2019-11-07 2022-06-14 SK Hynix Inc. Storage device and operating method thereof

Also Published As

Publication number Publication date
US7970981B2 (en) 2011-06-28
US9122592B2 (en) 2015-09-01
US20110219180A1 (en) 2011-09-08
US20140379970A1 (en) 2014-12-25
US9886202B2 (en) 2018-02-06
US20130173857A1 (en) 2013-07-04
US20080104309A1 (en) 2008-05-01
US8843699B2 (en) 2014-09-23
US20120159054A1 (en) 2012-06-21
US20150370491A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
KR100771521B1 (ko) 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
JP5728672B2 (ja) ハイブリッドメモリ管理
US8180955B2 (en) Computing systems and methods for managing flash memory device
US8392662B2 (en) Methods of data management in non-volatile memory devices and related non-volatile memory systems
JP4399008B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
US7516295B2 (en) Method of remapping flash memory
KR100684887B1 (ko) 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
JP4431175B2 (ja) 不揮発性メモリおよびマルチストリーム更新を伴う方法
KR100684942B1 (ko) 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
JP5001011B2 (ja) ホストの使用特性に基づいたフラッシュメモリのアドレスマッピングの適応的モード切り換え
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US20120173795A1 (en) Solid state drive with low write amplification
JP2008524710A (ja) 不揮発性メモリならびにスクラッチパッドおよび更新ブロックのための改良されたインデックス付けを伴う方法
KR100608602B1 (ko) 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
US20100318726A1 (en) Memory system and memory system managing method
US20100161890A1 (en) Cache management method and cache device using sector set
KR100914646B1 (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
KR100638638B1 (ko) 플래시 메모리의 제어 방법
KR100780963B1 (ko) 메모리 카드 및 메모리 카드의 구동 방법
KR100982440B1 (ko) 단일 플래시 메모리의 데이터 관리시스템
TWI829363B (zh) 資料處理方法及對應之資料儲存裝置
KR101025375B1 (ko) 비휘발성 메모리 장치의 데이터 기록 방법 및 이를 수행하는 비휘발성 메모리 장치
KR20050102779A (ko) Nand형 플래시 메모리 파일 시스템의 설계 방법

Legal Events

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

Payment date: 20120925

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160930

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 13