KR101801147B1 - 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치 - Google Patents

데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치 Download PDF

Info

Publication number
KR101801147B1
KR101801147B1 KR1020110087121A KR20110087121A KR101801147B1 KR 101801147 B1 KR101801147 B1 KR 101801147B1 KR 1020110087121 A KR1020110087121 A KR 1020110087121A KR 20110087121 A KR20110087121 A KR 20110087121A KR 101801147 B1 KR101801147 B1 KR 101801147B1
Authority
KR
South Korea
Prior art keywords
data
parity
raid
page
memory
Prior art date
Application number
KR1020110087121A
Other languages
English (en)
Other versions
KR20130023984A (ko
Inventor
노강호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110087121A priority Critical patent/KR101801147B1/ko
Priority to US13/517,723 priority patent/US9032245B2/en
Publication of KR20130023984A publication Critical patent/KR20130023984A/ko
Application granted granted Critical
Publication of KR101801147B1 publication Critical patent/KR101801147B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치가 개시된다. 데이터 저장 장치에서의 데이터 관리 방법은 데이터가 씌여질 불휘발성 메모리의 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보를 수신하고, 상기 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정한다. 또한, 데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터를 상기 메모리 블록 내의 패리티 페이지에 라이트하는 것이 포함된다. 본 발명의 실시 예에 따르면, 제어 관리 정보에 따라 레이드 패리티 페이지 비율이 선택적으로 결정되므로, 데이터의 신뢰성이 확보되거나 증대된다.

Description

데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치{Data managing method with improved data reliability and therefor data storage device}
본 발명은 반도체 장치에 관한 것으로, 보다 구체적으로 데이터의 신뢰성을 개선할 수 있는 데이터 관리 방법 및 그에 따른 데이터 저장 장치에 관한 것이다.
불휘발성 메모리들 중에서도 플래시 메모리는, 전기적으로 셀의 데이터를 일괄적으로 소거하는 기능을 가지기 때문에, 컴퓨터, SSD(solid state drive/disk), 메모리 카드 등의 메모리로서 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털 카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 플래시 메모리가 데이터 저장 장치에 채용되어 널리 사용되고 있다.
그러한 데이터 저장 장치에서, 데이터의 에러 발생을 줄이기 위한 방법들 로서, 배드 블록 매니지먼트, 웨어 레벨링, 메타 데이터 미러링 등과 같은 기법들이 알려져 있다.
위와 같은 기법들은 특정한 메모리 블록에서 에러가 상대적으로 많이 발생되는 이슈나 데이터 저장 장치의 오랜 사용으로 인해 에러 발생이 증가되는 이슈에 대하여는 효율적인 대책을 가지기 어렵다.
본 발명이 해결하고자 하는 기술적 과제는, 불휘발성 메모리에 저장되는 데이터에 대한 신뢰성을 높일 수 있는 데이터 관리 방법을 제공함에 있다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 에러 발생 빈도가 높거나 소거 횟수가 많은 메모리 블록에 저장되는 데이터에 대한 신뢰성을 효율적으로 보장할 수 있는 데이터 저장 장치를 제공함에 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시 예의 일 양상에 따라, 데이터 저장 장치에서의 데이터 관리 방법은:
데이터가 씌여질 불휘발성 메모리의 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보를 수신하고;
상기 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정하고;
데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터를 상기 메모리 블록 내의 패리티 페이지에 라이트한다.
본 발명에 따른 하나의 실시 예에서, 상기 제어 관리 정보는 상기 메모리 블록의 소거 카운트 값을 포함할 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 제어 관리 정보는 상기 메모리 블록의 에러 발생 빈도 정보를 포함할 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 제어 관리 정보는 상기 데이터의 중요도를 나타내는 호스트 코멘드일 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 제어 관리 정보는 상기 데이터가 사용자 데이터인지 메타 데이터인지를 나타내는 식별 정보일 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 제어 관리 정보는 상기 데이터가 사용자 데이터 인지 스마트 데이터인지를 나타내는 식별 정보일 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 불휘발성 메모리는 낸드 플래시 메모리일 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 패리티 페이지에 라이트되는 상기 패리티 데이터는 레이드 버퍼에 저장되어 있던 상기 데이터의 비교 정보일 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 메모리 블록의 소거 카운트 값이 클 수록 상기 패리티 페이지 비율도 높아질 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 메모리 블록의 에러 발생 빈도가 높을 수록 상기 패리티 페이지 비율도 높아질 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시 예의 다른 양상에 따라, 데이터 저장 장치는,
복수의 페이지들로 구성된 메모리 블록을 복수로 구비하는 불휘발성 반도체 메모리 장치; 및
데이터가 씌여질 상기 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정하고, 데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터가 상기 메모리 블록 내의 패리티 페이지에 라이트되도록 하는 콘트롤러를 구비한다.
본 발명에 따른 하나의 실시 예에서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 메모리 블록에 대한 상기 제어 관리 정보는 상기 메모리 블록의 소거 카운트 값을 포함할 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 메모리 블록에 대한 상기 제어 관리 정보는 상기 메모리 블록의 에러 발생 빈도 정보를 포함할 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 데이터에 대한 상기 제어 관리 정보는 상기 데이터의 중요도를 나타내는 호스트 코멘드일 수 있다.
본 발명에 따른 하나의 실시 예에서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 데이터에 대한 상기 제어 관리 정보는 상기 데이터가 사용자 데이터 인지 메타 데이터 인지를 나타내는 식별 정보일 수 있다.
본 발명의 실시 예적인 구성에 따르면, 제어 관리 정보에 따라 레이드 패리티 페이지 비율이 선택적으로 결정되므로, 데이터의 신뢰성이 확보되거나 증대된다.
도 1은 본 발명의 실시 예에 적용되는 데이터 저장 장치의 블록도,
도 2는 도 1중 콘트롤러의 예시를 보인 구체 블록도,
도 3은 도 1중 스토리지의 예시를 보인 구체 블록도,
도 4는 도 2중 레이드 콘트롤러의 예시적 구체 블록도,
도 5는 본 발명의 실시 예에 적용되는 레이드 기법의 일반적 실행을 보인 도면,
도 6은 도 5에 따른 레이드 기법 적용 시 패리티 데이터의 저장을 보인 도면,
도 7은 도 6에 따라 패리티 페이지의 비율에 따른 에러 확률의 변화를 나타내는 도면,
도 8은 본 발명의 실시 예에 따른 레이드 콘트롤러의 데이터 관리 방식을 보여주는 도면,
도 9는 도 8에 따른 세부적 데이터 관리 제어 흐름도,
도 10은 도 9에서 메모리 블록의 소거 카운트 값을 제어 관리 정보로서 사용하는 예를 보여주는 도면,
도 11은 도 9에서 메모리 블록의 에러 발생 빈도를 제어 관리 정보로서 사용하는 예를 보여주는 도면,
도 12는 도 9에서 메타 데이터를 제어 관리 정보로서 이용하는 예를 보여주는 도면,
도 13은 도 9에서 호스트 코멘드를 제어 관리 정보로서 이용하는 예를 보여주는 도면,
도 14는 데이터 스토리지 장치에 적용된 본 발명의 응용 예를 도시한 블록도,
도 15는 퓨전 메모리 시스템에 적용된 본 발명의 다른 응용 예를 도시한 블록도, 및
도 16은 컴퓨팅 시스템에 적용된 본 발명의 또 다른 응용 예를 도시한 블록도.
위와 같은 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시 예들은, 이해의 편의를 제공할 의도 이외에는 다른 의도 없이, 개시된 내용이 보다 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 소자 또는 라인들이 대상 소자 블록에 연결된다 라고 언급된 경우에 그것은 직접적인 연결뿐만 아니라 어떤 다른 소자를 통해 대상 소자 블록에 간접적으로 연결된 의미까지도 포함한다.
또한, 각 도면에서 제시된 동일 또는 유사한 참조 부호는 동일 또는 유사한 구성 요소를 가급적 나타내고 있다. 일부 도면들에 있어서, 소자 및 라인들의 연결관계는 기술적 내용의 효과적인 설명을 위해 나타나 있을 뿐, 타의 소자나 회로블록들이 더 구비될 수 있다.
여기에 설명되고 예시되는 각 실시 예는 그것의 상보적인 실시 예도 포함될 수 있으며, 데이터 저장 장치에 대한 기본적 동작과 페이지 단위의 라이트에 관한 세부는 본 발명의 요지를 모호하지 않도록 하기 위해 상세히 설명되지 않음을 유의(note)하라.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치의 블록도이다.
도면을 참조하면, 데이터 저장 장치는 저장 매체로서의 스토리지(1000)와 콘트롤러(2000)를 포함한다.
상기 스토리지(1000)는 텍스트, 그래픽, 소프트웨어 코드 등과 같은 다양한 데이터 형태들을 갖는 데이터 정보를 저장하는 데 사용될 수 있다. 상기 스토리지(1000)는, 예를 들면, EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory),MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), OUM(Ovonic Unified Memory)라고도 불리는 PRAM(Phase change RAM), 저항 메모리 (Resistive RAM: RRAM 또는 ReRAM), 나노튜브 RRAM (Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다. 상기 스토리지(1000)를 이루는 메모리 셀들은 각기 1-비트 데이터 또는 2-비트 이상의 데이터를 저장할 수 있다. 그렇지만, 스토리지(1000)에 적용되는 불휘발성 메모리들이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 상기 스토리지(1000)는 도 3과 같이, 복수의 페이지들로 구성된 메모리 블록을 복수로 구비하는 NAND 플래시 메모리일 수 있다.
상기 콘트롤러(2000)는 데이터가 씌여질 상기 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정하고, 데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터가 상기 메모리 블록 내의 패리티 페이지에 라이트되도록 한다. 상기 콘트롤러(2000)는 도 1에서 보여지는 바와 같이, 레이드 블록(111)과 ECC 블록(150)을 구비할 수 있다.
또한, 상기 콘트롤러(2000)는 호스트 등에서 제공되는 외부 요청에 응답하여 스토리지(1000)를 제어할 수 있다. 콘트롤러(2000)는 외부로부터 제공되는 데이터를 압축할 수 있으며 그 압축된 데이터가 상기 스토리지(1000)에 저장되도록 할 수 있다. 데이터 압축 방식은 스토리지(1000)의 효과적인 사용(예를 들면, 낮은 비용으로 많은 양의 데이터를 저장하는 것)을 가능하게 한다. 또한, 데이터 압축 방식은 스토리지(1000)와 콘트롤러(2000) 사이에 연결된 버스(B1)의 트래픽을 감소시킨다.
상기 레이드(Redundant Array of Independent/Inexpensive] Disks(RAID))기법은 알려져 있다. RAID 기법은 중요한 데이터를 보관하는 서버에서 주로 채용되며, 여러 대의 하드디스크가 있을 때 동일한 데이터가 다른 하드디스크에 중복적으로 저장되거나, 데이터의 유실 시 복구를 위해 패리티 정보와 함께 저장된다. 본 발명의 실시 예에서는 라이트되는 데이터의 신뢰성을 증가시키기 위하여 레이드 기법을 이용하되, 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 탄력적으로 결정한다.
비교적 소용량의 메타(meta) 메모리를 탑재한 데이터 저장 장치의 경우에 상기 스토리지(1200)에 저장된 전체 메타 데이터 중 요청된 메타 데이터만이 상기 콘트롤러(2000)의 메타 메모리(버퍼 메모리:RAM)에 로드될 수 있다. 즉, 메타 메모리의 용량 제한에 기인하여 이전의 라이트 데이터에 대응하여 로드되어 있던 메타 데이터는 언로딩되고, 현재의 라이트 데이터에 대응하는 메타 데이터가 로딩될 수 있다.
상기 메타 데이터는 플래시 메모리 등과 같은 스토리지(1000)를 관리하기 위한 중요 데이터로서, 파일 데이터의 이름, 파일 데이터에 관련된 디렉터리의 이름, 파일 데이터에 대한 접근 권한, 및 파일 데이터가 생성된 시각 정보 중 적어도 하나를 포함할 수 있다. 또한, 메타 데이터는 스토리지(1000) 내의 사용 가능한 블록 및 페이지 영역에 대한 상태 정보를 포함할 수 있다.
에러 발생 빈도가 높거나 소거 횟수가 많은 메모리 블록에 저장되는 데이터에 대한 신뢰성을 보장하고, 중요한 데이터를 보다 안전하게 저장하기 위해, 상기 콘트롤러(2000)는 도 2와 같이 구성될 수 있다.
도 2는 도 1중 콘트롤러의 예시를 보인 구체 블록도이다.
도면을 참조하면, 콘트롤러(2000)는 롬(101), 프로세서(105), 내부 인터페이스(103), 버퍼 메모리(160)와 연결되는 버퍼 콘트롤러(109), 레이드 콘트롤러(110), 레이드 버퍼(112), ECC 블록(150), 및 플래시 콘트롤러(140)를 포함할 수 있다.
상기 레이드 콘트롤러(110)와 상기 레이드 버퍼(112)는 도 1의 레이드 블록(111)에 포함된다.
상기 내부 인터페이스(103)는 스토리지(1000) 및 내부의 각 기능블록들과 인터페이싱을 담당하도록 구성될 수 있다.
상기 프로세서(105)는 콘트롤러(2000)의 전반적인 동작을 제어하도록 구성될 수 있다. 예를 들면, 프로세서(105)는 롬(101)에 저장된 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성될 수 있다. 상기 플래시 변환 계층(FTL)은 맵핑 정보를 관리하는 데 사용될 수 있다. 하지만, 플래시 변환 계층(FTL)의 역할이 여기에 개시된 것에 제한되지 않음은 잘 이해될 것이다. 예를 들면, 플래시 변환 계층(FTL)은 스토리지(1000)의 웨어-레벨링(wear-leveling) 관리, 배드 블록 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리 등을 관리하는 데 사용될 수 있다.
상기 버퍼 메모리(160)는 외부에서 전송되는 데이터를 임시로 저장하는 데 사용되거나, 스토리지(1000)에서 전송되는 데이터를 임시로 저장하는 기능을 포함한다.
한편, 도 2에서 피지컬 칩들(108:PHY1~PHYn)은 호스트 인터페이스와 상기 내부 인터페이스(103)간에 접속된다. 피포(FIFO)메모리(107)는 상기 버퍼 콘트롤러(109)와 접속되어 저장되는 데이터를 선입선출하는 역할을 한다.
상기 레이드 콘트롤러(110)와 상기 플래시 콘트롤러(140)는 서로 연결되어, 라이트 동작 모드에서 레이드를 기반으로 하는 라이트 동작이 상기 스토리지(1000)내의 메모리 블록(211)에서 수행되도록 한다.
본 발명의 실시 예에서는 데이터가 씌여질 메모리 블록(도 10의 BLK)에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보에 따라 레이드 패리티 페이지 비율이 우선적으로 결정된다. 따라서, 데이터 라이트 동작 모드가 수행될 시 상기 결정된 레이드 패리티 페이지 비율에 따라 패리티 데이터가 상기 메모리 블록 내의 패리티 페이지(P10,P20,P21,P30,P31,P32)에 라이트된다. 도 2의 경우에 스토리지(1000)내의 하나의 메모리 블록은 참조부호 211로서 나타나 있고, 하나의 페이지는 참조부호 221로서 나타나 있다.
상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 메모리 블록에 대한 상기 제어 관리 정보는 도 10에서 보여지는 바와 같이 상기 메모리 블록의 소거 카운트 값을 포함할 수 있다.
또한, 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 메모리 블록에 대한 상기 제어 관리 정보는 도 11에서 보여지는 바와 같이 상기 메모리 블록의 에러 발생 빈도 정보를 포함할 수 있다.
상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 데이터에 대한 상기 제어 관리 정보는 도 13에서 보여지는 바와 같이 상기 데이터의 중요도를 나타내는 호스트 코멘드일 수 있다.
상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 데이터에 대한 상기 제어 관리 정보는 도 12에서 보여지는 바와 같이 상기 데이터가 사용자 데이터 인지 메타 데이터 인지를 나타내는 식별 정보일 수 있다.
결국, 레이드를 기반으로 하는 라이트 동작 시에, 상기 제어 관리 정보에 따라 몇 페이지 당 하나의 패리티 페이지를 할당할 것인가를 선택적으로 결정하면, 데이터의 신뢰성이 확보되거나 증대되는 것이다.
상기 스토리지(1000)가 낸드(NAND) 타입 플래시 메모리인 경우에 도 3과 같은 메모리 셀들로 구성된 메모리 블록 구성을 가질 수 있다.
도 3은 도 1중 스토리지의 예시를 보인 구체 블록도이다.
도면을 참조하면, 상기 스토리지(1000)가 다양한 불휘발성 메모리 장치(NVM)중 플래시 메모리로 구성된 예가 나타나 있다.
플래시 메모리는, 메모리 셀 어레이(210), 로우 디코더(220), 페이지 버퍼(230), I/O 버퍼(240), 콘트롤 로직(250), 및 전압 발생기(260)를 포함한다.
상기 메모리 셀 어레이(210)는 비트 라인 및 워드 라인에 연결되는 복수의 메모리 셀들을 포함한다. 상기 메모리 셀 어레이(210)는 라이트(프로그램) 데이터의 메시지 필드가 저장되는 메인 영역(Main area)과 메시지 필드의 제어 정보가 저장되는 스페어 영역을 포함한다. 하나의 워드 라인에 연결되는 메모리 셀들에는 라이트 데이터가 복수의 페이지로 저장될 수 있다. 특히, 멀티 레벨 셀들을 포함하는 메모리 장치에서, 하나의 워드 라인에 연결되는 메모리 셀들에는 라이트 데이터가 복수의 페이지로 저장된다.
상기 로우 디코더(220)는 일반적으로 행 어드레스(Row Address)에 응답하여 워드 라인을 선택한다. 로우 디코더(220)는 전압 발생기(260)로부터 제공되는 각종 워드 라인 전압(Vpgm, Vrd 등)을 선택된 워드 라인들로 전달한다. 프로그램 동작시, 선택 워드 라인(Selected WL)으로는 프로그램 전압(Vpgm; 약 15~20V)과 검증 전압(Vfy)을, 비선택 워드 라인(Unselected WL)으로는 패스 전압(Vpass)을 전달한다. 독출 동작 시, 로우 디코더(220)는 전압 발생기(260)로부터 제공되는 읽기 전압(Vrd)을 선택된 워드 라인으로, 읽기 전압(Vread, 약 5V)를 비선택 워드 라인으로 제공한다.
상기 페이지 버퍼(230)는 동작 모드에 따라 기입 드라이버(Write driver)로서 또는 감지 증폭기(Sense amplifier)로서 동작한다. 예를 들면, 페이지 버퍼(230)는 읽기 동작 모드에서 감지 증폭기로서 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다. 상기 페이지 버퍼(230)는 프로그램 동작시 하나의 페이지 단위의 데이터를 로드할 수 있다. 즉, 페이지 버퍼(230)는 프로그램될 데이터를 입출력 버퍼(240)를 통해 수신하여 내부의 래치에 저장할 수 있다. 페이지 버퍼(230)는 로드된 데이터를 라이트(프로그램)하는 동작시, 프로그램되는 메모리 셀들의 비트 라인으로 접지 전압(예를 들면, 0V)을 제공한다. 그리고 페이지 버퍼(230)는 프로그램 금지(Program inhibit)되는 메모리 셀들의 비트 라인으로 프리차지 전압(예를 들면, Vcc)을 공급한다.
I/O 버퍼(240)는 입출력 핀(I/O Pin)을 통해서 입력되는 어드레스 또는 라이트 데이터 등을 일시 저장한다. I/O 버퍼(240)는 저장된 어드레스를 어드레스 버퍼(미도시됨)로, 프로그램 데이터는 페이지 버퍼(230)로, 그리고 명령어(코멘드)는 명령어 레지스터(미도시됨)로 전달한다. 읽기 동작시, 페이지 버퍼(230)로부터 제공되는 독출 데이터는 I/O 버퍼(240)를 통해서 외부로 출력된다.
콘트롤 로직(250)은 프로그램 동작시, 콘트롤러(2000)로부터 제공된 명령어(CMDi)를 수신하고 프로그램 데이터가 선택된 메모리 셀에 기입되도록 하기 위해 상기 페이지 버퍼(230) 및 전압 발생기(260)를 제어한다. 또한, 콘트롤 로직(250)은 콘트롤러(2000)의 명령어에 응답하여 선택된 셀 영역의 데이터가 독출(리드)될 수 있도록 상기 페이지 버퍼(230) 및 전압 발생기(260)를 제어한다.
도 2의 레이드 콘트롤러(110)의 세부 구성은 도 4와 같이 예시적으로 구현될 수 있다.
도 4는 도 2중 레이드 콘트롤러의 예시적 구체 블록도이다.
도 4를 참조하면, 레이드 콘트롤러(110)는 콘트롤 로직(112)과 복수의 RAID 레벨 로직들(114, 116, 및 120)을 포함할 수 있다. 상기 콘트롤 로직(112)과 복수의 RAID 레벨 로직들(114, 116, 및 120)은 하드웨어로 구현될 수 있고, 소프트웨어가 임베디드된(embeded) 하드웨어로 구현될 수도 있다.
상기 복수의 RAID 레벨 로직들(114, 116, 및 120) 각각은 서로 다른 RAID 레벨을 지원할 수 있다. 상기 서로 다른 RAID 레벨은 하나의 RAID 레벨 또는 두 개 이상의 RAID 레벨들이 병합된 RAID 레벨일 수 있다.
상기 복수의 RAID 레벨 로직들(114, 116, 및 120) 각각은 입력단(IN)을 통해 수신된 입력 데이터와 입력 어드레스를 자신의 RAID 레벨에 적합하도록 변환하고 변환된 데이터와 변환된 어드레스를 도 2의 플래시 콘트롤러(140)로 전송할 수 있다. 따라서, 플래시 콘트롤러(140)는 변환된 데이터(DATA)와 변환된 어드레스를 받아 적어도 하나의 웨이(WAY)를 억세스할 수 있다.
예컨대, 제1 RAID 레벨 로직(114)은 RAID 레벨 1을 지원하기 위한 로직, 제2 RAID 레벨 로직(116)은 RAID 레벨 3이나 RAID 레벨 5을 지원하기 위한 로직, 그리고 마지막 RAID 레벨 로직(120)은 RAID 레벨 0+1을 지원하기 위한 로직으로 구현될 수 있다.
억세스 동작시 프로세서(105)는 호스트로부터 출력된 억세스 명령에 응답하여 ROM(101)에 저장된 RAID 레벨 정보(R1)를 리드한다. 상기 프로세서(105)는 리드된 RAID 레벨 정보(R1)를 RAID 콘트롤러(110)의 콘트롤 로직(112)으로 전송할 수 있다. 따라서, 콘트롤 로직(112)은 어드레스(ADD)와 RAID 레벨 정보(R1)에 따라 RAID 레벨 로직들(114, 116, 및 120) 중에서 하나를 인에이블 시킬 수 있다.
본 발명의 실시 예에서는 RAID 레벨 로직들 중 하나가 선택될 경우에, 상기 제어 관리 정보에 따라 패리티 페이지의 할당 비율이 가변된다. 예를 들어, 도 10에서 소거 횟수가 가장 많은 메모리 블록에 대하여는 패리티 페이지(P)가 3페이지(P30,P31,P32)로서 할당되고, 소거 횟수가 가장 적은 메모리 블록에 대하여는 패리티 페이지(P)가 1페이지(P10)로서 할당된다.
본 발명에 대한 보다 철저한 이해를 돕기 위한 의도 이외에는 다른 의도 없이, 불휘발성 메모리에 저장되는 데이터에 대한 신뢰성 확보 또는 증대가 수행되는 근거를 설명하기 위해, 이하에서 도 5 내지 도 7이 예시적으로 참조될 것이다.
도 5는 본 발명의 실시 예에 적용되는 레이드 기법의 일반적 실행을 보인 도면이고, 도 6은 도 5에 따른 레이드 기법 적용 시 패리티 데이터의 저장을 보인 도면이다. 또한, 도 7은 도 6에 따라 패리티 페이지의 비율에 따른 에러 확률의 변화를 나타내는 도면이다.
도 5에서 보여지는 바와 같이, 데이터 저장 공간으로서 페이지들(P1,P2,P5)을 가지는 NAND 플래시 메모리의 경우에 상대적으로 저렴하게 대용량 저장장치가 제공될 수 있다. 그러나 데이터 에러(Error)가 발생하는 빈도가 DRAM 등의 타의 메모리에 비해 높은 편이다. 그러므로 데이터를 라이트할 때, ECC 블록을 이용한다. 그럼에도 불구하고 ECC 블록이 보증하는 범위를 넘어서 에러가 발생되는 경우가 흔하다. 데이터 에러가 중요한 사용자 데이터에 대해 발생되거나 파일 시스템(File System)데이터나 FTL의 맵핑(Mapping)에서 발생되면, 복구가 어렵게 된다.
데이터의 에러 발생을 줄이기 위한 방법들로서, 배드 블록 매니지먼트(Bad Block Management), 웨어 레벨링(Wear-Leveling), 메타 데이터 미러링(Meta Data Mirroring) 등과 같은 기법들이 알려져 있다.
위와 같은 기법들은 특정한 메모리 블록에서 에러가 상대적으로 많이 발생되는 이슈나 데이터 저장 장치의 오랜 사용으로 인해 에러 발생이 증가되는 이슈에 대하여는 대처가 어렵다.
따라서, 본 발명의 실시 예에서는 도 5와 같은 레이드 동작 시에 제어 관리 정보에 따라 패리티 페이지의 할당 비율이 탄력적으로 조절되도록 한다.
도 5를 참조하면, SRAM이나 DRAM으로 이루어진 버퍼 메모리(160)와, 레이드 버퍼(112), 및 스토리지(1000)가 간략하게 나타나 있다. 도 5에서, 버퍼 메모리(160)의 제1 영역(BF1)에 저장된 데이터(DT1)는 경로(PT1)를 따라 스토리지(1000)의 특정 메모리 블록 내의 제1 페이지(P1)에 라이트된다. 또한, 버퍼 메모리(160)의 제2 영역(BF2)에 저장된 데이터(DT2)는 경로(PT2)를 따라 스토리지(1000)의 특정 메모리 블록 내의 제2 페이지(P2)에 라이트된다.
한편, 레이드 콘트롤러(110)의 동작에 따라, 레이드 버퍼(112)의 저장영역(B2)에는 상기 데이터(DT1)와 데이터(DT2)의 배타적 논리합 게이팅 정보 (XOR정보)가 저장된다. 일정한 주기가 도래하거나 콘트롤러(또는 펌웨어)가 명령을 발하면, 레이드 버퍼(112)의 저장영역(B4)에 들어 있던 XOR정보가 스토리지(1000)의 패리티 페이지(P5)에 저장된다.
여기서, 상기 패리티 페이지(P5)는 도 5에서와 같이 상기 데이터(DT1,DT2,DT3,DT4)가 저장되는 메모리 블록과 동일한 블록일 수도 있지만, 타의 메모리 블록이나 다른 공간에 저장될 수 있다.
위와 같은 레이드 기법을 이용한 라이트 동작에 따르면, 페이지 1, 2, 3, 4 중 어느 하나의 페이지에서 에러가 발생하더라도, 데이터가 복원될 수 있다.
여기서, RAID에서 생성되는 패리티 데이터(Parity Data)를 저장하는 빈도를 조절하면, 데이터의 안정성 또는 신뢰성도 그에 따라 변하는 것을 알 수 있다.
예를 들어, 페이지의 에러 확률이 10-6이라고 하면 레이드 패리티 페이지의 비율에 따라 에러의 발생 확률이 도 7에서 보여지는 바와 같이 변하게 된다.
도 7을 참조하면, 5개의 메모리 블록들(71,72,73,74,75)이 보여진다. 메모리 블록(72)의 경우에는 메모리 블록(71)에 비해 128 페이지 마다 하나의 패리티 페이지(PA1)가 마련된 경우이다. 이 경우에 에러의 발생 확률은 1/1230으로 감소된다. 한편, 메모리 블록(73)의 경우에는 128 페이지 마다 2개의 패리티 페이지 (PA2,PA3)가 적용되어, 에러의 발생 확율이 1/4960으로 감소된다. 이와 같이 패리티 페이지를 많이 구현할수록 에러 발생 확률은 급격히 감소됨을 알 수 있다.
본 발명의 실시 예에서 레이드 패리티 페이지 비율은 상기 제어 관리 정보에 따라 결정된다.
한편, 도 6을 참조하면, 도 5에 따른 레이드 기법 적용 시 패리티 데이터의 저장의 예가 나타나 있다. 도 6의 경우에는 플래시 콘트롤러(140)가 레이드 콘트롤러(110)로부터 인가되는 RAID 레벨 5(Striped set with distributed parity or interleave parity)에 따라 유우저 데이터(UD)와 패리티 데이터(PD)를 채널별로 저장한 예가 나타나 있다. 여기서, 패리티 데이터는 데이터의 비교 정보인 XOR 정보로서 이루어져 있다.
도 6과 같은 RAID 레벨 5의 컨피겨레이션 이외에도, RAID 레벨 0(Striped set without parity or Striping), RAID 레벨 1(Mirrored set without parity or Mirroring), RAID 레벨 2(Hamming code parity), RAID 레벨 3(Striped set with dedicated parity, bit interleaved parity, or byte level parity), RAID 레벨 4(Block level parity), RAID 레벨 6(Striped set with dual distributed parity), RAID 레벨 7, RAID 레벨 10, 및 RAID 레벨 53 중에서 어느 하나의 컨피겨레이션이 구현될 수 있다. 또한, 상기 RAID 레벨들 중에서 적어도 2개를 혼합한(merged) RAID 레벨(예컨대, RAID 0+1, RAID 1+0, RAID 5+0, RAID 5+1, 또는 RAID 0+1+5)의 컨피겨레이션이 구현될 수 있다.
이제 도 8을 참조하여 본격적으로 본 발명의 실시 예가 설명될 것이다.
도 8은 본 발명의 실시 예에 따른 레이드 콘트롤러의 데이터 관리 방식을 보여주는 도면이다. 도 9는 도 8에 따른 세부적 데이터 관리 제어 흐름도이고, 도 10은 도 9에서 메모리 블록의 소거 카운트 값을 제어 관리 정보로서 사용하는 예를 보여주는 도면이며, 도 11은 도 9에서 메모리 블록의 에러 발생 빈도를 제어 관리 정보로서 사용하는 예를 보여주는 도면이다. 또한, 도 12는 도 9에서 메타 데이터를 제어 관리 정보로서 이용하는 예를 보여주는 도면이고, 도 13은 도 9에서 호스트 코멘드를 제어 관리 정보로서 이용하는 예를 보여주는 도면이다.
먼저, 도 8을 참조하면, 레이드 콘트롤러(110)의 데이터 관리 방식에 대한 개략적 제어 수순이 보여진다.
레이드 콘트롤러(110)는 단계 80에서 데이터가 씌여질 불휘발성 메모리의 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보를 수신하고, 단계 81에서 레이드 방식을 결정한다. 여기서, 레이드 방식은 레이드 패리티 페이지 비율을 결정하는 것을 의미한다. 즉, 복수의 RAID 레벨 중에서 하나가 선택되면, 레이드 패리티 페이지 비율이 상기 제어 관리 정보에 따라 결정되는 것이다.
상기 제어 관리 정보에 따라 레이드 패리티 페이지 비율이 결정되면, 단계 82에서 레이드 기반의 라이트 동작이 실행된다. 이 때 메모리 블록 내의 패리티 페이지에는 레이드 버퍼(112)에 저장되어 있던 패리티 데이터가 라이트된다.
도 8에 따른 세부적 데이터 관리 제어 흐름을 보여주는 도 9를 참조한다.
도 9에서 단계 S900은 초기화가 실행되는 단계이다. 각종 버퍼나 메모리에 대한 초기화가 수행된 다음, 단계 S901에서 레이드 콘트롤의 유무가 체크된다. 상기 단계 S901의 패스는 데이터의 신뢰성을 중요시할 경우에 외부의 옵션이나 사용자의 선택 또는 자동 실행 프로그램 수행에 의해 이루어질 수 있다.
단계 S902에서 데이터가 씌여질 불휘발성 메모리의 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보를 수신된다.
상기 메모리 블록에 대한 제어 관리 정보는 상기 메모리 블록의 소거 카운트 값이나, 상기 메모리 블록의 에러 발생 빈도 정보가 될 수 있다.
상기 데이터에 대한 제어 관리 정보는 상기 데이터의 중요도를 나타내는 호스트 코멘드이거나, 상기 데이터가 사용자 데이터 인지 메타 데이터인지를 나타내는 식별 정보일 수 있다. 또한, 상기 데이터에 대한 제어 관리 정보는 상기 데이터가 사용자 데이터 인지 스마트 데이터인지를 나타내는 식별 정보일 수 있다.
단계 S903에서 상기 제어 관리 정보에 따라 레이드 패리티 페이지 비율이 결정된다. 즉, 몇 페이지 마다 패리티 데이터를 플래시 메모리의 페이지에 라이트할 것인 지가 결정된다.
단계 S904에서 입력 데이터가 선택된 메모리 블록의 선택된 페이지에 라이트된다. 또한, 패리티 데이터는 도 5의 레이드 버퍼(112)의 저장영역(B1)에 라이트된다.
단계 S905에서 데이터 페이지의 라이트 횟수가 K(K=2이상의 자연수)번 이하인지의 유무가 체크된다. 여기서 128 페이지 마다 2개의 패리티 페이지를 가지도록 할 경우에 상기 K는 64가 된다. 결국, 패리티 데이터는 상기 데이터 페이지의 라이트 횟수가 64번이 되기 이전까지는 도 5의 레이드 버퍼(112)의 저장영역(B4)에 저장 및 유지된다.
단계 S906에서 메모리 블록내의 마지막 페이지가 아닌 경우에는 또 다른 데이터가 다음 페이지에 라이트되도록 하기 위해 단계 S904의 동작이 다시 실행된다.
상기 단계 S905에서 상기 데이터 페이지의 라이트 횟수가 K번이 되면, 단계 S907에서 메모리 블록의 패리티 페이지에 패리티 데이터를 저장하는 레이드 동작이 실행된다. 결국, 데이터 라이트 동작 모드가 수행될 시 상기 단계 S907에 의해 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터가 라이트된다.
단계 S908은 패리티 데이터의 라이트가 끝나면 레이드 버퍼를 리셋하는 단계이다.
도 10을 참조하면, 메모리 블록의 소거 카운트 값에 따라 패리티 데이터가 라이트된 예가 보여진다. 소거 카운트 값(EC)이 5k(k=킬로)인 메모리 블록은 소거 카운트 값(EC)이 1k(k=킬로)인 메모리 블록에 비해 에러 확률이 높으므로, 패리티 페이지들(P30,P31,P32)에서 보여지는 바와 같이, 더 많은 패리티 페이지가 존재하게 된다. 결국, 소거 카운트가 높을수록 메모리 셀은 불안정하게 될 수 있기 때문에 이를 반영하여 패리티 페이지의 수를 조절하는 것이다.
도 11을 참조하면, 메모리 블록의 에러 발생 빈도에 따라 패리티 데이터가 라이트된 예가 보여진다. 1000회의 에러 발생이 있었던 메모리 블록은 100회의 에러 발생이 있었던 메모리 블록에 비해 향후의 에러 확률이 높다고 할 수 있다. 따라서, 1000회의 에러 발생이 있었던 메모리 블록에 할당된 패리티 페이지들(P30,P31,P32)에서 보여지는 바와 같이, 상대적으로 더 많은 패리티 페이지가 존재하게 된다. 결국, 에러 발생 빈도가 높을수록 메모리 셀은 불안정하게 될 수 있기 때문에 이를 파라메터로서 반영하여 패리티 페이지의 수를 조절하는 것이다.
한편, 입력되는 데이터가 메타 데이터인 경우에 일반의 유우저 데이터보다 중요하게 관리되어야 한다. 그러므로, 도 12에서 보여지는 바와 같이 메타 데이터가 라이트 데이터로서 인가되는 경우에, 유우저 데이터에 비해 패리티 페이지 수가 보다 많이 할당된다.
도 13을 참조하면, 호스트 코멘드가 어떤 코멘드냐에 따라 패리티 페이지 수가 조절되는 것이 보여진다. 호스트 코멘드가 화살부호 AR2에서 보여지는 바와 같이 FAT 데이터의 라이트 임을 나타날 때 메모리 블록(BLK)내의 패리티 페이지들(P10,P11)에는 패리티 데이터가 라이트된다. 결국, 호스트 코멘드에 근거하여 중요한 데이터의 저장이 요구될 때에는 패리티 페이지의 수가 늘어나게 되는 것이다.
상술한 바와 같이, 제어 관리 정보에 따라 레이드 패리티 페이지 비율이 선택적으로 결정되므로, 데이터의 신뢰성이 확보되거나 증대된다.
도 14는 데이터 스토리지 장치에 적용된 본 발명의 응용 예를 보여준다.
도면을 참조하면, 데이터 스토리지 장치(500)는 불휘발성 메모리 장치(520)와 메모리 콘트롤러(510)를 포함한다.
불휘발성 메모리 장치(520)는 도 3에서 설명된 바와 같은 플래시 메모리로 구현될 수 있다.
메모리 콘트롤러(510)는 메모리 인터페이스(515)를 통해 불휘발성 메모리 장치(520)를 제어한다. 상기 불휘발성 메모리 장치(520)와 메모리 콘트롤러(510)의 결합 구성에 의해 메모리 카드 또는 반도체 디스크 장치(Solid State Disk: SSD)가 제공될 수 있다.
메모리 콘트롤러(510)내의 SRAM(511)은 센트럴 프로세싱 유닛(512)의 동작 메모리로서 사용된다. 호스트 인터페이스(513)는 데이터 스토리지 장치(500)와 호스트간의 인터페이싱을 담당하며, 데이터 교환 프로토콜을 구비할 수 있다.
에러 정정 블록(514)은 호스트로부터 수신된 데이터나 불휘발성 메모리 장치(520)로부터 리드된 데이터에 포함될 수 있는 에러를 검출 및 정정한다.
메모리 인터페이스(515)는 불휘발성 메모리 장치(520)와의 인터페이싱을 담당한다.
상기 센트럴 프로세싱 유닛(512)은 메모리 콘트롤러(510)의 데이터 교환을 위한 제반 제어 동작을 수행한다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(500)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 이나 불휘발성 RAM 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한자들에게 자명하다.
한편, 상기 불휘발성 메모리 장치(520)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다.
상기 메모리 콘트롤러(510)는, 상기 불휘발성 메모리 장치(520)가 복수의 페이지들로 구성된 메모리 블록을 복수로 구비할 경우에, 상기 CPU(512)내에 펌웨어 또는 소프트웨어에 의해, 데이터가 씌여질 상기 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정한다. 그리고, 데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터가 상기 메모리 블록 내의 패리티 페이지에 라이트되도록 한다.
상기 데이터 스토리지 장치(500)는 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 선택적으로 결정할 수 있으므로, 저장되는 데이터의 저장 안정성이 우수하여 데이터의 신뢰성이 보증된다.
최근 활발히 연구되고 있는 반도체 디스크 장치(Solid State Disk: 이하 SSD)와 같은 데이터 스토리지 장치는 메타 데이터를 저장하는 도 3과 같은 플래시 메모리를 구비할 수 있다. 이 경우, 메모리 콘트롤러(510)는 μSB, MMC, PCI-E, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 수 있다.
도 15는 퓨전 메모리 시스템에 적용된 본 발명의 다른 응용 예를 보인 것이다.
퓨전 메모리 장치나 퓨전 메모리 시스템으로서 원낸드 플래시 메모리 장치(600)가 적용될 수 있다.
원낸드 플래시 메모리 장치(600)는 서로 다른 프로토콜을 사용하는 장치와의 각종 정보 교환을 위한 호스트 인터페이스(610)와, 메모리 장치를 구동하기 위한 코드를 내장하거나 데이터를 일시적으로 저장하는 버퍼 램(620)과, 외부에서 주어지는 제어 신호와 명령어에 응답하여 읽기와 프로그램 및 모든 상태를 제어하는 콘트롤러(630)와, 명령어와 어드레스, 메모리 장치 내부의 시스템 동작 환경을 정의하는 설정(Configuration) 등의 데이터를 저장하는 레지스터(640), 및 불휘발성 메모리 셀과 페이지 버퍼를 포함하는 낸드 플래시 셀 어레이(650)를 포함할 수 있다.
호스트로부터의 요청에 응답하여 원낸드 플래시 메모리 장치(600)는 본 발명의 실시 예에 따른 안정적인 데이터 라이트 동작을 수행할 수 있다.
상기 콘트롤러(630)는, 상기 낸드 플래시 셀 어레이(650)가 복수의 페이지들로 구성된 메모리 블록을 복수로 구비할 경우에, 내부적으로 마련되어 있는 펌웨어 또는 소프트웨어에 의해, 제어 관리 정보에 따른 레이드 패리티 페이지 비율을 결정하고, 그에 따라 패리티 데이터가 메모리 블록 내의 패리티 페이지에 라이트되도록 한다.
마찬가지로, 상기 원낸드 플래시 메모리 장치(600)는 다양한 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 선택적으로 조절할 수 있으므로, 저장되는 데이터의 저장 안정성이 우수하게 된다.
도 16은 컴퓨팅 시스템에 적용된 본 발명의 또 다른 응용 예가 나타나 있다.
도면을 참조하면, 컴퓨팅 시스템(700)은 시스템 버스(760)에 전기적으로 연결된 CPU(720), RAM(730), 사용자 인터페이스(740), 베이스밴드 칩셋(Baseband chipset)의 기능을 포함하는 모뎀(750), 및 메모리 콘트롤러(711)와 플래시 메모리(712)를 구비하는 메모리 시스템(710)을 포함할 수 있다.
상기 메모리 시스템(710)은 도 14 또는 도 15에 도시된 구성과 실질적으로 동일 또는 유사하게 구성될 수 있다.
상기 컴퓨팅 시스템(700)이 모바일 장치인 경우, 컴퓨팅 시스템(700)의 동작 전압을 자체적으로 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 수 있다.
모바일 장치의 경우에 멀티 프로세싱 동작을 위해 상기 CPU(720)는 멀티 프로세서의 타입으로서 탑재될 수 있다. 그러한 경우에 각 프로세서마다 RAM(730)을 각기 대응 설치하는 것은 회피된다. 따라서, RAM(730)은 프로세서들에 의해 공유적으로 사용될 수 있도록 멀티 포트 및 공유 메모리 영역을 내부적으로 가질 수 있다. 이러한 것은 모바일 단말기의 콤팩트화가 제품 경쟁력에 큰 영향을 미치는 요인들 중의 하나이기 때문이다.
상기 메모리 콘트롤러(711)는 데이터가 씌여질 상기 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정할 수 있다. 또한, 데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터가 상기 메모리 블록 내의 패리티 페이지에 라이트되도록 한다.
따라서, 컴퓨팅 시스템(700)은 메모리 블록의 소거 횟수나 에러 발생 빈도와 같은 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 선택적으로 결정할 수 있으므로, 저장되는 데이터의 신뢰성이 보증된다.
비록 도면에는 도시되지 않았지만, 상기 컴퓨팅 시스템(700)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 가진 자에게 자명하다. 메모리 시스템(710)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)로 구현될 수 있다. 또는, 메모리 시스템(710)은, 퓨전 플래시 메모리(예를 들면, 원낸드 플래시 메모리)로 제공될 수 있다.
상기 플래시 메모리 그리고/또는 메모리 콘트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 플래시 메모리 그리고/또는 메모리 콘트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등의 패키지로서 패키지화될 수 있다.
이상에서와 같이 도면과 명세서를 통해 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 사안이 다른 경우에 본 발명의 기술적 사상을 벗어남이 없이, 다양한 제어 관리 정보를 파라메타로서 두고 이에 따라 레이드 패리티 페이지 비율을 세밀하게 또는 러프하게 결정할 수 있을 것이다.
*도면의 주요 부분에 대한 부호의 설명*
1000: 스토리지
2000: 콘트롤러
110: 레이드 콘트롤러

Claims (10)

  1. 데이터 저장 장치에서의 데이터 관리 방법에 있어서:
    데이터가 씌여질 불휘발성 메모리의 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보를 수신하고;
    상기 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정하고;
    데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터를 상기 메모리 블록 내의 패리티 페이지에 라이트하는 것을 포함하고,
    상기 패리티 데이터를 라이트하는 것은,
    상기 레이드 패리티 페이지 비율에 기초하여 몇 페이지 마다 패리티 데이터를 상기 메모리 블록 내의 패리티 페이지에 라이트할 것인지를 결정하는 패리티 페이지 결정횟수를 계산하고;
    데이터 페이지의 라이트 횟수가 상기 패리티 페이지 결정 횟수보다 작거나 같은 지를 체크하고;
    상기 패리티 데이터의 라이팅 완료에 응답하여 상기 데이터 페이지의 라이트 횟수를 리셋하는 것을 포함함을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 제어 관리 정보는 상기 메모리 블록의 소거 카운트 값을 포함함을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 제어 관리 정보는 상기 메모리 블록의 에러 발생 빈도 정보를 포함함을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 제어 관리 정보는 상기 데이터의 중요도를 나타내는 호스트 코멘드임을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 제어 관리 정보는 상기 데이터가 사용자 데이터 인지 메타 데이터인지를 나타내는 식별 정보임을 특징으로 하는 방법.
  6. 복수의 페이지들로 구성된 메모리 블록을 복수로 구비하는 불휘발성 반도체 메모리 장치; 및
    데이터가 씌여질 상기 메모리 블록에 대한 제어 관리 정보나 상기 데이터에 대한 제어 관리 정보에 따라 레이드 패리티 페이지 비율을 결정하고, 데이터 라이트 동작 모드가 수행될 시 상기 레이드 패리티 페이지 비율에 따라 패리티 데이터가 상기 메모리 블록 내의 패리티 페이지에 라이트되도록 하는 콘트롤러를 구비하며,
    상기 콘트롤러는 상기 패리티 데이터가 라이트되도록 할 때,
    상기 레이드 패리티 페이지 비율에 기초하여 몇 페이지 마다 패리티 데이터를 상기 메모리 블록 내의 패리티 페이지에 라이트할 것인지를 결정하는 패리티 페이지 결정횟수를 계산하고;
    데이터 페이지의 라이트 횟수가 상기 패리티 페이지 결정 횟수보다 작거나 같은 지를 체크하고;
    상기 패리티 데이터의 라이팅 완료에 응답하여 상기 데이터 페이지의 라이트 횟수를 리셋하는 것을 포함함을 특징으로 하는 데이터 저장 장치.
  7. 제6항에 있어서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 메모리 블록에 대한 상기 제어 관리 정보는 상기 메모리 블록의 소거 카운트 값을 포함함을 특징으로 하는 데이터 저장 장치.
  8. 제6항에 있어서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 메모리 블록에 대한 상기 제어 관리 정보는 상기 메모리 블록의 에러 발생 빈도 정보를 포함함을 특징으로 하는 데이터 저장 장치.
  9. 제6항에 있어서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 데이터에 대한 상기 제어 관리 정보는 상기 데이터의 중요도를 나타내는 호스트 코멘드임을 특징으로 하는 데이터 저장 장치.
  10. 제6항에 있어서, 상기 콘트롤러가 상기 레이드 패리티 페이지 비율을 결정하는데 이용되는 상기 데이터에 대한 상기 제어 관리 정보는 상기 데이터가 사용자 데이터 인지 메타 데이터인지를 나타내는 식별 정보임을 특징으로 하는 데이터 저장 장치.

KR1020110087121A 2011-08-30 2011-08-30 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치 KR101801147B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110087121A KR101801147B1 (ko) 2011-08-30 2011-08-30 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US13/517,723 US9032245B2 (en) 2011-08-30 2012-06-14 RAID data management method of improving data reliability and RAID data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110087121A KR101801147B1 (ko) 2011-08-30 2011-08-30 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치

Publications (2)

Publication Number Publication Date
KR20130023984A KR20130023984A (ko) 2013-03-08
KR101801147B1 true KR101801147B1 (ko) 2017-11-27

Family

ID=47745436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110087121A KR101801147B1 (ko) 2011-08-30 2011-08-30 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치

Country Status (2)

Country Link
US (1) US9032245B2 (ko)
KR (1) KR101801147B1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
US8988941B2 (en) 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US9218890B2 (en) 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
US9230656B2 (en) 2013-06-26 2016-01-05 Sandisk Technologies Inc. System for maintaining back gate threshold voltage in three dimensional NAND memory
US9292434B2 (en) * 2013-08-22 2016-03-22 CNEXLABS, Inc. Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device
US9142324B2 (en) 2013-09-03 2015-09-22 Sandisk Technologies Inc. Bad block reconfiguration in nonvolatile memory
US9240238B2 (en) 2013-09-20 2016-01-19 Sandisk Technologies Inc. Back gate operation with elevated threshold voltage
US9218886B2 (en) 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
KR102297541B1 (ko) 2014-12-18 2021-09-06 삼성전자주식회사 메모리 영역의 신뢰성에 기초하여 데이터를 저장하는 저장 장치 및 스토리지 시스템
US9959067B2 (en) 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
US9502123B2 (en) 2015-04-21 2016-11-22 Sandisk Technologies Llc Adaptive block parameters
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
CN105159790B (zh) * 2015-09-30 2018-03-16 成都华为技术有限公司 一种数据抢救方法及文件服务器
US10275302B2 (en) 2015-12-18 2019-04-30 Microsoft Technology Licensing, Llc System reliability by prioritizing recovery of objects
KR102572357B1 (ko) 2016-02-03 2023-08-29 삼성전자주식회사 Raid-6 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10346268B2 (en) 2016-07-21 2019-07-09 SK Hynix Inc. Efficient data recovery for write path errors
DE102016115177B4 (de) * 2016-08-16 2023-10-12 Infineon Technologies Ag Verfahren zum Betreiben einer Speichervorrichtung und Speichervorrichtung
WO2018165958A1 (en) 2017-03-16 2018-09-20 Microsoft Technology Licensing, Llc. Storage system control
TWI656442B (zh) * 2017-11-30 2019-04-11 慧榮科技股份有限公司 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
KR102432551B1 (ko) * 2018-02-13 2022-08-16 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US11288116B2 (en) * 2018-02-15 2022-03-29 Micron Technology, Inc. End of service life of data storage devices
US10789126B2 (en) 2018-10-09 2020-09-29 Micron Technology, Inc. Multiple memory devices having parity protection
KR20200095684A (ko) * 2019-02-01 2020-08-11 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
TWI718519B (zh) * 2019-04-09 2021-02-11 喬鼎資訊股份有限公司 資料儲存系統及其管理方法
US11307804B2 (en) 2019-12-16 2022-04-19 Samsung Electronics Co., Ltd. Enhanced SSD reliability
US12050783B1 (en) 2023-03-23 2024-07-30 Silicon Motion, Inc. Method and apparatus for performing table management of memory device in predetermined communications architecture with aid of table error correction
US12050530B1 (en) * 2023-03-23 2024-07-30 Silicon Motion, Inc. Method and apparatus for performing table management of memory device in predetermined communications architecture with aid of system-region garbage collection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080010580A1 (en) * 2005-06-27 2008-01-10 Seagate Technology Llc Redundancy for storage data structures

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0701715A4 (en) 1993-06-04 1999-11-17 Network Appliance Corp METHOD FOR PROVIDING PARITY IN A RAID SUBSYSTEM USING REMANENT MEMORY
JP4863814B2 (ja) * 2006-08-04 2012-01-25 株式会社日立製作所 記憶媒体グループの故障を抑えるストレージシステム
JP4372134B2 (ja) 2006-09-29 2009-11-25 株式会社日立製作所 データ比較機能を有するストレージシステム
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
JP5192352B2 (ja) 2008-10-30 2013-05-08 株式会社日立製作所 記憶装置及びデータ格納領域管理方法
KR20100050789A (ko) * 2008-11-06 2010-05-14 삼성전자주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
US8234520B2 (en) * 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
JP4912456B2 (ja) * 2009-12-17 2012-04-11 株式会社日立製作所 ストレージ装置及びその制御方法
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US8601313B1 (en) * 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
WO2012137242A1 (en) * 2011-04-04 2012-10-11 Hitachi, Ltd. Storage system and data control method therefor
JP5329689B2 (ja) * 2011-06-08 2013-10-30 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080010580A1 (en) * 2005-06-27 2008-01-10 Seagate Technology Llc Redundancy for storage data structures

Also Published As

Publication number Publication date
US9032245B2 (en) 2015-05-12
KR20130023984A (ko) 2013-03-08
US20130055012A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
KR101801147B1 (ko) 데이터 신뢰성을 개선하는 데이터 관리 방법 및 그에 따른 데이터 저장 장치
US9753653B2 (en) High-priority NAND operations management
KR101655306B1 (ko) 메모리 시스템 및 그것의 액세스 방법
US8996959B2 (en) Adaptive copy-back method and storage device using same
KR102381218B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10838858B2 (en) Controller and operating method of the same
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20190107961A1 (en) Memory system and operating method of the same
US20130173954A1 (en) Method of managing bad storage region of memory device and storage device using the method
KR102468751B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN109671459B (zh) 存储器系统及其操作方法
US11099981B2 (en) Memory system and operating method thereof
US11163646B2 (en) Memory system for detecting erased page including memory cells with distorted threshold voltages, and operation method thereof
US9952978B2 (en) Method for improving mixed random performance in low queue depth workloads
US20180373629A1 (en) Memory system and operating method thereof
US11775389B2 (en) Deferred error-correction parity calculations
US20160179596A1 (en) Operating method of data storage device
KR102634809B1 (ko) 전자 장치 및 그것의 동작 방법
US11815985B2 (en) Apparatus and method for checking an operation status of a memory device in a memory system
CN113314179A (zh) 用于执行读取操作的存储器系统及其操作方法
US10460809B2 (en) Memory system and operating method thereof
CN109918315B (zh) 存储器系统及存储器系统的操作方法
KR20220077041A (ko) 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법
KR20230160620A (ko) 메모리 시스템에서 데이터를 복구하는 장치 및 방법
US11157210B2 (en) Memory system performing dummy program operation during normal program operation

Legal Events

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