KR20100043244A - 피로 조건들에 기초한 비휘발성 메모리 셀들의 리프레시 - Google Patents
피로 조건들에 기초한 비휘발성 메모리 셀들의 리프레시 Download PDFInfo
- Publication number
- KR20100043244A KR20100043244A KR1020107003561A KR20107003561A KR20100043244A KR 20100043244 A KR20100043244 A KR 20100043244A KR 1020107003561 A KR1020107003561 A KR 1020107003561A KR 20107003561 A KR20107003561 A KR 20107003561A KR 20100043244 A KR20100043244 A KR 20100043244A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- analog
- memory cells
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
개시된 실시예들 중 하나 이상의 실시예에서, 메모리 장치 내의 메모리 셀들은 피로 조건의 표시에 따라 리프레시된다. 하나의 그러한 실시예에서, 컨트롤러는 셀들의 거동 파라미터들을 모니터하고 그 파라미터들 중 임의의 파라미터가 각 파라미터에 대하여 설정된 정상 범위 밖에 있는지, 따라서 피로 조건을 나타내는지를 결정한다. 만약 임의의 셀이 피로 조건을 나타낸다면, 피로를 나타내는 셀들의 블록으로부터의 데이터는 다른 블록으로 이동된다. 하나의 실시예에서, 다른 메모리 블록에 기입되기 전에 데이터에 대해 에러 검출 및 정정 프로세스가 수행된다.
Description
본 명세는 일반적으로 반도체 메모리에 관한 것으로, 더 상세하게는, 하나 이상의 실시예에서, 솔리드 스테이트 비휘발성 메모리 장치에 관한 것이다.
전자 장치들은 일반적으로 그들이 이용할 수 있는 어떤 유형의 대용량(bulk) 저장 장치를 갖는다. 일반적인 예는 하드 디스크 드라이브(HDD)이다. HDD들은 비교적 저비용으로 많은 양의 저장이 가능하고, 현재의 소비자 HDD들은 1 테라바이트 이상의 용량으로 이용 가능하다.
HDD들은 일반적으로 회전하는 자기 매체 또는 원판들(platters) 상에 데이터를 저장한다. 데이터는 전형적으로 원판들 상의 자속 반전들(magnetic flux reversals)의 패턴으로서 저장된다. 전형적인 HDD에 데이터를 기입하기 위해, 원판이 고속으로 회전되는 동안 원판 위에 떠 있는 기입 헤드는 데이터를 나타내도록 원판 상의 자기 입자들을 정렬시키기 위해 일련의 자기 펄스들을 생성한다. 전형적인 HDD로부터 데이터를 판독하기 위해, 고속으로 회전되는 원판 위에 자기 저항(magnetoresistive) 판독 헤드가 떠 있을 때 그 자기 저항 판독 헤드에 저항 변화들이 유도된다. 실제로는, 그 결과로 생긴 데이터 신호는 아날로그 신호이고 그것의 피크들(peaks) 및 밸리들(valleys)은 데이터 패턴의 자속 반전들의 결과이다. 그 후 그 아날로그 데이터 신호를 샘플링하여 그 데이터 신호의 생성을 초래한 것 같은 데이터 패턴을 결정하기 위해 PRML(partial response maximum likelihood)이라 불리는 디지털 신호 처리 기법들이 이용된다.
HDD들은 그들의 기계적 성질 때문에 특정한 결점들을 갖는다. HDD들은 충격, 진동 또는 강한 자기장으로 인한 손상 또는 과도한 판독/기입 에러들에 취약하다. 또한, 그것들은 휴대용 전자 장치들에서 전력을 비교적 많이 사용하는 것들이다.
대용량 저장 장치의 다른 예는 솔리드 스테이트 드라이브(SSD)이다. 회전하는 매체 상에 데이터를 저장하는 대신에, SSD들은 그들의 데이터를 저장하기 위해 반도체 메모리 장치들을 이용하지만, 그것들이 마치 전형적인 HDD인 것처럼 호스트 시스템에게 보이게 하는 인터페이스 및 폼 팩터를 포함한다. SSD들의 메모리 장치들은 전형적으로 비휘발성 플래시 메모리 장치들이다.
플래시 메모리 장치들은 광범위한 전자 응용들을 위한 인기 있는 비휘발성 메모리의 소스로 발전하였다. 플래시 메모리 장치들은 전형적으로 높은 메모리 밀도, 높은 신뢰성, 및 낮은 전력 소비를 허용하는 1-트랜지스터 메모리 셀을 이용한다. 전하 저장 또는 트랩(trapping) 층들의 프로그래밍 또는 다른 물리적 현상을 통한, 셀들의 임계 전압(threshold voltage)의 변화들은, 각 셀의 데이터 값을 결정한다. 플래시 메모리 및 다른 비휘발성 메모리에 대한 일반적인 용도들은 퍼스널 컴퓨터, PDA(personal digital assistant), 디지털 카메라, 디지털 미디어 플레이어, 디지털 레코더, 게임, 어플라이언스(appliance), 자동차, 무선 장치, 이동 전화, 및 이동식 메모리 모듈을 포함하고, 비휘발성 메모리에 대한 용도들은 계속해서 확대되고 있다.
HDD들과 달리, SSD들의 동작은 일반적으로 그들의 솔리드 스테이트 성질 때문에 진동, 충격 또는 자기장 문제들에 영향을 받지 않는다. 유사하게, 움직이는 부분들이 없어서, SSD들은 HDD들보다 더 낮은 전력 요건들을 갖는다. 그러나, SSD들은 일반적으로 동일한 폼 팩터의 HDD들에 비하여 훨씬 더 낮은 저장 용량을 갖고 비트당 비용이 현저히 더 높다.
전술한 이유들 때문에, 및 이 기술 분야의 숙련자들이 본 명세서를 읽고 이해하면 알게 될 다른 이유들 때문에, 이 기술 분야에서는 대안적인 대용량 저장 옵션들이 요구되고 있다.
도 1은 본 명세의 실시예에 따른 메모리 장치의 단순화된 블록도이다.
도 2는 도 1의 메모리 장치에서 발견될 수 있는 예시의 NAND 메모리 어레이의 일부분의 개략도이다.
도 3은 본 명세의 하나의 실시예에 따른 솔리드 스테이트 대용량 저장 시스템의 블록 개략도이다.
도 4는 본 명세의 실시예에 따른 판독/기입 채널에 의해 메모리 장치로부터 수신될 수 있는 데이터 신호를 개념적으로 나타내는 파형도이다.
도 5는 본 명세의 실시예에 따른 전자 시스템의 블록 개략도이다.
도 6은 피로 조건들에 기초하여 비휘발성 메모리 셀들을 리프레시하는 방법의 하나의 실시예의 흐름도이다.
도 2는 도 1의 메모리 장치에서 발견될 수 있는 예시의 NAND 메모리 어레이의 일부분의 개략도이다.
도 3은 본 명세의 하나의 실시예에 따른 솔리드 스테이트 대용량 저장 시스템의 블록 개략도이다.
도 4는 본 명세의 실시예에 따른 판독/기입 채널에 의해 메모리 장치로부터 수신될 수 있는 데이터 신호를 개념적으로 나타내는 파형도이다.
도 5는 본 명세의 실시예에 따른 전자 시스템의 블록 개략도이다.
도 6은 피로 조건들에 기초하여 비휘발성 메모리 셀들을 리프레시하는 방법의 하나의 실시예의 흐름도이다.
본 실시예들에 대한 다음의 상세한 설명에서는, 본 명세서의 일부를 형성하고 본 실시예들이 실시될 수 있는 특정 실시예들이 예시로서 도시되어 있는 첨부 도면들이 참조된다. 이들 실시예들은 이 기술 분야의 숙련자들이 본 발명을 실시할 수 있도록 충분히 상세히 설명되고, 다른 실시예들이 이용될 수 있고 본 명세의 범위에서 일탈하지 않고 프로세스, 전기적 또는 기계적 변경들이 이루어질 수 있다는 것을 이해해야 할 것이다. 그러므로, 다음의 상세한 설명은 제한적인 의미에서 취해지지 않아야 할 것이다.
전통적인 솔리드 스테이트 메모리 장치들은 데이터를 이진 신호의 형태로 전달한다. 전형적으로, 접지 전위는 데이터의 비트의 제1 논리 레벨, 예를 들면, '0' 데이터 값을 나타내는 반면, 전원 전위(supply potential)는 데이터의 비트의 제2 논리 레벨, 예를 들면, '1' 데이터 값을 나타낸다. 멀티-레벨 셀(MLC)에는, 예를 들면, 각 범위에 대하여 200 mV의 4개의 상이한 임계 전압(Vt) 범위들이 할당될 수 있고, 각 범위는 별개의 데이터 상태에 대응하고, 그에 의하여 4개의 데이터 값들 또는 비트 패턴들을 나타낸다. 전형적으로, 각 범위 사이에는 0.2V 내지 0.4V의 데드 스페이스(dead space) 또는 마진이 있어, Vt 분포들이 겹치지 못하게 한다. 만약 셀의 Vt가 제1 범위 내에 있다면, 그 셀은 논리 11 상태를 저장하는 것으로 간주될 수 있고 전형적으로 셀의 소거된 상태로 간주된다. 만약 Vt가 제2 범위 내에 있다면, 그 셀은 논리 10 상태를 저장하는 것으로 간주될 수 있다. 만약 Vt가 제3 범위 내에 있다면, 그 셀은 논리 00 상태를 저장하는 것으로 간주될 수 있다. 그리고 만약 Vt가 제4 범위 내에 있다면, 그 셀은 논리 01 상태를 저장하는 것으로 간주될 수 있다.
전술한 바와 같이 전통적인 MLC 장치를 프로그램할 때, 셀들은 일반적으로 먼저 소거된 상태에 대응하도록, 블록으로서, 소거된다. 셀들의 블록의 소거에 이어서, 필요한 경우에, 각 셀의 최하위 비트(LSB)가 먼저 프로그램된다. 예를 들면, LSB가 1이면, 프로그램이 필요하지 않지만, LSB가 0이면, 목표 메모리 셀의 Vt는 11 논리 상태에 대응하는 Vt 범위로부터 10 논리 상태에 대응하는 Vt 범위로 이동된다. LSB들의 프로그램에 이어서, 각 셀의 최상위 비트(MSB)가 유사한 방식으로 프로그램되어, 필요한 경우에 Vt를 이동시킨다. 전통적인 메모리 장치의 MLC를 판독할 때, 하나 이상의 판독 동작들은 일반적으로 셀 전압의 Vt가 어느 범위에 속하는지를 결정한다. 예를 들면, 제1 판독 동작은 목표 메모리 셀의 Vt가 MSB가 1인것을 나타내는지 0인 것을 나타내는지를 결정할 수 있고 한편 제2 판독 동작은 목표 메모리 셀의 Vt가 LSB가 1인것을 나타내는지 0인 것을 나타내는지를 결정할 수 있다. 그러나, 각 경우에, 각 셀에 얼마나 많은 비트가 저장되는지에 관계없이, 목표 메모리 셀의 판독 동작으로부터 단 하나의 비트가 반환된다. 다중 프로그램 및 판독 동작들의 이 문제는 각 MLC에 더 많은 비트들이 저장될 때 점점 더 성가시게 된다. 각각의 그러한 프로그램 또는 판독 동작은 이진 동작이기 때문에, 즉, 각각이 셀마다 단 하나의 비트의 정보를 프로그램하거나 반환하기 때문에, 각 MLC에 더 많은 비트를 저장하는 것은 더 긴 동작 시간으로 이어진다.
예시의 실시예의 메모리 장치들은 메모리 셀들에 Vt 범위들로서 데이터를 저장한다. 그러나, 전통적인 메모리 장치들과 대조적으로, 프로그램 및 판독 동작들은 데이터 신호들을 MLC 데이터 값들의 별개의 비트들로서가 아니라, 그들의 완전한 비트 패턴들과 같은 MLC 데이터 값들의 완전한 표현들로서 이용할 수 있다. 예를 들면, 2-비트 MLC 장치에서는, 셀의 LSB를 프로그램하고 그 후에 그 셀의 LSB를 프로그램하는 대신에, 그 2개의 비트들의 비트 패턴을 나타내는 목표 임계 전압이 프로그램될 수 있다. 즉, 제1 비트에 대하여 제1 임계 전압으로 프로그램하고, 제2 비트에 대하여 제2 임계 전압으로 이동하고, 등등으로 하기보다는 메모리 셀이 그의 목표 임계 전압을 얻을 때까지 그 메모리 셀에 일련의 프로그램 및 검증 동작들이 가해질 것이다. 유사하게, 셀에 저장된 각 비트를 결정하기 위해 다수의 판독 동작들을 이용하는 대신에, 그 셀의 임계 전압이 결정되고 그 셀의 완전한 데이터 값 또는 비트 패턴을 나타내는 단 하나의 신호로서 전달될 수 있다. 다양한 실시예들의 메모리 장치들은 종래의 메모리 장치들에서 행해지는 바와 같이 단지 메모리 셀이 어떤 공칭 임계 전압보다 위의 또는 아래의 임계 전압을 갖는지를 조사하지 않는다. 대신에, 가능한 임계 전압들의 연속에 걸쳐서 그 메모리 전압의 실제 임계 전압을 나타내는 전압 신호가 생성된다. 이러한 접근 방식의 이점은 셀당 비트 총수가 증가될 때 더욱 중요하게 된다. 예를 들면, 만약 메모리 셀이 8 비트의 정보를 저장하기로 되어 있다면, 단 하나의 판독 동작은 8 비트의 정보를 나타내는 단 하나의 아날로그 데이터 신호를 반환할 것이다.
도 1은 본 명세의 실시예에 따른 메모리 장치(101)의 단순화된 블록도이다. 메모리 장치(101)는 로우(row)들과 칼럼(column)들로 배열된 메모리 셀들의 어레이(104)를 포함한다. 다양한 실시예들은 주로 NAND 메모리 어레이들에 관하여 설명될 것이지만, 다양한 실시예들은 메모리 어레이(104)의 특정한 아키텍처에 제한되지 않는다. 본 실시예들에 적합한 다른 어레이 아키텍처들의 몇몇 예들은 NOR 어레이들, AND 어레이들, 및 가상 접지 어레이들(virtual ground arrays)을 포함한다. 그러나, 일반적으로, 여기에 설명된 실시예들은 각 메모리 셀의 임계 전압을 나타내는 데이터 신호의 생성을 허용하는 임의의 어레이 아키텍처에 적응될 수 있다.
로우 디코드 회로(108) 및 칼럼 디코드 회로(110)는 메모리 장치(101)에 제공되는 어드레스 신호들을 디코딩하기 위해 제공된다. 어드레스 신호들은 메모리 어레이(104)에 액세스하기 위해 수신되고 디코딩된다. 메모리 장치(101)는 또한 메모리 장치(101)로의 커맨드들, 어드레스들 및 데이터의 입력뿐만 아니라 메모리 장치(101)로부터의 데이터 및 상태 정보의 출력을 관리하는 입력/출력(I/O) 제어 회로(112)를 포함한다. 어드레스 레지스터(114)는 어드레스 신호들을 디코딩하기 전에 래치하기 위해 I/O 제어 회로(112)와 로우 디코드 회로(108) 및 칼럼 디코드 회로(110)의 사이에 연결된다. 커맨드 레지스터(124)는 입력되는 커맨드들을 래치하기 위해 I/O 제어 회로(112)와 제어 로직(116)의 사이에 연결된다. 제어 로직(116)은 커맨드들에 응답하여 메모리 어레이(104)에의 액세스를 제어하고 외부 프로세서(130)를 위한 상태 정보를 생성한다. 제어 로직(116)은 어드레스들에 응답하여 로우 디코드 회로(108) 및 칼럼 디코드 회로(110)를 제어하기 위해 로우 디코드 회로(108) 및 칼럼 디코드 회로(110)에 연결된다.
제어 로직(116)은 또한 샘플 및 홀드(sample and hold) 회로(118)에도 연결된다. 샘플 및 홀드 회로(118)는 입력되는(incoming) 또는 출력되는(outgoing) 데이터를 아날로그 전압 레벨들의 형태로 래치한다. 예를 들면, 샘플 및 홀드 회로는 메모리 셀에 기입될 데이터를 나타내는 입력되는 전압 신호 또는 메모리 셀로부터 센싱된 임계 전압을 나타내는 출력되는 전압 신호를 샘플링하기 위해 커패시터들 또는 다른 아날로그 저장 장치들을 포함할 수 있다. 샘플 및 홀드 회로(118)는 또한 외부 장치에 보다 강한 데이터 신호를 제공하기 위해 샘플링된 전압의 증폭 및/또는 버퍼링을 제공할 수 있다.
아날로그 전압 신호들의 처리는 CMOS 이미저(imager) 기술의 분야에서 잘 알려진 접근 방식과 유사한 접근 방식을 취할 수 있고, 입사 조명에 응답하여 이미저의 픽셀들에서 생성된 전하 레벨들은 커패시터들에 저장된다. 이들 전하 레벨들은 그 후 기준 커패시터를 차동 증폭기에의 제2 입력으로서 갖는 차동 증폭기를 이용하여 전압 신호들로 변환된다. 차동 증폭기의 출력은 그 후 조명의 강도를 나타내는 디지털 값을 얻기 위해 아날로그-디지털 변환(ADC) 장치들에 전달된다. 본 실시예들에서는, 메모리 셀을 각각 판독 또는 프로그램하기 위해 메모리 셀의 실제 또는 목표 임계 전압을 나타내는 전압 레벨을 커패시터에 가하는 것에 응답하여 그 커패시터에 전하가 저장될 수 있다. 이 전하는 그 후 접지된 입력 또는 다른 기준 신호를 제2 입력으로서 갖는 차동 증폭기를 이용하여 아날로그 전압으로 변환될 수 있다. 차동 증폭기의 출력은 그 후, 판독 동작의 경우에, 메모리 장치로부터의 출력을 위해 I/O 제어 회로(112)에 전달될 수 있고, 또는 메모리 장치를 프로그램할 때 하나 이상의 검증 동작 동안에 비교를 위해 이용될 수 있다. I/O 제어 회로(112)는, 메모리 장치(101)가 아날로그 또는 디지털 데이터 인터페이스와의 통신을 위해 적응될 수 있도록, 판독된 데이터를 아날로그 신호로부터 디지털 비트 패턴으로 변환하고 기입 데이터를 디지털 비트 패턴으로부터 아날로그 신호로 변환하기 위해 옵션으로 아날로그-디지털 변환 기능 및 디지털-아날로그 변환(DAC) 기능을 포함할 수 있다는 것에 유의한다.
기입 동작 동안에, 메모리 어레이(104)의 목표 메모리 셀들은 그들의 Vt 레벨들을 나타내는 전압들이 샘플 및 홀드 회로(118)에 유지된 레벨들과 매칭할 때까지 프로그램된다. 이것은, 하나의 예로서, 유지된 전압 레벨과 목표 메모리 셀의 임계 전압을 비교하기 위해 차동 센싱 장치들을 이용하여 달성될 수 있다. 전통적인 메모리 프로그래밍과 많이 비슷하게, 목표 메모리 셀의 임계 전압이 소망의 값에 도달하거나 소망의 값을 초과할 때까지 그 임계 전압을 증가시키기 위해 목표 메모리 셀에 프로그래밍 펄스들이 가해질 수 있다. 판독 동작에서는, 목표 메모리 셀들의 Vt 레벨들이, ADC/DAC 기능이 메모리 장치의 외부에 제공되는지 또는 내부에 제공되는지에 따라서 아날로그 신호들로서 직접 또는 아날로그 신호들의 디지털화된 표현들로서 (도 1에는 도시되지 않은) 외부 프로세스에의 전송을 위해 샘플 및 홀드 회로(118)에 전달된다.
셀들의 임계 전압들은 다양한 방식으로 결정될 수 있다. 예를 들면, 목표 메모리 셀들이 활성화되는 시점에서 워드 라인 전압이 샘플링될 수 있다. 다르게는, 승압된 전압(boosted voltage)이 목표 메모리 셀의 제1 소스/드레인 측에 가해질 수 있고, 임계 전압은 그것의 제어 게이트 전압과 그것의 다른 소스/드레인 측의 전압 사이의 차이로서 취해질 수 있다. 그 전압을 커패시터에 연결함으로써, 샘플링된 전압을 저장하도록 그 커패시터와 전하가 공유될 수 있다. 샘플링된 전압은 임계 전압과 같을 필요는 없고, 단지 그 전압을 나타내면 된다는 것에 유의한다. 예를 들면, 승압된 전압을 메모리 셀의 제1 소스/드레인 측에 가하고 알려진 전압을 그것의 제어 게이트에 가하는 경우에, 메모리 셀의 제2 소스/드레인 측에서 전개된 전압은 그 전개된 전압이 메모리 셀의 임계 전압을 나타낼 때 데이터 신호로서 취해질 수 있다.
샘플 및 홀드 회로(118)는, 메모리 장치(101)가 제1 데이터 값을 외부 프로세서에 전달하는 동안 다음 데이터 값을 판독할 수 있고, 또는 제1 데이터 값을 메모리 어레이(104)에 기입하는 동안 다음 데이터 값을 수신할 수 있도록, 캐싱(caching), 즉, 각 데이터 값에 대한 다수의 저장 위치들을 포함할 수 있다. 상태 레지스터(122)는 외부 프로세서에 출력하기 위한 상태 정보를 래칭하기 위해 I/O 제어 회로(112)와 제어 로직(116)의 사이에 연결된다.
메모리 장치(101)는 제어 링크(132)를 통하여 제어 로직(116)에서 제어 신호들을 수신한다. 제어 신호들은 칩 이네이블(chip enable) CE#, 커맨드 래치 이네이블(command latch enable) CLE, 어드레스 래치 이네이블(address latch enable) ALE, 및 기입 이네이블(write enable) WE#를 포함할 수 있다. 메모리 장치(101)는 (커맨드 신호들의 형태로) 커맨드들, (어드레스 신호들의 형태로) 어드레스들, 및 (데이터 신호들의 형태로) 데이터를 다중화된 입력/출력(I/O) 버스(134)를 통하여 외부 프로세서로부터 수신하고 I/O 버스(134)를 통하여 그 외부 프로세서에 데이터를 출력할 수 있다.
특정한 예에서, 커맨드들은 I/O 제어 회로(112)에서 I/O 버스(134)의 입력/출력(I/O) 핀들[7:0]을 통하여 수신되고 커맨드 레지스터(124)에 기입된다. 어드레스들은 I/O 제어 회로(112)에서 버스(134)의 입력/출력(I/O) 핀들[7:0]을 통하여 수신되고 어드레스 레지스터(114)에 기입된다. 데이터는 8개의 병렬 신호들을 수신할 수 있는 장치의 경우에는 입력/출력(I/O) 핀들[7:0]을 통하여, 또는 16개의 병렬 신호들을 수신할 수 있는 장치의 경우에는 입력/출력(I/O) 핀들[15:0]을 통하여, I/O 제어 회로(112)에서 수신될 수 있고 샘플 및 홀드 회로(118)에 전송된다. 데이터는 또한 8개의 병렬 신호들을 송신할 수 있는 장치의 경우에는 입력/출력(I/O) 핀들[7:0]을 통하여, 또는 16개의 병렬 신호들을 송신할 수 있는 장치의 경우에는 입력/출력(I/O) 핀들[15:0]을 통하여 출력될 수 있다. 이 기술 분야의 숙련자들은 추가의 회로 및 신호들이 제공될 수 있고, 도 1의 메모리 장치는 본 명세의 실시예들에 집중하는 것을 돕기 위해 단순화되었다는 것을 알 것이다. 또한, 도 1의 메모리 장치는 다양한 신호들의 수신 및 출력에 대한 인기 있는 관례들에 따라서 설명되었지만, 다양한 실시예들은 여기에서 명백히 지적도지 않는 한은 설명된 특정 신호들 및 I/O 구성들에 의해 제한되지 않는다는 것에 유의한다. 예를 들면, 커맨드 및 어드레스 신호들은 데이터 신호들을 수신하는 것들과는 별개의 입력들에서 수신될 수 있고, 또는 데이터 신호들은 I/O 버스(134)의 단 하나의 I/O 라인을 통하여 직렬로 송신될 수 있다. 데이터 신호들은 개별 비트들 대신에 비트 패턴들을 나타내기 때문에, 8-비트 데이터 신호의 직렬 통신은 개별 비트들을 나타내는 8개의 신호들의 병렬 통신만큼 효율적일 수 있다.
도 2는 도 1의 메모리 어레이(104)에서 발견될 수 있는 예시의 NAND 메모리 어레이(200)의 일부분의 개략도이다. 도 2에 도시된 바와 같이, 메모리 어레이(200)는 워드 라인들(2021 내지 202N) 및 교차하는 비트 라인들(2041 내지 204M)을 포함한다. 디지털 환경에서 어드레싱의 용이함을 위해, 워드 라인들(202)의 수 및 비트 라인들(204)의 수는 일반적으로 각각 2의 어떤 거듭제곱 수이다.
메모리 어레이(200)는 NAND 스트링들(2061 내지 206M)을 포함한다. 각 NAND 스트링은, 워드 라인(202)과 비트 라인(204)의 교차 지점에 각각 위치하는, 트랜지스터들(2081 내지 208N)을 포함한다. 도 2에서 플로팅 게이트 트랜지스터들로서 도시된, 트랜지스터들(208)은 데이터의 저장을 위한 비휘발성 메모리 셀들을 나타낸다. 각 NAND 스트링(206)의 플로팅 게이트 트랜지스터들(208)은 하나 이상의 소스 선택 게이트(210), 예를 들면, 전계 효과 트랜지스터(FET)와, 하나 이상의 드레인 선택 게이트(212), 예를 들면, FET의 사이에 소스에서 드레인으로 직렬로 접속된다. 각 소스 선택 게이트(210)는 로컬 비트 라인(204)과 소스 선택 라인(214)의 교차 지점에 위치하고, 한편 각 드레인 선택 게이트(212)는 로컬 비트 라인(204)과 드레인 선택 라인(215)의 교차 지점에 위치한다.
각 소스 선택 게이트(210)의 소스는 공통 소스 라인(216)에 접속된다. 각 소스 선택 게이트(210)의 드레인은 대응하는 NAND 스트링(206)의 제1 플로팅 게이트 트랜지스터(208)의 소스에 접속된다. 예를 들면, 소스 선택 게이트(2101)의 드레인은 대응하는 NAND 스트링(2061)의 플로팅 게이트 트랜지스터(2081)의 소스에 접속된다. 각 소스 선택 게이트(210)의 제어 게이트는 소스 선택 라인(214)에 접속된다. 만약 주어진 NAND 스트링(206)에 대하여 다수의 소스 선택 게이트들(210)이 이용된다면, 그것들은 공통 소스 라인(216)과 그 NAND 스트링(206)의 제1 플로팅 게이트 트랜지스터(208)의 사이에 직렬로 연결될 것이다.
각 드레인 선택 게이트(212)의 드레인은 드레인 콘택트에서 대응하는 NAND 스트링에 대한 로컬 비트 라인(204)에 접속된다. 예를 들면, 드레인 선택 게이트(2121)의 드레인은 드레인 콘택트에서 대응하는 NAND 스트링(2061)에 대한 로컬 비트 라인(2041)에 접속된다. 각 드레인 선택 게이트(212)의 소스는 대응하는 NAND 스트링(206)의 마지막 플로팅 게이트 트랜지스터(208)의 드레인에 접속된다. 예를 들면, 드레인 선택 게이트(2121)의 소스는 대응하는 NAND 스트링(2061)의 플로팅 게이트 트랜지스터(208N)의 드레인에 접속된다. 만약 주어진 NAND 스트링(206)에 대하여 다수의 드레인 선택 게이트들(212)이 이용된다면, 그것들은 대응하는 비트 라인(204)과 그 NAND 스트링(206)의 마지막 플로팅 게이트 트랜지스터(208N)의 사이에 직렬로 연결될 것이다.
플로팅 게이트 트랜지스터들(208)의 전형적인 구조는, 도 2에 도시된 바와 같이, 소스(230) 및 드레인(232), 플로팅 게이트(234), 및 제어 게이트(236)를 포함한다. 플로팅 게이트 트랜지스터들(208)은 워드 라인(202)에 연결된 그들의 제어 게이트들(236)을 갖는다. 플로팅 게이트 트랜지스터들(208)의 칼럼은 주어진 로컬 비트 라인(204)에 연결된 NAND 스트링들(206)이다. 플로팅 게이트 트랜지스터들(208)의 로우는 주어진 워드 라인(202)에 공통으로 연결된 트랜지스터들이다. NROM, 자기 또는 강유전성 트랜지스터들 및 2개 이상의 임계 전압 범위들 중 하나를 취하도록 프로그램될 수 있는 다른 트랜지스터들과 같은, 다른 형태의 트랜지스터들(208)도 본 명세의 실시예들과 함께 이용될 수 있다.
다양한 실시예들의 메모리 장치들은 유리하게는 대용량 저장 장치들로서 이용될 수 있다. 다양한 실시예들에 대하여, 이들 대용량 저장 장치들은 전통적인 HDD들의 동일한 폼 팩터 및 통신 버스 인터페이스를 지닐 수 있고, 따라서 그것들이 다양한 응용들에서 그러한 드라이브들을 대체할 수 있게 한다. HDD들에 대한 몇몇 일반적인 폼 팩터들은 현재의 퍼스널 컴퓨터들 및 보다 대형의 디지털 미디어 레코더들과 함께 일반적으로 사용되는 3.5", 2.5" 및 PCMCIA(Personal Computer Memory Card International Association) 폼 팩터들뿐만 아니라, 이동 전화기, PDA(personal digital assistant) 및 디지털 미디어 플레이어와 같은 보다 소형의 퍼스널 어플라이언스(personal appliance)들에서 일반적으로 사용되는 1.8" 및 1" 폼 팩터들을 포함한다. 몇몇 일반적인 버스 인터페이스들은 USB(universal serial bus), ATA(AT attachment interface)[IDE(integrated drive electronics)로도 알려짐], SATA(serial ATA), SCSI(small computer system interface) 및 IEEE(Institute of Electrical and Electronics Engineers) 1394 표준을 포함한다. 다양한 폼 팩터들 및 통신 인터페이스들이 열거되었지만, 실시예들은 특정한 폼 팩터 또는 통신 표준에 제한되지 않는다. 또한, 실시예들은 HDD 폼 팩터 또는 통신 인터페이스를 준수할 필요는 없다. 도 3은 본 명세의 하나의 실시예에 따른 솔리드 스테이트 대용량 저장 장치(300)의 블록 개략도이다.
대용량 저장 장치(300)는 본 명세의 실시예에 따른 메모리 장치(301), 판독/기입 채널(305) 및 컨트롤러(310)를 포함한다. 판독/기입 채널(305)은 메모리 장치(301)로부터 수신된 데이터 신호들의 아날로그-디지털 변환뿐만 아니라 컨트롤러(310)로부터 수신된 데이터 신호들의 디지털-아날로그 변환을 제공한다. 컨트롤러(310)는 버스 인터페이스(315)를 통하여 대용량 저장 장치(300)와 외부 프로세서(도 3에는 도시되지 않음) 사이의 통신을 제공한다. 판독/기입 채널(305)은 점선으로 메모리 장치(301')에 의해 도시된 것과 같은, 하나 이상의 추가의 메모리 장치들에 서비스를 제공할 수 있다는 것에 유의한다. 통신을 위한 단 하나의 메모리 장치(301)의 선택은 멀티-비트 칩 이네이블(multi-bit chip enable) 신호 또는 다른 다중화 스킴(multiplexing scheme)을 통하여 처리될 수 있다.
메모리 장치(301)는 아날로그 인터페이스(320) 및 디지털 인터페이스(325)를 통하여 판독/기입 채널(305)에 연결된다. 아날로그 인터페이스(320)는 메모리 장치(301)와 판독/기입 채널(305) 사이에 아날로그 데이터 신호들의 통과를 제공하는 반면 디지털 인터페이스(325)는 판독/기입 채널(305)로부터 메모리 장치(301)로 제어 신호들, 커맨드 신호들 및 어드레스 신호들의 통과를 제공한다. 디지털 인터페이스(325)는 또한 메모리 장치(301)로부터 판독/기입 채널(305)로의 상태 신호들의 통과를 제공할 수 있다. 아날로그 인터페이스(320) 및 디지털 인터페이스(325)는 도 1의 메모리 장치(101)에 관하여 지적한 바와 같이 신호 라인들을 공유할 수 있다. 비록 도 3의 실시예는 메모리 장치에의 이중 아날로그/디지털 인터페이스를 도시하고 있으나, 판독/기입 채널(305)의 기능은 도 1에 관하여 설명한 바와 같이 옵션으로 메모리 장치(301)에 통합되어, 메모리 장치(301)가 제어 신호들, 커맨드 신호들, 상태 신호들, 어드레스 신호들 및 데이터 신호들의 통과를 위해 디지털 인터페이스만을 이용하여 컨트롤러(310)와 직접 통신하도록 할 수 있다.
판독/기입 채널(305)은 데이터 인터페이스(330) 및 제어 인터페이스(335)와 같은 하나 이상의 인터페이스를 통하여 컨트롤러(310)에 연결된다. 데이터 인터페이스(330)는 판독/기입 채널(305)과 컨트롤러(310) 사이에 디지털 데이터 신호들의 통과를 제공한다. 제어 인터페이스(335)는 컨트롤러(310)로부터 판독/기입 채널(305)로 제어 신호들, 커맨드 신호들 및 어드레스 신호들의 통과를 제공한다. 제어 인터페이스(335)는 또한 판독/기입 채널(305)로부터 컨트롤러(310)로 상태 신호들의 통과를 제공한다. 상태 및 커맨드/제어 신호들은 또한 제어 인터페이스(335)를 디지털 인터페이스(325)에 연결하는 점선에 의해 도시된 바와 같이 컨트롤러(310)와 메모리 장치(301) 사이에 직접 전달될 수도 있다.
비록 도 3에서는 2개의 별개의 장치들로서 도시되어 있지만, 판독/기입 채널(305) 및 컨트롤러(310)의 기능은 다르게는 단 하나의 집적 회로 장치에 의해 수행될 수 있을 것이다. 또한 메모리 장치(301)를 개별 장치로서 유지하는 것은 실시예들을 상이한 폼 팩터들 및 통신 인터페이스들에 적응시키는 데 있어 더 많은 적응성(flexibility)을 제공할 것이지만, 그것도 집적 회로 장치이기 때문에, 전체 대용량 저장 장치(300)가 단 하나의 집적 회로 장치로서 제조될 수 있을 것이다.
판독/기입 채널(305)은 적어도 디지털 데이터 스트림을 아날로그 데이터 스트림으로 변환하고 반대로 아날로그 데이터 스트림을 디지털 데이터 스트림으로 변환하는 것을 제공하도록 적응된 신호 프로세서이다. 디지털 데이터 스트림은 이진 전압 레벨들, 즉, 제1 이진 데이터 값, 예를 들면, 0을 갖는 비트를 나타내는 제1 전압 레벨, 및 제2 이진 데이터 값, 예를 들면, 1을 갖는 비트를 나타내는 제2 전압 레벨의 형태로 데이터 신호들을 제공한다. 아날로그 데이터 스트림은 2개 이상의 비트들의 상이한 비트 패턴들에 대응하는 상이한 전압 레벨들 또는 범위들을 갖는, 2개보다 많은 레벨들을 갖는 아날로그 전압들의 형태로 데이터 신호들을 제공한다. 예를 들면, 메모리 셀당 2개의 비트를 저장하도록 적응된 시스템에서, 아날로그 데이터 스트림의 제1 전압 레벨 또는 전압 레벨들의 범위는 11의 비트 패턴에 대응할 수 있을 것이고, 아날로그 데이터 스트림의 제2 전압 레벨 또는 전압 레벨들의 범위는 10의 비트 패턴에 대응할 수 있을 것이고, 아날로그 데이터 스트림의 제3 전압 레벨 또는 전압 레벨들의 범위는 00의 비트 패턴에 대응할 수 있을 것이고, 아날로그 데이터 스트림의 제4 전압 레벨 또는 전압 레벨들의 범위는 01의 비트 패턴에 대응할 수 있을 것이다. 따라서, 다양한 실시예들에 따른 하나의 아날로그 데이터 신호는 2개 이상의 디지털 데이터 신호들로 변환될 것이고, 반대로 2개 이상의 디지털 데이터 신호들은 하나의 아날로그 데이터 신호로 변환될 것이다.
실제로는, 제어 및 커맨드 신호들은 컨트롤러(310)를 통하여 메모리 장치(301)의 액세스를 위해 버스 인터페이스(315)에서 수신된다. 어드레스 및 데이터 신호들도 어떤 유형의 액세스가 소망되는지에 따라서, 예를 들면, 기입, 판독, 포맷 등에 따라서 버스 인터페이스(315)에서 수신될 수 있다. 공유된 버스 시스템에서, 버스 인터페이스(315)는 다양한 다른 장치들과 함께 버스에 연결될 것이다. 통신을 특정한 장치에 향하게 하기 위해, 버스 상의 어느 장치가 후속의 커맨드에 작용할 것인지를 나타내는 식별 값(identification value)이 버스 상에 놓일 수 있다. 만약 그 식별 값이 대용량 저장 장치(300)가 지닌 값과 매칭한다면, 컨트롤러(310)는 버스 인터페이스(315)에서 그 후속의 커맨드를 받아들일 것이다. 만약 그 식별 값이 매칭하지 않는다면, 컨트롤러(310)는 그 후속의 통신을 무시할 것이다. 유사하게, 버스 상의 충돌들을 회피하기 위해, 공유된 버스 상의 다양한 장치들은 그것들이 개별적으로 버스를 제어하고 있는 동안 다른 장치들에게 발신 통신(outbound communication)을 중지할 것을 지시할 수 있다. 버스 공유 및 충돌 회피를 위한 프로토콜들을 잘 알려져 있으므로 여기에서 상세히 설명되지 않을 것이다. 컨트롤러(310)는 그 후 커맨드, 어드레스 및 데이터 신호들을 처리를 위해 판독/기입 채널(305)에 전달한다. 컨트롤러(310)로부터 판독/기입 채널(305)로 전달된 커맨드, 어드레스 및 데이터 신호들은 버스 인터페이스(315)에서 수신된 동일한 신호들일 필요는 없다는 것에 유의한다. 예를 들면, 버스 인터페이스(315)에 대한 통신 표준은 판독/기입 채널(305) 또는 메모리 장치(301)의 통신 표준과 다를 수 있다. 이 경우에, 컨트롤러(310)는 메모리 장치(301)에 액세스하기 전에 커맨드들 및/또는 어드레싱 스킴을 번역(translate)할 수 있다. 또한, 컨트롤러(310)는, 메모리 장치들(301)의 물리적 어드레스들이 주어진 논리적 어드레스에 대하여 시간에 걸쳐서 변화할 수 있도록, 하나 이상의 메모리 장치들(301) 내의 부하 평준화(load leveling)를 제공할 수 있다. 따라서, 컨트롤러(310)는 외부 장치로부터의 논리적 어드레스를 목표 메모리 장치(301)의 물리적 어드레스에 매핑할 것이다.
기입 요청들에 대하여, 커맨드 및 어드레스 신호들에 더하여, 컨트롤러(310)는 디지털 데이터 신호들을 판독/기입 채널(305)에 전달할 것이다. 예를 들면, 16-비트 데이터 워드에 대하여, 컨트롤러(310)는 제1 또는 제2 이진 논리 레벨을 갖는 16개의 개별 신호들을 전달할 것이다. 판독/기입 채널(305)은 그 후 그 디지털 데이터 신호들을 그 디지털 데이터 신호들의 비트 패턴을 나타내는 아날로그 데이터 신호로 변환할 것이다. 상기의 예에서 계속하여, 판독/기입 채널(305)은 디지털-아날로그 변환을 이용하여 16개의 개별 디지털 데이터 신호들을 소망의 16-비트 데이터 패턴을 나타내는 전위 레벨을 갖는 단 하나의 아날로그 신호로 변환할 것이다. 하나의 실시예에서, 디지털 데이터 신호들의 비트 패턴을 나타내는 아날로그 데이터 신호는 목표 메모리 셀의 소망의 임계 전압을 나타낸다. 그러나, 1-트랜지스터 메모리 셀들의 프로그래밍에 있어서, 이웃 메모리 셀들의 프로그래밍이 이전에 프로그램된 메모리 셀들의 임계 전압을 증가시키는 것은 흔히 있는 일이다. 따라서, 다른 실시예에서, 판독/기입 채널(305)은 임계 전압에서의 이러한 유형의 예상된 변화들을 고려하여, 아날로그 데이터 신호를 최종 소망의 임계 전압보다 낮은 임계 전압을 나타내도록 조정할 수 있다. 컨트롤러(310)로부터의 디지털 데이터 신호들의 변환 후에, 판독/기입 채널(305)은 그 후 기입 커맨드 및 어드레스 신호들을 개별 메모리 셀들을 프로그래밍하는 데 이용하기 위한 아날로그 데이터 신호들과 함께 메모리 장치(301)에 전달할 것이다. 프로그래밍은 한 셀 한 셀(on a cell-by-cell basis) 일어날 수 있지만, 일반적으로 동작마다 데이터의 페이지에 대하여 수행된다. 전형적인 메모리 어레이 아키텍처에 대하여, 데이터의 페이지는 워드 라인에 연결된 하나 걸러의 메모리 셀(every other memory cell)을 포함한다.
판독 요청들에 대하여, 컨트롤러는 커맨드 및 어드레스 신호들을 판독/기입 채널(305)에 전달할 것이다. 판독/기입 채널(305)은 그 판독 커맨드 및 어드레스 신호들을 메모리 장치(301)에 전달할 것이다. 응답으로, 판독 동작을 수행한 후에, 메모리 장치(301)는 어드레스 신호들 및 판독 커맨드에 의해 정의된 메모리 셀들의 임계 전압들을 나타내는 아날로그 데이터 신호들을 반환할 것이다. 메모리 장치(301)는 그의 아날로그 데이터 신호들을 병렬 또는 직렬 방식으로 전송할 수 있다.
아날로그 데이터 신호들은 또한 불연속 전압 펄스들로서가 아니라, 실질적으로 연속적인 아날로그 신호들의 스트림으로서 전송될 수 있다. 이 경우에, 판독/기입 채널(305)은 PRML(partial response, maximum likelihood)이라 불리는 HDD 액세싱에서 이용되는 것과 유사한 신호 처리를 이용할 수 있다. 전통적인 HDD의 PRML 처리에서, HDD의 판독 헤드는 HDD 원판의 판독 동작 동안에 마주치는 자속 반전들을 나타내는 아날로그 신호들의 스트림을 출력한다. 판독 헤더가 마주치는 자속 반전들에 응답하여 생성된 이 아날로그 신호의 진짜 피크들 및 밸리들을 캡처하려고 시도하는 것보다는, 그 신호는 그 신호 패턴의 디지털 표현을 생성하기 위해 주기적으로 샘플링된다. 이 디지털 표현은 그 후 아날로그 신호 패턴을 초래한 것 같은 자속 반전들의 패턴을 결정하기 위해 분석될 수 있다. 이 동일한 유형의 처리가 본 명세서의 실시예들과 함께 이용될 수 있다. 메모리 장치(301)로부터의 아날로그 신호를 샘플링하는 것에 의해, 아날로그 신호의 생성을 초래한 것 같은 임계 전압들의 패턴을 결정하기 위해 PRML 처리가 이용될 수 있다.
도 4는 본 명세의 실시예에 따른 판독/기입 채널(305)에 의해 메모리 장치(301)로부터 수신될 수 있는 데이터 신호(450)를 개념적으로 나타내는 파형을 도시한 것이다. 데이터 신호(450)는 주기적으로 샘플링될 수 있고 샘플링된 전압 레벨들의 진폭들로부터 데이터 신호(450)의 디지털 표현이 생성될 수 있다. 하나의 실시예에서, 샘플링은 데이터 신호(450)의 정상 상태(steady-state) 부분들 동안에 샘플링이 일어나도록 데이터 출력에 동기화될 수 있을 것이다. 그러한 실시예는 시간들 t1, t2, t3 및 t4에서 점선들로 나타낸 샘플링에 의해 도시된다. 그러나, 만약 동기화된 샘플링이 정렬되지 않게 되면, 데이터 샘플들의 값들은 정상 상태 값들과는 크게 다를 수 있다. 대안 실시예에서, 데이터 샘플들이 나타내는 기울기 변화들을 관찰하는 것 등에 의해, 정상 상태 값들이 발생한 것 같은 곳에 대한 결정을 허용하도록 샘플링 비율들이 증가될 수 있을 것이다. 그러한 실시예는 시간들 t5, t6, t7 및 t8에서 점선들로 나타낸 샘플링에 의해 도시되고, 여기서 시간들 t6 및 t7에서의 데이터 샘플들 사이의 기울기는 정상 상태 조건을 나타낼 수 있다. 그러한 실시예에서는, 샘플링 비율과 표현의 정확도 사이에 트레이드오프(trade-off)가 이루어진다. 보다 높은 샘플링 비율들은 보다 정확한 표현들로 이어지지만, 처리 시간을 증가시키기도 한다. 샘플링이 데이터 출력에 동기화되든지 또는 보다 빈번한 샘플링이 이용되든지 간에 관계없이, 디지털 표현은 그 후 어떤 입력되는 전압 레벨들이 아날로그 신호 패턴의 생성을 초래한 것 같은지를 예측하기 위해 이용될 수 있다. 다음으로, 입력되는 전압 레벨들의 이 예상된 패턴으로부터 판독되고 있는 개별 메모리 셀들의 그럴 듯한 데이터 값들(the likely data values)이 예측될 수 있다.
메모리 장치(301)로부터 데이터 값들을 판독할 때 에러들이 발생할 것을 인지하여, 판독/기입 채널(305)은 에러 정정(error correction)을 포함할 수 있다. 에러 정정은 예상된 에러들을 복구하기 위해, HDD들뿐만 아니라, 메모리 장치들에서 일반적으로 이용된다. 전형적으로, 메모리 장치는 제1 세트의 로케이션들에 사용자 데이터를 저장하고 제2 세트의 로케이션들에 에러 정정 코드(ECC)를 저장할 것이다. 판독 동작 동안에, 사용자 데이터의 판독 요청에 응답하여 사용자 데이터와 ECC 양쪽 모두가 판독된다. 알려진 알고리즘들을 이용하여, 판독 동작으로부터 반환된 사용자 데이터는 ECC와 비교된다. 만약 에러들이 ECC의 범위 내에 있다면, 에러들은 정정될 것이다.
도 5는 본 명세의 실시예에 따른 전자 시스템의 블록 개략도이다. 예시의 전자 시스템들은 퍼스널 컴퓨터, PDA, 디지털 카메라, 디지털 미디어 플레이어, 디지털 레코더, 전자 게임, 어플라이언스, 자동차, 무선 장치, 이동 전화 등을 포함할 수 있다.
전자 시스템은 프로세스(500)의 효율을 증가시키기 위해 캐시 메모리(502)를 포함할 수 있는 호스트 프로세서(500)를 포함할 수 있다. 프로세서(500)는 통신 버스(504)에 연결된다. 다양한 다른 장치들이 프로세서(500)의 제어 하에 통신 버스(504)에 연결될 수 있다. 예를 들면, 전자 시스템은 랜덤 액세스 메모리(RAM)(506); 키보드, 터치 패드, 포인팅 장치 등과 같은 하나 이상의 입력 장치들(508); 오디오 컨트롤러(510); 비디오 컨트롤러(512); 및 하나 이상의 대용량 저장 장치들(514)을 포함할 수 있다. 적어도 하나의 대용량 저장 장치(514)는 버스(504)와 통신하기 위한 디지털 버스 인터페이스(515)를 포함하고, 2개 이상의 비트의 데이터의 데이터 패턴들을 나타내는 데이터 신호들의 전송을 위한 아날로그 인터페이스를 갖는 본 명세의 실시예에 따른 하나 이상의 메모리 장치들, 및 버스 인터페이스(515)로부터 수신된 디지털 데이터 신호들의 디지털-아날로그 변환 및 그의 메모리 장치(들)로부터 수신된 아날로그 데이터 신호들의 아날로그-디지털 변환을 수행하도록 적응된 신호 프로세서를 포함한다.
메모리 셀에 프로그램된 각 상태에 대한 임계 전압(Vt) 윈도우들은 환경 조건들뿐만 아니라 그 셀이 경험하는 프로그램/소거 사이클들의 수에 따라 변화한다. 예를 들면, 셀이 다수의 프로그램/소거 사이클들을 경험한 후에, Vt 윈도우들은 교란 조건들 때문에 정상보다 더 많은 양을 이동할 수 있고, 그 셀을 프로그램하기 위해 더 많은 수의 프로그램 펄스들이 요구될 수 있고, 및/또는 셀의 에러율이 증가한다. 그러한 조건들은 일반적으로 피로 조건들로 불린다.
메모리 컨트롤러는 메모리 셀들의 피로 조건들을 모니터할 수 있다. 각 셀 또는 셀들의 블록의 거동 및 신뢰도를 관찰함으로써, 컨트롤러는 셀 거동 파라미터들(예를 들면, 프로그램하는 펄스들의 수, 에러율)이 각 파라미터에 대한 소망의 범위 밖에 있는지를 결정할 수 있다. 하나 이상의 파라미터들이 소망의 동작 범위 밖에 있는 경우, 메모리 블록은 그 후 본 명세의 하나 이상의 실시예에 따라 리프레시된다.
도 6은 피로해진 메모리 셀들의 블록을 리프레시하는 방법의 하나의 실시예의 흐름도를 도시한다. 도시된 실시예는 하나의 메모리 블록의 리프레싱을 나타내지만, 대안 실시예들은 메모리 셀들의 페이지들 또는 하나 이상의 메모리 블록을 리프레시할 수 있다.
메모리 컨트롤러는 각 메모리 셀의 피로 조건에 대하여 모니터한다(601). 예를 들면, 컨트롤러는 메모리 셀이 피로해진 것을 나타낼 거동 파라미터들의 열화의 표시들을 찾을 수 있다. 하나의 그러한 열화의 표시는 특정 상태에 도달하기 위해 그 상태로 프로그램하기 위해 통상적으로 요구되는 것보다 더 많은 양의 프로그래밍 펄스들을 필요로 하는 셀 또는 셀들이다. 다른 표시는 셀 또는 셀들을 완전히 소거할 수 없는 것이다. 또 다른 표시는 통상적으로 경험되는 것보다 특정한 프로그램된 상태를 위하여 과도한 양의 Vt의 이동을 초래하는 프로그램 교란이다. 또 다른 표시들은 증가된 에러율 및/또는 다른 열화된 거동 파라미터들을 포함한다.
만약 모니터된 파라미터들 중 임의의 것이 그의 소망의 범위 밖에 있다면(603), 전체 메모리 블록이 리프레시된다. 이것은 먼저 메모리 블록으로부터 데이터를 판독하는 것(605)에 의해 달성될 수 있다. 하나의 실시예에서, 각 메모리 셀은 그 셀에 저장된 디지털 비트 패턴(즉, 하나 이상의 비트)을 나타내는 특정 아날로그 전압으로 프로그램된다. 메모리 블록으로부터 데이터를 판독하는 것은 아날로그 판독 회로를 이용해 각 셀에 저장된 아날로그 전압을 판독하는 것을 포함한다.
아날로그 판독 회로는 판독되고 있는 선택된 셀에 연결된 워드 라인 상에 증가하는 판독 전압(예를 들면, 램핑된 전압)을 제공한다. 그 후 선택된 셀에 연결된 비트 라인은 램프 전압이 그의 임계 전압과 같거나 그의 임계 전압을 초과할 때 셀이 그의 임계 전압에 의해 온으로 된 것을 나타내는 전류에 대하여 모니터된다. 이 임계 전압은 선택된 셀에 저장되는 아날로그 전압이다.
판독 데이터에 대해 에러 정정 스킴이 구현될 수 있다(607). 예를 들면, 에러 정정 코드(ECC)가 이용될 수 있다. ECC는 각 데이터 신호가 특정 구성 규칙들에 따라야 하는 코드이다. 판독 데이터 신호에서 너무 크지 않은 이 구성으로부터의 이탈들은 일반적으로 자동으로 검출되고 정정될 수 있다. ECC의 예들은 해밍 코드(Hamming code), BCH 코드, 리드-솔로몬 코드(Reed-Solomon code), 리드-뮬러 코드(Reed-Muller code), 바이너리 골레이 코드(Binary Golay code), 및 트렐리스 코드 변조(Trellis Code modulation)를 포함한다. 일부 에러 정정 코드들은 단일 비트 에러들을 정정하고 이중-비트 에러들을 검출할 수 있다. 다른 코드들은 다중-비트 에러들을 검출 및/또는 정정할 수 있다.
피로해진 메모리 블록으로부터 판독된 데이터는 그 후 다른 메모리 블록에 기입된다(609). 만약 판독 데이터에 대해 ECC가 이용되었다면, 에러 정정된 데이터가 새로운 메모리 블록에 기입된다(609). 오래된 메모리 블록에의 임의의 액세스들은 새로운 메모리 블록으로 리다이렉트(redirect)된다.
그 후 오래된 메모리 블록은 다시 사용되지 않도록 불량으로 표시되거나 또는 그 블록은 피로해진 셀들을 수리하는 교정 프로세스(reclamation process)를 거칠 수 있다(611). 만약 메모리 블록 내의 셀 또는 셀들의 피로해진 조건이 수리할 가망이 없다면, 그 블록은 다시 사용되지 않는다. 만약 셀 또는 셀들의 피로해진 조건이, 추가적인 소거 또는 프로그램 동작들과 같은, 교정 프로세스에 의해 수리될 수 있다면, 그 메모리 블록은 수리되고 재사용된다.
[결론]
본 명세의 하나 이상의 실시예는 피로해진 메모리 블록, 페이지 또는 메모리의 다른 영역으로부터 다른 로케이션으로 데이터를 이동시키는 것에 의해 피로해진 비휘발성 메모리 셀들을 리프레시한다. 피로해진 영역으로부터 판독되는 데이터는 새로운 로케이션으로 기입되기 전에 에러 검출 및 정정 프로세스의 작용을 받을 수 있다. 본 실시예는 NAND 플래시 메모리, NOR 플래시 메모리, 또는 다른 유형의 비휘발성 메모리 장치와 같은 비휘발성 메모리 장치들에서 이용될 수 있다.
본 명세서에서는 특정한 실시예들이 도시되고 설명되었지만, 이 기술 분야의 통상의 지식을 가진 자들은 동일한 목적을 달성하도록 의도된 임의의 배열이 제시된 특정한 실시예들 대신에 이용될 수 있다는 것을 알 것이다. 본 명세의 많은 개조들은 이 기술 분야의 통상의 지식을 가진 자들에게 명백할 것이다. 따라서, 이 출원은 본 명세의 임의의 개조들 또는 변형들을 망라하도록 의도된다.
Claims (23)
- 메모리 어레이 내의 비휘발성 메모리 셀들을 리프레시하는 방법으로서,
열화(degradation)의 표시들에 대하여 비휘발성 메모리 셀들의 거동 파라미터들(behavior parameters)을 모니터하는 단계; 및
상기 거동 파라미터들의 열화의 표시들을 나타내는, 상기 비휘발성 메모리 셀들에 저장된 데이터를 상기 메모리 어레이 내의 다른 메모리 셀들로 이동시키는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 데이터를 상기 다른 메모리 셀들로 이동시키기 전에 상기 데이터에 대해 에러 정정 코딩을 수행하는 단계를 더 포함하는 방법.
- 제1항에 있어서, 상기 거동 파라미터들은 프로그래밍을 위한 프로그램 펄스들의 양, 에러율, 및 프로그램 교란에 응답한 Vt의 이동을 포함하는 방법.
- 제1항에 있어서, 상기 데이터를 이동시키는 단계는,
상기 거동 파라미터들의 열화를 나타내는 각 셀로부터 데이터를 판독하는 단계;
상기 데이터에 대해 에러 정정을 수행하는 단계; 및
상기 데이터를 상기 메모리 어레이 내의 상기 다른 메모리 셀들에 기입하는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 데이터는 아날로그 전압으로서 상기 비휘발성 메모리 셀들에 저장되는 방법.
- 제1항에 있어서,
제1 메모리 블록 내의 비휘발성 메모리 셀들의 거동 파라미터들을 모니터하는 단계;
상기 거동 파라미터들 중 임의의 거동 파라미터가 각 파라미터에 대한 동작 범위 밖에 있다면, 상기 제1 메모리 블록 내의 각 메모리 셀로부터 데이터를 판독하는 단계;
각 메모리 셀로부터의 데이터에 대해 에러 정정 동작을 수행하여 에러 정정된 데이터를 생성하는 단계; 및
상기 에러 정정된 데이터를 제2 메모리 블록의 비휘발성 메모리 셀들에 기입하는 단계
를 더 포함하는 방법. - 제6항에 있어서, 상기 제1 메모리 블록이 결함이 있다는 표시를 생성하는 단계를 더 포함하는 방법.
- 제6항에 있어서, 상기 제1 메모리 블록에 대해 교정 프로세스(reclamation process)를 수행하는 단계를 더 포함하는 방법.
- 제6항에 있어서, 상기 제1 메모리 블록에 대하여 의도된 메모리 액세스들을 상기 제2 메모리 블록으로 리다이렉트(redirect)하는 단계를 더 포함하는 방법.
- 제6항에 있어서, 상기 에러 정정 동작을 수행하는 단계는, 해밍 코드(Hamming code), BCH 코드, 리드-솔로몬 코드(Reed-Solomon code), 리드-뮬러 코드(Reed-Muller code), 바이너리 골레이 코드(Binary Golay code), 및 트렐리스 코드 변조(Trellis Code modulation) 중 하나를 포함하는 에러 정정 코드 동작을 수행하는 단계를 포함하는 방법.
- 제6항에 있어서, 각 파라미터에 대한 상기 동작 범위는, 메모리 셀을 미리 결정된 프로그램된 상태로 프로그램하기 위해 요구되는, 프로그램 전압 및 펄스들의 수에 의해 결정되는, 프로그래밍 펄스들의 양을 포함하는 방법.
- 제6항에 있어서, 각 파라미터에 대한 상기 동작 범위는 미리 결정된 양의 프로그램 펄스들에 의해 프로그램되는 메모리 셀에 의해 달성된 프로그램 임계 전압을 포함하는 방법.
- 제6항에 있어서, 각 파라미터에 대한 상기 동작 범위는, 메모리 셀을 미리 결정된 소거 상태로 소거하기 위해 요구되는, 소거 전압 및 펄스들의 수에 의해 결정되는, 소거 펄스들의 양을 포함하는 방법.
- 제6항에 있어서, 각 파라미터에 대한 상기 동작 범위들은 미리 결정된 양의 소거 펄스들에 의해 소거되는 메모리 셀에 의해 달성된 소거 임계 전압을 포함하는 방법.
- 메모리 장치로서,
복수의 메모리 셀들을 포함하는 메모리 어레이; 및
상기 메모리 어레이에 연결되고, 상기 메모리 어레이의 동작을 제어하기 위한 메모리 컨트롤러 ― 상기 메모리 컨트롤러는 상기 복수의 메모리 셀들의 피로(fatigue) 조건들에 대하여 모니터하고, 피로 조건을 나타내는 제1 메모리 셀로부터 제2 메모리 셀로 데이터를 이동시킴으로써 상기 메모리 셀들을 리프레시하도록 구성됨 ―
를 포함하는 메모리 장치. - 제15항에 있어서, 아날로그 전압으로서 저장된 상기 데이터를 상기 아날로그 전압의 디지털 표현으로 변환하는 판독/기입 채널을 더 포함하는 메모리 장치.
- 제16항에 있어서, 상기 판독/기입 채널은 상기 아날로그 전압의 상기 디지털 표현을 상기 아날로그 전압으로 변환하는 디지털-아날로그 변환기를 더 포함하는 메모리 장치.
- 제15항에 있어서, 상기 메모리 컨트롤러는 상기 제2 메모리 셀을 프로그램하기 전에 상기 데이터에 대해 에러 정정을 수행하도록 더 구성된 메모리 장치.
- 솔리드 스테이트 대용량 저장 시스템(solid state bulk storage system)으로서,
디지털 비트 패턴들을 나타내는 아날로그 전압들을 저장하도록 구성된 복수의 메모리 셀들을 포함하는 메모리 장치; 및
상기 메모리 장치에 연결되고, 상기 메모리 장치의 동작을 제어하기 위한 컨트롤러 ― 상기 컨트롤러는 상기 메모리 셀들의 피로 조건들을 모니터하고, 적어도 하나의 피로 조건을 나타내는 메모리 셀을 포함하는 제1 메모리 블록으로부터 제2 메모리 블록으로 데이터를 전송하도록 구성됨 ―; 및
상기 컨트롤러를 상기 메모리 장치에 연결하고, 상기 아날로그 전압들의 상기 디지털 비트 패턴들로의 아날로그-디지털 변환 및 상기 디지털 비트 패턴들의 상기 아날로그 전압들로의 디지털-아날로그 변환을 제공하는 판독/기입 채널
을 포함하는 솔리드 스테이트 대용량 저장 시스템. - 제19항에 있어서, 상기 메모리 장치는 NAND 플래시 메모리 장치인 솔리드 스테이트 대용량 저장 시스템.
- 제19항에 있어서, 상기 아날로그 전압들은 복수의 비트들을 포함하는 디지털 비트 패턴들을 나타내는 솔리드 스테이트 대용량 저장 시스템.
- 제19항에 있어서, 상기 컨트롤러는 상기 제1 메모리 블록에 행해지는 메모리 액세스들을 상기 제2 메모리 블록으로 전송하도록 더 구성된 솔리드 스테이트 대용량 저장 시스템.
- 제19항에 있어서, 상기 컨트롤러는 상기 제1 메모리 블록이 수리 가능한지를 결정하고 만약 그것이 수리 가능하다면 상기 제1 메모리 블록에 대해 교정 동작을 수행하도록 더 구성된 솔리드 스테이트 대용량 저장 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/879,877 US8060798B2 (en) | 2007-07-19 | 2007-07-19 | Refresh of non-volatile memory cells based on fatigue conditions |
US11/879,877 | 2007-07-19 | ||
PCT/US2008/069941 WO2009012204A1 (en) | 2007-07-19 | 2008-07-14 | Refresh of non-volatile memory cells based on fatigue conditions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100043244A true KR20100043244A (ko) | 2010-04-28 |
KR101136273B1 KR101136273B1 (ko) | 2012-04-19 |
Family
ID=40260014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107003561A KR101136273B1 (ko) | 2007-07-19 | 2008-07-14 | 피로 조건들에 기초한 비휘발성 메모리 셀들의 리프레시 |
Country Status (7)
Country | Link |
---|---|
US (3) | US8060798B2 (ko) |
EP (1) | EP2171722B1 (ko) |
JP (1) | JP5483202B2 (ko) |
KR (1) | KR101136273B1 (ko) |
CN (1) | CN101755307B (ko) |
TW (1) | TWI479494B (ko) |
WO (1) | WO2009012204A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10850503B2 (en) | 2018-05-21 | 2020-12-01 | Woosim System Inc. | Print head driving apparatus and printing apparatus having the same |
Families Citing this family (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770079B2 (en) | 2007-08-22 | 2010-08-03 | Micron Technology Inc. | Error scanning in flash memory |
US8527819B2 (en) * | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
JP4489127B2 (ja) * | 2008-02-29 | 2010-06-23 | 株式会社東芝 | 半導体記憶装置 |
US20100138588A1 (en) * | 2008-12-02 | 2010-06-03 | Silicon Storage Technology, Inc. | Memory controller and a method of operating an electrically alterable non-volatile memory device |
US8161355B2 (en) * | 2009-02-11 | 2012-04-17 | Mosys, Inc. | Automatic refresh for improving data retention and endurance characteristics of an embedded non-volatile memory in a standard CMOS logic process |
CN102834870B (zh) | 2009-12-02 | 2016-03-30 | 美光科技公司 | 用于非易失性存储器的刷新架构及算法 |
US8356137B2 (en) * | 2010-02-26 | 2013-01-15 | Apple Inc. | Data storage scheme for non-volatile memories based on data priority |
WO2011133139A1 (en) * | 2010-04-19 | 2011-10-27 | Hewlett-Packard Development Company, L.P. | Refreshing memristive systems |
US8607105B1 (en) * | 2010-04-19 | 2013-12-10 | Altera Corporation | Memory test circuit and memory test techniques |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US8756474B2 (en) * | 2011-03-21 | 2014-06-17 | Denso International America, Inc. | Method for initiating a refresh operation in a solid-state nonvolatile memory device |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US8874994B2 (en) * | 2011-07-22 | 2014-10-28 | Sandisk Technologies Inc. | Systems and methods of storing data |
US9176800B2 (en) | 2011-08-31 | 2015-11-03 | Micron Technology, Inc. | Memory refresh methods and apparatuses |
US8990644B2 (en) * | 2011-12-22 | 2015-03-24 | Micron Technology, Inc. | Apparatus and methods of programming memory cells using adjustable charge state level(s) |
US9361201B2 (en) | 2012-08-07 | 2016-06-07 | Kabushiki Kaisha Toshiba | Memory system and memory controller |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US9627085B2 (en) | 2012-11-29 | 2017-04-18 | Silicon Motion Inc. | Refresh method for flash memory and related memory controller thereof |
US9063879B2 (en) | 2012-12-13 | 2015-06-23 | Sandisk Technologies Inc. | Inspection of non-volatile memory for disturb effects |
EP2951832A4 (en) * | 2013-01-31 | 2017-03-01 | Hewlett-Packard Enterprise Development LP | Ram refresh rate |
US9367391B2 (en) | 2013-03-15 | 2016-06-14 | Micron Technology, Inc. | Error correction operations in a memory device |
KR101653293B1 (ko) * | 2013-08-15 | 2016-09-01 | 실리콘 모션 인코포레이티드 | 플래시 메모리의 재생 방법 및 이에 관한 메모리 컨트롤러 |
US9342401B2 (en) | 2013-09-16 | 2016-05-17 | Sandisk Technologies Inc. | Selective in-situ retouching of data in nonvolatile memory |
US9785499B2 (en) | 2014-02-12 | 2017-10-10 | Seagate Technology Llc | Hot-read data aggregation and code selection |
WO2016018281A1 (en) * | 2014-07-30 | 2016-02-04 | Hewlett-Packard Development Company, L.P. | Current behavior of elements |
US9971647B2 (en) * | 2014-07-31 | 2018-05-15 | Winbond Electronics Corporation | Apparatus and method for programming ECC-enabled NAND flash memory |
TWI587302B (zh) * | 2014-12-09 | 2017-06-11 | 華邦電子股份有限公司 | 記憶體編程方法以及記憶體裝置 |
KR102277521B1 (ko) | 2015-01-23 | 2021-07-16 | 삼성전자주식회사 | 저장 장치 및 그것의 리드 리클레임 및 읽기 방법 |
US9852795B2 (en) | 2015-09-24 | 2017-12-26 | Samsung Electronics Co., Ltd. | Methods of operating nonvolatile memory devices, and memory systems including nonvolatile memory devices |
TWI594248B (zh) * | 2015-12-30 | 2017-08-01 | 華邦電子股份有限公司 | 記憶體裝置的刷新方法以及可調整刷新操作頻率的記憶體裝置 |
US11481126B2 (en) * | 2016-05-24 | 2022-10-25 | Micron Technology, Inc. | Memory device error based adaptive refresh rate systems and methods |
KR20170143084A (ko) | 2016-06-17 | 2017-12-29 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
JP6674361B2 (ja) | 2016-09-29 | 2020-04-01 | キオクシア株式会社 | メモリシステム |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US9793912B1 (en) * | 2016-12-27 | 2017-10-17 | Western Digital Technologies, Inc. | Analog-to-digital conversion circuitry with real-time adjusted gain and resolution |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11086790B2 (en) | 2017-08-25 | 2021-08-10 | Micron Technology, Inc. | Methods of memory address verification and memory devices employing the same |
US10261914B2 (en) * | 2017-08-25 | 2019-04-16 | Micron Technology, Inc. | Methods of memory address verification and memory devices employing the same |
KR20190038049A (ko) * | 2017-09-29 | 2019-04-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
FR3077232B1 (fr) * | 2018-02-01 | 2019-12-27 | Continental Automotive France | Sauvegarde du contexte d’un module electronique d’un systeme de surveillance de pression des pneumatiques pour vehicule automobile |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
KR102483922B1 (ko) * | 2018-08-07 | 2023-01-02 | 삼성전자 주식회사 | 저항성 메모리 장치의 열화 감지 방법 및 시스템 |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
CN109491820A (zh) * | 2018-11-06 | 2019-03-19 | 湖南国科微电子股份有限公司 | 一种固态硬盘读错误处理方法 |
KR102649315B1 (ko) * | 2018-12-03 | 2024-03-20 | 삼성전자주식회사 | 휘발성 메모리 장치를 포함하는 메모리 모듈 및 이를 포함하는 메모리 시스템 |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
JP7353889B2 (ja) * | 2019-09-19 | 2023-10-02 | キオクシア株式会社 | メモリシステムおよび方法 |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
DE102020133713A1 (de) * | 2020-02-27 | 2021-09-02 | Taiwan Semiconductor Manufacturing Co., Ltd. | Speicheraktualisierung |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5128944A (en) * | 1989-05-26 | 1992-07-07 | Texas Instruments Incorporated | Apparatus and method for providing notification of bit-cell failure in a redundant-bit-cell memory |
JP2730375B2 (ja) * | 1992-01-31 | 1998-03-25 | 日本電気株式会社 | 半導体メモリ |
US5365486A (en) * | 1992-12-16 | 1994-11-15 | Texas Instruments Incorporated | Method and circuitry for refreshing a flash electrically erasable, programmable read only memory |
US5883903A (en) * | 1993-09-20 | 1999-03-16 | Fujitsu Limited | Semiconductor memory of XN type having parity corresponding to n×m bits |
US5511020A (en) * | 1993-11-23 | 1996-04-23 | Monolithic System Technology, Inc. | Pseudo-nonvolatile memory incorporating data refresh operation |
US5539690A (en) * | 1994-06-02 | 1996-07-23 | Intel Corporation | Write verify schemes for flash memory with multilevel cells |
US5907700A (en) * | 1994-10-24 | 1999-05-25 | Intel Corporation | Controlling flash memory program and erase pulses |
FR2728380A1 (fr) * | 1994-12-20 | 1996-06-21 | Sgs Thomson Microelectronics | Procede d'ecriture de donnees dans une memoire et memoire electriquement programmable correspondante |
JP3176019B2 (ja) * | 1995-04-05 | 2001-06-11 | 株式会社東芝 | 不揮発性半導体記憶部を含む記憶システム |
US5621687A (en) * | 1995-05-31 | 1997-04-15 | Intel Corporation | Programmable erasure and programming time for a flash memory |
US5701266A (en) * | 1995-12-14 | 1997-12-23 | Intel Corporation | Programming flash memory using distributed learning methods |
US5729489A (en) * | 1995-12-14 | 1998-03-17 | Intel Corporation | Programming flash memory using predictive learning methods |
US5737265A (en) * | 1995-12-14 | 1998-04-07 | Intel Corporation | Programming flash memory using data stream analysis |
JPH09244961A (ja) * | 1996-03-08 | 1997-09-19 | Mitsubishi Electric Corp | フラッシュata−pcカード |
JP2833574B2 (ja) * | 1996-03-28 | 1998-12-09 | 日本電気株式会社 | 不揮発性半導体記憶装置 |
US5815439A (en) * | 1996-04-30 | 1998-09-29 | Agate Semiconductor, Inc. | Stabilization circuits and techniques for storage and retrieval of single or multiple digital bits per memory cell |
US5715193A (en) * | 1996-05-23 | 1998-02-03 | Micron Quantum Devices, Inc. | Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks |
JPH09330598A (ja) * | 1996-06-10 | 1997-12-22 | Mitsubishi Electric Corp | 記憶装置及びその特性劣化状態判定方法 |
JP3450625B2 (ja) * | 1997-02-10 | 2003-09-29 | 東芝マイクロエレクトロニクス株式会社 | 不揮発性半導体記憶装置とその動作方法 |
TW380255B (en) * | 1997-02-26 | 2000-01-21 | Toshiba Corp | Semiconductor memory |
JP3565687B2 (ja) * | 1997-08-06 | 2004-09-15 | 沖電気工業株式会社 | 半導体記憶装置およびその制御方法 |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US5909449A (en) * | 1997-09-08 | 1999-06-01 | Invox Technology | Multibit-per-cell non-volatile memory with error detection and correction |
EP0913832B1 (en) * | 1997-11-03 | 2003-07-23 | STMicroelectronics S.r.l. | Method for multilevel programming of a nonvolatile memory, and a multilevel nonvolatile memory |
KR100297986B1 (ko) * | 1998-03-13 | 2001-10-25 | 김영환 | 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법 |
FR2782425B1 (fr) | 1998-07-31 | 2000-10-13 | France Telecom | Procede et dispositif de codage correcteur d'erreurs et procede et dispositif de decodage correspondant |
JP2000173277A (ja) * | 1998-12-09 | 2000-06-23 | Hitachi Ltd | 不揮発性半導体記憶装置およびそのリフレッシュ方法 |
US6108250A (en) * | 1999-04-15 | 2000-08-22 | Alliance Semiconductor Corporation | Fast redundancy scheme for high density, high speed memories |
JP3937214B2 (ja) * | 1999-09-17 | 2007-06-27 | 株式会社ルネサステクノロジ | エラー訂正回数を記録する記憶装置 |
JP3975245B2 (ja) * | 1999-12-16 | 2007-09-12 | 株式会社ルネサステクノロジ | 記録再生装置および半導体メモリ |
US6570785B1 (en) * | 2000-10-31 | 2003-05-27 | Sandisk Corporation | Method of reducing disturbs in non-volatile memory |
JP2002230984A (ja) * | 2001-02-05 | 2002-08-16 | Fujitsu Ltd | 不揮発性半導体記憶装置 |
JP4059472B2 (ja) * | 2001-08-09 | 2008-03-12 | 株式会社ルネサステクノロジ | メモリカード及びメモリコントローラ |
US6895464B2 (en) * | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
JP4580621B2 (ja) * | 2003-03-17 | 2010-11-17 | ソニー株式会社 | 半導体メモリ |
US7149950B2 (en) | 2003-09-12 | 2006-12-12 | Hewlett-Packard Development Company, L.P. | Assisted memory device for reading and writing single and multiple units of data |
US7012835B2 (en) | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7350044B2 (en) * | 2004-01-30 | 2008-03-25 | Micron Technology, Inc. | Data move method and apparatus |
US7325090B2 (en) * | 2004-04-29 | 2008-01-29 | Sandisk Il Ltd. | Refreshing data stored in a flash memory |
FR2874732A1 (fr) * | 2004-08-31 | 2006-03-03 | St Microelectronics Sa | Procede de programmation de cellules memoire incluant une detection des degradations de transconductance |
WO2006043225A1 (en) * | 2004-10-21 | 2006-04-27 | Koninklijke Philips Electronics N.V. | Memory device and method providing an average threshold based refresh mechanism |
US7441067B2 (en) * | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US7283395B2 (en) * | 2005-06-24 | 2007-10-16 | Infineon Technologies Flash Gmbh & Co. Kg | Memory device and method for operating the memory device |
US7502921B2 (en) * | 2005-08-02 | 2009-03-10 | Sandisk Corporation | Situation sensitive memory performance |
US7653778B2 (en) * | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7904788B2 (en) * | 2006-11-03 | 2011-03-08 | Sandisk Corporation | Methods of varying read threshold voltage in nonvolatile memory |
US7743203B2 (en) * | 2007-05-11 | 2010-06-22 | Spansion Llc | Managing flash memory based upon usage history |
-
2007
- 2007-07-19 US US11/879,877 patent/US8060798B2/en active Active
-
2008
- 2008-07-14 CN CN2008800252522A patent/CN101755307B/zh active Active
- 2008-07-14 JP JP2010517094A patent/JP5483202B2/ja active Active
- 2008-07-14 EP EP08781784A patent/EP2171722B1/en active Active
- 2008-07-14 WO PCT/US2008/069941 patent/WO2009012204A1/en active Application Filing
- 2008-07-14 KR KR1020107003561A patent/KR101136273B1/ko active IP Right Grant
- 2008-07-17 TW TW097127183A patent/TWI479494B/zh active
-
2011
- 2011-10-13 US US13/272,407 patent/US8707112B2/en active Active
-
2013
- 2013-10-04 US US14/045,830 patent/US9158612B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10850503B2 (en) | 2018-05-21 | 2020-12-01 | Woosim System Inc. | Print head driving apparatus and printing apparatus having the same |
Also Published As
Publication number | Publication date |
---|---|
EP2171722B1 (en) | 2012-08-22 |
US9158612B2 (en) | 2015-10-13 |
US8707112B2 (en) | 2014-04-22 |
EP2171722A1 (en) | 2010-04-07 |
JP2010533929A (ja) | 2010-10-28 |
US8060798B2 (en) | 2011-11-15 |
JP5483202B2 (ja) | 2014-05-07 |
CN101755307B (zh) | 2013-11-06 |
EP2171722A4 (en) | 2010-08-04 |
WO2009012204A1 (en) | 2009-01-22 |
US20090024904A1 (en) | 2009-01-22 |
US20120030529A1 (en) | 2012-02-02 |
TWI479494B (zh) | 2015-04-01 |
CN101755307A (zh) | 2010-06-23 |
KR101136273B1 (ko) | 2012-04-19 |
US20140040683A1 (en) | 2014-02-06 |
TW200912938A (en) | 2009-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101136273B1 (ko) | 피로 조건들에 기초한 비휘발성 메모리 셀들의 리프레시 | |
US8797796B2 (en) | Cell operation monitoring | |
US8719665B2 (en) | Programming error correction code into a solid state memory device with varying bits per cell | |
US8687427B2 (en) | Programming rate identification and control in a solid state memory | |
US8023332B2 (en) | Cell deterioration warning apparatus and method | |
KR20100034045A (ko) | 솔리드 스테이트 메모리 장치 내의 메모리 셀들의 아날로그 센싱 | |
US7876622B2 (en) | Read method for MLC |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160318 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170322 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180316 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190325 Year of fee payment: 8 |