KR101053948B1 - 메모리 시스템 및 컴퓨터 시스템 - Google Patents

메모리 시스템 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR101053948B1
KR101053948B1 KR1020100016271A KR20100016271A KR101053948B1 KR 101053948 B1 KR101053948 B1 KR 101053948B1 KR 1020100016271 A KR1020100016271 A KR 1020100016271A KR 20100016271 A KR20100016271 A KR 20100016271A KR 101053948 B1 KR101053948 B1 KR 101053948B1
Authority
KR
South Korea
Prior art keywords
chip
data
unit area
chips
block
Prior art date
Application number
KR1020100016271A
Other languages
English (en)
Other versions
KR20100130546A (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 가부시끼가이샤 도시바
Publication of KR20100130546A publication Critical patent/KR20100130546A/ko
Application granted granted Critical
Publication of KR101053948B1 publication Critical patent/KR101053948B1/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/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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)

Abstract

각각 미리 정해진 사이즈의 단위 영역마다 분할 관리되는 n개의 비휘발성 반도체 메모리의 칩을 가지며, 상기 n개의 칩 중 하나의 칩의 단위 영역은 상기 단위 영역에 각각 대응되어 있는 다른 n-1개의 칩에서의 단위 영역을 포함하는 군에 대한 오류 정정 부호를 기억하고, 또한 상기 오류 정정 부호를 저장하는 칩이 단위 영역의 위치마다 상이한 메모리칩군과, 단위 영역의 데이터를 재기록할 때, 상기 데이터의 오류 정정 부호를 저장하고 있는 단위 영역을 재기록 데이터의 기록 목적지로 지정하며, 재기록 전의 데이터가 저장되어 있던 단위 영역을 새로운 오류 정정 부호의 저장 목적지로 지정하는 액세스 목적지 산출부를 구비한다.

Description

메모리 시스템 및 컴퓨터 시스템{MEMORY SYSTEM AND COMPUTER SYSTEM}
관련출원의 참조
본 출원은, 2009년 6월 3일에 출원된 일본 특허 출원 번호 제2009-134308호의 우선권의 이익을 향수하고, 그 일본 특허 출원의 전체 내용은 본 출원에서 원용된다.
본 발명은 메모리 시스템 및 컴퓨터 시스템에 관한 것이다.
컴퓨터 시스템에 이용되는 메모리 시스템으로서, NAND형 플래시 메모리(이후, 단순히 NAND 메모리라 함) 등의 비휘발성 반도체 메모리를 탑재한 SSD(Solid State Drive)가 주목받고 있다. SSD 등의 메모리 시스템은 자기디스크 장치에 비해, 고속, 경량 등의 이점을 갖고 있다.
메모리 시스템은, 일반적으로 기억 용량을 크게 하기 위해, 복수(예컨대 16개나 32개)의 NAND 메모리칩(이후, 단순히 칩이라 함)을 탑재하고 있다. 각각의 칩은 메모리셀에 액세스하기 위한 칼럼 디코더, 로우 디코더 등을 제어하는 제어 회로를 개별적으로 갖고 있다. 이 제어 회로가 고장난 경우에는 그 칩에 기록되어 있던 데이터를 모두 판독할 수 없게 된다. 각 칩의 제어 회로에는, 불량률이 메모리 시스템 전체에 허용되는 불량률의 약 1/n(n은 탑재하는 칩의 수)배 이하인 것이 요구된다. 메모리 시스템에 탑재되는 칩수는 증가 경향이 있기 때문에, 칩수에 반비례하여 작아지는 1칩당으로 허용되는 불량률은 이후 메모리 시스템 제조를 점점 어렵게 하는 것이 예상된다. 따라서, 칩 단체에 허용되는 불량률을 완화하는 것이 요구되고 있었다. 또한 제어 회로가 고장났을 때, 판독 불능으로 된 데이터를 구제하는 구조가 요구되고 있었다.
이들 요구에 응하는 방책으로서, 칩수에 용장성을 갖게 하고, 용장 칩에 오류 정정 부호를 저장하는 것을 생각할 수 있다. 그러나, 비휘발성 반도체 메모리의 칩에는 기록/소거 횟수에 제한이 있다. 특정한 칩을 오류 정정 부호 전용으로 하면 다른 칩 중 어느 하나가 재기록될 때마다 소거·재기록을 반복하게 되어, 오류 정정 부호 전용칩의 열화가 현저해진다는 새로운 문제가 생긴다.
그런데, 기억 소자에 저장하는 데이터에 기초하여 오류 정정 부호를 산출하고, 저장된 데이터에 에러가 생겼을 때, 미리 산출해 둔 오류 정정 부호에 기초하여 상기 에러가 생긴 데이터를 구제하는 기술이 몇 개 공지가 되어 있다. 예컨대 일본 특허 공개 제2007-323224호 공보에는, 복수 칩으로 패리티 그룹을 형성하는 기술이 개시되어 있다. 그러나 일본 특허 공개 제2007-323224호 공보에는, 칩수의 용장성 및 패리티를 저장하는 위치에 대해서는 기술되어 있지 않다. 또한, 일본 특허 공개 제2001-167002호 공보에는, 반도체 기억소자의 디스크 영역에 저장하는 데이터에 관한 오류 정정 부호를 반도체 기억소자에 저장하는 기술이 개시되어 있다. 또한 일본 특허 공개 제2000-339228호 공보에는, 패리티 정보를 저장하는 전용 메모리 카드를 구비하는 기술이 개시되어 있다. 그러나, 일본 특허 공개 제2001-167002호 공보 및 일본 특허 공개 제2000-339228호 공보의 기술로는, 오류 정정 부호를 저장하는 부위의 열화를 억제할 수는 없다.
본 발명의 일 양태에 의하면, 각각 미리 정해진 사이즈의 단위 영역마다 분할 관리되는 n개의 비휘발성 반도체 메모리의 칩을 가지며, 상기 n개의 칩 중 하나의 칩의 단위 영역은 상기 단위 영역에 각각 대응되어 있는 다른 n-1개의 칩에서의 단위 영역을 포함하는 군에 대한 오류 정정 부호를 기억하고, 상기 오류 정정 부호를 저장하는 칩이 단위 영역의 위치마다 상이한 메모리칩군과, 단위 영역의 데이터를 재기록할 때, 상기 데이터의 오류 정정 부호를 저장하고 있는 단위 영역을 재기록 데이터의 기록 목적지로 지정하며, 재기록 전의 데이터가 저장되어 있던 단위 영역을 새로운 오류 정정 부호의 저장 목적지로 지정하는 액세스 목적지 산출부를 포함하는 것을 특징으로 하는 메모리 시스템이 제공된다.
또한, 본 발명의 일 양태에 의하면, 각각 미리 정해진 사이즈의 단위 영역마다 분할 관리되는 n개의 비휘발성 반도체 메모리의 칩을 가지며, 상기 n개의 칩 중 하나의 칩의 단위 영역은 상기 단위 영역에 각각 대응되어 있는 다른 n-1개의 칩에서의 단위 영역을 포함하는 군에 대한 오류 정정 부호를 기억하고, 상기 오류 정정 부호를 저장하는 칩이 단위 영역의 위치마다 상이한 메모리칩군과, 단위 영역의 데이터를 재기록할 때, 상기 데이터의 오류 정정 부호를 저장하고 있는 단위 영역을 재기록 데이터의 기록 목적지로 지정하며, 재기록 전의 데이터가 저장되어 있던 단위 영역을 새로운 오류 정정 부호의 저장 목적지로 지정하는 액세스 목적지 산출부를 구비하는 메모리 시스템을 포함하는 것을 특징으로 하는 컴퓨터 시스템이 제공된다.
본 발명에 따르면, 메모리 시스템 전체의 신뢰성을 확보하면서 칩 단체에 허용되는 불량률을 완화할 수 있다.
도 1은 제1 실시형태에 따른 SSD의 구성을 도시하는 도면.
도 2는 데이터 및 패리티가 저장되어 있는 모습을 설명하는 도면.
도 3은 데이터 및 패리티가 저장되어 있는 모습을 설명하는 도면.
도 4는 데이터 및 패리티가 저장되어 있는 모습을 설명하는 도면.
도 5는 칩 고장시의 데이터의 상태를 설명하는 도면.
도 6은 제1 실시형태에 따른 데이터 전송 장치의 기능 구성을 설명하는 도면.
도 7은 제1 실시형태에 따른 SSD의 기록 처리시의 동작을 설명하는 흐름도.
도 8은 제1 실시형태에 따른 SSD의 판독 처리시의 동작을 설명하는 흐름도.
도 9는 제1 실시형태에 따른 SSD의 데이터를 구제하는 동작을 설명하는 흐름도.
도 10은 제2 실시형태에 따른 SSD가 구비하는 NAND 메모리의 구성을 설명하는 도면.
도 11은 제2 실시형태에 따른 SSD의 스페어 칩의 사용을 시작하는 동작을 설명하는 흐름도.
이하에 첨부도면을 참조하여, 본 발명의 실시형태에 따른 메모리 시스템 및 컴퓨터 시스템을 상세히 설명한다. 또한, 이들 실시형태에 의해 본 발명이 한정되는 것이 아니다.
도 1은 본 발명의 제1 실시형태에 따른 메모리 시스템의 구성을 도시하는 블록도이다. 여기서는, 메모리 시스템의 일례로서 SSD를 예로 들어 설명하지만, 본 제1 실시형태의 적용 대상은 SSD에 한정하지 않는다.
도 1에 도시하는 바와 같이, SSD(1)는, 퍼스널 컴퓨터 등의 호스트 장치(2)에 SATA 인터페이스 등의 통신 규격으로 접속되어, 호스트 장치(2)의 외부 메모리로서 기능한다. SSD(1)와 호스트 장치(2)는 컴퓨터 시스템을 구성하고 있다. SSD(1)는 호스트 장치(2)로부터 기록 요구된 데이터를 기억하는 비휘발성 메모리인 NAND 메모리(10)와, 호스트 장치(2)와 NAND 메모리(10) 사이의 데이터 전송을 제어하는 데이터 전송 장치(20)를 구비하고 있다. SSD(1)이 호스트 장치(2)로부터 수신하는 기록/판독 요구에는, 기록/판독 목적지의 어드레스 정보(예컨대 LBA: Logical Block Addressing)와 기록/판독 요구하는 데이터의 사이즈가 포함되어 있다.
NAND 메모리(10)는, 복수의 칩으로 구성되는 하나 이상의 칩 그룹을 갖고 있다. 각각의 칩 그룹에는, 하나의 용장 칩이 각각 추가되어 있다. 여기서는, NAND 메모리(10)는 칩 a∼j를 구비하고 있고, 칩 a∼d에 용장 칩 e가 추가된 합계 5개의 칩이 칩 그룹 10a, 칩 f∼i에 용장 칩 j가 추가된 합계 5개의 칩이 칩 그룹 10b를 형성하고 있다. 칩 그룹(10a, 10b)은 각각, 5칩분의 기억 용량을 갖고 있지만, 4칩분의 기억 용량이 호스트 장치(2)로부터 기록 요구된 데이터(이후, 단순히 데이터라고도 함)를 저장하기 위해 사용되고, 용장 칩의 추가에 의해 증가한 나머지 1칩분의 기억 용량은 데이터의 오류 정정 부호로서의 패리티를 저장하기 위해 사용된다.
여기서, 특정한 칩을 패리티를 저장하는 전용 영역으로 하면, 다른 칩의 어느 하나가 재기록될 때마다 소거·재기록을 반복하게 되어, 패리티를 저장하고 있는 칩은 다른 칩에 비해 열화가 심해진다는 문제가 있다. 이 문제를 해결하기 위해, 본 제1 실시형태에서는, 패리티를 저장하는 영역을 동적으로 변화시키도록 했다. 이하, 칩 그룹(10a, 10b)에서의 데이터 및 패리티의 저장 룰에 대해서 구체적으로 설명한다. 또한 칩 그룹(10a) 및 칩 그룹(10b)은 동일한 구성을 갖고 있기 때문에, 이후에는 대표로 칩 그룹(10a)에 대해서만 설명한다.
칩 a∼e는 각각 기억 영역이 미리 정해진 사이즈마다 분할 관리되어, 동일 칩상에 속해 있어도 미리 정해진 사이즈의 영역마다 데이터가 저장되는 영역인지 패리티가 저장되는 영역인지가 상이하다. 패리티가 저장되는 영역에 저장되어 있는 패리티 비트는, 다른 4개의 칩에서의 이 패리티 비트와 동일한 위치에 저장되어 있는 데이터로 이루어지는 군에 대하여 부가되는 수평 패리티 비트이다. 또한, 분할 관리되는 영역이란, SSD(1)에서의 소거 단위인 블록이나 복수 블록과 같아서 좋지만, 이후의 설명에서는 블록인 것으로서 설명한다. 또한, 호스트 장치(2)로부터 기록된 데이터가 저장되는 블록을 데이터 저장 블록, 패리티가 저장되는 블록을 패리티 저장 블록으로 표현하는 것으로 한다.
도 2의 (a)는 어느 시점에서 칩 a∼e에 데이터 및 패리티가 저장되어 있는 모습을 설명하는 도면이다. 도시하는 바와 같이, 칩 a의 블록 a, 칩 b의 블록 b, 칩 c의 블록 c, 칩 d의 블록 d, 및 칩 e의 블록 e는 각각, 칩 a∼e에서의 동일 위치에 위치하고 있다. 그리고, 블록 e는 블록 a∼d에 저장되어 있는 데이터에 부가되는 패리티(소위 수평 패리티)가 저장되어 있다. 도 2의 (b)는, 도 2의 (a)에 도시한 블록 a∼d의 동일 위치의 메모리셀에 각각 저장되어 있는 데이터 1∼4와, 블록 e에서의 데이터 1∼4와 동일 위치의 메모리셀에 저장되어 있는 데이터 1∼4의 군의 패리티를 설명하는 도면이다. 또한, 여기서는 각 칩 a∼f의 메모리셀은 2 비트를 저장할 수 있는 다치(多値) 방식의 메모리셀인 것으로 하고 있다. 데이터 1은 상위 비트가 1, 하위 비트가 0, 즉 "10"이다. 마찬가지로, 데이터 2∼4는 각각 "00", "11", "01"의 값으로 되어 있다. 그리고, 데이터 1∼4의 상위 비트에는 총 2개의 "1"이 있기 때문에 상위 비트의 패리티는 "0", 하위 비트에도 총 2개의 "1"이 있기 때문에 하위 비트의 패리티도 "0"으로 되어 있다. 또한, 여기서는 패리티로서 짝수 패리티를 채용하도록 하고 있지만, 홀수 패리티를 채용하여도 좋다.
도 3은 도 2에 도시하는 상태에서, 블록 b에 저장되어 있던 데이터 2를 데이터 5로한 "10"으로 재기록하는 경우의 변화를 설명하는 도면이다. 데이터 2를 데이터 5로 재기록할 때, 도 3의 (a) 좌측도에 도시한 바와 같이, 블록 b에 저장되어 있던 데이터 2와 블록 e에 저장되어 있던 패리티가 소거된다. 그리고, 도 3의 (a) 우측도에 도시하는 바와 같이, 패리티 저장 블록이던 블록 e에 데이터 5가 기록되고, 데이터 1, 3∼5에 대해서 새롭게 계산된 패리티가 블록 b에 기록된다. 도 3의 (b)에 도시하는 바와 같이, 블록 e에는 데이터 5 ("10")가 저장되어 있고, 블록 b에는, 새로운 패리티로서 "10"이 저장되어 있다.
도 4는, 도 3에 도시하는 상태에서, 블록 d에 저장되어 있던 데이터 4를 데이터 6으로한 "00"으로 재기록하는 경우의 변화를 설명하는 도면이다. 데이터 4를 데이터 6으로 재기록할 때, 이번에는 도 4의 (a) 좌측도에 도시한 바와 같이, 블록 d에 저장되어 있던 데이터 4와 블록 b에 저장되어 있던 패리티가 소거된다. 그리고, 도 4의 (a) 우측도에 도시한 바와 같이, 블록 b에 데이터 6이 기록되고, 또한 새롭게 계산된 패리티가 블록 d에 기록된다. 도 4의 (b)에 도시한 바와 같이, 블록 b에는 데이터 6("00")이 저장되어 있고, 블록 d에는 패리티 "11"이 저장되어 있다.
이와 같이, 본 제1 실시형태에서는, 어느 블록에 저장되어 있는 데이터를 재기록할 때, 이 데이터의 수평 패리티를 저장하고 있는 블록이 재기록 데이터의 기록 목적지가 되고, 재기록 전의 데이터가 저장되어 있는 블록이 새로운 수평 패리티의 저장 목적지가 된다. 이것에 의해, 패리티 저장 영역의 위치가 칩 사이를 걸쳐 동적으로 변화하게 된다. 또한, 각각의 칩 a∼f에는 각각 자신이 구비하는 메모리셀에 액세스하기 위한 제어 회로가 개별적으로 구비되어 있고, 제어 회로가 고장나면 그 칩의 모든 메모리셀에 액세스할 수 없게 된다. 도 4에 도시하는 상태에서 데이터 저장 영역인 블록 c를 갖는 칩 c가 액세스 불능으로 되었을 때의 데이터의 상태를 도 5에 도시한다. 도시하는 바와 같이, 패리티가 "11"이고, 다른 3개의 데이터가 "10", "00", "10"이기 때문에, 블록 c에서 잃은 데이터가 "11"인 것이 산출된다. 즉 고장난 칩에 저장되어 있던 데이터를 구제할 수 있다.
데이터 전송 장치(20)는, 상기한 데이터 및 패리티의 저장 룰에 따라서 데이터를 전송하기 위한 기능 구성으로서, 도 6에 도시하는 바와 같이, 패리티 저장 영역에 저장하는 패리티를 계산하는 패리티 계산부(21)와, 호스트 장치(2)로부터 수신하는 기록/판독 요구에 포함되는 어드레스 정보 및 데이터 사이즈에 의해 지정되는 논리 어드레스로서의 액세스 목적지의 블록과 전술의 저장룰에 의해 변화되는 물리 어드레스로서의 데이터의 저장 목적지의 블록을 대응시키는 저장 위치 대응 정보(22)와, 상기 저장 위치 대응 정보(22)에 기초하여 액세스 목적지 블록에 대응하는 데이터 저장 목적지 블록을 산출하는 액세스 목적지 산출부(23)와, 고장난 칩에 기억되어 있던 데이터를 구제하는 칩 고장 대응부(24)를 구비하고 있다. 또한, 데이터 전송 장치(20) 안 또는 밖의 패리티 계산부(21), 액세스 목적지 산출부(23), 및 칩 고장 대응부(24)가 액세스할 수 있는 위치에 레지스터 또는 소규모인 메모리 등의 기억 영역을 설치하고, 이 기억 영역에 저장 위치 대응 정보(22)를 저장하도록 해두어도 좋다.
또한, 저장 위치 대응 정보(22)에 의해 데이터를 저장하는 위치에 관한 논리 어드레스와 물리 어드레스가 1 대 1로 대응되어 있기 때문에, 저장 위치 대응 정보(22)에 있어서 데이터 저장 블록을 하나 선택한 경우, 상기 선택한 데이터 저장 블록을 갖는 칩 이외의 칩에서의 상기 선택한 블록과 동일 위치의 블록이며 또한 논리 어드레스에 대응되어 있지 않은 물리 어드레스의 블록은, 상기 선택한 데이터 저장 블록에 저장되어 있는 데이터의 패리티가 저장되어 있는 패리티 저장 블록과 같다. 즉, 저장 위치 대응 정보(22)에는 데이터 저장 블록마다 대응하는 패리티 저장 블록이 명시되어 있지 않지만, 저장 위치 대응 정보(22)를 참조함으로써 데이터 저장 블록마다의 패리티 저장 블록의 물리 어드레스를 구할 수 있게 되어 있다. 또한, 저장 위치 대응 정보(22)는 데이터 저장 블록마다 대응하는 패리티 저장 블록을 명시하도록 하여도 좋다.
다음에, 도 7∼도 9를 참조하여 이들 기능 구성부의 동작을 설명한다. 도 7은 기록 처리시의 동작을 설명하는 흐름도이다.
도 7에 도시하는 바와 같이, 호스트 장치(2)로부터 기록 요구되었을 때, 액세스 목적지 산출부(23)는, 저장 위치 대응 정보(22)를 참조하여, 기록 요구로써 지정되어 있는 기록 액세스 목적지 블록에 대응하는 데이터 저장 블록과 이 데이터 저장 블록에 저장되어 있는 데이터의 패리티를 저장하고 있는 패리티 저장 블록을 구하며, 구한 패리티 저장 블록을 기록 요구된 데이터의 기록 목적지로 결정한다(단계 S1). 또한 액세스 목적지 산출부(23)는, 상기 구한 데이터 저장 블록을 새로운 패리티 저장 블록으로 결정한다(단계 S2). 단계 S1, 단계 S2로써 결정한 블록에 저장되어 있던 데이터, 패리티는 소거된다.
계속해서, 패리티 계산부(21)는 기록 요구된 데이터에 기초하여 새롭게 패리티를 계산한다(단계 S3). 그리고, 데이터 전송 장치(20)는 단계 S1로써 결정한 기록 목적지 블록에 기록 요구된 데이터를 기록하고, 단계 S2로써 결정한 새로운 패리티 저장 블록에 단계 S3으로써 산출한 패리티를 기록한다(단계 S4). 그리고, 액세스 목적지 산출부(23)는 저장 위치 대응 정보(22)를 갱신한다(단계 S5). 구체적으로는, 액세스 목적지 산출부(23)는 저장 위치 대응 정보(22)에 있어서 상기 기록 요구로써 지정된 블록에 대응되어 있던 데이터 저장 블록(단계 S2로써 새로운 패리티 저장 블록에 결정한 블록)을, 단계 S1로써 결정한 블록으로 변경한다. 그리고, 기록 처리의 동작이 종료가 된다.
도 8은 판독 처리시의 동작을 설명하는 흐름도이다. 도시하는 바와 같이, 호스트 장치(2)로부터 판독 요구가 이루어지면, 데이터 전송 장치(20)는, 저장 위치 대응 정보(22)를 참조하여, 판독 요구로써 지정되어 있는 판독 액세스 목적지 블록에 대응되어 있는 데이터 저장 블록을 구한다(단계 S11). 그리고, 데이터 전송 장치(20)는, 구한 블록으로부터 데이터를 판독하고 판독한 데이터를 호스트 장치(2)에 송신하여(단계 S12), 판독 처리의 동작이 종료가 된다.
단계 S12에서 구한 블록이 액세스 불능이었을 때, 데이터를 구제하는 데이터 구제 처리가 실행된다. 도 9는, 데이터 구제 처리를 설명하는 흐름도이다. 도시하는 바와 같이, 우선, 칩 고장 대응부(24)는, 저장 위치 대응 정보(22)를 참조하여, 액세스 불능인 블록(고장 블록)에 저장되어 있던 데이터의 패리티가 저장되어 있는 패리티 저장 블록을 구한다(단계 S21). 그리고, 칩 고장 대응부(24)는, 구한 패리티 저장 블록에 저장되어 있던 패리티와, 고장 블록과 동일 위치에 위치하는 다른 칩의 데이터 저장 블록에 저장되어 있는 데이터에 기초하여, 고장 블록에 저장되어 있던 데이터를 구제하고(단계 S22), 데이터 구제 처리의 동작이 종료가 된다. 구제된 데이터는 호스트 장치(2)에 송신된다.
이와 같이, 칩 그룹에 용장 칩이 하나 추가되고, 하나의 칩이 고장나도 고장난 칩에 저장되어 있는 데이터를 구제할 수 있도록 했기 때문에, NAND 메모리(10) 전체의 신뢰성을 향상시킬 수 있다. 바꿔 말하면, 칩 하나당 요구되는 불량률을 크게 할 수 있다. 예로서 32칩 탑재한 메모리 시스템에 있어서, SSD(1) 전체로서의 불량률을 3200 ppm 이하로 하는 것이 필요한 경우, 칩에 용장성을 갖게 하지 않으면, 1칩당의 불량률은 3200/32=100 ppm 이하로 해야 한다. 이것에 대하여, 33칩 탑재하고, 용장성에 의해 1칩 고장까지 허용하도록 하면, 1칩당의 불량률은 대략 2500 ppm까지 허용되게 된다. 즉, 메모리 시스템 전체의 신뢰성을 확보하면서 칩 하나당 요구되는 불량률이 완화되기 때문에, 메모리칩이나 메모리 시스템의 제조를 간단히 할 수 있다.
또한, 각각 하나의 용장 칩을 갖는 칩 그룹을 복수 갖도록 했기 때문에, 칩 그룹이 하나밖에 없는 경우에 비해 메모리 시스템 전체의 신뢰성을 더 향상시킬 수 있다.
또한, 판독 목적지의 블록이 액세스 불능이었을 때 데이터 구제 처리를 실행하는 것으로서 설명했지만, 칩 고장 대응부(24)는 데이터 구제 처치에 의해 구제된 데이터를 고장 블록과 동일 위치에 위치하는 패리티 저장 블록에 저장하도록 하고, 이후에는 패리티를 사용하지 않도록 하여도 좋다. 또한, 칩의 고장이 판명되었을 때, 이 칩이 포함하는 데이터 저장 블록에 저장되어 있는 데이터에 대하여 데이터 구제 처치를 실행하고, 구제한 데이터를 고장 블록과 동일 위치에 위치하는 패리티 저장 블록에 저장하도록 하여도 좋다. 이와 같이 함으로써, 한번 데이터 구제 처치를 실행한 블록에 대해서는 재차 데이터 구제 처치를 실행할 필요가 없어져, 판독 처리의 효율이 향상한다.
또한, 이상의 설명에서는, 패리티 저장 블록에는 수평 패리티를 저장하고, 바꿔 말하면, 패리티 저장 블록에는 다른 4개의 칩에서의 이 패리티 저장 블록과 동일한 위치의 블록에 저장되어 있는 각각의 데이터로 이루어지는 군에 대하여 부가되는 것으로서 설명했다. 그러나, 패리티 저장 블록과 다른 4개의 칩에서의 패리티 산출 대상의 데이터 저장 블록의 각각을 대응시킬 수 있으면, 패리티 저장 블록에 저장하는 패리티는 동일 위치의 데이터 저장 블록에 저장되어 있던 데이터의 패리티가 아니어도 상관없다.
또한, 이상의 설명에서는, 오류 정정 부호로서 짝수 패리티를 사용하는 것으로 하여 설명했지만, 홀수 패리티를 사용하도록 하여도 문제없다. 또한 오류 정정 부호로서, 패리티가 아니라 체크섬을 사용하도록 하여도 좋다. 예컨대 "01", "11, "10"의 체크섬은, 자리올림이 발생하여 "110"이 되지만, 아래 2자리만 취한 값인 "10"을 오류 정정 부호를 저장하는 블록에 기억시키도록 한다. 데이터 구제 처치시에, 잃은 데이터는 저장되어 있는 체크섬으로부터 나머지 데이터를 감산한 값이 되지만, 값이 음의 값이 되는 경우는 자리올림분을 가산하여 양의 값으로 하도록 한다. 예컨대 "11"이 잃은 것으로 하면, 저장되어 있는 체크섬 "10"에서 "O1" 및 "10"을 감산한다. 그렇게 하면, 음의 값 "-01"을 얻을 수 있지만, 자리올림분 "100"을 가산함으로써 잃은 값인 "11"을 산출할 수 있다.
이상 설명한 바와 같이, 본 발명의 제1 실시형태에 의하면, 블록마다 분할 관리되는 복수의 칩으로 이루어지는 칩 그룹을 가지며, 상기 복수의 칩 중 하나의 칩의 블록은 다른 칩에서의 상기 블록과 동일 위치의 블록의 군의 오류 정정 부호를 기억하고, 또한 오류 정정 부호를 기억하는 칩은 블록마다 상이하며, 데이터를 재기록할 때, 이 데이터의 오류 정정 부호를 저장하고 있는 블록을 재기록하여 데이터의 기록 목적지로 지정하고, 재기록 전의 데이터가 저장되어 있던 블록을 새로운 오류 정정 부호의 저장 목적지에 지정하도록 구성했기 때문에, 데이터의 재기록시마다 오류 정정 부호의 저장 목적지가 변하기 때문에, 칩마다의 재기록 횟수가 균일화되고, 또한 하나의 칩이 판독 불능으로 되어도 판독 불능 칩에 저장되어 있던 데이터는 다른 칩의 데이터 및 오류 정정 부호에 기초하여 구제할 수 있기 때문에, 메모리 시스템 전체의 신뢰성을 확보하면서 칩 단체에 허용되는 불량률을 완화할 수 있다.
제2 실시형태에서는, 제1 실시형태의 구성에 추가로, 칩이 액세스 불능으로 되었을 때, 이 액세스 불능으로 된 칩의 스페어로서 사용되는 용장 칩을 더 구비한다. 도 10은 제2 실시형태의 SSD가 구비하는 NAND 메모리의 구성을 설명하는 도면이다. 또한 제2 실시형태의 NAND 메모리 이외의 구성은, 제1 실시형태와 같기 때문에, 여기서는 제1 실시형태에서 이용한 구성의 명칭 및 부호를 그대로 사용하는 것으로 한다. 또한 제2 실시형태의 데이터 전송 장치(20)의 기능 구성은, 칩 고장 대응부의 동작이 상이하지만, 다른 기능 구성은 제1 실시형태와 같기 때문에, 제1 실시형태에서 이용한 기능 구성의 명칭 및 부호를 그대로 사용하는 것으로 한다.
도 10에 도시하는 바와 같이, 본 제2 실시형태의 NAND 메모리(30)는, 칩 a∼j에 추가로, 스페어 칩으로서 하나 이상(여기서는 2개)의 칩 k, 칩 l을 구비하고 있다. 칩 k, 칩 l은 칩 a∼j 중 하나 또는 2개가 액세스 불능으로 되었을 때, 액세스 불능으로 된 칩(고장 칩) 대신으로서의 사용이 시작된다.
다음에, 스페어 칩의 사용을 시작할 때의 동작에 대해서 설명한다. 도 11은 스페어 칩의 사용을 시작하는 처리를 설명하는 흐름도이다. 도시하는 바와 같이, 우선, 칩 고장 대응부(24)는 고장 칩으로부터 하나의 블록을 선택한다(단계 S31). 그리고, 칩 고장 대응부(24)는 저장 위치 대응 정보(22)를 참조하는 것에 의해, 선택한 블록은 데이터 저장 블록인지의 여부를 판정한다(단계 S32). 선택한 블록이 데이터 저장 블록이었던 경우(단계 S32, Yes), 칩 고장 대응부(24)는 도 9에서 도시한 데이터 구제 처리를 단계 S33 및 단계 S34로써 실행하여, 선택한 블록에 저장되어 있던 데이터를 구제한다.
그리고, 칩 고장 대응부(24)는, 구제한 데이터를 스페어 칩에서의 상기 선택한 블록과 동일한 위치에 기록한다(단계 S35). 그리고, 칩 고장 대응부(24)는 저장 위치 대응 정보(22)를 갱신한다(단계 S36). 즉, 저장 위치 대응 정보(22)에 기술되어 있는 단계 S31로써 선택한 고장 블록의 기술을, 단계 S35로써 기록한 스페어 칩의 기록 목적지의 블록의 기술로 변경한다.
한편, 단계 S32에 있어서, 선택한 블록이 데이터 저장 블록이 아니었던 경우(단계 S32, No), 선택한 블록은 패리티 저장 블록이기 때문에, 칩 고장 대응부(24)는, 이 블록에 저장되어 있던 패리티를 재차 계산하고(단계 S37), 산출한 패리티를 스페어 칩에서의 단계 S31에서 선택한 고장 블록과 동일한 위치에 기록한다(단계 S38).
단계 S36 또는 단계 S38 후, 칩 고장 대응부(24)는, 고장 칩으로부터 모든 블록을 선택했는지의 여부를 판정하고(단계 S39), 미선택인 경우(단계 S39, No), 단계 S31에 이행하여 미선택의 블록을 하나 선택하며, 모두 선택 완료된 경우(단계 S39, Yes), 스페어 칩의 사용을 시작하는 처리는 종료가 된다.
또한 칩 k, 칩 l 중 어느 한 쪽에서 먼저 스페어 칩으로서의 사용이 시작되도록 하여도 좋다.
이와 같이, 본 발명의 제2 실시형태에 의하면, 스페어 칩을 더 가지며, 칩 그룹에 속하는 칩이 액세스 불능으로 되었을 때, 액세스 불능의 칩으로부터 구제한 데이터를 스페어 칩에 저장하도록 구성했기 때문에, 제1 실시형태보다 메모리 시스템 전체의 신뢰성을 더 향상시킬 수 있게 된다. 제1 실시형태보다 메모리 시스템 전체의 신뢰성을 더 향상시킬 수 있기 때문에, 메모리 시스템 전체에 같은 레벨의 신뢰성을 요구하는 경우, 제1 실시형태에 비해 칩 단체에 허용되는 불량률을 더 완화할 수 있다. 또한, 스페어 칩의 수는 많을수록 메모리 시스템 전체의 신뢰성이 향상한다.
더 나은 효과나 변형예는, 당업자에 의해 용이하게 도출할 수 있다. 따라서, 본 발명의 보다 광범한 양태는, 이상과 같이 나타내고 기술한 특정의 상세 및 대표적인 실시형태에 한정되는 것이 아니다. 따라서, 첨부한 클레임 및 그 균등물에 의해 정의되는 총괄적인 발명의 개념 정신 또는 범위에서 일탈하지 않고, 여러 가지 변경이 가능하다.
1 : SSD 2 : 호스트 장치
10 : NAND 메모리 10a, 10b : 칩 그룹
20 : 데이터 전송 장치 21 : 패리티 계산부
22 : 저장 위치 대응 정보 23 : 액세스 목적지 산출부
24 : 칩 고장 대응부

Claims (16)

  1. 각각 미리 정해진 사이즈의 단위 영역마다 분할 관리되는 n개의 비휘발성 반도체 메모리의 칩을 가지며, 상기 n개의 칩 중 하나의 칩의 단위 영역은 상기 단위 영역에 각각 대응되어 있는 다른 n-1개의 칩에서의 단위 영역을 포함하는 군에 대한 오류 정정 부호를 기억하고, 상기 오류 정정 부호를 저장하는 칩이 단위 영역의 위치마다 상이한 메모리칩군과,
    단위 영역의 데이터를 재기록할 때, 상기 데이터의 오류 정정 부호를 저장하고 있는 단위 영역을 재기록 데이터의 기록 목적지로 지정하며, 재기록 전의 데이터가 저장되어 있던 단위 영역을 새로운 오류 정정 부호의 저장 목적지로 지정하는 액세스 목적지 산출부
    를 포함하는 것을 특징으로 하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 단위 영역은 블록 또는 복수 블록인 것을 특징으로 하는 메모리 시스템.
  3. 제1항에 있어서,
    상기 n개의 칩 중 하나의 칩이 판독 불능으로 되었을 때, 상기 판독 불능의 칩을 제외한 n-1개의 칩에 단위 영역마다 저장되어 있는 오류 정정 부호 및 데이터에 기초하여 상기 판독 불능의 칩에 저장되어 있던 데이터를 구제하는 칩 고장 대응부를 더 포함하는 것을 특징으로 하는 메모리 시스템.
  4. 제1항에 있어서,
    상기 메모리칩군을 복수 포함하는 것을 특징으로 하는 메모리 시스템.
  5. 제3항에 있어서,
    상기 비휘발성 반도체 메모리의 칩으로 이루어지는 스페어 칩을 더 가지며,
    상기 칩 고장 대응부는, 상기 구제된 데이터를 상기 스페어 칩에 저장하는 것을 특징으로 하는 메모리 시스템.
  6. 제1항에 있어서,
    상기 오류 정정 부호는 패리티인 것을 특징으로 하는 메모리 시스템.
  7. 제1항에 있어서,
    상기 오류 정정 부호는 체크섬인 것을 특징으로 하는 메모리 시스템.
  8. 제1항에 있어서,
    상기 비휘발성 반도체 메모리는 각각 NAND형 플래시 메모리칩인 것을 특징으로 하는 메모리 시스템.
  9. 각각 미리 정해진 사이즈의 단위 영역마다 분할 관리되는 n개의 비휘발성 반도체 메모리의 칩을 가지며, 상기 n개의 칩 중 하나의 칩의 단위 영역은 상기 단위 영역에 각각 대응되어 있는 다른 n-1개의 칩에서의 단위 영역을 포함하는 군에 대한 오류 정정 부호를 기억하고, 또한 상기 오류 정정 부호를 저장하는 칩이 단위 영역의 위치마다 상이한 메모리칩군과,
    단위 영역의 데이터를 재기록할 때, 상기 데이터의 오류 정정 부호를 저장하고 있는 단위 영역을 재기록 데이터의 기록 목적지로 지정하며, 재기록 전의 데이터가 저장되어 있었던 단위 영역을 새로운 오류 정정 부호의 저장 목적지로 지정하는 액세스 목적지 산출부
    를 구비하는 메모리 시스템을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  10. 제9항에 있어서,
    상기 단위 영역은 블록 또는 복수 블록인 것을 특징으로 하는 컴퓨터 시스템.
  11. 제9항에 있어서,
    상기 n개의 칩 중 하나의 칩이 판독 불능으로 되었을 때, 상기 판독 불능의 칩을 제외한 n-1개의 칩에 단위 영역마다 저장되어 있는 오류 정정 부호 및 데이터에 기초하여 상기 판독 불능의 칩에 저장되어 있던 데이터를 구제하는 칩 고장 대응부를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 제9항에 있어서,
    상기 메모리칩군을 복수 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제11항에 있어서,
    상기 비휘발성 반도체 메모리의 칩으로 이루어지는 스페어 칩을 더 가지며,
    상기 칩 고장 대응부는, 상기 구제된 데이터를 상기 스페어 칩에 저장하는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제9항에 있어서,
    상기 오류 정정 부호는 패리티인 것을 특징으로 하는 컴퓨터 시스템.
  15. 제9항에 있어서,
    상기 오류 정정 부호는 체크섬인 것을 특징으로 하는 컴퓨터 시스템.
  16. 제9항에 있어서,
    상기 비휘발성 반도체 메모리는 각각 NAND형 플래시 메모리칩인 것을 특징으로 하는 컴퓨터 시스템.
KR1020100016271A 2009-06-03 2010-02-23 메모리 시스템 및 컴퓨터 시스템 KR101053948B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2009-134308 2009-06-03
JP2009134308A JP2010282369A (ja) 2009-06-03 2009-06-03 メモリシステム

Publications (2)

Publication Number Publication Date
KR20100130546A KR20100130546A (ko) 2010-12-13
KR101053948B1 true KR101053948B1 (ko) 2011-08-04

Family

ID=43263471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100016271A KR101053948B1 (ko) 2009-06-03 2010-02-23 메모리 시스템 및 컴퓨터 시스템

Country Status (5)

Country Link
US (1) US8533549B2 (ko)
JP (1) JP2010282369A (ko)
KR (1) KR101053948B1 (ko)
CN (1) CN101908007B (ko)
TW (1) TWI453750B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092349B2 (en) * 2011-12-14 2015-07-28 Intel Corporation Storage of codeword portions
US8686570B2 (en) * 2012-01-20 2014-04-01 Taiwan Semiconductor Manufacturing Company, Ltd. Multi-dimensional integrated circuit structures and methods of forming the same
TWI575533B (zh) * 2016-04-18 2017-03-21 群聯電子股份有限公司 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
US10254969B2 (en) * 2016-05-13 2019-04-09 Seagate Technology Llc Data refresh in flash memory
US10990291B2 (en) * 2017-06-12 2021-04-27 Dell Products, L.P. Software assist memory module hardware architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030035810A (ko) * 2001-10-29 2003-05-09 미쓰비시덴키 가부시키가이샤 백업 메모리 블록을 갖는 비휘발성 반도체 기억 장치
KR20060012172A (ko) * 2004-08-02 2006-02-07 삼성전자주식회사 정보 저장 매체, 기록/재생 장치 및 기록/재생 방법
KR20060051898A (ko) * 2004-11-04 2006-05-19 시그마텔, 인크. 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법
KR20070037285A (ko) * 2005-09-30 2007-04-04 시그마텔, 인크. 비휘발성 컴퓨터 메모리에 액세스하는 시스템 및 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000339228A (ja) 1999-05-27 2000-12-08 Nec Corp 半導体ディスク装置
JP3341745B2 (ja) 1999-12-10 2002-11-05 日本電気株式会社 電子ディスク装置の書き込み/読み出し制御方法及びその装置
JP4818812B2 (ja) 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
US7260758B1 (en) * 2001-09-07 2007-08-21 Lsi Corporation Method and system for performing built-in self-test routines using an accumulator to store fault information
US7089473B2 (en) * 2002-03-29 2006-08-08 Intel Corporation Method and apparatus for testing a circuit using a die frame logic analyzer
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7487397B2 (en) * 2005-10-27 2009-02-03 International Business Machines Corporation Method for cache correction using functional tests translated to fuse repair
JP2008040585A (ja) * 2006-08-02 2008-02-21 Renesas Technology Corp マイクロコンピュータ
JP2008139908A (ja) * 2006-11-29 2008-06-19 Matsushita Electric Ind Co Ltd メモリ制御装置、コンピュータシステム及びデータ再生記録装置
TW200823658A (en) * 2006-11-30 2008-06-01 Efortune Technology Corp Error correction mechanism for multiple sectors
JP4967680B2 (ja) * 2007-01-23 2012-07-04 ソニー株式会社 記憶装置およびコンピュータシステム、並びに記憶装置の管理方法
US7721175B2 (en) * 2007-08-21 2010-05-18 Micron Technology, Inc. System, apparatus, and method for memory built-in self testing using microcode sequencers
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
US8621137B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030035810A (ko) * 2001-10-29 2003-05-09 미쓰비시덴키 가부시키가이샤 백업 메모리 블록을 갖는 비휘발성 반도체 기억 장치
KR20060012172A (ko) * 2004-08-02 2006-02-07 삼성전자주식회사 정보 저장 매체, 기록/재생 장치 및 기록/재생 방법
KR20060051898A (ko) * 2004-11-04 2006-05-19 시그마텔, 인크. 비휘발성 컴퓨터 메모리를 독출하기 위한 시스템 및 방법
KR20070037285A (ko) * 2005-09-30 2007-04-04 시그마텔, 인크. 비휘발성 컴퓨터 메모리에 액세스하는 시스템 및 방법

