CN101241475B - 从动态随机存取存储器到静态随机存取存储器的预取 - Google Patents

从动态随机存取存储器到静态随机存取存储器的预取 Download PDF

Info

Publication number
CN101241475B
CN101241475B CN2007103007962A CN200710300796A CN101241475B CN 101241475 B CN101241475 B CN 101241475B CN 2007103007962 A CN2007103007962 A CN 2007103007962A CN 200710300796 A CN200710300796 A CN 200710300796A CN 101241475 B CN101241475 B CN 101241475B
Authority
CN
China
Prior art keywords
cache
instruction
prefetch hint
tube core
logic
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
CN2007103007962A
Other languages
English (en)
Other versions
CN101241475A (zh
Inventor
B·P·布莱克
M·M·安纳瓦莱姆
D·W·麦考利
J·P·德瓦勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101241475A publication Critical patent/CN101241475A/zh
Application granted granted Critical
Publication of CN101241475B publication Critical patent/CN101241475B/zh
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
    • 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
    • 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
    • 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, 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, 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

Abstract

本发明的实施例总体上涉及用于进行从动态随机存取存储器(DRAM)到静态随机存取存储器(SRAM)的预取的系统、方法和设备。在一些实施例中,预取逻辑接收与载入指令相关联的预取提示。预取逻辑可以至少部分基于预取提示将两条或更多条高速缓存线从DRAM中的开放页传送到SRAM。

Description

从动态随机存取存储器到静态随机存取存储器的预取
技术领域
本发明的实施例总体上涉及集成电路领域,并且尤其涉及用于进行从动态随机存取存储器(DRAM)到静态随机存取存储器(SRAM)的预取的系统、方法和设备。
背景技术
工业芯片设计正朝着单芯片多处理器(CMP)方向发展。与高频单处理器相比,CMP提供的性能得到改善并且使功耗减小。CMP使用相对简单的内核,并且依靠线程级并行(TLP)来改善性能。在CMP上运行的应用程序必须增加TLP以有效利用内核数。
然而,增加TLP加大了每个时钟上未完成的存储器请求的数量,这也增加了存储器级并行(MLP)。此外,多线程应用程序的数据工作区将可能随着线程数而增加。最后,由于从几个线程进行交叉存取,增加TLP也有可能增加对共用高速缓存的存取的随机性。因此,存储器带宽和高速缓存容量应该与内核数成比例以支持增加的MLP和数据覆盖区。
最近,有人提出将三维(3D)管芯叠置作为用于在微处理器管芯上叠置密集的存储器管芯(例如DRAM)的可行选项。叠置允许将完全不同的Si技术结合到管芯叠置中,而不用考虑朝着单一工艺流程的技术集成。叠置还使用贯穿硅的通孔在管芯之间提供很高带宽的接口。因此,CMP上存储器(例如DRAM)的3D叠置可以有效地解决对于CMP缩放(scaling)的存储器分级障碍。
DRAM通常使一个开放行保持激活直到需要另一行,以减少存取的等待时间。该技术被称为开放页策略(open page policy),并且如果对DRAM的连续存取是针对同一开放页,则该技术以最佳状态工作。否则,存储体关闭和预充电损失会显著增加对存储体进行存取的总等待时间。传统上,在DRAM设计中每个存储体只有一个开放页。
附图说明
以示例性而非限制性的方式示出本发明的实施例,在附图的各个图中,相似的参考标记表示相似的元件。
图1是示出根据本发明实施例实施的计算系统的所选方案的方框图;
图2是示出根据本发明实施例的块传送(block transfer)的概念图;
图3是示出根据本发明实施例实施的计算系统的所选方案的高级方框图;
图4是示出其中共用L2高速缓存的实施例的高级方框图;
图5是示出其中在高速缓存分级体系中在不同级上使用预取逻辑的实施例的高级方框图;
图6是示出根据本发明实施例的块传送的所选方案的流程图;
图7是根据本发明实施例实施的半导体器件的截面图。
具体实施方式
经验表明,对DRAM的存取位置可能随访问DRAM的线程数量的增加而更加随机。由于DRAM具有有限数量的存储体(例如16个),所以开放页的数目会随着线程数的增加而显著增加。因此,存储体过载的结果会显著影响系统的性能。
本发明的实施例一般涉及用于进行从动态随机存取存储器(DRAM)到静态随机存取存储器(SRAM)的预取的系统、方法和设备。在一些实施例中,将两条或更多条高速缓存线(cache line)从DRAM中的开放页传送到SRAM。该传送可以在密集的互连(例如管芯至管芯的通孔)上发生。如以下进一步所述,本发明的实施例可以有效地提供适于CMP缩放的存储器资源。
图1是示出根据本发明实施例实施的计算系统的所选方案的方框图。计算系统100包括通过互连106与DRAM 104耦合的(多个)内核102。内核102几乎可以是集成电路的任意内核逻辑,包括通用处理内核、图形内核等。在一些实施例中,内核102是管芯(例如CMP)上的多个内核中的一个。
内核102包括指令处理逻辑108、Ln高速缓存(例如L2高速缓存)110以及预取(PF)逻辑112。指令处理逻辑108可以包括一个或多个用于处理指令的单元,例如指令指针、解码逻辑、寄存器以及L1高速缓存。在一些实施例中,指令逻辑108还可以包括用于产生预取提示(prefetch hint)(例如预取提示114)的逻辑。预取提示泛指两个或更多个载入指令可能从同一高速缓存页请求数据的指示。在一些实施例中,预取提示可以是由基于指令指针(IP)历史的步幅检测(stride detection)机制产生的置信度值。在可选实施例中,可以用不同的机制来产生预取提示。
Ln高速缓存110和PF逻辑112通过互连116(例如L2总线)与指令处理逻辑108耦合。在一些实施例中,如果L1高速缓存缺失,则将该缺失和预取提示114发送(直接或者通过存储器分级体系中的一个或多个级)到Ln高速缓存110和/或预取逻辑112。预取逻辑112可以至少部分基于预取提示114确定是否从DRAM 104的开放页预取两条或更多条高速缓存线。例如,如果预取提示114指示出很有可能多个LOAD指令将要展现流型的(streaming)行为,则PF逻辑112可以将整个开放页的数据从DRAM 104传送到Ln高速缓存110。
在一些实施例中,PF逻辑112可以包括用于例如如果互连106的使用程度太高则调节(throttle)预取的逻辑。在这种实施例中,PF逻辑112可以将由预取提示114提供的置信度(例如,高、中、或低)与互连使用程度的指示进行比较,并且确定是否从DRAM 104预取数据。这里使用的术语“数据”泛指任何类型的采用内核102可识别的任何形式的信息,包括指令。
DRAM 104几乎可以是任何形式的DRAM,包括商用DRAM、低延时的DRAM(RLDRAM)、磁性随机存取存储器(MRAM)等。此外,DRAM 104几乎可以具有任何数量的存储体,所述存储体几乎具有任意的页大小。在一些实施例中,DRAM 104具有16个存储体并且每一页是4千字节(KB)。
互连106可以是广范围的管芯至管芯和/或芯片至芯片互连中的任何一种。在一些实施例中,内核102和DRAM 104垂直叠置并且互连106是高密度管芯至管芯通孔。在可选实施例中,内核102和DRAM 104一起封装在多芯片模块中并且互连106在模块中的(至少)一些芯片之间提供高密度互连。在其他的可选实施例中,内核102和DRAM 104可以处于不同的封装中并且互连106连接这些封装。
图2是示出根据本发明实施例的块传送的概念图。将DRAM 202组织成一个或多个高速缓存页204。在一些实施例中,DRAM 202在任意给定时间(假设器件在工作中)都有一个高速缓存页是开放的。例如,在所示的实施例中,高速缓存页206开放。每个高速缓存页由两条或更多条高速缓存线208组成,每条高速缓存线208具有两个或更多个字节的数据。在一些实施例中,预取逻辑(例如图1所示的预取逻辑112)将两条或更多条高速缓存线构成的一个块从开放DRAM高速缓存页206传送到SRAM 210。传送一块的高速缓存线的决定可以至少部分基于预取提示(例如图1所示的预取提示114)。下面参照图3-7进一步说明数据从DRAM到SRAM的块传送。
图3是示出根据本发明实施例实施的计算系统的所选方案的高级方框图。系统300包括多个内核302。内核302可以是包括通用处理内核和图形内核在内的各种内核的任何一种。在一些实施例中,每个内核具有专用的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的预取提示。此外,传送一块的高速缓存线的决定可以至少部分基于总线3 14经历的使用程度。在一些实施例中,PF逻辑308可以将存储器的一整页从DRAM L3310传送到SRAM L2306。
图4是示出其中共用L2高速缓存的实施例的高级方框图。在所示的实施例中,每个内核302具有专用的L1高速缓存并且这些内核共用L2高速缓存402。如果L1高速缓存304缺失,则将该缺失和预取提示发送到L2高速缓存402和/或PF逻辑404。在一些实施例中,PF逻辑404至少部分基于预取提示决定是否传送来自DRAM L3310的两条或更多条高速缓存线。此外,预取逻辑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。尽管所示的实施例显示出两级批预取,但是应该理解的是,可以几乎在任意个级的高速缓存上,任意多次地执行一块的高速缓存线的批传送。
图6是示出根据本发明实施例的块传送的所选方案的流程图。参照处理方框602,预取逻辑(例如,图1所示的预取逻辑112)接收与LOAD指令相关的预取提示。在一些实施例中,由基于IP的步幅检测算法产生预取提示。在这种实施例中,预取提示可以指示随后的LOAD指令具有单调增加或减少的地址步幅的可能性有多大。在一些实施例中,预取提示可以具有任何数量的值,表示关于随后的LOAD指令是否具有单调增加或减少的地址步幅的置信程度。例如,预取提示可以表示高、中或低的置信度。或者,可以使用几乎任何方案来表示置信度。
参照处理方框604,PF逻辑可以基于一个或多个条件或因素来调节块预取。术语“调节”可以指包括延迟传送、取消传送、改变传送大小等的多种行为。触发调节传送的条件可以包括:其上将要发生传送的互连的使用程度、预取提示、功率节省程度等。如虚线所示,在一些实施例中调节机制是任选的。
参照处理方框606,PF逻辑至少部分基于预取提示将两条或更多条高速缓存线从DRAM传送到SRAM。例如,如果预取提示指示多个LOAD指令具有单调增加或减少的地址步幅的可能性很大,则PF逻辑可以将一块的高速缓存线传送到高速缓存中以增加所请求的数据存储在高速缓存中的可能性。DRAM可以是高速缓存分级体系的一部分和/或大容量存储器的元件。此外,SRAM可以存在于高速缓存分级体系中的几乎任何一级中。
图7示出根据本发明实施例的半导体器件700的截面图。器件700可以包括封装702、管芯728、管芯730以及管芯至管芯通孔726。一个或多个突起704-1至704-N(这里总称为“突起704”)可以允许电信号在封装702和管芯728之间传递,所述电信号包括功率、接地、时钟和/或输入/输出(I/O)信号。管芯728可以包括一个或多个贯穿管芯的通孔706,以使信号在凸起704和管芯730之间传递。器件700还可以包括散热装置(heat sink)708以考虑到散发由管芯730和/或器件700所产生的热量。
管芯728和730可以包括各种层。例如,管芯728可以包括体硅(SI)层710、有源Si层712和金属叠层714。管芯730可以包括金属叠层720、有源Si层722以及体Si层724。如图2所示,通孔726可以分别通过金属叠层714和720与管芯728和730互相连接。在一个实施例中,管芯728可以比管芯730更薄。例如,管芯728可以包括存储器件(例如随机存取存储器件),而管芯730可以包括一个或多个处理器内核和/或共用的或专用的高速缓存。
管芯730包括一个或多个PF逻辑732的实例。在一些实施例中,PF逻辑732可以将两条或更多条高速缓存线从管芯728中的DRAM传送到管芯730中的SRAM。该传送可以通过管芯至管芯通孔726进行。在一些实施例中,管芯至管芯通孔726的相对高的带宽能够使PF逻辑732传送成块的多条高速缓存线而不会显著增加等待时间。
器件700可以包括用于例如将其他元件集成到同一器件或系统中的附加管芯。在这种实施例中,可以使用管芯至管芯和/或贯穿管芯的通孔以在各个管芯之间传递信号(例如,如对于通孔726和706所讨论的那样)。
还可以作为用于存储机器可执行的指令的机器可读介质来提供本发明实施例的元件。机器可读介质可以包括但不限于,闪速存储器、光盘、光盘只读存储器(CD-ROM)、数字多用/视频盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、传播介质或者适于存储电子指令的其他类型的机器可读介质。例如,本发明的实施例可以作为计算机程序来下载,可以经由通信链路(例如调制解调器或网络连接)以包含在载波或者其他传播介质中的数据信号的方式将所述计算机程序从远程计算机(例如服务器)传送到请求方计算机(例如客户机)。
应该理解的是,在整个说明书中所提到的“一个实施例”或“实施例”是指关于该实施例所述的特定的特征、结构或特性包括在本发明的至少一个实施例中。因此,要强调且应该理解的是,在本说明书的各个部分中两次或更多次提到的“实施例”或“一个实施例”或“可选实施例”并不一定都指同一个实施例。此外,可以在本发明的一个或多个实施例中适当组合特定的特征、结构或特性。
类似地,应该理解的是,在以上对本发明实施例进行的说明中,为了简化公开内容以有助于理解本发明各个方案中的一个或多个,有时候在本发明的单个实施例、附图以及说明中将各种特征组合在一起。然而,不应将公开的该方法解释为反映如下意图:所要求的主题需要比明确记载在每个权利要求中的特征更多的特征。相反地,如所附的权利要求书所反映的那样,发明方案在于少于前面所公开的单个实施例的所有特征。因此,所附的权利要求书被明确并入到本申请的说明书中。

Claims (22)

1.一种集成电路,包括:
处理器内核,包括:
L1高速缓存;
用于生成与第一载入指令相关联的预取提示的指令处理逻辑,其中所述指令处理逻辑响应于检测到指令指针历史而生成所述预取提示,所述预取提示表示所述第一载入指令随后的两个或更多个载入指令可能从同一高速缓存页请求数据的置信程度,所述指令处理逻辑还响应于所述L1高速缓存出现缺失而发送所述预取提示;以及
耦合到所述指令处理逻辑的预取逻辑,所述预取逻辑用于至少部分基于发送的所述预取提示而将两条或更多条高速缓存线从动态随机存取存储器中的开放页传送到静态随机存取存储器,其中所述动态随机存取存储器提供某一级的高速缓存,并且所述静态随机存取存储器提供更高一级的高速缓存。
2.根据权利要求1所述的集成电路,其中所述两条或更多条高速缓存线包括存储器页。
3.根据权利要求1所述的集成电路,其中所述预取逻辑通过高密度接口传送所述两条或更多条高速缓存线。
4.根据权利要求3所述的集成电路,其中所述高密度接口为管芯至管芯通孔。
5.根据权利要求3所述的集成电路,其中所述高密度接口为贯穿硅的通孔。
6.根据权利要求1所述的集成电路,其中所述动态随机存取存储器包括大容量存储器。
7.根据权利要求1所述的集成电路,其中所述某一级的高速缓存是L3高速缓存,并且所述更高一级的高速缓存是L2高速缓存。
8.根据权利要求1所述的集成电路,还包括:
调节逻辑,其中所述调节逻辑能够至少部分基于所述预取提示和耦合在所述动态随机存取存储器和所述处理器内核之间的互连的使用程度来调节所述两条或更多条高速缓存线的所述传送。
9.根据权利要求7所述的集成电路,其中所述处理器内核包括所述集成电路的多个处理内核中的一个。
10.根据权利要求7所述的集成电路,其中所述处理器内核包括图形内核。
11.一种用于数据预取的方法,所述方法包括:
利用处理器内核的指令处理逻辑,生成与第一载入指令相关联的预取提示,所述处理器内核包括L1高速缓存,所述生成是响应于检测到指令指针历史,所述预取提示表示所述第一载入指令随后的两个或更多个载入指令可能从同一高速缓存页请求数据的置信程度;
响应于所述L1高速缓存出现高速缓存缺失,所述指令处理逻辑发送所述预取提示;以及
利用所述处理器内核的预取逻辑,至少部分基于发送的所述预取提示,将两条或更多条高速缓存线从动态随机存取存储器中的开放页传送到静态随机存取存储器。
12.根据权利要求11所述的方法,其中所述置信程度是三个或更多个值中的一个。
13.根据权利要求12所述的方法,其中所述三个或更多个值包括高、中和低。
14.根据权利要求11所述的方法,还包括:
至少部分基于所述预取提示和耦合在所述动态随机存取存储器和所述处理器内核之间的互连的使用程度来调节所述两条或更多条高速缓存线的传送。
15.根据权利要求11所述的方法,其中从所述动态随机存取存储器中的开放页传送所述两条或更多条高速缓存线包括:
从所述动态随机存取存储器中的开放页传送高速缓存页。
16.根据权利要求11所述的方法,其中所述动态随机存取存储器包括大容量存储器。
17.根据权利要求11所述的方法,其中所述动态随机存取存储器提供某一级的高速缓存。
18.一种计算系统,包括:
包括动态随机存取存储器的第一管芯;
第二管芯,包括
处理器内核,其具有:
L1高速缓存,
用于生成与第一载入指令相关联的预取提示的指令处理逻辑,其中所述指令处理逻辑响应于检测到指令指针历史而生成所述预取提示,所述预取提示表示所述第一载入指令随后的两个或更多个载入指令可能从同一高速缓存页请求数据的置信程度,所述指令处理逻辑还响应于所述L1高速缓存出现缺失而发送所述预取提示,以及
耦合到所述指令处理逻辑的预取逻辑,所述预取逻辑用于至少部分基于发送的所述预取提示而将两条或更多条高速缓存线从所述动态随机存取存储器中的开放页传送到静态随机存取存储器,其中所述动态随机存取存储器提供某一级的高速缓存,并且所述静态随机存取存储器提供更高一级的高速缓存;以及
耦合在所述第一管芯和第二管芯之间的互连。
19.根据权利要求18所述的计算系统,其中所述两条或更多条高速缓存线包括存储器页。
20.根据权利要求18所述的计算系统,其中所述互连是管芯至管芯通孔。
21.根据权利要求18所述的计算系统,其中所述处理器内核包括所述第二管芯的多个处理内核中的一个。
22.根据权利要求18所述的计算系统,其中所述处理器内核包括图形内核。
CN2007103007962A 2006-12-22 2007-12-21 从动态随机存取存储器到静态随机存取存储器的预取 Expired - Fee Related CN101241475B (zh)

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
CN101241475A CN101241475A (zh) 2008-08-13
CN101241475B true CN101241475B (zh) 2011-09-28

Family

ID=39048406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007103007962A Expired - Fee Related CN101241475B (zh) 2006-12-22 2007-12-21 从动态随机存取存储器到静态随机存取存储器的预取

Country Status (10)

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

Families Citing this family (73)

* 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
US9442853B2 (en) 2014-02-27 2016-09-13 International Business Machines Corporation Salvaging lock elision transactions with instructions to change execution type
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
US9645879B2 (en) 2014-02-27 2017-05-09 International Business Machines Corporation Salvaging hardware transactions with instructions
US9424072B2 (en) 2014-02-27 2016-08-23 International Business Machines Corporation Alerting hardware transactions that are about to run out of space
US9336097B2 (en) 2014-02-27 2016-05-10 International Business Machines Corporation Salvaging hardware transactions
US9575890B2 (en) 2014-02-27 2017-02-21 International Business Machines Corporation Supporting atomic accumulation with an addressable accumulator
US9361041B2 (en) 2014-02-27 2016-06-07 International Business Machines Corporation Hint instruction for managing transactional aborts in transactional memory computing environments
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
US9411729B2 (en) 2014-02-27 2016-08-09 International Business Machines Corporation Salvaging lock elision transactions
US9471371B2 (en) 2014-02-27 2016-10-18 International Business Machines Corporation Dynamic prediction of concurrent hardware transactions resource requirements and allocation
US9329946B2 (en) 2014-02-27 2016-05-03 International Business Machines Corporation Salvaging hardware transactions
US9442775B2 (en) 2014-02-27 2016-09-13 International Business Machines Corporation Salvaging hardware transactions with instructions to transfer transaction execution control
US20150242216A1 (en) 2014-02-27 2015-08-27 International Business Machines Corporation Committing hardware transactions that are about to run out of resource
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
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
US10580757B2 (en) 2016-10-07 2020-03-03 Xcelsis Corporation Face-to-face mounted IC dies with orthogonal top interconnect layers
US10672744B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D compute circuit with high density Z-axis interconnects
US10580735B2 (en) 2016-10-07 2020-03-03 Xcelsis Corporation Stacked IC structure with system level wiring on multiple sides of the IC die
US10600735B2 (en) 2016-10-07 2020-03-24 Xcelsis Corporation 3D chip sharing data bus
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
US10672745B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D processor
US10586786B2 (en) 2016-10-07 2020-03-10 Xcelsis Corporation 3D chip sharing clock interconnect layer
KR102512017B1 (ko) 2016-10-07 2023-03-17 엑셀시스 코포레이션 직접-접합된 네이티브 상호접속부 및 능동 베이스 다이
US10672743B2 (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
US10672663B2 (en) 2016-10-07 2020-06-02 Xcelsis Corporation 3D chip sharing power circuit
US10719762B2 (en) 2017-08-03 2020-07-21 Xcelsis Corporation Three dimensional chip structure implementing machine trained network
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
US11068305B2 (en) 2018-05-07 2021-07-20 Micron Technology, Inc. System call management in a user-mode, 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
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
US11119972B2 (en) 2018-05-07 2021-09-14 Micron Technology, Inc. Multi-threaded, self-scheduling processor
US11513839B2 (en) 2018-05-07 2022-11-29 Micron Technology, Inc. Memory request size management in a multi-threaded, self-scheduling processor
US11119782B2 (en) 2018-05-07 2021-09-14 Micron Technology, Inc. Thread commencement using a work descriptor packet in a 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
US11132233B2 (en) 2018-05-07 2021-09-28 Micron Technology, Inc. Thread priority management in a multi-threaded, self-scheduling processor
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
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
JP7261037B2 (ja) * 2019-02-21 2023-04-19 株式会社日立製作所 データ処理装置、ストレージ装置およびプリフェッチ方法
KR102639431B1 (ko) 2019-04-15 2024-02-22 양쯔 메모리 테크놀로지스 씨오., 엘티디. 프로세서 및 이종 메모리를 갖는 통합 반도체 디바이스 및 이를 형성하는 방법
CN110731012B (zh) 2019-04-15 2021-01-29 长江存储科技有限责任公司 具有处理器和异构存储器的一体化半导体器件及其形成方法
EP3891784A4 (en) 2019-04-15 2022-08-17 Yangtze Memory Technologies Co., Ltd. INTEGRATION OF NON-AND THREE-DIMENSIONAL MEMORY DEVICES WITH MULTIPLE FUNCTIONAL CHIPS
KR20240045345A (ko) 2019-04-15 2024-04-05 양쯔 메모리 테크놀로지스 씨오., 엘티디. 프로세서 및 동적 랜덤 액세스 메모리를 갖는 본디드 반도체 장치 및 이를 형성하는 방법
CN110720143B (zh) 2019-04-30 2021-01-29 长江存储科技有限责任公司 具有处理器和nand闪存的键合半导体器件及其形成方法
US11599299B2 (en) 2019-11-19 2023-03-07 Invensas Llc 3D memory circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1211798A (zh) * 1997-09-16 1999-03-24 日本电气株式会社 半导体集成电路器件
US6820173B1 (en) * 2001-02-23 2004-11-16 Nvidia Corporation Data prefetcher with predictor capabilities
CN1679006A (zh) * 2002-08-23 2005-10-05 皇家飞利浦电子股份有限公司 处理器预取以匹配存储器总线协议特性

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
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 冗長素子を備える集積回路チップ、マルチプロセッサおよびその製法
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
US6795899B2 (en) 2002-03-22 2004-09-21 Intel Corporation Memory system with burst length shorter than prefetch length
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
US7613880B2 (en) 2002-11-28 2009-11-03 Renesas Technology Corp. Memory module, memory system, and information device
US6983356B2 (en) 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
WO2004059720A1 (en) 2002-12-20 2004-07-15 International Business Machines Corporation Three-dimensional device fabrication method
KR100520219B1 (ko) 2003-01-03 2005-10-11 삼성전자주식회사 고주파수 동작에 적합한 메모리 모듈장치
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A 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
EP1782287A2 (en) 2004-07-21 2007-05-09 Beach Unlimited LLC Distributed storage architecture based on block map caching and vfs stackable file system modules
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
CN1211798A (zh) * 1997-09-16 1999-03-24 日本电气株式会社 半导体集成电路器件
US6820173B1 (en) * 2001-02-23 2004-11-16 Nvidia Corporation Data prefetcher with predictor capabilities
CN1679006A (zh) * 2002-08-23 2005-10-05 皇家飞利浦电子股份有限公司 处理器预取以匹配存储器总线协议特性

Also Published As

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

Similar Documents

Publication Publication Date Title
CN101241475B (zh) 从动态随机存取存储器到静态随机存取存储器的预取
US10310976B2 (en) System and method for concurrently checking availability of data in extending memories
KR101893544B1 (ko) 물리적 로우에 함께 저장된 태그 및 데이터를 구비한 dram 캐시
EP1199724B1 (en) Simply interfaced semiconductor integrated circuit device including logic circuitry and embedded memory circuitry
JP7036925B2 (ja) キャッシュ制御を考慮したメモリコントローラ
US20220138107A1 (en) Cache for storing regions of data
JP2018018513A (ja) メモリシステム、プロセシングシステム、及びメモリスタックを動作させる方法
US9087561B2 (en) Hybrid cache
JP2009528612A (ja) データ処理システム並びにデータ及び/又は命令のプリフェッチ方法
CN109753445A (zh) 一种缓存访问方法、多级缓存系统及计算机系统
CN110780805A (zh) 存储器装置、处理系统及控制处理系统的方法
US7606994B1 (en) Cache memory system including a partially hashed index
US20210224213A1 (en) Techniques for near data acceleration for a multi-core architecture
US6553463B1 (en) Method and system for high speed access to a banked cache memory
Jun et al. Asymmetric DRAM synthesis for heterogeneous chip multiprocessors in 3D-stacked architecture
Zhao et al. BACH: A bandwidth-aware hybrid cache hierarchy design with nonvolatile memories
US20230315334A1 (en) Providing fine grain access to package memory
US20120151150A1 (en) Cache Line Fetching and Fetch Ahead Control Using Post Modification Information
손영훈 Architecting Main Memory Systems to Achieve Low Access Latency

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1121257

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1121257

Country of ref document: HK

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110928

Termination date: 20191221