KR101366017B1 - 멀티레벨 셀(mlc) 메모리 셀들을 위한 비순차적 인코딩 방식 - Google Patents
멀티레벨 셀(mlc) 메모리 셀들을 위한 비순차적 인코딩 방식 Download PDFInfo
- Publication number
- KR101366017B1 KR101366017B1 KR1020120028493A KR20120028493A KR101366017B1 KR 101366017 B1 KR101366017 B1 KR 101366017B1 KR 1020120028493 A KR1020120028493 A KR 1020120028493A KR 20120028493 A KR20120028493 A KR 20120028493A KR 101366017 B1 KR101366017 B1 KR 101366017B1
- Authority
- KR
- South Korea
- Prior art keywords
- encoding scheme
- cell
- bit
- mlc
- memory cell
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/14—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements
- G11C11/15—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements using multiple magnetic layers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
- G11C11/161—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect details concerning the memory cell structure, e.g. the layers of the ferromagnetic memory cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5607—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using magnetic storage elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
멀티-레벨 셀(MLC) 메모리 셀들의 어레이를 관리하기 위한 장치 및 방법이 제공된다. 다양한 실시예들에 따르면, 복수의 이용 가능한 물리적 상태들 각각과 연관된 기록 활동에 관련하여, 상이한 멀티-비트 논리 값을 선택된 MLC 메모리 셀의 상기 복수 개의 물리적 상태들 각각에 할당하는 비-순차적 인코딩 방식이 선택된다. 그 이후, 상기 선택된 비-순차적 인코딩 방식에 관련하여, 선택된 MLC 메모리 셀에 데이터가 기록된다. 일부 실시예들에서는, MLC 메모리 셀이 스핀-토크 전송 랜덤 액세스 메모리(STRAM) 메모리 셀을 포함한다. 다른 실시예들에서는, MLC 메모리 셀은 MLC 플래시 메모리 셀을 포함한다.
Description
본 발명의 다양한 실시예들은 일반적으로 멀티-레벨 셀(MLC) 메모리 셀들의 어레이를 관리하는 것에 관한 것이다.
다양한 실시예들에 따르면, 복수의 이용 가능한 물리적 상태들 각각과 연관된 기록 활동(write effort)에 관련하여, 상이한 멀티-비트 논리 값을 선택된 MLC 메모리 셀의 복수 개의 물리적 상태들 각각에 할당하는 비-순차적 인코딩 방식이 선택된다. 그 후에, 선택된 비-순차적 인코딩 방식에 관련하여 선택된 MLC 메모리 셀에 데이터가 기록된다.
본 발명의 다양한 실시예들을 특징짓는 이들 특징들 및 장점들과 다른 특징들 및 장점들이 아래의 상세한 논의 및 첨부된 도면들의 관점에서 이해될 수 있다.
도 1은 본 발명의 다양한 실시예들에 따라 동작되는 예시적 데이터 저장 디바이스의 일반화된 기능적 표현이다.
도 2는 도 1의 데이터 저장 디바이스의 어레이로부터 데이터를 판독하고 이에 데이터를 기록하기 위해 사용되는 회로의 예시적인 기능적 블록도를 나타낸다.
도 3은 일부 실시예들에 따라 스핀-토크 전송 랜덤 액세스 메모리(STRAM) 메모리 셀로서 특징지어지는 MLC 메모리 셀을 도시한다.
도 4는 다른 실시예들에 따른 STRAM 메모리 셀로서 특징지어지는 MLC 메모리 셀이다.
도 5는 추가 실시예들에 따른 STRAM 메모리 셀로서 특징지어지는 MLC 메모리 셀의 일부분을 도시한다.
도 6은 도 5의 메모리 셀의 다양한 예시적인 물리적 상태들 및 대응하는 동작 특징들의 그래프이다.
도 7은 상이한 인코딩 방식들의 도 5 및 도 6의 메모리 셀로의 할당을 도시한다.
도 8은 도 5 및 도 6의 메모리 셀과 함께 이용하기 위해 선택될 수 있는 이용 가능한 대안적인 인코딩 방식들의 모집단(population)을 열거한다.
도 9는 도 8의 대안적인 인코딩 방식들 각각에 대하여 총 에너지 소모량 데이터를 그래프로 예시한다.
도 10은 다양한 실시예들에 따라 동작되는 다수 개의 MLC 플래시 메모리 셀들을 표현한다.
도 11은 도 10으로부터의 셀들로 구성된 플래시 메모리 어레이의 개략적인 도면이다.
도 12는 두 개의 대안적인 인코딩 방식들에 따라 MLC 플래시 메모리 셀들 내에 데이터를 저장하기 위해 사용될 수 있는 상이한 임계치 전압들을 도시한다.
도 13은 다양한 실시예들에 따라 메모리 셀에 대하여 적절한 인코딩 방식을 선택할 때 유용한 루틴을 도시한다.
도 2는 도 1의 데이터 저장 디바이스의 어레이로부터 데이터를 판독하고 이에 데이터를 기록하기 위해 사용되는 회로의 예시적인 기능적 블록도를 나타낸다.
도 3은 일부 실시예들에 따라 스핀-토크 전송 랜덤 액세스 메모리(STRAM) 메모리 셀로서 특징지어지는 MLC 메모리 셀을 도시한다.
도 4는 다른 실시예들에 따른 STRAM 메모리 셀로서 특징지어지는 MLC 메모리 셀이다.
도 5는 추가 실시예들에 따른 STRAM 메모리 셀로서 특징지어지는 MLC 메모리 셀의 일부분을 도시한다.
도 6은 도 5의 메모리 셀의 다양한 예시적인 물리적 상태들 및 대응하는 동작 특징들의 그래프이다.
도 7은 상이한 인코딩 방식들의 도 5 및 도 6의 메모리 셀로의 할당을 도시한다.
도 8은 도 5 및 도 6의 메모리 셀과 함께 이용하기 위해 선택될 수 있는 이용 가능한 대안적인 인코딩 방식들의 모집단(population)을 열거한다.
도 9는 도 8의 대안적인 인코딩 방식들 각각에 대하여 총 에너지 소모량 데이터를 그래프로 예시한다.
도 10은 다양한 실시예들에 따라 동작되는 다수 개의 MLC 플래시 메모리 셀들을 표현한다.
도 11은 도 10으로부터의 셀들로 구성된 플래시 메모리 어레이의 개략적인 도면이다.
도 12는 두 개의 대안적인 인코딩 방식들에 따라 MLC 플래시 메모리 셀들 내에 데이터를 저장하기 위해 사용될 수 있는 상이한 임계치 전압들을 도시한다.
도 13은 다양한 실시예들에 따라 메모리 셀에 대하여 적절한 인코딩 방식을 선택할 때 유용한 루틴을 도시한다.
본 발명은 일반적으로 멀티-레벨 셀(MLC) 메모리 어레이들의 관리에 관한 것이다. 고체 상태 메모리는 언제나 감소하는 폼 팩터(form factor)들 내에서 신뢰성 있는 데이터 저장 및 더 신속한 데이터 전송 레이트들을 제공하는 것을 목적으로 개발되고 있는 기술이다.
최근 개발들은, 멀티-비트 고체 상태 메모리 셀들이 MLC(multi-level cell) 프로그래밍의 사용을 활용하는 멀티-비트 고체 상태 메모리 셀들의 사용을 포함해 왔다. MLC 셀들은, 셀당 데이터의 2 개 이상의 비트의 저장을 허용한다. 일반적으로, 각각의 셀 내의 n개의 저장된 비트들은 2n개의 상이한 셀 상태들로 표현될 수 있다. 예컨대, 단일 메모리 셀이 22=4개의 별개의 상태들(S1, S2, S3 및 S4)을 갖도록 구성된다면, 논리 상태들 00, 01, 10 또는 11에 대응하는 데이터의 n=2개의 비트들이 상기 단일 메모리 셀 내에 저장될 수 있다. 이 경우, 상태(S1)는 논리 상태 00을 표현할 수 있고, S2=01, S3=10 그리고 S4=11일 수 있다.
이러한 상이한 셀 상태들은 다양한 방식들로 표현될 수 있다. MLC로서 구성된 NAND 플래시 메모리 셀은 상기 셀의 플로팅 게이트(floating gate) 상에 네 개의 상이한 레벨들의 전하를 제공할 수 있다. 플로팅 게이트 상의 저장된 전하의 양을 결정하고 그리고 그에 따라 셀의 프로그래밍된 상태를 결정하기 위하여, 상이한 제어 게이트 임계치 전압들이 상기 셀에 인가될 수 있다.
스핀-토크 전송 랜덤 액세스 메모리(STRAM) 셀들과 같이, 더욱 최근에 개발된 셀 기술들은, 각각의 셀 내에서의 다수 개의 MTJ(magnetic tunneling junction)들의 통합을 통해 MLC들로서 구성될 수 있고, 이때 각각의 MTJ는 단일 비트를 저장한다. 각각의 MTJ는 자유층 및 기준층을 포함하고, MTJ는 자유층 자화 방향이 기준층의 자화 방향에 대해 평행 또는 역평행으로 셋팅되었는지의 여부에 따라 상이한 전기적 저항을 나타낸다.
MLC 프로그래밍이 데이터 저장 밀도를 증가시키기 위해 동작될 수 있는 반면에, MLC 메모리 셀들과 연관된 하나의 제한은 셀들을 다양한 프로그래밍된 상태들로 놓기 위한 기록 활동에서 상대적으로 어렵다는 것이다. 일부 프로그래밍된 상태들이 다른 프로그래밍된 상태들보다 달성하기가 더 쉽다는 것이 인식될 것이다. 예컨대, MTJ들은, 역평행 상태와 같은 일부 프로그래밍된 상태들이 평행 상태와 같은 다른 상태들과 비교하여 더 큰 전류 밀도 및/또는 전류 펄스 지속기간을 요구할 수 있다는 점에서 비대칭 기록 특징들의 지배를 받는다. 셀들 내에서, MOSFET들과 같은 스위칭 디바이스들의 상대적 배향(relative orientation)이 또한 더 어려운 프로그래밍 방향 및 더 쉬운 프로그래밍 방향에 기여할 수 있다.
MLC 메모리 셀들과 종종 연관된 다른 제한은, MLC 셀들의 동작 수명(operational lifetime)이 프로그래밍 전류/전압 레벨들의 증가들에 관련하여 단축되는 경향이 있을 수 있다는 것이다. 예컨대, 단일 레벨 셀(SLC) 인코딩을 이용하여 단일 비트를 저장하도록 구성된 일부 타입들의 플래시 메모리 셀들은, 마모(wearing out)(예컨대, 플로팅 게이트/채널 배리어의 물리적 브레이크다운) 이전에 100,000번 이상의 삭제들을 견딜 수 있다. 동일한 플래시 메모리 셀들을 MLC 셀들로서 구성하는 것은, 마모 이전에 상기 플래시 메모리 셀들의 동작 수명을 약 5,000번의 삭제들로 감소시킬 수 있다.
본 발명자들은, MLC 메모리 셀들의 블록에 기록되고 있는 데이터 패턴들에 따라, 다양한 셀 상태들 전부가 동일한 통계적 빈도로 활용되는 것이 아닐 수 있다는 것에 주목했다. 따라서, 아래에서 설명되는 바와 같이, 본 발명의 다양한 실시예들은 일반적으로, 다양한 상태 전이(transition)들을 설정하기 위해 요구되는 기록 활동에 관련하여, 특정한 인코딩 방식을 MLC 메모리 셀들의 세트에 할당하기 위해 동작한다. 이는, 감소된 전력 소모량, 증가된 데이터 스루풋 및 연장된 동작 수명과 같은 다수 개의 이점들을 메모리 셀들에 제공할 수 있다.
다양한 실시예들의 아래의 논의가 STRAM 및 플래시 메모리 셀들에 주로 초점을 맞출 수 있지만, 이는 단지 예시를 위한 것임이 인식될 것이다. 본원에 개시되는 기술들은 임의의 개수의 다른 타입들의 휘발성 및 비-휘발성 MLC 메모리 셀들에 대해 용이하게 적응될 수 있다.
도 1은 본 발명의 다양한 실시예들이 유리하게 실시될 수 있는 예시적 환경을 예시하기 위해 데이터 저장 디바이스(100)의 간략화된 블록도를 제공한다. 디바이스(100)는 최상위 레벨 제어기(102) 및 메모리 모듈(104)을 포함한다. 제어기(102)는, 프로그래밍 가능(programmable)할 수 있거나 또는 하드웨어-기반일 수 있고, 호스트 디바이스(미도시)와의 I/O 동작들의 최상위 레벨 제어를 제공한다. 제어기(102)는, 별도의 컴포넌트일 수 있거나, 또는 메모리 모듈(104)에 직접적으로 통합될 수 있다. 메모리 모듈은, 상기 디바이스를 위한 주 데이터 저장 영역일 수 있거나, 또는 제어기(102)에 대하여 로컬 캐시 메모리를 구성할 수 있다.
도 2는 도 1의 메모리 공간(104)의 일반화된 표현을 제공한다. 데이터는, 메모리 셀들(106)의 행들 및 열들의 어레인지먼트로서 저장되고, 다양한 행 및 열 제어 라인들에 의해 액세스될 수 있다. 셀들 및 상기 셀들에 대한 액세스 라인들의 실제 구성들은 주어진 애플리케이션의 요건들에 따라 좌우될 것이다.
제어 로직(108)은, 데이터, 어드레싱(addressing) 정보 및 제어/상태 값들을 각각 멀티-라인 버스 경로들(110, 112 및 114)을 따라서 수신하고 전송한다. 열 디코딩 회로(116) 및 행 디코딩 회로(118)는 셀들(106)에 액세스하기 위한 적절한 스위칭 및 다른 기능들을 제공한다. 기록 회로(120)는 데이터를 셀들(106)에 기록하기 위한 기록 동작들을 수행하기 위해 동작하는 회로 엘리먼트들을 표현하고, 판독 회로(122)는 셀들로부터 리드백(readback) 데이터를 획득하기 위해 대응하게 동작한다. 전송되는 데이터 및 다른 값들의 로컬 버퍼링이 하나 이상의 로컬 레지스터들(124)을 통해 제공될 수 있다.
예시적인 메모리 셀(106)이 MLC 스핀-토크 전송 랜덤 액세스 메모리(STRAM:spin-torque transfer random access memory) 셀로서 도 3에 도시된다. 셀(106)은, MTJ1 및 MTJ2로서 각각 표기된 제 1 자기 터널링 접합(130) 및 제 2 자기 터널링 접합(132)을 포함한다. nMOSFET으로서 특징지어지는 스위칭 디바이스(134)가 도시된 바와 같이 상기 MTJ들에 결합된다. 예시적 동작들에서, 데이터 액세스 동작들은 비트 라인(BL)(136), 소스 라인(SL)(138), 및 워드 라인(WL)(140)을 통해 수행될 수 있다. 어레이 내의 다양한 셀들에 대한 소스 라인들은 일부 구성들에서 공통 소스 평면에 연결될 수 있다.
MTJ들(130, 132) 각각은 기준층(142), 자유층(144) 및 터널링 접합(146)을 포함한다. 각각의 MTJ들(130, 132)은, 기준층들(142)의 자화 방향에 관련하여 자유층들(144)의 프로그래밍된 자기 배향에 기초하여, 높은 전기적 저항 또는 낮은 전기적 저항으로 독립적으로 프로그래밍될 수 있다. 이러한 프로그래밍된 저항들은, 비트 라인(136)과 소스 라인(138) 사이의 셀(106)에 적절한 양-방향 전류들을 인가함으로써 달성될 수 있다.
MTJ들(130, 132)은 상이한 스위칭 특징들을 갖도록 구성될 수 있고, 예컨대, MTJ1을 평행으로부터 역평행으로 스위칭하기 위해 요구되는 임계치 전류 밀도는 MTJ2를 평행으로부터 역평행으로 스위칭하기 위해 요구되는 임계치 전류 밀도보다 더 낮을 수 있다. 이는, 상이한 지역적 범위들, 층 두께들, 재료 구성들 등을 개별 MTJ들에 제공하는 것을 포함하여, 다수 개의 방식들로 수행될 수 있다. 각각의 MTJ(130, 132)는 데이터의 단일 비트를 저장하여, MLC 셀(106)은 데이터의 총 두 개의 비트들을 저장한다.
도 4는 각각의 MTJ들(130, 132)이 적층 구성(stacked configuration)으로 배열된 MLC 셀(106)에 대한 대안적인 구성을 도시한다. 도 3에서와 같이, 도 4의 MLC 셀은 또한 데이터의 두 개의 비트들을 저장 ― 각각의 MTJ 내에 한 개의 비트씩 저장 ― 하도록 구성된다.
도 5는 MLC 셀(106)에 대한 또 다른 구성을 제공하며, 이번에는, 결합된 MTJ 구조(148)가 공통 기준층(150) 및 터널링 접합(156)에 의해 분리된 개별 자유층들(152, 154)을 갖는다. 자유층들(152, 154)은, FL1 및 FL2로서 표기되고, 그리고 상이한 지역적 범위들을 갖는 비교적 연자성 재료 및 비교적 강자성 재료로 각각 구성된다. 도 3 내지 도 5의 다양한 MLC 구조들의 프로그래밍된 상태들은, 비교적 낮은 크기(magnitude)의 판독 전류를 인가하고 셀에 걸쳐 총 전압 강하를 감지함으로써, 판독 동작 동안에 감지될 수 있다.
도 6은 도 5의 예시적 구조(148)에 대한 일련의 전류-저항(I-R) 곡선들을 도시한다. 판독 전류 크기가 x-축(160)을 따라서 도시되고, 총 셀 전기적 저항이 y-축(162)을 따라서 표현된다. 도 3 및 도 4의 대안적인 MLC 구조들은 유사한 특징들을 나타낼 수 있다.
제 1 I-R 곡선(164)은, 도 5의 MTJ 구조(148)가 제 1 상태(S1) ― 즉, 이때 FL1 및 FL2 양자가 기준층(150)에 평행인 자화들을 가짐 ― 로 프로그래밍될 때 셀의 저항을 나타낸다. 곡선(166)은 FL1이 역평행 상태에 있고 FL2가 평행 상태에 있는 MTJ 구조(148)에 대한 제 2 상태(S2)를 나타낸다. 곡선(168)은 FL1이 평행 상태에 있고 FL2가 역평행 상태에 있는 제 3 상태(S3)를 나타낸다. 곡선(170)은 FL1 및 FL2 양자가 역평행 상태에 있는 제 4 상태(S4)를 나타낸다.
다양한 상태들(S1, S2, S3 및 S4)의 개별 저항들이 최저로부터 최고로 진행하는 것을 알 수 있고, 즉 R1<R2<R3<R4이다. 정해진 판독 전류 크기에 대한 예시적 저항 값들은 약 R1=0.5㏀; R2=1.0㏀; R3=1.5㏀; 및 R4=2.5㏀ 정도일 수 있다. 물론, 실제 감지된 저항은, 정해진 셀의 특정한 구성 및 동작 특징들에 따라 가변할 것이고, 그래서 이들 값들은 단지 예시적이다.
MLC 구조(148)를 하나의 상태로부터 또 다른 상태로 전이시키기 위해, 가변하는 크기들의 스위칭 전류들이 요구될 수 있다. 이는, 더 높은 항자기성(coercivity) 및 더 센 자기 구역(harder magnetic domain)을 이용하여 비트의 자화를 변경시키기 위해 필요한 더 큰 프로그래밍 에너지와 같은 다수 개의 인자들에 기인한다. 표 1은 MTJ 구조(148)에 대하여 프로그래밍된 논리 상태 조합들 사이에서 전이시키기 위해 필요한 예시적 스위칭 전류들을 제시한다. 이들 값들은 특정한 셀의 경험적 분석을 통해 획득되었고, 상이한 타입들의 셀들이 상이한 결과들을 제공할 수 있다는 것이 인식될 것이다.
표 1에서 포지티브 전류 값의 사용은, 자유층으로부터 기준층으로의 전류 방향을 표기하고, 네거티브 전류 값은 반대 방향으로의 전류를 표기한다. FL1의 소프트 도메인(soft domain)에 대한 자화 방향은, FL2의 하드 도메인(hard domain)의 기존 자화에 영향을 끼치지 않고서, 홀로 스위칭될 수 있고, 비교적 저전력을 요구할 수 있다. FL2의 소프트 도메인을 스위칭시키는 것은, 상당히 더 많은 전력을 요구할 수 있고, 그리고 FL1의 소프트 도메인을 그 의도된 방향으로 다시 리셋하기 위한 제 2 동작을 포함할 수 있다.
표 1은 셀이 상이한 전이들에 대하여 비대칭 전력 소모량 요건들을 갖는다는 것을 도시한다. 예컨대, 상태(S4)로부터 상태(S1)로 전이시키는 것이 상당히 더 큰 기록 전류 크기(예컨대, 대략 328㎂)를 요구할 수 있는 반면에, 상태(S3)로부터 상태(S4)로 전이시키는 것은 상당히 더 적은 기록 전류 크기(예컨대, 대략 45㎂)를 요구할 수 있다.
표 2는, 도 1의 모듈(104)과 같은 STRAM-기반 제어기 캐시로서 동작되는 MLC 메모리 셀들의 블록 상에서, 도 1의 제어기(102)와 같은 마이크로프로세서에 의해 수행되는 상이한 전이들의 상대적 빈도(relative frequency)의 경험적 연구의 결과들을 도시한다. 다양한 값들(00, 01, 10 및 11)은 캐시 내의 다양한 개별적인 셀들에 기록된 멀티-비트(2-비트) 논리 값들이다. 표 2의 숫자들은, 마이크로프로세서가 동작됨에 따라 더 오래된 데이터가 더 최근의 데이터로 덮어쓰기되었을 때 하나의 상태로부터 다른 상태로의 다양한 전이들이 발생하는 상대적 빈도를 퍼센티지(%) 면에서 나타낸다.
표 2로부터, 전이들의 대부분이 동일한 값들 사이에 발생하여 MTJ 저항 상태들이 그러한 특정한 기록들을 위해 전혀 변경될 필요가 없었다는 것을 알 수 있다. 이는, 시간의 78.80%(64.08+5.44+4.22+5.06)에서 발생했다. 가장 공통으로 기록된 값은, 시간의 거의 2/3의 이에서 발생했던 논리적 00였다.
나머지 21.2%의 시간 동안, 더 오래된 데이터가 상이한 더 최근의 데이터로 덮어쓰기됨에 따라, 다양한 메모리 셀들이 제 1 상태로부터 제 2 상태로 변경되었다. 일부 전이들이 다른 전이들의 레이트의 수 배인 레이트로 발생했기 때문에, 이들 다양한 상태 전이들에 관련하여 상당한 변형(variation)이 관찰되었다. 예컨대, 논리적 00으로부터 논리적 11로의 전이의 빈도(3.92%)는 11로부터 01로의 전이의 빈도(0.56%) 또는 11로부터 10으로의 전이의 빈도(0.61%)보다 약 7배 더 컸다.
종래의 MLC 메모리 어레이들에서는, 각각의 논리 값들을 셀들의 이용 가능한 물리적 상태들에 순차적으로 할당하는 것이 일반적이다. 예컨대, 도 5 및 도 6의 MTJ 구조(148)의 통상적인 인코딩 방식은 아래와 같이 논리 값들을 순차적으로 할당하는 것을 수반할 수 있다: 논리적 "00"을 상태(S1)에 할당; 논리적 "01"을 상태(S2)에 할당; 논리적 "10"을 상태(S3)에 할당; 그리고 논리적 "11"을 상태(S4)에 할당.
그와 대조적으로, 본 발명의 다양한 실시예들은, 어레이 내의 적어도 하나의 MLC 메모리 셀에 대하여 대안적인 비-순차적 인코딩 방식을 선택한다. 상기 대안적인 인코딩 방식은, 상이한 물리적 상태들 각각과 연관된 기록 활동에 관련하여, 상이한 멀티-비트 논리 값을 MLC 셀의 상기 상이한 물리적 상태들 각각에 할당한다. 그 이후, 선택된 인코딩 방식에 관련하여, 데이터가 셀에 기록된다.
다양한 상태들을 달성하기 위한 기록 활동은 다수 개의 방식들로 결정될 수 있다. 예컨대, 기록 활동은 표 1에서 예시된 것과 같은 어레이의 전력 소모량 특징들, 및/또는 표 2에서 예시된 것과 같은 전이 빈도 통계치들에 기초할 수 있다. 이러한 방식으로의 대안적인 인코딩 방식의 사용은, 메모리의 감소된 전력 소모량, 향상된 응답 성능, 연장된 동작 수명 등과 같은 다수 개의 동작 이점들을 제공할 수 있다.
도 7은 도 4 및 도 5의 MTJ 구조(148)에 대안적으로 적용될 수 있는 두 개의 상이한 인코딩 방식들을 나타낸다. 제 1 인코딩 방식은 논리 상태들의 물리적 상태들로의 순차적 할당을 사용하고, 여기서 상태(S1)=00, 상태(S2)=01, 상태(S3)=10 그리고 상태(S4)=11이다. 이러한 방식을 이용하여, 자유층들 양자가 평행 방향에 있고 그리고 그에 따라 최저 저항을 갖는 MLC STRAM 셀이 논리적 00으로서 해석될 것이다. 자유층들 양자가 역평행 방향에 있고 그리고 그에 따라 최고 저항을 갖는 MLC STRAM 셀이 값 11을 저장하는 것으로 관찰될 것이며, 이러한 식으로 진행된다.
도 7의 제 2 인코딩 방식은 S2=00, S3=01, S4=10 및 S1=11의 비-순차적 할당들을 사용한다. 이러한 방식에서는, 논리 값들이 다양한 물리적 상태들의 저항들에 관련하여 순서가 바뀐다. 예컨대, 최저 저항 상태는 11의 논리 상태에 대응하는 것으로서 해석될 것이고, 최고 저항 상태는 논리 상태 10에 대응하는 것으로서 해석될 것이며, 이러한 식으로 진행된다.
제 2 방식이, 제 1 방식과 마찬가지로 동등하게 잘 동작할 것이고 그리고 정상 동작 동안 제 1 방식에 비해 상당한 전력 절약들을 제공할 수 있다는 것이 고려된다. 경험적 분석은, 일부 인코딩 방식들이 다른 방식들과 비교하여 약 40% 또는 그보다 많이 전력 절약들을 제공할 수 있다는 것을 제안한다.
일반적으로, N-상태 MLC 셀에 대하여, N!개까지의 상이한 이용 가능한 인코딩 방식들이 있을 수 있다. 4-상태 MTJ 구조(148)는 4!=24개의 상이한 가능한 인코딩 방식들을 제공한다. 이들 상이한 인코딩 방식들은 도 8에 열거된다. 각각의 방식에 대한 각각의 총 에너지 사용량 값들이 도 9에서 제공된다.
도 9에 표현된 바와 같은 에너지 사용량 데이터는, 각각의 방식을 차례로 선택하고, 총 전력 소모량 또는 다른 적절한 메트릭(metric)(예컨대, 최대 전류 등)을 측정하면서, 동시에 상기 선택된 방식을 이용하여 어레이에 대한 기록 및 판독 동작들의 미리 결정된 시퀀스를 수행하는 것과 같이, 다수 개의 방식들로 경험적으로 결정될 수 있다. 각각의 방식을 차례로 구현하기 위해 룩업 테이블 또는 다른 알고리즘이 판독 및 기록 회로로 구현될 수 있다. 도 8로부터, 인코딩 방식 2가 최저 전력 소모량을 제공하고, 인코딩 방식 10이 최고 전력 소모량을 제공한다. 이들 결과들에 기초하여, 방식 2가 구현을 위한 최적 인코딩 방식으로서 선택될 수 있다.
상이한 타입들의 데이터 부하들이 정해진 메모리에 대하여 상이한 결과들을 제공할 수 있고, 그래서 선택 메커니즘이 적응적일 수 있다는 것이 유의될 것이고, 예컨대, 시간(t0)에서 제 1 방식이 초기에 선택될 수 있고, 그리고 시간에 따라, 빈도 통계치들 및/또는 에너지 소모량 통계치들이 축적될 수 있으며, 후속 시간(t1)에서 제 2 방식으로 스위칭하기 위한 결정이 유도된다.
데이터 기록들의 대부분이 상태 변경을 야기하지 않는다면, 메모리 셀들의 특정한 세트를 제 1 선택된 방식으로부터 제 2 선택된 방식으로 변경시키기 위해 상당한 기록 페널티가 있을 수 있다. 상이한 방식으로 전환하는 것을 진행하는 것이 유리할 것인지의 여부를 결정하는데 있어서, 감소된 전력 소모량, 연장된 수명, 향상된 데이터 스루풋 등과 같은, 미래의 절약들 면에서의 투자수익률(return on investment)이 고려될 수 있다.
일부 실시예들에서는, 메모리 어레이 내의 MLC 셀들 전부가 동일한 비-순차적 인코딩 방식으로 인코딩된다. 다른 실시예들에서, 특정한 메모리 어레이가 상기 어레이의 상이한 영역들 내에서 상이한 인코딩 방식들을 이용할 수 있고, 예컨대, 상이한 인코딩 방식들을 도 2의 메모리 셀들(106)의 상이한 행들(또는 열들)에 적용하는 것이 유리한 것으로 발견될 수 있다.
요컨대, 도 3 내지 도 5의 예시적 MLC STRAM 셀들은 제 1 저항(R1), 제 2 저항(R2), 제 3 저항(R3) 및 제 4 저항(R4)에 대응하는 네 개의 상이한 물리적 상태들을 갖는 것으로서 설명되었고, 여기서 R1<R2<R3<R4이다. 이들 저항들은, B1<B2<B3<B4 및 B4<B3<B2<B1과 다른 순서로, 네 개의 대응하는 멀티-비트 논리 값들(B1, B2, B3, B4)에 할당된다. 즉, 비-순차적 인코딩 방식 하에서, 비트 값들은 (00, 01, 10, 11) 또는 (11, 10, 01, 00)과 같이 순차적이지 않을 것이나, 대신에 (01, 11, 10, 00) 등과 같이 비-순차적일 것이다.
도 3 내지 도 5의 다양한 STRAM 셀들과 같은 MTJ 기반 메모리 구조들의 하나의 장점은, 적절한 기록 전류 극성 및 크기를 이용하여 메모리 셀들에 기록 동작을 행함으로써, 임의의 상태로부터 임의의 다른 상태로 상기 셀들이 덮어쓰기될 수 있다는 것이다. 플래시 메모리와 같은 다른 메모리 구조들은 소정의 방향들로 덮어쓰기될 수 있지만, 메모리 셀들의 블록을 초기 상태로 다시 리셋하기 위해 삭제 동작을 요구한다. 이는, 본 방법의 적용가능성을 제한하지 않는다. 그보다는, 본원에 개시되는 다양한 실시예들이 MLC 플래시 메모리 셀들과 함께 사용하기 위해 용이하게 적응될 수 있다.
도 10은 일부 실시예들에 따라 플래시 메모리 셀들(200)의 세트를 예시한다. 플래시 메모리 셀들(200)은, 비록 이러한 것이 제한하는 것은 아니지만, NAND 어레인지먼트로 조직화된다. 반도체 기판(202)이 다수 개의 이격된 n+ 도핑된 영역들(204)을 갖는다. 게이트 구조(206)가 인접한 구역들(204) 각각의 쌍에 걸쳐 있고, 이때 각각의 게이트 구조는, 개재된(intervening) 절연층들(212, 214)에 의해 분리된 플로팅 게이트(FG)(208) 및 제어 게이트(CG)(210)를 포함한다. 이러한 방식으로, 플래시 메모리 셀들(200)은 일반적으로 부가적인 게이트 층들의 제공을 통해 nMOSFET 트랜지스터들과 유사하다.
삭제 동작 이후의 초기 동작 동안, 플로팅 게이트들(208)은 축적된 전하를 갖지 않을 것이다. 낮은 레벨 게이트 제어 전압의 제어 게이트(210)로의 인가는 기판(202) 내에 전도성 드레인-소스 전도성 채널(CH)을 생성할 것이다. 이는, 전류가 플래시 메모리 셀(208)을 통해 흐르도록 허용할 것이다. 이러한 상태에는 일반적으로 11의 논리 값이 할당된다. 기록 동작 동안, 더 큰 게이트 제어 전압이 제어 게이트(210)에 인가되고, 상기 채널로부터 플로팅 게이트(208)로의 전하의 이동(migration)이 유발된다. 이러한 전하는, 이러한 기록 전압이 인가된 이후에 플로팅 게이트(208) 상에 머무른다.
플래시 메모리 셀들(200)은 플로팅 게이트(208) 상의 축적된 전하의 다중 제어된 양(amount)들의 사용을 통해 MLC 셀들로서 구성될 수 있다. 예컨대, 네 개(4)의 상이한 레벨들의 축적된 전하(예컨대, 필수적으로, 전하 없음, 제 1의 중간량의 전하, 제 2의 더 높은 중간량의 전하, 그리고 최대량의 전하)를 이용하여, 데이터의 두 개의 비트들이 각각의 플래시 메모리 셀 상에 저장될 수 있다. 앞서와 같이, 이들 상태들은 상태들(S1, S2, S3 및 S4)로서 식별될 수 있다.
상태 레벨을 증가시키기 위해 부가적인 전하를 더하는 것이 가능하고, 상태(S2)에 있는 셀이 상기 셀을 상태(S3) 또는 상태(S4)로 전이시키기 위해 부가적인 전하를 상기 셀에 부가할 수 있다. 그러나, 임의의 더 높은 상태를 더 낮은 상태로 다시 복귀시키기 위해 삭제 동작이 요구된다. 삭제 동안, 역방향으로 바이어싱된 전류(reverse biased current)가 플로팅 게이트로부터 다시 상기 채널로 상기 축적된 전하를 드라이빙(driving)하기 위해 인가되고, 이로써 상기 셀을 제 1 상태(S1)(예컨대, 논리적 11)로 리셋한다.
도 11은 도 10으로부터의 MLC 플래시 셀들(200)의 어레이로서 구성된, 도 1의 모듈(104)과 같은 메모리 어레이의 일부분을 도시한다. 셀들(200)은 행들 및 열들로 배열되고, 셀들의 각각의 행은 공통 워드 라인(216)(WL-1 내지 WL-N)에 연결되고, 셀들의 각각의 열은 공통 비트 라인(218)(BL-1 내지 BL-N)에 연결된다. 열 제어 트랜지스터들은 220 및 222로 표기되고, 그리고 글로벌 제어 라인들(SSL, GSL-0 및 GSL-1)은 224, 226 및 228로 표기된다. 데이터는, 공통 워드 라인(216)에 연결된 선택된 행을 따라서 모든 플래시 MLC 셀들(200)로 구성된 메모리의 페이지로서 저장될 수 있다.
도 12는 상이한 상태들(S1, S2, S3 및 S4)로 프로그래밍된 플래시 MLC 셀들(200)의 상이한 모집단들의 그래픽 표현을 제공한다. 도 11로부터의 임의의 선택된 MLC 셀(200)의 프로그래밍된 상태는, 제어 트랜지스터들(220, 222)을 전도 상태로 만들기 위해 SSL 라인 및 GSL-0 라인을 턴 온 하고, 적절한 전압(VDD)을 상기 선택된 셀(200)에 연결된 선택된 비트 라인(218)에 인가하고 GSL-1 라인을 접지(VSS)로 셋팅함으로써 결정될 수 있다. 그 다음에, 선택된 셀(200)에 연결된 워드 라인(216)은 상이한 게이트 제어 전압들(V1, V2, V3 및 V4)의 시퀀스로 스트로빙(strobing)될 수 있고, 여기서 도 12에 도시된 바와 같이 V1<V2<V3<V4이다. 나머지 워드 라인들은 최고 전압(V5)을 수신할 수 있다.
인지될 바와 같이, 이들 제어 전압들은, 상기 전압보다 더 낮은 임계치 전압을 갖는 프로그래밍된 셀이 전도 상태에 놓이도록 선택되고, 예컨대, 전압(V4)은 셀들의 모집단 내의 플래시 메모리 셀을 상태들(S1, S2 및 S3)로 턴 온 하기에 충분하지만, 상기 셀들을 상태(S4)로 턴 온 하기에는 충분하지 않다. 따라서, 게이트 전압들의 시퀀스가 선택된 셀의 워드 라인에 순차적으로 인가될 수 있다.
일 예에서, V3 전압은 먼저, 상기 V3 전압이 셀을 전도성으로 만드는지를 알기 위해 인가될 수 있다. 그렇지 않다면, 프로그래밍된 상태는 S3와 S4 중 어느 하나이고, V4의 후속 인가가 어느 쪽인지를 결정할 것이다. 유사하게, V3가 셀을 전도성으로 만들었다면, 셀은 상태(S1) 또는 상태(S2) 중 어느 하나에 있고, V2의 후속 인가가 어느 쪽인지를 결정할 것이다. 상기 인가된 게이트 전압에 응답하여 비트 라인 전압이 VDD로부터 VSS에 가까운 레벨로 강하하면, 플래시 셀은 전도 상태에 있는 것으로서 식별될 수 있다. 전압(V5)은, 셀들의 프로그래밍된 상태들과 무관하게, 셀들 전부를 전도성이 되게 만들 것이다.
도 12는 메모리 셀들(200)과 함께 사용될 수 있는 두 개의 대안적인 인코딩 방식들을 도시한다. 제 1 인코딩 방식은 S1=11, S2=10, S3=01 및 S4=00의 종래의 순차적 할당을 사용한다. 이러한 공통적으로 사용되는 방식 하에서, 축적된 전하를 갖지 않는 삭제된 플래시 셀은 비트 값 11을 저장하는 것으로서 식별되고, 최대량의 축적된 전하를 갖는 플래시 셀은 비트 값 00을 저장하는 것으로서 식별되고, 이러한 식으로 진행된다.
제 2 대안적 인코딩 방식은 S1=00, S2=01, S3=11 및 S4=10의 비-순차적 할당을 사용한다. 이러한 후자의 경우, 삭제된 셀이 값 00을 저장하는 것으로서 관찰되고, 최대량의 축적된 전하를 갖는 플래시 셀이 값 10을 저장하는 것으로서 관찰되고, 이러한 식으로 진행된다.
이러한 후자의 인코딩 방식은 위에서 표 1 및 표 2에서 제시된 데이터와 유사한 데이터를 이용하여 선택될 수 있다. 예컨대, 논리 00이 특정한 조건들 하에서 기록되는 데이터의 가장 통계적으로 공통적인 논리 상태인 것으로 발견된다면, 상태(S1)의 삭제 조건이 이러한 값에 대응하도록 선택될 수 있다.
요컨대, 도 11 및 도 12의 MLC 플래시 셀들(200)은 제 1 임계치 전압(V1), 제 2 임계치 전압(V2), 제 3 임계치 전압(V3) 및 제 4 임계치 전압(V4)에 대응하는 네 개의 상이한 물리적 상태들을 갖고, 여기서 V1<V2<V3<V4이다. 이들 전압들은, B1<B2<B3<B4 및 B4<B3<B2<B1과는 다른 순서로, 네 개의 대응하는 멀티-비트 논리 값들(B1, B2, B3, B4)에 할당된다. 다시 말해, 비트 값들은 (00, 01, 10, 11) 또는 (11, 10, 01, 00)과 같이 순차적이지 않을 것이나, 대신에 (01, 11, 10, 00) 등과 같이 비-순차적일 것이다.
도 13은 다양한 실시예들에 따라 수행되는 바와 같이 예시적인 코딩 방식 선택 루틴(230)의 흐름도를 제공한다. 루틴(200)은, 위에서 논의된 STRAM 또는 플래시 MLC 메모리 셀들과 같은, 임의의 개수의 상이한 타입들의 MLC 메모리 셀들 상에서 수행될 수 있다.
루틴(230)은, 새로운 대안적인 인코딩 방식이 초기 기본 코딩 방식을 대체할 때 구현되도록, 상기 초기 기본 코딩 방식을 갖는 메모리 어레이 상에서 동작할 수 있으나, 이러한 것이 요구되지는 않는다. 도 13에 도시된 단계들 전부가 수행될 필요는 없으며, 그래서 다양한 단계들이 요구되는 대로 생략될 수 있거나 또는 수정될 수 있다. 루틴(230)은, 도 1의 제어기(102)와 같이, 연관된 메모리 내에 저장된 프로그래밍 단계들을 이용하는 디바이스 마이크로제어기의 지시 하에서 수행될 수 있다.
초기에, 루틴은, 단계(232)에 의해 예시된 바와 같이, 개별적인 셀 레벨에서의 상태 전이 특징들의 평가를 포함할 수 있다. 이는, 표 1에 도시된 바와 같은 데이터를 제공할 것이고, 그리고 선택 프로세스에 도움이 될 수 있다. 이러한 개별적인 셀 레벨 특징화는, 각각의 상태 전이를 달성하기 위해 사용되는 기록 전류의 크기들을 측정하면서 동시에, 특정한 셀을 선택하고 그리고 다양한 물리적 상태들을 차례로 기록하는 것을 수반할 수 있다.
단계(234)에서, 도 8에 도시된 24개의 예시적 인코딩 방식들 중 하나의 인코딩 방식과 같은, 제 1 인코딩 방식이 선택될 수 있다. 단계(236)에서, 상기 선택된 인코딩 방식에 기초하여, 적절한 상태-논리 값 변환 표들이 구성될 수 있다. 이들 표들은 선택된 멀티-비트 값을 연관된 셀에 기록하기 위해 필요한 적절한 기록 전류 파라미터들을 식별할 것이고, 이로써 셀이 상기 비트 값에 대응하는 물리적 상태에 놓이게 된다. 상기 표들은 전체 어레이 또는 어레이의 일부분에 적용될 수 있다.
단계(238)에서, 선택된 인코딩 방식을 이용하여, 선택된 판독/기록 시퀀스가 어레이 내의 메모리 셀들의 세트에 다음 차례로 적용된다. 상기 시퀀스는, 데이터의 베이스라인 세트에 기초하여 미리 결정될 수 있거나, 또는 정상 디바이스 동작 동안에 겪는 현실 세계 R/W 시퀀스들에 대응할 수 있다. 이러한 동작 동안, 빈도 통계치들 및 총 에너지 소모량 데이터와 같은 다양한 타입들의 데이터가 수집될 수 있다. 빈도 통계치들은 표 2의 데이터의 타입에 대응할 수 있고, 일반적으로, 메모리 셀들에 기록되는 상이한 멀티-비트 값들의 상대적 발생을 반영할 수 있다. 총 에너지 소모량 데이터는, 상기 선택된 인코딩 방식에 대하여 도 9에 도시된 데이터에 대응할 수 있다. 대안적으로 또는 부가하여, 상이한 마모 레벨들과 연관된 데이터, 및 그와 연관된 메모리 셀들의 동작 수명에 관한 영향이 획득될 수 있다.
결정 단계(240)는 상이한 인코딩 방식이 평가를 위해 이용 가능한지의 여부를 결정한다; 이용 가능하다면, 루틴은 다음 차례의 인코딩 방식이 선택되고 앞의 단계들이 반복되는 단계(242)로 나아간다.
일단 원하는 인코딩 단계들 전부가 평가되었다면, 흐름은 구현을 위한 최적 인코딩 방식이 선택되는 단계(244)로 나아가고, 그 이후에, 단계(246)에서, 상기 선택된 방식을 이용하여, 데이터가 후속하여 기록된다. 그 다음에, 비록 새로운 대체 인코딩 방식을 원하는 대로 구현하기 위해 루틴 내의 다양한 단계들이 시간에 따라 반복될 수 있다는 것이 인식될지라도, 루틴은 단계(248)에서 종료된다.
인코딩 방식 선택 프로세스는, 전력 소모량, 회로 복잡성의 감소들, 속도, 동작 수명에 관한 영향력들 등과 같은 다수 개의 파라미터들을 고려할 수 있다. 이러한 상이한 파라미터들의 가중된 합이 또한 사용될 수 있다.
일부 실시예들에서, 이용 가능한 인코딩 방식들 각각이 동일하거나 또는 유사한 R/W 시퀀스를 이용하여 개별적으로 평가되는 경험적 접근법이 사용된다. 이러한 경우, 최선 인코딩 방식은, 도 9에 제시된 바와 같은 최선 전력 소모량 요건들과 같이, 테스팅 동안 최선 결과들을 생성했던 방식으로서 선택될 수 있다.
다른 실시예들에서, 단계(232)로부터의 상태 전이 데이터 및 단계(238)로부터의 빈도 통계치들의 평가는, 어레이에 대한 최적 인코딩 방식의 선택을 가능케 하기에 충분할 수 있다. 예컨대, 최소 기록 활동을 요구하는 그러한 상태 전이들을, R/W 시퀀스 내에서 가장 빈번히 발생하는 그러한 논리 조합들과 링크시키는 것이 가능할 수 있다. 이러한 후자의 접근법이 각각의 이용 가능한 인코딩 방식이 실제로 차례로 테스팅되는 것을 반드시 요구하지는 않는다는 것이 인정될 것이다.
또 다른 실시예들에서, 향상된 성능을 제공하는 유망한 징후들을 나타내는 인코딩 방식들의 선택된 서브세트를 식별하기 위해 상태 전이 데이터 및 빈도 통계치들이 사용되고, 그 다음에 이들 방식들은, 최종 방식을 선택하기 위해 개별적으로 테스팅되고 평가된다. 일부 경우들에서, 대안적인 비순차적 인코딩 방식의 능률을 평가하기 위해, 상기 대안적인 비-순차적 인코딩 방식의 성능과 종래에 적용된 순차적 방식의 성능을 비교하는 것이 바람직할 수 있다.
루틴은, 개별적인 기록 전이 특징들이 표 1에서와 같이 수량화되는지의 여부, 실제 빈도 통계치들이 표 2에서와 같이 수집되는지의 여부, 그리고/또는 각각의 이용 가능한 인코딩 방식이 도 9에서와 같이 개별적으로 평가되는지의 여부와 무관하게, 셀들의 다양한 물리적 상태들을 달성하기 위한 기록 활동에 기초하는 최종 인코딩 방식을 구현하기 위해 일반적으로 동작할 것이다.
선택된 인코딩 방식을 이용하여 일단 데이터가 어레이에 기록되면, 어레이에 이전에 기록된 데이터를 복원(디코딩)하기 위한 후속하는 판독 동작 동안에 제어 회로에 의해 변환 표(들)가 참조될 수 있다는 것이 인식될 것이다. 변환 표들은, 어레이의 메타데이터 영역 내에 저장되고, 그리고 디바이스 초기화 동안 로컬 휘발성 메모리(예컨대, 도 2의 레지스터들(124))에 로딩될 수 있다.
본원에 예시된 다양한 실시예들이 메모리 어레이 관리 분야에서 이점들을 제공할 수 있다는 것이 이제 인식될 것이다. 테스팅된 논리 상태 조합 빈도들에 특정하게 튜닝되는 코딩 방식을 이용하여, 어레이 또는 상기 어레이의 일부분을 최적화하기 위한 능력은, 최소의 부가적인 회로 또는 프로세싱을 이용하여 향상된 메모리 어레이 성능을 제공한다.
게다가, 어레이에 대한 코딩 방식을 한 페이지씩 커스터마이징(customizing)하기 위한 능력은, 어레이 성능을 향상시키는 강화된(heightened) 엘리먼트의 튜닝을 제공한다. 그러나, 본원에서 논의된 다양한 실시예들이 다수의 잠재적 애플리케이션을 갖고 그리고 전자식 매체들의 특정 분야 또는 데이터 저장 디바이스들의 타입으로 제한되지 않는다는 것이 인식될 것이다.
비록, 본 발명의 다양한 실시예들의 구조 및 기능의 세부사항들과 함께, 본 발명의 다양한 실시예들의 다수의 특징들 및 장점들이 앞선 설명에서 제시되었더라도, 이러한 상세한 설명은 단지 예시적이며, 특히, 첨부된 청구항들이 표현하는 용어들의 넓은 일반적인 의미로 표시되는 전체 범위까지 본 발명의 원리들 내에 있는 부분들의 구조 및 어레인지먼트들에 있어서, 변경들이 세부적으로 이루어질 수 있다.
Claims (20)
- 복수의 이용 가능한 물리적 상태들 각각과 연관된 기록 활동(write effort)에 관련하여, 상이한 멀티-비트 논리 값을 선택된 멀티-레벨 셀(MLC:multi-level cell) 메모리 셀의 상기 복수의 이용 가능한 물리적 상태들 각각에 할당하는 비-순차적 인코딩 방식을 선택하는 단계; 및
상기 비-순차적 인코딩 방식에 관련하여 선택된 MLC 메모리 셀에 데이터를 기록하는 단계를 포함하고,
상기 선택된 비-순차적 인코딩 방식은 상기 MLC 메모리 셀에 대한 순차적 인코딩 방식과 비교하여 더 낮은 총 에너지 소모량 레벨을 제공하는,
방법. - 제 1 항에 있어서,
상기 MLC 메모리 셀은, 상기 셀의 2n개의 물리적 상태들에 관련하여 복수 개(n개)의 독립적 비트들을 저장하기 위해 적응되는,
방법. - 제 1 항에 있어서,
상기 MLC 메모리 셀은 데이터를 복수 개(N 개)의 상이한 물리적 상태들로 저장하기 위해 적응되고, 상기 선택된 비-순차적 인코딩 방식은 총 N!개의 이용 가능한 인코딩 방식들로부터 선택되는,
방법. - 제 1 항에 있어서,
상기 선택하는 단계는, 기록 전류를 상기 MLC 메모리 셀에 인가함으로써 상기 MLC 메모리 셀을 상기 복수의 이용 가능한 물리적 상태들 각각으로 차례로 전이(transition)시키는 단계, 각각의 전이에 대하여 상기 기록 전류의 크기(magnitude)를 측정하는 단계, 및 상기 측정된 기록 전류들에 관련하여 상기 비-순차적 인코딩 방식을 선택하는 단계를 포함하는,
방법. - 제 1 항에 있어서,
상기 선택된 인코딩 방식은, 제 1 멀티-비트 논리 값을 상대적으로 더 낮은 저항을 갖는 제 1 물리적 상태에 할당하고, 제 2 멀티-비트 논리 값을 상대적으로 높은 저항을 갖는 제 2 물리적 상태에 할당하고, 그리고 제 3 멀티-비트 논리 값을 상기 제 1 물리적 상태의 저항과 상기 제 2 물리적 상태의 저항 사이의 저항을 갖는 제 3 물리적 상태에 할당하고, 상기 제 3 멀티-비트 논리 값은 상기 제 1 멀티-비트 논리 값 및 상기 제 2 멀티-비트 논리 값보다 더 큰,
방법. - 삭제
- 제 1 항에 있어서,
상기 선택하는 단계는, 상기 MLC 메모리 셀이 배치된 메모리 어레이에 데이터를 저장하는 단계, 상기 저장하는 단계 동안에 상기 어레이에 기록되는 각각의 멀티-비트 논리 값에 대한 빈도 통계치들(frequency statistics)을 축적하는 단계, 상기 빈도 통계치들을 메모리 내에 저장하는 단계, 및 상기 선택된 비-순차적 인코딩 방식을 식별하기 위해 상기 저장된 빈도 통계치들을 이용하는 단계를 포함하는,
방법. - 제 1 항에 있어서,
상기 메모리 셀의 물리적 상태들은 R1<R2<R3<R4가 되도록 제 1 저항(R1), 제 2 저항(R2), 제 3 저항(R3) 및 제 4 저항(R4)을 포함하고, 상기 제 1, 제 2, 제 3 및 제 4 저항들은, B1<B2<B3<B4 및 B4<B3<B2<B1과 다른 순서로, 대응하는 멀티-비트 논리 값들(B1, B2, B3, B4)에 각각 할당되는,
방법. - 제 1 항에 있어서,
상기 메모리 셀의 물리적 상태들은 V1<V2<V3<V4가 되도록 제 1 임계치 전압(V1), 제 2 임계치 전압(V2), 제 3 임계치 전압(V3) 및 제 4 임계치 전압(V4)을 포함하고, 상기 제 1, 제 2, 제 3 및 제 4 임계치 전압들은, B1<B2<B3<B4 및 B4<B3<B2<B1과 다른 순서로, 대응하는 멀티-비트 논리 값들(B1, B2, B3, B4)에 각각 할당되는,
방법. - 제 1 항에 있어서,
상기 선택하는 단계는, 상기 MLC 메모리 셀에 대하여 이용 가능한 대안적인 인코딩 방식들의 모집단(population)을 식별하는 단계 ― 상기 모집단 내의 각각의 인코딩 방식은 물리적 상태 할당들에 대하여 상이한 멀티-비트 논리 값을 설정함 ―, 인코딩 방식들 각각을 차례로 이용하여 상기 MLC 메모리 셀이 배치된 어레이에 데이터를 기록하는 단계, 및 상기 모집단으로부터 최저 총 에너지 소모량을 나타내는 비-순차적 방식을 선택하는 단계를 포함하는,
방법. - 멀티-레벨 셀(MLC) 메모리 셀들의 어레이를 제공하는 단계 ― 각각의 MLC 메모리 셀은, 상기 MLC 메모리 셀의 2n개의 물리적 상태들에 관련하여 복수 개(n 개)의 독립적 비트들을 저장하기 위해 적응됨 ―;
선택된 셀의 각각의 물리적 상태를 달성하기 위해 요구되는 기록 활동에 관련하여, 상기 선택된 셀의 각각의 물리적 상태를 논리적 비트 값들의 상이한 n-비트 조합에 연관시키는 비-순차적 인코딩 방식을 상기 어레이에 할당하는 단계; 및
상기 할당된 인코딩 방식을 이용하여, 논리적 비트 값들의 선택된 n-비트 조합을 상기 선택된 셀에 기록하는 단계를 포함하고,
상기 할당된 비-순차적 인코딩 방식은 상기 MLC 메모리 셀에 대한 순차적 인코딩 방식과 비교하여 더 낮은 총 에너지 소모량 레벨을 제공하는,
방법. - 제 11 항에 있어서,
상기 MLC 메모리 셀들은, 복수의 자기 터널링 접합(MTJ:magnetic tunneling junction)들을 각각 갖는 STRAM 메모리 셀들로서 특징지어지는,
방법. - 제 11 항에 있어서,
상기 MLC 메모리 셀들은 플래시 메모리 셀들로서 특징지어지는,
방법. - 제 11 항에 있어서,
상기 할당하는 단계는, 기록 전류를 상기 선택된 셀에 인가함으로써 상기 선택된 셀을 복수의 이용 가능한 물리적 상태들 각각으로 차례로 전이시키는 단계, 각각의 전이에 대하여 상기 기록 전류의 크기를 측정하는 단계, 및 상기 측정된 기록 전류들에 관련하여 상기 비-순차적 인코딩 방식을 선택하는 단계를 포함하는,
방법. - 제 11 항에 있어서,
상기 할당된 인코딩 방식은, 제 1 멀티-비트 논리 값을 상대적으로 더 낮은 저항을 갖는 제 1 물리적 상태에 연관시키고, 제 2 멀티-비트 논리 값을 상대적으로 높은 저항을 갖는 제 2 물리적 상태에 연관시키고, 그리고 제 3 멀티-비트 논리 값을 상기 제 1 물리적 상태의 저항과 상기 제 2 물리적 상태의 저항 사이의 저항을 갖는 제 3 물리적 상태에 연관시키고, 상기 제 3 멀티-비트 논리 값은 상기 제 1 멀티-비트 논리 값 및 상기 제 2 멀티-비트 논리 값보다 더 큰,
방법. - 제 11 항에 있어서,
상기 할당하는 단계는, 기록 커맨드들의 미리결정된 시퀀스 및 멀티-비트 논리 값들로서 배열된 연관된 기록 데이터에 따라 데이터를 메모리 어레이에 저장하는 단계, 상기 데이터를 저장하는 단계 동안에 상기 어레이에 기록된 각각의 멀티-비트 논리 값에 대하여 빈도 통계치들을 축적시키는 단계, 상기 빈도 통계치들을 메모리 내에 저장하는 단계 및 상기 할당된 비-순차적 인코딩 방식을 식별하기 위해 상기 저장된 빈도 통계치들을 이용하는 단계를 포함하는,
방법. - 제 11 항에 있어서,
상기 물리적 상태들 각각을 논리적 비트 값들의 연관된 n-비트 조합과 연관시키는 변환 표를 생성하는 단계,
상기 변환 표를 메모리에 저장하는 단계,
상기 선택된 셀을, 상기 선택된 셀에 기록될 논리적 비트 값들의 선택된 n-비트 조합에 대응하는 선택된 물리적 상태에 놓기 위하여, 상기 기록하는 단계 동안에 상기 변환 표를 이용하는 단계, 및
상기 어레이에 저장된 데이터를 복원시키기 위한 후속하는 판독 단계 동안에 상기 변환 표를 이용하는 단계를 더 포함하는,
방법. - 멀티-레벨 셀(MLC) 메모리 셀들의 어레이 ― 각각의 셀은, 상기 셀의 2n개의 물리적 상태들에 관련하여 복수 개(n 개)의 독립적 비트들을 저장하기 위해 적응됨 ―; 및
선택된 셀의 각각의 물리적 상태를 달성하기 위해 요구되는 기록 활동에 관련하여, 상기 선택된 셀의 각각의 물리적 상태를 상이한 멀티-비트 논리 값에 연관시키는 비-순차적 인코딩 방식을 상기 어레이에 할당하고, 후속하여, 상기 할당된 인코딩 방식을 이용하여, 선택된 멀티-비트 논리 값을 상기 선택된 셀에 기록하기 위하여 상기 어레이 상에 기록 동작을 지시하기 위해 적응된 제어기를 포함하고,
상기 할당된 비-순차적 인코딩 방식은 상기 MLC 메모리 셀에 대한 순차적 인코딩 방식과 비교하여 더 낮은 총 에너지 소모량 레벨을 제공하는,
장치. - 제 18 항에 있어서,
상기 물리적 상태들 각각을, 상기 물리적 상태들 각각의 연관된 멀티-비트 논리 값과 연관시키는 변환 표를 저장하는 메모리를 더 포함하고,
상기 제어기는, 상기 어레이를 이용한 기록 동작 및 판독 동작 동안에 상기 변환 표를 활용하는,
장치. - 제 18 항에 있어서,
상기 제어기는, 상기 MLC 메모리 셀에 대하여 이용 가능한 대안적인 인코딩 방식들의 모집단을 식별하고 ― 상기 모집단 내의 각각의 인코딩 방식은 물리적 상태 할당들에 대하여 상이한 멀티-비트 논리 값을 설정함 ―, 상기 인코딩 방식들 각각을 차례로 이용하여 상기 어레이에 데이터의 기록을 지시하고, 상기 모집단으로부터 최저 총 에너지 소모량을 나타내는 비-순차적 방식을 선택하기 위해 적응되는,
장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/070,021 US8942035B2 (en) | 2011-03-23 | 2011-03-23 | Non-sequential encoding scheme for multi-level cell (MLC) memory cells |
US13/070,021 | 2011-03-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120109330A KR20120109330A (ko) | 2012-10-08 |
KR101366017B1 true KR101366017B1 (ko) | 2014-02-21 |
Family
ID=46859135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120028493A KR101366017B1 (ko) | 2011-03-23 | 2012-03-20 | 멀티레벨 셀(mlc) 메모리 셀들을 위한 비순차적 인코딩 방식 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8942035B2 (ko) |
JP (1) | JP5412541B2 (ko) |
KR (1) | KR101366017B1 (ko) |
CN (1) | CN102693759B (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8874994B2 (en) | 2011-07-22 | 2014-10-28 | Sandisk Technologies Inc. | Systems and methods of storing data |
JP2013175258A (ja) * | 2012-02-27 | 2013-09-05 | Sony Corp | 多値メモリ、多値メモリ書き込み方法及び多値メモリ読み出し方法 |
WO2013162598A1 (en) * | 2012-04-27 | 2013-10-31 | Hewlett-Packard Development Company, L.P. | Local checkpointing using a multi-level cell |
CN105493292B (zh) * | 2013-09-30 | 2019-09-06 | 英特尔公司 | 自旋电子逻辑元件 |
US9105343B2 (en) | 2013-11-13 | 2015-08-11 | Avalanche Technology, Inc. | Multi-level cells and method for using the same |
US8724380B1 (en) | 2013-11-13 | 2014-05-13 | Avalanche Technology, Inc. | Method for reading and writing multi-level cells |
US20150213867A1 (en) * | 2014-01-28 | 2015-07-30 | Qualcomm Incorporated | Multi-level cell designs for high density low power gshe-stt mram |
US9690656B2 (en) | 2015-02-27 | 2017-06-27 | Microsoft Technology Licensing, Llc | Data encoding on single-level and variable multi-level cell storage |
US9786386B2 (en) | 2015-02-27 | 2017-10-10 | Microsoft Technology Licensing, Llc | Dynamic approximate storage for custom applications |
CN106486359B (zh) * | 2015-08-28 | 2020-06-23 | 北大方正集团有限公司 | 一种射频三极管的制作方法及射频三极管 |
CN113517015B (zh) * | 2021-04-29 | 2024-05-14 | 中国科学院上海微系统与信息技术研究所 | 一种实现存储单元多级存储的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001093288A (ja) | 1999-09-20 | 2001-04-06 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR20090011207A (ko) * | 2007-07-25 | 2009-02-02 | 주식회사 하이닉스반도체 | 3비트 멀티 레벨 셀 메모리 소자의 프로그램 방법 |
JP2009259316A (ja) | 2008-04-14 | 2009-11-05 | Toshiba Corp | 半導体記憶装置 |
WO2011135984A1 (ja) | 2010-04-28 | 2011-11-03 | 株式会社日立製作所 | 半導体記憶装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450363A (en) | 1994-06-02 | 1995-09-12 | Intel Corporation | Gray coding for a multilevel cell memory system |
US6076176A (en) | 1998-03-19 | 2000-06-13 | Digital Equipment Corporation | Encoding of failing bit addresses to facilitate multi-bit failure detect using a wired-OR scheme |
US7433253B2 (en) * | 2002-12-20 | 2008-10-07 | Qimonda Ag | Integrated circuit, method of operating an integrated circuit, method of manufacturing an integrated circuit, memory module, stackable memory module |
US7388781B2 (en) | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US8120949B2 (en) * | 2006-04-27 | 2012-02-21 | Avalanche Technology, Inc. | Low-cost non-volatile flash-RAM memory |
KR100854970B1 (ko) * | 2007-01-08 | 2008-08-28 | 삼성전자주식회사 | 멀티 레벨 셀 플래시 메모리 장치 및 그것의 프로그램 방법 |
KR100769776B1 (ko) * | 2006-09-29 | 2007-10-24 | 주식회사 하이닉스반도체 | 낸드 플래시 메모리 소자의 프로그램 방법 |
KR100764750B1 (ko) | 2006-10-16 | 2007-10-08 | 삼성전자주식회사 | 유연한 어드레스 맵핑 스킴을 갖는 플래시 메모리 장치 |
US20080168215A1 (en) * | 2007-01-05 | 2008-07-10 | Anxiao Jiang | Storing Information in a Memory |
JP5458546B2 (ja) | 2008-10-27 | 2014-04-02 | 富士通セミコンダクター株式会社 | 遅延クロック発生装置 |
-
2011
- 2011-03-23 US US13/070,021 patent/US8942035B2/en not_active Expired - Fee Related
-
2012
- 2012-03-16 JP JP2012060013A patent/JP5412541B2/ja not_active Expired - Fee Related
- 2012-03-20 KR KR1020120028493A patent/KR101366017B1/ko not_active IP Right Cessation
- 2012-03-22 CN CN201210096304.3A patent/CN102693759B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001093288A (ja) | 1999-09-20 | 2001-04-06 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR20090011207A (ko) * | 2007-07-25 | 2009-02-02 | 주식회사 하이닉스반도체 | 3비트 멀티 레벨 셀 메모리 소자의 프로그램 방법 |
JP2009259316A (ja) | 2008-04-14 | 2009-11-05 | Toshiba Corp | 半導体記憶装置 |
WO2011135984A1 (ja) | 2010-04-28 | 2011-11-03 | 株式会社日立製作所 | 半導体記憶装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120243311A1 (en) | 2012-09-27 |
JP5412541B2 (ja) | 2014-02-12 |
CN102693759A (zh) | 2012-09-26 |
KR20120109330A (ko) | 2012-10-08 |
CN102693759B (zh) | 2018-05-18 |
US8942035B2 (en) | 2015-01-27 |
JP2012203979A (ja) | 2012-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101366017B1 (ko) | 멀티레벨 셀(mlc) 메모리 셀들을 위한 비순차적 인코딩 방식 | |
JP4297136B2 (ja) | 記憶装置 | |
JP4670252B2 (ja) | 記憶装置 | |
KR101127413B1 (ko) | 개선된 부분 페이지 프로그램 능력을 가진 비휘발성 메모리및 제어 | |
US9001578B2 (en) | Soft erasure of memory cells | |
US20140247660A1 (en) | Compensation for Sub-Block Erase | |
US9099185B2 (en) | Using different programming modes to store data to a memory cell | |
US8040713B2 (en) | Bit set modes for a resistive sense memory cell array | |
US10418072B2 (en) | Memories having select devices between access lines and in memory cells | |
US8838881B2 (en) | Transfer command with specified sense threshold vector component | |
US9230661B2 (en) | Determining soft data for combinations of memory cells | |
JP2012069199A (ja) | 半導体記憶装置 | |
JP6457792B2 (ja) | 半導体記憶装置 | |
US9042186B2 (en) | Solid state drive and data erasing method thereof | |
US11488657B1 (en) | Fast interval read setup for 3D memory | |
Yilmaz et al. | Threshold read method for multi-bit memristive crossbar memory | |
KR101585134B1 (ko) | 비휘발성 메모리 장치 및 그를 테스트하는 방법 |
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: 20170126 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180122 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |