KR102509654B1 - 메모리에서의 지연된 후기록 - Google Patents

메모리에서의 지연된 후기록 Download PDF

Info

Publication number
KR102509654B1
KR102509654B1 KR1020187034160A KR20187034160A KR102509654B1 KR 102509654 B1 KR102509654 B1 KR 102509654B1 KR 1020187034160 A KR1020187034160 A KR 1020187034160A KR 20187034160 A KR20187034160 A KR 20187034160A KR 102509654 B1 KR102509654 B1 KR 102509654B1
Authority
KR
South Korea
Prior art keywords
cache
page
data
array
page data
Prior art date
Application number
KR1020187034160A
Other languages
English (en)
Other versions
KR20190003965A (ko
Inventor
토마스 안드레
사이드 엠. 알람
치트라 수브라마니안
자비드 에스. 바르카툴라
Original Assignee
에버스핀 테크놀러지스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에버스핀 테크놀러지스, 인크. filed Critical 에버스핀 테크놀러지스, 인크.
Publication of KR20190003965A publication Critical patent/KR20190003965A/ko
Application granted granted Critical
Publication of KR102509654B1 publication Critical patent/KR102509654B1/ko

Links

Images

Classifications

    • 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/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1693Timing circuits or methods
    • 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/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • 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
    • G06F2212/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • 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/2272Latency related aspects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Dram (AREA)

Abstract

이전의 오픈 페이지에 대응하는 데이터의 어레이에 대해 지연된 후기록을 갖는 메모리는 후기록 동작과 연관된 지연이 회피되는 것을 허용한다. 초기 활성화가 제 1 페이지를 오픈하고 그 페이지에 대한 판독/기록 동작이 완료된 후에, 메모리 셀의 어레이에 대한 오픈 페이지의 후기록은 새로운 페이지를 오픈하는 후속 활성화 동작의 완료 후까지 지연된다. 또 다른 활성화 동작의 부재 시에 후기록을 강제하는 기술이 또한 개시된다.

Description

메모리에서의 지연된 후기록
관련 출원
본 출원은 2016년 4월 28일자로 출원된 미국 출원 번호 제 15/141,379 호의 이득 및 그에 대한 우선권을 주장하고, 그 전체는 본 명세서에서 참조로 통합된다.
본 명세서에서의 본 발명은 일반적으로, 어레이에 대한 지연된 후기록(write-back)을 갖는 메모리 디바이스에 관한 것이고 특히, 메모리 디바이스에서 이러한 지연된 후기록 동작을 지원하기 위한 회로 및 방법에 관한 것이다.
스핀 토크 자기 메모리 디바이스는 자기 터널 접합부(MTJ)를 통한 판독 전류가 자기저항 스택의 상태에 기초하는 크기를 갖는 전압 강하를 초래하도록 자기 터널 접합부를 가로지르는 저항을 제어함으로써 정보를 저장한다. 각각의 자기 터널 접합부에서의 저항은 자기저항 스택 내의 자기저항 층의 상대적인 자기 상태에 기초하여 달라질 수 있다. 이러한 메모리 디바이스에서, 전형적으로 고정 자기 상태를 갖는 자기저항 스택의 일부 및 고정 자기 상태를 갖는 부분에 대해 2개의 가능한 상태 중 하나인 것으로 제어되는 자유 자기 상태를 갖는 또 다른 부분이 존재한다. 자기 터널 접합부를 통한 저항이 고정부에 대한 자유 부분의 방향에 기초하여 변화하기 때문에, 자유 부분의 방향을 설정함으로써 정보가 저장될 수 있다. 정보는 나중에 자유 부분의 방향을 감지함으로써 검색된다. 이러한 자기 메모리 디바이스는 본 분야에 잘 알려져 있다.
자기 랜덤 액세스 메모리(MRAM)와 같은 일부 자기저항 메모리 디바이스는 다른 메모리 디바이스에 의해 또한 이용되는 액세스 프로토콜을 지원한다. 예를 들면, 동기식 이중 데이터 레이트 프로토콜(예로서, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, 등)을 이용하는 동적 랜덤 액세스 메모리(DRAM) 디바이스는 본 분야에 잘 알려져 있다. 일부 MRAM 디바이스는 이러한 프로토콜을 지원하고, 여기서 DDR SDRAM 디바이스에 대한 동일한 동작 코드는 MRAM 디바이스에서 동일하거나 유사한 동작을 초래한다.
본 발명의 목적은 어레이에 대한 지연된 후기록을 갖는 메모리 디바이스를 제공하는 것이고 특히, 메모리 디바이스에서 이러한 지연된 후기록 동작을 지원하기 위한 회로 및 방법을 제공하는 것이다.
이전의 오픈 페이지에 대응하는 데이터의 어레이에 대해 지연된 후기록을 갖는 메모리는 후기록 동작과 연관된 지연이 회피되는 것을 허용한다. 초기 활성화가 제 1 페이지를 오픈하고 그 페이지에 대한 판독/기록 동작이 완료된 후에, 메모리 셀의 어레이에 대한 오픈 페이지의 후기록은 새로운 페이지를 오픈하는 후속 활성화 동작의 완료 후까지 지연된다. 또 다른 활성화 동작의 부재 시에 후기록을 강제하는 기술이 또한 개시된다.
도 1 및 도 2는 종래 기술의 메모리 디바이스에서의 데이터 액세스 동작의 다양한 양태의 상대적인 타이밍을 도시한 블록도.
도 3은 일 예시적인 실시예에 따른 메모리 디바이스에서의 데이터 액세스 동작의 다양한 양태의 상대적인 타이밍을 도시한 블록도.
도 4는 일 예시적인 실시예에 따른 자기 메모리 디바이스의 일부의 개략도.
도 5 내지 도 7은 예시적인 실시예에 따른 자기 메모리에서 지연된 후기록을 수행하고 지원하기 위한 방법에 대응하는 흐름도.
도 8은 또 다른 예시적인 실시예에 따른 연관된 타이밍도를 갖는 자기 메모리 디바이스의 일부의 개략도.
다음의 상세한 설명은 본질적으로 단지 예시적인 것이고 주제 또는 본 출원의 실시예 그리고 이러한 실시예의 이용으로 제한하도록 의도되지 않는다. 본 명세서에서 예시적으로서 설명된 임의의 구현은 반드시 다른 구현보다 바람직하거나 이로운 것으로서 해석될 필요는 없다.
예시의 단순성 및 명료성을 위해, 도면은 다양한 실시예의 일반적인 구조 및/또는 구성의 방식을 묘사한다. 잘 알려진 피쳐(features) 및 기술에 대한 설명 및 상세는 다른 피쳐를 불필요하게 모호하게 하는 것을 회피하기 위해 생략될 수 있다. 도면에서의 요소는 반드시 일정한 비율로 도시되지는 않는다: 일부 피쳐의 치수는 예시적인 실시예의 이해를 개선하는 것을 돕기 위해 다른 요소에 비해 과장될 수 있다.
용어 "포함하다", "포함한다", "갖다" 및 그의 임의의 변형은 비 배타적인 포함을 나타내기 위해 동의어로 이용된다. 용어 "예시적인"은 "이상적"이 아니라 "예"의 의미로 이용된다.
간결을 위해, 당업자에게 알려진 종래의 기술, 구조, 및 원리는 예를 들면, 표준 자기 랜덤 액세스 메모리(MRAM) 공정 기술, 바이어스 전압의 생성, 자력의 기본 원리, 및 메모리 디바이스의 기본 동작 원리를 포함하여 본 명세서에서 설명될 수 없다.
이 설명의 과정 동안, 다양한 예시적인 실시예를 도시하는 상이한 도면에 따라 유사한 요소를 식별하기 위해 유사한 부호가 이용될 수 있다.
간결성을 위해, 메모리의 판독 및 기록과 관련된 종래의 기술, 및 특정 시스템 및 서브시스템(및 그의 개별적인 동작 구성요소)의 다른 기능적 양태는 본 명세서에서 상세히 설명되지 않을 수 있다. 또한, 본 명세서에 포함된 다양한 도면에 도시된 연결 라인은 다양한 요소 사이의 예시적인 기능적 관계 및/또는 물리적 결합을 표현하도록 의도된다. 많은 대안적인 또는 부가적인 기능적 관계 또는 물리적 연결이 본 주제의 일 실시예에 존재할 수 있음을 유의해야 한다.
자기 메모리 디바이스 및 다른 메모리 디바이스는 종종, 복수의 뱅크 또는 서브어레이로 분할된 메모리 셀의 어레이를 포함한다. 이러한 메모리 디바이스에서, 뱅크 사이의 액세스가 데이터 처리량을 최적화하기 위해 인터리빙(interleaving)될 수 있도록 각각의 뱅크가 별개로 액세스될 수 있다. 일부 자기 메모리 디바이스는 DDR 메모리 프로토콜을 지원하고, 여기서 활성화 동작은 특정한 뱅크에서 메모리 셀의 페이지를 오픈한다. 메모리 셀의 "페이지"는 유닛으로서 함께 액세스되는 메모리 셀의 그룹인 것으로 이해된다. 일부 경우에서, "페이지"는 메모리 셀의 "행"을 구성할 수 있다. 페이지를 오픈하는 것은 페이지에 대한 데이터가 메모리 셀의 어레이로부터 데이터가 더 용이하게 액세스되는 캐시 또는 다른 형태의 임시 저장장치로 이동시킨다. 일단 페이지가 활성화(오픈)되면, 페이지에 대한 판독 및 기록 동작이 수행될 수 있다. 오픈 페이지에 대한 판독/기록 동작의 완료 시에, 페이지가 클로징(closing)된다. 페이지가 클로징될 때, 어레이는 후속 페이지 활성화를 위해 준비된 상태로 리턴되고, 클로징된 페이지에서의 데이터는 페이지를 다시 오픈하지 않고 판독 및 기록을 위해 다시 액세스될 수 없다. 일부 메모리 디바이스에서, 활성화 명령 동안 임시 저장장치로 이동된 데이터는 즉시 어레이에 후기록되고, 일부 경우에서, 페이지가 오픈되는 동안 수행된 기록 동작에 대응하는 데이터는 또한, 어레이에서 메모리 셀에 즉시 기록된다. 이러한 메모리 디바이스에서, 사전충전 동작은 비트 라인을 단지 사전충전하고 페이지에 대응하는 워드 라인을 디어서팅(de-asserting)할 수 있다. 다른 메모리 디바이스에서, 활성화 동안 임시 저장장치로 이동된 데이터 및 오픈 페이지에 기록된 데이터는 단지 페이지를 클로징하기 직전까지 어레이에 저장되지 않는다. 이와 같이, 그들 메모리 디바이스에서, 사전충전 동작은 또한, 임시 저장장치로부터 어레이로의 데이터의 후기록을 수행하는 것을 포함할 것이다. 데이터를 어레이에 다시 기록하기 위해 페이지를 클로징하기 직전까지 기다림으로써, 메모리 디바이스는 전력을 절약하거나 데이터의 이동 또는 수정과 연관된 타이밍 사양을 개선할 수 있다.
다수의 뱅크를 갖는 것은 다수의 페이지가 오픈되는 것을 허용하고, 그에 의해 액세스의 인터리빙을 인에이블링한다. 이것은 각각의 뱅크가 별개의 판독 및 기록을 허용하는 대응하는 캐시 또는 그 자신의 임시 저장장치를 갖기 때문이다. 도 1은 3개의 상이한 뱅크에서 3개의 상이한 페이지에 대응하는 복수의 메모리 판독의 인터리빙을 도시한다. 각각의 블록은 다른 진행중인 동작과 관련하여 특정한 동작에 의해 소비된 시간을 표현한다. 블록의 상부 행은 BANK1 PAGE1에 대한 판독 액세스를 표현한다. 110에서, BANK1에 대한 활성화 동작이 발생하고 있다. 활성화 동작 동안, PAGE1에 대응하는 데이터는 BANK1에 대응하는 어레이의 부분으로부터 검색되고 판독/기록 액세스를 위해 캐시에 저장된다. 하기에 더 상세하게 논의된 바와 같이, 활성화 동작은 특히, 자가 참조된 판독 동작을 이용하여 어레이에 저장된 데이터를 감지하는 자기저항 메모리 디바이스에서 매우 시간 소모적일 수 있다.
활성화 후에, 판독 요청은 출력될 특정한 데이터를 인출(fetch)하기 위해 판독 액세스 시간을 요구한다. 이것은 "CAS 레이턴시(latency)"에 대해 CL로 라벨링되는 블록(111)에 대응한다. CAS 레이턴시는 판독 요청의 수신과 판독 요청에 대응하는 데이터의 출력 사이의 시간을 표현하기 위해 공통적으로 이용된 용어이다. 그 시간은 오픈 페이지에서의 특정한 데이터의 선택 및 메모리 디바이스의 출력에 대한 그 데이터의 라우팅에 대응한다. 블록(112) 동안 판독 데이터가 출력된다. 특히, BANK1 PAGE1에 대한 단일 판독 액세스 만이 도시되지만, 페이지가 오픈되는 동안 많은 판독 및 기록 액세스가 발생할 수 있음이 이해된다. 도 1 및 도 2와 관련된 종래 기술의 메모리 디바이스에서, 페이지에 대한 모든 액세스가 완료되면, 사전충전 명령은 페이지가 블록(113)에서 클로징되게 하고 캐시에서의 데이터가 어레이에 다시 기록되게 한다. 어레이에 대한 이러한 후기록 동작은 또한, 데이터가 캐시에 있는 동안 판독 및 기록 동작을 수행하기 위해 요구된 시간에 비해 매우 시간 소모적일 수 있다.
도 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)을 도시한다.
도 1에 도시된 바와 같이, 순차적 액세스가 상이한 뱅크(예로서, 먼저 BANK1, 그 다음 BANK2, 및 그 다음 BANK3으로부터의 판독)에 있기 때문에, 액세스의 인터리빙은 판독 데이터가 메모리 디바이스에 의해 상대적으로 일정하게 출력될 수 있는 것을 허용한다. BANK1에 대한 판독 데이터(112) 바로 다음에 BANK2에 대한 판독 데이터(122)가 뒤따르고, 그것은 결과적으로 BANK3에 대한 판독 데이터(132)가 뒤따른다. 뱅크 사이의 인터리빙이 활성화, 판독 액세스 시간, 및 사전충전과 연관된 지연이 적어도 어느 정도 숨겨지는 것을 허용하기 때문에, 높은 처리량이 성취될 수 있다.
그러나, 도 2에 도시된 바와 같이, 일부 경우에서, 순차적 액세스는 동일한 뱅크에서의 상이한 페이지에 대한 것일 수 있다. 도시된 예에서, 블록(210)에서 BANK1 PAGE1이 활성화되고, 판독 액세스 시간(211) 후에 판독 데이터(212)가 출력된다. 다음 액세스가 BANK1 PAGE2에 대한 판독이면, BANK1의 PAGE1은 BANK1의 PAGE2가 활성화(220)를 통해 오픈될 수 있기 전에 사전충전(213)를 통해 클로징되어야 한다. 활성화(220)에 뒤이어, 판독 데이터(222)는 판독 액세스 시간(221) 이후까지 출력되지 않는다. 사전충전(223)은 그 다음, BANK1의 PAGE2를 클로징한다. 도 2로부터 명백한 바와 같이, 동일한 뱅크에 대한 이러한 백 투 백 액세스는 활성화, 판독 액세스 시간, 및 사전충전과 연관된 시간이 완전하게 숨겨지는 것을 허용하지 않는다. 판독 데이터의 마지막이 출력될 때(즉, 판독 데이터 블록(212)의 완료 약간 이전에) 사전충전 동작을 시작하는 것이 가능할 수 있지만, 도시된 바와 같이 제 1 페이지로부터의 판독 데이터 출력(212)과 제 2 페이지로부터의 판독 데이터 출력(222) 사이의 시간 지연이 중요하다.
현재의 동적 랜덤 액세스 메모리(DRAM)에서, 활성화 및 사전충전 동작과 연관된 타이밍은 데이터 액세스 사이클의 다른 양태의 타이밍보다 훨씬 크지 않고, 따라서 도 2에 도시된 것과 같은 백 투 백 동작의 지연이 허용가능할 수 있다. 그러나, MRAM에서, 활성화 및 후기록 동작은 종종 훨씬 더 오래 걸리고, 그에 의해 이러한 동일한 뱅크 순차 액세스에 대한 데이터 액세스 사이의 더 큰 바람직하지 않은 지연을 초래한다.
일부 MRAM에서, 자가 참조된 판독 동작은 액세스될 페이지에 대해 어레이에 저장된 데이터를 감지하기 위해 이용된다. 예시적인 자가 참조된 판독에서, 페이지에서의 메모리 셀의 각각을 통한 초기 저항이 감지되고, 그 다음 페이지에서의 모든 메모리 셀은 알려진 상태에 기록되고 마지막으로, 각각의 셀을 통한 사후 기록 저항이 다시 감지되며 기록 전에 감지된 초기 저항과 비교된다. 알려진 상태에 대한 기록 후에 저항이 동일한지의 여부는 메모리 셀의 초기 상태를 나타낸다. 특히, 자가 참조된 판독은 파괴적이며, 2개의 감지 동작 사이에 알려진 상태의 모든 메모리 셀을 기록한 채로 유지한다. 이러한 자가 참조된 판독 연산은 종종, 메모리 액세스의 다른 양태에 비해 상당한 시간이 걸린다. 예를 들면, MRAM에서 페이지를 활성화하는 것은 수백 나노초를 요구할 수 있는 반면에, 오픈 페이지에 대한 판독 동작은 대략 수십 나노초일 수 있다.
유사하게, 판독/기록 액세스의 완료 시에, 데이터의 페이지를 어레이에 후기록하기 위해 요구된 시간이 상당할 수 있다. 예를 들면, MRAM 디바이스의 수명을 연장시키기 위해, 스핀 토크 메모리 셀에서 자유 층의 상태를 신속하게 변화시킬 수 있는 큰 크기의 기록 전류 펄스는 그러한 큰 펄스가 자기저항 스택의 민감 층을 손상시킬 수 있기 때문에 전형적으로 회피된다. 층의 붕괴를 회피하기 위해, 더 낮은 크기 및 더 긴 지속기간의 기록 펄스가, 그들이 자유 층이 디바이스 층에 대해 덜 악영향을 미치면서 스위칭되는 것을 가능하게 하기 때문에 종종 이용된다. 메모리 디바이스에 대해 더 긴 수명을 촉진하면서, 이러한 긴 지속기간의 기록 펄스가 후기록 동작을 위해 필요한 시간을 연장시킨다.
본 명세서에 개시된 실시예는 자기저항 메모리 디바이스에서 전체 처리량을 개선하는 것을 돕기 위해 클로징된 페이지 데이터의 지연된 후기록을 활용한다. 이것은 후기록의 실행이 판독 및 기록과 연관된 다른 진행중인 동작의 타이밍에 악영향을 미치지 않는 시간까지 클로징되고 있는 페이지에 대응하는 데이터의 후기록을 지연시킴으로써 달성된다. 본 명세서에 개시된 바와 같이, 일부 실시예에서, 이전에 오픈 페이지에 대응하는 후기록은 액세스될 다음 페이지에 대한 활성화 동작 다음에 수행된다.
도 3은 지연된 후기록 개념을 도시하는데 도움이 된다. 도 3에 도시된 바와 같이, 블록(320)에서 BANK1 PAGE2에 대한 활성화가 발생한다. 판독 액세스 시간(321)에 이어서, 판독 데이터(322)가 출력된다. 일단 BANK1 PAGE2에 대응하는 활성화 동작이 완료되고 PAGE2 데이터가 어레이로부터 판독 및 기록 동작을 위해 이용된 캐시로 전달되면, 어레이에서의 BANK1은 더 이상 활성이 아니다. 이와 같이, 이전에 오픈된 뱅크에 대응하는 후기록 동작은 새로 활성화된 뱅크에 대한 판독 및 기록 동작이 발생하는 시간 동안 수행될 수 있다. 도 3에 도시된 바와 같이, 블록(313)에서의 BANK1 PAGE1에 대한 후기록 동작은 일단 BANK1 PAGE2에 대한 활성화 동작(320)이 완료되면 발생한다.
상기 논의된 바와 같이, 클로징되고 있는 뱅크에 대한 후기록 동작은 전형적으로, 그 뱅크에 대한 판독 및 기록 액세스가 완료되자마자 발생하고, 이러한 후기록 동작은 전형적으로, 메모리 디바이스에 의해 수신된 사전충전 명령에 의해 프롬프팅(prompting)된다. 본 명세서에서 논의된 바와 같이, 판독 및 기록 액세스의 완료 시에 즉시 후기록을 수행하는 대신에, 그에 의해 후속 활성화 동작이 그 후기록 동작이 완료될 때까지 어레이로부터의 데이터를 인출하는 것을 방지함으로써, 본 명세서에 개시된 실시예는 후기록이 숨겨질 수 있고 후속 활성화 동작의 타이밍에 어떠한 영향도 주지 않을 시간까지 그 후기록 동작을 지연시킨다. 이전에 오픈 페이지에 대한 후기록이 클로징된 페이지에 대응하는 데이터를 어레이에 기록하고 있기 때문에, 후기록 동작이 다음 페이지가 오픈된 후에 발생하도록 그것을 시프팅(shifting)함으로써 어떠한 불리한 지연도 초래되지 않는다. 즉, 또 다른 상이한 페이지가 현재 액세스되고 있으므로 데이터를 어레이에 다시 배치하기 위해 서두르지 않는다.
도 3에 도시된 바와 같이, 그 뱅크에 대한 다음 활성화 동작이 완료될 때까지 뱅크 내의 이전의 오픈 페이지에 대응하는 후기록을 지연시킴으로써, 그 뱅크와 연관된 사전충전 시간이 숨겨질 수 있고, 그에 의해 메모리 디바이스에 대한 레이턴시 및 처리량 특성이 크게 개선된다. 도 3에서, 메모리 디바이스의 초기 상태는 BANK1 PAGE1이 이전에 오픈되었던 시점에 대응하지만, 그 페이지에 대응하는 판독 및 기록 동작은 완료되었고, PAGE1 데이터는 어레이에 다시 기록할 준비가 된다. 후기록할 준비가 된 PAGE1 데이터에 의해, BANK1 PAGE2에 대응하는 활성화 명령이 수신되고, 그에 의해 PAGE2가 판독 및 기록 액세스를 위해 오픈될 것임을 나타낸다. PAGE2의 활성화 이전에 PAGE1에 대한 그 후기록 동작을 완료하는 대신에, PAGE2가 먼저 오픈되고, 일단 활성화가 완료되면, PAGE2를 활성화하거나 새롭게 오픈된 PAGE2에서의 데이터(예로서, 판독 액세스 시간(321) 및 판독 데이터(322))에 액세스하는 것과 연관된 동작 중 임의의 동작을 지연시키지 않고 PAGE1에 대한 후기록 동작이 발생할 수 있다.
BANK1 PAGE2에 대한 액세스에 이어서, BANK1의 PAGE3에 대한 활성화 동작은 블록(330)에서 발생한다. PAGE3에 대한 활성화의 완료 즉시, PAGE3에 대한 판독 액세스 시간(331) 및 판독 데이터(332)가 동시에 발생하고 있는 동안 BANK1 PAGE2에 대한 후기록이 블록(323)에서 발생할 수 있다. 유사하게, 일단 BANK1 PAGE4에 대한 활성화가 블록(340)에서 완료되면, PAGE3에 대한 후기록이 시작된다. 특히, 이전의 오픈 페이지에 대한 후기록 동작은 후기록이 발생하는 것을 방지할 다음 활성화 명령의 모든 부분이 완료되자마자 발생할 수 있다. 예를 들면, 후기록 및 활성화의 일부분이 메모리 디바이스 상의 동일한 회로(예로서, 기록 구동기, 컬럼 디코더, 등)를 활용하는 동안, 다른 부분은 후기록 동작이 시작할 때 활성화 동작의 일부 양태가 완료되지 않도록 독립적인 회로를 이용할 수 있다.
본 명세서에서 설명된 실시예는 이전의 오픈 페이지에 대응하는 데이터를 어레이에 후기록하기 위해, 새롭게 오픈된 페이지에 대한 판독 및 기록이 발생하고 있을 때, 활성화 동작 이후의 시간을 이용한다. 이것을 달성하기 위해, 이전의 오픈 페이지에 대응하는 데이터는 액세스될 새로운 페이지의 활성화를 간섭하지 않을 위치에 저장되어야 한다. 일부 실시예에서, 메모리 디바이스의 각각의 뱅크는 2개의 캐시 구조를 포함하고, 여기서 제 1 캐시는 오픈 페이지에 대한 판독/기록 동작을 위한 주, 또는 활성 캐시의 역할을 하고 제 2 캐시는 액세스가 완료되지만 후기록이 아직 발생하지 않은 페이지에 대응하는 데이터에 대한 임시 저장 위치의 역할을 한다.
도 4를 참조하면, 다양한 실시예에 따른 메모리 디바이스(400)의 일부의 개략도가 제공된다. 메모리 디바이스(400)는 메모리 셀의 어레이(405)를 포함한다. 일부 실시예에서, 메모리 셀은 비 휘발성 스핀 토크 MRAM 셀인 반면에, 다른 실시예에서 메모리 셀은 예를 들면, DRAM 셀 또는 다른 저항성 메모리 셀과 같은 다른 유형의 메모리 셀이다. 도 4에 도시된 바와 같이, 어레이(405)는 BANK1(410) 및 BANK2(420)를 포함하는 복수의 뱅크를 포함한다. 뱅크(410 및 420)의 각각은 뱅크(410 및 420) 내의 페이지에 대한 판독 및 기록 액세스를 위한 데이터를 일시적으로 저장하기 위해 이용된 회로의 대응하는 세트(414 및 424)를 각각 포함한다. BANK1(410)에 대한 회로(414)는 제 1 캐시(415), 제 2 캐시(416), 및 업데이트 회로(417)를 포함한다. 패리티 산출기(parity calculator)(418) 및/또는 다수 검출 회로(majority detection circuit)(419)를 포함할 수 있는 업데이트 회로(417)가 하기에 부가적으로 상세하게 논의된다.
도 4에 도시된 바와 같이, 캐시(415 및 416)는 BANK1(410)에 결합되어 데이터가 어레이(405)의 BANK1(410)과 캐시(415 및 416) 사이에서 전달되는 것을 허용한다. 일부 실시예에서, 캐시(415 및 416)의 각각은 정적 랜덤 액세스 메모리(SRAM) 메모리 셀을 포함하는 반면에, 다른 실시예에서, 캐시(415 및 416)는 데이터를 저장하기 위해 이용되는 레지스터, 플립 플롭(flip-flops), 또는 다른 저장 회로로 구성된다. 캐시(415, 416)는 BANK1로부터의 데이터의 페이지를 수용하기에 충분한 저장장치를 포함하고 또한, 페이지의 어드레스, 패리티(parity) 또는 페이지에 대한 다른 에러 정정 코드(ECC) 정보, 및 페이지와 관련된 임의의 반전 또는 다른 정보를 저장하기 위한 부가적인 저장장치를 포함할 수 있다. 일부 예시적인 실시예에서, 캐시(415 및 416)는 8 또는 16 비트/워드에서 대략 64 데이터 워드이다. 다른 예시적인 실시예에서, 캐시는 128 또는 256 워드를 저장한다. 일부 실시예에서, 워드 크기가 예를 들면, 8 비트로부터 16 비트로 증가할 때, 저장된 데이터 워드의 수를 유지하기 위해 뱅크가 조합된다. 캐시의 크기 및 액세스된 페이지의 크기는 애플리케이션의 필요에 맞게 적응될 수 있다.
도 4에 도시된 바와 같이, 어레이(405)에서의 각각의 뱅크는 캐시 및 업데이트 회로의 대응하는 세트를 갖는다. BANK2(420)는 업데이트 회로(427)로 캐시(425 및 426)에 결합되도록 도시된다. 각각의 뱅크에 대한 별개의 캐시 구조를 갖는 것은 상이한 뱅크에서의 다수의 페이지가 동시에 오픈되는 것을 가능하게 하고, 그에 의해 인터리빙된 액세스를 허용한다. 도 4에서 묘사된 실시예가 모든 뱅크에 대해 2개의 캐시를 도시할지라도, 다른 실시예에서 2개 보다 많은 캐시가 각각의 뱅크에 대해 포함되고, 그에 의해 하나보다 많은 페이지에 대한 후기록이 나중 시점까지 지연되는 것을 허용한다. 이러한 부가적인 캐시는 후기록을 위해 필요한 시간이 활성화 동작을 위해 필요한 시간보다 훨씬 길거나 액세스 패턴이 다수의 페이지에 대한 후기록의 연기로부터 이익을 얻을 실시예에서 적절할 수 있다. 여전히 다른 실시예에서, 각각의 뱅크는 판독/기록 동작을 위해 오픈 페이지의 저장을 위한 하나의 대응하는 캐시를 갖지만, 제 2 캐시를 하나 이상의 다른 뱅크와 공유하며, 여기서 제 2 캐시는 아직도 다시 기록되지 않은 클로징된 페이지에 대응하는 데이터를 저장하기 위해 독점적으로 이용된다. 뱅크 사이에 후기록 캐시를 공유하는 것은 두 뱅크가 동시에 후기록 캐시의 이용을 요구하는 충돌이 발생하지 않음을 보장하기 위해 그들 뱅크로 활성화 동작을 제한할 수 있음에 유의한다.
제어 회로(450)는 캐시(415 및 416) 뿐만 아니라, 업데이트 회로(417)를 포함하는 회로(414) 및 어레이(405)에 결합된다. 도 4에 도시된 실시예에서, 제어 회로(450)는 어레이(405)에서의 모든 뱅크 및 그들 뱅크에 대한 업데이트 회로와 모든 캐시 구조에 결합된다. 이와 같이, 제어 회로(450)는 도 4의 실시예에서 메모리 액세스 동작에 걸쳐 전역 제어(global control)를 제공한다. 다른 실시예에서, 각각의 뱅크에 대한 동작이 개별적으로 제어되도록 각각의 뱅크에 지정된 제어 회로가 제공된다.
예를 들면, 상태 기계, 프로세서, 마이크로제어기, 또는 로직 회로를 포함할 수 있는 제어 회로(450)는 데이터의 이동, 및 메모리 디바이스에 의해 지원된 다양한 메모리 액세스 동작에 대해, 데이터에 관해 수행된 동작을 제어하도록 구성된다. 제어 회로(450)는 명령(434) 및 재설정 신호(435)를 수신한다. 다른 실시예에서, 제어 회로(450)는 제어 회로(450)에 정보 또는 명령을 제공하는 메모리 디바이스 내부 또는 메모리 디바이스의 외부에 소싱된 부가적인 신호를 수신하여 데이터 저장 및 검색 동작을 가능하게 한다. 예를 들면, 제어 회로(450)는 어떠한 즉각적인 액세스도 임박하지 않음을 나타내는 자가 리프레시 신호를 수신할 수 있고 메모리 디바이스는 그러한 신호가 어서팅(asserting)되는 동안 다른 동작을 수행할 기회를 갖는다. 제어 회로(450)에 의해 수신된 명령(434)은 메모리 디바이스에 명령을 발행하는 외부 메모리 제어기 또는 다른 제어 디바이스로부터 수신된 명령을 포함할 수 있다. 예를 들면, 외부 메모리 제어기는 제어 회로(450)에 명령(434)를 제공할 수 있고 여기서, 이러한 명령은 활성화, 판독, 기록, 사전충전, 자동사전충전을 통한 판독, 자동사전충전을 통한 기록, 및 리프레시 명령을 포함한다. 다른 실시예에서, 메모리 디바이스의 동작을 지시하는 명령은 일부 공유 회로가 각각의 명령과 관련된 동작 중 일부를 수행하도록 계층적 방식으로 프로세싱될 수 있고, 제어 회로(450)는 메모리 디바이스로부터 수신된 더 높은 레벨의 명령으로부터 얻어지는 더 많은 국부화된 명령(434)을 수신한다.
동작시, 제어 회로(450)는 메모리 디바이스에 의해 수신된 제 1 활성화 명령에 응답하여, 어레이에서의 제 1 위치로부터 제 1 캐시로 제 1 페이지 데이터를 전달하도록 구성된다. 도 4에 대응하는 일례에서, 제 1 활성화 명령은 BANK1(410)에서의 FIRST PAGE(411)에 대응하는 데이터가 캐시(415)에 전달되도록 제어 회로(450)가 어레이(405) 및 캐시(415)에 적절한 신호를 제공하게 한다. 일부 실시예에서, 캐시(415)로의 FIRST PAGE(411)에 대한 데이터의 로딩은 FIRST PAGE(411)에 포함된 메모리 셀에 대한 자가 참조된 판독을 수행하는 것을 포함한다. 다른 실시예에서, 참조된 판독 동작(예로서, 여기서 각각의 메모리 셀의 저항이 거기에 저장된 데이터를 결정하기 위한 참조와 비교됨), 또는 각각의 메모리 셀에 저장된 데이터를 알아내기 위한 다른 기술이 캐시(415)로의 FIRST PAGE(411)에 대한 데이터를 로딩하기 위해 이용된다.
일단 FIRST PAGE(411)에 대한 데이터가 캐시(415)에 로딩되면, FIRST PAGE(411)는 "오픈된" 것으로 간주되고, FIRST PAGE(411)에 대한 판독 및 기록 동작은 캐시(415)에서의 데이터를 판독하거나 캐시(415)에 데이터를 중복기록함으로써 발생할 수 있다. 각각의 판독 또는 기록 명령은 FIRST PAGE(411)에서의 특정 단어 또는 단어 세트가 액세스되는 것을 가능하게 하는 어드레스 정보를 수반한다. 일단 FIRST PAGE(411)에 대한 모든 판독 및 기록 액세스가 완료되면, 기록 동작에 의해 부가된 새로운 데이터를 포함할 수 있는 FIRST PAGE(411)에 대한 데이터는 캐시(415)로부터 캐시(416)로 이동된다. 일부 실시예에서, FIRST PAGE(411)에 대한 판독/기록 동작이 완료된다는 표시는 메모리 디바이스에 의한 사전충전 명령의 수신에 기초한다. 다른 실시예에서, BANK1(410)에 대한 후속 활성화 동작이 메모리 디바이스에 의해 수신될 때까지, 데이터는 주 캐시로서 언급될 수 있는 캐시(415)에 유지된다. 하기에 부가적으로 상세하게 논의된 바와 같이, 부가적인 명령 또는 신호가 캐시(415)에서의 데이터가 캐시(416)로 또는 어레이(405)의 BANK1로 다시 직접적으로 이동되게 하기 위해 일부 실시예에서 이용된다.
제 1 캐시(415)로부터 제 2 캐시(416)로 제 1 페이지 데이터를 전달한 후에, 제 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)에 기록될 위치가 알려진다. 다른 실시예에서, 별개의 레지스터 또는 저장 위치는 패리티 정보 또는 반전 상태와 같은 임의의 다른 적절한 페이지 특정 정보와 함께 각각의 페이지에 대한 어드레스 정보를 저장하기 위해 이용될 수 있다.
패리티 정보 또는 다른 형태의 ECC가 일부 실시예에서 데이터 오류를 방지하거나 감소시키기 위해 이용된다. 패리티 산출은 본 분야에 잘 알려지고, 페이지 데이터를 갖는 뱅크에서의 페이지에 대한 패리티 비트의 세트를 저장하는 것은 데이터 유효성을 확인하기 위한 패리티 검사를 허용하고 일부 경우에서 데이터 오류의 정정을 허용할 수 있다. 도 4와 관련하여 상기 설명된 예에서, FIRST PAGE(411)에 대응하는 제 1 페이지 데이터가 어레이(405)에 다시 기록될 때, 그 데이터는 패리티 정보를 포함할 수 있다. FIRST PAGE(411)에 포함된 데이터가 FIRST PAGE(411)가 오픈되는 동안 수행되는 기록 동작에 의해 수정될 수 있기 때문에, 데이터가 어레이(405)에 다시 기록되기 전에 새로운 패리티 산출이 수행될 필요가 있다. 일부 실시예에서, 패리티 산출은 캐시(415)에 데이터와 함께 저장된 패리티 정보가 항상 현재가 되도록 페이지에 대한 각각의 기록 동작이 완료됨에 따라 수행된다. 이러한 실시예에서, 정확한 패리티 정보는 나중에 다시 기록하기 이전에 캐시(415)로부터 캐시(416)로 데이터와 함께 시프팅될 수 있다. 그러나, 이러한 패리티 산출을 실시간으로 수행하는 것은 시간 및 리소스 면에서 비용이 많이 들 수 있다(예로서, 여분의 전력 소비가 요구될 것이다). 이와 같이, FIRST PAGE(411)에 대한 어떠한 또 다른 기록 동작도 FIRST PAGE(411)에 대한 데이터가 캐시(416)로 이동될 때 발생하지 않을 것임이 알려지기 때문에, FIRST PAGE(411)에 대한 패리티 산출은 캐시(415)로부터의 캐시(416)까지의 데이터의 이동과 결부하여 수행될 수 있다. 도 4에서, 패리티 산출기(418)는 데이터가 캐시(415)로부터 캐시(416)로 전달될 때 패리티 정보가 업데이트되는 업데이트 회로(417)에 포함된다.
선택된 페이지에서의 모든 메모리 셀을 제 1 상태에 기록하는 파괴적인 자가 참조된 판독 동작이 활성화 동작의 종료시에 모든 셀을 동일한 상태로 두기 때문에, 페이지가 다시 기록되기 전에 페이지에서의 대다수의 비트가 제 1 상태(예로서, 바이너리(binary)("0")) 또는 제 2 상태(예로서, 바이너리("1"))에 있는지의 여부를 결정하는 것은 전력 소비를 감소시키는데 도움을 줄 수 있다. 예를 들면, 활성화 동작이 바이너리("0")에 대응하는 제 1 상태의 페이지에 모든 메모리 셀을 남겨두면, 그리고 데이터가 다시 기록될 준비가 될 때, 다시 기록될 페이지에서의 대다수의 비트가 "0"이고, 그 다음 메모리 셀의 절반 미만이 그들 셀에서의 자유 층을 바이너리("1")에 대응하는 상태로 변경하기 위해 이용되는 하나 이상의 기록 펄스를 요구할 것이다. 그러나, 페이지에서의 대다수의 비트가 "1"이면, 메모리 셀의 절반 이상이 그들의 상태를 변경하기 위해 기록되어야 할 것이다. 그러한 경우에, 이전에 "0"을 표현한 상태가 이제 "1"을 표현하도록 페이지에 대한 모든 비트를 반전시키는 것이 유용하다. 대다수가 상태에 대응하지 않을 때 모든 비트를 반전시킴으로써, 활성화가 완료될 때 메모리 셀이 남게되고, 후기록은 항상 페이지에서의 메모리 셀의 단지 절반에 대해 기록하는 것을 포함할 것이다.
대다수의 검출 후에 이러한 반전을 지원하기 위해, 각각의 페이지에 대해 반전 상태 비트가 유지되어 그 페이지에 대한 어레이(405)에 저장된 데이터가 반전되었는지 또는 그렇지 않은지를 나타낸다. 게다가, 페이지가 오픈된 동안 페이지에서의 데이터가 수정되면, 페이지의 후기록 이전에 각각의 페이지에 대해 다수 검출이 발생할 필요가 있다. 이와 같이, 다수 검출기(419)는 업데이트 회로(417)에 포함된다. 패리티 산출의 경우에서와 같이, 다수 검출은 각각의 기록 동작과 함께 실시간으로 수행될 수 있지만, 일단 페이지가 클로징하는 과정에 있으면 반전 비트의 설정 및 다수 검출을 수행하는 것이 더 효율적일 가능성이 있다. 따라서, 일부 실시예에서, 페이지에 대한 데이터가 제 1 캐시(415)로부터 제 2 캐시(416)로 전달될 때 다수 검출이 수행된다.
다양한 위치 사이에서 데이터를 이동시키고 패리티 산출, 다수 검출, 등과 연관된 단계를 수행하는 것과 연관된 모든 내부 동작을 가능하게 하기 위해, 제어 회로(450)는 적절한 동작이 적절한 순서로 및 적절한 시간에 수행되도록 메모리 디바이스 상의 회로에 지시하는 복수의 타이밍 신호를 생성한다. 일부 실시예에서, 이들 타이밍 신호는 제어 회로(450)에 포함되도록 도시되는 지연 회로(455)에 의해 생성된다. 일부 실시예에서, 지연 회로는 복수의 지연 블록 또는 회로를 포함하고, 상기 복수의 지연 블록 또는 회로는 메모리 어레이(405)에서 데이터에 액세스하는데 발생하는 다양한 기능과 연관된 타이밍 신호를 생성하기 위해 이용된다. 예를 들면, BANK1에서의 이전 페이지가 아직 다시 기록되지 않은 상황에서 BANK1에 대한 활성화 동작에 응답하여, 캐시(415)로부터의 데이터가 캐시(416)로 이동되고, 임의의 패리티 산출 및 다수 검출이 수행되고, 오픈될 페이지가 캐시(415)로 로딩되도록 복수의 타이밍 신호가 생성되며, 일단 활성화가 완료되면, 캐시(416)에서의 데이터는 어레이(405)로 다시 기록된다. 따라서, 활성화를 나타내는 신호의 단일 전이는 지연 회로(455)에 의해 시간적으로 적절히 이격된 다수의 신호 전이를 트리거링할 수 있어서, 적절한 시간에 적절한 동작이 발생하게 한다. 다양한 타이밍 신호 사이의 간격은 상이한 동작이 수행되는 상대 시간이 예를 들면, 프로그래밍가능한 레지스터에 값을 저장함으로써 조정될 수 있도록 프로그래밍가능할 수 있다.
일부 경우에서, 동일한 뱅크에서의 동일한 페이지에 대응하는 순차적 활성화가 수신될 수 있음에 유의한다. 예를 들면, FIRST PAGE(411)는 오픈될 수 있고, FIRST PAGE(411)에서의 데이터에 대한 복수의 판독/기록 동작이 수행된 다음, FIRST PAGE(411)가 클로징되어야 함을 나타내는 사전충전 명령이 수신될 수 있다. 일부 실시예에서, 제어 회로(450)가 다음 활성화 명령이 그렇게 행하기를 기다리고 있기 때문에 사전충전 명령의 수신은 데이터가 어레이로 다시 기록되는 것을 초래하지 않는다. 이와 같이, 새로운 활성화 동작이 메모리가 그것을 재오픈하도록 지시하는 FIRST PAGE(411)에 대응하여 수신되면, 어레이(405)로부터 캐시(415)로의 데이터의 전달은 FIRST PAGE(411)에 대한 데이터가 캐시(415)에 배치되는 것을 초래하지 않을 것이고, 이는 FIRST PAGE(411)에 대한 데이터가 어레이(405)의 BANK1(410)에 아직 돌아오지 않기 때문이다. 일부 실시예에서, FIRST PAGE(411)에 대한 데이터는 FIRST PAGE(411)에 대한 재활성화 명령이 수신될 때 여전히 캐시(415)에 있다. 이와 같이, 일부 실시예에서, 제어 회로(450)는 활성화 명령을 수반하는 어드레스를 오픈된 마지막 페이지의 어드레스와 비교하도록 구성되는 페이지 어드레스 비교기를 포함한다. 비교가 오픈될 새로운 페이지가 이전 페이지와 동일하다고 나타내면, 제어 회로(450)는 이전에 오픈한 페이지에 대한 데이터가 여전히 주 캐시(415)에 있다면 아무 것도 수행하지 않을 것이다. 오픈될 새로운 페이지가 이전 페이지와 동일하고 그 페이지에 대한 데이터가 이미 캐시(416)로 전달되었으면, 데이터는 데이터가 어레이로부터 다시 한번 검색되어 캐시(415)로 로딩되기 전에 캐시(415)로 직접적으로 다시 전달되거나 어레이(405)에 다시 기록될 수 있다.
이전 페이지의 지연된 후기록에 대한 또 다른 잠재적인 문제는 사전충전 명령에 응답하여 데이터의 이전 페이지가 다시 기록되지 않지만, 대신에 결코 오지 않는 또 다른 활성화 명령을 기다리고 있을 때 발생한다. 예를 들면, 턴 오프하기 전에 뱅크에 대한 최종 데이터 액세스는 캐시(415 또는 416)에 상주하는 액세스된 페이지에 대한 데이터가 다음 활성화를 기다리는 것을 초래할 수 있다. 그러한 활성화 없이, 어레이(405)에 대한 후기록은 정상적으로 개시되지 않을 것이다. 이와 같이, 전원 차단은 어레이(405)에 아직 다시 기록되지 않은 데이터로 발생할 수 있다. 캐시 구조가 휘발성 저장장치이면, 데이터가 손실될 수 있다.
일부 실시예에서, 이 문제는 각각의 뱅크에 대한 캐시 중 하나 또는 둘 모두에 대해 비 휘발성 저장장치를 이용함으로써 해결된다. 다른 실시예에서, 메모리 디바이스는 어떠한 새로운 활성화 명령도 수신되지 않을 때 어레이에 대한 후기록을 주기적으로 수행할 수 있다. 일부 실시예에서, 메모리 디바이스에 의해 수신된 리프레시 명령 또는 리프레시 신호는 메모리 제어기가 곧 활성화를 발행하지 않을 것이고, 메모리가 "리프레시" 동작을 수행할 기회를 가짐을 나타낸다. 이러한 리프레시 동작은 DRAM에서 메모리 셀의 어레이의 행의 하나 이상에서 커패시터 상에 전하를 보충하기 위해 이용된다. 리프레시를 수행하기 위해, DRAM에서의 모든 뱅크가 전형적으로 클로징된다. 이와 같이, 비록 MRAM이 리프레시 동작을 수행할 필요가 없더라도, 그것은 리프레시 명령 또는 신호를 모든 뱅크가 플로징되어야 하고 캐시에 현재 유지되는 페이지에 대응하는 데이터가 어레이로 다시 기록되어야 한다는 표시로서 취할 수 있다. 다른 실시예에서, 리프레시 명령/신호는 많은 뱅크 중 하나에 대한 후기록을 개시하기 위해 이용될 수 있으며, 여기서 메모리 디바이스는 어느 뱅크가 후기록되었는지를 추적하여, 그에 의해 어느 뱅크에서 다음 리프레시가 후기록을 트리거링할 것인지를 안다.
다른 실시예에서, 재설정 신호(435)는 어레이로의 후기록을 개시하기 위한 트리거로서 이용될 수 있다. 메모리에서의 데이터가 비 휘발성임을 보장하기 위해 재설정 신호가 어서팅되어야할 필요가 있음을 이용자에게 지정함으로써, 이용자는 전원 차단과 같은 이벤트 이전에 재설정 신호를 어서팅할 수 있고, 그에 의해 마지막으로 오픈된 페이지에 대한 데이터가 (가능한 패리티 및 반전 계산을 이용하여), 예를 들면 캐시(415)로부터 캐시(416)로 전달되고, 그 다음 메모리 어레이(405)에 다시 기록될 수 있게 한다.
여전히 다른 실시예에서, 새로운 동작 코드는 구체적으로, 또 다른 활성화에 대한 필요성 없이 후기록이 발생하게 하기 위해 이용될 수 있다. 예를 들면, "STORE"동작 코드는 메모리 제어기에 의해 메모리로 전송될 수 있으며, 여기서 STORE 동작 코드는 MRAM이 후기록을 기다리고 있는 임의의 행을 후기록하게 한다. 이러한 STORE 동작 코드는 그것이 단지, 하나의 뱅크에 대응하는 데이터를 어레이(STORE-BANKx, 여기서 x=뱅크 번호)에 다시 기록하도록 지시한다는 점에서 뱅크 고유일 수 있고, 그것은 뱅크의 서브셋에 대한 데이터가 다시 기록되게 할 수 있거나, 그것은 모든 뱅크에 대한 데이터가 다시 기록되게 할 수 있다(STORE-ALL). 이러한 새로운 동작 코드(들)는 메모리 디바이스 상의 임의의 휘발성 데이터를 클린 업(clean up)하기 위해 이용될 수 있어서, 전력이 제거되면 그것이 손실을 받지 않도록 어레이(405)의 비 휘발성 저장장치에 저장되도록 그것을 강제할 수 있다.
대용량 페이지(페이지 당 많은 비트) 또는 다수의 뱅크에 대한 후기록 동작이 발생할 때, 후기록 동작과 연관된 전력 및 전류 스파이크를 감소시키기 위해 메모리 셀의 서브세트에 대한 후기록 동작을 스태거링(staggering)하는 것이 바람직할 수 있다. 이러한 스태거링에서, 후기록과 관련된 전류 인출(current draw) 및 전력 소비가 시간적으로 분산되도록 메모리 셀의 부분은 상이한 시간에 다시 기록된다. 따라서, 다시 기록될 데이터의 제 1 부분은 데이터의 제 2 부분과 상이한 시간에 기록된다. 예를 들면, 대용량 페이지에 대한 후기록에서, 페이지에서의 비트 중 절반이 먼저 다시 기록되고 그 다음, 비트의 나머지 절반이 나중에 다시 기록될 수 있다. STORE-ALL 명령 또는 동작 코드에 대응하는 또 다른 예에서, 뱅크의 절반에 대한 데이터가 먼저 다시 기록되고 그 다음, 뱅크의 다른 절반에 대한 데이터가 다시 기록된다. 또 다른 STORE-ALL 예에서, 뱅크의 각각에서의 비트 중 절반이 먼저 다시 기록되고 그 다음, 각각의 뱅크에서의 비트 중 다른 절반이 다시 기록된다. 여전히 또 다른 STORE-ALL 예에서, 하나의 뱅크 또는 뱅크 그룹이 또 다른 뱅크 또는 뱅크의 그룹에서의 후기록 동작(들)의 완료를 기다리고 있도록 후기록 동작이 직렬화된다(serialized). 후기록 동작의 이러한 스태거링은 많은 단계로 나누어질 수 있고, 프로그래밍되도록 설정될 수 있으며, 뱅크 특정, 메모리 셀 특정, 또는 둘 모두일 수 있다.
지연 회로(455)가 재기록 동작을 수행하기 위해 이용된 타이밍 신호를 생성하기 위해 이용되고, 이러한 신호가 트리거 신호에 응답하여 생성된 지연 기반 신호이면, 후기록 동작은 클록 신호에 대한 필요성 없이 달성될 수 있다. 이것은 시스템이 후기록이 발생해야 한다는 표시(예로서, 리프레시, 자가 리프레시, 재설정, 또는 STORE 명령)를 발행하고 그 다음, 다시 기록되지 않는 데이터에 대한 근심 없이 클록을 턴 오프하는 것을 허용한다. 후기록이 스태거링될 때, 지연 회로는 일부 후기록 동작이 다른 것 이전에 발생함을 보장하기 위해 피드백 또는 데이지 체인(daisy-chain) 다수 지연 회로를 이용할 수 있다.
뱅크에서의 모든 페이지가 어레이(405)에 다시 기록된 후에, 다음 활성화 동작은 캐시(415)에 저장된 데이터의 후기록을 초래해서는 안된다. 이와 같이, 뱅크가 오픈되고/되거나 후기록을 기다리고 있는 페이지를 갖는지의 여부를 나타내기 위해 각각의 뱅크에 대해 플래그가 이용될 수 있다. 따라서, 디바이스가 먼저 턴 온될 때, 어떠한 페이지도 오픈되지 않고 후기록을 기다리고 있음을 나타내는 플래그가 클리어(clear)된다. 제 1 페이지가 오픈될 때, 후속 활성화가 제 1 페이지 데이터의 후기록을 트리거링하도록 플래그가 설정된다. STORE 또는 다른 후기록 표시가 수신되면, 데이터는 다시 기록되고 플래그는 클리어된다. 일부 실시예에서, 표준 호환 메모리 디바이스에 이미 존재하는 상태 레지스터가 그러한 플래그를 저장하기 위해 이용될 수 있다.
일부 실시예에서, 뱅크가 오픈되거나 다시 기록될 대기중인 데이터를 갖는지의 여부와 연관된 플래그는 테스팅, 번인(burn-in), 또는 정상 동작과 상이한 방식으로 메모리 디바이스를 엑서사이징(exercising)시키기 위해 설계되는 다른 동작을 지원하도록 조작될 수 있다. 예를 들면, 일부 테스팅 동작은 거기에 저장된 실제 데이터에 대한 걱정 없이 뱅크 내 동일한 페이지에 계속해서 액세스하기를 원한다. 그 뱅크에 대한 오픈 표시를 클리어하게 유지하고 활성화될 페이지에 대한 어드레스의 활성화된 마지막 페이지와의 비교를 수행하지 않음으로써, 메모리 디바이스는 이미 오픈되는 페이지를 오픈하려는 시도에 응답하여 아무것도 하지 않기보다 원하는 대로 엑서사이징될 수 있다.
도 4와 관련한 상기 논의가 새로 활성화된 페이지를 주 캐시(415)로 전달하는 것과 캐시 사이에 데이터를 이동시키기보다 다른 실시예에서, 다시 기록하기 이전에 2차 후기록 캐시(416)로 그 데이터를 이동시키는 것을 설명할지라도, 캐시의 역할은 변경될 수 있다. 예를 들면, 제 1 활성화는 데이터의 제 1 페이지를 제 1 캐시로 로딩할 수 있는 반면에, 제 2 활성화는 데이터의 제 1 페이지를 제 1 캐시로부터 어레이로 다시 기록하기 전에 데이터를 제 2 페이지를 제 2 캐시로 로딩한다. 제 1 페이지에 대한 판독 및 기록은 제 1 캐시를 이용하여 발생할 것이고, 제 2 페이지에 대한 판독 및 기록은 제 2 캐시를 이용할 것이다.
도 5 내지 도 7은 메모리 디바이스에서 지연된 후기록을 지원하기 위한 방법의 실시예의 예시적인 실시예 또는 양태를 도시하는 흐름도이다. 하나의 예에서, 메모리 디바이스는 스핀 토크 자기 터널 접합부 메모리 셀의 어레이를 포함한다. 흐름도에 포함된 동작은 디바이스를 동작시키기 위해 이용된 전체 프로세스의 일부만을 표현할 수 있다. 설명의 목적을 위해, 도 5 내지 도 7에서의 방법의 다음의 설명은 도 4와 관련하여 상기 언급된 요소를 언급할 수 있다. 방법이 임의의 수의 부가적이거나 대안적인 동작을 포함할 수 있고, 도 5 내지 도 7에 도시된 동작이 도시된 순서로 수행될 필요가 없으며, 방법이 본 명세서에서 상세히 설명되지 않은 부가적인 기능을 갖는 보다 포괄적인 절차 또는 프로세스에 통합될 수 있음이 인식되어야 한다. 게다가, 도 5 내지 도 7에 도시된 동작 중 하나 이상은 의도된 전체 기능이 온전하게 유지되는 한 일 실시예로부터 생략될 수 있다.
도 5를 참조하면, 510에서, 메모리 디바이스의 제 1 뱅크에서의 제 1 페이지에 대한 제 1 활성화 명령이 수신된다. 520에서, 제 1 활성화 명령에 응답하여, 데이터의 제 1 페이지가 어레이로부터 검색되고 메모리 디바이스 상의 제 1 캐시에 저장된다. 일단 제 1 페이지가 이러한 방식으로 활성화되면, 제 1 페이지에서의 데이터에 대한 판독 및 기록 동작은 제 1 캐시에 액세스함으로써 발생할 수 있다.
530에서, 제 1 뱅크에서의 제 2 페이지에 대한 제 2 활성화 명령이 수신된다. 도 4와 관련하여 상기 논의된 바와 같이, 액세스를 위해 어레이의 제 1 뱅크로부터 제 1 캐시로 제 2 활성화 명령에 대한 데이터를 이동시키기 위해, 제 1 페이지에 대응하는 데이터는 최종적으로 어레이로 다시 기록되기 전에 제 2 캐시로 이동된다. 그러나, 제 2 페이지에 대한 활성화가 완료된 이후까지 제 1 페이지에 대응하는 데이터의 후기록을 지연시킴으로써, 제 1 페이지 데이터를 다시 기록하는 것과 연관된 시간이 숨겨질 수 있고, 제 2 페이지로 지향된 임의의 판독 또는 기록 동작을 지연시키지 않을 것이다.
540에서, 제 2 활성화 명령에 응답하여, 메모리는 어레이로부터 제 2 페이지 데이터를 검색하기 시작한다. 550에서, 제 1 페이지 데이터는 제 1 캐시로부터 제 2 캐시로 전달된다. 특히, 제 1 페이지 데이터의 전달은 제 2 페이지 데이터가 거기에 저장되기 전에 제 1 페이지 데이터가 제 1 캐시 외부에 있는 한 제 2 페이지 데이터의 검색이 개시되는 것과 동시에 발생할 수 있다. 도 5의 흐름도가 제 1 페이지 데이터의 전달 전에 제 2 페이지 데이터 검색이 시작됨을 나타낼지라도, 이들 단계의 순서는 어떠한 충돌도 존재하지 않는 한 중요하지 않다. 일부 실시예에서, 550에서의 전달은 제 2 활성화 명령에 응답하여 시작하는 반면에, 다른 실시예에서 제 2 활성화 명령 이전에 수신된 제 1 페이지에 대응하는 사전충전 명령에 의해 전달이 트리거링된다. 따라서, 사전충전 명령은 제 1 페이지 데이터의 제 1 캐시로부터 제 2 캐시로의 이동을 트리거링할 수 있지만, 데이터는 후속 활성화 명령이 그것이 다시 기록되게 할때까지 제 2 캐시에 남을 수 있다.
특히, 일부 실시예에서, 사전충전 명령은 제 1 캐시로부터 제 2 캐시로의 데이터의 이동을 트리거링하기 위해 이용되지 않는다. 이러한 실시예에서, 사전충전 명령은 메모리 디바이스가 사전충전 명령에 응답하여 아무것도 하지 않도록 하는 어떠한 기능도 제공하지 않을 수 있다. 사전충전 명령에 대한 필요성을 제거함으로써, DDR 메모리 디바이스를 위해 이용된 것과 같은 표준 프로토콜에서 이러한 사전충전 명령의 제공과 연관된 타이밍은 메모리 시스템 설계자에게 더 많은 융통성을 허용하는 방식으로 완화될 수 있다.
550에서 제 1 페이지 데이터를 제 1 캐시로부터 제 2 캐시로 전달하는 것은 적절한 패리티, 또는 다른 ECC 정보가 제 1 페이지 데이터가 어레이에 다시 기록될 때 이용가능하도록 551에서 패리티 산출을 수행하는 것을 포함할 수 있다. 유사하게, 552에서 다수 검출 및 반전은 제 1 캐시로부터 제 2 캐시로의 데이터 전달의 일부로서 포함될 수 있다. 이 시점에서 패리티 산출 및 다수 검출을 수행하는 것은 제 1 페이지에 대한 임의의 기록이 완료됨에 따라 의미가 있고, 따라서 전달되는 데이터는 어레이에서의 데이터의 저장과 관련된 패리티 및 반전 결정과 관련하여 최종적이다. 캐시 사이에 데이터가 전달되는 동안 패리티 산출 및 다수 결정이 행해질 수 있을지라도, 다른 실시예에서 이러한 동작이 그러한 전달이 발생하기 전후의 다른 시점에서 수행될 수 있다.
560에서, 제 2 페이지 데이터는 제 1 캐시에 저장되고, 그에 의해 제 2 활성화 동작의 완료를 표시한다. 제 2 활성화 동작이 완료되었기 때문에, 570에서 제 2 캐시로부터 어레이로의 제 1 페이지 데이터의 후기록은 제 2 활성화 동작을 간섭하지 않고 발생할 수 있다. 일부 실시예에서, 제 1 페이지 데이터의 후기록이 제 2 페이지 데이터가 제 1 캐시로 로딩될 때까지 발생하지 않을지라도, 다른 실시예에서, 후기록이 진행중인 제 2 활성화 동작을 간섭하지 않는 시점보다 더 일찍 시작할 수 있음에 유의한다. 일부 실시예에서, 후기록은 데이터의 페이지가 반전되는지의 여부를 나타내기 위해 페이지에서의 비트의 반전 및 반전 플래그의 설정을 포함한다.
도 6은 뱅크 내의 동일한 페이지가 순차적으로 2번 활성화되는 시나리오의 흐름도이다. 610에서, 제 1 뱅크에서의 제 1 페이지에 대한 제 1 활성화 명령이 수신된다. 620에서, 제 1 활성화 명령에 응답하여, 제 1 페이지 데이터가 어레이로부터 검색되어 제 1 캐시에 저장된다. 상기 논의된 바와 같이, 제 1 페이지의 오픈은 뱅크 내의 페이지가 오픈됨을 나타내기 위해 제 1 뱅크에 대한 플래그를 설정하는 것을 포함할 수 있다. 일단 제 1 페이지가 오픈되면, 제 1 페이지에서의 데이터에 대한 판독 및 기록 액세스가 제 1 캐시를 이용하여 수행된다. 일단 그들 판독 및 기록 액세스가 완료되면, 제 1 페이지에 대응하는 사전충전 명령이 수신될 수 있지만, 지연된 후기록 동작이 메모리 디바이스에서 수행되고 있기 때문에, 사전충전 명령은 데이터가 제 1 페이지로부터 제 2 캐시로 시프팅되거나, 메모리 어레이에 다시 기록되는 것을 초래하지 않을 수 있다.
630에서, 제 1 뱅크에서의 제 2 페이지에 대한 제 2 활성화 명령이 수신된다. 제 1 뱅크에 대해 이미 오픈 페이지가 존재하기 때문에, 640에서 제 1 페이지에 대한 어드레스는 제 2 페이지에 대한 어드레스와 비교된다. 650에서, 제 1 페이지에 대한 어드레스가 제 2 페이지에 대한 어드레스와 매칭한다고 결정되면, 방법은 660으로 진행하고 여기서, 제 1 페이지 데이터가 제 1 캐시에 계속 남아있게 된다. 제 1 캐시에 제 1 페이지 데이터를 남기는 것에 더하여, 제 2 활성화 명령의 결과로서 정상적으로 발생할 임의의 후기록이 또한 차단될 수 있다. 다시 어레이에 대한 제 1 페이지 데이터의 후기록을 차단하는 것은 제 1 페이지 데이터에 대응하는 어레이의 부분이 활성화 명령 이후에 중간 상태로 남으면, 제 1 페이지 데이터의 최종 후기록이 손상되지 않도록 그 중간 상태가 보존됨을 보장한다. 예를 들면, 제 1 페이지 데이터가 어레이에서 페이지에 있는 모든 메모리 셀을 "0" 또는 재설정 상태로 두는 자가 참조된 판독을 이용하여 어레이로부터 판독되면, 후기록은 단지, 기록될 "1" 또는 설정 상태를 저장하는 그들 메모리 셀을 요구한다. 데이터가 제 1 캐시에 유지되더라도 제 1 페이지 데이터의 후기록이 제 2 활성화 명령에 응답하여 발생하도록 허용되면, 이후의 후기록은 0 및 1 둘 모두를 다시 기록하도록 요구할 수 있고, 그에 의해 이후의 후기록 동작을 복잡하게 한다.
따라서, 종래의 메모리 디바이스에서, 사전충전 명령에 의한 제 1 페이지의 클로징이 제 1 페이지에 대한 데이터가 메모리 어레이에 다시 저장되는 것을 초래할 것이지만, 본 명세서에서 설명된 지연된 후기록의 실시예는 제 1 페이지 데이터가 후속 활성화 동작이 개시될 때까지 제 1 캐시 구조에 남을 것을 초래한다. 제 2 활성화 동작이 이미 오픈된 동일한 페이지에 대한 것이면, 제 1 캐시에 저장될 새 데이터를 인출할 필요가 없다. 실제로, 어레이로부터 새로운 데이터를 인출하려는 시도는 자체 참조된 판독이 활성화 동작 중에 이용되면 가비지 데이터(garbage data)가 제 1 캐시로 로딩되는 것을 초래할 것이다. 이와 같이, 동일한 뱅크 내의 동일한 페이지에 대한 백-투-백 액세스가 발생하면, 메모리 디바이스는 데이터의 제 1 페이지에 대한 판독 및 기록 액세스를 위한 제 1 캐시를 준비하기 위해 임의의 데이터 전달을 행할 필요가 없는데, 이는 그 데이터가 여전히 캐시에 남아 있기 때문이다.
650에서, 동일한 페이지가 제 2 활성화 명령에 의해 활성화되지 않는다고 결정되면, 방법은 제 2 활성화 명령을 가능하게 하기 위해 필요한 동작을 수행하는 것을 진행한다. 670에서, 제 1 페이지 데이터는 제 1 캐시로부터 제 2 캐시로 전달되며, 이는 상기 논의된 바와 같이 패리티 산출 및 다수 결정을 포함할 수 있다. 또한 670에서, 제 2 페이지 데이터가 어레이로부터 검색되어 제 1 캐시에 저장되고, 그에 의해 제 2 페이지 데이터가 제 1 페이지 캐시를 이용하여 판독 및 기록 액세스를 위해 이용가능하게 한다. 마지막으로, 일단 제 2 페이지에 대응하는 활성화 동작이 완료되거나, 제 1 페이지 데이터의 후기록이 활성화를 간섭하지 않을 완료 단계에 도달하면, 어레이에 대한 제 1 페이지 데이터의 후기록이 발생한다.
도 7의 흐름도는 메모리 디바이스에 의해 후기록 표시가 수신되는 시나리오를 도시하는데 도움을 주며, 여기서 후기록 표시는 메모리 디바이스에 임의의 오픈 페이지, 또는 후기록을 기다리는 클로징된 페이지에 대응하는 데이터가 비 휘발성 메모리로 리턴되도록 그들 페이지가 클린 업되어야함을 알린다. 이러한 표시는 메모리 디바이스에서의 데이터가 비 휘발성 저장장치에 저장되는 것을 보장하기 위해 액티비티(activity)를 정지한 후에 메모리 디바이스에 주기적으로 제공될 수 있다.
710에서, 후기록에 대한 표시가 수신된다. 도 4와 관련하여 상기 논의된 바와 같이, 후기록에 대한 표시는 712에서 재설정 신호의 수신, 714에서 저장 명령의 수신, 또는 716에서 자가 리프레시 모드로의 진입을 포함하는 리프레시 신호 또는 명령의 수신을 포함할 수 있다. 일부 실시예에서, 후기록 표시는 메모리 디바이스가 전원 차단 모드에 들어갈 때마다 자동적으로 제공된다. 도 4와 관련하여 또한 상기 논의된 바와 같이, 714에서 수신된 것과 같은 저장 명령은 하나 이상의 뱅크가 작동되어야 함을 나타낼 수 있다. 예를 들면, 메모리 디바이스가 전원 차단될 예정이면, 휘발성 저장장치에 현재 저장된 임의의 메모리 데이터가 비 휘발성 어레이에 다시 기록되도록 모든 뱅크가 클린 업되어야 함을 나타내는 저장 명령이 수신될 수 있다.
710에서 후기록에 대한 표시의 수신 후에, 720에서, 후기록에 대한 표시가 속한 특정한 뱅크가 오픈 페이지를 갖는지의 여부가 결정된다. 그렇지 않으면, 현재 휘발성 저장장치에 있는 뱅크에 대응하는 어떠한 데이터도 존재하지 않기 때문에 어떠한 후기록도 필요하지 않다. 720에서 뱅크가 오픈 페이지를 갖는다고 결정되면, 730에서 제 1 캐시에 저장된 데이터는 비 휘발성 어레이로 전달된다. 730에서의 전달은 제 1 캐시로부터 어레이로의 직접 전달을 포함할 수 있거나, 메모리 디바이스 내의 회로가 셋 업되면, 데이터는 어레이로 가는 도중에 제 2 캐시를 통해 라우팅되며, 730에서의 전달은 제 2 캐시로부터 다시 기록하기 이전에 데이터를 제 1 캐시로부터 제 2 캐시로 이동시키는 것을 포함한다. 캐시 사이 또는 캐시 중 하나로부터 어레이로의 전달은 상기 논의된 바와 같이 패리티 산출 및 다수 결정을 포함할 수 있다.
730에서 발생하는 후기록이 다수의 메모리 셀이 기록되는 것을 수반할 때, 후기록은 다수의 단계로 분할될 수 있다. 예를 들면, 732에서 데이터의 제 1 부분이 어레이로 전달되고, 그 다음 734에서 데이터의 제 2 부분이 어레이로 전달된다. 더 구체적인 예에서, STORE-ALL 명령은 디바이스를 종료하기 이전에 트리거링될 수 있다. 이러한 STORE-ALL 명령은 다수의 뱅크에 대응하는 데이터가 어레이에 다시 기록되는 것을 초래할 수 있다. 높은 피크 전력 소비 및 많은 메모리 셀에 동시에 기록하는 것과 연관된 큰 전류 스파이크를 회피하기 위해, 뱅크의 제 1 절반에 대응하는 후기록 동작은 732에서 수행될 수 있는 반면, 뱅크의 제 2 절반에 대응하는 기록 동작은 734에서 수행된다. 다른 실시예에서, 각각의 뱅크 내의 후기록 동작이 제때에 트리거링되도록 각각의 뱅크에서의 메모리 셀의 일부는 단계(732 및 734)의 각각 동안 기록된다.
도 8은 지연된 후기록 동작의 이용을 포함하는 메모리 디바이스의 일부와 연관된 회로도를 도시한다. 개략도 아래의 타이밍도는 회로의 기능을 도시하는데 도움을 준다. 시동시, OPEN 신호(992)는 로우이며, 그에 의해 뱅크에서의 어떠한 페이지도 오픈되지 않고 따라서, 다음 활성화와 함께 후기록을 기다리고 있음을 나타낸다. /ACTIVATE 신호(990)가 에지(961)에서 처음으로 로우로 어서팅될 때, ACTIVATE TIMING 신호(993)가 966에서 하이로부터 로우로 전이하도록 도시되고, 이는 활성화 동작에서 이용된 많은 타이밍 신호의 생성을 표현한다. 도 8의 실시예에서, 이들 신호는 /ACTIVATE 신호(990)의 하이 로우 전이로부터 직접적으로 발생하는 신호 전이이고, 활성화 타이밍 회로 블록(951)에 의해 생성된다.
/ACTIVATE 신호(990)가 타이밍도에서의 에지(972)에서 하이로 리턴할 때, 플립 플롭(955)의 출력인 OPEN 신호(992)는 하이로 이동한다. OPEN 신호(992)는 페이지가 오픈되었고 그 페이지에 대한 후기록이 후속 활성화 어서션의 수신 시에 트리거링되어야 한다고 결정하기 위해 이용된다. ACTIVATE TIMING 신호(993), UPDATE TIMING 신호(994), 및 WRITEBACK TIMING 신호(995) 모두는 OPEN 신호(992)가 하이인 상태에서 /ACTIVATE 신호(990)가 973에서 하이로 디어서팅될 때 로우로부터 하이로 이동한다. 이것은 논리 게이트(952, 953, 956, 957, 및 959)에 기초하여 발생하고 다음 활성화 신호 어서션이 발생할 때 후속 어서션을 위한 타이밍 신호의 그들 세트를 준비한다. 다음 활성화가 새로운 페이지의 활성화, 이전 페이지의 패리티/다수의 업데이트, 및 이전 페이지의 후기록을 초래할 것으로 알려지므로 신호는 어서션을 위해 준비된다.
/ACTIVATE(990)의 다음 어서션이 에지(962)에서 발생할 때, 그 어서션은 ACTIVATE TIMING 신호(993), UPDATE TIMING 신호(994), 및 WRITEBACK TIMING 신호(995)의 각각의 어서션을 트리거링한다. 따라서, 새로운 페이지를 활성화하기 위한 타이밍 신호는 활성화 타이밍 회로 블록(951)(에지(967))에 의해 생성되고, 이전에 오픈 페이지에 관한 다수 정보 및 패리티를 업데이트하기 위한 타이밍 신호는 업데이트 타이밍 회로 블록(958)(에지(968))에 의해 생성되며, 업데이트 및 활성화가 완료된 후에, 이전에 오픈된 페이지를 후기록하기 위해 이용된 신호(WRITEBACK TIMING 신호(995))는 후기록 타이밍 회로 블록(954)(에지(970))에 의해 생성된다. 에지(973)에서 /ACTIVATE(990)의 디어서션 시에, 신호의 타이밍 신호 그룹의 각각은 다음 활성화를 준비하기 위해 디어서팅된다. OPEN 신호(992)는 하이로 유지된다.
RESET 신호(991)가 에지(963)에서 하이로 풀링(pulling)될 때, 이것은 휘발성 메모리에 저장된 임의의 데이터가 어레이로 다시 기록되어야 함을 나타낸다. 다른 실시예에서, 리프레시 명령 또는 STORE 명령의 수신은 또한, 이러한 후기록을 트리거링할 수 있다. RESET의 어서션은 플립 플롭(955)을 재설정하여, OPEN 신호(992)가 에지(965)에서 로우로 이동하게 한다. OPEN 신호(992)의 전이는 회로를 통해 전파하여, UPDATE TIMING 신호(994)가 어서팅되게 할 뿐만 아니라(에지(969)), WRITEBACK TIMNG 신호(995)가 어서팅되게 한다(에지(971)). 결과적으로, 타이밍 신호는 이전에 오픈 페이지가 업데이트되고(패리티 산출 및 다수 결정) 메모리 어레이에 다시 기록되게한다.
후속 활성화 동작이 완료될 때까지 뱅크에 대한 데이터의 오픈 페이지의 후기록을 지연시킴으로써, 어레이로 데이터를 다시 기록하는 것과 연관된 지연이 숨겨질 수 있고, 그에 의해 디바이스와 연관된 액세스 타이밍을 개선시킨다. 또 다른 활성화 동작에 대한 필요성 없이 데이터 후기록을 지원하기 위한 새로운 동작 코드를 포함하는 것은 데이터가 전원 차단이 발생할 때 비 휘발성 저장장치에 남지 않음을 보장하는 것을 돕는다. 일부 경우에서, 데이터의 다수의 페이지는 단일 후기록 표시에 기초하여 어레이에 다시 기록될 수 있고, 데이터 후기록은 피크 전력 소비를 감소시키기 위해 스태거링될 수 있다.
예시적인 실시예가 상기 제시되었을지라도, 많은 변형이 존재한다는 것이 인식되어야 한다. 또한, 설명이 특정한 예시적인 장치에 메모리 셀을 포함시키는 스핀 토크 MRAM 디바이스를 이용할지라도, 교시는 동일한 개념이 적용될 수 있는 상이한 아키텍처를 갖는 다른 메모리 디바이스에 적용될 수 있다. 이러한 메모리 디바이스의 예는 다른 저항성 메모리 및 DRAM을 포함한다. 이러한 메모리는 개선된 랜덤 액세스 시간, 감소된 전력 소비, 및 증가된 데이터 보유 시간이라는 측면에서 이점을 얻을 것이다.
상기 개시된 특정한 실시예는 단지 예시적인 것이고, 실시예가 본 명세서에서의 교시의 이점을 갖는 당업자에게 명백한 상이하지만 동등한 방식으로 수정되고 실행될 수 있기 때문에, 제한으로서 취해서는 안된다. 그에 따라, 상기 설명은 제시된 특정한 형태로 본 발명을 제한하도록 의도되지 않지만, 반대로 첨부된 명세서에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 포함될 수 있는 이러한 대안, 수정 및 등가물을 커버하도록 의도되어, 당업자가 그들이 그들의 폭넓은 형태로 본 발명의 사상 및 범주를 벗어나지 않고 다양한 변경, 대체 및 변형을 행할 수 있음을 이해하게 한다.

Claims (20)

  1. 메모리의 동작 방법으로서, 상기 메모리는 메모리 셀의 어레이를 포함하는, 상기 방법에 있어서:
    상기 메모리 내의 제 1 페이지에 대응하는 제 1 어드레스 및 제 1 활성화 명령을 수신하는 단계;
    상기 제 1 활성화 명령에 응답하여:
    상기 제 1 어드레스에 기초하여 상기 메모리 셀의 어레이로부터 상기 제 1 페이지에 대응하는 제 1 페이지 데이터를 검색하는 단계; 및
    상기 제 1 페이지 데이터를 상기 메모리 상의 제 1 캐시에 저장하는 단계;
    상기 제 1 캐시에 저장된 상기 제 1 페이지 데이터에 대응하는 적어도 하나의 판독 또는 기록 동작을 수행하는 단계 - 상기 적어도 하나의 판독 또는 기록 동작은 상기 제 1 페이지 데이터의 특정 단어 또는 단어 세트에 액세스하는 것임 - ;
    상기 적어도 하나의 판독 또는 기록 동작을 수행한 후에, 상기 제 1 페이지 데이터를 상기 제 1 캐시로부터 제 2 캐시로 전달하는 단계;
    상기 제 1 활성화 명령을 수신한 후에, 상기 메모리 내의 제 2 페이지에 대응하는 제 2 어드레스 및 제 2 활성화 명령을 수신하는 단계;
    상기 제 2 활성화 명령에 응답하여:
    상기 제 2 어드레스에 기초하여 상기 메모리 셀의 어레이로부터 상기 제 2 페이지에 대응하는 제 2 페이지 데이터를 검색하는 단계; 및
    상기 제 1 캐시에 상기 제 2 페이지 데이터를 저장하는 단계; 및
    상기 제 2 캐시로부터 상기 제 1 어드레스에 대응하는 위치에서 상기 메모리 셀의 어레이로 상기 제 1 페이지 데이터를 기록하는 단계를 포함하는, 메모리의 동작 방법.
  2. 제 1 항에 있어서,
    상기 제 1 페이지 데이터는 상기 제 2 페이지 데이터가 상기 제 1 캐시에 저장된 후에 상기 어레이에 기록되는, 메모리의 동작 방법.
  3. 제 1 항에 있어서,
    상기 제 1 페이지 데이터는 상기 제 2 활성화 명령에 응답하여 상기 제 1 캐시로부터 상기 제 2 캐시로 전달되는, 메모리의 동작 방법.
  4. 제 1 항에 있어서,
    상기 제 2 활성화 명령 이전에 사전충전(precharge) 명령을 수신하는 단계를 더 포함하고,
    상기 제 1 페이지 데이터는 상기 사전충전 명령에 응답하여 상기 제 1 캐시로부터 상기 제 2 캐시로 전달되는, 메모리의 동작 방법.
  5. 제 1 항에 있어서,
    상기 제 1 페이지 데이터를 상기 제 1 캐시로부터 상기 제 2 캐시로 전달하는 단계는 상기 제 1 페이지 데이터에 대한 패리티(parity)를 산출하는 단계를 더 포함하는, 메모리의 동작 방법.
  6. 제 1 항에 있어서,
    상기 제 1 페이지 데이터를 상기 제 1 캐시로부터 상기 제 2 캐시로 전달하는 단계는 상기 제 1 페이지 데이터에 대한 다수 검출(majority detection)을 수행하는 단계를 더 포함하고,
    상기 다수 검출은 상기 제 1 페이지 데이터에서의 대다수의 비트가 제 1 상태에 있는지 또는 제 2 상태에 있는지를 결정하는 것이고,
    상기 제 2 캐시로부터의 상기 제 1 페이지 데이터를 상기 어레이에 기록하는 단계는 상기 제 1 페이지에서의 대다수 비트가 상기 제 2 상태에 있으면 상기 제 1 페이지 데이터의 비트를 반전시키는 단계를 포함하는, 메모리의 동작 방법.
  7. 제 1 항에 있어서,
    상기 제 2 활성화 명령을 수신한 후에, 제 3 활성화 명령 및 제 3 어드레스를 수신하는 단계;
    상기 제 2 어드레스와 상기 제 3 어드레스를 비교하는 단계; 및
    상기 제 3 어드레스가 상기 제 2 어드레스와 매칭하면, 상기 제 2 페이지 데이터를 상기 제 1 캐시에서 유지하는 단계를 더 포함하는, 메모리의 동작 방법.
  8. 제 1 항에 있어서,
    상기 제 2 활성화 명령을 수신한 후에, 제 3 활성화 명령 및 제 3 어드레스를 수신하는 단계;
    상기 제 2 어드레스와 상기 제 3 어드레스를 비교하는 단계; 및
    상기 제 3 어드레스가 상기 제 2 어드레스와 매칭하면, 상기 제 3 활성화 명령과 연관된 후기록(write-back) 동작을 차단하여 상기 제 3 활성화 명령에 응답하여 상기 어레이에 데이터가 다시 기록되지 않게 하는 단계를 더 포함하는, 메모리의 동작 방법.
  9. 제 1 항에 있어서,
    상기 제 2 활성화 명령을 수신한 후에, 상기 제 1 캐시에서 상기 제 2 페이지 데이터에 대한 후기록이 수행되어야 한다는 표시를 수신하는 단계; 및
    상기 표시에 응답하여, 상기 제 2 어드레스에 대응하는 위치에서 상기 제 1 캐시에 저장된 상기 제 2 페이지 데이터를 상기 어레이에 기록하는 단계를 더 포함하는, 메모리의 동작 방법.
  10. 제 9 항에 있어서,
    상기 후기록이 수행되어야 한다는 표시는, 재설정(reset) 신호, 저장(store) 명령, 자가 리프레시 모드(self-refresh mode)로 진입하는 명령, 및 리프레시 명령 중 하나를 포함하는, 메모리의 동작 방법.
  11. 제 9 항에 있어서,
    상기 후기록이 수행되어야 한다는 표시에 응답하여, 상기 어레이의 부가적인 뱅크에서 부가적인 페이지에 대응하는 데이터를 상기 어레이에 기록하는 단계를 더 포함하는, 메모리의 동작 방법.
  12. 제 11 항에 있어서,
    상기 후기록이 수행되어야 한다는 표시에 응답하여 상기 데이터의 기록을 스태거링(staggering)하는 단계를 더 포함하고,
    상기 데이터의 기록을 스태거링하는 것은, 상기 데이터의 제 1 부분을 상기 데이터의 제 2 부분과 상이한 시간에 다시 기록하는 것인, 메모리의 동작 방법.
  13. 메모리에 있어서:
    메모리 셀의 어레이;
    상기 어레이에 결합된 제 1 캐시;
    상기 어레이에 결합된 제 2 캐시; 및
    상기 어레이, 상기 제 1 캐시, 및 상기 제 2 캐시에 결합된 제어 회로를 포함하고, 상기 제어 회로는:
    제 1 활성화 명령에 응답하여, 제 1 페이지 데이터를 상기 어레이에서의 제 1 위치로부터 상기 제 1 캐시로 전달하고;
    판독 또는 기록 명령 및 어드레스 정보에 응답하여, 상기 제 1 캐시에서 상기 제 1 페이지 데이터의 특정 데이터 단어에 대응하는 판독 또는 기록 액세스를 수행하고 - 상기 특정 데이터 단어는 상기 어드레스 정보에 의해 선택됨 - ;
    상기 대응하는 판독 또는 기록 액세스를 수행한 후에, 상기 제 1 페이지 데이터를 상기 제 1 캐시로부터 상기 제 2 캐시로 전달하고;
    상기 제 1 페이지 데이터를 상기 제 2 캐시로 전달한 후 및 제 2 활성화 명령에 응답하여, 제 2 페이지 데이터를 상기 어레이에서의 제 2 위치로부터 상기 제 1 캐시로 전달하며;
    상기 제 1 페이지 데이터를 상기 제 2 캐시로부터 상기 어레이에서의 상기 제 1 위치로 전달하도록 구성되는, 메모리.
  14. 제 13 항에 있어서,
    상기 어레이는 복수의 뱅크를 포함하고,
    상기 메모리는 상기 복수의 뱅크에서의 각각의 뱅크에 대해 대응하는 제 1 캐시 및 대응하는 제 2 캐시를 포함하는, 메모리.
  15. 제 13 항에 있어서,
    상기 제 1 캐시 및 상기 제 2 캐시 중 적어도 하나에 결합된 패리티 산출기를 더 포함하고,
    상기 패리티 산출기는 데이터의 각각의 페이지에 대한 패리티를 산출하도록 구성되는, 메모리.
  16. 제 13 항에 있어서,
    상기 제 1 캐시 및 상기 제 2 캐시 중 적어도 하나에 결합된 다수 검출 회로를 더 포함하고,
    상기 다수 검출 회로는 데이터의 각각의 페이지에서의 대다수의 비트가 제 1 상태에 있는지 또는 제 2 상태에 있는지를 결정하도록 구성되는, 메모리.
  17. 제 13 항에 있어서,
    상기 제어 회로는 지연(delay) 회로를 포함하고,
    상기 지연 회로는 상기 어레이, 상기 제 1 캐시 및 상기 제 2 캐시 사이의 데이터를 전달하는데 이용된 복수의 타이밍(timing) 신호를 생성하는, 메모리.
  18. 제 13 항에 있어서,
    상기 제 1 캐시는 복수의 비 휘발성 레지스터를 포함하는, 메모리.
  19. 자기저항 랜덤 액세스 메모리(magnetoresistive random access memory)의 동작 방법으로서, 상기 자기저항 랜덤 액세스 메모리는 비 휘발성 자기저항 메모리 셀의 어레이를 포함하는, 상기 방법에 있어서:
    상기 메모리 내의 제 1 페이지에 대응하는 제 1 어드레스 및 제 1 활성화 명령을 수신하는 단계;
    상기 제 1 활성화 명령에 응답하여:
    상기 제 1 어드레스에 기초하여 상기 자기저항 메모리 셀의 어레이로부터 상기 제 1 페이지에 대응하는 제 1 페이지 데이터를 검색하는 단계;
    상기 제 1 페이지 데이터를 상기 메모리 상의 제 1 캐시에 저장하는 단계;
    적어도 하나의 판독 또는 기록 명령을 수신하는 단계; 및
    상기 적어도 하나의 판독 또는 기록 명령에 응답하여, 상기 제 1 캐시에 저장된 제 1 페이지 데이터의 특정 단어에 액세스하는 단계;
    상기 제 1 활성화 명령 및 상기 적어도 하나의 판독 또는 기록 명령을 수신한 후에, 상기 메모리 내의 제 2 페이지에 대응하는 제 2 어드레스 및 제 2 활성화 명령을 수신하는 단계;
    제 2 활성화 명령에 응답하여:
    상기 제 1 페이지 데이터를 상기 제 1 캐시로부터 제 2 캐시로 전달하는 단계;
    상기 제 2 어드레스에 기초하여 상기 메모리 셀의 어레이로부터 상기 제 2 페이지에 대응하는 제 2 페이지 데이터를 검색하는 단계; 및
    상기 제1 페이지 데이터를 상기 제 2 캐시로 전달한 후에, 상기 제 2 페이지 데이터를 상기 제 1 캐시에 저장하는 단계; 및
    상기 제 2 페이지 데이터를 상기 제 1 캐시에 저장한 후에, 상기 제 2 캐시로부터 상기 제 1 어드레스에 대응하는 위치에서 상기 자기저항 메모리 셀의 어레이로 상기 제 1 페이지 데이터를 기록하는 단계를 포함하는, 자기저항 랜덤 액세스 메모리의 동작 방법.
  20. 삭제
KR1020187034160A 2016-04-28 2017-01-30 메모리에서의 지연된 후기록 KR102509654B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/141,379 2016-04-28
US15/141,379 US9990300B2 (en) 2016-04-28 2016-04-28 Delayed write-back in memory
PCT/US2017/015637 WO2017189065A1 (en) 2016-04-28 2017-01-30 Delayed write-back in memory

Publications (2)

Publication Number Publication Date
KR20190003965A KR20190003965A (ko) 2019-01-10
KR102509654B1 true KR102509654B1 (ko) 2023-03-16

Family

ID=58016850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034160A KR102509654B1 (ko) 2016-04-28 2017-01-30 메모리에서의 지연된 후기록

Country Status (5)

Country Link
US (3) US9990300B2 (ko)
EP (1) EP3449483B8 (ko)
KR (1) KR102509654B1 (ko)
CN (1) CN109219850B (ko)
WO (1) WO2017189065A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990300B2 (en) 2016-04-28 2018-06-05 Everspin Technologies, Inc. Delayed write-back in memory
US10510390B2 (en) * 2017-06-07 2019-12-17 International Business Machines Corporation Magnetic exchange coupled MTJ free layer having low switching current and high data retention
US10854259B2 (en) * 2018-06-29 2020-12-01 Taiwan Semiconductor Manufacturing Co., Ltd. Asynchronous read circuit using delay sensing in magnetoresistive random access memory (MRAM)
US10534840B1 (en) * 2018-08-08 2020-01-14 Sandisk Technologies Llc Multiplication using non-volatile memory cells
JP2021140842A (ja) * 2020-03-04 2021-09-16 キオクシア株式会社 メモリ回路、情報処理回路、及び情報処理装置
US11972145B2 (en) * 2021-01-21 2024-04-30 Micron Technology, Inc. Opportunistic data movement

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6762984B1 (en) * 1998-11-13 2004-07-13 Matsushita Electric Industrial Co., Ltd. Information recorded medium, information recording/reproducing method, and information recording/reproducing device
WO2000030116A1 (en) 1998-11-17 2000-05-25 Lexar Media, Inc. Method and apparatus for memory control circuit
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
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7644224B2 (en) * 2005-11-15 2010-01-05 Sandisk Il Ltd. Flash memory device and method
US8397024B2 (en) * 2008-10-25 2013-03-12 Sandisk 3D Llc Page buffer program command and methods to reprogram pages without re-inputting data to a memory device
JP5039079B2 (ja) * 2009-03-23 2012-10-03 株式会社東芝 不揮発性半導体記憶装置
CN102855934B (zh) * 2012-08-23 2016-09-28 上海华虹宏力半导体制造有限公司 非易失性存储器系统及其擦除方法
US10146601B2 (en) * 2013-06-12 2018-12-04 Everspin Technologies, Inc. Methods and devices for healing reset errors in a magnetic memory
US9990300B2 (en) 2016-04-28 2018-06-05 Everspin Technologies, Inc. Delayed write-back in memory

Also Published As

Publication number Publication date
US9990300B2 (en) 2018-06-05
CN109219850B (zh) 2023-08-04
US10268591B2 (en) 2019-04-23
KR20190003965A (ko) 2019-01-10
US10657065B2 (en) 2020-05-19
US20190213136A1 (en) 2019-07-11
EP3449483B8 (en) 2021-05-05
EP3449483B1 (en) 2021-03-24
US20170315920A1 (en) 2017-11-02
EP3449483A1 (en) 2019-03-06
CN109219850A (zh) 2019-01-15
US20180267899A1 (en) 2018-09-20
WO2017189065A1 (en) 2017-11-02

Similar Documents

Publication Publication Date Title
KR102509654B1 (ko) 메모리에서의 지연된 후기록
EP3616203B1 (en) Delayed write-back in memory with calibration support
JP5063204B2 (ja) Dramシステムの動作を制御する方法
JP5633887B2 (ja) 行および列へのアクセス動作を同期させるための方法および装置
CN111383676A (zh) 存储器装置、存储器系统及相关方法
US9190130B2 (en) Semiconductor memory device with sequentially generated delay signals
KR101145966B1 (ko) 독립적인 액세스 및 프리차지를 갖춘 메모리
US20140032812A1 (en) Method and design for high performance non-volatile memory
US8582389B2 (en) Write assist in a dual write line semiconductor memory
US20110085398A1 (en) Multiple Cycle Memory Write Completion
JP2007200457A (ja) 不揮発性半導体記憶装置
US20100097874A1 (en) Method and apparatus for performing refreshes
US7778103B2 (en) Semiconductor memory device for independently selecting mode of memory bank and method of controlling thereof
JP2018049387A (ja) メモリシステム及びプロセッサシステム
JP5610232B2 (ja) 磁気ランダムアクセスメモリ(mram)の制御回路、mram、及びその制御方法
KR20230060942A (ko) 인공 신경망 가속기를 위한 임베디드 메모리 및 그 구동 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right