KR20090097050A - 반도체 스토리지 시스템 및 그 제어 방법 - Google Patents

반도체 스토리지 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20090097050A
KR20090097050A KR1020080022204A KR20080022204A KR20090097050A KR 20090097050 A KR20090097050 A KR 20090097050A KR 1020080022204 A KR1020080022204 A KR 1020080022204A KR 20080022204 A KR20080022204 A KR 20080022204A KR 20090097050 A KR20090097050 A KR 20090097050A
Authority
KR
South Korea
Prior art keywords
blocks
block
memory device
nonvolatile memory
occupied
Prior art date
Application number
KR1020080022204A
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 KR1020080022204A priority Critical patent/KR20090097050A/ko
Publication of KR20090097050A publication Critical patent/KR20090097050A/ko

Links

Images

Classifications

    • 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
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/816Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout
    • G11C29/82Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for an application-specific layout for EEPROMs

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리 소자가 장착된 개시된 반도체 스토리지 시스템은, 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 스페어 영역을 포함하는 비휘발성 메모리 소자가 장착되어, 상기 스페어 영역내에서의 마킹된 블록 및 마킹안된 블록의 수를 측정하여 상기 비휘발성 메모리 소자의 수명 한계를 감지한다.
SSD, 데이터, 수명, 마킹 영역

Description

반도체 스토리지 시스템 및 그 제어 방법{Solid State Storage System and Controlling Method thereof}
본 발명은 반도체 스토리지 시스템 및 그 제어 방법에 관한 것으로서, 보다 구체적으로는 수명을 측정하는 반도체 스토리지 시스템 및 그 제어 방법에 관한 것이다.
일반적으로 하드 디스크(hard disk)는 중앙 처리 장치(Center Process Unit; CPU) 또는 시스템(system)의 보조 기억 장치의 하나로서 널리 이용되고 있다. 하드 디스크는 금속 플레이트((plate) 또는 디스크), 이를 회전시키는 스핀들 모터(spindle motor), 데이터가 기록된 섹터(sector)를 찾는(seeking) 헤드(head), 헤드를 작동시키는 액튜에이터(actuator)등을 포함한다. 스핀들 모터의 구동으로 금속 플레이트가 회전시, 헤드는 금속 플레이트의 섹터를 검색하고 이후 적정 섹터로부터 원하는 데이터를 리드(read)할 수 있다. 이러한 하드 디스크의 물리적 구조 및 물리적 데이터 검색 방법에 의해 불량이 발생할 수 있다. 즉, 고속 회전시 스핀들 모터의 윤활유가 증발되면서 기계 자체의 불량을 유발할 수 있다. 또한, 고속 회전을 하는 물리적 동작으로 인한 충격으로 스크래치(scratch)가 발생될 수 있다. 한편, 헤드가 섹터를 회전하면서 검색하고 이로부터 데이터를 리드하기까지 일정 소요 시간, 즉 레이턴시(latency)가 필요하므로 리드 시간이 길어질 수 있다.
따라서, 최근에는 이러한 하드 디스크의 대안으로 플래시 SSD(flash Solid Stade Drive)를 사용하는 추세이다. 특히, 낸드 플래시 소자(NAND Flash Device)를 장착한 SSD는 물리적 구동이 없으므로 기계적 충격에 강할 뿐 아니라, 낸드 플래시 소자의 동작 특성에 기인하여 데이터 검색 시간이 고속화된다.
하지만, SSD의 수명은 그 시스템 내에 장착되는 낸드 플래시 소자의 수명과 관계가 있으므로 낸드 플래시 소자의 수명이 다했다면, 그것이 장착되어 있는 시스템 및 저장 장치 또한 사용할 수 없다. 알려진 바와 같이, 낸드 플래시 소자와 같은 비휘발성 메모리 소자는 데이터 소거 및 프로그램시 고전압을 인가받으므로, 그것을 구성하는 메모리 셀이 스트레스를 받아 불량이 발생될 수 있다. 따라서, 통상의 DRAM 등과는 다르게 기록에 대한 횟수가 제한되고, 이로 인하여 수명이 제한될 수 있다. 특히, 싱글 레벨 셀(Single Level Cell; 이하 ‘SLC’라고 함) 보다는 멀티 레벨 셀(Multi Level Cell; 이하 ‘MLC’라고 함)에서는 셀의 수명이 더욱 취약하다. 그러므로, 시스템을 효율적으로 사용하기 위해서는 낸드 플래시 소자의 수명의 한계를 알고 관리하는 것이 요구된다.
본 발명의 기술적 과제는 낸드 플래시 소자의 수명을 측정하여 시스템의 데이터 백업 시점을 감지하는 반도체 스토리지 시스템을 제공하는 것이다.
본 발명의 다른 기술적 과제는 낸드 플래시 소자의 수명을 측정하여 시스템의 데이터 백업 시점을 감지하는 반도체 스토리지 시스템의 제어 방법을 제공하는 것이다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템은, 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 스페어 영역을 포함하는 비휘발성 메모리 소자가 장착되어, 상기 스페어 영역내 마킹된 블록과 마킹안된 블록의 수를 측정하여 상기 비휘발성 메모리 소자의 수명 한계를 감지하는 솔리드 스테이트 드라이브를 포함한다.
본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 다른 실시예에 따른 반도체 스토리지 시스템은, 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 스페어 영역을 포함하는 비휘발성 메모리 소자가 장착되어, 상기 스페어 영역의 사용 가능 여부를 체크함으로써 상기 비휘발성 메모리 소자의 수명 한계를 감지하는 감지 신호를 발생시키는 솔리드 스테이트 드라이브 및 상기 감지 신호를 수신하여 데이터 백업 시점을 경고하는 외부 장치를 포함한다.
본 발명의 다른 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따 른 낸드 플래시 소자의 수명 측정 방법은 다음과 같다. 우선, 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 셀 영역인 스페어 영역을 포함하는 비휘발성 메모리 소자의 스페어 영역의 초기 상태를 체크하여 점유 블록의 수, 미점유 블록의 수 및 임계치를 설정한다. 이어서, 상기 점유 블록 및 미점유 블록을 카운팅한다. 다음으로, 상기 카운팅 결과가 상기 임계치 이상인지 판단한다.
본 발명의 일 실시예에 따르면 미리 메모리 셀 영역의 할당된 스페어 영역에 점유 블록 또는 미점유 블록의 수를 체크하고 이를 카운팅하여 데이터 백업 시점을 감지하고 이를 경고함으로써, 데이터의 안정한 백업 유도 및 시스템의 수명 관리를 효율적으로 할 수 있도록 한다.
이하에서는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템 및 그 제어 방법에 대하여 첨부된 도면을 참조하여 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 비휘발성 메모리 소자가 포함된 반도체 스토리지 시스템(1)의 블록도이다.
도 1을 참조하면, 시스템(1)은 SSD(100) 및 외부 장치(200)를 포함한다.
SSD(100)는 호스트 인터페이스(110), 제 1 제어부(120), 제 2 제어부(130) 및 메모리 영역(140)을 포함한다.
외부 장치(200)는 중앙 처리 장치(210) 및 경고 발생부(220)를 포함한다.
우선, 호스트 인터페이스(110)는 중앙 처리 장치(210)와 연결되며, 제 1 제 어부(120)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다.
제 1 제어부(120)는 호스트 인터페이스(110)로부터 제어 명령, 어드레스 신호 및 데이터 신호등을 수신하여 제 2 제어부(130)를 제어한다. 특히, 본 발명의 일 실시예에 따른 제 1 제어부(120)는 비휘발성 메모리 소자인 낸드 플래시 메모리 소자의 수명 한계를 산출하여 이로써 시스템의 수명 관리를 제어할 수 있다.
구체적으로, 제 1 제어부(120)는 MCU(Micro Controller Unit; 122), 롬 영역(ROM; 124) 및 램 영역(RAM; 126)을 포함한다.
본 발명의 일 실시예에 따른 MCU(122)는 특정 낸드 플래시 메모리 소자를 선택하고, 선택된 낸드 플래시 메모리 소자의 소정 할당된 영역에서의 수명을 산출한다. 보다 구체적으로, MCU(122)는 주기적, 또는 특정 명령 수행에 따라 낸드 플래시 메모리 소자의 수명 측정용 영역 정보를 획득한다. 그리하여, 획득된 정보를 이용하여 낸드 플래시 메모리 소자의 수명을 산출할 수 있으며, 측정 방법에 따라 전체의 메모리 영역(140)의 수명 또는 메모리 영역(140)의 일부 블록(142)의 수명을 측정할 수 있다. 이에 대해서는 도 2 및 도3을 참조하여 상술하기로 한다.
롬 영역(124)은 운영체제를 위한 입출력 프로그램을 저장한다.
램 영역(126)은 MCU(122)로부터 논리적 어드레스(logical address)를 수신하여 물리적 어드레스(physical address)로 변환시켜 저장한다. 물리적 어드레스는 이후 낸드 플래시 메모리 소자에 맵핑(mapping)될 어드레스이다.
제 2 제어부(130)는 제 1 제어부(120)로부터 정보를 수신하여 메모리 영역(140)의 특정 낸드 플래시 소자들을 억세스하여 데이터를 프로그램하거나 소거할 수 있다.
제 2 제어부(130)는 메모리 컨트롤러(132) 및 에러 체크 정정부(Error Check Correction; 134)를 포함한다.
우선, 메모리 컨트롤러(132)는 메모리 영역(140)의 복수개의 낸드 플래시 메모리 소자 중 소정 낸드 플래시 메모리 소자(ND)를 선택하고, 프로그램, 소거 또는 리드 명령을 제공한다.
에러 체크 정정부(134)는 메모리 영역(140)에서 발생된 오류를 검출한다.
메모리 컨트롤러(132) 및 에러 체크 정정부(134)는 통상의 메모리 컨트롤러 및 ECC 회로이므로 당업자라면 이해 가능하기에 이에 대한 설명은 생략하기로 한다.
메모리 영역(140)은 복수개의 낸드 플래시 메모리 소자(ND)를 포함한다. 보다 구체적으로, 메모리 영역(140)은 소정의 블록(142)을 포함하며, 블록(142)은 다수의 낸드 플래시 메모리 소자(ND)를 포함한다. 여기서는, 블록(142)을 임의의 수직 방향의 영역으로 구분하였으나, 이에 제한되지 않음은 물론이다.
외부 장치(200)의 중앙 처리 장치(210)는 수명 관리용 명령어를 기입하거나, MCU(122)로부터의 감지 신호를 수신한다. 그리하여, MCU(122)로부터 수명 한계 정보인 감지 신호를 수신하면 경고 발생부(220)를 제어한다.
경고 발생부(220)는 수명의 한계 시점이 검출되면 중앙 처리 장치(210)에 제어되어 다양한 정보로 표시할 수 있다. 도시하지 않았으나, 경고 발생부(220)는 경고 메시지 발생 장치로서 비프음(beep), 진동기(vibrator), LED(Light Electric Diode) 또는 그래픽 화면일 수 있다. 그러나, 이러한 예시는 어디까지나 발명을 구체화하는 예시일 뿐, 이 외의 다양한 경고 발생 장치를 제한하지 않는다.
도 2는 낸드 플래시 메모리 소자의 어드레스 맵핑 과정의 예시적 개념도이다.
도 2를 참조하면, 낸드 플래시 메모리 소자의 셀 블록(a, b)이 도시되어 있다. 여기서, 셀 블록은 낸드 플래시 메모리 소자의 뱅크(미도시)내 포함된 다수개의 통상적인 메모리 서브 블록을 의미하며, 워드라인을 공유하는 복수의 페이지(또는 섹터)로 구성될 수 있다. 논리적 어드레스로 선택되는 셀 블록(a)의 페이지(page) 또는 섹터(sector)가 FTL(Flash Translation Layer)에 의해 변환되어 물리적 어드레스로 맵핑된다. 설명의 편의상, 어드레스 맵핑 방법의 하나인 FTL을 예시하나 이에 제한되지 않는다.
물리적 어드레스로 맵핑된 셀 블록(b)을 살펴보면, 데이터 블록(DB) 및 스페어 블록(SB)을 포함한다. 데이터 블록(DB)은 논리적 어드레스와 일대일(1:1) 맵핑되어 데이터가 실질적으로 프로그램되거나 리드되는 영역이다. 스페어 블록(SB)은 데이터 블록(DB)에서 불량 페이지가 발생시 대체될 페이지를 포함하는 영역이다. 이러한 스페어 블록(SB)은 미리 소정 영역을 할당하여 구성될 수 있다.
도 2에 도시된 바와 같이, 데이터 블록(Data Block; DB)의 일부 페이지가 불량이면 불량 발생 블록임을 알리도록 마킹한다. 그리하여, 이 페이지에 대응되도록 스페어 블록(Spare Block; SB)에 데이터를 이동시킨다. 이후, 호스트 인터페이스(도 1의 110 참조)로부터 수신되는 데이터 블록(DB)의 해당(불량) 페이지에 대한 명령에 대해서는 스페어 블록(SB)의 대체된 페이지가 억세스될 수 있다. 이때, 스페어 블록(SB)의 대체된 페이지에도 마킹을 하는데, 이는 스페어 블록(SB)의 페이지가 이미 사용된 점유 블록(Occupied Block; OB)임을 알린다. 따라서, 스페어 블록(SB)내의 마킹된 페이지, 즉 점유 블록(OB)의 수가 할당된 전체 스페어 블록(SB)의 페이지 수와 동일해지면 낸드 플레시 메모리 소자(ND)의 정상적인 동작이 불가능하다. 따라서, 할당된 스페어 영역(SB)의 사용 가능 한계는 낸드 플레시 메모리 소자(ND)의 수명의 주요한 극점(dominant pole)이 될 수 있다. 종래에는 스페어 블록(SB)이 점유 영역(OB)으로 모두 사용되면 사용자가 데이터를 백업할 여유도 없이 갑작스럽게 동작이 중단되므로, 데이터 유실이 빈번히 발생될 수 있었다.
하지만, 본 발명의 일 실시예에 따르면 스페어 영역(SB)의 마킹 영역과 마킹되지 않은 영역, 즉 점유 영역(OB)과 미점유 영역(Unoccupied Block;UB)으로 구분하고 이를 카운팅함으로써 수명을 보다 효율적으로 관리할 수 있다.
이에 대해서는 도 3을 참조하여 자세히 설명하기로 한다.
도 3은 MCU(122)의 개념적인 블록도이다.
도 3을 참조하면, MCU(122)는 검출부(122a), 연산부(122b) 및 감지 신호 생성부(122c)를 포함한다.
검출부(122a)는 스페어 블록(SB)의 상태를 검출하여 초기의 상태를 설정할 수 있다.
보다 구체적으로, 검출부(122a)는 스페어 블록(SB)의 마킹된 블록과 그렇지 않은 블록을 스캐닝(scanning) 하면서 검출할 수 있다. 또한, 초기에 낸드 플래시 메모리 소자(도 1의 ND 참조)의 출하 시점에 스페어 블록(SB)의 상태를 스캐닝하여 공정상의 초기 불량 블록의 수를 설정할 수 있다. 더 나아가, 동작 도중에도 점검 명령(미도시)에 의해 스페어 블록(SB)의 상태를 점검할 수 있다.
다시 말하면, 검출부(122a)는 낸드 플래시 메모리 소자(ND)의 출하 시점에 스페어 블록(SB)의 상태를 스캐닝하여, 스페어 블록(SB) 내의 마킹된 블록, 즉 점유 블록(OB)의 수를 초기치(Initial-value Block; IB)에 셋팅하고, 허용 가능한 대체 블록의 수인 허용 한계치(FULL)를 저장한다. 여기서, 초기치는 낸드 플래시 메모리 소자(ND)의 공정 진행상 발생할 수 있는 초기 불량으로 인해 출하시부터 마킹된 하자가 있는 불량 블록, 즉 초기 마킹된 초기 점유 블록(IB)을 의미한다. 허용 한계치(FULL)는 스페어 블록(SB)으로 미리 할당된 블록의 수로부터 초기의 마킹된 점유 블록(IB)을 감산한 수이다. 이로써, 공정 진행상 발생할 수 있는 불량의 상태를 미리 체크하여 수명 산출의 오류를 방지할 수 있다.
또는, 검출부(122a)는 초기 출하 시점부터의 점유 블록(OB)과 미점유 블록(UB)으로 각각 구분하여 초기치로 설정할 수 있으며, 이들 블록 수의 비로부터 산출비를 소정 환산함으로써 수명 한계비(LIFE)를 설정할 수도 있다.
여기서, 점유 블록(OB)은 전술한 초기치(IB)와 동일한 의미의 공정 진행상에 기인한 초기 불량으로 인한 하자가 있어 마킹된 점유 블록(OB)을 의미한다. 마찬가지로 미점유 블록(UB)은 초기 출하시부터 사용 가능한 마킹 안된 미점유 블록(UB)을 의미한다. 따라서, 스페어 블록(SB)의 마킹 상태를 점검하여 사용 가능한지 스캐닝한 후, 점유 블록(OB)과 미점유 블록(UB)의 초기치를 설정한다. 이에 따라, 수 명 한계비(LIFE)는 점유 블록(OB)과 미점유 블록(UB)의 산출비를 미리 소정 비로 환산한다. 이로써 수명 한계를 예측할 수 있을 소정의 비를 산출한다. 이러한 산출비는 사용자의 의도 및 시스템의 성능 또는 교체 주기에 따라 소정의 변동 범위를 가질 수 있다.
연산부(122b)는 비휘발성 메모리가 장착된 시스템(도 1의 1 참조) 동작시 점유 블록(OB), 미점유 블록(UB)의 수를 카운팅한다.
보다 상세히 설명하면, 비휘발성 메모리 소자가 장착된 시스템(도 1의 1 참조)의 시스템 온(System-on) 시 및 동작 도중, 연산부(122b)는 소정 주기 또는 소정 카운팅 기준으로 점유 블록(OB) 및/또는 미점유 블록(UB)의 수를 계속 카운팅한다. 검출부(122a)에서 검출된 신호를 이용하여 연산부(122b)에서 연산할 수 있다.
여기서의 소정 주기는 사용자에 따라 달라질 수 있다. 예를 들어, 소정 주기는 SLC에서의 프로그램시에는 5000 사이클(cycle) 주기일 수 있으며, MLC의 프로그램에서는 5000 사이클 이하의 주기로 정할 수 있다.
또는, 여기서의 카운팅 기준은 호스트 인터페이스(도 1의 110 참조)로부터 수신한 프로그램 명령의 개수이거나, 타임 스케줄러(time scheduler)에 의한 일정 시간일 수 있다. 본 발명의 일 실시예에서는 일정 주기, 또는 시간별, 카운팅 개수별 어느 하나일 수 있으며 또한 이에 제한되지 않는 다른 방법일 수 있다. 다만, 연산부(122b)의 점유 블록(OB) 또는 미점유 블록(UB)의 상태를 점검 할 수 있는 정도의 소정 주기, 또는 시간이면 가능하며 이를 지원하는 다양한 어느 방법도 제한하지 않는다.
감지 신호 생성부(122c)는 연산부(122b)의 연산 결과가 소정의 임계치 이상인지 판별한다.
예를 들어, 감지 신호 생성부(122c)는 카운팅한 전체 점유 블록(TOT_OB)의 수가 설정된 허용 한계치(FULL) 이상인지 판별함으로써 수명 한계 시점을 감지할 수 있다. 즉, 현재 스페어 블록(SB)의 초기치 및 새로이 카운팅되는 점유 블록(OB)수의 합산이 허용 한계치(FULL)보다 이상인지 판단한다.
이는 다음과 같은 식으로 판단할 수 있다.
[수학식 1]
(전체 점유 블록(TOT_OB)의 수(=초기 점유 블록(IB) + 새로이 카운트되는 점유 블록(OB)의 수)) ≥ 허용 한계치(FULL)
이때, 현재 스페어 블록(SB)의 초기치 및 새로이 카운팅되는 점유 블록(OB)수의 합산이 허용 한계치(FULL)보다 이상이 감지되면, 감지 신호를 발생시킨다. 이후, 감지 신호는 경고 발생부(210)에 전달된다.
또는, 감지 신호 생성부(122c)는 전체 점유 블록(TOT_OB)의 수 및 전체 미점유 블록(TOT_UB) 수의 산출비가 수명 한계비(LIFE) 이상인지를 판단한다.
즉, 현재 마킹된 전체 점유 블록(TOT_OB) 대비 마킹 안된 전체 미점유 블록(TOT_UB)의 비가 수명 한계비(LIFE) 이상인지를 판단한다.
이는 다음과 같은 식으로 판단할 수 있다.
[수학식 2]
(전체 점유 블록(TOT_OB)/미점유 블록(TOT_UB))*100 ≥ 수명 한계비(LIFE)
그리하여, 감지 신호 생성부(122c)는 감지 결과 이상이 있으면 감지 신호를 발생시킨다.
도 4는 본 발명의 일 실시예에 따른 비휘발성 메모리 소자가 장착된 시스템(1)의 제어 방법을 나타낸 플로우 차트이다.
도 1 내지 도 4를 참조하여, 본 발명의 일 실시예에 따른 비휘발성 메모리 소자가 장착된 시스템(1)의 제어 방법을 설명하기로 한다.
초기 출하시, 검출부(122a)는 낸드 플래시 메모리 소자(ND)의 초기치(IB) 및 허용 한계치(FULL)를 셋팅한다(S10).
전술한 바와 같이, 초기 불량으로 인하여 발생되는 점유 블록(OB)의 수를 초기치(IB)로 설정하고, 초기에 할당된 스페어 블록(SB)으로부터 초기치(IB)를 감산한 블록 수를, 불량 페이지를 대체할 허용 한계치(FULL)로서 설정한다.
시스템에 비휘발성 메모리 소자를 장착 후, 연산부(122b)에서 동작 중의 점유 블록(OB)의 수를 카운팅한다(S20).
이때는 소정 주기, 시간, 또는 일정 명령 횟수를 기준으로 카운팅하여 전체 점유 블록(TOT_OB)의 수를 업데이트한다.
보다 상세히 설명하면, 비휘발성 메모리 소자의 사용 중, 소정 주기로 점유 블록(OB)의 수를 계속 카운팅한다. 즉, 프로그램 동작 중 메인 블록(미도시)에서 불량이 발생하면 스페어 블록(SB)내의 어느 한 블록에 데이터를 이동시키고 마킹을 한다. 이로 인해 발생된 불량에 대해 전체 점유 블록(TOT_OB)의 수는 업데이트될 수 있다.
카운팅 한 전체 점유 블록(TOT_OB)의 수가 기 설정된 허용 한계치(FULL) 이상인지 판단한다(S30).
전술한 수학식 1에 의해 현재 스페어 블록(SB)의 초기치(IB) 및 새로이 카운팅되는 점유 블록(OB)수의 합산이 허용 한계치(FULL)보다 이상인지 판단한다.
카운팅한 전체 점유 블록(TOT_OB)의 수가 허용 한계치(FULL) 이상이면 감지 신호를 발생시킨다(S40).
카운팅한 전체 점유 블록(TOT_OB)의 수가 허용 한계치(FULL) 이상이면, 더 이상 비휘발성 메모리 소자가 장착된 시스템(1)의 안정적인 동작을 보장할 수 없으므로 수명의 한계를 감지하고 데이터를 백업(back-up)할 시점임을 경고한다.
경고 시점을 감지하면, 사용자는 데이터를 백업할 시점을 인식하여 데이터를 안전하게 백업할 수 있다.
도 5는 본 발명의 다른 실시예에 따른 비휘발성 메모리 소자가 장착된 시스템(1)의 제어 방법을 나타낸 플로우 차트이다.
도 5에 대해서는 도 4와 다른 점만 자세히 설명하고, 중복되는 설명은 생략하기로 한다.
도 5를 참조하면, 초기 출하시, 검출부(122a)는 낸드 플래시 메모리 소 자(ND)를 스캐닝하여 스페어 블록(SB)의 점유 블록(OB), 미점유 블록(UB), 수명 한계비(LIFE)로 구분하여 설정한다(S10).
다시 말하면, 스페어 블록(SB)의 마킹 상태를 점검하여 사용 가능한지 각각 구분한 후, 점유 블록(OB)과 미점유 블록(UB)의 초기치를 설정한다. 또한, 수명 한계비(LIFE)는 점유 블록(OB)과 미점유 블록(UB)의 산출비를 미리 소정 비로 환산한다.
다음, 시스템에 장착 후, 시스템 온(system 0n)시 및 동작 중의 점유 블록(OB) 및 미점유 블록(UB)의 수를 카운팅한다(S20).
전술한 바와 같이, 데이터 블록(도 2의 DB)에서 불량이 발생하면 마킹되는 불량 블록의 수가 증가할수록 마킹된 점유 블록(OB)의 수가 증가하고, 이에 비례하여 마킹 안된 미점유 블록(UB)의 수는 감소한다. 그리하여, 발생된 불량에 대해 전체 점유 블록(TOT_OB)의 수 및 전체 미점유 블록(TOT_UB)의 수가 업데이트될 수 있다.
다음, 전체 점유 블록(TOT_OB)의 수 및 전체 미점유 블록(TOT_UB) 수의 비를 산출하여 수명 한계비(LIFE) 이상인지를 판별한다(S30).
즉, 현재 마킹된 전체 점유 블록(TOT_OB) 대비 마킹 안된 전체 미점유 블록(TOT_UB)의 비가 수명 한계비(LIFE) 이상인지를 판단한다.
이 때 전체 점유 블록(TOT_OB) 또는 전체 미점유 블록(TOT_UB)는 도 1에 도시된 바와 같이, 메모리 블록(142) 단위로 수행할 수도 있고, 전체 메모리 영역(140)으로 수행할 수도 있다. 그리하여, 상기 산출비가 수명 한계비(LIFE) 미만 이면 피드백되어 계속 메모리 셀 억세스 동작을 진행하며, 동작 중에는 전체 점유 블록(TOT_OB)의 수 및 전체 미점유 블록(TOT_UB) 수의 비를 산출한다. 이때, 판단 시점은 소정 주기일 수 있다.
전체 미점유 블록(TOT_UB)에 대비 전체 점유 블록(TOT_OB)수의 산출비가 수명 한계비(LIFE) 이상이면 감지 신호를 발생시킨다(S40).
경고 시점을 감지하면, 사용자는 데이터를 백업할 시점을 인식하여 데이터를 안전하게 백업한다.
이와 같이, 데이터 블록(도 2의 DB 참조)에서 불량이 발생하면 소정 할당된 스페어 영역(SB)내에 마킹되는 점유 블록(OB), 즉, 사용된 블록의 수가 증가된다. 이를 다르게 해석하면, 시스템 구동 후 시간이 점차 경과되면, 데이터 블록(도 2의 DB 참조)의 불량이 점차 증대되어 미점유 영역(UB)의 수가 점차 감소된다. 이에 따라, 미점유 영역(UB)에 대한 점유 영역(OB)의 비율이 점점 증대된다고 해석할 수 있다. 그러므로, 상기 산출비를 주기적으로 측정함으로써 상기 산출비가 소정의 임계치(여기서는 수명 한계비, 허용 한계치 등)에 도달하였을 때, 사용자에게 사전에 수명 종료를 예고하고, 이로써 시스템 장애전에 미리 데이터를 백업받을 수 있게 된다.
또한, 본 실시예의 시스템의 제어 방법은 수명 측정 방법의 예로서, 상술한 실시예와 같이 소정 주기로 진행될 수도 있고, 혹은 시스템 온(system 0n)시 및 동작 중 일정 시간이 경과할 때마다 진행할 수도 있다. 즉, 사용자의 의도 및 시스템의 성능 또는 교체 주기에 따라 소정의 변동 범위를 가질 수 있다.
이와 같이, 시스템의 데이터를 백업할 시점을 미리 체크할 수 있음으로써 데이터의 안정성 확보는 물론 시스템의 수명 관리를 효율적으로 할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 개념적인 블록도,
도 2는 도 1에 따른 스페어 영역을 포함하는 비휘발성 메모리 소자의 블록도,
도 3은 도 1에 따른 MCU의 블록도,
도 4 는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 제어 방법을 설명하기 위한 플로우 차트, 및
도 5는 본 발명의 다른 실시예에 따른 반도체 스토리지 시스템의 제어 방법을 설명하기 위한 플로우 차트이다.
<도면의 주요 부분에 대한 부호의 설명>
100:SSD 110: 호스트 인터페이스
120:제 1 제어부 130: 제 2 제어부
140:메모리 영역 200: 외부 장치

Claims (27)

  1. 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 스페어 영역을 포함하는 비휘발성 메모리 소자를 구비하여, 상기 스페어 영역내에서의 마킹된 블록 및 마킹안된 블록의 수를 측정하여 상기 비휘발성 메모리 소자의 수명 한계를 감지하는 반도체 스토리지 시스템.
  2. 제 1항에 있어서,
    상기 반도체 스토리지 시스템은,
    상기 비휘발성 메모리 소자의 상기 마킹된 블록인 점유 블록 및 상기 마킹안된 블록인 미점유 블록의 수를 체크하고 임계치를 설정하는 제 1 제어부; 및
    복수개의 상기 비휘발성 메모리 소자가 구비된 메모리 영역을 포함하는 반도체 스토리지 시스템.
  3. 제 2항에 있어서,
    상기 반도체 스토리지 시스템은,
    제어 명령, 어드레스 신호 및 데이터 신호등을 제공하는 상기 제 1 제어부에 제공하는 호스트 인터페이스; 및
    상기 제 1 제어부와 상기 메모리 영역 사이에 개재되어 상기 제 1 제어부로부터 정보를 수신하여 상기 메모리 영역의 상기 비휘발성 메모리 소자의 억세스를 제어하는 제 2 제어부를 더 포함하는 반도체 스토리지 시스템.
  4. 제 2항에 있어서,
    상기 제 1 제어부는,
    상기 스페어 블록의 마킹 상태를 검출하여 상기 스페어 블록의 사용 여부를 체크하는 검출부;
    상기 검출부의 검출 신호를 카운팅하는 연산부; 및
    상기 연산부의 연산 결과가 상기 임계치 이상인지 판단하는 감지 신호 생성부를 포함하는 반도체 스토리지 시스템.
  5. 제 4항에 있어서,
    상기 검출부는,
    상기 스페어 블록을 스캐닝하여 상기 점유 블록, 상기 미점유 블록 및 상기 블록들의 수를 이용하여 산출한 상기 임계치를 설정하는 반도체 스토리지 시스템.
  6. 제 4항에 있어서,
    상기 연산부는 소정 주기, 소정 명령 개수, 소정 시간 단위 중 어느 하나의 기준으로 상기 검출부의 출력 신호를 카운팅하는 반도체 스토리지 시스템.
  7. 제 4항에 있어서,
    상기 감지 신호 생성부는 상기 연산부의 결과가 상기 임계치 이상이면, 수명의 한계를 감지하고 감지 신호를 발생시키는 반도체 스토리지 시스템.
  8. 제 1항에 있어서,
    상기 비휘발성 메모리 소자는 낸드 플래시 메모리 소자인 반도체 스토리지 시스템.
  9. 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 스페어 영역을 포함하는 비휘발성 메모리 소자가 장착되어, 상기 스페어 영역의 사용 가능 여부를 체크함으로써 상기 비휘발성 메모리 소자의 수명 한계를 감지하는 감지 신호를 발생시키는 솔리드 스테이트 드라이브; 및
    상기 감지 신호를 수신하여 데이터 백업 시점을 경고하는 외부 장치를 포함하는 반도체 스토리지 시스템.
  10. 제 9항에 있어서,
    상기 반도체 스토리지 시스템은,
    상기 비휘발성 메모리 소자의 사용 불가능한 점유 블록 및 사용 가능한 미점유 블록의 수를 측정하고 임계치를 설정하는 제 1 제어부; 및
    복수개의 상기 비휘발성 메모리 소자가 구비된 메모리 영역을 포함하는 반도체 스토리지 시스템.
  11. 제 10항에 있어서,
    상기 솔리드 스테이트 드라이브는,
    제어 명령, 어드레스 신호 및 데이터 신호등을 상기 제 1 제어부에 제공하는 호스트 인터페이스; 및
    상기 제 1 제어부와 상기 메모리 영역 사이에 개재되어 상기 제 1 제어부로부터 정보를 수신하여 상기 메모리 영역의 상기 비휘발성 메모리 소자의 억세스를 제어하는 제 2 제어부를 더 포함하는 반도체 스토리지 시스템.
  12. 제 10항에 있어서,
    상기 제 1 제어부는,
    상기 스페어 블록의 마킹 상태를 검출하여 상기 스페어 블록의 사용 여부를 체크하는 검출부;
    상기 검출부의 검출 신호를 카운팅하는 연산부; 및
    상기 연산부의 연산 결과가 상기 임계치 이상인지 판단하는 감지 신호 생성부를 포함하는 반도체 스토리지 시스템.
  13. 제 12항에 있어서,
    상기 검출부는,
    상기 스페어 블록을 스캐닝하여 마킹된 상기 점유 블록, 마킹안된 상기 미점 유 블록 및 상기 블록들의 수를 이용하여 산출한 상기 임계치를 설정하는 반도체 스토리지 시스템.
  14. 제 12항에 있어서,
    상기 연산부는 소정 주기, 소정 명령 개수, 소정 시간 단위 중 어느 하나의 기준으로 상기 검출부의 출력 신호를 카운팅하는 반도체 스토리지 시스템.
  15. 제 12항에 있어서,
    상기 감지 신호 생성부는 상기 연산부의 결과가 상기 임계치 이상이면, 수명의 한계를 감지하고 감지 신호를 발생시키는 반도체 스토리지 시스템.
  16. 제 9항에 있어서,
    상기 외부 장치는,
    상기 솔리드 스테이트 드라이브에 명령어를 제공하거나, 상기 솔리드 스테이트 드라이브로부터 정보를 획득하는 중앙 처리 장치; 및
    상기 중앙 처리 장치의 제어를 받아, 상기 감지 신호에 응답하여 수명 한계를 경고하는 경고 발생부를 포함하는 반도체 스토리지 시스템.
  17. 제 16항에 있어서,
    상기 경고 발생부는 비프음, 진동기, LED(Light Electric Diode) 및 그래픽 화면으로 이루어진 그룹에서 선택된 어느 하나를 포함하는 반도체 스토리지 시스템.
  18. 제 9항에 있어서,
    상기 비휘발성 메모리 소자는 낸드 플래시 메모리 소자인 반도체 스토리지 시스템.
  19. 데이터 블록과 상기 데이터 블록내 불량 발생시 대체되는 셀 영역인 스페어 영역을 포함하는 비휘발성 메모리 소자가 장착된 반도체 스토리지 시스템의 제어 방법에 있어서,
    상기 스페어 영역의 초기 상태를 체크하여 점유 블록의 수, 미점유 블록의 수 및 임계치를 설정하는 단계;
    상기 점유 블록 및 미점유 블록을 카운팅하는 단계; 및
    상기 카운팅 결과가 상기 임계치 이상인지 판단하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  20. 제 19항에 있어서,
    상기 임계치를 설정하는 단계는,
    상기 스페어 영역으로부터 초기의 상기 점유 블록을 감산하여 허용 한계치를 산출하는 반도체 스토리지 시스템의 제어 방법.
  21. 제 20항에 있어서,
    상기 카운팅 단계는,
    상기 데이터 블록내 불량 발생시, 마킹되어 업데이트되는 전체 상기 점유 블록의 수를 카운팅하는 반도체 스토리지 시스템의 제어 방법.
  22. 제 20항에 있어서,
    상기 판단하는 단계는,
    상기 전체 점유 블록의 수가 상기 허용 한계치 이상이면 수명 종료를 경고하는 감지 신호를 발생하고, 그렇지 않으면 다시 상기 카운팅 단계로 피드백되는 반도체 스토리지 시스템의 제어 방법.
  23. 제 19항에 있어서,
    상기 임계치를 설정하는 단계는,
    초기 상태의 상기 스페어 블록내의 사용 가능한 블록의 비를 수명 한계비로서 산출하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.
  24. 제 23항에 있어서,
    상기 산출하는 단계는,
    초기 상태의 상기 미점유 블록 대비 상기 점유 블록의 비를 산출하는 반도체 스토리지 시스템의 제어 방법.
  25. 제 23항에 있어서,
    상기 카운팅 단계는,
    상기 데이터 블록내 불량 발생시, 마킹되어 업데이트되는 전체 상기 점유 블록의 수 및 마킹되지 않은 전체 상기 미점유 블록의 수를 카운팅하는 반도체 스토리지 시스템의 제어 방법.
  26. 제 23항에 있어서,
    상기 판단하는 단계는,
    (상기 전체 점유 블록의 수/ 상기 전체 미점유 블록의 수)*100으로 산출한 비가 상기 수명 한계치 이상이면 수명 종료를 경고하는 감지 신호를 발생하고, 그렇지 않으면 다시 상기 카운팅 단계로 피드백하는 반도체 스토리지 시스템의 제어 방법.
  27. 제 19항에 있어서,
    상기 카운팅 단계는 일정 주기 또는 일정 시간으로 수행하는 반도체 스토리지 시스템의 제어 방법.
KR1020080022204A 2008-03-10 2008-03-10 반도체 스토리지 시스템 및 그 제어 방법 KR20090097050A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080022204A KR20090097050A (ko) 2008-03-10 2008-03-10 반도체 스토리지 시스템 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080022204A KR20090097050A (ko) 2008-03-10 2008-03-10 반도체 스토리지 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20090097050A true KR20090097050A (ko) 2009-09-15

Family

ID=41356564

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080022204A KR20090097050A (ko) 2008-03-10 2008-03-10 반도체 스토리지 시스템 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR20090097050A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841826A (zh) * 2011-06-20 2012-12-26 鑫创科技股份有限公司 行车记录器、闪速存储器装置及其管理方法
US10678473B2 (en) 2018-10-19 2020-06-09 Samsung Electronics Co., Ltd. Storage device and server device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841826A (zh) * 2011-06-20 2012-12-26 鑫创科技股份有限公司 行车记录器、闪速存储器装置及其管理方法
CN102841826B (zh) * 2011-06-20 2016-09-21 鑫创科技股份有限公司 行车记录器、闪速存储器装置及其管理方法
US10678473B2 (en) 2018-10-19 2020-06-09 Samsung Electronics Co., Ltd. Storage device and server device

Similar Documents

Publication Publication Date Title
US11347403B2 (en) Extending the life of a solid state drive by using MLC flash blocks in SLC mode
US9423970B2 (en) Method and system for predicting block failure in a non-volatile memory
US9329797B2 (en) Method and system for adjusting block erase or program parameters based on a predicted erase life
USRE47946E1 (en) Method for determining the exhaustion level of semiconductor memory
US8799747B2 (en) Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
US9846641B2 (en) Variability aware wear leveling
US20170221573A1 (en) End of life prediction based on memory wear
US8560770B2 (en) Non-volatile write cache for a data storage system
US8347024B2 (en) Memory system monitoring data erasing time or writing time
US20160041760A1 (en) Multi-Level Cell Flash Memory Control Mechanisms
US9465537B2 (en) Memory system and method of controlling memory system
US9268657B1 (en) Varying data redundancy in storage systems
US20080313505A1 (en) Flash memory wear-leveling
KR101086876B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
WO2017095499A1 (en) Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US20170160957A1 (en) Efficiently Managing Unmapped Blocks to Extend Life of Solid State Drive
KR20170031052A (ko) 플래시 메모리 디바이스들을 위한 웨어 관리
CN112689829A (zh) 用于就地数据替代媒体的混合式耗损均衡
CN112650443A (zh) 控制非易失性存储器装置的存储控制器的操作方法
JP2012234321A (ja) 記録再生装置
WO2014155228A1 (en) A primary memory module with a record of usage history and applications of the primary memory module to a computer system
KR20090097050A (ko) 반도체 스토리지 시스템 및 그 제어 방법
US10614892B1 (en) Data reading method, storage controller and storage device
JP2016126656A (ja) ストレージ制御装置,制御プログラム及び制御方法
US11238950B1 (en) Reliability health prediction by high-stress seasoning of memory devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application