Also Published As

Publication number Publication date
US8533549B2 (en) 2013-09-10
CN101908007A (zh) 2010-12-08
CN101908007B (zh) 2017-09-19
JP2010282369A (ja) 2010-12-16
TW201044408A (en) 2010-12-16
KR20100130546A (ko) 2010-12-13
TWI453750B (zh) 2014-09-21
US20100313101A1 (en) 2010-12-09

Similar Documents

Publication Publication Date Title
US10713178B2 (en) Mapping table updating method, memory controlling circuit unit and memory storage device
US10204040B2 (en) High speed flash controllers
KR101660150B1 (ko) 물리 페이지, 논리 페이지, 및 코드워드 대응
CN102656567B (zh) 固态存储器件内的数据管理
US10936391B2 (en) Memory management method and storage controller
US10310739B2 (en) Memory management method, memory control circuit unit and memory storage device
US9465552B2 (en) Selection of redundant storage configuration based on available memory space
US9092320B2 (en) Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system
US8601347B1 (en) Flash memory device and storage control method
US20160070507A1 (en) Memory system and method of controlling memory device
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
US9720609B1 (en) Data protecting method, memory control circuit unit and memory storage device
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
KR101053948B1 (ko) 메모리 시스템 및 컴퓨터 시스템
JP2013016147A (ja) メモリコントローラ及び不揮発性記憶装置
US11954364B2 (en) Memory system and method of writing data to storage areas constituting group
US10997067B2 (en) Data storing method, memory controlling circuit unit and memory storage device
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
JP2013131095A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
US11010291B2 (en) Cold area determining method, memory controlling circuit unit and memory storage device
US10936248B2 (en) Data writing method with verifying a part of data, memory controlling circuit unit and memory storage device
US11410741B2 (en) Memory controller and flash memory system
US11687444B2 (en) Data managing method. memory controlling circuit unit and memory storage device

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee