KR102294042B1 - 반도체 메모리 장치 - Google Patents

반도체 메모리 장치 Download PDF

Info

Publication number
KR102294042B1
KR102294042B1 KR1020200013719A KR20200013719A KR102294042B1 KR 102294042 B1 KR102294042 B1 KR 102294042B1 KR 1020200013719 A KR1020200013719 A KR 1020200013719A KR 20200013719 A KR20200013719 A KR 20200013719A KR 102294042 B1 KR102294042 B1 KR 102294042B1
Authority
KR
South Korea
Prior art keywords
address information
controller
block
physical address
state
Prior art date
Application number
KR1020200013719A
Other languages
English (en)
Other versions
KR20200116019A (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 KR20200116019A publication Critical patent/KR20200116019A/ko
Application granted granted Critical
Publication of KR102294042B1 publication Critical patent/KR102294042B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control 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
    • 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
    • G11C16/20Initialising; Data preset; Chip identification
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/54Arrangements for designing test circuits, e.g. design for test [DFT] tools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

블록들 사이의 프로그래밍/소거 사이클 횟수를 평탄화할 수있는 반도체 메모리 장치가 제공된다. 반도체 메모리 장치는: 메모리 셀 어레이; 논리 어드레스 정보와 물리 어드레스 정보 사이의 관계를 정의하는 어드레스 변환 테이블; 상기 블록의 소거될 블록들을 식별하기 위한 물리 어드레스 정보를 관리하는 무효 블록 테이블; 소거된 사용 가능한 블록을 식별하기 위해 사용되는 물리 어드레스 정보를 관리하는 자유 블록 테이블; 블록을 소거하기 위한 소거 요소; 제어기를 포함한다. 소거 명령 및 제1 논리 어드레스 정보가 환경에서 수신되면, 제어기가 무효 블록 테이블에서 선택된 물리 어드레스 정보의 블록을 소거하고, 자유 블록 테이블로부터 선택된 물리 어드레스 정보가 외부 환경으로부터 수신된 제1 논리 어드레스 정보에 대응하는 방식으로 어드레스 변환 테이블을 재기록한다.

Description

반도체 메모리 장치{SEMICONDUCTOR MEMORY DEVICE}
본 발명은 반도체 메모리 장치에 관한 것으로, 특히 NAND 플래시 메모리의 블록 사이의 프로그래밍/소거 사이클 횟수를 평탄화하기 위한 웨어 레벨링(wear leveling) 기술에 관한 것이다.
본 출원은 2019년 3월 27일에 출원된 일본 특허 출원 일련 번호 2019-060533의 우선권을 주장한다. 상기 언급된 특허 출원 전체가 본원에 참조로 포함되고 본 명세서의 일부를 구성한다.
일반적으로, NAND 플래시 메모리(NAND flash memory)는 메모리 칩(memory chip) 및 패키지 내의 메모리 칩을 제어하도록 구성된 메모리 제어기(memory controller)로 구성된다. 메모리 제어기는 메모리 칩의 에러 정정 또는 배드 블록(bad block) 관리와 같은 고정 부하(fixed load)를 담당하며, 이는 호스트 측의 계산 부하를 감소시킬 수 있다.
예를 들어, 일본 특허 출원 공개 제2009-175877호의 플래시 메모리 시스템은 도 1에 도시된 바와 같이 플래시 메모리(flash memory)(10) 및 호스트 장치(host device)(40)를 포함하고, 플래시 메모리(10)는 메모리 제어기(memory controller)(20) 및 메모리 칩(30)을 포함한다. 메모리 제어기(20)는 호스트 장치(40)로 데이터를 전송/수신하기 위한 호스트 인터페이스(host interface)(22), 메모리 칩(30)으로 데이터를 전송/수신하기 위한 메모리 인터페이스(memory interface)(24), 메모리 칩의 데이터 전송 또는 동작을 제어하는 마이크로 프로세서 유닛(microprocessor unit)(MPU), 프로그램 또는 데이터를 저장하기 위한 ROM(read-only memory), 프로그램 또는 데이터 등을 저장하기 위한 랜덤 액세스 메모리(RAM) 등을 포함한다, 메모리 칩(30)은 예를 들어 NAND 플래시 메모리의 칩이다.
NAND 플래시 메모리에서, 판독 및 프로그래밍 동작은 페이지 단위로 수행되고, 소거 동작은 블록 단위로 수행된다. 호스트 장치가 작업을 지시하면, 판독, 프로그래밍 및 소거를 위한 논리 어드레스를 메모리 제어기에 출력한다. 메모리 제어기는 SRAM에서 보유되는 변환 테이블을 참조하여 수신된 논리 어드레스를 물리 어드레스로 변환하고, 메모리 셀 어레이를 향한 프로그래밍 동작을 수행한다. 전원이 켜지면 변환 테이블이 메모리 셀 어레이의 준비 영역에서 SRAM으로 로드 된다. 또한 플래시 메모리에서, 프로그래밍/소거 사이클 횟수가 증가하면, 내구성 및 데이터 보존 능력의 열화(deterioration)가 심각해진다. 이러한 열화의 원인은 프로그래밍/소거 사이클의 증가로 인해 전자가 게이트 산화막(gate oxide film)에 의해 포획되거나 전자의 터널링으로 인해 게이트 산화막(gate oxide film) 자체가 열화될 수 있다. 특정 블록을 향한 프로그래밍/소거 사이클 횟수가 증가하면, 사용할 수 없는 블록이 결국 생성되고 메모리 셀 어레이의 이용 효율이 감소한다. 따라서, 메모리 셀 어레이의 블록들 사이의 프로그래밍/소거 사이클 횟수는 가능한 균일한 것이 바람직하다.
또한, 플래시 메모리에서, 현재 블록의 상태를 나타내는 정보 및 논리 어드레스/물리 어드레스의 변환 테이블이 SRAM에 보유되고, 및 갑작스러운 정전을 처리하기 위해, 백업 정보는 스페어 영역(spare area)과 같은 메모리 셀 어레이에 의해 결정된 영역에 저장된다. 그런 다음 전원을 다시 켜면, 스페어 영역에서 판독한 정보를 기반으로 SRAM에서 변환 테이블이 다시 구성된다. 그러나, 스페어 영역을 향한 프로그래밍 동작은 프로그래밍의 사이클 횟수를 증가시키며, 프로그래밍 전압의 인가로 인해 동일한 페이지의 일반 영역(normal area)이 교란될 수 있다. 교란을 프로그램 게이트 교란(Program Gate Disturb)(PGD)이라고 한다. 최악의 경우 프로그래밍 사이클과 PGD의 수가 증가하면 일반 영역의 데이터 성능이 열화될 수 있다.
본 발명은 블록들 사이의 프로그래밍/소거 사이클 횟수를 평탄화(smoothing)할 수 있고, 프로그래밍 사이클 횟수를 억제하고 스페어 영역(spare area)을 효과적으로 이용할 수 있는 반도체 메모리 장치에 관한 것이다.
복수의 블록을 포함하는 메모리 셀 어레이(memory cell array); 논리 어드레스 정보(logical address information)를 물리 어드레스 정보(physical address information)로 변환하기 위한 변환 정보(translation information)를 보유하는 제1 보유 요소(first holding element); 상기 복수의 블록 중 소거될 블록을 식별하기 위해 물리 어드레스 정보를 보유하는 제2 보유 요소(second holding element); 프로그래밍/소거 사이클의 횟수에 기초하여 선택된 소거된 사용 가능한 블록을 식별하기 위해 물리 어드레스 정보를 보유하는 제3 보유 요소(third holding element); 메모리 셀 어레이의 복수의 블록을 소거하는 소거 요소(erasing element); 및 제어 요소(control element)를 포함하고, 소거 명령(erasing command) 및 제1 논리 어드레스 정보가 외부로부터 수신될 때, 제어 요소는 변환 정보에 기초하여 제1 논리 어드레스 정보를 제1 물리 어드레스 정보로 변환하고, 제2 보유 요소에 의해 보유되는 제2 물리 어드레스 정보가 제1 물리 어드레스 정보와 일치하지 않을 때, 제어 요소는 소거 요소가 제2 물리 어드레스 정보에 대응하는 복수의 블록의 블록을 소거하도록 제어하고, 및 제어 요소는 제3 보유 요소에 의해 보유되는 제3 물리 어드레스 정보가 제1 논리 어드레스 정보에 대응하는 방식으로 제1 보유 요소의 변환 정보를 업데이트 한다.
일 실시예에서, 제어 요소는 제1 물리 어드레스 정보를 제2 보유 요소에 더하고 제3 보유 요소로부터 제3 물리 어드레스 정보를 삭제한다. 일 실시예에서, 반도체 메모리 장치는 프로그래밍 요소(programming element)를 더 포함하고, 및 프로그래밍 요소는 메모리 셀 어레이의 선택된 페이지 상에 데이터를 프로그래밍 하도록 구성되고, 및 제어 요소는 블록이 상기 제3 물리 어드레스 정보에 대응하는 복수의 블록 중의 하나의 블록의 선택된 페이지의 스페어 영역에서 사용 중이라는 것을 나타내는 제1 논리 어드레스 정보 및 상태를 프로그램 하도록 프로그래밍 요소를 제어한다. 일 실시예에서, 제어 요소는 블록이 제1 물리 어드레스 정보에 대응하는 복수의 블록 중의 하나의 블록의 선택된 페이지의 스페어 영역에서 소거될 블록이 되는 것을 나타내는 상태를 프로그램 하도록 프로그래밍 요소를 제어한다. 일 실시예에서, 블록의 상태와 연관된 정보는 메모리 셀 어레이에 의해 결정된 영역에 프로그램 되고, 및 제어 요소는 상태와 연관된 정보에 기초하여 제1 보유 요소, 제2 보유 요소 및 제3 보유 요소에 의해 보유되는 정보를 생성한다. 일 실시예에서, 제어 요소의 전원이 켜지면, 상기 제어 요소는 상기 메모리 셀 어레이로부터 상태와 연관된 정보를 판독한다. 일 실시예에서, 반도체 메모리 장치는 제4 보유 요소를 더 포함하고, 및 소거 동작을 수행할 때 제4 보유 요소는 각각의 블록의 상태와 연관된 정보를 보유하고, 제어 요소는 프로그래밍 동작을 수행할 때 메모리 셀 어레이의 대응하는 스페어 영역에서 제4 보유 요소에 의해 보유된 상태와 연관된 정보를 프로그램 한다. 일 실시예에서, 제4 보유 요소는 비휘발 메모리의 상기 상태와 연관된 정보를 보유한다.
본 개시에 따르면, 메모리 셀 어레이의 블록들 사이의 프로그래밍/소거 사이클의 횟수는 평탄화되어 메모리 유닛 셀의 이용 효율을 향상시킨다. 따라서, 본 개시에 따르면, 스페어 영역에서 상태와 연관된 정보를 프로그래밍 할 수 있는 경우 프로그래밍 사이클 횟수가 감소될 수 있다.
첨부 도면은 본 개시의 추가 이해를 제공하기 위해 포함되며, 본 명세서에 포함되어 본 명세서의 일부를 구성한다. 도면은 본 개시의 실시예를 예시하고, 상세한 설명과 함께 본 개시의 원리를 설명하는 역할을 한다.
도 1은 기존의 반도체 메모리의 예이다.
도 2는 본 발명의 일 실시예에 따른 플래시 메모리의 전체 구성을 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 메모리 셀 어레이의 블록들의 내부 구성을 도시한 도면이다.
도 4는 본 개시의 실시예에 따른 플래시 메모리의 블록 내의 구성의 도면이다.
도 5a는 SRAM에 보유된 어드레스 변환 테이블의 개략도이고, 도 5b는 SRAM에 보유된 현재 참조 테이블의 개략도이다.
도 6은 메모리 셀 어레이의 블록 상태의 개략도이다.
도 7은 호스트 장치로부터 입력된 논리 어드레스를 물리 어드레스로 변환하는 동작을 도시한 도면이다.
도 8a, 도 8b 및 도 8c는 본 개시의 실시예의 자유 블록 테이블, 무효 블록 테이블 및 상태 블록 테이블의 개략도이다.
도 9는 본 발명의 일 실시예에 따른 소거 동작을 나타내는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 소거 동작을 나타내는 흐름도이다.
도 11a 및 도 11b는 소거 동작 동안의 재기록된 어드레스 변환 테이블 및 현재 참조 테이블의 개략도이다.
도 12는 소거 동작 동안 메모리 셀 어레이의 다양한 블록의 상태의 개략도이다.
도 13a, 도 13b 및 도 13c는 소거 동작 동안 재기록된 자유 블록 테이블, 무효 블록 테이블 및 상태 블록 테이블의 개략도이다.
본 개시의 실시예는 도면을 참조하여 상세하게 설명된다. 본 발명의 플래시 메모리는 NAND 메모리 셀을 갖는 메모리 장치 및 메모리 장치를 제어하는 제어기로 구성된다. 제어기는 메모리 장치를 형성하는 칩과 동일한 칩 상에 형성될 수 있거나, 상이한 칩 상에 형성될 수 있다. 또한, 플래시 메모리가 복수의 칩을 포함하는 경우, 복수의 칩을 적층함으로써 플래시 메모리가 형성될 수도 있다.
[실시예]
도 2는 본 발명의 일 실시예에 따른 플래시 메모리(flash memory)(100)의 내부 구성을 나타내는 도면이다. 실시예의 플래시 메모리(100)는 호스트 장치로부터 다양한 제어 신호(CLE(Command Latch Enable) 신호, ALE(Address Latch Enable) 신호 등), 데이터, 명령 등을 수신하고, 이들 신호에 따라 판독, 프로그래밍(기록), 소거 동작을 수행한다. 또한, 플래시 메모리(100)는 메모리의 동작 상태를 나타내는 판독 신호 또는 비지 신호를 호스트 장치에 출력한다.
플래시 메모리(100)는: 어레이로 배열된 복수의 메모리 셀을 갖는 메모리 셀 어레이(memory cell array)(110); 외부 입력 출력 단자 I/O에 연결된 입력 출력 버퍼(input output buffer)(120); 입력 출력 버퍼(120)로부터 어드레스 데이터를 수신하는 어드레스 레지스터(address register)(130); 입력 출력 버퍼(120)로부터 명령 데이터 등을 수신하여 다양한 구성 요소를 제어하는 제어기(controller)(140); 어드레스 레지스터(130)로부터 행 어드레스 정보(row address information)(Ax)를 수신하고, 행 어드레스 정보(Ax)를 디코딩하고, 디코딩 결과에 기초하여 블록 및 워드 라인을 선택하는 워드 라인 선택 회로(word line selection circuit)(150); 워드 라인 선택 회로(150)에 의해 선택된 페이지로부터 판독된 데이터를 보유하거나, 선택된 페이지 상에 프로그램 되어야 하는 입력 데이터를 보유하는 페이지 버퍼/센서 회로(page buffer/sensor circuit)(160); 어드레스 레지스터(address register)(130)로부터 열 어드레스 정보(column address information)(Ay)를 수신하고, 열 어드레스 정보(Ay)를 디코딩하고, 디코딩 된 결과에 기초하여 페이지 버퍼/센서 회로(160)에서 열 어드레스의 데이터를 선택하는 열 선택 회로(column selection circuit)(170); 및 데이터의 판독, 프로그래밍 및 소거 동작에 필요한 다양한 전압(프로그래밍 전압(Vpgm), 패스 전압(passing voltage)(Vpass), 판독 패스 전압(read passing voltage)(Vread), 소거 전압(erasing voltage)(Vers) 등)을 생성하는 내부 전압 생성 회로(internal voltage generating circuit)(180)를 포함한다.
메모리 셀 어레이(110)는 열 방향으로 m 개의 블록(BLK(0), BLK(1), ??, BLK(m-1))을 갖는다. 도 3에 도시된 바와 같이, 하나의 블록에서, 행 방향으로 복수의 메모리 셀을 직렬로 연결하는 n 개의 NAND 스트링이 있다. 한 행 방향의 메모리 셀은 한 페이지(예를 들어, 2KB)를 구성한다. 하나의 NAND NU는 직렬로 연결된 복수의 메모리 셀(MCi)(i = 0, 1, 2, 3, ??, 63) 및 일측에서 단부로서 기능하는 메모리 셀(MC63)의 드레인 측에 연결된 비트 라인 측 선택 트랜지스터(bit line side selection transistor)(Td), 및 메모리 셀(MC0)의 소스 측에 연결된 소스 라인 측 선택 트랜지스터(source line side selection transistor)(Ts)를 포함한다. 비트 라인 측 선택 트랜지스터(Td)의 드레인은 비트 라인(BL0-BLK-1)에서 대응하는 비트 라인(BL)에 연결되고, 소스 라인 측 선택 트랜지스터(Ts)의 소스는 공통 소스 라인(common source line)(SL)에 연결된다. 메모리 셀은 1 비트 데이터를 저장하는 메모리 셀 또는 다중 비트 데이터를 저장하는 메모리 셀일 수 있다. 더욱이, 메모리 셀 어레이는 기판 상에 2 차원 적으로 형성된 메모리 셀 어레이이거나 또는 기판 상에 3 차원적으로 형성된 메모리 셀 어레이일 수 있다.
메모리 셀 어레이(110)의 각 블록에서, 즉, 블록을 구성하는 각 페이지는 사용자가 사용하는 일반 영역(normal area)과 다양한 관리 정보 등을 저장하는 데 사용되는 스페어 영역으로 나뉜다. 예를 들어, 메모리 셀 어레이(110)의 한 페이지는 도 4에 도시된 것과 같으며, 8 개의 섹터(sector)(섹터 0-섹터 7)를 포함하는 일반 영역(normal area)(200), 및 스페어(SP_0), 스페어(SP_1), 스페어(SP_2) 및 스페어(SP_3)의 4 개의 섹터를 포함하는 스페어 영역(210)을 포함한다. 예를 들어, 일반 영역(200)의 한 섹터는 256 바이트(전체적으로 2K 바이트)이며, 스페어 영역(210)의 하나의 섹터는 16 바이트(전체적으로 64 바이트)이다.
스페어 영역은 배드 메모리 요소(bad memory element)를 포함하는 배드 블록(bad block)을 식별하기 위한 정보(information)(212), 블록의 물리 블록 어드레스(physical block address)(PBA)에 대응하는 논리 블록 어드레스(logical block address)(LBA)를 식별하기 위한 정보(214), 블록의 상태와 연관된 정보(216) 및 패리티 비트(218)를 저장한다. 상태와 관련된 정보는 후술되는데, 예를 들어 소거된 블록(erased block)(E), 유효 블록(valid block)(V), 소거될 무효 블록(to-be-erased invalid block)(I), 프로그래밍/소거(EW) 사이클 횟수 등을 포함한다.
제어기(140)는, 예를 들어, 마이크로 프로세서(MPU), ROM(Read-Only Memory) 등을 포함하고, ROM에 저장된 소프트웨어 프로그램을 실행함으로써, 제어기(140)는 플래시 메모리(100)의 판독, 프로그래밍 및 소거 동작을 제어한다. 따라서, 실시예의 제어기(140)는 SRAM(142) 및 저항 가변 메모리(Resistance Random Access Memory)(RRAM)(144)를 포함하고, SRAM(144) 및 RRAM(144)의 판독 및 기록 제어를 수행한다.
SRAM(142)은 고속으로 판독하고 기록할 수 있는 휘발성 메모리의 총칭으로, 복수의 레지스터를 포함한다. SRAM(142)의 전원이 켜지고, 제어기(controller)(140)는 전원 온 시퀀스를 실행하고, SRAM(142)은 메모리 셀 어레이(110)의 특정 블록의 특정 페이지 또는 미리 정해진 스페어 영역으로부터 로드 된 데이터를 보유한다. 제어기(140)는 SRAM(142)에 로드 된 데이터에 따라 다양한 테이블을 생성하고, 생성된 테이블을 SRAM(142)에 저장하거나 필요에 따라 테이블을 재 기록할 수 있다. 테이블은, 예를 들어 논리 블록 어드레스(LBA)와 물리 블록 어드레스(PBA) 사이의 관계를 정의하는 변환 테이블(translation table), 메모리 셀 어레이(110)의 각 블록의 상태와 연관된 정보를 나타내는 테이블 등이다.
SRAM(12)은 휘발성 메모리(volatile memory)이므로, 전원이 꺼지면 SRAM(142)에 보유된 테이블과 같은 데이터가 손실될 것이다. 따라서, SRAM(142)에 보유된 데이터가 재기록될 때, 백업 데이터(backup data)는 메모리 셀 어레이의 스페어 영역에 프로그램 된다. 또한, 전원이 다시 켜지면, 스페어 영역으로부터 판독된 데이터를 이용하여 SRAM(142)의 테이블 등이 재구성된다.
RRAM(144)은 가역적이고 비 휘발성 가변 저항 요소(reversible and non-volatile variable resistance element)에 데이터를 저장할 수 있는 가변 저항 RAM이다. RRAM(144)은 SRAM(142)만큼 빠르게 데이터를 판독하고 기록할 수 있는 비휘발 메모리이며, 전원이 꺼져도 데이터를 보유할 수 있다.
RRAM(144)은 SRAM(142)에서 백업으로서 기능할 수 있다. RRAM(144)은 SRAM(142)에 보유된 데이터의 일부를 저장하고, SRAM(142)의 테이블 등에서 변경이 있을 때, 변경 내용이 저장될 수 있고, 메모리 셀 어레이의 스페어 영역을 향한 프로그래밍이 연기될 수 있다. 제어기(140)는 RRAM(144)에 저장된 데이터를 적절한 타이밍에 메모리 셀 어레이의 스페어 영역에 프로그램 할 수 있다. 일 실시예에서, 데이터가 일반 영역에서 프로그래밍 될 때, RRAM(144)의 데이터는 스페어 영역에서 동시에 프로그래밍 된다. 결과적으로, 프로그래밍 사이클의 횟수가 감소될 수 있고, 스페어 영역에서 프로그래밍 할 때만 생성되는 일반 영역으로의 프로그래밍 게이트 교란(Programming Gate Disturb)(PGD)이 억제될 수 있다.
플래시 메모리의 판독 작업에서, 비트 라인에 일정한 양의 전압이 인가되고, 선택된 워드 라인에 특정 전압(예를 들어, 0V)이 인가된다. 선택되지 않은 워드 라인에 패스 전압(passing voltage)(예를 들어, 4.5V)이 인가되고, 선택된 게이트 라인(SGD) 및 선택된 게이트 라인(SGS)에 양의 전압(예를 들어, 4.5V)이 인가되고, 비트 라인 측 선택 트랜지스터(Td) 및 소스 라인 측 선택 트랜지스터(Ts)가 턴온 되고, 공통 소스 라인(SL)은 0V로 설정된다. 프로그래밍 작업에서, 선택된 워드 라인에 고전압 프로그래밍 전압(예를 들어, 15V 내지 20V)이 인가되고, 선택되지 않은 워드 라인에 중간 전위(예를 들어, 10V)가 인가되고, 비트 라인 측 선택 트랜지스터(Td)가 턴온 되고, 및 소스 라인 측 선택 트랜지스터(Ts)가 턴 오프 되고, 및 데이터 "0" 또는 데이터 "1"에 대응하는 전위가 비트 라인(BL)에 공급된다. 소거 작업에서, 블록 내의 선택된 워드 라인에 0V가 인가되고, P 웰에 고전압(20V와 같은)이 인가되고, 플로팅 게이트의 전자가 기판으로 추출되어, 블록에 관한 데이터를 소거한다.
다음에, 본 실시 형태의 플래시 메모리(100)의 동작에 대하여 설명한다. 플래시 메모리(100)의 전원이 켜지면, 제어기(140)는 파워 온 시퀀스를 실행하고, 메모리 셀 어레이(110)의 시작 블록의 특정 페이지에 저장된 데이터, 각 블록의 스페어 영역에 저장된 논리 블록 어드레스(LBA), 및 도 6에 도시된 상태 관련 데이터가 SRAM(142)에 로딩된다. 제어기(140)는 로딩 된 정보에 기초하여 도 5a에 도시된 어드레스 변환 테이블 및 도 5b에 도시된 현재 참조 테이블(LUT)를 생성하고, SRAM(142)에 테이블을 보유한다.
도 5b 및 도 6의 상태 열에서 사용된 기호 "S"는 시스템이 사용하는 블록을 나타내고, "E"는 소거된 사용 가능한 블록을 나타내고, "V"는 사용중인 유효한 블록을 나타내고, "I"는 소거할 무효 블록을 나타내고, "BB"는 사용할 수 없는 배드 블록을 나타낸다.
하나의 블록이(V) 및(I)의 두 상태를 포함할 때, 상태(I)가 우선 순위를 가지며, 하나의 블록이(V) 및(E)의 두 상태를 포함할 때, 상태(V)가 우선 순위를 갖는다. 하나의 블록이(BB)와(E)의 두 상태를 포함할 때, 상태(BB)가 우선 순위를 갖는다. 예를 들어, 도 6에 도시된 메모리 유닛 어레이의 물리 블록 어드레스(PBA)(03h)에서, "V"는 페이지 PPA(00h)에 프로그램 되고 "I"는 페이지 PPA(03h)에 프로그램 되고, "I"가 우선 순위를 갖기 때문에 블록은 소거될 무효 블록으로 식별된다. 따라서, 스페어 영역의 논리 블록 어드레스(LBA)(01h)는 유효한 어드레스로서 사용될 수 없으며, 즉 도 5a의 변환 테이블에 반영될 수 없다. 도 5b의 현재 참조 테이블(LUT)에서 "I"로 반영된다. 또한, 도 6의 물리 블록 어드레스(PBA)(02h)에서, 상태는 "BB"로 프로그램 되므로 현재 참조 테이블(LUT)에 "BB"로 반영된다.
제어기(140)는 도 5a에 도시된 어드레스 변환 테이블을 참조하여 호스트 장치로부터 입력된 논리 어드레스(LAD)를 물리 어드레스(PAD)로 변환한다. 논리 어드레스(LAD)는 도 7에 도시된 바와 같이 논리 블록 어드레스(LBA), 논리 페이지 어드레스(LPA) 및 논리 열 어드레스(LCA)로 구성된다. 예를 들어, 플래시 메모리(100)에 액세스하기 위한 행 어드레스는 18 비트이고, 열 어드레스는 12 비트이다. 행 어드레스의 상위 12 비트는 지정된 블록의 어드레스고 하위 6 비트는 지정된 페이지의 어드레스다. 논리 페이지 어드레스(LPA)와 논리 열 어드레스(LCA)는 변환되지 않으며 물리 어드레스를 직접 구성한다. 따라서, 논리 어드레스(LAD)는 플래시 메모리에 액세스하기 위한 물리 어드레스(PAD)(= PBA + LPA + LCA)로 변환된다.
제어기(140)는 도 5b에 도시된 현재 참조 테이블(LUT)를 사용하여 각 블록의 프로그래밍/소거 사이클 횟수의 평탄화(smoothing)를 관리할 수 있다. 그러나, 실시예에서, 처리 속도를 향상시키기 위해 블록 탐색 시간을 단축시키기 위해, 도 8 a 내지도 8c에 도시된 3 개의 테이블이 생성된다.
도 8a에 도시된 자유 블록 테이블(Free Block Table)(FBT)은 다음에 사용될 수 있는 소거된 블록 및 블록을 관리하기 위한 테이블이다. FBT는 도 5b의 현재 참조 테이블(LUT)에서 상태 "E" 및 프로그래밍/소거(EW) 사이클 횟수를 갖는 블록에 기초하여 생성된다. FBT는, 예를 들어, 먼저 기록된 물리 블록 어드레스 PBA의 순서로 판독되는 선입 선출(FIFO) 레지스터에 저장된다. 이 경우, 프로그래밍/소거(EW) 사이클이 적은 블록으로부터 먼저 기록이 수행된다. 프로그래밍/소거(EW) 사이클 횟수는 블록 내 각 페이지에서 동일할 필요는 없다. 소거는 블록 단위로 수행되므로 각 페이지에 고르게 반영된다. 페이지 단위로 프로그래밍이 수행되므로 페이지마다 프로그래밍 사이클 횟수가 달라진다. 프로그래밍/소거(EW)의 사이클 수는 블록으로 계산된다. 즉, 블록의 페이지가 수행되더라도 프로그래밍/소거(EW)의 사이클 수는 1씩 증가한다.
도 8b에 도시된 무효 블록 테이블(Invalid Block Table)(IBT)은 소거될 블록을 관리하기 위한 테이블이다. IBT는 상태 "I"를 갖는 블록 및 도 5b의 현재 참조 테이블(current reference table)(LUT)에서 프로그래밍/소거(EW)의 사이클 수를 갖는 블록에 기초하여 생성된다. IBT는 또한 FIFO 유형 레지스터에 저장되며 프로그래밍/소거(EW) 사이클이 적은 횟수의 페이지에서 작성된다.
도 8c에 도시된 상태 블록 테이블(State Block Table)(SBT)는 도 5b에 도시된 현재 참조 테이블(LUT)의 상태를 저장한다. SBT는 도 5(B)의 현재 참조 테이블(LUT)에서 모든 블록의 상태를 이용하여 생성된다. SBT는 RRAM(144)에 저장되고, 동작 동안 블록의 상태가 변경되면, 변경이 저장된다.
다음으로, 플래시 메모리(100)에서 블록을 소거하는 동작은 도 9 및 도 10의 흐름도를 참조하여 후술된다. 메모리 셀 어레이(110)는 도 6에 도시된 상태를 갖도록 설정된다. 외부 호스트 장치는 소거 명령 및 소거될 블록을 나타내는 논리 블록 어드레스(LBA)(01h)를 출력하고, 플래시 메모리(100)는 그 출력을 수신한다(S101).
제어기(140)는 도 5a에 도시된 변환 테이블을 참조하여 논리 블록 어드레스(LBA)(01h)를 물리 블록 어드레스(PBA)(07h)로 변환한다. 그리고, 제어기(140)는 다음에 소거되어야 할 프로그래밍/소거 사이클이 적은 횟수의 블록을 결정하고, 그리하여 도 8b에 도시된 IBT의 시작 물리 블록 어드레스(PBA)(01h)를 판독한다(S103).
그리고, 제어기(140)는 IBT로부터 판독한 물리 블록 어드레스(PBA)(01h)에 의해 결정된 블록에 대해 소거 동작을 수행한다(S104). 호스트 장치에 의해 표시된 논리 블록 어드레스(LBA)(01h)에 대응하는 물리 블록 어드레스(PBA)(07h)는 IBT로부터 판독한 물리 블록 어드레스(PBA)(01h)와 일치하지 않으므로, 물리 블록 어드레스(PBA)(007)의 블록은 소거될 수 없고, 및 이 블록은 소거될 무효 블록(to-be-erased invalid block)(상태 "I")으로 관리된다. 제어기(140)의 지시에 응답하여, 워드 라인 선택 회로(150)는 물리 블록 어드레스(PBA)(01h)의 선택된 블록의 모든 워드 라인에 0V를 인가하고, 소거 전압을 P 웰에 인가한다. 이 때의 물리 블록 어드레스(PBA)(01h)의 블록 상태는 도 12에 도시되어 있다. 물리 블록 어드레스(PBA)(01h)의 스페어 영역은 소거된 사용 가능 상태(E)가 된다.
그리고, 메모리 셀 어레이(110)의 PBA(01h)의 상태를 반영하기 위해, 제어기(140)는 도 5b에 도시된 현재 참조 테이블(LUT)의 PBA(01h)의 상태를 "I"에서 "E"로 재기록하고, 프로그래밍/소거(EW)의 사이클 횟수가 1만큼 증가하여 "2"로 변경되었다(S105). 변형된 전류 기준표(LUT)는 도 11b에 도시되어 있고, 변형된 부분은 점선으로 표시되어 있다.
그리고, 제어기(140)는 메모리 셀 어레이(110)의 물리 블록 어드레스(PBA)(07h)의 페이지(03h) 상태를 "I"로 프로그래밍 한다(S106). 시작 페이지의 스페어 영역 상태가 "V"로 프로그래밍 되었으므로 해당 영역을 사용할 수 없다. 따라서 사용하지 않은 페이지(unused page)(03h)의 스페어 영역이 사용된다.
그리고, 메모리 셀 어레이(110)의 물리 블록 어드레스(PBA)(07h)의 상태를 현재 참조 테이블(LUT)에 반영하기 위하여, 제어기(140)는 현재 참조 테이블(LUT)의 물리 블록 어드레스 PBA(07h)의 상태를 "I"로 재기록하고(S107), 그 상태는 도 11b(점선 부분)에 도시된다.
그리고, 제어기(140)는 물리 블록 어드레스(PBA)(07h)를 IBT에 기록한다(S108). IBT는 FIFO 타입이므로, 도 13(B)에 도시된 바와 같이, 물리 블록 어드레스(PBA)(03h)는 시작 항목 #0으로 이동하고 물리 블록 어드레스(PBA)(07h)는 마지막 항목 #1에 더한다.
이러한 방식으로, 호스트 장치로부터 오는 소거 명령에 대응하는 소거 동작이 완료된 후, 제어기(140)는 논리 블록 어드레스 LBA(01h)에 할당되어야 하는 물리 블록 어드레스 PBA를 FBT에서 검색한다. 즉, 제어기(140)는 도 8a에 도시된 FBT의 시작 엔트리 #0의 물리 블록 어드레스(PBA)(08h)를 판독한다(S109).
그리고, 제어기(140)는 FBT로부터 판독한 물리 블록 어드레스(PBA)(08h)에 따라 메모리 셀 어레이의 PBA(08h)의 페이지(00h)의 스페어 영역의 논리 블록 어드레스(LBA)를(01h)로 재기록하고, 상태를 "V"로 프로그래밍 한다(S110).
그리고, 제어기(140)는 메모리 셀 어레이의 물리 블록 어드레스(PBA)(08h)에서 사용중인 유효한 블록으로서 블록을 할당하고, 이에따라 현재 참조 테이블(LUT)의 내용을 재기록하고, 즉 현재 참조 테이블(LUT)의 물리 블록 어드레스(PBA)(08h)의 논리 블록 어드레스(LBA)를(01h)에 재기록하고, 상태를 "E"에서 "V"로 재기록한다(S111). 그 상태는 도 11b(점선 부분)에 도시되어 있다.
그리고, 제어기(140)는 도 5a의 논리 블록 어드레스(LBA)(01h)가 물리 블록 어드레스(08h)에 대응하는 방식으로 변환 테이블을 재기록한다(S112). 그 상태는 도 11a(점선 부분)에 도시되어 있다.
그리고, 제어기(140)는 물리 블록 어드레스를 FBT에 더하고, 이에 따라 프로그래밍/소거(EW) 사이클이 적은 횟수히고 "E" 상태이고 FBT에 등록되지 않은 물리 블록 어드레스에 대한 현재 참조 테이블(LUT)를 검색한다(S113). 본 실시예에서, 물리 블록 어드레스 PBA(01h)가 검색된다.
그리고, 제어기(140)는 검색된 물리 블록 어드레스(PBA)(01h)를 FBT에 더하기 위해 기록 동작을 수행한다(S114). 그 상태는 도 13a(점선 부분)에 도시되어 있다. 이런 식으로, 더 적은 횟수의 프로그래밍/소거 사이클을 갖는 새로운 물리 블록 어드레스(08h)가 논리 블록 어드레스(LBA)(01h)에 할당되고, 더 적은 횟수의 프로그래밍/소거 사이클을 갖는 물리 블록 어드레스(01h)가 FBT에 더해진다.
실시예에 따르면, 소거 동작 동안, 위에서 설명한 알고리즘은 블록을 소거하고 블록을 사용하는 데 사용된다. 따라서, 메모리 셀 어레이 내의 블록들 사이의 프로그래밍/소거 사이클 수는 평탄화되어 블록들 사이의 웨어 레벨링(wear leveling)을 구현할 수 있다. 결과적으로, 플래시 메모리의 활용 효율이 향상될 수 있다.
다음으로, 본 개시의 제2 실시예가 아래에 설명된다. 소거 동작의 단계(S110)에서, 제어기(140)는 메모리 셀 어레이의 물리 블록 어드레스(PBA)(08h)의 페이지(01h)의 스페어 영역에 논리 블록 어드레스(LBA)(01h) 및 상태 "V"를 프로그램 하고, 그러나 프로그래밍으로 인하여, 동일한 페이지에서 허용되는 최대 프로그래밍 사이클 횟수가 한 번 소비된다. 본 실시예에서, 폐기물을 소거하기 위해, 도 8c에 도시된 소거된 상태 블록의 상태를 관리하는데 사용되는 상태 블록 테이블(SBT)은 유연한 사용을 위해 비휘발 메모리에 저장된다.
도 8c에 도시된 바와 같이, SBT는 현재 참조 블록의 상태를 추출하고 각각의 물리 블록 어드레스(PBA)의 상태를 나타낸다. 제어기(140)는 소거 동작 동안 블록의 상태가 변경될 때 도 13c에 도시된 바와 같이 SBT(점선 부분)를 재기록한다. 즉, 물리 블록 어드레스(PBA)(01h)는 소거될 무효 블록 "I"로부터 소거된 블록 "E"로 재기록되고, 물리 블록 어드레스(PBA)(07h)는 사용중인 유효 블록 "V"에서 소거될 무효 블록 "I"로 재기록되며, 물리 블록 어드레스(PBA)(08h)는 소거된 블록 "E"로부터 사용중인 유효한 "V"로 재기록된다.
호스트 장치(host device)로부터 물리 블록 어드레스 PBA(08h)의 페이지(00h)에 대한 프로그래밍 명령을 수신할 때, 제어기(140)는 소거 동작에서 상태가 "E"에서 "V"로 변경된 물리 블록 어드레스(PBA)(08h)를 프로그램 하지 않고, 동시에 스페어 영역에서 논리 블록 어드레스(LBA)(01h) 및 상태 "V"를 프로그램 한다. 따라서, 물리 블록 어드레스(PBA)(08h)의 페이지(00h)에서 프로그래밍 사이클 횟수는 한 번 소비된다. 프로그래밍이 완료되기 전의 기간 동안, 비휘발 메모리의 SBT는 대체되고, 그 후 SBT가 소거된다. 또한, 블록 상태가 "V"로 변경되면, 논리 블록 어드레스에 대한 새로운 대응이 확립되어, SBT에서 논리 블록 어드레스(LBA)가 함께 저장되고, 논리 블록 어드레스(LBA)도 스페어 영역에 프로그램 된다.
또한, 본 실시예에서, RRAM은 비휘발 메모리로서 사용되며, 그러나 NAND 메모리보다 빠르게 데이터를 기록할 수 있는 한, RRAM 외에 MRAM(자기 메모리)도 사용될 수 있다.
본 개시의 범위 또는 사상을 벗어나지 않으면서 개시된 실시예들에 대한 다양한 수정 및 변형이 이루어질 수 있음이 당업자에게 명백할 것이다. 전술 한 관점에서, 본 개시는 다음의 청구 범위 및 그 등가물의 범위 내에 속하는 수정 및 변형을 포함하는 것으로 의도된다.

Claims (10)

  1. 반도체 메모리 장치에 있어서,
    복수의 블록을 포함하는 메모리 셀 어레이;
    논리 어드레스 정보를 물리 어드레스 정보로 변환하기 위한 변환 정보를 보유하는 제1 레지스터;
    상기 복수의 블록 중 소거될 블록을 식별하기 위해 상기 물리 어드레스 정보를 보유하는 제2 레지스터;
    프로그래밍/소거 사이클의 횟수에 기초하여 선택된 소거된 사용 가능한 블록을 식별하기 위해 물리 어드레스 정보를 보유하는 제3 레지스터; 및
    제어기를 포함하고,
    소거 명령 및 제1 논리 어드레스 정보가 외부 환경으로부터 수신될 때, 상기 제어기는, 변환 정보에 기초하여 제1 논리 어드레스 정보를 제1 물리 어드레스 정보로 변환하고,
    제2 레지스터에 의해 보유되는 제2 물리 어드레스 정보가 제1 물리 어드레스 정보와 일치하지 않을 때, 상기 제어기는, 상기 제2 물리 어드레스 정보에 대응하는 복수의 블록의 블록을 소거하고, 및
    상기 제어기는, 제3 레지스터에 의해 보유되는 제3 물리 어드레스 정보가 제1 논리 어드레스 정보에 대응하는 방식으로 제1 레지스터의 변환 정보를 업데이트 하는
    반도체 메모리 장치.
  2. 제1항에 있어서,
    상기 제어기는,
    제1 물리 어드레스 정보를 제2 레지스터에 더하고 제3 레지스터로부터 제3 물리 어드레스 정보를 삭제하는
    반도체 메모리 장치.
  3. 제1항에 있어서,
    상기 제어기는,
    상기 메모리 셀 어레이의 선택된 페이지 상에 데이터를 프로그래밍하고,
    상기 제어기는,
    블록이 상기 제3 물리 어드레스 정보에 대응하는 복수의 블록 중의 하나의 블록의 선택된 페이지의 스페어 영역에서 사용 중이라는 것을 나타내는 제1 논리 어드레스 정보 및 상태를 프로그램하는
    반도체 메모리 장치.
  4. 제3항에 있어서,
    상기 제어기는,
    블록이 제1 물리 어드레스 정보에 대응하는 복수의 블록 중의 하나의 블록의 선택된 페이지의 스페어 영역에서 소거될 블록이 되는 것을 나타내는 상태를 프로그램하는
    반도체 메모리 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 복수의 블록의 상태와 연관된 정보는,
    메모리 셀 어레이에 의해 결정된 영역에 프로그램되고, 및
    상기 제어기는,
    상기 상태와 연관된 정보에 기초하여 제1 레지스터, 제2 레지스터 및 제3 레지스터에 의해 보유되는 정보를 생성하는
    반도체 메모리 장치.
  6. 제5항에 있어서,
    상기 제어기의 전원이 켜지면, 상기 제어기는, 상기 메모리 셀 어레이로부터 상태와 연관된 정보를 판독하는
    반도체 메모리 장치.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    소거 동작을 수행할 때 상기 복수의 블록 각각의 상태와 연관된 정보를 보유하는 제4 레지스터
    를 더 포함하고,
    상기 제어기는,
    프로그래밍 동작을 수행할 때 상기 메모리 셀 어레이의 대응하는 스페어 영역에서 제4 레지스터에 의해 보유된 상태와 연관된 정보를 프로그램하는
    반도체 메모리 장치.
  8. 제7항에 있어서,
    상기 제4 레지스터는,
    비휘발성 메모리의 상기 상태와 연관된 정보를 보유하는
    반도체 메모리 장치.
  9. 제1항에 있어서,
    상기 제어기는,
    제2 레지스터에 의해 보유되는 제2 물리 어드레스 정보의 상태를, 소거될 무효 블록의 상태로부터 소거된 블록의 상태로 프로그램하고,
    상기 제어기는,
    프로그래밍/소거 사이클의 횟수를 1씩 더하는
    반도체 메모리 장치.
  10. 제1항에 있어서,
    상기 제어기는,
    비교적 더 적은 횟수의 프로그래밍/소거 사이클로, 소거된 블록의 상태 및 상기 제3 레지스터에 등록되지 않은 상태를 가진 물리 어드레스 정보를 검색하고, 및
    상기 제어기는,
    검색된 물리 어드레스 정보를 상기 제3 레지스터에 더하기 위해 기록 동작을 수행하는
    반도체 메모리 장치.
KR1020200013719A 2019-03-27 2020-02-05 반도체 메모리 장치 KR102294042B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019060533A JP6727365B1 (ja) 2019-03-27 2019-03-27 半導体記憶装置
JPJP-P-2019-060533 2019-03-27

Publications (2)

Publication Number Publication Date
KR20200116019A KR20200116019A (ko) 2020-10-08
KR102294042B1 true KR102294042B1 (ko) 2021-08-26

Family

ID=71663970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200013719A KR102294042B1 (ko) 2019-03-27 2020-02-05 반도체 메모리 장치

Country Status (5)

Country Link
US (1) US11221945B2 (ko)
JP (1) JP6727365B1 (ko)
KR (1) KR102294042B1 (ko)
CN (1) CN111768808B (ko)
TW (1) TWI706249B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11416405B1 (en) 2020-02-07 2022-08-16 Marvell Asia Pte Ltd System and method for mapping memory addresses to locations in set-associative caches

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
JP4058322B2 (ja) * 2002-10-07 2008-03-05 株式会社ルネサステクノロジ メモリカード
EP1713085A1 (en) * 2002-10-28 2006-10-18 SanDisk Corporation Automated wear leveling in non-volatile storage systems
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
EP2977906A1 (en) * 2004-04-28 2016-01-27 Panasonic Corporation Nonvolatile storage device and data write method
KR100671625B1 (ko) * 2004-12-28 2007-01-19 주식회사 하이닉스반도체 블록 사이즈를 변경할 수 있는 난드 플래시 메모리 장치
US7509474B2 (en) * 2005-06-08 2009-03-24 Micron Technology, Inc. Robust index storage for non-volatile memory
KR101297283B1 (ko) * 2006-07-10 2013-08-19 삼성전자주식회사 낸드형 셀 스트링을 가지는 비휘발성 기억 장치
JP2009175877A (ja) 2008-01-22 2009-08-06 Toshiba Corp 半導体メモリ
JP2009266258A (ja) * 2008-04-22 2009-11-12 Hitachi Ltd 半導体装置
US20110161560A1 (en) * 2009-12-31 2011-06-30 Hutchison Neil D Erase command caching to improve erase performance on flash memory
JP2012234482A (ja) * 2011-05-09 2012-11-29 Canon Inc 記憶制御装置及びその制御方法、並びにプログラム
CN102841852B (zh) * 2011-06-24 2015-06-17 华为技术有限公司 磨损均衡方法、存储装置及信息系统
WO2013030866A1 (en) * 2011-08-29 2013-03-07 Hitachi, Ltd. Semiconductor storage device comprising electrically rewritable nonvolatile semiconductor memory
JP5619812B2 (ja) * 2012-04-24 2014-11-05 ウィンボンドエレクトロニクス コーポレーション 半導体記憶装置
KR102233808B1 (ko) * 2014-03-14 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 테이블 관리 방법
JP5734492B1 (ja) * 2014-05-08 2015-06-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10365835B2 (en) * 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
KR101633442B1 (ko) * 2014-10-10 2016-06-24 윈본드 일렉트로닉스 코포레이션 반도체 메모리 장치, 반도체 시스템 및 독출 방법
US9431116B2 (en) 2014-11-19 2016-08-30 Sandisk Technologies Llc Configuration parameter management using a configuration tool
KR102403202B1 (ko) * 2015-03-13 2022-05-30 삼성전자주식회사 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
TWI537964B (zh) 2015-04-20 2016-06-11 華邦電子股份有限公司 反及閘快閃記憶體和其操作方法
CN106297881B (zh) 2015-05-27 2020-09-11 旺宏电子股份有限公司 非挥发性存储器的健康管理
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法

Also Published As

Publication number Publication date
JP6727365B1 (ja) 2020-07-22
KR20200116019A (ko) 2020-10-08
CN111768808A (zh) 2020-10-13
US11221945B2 (en) 2022-01-11
CN111768808B (zh) 2022-06-07
TWI706249B (zh) 2020-10-01
TW202036302A (zh) 2020-10-01
JP2020160871A (ja) 2020-10-01
US20200310960A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
US7039775B2 (en) Non-volatile storage device and rewrite control method thereof
JP4746598B2 (ja) 半導体記憶装置
US11262939B2 (en) Memory system, memory controller, and operation method
JP2007164318A (ja) 記憶装置
US10445008B2 (en) Data management method for memory and memory apparatus
KR20220013661A (ko) 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법
JP2020086739A (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
KR102294042B1 (ko) 반도체 메모리 장치
KR20210143387A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210130341A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR102351933B1 (ko) 반도체 기억장치
TWI530957B (zh) 快閃記憶體、壞區塊的管理方法及管理程式
KR20220118004A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
JP4661748B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
KR20210071314A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR20210113743A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20220029903A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20220101264A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210079556A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
JP3908238B2 (ja) 不揮発性半導体メモリ装置のデータ書き込み方法
KR20220025401A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20210132806A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법

Legal Events

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