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

데이터 상태 동기화 Download PDF

Info

Publication number
KR20210044305A
KR20210044305A KR1020217010637A KR20217010637A KR20210044305A KR 20210044305 A KR20210044305 A KR 20210044305A KR 1020217010637 A KR1020217010637 A KR 1020217010637A KR 20217010637 A KR20217010637 A KR 20217010637A KR 20210044305 A KR20210044305 A KR 20210044305A
Authority
KR
South Korea
Prior art keywords
data
memory
state
cell group
ecc
Prior art date
Application number
KR1020217010637A
Other languages
English (en)
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 KR20210044305A publication Critical patent/KR20210044305A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

예시적인 장치는 각 저항 가변 메모리 셀 그룹들에 대응되는 복수의 관리 유닛들을 포함하는 메모리 및 메모리에 결합된 컨트롤러를 포함한다. 컨트롤러는 선택된 메모리 셀 그룹에 대한 클리닝 동작을 수행하고 오류 정정 코드(ECC) 패리티 데이터를 생성하도록 구성된다. 컨트롤러는 선택된 셀 그룹에 대한 기입 동작의 성능이 선택된 셀 그룹에 적어도 하나의 데이터 값의 반전 상태를 기입하고 ECC 패리티 데이터 중 적어도 하나의 반전 상태를 선택된 셀 그룹에 기입하도록 더 구성될 수 있다.

Description

데이터 상태 동기화
본 개시는 일반적으로 반도체 메모리 및 방법들에 관한 것이며, 보다 구체적으로, 메모리와 관련된 데이터 상태 동기화에 관한 것이다.
메모리 장치들은 일반적으로 컴퓨터들 또는 다른 전자 장치들의 내부 반도체 집적 회로 및/또는 외부 탈착식 장치들로 제공된다. 휘발성 및 비휘발성 메모리를 포함하여 많은 다른 유형의 메모리가 있다. 휘발성 메모리는 그 데이터를 유지하기 위한 전력을 필요로 할 수 있으며, 그 중에서도 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM) 및 동기식 동적 랜덤 액세스 메모리(SDRAM)를 포함할 수 있다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영구 데이터를 제공할 수 있으며, 그 중에서도, NAND 플래시 메모리, NOR 플래시 메모리, 읽기 전용 메모리(ROM), 및 상 변화 랜덤 액세스 메모리(PCRAM), 저항 랜덤 액세스 메모리(RRAM) 및 자기 랜덤 액세스 메모리(MRAM)와 같은 저항 가변 메모리를 포함할 수 있다.
메모리 장치들은 높은 메모리 밀도, 높은 신뢰성 및 낮은 전력 소모를 필요로 하는 광범위한 전자 어플리케이션들을 위한 휘발성 및 비휘발성 메모리로 활용될 수 있다. 비휘발성 메모리는 다른 전자 장치들 중에서도, 예를 들어, 개인용 컴퓨터들, 휴대용 메모리 스틱들, 솔리드 스테이트 드라이버들(SSD들), 개인 정보 단말기들(PDA들), 디지털 카메라들, 휴대 전화들, 휴대용 뮤직 플레이어들, 예를 들어, MP3 플레이어들 및 영화 플레이어들에 사용될 수 있다. 프로그램 코드, 사용자 데이터와 같은 데이터 및/또는 기본 입/출력 시스템(BIOS)과 같은 시스템 데이터는 일반적으로 비휘발성 메모리 장치들에 저장된다.
PCRAM과 같은 저항 가변 메모리는 저장 소자(예를 들어, 가변 저장을 갖는 저장 소자)의 저항에 기초하여 데이터를 저장할 수 있는 저항 가변 메모리 셀들을 포함한다. 이와 같이, 저항 가변 메모리 셀들은 저항 가변 저장 소자의 저항 레벨을 변경시킴으로써 타겟 상태에 대응되는 데이터를 저장하도록 프로그램될 수 있다. 저항 가변 메모리 셀들은 양 또는 음의 전기 신호들(예를 들어, 양 또는 음의 전압 또는 전류 신호들)과 같은 전계 또는 에너지의 소스들을 셀들에 인가함으로써, 특정 저항에 대응되는 타겟 상태로 프로그램될 수 있다.
저항 가변 메모리 셀에 대해 많은 상태들(예를 들어, 저항 상태들) 중 하나가 설정될 수 있다. 예를 들어, 단일 레벨 셀(single level cell; SLC)이 두 상태들(예를 들어 논리 1 또는 0) 중 하나로 프로그램될 수 있으며, 이는 해당 셀이 특정 레벨 이상의 저항으로 프로그램되는지 미만의 저항으로 프로그램되는지에 따라 달라질 수 있다. 추가 예로서, 다양한 저항 가변 메모리 셀들은 저항 디지트 패턴들(예를 들어, 10, 01, 00, 11, 111, 101, 100, 1010, 1111, 0101, 0001, 등)에 대응되는 복수의 상이한 상태들 중 하나로 프로그램될 수 있다. 이러한 셀들은 멀티 상태 셀들, 멀티 디지트 셀들 및/또는 멀티레벨 셀들(multilevel cells; MLC들)로 지칭될 수 있다.
저항 가변 메모리 셀의 상태는 예를 들어, 인가된 인터로게이션(interrogation) 전압에 응답하는 셀을 통해 전류를 감지함으로써 결정(예를 들어, 판독)될 수 있다. 셀의 저항에 기초하여 변경되는 감지된 전류는 셀의 상태(예를 들어, 셀에 의해 저장된 이진 데이터)를 나타낼 수 있다. 그러나, 프로그램된 저항 가변 메모리 셀은 시간이 지남에 따라 드리프트(예를 들어, 시프트)될 수 있다. 저항 드리프트는 다른 이슈들 중에서도, 저항 가변 메모리 셀의 잘못된 감지(예를 들어, 셀이 프로그램된 것과 다른 상태에 있다는 결정)을 초래할 수 있다.
도 1은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공할 수 있는 메모리 시스템을 포함하는 컴퓨팅 시스템 형태의 장치의 블록도이다.
도 2a-2b는 저항 드리프트를 겪는 저항 가변 메모리 셀들의 그룹을 예시한다.
도 3a는 본 개시의 많은 실시예들에 따른 기입 동작을 위한 데이터 상태 동기화를 제공하는 것과 관련된 흐름도를 예시한다.
도 3b는 본 개시의 많은 실시예들에 따른 기입 동작을 위한 데이터 상태 동기화를 제공하는 것과 관련된 또 다른 흐름도를 예시한다.
도 4a는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛의 상태를 예시한다.
도 4b는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛의 또 다른 상태를 예시한다.
도 5는 본 개시의 많은 실시예들에 따른 장치 페이지 상의 기입 동작들을 위한 데이터 상태 동기화를 제공하는 것과 관련된 흐름도를 예시한다.
도 6은 본 개시의 많은 실시예들에 따른 판독 동작들을 위한 데이터 상태 동기화를 제공하는 것과 관련된 흐름도를 예시한다.
도 7은 본 개시의 많은 실시예들에 따른 판독 동작들을 위한 데이터 상태 동기화를 제공하는 것과 관련된 또 다른 흐름도를 예시한다.
본 개시는 데이터 상태 동기화를 위한 장치들 및 방법들을 포함한다. 예시적인 장치는 각 저항 가변 메모리 셀 그룹들에 대응되는 복수의 관리 유닛들을 포함하는 메모리 및 메모리에 결합된 컨트롤러를 포함한다. 컨트롤러는 선택된 메모리 셀 그룹에 대한 클리닝 동작을 수행하고 오류 정정 코드(ECC) 패리티 데이터를 생성하도록 구성된다. 컨트롤러는 선택된 셀 그룹에 대한 기입 동작의 성능이 선택된 셀 그룹에 적어도 하나의 데이터 값의 반전 상태를 기입하고 ECC 패리티 데이터 중 적어도 하나의 반전 상태를 선택된 셀 그룹에 기입하도록 더 구성될 수 있다.
본 개시의 실시예들은 저항 가변 메모리 셀들의 잘못된 판단의 감소와 같은 장점들을 제공할 수 있으며, 저항 가변 메모리 셀들의 저항 레벨은 시간이 지남에 따라(예를 들어, 타겟 상태로 프로그램된 후) 드리프트될 수 있다. 따라서, 실시예들은 이전 접근 방식들에 비해 데이터 신뢰성 및/또는 데이터 무결성을 향상시킬 수 있다. 예를 들어, 저항 드리프트를 위해 정정하는 것과 관련된 다양한 이전 접근 방식들은 (예를 들어, 실시간으로 백그라운드에서의) 저항 드리프트를 추적하는 것 및 특정 상태에 있는 셀들의 시간의 양에 기초하여 셀들을 "리프레싱(refreshing)"(예를 들어, 셀들을 그들의 타겟 상태로 셀들을 다시 설정)하는 것 및/또는 드리프트를 수용하기 위한 감지 임계 전압 레벨들을 조정하는 것을 포함한다. 이러한 접근 방식은 드리프트 시간에 대한 정보를 항상 유지하는 것을 필요로 할 수 있고/있거나 일정한 전원을 필요로 할 수 있으며, 이는 예를 들어, 모바일 어플리케이션들과 같은 다양한 어플리케이션들에 이용 가능하지 않을 수 있다.
다른 종래 접근 방식은 모든 셀들은 동시에 "세트" 또는 "리셋"되도록 항상 특정 그룹(예를 들어, 셀들의 페이지)의 모든 셀들을 기입하는 것을 수반할 수 있다. 이러한 접근 방식은 예를 들어 펄스들을 프로그래밍하는 것을 필요로 하지 않을 수 있는 셀들의 프로그래밍을 요구함으로써 에너지 소비 측면에서 비용이 많이 들 수 있다. 대조적으로, 본 개시의 많은 실시예들은 종래 접근 방식에 비해 에너지 소모를 줄이면서, 셀 저항 드리프트로 인한 잘못된 판독을 줄이는 방식으로 데이터 상태 동기화를 제공할 수 있다. 추가로, 다양한 실시예들은 타겟 드리프트 시간을 추적하지 않고 데이터 상태 동기화를 제공할 수 있으며, 이는 다른 이점들 중에서도 일정한 전원 공급(예를 들어, 배터리 전력)을 필요로 하지 않는 것과 같은 이점들을 제공할 수 있다.
일단 다른 종래 접근 방식들에서, 데이터 상태 동기화는 메모리 장치 외부에 위치된 회로부, 예를 들어 호스트 장치에 위치된 회로부 및/또는 메모리 장치 외부에 위치된 제어 회로부에 의해 제공될 수 있다. 이러한 접근 방식들에서, 물리적 블록 어드레스의 상태는 물리적 블록 어드레스에 데이터를 기입 전에 자유 상태로 업데이트될 수 있다. 추가로, 이러한 접근 방식들에서, 명령들 및/또는 데이터는 데이터 상태 동기화를 수행하기 위해 메모리 장치로부터 전송될 수 있다.
대조적으로, 본원의 실시예들은 데이터 상태 동기화가 메모리 장치 상에 또는 내에 위치된 회로부를 사용하여 수행되도록 허용할 수 있으며, 이는 데이터 상태 동기화가 메모리 장치 외부의 회로부에 의해 조정되거나 수행되는 접근 방식들과 비교하여 감소된 시간 및/또는 처리 전력을 가능하게 할 수 있다. 도한, 본원의 실시예들은 물리적 블록 어드레스의 상태를 자유 상태로 업데이트하지 않고 물리적 블록 어드레스의 상태가 무효 상태와 유효 상태 사이에서 전환되도록 할 수 있으며, 이는 데이터 상태 동기화를 단순화할 수 있다. 추가로, 본원의 실시예들은 소형 관리 유닛들(SMU들) 및 대형 관리 유닛들(LMU들)에서 데이터 상태 동기화가 수행되도록 할 수 있다. 본원에 사용된 바와 같이, LMU들은 4 킬로바이트 정도의 관리 유닛들인 반면, SMU들을 64 바이트 정도의 관리 유닛들이다.
본 개시의 이하의 상세한 설명에서, 본 개시의 일부를 형성하고, 본 개시의 하나 이상의 실시예들이 어떻게 실시될 수 있는지를 예시로서 보여주는 첨부 도면들에 대한 참조가 이루어진다. 이러한 실시예들은 당업자들이 본 개시의 실시예들을 실시할 수 있도록 충분히 상세하게 설명되며, 다른 실시예들이 이용될 수 있고 프로세스, 전기적 및 구조적 변화들이 본 개시의 범위를 벗어나지 않고 이루어질 수 있음을 이해해야 한다.
본원에 사용된 바와 같이, 특히 도면에서의 참조 부호들에 대해,"N" 및 "M"과 같은 지정자들은 이렇게 설계된 많은 특정 특징이 포함될 수 있음을 나타낸다. 또한 본원에 사용된 용어는 단지 특정한 실시예들을 설명하기 위한 것일 뿐, 한정하는 것으로 의도되지 않는다는 것이 이해되어야 한다. 본원에 사용된 바와 같이, 단일 형태들인 "하나의(a)", "하나의(an)" 및 "상기(the)"는 문맥상 명백히 달리 명시하지 않는 한 단일 및 복수의 지시 대상들 둘 다를 포함할 수 있다. 추가로, "많은(a number of)", "적어도 하나(at least one)" 및 "하나 이상(one or more)"(예를 들어, 많은 메모리 셀들)은 하나 이상의 메모리 셀들을 지칭할 수 있는 반면, "복수의"는 이러한 것들 중 하나 이상을 지칭하는 것으로 의도된다. 게다가, "할 수 있다(can) 및 "할 수 있다(may)"라는 단어들은 본 출원서 전체에 걸쳐 의무적인 의미(예를 들어, 요구될 수 있는)가 아닌 관용적인 의미(예를 들어, 가능할 수 있는 가능성을 갖는)로 사용된다.
본원에서 도면들은 첫 번째 숫자 또는 숫자들이 도면 번호에 해당하고 나머지 숫자들이 도면에서의 엘리먼트 또는 컴포넌트를 식별하는 넘버링 관례를 따른다. 다른 도면들 간 유사한 엘리먼트들 또는 컴포넌트들이 유사한 숫자들의 사용에 의해 식별될 수 있다. 예를 들어, 557은 도 5의 엘리먼트 "57"을 참조 표시될 수 있으며, 유사한 엘리먼트는 도 6의 657로 참조 표시될 수 있다.
도 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), 주변 컴포넌트 인터커넥트 익스프레스(PCIe) 또는 범용 직렬 버스(USB)일 수 있다. 일반적으로, 호스트 인터페이스(102)를 통해 서로 결합되는 메모리 시스템(104) 및 호스트(102)는 호스트 인터페이스(106)를 통해 제어, 어드레스, 데이터 및 다른 신호들을 전달하기 위한 호환 가능한 리셉터를 각각 가질 수 있다. 마찬가지로, 컨트롤러(108) 및 메모리(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), 오류 정정 코드(ECC) 회로부(113) 및/또는 반전 회로부(115)를 포함할 수 있다. ECC 회로부(113) 및/또는 반전 회로부(115)는 메모리(110) 내부에 위치될 수 있고, 본원의 도 3a-3b, 4a-4b 및 5-7와 관련하여 더 상세히 설명된 바와 같이, 메모리(110)에 의해 수신된 데이터에 대해 각각 오류 정정 및/또는 반전 동작을 수행할 수 있다.
ECC 회로부(113)는 메모리(110)에 의해 저장된 데이터에 대한 오류 정정 동작의 일부로서 패리티 비트들을 생성 및/또는 디코딩하도록 구성될 수 있다. 일부 실시예들에서, ECC 회로부(113)는 메모리(110)에 오류 정정 기능을 제공하도록 구성된 로직 및/또는 하드웨어를 포함할 수 있다. 마찬가지로, 반전 회로부(115)는 메모리(110)에 데이터 반전 논리 기능을 제공하도록 구성된 로직 및/또는 하드웨어를 포함할 수 있다. 예를 들어, 반전 회로부(115)는 본원에서 더 상세히 설명되는 바와 같이 반전 동작들을 수행하도록 구성될 수 있다.
메모리(110) 상에 또는 내에 ECC 회로부(113) 및/또는 반전 로직(115)을 포함함으로써, 일부 실시예들은 본원에서, 도 5-7과 관련하여 더 상세히 설명된 바와 같이, 오류 정정, 데이터 반전 및/또는 데이터 상태 동기화의 병행화를 허용할 수 있다. 이는 메모리(100)를 사용하여 수행된 기입 동작들이 데이터 상태 동기화, 오류 정정 및/또는 데이터 반전이 메모리(110) 외부의 회로부를 사용하여 수행되는 접근 방식들에 비해 최적화 및/또는 개선되도록 할 수 있다. 추가로, 메모리(110) 상에 또는 내에 ECC 회로부(113) 및/또는 반전 로직(115)을 포함함으로써, 일부 실시예들은 본원에서, 도 6-7과 관련하여 더 자세히 설명되는 바와 같이, 메모리 시스템(104) 및/또는 호스트(102)에 대한 에러 시그널링을 개선할 수 있는 온다이 판독 재시도 기능을 더 허용할 수 있다.
메모리 컨트롤러(112), ECC 회로부(113) 및/또는 반전 회로부(115)는 데이터 상태 동기화를 메모리(110)에 제공하도록 구성될 수 있다. 따라서, 일부 실시예들에서, 메모리(110)는 호스트(102)를 방해하지 않고 데이터 상태 동기화 동작들을 수행하도록 구성될 수 있다. 다르게 말하면, 일부 실시예들에서, 메모리(110)는 온-다이 데이터 상태 동기화를 수행하도록 구성될 수 있다.
메모리 컨트롤러(112)는 메모리(110) 내부에 위치될 수 있으며, 메모리 인터페이스(111)를 통해 컨트롤러(108)로부터 커맨드들(예를 들어, 기입 커맨드들, 판독 커맨드들, 리프레시 커맨드들 등)을 수신할 수 있다. 아래에 더 설명된 바와 같이, 많은 실시예들에서, 메모리 컨트롤러(112)는 컨트롤러(108) 및/또는 호스트(102)(예를 들어, 외부 컨트롤러(108) 또는 호스트(102)로부터의 어시스턴스 없이)와는 별도로 메모리(110)에 데이터 상태 동기화를 제공함으로써 셀 저항 드리프트를 관리하도록 구성될 수 있다.
메모리(110)의 메모리 어레이(들)은 예를 들어, 각각 관련 선택 엘리먼트 및 저장 엘리먼트를 갖는 비휘발성 저항 가변 메모리 셀들을 포함할 수 있다. 각 저항 가변 메모리 셀들의 선택 엘리먼트들은 저항 가변 메모리 셀들 상의 데이터 프로그래밍 및/또는 데이터 판독 동작들과 같은 동작들을 수행하기 위해 메모리 셀들을 선택하도록 동작(예를 들어, 턴 온/오프)될 수 있다.
일부 실시예들에서, 메모리 셀들은 사용자 페이지들과 같은 메모리 셀들의 페이지들로 구성될 수 있다. 비제한적인 예에서, 메모리 셀들은 512 비트(예를 들어, 64 바이트), 트리플 오류 정정 코드의 수행을 위한 30개의 패리티 비트들, 반전 비트(예를 들어, 1 비트 반전 플래그) 및/또는 하나 이상의 추가 비트들을 포함하는 페이지들로 구성될 수 있다. 이 예에서, 사용자 페이지 크기는 588 비트(예를 들어, 68 바이트)를 포함할 수 있다.
본원에 사용된 바와 같이, 저장 요소는 저항 가변 메모리 셀의 프로그램 가능 부분을 지칭한다. 예를 들어, 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)) 둘 다의 역할을 할 수 있는 물질(예를 들어, 칼코게나이드 물질)을 포함할 수 있다.
저항 가변 메모리 셀들은 NAND 메모리 어레이의 플로팅 게이트 셀들과 비교하여 재기입 가능하다. 예를 들어, 특정 데이터 패턴은 그룹에 이전에 저장된 데이터를 반드시 삭제하지 않고도 저항 가변 메모리 셀 그룹에 프로그래밍될 수 있다.
저항 메모리 셀들은 예를 들어, 두 동작 신호들(예를 들어, 프로그래밍 및/또는 리셋 신호들)의 인가 사이의 시간 동안 저항 드리프트(예럴 들어, 더 높은 저항 방향으로)를 겪을 수 있다. 즉, 저항 메모리 셀들의 저항 레벨은 시간이 지남에 따라 시프트될 수 있다. 이러한 저항 드리프트는 예를 들어 저장 엘리먼트(예를 들어, 상 변화 물질)의 비정질(amorphous) 부분의 구조적 이완으로 인해, 프로그래밍 후 셀의 저항 레벨의 저항의 자발적인 증가에 기인할 수 있다.
동작 시, 예를 들어, 데이터의 페이지로서 메모리(110)로부터 데이터가 기입 및/또는 판독될 수 있다. 이와 같이, 데이터의 페이지는 메모리 시스템의 데이터 전달 크기로 지칭될 수 있다. 데이터는 섹터들(예를 들어, 호스트 섹터들)로 지칭되는 데이터 세그먼트들로 호스트로/로부터 전송될 수 있다. 이와 같이, 데이터의 섹터는 호스트의 데이터 전달 크기로 지칭될 수 있다. 많은 실시예들에서, 메모리(110)는 메모리 셀들(예를 들어, 저항 가변 메모리 셀들)의 각 그룹들(예를 들어, 물리적 페이지들)에 관리 유닛들을 저장할 수 있다. 실시예들은 이에 제한되는 것은 아니나, 관리 유닛은 논리적 페이지 크기(예를 들어, 예를 들어, 호스트(102)와 같은 호스트의 데이터 전달 크기) 및/또는 예를 들어, 4KB, 8K 등일 수 있는 메모리 시스템(예를 들어, 시스템(104))의 데이터 관리 크기에 해당할 수 있다. 그러나, 실시예들은 그렇게 제한되지 않으며, 페이지 크기는 상기에 설명된 바와 같이 약 544 비트의 사용자 페이지 크기에 대응할 수 있다. 예로서, 관리 유닛은 메모리 셀들의 물리적 페이지에 (예를 들어, 컨트롤러(108)를 통해) 맵핑될 수 있다. 그러나, 다수의 관리 단위들(예를 들어, 대규모 관리 유닛들(LMU들) 및/또는 소규모 관리 유닛들(SMU들))이 물리적 페이지에 매핑될 수 있다.
도 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))를 갖는 위험을 제거하는 데이터 상태 동기화를 제공할 수 있다.
도 3a는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 흐름도(350)를 예시한다. 도1과 관련하여 설명된 바와 같이, 관리 유닛들은 특정 데이터 크기에 대응될 수 있으며, 메모리 셀들의 특정 그룹들(예를 들어, 저항 가변 메모리 셀들의 페이지들)에 맵핑될 수 있다.
흐름도(350)는 일부 접근 방식들에 따른 관리 유닛들의 상태 트랜지션들의 예를 예시한다. 도 3a에 도시된 예는 관리 유닛들의 "자유(free)" 상태(358), "유효(valid)" 상태(354) 및 "무효(invalid)" 상태(356)를 예시한다. 관리 유닛들의 상태는 예를 들어, 도 1에 도시된 컨트롤러(108)과 같은 컨트롤러에 의해 추적될 수 있다. 많은 실시예들에서, 흐름도(350)에 예시된 상태 트랜지션들은 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 저항 가변 메모리 셀들을 포함하는 메모리 장치(예를 들어, 메모리(110))과 관련된 관리 유닛들에 의해 겪게 될 수 있다. 저항 가변 메모리 셀들은 예를 들어, 두 저항 상태들(예를 들어, 논리적 "1"에 해당할 수 있는 세트 상태 및 논리적 "0"에 해당할 수 있는 리셋 상태) 중 하나로 프로그래밍될 수 있다. 실시예들이 이에 제한되는 것은 아니나, 리셋 상태는 세트 상태보다 더 높은 저항 레벨에 해당할 수 있다.
자유 상태(358)는 "클리닝" 동작을 겪게 되고 새로운 데이터 패턴이 프로그래밍될 준비가 된 관리 유닛을 지칭할 수 있다. 클리닝 동작은 해당 관리 유닛의 모든 메모리 셀들을 리셋하는 것(예를 들어, 모든 셀들은 "0" 상태로 두는 것)을 수반할 수 있다. 유효 상태(354)는 유효 데이터(예를 들어, 시스템에 의해 현재 사용중이고 최신 L2P 맵핑 엔트리를 갖는 데이터)를 저장하는 관리 유닛을 지칭할 수 있다. 무효 상태(356)는 무효 데이터(예를 들어, 스테일(stale) L2P 맵핑 엔트리에 대응되는 데이터)를 저장하는 관리 유닛을 지칭할 수 있다.
도 3a에서, 화살표(353)는 자유 상태(358)로부터 선택된 관리 유닛에 대응되는 셀 그룹에 특정 데이터 페턴을 저장하는 기입 동작에 응답하는 유효 상태(354)로의 관리 유닛의 상태 트랜지션을 나타낸다. 기입 동작에 응답하여, 컨트롤러(108)에 의해 맵핑되는 선택된 관리 유닛의 상태는 선택된 관리 유닛은 선택된 관리 유닛이 지금 유효 데이터를 저장한다는 것을 반영하도록 (예를 들어, 자유 상테에서 유효 상태로) 업데이트된다. 예로서, 수신된 기입 커맨드(예를 들어, 호스트(102)로부터 컨트롤러(108)로 수신된 기입 커맨드)에 응답하여, 자유 상태를 갖는 많은 관리 유닛들 중에서 특정 관리 유닛이 호스트 데이터(예를 들어, 프로그램된 호스트로부터 수신된 데이터 패턴)를 갖도록 선택될 수 있다.
화살표(359)는 유효 상태(354)로부터 (예를 들어, 대응되는 맵핑 엔트리가 더이상 최신이 아니도록) 무효화되는 것에 응답하는 무효 상태(356)로의 관리 유닛의 상태 트랜지션을 나타낸다. 예를 들어, 관리 유닛의 상태는 유효로부터 호스트에서 수신된 트리밍 커맨드에 응답하는 무효로 업데이트될 수 있으며, 이는 (예를 들어, 데이터가 셀의 대응되는 페이지로부터 물리적으로 삭제되지 않지 않도록) 논리적 삭제를 야기할 수 있다.
화살표(357)는 관리 유닛에 대응하는 셀들이 모두 동일한 상태(예를 들어, 리셋 상태)에 있는 클리닝 동작을 겪는 것에 응답하여 무효 상태(356)로부터 자유 상태(358)로의 선택된 관리 유닛의 트랜지션을 나타낸다. 클리닝 동작은 관리 유닛에 대응되는 셀들의 그룹에서 수행된 후속 기입 동작을 위한 데이터 상태 동기화를 제공할 수 있다. 예를 들어, 그룹에 다른(예를 들어, 상이한) 데이터 패턴을 저장하기 위해 후속 기입 커맨드를 실행하기 전에 그룹의 모든 가변 저항 메모리 셀들을 동일한 상태(예를 들어, 리셋 상태)로 둠으로써, 도 3a의 방법은 도 2a 및 2b에 설명된 것과 같은 셀 임계 전압 분포 중첩의 발생을 제거함으로써 판독 오류들을 줄일 수 있다. 클리닝 동작에 응답하여 관리 유닛의 상태를 자유 상태로 업데이트하면 다음 기입 동작에 이용할 수 있는 관리 유닛의 풀(pool)로 관리 유닛을 리턴시킬 수 있다. 많은 실시예들에서, 클리닝 동작은 예를 들어, 그룹 메모리 셀들에서 호스트 커맨드들을 수행하는 것과 관련된 레이턴시를 줄이기 위해 백그라운드 동작으로 제공될 수 있다.
많은 실시예들에서, 클리닝 동작은 아직 리셋 상태가 아닌 그룹의 셀들에만 리셋 신호의 인가를 포함할 수 있다. 이와 같이, 아직 리셋 상태에 있지 않은 이러한 셀들은 동일한 시간에(예를 들어, 동시에) 리셋 상태로 프로그래밍된다. 이러한 동기화는 드리프트된 세트 상태(예를 들어, 드리프트된 세트 상태에 대응되는 저항 분포(272))가 새로 프로그래밍된 리셋 상태(예를 들어, 조정된 리셋 상태에 대응되는 저항 분포(274))와 공존하는 것을 방지하며, 이는 도 2b와 관련하여 예시된 바와 같이 (예를 들어, 이러한 두 상태들 사이의 갭을 줄임으로써) 잘못된 데이터 판독을 야기할 수 있다.
또한, 이미 리셋 상태(예를 들어, 클리닝 전)로 프로그래밍된 메모리 셀들은 리셋 상태로 재프로그래밍될 필요가 없기 때문에, 클리닝 동작은 리셋 펄스들이 이미 리셋 상태에 있는 셀들에 인가되는 것을 방지함으로써 에너지 효율적인 방식으로 수행될 수 있다. 리셋 상태들로 드리프트된 메모리 셀들이 리셋 상태로 새로 프로그래밍된 메모리 셀들과 공존하더라도, 이러한 분포들은 컨트롤러 예를 들어, 컨트롤러(108 및/또는 112))가 메모리 셀들이 항상 다른 데이터 패턴으로 프로그래밍되기 전의 리셋 상태에 놓인다는 것을 알고 있으므로 잘못된 데이터 판독들을 초래하지 않을 수 있다. 이와 같이, 드리프트 조정은 수행될 필요가 없으며, 따라서 드리프트 시간이 추적될 필요가 없다.
일부 접근 방식들에서, 흐름도(350)와 관련된 데이터 상태 동기화를 제공하는 것은 호스트 데이터 패턴이 특정 데이터 값(예를 들어, 데이터 값 "0")을 갖는 임계량의 데이터 유닛들(예를 들어, 절반 이상)을 포함하는지를 결정하는 것, 및 호스트 데이터 패턴이 적어도 특정 데이터 값을 갖는 임계량의 데이터 유닛들을 포함한다는 결정에 응답하여, 저항 가변 메모리 셀들의 그룹에 데이터 패턴을 저장하기 전 패턴 반전을 수행하는 것을 포함할 수 있다. 예를 들어, 패턴 반전을 수행하는 것은 데이터 값 "0"에 대응하는 모든 데이터 유닛들이 데이터 값 "1"로 플립(flip)되고 데이터 값 "1"에 대응되는 모든 데이터 유닛들이 데이터 값 "0"으로 플립되도록 호스트 데이터 패턴의 데이터 유닛들(예를 들어, 비트들)을 플립시키는 것을 포함할 수 있다. 패턴 반전은 도 5 및 6과 관련하여 더 설명될 것이다.
패턴 반전을 수행하는 것은 패턴 반전의 부재 시 더 낮은 저항 상태(예를 들어, 세트 상태에 대응)으로 프로그래밍될 그룹의 셀들의 양과 비교하여 더 낮은 저항 상태(예를 들어, 세트 상태에 대응)로 프로그램된 그룹의 셀들의 양을 줄이는 것과 같은 이점들을 제공할 수 있다. 패턴 반전을 수행하는 것은 도 4a 및 4b와 관련하여 더 설명될 것이다.
도 3b는 본 개시의 많은 실시예들에 따른 기입 동작을 위한 데이터 상태 동기화를 제공하는 것과 관련된 또 다른 흐름도를 예시한다. 도 3b에서, 화살표(359)는 유효 상태(354)로부터 (예를 들어, 대응되는 맵핑 엔트리가 더이상 최신이 아니도록) 무효화되는 것에 응답하는 무효 상태(356)로의 관리 유닛의 상태 트랜지션을 나타낸다. 예를 들어, 관리 유닛의 상태는 유효로부터 호스트에서 수신된 트리밍 커맨드에 응답하는 무효로 업데이트될 수 있으며, 이는 (예를 들어, 데이터가 셀의 대응되는 페이지로부터 물리적으로 삭제되지 않지 않도록) 논리적 삭제를 야기할 수 있다.
화살표(357)는 기입 동작을 겪는 것에 응답하여 무효 상태(356)에서 유효 상태(354)로의 선택된 관리 유닛의 트랜지션을 나타낸다. 도 3a에 예시된 예와 달리, 도 3b에 도시된 바와 같이, 관리 유닛들은 관리 유닛이 자유 상태 상태에 놓이도록 할 필요없이 유효 상태(354)에서 무효 상태(356)로(및 그 반대로) 전송될 수 있다. 일부 실시예들에서, 이는 일부 접근 방식들에 비해 메모리 장치에 의해 수행될 동작들이 더 적을 수 있고, 이는 메모리 동작들을 수행하는 시간을 감소시키고/시키거나 메모리 장치에 의한 전력 소비를 감소시킬 수 있다.
일부 실시예들에서, 도 3a와 관련하여 상기에 설명된 바와 같이, 관리 유닛에 대응하는 셀들이 모두 동일한 상태(예를 들어, 리셋 상태)에 놓이는 클리닝 동작이 수행될 수 있다. 클리닝 동작은 관리 유닛에 대응되는 셀들의 그룹에서 수행된 후속 기입 동작을 위한 데이터 상태 동기화를 제공할 수 있다. 예를 들어, 그룹에 다른(예를 들어, 상이한) 데이터 패턴을 저장하기 위해 후속 기입 커맨드를 실행하기 전에 그룹의 모든 가변 저항 메모리 셀들을 동일한 상태(예를 들어, 리셋 상태)로 둠으로써, 도 3a의 방법은 도 2a 및 2b에 설명된 것과 같은 셀 임계 전압 분포 중첩의 발생을 제거함으로써 판독 오류들을 줄일 수 있다. 클리닝 동작에 응답하여 관리 유닛의 상태를 자유 상태로 업데이트하면 다음 기입 동작에 이용할 수 있는 관리 유닛의 풀(pool)로 관리 유닛을 리턴시킬 수 있다. 많은 실시예들에서, 클리닝 동작은 예를 들어, 그룹 메모리 셀들에서 호스트 커맨드들을 수행하는 것과 관련된 레이턴시를 줄이기 위해 백그라운드 동작으로 제공될 수 있다.
많은 실시예들에서, 클리닝 동작은 아직 리셋 상태가 아닌 그룹의 셀들에만 리셋 신호의 인가를 포함할 수 있다. 이와 같이, 아직 리셋 상태에 있지 않은 이러한 셀들은 동일한 시간에(예를 들어, 동시에) 리셋 상태로 프로그래밍된다. 이러한 동기화는 드리프트된 세트 상태(예를 들어, 드리프트된 세트 상태에 대응되는 저항 분포(272))가 새로 프로그래밍된 리셋 상태(예를 들어, 조정된 리셋 상태에 대응되는 저항 분포(274))와 공존하는 것을 방지하며, 이는 도 2b와 관련하여 예시된 바와 같이 (예를 들어, 이러한 두 상태들 사이의 갭을 줄임으로써) 잘못된 데이터 판독을 야기할 수 있다.
또한, 이미 리셋 상태(예를 들어, 클리닝 전)로 프로그래밍된 메모리 셀들은 리셋 상태로 재프로그래밍될 필요가 없기 때문에, 클리닝 동작은 리셋 펄스들이 이미 리셋 상태에 있는 셀들에 인가되는 것을 방지함으로써 에너지 효율적인 방식으로 수행될 수 있다. 리셋 상태들로 드리프트된 메모리 셀들이 리셋 상태로 새로 프로그래밍된 메모리 셀들과 공존하더라도, 이러한 분포들은 컨트롤러 예를 들어, 컨트롤러(108 및/또는 112))가 메모리 셀들이 항상 다른 데이터 패턴으로 프로그래밍되기 전의 리셋 상태에 놓인다는 것을 알고 있으므로 잘못된 데이터 판독들을 초래하지 않을 수 있다. 이와 같이, 드리프트 조정은 수행될 필요가 없으며, 따라서 드리프트 시간이 추적될 필요가 없다.
일부 접근 방식들에서, 흐름도(350)와 관련된 데이터 상태 동기화를 제공하는 것은 호스트 데이터 패턴이 특정 데이터 값(예를 들어, 데이터 값 "0")을 갖는 임계량의 데이터 유닛들(예를 들어, 절반 이상)을 포함하는지를 결정하는 것, 및 호스트 데이터 패턴이 적어도 특정 데이터 값을 갖는 임계량의 데이터 유닛들을 포함한다는 결정에 응답하여, 저항 가변 메모리 셀들의 그룹에 데이터 패턴을 저장하기 전 패턴 반전을 수행하는 것을 포함할 수 있다. 예를 들어, 패턴 반전을 수행하는 것은 데이터 값 "0"에 대응하는 모든 데이터 유닛들이 데이터 값 "1"로 플립(flip)되고 데이터 값 "1"에 대응되는 모든 데이터 유닛들이 데이터 값 "0"으로 플립되도록 호스트 데이터 패턴의 데이터 유닛들(예를 들어, 비트들)을 플립시키는 것을 포함할 수 있다. 패턴 반전은 도 5 및 6과 관련하여 더 설명될 것이다.
패턴 반전을 수행하는 것은 패턴 반전의 부재 시 더 낮은 저항 상태(예를 들어, 세트 상태에 대응)으로 프로그래밍될 그룹의 셀들의 양과 비교하여 더 낮은 저항 상태(예를 들어, 세트 상태에 대응)로 프로그램된 그룹의 셀들의 양을 줄이는 것과 같은 이점들을 제공할 수 있다. 패턴 반전을 수행하는 것은 도 4a 및 4b와 관련하여 더 설명될 것이다.
도 4a는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛(420)의 상태를 예시한다. 상기에 설명된 바와 같이, 관리 유닛(420)은 대규모 관리 유닛(LMU) 또는 소규모 관리 유닛(SMU)일 수 있다. 일부 실시예들에서, LMU는 4K 바이트 정도의 관리 유닛일 수 있는 반면, SMU는 64 바이트 정도일 수 있다.
도 4a의 예에서, 메모리(410)는 리셋 상태 및 세트 상태로 프로그래밍되는 저항 가변 메모리 셀들의 각 그룹들에 대응되는 복수의 관리 유닛들을 포함하나, 하나의 관리 유닛(예를 들어, 관리 유닛(420))만 도 4a에 도시된다. 도 3a 및 3b와 관련하여 예시된 바와 같이, 리셋 상태는 이진 데이터 값 "0"에 대응될 수 있으며, 세트 상태의 저항 레벨보다 더 높은 저항 레벨을 가질 수 있다. 마찬가지로, 세트 상태는 이진 데이터 값 "1"에 대응될 수 있으나, 실시예들은 이에 제한되지 않는다.
도 4a에 도시된 바와 같이, 메모리(410)를 포함하는 메모리 시스템(예를 들어, 메모리 시스템(104))은 본 개시의 많은 실시예들에 따라 호스트(예를 들어, 호스트(102))로부터 호스트 데이터 패턴(426)을 수신하고, 호스트 데이터 패턴(426)을 기입한다. 호스트 데이터 패턴(426)을 저장하도록 프로그래밍되기 전에, 관리 유닛(420)은 모든 저항 가변 메모리 셀들(422-1, . . ., 422-8)이 동일 상태(예를 들어, 리셋 상태)에 있는 (예를 들어, 420-1에 도시된 바와 같은) 자유 상태에 있다. 많은 실시예들에서, 관리 유닛은 관리 유닛에 저장된 데이터 패턴이 반전되는지 아닌지를 나타내는 플래그(예를 들어, 424-1, . . ., 424-4)를 포함할 수 있다. 호스트 데이터 패턴(426)으로 프로그래밍되기 전에, 플래그(424-1)는 또한 리셋 상태(예를 들어, 이진 데이터 값 "0"을 가짐)에 있을 수 있다. 플래그는 관리 유닛에서의 특정 비트일 수 있으나, 실시예들이 이에 제한되는 것은 아니다.
호스트 데이터 패턴(426)과 관련된 기입 커맨드를 수신하는 것에 응답하여, 컨트롤러(에를 들어, 컨트롤러(108))는 호스트 데이터 패턴(426)이 적어도 특정 데이터 값을 갖는 임계량의 데이터 유닛들(예를 들어, 절반 이상)을 포함하는지를 결정하는 것에 응답하여 데이터 패턴을 관리 유닛에 저장하기 전에 패턴 반전을 수행하도록 구성된다. 예를 들어, 도 4a에 도시된 바와 같이, 호스트 데이터 패턴(426)은 이진 데이터 값 "1"을 갖는 5개의 데이터 유닛들(426-3, 426-4, 426-6, 426-7 및 426-8)을 포함한다. 호스트 데이터 패턴(426)이 임계량(8개의 데이터 유닛들 중 5개의 데이터 유닛들이 이진 데이터 값 "1"을 가짐)을 충족하도록 임계량이 50%로 결정될 때, 패턴 반전이 호스트 데이터 패턴(426)에서 수행된다. 이 예에서, 호스트 데이터 패턴(426)(예를 들어, 이진 데이터 패턴 "00110111"을 가짐)에서 수행된 패턴 반전은 반전된 호스트 데이터 패턴(예를 들어, 이진 데이터 패턴 "11001000"을 가짐)이 된다.
패턴 반전을 수행하는 것에 이어서, 컨트롤러는 반전된 호스트 데이터 패턴(426)을 관리 유닛(420)에 저장하는 기입 동작(453)을 수행하고, 관리 유닛(420)이 반전된 호스트 데이터 패턴을 저장한다는 것을 나타내는 플래그를 설정하고, 관리 유닛(420)의 상태를 자유 상태에서 유효 상태로 업데이트한다. 그 결과, (예를 들어, 반전된 호스트 데이터 패턴으로 프로그래밍되는 것에 이어 관리 유닛(420)의 상태를 예시하는) 420-2에서의 관리 유닛(420)은 이진 데이터 패턴 "11001000"으로 프로그래밍된 저항 가변 메모리 셀들(424-1, . . ., 424-8) 및 이진 데이터 값 "1"로 설정된 플래그(424-2)(예를 들어, 420-2에서의 관리 유닛(420)에 저장된 데이터 패턴이 반전된다는 것을 나타냄)를 포함한다.
패턴 반전을 수행하는 것은 이진 값 "1"을 갖는 메모리 셀들에 저장된 비트들을 플립시키는 것과 관련된 에너지 소모를 줄이는 것과 같은 이점들을 제공한다. 이진 데이터 값 "1"을 갖는 5개의 데이터 유닛들을 포함하는 호스트 데이터 패턴(426)을 고려하기로 한다. 이 예에서, 호스트 데이터 패턴(426)은 반전되지 않고 관리 유닛(420)에 기입될 때, 컨트롤러(예를 들어, 컨트롤러(108))는 클리닝 동작 동안 (예를 들어, 관리 유닛(420)의 각 메모리 셀들에 저장된) 5개의 비트들을 플립시키는 것이 필요하다. 반대로, 컨트롤러는 호스트 데이터 패턴의 역수(예를 들어, 이진 데이터 값 "1"을 갖는 3개의 데이터 유닛들만을 포함함)가 관리 유닛(420)에 기입될 때, 단지 클리닝 동작 동안 (예를 들어, 관리 유닛들(420)의 각 메모리 셀들에 저장된) 3개의 비트들을 플립시키는 것을 필요로 한다. 이와 같이, 패턴 반전을 수행하는 것은 패턴 반전 부재 시, 세트 상태로 프로그래밍될 관리 유닛의 셀들의 양과 비교하여 세트 상태로 프로그램된 관리 유닛의 셀들의 양을 감소시키며, 이는 관리 유닛(예를 들어, 관리 유닛(420))의 각 셀들에 저장된 (예를 들어, 이진 값 "1"을 갖는) 비트들을 플립시키는 것과 관련된 레이턴시를 감소시킨다.
일부 지점(예를 들어, 456)에서, 컨트롤러는 420-2에서의 관리 유닛(420)에 저장된 데이터 패턴이 논리적으로 삭제되도록 관리 유닛(420)을 무효화시키도록(예를 들어, 상태를 무효 상태로 업데이트시킴) 구성된다. 그 결과, (예를 들어, 무효화시킨 후의 관리 유닛(420)을 예시하는) 420-3에서의 관리 유닛(420)에 저장된 데이터 패턴은 예를 들어, 호스트(예를 들어, 호스트(102))에 의해 더 이상 추적되지 않는 반면, 420-3에서의 관리 유닛(420)에 물리적으로 남아 있다. 플래그(424-3)는 또한 관리 유닛(420)이 무효화되는 것에 응답하여 무효화된다.
420-3에서의 관리 유닛(420)이 무효 상태에 있다는 결정에 응답하여, 컨트롤러(108)는 예를 들어, 세트 상태의 저항 가변 메모리 셀들만 리셋 상태로 두는 클리닝 동작(457)을 수행함으로써 데이터 상태 동기화를 제공하도록 구성된다. 이 예에서, 클리닝 동작(457)은 모든 저항 가변 메모리 셀들(422-1, . . ., 422-8)이 리셋 상태에 놓이도록 메모리 셀들(422-1, 422-2 및 422-5)을 리셋 상태로 놓는다. 그 결과, (예를 들어, 클리닝 동작(457)을 수행한 후의 관리 유닛(420)의 상태를 예시하는) 420-4에서의 관리 유닛(420)은 이진 데이터 패턴 "0000000"을 포함한다. 마찬가지로, 플래그(424)는 리셋 상태(예를 들어, 플래그(424-4)로 도시된 바와 같은)로 설정된다. 이와 같이, 이전에 세트 상태로 설정된 모든 저항 가변 메모리 셀들이 동기화된 리셋 시간(예를 들어, 메모리 셀들이 리셋 상태로 놓이는 시간)을 갖는 후속 기입 동작이 관리 유닛(420)에서 수행될 수 있다.
많은 실시예들에서, 클리닝 동작(457)은 백그라운드에서 수행될 수 있다. 예를 들어, 관리 유닛(420)(예를 들어, 420-3에서의 관리 유닛(420)에 의해 도시된 바와 같은)을 포함하는 복수의 관리 유닛을 무효화시키는 것에 이어서, 컨트롤러는 대기 시간 동안 (예를 들어, 컨트롤러(108)이 호스트 커맨드들을 수행하지 않을 때) 무효 상태를 갖는 것으로 결정된 관리 유닛들에서 클리닝 동작(457)을 수행하도록 구성될 수 있다. 백그라운 동작으로 클리닝 동작을 수행하는 것은 다른 것들 중에서도, 이러한 동작들이 레이턴시에 부정적인 영향을 주는 것을 방지하는 것과 같은 이점들을 제공할 수 있다.
많은 실시예들에서, 데이터 상태 동기화는 메모리(110) 외부에 위치되는 컨트롤러(예를 들어, 컨트롤러(108))를 통해 구현될 수 있다. 이 예에서, 컨트롤러는 예를 들어, 논리 대 물리 어드레스 표(예를 들어, 논리 대 물리 어드레스 표(109))를 통해 메모리(410)의 복수의 관리 유닛들의 각 상태들을 추적할 수 있다. 이와 같이, (예를 들어, 논리 대 물리 어드레스 표에 의해 제공된 정보를 이용할 수 있는) 컨트롤러는 후속 기입 커맨드에 지정되고 자유 상태를 갖는 복수의 관리 유닛들(예를 들어, 관리 유닛(420)) 중 특정 관리 유닛에 대응되는 물리적 어드레스에 대한 포인터를 유지하고, (예를 들어, 후속 기입 커맨드가 동일한 관리 유닛에서 수행되지 않도록) 특정 관리 유닛의 상태를 기입 커맨드를 수행한 후의 무효 상태로 업데이트하도록 구성될 수 있다. 이어서, 컨트롤러는 각 관리 유닛이 지나치게 덮어쓰기 되는 것을 방지할 수 있도록 (예를 들어, 자유 상태에 있는) 다음 이용 가능한 관리 유닛으로 포인터를 더 업데이트하도록 구성될 수 있으며, 이는 잠재적으로 셀의 신뢰성 및/또는 유효 수명을 감소시킬 수 있다.
도 4b는 본 개시의 많은 실시예들에 따른 데이터 상태 동기화를 제공하는 것과 관련된 관리 유닛(420)의 또 다른 상태를 예시한다. 이 예에서, 메모리(410)는 리셋 상태 및 세트 상태로 프로그래밍 가능한 가변 저항 메모리 셀들(422-1, . . ., 422-8)의 그룹에 대응되는 관리 유닛(420)을 포함하는 복수의 관리 유닛들을 포함한다. 상기에 설명된 바와 같이, 관리 유닛(420)은 대규모 관리 유닛(LMU) 또는 소규모 관리 유닛(SMU)일 수 있다. 일부 실시예들에서, LMU는 4K 바이트 정도의 관리 유닛일 수 있는 반면, SMU는 64 바이트 정도일 수 있다. 도 2와 관련하여 예시된 바와 같이, 리셋 상태는 이진 데이터 값 "0"에 대응될 수 있으며, 세트 상태의 저항 레벨보다 더 높은 저항 레벨을 가질 수 있다. 마찬가지로, 세트 상태는 이진 데이터 값 "1"에 대응될 수 있으나, 실시예들은 이에 제한되지 않는다. 하나의 관리 유닛만이 도 4b에 예시되어 있지만, 메모리(410)는 저항 가변 메모리 셀들의 각 그룹들에 대응되는 복수의 관리 유닛들을 포함할 수 있다.
도 4b에 도시된 바와 같이, 메모리(410)는 이진 데이터 패턴 "10011111"을 갖는 호스트 데이터 패턴(426)을 기입하는 커맨드를 수신한다. 커맨드 수신에 응답하여, 메모리(410) 내부에 위치되는 컨트롤러(412)(예를 들어, 메모리 컨트롤러(112)는 저항 가변 메모리 셀들(422-1, . . ., 422-8)의 현재 상태들 및 메모리 셀들(422-1, . . ., 422-8)에 대응되는 데이터 극성을 결정하기 위해 관리 유닛(420)에서 판독 동작(도 4b에 도시되지 않음)을 수행하도록 구성될 수 있다. 판독 동작 결과, 컨트롤러(412)는 (예를 들어, 이진 데이터 값 "1"을 갖는 반전 플래그(424)가 관리 유닛(420)에 저장된 데이터 패턴이 반전된 데이터 패턴임을 나타내기 때문에) 저항 가변 메모리 셀들이 (예를 들어, 420-1에서 관리 유닛(420)에 도시된 바와 같은) 이진 데이터 패턴 "01100001"을 포함한다고 결정하고, 관리 유닛(420)에 저장된 데이터 패턴이 반전된다. 그러나, 실시예들은 그렇게 제한되지 않으며, 일부 실시예들에서 상기 동작들(예를 들어, 클리닝 동작 등)은 관리 유닛(420)에 대한 판독 동작을 수행하지 않는 경우 이진 데이터 패턴에 대해 수행될 수 있다. 예를 들어, 상기 동작들은 판독 동작을 수행하지 않고 메모리 셀들(422-1, . . ., 422-8)에 저장된 데이터(예를 들어, "오래된" 데이터)에 대해 수행될 수 있다.
판독 동작을 수행한 이후, 컨트롤러(412)는 모든 저항 가변 메모리 셀들(422-1, . . ., 422-8)이 리셋 상태로 놓이도록 관리 유닛(420)에서 클리닝 동작(464)을 수행하도록 구성된다. 이와 같이, (예를 들어, 클리닝 동작(464)를 수행한 후의 관리 유닛(420)의 상태를 예시하는) 420-2에서의 관리 유닛(420)은 각각 이진 데이터 값 "0"을 갖는 셀들을 포함한다. 많은 실시예들에서, 클리닝 동작(464)을 수행하는 것은 현재(예를 들어, 420-1에서) 세트 상태로 프로그래밍되도록 결정된 메모리 셀들(예를 들어, 메모리 셀들(422-2, 422-3 및 422-8))에만 클리닝 신호(예를 들어, 리셋 신호)를 인가하는 것을 포함할 수 있다. 메모리(410) 내부에 위치된 컨트롤러(예를 들어, 컨트롤러(412))를 통해 데이터 상태 동기화를 수행하는 것은 메모리(410) 외부에 위치되고 논리 대 물리 어드레스 표(예를 들어, 표(107))로부터 제공된 정보를 이용하는 컨트롤러(예를 들어, 컨트롤러(108))를 통해 데이터 상태 동기화를 수행하는 것과 비교하여 각 관리 유닛들의 상태들을 추적 및/또는 업데이트하는 것과 관련된 레이턴시를 줄이는 것과 같은 이점들을 제공한다. 상기에 설명된 바와 같이, 실시예들은 그렇게 제한되지 않으며, 컨트롤러(412)는 먼저 판독 동작을 수행하지 않고 관리 유닛(420)에 저장된 "오래된" 데이터에 대한 클리닝 동작(464)을 수행하도록 구성될 수 있다. 예를 들어, 컨트롤러(412)는 메모리 셀들(예를 들어, 메모리 셀들(422-2, 422-3, 422-8))이 세트 상태로 프로그래밍된 것으로 결정될 때마다 클리닝 동작(464)을 수행하도록 구성될 수 있다.
클리닝 동작(464)을 수행한 후, 컨트롤러(412)는 호스트 데이터 패턴의 특성에 기초하여 호스트 데이터(426) 및 호스트 데이터 패턴(426)의 역수 중 하나를 관리 유닛(426)에 기입하도록 구성될 수 있다. 도 4a와 관련하여 설명된 바와 같이, 컨트롤러(412)는 호스트 데이터 패턴(426)이 예를 들어, 적어도 이진 데이터 값 "1"을 갖는 데이터 유닛의 임계량(예를 들어, 50%)을 포함한다는 결정에 응답하여 호스트 데이터 패턴(426)의 역수를 기입하도록 구성될 수 있다. 이 예에서, 호스트 데이터 패턴(426)은 이진 데이터 값 "1"을 갖는 (예를 들어, 10 개 중) 6개의 데이터 유닛들(426-1, 426-4, 426-5, 426-6, 426-7 및 426-8)을 포함한다. 이와 같이, 컨트롤러(412)는 (예를 들어, 프로그래밍된 후의 관리 유닛(420)의 상태를 예시하는) 420-3에서의 관리 유닛(420)이 호스트 데이터 패턴(예를 들어, 호스트 데이터 패턴(426))의 역수에 대응되는 데이터 패턴(예를 들어, 이진 데이터 패턴 "01100000)을 포함하도록 호스트 데이터 패턴(예를 들어, 호스트 데이터 패턴(426))의 역수를 관리 유닛(420)에 기입한다.
도 5는 본 개시의 많은 실시예들에 따른 기입 동작들을 위한 데이터 상태 동기화를 제공하는 것과 관련된 흐름도(570)를 예시한다. 흐름도(570)에 도시된 기입 동작을 위한 데이터 상태 동기화는 상기에 설명된 바와 같이, 내장 방식으로 수행될 수 있다. 예를 들어, 흐름도(570)에 도시된 동작들은 메모리 장치에 배치되는 회로부(예를 들어, 컨트롤러(112), ECC 회로부(113) 및/또는 도 1에 예시된 반전 회로부(115))를 사용하여 수행될 수 있다. 따라서, 일부 실시예들에서, 기입 동작들을 위한 데이터 상태 동기화는 데이터 상태 동기화 동작(들)의 수행 동안 호스트(예를 들어, 도 1에 예시된 호스트(102))가 방해받지 않도록 메모리 장치로 및/또는 메모리 장치로부터 명령들을 전송하지 않고 수행될 수 있다.
블록(571)에서, 새로운 데이터(예를 들어, 호스트 데이터)는 메모리 장치에 의해 수신될 수 있다. 새로운 데이터는 사용자 데이터를 포함할 수 있으며, 예를 들어 데이터 페이지일 수 있다. 상기에 설명된 바와 같이, 데이터 페이지는 544 비트 정도의 데이터 페이지일 수 있다. 예를 들어, 데이터 페이지는 512 데이터 비트, 30 패리티 비트, 하나의 반전 비트 및 하나 이상의 추가 비트들을 포함할 수 있다.
블록(566)에서, 호스트 데이터 패턴이 도 4a 및 4b와 관련하여 상기에 설명된 바와 같이, 예를 들어 "1"의 이진 데이터 값을 갖는 데이터 유닛의 적어도 임계 수량(예를 들어, 50 %)을 포함한다고 결정하는 것에 응답하여 새로운 데이터 패턴의 역을 기입하기 위해 새로운 데이터에 대해 반전 동작이 수행될 수 있다. 일부 실시예들에서, 반전 동작은 도 1에 예시된 반전 회로부(115)에 의해 수행될 수 있다.
블록(573)에서, ECC 패리티 비트들이 생성될 수 있다. ECC 패리티 비트들의 생성은 도 1에 도시된 ECC 회로부(113)에 의해 수행될 수 있다. ECC 패리티 비트들은 메모리 장치에 의해 블록(571)에서 수신된 새로운 데이터와 같은 데이터에 대해 수행되는 오류 정정 동작의 일부로서 이용될 수 있다.
일부 실시예들에서, 블록(575)에 도시된 바와 같이 클리닝 동작이 또한 수행될 수 있다. 도 5에 도시된 바와 같이, 블록(575)에서의 클리닝 동작, 반전 동작(566), 및/또는 ECC 패리티 비트들의 생성이 동시에 수행될 수 있다.
블록(577)에서, 데이터 및/또는 반전 비트를 기입하기 위한 기입 동작은 본원에서, 도 4a 및 4b와 관련하여 설명된 바와 같이 수행될 수 있다. 예를 들어, 메모리 장치에 기입될 데이터는 블록(566)에서 수행된 반전 동작이 새로운 데이터의 역을 기입하는 것이 포함된 경우 반전 데이터를 포함할 수 있다. 데이터는 물리적 블록 어드레스의 데이터(557) 부분에 기입될 수 있고, 반전 비트는 메모리 장치의 논리 블록 어드레스의 반전 비트 부분(558)에 기입될 수 있다.
블록(579)에서, 하나 이상의 패리티 비트들에 기입하기 위한 기입 동작이 수행될 수 있다. 일부 실시예들에서, 패리티 비트들은 블록(573)에서 도시된 ECC 패리티 생성의 일부로서 생성된 ECC 패리티 비트들이다. ECC 패리티 비트들은 그 위에서 반전 동작을 수행한 패리티 비트들을 포함할 수 있다. 예를 들어, ECC 패리티 비트들은 예를 들어, 블록(573)에서 계산될 수 있으며, 블록(566)에서 도시된 바와 같이 그 위에서 수행된 반전 동작을 가질 수 있다. ECC 패리티 비트들이 계산 및/또는 반전되면, 이들은 메모리 장치의 물리적 블록 어드레스의 패리티(559) 부분에 기입될 수 있다.
도 6은 본 개시의 많은 실시예들에 따른 판독 동작들을 위한 데이터 상태 동기화를 제공하는 것과 관련된 흐름도를 예시한다. 흐름도(660)에 도시된 판독 동작을 위한 데이터 상태 동기화는 상기에 설명된 바와 같이, 내장 방식으로 수행될 수 있다. 예를 들어, 흐름도(660)에 도시된 동작들은 메모리 장치에 배치되는 회로부(예를 들어, 컨트롤러(112), ECC 회로부(113) 및/또는 도 1에 예시된 반전 회로부(115))를 사용하여 수행될 수 있다. 따라서, 일부 실시예들에서, 기입 동작들을 위한 데이터 상태 동기화는 데이터 상태 동기화 동작(들)의 수행 동안 호스트(예를 들어, 도 1에 예시된 호스트(102))가 방해받지 않도록 메모리 장치로 및/또는 메모리 장치로부터 명령들을 전송하지 않고 수행될 수 있다.
도 6에 도시된 바와 같이, 논리 블록 어드레스는 데이터(657), 반전 비트(들)(658), 및/또는 패리티 비트(들)(659)를 포함할 수 있다. 데이터(657), 반전 비트(들)(658), 및/또는 패리티 비트(들)(659)는 메모리 장치에 저장될 수 있다. 블록(661)에서, 논리 블록은 메모리 장치에 의해 판독될 수 있다. 예를 들어, 데이터(657), 반전 비트(들)(658) 및/또는 패리티 비트(들)(659)는 개별 판독 신호(예를 들어, 이와 연관된 개별 전압 값을 갖는 판독 신호)를 사용하여 판독될 수 있다.
데이터(657), 반전 비트(들)(658) 및/또는 패리티 비트(들)(659)를 판독한 후에, 블록(662)에서, 논리 블록에 대해 ECC 디코딩이 수행될 수 있다. 일부 실시예들에서, ECC 디코딩은 도 1에 예시된 ECC 회로부(113)와 같은 ECC 회로부에 의해 수행될 수 있다. 예를 들어, ECC 디코딩은 ECC 디코딩을 수행하기 위해 메모리 장치 외부의 회로부로 데이터를 전송하지 않고 메모리 장치에서 수행될 수 있다.
블록(663)에서, ECC 디코딩이 성공했는지에 대한 결정이 이루어질 수 있다. 예를 들어, 메모리 장치(예를 들어, 컨트롤러(112), ECC 회로부(113) 및/또는 반전 회로부(115)) 상에 배치된 회로부는 블록(662)에서 수행된 디코딩 동작이 성공적이었는지 여부를 결정하도록 구성될 수 있다. ECC 디코딩 동작이 성공적이지 않은 것으로 결정되면, 블록(664)에서, 메모리 장치는 오류 신호를 생성하고/하거나 메모리 시스템 및/또는 메모리 시스템에 결합된 호스트 장치로 오류 신호를 전송하도록 구성될 수 있다. 일부 실시예들에서, 오류 신호는 에러 신호가 온-다이에서 및/또는 메모리 장치로 또는 메모리 장치로부터 명령들을 전송하지 않고 생성되도록 메모리 장치 상에 또는 메모리 장치 내에 위치되는 상기에서 논의된 회로부를 사용하여 생성될 수 있다.
블록(662)에서 수행된 ECC 디코딩 동작이 성공했다고 결정되면, 블록(666)에서, 데이터(657), 반전 비트(들)(658) 및 또는 패리티 비트(들)(659)에 대해 반전 동작이 수행될 수 있다. 반전 동작은 예를 들어 도 4a 및 4b와 관련하여 상기에 설명된 바와 같이 수행될 수 있다. 일부 실시예들에서, 반전 동작은 본원에서, 도 1에 예시된 반전 회로부(115)와 같은 메모리 장치 상에 또는 내에 위치된 회로부를 사용하여 수행될 수 있다.
블록(666)에서 반전 동작의 수행 후에, 정정 데이터(667)가 메모리 장치에 의해 생성, 제공 및/또는 저장될 수 있다. 예를 들어, 정정 데이터는 상기에 설명된 바와 같이, 소형 관리 유닛과 같은 메모리 장치의 하나 이상의 페이지들로 메모리 장치에 저장될 수 있다.
도 7은 본 개시의 많은 실시예들에 따른 판독 동작들을 위한 데이터 상태 동기화를 제공하는 것과 관련된 또 다른 흐름도를 예시한다. 흐름도(760)에 도시된 판독 동작을 위한 데이터 상태 동기화는 상기에 설명된 바와 같이, 내장 방식으로 수행될 수 있다. 예를 들어, 흐름도(760)에 도시된 동작들은 메모리 장치에 배치되는 회로부(예를 들어, 컨트롤러(112), ECC 회로부(113) 및/또는 도 1에 예시된 반전 회로부(115))를 사용하여 수행될 수 있다. 따라서, 일부 실시예들에서, 기입 동작들을 위한 데이터 상태 동기화는 데이터 상태 동기화 동작(들)의 수행 동안 호스트(예를 들어, 도 1에 예시된 호스트(102))가 방해받지 않도록 메모리 장치로 및/또는 메모리 장치로부터 명령들을 전송하지 않고 수행될 수 있다.
도 7에 도시된 바와 같이, 논리 블록 어드레스는 데이터(757), 반전 비트(들)(758), 및/또는 패리티 비트(들)(759)를 포함할 수 있다. 데이터(757), 반전 비트(들)(758), 및/또는 패리티 비트(들)(759)는 메모리 장치에 저장될 수 있다. 블록(761)에서, 논리 블록은 메모리 장치에 의해 판독될 수 있다. 예를 들어, 데이터(757), 반전 비트(들)(758) 및/또는 패리티 비트(들)(759)는 개별 판독 신호(예를 들어, 이와 연관된 개별 전압 값을 갖는 판독 신호)를 사용하여 판독될 수 있다.
데이터(757), 반전 비트(들)(758) 및/또는 패리티 비트(들)(759)를 판독한 후에, 블록(762)에서, 논리 블록에 대해 ECC 디코딩이 수행될 수 있다. 일부 실시예들에서, ECC 디코딩은 도 1에 예시된 ECC 회로부(113)와 같은 ECC 회로부에 의해 수행될 수 있다. 예를 들어, ECC 디코딩은 ECC 디코딩을 수행하기 위해 메모리 장치 외부의 회로부로 데이터를 전송하지 않고 메모리 장치에서 수행될 수 있다.
블록(763)에서, ECC 디코딩이 성공했는지에 대한 결정이 이루어질 수 있다. 예를 들어, 메모리 장치(예를 들어, 컨트롤러(112), ECC 회로부(113) 및/또는 반전 회로부(115)) 상에 배치된 회로부는 블록(762)에서 수행된 디코딩 동작이 성공적이었는지 여부를 결정하도록 구성될 수 있다. ECC 디코딩 동작이 성공적이지 않은 것으로 결정되면, 블록(768)에서, 블록(761)에서 설명된 판독 동작을 재시도하기 위해 개별 판독 신호가 그와 연관된 서로 다른 전압 값을 갖는지에 대한 결정이 사용될 수 있다. 이용 가능한 다른 개별 판독 신호가 있는 경우(예를 들어, 판독 동작이 그와 관련된 서로 다른 전압 값을 갖는 개별 판독 신호를 사용하여 재시도될 수 있다고 결정된 경우), 판독 동작은 블록(761)에서 재시도될 수 있다. 일부 실시예들에서, 상기 결정은 상기에 설명된 바와 같이, 메모리 장치 상에 또는 메모리 장치 내에 제공된 회로부를 사용하여 이루어질 수 있다.
블록(768)에서 판독 동작을 수행하려고 시도할 또 다른 개별 판독 신호가 없다고 결정되면, 블록(764)의 블록에서, 메모리 장치는 오류 신호를 생성하고/하거나 오류 신호를 메모리 시스템 및/또는 메모리 시스템에 결합된 호스트 장치로 전송하도록 구성될 수 있다. 일부 실시예들에서, 오류 신호는 오류 신호가 온-다이에서 및/또는 메모리 장치로 또는 메모리 장치로부터 명령들을 전송하지 않고 생성되도록 메모리 장치 상에 또는 메모리 장치 내에 위치되는 상기에서 논의된 회로부를 사용하여 생성될 수 있다.
블록(762)에서 수행된 ECC 디코딩 동작이 성공했다고 결정되면, 블록(766)에서, 데이터(757), 반전 비트(들)(758) 및 또는 패리티 비트(들)(759)에 대해 반전 동작이 수행될 수 있다. 반전 동작은 예를 들어 도 4a 및 4b와 관련하여 상기에 설명된 바와 같이 수행될 수 있다. 일부 실시예들에서, 반전 동작은 본원에서, 도 1에 예시된 반전 회로부(115)와 같은 메모리 장치 상에 또는 내에 위치된 회로부를 사용하여 수행될 수 있다.
블록(766)에서 반전 동작의 수행 후에, 정정 데이터(767)가 메모리 장치에 의해 생성, 제공 및/또는 저장될 수 있다. 예를 들어, 정정 데이터는 상기에 설명된 바와 같이, 소형 관리 유닛과 같은 메모리 장치의 하나 이상의 페이지들로 메모리 장치에 저장될 수 있다.
특정 실시예들이 본원에 예시되고 설명되었지만, 당업자들은 동일한 결과들을 달성하도록 계산된 배열이 도시된 특정 실시예들로 대체될 수 있음을 이해할 것이다. 이 개시는 본 개시의 많은 실시예들의 적응 또는 변형을 커버하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해해야 한다. 상기 실시예들와 본원에 구체적으로 설명되지 않은 다른 실시예들의 조합은 상기 설명을 검토할 때 통상의 당업자들에게 명백할 것이다. 본 개시의 많은 실시예들의 범위는 상기 구조들 및 방법들이 사용된 다른 어플리케이션들을 포함한다. 따라서, 본 개시의 많은 실시예들의 범위는 첨부된 청구항과, 이와 함께 이러한 청구항들이 부여되는 등가물들의 전체 범위를 참조하여 결정되어야 한다.
전술한 상세한 설명에서, 본 개시를 간소화하기 위해 일부 특징들이 단일 실시예에 함께 그룹화된다. 이 개시 방법은 본 개시의 개시된 실시예들이 각 청구항에 명백히 인용된 것보다 더 많은 특징들을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 다음의 청구항들이 반영하는 바와 같이, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징들 이내에 있다. 따라서, 다음의 청구항들은 이에 의해 상세한 설명으로 통합되며, 각 청구항은 그 자체가 별도의 실시예로서 존재한다.

Claims (21)

  1. 장치에 있어서,
    각 저항 가변 메모리 셀 그룹들에 대응되는 복수의 관리 유닛들을 포함하는 메모리; 및
    상기 메모리에 결합되고,
    선택된 상기 메모리 셀 그룹에 대한 클리닝 동작의 수행;
    오류 정정 코드(ECC) 패리티 데이터의 생성; 및
    상기 선택된 셀 그룹에 적어도 하나의 데이터 값의 반전 상태를 기입하고;
    상기 선택된 셀 그룹에 상기 ECC 패리티 데이터 중 적어도 하나의 반전 상태를 기입하도록 상기 선택된 셀 그룹에 대한 기입 동작의 수행을 하도록 구성된 컨트롤러를 포함하는, 장치.
  2. 제1항에 있어서, 상기 컨트롤러는 상기 클리닝 동작의 상기 수행 및 상기 ECC 패리티 데이터의 상기 생성이 동시에 수행되도록 더 구성되는, 장치.
  3. 제1항에 있어서, 상기 컨트롤러는 상기 적어도 하나의 데이터 값의 상기 반전 상태 및 상기 적어도 하나의 ECC 패리티 데이터의 상기 반전 상태가 상기 선택된 셀 그룹에 동시에 기입되도록 더 구성되는, 장치.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 메모리 및 상기 컨트롤러는 내장된 데이터 상태 동기화 시스템을 포함하며, 상기 내장된 데이터 상태 동기화 시스템은 단일 칩 상에 배치되는, 장치.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 선택된 메모리 셀 그룹은 소규모 관리 유닛의 메모리 셀들에 대응되는, 장치.
  6. 제1항 내지 제3항에 있어서, 상기 컨트롤러는 반전 동작의 수행이 상기 적어도 하나의 데이터 값 및 상기 ECC 패리티 데이터 중 상기 적어도 하나 중 적어도 하나를 반전시키도록 더 구성되며, 상기 반전 동작의 수행은 더 높은 저항 상태로 프로그래밍된 상기 선택된 셀 그룹의 양을 감소시키는, 장치.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 컨트롤러는,
    상기 선택된 셀 그룹이 그와 관련된 제1 특정 데이터 값을 갖는 데이터 유닛의 임계량을 포함하는지 여부에 대해 이루어질 결정; 및
    상기 결정에 응답하여, 그와 연관된 상기 제1 특정 데이터 값을 갖는 상기 데이터 유닛이 그와 연관된 제2 특정 데이터 값을 갖도록 그와 연관된 상기 제1 특정 데이터 값을 갖는 상기 데이터 유닛에 대한 반전 동작의 수행을 하도록 더 구성되는, 장치.
  8. 장치에 있어서,
    각 저항 가변 메모리 셀 그룹들에 대응되는 복수의 관리 유닛들을 포함하는 메모리; 및
    상기 메모리에 결합되고,
    반전 비트가 선택된 메모리 셀 그룹에 저장되는지에 대해 이루어질 결정;
    상기 선택된 메모리 셀 그룹에 대한 판독 동작의 수행;
    디코딩될 상기 선택된 메모리 셀 그룹에 저장된 오류 정정 코드(ECC) 패리티 데이터; 및
    상기 ECC가 성공적으로 디코딩되었다는 결정에 응답하여, 상기 반전 비트가 상기 선택된 메모리 셀 그룹에 저장된다는 결정에 응답하여 수행될 상기 선택된 셀 그룹에서의 데이터 판독에 대한 반전 동작을 하도록 구성된 컨트롤러를 포함하는, 장치.
  9. 제8항에 있어서, 상기 컨트롤러는 상기 ECC가 성공적으로 디코딩되었다는 결정에 응답하여, 상기 선택된 셀 그룹에서의 데이터 판독에 대한 상기 반전 동작이 상기 반전 비트가 상기 선택된 메모리 셀 그룹에 저장되지 않는다는 결정에 응답하여 수행되지 않도록 더 구성되는, 장치.
  10. 제8항에 있어서, 상기 컨트롤러는, 상기 ECC가 성공적으로 디코딩되지 않았다는 결정에 응답하여, 오류 신호가 생성되도록 하고 상기 메모리에 결합된 호스트 장치로 전송하도록 더 구성되는, 장치.
  11. 제8항 내지 제10항 중 어느 한 항에 있어서, 상기 컨트롤러는,
    상기 판독 동작이 그와 연관된 제1 전압 값을 갖는 판독 신호를 사용하여 수행되도록 하고; 상기 ECC가 성공적으로 디코딩되지 않았다는 결정에 응답하여, 상기 판독 동작이 그와 연관된 제2 전압을 갖는 판독 신호를 사용하여 수행되도록 더 구성되는, 장치.
  12. 제8항 내지 제10항 중 어느 한 항에 있어서, 상기 메모리 및 컨트롤러에 결합된 반전 논리 회로부를 더 포함하며, 상기 컨트롤러는 상기 반전 논리 회로부가 상기 반전 동작을 수행하도록 더 구성되는, 장치.
  13. 제12항에 있어서, 상기 메모리, 상기 컨트롤러 및 상기 반전 회로부는 단일 다이에 배치되는, 장치.
  14. 방법에 있어서,
    선택된 관리 유닛의 메모리 셀들에 대응되는 저항 가변 메모리 셀 그룹에 대한 클리닝 동작을 수행하는 단계;
    오류 정정 코드(ECC) 패리티 데이터를 생성하는 단계;
    상기 선택된 셀 그룹에 대한 기입 동작을 수행하는 단계로서, 상기 기입 동작은,
    상기 선택된 셀 그룹에 적어도 하나의 데이터 값의 반전 상태를 기입하는 단계; 및
    상기 선택된 셀 그룹에 상기 ECC 패리티 데이터 중 적어도 하나의 반전 상태를 기입하는 단계를 포함하는, 상기 기입하는 단계를 포함하는, 방법.
  15. 제14항에 있어서, 상기 ECC 패리티 데이터를 생성하는 단계 및 상기 기입 동작을 수행하는 단계는 상기 복수의 메모리 셀들을 포함하는 단일 다이에 배치된 논리 회로부를 사용하여 상기 생성 및 수행 동작들을 수행하는 단계를 더 포함하는, 방법.
  16. 제14항 내지 제15항 중 어느 한 항에 있어서, 상기 클리닝 동작을 수행하는 단계 및 동시에 상기 ECC 패리티 비트를 생성하는 단계를 더 포함하는, 방법.
  17. 제14항 내지 제15항 중 어느 한 항에 있어서, 상기 적어도 하나의 데이터의 상기 반전 상태 및 상기 적어도 하나의 ECC 패리티 데이터의 상기 반전 상태를 상기 선택된 셀 그룹에 동시에 기입하는 단계를 더 포함하는, 방법.
  18. 제14항 내지 제15항 중 어느 한 항에 있어서,
    상기 선택된 셀 그룹이 그와 연관된 제1 특정 데이터 값을 갖는 데이터 유닛의 임계량을 포함하는지 여부를 결정하는 단계; 및
    상기 결정에 응답하여, 그와 연관된 상기 제1 특정 데이터 값을 갖는 상기 데이터 유닛이 그와 연관된 제2 특정 데이터 값을 갖도록 그와 연관된 상기 제1 특정 데이터 값을 갖는 상기 데이터 유닛에 대한 반전 동작을 수행하는 단계를 더 포함하는, 방법.
  19. 방법에 있어서,
    반전 비트가 선택된 관리 유닛의 메모리 셀들에 대응되는 저항 가변 메모리 셀 그룹에 저장되는지 여부를 결정하는 단계;
    그와 연관된 제1 전압 값을 갖는 판독 신호를 사용하여 상기 선택된 메모리 셀 그룹에 대한 판독 동작을 수행하는 단계;
    상기 선택된 메모리 셀 그룹에 저장된 오류 정정 코드(ECC) 패리티 데이터를 디코딩하는 단계;
    상기 ECC가 성공적으로 디코딩되었다는 결정에 응답하여, 상기 선택된 셀 그룹에서의 데이터 판독에 대한 반전 동작을 수행하는 단계; 및
    상기 ECC가 성공적으로 디코딩되지 않았다는 결정에 응답하여, 상기 선택된 셀 그룹에서의 데이터 판독에 대한 상기 반전 동작을 수행하지 않도록 하는 단계를 더 포함하는, 방법.
  20. 제19항에 있어서,
    그와 연관된 제1 전압 값을 갖는 판독 신호를 사용사여 상기 판독 동작을 수행하는 단계; 및
    상기 ECC가 성공적으로 디코딩되지 않았다는 결정에 응답하여, 그와 연관된 제2 전압을 갖는 판독 신호를 사용하여 상기 판독 동작을 수행하는 단계를 더 포함하는, 방법.
  21. 제19항에 있어서,
    상기 ECC가 성공적으로 디코딩되지 않았다는 결정에 응답하여 오류 신호를 생성하는 단계; 및
    상기 오류 신호를 상기 메모리 셀들에 결합된 호스트 장치로 전달하는 단계를 더 포함하는, 방법.
KR1020217010637A 2018-09-11 2019-09-04 데이터 상태 동기화 KR20210044305A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/128,113 2018-09-11
US16/128,113 US10916324B2 (en) 2018-09-11 2018-09-11 Data state synchronization involving memory cells having an inverted data state written thereto
PCT/US2019/049451 WO2020055638A1 (en) 2018-09-11 2019-09-04 Data state synchronization

Publications (1)

Publication Number Publication Date
KR20210044305A true KR20210044305A (ko) 2021-04-22

Family

ID=69719969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217010637A KR20210044305A (ko) 2018-09-11 2019-09-04 데이터 상태 동기화

Country Status (6)

Country Link
US (2) US10916324B2 (ko)
EP (1) EP3850626A4 (ko)
JP (1) JP2021536082A (ko)
KR (1) KR20210044305A (ko)
CN (1) CN112673427B (ko)
WO (1) WO2020055638A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI671750B (zh) * 2018-11-28 2019-09-11 華邦電子股份有限公司 記憶體的控制方法及非暫態電腦可讀媒體
CN114780457A (zh) * 2022-03-16 2022-07-22 长江存储科技有限责任公司 存储器及其操作方法、存储器系统

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134616A (en) 1990-02-13 1992-07-28 International Business Machines Corporation Dynamic ram with on-chip ecc and optimized bit and word redundancy
US5961660A (en) 1997-03-03 1999-10-05 International Business Machines Corporation Method and apparatus for optimizing ECC memory performance
DE19935497A1 (de) * 1999-07-28 2001-03-01 Infineon Technologies Ag Verfahren und Schaltungsanordnung zum Korrigieren von Speicherfehlern
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
US20100011357A1 (en) 2008-07-13 2010-01-14 International Business Machines Corporation System and method for garbage collection in a virtual machine
US20100169708A1 (en) 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US20110167197A1 (en) 2010-01-05 2011-07-07 Mark Leinwander Nonvolatile Storage with Disparate Memory Types
JP5467270B2 (ja) * 2010-04-28 2014-04-09 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
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
US9112536B2 (en) * 2011-01-31 2015-08-18 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
EP3188188B1 (en) * 2011-01-31 2021-09-01 Everspin Technologies, Inc. Self-refrence read method of a spin torque magnetic random access memory
US9021227B2 (en) 2011-06-22 2015-04-28 Intel Corporation Drift management in a phase change memory and switch (PCMS) memory device
US8848465B2 (en) * 2011-07-06 2014-09-30 Samsung Electronics Co., Ltd. Memory devices including selective RWW and RMW decoding
US20130139008A1 (en) 2011-11-29 2013-05-30 Advanced Micro Devices, Inc. Methods and apparatus for ecc memory error injection
US20130219105A1 (en) 2012-02-16 2013-08-22 Micron Technology, Inc. Method, device and system for caching for non-volatile memory device
JP5942781B2 (ja) * 2012-04-16 2016-06-29 ソニー株式会社 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
WO2014102879A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Data storage apparatus and control method thereof
US9026757B2 (en) * 2013-01-25 2015-05-05 Sandisk Technologies Inc. Non-volatile memory programming data preservation
US9728251B2 (en) * 2013-04-24 2017-08-08 Micron Technology, Inc. Resistance variable memory sensing using programming signals
CN107077430B (zh) * 2014-10-24 2020-06-30 索尼公司 存储器控制器、存储器系统以及存储器控制器控制方法
US9654148B2 (en) 2015-01-06 2017-05-16 Samsung Electronics Co., Ltd. Reconfigurable ECC for memory
KR102251814B1 (ko) * 2015-02-06 2021-05-13 삼성전자주식회사 메모리 장치, 그것의 동작 및 제어 방법
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
KR20160150507A (ko) * 2015-06-22 2016-12-30 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9472274B1 (en) 2015-07-01 2016-10-18 Macronix International Co., Ltd. Refresh of nonvolatile memory cells and reference cells with resistance drift
US9891843B2 (en) * 2016-02-01 2018-02-13 Kuwait University Odd/even invert coding for phase change memory with thermal crosstalk
WO2017138235A1 (ja) * 2016-02-08 2017-08-17 ソニー株式会社 メモリコントローラ、不揮発性メモリおよびメモリコントローラの制御方法
US10297314B2 (en) * 2016-05-25 2019-05-21 Nxp Usa, Inc. Systems and methods for non-volatile flip flops
US9715919B1 (en) 2016-06-21 2017-07-25 Micron Technology, Inc. Array data bit inversion
US10387244B2 (en) * 2016-07-01 2019-08-20 Nantero, Inc. Methods for error correction with resistive change element arrays
US10475524B2 (en) * 2016-09-15 2019-11-12 Apple Inc. Recovery of data read from memory with unknown polarity
KR102375060B1 (ko) 2016-10-18 2022-03-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10649665B2 (en) 2016-11-08 2020-05-12 Micron Technology, Inc. Data relocation in hybrid memory
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
KR20180091989A (ko) 2017-02-06 2018-08-17 에스케이하이닉스 주식회사 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법
US10083751B1 (en) * 2017-07-31 2018-09-25 Micron Technology, Inc. Data state synchronization
CN107590021B (zh) * 2017-08-22 2020-01-03 华中科技大学 一种降低闪存误码率的编、解码器和编、解码方法

Also Published As

Publication number Publication date
EP3850626A1 (en) 2021-07-21
EP3850626A4 (en) 2022-06-01
JP2021536082A (ja) 2021-12-23
US20200082900A1 (en) 2020-03-12
CN112673427B (zh) 2022-02-01
US20210166775A1 (en) 2021-06-03
US10916324B2 (en) 2021-02-09
US11488681B2 (en) 2022-11-01
CN112673427A (zh) 2021-04-16
WO2020055638A1 (en) 2020-03-19

Similar Documents

Publication Publication Date Title
US11640262B2 (en) Implementing variable number of bits per cell on storage devices
US10943659B2 (en) Data state synchronization
US20210057018A1 (en) Sequential slc read optimization
US20220019384A1 (en) Memory management utilzing buffer reset commands
KR20210038692A (ko) 비휘발성 메모리를 위한 멀티-레벨 웨어 레벨링
US11488681B2 (en) Data state synchronization
US20190324672A1 (en) Apparatuses and methods for counter update operations
CN113808656A (zh) 存储器子系统中的不良生长块管理
US20200019342A1 (en) Determination of data integrity based on sentinel cells
US11698867B2 (en) Using P2L mapping table to manage move operation
TWI720607B (zh) 用於操作記憶體之設備及方法
CN114077402A (zh) 写入类型指示命令
US11334505B2 (en) System and method for operating system
US20240004566A1 (en) Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system
CN112740189B (zh) 非易失性存储器的多级损耗均衡
US20220254432A1 (en) Memory system and operating method of memory system
CN112951285A (zh) 系统、控制器和用于操作系统的方法

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