KR101772020B1 - 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템 - Google Patents

불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR101772020B1
KR101772020B1 KR1020110051095A KR20110051095A KR101772020B1 KR 101772020 B1 KR101772020 B1 KR 101772020B1 KR 1020110051095 A KR1020110051095 A KR 1020110051095A KR 20110051095 A KR20110051095 A KR 20110051095A KR 101772020 B1 KR101772020 B1 KR 101772020B1
Authority
KR
South Korea
Prior art keywords
codeword
signal
parity bits
previous
word
Prior art date
Application number
KR1020110051095A
Other languages
English (en)
Other versions
KR20120132765A (ko
Inventor
이광진
이영택
조우영
정회주
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110051095A priority Critical patent/KR101772020B1/ko
Priority to US13/193,191 priority patent/US8713408B2/en
Publication of KR20120132765A publication Critical patent/KR20120132765A/ko
Application granted granted Critical
Publication of KR101772020B1 publication Critical patent/KR101772020B1/ko

Links

Images

Classifications

    • 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
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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

Abstract

불휘발성 메모리 장치의 동작 방법의 동작 방법이 개시된다. 상기 방법은 메모리 영역에 저장된 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 인터럽트 신호가 발생하면, 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 패리티 비트들을 생성하는 단계와, 상기 이전 코드워드의 패리티 비트들을 생성된 패리티 비트들로 업데이트하는 단계를 포함한다. 상기 패리티 비트를 생성하는 단계와 상기 업데이트하는 단계는 커패시터에 저장된 전하들을 이용하여 수행된다.

Description

불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템 {NONVOLATILE MEMORY DEVICE, OPERATION METHOD THEREOF, AND MEMORY SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 불휘발성 메모리 장치의 동작 방법에 관한 것으로, 특히 이전 코드워드(previous codeword)를 현재 코드워드(current codeword)로 업데이트하는 도중에 인터럽트(interrupt) 신호가 발생하더라도 상기 이전 코드워드의 무결성(integrity)을 보장할 수 있는 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템에 관한 것이다.
종래의 불휘발성 메모리 장치는 에러 정정 코드(error correction code(ECC)) 인코더(encoder)를 내장하고 있지 않거나 또는 상기 ECC 인코더를 내장하고 있더라도, 메모리 셀 어레이에 저장된 이전 코드워드를 현재 코드워드로 업데이트하는 도중에 비정상적으로 프로그램 동작이 종료하면 상기 이전 코드워드의 무결성을 보장할 수 없었다.
본 발명이 이루고자 하는 기술적인 과제는 이전 코드워드를 현재 코드워드로 업데이트하는 도중에 인터럽트 신호가 발생하더라도 상기 이전 코드워드의 무결성 (integrity)을 보장할 수 있는 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치의 동작 방법은 메모리 영역에 저장된 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 인터럽트 신호가 발생하면, 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 패리티 비트들을 생성하는 단계와, 상기 이전 코드워드의 패리티 비트들을 생성된 패리티 비트들로 업데이트하는 단계를 포함한다.
상기 현재 코드워드의 일부는 상기 현재 코드워드 중에서 상기 메모리 영역에 프로그램된 부분에 상응하는 부분이고, 상기 이전 코드워드의 일부는 상기 이전 코드워드 중에서 업데이트되지 않은 부분이다.
상기 패리티 비트들을 생성하는 단계는 상기 이전 코드워드의 워드(word)를 상기 현재 코드워드의 워드로 업데이트하는 도중에 상기 인터럽트 신호가 발생하면, 상기 이전 코드워드의 상기 워드를 상기 현재 코드워드의 상기 워드로 업데이트한 후, 상기 패리티 비트들을 생성한다.
상기 불휘발성 메모리 장치의 동작 방법은 업데이트된 패리티 비트들을 이용하여 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부로 구성된 코드워드에 대한 에러 정정을 수행하는 단계를 더 포함한다.
상기 이전 코드워드에 포함된 다수개의 워드들 각각은 워드(word) 단위로 상기 현재 코드워드에 포함된 다수개의 워드들 각각으로 업데이트된다.
상기 인터럽트 신호는 파워-오프 검출 신호, 리셋 신호(reset signal), 또는 파워-다운 신호가 검출됨에 따라 발생한다.
상기 패리티 비트들을 생성하는 단계와 상기 업데이트하는 단계는 커패시터에 저장된 전하들을 이용하여 수행된다.
상기 이전 코드워드는 부분-프로그래밍(partial-programming)을 통하여 상기 현재 코드워드로 업데이트된다.
상기 불휘발성 메모리 장치의 동작 방법은 상기 불휘발성 메모리 장치의 동작 전압을 검출하는 단계와, 검출된 동작 전압이 기준 전압보다 낮을 때 상기 인터럽트 신호를 발생하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는 이전 코드워드와 상기 이전 코드워드의 제1패리티 비트들을 저장하는 메모리 셀 어레이와, 상기 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 발생한 인터럽트 신호를 검출하고, 검출 결과에 따라 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 제2패리티 비트들을 생성하고, 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 액세스 회로를 포함한다.
상기 불휘발성 메모리 장치는 저항성 메모리 장치 또는 상 변화 메모리 장치로 구현될 수 있다.
상기 불휘발성 메모리 장치는 상기 액세스 회로로 동작 전압을 공급하기 위한 커패시터를 더 포함한다.
실시 예에 따라 상기 불휘발성 메모리 장치는 상기 액세스 회로로 공급되는 동작 전압을 검출하는 전압 검출기와, 상기 동작 전압이 기준 전압보다 낮을 때 상기 전압 검출기로부터 출력된 검출 신호에 응답하여 상기 인터럽트 신호를 발생하는 인터럽트 신호 발생 회로를 더 포함한다.
다른 실시 예에 따라 상기 액세스 회로는 리셋 신호의 발생 또는 파워-다운 신호의 발생을 검출하고 검출 결과에 따라 상기 인터럽트 신호를 발생하는 인터럽트 신호 발생 회로를 포함한다.
또 다른 실시 예에 따라 상기 액세스 회로는 상기 액세스 회로로 공급되는 동작 전압을 검출하고 상기 동작 전압이 기준 전압보다 낮을 때 검출 신호를 발생하는 전압 검출기와, 선택 신호에 따라 리셋 신호 또는 상기 검출 신호를 상기 인터럽트 신호로서 출력하는 선택기를 포함한다.
또 다른 실시 예에 따라 상기 액세스 회로는 상기 액세스 회로로 공급되는 동작 전압을 검출하고 상기 동작 전압이 기준 전압보다 낮을 때 검출 신호를 발생하는 전압 검출기와, 리셋 신호와 상기 검출 신호를 논리합하여 상기 인터럽트 신호를 출력하는 논리합 게이트를 포함한다.
또 다른 실시 예에 따라 상기 액세스 회로는 상기 현재 코드워드의 적어도 일부를 저장하는 입력 버퍼와, 상기 이전 코드워드의 적어도 일부를 감지 증폭하는 감지 증폭기와, 상기 프로그램 명령에 따라 선택 신호를 발생하는 선택 신호 발생기와, 상기 선택 신호에 응답하여, 상기 입력 버퍼로부터 출력된 상기 현재 코드워드의 일부에 상응하는 적어도 하나의 현재 워드와 상기 감지 증폭기에 의하여 감지 증폭된 상기 이전 코드워드의 일부에 상응하는 적어도 하나의 이전 워드를 선택적으로 출력하는 선택기와, 상기 선택기로부터 출력된 상기 적어도 하나의 현재 워드와 상기 적어도 하나의 이전 워드를 이용하여 상기 제2패리티 비트들을 생성하는 에러 정정 코드 인코더와, 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하기 위한 패리티 라이트 드라이버를 포함한다.
상기 불휘발성 메모리 장치는 상기 프로그램 명령에 응답하여 검증-읽기 신호를 발생하는 검증-읽기 신호 발생 유닛을 더 포함하며, 상기 감지 증폭기는 상기 검증-읽기 신호에 응답하여 상기 이전 코드워드를 감지 증폭한다.
본 발명의 실시 예에 따른 집적 회로 패키지는 상기 불휘발성 메모리 장치와, 상기 불휘발성 메모리 장치로 동작 전압을 공급하는 파워 라인과 접지 사이에 접속된 커패시터를 포함하며, 상기 액세스 회로는 상기 커패시터에 저장된 전하들을 이용하여 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트한다.
본 발명의 실시 예에 따른 메모리 모듈은 상기 집적 회로 패키지와, 상기 집적 회로 패키지가 장착된(mounted) 보드(board)를 포함한다.
상기 메모리 모듈은 SIMM(single in-line memory module), DIMM(dual in-line memory modules), RDIMM(registered dual in-line memory module) UDIMM (unbuffered dual in-line memory module), SO-DIMM(small outline dual in-line memory module), 또는 ECC-SODIMM(error check & correction small outline dual in-line memory module)이다.
본 발명의 실시 예에 따른 컴퓨터 시스템은 상기 메모리 모듈과, 상기 메모리 모듈이 삽입된 슬롯(slot)이 장착된 메인 보드와, 상기 메인 보드에 장착되고 상기 메모리 모듈에 장착된 상기 불휘발성 메모리 장치의 동작을 제어하는 프로세서를 포함한다.
본 발명의 다른 실시 예에 따른 메모리 모듈은 상기 불휘발성 메모리 장치를 포함하는 집적 회로 패키지와, 상기 집적 회로 패키지가 장착된(mounted) 보드(board)를 포함하며, 상기 보드는 상기 불휘발성 메모리 장치로 동작 전압을 공급하는 파워 라인과 접지 사이에 접속된 커패시터를 포함하며, 상기 액세스 회로는 상기 커패시터에 저장된 전하들을 이용하여 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트한다.
본 발명의 다른 실시 예에 따른 컴퓨터 시스템은 상기 메모리 모듈과, 상기 메모리 모듈이 삽입된 슬롯(slot)이 장착된 메인 보드과, 상기 메인 보드에 장착되고 상기 메모리 모듈에 장착된 상기 불휘발성 메모리 장치의 동작을 제어하는 프로세서를 포함한다.
본 발명의 실시 예에 따른 메모리 시스템은 불휘발성 메모리 장치와, 상기 불휘발성 메모리 장치로 동작 전압을 공급하는 전력 관리 유닛을 포함한다.
상기 불휘발성 메모리 장치는 이전 코드워드와 상기 이전 코드워드의 제1패리티 비트들을 저장하는 메모리 셀 어레이와, 상기 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 발생한 인터럽트 신호를 검출하고, 검출 결과에 따라 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 제2패리티 비트들을 생성하고, 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 액세스 회로를 포함한다.
상기 액세스 회로는 상기 전력 관리 유닛으로부터 출력된 리셋 신호 또는 파워-다운 신호를 검출하고 검출 결과에 따라 상기 인터럽트 신호를 발생하는 인터럽트 신호 발생 회로를 포함한다.
상기 전력 관리 유닛은 상기 동작 전압의 공급이 차단될 때 검출 신호를 발생하고, 상기 액세스 회로는 상기 검출 신호에 따라 상기 인터럽트 신호를 발생한다.
상기 액세스 회로는 상기 동작 전압의 차단을 검출하고 검출 신호를 발생하는 전압 검출기와, 상기 검출 신호에 응답하여 상기 인터럽트 신호를 발생하는 인터럽트 신호 발생 회로를 포함한다.
상기 불휘발성 메모리 장치는 상기 동작 전압을 공급하는 파워 라인과 접지 사이에 접속된 커패시터를 포함하고, 상기 액세스 회로는 상기 커패시터에 저장된 전하들을 이용하여 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트한다.
상기 메모리 시스템은 SoC(system on chip), 이동 장치(hand-held devices) 또는 CE(consumer electronics)로 구현될 수 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는 이전 코드워드를 현재 코드워드로 업데이트하는 도중에 인터럽트 신호가 발생하더라도 상기 이전 코드워드의 무결성을 보장을 보장할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1a는 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 블록도를 나타낸다.
도 1b는 도 1a에 도시된 불휘발성 메모리 장치의 동작 제어 신호 발생 회로의 일 실시 예를 나타낸다.
도 1c는 도 1a에 도시된 불휘발성 메모리 장치의 동작 제어 신호 발생 회로의 다른 실시 예를 나타낸다.
도 2는 도 1a에 도시된 인터럽트 신호 발생기의 블록도를 나타낸다.
도 3은 도 2에 도시된 인터럽트 신호 제어 유닛의 블록도를 나타낸다.
도 4는 도 1a에 도시된 라이트 제어 유닛의 블록도를 나타낸다.
도 5a는 정상 프로그램 동작시, 도 1a에 도시된 불휘발성 메모리 장치의 동작을 설명하기 위한 제어 신호들의 타이밍 도이다.
도 5b는 인터럽트 신호가 발생했을 때, 도 1a에 도시된 불휘발성 메모리 장치의 동작을 설명하기 위한 제어 신호들의 타이밍 도이다.
도 6은 인터럽트 신호 발생시, 도 1a에 도시된 불휘발성 메모리 장치가 패리티 비트들을 생성하는 방법을 나타내는 일 실시 예이다.
도 7은 인터럽트 신호 발생시, 도 1a에 도시된 불휘발성 메모리 장치가 패리티 비트들을 생성하는 방법을 나타내는 다른 실시 예이다.
도 8은 도 1a에 도시된 불휘발성 메모리 장치와 커패시터를 포함하는 메모리 시스템의 일 실시 예를 나타낸다.
도 9는 도 1a에 도시된 불휘발성 메모리 장치와 커패시터를 포함하는 메모리 시스템의 다른 실시 예를 나타낸다.
도 10은 도 1a에 도시된 불휘발성 메모리 장치와 커패시터를 포함하는 메모리 시스템의 또 다른 실시 예를 나타낸다.
도 11은 도 1a에 도시된 불휘발성 메모리 장치의 동작을 나타내는 플로우차트이다.
도 12는 도 8 또는 도 10에 도시된 집적 회로 패키지를 포함하는 메모리 모듈을 나타낸다.
도 13은 도 12에 도시된 메모리 모듈을 포함하는 컴퓨터 시스템을 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1a는 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 블록 도를 나타낸다. 도 1a를 참조하면, 불휘발성 메모리 장치(10)는 메모리 셀 어레이(memory cell array; 20)와 액세스 회로(access circuit; 30)를 포함한다.
불휘발성 메모리 장치(10)는 다수의 불휘발성 메모리 셀들을 포함하는 메모리 셀 어레이(20)를 포함한다.
상기 다수의 불휘발성 메모리 셀들 각각은 EEPROM(electrically erasable programmable read-only memory), 플래시(flash) 메모리, MRAM(magnetic random access memory(RAM)), 스핀전달토크 MRAM(spin-transfer torque MRAM), conductive bridging RAM(CBRAM), FeRAM(ferroelectric RAM), PRAM(phase change RAM), NOR 플래시와 호환되는 PRAM(NOR flash-compatible PRAM), 저항 RAM(resistive RAM (RRAM)), 나노튜브 RRAM(Nanotube RRAM), 폴리머 RAM(polymer RAM(PoRAM)), 나노 부유 게이트 메모리(nano floating gate memory(NFGM)), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(molecular electronics memory device), 또는 절연 저항 변화 메모리 (insulator resistance change memory)로 구현될 수 있다. 상기 불휘발성 메모리 셀은 1-비트 또는 그 이상의 비트들을 저장할 수 있다.
메모리 셀 어레이(20)는 코드워드(codeword)와 상기 코드워드에 대한 ECC (error correction code(ECC)) 패리티 비트들(parity bits)을 메모리 영역에 저장할 수 있다.
도 1a에서는 설명의 편의를 위하여 메모리 셀 어레이(20)로서 다수의 PRAM 셀들을 포함하며, 코드워드와 상기 코드워드에 대한 ECC 패리티 비트들을 함께 저장할 수 있는 PRAM 셀 어레이가 도시되어 있다.
상기 코드워드는 다수의 워드들(words)을 포함하며, 상기 다수의 워드들 각각은 다수의 비트들을 포함한다. 예컨대, 하나의 워드 내에 포함된 비트의 수, 즉 워드 크기(word size) 또는 워드 길이(word length)는 실시 예에 따라 16개, 32개, 또는 64개이나, 다른 실시 예에 따라 9개, 12개, 18개, 24개, 36개, 39개, 40개, 48개, 또는 60개로 구현될 수 있다. 따라서, 워드 크기는 설계 사양 또는 실시 예에 따라 다양하게 정의될 수 있다.
액세스 회로(30)는 외부, 예컨대 메모리 컨트롤러로부터 출력된 명령에 따라 메모리 셀 어레이(20)에 대한 액세스 동작, 예컨대 프로그램(program) 동작(또는 라이트(wrtite) 동작) 또는 리드(read) 동작을 수행할 수 있다.
즉, 프로그램 동작 동안, 액세스 회로(30)는 외부로부터 입력된 코드워드를 수신하고, 수신된 코드워드에 대한 패리티 비트들을 생성하고, 상기 코드워드와 상기 패리티 비트들을 각 디코더(36과 38)의 동작에 의하여 지정된 메모리 셀 어레이 (20)의 메모리 영역에 프로그램할 수 있다.
또한, 리드 동작 동안, 액세스 회로(30)는 각 디코더(36과 38)의 동작에 의하여 지정된 메모리 셀 어레이(20)의 메모리 영역으로부터 코드워드와 상기 코드워드에 대한 패리티 비트들을 리드(read)하고, 리드된 패리티 비트들을 이용하여 상기 코드워드에 포함된 적어도 하나의 에러 비트를 검출하고 정정할 수 있다.
프로그램 명령(PGM)에 따라, 액세스 회로(30)는 메모리 셀 어레이(10)의 메모리 영역에 저장된 이전 코드워드(previous codeword)를 현재 코드워드(current codeword)로 업데이트(또는 오버라이트(overwrite))하는 도중에 발생한 인터럽트 신호(PORS)를 검출하고, 검출 결과에 따라 상기 이전 코드워드 중에서 업데이트된 부분(즉, 상기 현재 코드워드 중에서 메모리 셀 어레이(10)의 메모리 영역에 프로그램된 부분 또는 오버라이트(overwrite)된 부분)과 상기 이전 코드워드 중에서 업데이트되지 않은 부분을 이용하여 새로운 패리티 비트들을 생성하고, 상기 이전 코드워드에 대한 패리티 비트들을 상기 새로운 패리티 비트들로 업데이트 또는 오버라이트할 수 있다. 따라서, 불휘발성 메모리 장치(10)는 상기 이전 코드워드의 무결성(integrity)을 보장할 수 있다.
액세스 회로(30)의 어드레스 버퍼(32)는 입력 어드레스들(ADD)을 버퍼링하고, 버퍼된 어드레스들(ADD)을 프리-디코더(34)로 전송하거나 또는 버퍼된 어드레스들(ADD)의 적어도 일부(CADD)를 명령 유닛(40)으로 전송할 수 있다.
프리-디코더(34)는 입력 어드레스들(ADD), 코드워드 어드레스들(WAE), 및 패리티 어드레스 지시 신호(WAEP)를 디코딩하고, 디코딩 결과에 따라 생성된 로우 어드레스들(XADD)과 컬럼 어드레스들(YADD) 각각을 로우 디코더(36)와 컬럼 디코더(38) 각각으로 전송할 수 있다.
이때, 로우 어드레스들(XADD)과 컬럼 어드레스들(YADD)은 현재 코드워드를 메모리 셀 어레이(20)의 메모리 영역에 프로그램하기 위한 어드레스들로서 또는 메모리 셀 어레이(20)에 프로그램된 이전 코드워드와 상기 이전 코드워드에 대한 패리티 비트들을 리드하기 위한 어드레스들로서 사용될 수 있다.
여기서, 코드워드 어드레스들(WAE)은 코드워드에 포함된 다수개의 워드들 각각을 지시하기 위한 어드레스들로서 사용될 수 있다. 예컨대, 코드워드가 16개의 워드들을 포함할 때, 코드워드 어드레스들(WAE)은 4-비트로 구현될 수 있다. 또한, 패리티 어드레스 지시 신호(WAEP)는 입력 어드레스들(ADD)이 패리티 비트들과 관련된 어드레스들인지의 여부를 지시한다.
로우 디코더(36)는 로우 어드레스들(XADD)에 따라 메모리 셀 어레이(20)에 구현된 다수의 워드 라인들(WL0~WLn; n은 자연수) 중에서 적어도 하나를 선택한다.
컬럼 디코더(38)는 컬럼 어드레스들(YADD)에 따라 메모리 셀 어레이(20)에 구현된 다수의 비트 라인들(Y0~Ym; m은 자연수) 중에서 적어도 하나를 선택한다.
명령 유닛(40)은 어드레스 버퍼(32)로부터 출력된 어드레스들(CADD), 입력 수신기(66)로부터 출력된 명령 데이터(CDATA), 및 라이트 인에이블 신호(/WE) 중에서 적어도 하나에 따라 프로그램 명령(PGM)을 생성하고, 생성된 프로그램 명령 (PGM)을 인터럽트 신호 발생기(42)와 라이트 제어 유닛(44)으로 출력할 수 있다.
명령 유닛(40)은 라이트 제어 유닛(44)으로부터 출력된 프로그램 종료 신호 (PGMF)에 응답하여 프로그램 명령(PGM)을 로우 레벨로 비활성화시킬 수 있다.
인터럽트 신호 발생기(42)는 프로그램 명령(PGM), 라이트 비지 신호(WB), 및 동작 제어 신호(/RST 또는 WI)에 응답하여 인터럽트 신호(PORS)를 발생한다.
프로그램 명령(PGM)은 프로그램 동작의 시작과 종료를 지시하는 신호이고, 라이트 비지 신호(WB)는 프로그램 동작에 관련된 적어도 하나의 구성 요소(42, 56, 58, 및 60)의 동작을 제어할 수 있는 신호로서 라이트 펄스(write pulse)라고도 불린다.
동작 제어 신호(/RST 또는 WI)는 도 1b 또는 도 1c에 도시된 바와 같이 리셋 신호(/RST), 파워-다운 신호(PDS), 또는 파워-오프 검출 신호(power-off detection signal; DET)를 포함한다.
파워-다운 신호(PDS)는 불휘발성 메모리 장치(10)가 오랜 시간 동안 액세스 동작, 예컨대 프로그램 동작 또는 리드 동작을 수행하지 않을 때 불휘발성 메모리 장치(10)의 전력 소모를 감소시키기 위해 불휘발성 메모리 장치(10)를 파워-다운 모드(power-down mode)로 진입시키기 위한 모든 종류의 신호를 포함한다. 예컨대, 불휘발성 메모리 장치(10)가 파워-다운 모드 또는 깊은 파워-다운 모드(deep power-down mode)로 진입할 때, 파워-다운 신호(PDS)가 발생할 수 있다.
동작 제어 신호(/RST 또는 WI)를 발생하는 회로(circuit), 로직(logic), 코드(code), 또는 이들의 조합은 불휘발성 메모리 장치(10)의 내부 또는 외부에 구현될 수 있다.
프로그램 동작 동안, 라이트 제어 유닛(44)은 프리-디코더(34), 검증-읽기 (verify-read) 감지 증폭기(52), 선택기(54), ECC 인코더(56), 코드워드 라이트 드라이버(58), 및 패리티 비트 라이트 드라이버(60) 중에서 적어도 하나의 동작을 제어할 수 있다.
프로그램 명령(PGM)에 따라 라이트 제어 유닛(44)은 검증-읽기 제어 신호 (VRM)를 검증-읽기 감지 증폭기(52)로 출력한다. 검증-읽기 제어 신호(VRM)에 따라 검증-읽기 감지 증폭기(52)는 메모리 셀 어레이(20)의 메모리 영역으로부터 리드된 이전 코드워드 및/또는 상기 이전 코드워드에 대한 패리티 비트들을 감지 증폭한다.
라이트 비지 신호(WB)에 따라 코드워드 라이트 드라이버(58)는 입력 버퍼 (64)로부터 출력된 현재 코드워드(CDN)를 메모리 셀 어레이(20)의 메모리 영역에 프로그램할 수 있다. 예컨대, 코드워드 라이트 드라이버(58)는 현재 코드워드(CDN)에 포함된 다수개의 워드들 각각을 워드 단위로 메모리 셀 어레이(20)에 프로그램할 수 있다.
실시 예에 따라, 프로그램 동작 동안 액세스 회로(30)는 검증-읽기 감지 증폭기(52)에 의하여 감지 증폭된 이전 코드워드(CDO)와 입력 버퍼(64)를 통하여 입력된 현재 코드워드(CDN)를 워드 단위 또는 비트 단위로 서로 비교하고, 비교 결과에 따라 서로 다른 비트들을 프로그램하는 부분-프로그램(partial-program) 동작을 수행할 수 동작 블록(미도시)을 더 포함할 수 있다.
다른 실시 예에 따라, 프로그램 동작 동안 액세스 회로(30)는 입력 버퍼(64)를 통하여 입력된 현재 코드워드(CDN)를 비트 단위로 반전시켜 생성된 코드워드와 검증-읽기 감지 증폭기(52)에 의하여 감지 증폭된 이전 코드워드(CDO)를 워드 단위 또는 비트 단위로 서로 비교하고, 비교 결과에 따라 서로 다른 비트들을 프로그램하는 부분-프로그램 동작을 수행할 수 동작 블록(미도시)을 더 포함할 수 있다.
라이트 비지 신호(WB)에 따라 패리티 비트 라이트 드라이버(60)는 ECC 인코더(56)에 의하여 생성된 패리티 비트들을 메모리 셀 어레이(20)에 프로그램할 수 있다.
라이트 제어 유닛(44)으로부터 출력된 선택 신호(SEL)에 따라 선택기(54)는 입력 버퍼(64)로부터 출력된 현재 코드워드(CDN)와 검증-읽기 감지 증폭기(52)에 의하여 감지 증폭된 이전 코드워드(CDO) 중에서 어느 하나를 선택적으로 ECC 인코더(56)로 출력할 수 있다. 예컨대, 선택기(54)는 선택 신호(SEL)에 따라 워드 단위로 데이터를 ECC 인코더(56)로 출력할 수 있다.
정상 프로그램 동작 동안, 코드워드 단위로 패리티 비트들을 생성할 수 있는 ECC 인코더(56)는 선택기(54)로부터 출력된 현재 코드워드(CDN)를 수신하고, 수신된 현재 코드워드(CDN)에 대한 패리티 비트들을 생성하고, 생성된 패리티 비트들을 패리티 비트 라이트 드라이버(60)로 출력한다.
이때 라이트 비지 신호(WB)에 따라 패리티 비트 라이트 드라이버(60)는 ECC 인코더(56)로부터 출력된 상기 패리티 비트들을 메모리 셀 어레이(20)의 메모리 영역에 프로그램할 수 있다. 즉, 이전 코드워드의 패리티 비트들은 현재 코드워드의 패리티 비트들로 업데이트(update) 또는 오버라이트(overwrite)될 수 있다.
프로그램 동작 동안, 코드워드 라이트 드라이버(58)를 이용하여 메모리 셀 어레이(20)의 메모리 영역에 저장된 이전 코드워드를 현재 코드워드로 워드 단위로 업데이트하는 도중에, 인터럽트 신호(PORS)가 발생하면, ECC 인코더(56)는 상기 이전 코드워드 중에서 업데이트된 부분(예컨대, 상기 현재 코드워드 중에서 상기 메모리 영역에 프로그램된 부분 또는 상기 메모리 영역에 오버라이트된 부분)과 상기 이전 코드워드 중에서 업데이트되지 않은 부분을 이용하여 새로운 패리티 비트들을 생성한다.
예컨대, 인터럽트 신호(PORS)가 발생하기 전에는, 라이트 제어 유닛(44)으로 출력된 제1코드를 갖는 선택 신호(SEL)에 따라 선택기(54)는 입력 버퍼(64)로부터 출력되고 상기 업데이트된 부분에 상응하는 적어도 하나의 현재 워드를 ECC 인코더 (56)로 출력한다.
그러나 인터럽트 신호(PORS)가 발생한 후에는, 라이트 제어 유닛(44)으로부터 출력된 제2코드를 갖는 선택 신호(SEL)에 따라 선택기(54)는 검증-읽기 감지 증폭기(52)로부터 출력되고 상기 업데이트되지 않은 부분에 상응하는 적어도 하나의 이전 워드를 ECC 인코더(56)로 출력한다. 상기 제1코드와 상기 제2코드 각각은 1-비트 또는 그 이상의 비트들을 포함할 수 있다.
코드워드 단위로 패리티 비트들을 생성할 수 있는 ECC 인코더(56)는 선택기(54)로부터 출력된 상기 적어도 하나의 현재 워드와 선택기(54)로부터 출력된 상기 적어도 하나의 이전 워드를 포함하는 코드워드를 이용하여 새로운 패리티 비트들을 생성한다.
패리티 비트 라이트 드라이버(60)는 상기 이전 코드워드에 대한 패리티 비트들을 ECC 인코더(56)에 의하여 새롭게 생성된 패리티 비트들로 업데이트할 수 있다.
리드 동작 동안, 정상 감지 증폭기(46)는 로우 어드레스들(XADD)과 컬럼 어드레스들(YADD)에 의하여 선택된 메모리 셀 어레이(10)의 메모리 영역에 저장된 이전 코드워드와 상기 이전 코드워드에 대한 패리티 비트들을 감지하고 증폭한다.
ECC 디코더(48)는 정상 감지 증폭기(46)에 의하여 증폭된 패리티 비트들을 이용하여 정상 감지 증폭기(46)에 의하여 증폭된 이전 코드워드에 대한 에러 검출과 에러 정정을 수행한다.
데이터 선택기(50)는 ECC 디코더(48)에 의하여 디코딩된 데이터, 즉 에러 정정된 데이터를 선택적으로 출력 드라이버(62)로 전송한다. 출력 드라이버(62)로부터 출력된 데이터는 다수의 데이터 핀들(DQ)을 통하여 불휘발성 메모리 장치(10)의 외부로 전송된다.
다수의 데이터 핀들(DQ)을 통하여 외부로부터 입력된 데이터, 즉 현재 코드워드는 입력 수신기(66)를 통하여 입력 버퍼(64)로 전송된다. 입력 버퍼(64)로부터 출력된 현재 코드워드(CDN)는 코드워드 라이트 드라이버(58)로 전송됨과 동시에 선택기(54)를 통하여 ECC 인코더(56)로 전송될 수 있다. 따라서 정상 프로그램 동작 동안, ECC 인코더(56)는 현재 코드워드(CDN)에 대한 패리티 비트들을 생성할 수 있다.
예컨대, 현재 코드워드(CDN)의 비트 수가 X(X는 자연수)개일 때, ECC 인코더 (56)에 의하여 생성된 패리티 비트의 수는 log2X+1이다. 즉, 현재 코드워드(CDN)가 16개의 워드들을 포함하고 하나의 워드가 16비트일 때, 패리티 비트들은 9비트들이다.
도 1b는 도 1a에 도시된 불휘발성 메모리 장치의 동작 제어 신호 발생 회로의 일 실시 예를 나타낸다.
도 1a와 도 1b를 참조하면, 액세스 회로(30)의 일부로서 선택적으로 구현될 수 있는 동작 제어 신호 발생 회로(42-1)는 전압 검출기(42-11)와 선택기(42-12)를 포함한다.
프로그램 동작 동안, 전압 검출기(42-11)는 불휘발성 메모리 장치(10) 또는 액세스 회로(30)로 공급되는 동작 전압(Vcc)을 검출하고, 검출된 동작 전압(Vcc)이 기준 전압보다 낮을 때 파워-오프 검출 신호(DET)를 발생한다. 예컨대, 전압 검출기(42-11)는 동작 전압(Vcc)의 갑작스런 파워-오프를 검출하여 파워-오프 검출 신호(DET)를 발생할 수 있다.
여기서 동작 전압(Vcc)은 전원(power supply)의 전압(Vcc)을 의미할 수도 있고, 상기 전원의 전압(Vcc)을 이용하여 생성된 내부 전압을 의미할 수 있다.
멀티플렉서(multiplexer)로 구현될 수 있는 선택기(42-12)는 선택 신호 (RSEL)에 따라 리셋 신호(/RST)와 파워-다운 신호(PDS) 중에서 어느 하나, 또는 파워-오프 검출 신호(DET)를 동작 제어 신호(WI)로서 인터럽트 신호 발생기(42)로 출력할 수 있다.
예컨대, 선택 신호(RSEL)는 MRS(mode register set), 프로그램 메모리, 또는 퓨징(fusing) 회로를 이용하여 생성될 수 있다. 상기 퓨징 회로는 동적으로 실시간으로 재프로그래밍(dynamic real-time reprogramming)할 수 있는 적어도 하나의 퓨즈를 포함한다.
도 1c는 도 1a에 도시된 불휘발성 메모리 장치의 동작 제어 신호 발생 회로의 다른 실시 예를 나타낸다. 도 1a와 도 1c를 참조하면, 액세스 회로(30)의 일부로서 선택적으로 구현될 수 있는 동작 제어 신호 발생 회로(42-2)는 전압 검출기 (42-11)와 OR게이트(42-13)를 포함한다.
OR 게이트(42-13)는 리셋 신호(/RST)와 파워-다운 신호(PDS) 중에서 어느 하나와, 파워-오프 검출 신호(DET)를 논리합하고 논리합 결과를 동작 제어 신호(WI)로서 인터럽트 신호 발생기(42)로 출력할 수 있다.
리셋 신호(/RST)와 파워-다운 신호(PDS) 중에서 어느 하나는 불휘발성 메모리 장치(10)의 동작을 제어할 수 있는 장치 또는 불휘발성 메모리 장치(10)로 동작 전압(Vcc)를 공급하는 장치로부터 출력될 수 있다.
도 2는 도 1a에 도시된 인터럽트 신호 발생기의 블록도를 나타낸다.
도 2를 참조하면, 인터럽트 신호 발생기(42)의 제1인버터(101)는 동작 제어 신호(/RST 또는 WI)를 반전시킨다.
동기 회로(synchronizarion circuit)의 일 예인 D-플립-플롭(103)은 제1인버터(101)의 출력 신호(RST)의 상승 에지(rising edge)에 응답하여 동작 전압(Vcc)을 래치하고 래치된 신호(RST1)를 출력한다. 예컨대, 동작 전압(Vcc)이 로직 하이 (logic high), 즉 하이 레벨일 때, D-플립-플롭(103)은 제1인버터(101)의 출력 신호(RST)에 응답하여 하이 레벨을 갖는 신호(RST1)를 래치한다.
NAND 게이트(105)는 동기 회로(103)의 출력 신호(RST1)와 라이트 완료 신호 (PWD)를 NAND 연산하고, 제2인버터(107)는 NAND 게이트(105)의 출력 신호를 반전시킨다. 지연 회로(109)는 제2인버터(107)의 출력 신호를 일정 시간 지연시킨 후, 일정한 펄스 폭을 갖는 펄스 형태의 초기화 신호(INI)를 발생한다. 이때, 지연 회로 (109)는 펄스 발생기(113)와 동일하게 동작하는 펄스 발생기(미도시)를 포함할 수 있다. 불휘발성 메모리 장치(10)는 초기화 신호(INI)에 응답하여 내부 리셋 동작 (internal reset operation)을 수행할 수 있다.
제3인버터(111)는 초기화 신호(INI)를 반전시킨다. 펄스 발생기(113)는 제3인버터(111)로부터 출력된 신호의 상승 에지에 응답하여 동기 회로(103)를 로우 레벨로 리셋시킬 수 있다.
인터럽트 신호 제어 유닛(120)은 프로그램 명령(PGM), 라이트 비지 신호 (WB), 및 동기 회로(103)의 출력 신호(RST1)의 조합에 따라 인터럽트 신호(PORS)와 라이트 완료 신호(PWD)를 생성한다.
도 3은 도 2에 도시된 인터럽트 신호 제어 유닛의 블록도를 나타낸다.
도 2와 도 3을 참조하면, NAND 게이트(121)는 프로그램 명령(PGM), 라이트 비지 신호(WB), 및 D-플립-플롭(103)의 출력 신호(RST1)를 NAND 연산하고, 제1인버터(123)는 NAND 게이트(121)의 출력 신호를 반전시킨다. 제1펄스 발생기(125)는 제1인버터(123)의 출력 신호, 예컨대 로우 레벨로부터 하이 레벨로 천이하는 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
제1동기 회로, 예컨대 D-플립-플롭(127)은 제1펄스 발생기(125)로부터 생성된 펄스 신호의 상승 에지에 응답하여 동작 전압(Vcc), 예컨대 하이 레벨에 상응하는 데이터 1을 래치하고 하이 레벨을 갖는 인터럽트 신호(PORS)를 출력한다.
제2인버터(129)는 프로그램 명령(PGM)을 반전시킨다. D-플립-플롭(127)의 출력 신호는 제2인버터(129)의 출력 신호, 예컨대 로우 레벨로부터 하이 레벨로 천이하는 신호에 응답하여 로우 레벨로 리셋된다. 즉, 프로그램 명령(PGM)이 하이 레벨로부터 로우 레벨로 천이하면, D-플립-플롭(127)은 로우 레벨로 리셋된다.
제3인버터(131)는 인터럽트 신호(PORS)를 반전시킨다. 제2펄스 발생기(133)는 제3인버터(131)의 출력 신호, 예컨대 로우 레벨로부터 하이 레벨로 천이하는 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
제2동기 회로, 예컨대 D-플립-플롭(135)은 제2펄스 발생기(133)로부터 생성된 펄스 신호의 상승 에지에 응답하여 동작 전압(Vcc), 예컨대 하이 레벨에 상응하는 데이터 1을 래치하고 하이 레벨을 갖는 라이트 완료 신호(PWD)를 출력한다.
제4인버터(137)는 초기화 신호(INI)를 반전시킨다. 제3펄스 발생기(139)는 제4인버터(137)의 출력 신호, 예컨대 로우 레벨로부터 하이 레벨로 천이하는 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
D-플립-플롭(135)의 출력 신호는 상기 펄스 신호의 상승 에지에 응답하여 로우 레벨로 리셋된다. 즉, 초기화 신호(INI)가 하이 레벨로부터 로우 레벨로 천이할 때, D-플립-플롭(135)은 로우 레벨로 리셋된다.
도 4는 도 1a에 도시된 라이트 제어 유닛의 블록도를 나타낸다.
도 1과 도 4를 참조하면, 검증-읽기 제어 유닛(201)은 프로그램 명령(PGM)에 응답하여 일정한 펄스 폭을 갖는 검증-읽기 제어 신호(VRM)를 생성한다. 제1인버터 (203)는 검증-읽기 제어 신호(VRM)를 반전시킨다. 제1펄스 발생기(205)는 제1인버터(203)의 출력 신호의 상승 에지에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
제1NOR 게이트(207)는 제1펄스 발생기(205)의 출력 신호와 제10인버터(249)의 출력 신호를 NOR 연산하고, 제2인버터(209)는 제1NOR 게이트(207)의 출력 신호를 반전시켜 라이트 펄스 시작 신호(WPS)를 발생한다.
라이트 펄스 발생기(211)는 제2인버터(209)의 출력 신호(WPS)의 상승 에지에 응답하여 일정한 펄스 폭을 갖는 라이트 비지 신호(WB)를 발생한다. 이때 각 라이트 드라이버(58과 60)의 동작을 제어할 수 있는 라이트 비지 신호(WB)는 라이트 펄스라고도 불린다.
지연 회로(213)는 라이트 비지 신호(WB)를 일정 시간 지연시키고, 제3인버터 (215)는 라이트 비지 신호(WB)를 반전시킨다.
제2NOR 게이트(217)는 지연 회로(213)의 출력 신호와 라이트 비지 신호(WB)를 NOR 연산하고, 제4인버터(219)는 제2NOR 게이트(217)의 출력 신호를 반전시키고, 제5인버터(237)는 제4인버터(219)의 출력 신호(WBD)를 반전시킨다.
어드레스 카운터(221)는 제3인버터(215)의 출력 신호(WBB)의 천이를 카운트하고 카운트 값들(WAE)을 출력한다. 예컨대, 카운트 값들(WAE)은 최대값이 된 후 제3인버터(215)의 출력 신호(WBB)의 천이에 응답하여 최소값으로 리셋될 수 있다.
예컨대, 어드레스 카운터(221)는 제3인버터 (215)의 출력 신호(WBB)가 하이 레벨로부터 로우 레벨로 천이할 때마다 이를 카운트하고 최소값부터 +1씩 증가하는(또는 최대값부터 -1씩 감소하는) 카운트 값들, 즉 코드워드 어드레스들(WAE)을 발생한다. 코드워드 어드레스들(WAE)은 다수의 비트들을 포함할 수 있다.
실시 예에 따라, 제1펄스 발생기(205)에 의하여 발생한 펄스 신호에 응답하여 인에이블된 어드레스 카운터(221)는 제3인버터(215)의 출력 신호(WBB)가 하이 레벨로부터 로우 레벨로 천이할 때마다 최소값부터 +1씩 증가하는(또는 최대값부터 -1씩 감소하는) 코드워드 어드레스들(WAE)을 발생할 수 있다.
다른 실시 예에 따라, 어드레스 카운터(221)는 도 1의 어드레스 버퍼(32)로부터 출력된 버퍼된 어드레스들(ADD)의 적어도 일부(ADD_P)를 이용하여 생성된 특정한 어드레스들부터 제3인버터(215)의 출력 신호(WBB)가 하이 레벨로부터 로우 레벨로 천이할 때마다 상기 특정 어드레스들부터 +1씩 증가하는 코드워드 어드레스들(WAE)을 발생할 수 있다.
인터럽트 신호(PORS)가 발생하지 않았을 때, 선택 신호 발생기(223)는 코드워드 어드레스(WAE)에 응답하여 제1코드를 갖는 선택 신호(SEL)를 발생한다. 따라서, 제1코드를 갖는 선택 신호(SEL)에 따라 선택기(54)는 입력 버퍼(64)로부터 출력된 현재 코드워드(CDN)를 워드 단위로 ECC 인코더(56)로 출력할 수 있다.
그러나, 인터럽트 신호(PORS)가 발생하면, 선택 신호 발생기(223)는 인터럽트 신호(PORS)에 따라 제2코드를 갖는 선택 신호(SEL)를 발생한다.
예컨대, 현재 코드워드(CDN)에 포함된 다수의 워드들 중에서 특정 워드를 지시하는 코드워드 어드레스들(WAE)이 발생한 후 인터럽트 신호(PORS)가 발생하면, 코드워드 어드레스들(WAE)과 인터럽트 신호(PORS)에 응답하여 선택 신호 발생기 (223)는 상기 특정 워드가 선택기(54)에 의하여 ECC 인코더(56)로 완전히 전송된 후 제2코드를 갖는 선택 신호(SEL)를 발생할 수 있다.
따라서, 제2코드를 갖는 선택 신호(SEL)에 따라 선택기(54)는 검증-읽기 감지 증폭기(52)로부터 출력된 이전 코드워드(CDO)에 포함된 다수의 워드들 중에서 대응되는 적어도 하나의 워드를 워드 단위로 ECC 인코더(56)로 출력할 수 있다.
라이트 펄스 인에이블 로직(225)은 코드워드 어드레스들(WAE)과 제7인버터 (226)의 출력 신호에 응답하여 정상 라이트 인에이블 신호(WNE)를 발생한다.
예컨대, 정상 프로그램 동작 동안 패리티 어드레스 지시 신호(WAEP)는 로우 레벨이므로, 라이트 펄스 인에이블 로직(225)은 현재 코드워드(CDN)에 포함된 다수의 워드들 모두에 대한 코드워드 어드레스들(WAE)이 발생할 때까지 하이 레벨을 갖는 정상 라이트 인에이블 신호(WNE)를 발생할 수 있다.
예컨대, 현재 코드워드(CDN)에 16개의 워드들이 포함되어 있을 때, 코드워드 어드레스들(WAE)은 최소값, 즉 0000으로부터 최대값, 즉 1111까지 +1씩 순차적으로 증가하므로, 정상 라이트 인에이블 신호(WNE)는 코드워드 어드레스들(WAE)이 1111이 될 때까지 하이 레벨을 유지할 수 있다.
제8인버터(227)는 제4인버터(219)의 출력 신호(WBD)를 반전시키고, 제2NAND 게이트(229)는 제8인버터(227)의 출력 신호와 정상 라이트 인에이블 신호(WNE)를 NAND 연산하고, 제9인버터(231)는 제2NAND 게이트(229)의 출력 신호를 반전시킨다.
제2펄스 발생기(233)는 제9인버터(231)의 출력 신호가 로우 레벨로부터 하이 레벨로 천이할 때마다 일정한 펄스 폭을 갖는 펄스 신호를 발생하고, 제3NOR 게이트(247)는 제2펄스 발생기(233)의 출력 신호와 제3펄스 발생기(245)의 출력 신호를 NOR 연산하고, 제10인버터(249)는 제3NOR 게이트(247)의 출력 신호를 반전시킨다.
제3펄스 발생기(245)는 로우 레벨로부터 하이 레벨로 천이하는 패리티 어드레스 지시 신호(WAEP)에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 생성한다.
정상 프로그램 동작 동안, 제4인버터(219)의 출력 신호(WBD)가 하이 레벨로부터 로우 레벨로 천이할 때마다, 각 구성 요소(227, 229, 및 231)의 동작에 따라 제2펄스 발생기(233)는 일정한 펄스 폭을 갖는 펄스 신호를 발생한다. 따라서, 제4인버터(219)의 출력 신호(WBD)가 하이 레벨로부터 로우 레벨로 천이할 때마다, 각 구성 요소(227, 249, 및 207)의 동작에 따라 제2인버터(209)에 의하여 라이트 펄스 시작 신호(WPS)가 발생한다.
제1NAND 게이트(239)는 인터럽트 신호(PORS)와 제5인버터(237)의 출력 신호를 NAND 연산하고, 제6인버터(241)는 제1NAND 게이트(239)의 출력 신호를 반전시킨다.
ECC 패리티 제어 유닛(235)은 코드워드 어드레스들(WAE), 라이트 어드레스 선택 신호(WAS), 또는 제6인버터(241)의 출력 신호들 중에서 적어도 하나에 응답하여 패리티 어드레스 지시 신호(WAEP)를 발생한다.
실시 예에 따라, 정상 프로그램 동작 동안, ECC 패리티 제어 유닛(235)은 현재 코드워드(CDN)에 포함된 다수의 워드들 중에서 마지막 워드를 지시하는 코드워드 어드레스들(WAE)이 발생한 후에 하이 레벨을 갖는 패리티 어드레스 지시 신호 (WAEP)를 발생할 수 있다.
다른 실시 예에 따라, 정상 프로그램 동작 동안, ECC 패리티 제어 유닛(235)은 하이 레벨을 갖는 라이트 어드레스 선택 신호(WAS)에 따라 하이 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)를 발생할 수 있다.
또 다른 실시 예에 따라, 라이트 비지 신호(WB)가 로우 레벨일 때 인터럽트 신호(PORS)가 발생하면, ECC 패리티 제어 유닛(235)은 하이 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)를 발생할 수 있다. 예컨대, 라이트-유보 동작 동안, 라이트 비지 신호(WB)는 로우 레벨일 수 있다.
라이트 비지 카운터(251)는 제3인버터(215)의 출력 신호(WBB)에 응답하여, 예컨대, 제3인버터(215)의 출력 신호(WBB)가 하이 레벨로부터 로우 레벨로 천이할 때마다 이를 카운트하여 카운트 값을 출력할 수 있다.
비교기(253)는 프로그램 데이터, 예컨대 현재 코드워드(CDN)의 크기를 나타내는 크기 값(DSI)과 상기 카운트 값을 비교하고 비교 신호를 출력한다. 예컨대, 상기 크기 값(DSI)과 상기 카운트 값이 서로 일치할 때, 비교기(253)는 하이 레벨을 갖는 비교 신호를 출력하고 그 이외의 경우에는 로우 레벨을 갖는 비교 신호를 출력한다.
상기 크기 값(DSI)은 명령 유닛(40)으로부터 제공될 수 있으며, 상기 크기 값(DSI)에 대한 정보는 명령 데이터(CDATA)에 포함될 수 있다.
정상 프로그램 동작 동안, 제4펄스 발생기(255)는 하이 레벨을 갖는 비교 신호에 따라 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
인터럽트 신호(PORS)가 발생하면, 제5펄스 발생기(257)는 하이 레벨을 갖는 인터럽트 신호(PORS)에 따라 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
제4NOR 게이트(259)는 제4펄스 발생기(255)의 출력 신호와 제5펄스 발생기 (257)의 출력 신호를 NOR 연산하고, 제11인버터(261)는 제4NOR 게이트(259)의 출력 신호를 반전시킨다.
동기 회로, 예컨대 D-플립-플롭(263)은 제11인버터(261)의 출력 신호, 예컨대 로우 레벨로부터 하이 레벨로 천이하는 출력 신호에 응답하여 동작 전압(Vcc), 예컨대 하이 레벨에 상응하는 데이터 1을 래치하고 하이 레벨을 갖는 라이트 어드레스 선택 신호(WAS)를 출력한다.
프로그램 명령(PGM)이 하이 레벨로부터 로우 레벨로 천이할 때, D-플립-플롭 (263)의 출력 신호는 제12인버터(265)의 출력 신호에 응답하여 로우 레벨로 리셋된다.
제13인버터(267)는 패리티 어드레스 지시 신호(WAEP)를 반전시키고, 제6펄스 발생기(269)는 제13인버터(267)의 출력 신호, 예컨대 로우 레벨로부터 하이 레벨로 천이하는 출력 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
제3NAND 게이트(271)는 라이트 어드레스 선택 신호(WAS)와 제6펄스 발생기 (269)의 출력 신호를 NAND 연산하고, 제14인버터(273)는 프로그램 종료 신호(PGMF)를 발생한다.
설명의 편의를 위하여, 도 2부터 도 4까지에서는 로우 레벨로부터 하이 레벨로 천이하는 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 발생기들이 도시되어 있으나, 실시 예에 따라 상기 펄스 발생기들은 하이 레벨로부터 로우 레벨로 천이하는 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 발생기들로 대체될 수 있다.
도 5a는 정상 프로그램 동작시, 도 1a에 도시된 불휘발성 메모리 장치의 동작을 설명하기 위한 제어 신호들의 타이밍 도이다.
이전 코드워드와 현재 코드워드 각각은 16개의 워드들을 포함하고, 크기 값 (DSI)은 16이고, 상기 이전 코드워드 모두가 워드 단위로 상기 현재 코드워드로 모두를 업데이트되는 동안, 인터럽트 신호(PORS)는 발생하지 않는다고 가정하고, 도 1a, 도 4, 및 도 5a를 참조하여 정상 프로그램 동작 동안 불휘발성 메모리 장치 (10)의 동작을 설명하면 다음과 같다.
프로그램 명령(PGM)이 발생하면, 검증-읽기 제어 유닛(201)은 일정한 펄스 폭을 갖는 펄스 형태의 검증-읽기 제어 신호(VRM)를 발생한다.
검증-읽기 제어 신호(VRM)가 하이 레벨로부터 로우 레벨로 천이하면, 펄스 발생기(205)는 제1인버터(203)의 출력 신호의 상승 에지에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
각 구성 요소(207과 209)의 동작에 따라 첫 번째 라이트 펄스 시작 신호 (WPS=1)가 발생하고, 라이트 펄스 발생기(211)는 첫 번째 라이트 펄스 시작 신호 (WPS=1)의 상승 에지에 응답하여 첫 번째 라이트 비지 신호(WB)를 발생한다.
제1펄스 발생기(205)로부터 발생한 펄스 신호에 따라 인에이블된 어드레스 카운터(221)는 제3인버터(215)의 출력 신호(WBB), 즉 하이 레벨로부터 로우 레벨로 천이하는 출력 신호(WBB)에 응답하여 현재 코드워드의 첫 번째 워드를 지시하는 코드워드 어드레스들(WAE=A0)을 발생한다.
라이트 펄스 인에이블 로직(225)은 하이 레벨을 갖는 제7인버터(226)의 출력 신호와 상기 첫 번째 워드를 지시하는 코드워드 어드레스들(WAE=A0)에 응답하여 하이 레벨을 갖는 정상 라이트 인에이블 신호(WNE)를 발생한다.
코드워드 어드레스들(WAE=A0)과 로우 레벨을 갖는 인터럽트 신호(PORS)에 응답하여 선택 신호 발생기(223)는 제1코드를 갖는 선택 신호(SEL)를 발생한다.
선택기(54)는 제1코드를 갖는 선택 신호(SEL)에 따라 현재 코드워드(CDN)의 첫 번째 워드를 ECC 인코더(56)로 전송하고, 하이 레벨을 갖는 라이트 비지 신호 (WB)에 따라 코드워드 라이트 드라이버(58)는 상기 첫 번째 워드를 메모리 셀 어레이(20)의 메모리 영역에 프로그램한다. 즉, 이전 코드워드의 첫 번째 워드는 현재 코드워드의 첫 번째 워드로 업데이트 또는 오버라이트된다.
프리-디코더(34)는 입력 어드레스들(ADD), 코드워드 어드레스들(WAE=A0), 및 로우 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)를 디코딩하고 어드레스들(XADD와 YADD)를 발생한다. 따라서 상기 메모리 영역은 어드레스들(XADD와 YADD)에 따라 디코더들(36과 38)에 의하여 지정된다.
제4인버터(219)의 출력 신호(WBD)가 하이 레벨로부터 로우 레벨로 천이하고, 구성 요소(227, 229, 231, 233, 247, 249, 207, 및 209)의 동작에 의하여 두 번째 라이트 펄스 시작 신호(WPS=2)가 발생한다. 라이트 펄스 발생기(211)는 두 번째 라이트 펄스 시작 신호(WPS=2)의 상승 에지에 따라 두 번째 라이트 비지 지시(WB)를 발생한다.
어드레스 카운터(221)는 제3인버터(215)의 출력 신호(WBB), 즉 하이 레벨로부터 로우 레벨로 천이하는 출력 신호(WBB)에 응답하여 현재 코드워드(CDN)의 두 번째 워드를 지시하는 코드워드 어드레스들(WAE=A1)을 발생한다.
라이트 펄스 인에이블 로직(225)은 하이 레벨을 갖는 제7인버터(226)의 출력 신호와 현재 코드워드(CDN)의 두 번째 워드를 지시하는 코드워드 어드레스들 (WAE=A1)에 응답하여 하이 레벨을 갖는 정상 라이트 인에이블 신호(WNE)를 발생한다.
코드워드 어드레스들(WAE=A0)과 로우 레벨을 갖는 인터럽트 신호(PORS)에 응답하여 선택 신호 발생기(223)는 제1코드를 갖는 선택 신호(SEL)를 발생하고, 선택기(54)는 현재 코드워드(CDN)의 두 번째 워드를 ECC 인코더(56)로 전송하고, 코드워드 라이트 드라이버(58)는 상기 두 번째 워드를 메모리 셀 어레이(20)의 상기 메모리 영역에 프로그램한다. 즉, 이전 코드워드의 두 번째 워드는 현재 코드워드의 두 번째 워드로 업데이트 또는 오버라이트된다.
현재 코드워드(CDN)의 두 번째 워드가 프로그램될 메모리 영역은 입력 어드레스들(ADD), 코드워드 어드레스들(WAE=A1), 및 로우 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)에 따라 디코더들(36과 38)에 의하여 지정된다.
현재 코드워드(CDN)의 첫 번째 워드와 두 번째 워드를 상기 메모리 영역에 프로그램하는 방법과 유사하게, 현재 코드워드(CDN)의 3번째 워드부터 16번째 워드는 상기 메모리 영역에 워드 단위로 순차적으로 프로그램된다. 즉, 이전 코드워드의 3번째 워드부터 16번째 워드는 현재 코드워드의 세번째 워드부터 16번째 워드로 워드 단위로 업데이트 또는 오버라이트된다.
현재 코드워드의 16번째 워드를 지시하는 코드워드 어드레스들(WAE=A15)이 발생한 후, 라이트 펄스 인에이블 로직(225)은 로우 레벨을 갖는 정상 라이트 인에이블 신호(WNE)를 발생한다.
라이트 비지 카운터(251)는 라이트 비지 신호(WB)의 하강 에지를 16번 카운트하고, 카운트 값으로서 16을 출력한다. 비교기(253)는 16을 나타내는 크기 값 (DSI)과 16일 나타내는 카운트 값을 서로 비교하고, 하이 레벨을 갖는 비교 신호를 출력한다.
각 구성 요소(255, 259, 261, 및 263)의 동작에 따라, 하이 레벨을 갖는 라이트 어드레스 선택 신호(WAS)가 발생하면, ECC 패리티 제어 유닛(235)은 하이 레벨을 갖는 라이트 어드레스 선택 신호(WAS)에 응답하여 하이 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)를 발생한다.
각 구성 요소(245, 247, 249, 207, 및 209)의 동작에 따라, 17번째 라이트 펄스 시작 신호(WPS=P)가 발생한다. 라이트 펄스 발생기(211)는 17번째 라이트 펄스 시작 신호(WPS=P)의 상승 에지에 응답하여 17번째 라이지 비지 신호(WB)를 발생한다.
ECC 인코더(56)는 16개의 워드들을 포함하는 현재 코드워드(CDN)에 대한 패리티 비트들을 생성하고, 생성된 패리티 비트들을 패리티 비트 라이트 드라이버(60)로 전송한다.
입력 어드레스들(ADD)과 하이 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)에 따라 프리-디코더(34)는 ECC 인코더(56)에 의하여 생성된 패리티 비트들이 저장될 메모리 영역을 지정하는 어드레스들(XADD와 YADD)을 발생한다.
라이지 비지 신호(WB)에 따라 패리티 비트 라이트 드라이버(60)는 ECC 인코더(56)에 의하여 생성된 패리티 비트들을 어드레스들(XADD와 YADD)에 의하여 지정된 상기 메모리 영역에 프로그램한다. 따라서, 이전 코드워드의 패리티 비트들은 현재 코드워드의 패리티 비트들로 업데이트 또는 오버라이트된다.
라이트 어드레스 선택 신호(WAS)가 하이 레벨을 유지하고 있는 동안, 패리티 어드레스 지시 신호(WAEP)가 하이 레벨로부터 로우 레벨로 천이하면, 각 구성 요소 (267, 269, 271, 및 273)의 동작에 따라 프로그램 종료 신호(PGMF)가 발생한다.
명령 유닛(40)은 프로그램 종료 신호(PGMF)의 상승 에지에 응답하여 프로그램 명령(PGM)을 하이 레벨로부터 로우 레벨로 천이시킨다. 각 구성 요소(265 및 263)의 동작에 따라 라이트 어드레스 선택 신호(WAS)는 로우 레벨로 천이하고, 각 구성 요소(271과 273)에 따라 프로그램 종료 신호(PGMF)는 하이 레벨로부터 로우 레벨로 천이한다.
상술한 과정을 통하여 16개의 워드들을 포함하는 현재 코드워드(CDN)와 현재 코드워드(CDN)의 패리티 비트들이 메모리 영역에 프로그램된다.
도 5b는 인터럽트 신호가 발생했을 때, 도 1a에 도시된 불휘발성 메모리 장치의 동작을 설명하기 위한 제어 신호들의 타이밍 도이고, 도 6은 인터럽트 신호 발생시, 도 1a에 도시된 불휘발성 메모리 장치가 패리티 비트들을 생성하는 방법을 나타내는 일 실시 예이다.
이전 코드워드(CDO)와 현재 코드워드(CDN) 각각은 16개의 워드들을 포함하고, 이전 코드워드(CDO)에 포함된 각 워드는 현재 코드워드(CDN)의 각 워드로 업데이트되고, 크기 값(DSI)은 16이고, 현재 코드워드(CDN)의 두 번째 워드를 프로그램하는 도중에 인터럽트 신호(PORS)가 발생한다고 가정하고, 도 1a, 도 2, 도 3, 도 4, 도 5a, 및 도 6을 참조하여 불휘발성 메모리 장치(10)의 동작을 설명하면 다음과 같다.
여기서, OLD는 이전 코드워드(CDO)에 관련된 데이터를 의미하고, NEW는 현재 코드워드(CDN)에 관련된 데이터를 의미한다.
프로그램 명령(PGM)이 발생하면, 검증-읽기 제어 유닛(201)은 프로그램 명령 (PGM)에 응답하여 일정한 펄스 폭을 갖는 펄스 형태의 검증-읽기 제어 신호(VRM)를 발생한다.
검증-읽기 제어 신호(VRM)가 하이 레벨로부터 로우 레벨로 천이하면, 펄스 발생기(205)는 하이 레벨을 갖는 제1인버터(203)의 출력 신호에 응답하여 일정한 펄스 폭을 갖는 펄스 신호를 발생한다.
각 구성 요소(207과 209)의 동작에 따라 첫 번째 라이트 펄스 시작 신호 (WPS=1)가 발생하면, 라이트 펄스 발생기(211)는 첫 번째 라이트 펄스 시작 신호 (WPS=1)의 상승 에지에 응답하여 첫 번째 라이트 비지 신호(WB)를 발생한다.
펄스 발생기(205)로부터 발생한 펄스 신호에 따라 인에이블된 어드레스 카운터(221)는 제3인버터(215)의 출력 신호(WBB), 즉 하이 레벨로부터 로우 레벨로 천이하는 출력 신호(WBB)에 응답하여 현재 코드워드(CDN)의 첫 번째 워드를 지시하는 코드워드 어드레스들(WAE=A0)을 발생한다.
라이트 펄스 인에이블 로직(225)은 하이 레벨을 갖는 제7인버터(226)의 출력 신호와 현재 코드워드(CDN)의 첫 번째 워드를 지시하는 코드워드 어드레스들 (WAE=A0)에 응답하여 하이 레벨을 갖는 정상 라이트 인에이블 신호(WNE)를 발생한다.
이때 선택 신호 발생기(223)는 제1코드를 갖는 선택 신호(SEL)를 발생하고, 선택기(54)는 현재 코드워드(CDN)의 첫 번째 워드를 ECC 인코더(56)로 전송하고, 코드워드 라이트 드라이버(58)는 메모리 셀 어레이(20)의 메모리 영역에 현재 코드워드(CDN)의 첫 번째 워드를 프로그램한다. 즉, 이전 코드워드의 첫 번째 워드는 현재 코드워드의 첫 번째 워드로 업데이트 또는 오버라이트된다.
제4인버터(219)의 출력 신호(WBD)가 하이 레벨로부터 로우 레벨로 천이하고 각 구성 요소(227, 229, 231, 233, 247, 249, 207, 및 209)의 동작에 의하여 두 번째 라이트 펄스 시작 신호(WPS=2)가 발생한다. 라이트 펄스 발생기(211)는 두 번째 라이트 펄스 시작 신호(WPS=2)의 상승 에지에 응답하여 두 번째 라이트 비지 신호 (WB)를 발생한다.
어드레스 카운터(221)는 제3인버터(215)의 출력 신호(WBB), 즉 하이 레벨로부터 로우 레벨로 천이하는 출력 신호(WBB)에 응답하여 현재 코드워드(CDN)의 두 번째 워드를 지시하는 코드워드 어드레스들(WAE=A1)을 발생한다.
도 6의 (a)에 도시된 바와 같이, 현재 코드워드(CDN)의 두 번째 워드를 프로그램하는 도중에 인터럽트 신호(PORS)가 발생하면, 동기 회로(103)는 로우 레벨로부터 하이 레벨로 천이하는 인버터(101)의 출력 신호에 따라 하이 레벨을 갖는 신호(RST1)를 래치한다.
이때, 선택 신호 발생기(223)는 제1코드를 갖는 선택 신호(SEL)를 발생하고, 선택기(54)는 현재 코드워드(CDN)의 두 번째 워드를 ECC 인코더(56)로 전송하고, 코드워드 라이트 드라이버(58)는 입력 어드레스들(ADD), 코드워드 어드레스들 (WAE=A1), 및 로우 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)에 따라 지정된 메모리 영역에 현재 코드워드(CDN)의 두 번째 워드를 프로그램한다.
즉, 도 6의 (b)에 도시된 바와 같이 이전 코드워드의 두 번째 워드는 현재 코드워드(CDN)의 두 번째 워드로 업데이트 또는 오버라이트된다.
NAND 게이트(121)는 하이 레벨을 갖는 각 신호(PGM, WB, 및 RST1)에 따라 로우 레벨을 갖는 신호를 출력하고, 인버터(123)는 NAND 게이트(121)의 출력 신호를 반전시킨다. 펄스 발생기(125)는 로우 레벨로부터 하이 레벨로 천이하는 인버터 (123)의 출력 신호에 따라 일정한 펄스 폭을 갖는 펄스 신호를 출력하고, 동기 회로(127)는 하이 레벨을 갖는 인터럽트 신호(PORS)를 래치한다.
하이 레벨을 갖는 인터럽트 신호(PORS)가 발생함에 따라, 라이트 어드레스 선택 신호(WAS)는 로우 레벨로부터 하이 레벨로 천이하고, 선택 신호 발생기(223)는 제2코드를 갖는 선택 신호(SEL)를 발생한다.
제2코드를 갖는 선택 신호(SEL)에 따라, 선택기(54)는 검증-읽기 감지 증폭기(52)에 의하여 증폭된 이전 코드워드(CDO)의 3번째 워드부터 16번째 워드까지를 순차적으로 ECC 인코더(56)로 전송한다.
ECC 패리티 제어 유닛(235)은 하이 레벨을 갖는 라이트 어드레스 선택 신호 (WAS)에 따라 하이 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)를 발생한다.
실시 예에 따라 패리티 어드레스 지시 신호(WAEP)는 일정한 펄스 폭을 갖는 신호일 수 있다.
다른 실시 예에 따라, 하이 레벨로 천이된 패리티 어드레스 지시 신호(WAEP)는 하이 레벨로부터 로우 레벨로 천이하는 라이트 비지 신호(WB)에 따라 로우 레벨로 천이할 수 있다(도 5b참조).
각 구성 요소(245, 247, 249, 207, 및 209)의 동작에 따라 패리티 비트들을 프로그램하기 위한 라이트 펄스 시작 신호(WPS=P)가 발생한다. 라이트 펄스 발생기 (211)는 라이트 펄스 시작 신호(WPS=P)의 상승 에지에 응답하여 라이지 비지 신호 (WB)를 발생한다.
ECC 인코더(56)는 현재 코드워드(CDN)의 첫 번째 워드, 두 번째 워드, 및 이전 코드워드(CDO)의 3번째 워드부터 16번째 워드, 즉 16개의 워드들을 이용하여 새로운 패리티 비트들을 생성한다.
다른 실시 예에 따라, ECC 인코더(56)는 라이트 비지 신호(WB)의 발생 여부와 무관하게 상기 새로운 패리티 비트들을 생성할 수 있다.
입력 어드레스들(ADD)과 하이 레벨을 갖는 패리티 어드레스 지시 신호(WAEP)에 따라, 프리-디코더(34)는 ECC 인코더(56)에 의하여 생성된 새로운 패리티 비트들이 저장될 메모리 영역을 지정하는 어드레스들(XADD와 YADD)을 발생할 수 있다.
도 6의 (c)에 도시된 바와 같이, 하이 레벨을 갖는 라이지 비지 신호(WB)에 따라 패리티 비트 라이트 드라이버(60)는 ECC 인코더(56)에 의하여 생성된 새로운 패리티 비트들을 어드레스들(XADD와 YADD)에 의하여 지정된 상기 메모리 영역에 프로그램한다. 따라서 이전 코드워드의 패리티 비트들은 새롭게 생성된 패리티 비트들로 업데이트 또는 오버라이트된다.
라이트 어드레스 선택 신호(WAS)가 하이 레벨을 유지하고 있는 동안, 패리티 어드레스 지시 신호(WAEP)가 하이 레벨로부터 로우 레벨로 천이하면, 각 구성 요소 (267, 269, 271, 및 273)의 동작에 따라 프로그램 종료 신호(PGMF)가 발생한다.
명령 유닛(40)은 프로그램 종료 신호(PGMF)의 상승 에지에 응답하여 프로그램 명령(PGM)을 하이 레벨로부터 로우 레벨로 천이시킨다.
동기 회로(127)는 로우 레벨로부터 하이 레벨로 천이하는 인버터(129)의 출력 신호에 응답하여 로우 레벨을 갖는 인터럽트 신호(PORS)를 발생하고, 인버터 (131)는 인터럽트 신호(PORS)를 반전시킨다. 따라서 펄스 발생기(133)는 일정한 펄스 폭을 갖는 펄스 신호를 발생하므로, 동기 소자(135)는 하이 레벨을 갖는 라이트 완료 신호(PWD)를 발생한다.
각 구성 요소(105, 107, 및 109)의 동작에 따라 일정한 펄스 폭을 갖는 초기화 신호(INI)가 발생하고, 초기화 신호(INI)가 하이 레벨로부터 로우 레벨로 천이하면, 동기 회로(135)는 각 구성 요소(137과 139)의 동작에 따라 로우 레벨로 리셋된다. 이와 동시에 동기 회로(103)는 각 구성 요소(111과 113)의 동작에 따라 로우 레벨로 리셋된다.
불휘발성 메모리 장치(10)는 초기화 신호(INI)에 응답하여 내부 리셋 동작을 수행한다.
도 7은 인터럽트 신호 발생시 도 1a에 도시된 불휘발성 메모리 장치가 패리티 비트들을 생성하는 방법을 나타내는 다른 실시 예이다.
도 7은 현재 코드워드의 두 번째 워드(2nd word)를 프로그램한 후, 라이트-유보 동작(write-suspend operation) 도중에 인터럽트 신호(PORS)가 발생한 경우, 이전 코드워드의 무결성을 보장하기 위한 실시 예를 나타낸다.
도 7의 (a)부터 도 7의 (c)에 도시된 바와 같이, 불휘발성 메모리 장치(10)는 현재 코드워드의 두 번째 워드를 메모리 셀 어레이(10)에 프로그램한 후, 인터럽트 신호(PORS)가 발생하더라도, 현재 코드워드의 첫 번째 워드와 두 번째 워드, 및 이전 코드워드의 3번째 워드로부터 16번째 워드까지를 이용하여 새로운 패리티 비트들을 생성하고, 이전 코드워드의 패리티 비트들을 생성된 패리티 비트들로 업데이트할 수 있다. 따라서, 불휘발성 메모리 장치(10)는 이전 코드워드의 무결성을 보장할 수 있다.
도 8은 도 1a에 도시된 불휘발성 메모리 장치와 커패시터를 포함하는 메모리 시스템의 일 실시 예를 나타낸다.
도 8을 참조하면, 메모리 시스템(300)은 불휘발성 메모리 장치(10)를 포함하는 집적 회로 패키지(313)와 전력 공급 유닛(310)으로도 불리는 전력 관리 유닛 (power management unit; 310)을 포함한다.
집적 회로 패키지(313)는 PoP(Package On Package), BGA(Ball Grid Array), μBGA, WBGA(wire bonding BGA), CSP(Chip Scale Package), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Din in Wafer Form, COB(Chip On Board), CERDIP(CERamic Dual In-Line Package), MQFP(plastic metric quad flat pack), TQFP(Thin Quad FlatPack), SOIC(small-outline integrated circuit), SSOP(shrink small outline package), TSOP(thin small outline), SIP(system in package), MCP(multi chip package), WFP(wafer-level fabricated package), 또는 WSP(wafer-level processed stack package)로 구현될 수 있다.
전력 관리 유닛(310)은 외부 전력(expernal power; EPWR)을 이용하여 동작 전압(Vcc)을 발생하고, 파워 라인(311)을 통하여 불휘발성 메모리 장치(10)로 동작 전압(Vcc)을 공급한다.
집적 회로 패키지(313)는 동작 전압(Vcc)을 공급하는 파워 라인(311)과 접지 사이에 접속된 커패시터(C1)를 내장한다.
실시 예에 따라 전력 관리 유닛(310)은 리셋 신호(/RST) 또는 파워-다운 신호(PDS)를 발생할 수 있다. 예컨대, 전력 관리 유닛(310)은 하드웨어 리셋 신호 또는 소프트웨어 리셋 신호에 응답하여 리셋 신호(/RST)를 발생할 수 있다.
다른 실시 예에 따라, 전력 관리 유닛(310)은 마이크로 프로세서(321)의 제어에 따라 파워-다운 신호(PDS)를 발생할 수 있다. 또 다른 실시 예에 따라, 전력 관리 유닛(310)은 외부 전력(EPWR) 또는 동작 전압(Vcc)의 갑작스런 파워-오프 (sudden power-off)를 검출하고 검출 결과에 따라 파워-오프 검출 신호를 발생할 수 있다. 이때 상기 파워-오프 검출 신호는 리셋 신호(/RST)의 형태로 출력될 수도 있다.
이 경우 인터럽트 신호 발생기(42)는 리셋 신호(/RST), 파워-다운 신호 (PDS), 또는 상기 파워-오프 검출 신호에 응답하여 인터럽트 신호(PORS)를 발생할 수 있다.
커패시터(C1)는 현재 코드워드에 대한 프로그램 동작 도중에 인터럽트 신호 (PORS)가 발생하더라도 불휘발성 메모리 장치(10)가 프로그램 중인 현재 코드워드의 워드를 메모리 영역에 프로그램하고, 새로운 패리티 비트들을 생성하고, 생성된 패리티 비트들을 상기 메모리 영역에 안전하게 프로그램할 수 있도록 동작 전압을 공급한다.
도 8에서는 설명의 편의를 위하여 각 구성 요소(element; 313, 317, 321, 및 323)로 동일한 동작 전압(Vcc)이 공급되는 것으로 도시되었으나, 실시 예에 따라 전력 관리 유닛(310)은 각 구성 요소(313, 317, 321, 및 323)에 적합한 서로 다른 동작 전압을 공급할 수도 있다.
메모리 시스템(300)은 메모리 컨트롤러(317), 마이크로 프로세서(321), 및 입출력 장치들(323)을 더 포함할 수 있다. 불휘발성 메모리 장치(10), 메모리 컨트롤러(317), 마이크로 프로세서(321), 및 입출력 장치들(323)은 버스(319)를 통하여 서로 통신할 수 있다.
메모리 컨트롤러(317)는 마이크로 프로세서(321)의 제어에 따라 불휘발성 메모리 장치(10)의 동작, 예컨대 프로그램 동작 또는 리드 동작을 제어할 수 있다.
마이크로 프로세서(321)는 전력 관리 유닛(310), 불휘발성 메모리 장치(10), 메모리 컨트롤러(317), 및 입출력 장치들(323)의 동작을 제어할 수 있다. 상술한 바와 같이 마이크로 프로세서(321)는 불휘발성 메모리 장치(10)의 동작을 감시하고 감시 결과를 전력 관리 유닛(310)으로 출력할 수 있다.
입출력 장치들(323)은 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 또한, 입출력 장치들(323)은 디스플레이 또는 스피커로 구현될 수 있다.
도 9는 도 1a에 도시된 불휘발성 메모리 장치와 커패시터를 포함하는 메모리 시스템의 다른 실시 예를 나타낸다.
도 8과 도 9를 참조하면, 메모리 시스템(400)은 집적 회로 패키지(313)의 내부에 구현된 커패시터(C1) 이외에 집적 회로 패키지(313)의 외부에 구현된 커패시터(C2)를 더 포함한다. 커패시터(C2)는 파워 라인(311)과 접지 사이에 접속된다.
각 커패시터(C1과 C2)는 현재 코드워드에 대한 프로그램 동작 도중에 인터럽트 신호(PORS)가 발생하더라도 불휘발성 메모리 장치(10)가 현재 진행 중인 현재 코드워드의 워드에 대한 프로그램, 새로운 패리티 비트들을 생성하고 생성된 패리티 비트들을 메모리 셀 어레이(20)에 안전하게 프로그램할 수 있도록 동작 전압을 공급한다.
도 10은 도 1에 도시된 불휘발성 메모리 장치와 커패시터를 포함하는 메모리 시스템의 또 다른 실시 예를 나타낸다.
메모리 시스템(500)은 집적 회로 패키지(313)의 외부에 구현된 커패시터(C2)를 더 포함한다. 커패시터(C2)는 파워 라인(311)과 접지 사이에 접속된다. 커패시터(C2)는 현재 코드워드에 대한 프로그램 동작 도중에 인터럽트 신호(PORS)가 발생하더라도 불휘발성 메모리 장치(10)가 현재 진행 중인 현재 코드워드의 워드에 대한 프로그램, 새로운 패리티 비트들을 생성하고 생성된 패리티 비트들을 메모리 셀 어레이(20)에 안전하게 프로그램할 수 있도록 동작 전압을 공급한다.
각 메모리 시스템(300, 400, 또는 500)은 이동 전화기(cellular phone 또는 mobile phone), 스마트 폰(smart phone), PC(personal computer), 랩탑(laptop) 컴퓨터, 태블릿(tablet) PC, PDA(personal digital assistant), PMP(portable multimedia player), MP3플레이어, 네비게이션 장치(nevigation device), IPTV, e-북, 또는 게임기, 등으로 구현될 수 있다. 각 메모리 시스템(300, 400, 또는 500)은 SoC(system on chip)로 구현될 수 있다. SoC는 이동 장치(hand-held devices) 또는 CE(consumer electronics)에 내장될 수 있다. 상기 CE는 디지털 TV, IPTV, 프린터 등을 포함한다.
도 11은 도 1a에 도시된 불휘발성 메모리 장치의 동작을 나타내는 플로우차트이다.
도 1부터 도 11을 참조하면, 불휘발성 메모리 장치(10)가 프로그램 명령 (PGM)에 따라 메모리 셀 어레이(20)에 저장된 이전 코드워드를 현재 코드워드로 워드 단위로 업데이트(또는 오버라이트)하는 도중에 인터럽트 신호(PORS)가 발생하면 (S10), 불휘발성 메모리 장치(10)는 상기 이전 코드워드 중에서 업데이트된 부분(도 6의 NEW 또는 도 7의 NEW)과 상기 이전 코드워드 중에서 업데이트되지 않은 부분(도 6의 OLD 또는 도 7의 OLD)을 이용하여 패리티 비트들을 생성한다(S20). 불휘발성 메모리 장치(10)는 상기 이전 코드워드의 패리티 비트들을 생성된 패리티 비트들로 업데이트한다(S30).
예컨대, 불휘발성 메모리 장치(10)가 상기 이전 코드워드의 워드를 상기 현재 코드워드의 워드로 업데이트하는 도중에 인터럽트 신호(PORS)가 발생하면, 불휘발성 메모리 장치(10)는 상기 이전 코드워드의 상기 워드를 상기 현재 코드워드의 상기 워드로 업데이트한 후 상기 패리티 비트들을 새롭게 생성한다.
상기 이전 코드워드의 상기 워드를 상기 현재 코드워드의 상기 워드로 업데이트하는 동작, 상기 패리티 비트들을 생성하는 동작, 및 상기 이전 코드워드의 상기 패리티 비트들을 새롭게 생성된 패리티 비트들로 업데이트하는 동작 중에서 적어도 하나는 적어도 하나의 커패시터(C1과 C2)에 저장된 전하들을 이용하여 수행된다.
도 12는 도 8 또는 도 10에 도시된 집적 회로 패키지를 포함하는 메모리 모듈을 나타낸다.
도 12를 참조하면, 메모리 모듈(600)은 보드(601)에 장착된 다수개의 패키지들(313 또는 313')을 포함한다. 다수개의 패키지들(313') 각각이 도 10에 도시된 패키지로 구현될 때 커패시터(C2)는 보드(601)에 구현될 수 있다.
메모리 모듈(600)은 SIMM(single in-line memory module), DIMM(dual in-line memory modules), RDIMM(registered dual in-line memory module) UDIMM (unbuffered dual in-line memory module), SO-DIMM(small outline dual in-line memory module), 또는 ECC-SODIMM(error check & correction small outline dual in-line memory module)일 수 있다.
도 13은 도 12에 도시된 메모리 모듈을 포함하는 컴퓨터 시스템을 나타낸다.
PC(personal computer), 랩탑(laptop) 컴퓨터, 스토리지 서버(storage server)와 같은 컴퓨터 시스템(700)은 메인 보드(701), 메인 보드(701)에 장착된 슬롯(703), 및 슬롯(703)에 삽입된 메모리 모듈(600)을 포함한다.
컴퓨터 시스템(700)은 메인 보드(701)에 장착되고 메모리 모듈(600)에 장착된 불휘발성 메모리 장치(10)의 동작을 제어하는 칩셋(705)를 포함한다. 칩셋(705)은 프로세서를 포함한다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 불휘발성 메모리 장치
20: 메모리 셀 어레이
30: 액세스 회로
42: 인터럽트 신호 발생기
44: 라이트 제어 유닛
120: 인터럽트 신호 제어 유닛

Claims (31)

  1. 메모리 영역에 저장된 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 인터럽트 신호가 발생하면, 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 패리티 비트들을 생성하는 단계; 및
    상기 이전 코드워드의 패리티 비트들을 생성된 패리티 비트들로 업데이트하는 단계를 포함하고,
    상기 현재 코드워드의 일부는 상기 현재 코드워드 중에서 상기 메모리 영역에 프로그램된 부분에 상응하는 부분이고,
    상기 이전 코드워드의 일부는 상기 이전 코드워드 중에서 업데이트되지 않은 부분인 불휘발성 메모리 장치의 동작 방법.
  2. 삭제
  3. 제1항에 있어서, 상기 패리티 비트들을 생성하는 단계는,
    상기 이전 코드워드의 워드(word)를 상기 현재 코드워드의 워드로 업데이트하는 도중에 상기 인터럽트 신호가 발생하면,
    상기 이전 코드워드의 상기 워드를 상기 현재 코드워드의 상기 워드로 업데이트한 후, 상기 패리티 비트들을 생성하는 불휘발성 메모리 장치의 동작 방법.
  4. 제1항이 있어서,
    업데이트된 패리티 비트들을 이용하여 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부로 구성된 코드워드에 대한 에러 정정을 수행하는 단계를 더 포함하는 불휘발성 메모리 장치의 동작 방법.
  5. 제1항이 있어서, 상기 패리티 비트들을 생성하는 단계와 상기 업데이트하는 단계는,
    커패시터에 저장된 전하들을 이용하여 수행되는 불휘발성 메모리 장치의 동작 방법.
  6. 제1항에 있어서,
    상기 이전 코드워드는 부분-프로그래밍(partial-programming)을 통하여 상기 현재 코드워드로 업데이트되는 불휘발성 메모리 장치의 동작 방법.
  7. 이전 코드워드와 상기 이전 코드워드의 제1패리티 비트들을 저장하는 메모리 셀 어레이; 및
    상기 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 발생한 인터럽트 신호를 검출하고, 검출 결과에 따라 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 제2패리티 비트들을 생성하고, 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 액세스 회로를 포함하고,
    상기 현재 코드워드의 일부는 상기 현재 코드워드 중에서 상기 메모리 셀 어레이에 프로그램된 부분에 상응하는 부분이고,
    상기 이전 코드워드의 일부는 상기 이전 코드워드 중에서 업데이트되지 않은 부분인 불휘발성 메모리 장치.
  8. 제7항에 있어서, 상기 불휘발성 메모리 장치는,
    상기 액세스 회로로 동작 전압을 공급하기 위한 커패시터를 더 포함하는 불휘발성 메모리 장치.
  9. 제7항에 있어서, 상기 불휘발성 메모리 장치는,
    상기 액세스 회로로 공급되는 동작 전압을 검출하는 전압 검출기; 및
    상기 동작 전압이 기준 전압보다 낮을 때 상기 전압 검출기로부터 출력된 검출 신호에 응답하여 상기 인터럽트 신호를 발생하는 인터럽트 신호 발생 회로를 더 포함하는 불휘발성 메모리 장치.
  10. 제7항에 있어서, 상기 액세스 회로는,
    리셋 신호의 발생 또는 파워-다운 신호의 발생을 검출하고 검출 결과에 따라 상기 인터럽트 신호를 발생하는 인터럽트 신호 발생 회로를 포함하는 불휘발성 메모리 장치.
  11. 제7항에 있어서, 상기 액세스 회로는,
    상기 액세스 회로로 공급되는 동작 전압을 검출하고 상기 동작 전압이 기준 전압보다 낮을 때 검출 신호를 발생하는 전압 검출기; 및
    선택 신호에 따라 리셋 신호 또는 상기 검출 신호를 상기 인터럽트 신호로서 출력하는 선택기를 포함하는 불휘발성 메모리 장치.
  12. 제7항에 있어서, 상기 액세스 회로는,
    상기 액세스 회로로 공급되는 동작 전압을 검출하고 상기 동작 전압이 기준 전압보다 낮을 때 검출 신호를 발생하는 전압 검출기; 및
    리셋 신호와 상기 검출 신호를 논리합하여 상기 인터럽트 신호를 출력하는 논리합 게이트를 포함하는 불휘발성 메모리 장치.
  13. 제7항에 있어서, 상기 액세스 회로는,
    상기 현재 코드워드의 적어도 일부를 저장하는 입력 버퍼;
    상기 이전 코드워드의 적어도 일부를 감지 증폭하는 감지 증폭기;
    상기 프로그램 명령에 따라 선택 신호를 발생하는 선택 신호 발생기;
    상기 선택 신호에 응답하여, 상기 입력 버퍼로부터 출력된 상기 현재 코드워드의 일부에 상응하는 적어도 하나의 현재 워드와 상기 감지 증폭기에 의하여 감지 증폭된 상기 이전 코드워드의 일부에 상응하는 적어도 하나의 이전 워드를 선택적으로 출력하는 선택기;
    상기 선택기로부터 출력된 상기 적어도 하나의 현재 워드와 상기 적어도 하나의 이전 워드를 이용하여 상기 제2패리티 비트들을 생성하는 에러 정정 코드 인코더; 및
    상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하기 위한 패리티 비트 라이트 드라이버를 포함하는 불휘발성 메모리 장치.
  14. 제7항의 불휘발성 메모리 장치; 및
    상기 불휘발성 메모리 장치로 동작 전압을 공급하는 파워 라인과 접지 사이에 접속된 커패시터를 포함하며,
    상기 액세스 회로는 상기 커패시터에 저장된 전하들을 이용하여 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 집적 회로 패키지.
  15. 제14항의 집적 회로 패키지; 및
    상기 집적 회로 패키지가 장착된(mounted) 보드(board)를 포함하는 메모리 모듈.
  16. 제15항의 메모리 모듈; 및
    상기 메모리 모듈이 삽입된 슬롯(slot)이 장착된 메인 보드; 및
    상기 메인 보드에 장착되고 상기 메모리 모듈에 장착된 상기 불휘발성 메모리 장치의 동작을 제어하는 프로세서를 포함하는 컴퓨터 시스템.
  17. 제7항의 불휘발성 메모리 장치를 포함하는 집적 회로 패키지; 및
    상기 집적 회로 패키지가 장착된(mounted) 보드(board)를 포함하며,
    상기 보드는 상기 불휘발성 메모리 장치로 동작 전압을 공급하는 파워 라인과 접지 사이에 접속된 커패시터를 포함하며,
    상기 액세스 회로는 상기 커패시터에 저장된 전하들을 이용하여 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 메모리 모듈.
  18. 제17항의 메모리 모듈; 및
    상기 메모리 모듈이 삽입된 슬롯(slot)이 장착된 메인 보드; 및
    상기 메인 보드에 장착되고 상기 메모리 모듈에 장착된 상기 불휘발성 메모리 장치의 동작을 제어하는 프로세서를 포함하는 컴퓨터 시스템.
  19. 불휘발성 메모리 장치; 및
    상기 불휘발성 메모리 장치로 동작 전압을 공급하는 전력 관리 유닛을 포함하며,
    상기 불휘발성 메모리 장치는,
    이전 코드워드와 상기 이전 코드워드의 제1패리티 비트들을 저장하는 메모리 셀 어레이; 및
    상기 이전 코드워드를 프로그램 명령에 따라 현재 코드워드로 업데이트하는 도중에 발생한 인터럽트 신호를 검출하고, 검출 결과에 따라 상기 현재 코드워드의 일부와 상기 이전 코드워드의 일부를 이용하여 제2패리티 비트들을 생성하고, 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 액세스 회로를 포함하고,
    상기 현재 코드워드의 일부는 상기 현재 코드워드 중에서 상기 메모리 셀 어레이에 프로그램된 부분에 상응하는 부분이고,
    상기 이전 코드워드의 일부는 상기 이전 코드워드 중에서 업데이트되지 않은 부분인 메모리 시스템.
  20. 제19항에 있어서, 상기 불휘발성 메모리 장치는,
    상기 동작 전압을 공급하는 파워 라인과 접지 사이에 접속된 커패시터를 포함하고,
    상기 액세스 회로는 상기 커패시터에 저장된 전하들을 이용하여 상기 제1패리티 비트들을 상기 제2패리티 비트들로 업데이트하는 메모리 시스템.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020110051095A 2011-05-30 2011-05-30 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템 KR101772020B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110051095A KR101772020B1 (ko) 2011-05-30 2011-05-30 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
US13/193,191 US8713408B2 (en) 2011-05-30 2011-07-28 Methods of operating non-volatile memory devices during write operation interruption, non-volatile memory devices, memories and electronic systems operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110051095A KR101772020B1 (ko) 2011-05-30 2011-05-30 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20120132765A KR20120132765A (ko) 2012-12-10
KR101772020B1 true KR101772020B1 (ko) 2017-08-29

Family

ID=47262651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110051095A KR101772020B1 (ko) 2011-05-30 2011-05-30 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템

Country Status (2)

Country Link
US (1) US8713408B2 (ko)
KR (1) KR101772020B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023034448A1 (en) * 2021-08-31 2023-03-09 Micron Technology, Inc. Power loss protection of data in memory devices

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880783B2 (en) * 2011-07-05 2014-11-04 Kandou Labs SA Differential vector storage for non-volatile memory
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8775901B2 (en) * 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
KR102081923B1 (ko) 2013-02-04 2020-02-26 삼성전자주식회사 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
US9235470B2 (en) * 2013-10-03 2016-01-12 SanDisk Technologies, Inc. Adaptive EPWR (enhanced post write read) scheduling
US9213601B2 (en) * 2013-12-03 2015-12-15 Sandisk Technologies Inc. Adaptive data re-compaction after post-write read verification operations
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level
KR20180086816A (ko) * 2017-01-23 2018-08-01 에스케이하이닉스 주식회사 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법
US10340453B2 (en) * 2017-05-31 2019-07-02 Arm Ltd. Forming and operating memory devices that utilize correlated electron material (CEM)
WO2019061259A1 (en) * 2017-09-29 2019-04-04 Qualcomm Incorporated CODING AND DECODING PARTIAL COMMON CONTENT MESSAGES

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332181B1 (en) 1998-05-04 2001-12-18 International Business Machines Corporation Recovery mechanism for L1 data cache parity errors

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3511576B2 (ja) 1998-10-02 2004-03-29 松下電器産業株式会社 ディスク記録再生方法および装置
KR100672996B1 (ko) 2005-02-07 2007-01-24 삼성전자주식회사 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
JP5142685B2 (ja) 2007-11-29 2013-02-13 株式会社東芝 メモリシステム
KR100949471B1 (ko) 2008-04-03 2010-03-29 주식회사 코아로직 소프트웨어(s/w) 에러정정코드(ecc)를 이용한낸드 플래시에서의 데이터 입출력 방법 및 그 방법을이용한 임베디드 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6332181B1 (en) 1998-05-04 2001-12-18 International Business Machines Corporation Recovery mechanism for L1 data cache parity errors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023034448A1 (en) * 2021-08-31 2023-03-09 Micron Technology, Inc. Power loss protection of data in memory devices
US11747994B2 (en) 2021-08-31 2023-09-05 Micron Technology, Inc. Power loss protection of data in memory devices

Also Published As

Publication number Publication date
US20120311407A1 (en) 2012-12-06
US8713408B2 (en) 2014-04-29
KR20120132765A (ko) 2012-12-10

Similar Documents

Publication Publication Date Title
KR101772020B1 (ko) 불휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
KR102002925B1 (ko) 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US8793554B2 (en) Switchable on-die memory error correcting engine
US9367417B2 (en) Nonvolatile memory device including dummy wordline, memory system, and method of operating memory system
CN107408069B (zh) 用于检测和缓解闪速存储器中的位线开路的装置和方法
KR101739878B1 (ko) 컨트롤러, 이의 동작방법, 및 상기 컨트롤러를 포함한 메모리 시스템
US20100269000A1 (en) Methods and apparatuses for managing bad memory cell
US8549328B2 (en) Memory controller, memory system including the same, and method for operating the same
JP2012137994A (ja) メモリシステムおよびその制御方法
US8661317B2 (en) Memory device using error correcting code and system thereof
US8381085B2 (en) Semiconductor memory device and data processing method thereof
US9208021B2 (en) Data writing method, memory storage device, and memory controller
KR20160041717A (ko) 클럭 신호 처리기 및 이를 포함하는 비휘발성 메모리 장치
US9672149B2 (en) Partial page programming of nonvolatile memory device
KR20110065897A (ko) 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법
KR20100098969A (ko) 에러 정정 코드들의 신뢰성을 향상시킬 수 반도체 장치, 이를 포함하는 반도체 시스템, 및 에러 정정 코드 처리 방법
KR20150044475A (ko) 저항성 메모리 장치 및 동작 방법 방법과 이를 포함하는 시스템
KR20100088898A (ko) 플래시 메모리 장치, 및 이의 프로그램 및 독출 방법
US8953377B2 (en) Nonvolatile memory device and data storage device including the same
US9007867B2 (en) Loading trim address and trim data pairs
US9400707B2 (en) Error detection or correction of stored signals after one or more heat events in one or more memory devices
KR20170062216A (ko) 반도체 메모리 장치
JP5660620B2 (ja) 半導体メモリー装置及びその動作方法
JP2013016228A (ja) 半導体装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant