KR20160074617A - 저항성 메모리 캐시에 대한 기록 동작의 분할 - Google Patents

저항성 메모리 캐시에 대한 기록 동작의 분할 Download PDF

Info

Publication number
KR20160074617A
KR20160074617A KR1020167013313A KR20167013313A KR20160074617A KR 20160074617 A KR20160074617 A KR 20160074617A KR 1020167013313 A KR1020167013313 A KR 1020167013313A KR 20167013313 A KR20167013313 A KR 20167013313A KR 20160074617 A KR20160074617 A KR 20160074617A
Authority
KR
South Korea
Prior art keywords
write
resistive memory
command
memory cache
buffer
Prior art date
Application number
KR1020167013313A
Other languages
English (en)
Inventor
시앙유 동
시아오춘 주
정원 서
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20160074617A publication Critical patent/KR20160074617A/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/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
    • 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
    • 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
    • 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/1653Address circuits or decoders
    • 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/1673Reading or sensing circuits or methods
    • 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/1675Writing or programming circuits or methods
    • 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
    • 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
    • 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/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • 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
    • 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/2281Timing of a read operation
    • 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/229Timing of a write operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hall/Mr Elements (AREA)
  • Mram Or Spin Memory Techniques (AREA)
  • Semiconductor Memories (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

저항성 메모리 캐시로부터 데이터를 판독하고 저항성 메모리 캐시에 데이터를 기록하는 방법은 기록 커맨드를 수신하는 단계 및 기록 커맨드를 다수의 기록 서브-커맨드들의 세트로 분할하는 단계를 포함한다. 방법은 또한 판독 커맨드를 수신하는 단계 및 다음 기록 서브-커맨드를 실행하기 이전에 판독 커맨드를 실행하는 단계를 포함한다.

Description

저항성 메모리 캐시에 대한 기록 동작의 분할{SPLIT WRITE OPERATION FOR RESISTIVE MEMORY CACHE}
본 개시는 일반적으로 MRAM(magnetic random access memory) 디바이스들 또는 RRAM(resistive random access memory) 디바이스들과 같은 저항성 메모리들에 관한 것이다. 보다 구체적으로, 본 개시는 기록 동작들을 분할함으로써 저항성 메모리 캐시 성능을 개선하는 것에 관한 것이다.
종래의 RAM(random access memory) 칩 기술들과 달리, MRAM(magnetic RAM)에서, 데이터는 전하(electric charge)로서 저장되는 것이 아니라 저장 엘리먼트들의 자기 극성에 의해 대신 저장된다. 저장 엘리먼트들은 터널링 층에 의해 분리되는 2개의 강자성 층들로부터 형성된다. 고정층 또는 피닝 층으로서 지칭되는 2개의 강자성 층들 중 하나는 특정 방향으로 고정되는 자화(magnetization)를 갖는다. 자유(free) 층으로서 지칭되는 다른 강자성 자기층은 2개의 상이한 상태들로 변경될 수 있는 자화 방향을 갖는다. 자유층의 이러한 상이한 상태들은, 자유층 자화가 고정층 자화에 역-평행(anti-parallel)일 때 로직 "1", 또는 자유층 자화가 고정층 자화에 평행일 때 로직 "0"을 표현하는데 이용되며, 그 반대도 가능하다. 고정층, 터널링 층 및 자유층을 갖는 하나의 이러한 디바이스는 MTJ(magnetic tunnel junction)이다. MTJ의 전기 저항은 자유층 자화 및 고정층 자화가 서로 평행인지 또는 역-평행인지에 의존한다. MRAM과 같은 메모리 디바이스는 개별 어드레싱 가능 MTJ들의 어레이로부터 구축된다.
종래의 MRAM에서 데이터를 기록하기 위해, 임계 스위칭 전류를 초과하는 기록 전류가 MTJ를 통해 인가된다. 임계 스위칭 전류를 초과하는 기록 전류는 자유층의 자화 방향을 변경하기에 충분하다. 기록 전류가 제 1 방향으로 흐를 때, MTJ는 제 1 상태로 진입되거나 제 1 상태로 유지되며, 여기서 그의 자유층 자화 방향 및 고정층 자화 방향은 평행한 배향으로 정렬된다. 기록 전류가 제 1 방향의 반대인 제 2 방향으로 흐를 때, MTJ는 제 2 상태로 진입되거나 제 2 상태로 유지되며, 여기서 그의 자유층 자화 및 고정층 자화는 역-평행 배향에 있다.
종래의 MRAM에서 데이터를 판독하기 위해, 판독 전류는 MTJ에서 데이터를 기록하는데 이용된 동일 전류 경로를 통해 MTJ를 통해 흐를 수 있다. MTJ의 자유층 및 고정층의 자화들이 서로 평행하게 배향되는 경우, MTJ는 자유층 및 고정층의 자화들이 역-평행 배향이었을 경우 MTJ가 제공했었을 저항과 상이한 저항을 제공한다. 종래의 MRAM에서, 2개의 고유한 상태들은 MRAM의 비트셀에서 MTJ의 2개의 상이한 저항들에 의해 정의된다. 2개의 상이한 저항들은 MTJ에 의해 저장된 로직 0 및 로직 1 값을 나타낸다.
종래의 MRAM에서 데이터가 로직 1 또는 로직 0을 나타내는지를 결정하기 위해, 비트 셀의 MTJ의 저항은 기준 저항에 비교된다. 종래의 MRAM 회로의 기준 저항은 평행 자기 배향을 갖는 MTJ 및 역-평행 자기 배향을 갖는 MTJ의 저항들 간의 중간 저항이다. 중간 기준 저항을 생성하는 하나의 방식은, 평행 자기 배향을 갖는 것으로 알려진 MTJ 및 역-평행 자기 방향을 갖는 것으로 알려진 MTJ를 서로 평행하게 병렬로 커플링하는 것이다.
본 개시의 일 양상에서, 저항성 메모리 캐시로부터 데이터를 판독하고 저항성 메모리 캐시에 데이터를 기록하는 방법이 개시된다. 방법은 기록 커맨드를 수신하는 단계를 포함한다. 방법은 또한 기록 커맨드를 기록 서브-커맨드들의 세트로 분할하는 단계를 포함한다. 방법은 추가로 판독 커맨드를 수신하는 단계를 포함한다. 방법은 또한 다음 기록 서브-커맨드를 실행하기 이전에 판독 커맨드를 실행하는 단계를 포함한다.
다른 양상에서, 저항성 메모리 캐시가 개시된다. 저항성 메모리 캐시는 적어도 하나의 입력 포트 및 적어도 하나의 출력 포트를 포함하는 멀티플렉서를 포함한다. 저항성 메모리 캐시는 또한 멀티플렉서의 출력 포트(들)에 커플링되는 메모리를 포함한다. 저항성 메모리 캐시는 추가로 멀티플렉서의 입력 포트(들)에 커플링되는 기록 버퍼를 포함한다. 기록 버퍼는 또한 데이터, 어드레스, 기록 커맨드 펄스 카운터를 포함하는 적어도 하나의 기록 버퍼 엔트리를 갖는다.
다른 양상은 저항성 메모리 캐시를 개시한다. 저항성 메모리 캐시는 적어도 하나의 입력 포트 및 적어도 하나의 출력 포트를 갖는 멀티플렉서를 포함한다. 저항성 메모리 캐시는 또한 멀티플렉서의 출력 포트(들)에 커플링되는 데이터를 저장하기 위한 수단을 포함한다. 저항성 메모리 캐시는 추가로 멀티플렉서의 입력 포트(들)에 커플링되는 기록 커맨드들을 버퍼링하기 위한 수단을 포함한다. 기록 커맨드들을 버퍼링하기 위한 수단은 또한 데이터, 어드레스, 및 기록 커맨드 펄스 카운터를 포함하는 적어도 하나의 기록 버퍼 엔트리를 갖는다.
이것은, 후속하는 상세한 설명이 더 양호하게 이해될 수 있도록 하기 위해, 본 개시의 특성들 및 기술적 이점들을 다소 광범위하게 약술하였다. 본 개시의 부가적인 특성들 및 이점들은 아래에서 설명될 것이다. 본 개시의 동일한 목적들을 수행하기 위해 다른 구조들을 변형 또는 설계하기 위한 기반으로서 본 개시가 용이하게 이용될 수도 있음이 당업자들에 의해 인식되어야 한다. 또한, 그러한 등가 구성들이, 첨부된 청구항들에 기재된 바와 같은 본 개시의 교시들을 벗어나지 않는다는 것이 당업자들에 의해 인지되어야 한다. 추가적인 목적들 및 이점들과 함께, 본 개시의 구성 및 동작 방법 둘 모두에 대해 본 개시의 특징인 것으로 믿어지는 신규한 특성들은, 첨부된 도면들과 관련하여 고려될 경우 다음의 설명으로부터 더 양호하게 이해될 것이다. 그러나 도면들 각각이 단지 예시 및 설명의 목적을 위해 제공되며, 본 개시의 제한들의 정의로서 의도되지 않음이 명백히 이해될 것이다.
본 개시의 보다 완전한 이해를 위해, 첨부된 도면들과 함께 취해진 다음의 설명에 대한 참조가 이제 이루어진다.
도 1은 액세스 트랜지스터에 연결된 MTJ(magnetic tunnel junction) 디바이스의 도면이다.
도 2는 본 개시의 양상에 따라 캐시 제어기를 포함하는 예시적인 캐시 메모리의 도면이다.
도 3은 본 개시의 양상에 따라 판독 경로 및 기록 경로를 예시하는 저항성 메모리 캐시의 개략도이다.
도 4의 (a) 및 (b)는 본 개시의 양상들에 따라 상이한 기록 펄스 구성들을 예시하는 타이밍도들이다.
도 5는 본 개시의 양상에 따라 저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법을 예시하는 프로세스 흐름도이다.
도 6은 본 개시의 구성이 유리하게 이용될 수도 있는 예시적인 무선 통신 시스템을 도시하는 블록도이다.
도 7은 일 구성에 따른 반도체 컴포넌트의 회로, 레이아웃(layout), 및 로직 설계를 위해 사용되는 설계 워크스테이션을 예시하는 블록도이다.
첨부된 도면들과 관련하여 아래에 기재되는 상세한 설명은, 다양한 구성들의 설명으로서 의도되며, 본 명세서에 설명된 개념들이 실시될 수도 있는 유일한 구성들을 표현하도록 의도되지 않는다. 상세한 설명은 다양한 개념들의 철저한 이해를 제공하려는 목적을 위해 특정한 세부사항들을 포함한다. 그러나 이들 개념들이 이들 특정한 세부사항들 없이도 실시될 수도 있다는 것은 당업자들에게 명백할 것이다. 몇몇 예시들에서, 그러한 개념들을 불명료하게 하는 것을 회피하기 위해, 잘-알려진 구조들 및 컴포넌트들은 블록도 형태로 도시되어 있다. 본 명세서에서 설명되는 바와 같이, 용어 "및/또는"의 사용은 "내포적 또는"을 표현하도록 의도되며, 용어 "또는"의 사용은 "배타적 또는"을 표현하도록 의도된다.
정확한 저항성 메모리 디바이스에 대해, "0"으로부터 "1"로, 또는 "1"로부터 "0"으로 저항성 메모리 비트 셀을 성공적으로 스위칭하는 가능성은 100%에 근접해야 한다. 스위칭 가능성은 아래의 수학식(1)으로부터 계산될 수 있다.
Figure pct00001
(1)
여기서 Psw는 스위칭 가능성이고, exp(x)는 지수 함수이고, tsw는 스위칭 펄스이고, τ0는 정규화된 지연이고, Δ는 열 안정성이고, J는 스위칭 전류이고, JC는 임계 전류이다. 정규화된 지연(τ0), 열 안정성(Δ) 및 임계 전류(JC)는 MRAM(magnetic random access memories) 또는 다른 유사한 저항성 메모리들의 물질에 관련된 모든 파라미터들이다.
일반적으로, 100%에 근접한 높은 스위칭 가능성(Psw)에 도달하기 위해, 큰 스위칭 전류(J) 및 긴 스위칭 펄스(tsw)가 이용된다. 저항성 메모리 디바이스는 기록 펄스 동안 판독될 수 없기 때문에, 긴 기록 펄스들은 더 긴 기록 레이턴시를 생성한다. 이는 더 느린 메모리 및 시스템 성능으로 이어진다.
본 개시의 일 양상에서, 하나의 긴 기록 펄스 대신 다수의 짧은 기록 펄스들이 저항성 메모리 디바이스에 인가된다. 다수의 짧은 기록 펄스들을 저항성 메모리 디바이스에 인가하는 것은 판독 동작들이 하나의 긴 기록 펄스와 동일한 시간 기간 내에 수행되는 것을 허용한다. 예를 들어, 하나의 긴 기록 펄스는 tsw의 스위칭 펄스에 있어 아래의 수학식(2)에서 표현될 수 있다:
Figure pct00002
(2)
여기서 B는 수학식 3에서 도시된 바와 같이 고정된 스위칭 전류(J) 및 임계 전류(JC) 값을 가정한 아래의 분량(quantity)을 나타낸다:
Figure pct00003
(3)
하나의 긴 펄스가 위의 수학식(2)에 의해 표현되는 경우, 하나의 짧은 기록 펄스는 수학식(4)에 의해 표현될 수 있다. 동일한 전체 스위칭 펄스 값(tsw)이 인가되지만, 각각의 기록 펄스는 아래에서 알 수 있는 바와 같이 단일 스위칭 펄스(tsw/n)의 짧은 n/1 프랙션(fraction)이다.
Figure pct00004
(4)
그러므로, n개의 짧은 기록 펄스들을 인가하는 것은 아래의 수학식(5)에 의해 표현될 수 있고, 하나의 긴 기록 펄스와 동일하게 되게 마무리된다.
Figure pct00005
Figure pct00006
(5)
본 개시의 일 양상에서, 저항성 메모리 캐시로부터의 판독 및 저항성 메모리 캐시로의 기록의 방법은 기록 커맨드를 수신하는 것 그리고 하나의 큰 기록 커맨드 펄스로서 기록 커맨드를 프로세싱하는 대신 다수의 더 작은 기록 커맨드 펄스들로 그 기록 커맨드를 변환하는 것을 포함한다. 이 방법은 또한 판독 커맨드를 수신하는 것 및 다음 기록 커맨드 펄스를 실행하기 이전에 그 판독 커맨드를 실행하는 것을 포함할 수 있다.
기록 버퍼 엔트리는 또한 기록 커맨드의 수신에 대한 응답으로 생성될 수 있다. 엔트리는 데이터, 어드레스, 및 잔여 기록 커맨드 펄스들의 수를 포함한다. 잔여 기록 커맨드 펄스들의 수는 카운터로서 구현될 수 있고, 0으로부터 시작해서 카운트 업(count up) 또는 n으로부터 시작해서 카운트 다운될 수 있다. 기록 커맨드가 실행될 때마다, 기록 커맨드 펄스들의 수는 n개의 기록 커맨드 펄스들이 실행되었다는 것을 나타내도록 수정(증가 또는 감소)된다.
도 1은 액세스 트랜지스터(104)에 커플링되는 MTJ(magnetic tunnel junction)(102)를 포함하는 메모리 셀(100)을 예시한다. MTJ(102)의 자유층(110)은 비트 라인(112)에 커플링된다. 액세스 트랜지스터(104)는 MTJ(102)의 고정층(106)과 고정 전위 노드(122) 간에 커플링된다. 터널 배리어 층(114)은 고정층(106)과 자유층(110) 간에 커플링된다. 액세스 트랜지스터(104)는 워드 라인(118)에 커플링되는 게이트(116)를 포함한다.
합성 반-강자성 물질들은 고정층(106) 및 자유층(110)을 형성하는데 이용될 수 있다. 예를 들어, 고정층(106)은 CoFeB(Cobalt Iron Boron) 층, Ru(Ruthenium) 층 및 CoFe(Cobalt Iron) 층을 포함하는 다중 물질층들을 포함할 수 있다. 예를 들어, 자유층(110)은 CoFeB와 같은 반-강자성 물질일 수 있고, 터널 배리어 층(114)은 MgO(Magnesium Oxid)일 수 있다. 메모리 셀(100)은 캐시 메모리 또는 다른 저항성 메모리 디바이스를 구성하는 저항성 메모리 엘리먼트의 예이다.
도 2는 본 개시의 양상에 따라 캐시 제어기(240)를 포함하는 예시적인 캐시 메모리(200)의 도면이다. 캐시 메모리(200)는, 페이지 번호(202), 세트 번호(204), 바이트 번호(206), 캐시 웨이(cache way)(208), 태그 부분(210), 데이터 부분(212), 캐시 블록(214), 하나 또는 그 초과의 캐시 세트들(216), 태그 감지 증폭기(218a), 데이터 감지 증폭기(218b), 태그 출력(220), 비교기(222), 로직 게이트(224), 캐시 그룹(226), 선택 회로(228) 및 워드 출력(230)을 포함한다.
캐시 메모리(200)의 어드레스는 페이지 번호(202), 세트 번호(204) 및 바이트 번호(206)를 포함할 수 있다. 일 구현에서, 페이지 번호(202)는 가상 페이지 번호일 수 있다. 세트 번호(204)는 캐시 세트들(216) 중 하나에 대응한다. 캐시 블록(214)은 태그 부분(210) 및 데이터 부분(212)을 포함한다. 태그 부분(210)은 데이터 부분(212)에서 실제 데이터의 어드레스의 부분 또는 데이터 부분(212)에서 데이터를 로케이팅하기 위한 다른 식별 정보를 포함할 수 있다. 데이터 부분(212)은 실제 데이터를 포함한다. 캐시 세트들(216) 중 하나는, 도 2의 수평 그룹핑에 의해 알 수 있는 바와 같이 캐시 블록들(214)의 하나의 세트이다. 캐시 웨이(208)는 캐시 블록들(214)의 다른 그룹핑이지만, 도 2에서 알 수 있는 바와 같이 수직 그룹핑이다. 태그 감지 증폭기(218a) 및 데이터 감지 증폭기(218b)는 데이터가 출력될 때 (로직 1 또는 0으로서) 적절히 해석되도록 캐시 엔트리들로부터 논리 레벨들을 감지한다.
태그 감지 증폭기(218a)의 출력인 태그 출력(220)의 데이터는 페이지 프레임 번호, 유효 비트 및 코히어런스 비트(coherence bit)들을 포함할 수 있다. 태그 출력(220)으로부터의 데이터는 비교기(222)에 의해 페이지 번호(202)에 비교되고, 그 비교기는 그 후 그 2개의 값들이 동일한지를 결정한다. 값들이 동일한 경우, 비교기(222)의 출력은, 데이터 감지 증폭기(218b)의 출력과 함께, 로직 게이트(224)에 입력된다. 로직 게이트(224)의 출력은 캐시 그룹(226)에서 나타난다. 일 구현에서, 캐시 그룹들(226) 중 하나는 다중 워드들을 포함한다. 캐시 그룹(226)은 선택 입력으로서 바이트 번호(206)를 이용하는 선택 회로(228)에 입력된다. 선택 입력으로서 바이트 번호(206)를 이용하는 선택 회로(228)의 출력은 워드 출력(230)이다.
도 2는 n-웨이 세트-연관(set-associative) 캐시에 대한 예시적인 블록도이지만, 본 개시에 따라 이용되는 다른 타입들의 캐시들이 있을 수 있다. 세트-연관 캐시는 병렬로 동작하는 몇 개의 직접-맵핑 캐시들로 이루어진다(예를 들어, 하나의 직접-맵핑 캐시는 태그 부분(210) 및 데이터 부분(212)을 포함하는 캐시 엔트리일 수 있음). 데이터 판독은 (태그 또는 메타데이터 엔트리의 부분일 수 있는) 블록-유효 비트 및 (페이지 번호(202)의 부분인) 페이지 허가들은 물론 페이지 번호(202)와의 태그 비교에 의해 제어될 수 있다. 캐시 열 크기는 또한 가상 메모리 페이지 크기와 동일할 수 있고, 캐시 인덱스는 가상 페이지 번호 또는 페이지 번호(202)로부터의 비트들을 이용하지 않을 수 있다.
도 3은 본 개시의 양상에 따라 판독 경로 및 기록 경로를 예시하는 저항성 메모리 캐시(300)의 개략도이다. 저항성 메모리 캐시(300)에 입력되는 신호들은 제 1 입력 데이터 기록 신호(HWDATAS1), 제 2 입력 데이터 기록 신호(HWDATAS2), 제 1 입력 데이터 판독 신호(HRDATAM0) 및 제 2 입력 데이터 판독 신호(HRDATAM1)를 포함한다. 저항성 메모리 캐시(300)로부터 출력된 신호들은 제 1 출력 데이터 판독 신호(HRDATAS0), 제 2 출력 데이터 판독 신호(HRDATAS1), 제 1 출력 데이터 기록 신호(HWDATAM1) 및 제 2 출력 데이터 기록 신호(HWDATAM2)를 포함한다. 저항성 메모리 캐시(300)는 HRDATAS0 신호를 출력하는 제 1 멀티플렉서(302), HRDATAS1 신호를 출력하는 제 2 멀티플렉서(304), HWDATAS1 신호 및 HWDATAS2 신호를 수신하는 제 3 멀티플렉서(306), 제 1 라인 판독 버퍼(318)로부터 입력을 수신하는 제 4 멀티플렉서(308), 제 2 라인 판독 버퍼(320)로부터 입력을 수신하는 제 5 멀티플렉서(310), 제 1 라인 충전 버퍼(336)로부터 입력을 수신하는 제 6 멀티플렉서(322), 제 2 라인 충전 버퍼(338)로부터 입력을 수신하는 제 7 멀티플렉서(324), 메인 멀티플렉서(328) 및 HWDATAM2 신호를 출력하는 제 8 멀티플렉서(334)를 포함한다.
저항성 메모리 캐시(300)는 또한, 제 3 멀티플렉서(306)로부터 입력을 수신하고, 데이터를 메인 멀티플렉서(328)에, 기록 할당 버퍼(326)에, 그리고 제 8 멀티플렉서(334)에 출력하는 기록 버퍼(312)를 포함한다. 기록 할당 버퍼(326)는 제 2 라인 충전 버퍼(338) 및 기록 버퍼(312)로부터 입력을 수신한다. 이빅션(eviction) 버퍼(332)는 메모리(330)로부터 입력을 수신하고 제 8 멀티플렉서(334)에 출력한다.
제 1 라인 판독 버퍼(318)는 메모리(330)로부터 입력을 수신하고 제 4 멀티플렉서(308)에 출력하며, 제 2 라인 판독 버퍼(320)는 메모리(330)로부터 입력을 수신하고 제 2 멀티플렉서(304)에 출력한다. 제 1 라인 충전 버퍼(336)는 HRDATAM0 신호로부터 입력을 수신하고 제 6 멀티플렉서(322)에 출력하며, 제 2 라인 충전 버퍼(338)는 HRDATAM1 신호로부터 입력을 수신하고 제 7 멀티플렉서에 출력한다.
메모리(330)는 저항성 메모리 캐시(300)의 다양한 컴포넌트들에 기록되고 이로부터 판독되는 데이터를 저장한다. 메모리(330)는 출력(340) 및 입력(342)을 갖는다. 일 구현에서, 출력(340) 및 입력(342)은 동일한 포트(341)를 공유한다. 기록되도록 의도된 데이터는 메인 멀티플렉서(328)로부터 비롯되고 입력(342)을 통해 메모리(330)에 전달된다. 메모리(330)로부터 판독되는 데이터는 출력(340)을 통해 출력되고 제 1 라인 판독 버퍼(318)에 송신된다.
저항성 메모리 캐시(300)는 또한 이벤트 모니터(316)를 포함한다. 캐시 이벤트들(314)은 이벤트 모니터(316)에 입력된다. 캐시 이벤트들(314)은 저항성 메모리 캐시(300)에서 발생하는 관련 이벤트들을 나타낸다.
판독 경로는, 출력(340)을 통해 메모리(330)로부터 제 1 라인 판독 버퍼(318) 및 제 2 라인 판독 버퍼(320)에 전달된 데이터로서 표현된다. 판독 경로는 또한, 임계 경로, 즉 판독 또는 기록 동작을 수행하기 위해 저항성 메모리 캐시(300)의 컴포넌트들을 통과하는 최장의 필수 경로 상에 있을 수 있다.
기록 경로는, 한 단부(상단) 상에서 기록 버퍼(312) 및 기록 할당 버퍼(326)로부터 메인 멀티플렉서(328)로 전달되는 데이터 그리고 다른 단부(하단) 상에서 제 1 라인 충전 버퍼(336) 및 제 2 라인 충전 버퍼(338)로부터 메인 멀티플렉서(328)로 전달되는 데이터로서 표현된다. 그 후 데이터는 메인 멀티플렉서(328)로부터 메모리(330)로 흐른다. 기록 경로는 임계 경로 상에 있지 않을 수 있다.
판독 경로 및 기록 경로가 분리되어 있지만, 이들은 동일한 포트(341)를 공유할 수 있다. 긴 기록 레이턴시는, 공유된 입력/출력 포트(341)가 긴 기록 동작에 의해 점유될 것이기 때문에 입력(342) 및/또는 출력(340)을 차단할 수 있다. 이는 결국 판독 액세스를 지연한다. 즉, 판독 동작은 기록 동작이 완료될 때까지 수행되지 않을 수 있다. 그 결과, 저항성 메모리 캐시(300)의 속도는 더 느려진다.
도 4의 (a) 및 (b)는 본 개시의 양상들에 따른 상이한 기록 펄스 구성들을 예시하는 타이밍도들이다. 제 1 타이밍도(400)는 긴 기록 펄스를 이용하는 통상적인 저항성 메모리 디바이스의 타이밍 동작을 도시한다. 제 1 타이밍도(400)는 클록 신호(402), 커맨드의 도달 타이밍(404) 및 커맨드의 실행 타이밍(406)을 도시한다. 커맨드 도달 타이밍(404) 및 커맨드 실행 타이밍(406)은 여기서 "RD0", "RD1", "WR0", "RD2" 및 "RD3"로서 도시된 다수의 판독 또는 기록 커맨드들의 도달 및 실행을 도시한다. 도달 커맨드들 각각은 도달 이후 지연된 시간에 실행된다.
제 1 타이밍도(400)의 예에서, 판독 동작은 2개의 클록 사이클들이 걸리고 기록 동작("WR0")은 10개의 클록 사이클이 걸린다. 그러므로 제 1 타이밍도(400)에서 알 수 있는 바와 같이, "WR0" 커맨드는 긴(예를 들어, 10 클록 사이클) "WR0"커맨드로서 실행된다. 이러한 이유로, "RD2" 및 "RD3" 커맨드들의 실행은 지연되고 "WR0" 커맨드의 실행을 완료한 이후에만 실행될 수 있다. 판독 커맨드(들)는 기록 커맨드(들)가 실행될 때까지 대기하도록 강제되기 때문에, 저항성 메모리 디바이스의 성능 및 속도는 감소된다.
도 4의 (b)에서 도시된 제 2 타이밍도(410)는 하나의 긴 기록 펄스 대신 다수의 짧은 기록 펄스들을 이용하는 본 개시의 양상에 따른 저항성 메모리 디바이스의 타이밍 동작을 예시한다. 제 2 타이밍도(410)는 또한 클록 신호(402), 커맨드 도달 타이밍(404) 및 개정된 커맨드 실행 타이밍(408)을 도시한다. 제 2 타이밍도(410)에서, 도달하는 "WR0" 커맨드는 별개의 그리고 더 작은 서브-커맨드들로 분할된다. 이 예에서, "WR0"는 5개의 기록 서브-커맨드들 또는 펄스들: 실행될 "WR0-p1", "WR0-p2", "WR0-p3", "WR0-p4" 및 "WR0-p5"로 분할된다. 이들 더 짧은 기록 동작 서브-커맨드들 각각은 실행하는데 단지 2 클록 사이클이 걸리고, 이 예에서 이는 판독 동작이 실행되는데 걸리는 시간과 동일하다. 더 짧은 "WR0-p1" 서브-커맨드가 먼저 실행되기 때문에, 판독 커맨드들("RD2" 및 "RD3")은 더 빨리, 또는 기록 펄스들 중 임의의 것 사이에 실행될 수 있다. 그 후 잔여 "WR0" 서브-커맨드들(p2-p5)이 실행된다. 이 예는 판독 펄스 폭과 동일한 것으로 기록 펄스 폭을 설명하지만, 더 짧은 기록 펄스 폭은 임의의 길이를 가질 수 있다.
더 높은 우선순위 동작들 주위에 더 작은 기록 펄스들을 분배하는 것은 전체 판독/기록 동작이 개선되도록 허용한다. 그러므로 저항성 메모리 디바이스는 보다 효율적인 방식으로 그리고 더 빨리 동작들을 완료 가능할 수 있다. 예를 들어, 제 2 타이밍도(410)는, 판독 커맨드들("RD0" 내지 "RD3")이 제 1 타이밍도(400)에서 실행되는 것보다 여덟(8) 클록 사이클들 앞서서 모든 판독 커맨드들이 완료된다는 점에서, 거의 8 클록 사이클들의 성능 개선(412)을 갖는다.
인입하는 기록 커맨드가 수신될 때, 커맨드는 서브-커맨드들로 분할된다. 기록 커맨드 및/또는 서브-커맨드들은 기록 버퍼에 저장될 수 있다. 각각의 기록 버퍼 엔트리는 데이터 및 어드레스를 포함할 수 있다. 또한, 각각의 엔트리는 또한 기록 커맨드와 연관된 잔여 기록 서브-커맨드들의 수를 포함할 수 있다. 잔여 서브-커맨드들의 수는 카운터로서 구현될 수 있다.
본 개시의 일 양상에서, 저항성 메모리 캐시 성능을 개선하는 알고리즘은 4개의 주요 단계들을 갖는다.
첫째로, 기록 커맨드가 분할될 서브-커맨드들의 수(N)가 결정된다. 예를 들어, 긴 기록 펄스 동작은 도 4b에서 도시된 바와 같이 N = 5 서브-커맨드들로 분할될 수 있다. 각각의 서브-커맨드는 클록 사이클들의 수에 대응하는 길이를 가질 것이고 균일할 수 있다. 다른 구현에서, 각각의 서브-커맨드는 상이한 클록 사이클 길이들을 가질 수 있다.
둘째로, 새로운 기록 커맨드가 도달하고 기록 버퍼가 꽉 차지 않을 때, 데이터 및 어드레스 정보 엔트리들은 비워진다. 또한, 얼마나 많은 기록 서브-커맨드들이 존재하는지를 트래킹하는 카운터가 있다. 카운터는 N으로부터 시작해서 카운트다운될 수 있거나, 또는 0으로부터 시작해서 N-1까지 카운트업 또는 1로부터 시작해서 N까지 카운트업될 수 있다. 카운터는 하드웨어로 구현될 수 있다.
셋째로, 기록 버퍼로부터의 엔트리들은 판독 큐가 비워질 때마다 드레인된다. 가장 오래된 기록 버퍼 엔트리가 먼저 드레인될 수 있다. 짧은 기록 펄스들이 하나씩 적용되고, 카운터는 ((N으로부터 시작해서) 감소시키거나 (0 또는 1로부터 시작해서) 증가시킴으로써) 수정된다. (N으로부터 시작하는 경우에) 카운터가 0에 도달하면, 그 기록 버퍼 엔트리가 제거된다.
넷째로, 새로운 기록 커맨드가 도달하고 기록 버퍼가 꽉 차있을 때, 판독 큐는 판독 큐가 비어있지 않은 경우 차단된다. 그 후 기록 서브-커맨드들은 가장 오래된 기록 버퍼 엔트리가 프리(free)하게 될 때까지 실행된다. 위의 제 2 단계(데이터 및 어드레스 정보 엔트리들을 비움)는 또한 가장 오래된 기록 버퍼 엔트리가 프리하게 될 때까지 반복될 수 있다. 판독 큐는 또한 원하는 경우 이 시간에 차단되지 않을 수 있다.
도 5는 본 개시의 양상에 따라 저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법(500)을 예시하는 프로세스 흐름도이다. 블록(502)에서, 기록 커맨드가 수신된다. 블록(504)에서, 기록 커맨드는 기록 서브-커맨드들의 세트로 분할된다. 블록(506)에서, 판독 커맨드가 수신된다. 블록(508)에서, 판독 커맨드는 다음 기록 서브-커맨드를 실행하기 이전에 실행된다. 일 구현에서, 방법(500)은 또한, 기록 버퍼가 꽉 차있는지를 결정하는 것, 기록 버퍼가 꽉 차있지 않을 때 판독 커맨드를 실행하는 것, 그리고 기록 버퍼가 꽉 차있을 때 판독 커맨드를 실행하는 대신, 다음 기록 서브-커맨드를 실행하는 것을 포함한다. 다른 구현에서, 방법(500)은 또한 기록 커맨드의 수신에 대한 응답으로 기록 버퍼 엔트리를 생성한다. 엔트리는 데이터, 어드레스 및 잔여 기록 서브-커맨드들의 수를 포함한다. 그 경우에, 방법(500)은 또한 기록 서브-커맨드를 실행하는 것 그리고 기록 서브-커맨드를 실행한 이후 잔여 기록 커맨드 서브-커맨드들의 수를 수정하는 것을 포함할 수 있다. 또한, 방법(500)은 또한 기록 서브-커맨드들의 세트가 실행될 때 기록 버퍼 엔트리를 제거하는 것을 포함할 수 있다.
블록들이 특정한 시퀀스로 도시되지만, 본 개시는 그것으로 제한되지 않는다. 기록 동작을 더 작은 기록 펄스들로 분할함으로써 저항성 메모리 캐시의 성능을 개선하기 위한 방법이 제공된다. 올바르게 이용되는 경우, 본 개시의 접근법은 통상의 저항성 메모리 디바이스들의 성능을 개선할 수 있다. CPU 성능이 또한 증가될 수 있다.
위에서, 저항성 메모리 디바이스 또는 저항성 메모리 엘리먼트는 MTJ(magnetic tunnel junction), MRAM(magnetic random access memory), RRAM(resistive random access memory) 또는 기준 시스템을 갖는 임의의 저항성 메모리를 포함할 수 있다.
본 개시의 다른 양상에 따라, 저항성 메모리 캐시가 제공된다. 저항성 메모리 캐시는 또한 데이터를 저장하기 위한 수단을 포함한다. 데이터를 저장하기 위한 수단은 메모리(330)를 포함한다. 다른 구성에서, 전술된 수단은, 전술된 수단에 의해 인용되는 기능들을 수행하도록 구성되는 임의의 모듈 또는 임의의 장치일 수도 있다.
저항성 메모리 캐시는 또한 기록 동작들을 버퍼링하기 위한 수단을 포함한다. 버퍼링하기 위한 수단은 기록 버퍼(312)는 물론, 라인 판독 버퍼들(318 및 320), 라인 충전 버퍼들(336 및 338) 및 이빅션 버퍼(332)를 포함한다. 다른 구성에서, 상술된 수단은 상술단 수단에 의해 인용된 기능들을 수행하도록 구성된 임의의 모듈 또는 임의의 장치일 수 있다.
도 6은 본 개시의 일 양상이 유리하게 이용될 수도 있는 예시적인 무선 통신 시스템(600)을 도시하는 블록도이다. 예시의 목적들을 위해, 도 6은 3개의 원격 유닛들(620, 630, 및 650) 및 2개의 기지국들(640)을 도시한다. 무선 통신 시스템들은 더 많은 원격 유닛들 및 기지국들을 가질 수도 있음이 인지될 것이다. 원격 유닛들(620, 630, 및 650)은 개시된 저항성 메모리 디바이스들 또는 저항성 메모리 캐시들을 포함하는 IC 디바이스들(625A, 625C, 및 625B)을 포함한다. 기지국들, 스위칭 디바이스들, 및 네트워크 장비와 같은 다른 디바이스들이 개시된 저항성 메모리 디바이스들을 또한 포함할 수도 있음이 인지될 것이다. 도 6은, 기지국(640)으로부터 원격 유닛들(620, 630, 및 650)로의 순방향 링크 신호들(680) 및 원격 유닛들(620, 630, 및 650)로부터 기지국들(640)로의 역방향 링크 신호들(690)을 도시한다.
도 6에서, 원격 유닛(620)은 모바일 전화로서 도시되고, 원격 유닛(630)은 휴대용 컴퓨터로서 도시되며, 원격 유닛(650)은 무선 로컬 루프 시스템 내의 고정 위치 원격 유닛으로서 도시된다. 예를 들어, 원격 유닛들은 모바일 전화들, 핸드-헬드 PCS(personal communication systems) 유닛들, 개인용 디지털 보조기기와 같은 휴대용 데이터 유닛들, GPS 인에이블된 디바이스들, 내비게이션 디바이스들, 셋 톱 박스들, 뮤직 플레이어들, 비디오 플레이어들, 엔터테인먼트 유닛들, 검침 장비(meter reading equipment)와 같은 고정 위치 데이터 유닛들, 또는 데이터 또는 컴퓨터 명령들을 저장 또는 리트리브(retrieve)하는 다른 디바이스들, 또는 이들의 결합들일 수도 있다. 도 6이 본 개시의 양상들에 따른 원격 유닛들을 예시하지만, 본 개시는 이들 예시적인 예시된 유닛들로 제한되지 않는다. 본 개시의 양상들은 개시된 저항성 메모리 디바이스들을 포함하는 많은 디바이스들에서 적절히 이용될 수도 있다.
도 7은, 위에 개시된 저항성 메모리 디바이스와 같은 반도체 컴포넌트의 회로, 레이아웃, 및 로직 설계를 위해 사용되는 설계 워크스테이션(700)을 예시하는 블록도이다. 설계 워크스테이션(700)은, 운영 시스템 소프트웨어, 지원 파일들, 및 Cadence 또는 OrCAD와 같은 설계 소프트웨어를 포함하는 하드 디스크(701)를 포함한다. 설계 워크스테이션(700)은 또한, 저항성 메모리 디바이스와 같은 반도체 컴포넌트(712) 또는 회로(710)의 설계를 용이하게 하기 위한 디스플레이(702)를 포함한다. 회로 설계(710) 또는 반도체 컴포넌트(712)를 유형으로 저장하기 위한 저장 매체(704)가 제공된다. 회로 설계(710) 또는 반도체 컴포넌트(712)는 GDSII 또는 GERBER와 같은 파일 포맷으로 저장 매체(704) 상에 저장될 수도 있다. 저장 매체(704)는 CD-ROM, DVD, 하드 디스크, 플래시 메모리, 또는 다른 적절한 디바이스일 수도 있다. 또한, 설계 워크스테이션(700)은 저장 매체(704)로부터 입력을 수용하거나 저장 매체(704)에 출력을 기입하기 위한 드라이브 장치(703)를 포함한다.
저장 매체(704) 상에 기록된 데이터는, 로직 회로 구성들, 포토리소그래피 마스크들에 대한 패턴 데이터, 또는 전자 빔 리소그래피와 같은 시리얼 기입 툴들에 대한 마스크 패턴 데이터를 특정할 수도 있다. 데이터는 로직 시뮬레이션들과 연관된 타이밍 도면들 또는 네트(net) 회로들과 같은 로직 검증 데이터를 더 포함할 수도 있다. 저장 매체(704) 상에서 데이터를 제공하는 것은, 반도체 웨이퍼들을 설계하기 위한 프로세스들의 수를 감소시킴으로써 회로 설계(710) 또는 반도체 컴포넌트(712)의 설계를 용이하게 한다.
펌웨어 및/또는 소프트웨어 구현의 경우, 방법들은 본 명세서에 설명된 기능들을 수행하는 모듈들(예를 들어, 절차들, 함수들 등)을 이용하여 구현될 수도 있다. 명령들을 유형으로 실현하는 머신-판독가능 매체가 본 명세서에 설명된 방법들을 구현하는데 사용될 수도 있다. 예를 들어, 소프트웨어 코드들은 메모리에 저장되고 프로세서 유닛에 의해 실행될 수도 있다. 메모리는 프로세서 유닛의 내부에서 또는 프로세서 유닛의 외부에서 구현될 수도 있다. 본 명세서에 사용된 바와 같이, 용어 "메모리"는 장기, 단기, 휘발성, 비휘발성, 또는 다른 메모리의 타입을 지칭하며, 특정한 타입의 메모리 또는 메모리들의 수, 또는 메모리가 저장되는 매체들의 타입에 제한되지 않는다.
펌웨어 및/또는 소프트웨어로 구현되면, 기능들은 컴퓨터-판독가능 매체 상에 하나 또는 그 초과의 명령들 또는 코드로서 저장될 수도 있다. 예들은, 데이터 구조로 인코딩된 컴퓨터-판독가능 매체들 및 컴퓨터 프로그램으로 인코딩된 컴퓨터-판독가능 매체들을 포함한다. 컴퓨터-판독가능 매체들은 물리적 컴퓨터 저장 매체들을 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 이용 가능한 매체일 수도 있다. 제한이 아닌 예로서, 그러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장부, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 다른 매체를 포함할 수 있고; 본 명세서에 사용된 바와 같이, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(disc)(CD), 레이저 디스크(disc), 광학 디스크(disc), 디지털 다목적 디스크(disc)(DVD), 플로피 디스크(disk) 및 Blu-ray 디스크(disc)를 포함하며, 여기서, 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 또한, 상기의 것들의 결합들은 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
컴퓨터 판독가능 매체 상의 저장에 부가하여, 명령들 및/또는 데이터는 통신 장치에 포함된 송신 매체들 상의 신호들로서 제공될 수도 있다. 예를 들어, 통신 장치는 명령들 및 데이터를 표시하는 신호들을 갖는 트랜시버를 포함할 수도 있다. 명령들 및 데이터는, 하나 또는 그 초과의 프로세서들로 하여금 청구항들에서 약술된 기능들을 구현하게 하도록 구성된다.
본 개시 및 본 개시의 이점들이 상세히 설명되었지만, 첨부된 청구항들에 의해 정의된 바와 같은 본 개시의 기술을 벗어나지 않으면서 다양한 변화들, 치환들 및 수정들이 본 명세서에서 행해질 수 있음이 이해되어야 한다. 예를 들어, "위" 및 "아래"와 같은 상관적 용어들이 기판 또는 전자 디바이스에 대하여 사용된다. 물론, 기판 또는 전자 디바이스가 반전되면, 위가 아래가 되고, 아래가 위가 된다. 부가적으로, 옆으로 배향되면, 위 및 아래는 기판 또는 전자 디바이스의 측면들을 지칭할 수도 있다. 또한, 본 출원의 범위는 본 명세서에서 설명된 프로세스, 머신, 제작물, 물질의 구성, 수단, 방법들 및 단계들의 특정 구성들에 제한되도록 의도되지 않는다. 당업자가 본 개시로부터 용이하게 인식할 바와 같이, 본 명세서에 설명된 대응하는 구성들과 실질적으로 동일한 기능을 수행하거나 실질적으로 동일한 결과를 달성하는, 현재 존재하거나 또는 추후에 개발될 프로세스들, 머신들, 제작물, 물질의 구성들, 수단, 방법들, 또는 단계들은 본 개시에 따라 이용될 수도 있다. 따라서, 첨부된 청구항들은 그들의 범위 내에 그러한 프로세스들, 머신들, 제작물, 물질의 구성들, 수단, 방법들 또는 단계들을 포함하도록 의도된다.

Claims (20)

  1. 저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법으로서,
    기록 커맨드를 수신하는 단계;
    상기 기록 커맨드를 복수의 기록 서브-커맨드들로 분할하는 단계;
    판독 커맨드를 수신하는 단계; 및
    다음 기록 서브-커맨드를 실행하기 이전에 상기 판독 커맨드를 실행하는 단계
    를 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  2. 제 1 항에 있어서,
    기록 버퍼가 꽉 찼는지를 결정하는 단계;
    상기 기록 버퍼가 꽉 차지 않았을 때 상기 판독 커맨드를 실행하는 단계; 및
    상기 판독 커맨드를 실행하는 대신, 상기 기록 커맨드가 완료될 때까지 상기 기록 버퍼가 꽉 차있을 때 상기 다음 기록 서브-커맨드를 실행하는 단계
    를 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  3. 제 1 항에 있어서,
    상기 기록 커맨드를 수신하는 것에 대한 응답으로 기록 버퍼 엔트리를 생성하는 단계
    를 더 포함하고,
    상기 엔트리는, 데이터, 어드레스 및 잔여 상기 복수의 기록 서브-커맨드들의 수를 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  4. 제 3 항에 있어서,
    기록 서브-커맨드를 실행하는 단계; 및
    상기 기록 서브-커맨드를 실행한 이후 잔여 상기 복수의 기록 서브-커맨드들의 수를 수정하는 단계
    를 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  5. 제 4 항에 있어서,
    상기 복수의 기록 서브-커맨드들이 실행될 때 상기 기록 버퍼 엔트리를 제거하는 단계
    를 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  6. 제 1 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 네비게이션 디바이스, 컴퓨터, 핸드-헬드 PCS(personal communication systems) 유닛, 휴대용 데이터 유닛 및/또는 고정 위치 데이터 유닛 내로 상기 저항성 메모리 캐시를 통합하는 단계
    를 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  7. 저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법으로서,
    기록 커맨드를 수신하는 스텝;
    상기 기록 커맨드를 복수의 기록 서브-커맨드들로 분할하는 스텝;
    판독 커맨드를 수신하는 스텝; 및
    다음 기록 서브-커맨드를 실행하기 이전에 상기 판독 커맨드를 실행하는 스텝
    를 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  8. 제 7 항에 있어서,
    기록 버퍼가 꽉 찼는지를 결정하는 스텝;
    상기 기록 버퍼가 꽉 차지 않았을 때 상기 판독 커맨드를 실행하는 스텝; 및
    상기 판독 커맨드를 실행하는 대신, 상기 기록 커맨드가 완료될 때까지 상기 기록 버퍼가 꽉 차있을 때 상기 다음 기록 서브-커맨드를 실행하는 스텝
    을 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  9. 제 7 항에 있어서,
    상기 기록 커맨드를 수신하는 것에 대한 응답으로 기록 버퍼 엔트리를 생성하는 스텝
    을 더 포함하고,
    상기 엔트리는, 데이터, 어드레스 및 잔여 상기 복수의 기록 서브-커맨드들의 수를 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  10. 제 9 항에 있어서,
    기록 서브-커맨드를 실행하는 스텝; 및
    상기 기록 서브-커맨드를 실행한 이후 잔여 상기 복수의 기록 서브-커맨드들의 수를 수정하는 스텝
    을 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  11. 제 10 항에 있어서,
    상기 복수의 기록 서브-커맨드들이 실행될 때 상기 기록 버퍼 엔트리를 제거하는 스텝
    을 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  12. 제 7 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 네비게이션 디바이스, 컴퓨터, 핸드-헬드 PCS(personal communication systems) 유닛, 휴대용 데이터 유닛 및/또는 고정 위치 데이터 유닛 내로 상기 저항성 메모리 캐시를 통합하는 스텝
    을 더 포함하는,
    저항성 메모리 캐시로부터 판독하고 저항성 메모리 캐시에 기록하는 방법.
  13. 저항성 메모리 캐시로서,
    적어도 하나의 입력 포트 및 적어도 하나의 출력 포트를 포함하는 멀티플렉서;
    상기 멀티플렉서의 적어도 하나의 출력 포트에 커플링되는 메모리; 및
    상기 멀티플렉서의 적어도 하나의 입력 포트에 커플링되는 기록 버퍼
    를 포함하고,
    상기 기록 버퍼는 데이터, 어드레스, 기록 커맨드 펄스 카운터를 포함하는 적어도 하나의 기록 버퍼 엔트리를 갖는,
    저항성 메모리 캐시.
  14. 제 13 항에 있어서,
    상기 기록 버퍼는,
    상기 멀티플렉서의 적어도 하나의 입력 포트에 커플링되는 기록 할당 버퍼; 및
    상기 멀티플렉서의 적어도 하나의 입력 포트 및 상기 기록 할당 버퍼에 커플링되는 적어도 하나의 라인 충전 버퍼를 포함하는,
    저항성 메모리 캐시.
  15. 제 13 항에 있어서,
    상기 기록 커맨드 펄스 카운터는 상기 기록 커맨드가 완료될 때마다 업데이트되는,
    저항성 메모리 캐시.
  16. 제 13 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 네비게이션 디바이스, 컴퓨터, 핸드-헬드 PCS(personal communication systems) 유닛, 휴대용 데이터 유닛 및/또는 고정 위치 데이터 유닛 내로 상기 저항성 메모리 캐시를 통합되는,
    저항성 메모리 캐시.
  17. 저항성 메모리 캐시로서,
    적어도 하나의 입력 포트 및 적어도 하나의 출력 포트를 포함하는 멀티플렉서;
    상기 멀티플렉서의 적어도 하나의 출력 포트에 커플링되는 데이터를 저장하기 위한 수단; 및
    상기 멀티플렉서의 적어도 하나의 입력 포트에 커플링되는 기록 커맨드들을 버퍼링하기 위한 수단
    을 포함하고,
    상기 기록 커맨드들을 버퍼링하기 위한 수단은 데이터, 어드레스, 기록 커맨드 펄스 카운터를 포함하는 적어도 하나의 기록 버퍼 엔트리를 갖는,
    저항성 메모리 캐시.
  18. 제 17 항에 있어서,
    상기 기록 커맨드들을 버퍼링하기 위한 수단은,
    상기 멀티플렉서의 적어도 하나의 입력 포트에 커플링되는 기록 할당 버퍼; 및
    상기 멀티플렉서의 적어도 하나의 입력 포트 및 상기 기록 할당 버퍼에 커플링되는 적어도 하나의 라인 충전 버퍼를 포함하는,
    저항성 메모리 캐시.
  19. 제 17 항에 있어서,
    상기 기록 커맨드 펄스 카운터는 상기 기록 커맨드가 실행될 때마다 업데이트되는,
    저항성 메모리 캐시.
  20. 제 17 항에 있어서,
    모바일 전화, 셋 톱 박스, 뮤직 플레이어, 비디오 플레이어, 엔터테인먼트 유닛, 네비게이션 디바이스, 컴퓨터, 핸드-헬드 PCS(personal communication systems) 유닛, 휴대용 데이터 유닛 및/또는 고정 위치 데이터 유닛 내로 상기 저항성 메모리 캐시를 통합되는,
    저항성 메모리 캐시.
KR1020167013313A 2013-10-24 2014-10-01 저항성 메모리 캐시에 대한 기록 동작의 분할 KR20160074617A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/062,558 2013-10-24
US14/062,558 US9239788B2 (en) 2013-10-24 2013-10-24 Split write operation for resistive memory cache
PCT/US2014/058668 WO2015061014A1 (en) 2013-10-24 2014-10-01 Split write operation for resistive memory cache

Publications (1)

Publication Number Publication Date
KR20160074617A true KR20160074617A (ko) 2016-06-28

Family

ID=51690499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167013313A KR20160074617A (ko) 2013-10-24 2014-10-01 저항성 메모리 캐시에 대한 기록 동작의 분할

Country Status (6)

Country Link
US (2) US9239788B2 (ko)
EP (1) EP3061096B1 (ko)
JP (1) JP2016538629A (ko)
KR (1) KR20160074617A (ko)
CN (1) CN105765660B (ko)
WO (1) WO2015061014A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11238918B2 (en) 2019-04-18 2022-02-01 Samsung Electronics Co., Ltd. Memory device having low write error rate

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104854457B (zh) 2012-12-20 2016-09-14 霍夫曼-拉罗奇有限公司 用于分析体液样本的方法
US9239788B2 (en) 2013-10-24 2016-01-19 Qualcomm Incorporated Split write operation for resistive memory cache
CN106502581B (zh) * 2016-09-30 2019-05-28 华为技术有限公司 闪存控制器、闪存控制方法和固态硬盘
KR102293069B1 (ko) * 2017-09-08 2021-08-27 삼성전자주식회사 불휘발성 메모리 장치 및 제어기를 포함하는 스토리지 장치, 제어기, 그리고 스토리지 장치의 동작 방법
KR102452623B1 (ko) * 2018-02-27 2022-10-07 삼성전자주식회사 기입 레이턴시를 줄일 수 있는 저항성 메모리 장치의 동작 방법
CN108829613B (zh) * 2018-05-24 2020-12-29 中山市江波龙电子有限公司 数据存储方法及存储设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08221311A (ja) * 1994-12-22 1996-08-30 Sun Microsyst Inc スーパースカラプロセッサにおけるロードバッファ及びストアバッファの優先順位の動的切換え
JP3289661B2 (ja) * 1997-11-07 2002-06-10 日本電気株式会社 キャッシュメモリシステム
JP3494072B2 (ja) * 1999-04-26 2004-02-03 日本電気株式会社 キャッシュメモリ及びその障害検出方法
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US7308526B2 (en) 2004-06-02 2007-12-11 Intel Corporation Memory controller module having independent memory controllers for different memory types
US7606111B2 (en) 2007-04-26 2009-10-20 Super Talent Electronics, Inc. Synchronous page-mode phase-change memory with ECC and RAM cache
GB2458295B (en) * 2008-03-12 2012-01-11 Advanced Risc Mach Ltd Cache accessing using a micro tag
TWI451410B (zh) 2008-04-18 2014-09-01 Sony Corp Recording method of magnetic memory element
KR20110010770A (ko) * 2008-05-13 2011-02-07 램버스 인코포레이티드 메모리 디바이스를 위한 단편화 프로그램 명령
US8516125B2 (en) * 2008-06-08 2013-08-20 Apple Inc. System and method for simplified data transfer
US20100042954A1 (en) * 2008-08-12 2010-02-18 Apple Inc. Motion based input selection
JP4738462B2 (ja) 2008-09-25 2011-08-03 株式会社東芝 磁気ランダムアクセスメモリ
US8850052B2 (en) * 2008-09-30 2014-09-30 Apple Inc. System and method for simplified resource sharing
US8266409B2 (en) * 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same
US8644078B2 (en) 2009-03-24 2014-02-04 Rambus Inc. Pulse control for nonvolatile memory
US8004884B2 (en) 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems
US8463979B2 (en) 2009-09-08 2013-06-11 Ocz Technology Group Inc. Non-volatile storage devices, methods of addressing, and control logic therefor
US8214598B2 (en) * 2009-12-22 2012-07-03 Intel Corporation System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries
US20110162048A1 (en) * 2009-12-31 2011-06-30 Apple Inc. Local device awareness
US9239788B2 (en) 2013-10-24 2016-01-19 Qualcomm Incorporated Split write operation for resistive memory cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11238918B2 (en) 2019-04-18 2022-02-01 Samsung Electronics Co., Ltd. Memory device having low write error rate
US11869575B2 (en) 2019-04-18 2024-01-09 Samsung Electronics Co., Ltd. Memory device having low write error rate

Also Published As

Publication number Publication date
US9411727B2 (en) 2016-08-09
EP3061096B1 (en) 2020-04-22
WO2015061014A1 (en) 2015-04-30
CN105765660A (zh) 2016-07-13
CN105765660B (zh) 2019-03-12
US20150121006A1 (en) 2015-04-30
US20160092355A1 (en) 2016-03-31
EP3061096A1 (en) 2016-08-31
US9239788B2 (en) 2016-01-19
JP2016538629A (ja) 2016-12-08

Similar Documents

Publication Publication Date Title
US9411727B2 (en) Split write operation for resistive memory cache
US9304913B2 (en) Mixed memory type hybrid cache
US9679663B2 (en) OTP cell with reversed MTJ connection
US9165631B2 (en) OTP scheme with multiple magnetic tunnel junction devices in a cell
JP6058049B2 (ja) 均一なパターンを有する磁気ランダムアクセスメモリ(mram)の配置
US20140027869A1 (en) AMORPHOUS ALLOY SPACER FOR PERPENDICULAR MTJs
JP6196305B2 (ja) マルチコアプロセッサ用の調整可能なマルチティアstt−mramキャッシュ
JP2015528622A (ja) データセルおよび参照セルによって共有される書込みドライバを含むmram
US20140211551A1 (en) Mram self-repair with bist logic
US8570797B2 (en) Magnetic random access memory (MRAM) read with reduced disturb failure
JP6082112B2 (ja) モノリシックマルチチャネル適合可能stt−mram
ZHANG et al. STT-RAM cell design considering MTJ asymmetric switching
US8593173B2 (en) Programmable logic sensing in magnetic random access memory
Sumberac A split instruction/data implementation of a STT MRAM last-level on-chip microprocessor cache

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid