KR20090060441A - 비휘발성 메모리들을 위한 성능 또는 전력 최적화 코드/데이터 저장 - Google Patents

비휘발성 메모리들을 위한 성능 또는 전력 최적화 코드/데이터 저장 Download PDF

Info

Publication number
KR20090060441A
KR20090060441A KR1020097007825A KR20097007825A KR20090060441A KR 20090060441 A KR20090060441 A KR 20090060441A KR 1020097007825 A KR1020097007825 A KR 1020097007825A KR 20097007825 A KR20097007825 A KR 20097007825A KR 20090060441 A KR20090060441 A KR 20090060441A
Authority
KR
South Korea
Prior art keywords
level
memory
programming
threshold voltage
dominant
Prior art date
Application number
KR1020097007825A
Other languages
English (en)
Other versions
KR101018973B1 (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 KR20090060441A publication Critical patent/KR20090060441A/ko
Application granted granted Critical
Publication of KR101018973B1 publication Critical patent/KR101018973B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5647Multilevel memory with bit inversion arrangement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

무선 디바이스는 프로그래밍 시간들을 최적화하기 위해 선택된 메모리 영역에 대해 비트 쌍들의 교환 또는 맵핑을 동적으로 제어하는 비휘발성 메모리를 포함한다.
Figure P1020097007825
무선 디바이스, 비휘발성 메모리, 교환 인코더

Description

비휘발성 메모리들을 위한 성능 또는 전력 최적화 코드/데이터 저장{PERFORMANCE OR POWER-OPTIMIZED CODE/DATA STORAGE FOR NONVOLATILE MEMORIES}
소비자 어플리케이션들에서의 연속적인 혁신은 고밀도의 메모리 저장에 대한 요구를 강화시켜 왔다. 플래시 메모리들의 고유한 속성들은 많은 소비자 어플리케이션들의 데이터 보유(retention) 필요성들을 만족시킨다. 플래시 메모리는 전력이 제거될 때도 그의 데이터를 유지하고, MLC(MultiLevel Cell) 기술을 사용하여 소비자가 원하는 고밀도를 달성한다. MLC 기술은 메모리 셀 당 다수의 데이터 비트들의 저장을 가능하게 함으로써 더 적은 메모리 비용을 제공해 왔다. 단일 메모리 트랜지스터에 다수의 비트들의 정보를 추가함으로써, 실리콘 영역이 감소되고, 고밀도 요구(demand)가 달성된다. 그러나, MLC 기술은 메모리를 프로그래밍하는 것과 관련된 비용이 들고, 이러한 비용들을 관리하는데 도움이 되는 솔루션이 요구된다.
본 발명에 대한 주제는 명세서의 결론 부분에서 구체적으로 지시되고 개별적으로 청구된다. 그러나, 본 발명은 동작의 방법 및 구성(organization) 둘 다에 대하여, 본 발명의 목적들, 특징들 및 그의 장점들과 함께 첨부하는 도면들을 이용하여 판독할 때 다음의 상세 설명에 대한 참조로서 가장 잘 이해될 수 있다.
도 1은 본 발명에 따라 비휘발성 메모리의 성능을 향상하기 위해 비트 교환 인코딩(swap encoding)을 제공하는 알고리즘을 및 회로를 포함하는 디바이스를 도시하는 도면이다.
도 2는 본 발명에 따라 시스템 성능을 향상시키도록 비트 교환 인코딩을 사용하고 비트 교환 알고리즘을 활용하는 것에 대한 필요성을 결정하기 위해 비휘발성 메모리 영역을 특징화하는 방법을 도시하는 흐름도이다.
도 3은 본 발명에 따라 메모리 영역들을 메모리 프로그래밍 및 판독 동작으로 맵핑하는 비트 교환 인코딩의 일례를 도시하는 블록도이다.
도시의 단순화 및 명료성을 위해, 도면들에 도시된 구성요소들은 반드시 실제축적으로 도시될 필요는 없음을 이해할 것이다. 예를 들어, 구성요소들 중 일부의 치수들은 명료성을 위해 다른 구성요소들에 대해 과장될 수 있다. 또한, 적절한 것으로 고려되는 경우, 대응하거나 또는 유사한 구성요소들을 나타내는 도면들 사이에서 참조 번호들이 반복된다.
다음 상세 설명에서, 본 발명에 대한 완전한 이해를 제공하기 위해 다수의 특정 상세들이 설명된다. 그러나, 본 발명이 이러한 특정 상세들 없이 실행될 수 있다는 것은 본 기술분야의 통상의 기술자에 의해 이해될 것이다. 다른 예들에서, 잘 알려진 방법들, 절차들, 컴포넌트들 및 회로들은 본 발명을 모호하게 하지 않기 위해 상세히 설명되지 않는다.
다음 설명 및 특허청구범위에서, "연결된" 및 "접속된"의 용어들이 그들의 파생어들과 함께 사용될 수 있다. 이러한 용어들은 서로 동의어들로 고려되지 않는다는 것을 이해해야 한다. 오히려, 특정 실시예에서, "접속된"은 둘 이상의 구성요소들이 직접적으로 서로 물리적 또는 전기적 접촉이 있는 것을 가리키는데 사용될 수 있는 반면, "연결된"은 둘 이상의 구성요소들이 서로 직접 접촉되어 있지 않지만, 서로 여전히 협력하거나 또는 상호작용한다는 것을 의미할 수도 있다.
도 1은 예를 들어, 디바이스(10)에 포함될 수있는 본 발명의 특징들을 도시한다. 도시된 실시예에서, 디바이스(10)는 무선 통신 디바이스이지만, 본 발명이 무선 어플리케이션들에 제한되지 않는다는 것을 알아야 한다. 무선 실시예에서, 송수신기(12)는 하나 이상의 안테나들로부터 변조된 신호를 수신 및 송신 둘 다 한다. 아날로그 프론트 엔드(front end) 송수신기는 독립형 무선 주파수(standalone Radio Frequency, RF) 집적 아날로그 회로일 수 있거나, 또는 대안으로서, 혼합-모드(mixed-mode) 집적 회로로서 프로세서(14)와 함께 내장될 수 있다. 수신된 변조된 신호는 주파수 다운-변환, 필터링될 수 있고, 그 후 기저대역 디지털 신호로 변환될 수 있다.
프로세서(14)는, 하나 이상의 프로세서 코어들을 활용할 수 있는 어플리케이션 처리 기능들 및 기저대역을 제공하기 위해, 송수신기(12)에 접속된다. 프로세서 코어들(16 및 18)은, 일반적으로, 명령어들을 페치(fetch)하고, 디코드(decode)들을 생성하고, 피연산자(operand)를 찾아 적절한 동작들을 수행하는 기능들을 처리하고, 그 후 결과들을 저장한다. 다수의 코어들을 사용하여, 하나의 코어로 하여금, 예를 들어, 그래픽, 모뎀 기능들 등과 같은 어플리케이션 특정 기능들을 처 리하는데 전용되도록 할 수 있다. 대안으로서, 다수의 코어들은 처리 워크로드(workload)들이 코어들을 통해 공유되도록 할 수 있다.
메모리 제어기는 프로세서(14) 내에 내장된 캐시 메모리 및 프로세서 코어들이 시스템 메모리(24)와 데이터를 교환하도록 하는 메모리 인터페이스(22)를 제어한다. 시스템 메모리(24)에 포함된 메모리들의 타입 및 다양성 어떠한 것도 본 발명을 제한하는 것은 아니지만, 시스템 메모리(24)는, 디스크, RAM(Random Access Memory), ROM(Read Only Memory) 및 비휘발성 메모리(26)와 같은 메모리들의 조합을 포함할 수 있다.
무선 실시예들에서, 송수신기(12), 프로세서(14) 및 비휘발성 메모리(26)는 다양한 어플리케이션들에 솔루션들을 제공하도록 조합된다. 비휘발성 저장에 매우 적합한 전형적인 어플리케이션들은 디지털 비디오, 디지털 스틸 카메라 메모리 카드들, USB 플래시 드라이브들, MP3 플레이어들, 자동차 진단기구들, GPS 디바이스들, 애니매트로닉스(animatronics), 비디오 게임 카드들 및 장난감 어플리케이션들을 포함한다. 추가 어플리케이션들은 프린터들(폰트들)에 대한 메모리 카드들, 셀 폰들, 텔레콤 어플리케이션들, 음성 메일, 셋톱 박스들, 고체 상태 하드 디스크 드라이브들, HDTV, 바코드 스캐너들, 및 다른 타입의 휴대용 저장 디바이스들을 포함한다. 나타낸 바와 같이, 프로세서(14) 및 비휘발성 메모리(26)는 무선 어플리케이션들 이외의 시스템들에 포함될 수 있다. 예로서, 프로세서(14) 및 비휘발성 메모리(26)는, 데스크탑 컴퓨터들 및 랩탑들을 포함하는 어플리케이션들에 포함된 청구된 주제와 함께 포함될 수 있다.
비휘발성 메모리(26)는, 예를 들어, ETOXTM 플래시 NOR 메모리, NAND 메모리, EEPROM(Electrically Erasable and Programmable Read Only Memory), FRAM(Ferroelectric Random Access Memory), PFRAM(Polymer Ferroelectric Random Access Memory), MRAM(Magnetic Random Access Memory), OUM(Ovonics Unified Memory), 단일 분자 주위의 여러 활성 부위들에서의 전하 단위(pacels of charge) 형태로 정보를 저장하는 다층(multilevel) 분자 메모리, 또는 명령어들 및/또는 데이터를 저장하고, 전력 보존 모드의 디바이스(10)에서 조차 그 정보를 유지할 수 있는 임의의 다른 디바이스 유형들과 같은 다양한 저장 디바이스들로부터 선택될 수 있다. 따라서, 본 발명의 범위는 이러한 비휘발성 메모리(26) 예들로만 한정되지 않는다.
프로세서(14)가 메모리 비트 교환 인코더(20)를 더 포함할 수 있거나, 또는 대안으로서, 비휘발성 메모리(26)가 메모리 비트 교환 인코더를 포함할 수 있다. 본 발명에 따르면, 메모리 비트 교환 인코더(20)는 메모리 구역들 또는 영역들을, 그러한 메모리 구역들 또는 영역들 상에서 수행된 특정 기능들로 맵핑된다. 도 2는 비휘발성 메모리(26) 내에서 실행된 동작들을 도시하는 예를 제공하고, 여기서, 메모리 비트 교환은 시스템 성능을 향상시킬 수 있다. 도면은, 상이한 제어가능한 비트 상태들에 기초한 비휘발성 메모리의 메모리 영역의 프로그래밍 및 판독을 도시한다.
제어형 프로그래밍 기술이 비휘발성 메모리 셀의 플로팅 게이트 상에 정확한 양의 전하를 위치시킨다는 것이 이해된다. 플래시 메모리 셀의 전하 저장 능력은 단일 셀에서의 다수의 비트들의 저장을 허여한다. 플로팅 게이트 상의 전하를 4개의 전하 상태들 또는 범위들 중 하나로 정확하게 위치시킴으로써, 메모리 셀은 2비트의 데이터를 저장할 수 있다. 그러나, 더욱 더 정확한 전하 배치 제어에 의해 셀 당 비트 밀도들을 더 높이는 것이 가능하다. 발명을 도시하고 단순함을 위해, 표는 셀 당 2비트만이 저장된 데이터를 도시하지만, 다른 실시예들은 셀 당 추가 비트들을 저장할 수 있어, 본 발명이 셀 당 2비트들만의 셀 밀도들로 제한되지 않는다는 것이 주목된다.
MLC(Multi-Level Cell) 기술은 트랜지스터의 플로팅 게이트를, 개별적인 플래시 셀 임계 전압 범위들에 의해 정의되는 상이한 레벨들로 충전함으로써 메모리 셀 당 다수의 비트들을 저장할 수 있다. 플로팅 게이트 상에 저장된 전하는, 그 메모리 셀 트랜지스터의 제어 게이트에 인가된 더 높은 턴온(higher turn-on) 임계 전압(Vt)에 의해 극복되어야 하는 전압 전위를 생성한다. 플로팅 게이트 상에 저장된 전하의 양은 메모리 셀 트랜지스터의 동작(behavior)을 수정하고, 이러한 저장된 게이트 전하는 저장된 데이터의 레벨들로서 메모리 판독 동작에서 검출될 수 있다.
플래시 메모리 셀에 저장된 4개의 임계 전압 범위들 또는 Vt 레벨들과 대응하는 로직 레벨들 사이의 관계는 2비트 조합들('11b, '10b, '01b 및 '00b)에 의해 유일하게 표현될 수 있다. 4개의 임계 전압 분포(distribution)들은, 메모리 판독 동작이 '11b, 예를 들어, 삭제(erased) 상태; '10b, 예를 들어, 부분적 셀 프로그 래밍 상태; '01b, 예를 들어, 부분적 셀 프로그래밍 상태; 및 '00b, 예를 들어, 전체 셀 프로그래밍 상태로서 해석될 수 있는 저장된 데이터로 변형된다. 따라서, 게이트 전하의 존재는 데이터 상태들 또는 개별 레벨들('11b, '10b, '01b 및 '00b)로서 해석될 수 있다.
플래시 메모리의 내용들은 블록 경계 상에서 삭제되고, 데이터는 그 삭제 동작을 이용하여 플래시 메모리로부터 제거(clear)된다. '11b 삭제 레벨로의 메모리 블록의 삭제된 후, 어드레싱된 메모리 셀들은 그 후 '10b, '01b 또는 '00b 프로그래밍된 레벨들로 프로그래밍될 수 있다. 셀 당 2비트를 저장하는 것은 판독 기준 셀들에 의해 정의된 4개의 레벨들을 요구한다. 데이터가 메모리 디바이스로 들어가면, 그것은 전력이 존재하거나 존재하지 않음에 관계없이, 유지될 것이다.
이러한 4개의 레벨들의 프로그래밍 시간이 동일하지 않다는 것이 이해되어야 한다. 예로서, '11b로 지칭된 Vt 레벨들 중 하나는 "삭제된(erased)" 조건에 대응하고, 4개의 레벨들 중 가장 적은 프로그래밍 시간을 갖는다. 이러한 '11b 삭제 레벨은 "아무것도 하지 않는(do-nothing)" 레벨이고, 이러한 비트 쌍을 저장할 때, 셀의 Vt를 변화시키는데 요구되는 프로그래밍 동작은 존재하지 않는다. 따라서, 이러한 삭제 조건은 임의의 다른 비트 쌍들과 비교할 때 프로그래밍 동안의 최소 시간을 나타낸다. '10b, '01b 및 '00b 레벨들에 대한 프로그래밍은, '11b 레벨보다 프로그래밍 시간이 확실히 더 걸리는 상이한 레벨들로, 메모리 셀들의 트랜지스터들의 플로팅 게이트를 충전하는 것을 포함한다.
도 2는 도 1에 도시된 비휘발성 메모리(26)를 위해 본 발명에 따라 사용되는 프로그래밍 알고리즘과 판독 알고리즘 둘 다를 도시하는 흐름도이다. 통상, 비휘발성 메모리의 정의된 영역들 내에 보유된 코드 및 데이터는 각각의 비트 쌍 조합의 동일한 분포가 아니다. 다른 말로, 비휘발성 메모리의 특정 영역들은 일반적으로 '00b, '01b, '10b 및 '11b 레벨들의 동일한 할당을 저장하지 않지만, 일부 프로그래밍된 레벨들은 다른 비트 쌍들에 비해 하나의 비트 쌍에 대한 더 높은 성향(propensity)을 갖는다. 하나의 비트 쌍을 지원하는(favor) 이러한 성향은, 예로서, 프로세서(14)에서 코드의 명령어 세트 인코딩이 1보다 0을 더 생성할 때 발생할 수 있다. 다른 비트 쌍 조합들과 비교할 때, 더 많은 '00b 비트 쌍 조합들이 비휘발성 메모리(26)의 정의된 영역들에서의 저장을 위해 스케줄링되는 것은 당연한 이치다.
본 발명은, 프로그래밍된 저장을 위해 스케줄링된 다른 비트 쌍 조합들보다 하나의 비트 쌍 조합의 생성을 지원하는 이러한 불균등한 비대칭(unequal skew)에 영향을 준다. 일부 실시예들에서, 방법(200) 또는 그의 일부분들은, 성능을 향상시키고 시스템 동작 전력을 감소시키기 위해 비휘발성 메모리(26)에 의한 정상 동작(normal operation)에서 수행된다. 다른 실시예들에서, 방법(200) 또는 그의 일부분들은 프로세서(14)와 협력하여 비휘발성 메모리(26)에 의해 수행될 수 있다. 방법(200)은 특정 유형의 장치, 소프트웨어 구성요소 또는 그 방법을 수행하는 시스템에 의해 제한되지 않는다는 것을 주목한다.
방법(200)은 프로그래밍되는 메모리 영역 또는 메모리 사이즈가 비휘발성 메모리(26) 내에서 설정되는 프로세스(210)에서 시작하는 것을 나타낸다. 일부 실시 예들에서, 이러한 영역은 1K 바이트 영역으로서 정의될 수 있지만, 이러한 1K 영역 사이즈는 제한되지 않고 다른 영역 사이즈들이 구상(envision)되기도 한다. 프로세스(212)에서, 정의된 메모리 영역은 최빈(the most frequent) 비트 쌍 인코딩 조합을 결정하도록 특징화된다. 프로세스(214)에서, 프로세스(212)에서 결정된 최빈 비트 쌍 인코딩 조합이 삭제된 '11b 레벨에 대응하는지에 대한 결정이 이루어진다. 최빈 비트 쌍 인코딩 조합이 삭제된 '11b 레벨에 대응하면, 그 후 프로세스(222)가 수행되고, 비트 쌍 인코딩 또는 비트 교환이 발생되지 않는다. 그 메모리 영역이, 삭제된, 예를 들어, 아무것도 하지 않는 '11b 레벨을 나타내는 Vt로 직접 맵핑하는 우위(dominant) 비트 쌍 조합을 포함한다면, 교환은 발생하지 않으며, 알고리즘은 메모리 영역을 정상적으로 프로그래밍하도록 진행된다.
그러나, 메모리 영역이 삭제된 '11b 레벨과 상이한 우위 비트 쌍 인코딩 조합을 갖는 경우, 알고리즘은 프로세스(216)를 수행하도록 진행한다. 프로세스(216)는 최빈 비트 쌍 조합을 '11b 인코딩과 교환한다. 다른 말로, 메모리 영역에 대한 우위 비트 쌍 조합이 "아무것도 하지 않는" 삭제된 Vt보다 더 길게 걸리는 Vt로 맵핑하는 경우, 메모리 비트 교환 인코더(20)는 그 프로그램이 영역에 대한 비트 인코딩을 교환하여, 최우위 비트 쌍 조합을 "아무것도 하지 않는" Vt로 맵핑한다. 교환 조건이 결정되어 프로세스(216)가 발생할 때, 비휘발성 메모리(26)는 프로세스(218)에서 나타낸 바와 같이 이러한 프로그래밍 영역에 대한 교환 정보를 기술하는 여분(extra)의 2 비트를 저장한다. 그 후, 선택된 메모리 영역은 사후(post) 교환 인코딩들을 사용하여 프로그래밍된다(프로세스(220) 참조).
도 3은 본 발명에 따라 메모리 영역들을 메모리 프로그래밍 및 판독 동작들로 맵핑하는 비트 교환 인코딩의 일례를 도시하는 블록도이다. 블록(310)에서의 '11b, '10b, '01b 및 '00b의 Vt 레벨들은 프로그래밍을 위해 선택된 비휘발성 메모리 영역에 대한 비트 쌍 조합을 나타낸다. 블록(320)에서의 '11b, '10b, '01b 및 '00b의 Vt 레벨들은 (도 2에 도시된 알고리즘에서의 프로세스(220)에 도시된) 사후-교환 인코딩들을 나타낸다. 이러한 예에서, 이러한 선택된 메모리 영역에 대한 우위 비트 쌍 조합은 (도 2에 도시된 알고리즘에서의 프로세스(212)에 대응하는) '10b가 되도록 결정된다. 다른 방법으로, 참조 번호(314)에 의해 지칭된 Vt 레벨은 선택된 메모리 영역에 대한 가장 빈번하게 생성되는 비트 쌍 조합을 나타낸다.
가장 우세한(prevalent) 비트 쌍 조합은 (도 2에 도시된 알고리즘에서의 프로세스(214)에 개시된) '11b 비트 쌍과 동일하지 않기 때문에, '10b 레벨은, (도 2에 도시된 알고리즘에서의 프로세스(216)에 개시된) 프로그래밍 시간을 최적화하기 위해 '11b 삭제 레벨로 맵핑되거나 또는 교환된다. 따라서, 블록(310)에서 '10b의 사전 교환(pre-swap) 비트 쌍 조합은 블록(320)에서 '11b의 사후-교환(post-swap) 인코딩으로 맵핑되고, 교환 정보를 기술하는 2비트가 (도 2에 도시된 알고리즘에서의 프로세스(218)에 개시된) 선택된 프로그래밍 영역에 저장된다. 쌍 맵핑을 완료하기 위해, 블록(310)에서의 참조 번호(312)에 의해 나타낸 '11b 비트 쌍은 블록(320)에서 참조 번호(324)에 의해 나타낸 '10b 비트 쌍과 교환된다.
단순함을 위해, 하나의 메모리 교환 쌍만이 도 3에 도시되지만, 최적의 프로그래밍 시간들을 달성하고 시스템 전력을 감소시키기 위해 다른 교환들이 스케줄링 될 수 있다. 따라서, 메모리 비트 교환 인코더(20)는 각각의 메모리 영역에 대한 다수의 교환들을 맵핑할 수 있다. 도 2는, 이러한 프로그래밍 영역에 저장된 정보가 다시 판독될 때, 이러한 프로그래밍 영역에 대한 저장된 교환 상태에 대응하는 여분의 2비트가, 원래의 사용자 데이터를 복제(reproduce)하기 위해, 프로그래밍 동작에서 사용된 Vt 교환을 역으로 하는데 사용되는 것을 더 도시한다(프로세스(250, 252, 254 및 256) 참조).
플래시 기술들에서, 일방(one way) 프로그래밍은 비트들을 1에서 0으로 프로그래밍되도록 한다는 것을 주목한다. 비트들은 삭제가 발생되기 전에 예를 들어, 0xF에서 0xE, OxC, 0x8, 0x0까지 프로그래밍될 수 있다. 다른 예로서, 비트들은 삭제가 발생되기 전에, 0xF에서 0x7, 0x3, 0x1, 0x0까지 프로그래밍될 수 있다. 이러한 한번의 프로그래밍 제한(restriction)은 레벨 교환을 가능하게 하는 것이다. 한번보다 많이 발생하는 임의의 프로그래밍은 메모리 쌍들을 교환하는 능력을 방해(break)하지만, 영역 내에서 단지 한번 프로그래밍하는 제한을 부과하여 교환을 허여한다. 실제로, 에러 교정을 통해 데이터를 보호하는 것은 이러한 한번의 프로그래밍 제한을 요구한다. 일반적으로, 에러 교정은 에러 교정된 셀들이 기입만 되기를 요구한다. 데이터가 두번 기입되면, ECC 패리티(parity) 비트들은 0에서 1로 갈 수 있고, 패리티 비트 데이터에 대한 이러한 변환(transition)은 플래시 프로그램 동작으로 저장될 수 없다는 것을 주목한다.
선택된 프로그래밍 영역들과 연관된 타겟형 비트 쌍 조합 스위치들을 관리하고 수행함으로써 성능 및 전력 문제들을 해결하기 위해 프로세서(14)에 의한 개 입(intervention) 없이 비휘발성 메모리(26)가 사용될 수 있다는 것은 명백할 것이다. 존재하는 코드(existing code)를 적절히 교환함으로써, 비휘발성 메모리(26)는 성능 불균형(disparity)들을 최소화하고, 프로그래밍 수행에 있어 향상을 달성할 수 있다. 랜덤하지 않은 데이터 비트들, 즉, 프로그래밍 영역에서의 모든 레벨들을 통해 공평하게 분배되지 않은 데이터 비트들은 교환 알고리즘을 사용하는 것으로부터 이익을 얻을 수 있다. 그러나, 어떠한 레벨도 다른 것보다 우세하지(prevalent) 않다면, 교환은 도움이되지 않을 것이다. 실제로, 셀룰러 코드 및 다른 타입의 데이터는 교환 알고리즘으로부터 이익을 얻을 수 있고, 예를 들어, 7% 내지 37%의 범위의 향상이 실현될 수 있다. 프로그래밍될 때 "아무것도 하지 않는" 조건에 대한 최적화에 의해, 소수의 셀들이 평균적으로 프로그래밍될 필요가 있기 때문에 요구되는 프로그래밍 전류가 감소된다.
본 발명의 소정의 특징들이 본원에 도시되고 기술되었지만, 본 기술분야의 통상의 기술자들에게 있어 많은 수정들, 대체들, 변경들 및 균등물들이 생길 것이다. 따라서, 첨부된 특허청구범위들은 본 발명의 실제 사상 내에 있는 그러한 수정들 및 변경들 모두를 커버할 의도라는 것이 이해될 것이다.

Claims (20)

  1. 프로세서; 및
    비휘발성 메모리의 영역에 저장될 코드에 대한 우위 레벨(dominant level)을 찾기 위해 상기 프로세서로부터 수신된 코드를 특징화하는 메모리 비트 교환 인코더를 갖는 비휘발성 메모리
    를 포함하고,
    상기 교환 인코더는, 프로그래밍 시간을 감소시키기 위해, 저장하기 전에, 교환된 레벨을 상기 우위 레벨로 대체하는 무선 디바이스.
  2. 제1항에 있어서,
    프로그래밍 전류를 감소시키기 위해, 저장하기 전에, 상기 교환된 레벨을 상기 우위 레벨로 대체하는 상기 교환 인코더를 더 포함하는 무선 디바이스.
  3. 제1항에 있어서,
    상기 비휘발성 메모리의 영역은 상기 교환된 레벨에 대한 정보를 유지하기 위해 적어도 2개의 추가 메모리 비트들을 더 포함하는 무선 디바이스.
  4. 제3항에 있어서,
    상기 메모리 비트 교환 인코더는 상기 비휘발성 메모리의 상기 영역에 상기 코드를 저장하는데 있어 프로그래밍 시간들을 최적화하기 위해, 상기 특징화된 코드의 각각의 임계 전압 범위를 더 맵핑하는 무선 디바이스.
  5. 제4항에 있어서,
    프로그램 동작은 상기 우위 레벨에 대해 상기 대체된 교환된 레벨을 사용하여 상기 비휘발성 메모리의 상기 영역에 상기 코드를 저장하고, 판독 동작은 상기 적어도 2개의 추가 메모리 비트들을 사용하여 상기 코드를 재저장하는 무선 디바이스.
  6. 방송중(over-the-air) 신호를 수신하는 다수의 안테나들;
    상기 다수의 안테나들로부터 변조된 신호를 수신하는 송수신기;
    상기 송수신기에 연결된 프로세서; 및
    세트 메모리 영역에 대해 우위 레벨을 결정하기 위해 상기 프로세서에 의해 실행된 프로그래밍 코드를 특징화하는 비트 교환 인코더
    를 포함하고,
    상기 비트 교환 인코더는 상기 세트 메모리 영역을 프로그래밍하기 위해 상기 우위 레벨과 연관된 프로그래밍 시간보다 적은 프로그래밍 시간을 갖는 레벨을 대체하는 무선 디바이스.
  7. 제6항에 있어서,
    상기 우위 레벨과 연관된 프로그래밍 시간보다 적은 프로그래밍 시간을 갖는 상기 레벨은 삭제 레벨인 무선 디바이스.
  8. 제6항에 있어서,
    상기 우위 레벨은 4개의 임계 전압 범위들 중 하나인 무선 디바이스.
  9. 제6항에 있어서,
    상기 레벨은 상기 우위 레벨과 연관된 프로그래밍 시간보다 적은 프로그래밍 시간을 갖는 삭제 레벨인 무선 디바이스.
  10. 우위 레벨을 결정하기 위해, 메모리 영역에 저장하기 전에, 코드를 특징화하는 메모리 비트 교환 인코더를 갖고, 상기 우위 레벨을, 프로그래밍 시간을 감소시키기 위해 선택된 교환된 레벨로 교환하는 비휘발성 메모리를 포함하는 무선 디바이스.
  11. 제10항에 있어서,
    상기 교환된 레벨은 상기 우위 레벨과 연관된 프로그래밍 시간보다 적은 프로그래밍 시간을 갖는 삭제 레벨인 무선 디바이스.
  12. 제11항에 있어서,
    상기 비휘발성 메모리의 상기 메모리 영역은 상기 교환된 레벨 및 상기 우위 레벨에 대한 맵핑 정보를 유지하기 위해 적어도 2개의 추가 메모리 비트들을 더 포함하는 무선 디바이스.
  13. 제12항에 있어서,
    상기 적어도 2개의 추가 메모리 비트들은 상기 메모리 영역의 판독 동작에 상기 코드를 재저장하는데 사용되는 무선 디바이스.
  14. 비휘발성 메모리를 사용하는 방법으로서,
    메모리 영역과 연관된 데이터 패턴에 대한 임계 전압 Vt 인코딩들을 특징화하는 단계;
    상기 메모리 영역에 대한 우위 임계 전압을 선택하는 단계;
    상기 우위 임계 전압에 대한 대체로서 삭제 임계 전압을 맵핑하는 단계; 및
    상기 우위 임계 전압에 대해 대체된 상기 삭제 임계 전압을 사용하여 상기 비휘발성 메모리에 상기 데이터 패턴을 프로그래밍하는 단계
    를 포함하는 비휘발성 메모리 사용 방법.
  15. 제14항에 있어서,
    상기 우위 임계 전압에 대한 대체로서 상기 삭제 임계 전압을 맵핑하는 것을 나타내는(indicate) 정보를 상기 메모리 영역에 저장하는 단계를 더 포함하는 비휘 발성 메모리 사용 방법.
  16. 제15항에 있어서,
    프로그래밍 시간들을 최소화하기 위해 각각의 임계 전압을 맵핑하는 단계를 더 포함하는 비휘발성 메모리 사용 방법.
  17. 제16항에 있어서,
    각각의 임계 전압을 맵핑하는 것을 나타내는 정보를 사용하여 상기 메모리 영역에 저장된 상기 데이터 패턴을 판독하는 단계를 더 포함하는 비휘발성 메모리 사용 방법.
  18. 프로세서; 및
    비휘발성 메모리의 영역에 코드를 프로그래밍하는 것과 연관된 현저한(prominent) 레벨을 결정하기 위해 상기 프로세서로부터 수신된 코드를 특징화하는 메모리 비트 교환 인코더를 갖는 비휘발성 메모리
    를 포함하고,
    상기 메모리 비트 교환 인코더는 상기 현저한 레벨과 연관된 프로그래밍 시간보다 적은 프로그래밍 시간을 갖는 교환된 레벨을 대체하는 무선 디바이스.
  19. 제18항에 있어서,
    메인 레벨을 상기 교환된 레벨로 맵핑하는 것을 나타내는 정보를 상기 메모리 영역에 저장하는 것을 더 포함하는 무선 디바이스.
  20. 제18항에 있어서,
    상기 메모리 비트 교환 인코더는 프로그래밍 전류를 감소시키기 위해 상기 교환된 레벨을 상기 현저한 레벨로 대체하는 무선 디바이스.
KR1020097007825A 2006-10-17 2007-10-15 비휘발성 메모리들을 위한 성능 또는 전력 최적화 코드/데이터 저장 KR101018973B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/583,418 US7644225B2 (en) 2006-10-17 2006-10-17 Performance or power-optimized code/data storage for nonvolatile memories
US11/583,418 2006-10-17

Publications (2)

Publication Number Publication Date
KR20090060441A true KR20090060441A (ko) 2009-06-12
KR101018973B1 KR101018973B1 (ko) 2011-03-02

Family

ID=39303651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097007825A KR101018973B1 (ko) 2006-10-17 2007-10-15 비휘발성 메모리들을 위한 성능 또는 전력 최적화 코드/데이터 저장

Country Status (6)

Country Link
US (1) US7644225B2 (ko)
JP (1) JP5095743B2 (ko)
KR (1) KR101018973B1 (ko)
DE (1) DE112007002437B4 (ko)
TW (1) TWI354295B (ko)
WO (1) WO2008048580A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716415B2 (en) 2006-08-01 2010-05-11 Sandisk Il Ltd. Method of avoiding errors in flash memory
US7644225B2 (en) 2006-10-17 2010-01-05 Intel Corporation Performance or power-optimized code/data storage for nonvolatile memories
US8143844B2 (en) * 2007-01-19 2012-03-27 Semiconductor Energy Laboratory Co., Ltd. Charging device
KR101518033B1 (ko) * 2008-11-18 2015-05-06 삼성전자주식회사 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
US8495285B2 (en) * 2011-08-31 2013-07-23 Micron Technology, Inc. Apparatuses and methods of operating for memory endurance
JP2013175258A (ja) * 2012-02-27 2013-09-05 Sony Corp 多値メモリ、多値メモリ書き込み方法及び多値メモリ読み出し方法
US9511238B2 (en) 2012-07-26 2016-12-06 Nyxoah SA Implant holder and suture guide
US10052097B2 (en) 2012-07-26 2018-08-21 Nyxoah SA Implant unit delivery tool
US9907967B2 (en) 2012-07-26 2018-03-06 Adi Mashiach Transcutaneous power conveyance device
US9568986B2 (en) * 2013-09-25 2017-02-14 International Business Machines Corporation System-wide power conservation using memory cache
CN104298475B (zh) * 2014-10-13 2015-11-11 合一网络技术(北京)有限公司 一种数据存储的优化方法
US9727261B2 (en) * 2015-09-24 2017-08-08 Western Digital Technologies, Inc. Weighted programming patterns in solid-state data storage systems
JP6960877B2 (ja) 2018-03-22 2021-11-05 キオクシア株式会社 メモリシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04328394A (ja) * 1991-04-26 1992-11-17 Fujitsu Ltd ファイル記憶用メモリ
JP4023953B2 (ja) * 1999-06-22 2007-12-19 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US7904897B2 (en) 2002-08-08 2011-03-08 Rudelic John C Executing applications from a semiconductor nonvolatile memory
US6941412B2 (en) * 2002-08-29 2005-09-06 Sandisk Corporation Symbol frequency leveling in a storage system
US20040123054A1 (en) 2002-12-20 2004-06-24 Gould Geoffrey A. Portable computing device having a non-volatile memory device adapted to detect when a current memory operation is to be suspended and method therefor
JP2005100527A (ja) * 2003-09-25 2005-04-14 Matsushita Electric Ind Co Ltd 半導体不揮発性記憶装置
JP2005157781A (ja) * 2003-11-26 2005-06-16 Sony Corp 情報処理装置および情報処理方法
WO2008045578A1 (en) 2006-10-13 2008-04-17 Sun Chemical Corporation Non-water soluble polymeric surfactants
US7644225B2 (en) 2006-10-17 2010-01-05 Intel Corporation Performance or power-optimized code/data storage for nonvolatile memories

Also Published As

Publication number Publication date
US20080090604A1 (en) 2008-04-17
WO2008048580A1 (en) 2008-04-24
US7644225B2 (en) 2010-01-05
TW200832429A (en) 2008-08-01
KR101018973B1 (ko) 2011-03-02
TWI354295B (en) 2011-12-11
JP5095743B2 (ja) 2012-12-12
JP2010506334A (ja) 2010-02-25
DE112007002437B4 (de) 2017-03-16
DE112007002437T5 (de) 2009-09-17

Similar Documents

Publication Publication Date Title
KR101018973B1 (ko) 비휘발성 메모리들을 위한 성능 또는 전력 최적화 코드/데이터 저장
CN101595528B (zh) 存储器装置架构和操作
US9058296B2 (en) Data processing method, memory storage device and memory control circuit unit
US20150186225A1 (en) Data storage device and flash memory control method
US8392797B2 (en) Error correcting controller, flash memory chip system, and error correcting method thereof
US9176861B2 (en) System including data storage device, and data storage device including first and second memory regions
US20080077728A1 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
US20130219247A1 (en) Method for Accessing Flash Memory and Associated Flash Memory Controller
US10579518B2 (en) Memory management method and storage controller
KR20080067834A (ko) 프로그램 방식을 선택할 수 있는 메모리 시스템
JP2006338370A (ja) メモリシステム
US9489143B2 (en) Method for accessing flash memory and associated controller and memory device
US20110016263A1 (en) Method for performing data pattern management regarding data accessed by a controller of a flash memory, and associated memory device and controller thereof
KR20080067509A (ko) 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템
US20150228332A1 (en) Method for writing data into flash memory and associated memory device and flash memory
US7945723B2 (en) Apparatus and method of managing mapping table of non-volatile memory
US8943264B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
JP5612508B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
KR101213982B1 (ko) 다중 레벨 일회 기록 메모리 셀들을 가지는 재기록 가능한 메모리 장치
JP2007157234A (ja) メモリシステム
CN115145755A (zh) 用于重新映射存储器子系统中的不良块的系统和方法
JP2009175877A (ja) 半導体メモリ
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
US9405674B2 (en) Address generating circuit and address generating method
CN108121668B (zh) 一种存储映射控制装置及控制方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee