KR102413476B1 - 카운터 및 ecc 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법 - Google Patents

카운터 및 ecc 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법 Download PDF

Info

Publication number
KR102413476B1
KR102413476B1 KR1020200185812A KR20200185812A KR102413476B1 KR 102413476 B1 KR102413476 B1 KR 102413476B1 KR 1020200185812 A KR1020200185812 A KR 1020200185812A KR 20200185812 A KR20200185812 A KR 20200185812A KR 102413476 B1 KR102413476 B1 KR 102413476B1
Authority
KR
South Korea
Prior art keywords
memory cells
user data
memory
logical value
logical
Prior art date
Application number
KR1020200185812A
Other languages
English (en)
Other versions
KR20210112235A (ko
Inventor
리카르도 무제토
페르디난도 베데쉬
움베르토 디 빈센쪼
Original Assignee
마이크론 테크놀로지, 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Publication of KR20210112235A publication Critical patent/KR20210112235A/ko
Application granted granted Critical
Publication of KR102413476B1 publication Critical patent/KR102413476B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/225Auxiliary circuits
    • G11C11/2275Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • G11C11/221Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements using ferroelectric capacitors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • G11C2013/0066Verify correct writing whilst writing is in progress, e.g. by detecting onset or cessation of current flow in cell and using the detector output to terminate writing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0076Write operation performed depending on read result
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • G11C2013/0092Write characterized by the shape, e.g. form, length, amplitude of the write pulse
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C2029/1806Address conversion or mapping, i.e. logical to physical address
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Semiconductor Memories (AREA)

Abstract

본 발명은 메모리 셀들을 동작시키는 방법에 관한 것으로, 메모리 셀들로부터 이전 사용자 데이터를 판독하는 단계; 새로운 사용자를 기록하고 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들에 병합하는 단계; 마스크 레지스터 정보를 생성하는 단계로서, 상기 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 메모리 셀들에 저장된 이전 사용자 데이터의 비트들을 나타내는, 상기 생성하는 단계; 상기 마스크 레지스터 정보를 사용하여 각각 기록되는 제1 논리 값 및 제2 논리 값의 수들을 카운팅하는 단계; 제1 논리 값 및 상기 제2 논리 값의 수들을 각각 제1 카운터 및 제2 카운터로 저장하는 단계; 및 마스크 레지스터 정보에 따라 메모리 셀들에 프로그래밍 펄스를 인가하는 단계를 포함한다.

Description

카운터 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법{ON-THE-FLY PROGRAMMING AND VERIFYING METHOD FOR MEMORY CELLS BASED ON COUNTERS AND ECC FEEDBACK}
상호 참조들
특허를 위한 본 출원은 Muzzetto 등에 의해 2020년 10월 20일자로 출원된 "ON-THE-FLY PROGRAMMING AND VERIFYING METHOD FOR MEMORY CELLS BASED ON COUNTERS AND ECC FEEDBACK"이라는 명칭의 미국 특허 출원 번호 제17/075,502호, 및 Muzzetto 등에 의해 2020년 3월 3일자로 출원된 "ON-THE-FLY PROGRAMMING AND VERIFYING METHOD FOR MEMORY CELLS BASED ON COUNTERS AND ECC FEEDBACK"이라는 명칭의 국제 특허 출원 번호 제PCT/IB2020/000080호에 대한 우선권을 주장하며, 그 각각은 그 양수인에게 양도되며, 그 각각은 그 전체가 본원에 참조로서 명백하게 통합된다.
기술분야
다음은 일반적으로 메모리 어레이를 동작시키는 것에 관한 것으로, 보다 구체적으로는 카운터 및 ECC 피드백에 기반한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법에 관한 것이다.
메모리 디바이스들은 컴퓨터, 무선 통신 장치, 카메라, 디지털 디스플레이 등과 같은 다양한 전자 장치들에서 정보를 저장하는데 폭넓게 사용된다. 정보는 메모리 디바이스의 상이한 상태들을 프로그래밍함으로써 저장된다. 예를 들어, 이진 장치들은 두 가지 상태들을 가지며, 종종 논리 "1" 또는 논리 "0"으로 나타낸다. 다른 시스템들에서는, 둘 이상의 상태들이 저장될 수 있다. 저장된 정보에 액세스 하기 위해, 전자 장치의 컴포넌트는, 메모리 디바이스에 저장된 상태를 판독 또는 감지할 수 있다. 정보를 저장하기 위해, 전자 장치의 컴포넌트는 메모리 디바이스에 상태를 기록 또는 프로그래밍할 수 있다.
자기 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 동적 RAM(DRAM), 동기식 동적 RAM(SDRAM), 강유전성 RAM(FeRAM), 자기 RAM(MRAM), 저항성 RAM(RRAM), 플래시 메모리, 상 변화 메모리(PCM) 등을 포함하여 다양한 유형의 메모리 디바이스들이 존재한다. 메모리 디바이스들은 휘발성 또는 비휘발성일 수 있다. 비휘발성 메모리 셀들은 외부 전원이 없는 경우에도 저장된 논리 상태를 장기간 유지할 수 있다. 휘발성 메모리 셀들은 이들이 외부 전원에 의해 주기적으로 새로 고침(refreshed)되지 않는 한 시간이 지남에 따라 저장된 상태를 상실할 수 있다.
메모리 장치들을 개선하는 것에는, 다른 메트릭들 중에서, 일반적으로 메모리 셀 밀도 증가, 판독/기록 속도 증가, 신뢰성 증가, 데이터 보존성 증가, 전력 소모 감소 또는 제조 비용 절감을 포함할 수 있다. 메모리 셀들이 가변적인 전기적 특성들을 나타낼 때, 특히 메모리 디바이스들이 3차원(3D) 메모리 셀 어레이를 가질 때 메모리 셀 성능 및 신뢰성을 증가시키기 위해 보다 강력한 판독 기술이 요구될 수 있다.
도 1은 본 개시의 예들에 따라 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이(on-the-fly) 프로그래밍 및 검증 방법을 지원하는 3차원(3D) 메모리 셀 어레이를 갖는 메모리 디바이스 다이어그램의 예를 예시한다.
도 2는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 3D 메모리 어레이의 예를 예시한다.
도 3a 및 3b는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 히스테리시스 곡선들의 예들을 예시한다.
도 4는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 메모리 어레이의 코드워드의 예를 예시한다.
도 5는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 장치의 블록도를 예시한다.
도 6은 개시된 방법에 따라 동작하기 위해 본 개시의 메모리 디바이스를 준비하는 프로그래밍 단계의 블록도를 예시한다.
도 7은 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법의 예를 예시한다.
도 8은 전통적인 방법에 비해 본 발명의 방법을 채택하는 프로그래밍 단계의 더 낮은 전력 소모를 나타내는 몇몇 곡선들을 예시한다.
도 9는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법의 프로그래밍 단계의 예를 예시한다.
도 10은 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원할 수 있는 메모리 컨트롤러의 블록도를 예시한다.
도 11은 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원할 수 있는 장치를 포함하는 시스템의 다이어그램을 예시한다.
메모리 디바이스, 예를 들어 자기 선택 메모리(SSM) 교차점 디바이스 또는 강유전성(FeRAM) 비휘발성 메모리 디바이스에서, 어레이의 메모리 셀들의 코드워드에 대응되는 데이터를 프로그래밍하기 위한 액세스 동작 동안, 코드워드 데이터(및 가능한 관련 패리티 비트들)는 메모리 디바이스의 입력 단자들에서 수신된다. 메모리 컨트롤러는 입력 데이터를 분석하고 다른 논리 상태들의 비트 수를 결정하며; 예를 들어, 메모리 컨트롤러는 코드워드에 얼마나 많은 논리 0 및/또는 얼마나 많은 1이 존재하는지를 결정한다. 메모리 컨트롤러는 프로그래밍 전압을 감소시키고, 사이클링을 개선하고, 전력을 감소시키고, 방해를 줄이기 위해 코드워드를 조작하거나 인코딩할 수 있다.
메모리 디바이스는 (예를 들어 공장의 검증 단계 이후) 이미 기록되어 있을 수 있으며, 따라서 셀들은 논리 값 "1" 또는 "0"을 포함한다. 메모리 콘텐트는 어떤 경우에도 판독될 수 있다. 판독 단계 이후에만, 기록이 수행될 수 있다. 코드워드(CW)가 수행될 수 있지만, 새로운 값이 프로그래밍될 수 있는 코드워드는 이미 메모리 셀들에 저장되어 있을 수 있으며, 따라서 셀들은 일련의 "1" 및 "0" 논리 상태들을 포함한다.
코드워드에 이미 저장된 논리 값들과 기록 알고리즘 동안 나중에 사용될 "1" 또는 0의 수를 비교하는 적절한 코드워드(CW) 분석이 수행될 수 있다. 이 분석은 코드워드의 "1" 또는 "0"의 수만 휘발성(또는 비휘발성) 카운터들에 저장한 후에 수행된다. 이를 통해 프로그래밍될 셀들의 수를 줄일 수 있다. 논리 값 "1"이 이미 이 메모리 셀에 저장되는 메모리 셀에 논리 값 "1"이 프로그래밍되어야 하는 경우, 아무것도 할 필요가 없을 수 있으며 해당 셀의 프로그래밍 단계가 생략될 수 있다. 이 동작을 마스킹이라고 한다. 레지스터가 제공될 수 있으며, 모든 프로그래밍되거나 마스킹된 비트들이 레지스터에 저장될 수 있다.
프로그래밍 펄스는 새 코드워드 비트의 동일한 논리 값으로 이미 저장되는 이러한 비트들에서 시프트된다. 나머지 비트들, 즉 논리 값들에서 수정될 비트들의 프로그래밍 단계 동안에도, 상승 프로그래밍 펄스는 비트가 그 논리 값에서 변경되면 중지될 수 있으므로 더 높은 전압 값으로 비트에 스트레스를 주지 않도록 할 수 있다. 이 과정을 구현하기 위해, 적어도 프로그래밍될 코드워드를 포함하는 레지스터 및 이미 프로그래밍된 코드워드를 포함하는 레지스터가 제공될 수 있다. 이들 두 레지스터들 둘 다로부터, 마스크들을 포함하는 새로운 레지스터, 즉 그대로 둘 수 있는 수 있는 비트들이 추출될 수 있다. 제3 레지시터는 기록될 코드워드가 감지 증폭기의 레지스터들에 저장될 수 있기 때문에 필요하지 않거나 사용되지 않을 수도 있다. 어떤 경우든, 제3 레지스터는 임시 레지스터일 것이다. 기록될 코드워드와 이미 저장된 코드워드 사이의 비교는 기록 단계를 구현하기 위해 즉시 사용되는 "온라인" 마스킹 레지스터를 생성할 수 있다.
알려진 솔루션과 비교하면, 이 솔루션의 마스킹 레지스터는, 판독 레지스터가 감지 증폭기들의 출력으로 획득될 수 있는 반면 기록 레지스터는 기록될 코드워드를 포함하므로, 다양한 이점을 제공할 수 있다.
이 시점에서, 램핑된 셀 프로그래밍 바이어스가 메모리 셀들에 인가될 수 있다. 상승 바이어싱 전압을 인가함으로써, 비트별 프로그래밍 단계는 셀이 후속 셀로 전달되는 특정 임계 값에 도달하자 마자 중지될 수 있다. 그와 반대로, 단일 프로그래밍 펄스(예를 들어 도 9의 좌측 도면에 도시된 것과 같은)가 인가될 수 있다면, 더 낮은 임계값을 갖는 셀들이 훨씬 더 많은 스트레스를 받게 될 것이다. 프로그래밍 단계는 이중 단계 프로그램+검증을 의미한다. 따라서, 각 셀은 제대로 프로그래밍되지 않은 경우, 원하는 논리 값으로 전환하는 순간까지 추가 프로그래밍 펄스가 인가될 수 있도록 프로그래밍되고 감지될 수 있다.
전체 프로그램+검증 알고리즘이 여전히 메모리 셀의 스위칭에 대해 부정적인 보고서를 제공하는 매우 부정적인 상황에서, 검증이 필요하지 않지만 해당 셀들에서 원하는 논리 값을 강제하려 한다는 의미에서 최종 일련의 블라인드 펄스들이 예측될 수 있다. 프로그래밍 단계 동안 셀들이 마스킹될 수 있으므로, 기록 단계 동안 셀에 인가될 수 있는 최대 전압 값이 있을 것이다. 프로그래밍 단계가 완료되었지만 전환하지 않으려는 지연(lazy) 셀들이 여전히 일부(또는 하나만) 있는 경우, 실질적으로 두 가지 옵션인, 오류를 플래그하는 것 또는 전압 값이 최대 표준 전압보다 더 높은 일부 추가 펄스들을 인가하는 것이 있을 수 있다. 그러나, 최종 추가 펄스들은 검증되지 않을 수 있다. 모든 검증 사이클은 완료하는 데 몇 밀리초가 걸릴 수 있다. 그러나, 이 가능한 단점은 매우 드물게 발생할 수 있으며 최대 1 ~ 2 비트들을 포함할 수 있다. 일반 비트들의 약 99 %까지, 비교적 낮은 바이어싱 전압이 인가되었다.
코드워드에 포함된 "1들" 또는 "0들"의 수에 따라, 논리 값 "1" 또는 논리 값 "0"을 갖는 셀들을 마스킹하는 것이 더 편리할 수 있을 것이라는 점에 유의해야 한다. 따라서, "1들"의 수를 포함하는 CNT1과 "0들"의 수를 포함하는 CNT0인, 2개의 카운터들이 사용될 수 있다. 다른 비트들의 수로부터 논리 값을 갖는 비트들의 수를 획득하는 것을 방해하는 비트들이 마스킹되었으므로, 두 개의 다른 값들이 유지될 수 있다. 총 비트들의 수는 "0" 비트들 + "1" 비트들 + 마스킹된 비트들로 주어질 수 있다. 3개의 변수들이 존재하므로, 비트들의 총 수를 얻기 위해 적어도 두 개의 레코드들이 제공될 수 있다.
그 후, 후속 동작들이 수행될 수 있다. 예를 들어, 논리 값 "0"이 프로그래밍된 후 논리 값 "1"이 프로그래밍될 수 있으며, 이는 논리 값 "0"의 수가 더 클 경우 사용될 수 있는 기록 시퀀스(WS1)이다. 대안으로, 기록 시퀀스(WS2)가 수행될 수 있으며, 논리 값 "1"의 수가 더 큰 경우, 논리 값 "1"이 프로그래밍된 다음 논리 값 "0"이 프로그래밍될 수 있다. 세 번째 종류의 기록 시퀀스(WS3)는 프로그래밍될 타일당 하나의 비트만 있는 경우에만 적용될 수 있으며, 이는 병렬 프로그래밍이 적용될 수 있는 특별한 경우이다. 타일에서, 비트는 동일한 워드 라인을 공유할 수 있지만, 논리 값 "0"에 대한 펄스와 논리 값 "1"에 대한 펄스에 대해 반대 극성들이 제공될 수 있다. 따라서, 타일당 (및 다른 타일들에서) 비트가 있는 경우, 논리 값 "1"이 기록될 타일에 한 극성이 적용될 수 있는 반면 0이 기록될 타일에는 반대 극성이 적용될 수 있으므로, 논리 값 "0" 및 "1"은 동시에 프로그래밍될 수 있다. 그와는 반대로, 타일당 더 많은 비트들이 있는 경우, 즉 더 많은 비트들이 동일한 워드 라인을 공유하는 경우, 논리 값들 "0" 및 "1"은 워드 라인이 한 번에 단일 전압 값을 가질 수 있으므로 병렬로 프로그래밍될 수 없다.
다시 말해, 논리 값 "0"은 특정 극성으로 프로그래밍될 수 있으며, 논리 값 "0"의 프로그래밍 단계의 끝에서, 논리 값 "1"은 반대 극성으로 프로그래밍될 수 있으며, 그 반대의 경우도 마찬가지이다. 대안으로서, 논리 값들 "0"과 "1"이 서로 다른 타일들에서 물리적으로 분리된 비트들에 있는 경우, 서로 다른 극성들로 병렬로 프로그래밍될 수도 있다.
그러나, 프로그래밍 단계 동안 전압들을 너무 높게 푸시하는 셀들을 멈추게 하는 위험이 있을 수 있다. 이 경우에, 검증 단계는 셀들에 스트레스를 주지 않도록 프로그래밍 단계 직후에 수행될 수 있다. 이는 온 더 플라이 프로그래밍 및 검증이라고 할 수 있으며, 이는 온라인을 의미하기도 한다. 게다가, 제안된 솔루션의 기록 시퀀스는 ECC 피드백과 카운터들에 기초한다는 점에 유의해야 한다. ECC는 움직일 수 없는 셀들에 너무 많은 스트레스를 주는 문제를 해결하는 데 사용될 수 있다. ECC로부터, 하나의 단일 비트가 아닌 한 현재 프로그래밍 단계라는 정보를 얻은 경우, 코드워드는 적절한 전압 레벨로 프로그래밍되었으며 하나의 마지막 비트만이 추가 프로그래밍 펄스의 영향을 받을 수 있다. 어떤 경우든, 출력 코드워드는 복구 가능할 수 있을 것이다.
일부 예들에서, ECC 피드백과 함께 카운터 기반 기록 알고리즘의 사용은 작성된 프로그램 패턴을 검증하도록 하는 기회를 가능하게 하며, 이는 시간과 전력 소모를 절감하고 신뢰성을 높일 수 있다. 일부 예들에서, 검증을 수행하는 데 추가 시간이 사용되지 않으며, 평균 전압 프로그램이 줄어들 수 있고, 방해가 적고 사이클들이 많을수록 향상된 신뢰성을 제공할 수 있다.
상기에 소개된 개시의 특징들은 메모리 장치의 메모리 어레이의 맥락에서 하기에 더 설명된다. 그런 다음, 일부 예들(예를 들어, PCM 셀들 또는 3차원 교차점(예를 들어, 3D X점) 메모리 셀들, 칼코게나이드 기반 메모리 셀들, 등)에 따라 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법의 다양한 특징들을 설명하기 위한 특정 비제한적 예들이 설명된다. 본 개시의 이들 및 다른 특징들은 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법과 관련된 장치 다이어그램들, 시스템 다이어그램들 및 흐름도들을 참조하여 추가로 예시되고 설명된다. 그러나, 당업자들은 다른 대안들 및 다양한 변형들이 고려되고 본 개시의 범위 내에서 포함될 수 있음을 이해할 것이다.
도 1은 본 개시의 예들에 따른 예시적인 메모리 디바이스(100)를 예시한다. 메모리 디바이스(100)는 또한 전자 메모리 장치로도 불릴 수 있다. 도 1은 메모리 디바이스(100)의 다양한 구성요소들 및 특징들의 예시적인 표현이다. 이와 같이, 메모리 디바이스(100)의 구성요소들 및 특징들은 기능적 상호 관계들을 예시하도록 도시되며, 메모리 디바이스(100) 내에서 이들의 실제 물리적 위치들을 나타내지 않을 수 있음을 이해해야 한다. 도 1의 예시적인 예에서, 메모리 디바이스(100)는 3D 메모리 어레이(102)를 포함한다. 3D 메모리 어레이(102)는 상이한 상태들을 저장하도록 프로그래밍할 수 있는 메모리 셀들(105)을 포함한다. 일부 예들에서, 각 메모리 셀(105)은 논리 0 및 논리 1로 표시되는, 두 상태들을 저장하도록 프로그래밍될 수 있다. 일부 예들에서, 메모리 셀(105)은 둘 이상의 논리 상태들을 저장하도록 구성될 수 있다. 메모리 셀(105)은, 일부 예들에서, PCM 셀(예를 들어, 3D X점 메모리 셀), 칼코게나이드 기반 메모리 셀, 또는 다른 유형의 메모리 셀을 포함할 수 있다. 도 1에 포함된 일부 요소들은 숫자 표시가 부착되어 있지만, 도시된 특징들의 가시성과 명확성을 높이기 위한 일환으로, 다른 대응되는 요소들은 이들이 동일하거나 유사한 것으로 이해될 수 있더라도 숫자 표시가 부착되어 있지 않다.
3D 메모리 어레이(102)는 서로 인접하여 형성된(예를 들어, 서로 위 또는 옆에) 둘 이상의 2차원(2D) 메모리 어레이들을 포함할 수 있다. 이는 2D 어레이들과 비교하여 단일 다이 또는 기판에 배치되거나 생성될 수 있는 다수의 메모리 셀들(105)을 증가시킬 수 있으며, 이는 결국 생산 비용을 감소시키거나, 메모리 셀의 성능을 증가시키거나, 또는 둘 다 할 수 있다. 도 1에 도시된 예에 기초하여, 3D 메모리 어레이(102)는 두 가지 레벨들의 메모리 셀들(105)을 포함한다; 그러나, 레벨들의 수는 둘로 제한되지 않을 수 있다. 각 레벨은 메모리 셀들(105)이 각 레벨에 걸쳐 서로 정렬(정확하게는, 오버랩되거나 가까이)될 수 있도록 정렬되거나 위치될 수 있어, 메모리 셀 스택(145)을 형성한다. 일부 경우에, 메모리 셀 스택(145)는 다른 셀 위에 놓인 PCM 셀(예를 들어, 3D X점 메모리 셀)을 포함할 수 있다.
일부 예들에서, 메모리 셀들(105)의 각 행(row)은 액세스 라인(110)에 연결되고, 메모리 셀들(105)의 각 열(column)은 비트 라인(115)에 연결된다. 액세스 라인들(110) 및 비트 라인들(115)은 실질적으로 서로 수직일 수 있으며, 메모리 셀 어레이를 생성할 수 있다. 도 1에 도시된 바와 같이, 메모리 셀 스택(145)에서의 두 메모리 셀들(105)은 비트 라인(115)과 같은 공통 도전성 라인을 공유할 수 있다. 즉, 비트 라인(115)은 상부 메모리 상위 메모리 셀(105)의 하부 전극 및 하위 메모리 셀(105)의 상부 전극과 전자 통신할 수 있다. 다른 예들에서, 메모리 셀(105)(예를 들어, 상위 메모리 셀, 하위 메모리 셀) 각각은 자신의 비트 라인으로 구성될 수 있다. 이러한 경우, 메모리 셀들은 절연층에 의해 분리될 수 있다. 다른 구성들이 가능할 수 있으며, 예를 들어, 제3 층은 하위 층과 액세스 라인(110)을 공유할 수 있다. 일반적으로, 하나의 메모리 셀(105)은 액세스 라인(110) 및 비트 라인(115)과 같은 두 도전성 라인들의 교차점에 위치될 수 있다. 이 교차점은 메모리 셀의 어드레스로 지칭될 수 있다. 타겟 메모리 셀(105)은 통전된 액세스 라인(110)과 비트 라인(115)의 교차점에 위치된 메모리 셀(105)일 수 있다; 즉, 액세스 라인(110)과 비트 라인(115)은 그 교차점에서 메모리 셀(105)을 판독 또는 기록하기 위해 통전될 수 있다. 동일한 액세스 라인(110) 또는 비트 라인(115)과 전자 통신하는 다른 메모리 셀들(105)은 타겟되지 않은 메모리 셀들(105)로 지칭될 수 있다.
상기에 논의된 바와 같이, 전극들은 메모리 셀(105)와 액세스 라인(110) 또는 비트 라인(115)에 결합될 수 있다. 전극이라는 용어는 전기적 도전체를 지칭할 수 있으며, 일부 경우에는 메모리 셀(105)에 대한 전기 콘택(electrical contact)으로 사용될 수 있다. 전극은 메모리 장치(100)의 요소 또는 컴포넌트 사이에 전도성 경로를 제공하는 트레이스, 와이어, 전도성 라인, 전도성 층 등을 포함할 수 있다. 일부 예들에서, 메모리 셀(105)은 제1 전극과 제2 전극 사이에 위치된 칼코게나이드 합금(chalcogenide alloy)을 포함할 수 있다. 제1 전극의 일측은 액세스 라인(110)에 결합될 수 있으며, 제1 전극의 타측은 칼코게나이드 합금에 결합될 수 있다. 추가로, 제2 전극의 일측은 비트 라인(115)에 결합될 수 있으며, 제2 전극의 타측은 칼코게나이드 합금에 결합될 수 있다. 제1 전극과 제2 전극은 동일한 재료(예를 들어, 카본)이거나 다른 재료일 수 있다. 다른 예들에서, 메모리 셀(105)은 칼코게나이드 합금을 도 2에 도시된 바와 같이 두 부분으로 분리하기 위한 추가 전극을 포함할 수 있다. 칼코게나이드 합금의 제1 부분은 칼코게나이드 합금의 제2 부분과 다른 조성을 가질 수 있다. 일부 예들에서, 칼코게나이드 합금의 제1 부분은 칼코게나이드 합금의 제2 부분과 다른 기능을 가질 수 있다. 추가 전극은 제1 전극 및/도는 제2 전극과 동일한 재료(예를 들어, 카본)이거나 다른 재료일 수 있다.
판독 또는 기록과 같은 동작들은 액세스 라인(110) 및 디지트 라인(115)를 통전시키거나 선택함으로써 메모리 셀들(105)에서 수행될 수 있다. 일부 예들에서, 액세스 라인들(110)은 또한 비트 라인들(110)로 알려져 있을 수 있으며, 비트 라인들(115)은 디지트 라인들(115)로 알려져 있을 수 있다. 워드 라인들과 비트 라인들 또는 그 유사체들에 대한 참조는 이해나 동작의 손실 없이 상호 교환 가능하다. 워드 라인(110) 또는 디지트 라인(115)를 통전시키거나 선택하는 것은 각 라인에 전압을 인가하는 것을 포함할 수 있다. 워드 라인들(110) 및 디지트 라인들(115)은 금속(예를 들어, 구리(Cu), 알루미늄(Al), 금(Au), 텅스텐(W), 티타늄(Ti)), 금속 합금, 카본, 전도성으로 도핑된 반도체 또는 기타 전도성 재료들, 합금, 화합물 등과 같은 전도성 재료들로 만들어질 수 있다.
일부 아키텍처에서, 메모리 셀(105)의 논리 저장 장치(예를 들어, 커패시터, 레지스터)는 선택 컴포넌트에 의해 디지트 라인(115)으로부터 전기적으로 절연될 수 있다. 워드 라인(110)은 선택 컴포넌트에 연결될 수 있으며 선택 컴포넌트를 제어할 수 있다. 예를 들어, 선택 컴포넌트는 트랜지스터일 수 있으며, 워드 라인(110)은 트랜지스터의 게이트에 연결될 수 있다. 워드 라인(110)을 통전시키는 것은 메모리 셀(105)의 논리 저장 장치와 그에 대응되는 디지트 라인(115) 사이에 전기적 연결 또는 폐쇄 회로가 생성된다. 그런 다음 디지트 라인(115)은 메모리 셀(105)을 판독하거나 기록하기 위해 액세스될 수 있다. 메모리 셀(105)을 선택할 시, 결과 신호가 저장된 논리 상태를 결정하는 데 사용될 수 있다. 일부 경우, 제1 논리 상태는 전류가 없거나 무시할 정도로 작은 전류에 대응될 수 있는 반면, 제2 논리 상태는 한정된 양의 전류에 대응될 수 있다. 일부 경우, 메모리 셀(105)은 3D X점 메모리 셀 또는 자기-선택 메모리(SSM) 셀을 포함할 수 있으며, 둘 다 두 개의 단자들을 가지며 별도의 선택 컴포넌트를 사용하지 않을 수 있다. 이와 같이, 3D X점 메모리 셀 또는 SSM 셀의 한 단자는 워드 라인(110)에 전기적으로 연결될 수 있으며, 3D X점 메모리 셀 또는 SSM 셀의 다른 단자는 디지트 라인(115)에 전기적으로 연결될 수 있다.
메모리 셀들(105)에 액세스하는 것은 행 디코더(120)와 열 디코더(130)를 통해 제어될 수 있다. 예를 들어, 행 디코더(120)는 메모리 컨트롤러(140)로부터 행 어드레스를 수신하고 수신된 행 어드레스에 기초하여 적절한 워드 라인(110)을 통전시킬 수 있다. 마찬가지로, 열 디코더(130)는 메모리 컨트롤러(140)로부터 열 어드레스를 수신하고 적절한 디지트 라인(115)을 통전시킬 수 있다. 예를 들어, 3D 메모리 어레이(102)는 WL_B1(또는 WL_T1) 내지 WL_BM(또는 WL_TM)으로 라벨링된 다수의 워드 라인들(110) 및 DL_1 내지 DL_N로 라벨링된 다수의 디지트 라인들(115)을 포함할 수 있으며, 여기서 M과 N은 어레이 크기에 따라 달라진다. 따라서, 워드 라인(110)과 디지트 라인(115)인, 예를 들어 WL_B2과 DL_3를 통전시킴으로써, 그 교차점에 있는 메모리 셀(105)이 액세스될 수 있다.
액세스 시, 메모리 셀(105)은 메모리 셀(105)의 저장된 상태를 결정하기 위해 감지 컴포넌트(125)에 의해 판독되거나 감지될 수 있다. 예를 들어, 전압이 (대응되는 워드 라인(110) 및 비트 라인(115)을 사용하여) 메모리 셀(105)에 인가될 수 있으며, 결과적인 전류의 존재는 인가된 전압과 메모리 셀(105)의 임계 전압에 따라 달라질 수 있다. 일부 경우, 하나 이상의 전압이 인가될 수 있다. 추가로, 인가된 전압들이 전류 흐름을 야기하지 않을 경우, 전류가 감지 컴포넌트(125)에 의해 검출될 때까지 다른 전압들이 인가될 수 있다. 전류 흐름을 야기하는 전압을 평가함으로써, 메모리 셀(105)의 저장된 논리 상태가 결정될 수 있다. 일부 경우, 전압은 전류 흐름이 검출될 때까지(예를 들어, 메모리 셀(105)이 턴 온되거나, 스위치 온되거나, 전류를 전도하거나 활성화될 때까지) 크기가 증가될 수 있다. 다른 경우, 미리 결정된 전압들은 전류가 검출될 때까지 순차적으로 인가될 수 있다. 마찬가지로, 전류가 메모리 셀(105)에 인가될 수 있으며, 전류를 생성하기 위한 전압의 크기는 메모리 셀(105)의 전기 저항 또는 임계 전압에 따라 달라질 수 있다.
감지 컴포넌트(125)는, 래칭(latching)으로 지칭될 수 있는, 신호들의 차이를 검출 및 증폭하기 위해 다양한 트랜지스터들 또는 증폭기들을 포함할 수 있다. 그런 다음, 메모리 셀(105)의 검출된 논리 상태는 출력(135)으로서 열 디코더(130)를 통해 출력될 수 있다. 일부 경우, 감지 컴포넌트(125)는 열 디코더(130) 또는 행 디코더(120)의 일부일 수 있다. 또는, 감지 컴포넌트(125)는 열 디코더(130) 또는 행 디코더(102)에 연결되거나 그와 전자 통신될 수 있다. 도 1은 또한 감지 컴포넌트(125-a)를 배열하는 대안적인 옵션을 (점선 박스로) 도시한다. 당업자는 감지 컴포넌트가 어떠한 기능도 잃지 않으면서 열 디코더 또는 행 디코더와 연관될 수 있음을 이해할 것이다.
메모리 셀(105)은 관련 워드 라인(110)과 디지트 라인(115)을 비슷하게 통전시킴으로써 설정되거나 기록될 수 있으며, 적어도 하나의 논리 값이 메모리 셀(105)에 저장될 수 있다. 열 디코더(130) 또는 행 디코더(120)는 하나 이상의 메모리 셀들(105)에 기록될 데이터, 예를 들어, 입력/출력(135)을 수용할 수 있다.
일부 메모리 아키텍처들에서, 메모리 셀(105)에 액세스하는 것은 저장된 논리 상태를 저하시키거나 파괴할 수 있으며, 메모리 셀(105)에 대한 원래의 논리 상태로 되돌리도록 재기록(re-write) 또는 새로 고침(refresh) 동작들이 수행될 수 있다. DRAM에서, 예를 들어, 커패시터는 감지 동작 동안 부분적으로 또는 완전히 방전될 수 있어, 저장된 논리 상태를 손상시킬 수 있다. 그래서 논리 상태는 감지 동작 후 다시 기록될 수 있다. 추가로, 단일 워드 라인(110)을 통전시키는 것은 로우의 모든 메모리 셀들(105)이 방전될 수 있다; 따라서, 행의 몇몇 또는 모든 메모리 셀들(105)은 재기록될 필요가 있을 수 있다. 그러나, SSM, PCM(예를 들어, 3D X점 메모리), FeRAM, 또는 3D NAND 메모리와 같은 비-휘발성 메모리에서, 메모리 셀(105)에 액세스하는 것은 논리 상태를 파괴하지 않을 수 있으며, 따라서 메모리 셀(105)은 액세스한 후 다시 쓰기를 겪지 않을 수 있다.
메모리 컨트롤러(140)는 다양한 컴포넌트들, 예를 들어 행 디코더(120), 열 디코더(130) 및 감지 컴포넌트(125)를 통해 메모리 셀들(105)의 동작(예를 들어, 판독, 기록, 재기록, 새로 고침, 방전)을 제어할 수 있다. 일부 경우, 행 디코더(120), 열 디코더(120) 및 감지 컴포넌트(125) 중 하나 이상은 메모리 컨트롤러(140)와 같은 장소에 배치될 수 있다. 메모리 컨트롤러(140)는 원하는 워드 라인(110) 및 디지트 라인(115)을 통전시키기 위해 행 및 열 어드레스 신호들을 생성할 수 있다. 메모리 컨트롤러(140)는 또한 메모리 디바이스(110)의 동작 동안 사용된 다양한 전압들 또는 전류들을 생성 및 제어할 수 있다.
메모리 컨트롤러(140)는 입력/출력(135)을 통해 사용자 데이터를 수신할 수 있다. 일부 예들에서, 메모리 컨트롤러(140)는 메모리 셀들로부터 이전 사용자 데이터를 판독하고, 새로운 사용자 데이터를 기록하고, 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들로 병합할 수 있다. 그런 다음, 마스크 레지스터(MR) 정보가 생성될 수 있고, 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 메모리 셀들에 저장된 이전 사용자 데이터의 비트들을 나타낼 수 있다. 일부 예들에서, 메모리 컨트롤러(140)는 MR 정보를 이용하여 기록될 제1 논리 값(논리 "0") 및 제2 논리 값(논리 "1")의 수들을 각각 카운트하고, 제1 논리 값과 제2 논리 값의 수들을 각각 제1 카운터와 제2 카운터에 저장할 수 있다. 일부 예들에서, 메모리 컨트롤러(140)는 마스크 레지스터 정보에 따라 메모리 셀들에 프로그래밍 펄스를 인가할 수 있다.
일반적으로, 본원에 논의된 인가된 전압 또는 전류의 크기, 형태, 극성 및/또는 지속시간은 조정되거나 변경될 수 있으며, 메모리 디바이스(100)를 동작시킬 시 논의된 다양한 동작들마다 상이할 수 있다. 또한, 메모리 어레이(102) 내에서 하나, 다수 또는 모든 메모리 셀들(105)은 동시에 액세스될 수 있으며; 예를 들어, 메모리 어레이(102)의 다수 또는 모든 셀들은 모든 메모리 셀들(105) 또는 메모리 셀(105) 그룹이 단일 논리 상태로 설정되는 리셋 동작 동안 동시에 액세스될 수 있다.
도 2는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 메모리 어레이(200)의 예를 예시한다. 메모리 어레이(200)는 도 1을 참조하여 설명된 메모리 어레이(102)의 부분들의 예일 수 있다. 도 2에 도시된 바와 같이, 메모리 어레이(200)는 메모리 셀(105-a)을 구성하기 위한 다수의 재료들을 포함할 수 있다. 각 메모리 셀(105-a)은 메모리 셀 스택들(예를 들어, 메모리 셀 스택(145))을 생성하기 위해 수직 방향(예를 들어, 기판에 수직)으로 적층된다. 메모리 셀(105-a)은 도 1을 참조하여 설명된 메모리 셀(105)의 예일 수 있다. 메모리 어레이(200)는 따라서 3D 메모리 어레이로 지칭될 수 있다. 메모리 어레이(200)의 아키텍처는 교차(cross-point) 아키텍처로 지칭될 수 있다. 도 2에 포함된 일부 요소들은 숫자 표시가 부착되어 있지만, 도시된 특징들의 가시성과 명확성을 높이기 위한 일환으로, 다른 대응되는 요소들은 이들이 동일하거나 유사한 것으로 이해될 수 있더라도 숫자 표시가 부착되어 있지 않다.
메모리 어레이(200)는 또한 워드 라인들(110-a) 및 비트 라인들(115-a)을 포함하며, 이는 도 1을 참조하여 설명된 워드 라인들(110) 및 비트 라인들(115)의 예들일 수 있다. 도 2에 도시된 워드 라인들(110-a)과 비트 라인들(115-a) 사이의 재료들의 그림은 도 1의 메모리 셀(105)의 하부를 나타낼 수 있다. 메모리 어레이(200)는 전극들(205), 논리 저장 요소들(210), 선택 장치 요소들(220) 및 기판(225)을 포함한다. 논리 저장 요소(210), 전극(205-b) 및 선택기 장치 요소(220)는 집합적으로 메모리 요소(230)로 지칭될 수 있다. 일부 예들에서, 칼코게나이드 합금(도시되지 않음, 선택기 장치 요소(220), 논리 상태 요소(210) 및 전극(205-b)을 메모리 요소(230)로 교체)을 포함하는 단일 컴포넌트는 논리 저장 요소 및 선택기 장치 둘 다의 역할을 할 수 있다. 전극(205-a)은 비트 라인(115-a)과 전자 통신할 수 있고, 전극(205-c)은 워드 라인(110-a)과 전자 통신할 수 있다.
빈 공간으로 도시된 절연 재료들은 전기 절연과 열 절연 둘 다일 수 있다. 상기에 설명된 바와 같이, PCM 기술에서, 다양한 논리 상태들은 메모리 셀들(105-a)의 논리 저장 요소(210)의 전기 저항을 변화시켜 저장될 수 있으며, 이는 차례로 메모리 셀들(105-a)의 다양한 임계 전압들을 나타낸다. 일부 경우, 다양한 논리 상태들을 저장하는 것은 메모리 셀(105-a)을 통해 전류를 통과시키거나, 메모리 셀(105-a)의 논리 저장 요소(210)를 가열하거나, 또는 메모리 셀(105-a)의 논리 저장 요소(210)의 재료를 (예를 들어, 전부 또는 부분적으로) 용융시키는 것을 포함한다. 임계 전압 변조와 같은 다른 저장 메커니즘들이 칼코게나이드 기반 메모리들에 악용될 수 있다.
일부 경우, 메모리 어레이(200)는 메모리 셀 스택 어레이를 포함할 수 있으며, 각 메모리 셀 스택은 다수의 메모리 셀들(105-a)을 포함할 수 있다. 메모리 어레이(200)는 각 전도성 재료가 그 사이의 전기 절연 재료들에 의해 인접 전도성 재료로부터 분리되는 워드 라인들(110-a)과 같은 전도성 재료들의 스택을 형성하여 만들어질 수 있다. 전기 절연 재료들은 실리콘 산화물, 실리콘 질화물과 같은 산화물 또는 질화물 재료들, 또는 다른 전기 절연 재료들을 포함할 수 있다. 이러한 재료들은 실리콘 웨이퍼 또는 임의의 다른 반도체 또는 산화 기판과 같은 기판(225) 위에 형성될 수 있다. 이후, 각 메모리 셀(105-a)이 워드 라인(110-a) 및 비트 라인(115-a)과 결합될 수 있도록 워드 라인들(110-a)과 비트 라인들(115-a) 사이에 재료들을 형성하는 데 다양한 프로세스 단계들이 이용될 수 있다.
선택기 장치 요소(220)는 전극(205-b)을 통해 논리 저장 요소(210)와 연결될 수 있다. 일부 예들에서, 선택기 장치 요소(220) 및 논리 저장 요소(210)의 포지셔닝은 플립(flipped)될 수 있다. 선택기 장치 요소(220), 전극(205-b) 및 논리 저장 요소(210)를 포함하는 복합 스택은 전극(205-c)을 통해 워드 라인(110-a)에 연결되고 전극(205-a)을 통해 비트 라인(115-b)에 연결될 수 있다. 선택기 장치 요소(220)는 특정 메모리 셀(105-a)를 선택하는 데 도움이 될 수 있거나, 선택된 메모리 셀(105-a)에 인접한 비선택된 메모리 셀들(105-a)을 통해 표류 전류(stray currents)가 흐르는 것을 방지하는 것을 도울 수 있다. 선택기 장치 요소(220)는 다이오드와 같은 다른 유형의 2-단자 선택기 장치 중에서, 금속-절연체-금속(MIM) 접합, 오보닉 임계 스위치(OTS) 또는 금속-반도체-금속(MSM) 스위치와 같은 전기적으로 비선형 컴포넌트(예를 들어, 비옴(non-Ohmic) 컴포넌트)를 포함할 수 있다. 일부 경우, 선택기 장치 요소는 칼코게나이드 합금을 포함한다. 선택기 장치는, 일부 예들에서는, 셀레늄(Se), 비소(As), 실리콘(Si) 및 게르마늄(Ge)의 합금을 포함한다.
상기에 논의된 바와 같이, 도 2의 메모리 셀들(105-a)은 다양한 저항을 갖는 재료를 포함할 수 있다. 다양한 저항 재료들은 예를 들어, 금속 산화물, 칼코겐화물 등을 포함하는, 다양한 재료 시스템들을 지칭할 수 있다. 칼코게나이드 물질들은 황(S), 텔루륨(Te) 또는 셀레늄(Se) 중 적어도 하나를 포함하는 물질들 또는 합금들이다. 많은 칼코게나이드 합금들이 가능할 수 있다 - 예를 들어, 게르마늄-안티몬-텔루륨 합금(Ge-Sb-Te)은 칼코게나이드 재료이다. 여기서 명시적으로 인용되지 않은 다른 칼코게나이드 합금들도 사용될 수 있다.
저-저항 상태를 설정하기 위해, 메모리 셀(105-a)은 메모리 셀(105-a)을 통해 전류를 통과시킴으로써 가열될 수 있다. 한정된 저항을 갖는 재료를 통해 흐르는 전류로 인한 가열은 줄(Joule) 또는 옴(Ohmic) 가열로 지칭될 수 있다. 따라서, 줄 가열은 전극 또는 위상 변화 물질의 전기 저항과 관련될 수 있다. 상 변화 물질을 높은 온도(그러나 그 용융 온도 미만)로 가열하는 것은 상 변화 물질이 결정화되어 저-저항 상태가 형성될 수 있다. 일부 경우, 메모리 셀(105-a)은 줄 가열 이외의 수단에 의해, 예를 들어, 레이저를 사용하여 가열될 수 있다. 고-저항 상태를 설정하기 위해, 상 변화 물질은 예를 들어, 줄 가열에 의해 용융 온도 이상으로 가열될 수 있다. 용융된 물질의 비결정질 구조는 인가된 전류를 급격하게 제거하여 상 변화 물질을 빠르게 냉각시킴으로써 퀀칭(quenched) 또는 록킹(locked)될 수 있다.
일부 경우, 메모리 셀들(105-a)은 다수의 사이클링 동작들(예를 들어, 일련의 판독 또는 기록 동작들) 후에 다른 전기적 특성들을 나타낼 수 있다. 예를 들어, 논리 상태 1(예를 들어, SET 프로그래밍 펄스)을 저장하기 위해 동일한 프로그래밍 펄스를 수신한 후, 논리 상태 1에 대응되는 메모리 셀(105-a)(예를 들어, PCM 셀)의 임계 전압은 메모리 셀(105-a)이 방대한 수의 판독 또는 기록 동작들을 통해 순환되어 왔던 메모리 셀(105-a)과 비교하여 상대적으로 신규(예를 들어, 판독 또는 기록 동작들이 적은 PCM 셀)한 경우 다를 수 있다. 추가로, 일부 경우, 메모리 셀들(105-a)의 칼코게나이드 물질(예를 들어, 논리 저장 요소(210))은 기록 동작 동안 칼코게나이드 물질의 프로그래밍(예를 들어, 결정화 또는 퀀칭) 후 그 저항의 변화(이는 드리프트(drift)라고도 할 수 있음)를 겪을 수 있다. 이러한 저항의 변화는 메모리 셀들(105-a)의 임계 전압들을 변화시킬 수 있으며, 특정 시간 기간이 경과한 후 메모리 셀들(105-a)(예를 들어, PCM 셀들)로부터 정보를 정확하게 판독하는 것을 방해할 수 있다. 일부 예들에서, 변화량은 주변 온도의 함수일 수 있다.
일부 예들에서, 메모리 셀들(105-a)은 인코딩된 사용자 데이터에 추가될 수 있는, 수정된 사용자 데이터(또는 일부 경우에는 원래의 사용자 데이터) 및 다수의 패리티 비트를 포함하는 인코딩된 사용자 데이터를 저장하도록 구성될 수 있다. 일부 경우, 메모리 셀들(105-a)에 저장된 인코딩된 사용자 데이터는 논리 상태가 1인 미리 결정된 수의 비트를 포함하도록 수정되었다. 논리 상태가 1인 비트 수는 사용된 인코딩 방식에 따라 다를 수 있다. 일부 경우, 논리 상태가 1인 비트 수는 인코딩된 사용자 데이터를 포함하는 비트의 50%(또는 기타 백분율)일 수 있다. 일부 예들에서, 메모리 셀들(105-a)은 사용자 데이터를 저장하도록 구성될 수 있는 반면, 추가 메모리 셀(105-a) 세트는 카운팅 정보를 저장하도록 구성될 수 있다. 카운팅 정보는 논리 상태가 1인 사용자 데이터의 비트 수를 나타낼 수 있다. 일부 경우, 카운팅 정보는 사용자 데이터가 판독되기 전에 논리 상태가 1인 사용자 데이터의 비트 수를 추출하기 위해 미리 판독될 수 있다. 추가로 또는 대안으로, 카운팅 정보는 사용자 데이터가 판독되고 있는 동안 결정될 수 있다.
메모리 셀들의 일부 예들은 메모리 요소 및 선택 장치를 포함할 수 있고, 메모리 셀들의 다른 예들은 선택 장치를 포함하지 않는 기술들을 사용하여 선택되는 메모리 요소를 포함할 수 있다. 일부 예들에서, 칼코게나이드 물질을 포함하는 메모리 셀(105-a)은 극성 의존 신호들(예를 들어, 자기 선택 메모리 셀)를 사용하여 프로그래밍되거나 판독될 수 있다. 이러한 예들에서, 메모리 셀(105-a)은 제1 전압 및 제 1 극성을 갖는 제1 신호를 인가함으로써 논리 상태로 프로그래밍될 수 있다. 특정 메모리 셀(105-a)이 제1 신호를 사용하여 프로그래밍될 때, 메모리 셀 내의 요소들이 분리되어, 이온 이동을 일으킬 수 있다. 이온들은 메모리 요소에 인가된 제1 신호의 극성에 따라 특정 전극(205)으로 이동할 수 있다. 예를 들어, 메모리 셀(105-a)의 이온들은 제1 극성을 갖는 신호가 사용될 때 제1 전극으로 이동할 수 있으며, 제2 극성을 갖는 신호가 사용될 때 제2 전극으로 이동할 수 있다. 신호의 제1 극성은 메모리 셀에 걸쳐 제1 방향으로(예를 들어, 제2 전극에서 제1 전극으로) 흐르는 전류를 갖는 신호를 지칭할 수 있다. 신호의 제2 극성은 제1 방향과 다른 메모리 셀에 걸쳐 제2 방향으로(예를 들어, 제1 전극에서 제2 전극으로) 흐르는 전류를 갖는 신호를 지칭할 수 있다.
메모리 셀은 메모리 셀에 걸쳐 판독 신호를 인가함으로써 판독될 수 있다. 판독 동작 동안 보이는 임계 전압은 메모리 셀의 이온들의 분포, 판독 신호의 극성 및/또는 프로그래밍 신호의 극성에 기초할 수 있다. 예를 들어, 메모리 셀이 메모리 셀을 프로그래밍하는 데 사용되는 프로그래밍 신호를 기반으로 주어진 분포를 갖는 경우, 판독 동작 동안 검출된 임계 전압은 제1 극성을 갖는 제1 판독 신호가 사용될 때와 제2 극성을 갖는 제2 판독 신호가 사용될 때와 다를 수 있다. 메모리 셀의 극성에 따라, 이동 이온들의 이 농도는 논리 "1" 또는 논리 "0" 상태를 나타낼 수 있다. 이온 이동에 대한 설명은 본원에 설명된 결과들을 달성하기 위한 메모리 셀의 메커니즘의 예를 나타낸다.
일부 예들에서, 메모리 셀들 또는 자기 선택 메모리 셀들을 임계화하는 것과 같이, 메모리 셀들에 의해 지원되는 논리 상태 세트의 일부 또는 전부는 칼코게나이드 물질의 비정질 상태와 연관될 수 있다(예를 들어, 단일 상태의 물질은 다른 논리 상태들을 저장하도록 동작 가능할 수 있다). 메모리 요소(230)에 사용되는 재료는 합금(예를 들어, 본원에 나열된 합금들)에 기초할 수 있으며, 메모리 셀의 정상 작동 동안 다른 물리적 상태로의 변경을 겪도록 동작될 수 있다. 예를 들어, 메모리 셀은 제1 로직 상태(예를 들어, RESET 상태)에 대응될 수 있는 높은 임계 전압 상태 및 제2 로직 상태(예를 들어, SET 상태)에 대응될 수 있는 낮은 임계 전압 상태를 가질 수 있다.
메모리 셀(예를 들어, 전극(205-a), 메모리 요소(230) 및 전극(205-c)을 포함함)의 프로그래밍(기록) 동작 동안, 기록 동작에 사용되는 극성은 재료의 임계 전압과 같은, 메모리 요소(230)의 재료의 특정 비헤이비어 또는 특성에 영향을 미칠(예를 들어, 결정, 설정, 프로그래밍) 수 있다. 메모리 요소(230)의 재료에 의해 저장된 논리 상태에 따른 메모리 요소(230)의 재료의 임계 전압들의 차이(예를 들어, 재료가 논리 상태 '0' 대 논리 상태 '1'을 저장할 때의 임계 전압 간 차이)는 메모리 요소(230)의 판독 윈도우에 대응될 수 있다.
일부 예들에서, 메모리 디바이스는 서로 적층되는 다수의 어레이들 또는 덱(deck)들을 포함할 수 있다. 예를 들어, 메모리 디바이스는 기판 (225) 위에 위치되는 제 1 메모리 셀 어레이 또는 데크(예를 들어, 어레이(200)) 및 제1 메모리 셀 어레이 또는 데크(200)의 상부에 있는 제2 메모리 셀 어레이 또는 데크(도시되지 않음)를 포함할 수 있다. 각 데크(200)의 메모리 셀들은 각각 제1 전극(205-c), 메모리 요소(230)(예를 들어, 칼코게나이드 물질을 포함함) 및 메모리 스택을 형성할 수 있는 제2 전극(205-a)을 포함할 수 있다. 메모리 스택들은 또한 다른 레이어들 및 재료들을 포함할 수 있다. 제1 데크 및 제2 데크의 메모리 셀들은, 일부 예들에서는, 각 데크의 해당 메모리 셀들이 도 1을 참조하여 설명된 바와 같이 비트 라인들(115) 또는 워드 라인들(110)을 공유할 수 있도록 공통 전도성 라인들을 가질 수 있다. 예를 들어, 비트 라인(115-a)은 수직으로 인접한 메모리 셀들에 의해 공유될 수 있다. 일부 경우에, 메모리 셀들(105-a)은 상 변화 메모리 셀들 또는 자체 선택 메모리 셀들의 예들일 수 있다.
메모리 어레이(200)의 아키텍처는 메모리 셀이 워드 라인과 비트 라인 사이의 토폴로지 교차점에 형성되는 교차점 아키텍처로 지칭될 수 있다. 이러한 교차 아키텍처는 다른 메모리 아키텍처들에 비해 생산 비용이 저렴한 비교적 고밀도 데이터 저장소를 제공할 수 있다. 예를 들어, 교차점 아키텍처는 감소된 면적과 결과적으로 다른 아키텍처들에 비해 증가된 메모리 셀 밀도를 갖는 메모리 셀들을 가질 수 있다. 예를 들어, 아키텍처는 4F2 메모리 셀 영역을 가질 수 있으며, 여기서 F는 3 단자 선택기 컴포넌트가 있는 것과 같은, 6F2 메모리 셀 영역이 있는 다른 아키텍처들에 비해 가장 작은 형상 크기이다. 예를 들어, DRAM은 3단자 장치인 트랜지스터를 각 메모리 셀에 대한 선택기 컴포넌트로 사용할 수 있으며, 교차점 아키텍처에 비해 더 큰 메모리 셀 영역을 가질 수 있다.
일부 예들에서, 메모리 덱들 중 하나 이상은 칼코게나이드 물질을 포함하는 메모리 요소(230)를 포함할 수 있다. 메모리 요소(230)는 예를 들어, 셀레늄(Se), 텔루륨(Te), 비소(As), 안티몬(Sb), 탄소(C), 게르마늄(Ge) 및 실리콘(Si)의 합금과 같은, 예를 들어 칼코게나이드 유리를 포함할 수 있다. 일부 예들에서, 주로 Se, As 및 Ge를 갖는 칼코게나이드 물질은 SAG-합금으로 지칭될 수 있다. 일부 예들에서, SAG-합금은 Si를 포함할 수 있으며, 이러한 칼코게나이드 물질은 SiSAG-합금으로 지칭될 수 있다. 일부 예들에서, 칼코게나이드 유리는 수소(H), 산소(O), 질소(N), 염소(Cl) 또는 불소(F)와 같은 추가 요소들을 각각 원자 또는 분자 형태로 포함할 수 있다.
여러 예들이 예를 들어, 도 4 내지 11을 참조하여 자체 선택(SSM) 및/또는 3D 교차점(예를 들어, 3D X점) 메모리 셀 장치들의 맥락에서 하기에 설명될 것이다. 그러나, 동일한 원리들 및 솔루션들은 강유전체(FeRAM) 장치들의 맥락에서 구현될 수 있으며, 그 기본 기능은 적절한 조정을 통해 도 3a 및 3b에 설명된다.
도 3a 및 3b는 본원에 개시된 다양한 예들에 따른 히스테리시스 곡선들(300-a 및 300-b)을 갖는 강유전성 메모리 셀의 비선형 전기적 특성들의 예들을 예시한다. 히스테리시스 곡선들(300-a 및 300-b)은 각각 예시적인 강유전성 메모리 셀 기록 및 판독 프로세스를 예시한다. 히스테리시스 곡선들(300-a 및 300-b)은 전압차(V)의 함수로 강유전성 커패시터에 저장된 전하(Q)를 도시한다.
강유전성 재료는 자발적인 전기 분극을 특징으로 하며, 즉 전기장이 없는 경우에도 0이 아닌 전기 분극을 유지한다. 예시적인 강유전성 물질들은 티탄산 바륨(BaTiO3), 티탄산 납(PbTiO3), 지르콘산 티탄산 납(PZT) 및 탄탈 산 스트론튬 비스무트(SBT)를 포함한다. 본원에 설명된 강유전성 커패시터들은 이들 또는 다른 강유전성 재료들을 포함할 수 있다. 강유전성 커패시터 내의 전기 분극은 강유전성 물질의 표면에서 순 전하를 생성하고 커패시터 단자들을 통해 반대 전하를 끌어당긴다. 따라서, 전하는 강유전성 재료와 커패시터 단자들의 인터페이스에 저장된다. 전기 분극은 외부에서 인가되는 전계가 없는 경우 비교적 장기간 동안 유지될 수 있기 때문에, 예를 들어 DRAM 어레이에 사용되는 커패시터들와 비교하여 전하 누설이 크게 감소될 수 있다. 이렇게 하면 새로 고침 동작들을 수행할 필요성을 줄일 수 있다.
히스테리시스 곡선들(300-a 및 300-b)은 커패시터의 단일 단자의 관점에서 이해될 수 있다. 예를 들어, 강유전성 재료가 음의 분극을 갖는 경우, 양전하가 단자에 축적된다. 마찬가지로, 강유전성 재료가 양의 분극을 갖는 경우, 음전하가 단자에 축적된다. 추가로, 히스테리시스 곡선들(300-a 및 300-b)의 전압들은 커패시터에 걸친 전압차를 나타내며 방향성이 있다. 예를 들어, 양의 전압은 문제의 단자(예를 들어, 셀 플레이트)에 양의 전압을 인가하고 접지(또는 거의 제로 볼트(0V))에서 제2 단자(예를 들어, 셀 바닥)를 유지함으로써 실현될 수 있다. 음의 전압은 문제의 단자를 접지에서 유지하고 양의 전압을 제2 단자에 인가함으로써 적용될 수 있다 - 즉, 양의 전압들은 문제의 단자를 음으로 분극되도록 인가될 수 있다. 마찬가지로, 히스테리시스 곡선들(300-a 및 300-b)에 표시된 전압차를 생성하기 위해 2개의 양의 전압드, 2개의 음의 전압들 또는 양과 음의 전압들의 임의 조합이 적절한 커패시터 단자들에 인가될 수 있다.
히스테리시스 곡선(300-a)에 도시된 바와 같이, 강유전성 재료는 전압차가 0인 양 또는 음의 분극을 유지하여, 두 개의 가능한 전하 상태들, 전하 상태(305) 및 전하 상태(310)를 초래할 수 있다. 도 3a 및 3b의 예들에 따르면, 충전 상태(305)는 논리 1을 나타내고 충전 상태(310)는 논리 0을 나타낸다. 일부 예들에서, 각 전하 상태들의 로직 값들은 메모리 셀을 동작시키는 다른 방식들을 수용하기 위해 반전될 수 있다.
논리 0 또는 1은 강유전성 재료의 전기 분극, 및 이에 따라 전압을 인가함으로써 커패시터 단자들의 전하를 제어함으로써 메모리 셀에 기록될 수 있다. 예를 들어, 커패시터에 걸쳐 순 양의 전압 (315)을 인가하는 것은 전하 상태(305-a)에 도달될 때까지 전하 축적이 발생된다. 전압(315) 제거 시, 전하 상태(305-a)는 제로 전압에서 전하 상태(305)에 도달될 때까지 경로(320)를 따라 간다. 마찬가지로, 전하 상태(310)는 순 음의 전압(325)을 인가함으로써 기록되며, 이는 전하 상태(310-a)를 초래한다. 음의 전압(225) 제거 후, 전하 상태(310-a)는 제로 전압에서 전하 상태(3110)에 도달될 때까지 경로(330)를 따른다. 전하 상태들(305-a 및 310-a)은 또한 잔여 분극(Pr) 값들, 즉 외부 바이어스(예를 들어, 전압)를 제거 시 남아있는 분극(또는 전하)으로 지칭될 수 있다. 보자 전압(coercive voltage)은 전하(또는 분극)가 0인 전압이다.
강유전성 커패시터의 저장된 상태를 판독하나 감지하기 위해, 전압이 커패시터에 걸쳐 인가될 수 있다. 이에 응답하여, 저장 전하(Q) 변화들 및 변화 정도는 초기 전하 상태에 따라 달라진다 - 즉, 최종 저장 전하(Q)는 전하 상태(305-b 또는 310-b)가 초기에 저장되었는지 여부에 따라 달라진다. 예를 들어, 히스테리시스 곡선(300-b)은 두 개의 가능한 저장된 전하 상태들(305-b 및 310-b)을 예시한다. 전압(335)은 커패시터에 걸쳐 인가될 수 있다. 다른 경우에, 고정 전압이 셀 플레이트에 인가될 수 있으며, 양의 전압으로 도시되었지만 전압(335)은 음일 수 있다. 전압(335)에 응답하여, 전하 상태(305-b)는 경로(340)를 따를 수 있다. 마찬가지로, 전하 상태(310-b)가 초기에 저장된 경우, 이는 경로(345)를 따른다. 전하 상태(305-c) 및 전하 상태(310-c)의 최종 위치는 특정 감지 방식 및 회로부를 포함한 하나 이상의 요인들에 따라 달라진다.
일부 경우에, 최종 전하는 메모리 셀에 연결된 디지트 라인의 고유 커패시턴스에 따라 달라질 수 있다. 예를 들어, 커패시터가 디지트 라인에 전기적으로 연결되고 전압(335)이 인가되면, 디지트 라인의 전압은 고유 커패시턴스로 인해 상승할 수 있다. 감지 컴포넌트에서 측정된 전압은 전압(335)과 같지 않을 수 있으며, 대신 디지트 라인의 전압에 따라 달라질 수 있다. 따라서, 히스테리시스 곡선(300-b)에서 최종 전하 상태들(305-c 및 310-c)의 위치는 디지트 라인의 커패시턴스에 따라 달라질 수 있으며, 로드 라인 분석을 통해 결정될 수 있다 - 즉, 전하 상태들(305-c 및 310-c)은 디지트 라인 커패시턴스에 대해 정의될 수 있다. 그 결과, 커패시터의 전압, 전압(350) 또는 전압(355)은 상이할 수 있으며 커패시터의 초기 상태에 따라 달라질 수 있다.
디지트 라인 전압을 기준 전압과 비교함으로써, 커패시터의 초기 상태가 결정될 수 있다. 디지트 라인 전압은 전압(335)과 커패시터, 전압(350) 또는 전압(355)에 걸친 최종 전압 사이의 차이 - 즉, 전압(335)과 전압(350) 사이의 차이 또는 전압(335)과 전압(355) 사이의 차이일 수 있다. 기준 전압은 저장된 논리 상태를 결정하기 위해 - 즉, 디지트 라인 전압이 기준 전압보다 높거나 낮은 경우 그 크기가 2개의 가능한 디지트 라인 전압들 중 2개의 가능한 전압들 사이에 있도록 생성될 수 있다. 감지 컴포넌트에 의한 비교 시, 감지된 디지트 라인 전압은 기준 전압보다 높거나 낮도록 결정될 수 있으며, 강유전성 메모리 셀의 저장된 논리 값(즉, 논리 1 또는 0)이 결정될 수 있다. 상기의 설명에서 알 수 있듯이, 메모리 셀들에 할당된 논리 값은 디지트 라인 전압뿐만 아니라 비교에 사용된 기준 전압에 따라 달라진다. 기준 전압이 얼마나 정확하고 정밀하게 선택되고 생성되는지에 관계없이, 모든 메모리 셀들에 대해 유일한 기준 전압으로 판독 동작을 수행하는 것이 신뢰할 수 없는(그리고 심지어 가능하지 않은) 경우가 있다.
일부 경우에, 강유전성 메모리 셀은 판독 동작 후 초기 논리 상태를 유지할 수 있다. 예를 들어, 전하 상태(305-b)가 저장되면, 전하 상태는 판독 동작 동안 전하 상태(305-c)에 대한 경로(340)를 따를 수 있고, 전압(335)을 제거한 후, 전하 상태는 반대 방향으로 경로(340)를 따름으로써 초기 전하 상태(305-b)로 리턴될 수 있다. 일부 경우, 강유전성 메모리 셀은 판독 동작 후 그 초기 논리 상태를 상실할 수 있다. 예를 들어, 전하 상태(310-b)가 저장되면, 전하 상태는 판독 동작 동안 전하 상태(305-c)에 대한 경로(345)를 따를 수 있고, 전압(335)을 제거한 후, 전하 상태는 경로(340)를 따름으로써 전하 상태(305-b)를 릴렉스시킬 수 있다.
도 4는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 메모리 어레이의 코드워드의 예를 예시한다. 도 1의 메모리 디바이스(100)와 같은 메모리 디바이스의 코드워드(400)는 코드워드 데이터를 저장하기 위한 데이터 영역(480) 및 가능한 한 코드워드 데이터와 연관된 패리티 데이터를 포함하는 선택적 패리티 영역(485)을 포함할 수 있다. 패리티 데이터는 일부 예들에서 오류 정정 패리티 비트들일 수 있다.
데이터(480) 및 패리티(485)와 관련하여 미리 정의된 논리 상태에서 데이터(480) 및 패리티(485)의 비트 수를 저장하기 위한 코드워드 비트 카운터 영역(490)이 제공된다. 비트 카운터 영역(COUNT[N:0])의 비트 수는 총 데이터(480) 및 패리티(485) 비트 카운트 및 사용된 특정 인코딩에 따라 다르다. 각 비트 카운터 비트(COUNT[N:0])는 또한 내부의 정보의 신뢰성을 향상시키기 위해 거짓 값(COUNT#[N:0])과 함께 저장될 수 있다. 코드워드 비트 카운터(490) 비트들은 다른 배열, 예를 들어 다수결 배열로 저장될 수 있다. 일부 예들에서는, 오류 수정에 의해 추가로 보호될 수 있다.
메모리에 프로그래밍하기 위해 입력 단자들에서 데이터가 수신되면, 메모리 컨트롤러는 데이터를 분석하고 적용될 인코딩을 결정하고 최종적으로 미리 정의된 상태의 비트 수(예를 들어, 논리 1 상태로서 메모리 셀들에 얼마나 많은 비트들이 저장되는지)를 결정한다.
코드워드 비트 카운터(490) 영역에 저장된 정보는 하기에 자세히 설명되는 것처럼 코드워드 데이터를 검색하기 위해 후속 액세스 동작 동안 사용된다.
도 5는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원하는 메모리 어레이(505)의 블록도(500)를 예시한다. 메모리 어레이(505)는 전자 메모리 장치로 지칭될 수 있으며, 본원에 설명된 바와 같은 메모리 디바이스의 컴포넌트의 예일 수 있다.
메모리 어레이(505)는 하나 이상의 메모리 셀들(510), 메모리 컨트롤러(515), 워드 라인(520), 참조 컴포넌트(530), 감지 컴포넌트(535), 디지트 라인(540) 및 래치(latch)(545)를 포함할 수 있다. 이러한 컴포넌트들은 서로 전자 통신될 수 있으며 본원에 설명된 기능들 중 하나 이상을 수행할 수 있다. 일부 경우, 메모리 셀들(510)은 3DXP 메모리 셀들을 포함할 수 있다. 일부 양태들에서, 메모리 컨트롤러(515)는 바이어싱 컴포넌트(550) 및 타이밍 컴포넌트(555)를 포함할 수 있다. 일부 예들에서, 감지 컴포넌트(535)는 참조 컴포넌트(530)으로서의 역할을 할 수 있다. 다른 경우, 참조 컴포넌트(530)는 선택적일 수 있다.
메모리 컨트롤러(515)는, 도 1 및 2를 참조하여 설명된 워드 라인(110), 디지트 라인(115) 및 감지 컴포넌트(125)의 예들일 수 있는, 워드 라인(520), 디지트 라인(540) 및 감지 컴포넌트(535)와 전자 통신할 수 있다. 메모리 어레이(505)의 컴포넌트들은 서로 전자 통신할 수 있으며, 도 3 및 4를 참조하여 설명된 기능들의 양태들을 수행할 수 있다. 일부 경우, 참조 컴포넌트(530), 감지 컴포넌트(535) 및 래치(545)는 메모리 컨트롤러(515)의 컴포넌트들일 수 있다.
일부 예들에서, 디지트 라인(540)은 감지 컴포넌트(535) 및 메모리 셀(510)과 전자 통신할 수 있다. 메모리 셀(510)은 논리 상태(예를 들어, 제1, 제2 또는 제3 논리 상태)로 기록 가능할 수 있다. 워드 라인(520)은 메모리 컨트롤러(515) 및 메모리 셀(510)과 전자 통신할 수 있다. 감지 컴포넌트(535)는 메모리 컨트롤러(515), 디지트 라인(540), 래치(545) 및 기준 라인(560)과 전자 통신할 수 있다. 기준 컴포넌트(530)는 메모리 컨트롤러(515) 및 기준 라인(560)과 전자 통신할 수 있다. 감지 제어 라인(565)는 감지 컴포넌트(535) 및 메모리 컨트롤러(515)와 전자 통신할 수 있다. 이러한 컴포넌트들은 또한 다른 컴포넌트들, 연결들 또는 버스들을 통해, 상기에 열거되지 않은 컴포넌트들 외에 메모리 어레이(505)의 내부 및 외부 둘 다의 다른 컴포넌트들과 전자 통신할 수 있다.
메모리 컨트롤러(515)는 이러한 다양한 노드들에 전압들을 인가함으로써 워드 라인(520) 또는 디지트 라인(540)을 통전시키도록 구성될 수 있다. 예를 들어, 바이어싱 컴포넌트(550)는 상기에 설명된 바와 같이 메모리 셀(510)을 판독 또는 기입하기 위해 메모리 셀(510)을 동작시키기 위한 전압을 인가하도록 구성될 수 있다. 일부 경우, 메모리 컨트롤러(515)는 본원에 설명된 바와 같이 행 디코더, 열 디코더 또는 둘 다를 포함할 수 있다. 이는 메모리 컨트롤러(515)가 도 1을 참조하여 예시된 바와 같이 하나 이상의 메모리 셀들(105)에 액세스 할 수 있도록 할 수 있다. 바이어싱 컴포넌트(550)는 또한 감지 컴포넌트(535)에 대한 기준 신호를 생성하기 위해 기준 컴포넌트(530)에 전압을 제공할 수 있다. 추가로, 바이어싱 컴포넌트(550)는 감지 컴포넌트(535)의 동작을 위한 전압들을 제공할 수 있다.
일부 예들에서, 메모리 컨트롤러(515)는 타이밍 컴포넌트(555)를 사용하여 그 동작들을 수행할 수 있다. 예를 들어, 타이밍 컴포넌트(555)는 본 명세서에서 논의되는 판독 및 기록과 같은 메모리 기능들을 수행하기위해 스위칭 및 전압 인가를 위한 타이밍을 포함하여, 다양한 워드 라인 선택 또는 비트 라인 바이어싱의 타이밍을 제어할 수 있다. 일부 경우, 타이밍 컴포넌트(555)는 바이어싱 컴포넌트(550)의 동작들을 제어할 수 있다.
기준 컴포넌트(530)는 감지 컴포넌트(535)에 대한 기준 신호를 생성하기 위한 다양한 컴포넌트들을 포함할 수 있다. 기준 컴포넌트(530)는 기준 신호를 생성하도록 구성된 회로를 포함할 수 있다. 일부 경우, 기준 컴포넌트(530)는 다른 3D X점 메모리 셀들을 사용하여 구현될 수 있다. 감지 컴포넌트(535)는 (디지트 라인(540)을 통한) 메모리 셀(510))로부터의 신호와 기준 컴포넌트(530)로부터의 기준 신호를 비교할 수 있다. 논리 상태를 결정할 시, 감지 컴포넌트는 메모리 어레이(505)가 일부인 전자 장치의 동작들에 따라 사용될 수 있는 래치(545)에 출력을 저장할 수 있다. 감지 컴포넌트(535)는 래치(545) 및 메모리 셀(510)과 전자 통신하는 감지 증폭기를 포함할 수 있다.
메모리 컨트롤러(515) 및/또는 그 다양한 서브-컴포넌트들 중 적어도 일부는 하드웨어, 프로세서에 의해 실행된 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 프로세서에 의해 실행된 소프트웨어로 구현되는 경우, 메모리 컨트롤러(515) 및/또는 그 다양한 서브 컴포넌트들 중 적어도 일부의 기능들은 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC), FPGA(field-programmable gate array) 또는 다른 프로그램 가능 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 개시에 기술된 기능들을 수행하도록 설계된 이들의 임의의 조합에 의해 실행될 수 있다. 메모리 컨트롤러(515) 및/또는 그 다양한 서브 컴포넌트들 중 적어도 일부는 기능들의 일부가 하나 이상의 물리적 장치들에 의해 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함하여 다양한 위치들에 물리적으로 위치될 수 있다. 일부 예들에서, 메모리 컨트롤러(515) 및/또는 그 다양한 서브 컴포넌트들 중 적어도 일부는 본 개시의 다양한 예들에 따라 개별적이고 별개의 컴포넌트일 수 있다. 다른 예들에서, 메모리 컨트롤러(515) 및/또는 그 다양한 서브 컴포넌트들 중 적어도 일부는, 제한하는 것은 아니나, I/O 컴포넌트, 트랜시버, 네트워크 서버, 다른 컴퓨팅 장치, 본 개시에 설명된 하나 이상의 다른 컴포넌트들, 또는 본 개시의 다양한 예들에 따른 이들의 조합을 포함하며, 하나 이상의 다른 하드웨어 컴포넌트들과 결합될 수 있다.
도 6은 프로그래밍 단계 동안 수행되는 동작들의 시퀀스를 보고하는 개략적인 흐름도를 도시한다.
제1 입력 동작은 프로그래밍 알고리즘이 입력 기록 데이터를 처리하는 블록(610)으로 표현된다. 새로운 데이터는 레지스터에서 이전 수정된 데이터와 병합된다. 새로운 ECC 패리티 비트는 이 단계에서 계산된다. 이전 코드 워드는 메모리 셀들로부터 판독되고 기록 데이터의 시퀀스는 그들의 논리 값이 이미 기록될 새로운 코드워드의 해당 비트의 논리 값에 대응되기 때문에 다시 프로그래밍될 필요가 없는 이미 저장된 시퀀스의 비트들을 식별하는 역할을 하는 새로운 마스크 레지스터를 획득할 수 있게 한다.
알고리즘은 블록(620)에서 1과 0의 수의 계산과 이들을 카운터들(CNT1 및 CNT0)에 각각 저장하는 것을 진행한다.
그런 다음, 블록(630)에서, 기록 시퀀스가 시작될 수 있다. 예를 들어, 논리 값 "0"이 프로그래밍된 후 논리 값 "1"이 프로그래밍될 수 있으며, 이는 논리 값 "0"의 수가 더 클 경우 사용될 수 있는 시퀀스(WS1)이다. 대안으로, 시퀀스(WS2)가 수행될 수 있으며, 논리 값 "1"의 수가 더 큰 경우, 논리 값 "1"이 프로그래밍된 다음 논리 값 "0"이 프로그래밍될 수 있다. 세 번째 종류의 시퀀스(WS3)는 프로그래밍될 타일(tile)당 하나의 비트만 있는 경우에만 적용될 수 있으며, 이는 병렬 프로그래밍이 적용될 수 있는 특별한 경우이다. 타일에서, 비트는 동일한 워드 라인을 공유할 수 있지만, 논리 값 "0"에 대한 펄스와 논리 값 "1"에 대한 펄스에 대해 반대 극성들이 제공될 수 있다. 따라서, 타일당 (및 다른 타일들에서) 비트가 있는 경우, 논리 값 "1"이 기록될 타일에 한 극성이 적용될 수 있는 반면 0이 기록될 타일에는 반대 극성이 적용될 것이므로, 논리 값 "0" 및 "1"은 동시에 프로그래밍될 수 있다. 그와는 반대로, 타일당 더 많은 비트들이 있는 경우, 즉 더 많은 비트들이 동일한 워드 라인을 공유하는 경우, 논리 값들 "0" 및 "1"은 워드 라인이 한 번에 단일 전압 값을 가질 수 있으므로 병렬로 프로그래밍될 수 없다.
도 7은 ECC1을 사용한 기록 시퀀스 시도 및 반복 알고리즘을 예시한다. 예시된 예에서, CNTX = CNT1(논리 값 "1"의 경우) 또는 CNT0(논리 값 "0"의 경우), MaxTrial = 최대 재 펄스 수, ECC 신드롬은 오류들을 확인하기 위해 프로그래밍 논리에 피드백된다. 일부 예들에서, 논리 값 "1"이 프로그래밍되는 경우, 논리 값 "0"은 아이들(idle) 상태에 있으며, 그 반대의 경우도 마찬가지이다. 일부 예들에서, 스위치가 검출되면, 셀은 아이들 전압에 연결된다.
우선, 카운터들이 설정되고, 뿐만 아니라 허용되는 최대 시도 횟수에 관한 변수가 설정된다. 그런 다음, 시퀀스(WS1 또는 WS2) 중 하나 또는 나머지에 따라, 이에 따른 적용될 상향 또는 하향 전압 값에 따라 프로그래밍 램프가 시작된다.
카운터의 수에서 1을 뺀 값과 동일한 프로그래밍된 셀 수가 되는 순간까지(여기서 마이너스 1은 ECC의 보정 능력으로 의도됨), 정확하게 프로그래밍된 코드워드, 즉 ECC가 수정할 수 있는 코드워드를 얻을 수 없었다. 그래서, 사이클은 값(CNT-1)까지 진행된다(동시에 Vmax 미만으로 유지되어야 하는 바이어스 전압의 상위 값에 대해 추가 검사가 수행된다).
이 사이클 동안 두 가지 검증 단계들이 수행될 수 있다. 논리 값들 "0"이 먼저 프로그래밍되는 경우, ECC가 잘못된 값, 예를 들어, 거짓 양성(false positive)을 반환할 수 있다. 논리 값들 "1"이 아직 프로그래밍되지 않았고 코드워드가 정확하다는 사실에 관한 표시가 ECC로부터 획득되는 경우, 논리 값들 "1"이 아직 프로그래밍되지 않았고 ECC가 많은 오류들이 있는 코드워드를 입력했을 때 보고된 결과도 잘못될 수 있다는 사실로 인해 많은 오류들이 있을 수 있다. 따라서, ECC에 피드백을 요구할 가치가 없지만 카운터에 피드백을 요구할 가치가 있다. 논리 값들 "1"이 프로그래밍되고 있는 경우, 코드워드에 장애가 없는 상태인 신드롬 "0"에 도달했는지를 요구하는 것이 더 좋다.
그와 반대로, 논리 값들 "0"이 프로그래밍되고 있는 경우, 이는 카운터 값에 도달하면 요구되는 최대값이 될 수 있다. 카운터 마이너스 1 값에 도달하면, 카운터 값에 해당하는 프로그래밍 된 비트 수에 도달했는지가 결정될 수 있다. 최대 시도 횟수 또는 최대 전압 값에 도달하지 않은 경우, 이를 수행하도록 할 수 있다. 이들 두 조건들 중 하나 또는 다른 조건에 도달하는 경우(카운터 값에 도달하지 않고), 전체 프로그래밍 시퀀스에 오류가 있을 수 있으며 ECC1이 획득될 수 있다. 따라서, 후속 프로그래밍 펄스에서, 신드롬 값이 요청될 때, 값 "1"이 획득되지만, 이는 출력 코드워드가 반드시 잘못되었음을 의미하는 것이 아니라 단순히 ECC1에 의해 수정될 수 있는 내부에 오류가 있음을 의미한다. 두 가지 오류의 존재는 무시될 수 있는 확률적 평가에서 매우 낮다.
쓰기 알고리즘들 중 어느 것이 수행되는지에 따라 다른 접근 방법이 채택될 수 있다. 논리 값 "0"의 프로그래밍 단계에서는, 카운터만 있는 반면, 논리 값 "1"의 프로그래밍 단계에서는 ECC도 있다. 논리 값 "1"의 프로그래밍 단계 동안 오류가 발생하는 경우, 논리 값 "0"의 후속 프로그래밍 단계 동안 모든 수정된 비트들을 획득하는 것이 필요할 것이다. 이와 반대로, 논리 값 "0"의 초기 프로그래밍 단계 동안 단일 오류가 발생하는 경우, 논리 값 "1"의 후속 프로그래밍 단계 동안 ECC로부터 올바른 데이터가 획득될 것이다.
프로그래밍 시퀀스는 통계적으로 마지막 비트가 문제들을 나타내거나 더 높은 전압 값을 사용하여 프로그래밍될 수 있기 때문에 CNT-1에서 중지되며, 테스트 단계 후에 이전 프로그래밍 단계의 정확성에 관한 정보를 이미 보유하고 있는 최종 추가 비트를 처리하는 방법이 결정될 수 있다.
도 8은 현재 프로그램 알고리즘과 제안된 솔루션의 소비 전력 비교를 도시한다. 도면의 우측 도면(800b)은 프로그래밍 단계를 완료하는 데 사용되는 전압 대 시간을 보고한다. 프로그래밍 펄스는 전압 램프(801)와 같은 상승 전압을 메모리 셀들에 인가하는 것을 포함한다. 셀들은 초기에 범위(E1-E2)(프로그래밍 전압 램프의 부분(802))의 프로그래밍 전압에서 논리 상태 "1" 임계 값에 있으며 오버 바이어스되지 않는다. 초기에 논리 상태 "0"에 있는 셀들만 임계값을 설정하기 위해 범위(E3-E4)(프로그래밍 전압 램프의 부분803))의 프로그래밍 전압에서 바이어스된다. 메모리 셀들에 대한 임계 전압 분포들은 논리 "1" 및 논리 "0" 상태들의 셀들 모두에 대해 점선들로 표시된다. 좌측 도면(800a)에서, 단일 프로그래밍 펄스(804)가 인가되면, 더 낮은 임계값을 갖는 셀들은 훨씬 더 스트레스를 받게 될 것이다. 따라서, 평균 전압 프로그램 및 이에 따른 전력 소모는 현재 프로그램 알고리즘과 관련하여 감소된다.
도 9는 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법의 프로그래밍 단계의 예를 예시한다. 도 9는 판독 사이클 이후의 WS1(990)의 예를 예시한다. 파란색 선(991)은 논리 값 "0"의 프로그래밍 단계 대 시간과 논리 값 "1"의 후속 프로그래밍 단계를 보여준다. 논리 값 "0"에 대한 평균 프로그래밍 전압은 E3과 E4 사이, 평균 ½(E3+E4)에 있다. 논리 값 "0"의 프로그래밍 단계는 카운터 값, 즉 CNT0에 도달하면 중지된다. 그런 다음, 아직 프로그래밍될 수 있는 다른 논리 값 "1"을 처리해야 할 수도 있다.
논리 값 "1"을 프로그래밍하기 위한 상승하는 양의 적색 램프(992)가 활성화되고, E3과 E4 사이의 값, 평균 ½(E3+E4), 최대 CNT1-1까지 진행된다. 이 시점에서, 코드워드가 정확할 수 있는 상황이 입력될 수 있다. 단일 지연 비트가 누락된 경우, 일부 추가 펄스들은 지연 비트의 전환을 강제도록 적용될 수 있다. 어떤 경우든, 코드워드가 ECC에 의해 수정될 수 있는 조건에 도달했다. 따라서, ECC는 이 시점에서 ECC가 점검될 수 있다.
프로그래밍 단계의 끝에서, 수정할 하나의 비트만이 존재할 경우, 오류가 유지될 수도 있고, 오류의 존재를 보고 한 코드워드들만 새로 고칠 것을 제안하는 신호가 컨트롤러로 전송될 수 있다. 예를 들어, 단일 오류(ECC에 의해 여전히 수정 가능)가 있는 프로그래밍된 코드워드를 얻은 경우, 이 마지막 코드를 대체할 코드워드의 새 프로그래밍 단계를 다른 메모리 위치로 시프트할 것을 제안할 수 있다.
도 10은 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원할 수 있는 메모리 컨트롤러(1015)의 블록도를 예시한다. 메모리 컨트롤러(1015)는 도 1을 참조하여 설명된 메모리 컨트롤러(140) 또는 도 5를 참조하여 설명된 메모리 컨트롤러(515)의 예일 수 있다. 메모리 컨트롤러(1015)는 바이어싱 컴포넌트(1065) 및 타이밍 컴포넌트(1055)를 포함할 수 있으며, 이는 도 5를 참조하여 설명된 바이어싱 컴포넌트(550) 및 타이밍 컴포넌트(555)의 예일 수 있다. 메모리 컨트롤러(1015)는 또한 제어 신호를 메모리 장치의 다른 컴포넌트들에 제공하고, 특히 액세스 동작들 동안 메모리 셀들을 바이어싱하기 위해 바이어싱 컴포넌트(1065) 및 타이밍 컴포넌트(1055)와 협력하는 시그널 매니저(1045)를 포함할 수 있다.
메모리 컨트롤러(1015)는 또한 프로그램 단계 동안 액세스 동작들을 관리하기 위한 프로그램 매니저(1098)를 포함할 수 있다. 예를 들어, 프로그램 매니저는 도 6을 참조하여 설명된 바와 같은 코드워드 프로그램 동작을 관리할 수 있다. 메모리 컨트롤러(1015)는 그 프로그래밍 매니저(1098)을 통해 사용자 데이터를 수신할 수 있다. 일부 예들에서, 메모리 컨트롤러(1015)는 메모리 셀들로부터 이전 사용자 데이터를 판독하고, 새로운 사용자 데이터를 기록하고, 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들로 병합할 수 있다. 그런 다음, 마스크 레지스터 정보가 생성될 수 있고, 마스크 레지스터 정보는 그 논리 값들이 스위칭되거나 스위칭되지 않는 메모리 셀들에 저장된 이전 사용자 데이터의 비트들을 나타낼 수 있다. 일부 예들에서, 메모리 컨트롤러(1015)는 마스크 레지스터 정보를 이용하여 기록되는 제1 논리 값(논리 "0") 및 제2 논리 값(논리 "1")의 수들을 각각 카운트하고, 제1 논리 값과 제2 논리 값의 수들을 각각 제1 카운터와 제2 카운터에 저장할 수 있다. 일부 예들에서, 메모리 컨트롤러(1015)는 마스크 레지스터 정보에 따라 메모리 셀들에 프로그래밍 펄스를 인가할 수 있다.
메모리 컨트롤러(1015)는 또한 예를 들어, 코드워드 판독과 같은 판독 액세스 동안 액세스 동작을 관리하기위한 판독 매니저(1099)를 포함할 수 있다. 판독 매니저는, 감지 매니저(1050), 기준 전압 매니저(또는 VREF 매니저)(1035) 및 셀 카운트 매니저(1040)와 협력하여, 예를 들어 도 6 내지 7을 참조하여 본원에 설명된 방법을 구현할 수 있다. 코드워드의 각 메모리 셀은 기준 전압에 대해 하나 또는 다른 논리 상태에 있는 것으로 결정되고, 기준 전압은 VREF 매니저(1035)의 제어 하에, 셀 카운트 매니저(1040)에 의해 결정된, 미리 정의된 논리 상태의 셀들의 카운트가 기준(criterium)을 충족할 때까지 수정된다. 일부 예들에서, 기준은 해당 논리 상태에서 예상되는 비트 수와 메모리 셀 카운트(마지막으로 변경된 기준 전압에 대해 결정됨)의 일치이며, 미리 결정된 논리 상태의 비트 수는 마지막 프로그래밍 동작 동안 저장되는 메모리 위치로부터 검색되었다. 일부 예들에서, 기준은 오류 정정 엔진(ECC)의 검출 능력 이상에 의해 미리 정의된 논리 상태에서 예상되는 비트 수와 다르지 않은 메모리 셀 카운트를 포함할 수 있다. 이러한 경우에, ECC 매니저(1097)의 제어 하에서, 오류 정정 알고리즘은 마지막으로 수정된 기준 전압에 대해 감지된 코드워드의 메모리 셀들에 적용될 수 있다. ECC 알고리즘은 일종의 시도 및 반복 접근 방식으로 여러 번 적용될 수 있다.
바이어싱(1065) 및 타이밍(1055) 컴포넌트들, 뿐만 아니라 VREF 매니저(1035), 시그널 매니저(1045), 프로그램 매니저(1098), 판독 매니저(1099), 감지 매니저(1050), VREF 매니저(1035), 셀 카운트 매니저(1040), ECC 매니저(1097) 및 메모리 컨트롤러의 기타 컴포넌트들 또는 모듈들은 (예를 들어, 하나 이상의 버스들을 통해) 직접 또는 간접적으로 서로 통신할 수 있다.
도 11은 본 개시의 예들에 따른 카운터들 및 ECC 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법을 지원할 수 있는 장치를 포함하는 시스템의 다이어그램을 예시한다. 장치(1105)는 예를 들어, 도 1을 참조하여, 상기에 설명된 바와 같은 메모리 디바이스(100)의 컴포넌트들의 예일 수 있거나 이를 포함할 수 있다. 장치(1105)는 메모리 컨트롤러(1115), 메모리 셀들(1110), 기본 I/O 시스템(BIOS) 컴포넌트(1125), 프로세서 (1130), I/O 컨트롤러(1135) 및 주변 컴포넌트들(1140)을 포함하여, 통신들을 송수신하기 위한 컴포넌트들을 포함하는 양방향 음성 및 데이터 통신들을 위한 컴포넌트들을 포함할 수 있다. 이러한 컴포넌트들은 하나 이상의 버스들(예를 들어, 버스(1101))을 통해 전자 통신될 수 있다.
메모리 컨트롤러(1115)는 본원에 설명된 바와 같은 하나 이상의 메모리 셀들을 동작시킬 수 있다. 구체적으로, 메모리 컨트롤러(1115)는 카운터들 및 ECC 피드백에 기초하여 메모리 셀에 대해 설명된 온 더 플라이 프로그래밍 및 검증 방법을 지원하도록 구성될 수 있다. 일부 경우에, 메모리 컨트롤러(1115)는 도 1을 참조하여 설명된 바와 같이, 행 컴포넌트, 열 컴포넌트 또는 이들의 조합을 포함할 수 있다.
메모리 셀들(1110)은 도 1 및 5를 참조하여 설명된 메모리 셀들(105 또는 510)의 예일 수 있으며, 본원에 설명된 바와 같은 정보(예를 들어, 논리 상태의 형태로)를 저장할 수 있다.
BIOS 컴포넌트(1125)는 다양한 하드웨어 컴포넌트들을 초기화하고 실행할 수 있는 펌웨어로 동작하는 BIOS를 포함하는 소프트웨어 컴포넌트이다. BIOS 컴포넌트(1125)는 또한 프로세서와 다양한 다른 컴포넌트들, 예를 들어 주변 컴포넌트들, I/O 제어 컴포넌트들 사이 등의 데이터 흐름을 관리할 수 있다. BIOS 컴포넌트(1125)는 읽기 전용 메모리(ROM), 플래시 메모리 또는 임의의 다른 비휘발성 메모리에 저장된 프로그램 또는 소프트웨어를 포함할 수 있다.
프로세서(1130)는 지능형 하드웨어 장치(예를 들어, 범용 프로세서, DSP, 중앙 처리 유닛(CPU), 마이크로 컨트롤러, ASIC, FPGA, 프로그램 가능 로직 장치, 이산 게이트 또는 트랜지스터 로직 컴포넌트, 이산 하드웨어 컴포넌트)를 포함할 수 있다. 일부 경우에, 프로세서(1130)는 메모리 컨트롤러를 사용하여 메모리 어레이를 동작시키도록 구성될 수 있다. 다른 경우에, 메모리 컨트롤러는 프로세서(1130)로 통합될 수 있다. 프로세서(1130)는 다양한 기능들을 수행하기 위해 메모리에 저장된 컴퓨터 판독 가능 인스트럭션들을 실행하도록 구성될 수 있다.
I/O 컨트롤러(1135)는 장치(1105)에 대한 입력 및 출력 신호들을 관리할 수 있다. I/O 컨트롤러(1135)는 또한 장치에 통합되지 않은 주변 장치들을 관리할 수 있다. 일부 경우, I/O 컨트롤러(1135)는 외부 주변기기에 대한 물리적 연결 또는 포트를 나타낼 수 있다. 일부 경우에, I/O 컨트롤러(1135)는 iOS®, ANDROID®, MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, LINUX® 또는 다른 알려진 운영 체제와 같은 운영 체제를 이용할 수 있다. 다른 경우에, I/O 컨트롤러(1135)는 모뎀, 키보드, 마우스, 터치 스크린 또는 유사한 장치를 나타내거나 상호 작용할 수 있다. 일부 경우에, I/O 컨트롤러(1135)는 프로세서의 일부로 구현될 수 있다. 일부 경우에, 사용자는 I/O 컨트롤러(1135)를 통해 또는 I/O 컨트롤러(1135)에 의해 제어된 하드웨어 컴포넌트들을 통해 장치(1105)와 상호작용할 수 있다. I/O 컨트롤러(1135)는 메모리 셀들(1110) 중 하나 이상의 감지된 논리 상태와 관련된 정보를 수신하거나, 메모리 셀들(1110) 중 하나 이상의 논리 상태를 기록하는 것과 관련된 정보를 제공하는 것을 포함하여, 메모리 셀들(1110)에 액세스하는 것을 지원할 수 있다.
주변 컴포넌트들(1140)은 임의의 입력 또는 출력 장치, 또는 이러한 장치들에 대한 인터페이스를 포함할 수 있다. 예들은 디스크 컨트롤러들, 사운드 컨트롤러, 그래픽 컨트롤러, 이더넷 컨트롤러, 모뎀, 범용 직렬 버스(USB) 컨트롤러, 직렬 또는 병렬 포트, 또는 PCI(peripheral component interconnect) 또는 AGP(accelerated graphics port) 슬롯들과 같은 주변 카드 슬롯들을 포함할 수 있다.
입력(1141)은 장치(1105) 또는 그 컴포넌트들에 입력을 제공하는 장치(1105) 외부의 장치 또는 신호를 나타낼 수 있다. 이는 사용자 인터페이스 또는 다른 장치들과의 인터페이스 또는 다른 장치들 간의 인터페이스를 포함할 수 있다. 일부 경우에, 입력(1141)은 I/O 컨트롤러(1135)에 의해 관리될 수 있으며, 주변 컴포넌트(1140)를 통해 장치(1105)와 상호작용할 수 있다.
출력(1142)은 또한 장치(1105) 또는 그 임의의 컴포넌트들로부터 출력을 수신하도록 구성된 장치(1105) 외부의 장치 또는 신호를 나타낼 수 있다. 출력(1142)의 예들로는, 디스플레이, 오디오 스피커들, 프린팅 장치, 다른 프로세서 또는 인쇄 회로 기판 또는 다른 장치들을 포함할 수 있다. 일부 경우에, 출력(1142)은 주변 컴포넌트(들)(1140)을 통해 장치(1105)와 상호작용하는 주변 요소일 수 있다. 일부 경우에, 출력(1142)은 I/O 컨트롤러(1135)에 의해 관리될 수 있다.
장치(1105)의 컴포넌트들은 그 기능들을 수행하도록 설계된 회로를 포함할 수 있다. 이는 다양한 회로 소자들, 예를 들어, 전도성 라인들, 트랜지스터들, 커패시터들, 인덕터들, 저항들, 증폭기들 또는 본원에 기술된 기능들을 수행하도록 구성된 다른 능동 또는 비활성 소자들을 포함할 수 있다. 장치(1105)는 컴퓨터, 서버, 랩탑 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 모바일 폰, 웨어러블 전자 장치, 개인용 전자 장치 등일 수 있다. 또는 장치(1105)는 이러한 장치의 일부 또는 요소일 수 있다.
일부 예들에서, 메모리 셀들의 동작 방법이 설명된다. 상기 방법은 메모리 셀들로부터 이전 사용자 데이터를 판독하는 단계, 새로운 사용자 데이터를 기록하고 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들에 병합하는 단계, 마스크 레지스터 정보를 생성하는 단계로서, 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 메모리 셀들에 저장된 이전 사용자 데이터의 비트들을 나타내는, 상기 생성하는 단계, 마스크 레지스터 정보를 사용하여 각각 기록되는 제1 논리 값 및 제2 논리 값의 수들을 카운팅하는 단계, 제1 논리 값 및 상기 제2 논리 값의 수들을 각각 제1 카운터 및 제2 카운터로 저장하는 단계, 및 마스크 레지스터 정보에 따라 상기 메모리 셀들에 프로그래밍 펄스를 인가하는 단계를 포함한다.
일부 예들에서, 본원에 설명된 장치는 방법 또는 방법들을 수행할 수 있다. 상기 장치는, 메모리 셀들로부터 이전 사용자 데이터를 판독하고, 새로운 사용자 데이터를 기록하고 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들에 병합하고, 마스크 레지스터 정보를 생성하되, 상기 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 메모리 셀들에 저장된 이전 사용자 데이터의 비트들을 나타내고, 마스크 레지스터 정보를 사용하여 각각 기록되는 제1 논리 값 및 제2 논리 값의 수들을 카운팅하고, 제1 논리 값 및 제2 논리 값의 상기 수들을 각각 제1 카운터 및 제2 카운터로 저장하고, 마스크 레지스터 정보에 따라 메모리 셀들에 프로그래밍 펄스를 인가하기 위한 특징들, 회로부, 로직, 수단 또는 인스트럭션들(예를 들어, 프로세서에 의해 실행 가능한 인스트럭션들을 저장하는 비일시적 컴퓨터 판독 가능 매체)을 포함할 수 있다.
본원에 설명된 방법 및 장치의 일부 예들은 새로운 사용자 데이터의 각 비트의 논리 값과 이전 사용자 데이터의 각 비트의 논리 값을 비교하기 위한 동작들, 특징들, 회로부, 로직, 수단 또는 인스트럭션들을 더 포함할 수 있다.
본원에 설명된 방법 및 장치의 일부 예들에서, 논리 값이 전환될 비트에 대해, 비트가 그 논리 값이 전환될 수 있으면 프로그래밍 펄스가 상승하는 것이 중지될 수 있고, 논리 값이 전환되지 않을 비트에 대해, 프로그래밍 펄스가 시프트될 수 있다.
본원에 설명된 방법 및 장치의 일부 예들에서, 각 메모리 셀은 메모리 셀이 완전히 프로그래밍되지 않았을 때, 메모리 셀이 원하는 논리 값으로 전환될 때까지 추가 프로그래밍 펄스가 인가되도록 프로그래밍 및 감지될 수 있다.
본원에 설명된 방법 및 장치의 일부 예들은 새로운 ECC 패리티를 계산하기 위한 동작들, 특징들, 회로부, 로직, 수단 또는 인스트럭션들을 더 포함할 수 있다.
본원에 설명된 방법 및 장치의 일부 예들은 프로그래밍 펄스의 인가 동안 전환되도록 트리거되는 메모리 셀들의 수를 카운팅하고, 카운터 정보 및 ECC 피드백을 사용하여 메모리 셀들에 프로그래밍 펄스를 인가하되, 상기 ECC 피드백은 전환된 셀들의 수와 제1 논리 값 및 제2 논리 값의 수들 사이의 비교 정보를 나타내기 위한 동작들, 특징들, 회로부, 로직, 수단 또는 인스트럭션들을 더 포함할 수 있다.
본원에 설명된 방법 및 장치의 일부 예들에서, 메모리 셀들로 기록된 새로운 사용자 데이터는 ECC 피드백에 따라 복구 가능할 수 있다.
본원에 설명된 방법 및 장치의 일부 예들에서, 프로그래밍 펄스는 임계값 미만일 수 있다.
본원에 설명된 방법 및 장치의 일부 예들에서, 프로그래밍 펄스는 램프형, 계단형, 가변 슬루-레이트(slew-rate) 램프형, 가변 스텝 계단형 또는 이들의 임의의 조합들로부터 선택될 수 있다.
본원에 설명된 방법 및 장치의 일부 예들에서, 제1 논리 값의 수가 제2 논리 값의 수보다 클 때, 제1 논리 값이 프로그래밍된 후 제2 논리 값이 프로그래밍될 수 있고, 제2 논리 값의 수가 제1 논리 값의 수보다 클 때, 제2 논리 값이 프로그래밍된 후 제1 논리 값이 프로그래밍될 수 있으며, 프로그래밍될 타일당 하나의 비트만 존재할 때, 제1 논리 값 및 제2 논리 값이 동시에 프로그래밍될 수 있다.
또 다른 장치가 설명된다. 상기 장치는 메모리 셀들로부터 이전 사용자 데이터를 판독하고, 새로운 사용자 데이터를 기록하고 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들에 병합하고, 마스크 레지스터 정보를 생성하되, 상기 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 상기 메모리 셀들에 저장된 상기 이전 사용자 데이터의 비트들을 나타내고, 마스크 레지스터 정보를 사용하여 각각 기록되는 제1 논리 값 및 제2 논리 값의 수들을 카운팅하고, 제1 논리 값 및 제2 논리 값의 수들을 각각 제1 카운터 및 제2 카운터로 저장하고, 마스크 레지스터 정보에 따라 메모리 셀들에 프로그래밍 펄스를 인가하도록 구성된 액세스 회로부를 포함할 수 있다.
상기 장치의 일부 예들에서, 액세스 회로부는, 새로운 사용자 데이터를 기록하고 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들에 병합하는 단계에서, 새로운 사용자 데이터의 각 비트의 논리 값과 이전 사용자 데이터의 각 비트의 논리 값을 비교하도록 하는 것일 수 있다.
상기 장치의 일부 예들에서, 액세스 회로부는, 프로그래밍 펄스를 마스크 레지스터 정보에 따라 메모리 셀들에 인가하는 단계에서, 논리 값이 전환될 비트에 대해, 비트가 그 논리 값이 전환되면 프로그래밍 펄스 상승을 중지시키고, 논리 값이 전환되지 않을 비트에 대해, 프로그래밍 펄스를 시프트시키도록 하는 것일 수 있다.
상기 장치의 일부 예들에서, 메모리 셀이 완전히 프로그램되지 않았을 때, 메모리 셀이 원하는 논리 값으로 전환될 때까지 추가 프로그래밍 펄스가 인가되도록 각 메모리 셀을 감지하는 감지 회로부.
상기 장치의 일부 예들에서, 액세스 회로부는, 새로운 사용자 데이터를 기록하고 새로운 사용자 데이터와 이전 사용자 데이터를 기록 레지스터들에 병합하는 단계에서, 새로운 ECC 패리티를 계산하도록 하는 것일 수 있다.
상기 장치의 일부 예들에서, 액세스 회로부는, 프로그래밍 펄스의 인가 동안 전환되도록 트리거되는 메모리 셀들의 수를 카운트하고, 카운터 정보 및 ECC 피드백을 사용하여 메모리 셀들에 프로그래밍 펄스를 인가하되, ECC 피드백은 전환된 셀들의 수와 상기 제1 논리 값 및 상기 제2 논리 값의 수들 사이의 비교 정보를 나타내도록 더 구성될 수 있다.
상기 장치의 일부 예들에서, 메모리 셀들로 기록된 새로운 사용자 데이터는 ECC 피드백에 따라 복구 가능할 수 있다.
기 장치의 일부 예들에서, 프로그래밍 펄스는 임계값 미만일 수 있다.
상기 장치의 일부 예들에서, 프로그래밍 펄스는 램프형, 계단형, 가변 슬루-레이트 램프형, 가변 스텝 계단형 또는 이들의 임의의 조합들로부터 선택될 수 있다.
상기 장치의 일부 예들에서, 제1 논리 값의 수가 제2 논리 값의 수보다 클 때, 제1 논리 값이 프로그래밍된 후 제2 논리 값이 프로그래밍될 수 있고, 제2 논리 값의 수가 제1 논리 값의 수보다 클 때, 제2 논리 값이 프로그래밍된 후 제1 논리 값이 프로그래밍될 수 있으며, 프로그래밍될 타일당 하나의 비트만 존재할 때, 제1 논리 값 및 제2 논리 값이 동시에 프로그래밍될 수 있다.
본원의 설명은 예들을 제공하며, 청구 범위에 제시된 범위, 적용성 또는 예들을 제한하지 않는다. 본 개시의 범위를 벗어나지 않고 논의된 요소들의 기능 및 배열에서 변경이 이루어질 수 있다. 일부 예들은 다양한 절차들 또는 컴포넌트들을 적절히 생략, 대체 또는 추가할 수 있다. 또한, 일부 예들에 대해 설명된 특징들은 다른 예들에 결합될 수 있다.
본원에 설명된 정보 및 신호들은 임의의 다양한 다른 기술들 및 기법들을 사용하여 나타낼 수 있다. 예를 들어, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 인스트럭션들, 커맨드들, 정보, 신호들, 비트들, 기호들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광학 필드들 또는 광학 입자들 또는 이들의 임의의 조합으로 표현될 수 있다. 일부 도면들은 단일 신호로서 신호들을 예시할 수 있다; 그러나, 신호는 신호 버스를 나타낼 수 있으며, 버스는 다양한 비트 폭들을 가질 수 있다는 것이 당업자에 의해 이해될 것이다.
본원에 사용된 바와 같이, 용어 "가상 접지"는 대략 제로 볼트(0V)의 전압에서 유지되거나, 보다 일반적으로는 전기 회로를 포함하는 전기 회로 또는 장치의 기준 전압을 나타내는 전기 회로 노드를 지칭할 수 있으며, 이는 접지와 직접 연결되거나 연결되지 않을 수 있다. 따라서, 가상 접지의 전압이 일시적으로 변동될 수 있으며 정상 상태에서 대략 0V 또는 가상 0V로 리턴될 수 있다. 가상 접지는 연산 증폭기들 및 저항들로 구성된 전압 분배기와 같은 다양한 전자 회로 소자들을 사용하여 구현될 수 있다. 다른 구현예들도 가능하다. "가상 접지(Virtual grounding)" 또는 "사실상 접지(virtually grounded)"는 약 0V에 연결된 것을 의미하거나, 또는 장치의 일부 다른 기준 전압에 연결된 것을 의미한다.
"전자 통신(electronic communication)" 및 "결합된(coupled)"이라는 용어는 컴포넌트들 사이의 전자 흐름을 지원하는 컴포넌트들 간의 관계를 지칭한다. 이는 컴포넌트들 간의 직접 연결 또는 결합을 포함할 수 있거나 중간 컴포넌트들(intermediate components)을 포함할 수 있다. 즉, "연결된(connected with)" 또는 "결합된(coupled with)" 컴포넌트들은 서로 전자 통신한다. 전자 통신하는 컴포넌트들은 (예를 들어, 통전 회로에서의) 전자들 또는 신호들을 능동적으로 교환하거나, (예를 들어, 무전압 회로(de-energized circuit)에서의) 전자들 또는 신호들을 능동적으로 교환하지 않을 수 있지만, 회로가 통전될 시 전자들 또는 신호들을 교환하도록 구성되어 동작될 수 있다. 예로서, 스위치(예를 들어, 트랜지스터)를 통해 물리적으로 연결되거나 결합된 두 컴포넌트들은 스위치의 상태(예를 들어, 개방, 폐쇄)와 관계없이 통신할 수 있다.
"~ 사이에 결합된(coupled between)" 이라는 문구는 서로 관련된 컴포넌트들의 순서를 지칭할 수 있으며, 전기적 결합을 지칭할 수 있다. 일 예에서, 컴포넌트 "A"와 컴포넌트 "C" 사이에 전기적으로 연결되는 컴포넌트 "B"는 전기적 의미에서 "A-B-C" 또는 "C-B-A"의 컴포넌트들의 순서를 지칭할 수 있다. 다시 말해, 전기 신호들(예를 들어, 전압, 전하, 전류)은 컴포넌트 B를 통해 컴포넌트 A에서 컴포넌트 C로 전달될 수 있다.
컴포넌트 A와 컴포넌트 C "사이에 결합된" 컴포넌트 B의 설명은 설명된 순서에서 다른 개입 컴포넌트들을 배제하는 것으로 해석되지 않을 수 있다. 예를 들어, 컴포넌트 "D"는 설명된 컴포넌트 A와 컴포넌트 B 사이에 연결(예를 들어, "A-D-B-C" 또는 "C-B-D-A"의 컴포넌트들의 순서를 예로서 참조하여)될 수 있으며, 동시에 컴포넌트 B가 컴포넌트 A와 컴포넌트 C 사이에 전기적으로 연결되는 여전히 지원한다. 다시 말해, "~ 사이에 결합된" 이라는 문구의 사용은 반드시 배타적인 순차적인 순서를 말하는 것으로 해석되어서는 안된다.
또한, 컴포넌트 B가 컴포넌트 A와 컴포넌트 C "사이에 결합"되는 것에 대한 설명은 컴포넌트 A와 컴포넌트 C 사이의 두 번째 다른 결합을 배제하지 않는다. 예를 들어, 컴포넌트 A와 컴포넌트 C는 컴포넌트 B를 통한 결합과 전기적으로 평행한 별도의 결합으로 서로 결합될 수 있다. 다른 예에서, 컴포넌트 A와 컴포넌트 C는 다른 컴포넌트 "E"를 통해 결합될 수 있다(예를 들어, 컴포넌트 B는 컴포넌트 A와 컴포넌트 C 사이에 결합되고 컴포넌트 E는 컴포넌트 A와 컴포넌트 C 사이에 결합된다). 다시 말해, "~ 사이에 결합된" 이라는 문구의 사용은 컴포넌트들 간 배타적인 결합으로 해석되어서는 안된다.
"절연된(isolated)"이라는 용어는 전자들이 현재 그들 사이에 흐를 수 없는 컴포넌트들 사이의 관계를 지칭하며; 컴포넌트들은 컴포넌트들 간에 개방 회로가 있는 경우 서로 절연된다. 예를 들어, 스위치에 의해 물리적으로 연결된 2개의 컴포넌트들은 스위치가 개방될 때 서로 절연될 수 있다.
본원에 사용된 바와 같이, "단락(shorting)"이라는 용어는 문제의 두 컴포넌트들 사이에서 단일 중개자 컴포넌트의 활성화를 통해 컴포넌트들 사이에 전도성 경로가 확립되는 컴포넌트들 사이의 관계를 지칭한다. 예를 들어, 제2 컴포넌트에 대해 단락된 제1 컴포넌트는 2개의 컴포넌트들 사이의 스위치가 닫힐 때 제2 컴포넌트와 전자를 교환할 수 있다. 따라서, 단락은 전자 통신 중에 있는 컴포넌트들(또는 라인들) 사이의 전압의 인가 및/또는 전하 흐름을 가능하게 하는 동적 동작일 수 있다.
본원에 사용된 바와 같이, "단자(terminal)"라는 용어는 회로 소자의 물리적 경계 또는 연결 지점을 제안하지 않을 수 있다. 오히려, "단자"는 회로 소자와 관련된 회로의 기준점을 지칭할 수 있으며, 이는 "노드" 또는 "기준점"으로도 지칭될 수 있다.
메모리 디바이스를 포함하는, 본원에서 논의된 장치는 실리콘, 게르마늄, 실리콘-게르마늄 합금, 갈륨 비소, 질화 갈륨 등과 같은 반도체 기판 상에 형성될 수 있다. 일부 경우, 기판은 반도체 웨이퍼이다. 다른 경우, 기판은 실리콘-온-유리(silicon-on-glass; SOG) 또는 실리콘-온-사파이어(silicon-on-sapphire; SOP)와 같은 실리콘-온-절연체(silicon-on-insulator; SOI) 기판, 또는 다른 기판 상의 반도체 물질들의 에피택셜 층들(epitaxial layers)일 수 있다. 기판, 또는 기판의 서브-영역의 전도성은, 제한하는 것은 아니나, 인, 붕소 또는 비소를 포함하는, 다양한 화학 종들을 사용하여 도핑을 통해 제어될 수 있다. 도핑은 기판의 초기 형성 또는 성장 동안, 이온 주입에 의해 또는 임의의 다른 도핑 수단에 의해 수행될 수 있다.
본원에 논의된 트랜지스터 또는 트랜지스터들은 전계 효과 트랜지스터(FET)를 나타낼 수 있으며, 소스, 드레인 및 게이트를 포함하는 3 단자 장치를 포함할 수 있다. 단자들은 금속들과 같은 전도성 물질들을 통해 다른 전자 소자들에 연결될 수 있다. 소스 및 드레인은 전도성일 수 있으며, 고농도로 도핑되거나, 축퇴(degenerate) 반도체 영역을 포함할 수 있다. 소스 및 드레인은 저농도로 도핑된 반도체 영역 또는 채널에 의해 분리될 수 있다. 채널이 n 형인 경우(예를 들어, 다수의 캐리어들이 전자들인 경우), FET는 n형 FET로 지칭될 수 있다. 채널이 p 형인 경우(예를 들어, 다수의 캐리어들이 홀(hole)들인 경우), FET는 p형 FET로 지칭될 수 있다. 채널은 절연 게이트 산화물에 의해 캡핑될(capped) 수 있다. 채널 전도성은 게이트에 전압을 인가함으로써 제어될 수 있다. 예를 들어, n-형 FET 또는 p-형 FET에 각각 양의 전압 또는 음의 전압을 인가하면 채널이 전도성이 될 수 있다. 트랜지스터는 트랜지스터의 문턱 전압 이상의 전압이 트랜지스터 게이트에 인가될 때 "온(on)" 또는 "활성화(activated)"될 수 있다. 트랜지스터는 트랜지스터의 문턱 전압보다 낮은 전압이 트랜지스터 게이트에 인가될 때 "오프(off)" 또는 "비활성화(deactivated)"될 수 있다.
첨부된 도면들과 관련하여 본원에 명시된 설명은 예시적인 구성들을 설명하며, 구현될 수 있거나 청구 범위의 범주 내에 있는 모든 예들을 나타내지는 않는다. 본원에 사용된 "예시적인(exemplary)" 이라는 용어는 "예, 실례 또는 예시로서 제공되는(serving as an example, instance, or illustration)"을 의미하며, "바람직한(preferred)" 또는 "다른 예보다 유리한(advantageous over other examples)"을 의미하는 것은 아니다. 상세한 설명은 설명된 기술들의 이해를 제공하기 위한 특정 세부 사항들을 포함한다. 그러나, 이러한 기술들은 이들 특정 세부 사항들 없이도 실시될 수 있다. 일부 예들에서, 잘 알려진 구조들 및 장치들은 설명된 예들의 개념들을 모호하게 하는 것을 피하기 위해 블록도 형태로 도시된다.
첨부된 도면들에서, 유사한 컴포넌트들 또는 특징들은 동일한 기준 라벨을 가질 수 있다. 또한, 동일한 유형의 다양한 컴포넌트들은 유사한 컴포넌트들 사이를 구별하는 대시(dash) 및 제2 라벨에 의해 기준 라벨을 따라 구별될 수 있다. 명세서에서 제1 기준 라벨만 사용되는 경우, 설명은 제2 기준 라벨에 상관없이 동일한 제1 기준 라벨을 갖는 유사한 컴포넌트들 중 어느 하나에 적용될 수 있다.
본원에서 본 개시와 관련하여 설명된 다양한 예시 블록들과 모듈들은 범용 프로세서, DSP, ASIC, FPGA 또는 기타 프로그래밍 가능한 로직 장치, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 본원에 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합을 사용하여 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로 프로세서일 수 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 컨트롤러, 마이크로 컨트롤러, 또는 상태 머신일 수 있다. 프로세서는 또한 컴퓨팅 장치들의 조합(예를 들어, DSP(digital signal processor) 및 마이크로 프로세서, 다중 마이크로 프로세서들, DSP 코어와 관련된 하나 이상의 마이크로 프로세서들, 또는 임의의 다른 구성)의 조합으로 구현될 수 있다.
본원에 설명된 기능들은 하드웨어, 프로세서에 의해 실행되는 소프트웨어, 펌웨어 또는 이들의 임의의 조합으로 구현될 수 있다. 프로세서에 의해 실행되는 소프트웨어로 구현되는 경우, 기능들은 컴퓨터 판독 가능 매체 상에 하나 이상의 인스트럭션들 또는 코드로 저장되거나 전송될 수 있다. 다른 예들 및 구현예들은 본 개시 및 첨부된 청구의 범위 내에 있다. 예를 들어, 소프트웨어의 특성으로 인해, 위에 설명된 기능들은 프로세서, 하드웨어, 펌웨어, 하드와이어링(hardwiring) 또는 이들 중 임의의 조합들에 의해 실행되는 소프트웨어를 사용하여 구현될 수 있다. 기능들을 구현하는 특징들은 기능들의 일부가 상이한 물리적 위치들에서 구현되도록 분산되는 것을 포함하여 다양한 위치들에 물리적으로 위치될 수 있다. 또한, 청구 범위를 포함하여 본원에 사용된 바와 같이, 항목들의 목록에 사용된 바와 같은 "또는(or)"(예를 들어, "~ 중 적어도 하나(at least one of)" 또는 "~ 중 하나 이상(one or more of)"과 같은 문구로 시작되는 항목들의 목록)은 예를 들어, A, B 또는 C 중 적어도 하나가 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC를 의미하는 포괄적인 리스트(예를 들어, A 및 B 및 C)를 나타낸다.
본 명세서에서 사용되는 "실질적으로(substantially)"라는 용어는 수정된 특성들(예를 들어, "실질적으로" 용어에 의해 수정된 동사 또는 형용사)이 절대적일 필요는 없지만 특성의 이점들을 달성하기에 충분히 가깝거나, 언급된 특성이 본 개시의 관련 양태들의 맥락에서 진실일 정도로 충분히 가까울 수 있다는 것을 의미한다.
본원에 사용된 바와 같이, "~에 기초하는(based on)"이라는 구문은 닫힌 조건 세트에 대한 참조로 해석되지 않아야 한다. 예를 들어, "조건 A에 기초하여" 기술된 예시적인 단계는 본 개시의 범위를 벗어나지 않고 조건 A 및 조건 B 둘 다에 기초할 수 있다. 다시 말해, 본원에 사용된 바와 같이, "~에 기초하는"이라는 구문은 "~에 적어도 부분적으로 기초하는(based at least in part on)" 이라는 구문과 동일한 방식으로 해석되어야 한다.
본원의 설명은 당업자가 본 개시를 실시하거나 사용할 수 있도록 제공된다. 본 개시에 대한 다양한 수정들은 당업자에게 명백할 것이며, 본원에 정의된 일반적인 원리들은 본 개시의 범위를 벗어나지 않고 다른 변형들에 적용될 수 있다. 따라서, 본 개시는 본원에 설명된 예들 및 설계들에 제한되지 않으며, 본원에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 따라야 한다.

Claims (20)

  1. 메모리 셀들의 동작 방법에 있어서,
    상기 메모리 셀들로부터 이전 사용자 데이터를 판독하는 단계;
    새로운 사용자 데이터를 기록하고 상기 새로운 사용자 데이터와 상기 이전 사용자 데이터를 기록 레지스터들에 병합하고 새로운 ECC 패리티를 계산하는 단계;
    마스크 레지스터 정보를 생성하는 단계로서, 상기 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 상기 메모리 셀들에 저장된 상기 이전 사용자 데이터의 비트들을 나타내는, 상기 생성하는 단계;
    상기 마스크 레지스터 정보를 사용하여 각각 기록되는 제1 논리 값 및 제2 논리 값의 수들을 카운팅하는 단계;
    상기 제1 논리 값 및 상기 제2 논리 값의 상기 수들을 각각 제1 카운터 및 제2 카운터로 저장하는 단계;
    프로그래밍 펄스 동안 전환되도록 트리거되는 상기 메모리 셀들의 수를 카운팅하는 단계; 및
    카운터 정보 및 ECC 피드백을 사용하여 상기 마스크 레지스터 정보에 따라 상기 메모리 셀들에 상기 프로그래밍 펄스를 인가하는 단계로서, 상기 ECC 피드백은 전환된 셀들의 수와 상기 제1 논리 값 및 상기 제2 논리 값의 수들 사이의 비교 정보를 나타내는, 상기 인가하는 단계를 포함하는, 메모리 셀들의 동작 방법.
  2. 제1항에 있어서, 상기 새로운 사용자 데이터를 기록하고 상기 새로운 사용자 데이터와 상기 이전 사용자 데이터를 상기 기록 레지스터들에 병합하는 단계에서,
    상기 새로운 사용자 데이터의 각 비트의 논리 값과 상기 이전 사용자 데이터의 각 비트의 논리 값을 비교하는 단계를 더 포함하는, 메모리 셀들의 동작 방법.
  3. 제1항에 있어서, 상기 마스크 레지스터 정보에 따라 상기 메모리 셀들에 상기 프로그래밍 펄스를 인가하는 단계에서,
    논리 값이 전환될 비트에 대해, 상기 비트가 그 논리 값이 전환되면 상기 프로그래밍 펄스가 상승되는 것이 중지되고,
    논리 값이 전환되지 않을 비트에 대해, 상기 프로그래밍 펄스가 시프트되는 것을 더 포함하는, 메모리 셀들의 동작 방법.
  4. 제1항에 있어서,
    각 메모리 셀은 메모리 셀이 완전히 프로그래밍되지 않았을 때, 상기 메모리 셀이 원하는 논리 값으로 전환될 때까지 추가 프로그래밍 펄스가 인가되도록 프로그래밍 및 감지되는, 메모리 셀들의 동작 방법.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 메모리 셀들로 기록된 상기 새로운 사용자 데이터는 상기 ECC 피드백에 따라 복구 가능한, 메모리 셀들의 동작 방법.
  8. 제1항에 있어서, 상기 프로그래밍 펄스는 임계값 미만인, 메모리 셀들의 동작 방법.
  9. 제1항에 있어서,
    상기 프로그래밍 펄스는 램프형, 계단형, 가변 슬루-레이트(slew-rate) 램프형, 가변 스텝 계단형 또는 이들의 임의의 조합들로부터 선택되는, 메모리 셀들의 동작 방법.
  10. 제1항에 있어서,
    상기 제1 논리 값의 수가 상기 제2 논리 값의 수보다 클 때, 상기 제1 논리 값이 프로그래밍된 후 상기 제2 논리 값이 프로그래밍되고;
    상기 제2 논리 값의 수가 상기 제1 논리 값의 수보다 클 때, 상기 제2 논리 값이 프로그래밍된 후 상기 제1 논리 값이 프로그래밍되고;
    프로그래밍될 타일당 하나의 비트만 존재할 때, 상기 제1 논리 값 및 상기 제2 논리 값이 동시에 프로그래밍되는, 메모리 셀들의 동작 방법.
  11. 메모리 셀들을 동작시키기 위한 회로에 있어서,
    액세스 회로부로서,
    상기 메모리 셀들로부터 이전 사용자 데이터를 판독하고;
    새로운 사용자 데이터를 기록하고 상기 새로운 사용자 데이터와 상기 이전 사용자 데이터를 기록 레지스터들에 병합하고 새로운 ECC 패리티를 계산하고;
    마스크 레지스터 정보를 생성하되, 상기 마스크 레지스터 정보는 그 논리 값들이 전환되거나 전환되지 않는 상기 메모리 셀들에 저장된 상기 이전 사용자 데이터의 비트들을 나타내고;
    상기 마스크 레지스터 정보를 사용하여 각각 기록되는 제1 논리 값 및 제2 논리 값의 수들을 카운팅하고;
    상기 제1 논리 값 및 상기 제2 논리 값의 상기 수들을 각각 제1 카운터 및 제2 카운터로 저장하고;
    프로그래밍 펄스 동안 전환되도록 트리거되는 상기 메모리 셀들의 수를 카운트하고;
    카운터 정보 및 ECC 피드백을 사용하여 상기 마스크 레지스터 정보에 따라 상기 메모리 셀들에 프로그래밍 펄스를 인가하되, 상기 ECC 피드백은 전환된 셀들의 수와 상기 제1 논리 값 및 상기 제2 논리 값의 수들 사이의 비교 정보를 나타내도록 구성되는, 상기 액세스 회로부를 포함하는, 메모리 셀들을 동작시키기 위한 회로.
  12. 제11항에 있어서, 상기 액세스 회로부는, 상기 새로운 사용자 데이터를 기록하고 상기 새로운 사용자 데이터와 상기 이전 사용자 데이터를 상기 기록 레지스터들에 병합하는 단계에서,
    상기 새로운 사용자 데이터의 각 비트의 논리 값과 상기 이전 사용자 데이터의 각 비트의 논리 값을 비교하도록 하는, 메모리 셀들을 동작시키기 위한 회로.
  13. 제11항에 있어서, 상기 액세스 회로부는 상기 마스크 레지스터 정보에 따라 상기 메모리 셀들에 상기 프로그래밍 펄스를 인가하는 단계에서,
    논리 값이 전환될 비트에 대해, 상기 비트가 그 논리 값이 전환되면 상기 프로그래밍 펄스 상승을 중지시키고,
    논리 값이 전환되지 않을 비트에 대해, 상기 프로그래밍 펄스를 시프트시키도록 하는, 메모리 셀들을 동작시키기 위한 회로.
  14. 제11항에 있어서,
    메모리 셀이 완전히 프로그램되지 않았을 때, 상기 메모리 셀이 원하는 논리 값으로 전환될 때까지 추가 프로그래밍 펄스가 인가되도록 각 메모리 셀을 감지하는 감지 회로부를 더 포함하는, 메모리 셀들을 동작시키기 위한 회로.
  15. 삭제
  16. 삭제
  17. 제11항에 있어서,
    상기 메모리 셀들로 기록된 상기 새로운 사용자 데이터는 상기 ECC 피드백에 따라 복구 가능한, 메모리 셀들을 동작시키기 위한 회로.
  18. 제11항에 있어서, 상기 프로그래밍 펄스는 임계값 미만인, 메모리 셀들을 동작시키기 위한 회로.
  19. 제11항에 있어서,
    상기 프로그래밍 펄스는 램프형, 계단형, 가변 슬루-레이트 램프형, 가변 스텝 계단형 또는 이들의 임의의 조합들로부터 선택되는, 메모리 셀들을 동작시키기 위한 회로.
  20. 제11항에 있어서,
    상기 제1 논리 값의 수가 상기 제2 논리 값의 수보다 클 때, 상기 제1 논리 값이 프로그래밍된 후 상기 제2 논리 값이 프로그래밍되고;
    상기 제2 논리 값의 수가 상기 제1 논리 값의 수보다 클 때, 상기 제2 논리 값이 프로그래밍된 후 상기 제1 논리 값이 프로그래밍되고;
    프로그래밍될 타일당 하나의 비트만 존재할 때, 상기 제1 논리 값 및 상기 제2 논리 값이 동시에 프로그래밍되는, 메모리 셀들을 동작시키기 위한 회로.
KR1020200185812A 2020-03-03 2020-12-29 카운터 및 ecc 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법 KR102413476B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IBPCT/IB2020/000080 2020-03-03
PCT/IB2020/000080 WO2021176243A1 (en) 2020-03-03 2020-03-03 On-the-fly programming and verifying method for memory cells based on counters and ecc feedback
US17/075,502 2020-10-20
US17/075,502 US11450358B2 (en) 2020-03-03 2020-10-20 On-the-fly programming and verifying method for memory cells based on counters and ECC feedback

Publications (2)

Publication Number Publication Date
KR20210112235A KR20210112235A (ko) 2021-09-14
KR102413476B1 true KR102413476B1 (ko) 2022-06-27

Family

ID=77555840

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200185812A KR102413476B1 (ko) 2020-03-03 2020-12-29 카운터 및 ecc 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법

Country Status (4)

Country Link
US (1) US11450358B2 (ko)
JP (1) JP2021140856A (ko)
KR (1) KR102413476B1 (ko)
WO (1) WO2021176243A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220284955A1 (en) * 2021-03-03 2022-09-08 Weebit Nano Ltd. Circuitry for parallel set and reset of resistive random-access memory (reram) cells
US11715520B2 (en) 2021-04-05 2023-08-01 Micron Technology, Inc. Socket structure for spike current suppression in a memory array
US11348640B1 (en) * 2021-04-05 2022-05-31 Micron Technology, Inc. Charge screening structure for spike current suppression in a memory array
US11862215B2 (en) 2021-08-27 2024-01-02 Micron Technology, Inc. Access line having a resistive layer for memory cell access

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3164832B2 (ja) 1991-03-22 2001-05-14 株式会社日立製作所 描画制御装置
US5544306A (en) 1994-05-03 1996-08-06 Sun Microsystems, Inc. Flexible dram access in a frame buffer memory and system
DE69521741T2 (de) 1994-05-03 2002-05-23 Sun Microsystems Inc Direktzugriffspeicher und System für Rasterpuffer
US7333880B2 (en) 2002-12-09 2008-02-19 Enernoc, Inc. Aggregation of distributed energy resources
US7263018B2 (en) 2003-07-22 2007-08-28 Nxp B.V. Compensating a long read time of a memory device in data comparison and write operations
KR100763533B1 (ko) * 2006-06-01 2007-10-05 삼성전자주식회사 버스 인버팅 코드 생성 장치 및 이를 이용한 버스 인버팅코드 생성 방법
KR100781550B1 (ko) * 2006-11-08 2007-12-03 삼성전자주식회사 상변화 메모리 장치 및 그 파이어링 방법
KR101237005B1 (ko) 2007-11-09 2013-02-26 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치, 이를 포함하는메모리 시스템, 및 이의 구동 방법
JP5100554B2 (ja) 2008-07-30 2012-12-19 株式会社東芝 半導体記憶装置
US7830726B2 (en) 2008-09-30 2010-11-09 Seagate Technology Llc Data storage using read-mask-write operation
US8301977B2 (en) 2008-12-30 2012-10-30 Stmicroelectronics S.R.L. Accelerating phase change memory writes
US8243523B2 (en) * 2010-03-09 2012-08-14 Micron Technology, Inc. Sensing operations in a memory device
JP5929790B2 (ja) 2012-06-19 2016-06-08 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
US8913425B2 (en) 2013-03-12 2014-12-16 Intel Corporation Phase change memory mask
KR102168096B1 (ko) 2013-03-15 2020-10-20 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 쓰기 방법
US9659650B2 (en) 2014-02-17 2017-05-23 Technion Research & Developement Foundation Ltd. Multistate register having a flip flop and multiple memristive devices
US9412463B1 (en) * 2015-06-02 2016-08-09 Sandisk Technologies Llc Reducing hot electron injection type of read disturb in 3D non-volatile memory for edge word lines
KR102432713B1 (ko) 2017-11-28 2022-08-17 에스케이하이닉스 주식회사 저항성 메모리 장치를 구비한 메모리 시스템 및 그의 동작 방법
US10535401B2 (en) * 2018-06-05 2020-01-14 Sandisk Technologies Llc Dynamic bit-scan techniques for memory device programming

Also Published As

Publication number Publication date
US20210280223A1 (en) 2021-09-09
JP2021140856A (ja) 2021-09-16
WO2021176243A1 (en) 2021-09-10
KR20210112235A (ko) 2021-09-14
US11450358B2 (en) 2022-09-20

Similar Documents

Publication Publication Date Title
KR102457048B1 (ko) 자동-참조 메모리 셀 판독 기술
CN111480200B (zh) 自动参考存储器单元读取的方法和存储器设备
KR102413476B1 (ko) 카운터 및 ecc 피드백에 기초한 메모리 셀들에 대한 온 더 플라이 프로그래밍 및 검증 방법
KR102297893B1 (ko) 교차점 비휘발성 메모리로의 기입
KR102219285B1 (ko) 임베디드 리프레시에 의한 드리프트 완화
KR20200093080A (ko) 극성이 조절되는 메모리 셀 기록 동작
TWI770847B (zh) 用於記憶體單元之基於計數器的感測放大器方法
JP2022542047A (ja) メモリデバイスのための適応型書き込み動作
KR20220038045A (ko) 전원 오프 시 더티 기록
EP3876233A1 (en) On-the-fly programming and verifying method for memory cells based on counters and ecc feedback
US20240177792A1 (en) Counter-based sense amplifier method for memory cells

Legal Events

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