KR101092823B1 - 반도체 기억 장치, 제어 장치, 및 제어 방법 - Google Patents

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

Info

Publication number
KR101092823B1
KR101092823B1 KR1020107013050A KR20107013050A KR101092823B1 KR 101092823 B1 KR101092823 B1 KR 101092823B1 KR 1020107013050 A KR1020107013050 A KR 1020107013050A KR 20107013050 A KR20107013050 A KR 20107013050A KR 101092823 B1 KR101092823 B1 KR 101092823B1
Authority
KR
South Korea
Prior art keywords
data
cells
value
threshold value
microprocessor
Prior art date
Application number
KR1020107013050A
Other languages
English (en)
Other versions
KR20100089100A (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 KR20100089100A publication Critical patent/KR20100089100A/ko
Application granted granted Critical
Publication of KR101092823B1 publication Critical patent/KR101092823B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

데이터를 기억할 수 있는 복수의 셀과, 데이터를 관리하기 위한 정보인 소정의 관리 정보에 기초하여, 복수의 셀 각각에 기록하는 값을 2치 또는 다치로 결정하고, 결정한 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정부와, 임계값 결정부에 의해 결정된 임계값에 기초하여, 복수의 셀에 데이터를 기록하는 기록부를 구비한다.

Description

반도체 기억 장치, 제어 장치, 및 제어 방법{SEMICONDUCTOR STORAGE DEVICE, CONTROLLING APPARATUS AND CONTROLLING METHOD}
본 발명은 2치(値) 또는 다치(多値)로 셀에 데이터를 기억시키는 반도체 기억 장치, 반도체 제어 장치, 반도체 제어 방법에 관한 것이다.
최근, USB 메모리, 플래시 메모리 카드, 플래시 디스크 등의 비휘발성 메모리에 의한 메모리 디바이스가 널리 보급되어 있다. 또한, 이들 메모리 디바이스를 대용량화시키기 위한 기술로서, 도 28에 도시하는 바와 같이 각 메모리 셀의 전압의 임계값을 증가시켜, 예컨대 4치형 메모리 셀의 경우, "11", "10", "01", "00"의 각 2비트 데이터를 전압의 각 레벨에 대응시킴으로써 하나의 메모리 셀에 3치 이상을 기억시키는 다치화 기술이 알려져 있다.
또, 본 발명과 관련 있는 종래 기술로서, 대용량이며, 고신뢰성 또한 고속 동작을 확보할 수 있는 비휘발성 반도체 기억 장치 및 데이터 기억 시스템이 알려져 있다(예컨대, 특허 문헌 1 참조).
[특허 문헌 1] 일본 특허 공개 제2001-210082호 공보
그러나, 다치화 기술에 의해 대용량화된 다치 메모리 디바이스는 신뢰성이 낮다는 문제가 있다. 이하, 도 29 내지 도 31을 이용하여, 다치화 기술의 문제점을 설명한다.
도 29는 2치형 메모리 셀과 4치형 메모리 셀의 마진을 도시하는 도면이고, 도 30은 2치형 메모리 셀의 셀 분포와 임계값의 관계를 도시하는 도면이며, 도 31은 4치형 메모리 셀의 셀 분포와 임계값의 관계를 도시하는 도면이다.
도 29에 도시하는 바와 같이 2치형 메모리 셀은, "0"과 "1"을 판정하는 전압의 임계값에 충분한 마진이 있기 때문에, 데이터 반전 가능성이 낮아, 높은 신뢰성을 실현한다. 한편, 4치형 메모리 셀은, "00", "01", "10", "11"을 판정하는 전압의 임계값에 충분한 마진이 없기 때문에, 데이터 반전 가능성이 높아, 신뢰성이 낮다.
구체적으로는, 도 30에 도시하는 바와 같은 2치형 메모리 셀의 경우, 임계값 Ref-1, Ref-2, Ref-3 중, Ref-2를 임계값으로 하여, 전압이 Ref-2보다 낮으면 전압이 Level-0이나 Level-1이어도 데이터는 "1"이라고 판정되고, 전압이 Ref-2보다 높으면 전압이 Level-2이나 Level-3이어도 데이터는 "0"이라고 판정된다. 이에 비해, 도 31에 도시하는 바와 같은 4치형 메모리 셀의 경우, 전압이 Ref-1보다 낮으면 데이터는 "11"이라고 판정되고, 전압이 Ref-1보다 높고 Ref-2보다 낮으면 데이터는 "10"이라고 판정되며, 전압이 Ref-2보다 높고 Ref-3보다 낮으면 데이터는 "01"이라고 판정되고, 전압이 Ref-3보다 높으면 데이터는 "00"이라고 판정된다. 이 때문에, 2치형 메모리 셀과 같이 전압이 Level-0이나 Level-1이어도 동일한 데이터라고 판정되는 일이 없다. 예컨대, "11"의 데이터를 기록해야 할 메모리 셀에, Level-1의 전압이 인가되면, 그 메모리 셀의 데이터는 판독 시에 "10"이라고 판정된다. 또, 도 30에 도시하는 Ref-2 및 Ref-3은 4치형 메모리 셀과 비교하기 위해서 도시하는 것이며, 2치형 메모리 셀에서는 실제로 Ref-2만이 임계값으로서 존재한다.
전술한 바와 같이, 다치 메모리 디바이스는 대용량화를 실현하고 있지만 기억된 데이터의 신뢰성은 낮다. 그러나, 화상이나 영상 등의 사용자 데이터의 대용량화에 따라, 보다 대용량의 메모리 디바이스가 요구되고 있기 때문에, 높은 신뢰성과 대용량을 실현하는 메모리 디바이스가 필요해지고 있다.
본 발명은 전술한 문제점을 해결하기 위해서 이루어진 것으로, 관리 정보에 기초하여 2치 또는 다치로 데이터를 보존하는 반도체 기억 장치, 제어 장치, 제어 방법을 제공하는 것을 목적으로 한다.
전술한 과제를 해결하기 위해서, 반도체 기억 장치는, 데이터를 기억할 수 있는 복수의 셀과, 데이터를 관리하기 위한 정보인 미리 정해진 관리 정보에 기초하여, 상기 복수의 셀 각각에 기록하는 값을 2치 또는 다치로 결정하고, 결정한 상기 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정부와, 상기 임계값 결정부에 의해 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록부를 구비한다.
또한, 제어 장치는 데이터를 기억할 수 있는 복수의 셀에 의해 구성되는 반도체 기억 장치를 제어하는 장치로서, 데이터를 관리하기 위한 정보인 미리 정해진 관리 정보에 기초하여, 상기 복수의 셀 각각에 기록하는 값을 2치 또는 다치로 결정하고, 결정한 상기 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정부와, 상기 임계값 결정부에 의해 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록부를 구비한다.
또한, 제어 방법은 데이터를 기억할 수 있는 복수의 셀에 의해 구성되는 반도체 기억 장치를 제어하는 방법으로서, 데이터를 관리하기 위한 정보인 미리 정해진 관리 정보에 기초하여, 상기 복수의 셀 각각에 기록하는 값을 2치 또는 다치로 결정하고, 결정한 상기 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정 단계와, 상기 임계값 결정 단계에서 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록 단계를 실행한다.
도 1은 실시형태 1에 따른 정보 처리 장치를 도시하는 도면이다.
도 2는 실시형태 1에 따른 정보 처리 장치의 하드웨어 구성을 도시하는 도면이다.
도 3은 실시형태 1에 따른 NAND 플래시 메모리의 구성을 도시하는 블록도이다.
도 4는 컨트롤 IC의 구성을 도시하는 블록도이다.
도 5는 NAND 플래시 어레이를 구성하는 복수의 셀을 도시하는 회로도이다.
도 6은 센스 증폭기/비교기 회로를 도시하는 회로도이다.
도 7은 센스 증폭기/비교기 회로를 도시하는 회로도이다.
도 8은 NAND 플래시 어레이에 저장되는 데이터의 구성을 도시하는 도면이다.
도 9는 설정 테이블을 도시하는 도면이다.
도 10은 파일 시스템 식별 처리의 동작을 나타내는 흐름도이다.
도 11은 실시형태 1에 따른 기록 처리의 동작을 나타내는 흐름도이다.
도 12는 속성 정보 식별 처리의 동작을 나타내는 흐름도이다.
도 13은 전환 처리의 동작을 나타내는 흐름도이다.
도 14는 전원 투입 시에 변환 처리를 수행하는 처리의 동작을 나타내는 흐름도이다.
도 15는 아이들 시에 변환 처리를 수행하는 처리의 동작을 나타내는 흐름도이다.
도 16은 일정 시간 커맨드가 없을 때에 변환 처리를 수행하는 처리의 동작을 나타내는 흐름도이다.
도 17은 변환 처리의 동작을 나타내는 흐름도이다.
도 18은 재기록 처리의 동작을 나타내는 흐름도이다.
도 19는 서브디렉토리 체크 처리의 동작을 나타내는 흐름도이다.
도 20은 2치와 다치 각각의 사용량을 송신하는 처리의 동작을 나타내는 흐름도이다.
도 21은 2치의 사용량을 다치의 사용량으로 변환하여 호스트에 송신하는 처리의 동작을 나타내는 흐름도이다.
도 22는 빈 용량 산출 처리의 동작을 나타내는 흐름도이다.
도 23은 빈 용량 이상의 데이터에 대해 에러를 반환하는 처리의 동작을 나타내는 흐름도이다.
도 24는 임계값 보정 처리의 동작을 나타내는 흐름도이다.
도 25는 실시형태 2에서의 기록 처리의 동작을 나타내는 흐름도이다.
도 26은 실시형태 3에서의 기록 처리의 동작을 나타내는 흐름도이다.
도 27은 실시형태 4에서의 기록 처리의 동작을 나타내는 흐름도이다.
도 28은 2치형 메모리 셀, 4치형 메모리 셀 및 8치형 메모리 셀에 보존되는 비트를 도시하는 도면이다.
도 29는 2치형 메모리 셀과 4치형 메모리 셀의 마진을 도시하는 도면이다.
도 30은 2치형 메모리 셀의 셀 분포와 임계값의 관계를 도시하는 도면이다.
도 31은 4치형 메모리 셀의 셀 분포와 임계값의 관계를 도시하는 도면이다.
이하, 본 발명의 실시형태의 예에 대해 도면을 참조하면서 설명한다.
<실시형태 1>
먼저, 본 실시형태에 따른 정보 처리 장치에 대해 도면을 참조하면서 설명한다. 도 1은 본 실시형태에 따른 정보 처리 장치를 도시하는 도면이고, 도 2는 본 실시형태에 따른 정보 처리 장치의 하드웨어 구성을 도시하는 도면이다.
도 1에 도시하는 바와 같이, 본 실시형태에 따른 정보 처리 장치(1)는 보조 기억 장치로서 NAND 플래시 메모리(10)를 탑재하는 퍼스널 컴퓨터이다. 또한, 도 2에 도시하는 바와 같이, 정보 처리 장치(1)는 메인 기억 장치인 메모리(14), 중앙 연산 장치인 CPU(13)를 구비한다. 또한, 정보 처리 장치(1)는 CPU(13), 메모리(14) 등과의 사이에서 고속으로 정보 통신 및 제어를 수행하는 칩세트(North Bridge)(11), 주변 기기의 최저 레벨의 입출력을 제어하는 프로그램군을 저장한 BIOS(19)를 구비한다.
또한, 정보 처리 장치(1)는 전술한 것 이외에도, CPU(13), 메모리(14)에 비해 비교적 저속인 주변 기기 간의 정보 통신 및 제어를 수행하는 칩세트(South Bridge)(12), 음원의 출력을 제어하는 오디오 보드(17), USB 대응 기기 또는 PCI 버스 대응 기기와의 접속을 수행하는 USB/PCI 인터페이스(18), 네트워크 보드와 접속하여 외부와의 통신을 가능하게 하는 LAN 인터페이스(16), NAND 플래시 메모리(10)를 구비한다. 또한, NAND 플래시 메모리(10)는 비휘발성 메모리인 NAND 플래시 어레이(101)와 NAND 플래시 메모리를 제어하는 컨트롤 IC(20)를 구비한다. 또, 정보 처리 장치(1)는 퍼스널 컴퓨터에 한정되지 않고, 예컨대 휴대 전화나 PDA 등의 기억 장치를 필요로 하는 기기이면 어떤 것이어도 된다.
다음으로, 본 실시형태에 따른 NAND 플래시 메모리에 대해 설명한다. 도 3은 본 실시형태에 따른 NAND 플래시 메모리의 구성을 도시하는 블록도이다.
NAND 플래시 메모리(10)는 NAND 플래시 어레이(101)(복수의 셀, 반도체 기억 장치), X 디코더(102), Y 디코더(103), 센스 증폭기/비교기 회로(104), 어드레스 레지스터/카운터(105), 커맨드 레지스터(106), 입출력 버퍼(107), 컨트롤 IC(20)(제어 장치, 임계값 결정부, 검출부, 임계값 변환부, 임계값 보정부, 기록부)를 구비하는 것이다.
NAND 플래시 어레이(101)는 복수의 셀로 이루어지는 비휘발성 메모리이다. 또한, X 디코더(102)는 NAND 플래시 어레이(101)를 구성하는 2차원으로 배열된 복수 셀의 행 방향을 선택하는 것이다. 또한, Y 디코더(103)는 복수 셀의 열 방향을 선택하는 것이다. 또한, 센스 증폭기/비교기 회로(104)는 입력된 전압을 소정의 임계값에 기초하여 디지털 정보로 변환하는 것이다. 또한, 어드레스 레지스터/카운터(105)는 NAND 플래시 어레이(101)에 액세스할 때에 어드레스를 지정하는 것이다. 또한, 커맨드 레지스터(106)는 수신한 커맨드를 유지하는 것이다. 또한, 입출력 버퍼(107)는 호스트로서의 정보 처리 장치(1)와의 데이터 및 어드레스의 입출력에 있어서의 데이터를 일시적으로 기억하는 기억 영역이다. 또한, 컨트롤 IC(20)는 NAND 플래시 메모리(10)를 제어하는 것이다.
또한, 커맨드 레지스터(106) 및 컨트롤 IC(20)는, 입출력용 제어 신호로서, 커맨드 래치 인에이블 신호, 어드레스 래치 인에이블 신호, 칩 인에이블 신호, 리드 인에이블 신호, 라이트 인에이블 신호, 라이트 프로젝트 신호를 호스트로부터 수신하고, 이들 신호의 조합을 커맨드로 한다. 또한, 컨트롤 IC(20)는 레디·비지 신호 및 에러 신호를 출력하는 것이다.
다음으로, 컨트롤 IC에 대해 설명한다. 도 4는 컨트롤 IC의 구성을 도시하는 블록도이다.
컨트롤 IC(20)는 호스트 인터페이스 유닛(201), 컨트롤 레지스터(202), 버퍼(203), ECC 유닛(204), NAND 인터페이스 유닛(205), 마이크로 프로세서(206), ROM(207), RAM(208)을 구비하는 것이다.
또한, 호스트 인터페이스 유닛(201)은 호스트에 대해 커맨드를 송수신하는 것이다. 또한, 컨트롤 레지스터(202)는 각종 파라미터를 유지하는 영역이다. 또한, NAND 인터페이스 유닛(205)은 NAND 플래시 어레이(101)에 대해 커맨드를 송수신하는 것이다. 또한, 버퍼(203)는 NAND 인터페이스 유닛(205)에 의해 NAND 플래시 어레이(101)로부터 판독된 커맨드와, 호스트 인터페이스 유닛에 의해 호스트로부터 수신한 커맨드를 일시적으로 유지하는 영역이다. 또한, ECC 유닛(204)은 데이터의 기록 시에 ECC를 생성하고, 데이터의 판독 시에 ECC에 기초하여 데이터의 에러를 검출하여 정정하는 것이다.
또한, 마이크로 프로세서(206)는 컨트롤 IC(20) 전체를 제어하는 것이다. 또한, ROM(207)은 마이크로 프로세서(206)가 처리를 수행하기 위한 펌웨어가 기억되어 있는 것이다. 또한, RAM(208)은 마이크로 프로세서(206)가 사용하는 메모리이다.
다음으로, NAND 플래시 어레이를 구성하는 복수의 셀과 센스 증폭기/비교기 회로에 대해 설명한다. 도 5는 NAND 플래시 어레이를 구성하는 복수의 셀을 도시하는 회로도이다. 또한, 도 6 및 도 7은 센스 증폭기/비교기 회로를 도시하는 회로도이다.
도 5에 도시하는 바와 같이, NAND 플래시 어레이(101)는 비트선과 소스선에 의해 셀의 컨트롤 게이트에 플러스 전압을 가하고, 전자가 플로팅 게이트에 축적됨으로써 데이터를 기록한다. 또한, 비트선과 소스선은 복수의 셀 단위로 접속되기 때문에, NAND 플래시 어레이(101)는 복수의 셀에 의해 구성된 셀 그룹 단위로 데이터를 기록한다.
또한, 셀에 접속된 센스 증폭기/비교기 회로(104)는 도 6에 도시하는 바와 같이, 설정된 임계값(Ref-1∼Ref-3)과 입력된 전압을 비교하여 결과를 출력하는 센스 증폭기(104a∼104c)와, 센스 증폭기(104a∼104c)에 의한 출력 결과를 비교하여 디지털 데이터로 변환하는 비교기 회로(104d)에 의해 구성된다. 또한, 비교기 회로(104d)는 컨트롤 IC(20)로부터 송신되는 MLC 신호에 의해, 2치 또는 4치를 전환할 수 있고, MLC 신호를 수신하지 않은 경우, 도 30에 도시한 바와 같이, 전압이 Ref-2보다 낮으면 "1"을 출력하고, 전압이 Ref-2보다 높으면 "0"을 출력하지만, 이상적인 전압은 Ref-3보다 높은 전압 또는 Ref-1보다 낮은 전압이고, 2치에 있어서 그 이외의 전압이 인가된 경우, 비교기 회로는 Ref-2를 임계값으로 하여 데이터를 출력하지만, 셀이 열화되었다고 간주하여, 컨트롤 IC(20)에 대해 에러를 반환한다.
또한, 비교기 회로(104d)는 MLC 신호를 수신한 경우, 도 31에 도시한 바와 같이, 전압이 Ref-1보다 낮으면 "11"을 출력하고, 전압이 Ref-1보다 높고 Ref-2보다 낮으면 "10"을 출력하며, 전압이 Ref-2보다 높고 Ref-3보다 낮으면 "01"을 출력하고, 전압이 Ref-3보다 높으면 "00"을 출력한다.
또한, 센스 증폭기/비교기 회로(104)는 도 7에 도시하는 바와 같이, MLC 신호를 수신한 경우에만, 센스 증폭기(104a) 및 센스 증폭기(104c)에서 비교 결과를 출력하게 하도록 구성될 수도 있다.
다음으로, NAND 플래시 어레이에 저장되는 데이터의 구성에 대해 설명한다. 도 8은 NAND 플래시 어레이에 저장되는 데이터의 구성을 도시하는 도면이다.
NAND 플래시 메모리(10)에서 판독 및 기록되는 데이터는 도 8에 도시하는 바와 같이, 데이터 영역에 섹터 단위로 저장되고, 용장 영역에 각각의 섹터에 대응하는 용장 데이터인 스페어가 저장된다. 또한, 섹터 A∼D와 각각의 섹터에 대응하는 스페어 A'∼D'에 의해 구성되는 블록 단위로 데이터가 소거된다. 또한, 각각의 섹터의 스페어에는, 대응하는 섹터의 번호를 나타내는 데이터인 LSN(Logical Sector Number)과, 유효성 체크를 위한 데이터인 DV(Data Validity)와, 셀의 열화에 의해 데이터를 기록할 수 없는 불량 블록인 것을 나타내는 BBI(Bad Block Information)와, 섹터의 에러 정정 부호인 ECC(Error Correction Code for Data Field)와, 스페어의 에러 정정 부호인 ECCS(Error Correction Code for Spare Field)와, 4치로 데이터가 보존되어 있는 것을 나타내는 플래그인 MLC 플래그(Multi Level Cell Flag)와, 섹터에 데이터가 기록된 횟수를 나타내는 WF(Write Frequency)와, 센스 증폭기/비교기 회로(104)로부터 에러가 반환된 섹터인 것을 나타내는 EI가 기록되어 있다.
또, MLC 플래그는 Y 또는 N으로 설정되며, Y는 섹터가 4치로 보존되어 있는 것을 나타내고, N은 섹터가 2치로 보존되어 있는 것을 나타낸다. 또한, EI는 0 또는 1로 설정되며, 0은 임계값에 대해 섹터에 문제가 없는 것을 나타내고, 1은 임계값에 대해 섹터에 문제가 있는 것을 나타내며, 초기 상태는 0이다.
다음으로, NAND 플래시 어레이에 저장되어 있는 설정 테이블에 대해 설명한다. 도 9는 설정 테이블을 도시하는 도면이다.
NAND 플래시 어레이(101)에는, 도 9에 도시하는 바와 같은 설정 테이블이 저장된다. 설정 테이블은 NAND 플래시 어레이(101)의 파일 시스템에 따른 속성 정보와 기록 모드가 대응되어 저장된다. 이 기록 모드는 2치로의 보존을 의미하는 SLC(Single Level Cell) 또는 4치로의 보존을 의미하는 MLC(Multi Level Cell)로 설정된다. 또한, 이 설정 테이블에 따르면, 데이터의 속성 정보가 Archive인 경우에만, 데이터는 4치로 NAND 플래시 어레이(101)에 보존된다.
또, 이 설정 테이블은 파일 시스템으로서 FAT16에 대응한 것이지만, 여러 파일 시스템에 대해 준비되어 있는 것으로 한다. 또한, 이 설정 테이블은 컨트롤 IC(20)의 ROM(207)에 저장될 수도 있다.
다음으로, 본 실시형태에 따른 NAND 플래시 메모리의 동작에 대해 설명한다. 컨트롤 IC(20)의 마이크로 프로세서(206)는 데이터의 속성 정보를 식별하기 위해서, 먼저 NAND 플래시 어레이의 파일 시스템을 식별한다. 도 10은 파일 시스템 식별 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)으로 하여금, NAND 플래시 어레이(101)로부터 파일 시스템의 종류를 나타내는 정보인 파티션 테이블(partition table)의 5th Byte를 판독하게 하고(S101), 5th Byte가 01h인지의 여부를 판단한다(S102).
5th Byte가 01h가 아닌 경우(S102, NO), 마이크로 프로세서(206)는 5th Byte가 04h인지의 여부를 판단한다(S103).
5th Byte가 04h가 아닌 경우(S103, NO), 마이크로 프로세서(206)는 5th Byte가 06h인지의 여부를 판단한다(S104).
5th Byte가 06h가 아닌 경우(S104, NO), 마이크로 프로세서(206)는 5th Byte가 07h인지의 여부를 판단한다(S105).
5th Byte가 07h가 아닌 경우(S105, NO), 마이크로 프로세서(206)는 5th Byte가 0Ch인지의 여부를 판단한다(S106).
5th Byte가 0Ch가 아닌 경우(S106, NO), 마이크로 프로세서(206)는 처리를 종료한다.
한편, 5th Byte가 0Ch인 경우(S106, YES), 마이크로 프로세서(206)는 파일의 속성 정보를 판단하기 위한 설정 테이블로서 FAT32에 준한 설정 테이블을 NAND 플래시 어레이(101)로부터 판독하여 RAM에 저장한다(S111).
또한, 단계 S105의 판단에 있어서, 5th Byte가 07h인 경우(S105, YES), 마이크로 프로세서(206)는 파일의 속성 정보를 판단하기 위한 설정 테이블로서 NTFS에 준한 설정 테이블을 NAND 플래시 어레이(101)로부터 판독하여 RAM에 저장한다(S110).
또한, 단계 S104의 판단에 있어서, 5th Byte가 06h인 경우(S104, YES), 마이크로 프로세서(206)는 파일의 속성 정보를 판단하기 위한 설정 테이블로서 FAT16(32 MB∼2 GB)에 준한 설정 테이블을 NAND 플래시 어레이(101)로부터 판독하여 RAM에 저장한다(S109).
또한, 단계 S103의 판단에 있어서, 5th Byte가 04h인 경우(S103, YES), 마이크로 프로세서(206)는 파일의 속성 정보를 판단하기 위한 설정 테이블로서 FAT16(∼32 MB)에 준한 설정 테이블을 NAND 플래시 어레이(101)로부터 판독하여 RAM에 저장한다(S108).
또한, 단계 S102의 판단에 있어서, 5th Byte가 01h인 경우(S102, YES), 마이크로 프로세서(206)는 파일의 속성 정보를 판단하기 위한 설정 테이블로서 FAT12에 준한 설정 테이블을 NAND 플래시 어레이(101)로부터 판독하여 RAM에 저장한다(S107).
이상의 동작에 의해, 마이크로 프로세서(206)는 NAND 플래시 어레이(101)의 파일 시스템을 식별하고, 파일 시스템에 따른 설정 테이블을 RAM에 세팅한다. 또한, 전술한 파일 시스템은 일례이며, NAND 플래시 메모리(10)에 저장하는 OS나 환경에 따라, 컨트롤 IC(20)가 대응하는 파일 시스템이 미리 설정되어 있을 수도 있다. 또한, 본 실시형태에서는 NAND 플래시 어레이(101)의 파일 시스템을 FAT16(32 MB∼2 GB)으로 한다.
전술한 동작에 의해 미리 적절한 파일 시스템이 설정된 NAND 플래시 메모리(10)에 호스트로부터 데이터의 기록을 지시하는 기록 커맨드가 송신된 경우, 마이크로 프로세서(206)는 이하에 설명하는 기록 처리를 실행한다. 도 11은 기록 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해 호스트로부터 기록 커맨드를 수신하면(S201), 섹터 번호인 LSN을 참조하여(S202), LSN이 루트 디렉토리 영역을 나타내는 번호인지의 여부를 판단한다(S203).
LSN이 루트 디렉토리 영역을 나타내는 번호인 경우(S203, YES), 마이크로 프로세서(206)는 후술하는 속성 정보 식별 처리를 실행하고(S204, 임계값 결정 단계), 설정 테이블에 있어서, 속성 정보가 4치로 설정되어 있는 속성, 즉 Archive인지의 여부를 판단한다(S205, 임계값 결정 단계).
속성 정보가 Archive인 경우(S205, YES), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, 입출력 버퍼(107) 내에 저장된 데이터를 4치로 NAND 플래시 어레이(101)에 보존시키고(S206, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 Y로 설정하며(S207), 입출력 버퍼(107)에 저장되어 있는 디렉토리 데이터를 NAND 플래시 어레이(101)에 보존시킨다(S208).
또한, 단계 S205의 판단에 있어서, 속성 정보가 Archive가 아닌 경우(S205, NO), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, 입출력 버퍼 내에 저장된 데이터를 2치로 NAND 플래시 어레이(101)에 보존시키고(S211, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 MLC 플래그를 N으로 설정하며(S212), 입출력 버퍼(107)에 저장되어 있는 디렉토리 데이터를 NAND 플래시 어레이(101)에 보존시킨다(S208).
또한, 단계 S203의 판단에 있어서, LSN이 루트 디렉토리 영역을 나타내는 번호가 아닌 경우(S203, NO), 마이크로 프로세서(206)는 입출력 버퍼에 저장된 데이터의 12th Byte의 5th bit를 참조하여(S209), 12th Byte의 5th bit가 1인지의 여부를 판단한다(S210).
12th Byte의 5th bit가 1인 경우(S210, YES), 마이크로 프로세서(206)는 후술하는 속성 정보 식별 처리를 실행한다(S204).
한편, 12th Byte의 5th bit가 1이 아닌 경우(S210, NO), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, 입출력 버퍼 내에 저장된 데이터를 2치로 NAND 플래시 어레이(101)에 보존시키고(S211), NAND 플래시 어레이(101)에 기록된 데이터의 MLC 플래그를 N으로 설정하며(S212), 입출력 버퍼(107)에 저장되어 있는 디렉토리 데이터를 NAND 플래시 어레이(101)에 보존시킨다(S208).
다음으로, 도 11의 단계 S204의 처리에 해당하는 속성 정보 식별 처리에 대해 설명한다. 도 12는 속성 정보 식별 처리의 동작을 나타내는 흐름도이다. 또, 도 12에서, 컨트롤 IC는 이미 기록 커맨드를 수신하였고, 데이터는 입출력 버퍼에 저장되어 있는 것으로 한다.
먼저, 마이크로 프로세서(206)는 입출력 버퍼(107)에 저장되어 있는 디렉토리 데이터의 12th Byte를 참조하여(S301), 12th Byte의 1st Bit가 1인지의 여부를 판단한다(S302).
1st Bit가 1이 아닌 경우(S302, NO), 마이크로 프로세서(206)는 12th Byte의 2nd Bit가 1인지의 여부를 판단한다(S303).
2nd Bit가 1이 아닌 경우(S303, NO), 마이크로 프로세서(206)는 12th Byte의 3rd Bit가 1인지의 여부를 판단한다(S304).
3rd Bit가 1이 아닌 경우(S304, NO), 마이크로 프로세서(206)는 12th Byte의 4th Bit가 1인지의 여부를 판단한다(S305).
4th Bit가 1이 아닌 경우(S305, NO), 마이크로 프로세서(206)는 12th Byte의 5th Bit가 1인지의 여부를 판단한다(S306).
5th Bit가 1이 아닌 경우(S306, NO), 마이크로 프로세서(206)는 12th Byte의 6th Bit가 1인지의 여부를 판단한다(S307).
6th Bit가 1이 아닌 경우(S307, NO), 마이크로 프로세서(206)는 속성 정보 식별 처리를 종료한다.
한편, 6th Bit가 1인 경우(S307, YES), 마이크로 프로세서(206)는 속성 정보를 Archive로 한다(S313).
또한, 단계 S306의 판단에 있어서, 5th Bit가 1인 경우(S306, YES), 마이크로 프로세서(206)는 속성 정보를 Directly로 한다(S312).
또한, 단계 S305의 판단에 있어서, 4th Bit가 1인 경우(S305, YES), 마이크로 프로세서(206)는 속성 정보를 Volume Label로 한다(S311).
또한, 단계 S304의 판단에 있어서, 3rd Bit가 1인 경우(S304, YES), 마이크로 프로세서(206)는 속성 정보를 Hidden으로 한다(S310).
또한, 단계 S303의 판단에 있어서, 2nd Bit가 1인 경우(S303, YES), 마이크로 프로세서(206)는 속성 정보를 System으로 한다(S309).
또한, 단계 S302의 판단에 있어서, 1st Bit가 1인 경우(S302, YES), 마이크로 프로세서(206)는 속성 정보를 Read Only로 한다(S308).
전술한 바와 같이, 미리 설정된 속성 정보에 기초하여 데이터의 보존을 2치 또는 4치로 함으로써, 예컨대 시스템 데이터 등의 높은 신뢰성을 필요로 하는 데이터를 2치로 보존하면서, 예컨대 사용자 데이터와 같은 높은 신뢰성을 필요로 하지 않는 데이터를 4치로 보존할 수 있어, 높은 신뢰성과 대용량을 동시에 실현할 수 있다. 또한, 데이터의 중요도에 따라 2치, 4치, 8치로 단계적으로 보존 방법을 전환할 수도 있다.
다음으로, 2치 또는 4치로 NAND 플래시 어레이에 보존된 데이터의 판독에서의 2치, 4치의 전환 처리에 대해 설명한다. 도 13은 전환 처리의 동작을 나타내는 흐름도이다.
먼저, 호스트 인터페이스 유닛(201)이 호스트로부터 판독 커맨드를 수신하면(S401), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, 판독 커맨드에 의해 지정된 NAND 플래시 어레이에 저장된 데이터의 MLC 플래그를 참조하여(S402), MLC 플래그의 값이 Y인지의 여부를 판단한다(S403).
MLC 플래그의 값이 Y인 경우(S403, YES), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, MLC 신호를 센스 증폭기/비교기 회로(104)에 송신한다(S404).
한편, MLC 플래그의 값이 Y가 아닌 경우(S403, NO), 마이크로 프로세서(206)는 처리를 종료한다.
전술한 바와 같이, 마이크로 프로세서(206)는 데이터의 MLC 플래그를 참조하여, 데이터의 보존 방법을 판단하고, 도 6 및 도 7에서 설명한 바와 같이 4치인 경우에 MLC 신호를 센스 증폭기/비교기 회로(104)에 보냄으로써 2치와 4치를 전환한다. 또한, 판독된 데이터는 입출력 버퍼(107)를 통해 호스트에 송신된다.
다음으로, 2치로 기록된 데이터를 4치로 변환하는 변환 처리에 대해 도 14 내지 도 19를 이용하여 설명한다. 도 14는 전원 투입 시에 변환 처리를 수행하는 처리의 동작을 나타내는 흐름도이다.
먼저, 정보 처리 장치(1)의 전원이 투입되면, 컨트롤 IC(20)가 리셋되고(S501), 리셋된 컨트롤 IC의 마이크로 프로세서(206)는 논리·물리 매핑 테이블을 생성하여(S502), 후술하는 변환 처리를 실행한다(S503).
도 15는 아이들 시에 변환 처리를 수행하는 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 상태 레지스터를 판독하여(S601), 상태 레지스터가 아이들 상태인 것을 나타내는 값 RDY인지의 여부를 판단한다(S602).
상태 레지스터가 RDY인 경우(S602, YES), 마이크로 프로세서(206)는 후술하는 변환 처리를 실행한다(S603).
한편, 상태 레지스터가 RDY가 아닌 경우(S602, NO), 마이크로 프로세서는 처리를 종료한다. 또, 본 실시형태에서, 상태 레지스터의 값은 정보 처리 장치(1)의 CPU의 상태 레지스터로부터 취득해도, 마이크로 프로세서(206)의 상태 레지스터로부터 취득해도 상관없다.
도 16은 일정 시간 커맨드가 없을 때에 변환 처리를 수행하는 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 상태 레지스터를 판독하여(S701), 상태 레지스터가 RDY인지의 여부를 판단한다(S702).
상태 레지스터가 RDY인 경우(S702, YES), 마이크로 프로세서(206)는 타이머를 개시하여 소정 시간 대기하고(S703), 상태 레지스터가 RDY인지의 여부를 판단한다(S704).
상태 레지스터가 RDY인 경우(S704, YES), 마이크로 프로세서(206)는 변환 처리를 실행한다(S705).
한편, 상태 레지스터가 RDY가 아닌 경우(S704, NO), 마이크로 프로세서(206)는 처리를 종료한다.
또한, 단계 S702의 판단에 있어서, 상태 레지스터가 RDY가 아닌 경우(S702, NO), 마이크로 프로세서(206)는 처리를 종료한다.
도 14 내지 도 15에 나타낸 바와 같이, 마이크로 프로세서(206)는 소정의 조건을 트리거로 하여 변환 처리를 실행한다. 도 17은 도 14의 단계 S503, 도 15의 단계 S603, 도 16의 단계 S705에 해당하는 변환 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 NAND 플래시 어레이(101)의 루트 디렉토리 영역으로부터 32 Byte를 판독하여(S801), 판독한 32 Byte의 1st Byte가 00h 또는 E5h인지의 여부를 판단한다(S802).
1st Byte가 00h 또는 E5h인 경우(S802, YES), 마이크로 프로세서(206)는 판독한 32 Byte가 루트 디렉토리 영역의 최후미인지의 여부를 판단한다(S803).
32 Byte가 루트 디렉토리 영역의 최후미인 경우(S803, YES), 마이크로 프로세서(206)는 처리를 종료한다.
한편, 판독한 32 Byte가 루트 디렉토리 영역의 최후미가 아닌 경우(S803, NO), 마이크로 프로세서(206)는 현재 포인터(current pointer)에 32 Byte 더한 것을 리드 포인터로 하고(S807), 다시 루트 디렉토리 영역으로부터 32 Byte를 판독한다(S801).
또한, 단계 S802의 판단에 있어서, 1st Byte가 00h 또는 E5h 중 어느 것도 아닌 경우(S802, NO), 마이크로 프로세서(206)는 후술하는 재기록 처리를 실행하고(S804), 12th Byte의 5th bit가 1인지의 여부를 판단한다(S805).
12th Byte의 5th bit가 1인 경우(S805, YES), 마이크로 프로세서(206)는 후술하는 서브디렉토리 체크 처리를 실행하고(S806), 판독한 32 Byte가 루트 디렉토리 영역의 최후미인지의 여부를 판단한다(S803).
한편, 12th Byte의 5th bit가 1이 아닌 경우(S805, NO), 마이크로 프로세서(206)는 판독한 32 Byte가 루트 디렉토리 영역의 최후미인지의 여부를 판단한다(S803).
다음으로, 전술한 변환 처리에서의 재기록 처리의 동작을 설명한다. 도 18은 재기록 처리의 동작을 나타내는 흐름도이다. 또, 이하에 설명하는 처리는 도 17에서의 단계 S804에 해당하며, 이미 루트 디렉토리 영역으로부터 32 Byte가 판독되어 있는 것으로 한다.
먼저, 마이크로 프로세서(206)는 26th Byte∼27th Byte로부터 클러스터 어드레스 N을 참조하여(S901), 클러스터 어드레스 N이 지정하는 데이터의 MLC 플래그를 판독하여(S902), MLC 플래그가 Y인지의 여부를 판단한다(S903).
MLC 플래그가 Y인 경우(S903, YES), 마이크로 프로세서(206)는 클러스터 어드레스 N이 최후의 클러스터를 나타내는 FFF8h 이상, FFFFh 이하인지의 여부를 판단한다(S904).
클러스터 어드레스 N이 FFF8h 이상, FFFFh 이하인 경우(S904, YES), 마이크로 프로세서(206)는 클러스터 어드레스 N으로부터 데이터의 다음의 클러스터 어드레스 N을 판독하여(S908), 재차 MLC 플래그를 판독한다(S902).
한편, 클러스터 어드레스 N이 FFF8h 이상, FFFFh 이하가 아닌 경우(S904, NO), 마이크로 프로세서(206)는 처리를 종료한다.
또한, 단계 S903의 판단에 있어서, MLC 플래그가 Y가 아닌 경우(S903, NO), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, 센스 증폭기/비교기 회로(104)에 플래시 어레이로부터 데이터를 판독하게 하고, 판독한 데이터를 입출력 버퍼(107)에 저장시키며, 4치로 NAND 플래시 어레이(101)에 데이터를 기록하고(S906), MLC 플래그를 Y로 설정하며(S907), 클러스터 어드레스 N이 최후의 클러스터를 나타내는 FFF8h 이상, FFFFh 이하인지의 여부를 판단한다(S904).
다음으로, 전술한 변환 처리에서의 서브디렉토리 체크 처리의 동작을 설명한다. 도 19는 서브디렉토리 체크 처리의 동작을 나타내는 흐름도이다. 또, 이하에 설명하는 처리는 도 17에서의 단계 S806에 해당하며, 이미 루트 디렉토리 영역 또는 도 19의 서브디렉토리 영역으로부터 32 Byte 판독되어 있는 것으로 한다.
먼저, 마이크로 프로세서(206)는 26th Byte∼27th Byte로부터 클러스터 어드레스 N을 참조하여(S1001), 클러스터 어드레스 N이 지정하는 서브디렉토리 영역으로부터 32 Byte를 판독하여(S1002), 1st Byte가 00h 또는 E5h인지의 여부를 판단한다(S1003).
1st Byte가 00h 또는 E5h인 경우(S1003, YES), 마이크로 프로세서(206)는 클러스터 어드레스 N이 FFF8h 이상, FFFFh 이하인지의 여부를 판단한다(S1004).
클러스터 어드레스 N이 FFF8h 이상, FFFFh 이하인 경우(S1004, YES), 마이크로 프로세서(206)는 처리를 종료한다.
한편, 클러스터 어드레스 N이 FFF8h 이상, FFFFh 이하가 아닌 경우(S1004, NO), 마이크로 프로세서(206)는 클러스터 어드레스 N으로부터 서브디렉토리의 다음 클러스터 어드레스 N을 판독하여(S1007), 재차 서브디렉토리 영역으로부터 32 Byte를 판독한다(S1002).
또한, 단계 S1003의 판단에 있어서, 1st Byte가 00h 또는 E5h가 아닌 경우(S1003, NO), 마이크로 프로세서(206)는 전술한 재기록 처리를 실행하고(S1005), 12th Byte의 5th bit가 1인지의 여부를 판단한다(S1006).
12th Byte의 5th bit가 1인 경우(S1006, YES), 마이크로 프로세서(206)는 26th Byte∼27th Byte로부터 다음 서브디렉토리의 클러스터 어드레스 N을 판독한다(S1001).
한편, 12th Byte의 5th bit가 1이 아닌 경우(S1006, NO), 마이크로 프로세서(206)는 클러스터 어드레스 N이 FFF8h 이상, FFFFh 이하인지의 여부를 판단한다(S1004).
전술한 처리에 의해, NAND 플래시 메모리(10)는 2치로 기록된 데이터를 4치로 재기록할 수 있다. 또, 2치로 기록된 데이터를 4치로 재기록하는 경우에 대해 설명하였으나, 4치로 기록된 데이터를 2치로 재기록할 수도 있다.
다음으로, 본 실시형태에 따른 NAND 플래시 메모리의 사용량을 호스트에 송신하는 처리에 대해 설명한다. 도 20은 2치와 다치 각각의 사용량을 송신하는 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해 호스트로부터 판독 커맨드를 수신하면(S1101), LSN을 카운트하는 변수 SN, 2치로 보존된 섹터를 카운트하는 변수 S, 4치로 보존된 섹터를 카운트하는 변수 M 각각에 0을 설정하고(S1102), NAND 인터페이스 유닛(205)을 통해 LSNSN의 MLC 플래그를 판독하여(S1103), MLC 플래그가 Y인지의 여부를 판단한다(S1104).
MLC 플래그가 Y가 아닌 경우(S1104, NO), 마이크로 프로세서(206)는 MLC 플래그가 N인지의 여부를 판단한다(S1105).
MLC 플래그가 N이 아닌 경우(S1105, NO), 마이크로 프로세서(206)는 변수 SN에 1을 가산하고(S1106), 변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 최대값보다 큰지의 여부를 판단한다(S1107).
변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 최대값보다 큰 경우(S1107, YES), 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해 변수 M의 값을 호스트에 송신하고(S1108), 호스트 인터페이스 유닛(201)을 통해 변수 S의 값을 호스트에 송신한다(S1109).
한편, 변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 최대값 이하인 경우(S1107, NO), 마이크로 프로세서(206)는 재차 NAND 인터페이스 유닛(205)을 통해 LSNSN의 MLC 플래그를 판독한다(S1103).
또한, 단계 S1105의 판단에 있어서, MLC 플래그가 N인 경우(S1105, YES), 마이크로 프로세서(206)는 변수 S에 1을 가산하고(S1111), 변수 SN에 1을 가산한다(S1106).
또한, 단계 S1104의 판단에 있어서, MLC 플래그가 Y인 경우(S1104, YES), 마이크로 프로세서(206)는 변수 M에 1을 가산하고(S1110), 변수 SN에 1을 가산한다(S1106).
전술한 바와 같이 2치로 기록된 섹터와, 4치로 기록된 섹터 각각의 수를 송신함으로써, 호스트는 변수 M, 변수 S, 섹터의 정보량에 기초하여, 2치, 4치 각각의 NAND 플래시 메모리(10)의 사용량을 산출할 수 있다. 또한, 본 실시형태에 따른 NAND 플래시 메모리(10)는 2치의 사용량을 다치의 사용량으로 변환하여 호스트에 송신할 수 있다. 도 21은 2치의 사용량을 다치의 사용량으로 변환하여 호스트에 송신하는 처리의 동작을 나타내는 흐름도이다. 또, 단계 S1101∼단계 S1111에 대해서는, 도 20과 동일한 처리이기 때문에 설명을 생략하고, 단계 S1112∼단계 S1114에 대해 설명한다.
단계 S1107의 판단에 있어서, 변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 수보다 큰 경우(S1107, YES), 마이크로 프로세서(206)는 변수 S의 값을 2배하고(S1112), 변수 M의 값에 변수 S의 값을 가산하며(S1113), 호스트 인터페이스 유닛(201)을 통해 변수 M의 값을 호스트에 송신한다(S1114).
전술한 바와 같이, 2치로 데이터가 보존되어 있는 섹터의 수를 2배하여, 4치로 데이터가 보존되어 있는 섹터의 수에 가산함으로써, 4치의 사용량을 산출할 수 있다. 또한, 4치로 데이터가 보존되어 있는 섹터의 수를 2로 나누고, 2치로 데이터가 보존되어 있는 섹터의 수에 가산함으로써, 2치의 사용량을 산출할 수 있다.
다음으로, 빈 용량 산출 처리에 대해 설명한다. 도 22는 빈 용량 산출 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해, 판독 커맨드를 호스트로부터 수신하고(S1201), LSN을 카운트하는 변수 SN, 데이터 유효성이 Valid인 섹터를 카운트하는 변수 V, 빈 용량을 나타내는 변수 E 각각에 0을 설정하며(S1202), NAND 인터페이스 유닛(205)을 통해 LSNSN의 데이터 유효성을 판독하여(S1203), 데이터 유효성이 Valid인지의 여부를 판단한다(S1204).
데이터 유효성이 Valid가 아닌 경우(S1204, NO), 마이크로 프로세서(206)는 변수 SN에 1을 가산하고(S1205), 변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 총수보다 큰지의 여부를 판단한다(S1106).
변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 최대값보다 큰 경우(S1206, YES), 섹터의 최대값으로부터 V의 값을 감산하여 E의 값으로 하고(S1207), E의 값을 2로 나누어(S1208), E의 값을 호스트에 송신한다(S1209).
한편, 변수 SN의 값이 NAND 플래시 어레이(101)의 섹터의 최대값 이하인 경우(S1206, NO), 마이크로 프로세서(206)는 재차 NAND 인터페이스 유닛(205)을 통해 LSNSN의 데이터 유효성을 판독한다(S1203).
또한, 단계 S1204에 있어서, 데이터 유효성이 Valid인 경우(S1204, YES), 마이크로 프로세서(206)는 V의 값에 1을 가산하고(S1210), SN의 값에 1을 가산한다(S1205).
전술한 동작에 의해 NAND 플래시 메모리(10)는 NAND 플래시 어레이(101)에 2치로 기록하는 경우의 빈 용량을 산출할 수 있다. 이 2치로 기록하는 경우의 빈 용량을 이용함으로써, 2치로 데이터가 기록되는 경우에 빈 용량 이상의 정보량의 데이터가 기록되면, 호스트에 대해 에러를 송신할 수 있다. 도 23은 빈 용량 이상의 데이터에 대해 에러를 반환하는 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해, 호스트로부터 기록 커맨드를 수신하고(S1301), 빈 용량을 체크하며(S1302), 변수 E에 빈 용량을 대입하여(S1303), 호스트로부터 송신된 데이터가 E의 값보다 큰지의 여부를 판단한다(S1304).
호스트로부터 송신된 데이터가 E의 값 이하인 경우(S1304, NO), 마이크로 프로세서(206)는 NAND 인터페이스 유닛(205)을 통해, NAND 플래시 어레이(101)에 데이터를 기록한다(S1305).
한편, 호스트로부터 송신된 데이터가 E의 값보다 큰 경우(S1304, YES), 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해, 호스트에 에러를 송신한다(S1306).
이상의 동작에 의해, 본 실시형태에 따른 NAND 플래시 메모리(10)는 기록하는 데이터의 속성 정보에 기초하여 2치 또는 4치로의 기록을 전환할 수 있다.
다음으로, 임계값 보정 처리에 대해 설명한다. 이 임계값 보정 처리는, 예컨대 2치로 설정되었던 어느 속성에 대해 4치로 설정하여, 이전에 기록된 데이터에 대해서 현재의 설정과 어긋남이 발생하는 경우, 기록된 데이터의 속성과 MLC 플래그와 현재의 설정 테이블에 기초하여, 2치로 기록된 데이터를 4치로 재기록하는 것이다. 도 24는 임계값 보정 처리의 동작을 나타내는 흐름도이다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해, 호스트로부터 보정 커맨드를 수신하고(S1701), NAND 플래시 어레이(101)에 기록되어 있는 데이터를 참조하여(S1702), 데이터가 디렉토리 데이터인지의 여부를 판단한다(S1703).
데이터가 디렉토리 데이터인 경우(S1703, YES), 마이크로 프로세서(206)는 데이터의 속성 정보를 참조하여(S1704), 속성이 현재의 설정에 있어서 4치로 기록해야 하는 속성, 즉 Archive인지의 여부를 판단한다(S1705, 임계값 변환 단계).
속성이 Archive가 아닌 경우(S1705, NO), 마이크로 프로세서(206)는 디렉토리 데이터를 NAND 플래시 어레이(101)에 기록하게 한다(S1706).
한편, 속성이 Archive인 경우(S1705, YES), 마이크로 프로세서(206)는 데이터의 MLC 플래그를 참조하여(S1708, 임계값 변환 단계), MLC 플래그가 Y로 설정되어 있는지의 여부를 판단한다(S1709, 임계값 변환 단계).
MLC 플래그가 Y로 설정되어 있지 않은 경우(S1709, NO), 마이크로 프로세서(206)는 NAND 플래시 어레이(101)에 기록된 데이터를 입출력 버퍼(107)에 저장하고(S1710), 저장된 데이터를 NAND 플래시 어레이(101)에 4치로 기록하게 하며(S1711, 임계값 변환 단계), 기록한 데이터의 MLC 플래그를 Y로 설정하고(S1712), 디렉토리 데이터를 NAND 플래시 어레이(101)에 기록하게 한다(S1706).
한편, MLC 플래그가 Y로 설정되어 있는 경우(S1709, YES), 마이크로 프로세서(206)는 디렉토리 데이터를 NAND 플래시 어레이(101)에 기록하게 한다(S1706).
또한, 단계 S1703의 판단에 있어서, 데이터가 디렉토리 데이터가 아닌 경우, 마이크로 프로세서(206)는 데이터를 NAND 플래시 어레이(101)에 2치로 기록하게 한다(S1707).
전술한 바와 같이, 속성과 MLC 플래그를 비교함으로써, 예컨대, 2치로 기록하도록 설정되었던 속성 정보에 대해, 4치로 기록하도록 설정을 변경한 경우에, 데이터가 현재의 설정에 준한 값으로 NAND 플래시 어레이(101)에 보존된다. 또, 도 24에서는, 2치의 데이터를 4치로 재기록하는 경우에 대해 설명하였으나, 마찬가지로 2치로 기록해야 할 데이터가 4치로 기록되어 있는 경우, 4치로 기록된 데이터를 판독하여, 2치로 NAND 플래시 어레이(101)에 보존한다.
<실시형태 2>
실시형태 1에 따른 NAND 플래시 메모리는 속성 정보에 기초하여 2치와 4치를 전환하였으나, 본 실시형태에 따른 NAND 플래시 메모리는 NAND 플래시 어레이의 빈 용량에 기초하여 2치와 4치를 전환한다. 또, 본 실시형태에 따른 NAND 플래시 메모리의 구성은 실시형태 1에 따른 NAND 플래시 메모리와 동일하고, 동작만이 상이하다. 이하, 실시형태 1에 따른 NAND 플래시 메모리와 상이한 동작에 대해 설명한다. 도 25는 실시형태 2에서의 기록 처리의 동작을 나타내는 흐름도이다. 또, 본 실시형태에서, NAND 플래시 메모리의 용량은 2치로 32 MB로 하고, 2치에서의 빈 용량이 16 MB 이하가 된 경우에, 셀에 기록하는 값을 4치로 전환하는 것으로 한다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해 호스트로부터 기록 커맨드를 수신하면(S1401), 도 22에 나타낸 빈 용량 산출 처리를 실행하고(S1402), 빈 용량이 16 MB보다 많은지의 여부를 판단한다(S1403, 임계값 결정 단계).
빈 용량이 16 MB보다 많은 경우(S1403, YES), 마이크로 프로세서(206)는 입출력 버퍼(107) 내에 저장된 데이터를 NAND 플래시 어레이에 2치로 기록하게 하고(S1404, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 N으로 설정한다(S1405).
한편, 빈 용량이 16 MB 이하인 경우(S1403, NO), 마이크로 프로세서(206)는 입출력 버퍼(107) 내에 저장된 데이터를 NAND 플래시 어레이에 4치로 기록하게 하고(S1406, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 Y로 설정한다(S1407).
이상의 동작에 의해, 본 실시형태에 따른 NAND 플래시 메모리(10)는 빈 용량에 기초하여, 2치와 4치를 전환하고, 빈 용량이 일정량보다 많은 경우에는 신뢰성이 높은 2치로 데이터를 기록하며, 빈 용량이 일정량 이하인 경우에는 보다 대용량으로 데이터를 보존할 수 있는 4치로 데이터를 기록함으로써, 신뢰성과 대용량을 동시에 실현할 수 있다.
<실시형태 3>
실시형태 2에 따른 NAND 플래시 메모리는 빈 용량에 기초하여 2치와 4치를 전환하였으나, 본 실시형태에 따른 NAND 플래시 메모리는 NAND 플래시 어레이의 셀에 있어서의 기록 횟수에 기초하여 2치와 4치를 전환한다. 또, 본 실시형태에 따른 NAND 플래시 메모리의 구성은 실시형태 1 및 실시형태 2에 따른 NAND 플래시 메모리와 동일하고, 동작만이 상이하다. 이하, 실시형태 2에 따른 NAND 플래시 메모리와 상이한 동작에 대해 설명한다. 도 26은 실시형태 3에서의 기록 처리의 동작을 나타내는 흐름도이다. 또, 본 실시형태에서, 설명상, NAND 플래시 메모리의 기록 횟수의 한도는 4000회로 하고, 기록 횟수가 2000보다 적으면 4치로 기록하고, 기록 횟수가 2000 이상이 된 경우, 셀에 기록하는 값을 2치로 전환하는 것으로 한다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해 호스트로부터 기록 커맨드를 수신하면(S1501), 도 8에 나타낸 기록 횟수를 나타내는 정보인 WF를 참조하여(S1502), 기록 횟수가 2000회보다 적은지의 여부를 판단한다(S1503, 임계값 결정 단계).
기록 횟수가 2000회보다 적은 경우(S1503, YES), 마이크로 프로세서(206)는 입출력 버퍼(107) 내에 저장된 데이터를 NAND 플래시 어레이에 4치로 기록하게 하고(S1504, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 Y로 설정하며(S1505), MF에 1을 가산한다(S1506).
한편, 기록 횟수가 2000회 이상인 경우(S1503, NO), 마이크로 프로세서(206)는 입출력 버퍼(107) 내에 저장된 데이터를 NAND 플래시 어레이에 2치로 기록하게 하고(S1507, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 Y로 설정하며(S1508), MF에 1을 가산한다(S1506).
이상의 동작에 의해, 본 실시형태에 따른 NAND 플래시 메모리(10)는 기록 횟수에 기초하여, 2치와 4치를 전환함으로써, 기록 횟수가 적은 셀에는 4치로 기록하고, 기록 횟수가 많은 셀, 즉 열화가 진행된 셀에는 신뢰성이 높은 2치로 기록함으로써, 신뢰성과 대용량을 동시에 실현할 수 있다.
<실시형태 4>
실시형태 3에 따른 NAND 플래시 메모리는 기록 횟수에 기초하여 2치와 4치를 전환하였으나, 본 실시형태에 따른 NAND 플래시 메모리는 NAND 플래시 어레이의 셀의 에러 상황에 기초하여 2치와 4치를 전환한다. 또, 본 실시형태에 따른 NAND 플래시 메모리의 구성은 실시형태 1, 실시형태 2 및 실시형태 3에 따른 NAND 플래시 메모리와 동일하고, 동작만이 상이하다. 이하, 실시형태 3에 따른 NAND 플래시 메모리와 상이한 동작에 대해 설명한다. 도 27은 실시형태 4에서의 기록 처리의 동작을 나타내는 흐름도이다. 또, 본 실시형태에서의 에러는 전술한 데이터의 판독에 있어서, 센스 증폭기/비교기 회로에 의해 반환된 에러를 가리키고, 이 에러를 받은 마이크로 프로세서(206)는 에러를 받은 섹터의 용장 데이터인 스페어의 EI를 1로 설정한다.
먼저, 마이크로 프로세서(206)는 호스트 인터페이스 유닛(201)을 통해 호스트로부터 기록 커맨드를 수신하면(S1601), 도 8에 나타낸 에러 상황을 나타내는 정보인 EI를 참조하여(S1602), EI가 0인지의 여부를 판단한다(S1603, 임계값 결정 단계).
EI가 0인 경우(S1603, YES), 마이크로 프로세서(206)는 입출력 버퍼(107) 내에 저장된 데이터를 NAND 플래시 어레이에 4치로 기록하게 하고(S1604, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 Y로 설정한다(S1605).
한편, EI가 0이 아닌 경우(S1603, NO), 마이크로 프로세서(206)는 입출력 버퍼(107) 내에 저장된 데이터를 NAND 플래시 어레이에 2치로 기록하게 하고(S1606, 기록 단계), NAND 플래시 어레이(101)에 기록된 데이터의 섹터의 용장 데이터인 스페어의 MLC 플래그를 N으로 설정한다(S1607).
이상의 동작에 의해, 본 실시형태에 따른 NAND 플래시 메모리(10)는 에러가 없는 셀에는 4치로 데이터를 기록하고, 에러가 있는 셀, 즉 열화가 진행된 셀에 대해서는 2치로 데이터를 기록함으로써, 신뢰성과 대용량을 동시에 실현할 수 있다.
또, 전술한 실시형태 1, 실시형태 2, 실시형태 3 및 실시형태 4에서는 전술한 처리를 컨트롤 IC(20)의 마이크로 프로세서(206)가 실행하나, 정보 처리 장치(1)가 구비하는 CPU가 이들 처리를 실행해도 상관없다. 이때, 처리 결과로서의 각종 파라미터는 컨트롤 IC(20)의 컨트롤 레지스터(202)에 일시적으로 저장되는 것으로 한다. 또한, 2치와 4치의 전환은 일례이며, 예컨대 2치와 8치 등일 수도 있다.
이상 설명한 바와 같이, 본 발명을 적용함으로써, 관리 정보에 기초하여 2치 또는 다치로 데이터를 보존할 수 있다.

Claims (18)

  1. 데이터를 기억할 수 있는 복수의 셀과,
    데이터를 관리하기 위한 정보인 미리 정해진 관리 정보로서, 상기 데이터에 부가된 그 데이터의 속성을 나타내는 정보인 속성 정보를 검출하는 검출부와,
    상기 검출부에 의해 검출된 데이터의 속성 정보에 기초하여, 상기 복수의 셀 각각에 기록하는 값을 2치(値) 또는 다치(多値)로 결정하고, 결정한 상기 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정부와,
    상기 임계값 결정부에 의해 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록부와,
    상기 복수의 셀 중 상기 데이터가 기억된 셀의 임계값과, 그 데이터의 속성 정보에 기초하여, 현재의 상기 임계값 결정부에 의해 결정되는 임계값이 일치하지 않는 경우, 상기 복수의 셀에 기록된 데이터를 판독하고, 그 데이터의 속성 정보에 기초하여 상기 임계값 결정부에 의해 결정된 임계값에 기초해서, 상기 복수의 셀에 상기 데이터를 재차 기록하는 임계값 변환부
    를 구비하는 것을 특징으로 하는 반도체 기억 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 데이터를 기억할 수 있는 복수의 셀과,
    상기 복수의 셀의 빈 용량을 나타내는 정보에 기초하여, 상기 복수의 셀 각각에 기록하는 값을, 상기 복수의 셀의 빈 용량이 미리 결정된 값 보다 큰 경우에는 2치(値)로, 상기 복수의 셀의 빈 용량이 미리 결정된 값 이하인 경우에는 다치(多値)로 결정하고, 결정한 상기 복수의 셀의 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정부와,
    상기 임계값 결정부에 의해 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록부
    를 구비하는 것을 특징으로 하는 반도체 기억 장치.
  6. 데이터를 기억할 수 있는 복수의 셀에 의해 구성되는 반도체 기억 장치를 제어하는 제어 장치에 있어서,
    상기 복수의 셀 각각에 기록하는 값을, 상기 복수의 셀의 빈 용량이 미리 결정된 값 보다 큰 경우에는 2치(値)로, 상기 복수의 셀의 빈 용량이 미리 결정된 값 이하인 경우에는 다치(多値)로 결정하고, 결정한 상기 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정부와,
    상기 임계값 결정부에 의해 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록부
    를 구비하는 것을 특징으로 하는 제어 장치.
  7. 데이터를 기억할 수 있는 복수의 셀에 의해 구성되는 반도체 기억 장치를 제어하는 제어 방법에 있어서,
    상기 복수의 셀 각각에 기록하는 값을, 상기 복수의 셀의 빈 용량이 미리 결정된 값 보다 큰 경우에는 2치(値)로, 상기 복수의 셀의 빈 용량이 미리 결정된 값 이하인 경우에는 다치(多値)로 결정하고, 결정한 상기 복수의 셀 각각에 기록하는 값에 기초하여 임계값을 결정하는 임계값 결정 단계와,
    상기 임계값 결정 단계에서 결정된 임계값에 기초하여, 상기 복수의 셀에 상기 데이터를 기록하는 기록 단계
    를 실행하는 것을 특징으로 하는 제어 방법.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020107013050A 2008-01-16 2008-01-16 반도체 기억 장치, 제어 장치, 및 제어 방법 KR101092823B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/050394 WO2009090731A1 (ja) 2008-01-16 2008-01-16 半導体記憶装置、制御装置、制御方法

Publications (2)

Publication Number Publication Date
KR20100089100A KR20100089100A (ko) 2010-08-11
KR101092823B1 true KR101092823B1 (ko) 2011-12-12

Family

ID=40885142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107013050A KR101092823B1 (ko) 2008-01-16 2008-01-16 반도체 기억 장치, 제어 장치, 및 제어 방법

Country Status (5)

Country Link
US (1) US7978513B2 (ko)
JP (1) JP5223869B2 (ko)
KR (1) KR101092823B1 (ko)
CN (1) CN101911207B (ko)
WO (1) WO2009090731A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7843728B2 (en) * 2007-11-20 2010-11-30 Kabushiki Kaisha Toshiba Nonvolatile semiconductor storage device
CN101673245B (zh) 2008-09-09 2016-02-03 株式会社东芝 包括存储器管理装置的信息处理装置和存储器管理方法
JP2011186555A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
US8392384B1 (en) * 2010-12-10 2013-03-05 Symantec Corporation Method and system of deduplication-based fingerprint index caching
JP5971509B2 (ja) 2011-08-30 2016-08-17 ソニー株式会社 情報処理装置および方法、並びに記録媒体
CN102324249B (zh) * 2011-09-09 2013-10-30 黑龙江大学 K值存储单元嵌入dram的二多转换电路及其构建方法
JP2013196673A (ja) * 2012-03-23 2013-09-30 Toshiba Corp メモリシステム
JP2014142986A (ja) * 2012-12-26 2014-08-07 Semiconductor Energy Lab Co Ltd 半導体装置
US8990458B2 (en) 2013-02-28 2015-03-24 Kabushiki Kaisha Toshiba Controller, semiconductor storage device and method of controlling data writing
KR102031191B1 (ko) * 2013-04-17 2019-10-11 에스케이하이닉스 주식회사 비휘발성 메모리 및 이의 부트업 동작 방법
US20150169228A1 (en) * 2013-12-12 2015-06-18 Sandisk Technologies Inc. System and method of storing data at a non-volatile memory
WO2018002999A1 (ja) * 2016-06-28 2018-01-04 株式会社日立製作所 記憶デバイス及びストレージ装置
US10381075B2 (en) 2017-12-14 2019-08-13 Micron Technology, Inc. Techniques to access a self-selecting memory device
US20190034105A1 (en) * 2017-12-28 2019-01-31 Intel Corporation Storage device having programmed cell storage density modes that are a function of storage device capacity utilization
TWI700635B (zh) * 2018-04-26 2020-08-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN110442299B (zh) * 2018-05-03 2022-12-13 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器储存装置
US11301168B2 (en) * 2019-12-13 2022-04-12 Western Digital Technologies, Inc. Storage system and method for user-defined data archiving
JP7500458B2 (ja) 2021-02-16 2024-06-17 キオクシア株式会社 不揮発性半導体記憶装置及びその動作方法
JP7451809B2 (ja) 2022-02-17 2024-03-18 キオクシア株式会社 方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357683A (ja) * 2001-05-07 2001-12-26 Toshiba Corp 記憶システム
JP2007507804A (ja) * 2003-10-03 2007-03-29 サンディスク コーポレイション フラッシュメモリのデータ修正およびスクラブ技術

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200012B2 (ja) * 1996-04-19 2001-08-20 株式会社東芝 記憶システム
JP2910745B2 (ja) * 1997-09-30 1999-06-23 ソニー株式会社 記憶装置及びデータ処理方法
TW439293B (en) * 1999-03-18 2001-06-07 Toshiba Corp Nonvolatile semiconductor memory
JP4282197B2 (ja) 2000-01-24 2009-06-17 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7554842B2 (en) * 2001-09-17 2009-06-30 Sandisk Corporation Multi-purpose non-volatile memory card
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) * 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
JP4270994B2 (ja) * 2003-09-29 2009-06-03 株式会社東芝 不揮発性半導体記憶装置
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
JP2008020937A (ja) * 2004-10-29 2008-01-31 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
JP2006286118A (ja) * 2005-04-01 2006-10-19 Matsushita Electric Ind Co Ltd 閾値電圧制御機能を有する不揮発性記憶装置
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
KR100791325B1 (ko) * 2006-10-27 2008-01-03 삼성전자주식회사 비휘발성 메모리를 관리하는 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357683A (ja) * 2001-05-07 2001-12-26 Toshiba Corp 記憶システム
JP2007507804A (ja) * 2003-10-03 2007-03-29 サンディスク コーポレイション フラッシュメモリのデータ修正およびスクラブ技術

Also Published As

Publication number Publication date
JP5223869B2 (ja) 2013-06-26
CN101911207B (zh) 2014-05-07
US20100265768A1 (en) 2010-10-21
CN101911207A (zh) 2010-12-08
KR20100089100A (ko) 2010-08-11
US7978513B2 (en) 2011-07-12
JPWO2009090731A1 (ja) 2011-05-26
WO2009090731A1 (ja) 2009-07-23

Similar Documents

Publication Publication Date Title
KR101092823B1 (ko) 반도체 기억 장치, 제어 장치, 및 제어 방법
US20200042223A1 (en) System and method for facilitating a high-density storage device with improved performance and endurance
KR100833188B1 (ko) 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
US9117529B2 (en) Inter-cell interference algorithms for soft decoding of LDPC codes
KR102372825B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10977116B2 (en) Data access method, memory control circuit unit and memory storage device
KR20130084469A (ko) 데이터 압축 저장 방법 및 이를 이용한 저장 장치
CN108027764B (zh) 可转换的叶的存储器映射
KR20160048682A (ko) 불휘발성 메모리 장치 그리고 그 제어방법
US20190088336A1 (en) Decoding method, memory controlling circuit unit and memory storage device
CN112513804A (zh) 一种数据处理方法及装置
CN112286721A (zh) 瞬间断电回复处理方法及计算机可读取存储介质以及装置
KR20180009558A (ko) 저밀도-패리티 체크 코드를 이용하는 디코더 및 이를 포함하는 메모리 컨트롤러
CN107436820B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US8775902B2 (en) Memory controller and storage device
US10372377B2 (en) Memory controller, memory system, and control method
CN112306742A (zh) 瞬间断电回复处理方法及计算机可读取存储介质以及装置
KR20130130484A (ko) 읽기 카운터 로직을 포함하는 플래시 메모리 시스템
US20230161666A1 (en) Ecc parity biasing for key-value data storage devices
CN114822664A (zh) 基于数据优先级的风险评估方法、存储装置及控制电路
US9110785B1 (en) Ordered merge of data sectors that belong to memory space portions
KR20220122826A (ko) 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치의 리드 방법
CN109710450B (zh) 数据编码方法、存储器控制电路单元与存储器存储装置
CN108428464B (zh) 解码方法、存储器储存装置及存储器控制电路单元
TWI376695B (ko)

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee