KR20150115752A - 적응성 입도 로우 버퍼 캐시 - Google Patents

적응성 입도 로우 버퍼 캐시 Download PDF

Info

Publication number
KR20150115752A
KR20150115752A KR1020157020664A KR20157020664A KR20150115752A KR 20150115752 A KR20150115752 A KR 20150115752A KR 1020157020664 A KR1020157020664 A KR 1020157020664A KR 20157020664 A KR20157020664 A KR 20157020664A KR 20150115752 A KR20150115752 A KR 20150115752A
Authority
KR
South Korea
Prior art keywords
cache
memory
dram
row
data
Prior art date
Application number
KR1020157020664A
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 KR20150115752A publication Critical patent/KR20150115752A/ko

Links

Images

Classifications

    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • 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/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

하나의 예에 따르면, 적응성 입도 로우 버퍼(AG-RB) 캐싱을 위한 방법은 데이터를 RB 캐시로 캐싱할지를 결정하고, 프로세서 또는 메모리 측 로직에 의해, 동적 랜덤 액세스 메모리(DRAM) 액세스들과 같은 상이한 메모리 액세스들을 위해 RB 캐시에 캐싱할 데이터의 양을 조정하는 것을 포함한다. 다른 예에 따르면, AG-RB 캐시 장치는 하나 이상의 DRAM 뱅크들을 포함하는 복수의 DRAM 다이들 및 RB 캐시를 포함하는 로직 다이를 포함하는 3D 스택형 DRAM을 포함할 수 있다. AG-RB 캐시 장치는 데이터를 RB 캐시로 캐싱할지를 결정하고 상이한 DRAM 액세스들을 위해 RB 캐시에 캐싱될 데이터의 양을 조정하는 예측기 모듈을 포함하는 메모리 제어기를 포함하는 프로세서 다이를 더 포함할 수 있다.

Description

적응성 입도 로우 버퍼 캐시{ADAPTIVE GRANULARITY ROW-BUFFER CACHE}
동적 랜덤 액세스 메모리(dynamic random-access memory; DRAM)은 데이터의 각각의 비트를 집적 회로(integrated circuit; IC) 내의 별개의 캐패시터 내에 저장하는 랜덤 액세스 메모리(RAM)의 하나의 유형이다. 각각의 캐패시터는 2개의 비트의 값들(예를 들어, 0 및 1)을 나타낼 수 있는 충전 또는 방전과 같은 두 상태들을 포함할 수 있다. 캐패시터의 동작 특성들로 인해, 캐패시터 충전은 비트 값과 관련된 정보의 손실을 방지하기 위해 주기적으로 리프레시(refresh)된다. 캐패시터 충전을 주기적으로 리프레시해야 할 필요성이 이 메모리 유형을 동적으로 지정하기 위한 기준이다. DRAM은 예를 들어, 주변 회로, 인터페이스 로직 및 테스트 구조들을 구현하기 위하여 밀집한 메모리 다이(die)의 다수의 층들을 베이스 로직 층과 결합하는 3차원(three-dimensional; 3D) 스택(stack)형 구조로 제조될 수 있다.
본 발명의 특징들은 예로서 설명되고 다음의 도면(들)로 제한되지 않으며, 이 도면들에서는 동일한 번호들은 동일한 요소들을 나타낸다.
도 1(a)는 본 발명의 하나의 예에 따라, 3차원(3D) 스택형 동적 랜덤 액세스 메모리(DRAM)의 등각도를 도시한다.
도 1(b)는 본 발명의 하나의 예에 따라, 도 1의 3D 스택형 DRAM의 전면도를 도시한다.
도 2는 본 발명의 하나의 예에 따라, 적응성 입도 로우 버퍼 캐시(adaptive-granularity row buffer cache; AG-RB 캐시) 장치의 아키텍처를 도시한다.
도 3은 본 발명의 하나의 예에 따라, 도 2의 AG-RB 캐시 장치에 대한 포괄적(global) 프리 리스트(free list), 로우 매핑 유닛 및 데이터 어레이에 대한 확대도 및 부분 로우 캐싱 및 후속 히트(hit)의 예 플로우를 도시한다.
도 4는 본 발명의 하나의 예에 따라, 로우 매핑 유닛에서 태그(tag) 부분에 대한 컨텐츠 어드레싱 가능 메모리(content addressable memory; CAM) 설계를 도시한다.
도 5는 본 발명의 하나의 예에 따라, 적응성 입도 로우 버퍼 캐싱을 위한 방법을 도시한다.
도 6은 본 발명의 하나의 예에 따라, 컴퓨터 시스템을 도시한다.
간소화 및 설명의 목적으로, 본 발명은 주로 예들을 언급함으로써 기술된다. 다음의 설명에서, 본 발명의 철저한 이해를 제공하기 위해 많은 특정 세부사항들이 설명된다. 그러나, 본 발명은 이 특정 세부사항들로 제한되지 않고 실행될 수 있음이 바로 자명할 것이다. 다른 경우들에서, 일부 방법들 및 구조들은 본 발명을 불필요하게 모호하게 하지 않도록 상세하게 설명되지 않았다.
본 명세서 전체를 통해, 용어들 "a" 및 "an"은 특정한 요소들 중 적어도 하나를 나타내는 것으로 의도된다. 본원에서 사용되는 바와 같이, 용어 "포함하다"는 포함하지만 제한되지 않는 것을 의미하고, 용어 "포함하는"은 포함하는 그러나 제한되지 않는 것을 의미한다. 용어 "에 기초하여"는 적어도 부분적으로 기초하는 것을 의미한다.
3차원 스택형 동적 랜덤 액세스 메모리(DRAM)에서의 메모리 로우들은 DRAM의 전체 성능을 개선하기 위해 로우 버퍼 캐시를 사용하여 캐싱될 수 있다. 예를 들어, 도 1(a) 및 도 1(b)를 참조하면, 3D 스택형 DRAM(100)은 베이스 로직 층(102) 및 패키지 기판 층(103)을 구비하는 조밀한 메모리 다이(101)의 다수의 층들을 포함할 수 있다. 3D 스택형 DRAM(100)은 DRAM 로우로부터의 데이터 경로(105)를 통해 데이터를 메모리 다이(101)로부터 베이스 로직 층(102)으로 전달하기 위해 64-비트 폭의 쓰루 실리콘 비아(through silicon via; TSV) 채널들(104)을 더 포함할 수 있다. 느리고 전력 집중적인 로우 버퍼 활성화 및 종료의 수를 줄임으로써 더 빠른 메모리 액세스 및 개선된 전력 효율을 제공하도록 로우 버퍼 캐시는 베이스 로직 층(102)에 추가될 수 있다. DRAM 로우들을 캐싱하는 하나의 방법은 높은 히트 레이트(hit rate)(즉, 동일한 로우로의 빈번한 향후의 메모리 액세스들)로 DRAM 로우들을 캐싱하는 것을 포함한다. 그러나, 규칙적이지 않은 메모리 액세스 패턴들을 가지는 애플리케이션들의 경우, 전체 DRAM 로우를 캐싱하는 것은 비효율적일 수 있다. 예를 들어, 메모리 액세스들이 부분적 메모리 로우에 반복해서 액세스하는 규칙적이지 않은 메모리 액세스 패턴들을 가지는 애플리케이션들의 경우, 전체 DRAM 로우를 캐싱하는 것은 비효율적일 수 있다. 이 비효율성에 대한 하나의 원인은 8Kbit 내지 16Kbit 길이일 수 있는 상대적으로 긴 DRAM 로우들에 기초한다. 전체 DRAM 로우를 64-비트 폭의 TSV 채널들(104)을 통해 메모리 다이(101)로부터 베이스 로직 층(102)으로 이동시키는 데에는 64 사이클들이 사용된다. 더욱이, DRAM 로우들을 캐싱하는 것은 로우-버퍼 캐시들 및 TSV들에 대한 동적 전력의 원인이 되어, 총 시스템 전력을 증가시킨다.
하나의 예에 따르면, 적응성 입도 로우 버퍼 캐시(이후에 "AG-RB 캐시") 장치 및 적응성 입도 로우 버퍼 캐싱(이후에, "AG-RB 캐싱")을 위한 방법이 본원에 개시된다. 본원에서 개시되는 장치 및 방법은 일반적으로 상이한 DRAM 액세스들을 위해 RB 캐시로 전달되는 데이터의 양을 동적으로 조정하는 AG-RB 캐싱 프로세스를 포함한다. AG-RB 캐싱 프로세스는 TSV 대역폭의 사용을 현저하게 증가시키지 않고 RB 캐싱 성능을 개선함으로써 결과적으로 에너지 소비를 낮춘다. 그러므로, 본원에 개시되는 장치 및 방법은 3D 스택형 DRAM의 로직 층 상의 RB 캐시의 성능 및 에너지 이익들을 최대화한다. 본원에 개시되는 장치 및 방법은 예를 들어 다코어 프로세스들 및 최소 오버헤드(overhead)를 가지는 대량의 뱅크(bank)를 가지는 메모리 시스템들에 확장성(scalability)을 제공하기 위해 전용 예측기 모듈을 포함할 수 있다. 예측기 모듈은 미해결 요청에 대해 대응하는 DRAM 로우를 캐싱할지를, 그리고 캐싱하는 경우, DRAM 로우 중 어는 정도가 캐싱되어야 하는지를 결정할 수 있다. 예측기 모듈은 더 정확한 예측들로 로우 버퍼 히트 레이트를 증가시킬뿐만 아니라 3D 스택형 메모리들에서의 증가하는 뱅크들의 수에 기초하여 메모리 요청 큐(queue) 크기를 확장할 수 있다. 본원에서 개시되는 장치 및 방법은 AG 캐싱 프로세스를 지원하기 위해 상이한 크기들의 라인들을 저장할 수 있는 RB 캐시를 더 포함한다. 본원에서 개시되는 장치 및 방법은 최상의 캐시 대체 후보를 선택하여 RB 캐시 엔트리를 대체할 때 레이턴시(latency)를 최소화하도록 하기 위해 DRAM-상태 인지(aware) 대체 정책을 더 포함한다.
하나의 예에 따르면, AG-RB 캐시 장치는 하나 이상의 DRAM 뱅크들을 포함하는 복수의 DRAM 다이들 및 RB 캐시를 포함하는 로직 다이를 포함하는 3D 스택형 DRAM을 포함할 수 있다. AG-RB 캐시 장치는 데이터를 RB 캐시에 캐싱할지를 결정하고 상이한 DRAM 액세스들을 위해 RB 캐시에 캐싱할 데이터량을 조정하기 위하여 예측기 모듈을 포함하는 메모리 제어기를 포함하는 프로세서 다이를 더 포함한다. 다른 예에 따르면, AG-RB 캐싱을 위한 방법은 데이터를 RB 캐시로 캐싱할지를 결정하고 상이한 메모리 액세스들을 위해 프로세서 또는 메모리 측 로직에 의해 RB 캐시에 캐싱할 데이터의 양을 조정하는 것을 포함할 수 있다. 본원에서 개시되는 AG-RB 캐시 장치 및 방법은 상변화 메모리(phase-change memory; PCM), 스핀 전달 토크 RAM(spin-transfer torque RAM; STT-RAM) 및 저항성 랜덤 액세스 메모리(resistive random-access memory; ReRAM) 등을 포함하는 비휘발성 메모리들과 같은 다른 유형들의 메모리와 함께 사용될 수 있다.
본원에 개시되는 AG-RB 캐시 장치 및 방법은 3D 스택형 DRAM들에 AG-RB 캐시를 제공하고 따라서 대규모 데이터 센터들에 개선된 성능 및 에너지 효율적인 메모리 서브시스템을 제공한다. 본원에 개시되는 장치 및 방법은 상이한 메모리 행위들을 가지는 광범위한 애플리케이션들에 성능 및 에너지 효율의 이점들을 제공한다. 본원에 개시되는 장치 및 방법은 메모리 제어기 큐(queue) 및 예측기 큐를 분리하고 메모리 액세스 패턴들에 대한 정확한 예측을 제공하고, 이로 인해 RB 캐시의 사용이 개선되고 성능 및 에너지 효율이 개선된다. 본원에 개시되는 장치 및 방법을 사용하는 예들은 추가 온보드(on-board) 버퍼 칩을 구비하는 듀얼 인라인 메모리 모듈(dual in-line memory module; DIMM)들을 포함할 수 있다.
도 2는 하나의 예에 따라, AG-RB 캐시 장치(110)의 아키텍처를 도시한다. 도2를 참조하면, 장치(110)는 DRAM 층을 예시하는 DRAM 다이(111), 로직 층을 예시하는 로직 다이(112) 및 프로세서 층을 예시하는 프로세서 다이(113)를 포함하는 것으로 도시된다. 캐시 등과 같이 프로세서 다이(113)의 프로세서의 다양한 다른 구성요소들은 명료성을 위해 생략된다. DRAM 다이(111)는 TSV 채널들(117)을 통해 랭크 제어기들(115) 및 RB 캐시들(116)(또한 RB$로서 예시되고, AG RB 캐시(116)로 지정된다)에 통신적으로 접속되는 복수의 DRAM 뱅크들(114)을 포함할 수 있다. RB 캐시들(116)은 데이터 어레이(118)을 포함할 수 있다. DRAM 뱅크들(114) 및 RB 캐시들(116)은 데이터 버스(120) 및 명령 버스(121)를 통해 메모리 제어기(119)에 통신적으로 접속될 수 있다. 메모리 제어기(119)는 수가 가변적인 곧 있을(upcoming) 그리고 이전에 서비스된 메모리 요청들의 어드레스들을 저장할 수 있다. 각각의 메모리 랭크는 다수의 DRAM 뱅크들(114)에 의해 상이한 DRAM 다이들(1110)로부터 공유되는 별개의 RB 캐시(116)를 소유할 수 있다. 메모리 제어기(119)는 메모리 요청 큐(122), 확장 가능 예측기 모듈(123) 및 RB 캐시 할당표(124)를 포함할 수 있다. 예측기 모듈(123)은 메모리 요청 큐(122) 및 페칭 모듈(fetching module)(126)로부터 분리되는 예측기 큐(125)를 포함할 수 있다. 페칭 모듈(126)은 DRAM 로우를 RB 캐시(116)에 캐싱할지를 결정하기 위한 정책들을 사용할 수 있다. RB 캐시 할당표(124) 및 데이터 어레이(118)가 도 2의 예에서 분리된 것으로 도시될지라도, RB 캐시 할당표(124) 및 데이터 어레이(118)는 메모리가 로직 다이를 가지는 경우 모두 메모리 측에 제공될 수 있다. 대안으로, RB 캐시 할당표(124) 및 데이터 어레이(118)는 모두 프로세서 측에 제공될 수 있다.
장치(110) 내에서 다양한 다른 기능들을 수행하는 장치(110)의 모듈들 및 다른 구성요소들은 비일시적 컴퓨터 판독 가능 매체 상에 저장되는 머신 판독 가능 명령들을 포함할 수 있다. 게다가, 또는 대안으로, 장치(110)의 모듈들 및 다른 구성요소들은 하드웨어 또는 머신 판독 가능 명령들 및 하드웨어의 결합을 포함할 수 있다.
분리되는 예측기 큐(125)와 관련하여, 데이터를 AG RB 캐시(116)로 캐싱할지 뿐만 아니라 로우의 어떤 부분을 캐싱해야할지를 예측하는 것은 메모리 액세스 패턴 내에 포함되는 정보에 기초할 수 있다. 예를 들어, 메모리 제어기(119)의 기존 메모리 요청 큐(122) 내에서 계류 중인 메모리 요청 큐는 메모리 액세스 패턴의 분석을 위해 사용될 수 있다. 이 방법이 채널당 제한된 수의 뱅크들(예를 들어, 16개의 뱅크들)을 가지는 메모리들에 대해 사용될 수 있지만, 이 방법은 일반적으로 채널당 수백 개의 뱅크들을 포함할 수 있는 3D DRAM들의 수요들을 만족하도록 확장 가능하지 않다. 예를 들어, 많은 뱅크 카운트(count)(예를 들어, DRAM 뱅크들(114)에 대한)는 뱅크 레벨 병렬성을 높이므로 뱅크당 줄지어 있는 계류 중인 메모리 요청들의 수를 줄일 수 있다. 결과적으로, 계류 중인 메모리 요청 큐에서의 불충분한 액세스 패턴 정보로 인해, RB 캐시 데이터 캐싱의 정확도가 감소될 수 있다. 더욱이, 기존의 계류 중인 메모리 요청 큐(122)는 전형적으로 제한된 용량을 포함할 수 있다. 그 이유는 계류 중인 메모리 요청 큐가 어드레스들, 데이터 및 제어와 같이, 메모리 액세스 정보를 지니고 있는 복잡하고 전력 집중적인 컨텐츠 어드레스 가능 메모리(CAM) 구조이므로 메모리 요청 크기를 증가시키면 비용이 많이 들 수 있기 때문이다.
분리되는 예측기 큐(125)는 감소된 메모리 액세스 패턴 정보 및 오래 계류 중인 메모리 요청 큐의 큰 오버헤드와 관련되는 확장성 요구 및 문제들을 처리한다. 하나의 예에 따르면, 분리되는 예측기 큐(125)는 이전의 서비스된 요청들뿐만 아니라 수가 가변적인 곧 있을 메모리 요청들의 어드레스들을 저장하기 위해 메모리 제어기(119) 내에 별개의 하드웨어 큐로서 형성될 수 있다. 분리되는 예측기 큐(125)의 큐 크기는 확장 가능할 수 있다. 분리되는 예측기 큐(125)의 하드웨어 오버헤드는 또한 동일한 수의 엔트리들에서 계류 중인 메모리 요청 큐(125)의 하드웨어 오버헤드보다 더 작을 수 있는데 왜냐하면 분리되는 예측기 큐(125)는 큐의 어드레스들을 저장하고, 반면에 메모리 요청 큐(122)는 어드레스들, 데이터 및 제어와 같은 메모리 액세스 정보를 지니기 때문이다. 그러므로, 분리되는 예측기 큐(125)는 많은 수의 DRAM 뱅크들(114)을 가지는 메모리 시스템들(예를 들어, 3D 스택형 메모리들)에서 예측 정확성을 개선하기 위해 많은 수의 메모리 요청들을 저장하라는 요구들을 만족하는 개선된 확장성을 포함한다.
분리되는 예측기 큐(125)가 계류 중인 메모리 요청 큐(122)보다 훨씬 더 클 수 있으므로, 프로세서는 심지어 메모리 요청 큐(122)가 가득 차 있을지라도 예측기 큐(125)에 메모리 요청 정보를 송신할 수 있다. 이 경우에, 메모리 요청 큐(122)가 외부 메모리로 발행될 수 있는 새로운 메모리 요청들을 수용하지 않을 수 있을지라도, 예측기 큐(125)는 더 많은 정방향 검색을 위해 향후의 메모리 요청들에 대한 정보를 여전히 수용할 수 있어서 RB 캐시 관리 시에 예측 정확도를 개선할 수 있다. 예측기 큐(125)는 또한 RB 캐시(116) 엔트리들을 선택적으로 사용하는 것에 대해 더 개선된 결정들을 행하도록 이력 메모리 요청들을 추적할 수 있다. 예를 들어, 분리되는 예측기 큐(125)는 먼저 향후의 메모리 요청들에 대한 정보를 저장하고 이전에 서비스된 메모리 요청들로 임의의 남은 용량을 채울 수 있다.
예측기 큐(125)는 개선된 성능을 위해 메모리 제어기(119)에서 또는 개선된 비용 효율을 위해 3D DRAM 스택 측(예를 들어, 로직 다이(112))에서 구현될 수 있다. 메모리 액세스 패턴의 부가 정보를 필요로 하지 않는 메모리 채널당 메모리 뱅크 계수 및 제한된 메모리 용량을 가지는 시스템들의 경우, 분리되는 예측기 큐(125)는 또한 메모리 요청 큐(122)와 병합될 수 있다.
페칭 모듈(126)은 예측기 큐(125) 및/또는 계류 중인 메모리 요청 큐(122) 내에 저장된 정보에 기초하여 적응성 입도들로 선택적 캐싱 결정을 행할 수 있다. 예를 들어, 페칭 모듈(126)은 예측기 큐(125) 및 계류 중인 메모리 요청 큐(122)가 통합되면 예측기 큐(125)에서 또는 계류 중인 메모리 요청 큐(122)에서 메모리 요청들의 수를 구할 수 있다. 대안으로, 예측기 큐(125) 및 계류 중인 메모리 요청 큐(122)가 통합되지 않으면, 예측기 큐(125) 및 계류 중인 메모리 요청 큐(122) 모두를 구하는 결정은 이 큐들이 배타적 또는 포함적(exclusive or inclusive)인지에 기초할 수 있다. 큐들이 포함적(즉, 예측기 큐(125)가 메모리 요청 큐(122)보다 더 크고 메모리 요청 큐(122)의 모든 어드레스 정보를 가진다)이면, 예측기 큐(125)가 탐색된다. 그렇지 않고, 큐들이 배타적이면, 정확성을 개선하기 위해 예측기 큐(125) 및 계류 중인 메모리 요청 큐(122) 모두가 탐색될 수 있다.
DRAM 로우를 로직 다이(112)에 있는 RB 캐시(116)에 캐싱할지에 대한 제 1 결정은 정책들을 사용함으로써 결정될 수 있다. 예를 들어, 페칭 모듈(126)은 DRAM 로우를 메모리 액세스 패턴에 따라 RB 캐시(116)에 캐싱할지에 대한 결정을 행할 수 있다. 예를 들어, 많은 곧 있을 메모리 요청들이 높은 지역성을 나타내고 동일한 로우 어드레스에 대해 히트(hit)하면, 메모리 로우는 후속 메모리 액세스들이 RB 캐시로부터 직접 서비스될 수 있도록 캐싱될 수 있다. RB 캐시에 액세스하는 것은 메모리 로우에 직접 액세스하는 것보다 더 효율적일 수 있으므로, 후속 메모리 액세스들의 레이턴시 및 에너지 소비는 감소될 수 있고, 이 결과로 전체 시스템 성능 및 에너지 효율이 개선된다. 대안으로, 메모리 페칭 모듈(126)이 동일한 로우에 대한 추가의 계류 중인 요청들을 관찰하지 않거나 또는 거의 관찰하지 않을 때, 페칭 모듈(126)은 RB 캐시의 엔트리의 할당을 거르고 내부 메모리 로우 버퍼에 직접 판독/기록 요청들을 발행할 수 있다. 로우에 대한 요청이 거의 없으면, 판독 및 기록을 포함하여 서너 개의 개별 64-바이트 메모리 액세스들을 수행하는 것이 전체 내부 메모리 로우 버퍼(즉, 8 내지 16Kb)를 로우 버퍼 캐시에 캐싱하는 것보다 더 빠를 수 있다. 메모리 제어기(119)에 의해 추적된 메모리 상태(예를 들어, 뱅크 경쟁 등)는 또한 어떤 로우가 캐싱되어야 하는지를 결정하는 것을 돕는데 사용될 수 있다. 예를 들어, 액세스가 빈번하고 분주한 뱅크 내의 로우는 동일한 액세스 빈도를 가지는 유휴 뱅크에 있는 로우보다 캐싱되는 데 있어서 더 선호될 수 있다.
페칭 모듈(126)이 DRAM 로우를 패치하고 이를 RB 캐시(116)에 캐싱할 수 있으면, 페칭 모듈(126)은 얼마나 많은 데이터가 또는 DRAM 로우 중 어떤 프랙션(fraction)이 캐싱되어야 하는지에 대한 제 2 결정을 행한다. 제 2 결정은 예측기 큐(125) 내의 모든 메모리 요청들을 미해결된 요청의 목표 로우 어드레스와 비교함으로써 수행될 수 있다. 예를 들어, 최종 레벨 캐시 라인의 크기가 64 바이트라고 가정하면, 페칭 및 캐싱될 DRAM 로우의 프랙션(즉, 64 바이트 데이터가 얼마나 많이 차단되는지)은 동일한 로우에서 계류 중이고 지난 요청들을 포함하는 요청된 캐시 라인들 사이의 가장 긴 거리에 의해 결정될 수 있다.
예를 들어, 64-바이트 라인들은 일반적으로 프로세서 내에서 캐싱되고 128-바이트 데이터 또한 다음 라인의 프리페칭(prefetching)에 의해 프로세서 내에서 캐싱될 수 있으므로, RB 캐시(116) 내에 256 바이트들보다 더 작은 데이터 블록들을 캐싱하는 것은 최소의 성능 이득을 제공할 수 있다. 그러므로, 예측기 모듈(123)은 크기 256B의 서브 페이지부터 전체 DRAM 로우의 크기의 전체 페이지까지 하나의 서브 페이지로 늘려가는 적응성 입도로 데이터를 선택적으로 캐싱할 수 있다. 서브 페이지는 부분 DRA 로우를 페칭하고 캐싱할 때 DRAM 다이(111) 및 RB 캐시(116) 사이의 데이터 트랜잭션(transaction)의 최소 단위로서 규정된다. 서브 페이지 크기는 CPU 캐시 라인 크기(예를 들어, 64B)부터 전체 로우의 크기로 변할 수 있다. 프로세서에 의해 서비스되는 메모리 요청 별로, 파퓰레이션(population) 카운트 회로는 예측기 큐(125) 또는 메모리 요청 큐(122)(즉, 분리된 예측기 큐(125)가 메모리 요청 큐(122)와 병합되는 경우) 내의 요청들 중에서 로우 어드레스 정합들의 수를 계산하는 데 사용될 수 있고, 게다가, 미해결된 메모리 요청과 동일한 로우 어드레스를 가지는 모든 서브 페이지들이 캐싱될 수 있다. 페칭 모듈(126)에 의해 행해지는 마지막 결정은 명령 버스(121)를 통해 3D DRAM 스택 내의 랭크 제어기들(115)로 송신될 수 있다.
AG RB 캐시(116)가 예를 들어, 서브 페이지로부터 전체 페이지까지 상이한 액세스 입도들을 지원하기 위해, DRAM 로우의 인접한 서브 페이지들은 RB 캐시(116) 및 메모리 스택 사이의 버스트 블록 이동들을 제공하기 위해 RB 캐시(116) 내에 인접하게 배치될 수 있다. 그렇지 않으면, RB 캐시(116)로부터 전체 페이지 또는 여러 서브 페이지들을 축출함으로써 결과적으로 상대적으로 느리고 전력 집중적인 다수의 로우 버퍼 활성화 및 선충전들이 발생할 수 있다. 부분적인 로우들은 또한 예를 들어, 프래그멘테이션(fragmentation)을 제거하기 위해, RB 캐시(116) 내에서 가능한 가까이 배치될 수 있다. RB 캐시(116)는 또한 충돌들을 방지하기 위해 완전히 연관(associative)될 수 있다. 예를 들어, 128KB 크기의 RB 캐시(116)의 경우, 이 연관성(associativity)은 256B 서브 페이지의 액세스 입도에 있어서 512이고 2KB 전체 페이지에 있어서 64이다. 이 양태들이 최적화되지 않은 컨텐츠 어드레싱 가능 메모리(CAM)에 의해 만족될 수 있을지라도, 성능 및 에너지 오버헤드는 엄청나게 높을 수 있다. 가장 높은 적응 연관성을 지원하여 하드웨어 비용을 줄이기 위해 장치(110)는 도 4에 도시되고 이후에 더 상세하게 설명되는 바와 같이 효율적이고 확장 가능한 방법을 사용할 수 있다.
RB 캐시 할당표(124)는 어떤 (부분적) 로우들이 현재 RB 캐시(116) 내에 저장되어 있을 수 있는지에 대한 추적을 용이하게 하기 위하여 프로세서 측 메모리 제어기(119) 내에서 RB 캐시(116) 히트/미스 검출을 가속하여 구현될 수 있다. 메모리 제어기(119)는 또한 명령 스케줄링(scheduling)을 위해 RB 캐시 할당표(124)를 참고할 수 있다.
RB 캐시(116)의 데이터 어레이(118)는 데이터를 3D 스택형 DRAM 및 로직 다이(112) 사이에서 데이터를 이동시키기 위한 TSV 채널들(117)의 위치로 인해, 3D 스택형 DRAM(즉, DRAM 다이(111))의 부근에서의 로직 층(즉, 로직 다이(112) 상에 배치될 수 있다. 이 별개의 캐시 구성은 유익한데 왜냐하면 DRAM 액세스들은 프로세서 칩들 상의 작은 캐시들보다 레이턴시에 덜 민감하고 미스율(miss rate)은 전형적으로 더 높기 때문이다.
도 2 및 도 3을 참조하면, 도 3은 도 본 발명의 하나의 예에 따라, 2의 AG-RB 캐시 장치(110)에 대한 포괄적 프리 리스트(130) 및 로우 매핑 유닛(131)의 확대도를 도시하고, 부분 로우 캐싱 및 후속 히트의 예의 흐름도를 도시한다. RB 캐시 할당표(124)는 포괄적 프리 리스트(130) 및 로우 매핑 유닛(131)을 포함할 수 있다. 포괄적 프리 리스트(130)는 데이터 어레이(118)에 캐시 라인들의 정보를 지니고 있을 수 있고, 캐시 라인 설치 또는 대체 중에 로우 매핑 유닛(131)에서 로우들을 더 매핑할 수 있다. 로우 매핑 유닛(131)은 자가 포함되는 완전 연관 캐시로서 기능할 수 있다. 태그 부분(132)은 도 4의 CAM(150)에서 구현될 수 있다. 태그 부분(132)은 검색을 위해 메모리 블록들의 로우 어드레스들을 저장할 수 있다. 데이터 부분(133)은 더티 비트(dirty bit) 및 유효 비트(도시되지 않음)와 같은 캐시 정보 외에, 헤드 어드레스, 입도 및 데이터 어레이(118)를 인덱싱(indexing)하는 어드레스 포인터들을 포함하는 캐시 라인 정보를 지닐 수 있다.
하나의 예에 따르면, RB 캐시(116)의 데이터 어레이(118)는 로직 다이(112) 상에서 분산되거나 중앙집중화될 수 있다. 중앙집중화된 RB 캐시 배치와 비교해서, 분산 RB 캐시 배치는 DRAM 랭크들 사이의 충돌들을 방지하고 긴 랭크간 데이터 라인들을 통해 데이터를 전송하는 에너지 오버헤드를 방지할 수 있다. RB 캐시들(116)의 각각은 랭크 내의 스택형 DRAM 뱅크들에 의해 공유되는 별개의 분리 데이터 어레이(118)를 포함할 수 있다. 다수의 인접하는 서브 페이지들은 전체 페이지까지 더 큰 입도를 가지는 캐시 라인을 형성하기 위해 다발화(bundle)될 수 있다. 이 프로세스에서, 서브페이지들은 액세스 입도의 대응하는 어드레스 경계에 정렬될 수 있다. 동일한 DRAM 로우로부터의 다수의 서브 페이지들은 예를 들어, 동일한 로우로의 다수의 축출들을 방지하게 위해 연속해서 저장될 수 있다.
도 4를 참조하면, 로우 매핑 유닛(131)의 태그 부분(132)은 빠른 어드레스 검색을 지원하기 위해 CAM을 포함할 수 있다. 작은 입도(예를 들어, 서브 페이지)로 RB 캐시(116)의 높은 연관성을 유지하는 비용을 줄이기 위해, 장치(110)는 로우 매핑 유닛(131)의 태그 부분(132)에 대한 CAM(150)을 포함할 수 있다. CAM(150)의 경우, 계층 탐색 라인에 대해, 저장소는 빈(bin)들(예를 들어, CAM 빈(i), CAM 빈(i+1) 등을 참조할 것)로 분리될 수 있고, 여기서 이전 빈의 151에서의 오정합 신호가 다음 빈에서의 액세스(즉, 비교)를 트리거(trigger)할 수 있다. CAM(150)의 이 부분 액세스 구성으로, 레이턴시 및 전력은 CAM으로의 반복되는 전체 액세스에 비해 현저하게 감소될 수 있다.
CAM(150)은 태그에서 로우 어드레스 검색 후에 계산될 오프셋 정보 및 로우 어드레스들의 저장을 제공한다. 예를 들어, 상이한 애플리케이션들이 메모리 액세스 입도에 대한 특정한 선호도들을 가질 수 있으므로, 특정한 서브 페이지들의 로우 어드레스 태그들은 다른 서브페이지들의 로우 어드레스 태그들보다 훨씬 더 높은 히트 레이트를 가질 수 있다. 예를 들어, 애플리케이션들이 64 엔트리 RB 캐시(116) 내에서 서브 페이지 크기가 256B인 2KB의 전체 페이지에 액세스하는 것을 선호하면, 모든 태그 비교들은 데이터 어레이(118) 내의 총 512 중 대응하는 64 서브 페이지들(즉, 이것들은 전체 페이지의 헤드이다)에서 수행될 수 있다. 모든 이 엔트리들이 로우 매핑 유닛(131) 내의 태그 CAM(150)의 제 1 빈에 배치되면, 512-웨이(way)의 연관 로우 매핑 유닛(131)은 여전히 최악의 경우를 커버하면서 64-엔트리 CAM과 유사한 전력 및 타이밍을 가질 수 있다. 메모리 제어기(119)는 선호되는 액세스 입도를 가지는 엔트리들을 상위 CAM 빈들로 주기적으로 이동시킴으로써 평균 액세스 입도를 모니터링하고 태그 부분(132)을 분류할 수 있다. 하드웨어 분류표의 시간 복잡도는 0(n)만큼 낮을 수 있다.
RB 캐시(116)의 관리를 위한 대체 정책과 관련하여, 캐시 라인은 메모리 요청 큐(112) 및/또는 예측기 큐(125) 내에 RB 캐시(116)로의 향후의 메모리 요청들이 없으면 축출될 수 있고 이는 분주한 뱅크로 매핑되지 않는다. RB 캐시(116)의 라인들이 이 기준을 만족하지 않으면, 대체 정책은 최소 최근 사용(least recently used; LRU) 대체 정책으로 후퇴될 수 있다.
적응성 입도를 지원하기 위해, 캐시 라인은 단일 축출이 새로운 요청에 충분한 여유를 줄만큼 충분이 클(즉, 계류 중인 요청의 크기와 같거나 더 큰) 경우, 축출될 수 있다. 더욱이, 캐시 라인은 비 더티 캐시 라인들이 더티 캐시 라인들보다 선호되도록 축출될 수 있다.
RB 캐시(116)에서의 동작 플로우의 예는 도 2 및 도 3을 참조하여 설명된다. 135에서(즉, 단계 (1)), 예측기 모듈(123)이 캐싱되어야 할 필요가 있는 새로운 (부분) 로우를 검출하면, 예측기 모듈(123)은 RB 캐시(116)에 요청들을 송신한다. 이 예에서, 전체 페이지는 4개의 서브 페이지들을 가지는 1KB이고, RB 캐시(116)는 0b 1010으로서의 로우 어드레스 및 0b 101010에서 시작하는 서브 로우 어드레스를 가지는 절반의 로우(즉, 2개의 서브 페이지들)을 캐싱할 수 있다. 136(즉, 단계 (2))에서, 포괄적 프리 리스트(130)는 데이터 어레이(118) 내의 512B 경계에 있는 이용 가능한 캐시 라인(예를 들어, 캐시 라인(137))을 선택하고 이 캐시 라인을 로우 매핑 유닛(131)의 비어 있는 엔트리들 내로 삽입할 수 있다. 로우 어드레스 및 메타 정보는 로우 매핑 유닛(131)의 태그(132) 및 데이터 부분들(133)에 각각 저장될 수 있다. 메타 정보는 0b 10(즉, DRAM 로우 내의 서브 페이지 어드레스의 오프셋)의 헤드 어드레스, 0b 10(즉, 2개의 서브 페이지들)의 입도 및 데이터 어레이 캐시 라인을 인덱싱하기 위한 포인터를 포함할 수 있다. 138(즉, 단계 (3))에서, 메모리 제어기(119)는 DRAM으로부터 데이터를 검색하기 위해 DRAM 액세스 명령 및 RB 캐시(116) 액세스 명령 모두를 발행하고 데이터 어레이(118) 내에 절반의 로우(즉, 각각 0b101010 및 0b101011로서의 어드레스들을 가지는 2개의 서브 페이지들)을 저장할 수 있고, 이는 메모리 액세스 및 연관되는 AG-RB 캐시 동작을 완료한다.
다음으로, 후속 메모리 요청이 도달할 수 있다. 예를 들어, 139에서(즉, 단계 (4)), 서브 페이지 0b 101011에서 새로운 메모리 요청이 데이터에 액세스하면, 메모리 제어기(119)는 RB 캐시 할당표(124)를 참조할 수 있다. 140에서(즉, 단계(5)), 로우 매핑 유닛(131)에서의 히트는 (부분) 로우가 캐싱되는 것을 나타낸다. 캐시 로우의 입도가 이때에는 공지되지 않으므로(즉, 따라서, 이 단계에서 이것이 실제 히트인지가 공지되지 않는다), 계류 중인 메모리 요청에 의해 요청되는 이 서브 페이지의 어드레스 오프셋(0b 11) 및 헤드 어드레스(0b 10)의 해밍(Hamming) 거리는 이것이 실제 히트인지를 더 확인하기 위해 입도와 비교될 수 있다. 이 예에서, 해밍 거리는 입도보다 더 작으므로, 이것은 실제 히트이고, 따라서 이 절반의 로우의 시작 어드레스 및 해밍 거리는 데이터 검색을 위해 데이터 어레이(118)을 어드레싱하기 위해 함께 사용될 수 있다.
도 5는 구조가 아래에서 상세하게 설명되는 AG-RB 캐시 장치(110)의 예에 대응하여, AG-RB 캐싱에 대한 방법(200)의 흐름도를 도시한다. 방법(200)은 예이고 제한하지 않는 도 2를 참조하여 AG-RB 캐시 장치(110)에서 구현될 수 있다.
도 5를 참조하면, 방법(200)에 대해, 블록 201에서, 데이터를 RB 캐시에 캐싱할지에 대한 결정이 행해진다. 일반적으로, 메모리 액세스 패턴은 데이터를 RB 캐시에 캐싱할지를 결정하는 데 사용될 수 있다. 예를 들어, 도 2를 참조하면, 페칭 모듈(126)은 예측기 큐(125) 및 계류 중인 메모리 요청 큐(122)에 저장된 정보에 기초하여 적응성 입도들로 선택 캐싱 결정들을 행할 수 있다. DRAM 로우를 로직 다이(112) 상의 RB 캐시(116)로 캐싱할지에 대한 제 1 결정은 정책들을 사용하여 행해질 수 있다. 예측기 큐(125)는 이전에 서비스된 메모리 요청들 및 곧 있을 메모리 요청들의 어드레스들을 포함하는 정보를 저장하는 데 사용될 수 있다. 예측기 큐(125)는 메모리 요청 큐(122)와 결합 가능할 수 있다. 예측기 큐(125)에 저장된 어드레스 및 메모리 요청 큐(122)에 저장된 정보는 DRAM 로우를 RB 캐시(116)에 캐싱할지를 결정하는 데 사용될 수 있다. 예측기 큐(125)는 프로세서(예를 들어, 프로세서 다이(113))의 메모리 제어기(119)에서 또는 메모리 측에서 구현될 수 있다.
블록 202에서, DRAM 액세스들과 같이, 상이한 메모리 액세스들을 위해 RB 캐시에 캐싱할 데이터의 양에 대한 결정이 행해진다. 일반적으로, 메모리 액세스 패턴은 데이터의 어떤 부분을 RB 캐시에 캐싱할지를 결정하는 데 사용될 수 있다. 예를 들어, 도 2를 참조하면, 페칭 모듈(126)이 DRAM 로우를 페칭하고 이를 RB 캐싱(116) 내에 캐싱할 수 있으면, 페칭 모듈(126)은 얼마나 많은 데이터가 또는 DRAM 로우의 어떤 프랙션이 캐싱되어야 하는지에 대한 제 2 결정이 행해진다. 예측기 큐(125) 내의 메모리 요청들은 RB 캐시(116)에 캐싱될 DRAM 로우의 프랙션을 결정하기 위해 미해결된 메모리 요청의 목표 로우 어드레스와 비교될 수 있다.
블록 203에서, 서브 페이지 크기에서부터 DRAM 로우의 전체 페이지 크기까지 하나의 서브 페이지씩 늘려가며 데이터는 RB 캐시에 선택적으로 캐싱될 수 있다. 예를 들어, 도 2를 참조하면, 데이터는 RB 캐시(116)에, 서브 페이지 크기로부터 DRAM 로우의 전체 페이지 크기까지 하나의 서브 페이지씩 늘려가며 선택적으로 캐싱될 수 있다. RB 캐시 할당표(124)는 RB 캐시(116)에 저장되어 있는 DRAM 로우들을 추적하는 데 사용될 수 있고, 데이터 어레이(118)는 RB 캐시(116)에 대한 RRAM 로우 또는 DRAM의 프랙션을 저장하는 데 사용될 수 있다. RB 캐시 할당표(124)는 3D 스택형 DRAM에 대한 프로세서(예를 들어, 프로세서 다이(113))의 메모리 제어기(119)에서 구현될 수 있고, 데이터 어레이(118)는 3D 스택형 DRAM의 로직 층(예를 들어, 로직 다이(112)) 상에 구현될 수 있다. RB 캐시 할당표(124)의 전체 프리 리스트(130)는 데이터 어레이(118) 내의 캐시 라인들에 관한 정보를 보유하는 데 사용될 수 있고, 포괄적 프리 리스트(130)는 캐시 라인 설치 또는 대체 중에 로우 매핑 유닛(131)에서 DRAM 로우들을 매핑하는 데 사용될 수 있다. 로우 매핑 유닛(131)은 검색을 위해 메모리 블록들의 DRAM 로우 어드레스들을 저장하기 위한 태그 부분(132) 및 캐시 라인 정보를 보유하기 위한 데이터 부분을 포함할 수 있다. 태그 부분(132)은 빈들로 분리되는 저장소를 포함하는 CAM(150)을 사용할 수 있고, 여기서 이전의 빈의 오정합 신호가 다음 빈에서의 액세스를 트리거한다.
도 6은 본원에서 개시되는 예들과 함께 사용될 수 있는 컴퓨터 시스템(300)을 도시한다. 컴퓨터 시스템은 서버 또는 다른 컴퓨터 시스템 내에 있을 수 있는 구성요소들을 포함하는 일반적인 플랫폼을 나타낸다. 컴퓨터 시스템(300)은 장치(110)에 대한 플랫폼으로서 사용될 수 있다. 컴퓨터 시스템(300)은 프로세서 또는 다른 하드웨어 프로세싱 회로에 의해 본원에 개시되는 방법들, 기능들 및 다른 프로세서들을 실행할 수 있다. 이 방법들, 기능들 및 다른 프로세스들은 하드웨어 저장 디바이스(예를 들어, 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read only memory; ROM), 소거 가능 프로그램 가능 ROM(erasable, programmable ROM; EPROM), 전기적 소거 가능 프로그램 가능 ROM(electrically erasable, programmable ROM; EEPROM), 하드 드라이브들 및 플래시 메모리)와 같은 비일시적일 수 있는 컴퓨터 판독 가능 매체 상에 저장되는 머신 판독 가능 명령들로서 구현될 수 있다.
컴퓨터 시스템(300)은 본원에서 기술되는 방법들, 기능들 및 다른 프로세스들 중 일부 또는 모두를 수행하는 머신 판독 가능 명령들을 구현 또는 실행할 수 있는 프로세서(302)를 포함한다. 프로세서(302)로부터의 명령들 및 데이터는 통신 버스(304)를 통해 통신된다. 컴퓨터 시스템은 또한 랜덤 액세스 메모리(RAM)과 같이 프로세서(302)에 대한 머신 판독 가능 명령들 및 데이터가 런타임 동안 상주할 수 있는 주 메모리(306) 및 비휘발성일 수 있고 머신 판독 가능 명령들 및 데이터를 저장하는 2차 데이터 저장소(308)를 포함한다. 메모리 및 데이터 저장소는 컴퓨터 판독 가능 매체들의 예이다. 메모리(306)는 런타임 동안 메모리(306) 내에 상주하고 프로세서(302)에 의해 실행되는 머신 판독 가능 명령들을 포함하는 AG-RB 캐시 모듈(320)을 포함할 수 있다. AG-RB 캐싱 모듈(320)은 도 2에 도시되는 장치의 모듈들을 포함할 수 있다.
컴퓨터 시스템(300)은 키보드, 마우스, 디스플레이 등과 같은 I/O 디바이스(310)를 포함할 수 있다. 컴퓨터 시스템은 네트워크에 접속되는 네트워크 인터페이스(312)를 포함할 수 있다. 다른 공지되어 있는 전자 구성요소들이 컴퓨터 시스템 내에 추가되거나 대체될 수 있다.
본원에서 설명되고 예시된 것은 이의 변형들의 일부와 함께 하나의 예이다. 본원에서 사용되는 용어들, 설명들 및 도들은 단지 예로서 설명되고 제한하는 것들로서 의도되지 않는다. 모든 용어들이 달리 표시되지 않으면 가장 광범위한 타당한 뜻으로 의미되는 다음의 청구항들-및 이들의 등가물들-에 의해 규정되도록 의도된 특허 대상의 사상 및 범위 내에서 많은 변형들이 가능하다.

Claims (15)

  1. 적응성 입도 로우 버퍼(adaptive-granularity row buffer; AG-RB) 캐싱(cashing)을 위한 방법으로서,
    데이터를 RB 캐시(cache)로 캐싱할지 여부를 결정하는 단계와,
    프로세서 또는 메모리 측 로직(logic)에 의해, 상이한 메모리 액세스를 위해 상기 RB 캐시로 캐싱되는 상기 데이터의 양을 조정하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 RB 캐시에 상기 데이터를 캐싱할지 여부를 결정하기 위해 메모리 액세스 패턴을 사용하는 단계와,
    상기 데이터의 어떤 부분이 상기 RB 캐시에 캐싱되어야 하는지를 결정하기 위해 상기 메모리 액세스 패턴을 사용하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    이전에 서비스된 메모리 요청 및 곧 있을 메모리 요청들의 어드레스를 저장하기 위해 예측기 큐를 사용하는 단계를 더 포함하되,
    상기 예측기 큐는 메모리 요청 큐와 결합 가능한
    방법.
  4. 제 3 항에 있어서,
    상기 데이터는 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM) 로우 내에 포함되고, 상기 방법은,
    상기 DRAM 로우를 상기 RB 캐시에 캐싱할지 여부를 결정하기 위해 상기 예측기 큐 내에 저장된 어드레스 또는 상기 메모리 요청 큐 내에 저장된 정보를 사용하는 단계를 더 포함하는
    방법.
  5. 제 3 항에 있어서,
    상기 데이터는 동적 랜덤 액세스 메모리(DRAM) 로우에 포함되고, 상기 방법은,
    상기 RB 캐시에 캐싱될 상기 DRAM 로우의 프랙션(fraction)을 결정하기 위해 상기 예측기 큐 내의 메모리 요청들을 미해결된 메모리 요청의 목표 로우 어드레스와 비교하는 단계를 더 포함하는
    방법.
  6. 제 3 항에 있어서,
    상기 데이터는 동적 랜덤 액세스 메모리(DRAM) 로우 내에 포함되고, 상기 방법은,
    서브 페이지(sub-page) 크기로부터 상기 DRAM 로우의 전체 페이지(full-page) 크기까지 하나의 서브 페이지씩 늘려가며 데이터를 상기 RB 캐시로 선택적으로 캐싱하는 단계를 더 포함하되,
    상기 서브 페이지 크기는 상기 전체 페이지 크기보다 더 작은
    방법.
  7. 제 1 항에 있어서,
    상기 데이터는 동적 랜덤 액세스 메모리(DRAM) 로우 내에 포함되고, 상기 방법은,
    상기 RB 캐시 내에 저장되는 DRAM 로우를 추적하기 위해 RB 캐시 할당표를 사용하는 단계와,
    상기 DRAM 로우 또는 상기 DRAM 로우의 프랙션을 상기 RB 캐시용으로 저장하기 위하여 데이터 어레이(data array)를 사용하는 단계를 더 포함하는
    방법.
  8. 제 7 항에 있어서,
    3차원(3D) 스택형 DRAM에 대하여 상기 프로세서의 메모리 제어기 내에 상기 RB 캐시 할당표를 구현하는 단계와,
    상기 3D 스택형 DRAM의 로직 층 상에 상기 데이터 어레이를 구현하는 단계를 더 포함하는
    방법.
  9. 제 7 항에 있어서,
    캐시 라인과 관련되는 정보를 상기 데이터 어레이 내에 보유하기 위해 상기 RB 캐시 할당표의 포괄적 프리 리스트(a global free list)를 사용하는 단계와,
    캐시 라인 설치 또는 대체 동안 상기 DRAM 로우를 로우 매핑 유닛(row mapping unit)에서 매핑하기 위해 상기 포괄적 프리 리스트를 사용하는 단계를 더 포함하는
    방법.
  10. 제 7 항에 있어서,
    로우 매핑 유닛을 사용하는 단계를 더 포함하되, 상기 로우 매핑 유닛은,
    검색을 위해 메모리 블록의 DRAM 로우 어드레스를 저장하는 태그 부분(tag portion)과,
    캐시 라인 정보를 보유하는 데이터 부분을 포함하는
    방법.
  11. 제 7 항에 있어서,
    검색을 위해 메모리 블록의 DRAM 로우 어드레스를 저장하는 태그 부분을 포함하는 로우 매핑 유닛(row mapping unit)을 사용하는 단계를 더 포함하되,
    상기 태그 부분은 빈(bin)으로 분리되는 저장소를 포함하는 컨텐츠 어드레싱 가능 메모리(content addressable memory; CAM)을 사용하고, 이전의 빈의 오정합 신호는 다음 빈에서 액세스를 트리거(trigger)하는
    방법.
  12. 제 1 항에 있어서,
    온보드 버퍼 칩(on-board buffer chip)을 갖는 듀얼 인-라인 메모리 모듈(dual in-line memory module; DIMM)을 사용하여 상기 RB 캐시를 구현하는 단계를 더 포함하는
    방법.
  13. 적응성 입도 로우 버퍼(AG-RB) 캐시 장치로서,
    적어도 하나의 DRAM 뱅크를 포함하는 복수의 DRAM 다이, 및
    적어도 하나의 RB 캐시를 포함하는 로직 다이
    를 포함하는 3차원(3D) 스택형 동적 랜덤 액세스 메모리(DRAM)와,
    데이터를 상기 적어도 하나의 RB 캐시에 캐싱할지 여부를 결정하고 상이한 DRAM 액세스를 위해 상기 적어도 하나의 RB 캐시에 캐싱될 상기 데이터의 양을 조절하는 예측기 모듈을 포함한 메모리 제어기를 포함하는 프로세서 다이를 포함하는
    AG-RB 캐시 장치.
  14. 제 13 항에 있어서,
    상기 예측기 모듈은 이전에 서비스된 메모리 요청 및 곧 있을 메모리 요청들의 어드레스를 저장하기 위해 예측기 큐를 포함하고, 상기 예측기 큐는 메모리 요청 큐와 결합 가능한
    AG-RB 캐시 장치.
  15. 메모리 장치로서,
    머신 판독 가능 명령어를 저장하는 메모리와,
    상기 머신 판독 가능 명령어를 구현하는 프로세서를 포함하되,
    상기 명령어는,
    데이터를 로우 버퍼(RB) 캐시에 캐싱할지를 결정하고,
    상이한 메모리 액세스를 위해 상기 RB 캐시에 캐싱되는 상기 데이터의 양을 조정하는
    메모리 장치.
KR1020157020664A 2013-01-31 2013-01-31 적응성 입도 로우 버퍼 캐시 KR20150115752A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/024179 WO2014120215A1 (en) 2013-01-31 2013-01-31 Adaptive granularity row-buffer cache

Publications (1)

Publication Number Publication Date
KR20150115752A true KR20150115752A (ko) 2015-10-14

Family

ID=51262779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157020664A KR20150115752A (ko) 2013-01-31 2013-01-31 적응성 입도 로우 버퍼 캐시

Country Status (5)

Country Link
US (1) US9620181B2 (ko)
KR (1) KR20150115752A (ko)
CN (1) CN105027211B (ko)
TW (1) TWI536258B (ko)
WO (1) WO2014120215A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170113719A (ko) * 2016-03-24 2017-10-13 에스케이하이닉스 주식회사 반도체 시스템

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014149038A1 (en) 2013-03-20 2014-09-25 Hewlett-Packard Development Company, L.P. Caching data in a memory system having memory nodes at different hierarchical levels
US10956044B2 (en) * 2013-05-16 2021-03-23 Advanced Micro Devices, Inc. Memory system with region-specific memory access scheduling
JP6093322B2 (ja) * 2014-03-18 2017-03-08 株式会社東芝 キャッシュメモリおよびプロセッサシステム
GB201500446D0 (en) * 2015-01-12 2015-02-25 Univ Manchester Monitoring device
KR20170057902A (ko) * 2015-11-17 2017-05-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI564717B (zh) * 2015-12-02 2017-01-01 宇瞻科技股份有限公司 資料緩衝調整裝置及其方法
US20170168957A1 (en) * 2015-12-10 2017-06-15 Ati Technologies Ulc Aware Cache Replacement Policy
GB2542646B (en) * 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
US9785371B1 (en) * 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US10169240B2 (en) * 2016-04-08 2019-01-01 Qualcomm Incorporated Reducing memory access bandwidth based on prediction of memory request size
US10866902B2 (en) * 2016-12-28 2020-12-15 Intel Corporation Memory aware reordered source
US20180188976A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Increasing read pending queue capacity to increase memory bandwidth
CN107301455B (zh) * 2017-05-05 2020-11-03 中国科学院计算技术研究所 用于卷积神经网络的混合立方体存储系统及加速计算方法
US10498342B2 (en) * 2017-08-23 2019-12-03 Massachusetts Institute Of Technology Discretely assembled logic blocks
US10380024B2 (en) * 2017-12-05 2019-08-13 Nanya Technology Corporation DRAM and method of operating the same in an hierarchical memory system
US10754578B2 (en) 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10942854B2 (en) * 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
CN109308190B (zh) * 2018-07-09 2023-03-14 北京中科睿芯科技集团有限公司 基于3d堆栈内存架构的共享行缓冲系统及共享行缓冲器
US11144466B2 (en) * 2019-06-06 2021-10-12 Intel Corporation Memory device with local cache array
CN112151526A (zh) 2019-06-28 2020-12-29 西部数据技术公司 包括高速异质集成控制器和高速缓存的半导体设备
US20220269645A1 (en) * 2019-08-13 2022-08-25 Neuroblade Ltd. Memory mat as a register file
US11656995B2 (en) * 2019-11-26 2023-05-23 Micron Technology, Inc. Dynamic access granularity in a cache media
US11614892B2 (en) * 2020-12-17 2023-03-28 Micron Technology, Inc. Memory system architecture for heterogeneous memory technologies
US11693585B2 (en) * 2021-04-26 2023-07-04 Apple Inc. Address hashing in a multiple memory controller system
US11803471B2 (en) 2021-08-23 2023-10-31 Apple Inc. Scalable system on a chip
CN116737617B (zh) * 2023-08-11 2023-12-29 上海芯高峰微电子有限公司 一种访问控制器

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
KR100257993B1 (ko) * 1998-05-19 2000-06-01 윤덕용 분산 공유 메모리 시스템에서 미세 통신과 대단위 통신의 병합을 위한 적응형 입도 방법
US6591355B2 (en) * 1998-09-28 2003-07-08 Technion Research And Development Foundation Ltd. Distributed shared memory system with variable granularity
US6745299B2 (en) * 2001-11-19 2004-06-01 Hewlett-Packard Development Company, L.P. Method for evaluation of scalable symmetric multiple processor cache coherency protocols and algorithms
US7353339B2 (en) * 2003-12-24 2008-04-01 Intel Corporation Adaptive caching
US7350032B2 (en) * 2004-03-22 2008-03-25 Sun Microsystems, Inc. Cache coherency protocol including generic transient states
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
US7231498B2 (en) 2005-03-02 2007-06-12 Microsoft Corporation Adaptive granularity refinement in detecting potential data races
US8296550B2 (en) * 2005-08-29 2012-10-23 The Invention Science Fund I, Llc Hierarchical register file with operand capture ports
US7467280B2 (en) 2006-07-05 2008-12-16 International Business Machines Corporation Method for reconfiguring cache memory based on at least analysis of heat generated during runtime, at least by associating an access bit with a cache line and associating a granularity bit with a cache line in level-2 cache
US8032711B2 (en) 2006-12-22 2011-10-04 Intel Corporation Prefetching from dynamic random access memory to a static random access memory
WO2008150927A2 (en) 2007-05-30 2008-12-11 Schooner Information Technology System including a fine-grained memory and a less-fine-grained memory
US7822911B2 (en) 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
CN101236530B (zh) * 2008-01-30 2010-09-01 清华大学 高速缓存替换策略的动态选择方法
TWI460588B (zh) * 2009-07-17 2014-11-11 Toshiba Kk Memory management device and memory information processing device
US8151012B2 (en) 2009-09-25 2012-04-03 Intel Corporation Virtual row buffers for use with random access memory
WO2011085934A1 (en) 2010-01-18 2011-07-21 Xelerated Ab A packet buffer comprising a data section and a data description section
WO2011106458A1 (en) * 2010-02-24 2011-09-01 Marvell World Trade Ltd. Caching based on spatial distribution of accesses to data storage devices
JP5404483B2 (ja) 2010-03-17 2014-01-29 株式会社東芝 メモリシステム
US8291172B2 (en) 2010-04-27 2012-10-16 Via Technologies, Inc. Multi-modal data prefetcher
US20120317376A1 (en) * 2011-06-10 2012-12-13 Advanced Micro Devices, Inc. Row buffer register file
US8954672B2 (en) * 2012-03-12 2015-02-10 Advanced Micro Devices, Inc. System and method for cache organization in row-based memories
US9146882B2 (en) * 2013-02-04 2015-09-29 International Business Machines Corporation Securing the contents of a memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170113719A (ko) * 2016-03-24 2017-10-13 에스케이하이닉스 주식회사 반도체 시스템

Also Published As

Publication number Publication date
CN105027211A (zh) 2015-11-04
WO2014120215A1 (en) 2014-08-07
TW201439897A (zh) 2014-10-16
CN105027211B (zh) 2018-09-21
US20150371689A1 (en) 2015-12-24
TWI536258B (zh) 2016-06-01
US9620181B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
US9620181B2 (en) Adaptive granularity row-buffer cache
US10740261B2 (en) System and method for early data pipeline lookup in large cache design
US10133678B2 (en) Method and apparatus for memory management
US11281585B2 (en) Forward caching memory systems and methods
US11461011B2 (en) Extended line width memory-side cache systems and methods
US20170091093A1 (en) Method and apparatus for unneeded block prediction in a computing system having a last level cache and a multi-level system memory
US11281589B2 (en) Asynchronous forward caching memory systems and methods
US20170091099A1 (en) Memory controller for multi-level system memory having sectored cache
US10108549B2 (en) Method and apparatus for pre-fetching data in a system having a multi-level system memory
CN114175001B (zh) 存储器感知预取和高速缓存旁路系统和方法
US10705762B2 (en) Forward caching application programming interface systems and methods
US20060143400A1 (en) Replacement in non-uniform access cache structure
US7293141B1 (en) Cache word of interest latency organization
CN113826083A (zh) 处理器侧事务上下文存储器接口系统和方法
US6493814B2 (en) Reducing resource collisions associated with memory units in a multi-level hierarchy memory system
Wang et al. Building a low latency, highly associative dram cache with the buffered way predictor
CN108509151B (zh) 一种基于dram内存控制器的行缓存方法和系统
CN111949567A (zh) 存储器侧事务背景存储器接口系统及方法
TOPO Implementation of Single Core L1 L2 Cache with the comparison of Read Policies using HDL

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right