KR20110024832A - 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 - Google Patents

데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20110024832A
KR20110024832A KR1020090082993A KR20090082993A KR20110024832A KR 20110024832 A KR20110024832 A KR 20110024832A KR 1020090082993 A KR1020090082993 A KR 1020090082993A KR 20090082993 A KR20090082993 A KR 20090082993A KR 20110024832 A KR20110024832 A KR 20110024832A
Authority
KR
South Korea
Prior art keywords
block
bad
new
memory controller
temporary
Prior art date
Application number
KR1020090082993A
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 KR1020090082993A priority Critical patent/KR20110024832A/ko
Priority to US12/648,346 priority patent/US8214698B2/en
Publication of KR20110024832A publication Critical patent/KR20110024832A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • 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/7204Capacity control, e.g. partitioning, end-of-life degradation

Abstract

반도체 스토리지 시스템이 개시된다. 개시된 반도체 스토리지 시스템은, 복수의 메모리 블록을 포함하는 플래시 메모리 영역, 및 상기 메모리 블록 내 불량 블록의 동작 불량이 발생된 페이지만 새로운 물리 블록으로 복사하고, 동작 불량 이전의 불량 블록의 유효 페이지들은 그대로 유지하도록 제어하는 메모리 컨트롤러를 포함한다.
플래시 메모리, 할당, 저장, 페이지

Description

데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법{Solid State Storage System With Improved Data Merging Efficiency and Method of Controlling the Same}
본 발명은 반도체 스토리지 시스템 및 그 제어 방법에 관한 것으로서, 보다 구체적으로는 데이터를 머지하는 반도체 스토리지 시스템 및 그 제어 방법에 관한 것이다.
일반적으로 비휘발성 메모리를 많은 휴대용 정보 기기의 저장용 메모리로 사용하고 있다. 더 나아가, 최근에는 PC(Personal Computer)에서 HDD(Hard Disk Drive)를 대신하여 낸드(NAND) 플래시 메모리를 사용한 SSD(Solid State Drive)가 출시되고 있어 급속도로 HDD 시장을 잠식할 것으로 전망되고 있다.
이러한 플래시 메모리를 이용하는 반도체 스토리지 시스템은 복수의 페이지를 포함하는 블록이 복수개로 구성된 메모리 영역을 포함한다. 잘 알려진 바와 같이, 플래시 메모리의 특징으로 인하여 데이터의 리드 및 라이트 동작은 페이지(page) 단위로 수행하되, 그 데이터의 갱신 및 삭제 동작은 블록(block) 단위로 수행한다. 즉, 어떤 데이터가 저장된 페이지의 내용을 갱신하려면, 해당 페이지가 포함된 블록 전체를 우선 삭제한 후, 다시 페이지 단위로 라이트해야 한다.
한편, 반도체의 공정은 미세 공정으로 진행하기 때문에 플래시 메모리 셀 제조 공정 시 결함이 발생될 수 있다. 또는 셀에 고전압을 인가하며 라이트하는 동작 때문에 점차 셀이 열화되어 물리적 결함이 발생될 수 있다. 상기의 이유들로 인하여 물리적 결함이 발생된 페이지에 라이트 동작을 수행할 때, 원하는 데이터를 라이트하지 못할 수 있다. 즉, 라이트 동작의 실패가 동작의 마진(margin)에 기인한 것이 아니라 물리적 결함에 의해 발생되었다면, 물리적 결함이 포함된 페이지를 포함한 블록은 불량 블록(bad block)처리하여야 한다.
도 1은 종래 기술에서 불량 블록이 발생한 경우의 개념적인 블록도를 나타낸다.
도 1을 참조하면, 물리 블록 1에 새로운 데이터를 라이트하는데 물리적 결함으로 인하여 동작 불량이 발생한 경우를 보여주고 있다. 이 때, 불량이 발생한 물리 블록 1대신 새로운 물리 블록 2를 할당해야 한다. 그리하여, 물리 블록 1내에 존재하는 유효한(valid) 페이지만을 물리 블록 2에 복사하고, 물리 블록 1은 불량 블록 처리한다. 불량 블록 처리한다는 것은, 이후 물리 블록 1을 사용 불가하도록 블록 할당에서 제외시키는 것이다. 이 때, 물리 블록 1내 불량이 발생한 페이지 외에도 불량이 발생하지 않은 이전의 유효한 페이지의 데이터도 다시 한번 물리 블록 2에 복사를 수행해야 한다. 이러한 복사 동작은 페이지 단위로 수행되므로, 종래 기술에 따르면 데이터의 처리 시간이 증대된다.
본 발명의 기술적 과제는 데이터 머지를 수행하는 반도체 스토리지 시스템을 제공하는 것이다.
본 발명의 다른 기술적 과제는 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법을 제공하는 것이다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템은, 복수의 메모리 블록을 포함하는 플래시 메모리 영역, 및 상기 메모리 블록 내 불량 블록의 동작 불량이 발생된 페이지만 새로운 물리 블록으로 복사하고, 동작 불량 이전의 불량 블록의 유효 페이지들은 그대로 유지하도록 제어하는 메모리 컨트롤러를 포함한다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 다른 실시예에 따른 반도체 스토리지 시스템은, 복수의 메모리 블록을 포함하는 플래시 메모리 영역, 상기 메모리 블록의 어드레스 맵핑 정보 및 블록 위치 정보들을 저장하는 버퍼부; 및 상기 메모리 블록 중 불량 블록 및 상기 불량 블록에 대응되어 할당된 새로운 블록을 논리적 어드레스를 이용하여 서로 링크시켜 하나의 가상 논리적 블록으로 구현하도록 제어하고, 상기 버퍼부에 링크 관련된 정보를 저장하도록 제어하는 메모리 컨트롤러를 포함한다.
본 발명의 다른 기술적 과제를 달성하기 위하여, 반도체 스토리지 시스템의 제어 방법은, 외부로부터 요청된 동작이 실패하였는지 판단하는 단계, 상기 요청된 동작을 실패한 블록은 임시 블록 처리하고, 상기 실패한 동작은 새로운 블록을 할당하여 재수행하도록 제어하는 단계 및 데이터 머지 시, 상기 임시 블록 및 상기 새로운 블록의 유효 페이지들만 복사를 수행하는 단계를 포함한다.
본 발명의 일 실시예에 따르면 동작 불량이 발생하면 임시 블록 처리하여 유효한 페이지들의 맵핑 정보는 그대로 유지하고, 새로 할당된 블록의 유효 페이지들과 임시 블록의 저장 위치등을 링크 시킴으로써, 데이터의 처리 동작 시간을 보다 단축시킬 수 있다.
이하에서는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템에 대하여 첨부된 도면을 참조하여 설명하도록 한다.
먼저, 도 2 를 참조하여, 본 발명의 실시예에 따른 반도체 스토리지 시스템에 대해서 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템(100)의 블록도이다. 여기서, 반도체 스토리지 시스템(100)은 낸드 플래시 메모리를 이용한 스토리지 시스템으로 예시한다.
도 2를 참조하면, 반도체 스토리지 시스템(100)은 호스트 인터페이스(110), 버퍼부(120), MCU(130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.
우선, 호스트 인터페이스(110)는 버퍼부(120)와 연결된다. 호스트 인터페이 스(110)는 외부 호스트 (미도시)와 버퍼부(120)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다. 호스트 인터페이스(110)와 외부 호스트 (미도시)간의 인터페이스 방식은 직렬 ATA(Serial Advanced Technology Attachment;SATA), 병렬 ATA(Parallel Advanced Technology attachment;PATA) 및 SCSI, Express Card, PCI-Express 방식 중 어느 하나일 수 있으며 제한되지 않는다.
버퍼부(120)는 호스트 인터페이스(110)로부터의 출력 신호들을 버퍼링하거나, 논리적 어드레스 및 물리적 어드레스간의 맵핑 정보 및 메모리 영역의 블록 할당 정보, 외부로부터 수신된 데이터를 임시 저장한다. 버퍼부(120)는 SRAM(Static Random Access Memory)을 이용한 버퍼일 수 있다.
MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.
메모리 컨트롤러(140)는 메모리 영역(150)의 복수개의 낸드 플래시 메모리 소자 중 소정 낸드 플래시 메모리 소자(ND)를 선택하고, 라이트, 삭제 또는 리드 명령을 제공한다. 특히, 본 발명의 일 실시예에 따른 메모리 컨트롤러(140)는 불량 블록이 발생되면, 해당 불량 블록의 최종 동작이 수행된 어드레스 맵핑 정보를 링크 인덱스(link index)로 이용한다. 즉, 메모리 컨트롤러(140)는 불량 블록이 발생되면 새로운 블록을 할당하고, 새로운 블록에 이전 불량 블록의 논리적 어드레스와 연속될 수 있도록 논리적 어드레스를 할당한다. 그리하여, 본 발명의 일 실시예에 따르면 서로 다른 블록의 논리적 어드레스가 링크되어 하나의 가상 논리적 블록을 구현한다.
메모리 영역(150)은 메모리 컨트롤러(140)에 의해 제어되어 데이터의 라이트, 삭제 및 리드 동작이 수행된다. 여기서, 메모리 영역(150)은 낸드(NAND) 플래시 메모리일 수 있다. 설명의 편의상 본 발명의 일 실시예에서는 MLC 낸드 플래시 메모리로 예시하나 이에 제한되지 않음은 물론이다. 이러한 메모리 영역(150)은 다수의 페이지를 포함하는 다수의 블록으로 구성된 칩이 복수개 구비될 수 있다.
도 3은 도 2에 따른 블록의 제어를 개념적으로 도시한 블록도이다.
도 3을 참조하면, 물리 블록 a에 유효한 데이터와 유효하지 않은 데이터가 저장되어 있다. 물리 블록 a의 ①, ②는 논리적 어드레스를 개념적으로 표시한 것이다. 시간의 추이에 따라 이러한 블록의 데이터 머지 과정을 설명하기로 한다
시간 T1에서 외부의 요청에 따라 물리 블록 a의 논리적 어드레스 ③ 에 해당하는 페이지에 요청된 동작을 수행할 때, 메모리 셀의 물리적 결함 때문에 불량이 발생되어 동작이 실패하는 경우를 나타내고 있다. 여기서 요청된 동작은 리드 및 라이트 동작을 포함한다. 또한, 동작이 실패한 것을 판단하는 것은 도시하지 않았으나 ECC(Error Check Code)를 이용하여 정정하여도, 여전히 불량(fail) 비트가 존재할 경우로써 판단하는 것으로 예시하기로 한다. 이러한 경우, 본 발명의 일 실시예에 따른 메모리 컨트롤러(도 2의 140 참조)는 물리 블록 a의 최종 동작이 수행된 페이지의 논리적 어드레스 정보를 링크 인덱스로서 버퍼부(도 2의 120 참조)에 저장한다. 또한, 메모리 컨트롤러(도 2의 140 참조)는 물리 블록 a를 종래 기술에서와 같이 불량 블록으로 처리하지 않고, 임시 블록으로 처리함으로써 소정 시간 동 안은 물리 블록 a의 유효한 페이지들(①, ②에 대응되는 페이지들)의 데이터 및 어드레스 맵핑 정보를 버퍼부(도 2의 120 참조)에 임시 저장하도록 제어한다. 링크 인덱스를 생성하는 것은, 임시 블록 처리된 물리 블록 a의 마지막 유효 페이지의 블록 정보 및 논리적 어드레스 정보를 이용하여 생성할 수 있으며, 이러한 링크 인덱스는 임시 블록과 새로 할당된 물리 블록을 통합할 뿐 아니라, 임시 블록 및 현재 해당 물리 블록의 페이지들의 순열을 정하는 기준 플래그(flag)신호이기도 하다.
시간 T2에 새로운 물리 블록 b를 할당하고, 물리 블록 a에서 실패한 동작을 재수행하도록 한다. 여기서, 물론 물리 블록 b의 논리적 어드레스 정보 및 물리적 어드레스의 맵핑을 새로 갱신되어 물리 블록 b의 블록 정보와 함께 버퍼부(도 2의 120 참조)에 저장된다. 이후의 외부 시스템의 요청에 따라 수행되는 동작들은 모두 물리 블록 b에서 수행될 것이다. 그리하여, 물리 블록 a의 논리적 어드레스 ③ 에 대응되는 페이지의 데이터가 물리 블록 b에서 처리되며, 새로운 물리 블록 어드레스와 물리적 어드레스를 갖는다. 하지만, 버퍼부(도 2의 120 참조)에 저장된 링크 인덱스를 이용하면 물리 블록 b의 논리적 어드레스 ③에 해당하는 페이지는 물리 블록 a의 ①, ②에 대응되는 페이지들과 링크될 수 있다.
머지(merge) 시점, 즉 T3에서 유효 페이지들의 데이터를 모두 병합해야 할 때, 메모리 컨트롤러(도 2의 140 참조)는 우선, 새로운 물리 블록 C를 할당한다. 또한, 메모리 컨트롤러(도 2의 140 참조)는 임시 블록 처리한 물리 블록 a와 현재 해당 블록인 물리 블록 b의 유효 페이지만 물리 블록 C에 복사한다.
이 후, 시간 T4에서 메모리 컨트롤러(도 2의 140 참조)는 임시 블록이었던 물리 블록 a를 불량 블록 처리하여 사용 불가하도록 제어한다.
이와 같이, 본 발명의 일 실시예에 따르면 불량 발생된 해당 페이지만 새로운 블록에서 동작을 수행하도록 제어하고, 불량 발생된 블록내의 이미 저장되었던 유효 페이지들의 데이터 및 어드레스 정보는 그대로 유지하도록 한다. 그리하여, 이전의 유효 페이지들의 불필요한 복사를 줄이고, 실제 불량 발생 페이지에 대해서만 동작을 재수행하도록 제어하므로 전체적인 데이터의 처리 시간은 감소될 수 있다.
도 4는 도 3에 따른 블록의 연속적 링크 제어를 개념적으로 도시한 블록도이다.
도 4를 참조하면, 새로 할당받은 블록들마다 동작 불량이 발생하는 경우를 나타낸다.
우선, 물리 블록 ①에서 요청된 동작이 실패하면, 물리 블록 ①을 임시 블록 ①로 처리하여 실패한 동작 이전의 유효 페이지의 맵핑 정보는 그대로 유지하도록 함과 동시에, 실패한 동작이 수행되었던 페이지의 논리적 어드레스를 제 1 링크 인덱스로서 저장한다.
물리 블록 ②가 새로 할당되고, 물리 블록①에서 실패한 동작을 재수행한다. 계속해서 외부로부터 요청된 동작들을 물리 블록 ②에서 수행한다. 이번에는 물리 블록 ②에서 요청된 동작이 실패하였다면, 물리 블록 ②의 실패 동작 이전의 어드레스 맵핑 정보는 유지하고, 물리 블록 ②는 임시 블록 ②로 처리하며, 실패한 동 작의 논리적 어드레스를 제 2 링크 인덱스로서 저장한다. 물론, 제 1 링크 인덱스도 계속 유지되고 있다.
물리 블록 ③가 새로 할당되고, 전술한 바와 같이, 실패한 요청 동작을 재수행하도록 한다. 역시 물리 블록 ③에서도 동작이 실패하였다면, 제 3 링크 인덱스를 생성하고, 물리 블록 ③을 임시 블록 ③으로 처리하며, 새로운 물리 블록 ④를 할당한다.
즉, 새로 할당받은 블록들에서 동작 불량이 발생하면 복수개의 링크 인덱스를 이용하여 복수개의 블록들에 저장된 페이지들을 하나의 논리적 블록으로 구현할 수 있다. 또한, 불량 블록이 발생할 때마다 모든 유효 페이지들을 복사해야 하는 번거로움이나 불필요한 페이지 복사의 오버헤드(overhead)를 줄일 수 있다.
도 5는 도 2에 따른 반도체 스토리지 시스템의 동작을 나타내는 순서도이다.
도 2 내지 도 5를 참조하면, 외부로부터 요청된 동작, 즉 리드 및 라이트 동작을 수행한다(S10).
해당 동작이 실패하였는지 판단(S20)한 후, 성공(No)하였다면 계속 해당 블록에서 외부로부터 요청된 동작 수행(S10)을 한다.
만약, 해당 동작이 실패(Yes)하였다면 동작 실패한 블록은 임시 블록 처리한다(S30). 임시 블록 처리하면서, 해당 블록의 이전 유효 페이지들의 어드레스 맵핑 정보는 그대로 유지하고, 동작 실패한 논리적 어드레스를 이용하여 링크 인덱스를 저장한다.
이어서, 임시 블록 대신 새로운 블록을 할당하여 실패한 해당 동작을 재수행 하며, 이후로 요청된 모든 동작들은 새로운 블록에서 수행하도록 제어한다(S40).
머지 시, 임시 블록 및 새로 할당된 블록의 유효 페이지들만 복사한다(S50). 이 때, 머지 시 링크 인덱스를 이용함으로써 임시 블록 및 현재 해당 블록의 데이터들의 저장 순서를 유지시켜 줄 수 있다.
이와 같이, 본 발명의 일 실시예에 따르면, 동작 불량이 발생하면 임시 블록 처리하여 유효한 페이지들의 맵핑 정보는 그대로 유지하고, 링크 인덱스를 생성시켜, 새로 할당된 블록의 유효 페이지들과의 저장 위치등을 링크 시킴으로써, 데이터의 처리 동작 시간을 보다 단축시킬 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 종래 기술에 따른 불량 블록의 처리 과정을 나타낸 개념도,
도 2는 본 발명의 일 실시 예에 따른 반도체 스토리지 시스템의 블록도,
도 3은 도 2에 따른 불량 블록의 처리 과정을 나타낸 개념도,
도 4는 도 2에 따른 복수의 불량 블록의 처리 과정을 나타낸 개념도, 및
도 5는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 제어 방법을 나타낸 플로우 차트이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 호스트 인터페이스 120: 버퍼부
130: MCU 140: 메모리 컨트롤러
150: 메모리 영역

Claims (15)

  1. 복수의 메모리 블록을 포함하는 플래시 메모리 영역; 및
    상기 메모리 블록 내 불량 블록의 동작 불량이 발생된 페이지만 새로운 물리 블록으로 복사하고, 동작 불량 발생 이전의 동작 완료된 불량 블록의 유효 페이지들은 그대로 유지하도록 제어하는 메모리 컨트롤러를 포함하는 반도체 스토리지 시스템.
  2. 제 1항에 있어서,
    상기 메모리 컨트롤러는 상기 불량 블록은 임시 블록 처리함으로써, 소정 시간 동안은 상기 동작 불량 이전 시점의 유효 페이지들과 관련된 정보들을 임시 저장하도록 제어하는 반도체 스토리지 시스템.
  3. 제 1항에 있어서,
    데이터 머지 시, 상기 메모리 컨트롤러는 상기 임시 블록 및 상기 새로운 물리 블록의 유효 페이지들만 또 다른 새로운 블록에 복사하도록 제어하는 반도체 스토리지 시스템.
  4. 복수의 메모리 블록을 포함하는 플래시 메모리 영역;
    상기 메모리 블록의 어드레스 맵핑 정보 및 블록 위치 정보들을 저장하는 버 퍼부; 및
    상기 메모리 블록 중 불량 블록 및 상기 불량 블록에 대응되어 할당된 새로운 블록을 논리적 어드레스를 이용하여 서로 링크시켜 하나의 가상 논리적 블록으로 구현하도록 제어하고, 상기 버퍼부에 링크 관련된 정보를 저장하도록 제어하는 메모리 컨트롤러를 포함하는 반도체 스토리지 시스템.
  5. 제 4항에 있어서,
    상기 메모리 컨트롤러는,
    상기 불량 블록이 발생되면 이에 대응되어 새로운 물리 블록을 할당하고, 상기 불량 블록의 유효 페이지들 중 최종 페이지의 논리적 어드레스와 연속될 수 있도록 상기 새로운 물리 블록에 논리적 어드레스를 할당하는 반도체 스토리지 시스템.
  6. 제 4항에 있어서,
    상기 메모리 컨트롤러는 상기 불량 블록의 동작 불량이 발생된 페이지만 상기 새로운 물리 블록으로 복사하고, 동작 불량 이전의 불량 블록의 유효 페이지들은 그대로 유지하도록 제어하는 반도체 스토리지 시스템.
  7. 제 4항에 있어서,
    상기 메모리 컨트롤러는 상기 불량 블록은 임시 블록 처리하는 반도체 스토 리지 시스템.
  8. 제 4항에 있어서,
    상기 메모리 컨트롤러는, 상기 불량 블록 내 동작 불량 발생된 페이지를 이용하여 링크 인덱스를 생성하는 반도체 스토리지 시스템.
  9. 제 8항에 있어서,
    상기 버퍼부는, 데이터 머지 이전까지 상기 불량 블록 내 상기 동작 불량 이전 시점의 유효 페이지들과 관련된 어드레스 맵핑 정보 및 블록 위치 정보들의 저장을 유지하고, 상기 불량 블록과 상기 물리 블록을 링크시키는 링크 인덱스를 저장하는 반도체 스토리지 시스템.
  10. 제 9항에 있어서,
    데이터 머지 시, 상기 메모리 컨트롤러는 상기 임시 블록 및 상기 새로운 물리 블록의 유효 페이지들만 또 다른 새로운 블록에 복사하도록 제어하는 반도체 스토리지 시스템.
  11. 제 10항에 있어서,
    상기 데이터 머지 시, 상기 메모리 컨트롤러는 상기 링크 인덱스를 이용하여 상기 임시 블록의 유효 페이지들부터 상기 또 다른 새로운 블록으로 복사를 수행하 도록 제어하는 반도체 스토리지 시스템.
  12. 외부로부터 요청된 동작이 실패하였는지 판단하는 단계;
    상기 요청된 동작을 실패한 블록은 임시 블록 처리하고, 상기 실패한 동작은 새로운 블록을 할당하여 재수행하도록 제어하는 단계; 및
    데이터 머지 시, 상기 임시 블록 및 상기 새로운 블록의 유효 페이지들만 복사를 수행하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  13. 제 12항에 있어서,
    상기 임시 블록 처리하는 것은,
    상기 요청된 동작을 실패한 시점 이전의 유효 데이터들에 대해서는 소정 시간동안 계속 유지하도록 제어하는 반도체 스토리지 시스템의 제어 방법.
  14. 제 12항에 있어서,
    상기 새로운 블록을 할당하여 실패한 동작을 재수행하는 것은,
    상기 실패한 동작의 논리적 어드레스를 상기 새로운 블록에 맵핑하는 것을 포함하는 반도체 스토리지 시스템의 제어 방법.
  15. 제 12항에 있어서,
    상기 새로운 블록을 할당하여 실패한 동작을 재수행시,
    상기 실패한 동작의 논리적 어드레스를 이용하여 상기 임시 블록과 상기 새로운 블록을 링크시키는 링크 인덱스를 생성하는 것을 더 포함하는 반도체 스토리지 시스템의 제어 방법.
KR1020090082993A 2009-09-03 2009-09-03 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법 KR20110024832A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090082993A KR20110024832A (ko) 2009-09-03 2009-09-03 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법
US12/648,346 US8214698B2 (en) 2009-09-03 2009-12-29 Solid state storage system with improved data merging efficiency and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090082993A KR20110024832A (ko) 2009-09-03 2009-09-03 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20110024832A true KR20110024832A (ko) 2011-03-09

Family

ID=43626613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090082993A KR20110024832A (ko) 2009-09-03 2009-09-03 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법

Country Status (2)

Country Link
US (1) US8214698B2 (ko)
KR (1) KR20110024832A (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8201024B2 (en) * 2010-05-17 2012-06-12 Microsoft Corporation Managing memory faults
US9003224B2 (en) * 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
KR102072449B1 (ko) 2012-06-01 2020-02-04 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
CN103778968A (zh) * 2012-10-17 2014-05-07 太和科技股份有限公司 结合多张快闪记忆卡的固态硬盘的检测装置及其方法
US9032244B2 (en) 2012-11-16 2015-05-12 Microsoft Technology Licensing, Llc Memory segment remapping to address fragmentation
KR20150020385A (ko) * 2013-08-13 2015-02-26 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
TWI544492B (zh) * 2013-12-31 2016-08-01 慧榮科技股份有限公司 電子裝置及其資料維護方法
TWI484337B (zh) * 2014-01-06 2015-05-11 威盛電子股份有限公司 記憶體晶片與資料保護方法
US9946463B2 (en) 2016-07-12 2018-04-17 Western Digital Technologies, Inc. Compression of indirection tables
US10650885B2 (en) * 2017-03-07 2020-05-12 Alibaba Group Holding Limited Extending flash storage lifespan and data quality with data retention protection

Family Cites Families (7)

* 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
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
KR100572328B1 (ko) * 2004-07-16 2006-04-18 삼성전자주식회사 배드 블록 관리부를 포함하는 플래시 메모리 시스템
KR100622349B1 (ko) * 2004-08-04 2006-09-14 삼성전자주식회사 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법.
KR20090014823A (ko) * 2007-08-07 2009-02-11 삼성전자주식회사 배드 블록을 리맵핑하는 플래시 메모리 장치 및 그것의배드 블록의 리맵핑 방법
TWI368223B (en) * 2007-12-07 2012-07-11 Phison Electronics Corp Flash memory data writing method and controller using the same

Also Published As

Publication number Publication date
US20110055623A1 (en) 2011-03-03
US8214698B2 (en) 2012-07-03

Similar Documents

Publication Publication Date Title
KR20110024832A (ko) 데이터 머지 효율이 향상된 반도체 스토리지 시스템 및 그 제어 방법
US9996297B2 (en) Hot-cold data separation method in flash translation layer
US9519577B2 (en) Method and system for migrating data between flash memory devices
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
US20150331624A1 (en) Host-controlled flash translation layer snapshot
TW201916018A (zh) 資料儲存裝置與將資料寫入記憶體裝置之方法
JP2008204041A (ja) ストレージ装置及びデータ配置制御方法
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
KR101090394B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
KR20120081351A (ko) Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
US11520487B2 (en) Managing write operations during a power loss
TW201527973A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20200034081A1 (en) Apparatus and method for processing data in memory system
TWI459198B (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
KR20200038723A (ko) 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
JP2017191430A (ja) 情報処理装置、raid制御方法、およびraid制御プログラム
CN113031856A (zh) 存储器子系统中的断电数据保护
US11416403B2 (en) Method and apparatus for performing pipeline-based accessing management in storage server with aid of caching metadata with hardware pipeline module during processing object write command
TWI557559B (zh) 利用快閃記憶體的壞頁來存取資料的方法
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
KR20120070408A (ko) 블록을 관리하는 비휘발성 메모리 장치의 제어 방법
US11662940B2 (en) Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short
KR101027687B1 (ko) 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법
US11061610B2 (en) Memory system
US10872008B2 (en) Data recovery after storage failure in a memory system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20111228

Effective date: 20120523