[go: up one dir, main page]

KR101025398B1 - Dram에서 sram으로의 프리페칭 - Google Patents

Dram에서 sram으로의 프리페칭 Download PDF

Info

Publication number
KR101025398B1
KR101025398B1 KR1020070135086A KR20070135086A KR101025398B1 KR 101025398 B1 KR101025398 B1 KR 101025398B1 KR 1020070135086 A KR1020070135086 A KR 1020070135086A KR 20070135086 A KR20070135086 A KR 20070135086A KR 101025398 B1 KR101025398 B1 KR 101025398B1
Authority
KR
South Korea
Prior art keywords
cache
prefetch
logic
dram
die
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020070135086A
Other languages
English (en)
Other versions
KR20080059077A (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 KR20080059077A publication Critical patent/KR20080059077A/ko
Application granted granted Critical
Publication of KR101025398B1 publication Critical patent/KR101025398B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0215Addressing or allocation; Relocation with look ahead addressing means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명의 실시예들은 일반적으로 DRAM(dynamic random access memory)에서 SRAM(static random access memory)으로의 프리페칭을 위한 시스템들, 방법들, 및 장치들에 대한 것이다. 소정의 실시예들에서, 프리페치 로직이 로드 명령어와 연관된 프리페치 힌트를 수신한다. 프리페치 로직은, 적어도 부분적으로, 프리페치 힌트에 기초하여, 두 개 이상의 캐시 라인을 DRAM의 열린 페이지로부터 SRAM으로 전송할 수 있다.
프리페칭, 프리페치 힌트, 프리페치 로직, 캐시 라인, DRAM, SRAM

Description

DRAM에서 SRAM으로의 프리페칭{PREFETCHING FROM A DYNAMIC RANDOM ACCESS MEMORY TO A STATIC RANDOM ACCESS MEMORY}
본 발명의 실시예들은 일반적으로 집적 회로 분야에 관련되고, 보다 상세하게는 DRAM(dynamic random access memory)에서 SRAM(static random access memory)으로의 프리페칭을 위한 시스템들, 방법들, 및 장치들에 관련된다.
산업 칩 설계는 CMP(chip multi-processor)들을 지향하고 있다. 고주파수 단일 프로세서(uniprocessor)들에 비해, CMP는 개선된 성능 및 감소된 전력 소비를 제공한다. CMP들은 상대적으로 간단한 코어들을 사용하고 성능을 개선하기 위해 TLP(thread level parallelism)에 의존한다. CMP들 상에서 동작하는 어플리케이션들은 코어 카운트(core count)를 효과적으로 이용하기 위해 TLP를 증가시켜야 한다.
그러나 TLP를 증가시키는 것은, 클럭당 미해결 메모리 요청의 수를 증가시킴으로써, MLP(memory level parallelism)를 증가시키기도 한다. 게다가, 멀티 스레드 어플리케이션들의 데이터 워킹 세트는 스레드 카운트와 함께 커질 수 있다. 몇몇 스레드로부터의 액세스들이 인터리브될(interleaved) 것이기 때문에, 결국, TLP 를 증가시키는 것은 공유 캐시들에 대한 액세스들의 랜덤성(randomness)을 증가시킬 수 있다. 그리하여, 메모리 대역폭 및 캐시 용량은 증가된 MLP 및 데이터 풋프린트(footprint)를 지원하기 위해 코어 카운트와 함께 스케일링(scale)되어야 한다.
최근, 3D 다이 스태킹이 마이크로프로세서 다이 상의 고밀도 메모리 다이(DRAM과 같은)의 스태킹을 위한 실행 가능한 옵션으로서 제안되어 왔다. 스태킹은 이종의(disparate) Si 기술들이 단일 프로세스 흐름으로의 기술 융합(technology integration)에 대한 걱정없이 다이 스택에서 결합될 수 있게 한다. 스태킹은 실리콘 관통 비아들(through-silicon-vias)을 사용하여 다이 사이에서 매우 높은 대역폭 인터페이스를 제공하기도 한다. 그리하여, CMP들 상의 (DRAM과 같은) 메모리의 3D 스태킹은 CMP 스케일링에 대한 메모리 계층 구조적 장애물들을 효과적으로 처리할 수 있다.
통상적으로 DRAM들은 액세스 대기 시간(access latency)을 감소시키기 위해 다른 로우(row)가 요구될 때까지 열린 로우를 활성화된 상태로 유지한다. 이 기술은 열린 페이지 정책(open-page policy)이라고 불리고 만약 DRAM에 대한 이어지는 액세스들이 동일한 열린 페이지에 대한 것일 경우에 최상으로 작동한다. 아니면, 뱅크(bank)는 닫히고 프리차지 패널티(precharge penalty)들이 뱅크 액세스의 전체 대기 시간을 현저히 증가시킨다. 전통적으로, DRAM 설계에서 뱅크당 열린 페이지는 오직 하나만 존재한다.
경험에 따르면 DRAM으로의 액세스들의 집약성(locality)은 DRAM을 액세스하는 스레드의 수가 증가함에 따라서 더 랜덤하게 될 가능성이 높다. DRAM은 제한된 수(예를 들면, 16개)의 뱅크를 가지기 때문에, 페이지 열기(open)의 수는 스레드의 수가 증가함에 따라 극적으로 증가할 수 있다. 그리하여, 뱅크 스래싱(thrashing)의 결과들은 시스템의 성능에 현저히 영향을 줄 수 있다.
본 발명의 실시예들은 일반적으로 DRAM에서 SRAM으로의 프리페칭을 위한 시스템들, 방법들, 및 장치들에 대한 것이다. 소정의 실시예들에서, 두 개 이상의 캐시 라인이 DRAM의 열린 페이지에서 SRAM으로 전송된다. 전송은 다이-다이 비아(die-to-die via)와 같은 고밀도 상호접속을 통해서 일어날 수 있다. 아래에서 더 설명되는 바와 같이, 본 발명의 실시예들은 CMP 스케일링에 적합한 메모리 자원들을 효과적으로 제공할 수 있다.
본 발명에 따른 집적 회로는, 프리페치 힌트(prefetch hint)를 제공하는 코어 로직; 및 코어 로직에 연결된 프리페치 로직을 포함하고, 프리페치 로직은, 적어도 부분적으로, 프리페치 힌트에 기초하여 두 개 이상의 캐시 라인을 DRAM의 열린 페이지에서 SRAM(static random access memory)으로 전송하는 집적 회로이다.
또한, 본 발명에 따른 방법은, 로드 명령어와 연관된 프리페치 힌트를 수신하는 단계; 및 적어도 부분적으로, 프리페치 힌트에 기초하여 두 개 이상의 캐시 라인을 DRAM의 열린 페이지에서 SRAM으로 전송하는 단계를 포함하는 방법이다.
또한, 본 발명에 따른 시스템은, DRAM을 포함하는 제1 다이; 제2 다이; 및 제1 다이와 제2 다이 사이에 연결된 상호접속을 포함하고, 제2 다이는, 프리페치 힌트를 제공하는 코어 로직, 및 코어 로직에 연결된 프리페치 로직 - 상기 프리페치 로직은, 적어도 부분적으로, 프리페치 힌트에 기초하여 두 개 이상의 캐시 라인을 DRAM의 열린 페이지에서 SRAM으로 전송함 - 을 포함하는 시스템이다.
본 발명의 실시예들은 CMP 스케일링에 적합한 메모리 자원들을 효과적으로 제공할 수 있다.
본 발명의 실시예들은 제한이 아닌 예시로써 설명되고, 첨부 도면에서 유사한 참조 번호들은 유사한 요소들을 가리킨다.
도 1은 본 발명의 일 실시예에 따라 구현되는 컴퓨팅 시스템의 선택된 양상들을 도시하는 블록도이다. 컴퓨팅 시스템(100)은 상호접속(106)을 통하여 DRAM(104)과 연결된 코어(들)(102)를 포함한다. 코어(102)는 범용 프로세싱 코어, 그래픽 코어 등을 포함하는 집적 회로의 거의 임의의 코어 로직일 수 있다. 소정의 실시예에서, 코어(102)는 다이 상의 복수의 코어 중 하나(예를 들면, CMP)이다.
코어(102)는 명령어 프로세싱 로직(108), Ln 캐시(예를 들면, L2 캐시)(110) 및 PF 로직(prefetch logic)(112)을 포함한다. 명령어 프로세싱 로직(108)은 명령어 포인터(instruction pointer), 디코딩 로직(decode logic), 레지스터들 및 L1 캐시와 같은 명령어들을 프로세스하기 위한 하나 이상의 요소들을 포함할 수 있다. 소정의 실시예에서 명령어 로직(108)은 프리페치 힌트(prefetch hint)(예를 들면, 프리페치 힌트(114))를 생성하기 위한 로직을 포함할 수도 있다. 프리페치 힌트는 넓게는 두 개 이상의 로드 명령어가 동일한 캐시 페이지로부터 데이터를 요청할 가능성이 있다는 것을 지시(indication)를 나타낸다. 소정의 실시예들에서, 프리페치 힌트는 스트라이드(stride) 검출 매커니즘에 기초한 IP(instruction pointer) 이력에 의해 생성된 신뢰값(confidence value)일 수 있다. 대안적인 실시예에서, 상이한 매커니즘이 프리페치 힌트를 생성하는 데 사용될 수 있다.
Ln 캐시(110) 및 PF 로직(112)은 상호접속(116)(예를 들면, L2 버스)을 통해 명령어 프로세싱 로직(108)과 연결된다. 소정의 실시예에서, 만약 L1 캐시 부적중(miss)이 있다면, 그 부적중 및 프리페치 힌트(114)는 (직접적으로 또는 메모리 계층 구조의 하나 이상의 레벨을 통해) Ln 캐시(110) 및/또는 프리페치 로직(112)으로 전달된다. 프리페치 로직(112)은, 적어도 부분적으로, 프리페치 힌트(114)에 기초하여 두 개 이상의 캐시 라인을 DRAM(104)의 열린 페이지로부터 프리페칭할지의 여부를 결정할 수 있다. 예를 들면, 만약 프리페치 힌트(114)가 다수의 LOAD 명령어가 스트림 거동(streaming behavior)을 나타낼 가능성이 높다고 지시하면, PF 로직(112)은 데이터의 열린 페이지 전체를 DRAM(104)에서 Ln 캐시(110)로 전송할 수 있다.
소정의 실시예들에서, PF 로직(112)은 만약 예를 들어, 상호접속(106)의 사용 레벨이 너무 높으면 프리페칭을 조절하기(throttle) 위한 로직을 포함할 수 있 다. 그러한 실시예들에서, PF 로직(112)은 프리페치 힌트(114)에 의해 제공된 신뢰도(level of confidence)(예를 들면, 고, 중, 저)를 상호접속 사용 레벨의 지시와 비교하고 DRAM(104)으로부터 데이터를 프리페치할지의 여부를 결정할 수 있다. "데이터"라는 용어는 본 명세서에서 사용될 때, 명령어들을 포함한, 코어(102)가 인식할 수 있는 임의의 형태의 정보의 임의의 유형을 넓게 가리킨다.
DRAM(104)은 상용(commodity) DRAM, RLDRAM(reduced latency DRAM), MRAM(magnetic random access memory) 등을 포함하는 거의 임의의 형태의 DRAM일 수 있다. 게다가, DRAM(104)은 거의 임의의 페이지 크기를 갖는 거의 임의의 개수의 뱅크를 가질 수 있다. 소정의 실시예들에서, DRAM(104)는 16 개의 뱅크를 가지고 각 페이지는 4 KB(kilobyte)이다.
상호접속(106)은 임의의 넓은 범위의 다이-다이 및/또는 칩-칩(chip-to-chip) 상호접속들일 수 있다. 소정의 실시예들에서, 코어(102) 및 DRAM(104)은 수직으로 스택되고(stacked) 상호접속(106)은 고밀도의 다이-다이 비아이다. 대안적인 실시예들에서, 코어(102) 및 DRAM(104)는 멀티칩 모듈에 함께 패키징되고 상호접속(106)은 모듈의 (적어도) 일부의 칩들 사이의 고밀도 상호접속을 제공한다. 또다른 대안적인 실시예에서, 코어(102) 및 DRAM(104)은 별개의 패키지에 있고 상호접속(106)은 패키지들을 접속할 수 있다.
도 2는 본 발명의 일 실시예에 따른 블록 전송을 도시하는 개념도이다. DRAM(202)은 하나 이상의 캐시 페이지(204)로 구성된다. 소정의 실시예들에서, DRAM(202)은 임의의 주어진 시간에 하나의 열린 캐시 페이지를 갖는다(장치가 동작 중이라고 했을 때). 예를 들면, 도시된 실시예에서, 캐시 페이지(206)가 열려 있다. 각 캐시 페이지는 각각이 2 바이트 이상의 데이터를 갖는 두 개 이상의 캐시 라인(208)으로 이루어진다. 소정의 실시예들에서, 프리페치 로직(예를 들면, 도 1에서 도시된 프리페치 로직(112))은 두 개 이상의 캐시 라인의 블록을 열린 DRAM 캐시 페이지(206)에서 SRAM(210)으로 전송한다. 캐시 라인들의 블록 전송에 대한 결정은, 적어도 부분적으로, 프리페치 힌트(예를 들면, 도 1에서 도시된 프리페치 힌트(114))에 기초할 수 있다. DRAM에서 SRAM으로의 데이터의 블록 전송들에 대해 도 3 내지 도 7과 관련하여 아래에서 더 설명된다.
도 3은 본 발명의 일 실시예에 따라 구현된 컴퓨팅 시스템의 선택된 양상들을 도시하는 고레벨 블록도이다. 시스템(300)은 복수의 코어(302)를 포함한다. 코어들(302)은 범용 프로세싱 코어들 및 그래픽 코어들을 포함하는 광범위하고 다양한 코어들 중 임의의 것일 수 있다. 소정의 실시예들에서, 각 코어는 전용(private) L1 캐시(304) 및 전용 L2 캐시(306)를 갖는다. 게다가, 각 코어(또는 코어들의 서브세트)는 PF 로직(308)을 포함할 수 있다.
소정의 실시예들에서, DRAM L3 캐시(310)는 코어들(302)을 포함하는 다이와 수직으로 스택되는 다이 상에 있다. 그러한 실시예들에서, L3 버스(314)는 고밀도 다이-다이 상호접속일 수 있다. 벌크 DRAM(312)은 시스템 메모리를 제공하고 코어들(302) 및 DRAM L3 캐시(310)과 분리된 다수의 메모리 장치를 포함할 수 있다.
소정의 실시예에서, PF 로직(308)은 두 개 이상의 캐시를 DRAM L3 캐시의 열린 페이지로부터 SRAM L2 캐시로 전송한다. 캐시 라인들의 블록을 전송하는 것에 대한 결정은, 코어(302) 상의 명령어 프로세싱 로직(예를 들면, 도 1에 도시된 명령어 프로세싱 로직(102))으로부터 PF 로직(308)에 제공된 프리페치 힌트에, 적어도 부분적으로, 기초할 수 있다. 게다가, 캐시 라인들의 블록을 전송하는 것에 대한 결정은, 버스(314)에 의해 경험된 사용의 레벨에, 적어도 부분적으로, 기초할 수 있다. 소정의 실시예들에서, PF 로직(308)은 메모리의 페이지 전체를 DRAM L3(310)에서 SRAM L2(306)로 전송할 수 있다.
도 4는 L2 캐시가 공유되는 일 실시예를 도시하는 고레벨 블록도이다. 예시된 실시예에서, 각 코어(302)는 전용 L1 캐시를 갖고 코어들은 L2 캐시(402)를 공유한다. 만약 L1 캐시(304) 부적중이 있으면, 그 부적중 및 프리페치 힌트는 L2 캐시(402) 및/또는 PF 로직(404)으로 전달될 수 있다. 소정의 실시예들에서, PF 로직(404)은, 적어도 부분적으로, 프리페치 힌트에 기초하여 두 개 이상의 캐시 라인을 DRAM L3(310)의 열린 페이지로부터 전송할지의 여부를 결정한다. 게다가, 프리페치 로직(404)은 L3 버스(314)의 사용 레벨을 포함하는 다른 요인들에 기초하여 전송 결정을 할 수 있다.
도 5는 프리페치 로직이 캐시 계층 구조 내의 상이한 레벨들에서 사용되는 일 실시예를 도시하는 고레벨 블록도이다. 소정의 실시예들에서, 캐시 부적중(예를 들면, L1 및 L2 캐시 부적중 모두) 및 프리페치 힌트는 DRAM L3 캐시(502) 및/또는 PF 로직(504)으로 전달될 수 있다. PF 로직(504)은, 적어도 부분적으로, 프리페치 힌트(및 아마도 버스 사용 레벨들과 같은 다른 요인들)에 기초하여 두 개 이상의 캐시 라인을 벌크 DRAM(312)의 열린 페이지에서 DRAM L3 캐시(502)로 전송 할 수 있다. 그 후, 프리페치 로직(308)은 두 개 이상의 캐시 라인을 DRAM L3 캐시(502)의 열린 페이지에서 SRAM L2 캐시(306)으로 전송할 수 있다. 예시된 실시예들은 일괄 프리페칭(batch prefetching)의 두 개의 레벨을 보여주지만, 캐시 라인들의 블록의 일괄 전송(batch transfer)은 거의 임의의 수의 캐시 레벨에 걸쳐 거의 임의의 횟수만큼 수행될 수 있다는 것이 이해되어야 한다.
도 6은 본 발명의 일 실시예에 따른 블록 전송의 선택된 양상들을 도시하는 흐름도이다. 프로세스 블록(602)을 참조하면, 프리페치 로직(예를 들면, 도 1에 도시된 프리페치 로직(112))은 LOAD 명령어와 연관된 프리페치 힌트를 수신한다. 소정의 실시예들에서, 프리페치 힌트는 IP 기반 스트라이드 검출 알고리즘(IP-based stride detection algorithm)에 의해 생성된다. 그러한 실시예들에서, 프리페치 힌트는 이어지는 LOAD 명령어들이 단조 증가하는 또는 단조 감소하는 어드레스 스트라이드를 가질 가능성이 얼마나 있는지를 지시할 수 있다. 소정의 실시예들에서, 프리페치 힌트는 이어지는 LOAD 명령어들이 단조 증가하는 어드레스 스트라이드를 갖는지 또는 단조 감소하는 어드레스 스트라이드를 가질지의 여부에 대한 신뢰도(degree of confidence)를 지시하는 다수의 값 중 임의의 것을 가질 수 있다. 예를 들면, 프리페치 힌트는 높은, 중간의 또는 낮은 신뢰를 지시할 수 있다. 대안적으로, 거의 임의의 방법이 신뢰도(level of confidence)를 지시하는 데 사용될 수 있다.
프로세스 블록(604)을 참조하면, PF 로직은 하나 이상의 조건들 또는 요인들에 기초하여 블록 프리페치를 조절할 수 있다. "조절(throttle)"이라는 용어는 전 송 지연, 전송 취소, 전송 사이즈 변경 등을 포함하는 다수의 거동들을 가리킬 수 있다. 전송의 조절을 시작하게 하는 조건들은 전송이 일어날 상호접속의 사용 레벨, 프리페치 힌트, 절전 레벨 등을 포함할 수 있다. 점선으로 지시한 것과 같이, 소정의 실시예들에서 조절 매커니즘은 선택적이다.
프로세스 블록(606)을 참조하면, PF 로직은, 적어도 부분적으로, 프리페치 힌트에 기초하여 두 개 이상의 캐시 라인을 DRAM에서 SRAM으로 전송한다. 예를 들면, 만약 프리페치 힌트가 다수의 LOAD 명령어들이 단조 증가하는 또는 단조 감소하는 어드레스 스트라이드를 가질 가능성이 높다는 것을 지시하면 PF 로직은 요청된 데이터가 캐시에 저장될 가능성을 증가시키기 위해 캐시 라인들의 블록을 캐시로 전송할 수 있다. DRAM은 캐시 계층 구조의 일부 및/또는 벌크 메모리의 요소일 수 있다. 게다가, SRAM은 캐시 계층 구조의 거의 임의의 레벨에 있을 수 있다.
도 7은 본 발명의 일 실시예에 따른 반도체 장치(700)의 단면도를 예시한다. 장치(700)는 패키지(702), 다이(728), 다이(730) 및 다이-다이 비아들(726)을 포함할 수 있다. 하나 이상의 범프(704-1 내지 704-N)(본 명세서에서 집합적으로 "범프들(704)"이라고 불림)는 전원, 접지, 클럭 및/또는 입력/출력(input/output) 신호들을 포함하는 전기 신호들이 패키지(702)와 다이(728) 사이에 전달되게 할 수 있다. 다이(728)는 범프들(704) 및 다이(730) 사이에서 신호들을 전달시키기 위한 하나 이상의 다이 관통 비아들(706)을 포함할 수 있다. 장치(700)는 다이(730) 및/또는 장치(700)에 의해 생성된 열의 방산을 가능케 하는 방열판(heat sink)(708)을 더 포함할 수 있다.
다이들(728 및 730)은 다양한 층을 포함할 수 있다. 예를 들면, 다이(728)은 벌크 실리콘(SI) 층(710), 활성 Si 층(712), 및 금속 스택(714)을 포함할 수 있다. 다이(730)는 금속 스택(720), 활성 Si층(722), 및 벌크 Si 층(724)를 포함할 수 있다. 도 2에 도시된 바와 같이, 비아들(726)은 다이들(728 및 730)과 각각 금속 스택들(714 및 720)을 통하여 통신할 수 있다. 일 실시예에서, 다이(728)는 다이(730)보다 얇을 수 있다. 예를 들면, 다이(728)는 (RAM 장치와 같은) 메모리 장치를 포함할 수 있고, 다이(730)는 하나 이상의 프로세서 코어 및/또는 공유된 또는 전용의 캐시들을 포함할 수 있다.
다이(730)는 하나 이상의 PF 로직(732)의 예를 포함한다. 소정의 실시예에서, PF 로직(732)은 두 개 이상의 캐시 라인을 다이(728)의 DRAM에서 다이(730)의 SRAM으로 전송할 수 있다. 전송은 다이-다이 비아들(726)을 통하여 일어날 수 있다. 소정의 실시예들에서, 다이-다이 비아들(726)의 상대적으로 높은 대역폭은 PF 로직(732)이 다수의 캐시 라인의 블록들을 대기 시간의 현저한 증가 없이 전송할 수 있게 한다.
장치(700)는 예를 들면, 다른 컴포넌트들을 동일한 장치 또는 시스템에 통합하기 위해서, 부가적인 다이들을 포함할 수 있다. 그러한 실시예에서, 다이-다이 및/또는 다이 관통 비아들은 (예를 들면, 비아들(726 및 706)에 대해 논의된 것과 같은) 다양한 다이들 사이에서 신호들을 전달하는 데 사용될 수 있다.
본 발명의 실시예들의 요소들은 머신 실행가능한 명령어(machine-executable instruction)들을 저장하기 위한 머신-판독가능한 매체(machine readable medium) 로서 제공될 수도 있다. 머신-판독가능한 매체는 플래시 메모리, 광 디스크들, CD-ROM(compact disks-read only memory), DVD(digital versatile/video disks) ROM, RAM(random access memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 자기 또는 광학 카드들, 전파 매체 또는 전자적인 명령어들을 저장하기에 적합한 다른 유형의 머신-판독가능 매체를 포함할 수 있지만, 거기에 한정되지는 않는다. 예를 들면, 본 발명의 실시예들은 반송파 또는 다른 전파 매체에 구현된 데이터 신호들로써 통신 링크(예를 들면, 모뎀 또는 네트워크 접속)를 통하여 원격 컴퓨터(예를 들면, 서버)에서 요청 컴퓨터(예를 들면, 클라이언트)로 전송될 수 있는 컴퓨터 프로그램으로서 다운로드될 수 있다.
본 명세서 전체에 걸친 "하나의 실시예" 또는 "일 실시예"에 대한 언급은 그 실시예와 관련되어 기술된 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다는 것을 이해해야 한다. 그리하여, 본 명세서에서의 다양한 부분들에서의 "일 실시예" 또는 "하나의 실시예" 또는 "대안적인 실시예"에 대한 두 번 이상의 언급은 반드시 모두가 동일한 실시예를 가리키는 것은 아니라는 것이 강조되고 이해되어야 한다. 더욱이, 특정한 특징들, 구조들 또는 특성들은 본 발명의 하나 이상의 실시예에서 적절하게 결합될 수 있다.
유사하게, 본 발명의 실시예들에 대한 전술한 설명에서 하나 이상의 다양한 발명의 양상을 이해하는 것을 돕도록 명세서를 간결하게 하기 위해 때때로 다양한 특징들이 하나의 실시예, 도면, 또는 그에 대한 설명에서 함께 그룹화(grouped)된 다는 것이 이해되어야 한다. 그러나 이러한 명세서의 방법은 본 발명이 각 청구범위에서 명백히 열거된 것보다 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 해석되어서는 안된다. 오히려, 이하의 청구범위가 반영하는 것과 같이, 발명의 양상들은 전술한 개시된 하나의 실시예의 모든 특징보다 적은 수의 특징에 있다. 그리하여, 상세한 설명 다음의 청구범위들은 그에 의해 본 상세한 설명에 명백히 포함된다.
도 1은 본 발명의 일 실시예에 따라 구현된 컴퓨팅 시스템의 선택된 양상들을 도시하는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 블록 전송을 도시하는 개념도이다.
도 3은 본 발명의 일 실시예에 따라 구현된 컴퓨팅 시스템의 선택된 양상들을 도시하는 고레벨 블록도이다.
도 4는 L2 캐시가 공유되는 일 실시예를 도시하는 고레벨 블록도이다.
도 5는 프리페치 로직이 캐시 계층 구조 내의 상이한 레벨들에서 사용되는 일 실시예를 도시하는 고레벨 블록도이다.
도 6은 본 발명의 일 실시예에 따른 블록 전송의 선택된 양상들을 도시하는 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 구현된 반도체 장치의 단면도이다.
<도면의 주요 부분에 대한 부호의 설명>
110: Ln 캐시
112; PF
106: 상호접속
104: DRAM
206: 열린 캐시 페이지

Claims (27)

  1. 프로세서 코어를 포함하는 집적 회로로서,
    상기 프로세서 코어는,
    L1 캐시;
    제1 로드 명령어와 관련된 프리페치 힌트(prefetch hint)를 생성하기 위한 명령어 프로세싱 로직 - 상기 명령어 프로세싱 로직은 명령어 포인터 히스토리(instruction pointer history)의 검출에 응답하여 상기 프리페치 힌트를 생성하고, 상기 프리페치 힌트는 상기 제1 로드 명령어 다음의 두 개 이상의 로드 명령어가 동일한 캐시 페이지로부터 데이터를 요청할 가능성인 신뢰도(degree of confidence)를 나타내며, 상기 명령어 프로세싱 로직은 상기 L1 캐시의 부적중(miss)에 응답하여 상기 프리페치 힌트를 더 송신함 -; 및
    상기 명령어 프로세싱 로직에 연결된 프리페치 로직을 포함하고,
    상기 프리페치 로직은, 적어도 부분적으로, 상기 프리페치 힌트의 상기 송신에 기초하여 두 개 이상의 캐시 라인을 DRAM(dynamic random access memory)의 열린 페이지에서 SRAM(static random access memory)으로 전송하고, 상기 DRAM은 하나의 레벨의 캐시(a level of cache)를 제공하고 상기 SRAM은 그 다음의 상위 레벨의 캐시(next higher level of cache)를 제공하는 집적 회로.
  2. 제1항에 있어서,
    상기 두 개 이상의 캐시 라인은 메모리의 페이지를 포함하는 집적 회로.
  3. 제1항에 있어서,
    상기 프리페치 로직은 고밀도 인터페이스를 통하여 상기 두 개 이상의 캐시 라인을 전송하기 위한 것인 집적 회로.
  4. 제3항에 있어서,
    상기 고밀도 인터페이스는 다이-다이 비아(die-to-die via)인 집적 회로.
  5. 제3항에 있어서,
    상기 고밀도 인터페이스는 실리콘 관통 비아(through-silicon-via)인 집적 회로.
  6. 제1항에 있어서,
    상기 DRAM은 벌크 메모리를 포함하는 집적 회로.
  7. 삭제
  8. 제1항에 있어서,
    상기 하나의 레벨의 캐시는 L3 캐시이고 상기 그 다음의 상위 레벨의 캐시는 L2 캐시인 집적 회로.
  9. 삭제
  10. 제1항에 있어서,
    조절(throttling) 로직을 더 포함하고,
    상기 조절 로직은, 적어도 부분적으로, 상호접속 사용 레벨(interconnect usage level) 및 상기 프리페치 힌트에 기초하여 상기 두 개 이상의 캐시 라인의 전송을 조절할 수 있는 집적 회로.
  11. 제8항에 있어서,
    상기 프로세서 코어는 상기 집적 회로의 프로세싱 유닛의 복수의 프로세싱 코어 중 하나이고, 각각의 상기 복수의 프로세싱 코어는 각자의 프리페치 로직을 포함하는 집적 회로.
  12. 제8항에 있어서,
    상기 프로세서 코어는 그래픽 코어를 포함하는 집적 회로.
  13. 프로세서 코어의 명령어 프로세싱 로직으로, 제1 로드 명령어와 관련된 프리페치 힌트를 생성하는 단계 - 상기 프로세서 코어는 L1 캐시를 포함하고, 상기 생성은 명령어 포인터 히스토리의 검출에 대한 응답이며, 상기 프리페치 힌트는 상기 제1 로드 명령어 다음의 두 개 이상의 로드 명령어가 동일한 캐시 페이지로부터 데이터를 요청할 가능성인 신뢰도를 나타냄 -;
    상기 L1 캐시의 캐시 부적중에 응답하여, 상기 명령어 프로세싱 로직이 상기 프리페치 힌트를 송신하는 단계; 및
    상기 프로세서 코어의 프로페치 로직으로, 적어도 부분적으로, 상기 프리페치 힌트의 상기 송신에 기초하여 두 개 이상의 캐시 라인을 DRAM의 열린 페이지에서 SRAM으로 전송하는 단계
    를 포함하는 방법.
  14. 삭제
  15. 제13항에 있어서,
    상기 신뢰도는 세 개 이상의 값들 중 하나인 방법.
  16. 제15항에 있어서,
    상기 세 개 이상의 값들은 고, 중, 저를 포함하는 방법.
  17. 제13항에 있어서,
    적어도 부분적으로, 상호접속 사용 레벨 및 상기 프리페치 힌트에 기초하여 상기 두 개 이상의 캐시 라인의 전송을 조절하는 단계를 더 포함하는 방법.
  18. 제13항에 있어서,
    상기 DRAM의 상기 열린 페이지로부터 상기 두 개 이상의 캐시 라인을 전송하는 단계는:
    상기 DRAM의 상기 열린 페이지로부터 캐시 페이지를 전송하는 단계를 포함하는 방법.
  19. 제13항에 있어서,
    상기 DRAM은 벌크 메모리를 포함하는 방법.
  20. 제13항에 있어서,
    상기 DRAM은 하나의 레벨의 캐시(a level of cache)를 제공하는 방법.
  21. DRAM을 포함하는 제1 다이;
    제2 다이; 및
    상기 제1 다이와 상기 제2 다이 사이에 연결된 상호접속
    을 포함하고,
    상기 제2 다이는 프로세서 코어를 포함하고,
    상기 프로세서 코어는,
    L1 캐시;
    제1 로드 명령어와 관련된 프리페치 힌트를 생성하기 위한 명령어 프로세싱 로직 - 상기 명령어 프로세싱 로직은 명령어 포인터 히스토리의 검출에 응답하여 상기 프리페치 힌트를 생성하고, 상기 프리페치 힌트는 상기 제1 로드 명령어 다음의 두 개 이상의 로드 명령어가 동일한 캐시 페이지로부터 데이터를 요청할 가능성인 신뢰도를 나타내며, 상기 명령어 프로세싱 로직은 상기 L1 캐시의 부적중에 응답하여 상기 프리페치 힌트를 더 송신함 -; 및
    상기 명령어 프로세싱 로직에 연결된 프리페치 로직을 가지고,
    상기 프리페치 로직은, 적어도 부분적으로, 상기 프리페치 힌트의 상기 송신에 기초하여 두 개 이상의 캐시 라인을 DRAM의 열린 페이지에서 SRAM으로 전송하고, 상기 DRAM은 하나의 레벨의 캐시(a level of cache)를 제공하고 상기 SRAM은 그 다음의 상위 레벨의 캐시(next higher level of cache)를 제공하는 시스템.
  22. 제21항에 있어서,
    상기 두 개 이상의 캐시 라인은 메모리의 페이지를 포함하는 시스템.
  23. 제21항에 있어서,
    상기 상호접속은 다이-다이 비아인 시스템.
  24. 삭제
  25. 삭제
  26. 제21항에 있어서,
    상기 프로세서 코어는 상기 시스템의 프로세싱 유닛의 복수의 프로세싱 코어 중 하나이고, 각각의 상기 복수의 프로세싱 코어는 각자의 프리페치 로직을 포함하는 시스템.
  27. 제21항에 있어서,
    상기 프로세서 코어는 그래픽 코어를 포함하는 시스템.
KR1020070135086A 2006-12-22 2007-12-21 Dram에서 sram으로의 프리페칭 Expired - Fee Related KR101025398B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/644,358 2006-12-22
US11/644,358 US8032711B2 (en) 2006-12-22 2006-12-22 Prefetching from dynamic random access memory to a static random access memory

Publications (2)

Publication Number Publication Date
KR20080059077A KR20080059077A (ko) 2008-06-26
KR101025398B1 true KR101025398B1 (ko) 2011-03-28

Family

ID=39048406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070135086A Expired - Fee Related KR101025398B1 (ko) 2006-12-22 2007-12-21 Dram에서 sram으로의 프리페칭

Country Status (9)

Country Link
US (1) US8032711B2 (ko)
JP (1) JP4658112B2 (ko)
KR (1) KR101025398B1 (ko)
CN (1) CN101241475B (ko)
DE (1) DE102007059784A1 (ko)
FR (1) FR2910653B1 (ko)
GB (1) GB2445262B (ko)
SG (1) SG144054A1 (ko)
TW (1) TWI379312B (ko)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7692946B2 (en) 2007-06-29 2010-04-06 Intel Corporation Memory array on more than one die
KR101462604B1 (ko) * 2008-06-23 2014-11-20 삼성전자주식회사 반도체 장치 및 멀티-칩 패키지
US20100140750A1 (en) * 2008-12-10 2010-06-10 Qualcomm Incorporated Parallel Plane Memory and Processor Coupling in a 3-D Micro-Architectural System
US20100200957A1 (en) * 2009-02-06 2010-08-12 Qualcomm Incorporated Scribe-Line Through Silicon Vias
US8364901B2 (en) * 2009-02-13 2013-01-29 Micron Technology, Inc. Memory prefetch systems and methods
US8234450B2 (en) * 2009-07-10 2012-07-31 Via Technologies, Inc. Efficient data prefetching in the presence of load hits
US8335892B1 (en) * 2009-09-28 2012-12-18 Nvidia Corporation Cache arbitration between multiple clients
US8443151B2 (en) * 2009-11-09 2013-05-14 Intel Corporation Prefetch optimization in shared resource multi-core systems
CN101777027B (zh) * 2010-01-21 2012-06-06 龙芯中科技术有限公司 基于动静态混合调度策略的访存操作管理装置及其方法
US9092358B2 (en) * 2011-03-03 2015-07-28 Qualcomm Incorporated Memory management unit with pre-filling capability
WO2012127628A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
WO2012172694A1 (ja) * 2011-06-17 2012-12-20 富士通株式会社 演算処理装置、情報処理装置および演算処理装置の制御方法
US8913443B2 (en) 2011-09-19 2014-12-16 Conversant Intellectual Property Management Inc. Voltage regulation for 3D packages and method of manufacturing same
US9431064B2 (en) 2012-11-02 2016-08-30 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration
US9053039B2 (en) * 2012-12-21 2015-06-09 Advanced Micro Devices, Inc. Installation cache
US9620181B2 (en) 2013-01-31 2017-04-11 Hewlett Packard Enterprise Development Lp Adaptive granularity row-buffer cache
US9524195B2 (en) 2014-02-27 2016-12-20 International Business Machines Corporation Adaptive process for data sharing with selection of lock elision and locking
US9442775B2 (en) 2014-02-27 2016-09-13 International Business Machines Corporation Salvaging hardware transactions with instructions to transfer transaction execution control
US9411729B2 (en) 2014-02-27 2016-08-09 International Business Machines Corporation Salvaging lock elision transactions
US9361041B2 (en) 2014-02-27 2016-06-07 International Business Machines Corporation Hint instruction for managing transactional aborts in transactional memory computing environments
US9465673B2 (en) 2014-02-27 2016-10-11 International Business Machines Corporation Deferral instruction for managing transactional aborts in transactional memory computing environments to complete transaction by deferring disruptive events handling
US9424072B2 (en) 2014-02-27 2016-08-23 International Business Machines Corporation Alerting hardware transactions that are about to run out of space
US9442853B2 (en) 2014-02-27 2016-09-13 International Business Machines Corporation Salvaging lock elision transactions with instructions to change execution type
US9336097B2 (en) 2014-02-27 2016-05-10 International Business Machines Corporation Salvaging hardware transactions
US9471371B2 (en) 2014-02-27 2016-10-18 International Business Machines Corporation Dynamic prediction of concurrent hardware transactions resource requirements and allocation
US9645879B2 (en) 2014-02-27 2017-05-09 International Business Machines Corporation Salvaging hardware transactions with instructions
US9430273B2 (en) 2014-02-27 2016-08-30 International Business Machines Corporation Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration
US9575890B2 (en) 2014-02-27 2017-02-21 International Business Machines Corporation Supporting atomic accumulation with an addressable accumulator
US9311178B2 (en) 2014-02-27 2016-04-12 International Business Machines Corporation Salvaging hardware transactions with instructions
US9262206B2 (en) 2014-02-27 2016-02-16 International Business Machines Corporation Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments
US9329946B2 (en) 2014-02-27 2016-05-03 International Business Machines Corporation Salvaging hardware transactions
US20150242216A1 (en) 2014-02-27 2015-08-27 International Business Machines Corporation Committing hardware transactions that are about to run out of resource
US9524187B2 (en) 2014-03-02 2016-12-20 International Business Machines Corporation Executing instruction with threshold indicating nearing of completion of transaction
CN104811495B (zh) * 2015-04-27 2018-06-08 北京交通大学 一种用于智慧协同网络的网络组件内容存储方法及模块
US9971694B1 (en) * 2015-06-24 2018-05-15 Apple Inc. Prefetch circuit for a processor with pointer optimization
US9904624B1 (en) 2016-04-07 2018-02-27 Apple Inc. Prefetch throttling in a multi-core system
US10180905B1 (en) 2016-04-07 2019-01-15 Apple Inc. Unified prefetch circuit for multi-level caches
US10672663B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D chip sharing power circuit
US10580735B2 (en) 2016-10-07 2020-03-03 Xcelsis Corporation Stacked IC structure with system level wiring on multiple sides of the IC die
US10672744B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D compute circuit with high density Z-axis interconnects
US10600780B2 (en) 2016-10-07 2020-03-24 Xcelsis Corporation 3D chip sharing data bus circuit
KR20240036154A (ko) 2016-10-07 2024-03-19 엑셀시스 코포레이션 직접-접합된 네이티브 상호접속부 및 능동 베이스 다이
US10580757B2 (en) 2016-10-07 2020-03-03 Xcelsis Corporation Face-to-face mounted IC dies with orthogonal top interconnect layers
US10672745B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D processor
US10600691B2 (en) 2016-10-07 2020-03-24 Xcelsis Corporation 3D chip sharing power interconnect layer
US10593667B2 (en) 2016-10-07 2020-03-17 Xcelsis Corporation 3D chip with shielded clock lines
US10600735B2 (en) 2016-10-07 2020-03-24 Xcelsis Corporation 3D chip sharing data bus
US10719762B2 (en) 2017-08-03 2020-07-21 Xcelsis Corporation Three dimensional chip structure implementing machine trained network
US10672743B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D Compute circuit with high density z-axis interconnects
US10586786B2 (en) 2016-10-07 2020-03-10 Xcelsis Corporation 3D chip sharing clock interconnect layer
US10331567B1 (en) 2017-02-17 2019-06-25 Apple Inc. Prefetch circuit with global quality factor to reduce aggressiveness in low power modes
WO2019089816A2 (en) 2017-10-31 2019-05-09 Micron Technology, Inc. System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network
KR102353859B1 (ko) 2017-11-01 2022-01-19 삼성전자주식회사 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US11294810B2 (en) 2017-12-12 2022-04-05 Advanced Micro Devices, Inc. Memory request throttling to constrain memory bandwidth utilization
US10445241B2 (en) * 2018-03-06 2019-10-15 Arm Limited Prefetching using offset data to access a pointer within a current data element for use in prefetching a subsequent data element
US11126587B2 (en) 2018-05-07 2021-09-21 Micron Technology, Inc. Event messaging in a system having a self-scheduling processor and a hybrid threading fabric
US11132233B2 (en) 2018-05-07 2021-09-28 Micron Technology, Inc. Thread priority management in a multi-threaded, self-scheduling processor
US11157286B2 (en) 2018-05-07 2021-10-26 Micron Technology, Inc. Non-cached loads and stores in a system having a multi-threaded, self-scheduling processor
US11119972B2 (en) 2018-05-07 2021-09-14 Micron Technology, Inc. Multi-threaded, self-scheduling processor
US11074078B2 (en) 2018-05-07 2021-07-27 Micron Technology, Inc. Adjustment of load access size by a multi-threaded, self-scheduling processor to manage network congestion
US11513839B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Memory request size management in a multi-threaded, self-scheduling processor
US11513840B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor
US11513838B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Thread state monitoring in a system having a multi-threaded, self-scheduling processor
US11068305B2 (en) 2018-05-07 2021-07-20 Micron Technology, Inc. System call management in a user-mode, multi-threaded, self-scheduling processor
US11513837B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Thread commencement and completion using work descriptor packets in a system having a self-scheduling processor and a hybrid threading fabric
US11119782B2 (en) 2018-05-07 2021-09-14 Micron Technology, Inc. Thread commencement using a work descriptor packet in a self-scheduling processor
JP7261037B2 (ja) * 2019-02-21 2023-04-19 株式会社日立製作所 データ処理装置、ストレージ装置およびプリフェッチ方法
KR102601225B1 (ko) * 2019-04-15 2023-11-10 양쯔 메모리 테크놀로지스 씨오., 엘티디. 복수의 기능 칩이 있는 3차원 nand 메모리 디바이스의 집적화
CN110731012B (zh) 2019-04-15 2021-01-29 长江存储科技有限责任公司 具有处理器和异构存储器的一体化半导体器件及其形成方法
KR102639431B1 (ko) 2019-04-15 2024-02-22 양쯔 메모리 테크놀로지스 씨오., 엘티디. 프로세서 및 이종 메모리를 갖는 통합 반도체 디바이스 및 이를 형성하는 방법
KR102824680B1 (ko) 2019-04-15 2025-06-24 양쯔 메모리 테크놀로지스 씨오., 엘티디. 프로세서 및 동적 랜덤 액세스 메모리를 갖는 본디드 반도체 장치 및 이를 형성하는 방법
KR20210114016A (ko) 2019-04-30 2021-09-17 양쯔 메모리 테크놀로지스 씨오., 엘티디. 프로세서 및 낸드 플래시 메모리를 갖는 접합된 반도체 소자 및 이를 형성하는 방법
US11321248B2 (en) * 2019-05-24 2022-05-03 Texas Instruments Incorporated Multiple-requestor memory access pipeline and arbiter
US11599299B2 (en) 2019-11-19 2023-03-07 Invensas Llc 3D memory circuit
JP2024014123A (ja) 2022-07-21 2024-02-01 富士通株式会社 演算処理装置及び演算処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182513A1 (en) 2002-03-22 2003-09-25 Dodd James M. Memory system with burst length shorter than prefetch length
US20030229770A1 (en) 2002-06-07 2003-12-11 Jeddeloh Joseph M. Memory hub with internal cache and/or memory access prediction
WO2006012418A2 (en) 2004-07-21 2006-02-02 Beach Unlimited Llc Distributed storage architecture based on block map caching and vfs stackable file system modules

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02287828A (ja) * 1989-04-28 1990-11-27 Fujitsu Ltd プリフェッチ制御方式
US5659713A (en) 1992-04-24 1997-08-19 Digital Equipment Corporation Memory stream buffer with variable-size prefetch depending on memory interleaving configuration
JPH06150031A (ja) * 1992-10-30 1994-05-31 Nec Corp Cpuモジュール
JP2851777B2 (ja) * 1992-11-13 1999-01-27 松下電器産業株式会社 バス制御方法及び情報処理装置
JPH06274410A (ja) * 1993-03-23 1994-09-30 Toshiba Corp 表示制御システム
JP3174211B2 (ja) * 1994-01-25 2001-06-11 富士通株式会社 バッファストレイジのムーブイン制御方法
US5778436A (en) 1995-03-06 1998-07-07 Duke University Predictive caching system and method based on memory access which previously followed a cache miss
JPH09128325A (ja) * 1995-11-06 1997-05-16 Mitsubishi Electric Corp 階層バス制御方式及びバスブリッジ
JP3519199B2 (ja) * 1996-02-06 2004-04-12 株式会社ソニー・コンピュータエンタテインメント 画像生成装置
JP3610661B2 (ja) * 1996-02-21 2005-01-19 株式会社日立製作所 三次元積層モジュール
JPH10124383A (ja) * 1996-10-22 1998-05-15 Nec Corp メモリアクセス制御方式
US6055622A (en) * 1997-02-03 2000-04-25 Intel Corporation Global stride prefetching apparatus and method for a high-performance processor
US6317810B1 (en) * 1997-06-25 2001-11-13 Sun Microsystems, Inc. Microprocessor having a prefetch cache
JP3092557B2 (ja) 1997-09-16 2000-09-25 日本電気株式会社 半導体記憶装置
US6061073A (en) * 1997-11-12 2000-05-09 Cirrus Logic, Inc. Tracking of graphics polygon data from different clock domains in a graphics processor
NO308149B1 (no) * 1998-06-02 2000-07-31 Thin Film Electronics Asa Skalerbar, integrert databehandlingsinnretning
JP3071752B2 (ja) 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6446167B1 (en) * 1999-11-08 2002-09-03 International Business Machines Corporation Cache prefetching of L2 and L3
US6654837B1 (en) 1999-12-28 2003-11-25 Intel Corporation Dynamic priority external transaction system
JP2002064145A (ja) * 2000-06-09 2002-02-28 Fujitsu Ltd 冗長素子を備える集積回路チップ、マルチプロセッサおよびその製法
US6820173B1 (en) 2001-02-23 2004-11-16 Nvidia Corporation Data prefetcher with predictor capabilities
US6928645B2 (en) 2001-03-30 2005-08-09 Intel Corporation Software-based speculative pre-computation and multithreading
US20020199179A1 (en) 2001-06-21 2002-12-26 Lavery Daniel M. Method and apparatus for compiler-generated triggering of auxiliary codes
US6810466B2 (en) * 2001-10-23 2004-10-26 Ip-First, Llc Microprocessor and method for performing selective prefetch based on bus activity level
US7260704B2 (en) * 2001-11-30 2007-08-21 Intel Corporation Method and apparatus for reinforcing a prefetch chain
US6690604B2 (en) 2001-12-18 2004-02-10 Intel Corporation Register files and caches with digital sub-threshold leakage current calibration
US7234040B2 (en) * 2002-01-24 2007-06-19 University Of Washington Program-directed cache prefetching for media processors
US7162588B2 (en) * 2002-08-23 2007-01-09 Koninklijke Philips Electronics N.V. Processor prefetch to match memory bus protocol characteristics
JP5138869B2 (ja) 2002-11-28 2013-02-06 ルネサスエレクトロニクス株式会社 メモリモジュール及びメモリシステム
US6983356B2 (en) 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
AU2002368524A1 (en) 2002-12-20 2004-07-22 International Business Machines Corporation Three-dimensional device fabrication method
KR100520219B1 (ko) 2003-01-03 2005-10-11 삼성전자주식회사 고주파수 동작에 적합한 메모리 모듈장치
US7421525B2 (en) * 2003-05-13 2008-09-02 Advanced Micro Devices, Inc. System including a host connected to a plurality of memory modules via a serial memory interconnect
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7228387B2 (en) * 2003-06-30 2007-06-05 Intel Corporation Apparatus and method for an adaptive multiple line prefetcher
US7487296B1 (en) * 2004-02-19 2009-02-03 Sun Microsystems, Inc. Multi-stride prefetcher with a recurring prefetch table
US7213082B2 (en) * 2004-03-29 2007-05-01 Micron Technology, Inc. Memory hub and method for providing memory sequencing hints
JP4504134B2 (ja) * 2004-08-16 2010-07-14 富士通株式会社 システム制御装置、投機フェッチ方法および情報処理装置
US7206902B2 (en) * 2004-08-17 2007-04-17 Nvidia Corporation System, apparatus and method for predicting accesses to a memory
US20060112226A1 (en) 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US20070005902A1 (en) 2004-12-07 2007-01-04 Ocz Technology Group, Inc. Integrated sram cache for a memory module and method therefor
US20060179236A1 (en) 2005-01-13 2006-08-10 Hazim Shafi System and method to improve hardware pre-fetching using translation hints
US7099215B1 (en) 2005-02-11 2006-08-29 North Carolina State University Systems, methods and devices for providing variable-latency write operations in memory devices
US7506105B2 (en) * 2005-05-02 2009-03-17 Freescale Semiconductor, Inc. Prefetching using hashed program counter
US7533242B1 (en) * 2005-10-31 2009-05-12 Sun Microsystems, Inc. Prefetch hardware efficiency via prefetch hint instructions
US7707359B2 (en) * 2005-12-09 2010-04-27 Oracle America, Inc. Method and apparatus for selectively prefetching based on resource availability
US7616470B2 (en) * 2006-06-16 2009-11-10 International Business Machines Corporation Method for achieving very high bandwidth between the levels of a cache hierarchy in 3-dimensional structures, and a 3-dimensional structure resulting therefrom
US20080098176A1 (en) * 2006-10-18 2008-04-24 Krishna M V V Anil Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182513A1 (en) 2002-03-22 2003-09-25 Dodd James M. Memory system with burst length shorter than prefetch length
US20030229770A1 (en) 2002-06-07 2003-12-11 Jeddeloh Joseph M. Memory hub with internal cache and/or memory access prediction
WO2006012418A2 (en) 2004-07-21 2006-02-02 Beach Unlimited Llc Distributed storage architecture based on block map caching and vfs stackable file system modules

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Black, B. et al. 'Die Stacking (3D) Microarchitecture.' Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture, 2006.12.13, Pages 469-479.

Also Published As

Publication number Publication date
TWI379312B (en) 2012-12-11
TW200845035A (en) 2008-11-16
GB2445262A (en) 2008-07-02
US20080155196A1 (en) 2008-06-26
CN101241475A (zh) 2008-08-13
FR2910653A1 (fr) 2008-06-27
GB0724812D0 (en) 2008-01-30
DE102007059784A1 (de) 2008-07-17
JP2008159057A (ja) 2008-07-10
KR20080059077A (ko) 2008-06-26
GB2445262B (en) 2009-09-09
US8032711B2 (en) 2011-10-04
JP4658112B2 (ja) 2011-03-23
FR2910653B1 (fr) 2014-02-21
CN101241475B (zh) 2011-09-28
HK1121257A1 (en) 2009-04-17
SG144054A1 (en) 2008-07-29

Similar Documents

Publication Publication Date Title
KR101025398B1 (ko) Dram에서 sram으로의 프리페칭
US20190172538A1 (en) Hybrid memory architectures
US10310976B2 (en) System and method for concurrently checking availability of data in extending memories
US20220138107A1 (en) Cache for storing regions of data
US20070220207A1 (en) Transferring data from stacked memory
Loh 3D-stacked memory architectures for multi-core processors
EP2786255B1 (en) A dram cache with tags and data jointly stored in physical rows
JP7036925B2 (ja) キャッシュ制御を考慮したメモリコントローラ
US20200034318A1 (en) Memory device, processing system, and method of controlling the same
US20200356486A1 (en) Selectively honoring speculative memory prefetch requests based on bandwidth state of a memory access path component(s) in a processor-based system
HK1121257B (en) Prefetching from a dynamic random access memory to a static random access memory
US20230315334A1 (en) Providing fine grain access to package memory
US20230318825A1 (en) Separately storing encryption keys and encrypted data in a hybrid memory
US20120151150A1 (en) Cache Line Fetching and Fetch Ahead Control Using Post Modification Information
Shin et al. Energy-efficient heterogeneous memory system for mobile platforms

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20071221

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20090916

Patent event code: PE09021S01D

E90F Notification of reason for final refusal
PE0902 Notice of grounds for rejection

Comment text: Final Notice of Reason for Refusal

Patent event date: 20100226

Patent event code: PE09021S02D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20101231

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20110321

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20110321

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20140303

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20150227

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20160303

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20160303

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20170302

Start annual number: 7

End annual number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20190101