KR19990023238A - 반도체 기억장치 및 그 제어방법 - Google Patents

반도체 기억장치 및 그 제어방법 Download PDF

Info

Publication number
KR19990023238A
KR19990023238A KR1019980029947A KR19980029947A KR19990023238A KR 19990023238 A KR19990023238 A KR 19990023238A KR 1019980029947 A KR1019980029947 A KR 1019980029947A KR 19980029947 A KR19980029947 A KR 19980029947A KR 19990023238 A KR19990023238 A KR 19990023238A
Authority
KR
South Korea
Prior art keywords
write
data
sector
memory element
read
Prior art date
Application number
KR1019980029947A
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 사와무라 시코
Publication of KR19990023238A publication Critical patent/KR19990023238A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

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

열화가 문제로 되는 메모리 소자를 사용한 반도체 기억장치에 있어서, 신뢰성 및 수명을 향상시키는 것을 목적으로 한다. 통상섹터 혹은 예비섹터로서 사용되는 복수개의 섹터를 갖는 메모리 소자 M(0)∼M(9)을 구비한 플래쉬 메모리부(110)와, 외부에서 입력된 어드레스 정보에 따라서 메모리 소자 M(0)∼M(9)에 대한 데이터의 기록/판독을 행하는 디스크 콘트롤러부(120)를 구비하는 반도체 디스크 장치에 있어서, 메모리 소자 M(0)∼M(9)의 기록/판독 에러의 발생상황을 메모리 소자마다 기억하는 데이터 에러 정보 관리 테이블(127)과, 데이터 에러 정보 관리 테이블(127)에 기억된 기록/판독 에러의 발생상황에 따라서 메모리 소자의 열화를 검출하는 마이크로 CPU(131)와, 마이크로 CPU(131)에 의해서 열화가 검출된 메모리 소자 M(0)∼M(9)이 사용되지 않도록 어드레스 정보를 변환하는 어드레스변환테이블(128)을 더 구비한다.

Description

반도체 기억장치 및 그 제어방법
본 발명은 플래쉬 메모리 소자가 설치된 반도체 디스크 장치와 같은 반도체 기억장치 및 그 제어방법에 관한 것으로, 특히, 메모리 소자가 열화한 경우에 축퇴운전을 행하는 반도체 기억장치 및 그 제어방법에 관한 것이다.
종래, 반도체 장치로서, 예컨대 플래쉬 메모리를 사용한 반도체 디스크 장치가 알려져 있다. 이러한 반도체 디스크 장치에 사용되는 플래쉬 메모리 소자에서는, 판독 및 기록을 반복하는 것에 따라 비트가 열화할 수 있다. 그리고, 플래쉬 메모리 소자의 비트가 열화한 경우에는, 그 비트 다음의 기록 및 판독이 불가능하게 된다. 그 결과, 판독시에 데이터 에러(즉, 기록 데이터와 판독 데이터가 일치하지 않은 현상)가 발생한다.
이것에 대하여, 플래쉬 메모리 소자로부터 판독한 데이터가 옳은지 아닌지를 검출할 수 있는 제어기술로서, ECC(Error Correction Code)제어라고 칭하는 기술이, 이미 알려져 있다. 이 기술에 의하면, 플래쉬 메모리 소자로부터 데이터를 판독하였을 때에 데이터 에러의 발생의 유무를 검출할 수 있고, 또, 데이터 에러를 검출했을 때에, 데이터 에러가 COR(Correctable Error, 즉 정정가능한 데이터 에러)인지 혹은 UNC(Uncorrectable Error, 즉 정정불가능한 데이터 에러)인지를 판정할 수 있다. 그리고, 검출된 데이터 에러가 COR인 경우에는, 그 판독 데이터를 정정할 수 있다.
종래의 반도체 디스크 장치에서는, ECC 제어에 의해서 플래쉬 메모리 소자의 비트의 열화가 검출된 경우에, 그 비트가 속한 섹터는 사용금지로 지명되었고, 이러한 섹터(이하, 열화 섹터라고 칭함) 대신에 미리 설정된 대체 섹터를 사용하도록 배치되었다.
도 12는 종래의 반도체 디스크 장치의 구성의 일례를 개념적으로 나타내는 블록도이다. 또한, 도 13은 이러한 반도체 디스크 장치의 동작을 설명하기 위한 플로우챠트이다.
반도체 디스크 장치(1200)의 외부에서 디스크 콘트롤러(1220)에 입력된 명령정보 및 어드레스 정보는 호스트 인터페이스(1221) 및 마이크로 CPU 인터페이스(1222)를 통해, 마이크로 콘트롤러부(1230) 내의 마이크로 CPU(Central Processing Unit)(1231)에 전송된다(S1301).
이 점에서, 이 명령정보가 기록 명령인 경우에(S1302), 마이크로 CPU(1231)는 외부에서 입력된 주데이터를, 호스트 인터페이스(1221)를 통해, 데이터 버퍼(1223)에 입력한다(S1303). 그리고, 마이크로 CPU(1231)로부터는 명령정보 및 어드레스 정보가, 데이터 버퍼(1223)로부터는 주데이터가, 각각 플래쉬 메모리 인터페이스(1225)로 전송된다(S1304). 계속해서, ECC 제어부(1226)가 플래쉬 메모리 인터페이스(1225)로부터 주데이터를 입력함으로써 ECC 데이터를 발생하여, 이 ECC 데이터를 플래쉬 메모리 인터페이스(1225)로 전송한다(S1305). 그리고, 이 플래쉬 메모리 인터페이스(1225) 내에서, 직렬 데이터가 작성된다(S1306).
도 14는 플래쉬 메모리 인터페이스(1225) 내에서 작성되는 직렬 데이터의 구성을 나타내는 개념도이다. 이 도면에 도시한 바와 같이, 이 직렬 데이터는 예컨대 4비트의 어드레스 정보와, 예컨대 8비트의 명령정보와, 예컨대 512바이트의 주데이터와, 예컨대 11바이트의 ECC 데이터로 구성된다.
이러한 직렬 데이터는 플래쉬 메모리 인터페이스(1225)로부터 출력되어, 플래쉬 메모리부(1210) 내의 10개의 메모리 소자 M(0)∼M(91)에 각각 병렬로 입력된다. 그리고, 이 직렬 데이터 내의 어드레스 정보가 자기의 기억영역 내의 섹터에 대응하는 경우에는, 이들 메모리 소자 M(0)∼M(9)이 그 섹터에 직렬 데이터를 기록한다(S1307).
도 15는 메모리 소자 M(0)∼M(9) 내의 섹터구성을 나타내는 도면이다. 이 도면에 도시한 바와 같이, 각 메모리 소자 M(0)∼M(9)은 m+1개의 섹터 S(0)∼S(m)를 구비하고 있다. 이와 같이, 상술한 직렬 데이터는, 이것들의 각 섹터 S(0)∼S(피) 중, 어드레스 정보로 지정된 섹터 내에 기억된다.
한편, 스텝 S1302에 있어서, 마이크로 CPU(1231) 내부에 페치된 명령정보가 판독명령인 경우에는, 이 마이크로 CPU(1231)는 어드레스 정보를 플래쉬 메모리 인터페이스(1225)로 전송한다(S1308). 그리고, 플래쉬 메모리 인터페이스(1225)는 이 어드레스에 대응하는 섹터에 기억된 직렬 데이터를 판독한다(S1309). 계속해서, ECC 제어부(1226)가 이 직렬 데이터 중의 주데이터 및 ECC 데이터를 플래쉬 메모리 인터페이스(1225)로부터 판독하고, 데이터 에러의 발생의 유무를 검출한다(S1310). 그리고, 데이터 에러 중 COR의 발생이 검출되었을 때는, 그 에러를 정정하여, 플래쉬 메모리 인터페이스(1225)로 그것을 전송한다(S1310). 한편, UNC가 검출되었을 때는, 마이크로 CPU(1231)는 데이터가 UNC인 것을 나타내는 플래그(이하 에러 플래그라고 칭함)를 세트한다. 그 후, 데이터 전송 제어부(1224)의 제어에 의해, 플래쉬 메모리 인터페이스(1225) 내의 데이터(COR이 발생한 경우에는, 정정 후의 데이터)가 데이터 버퍼(1223) 및 호스트 인터페이스(1221)를 통해, 반도체 디스크 장치(1200)의 외부로 출력된다(S1311).
또한, 이 반도체 디스크 장치(1200)는 데이터 에러(COR 또는 UNC)가 소정 회수이상 검출된 섹터를 열화섹터라고 간주한다. 그리고, 그 후의 기록에서는, 그 열화섹터 대신에, 대체 섹터 D(0)∼D(n)(도 15참조) 중 하나 또는 다른 것을 사용한다. 여기서, 대체 섹터 D(0)∼D(n)를 사용하는 것으로 결정한 경우에는, 관리정보영역(1501)(도 15를 참조)에서, 이러한 열화섹터의 어드레스 정보와 함께, 이 열화섹터 대신에 사용되는 대체 섹터의 어드레스 정보가 기억된다(S1312). 이에 따라, 그 후의 기록처리에 있어서, 외부에서 디스크 콘트롤러(1220)로 입력된 어드레스 정보가 열화섹터의 어드레스인 경우에는, 이 열화섹터에 대응하는 대체 섹터에 직렬 데이터가 기록된다.
이와 같이, 종래의 반도체 디스크 장치(1200)에서는, 열화섹터가 발생한 경우에, 열화섹터 대신에 대체섹터를 사용함으로써, 장치의 신뢰성을 유지하려고 시도했었다.
그렇지만, 이러한 반도체 디스크 장치(1200)에서는, 상술한 바와 같이, 정정불가능한 데이터 에러(즉, UNC)가 발생할 수 있어, 한 개의 메모리 소자 내의 다수의 섹터가 거의 동시에 열화하는 경우에는, 대량의 데이터 에러가 동시에 발생하여, 데이터가 소실된다. 이 때문에, 종래의 반도체 디스크 장치(1200)의 장치 신뢰성이 불충분하다고 하는 결점이 있었다.
또한, 이 반도체 디스크 장치(1200)에서는, 어느 1개의 메모리 소자에서의 열화섹터의 수가 대체섹터의 수를 넘은 경우에는, 열화섹터에 대한 대체를 할 수 없기 때문에, 소자 전체를 이용할 수 없게 된다. 따라서, 이러한 메모리 소자에는 열화하지 않고 있는 섹터도 사용할 수 없기 때문에, 소자 전체의 수명이 매우 짧게 되어 버린다고 하는 결점이 있었다.
또, 여기서는 플래쉬 메모리 소자를 사용한 반도체 디스크 장치를 예로 들어서 설명하였지만, 이러한 결점은 소자들이 열화되는 동안에, 다른 형태의 메모리 소자를 사용하고 있는 기억장치에서도 발생할 수 있다.
열화가 문제로 되는 메모리 소자를 사용한 반도체 기억장치에 있어서, 본 발명의 목적은 이 기억장치의 신뢰성을 향상시켜서, 그것의 수명을 길게 하는 것에 있다.
본 발명에 따르면, 다음과 같은 구성에 의해서 상기 목적을 달성할 수 있다.
(1) 본 발명의 제 1 관점에 따른 반도체 기억장치는, 통상 섹터 혹은 예비섹터로서 사용되는 복수개의 섹터를 갖는 복수의 메모리 소자를 구비한 기억부와, 외부에서 입력된 어드레스 정보에 따라서 메모리 소자에 대한 데이터의 기록/판독을 행하는 제어부와, 메모리 소자의 기록/판독 에러의 발생상황을 기억하는 데이터 에러정보 관리 테이블과, 이 데이터 에러정보 관리 테이블에 기억된 기록/판독에러의 발생상황에 따라서 메모리 소자의 열화를 검출하는 열화 검출부와, 이 열화 검출부에 의해서 열화가 검출된 메모리 소자가 사용되지 않도록 어드레스 정보를 변환하는 어드레스 변환 테이블을 구비한다.
이러한 구성에 의하면, 에러정보 관리 테이블에 기억된 기록/판독에러의 발생상황에 따라서 각 메모리 소자의 열화상황을 정확히 판단할 수 있고, 열화가 심한 메모리 소자를 사용하지 않도록 배치할 수 있기 때문에, 반도체 기억장치의 신뢰성을 향상시킬 수 있다.
또한, 본 발명의 제 1 관점에 따르면, 어드레스 정보가 어드레스 변환 테이블에 의해 변환되기 때문에, 열화 메모리 소자 내의 각각의 섹터 대신에 다른 메모리 소자 내의 예비섹터가 사용되도록 배치하여, 열화소자가 발생한 경우에 기억 용량의 감소를 억제할 수 있기 때문에, 반도체 기억장치의 수명을 길게 할 수 있다.
(2) 본 발명의 제 2 관점에 따른 반도체 기억장치의 제어방법은 통상 섹터 혹은 예비섹터로서 사용되는 복수개의 섹터를 갖는 복수개의 메모리 소자의 기록/판독 에러의 발생상황을 데이터 에러정보 관리 테이블에 기억하는 단계와, 이 기억단계에서 데이터 에러정보 관리 테이블에 기억된 기록/판독 에러의 발생상황에 따라서, 열화 검출부가 메모리 소자의 열화를 검출하는 단계와, 이 검출단계에서 열화검출부가 열화를 검출한 메모리 소자를 사용하지 않도록, 어드레스 변환 테이블로 어드레스 정보를 변환하는 단계를 구비한다.
이러한 제어방법에 의하면, 기억단계에서 에러정보 관리 테이블에 기억된 기록/판독 에러의 발생상황에 따라서, 메모리 소자의 열화가 검출단계에서 검출될 수 있고, 또 열화가 심한 메모리 소자를 사용하지 않도록 배치할 수 있기 때문에, 반도체기억장치의 신뢰성을 향상시킬 수 있다.
또한, 본 발명의 제 2 관점에 따르면, 어드레스 정보가 어드레스 변환 테이블에 의해 변환되기 때문에, 열화 메모리 소자 내의 각각의 섹터 대신에 다른 메모리 소자 내의 예비섹터가 사용되도록 배치하여, 열화소자가 발생한 경우에 기억 용량의 감소를 억제할 수 있기 때문에, 반도체 기억장치의 수명을 길게 할 수 있다.
본 발명의 다른 목적 및 이점에 대해서는 첨부도면을 참조하면서 설명한다.
도 1은 제 1 실시예에 따른 반도체 기억장치의 구성을 개략적으로 나타내는 블록도,
도 2는 제 1 실시예에 따른 데이터 에러정보 관리 테이블의 구성을 나타내는 개념도,
도 3은 제 1 실시예에 따른 어드레스 변환 테이블의 구성을 나타내는 개념도,
도 4a 및 도 4b는 제 1 실시예에 따른 반도체 기억장치의 동작을 설명하기 위한 플로우챠트,
도 5는 제 2 실시예에 따른 데이터 에러정보 관리 테이블의 구성을 나타내는 개념도,
도 6a 및 도 6b는 제 2 실시예에 따른 반도체 기억장치의 동작을 설명하기 위한 플로우챠트,
도 7은 제 3 실시예에 따른 데이터 에러정보 관리 테이블의 구성을 나타내는 개념도,
도 8a 및 도 8b는 제 3 실시예에 따른 반도체 기억장치의 동작을 설명하기 위한 플로우챠트,
도 9는 제 4 실시예에 따른 메모리 소자의 섹터 구성을 나타내는 개념도,
도 10은 제 4 실시예에 따른 어드레스 변환의 원리를 설명하기 위한 개념도,
도 11a 및 도 11b는 제 4 실시예에 따른 반도체 기억장치의 동작을 설명하기 위한 플로우챠트,
도 12는 종래의 반도체 기억장치의 구성 예를 개념적으로 나타내는 블록도,
도 13은 종래의 반도체 기억장치의 동작을 설명하기 위한 플로우챠트,
도 14는 종래의 반도체 기억장치에 있어서의 플래쉬 메모리 인터페이스 내에서 작성되는 직렬 데이터의 구성을 나타내는 개념도,
도 15는 종래의 반도체 기억장치의 플래쉬 메모리부에 설치된 각 메모리 소자 내의 섹터구성을 나타내는 개념도.
도면의 주요부분에 대한 부호의 설명
100 : 반도체 디스크 장치 110 : 플래쉬 메모리부
120 : 디스크 콘트롤러부 121 : 호스트 인터페이스
122 : 마이크로 CPU 인터페이스 123 : 데이터 버퍼
124 : 데이터 전송 제어부 125 : 플래쉬 메모리 인터페이스
126 : ECC 제어부 127 : 데이터 에러 정보 관리 테이블
128 : 어드레스 변환 테이블 130 : 마이크로 콘트롤러부
131 : 마이크로 CPU 132 : 프로그램 메모리
이하, 본 발명의 실시예에 관해서, 도면을 사용하여 설명한다. 또, 도면 중, 각 구성성분의 크기, 형상 및 배치관계는 본 발명을 이해할 수 있는 정도로 개략적으로 나타낸 것에 지나지 않고, 또한, 이하에 설명하는 수치적 조건은 단순한 예시에 지나지 않는 다는 것을 이해할 수 있을 것이다.
제 1 실시예
우선, 본 발명의 제 1 실시예에 따른 반도체 기억장치 및 그 제어방법에 관해서, 플래쉬 메모리를 사용한 반도체 디스크 장치를 예로 들어서 설명한다.
도 1은 제 1 실시예에 따른 반도체 디스크 장치의 구성을 개략적으로 나타내는 블록도이다.
이 도면에 도시한 바와 같이, 이 반도체 디스크 장치(100)는 플래쉬 메모리부(110)와, 디스크 콘트롤러부(120)와, 마이크로 콘트롤러부(130)를 구비하고 있다.
플래쉬 메모리부(110)는 10개의 메모리 소자 M(0)∼M(9)을 구비하고 있다. 이것들의 메모리 소자 M(0)∼M(9)은 각각 외부에서 입력되는 시스템 클럭신호(미도시)의 타이밍에 따라서, 플래쉬 메모리 인터페이스(125)(후술)와 직렬 데이터를 교환한다. 각 메모리 소자 M(0)∼M(9)의 섹터구성은 종래의 경우(도 15 참조)와 마찬가지기 때문에 설명을 생략한다.
디스크 콘트롤러부(120)에 있어서, 호스트 인터페이스(121)는 어드레스 정보 및/또는 명령정보 또는 주데이터 등을 전송하기 위한 인터페이스이다. 또한, 마이크로 CPU 인터페이스(122)는 디스크 콘트롤러부(120)와 마이크로 콘트롤러부(130)(후술)에 대하여 어드레스 정보 및/또는 명령정보 또는 제어신호 등을 전송하기 위한 인터페이스이다.
데이터 버퍼(123)는 플래쉬 메모리 인터페이스(125)와 호스트 인터페이스(121)에 대하여 주데이터 등을 전송하기 위한 버퍼이다.
데이터 전송 제어부(124)는, 플래쉬 메모리 인터페이스(125)가 데이터 버퍼(123) 및 호스트 인터페이스(121)를 통해 외부와의 데이터 전송을 행할 때에, 이 플래쉬 메모리 인터페이스(125)의 동작을 제어한다.
플래쉬 메모리 인터페이스(125)는 데이터 기록시에는, 어드레스 정보, 명령정보, 주데이터 및 ECC 데이터를 사용하여 직렬 데이터를 작성한 후, 플래쉬 메모리부(110)로 보낸다. 또한, 데이터 판독시에는, 플래쉬 메모리부(110)로부터 직렬 데이터를 입력하여 주데이터 및 ECC 데이터를 추출하여 ECC 제어부(126)(후술)에 보내는 동작 및/또는 이러한 주데이터(또는 ECC 제어부(126)로부터 정정한 후의 주데이터)를 데이터 버퍼(123)에 출력하는 동작을 행한다. 또, 직렬 데이터의 구성은 종래의 경우(도 14 참조)와 마찬가지기 때문에, 설명을 생략한다.
ECC 제어부(126)는 데이터 기록시에는, 플래쉬 메모리 인터페이스(125)로부터 기록 데이터를 페치하여 ECC 데이터를 작성한 후, 플래쉬 메모리 인터페이스(125)로 보낸다. 또한, 데이터 판독시에는, 주데이터 및 ECC 데이터를 플래쉬 메모리 인터페이스(125)로부터 입력하여 데이터 에러의 발생의 유무를 검출하는 동작 및/또는 COR의 발생이 검출되었을 때에 주데이터를 정정하는 동작 등을 행한다.
데이터 에러정보 관리 테이블(127)은, 데이터 에러의 발생회수를, COR과 UNC으로 분류하여, 메모리 소자 M(0)∼M(9)의 각 섹터마다 기억한다.
도 2는, 데이터 에러정보 관리 테이블(127)의 구성을 나타내는 개념도이다. 이 도면에 있어서, 물리 메모리번호 0, 1, ...., 9는 각각 메모리 소자 M(0), M(1), ..., M(9)에 할당되어 있다. 또한, 섹터번호는 각각 메모리 소자 M(0)∼M(9)에 설정된 m+1개의 섹터 S(0)∼S(m)와 n+1개의 대체섹터 D(0)∼D(n)(도 15참조)에 할당되어 있다. 그리고, 이것들의 섹터마다, COR의 발생회수 및 UNC의 발생회수가 기억된다. 여기서, COR의 발생회수 및 UNC의 발생회수의 재기록은 마이크로 CPU(131)(후술)에 의해서 행해진다.
한편, 도 1에 있어서, 어드레스 변환 테이블(128)은 메모리 소자 M(0)∼M(9) 중 어느 한 개 또는 그 이상이 사용되지 않은 경우(후술)에, 어드레스 정보 중의 메모리번호를, 물리 메모리번호로부터 논리 메모리번호로 변환한다.
도 3은 이러한 어드레스 변환 테이블(128)의 구성을 나타내는 개념도이다. 이 도면에 도시한 바와 같이, 메모리 소자 M(0)∼M(9)중 어느 것도 사용되지 않은 경우에, 이 어드레스 변환 테이블(128)이 사용되고, 예컨대 물리 메모리번호 k의 메모리 소자가 사용되지 않은 경우에는(이때, 사용할 수 있는 메모리 소자의 개수는 9이다), 다른 각 메모리 소자(물리번호 0∼k-1, k+1∼9)에 할당되어 논리 메모리번호 0∼8이 순차 기록된다(도 3 참조). 이와 같이, 외부의 호스트 컴퓨터(미도시)로부터 입력된 어드레스 정보 중의 메모리번호를 물리 메모리번호로 변환하여 출력한다. 또한, 사용되지 않은 메모리 소자의 수가 증가한 경우에는, 논리 메모리번호가 더 재기록된다. 또, 어드레스 변환을 행하는지 아닌지의 판단 및 논리 메모리번호의 재기록은 마이크로 CPU(131)(후술)에 의해 행해진다.
도 1에 나타낸 마이크로 콘트롤러부(130)에 있어서의 마이크로 CPU(131)는 호스트 인터페이스(121) 및 마이크로 CPU 인터페이스(122)를 통해 외부에서 입력된 명령정보 및/또는 어드레스 정보 등에 따라서, 플래쉬 메모리부(110) 및 디스크 콘트롤러부(120)를 제어한다.
프로그램 메모리(132)는 마이크로 CPU(131)를 동작시키기 위한 프로그램을 저장한다. 또한, 이 프로그램 메모리(132)에는, 어드레스 변환 테이블(128)을 사용하여 어드레스 변환처리를 행하는지 아닌지를 설정하기 위한 플래그를 구성하는 축퇴운전 요구/불요구 플래그(미도시)와, 출력 데이터가 정상 데이터인지 에러 데이터인지를 나타내는 에러 플래그가 설치되어 있다.
다음에, 이 실시예에 관한 반도체 디스크 장치(100)의 동작에 관해서, 도 4a 및 도 4b의 플로우챠트를 사용하여 설명한다.
우선, 종래의 경우와 같이, 반도체 디스크 장치(100)의 외부에서, 호스트 인터페이스(121)를 통해 명령정보 및 어드레스 정보가 입력된다. 이들 정보의 목록은 마이크로 CPU 인터페이스(122)를 통해, 마이크로 콘트롤러부(130) 내의 마이크로 CPU(131)로 전송된다(S401).
다음에, 마이크로 CPU(131)가 명령정보의 내용을 디코드한다(S402). 그리고, 이 명령정보가 기록 명령인 경우에는, 외부에서 주데이터가 입력된다(S403). 이 주데이터는 호스트 인터페이스(121)를 통해 데이터 버퍼(123)에 입력된다.
계속해서, 마이크로 CPU(131)는 축퇴운전 요구/불요구 플래그의 상태를 체크한다(S404). 그리고, 축퇴운전 요구/불요구 플래그가 요구라고 되어 있을 때는, 어드레스 정보로부터 추출한 물리 메모리번호를 어드레스 변환 테이블(128)로 전송하고, 이 어드레스 변환 테이블(128)로부터 변환된 메모리번호(즉, 논리 메모리번호)를 받아들인다(S405). 한편, 이 축퇴운전 요구/불요구 플래그가 불요구로 되어 있을 때에는, 어드레스 정보의 변환을 행하는 일없이, 어드레스 정보, 명령정보 및 주데이터를 플래쉬 메모리 인터페이스로 보낸다(S406).
ECC 제어부(126)는 플래쉬 메모리 인터페이스(125)로부터 주데이터를 받아들여서CC 데이터를 작성하여, 플래쉬 메모리 인터페이스(125)로 보낸다(S407). 그리고, 이 플래쉬 메모리 인터페이스(125) 내에서, 종래와 같은 직렬 데이터(도 14참조)가 작성된다(S408).
이러한 직렬데이터는 플래쉬 메모리 인터페이스(125)로부터 플래쉬 메모리부(110) 내의 10개의 메모리 소자 M(0)∼M(9)에, 각각 병렬로 입력된다. 각 메모리 소자 M(0)∼M(9)은, 직렬 데이터에 포함된 어드레스 정보 내의 메모리번호가 자기의 메모리번호와 일치하는 경우에는, 이 직렬 데이터를 받아들인다. 그리고, 직렬 데이터의 어드레스 정보에 의해서 지정된 섹터 내에, 이 직렬데이터를 기록한다(S409). 그 결과, 이 실시예에 관한 각 메모리 소자 M(0)∼M(9)에서, 종래의 메모리 소자의 경우(도 15참조)와 같이, 어드레스 정보에 해당하는 섹터가 열화된 경우에는, 관리정보영역(1501)의 내용에 따라서, 대체섹터 D(0)∼D(n) 중 어느 하나에 직렬 데이터가 기록된다.
한편, 스텝 S402에 있어서, 명령정보가 판독 명령인 경우에는, 마이크로 CPU(131)는 축퇴운전 요구/불요구 플래그의 상태를 체크한다(S410). 그리고, 이 축퇴운전 요구/불요구 플래그가 불요구로 되어 있을 때는, 어드레스 정보를 그대로 플래쉬 메모리 인터페이스로 보낸다(S412). 한편, 축퇴운전 요구/불요구 플래그가 요구로 되어 있을 때는, 어드레스 정보에 포함된 물리 메모리번호를 어드레스 변환 테이블(128)로 보낸 후에, 이 어드레스 변환 테이블(128)로부터 변환된 메모리번호(즉, 논리 메모리번호)를 수신하고, 그 결과, 이러한 논리 메모리번호를 포함하는 어드레스 정보를 명령정보와 함께 플래쉬 메모리 인터페이스로 보낸다(S412).
플래쉬 메모리 인터페이스(125)는 이 어드레스에 해당하는 섹터에 기억된 직렬 데이터를 판독한다(S413). 이 때, 상술한 기록 동작의 경우와 같이, 대체섹터 D(0)∼D(9) 중 어느 것이든 사용되면, 관리정보영역(1501)의 내용에 따라서, 이러한 대체섹터로부터의 판독이 행해진다.
다음에, ECC 제어부(126)가 이 직렬 데이터 중의 주데이터 및 ECC 데이터를 플래쉬 메모리 인터페이스(125)로부터 판독하여, 데이터 에러의 발생의 유무를 체크한다(S414). 그리고, 데이터 에러 COR이 검출되면, 그 에러를 정정하여, 플래쉬 메모리 인터페이스(125)로 보낸다(S414). 한편, ECC 제어부(126)가 UNC를 검출하면, 마이크로 CPU(131)는 데이터가 UNC인 것을 나타내는 에러 플래그를 세트한다(S414).
다음에, 상술한 에러체크(S414)로 데이터 에러가 검출되는지 아닌지를 판단한다(S415). 그리고, 데이터 에러가 검출된 경우에는, 계속해서, 데이터 에러정보 관리 테이블(127)의 재기록을 행한다(S416). 여기서, 이 데이터 에러정보 관리 테이블(127)의 재기록은 에러가 발생한 각 섹터의 COR의 발생회수 또는 UNC 발생회수를, 1씩 증가시킴으로써 행해진다.
다음에, 마이크로 CPU(131)는, 이 데이터 에러정보 관리 테이블(127)을 사용하여, 각 섹터의 COR 발생회수 및 UNC 발생회수를 소정의 값(이하, 데이터 에러 발생회수의 한계치라고 칭한다)과 비교한다. 그리고, COR 발생회수 또는 UNC 발생회수의 적어도 한편이 데이터 에러 발생회수의 한계치를 넘은 섹터는, 열화된 섹터라고 판단한다(S417). 열화섹터가 검출된 경우에는, 종래의 경우와 같이, 그 후의 기록 동작으로 대체섹터를 사용하기 위한 정보가 관리정보영역(1501)(도 15참조)에 저장된다(S418). 또, 이와 같이 새로운 열화섹터가 검출된 경우에는, 마이크로 CPU(131)는, 이들 열화섹터가 속하는 메모리 소자에 관해서, 열화섹터의 총수를 더하여, 이 총계값을 소정의 한계치(이하 섹터수 한계치라고 칭한다)와 비교한다. 그리고, 열화섹터의 총수가 섹터수 한계치를 넘는 경우에는, 이러한 메모리 소자가 열화라고 간주한다(S419). 또, 이와 같이 새로운 열화 메모리 소자가 검출된 경우에는, 마이크로 CPU(131)는 상술한 바와 같이, 어드레스 변환 테이블(128)의 논리 메모리번호를 재기록한다(S420).
그 후, 데이터 전송 제어부(124)의 제어하에서, 플래쉬 메모리 인터페이스(125) 내의 데이터(ECC에 의해 정정되었을 때에, 정정된 데이터)가, 데이터 버퍼(123) 및 호스트 인터페이스(121)를 통해, 반도체 디스크 장치(100)의 외부로 출력된다(S421).
또, ECC 제어부(126)에 의해서 UNC가 검출되었을 때에도, 에러 데이터가 그대로 출력된다. 이때, 출력 데이터가 정상 데이터인지 에러데이터인지의 판단은 프로그램 메모리(132)의 에러 플래그를 외부에서 판독함으로써 행해진다.
상술한 바와 같이, 이 실시예에 관한 반도체 디스크 장치(100)에 의하면, 데이터 에러정보 관리 테이블(127)에 기억된 기록/판독에러의 발생상황에 따라서, 각 메모리 소자 M(0)∼M(9)마다 열화섹터의 발생상황을 정확히 판단할 수 있다. 그리고, 어드레스 변환 테이블(128)을 사용하여, 발생된 열화섹터의 발생수가 많은 메모리 소자의 사용을 중지한다. 따라서, 메모리 소자의 고장에 의한 데이터의 대량의 상실을 방지할 수 있다.
또한, 메모리 소자 전체의 고장 또는 반도체 디스크 장치 전체의 고장의 가능성을 빠른 시기에 예상할 수 있기 때문에, 미리 기록 데이터의 백업을 취하는 등의 대응책도 가능해진다. 이것에 의해서, 데이터의 대량 상실을 방지할 수 있다.
또, 이 실시예에서는, COR 발생회수 또는 UNC 발생회수의 적어도 한편이 데이터 에러 발생회수 한계치를 넘은 섹터를 열화한다고 간주하였지만, 다른 판단방법을 채용하는 것도 가능하다. 예컨대, COR 발생회수와 UNC 발생회수로 데이터 에러 발생회수 한계치를 변경할 수 있고, 또는 COR 발생회수와 UNC 발생회수의 합이 데이터 에러 발생회수 한계치를 넘었을 때에 섹터가 열화되었다고 판단할 수 있을 것이다.
제 2 실시예
다음에, 본 발명의 제 2 실시예에 관한 반도체 기억장치 및 그 제어방법에 관해서, 플래쉬 메모리를 사용한 반도체 디스크 장치를 예로 들어 설명한다.
이 실시예에 관한 반도체 디스크 장치는, 섹터가 열화되었는지 아닌지의 판단을, COR 발생확률 및 UNC 발생확률에 의해서 행하는 점에서, 상술한 제 1 실시예와 다르다.
또, 반도체 디스크 장치(100)의 전체구성 및 어드레스 변환테이블(128)의 구성은 제 1 실시예의 경우(도 1 및 도 3 참조)와 마찬가지기 때문에, 설명을 생략한다.
도 5는 이 실시예에 관한 데이터 에러정보 관리 테이블(127)의 구성을 나타내는 개념도이다. 이 도면에 도시한 바와 같이, 이 실시예에 관한 데이터 에러정보 관리 테이블(127)은 COR의 발생회수 및 UNC의 발생회수를 기억하는 것에 덧붙여, 기록회수 및 판독회수를 기억한다는 점에서, 상술한 제 1 실시예의 경우(도 2 참조)와 다르다.
도 6a 및 도 6b는 이 실시예에 관한 반도체 디스크 장치(100)의 동작을 설명하기 위한 플로우챠트이다.
우선, 제 1 실시예의 경우(도 4a 및 도 4b)와 같이 명령정보 및 어드레스 정보가 호스트 인터페이스(121) 및 마이크로 CPU 인터페이스(122)를 통해 마이크로 CPU(131)에 입력된 후(S401), 이 마이크로 CPU(131)가 명령정보의 내용을 디코드한다(S402).
그리고, 이 명령정보가 기록 명령인 경우에는, 마이크로 CPU(131)는 제 1 실시예의 경우와 같이, 주데이터의 입력(S403) 및 축퇴운전 요구/불요구 플래그의 체크(S404)를 행하고, 축퇴운전 요구/불요구 플래그가 요구로 되어 있는 경우는, 어드레스 변환 테이블(128)을 사용하여, 메모리번호를 물리 메모리번호로 변환한 후(S405), 어드레스 정보, 명령정보 및 주데이터를 플래쉬 메모리 인터페이스로 보낸다(S406). 그리고, ECC 제어부(126)가 주데이터를 사용하여 ECC 데이터를 작성한 후(S407), 플래쉬 메모리 인터페이스(125)가 직렬 데이터(도 14 참조)를 작성하고(S408), 이 직렬 데이터를 상술한 어드레스 정보에 대응하는 섹터(이 섹터가 열화된 경우에는 소정의 대체섹터)에 기록한다(S409).
이 점에서, 이 실시예에서는, 직렬 데이터의 기록을 종료한 후에, 데이터 에러정보 관리 테이블(127)의 재기록을 행한다(S601). 즉, 이것은 기록을 행한 섹터의 기록 회수를 1 증가시킴으로써 행해진다.
한편, 스텝 S402에 있어서, 명령정보가 판독명령인 경우에는, 제 1 실시예의 경우와 같이, 마이크로 CPU(131)가 축퇴운전 요구/불요구 플래그의 상태를 체크하고(S410), 이것이 요구인 경우에는, 메모리번호를 물리 메모리번호로 변환한 후(S411), 어드레스 정보를 플래쉬 메모리 인터페이스(125)로 보낸다(S412). 그리고, 플래쉬 메모리 인터페이스(125)가 어드레스 정보에 대응하는 섹터(이 섹터가 열화된 경우에는, 소정의 대체섹터)부터 직렬 데이터를 판독하고(S413), ECC 제어부(126)에 의한 데이터 에러의 검출 및 정정과, 마이크로 CPU(131)에 의한 에러 플래그의 설정을 행한다(S414).
이러한 판독 동작에 계속해서, 이 실시예에서는, 데이터 에러정보 관리 테이블(127)의 재기록을 행한다(S602). 이 재기록에서는, 판독을 행한 섹터의 판독 회수를 각각 1씩 증가시킴과 동시에, 상술한 에러체크(S416)로 에러가 검출된 섹터의 COR 발생회수 또는 UNC 발생회수를 1씩j 증가시킨다.
다음에, 이 실시예에서는, 마이크로 CPU(131)가 데이터 에러정보 관리 테이블(127)을 사용하여, 섹터마다, 하기 수학식 1, 수학식 2를 사용하여, COR 발생확률 및 UNC 발생확률을 산출한다(S603).
그리고, 각 섹터의 COR 발생확률 및 UNC 발생확률을 소정의 한계치(이하, 데이터 에러 발생확률의 한계치라고 칭한다)와 비교한다. 그리고, COR 발생확률 또는 UNC 발생확률의 적어도 한편이 데이터 에러 발생확률 한계치를 넘은 섹터는 열화된다고 간주한다(S604). 열화섹터가 검출된 경우에는, 제 1 실시예의 경우와 같이, 그 후의 기록 동작에 의해 대체섹터를 사용하기 위한 정보를 관리정보영역(1501)(도 15 참조)에 저장하고(S418), 이 열화섹터가 속하는 메모리 소자에 있어서의 열화섹터의 총수를 더하여, 섹터수 한계치와 비교하며, 또, 열화섹터의 총수가 섹터수 한계치를 넘은 경우에는 메모리 소자가 열화된다고 간주하고(S419), 어드레스 변환 테이블(128)의 논리 메모리번호를 재기록한다(S420).
그 후, 제 1 실시예의 경우와 같이 플래쉬 메모리 인터페이스(125) 내의 데이터(ECC 에 의한 정정이 있는 경우에 정정된 데이터)가, 데이터 버퍼(123) 및 호스트 인터페이스(121)를 통해, 반도체 디스크 장치(100)의 외부에 출력된다(S421).
이와 같이, 이 실시예에서는, 섹터가 열화되는지 아닌지의 판단을, COR 발생확률 및 UNC 발생확률에 의해서 행한다. 따라서, 예컨대 다른 섹터와 비교하여 데이터 에러의 발생회수는 적지만 기록회수 또는 판독회수도 적은 섹터에 관해서도 열화인지 아닌지의 판단을 행할 수 있기 때문에, 열화섹터의 발생상황을, 보다 정확히 판단할 수 있다.
또한, 어드레스 변환 테이블(128)을 사용하여, 열화섹터의 발생수가 많은 메모리 소자를 사용하지 않도록 배치될 수 있는 점에서, 또는 메모리 소자 전체의 고장 및 반도체 디스크 장치 전체의 고장의 가능성을 빠른 시기에 예상할 수 있는 점에서, 상술한 제 1 실시예와 마찬가지다.
또, 이 실시예에서는, COR 발생회수 또는 UNC 발생회수의 적어도 한편이 데이터 에러발생 확률 한계치를 넘은 섹터를 열화했다고 판단하였지만, 다른 판단방법을 채용하는 것도 가능하다. 예컨대, 데이터 에러발생 확률 한계치를 COR 발생확률과 UNC 발생확률로 변경할 수 있거나, COR와 UNC를 구별하는 일없이 데이터 에러 발생확률을 산출할 수 있다.
제 3 실시예
다음에, 본 발명은 본 발명의 제 3 실시예에 관한 반도체 기억장치 및 그 제어방법에 관해서, 플래쉬 메모리를 사용한 반도체 디스크 장치를 예로 들어서 설명한다.
이 실시예에 관한 반도체 디스크 장치는 섹터가 열화인지 아닌지의 판단을 소정의 기록/판독 회수(예컨대 1만회)마다의 에러 발생회수(COR 혹은 UNC)에 의해서 행하는 점에서, 상술한 실시예와 다르다.
또, 반도체 디스크 장치(100)의 전체구성 및 어드레스 변환 테이블(128)의 구성은 제 1 실시예의 경우(도 1 및 도 3 참조)와 마찬가지기 때문에, 설명을 생략한다.
도 7은 이 실시예에 관한 데이터 에러정보 관리 테이블(127)의 구성을 나타내는 개념도이다. 이 도면에 도시한 바와 같이, 이 실시예에 관한 데이터 에러정보 관리테이블(127)은 기록 회수 및 판독 회수를 기억함과 동시에, COR의 발생시의 회수 및 UNC의 발생시의 회수를 기억한다. 여기서, COR의 발생시의 회수는, 소정의 기록/판독 회수(여기서는 1만회로 한다)마다의 COR의 발생회수를 의미한다. 특히, 기록회수 및 판독회수의 합계가 1회째∼10000회째인 경우에 발생한 COR의 수는 기억영역 C1에 섹터마다 기억된다. 또한, 기록 회수와 판독 회수의 합이 10001회째∼20000회째인 경우에 발생한 COR의 수는 기억영역 C2에 섹터마다 기억된다. 마찬가지로, UNC의 발생시의 회수는, 소정의 기록/판독 회수마다의 UNC의 발생회수를 의미하고, 기록/판독 회수의 10000회마다 기억영역 U1∼Uh에 각각 기억된다.
도 8a 및 도 8b는 이 실시예에 관한 반도체 디스크 장치(100)의 동작을 설명하기 위한 플로우챠트이다.
우선, 상술한 각 실시예의 경우(도 4a 및 도 4b, 도 6a 및 도 6b 참조)와 같이, 명령정보 및 어드레스 정보가 호스트 인터페이스(121) 및 마이크로 CPU 인터페이스(122)를 통해 마이크로 CPU(131)에 입력된 후(S401), 이 마이크로 CPU(131)가 명령정보의 내용을 디코드한다(S402).
그리고, 이 명령정보가 기록명령인 경우에는, 마이크로 CPU(131)는 상술한 각 실시예의 경우와 같이, 주데이터의 입력(S403) 및 축퇴운전 요구/불요구 플래그의 체크(S404)를 행하고, 축퇴운전 요구/불요구 플래그가 요구로 되어 있는 경우는 어드레스 변환 테이블(128)을 사용하여 메모리번호를 물리 메모리번호로 변환한 후에(S405), 어드레스 정보, 명령정보 및 주데이터를 플래쉬 메모리 인터페이스로 보낸다(S406). 그리고, ECC 제어부(126)가 주데이터를 사용하여 ECC 데이터를 작성한 후(S407), 플래쉬 메모리 인터페이스(125)가 직렬 데이터(도 14 참조)를 작성하고(S408), 이 직렬 데이터를 상술한 어드레스 정보에 대응하는 섹터(이 섹터가 열화된 경우에는 소정의 대체섹터)에 기록한다(S409).
또, 제 2 실시예의 경우와 같이, 직렬 데이터의 기록이 종료한 후에, 데이터 에러정보 관리 테이블(127)의 기록 회수의 재기록을 행한다(S601).
한편, 스텝 S402에 있어서, 명령정보가 판독명령인 경우에는, 제 1 실시예의 경우와 같이, 마이크로 CPU(131)가 축퇴운전 요구/불요구 플래그의 상태를 체크하고(S410), 요구인 경우에는 메모리번호를 물리 메모리번호로 변환한 후에(S411), 어드레스 정보를 플래쉬 메모리 인터페이스(125)로 보낸다(S412). 그리고, 플래쉬 메모리 인터페이스(125)가 어드레스 정보에 대응하는 섹터(이 섹터가 열화된 경우에는 소정의 대체섹터)부터 직렬데이터를 판독하고(S413), ECC 제어부(126)에 의한 데이터 에러의 검출 및 정정과, 마이크로 CPU(131)에 의한 에러 플래그의 설정을 행한다(S414).
계속해서, 마이크로 CPU(131)의 제어하에서, 데이터 에러정보 관리 테이블(127)의 재기록을 행한다(S602). 이 재기록에서는, 우선, 판독을 행한 섹터의 판독 회수를 각각 1 증가시킨다. 그리고, 상술한 에러체크(S414)로 에러가 검출된 섹터의 COR 발생회수 또는 UNC 발생회수의 재기록을 행한다(S801). 상술한 바와 같이, 이 재기록에서는, 섹터의 기록회수와 판독회수의 합이 1만회 이하인 경우에는, 기억영역 C1의 기억값을 1 증가시키고, 10001회 이상 20000회 이하인 경우에는, 기억영역 C2의 기억값을 1증가시킨다.
계속해서, 이 실시예에서는, 마이크로 CPU(131)가 이 데이터 에러정보 관리 테이블(127)을 사용하여, COR의 발생시의 회수 및 UNC의 발생시의 회수를 소정의 한계치(이하, 데이터 에러가 발생한 경우의 회수 한계치라고 칭한다)와 비교한다(S801). 그리고, COR 발생시의 회수 또는 UNC 발생시의 회수의 적어도 한편이 데이터 에러 발생시의 회수 한계치를 넘은 섹터는 열화라고 간주한다(S802). 그 결과, 열화섹터가 검출된 경우에는, 제 1 실시예의 경우와 같이, 그 후의 기록동작으로 대체섹터를 사용하기 위한 정보를 관리정보영역(1501)(도 15 참조)에 저장하고(S418), 이 열화섹터가 속하는 메모리 소자에서의 열화섹터의 총수를 더하여, 섹터수 한계치와 비교하며; 또 열화섹터의 총수가 섹터수 한계치를 넘은 경우에는, 메모리 소자가 열화라고 간주하고(S419), 어드레스 변환 테이블(128)의 논리 메모리번호를 재기록한다(S420).
그 후, 제1의 실시예의 경우와 같이, 플래쉬 메모리 인터페이스(125) 내의 데이터(ECC에 의한 정정이 있는 경우는, 정정된 데이터)가 데이터 버퍼(123) 및 호스트 인터페이스(121)를 통해, 반도체 디스크 장치(100)의 외부로 출력된다(S421).
이와 같이, 이 실시예에서는, 섹터가 열화되었는지 아닌지의 판단을, COR 발생시의 회수 및 UNC 발생시의 회수에 의해서 행한다. 그 결과, 기록/판독의 회수가 일정수를 넘은 후에 데이터 에러의 발생빈도가 급격히 증가하는 특성을 갖는 메모리 소자 M(0)∼M(9)이 사용되는 경우에, 열화섹터의 발생상황을 정확히 판단할 수 있다.
또한, 어드레스 변환 테이블(128)을 사용하여, 열화섹터의 발생수가 많은 메모리 소자를 사용하지 않도록 할 수 있는 점에서, 그리고 메모리 소자 전체의 고장 또는 반도체 디스크 장치 전체의 고장의 가능성을 빠른 시기에 예상할 수 있는 점에서 상술한 제 1 실시예와 마찬가지다.
또, 이 실시예에서는, COR 발생시의 회수 또는 UNC 발생시의 회수의 적어도 한편이 데이터 에러의 발생시의 회수 한계치를 넘었는지의 여부를 확립함으로써 섹터가 열화되었는지에 관한 판단을 수행했지만, 다른 판단방법을 채용하는 것도 가능하다. 예컨대, 데이터 에러의 발생시의 회수 한계치를 COR 발생시의 회수와 UNC 발생시의 회수로 변경할 수 있거나, COR 발생시의 회수 및 UNC 발생시의 회수가 함께 데이터 에러의 발생시의 회수 한계치를 넘었을 때에 열화가 발생했다고 간주할 수 있다.
또한, COR 또는 UNC의 발생시의 회수 대신에, 이러한 데이터 에러의 연속적인 발생회수에 의해서 섹터의 열화를 판단하도록 배치될 수 있다. 이러한 판단방법에 의해서도, 기록/판독의 회수가 일정수를 넘은 후에 데이터 에러의 발생빈도가 급격히 증가하는 특성의 메모리 소자 M(0)∼M(9)이 사용되는 경우에, 열화섹터의 발생상황을 정확히 판단할 수 있다. 이러한 판단방법은 상술한 제 1 실시예에서 사용한 데이터 에러정보 관리 테이블(127)(도 2 참조)의 발생회수 대신에, 연속 발생회수를 기억하는 배치를 사용하여, 제 1 실시예의 경우와 실질적으로 같은 제어(도 4a 및 도 4b 참조)를 행함으로써 실현될 수 있다.
제 4 실시예
다음에, 본 발명의 제 4 실시예에 관한 반도체 기억장치 및 그 제어방법에 관해서, 플래쉬 메모리를 사용한 반도체 디스크 장치를 예로 들어 설명한다.
이 실시예에 관한 반도체 디스크 장치는, 메모리 소자가 열화한 경우에, 이러한 열화 메모리 소자의 각 섹터 대신에 다른 메모리 소자의 대체섹터를 사용한다는 점에서, 상술한 제 1 실시예와 다르다.
또, 반도체 디스크 장치(100)의 전체구성 및 데이터 에러정보 관리 테이블(127)의 구성은 제 1 실시예의 경우(도 1 및 도 2 참조)와 마찬가지기 때문에, 설명을 생략한다.
도 9는 각 메모리 소자 M(0)∼M(9) 내의 섹터구성을 나타내는 개념도이다. 도 9에 도시한 바와 같이, 각 메모리 소자 M(0)∼M(9)은 m+1개의 섹터 S(0)∼S(m)와, n+1개의 대체섹터 D(0)∼D(n)와, 관리정보영역(901)을 구비하고 있다. 후술한 바와 같이, 열화 메모리 소자가 없는 경우에는, 각 메모리 소자 M(0)∼M(9)의 대체섹터 D(0)∼D(n)는 전부 메모리 소자 내에 설치된 섹터 S(0)∼S(m)의 대체용으로 사용된다(도 9 참조). 한편, 열화 메모리 소자가 존재하는 경우(즉, 축퇴운전시)에는, 열화되지 않은 메모리 소자의 대체섹터 D(0)∼D(n) 중, 일부가 이들 메모리 소자의 대체에 사용되고, 그 외의 것은 열화 메모리 소자의 대체용으로 사용된다(도 9). 도 9에 나타낸 예에서는, 열화되지 않은 메모리 소자에 설치된 대체섹터의 중, x개의 대체섹터 D(0)∼D(x-1)는 그 메모리 소자용의 대체용으로 사용되고, 다른 대체섹터 D(x)∼D(n)는 열화 메모리 소자의 대체용으로 사용된다. 또, 관리정보영역(901)에는, 그 메모리 소자 내에서 발생한 열화섹터의 대체용으로 사용되는 대체섹터 D(0)∼D(x-1)에 관한 정보만이 기억되고, 다른 열화 메모리 소자의 대체용으로 사용되는 대체 섹터 D(x)∼D(n)의 정보는 기억되지 않는다.
도 10은 이 실시예에 관한 어드레스 변환의 원리를 설명하기 위한 개념도이다. 이 도면에 도시한 바와 같이, 이 어드레스 변환 테이블(128)은 예컨대 메모리 소자 M(j), 즉 물리 메모리번호가 j의 메모리 소자가 사용되지 않게 된 경우에는, 다른 메모리 소자 M(0)∼M(j-1), M(j+1)∼M(9) 내의 대체섹터가 할당된다. 특히, 메모리 소자 M(j) 내에 설치된 섹터 S(0)∼S(g) 대신에, 메모리 소자 M(0)의 대체섹터 D(x)∼D(x+g)를 사용하고, 메모리 소자 M(j) 내에 설치된 섹터 S(g+1)∼S(2g) 대신에, 메모리 소자 M(1)의 대체섹터 D(x)∼Dj(x+g)를 사용하며, 이와 같이 각 메모리 소자 M(2)∼M(j-1), M(j+1)∼M(9)의 대체섹터의 경우에는 임의의 섹터 개수가 할당된다. 또, 열화 메모리 소자의 개수가 증가한 경우에는, 나머지의 각 메모리 소자의 대체섹터가 더 할당된다.
도 11a 및 도 11b는 이 실시예에 관한 반도체 디스크 장치(100)의 동작을 설명하기 위한 플로우챠트이다.
우선, 제 1 실시예의 경우(도 4)와 같이, 명령정보 및 어드레스 정보가 호스트 인터페이스(121) 및 마이크로 CPU 인터페이스(122)를 통해 마이크로 CPU(131)로 입력되고(S401), 이 마이크로 CPU(131)가 명령정보의 내용을 디코드한다(S402).
그리고, 이 명령정보가 기록 명령인 경우에는, 마이크로 CPU(131)는 상술한 각 실시예의 경우와 같이, 주데이터의 입력(S403) 및 축퇴운전 요구/불요구 플래그의 체크(S404)를 행하고, 축퇴운전 요구/불요구 플래그가 요구로 되어 있는 경우는 어드레스 변환 테이블(128)을 사용하여, 메모리 번호를 물리 메모리번호로 변환한 후(S405), 어드레스 정보, 명령정보 및 주데이터를 플래쉬 메모리 인터페이스로 보낸다(S406). 그리고, ECC 제어부(126)가 주데이터를 사용하여 ECC 데이터를 작성한 후에(S407), 플래쉬 메모리 인터페이스(125)가 직렬 데이터(도 14 참조)를 작성하고(S408), 이 직렬 데이터를 상술한 어드레스 정보에 대응하는 섹터(이 섹터가 열화되는 경우에, 소정의 대체섹터)에 기록한다(S409).
한편, 스텝 S402에 있어서, 명령정보가 판독명령인 경우에는, 제 1 실시예의 경우와 같이, 마이크로 CPU(131)가 축퇴운전 요구/불요구 플래그의 상태를 체크한다(S410). 그리고, 이 축퇴 요구/불요구 플래그가 요구 인 경우에는, 상술한 어드레스 정보를 어드레스 변환 테이블(128)로 전송하고, 도 10에 도시한 바와 같이 어드레스 정보의 변환을 행한다(S1101). 즉, 도 10에 도시한 바와 같이, 열화 메모리 소자를 M(j)이라고 가정하면, 어드레스 정보 중의 메모리번호 0∼j-1 및 j+1∼9의 경우에는, 변환 전후의 어드레스 정보값은 동일하지만, 어드레스 정보 중의 메모리번호 j의 경우에는, 도 10에 도시한 바와 같이, 메모리번호 및 섹터번호의 재기록이 행해진다.
다음에, 변환후의 어드레스 정보가 플래쉬 메모리 인터페이스(125)로 전송된다(S412). 이 후에, 플래쉬 메모리 인터페이스(125)가 어드레스 정보에 대응하는 섹터(이 섹터가 열화하고 있을 때는, 소정의 대체섹터)부터 직렬데이터를 판독하고(S413), ECC 제어부(126)에 의한 데이터 에러의 검출 및 정정과, 마이크로 CPU(131)에 의한 에러 플래그의 설정을 행한다(S414).
계속해서, 상술한 에러체크(S414)로 데이터 에러가 검출되는지 아닌지를 판단하고(S415), 데이터 에러가 검출된 경우에는 제 1 실시예의 경우와 같이, 데이터 에러정보 관리 테이블(127)의 재기록을 행한다(S416). 그리고, 제 1 실시예의 경우와 같이, COR의 발생회수 및 UNC의 발생회수를 데이터 에러 발생회수의 한계치와 비교함으로써 열화인지 아닌지를 판단하고(S417), 열화섹터가 검출된 경우에는 관리정보영역(901)의 정보를 재기록한다(S418). 또, 제 1 실시예의 경우와 같이, 이 열화섹터가 속하는 메모리 소자가 열화인지 아닌지를 판단하고(S419), 메모리 소자가 열화한 경우는 어드레스 변환 테이블(128)의 정보를 재기록한다(S420).
그 후, 제 1 실시예의 경우와 같이, 플래쉬 메모리 인터페이스(125) 내의 데이터(ECC에 의한 정정이 있는 경우는 정정후의 데이터)가 데이터 버퍼(123) 및 호스트 인터페이스(121)를 통해, 반도체 디스크 장치(100)의 외부로 출력된다(S421).
이와 같이, 이 실시예에서는, 열화 메모리 소자가 발생한 경우에는, 다른 메모리 소자의 대체섹터를 사용하여 직렬 데이터의 기억을 행하였다. 그 결과, 이 실시예에 의하면, 열화 메모리 소자가 발생한 경우에 플래쉬 메모리부(110)의 기억용량의 감소를 최소화할 수 있다.
또한, 열화섹터의 발생상황을 정확히 판단할 수 있다는 점에서, 그리고 어드레스 변환 테이블(128)을 사용하여 열화섹터의 발생수가 많은 메모리 소자를 사용하지 않도록 배치할 수 있다는 점에서, 또 메모리 소자 전체의 고장 및 반도체 디스크 장치 전체의 고장의 가능성을 빠른 시기에 예상할 수 있는 점에서, 상술한 각 실시예와 동일하다.
또, 이 실시예에서는, 상술한 제 1 실시예와 같이, COR 또는 UNC의 발생회수를 데이터 에러 발생회수의 한계치와 비교함으로써 섹터의 열화를 판단하였지만, COR 또는 UNC의 발생확률과 데이터 에러 발생확률의 한계치를 비교함으로써(즉, 제 2 실시예와 같은 방법), 혹은 COR 또는 UNC의 발생시의 회수와 데이터 에러 발생시의 회수 한계치를 비교함으로써(즉, 제 3 실시예와 같은 방법) 섹터의 열화를 판단할 수 있다.
또한, 이상 설명한 실시예에서는, 각각 섹터의 열화를 단일 종류의 방법으로 판단하였지만, 복수 종류의 판단방법을 결합할 수도 있다. 예컨대, 데이터 에러 발생확률 한계치를 사용한 판단과 데이터 에러 발생시의 회수 한계치를 사용한 판단을 행할 수 있고, 한편의 데이터 에러 발생확률 또는 데이터 에러 발생시의 회수의 한편 혹은 양쪽이 한계치를 넘은 경우에, 열화섹터가 판단될 수 있다.
이상 상세히 설명한 바와 같이, 본 발명에 의하면, 열화가 문제로 되는 메모리 소자를 사용한 반도체 기억장치의 신뢰성을 향상시킬 수 있고, 또한 수명을 길게 할 수 있다.

Claims (20)

  1. 통상섹터 혹은 예비섹터로서 사용되는 복수개의 섹터를 갖는 복수개의 메모리 소자를 구비한 기억부와,
    외부에서 입력된 어드레스 정보에 따라서 메모리 소자에 대한 데이터의 기록/판독을 수행하는 제어부와,
    상기 메모리 소자의 기록/판독 에러의 발생상황을 기억하는 데이터 에러 정보 관리 테이블과,
    상기 데이터 에러 정보 관리 테이블에 기억된 상기 기록/판독 에러의 발생상황에 따라서 상기 메모리 소자의 열화를 검출하는 열화 검출부와,
    상기 열화 검출부로 열화를 검출하는 상기 메모리 소자가 사용되지 않도록, 어드레스 정보를 변환하는 어드레스 변환 테이블을 구비한 것을 특징으로 하는 반도체 기억장치.
  2. 제 1 항에 있어서,
    상기 데이터 에러 정보 관리 테이블은 상기 기록/판독 에러의 발생상황으로서, 정정가능한 기록/판독 에러 또는 정정불가능한 기록/판독 에러의 적어도 한편을 사용한 소정의 연산처리의 연산결과를 기억하는 것을 특징으로 하는 반도체 기억장치.
  3. 제 2 항에 있어서,
    상기 데이터 에러 정보 관리 테이블은 상기 기록/판독 에러의 발생상황으로서 정정가능한 기록/판독 에러의 발생회수 또는 정정불가능한 기록/판독 에러의 발생회수의 적어도 한편을 각 섹터마다 기억하는 것을 특징으로 하는 반도체 기억장치.
  4. 제 2 항에 있어서,
    상기 데이터 에러 정보 관리 테이블은 상기 기록/판독 에러의 발생상황으로서, 정정가능한 기록/판독 에러의 발생회수 또는 정정불가능한 기록/판독 에러의 발생회수의 적어도 한편과, 기록회수 및 판독회수를 각 섹터마다 기억하는 것을 특징으로 하는 반도체 기억장치.
  5. 제 2 항에 있어서,
    상기 데이터 에러 정보 관리 테이블은 상기 기록/판독 에러의 발생상황으로서, 소정회수의 기록/판독 동작에서 정정가능한 기록/판독 에러의 발생회수 또는 정정불가능한 기록/판독 에러의 발생회수의 적어도 한편을 각 섹터마다 기억하는 것을 특징으로 하는 반도체 기억장치.
  6. 제 2 항에 있어서,
    상기 데이터 에러 정보 관리 테이블은 상기 기록/판독 에러의 발생상황으로서, 정정가능한 기록/판독 에러가 연속하여 발생한 회수 또는 정정불가능한 기록/판독 에러가 연속하여 발생한 회수의 적어도 한편을 각 섹터마다 기억하는 특징으로 하는 반도체 기억장치.
  7. 제 2 항에 있어서,
    상기 열화 검출부는 상기 발생상황으로서의 상기 연산결과가 제 1 한계치를 넘은 상기 섹터를 열화섹터라고 판단하고, 또 이 열화섹터의 개수가 제 2 한계치를 넘은 상기 메모리 소자를 열화 메모리 소자라고 판단하는 것을 특징으로 하는 반도체 기억장치.
  8. 제 1 항에 있어서,
    상기 열화 검출부에 의해서 열화 메모리 소자가 검출된 후의 데이터의 기록/판독에서, 상기 어드레스 변환 테이블은 이 열화 메모리 소자가 지정되지 않고 또한 열화가 검출되어 있지 않은 상기 메모리 소자가 연속한 어드레스로 지정되도록, 상기 어드레스 정보를 변환하는 것을 특징으로 하는 반도체 기억장치.
  9. 제 1 항에 있어서,
    상기 열화 검출부에 의해서 열화 메모리 소자가 검출된 후의 데이터의 기록/판독에서, 상기 어드레스 변환 테이블은 상기 열화 메모리 소자 내의 각각의 섹터 대신에 다른 상기 메모리 소자 내의 상기 예비섹터가 사용되도록, 상기 어드레스 정보를 변환하는 것을 특징으로 하는 반도체 기억장치.
  10. 제 1 항에 있어서,
    상기 메모리 소자는 플래쉬 메모리이고, 상기 반도체 기억장치는 반도체 디스크 장치인 것을 특징으로 하는 반도체 기억장치.
  11. 통상섹터 혹은 예비섹터로서 사용되는 복수개의 섹터를 갖는 복수개의 메모리 소자의 기록/판독 에러의 발생상황을 데이터 에러 정보 관리 테이블 내에 기억하는 단계와,
    상기 기억단계에서 상기 데이터 에러 정보 관리 테이블에 기억된 상기 기록/판독 에러의 발생상황에 따라서, 열화 검출부가 상기 메모리 소자의 열화를 검출하는 단계와,
    상기 검출단계에서 상기 열화 검출부가 열화를 검출한 상기 메모리 소자가 사용되지 않도록, 어드레스 변환 테이블로 상기 어드레스 정보를 변환하는 단계를 구비한 것을 특징으로 하는 반도체 기억장치의 제어방법.
  12. 제 11 항에 있어서,
    상기 기억단계는 정정가능한 기록/판독 에러 또는 정정불가능한 기록/판독 에러의 적어도 한편을 사용하여 소정의 연산처리를 수행하는 단계와, 이 때 행해진 연산결과를 상기 기록/판독 에러의 발생상황으로서 상기 데이터 에러 정보 관리 테이블에 기억시키는 단계로 구성된 것을 특징으로 하는 반도체 기억장치의 제어방법.
  13. 제 12 항에 있어서,
    상기 기억단계는 정정가능한 기록/판독 에러의 발생회수 또는 정정불가능한 기록/판독 에러의 발생회수의 적어도 한편을 각 섹터마다 연산하는 단계와, 이 때 행해진 연산결과를 상기 기록/판독 에러의 발생상황으로서 상기 데이터 에러 정보 관리 테이블에 기억시키는 단계로 구성된 것을 특징으로 하는 반도체 기억장치의 제어방법.
  14. 제 12 항에 있어서,
    상기 기억단계는 정정가능한 기록/판독 에러의 발생회수 또는 정정불가능한 기록/판독 에러의 발생회수의 적어도 한편은 물론, 기록회수 및 판독회수를 각 섹터마다 연산하는 단계와, 이 때 행해진 연산결과를 상기 기록/판독 에러의 발생상황으로서 상기 데이터 에러 정보 관리 테이블에 기억시키는 단계로 구성된 것을 특징으로 하는 반도체 기억장치의 제어방법.
  15. 제 12 항에 있어서,
    상기 기억단계는 소정회수의 기록/판독 동작에서 발생한 정정가능한 기록/판독 에러의 회수 또는 정정불가능한 기록/판독 에러의 회수의 적어도 한편을 각 섹터마다 연산하는 단계와, 이 때 행해진 연산결과를 상기 기록/판독 에러의 발생상황으로서 상기 데이터 에러 정보 관리 테이블에 기억시키는 단계로 구성된 것을 특징으로 하는 반도체 기억장치의 제어방법.
  16. 제 12 항에 있어서,
    상기 기억단계는 정정가능한 기록/판독 에러가 연속하여 발생한 회수 또는 정정불가능한 기록/판독 에러가 연속하여 발생한 회수의 적어도 한편을 각 섹터마다 연산하는 단계와, 이 때 행해진 연산결과를 상기 기록/판독 에러의 발생상황으로서 상기 데이터 에러 정보 관리 테이블에 기억시키는 단계로 구성된 것을 특징으로 하는 반도체 기억장치의 제어방법.
  17. 제 12 항에 있어서,
    상기 검출단계는 상기 열화 검출부에 의해, 상기 발생상황으로서의 상기 연산결과가 제 1 한계치를 넘은 상기 섹터를 열화섹터라고 판단하고, 열화섹터의 개수가 제 2 한계치를 넘은 상기 메모리 소자를 열화 메모리 소자라고 판단하는 단계로 구성된 것을 특징으로 하는 반도체 기억장치의 제어방법.
  18. 제 11 항에 있어서,
    상기 변환단계는 상기 열화 검출부에 의해서 열화 메모리 소자가 검출된 경우의 다음 데이터의 기록/판독에서, 이 열화 메모리 소자가 지정되지 않고, 열화가 검출되어 있지 않은 상기 메모리 소자가 연속한 어드레스에 의해 지정되도록, 상기 어드레스 변환 테이블로 상기 어드레스 정보를 변환하는 단계인 것을 특징으로 하는 반도체 기억장치의 제어방법.
  19. 제 11 항에 있어서,
    상기 변환단계는 상기 열화 검출부에 의해서 열화 메모리 소자가 검출된 경우의 다음 데이터의 기록/판독에서, 이 열화 메모리 소자 내의 각각의 상기 섹터 대신에, 다른 메모리 소자 내의 상기 예비섹터가 사용되도록, 상기 어드레스 변환 테이블로 상기 어드레스 정보를 변환하는 단계인 것을 특징으로 하는 반도체 기억장치의 제어방법.
  20. 제 11 항에 있어서,
    상기 메모리 소자는 플래쉬 메모리이고, 상기 반도체 기억장치는 반도체 디스크 장치인 것을 특징으로 하는 반도체 기억장치의 제어방법.
KR1019980029947A 1997-08-06 1998-07-24 반도체 기억장치 및 그 제어방법 KR19990023238A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP211726 1997-08-06
JP21172697A JP3565687B2 (ja) 1997-08-06 1997-08-06 半導体記憶装置およびその制御方法

Publications (1)

Publication Number Publication Date
KR19990023238A true KR19990023238A (ko) 1999-03-25

Family

ID=16610593

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980029947A KR19990023238A (ko) 1997-08-06 1998-07-24 반도체 기억장치 및 그 제어방법

Country Status (3)

Country Link
US (1) US6119245A (ko)
JP (1) JP3565687B2 (ko)
KR (1) KR19990023238A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100780622B1 (ko) * 2005-09-29 2007-11-29 주식회사 하이닉스반도체 반도체메모리소자의 데이터 입력장치
US7450466B2 (en) 2005-09-29 2008-11-11 Hynix Semiconductor Inc. Data input device of semiconductor memory device
KR20160082245A (ko) * 2013-11-01 2016-07-08 퀄컴 인코포레이티드 비-휘발성 램 에러 재-맵핑을 위한 방법 및 장치

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3782840B2 (ja) * 1995-07-14 2006-06-07 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
WO1997032253A1 (en) 1996-02-29 1997-09-04 Hitachi, Ltd. Semiconductor memory device having faulty cells
JP3233079B2 (ja) 1997-09-30 2001-11-26 ソニー株式会社 データ処理システム及びデータ処理方法
US6446223B1 (en) * 1998-09-09 2002-09-03 Hitachi, Ltd. Storage system and method for controlling the same
US7243185B2 (en) * 2004-04-05 2007-07-10 Super Talent Electronics, Inc. Flash memory system with a high-speed flash controller
WO2001022232A1 (fr) * 1999-09-17 2001-03-29 Hitachi, Ltd. Memoire dans laquelle le nombre de corrections d'erreurs est enregistre
US20080195798A1 (en) * 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems and Methods Thereof
JP4031190B2 (ja) * 2000-09-29 2008-01-09 株式会社東芝 メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置
US6418068B1 (en) * 2001-01-19 2002-07-09 Hewlett-Packard Co. Self-healing memory
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
US20030056141A1 (en) * 2001-09-18 2003-03-20 Lai Chen Nan Control method used in and-gate type system to increase efficiency and lengthen lifetime of use
US6643195B2 (en) 2002-01-11 2003-11-04 Hewlett-Packard Development Company, Lp. Self-healing MRAM
JP4012420B2 (ja) * 2002-03-12 2007-11-21 株式会社日立製作所 磁気ディスク装置及びディスク制御装置
US20050120265A1 (en) * 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US7152138B2 (en) * 2004-01-30 2006-12-19 Hewlett-Packard Development Company, L.P. System on a chip having a non-volatile imperfect memory
US20110029723A1 (en) * 2004-08-06 2011-02-03 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems
US7149119B2 (en) * 2004-09-30 2006-12-12 Matrix Semiconductor, Inc. System and method of controlling a three-dimensional memory
US7519852B2 (en) * 2005-05-12 2009-04-14 International Business Machines Corporation Apparatus, system, and method for redirecting an instruction pointer to recovery software instructions
US9092361B2 (en) 2005-07-15 2015-07-28 Panasonic Intellectual Property Management Co., Ltd. Nonvolatile storage device, memory controller, and defective region detection method
JP4991131B2 (ja) * 2005-08-12 2012-08-01 株式会社東芝 半導体記憶装置
DE102005040916A1 (de) * 2005-08-30 2007-03-08 Robert Bosch Gmbh Speicheranordnung und Betriebsverfahren dafür
DE102005045400A1 (de) * 2005-09-23 2007-03-29 Robert Bosch Gmbh Datenverarbeitungssystem und Betriebsverfahren dafür
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) * 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7587655B2 (en) * 2005-10-26 2009-09-08 Infineon Technologies Ag Method of transferring signals between a memory device and a memory controller
FR2894709A1 (fr) * 2005-12-13 2007-06-15 Gemplus Sa "detecteur de destruction anormale de secteur memoire"
US7609561B2 (en) * 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
US7512847B2 (en) * 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
JP4842719B2 (ja) * 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
JP4487978B2 (ja) * 2006-06-28 2010-06-23 セイコーエプソン株式会社 半導体記憶装置管理システム、プログラム、半導体記憶装置の管理方法
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
KR100802059B1 (ko) * 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
US7836380B2 (en) * 2006-10-31 2010-11-16 Intel Corporation Destination indication to aid in posted write buffer loading
JP5160777B2 (ja) * 2006-12-19 2013-03-13 矢崎エナジーシステム株式会社 車両運行情報解析システム
JP5057796B2 (ja) * 2007-02-14 2012-10-24 株式会社東芝 半導体メモリ情報蓄積装置とその不良部位対処方法
US7802114B2 (en) * 2007-03-16 2010-09-21 Spansion Llc State change sensing
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
JP5105351B2 (ja) * 2007-04-10 2012-12-26 株式会社メガチップス 不揮発性半導体記憶装置
JP2008310896A (ja) * 2007-06-15 2008-12-25 Spansion Llc 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
US8060798B2 (en) * 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
WO2009037697A2 (en) 2007-09-20 2009-03-26 Densbits Technologies Ltd. Improved systems and methods for determining logical values of coupled flash memory cells
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009053961A2 (en) * 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
US8607128B2 (en) 2007-12-05 2013-12-10 Densbits Technologies Ltd. Low power chien-search based BCH/RS decoding system for flash memory, mobile communications devices and other applications
WO2009072102A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
WO2009072103A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
WO2009074979A2 (en) * 2007-12-12 2009-06-18 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
WO2009078006A2 (en) 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8310229B2 (en) * 2008-03-26 2012-11-13 Olympus Ndt Intelligent eddy current array probe with embedded firing sequence memory
JP5218228B2 (ja) * 2008-04-23 2013-06-26 新東工業株式会社 搬送装置及びブラスト加工装置
US8031521B1 (en) * 2008-05-20 2011-10-04 Marvell International Ltd. Reprogramming non-volatile memory devices for read disturbance mitigation
US8010738B1 (en) * 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
US8332725B2 (en) 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8566510B2 (en) 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8305812B2 (en) 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8868821B2 (en) 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8595411B2 (en) 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
KR101648531B1 (ko) * 2010-02-12 2016-08-17 삼성전자주식회사 불휘발성 메모리 시스템과 이의 동작 방법
US8341502B2 (en) 2010-02-28 2012-12-25 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8516274B2 (en) 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US20120008414A1 (en) 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
JP2013122793A (ja) 2011-12-09 2013-06-20 Toshiba Corp 不揮発性半導体記憶装置
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
JP6005566B2 (ja) 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9378081B2 (en) * 2014-01-02 2016-06-28 Qualcomm Incorporated Bit remapping system
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
JP2018195243A (ja) * 2017-05-22 2018-12-06 ルネサスエレクトロニクス株式会社 半導体装置、及び半導体装置の制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5867642A (en) * 1995-08-10 1999-02-02 Dell Usa, L.P. System and method to coherently and dynamically remap an at-risk memory area by simultaneously writing two memory areas
WO1997032253A1 (en) * 1996-02-29 1997-09-04 Hitachi, Ltd. Semiconductor memory device having faulty cells

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100780622B1 (ko) * 2005-09-29 2007-11-29 주식회사 하이닉스반도체 반도체메모리소자의 데이터 입력장치
US7450466B2 (en) 2005-09-29 2008-11-11 Hynix Semiconductor Inc. Data input device of semiconductor memory device
KR20160082245A (ko) * 2013-11-01 2016-07-08 퀄컴 인코포레이티드 비-휘발성 램 에러 재-맵핑을 위한 방법 및 장치

Also Published As

Publication number Publication date
JPH1153266A (ja) 1999-02-26
JP3565687B2 (ja) 2004-09-15
US6119245A (en) 2000-09-12

Similar Documents

Publication Publication Date Title
KR19990023238A (ko) 반도체 기억장치 및 그 제어방법
JP3937214B2 (ja) エラー訂正回数を記録する記憶装置
JP3878062B2 (ja) メモリテスト情報を記憶する方法および装置
KR101267730B1 (ko) 반도체 메모리 장치
US4051461A (en) Management table apparatus in memory hierarchy system
JP3614173B2 (ja) 部分不良メモリを搭載した半導体記憶装置
JP5220185B2 (ja) 故障したデータ記憶機構を検出し、置き換えるための装置、システム及び方法
US20090249168A1 (en) Storage device
US7702954B2 (en) Data storage apparatus having error recovery capability
JP2005071068A (ja) 記憶装置
KR101090394B1 (ko) 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
TWI459393B (zh) 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
TW201603030A (zh) 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置
JP2006139478A (ja) ディスクアレイシステム
US8738989B2 (en) Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page
US20080077836A1 (en) Diagnostic Information Capture from Memory Devices with Built-in Self Test
TWI616807B (zh) 資料寫入方法以及儲存控制器
US10734079B1 (en) Sub block mode read scrub design for non-volatile memory
JP2018136735A (ja) メモリ制御装置及びメモリ制御方法
CN114822664B (zh) 基于数据优先级的风险评估方法、存储装置及控制电路
JP4287631B2 (ja) 記憶装置
CN113138720B (zh) 数据存储方法、存储器控制电路单元以及存储器存储装置
JP2013061887A (ja) 故障位置判定回路、記憶装置、および情報処理装置
JPH01171047A (ja) メモリ素子のチップ交替制御装置
CN111858389B (zh) 数据写入方法、存储器控制电路单元以及存储器存储装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

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

Effective date: 20041030