KR20140013012A - 수동 가변 저항 메모리에서 데이터를 업데이트하는 방법 및 장치 - Google Patents

수동 가변 저항 메모리에서 데이터를 업데이트하는 방법 및 장치 Download PDF

Info

Publication number
KR20140013012A
KR20140013012A KR1020137026017A KR20137026017A KR20140013012A KR 20140013012 A KR20140013012 A KR 20140013012A KR 1020137026017 A KR1020137026017 A KR 1020137026017A KR 20137026017 A KR20137026017 A KR 20137026017A KR 20140013012 A KR20140013012 A KR 20140013012A
Authority
KR
South Korea
Prior art keywords
pvrm
memory
processor
cache
memory block
Prior art date
Application number
KR1020137026017A
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 KR20140013012A publication Critical patent/KR20140013012A/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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

수동 가변 저항 메모리(PVRM)에서 데이터를 업데이트하는 방법 및 장치가 제공된다. 일례에서, PVRM에 저장된 데이터를 업데이트하는 방법이 개시된다. 본 방법은 상기 메모리 블록을 무효화함이 없이 캐시 계층에 있는 복수의 메모리 블록 중 하나의 메모리 블록을 업데이트하는 단계를 포함한다. 상기 업데이트된 메모리 블록은 상기 캐시 계층으로부터 라이트 쓰루 버퍼로 복사될 수 있다. 추가적으로, 본 방법은 상기 업데이트된 메모리 블록을 상기 PVRM에 기록하여, PVRM의 데이터를 업데이트하는 단계를 포함한다.

Description

수동 가변 저항 메모리에서 데이터를 업데이트하는 방법 및 장치{METHODS AND APPARATUS FOR UPDATING DATA IN PASSIVE VARIABLE RESISTIVE MEMORY}
본 발명은 메모리에 저장된 데이터를 업데이트하는 방법 및 장치에 관한 것이다.
종래의 컴퓨팅 시스템은 휘발성 메모리와 전통적인 비휘발성 메모리 사이에 상이한 특성 및 트레이드오프(trade-off)를 레버리지(leverage)하도록 설계되었다. 예를 들어, 휘발성 메모리(예를 들어, DRAM, SRAM 등)는 상대적으로 고속의 액세스 바이트-어드레싱을 제공한다. 그러나, 그 이름이 의미하는 바와 같이, 휘발성 메모리는 전력 손실(power loss) 시 또는 전력 사이클링(power cycle)시 상태 정보(state information)를 손실(loss)한다. 역으로, 전통적인 비휘발성 메모리(예를 들어, 플래시, 하드 디스크 등)는 전력 손실 시 또는 전력 사이클링시에도 상태 정보를 보유한다. 그러나, 전통적인 비휘발성 메모리는 다수의 단점을 나타낸다. 예를 들어, 전통적인 비휘발성 메모리는 일반적으로 블록-기반 업데이트를 요구한다. 즉, 전통적인 비휘발성 메모리에서 단일 값을 업데이트하는데, 메모리 블록 내의 값 전부를 업데이트하는 것이 종종 필요하다. 이 기술 분야에 통상의 지식을 가진 자라면 이해하는 바와 같이, 이것은 레이턴시(latency)를 증가시킬 수 있고 불필요하게 컴퓨팅 자원을 독점할 수 있다.
따라서, 종래의 컴퓨팅 시스템은 휘발성 및 전통적인 비휘발성 유형의 메모리에 데이터를 저장한다. 예를 들어, 예를 들어, CPU에 의해 빈번히 액세스되는 데이터는 신속한 액세스를 위하여 CPU(예를 들어, SRAM)를 가지는 온칩에 종종 저장된 휘발성 메모리에 일시적으로 저장(즉, 캐싱)될 수 있다. 그러나, 휘발성 메모리가 전력 손실 시 또는 전력 사이클 시 그 상태 정보를 손실하므로, 휘발성 메모리-기반 캐시(예를 들어, 파일 시스템 데이터)에 일부 업데이트는 지속적인 저장(persistent storage)을 위해 비휘발성 메모리(예를 들어, 하드 디스크, 플래시 등)에 종국적으로 복제되어야 한다. 비휘발성 메모리에 저장된 데이터의 업데이트는 일반적으로 PCI-E(PCI-Express)와 같은 상대적으로 느린 블록 기반 인터페이스를 통해 수행된다. 그러나, 전통적인 비휘발성 메모리는 먼저 액세스하는 것이 상대적으로 느리기 때문에, PCI-E 인터페이스를 사용하면 종래의 컴퓨팅 시스템에서 전체 메모리 액세스 시간이 실질적으로 저하되지 않는다. 다시 말해, 상대적으로 느린 액세스 시간을 가지는 비휘발성 유형의 메모리에 지속적인 저장이 종래 방식으로 구현된다. 예를 들어, 하드 디스크에 저장된 데이터는 액세스하는데 밀리 초 소요될 수 있는 반면, 플래시 메모리에 저장된 데이터는 액세스하는데 마이크로 초 소요될 수 있다. 그리하여, 종래의 지속적인 저장 업데이트 메커니즘(즉, 지속적인 저장에 업데이트를 가능하게 하는 하드웨어 및/또는 소프트웨어)은 성능에 상당한 영향을 미침이 없이 대응하여 느린 인터페이스(예를 들어, PCI-E 및 다른 필적하는 느린 인터페이스)를 사용한다.
그러나, 예를 들어, 하드 디스크 및/또는 플래시보다 액세스 시간이 상당히 더 빠른 새로운 유형의 저장 방식이 등장하고 있다. 이들 새로운 유형의 저장은 바이트-어드레싱(플래시와 같은 메모리 유형에서 블록 기반 어드레싱과 비교해서) 및 비휘발성을 나타낸다. 따라서, 이들 새로운 유형의 저장이 제공하는 더 빠른 액세스 시간을 이용하기 위하여, 대응하여 빠른 지속적인 저장 업데이트 메커니즘을 사용하는 것이 중요하다. 기존의 지속적인 저장 업데이트 메커니즘은 이들 새로운 유형의 저장이 제공하는 더 빠른 액세스 시간을 이용하기에는 너무 느려서, 이들 새로운 유형의 저장에 사용하기에 적절치 않다.
한편, 기존의 메인 메모리 업데이트 메커니즘(즉, 메인 메모리에 업데이트를 가능하게 하는 하드웨어 및/또는 소프트웨어)은 이들 새로운 유형의 저장에 적절한 액세스 시간을 제공할 수 있으나, 이들 업데이트 메커니즘은 라이트백 완료(writeback completion)의 가시성(visibility)을 소프트웨어(예를 들어, 운영 시스템)에 제공하지 못한다. 라이트백 완료의 가시성을 소프트웨어에 제공하지 못하면 컴퓨팅 디바이스의 파일 시스템(예를 들어, 운영 시스템에 의해 구현되는 파일 시스템) 내에 비일관성(inconsistency)이 초래될 수 있다.
이 기술 분야에 알려진 바와 같이, 컴퓨팅 디바이스의 운영 시스템(OS)은 컴퓨팅 디바이스의 저장 성분(들)(예를 들어, DRAM, 하드 디스크, 플래시 등)에 파일로 저장된 데이터를 구조화(organize), 관리(manage), 및 정렬(sort)하도록 설계된 파일 시스템을 구현할 수 있다. 파일 시스템은 저장 성분(들)의 물리적 섹터(sector)(예를 들어, 메모리의 512 비트의 물리적 섹터)를 파일과 디렉토리로 구조화하고, 어느 섹터가 어느 파일에 속하는지 어느 섹터가 사용되지 않고 있는지를 추적하는 일을 한다. 대부분의 파일 시스템은 "메모리 블록"이라고 언급되는 고정된 사이즈의 유닛(unit)으로 데이터를 처리(address)한다. 이 기술 분야에 알려진 용어인 일관성(consistency)과 지속성(durability)을 유지하기 위하여, 파일 시스템은 기록이 언제 지속적인 저장에 이르는지를 알아야 하고 특정 기록들 사이에 순서(ordering)를 한정할 수 있어야 한다. 예를 들어, 이 기술 분야에 알려진 바와 같이 섀도우 페이징(shadow paging) 파일 시스템은 새로운 데이터 파일을 나타내는 이노드(inode) 파일을 업데이트하기 전에 데이터 파일이 업데이트되는 것을 보장하여야 한다. 그러나, 데이터 파일이 라이트백(written back)되기 전에 이노드 파일의 라이트백이 일어나면, 지속적인 저장에 일관성이 없게 된다. 그러므로, 하드웨어는 소프트웨어에 의해 지정된 라이트백의 순서를 유지하는 것이 중요하다.
많은 기존의 메인 메모리 업데이트 메커니즘은 소프트웨어에 지속적인 저장 라이트백의 가시성을 제공하지 않는다. 다른 기존의 메인 메모리 업데이트 메커니즘은 소프트웨어에 라이트백 가시성을 제공할 수 있으나, 엄청나게 느리다. 필요한 순서 제약을 제공하는데 사용될 수 있는 기록 정책이 존재하지만, 이들 기존의 정책으로는 전술된 새로운 유형의 저장에 사용하기에는 충분치 않다.
예를 들어, 순서 제약 문제를 해결하는 하나의 종래의 해결책은 라이트백 메모리(Writeback memory: WB)를 사용하는 것이다. 그 이름이 의미하는 바와 같이, WB 메모리는 더티(dirty) 캐시 블록(즉, 캐시에 있는 동안 기록된 캐시 블록)이 캐시 계층(cache hierarchy)으로부터 퇴거(evicted)될 때에만 메인 메모리에 기록한다. 이러한 시스템에서 캐시 코히런스 프로토콜(coherence protocol)은 메인 메모리가 실제 오래된 데이터를 저장하고 있다 하더라도 모든 프로세서(예를 들어, CPU 및/또는 GPU)들이 WB 블록에 일관된 뷰(consistent view)를 보는 것을 보장한다.
WB 메모리를 사용하는 시스템은 이런 방식으로 캐시 플러시(flush) 또는 비일시적인 저장(non-temporal store) 명령을 사용하여 메인 메모리에 데이터를 퇴거(retiring)시키는 것에 의해 필요한 순서 제약을 제공할 수 있다. 예를 들어, CFLUSH x86 명령은 캐시 계층 내 지정된 캐시 라인 어드레스(line address)의 모든 사본을 무효화(invalidate)하고, 만약 더티(dirty)하다면 메인 메모리에 블록을 기록한다. 한편, x86 비일시적인 저장 명령은 데이터를 캐시 블록에 기록하고 나서 캐시 블록 메인 메모리를 무효화한다. 이들 두 명령 유형은 다른 메모리 동작에 비해 약하게 지시(weakly ordered)되어서, 다른 메모리 동작에 비해 이를 지시하기 위해서는 MFENCE 또는 SFENCE 명령이 삽입되어야 한다. 이러한 해결책과 연관된 하나의 단점은 CFLUSH 명령이 캐시 라인을 무효화하는데 사용될 때, 이것은 이 라인에 대한 임의의 후속 액세스가 캐시를 누락(miss)하게 하고 메인 메모리에 액세스하게 하는 것이다. 특정 데이터가 매우 빈번히 업데이트되고 있는 상황에서, 이것은 상당한 성능 저하를 초래할 수 있다. 본 명세서에 사용된 바와 같이, 데이터는 예를 들어, 지시/명령 또는 임의의 다른 적절한 정보를 포함할 수 있다.
WB 메모리를 사용하는 대신에, 캐싱가능하지 않은(Uncacheable: UC) 메모리가 대신 사용될 수 있다. WB 메모리에 비해 UC 메모리의 하나의 장점은 UC 메모리 액세스는 재정렬되지 않고 업데이트 메인 메모리에 직접 기록한다는 것이다. 그리하여, UC는 MFENCE 명령을 요구함이 없이 필요한 순서 제약을 제공한다. 그러나, 캐싱을 하지 않으면 모든 UC 메모리가 메인 메모리에 직접 액세스하고 모든 UC가 기록 버퍼에 플러시 판독하는 것을 요구하여, 전술된 WB/CFLUSH 해결책에 비해 대역폭 요구를 상당히 증가시켜서 훨씬 더 큰 성능 저하를 야기할 수 있다.
또 다른 해결책은 기록-결합(Write-Combining: WC) 메모리를 사용하는 것을 포함한다. WC 메모리는 UC 메모리와 유사하지만, 이것은 기록이 결합(coalesced)되게 하고 서로에 대하여 정렬 없이(out-of-order) 수행되게 한다. 나아가, WC 판독은 추론적으로(speculatively) 수행된다. 그러나, WC 메모리는 아직 캐싱가능하지 않아서 모든 액세스가 메인 메모리로 가야 하므로 성능 저하를 초래하게 된다.
또 다른 해결책은 라이트-쓰루(Write-Through: WT) 메모리를 사용하는 것을 수반한다. WB 메모리와 유사하게, WT 메모리는 캐싱될 수 있다. 또한, WT 메모리에 기록하는 것은 메인 메모리에 직접 기록하여서 CFLUSH 명령에 대한 필요성을 제거한다. 그러나, WT 해결책은 모든 WT 메모리 기록이 메인 메모리로 가야 하기 때문에 여전히 상당한 대역폭을 요구한다. 요약하면, 종래의 메인 메모리 업데이트 메커니즘은 비휘발성, 바이트-어드레싱, 및 빠른 액세스 시간을 나타내는 새로운 메모리 유형의 많은 장점을 레버리지할 수 없다.
따라서, 이들 새로운 유형의 메모리의 더 빠른 액세스 시간, 바이트-어드레싱, 및 비휘발성을 레버리지하도록 설계된 방법 및 장치에 대한 요구가 존재한다.
본 발명은 PVRM의 데이터를 업데이트하는 방법 및 장치를 제공한다. 일례에서, PVRM의 데이터를 업데이트하는 방법이 개시된다. 이 예에서, 본 방법은 메모리 블록을 무효화함이 없이 캐시 계층의 복수의 메모리 블록 중 하나의 메모리 블록을 업데이트하는 단계를 포함한다. 일례에서, 상기 복수의 메모리 블록 중 하나의 메모리 블록은 프로세서에 의해 실행되는 디커플드 라이트 쓰루를 이용한 비-무효화 저장 명령(non-invalidating store instruction with de-coupled writethrough: NISIDW)에 기초하여 업데이트된다. 업데이트된 메모리 블록은 캐시 계층으로부터 라이트 쓰루 버퍼(write through buffer)로 복사될 수 있다. 본 방법은 업데이트된 메모리 블록을 PVRM에 기록하여, 이에 의해 PVRM의 데이터를 업데이트하는 단계를 더 포함한다. 일례에서, PVRM은 다음 유형의 PVRM, 즉 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리, 및/또는 멤리스터 메모리 중 적어도 하나일 수 있다.
다른 예에서, 본 방법은 추가적으로 프로세서를 통해 적어도 하나의 FENCE 명령을 실행하는 단계를 포함할 수 있다. 프로세서는 업데이트된 메모리 블록이 FENCE 명령에 기초하여 PVRM에 기록되었을 때 통지받을 수 있다. 또 다른 예에서, 캐시 계층은 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시 중 적어도 하나를 포함할 수 있다. 또 다른 예에서, PVRM은 바이트-어드레싱 가능하다.
본 발명은 또한 예를 들어, 상기 방법을 수행하는데 사용될 수 있는 관련된 장치를 제공한다. 일례에서, 본 장치는 복수의 메모리 블록을 구비하는 캐시 계층, 상기 캐시 계층에 동작가능하게 연결된 라이트 쓰루 버퍼, 상기 라이트 쓰루 버퍼에 동작가능하게 연결된 PVRM, 및 상기 캐시 계층에 동작가능하게 연결된 프로세서를 포함한다. 이 예에서, 상기 프로세서는 상기 메모리 블록을 무효화함이 없이 캐시 계층의 복수의 메모리 블록 중 하나의 메모리 블록을 업데이트하도록 동작가능하다. 이것은 예를 들어, 적어도 하나의 NISIDW를 실행하는 프로세서에 의하여 달성될 수 있다. 이 예를 계속 들면, 캐시 계층은 프로세서가 메모리 블록을 업데이트한 것에 응답하여 업데이트된 메모리 블록을 라이트 쓰루 버퍼에 복사하도록 동작가능하다. 라이트 쓰루 버퍼는 업데이트된 메모리 블록을 PVRM에 기록하도록 동작가능하다. 이런 방식으로, PVRM에 저장된 데이터는 업데이트될 수 있다.
본 장치의 일례에서, PVRM은, 라이트 쓰루 버퍼가 온 다이 인터페이스(on-die interface)를 통해 업데이트된 메모리 블록을 PVRM에 기록하도록 동작가능하도록 이중 데이터 레이트 인터페이스(double data rate interface)와 같은 온 다이 인터페이스를 통해 라이트 쓰루 버퍼에 동작가능하게 연결된다. 다른 예에서, 프로세서는 적어도 하나의 FENCE 명령을 실행하도록 더 동작가능하다. 각 FENCE 명령은 라이트 쓰루 버퍼가 업데이트된 메모리 블록을 PVRM에 기록하였을 때 프로세서에 통지하게 하도록 동작가능하다. 또 다른 예에서, 본 장치는 또한 적어도 하나의 추가적인 프로세서를 포함한다. 이 예에서, 본 프로세서 및 적어도 하나의 추가적인 프로세서는 이 프로세서에 의해 적어도 하나의 각 FENCE 명령을 실행한 이후에 PVRM의 데이터에 일관성 있는 전체 뷰(consistent global view)를 제공한다.
본 발명은 또한 PVRM의 데이터를 업데이트하는 다른 방법을 제공한다. 일례에서, 본 방법은 캐시 계층의 복수의 메모리 블록 중 캐시 계층으로부터 PVRM으로 복사될 적어도 하나의 메모리 블록을 식별하는 제어 정보를 PVRM 제어기에 프로세서에 의해 전송하는 단계를 포함한다. 적어도 하나의 식별된 메모리 블록은 또한 이 제어 정보에 응답하여 캐시 계층으로부터 PVRM으로 복사될 수 있다. 이런 방식으로, PVRM에 저장된 데이터가 업데이트될 수 있다.
일례에서, 적어도 하나의 식별된 메모리 블록을 캐시 계층으로부터 PVRM으로 복사하는 단계는 이중 데이터 레이트 인터페이스와 같은 온 다이 인터페이스를 통해 식별된 메모리 블록을 복사하는 단계를 포함한다. 일례에서, PVRM은 다음 유형의 PVRM, 즉 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리, 및/또는 멤리스터 메모리 중 적어도 하나일 수 있다.
일례에서, 본 방법은 또한 프로세서에 의하여, 완료 통지 정보(completion notification information)를 획득하는 단계를 포함한다. 완료 통지 정보는 적어도 하나의 식별된 메모리 블록이 캐시 계층으로부터 PVRM으로 복사되었다는 것을 프로세서에 통지하도록 동작가능하다. 완료 통지 정보는 여러 방식으로 획득될 수 있다. 일례에서, 완료 통지 정보는 프로세서가 PVRM 제어기와 연관된 스테이터스 비트(status bit)를 폴링(polling)하는 것에 의해 획득된다. 이 예에서, 상기 스테이터스 비트는 적어도 하나의 식별된 메모리 블록이 캐시 계층으로부터 PVRM으로 복사되었는지의 여부를 나타낸다. 다른 예에서, 완료 통지 정보는 프로세서가 적어도 하나의 식별된 메모리 블록이 캐시 계층으로부터 PVRM으로 복사되었다는 것을 나타내는 PVRM 제어기로부터의 프로세서 인터럽트 신호를 수신하는 것에 의하여 획득된다. 또 다른 예에서, 캐시 계층은 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시 중 적어도 하나를 포함할 수 있다.
본 발명은 또한 예를 들어, 전술된 방법을 수행하는데 사용될 수 있는 관련된 장치를 제공한다. 일례에서, 본 장치는 복수의 메모리 블록을 구비하는 캐시 계층, PVRM, 상기 캐시 계층 및 PVRM에 동작가능하게 연결된 PVRM 제어기, 및 상기 PVRM 제어기에 동작가능하게 연결된 프로세서를 포함한다. 이 예에서, 프로세서는 복수의 메모리 블록 중 캐시 계층으로부터 PVRM으로 복사될 적어도 하나의 메모리 블록을 식별하는 제어 정보를 PVRM 제어기에 전송하도록 동작가능하다. 이 예를 계속 참조하면, PVRM 제어기는 제어 정보에 응답하여 캐시 계층으로부터 PVRM으로 적어도 하나의 식별된 메모리 블록을 복사하도록 동작가능하다.
일례에서 프로세서는 적어도 하나의 식별된 메모리 블록이 캐시 계층으로부터 PVRM으로 복사되었다는 것을 프로세서에 통지하도록 동작가능한 완료 통지 정보를 획득하도록 동작가능하다. 완료 통지 정보는 예를 들어, 전술된 기술(예를 들어, 스테이터스 비트를 폴링하는 것 및/또는 프로세서 인터럽트 신호를 통해) 중 어느 것을 사용하여 획득될 수 있다. 또 다른 예에서, PVRM은 이중 데이터 레이트 인터페이스와 같은 온 다이 인터페이스를 통해 캐시 계층에 동작가능하게 연결되어, 상기 PVRM 제어기는 온 다이 인터페이스를 통해 캐시 계층으로부터 PVRM으로 적어도 하나의 식별된 메모리 블록을 복사하도록 동작가능하다.
다른 장점 중에서 특히, 본 개시된 방법 및 장치는 PVRM과 호환가능한 액세스 속도 및 새로운 디커플드 라이트 쓰루를 이용한 비-무효화 저장 명령(NISIDW)을 가지는 새로운 지속적인 저장 업데이트 메커니즘을 제공한다. 새로운 지속적인 저장 업데이트 메커니즘을 포함하는 컴퓨팅 시스템에서 NISIDW를 실행하는 것은 지속적인 저장(예를 들어, PVRM)의 상태에 일관된 뷰를 유지하기 위하여 라이트백 완료의 가시성을 소프트웨어에 제공한다. 나아가, NISIDW는 업데이트 메모리 블록을 무효화함이 없이 캐시 계층 및 PVRM를 업데이트할 수 있다. 다른 장점은 이 기술 분야에 통상의 지식을 가진 자에 의하여 인식될 수 있을 것이다.
본 발명은 동일한 참조 부호가 동일한 요소를 나타내는 첨부 도면을 참조하여 아래 상세한 설명을 통해 보다 용이하게 이해될 수 있을 것이다.
도 1은 본 발명에 따라 수동 가변 저항 메모리(passive variable resistive memory: PVRM)에 데이터를 업데이트하는 장치의 일례를 일반적으로 도시한 블록도;
도 2는 본 발명에 따라 PVRM에 데이터를 업데이트하는 장치의 다른 예를 일반적으로 도시한 블록도;
도 3은 본 발명에 따라 PVRM에 데이터를 업데이트하는 장치의 또 다른 예를 일반적으로 도시한 블록도;
도 4는 PVRM에 데이터를 업데이트하는 방법의 일례를 도시한 흐름도;
도 5는 PVRM에 데이터를 업데이트하는 방법의 다른 예를 도시한 흐름도;
도 6은 PVRM에 데이터를 업데이트하는 방법의 또 다른 예를 도시한 흐름도;
도 7은 PVRM에 데이터를 업데이트하는 방법의 더 다른 예를 도시한 흐름도.
실시예의 이하 상세한 설명은 단지 예시를 위한 것일 뿐 본 발명, 그 응용 또는 용도를 제한하려고 의도된 것이 전혀 아니다. 도 1은 본 발명에 따라 수동 가변 저항 메모리(PVRM)(108)에 데이터를 업데이트하는 장치(100)(즉, 새로운 지속적인 저장 업데이트 메커니즘)의 일례를 도시한다. 일례에서, PVRM은 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리, 멤리스터 메모리, 또는 임의의 다른 적절한 형태의 비-휘발성 수동 가변 저항 메모리 중 임의의 하나를 포함할 수 있다. 장치(100)는 예를 들어, 퍼스널 컴퓨터(예를 들어, 데스크탑 또는 랩탑 컴퓨터), 퍼스널 디지털 어시스턴트(personal digital assistant: PDA), 셀룰러 폰(cellular telephone), 태블릿(예를 들어, Apple(등록상표) iPad(등록상표)), 하나 이상의 네트워크 연결된 컴퓨팅 디바이스(예를 들어, 서버 컴퓨터 등, 여기서 각 개개 컴퓨팅 디바이스는 장치(100)의 하나 이상의 기능을 구현한다), 카메라, 또는 임의의 다른 적절한 전자 디바이스에 존재할 수 있다. 장치(100)는 프로세서(112)를 포함한다. 프로세서(112)는 하나 이상의 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 또는 저장 성분에 저장된 실행가능한 명령의 제어 하에 동작하는 이들의 조합을 포함할 수 있다. 일례에서, 프로세서(112)는 중앙 처리 유닛(CPU)이다.
PVRM은 전하가 아니라 저항의 형태로 상태를 저장하는 임의의 메모리 기술을 기술하는데 사용되는 광범위한 용어이다. 즉, PVRM 기술은 전기 전하를 사용하여 비트의 상태를 저장하는 전하 기반 메모리 기술과는 대조적으로 셀의 저항을 사용하여 비트의 상태를 저장한다. PVRM은 스위치로 작용하는 트랜지스터와 같은 임의의 능동 반도체 디바이스를 요구하지 않는다는 이유 때문에 수동이라고 지칭된다. 이들 유형의 메모리는 전력 손실 시 또는 전력 사이클 시에도 상태 정보를 보유하는 것으로 인해 "비휘발성"이라고 지칭된다. 수동 가변 저항 메모리는 또한 저항 비휘발성 랜덤 액세스 메모리(RNVRAM 또는 RRAM)로 알려져 있다.
PVRM의 예로는 강유전성(Ferroelectric) RAM(FeRAM), 자기저항 RAM(MRAM), 멤리스터(Memristor), 위상 변화 메모리(Phase Change Memory: PCM), 및 스핀 토크 전달 MRAM(STT-MRAM)을 포함하나 이들로 제한되지 않는다. 이들 기술 중 어느 것이라도 본 명세서에 개시된 장치(100)와 같은 장치에 사용하기에 적절할 수 있으나, PCM, 멤리스터, 및 STT-MRAM이 특히 안성 맞춤(nice fit)을 제공하는 것으로 고려되고 그리하여 아래에서 보다 상세히 설명된다.
위상 변화 메모리(PCM)는 상태를 저장하는데 위상 변화 물질, 일반적으로 칼코게나이드(chalcogenide)의 특성에 의존하는 PVRM 기술이다. 기록은 저장 디바이스에 전류를 주입하여, 위상 변화 물질을 열적으로 가열하는 것에 의하여 수행된다. 전류를 급격히 차단(abrupt shutoff)하면 이 물질은 비정질 상태로 동결(freeze)되어 높은 저항률(high resistivity)을 소유하는 반면, 전류를 느리고 점진적으로 감소시키면 이 물질에 결정이 형성된다. 결정 상태는 비정질 상태보다 저항이 더 낮고; 그리하여 1 또는 0의 값은 셀의 저항률에 대응한다. 전류를 감소시키는 기울기를 변경시키면 중간 상태를 생성할 수 있어서, 잠재적으로 멀티 레벨 셀을 가능하게 한다. PCM 저장 요소는 전극들 사이에 가열 저항기 및 칼코게나이드로 구성되는 반면, PCM 셀은 저장 요소와 액세스 트랜지스터로 구성된다.
멤리스터는 일반적으로 "제4 회로 요소"라고 지칭되는데, 그 다른 3개는 저항기, 커패시터 및 인덕터이다. 멤리스터는 본질적으로 2개의 단자들 사이에 전달되는 전하의 양에 따라 저항을 구비하는 2개 단자의 가변 저항기이다. 따라서, 멤리스터의 저항은 이를 통과하는 전류의 양에 따라 변하며, 그 저항은 전류 흐름이 중지될 때에도 유지된다. 멤리스터의 일례는 대응하는 미국 특허 출원 공개 번호 2008/0090337(발명의 명칭: "ELECTRICALLY ACTUATED SWITCH")에 개시되어 있고 이는 본 명세서에 참조 문헌으로 병합되어 있다.
스핀 토크 전달 자기저항 RAM(STT-MRAM)은 MRAM의 제2 세대 버전이고, 그 오리지널 버전은 ITRS(International Technology Roadmap for Semiconductors)사에 의해 "전형적인(prototypical)" 것으로 간주되었다. MRAM은 박막 절연 물질 층으로 2개의 강자성(ferromagnetic) 물질을 분리시키는 MTJ(magnetic tunnel junction)의 형태로 정보를 저장한다. 하나의 층이 상대 층의 방향을 따라 정렬하거나 이와 반대 방향으로 정렬하도록 스위칭할 때 저항 값이 변화하고 이는 접합 저항에 영향을 미친다. 오리지널 MRAM은 이 변화를 유도하기 위하여 적절한 자기장을 요구하였다. 이것은 곤란하고 비효율적이어서 비현실적으로 높은 기록 에너지를 초래하였다. STT-MRAM은 외부 자기장 없이 스핀 분극 전류(spin-polarized current)를 사용하여 극성을 역전시킨다. 따라서, STT 기술은 기록 에너지를 감소시키는 것과 함께 자기장을, 신뢰성있게 적절히 강화시켜 생성하는데 곤란한 측면을 제거한다. 그러나, PCM과 같이 STT-MRAM은 액세스 트랜지스터를 요구하여 그 셀 사이즈의 스케일링이 트랜지스터 스케일링에 의존한다.
어느 경우이든, 프로세서(112)는 온 다이 버스와 같은 적절한 통신 채널을 통해 프로세서 코어(126)에 동작가능하게 연결된 명령 캐시(122)를 포함한다. 명령 캐시(122)는 하나 이상의 비-무효화 저장 명령(114) 및/또는 FENCE 명령(124)과 같은, 프로세서(112)의 프로세서 코어(126)에 의해 실행될 수 있는 명령을 저장하도록 동작가능하다. 본 명세서에 설명된 실시예에 사용된 바와 같이 FENCE 명령은 예를 들어, 임의의 x86 FENCE 명령(예를 들어, MFENCE, SFENCE, LFENCE 등)을 포함할 수 있다. 일례에서, FENCE 명령은 라이트 쓰루 버퍼(106)와 같은 라이트 쓰루 버퍼가 빌(empty) 때까지 완료되지 않는 새로운 FENCE 명령(즉, x86 ISA에 포함되지 않는 전용 FENCE 명령)을 포함할 수 있다. 본 장치(100)는 또한 캐시 계층(102)을 포함한다.
캐시 계층(102)은 임의의 적절한 개수의 캐시 레벨을 포함할 수 있다. 예를 들어, 일 실시예에서, 캐시 계층(102)은 레벨 1 캐시만을 포함할 수 있다. 그러나, 캐시 계층(102)은 또한 수 개의 상이한 캐시 레벨(예를 들어, 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시)을 포함할 수 있는 것으로 이해된다. 캐시 계층(102)은 이 기술 분야에 알려진 바와 같이 하나 이상의 온 다이 또는 오프 다이(off-die) 버스와 같은 하나 이상의 적절한 통신 채널을 통해 프로세서(112)에 동작가능하게 연결된다. 캐시 계층(102)은 예를 들어, 휘발성/비휘발성 메모리 성분, 예를 들어 판독-전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EE-PROM(electrically erasable programmable read-only memory), PVRM 등의 임의의 조합을 포함할 수 있다. 예를 들어, 일 실시예에서, 캐시 계층(102)은 SRAM(static random access memory) 및/또는 DRAM(dynamic random access memory)을 포함할 수 있다. 캐시 계층(102)은 복수의 메모리 블록(104), 예를 들어, 메모리 블록(116)("블록 B"라고 명명됨) 및 업데이트된 메모리 블록(118)("블록 A"라고 명명됨)을 포함한다. 본 명세서에 설명된 실시예에 사용된 바와 같이 메모리 블록은 지속적인 저장 업데이트 메커니즘(즉, 장치(100)의 성분)이 전달하는 최소 인접한 바이트 그룹을 말한다. 현대 컴퓨팅 시스템에서, 메모리 블록은 일반적으로 64 내지 128 바이트이다.
본 장치(100)는 또한 라이트 쓰루 버퍼(106)를 포함한다. 라이트 쓰루 버퍼(106)는 이 기술 분야에 알려진 하나 이상의 적절한 통신 채널(예를 들어, 버스, 온 다이 인터페이스, 오프 다이 인터페이스 등)을 통해 캐시 계층(102) 및 프로세서(112)에 동작가능하게 연결된다. 라이트 쓰루 버퍼(116)는 예를 들어, 휘발성/비휘발성 메모리 성분, 예를 들어, ROM(read-only memory), RAM(random access memory), EE-PROM(electrically erasable programmable read-only memory), PVRM 등의 임의의 조합을 포함할 수 있다. 마지막으로, 본 장치(100)는 이중 데이터 레이트(DDR) 인터페이스와 같은 온 다이 인터페이스(120)를 통해 라이트 쓰루 버퍼(106)에 동작가능하게 연결된 PVRM(108)을 포함한다.
PVRM(108)은 데이터, 예를 들어, 파일, 지시/명령을 나타내는 데이터, 또는 임의의 다른 적절한 정보를 포함한다. PVRM(108)은 업데이트된 메모리 블록(118)과 같은 하나 이상의 메모리 블록을 저장하도록 동작가능하다.
일례에서, 장치(100)는 다음과 같이 동작한다. 프로세서(112)에서 실행되는 저장된 소프트웨어(예를 들어, 저장된 컴퓨터 프로그램)는 프로세서로 하여금 디커플드 라이트쓰루를 이용한 비-무효화 저장 명령(114)(NISIDW)을 발행할 수 있게 한다. NISIDW(114)는 프로세서(112)의 명령 캐시(122)로부터 프로세서의 코어(126)로 전달되고 여기서 NISIDW(114)는 디커플드 라이트 쓰루(132)를 가지는 기록 요청(130)으로 변환된다. 기록 요청(130)은 예를 들어, 업데이트될 데이터를 포함하는 메모리 내 어드레스를 식별하고, 메모리의 이 어드레스에 있는 데이터가 취하는 새로운 값을 식별할 수 있다. 디커플드 라이트 쓰루(132)를 가지는 기록 요청(130)은 캐시 계층(102)으로 발행된다. 다시, 캐시 계층(102)은 예를 들어, 레벨 1 캐시(예를 들어, 프로세서 다이 상에 SRAM, DRAM, PVRM 등)를 포함할 수 있다.
기록 요청(130)이 캐시 계층(102)에 도달(hit)하면(즉, 업데이트하고자 하는 특정 메모리 블록이 캐시 계층(102) 내에 존재하면), 적절한 메모리 블록이 원하는 값으로 업데이트된다. 예를 들어, 및 도 1을 계속 참조하면, 기록 요청(130)은 업데이트 "블록 A"를 업데이트하여 업데이트된 블록 A이 업데이트된 메모리 블록(118)을 구성할 수 있게 한다. 블록 A이 업데이트된 메모리 블록(118)을 도시하는 데 사용되었지만, 임의의 개수의 상이한 메모리 블록이 원하는대로 업데이트될 수 있는 것으로 이해된다. 그러나, NISIDW 이름이 암시하는 바와 같이, 캐시 계층(102)에 대한 기록 요청(130)은 업데이트된 메모리 블록을 무효화하지 않는다. 오히려, 업데이트된 메모리 블록(118)의 사본은 업데이트 후에 캐시 계층(102)에 유지된다. 이런 방식으로, 기록 요청(130)은 적절한 메모리 블록이 업데이트되자마자 프로세서(112)의 관점(perspective)으로부터 완료된다. 따라서, PVRM(108)에 대한 임의의 후속 라이트 쓰루(132)는 결합되어 다른 기록에 대해 정렬 없이 발행되게 하여 이들이 별개의 라이트 쓰루 버퍼(106)에 버퍼링될 수 있게 하며 이는 이하에서 보다 상세히 설명된다. 그리하여, 이들 라이트 쓰루(132)는 정렬 없이 발행될 수 없는 기존의 WT 메모리 라이트 쓰루와 동일한 대역폭의 부담을 야기하지 않는다.
계속하면, 캐시 계층(102)은 기록 동작이 성공적으로 완료된 것을 나타내는 확인 신호(acknowledgement signal)(136)를 프로세서(112)에 리턴할 수 있다. 확인 신호(136)를 수신하면, 프로세서 코어(126)는 명령 시퀀스로 그 다음 명령을 실행하도록 진행할 수 있다. 캐시 계층(102)이 신호(136)를 프로세서(112)로 리턴하는 것과 동일한 시간에 또는 경에, 캐시 계층(102)은 또한 디커플드 라이트 쓰루(132)를 라이트 쓰루 버퍼(106)에 발행할 수 있다. 디커플드 라이트 쓰루(132)는 기록 요청(130)과 실질적으로 동일한 데이터를 포함한다. 즉, 디커플드 라이트 쓰루(132)는 예를 들어, 업데이트될 데이터를 포함하는 메모리 내 어드레스를 식별하고, 메모리 내 이 어드레스에 있는 데이터가 취하는 새로운 값을 식별할 수 있다. 도 1에서, 이 개념은 업데이트된 메모리 블록(118)이 캐시 계층(102)으로부터 (및 캐시 계층(102)에 의하여) 라이트 쓰루 버퍼(106)로 복사된 것을 보여주는 것으로 도시되어 있다.
라이트 쓰루 버퍼(106)는 온 다이 인터페이스(120)가 PVRM 기록 요청(134)을 소비할 수 있을 때 업데이트된 메모리 블록(118) (즉, 업데이트된 메모리 블록(118)을 나타내는 전달 데이터)을 PVRM(108)에 기록할 수 있다. 다시 말해, 일례에서, 라이트 쓰루 버퍼(106)는 PVRM(108)에 저장하기 위해 지시된 복수의 메모리 블록을 나타내는 데이터를 포함할 수 있다. 이러한 상황에서, 라이트 쓰루 버퍼(106)는 버퍼(106)에 존재하는 다른 메모리 블록에 기록하는 것이 필요하기 때문에 특정 메모리 블록(예를 들어, 업데이트된 메모리 블록(118))에 대응하는 주어진 PVRM 기록 요청(134)을 바로 소비할 수 없을 수 있다. 라이트 쓰루 버퍼(106)는 이 기술 분야에 알려진 임의의 적절한 무효화 방식(scheme), 예를 들어, 예를 들어, 선입선출(first-in-first-out: FIFO) 무효화 방식 또는 비정렬(out-of-order) 무효화 방식을 원하는대로 구현할 수 있는 것으로 이해된다. 이런 방식으로, PVRM(108)에 저장된 데이터는 라이트 쓰루 버퍼(106)가 주어진 메모리 블록(예를 들어, 업데이트된 메모리 블록(118))에 기록한 후에 업데이트된 것을 특징으로 할 수 있다.
특히, 라이트 쓰루 버퍼(106)는 온 다이 인터페이스(120)를 통해 PVRM(108)에 동작가능하게 연결된다. 오프 다이 인터페이스와 대조적으로, 온 다이 인터페이스(120)는 전통적인 비휘발성 RAM에 비해 PVRM(108)의 상대적으로 빠른 액세스 시간을 최적화하기 위하여 본 발명에 사용된다. 온 다이 인터페이스는 예를 들어, DDR 인터페이스, DDR2 인터페이스, DDR3 인터페이스, 또는 이 기술 분야에 알려진 임의의 다른 적절한 온 다이 인터페이스를 포함할 수 있다. PVRM(108)의 높은 액세스 속도는 느린(예를 들어, 오프 다이) 인터페이스가 사용되는 경우에는 경감될 수 있다.
PVRM(108)를 업데이트하는 전술된 공정은 FENCE 명령(124)이 발행될 때까지 원하는 만큼 많은 업데이트를 계속할 수 있다. 이 기술 분야에 알려진 바와 같이, FENCE 명령(124)은 프로세서(예를 들어, 프로세서(112))로 하여금 FENCE 명령(124)의 전 및 후에 발행된 메모리 동작(예를 들어, 판독/기록)에 대한 정렬 제약을 시행하게 하는 명령 클래스이다. 다시 말해, FENCE 명령(124)은 FENCE 명령(124)에 앞서 발행된 메모리의 모든 저장소에 대한 직렬화 동작(serializing operation)(예를 들어, 기록 요청(130)/디커플드 라이트 쓰루(132))을 수행한다. 이 직렬화 동작은 프로그램 순서에서 FENCE 명령(124)에 후속하는 임의의 로딩/저장 명령을 전체적으로 볼 수 있기 전에 FENCE 명령(124)에 앞서는 모든 저장 명령을 전체적으로 볼 수 있는 것을 보장한다. 이런 방식으로, 소프트웨어(예를 들어, 파일 시스템을 구현하는 OS)는 저장의 상태를 결정하기 위하여 어떤 동작이 완전히 완료되었는지를 안다. 그리하여, 충돌이 발생하면, 소프트웨어는 주어진 동작이 성공하였는지 또는 리플레이될 필요가 있는지의 여부를 안다. 즉, 본 발명의 FENCE 명령(124)은 저장의 상태에 일관된 뷰를 유지하기 위하여 PVRM(108)에 업데이트의 가시성을 보장한다. 이런 방식으로, 장치(100)는 메모리 동작이 다수의 명령 스레드(thread)를 통해 재정렬될 때 발생하는 것으로 알려진, 동시 프로그램 및 디바이스 드라이버 내 예측할 수 없는 거동을 방지할 수 있다.
장치(100)에서, FENCE 명령(124)은 저장의 상태에 일관된 뷰를 유지하기 위하여 PVRM 업데이트의 가시성을 소프트웨어에 제공하기 위하여 하나의 명령 논리 그룹(예를 들어, 기록 요청(130))의 종료를 시그널링하기 위해 발행된다. 요구될 때(예를 들어, 명령 논리 그룹의 종료시), FENCE 명령(124)은 프로세서(112)에 의해 라이트 쓰루 버퍼(106)에 발행되어, 라이트 쓰루 버퍼(106)가 빌 때(즉, PVRM(108)에 메모리 블록 전부를 기록했을 때) 라이트 쓰루 버퍼(106)가 프로세서(112)에 통지할 것을 요청한다. 라이트 쓰루 버퍼(106)가 빌 때, 이는 통지 정보(128)를 프로세서(112)에 전송한다. 통지 정보(128)는 라이트 쓰루 버퍼(106)가 비어 있는 것을 프로세서(112)에 알리도록 동작가능하다. 이 공정은, 통지 정보(128)를 수신한 후에, 프로세서(112)에서 실행되는 소프트웨어가 프로세서로 하여금, 예를 들어, 파일 시스템 상태를 업데이트하게 하여 특정 메모리 블록(예를 들어, 업데이트된 메모리 블록(118))의 가장 최근의 버전이 PVRM(108)에 위치된 것을 다른 장치 성분(예를 들어, 프로세서(112) 외에 하나 이상의 다른 프로세서)에 알려줄 수 있게 하기 때문에 유리하다. 이런 방식으로, 프로세서(112) 및 각 추가적인 프로세서(미도시)는 프로세서(112)에 의해 적어도 하나의 FENCE 명령(124) 각각을 실행한 후에 PVRM(108)에 저장된 데이터에 전체 뷰(universal view)를 구비한다.
상기 설명은 기록 요청(130)이 캐시 계층(102)에 도달한 경우에 대해 중점을 둔 것으나, 일부 상황에서 기록 요청(130)은 캐시 계층(102)을 누락할 수도 있는 것으로 이해된다. 이러한 경우에, 캐시 계층(102)(예를 들어, 계층 내 레벨 1 캐시)은 기록 요청(130)이 업데이트를 하려고 하는 메모리 블록에 대응하는 배타적 판독 요청(read-exclusive request)을 발행할 수 있다. 배타적 판독 요청은 해당 블록을 포함하는 메모리의 일부(예를 들어, 다른 캐시 및/또는 PVRM(108) 그 자체)에 의해 응답되고, 캐시 계층(102)(예를 들어, 레벨 1 캐시)에 이 블록에 대한 배타적 허가(exclusive permission) 및 데이터를 부여한다. 일단 배타적 허가가 허여되면, 공정은 기록 요청(130)이 캐시 계층(102)에 처음 도달한 것처럼 진행한다.
이런 방식으로, 도 1에 도시된 장치(100)는 PVRM(108)의 데이터를 바이트 단위의 업데이트를 제공한다. 온 다이 인터페이스(120)의 포함과 함께 장치(100)의 아키텍처는 저장의 상태에 일관된 뷰를 유지하기 위하여 PVRM 업데이트의 가시성을 소프트웨어에 제공하면서 PVRM(108)과 연관된 바이트-어드레싱 가능한 특성과 빠른 액세스 시간을 레버리지한다.
도 4는 본 발명에 따라 PVRM의 데이터를 업데이트하는 방법의 일례를 도시한 흐름도이다. 도 4에 개시된 방법은 예를 들어, 도 1에 도시된 장치(100)에 의하여 수행될 수 있다. 단계(400)에서, 캐시 계층에서 복수의 메모리 블록 중 하나의 메모리 블록이 메모리 블록을 무효화함이 없이 업데이트된다. 일례에서, 상기 복수의 메모리 블록 중 상기 하나의 메모리 블록은 프로세서에 의해 실행되는 NISIDW에 기초하여 업데이트된다. 단계(402)에서, 업데이트된 메모리 블록은 캐시 계층으로부터 라이트 쓰루 버퍼로 복사된다. 단계(404)에서, 업데이트된 메모리 블록은 PVRM에 기록되고, 이에 의해 PVRM의 데이터를 업데이트한다.
도 5는 본 발명에 따라 PVRM의 데이터를 업데이트하는 방법의 다른 예를 도시한 흐름도이다. 도 5에 개시된 방법은 예를 들어, 도 1에 도시된 장치(100)에 의하여 수행될 수 있다. 단계(400) 내지 단계(404)는 도 4에 대해 전술된 바와 같이 수행된다. 단계(500)에서, 적어도 하나의 FENCE 명령이 프로세서에 의해 실행된다. 단계(502)에서, 프로세서에는 업데이트된 메모리 블록이 FENCE 명령에 기초하여 PVRM에 기록되었을 때 통지된다.
도 2는 본 발명에 따라 PVRM(108)의 데이터를 업데이트하는데 사용될 수 있는 장치(100)(즉, 새로운 지속적인 저장 업데이트 메커니즘)의 다른 예를 도시한다. 도 1에 대해 전술된 장치(100)의 성분은 PVRM(108)의 데이터에 바이트-어드레싱 가능한 업데이트를 달성하는데 필요한 성분을 나타낸다. 그러나, 도 2에 대한 이하 설명을 통해 명백하게 되는 바와 같이, 장치(100)는 대규모 데이터 파일을 업데이트하고, 및/또는 PVRM(108)의 데이터에 배치-업데이트(batch-update)를 가능하게 하는 성분을 더 포함할 수 있다. 다시 말해, 도 1에 도시된 성분 및 도 2에 도시된 성분은 정밀 입도(fine-grained)의 지속적인 저장 업데이트 메커니즘(예를 들어, 도 1 참조) 및 거친 입도(coarse-grained)의 지속적인 저장 업데이트 메커니즘(예를 들어, 도 2 참조)을 제공하기 위하여 동일한 장치(100)에 공존할 수 있다.
도 2에 도시된 장치(100)는 도 1에 대해 전술된 프로세서(112)와 같은 프로세서(112)를 포함한다. 프로세서(112)는 도 1에 대해 전술된 캐시 계층(102)과 같은 캐시 계층(102)에 동작가능하게 연결된다. 캐시 계층(102)은 개별 메모리 블록(116)(예를 들어, 블록 A, 블록 B 등)으로 구성된 복수의 메모리 블록(104)을 포함한다. 개별 메모리 블록(116) 중 임의의 것은 도 1에 대해 설명된 업데이트된 메모리 블록(118)과 같은 업데이트된 메모리 블록(118)일 수 있다. 다시 말해, 복수의 메모리 블록(104)의 임의의 것이나 모든 것은 예를 들어, 도 1에 도시된 기록 요청(130)과 같은 기록 요청(130)에 의해 이전에 업데이트된 것일 수 있다. 캐시 계층(102)은 전술된 온 다이 인터페이스(120)와 같은 온 다이 인터페이스(120)를 통해 PVRM 제어기(200)에 동작가능하게 연결된다.
PVRM 제어기(200)는 예를 들어 PVRM(108)으로 가거나 이로부터 오는 데이터의 흐름을 관리할 수 있는 디지털 회로, 또는 이 기술 분야에 알려진 임의의 다른 적절한 유형의 메모리 제어기를 포함할 수 있다. 일례에서, PVRM 제어기(200)는 프로세서(112)와 동일한 마이크로프로세서 다이 상에 집적될 수 있다. 어느 경우이든, PVRM 제어기(200)는 이 기술 분야에 알려진 바와 같이 직접 메모리 액세스(direct memory access: DMA) 엔진으로 동작할 수 있다. 이런 방식으로, PVRM 제어기(200)는 프로세서(112)로부터 값비싼 메모리 동작(예를 들어, 대규모 복사 또는 분산-수집 동작)을 오프로드(offload)하는데 사용될 수 있어서, 프로세서(112)는 다른 작업(task)을 수행하는데 이용할 수 있다. PVRM 제어기(200)는 버스와 같이 이 기술 분야에 알려진 적절한 통신 채널을 통해 PVRM(108)에 동작가능하게 연결된다. PVRM(108)은 전술된 성분들의 설명에 따라 동작한다.
도 2에 도시된 장치(100)는 다음과 같이 동작한다. 프로세서(112)는 제어 정보(202)를 PVRM 제어기(200)에 전송할 수 있다. 제어 정보(202)는 개별 메모리 블록(들)(116) 중 캐시 계층(102)으로부터 PVRM(108)으로 복사될 개별 메모리 블록(들)(116)을 식별한다. 이 제어 정보(202)를 수신한 것에 응답하여, PVRM 제어기(200)는 캐시 계층(102)으로부터 PVRM(108)으로 식별된 메모리 블록(들)(210)을 복사하여, 이에 의해 PVRM(108)의 데이터를 업데이트하도록 동작가능하다. 그러나, 일 실시예에서, PVRM 제어기(200)는 식별된 메모리 블록(들)(210)을 단순히 복사하지 않고 PVRM(108)에 식별된 메모리 블록(들)(210)을 무효화할 수 있는 것으로 이해된다.
그럼에도 불구하고, 일례에서, PVRM 제어기(200)는 복수의 메모리 블록(104) 중 PVRM(108)으로 복사/무효화될 개별 메모리 블록(116)을 나타내는 하나 이상의 캐시 프로브(208)를 캐시 계층(102)으로 전송하도록 동작가능하다. 이 예에서, 캐시 프로브(들)(208)를 수신한 것에 응답하여, 캐시 계층(102)은 식별된 메모리 블록(210)을 나타내는 데이터를 PVRM(108)에 전달하도록 동작가능하다. 예를 들어, 도 2를 계속 참조하면, PVRM(108)은 식별된 메모리 블록(210)을 포함하는 것으로 도시되어 있다. 이런 방식으로, 프로세서(112)는 다른 동작을 자유로이 수행할 수 있는 반면, PVRM 제어기(200)는 캐시 계층(102)으로부터 PVRM(108)으로 하나 이상의 개별 메모리 블록(116)을 복사/무효화하는 것을 관리한다.
일단 식별된 메모리 블록(210)이 PVRM(108)의 지속적인 저장으로 전달되면, 프로세서는 완료 통지 정보(204)를 획득할 수 있다. 완료 통지 정보(204)는 적어도 하나의 식별된 메모리 블록(210)이 캐시 계층(102)으로부터 PVRM(108)으로 복사/무효화되었다는 것을 프로세서(112)에 통지하도록 동작가능하다. 일례에서, 프로세서(112)는 PVRM 제어기(200)와 연관된 스테이터스 비트(206)를 폴링하는 것에 의해 완료 통지 정보(204)를 획득하도록 동작가능하다. 본 명세서에 설명된 실시예에 사용된 바와 같이 "폴링"은 스테이터스 비트(206)를 연속적으로 샘플링(예를 들어, 판독)하는 것, 스테이터스 비트(206)를 주기적으로 샘플링하는 것, 이벤트 등에 응답하여 스테이터스 비트를 샘플링하는 것을 포함할 수 있다. 폴링의 방법에 상관없이, 스테이터스 비트(206)는 예를 들어 적어도 하나의 식별된 메모리 블록(210)이 캐시 계층(102)으로부터 PVRM(108)으로 복사/무효화되었는지의 여부를 나타낼 수 있다. 다른 예에서, 프로세서(112)는, PVRM 제어기(200)로부터, 적어도 하나의 식별된 메모리 블록(210)이 캐시 계층(102)으로부터 PVRM(108)으로 복사/무효화되었다는 것을 나타내는 프로세서 인터럽트 신호를 수신하는 것에 의해 완료 통지 정보(204)를 획득할 수 있다. 이런 방식으로, 도 2에 도시된 장치(100)의 성분들은 프로세서(112)가 다른 동작을 수행하도록 자유롭게 함과 동시에 캐시 계층(102)으로부터 PVRM(108)의 장기간 저장으로 데이터의 대규모 전달을 가능하게 할 수 있다.
도 3은 본 발명에 따라 PVRM(108)의 데이터를 업데이트하는데 사용될 수 있는 또 다른 예시적인 장치(100)를 도시한다. 도 3은 본질적으로 도 2의 거친 입도의 업데이트 메커니즘을 도시하지만, 도 1에 대해 전술된 라이트 쓰루 버퍼(106)와 같은 라이트 쓰루 버퍼(106)를 포함한다. 도 3에 도시된 장치(100)의 예에서, 라이트 쓰루 버퍼(106)는 캐시 계층(102)으로부터 복사/무효화되었으나 아직 PVRM(108)에 도달하지 않은, 식별된 메모리 블록(210)을 일시적으로 저장하는 데 사용될 수 있다. 그리하여, 라이트 쓰루 버퍼(106)는 캐시 계층(102)으로부터 PVRM(108)으로 식별된 메모리 블록(210)의 흐름을 관리하는데 사용될 수 있다. 달리 언급하지 않으면, 라이트 쓰루 버퍼(106)는 식별된 메모리 블록(210)이 온 다이 인터페이스(120)가 소비할 수 있는 것보다 더 빨리 PVRM(108)으로 전달하도록 예정될 때 발생할 수 있는 병목 현상을 방지하는데 사용될 수 있다.
도 6은 본 발명에 따라 PVRM의 데이터를 업데이트하는 방법의 일례를 도시한 흐름도이다. 도 6에 개시된 방법은 예를 들어, 도 2 및/또는 도 3에 도시된 장치(100)에 의하여 수행될 수 있다. 단계(600)에서, 프로세서는 제어 정보를 PVRM 제어기로 전송한다. 제어 정보는 캐시 계층의 복수의 메모리 블록 중 캐시 계층으로부터 PVRM으로 복사될 적어도 하나의 메모리 블록을 식별한다. 단계(602)에서, 적어도 하나의 식별된 메모리 블록은 이 제어 정보에 응답하여 캐시 계층으로부터 PVRM으로 복사되어, PVRM의 데이터를 업데이트한다.
도 7은 본 발명에 따라 PVRM의 데이터를 업데이트하는 방법의 다른 예를 도시한 흐름도이다. 도 7에 개시된 방법은 예를 들어, 도 2 및/또는 도 3에 도시된 장치(100)에 의하여 수행될 수 있다. 단계(600) 내지 단계(602)는 전술된 단계의 설명에 따라 수행된다. 단계(700)에서, 프로세서는 완료 통지 정보를 획득한다. 완료 통지 정보는 적어도 하나의 식별된 메모리 블록이 캐시 계층으로부터 PVRM으로 복사되었다는 것을 프로세서에 통지하도록 동작가능하다.
일례에서, 각 PVRM 메모리 셀(예를 들어, 1 비트)은 임의의 적절한 설계의 멤리스터일 수 있다. 멤리스터는 2개의 금속 접점(예를 들어, 백금 와이어) 사이에 메모리 영역(예를 들어, TiO2 층)을 포함하므로, 멤리스터는 각 메모리 셀의 저항을 비파괴적으로 판독 출력하는 교류 전류를 사용하여 교차점 어레이 스타일(cross point array style)(즉, 교차된-와이어 쌍)로 액세스될 수 있다. 교차 바(crossbar)는 제1 세트와 교차하는 병렬 와이어의 제2 세트의 모든 부재(member)에 연결할 수 있는 메모리 영역의 어레이이다(통상 2개의 와이어 세트는 서로 수직이지만, 이것이 반드시 필수 조건은 아니다). 본 명세서에 개시된 멤리스터는 광범위한 물질 증착 및 처리 기술을 사용하여 제조될 수 있다. 일례는 문헌(미국 특허 출원 공개 번호 2008/0090337, 발명의 명칭: "electrically actuated switch")에 개시된다.
이 예에서, 제일 먼저, 하부 전극이 포토리소그래피(photolithography) 또는 전자빔 리소그래피(electron beam lithography)와 같은 종래의 기술을 사용하여, 또는 임프린트 리소그래피(imprint lithography)와 같은 보다 개선된 기술에 의하여 제조된다. 이것은 예를 들어, 교차된-와이어 쌍의 바텀 와이어(bottom wire)일 수 있다. 하부 전극의 물질은 금속 또는 반도체 물질, 바람직하게는, 백금일 수 있다.
이 예에서, 제조될 멤리스터의 그 다음 성분은 비공유 결합된(non-covalent) 인터페이스 층이고, 더 큰 기계적 강도가 요구되는 경우에는 더 높은 전압을 인가하고 더 느린 스위칭을 하는 대가로 생략될 수 있다. 이 경우에, 일부 삽입 물질층이 증착된다. 이것은 랭뮤어-블로드젯막(Langmuir-Blodgett: LB) 공정에 의하여 형성된 분자 모노층(molecular monolayer)이거나 또는 자가 조립된 모노층(self-assembled monolayer: SAM)일 수 있다. 일반적으로, 이 인터페이스 층은 하부 전극 및 메모리 영역의 제1 층에 반데르발스(van der Waals) 유형의 약한 결합만을 형성할 수 있다. 대안적으로, 이 인터페이스 층은 냉각된 기판 상에 증착된 아이스(ice) 박막층일 수 있다. 아이스를 형성하는 물질은 아르곤과 같은 불활성 가스이거나 또는 CO2와 같은 종(species)일 수 있다. 이 경우에, 이 아이스는, 하부 전극 및 제1 층 사이에 강한 화학적 결합을 방지하고 차후 처리 시퀀스에서 기판을 가열하여 아이스를 승화시키는 것에 의해 시스템으로부터 손실되는 희생층이다. 이 기술 분야에 통상의 지식을 가진 자라면 하부 전극 및 제1 층 사이에 약하게 결합된 인터페이스를 형성하는 다른 방식을 용이하게 생각할 수 있을 것이다.
다음으로, 제1 층을 위한 물질이 증착된다. 이것은 크누센 셀(Knudsen cell)로부터의 증발, 도가니(crucible)로부터의 전자빔 증발(electron beam evaporation), 타깃으로부터의 스퍼터링(sputtering), 또는 반응 프리커서(reactive precursor)로부터의 여러 형태의 화학적 증기 또는 빔 성장을 포함하는 매우 다양한 종래의 물리적 및 화학적 기술에 의하여 수행될 수 있다. 이 박막은 1 내지 30 나노미터(nm) 범위의 두께일 수 있고, 불순물 없이 성장될 수 있다. 제1 층의 두께에 따라, 이 박막은 이온 주입에 의하여 도핑을 하거나 제1 층으로부터 이온 배출에 의하여 언도핑(undope)하기 위해 물질 내에서 이온이 드리프트할 수 있는 속도를 증가시키기 위하여 이온 나노결정질, 나노다공성 또는 비정질일 수 있다. 증착 속도 및 기판 온도와 같은 적절한 성장 조건이 이 초기에 절연성이거나 또는 낮은 전도율의 제1 층에 요구되는 화학 조성물 및 국부 원자 구조를 달성하도록 선택될 수 있다.
그 다음 층은 전술된 기술 중 어느 하나에 의해 또한 증착될 수 있는 제1 층을 위한 불순물 소스 층 또는 제2 층이다. 이 물질은 제1 층을 위한 적절한 도핑 종을 제공하도록 선택된다. 이 제2 층은 제1 층과 화학적으로 양립가능(compatible)하도록 선택되고, 예를 들어, 2개의 물질은 제3 물질을 형성하도록 서로 화학적으로 및 비가역적으로 반응하여서는 안 된다. 제1 및 제2 층으로 사용될 수 있는 물질 쌍의 일례는 각각 TiO2 및 TiO2 -x이다. TiO2는 대략 3.2 eV의 밴드갭을 가지는 반도체이다. 이것은 또한 약한 이온 전도체이다. TiO2 박막은 터널 장벽을 생성하고, TiO2 -x는 TiO2를 도핑하여 전도성으로 만드는, 산소 결핍의 이상적인 소스를 형성한다.
마지막으로, 상부 전극은 하부 전극이 형성된 방식과 유사한 방식으로 제2 층의 상부에 제조된다. 이것은 예를 들어, 교차된-와이어 쌍의 상부 와이어일 수 있다. 하부 전극 물질은 금속 또는 반도체 물질, 바람직하게는, 백금일 수 있다. 메모리 셀이 교차점 어레이 스타일로 된 경우, 메모리 셀을 절연시키기 위하여 상부 와이어 밑에 있지 않는 증착된 메모리 영역 물질을 제거하는데 에칭 공정이 필요할 수 있다. 그러나, 임의의 다른 적절한 물질 증착 및 처리 기술이 수동 가변 저항 메모리용 멤리스터를 제조하는데 사용될 수 있는 것으로 이해된다.
다른 장점 중에서 특히, 개시된 방법 및 장치는 PVRM과 호환가능한 액세스 속도 및 새로운 디커플드 라이트 쓰루를 이용한 비-무효화 저장 명령(NISIDW)을 가지는 새로운 지속적인 저장 업데이트 메커니즘을 제공한다. 새로운 지속적인 저장 업데이트 메커니즘을 포함하는 컴퓨팅 시스템에서 NISIDW를 실행하면 지속적인 저장(예를 들어, PVRM)의 상태에 일관된 뷰를 유지하기 위하여 라이트백 완료의 가시성을 소프트웨어에 제공할 수 있다. 나아가, NISIDW는 업데이트된 메모리 블록을 무효화함이 없이 캐시 계층 및 PVRM을 업데이트할 수 있다. 다른 장점들은 이 기술 분야에 통상의 지식을 가진 자라면 인식할 수 있을 것이다.
또한, CD-ROM, RAM, 다른 형태의 ROM, 하드 드라이브, 분산 메모리 등을 포함하나 이들로 제한되지 않는 컴퓨터 판독가능한 메모리 상에 저장된 실행가능한 명령에 기초하여 집적 회로를 생성하는 집적 회로 설계 시스템(예를 들어, 워크스테이션)이 알려져 있다. 이 명령은 하드웨어 설명 언어 또는 임의의 다른 적절한 언어를 포함하나 이들로 제한되지 않는 임의의 적절한 언어로 표현될 수 있다. 그리하여, 본 명세서에 설명된 장치는 또한 이 시스템에 의해 집적 회로로 형성될 수 있다. 예를 들어, 집적 회로는 컴퓨터 판독가능한 매체에 저장된 명령을 사용하여 생성될 수 있는데, 상기 명령은, 실행될 때 집적 회로 설계 시스템으로 하여금, 프로세서에 의해, 적어도 하나의 디커플드 라이트 쓰루를 이용한 비-무효화 저장 명령(NISIDW)을 실행하는 동작; NISIDW에 기초하여 상기 메모리 블록을 무효화 함이 없이 캐시 계층에 있는 복수의 메모리 블록 중 하나의 메모리 블록을 업데이트 하는 동작; 업데이트된 메모리 블록을 캐시 계층으로부터 라이트 쓰루 버퍼로 복사하는 동작; 및 업데이트된 메모리 블록을 PVRM에 기록하여, PVRM의 데이터를 업데이트하는 동작을 수행하도록 동작가능한 집적 회로를 생성할 수 있게 한다. 본 명세서에 설명된 다른 동작을 수행하는 논리 회로를 구비하는 집적 회로도 또한 적절히 생성될 수 있다.
본 명세서에 설명된 상기 상세한 설명과 예들은 단지 예시와 설명의 목적을 위하여 비제한적인 방식으로 제시된 것이다. 그러므로, 본 발명은 전술된 기본 원리 및 청구범위의 사상과 범위 내에 있는 모든 변형, 변경 또는 균등물을 포함하는 것으로 의도된다.

Claims (28)

  1. 장치로서,
    복수의 메모리 블록을 포함하는 캐시 계층(cache hierarchy);
    상기 캐시 계층에 동작가능하게 연결된 라이트 쓰루 버퍼(write through buffer);
    상기 라이트 쓰루 버퍼에 동작가능하게 연결된 수동 가변 저항 메모리(passive variable resistive memory: PVRM); 및
    상기 캐시 계층에 동작가능하게 연결된 프로세서를 포함하되,
    상기 프로세서는 상기 메모리 블록을 무효화함이 없이 상기 캐시 계층에 있는 상기 복수의 메모리 블록 중 하나의 메모리 블록을 업데이트하도록 동작가능하고, 상기 캐시 계층은 상기 프로세서가 상기 메모리 블록을 업데이트하는 것에 응답하여 상기 업데이트된 메모리 블록을 상기 라이트 쓰루 버퍼에 복사하도록 동작가능하며, 상기 라이트 쓰루 버퍼는 상기 업데이트된 메모리 블록을 상기 PVRM에 기록하도록 동작가능한 것인 장치.
  2. 제1항에 있어서, 상기 PVRM은 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리 및 멤리스터(memristor) 메모리 중 적어도 하나를 포함하는 것인 장치.
  3. 제1항에 있어서, 상기 PVRM은 온 다이 인터페이스(on-die interface)를 통해 상기 라이트 쓰루 버퍼에 동작가능하게 연결되고, 상기 라이트 쓰루 버퍼는 상기 온 다이 인터페이스를 통해 상기 업데이트된 메모리 블록을 상기 PVRM에 기록하도록 동작가능한 것인 장치.
  4. 제3항에 있어서, 상기 온 다이 인터페이스는 이중 데이터 레이트 인터페이스(double data rate interface)를 포함하는 것인 장치.
  5. 제1항에 있어서, 상기 프로세서는 적어도 하나의 FENCE 명령을 실행하도록 더 동작가능하고, 적어도 하나의 각 FENCE 명령은 상기 라이트 쓰루 버퍼로 하여금 상기 업데이트된 메모리 블록을 상기 PVRM에 기록하였을 때 상기 프로세서에 통지하도록 하는 것인 장치.
  6. 제5항에 있어서, 적어도 하나의 추가적인 프로세서를 더 포함하되, 상기 프로세서 및 적어도 하나의 각 추가적인 프로세서는 상기 프로세서에 의하여 적어도 하나의 각 FENCE 명령을 실행한 후에 상기 PVRM의 데이터에 일관된 전체 뷰(consistent global view)를 구비하는 것인 장치.
  7. 제1항에 있어서, 상기 캐시 계층은 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시 중 적어도 하나를 포함하는 것인 장치.
  8. 제1항에 있어서, 상기 PVRM은 바이트-어드레싱 가능한 것인 장치.
  9. 수동 가변 저항 메모리(PVRM)에서 데이터를 업데이트하는 방법으로서, 상기 방법은,
    메모리 블록을 무효화함이 없이 캐시 계층에 있는 복수의 메모리 블록 중 하나의 메모리 블록을 업데이트하는 단계;
    상기 업데이트된 메모리 블록을 상기 캐시 계층으로부터 라이트 쓰루 버퍼로 복사하는 단계; 및
    상기 업데이트된 메모리 블록을 상기 PVRM에 기록하여, 상기 PVRM의 데이터를 업데이트하는 단계를 포함하는, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  10. 제10항에 있어서, 상기 PVRM은 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리 및 멤리스터 메모리 중 적어도 하나를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  11. 제9항에 있어서,
    프로세서에 의하여, 적어도 하나의 FENCE 명령을 실행하는 단계; 및
    상기 업데이트된 메모리 블록이 상기 FENCE 명령에 기초하여 상기 PVRM에 기록되었을 때 상기 프로세서에 통지하는 단계를 더 포함하는, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  12. 제9항에 있어서, 상기 캐시 계층은 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시 중 적어도 하나를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  13. 제9항에 있어서, 상기 PVRM은 바이트-어드레싱 가능한 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  14. 장치로서,
    복수의 메모리 블록을 포함하는 캐시 계층;
    수동 가변 저항 메모리(PVRM);
    상기 캐시 계층 및 상기 PVRM에 동작가능하게 연결된 PVRM 제어기; 및
    상기 PVRM 제어기에 동작가능하게 연결된 프로세서를 포함하되,
    상기 프로세서는 상기 복수의 메모리 블록 중 상기 캐시 계층으로부터 상기 PVRM으로 복사될 적어도 하나의 메모리 블록을 식별하는 제어 정보를 상기 PVRM 제어기에 전송하도록 동작가능하고, 상기 PVRM 제어기는 상기 제어 정보에 응답하여 상기 적어도 하나의 식별된 메모리 블록을 상기 캐시 계층으로부터 상기 PVRM으로 복사하도록 동작가능한 것인 장치.
  15. 제14항에 있어서, 상기 PVRM은 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리 및 멤리스터 메모리 중 적어도 하나를 포함하는 것인 장치.
  16. 제14항에 있어서, 상기 프로세서는 완료 통지 정보를 획득하도록 동작가능하고, 상기 완료 통지 정보는 상기 적어도 하나의 식별된 메모리 블록이 상기 캐시 계층으로부터 상기 PVRM으로 복사되었다는 것을 상기 프로세서에 통지하도록 동작가능한 것인 장치.
  17. 제16항에 있어서, 상기 프로세서는 상기 PVRM 제어기와 연관된 스테이터스 비트(status bit)를 폴링(polling)하는 것에 의해 상기 완료 통지 정보를 획득하도록 동작가능하고, 상기 스테이터스 비트는 상기 적어도 하나의 식별된 메모리 블록이 상기 캐시 계층으로부터 상기 PVRM으로 복사되었는지의 여부를 나타내는 것인 장치.
  18. 제16항에 있어서, 상기 프로세서는 상기 적어도 하나의 식별된 메모리 블록이 상기 캐시 계층으로부터 상기 PVRM으로 복사되었다는 것을 나타내는 프로세서 인터럽트 신호를 상기 PVRM 제어기로부터 수신하는 것에 의해 상기 완료 통지 정보를 획득하도록 동작가능한 것인 장치.
  19. 제14항에 있어서, 상기 PVRM은 온 다이 인터페이스를 통해 상기 캐시 계층에 동작가능하게 연결되고, 상기 PVRM 제어기는 상기 온 다이 인터페이스를 통해 상기 적어도 하나의 식별된 메모리 블록을 상기 캐시 계층으로부터 상기 PVRM으로 복사하도록 동작가능한 것인 장치.
  20. 제19항에 있어서, 상기 온 다이 인터페이스는 이중 데이터 레이트 인터페이스를 포함하는 것인 장치.
  21. 제14항에 있어서, 상기 캐시 계층은 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시 중 적어도 하나를 포함하는 것인 장치.
  22. 수동 가변 저항 메모리(PVRM)에서 데이터를 업데이트하는 방법으로서, 상기 방법은,
    프로세서에 의해, 캐시 계층에 있는 복수의 메모리 블록 중 상기 캐시 계층으로부터 상기 PVRM으로 복사될 적어도 하나의 메모리 블록을 식별하는 제어 정보를 PVRM 제어기에 전송하는 단계; 및
    상기 제어 정보에 응답하여 상기 적어도 하나의 식별된 메모리 블록을 상기 캐시 계층으로부터 PVRM의 지속적인 파일 시스템으로 복사하여, 상기 PVRM의 데이터를 업데이트하는 단계를 포함하는, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  23. 제22항에 있어서, 상기 PVRM은 위상 변화 메모리, 스핀 토크 전달 자기저항 메모리 및 멤리스터 메모리 중 적어도 하나를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  24. 제22항에 있어서,
    프로세서에 의하여, 상기 적어도 하나의 식별된 메모리 블록이 상기 캐시 계층으로부터 상기 PVRM으로 복사되었다는 것을 상기 프로세서에 통지하도록 동작가능한 완료 통지 정보를 획득하는 단계를 더 포함하는, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  25. 제24항에 있어서, 완료 통지 정보를 획득하는 단계는,
    상기 프로세서에 의하여, 상기 PVRM 제어기와 연관된 스테이터스 비트를 폴링하는 단계로서, 상기 스테이터스 비트는 상기 적어도 하나의 식별된 메모리 블록이 상기 캐시 계층으로부터 상기 PVRM으로 복사되었는지의 여부를 나타내는 것인, 상기 폴링하는 단계; 및
    상기 프로세서에 의하여, 상기 적어도 하나의 식별된 메모리 블록이 상기 캐시 계층으로부터 상기 PVRM으로 복사되었다는 것을 나타내는 프로세서 인터럽트 신호를 상기 PVRM 제어기로부터 수신하는 단계중 적어도 하나를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  26. 제20항에 있어서, 상기 적어도 하나의 식별된 메모리 블록을 상기 캐시 계층으로부터 상기 PVRM으로 복사하는 단계는 온 다이 인터페이스를 통해 적어도 하나의 식별된 메모리 블록을 상기 캐시 계층으로부터 상기 PVRM으로 복사하는 단계를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  27. 제26항에 있어서, 상기 온 다이 인터페이스는 이중 데이터 레이트 인터페이스를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
  28. 제22항에 있어서, 상기 캐시 계층은 레벨 1 캐시, 레벨 2 캐시 및 레벨 3 캐시 중 적어도 하나를 포함하는 것인, 수동 가변 저항 메모리(PVRM)에서의 데이터의 업데이트 방법.
KR1020137026017A 2011-04-04 2012-04-04 수동 가변 저항 메모리에서 데이터를 업데이트하는 방법 및 장치 KR20140013012A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/079,518 2011-04-04
US13/079,518 US20120254541A1 (en) 2011-04-04 2011-04-04 Methods and apparatus for updating data in passive variable resistive memory
PCT/US2012/032082 WO2012138700A2 (en) 2011-04-04 2012-04-04 Methods and apparatus for updating data in passive variable resistive memory

Publications (1)

Publication Number Publication Date
KR20140013012A true KR20140013012A (ko) 2014-02-04

Family

ID=46085130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137026017A KR20140013012A (ko) 2011-04-04 2012-04-04 수동 가변 저항 메모리에서 데이터를 업데이트하는 방법 및 장치

Country Status (6)

Country Link
US (1) US20120254541A1 (ko)
EP (1) EP2695068A2 (ko)
JP (1) JP2014512609A (ko)
KR (1) KR20140013012A (ko)
CN (1) CN103460198A (ko)
WO (1) WO2012138700A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255454B2 (en) 2002-09-06 2012-08-28 Oracle International Corporation Method and apparatus for a multiplexed active data window in a near real-time business intelligence system
US7899879B2 (en) * 2002-09-06 2011-03-01 Oracle International Corporation Method and apparatus for a report cache in a near real-time business intelligence system
US20120311228A1 (en) * 2011-06-03 2012-12-06 Advanced Micro Devices, Inc. Method and apparatus for performing memory wear-leveling using passive variable resistive memory write counters
US20140215158A1 (en) * 2013-01-31 2014-07-31 Hewlett-Packard Development Company, L.P. Executing Requests from Processing Elements with Stacked Memory Devices
IL225988A (en) * 2013-04-28 2017-12-31 Technion Res & Development Found Ltd Multi-process based management from Meristor
US9900384B2 (en) * 2013-07-12 2018-02-20 Adobe Systems Incorporated Distributed caching in a communication network
WO2016064375A1 (en) 2014-10-20 2016-04-28 Hewlett Packard Enterprise Development Lp Clamp circuit
EP3224729A1 (en) * 2014-11-25 2017-10-04 Lantiq Beteiligungs-GmbH & Co. KG Memory management device
US10318340B2 (en) * 2014-12-31 2019-06-11 Ati Technologies Ulc NVRAM-aware data processing system
KR102410692B1 (ko) 2015-03-30 2022-06-17 삼성전자주식회사 슬레이브와 데이터 통신을 할 수 있는 마스터와 상기 마스터를 포함하는 데이터 처리 시스템
US9640256B1 (en) * 2016-05-26 2017-05-02 Nxp Usa, Inc. Nonvolatile static random access memory (NVSRAM) system having a static random access memory (SRAM) array and a resistive memory array
US10346347B2 (en) * 2016-10-03 2019-07-09 The Regents Of The University Of Michigan Field-programmable crossbar array for reconfigurable computing
US10558440B2 (en) * 2017-02-02 2020-02-11 Cisco Technology, Inc. Tightly integrated accelerator functions
US10171084B2 (en) 2017-04-24 2019-01-01 The Regents Of The University Of Michigan Sparse coding with Memristor networks
US11132145B2 (en) * 2018-03-14 2021-09-28 Apple Inc. Techniques for reducing write amplification on solid state storage devices (SSDs)
US10943652B2 (en) 2018-05-22 2021-03-09 The Regents Of The University Of Michigan Memory processing unit
CN110543430B (zh) * 2018-05-28 2023-08-01 上海磁宇信息科技有限公司 一种使用mram的存储装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6636950B1 (en) * 1998-12-17 2003-10-21 Massachusetts Institute Of Technology Computer architecture for shared memory access
TW548547B (en) * 1999-06-18 2003-08-21 Ibm Method and system for maintaining cache coherency for write-through store operations in a multiprocessor system
US20050204091A1 (en) * 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
KR100843133B1 (ko) * 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
US7853754B1 (en) * 2006-09-29 2010-12-14 Tilera Corporation Caching in multicore and multiprocessor architectures
US8766224B2 (en) 2006-10-03 2014-07-01 Hewlett-Packard Development Company, L.P. Electrically actuated switch
US7808807B2 (en) * 2008-02-26 2010-10-05 Ovonyx, Inc. Method and apparatus for accessing a multi-mode programmable resistance memory
US8762652B2 (en) * 2008-04-30 2014-06-24 Freescale Semiconductor, Inc. Cache coherency protocol in a data processing system
US20100115181A1 (en) * 2008-11-04 2010-05-06 Sony Ericsson Mobile Communications Ab Memory device and method

Also Published As

Publication number Publication date
US20120254541A1 (en) 2012-10-04
EP2695068A2 (en) 2014-02-12
CN103460198A (zh) 2013-12-18
WO2012138700A3 (en) 2012-11-22
JP2014512609A (ja) 2014-05-22
WO2012138700A2 (en) 2012-10-11

Similar Documents

Publication Publication Date Title
KR20140013012A (ko) 수동 가변 저항 메모리에서 데이터를 업데이트하는 방법 및 장치
US10885991B2 (en) Data rewrite during refresh window
Boukhobza et al. Emerging NVM: A survey on architectural integration and research challenges
US8879301B2 (en) Method and apparatus for controlling state information retention in an apparatus
Qureshi et al. Phase change memory: From devices to systems
Mittal et al. A survey of architectural approaches for managing embedded DRAM and non-volatile on-chip caches
US8966181B2 (en) Memory hierarchy with non-volatile filter and victim caches
JP2022514341A (ja) メモリデバイスにおける信号展開キャッシングのページポリシー
US20120311228A1 (en) Method and apparatus for performing memory wear-leveling using passive variable resistive memory write counters
US8489801B2 (en) Non-volatile memory with hybrid index tag array
US11580029B2 (en) Memory system, computing system, and methods thereof for cache invalidation with dummy address space
US20120317356A1 (en) Systems and methods for sharing memory between a plurality of processors
US10884916B2 (en) Non-volatile file update media
CN111344682A (zh) 存储设备的初始化
US20130083048A1 (en) Integrated circuit with active memory and passive variable resistive memory with shared memory control logic and method of making same
KR20200004119A (ko) 메모리 시스템 및 그의 동작 방법
Zhao et al. Memory and storage system design with nonvolatile memory technologies
US10621094B2 (en) Coarse tag replacement
CN116897342A (zh) 存储器装置的偏压控制
US10372609B2 (en) Fast cache warm-up
US10146688B2 (en) Safe write-back cache replicating only dirty data
US20210405889A1 (en) Data rollback for tiered memory and storage
Matsui et al. 22% Higher performance, 2x SCM write endurance heterogeneous storage with dual storage class memory and NAND flash
Suzuki et al. Periodic data eviction algorithm of SCM/NAND flash hybrid SSD with SCM retention time constraint capabilities at extremely high temperature
US11853213B2 (en) Intelligent management of ferroelectric memory in a data storage device

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