[go: up one dir, main page]

CN115132238A - 集成三维(3d)dram缓存 - Google Patents

集成三维(3d)dram缓存 Download PDF

Info

Publication number
CN115132238A
CN115132238A CN202210130510.5A CN202210130510A CN115132238A CN 115132238 A CN115132238 A CN 115132238A CN 202210130510 A CN202210130510 A CN 202210130510A CN 115132238 A CN115132238 A CN 115132238A
Authority
CN
China
Prior art keywords
cache
tag
dram
memory
processor
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.)
Pending
Application number
CN202210130510.5A
Other languages
English (en)
Inventor
威尔弗雷德·戈麦斯
阿德里安·C·摩加
阿布舍克·夏尔马
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 CN115132238A publication Critical patent/CN115132238A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40607Refresh operations in memory devices with an internal cache or data buffer
    • 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/409Read-write [R-W] circuits 
    • G11C11/4097Bit-line organisation, e.g. bit-line layout, folded bit lines
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B12/00Dynamic random access memory [DRAM] devices
    • H10B12/30DRAM devices comprising one-transistor - one-capacitor [1T-1C] memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Semiconductor Memories (AREA)
  • Memory System (AREA)

Abstract

本申请涉及集成三维(3D)DRAM缓存。与计算逻辑集成在同一封装中的3D DRAM允许形成高密度缓存。在一个示例中,集成3D DRAM包括大型管芯上缓存(例如第4级(L4)缓存)、大型管芯上存储器侧缓存、或者L4缓存和存储器侧缓存两者。一个或多个标签缓存缓存最近从L4缓存、存储器侧缓存或者这两者访问的标签。计算逻辑中的缓存控制器接收来自处理器核心之一的对访问某个地址的请求并且将标签缓存中的标签与该地址进行比较。响应于标签缓存中的命中,缓存控制器从缓存中由标签缓存中的条目指示的位置访问数据,而不在缓存中执行标签查找。

Description

集成三维(3D)DRAM缓存
技术领域
说明书概括而言涉及处理器和存储器技术。
背景技术
动态随机访问存储器(dynamic random-access memory,DRAM)一般包括比特单元的阵列,每个单元能够存储一比特信息。典型的单元配置包括用于存储表示被存储的比特的电荷的电容器和在读取和写入操作期间提供对该电容器的访问的访问晶体管。访问晶体管连接在位线和电容器之间,并且由字线信号进行门控(开启或关闭)。在读取操作期间,经由关联的位线从单元中读取存储的信息比特。在写入操作期间,经由晶体管从位线将信息比特存储到单元中。这些单元具有动态性质,因此必须被周期性地刷新。
与处理器或其他计算逻辑集成在同一管芯或多芯片模块(multi-chip module,MCM)上的DRAM被称为嵌入式DRAM(embedded DRAM,eDRAM)。跟与处理器在不同封装中的外部DRAM相比,嵌入式DRAM可能具有一些性能优势;但是,与外部DRAM相比,现有的eDRAM技术具有更高的每比特成本,而且其缩放能力也是有限的。
发明内容
根据本申请的一方面,提供了一种装置,包括:3D DRAM缓存,该3D DRAM缓存包括管芯上的多层DRAM单元,所述多层DRAM单元利用穿过所述多层DRAM单元的通孔与彼此连接;以及与所述3D DRAM缓存堆叠在同一封装中的计算逻辑,所述计算逻辑包括:一个或多个处理器核心、缓存控制器、以及标签缓存,其中,所述缓存控制器用于:接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求,将所述标签缓存中的标签与所述地址进行比较,响应于所述标签缓存中的命中,从所述3D DRAM缓存中由所述标签缓存中的条目指示的位置访问数据,并且向所述请求方处理器核心发送响应。
根据本申请的另一方面,提供了一种与3D DRAM一起堆叠在封装中的处理器,所述处理器包括:一个或多个处理器核心;标签缓存;以及缓存控制电路,用于访问作为第4级L4缓存的所述3D DRAM,所述缓存控制电路用于:接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求;并且将标签缓存中的标签与所述地址进行比较,响应于所述标签缓存中的命中,从所述L4缓存中由所述标签缓存中的条目指示的位置访问数据,并且向所述请求方处理器核心发送响应。
根据本申请的又一方面,提供了一种系统,包括:3D DRAM缓存,该3D DRAM缓存包括管芯上的多层DRAM单元,所述多层DRAM单元利用穿过所述多层DRAM单元的通孔与彼此连接;以及与所述3D DRAM缓存堆叠在同一封装中的处理器,所述处理器包括:一个或多个处理器核心、缓存控制器、以及标签缓存,其中,所述缓存控制器用于访问作为最后一级缓存LLC的所述3D DRAM缓存,所述缓存控制器用于:接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求,将所述标签缓存中的标签与所述地址进行比较,响应于所述标签缓存中的命中,从所述LLC缓存中由所述标签缓存中的条目指示的位置访问数据,以及向所述请求方处理器核心发送响应。
附图说明
接下来的描述包括对具有借由本发明的实施例的实现方式的示例给出的图示的附图的论述。应当以示例方式而不是限制方式来理解附图。就本文使用的而言,提及一个或多个“实施例”或“示例”应被理解为描述本发明的至少一个实现方式中包括的特定特征、结构和/或特性。从而,本文出现的诸如“在一个实施例中”或者“在一个示例中”之类的短语描述了本发明的各种实施例和实现方式,而并不一定全都是指同一实施例。然而,它们也不一定相互排斥。
图1A图示了单层DRAM和三维(3D)DRAM的示例。
图1B和1C图示了与计算逻辑集成的3D DRAM。
图1D图示了与计算逻辑集成的3D DRAM。
图1E图示了具有与计算逻辑集成的3D DRAM的系统的框图。
图2图示了单片计算和3D单片存储器的示例。
图3A图示了传统DRAM的选择晶体管和电容器的示例。
图3B图示了NMOS或PMOS存储器层的选择晶体管的示例。
图4A图示了互连堆叠中的存储器层的示例。
图4B图示了图4A的方框244的放大视图。
图5A-5C图示了具有集成的3D DRAM的3D计算的变型。
图6A-6B图示了具有集成的3D DRAM缓存的缓存层次体系的示例。
图7A和7B图示了标签缓存的示例。
图8A和8B图示了缓存访问流程的示例。
图9A和9B是图示了带有标签缓存的缓存访问流程的示例的流程图。
图10是图示出缓存访问流程的示例的框图。
图11A-11B图示了包括缓存层次体系的系统的示例的框图。
图12A是图示出示例性有序管线和示例性寄存器重命名、无序发布/执行管线两者的框图;
图12B是图示出要被包括在处理器中的有序架构核心的示例性实施例和示例性寄存器重命名、无序发布/执行架构核心两者的框图;
图13A是单个处理器核心的示例、以及其与管芯上互连网络的连接及其二级(L2)缓存的本地子集的框图;
图13B是图13A中的处理器核心的一部分的示例的展开图;
图14是可具有多于一个核心、可具有集成的存储器控制器并且可具有集成图形的处理器的示例的框图;
图15-18是示例性计算机架构的框图。
接下来对某些细节和实现方式进行描述,包括对附图的描述,这些附图可以描绘下文描述的一些或所有实施例,并且论述本文提出的发明构思的其他潜在实施例或实现方式。
具体实施方式
紧密集成的计算逻辑和三维(3D)存储器可以允许实现大型的封装上缓存。
在一个示例中,3D DRAM与计算逻辑堆叠并且集成在同一封装中。计算逻辑可包括例如一个或多个处理器核心、(一个或多个)SRAM缓存、以及缓存控制电路。3D DRAM在一管芯上包括多层DRAM单元。多层DRAM单元和计算逻辑利用穿过多层的通孔与彼此连接,而不需要通过底层PCB来传送信号。
集成的3D DRAM使得能够形成比传统缓存大得多的快速缓存。在一个示例中,集成的3D DRAM包括大的第4级(L4)缓存、大的存储器侧缓存、或者L4缓存和存储器侧缓存两者。然而,集成的L4和/或存储器侧缓存的大容量导致了空间和标签访问时间两方面的显著标签开销。
在一个示例中,计算逻辑包括一个或多个标签缓存,以缓存最近从L4缓存、存储器侧缓存或者这两者访问的标签。计算逻辑中的缓存控制器接收来自处理器核心之一的对访问某个地址的请求并且将标签缓存中的标签与该地址进行比较。响应于标签缓存中的命中,缓存控制器从L4缓存中在由标签缓存中的条目指示的位置访问数据,而不在L4缓存中执行标签查找。类似地,在集成3D DRAM上有存储器侧缓存而不是L4缓存的系统中,计算逻辑中的标签缓存可以存储来自存储器侧缓存的标签。在集成3DDRAM上既有存储器侧缓存又有L4缓存的系统中,计算逻辑可包括两个标签缓存(或者分区的标签缓存)来为存储器侧缓存和L4缓存存储标签。标签缓存减少了L4缓存标签和存储器侧缓存标签被访问的情况,这可以实现更低时延的缓存访问。
大型集成DRAM缓存可以由管芯上多个相互连接的DRAM层形成。传统上,存储器和处理逻辑是在不同的管芯上制作的。DRAM管芯传统上包括单个DRAM层。例如,图1A图示了单层DRAM 102的示例。传统的DRAM 102包括单个存储器层。堆叠DRAM的现有解决方案涉及堆叠单独的管芯,并且被限制为管芯之间的10-100μm间距连接,这限制了成本和性能。与之不同,3D单片DRAM 104包括一个管芯上的多个DRAM层。在图1A中图示的示例中,3D DRAM 104包括多个NMOS或PMOS DRAM层106和一共享的CMOS层108。在一个示例中,每个DRAM层包括NMOS或PMOS访问晶体管和存储或存储器元件,例如电容器或其他存储元件。在一个示例中,共享CMOS是由来自PMOS层的PMOS晶体管和来自NMOS层的NMOS晶体管形成的。共享CMOS包括电路,例如读出放大器(sense amplifier)、控制逻辑和输入/输出电路。在一个这样的示例中,CMOS层108可以是存储器层106和计算层所共有的。3D DRAM可以与一个或多个计算层紧密集成(例如,通过使用层转移或者通过在金属堆叠中形成DRAM)。
例如,图1B和1C图示了与计算逻辑集成的3D DRAM。图1B图示了一个示例,其中3DDRAM 105被堆叠在计算逻辑103的上方或顶上。然后计算逻辑在封装衬底121的上方或顶上。图1C图示了一个示例,其中计算逻辑103被堆叠在3D DRAM 105的上方或顶上,而3DDRAM 105则在封装衬底121的上方或顶上。计算逻辑103和3D DRAM 105都可包括多层。在这两个系统中,每一层都具有垂直通道,该通道连接到它上面和下面的层,使得电力和信号能够穿过计算逻辑103和3D DRAM 105的层。从而,3D DRAM可以被集成在处理器核心的顶上或下方。
除了不同的方向(例如,3D DRAM在计算逻辑的上方或下方)以外,计算逻辑103和3D DRAM 105可以占据相同或相似的面积(占用空间),或者可具有不同的大小和占据不同的面积。图1D图示了一个示例,其中包括处理器核心的计算层103在3D DRAM 105的上方。在图示的示例中,计算逻辑103的面积比3D DRAM 105小。在其他示例中,3D DRAM可具有比计算逻辑更小的面积和/或位于计算逻辑的上方。图1D示出了一个示例,其中四个计算管芯被集成在一个3D DRAM管芯上方,然而,任何数目的计算管芯可以与若干个3D DRAM管芯集成。
图1E图示了具有与计算逻辑集成的3D DRAM的系统的框图。系统100包括计算逻辑103,在计算逻辑103上方或下方堆叠着集成的3DDRAM 105。3D DRAM 105和计算逻辑103是在同一个封装123中的。计算逻辑还与一个或多个外部存储器设备107耦合,这些设备在计算逻辑封装的外部(例如,主存储器)。
在图示的示例中,3D DRAM 105包括L4缓存117和存储器侧缓存119。在其他示例中,3D DRAM可以只包括L4缓存或者只包括存储器侧缓存。L4缓存是缓存层次体系中的一级缓存,并且在一个示例中,可被认为是最后一级缓存(last level cache,LLC)。在一个示例中,L4缓存117被多于一个处理器核心所共享。在一个示例中,存储器侧缓存119只缓存来自本地附接存储器的地址和数据(例如,来自本地外部存储器设备107,但不来自附接到另一个插口和/或在不同域中的远程外部存储器)。与之不同,在一个示例中,L4缓存117可以缓存来自本地和远程存储器两者的数据和地址。在一个示例中,L4缓存117和存储器侧缓存119中的一者或两者是集合关联缓存。然而,也可以实现其他的缓存放置策略(例如,完全关联的,或者其他缓存放置策略)。L4缓存117和存储器侧缓存119中的一者或两者可以被“库组化”成多个库组(bank)或分区。
计算逻辑包括一个或多个处理器核心111和一个或多个级别的缓存109(例如,第1级(L1)、第2级(L2)、第3级(L3),等等)。可以在与处理器核心相同的管芯上用SRAM实现一个或多个级别的缓存109。一个或多个级别的缓存可以是一处理器核心所私有的,而其他级别的缓存可以由多个处理器核心共享。缓存控制器115包括控制对缓存109、117和119的访问的电路。例如,缓存控制器115可包括用于实现缓存放置和缓存替换/逐出策略的电路。在一个示例中,缓存控制器115被“库组化”,以对缓存的不同库组和/或级别包括单独的缓存控制逻辑(缓存控制器库组)。计算逻辑103还包括一个或多个标签缓存113,以存储最近从L4缓存117和/或存储器侧缓存119访问的标签。
图2、图3B、图4A、图5A、图5B和图5C图示了具有多个DRAM层的3D DRAM的示例。
图2图示了单片计算和3D单片存储器的示例。单片3D存储器201包括多个存储器层210和一个NMOS或PMOS“完成层(completion layer)”216。在图2中的示例中,多个存储器层210包括两种类型的存储器:在金属堆叠中用许多层薄膜晶体管实现的存储器212,以及基于硅的NMOS或PMOS存储器层214。图2中的示例图示了两种类型的3D DRAM,然而,其他示例可以只包括基于薄膜晶体管的存储器层、基于硅的NMOS或PMOS存储器层、或者具有多个存储器层的另一种3D存储器。
在图示的示例中,用NMOS或PMOS存储器层形成的存储器包括完成层216。完成层216包括一层PMOS晶体管或一层NMOS晶体管,这些晶体管当与来自存储器层214的一些晶体管相结合时,为存储器层214形成控制逻辑和访问电路(CMOS电路)。用于存储器层的控制和访问的CMOS电路可包括例如读出放大器、驱动器、测试逻辑、定序逻辑、以及其他控制或访问电路。在一个示例中,如果存储器层214是NMOS存储器层,则完成层是PMOS层,以从PMOS层和来自NMOS存储器层的一些NMOS晶体管形成CMOS控制电路。从而,在具有多个NMOS DRAM层的一个这种示例中,多个NMOS DRAM层中的每一层包括NMOS选择晶体管和存储元件,并且PMOS层包括PMOS晶体管,以与来自多个NMOS DRAM层中的一层或多层的NMOS晶体管相结合形成CMOS电路。类似地,如果存储器层214是PMOS存储器层,则完成层是NMOS层,以从NMOS层和来自PMOS存储器层的一些PMOS晶体管形成CMOS控制电路。从而,在一个示例中,PMOS或NMOS层216包括用于控制逻辑的晶体管,但不包括存储器元件,因此不是存储器层,比如层214。在一个示例中,一些或所有的存储器层214包括存储器(选择晶体管和存储器元件),而不包括控制逻辑。在一个示例中,层214和216中的每一者只包括一种晶体管类型(例如,只有PMOS或只有NMOS),这降低了成本。
单片3D存储器技术使得能够用许多存储器层进行缩放,以形成一种与处理器集成的非常大的存储器。该大型集成存储器可以作为显著大于传统缓存的封装上缓存的一个或多个缓存(或缓存级别)来操作。从而,单片三维存储器201可以存储数据(例如,数据缓存线)和标签,以用作缓存。
(一个或多个)计算层202经由粘结技术(例如,粘结焊接凸点、球、暴露的触点、焊盘,等等)与3D存储器201粘结。(一个或多个)计算层202包括处理器核心、缓存控制器和其他计算逻辑。计算层202还可包括一个或多个SRAM来作为缓存进行操作。在一个示例中,至少一些标签被存储在计算层202中的SRAM中。例如,可以在计算层202中的SRAM中实现一个或多个标签缓存。
图3A图示了传统DRAM的选择晶体管和电容器的示例。DRAM管芯302包括单层DRAM选择晶体管304和选择晶体管304上方的电容器306。在图示的示例中,晶体管304的源极和漏极在晶体管的同一侧(例如,前侧(front side))308,并且电容器306被形成在晶体管304上方,在晶体管304的前端或前侧308。由于源极和漏极都在前侧,并且电容器在晶体管的前侧上方,因此从晶体管的底部到顶部的连接被阻断,将DRAM管芯限制到单个DRAM层。
与之不同,图3B图示了用于NMOS或PMOS存储器层的选择晶体管和存储器元件的示例,它们使得能够堆叠许多存储器层。图3B图示了NMOS或PMOS存储器层(例如,图2的存储器层214之一)的选择晶体管222和可形成于计算层202中的晶体管220。如上文关于图2所提及,NMOS或PMOS存储器层包括存储器元件和与存储器元件串联的选择晶体管。选择晶体管使得能够对存储器元件进行访问(例如,读取和写入)。选择晶体管222包括源极226、栅极230和漏极228。该晶体管与存储器元件224耦合。在图示的示例中,存储器元件224是电容器(例如,位线上方电容器(capacitor over bitline,COB))。从而,在图示的示例中,用埋在晶体管222下方的电容器224来实现小的存储器单元。然而,存储器元件224可以是任何能够存储一个或多个比特的存储器元件。例如,存储器元件可包括:易失性存储器元件,非易失性存储器元件,动态随机访问存储器DRAM元件,电容器,基于硫属化物的存储器元件,相变存储器(phase change memory,PCM)元件,纳米线存储器元件,铁电晶体管随机访问存储器(ferroelectric transistor random access memory,FeTRAM),磁阻随机访问存储器(magneto resistive random access memory,MRAM),包含了忆阻器(memristor)技术的存储器元件,自旋转移扭矩MRAM(spin transfer torque MRAM,STT-MRAM)元件,qubit(量子比特)元件,或者上述一种或多种的组合,或者其他存储器类型。
与包括位于并且连接在大致同一平面中的同一侧(例如,前侧)的源极和漏极端子的传统晶体管不同,每个存储器层214中的选择晶体管包括具有在不同平面中的源极和漏极的晶体管,使得多个存储器层能够堆叠在彼此之上并且连接在一起。
例如,图3B图示了可在存储器层214之一中形成的晶体管222的示例。选择晶体管222是一个示例,在晶体管的相反侧具有源极和漏极。在图示的示例中,漏极228位于并且连接在晶体管222的一个平面或一侧234(例如,前侧),而源极位于并且连接在晶体管222的第二平面侧236(例如,后侧(back side))。在另一个示例中,源极位于并且连接在晶体管222的前侧,而漏极位于并且连接在晶体管222的后侧。触点226相对于另一个触点228位于晶体管的相反侧,这使得能够以垂直方式连接位线(例如,从后侧触点226到前侧触点228通过晶体管,以构建许多互连的NMOS或PMOS晶体管层)。
图4A图示了在互连堆叠中形成的存储器层的示例。在一个示例中,互连堆叠中的存储器层212包括在硅衬底246上方的多层薄膜晶体管(参见方框244),以为3D DRAM提供存储器阵列240。存储器层240可以被制作在互连或金属层之间。如图4B中更详细地示出的,存储器单元可包括一个晶体管和一个电容器,以形成串联的DRAM选择晶体管和电容器。金属互连中的晶体管可以是例如在低温下制作的薄膜晶体管或硅晶体管。虽然图4A和4B示出了电容器作为存储器元件,但互连堆叠中的存储器层可以用其他存储器元件来形成,例如上文关于图3B论述的存储器元件。
再次转到图4A,在图示的示例中,底层包括衬底246,它包括扩散接触(diffcon)材料。其上形成存储器层的管芯可包括互连(M)层和层间(V)层的交替层。在图示的示例中,存储器单元阵列240的晶体管位于金属层之间。在图示的示例中,用于存储器单元的电容器位于层间层中。额外的金属层可以位于阵列240的上方。从而,该阵列位于金属层之间。虽然图4A只示出了一个层级或者一层存储器单元,但存储器可包括堆叠在彼此之上的多层级或多层存储器单元。
存储器层212可以被制作在衬底246的后侧,并且利用TSV(硅通孔)与衬底246前侧的CMOS电路相耦合。在一个示例中,存储器阵列240可以被镜像在硅衬底246的两侧。由于物理阵列可以与硅衬底246被分开制作,所以存储器层可以被形成在硅衬底246的前侧和后侧的任一者或两者上。存储器层可以被粘结到计算层202。
图5A-5C图示了具有集成的3D DRAM的3D计算的变型。在图5A-5C中,具有集成3D存储器的3D计算设备包括NMOS存储器层213、PMOS完成层215、以及计算层202。与上文关于图2论述的存储器层214一样,每个NMOS层213是存储器层,同时具有存储器元件224和选择晶体管222。PMOS层215为存储器控制电路提供PMOS晶体管。虽然图5A-5C中的示例将存储器层示为NMOS存储器层,但其他示例可包括PMOS存储器层和NMOS完成层。CMOS层202包括计算电路,例如处理器核心、缓存控制逻辑和一个或多个缓存的SRAM。图5A图示了具有集成3DDRAM的3D计算的示例,其中电力是从底部供应的。在图示的示例中,NMOS存储器层213、PMOS层215和计算层202中的晶体管在两侧(前端和后端)都具有连接,以使得能够通过晶体管从一层连接到另一层,从而使得所有的层213、202和202都能够被连接,并且使得能够穿过所有的层经由凸点218从底部输送电力。
在图5A的示例中,电力要被从计算层202下面经由凸点218供应,凸点218与封装和/或底层PCB(印刷电路板)相对接。如上所述,计算层202和PMOS层215中的晶体管包括在两侧或两端有连接的晶体管,以实现了穿过层的和层之间的连接。在图5A中图示的示例中,PMOS完成层215和计算层202可包括晶体管,例如晶体管221。晶体管221在两端(例如,前端和后端)包括触点。如上所述,通常情况下,晶体管是用位于晶体管的顶部或前侧的源极和漏极来连接的。晶体管221包括前侧的源极512和漏极506以及后侧510的触点508。前侧502的源极512和漏极506使得晶体管221能够与前侧的触点连接并且被利用该触点来操作,并且后侧510的源极508使得晶体管能够被从后端到前端(或者从前端到后端)操作,以通过晶体管221连接相邻的层。从而,晶体管221可以用源极512或源极508来操作。
图5B图示了一个示例,其中电力是从顶部供应的。例如,电力经由与封装相对接的凸点218被输送通过并到达NMOS存储器层213、PMOS层215和计算层202。因为电力不是从底部通过计算层供应的,所以计算层中的晶体管220可包括在晶体管的同一侧或同一端(例如,前侧532)的源极533和漏极536。
图5C图示了另一个具有集成3D存储器的3D计算设备。在图5C中图示的示例中,许多存储器层213被添加到基础管芯550。NMOS存储器层213和PMOS层215可以经由层转移工艺被添加到基础管芯550,或者存储器层可以被淀积在基础管芯550上。在一个示例中,NMOS存储器层包括具有存储器元件和NMOS晶体管的硅层(例如,单晶硅)。在一个这样的示例中,基于硅的存储器层经由层转移工艺被转移到基础管芯。在一个这样的示例中,选择晶体管和存储器元件的方向可以被颠倒,如图5C所示。在另一个示例中,NMOS层213包括薄膜晶体管与存储器元件。在一个这样的示例中,薄膜晶体管包括活性材料(例如,多晶硅、非晶硅、氧化铟镓锆、TMD(过渡金属二硫化物)、或其他活性材料),这些材料被淀积在基础管芯550上以在基础管芯550上形成薄膜晶体管。基础管芯550包括TSV(硅通孔)552,以连接存储器层213、PMOS层215和基础管芯550中的存储器层与计算层202。基础管芯550和计算层202可以经由触点556使用粘结技术粘结在一起。虽然图5C图示了基础管芯在计算管芯上方的示例,但基础管芯可以在一个或多个计算管芯下方或者在计算管芯上方。
从而,3D DRAM可以与计算逻辑集成,以提供高密度和低成本的DRAM,从而以低成本实现高性能、低时延和低功率。通过支持大量的存储器层,低成本存储器可以以低成本与处理器集成。通过将存储器与CMOS解耦,可以实现用于制作集成存储器的简化工艺,其成本只是传统工艺的一小部分。在一个示例中,存储器是解耦的,但由于在CMOS层中实现了计算,所以是紧密集成的。在一个示例中,计算层支持高性能微处理器设计。在一个示例中,存储器层包括只有单个NMOS晶体管与存储器元件或只有单个PMOS晶体管与存储器元件的存储器单元,其中每一层只是NMOS或只是PMOS。3D DRAM可用于创建低时延的缓存,该缓存与微处理器紧密集成,以创建高性能的设计(例如,高性能处理器或非常宽的机器)。可以为各种应用实现集成3D DRAM,例如人工智能(artificial intelligence,AI)处理器或加速器、图形(例如,图形处理单元(graphics processing unit,GPU)或图形加速器)、视觉处理单元(vision processing unit,VPU),等等。
如上所述,3D DRAM的一个应用是在高性能逻辑之上或之下以3D单片的方式形成一个或多个3D缓存。图6A和6B图示了具有集成的3DDRAM缓存的缓存层次体系的示例。
图6A图示了具有集成的3D DRAM缓存的共享缓存层次体系的示例。图6A中的共享缓存层次体系具有经由相干链路610连接的两个插口602A和602B。从而,插口602A和602B共享相同的存储器地址映射图,并且窥探过滤器跟踪来自插口602A的本地存储器和插口602B的本地存储器的数据。每个插口具有处理器核心。在图示的示例中,每个插口的处理器核心处于群组中,这些群组共享一个或多个级别的缓存。例如,插口602A具有两个群组603A和605A的核心,并且插口602B具有两个群组603B和605B的核心。在图示的示例中,每个群组603A、605A、603B和605B具有一个到N个核心(核心1-n)。核心的群组可以共享缓存的集群,例如L2和/或L3缓存。例如,群组603A中的核心共享L2/L3缓存604A,并且群组605A中的核心共享L2/L3缓存608A。类似地,群组603B中的核心共享L2/L3缓存604B,并且群组605B中的核心共享L2/L3缓存608B。L2和L3缓存可以是包含性的或非包含性的。
与传统的缓存层次体系不同,图6A中图示的缓存层次体系包括大型第4级(L4)缓存,该缓存是用与核心一起在封装上的集成3D DRAM来实现的。例如,L4缓存606A与群组603A和605A的核心在同一封装上,并且L4缓存606B与群组603B和605B的核心在同一封装上。在图6A中图示的示例中,一插口中的所有核心共享相同的L4缓存。在一个示例中,L4缓存是最后一级缓存(LLC)。例如,群组603A和605A中的核心共享相同的L4缓存606A,并且群组603B和605B中的核心共享相同的L4缓存606B。每个插口中的核心也可以访问本地存储器或远程存储器。从而,封装上L4缓存606A可以存储来自本地存储器(例如,插口602A的本地存储器)和远程存储器(例如,插口602B的本地存储器)的缓存线。类似地,封装上L4缓存606B可以存储来自本地存储器(例如,插口602B的本地存储器)和远程存储器(例如,插口602A的本地存储器)的缓存线。
图6B图示了具有集成的3D DRAM缓存的缓存层次体系的另一个示例。与图6A一样,图6B的缓存层次体系包括两个经由相干链路610连接的插口602C和602D。插口602C和602D共享相同的存储器地址映射图,并且窥探过滤器跟踪来自插口602C的本地存储器和插口602D的本地存储器的数据。每个插口具有处理器核心。在图示的示例中,每个插口的处理器核心处于群组中,这些群组共享一个或多个级别的缓存。例如,插口602C具有两个群组603C和605C的核心,并且插口602B具有两个群组603D和605D的核心。在图示的示例中,每个群组603C、605C、603D和605D具有一个到N个核心(核心1-n)。核心的群组可以共享缓存的集群,例如L2和/或L3缓存。例如,群组603C中的核心共享L2/L3缓存604C,并且群组605C中的核心共享L2/L3缓存608C。类似地,群组603D中的核心共享L2/L3缓存604D,并且群组605D中的核心共享L2/L3缓存608D。L2和L3缓存可以是包含性的或非包含性的。
图6B中图示的缓存层次体系还包括第4级(L4)缓存。例如,L4缓存606C与群组603C和605C的核心在同一封装上,并且L4缓存606D与群组603D和605D的核心在同一封装上。在图6B中图示的示例中,一插口中的所有核心共享相同的L4缓存。例如,群组603C和605C中的核心共享相同的L4缓存606C,并且群组603D和605D中的核心共享相同的L4缓存606D。每个插口中的核心也可以访问本地或远程存储器。从而,封装上L4缓存606C可以存储来自本地存储器(例如,插口602C的本地存储器)和远程存储器(例如,插口602C的本地存储器)的缓存线。在一个示例中,L4缓存是最后一级缓存(LLC)。
也与图6A一样,图6B的缓存层次体系包括大型封装上缓存,该缓存是用与处理器核心一起在封装上的集成3D DRAM来实现的。例如,插口602C具有在与处理器核心603C和605C相同的封装上的存储器侧缓存607C。类似地,插口602D具有在与处理器核心603D和605D相同的封装上的存储器侧缓存607D。在一个示例中,存储器侧缓存607C和607D与集成存储器控制器和处理器核心在同一封装上,并且在逻辑上位于集成存储器控制器和存储器之间,以缓存来自封装外存储器的缓存线。在图6B中图示的示例中,存储器侧缓存只存储本地存储器地址。例如,存储器侧缓存607C只存储来自插口602C的本地存储器的缓存线。类似地,存储器侧缓存607D只存储来自插口602D的本地存储器的缓存线。从而,图6B中的缓存架构包括集成3D DRAM中的L4缓存和存储器侧缓存。虽然L4缓存被示为比存储器侧缓存小,但附图不是按比例的;L4缓存可以比存储器侧缓存更小、同样大小、或者更大。在另一个示例中,缓存层次体系包括集成3D DRAM中的存储器侧缓存(例如,存储器侧缓存607C或607D),而不包括L4缓存。
虽然图6A和6B中的示例示出了两个插口,但具有一个或多个由集成3D DRAM形成的缓存的缓存层次体系可包括不同数目的插口(1、4,等等)。此外,虽然图6A和6B图示了集成的L4和存储器侧缓存,但本文描述的技术可以适用于任何级别的大型集成缓存(例如,L4、L5、存储器侧,等等),其可能是最后一级缓存(LLC)。
如上所述,包括大型集成L4缓存或存储器侧缓存的缓存层次体系可能具有显著的标签开销。考虑具有64B缓存线的示例,每个缓存线的标签可能会消耗例如每个缓存线的几个字节。对于大小是传统集成缓存的数十倍或数百倍的L4或存储器侧缓存而言,仅标签开销就可能占用传统缓存的空间(例如,数十兆字节)。此外,对于大型L4或存储器侧缓存的缓存查找操作可能会由于缓存中的大量的条目而导致延迟。
一个或多个标签缓存可以通过使得能够绕过L4和存储器侧缓存中的标签查找(例如,标签访问和比较)来实现更快的缓存访问。图7A和7B图示了标签缓存的示例框图。图7A图示了L4标签缓存702,并且图7B图示了存储器侧标签缓存704的示例。L4缓存706和存储器侧缓存708可以与上文论述的图1E的L4缓存117和存储器侧缓存119相同或相似。L4缓存706存储数据缓存线(例如,数据1,数据2...数据N)和关联的标签和状态信息(例如,标签1,标签2...标签N)。标签包括关联的数据缓存线的地址的标识符或描述。类似地,存储器侧缓存708存储数据缓存线和关联的标签和状态信息。缓存可以被组织为多个库组705和707。在库组内,缓存可以被组织成多个集合、多路,等等。从而,存储器侧缓存708可包括或被组织为多个存储器侧缓存库组707。L4缓存706可包括或被组织为多个L4缓存库组。在一个示例中,这些库组是可以同时访问的。其他缓存组织是可能的。
L4标签缓存702存储最近从L4缓存访问的缓存线的标签。类似地,存储器侧标签缓存704存储最近从存储器侧缓存708访问的缓存线的标签。标签缓存702和704是图1E的(一个或多个)标签缓存113的示例。L4标签缓存702和存储器侧标签缓存704可以被实现在计算逻辑(例如,处理器)上的SRAM中。在一个示例中,标签缓存702和704被组织在与缓存706和708的库组相对应的库组709和713中。例如,L4标签缓存702可以被组织为与L4缓存704相同数目的库组,并且L4标签缓存702的库组对应于L4缓存的库组(例如,标签缓存702的库组0对应于L4缓存704的库组0)。类似地,存储器侧标签缓存704可以被组织为与存储器侧缓存708相同数目的库组,并且存储器侧标签缓存704的库组对应于存储器侧缓存708的库组。在另一示例中,多个缓存库组可以对应于标签缓存库组。例如,L4标签缓存702可具有比L4缓存更少的库组,并且多个库组(例如,2个或更多个库组705)对应于L4标签缓存的每个库组709。
不管是哪种组织方式,标签缓存702和704存储来自相应缓存的标签的子集。在图示的示例中,L4缓存中的标签2最近被访问并且被插入到L4标签缓存702中。如果接收到另一个存储器访问请求,其地址与标签2相匹配,则可以直接访问数据(例如,数据2),而无需访问和比较L4缓存中的标签。在图示的示例中,位置信息(例如,索引、指针、参考或其他位置信息)与L4标签缓存中的每个标签相关联,以标识与该标签相关联的数据在L4缓存中的位置。类似地,存储器侧标签缓存中的每个条目包括位置信息,以标识与该标签相关联的数据在存储器侧缓存中的位置。虽然图7A和7B中图示的示例示出了L4和存储器侧缓存,但标签缓存可被用于任何级别的大型集成缓存。
图8A和8B图示了缓存访问流程的示例。图8A图示了传统缓存访问流程。图8B图示了具有标签缓存的缓存访问流程。图8A和8B都图示了具有缓存数据、标签和状态信息的缓存。例如,图8A图示了存储缓存数据802以及标签和状态信息804的缓存801。类似地,图8B图示了存储缓存数据812以及标签和状态信息814的缓存810。图8B的缓存810可以是例如在集成3D DRAM中实现的L4缓存或存储器侧缓存。
首先转到图8A,缓存控制器接收地址(A),从缓存801读取标签(803),并且将地址与标签进行比较(805)。如果存在命中(806),则缓存控制器从缓存801取回数据并且将数据返回给作出请求的处理器核心(807)。
与之不同,图8B中的流程涉及缓存控制器接收地址(A)并且从标签缓存827读取标签(813)。标签缓存827可以被实现在SRAM中。地址被与从标签缓存827读取的标签进行比较(819)。如果在标签缓存827中存在错失(miss),那么缓存控制器从3D DRAM缓存810读取标签(815)。然后可以将地址与来自3D DRAM缓存810的标签进行比较(817),并且如果在3DDRAM缓存810中存在命中,则可以从3D DRAM缓存810取回数据(825)。在一个示例中,缓存控制器将从3D DRAM缓存810读取的标签填充到标签缓存827中。在一个示例中,填充标签缓存涉及将匹配的标签从3D DRAM缓存存储到标签缓存中。如果在标签缓存827中存在命中,则缓存控制器直接从缓存810取回数据(821),而不从缓存810读取或比较标签。然后,该数据可以被返回(823)给请求者。因为标签缓存827较小并且是在SRAM中实现的,所以标签的读取和与地址的比较比从更大的DRAM缓存810读取和比较标签更快。从而,对更大的集成3DDRAM缓存810的访问时间可得以显著改善。
图9A和9B是图示了带有标签缓存的缓存访问流程的示例的流程图。图9A的方法900A和图9B的方法900B可以由硬件逻辑(例如,电路)、固件或者硬件和固件的组合来执行。例如,处理器或其他计算逻辑(例如图1E的缓存控制器115)中的电路可以执行缓存访问流程900A。
流程900A开始于,在901,请求者(例如,处理器核心)发送访问请求和地址,并且基于该地址确定目标3D DRAM缓存库组和控制器库组。例如,在具有在集成3D DRAM中实现的库组式L4缓存(例如,包括多个L4缓存库组的L4缓存)的系统中,缓存控制器可被组织为相应的缓存控制器库组。电路(其可以是缓存控制器电路的一部分或者与缓存控制器电路分开)确定多个L4缓存库组中哪个是地址所针对的,并且将请求发送到多个缓存控制器库组中与地址所针对的L4缓存库组相对应的一个缓存控制器库组。在一个示例中,目标缓存库组和控制器库组是通过对请求地址进行地址散列以确定该地址所针对的具体缓存库组和控制器库组来确定的。然而,在其他示例中,3D DRAM缓存不是库组化的,因此,请求可以被直接发送到缓存控制器,而不确定目标库组。
在902,缓存控制器(或控制器库组)接收带有地址的请求。该请求可以是例如存储器读取或存储器写入请求,以访问存储器(例如,主存储器)中的某地址处的数据。在904,缓存控制器访问标签缓存中的标签。例如,参考图7A,缓存控制器从标签缓存702读取一个或多个标签。然后,在905,缓存控制器将来自标签缓存的标签与地址进行比较。在一个示例中,缓存控制器包括比较器,以将地址与一个或多个标签进行比较,以确定是否存在匹配。响应于标签缓存中的命中,906“是”分支,缓存控制器在911处基于标签计算数据地址,并且在912处访问集成3D DRAM缓存中的数据。例如,参考图7A,标签缓存702包括与每个标签相关联的位置信息,该位置信息使得缓存控制器能够确定数据位置并且访问3DDRAM缓存中与标签相对应的缓存线。从而,缓存控制器可以直接从集成3D DRAM缓存中由标签缓存中的条目指示的位置访问数据。然后,在914,缓存控制器向请求者提供响应。例如,缓存控制器可以向请求者提供数据,或者指出数据的存储位置。
响应于标签缓存中的错失,906“否”分支,缓存控制器在907处从3D DRAM缓存访问标签,并且在908处将标签与地址相比较。例如,参考图7A,缓存控制器访问L4缓存706中的标签并且将标签与地址进行比较。如果在3D DRAM缓存中存在命中,909“是”分支,则缓存控制器在910处将标签填充到标签缓存中。然后缓存控制器可以在911处计算数据地址,在912处访问数据,并且在914处向请求者提供数据响应。
如果在3D DRAM缓存中存在错失,909“否”分支,则缓存控制器在921处访问封装外存储器以取回数据。然后,在923,缓存控制器将数据和标签填充到3D DRAM缓存中并且将标签填充到标签缓存中。然后,在914,控制器可以向请求者提供响应。
图9B图示了在集成3D DRAM中具有两级缓存的系统中的示例缓存访问流程。例如,参考图6B,插口602C的缓存层次体系包括L4缓存606C和存储器侧缓存607C。在一个这样的示例中,响应于L4缓存中的错失,在访问存储器侧缓存中的标签之前,访问第二标签缓存。图9B的方法900B从图9A的块909“否”分支开始(第一3D DRAM缓存中的错失)。如果在第一3DDRAM缓存中存在错失,则缓存控制器在952处访问第二标签缓存中的标签,并且在954处将来自第二标签缓存的标签与地址相比较。例如,参考图7B,如果在L4标签缓存702和L4缓存706中都存在错失,则存储器侧标签缓存704中的标签被读取并且与地址进行比较。
响应于第二标签缓存中的命中,956“是”分支,计算数据地址,并且在960,在第二标签缓存中的条目所指示的位置,访问来自存储器侧缓存的数据。然后,在970,缓存控制器可以向请求者提供响应。响应于第二标签缓存中的错失,956“否”分支,在962处访问来自第二3D DRAM缓存(例如,存储器侧缓存)的标签,并且在964处将其与地址进行比较。如果在第二3D DRAM缓存中存在命中,965“是”分支,则在968,标签被填充到第二标签缓存中。然后,在958,可以计算数据地址,在960,可以在第二3D DRAM缓存中访问数据,并且在970,向请求者提供响应。
响应于第二3D DRAM缓存中的错失,965“否”分支,在921,从封装外存储器取回数据。然后,数据和标签被填充到第二3D DRAM缓存中,并且标签被填充到第二标签缓存中。然后,在970,缓存控制器可以向请求者提供响应。在一个示例中,数据和标签也可以被填充到L4缓存中,并且标签可以被填充到第一标签缓存中。
图10是图示出缓存访问流程的示例的框图。图10示出了不同域或电路块之间的随时间的流程。在一个示例中,核心执行加载指令,计算地址,并且针对地址检查较低级别缓存(例如,L1、L2、L3,等等)。如果存在错失,则核心(例如,核心边界1002)经由接口向网状网络和缓存控制器库组1004发送请求。控制器库组将请求发送到标签缓存1006,并且确定在标签缓存中是否存在命中或错失。如果在标签缓存中存在错失,则检查第二级标签1008(例如,用于集成3D DRAM缓存的标签)以确定是否存在命中或错失。如果存在命中,则标签填充电路1010将标签填充到标签缓存中,并且数据被从集成3D DRAM缓存1012访问。然后,响应和数据经由网状网络被发送到核心边界1014。
从而,一个或多个大型缓存,例如L4和存储器侧缓存,可以与计算逻辑一起被集成在同一封装中。一个或多个标签缓存可以被包括在计算逻辑中,以实现对L4和存储器侧缓存的更快速访问。下面的描述描述了可以用来实现集成3D DRAM缓存的示例性系统和架构。
图11A-11B图示了包括缓存层次体系的系统1102A和1102B的示例的框图。图11A-11B每个都包括处理器核心1104和每个核心私有的L2缓存1106。结构(fabric)1108将核心与L3缓存耦合,L3缓存被一组核心共享。结构1108和1116将核心与L4缓存、一个或多个存储器控制器(例如,DDR 1122和CXL.mem 1118)、相干链路逻辑(例如,UPI 1120)和一个或多个I/O控制器(例如,PCIe 1112和CXL.io 1114)耦合。在图11A-11B中的示例中,L4缓存是由所有核心共享的(例如,在系统或SOC(片上系统)级别)。图11A图示了一个示例,其中L4缓存1124是与处理器核心1104集成的3D DRAM,并且L3缓存1110A是在SRAM中实现的。图11B图示了一个示例,其中L4缓存1124和L3缓存1110B都是与处理器核心1104集成的3D DRAM。在L3缓存被实现在3D DRAM中的示例中,第三标签缓存可被用于存储最近从L3缓存访问的标签。
图12A是示出了示例性有序管线和示例性寄存器重命名、无序发布/执行管线两者的框图。图12B是示出了要被包括在处理器中的示例性有序架构核心和示例性寄存器重命名、无序发布/执行架构核心两者的框图。图12A-B中的实线框示出了有序管线和有序核心,而可选择添加的虚线框示出了寄存器重命名、无序发布/执行管线和核心。假定有序方面是无序方面的子集,将描述无序方面。
在图12A中,处理器管线1200包括提取(fetch)阶段1202、长度解码阶段1204、解码阶段1206、分配阶段1208、重命名阶段1210、调度(也被称为调派或发布)阶段1212、寄存器读取/存储器读取阶段1214、执行阶段1216、写回/存储器写入阶段1218、异常处理阶段1222、和提交阶段(commit stage)1224。
图12B示出了处理器核心1290,其包括耦合到执行引擎单元1250的前端单元1230,并且执行引擎单元1250和前端单元1230两者都耦合到存储器单元1270。核心1290可以是在与3D DRAM集成的计算层中实现的核心的示例,例如图2的计算层202。核心1290可以是精简指令集计算(RISC)核心、复杂指令集计算(CISC)核心、超长指令字(VLIW)核心、或混合或替代的核心类型。作为另一种选择,核心1290可以是专用核心,例如,网络或通信核心、压缩引擎、协处理器核心、通用计算图形处理单元(GPGPU)核心、图形核心等。
前端单元1230包括耦合到指令缓存单元1234的分支预测单元1232,指令缓存单元1234耦合到指令转换后备缓冲器(TLB)单元1236,指令转换后备缓冲器1236耦合到指令提取单元1238,指令提取器1238耦合到解码单元1240。解码单元1240(或解码器)可以解码指令,并且生成作为输出的一个或多个微操作、微代码入口点、微指令、其他指令、或其他控制信号,它们解码自原始指令或以其他方式反映原始指令或导出自原始指令。可以使用各种不同的机制来实现解码单元1240。合适机制的示例包括但不限于查找表、硬件实现方式、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核心1290包括微代码ROM或存储用于某些宏指令的微代码的其他介质(例如,在解码单元1240中或在前端单元1230内)。解码单元1240耦合到执行引擎单元1250中的重命名/分配器单元1252。
执行引擎单元1250包括重命名/分配器单元1252,其耦合到引退(retirement)单元1254和一组一个或多个调度器单元1256。(一个或多个)调度器单元1256表示任意数目的不同调度器,包括,预留站(reservations station)、中央指令窗等。(一个或多个)调度器单元1256耦合到(一个或多个)物理寄存器文件单元1258。每个物理寄存器文件单元1258表示一个或多个物理寄存器文件,这些物理寄存器文件中的不同的物理寄存器文件存储一个或多个不同的数据类型,例如,标量整数、标量浮点、打包整数、打包浮点、向量整数、向量浮点、状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个示例中,物理寄存器文件单元1258包括向量寄存器单元、写入掩码寄存器单元、和标量寄存器单元。这些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。(一个或多个)物理寄存器文件单元1258与引退单元1254重叠,以说明寄存器重命名和无序执行可以被实现的各种方式(例如,使用(一个或多个)重新排序缓冲器和(一个或多个)引退寄存器文件;使用(一个或多个)未来文件、(一个或多个)历史缓冲器、和(一个或多个)引退寄存器文件;使用寄存器图和寄存器池;等等)。引退单元1254和(一个或多个)物理寄存器文件单元1258耦合到(一个或多个)执行集群1260。(一个或多个)执行集群1260包括一组一个或多个执行单元1262和一组一个或多个存储器访问单元1264。执行单元1262可以对各种类型的数据(例如,标量浮点、打包整数、打包浮点、向量整数、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。虽然一些实施例可以包括专用于特定功能或功能集的多个执行单元,但是其他实施例可以仅包括一个执行单元或者全部执行所有功能的多个执行单元。(一个或多个)调度器单元1256、(一个或多个)物理寄存器文件单元1258、和(一个或多个)执行集群1260被示为可能是多个,因为某些实施例针对某些类型的数据/操作创建单独的管线(例如,标量整数管线、标量浮点/打包整数/打包浮点/向量整数/向量浮点管线、和/或存储器访问管线,其中每个管线都有自己的调度器单元、物理寄存器文件单元、和/或执行集群-并且在单独的存储器访问管线的情况下,其中仅该管线的执行集群具有(一个或多个)存储器访问单元1264的某些实施例被实现)。还应理解,在使用单独的管线的情况下,这些管线中的一个或多个可以是无序发布/执行而其余的是有序发布/执行的。
该组存储器访问单元1264耦合到存储器单元1270,存储器单元1270包括耦合到数据缓存单元1274的数据TLB单元1272,其中数据缓存单元1274耦合到2级(L2)缓存单元1276。在一个示例性实施例中,存储器访问单元1264可以包括加载单元、存储地址单元、和存储数据单元,其中的每个单元耦合到存储器单元1270中的数据TLB单元1272。在一个示例中,TLB单元1272存储虚拟存储器地址到物理存储器地址的转化。指令缓存单元1234还耦合到存储器单元1270中的2级(L2)缓存单元1276。L2缓存单元1276耦合到一个或多个其他级别的缓存并最终耦合到主存储器。
一个或多个级别的数据缓存和/或一个或多个级别的标签缓存可以用与核心1290集成的3D DRAM来实现。例如,集成的3D DRAM 1275与存储器单元1270相耦合。集成的3DDRAM可包括一个或多个缓存,例如L4缓存1279和存储器侧缓存1277,和/或其他缓存。一些缓存(例如,L4,等等)可由多个核心共享,而其他缓存可以是某个核心私有的。在图示的示例中,一个或多个标签缓存1271被实现在存储器单元1270上。存储器单元1270包括缓存控制逻辑1269(例如,缓存控制器,比如图1E的缓存控制器115)。
作为示例,示例性寄存器重命名的无序发布/执行核心架构可以按如下方式实现管线1200:1)指令提取1238执行提取和长度解码阶段1202和1204;2)解码单元1240执行解码阶段1206;3)重命名/分配器单元1252执行分配阶段1208和重命名阶段1210;4)(一个或多个)调度器单元1256执行调度阶段1212;5)(一个或多个)物理寄存器文件单元1258和存储器单元1270执行寄存器读取/存储器读取阶段1214;执行集群1260执行执行阶段1216;6)存储器单元1270和(一个或多个)物理寄存器文件单元1258执行写回/存储器写入阶段1218;7)异常处理阶段1222中可能涉及各个单元;8)引退单元1254和(一个或多个)物理寄存器文件单元1258执行提交阶段1224。
核心1290可以支持一个或多个指令集(例如,x86指令集(具有已经添加有较新版本的一些扩展);美国加利福尼亚州桑尼维尔市的MIP Technologies的MIPS指令集;美国加利福尼亚州桑尼维尔市的ARM Holdings的ARM指令集(具有可选的附加扩展,例如,NEON)),包括本文所描述的(一个或多个)指令。在一个实施例中,核心1290包括支持打包数据指令集扩展(例如,AVX1、AVX2)的逻辑,从而允许要使用打包数据来执行的许多多媒体应用所使用的操作。
应理解,核心可以支持多线程(执行两个或更多个并行的操作集或线程集),并且可以以各种方式这样做,这些方式包括时间分片多线程、同时多线程(其中,单个物理核心为该物理核心正在同时进行多线程的每个线程提供逻辑核心)、或它们的组合(例如,时间分片的提取和解码以及此后同时的多线程,例如,在
Figure BDA0003502296240000231
超线程技术中)。
虽然在无序执行的上下文中描述了寄存器重命名,但应理解,寄存器重命名可以用在有序架构中。虽然所示处理器的实施例还包括单独的指令和数据缓存单元1234/1274以及共享的L2缓存单元1276,但替代实施例可以具有用于指令和数据两者的单个内部缓存,例如,1级(L1)内部缓存、或多级内部缓存。在一些实施例中,系统可以包括内部缓存和外部缓存的组合,其中外部缓存在核心和/或处理器外部。替代地,全部缓存可以在核心和/或处理器外部。
图13A-B示出了更具体的示例性有序核心架构的框图,其中核心将是芯片中的若干逻辑块(可能包括相同类型和/或不同类型的其他核心)中的一个逻辑块。逻辑块通过高带宽互连网络(例如,环形网络)与某固定功能逻辑、存储器I/O接口、和其他必要的I/O逻辑通信,这取决于应用。
图13A是根据本发明的一些实施例的单个处理器核心以及其与管芯上互连网络1302的连接以及其在2级(L2)缓存1304的本地子集的框图。在一个示例中,指令解码器1300支持具有打包数据指令集扩展的x86指令集。L1缓存1306允许低等待时间的访问以将存储器缓存到标量和向量单元中。虽然在一个示例中(为了简化设计),标量单元1308和向量单元1310使用单独的寄存器组(分别为标量寄存器1312和向量寄存器1314),并且它们之间传输的数据被写入到存储器然后从1级(L1)缓存1306中读回,但是替代示例可以使用不同的方法(例如,使用单个寄存器组或包括允许数据在两个寄存器文件(file)之间传输而不被写入和读回的通信路径)。
L2缓存的本地子集1304是全局L2缓存的一部分,全局L2缓存被划分为分开的本地子集,每个处理器核心一个本地子集。每个处理器核心具有到其自己的L2缓存的本地子集1304的直接访问路径。由处理器核心读取的数据被存储在其L2缓存子集1304中并且可以与访问它们自己的本地L2缓存子集的其他处理器核心并行地被快速访问。由处理器核心写入的数据被存储在其自己的L2缓存子集1304中,并且在需要的情况下被从其他子集冲刷(flushed)。环形网络确保共享数据的一致性。环形网络是双向的,以允许诸如处理器核心、L2缓存、和其他逻辑块之类的代理在芯片内彼此通信。在一个示例中,每个环形数据路径在每个方向上为1012位宽。
图13B是图13A中的处理器核心的一部分的示例的展开图。图13B包括作为L1缓存1306的一部分的L1数据缓存1306A,以及关于向量单元1310和向量寄存器1314的更多细节。具体地,向量单元1310是16宽的向量处理单元(VPU)(参见16宽的ALU 1328),它执行整数、单精度浮点、和双精度浮点指令中的一个或多个。VPU支持通过调配单元1320对寄存器输入进行调配,使用数字转换单元1322A-B进行数字转换,以及使用复制单元1324对存储器输入进行复制。写入掩码寄存器1326允许预测得到向量写入。
图14是可具有不止一个核心、可具有集成存储器控制器、且可具有集成图形的处理器1400的示例的框图。图14中的实线框示出了具有单核心1402A、系统代理单元1410、和一组一个或多个总线控制器单元1416的处理器1400;但虚线框的可选添加示出了具有以下各项的替代处理器1400:多个核心1402A至1402N、系统代理单元1410中的一组一个或多个集成存储器控制器单元1414、以及专用逻辑1408。
因此,处理器1400的不同实现方式可以包括:1)具有专用逻辑1408的CPU(其中专用逻辑是集成图形和/或科学(吞吐量)逻辑(其可以包括一个或多个核心)),以及核心1402A-N(其是一个或多个通用核心(例如,通用有序核心、通用无序核心、或两者的组合);2)具有核心1402A-N的协处理器(其中核心1402A-N是主要用于图形和/或科学(吞吐量)的大量专用核心);3)具有核心1402A-N的协处理器(其中核心1402A-N是大量通用有序核心)。因此,处理器1400可以是通用处理器、协处理器、或专用处理器,例如,网络或通信处理器、压缩引擎、图形处理器、GPGPU(通用图形处理单元)、高吞吐量的许多集成核心(MIC)协处理器(包括30个或更多个核心)、嵌入式处理器等等。处理器可以在一个或多个芯片上实现。处理器1400可以是一个或多个衬底的一部分和/或可以通过使用多种工艺技术(例如,BiCMOS、CMOS或NMOS)中的任何一种来在一个或多个衬底上实现。
存储器层级包括核心内的一个或多个级别的缓存、一组或一个或多个共享缓存单元1406、以及耦合到该组集成存储器控制器单元1414的外部存储器(未示出)。该组共享缓存单元1406可以包括一个或多个中级缓存(例如,2级(L2)、3级(L3)、4级(L4)),或其他级别的缓存、最后级别缓存(LLC)、和/它们的组合。一个或多个级别的缓存可被实现在封装上3DDRAM中。虽然在一个示例中,基于环的互连单元1412对集成图形逻辑1408(集成图形逻辑1408是专用逻辑的示例并且在本文中也被称为专用逻辑)、该组共享缓存单元1406、以及系统代理单元1410/(一个或多个)集成存储器控制器单元1414进行互连,但替代示例可以使用任何数目的众所周知的技术来互连这些单元。在一个示例中,在一个或多个缓存单元1406和核心1402A-N之间维持一致性。
在一些示例中,核心1402A-N中的一个或多个核心能够进行多线程。系统代理1410包括协调和操作核心1402A-N的那些组件。系统代理单元1410可以包括例如电源控制单元(PCU)和显示单元。PCU可以是或可以包括调节核心1402A-N和集成图形逻辑1408的功率状态所需的逻辑和组件。显示单元用于驱动一个或多个外部连接的显示器。
核心1402A-N在架构指令集方面可以是同构的或异构的;也就是说,核心1402A-N中的两个或更多个核心可能能够执行相同的指令集,而其他核心可能能够执行仅该指令集的子集或不同的指令集。
图15-18是示例性计算机架构的框图。用于膝上型计算机、台式计算机、手持式PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持设备、和各种其他电子设备的本领域已知的其他系统设计和配置也是适合的。通常,能够结合本文所公开的处理器和/或其他执行逻辑的各种各样的系统或电子设备通常是合适的。
现在参考图15,示出了根据本发明的一个实施例的系统1500的框图。系统1500可以包括一个或多个处理器1510、1515,其耦合到控制器集线器1520。在一个实施例中,控制器集线器1520包括图形存储器控制器集线器(GMCH)1590和输入/输出集线器(IOH)1550(可以在分开的芯片上);GMCH 1590包括耦合到存储器1540和协处理器1545的存储器和图形控制器;IOH 1550将输入/输出(I/O)设备1560耦合到GMCH 1590。替代地,存储器和图形控制器中的一个或两个被集成在处理器内(如本文所描述的),存储器1540和协处理器1545直接耦合到处理器1510,以及包括IOH 1550的单个芯片中的控制器集线器1520。
图15中用虚线表示附加处理器1515的可选性质。每个处理器1510、1515可以包括本文所描述的处理核心中的一个或多个,并且可以是处理器1400的某个版本。一个或多个3D DRAM缓存1541与处理器1510集成。
存储器1540可以是例如动态随机存取存储器(DRAM)、相变存储器(PCM)、或这两者的组合。对于至少一个实施例,控制器集线器1520经由多点总线(multi-drop bus)与(一个或多个)处理器1510、1515通信,该多点总线例如是前端总线(FSB)、诸如QuickPath互连(QPI)之类的点对点接口、或类似的连接1595。
在一个实施例中,协处理器1545是专用处理器,例如,高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。在一个实施例中,控制器集线器1520可以包括集成图形加速器。
在物理资源1510、1515之间在包括架构特性、微架构特性、热特性、功耗特性等的指标度量的范围方面可存在各种差异。
在一个实施例中,处理器1510执行控制一般类型的数据处理操作的指令。嵌入在指令内的可以是协处理器指令。处理器1510将这些协处理器指令识别为应该由所附接的协处理器1545执行的类型。因此,处理器1510将这些协处理器指令(或表示协处理器指令的控制信号)发布到协处理器总线或其它互连上,以到协处理器1545。(一个或多个)协处理器1545接受并执行所接收的协处理器指令。
现在参考图16,示出了根据本发明的实施例的第一更具体的示例性系统1600的框图。如图16所示,多处理器系统1600是点对点互连系统,并且包括经由点对点互连1650耦合的第一处理器1670和第二处理器1680。处理器1670和1680中的每一个处理器可以是处理器1400的某个版本。在一些实施例中,处理器1670和1680分别是处理器1510和1515,而协处理器1638是协处理器1545。在另一个实施例中,处理器1670和1680分别是处理器1510和协处理器1545。
处理器1670和1680被示出为分别包括集成存储器控制器(IMC)单元1672和1682。处理器1670还包括作为其总线控制器单元的一部分的点对点(P-P)接口1676和1678;类似地,第二处理器1680包括P-P接口电路1686和1688。处理器1670、1680可以使用P-P接口电路1678、1688经由点对点(P-P)接口1650来交换信息。如图16所示,IMC 1672和1682将处理器耦合到相应的存储器(即,存储器1632和存储器1634),这些存储器可以是本地附接到相应处理器的主存储器的一部分。
处理器1670、1680可以各自使用点对点接口电路1676、1694、1686、1698经由各个P-P接口1652、1654来与芯片集1690交换信息。芯片集1690可以可选地经由高性能接口1692来与协处理器1638交换信息。在一个实施例中,协处理器1638是专用处理器,例如,高吞吐量MIC处理器、网络或通信处理器、压缩和/或解压缩引擎、图形处理器、GPGPU、嵌入式处理器等。
一个或多个缓存1635、1637可被包括在任一处理器中,并且一个或多个缓存1631、1633可被包括在两个处理器之外但与处理器封装在一起并且经由P-P互连与处理器连接。在一个示例中,除了数据缓存以外,缓存1635和1637还包括一个或多个级别的标签缓存。3DDRAM缓存1631、1633可包括例如L4缓存、存储器侧缓存、和/或其他级别的缓存。
芯片集1690可以经由接口1696耦合到第一总线1616。在一个实施例中,第一总线1616可以是外围组件互连(PCI)总线,或诸如PCI Express总线或另一第三代I/O互连总线之类的总线,但本公开的范围不限于此。
如图16所示,各种I/O设备1614可以耦合到第一总线1616,以及将第一总线1616耦合到第二总线1620的总线桥1618。在一个实施例中,一个或多个附加处理器1615(例如,协处理器、高吞吐量MIC处理器、GPGPU、加速器(例如,图形加速器或数字信号处理(DSP)单元)、现场可编程门阵列、或任何其他处理器)耦合到第一总线1616。在一个实施例中,第二总线1620可以是低引脚数(LPC)总线。在一个实施例中,各种设备可以耦合到第二总线1620,包括,例如键盘和/或鼠标1622、通信设备1627、和诸如磁盘驱动器或其他大容量存储设备之类的储存装置1628(其可以包括指令/代码和数据1630)。此外,音频I/O 1624可以耦合到第二总线1620。注意,可能有其他架构。例如,代替图16的点对点架构,系统可以实现多点(multi-drop)总线或其他这样的架构。
现在参考图17,示出了第二更具体的示例性系统1700的框图。图16和12中的相似的元件具有相似的附图标记,并且图16中的某些方面已从图17中省略,以避免模糊图17的其他方面。
图17示出了处理器1670、1680可以分别包括集成存储器和I/O控制逻辑(“CL”)1672和1682。因此,CL 1672、1682包括集成存储器控制器单元并包括I/O控制逻辑。图17示出了不仅存储器1632、1634耦合到CL1672、1682,而且I/O设备1714也耦合到控制逻辑1672、1682。传统(legacy)I/O设备1715耦合到芯片集1690。
现在参考图18,示出了根据本发明的实施例的SoC 1800的框图。图14中的相似的元件具有相似的附图标记。此外,虚线框是更高级SoC上的可选功能。在图18中,(一个或多个)互连单元1802耦合到以下各项:应用处理器1810,其包括一组一个或多个核心1402A-N(包括缓存单元1404A-N)和(一个或多个)共享缓存单元1406;系统代理单元1410;(一个或多个)总线控制器单元1416;(一个或多个)集成存储器控制器单元1414;一组的一个或多个协处理器1820,其可以包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(SRAM)单元1830;直接存储器存取(DMA)单元1832;以及显示单元1840,用于耦合到一个或多个外部显示器。互连单元1802还连接到与处理器1810集成到同一封装中的3D DRAM 1831。集成的3D DRAM 1831可以与上文论述的3D DRAM(例如,图1E的3D DRAM105)相同或类似。在一个示例中,(一个或多个)协处理器1820包括专用处理器,例如,网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、嵌入式处理器等。
集成3D DRAM存储器的示例如下。
示例1:一种装置,包括三维(3D)DRAM缓存,该3D DRAM缓存包括一管芯上的多层DRAM单元,所述多层DRAM单元利用穿过所述多层DRAM单元的通孔与彼此连接,以及与所述3D DRAM缓存堆叠在同一封装中的计算逻辑。所述计算逻辑包括一个或多个处理器核心、缓存控制器、以及标签缓存。所述缓存控制器:接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求,将所述标签缓存中的标签与所述地址进行比较,响应于所述标签缓存中的命中,从所述3D DRAM缓存中由所述标签缓存中的条目指示的位置访问数据,并且向所述请求方处理器核心发送响应。
示例2:如示例1所述的装置,其中,所述缓存控制器:响应于所述标签缓存中的错失,将所述3D DRAM缓存中的标签与所述地址进行比较,并且响应于所述3D DRAM缓存中的命中,将匹配的标签存储在所述标签缓存中并且从所述3D DRAM缓存访问所述数据。
示例3:如示例1或2所述的装置,其中:所述3D DRAM缓存包括多个缓存库组,所述缓存控制器包括多个缓存控制器库组,并且其中,所述计算逻辑还包括电路,用于:确定所述多个缓存库组中哪个是所述地址所针对的,并且将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的缓存库组相对应的一个缓存控制器库组。
示例4:如示例1-3中的任一项所述的装置,还包括3D DRAM存储器侧缓存来缓存来自本地外部存储器的数据,所述计算逻辑包括第二标签缓存,并且其中,所述缓存控制器:响应于所述3D DRAM缓存中的错失,将所述第二标签缓存中的标签与所述地址进行比较,响应于所述第二标签缓存中的命中,从所述3D DRAM存储器侧缓存中由所述第二标签缓存中的条目指示的位置访问所述数据。
示例5:如示例1-4中的任一项所述的装置,其中,所述3D DRAM存储器侧缓存包括多个存储器侧缓存库组,所述缓存控制器包括多个缓存控制器库组,并且其中,所述计算逻辑还包括电路,用于:确定所述多个存储器侧缓存库组中哪个是所述地址所针对的,并且将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的存储器侧缓存库组相对应的一个缓存控制器库组。
示例6:如示例1-5中的任一项所述的装置,其中:所述计算逻辑包括SRAM,该SRAM包括所述标签缓存。
示例7:如示例1-6中的任一项所述的装置,其中:所述计算逻辑包括一个或多个SRAM,所述一个或多个SRAM包括所述标签缓存和所述第二标签缓存。
示例8:如示例1-7中的任一项所述的装置,其中:所述3D DRAM缓存的多层DRAM单元包括多个NMOS DRAM层,所述多个NMOS DRAM层中的每一层包括NMOS选择晶体管和存储元件,以及PMOS层,包括PMOS晶体管,以与来自所述多个NMOS DRAM层中的一个或多个层的NMOS晶体管相结合形成CMOS电路。
示例9:如示例1-8中的任一项所述的装置,其中,所述3D DRAM缓存的多层包括金属互连之间的多层薄膜选择晶体管和存储元件。
示例10:如示例1-9中的任一项所述的装置,其中,所述3D DRAM缓存被堆叠在所述计算逻辑上方。
示例11:如示例1-10中的任一项所述的装置,其中,所述计算逻辑被堆叠在所述3DDRAM缓存上方。
示例12:一种与三维(3D)DRAM一起堆叠在封装中的处理器,该处理器包括一个或多个处理器核心、标签缓存。以及缓存控制电路,来访问作为第4级(L4)缓存的所述3DDRAM。所述缓存控制电路接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求;并且将标签缓存中的标签与所述地址进行比较,响应于所述标签缓存中的命中,从所述L4缓存中由所述标签缓存中的条目指示的位置访问数据,并且向所述请求方处理器核心发送响应。
示例13:如示例12所述的处理器,其中,所述缓存控制电路:响应于所述标签缓存中的错失,将所述L4缓存中的标签与所述地址进行比较,并且响应于所述L4缓存中的命中,将匹配的标签存储在所述标签缓存中并且从所述L4缓存访问所述数据。
示例14:如示例12-13中的任一项所述的处理器,其中,所述L4缓存包括多个L4缓存库组,所述缓存控制电路包括多个缓存控制器库组,并且其中,所述处理器还包括:电路,来:确定所述多个L4缓存库组中哪个是所述地址所针对的,并且将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的L4缓存库组相对应的一个缓存控制器库组。
示例15:如示例12-14中的任一项所述的处理器,其中:所述3DDRAM包括存储器侧缓存来缓存来自本地外部存储器的数据,所述处理器包括第二标签缓存,并且其中,所述缓存控制电路:响应于所述L4缓存中的错失,将所述第二标签缓存中的标签与所述地址进行比较,响应于所述第二标签缓存中的命中,从所述存储器侧缓存中由所述第二标签缓存中的条目指示的位置访问所述数据。
示例16:如示例12-15中的任一项所述的处理器,其中,所述存储器侧缓存包括多个存储器侧缓存库组,所述缓存控制电路包括多个缓存控制器库组,并且其中,所述处理器还包括电路,用于:确定所述多个存储器侧缓存库组中的哪个是所述地址所针对的,并且将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的存储器侧缓存库组相对应的一个缓存控制器库组。
示例17:如示例12-16中的任一项所述的处理器,包括SRAM,该SRAM包括所述标签缓存。
示例18:如示例12-17中的任一项所述的处理器,包括一个或多个SRAM,所述一个或多个SRAM包括所述标签缓存和所述第二标签缓存。
示例19:一种系统,包括三维(3D)DRAM,该3D DRAM包括一管芯上的多层DRAM单元,所述多层DRAM单元利用穿过所述多层DRAM单元的通孔与彼此连接,以及与所述3D DRAM堆叠在同一封装中的处理器。所述处理器包括一个或多个处理器核心、缓存控制器、以及标签缓存,其中,所述缓存控制器访问作为最后一级缓存(LLC)的所述3D DRAM。所述缓存控制器接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求,将所述标签缓存中的标签与所述地址进行比较,响应于所述标签缓存中的命中,从所述LLC缓存中由所述标签缓存中的条目指示的位置访问数据,并且向所述请求方处理器核心发送响应。
示例20:如示例19所述的系统,还包括以下各项中的一个或多个:与所述处理器耦合的外部存储器设备,电源,以及显示器。
本发明的实施例可包括如上所述的各种过程。这些过程可以用机器可执行指令来实现。这些指令可用于使得通用或专用处理器执行某些过程。或者,这些过程可由包含用于执行这些过程的硬连线逻辑电路或可编程逻辑电路(例如,FPGA、PLD)的特定/定制硬件组件来执行,或者由编程的计算机组件和定制硬件组件的任何组合来执行。
本发明的元素也可作为用于存储机器可执行指令的机器可读介质来提供。机器可读介质可包括但不限于适用于存储电子指令的软盘、光盘、CD-ROM和磁光盘、闪存、ROM、RAM、EPROM、EEPROM、磁卡或光卡、传播媒体或者其他类型的媒体/机器可读介质。例如,本发明可作为计算机程序被下载,该计算机程序可经由通信链路(例如,调制解调器或网络连接)通过实现在载波或其他传播介质中的数据信号被从远程计算机(例如,服务器)传送到请求方计算机(例如,客户端)。
本文图示的流程图提供了各种过程动作的序列的示例。流程图可指示出要被软件或固件例程执行的操作,以及物理操作。在一个示例中,流程图可图示出有限状态机(finite state machine,FSM)的状态,该有限状态机可被用硬件、软件或者其组合来实现。虽然是按特定的序列或顺序示出的,但除非另有指明,否则可以修改动作的顺序。从而,图示的实施例应当只被理解为示例,而过程可按不同的顺序被执行,并且一些动作可被并行执行。此外,在各种示例中可省略一个或多个动作;从而,并非所有动作在每一个实施例中都是必需的。其他过程流是可能的。
在本文描述的各种操作或功能的范围内,它们可被描述或定义为软件代码、指令、配置、数据、或者其组合。这些内容可以是直接可执行的(“对象”或“可执行”形式)、源代码、或者差异代码(“delta”或“补丁”代码)。本文描述的实施例的软件内容可经由其上存储有该内容的制造品来提供,或者经由操作通信接口以经由通信接口发送数据的方法来提供。机器可读存储介质可以使得机器执行描述的功能或操作,并且包括以机器(例如,计算设备、电子系统,等等)可访问的形式存储信息的任何机制,例如可记录/不可记录介质(例如,只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备,等等)。通信接口包括与硬连线、无线、光学等等任何一种介质相接口的任何机制,以便与另一设备进行通信,例如存储器总线接口、处理器总线接口、互联网连接、盘控制器,等等。可通过提供配置参数或发送信号或者这两者来配置通信接口,以使得通信接口准备好提供描述软件内容的数据信号。可经由向通信接口发送的一个或多个命令或信号来访问通信接口。
本文描述的各种组件可以是用于执行所描述的操作或功能的手段。本文描述的每个组件包括软件、硬件、或者这些的组合。这些组件可被实现为软件模块、硬件模块、专用硬件(例如,特定应用硬件、专用集成电路(ASIC)、数字信号处理器(DSP),等等)、嵌入式控制器、硬接线电路,等等。
除了本文描述的以外,还可对所公开的本发明的实施例和实现方式做出各种修改,而不脱离其范围。因此,应当从说明意义而不是限制意义上来解释本文的说明和示例。应当仅通过参考所附权利要求来衡量本发明的范围。

Claims (25)

1.一种装置,包括:
三维3D DRAM缓存,该3D DRAM缓存包括管芯上的多层DRAM单元,所述多层DRAM单元利用穿过所述多层DRAM单元的通孔与彼此连接;以及
与所述3D DRAM缓存堆叠在同一封装中的计算逻辑,所述计算逻辑包括:一个或多个处理器核心、缓存控制器、以及标签缓存,其中,所述缓存控制器用于:
接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求,
将所述标签缓存中的标签与所述地址进行比较,
响应于所述标签缓存中的命中,从所述3D DRAM缓存中由所述标签缓存中的条目指示的位置访问数据,并且
向所述请求方处理器核心发送响应。
2.如权利要求1所述的装置,其中:
所述缓存控制器用于:
响应于所述标签缓存中的错失,将所述3D DRAM缓存中的标签与所述地址进行比较,并且
响应于所述3D DRAM缓存中的命中,将匹配的标签存储在所述标签缓存中并且从所述3D DRAM缓存访问所述数据。
3.如权利要求1所述的装置,其中:
所述3D DRAM缓存包括多个缓存库组;
所述缓存控制器包括多个缓存控制器库组;并且
其中,所述计算逻辑还包括:
电路,用于:
确定所述多个缓存库组中的哪个缓存库组是所述地址所针对的,并且
将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的缓存库组相对应的一个缓存控制器库组。
4.如权利要求1所述的装置,还包括:
3D DRAM存储器侧缓存,用于缓存来自本地外部存储器的数据;
所述计算逻辑包括第二标签缓存;并且
其中,所述缓存控制器用于:
响应于所述3D DRAM缓存中的错失,将所述第二标签缓存中的标签与所述地址进行比较,
响应于所述第二标签缓存中的命中,从所述3D DRAM存储器侧缓存中由所述第二标签缓存中的条目指示的位置访问所述数据。
5.如权利要求4所述的装置,其中:
所述3D DRAM存储器侧缓存包括多个存储器侧缓存库组;
所述缓存控制器包括多个缓存控制器库组;并且
其中,所述计算逻辑还包括:
电路,用于:
确定所述多个存储器侧缓存库组中的哪个存储器侧缓存库组是所述地址所针对的,并且
将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的存储器侧缓存库组相对应的一个缓存控制器库组。
6.如权利要求1所述的装置,其中:
所述计算逻辑包括SRAM,该SRAM包括所述标签缓存。
7.如权利要求4所述的装置,其中:
所述计算逻辑包括一个或多个SRAM,所述一个或多个SRAM包括所述标签缓存和所述第二标签缓存。
8.如权利要求1所述的装置,其中:
所述3D DRAM缓存的所述多层DRAM单元包括:
多个NMOS DRAM层,所述多个NMOS DRAM层中的每一层包括NMOS选择晶体管和存储元件,以及
PMOS层,包括PMOS晶体管,以与来自所述多个NMOS DRAM层中的一个或多个层的NMOS晶体管相结合形成CMOS电路。
9.如权利要求1所述的装置,其中:
所述3D DRAM缓存的所述多层DRAM单元包括金属互连之间的多层薄膜选择晶体管和存储元件。
10.如权利要求1所述的装置,其中:
所述3D DRAM缓存被堆叠在所述计算逻辑上方。
11.如权利要求1所述的装置,其中:
所述计算逻辑被堆叠在所述3D DRAM缓存上方。
12.一种与三维3D DRAM一起堆叠在封装中的处理器,所述处理器包括:
一个或多个处理器核心;
标签缓存;以及
缓存控制电路,用于访问作为第4级L4缓存的所述3D DRAM,所述缓存控制电路用于:
接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求;并且
将标签缓存中的标签与所述地址进行比较,
响应于所述标签缓存中的命中,从所述L4缓存中由所述标签缓存中的条目指示的位置访问数据,并且
向所述请求方处理器核心发送响应。
13.如权利要求12所述的处理器,其中:
所述缓存控制电路用于:
响应于所述标签缓存中的错失,将所述L4缓存中的标签与所述地址进行比较,并且
响应于所述L4缓存中的命中,将匹配的标签存储在所述标签缓存中并且从所述L4缓存访问所述数据。
14.如权利要求12所述的处理器,其中:
所述L4缓存包括多个L4缓存库组;
所述缓存控制电路包括多个缓存控制器库组;并且
其中,所述处理器还包括:
电路,用于:
确定所述多个L4缓存库组中的哪个L4缓存库组是所述地址所针对的,并且
将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的L4缓存库组相对应的一个缓存控制器库组。
15.如权利要求12所述的处理器,其中:
所述3D DRAM包括存储器侧缓存,用于缓存来自本地外部存储器的数据;
所述处理器包括第二标签缓存;并且
其中,所述缓存控制电路用于:
响应于所述L4缓存中的错失,将所述第二标签缓存中的标签与所述地址进行比较,
响应于所述第二标签缓存中的命中,从所述存储器侧缓存中由所述第二标签缓存中的条目指示的位置访问所述数据。
16.如权利要求15所述的处理器,其中:
所述存储器侧缓存包括多个存储器侧缓存库组;
所述缓存控制电路包括多个缓存控制器库组;并且
其中,所述处理器还包括:
电路,用于:
确定所述多个存储器侧缓存库组中的哪个存储器侧缓存库组是所述地址所针对的,并且
将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的存储器侧缓存库组相对应的一个缓存控制器库组。
17.如权利要求12所述的处理器,包括:
SRAM,该SRAM包括所述标签缓存。
18.如权利要求15所述的处理器,包括:
一个或多个SRAM,所述一个或多个SRAM包括所述标签缓存和所述第二标签缓存。
19.一种系统,包括:
三维3D DRAM缓存,该3D DRAM缓存包括管芯上的多层DRAM单元,所述多层DRAM单元利用穿过所述多层DRAM单元的通孔与彼此连接;以及
与所述3D DRAM缓存堆叠在同一封装中的处理器,所述处理器包括:一个或多个处理器核心、缓存控制器、以及标签缓存,其中,所述缓存控制器用于访问作为最后一级缓存LLC的所述3D DRAM缓存,所述缓存控制器用于:
接收来自所述一个或多个处理器核心中的请求方处理器核心的对访问某个地址处的数据的请求,
将所述标签缓存中的标签与所述地址进行比较,
响应于所述标签缓存中的命中,从所述LLC缓存中由所述标签缓存中的条目指示的位置访问数据,以及
向所述请求方处理器核心发送响应。
20.如权利要求19所述的系统,还包括以下各项中的一个或多个:
与所述处理器耦合的外部存储器设备、输入/输出I/O设备、以及显示器。
21.如权利要求19所述的系统,其中:
所述缓存控制器用于:
响应于所述标签缓存中的错失,将所述3D DRAM缓存中的标签与所述地址进行比较,并且
响应于所述3D DRAM缓存中的命中,将匹配的标签存储在所述标签缓存中并且从所述3D DRAM缓存访问所述数据。
22.如权利要求19所述的系统,其中:
所述3D DRAM缓存包括多个缓存库组;
所述缓存控制器包括多个缓存控制器库组;并且
其中,所述处理器还包括:
电路,用于:
确定所述多个缓存库组中的哪个缓存库组是所述地址所针对的,并且
将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的缓存库组相对应的一个缓存控制器库组。
23.如权利要求19所述的系统,还包括:
3D DRAM存储器侧缓存,用于缓存来自本地外部存储器的数据;
所述处理器包括第二标签缓存;并且
其中,所述缓存控制器用于:
响应于所述3D DRAM缓存中的错失,将所述第二标签缓存中的标签与所述地址进行比较,
响应于所述第二标签缓存中的命中,从所述3D DRAM存储器侧缓存中由所述第二标签缓存中的条目指示的位置访问所述数据。
24.如权利要求23所述的系统,其中:
所述3D DRAM存储器侧缓存包括多个存储器侧缓存库组;
所述缓存控制器包括多个缓存控制器库组;并且
其中,所述处理器还包括:
电路,用于:
确定所述多个存储器侧缓存库组中的哪个存储器侧缓存库组是所述地址所针对的,并且
将所述请求发送到所述多个缓存控制器库组中与所述地址所针对的存储器侧缓存库组相对应的一个缓存控制器库组。
25.如权利要求19所述的系统,其中:
所述处理器包括SRAM,该SRAM包括所述标签缓存。
CN202210130510.5A 2021-03-27 2022-02-11 集成三维(3d)dram缓存 Pending CN115132238A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/214,835 US12271306B2 (en) 2021-03-27 2021-03-27 Integrated three-dimensional (3D) DRAM cache
US17/214,835 2021-03-27

Publications (1)

Publication Number Publication Date
CN115132238A true CN115132238A (zh) 2022-09-30

Family

ID=80446689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210130510.5A Pending CN115132238A (zh) 2021-03-27 2022-02-11 集成三维(3d)dram缓存

Country Status (4)

Country Link
US (1) US12271306B2 (zh)
EP (1) EP4064059A1 (zh)
JP (1) JP2022151611A (zh)
CN (1) CN115132238A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116828866A (zh) * 2023-06-07 2023-09-29 阿里巴巴达摩院(杭州)科技有限公司 集成电路组件、处理器和片上系统
CN116992820A (zh) * 2023-09-27 2023-11-03 之江实验室 一种基于芯粒集成的可扩展智能计算芯片结构

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12148682B2 (en) * 2021-12-15 2024-11-19 International Business Machines Corporation Memory cell in wafer backside
WO2024189774A1 (ja) * 2023-03-14 2024-09-19 ウルトラメモリ株式会社 演算システムおよび半導体集積回路モジュール
US20240422995A1 (en) * 2023-06-16 2024-12-19 Qualcomm Incorporated Dynamic random-access memory (dram) on hot compute logic for last-level-cache applications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5249282A (en) * 1990-11-21 1993-09-28 Benchmarq Microelectronics, Inc. Integrated cache memory system with primary and secondary cache memories
US6483171B1 (en) * 1999-08-13 2002-11-19 Micron Technology, Inc. Vertical sub-micron CMOS transistors on (110), (111), (311), (511), and higher order surfaces of bulk, SOI and thin film structures and method of forming same
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US9286948B2 (en) 2013-07-15 2016-03-15 Advanced Micro Devices, Inc. Query operations for stacked-die memory device
US9336144B2 (en) * 2013-07-25 2016-05-10 Globalfoundries Inc. Three-dimensional processing system having multiple caches that can be partitioned, conjoined, and managed according to more than one set of rules and/or configurations
US10176099B2 (en) * 2016-07-11 2019-01-08 Intel Corporation Using data pattern to mark cache lines as invalid

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116828866A (zh) * 2023-06-07 2023-09-29 阿里巴巴达摩院(杭州)科技有限公司 集成电路组件、处理器和片上系统
CN116992820A (zh) * 2023-09-27 2023-11-03 之江实验室 一种基于芯粒集成的可扩展智能计算芯片结构
CN116992820B (zh) * 2023-09-27 2024-01-09 之江实验室 一种基于芯粒集成的可扩展智能计算芯片结构

Also Published As

Publication number Publication date
US20220308995A1 (en) 2022-09-29
US12271306B2 (en) 2025-04-08
JP2022151611A (ja) 2022-10-07
EP4064059A1 (en) 2022-09-28

Similar Documents

Publication Publication Date Title
US12271306B2 (en) Integrated three-dimensional (3D) DRAM cache
TWI620063B (zh) 用於快取無效之裝置及方法
US9753858B2 (en) DRAM cache with tags and data jointly stored in physical rows
CN103946826B (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
WO2022178998A1 (zh) 一种基于SEDRAM的堆叠式Cache系统、控制方法和Cache装置
TWI633436B (zh) 記憶體中之轉譯後備緩衝器
US10592419B2 (en) Memory system
US20200192804A1 (en) Memory system
US8572320B1 (en) Memory devices and systems including cache devices for memory modules
US9990143B2 (en) Memory system
WO2013081937A1 (en) A hardware filter for tracking block presence in large caches
US10191664B2 (en) Memory system
US9977604B2 (en) Memory system
US10180796B2 (en) Memory system
US9977606B2 (en) Memory system
US20170109277A1 (en) Memory system
Behnam et al. R-cache: A highly set-associative in-package cache using memristive arrays
US10445003B2 (en) Memory system for dualizing first memory based on operation mode
US10466909B2 (en) Memory system
CN109983444A (zh) 具有不同高速缓存结构和支持对不同高速缓存结构的并发查找的存储器控制器的多级系统存储器
US20170109066A1 (en) Memory system
US20170109070A1 (en) Memory system
US20170109086A1 (en) Memory system
US20170109071A1 (en) Memory system
US20170109067A1 (en) Memory system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination