KR102556115B1 - Delay post-write in memory with calibration support - Google Patents

Delay post-write in memory with calibration support Download PDF

Info

Publication number
KR102556115B1
KR102556115B1 KR1020197034813A KR20197034813A KR102556115B1 KR 102556115 B1 KR102556115 B1 KR 102556115B1 KR 1020197034813 A KR1020197034813 A KR 1020197034813A KR 20197034813 A KR20197034813 A KR 20197034813A KR 102556115 B1 KR102556115 B1 KR 102556115B1
Authority
KR
South Korea
Prior art keywords
memory
page
data
cache
array
Prior art date
Application number
KR1020197034813A
Other languages
Korean (ko)
Other versions
KR20190141235A (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 KR20190141235A publication Critical patent/KR20190141235A/en
Application granted granted Critical
Publication of KR102556115B1 publication Critical patent/KR102556115B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration

Abstract

이전에 열렸던 페이지에 대응하는 데이터의 어레이로의 지연 후-기록을 갖는 메모리는 후-기록 동작들에 연관된 지연들이 피해지도록 허용한다. 모든 초기 활성화가 제1 페이지를 열고 그 페이지에 대한 판독/기록 동작들이 완료된 후, 메모리 셀들의 어레이로의 열린 페이지의 후-기록은, 새로운 페이지를 여는 후속하는 활성화 동작의 완료 이후까지 지연된다. 또다른 활성화 동작이 없을 때 후-기록을 강행시키기 위한 기술들이 또한 게시되어 있다. 캘리브레이션 및 테스팅 시퀀스들(sequences)이 또한 지원되는데, 여기서, 비-파괴 모드가 비-휘발성 메모리 어레이 내에 저장된 데이터 및 열려있는 페이지들이 클리어링되었다는 것을 표시하는데 사용되는 상태 비트들을 보호하여, 캘리브레이션 또는 테스팅의 결과인 나중의 의도하지 않은 지연 후-기록 동작이 비-휘발성 데이터를 손상시키지 않게 된다.A memory with delay post-write into an array of data corresponding to a previously opened page allows delays associated with post-write operations to be avoided. After every initial activation opens a first page and read/write operations to that page have completed, post-write of the opened page to the array of memory cells is delayed until after the completion of a subsequent activation operation that opens a new page. Techniques for forcing post-recording in the absence of another activating action are also disclosed. Calibration and testing sequences are also supported, where a non-destructive mode protects the data stored in the non-volatile memory array and the status bits used to indicate that open pages have been cleared, thereby enabling the end of calibration or testing. The resultant later unintended delay post-write operations do not corrupt the non-volatile data.

Description

캘리브레이션 지원을 갖는 메모리 내에서의 지연 후-기록Delay post-write in memory with calibration support

관련 출원(들)에 대한 교차-참조Cross-reference to related application(s)

이 특허 출원은 2017년 4월 27일자 제출된 미국 가출원 번호 제15/499,136에 대한 이득을 35 U.S.C. § 365하에서 주장하고, 그 전체는 참조에 의해 여기에 통합된다.This patent application provides the benefit of 35 U.S.C. § 365, the entirety of which is incorporated herein by reference.

기술 분야technical field

여기의 본 게시물은 일반적으로 어레이에 대한 지연 후-기록을 갖는 메모리 장치들에 관한 것으로, 특히, 캘리브레이션 절차들(calibration procedures)이 사용되는 메모리 장치들 내에서 이러한 지연 후-기록 동작들을 지원하기 위한 회로들 및 방법들에 관한 것이다.This posting herein relates generally to memory devices with write-delay for arrays, and in particular to support such write-delay operations within memory devices where calibration procedures are used. circuits and methods.

스핀-토크 자기 메모리 장치들(spin-torque magnetic memory devices)은, 자기 터널 접합부(magnetic tunnel junction; MTJ)를 통과한 판독 전류가 자기저항 스택의 상태에 기초한 크기를 갖는 전압 강하를 초래하도록, 자기 터널 접합부를 가로지르는 저항을 제어함으로써 정보를 저장한다. 각각의 자기 터널 접합부 내의 저항은 자기저항 스택 내의 자기저항 층들의 상대적인 자기 상태들에 기초하여 가변할 수 있다. 이러한 메모리 장치들 내에는, 전형적으로 고정 자기 상태를 갖는 자기저항 스택의 일 부분 및 고정 자기 상태를 갖는 상기 일 부분에 대해 2개의 가능한 상태들 중 하나가 되도록 제어되는 자유 자기 상태를 갖는 또다른 부분이 있다. 자기 터널 접합부를 통과한 저항이 고정 부분에 대한 자유 부분의 방향에 기초하여 변하기 때문에, 자유 부분의 방향을 설정함으로써 정보가 저장될 수 있다. 정보는 나중에 자유 부분의 방향을 감지함으로써 검색된다. 이러한 자기 메모리 장치들은 본 기술에 잘 알려져있다.Spin-torque magnetic memory devices operate in such a way that a read current across a magnetic tunnel junction (MTJ) results in a voltage drop whose magnitude is based on the state of the magnetoresistive stack. It stores information by controlling the resistance across the tunnel junction. The resistance within each magnetic tunnel junction can vary based on the relative magnetic states of the magnetoresistive layers in the magnetoresistive stack. Within these memory devices, typically one portion of the magnetoresistive stack has a fixed magnetic state and another portion has a free magnetic state that is controlled to be in one of two possible states for the portion with a fixed magnetic state. there is Since the resistance through the magnetic tunnel junction changes based on the orientation of the free part relative to the fixed part, information can be stored by setting the orientation of the free part. Information is later retrieved by sensing the orientation of the free part. Such magnetic memory devices are well known in the art.

자기 랜덤 액세스 메모리(magnetic random access memory; MRAM)와 같은 몇몇 자기저항 메모리 장치들은 다른 메모리 장치들에 의해서도 또한 사용되는 액세스 프로토콜들을 지원한다. 예를 들어, 동기식 2배 데이터 속도 프로토콜(예를 들어, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, 등)을 사용하는 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM) 장치들이 본 기술에 잘 알려져있다. 몇몇 MRAM 장치들은 이러한 프로토콜들을 지원하는데, 여기서, DDR SDRAM 장치들에 대한 동일한 동작 코드들이 MRAM 장치들 내에서 동일한 또는 유사한 동작들을 초래한다.Some magnetoresistive memory devices, such as magnetic random access memory (MRAM), support access protocols also used by other memory devices. For example, dynamic random access memory (DRAM) devices using synchronous double data rate protocols (eg, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, etc.) are well suited to the present technology. It is known. Some MRAM devices support these protocols, where identical operating codes for DDR SDRAM devices result in identical or similar operations within the MRAM devices.

다음의 상세한 설명은 본질적으로 단지 예시적인 것일 뿐, 주제나 본 출원의 실시예들 및 이러한 실시예들의 사용들을 제한하도록 의도된 것은 아니다. 여기에 예시적으로 설명된 어떠한 구현도 반드시 다른 구현들에 비해 선호되거나 이로운 것으로 구성된 것은 아니다.The detailed description that follows is illustrative in nature only and is not intended to limit the subject matter or embodiments of the present application or uses of such embodiments. Any implementation illustratively described herein is not necessarily preferred or constituted advantageous over other implementations.

단순하고 명확하게 나타내기 위해, 도면들은 다양한 실시예들의 일반적인 구조 및/또는 구성 방식을 묘사한다. 잘-알려진 특징들 및 기술들에 대한 설명들 및 세부사항들은 다른 특징들을 불필요하게 모호하게 하지 않기 위해 생략될 수 있다. 도면들 내의 요소들은 반드시 크기에 맞춰 그려진 것은 아니고: 예시적인 실시예들의 이해 개선을 돕기 위해, 몇몇 특징들의 크기들은 다른 요소들에 비해 과장될 수 있다.For purposes of simplicity and clarity, the drawings depict the general structure and/or manner of construction of various embodiments. Descriptions and details of well-known features and techniques may be omitted so as not to unnecessarily obscure other features. Elements in the drawings are not necessarily drawn to scale: to help improve understanding of the example embodiments, the sizes of some features may be exaggerated relative to others.

"포함한다(comprise, include)" 및 "갖는다(have)"란 용어와 그것의 임의의 변형들은 비-배타적인 포함을 나타내기 위해 동의어로 사용된다. "예시적"이란 용어는 "이상적"이란 의미 보다는 "예"의 의미로 사용된다.The terms “comprise, include” and “have” and any variations thereof are used synonymously to indicate a non-exclusive inclusion. The term "exemplary" is used in the sense of "example" rather than "ideal".

간결성을 위해, 예를 들어, 표준 자기 랜덤 액세스 메모리(MRAM) 처리 기술들, 바이어스 전압들의 생성, 자성 기본 원리들, 및 메모리 장치들의 기본 동작 원리들을 포함하는, 당업자들에게 알려진 종래 기술들, 구조들, 및 원리들은 여기에 설명되지 않을 수 있다.For brevity, prior art, structure, known to those skilled in the art, including, for example, standard magnetic random access memory (MRAM) processing techniques, generation of bias voltages, magnetic fundamentals, and basic operating principles of memory devices. , and principles may not be described herein.

이 설명이 진행되는 동안, 다양한 예시적인 실시예들을 나타내는 상이한 도면들을 따라, 유사한 요소들을 식별하기 위해 유사한 도면 참조 부호들이 사용될 수 있다.While this description proceeds, like drawing reference numbers may be used to identify like elements along different drawings representing various exemplary embodiments.

간결성을 위해, 메모리 판독 및 기록에 관한 종래 기술들 및 특정 시스템들 및 하부시스템들(및 그것의 개개의 동작 구성요소들)의 다른 기능적인 양태들은 여기서 상세하게 설명되지 않을 수 있다. 더욱이, 여기에 포함된 다양한 도면들 내에 도시된 연결선들은 다양한 요소들 간의 예시적인 기능적 관계들 및/또는 물리적 연결들을 나타내도록 의도된 것이다. 많은 대안적인 또는 추가적인 기능적 관계들 또는 물리적 연결들이 본 주제의 실시예에 존재할 수 있다는 것이 주의되야 한다.For brevity, prior art techniques relating to reading and writing memory and other functional aspects of certain systems and subsystems (and their individual operating components) may not be described in detail herein. Moreover, the connecting lines shown in the various figures included herein are intended to represent exemplary functional relationships and/or physical connections between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may exist in an embodiment of the subject matter.

자기 메모리 장치들 및 다른 메모리 장치들은 종종 복수의 뱅크들(banks) 또는 하부어레이들(subarrays)로 나뉘는 메모리 셀들의 어레이를 포함한다. 이러한 메모리 장치들 내에서, 뱅크들 간의 액세스들이 데이터 처리량을 최적화하기 위해 인터리빙될(interleaved) 수 있도록, 각각의 뱅크는 개별적으로 액세스될 수 있다. 몇몇 자기 메모리 장치들은 DDR 메모리 프로토콜들을 지원하는데, 여기서, 활성화 동작은 특정 뱅크 내의 메모리 셀들의 페이지를 연다. 메모리 셀들의 "페이지"는 한 단위로 함께 액세스되는 메모리 셀들의 그룹으로 이해된다. 몇몇 예시들에서, "페이지"는 메모리 셀들의 "행"으로 이루어질 수 있다. 페이지를 열면, 페이지에 대한 데이터가 메모리 셀들의 어레이로부터 데이터가 보다 용이하게 액세스되는 캐시 또는 다른 형태의 임시 저장소로 이동한다. 페이지가 활성화되면(열리면), 페이지에 대한 판독 및 기록 동작들이 수행될 수 있다. 열린 페이지에 대한 판독/기록 동작들의 완료시에, 페이지가 닫힌다. 페이지가 닫히면, 어레이는 후속하는 페이지 활성화를 위해 준비된 상대로 반환되고, 닫힌 페이지 내의 데이터는 페이지를 다시 열지 않고는 판독들 및 기록들을 위해 또다시 액세스될 수 없다. 몇몇 메모리 장치들 내에서는, 활성화 명령 동안 임시 저장소로 이동된 데이터가 즉시 어레이 후기록되고, 몇몇 경우들에서는, 페이지가 열려있는 동안 수행된 기록 동작들에 대응하는 데이터가 또한 어레이 내의 메모리 셀들에 즉시 기록된다. 이러한 메모리 장치들 내에서, 사전 충전 동작은 단지 비트선들만을 사전 충전하고 페이지에 대응하는 워드선을 디-어서팅(de-asserting)할 수 있다. 다른 메모리 장치들 내에서는, 활성화 동안 임시 저장소로 이동된 데이터 및 열려있는 페이지에 기록된 데이터가 페이지를 닫기 직전까지 어레이에 저장되지 않는다. 이와 같이, 그러한 메모리 장치들 내에서, 사전 충전 동작은 임시 저장소에서부터 어레이로의 데이터의 후-기록을 수행하는 것을 또한 포함할 것이다. 데이터를 어레이에 후기록하기 위해 페이지가 닫히기 직전까지 기다림으로써, 메모리 장치는 전력을 절약하거나 데이터의 이동 또는 수정에 연관된 타이밍 사양들을 개선시킬 수 있다.Magnetic memory devices and other memory devices often include an array of memory cells divided into a plurality of banks or subarrays. Within these memory devices, each bank can be accessed individually so that accesses between the banks can be interleaved to optimize data throughput. Some magnetic memory devices support DDR memory protocols, where an activate operation opens a page of memory cells within a particular bank. A "page" of memory cells is understood to be a group of memory cells that are accessed together as a unit. In some examples, a “page” may consist of a “row” of memory cells. When a page is opened, the data for the page is moved from the array of memory cells to a cache or other form of temporary storage where the data is more easily accessed. When a page is activated (opened), read and write operations to the page can be performed. Upon completion of read/write operations to an open page, the page is closed. When a page is closed, the array is returned ready for subsequent page activation, and the data within the closed page cannot be accessed again for reads and writes without reopening the page. Within some memory devices, data moved to temporary storage during an activate command is immediately written back to the array, and in some cases, data corresponding to write operations performed while a page is open is also immediately written to memory cells in the array. It is recorded. In these memory devices, a pre-charge operation may pre-charge only bit lines and de-assert a word line corresponding to a page. Within other memory devices, data moved to temporary storage during activation and data written to an open page are not stored in the array until immediately before closing the page. As such, within such memory devices, a pre-charge operation will also include performing a post-write of data from temporary storage to the array. By waiting until just before a page closes to write data back to the array, the memory device can conserve power or improve timing specifications associated with moving or modifying data.

다수의 뱅크들을 가짐으로써 다수의 페이지들이 열릴 수 있고, 이에 따라, 액세스들의 인터리빙이 인에이블링(enabling)된다. 이는, 각각의 뱅크가 개별적인 판독 및 기록을 허용하는 대응하는 캐시 또는 그것만의 임시 저장소를 갖기 때문이다. 도 1은 3개의 상이한 뱅크들 내의 3개의 상이한 페이지들에 대응하는 복수의 메모리 판독들의 인터리빙을 도시한다. 각각의 블록은 다른 진행중인 동작들에 대해 특정한 동작에 의해 소비된 시간을 나타낸다. 블록들 중 상위 행(row)은 BANK1 PAGE1에 대한 판독 액세스를 나타낸다. 블록(110)에서, BANK1에 대한 활성화 동작이 일어난다. 활성화 동작 동안, PAGE1에 대응하는 데이터는 BANK1에 대응하는 어레이 부분으로부터 검색되어 판독/기록 액세스를 위해 캐시에 저장된다. 보다 상세히 후술된 바와 같이, 활성화 동작은 매우 시간 소모적일 수 있는데, 특히, 어레이 내에 저장된 데이터를 감지하기 위해 자가-참조 판독 동작을 사용하는 자기저항 메모리 장치들 내에서 특히 그러하다.Having multiple banks allows multiple pages to be opened, thus enabling interleaving of accesses. This is because each bank has its own temporary storage or corresponding cache allowing separate reads and writes. Figure 1 shows the interleaving of multiple memory reads corresponding to three different pages in three different banks. Each block represents the time consumed by a particular operation relative to other ongoing operations. An upper row of blocks represents read access to BANK1 PAGE1. At block 110, activation of BANK1 takes place. During an activation operation, data corresponding to PAGE1 is retrieved from the portion of the array corresponding to BANK1 and stored in the cache for read/write access. As discussed in more detail below, the activation operation can be very time consuming, particularly within magnetoresistive memory devices that use a self-referencing read operation to sense data stored in an array.

활성화 후, 판독 요청은 출력할 특정 데이터를 패칭(fetching)하기 위해 판독 액세스 시간을 필요로 한다. 이것은 "CAS 레이턴시(CAS latency)"를 위해 CL로 라벨링된(labeled) 블록(111)에 대응한다. CAS 레이턴시는 주로 판독 요청의 수신과 그 판독 요청에 대응하는 데이터의 출력 사이의 시간을 나타내기 위해 사용되는 용어이다. 그 시간은 열려있는 페이지 내의 특정 데이터를 선택하고 그 데이터를 메모리 장치의 출력부들에 라우팅하는 것에 대응한다. 판독 데이터는 블록(112) 동안 출력된다. 특히, 단지 BANK1 PAGE1에 대한 단일 판독 액세스만이 도시되어 있지만, 페이지가 열려있는 동안 많은 판독 및 기록 액세스들이 일어날 수 있다는 것이 이해된다. 도 1 및 2에 관련된 종래 기술의 메모리 장치들 내에서, 페이지에 대한 모든 액세스들이 완료되면, 블록(113)에서 사전 충전 명령은 페이지를 닫고 캐시 내의 데이터를 어레이에 후기록한다. 어레이에 대한 이러한 후-기록 동작은 또한, 데이터가 캐시 내에 있는 동안, 판독 및 기록 동작들을 수행하는데 필요한 시간에 비해 매우 시간 소모적일 수 있다. After activation, read requests require read access time to fetch the specific data to output. This corresponds to block 111 labeled CL for "CAS latency". CAS latency is a term used primarily to indicate the time between the receipt of a read request and the output of data corresponding to the read request. That time corresponds to selecting particular data in the open page and routing that data to the outputs of the memory device. Read data is output during block 112 . In particular, while only a single read access to BANK1 PAGE1 is shown, it is understood that many read and write accesses may occur while the page is open. Within the prior art memory devices associated with Figures 1 and 2, once all accesses to the page have been completed, the pre-fill command at block 113 closes the page and writes the data in the cache back to the array. This post-write operation to the array can also be very time consuming compared to the time required to perform read and write operations while the data is in the cache.

도 1 및 2는 종래 기술의 메모리 장치 내에서의 데이터 액세스 동작들의 다양한 양태들의 상대적인 타이밍을 도시하는 블럭도들.
도 3은 예시적인 실시예에 따른 메모리 장치 내에서의 데이터 액세스 동작들의 다양한 양태들의 상대적인 타이밍을 도시하는 블럭도들.
도 4는 예시적인 실시예에 따른 자기 메모리 장치의 일 부분의 개략도.
도 5 내지 도 7은 예시적인 실시예들에 따른 자기 메모리 내에서 지연 후-기록을 수행 및 지원하기 위한 방법들에 대응하는 흐름도들.
도 8은 또다른 예시적인 실시예에 따른 연관된 타이밍도를 갖는 자기 메모리 장치의 일 부분의 계략도.
도 9 및 10은 예시적인 실시예들에 따른 지연 후-기록을 지원하는 메모리들 내에서 비-파괴 캘리브레이션을 수행 및 지원하기 위한 방법들에 대응하는 흐름도들.
1 and 2 are block diagrams illustrating the relative timing of various aspects of data access operations within a prior art memory device.
3 are block diagrams illustrating the relative timing of various aspects of data access operations within a memory device in accordance with an illustrative embodiment.
Fig. 4 is a schematic diagram of a portion of a magnetic memory device according to an exemplary embodiment;
5-7 are flow diagrams corresponding to methods for performing and supporting write-delay in a magnetic memory according to example embodiments.
Fig. 8 is a schematic diagram of a portion of a magnetic memory device with an associated timing diagram according to another exemplary embodiment.
9 and 10 are flow charts corresponding to methods for performing and supporting non-destructive calibration within memories supporting write-delay according to exemplary embodiments.

도 1에 도시된 바와 같이, 다양한 동작들에 연관된 지연 중 몇몇을 "숨기기"위해, 다수의 페이지들이 다수의 뱅크들 내에서 열릴 수 있다. 이것은, 메모리 장치에 및 메모리 장치로부터 명령들, 주소들, 및 데이터를 전달하는데 사용되는 다양한 신호선들이 가장 효율적으로 사용되게 한다. 예를 들어, BANK1에 대한 활성화 명령이 메모리에 의해 수신되더라도, BANK2에 대응하는 제2 활성화 명령이 송신될 수 있다. BANK2가 자신만의 캐시를 가지므로, BANK2 내의 개별적인 페이지의 활성화는 BANK1의 PAGE1이 BANK2의 PAGE1과 동시에 열리는 것을 허용한다. 도 1 내의 블록들 중 제2 행은, 블록(120)에서의 BANK2 PAGE1의 활성화를 위한 시간이 BANK1 내에서의 활성화 및 판독의 부분들(110-112)과 중첩한다는 것을 도시한다. BANK2의 판독 동작은 타이밍 면에서 BANK1에서와 유사하고, 판독 액세스 시간(121), 판독 데이터 출력(122), 및 사전 충전 블록(123)을 포함하는 것으로 도시된다. 도 1의 제3 행은 BANK3에 대한 유사한 동작들(130-133)을 도시한다.As shown in Figure 1, multiple pages can be opened within multiple banks to "hide" some of the delays associated with various operations. This allows the most efficient use of the various signal lines used to carry commands, addresses, and data to and from the memory device. For example, even if an activation command for BANK1 is received by the memory, a second activation command corresponding to BANK2 may be transmitted. Since BANK2 has its own cache, activation of individual pages within BANK2 allows BANK1's PAGE1 to be opened simultaneously with BANK2's PAGE1. The second row of blocks in FIG. 1 shows that the time for activation of BANK2 PAGE1 at block 120 overlaps portions 110-112 of activation and readout within BANK1. The read operation of BANK2 is similar in timing to that of BANK1, and is shown to include a read access time 121, a read data output 122, and a pre-fill block 123. The third row of FIG. 1 shows similar operations 130-133 for BANK3.

