KR101668054B1 - 제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들 - Google Patents

제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들 Download PDF

Info

Publication number
KR101668054B1
KR101668054B1 KR1020157024651A KR20157024651A KR101668054B1 KR 101668054 B1 KR101668054 B1 KR 101668054B1 KR 1020157024651 A KR1020157024651 A KR 1020157024651A KR 20157024651 A KR20157024651 A KR 20157024651A KR 101668054 B1 KR101668054 B1 KR 101668054B1
Authority
KR
South Korea
Prior art keywords
cache
line
data
leveling
wear
Prior art date
Application number
KR1020157024651A
Other languages
English (en)
Other versions
KR20150121046A (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 KR20150121046A publication Critical patent/KR20150121046A/ko
Application granted granted Critical
Publication of KR101668054B1 publication Critical patent/KR101668054B1/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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting 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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

제한된 기록 내구성을 갖는 메모리들에 대한 이용 가능한 수명을 연장하기 위한 효율적인 기법들이 설명된다. 캐시들의 마모-레벨링을 위한 기법은, 과하게 기록된 캐시 라인들이 캐시 내의 다른 라인들보다 훨씬 더 빨리 고장나게 하는 캐시 라인들 상의 언밸런싱된 기록 트래픽을 다룬다. 카운터는 캐시 어레이에 대한 각각의 기록 동작에 대해 증분된다. 카운터가 임계치를 충족하게 한 현재의 기록 동작에 의해 영향을 받는 라인은, 영향받은 라인에 데이터를 기록하기 보단, 캐시로부터 축출(evict)된다. 임계치의 동적인 조정은 동작 프로그램에 의존하여 이루어질 수 있다. 현재 교체 정책 포인터에 대한 업데이트들은 임계치를 충족하는 카운터로 인해 중지된다.

Description

제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들{METHODS AND APPARATUS FOR INTRA-SET WEAR-LEVELING FOR MEMORIES WITH LIMITED WRITE ENDURANCE}
[0001] 본 개시는 일반적으로 프로세싱 시스템들의 양상들에 관한 것으로서, 특히, 제한된 기록 내구성(write endurance)을 갖는 메모리들의 이용 가능한 수명을 연장하기 위한 방법들 및 장치에 관한 것이다.
[0002] 다수의 휴대용 제품들, 예컨대, 셀 전화들, 랩톱 컴퓨터들, 개인용 데이터 보조기기들(PDA들) 등은 통신 및 멀티미디어 프로그램들 등과 같은 프로그램들을 실행하는 프로세싱 시스템을 활용한다. 이러한 제품들에 대한 프로세싱 시스템은, 예를 들어, 단일 칩 상에서 구성되는 다수의 프로세서들, 명령들 및 데이터를 저장하기 위한 다중-레벨의 캐시들 및 메모리들을 포함하는 복합 메모리 시스템들, 제어기들, 통신 인터페이스들과 같은 주변 디바이스들, 및 고정 함수 로직 블록들을 포함할 수 있다. 동시에, 휴대용 제품들은, 프로세싱 시스템에 의한 고성능 동작들을 지원하도록 종종 요구되는 배터리들의 형태의 제한된 에너지 소스 및 기능성이 증가함에 따라 점점 더 큰 메모리 용량들을 갖는다. 배터리 수명을 개선하기 위해, 이들 동작들을 가능한 효율적으로 수행하는 것이 바람직하다. 그러나 예를 들어, SRAM(static random access memory) 및 eDRAM(embedded dynamic random access memory)와 같은 공통 메모리 플랫폼들의 스케일링은 누설 전력 및 셀 밀도에 의해 점점 더 제한된다. 이러한 문제들은 감소된 전체 에너지 소비로 동작하기 위해 효율적인 설계들을 갖도록 또한 개발되는 개인용 컴퓨터 제품들로 연장된다.
[0003] 플래시 메모리, MRAM(magnetorestive random access memory), PCM(phase change memory), ReRAM(resistive RAM) 등과 같은 다수의 메모리 기술들은 메모리 셀들이 마모되기 시작하여 고장나기 이전에, 수행될 수 있는 디바이스들에 대한 기록 동작들의 수에 관한 다양한 제한들을 갖는다. 캐시들과 같이 공간적 및 시간적 국부성의 원리들에 기초하여 그리고 높은 데이터 레이트로 동작하는 메모리들은 프로그램마다 캐시 라인 액세스들에서 폭넓은 변동성을 보여주며, 기록 액세스들의 매우 높은 레이트를 경험하는 셀들을 가질 수 있다. 예를 들어, 데이터의 복수의 세트들(각각의 세트는 복수의 선택 가능한 캐시 웨이(cache way)들로 분할되고, 세트 내의 각각의 웨이는 캐시 라인을 보유함)을 갖는 세트 연관 캐시들은 실행되는 프로그램에 의존하여 각각의 세트 내에서 상이한 기록 액세스 패턴들을 경험한다. 또한, 세트 내의 라인마다 기록 액세스 변동성은 매우 클 수 있고, 시스템 동작들 동안 동적으로 변동될 수 있다.
[0004] 예를 들어, 8-웨이 세트 연관 64 kbyte 캐시는 세트 당 8개의 32-바이트 캐시 라인들의 256개의 세트들을 갖는 것으로 해석되고 각각의 웨이 마다 하나의 캐시 라인에 액세스할 수 있다. 이러한 캐시는 셀 전화, 태블릿, 랩톱 등과 같은 휴대용 디바이스에서 레벨 1 데이터 캐시에 이용될 수 있다. 프로그램 X에 대한 8 웨이 세트 연관 캐시에서, 웨이 2의 데이터의 라인에 대한 기록 액세스는, 웨이 7과 같은 상이한 캐시 웨이의 데이터 라인에 대한 기록 액세스보다 다자리수(multiple orders of magnitude)만큼 더 자주 발생할 수 있다. 따라서, 웨이 2에 대한 캐시 내부의 메모리의 라인은 웨이 7의 메모리 라인보다, 그리고 웨이 2의 기록 액세스 레이트보다 더 낮은 기록 액세스 레이트를 갖는 캐시 내의 대부분의 다른 라인들보다 훨씬 더 먼저 고장날 수 있다. 메모리 마모 내구성은, 각각의 레벨 및 각각의 디바이스에서 비록 상이한 정도긴 하지만, 레벨 1, 2, 및 3 캐시들, 플래시 메모리, 및 시스템 메모리와 같은 메모리 계층의 각각의 레벨에 영향을 미친다. GHz(gigahertz) 주파수에서 실행되는 프로세서들에 있어서, 캐시들은 캐시의 특정한 라인에 대한 것일 수 있는 매우 다수의 기록 액세스들을 경험하고, 이에 따라 이러한 액세스들의 국부성은 시스템으로 하여금 캐시 메모리의 기록 제한들에 너무 빠르게 접근하게 할 수 있다. 임의의 캐시 라인이 실행되는 프로그램에 의존하여 높은 기록 동작들을 경험할 수 있고, 이러한 캐시 라인 핫스팟(cache line hotspot)은 미리 알려지지 않기 때문에, 캐시 세트 내의 어느 캐시 라인이 영향을 받고 마모를 감소시키기 위해 리로케이팅(relocate)되어야 하는지를 결정하기 위해 각각의 모든(every) 캐시 라인을 모니터링하기 위한 비용은 터무니없이 비쌀 수 있다.
[0005] 그의 몇 개의 양상들 중에서, 본 개시는 인트라-세트 마모-레벨링을 위한 보다 효율적인 방법들 및 장치들을 제공하는 것이 제한된 기록 내구성을 갖는 메모리들의 이용 가능한 수명을 연장한다는 것을 인지한다. 이러한 목적을 위해, 본 발명의 실시예는 캐시의 마모-레벨링(wear-leveling)을 위한 방법을 다룬다. 카운터는 캐시에 대한 각각의 기록 동작에 대해 증분된다. 카운터가 임계치를 충족하게 한 현재의 기록 동작에 의해 영향을 받는 라인이 캐시로부터 축출(evict)된다. 현재 기록 동작에 의해 영향을 받은 라인에 대한 현재 기록이 임계치를 충족하는 카운터로 인해 중지된다.
[0006] 다른 실시예는 캐시를 마모-레벨링하기 위한 장치를 다룬다. 복수의 웨이들을 갖는 캐시가 캐시에 데이터를 기록하기 위한 기록 동작들을 제어하는 프로세서 콤플렉스(processor complex)에 커플링된다. 기록 임계치 회로 및 카운터 회로는 캐시에 대한 기록 동작들을 카운트하고 기록 임계치 회로에서의 비교에 기초하여 카운터 회로가 임계치에 도달하였을 때 표시를 생성하도록 구성된다. 라인 플러시 회로(line flush circuit)는 표시에 응답하여 현재 기록 동작에 의해 영향을 받는 라인을 캐시로부터 축출하도록 구성된다. 교체 정책 회로는 표시에 응답하여 현재 라인 교체 정책 포인터를 변경하기 위한 업데이트들을 중지하도록 구성된다.
[0007] 다른 실시예는 컴퓨터 판독 가능한 프로그램 데이터 및 코드가 인코딩되어 있는 컴퓨터 판독 가능한 비-일시적인 매체를 다룬다. 카운터는 캐시에 대한 각각의 기록 동작에 대해 증분된다. 카운터가 임계치를 충족하게 하는 현재의 기록 동작에 의해 영향을 받는 라인이 캐시로부터 축출된다. 현재 기록 동작에 의해 영향을 받은 라인에 대한 현재 기록이 임계치를 충족하는 카운터로 인해 중지된다.
[0008] 추가의 실시예는 캐시를 마모-레벨링하기 위한 장치를 다룬다. 프로세서 콤플렉스에 커플링되는 복수의 웨이들을 갖는 캐시에 데이터를 기록하기 위한 수단이 활용된다. 캐시에 대한 기록 동작들을 카운트하고 카운터가 임계치에 도달하였을 때 표시를 생성하기 위한 수단이 활용된다. 표시에 응답하여 현재 기록 동작에 의해 영향받은 라인을 캐시로부터 축출하기 위한 수단이 활용된다. 표시에 응답하여 현재 라인 교체 정책 포인터를 변경하기 위한 업데이트들을 중지하기 위한 수단이 활용된다.
[0009] 본 발명의 다른 실시예들은, 본 발명의 다양한 실시예들이 예로서 도시되고 설명되는 하기의 상세한 설명으로부터 당업자들에게 쉽게 자명하게 될 것이라고 이해된다. 실현될 바와 같이, 본 발명은 다른 그리고 상이한 실시예들이 가능하며, 그 몇 개의 세부사항들은 다양한 다른 양상들에서의 변형이 가능하며, 모두가 본 발명의 사상 및 범위로부터 벗어나지 않는다. 이에 따라, 도면들 및 상세한 설명은 제약으로서가 아니라 본질적으로 예시하는 것으로서 간주된다.
[0010] 본 발명의 다양한 양상들은 첨부 도면들에서 제한으로서가 아닌 예로서 예시된다.
[0011] 도 1은 본 발명의 실시예가 유리하게 이용될 수 있는 예시적인 캐시 시스템을 예시한다.
[0012] 도 2는 마모-레벨링에 대한 유리한 프로세스를 예시한다.
[0013] 도 3은 휴대용 디바이스 메모리 시스템에서 마모 내구성을 연장하도록 구성되는 프로세서 콤플렉스를 갖는 휴대용 디바이스의 특정한 실시예를 예시한다.
[0014] 첨부된 도면들과 관련하여 아래에 제시되는 상세한 설명은 본 발명의 다양한 예시적인 실시예들의 설명으로서 의도되며 본 발명이 실시될 수 있는 유일한 실시예들만을 표현하도록 의도되는 것은 아니다. 상세한 설명은 본 발명의 완전한 이해를 제공하기 위한 특정한 세부사항들을 포함한다. 그러나 본 발명은 이들 특정한 세부사항들 없이 실시될 수 있다는 것이 당업자들에게 자명할 것이다. 몇몇 인스턴스들에서, 잘 알려진 구조들 및 컴포넌트들은 본 발명의 개념들을 모호하게 하지 않도록 블록도 형태로 도시된다.
[0015] 도 1은 본 발명의 실시예가 유리하게 이용될 수 있는 예시적인 메모리 시스템(100)을 예시한다. 메모리 시스템(100)은 캐시(102), 예를 들어, 데이터 캐시, 다음 레벨 캐시(103), 시스템 메모리(105) 및 프로세서 콤플렉스(106)를 포함한다. 시스템 메모리(105)는 캐시(102)에서 또는 다음 레벨 캐시(103)에서 발견되지 않는 명령들 및 데이터에 대한 액세스를 제공한다. 캐시(102) 및 다음 레벨 캐시(103)는 프로세서 콤플렉스(106)에 통합될 수 있다는 것에 주의한다. 시스템 메모리(105)는 프로세서 콤플렉스(106)에 또한 통합되거나, 또는 프로세서 콤플렉스(106)에 별개로 커플링된다. 프로세서 콤플렉스(106)는 듀얼 또는 쿼드 프로세서 시스템과 같이 하나 또는 그 초과의 프로세서들을 포함할 수 있다. 레벨 1 데이터 캐시를 나타내는 캐시(102)는 N-웨이 세트 연관 캐시로서 예시되며, 이 경우에, 다음 레벨 캐시(103)는 레벨 2(L2) 캐시일 것이다. 본 명세서에서 설명되는 마모-레벨링(wear-leveling) 기법들은 메모리 계층의 각각의 레벨에서 이용되는 메모리의 타입에 의존하여 L2 캐시 및 레벨 3(L3) 캐시에 또한 응용 가능하다는 것에 주의한다. 시스템 메모리(105)는 일반적으로 캐시들에서 경험되는 것과는 상이한 마모-레벨링의 형태를 경험한다. 캐시(102)는 캐시(102)에서 마모-레벨링을 구현하기 위해 캐시 기록 카운터(110), 기록 임계치 회로(111), 및 어드레스 태그 선택기 회로(114), 라인 플러시 회로(115), 및 교체 정책 회로(116)를 갖는 캐시 제어 회로(108)를 포함한다. 각각의 캐시(102)는 또한 웨이 1(1181), 웨이 2(1182), ..., 웨이 N(118N)를 포함한다. 각각의 웨이는 웨이 1(1181)의 태그(122) 및 라인(123)을 포함하는 세트 i(120)와 같은 세트들을 갖도록 구성되며, 각각의 웨이(1182, ...,118N)는 유사하게 구성된다.
[0016] 캐시들의 마모-레벨링을 위한 기법은 과하게(heavily) 기록된 캐시 라인들이 캐시 내의 다른 라인들보다 훨씬 빨리 고장하게 하는, 캐시 라인들 상의 언밸런싱 기록 트래픽을 해결한다. 제한된 기록 내구성을 갖는 시스템 메모리(105)와 같은 벌크 메모리의 메모리의 블록들에 대한 기록 트래픽은 또한 언밸런싱되고 과하게 기록된 메모리 블록들로 하여금 벌크 메모리의 다른 메모리 블록들보다 더 금방 고장나게 할 수 있다는 것에 또한 주의한다. 제한된 기록 내구성을 갖는 캐시들에서 마모-레벨링의 이러한 문제를 해결하기 위해, 캐시에 대한 기록 동작들을 카운트하고, 기록 임계치가 도달될 때 표시를 생성하기 위한 수단이 제공된다. 예를 들어, 캐시 기록 카운터(110)는 캐시 제어 회로(108)의 제어 하에서 각각의 모든 캐시 기록 동작에 대한 카운트를 증분하도록 구성된다. 라인-플러시 임계치(FT)로서 또한 지칭되는 기록 카운트 임계치에 도달하거나 초과시에, 현재 기록 동작 중인 캐시 라인은 예를 들어, 라인 플러시 회로(115)에 의해 제공되는 것과 같이, 캐시로부터 라인을 플러시(flush)하기 위한 수단에 의해 축출된다. 일반적으로, 라인은, LRU(least recently used) 라인인 것으로 표시되고 이에 따라 재기록에 이용 가능할 때 캐시로부터 플러시된다. FT에 도달하는 경우에, 이 현재 기록 동작에 대한 캐시 라인 교체 동작에 대한 업데이트를 중지하기 위한 수단이 제공된다. 캐시 기록 카운터(110)는 이어서 다음 캐시 기록 모니터링 기간에 대비하여 카운터를 초기화하도록 리셋된다. 축출된 캐시 라인은 다음 레벨 캐시로 기록되고, 그 캐시 라인이 재차 액세스될 때마다, 그것이 축출된 라인과 상이한 캐시 라인을 표시하는 교체 정책에 기초하여 캐시 내의 라인 내로 그것이 재로딩된다.
[0017] 특히, 캐시 라인이 더 낮은 레벨 캐시로부터 축출될 때, 그 캐시 라인은 무효(invalid)로 마킹되며, 이는 무효(invalid) 라인이 새로운 콘텐츠로 충전될 수 있다고 표시한다. 캐시 라인은 캐시 라인과 연관된 태그에서 유효 비트를 무효 상태로 세팅함으로써 무효로 마킹될 수 있다. 표준 동작들에서 축출되는 캐시 라인은 재기록에 이용 가능하게 되도록 LRU(least recently used) 정책과 같은 교체 정책에 의해 일반적으로 식별된다. 무효화 이후, 동일한 캐시 라인 상의 후속 미스(miss) 시에 자주 이용된 캐시 라인이 재기록되게 하는 것이 자주 이용되는 캐시 라인에 대해 가능하다. 축출된 캐시 라인들에 대한 이러한 재기록 문제들을 방지하기 위해 캐시 기록 카운터가 카운트 임계치에 도달하거나 이를 초과할 때, 현재 라인 교체 정책 포인터에 대한 업데이트가 차단되고, 포인터는 업데이트되지 않는다. 교체 정책 포인터가 업데이트되지 않기 때문에, 현재 LRU 포인터는 예를 들어, 축출된 것과 상이한 라인을 포인팅한다. 따라서, 축출된 캐시 라인은, 그 라인이 실제로 최소 최근 사용(least recently used)이 될 때까지 빈 채로 유지된다.
[0018] 예를 들어, 도 1에서, 기록 동작을 위해 구성된 캐시(102)에 있어서, 프로세서 콤플렉스(106)는 어드레스(130)를 캐시(102)에 발행한다. 기록 동작에 응답하여, 어드레스 태그(131)가 생성되고, 웨이 1(1181)의 태그(122)와 같은 각각의 웨이의 태그들에 대하여 태그 비교 회로(124)에서 비교된다. 태그 비교가 매칭하는 경우, 태그 비교 회로(124)는 캐시 라인 선택 회로(125)로 하여금, 예컨대, 웨이 1(1181)의 라인(123)과 연관된, 웨이에 대한 경로를 선택하게 하고, 데이터(132)가 선택된 라인(123)에 기록된다. 라인(123) 내의 데이터가 수정되었다고 표시하는 더티 비트(dirty bit)가 태그(122)에 또한 기록될 수 있다. 각각의 기록 동작에 대해, 캐시 기록 카운터(110)가 증분된다. 기록 동작이 결정될 수 있고, 데이터가 캐시의 특정한 웨이 및 라인에 대해 기록될 때 생성되는 캐시 제어 회로(108) 내부의 기록 신호에 의해 캐시 기록 카운터가 증분된다. 대안적으로, 캐시 제어 회로(108)는 지시된 동작이 기록 동작 또는 판독 동작을 야기할지를 표시하는 비트 또는 내부 신호 상태를 세팅하도록 내부 지시 디코딩 동작을 이용할 수 있다.
[0019] 캐시 기록 카운터(110)로부터의 카운트 값은 기록 임계치 회로(111)의 FT와 같은 미리 설정된 임계치에 비교된다. 임계치에 도달하거나 이를 초과 시에, 라인 플러시 회로(115)에 통지되고, 현재 기록 동작에 대한 캐시 라인은, 선택된 라인에 데이터를 기록하기 보다는 플러시된다. 웨이 1(1181)의 라인(123)과 같은 축출된 라인은, 캐시(102)가 레벨 1 데이터 캐시인 경우 L2 캐시와 같은 다음 레벨 캐시(103)에 기록된다. 대안적인 실시예에서, 축출된 라인은, 캐시(102)가 L2 캐시이고 프로세서 콤플렉스(106)는 레벨 1 데이터 캐시를 포함하는 경우, L3 캐시에 기록된다. 교체 정책 회로(116)에 또한 통지되고, LRU(least recently used)와 같은 교체 정책은 업데이트되지 않는다. 축출된 캐시 라인(123)이 캐시(102)에 재기록되는 추후의 시간에, 캐시 제어 회로(108)는, 축출된 캐시 라인(123)이 다른 웨이들(웨이 2(1182) 내지 웨이 N(118N)) 중 하나의 라인과 같이 세트 i(120)의 상이한 위치에 기록된다는 것을 보장한다.
[0020] 프로그래밍 캐시 라인을 자주 기록하면 할수록, 캐시 기록 카운터가 미리 설정된 임계값에 도달하거나 이를 초과함으로써 포화될 때 그 캐시 라인이 선택될 가능성이 높다. 동작 기간에 걸쳐서, 이러한 마모-레벨링 기법은 확률론적이고, 핫스팟 캐시 라인들을 축출하고, 이들 라인들을 상이한 캐시 위치들로 재로케이팅하여 캐시 어레이에 걸쳐서 상당한 정도의 마모-레벨링을 제공한다. 따라서, 캐시 기록 액세스들의 글로벌 카운터를 이용함으로써, 상당한 정도의 마모-레벨링이 각각의 캐시 라인의 값비싼 모니터링을 요구함 없이 낮은 비용으로 달성된다. 또한, 기록 카운트 임계치를 세팅 가능하게 되도록 허용함으로써, 동작 프로그램에 의존하여 임계치의 동적인 조정이 이루어질 수 있다. 더 작은 기록 카운트 임계치는 라인 무효화를 더 자주 초래하여, 이에 따라 임계치는 특정한 프로그램 또는 프로그램들의 세트에 대해 적응 가능한, 더욱 밸런싱된 세트 내 기록 분포(more balanced intra-set write distribution)를 제공하도록 동적으로 튜닝될 수 있다. 예를 들어, 이전의 동작 프로그램에 비해 캐시에서 증가된 수의 핫스팟들을 갖는 새로운 프로그램이 실행될 때, 그 캐시에 대한 기록 카운터 임계치는, 핫스팟들로의 기록 동작들을 감소시킬 가능성을 개선하고, 그에 따라 그 캐시의 마모 내구성을 개선하도록 감소된다.
[0021] 대안적인 실시예에서, 축출된 캐시 라인을 무효로 마킹하고, 축출된 라인으로 인해 교체 정책에 대한 업데이트를 차단하기 보단, 이 캐시 라인이 확률론적 무효화된 라인이며, 축출된 라인의 재사용이 지연되어야 한다고 표시하는 부가적인 비트가 각각의 캐시 라인의 태그에 부가될 수 있다. LRU와 같은 교체 정책은 선택된 LRU 라인이 이 비트 세트를 갖는 경우 축출을 위해 다른 라인을 선택할 것이다. 확률론적 무효화된 비트 라인은 예를 들어, 그 캐시 세트에 대한 미리 결정된 수의 성공적인 캐시 라인 기록 동작들 이후에 리셋되거나, 또는 타이머의 제어 하에서 미리 결정된 시간 기간 이후에 리셋될 수 있다.
[0022] 자립형 캐시 칩 또는 고정된-통합 모듈로서 캐시 유닛(102)은 기록 임계치 회로(111)에 임계값을 로딩하도록 제어들(134)을 수신할 수 있다. 제어들(134)은 프로세서 콤플렉스(106) 상에서 동작하는 프로그램에 의해 결정된 시간에 또는 초기화 시에 임계값을 로딩하는데 이용되는 직렬 입력 경로를 포함할 수 있다. 임계 값은 초기에 칩 또는 고정된-통합된 모듈 상에 하드코딩된 디폴트 임계값일 수 있다. 그 후, 기록 임계치 회로(111)에 로딩된 것과 같은 디폴트 임계값은 동작되는 프로그램에 따라 조정될 수 있다. 대안적인 실시예에서, 모니터들, 예컨대, 성능 하락 모니터 또는 마모 유효성 모니터는 프로세서 콤플렉스(106) 상에서 동작하는 프로그램에 코딩된 소프트웨어에서 또는 캐시(102) 외부의 하드웨어에서 구현된다. 내부 캐시 제어 회로(108)는 이어서 기록 임계치 회로(111)의 임계치 값이 증가되거나, 감소되거나, 또는 이전의 세트와 동일하게 머무르도록 허용되어야 한다고 표시하는, 하나 또는 그 초과의 이러한 모니터들로부터의 신호를 수신한다.
[0023] 도 2는 마모-레벨링을 위한 유리한 프로세스(200)를 예시한다. 블록(202)에서, 캐시 동작들은 기록 동작을 위해 모니터링된다. 판단 블록(204)에서, 캐시 기록이 검출되었는지에 관한 결정이 내려진다. 캐시 기록 동작은 예를 들어, 도 1의 캐시 제어 회로(108)에서 결정될 수 있다. 어떠한 캐시 기록 동작도 식별되지 않는 경우, 프로세스(200)는 블록(202)으로 리턴한다. 캐시 기록 동작이 식별되는 경우, 프로세스(200)는 블록(206)으로 진행된다. 블록(206)에서, 캐시 기록 카운터가 증분된다. 블록(208)에서, 캐시 기록 카운터의 카운트 값이 미리 설정된 임계치(FT)와 동일한지 또는 대안적인 실시예에서 미리 설정된 임계치(FT)를 초과했는지에 관한 결정이 내려진다. 카운트 값이 미리 설정된 임계치(FT)와 동일하지 않거나 이를 초과하지 않는다고 결정되는 경우, 프로세스(200)는 블록(202)으로 리턴한다. 카운트 값이 미리 설정된 임계치(FT)와 동일하거나 이를 초과한 경우, 프로세스(200)는 블록(210)으로 진행된다. 블록(210)에서, 캐시 기록 카운터가 리셋되고, 모니터링되는 캐시에 기록되었을 라인은 다음 레벨 캐시에 대신 기록되고, 모니터링되는 캐시의 라인은 무효화되고, 교체 정책 업데이트가 이 기록에 대해 차단된다. 프로세스(200)는 블록(202)으로 리턴한다.
[0024] 도 3은 디바이스(300)의 메모리 시스템에서 제한된 마모 내구성을 갖는 메모리들의 이용 가능한 수명을 연장하도록 구성되는 캐시 제어기 회로(328)를 갖는 디바이스(300)의 특정한 실시예를 예시한다. 디바이스(300)는 무선 전자 휴대용 디바이스일 수 있고, 소프트웨어 명령들(318)을 갖는 시스템 메모리(312)에 커플링되는 프로세서 콤플렉스(310)를 포함한다. 시스템 메모리(312)는 도 1의 시스템 메모리(105)를 포함할 수 있다. 프로세서 콤플렉스(310)는 프로세서(311), 레벨 1 데이터 캐시(L1 D캐시)(322), 레벨 1 명령 캐시(L1 I캐시)(324) 및 캐시 제어기 회로(328)를 갖는 통합된 메모리 서브시스템(314)을 포함할 수 있다. 프로세서 콤플렉스(310)는 도 1의 프로세서 콤플렉스(106)를 포함할 수 있다. 통합된 메모리 서브시스템(314)은 또한 레벨 2(L2) 단일화된 캐시(326)를 포함할 수 있다. L1 D캐시(322)는 도 1의 캐시(102)를 포함하고, L2 단일화된 캐시(326)는 도 1의 다음 레벨 캐시(103)를 포함할 수 있으며, 이들 각각은 제한된 마모 내구성을 가질 수 있다.
[0025] 통합된 메모리 서브시스템(314)은 프로세서 콤플렉스(310)에 포함될 수 있거나, 또는 프로세서 콤플렉스(310) 외부의 하나 또는 그 초과의 별개의 디바이스들 또는 회로(도시되지 않음)로서 구현될 수 있다. 예시적인 예에서, 프로세서 콤플렉스(310)는 소프트웨어 명령들(318)에 따라 그리고 도 1 및 도 2와 연관되거나 거기서 예시되는 실시예들 중 임의의 것에 따라 동작한다. 예를 들어, 도 3에서 도시된 바와 같이, L1 I캐시(326), L1 D캐시(322) 및 캐시 제어기 회로(328)는 프로세서 콤플렉스(310) 내에서 액세스 가능하고, 프로세서(311)는 통합된 메모리 서브시스템(314)의 메모리들에 또는 시스템 메모리(312)에 저장된 데이터 또는 프로그램 명령들에 액세스하도록 구성된다.
[0026] 카메라 인터페이스(334)는 프로세서 콤플렉스(310)에 커플링되고 비디오 카메라(336)와 같은 카메라에 또한 커플링된다. 디스플레이 제어기(340)는 프로세서 콤플렉스(310)에 그리고 디스플레이 디바이스(342)에 커플링된다. 코더/디코더(CODEC)(344)는 또한 프로세서 콤플렉스(310)에 커플링될 수 있다. 스피커(346) 및 마이크로폰(348)은 CODEC(344)에 커플링될 수 있다. 무선 인터페이스(350)는 프로세서 콤플렉스(310)에 그리고 무선 안테나(352)에 커플링될 수 있어서, 안테나(352) 및 무선 인터페이스(350)를 통해 수신된 무선 데이터가 듀얼 프로세서(311)에 제공될 수 있게 된다.
[0027] 프로세서(311)는 시스템 메모리(312)로부터 액세스되고 프로세서(311)와 같은 컴퓨터가 도 2의 프로세스(200)와 같은 프로그램을 실행하게 하도록 실행 가능한 비-일시적인 컴퓨터-판독 가능한 매체에 저장된 소프트웨어 명령들(318)을 실행하게 구성될 수 있다. 소프트웨어 명령들(318)은 추가로, 프로세서(311)가 통합된 메모리 서브시스템(314) 및 시스템 메모리(312)의 메모리들에 판독 및 기록 액세스하는 명령들을 프로세싱하게 하도록 실행 가능할 수 있다.
[0028] 특정한 실시예에서, 프로세서 콤플렉스(310), 디스플레이 제어기(340), 시스템 메모리(312), CODEC(344), 무선 인터페이스(350), 및 카메라 인터페이스(334)는 시스템-인-패키지 또는 시스템-온-칩 디바이스(304)에 포함된다. 특정한 실시예에서, 입력 디바이스(356) 및 전원(358)은 시스템-온-칩 디바이스(304)에 커플링된다. 또한, 특정한 실시예에서, 도 3에서 예시된 바와 같이, 디스플레이 디바이스(342), 입력 디바이스(356), 스피커(346), 마이크로폰(348), 무선 안테나(352), 비디오 카메라(336), 및 전원(358)은 시스템-온-칩 디바이스(304) 외부에 있다. 그러나 디스플레이 디바이스(342), 입력 디바이스(356), 스피커(346), 마이크로폰(348), 무선 안테나(352), 비디오 카메라(336), 및 전원(358) 각각은 연관된 인터페이스 또는 제어기와 같은 시스템-온-칩 디바이스(304)의 컴포넌트에 커플링될 수 있다.
[0029] 본 명세서에서 설명된 실시예들에 따른 디바이스(300)는, 셋 톱 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 개인용 디지털 보조기기(PDA), 고정 위치 데이터 유닛, 이동 위치 데이터 유닛, 이동 전화, 셀룰러 전화, 컴퓨터, 휴대용 컴퓨터, 태블릿들, 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 음악 재생기, 디지털 음악 재생기, 휴대용 음악 재생기, 비디오 재생기, 디지털 비디오 재생기, 디지털 비디오 디스크(DVD) 재생기, 휴대용 디지털 비디오 재생기, 데이터 또는 컴퓨터 명령들을 저장 또는 리트리브(retrieve)하는 임의의 다른 디바이스 또는 이들의 임의의 결합과 같은 다양한 전자 디바이스들에 통합될 수 있다.
[0030] 본 명세서에서 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 엘리먼트들, 또는 컴포넌트들은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array), 또는 다른 프로그래밍 가능 로직 컴포넌트들, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합을 이용하여 구현되거나 수행될 수 있다. 프로세서(311)는 범용 프로세서일 수 있거나, 또는 대안으로, 프로세서(311)는 종래의 프로세서, 디지털 신호 프로세서, 마이크로제어기 또는 상태 머신의 결합일 수 있다. 프로세서(311)는 컴퓨팅 컴포넌트들의 결합, 예를 들어, DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어에 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 원하는 애플리케이션에 적절한 임의의 다른 이러한 구성으로서 또한 구현될 수 있다.
[0031] 본 명세서에서 개시된 실시예들과 관련하여 설명된 방법들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들 둘의 결합으로 실현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 제거 가능 디스크, CD-ROM, 또는 당 분야에서 알려진 임의의 다른 형태의 비-일시적인 저장 매체에 상주할 수 있다. 비-일시적인 저장 매체는 프로세서에 커플링될 수 있어서, 프로세서는 비-일시적인 저장 매체에 정보를 기록하고 이로부터 정보를 판독할 수 있게 된다. 대안에서, 비-일시적인 저장 매체는 프로세서에 통합될 수 있다.
[0032] 도 1의 프로세서 콤플렉스(106) 또는 도 3의 프로세서(311)는, 예를 들어, 예컨대, 명령 캐시를 통해 이용 가능하게 될 수 있는 프로세서(311)와 국부적으로 직접 연관되거나 또는 입력 디바이스(356)를 통해 또는 무선 인터페이스(350)를 통해 액세스 가능한 컴퓨터 판독 가능한 비-일시적인 저장 매체 상에 저장된 마모-레벨링 프로그램으로부터 선택된 명령들을 포함하는 명령들을 실행하도록 구성될 수 있다. 입력 디바이스(356) 또는 무선 인터페이스(350)는 또한 L1 I캐시(324), L1 D캐시(322), L2 캐시(326)와 같이 프로세서와 국부적으로 직접 연관되거나 다른 프로세서의 메모리로부터 액세스 가능한, 메모리 디바이스에 상주하는 데이터에 액세스할 수 있다. 컴퓨터 판독 가능한 비-일시적인 저장 매체는 RAM(random access memory), DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), 플래시 메모리, ROM(read only memory), PROM(programmable read only memory), EPROM(erasable programmable read only memory), EEPROM(electrically erasable programmable read only memory), CD(compact disk), DVD(digital video disk), 다른 타입의 제거 가능한 디스크들, 또는 임의의 다른 적합한 비-일시적인 저장 매체를 포함할 수 있다.
[0033] 본 발명이 프로세서 시스템에서 이용하기 위한 예시적인 실시예들의 맥락에서 개시되었지만, 위의 논의 및 아래에서 이어지는 청구항들에 부합하는 매우 다양한 구현들이 당업자들에 의해 이용될 수 있다는 것이 인지될 것이다. 예를 들어, 고정 기능 구현은 또한 본 발명의 다양한 실시예들을 활용할 수 있다.

Claims (20)

  1. 캐시의 마모-레벨링(wear-leveling)을 위한 방법으로서,
    상기 캐시에서의 각각의 기록 동작에 대해 글로벌 카운터(global counter)를 증분시키는 단계;
    상기 글로벌 카운터로 하여금 임계치를 충족하게 한 캐시 라인에 대한 현재 기록 동작에 대응하는 데이터의 라인을 상기 캐시로부터 축출(evict)하는 단계; 및
    상기 글로벌 카운터가 상기 임계치를 충족하는 것에 응답하여, 다음 레벨 캐시에 상기 데이터의 라인을 기록하고, 상기 글로벌 카운터를 리셋(reset)하고, 그리고 축출된 캐시 라인이 최소 최근 사용(least recently used) 캐시 라인이 될 때까지 상기 축출된 캐시 라인을 빈(empty) 채로 유지하는 단계를 포함하는,
    캐시의 마모-레벨링을 위한 방법.
  2. 제 1 항에 있어서,
    상기 임계치는, 카운트 값이 상기 임계치와 매칭할 때 표시(indication)를 제공하는 상기 글로벌 카운터의 카운트 값 출력에 비교되는 프로그램 세팅 가능한 값인,
    캐시의 마모-레벨링을 위한 방법.
  3. 제 1 항에 있어서,
    상기 데이터의 라인은 다음 액세스될 때, 상기 데이터의 라인이 이전에 축출되었던 캐시 라인과 상이한, 상기 캐시의 캐시 라인에 기록되는,
    캐시의 마모-레벨링을 위한 방법.
  4. 제 1 항에 있어서,
    상기 데이터의 라인은 상기 캐시에서 어드레싱된 웨이(way)들의 세트의 웨이로부터 선택되고, 그리고 상기 데이터의 라인은 다음 액세스될 때, 상기 어드레싱된 웨이들의 세트 내의, 상기 데이터의 라인이 축출되었던 캐시 라인과 상이한 캐시 라인에 기록되는,
    캐시의 마모-레벨링을 위한 방법.
  5. 제 1 항에 있어서,
    후속(succeeding) 캐시 기록 모니터링 기간에 대비하여 상기 글로벌 카운터를 초기화하도록 상기 글로벌 카운터를 리셋(reset)하는 단계
    를 더 포함하는,
    캐시의 마모-레벨링을 위한 방법.
  6. 제 1 항에 있어서,
    상기 캐시는 레벨 1 캐시이고, 그리고 상기 다음 레벨 캐시는 레벨 2 캐시인,
    캐시의 마모-레벨링을 위한 방법.
  7. 제 1 항에 있어서,
    상기 캐시는 레벨 2 캐시이고, 그리고 상기 다음 레벨 캐시는 레벨 3 캐시인,
    캐시의 마모-레벨링을 위한 방법.
  8. 제 1 항에 있어서,
    상기 글로벌 카운터로 하여금 상기 임계치를 충족하게 한 현재 기록 동작에 의해 영향을 받는 데이터의 라인을 무효(invalid)로 마킹(mark)하는 단계
    를 더 포함하고,
    무효 마크는 상기 데이터의 라인이 상기 캐시로부터 축출되게 하는,
    캐시의 마모-레벨링을 위한 방법.
  9. 캐시를 마모-레벨링하기 위한 장치로서,
    캐시에 데이터를 기록하기 위한 기록 동작들을 제어하는 프로세서 콤플렉스(processor complex)에 커플링되는 복수의 웨이들을 갖는 상기 캐시;
    상기 캐시에 대한 각각의 기록 동작을 카운트하고, 그리고 글로벌 카운터 회로의 글로벌 카운터 출력과 임계값의 비교에 기초하여 상기 글로벌 카운터 회로가 임계치에 도달하였을 때 표시를 생성하도록 구성된 기록 임계치 회로 및 글로벌 카운터 회로;
    상기 표시에 응답하여 캐시 라인에 대한 현재 기록 동작에 대응하는 데이터의 라인을 상기 캐시로부터 축출하고, 그리고 다음 레벨 캐시에 상기 데이터의 라인을 기록하도록 구성되는 라인 플러시 회로(line flush circuit); 및
    상기 표시에 응답하여, 축출된 캐시 라인이 최소 최근 사용 캐시 라인이 될 때까지 상기 축출된 캐시 라인을 빈 채로 유지하도록 구성된 교체 정책 회로
    를 포함하는,
    캐시를 마모-레벨링하기 위한 장치.
  10. 제 9 항에 있어서,
    상기 임계값은, 글로벌 카운트 값이 상기 임계치와 매칭할 때 표시를 제공하는 상기 글로벌 카운터 회로의 글로벌 카운트 값 출력에 비교되는 프로그램 세팅 가능한 값인,
    캐시를 마모-레벨링하기 위한 장치.
  11. 제 10 항에 있어서,
    상기 임계값은, 상기 기록 임계치 회로에 저장되고 그리고 동작중인 프로그램에 따라 조정되는 디폴트(default) 값인,
    캐시를 마모-레벨링하기 위한 장치.
  12. 제 10 항에 있어서,
    상기 데이터의 라인은 다음 액세스될 때, 상기 데이터의 라인이 이전에 축출되었던 캐시 라인과 상이한 캐시 라인에 기록되는,
    캐시를 마모-레벨링하기 위한 장치.
  13. 제 10 항에 있어서,
    상기 데이터의 라인은 상기 캐시에서 어드레싱된 웨이들의 세트의 웨이로부터 선택되고, 그리고 상기 데이터의 라인은 다음 액세스될 때, 상기 데이터의 라인이 축출되었던 캐시 라인과 상이한, 상기 어드레싱된 웨이들의 세트 내의 캐시 라인에 기록되는,
    캐시를 마모-레벨링하기 위한 장치.
  14. 제 10 항에 있어서,
    상기 글로벌 카운터 회로는, 후속 캐시 기록 모니터링 기간에 대비하여 상기 글로벌 카운터 회로를 초기화하도록 리셋되는,
    캐시를 마모-레벨링하기 위한 장치.
  15. 제 10 항에 있어서,
    상기 캐시로서 구성되는 레벨 1 캐시; 및
    상기 다음 레벨 캐시로서 구성되는 레벨 2 캐시
    를 더 포함하고,
    상기 데이터의 라인은 상기 레벨 2 캐시에 기록되는,
    캐시를 마모-레벨링하기 위한 장치.
  16. 제 10 항에 있어서,
    상기 캐시로서 구성되는 레벨 2 캐시; 및
    상기 다음 레벨 캐시로서 구성되는 레벨 3 캐시
    를 더 포함하고,
    상기 데이터의 라인은 상기 레벨 3 캐시에 기록되는,
    캐시를 마모-레벨링하기 위한 장치.
  17. 제 10 항에 있어서,
    상기 데이터의 라인이 확률론적(probabilistic) 무효화된 데이터의 라인이고 그리고 상기 데이터의 라인의 재사용은 지연되어야 한다는 표시에 응답하여 표시하도록, 무효화된 라인 비트가 각각의 캐시 라인의 태그에 포함되는,
    캐시를 마모-레벨링하기 위한 장치.
  18. 컴퓨터 판독 가능한 프로그램 데이터 및 코드가 인코딩되어 있는 컴퓨터 판독 가능한 저장 매체로서,
    상기 프로그램 데이터 및 코드는, 실행될 때,
    캐시에 대한 각각의 기록 동작에 대해 글로벌 카운터를 증분시키고;
    상기 글로벌 카운터로 하여금 임계치를 충족하게 한 캐시 라인에 대한 현재 기록 동작에 대응하는 데이터의 라인을 상기 캐시로부터 축출하고; 그리고
    상기 글로벌 카운터가 상기 임계치를 충족하는 것에 응답하여, 다음 레벨 캐시에 상기 데이터의 라인을 기록하고, 상기 글로벌 카운터를 리셋하고, 그리고 축출된 캐시 라인이 최소 최근 사용 캐시 라인이 될 때까지 상기 축출된 캐시 라인을 빈 채로 유지하도록
    동작 가능한,
    컴퓨터 판독 가능한 저장 매체.
  19. 캐시를 마모-레벨링하기 위한 장치로서,
    프로세서 콤플렉스에 커플링되는 복수의 웨이들을 갖는 캐시에 데이터를 기록하기 위한 수단;
    상기 캐시에 대한 각각의 기록 동작을 카운트하고, 그리고 글로벌 카운터가 임계값에 도달하였을 때 표시를 생성하기 위한 수단;
    상기 표시에 응답하여 현재 기록 동작에 대응하는 데이터의 라인을 상기 캐시로부터 축출하고, 그리고 다음 레벨 캐시에 상기 데이터의 라인을 기록하기 위한 수단; 및
    상기 표시에 응답하여, 축출된 캐시 라인이 최소 최근 사용 캐시 라인이 될 때까지 상기 축출된 캐시 라인을 빈 채로 유지하기 위한 수단
    을 포함하는,
    캐시를 마모-레벨링하기 위한 장치.
  20. 삭제
KR1020157024651A 2013-02-19 2014-02-18 제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들 KR101668054B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/769,965 US9292451B2 (en) 2013-02-19 2013-02-19 Methods and apparatus for intra-set wear-leveling for memories with limited write endurance
US13/769,965 2013-02-19
PCT/US2014/016993 WO2014130483A1 (en) 2013-02-19 2014-02-18 Methods and apparatus for intra-set wear-leveling for memories with limited write endurance

Publications (2)

Publication Number Publication Date
KR20150121046A KR20150121046A (ko) 2015-10-28
KR101668054B1 true KR101668054B1 (ko) 2016-10-20

Family

ID=50277311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157024651A KR101668054B1 (ko) 2013-02-19 2014-02-18 제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들

Country Status (6)

Country Link
US (1) US9292451B2 (ko)
EP (1) EP2959391B1 (ko)
JP (1) JP6046277B2 (ko)
KR (1) KR101668054B1 (ko)
CN (1) CN104981785B (ko)
WO (1) WO2014130483A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150010717A (ko) * 2012-04-27 2015-01-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 메모리 디바이스의 보호
US9348743B2 (en) 2013-02-21 2016-05-24 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance
US9176856B2 (en) * 2013-07-08 2015-11-03 Arm Limited Data store and method of allocating data to the data store
US10331537B2 (en) * 2016-12-23 2019-06-25 Advanced Micro Devices, Inc. Waterfall counters and an application to architectural vulnerability factor estimation
JP2018160060A (ja) 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリシステム
US11074018B2 (en) * 2017-04-06 2021-07-27 International Business Machines Corporation Network asset management
US10592451B2 (en) 2017-04-26 2020-03-17 International Business Machines Corporation Memory access optimization for an I/O adapter in a processor complex
US10572286B2 (en) 2017-04-26 2020-02-25 International Business Machines Corporation Memory access optimization in a processor complex

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080114930A1 (en) 2006-11-13 2008-05-15 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with cache having volatile and nonvolatile memory
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

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1294489A (en) 1970-05-12 1972-10-25 Solartron Electronic Group Linearizing circuit
US3772595A (en) 1971-03-19 1973-11-13 Teradyne Inc Method and apparatus for testing a digital logic fet by monitoring currents the device develops in response to input signals
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US7046174B1 (en) 2003-06-03 2006-05-16 Altera Corporation Byte alignment for serial data receiver
US8112574B2 (en) 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US7237067B2 (en) * 2004-04-22 2007-06-26 Hewlett-Packard Development Company, L.P. Managing a multi-way associative cache
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
JP4470186B2 (ja) 2006-12-12 2010-06-02 エルピーダメモリ株式会社 半導体記憶装置
US20100115175A9 (en) 2006-12-18 2010-05-06 Zhiqing Zhuang Method of managing a large array of non-volatile memories
US8543742B2 (en) 2007-02-22 2013-09-24 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
FR2913785B1 (fr) 2007-03-13 2009-06-12 St Microelectronics Sa Gestion de memoire tampon circulaire
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8095724B2 (en) 2008-02-05 2012-01-10 Skymedi Corporation Method of wear leveling for non-volatile memory and apparatus using via shifting windows
US20100185816A1 (en) 2009-01-21 2010-07-22 Sauber William F Multiple Cache Line Size
US8255613B2 (en) 2009-04-30 2012-08-28 International Business Machines Corporation Wear-leveling and bad block management of limited lifetime memory devices
JP2012013733A (ja) 2010-06-29 2012-01-19 Renesas Electronics Corp 表示装置の駆動回路
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
JP2014530422A (ja) * 2011-10-27 2014-11-17 ▲ホア▼▲ウェイ▼技術有限公司 バッファマッピングを制御するための方法およびバッファシステム
WO2012163027A1 (zh) * 2011-10-27 2012-12-06 华为技术有限公司 控制缓存映射的方法及缓存系统
US9665233B2 (en) * 2012-02-16 2017-05-30 The University Utah Research Foundation Visualization of software memory usage
US9348743B2 (en) 2013-02-21 2016-05-24 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080114930A1 (en) 2006-11-13 2008-05-15 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with cache having volatile and nonvolatile memory
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

Also Published As

Publication number Publication date
US9292451B2 (en) 2016-03-22
JP6046277B2 (ja) 2016-12-14
WO2014130483A1 (en) 2014-08-28
CN104981785B (zh) 2018-01-23
CN104981785A (zh) 2015-10-14
US20140237191A1 (en) 2014-08-21
KR20150121046A (ko) 2015-10-28
JP2016510475A (ja) 2016-04-07
EP2959391A1 (en) 2015-12-30
EP2959391B1 (en) 2017-05-17

Similar Documents

Publication Publication Date Title
KR101668054B1 (ko) 제한된 기록 내구성을 갖는 메모리들에 대한 인트라-세트 마모-레벨링을 위한 방법들 및 장치들
US11200176B2 (en) Dynamic partial power down of memory-side cache in a 2-level memory hierarchy
KR101826073B1 (ko) 메모리 관리를 위한 캐시 동작들
KR101761044B1 (ko) 메모리 채널 셧다운에 의한 전력 절약
US9286205B2 (en) Apparatus and method for phase change memory drift management
EP2761464B1 (en) Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
US8024513B2 (en) Method and system for implementing dynamic refresh protocols for DRAM based cache
US10185619B2 (en) Handling of error prone cache line slots of memory side cache of multi-level system memory
US10120806B2 (en) Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US20170177482A1 (en) Computing system having multi-level system memory capable of operating in a single level system memory mode
US9990293B2 (en) Energy-efficient dynamic dram cache sizing via selective refresh of a cache in a dram
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
US20180095884A1 (en) Mass storage cache in non volatile level of multi-level system memory
US20190163628A1 (en) Multi-level system memory with a battery backed up portion of a non volatile memory level
US20180188797A1 (en) Link power management scheme based on link's prior history

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 4