KR102267364B1 - 데이터 상태 동기화 - Google Patents

데이터 상태 동기화 Download PDF

Info

Publication number
KR102267364B1
KR102267364B1 KR1020207005031A KR20207005031A KR102267364B1 KR 102267364 B1 KR102267364 B1 KR 102267364B1 KR 1020207005031 A KR1020207005031 A KR 1020207005031A KR 20207005031 A KR20207005031 A KR 20207005031A KR 102267364 B1 KR102267364 B1 KR 102267364B1
Authority
KR
South Korea
Prior art keywords
state
data
management unit
data pattern
cells
Prior art date
Application number
KR1020207005031A
Other languages
English (en)
Other versions
KR20200022054A (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 KR20200022054A publication Critical patent/KR20200022054A/ko
Application granted granted Critical
Publication of KR102267364B1 publication Critical patent/KR102267364B1/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/0061Timing circuits or methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0023Address circuits or decoders
    • 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/0035Evaluating degradation, retention or wearout, e.g. by counting writing cycles
    • 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/0038Power supply circuits
    • 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
    • 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
    • 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/0097Erasing, e.g. resetting, 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
    • G11C2013/0088Write with the simultaneous writing of a plurality of cells
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

본 개시는 데이터 상태 동기화를 위한 장치들 및 방법들을 포함한다. 예시적인 장치는 데이터 패턴을 제1 상태를 갖는 선택된 관리 유닛에 대응되는 저항 가변 메모리 셀 그룹에 저장하는 기록 동작을 수행하는 것, 기록 동작을 수행하는 것에 응답하여 선택된 관리 유닛의 상태를 제1 상태로부터 제2 상태로 업데이트하는 것, 및 또 다른 데이터 패턴을 저항 가변 메모리 셀 그룹에 저장하는 후속 기록 동작을 수행하기 전에 그룹의 모든 가변 저항 메모리 셀들을 동일한 상태로 둠으로써 그룹에서 수행된 후속 기록 동작에 데이터 상태 동기화를 제공하는 것을 포함한다.

Description

데이터 상태 동기화
본 개시는 일반적으로 반도체 메모리 및 방법들에 관한 것이며, 보다 구체적으로, 메모리와 관련된 데이터 상태 동기화에 관한 것이다.
메모리 장치들은 일반적으로 컴퓨터들 또는 다른 전자 장치들의 내부 반도체 집적 회로 및/또는 외부 이동형 장치로 제공된다. 휘발성 및 비휘발성 메모리를 포함하여 많은 다른 유형의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위한 전력을 필요로 할 수 있으며, 그 중에서도 RAM(random-access memory), DRAM(dynamic random access memory) 및 SDRAM(synchronous dynamic random access memory)을 포함할 수 있다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영구 데이터를 제공할 수 있으며, 그 중에서도, NAND 플래시 메모리, NOR 플래시 메모리, ROM(Read Only Memory), 및 PCRAM(phase change random access memory), RRAM(resistive random access memory) 및 MRAM(magnetic random access memory)과 같은 저항 가변 메모리를 포함할 수 있다.
메모리 장치들은 높은 메모리 밀도, 높은 신뢰성 및 낮은 전력 소모를 필요로 하는 광범위한 전자 어플리케이션들을 위한 휘발성 및 비휘발성 메모리로 활용될 수 있다. 비휘발성 메모리는 다른 전자 장치들 중에서도, 예를 들어, 컴퓨터, 휴대용 메모리 스틱, 솔리드 스테이트 장치(solid state drive; SSD), 개인 정보 단말기(personal digital assistant; PDA), 디지털 카메라, 휴대 전화, 휴대용 뮤직 플레이어들로서, 예를 들어, MP3 플레이어, 영화 플레이어에 사용될 수 있다. 프로그램 코드, 사용자 데이터와 같은 데이터 및/또는 기본 입/출력 시스템(BIOS)과 같은 시스템 데이터는 일반적으로 비휘발성 메모리 장치들에 저장된다.
PCRAM과 같은 저항 가변 메모리는 저장 소자(예를 들어, 가변 저장을 갖는 저장 소자)의 저항에 기초하여 데이터를 저장할 수 있는 저항 가변 메모리 셀들을 포함한다. 이와 같이, 저항 가변 메모리 셀들은 저항 가변 저장 소자의 저항 레벨을 변경시킴으로써 타겟 상태에 대응되는 데이터를 저장하도록 프로그래밍될 수 있다. 저항 가변 메모리 셀들은 양 또는 음의 전기 신호들(예를 들어, 양 또는 음의 전압 또는 전류 신호들)과 같은 전계 또는 에너지의 소스들을 셀들에 인가함으로써, 특정 저항에 대응되는 타겟 상태로 프로그래밍될 수 있다.
저항 가변 메모리 셀에 대해 많은 상태들(예를 들어, 저항 상태들) 중 하나가 설정될 수 있다. 예를 들어, 단일 레벨 셀(single level cell; SLC)이 두 상태들(예를 들어 로직 1 또는 0) 중 하나로 프로그래밍될 수 있으며, 이는 해당 셀이 특정 레벨 이상의 저항으로 프로그그래밍되는지 미만의 저항으로 프로그래밍되는지에 따라 달라질 수 있다. 추가 예로서, 다양한 저항 가변 메모리 셀들은 저항 디지트 패턴들(예를 들어, 10, 01, 00, 11, 111, 101, 100, 1010, 1111, 0101, 0001, 등)에 대응되는 복수의 상이한 상태들 중 하나로 프로그래밍될 수 있다. 이러한 셀들은 멀티 상태 셀들, 멀티 디지트 셀들 및/또는 멀티레벨 셀(multilevel cell; MLC)들로 지칭될 수 있다.
저항 가변 메모리 셀의 상태는 예를 들어, 인가된 인터로게이션(interrogation) 전압에 응답하는 셀을 통해 전류를 감지함으로써 결정(예를 들어, 판독)될 수 있다. 셀의 저항에 기초하여 변경되는 감지된 전류는 셀의 상태(예를 들어, 셀에 의해 저장된 이진 데이터)를 나타내 수 있다. 그러나, 프로그래밍된 저항 가변 메모리 셀은 시간이 지남에 따라 드리프트(예를 들어, 시프트(shift))될 수 있다. 저항 드리프트는 다른 이슈들 중에서도, 저항 가변 메모리 셀의 잘못된 감지(예를 들어, 셀이 프로그래밍된 것과 다른 상태에 있다는 결정)을 초래할 수 있다.
도 1은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공할 수 있는 메모리 시스템을 포함하는 컴퓨팅 시스템 형태의 장치의 블록도이다.
도 2a-2b는 저항 드리프트를 겪는 저항 가변 메모리 셀 그룹을 예시한다.
도 3은 본 개시의 많은 실시예들에 따른 후속 기록 동작을 위한 데이터 상태 동기화를 제공하는 것과 관련된 흐름도를 예시한다.
도 4는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하기 위한 방법을 예시한다.
도 5는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛의 상태를 예시한다.
도 6은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛의 상태를 예시한다.
본 개시는 데이터 상태 동기화를 위한 장치들 및 방법들을 포함한다. 예시적인 장치는 데이터 패턴을 제1 상태를 갖는 선택된 관리 유닛에 대응되는 저항 가변 메모리 셀 그룹에 저장하는 기록 동작을 수행하는 것, 기록 동작을 수행하는 것에 응답하여 선택된 관리 유닛의 상태를 제1 상태로부터 제2 상태로 업데이트하는 것, 및 또 다른 데이터 패턴을 저항 가변 메모리 셀 그룹에 저장하는 후속 기록 동작을 수행하기 전에 그룹의 모든 가변 저항 메모리 셀들을 동일한 상태로 설정함으로써 그룹에서 수행된 후속 기록 동작에 데이터 상태 동기화를 제공하는 것을 포함한다.
본 개시의 실시예들은 저항 가변 메모리 셀들의 잘못된 판단의 감소와 같은 이점들을 제공할 수 있으며, 저항 가변 메모리 셀들의 저항 레벨은 시간이 지남에 따라(예를 들어, 타겟 상태로 프로그래밍된 후) 드리프트될 수 있다. 따라서, 실시예들은 이전 접근 방법들에 비해 데이터 신뢰성 및/또는 데이터 무결성을 향상시킬 수 있다. 예를 들어, 저항 드리프트를 위해 수정하는 것과 관련된 다양한 이전 접근 방법들은 (예를 들어, 실시간으로 백그라운드에서의) 저항 드리프트를 추적하는 것 및 특정 상태에 있는 셀들의 시간의 양에 기초하여 셀들을 "리프레싱(refreshing)"(예를 들어, 셀들의 타겟 상태로 셀들을 다시 설정)하는 것 및/또는 드리프트를 수용하기 위한 감지 임계 전압 레벨 조정하는 것을 포함한다. 이러한 접근 방법은 드리프트 시간에 대한 정보를 항상 유지하는 것을 필요로 할 수 있고/있거나 일정한 전원을 필요로 할 수 있으며, 이는 예를 들어, 모바일 어플리케이션들과 같은 다양한 어플리케이션들에 이용 가능하지 않을 수 있다. 다른 종래 접근 방법은 모든 셀들은 동시에 "세트(set)" 또는 "리셋(reset)"되도록 항상 특정 그룹(예를 들어, 셀들의 페이지)의 모든 셀들을 기록하는 것을 수반할 수 있다. 이러한 접근 방법은 예를 들어 펄스들을 프로그래밍하는 것을 필요로 하지 않을 수 있는 셀들의 프로그래밍을 요구함으로써 에너지 소비 측면에서 비용이 많이 들 수 있다. 그에 반해, 본 개시의 많은 실시예들은 종래 접근 방식에 비해 에너지 소모를 줄이면서, 셀 저항 드리프트로 인한 잘못된 판독을 줄이는 방식으로 데이터 상태 동기화를 제공할 수 있다. 추가로, 다양한 실시예들은 타겟 드리프트 시간을 추적하지 않고 데이터 상태 동기화를 제공할 수 있으며, 이는 다른 이점들 중에서도 일정한 전원 공급(예를 들어, 배터리 전력)을 필요로 하지 않는 것과 같은 이점들을 제공할 수 있다.
본 개시의 이하의 상세한 설명에서, 본 개시의 일부를 형성하고, 본 개시의 하나 이상의 실시예들이 어떻게 실시될 수 있는지를 예시로서 보여주는 첨부 도면들에 대한 참조가 이루어진다. 이러한 실시예들은 당업자들이 본 개시의 실시예들을 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시예들이 이용될 수 있고 프로세스, 전기적 및 구조적 변화들이 본 개시의 범위를 벗어나지 않고 이루어질 수 있음을 이해해야 한다.
본원에 사용된 바와 같이, 특히 도면에서의 참조 부호들에 대해,"N" 및 "M"과 같은 지정자들은 이렇게 설계된 많은 특정 특징이 포함될 수 있음을 나타낸다. 또한 본원에 사용된 용어는 단지 특정한 실시예들을 설명하기 위한 것일 뿐, 한정하는 것으로 의도되지 않는다는 것이 이해되어야 한다. 본원에 사용된 바와 같이, 단일 형태들인 "a", "an" 및 "the"는 문맥상 명백히 달리 명기하지 않는 한 단일 및 복수의 지시 대상들 둘 다를 포함할 수 있다. 추가로, "많은(a number of)", "적어도 하나(at least one)" 및 "하나 이상(one or more)"(예를 들어, 많은 메모리 셀들)은 하나 이상의 메모리 셀들을 지칭할 수 있는 반면, "복수의"는 이러한 것들 중 하나 이상을 지칭하는 것으로 의도된다. 게다가, "할 수 있다(can) 및 "할 수 있다(may)"라는 단어들은 본 출원서 전체에 걸쳐 의무적인 의미(예를 들어, 요구될 수 있는)가 아닌 관용적인 의미(예를 들어, 가능할 수 있는 가능성을 갖는)로 사용된다.
본원에서 도면들은 첫 번째 숫자 또는 숫자들이 도면 번호에 해당하고 나머지 숫자들이 도면에서의 엘리먼트 또는 컴포넌트를 식별하는 넘버링 관례를 따른다. 다른 도면들 간 유사한 엘리먼트들 또는 컴포넌트들이 유사한 숫자들의 사용에 의해 식별될 수 있다. 예를 들어, 110은 도 1의 엘리먼트 "10"을 참조 표시할 수 있으며, 유사한 엘리먼트는 도 5의 510으로 참조 표시될 수 있다.
도 1은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공할 수 있는 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(100) 형태의 장치의 블록도이다. 본원에 사용된 바와 같이, 메모리 시스템(104), 컨트롤러(108) 또는 메모리 장치(110)는 또한 "장치"로 개별적으로 간주될 수 있다. 메모리 시스템(104)는 예를 들어 솔리드 스테이트 드라이브(SSD)일 수 있으며, 호스트 인터페이스(106), 컨트롤러(108)(예를 들어, 시퀀서(sequencer) 및/또는 다른 제어 회로), 및 시스템(104)을 위한 메모리 역할을 할 수 있으며 메모리(110)로 지칭될 수 있는 많은 메모리 장치들(110)을 포함할 수 있다.
컨트롤러(108)는 호스트 인터페이스(106)를 통해 호스트(102)에 그리고 메모리 인터페이스(111)를 통해 메모리(110)에 결합될 수 있으며, 메모리 시스템(104)과 호스트(102) 사이에서 데이터를 전달하는데 사용될 수 있다. 호스트 인터페이스(106)는 표준화된 인터페이스 형태일 수 있다. 예를 들어, 컴퓨팅 시스템(100)에서 데이터 저장을 위해 메모리 시스템(104)이 사용될 때, 인터페이스(106)는 다른 커넥터들 및 인터페이스들 중에서도, SATA(serial advanced technology attachment), PCIe(component interconnect express) 또는 USB(universal serial bus)일 수 있다. 일반적으로, 호스트 인터페이스(102)를 통해 서로 결합되는 메모리 시스템(104) 및 호스트(102)는 호스트 인터페이스(106)를 통해 제어, 어드레스, 데이터 및 다른 신호들을 전달하기 위한 호환 가능한 리셉터를 각각 가질 수 있다. 마찬가지로, 컨트롤러(118) 및 메모리(110)는 메모리 인터페이스(111)와 호환 가능한 리셉터를 각각 가질 수 있다. 인터페이스(111)는 다양한 표준들을 지원하고/하거나 다양한 인터페이스 유형들(예를 들어, DDR, ONFI, NVMe 등)을 따를 수 있다.
호스트(102)는 다른 유형들의 호스트들 중에서도, 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 모바일 전화, 또는 메모리 카드 리더와 같은 호스트 시스템일 수 있다. 호스트(102)는 시스템 마더보드 및/또는 백플레인을 포함할 수 있으며, 많은 메모리 액세스 장치들(예를 들어, 많은 프로세서들)을 포함할 수 있다. 호스트(102)는 또한 예를 들어, 메모리 시스템(104)이 메모리 장치(예를 들어, 온-다이 컨트롤러를 가지는 메모리 장치)인 경우와 같은 메모리 컨트롤러일 수 있다.
컨트롤러(108)는 다른 동작들 중에서도 데이터 판독, 기록 및 삭제 동작들을 제어하기 위해 (일부 실시예들에서는 단일 다이에서의 많은 메모리 어레이들일 수 있는) 메모리(110)와 통신할 수 있다. 일례로, 컨트롤러(108)는 메모리(110)에 대응되는 다이 또는 다이들과 동일한 다이 또는 다른 다이 상에 있을 수 있다.
상기에 설명된 바와 같이, 컨트롤러(108)는 메모리(110)에 컨트롤러(108)를 결합시키는 메모리 인터페이스(111)에 결합될 수 있다. 컨트롤러(108)는 예를 들어, 하드웨어 및/또는 펌웨어(예를 들어, 하나 이상의 집적 회로들) 및/또는 메모리(110)로의 액세스를 제어하고/하거나 호스트(102)와 메모리(110) 사이의 데이터 전달을 용이하게 하기 위한 소프트웨어 형태의 많은 컴포넌트들을 포함할 수 있다.
컨트롤러(108)는 관리 컴포넌트(107)를 포함할 수 있다. 관리 컴포넌트(107)는 메모리(110)에 저장된 데이터의 위치를 찾고, 메모리(110)에 저장된 데이터에 대응되는 어드레스들(예를 들어, 논리 어드레스들)이 (예를 들어, 프로그램 동작들 동안) 액세스되는 빈도를 식별하는데 사용될 수 있는 정보(예를 들어, 데이터)를 제공하고 관리할 수 있다. 이 정보는 표(109)(예를 들어, 논리 대 물리(L2P) 어드레스 표)에 저장될 수 있다. 예를 들어, 표(109)는 논리 대 물리 어드레스 맵핑들을 포함할 수 있으며, 물리 어드레스가 프로그램 동작들 동안 액세스되는 빈도를 나타낼 수 있다. 많은 실시예들에서, 컨트롤러(108)는 커맨드(예를 들어, 기록 커맨드)와 관련된 특정 논리 어드레스와 상관없이 메모리 셀 그룹(예를 들어, 페이지)을 선택하고, 논리 대 물리 어드레스 표(107)를 업데이트 및 유지함으로써 메모리(110)에서 기록 커맨드와 관련된 데이터의 위치를 찾도록 구성된다.
메모리(110)는 많은 메모리 어레이들(도시되지 않음) 및 메모리 컨트롤러(112)를 포함할 수 있다. 메모리 컨트롤러(112)는 메모리(110) 내부에 위치될 수 있으며, 메모리 인터페이스(111)를 통해 컨트롤러(108)로부터 커맨드들(예를 들어, 기록 커맨드들, 판독 커맨드들, 리프레시 커맨드들 등)을 수신할 수 있다. 아래에 더 설명된 바와 같이, 많은 실시예들에서, 메모리 컨트롤러(112)는 컨트롤러(108) 및/또는 호스트(102)(예를 들어, 외부 컨트롤러(108) 또는 호스트(102)로부터의 어시스턴스 없이)와는 별도로 메모리(110)에 데이터 상태 동기화를 제공함으로써 셀 저항 드리프트를 관리하도록 구성될 수 있다.
메모리(110)의 메모리 어레이(들)은 예를 들어, 각각 관련 선택 소자 및 저장 소자를 갖는 비휘발성 저항 가변 메모리 셀들을 포함할 수 있다. 각 저항 가변 메모리 셀들의 선택 소자들은 저항 가변 메모리 셀들 상의 데이터 프로그래밍 및/또는 데이터 판독 동작들과 같은 동작들을 수행하기 위해 메모리 셀들을 선택하도록 동작(예를 들어, 턴 온/오프)될 수 있다.
본원에 사용된 바와 같이, 저장 소자는 저항 가변 메모리 셀의 프로그램 가능 부분을 지칭한다. 예를 들어, PCRAM 및 RRAM 셀들에서, 저장 소자는 예를 들어, 인가된 프로그래밍 신호들(예를 들어, 전압 및/또는 전류 펄스들)에 응답하여 데이터 상태들에 대해 프로그램 가능한 저항을 갖는 메모리 셀의 부분을 포함할 수 있다. 저장 소자는 예를 들어, In2Sb2Te5, In1Sb2Te4, In1Sb4Te7 등의 인듐(In)-안티모니(Sb)-텔루룸(Te)(IST) 물질과 같은 상 변화 물질(phase change material)(예를 들어, 상 변화 칼코게나이드(chalcogenide) 합금), 또는 예를 들어, Ge2Sb2Te5, Ge1Sb2Te4, Ge1Sb4Te7 등과 같은 Ge-Sb-Te 물질인 게르마늄-안티모니-텔루룸(GST) 물질과 같은 저항 가변 물질을 포함할 수 있다. 하이픈 화학 조성물 표기법은, 본원에 사용된 바와 같이, 특정 혼합물 또는 화합물에 포함된 원소들을 나타내며, 표시된 원소들을 포함하는 모든 화학량론(stoichiometries)을 나타내도록 의도된다. 다른 상 변화 물질들은, 다양한 다른 상 변화 물질들 중에서도, GeTe, In-Se, Sb2Te3, GaSb, InSb, As-Te, Al-Te, Ge-Sb-Te, Te-Ge-As, In-Sb-Te, Te-Sn-Se, Ge-Se-Ga, Bi-Se-Sb, Ga-Se-Te, Sn-Sb-Te, In-Sb-Ge, Te-Ge-Sb-S, Te-Ge-Sn-O, Te-Ge-Sn-Au, Pd-Te-Ge-Sn, In-Se-Ti-Co, Ge-Sb-Te-Pd, Ge-Sb-Te-Co, Sb-Te-Bi-Se, Ag-In-Sb-Te, Ge-Sb-Se-Te, Ge-Sn-Sb-Te, Ge-Te-Sn-Ni, Ge-Te-Sn-Pd 및 Ge-Te-Sn-Pt를 포함할 수 있다.
선택 소자는 또한 상기에 설명된 것과 같은 칼코게나이드일 수 있다. 선택 소자 및 저장 소자는 상이한 칼코게나이드 물질들을 포함할 수 있지만, 실시예들은 이에 제한되지 않는다. 예를 들어, 각 셀은 저장 소자 및 선택 소자(예를 들어, 스위치 및 저장 물질(switch and storage material; SSM)) 둘 다의 역할을 할 수 있는 물질(예를 들어, 칼코게나이드 물질)을 포함할 수 있다.
저항 가변 메모리 셀들은 낸드 메모리 어레이의 플로팅 게이트 셀들과 비교하여 재기록 가능하다. 예를 들어, 특정 데이터 패턴은 그룹에 이전에 저장된 데이터를 반드시 삭제하지 않고도 저항 가변 메모리 셀 그룹에 프로그래밍될 수 있다.
저항 메모리 셀들은 예를 들어, 두 동작 신호들(예를 들어, 프로그래밍 및/또는 리셋 신호들)의 인가 사이의 시간 동안 저항 드리프트(예를 들어, 더 높은 저항 방향으로)를 겪을 수 있다. 즉, 저항 메모리 셀들의 저항 레벨은 시간이 지남에 따라 시프트될 수 있다. 이러한 저항 드리프트는 예를 들어 저장 소자(예를 들어, 상 변화 물질)의 비정질(amorphous) 부분의 구조적 이완으로 인해, 프로그래밍 후 셀의 저항 레벨의 저항의 자발적인 증가에 기인할 수 있다.
동작 시, 예를 들어, 데이터의 페이지로서 메모리(110)로부터 데이터가 기록 및/또는 판독될 수 있다. 이와 같이, 데이터의 페이지는 메모리 시스템의 데이터 전달 크기로 지칭될 수 있다. 데이터는 섹터들(예를 들어, 호스트 섹터들)로 지칭되는 데이터 세그먼트들로 호스트(예를 들어, 호스트(102))로/로부터 전송될 수 있다. 이와 같이, 데이터의 섹터는 호스트의 데이터 전달 크기로 지칭될 수 있다. 많은 실시예들에서, 메모리(110)는 메모리 셀들(예를 들어, 저항 가변 메모리 셀들)의 각 그룹들(예를 들어, 물리적 페이지들)에 관리 유닛들을 저장할 수 있다. 실시예들은 이에 제한되는 것은 아니나, 관리 유닛은 논리적 페이지 크기(예를 들어, 예를 들어, 호스트(102)와 같은 호스트의 데이터 전달 크기) 및/또는 예를 들어, 4KB, 8K 등일 수 있는 메모리 시스템(예를 들어, 시스템(104))의 데이터 관리 크기에 해당할 수 있다. 예로서, 관리 유닛은 메모리 셀들의 물리적 페이지에 (예를 들어, 컨트롤러(108)를 통해) 맵핑될 수 있다. 그러나, 많은 관리 유닛들은 물리적 페이지에 맵핑될 수 있다.
도 2a-2b는 저항 드리프트를 겪는 (총칭하여 셀들(222)로 지칭되는) 가변 메모리 셀들(222-1, 222-2, 222-3, 222-4, 224-5, 222-6, 222-7 및 222-8)의 그룹을 예시한다. 실시예들이 이에 제한되는 것은 아니나, 저항 분포(274)는 리셋 상태(예를 들어, "0"의 이진 데이터 값)에 대응되고, 저항 분포(276)는 세트 상태(예를 들어, "1"의 이진 데이터 값)에 대응된다. 도 2b에 도시된 바와 같이, 리셋 상태(예를 들어, 분포(274))는 세트 상태(예를 들어, 분포(276))보다 더 높은 저항 레벨에 대응된다. 저항 분포(272)는 분포(276)로 프로그래밍 되지만, 그 임계 전압은 프로그래밍 된 후 시간이 지남에 따라 위로 드리프트된 셀들에 대응된다.
도 2a에서, 240-1은 메모리 셀 그룹(222)에 저장된 데이터 패턴((예를 들어, 각각의 셀들(222)은 각 셀이 "0"의 이진 값을 저장하도록 리셋 상태로 프로그래밍됨))을 나타낸다. 화살표(242)는 그룹에서 수행된 기록 동작을 나타내며, 그 결과 다른 데이터 패턴(240-2)이 셀 그룹(222)에 저장된다. 이 예에서, 기록 동작(242)은 셀들(222-1, 222-3, 222-5 및 222-7)을 세트 상태로 프로그래밍하는 것을 수반한다.
화살표(244)는 다른 데이터 패턴(240-3)이 셀 그룹에 저장되도록 메모리 셀 그룹(222)에서 수행된 후속 기록 동작을 나타낸다. 도 2a에 도시된 바와 같이, 후속 기록 동작(244)은 메모리 셀들(222-5 및 222-7)을 세트 상태(예를 들어, "1")에서 다시 리셋 상태(예를 들어, "0")로 프로그래밍하는 것을 수반한다. 기록 동작(244)는 또한 셀들(222-2 및 222-4)을 리셋 상태에서 세트 상태로 프로그래밍하는 반면, 기록 동작(244) 동안 셀들(222-1 및 222-3)은 세트 상태로 유지하고 셀들(222-6 및 222-8)은 리셋 상태로 유지하는 것을 포함한다.
도 2b로 돌아가면, 기록 동작(242)과 후속 기록 동작(244) 사이의 시간(예를 들어, 드리프트 시간이라 함) 동안, 메모리 셀 그룹(222)은 저항 드리프트를 겪는다. 드리프트 시간이 지남에 따라, 예를 들어, 기록 동작(242) 동안 세트 상태(예를 들어, 분포(276))로 프로그래밍된 이러한 메모리 셀들(예를 들어, 메모리 셀들(222-1, 222-3, 222-5 및 222-7)의 저항 레벨들)은 저항 분포(272)(예를 들어, 저항 분포(274)) 근처)로 드리프트되는 반면, 후속 기록 동작(244) 동안 리셋 상태(예를 들어, 분포(274))로 프로그래밍된 이러한 메모리 셀들(예를 들어, 셀들(222-5 및 222-7))의 저항 레벨들은 리셋 분포(274)로 리턴된다. 그 결과, (예를 들어, 기록 동작(244) 후의) 데이터 패턴(240-3)은 저항 분포(274)에 속하는 셀들(예를 들어, 셀들(222-5 및 222-7))과 공존하는 저항 분포(272)에 속하는 셀들(예를 들어, 셀들(222-1 및 222-3))을 포함한다. 이와 같이, (예를 들어, "0"과 "1"을 저장하는 셀들 간 구별하기 위해) 그룹(222)을 판독하는데 사용된 감지 전압(278)은 판독 오류를 야기할 수 있는 중첩되는 분포들(272 및 274)에 속하는 셀들의 상태들을 정확히 결정할 수 없을 수 있다.
드리프트를 설명하기 위한 이전 접근 방법들은 항상 셀들의 페이지 모드를 프로그래밍하는 것(예를 들어, 상태가 변경될 셀과 상태가 동일하게 유지되는 셀 둘 다에 프로그래밍 펄스들을 인가하는 것), 및/또는 셀들과 관련된 드리프트 시간을 추적하는 것 및 필요에 따라 감지 인계 전압(예를 들어, 278)을 조정하는 것을 수반할 수 있다. 그러나, 이러한 접근 방법들은 일정한 전원을 요구할 수 있고/있거나 본 개시의 다양한 실시예들과 비교하여 증가된 전력 소모를 제공할 수 있다.
다른 이전 접근 방법들은 상이한 데이터 유닛들을 저장하는 메모리 셀들의 저항 레벨들 사이의 갭(gap)을 유지하는 것과 관련된다. 예를 들어, 특정 임계치보다 높고/높거나 미만의 드리프트 저항 레벨을 갖는 이러한 메모리 셀들은 추적된 드리프트 시간에 기초하여 조정될 수 있다. 그러나, 이러한 이전 접근 방법은 드리프트 시간이 더 이상 추적되지 않도록 절대 시간 정보가 이용될 수 없을 때 적용할 수 없을 수 있다. 이는 (예를 들어, 드리프트 시간을 추적하는데 필요한) 전원이 예를 들어, 메모리 시스템(예를 들어, 스마트폰 또는 임의의 다른 모바일 시스템)에 전원)에 종종 이용할 수 있을 때 특히 문제가 될 수 있다.
본 개시의 실시예들은 저항 가변 메모리 셀들의 프로그래밍된 상태들과 관련된 드리프트 시간을 추적하지 않고 (예를 들어, 저항 가변 메모리 셀들의 저항 드리프트에 의해 야기된) 저항 가변 메모리 셀들에서 판독된 잘못된 데이터를 에너지 효율적으로 감소시키는 것과 같은 이점들을 제공할 수 있다. 예를 들어, 실시예들은 드리프트 시간과 관련된 정보가 없는 경우 새로 프로그래밍된 리셋 상태(예를 들어, 저항 분포(274))와 구별할 수 없는 드리프트된 세트 상태(예를 들어, 저항 분포(274) 근처에 드리프트되거나, 또는 저항 분포(274)와 중첩되는 저항 분포(272))를 갖는 위험을 제거하는 데이터 상태 동기화를 제공할 수 있다.
도 3은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 흐름도(350)를 예시한다. 도 1과 관련하여 설명된 바와 같이, 관리 유닛들은 특정 데이터 크기에 대응될 수 있으며, 메모리 셀들의 특정 그룹들(예를 들어, 저항 가변 메모리 셀들의 페이지들)에 맵핑될 수 있다.
흐름도(350)는 관리 유닛들의 상태 트랜지션들의 예를 예시한다. 도 3에 도시된 예는 관리 유닛들의 "자유(free)" 상태(358), "유효(valid)" 상태(354) 및 "무효(invalid)" 상태(356)를 예시한다. 관리 유닛들의 상태는 예를 들어, 도 1에 도시된 컨트롤러(108)과 같은 컨트롤러에 의해 추적될 수 있다. 많은 실시예들에서, 흐름도(350)에 예시된 상태 트랜지션들은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 저항 가변 메모리 셀들을 포함하는 메모리 장치(예를 들어, 메모리(110))과 관련된 관리 유닛들에 의해 겪게 될 수 있다. 저항 가변 메모리 셀들은 예를 들어, 두 저항 상태들(예를 들어, 논리적 "1"에 해당할 수 있는 세트 상태 및 논리적 "0"에 해당할 수 있는 리셋 상태) 중 하나로 프로그래밍될 수 있다. 실시예들이 이에 제한되는 것은 아니나, 리셋 상태는 세트 상태보다 더 높은 저항 레벨에 해당할 수 있다.
자유 상태(358)는 "클리닝" 동작을 겪게 되고 새로운 데이터 패턴이 프로그래밍 될 준비가 된 관리 유닛을 지칭할 수 있다. 클리닝 동작은 해당 관리 유닛의 모든 메모리 셀들을 리셋하는 것(예를 들어, 모든 셀들은 "0" 상태로 두는 것)을 수반할 수 있다. 유효 상태(354)는 유효 데이터(예를 들어, 시스템에 의해 현재 사용중이고 최신 L2P 맵핑 엔트리를 갖는 데이터)를 저장하는 관리 유닛을 지칭할 수 있다. 무효 상태(356)는 무효 데이터(예를 들어, 스테일(stale) L2P 맵핑 엔트리에 대응되는 데이터)를 저장하는 관리 유닛을 지칭할 수 있다.
도 3에서, 화살표(353)는 자유 상태(358)로부터 선택된 관리 유닛에 대응되는 셀 그룹에 특정 데이터 페턴을 저장하는 기록 동작에 응답하는 유효 상태(354)로의 관리 유닛의 상태 트랜지션을 나타낸다. 기록 동작에 응답하여, 컨트롤러(108)에 의해 맵핑되는 선택된 관리 유닛의 상태는 선택된 관리 유닛은 선택된 관리 유닛이 지금 유효 데이터를 저장한다는 것을 반영하도록 업데이트된다. 예로서, 수신된 기록 커맨드(예를 들어, 호스트(102)로부터 컨트롤러(108)로 수신된 기록 커맨드)에 응답하여, 자유 상태를 갖는 많은 관리 유닛들 중에서 특정 관리 유닛이 호스트 데이터(예를 들어, 프로그램된 호스트로부터 수신된 데이터 패턴)를 갖도록 선택될 수 있다.
화살표(359)는 유효 상태(354)로부터 (예를 들어, 대응되는 맵핑 엔트리가 더이상 최신이 아니도록) 무효화되는 것에 응답하는 무효 상태(356)로의 관리 유닛의 상태 트랜지션을 나타낸다. 예를 들어, 관리 유닛의 상태는 유효로부터 호스트에서 수신된 트리밍 커맨드에 응답하는 무효로 업데이트될 수 있으며, 이는 (예를 들어, 데이터가 셀의 대응되는 페이지로부터 물리적으로 삭제되지 않지 않도록) 논리적 삭제를 야기할 수 있다.
화살표(357)는 관리 유닛에 대응하는 셀들이 모두 동일한 상태(예를 들어, 리셋 상태)에 있는 클리닝 동작을 겪는 것에 응답하여 무효 상태(356)로부터 자유 상태(358)로의 선택된 관리 유닛의 트랜지션을 나타낸다. 클리닝 동작은 관리 유닛에 대응되는 셀 그룹에서 수행된 후속 기록 동작을 위한 데이터 상태 동기화를 제공할 수 있다. 예를 들어, 그룹에 다른(예를 들어, 상이한) 데이터 패턴을 저장하기 위해 후속 기록 커맨드를 실행하기 전에 그룹의 모든 가변 저항 메모리 셀들을 동일한 상태(예를 들어, 리셋 상태)로 둠으로써, 도 3의 방법은 도 2a 및 2b에 설명된 것과 같은 셀 임계 전압 분포 중첩의 발생을 제거함으로써 판독 오류들을 주일 수 있다. 클리닝 동작에 응답하여 관리 유닛의 상태를 자유 상태로 업데이트하면 다음 기록 동작에 이용할 수 있는 관리 유닛의 풀(pool)로 관리 유닛을 리턴시킬 수 있다. 많은 실시예들에서, 클리닝 동작은 예를 들어, 메모리 셀 그룹에서 호스트 커맨드들을 수행하는 것과 관련된 레이턴시(latency)를 줄이기 위해 백그라운드 동작으로 제공될 수 있다.
많은 실시예들에서, 클리닝 동작은 아직 리셋 상태가 아닌 그룹의 셀들에만 리셋 신호의 인가를 포함할 수 있다. 이와 같이, 아직 리셋 상태에 있지 않은 이러한 셀들은 동일한 시간에(예를 들어, 동시에) 리셋 상태로 프로그래밍된다. 이러한 동기화는 드리프트된 세트 상태(예를 들어, 드리프트된 세트 상태에 대응되는 저항 분포(272))가 새로 프로그래밍된 리셋 상태(예를 들어, 조정된 리셋 상태에 대응되는 저항 분포(274))와 공존하는 것을 방지하며, 이는 도 2b와 관련하여 예시된 바와 같이 (예를 들어, 이러한 두 상태들 사이의 갭을 줄임으로써) 잘못된 데이터 판독을 야기할 수 있다.
또한, 이미 리셋 상태(예를 들어, 클리닝 전)로 프로그래밍된 메모리 셀들은 리셋 상태로 재프로그래밍될 필요가 없기 때문에, 클리닝 동작은 리셋 펄스들이 이미 리셋 상태에 있는 셀들에 인가되는 것을 방지함으로써 에너지 효율적인 방식으로 수행될 수 있다. 리셋 상태들로 드리프트된 메모리 셀들이 리셋 상태로 새로 프로그래밍된 메모리 셀들과 공존하더라도, 이러한 분포들은 컨트롤러 예를 들어, 컨트롤러(108 및/또는 112))가 메모리 셀들이 항상 다른 데이터 패턴으로 프로그래밍되기 전의 리셋 상태에 놓인다는 것을 알고 있으므로 잘못된 데이터 판독들을 초래하지 않을 수 있다. 이와 같이, 드리프트 조정은 수행될 필요가 없으며, 따라서 드리프트 시간이 추적될 필요가 없다.
많은 실시예들에서, 흐름도(350)와 관련된 데이터 상태 동기화를 제공하는 것은 호스트 데이터 패턴이 특정 데이터 값(예를 들어, 데이터 값 "0")을 갖는 임계 수량의 데이터 유닛들(예를 들어, 절반 이상)을 포함하는지를 결정하는 것, 및 호스트 데이터 패턴이 적어도 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들을 포함한다는 결정에 응답하여, 저항 가변 메모리 셀 그룹에 데이터 패턴을 저장하기 전 패턴 반전을 수행하는 것을 포함할 수 있다. 예를 들어, 패턴 반전을 수행하는 것은 데이터 값 "0"에 대응하는 모든 데이터 유닛들이 데이터 값 "1"로 플립(flip)되고 데이터 값 "1"에 대응되는 모든 데이터 유닛들이 데이터 값 "0"으로 플립되도록 호스트 데이터 패턴의 데이터 유닛들(예를 들어, 비트들)을 플립시키는 것을 포함할 수 있다. 패턴 반전은 도 5 및 6과 관련하여 더 설명될 것이다.
패턴 반전을 수행하는 것은 패턴 반전의 부재 시 더 낮은 저항 상태(예를 들어, 세트 상태에 대응)로 프로그래밍될 그룹의 셀들의 수량과 비교하여 더 낮은 저항 상태(예를 들어, 세트 상태에 대응)로 프로그램된 그룹의 셀들의 수량을 줄이는 것과 같은 이점들을 제공할 수 있다. 패턴 반전을 수행하는 것은 도 5 및 도 6과 관련하여 더 설명될 것이다.
도 4는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하기 위한 방법(460)을 예시한다. 462에서, 방법(460)은 특정 데이터 패턴(예를 들어, 호스트 데이터 패턴)을 메모리(예를 들어, 메모리(110))에 기록하는 커맨드를 수신하는 것에 응답하여 선택 그룹 (예를 들어, 관리 유닛에 대응되는 그룹)의 저항 가변 메모리 셀들에서 판독 동작을 수행하는 단계를 포함할 수 있다. 판독 동작은 선택 셀들의 현재 상태들 및 선택 그룹에 대응되는 데이터 극성(polarity)을 결정하도록 수행될 수 있다.
464에서, 방법(460)은 모든 선택 셀들을 리셋 상태로 두도록 선택 셀들에서 클리닝 동작을 수행하는 단계를 포함한다. 예를 들어, 현재 세트 상태(예를 들어, 클리닝 동작 수행 전)로 프로그래밍된 이러한 선택 셀들은 클리닝 동작 동안 동시에 리셋 상태로 프로그래밍된다. 이와 같이, 클리닝 동작 동안 리셋 상태로 프로그래밍된 이러한 셀들의 리셋 시간은 동작 동안 동기화된다.
클리닝 동작(466) 동안 선택 셀들 중 (예를 들어, 이전에 세트 상태로 프로그래밍된) 이러한 셀들만 리셋 상태로 프로그래밍하는 단계는 도 3과 관련하여 예시된 바와 같이, 선택 셀들의 프로그래밍된 상태들과 관련된 드리프트 시간을 추적하지 않고 선택 셀들에서 잘못된 데이터 판독의 위험을 줄이는 것과 같은 이점들을 제공한다. 466에서, 방법(460)은 특정 데이터 패턴을 선택 셀들에 기록하는 단계를 포함한다. 특정 데이터 패턴을 선택 셀들에 기록하는 단계는 선택 셀들 중 세트 상태로 프로그래밍될 이러한 셀들만 프로그래밍하는 단계를 포함할 수 있다.
많은 실시예들에서, 방법(460)은 메모리 외부의 컨트롤러에 의한 개입 없이 수행될 수 있다. 예를 들어, 방법(460)은 (예를 들어, 컨트롤러(108) 및/또는 호스트(102)와 같은 외부 컨트롤러에 의한 개입 없이) 도 1에 도시된 컨트롤러(112)에 의해 수행될 수 있다. 예를 들어, 외부 컨트롤러가 관리 유닛들의 상태들을 추적하고 업데이트 함으로써 드리프트 관리를 돕는 도 3에 설명된 방법과 달리, 방법(460)은 컨트롤러(112)와 같은 내부 컨트롤러에 의해 구현된다. 방법(460)에 따른 데이터 상태 동기화를 수행하는 것은 예를 들어, 메모리의 각 관리 유닛들의 상태들을 추적하는 것과 관련된 레이턴시를 더 줄일 수 있다.
많은 실시예들에서, 메모리에 저장될 특정 데이터 패턴(예를 들어, 호스트 데이터 패턴)은 메모리에 기록되기 전에 (예를 들어, 반전 형태로) 반전될 수 있다. 도 3과 관련하여 설명된 바와 같이, 패턴 반전은 패턴 반전의 부재 시 낮은 저장으로 프로그래밍될 그룹의 셀들의 수량과 비교하여 낮은 저항 상태로 프로그래밍된 그룹의 셀들의 수량을 줄이기 위해 특정 데이터 패턴에서 수행될 수 있다. 패턴 반전은 도 5 및 도 6과 관련하여 더 설명될 것이다.
도 5는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛(520)의 상태를 예시한다. 이 예에서, 메모리(510)는 리셋 상태 및 세트 상태로 프로그래밍되는 저항 가변 메모리 셀들의 각 그룹들에 대응되는 복수의 관리 유닛들을 포함하나, 하나의 관리 유닛(예를 들어, 관리 유닛(520))만 도 5에 도시된다. 도 3과 관련하여 예시된 바와 같이, 리셋 상태는 이진 데이터 값 "0"에 대응될 수 있으며, 세트 상태의 저항 레벨보다 더 높은 저항 레벨을 가질 수 있다. 마찬가지로, 세트 상태는 이진 데이터 값 "1"에 대응될 수 있으나, 실시예들은 이에 제한되지 않는다.
도 5에 도시된 바와 같이, 메모리(510)를 포함하는 메모리 시스템(예를 들어, 메모리 시스템(104))은 본 개시의 많은 실시예들에 따라 호스트(예를 들어, 호스트(102))로부터 호스트 데이터 패턴(526)을 수신하고, 호스트 데이터 패턴(526)을 기록한다. 호스트 데이터 패턴(526)을 저장하도록 프로그래밍되기 전에, 관리 유닛(520)은 모든 저항 가변 메모리 셀들(522-1, . . ., 522-8)이 동일한 상태(예를 들어, 리셋 상태)에 있는 자유 상태(예를 들어, 520-1에 도시된 바와 같은)에 있다. 많은 실시예들에서, 관리 유닛은 관리 유닛에 저장된 데이터 패턴이 반전되는지 아닌지를 나타내는 플래그(예를 들어, 524-1, . . ., 524-4)를 포함할 수 있다. 호스트 데이터 패턴(526)으로 프로그래밍되기 전에, 플래그(524-1)는 또한 리셋 상태(예를 들어, 이진 데이터 값 "0"을 가짐)에 있을 수 있다. 플래그는 관리 유닛에서의 특정 비트일 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
호스트 데이터 패턴(526)과 관련된 기록 커맨드를 수신하는 것에 응답하여, 컨트롤러(예를 들어, 컨트롤러(108))는 호스트 데이터 패턴(526)이 적어도 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들(예를 들어, 절반 이상)을 포함하는지를 결정하는 것에 응답하여 데이터 패턴을 관리 유닛에 저장하기 전에 패턴 반전을 수행하도록 구성된다. 예를 들어, 도 5에 도시된 바와 같이, 호스트 데이터 패턴(526)은 이진 데이터 값 "1"을 갖는 5개의 데이터 유닛들(526-3, 526-4, 526-6, 526-7 및 526-8)을 포함한다. 호스트 데이터 패턴(526)이 임계 수량(8개의 데이터 유닛들 중 5개의 데이터 유닛들이 이진 데이터 값 "1"을 가짐)을 충족하도록 임계 수량이 50%로 결정될 때, 패턴 반전이 호스트 데이터 패턴(526)에서 수행된다. 이 예에서, 호스트 데이터 패턴(526)(예를 들어, 이진 데이터 패턴 "00110111"을 가짐)에서 수행된 패턴 반전은 반전된 호스트 데이터 패턴(예를 들어, 이진 데이터 패턴 "11001000"을 가짐)이 된다.
패턴 반전을 수행하는 것에 이어서, 컨트롤러는 반전된 호스트 데이터 패턴(526)을 관리 유닛(520)에 저장하는 기록 동작(553)을 수행하고, 관리 유닛(520)이 반전된 호스트 데이터 패턴을 저장한다는 것을 나타내는 플래그를 설정하고, 관리 유닛(520)의 상태를 자유 상태에서 유효 상태로 업데이트한다. 그 결과, (예를 들어, 반전된 호스트 데이터 패턴으로 프로그래밍되는 것에 이어 관리 유닛(520)의 상태를 예시하는) 520-2에서의 관리 유닛(520)은 이진 데이터 패턴 "11001000"으로 프로그래밍된 저항 가변 메모리 셀들(524-1, . . ., 524-8) 및 이진 데이터 값 "1"로 설정된 플래그(524-2)(예를 들어, 520-2에서의 관리 유닛(520)에 저장된 데이터 패턴이 반전된다는 것을 나타냄)를 포함한다.
패턴 반전을 수행하는 것은 이진 값 "1"을 갖는 메모리 셀들에 저장된 비트들을 플립시키는 것과 관련된 에너지 소모를 줄이는 것과 같은 이점들을 제공한다. 이진 데이터 값 "1"을 갖는 5개의 데이터 유닛들을 포함하는 호스트 데이터 패턴(526)을 고려하기로 한다. 이 예에서, 호스트 데이터 패턴(526)은 반전되지 않고 관리 유닛(520)에 기록될 때, 컨트롤러(예를 들어, 컨트롤러(108))는 클리닝 동작 동안 (예를 들어, 관리 유닛(520)의 각 메모리 셀들에 저장된) 5개의 비트들을 플립시키는 것이 필요하다. 반대로, 컨트롤러는 호스트 데이터 패턴의 역수(예를 들어, 이진 데이터 값 "1"을 갖는 3개의 데이터 유닛들만을 포함함)가 관리 유닛(520)에 기록될 때, 단지 클리닝 동작 동안 (예를 들어, 관리 유닛들(520)의 각 메모리 셀들에 저장된) 3개의 비트들을 플립시키는 것을 필요로 한다. 이와 같이, 패턴 반전을 수행하는 것은 패턴 반전 부재 시, 세트 상태로 프로그래밍될 관리 유닛의 셀들의 수량과 비교하여 세트 상태로 프로그램된 관리 유닛의 셀들의 수량을 감소시키며, 이는 관리 유닛(예를 들어, 관리 유닛(520))의 각 셀들에 저장된 (예를 들어, 이진 값 "1"을 갖는) 비트들을 플립시키는 것과 관련된 레이턴시를 감소시킨다.
일부 지점(예를 들어, 556)에서, 컨트롤러는 520-2에서의 관리 유닛(520)에 저장된 데이터 패턴이 논리적으로 삭제되도록 관리 유닛(520)을 무효화시키도록(예를 들어, 상태를 무효 상태로 업데이트시킴) 구성된다. 그 결과, (예를 들어, 무효화시킨 후의 관리 유닛(520)을 예시하는) 520-3에서의 관리 유닛(520)에 저장된 데이터 패턴은 예를 들어, 호스트(예를 들어, 호스트(102))에 의해 더 이상 추적되지 않는 반면, 520-3에서의 관리 유닛(520)에 물리적으로 남아 있다. 플래그(524-3)는 또한 관리 유닛(520)이 무효화되는 것에 응답하여 무효화된다.
520-3에서의 관리 유닛(520)이 무효 상태에 있다는 결정에 응답하여, 컨트롤러(108)는 예를 들어, 세트 상태의 저항 가변 메모리 셀들만 리셋 상태로 두는 클리닝 동작(557)을 수행함으로써 데이터 상태 동기화를 제공하도록 구성된다. 이 예에서, 클리닝 동작(557)은 모든 저항 가변 메모리 셀들(522-1, . . ., 522-8)이 리셋 상태에 놓이도록 메모리 셀들(522-1, 522-2 및 522-5)을 리셋 상태로 놓는다. 그 결과, (예를 들어, 클리닝 동작(557)을 수행한 후의 관리 유닛(520)의 상태를 예시하는) 520-4에서의 관리 유닛(520)은 이진 데이터 패턴 "0000000"을 포함한다. 마찬가지로, 플래그(524)는 리셋 상태(예를 들어, 플래그(524-4)로 도시된 바와 같은)로 설정된다. 이와 같이, 이전에 세트 상태로 설정된 모든 저항 가변 메모리 셀들이 동기화된 리셋 시간(예를 들어, 메모리 셀들이 리셋 상태로 놓이는 시간)을 갖는 후속 기록 동작이 관리 유닛(520)에서 수행될 수 있다.
많은 실시예들에서, 클리닝 동작(557)은 백그라운드에서 수행될 수 있다. 예를 들어, 관리 유닛(520)(예를 들어, 520-3에서의 관리 유닛(520)에 의해 도시된 바와 같은)을 포함하는 복수의 관리 유닛을 무효화시키는 것에 이어서, 컨트롤러는 대기 시간 동안 (예를 들어, 컨트롤러(108)이 호스트 커맨드들을 수행하지 않을 때) 무효 상태를 갖는 것으로 결정된 관리 유닛들에서 클리닝 동작(557)을 수행하도록 구성될 수 있다. 백그라운 동작으로 클리닝 동작을 수행하는 것은 다른 것들 중에서도, 이러한 동작들이 레이턴시에 부정적인 영향을 주는 것을 방지하는 것과 같은 이점들을 제공할 수 있다.
많은 실시예들에서, 데이터 상태 동기화는 메모리(110) 외부에 위치되는 컨트롤러(예를 들어, 컨트롤러(108))를 통해 구현될 수 있다. 이 예에서, 컨트롤러는 예를 들어, 논리 대 물리 어드레스 표(예를 들어, 논리 대 물리 어드레스 표(109))를 통해 메모리(510)의 복수의 관리 유닛들의 각 상태들을 추적할 수 있다. 이와 같이, (예를 들어, 논리 대 물리 어드레스 표에 의해 제공된 정보를 이용할 수 있는) 컨트롤러는 수속 기록 커맨드에 지정되고 자유 상태를 갖는 복수의 관리 유닛들(예를 들어, 관리 유닛(520)) 중 특정 관리 유닛에 대응되는 물리 어드레스에 대한 포인터를 유지하고, (예를 들어, 후속 기록 커맨드가 동일한 관리 유닛에서 수행되지 않도록) 특정 관리 유닛의 상태를 기록 커맨드를 수행한 후의 무효 상태로 업데이트하도록 구성될 수 있다. 이어서, 컨트롤러는 각 관리 유닛이 지나치게 덮어쓰기 되는 것을 방지할 수 있도록 (예를 들어, 자유 상태에 있는) 다음 이용 가능한 관리 유닛으로 포인터를 더 업데이트하도록 구성될 수 있으며, 이는 잠재적으로 셀의 신뢰성 및/또는 유효 수명을 감소시킬 수 있다.
도 6은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛(620)의 상태를 예시한다. 이 예에서, 메모리(610)는 리셋 상태 및 세트 상태로 프로그래밍 가능한 가변 저항 메모리 셀들(622-1, . . ., 622-8)의 그룹에 대응되는 관리 유닛(620)을 포함하는 복수의 관리 유닛들을 포함한다. 도 2와 관련하여 예시된 바와 같이, 리셋 상태는 이진 데이터 값 "0"에 대응될 수 있으며, 세트 상태의 저항 레벨보다 더 높은 저항 레벨을 가질 수 있다. 마찬가지로, 세트 상태는 이진 데이터 값 "1"에 대응될 수 있으나, 실시예들은 이에 제한되지 않는다. 하나의 관리 유닛만이 도 6에 예시되었지만, 메모리(610)는 저항 가변 메모리 셀들의 각 그룹들에 대응되는 복수의 관리 유닛들을 포함할 수 있다.
도 6에 도시된 바와 같이, 메모리(610)는 이진 데이터 패턴 "10011111"을 갖는 호스트 데이터 패턴(626)을 기록하는 커맨드를 수신한다. 커맨드 수신에 응답하여, 메모리(610) 내부에 위치되는 컨트롤러(612)(예를 들어, 메모리 컨트롤러(112)는 저항 가변 메모리 셀들(622-1, . . ., 622-8)의 현재 상태들 및 메모리 셀들(622-1, . . ., 622-8)에 대응되는 데이터 극성을 결정하기 위해 관리 유닛(620)에서 판독 동작(도 6에 도시되지 않음)을 수행하도록 구성될 수 있다. 판독 동작 결과, 컨트롤러(612)는 (예를 들어, 이진 데이터 값 "1"을 갖는 반전 플래그(624)가 관리 유닛(620)에 저장된 데이터 패턴이 반전된 데이터 패턴임을 나타내기 때문에) 저항 가변 메모리 셀들이 (예를 들어, 620-1에서의 관리 유닛(620)에 도시된 바와 같은) 이진 데이터 패턴 "01100001"을 포함한다고 결정하고, 관리 유닛(620)에 저장된 데이터 패턴이 반전된다.
판독 동작을 수행하는 것에 이어서, 컨트롤러(612)는 모든 저항 가변 메모리 셀들(622-1, . . ., 622-8)이 리셋 상태로 놓이도록 관리 유닛(620)에서 클리닝 동작(664)을 수행하도록 구성된다. 이와 같이, (예를 들어, 클리닝 동작(664)를 수행한 후의 관리 유닛(620)의 상태를 예시하는) 620-2에서의 관리 유닛(620)은 각각 이진 데이터 값 "0"을 갖는 셀들을 포함한다. 많은 실시예들에서, 클리닝 동작(664)을 수행하는 것은 현재(예를 들어, 620-1에서) 세트 상태로 프로그래밍되도록 결정된 메모리 셀들(예를 들어, 메모리 셀들(622-2, 622-3 및 622-8)에만 클리닝 신호(예를 들어, 리셋 신호)를 인가하는 것을 포함할 수 있다. 메모리(610) 내부에 위치된 컨트롤러(예를 들어, 컨트롤러(612))를 통해 데이터 상태 동기화를 수행하는 것은 메모리(610) 외부에 위치되고 논리 대 물리 어드레스 표(예를 들어, 표(107))로부터 제공된 정보를 이용하는 컨트롤러(예를 들어, 컨트롤러(108))를 통해 데이터 상태 동기화를 수행하는 것과 비교하여 각 관리 유닛들의 상태들을 추적 및/또는 업데이트하는 것과 관련된 레이턴시를 줄이는 것과 같은 이점들을 제공한다.
클리닝 동작(664)를 수행하는 것에 이어서, 컨트롤러(612)는 호스트 데이터 패턴의 특성에 기초하여 호스트 데이터(626) 및 호스트 데이터 패턴(626)의 역수 중 하나를 관리 유닛(626)에 기록하도록 구성될 수 있다. 도 5와 관련하여 설명된 바와 같이, 컨트롤러(612)는 호스트 데이터 패턴(626)이 예를 들어, 적어도 이진 데이터 값 "1"을 갖는 데이터 유닛의 임계 수량(예를 들어, 50%)을 포함한다는 결정에 응답하여 호스트 데이터 패턴(626)의 역수를 기록하도록 구성될 수 있다. 이 예에서, 호스트 데이터 패턴(626)은 이진 데이터 값 "1"을 갖는 (예를 들어, 10 개 중) 6개의 데이터 유닛들(626-1, 626-4, 626-5, 626-6, 626-7 및 626-8)을 포함한다. 이와 같이, 컨트롤러(612)는 (예를 들어, 프로그래밍된 후의 관리 유닛(620)의 상태를 예시하는) 620-3에서의 관리 유닛(620)이 호스트 데이터 패턴(예를 들어, 호스트 데이터 패턴(626))의 역수에 대응되는 데이터 패턴(예를 들어, 이진 데이터 패턴 "01100000)을 포함하도록 호스트 데이터 패턴(예를 들어, 호스트 데이터 패턴(626))의 역수를 관리 유닛(620)에 기록한다.
특정 실시예들이 본원에 예시되고 설명되었지만, 당업자들은 동일한 결과들을 달성하도록 계산된 배열이 도시된 특정 실시예들로 대체될 수 있음을 이해할 것이다. 이 개시는 본 개시의 많은 실시예들의 적응 또는 변형을 커버하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해해야 한다. 상기 실시예들와 본원에 구체적으로 설명되지 않은 다른 실시예들의 조합은 상기 설명을 검토할 때 통상의 당업자들에게 명백할 것이다. 본 개시의 많은 실시예들의 범위는 상기 구조들 및 방법들이 사용된 다른 어플리케이션들을 포함한다. 따라서, 본 개시의 많은 실시예들의 범위는 첨부된 청구항과, 이와 함께 이러한 청구항들이 부여되는 등가물들의 전체 범위를 참조하여 결정되어야 한다.
전술한 상세한 설명에서, 본 개시를 간소화하기 위해 일부 특징들이 단일 실시예에 함께 그룹화된다. 이 개시 방법은 본 개시의 개시된 실시예들이 각 청구항에 명백히 인용된 것보다 더 많은 특징들을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징들 이내에 있다. 따라서, 다음의 청구항들은 이에 의해 상세한 설명으로 통합되며, 각 청구항은 그 자체가 별도의 실시예로서 존재한다.

Claims (20)

  1. 방법에 있어서,
    복수의 관리 유닛들의 각 상태들을 추적하는 단계;
    데이터 패턴을 제1 상태를 갖는 선택된 관리 유닛에 대응되는 저항 가변 메모리 셀 그룹에 저장하는 기록 동작을 수행하는 단계로서, 상기 선택된 관리 유닛은 메모리 장치의 상기 복수의 관리 유닛들 중 하나인, 상기 수행하는 단계;
    상기 기록 동작을 수행하는 것에 응답하여 상기 선택된 관리 유닛의 상태를 상기 제1 상태로부터 제2 상태로 업데이트하는 단계;
    상기 선택된 관리 유닛의 상기 상태를 상기 제2 상태로 업데이트하는 것에 이어서 후속 기록 동작을 수행하기 전에:
    상기 선택된 관리 유닛의 상기 상태를 상기 제2 상태로부터 제3 상태로 업데이트하는 단계; 및
    상기 선택된 관리 유닛의 상기 상태를 상기 제3 상태로부터 제1 상태로 업데이트하는 단계;
    또 다른 데이터 패턴을 상기 저항 가변 메모리 셀 그룹에 저장하는 상기 후속 기록 동작을 수행하기 전에 상기 그룹의 모든 저항 가변 메모리 셀들을 동일한 상태로 둠으로써 상기 그룹에서 수행된 상기 후속 기록 동작에 데이터 상태 동기화를 제공하는 단계; 및
    상기 후속 기록 동작을 수행하는 것에 응답하여 상기 선택된 관리 유닛의 상기 상태를 상기 제1 상태로부터 상기 제2 상태로 업데이트하는 단계를 포함하고,
    상기 제1 상태는 기록 데이터를 수신하는데 이용 가능한 기록되지 않은 관리 유닛들을 나타내는 자유 상태이고,
    상기 제2 상태는 유효한 논리 대 물리 맵핑들에 대응되는 기록된 관리 유닛들을 나타내는 유효 상태이고,
    상기 제3 상태는 무효한 논리 대 물리 맵핑들에 대응되는 기록된 관리 유닛들을 나타내는 무효 상태인, 방법.
  2. 제1항에 있어서, 상기 저항 가변 메모리 셀들은 제1 저항 상태 및 제2 저항 상태로 프로그래밍 가능하고, 모든 상기 저항 가변 메모리 셀들을 동일한 상태로 두는 것은 상기 그룹의 모든 상기 셀들을 상기 제1 저항 상태로 두는 것을 포함하는, 방법.
  3. 제2항에 있어서, 상기 제1 저항 상태는 상기 제2 저항 상태보다 더 높은 저항 레벨에 대응되는, 방법.
  4. 제2항에 있어서, 상기 제1 저항 상태는 제1 데이터 값에 대응되고, 상기 제2 저항 상태는 제2 데이터에 대응되며, 상기 방법은, 상기 후속 기록 동작 동안, 상기 제2 저항 상태로 프로그래밍될 상기 그룹의 셀들의 상태들만을 변경하는 단계를 포함하는, 방법.
  5. 제2항에 있어서, 상기 그룹의 모든 상기 셀들을 상기 제1 저항 상태로 두는 단계는 아직 상기 제1 저항 상태에 있지 않은 상기 그룹의 셀들에만 리셋 신호를 인가하는 단계를 포함하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 데이터 패턴은 호스트 데이터 패턴에 대응되며, 상기 기록 동작을 수행하는 단계는,
    상기 호스트 데이터 패턴이 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들을 포함하는지를 결정하는 단계; 및
    상기 호스트 데이터 패턴이 적어도 상기 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들을 포함한다는 결정에 응답하여, 상기 데이터 패턴을 상기 저항 가변 메모리 셀 그룹에 저장하기 전에 패턴 반전을 수행하는 단계를 포함하는, 방법.
  7. 삭제
  8. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 그룹의 프로그래밍된 상태들과 관련된 드리프트 시간을 추적하지 않고, 상기 또 다른 데이터 패턴을 저장하는 상기 저항 가변 메모리 셀 그룹을 후속 판독하는 단계를 포함하는, 방법.
  9. 장치에 있어서,
    각 저항 가변 메모리 셀 그룹들에 대응되는 복수의 관리 유닛들을 포함하는 메모리; 및
    상기 메모리에 결합된 컨트롤러를 포함하며, 상기 컨트롤러는,
    상기 복수의 관리 유닛들의 각 상태들을 추적하고;
    상기 메모리에 기록된 관련 데이터 패턴을 가지는 기록 커맨드를 수신하고;
    제1 상태를 가지는 관리 유닛을 선택하고;
    상기 데이터 패턴을 상기 선택된 관리 유닛에 저장하는 기록 동작을 수행하고;
    상기 기록 동작을 수행하는 것에 응답하여 상기 선택된 관리 유닛의 상태를 상기 제1 상태로부터 제2 상태로 업데이트하고;
    또 다른 데이터 패턴을 상기 관리 유닛으로 저장하는 후속 기록 동작을 수행하기 전에 상기 관리 유닛에 대응되는 모든 상기 저항 가변 메모리 셀들을 동일한 상태로 둠으로써 상기 관리 유닛에서 수행된 상기 후속 기록 동작에 데이터 상태 동기화를 제공하도록 구성되고,
    상기 컨트롤러는,
    논리 대 물리 어드레스 표를 유지하고;
    후속 기록 커맨드에 지정되고 상기 제1 상태를 가지는 상기 관리 유닛들 중 특정 관리 유닛에 대응되는 물리 어드레스에 대한 포인터를 유지하고;
    기록 커맨드를 실행하는 것에 이어서, 다음 기록 커맨드에 선택된 관리 유닛이 상기 기록 커맨드와 관련된 논리 어드레스와 관계없이 선택되도록 상기 제1 상태를 가지는 상기 관리 유닛들 중 다음의 특정 관리 유닛에 대응되는 물리 어드레스에 대한 상기 포인터를 업데이트하도록 구성되는, 장치.
  10. 제9항에 있어서,
    상기 저항 가변 메모리 셀들은 제1 저항 상태 및 제2 저항 상태로 프로그래밍 가능하고;
    모든 상기 저항 가변 메모리 셀들을 동일한 상태로 두는 것은 상기 그룹의 모든 상기 셀들을 상기 제1 저항 상태로 두는 것을 포함하고;
    상기 제1 저항 상태는 제1 데이터 값에 대응되고 상기 제2 저항 상태는 제2 데이터 값에 대응되고;
    상기 컨트롤러는 상기 후속 기록 동작 동안 상기 제2 저항 상태로 프로그래밍 될 상기 관리 유닛의 셀들의 상태들만을 변경함으로써 상기 후속 기록 동작에 상기 데이터 상태 동기화를 제공하도록 구성되는, 장치.
  11. 제9항 내지 제10항 중 어느 한 항에 있어서, 상기 컨트롤러는 상기 메모리 외부에 있으며, 상기 기록 커맨드는 호스트로부터 수신되고, 상기 컨트롤러는,
    상기 데이터 패턴이 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들을 포함하는지를 결정하고;
    상기 데이터 패턴이 적어도 상기 특정 데이터 값을 갖는 상기 임계 수량의 데이터 유닛들을 포함한다는 결정에 응답하여:
    상기 데이터 패턴을 상기 관리 유닛에 저장하기 전에 패턴 반전을 수행하고;
    상기 관리 유닛이 반전된 데이터 패턴을 저장함을 나타내는 플래그를 설정하도록 더 구성되는, 장치.
  12. 장치에 있어서,
    각 저항 가변 메모리 셀 그룹들에 대응되는 복수의 관리 유닛들을 포함하는 메모리; 및
    상기 메모리에 결합된 컨트롤러를 포함하며, 상기 컨트롤러는,
    상기 복수의 관리 유닛들의 각 상태들을 추적하고;
    상기 메모리에 기록된 관련 데이터 패턴을 가지는 기록 커맨드를 수신하고;
    제1 상태를 가지는 관리 유닛을 선택하고;
    상기 데이터 패턴을 상기 선택된 관리 유닛에 저장하는 기록 동작을 수행하고;
    상기 기록 동작을 수행하는 것에 응답하여 상기 선택된 관리 유닛의 상태를 상기 제1 상태로부터 제2 상태로 업데이트하고;
    또 다른 데이터 패턴을 상기 관리 유닛으로 저장하는 후속 기록 동작을 수행하기 전에 상기 관리 유닛에 대응되는 모든 저항 가변 메모리 셀들을 동일한 상태로 둠으로써 상기 관리 유닛에서 수행된 상기 후속 기록 동작에 데이터 상태 동기화를 제공하도록 구성되고,
    상기 컨트롤러는,
    무효 상태를 가지는 관리 유닛들을 결정하는 단계;
    상기 무효 상태를 갖는 것으로 결정된 관리 유닛들에 대해, 모든 대응되는 저항 가변 메모리 셀들을 동일한 상태로 두는 단계; 및
    상기 무효 상태를 갖는 것으로 결정된 관리 유닛들의 상태를 상기 무효 상태로부터 상기 제1 상태로 업데이트하는 단계를 포함하는 백그라운드 클리닝 동작을 수행하도록 구성되는, 장치.
  13. 삭제
  14. 장치에 있어서,
    제1 상태 및 제2 상태로 프로그래밍 가능한 저항 가변 메모리 셀들의 어레이를 포함하는 메모리; 및
    컨트롤러를 포함하며, 상기 컨트롤러는, 특정 데이터 패턴을 상기 저항 가변 메모리 셀들의 선택 그룹 중 선택 셀들에 기록하는 커맨드에 응답하여:
    상기 선택 셀들의 현재 상태들 및 상기 선택 그룹에 대응되는 데이터 극성을 결정하기 위해 상기 선택 그룹에서 판독 동작을 수행하고;
    상기 선택 셀들 중 상기 제2 상태로 현재 프로그래밍된 셀들을 결정하고;
    모든 상기 선택 셀들을 상기 제1 상태로 두기 위해 상기 선택 셀들에서 클리닝 동작을 수행하고;
    상기 특정 데이터 패턴의 특성에 기초하여 상기 특정 데이터 패턴 및 상기 특정 데이터 패턴의 역수 중 하나를 상기 선택 셀들에 기록하도록 구성되고,
    상기 컨트롤러는,
    무효 상태를 가지는 관리 유닛들을 결정하는 단계;
    상기 무효 상태를 갖는 것으로 결정된 관리 유닛들에 대해, 모든 대응되는 저항 가변 메모리 셀들을 동일한 상태로 두는 단계; 및
    상기 무효 상태를 갖는 것으로 결정된 관리 유닛들의 상태를 상기 무효 상태로부터 상기 제1 상태로 업데이트하는 단계를 포함하는 백그라운드 클리닝 동작을 수행하도록 더 구성되고,
    상기 제1 상태는 기록 데이터를 수신하는데 이용 가능한 기록되지 않은 관리 유닛들을 나타내는 자유 상태인, 장치.
  15. 제14항에 있어서, 상기 선택 그룹은 상기 선택 그룹에 대응되는 데이터 극성의 표시를 저장하는 셀을 포함하며, 상기 컨트롤러는 상기 특정 데이터 패턴의 상기 특성에 기초하여 상기 데이터 극성의 상기 표시를 업데이트하도록 구성되는, 장치.
  16. 제15항에 있어서, 상기 특정 데이터 패턴의 상기 특성은 상기 제2 상태에 대응되는 값을 가지는 상기 특정 데이터 패턴의 데이터 유닛들의 수량에 대응되며, 상기 컨트롤러는,
    상기 제2 상태로 현재 프로그래밍되도록 결정된 선택 셀들에만 클리닝 신호를 인가함으로써 상기 클리닝 동작을 수행하고;
    상기 제2 상태로 프로그래밍 되는 셀들에만 프로그래밍 신호를 인가함으로써 상기 특정 데이터 패턴 및 상기 특정 데이터 패턴의 역수 중 하나를 상기 선택 셀들에 기록하도록 구성되는, 장치.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 컨트롤러는 상기 메모리 내부에 있으며, 상기 기록 커맨드는 메모리 인터페이스를 통해 상기 메모리 외부의 컨트롤러로부터 수신되는, 장치.
  18. 방법에 있어서,
    특정 데이터 패턴을 제1 상태 및 제2 상태로 프로그래밍 가능한 선택 그룹의 저항 가변 메모리 셀들의 선택 셀들에 기록하는 커맨드를 수신하는 단계;
    상기 커맨드를 수신하고, 상기 선택 셀들의 프로그래밍된 상태들과 관련된 드리프트 시간을 추적하지 않고 데이터 상태 동기화를 제공하는 것에 응답하여:
    상기 선택 셀들의 현재 상태들 및 상기 선택 그룹에 대응되는 데이터 극성을 결정하기 위해 상기 선택 그룹에서 판독 동작을 수행하는 단계;
    상기 선택 셀들 중 상기 제2 상태로 현재 프로그래밍된 셀들을 결정하는 단계;
    모든 상기 선택 셀들을 상기 제1 상태로 두기 위해 상기 선택 셀들에서 클리닝 동작을 수행하는 단계; 및
    상기 특정 데이터 패턴의 특성에 기초하여 상기 특정 데이터 패턴 및 상기 특정 데이터 패턴의 역수 중 하나를 상기 선택 셀들에 기록하는 단계를 포함하고,
    상기 방법은,
    무효 상태를 가지는 관리 유닛들을 결정하는 단계;
    상기 무효 상태를 갖는 것으로 결정된 관리 유닛들에 대해, 모든 대응되는 저항 가변 메모리 셀들을 동일한 상태로 두는 단계; 및
    상기 무효 상태를 갖는 것으로 결정된 관리 유닛들의 상태를 상기 무효 상태로부터 상기 제1 상태로 업데이트하는 단계를 포함하는 백그라운드 클리닝 동작을 수행하는 단계를 더 포함하고,
    상기 제1 상태는 기록 데이터를 수신하는데 이용 가능한 기록되지 않은 관리 유닛들을 나타내는 자유 상태인, 방법.
  19. 방법에 있어서,
    데이터 패턴을 제1 상태를 가지는 선택된 관리 유닛에 대응되는 저항 가변 메모리 셀 그룹에 저장하는 기록 동작을 수행하는 단계로서, 상기 데이터 패턴은 호스트 데이터 패턴에 대응되며, 상기 기록 동작을 수행하는 단계는,
    상기 호스트 데이터 패턴이 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들을 포함하는지를 결정하는 단계; 및
    상기 호스트 데이터 패턴이 적어도 상기 특정 데이터 값을 갖는 임계 수량의 데이터 유닛들을 포함한다는 결정에 응답하여, 상기 데이터 패턴을 상기 저항 가변 메모리 셀 그룹에 저장하기 전에 패턴 반전을 수행하는 단계를 포함하는, 상기 수행하는 단계;
    상기 기록 동작을 수행하는 것에 응답하여 상기 선택된 관리 유닛의 상태를 상기 제1 상태로부터 제2 상태로 업데이트하는 단계;
    상기 선택된 관리 유닛의 상기 상태를 상기 제2 상태로 업데이트하는 것에 이어서 후속 기록 동작을 수행하기 전에:
    상기 선택된 관리 유닛의 상기 상태를 상기 제2 상태로부터 제3 상태로 업데이트하는 단계; 및
    상기 선택된 관리 유닛의 상기 상태를 상기 제3 상태로부터 상기 제1 상태로 업데이트하는 단계; 및
    상기 저항 가변 메모리 셀 그룹에 또 다른 데이터 패턴을 저장하는 후속 기록 동작을 수행하기 전에 상기 그룹의 모든 저항 가변 메모리 셀들을 동일한 상태로 둠으로써 상기 그룹에서 수행된 상기 후속 기록 동작에 데이터 상태 동기화를 제공하는 단계를 포함하고,
    상기 제1 상태는 기록 데이터를 수신하는데 이용 가능한 기록되지 않은 관리 유닛들을 나타내는 자유 상태이고,
    상기 제2 상태는 유효한 논리 대 물리 맵핑들에 대응되는 기록된 관리 유닛들을 나타내는 유효 상태이고,
    상기 제3 상태는 무효한 논리 대 물리 맵핑들에 대응되는 기록된 관리 유닛들을 나타내는 무효 상태인, 방법.
  20. 방법에 있어서,
    데이터 패턴을 제1 상태를 갖는 선택된 관리 유닛에 대응되는 저항 가변 메모리 셀 그룹에 저장하는 기록 동작을 수행하는 단계;
    상기 기록 동작을 수행하는 것에 응답하여 상기 선택된 관리 유닛의 상태를 상기 제1 상태로부터 제2 상태로 업데이트하는 단계;
    상기 선택된 관리 유닛의 상기 상태를 상기 제2 상태로 업데이트하는 것에 이어서 후속 기록 동작을 수행하기 전에:
    상기 선택된 관리 유닛의 상기 상태를 상기 제2 상태로부터 제3 상태로 업데이트하는 단계; 및
    상기 선택된 관리 유닛의 상기 상태를 상기 제3 상태로부터 상기 제1 상태로 업데이트하는 단계;
    상기 저항 가변 메모리 셀 그룹에 또 다른 데이터 패턴을 저장하는 후속 기록 동작을 수행하기 전에 상기 그룹의 모든 저항 가변 메모리 셀들을 동일한 상태로 둠으로써 상기 그룹에서 수행된 상기 후속 기록 동작에 데이터 상태 동기화를 제공하는 단계; 및
    상기 그룹의 프로그래밍된 상태들과 관련된 드리프트 시간을 추적하지 않고, 상기 또 다른 데이터 패턴을 상기 저항 가변 메모리 셀 그룹을 후속 판독하는 단계를 포함하고,
    상기 제1 상태는 기록 데이터를 수신하는데 이용 가능한 기록되지 않은 관리 유닛들을 나타내는 자유 상태이고,
    상기 제2 상태는 유효한 논리 대 물리 맵핑들에 대응되는 기록된 관리 유닛들을 나타내는 유효 상태이고,
    상기 제3 상태는 무효한 논리 대 물리 맵핑들에 대응되는 기록된 관리 유닛들을 나타내는 무효 상태인, 방법.
KR1020207005031A 2017-07-31 2018-07-24 데이터 상태 동기화 KR102267364B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/664,014 US10083751B1 (en) 2017-07-31 2017-07-31 Data state synchronization
US15/664,014 2017-07-31
PCT/US2018/043368 WO2019027719A1 (en) 2017-07-31 2018-07-24 SYNCHRONIZATION OF DATA STATUS

Publications (2)

Publication Number Publication Date
KR20200022054A KR20200022054A (ko) 2020-03-02
KR102267364B1 true KR102267364B1 (ko) 2021-06-22

Family

ID=63556896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207005031A KR102267364B1 (ko) 2017-07-31 2018-07-24 데이터 상태 동기화

Country Status (7)

Country Link
US (3) US10083751B1 (ko)
EP (1) EP3662477A4 (ko)
JP (2) JP6978581B2 (ko)
KR (1) KR102267364B1 (ko)
CN (1) CN111033623B (ko)
TW (1) TWI699780B (ko)
WO (1) WO2019027719A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083751B1 (en) * 2017-07-31 2018-09-25 Micron Technology, Inc. Data state synchronization
US10916324B2 (en) 2018-09-11 2021-02-09 Micron Technology, Inc. Data state synchronization involving memory cells having an inverted data state written thereto
US11157202B2 (en) * 2018-12-28 2021-10-26 Micron Technology, Inc. Memory management utilizing buffer reset commands
US10937499B2 (en) * 2019-04-12 2021-03-02 Micron Technology, Inc. Content addressable memory systems with content addressable memory buffers

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150227459A1 (en) * 2012-03-23 2015-08-13 Sony Corporation Storage control apparatus, storage apparatus, information processing system and processing method therefor

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785765B1 (en) * 2000-06-30 2004-08-31 Micron Technology, Inc. Status register to improve initialization of a synchronous memory
TW552556B (en) * 2001-01-17 2003-09-11 Faraday Tech Corp Data processing apparatus for executing multiple instruction sets
US20050055495A1 (en) 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US7940552B2 (en) 2007-04-30 2011-05-10 Samsung Electronics Co., Ltd. Multiple level cell phase-change memory device having pre-reading operation resistance drift recovery, memory systems employing such devices and methods of reading memory devices
KR101308549B1 (ko) 2007-07-12 2013-09-13 삼성전자주식회사 멀티-레벨 상변환 메모리 장치 및 그것의 쓰기 방법
US8850102B2 (en) 2007-08-23 2014-09-30 Nokia Corporation Flash memory with small data programming capability
CN101123113B (zh) * 2007-09-20 2010-07-14 上海交通大学 同步动态随机访问存储器的访问方法及控制装置
JP4719236B2 (ja) * 2008-03-21 2011-07-06 株式会社東芝 半導体記憶装置及び半導体記憶システム
KR20090123244A (ko) * 2008-05-27 2009-12-02 삼성전자주식회사 상 변화 메모리 장치 및 그것의 쓰기 방법
US8595449B2 (en) * 2008-09-02 2013-11-26 Qimonda Ag Memory scheduler for managing maintenance operations in a resistive memory in response to a trigger condition
US8045412B2 (en) * 2008-10-21 2011-10-25 Seagate Technology Llc Multi-stage parallel data transfer
US20100169708A1 (en) 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US8199576B2 (en) * 2009-04-08 2012-06-12 Sandisk 3D Llc Three-dimensional array of re-programmable non-volatile memory elements having vertical bit lines and a double-global-bit-line architecture
US8307270B2 (en) * 2009-09-03 2012-11-06 International Business Machines Corporation Advanced memory device having improved performance, reduced power and increased reliability
US20110167197A1 (en) 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
US8649212B2 (en) * 2010-09-24 2014-02-11 Intel Corporation Method, apparatus and system to determine access information for a phase change memory
US8467237B2 (en) 2010-10-15 2013-06-18 Micron Technology, Inc. Read distribution management for phase change memory
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
JP5756622B2 (ja) * 2010-11-30 2015-07-29 株式会社日立製作所 半導体装置
WO2012106358A1 (en) 2011-01-31 2012-08-09 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
US9021227B2 (en) 2011-06-22 2015-04-28 Intel Corporation Drift management in a phase change memory and switch (PCMS) memory device
US9003102B2 (en) * 2011-08-26 2015-04-07 Sandisk Technologies Inc. Controller with extended status register and method of use therewith
US20130219105A1 (en) 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
JP2014199698A (ja) * 2013-03-29 2014-10-23 シャープ株式会社 半導体記憶装置及び半導体記憶装置の制御方法
KR102179275B1 (ko) * 2014-02-21 2020-11-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 리셋 방법
US9613691B2 (en) 2015-03-27 2017-04-04 Intel Corporation Apparatus and method for drift cancellation in a memory
US9612958B1 (en) * 2015-06-18 2017-04-04 Crossbar, Inc. Wear leveling and improved efficiency for a non-volatile memory device
US9472274B1 (en) * 2015-07-01 2016-10-18 Macronix International Co., Ltd. Refresh of nonvolatile memory cells and reference cells with resistance drift
US10083751B1 (en) * 2017-07-31 2018-09-25 Micron Technology, Inc. Data state synchronization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150227459A1 (en) * 2012-03-23 2015-08-13 Sony Corporation Storage control apparatus, storage apparatus, information processing system and processing method therefor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
H. Fujii 외, "x11 Performance Increase, x6.9 Endurance Enhancement, 93% Energy Reduction of 3D TSV-Integrated Hybrid ReRAM/MLC NAND SSDs by Data ...," 2012 Symposium on VLSI Circuits (VLSIC), 2012. 06.*
X. Dong 외, "NVSim: A Circuit-Level Performance, Energy, and Area Model for Emerging ...," IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 31, no. 7, 2012. 07.*

Also Published As

Publication number Publication date
KR20200022054A (ko) 2020-03-02
US20190035461A1 (en) 2019-01-31
US20200152267A1 (en) 2020-05-14
JP2020529696A (ja) 2020-10-08
EP3662477A4 (en) 2021-04-28
CN111033623B (zh) 2021-04-23
WO2019027719A1 (en) 2019-02-07
US10083751B1 (en) 2018-09-25
US10573383B2 (en) 2020-02-25
JP2021185554A (ja) 2021-12-09
JP6978581B2 (ja) 2021-12-08
TWI699780B (zh) 2020-07-21
EP3662477A1 (en) 2020-06-10
US10943659B2 (en) 2021-03-09
CN111033623A (zh) 2020-04-17
TW201911303A (zh) 2019-03-16

Similar Documents

Publication Publication Date Title
KR102267364B1 (ko) 데이터 상태 동기화
US20230205463A1 (en) Implementing variable number of bits per cell on storage devices
US20220019384A1 (en) Memory management utilzing buffer reset commands
US11532360B2 (en) Memory system, memory device, and method for operating memory device
US11488681B2 (en) Data state synchronization
US11869605B2 (en) Adjusting pass-through voltage based on threshold voltage shift
US11923031B2 (en) Tracking charge loss in memory sub-systems
KR102341698B1 (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