도 1에 도시된 바와 같이, 순차적인 액세스들이 상이한 뱅크들 내에 있기 때문에(예를 들어, 우선 BANK1으로부터, 그 후 BANK2로부터, 그리고 난 후 BANK3로부터의 판독), 액세스들의 인터리빙은 판독 데이터가 메모리 장치에 의해 비교적 끊임없이 출력되게 할 수 있다. BANK1에 대한 판독 데이터(112)는 BANK2에 대한 판독 데이터(122)가 즉시 뒤따르고, 판독 데이터(122)는 결국 BANK3에 대한 판독 데이터(132)가 뒤따른다. 뱅크들 간의 인터리빙이 활성화, 판독 액세스 시간, 및 사전 충전에 연관된 지연들을 적어도 어느 정도 숨길 수 있기 때문에, 높은 처리량이 달성될 수 있다.As shown in Figure 1, since the sequential accesses are in different banks (e.g. read first from BANK1, then from BANK2, and then from BANK3), the interleaving of the accesses ensures that the read data is stored in the memory device By this, it can be output relatively continuously. Read data 112 for BANK1 is immediately followed by read data 122 for BANK2, and read data 122 is eventually followed by read data 132 for BANK3. High throughput can be achieved because interleaving between banks can at least somewhat hide the delays associated with activation, read access time, and pre-charge.

그러나, 도 2에 도시된 바와 같이, 몇몇 예시들에서, 순차적인 액세스들은 동일한 뱅크 내의 상이한 페이지들에 대한 것일 수 있다. 도시된 예에서, 블록(210)에서 BANK1 PAGE1이 활성화되고, 판독 액세스 시간(211) 후에, 판독 데이터(212)가 출력된다. 다음 액세스가 BANK1 PAGE2에 대한 판독이면, BANK1의 PAGE2가 활성화(220)를 통해 열릴 수 있기 전에, BANK1의 PAGE1이 사전 충전(213)을 통해 닫혀야만 한다. 활성화(220)에 이어서, 판독 데이터(222)는 판독 액세스 시간(221) 이후까지 출력되지 않는다. 그 후 사전 충전(223)이 BANK1의 PAGE2를 닫는다. 도 2로부터 명백해질 바로서, 동일한 뱅크에 대한 이러한 백-투-백 액세스들(back-to-back accesses)은 활성화, 판독 액세스 시간, 및 사전 충전에 연관된 시간을 충분히 숨기지 못한다. 마지막 판독 데이터가 출력될 때(즉, 판독 데이터 블록(212)의 완료 약간 전에) 사전 충전 동작이 시작될 수는 있지만, 도시된 바와 같이, 제1 페이지로부터의 판독 데이터 출력(212)과 제2 페이지로부터의 판독 데이터 출력(222) 간의 시간 지연이 상당하다.However, as shown in FIG. 2 , in some instances sequential accesses may be to different pages within the same bank. In the illustrated example, BANK1 PAGE1 is activated at block 210 and after read access time 211 , read data 212 is output. If the next access is a read to BANK1 PAGE2, then PAGE1 of BANK1 must be closed via prefill 213 before PAGE2 of BANK1 can be opened via activation 220. Following activation (220), read data (222) is not output until after the read access time (221). Then pre-charge 223 closes PAGE2 of BANK1. As will be clear from FIG. 2, these back-to-back accesses to the same bank do not sufficiently hide the activation, read access time, and time associated with pre-charge. Although the pre-charge operation may start when the last read data is output (i.e., slightly before the completion of the read data block 212), as shown, the read data output 212 from the first page and the second page The time delay between reading data output 222 from

현재의 동적 랜덤 액세스 메모리들(DRAM)에서, 활성화 및 사전 충전 동작들에 연관된 타이밍은 다른 양태들의 데이터 액세스 사이클의 타이밍보다 훨씬 크지는 않으므로, 도 2 내에 나타낸 것과 같은 백-투-백 동작의 지연은 허용가능하다. 그러나, MRAM들에서는, 활성화 및 후-기록 동작들이 종종 훨씬 오래 걸리므로, 이러한 동일한-뱅크의 순차적인 액세스들에 대한 데이터 액세스들 간에 더 큰 바람직하지 않은 지연이 초래된다.In current dynamic random access memories (DRAM), the timing associated with the activation and pre-charge operations is not much greater than the timing of the data access cycle of other aspects, so the delay of the back-to-back operation as shown in FIG. is permissible However, in MRAMs, activation and post-write operations often take much longer, resulting in greater undesirable delay between data accesses for these same-bank sequential accesses.

몇몇 MRAM들에서는, 액세스될 페이지에 대한 어레이 내에 저장된 데이터를 감지하기 위해 자가-참조 판독 동작이 사용된다. 예시적인 자가-참조 판독에서, 페이지 내의 각각의 메모리 셀들을 통과한 초기 저항이 감지된 후, 페이지 내의 모든 메모리 셀들이 알려진 상태로 기록되고, 마지막으로, 각각의 셀들을 통과한 기록-후 저항이 또다시 감지되어 기록 이전에 감지되었던 초기 저항과 비교된다. 알려진 상태로 기록한 후에 저항이 동일한지 여부는 메모리 셀의 초기 상태를 표시한다. 특히, 자가-참조 판독은 파괴적이고, 모든 메모리 셀들을 2개의 감지 동작들 사이에 기록된 알려진 상태로 남겨둔다. 이러한 자가-참조 판독 동작은 종종 다른 양태들의 메모리 액세스들에 비해 상당한 시간이 걸린다. 예를 들어, MRAM 내의 페이지를 활성화하는 것은 대략 수백 나노초를 필요로 할 수 있는 반면, 열려있는 페이지에 대한 판독 동작은 대략 수십 나노초일 수 있다.In some MRAMs, a self-referencing read operation is used to sense the data stored in the array for the page to be accessed. In an exemplary self-referencing read, the initial resistance through each memory cell in the page is sensed, then all memory cells in the page are written to a known state, and finally, the post-write resistance through each cell is It is sensed again and compared to the initial resistance that was sensed before recording. Whether the resistances are the same after writing to a known state indicates the initial state of the memory cell. In particular, self-referencing reads are destructive, leaving all memory cells in a known state written between two sense operations. This self-referencing read operation often takes significant time compared to other aspects of memory accesses. For example, activating a page in MRAM may require on the order of hundreds of nanoseconds, whereas a read operation to an open page may take on the order of tens of nanoseconds.

마찬가지로, 판독/기록 액세스들의 완료시에 데이터의 페이지를 어레이에 후-기록하기 위해 필요로 되는 시간이 상당할 수 있다. 예를 들어, MRAM 장치의 수명을 연장시키기 위해, 스핀-토크 메모리 셀 내의 자유 층의 상태를 신속하게 변경시킬 수 있는 큰 크기의 기록 전류 펄스들이 전형적으로 피해지는데, 이는, 그러한 큰 펄스들이 자기저항 스택 내의 민감한 층들을 손상시킬 수 있기 때문이다. 층들의 붕괴를 피하기 위해, 더 낮은 크기 및 더 긴 지속시간의 기록 펄스들이 종종 이용되는데, 이는, 그들이 자유 층으로 하여금 장치 층들에 악영향을 거의 주지 않으면서 스위칭되게 하기 때문이다. 메모리 장치들에 대한 더 긴 수명을 촉진시키지만, 이러한 긴-지속시간 기록 펄스들은 후-기록 동작들을 위해 필요로 되는 시간을 늘린다.Likewise, the time required to post-write a page of data to the array upon completion of read/write accesses can be significant. For example, to prolong the lifetime of MRAM devices, large-magnitude write current pulses that can rapidly change the state of a free layer in a spin-torque memory cell are typically avoided because such large pulses are magnetoresistive. This is because it can damage sensitive layers in the stack. To avoid collapse of the layers, lower magnitude and longer duration write pulses are often used because they allow the free layer to be switched with little adverse effect on the device layers. Although promoting longer lifetimes for memory devices, these long-duration write pulses increase the time required for post-write operations.

여기에 게시된 실시예들은 자기저항 메모리 장치들 내의 전체 처리량을 개선시키도록 돕기 위해 닫힌-페이지 데이터의 지연 후-기록을 사용한다. 이것은, 후-기록의 수행이 판독들 및 기록들에 연관된 다른 진행중인 동작들의 타이밍에 악영향을 미치지 않을 때까지 닫혀있는 페이지에 대응하는 데이터의 후-기록을 지연시킴으로써 달성된다. 여기에 게시된 바와 같이, 몇몇 실시예들에서, 이전에 열렸던 페이지에 대응하는 후-기록은 액세스될 다음 페이지에 대한 활성화 동작에 이어서 수행된다. 몇몇 실시예들에서, 이러한 지연 후-기록을 메모리 내에서 지원하는 것은, 다른 메모리 지원 기능을 구현시키는 추가적인 회로 또는 기술들을 필요로 할 수 있다. 예를 들어, 몇몇 메모리 프로토콜들은 메모리와, 예를 들어, 메모리 제어기와 같은 다른 집적 회로들 간의 시그널링(signaling)에 연관된 타이밍을 최적화하기 위해 기동(startup)시에 캘리브레이션 시퀀스들(calibration sequences)을 사용한다. 더욱 후술된 바와 같이, 지연 후-기록 동작들을 포함하는 메모리의 맥락에서 이러한 캘리브레이션 동작들을 지원하는 것은, 이러한 캘리브레이션 동작들이 이러한 메모리 장치들 상에 저장된 데이터의 비-휘발성 성질에 부정적으로 영향을 미치지 않도록 보장하는 추가적인 회로들 및 기술들의 혜택을 얻을 수 있다.Embodiments disclosed herein use delay-post-write of closed-page data to help improve overall throughput in magnetoresistive memory devices. This is accomplished by delaying post-writing of data corresponding to a closed page until the performance of writing back does not adversely affect the timing of other ongoing operations associated with reads and writes. As disclosed herein, in some embodiments, a post-write corresponding to a previously opened page is performed following an activation operation for the next page to be accessed. In some embodiments, supporting such delay-post-write within memory may require additional circuitry or techniques to implement other memory support functions. For example, some memory protocols use calibration sequences at startup to optimize the timing associated with signaling between the memory and other integrated circuits such as, for example, a memory controller. do. As discussed further below, supporting such calibration operations in the context of a memory that includes delay post-write operations is such that such calibration operations do not negatively affect the non-volatile nature of data stored on such memory devices. You can benefit from additional circuits and techniques that ensure

도 3은 지연 후-기록 개념을 나타내는 것을 돕는다. 도 3에 도시된 바와 같이, 블록(320)에서, BANK1 PAGE2에 대한 활성화가 일어난다. 판독 액세스 시간(321)에 이어서, 판독 데이터(322)가 출력된다. BANK1 PAGE2에 대응하는 활성화 동작이 완료되고 PAGE2 데이터가 어레이에서부터 판독 및 기록 동작들을 위해 사용되는 캐시로 전달되면, 어레이 내의 BANK1는 더이상 활성이 아니다. 이와 같이, 이전에 열렸던 뱅크에 대응하는 후-기록 동작은, 새롭게 활성화된 뱅크에 대한 판독 및 기록 동작들이 일어나는 시간 동안 수행될 수 있다. 도 3에 도시된 바와 같이, 블록(313)에서의 BANK1 PAGE1에 대한 후-기록 동작은, BANK1 PAGE2에 대한 활성화 동작(320)이 완료되면, 일어난다. 도 3이 블록(313)을 "사전 충전 후-기록 BANK1 PAGE1"으로 라벨링하고 있지만, 몇몇 경우들에서는, 블록(313)에서 수행되는 후-기록 동작들이 메모리에 의해 수신된 사전 충전 명령의 결과가 아니라는 것이 인식되야한다. 몇몇 실시예들에서, 페이지에 대한 판독/기록 동작들이 완료되었다는 표시는 메모리 장치에 의한 사전 충전 명령의 수신에 기초한다. 다른 실시예들에서, 데이터의 후-기록은 동일한 뱅크에 대한 후속하는 활성화 동작에 응답하여 일어난다. 추가적으로 상세히 후술된 바와 같이, 블록(313)에 도시된 것과 같은 후-기록 동작들을 유발하기 위해, 몇몇 실시예들에서는 추가적인 명령들 또는 신호들이 사용된다.Figure 3 helps illustrate the delay-after-write concept. As shown in Figure 3, at block 320, activation of BANK1 PAGE2 occurs. Following read access time 321, read data 322 is output. When the activation operation corresponding to BANK1 PAGE2 is complete and the PAGE2 data is transferred from the array to the cache used for read and write operations, BANK1 in the array is no longer active. In this way, a post-write operation corresponding to a previously opened bank can be performed during a time when read and write operations for a newly activated bank occur. As shown in FIG. 3, the post-write operation on BANK1 PAGE1 at block 313 occurs once the activation operation 320 on BANK1 PAGE2 is complete. 3 labels block 313 as "pre-charge post-write BANK1 PAGE1", in some cases, the post-write operations performed in block 313 are not the result of a pre-charge command received by the memory. It should be recognized that no In some embodiments, the indication that read/write operations to the page have completed is based on receipt of a pre-charge command by the memory device. In other embodiments, post-writing of data occurs in response to a subsequent activation operation to the same bank. As described in additional detail below, additional commands or signals are used in some embodiments to trigger post-write operations such as shown in block 313.

전술된 바와 같이, 닫혀있는 뱅크에 대한 후-기록 동작들은 전형적으로, 그 뱅크에 대한 판독 및 기록 액세스들이 완료되자마자 일어나고, 이러한 후-기록 동작은 전형적으로 메모리 장치에 의해 수신된 사전 충전 명령에 의해 촉진된다. 여기에 설명된 바와 같이, 판독 및 기록 액세스들의 완료 즉시 후-기록을 수행하여, 그 후-기록 동작이 완료된 후까지, 후속하는 활성화 동작이 어레이로부터 데이터를 패칭하지 못하게 하기 보다는, 여기에 게시된 실시예들은, 후-기록이 숨겨지고 후속하는 활성화 동작의 타이밍에 영향을 미치지 않을 수 있을 때까지, 그 후-기록 동작을 지연시킨다. 이전에 열렸던 페이지에 대한 후-기록이 닫힌 페이지에 대응하는 데이터를 어레이에 기록하는 것이기 때문에, 다음 페이지가 열린 후에 후-기록 동작이 일어나도록, 후-기록 동작을 편이(shifting)시킴으로써 어떠한 불리한 지연도 초래되지 않는다. 즉, 또다른 상이한 페이지가 현재 액세스되고 있으므로, 데이터를 어레이에 다시 배치하기 위해 서두르지 않는다.As noted above, post-write operations to a bank that is closed typically occur as soon as read and write accesses to that bank are complete, and such post-write operations typically occur in response to a pre-charge command received by the memory device. is promoted by As described herein, rather than performing post-write immediately upon completion of read and write accesses to prevent subsequent activation operations from fetching data from the array until after the post-write operation has completed, as described herein, Embodiments delay the post-write operation until the post-write can be hidden and not affect the timing of the subsequent activation operation. Since post-write to a previously opened page is to write the data corresponding to the closed page to the array, there is no unfavorable delay by shifting the post-write operation so that it occurs after the next page is opened. also does not result in That is, since another, different page is currently being accessed, there is no rush to place the data back into the array.

도 3에 나타낸 바와 같이, 뱅크 내의 이전에 열렸던 페이지에 대응하는 후-기록을, 그 뱅크에 대한 다음 활성화 동작이 완료된 후까지 지연시킴으로써, 그 뱅크에 연관된 사전 충전 시간이 숨겨질 수 있어, 메모리 장치에 대한 레이턴시 및 처리량 특성들이 크게 개선된다. 사실, 도 3에 도시된 바와 같이, 메모리는 그 뱅크 내의 이전에 열렸던 페이지에 대한 후-기록이 일어나는 동안, 데이터를 판독 및 기록할 수 있다(예를 들어, 블록(322)). 도 3에서, 메모리 장치의 초기 상태는 BANK1 PAGE1이 이전에 열렸지만, 그 페이지에 대응하는 판독 및 기록 동작들은 완료되었고, PAGE1 데이터가 어레이에 후 기록될 준비가 되어 있는 시점에 대응한다. PAGE1 데이터가 후-기록될 준비가 되어 있으면서, BANK1 PAGE2에 대응하는 활성화 명령이 수신되었고, 이에 따라, PAGE2가 판독 및 기록 액세스들을 위해 열릴 것임을 나타낸다. PAGE2의 활성화 이전에 PAGE1에 대한 후-기록 동작을 완료하는 대신, PAGE2가 먼저 열리고, 그 활성화가 완료되면, PAGE2를 활성화하거나 새롭게-열린 PAGE2 내의 데이터에 액세스하는 것에 연관된 임의의 동작을 지연시키지 않으면서(예를 들어, 판독 액세스 시간(321) 및 판독 데이터(322)), PAGE1에 대한 후-기록 동작이 일어날 수 있다. 이것은, 이러한 지연 후-기록이 사용되지 않는 시스템들에 비해 상당한 타이밍 이점을 제공한다.As shown in FIG. 3, by delaying post-write corresponding to a previously opened page in a bank until after the next activation operation for that bank has completed, the pre-charge time associated with that bank can be hidden, thereby enabling the memory device Latency and throughput characteristics for are greatly improved. Indeed, as shown in FIG. 3, the memory may read and write data while post-writes to previously opened pages in its bank occur (e.g., block 322). 3, the initial state of the memory device corresponds to the point at which BANK1 PAGE1 has been previously opened, but read and write operations corresponding to that page have been completed, and PAGE1 data is ready to be written back to the array. With PAGE1 data ready to be post-written, an activation command corresponding to BANK1 PAGE2 has been received, thereby indicating that PAGE2 will be opened for read and write accesses. Instead of completing post-write operations on PAGE1 prior to activation of PAGE2, PAGE2 is opened first, and upon completion of its activation, unless it delays any operation associated with activating PAGE2 or accessing data within the newly-opened PAGE2. At (e.g., read access time 321 and read data 322), a post-write operation to PAGE1 may occur. This provides a significant timing advantage over systems where this post-delay write is not used.

BANK1 PAGE2에 대한 액세스들에 이어서, BANK1의 PAGE3에 대한 활성화 동작이 블록(330)에서 일어난다. PAGE3에 대한 활성화의 완료 즉시, BANK1 PAGE2에 대한 후-기록이, PAGE3에 대한 판독 액세스 시간(331) 및 판독 데이터(332)가 동시에 일어나면서, 일어날 수 있다. 마찬가지로, PAGE3에 대한 후-기록은, 블록(340)에서 BANK1 PAGE4에 대한 활성화가 완료되면, 시작된다. 특히, 이전에 열렸던 페이지에 대한 후-기록 동작은, 후-기록이 일어나지 못하게 할 다음 활성화 명령의 모든 부분들이 완료되자마자 일어날 수 있다. 예를 들어, 후-기록 및 활성화의 몇몇 부분들이 메모리 장치 상의 동일한 회로(예를 들어, 기록 드라이버들, 열 디코더들, 등)를 사용하지만, 다른 부분들은, 후-기록 동작이 시작될 때 활성화 동작의 몇몇 양태들이 완료되지 않도록, 독립적인 회로를 사용할 수 있다.Following accesses to BANK1 PAGE2, activation of BANK1 to PAGE3 occurs at block 330 . Upon completion of activation on PAGE3, a post-write to BANK1 PAGE2 can occur, with read access time 331 and read data 332 to PAGE3 occurring simultaneously. Likewise, post-write for PAGE3 begins when activation of BANK1 PAGE4 is complete at block 340 . In particular, a post-write operation for a previously opened page can occur as soon as all parts of the next activation command that will prevent post-write from occurring have completed. For example, while some parts of post-write and activation use the same circuitry on the memory device (e.g., write drivers, column decoders, etc.), other parts of the activation operation when the post-write operation begins. Independent circuits can be used so that some aspects of .

여기에 설명된 실시예들은 이전에 열렸던 페이지에 대응하는 데이터를 어레이에 후-기록하기 위해, 활성화 동작 이후의 시간(새롭게 열린 페이지에 대한 판독들 및 기록들이 일어나고 있을 때)을 사용한다. 이것을 달성하기 위해, 이전에 열렸던 페이지에 대응하는 데이터는 액세스될 새로운 페이지의 활성화를 간섭하지 않을 위치에 저장되어야만 한다. 몇몇 실시예들에서, 메모리 장치의 각각의 뱅크는 2개의 캐시 구조들을 포함하는데, 여기서, 제1 캐시는 열린 페이지에 대한 판독/기록 동작들을 위한 주요 또는 활성 캐시로 동작하고, 제2 캐시는 액세스들이 완료되었지만 후-기록은 아직 일어나지 않은 페이지에 대응하는 데이터를 위한 임시 저장 위치로 동작한다.Embodiments described herein use the time after the activation operation (when reads and writes to the newly opened page are taking place) to post-write data corresponding to the previously opened page to the array. To accomplish this, data corresponding to previously opened pages must be stored in a location that will not interfere with the activation of the new page being accessed. In some embodiments, each bank of a memory device includes two cache structures, where a first cache acts as a primary or active cache for read/write operations to an open page and a second cache serves as an access cache. It acts as a temporary storage location for data corresponding to pages on which pages have been completed but post-write has not yet occurred.

도 4로 넘어가서, 다양한 실시예들에 따른 메모리 장치(400)의 일 부분의 개략도가 제공된다. 메모리 장치(400)는 메모리 셀들의 어레이(405)를 포함한다. 몇몇 실시예들에서, 메모리 셀들은 비-휘발성 스핀-토크 MRAM 셀들인 반면, 다른 실시예들에서, 메모리 셀들은, 예를 들어, DRAM 셀들 또는 다른 저항성 메모리 셀들과 같은 다른 유형들의 메모리 셀들이다. 도 4에 도시된 바와 같이, 어레이(405)는 BANK1(410) 및 BANK2(420)를 포함하는 복수의 뱅크들을 포함한다. 각각의 BANK1(410) 및 BANK2(420)는, 뱅크들(410 및 420) 내의 페이지들에 대한 판독 및 기록 액세스들을 위한 데이터를 일시적으로 저장하기 위해 사용되는 회로(414 및 424)의 대응하는 세트를 각각 포함한다. BANK1(410)에 대한 회로(414)는 제1 캐시(415), 제2 캐시(416), 및 갱신 회로(417)를 포함한다. 패리티 계산기(parity calculator)(418) 및/또는 다수 검출 회로(419)를 포함할 수 있는 갱신 회로(417)는 추가적으로 상세히 후술되어 있다.Turning to FIG. 4 , a schematic diagram of a portion of a memory device 400 in accordance with various embodiments is provided. The memory device 400 includes an array 405 of memory cells. In some embodiments, the memory cells are non-volatile spin-torque MRAM cells, while in other embodiments the memory cells are other types of memory cells, such as DRAM cells or other resistive memory cells, for example. As shown in FIG. 4 , the array 405 includes a plurality of banks including BANK1 410 and BANK2 420 . Each BANK1 410 and BANK2 420 has a corresponding set of circuitry 414 and 424 used to temporarily store data for read and write accesses to pages within banks 410 and 420. includes each Circuitry 414 for BANK1 410 includes a first cache 415 , a second cache 416 , and an update circuit 417 . Update circuitry 417, which may include parity calculator 418 and/or majority detection circuitry 419, is described in additional detail below.

도 4에 도시된 바와 같이, 데이터가 어레이(405)의 BANK1(410)과 캐시들(415 및 416) 사이에 전달되도록, 캐시들(415 및 416)이 BANK1(410)에 연결된다. 몇몇 실시예들에서, 각각의 캐시들(415 및 416)은 정적 랜덤 액세스 메모리(static random access memory; SRAM) 메모리 셀들을 포함하는 반면, 다른 실시예들에서, 캐시들(415 및 416)은 데이터를 저장하기 위해 사용되는 레지스터들, 플립-플롭들(flip-flops), 또는 다른 저장 회로들로 이루어진다. 캐시들(415 및 416)은 BANK1로부터의 데이터의 페이지를 수용하기에 충분한 저장소를 포함하고, 페이지의 주소, 페이지에 대한 패리티 또는 다른 에러 정정 코드(error correction code; ECC) 정보, 및 페이지에 관련된 임의의 반전 또는 다른 정보를 저장하기 위한 추가적인 저장소를 또한 포함할 수 있다. 몇몇 예시적인 실시예들에서, 캐시들(415 및 416)은 8 또는 16 비트/워드에서 대략 64 데이터 워드이다. 다른 예시적인 실시예들에서, 캐시들은 128 또는 256개의 워드들을 저장한다. 몇몇 실시예들에서, 워드 크기가 증가할 때(예를 들어, 8 비트에서 16 비트로), 저장되는 데이터 워드들의 개수를 유지하기 위해, 뱅크들이 조합된다. 캐시들의 크기 및 액세스된 페이지들의 크기는 응용사례의 필요에 맞게 적응될 수 있다.As shown in FIG. 4 , caches 415 and 416 are coupled to BANK1 410 such that data is passed between BANK1 410 and caches 415 and 416 in array 405 . In some embodiments, each of caches 415 and 416 includes static random access memory (SRAM) memory cells, while in other embodiments, caches 415 and 416 store data Registers, flip-flops, or other storage circuits used to store . Caches 415 and 416 include storage sufficient to accommodate a page of data from BANK1, and include the address of the page, parity or other error correction code (ECC) information for the page, and information associated with the page. It may also include additional storage for storing any inversion or other information. In some exemplary embodiments, caches 415 and 416 are approximately 64 data words at 8 or 16 bits/word. In other exemplary embodiments, caches store 128 or 256 words. In some embodiments, as the word size increases (eg, from 8 bits to 16 bits), the banks are combined to maintain the number of data words stored. The size of caches and the size of accessed pages can be adapted to the needs of the application.

도 4에 나타낸 바와 같이, 어레이(405) 내의 각각의 뱅크는 캐시들 및 갱신 회로의 대응하는 세트를 갖는다. BANK2(420)는 갱신 회로(427)와 함께 캐시들(425 및 426)에 연결되도록 도시되어 있다. 각각의 뱅크에 대해 개별적인 캐시 구조들을 가짐으로써, 상이한 뱅크들 내의 다수의 페이지들이 동시에 열릴 수 있어, 인터리빙된 액세스들이 허용된다. 도 4에 묘사된 실시예가 모든 뱅크에 대해 2개의 캐시들을 도시하고 있지만, 다른 실시예들에서는, 각각의 뱅크에 대해 3개 이상의 캐시들이 포함되어, 2개 이상의 페이지에 대한 후-기록이 나중 시점까지 지연될 수 있다. 이러한 추가적인 캐시들은, 후-기록에 필요한 시간이 활성화 동작들에 필요한 시간보다 훨씬 길거나 액세스 패턴이 다수의 페이지들에 대한 후-기록의 지연으로부터 혜택을 얻는 실시예들에 적합할 수 있다. 아직 다른 실시예들에서, 각각의 뱅크는 판독/기록 동작들을 위해 열려있는 페이지의 저장을 위한 하나의 대응하는 캐시를 갖지만, 제2 캐시는 하나 이상의 다른 뱅크들과 공유하는데, 여기서, 제2 캐시는 오로지 아직 후 기록되지 않은 닫혀있는 페이지에 대응하는 데이터를 저장하기 위해 사용된다. 뱅크들 간에 후-기록 캐시를 공유하는 것은, 모든 뱅크들이 동시에 후-기록 캐시를 사용하고자 요구할 때 충돌들이 일어나지 않도록 보장하기 위해, 그러한 뱅크들에 대한 활성화 동작을 제한할 수 있다는 것에 유의해야 한다.As shown in Figure 4, each bank in array 405 has a corresponding set of caches and update circuitry. BANK2 420 is shown coupled to caches 425 and 426 along with update circuit 427 . By having separate cache structures for each bank, multiple pages in different banks can be open simultaneously, allowing interleaved accesses. While the embodiment depicted in FIG. 4 shows two caches for every bank, in other embodiments three or more caches are included for each bank, so that post-writes of two or more pages are possible at a later point in time. may be delayed up to These additional caches may be suitable for embodiments where the time required for post-write is much greater than the time required for activation operations, or where access patterns benefit from the delay of write-back for large numbers of pages. In yet other embodiments, each bank has one corresponding cache for storage of pages open for read/write operations, but shares the second cache with one or more other banks, wherein the second cache is only used to store data corresponding to closed pages that have not yet been written to. It should be noted that sharing the write-back cache between banks may limit activation operations for those banks, to ensure that collisions do not occur when all banks request to use the write-back cache at the same time.

제어 회로(450)는 어레이(405) 및 회로(414)에 연결되고, 여기서, 회로(414)는 갱신 회로(417)뿐만 아니라 캐시들(415 및 416)을 포함한다. 도 4에 도시된 실시예에서, 제어 회로(450)는 어레이(405) 내의 모든 뱅크들 및 그러한 뱅크들에 대한 모든 캐시 구조들 및 갱신 회로에 연결된다. 이와 같이, 도 4의 실시예에서 제어 회로(450)는 메모리 액세스 동작들에 걸친 전반적인 제어를 제공한다. 다른 실시예들에서는, 각각의 뱅크에 대한 동작들이 개별적으로 제어되도록, 각각의 뱅크에 대해 전용 제어 회로가 제공된다.Control circuit 450 is coupled to array 405 and circuit 414 , where circuit 414 includes update circuit 417 as well as caches 415 and 416 . In the embodiment shown in FIG. 4, control circuitry 450 is coupled to all banks in array 405 and all cache structures and update circuitry for those banks. As such, control circuitry 450 in the FIG. 4 embodiment provides overall control over memory access operations. In other embodiments, a dedicated control circuit is provided for each bank so that operations for each bank are individually controlled.

예를 들어, 상태 기기, 프로세서, 마이크로제어기, 또는 논리 회로를 포함할 수 있는 제어 회로(450)는 메모리 장치에 의해 지원되는 다양한 메모리 액세스 동작들을 위한 데이터의 이동 및 그 데이터 상에서 수행되는 동작들을 제어하도록 구성된다. 제어 회로(450)는 명령들(434) 및 리셋 신호(reset signal)(435)를 수신한다. 다른 실시예들에서, 제어 회로(450)는 메모리 장치 내부로부터의 또는 메모리 장치 외부로부터의 추가적인 신호들을 수신하는데, 이 추가적인 신호들은 제어 회로(450)에 데이터 저장 및 검색 동작들을 용이하게 하기 위한 정보 또는 명령들을 제공한다. 예를 들어, 제어 회로(450)는 어떤 즉각적인 액세스들도 임박해있지 않는다는 것을 표시하는 자가-리프레시 신호(self-refresh signal)를 수신할 수 있고, 이러한 신호가 어서팅된 동안 메모리 장치는 다른 동작들을 수행할 기회를 갖는다. 제어 회로(450)에 의해 수신된 명령들(434)은 메모리 장치에 명령들을 발행하는 외부 메모리 제어기 또는 다른 제어 장치로부터 수신된 명령들을 포함할 수 있다. 예를 들어, 외부 메모리 제어기가 제어 회로(450)에 명령들(434)을 제공할 수 있는데, 여기서, 이러한 명령들은 활성화, 판독, 기록, 사전 충전, 자동 사전 충전을 갖는 판독, 자동 사전 충전을 갖는 기록, 및 리프레시 명령들을 포함한다. 다른 실시예들에서, 메모리 장치의 활동들을 지시하는 명령들은, 몇몇 공유 회로는 각각의 명령에 관련된 활동들 중 몇몇을 수행하고, 제어 회로(450)는 메모리 장치에 의해 수신된 더 높은-수준 명령들로부터 유도된 보다 국부적인 명령들(434)을 수신하도록, 계층적인 방식으로 처리될 수 있다.Control circuitry 450, which may include, for example, a state machine, processor, microcontroller, or logic circuit, controls the movement of data and operations performed on that data for the various memory access operations supported by the memory device. is configured to Control circuit 450 receives commands 434 and a reset signal 435 . In other embodiments, control circuit 450 receives additional signals from within the memory device or from outside the memory device, which additional signals provide information to control circuit 450 to facilitate data storage and retrieval operations. or commands. For example, control circuitry 450 may receive a self-refresh signal indicating that no immediate accesses are imminent, and while this signal is asserted the memory device may perform other operations. have a chance to perform Commands 434 received by control circuitry 450 may include commands received from an external memory controller or other control device that issues commands to the memory device. For example, an external memory controller can provide commands 434 to control circuitry 450, where these commands activate, read, write, pre-charge, read with auto pre-charge, auto pre-charge. with write, and refresh commands. In other embodiments, commands directing the activities of the memory device, some shared circuitry performs some of the activities related to each command, and control circuitry 450 may perform higher-level commands received by the memory device. may be processed in a hierarchical manner, to receive more localized commands 434 derived from .

동작시, 제어 회로(450)는 메모리 장치에 의해 수신된 제1 활성화 명령에 응답하여 어레이 내의 제1 위치로부터의 제1 페이지 데이터를 제1 캐시에 전달하도록 구성된다. 도 4에 대응하는 예에서, 제1 활성화 명령은, 제어 회로(450)가 BANK1(410) 내의 FIRST PAGE(411)에 대응하는 데이터를 캐시(415)로 전달하기 위해 적합한 신호들을 어레이(405) 및 캐시(415)에 제공하게 한다. 몇몇 실시예들에서, FIRST PAGE(411)에 대한 데이터를 캐시(415)에 로딩(loading)하는 것은 FIRST PAGE(411)에 포함된 메모리 셀들에 대해 자가-참조 판독을 수행하는 것을 포함한다. 다른 실시예들에서, 참조 판독 동작들(예를 들어, 여기서 각각의 메모리 셀의 저항이 그것 내에 저장된 데이터를 결정하기 위한 기준에 비교됨) 또는 각각의 메모리 셀에 저장된 데이터를 알아내기 위한 다른 기술들이 FIRST PAGE(411)에 대한 데이터를 캐시(415)에 로딩하기 위해 사용된다.In operation, the control circuit 450 is configured to forward a first page of data from a first location in the array to the first cache in response to a first activate command received by the memory device. In the example corresponding to FIG. 4 , the first activation command causes the control circuit 450 to send the appropriate signals to the array 405 to transfer the data corresponding to the FIRST PAGE 411 in BANK1 410 to the cache 415 . and cache 415. In some embodiments, loading data for FIRST PAGE 411 into cache 415 includes performing a self-referencing read to memory cells included in FIRST PAGE 411 . In other embodiments, reference read operations (eg, where the resistance of each memory cell is compared to a criterion for determining the data stored therein) or other techniques to ascertain the data stored in each memory cell Used to load data for FIRST PAGE 411 into cache 415.

FIRST PAGE(411)에 대한 데이터가 캐시(415)에 로딩되면, FIRST PAGE(411)는 "열였다"고 고려되고, FIRST PAGE(411)에 대한 판독 및 기록 동작들이 캐시(415) 내의 데이터를 판독하거나 캐시(415) 내에 데이터를 오버라이팅(overwriting)함으로써 일어날 수 있다. 각각의 판독 또는 기록 명령은 FIRST PAGE(411) 내의 특정 워드들 또는 워드 세트들이 액세스되게 하는 주소 정보를 동반한다. FIRST PAGE(411)에 대한 모든 판독 및 기록 액세스들이 완료되면, 기록 동작들에 의해 추가된 새로운 데이터를 포함할 수 있는 FIRST PAGE(411)에 대한 데이터는 캐시(415)에서 캐시(416)로 이동된다. 몇몇 실시예들에서, FIRST PAGE(411)에 대한 판독/기록 동작들이 완료되었다는 표시는 메모리 장치에 의한 사전 충전 명령의 수신에 기초한다. 다른 실시예들에서는, 데이터가 주요 캐시로 언급된 수 있는 캐시(415)에, BANK1(410)에 대한 후속하는 활성화 동작이 메모리 장치에 의해 수신될 때까지 유지된다. 추가적으로 상세히 후술된 바와 같이, 몇몇 실시예들에서는, 캐시(415) 내의 데이터가 캐시(416)로 이동하거나 어레이(405)의 BANK1으로 직접 돌아가게 하기 위해 추가적인 명령들 또는 신호들이 사용된다.If the data for FIRST PAGE 411 is loaded into cache 415, then FIRST PAGE 411 is considered "hot" and read and write operations to FIRST PAGE 411 will cause the data in cache 415 to be read. This can happen by reading or overwriting data in the cache 415 . Each read or write command is accompanied by address information that allows specific words or sets of words in the FIRST PAGE 411 to be accessed. When all read and write accesses to FIRST PAGE 411 are complete, the data for FIRST PAGE 411, which may contain new data added by write operations, is moved from cache 415 to cache 416. do. In some embodiments, the indication that read/write operations to FIRST PAGE 411 are complete is based on receipt of a pre-charge command by the memory device. In other embodiments, the data is held in cache 415 , which may be referred to as the primary cache, until a subsequent activation operation on BANK1 410 is received by the memory device. As described in additional detail below, in some embodiments additional instructions or signals are used to cause data in cache 415 to move to cache 416 or directly back to BANK1 of array 405 .

제1 페이지 데이터를 제1 캐시(415)에서 제2 캐시(416)로 전달한 후, 제1 캐시(415)는 새로운 페이지에 대응하는 데이터를 수신할 수 있게 된다. 따라서, BANK1(410)의 SECOND PAGE(412)에 대응하는 제2 활성화 명령에 응답하여, 제어 회로(450)는, SECOND PAGE(412)에 대응하는 제2 페이지 데이터가 어레이(405)의 BANK1(410) 내의 SECOND PAGE(412)에 대응하는 위치에서 캐시(415)로 전달되도록 적절한 제어 신호들을 발행한다. 따라서 SECOND PAGE(412)는 "열리고" 판독 및 기록 동작들이 가능하게 된다. SECOND PAGE(412)에 대한 활성화 동작이 완료되거나 BANK1에 대한 후-기록 동작을 간섭하지 않도록 충분히 멀리 진행되었으면, 캐시(416)에 저장된 FIRST PAGE(411)에 대응하는 제1 페이지 데이터는 어레이(405)의 BANK1 내의 적절한 위치에 후기록될 수 있다. 전술된 바와 같이, FIRST PAGE(411)에 대한 주소가 캐시(416) 내에 저장된 데이터와 함께 포함될 수 있으므로, 제1 페이지 데이터가 어레이(405) 내에 기록될 위치도 알려지게 된다. 다른 실시예들에서는, 패리티 정보 또는 반전 상태와 같은 임의의 다른 적절한 페이지-특정 정보와 함께 각각의 페이지에 대한 주소 정보를 저장하기 위해 개별적인 레지스터 또는 저장 위치가 사용될 수 있다.After transferring the first page data from the first cache 415 to the second cache 416, the first cache 415 can receive data corresponding to a new page. Accordingly, in response to the second activation command corresponding to the SECOND PAGE 412 of the BANK1 410, the control circuit 450 generates the second page data corresponding to the SECOND PAGE 412 of the array 405 BANK1 ( 410) issues appropriate control signals to be delivered to the cache 415 at a location corresponding to the SECOND PAGE 412. SECOND PAGE 412 is thus “open” and read and write operations are enabled. When the activation operation for SECOND PAGE 412 is complete or has gone far enough so as not to interfere with the post-write operation for BANK1, the first page data corresponding to FIRST PAGE 411 stored in cache 416 is stored in array 405. ) can be back-recorded at an appropriate location in BANK1. As described above, since the address for the FIRST PAGE 411 can be included with the data stored in the cache 416, the location where the first page data will be written into the array 405 is also known. In other embodiments, a separate register or storage location may be used to store address information for each page along with any other suitable page-specific information such as parity information or inversion status.

몇몇 실시예들에서는 데이터 오류들을 방지하거나 줄이기 위해 패리티 정보 또는 다른 형태의 ECC가 사용된다. 패리티 계산은 본 기술에서 잘 알려져있으며, 뱅크 내의 페이지에 대한 패리티 비트들의 세트를 페이지 데이터와 함께 저장하는 것은 데이터 유효성을 확인하기 위한 패리티 검사를 허용하고, 몇몇 예시들에서는 데이터 오류들의 정정을 허용할 수 있다. 도 4에 관련하여 전술된 예에서, FIRST PAGE(411)에 대응하는 제1 페이지 데이터가 어레이(405)에 후 기록되면, 그 데이터는 패리티 정보를 포함할 수 있다. FIRST PAGE(411)에 포함된 데이터가 FIRST PAGE(411)가 열려있는 동안 수행되는 기록 동작들에 의해 수정될 수 있으므로, 데이터가 어레이(405)에 후기록되기 전에 새로운 패리티 계산들이 수행될 필요가 있다. 몇몇 실시예들에서는, 캐시(415) 내에 데이터와 함께 저장된 패리티 정보가 항상 최신이기 위해 페이지에 대한 각각의 기록 동작이 완료될 때마다 패리티 계산들이 수행된다. 이러한 실시예들에서, 정확한 패리티 정보는 나중에 후기록하기 전에 캐시(415)에서 캐시(416)로 데이터와 함께 편이될 수 있다. 그러나, 이러한 패리티 계산들을 실시간으로 수행하는 것은 시간 및 자원 면에서 비용이 많이 들 수 있다(예를 들어, 여분의 전력 소비가 필요할 것임). 이와 같이, FIRST PAGE(411)에 대한 데이터가 캐시(416)로 이동할 때 FIRST PAGE(411)에 대한 기록 동작들이 더 이상 일어나지 않을 것임이 알려지므로, FIRST PAGE(411)에 대한 패리티 계산들은 캐시(415)에서 캐시(416)로의 데이터 이동과 함께 수행될 수 있다. 도 4에서, 패리티 계산기(418)는 갱신 회로(417) 내에 포함되고, 여기서, 패리티 정보는 데이터가 캐시(415)에서 캐시(416)로 전달될 때 갱신된다.In some embodiments, parity information or other form of ECC is used to prevent or reduce data errors. Parity computation is well known in the art, and storing a set of parity bits for a page in a bank with the page data will allow a parity check to verify data validity and, in some instances, the correction of data errors. can In the example described above with respect to FIG. 4, if the first page data corresponding to the FIRST PAGE 411 is later written to the array 405, the data may include parity information. Since the data contained in the FIRST PAGE 411 can be modified by write operations performed while the FIRST PAGE 411 is open, new parity calculations need not be performed before the data is written back to the array 405. there is. In some embodiments, parity calculations are performed each time each write operation to a page completes so that the parity information stored with the data in cache 415 is always up-to-date. In such embodiments, the correct parity information may later be shifted along with the data from cache 415 to cache 416 prior to writing back. However, performing these parity calculations in real time can be expensive in terms of time and resources (eg, will require extra power consumption). As such, since it is known that write operations to FIRST PAGE 411 will no longer occur when the data for FIRST PAGE 411 is moved to cache 416, parity calculations for FIRST PAGE 411 are performed in cache ( 415 to the cache 416. In FIG. 4 , parity calculator 418 is included within update circuitry 417 , where parity information is updated as data is passed from cache 415 to cache 416 .

선택된 페이지 내의 모든 메모리 셀들을 제1 상태로 기록하는 파괴적인 자가-참조 판독 동작들은 활성화 동작의 종료시에 모든 셀들을 동일한 상태로 남겨두므로, 페이지가 후기록되기 전에 페이지 내의 다수의 비트들이 제1 상태(예를 들어, 이진수 "0")인지 또는 제2 상태(예를 들어, 이진수 "1")인지를 결정하는 것은 전력 소비를 줄이도록 도울 수 있다. 예를 들어, 활성화 동작이 페이지 내의 모든 메모리 셀들을 이진수 "0"에 대응하는 제1 상태로 남겨두면, 그리고 데이터가 후기록될 준비가 되어 있을 때, 후기록될 페이지 내의 다수의 비트들이 "0"이면, 메모리 셀의 절반 미만이 그러한 셀들 내의 자유 층을 이진수 "1"에 대응하는 상태로 변경시키는데 사용되는 하나 이상의 기록 펄스들을 필요로 할 것이다. 그러나, 페이지 내의 다수의 비트들이 "1"이면, 메모리 셀의 절반 이상이 그들의 상태를 변경시키도록 기록되어야만 할 것이다. 이러한 예시에서는, 이전에 "0"을 나타내던 상태가 이제 "1"을 나타내도록 페이지에 대한 모든 비트들을 반전시키는 것이 유용할 수 있다. 다수가 그 상태에 대응하지 않을 때 모든 비트들을 반전시킴으로써, 메모리 셀들은 활성화가 완료될 때로 남아있게 되고, 후기록은 페이지 내의 메모리 셀들 중 절반 이하에 대한 기록을 항상 수반할 것이다.Subversive self-referencing read operations that write all memory cells in a selected page to the first state leave all cells in the same state at the end of the activation operation, so that a number of bits in the page are written back to the first state before the page is written back. State (eg, binary “0”) or a second state (eg, binary “1”) may help reduce power consumption. For example, if an activation operation leaves all memory cells in a page in a first state corresponding to binary "0", and when data is ready to be written back, a number of bits in the page to be backwritten will be "0". ", then less than half of the memory cells will require one or more write pulses used to change the free layer within those cells to a state corresponding to the binary "1". However, if a number of bits in the page are "1", more than half of the memory cells will have to be written to change their state. In this example, it may be useful to invert all the bits for the page so that a state that previously represented a "0" now represents a "1". By inverting all the bits when the majority does not correspond to that state, the memory cells remain as activated when activation is complete, and write back will always involve writing to less than half of the memory cells in the page.

다수 검출(majority detection) 이후의 이러한 반전을 지원하기 위해, 각각의 페이지에 대해 반전 상태 비트가 유지되어, 그 페이지에 대한 어레이(405) 내에 저장된 데이터가 반전되었는지 아닌지를 표시한다. 추가적으로, 페이지가 열려있었던 동안 페이지 내의 데이터가 수정되었으면, 페이지의 후-기록 이전에 각각의 페이지에 대해 다수 검출이 일어날 필요가 있다. 이와 같이, 다수 검출기(419)가 갱신 회로(417) 내에 포함된다. 패리티 계산에 대한 경우와 같이, 다수 검출은 각각의 기록 동작과 함께 실시간으로 수행될 수 있지만, 페이지가 닫힐 처리 중에 있을 때, 다수 검술 및 반전 비트의 설정을 수행하는 것이 더욱 효율적일 것이다. 따라서, 몇몇 실시예들에서, 다수 검출은, 페이지에 대한 데이터가 제1 캐시(415)에서 제2 캐시(416)로 전달될 때 수행된다.To support this inversion after majority detection, an inversion status bit is maintained for each page to indicate whether the data stored in array 405 for that page has been inverted or not. Additionally, if data within a page has been modified while the page was open, multiple detections need to occur for each page prior to post-writing of the page. As such, multiple detectors 419 are included within update circuit 417 . As is the case for parity calculation, majority detection can be performed in real time with each write operation, but it will be more efficient to perform the majority detection and setting of the invert bit when the page is in the process of being closed. Thus, in some embodiments, majority detection is performed when data for a page is passed from the first cache 415 to the second cache 416 .

다양한 위치들 간의 데이터 이동 및 패리티 계산, 다수 검출, 등에 연관된 단계들의 수행에 연관된 모든 내부 동작들을 용이하게 하기 위해, 제어 회로(450)는, 올바른 동작들이 올바른 순서로 올바른 시간에 수행되도록 메모리 장치 상의 회로에 지시하는 복수의 타이밍 신호들을 생성한다. 몇몇 실시예들에서, 그러한 타이밍 신호들은 지연 회로(455)에 의해 생성되는데, 지연 회로(455)는 제어 회로(450) 내에 포함된 것으로 도시되어 있다. 몇몇 실시예들에서, 지연 회로는 메모리 어레이(405) 내의 데이터에 액세스할 때 일어나는 다양한 기능들에 연관된 타이밍 신호들을 생성하는데 사용되는 복수의 지연 블록들 또는 회로들을 포함한다. 예를 들어, BANK1 내의 이전 페이지가 아직 후기록되지 않은 상황에서 BANK1에 대한 활성화 동작에 응답하여, 캐시(415)로부터의 데이터가 캐시(416)로 이동하고, 임의의 패리티 계산 및 다수 검출이 수행되고, 열릴 페이지가 캐시(415)로 로딩되었다가, 활성화가 완료되면, 캐시(416) 내의 데이터가 어레이(405)로 후기록되도록 하기 위한 복수의 타이밍 신호들이 생성된다. 따라서, 활성화를 표시하는 신호의 단일 천이(transition)가, 적절한 동작들이 적절한 시간에 일어나도록 지연 회로(455)에 의해 시간적으로 적절하게 이격된 다수의 신호 천이들을 트리거링(triggering)할 수 있다. 다양한 타이밍 신호들 사이의 간격은, 상이한 동작들이 수행되는 상대적인 시간이, 예를 들어, 프로그래밍가능 레지스터 내에 값들을 저장시킴으로써 조정될 수 있도록 프로그래밍가능할 수 있다.To facilitate all internal operations involved in moving data between various locations and performing steps associated with parity calculation, majority detection, etc., control circuitry 450 is configured on the memory device to ensure that the correct operations are performed in the correct order and at the correct time. Generates a plurality of timing signals that instruct the circuit. In some embodiments, such timing signals are generated by delay circuit 455, which is shown as being included in control circuit 450. In some embodiments, the delay circuit includes a plurality of delay blocks or circuits used to generate timing signals associated with various functions that occur when data within memory array 405 is accessed. For example, in response to an activation operation on BANK1 in a situation where a previous page in BANK1 has not yet been written back, data from cache 415 is moved to cache 416, and any parity calculations and majority detection are performed. When the page to be opened is loaded into the cache 415 and activation is completed, a plurality of timing signals are generated to cause the data in the cache 416 to be written back to the array 405 . Thus, a single transition in the signal indicating activation may trigger multiple signal transitions spaced appropriately in time by delay circuit 455 so that appropriate actions occur at appropriate times. Intervals between the various timing signals can be programmable such that the relative times at which different operations are performed can be adjusted, for example by storing values in programmable registers.

몇몇 예시들에서, 동일한 뱅크 내의 동일한 페이지에 대응하는 순차적인 활성화들이 수신될 수 있다는 것을 유의하자. 예를 들어, FIRST PAGE(411)가 열리고, FIRST PAGE(411) 내의 데이터에 대한 다수의 판독/기록 동작들이 수행된 후, FIRST PAGE(411)가 닫혀야한다고 표시하는 사전 충전 명령이 수신될 수 있다. 몇몇 실시예들에서는, 사전 충전 명령의 수신이 데이터의 어레이로의 후기록를 초래하지 않는데, 이는 제어 회로(450)가 다음 활성화 명령이 그렇게 하기를 기다리고 있기 때문이다. 이와 같이, FIRST PAGE(411)을 다시-열도록 메모리에게 지시하는, FIRST PAGE(411)에 대응하는 새로운 활성화 동작이 수신되면, FIRST PAGE(411)에 대한 데이터가 어레이(405)의 BANK1(410) 내에 아직 반환되지 않았기 때문에, 어레이(405)에서 캐시(415)로의 데이터의 전달은 FIRST PAGE(411)에 대한 데이터를 캐시(415) 내에 위치시키지 않을 것이다. 몇몇 실시예들에서, FIRST PAGE(411)에 대한 재-활성화 명령이 수신되면, FIRST PAGE(411)에 대한 데이터는 캐시(415) 내에 여전히 있는다. 이와 같이, 몇몇 실시예들에서, 제어 회로(450)는 활성화 명령을 동반하는 주소를 마지막으로 열린 페이지의 주소와 비교하도록 구성된 페이지 주소 비교기를 포함한다. 비교가 열릴 새로운 페이지가 이전 페이지와 동일하다고 표시하고, 이전에 열렸던 페이지에 대한 데이터가 여전히 주요 캐시(415) 내에 있으면, 제어 회로(450)는 아무것도 하지 않을 것이다. 열릴 새로운 페이지가 이전 페이지와 동일하고 그 페이지에 대한 데이터가 이미 캐시(416)로 전달되었으면, 그 데이터는 캐시(415)로 바로 다시 전달되거나, 데이터가 어레이로부터 또다시 검색되고 캐시(415)로 로딩되기 전에 어레이(405)에 후기록될 수 있다.Note that in some instances, sequential activations corresponding to the same page in the same bank may be received. For example, after the FIRST PAGE 411 is opened, and a number of read/write operations to data in the FIRST PAGE 411 have been performed, a pre-charge command may be received indicating that the FIRST PAGE 411 should be closed. there is. In some embodiments, receipt of a pre-charge command does not result in writing data back to the array, since control circuit 450 is waiting for the next activation command to do so. Thus, when a new activation operation corresponding to FIRST PAGE 411 is received, which instructs the memory to re-open FIRST PAGE 411, the data for FIRST PAGE 411 is stored in BANK1 410 of array 405. ), the transfer of data from the array 405 to the cache 415 will not place the data for the FIRST PAGE 411 into the cache 415. In some embodiments, when a re-activation command for FIRST PAGE 411 is received, the data for FIRST PAGE 411 is still in cache 415 . As such, in some embodiments, control circuit 450 includes a page address comparator configured to compare the address accompanying the activation command with the address of the last opened page. If the comparison indicates that the new page to be opened is identical to the previous page, and the data for the previously opened page is still in main cache 415, control circuitry 450 will do nothing. If the new page to be opened is the same as the previous page and the data for that page has already been delivered to cache 416, then the data is delivered directly back to cache 415, or the data is retrieved from the array again and returned to cache 415. It can be written back to the array 405 before being loaded.

이전 페이지의 지연 후-기록에 대한 또다른 잠재적인 문제는, 데이터의 이전 페이지가 사전 충전 명령에 응답하여 후기록되지 않고, 대신 결코 오지 않을 또다른 활성화 명령을 기다리고 있을 때 일어난다. 예를 들어, 전원이 꺼지기 전의 뱅크에의 마지막 데이터 액세스들은 캐시(415) 또는 캐시(416) 내에 잔류하는 액세스된 페이지에 대한 데이터가 다음 활성화를 기다리게 할 수 있다. 이러한 활성화가 없으면, 어레이(405)에 대한 후-기록은 보통 개시되지 않을 것이다. 이와 같이, 데이터가 어레이(405)에 후기록되지 않으면서 전력-차단이 일어날 수 있다. 캐시 구조들이 휘발성 저장소이면, 데이터는 손실될 수 있다. Another potential problem with delayed post-writing of the previous page occurs when the previous page of data is not being written back in response to a pre-charge command, but instead is waiting for another activation command that will never come. For example, the last data accesses to the bank before power down can cause data for the accessed page to remain in cache 415 or cache 416 waiting for the next activation. Without this activation, post-write to the array 405 would normally not be initiated. As such, a power-down can occur without data being written back to the array 405 . If cache structures are volatile storage, data may be lost.

몇몇 실시예들에서, 이 문제는 각각의 뱅크에 대한 하나 또는 둘 모두의 캐시들을 위해 비-휘발성 저장소를 사용함으로써 해결된다. 다른 실시예들에서는, 새로운 활성화 명령이 수신되지 않을 때, 메모리 장치가 주기적으로 어레이에 후-기록을 수행할 수 있다. 몇몇 실시예들에서는, 메모리 장치에 의해 수신된 리프레시 명령 또는 리프레시 신호가, 메모리 제어기가 당분간 활성화를 발행하지 않을 것이라는 것을 표시하고, 메모리는 "리프레시" 동작을 수행할 기회를 갖는다. 이러한 리프레시 동작들은 DRAM들 내에서, 메모리 셀들의 어레이 내의 하나 이상의 행들 내의 커패시터들(capacitors) 상에 전하를 보충하기 위해 사용된다. 리프레시를 수행하기 위해, DRAM 내의 모든 뱅크들은 전형적으로 닫힌다. 이와 같이, MRAM이 리프레시 동작들을 수행할 필요가 없더라도, 그것은 모든 뱅크들이 닫혀야하고 현재 캐시들 내에 유지되어있는 페이지들에 대응하는 데이터가 어레이에 후기록되야 한다는 표시로서 리프레시 명령 또는 신호를 취할 수 있다. 다른 실시예들에서, 리프레시 명령/신호는 많은 뱅크들 중 하나에 후-기록을 개시하기 위해 사용될 수 있는데, 여기서, 메모리 장치는 어느 뱅크들이 후-기록되었는지를 추적하여, 어느 뱅크에서 다음 리프레시가 후-기록을 트리거링할지 알게 된다.In some embodiments, this problem is addressed by using non-volatile storage for one or both caches for each bank. In other embodiments, the memory device may periodically post-write to the array when no new activation command is received. In some embodiments, a refresh command or refresh signal received by the memory device indicates that the memory controller will not issue an activation for the time being, and the memory has an opportunity to perform a “refresh” operation. These refresh operations are used within DRAMs to replenish charge on capacitors within one or more rows within an array of memory cells. To perform a refresh, all banks in DRAM are typically closed. As such, even if the MRAM does not need to perform refresh operations, it can take a refresh command or signal as an indication that all banks should be closed and data corresponding to pages currently held in caches should be written back to the array. there is. In other embodiments, a refresh command/signal can be used to initiate a post-write to one of many banks, where the memory device keeps track of which banks have been post-written to which bank the next refresh is. You know if you want to trigger a post-record.

다른 실시예들에서, 리셋 신호(435)가 어레이에 대한 후-기록들을 개시하기 위한 트리거로서 사용될 수 있다. 메모리 내의 데이터가 비-휘발성이도록 보장하기 위해 리셋 신호를 어서팅할 필요가 있다는 것을 사용자들에게 특정함으로써, 사용자는 전력 차단과 같은 이벤트들 이전에 리셋 신호를 어서팅하여, 마지막으로 열린 페이지에 대한 데이터가, 예를 들어, (가능한 패리티 및 반전 계산들과 함께) 캐시(415)에서 캐시(416)로 전달되고 그 후 메모리 어레이(405)에 후기록되게 할 수 있다.In other embodiments, the reset signal 435 can be used as a trigger to initiate post-writes to the array. By specifying to users that they need to assert the reset signal to ensure that the data in memory is non-volatile, the user can assert the reset signal prior to events such as power down to ensure that the last opened page is Data may be passed from cache 415 to cache 416 (along with possible parity and inversion calculations) and then written back to memory array 405, for example.

아직 다른 실시예들에서는, 새로운 동작 코드가 구체적으로 또다른 활성화를 필요로 하지 않으면서 후-기록이 일어나게 하기 위해 이용될 수 있다. 예를 들어, "STORE" 동작 코드가 메모리 제어기에 의해 메모리에 송신될 수 있는데, 여기서, STORE 동작 코드는 MRAM이 후-기록을 기다리고 있는 임의의 행들을 후-기록하게 한다. 이러한 STORE 동작 코드는 그것이 단지 하나의 뱅크에 대응하는 데이터에게 어레이에 후기록되도록 지시한다는 점에서 뱅크-특정이거나(STORE-BANKx, 여기서 x = 뱅크 숫자)(뱅크들의 하부세트에 대한 데이터가 후기록되게 할 수 있음), 모든 뱅크들에 대한 데이터가 후기록되게(STORE-ALL) 할 수 있다. 이러한 새로운 동작 코드(들)는 메모리 장치 상의 임의의 휘발성 데이터를 클리닝 업(cleaning up)하는데 사용되어, 그 데이터가 어레이(405)의 비-휘발성 저장소 내에 저장되게 하여, 전력이 제거되더라도 데이터가 손실되지 않게 한다.In yet other embodiments, the new action code may be specifically used to cause post-write to occur without requiring another activation. For example, a “STORE” opcode may be sent to memory by the memory controller, where the STORE opcode causes the MRAM to post-write any rows awaiting post-write. This STORE opcode is either bank-specific (STORE-BANKx, where x = number of banks) in that it directs the data corresponding to only one bank to be written back to the array (the data for a subset of banks is written back). ), and the data for all banks can be stored (STORE-ALL). These new opcode(s) are used to clean up any volatile data on the memory device, causing that data to be stored within non-volatile storage of the array 405, so that the data is lost even if power is removed. don't let it happen

대용량 페이지(페이지 당 많은 비트들) 또는 다수의 뱅크들에 대한 후-기록 동작들이 일어날 때, 후-기록 동작들에 연관된 전력 및 전류 스파이크들을 감소시키기 위해, 메모리 셀들의 하부세트들로 후-기록 동작들을 스태거링(staggering)하는 것이 바람직할 수 있다. 이러한 스태거링에서는, 메모리 셀들의 부분들이 상이한 시간들에 후기록되어, 후기록에 연관된 전류 흐름(current draw) 및 전력 소비가 시간적으로 분산된다. 따라서, 후기록될 제1 데이터 부분은 제2 데이터 부분과 상이한 시간에 기록된다. 예를 들어, 대용량 페이지에 대한 후-기록시에, 페이지 내의 비트들의 절반이 먼저 후기록된 후, 비트들의 다른 절반이 나중에 후기록된다. STORE-ALL 명령 또는 동작 코드에 대응하는 또다른 예에서, 뱅크의 절반에 대한 데이터가 먼저 후기록된 후에, 뱅크들의 다른 절반에 대한 데이터가 후기록된다. 또다른 STORE-ALL 예에서는, 각각의 뱅크들 내의 비트들 중 절반이 먼저 후기록된 후에, 각각의 뱅크 내의 비트들 중 다른 절반이 후기록된다. 아직 또다른 STORE-ALL 예에서는, 하나의 뱅크 또는 하나의 뱅크 그룹이 또다른 뱅크 또는 뱅크 그룹 내에서의 후-기록 동작(들)의 완료를 기다리도록, 후-기록 동작들이 나열된다(serialized). 후-기록 동작들의 이러한 스태거링은 많은 단계들로 분할될 수 있고, 프로그래밍되도록 설정될 수 있고, 뱅크-특정, 메모리 셀-특정, 또는 둘 모두일 수 있다.When post-write operations to a large page (many bits per page) or multiple banks occur, write back to subsets of memory cells to reduce power and current spikes associated with the write-back operations. It may be desirable to stagger the actions. In such staggering, portions of memory cells are written back at different times, so that the current draw and power consumption associated with writing back is spread out over time. Thus, the first data portion to be written back is written at a different time than the second data portion. For example, when writing back to a large page, half of the bits in the page are written back first, then the other half of the bits are written back later. In another example corresponding to the STORE-ALL command or action code, the data for half of the banks is first backwritten, then the data for the other half of the banks is backwritten. In another STORE-ALL example, half of the bits in each bank are first backwritten, then the other half of bits in each bank are backwritten. In yet another STORE-ALL example, post-write operations are serialized such that one bank or group of banks waits for completion of the post-write operation(s) within another bank or group of banks. . This staggering of write-back operations can be divided into many steps, can be set to be programmed, and can be bank-specific, memory cell-specific, or both.

지연 회로(455)가 후-기록 동작들을 수행하기 위해 사용되는 타이밍 신호들을 생성하는데 사용되고 이러한 신호들이 트리거 신호에 응답하여 생성된 지연-기반 신호들이면, 후-기록 동작들은 클럭 신호(clock signal)를 필요로 하지 않으면서 달성될 수 있다. 이것은, 시스템이 후-기록이 일어나야 한다는 표시(예를 들어, 리프레시, 자가-리프레시, 리셋, 또는 STORE-명령)를 발행한 후, 데이터가 후기록되지 않았는지에 대한 염려 없이 클럭을 턴 오프(turn off)할 수 있게 한다. 후-기록들이 스태거링되면, 지연 회로는 몇몇 후-기록 동작들이 다른 것들보다 먼저 일어나도록 보장하기 위해 피드백 또는 데이지-체인(daisy-chain) 다수 지연 회로들을 사용할 수 있다.If the delay circuit 455 is used to generate the timing signals used to perform post-write operations and these signals are delay-based signals generated in response to a trigger signal, the post-write operations will generate a clock signal. It can be achieved without the need for it. This means that after the system issues an indication that post-write should occur (e.g., a refresh, self-refresh, reset, or STORE-command), the clock is turned off without concern that data has not been written back. off) to be able to If post-writes are staggered, the delay circuit can use feedback or daisy-chain multiple delay circuits to ensure that some post-write operations occur before others.

도 4에 관련해서는 새롭게-활성화된 페이지들을 주요 캐시(415)에 전될하고 그 데이터를 후기록 전에 제2의 후-기록 캐시(416)로 이동시키는 것이 전술되었지만, 다른 실시예들에서는, 데이터를 캐시들 사이에서 이동시키기 보다는, 캐시들의 역할들이 변할 수 있다. 예를 들어, 제1 활성화는 데이터의 제1 페이지를 제1 캐시에 로딩하고, 제2 활성화는, 데이터의 제1 페이지를 제1 캐시로부터 어레이로 후기록하기 전에 데이터의 제2 페이지를 제2 캐시로 로딩할 수 있다. 제1 페이지에 대한 판독들 및 기록들은 제1 캐시를 사용하여 일어날 것이고, 제2 페이지에 대한 판독들 및 기록들은 제2 캐시를 사용할 것이다.While it has been described above with respect to Figure 4 that the newly-activated pages are transferred to the primary cache 415 and their data is moved to the secondary post-write cache 416 before writing back, in other embodiments, the data Rather than moving between caches, the roles of caches can change. For example, a first activation loads a first page of data into a first cache, and a second activation loads a second page of data into a second cache before writing back the first page of data from the first cache to the array. Can be loaded into cache. Reads and writes to the first page will occur using the first cache, and reads and writes to the second page will use the second cache.

뱅크 내의 모든 페이지들이 어레이(405)에 후-기록된 후에는, 다음 활성화 동작이 캐시(415) 내에 저장된 데이터를 후기록하지 않아야 한다. 이와 같이, 플래그 또는 하나 이상의 상태 비트들(470 및 471)이 뱅크가 열려있는 및/또는 후-기록을 기다리고 있는 페이지를 갖는지 여부를 표시하기 위해 각각의 뱅크에 대하여 사용될 수 있다. 따라서, 장치가 우선 켜지면, 플래그가 클리어링되거나 상태 비트들이 갱신되어, 어떠한 페이지들도 열려있지 않고 후-기록을 기다리고 있지 않다는 것을 표시하게 된다. 제1 페이지가 열릴 때, 플래그 또는 상태 비트들(470)은 후속하는 활성화가 제1 페이지 데이터의 후-기록을 트리거링하도록 설정된다. STORE 또는 후-기록 표시가 수신되면, 데이터가 후기록되고 플래그 또는 상태 비트들(470)이 클리어링된다. 몇몇 실시예들에서는, 표준-준수 메모리 장치들(standard-compliant memory devices) 내에 이미 존재하는 상태 레지스터들이 이러한 플래그들 또는 상태 비트들을 저장하기 위해 사용될 수 있다.After all pages in the bank have been back-written to the array 405, the next activation operation should not backwrite the data stored in the cache 415. As such, a flag or one or more status bits 470 and 471 may be used for each bank to indicate whether the bank has pages open and/or awaiting post-write. Thus, when the device is first turned on, a flag is cleared or status bits are updated to indicate that no pages are open and are not waiting for post-write. When the first page is opened, flag or status bits 470 are set such that subsequent activation triggers post-writing of the first page data. If a STORE or post-write indication is received, the data is written back and the flag or status bits 470 are cleared. In some embodiments, status registers that already exist in standard-compliant memory devices may be used to store these flags or status bits.

몇몇 실시예들에서, 뱅크가 열려있는지 또는 후기록되기를 기다리고 있는 데이터를 갖는지 여부에 연관된 플래그들 또는 상태 비트들(470)은 테스팅, 번-인(burn-in), 또는 정상 동작과 상이한 방식으로 메모리 장치를 실행시키도록 설계된 다른 동작들을 지원하도록 조작될 수 있다. 예를 들어, 몇몇 테스팅 동작들은 뱅크 내에 저장된 실제 데이터에 대해 염려하지 않으면서 뱅크 내의 동일한 페이지에 계속 액세스하길 원한다. 그 뱅크에 대한 열림 표시를 계속 클리어링하게 유지하고 활성화된 페이지에 대한 주소를 활성화된 마지막 페이지와 비교하지 않음으로써, 메모리 장치는 이미 열려있는 페이지를 열고자하는 시도에 응답하여 아무것도 하지 않기보다는 원하는 대로 실행될 수 있다.In some embodiments, flags or status bits 470 associated with whether a bank is open or has data waiting to be written back may be checked for testing, burn-in, or in a manner different from normal operation. It may be manipulated to support other operations designed to execute the memory device. For example, some testing operations want to keep accessing the same page in a bank without worrying about the actual data stored in the bank. By keeping the open indication for that bank clear and not comparing the address of the active page to the last active page, the memory device responds to an attempt to open a page that is already open, doing whatever it wants rather than doing nothing. can be executed

아직 다른 실시예들에서, 메모리에 의해 수신되거나 전달된 특정 신호들의 타이밍을 최적화하기 위해, 기동 또는 구성 테스팅이 수행된다. 예를 들어, 메모리 제어기에서 메모리로 신호를 플라이팅(flighting)할 시간을 설명하기 위해, DDR SDRAM 프로토콜 내의 데이터 스트로브(data strobe; DQS)가 종종 각각의 메모리에 대하여 캘리브레이션된다. 이러한 캘리브레이션은 데이터 스트로브를 캘리브레이션하기 위해 각각의 메모리에 다수의 판독/기록 동작들을 사용한다. MRAM들과 같은 비-휘발성 메모리들의 경우, 비-휘발성 메모리 셀들의 어레이 내에 저장된 데이터는 전원이 꺼진 후에도 안정적이라고 가정된다. 이와 같이, 전원이 복구될 때 데이터 스트로브들 또는 다른 신호들의 타이밍을 최적화하기 위해 캘리브레이션 절차들이 수행되면, 이러한 캘리브레이션에 연관된 판독/기록 동작들은 비-휘발성 데이터를 부주의하게 오버라이팅할 수 있다. 몇몇 경우들에서, 이것은 캘리브레이션 절차들이 원래, 메모리 어레이 내의 데이터가 전원이 켜질 때 유효하지 않거나 의미가 없다고 예상되는 DRAM 같은 휘발성 메모리를 위해 개발되었기 때문이다. 이와 같이, 여기에 설명된 지연 후-기록 기술들을 사용하는 메모리들 상에서 DDR SDRAM 인터페이스와 같은 인터페이스들에 연관하여 캘리브레이션 절차들을 지원하기 위해, 어레이(405) 내에 저장된 비-휘발성 데이터를 방해하지 않으면서 이러한 캘리브레이션이 일어날 수 있도록 보장하기 위해, 추가적인 단계들이 MRAM들과 같은 비-휘발성 메모리들에서 취해질 수 있다. In yet other embodiments, startup or configuration testing is performed to optimize the timing of certain signals received or passed by the memory. For example, a data strobe (DQS) within the DDR SDRAM protocol is often calibrated for each memory to account for the time to fly a signal from the memory controller to the memory. This calibration uses multiple read/write operations to each memory to calibrate the data strobe. In the case of non-volatile memories such as MRAMs, data stored in an array of non-volatile memory cells is assumed to be stable after power is turned off. As such, if calibration procedures are performed to optimize the timing of data strobes or other signals when power is restored, read/write operations associated with such calibration may inadvertently overwrite non-volatile data. In some cases, this is because calibration procedures were originally developed for volatile memory, such as DRAM, where data in a memory array is expected to be invalid or meaningless when powered on. As such, to support calibration procedures in connection with interfaces, such as a DDR SDRAM interface, on memories using the delay-post-write techniques described herein, without disturbing the non-volatile data stored within the array 405. To ensure that this calibration can occur, additional steps can be taken in non-volatile memories such as MRAMs.

2016년 3월 1일자 특허된 미국 특허 제9,275,715호에 설명되어 있는 바와 같이, 비-휘발성으로 저장되어 있는 데이터가 방해받지 않고 남아있기 위해 캘리브레이션 또는 기동 동작들 동안 이러한 메모리들 내의 메모리 어레이에의 액세스들이 디스에이블링(disabling)될 수 있다. 미국 특허 제9,275,715호의 내용은 그 전체가 참조에 의해 여기에 통합된다. 미국 특허 제9,275,715호에 설명되어 있는 바와 같이, 어레이로부터의 판독들, 어레이로의 기록들, 또는 어레이로부터의 판독들 및 어레이로의 기록들 모두를 방지하기 위해, 메모리에 대한 비-파괴 모드가 사용될 수 있다. 몇몇 실시예들에서는, 비-파괴 모드가 전원이 켜질 때 진입하는 디폴트 모드(default mode)인 반면, 다른 실시예들에서는, 비-파괴 모드가 메모리에 의해 수신된 명령에 응답하여 메모리 상의 하나 이상의 레지스터들(480) 내에 저장된 값에 기초해 진입된다. 몇몇 실시예들에서, 비-파괴 모드에서 나가는 것은 하나 이상의 레지스터들 내에 저장된 값을 변경시킴으로써 달성될 수 있다. 예를 들어, 비-파괴 모드는 레지스터 내의 비트를 "1"로 설정함으로써 진입할 수 있고, 그 비트를 "0"으로 클리어링함으로써 나가질 수 있다. 따라서, 비-파괴 모드를 이용하는 캘리브레이션, 테스팅, 또는 다른 동작들에 이어서, 메모리는 비-휘발성 메모리 셀들의 어레이에의 액세스가 인에이블링된 정상 동작 모드로 전환(transition)할 수 있다. 몇몇 실시예들에서, 비-파괴 모드에서 정상 동작 모드로의 전환은 캘리브레이션, 테스팅, 또는 다른 동작들이 완료되었다는 결정에 기초하는데, 이 결정은 메모리에 의해 내부적으로 행해지거나 메모리 제어기 또는 다른 외부 소스(source)로부터 메모리에 의해 수신된 신호에 기초할 수 있다. 따라서, 몇몇 실시예들에서, 메모리는 전원이 켜질 때 비-파괴 모드를 디폴트로 하고, 그 후 캘리브레이션 절차의 완료시에 비-파괴 모드에서 자동으로 나갈 수 있다. access to the memory array within these memories during calibration or startup operations so that non-volatile stored data remains undisturbed, as described in U.S. Patent No. 9,275,715, issued March 1, 2016; may be disabled. The contents of U.S. Patent No. 9,275,715 are incorporated herein by reference in their entirety. As described in U.S. Patent No. 9,275,715, a non-destructive mode for the memory is used to prevent reads from the array, writes to the array, or both reads from the array and writes to the array. can be used In some embodiments, the non-disruptive mode is a default mode that is entered at power-on, while in other embodiments, the non-disruptive mode is in response to a command received by the memory in response to one or more actions on the memory. It is entered based on the values stored in registers 480. In some embodiments, exiting non-destructive mode may be accomplished by changing a value stored in one or more registers. For example, non-destructive mode can be entered by setting a bit in a register to “1” and exited by clearing that bit to “0”. Thus, following calibration, testing, or other operations using the non-destructive mode, the memory may transition to a normal operating mode in which access to the array of non-volatile memory cells is enabled. In some embodiments, the transition from non-destructive mode to normal operating mode is based on a determination that calibration, testing, or other operations have been completed, either internally by the memory or by a memory controller or other external source ( source) may be based on a signal received by the memory. Thus, in some embodiments, the memory may default to a non-destructive mode when powered on and then automatically exit the non-destructive mode upon completion of the calibration procedure.

메모리가 비-파괴 모드일 때, 비-휘발성 메모리 어레이 내에 저장되어 있는 데이터는 방해를 받지 않는다. 비-파괴 모드에서, 통상적으로 데이터를 어레이(405) 내에 저장하거나 어레이(405)로부터 검색하는 메모리에 대한 판독들 및 기록들은, 캘리브레이션 또는 테스팅이 수행되어도 살아남아 있을 것으로 예상되는 비-휘발성 데이터를 포함하지는 않는 캐시 구조들 또는 메모리 상의 다른 저장소를 사용하여 수행될 수 있다.When the memory is in non-destructive mode, data stored in the non-volatile memory array is undisturbed. In non-destructive mode, reads and writes to memory that typically store data in or retrieve data from array 405 contain non-volatile data that is expected to survive calibration or testing. This may be done using cache structures or other on-memory storage.

캘리브레이션 또는 기동 동안에는 비-휘발성 어레이(405)에 대한 메모리 액세스들이 디스에이블링되는 그러한 방식을 지원하는 실시예들에서, 메모리가 비-파괴 모드에서 정상 동작 모드로 전환되고 비-휘발성 어레이에의 액세스가 인에이블링될 때, 플래그들 또는 상태 비트들(470, 471)이 캘리브레이션 동안 이른바 액세스되었던 페이지가 열려있다는 것을 나타내고, 이러한 플래그들 또는 상태 비트들(470, 471)이 메모리 상의 캐시들 중 하나에 저장된 무효 데이터가 어레이 내의 유효 데이터를 오버라이팅하는 후-기록 동작이 일어나지 않게 하도록, 그러한 어레이들 내의 메모리의 페이지들에 연관된 플래그들 또는 상태-비트들이 관리될 수 있다. 지연 후기록과 함께 비-파괴 모드들을 지원하는 다양한 실시예들이 보다 상세하게 후술되어 있다.In embodiments that support such a scheme in which memory accesses to the non-volatile array 405 are disabled during calibration or startup, the memory is switched from a non-destructive mode to a normal operating mode and accesses to the non-volatile array 405 are disabled. When is enabled, flags or status bits 470, 471 indicate that the so-called page that was accessed during calibration is open, and these flags or status bits 470, 471 indicate that one of the caches on memory Flags or status-bits associated with pages of memory in such arrays may be managed to prevent post-write operations in which invalid data stored in the array overwrites valid data in the array. Various embodiments supporting non-destructive modes with write-back are described in more detail below.

일 실시예에서, 메모리가 비-파괴 모드에 있을 때는, 페이지가 열려있는지 그리고 결국 후기록될 필요가 있을지를 표시하는데 사용되는 플래그들 또는 상태 비트들(470)이 디스에이블링된다. 이와 같이, 메모리가 비-파괴 모드에 있는 동안에는 활성화 동작 코드 또는 명령을 수신하더라도, 어레이(405) 내의 어떤 데이터도 오버라이팅되거나 변하지 않고, 활성화 동작을 위한 데이터의 페이지가 열려있다는 것을 표시할 상태 비트들(470)이 갱신되거나 그러한 상태로 설정되지 않는다. 대신, 상태 비트들(470)은 홀로 남겨지거나 어떠한 후-기록들도 계류(pending) 중이거나 필요로 되지 않다고 표시하도록 변경된다. 따라서, 메모리가 비-파괴 모드에서 정상 동작 모드로 전환될 때, 상태 비트들(470)이, 메모리가 정상 동작 모드에 진입할 때 어떠한 페이지들도 열려있지 않다고 나타내므로, 수신된 활성화 또는 캐시들(415, 416) 중 하나로부터 어레이(405)로의 후-기록을 일으킬 수 있는 다른 "트리거" 명령 또는 표시는 어떠한 이러한 후-기록도 초래하지 않을 것이다.In one embodiment, when the memory is in non-destructive mode, flags or status bits 470 used to indicate whether a page is open and will eventually need to be written back are disabled. Thus, while the memory is in non-destructive mode, no data in the array 405 will be overwritten or changed, even if an activation operation code or command is received, and a status bit to indicate that the page of data for the activation operation is open. s 470 are not updated or set to such a state. Instead, status bits 470 are left alone or changed to indicate that no post-writes are pending or needed. Thus, when memory transitions from non-destructive mode to normal operating mode, status bits 470 indicate that no pages are open when memory enters normal operating mode, so active or caches received Any other "trigger" command or indication that could cause a post-write from one of (415, 416) to the array 405 would not result in any such post-write.

다른 실시예들에서, 플래그들 또는 상태 비트들(470)은, 메모리가 비-파괴 모드에서 정상 동작 모드로 전환될 때 클리어링 된다. 몇몇 경우들에서, 이는, 비-파괴 모드에서 정상 동작 모드로의 전환을 검출하고 이러한 전환이 일어날 때 플래그들 또는 상태 비트들(470)을 클리어링 또는 리셋하는, 메모리 장치 상의 모드 변경 검출 회로(482)에 의해 달성될 수 있다. 예를 들어, 통상 DDR-호환성 메모리들 내에서 사용되는 것들과 같은 모드 레지스터일 수 있는, 레지스터(480) 내의 비트가 메모리가 비-파괴 모드 또는 정상 동작 모드임을 표시하면, 메모리가 비-파괴 모드에 있다는 것을 표시하는 상태에서 메모리가 정상 동작 모드에 있다는 것을 표시하는 상태로 그 비트를 전환하는 것을 사용하여, 후기록될 필요가 있는 열려 있는 페이지들이 없다는 것을 표시하도록 플래그들 또는 상태 비트들을 클리어링 또는 리세팅할 것을 트리거링할 수 있다.In other embodiments, flags or status bits 470 are cleared when the memory transitions from a non-destructive mode to a normal operating mode. In some cases, this is the mode change detection circuit 482 on the memory device, which detects a transition from a non-destructive mode to a normal operating mode and clears or resets flags or status bits 470 when this transition occurs. ) can be achieved. If a bit in register 480, which can be, for example, a mode register such as those used in normal DDR-compatible memories, indicates that the memory is in non-destructive mode or normal operating mode, then the memory is in non-destructive mode. Clearing flags or status bits to indicate that there are no open pages that need to be written back, using switching that bit from a state indicating that the memory is in normal operating mode to a state indicating that the memory is in normal operating mode; You can trigger a reset.

아직 다른 실시예들에서, 메모리를 포함하는 시스템은, 메모리가 비-파괴 모드에서 정상 동작 모드로 전환되기 전에, 플래그들 또는 상태 비트들(470)이 리셋되거나 클리어링되도록 보장할 수 있다. 예를 들어, 캘리브레이션 또는 테스팅을 제어하는 메모리 제어기 또는 다른 객체는 메모리에게 후-기록 동작을 수행하도록 지시하는 명령을 메모리에 발행할 수 있다. 여기서 설명된 바와 같이, 이러한 명령들은 리프레시, 자가-리프레시, 사전 충전, 리셋, 또는 STORE 명령들을 포함할 수 있는데, 여기서, 이러한 명령들이 실행된 후, 플래그들 또는 상태 비트들은 리셋 또는 클리어링된 상태에 있게 되고, 이에 따라 어떠한 페이지들도 열려있지 않고 어떠한 페이지들도 후기록될 필요가 없다는 것을 표시하게 된다. 특히, 메모리가 비-파괴 모드에 있는 동안 이러한 명령을 제공하는 것은 어레이 내에 저장된 데이터에 영향을 미치지 않는데, 이는, 메모리가 비-파괴 모드에 있는 동안에는 이러한 데이터가 보호되기 때문이다. 아직 또다른 실시예에서는, 전용 명령 또는 신호 천이들의 시퀀스가 메모리 제어기에 의해 제공될 수 있는데, 여기서, 전용 명령 또는 신호 천이들의 시퀀스는 메모리에 의해 수신되고, 메모리는 이에 응답하여 플래그들 또는 상태 비트들을 클리어링 또는 리셋한다.In yet other embodiments, a system including memory may ensure that flags or status bits 470 are reset or cleared before the memory is switched from a non-destructive mode to a normal operating mode. For example, a memory controller or other object controlling calibration or testing may issue commands to the memory instructing it to perform a post-write operation. As described herein, these instructions may include refresh, self-refresh, pre-charge, reset, or STORE instructions, where, after such instructions are executed, flags or status bits are in a reset or cleared state. , thereby indicating that no pages are open and no pages need to be backwritten. In particular, giving these commands while the memory is in non-destructive mode does not affect the data stored in the array, since such data is protected while the memory is in non-destructive mode. In yet another embodiment, a dedicated command or sequence of signal transitions may be provided by a memory controller, where the dedicated command or sequence of signal transitions is received by the memory, and the memory responds with flags or status bits. clear or reset them.

도 5 내지 도 7 및 도 9 내지 도10은 메모리 장치들 내에서 지연 후-기록을 지원하기 위한 방법들에 대한 예시적인 실시예들 또는 실시예들의 양태들을 나타내는 흐름도들이다. 일례에서, 메모리 장치들은 스핀-토크 자기 터널 접합부 메모리 셀들의 어레이를 포함한다. 흐름도들에 포함된 동작들은 장치를 동작시키는데 사용되는 전체 처리 중 단지 일부분만을 나타낼 수 있다. 나타낼 목적으로, 도 5 내지 도 7 및 도 9 내지 도 10 내의 방법들에 대한 다음의 설명은 도 4에 관련하여 전술된 요소들을 참조할 수 있다. 방법은 임의의 수의 추가적인 또는 대안적인 작업들을 포함할 수 있고, 도 5 내지 도 7 내에 도시된 작업들은 나타낸 순서로 수행될 필요는 없고, 방법들은 여기에 상세하게 설명되지 않은 추가적인 기능을 갖는 더욱 포괄적인 절차 또는 처리들에 통합될 수 있다는 것이 인식되야 한다. 게다가, 도 5 내지 도 7에 도시된 하나 이상의 작업들은, 의도된 전체 기능이 온전하게 유지되는 한, 생략될 수 있다.5-7 and 9-10 are flow diagrams illustrating aspects of example embodiments or embodiments of methods for supporting write-delay in memory devices. In one example, memory devices include an array of spin-torque magnetic tunnel junction memory cells. The actions included in the flowcharts may represent only a portion of the overall process used to operate the device. For purposes of presentation, the following description of the methods in FIGS. 5-7 and 9-10 may reference elements discussed above with respect to FIG. 4 . The method may include any number of additional or alternative operations, the operations illustrated in FIGS. 5-7 need not be performed in the order shown, and the methods may include more functions with additional functionality not detailed herein. It should be appreciated that it can be incorporated into a comprehensive procedure or process. Moreover, one or more of the tasks shown in Figures 5-7 may be omitted as long as the overall intended functionality remains intact.

도 5로 넘어가서, 단계(510)에서, 메모리 장치의 제1 뱅크 내의 제1 페이지에 대한 제1 활성화 명령이 수신된다. 단계(520)에서, 제1 활성화 명령에 응답하여, 데이터의 제1 페이지가 어레이로부터 검색되어 메모리 장치 상의 제1 캐시 내에 저장된다. 제1 페이지가 이 방식으로 활성화되면, 제1 페이지 내의 데이터에 대한 판독 및 기록 동작들이 제1 캐시에 액세스함으로써 일어날 수 있다. DDR 프로토콜에서, 제1 페이지는 전형적으로 제1 페이지에 대응하는 사전 충전 명령의 수신에 기초하여 닫힐 것이다. 이러한 사전 충전 명령은, 제1 페이지에 대한 판독/기록 동작들이 완료되고 단계(530)에서 제2 활성화 명령이 수신되기 전에 발행될 것이다. 특히, 이러한 사전 충전 명령이 메모리가 잔류하고 있는 시스템 내에서 발행되어 메모리에 의해 수신될 수 있지만, 몇몇 실시예들에서는, 후-기록 동작들이 더이상 이러한 사전 충전 명령에 응답하여 직접적으로 수행되지 않기 때문에, 메모리가 사전 충전 명령을 간단히 무시한다. Turning to FIG. 5, at step 510, a first activate command is received for a first page in a first bank of a memory device. At step 520, in response to the first activate command, the first page of data is retrieved from the array and stored in a first cache on the memory device. When a first page is activated in this way, read and write operations to data in the first page can occur by accessing the first cache. In the DDR protocol, the first page will typically be closed based on receipt of a pre-charge command corresponding to the first page. This pre-charge command will be issued before the read/write operations for the first page are complete and before the second activation command is received at step 530 . In particular, while such a pre-charge command may be issued and received by the memory in a system where the memory resides, in some embodiments post-write operations are no longer directly performed in response to such a pre-charge command because , the memory simply ignores the pre-charge command.

단계(530)에서, 제1 뱅크 내의 제2 페이지에 대한 제2 활성화 명령이 수신된다. 도 4에 관련하여 전술된 바와 같이, 제2 활성화 명령에 대한 데이터를, 액세스를 위해 어레이의 제1 뱅크에서 제1 캐시로 이동시키기 위해, 제1 페이지에 대응하는 데이터는 최종적으로 어레이로 후기록되기 전에 제2 캐시로 이동된다. 그러나, 제2 페이지에 대한 활성화가 완료될 때까지 제1 페이지에 대응하는 데이터의 후-기록을 지연시킴으로써, 제1 페이지 데이터의 후기록에 연관된 시간이 숨겨질 수 있고 제2 페이지에 관련된 어떠한 판독 또는 기록 동작들도 지연시키지 않을 것이다.At step 530, a second activation command for a second page in the first bank is received. As described above with respect to FIG. 4, to move the data for the second activation instruction from the first bank of the array to the first cache for access, the data corresponding to the first page is finally written back to the array. before being moved to the second cache. However, by delaying post-writing of data corresponding to the first page until activation of the second page is completed, the time associated with writing back of the first page data can be hidden and any reading related to the second page can be hidden. Or it will not delay write operations either.

단계(540)에서, 제2 활성화 명령에 응답하여, 메모리가 어레이로부터 제2 페이지 데이터의 검색을 시작한다. 단계(550)에서, 제1 페이지 데이터가 제1 캐시에 제2 캐시로 전달된다. 특히, 제2 페이지 데이터가 제1 캐시에 저장되기 전, 제1 페이지 데이터가 제1 캐시 외부에 있는 한, 제1 페이지 데이터의 전달은 제2 페이지 데이터의 검색이 개시되는 시간과 같은 시간에 일어날 수 있다. 도 5의 흐름도는 제2 페이지 데이터 검색이 제1 페이지 데이터의 전달 이전에 시작된다고 표시하고 있지만, 충돌이 일어나지 않는 한, 이 단계들의 순서는 중요하지 않다. 몇몇 실시예들에서는, 단계(550)에서 전달이 제2 활성화 명령에 응답하여 시작되는 반면, 다른 실시예들에서는, 전술된 바와 같이 전달이 제2 활성화 명령 이전에 수신된 제1 페이지에 대응하는 사전 충전 명령에 의해 트리거링된다. 따라서, 사전 충전 명령은 제1 페이지 데이터의 제1 캐시에서 제2 캐시로의 이동을 트리거링할 수 있지만, 후속하는 활성화 명령이 그것을 후기록하게 할 때까지 데이터는 제2 캐시 내에 남아있을 수 있다.At step 540, in response to the second activate command, the memory begins retrieving the second page of data from the array. At step 550, the first page data is transferred from the first cache to the second cache. In particular, as long as the first page data is out of the first cache before the second page data is stored in the first cache, delivery of the first page data will occur at the same time as the retrieval of the second page data is initiated. can Although the flowchart of Fig. 5 indicates that the retrieval of the second page data begins prior to the delivery of the first page data, the order of these steps is not important, as long as no conflicts occur. In some embodiments, delivery is initiated in step 550 in response to a second activation command, while in other embodiments, delivery is initiated in response to a first page received prior to the second activation command, as described above. Triggered by the pre-charge command. Thus, a pre-fill instruction may trigger a movement of the first page data from the first cache to the second cache, but the data may remain in the second cache until a subsequent activate instruction causes it to be written back.

특히, 몇몇 실시예들에서는, 제1 캐시에서 제2 캐시로의 데이터의 이동을 트리거링하는데 사전 충전 명령이 사용되지 않는다. 이러한 실시예들에서는, 메모리 장치가 사전 충전 명령에 응답하여 아무것도 하지 않도록, 사전 충전 명령은 어떠한 기능도 하지 않을 수 있다. 사전 충전 명령들에 대한 필요성을 제거함으로써, DDR 메모리 장치들에 대해 사용되는 것들과 같은 표준 프로토콜들 내에 이러한 사전 충전 명령들을 제공하는 것에 연관된 타이밍은, 메모리 시스템 설계자들에게 융통성을 더욱 허용하는 방식으로, 완화될 수 있다.In particular, in some embodiments, a pre-charge command is not used to trigger the movement of data from the first cache to the second cache. In such embodiments, the pre-charge command may have no function, such that the memory device does nothing in response to the pre-charge command. By eliminating the need for pre-charge commands, the timing associated with providing these pre-charge commands within standard protocols, such as those used for DDR memory devices, can be modified in a way that allows memory system designers more flexibility. , can be alleviated.

단계(550)에서 제1 페이지 데이터를 제1 캐시에서 제2 캐시로 전달하는 것은, 제1 페이지 데이터가 어레이에 후기록되는 때에 적절한 패리티 또는 다른 ECC 정보가 사용가능하도록, 단계(551)에서 패리티 계산을 수행하는 것을 포함할 수 있다. 마찬가지로, 단계(552)에서의 다수 검출 및 반전이 제1 캐시에서 제2 캐시로의 데이터 전달의 일부로서 포함될 수 있다. 패리티 계산 및 다수 검출을 이 시점에 수행하는 것은 제1 페이지에 대한 임의의 기록들이 완료됨으로써 의미가 있고, 이에 따라, 전달된 데이터는 어레이 내의 데이터의 저장에 관련된 패리티 및 반전 결정들에 관련하여 최종적인 것이다. 패리티 계산 및 다수 결정은 데이터가 캐시들 간에 전달되는 동안에 행해질 수 있지만, 다른 실시예들에서는, 이러한 동작들이 이러한 전달이 일어나기 전이나 후의 다른 시점에서 수행될 수 있다.The transfer of the first page data from the first cache to the second cache at step 550 is performed at step 551 such that the appropriate parity or other ECC information is available when the first page data is written back to the array. This may include performing calculations. Similarly, multiple detection and inversion at step 552 may be included as part of the data transfer from the first cache to the second cache. Performing parity calculation and majority detection at this point makes sense as any writes to the first page have completed, so the transferred data is final with respect to parity and inversion decisions related to the storage of data in the array. it is hostile Parity calculation and majority determination can be done while data is being transferred between caches, but in other embodiments these operations can be performed at other times before or after this transfer occurs.

단계(560)에서, 제2 페이지 데이터는 제1 캐시에 저장되고, 이에 따라, 제2 활성화 동작의 완료가 표식된다. 제2 활성화 동작이 완료되었기 때문에, 단계(570)에서의 제2 캐시에서 어레이로의 제1 페이지 데이터의 후기록은 제2 활성화 동작을 간섭하지 않으면서 일어날 수 있다. 몇몇 실시예들에서는, 제2 페이지 데이터가 제1 캐시로 로딩될 때까지 제1 페이지 데이터의 후-기록이 일어나지 않지만, 다른 실시예들에서는, 후-기록이 진행중인 제2 활성화 동작을 간섭하지 않는 시점에서 후-기록이 보다 빨리 시작될 수 있다는 것을 주의하자. 몇몇 실시예들에서, 후-기록은 페이지 내의 비트들의 반전 및 데이터의 페이지가 반전되었는지 여부를 표시하기 위한 반전 플래그의 설정을 포함한다.At step 560, the second page data is stored in the first cache, thus marking completion of the second activation operation. Since the second activation operation has completed, writing back of the first page data from the second cache to the array at step 570 can occur without interfering with the second activation operation. In some embodiments, post-write of the first page data does not occur until the second page data is loaded into the first cache, but in other embodiments, the post-write does not interfere with the ongoing second activation operation. Note that post-recording at the point in time may start sooner. In some embodiments, write-back includes inverting the bits in the page and setting an inversion flag to indicate whether the page of data has been inverted.

도 6은 뱅크 내의 동일한 페이지가 순차적으로 2번 활성화되는 시나리오의 흐름도이다. 단계(610)에서, 제1 뱅크 내의 제1 페이지에 대한 제1 활성화 명령이 수신된다. 단계(620)에서, 제1 활성화 명령에 응답하여, 제1 페이지 데이터가 어레이로부터 검색되어 제1 캐시 내에 저장된다. 전술된 바와 같이, 제1 페이지를 여는 것은 그 뱅크 내의 페이지가 열려있다는 것을 표시하도록, 제1 뱅크에 대한 플래그를 설정하는 것을 포함한다. 제1 페이지가 열려있으면, 제1 페이지 내의 데이터에 대한 판독 및 기록 액세스들은 제1 캐시를 사용하여 수행된다. 그러한 판독 및 기록 액세스들이 완료되면, 제1 페이지에 대응하는 사전 충전 명령이 수신될 수 있지만, 지연 후-기록 동작들이 메모리 장치 내에서 수행되기 때문에, 사전 충전 명령은 데이터가 제1 캐시에서 제2 캐시로 편이하지 못하게 하거나 메모리 어레이에 후기록되지 못하게 할 수 있다.6 is a flowchart of a scenario in which the same page in a bank is sequentially activated twice. At step 610, a first activation command for a first page in a first bank is received. At step 620, in response to the first activation command, the first page data is retrieved from the array and stored in the first cache. As described above, opening the first page includes setting a flag for the first bank to indicate that a page in that bank is open. When the first page is open, read and write accesses to data in the first page are performed using the first cache. When those read and write accesses are complete, a pre-charge command corresponding to the first page may be received, but since the delay-after-write operations are performed within the memory device, the pre-charge command will cause the data to be moved from the first cache to the second. You can prevent it from being cached or written back to the memory array.

단계(630)에서, 제1 뱅크 내의 제2 페이지에 대한 제2 활성화 명령이 수신된다. 제1 뱅크에 대해 이미 열려져 있는 페이지가 있기 때문에, 단계(640)에서, 제1 페이지에 대한 주소가 제2 페이지에 대한 주소와 비교된다. 단계(650)에서, 제1 페이지에 대한 주소가 제2 페이지에 대한 주소와 일치한다고 결정되면, 방법은 제1 페이지 데이터가 제1 캐시 내에 남아있게 되는 단계(660)으로 진행한다. 제1 캐시 내에 제1 페이지 데이터를 남겨두는 것 이외에, 제2 활성화 명령의 결과로서 통상 일어나는 임의의 후-기록도 또한 차단될 수 있다. 제1 페이지 데이터를 어레이에 다시 후-기록하는 것을 차단하는 것은, 제1 페이지 데이터에 대응하는 어레이의 부분이 활성화 명령 후에 중간 상태에 남아있게 되면, 제1 페이지 데이터의 최종 후-기록이 손상되지 않도록 그 중간 상태가 보존되도록 보장한다. 예를 들어, 어레이의 페이지 내의 모든 메모리 셀들을 "0" 또는 리셋 상태로 남겨두는 자가-참조 판독을 사용하여 제1 페이지 데이터가 어레이로부터 판독되면, 후기록은 "1" 또는 설정 상태를 저장하는 그러한 메모리 셀들만이 기록되도록 요청한다. 제1 페이지 데이터의 후-기록이, 데이터가 제1 캐시에 남아있더라도 제2 활성화 명령에 응답하여 일어나도록 허용되면, 나중의 후기록은 0들 또는 1들 모두가 후기록되도록 요청할 수 있고, 이에 따라, 나중의 후-기록 동작이 복잡하게 된다.At step 630, a second activation command for a second page in the first bank is received. Since there is already a page open for the first bank, in step 640 the address for the first page is compared to the address for the second page. If it is determined at step 650 that the address for the first page matches the address for the second page, the method proceeds to step 660 where the first page data remains in the first cache. In addition to leaving the first page data in the first cache, any post-writes that normally occur as a result of the second activation command may also be blocked. Blocking the post-write of the first page data back into the array is such that if the portion of the array corresponding to the first page data remains in an intermediate state after the activation command, the last post-write of the first page data is not corrupted. ensure that intermediate states are preserved. For example, if the first page of data is read from the array using a self-referencing read that leaves all memory cells in a page of the array in a "0" or reset state, then a write back stores a "1" or set state. Only those memory cells are requested to be written to. If post-writing of the first page data is allowed to occur in response to the second activation command even if the data remains in the first cache, later writing back can request that all 0s or 1s be written back, so that Accordingly, the later post-write operation becomes complicated.

따라서, 종래의 메모리 장치들에서는, 사전 충전 명령으로 제1 페이지를 닫으면 제1 페이지에 대한 데이터가 메모리 어레이 내에 다시 저장되지만, 여기에 설명된 지연 후-기록의 실시예들은 후속하는 활성화 동작이 개시될 때까지 제1 페이지 데이터가 제1 캐시 구조 내에 남아있게 한다. 제2 활성화 동작이 이미 열려있는 동일한 페이지에 대한 것이면, 제1 캐시 내에 저장할 새로운 데이터를 패칭할 필요가 없다. 실제로, 활성화 동작들 동안 자가-참조 판독이 사용되면, 어레이로부터 새로운 데이터를 패칭하려는 시도는 쓰레기 데이터(garbage data)가 제1 캐시에 로딩되게 할 것이다. 이와 같이, 동일한 뱅크 내의 동일한 페이지에 대한 백-투-백 액세스들이 일어나면, 메모리 장치는 데이터의 제1 페이지에 대한 판독 및 기록 액세스들을 위해 제1 캐시를 준비하기 위한 임의의 데이터 전달을 행할 필요가 없는데, 이는 그 데이터가 여전히 그 캐시에 남아있기 때문이다.Thus, in conventional memory devices, closing the first page with a pre-charge command causes the data for the first page to be stored back into the memory array, but the delay-post-write embodiments described herein initiate a subsequent activation operation. The first page data remains in the first cache structure until If the second activation operation is for the same page that is already open, there is no need to fetch new data to store in the primary cache. Indeed, if self-referencing reads are used during activation operations, an attempt to fetch new data from the array will cause garbage data to be loaded into the primary cache. As such, if back-to-back accesses to the same page in the same bank occur, the memory device needs to do any data transfer to prepare the first cache for read and write accesses to the first page of data. No, because the data is still in the cache.

단계(650)에서 제2 활성화 명령에 의해 동일한 페이지가 활성화되지 않는다고 결정되면, 방법은 제2 활성화 명령을 용이하게 하는데 필요한 동작들을 수행하도록 진행한다. 단계(670)에서, 제1 페이지 데이터는 제1 캐시에서 제2 캐시로 전달되고, 전술된 바와 같이, 패리티 계산 및 다수 결정을 포함할 수 있다. 또한, 단계(670)에서, 제2 페이지 데이터가 어레이로부터 검색되어 제1 캐시 내에 저장되고, 이에 따라, 제2 페이지 데이터는 제1 캐시를 사용하여 판독 및 기록 액세스들을 위해 사용가능하게 된다. 마지막으로, 제2 페이지에 대응하는 활성화 동작이 완료되거나 제1 페이지 데이터의 후-기록이 활성화를 간섭하지 않을 완료 단계에 도달하면, 제1 페이지 데이터의 어레이에의 후-기록이 일어난다. If it is determined at step 650 that the same page is not activated by the second activation command, the method proceeds to perform the actions necessary to facilitate the second activation command. At step 670, the first page data is passed from the first cache to the second cache, which may include parity calculation and majority determination, as described above. Also, at step 670, the second page data is retrieved from the array and stored in the first cache, thus making the second page data available for read and write accesses using the first cache. Finally, when the activation operation corresponding to the second page is completed or a completion stage is reached where post-writing of the first page data will not interfere with activation, post-writing of the first page data to the array takes place.

도 7의 흐름도는, 후-기록 표시가 메모리 장치에 의해 수신되는 시나리오를 나타내도록 돕는데, 여기서, 후-기록 표시는, 임의의 열린 페이지들 또는 후-기록을 기다리고 있는 닫힌 페이지들에 대응하는 데이터가 비-휘발성 메모리에 반환되도록, 그러한 페이지들이 클리닝 업되어야 한다는 것을 메모리 장치에 알린다. 메모리 장치 내의 데이터가 비-휘발성 저장소 내에 저장되도록 보장하기 위해, 이러한 표시는 활동을 정지시킨 후에 메모리 장치에 주기적으로 제공될 수 있다.The flow diagram of FIG. 7 helps illustrate a scenario in which a post-write indication is received by a memory device, wherein the post-write indication is data corresponding to any open pages or closed pages awaiting post-write. informs the memory device that those pages need to be cleaned up so that is returned to non-volatile memory. To ensure that data in the memory device is stored in non-volatile storage, such an indication may be provided periodically to the memory device after ceasing activity.

단계(710)에서, 후-기록을 위한 표시가 수신된다. 도 4에 관련하여 전술된 바와 같이, 후-기록을 위한 표시는 단계(712)에서의 리셋 신호의 수신, 단계(714)에서의 저장 명령의 수신, 또는 단계(716)에서의 자가-리프레시 모드로의 진입을 포함하는 리프레시 신호 또는 명령의 수신을 포함할 수 있다. 몇몇 실시예들에서, 후-기록 표시는, 메모리 장치가 전력-차단 모드로 진입할 때마다 자동으로 제공된다. 도 4에 관련하여 또한 전술된 바와 같이, 단계(714)에서 수신된 것과 같은 저장 명령은 하나 이상의 뱅크들이 그것에 의해 작동되야한 다는 것을 표시할 수 있다. 예를 들어, 메모리 장치가 곧 전력-차단될 것이면, 현재 휘발성 저장소 내에 저장되어 있는 임의의 메모리 데이터가 비-휘발성 어레이로 후기록되도록, 모든 뱅크들이 클리닝 업되야한다는 것을 표시하는 저장 명령이 수신될 수 있다.At step 710, an indication for post-recording is received. As described above with respect to FIG. 4, the indication for post-write may be the receipt of a reset signal in step 712, the receipt of a store command in step 714, or a self-refresh mode in step 716. Receipt of a refresh signal or command that includes entry into In some embodiments, the write-back indication is automatically provided whenever the memory device enters a power-down mode. As also described above with respect to FIG. 4, a store command such as received at step 714 may indicate that one or more banks are to be acted upon. For example, if the memory device is about to be powered-down, a store command may be received indicating that all banks should be cleaned up so that any memory data currently stored in volatile storage is written back to the non-volatile array. can

단계(710)에서 후-기록을 위한 표시가 수신된 후, 단계(720)에서 후-기록을 위한 표시가 속한 구체적인 뱅크가 열린 페이지를 갖는지 여부가 결정된다. 갖지 않으면, 현재 휘발성 저장소 내에 있는 뱅크에 대응하는 데이터가 없는 것이므로, 후-기록이 필요하지 않다. 단계(720)에서 뱅크가 열린 페이지를 갖는다고 결정되면, 단계(730)에서, 제1 캐시 내에 저장된 데이터가 비-휘발성 어레이로 전달된다. 단게(730)에서의 전달은 제1 캐시에서 어레이로의 직접 전달을 포함하거나, 메모리 장치 내의 회로가 데이터가 어레이로 가는 도중에 제2 캐시를 통해 라우팅되도록 구축되면, 단계(730)에서의 전달은 제2 캐시로부터 후기록하기 전에, 데이터를 제1 캐시에서 제2 캐시로 이동시키는 것을 포함한다. 캐시들 간의 또는 캐시들 중 하나에서 어레이로의 전달은 전술된 바와 같은 패리티 계산 및 다수 결정을 포함할 수 있다.After the indication for write-back is received in step 710, it is determined in step 720 whether the specific bank to which the indication for write-back belongs has an open page. If not, then there is no data corresponding to the bank currently in volatile storage, so post-write is not required. If at step 720 it is determined that the bank has an open page, at step 730 the data stored in the primary cache is transferred to the non-volatile array. The transfer at step 730 includes a direct transfer from the primary cache to the array, or if circuitry within the memory device is built such that data is routed through the secondary cache en route to the array, transfer at step 730 and moving data from the first cache to the second cache prior to writing back from the second cache. The transfer between caches or from one of the caches to the array may include parity calculation and majority determination as described above.

단계(730)에서 일어나는 후기록이 다수의 메모리 셀들이 기록되는 것을 수반할 때, 후-기록은 다수의 단계들로 분할될 수 있다. 예를 들어, 단계(732)에서 제1 데이터 부분이 어레이에 전달된 후, 단계(734)에서 제2 데이터 부분이 어레이에 전달된다. 더 구체적인 예에서, STORE-ALL 명령이 장치 종료 이전에 트리거링될 수 있다. 이러한 STORE-ALL 명령은 다수의 뱅크들에 대응하는 데이터가 어레이에 후기록되게 할 수 있다. 동시에 많은 메모리 셀들에 기록하는 것에 연관된 높은 피크(peak) 전력 소비 및 큰 전류 스파이크들 피하기 위해, 뱅크들 중 제1 절반에 대응하는 후-기록 동작들은 단계(732)에서 수행되는 반면, 뱅크들 중 제2 절반에 대응하는 기록 동작들은 단계(734)에서 수행된다. 다른 실시예들에서는, 각각의 뱅크 내의 후-기록 동작들이 시간적으로 스태거링되도록, 각각의 뱅크 내의 메모리 셀들의 일부분이 각각의 단계들(732 및 734) 동안 기록된다.When the write-back occurring at step 730 involves multiple memory cells being written, the post-write may be divided into multiple steps. For example, after the first data portion is passed to the array in step 732, the second data portion is passed to the array in step 734. In a more specific example, a STORE-ALL command may be triggered prior to device shutdown. This STORE-ALL command can cause data corresponding to multiple banks to be written back to the array. To avoid the high peak power consumption and large current spikes associated with writing to many memory cells simultaneously, the post-write operations corresponding to the first half of the banks are performed in step 732, while the Write operations corresponding to the second half are performed in step 734 . In other embodiments, a portion of the memory cells in each bank is written during respective steps 732 and 734 such that post-write operations within each bank are staggered in time.

도 9는 지연 후-기록이 지원되고 구조 테스팅 또는 캘리브레이션이 수행되는 메모리 장치의 동작에 대응하는 흐름도를 제공한다. 이러한 캘리브레이션 또는 테스팅은 전형적으로 기동시에 일어난다. 단계(572)에서, 메모리 내의 데이터에 액세스하기 위한 제1 명령이 수신된다. 제1 명령에 응답하여, 단계(574)에서 메모리는, 자신이 어레이의 비-휘발성 메모리 셀들 내에 저장된 데이터가 보호되고 방해받지 않아야하는 비-파괴 동작 모드에 있는지 여부를 결정한다. 단계(574)에서 메모리가 비-파괴 동작 모드에 있지 않다고 결정되면, 단계(576)에서 제1 명령은 정상 동작 모드에서 실행된다. 단계(576)에서 제1 명령을 정상 동작 모드에서 실행한 후, 메모리는 수신한 명령들에 기초하여 정상 동작을 계속할 수 있다.9 provides a flowchart corresponding to an operation of a memory device in which write-delay is supported and structural testing or calibration is performed. This calibration or testing typically occurs at startup. At step 572, a first command to access data in memory is received. In response to the first command, the memory determines at step 574 whether it is in a non-destructive mode of operation in which data stored within the non-volatile memory cells of the array are protected and must not be disturbed. If at step 574 it is determined that the memory is not in a non-disruptive mode of operation, at step 576 the first instruction is executed in the normal mode of operation. After executing the first command in the normal operating mode at step 576, the memory may continue normal operation based on the received commands.

단계(574)에서, 메모리가 비-파괴 모드에 있다고 결정되면, 단계(578)에서 제1 명령에 대응하는 데이터가 데이터 저장에 관련하여 비-휘발성이라고 예상되지 않는 캐시 또는 메모리 상의 다른 저장 위치 내에서 액세스된다. 이러한 데이터 액세스는 저장 위치에 대한 판독 및 기록을 포함할 수 있는데, 여기서, 일련의 이러한 기록/판독 동작들은 특정 신호들에 대한 타이밍 매개변수들에 대한 바람직한 설정을 결정하기 위해 이러한 매개변수들의 범위를 스위핑(sweeping)하도록 수행될 수 있다. 따라서, 메모리가 비-파괴 모드에 있는 동안에는, 메모리가 정상 동작 모드에 있으면 데이터가 비-휘발성 메모리 셀들 내에서 수정되게 하는 데이터 액세스들에 연관된 명령들은 메모리 상의 다른 저장소를 사용하여 실행되어, 비-휘발성 저장소가 방해받지 않게 된다. 예를 들어, DDR 인터페이스 내의 데이터 스트로브들 또는 다른 타이밍 매개변수들을 캘리브레이션하는 것에 연관된 판독 및 기록 동작들은 메모리 어레이 자체 대신 온-메모리 캐시(on-memory cache)를 사용하여 수행될 수 있으므로, 저장된 비-휘발성 데이터를 손상시키지 않으면서 메모리 장치에 대한 타이밍 구성이 구축된다.If at step 574 it is determined that the memory is in non-destructive mode, at step 578 the data corresponding to the first instruction is not expected to be non-volatile with respect to data storage in a cache or other storage location on the memory. is accessed from Such data access can include reading and writing to storage locations, where a series of such write/read operations ranges over timing parameters to determine preferred settings for particular signals. It can be performed to sweep. Thus, while the memory is in a non-destructive mode, instructions associated with data accesses that cause data to be modified in non-volatile memory cells are executed using other storage on the memory if the memory is in a normal operating mode, so that non- Volatile storage becomes undisturbed. For example, read and write operations associated with calibrating data strobes or other timing parameters within a DDR interface can be performed using an on-memory cache instead of the memory array itself, so that stored non- A timing configuration for the memory device is established without corrupting volatile data.

단계(580)에서, 메모리가 비-파괴 모드에서 정상 동작 모드로 전환된다. 이러한 전환은 메모리 장치에 의해 수신된 정보에 응답한 것이거나, 비-파괴 모드로부터 혜택을 얻는 캘리브레이션 절차 또는 다른 동작이 완료되었다는 내부 결정에 기초할 수 있다. 일례에서, 메모리는 메모리가 비-파괴 모드에 있는지 여부를 표시하는 값을 저장하는 레지스터를 포함한다. 메모리가 레지스터 내의 값을 수정하는 명령 또는 따른 신호를 수신하면, 이러한 값의 변경은 메모리를 비-파괴 모드에서 정상 동작 모드로 전환시킬 수 있다.At step 580, the memory is switched from a non-destructive mode to a normal operating mode. This transition may be in response to information received by the memory device, or may be based on an internal determination that a calibration procedure or other operation that benefits from a non-destructive mode has been completed. In one example, the memory includes a register that stores a value indicating whether the memory is in non-destructive mode. When the memory receives a command or signal that modifies a value in a register, this change in value may cause the memory to transition from a non-destructive mode to a normal operating mode.

몇몇 실시예들에서, 특정 뱅크에 대하여 열려있는 행이 있는지 여부를 추적하는 플래그들 또는 상태 비트들은 비-파괴 모드 동안 디스에이블링된다. 즉, 비-파괴 모드에서는 비-휘발성 메모리 셀들이 오버라이팅되는 것이 방지되듯이, 플래그들 또는 상태 비트들을 저장하는데 사용되는 저장소도 수정이 방지될 수 있다. 이러한 실시예들에서는, 비-파괴 모드를 나갈 때, 플래그들 또는 상태 비트들이 클리어링되기 때문에, 열려있는 행에 대한 올바르지 않은 표시가, 메모리가 정상 동작 모드로 전환된 뒤 비-휘발성 데이터를 손상시킬 수 있는 지연 후-기록 동작을 일으킬 염려가 없다.In some embodiments, flags or status bits that track whether there is an open row for a particular bank are disabled during non-destructive mode. That is, storage used to store flags or status bits may be protected from modification, just as non-volatile memory cells are prevented from being overwritten in non-destructive mode. In these embodiments, because flags or status bits are cleared when exiting non-destructive mode, an incorrect indication of an open row may corrupt non-volatile data after the memory switches to normal operating mode. There is no fear of triggering a possible delay post-write operation.

다른 실시예들에서, 메모리가 비-파괴 모드에 있을 때 명령들의 실행 동안 메모리의 열려있는 페이지들을 표시하도록 설정될 수 있는 플래그들 또는 상태 비트들은 정상 동작 모드의 데이터 액세스 명령들에 응답하기 전에 단계(582)에서 클리어링된다. 몇몇 실시예들에서는, 플래그들 또는 상태 비트들이 정상 동작 모드로 전화되기 전에 클리어링되지만, 다른 실시예들에서는, 플래그들 또는 상태 비트들이 정상 동작 모드로 진입한 후에 클리어링된다.In other embodiments, flags or status bits that can be set to indicate open pages of memory during execution of instructions when the memory is in a non-destructive mode may be set prior to responding to data access commands in a normal operating mode. Cleared at 582. In some embodiments, flags or status bits are cleared before entering normal operating mode, while in other embodiments, flags or status bits are cleared after entering normal operating mode.

단계들(584 및 586)에 도시된 바와 같이, 상태 비트들을 클리어링하는 것은, 메모리가 비-파괴 모드에 있는지 여부를 표시하는 값 내의 변경을 검출한 후 검출된 변경에 기초하여 상태 비트들을 클리어링하는 것에 기초할 수 있다. 전술된 바와 같이, 메모리 상의 값 내의 변경은 모드 레지스터 내의 값 내의 변경과 대응할 수 있는데, 여기서, 값 내의 변경은 메모리에 대한 비-파괴 모드에서 정상 동작 모드로의 전환을 표시한다. 이러한 레지스터는, 예를 들어, 메모리 제어기에 의해 발행되는 모드 레지스터 설정 명령에 의해 수정될 수 있다. 메모리 상의 회로는 레지스터 내의 값의 변경을 검출한 후 그에 응답하여 플래그들 또는 상태 비트들을 클리어링할 수 있다.As shown in steps 584 and 586, clearing the status bits involves detecting a change in the value indicating whether the memory is in non-destructive mode and then clearing the status bits based on the detected change. can be based on As noted above, a change in a value on memory may correspond to a change in a value in a mode register, where a change in value indicates a transition from a non-destructive mode to a normal operating mode for the memory. These registers may be modified, for example, by a mode register set command issued by the memory controller. Circuitry on memory may detect a change in value in a register and then clear flags or status bits in response.

다른 실시예들에서, 메모리는, 메모리에 의해 수신된 명령에 응답하여 상태 비트들을 클리어링한다. 몇몇 경우들에서, 명령은 메모리가 비-파괴 모드를 나가기 전에 수신되는 리프레시, 자가-리프레시, 리셋, 또는 사전 충전 명령이다. 이와 같이, 그러한 명령들이 잠재적으로 지연 후-기록이 일어나게 하지만, 메모리가 여전히 비-파괴 모드에 있으면, 비-휘발성 데이터는 보호될 것이다. 다른 실시예들에서는, 구체적으로 플래그들 또는 상태 비트들을 클리어링하는 명령이 메모리 장치에 의해 수신되는데, 여기서, 상태 비트들을 클리어링하는 이러한 명령에 의해 어떠한 지연 후-기록도 추진되지 않으므로, 이러한 명령은 비-파괴 모드에서 정상 동작 모드로의 전환 이전에 또는 이후에 수신된다. 메모리 장치가 정상 동작 모드에 진입하여 플래그들 또는 상태 비트들을 클리어링하면, 캘리브레이션 동작들으로부터 남겨진 캐시 구조들 중 하나로부터의 쓰레기 데이터로 비-휘발성 저장소 내의 데이터를 오버라이팅할 수 있는 의도하지 않은 지연 후-기록 동작에 대해 염려하지 않으면서, 정상 동작이 진행될 수 있다.In other embodiments, the memory clears status bits in response to a command received by the memory. In some cases, the command is a refresh, self-refresh, reset, or pre-charge command received before the memory exits non-destructive mode. As such, if such instructions potentially cause write-after-delay to occur, but the memory is still in non-destructive mode, the non-volatile data will be protected. In other embodiments, a command to specifically clear flags or status bits is received by the memory device, where no write-delay post-write is driven by this command to clear the status bits, so the command is non-delayed. -received before or after the transition from the disruptive mode to the normal operating mode. After an unintended delay, when the memory device enters normal operating mode and clears flags or status bits, it may overwrite data in non-volatile storage with garbage data from one of the cache structures left over from calibration operations. -Normal operation can proceed without worrying about the recording operation.

도 10은, 예를 들어, 메모리의 동작들을 지시하는 메모리 제어기 또는 다른 외부 객체에 의해 수행될 수 있는 메모리를 제어하기 위한 방법의 흐름도를 나타낸다. 단계(680)에서, 비-휘발성 메모리 어레이 내에 저장된 데이터가 오버라이팅되지 않게 하는 비-파괴 동작 모드로 메모리가 진입하도록, 모드 변경 신호가 메모리에 제공된다. 몇몇 실시예들에서, 모드 변경 신호는 비-파괴 모드를 선택하는 값을 메모리 상에 저장하는 모드 레지스터 기록에 대응한다. 다른 실시예들에서는, 전용 신호 또는 신호 천이들의 시퀀스가 모드 변경 신호를 제공하는데 사용된다. 아직 다른 실시예들에서는, 전원이 켜질 때 메모리가 비-파괴 동작 모드를 디폴트로 하므로, 메모리에 모드 변경 신호를 제공할 필요가 없다.10 presents a flow diagram of a method for controlling a memory, which may be performed, for example, by a memory controller or other external object directing operations of the memory. At step 680, a mode change signal is provided to the memory to cause the memory to enter a non-destructive mode of operation that prevents data stored within the non-volatile memory array from being overwritten. In some embodiments, the mode change signal corresponds to a mode register write that stores on memory a value that selects a non-destructive mode. In other embodiments, a dedicated signal or sequence of signal transitions is used to provide the mode change signal. In still other embodiments, the memory defaults to a non-destructive mode of operation when power is turned on, so there is no need to provide a mode change signal to the memory.

단계(682)에서, 메모리 장치가 비-파괴 모드에 있는 동안, 복수의 캘리브레이션 명령들이 메모리 장치에 발행된다. 몇몇 예들에서, 캘리브레이션 명령들은, 메모리 제어기와 메모리 간의 통신을 위해 사용되는 하나 이상의 신호들을 캘리브레이션하는 것에 연관된 판독 및 기록 명령들이다. 예를 들어, 캘리브레이션 명령들은 데이터 스트로브(예를 들어, DQS) 신호에 대한 최적의 타이밍을 결정하기 위해 그러한 신호에 대하여 살짝 상이한 타이밍을 사용하는 일련의 기록 및 판독 명령들을 수반할 수 있다. 메모리 제어기의 관점에서, 캘리브레이션 명령들은 정상 동작 동안 사용되는 명령들(활성화, 판독, 기록, 사전 충전, 등...)과 상이하지 않을 수 있지만, 메모리의 관점에서는, 명령이 메모리 상의 비-휘발성 메모리 어레이를 방해하지 않는 방식으로 실행된다. 전술된 바와 같이, 메모리는, 비-휘발성 어레이를 방해할 필요 없이 캘리브레이션 또는 테스팅 동안 판독 및 기록 동작들을 지원하는 하나 이상의 캐시들 또는 휘발성 메모리 블록들과 같은 추가적인 저장소를 포함하는 것이 바람직하다.At step 682, while the memory device is in the non-destructive mode, a plurality of calibration commands are issued to the memory device. In some examples, calibration commands are read and write commands associated with calibrating one or more signals used for communication between a memory controller and memory. For example, the calibration commands may follow a series of write and read commands using slightly different timing for the data strobe (e.g., DQS) signal to determine the optimal timing for that signal. From the point of view of the memory controller, calibration commands may not be different from the commands used during normal operation (activate, read, write, pre-charge, etc...), but from the point of view of the memory, the commands are non-volatile on the memory. It is implemented in a way that does not disturb the memory array. As noted above, the memory preferably includes additional storage, such as one or more caches or volatile memory blocks, to support read and write operations during calibration or testing without the need to disturb the non-volatile array.

단계(684)에서, 메모리에 복수의 캘리브레이션 명령들을 발행한 후, 메모리 제어기는, 메모리가 비-파괴 모드를 나가게 하고 메모리 상에 열려있는 페이지들이 있다는 것을 표시하는 임의의 플래그들 또는 상태 비트들을 클리어링하게 하는 신호를 메모리에 제공한다. 플래그들 또는 상태 비트들을 클리어링함으로써, 메모리 제어기는, 메모리가 비-파괴 모드에 있는 동안 수행된 캘리브레이션 또는 테스팅 절차에 의해 비-휘발성 데이터를 손상시키는 의도하지 않은 후-기록 동작들이 초래되지 않도록 보장할 수 있다. 전술된 바와 같이, 메모리 제어기가 단계(686)에서 메모리에 레지스터 액세스 명령을 발행하고, 단계(688)에서 메모리 장치 상의 레지스터 내의 저장소에 값을 제공하는 것에 응답하여, 메모리는 정상 동작 모드로 전환되고 플래그들 또는 상태 비트들을 클리어링할 수 있다. 메모리 상에 저장될 때 그 값은 메모리를 비-파괴 모드에서 정상 동작 모드로 전환시킨다. 다른 실시예들에서, 플래그들 또는 상태 비트들은, 메모리가 비-파괴 모드에서 정상 동작 모드로 전환하기 전에 메모리에 리셋, 자가-리프레시, 리프레시, 저장, 또는 사전 충전 명령을 발행함으로써 클리어링된다. 이러한 명령을 발행한 후, 단계(692)에서 모드 변경 명령이 메모리에 제공될 수 있는데, 여기서, 모드 변경 명령은 플래그들 또는 상태 비트들이 클리어링된 후에 메모리를 정상 상태로 전환시키고, 그러한 플래그들 또는 상태 비트는 하나 이상의 열려있는 페이지들을 표시하는데 사용된다. 아직 다른 실시예들에서, 메모리 제어기는 캘리브레이션 또는 테스팅 동작들의 완료에 기초하여, 정상 동작 모드로 변경시키기 위해 메모리에 시그널링하거나 메모리가 비-파괴 모드에서 정상 동작 모드로 자동으로 전환되길 기다린 후, 지연 후-기록 동작들이 이용되는 정상 동작 모드에서 동작들을 시작하기 전에, 열려있는 페이지들에 대응하는 임의의 플래그들 또는 상태 비트들을 클리어링하도록 메모리에게 지시하는 명령 또는 신호를 메모리에 송신한다.At step 684, after issuing the plurality of calibration commands to the memory, the memory controller causes the memory to exit non-destructive mode and clears any flags or status bits indicating that there are open pages on the memory. It provides a signal to the memory that makes it happen. By clearing the flags or status bits, the memory controller will ensure that a calibration or testing procedure performed while the memory is in non-destructive mode does not result in unintentional write-back operations that corrupt non-volatile data. can As described above, in response to the memory controller issuing a register access command to the memory at step 686 and providing values to storage in registers on the memory device at step 688, the memory switches to a normal operating mode and You can clear flags or status bits. When stored on the memory, the value causes the memory to switch from a non-destructive mode to a normal operating mode. In other embodiments, the flags or status bits are cleared by issuing a reset, self-refresh, refresh, store, or pre-charge command to the memory before the memory transitions from a non-destructive mode to a normal operating mode. After issuing such a command, a mode change command may be provided to the memory at step 692, where the mode change command causes the memory to transition to a normal state after flags or status bits are cleared, and such flags or status bits are cleared. Status bits are used to indicate one or more open pages. In yet other embodiments, the memory controller signals the memory to change to a normal operating mode based on completion of calibration or testing operations or waits for the memory to automatically switch from a non-destructive mode to a normal operating mode, then delays Sends a command or signal to the memory instructing it to clear any flags or status bits corresponding to open pages prior to starting operations in a normal operating mode where write-back operations are used.

도 8은 지연 후-기록 동작들의 사용을 포함하는 메모리 장치의 일 부분에 연관된 회로도를 나타낸다. 개략도 아래의 타이밍도는 회로의 기능을 나타내는 것을 돕는다. 기동시에, OPEN 신호(992)는 로우(low)이고, 이에 따라, 뱅크 내의 어떤 페이지도 열려있지 않고 따라서 다음 활성화도 후-기록을 기다리고 있지 않다는 것을 나타낸다. /ACTIVATE 신호(990)가 에지(961)에서 처음으로 로우로 어서팅될 때, ACTIVATE TIMING 신호(993)는 에지(966)에서 하이(high)에서 로우로 천이되도록 도시되는데, 이것은 활성화 동작에서 사용되는 다수의 타이밍 신호들의 생성을 나타낸다. 도 8의 실시예에서, 이들 신호들은 /ACTIVATE 신호(990)의 하이에서 로우로의 천이에 의해 직접 초래되는 신호 천이들이고, 활성화 타이밍 회로들 블록(951)에 의해 생성된다.8 shows a circuit diagram associated with a portion of a memory device that includes the use of delay-post-write operations. A timing diagram below the schematic helps illustrate the functioning of the circuit. At startup, the OPEN signal 992 is low, thus indicating that no pages in the bank are open and thus the next activation is not waiting for post-write. When the /ACTIVATE signal 990 is first asserted low on edge 961, the ACTIVATE TIMING signal 993 is shown to transition from high to low on edge 966, which is used in the activation operation. represents the generation of a number of timing signals that are In the embodiment of FIG. 8 , these signals are signal transitions directly caused by a high-to-low transition of /ACTIVATE signal 990 and are generated by activation timing circuits block 951 .

/ACTIVATE 신호(990)가 타이밍도 내의 에지(972)에서 하이로 반환되면, 플립-플롭(955)의 출력인 OPEN 신호(992)는 하이로 간다. OPEN 신호(992)는, 페이지가 열려있고, 그 페이지에 대한 후-기록이 후속하는 활성화 어서션의 수신시에 트리거링되야 한다는 것을 결정하는데 사용된다. OPEN 신호(992)가 하이여서, /ACTIVATE 신호(990)가 에지(973)에서 하이로 디어서팅될 때, ACTIVATE TIMING 신호들(993), UPDATE TIMING 신호들(994), 및 WRITEBACK TIMING 신호들(995) 모두는 로우에서 하이로 간다. 이것은 논리 게이트들(952, 953, 956, 957, 및 959)에 기초하여 일어나고, 다음 활성화 신호 어서션이 일어날 때 후속하는 어서션에 대한 그러한 타이밍 신호들의 세트들을 준비한다. 다음 활성화가 새로운 페이지의 활성화, 이전 페이지의 패리티/다수의 갱신, 및 이전 페이지의 후-기록을 초래할 것임이 알려져 있기 때문에, 어서션에 대하여 신호들이 준비된다.When /ACTIVATE signal 990 returns high on edge 972 in the timing diagram, OPEN signal 992, the output of flip-flop 955, goes high. OPEN signal 992 is used to determine that a page is open and post-write to that page should be triggered upon receipt of a subsequent enable assertion. When OPEN signal 992 is high, so /ACTIVATE signal 990 deasserts high on edge 973, ACTIVATE TIMING signals 993, UPDATE TIMING signals 994, and WRITEBACK TIMING signals (995) Everyone goes from low to high. This occurs based on logic gates 952, 953, 956, 957, and 959, preparing those sets of timing signals for subsequent assertions when the next enable signal assertion occurs. Signals are prepared for assertion because it is known that the next activation will result in activation of the new page, parity/multiple update of the previous page, and post-write of the previous page.

에지(962)에서 /ACTIVATE(990)의 다음 어서션이 일어날 때, 그 어서션은 각각의 ACTIVATE TIMING 신호들(993), UPDATE TIMING 신호들(994), 및 WRITEBACK TIMING 신호들(995)의 어서션을 트리거링한다. 따라서, 새로운 페이지를 활성화하기 위한 타이밍 신호들이 활성화 타이밍 회로들 블록(951)에 의해 생성되고(에지들(967)), 이전에 열렸던 페이지에 관한 패리티 및 다수 정보를 갱신하기 위한 타이밍 신호들이 갱신 타이밍 회로들 블록(958)에 의해 생성되고(에지들(968)), 갱신 및 활성화가 완료된 후, 이전에 열렸던 페이지를 후-기록하는데 사용되는 신호들(WRITEBACK TIMING 신호들(995))이 후기록 타이밍 회로들 블록(954)에 의해 생성된다(에지들(970)). 에지(973)에서의 /ACTIVATE(990)의 디어서션시, 신호들의 타이밍 신호 그룹들 각각은 다음 활성화를 위한 준비에서 디어서팅된다. OPEN 신호(992)는 하이로 남아있다.When the next assertion of /ACTIVATE 990 occurs at edge 962, that assertion triggers the assertion of respective ACTIVATE TIMING signals 993, UPDATE TIMING signals 994, and WRITEBACK TIMING signals 995. do. Accordingly, timing signals for activating a new page are generated by activation timing circuits block 951 (edges 967), and timing signals for updating parity and majority information about a page that has been opened before are updated at the update timing. The signals generated by the circuits block 958 (edges 968) and used to post-write the previously opened page after update and activation are complete (WRITEBACK TIMING signals 995) are backwritten. Generated by timing circuits block 954 (edges 970). Upon deassertion of /ACTIVATE 990 at edge 973, each of the timing signal groups of signals is deasserted in preparation for the next activation. OPEN signal 992 remains high.

RESET 신호(991)가 에지(963)에서 하이로 끌어올려질 때, 이것은 휘발성 메모리 내에 저장된 임의의 데이터가 어레이로 후기록되야 한다는 것을 표시한다. 다른 실시예들에서는, 리프레시 명령 또는 STORE 명령의 수신이 또한 이러한 후-기록을 트리거링할 수 있다. RESET의 어서션은 플립-플롭(955)을 리셋하고, 에지(965)에서 OPEN 신호(992)를 로우로 가게 한다. OPEN 신호(992)의 천이는 회로를 통해 전파되고, UPDATE TIMING 신호들(994)이 어서팅되게 하고(에지들(969)), WRITEBACK TIMING 신호들(995)이 어서팅되게 한다(에지들(971)). 결과적으로, 타이밍 신호들은 이전에 열렸던 페이지가 갱신되게 하고(패리티 계산 및 다수 결정) 메모리 어레이로 후기록되게 한다.When RESET signal 991 is pulled high on edge 963, this indicates that any data stored in volatile memory should be written back to the array. In other embodiments, receipt of a refresh command or a STORE command may also trigger this post-write. The assertion of RESET resets flip-flop 955 and causes OPEN signal 992 to go low on edge 965. The transition of the OPEN signal 992 propagates through the circuit and causes the UPDATE TIMING signals 994 to assert (edges 969) and the WRITEBACK TIMING signals 995 to assert (edges ( 971)). Consequently, the timing signals cause the previously opened page to be updated (parity calculation and majority determination) and written back to the memory array.

뱅크에 대한 데이터의 열린 페이지의 후-기록을 후속하는 활성화 동작이 완료될 때까지 지연시킴으로써, 어레이로의 데이터 후기록에 연관된 지연이 숨겨질 수 있으므로, 장치에 연관된 액세스 타이밍이 개선된다. 이는, 다음 페이지를 활성화하기 전에는 메모리가 후-기록이 일어나길 기다릴 필요가 없기 때문이며, 이에 따라, 후-기록 동작이 후선(background)에서 수행되는 동안, 새롭게 열린 페이지에 대한 판독/기록 동작들이 일어날 수 있다. 판독/기록들과 어레이로의 데이터의 후-기록의 이러한 동시 수행은 상당한 타이밍 이득을 제공한다. 또다른 활성화 동작을 필요로 하지 않으면서 데이터 후-기록을 지원하기 위해 새로운 동작 코드를 포함하는 것은 전력-차단이 일어날 때 데이터가 비-휘발성 저장소 내에 남아있지 않도록 보장하는 것을 돕는다. 몇몇 예시들에서, 데이터의 다수의 페이지들은 단일 후-기록 표시에 기초하여 어레이 내에 후기록될 수 있고, 데이터 후-기록은 피크 전력 소비를 감소시키기 위해 스태거링될 수 있다.By delaying the post-write of open pages of data to the bank until the subsequent activation operation is complete, the delay associated with writing data back into the array can be hidden, thereby improving the access timing associated with the device. This is because the memory does not have to wait for a post-write to occur before activating the next page, so that read/write operations to the newly opened page can occur while the post-write operation is performed in the background. there is. This concurrent performance of reads/writes and post-write of data to the array provides significant timing gain. Including the new operation code to support data post-write without requiring another activation operation helps ensure that data does not remain in non-volatile storage when a power-down occurs. In some instances, multiple pages of data can be written back into the array based on a single post-write indication, and the data post-write can be staggered to reduce peak power consumption.

예시적인 실시예들이 앞에 제공되었지만, 많은 변형들이 존재한다는 것이 인식되야 한다. 더욱이, 특정한 예시적인 배열들의 메모리 셀들을 포함하는 스핀-토크 MRAM 장치들을 사용하여 설명되었지만, 이 교시들은, 동일한 개념들이 적용될 수 있는 상이한 구조들을 갖는 다른 메모리 장치들에도 적용될 수 있다. 이러한 메모리 장치들의 예들에는 다른 저항성 메모리들 및 DRAM들이 포함된다. 이러한 메모리들은 개선된 랜덤 액세스 시간, 감소된 전력 소비, 및 증가된 데이터 보유 시간의 면에서 혜택을 얻을 것이다.Although exemplary embodiments have been provided above, it should be appreciated that many variations exist. Moreover, although described using spin-torque MRAM devices that include specific example arrangements of memory cells, these teachings are applicable to other memory devices having different structures to which the same concepts may be applied. Examples of such memory devices include other resistive memories and DRAMs. Such memories will benefit in terms of improved random access time, reduced power consumption, and increased data retention time.

앞에 게시된 특정 실시예들은 단지 예시적인 것일 뿐 제한하는 것으로서 취해져서는 않되는데, 이는, 여기의 교시들에서 혜택을 얻는, 당업자들에게 명백한, 상이하지만 등가의 방식들로 실시예들이 수정 및 실현될 수 있기 때문이다. 따라서, 상기 설명은 설명된 특정 형태로 본 게시물을 제한도록 의도된 것이 아니라, 반대로 첨부된 청구항에 의해 정의된 바와 같은 본 발명의 취지 및 영역 내에 포함될 수 있는 이러한 대안물, 수정물, 및 등가물을 포괄하도록 의도되므로, 당업자들은 본 발명의 취지 및 영역을 벗어나지 않으면서 다양한 변경들, 대체물들, 및 변화들을 그들의 폭넓은 형태로 행할 수 있다는 것을 이해할 것이다. The particular embodiments disclosed above are illustrative only and should not be taken as limiting, as the embodiments may be modified and realized in different but equivalent ways, which will be apparent to those skilled in the art having the benefit of the teachings herein. because it can Accordingly, the foregoing description is not intended to limit this disclosure to the particular form described, but on the contrary suggests that such alternatives, modifications, and equivalents may be included within the spirit and scope of the present invention as defined by the appended claims. Although intended to be encompassing, those skilled in the art will appreciate that various changes, substitutions, and changes may be made in their broad form without departing from the spirit and scope of the invention.

415: 캐시
470: 상태 비트들
450: 제어 회로
455: 지연 회로
415: cache
470: status bits
450: control circuit
455 delay circuit

Claims (20)

메모리로서,
비-휘발성 메모리 셀들의 어레이;
값을 저장하는 레지스터로서, 상기 값은 상기 메모리가 정상 모드 및 비-파괴 모드 중 하나에 있다는 것을 결정하는, 상기 레지스터;
상기 비-휘발성 메모리 셀들의 어레이 내의 페이지가 열려있는지 여부를 표시하는 상태 비트; 및
상기 비-휘발성 메모리 셀들의 어레이 및 상기 레지스터에 연결된 제어 회로를 포함하고, 상기 제어 회로는:
상기 메모리가 상기 비-파괴 모드에 있을 때, 상기 비-휘발성 메모리 셀들의 어레이에 대한 기록 동작들을 방지하고;
상기 메모리가 상기 비-파괴 모드에서 상기 정상 모드로 전환된다는 표시를 수신하고;
상기 메모리가 상기 비-파괴 모드에서 상기 정상 모드로 전환된다는 상기 표시에 응답하여, 상기 상태 비트를 클리어링(clearing)하도록 구성되고, 상기 표시는 상기 레지스터의 상기 값 내의 변경인, 메모리.
As a memory
an array of non-volatile memory cells;
a register that stores a value, the value determining that the memory is in one of a normal mode and a non-destructive mode;
a status bit indicating whether a page in the array of non-volatile memory cells is open; and
a control circuit coupled to the array of non-volatile memory cells and the register, the control circuit comprising:
prevent write operations to the array of non-volatile memory cells when the memory is in the non-destructive mode;
receive an indication that the memory is transitioning from the non-destructive mode to the normal mode;
and in response to the indication that the memory is transitioning from the non-destructive mode to the normal mode, clearing the status bit, the indication being a change in the value of the register.
제 1 항에 있어서,
상기 메모리는 상기 레지스터 및 상기 제어 회로에 연결된 모드 변경 검출 회로를 더 포함하고, 상기 모드 변경 검출 회로는 상기 메모리가 상기 비-파괴 모드에서 상기 정상 모드로 전환된다는 상기 표시를 제공하는, 메모리.
According to claim 1,
wherein the memory further comprises mode change detection circuitry coupled to the register and the control circuitry, the mode change detection circuitry providing the indication that the memory is transitioning from the non-destructive mode to the normal mode.
제 1 항에 있어서,
상기 상태 비트는 상기 비-휘발성 메모리 셀들의 어레이 내의 페이지가 닫혀있는지 여부와는 관계없이 클리어링되는, 메모리.
According to claim 1,
wherein the status bit is cleared regardless of whether a page in the array of non-volatile memory cells is closed.
삭제delete 제 1 항에 있어서,
상기 레지스터는 모드 레지스터인, 메모리.
According to claim 1,
wherein the register is a mode register.
제 1 항에 있어서,
상기 레지스터는 상기 비-파괴 모드에 대응하는 값을 디폴트(default)로 하는, 메모리.
According to claim 1,
Wherein the register defaults to a value corresponding to the non-destructive mode.
제 6 항에 있어서,
상기 메모리는 캘리브레이션 절차(calibration procedure)의 완료시에 자동으로 상기 비-파괴 모드를 나가는, 메모리.
According to claim 6,
wherein the memory automatically exits the non-destructive mode upon completion of a calibration procedure.
제 1 항에 있어서,
상기 어레이 및 상기 제어 회로에 연결된 제1 캐시; 및
상기 어레이 및 상기 제어 회로에 연결된 제2 캐시를 더 포함하고,
상기 제어 회로는:
제1 페이지에 대응하는 제1 활성화 명령에 응답하여:
제1 페이지 데이터를 상기 어레이 내의 제1 위치에서 상기 제1 캐시로 전달하고- 상기 제1 페이지 데이터는 상기 제1 페이지에 대응함 -;
열려있는 페이지가 있다고 표시하도록 상기 상태 비트를 설정하고;
상기 제1 페이지 데이터를 상기 제1 캐시에서 상기 제2 캐시로 전달하고;
상기 제1 페이지 데이터를 상기 제2 캐시에 전달한 후, 제2 활성화 명령에 응답하여:
제2 페이지 데이터를 상기 어레이 내의 제2 위치에서 상기 제1 캐시로 전달하고;
상기 제1 페이지 데이터를 상기 제2 캐시에서 상기 어레이 내의 상기 제1 위치로 전달하도록 더 구성된, 메모리.
According to claim 1,
a first cache coupled to the array and the control circuitry; and
a second cache coupled to the array and the control circuit;
The control circuit is:
In response to the first activation command corresponding to the first page:
pass first page data to the first cache at a first location in the array, the first page data corresponding to the first page;
set the status bit to indicate that there is an open page;
transfer the first page data from the first cache to the second cache;
After delivering the first page data to the second cache, in response to a second activation command:
pass second page data to the first cache at a second location in the array;
and transfer the first page data from the second cache to the first location in the array.
제 1 항에 있어서,
기록 동작들을 방지하는 것이 페이지 내의 상기 메모리 셀들 각각을 자가-참조 판독 동작의 일부로서 알려진 상태로 두는 기록 동작들을 방지하는 것을 포함하도록, 상기 메모리가 상기 비-파괴 모드에 있을 때, 상기 제어 회로는 상기 비-휘발성 메모리 셀들의 어레이에 대한 기록 동작들을 방지하도록 구성된, 메모리.
According to claim 1,
When the memory is in the non-destructive mode, the control circuitry is configured to: and prevent write operations to the array of non-volatile memory cells.
비-휘발성 메모리 어레이 및 제1 캐시를 포함하는 메모리의 동작을 위한 방법으로서,
상기 메모리 내의 데이터에 액세스하기 위한 제1 명령을 수신하는 단계;
상기 제1 명령을 수신하는 단계에 응답하여:
상기 메모리가 비-파괴 모드에 있다고 결정하는 단계로서, 상기 비-파괴 모드에서는, 상기 비-휘발성 메모리 어레이 내에 저장된 데이터가 방해받지 않는, 상기 결정하는 단계;
상기 제1 캐시 내의 데이터에 액세스하는 단계;
상기 제1 캐시 내의 상기 데이터에 액세스하는 단계 이후, 상기 메모리를 상기 비-파괴 모드에서 정상 모드로 전환시키는 단계; 및
레지스터에 저장된 값 내의 변경에 응답하여, 상기 변경은 상기 메모리가 상기 비-파괴 모드에서 상기 정상 모드로 전환하는 것을 표시하고, 상기 메모리 내의 열려있는 페이지들을 표시하는 상태 비트들을 클리어링하는 단계를 포함하는, 메모리의 동작을 위한 방법.
A method for operation of a memory comprising a non-volatile memory array and a first cache, comprising:
receiving a first command to access data in the memory;
In response to receiving the first command:
determining that the memory is in a non-destructive mode, wherein in the non-destructive mode, data stored in the non-volatile memory array is undisturbed;
accessing data in the first cache;
after accessing the data in the first cache, switching the memory from the non-destructive mode to a normal mode; and
in response to a change in the value stored in the register, the change indicating that the memory transitions from the non-destructive mode to the normal mode, and clearing status bits indicating open pages in the memory. , a method for the operation of memory.
제 10 항에 있어서,
상기 레지스터에 저장된 상기 값 내의 변경은 모드 변경 검출 회로에 의해 제공되는, 메모리의 동작을 위한 방법.
According to claim 10,
wherein a change in the value stored in the register is provided by mode change detection circuitry.
제 10 항에 있어서,
상기 상태 비트들은 상기 메모리 내의 페이지가 닫혀있는지 여부와는 관계없이 클리어링되는, 메모리의 동작을 위한 방법.
According to claim 10,
wherein the status bits are cleared regardless of whether or not a page within the memory is closed.
제10 항에 있어서,
상기 메모리는 캘리브레이션 절차의 완료시에 자동으로 상기 비-파괴 모드를 나가는, 메모리의 동작을 위한 방법.
According to claim 10,
wherein the memory automatically exits the non-destructive mode upon completion of a calibration procedure.
삭제delete 제 10 항에 있어서,
상기 메모리를 상기 비-파괴 모드에서 상기 정상 모드로 전환시키는 단계 이후:
제1 활성화 명령 및 상기 메모리 내의 제1 페이지에 대응하는 제1 주소를 수신하는 단계;
상기 제1 활성화 명령에 응답하여:
상기 제1 주소에 기초하여 메모리 셀들의 상기 어레이로부터 상기 제1 페이지에 대응하는 제1 페이지 데이터를 검색하는 단계;
상기 제1 페이지 데이터를 상기 제1 캐시 내에 저장하는 단계;
열려있는 페이지가 있다고 표시하도록 상기 상태 비트들 중 적어도 하나를 설정하는 단계;
상기 제1 페이지 데이터를 상기 제1 캐시에서 상기 메모리 상의 제2 캐시로 전달하는 단계;
상기 제1 활성화 명령을 수신한 후, 제2 활성화 명령 및 상기 메모리 내의 제2 페이지에 대응하는 제2 주소를 수신하는 단계;
상기 제2 활성화 명령에 응답하여:
상기 제2 주소에 기초하여 메모리 셀들의 상기 어레이로부터 상기 제2 페이지에 대응하는 제2 페이지 데이터를 검색하는 단계;
상기 제2 페이지 데이터를 상기 제1 캐시 내에 저장하는 단계; 및
상기 제2 캐시로부터의 상기 제1 페이지 데이터를 상기 제1 주소에 대응하는 위치의 메모리 셀들의 상기 어레이로 기록하는 단계를 더 포함하는, 메모리의 동작을 위한 방법.
According to claim 10,
After switching the memory from the non-destructive mode to the normal mode:
receiving a first activation command and a first address corresponding to a first page in the memory;
In response to the first activation command:
retrieving first page data corresponding to the first page from the array of memory cells based on the first address;
storing the first page data in the first cache;
setting at least one of the status bits to indicate that there is a page open;
transferring the first page data from the first cache to a second cache in the memory;
after receiving the first activation command, receiving a second activation command and a second address corresponding to a second page in the memory;
In response to the second activation command:
retrieving second page data corresponding to the second page from the array of memory cells based on the second address;
storing the second page data in the first cache; and
and writing the first page data from the second cache to the array of memory cells at a location corresponding to the first address.
메모리를 제어하기 위한 방법으로서,
상기 메모리에 복수의 캘리브레이션 명령들을 발행하는 단계로서, 상기 복수의 캘리브레이션 명령들은 상기 메모리가 비-파괴 모드에 있는 동안 실행되는 캘리브레이션 시퀀스(calibration sequence)에 대응하는, 상기 복수의 캘리브레이션 명령들을 발행하는 단계; 및
상기 복수의 캘리브레이션 명령들을 발행하는 단계 이후, 상기 메모리에 적어도 하나의 신호를 제공하는 단계를 포함하고, 상기 메모리에 적어도 하나의 신호를 제공하는 단계는:
상기 메모리에 레지스터 액세스 명령을 발행하는 단계; 및
상기 레지스터 내의 저장을 위한 값을 상기 메모리에 제공하는 단계를 포함하고, 상기 레지스터 내에 저장할 때, 상기 값은 상기 메모리가 상기 비-파괴 모드에서 정상 모드로 전환되게 하고,
상기 레지스터에 저장된 상기 값에 응답하여, 상기 메모리는:
상기 비-파괴 모드에서 상기 정상 모드로 전환하고;
상기 메모리 내의 열려있는 페이지들을 표시하는 상기 메모리 상의 상태 비트들을 클리어링하는, 메모리를 제어하기 위한 방법.
As a method for controlling memory,
issuing a plurality of calibration commands to the memory, the plurality of calibration commands corresponding to a calibration sequence that is executed while the memory is in a non-destructive mode; ; and
After issuing the plurality of calibration commands, providing at least one signal to the memory, wherein providing the at least one signal to the memory comprises:
issuing a register access command to the memory; and
providing the memory with a value for storage in the register, wherein when storing in the register, the value causes the memory to transition from the non-destructive mode to a normal mode;
In response to the value stored in the register, the memory:
switch from the non-destructive mode to the normal mode;
A method for controlling a memory comprising clearing status bits on the memory indicating open pages in the memory.
삭제delete 제 16 항에 있어서,
상기 상태 비트들은 상기 메모리 내의 페이지가 닫혀있는지 여부와는 관계없이 클리어링되는, 메모리를 제어하기 위한 방법.
17. The method of claim 16,
wherein the status bits are cleared regardless of whether a page in the memory is closed.
제 16 항에 있어서,
상기 메모리는 캘리브레이션 절차의 완료시에 자동으로 상기 비-파괴 모드를 나가는, 메모리를 제어하기 위한 방법.
17. The method of claim 16,
wherein the memory automatically exits the non-destructive mode upon completion of a calibration procedure.
제 16 항에 있어서,
상기 메모리에 상기 복수의 캘리브레이션 명령들을 발행하는 단계 전에, 상기 메모리에 모드 변경 신호를 제공하는 단계를 더 포함하고,
상기 모드 변경 신호에 응답하여, 상기 메모리는 상기 비-파괴 모드로 진입하는, 메모리를 제어하기 위한 방법.
17. The method of claim 16,
before issuing the plurality of calibration commands to the memory, further comprising providing a mode change signal to the memory;
In response to the mode change signal, the memory enters the non-destructive mode.
KR1020197034813A 2017-04-27 2018-04-19 Delay post-write in memory with calibration support KR102556115B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/499,136 US10650899B2 (en) 2017-04-27 2017-04-27 Delayed write-back in memory with calibration support
US15/499,136 2017-04-27
PCT/US2018/028250 WO2018200298A1 (en) 2017-04-27 2018-04-19 Delayed write-back in memory with calibration support

Publications (2)

Publication Number Publication Date
KR20190141235A KR20190141235A (en) 2019-12-23
KR102556115B1 true KR102556115B1 (en) 2023-07-18

Family

ID=62117003

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197034813A KR102556115B1 (en) 2017-04-27 2018-04-19 Delay post-write in memory with calibration support

Country Status (5)

Country Link
US (1) US10650899B2 (en)
EP (1) EP3616203B1 (en)
KR (1) KR102556115B1 (en)
CN (1) CN110678927B (en)
WO (1) WO2018200298A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
US11474698B2 (en) 2019-12-04 2022-10-18 Micron Technology, Inc. Reset verification in a memory system by using a mode register
US11636893B2 (en) 2020-10-19 2023-04-25 Micron Technology, Inc. Memory device with multiple row buffers
US11947453B2 (en) * 2020-10-19 2024-04-02 Micron Technology, Inc. Memory device with on-die cache
US11842777B2 (en) * 2020-11-17 2023-12-12 Sunrise Memory Corporation Methods for reducing disturb errors by refreshing data alongside programming or erase operations
KR20230105593A (en) * 2022-01-04 2023-07-11 에스케이하이닉스 주식회사 Electronic device and electronic system
US11966621B2 (en) * 2022-02-17 2024-04-23 Sandisk Technologies Llc Non-volatile storage system with program execution decoupled from dataload

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000030116A1 (en) 1998-11-17 2000-05-25 Lexar Media, Inc. Method and apparatus for memory control circuit
US20050226083A1 (en) 2002-04-25 2005-10-13 International Business Machines Corporation Destructive-read random access memory system buffered with destructive-read memory cache
US20050257120A1 (en) 2004-05-13 2005-11-17 Gorobets Sergey A Pipelined data relocation and improved chip architectures
JP2017010607A (en) 2016-10-05 2017-01-12 エスアイアイ・セミコンダクタ株式会社 Nonvolatile semiconductor storage circuit

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330636B1 (en) 1999-01-29 2001-12-11 Enhanced Memory Systems, Inc. Double data rate synchronous dynamic random access memory device incorporating a static RAM cache per memory bank
TW410295B (en) * 1999-03-02 2000-11-01 Via Tech Inc Memory access control device
US6687172B2 (en) * 2002-04-05 2004-02-03 Intel Corporation Individual memory page activity timing method and system
JP4229674B2 (en) * 2002-10-11 2009-02-25 Necエレクトロニクス株式会社 Semiconductor memory device and control method thereof
CN100452239C (en) * 2003-04-24 2009-01-14 富士通微电子株式会社 Semiconductor memory
US6845059B1 (en) * 2003-06-26 2005-01-18 International Business Machines Corporation High performance gain cell architecture
KR101286643B1 (en) * 2007-04-05 2013-07-22 삼성전자주식회사 Semiconductor memory device for selecting mode of bank independently and memory controller of the semiconductor memory device and method for controlling the semiconductor memory device
KR101953088B1 (en) * 2011-01-31 2019-03-04 에버스핀 테크놀러지스, 인크. Method of writing to a spin torque magnetic random access memory
EP2671155B1 (en) * 2011-01-31 2017-10-11 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
US8923041B2 (en) * 2012-04-11 2014-12-30 Everspin Technologies, Inc. Self-referenced sense amplifier for spin torque MRAM
JP2014053058A (en) * 2012-09-06 2014-03-20 Toshiba Corp Semiconductor memory device
US10146601B2 (en) 2013-06-12 2018-12-04 Everspin Technologies, Inc. Methods and devices for healing reset errors in a magnetic memory
KR102223980B1 (en) * 2013-08-21 2021-03-09 에버스핀 테크놀러지스, 인크. Non-destructive write/read leveling
JP6165008B2 (en) * 2013-09-25 2017-07-19 キヤノン株式会社 MEMORY CONTROL DEVICE, MEMORY CONTROL METHOD, INFORMATION DEVICE, AND PROGRAM
KR20160061704A (en) * 2014-11-24 2016-06-01 삼성전자주식회사 Memory device having page state inform function
CN105047229B (en) * 2015-08-03 2017-11-10 西安紫光国芯半导体有限公司 Self-testing circuit and method in a kind of memory cell piece for RRAM

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000030116A1 (en) 1998-11-17 2000-05-25 Lexar Media, Inc. Method and apparatus for memory control circuit
US20050226083A1 (en) 2002-04-25 2005-10-13 International Business Machines Corporation Destructive-read random access memory system buffered with destructive-read memory cache
US20050257120A1 (en) 2004-05-13 2005-11-17 Gorobets Sergey A Pipelined data relocation and improved chip architectures
JP2017010607A (en) 2016-10-05 2017-01-12 エスアイアイ・セミコンダクタ株式会社 Nonvolatile semiconductor storage circuit

Also Published As

Publication number Publication date
CN110678927B (en) 2023-08-01
KR20190141235A (en) 2019-12-23
EP3616203A1 (en) 2020-03-04
EP3616203B1 (en) 2024-02-21
US20180314635A1 (en) 2018-11-01
CN110678927A (en) 2020-01-10
WO2018200298A1 (en) 2018-11-01
US10650899B2 (en) 2020-05-12

Similar Documents

Publication Publication Date Title
KR102556115B1 (en) Delay post-write in memory with calibration support
US10657065B2 (en) Delayed write-back in memory
US20180366189A1 (en) Refresh architecture and algorithm for non-volatile memories
US8355291B2 (en) Resistive memory device and method of controlling refresh operation of resistive memory device
US6937535B2 (en) Semiconductor memory device with reduced data access time
US7277996B2 (en) Modified persistent auto precharge command protocol system and method for memory devices
US10141038B2 (en) Computer system and memory device
US10140062B1 (en) Automatic resumption of suspended write operation upon completion of higher priority write operation in a memory device
JP2006190402A (en) Semiconductor device
US8582389B2 (en) Write assist in a dual write line semiconductor memory
US9104646B2 (en) Memory disturbance recovery mechanism
KR102508132B1 (en) Magnetoresistive memory module and computing device including the same
KR101016132B1 (en) Method and system for providing an energy efficient register file
US8250298B2 (en) Mechanisms for reducing DRAM power consumption
JP2022544948A (en) computing memory system
US7894290B2 (en) Method and apparatus for performing internal hidden refreshes while latching read/write commands, address and data information for later operation
US11392516B2 (en) Memory devices and methods having instruction acknowledgement
US20130073790A1 (en) Magnetic random access memory with burst access

Legal Events

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