CN107656878B - 具有内存高速缓存管理器的高带宽存储器 - Google Patents
具有内存高速缓存管理器的高带宽存储器 Download PDFInfo
- Publication number
- CN107656878B CN107656878B CN201710515631.0A CN201710515631A CN107656878B CN 107656878 B CN107656878 B CN 107656878B CN 201710515631 A CN201710515631 A CN 201710515631A CN 107656878 B CN107656878 B CN 107656878B
- Authority
- CN
- China
- Prior art keywords
- tag
- tag value
- memory
- command
- value
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/107—Serial-parallel conversion of data or prefetch
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5643—Multilevel memory comprising cache storage devices
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种具有内存高速缓存管理器的高带宽存储器。一种使用高带宽存储器作为高速缓存存储器的系统和方法。高带宽存储器可包括:逻辑管芯和堆叠在逻辑管芯上的多个动态随机存取存储器管芯。逻辑管芯可包括高速缓存管理器,其中,高速缓存管理器可通过符合JESD235A标准的外部接口与外部系统连接,其中,高速缓存管理器可包括地址转译器、命令转译器和标签比较器。地址转译器可将通过外部接口接收到的每一个物理地址转译成标签值、存储器管芯的栈中的标签地址和存储器管芯的栈中的数据地址。标签比较器可根据由地址转译器产生的标签值与存储在标签地址处的标签值是否匹配来确定是发生了高速缓存命中或还是发生了高速缓存未命中。
Description
本申请要求于2016年7月26日提交的第62/367,062号题为“具有内存高速缓存管理器的高带宽存储器”的美国临时申请和于2016年9月21日提交的第15/272,339号的美国申请的优先权和权益,此申请的公开通过引用全部合并于此。
技术领域
根据本发明的实施例的一个或更多个方面涉及高带宽存储器,更具体地,涉及一种使用高带宽存储器作为高速缓存存储器的系统和方法。
背景技术
高带宽存储器(HBM)是用于三维(3D)堆叠式动态RAM(DRAM)的高性能的RAM接口。使用HBM作为高速缓存存储器的现有技术系统可以在主机上具有高速缓存管理器以执行高速缓存管理功能。这种布置会对主机和主机与HBM之间的接口造成负担。
因此,需要一种使用HBM作为高速缓存存储器的改进的系统和方法。
发明内容
本公开的实施例的各个方面涉及一种使用高带宽存储器作为高速缓存存储器的系统和方法。高带宽存储器可包括逻辑管芯(die)和堆叠在逻辑管芯上的多个动态随机存取存储器管芯。逻辑管芯可包括高速缓存管理器,其中,高速缓存管理器可通过符合JESD235A标准的外部接口与外部系统连接,高速缓存管理器可包括地址转译器、命令转译器和标签比较器。地址转译器可将通过外部接口接收到的每一个物理地址转译成标签值、存储器管芯的栈中的标签地址、存储器管芯的栈中的数据地址。标签比较器可根据由地址转译器产生的标签值与存储在标签地址处的标签值是否匹配来确定是发生了高速缓存命中还是发生了高速缓存未命中。命令产生器可产生命令。例如,当通过外部接口接收到写命令时,命令产生器可首先产生用于获取标签值的命令来确定高速缓存命中是否发生,如果高速缓存命中已经发生,则命令产生器可产生写命令。
根据本发明的实施例,提供了一种存储器系统,包括:包括多个存储器管芯的存储器栈;逻辑管芯,其中,存储器管芯堆叠在逻辑管芯上并且被连接到逻辑管芯,逻辑管芯具有到存储器系统的外部接口,逻辑管芯包括高速缓存管理器。
在一个实施例中,高速缓存管理器包括:地址转译器,被配置为对通过所述外部接口接收到的地址进行转译来产生第一标签值、存储器栈中的数据地址和存储器栈中的标签地址。
在一个实施例中,高速缓存管理器包括:命令转译器,被配置为响应于通过所述外部接口接收到的写命令来产生用于获取标签值的第一命令和用于获取数据字的第二命令。
在一个实施例中,高速缓存管理器包括用于产生高速缓存命中信号的标签比较器,其中,当第一标签值等于从执行第一命令所得到的获取的标签值时,高速缓存命中信号的值为真;当第一标签值不等于从执行第一命令所得到的获取的标签值时,高速缓存命中信号的值为假。
在一个实施例中,标签比较器被配置为通过所述外部接口的第一引脚发送高速缓存命中信号。
在一个实施例中,高速缓存管理器被配置为通过所述外部接口的第二引脚来发送脏位的值和/或有效位的值。
在一个实施例中,高速缓存管理器被配置为在第一时间间隔期间通过第一引脚发送高速缓存命中信号,并在第二时间间隔期间通过第一引脚发送脏位的值。
在一个实施例中,高速缓存管理器被配置为通过伪通道来执行第一命令。
在一个实施例中,高速缓存管理器包括模式选择器,其中,模式选择器指示是并行操作模式被选择还是串行操作模式被选择,高速缓存管理器被配置为:当模式选择器指示并行操作模式被选择时,并行地执行第一命令和第二命令;当模式选择器指示串行操作模式被选择时,在执行第二命令之前执行第一命令。
在一个实施例中,模式选择器被配置为通过所述外部接口被控制。
在一个实施例中,对于存储在存储器管芯中的存储体中并且通过不同的伪通道可访问的任意两个数据字,两个相应标签被存储在栈的不同子阵列中。
在一个实施例中,外部接口被配置为遵照联合电子装置工程委员会标准JESD235A进行操作。
根据本发明的实施例,提供了一种处理系统,包括:主机处理器;被连接到主机处理器的第一存储器系统;被连接到主机处理器的第二存储器系统,其中,第一存储器系统包括:包括多个存储器管芯的存储器栈;逻辑管芯,其中,存储器管芯堆叠在逻辑管芯上并被连接到逻辑管芯,逻辑管芯具有到存储器系统的外部接口,逻辑管芯包括高速缓存管理器,第二存储器系统被配置作为第一存储器系统的后备存储器。
在一个实施例中,高速缓存管理器包括:地址转译器,被配置为对通过所述外部接口从主机处理器接收到的地址进行转译来产生第一标签值、存储器栈中的数据地址和存储器栈中的标签地址。
在一个实施例中,高速缓存管理器包括:命令转译器,被配置为响应于通过所述外部接口从主机处理器接收到的读命令来产生用于获取标签值的第一命令和用于获取数据字的第二命令。
在一个实施例中,高速缓存管理器包括用于产生高速缓存命中信号的标签比较器,其中,当第一标签值等于从执行第一命令所得到的获取的标签值时,高速缓存命中信号的值为真;当第一标签值不等于从执行第一命令所得到的获取的标签值时,高速缓存命中信号的值为假。
在一个实施例中,所述外部接口被配置为遵照联合电子装置工程委员会标准JESD235A进行操作。
根据本发明的实施例,提供了一种用于操作包括多个存储器管芯和逻辑管芯的存储器栈的方法,其中,存储器栈堆叠在逻辑管芯上并且被连接到逻辑管芯,逻辑管芯具有到存储器系统的外部接口,所述方法包括:由逻辑管芯对通过所述外部接口接收到的地址进行转译来产生第一标签值、存储器栈中的数据地址和存储器栈中的标签地址。
在一个实施例中,所述方法包括:响应于通过所述外部接口接收到的读命令,由逻辑管芯产生用于获取标签值的第一命令和用于获取数据字的第二命令。
在一个实施例中,所述方法包括:由逻辑管芯产生高速缓存命中信号,其中,当第一标签值等于从执行第一命令所得到的获取的标签值时,高速缓存命中信号的值为真;当第一标签值不等于从执行第一命令所得到的获取的标签值时,高速缓存命中信号的值为假。
附图说明
将参照说明书、权利要求书和附图理解和明白本发明的这些和其它特征和优点,其中:
图1是根据本发明的实施例的高带宽存储器栈的立体图;
图2A是根据本发明的实施例的使用高带宽存储器栈作为三级高速缓存的处理系统的框图;
图2B是根据本发明的实施例的高带宽存储器栈的框图;
图3是根据本发明的实施例的高带宽存储器栈的框图;
图4A是根据本发明的实施例的存储器示图;
图4B是根据本发明的实施例的存储器示图。
具体实施方式
以下结合附图阐述的详细描述旨在作为对根据本发明提供的具有内存高速缓存管理器的高带宽存储器的示例性实施例的描述,并不旨在表示本发明可被构造或使用的唯一形式。该描述结合示出的实施例阐述了本发明的特征。然而,应当理解,相同或等同的功能和结构可通过同样旨在包括在本发明的精神和范围内的不同实施例来实现。如本文别处所述,相同的元件编号旨在表示相同的元件或特征。
高带宽存储器(HBM)是高性能三维(3D)堆叠式动态随机存取存储器(RAM)(DRAM)。第二代高带宽存储器可包括每个栈多达8个管芯并且可提供高达2GT/s(每秒千兆传输速率)的引脚传输速率。接口可包括8个通道,每一个通道128位宽,所述8个通道用于总共1024位宽的访问。第二代高带宽存储器能够达到每个包256GB/s的内存带宽,并且可具有每个包高达8GB的存储容量。第二代高带宽存储器的接口可符合由联合电子装置工程委员会(JEDEC)接受为标准JESD235A的标准。
参照图1,HBM栈105的物理配置可包括逻辑管芯110和三维DRAM或“DRAM栈”115,其中,三维DRAM或“DRAM栈”115包括堆叠在逻辑管芯110顶部的多个DRAM管芯(例如,8个这样的管芯)。在栈内使用硅通孔(TSV)来形成互连。现有技术HBM栈可在逻辑管芯中包括连接和信号调节电路,结果,DRAM通道接口基本不变地在HBM的外部接口处被呈现给主机处理器。
参照图2A,HBM栈105可被连接到主机处理器205(例如,CPU或者GPU)。主机处理器205可包括多个核210,每一个核210具有各自的一级高速缓存215。二级高速缓存220可被连接到一级高速缓存215,并且第一存储器控制器225可向片外主存储器230提供接口。第二存储器控制器235可向HBM栈105提供接口。HBM栈105可在HBM栈105的逻辑管芯中包括高速缓存管理器(CM)。具有集成的高速缓存管理器的HBM栈105可被主机处理器205用作三级高速缓存(或者,例如,在也具有三级高速缓存的系统中被用作四级高速缓存)。HBM接口245可以是JESD235A兼容性接口,即,它可提供由JESD235A标准规定的导体和信令协议。
参照图2B,在一些实施例中,HBM栈105可包括逻辑管芯110,逻辑管芯110可通过在图2B中示为Ch0–Ch7的被称为通道的八个内部接口被连接到DRAM栈115中的DRAM。
参照图3,如上所述,在一个实施例中,HBM栈105包括DRAM栈115和逻辑管芯110,并且逻辑管芯110可包括实现高速缓存管理器的多个组件。在HBM接口245中的命令和地址线305可在HBM栈105的逻辑管芯110中被连接到命令转译器310和地址转译器315。例如,命令和地址线305可包括针对HBM接口245的8个通道中的每一个通道的6个行命令/地址线和8个列命令/地址线。
在操作中,地址转译器315可周期性地接收物理存储器地址,其中,命令(例如,读命令或写命令)将针对物理存储器地址被执行。然后,地址转译器315可将地址转译成标记值、标签地址和数据地址。标签值可被用于确定是否发生了“高速缓存命中”,即,确定高速缓存中的地址是否当前被分配到通过HBM接口245所接收的地址。例如,高速缓存管理器可在标签地址处读取(或“获取”)标签值,并且将读取(或“获取”)的标签值与由地址转译器315所产生的标签值进行比较(例如,用标签比较器320进行比较,在下面将进行详细描述)。如果从所接收的物理地址(由地址转译器315)形成的标签值与在DRAM栈115中存储在标签地址处的标签值匹配,则高速缓存命中发生,即,高速缓存中的地址当前被分配到已接收的在处理器的物理存储空间中的地址。如果从所接收的物理地址形成的标签值与在DRAM栈115中存储在标签地址处的标签值不匹配(这里将这种情况称为“高速缓存未命中”),则高速缓存中的地址当前未被分配到已接收的在处理器的物理存储空间中的地址。
标签比较器320可被用于进行比较,即,对从接收的物理地址形成的标签值与存储在标签地址处的标签值进行比较。标签比较器320的输出可以是被称为高速缓存命中信号的信号,其中,当高速缓存命中发生时,该信号的值为真(例如,二进制值的1),当高速缓存未命中发生时,该信号的值为假(例如,二进制值0)。
命令转译器310可响应于通过HBM接口245所接收的命令来产生将在DRAM栈115上执行的命令。例如,如果通过HBM接口245所接收的命令是读命令,则命令转译器310可产生用于读取存储在数据地址处的数据字的命令以及用于读取存储在标签地址处的标签值的命令。这些命令中的每一个可包括多个微操作(例如,由多个微操作组成),例如,读命令可包括激活操作,随后是读操作。
如果通过HBM接口245所接收的命令是写命令,则命令转译器310可首先产生用于读取存储在标签地址处的标签值的命令,如果该标签值与由地址转译器315所产生的标签值匹配,则可产生用于将数据写入DRAM栈115的写命令。因此,在逻辑管芯110中包括高速缓存管理器除了可以使得主机处理器205不需要实现高速缓存管理器之外,还可以通过允许第二命令(写命令)在逻辑管芯110中产生而不是在主机处理器205中产生来提高效率。
可并行或串行地执行标签值和数据的获取。例如,当高速缓存管理器运行在并行模式下,标签值和数据可被并行地获取,所获取的标签值可通过标签比较器320与由地址转译器315产生的标签值进行比较,如果这两个标签值匹配,则数据读取可通过HBM接口245被返回。否则,高速缓存未命中可通过HBM接口245被信号传送给主机处理器205,下面进一步进行详细讨论。当高速缓存管理器运行在串行模式下时,标签值可被首先获取,所获取的标签值可通过标签比较器320与由地址转译器315产生的标签值进行比较,如果这两个标签值匹配,则数据被获取并且通过HBM接口245被返回。否则,高速缓存未命中可通过HBM接口245被信号传送给主机处理器205。串行模式下的操作可以比并行模式下的操作更加节能,这是因为在串行模式下,数据获取操作仅在高速缓存命中的情况下被执行。并行模式下的操作比串行模式下的操作更快,这是因为在并行模式下,标签值获取和数据获取可被同时执行。高速缓存管理器可包括模式选择器(例如,控制寄存器中的位),其中,模式选择器可控制高速缓存管理器是运行在并行模式还是运行在串行模式下。模式选择器可通过HBM接口245(例如,通过向控制寄存器写入新值的命令)而被控制(例如,被主机处理器205控制)。
高速缓存管理器可使用每个标签来存储元数据的两位,(i)指示相应数据字是有效还是无效的位(“有效位”)和(ii)指示相应的数据字是脏(dirty)还是干净(clean)的位(“脏位”)。如果高速缓存中的数据已被更新,而后备存储器中的相应数据未被更新,则高速缓存中的数据被认为是脏的(否则是干净的),如果后备存储器中的数据已被更新,而高速缓存中的相应数据未被更新,则高速缓存中的数据被认为是无效的(否则是有效的)。
此外,如上所述,通过HBM接口245所接收的命令可引起高速缓存命中信号的值为真或为假(分别与高速缓存命中或高速缓存未命中相应)。当HBM栈105通过HBM接口245接收任何命令的过程完整时,高速缓存管理器可产生三个值,分别是针对高速缓存命中信号的值、针对脏位的值和针对有效位的值。这些值可通过HBM接口245使用HBM接口245的未用于其他功能的一个或更多个引脚被传送到主机处理器205,例如,所述引脚不是(i)8个通道中的每一个的212个引脚中的任何一个,也不是(ii)RESET、TEMP[2:0]或CATTRIP引脚中的任何一个。可使用被JESD235A标准定义为被保留用于将来使用的引脚(RFU引脚)的引脚。例如,在一个实施例中,RFU引脚被用于在命令已被执行之后的数据突发的第一数据周期期间发送高速缓存命中信号,并且在数据突发的下一个数据周期期间发送脏位的值。对高速缓存命中信号的发送和对脏位的发送可与对数据突发的数据的发送同步。在一些实施例中,多个RFU引脚被用于发送高速缓存命中信号、脏位和/或有效位。
为了使高速缓存中的数据无效,主机处理器205可通过HBM接口245向逻辑管芯110发送“无效”信号以及将被无效的数据的地址。“无效”信号可通过用于向主机处理器205发送高速缓存命中信号的HBM接口245的相同引脚(例如,RFU引脚)被发送。地址可经过HBM接口245的CA总线被发送。利用此信息,逻辑管芯110随后可更新存储在DRAM栈115中的相应的有效位。
在一些实施例中,RFU引脚也可被用于保持高速缓存一致性,例如,保持后备存储器(例如,片外主存储器230)与多核系统(诸如图2A的系统)中的高速缓存之间的一致性,其中,三级高速缓存(在HBM栈105中实现的三级高速缓存)和后备存储器都可由多个核210中的每一个核来读取和/或修改。
在逻辑管芯110中的调度器325可分别从命令转译器310和地址转译器315接收命令和地址,并且在DRAM栈115上调度这些命令的执行。逻辑管芯110中的数据缓冲器330可被用于在数据通过HBM接口245被接收之后和/或在数据从DRAM栈115被读取之后临时地存储数据。调度器325和数据缓冲器330都可有助于适应(i)通过HBM接口245接收命令、(ii)在DRAM栈115上执行命令、(iii)通过HBM接口245接收数据或发送数据以及(iv)从DRAM栈115读取数据或向DRAM栈写入数据的速率的变化。
JESD235A标准提供在伪通道模式下的操作,其中,在伪通道模式下,8个128位通道中的每一个通道作为两个半独立伪通道来操作。在这个模式下,尽管每一对伪通道中的两个独立地对命令进行解码和执行,但是每一对伪通道共享通道的行和列命令总线以及CK和CKE输入。在一些实施例中,这个模式被用于存储标签值。每一个标签值可以是32位字,如果使用通道的整个128位宽的数据总线(“DQ”总线)从DRAM栈115读取标签值或将标签值写入DRAM栈115,则导致显著的低效(例如,25%的有效性)。在伪通道模式下,只有这个总线宽的一半(即,64位)可用于读取或写入标签值,从而导致更高的效率(例如,50%)。
DRAM的每一个存储体可包括16个子阵列(即,由16个子阵列组成)。参照图4A,在一些实施例中,每一个数据字可以是64字节(512位)长,并且每一个标签值可以是4字节(32位)长,即,数据字的长度和标签值的长度可以是16:1的比率。标签值和数据可通过不同的通道被访问;例如,数据可通过通道1-15被访问,标签值可通过通道0被访问。在这样的实施例中,可以并行地访问数据,但是标签访问可能会遇到存储体冲突,如虚线椭圆所示。相应地,参照图4B,在一个实施例中,标签被存储在不同的子阵列中,其中,可使用这里被称为子阵列级并行(SLAP)的方法来并行地访问子阵列。在这样的实施例中,可同时地处理标签访问,即,以避免标签访问的冲突,即使对相同的存储体进行标签访问时也是如此。
根据上述,在逻辑管芯110中包括高速缓存管理器的HBM栈105与缺少高速缓存管理器的现有技术的HBM栈相比具有很多优点。使用包括高速缓存管理器的HBM栈105可使得不必在主机处理器205中包括高速缓存管理器,从而潜在地减小了主机处理器的尺寸、成本和功耗,或者可将相同的资源在主机处理器205中用于其他用途。此外,当条件执行完全在HBM栈105中被执行时比当此条件执行涉及主机处理器205时执行的更快。例如,在高速缓存命中发生的情况下,当在HBM栈105中做出高速缓存命中确定时比当在主机处理器205中的高速缓存管理器中做出高速缓存命中确定的情况下能够更快地执行写命令。
应当理解,尽管术语“第一”、“第二”、“第三”等可在这里用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语的限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开。因此,在不脱离本发明构思的精神和范围的情况下,下面讨论的第一元件、组件、区域、层或部分可被称为第二元件、组件、区域、层或部分。
在这里可以使用空间相对术语(诸如“在…之下”、“在…下面”、“下层”、“在…下方”、“在…上面”、“上层”等)以便于描述如图所示的一个元件或特征与另一个元件或特征的关系。应当理解,除了图中所示的方位之外,这种空间相对术语旨在包括使用中或操作中的装置的不同方位。例如,如果图中的装置被翻转,则被描述为在其它元件或特征“之下”或“下面”或“下层”的元件将被定向为在其他元件或特征“上面”。因此,示例性术语“下面”和“下方”可包括上面和下面的取向。装置可以以其它方式定向(例如,旋转90度或在其它方向),并且应当相应地解释这里使用的空间相对描述符。此外,还将理解,当层被称为在两个层“之间”时,它可以是两个层之间的唯一层,或者也可以存在一个或更多个中间层。
这里使用的术语仅用于描述特定实施例为目的,而不旨在限制本发明构思。如这里使用的术语“基本上”、“大约”和类似的术语被用作近似的术语而不是用作程度上的术语,并且旨在解释将被那些本领域普通技术人员识别的测量值或计算值中的固有偏差。如这里使用的术语“主要成分”是指构成组合物的至少一半重量的成分,并且当应用多个项时,术语“主要部分”是指项的至少一半。
如这里使用的,除非上下文另有明确指示,否则单数形式“一”和“一个”旨在也包括复数形式。还应当理解,当术语“包括”和/或“包含”在本说明书中被使用时,术语“包括”和/或“包含”指定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或更多个其它特征、整体、步骤、操作、元件、组件和/或它们组合。如这里使用的,术语“和/或”包括相关的所列项目中的一个或更多个的任何和所有组合。诸如“…中的至少一个”的表述在元素列表之后时修饰整个元素列表,并不修饰列表的各个元素。此外,当描述本发明构思的实施例时,“可以”的使用指的是“本发明的一个或更多个实施例”。此外,术语“示例性”旨在表示示例或说明。如这里使用的,术语“使用”、“正使用”和“已使用”可分别被认为与术语“利用”、“正利用”和“已利用”同义。
应当理解,当元件或层被称为在另一元件或层的“上面”、与另一元件或层“连接”、“耦合”或“邻近”时,元件或层可直接地在另一元件或层的上面、与另一元件或层连接、耦合或邻近,或者可存在一个或更多个中间元件或层。相反,当元件或层被称为“直接地在另一元件或层上面”,与“直接地连接到”、“直接地耦合到”或“紧邻”另一元件或层时,不存在中间元件或层。
这里所述的任何数值范围旨在包括归入所述范围内的相同数值精度的所有子范围。例如,“1.0至10.0”的范围旨在包括在所述的最小值1.0和所述的最大值10.0之间(并且包括所述的最小值1.0和所述的最大值10.0)的所有子范围,即最小值等于或大于1.0和最大值等于或小于10.0的所有子范围,例如2.4至7.6。这里所述的任何最大数值限制旨在包括其中包含的所有更小的数值限制,并且本说明书中记载的任何最小数值限制旨在包括其中包含的所有更大的数值限制。
尽管这里已经具体地描述和示出了具有内存高速缓存管理器的高带宽存储器的示例性实施例,但是许多修改和变化对于本领域技术人员将是显而易见的。因此,应当理解,根据本发明的原理所构造的具有内存高速缓存管理器的高带宽存储器可实现为不同于这里具体描述的高带宽存储器。本发明还在权利要求及其等同物中限定。
Claims (20)
1.一种存储器系统,包括:
存储器栈,包括多个存储器管芯;
逻辑管芯,
其中,所述多个存储器管芯被堆叠在逻辑管芯上并且被连接到逻辑管芯,
逻辑管芯具有到主机处理器的外部接口,
逻辑管芯包括高速缓存管理器,高速缓存管理器被配置为:
对通过所述外部接口接收的作为命令的部分的物理地址进行转译以产生第一标签值和标签地址,
从存储器栈中的与所述标签地址相应的位置获取第二标签值,
对第一标签值和第二标签值进行比较,
基于第一标签值和第二标签值的比较来执行所述命令。
2.如权利要求1所述的存储器系统,其中,高速缓存管理器包括:地址转译器,被配置为对通过所述外部接口接收到的物理地址进行转译以产生第一标签值、存储器栈中的数据地址、以及存储器栈中的标签地址。
3.如权利要求2所述的存储器系统,其中,高速缓存管理器包括:命令转译器,被配置为响应于通过所述外部接口接收到的读命令来产生用于获取第二标签值的第一命令以及用于获取数据字的第二命令。
4.如权利要求3所述的存储器系统,其中,高速缓存管理器包括:用于产生高速缓存命中信号的标签比较器,其中,
当第一标签值等于第二标签值时,高速缓存命中信号的值为真;
当第一标签值不等于第二标签值时,高速缓存命中信号的值为假。
5.如权利要求4所述的存储器系统,其中,标签比较器被配置为通过所述外部接口的第一引脚发送高速缓存命中信号。
6.如权利要求5所述的存储器系统,其中,高速缓存管理器被配置为通过所述外部接口的第二引脚发送脏位的值和/或有效位的值。
7.如权利要求5所述的存储器系统,其中,高速缓存管理器被配置为在第一时间间隔期间通过第一引脚发送高速缓存命中信号,并且在第二时间间隔期间通过第一引脚发送脏位的值。
8.如权利要求3所述的存储器系统,其中,高速缓存管理器被配置为通过伪通道执行第一命令。
9.如权利要求3所述的存储器系统,其中,高速缓存管理器包括模式选择器,其中,模式选择器指示是并行操作模式被选择还是串行操作模式被选择,其中,高速缓存管理器被配置为:
当模式选择器指示并行操作模式被选择时并行地执行第一命令与第二命令;
当模式选择器指示串行操作模式被选择时在执行第二命令之前执行第一命令。
10.如权利要求9所述的存储器系统,其中,模式选择器被配置为通过所述外部接口被控制。
11.如权利要求1所述的存储器系统,其中,对于存储在所述多个存储器管芯中的第一存储体中并且通过不同的伪通道可访问的任意两个数据字,两个相应标签被存储在存储器栈的不同子阵列中。
12.如权利要求1所述的存储器系统,其中,所述外部接口被配置为遵照联合电子装置工程委员会标准JESD235A进行操作。
13.一种处理系统,包括:
主机处理器;
第一存储器系统,被连接到主机处理器;
第二存储器系统,被连接到主机处理器;
其中,第一存储器系统,包括:
存储器栈,包括多个存储器管芯;
逻辑管芯,
其中,所述多个存储器管芯被堆叠在逻辑管芯上并且被连接到逻辑管芯,逻辑管芯具有到主机处理器的外部接口,逻辑管芯包括高速缓存管理器,
第二存储器系统被配置作为针对第一存储器系统的后备存储器,
其中,高速缓存管理器被配置为:
对通过所述外部接口接收的作为命令的部分的物理地址进行转译以产生第一标签值和标签地址,
从存储器栈中的与所述标签地址相应的位置获取第二标签值,
对第一标签值和第二标签值进行比较,
基于第一标签值和第二标签值的比较来执行所述命令。
14.如权利要求13所述的处理系统,其中,高速缓存管理器包括:地址转译器,被配置为对通过所述外部接口从主机处理器接收到的物理地址进行转译来产生第一标签值、存储器栈中的数据地址、以及存储器栈中的标签地址。
15.如权利要求14所述的处理系统,其中,高速缓存管理器包括:命令转译器,被配置为响应于通过所述外部接口从主机处理器接收到的读命令来产生用于获取第二标签值的第一命令以及用于获取数据字的第二命令。
16.如权利要求15所述的处理系统,其中,高速缓存管理器包括用于产生高速缓存命中信号的标签比较器,其中,
当第一标签值等于第二标签值时,高速缓存命中信号的值为真;
当第一标签值不等于第二标签值时,高速缓存命中信号的值为假。
17.如权利要求13所述的处理系统,其中,所述外部接口被配置为遵照联合电子装置工程委员会标准JESD235A进行操作。
18.一种用于操作包括多个存储器管芯和逻辑管芯的存储器栈的方法,其中,所述多个存储器管芯被堆叠在逻辑管芯上并且被连接到逻辑管芯,逻辑管芯具有到主机处理器的外部接口,所述方法包括:
由逻辑管芯对通过所述外部接口接收到的作为命令的部分的物理地址进行转译以产生第一标签值、存储器栈中的数据地址、以及存储器栈中的标签地址;
从存储器栈中的与所述标签地址相应的位置获取第二标签值;
对第一标签值和第二标签值进行比较;
基于第一标签值和第二标签值的比较来执行所述命令。
19.如权利要求18所述的方法,还包括:响应于通过所述外部接口接收到的读命令,由逻辑管芯产生用于获取第二标签值的第一命令以及用于获取数据字的第二命令。
20.如权利要求19所述的方法,还包括:由逻辑管芯产生高速缓存命中信号,其中,
当第一标签值等于第二标签值时,高速缓存命中信号的值为真;
当第一标签值不等于第二标签值时,高速缓存命中信号的值为假。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662367062P | 2016-07-26 | 2016-07-26 | |
US62/367,062 | 2016-07-26 | ||
US15/272,339 US10180906B2 (en) | 2016-07-26 | 2016-09-21 | HBM with in-memory cache manager |
US15/272,339 | 2016-09-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107656878A CN107656878A (zh) | 2018-02-02 |
CN107656878B true CN107656878B (zh) | 2023-06-13 |
Family
ID=61010011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710515631.0A Active CN107656878B (zh) | 2016-07-26 | 2017-06-29 | 具有内存高速缓存管理器的高带宽存储器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10180906B2 (zh) |
JP (1) | JP2018018513A (zh) |
KR (1) | KR102404643B1 (zh) |
CN (1) | CN107656878B (zh) |
TW (1) | TWI703440B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10936221B2 (en) | 2017-10-24 | 2021-03-02 | Micron Technology, Inc. | Reconfigurable memory architectures |
US11281608B2 (en) | 2017-12-11 | 2022-03-22 | Micron Technology, Inc. | Translation system for finer grain memory architectures |
KR102505913B1 (ko) * | 2018-04-04 | 2023-03-07 | 삼성전자주식회사 | 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템 |
KR102605205B1 (ko) * | 2018-07-25 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 프로세싱 시스템 |
CN110928810B (zh) * | 2018-09-20 | 2023-11-14 | 三星电子株式会社 | 向外扩展高带宽存储系统 |
KR20200065762A (ko) * | 2018-11-30 | 2020-06-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
US10915451B2 (en) | 2019-05-10 | 2021-02-09 | Samsung Electronics Co., Ltd. | Bandwidth boosted stacked memory |
US11216385B2 (en) * | 2019-05-15 | 2022-01-04 | Samsung Electronics Co., Ltd. | Application processor, system-on chip and method of operating memory management unit |
US11226816B2 (en) * | 2020-02-12 | 2022-01-18 | Samsung Electronics Co., Ltd. | Systems and methods for data placement for in-memory-compute |
KR20220127601A (ko) * | 2021-03-11 | 2022-09-20 | 삼성전자주식회사 | 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 |
US11901035B2 (en) | 2021-07-09 | 2024-02-13 | Taiwan Semiconductor Manufacturing Company, Ltd. | Method of differentiated thermal throttling of memory and system therefor |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446900A (zh) * | 2015-04-03 | 2016-03-30 | 上海兆芯集成电路有限公司 | 处理器和区分系统管理模式条目的方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0803095A1 (en) * | 1994-10-14 | 1997-10-29 | Silicon Graphics, Inc. | Indexing and multiplexing of interleaved cache memory arrays |
GB2297398B (en) * | 1995-01-17 | 1999-11-24 | Advanced Risc Mach Ltd | Accessing cache memories |
JPH11212868A (ja) * | 1998-01-28 | 1999-08-06 | Oki Electric Ind Co Ltd | スヌープキャッシュメモリ制御システム |
US8341352B2 (en) * | 2007-04-17 | 2012-12-25 | International Business Machines Corporation | Checkpointed tag prefetcher |
KR101728067B1 (ko) * | 2010-09-03 | 2017-04-18 | 삼성전자 주식회사 | 반도체 메모리 장치 |
KR20120079682A (ko) * | 2011-01-05 | 2012-07-13 | 삼성전자주식회사 | 디램 캐시를 포함하는 메모리 장치 및 이를 포함하는 시스템 |
US20120221785A1 (en) * | 2011-02-28 | 2012-08-30 | Jaewoong Chung | Polymorphic Stacked DRAM Memory Architecture |
US20120297256A1 (en) | 2011-05-20 | 2012-11-22 | Qualcomm Incorporated | Large Ram Cache |
JP6012263B2 (ja) * | 2011-06-09 | 2016-10-25 | 株式会社半導体エネルギー研究所 | 半導体記憶装置 |
US9753858B2 (en) | 2011-11-30 | 2017-09-05 | Advanced Micro Devices, Inc. | DRAM cache with tags and data jointly stored in physical rows |
US9189399B2 (en) * | 2012-11-21 | 2015-11-17 | Advanced Micro Devices, Inc. | Stack cache management and coherence techniques |
US9053039B2 (en) | 2012-12-21 | 2015-06-09 | Advanced Micro Devices, Inc. | Installation cache |
US9170948B2 (en) * | 2012-12-23 | 2015-10-27 | Advanced Micro Devices, Inc. | Cache coherency using die-stacked memory device with logic die |
US9477605B2 (en) | 2013-07-11 | 2016-10-25 | Advanced Micro Devices, Inc. | Memory hierarchy using row-based compression |
US9286948B2 (en) * | 2013-07-15 | 2016-03-15 | Advanced Micro Devices, Inc. | Query operations for stacked-die memory device |
CN104575584B (zh) | 2013-10-23 | 2018-11-30 | 钰创科技股份有限公司 | 具有嵌入式内存的系统级封装内存模块 |
KR20150062646A (ko) * | 2013-11-29 | 2015-06-08 | 삼성전자주식회사 | 전자 시스템 및 이의 동작 방법 |
-
2016
- 2016-09-21 US US15/272,339 patent/US10180906B2/en active Active
-
2017
- 2017-01-31 KR KR1020170013952A patent/KR102404643B1/ko active IP Right Grant
- 2017-06-05 TW TW106118496A patent/TWI703440B/zh active
- 2017-06-05 JP JP2017110782A patent/JP2018018513A/ja active Pending
- 2017-06-29 CN CN201710515631.0A patent/CN107656878B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446900A (zh) * | 2015-04-03 | 2016-03-30 | 上海兆芯集成电路有限公司 | 处理器和区分系统管理模式条目的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20180012180A (ko) | 2018-02-05 |
TWI703440B (zh) | 2020-09-01 |
US20180032437A1 (en) | 2018-02-01 |
US10180906B2 (en) | 2019-01-15 |
KR102404643B1 (ko) | 2022-06-02 |
CN107656878A (zh) | 2018-02-02 |
JP2018018513A (ja) | 2018-02-01 |
TW201804328A (zh) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107656878B (zh) | 具有内存高速缓存管理器的高带宽存储器 | |
US10310976B2 (en) | System and method for concurrently checking availability of data in extending memories | |
US10831377B2 (en) | Extended line width memory-side cache systems and methods | |
EP2710472B1 (en) | Memory with metadata stored in a portion of the memory pages | |
JP6408712B2 (ja) | メモリアクセス方法、ストレージクラスメモリ、およびコンピュータシステム | |
US20190371400A1 (en) | High-performance on-module caching architectures for non-volatile dual in-line memory module (nvdimm) | |
KR20150115752A (ko) | 적응성 입도 로우 버퍼 캐시 | |
JPH083802B2 (ja) | コンピユ−タ・メモリのアクセス方法およびシステム | |
JP7384806B2 (ja) | 連動メモリデバイスに対するメモリ要求のスケジューリング | |
JP2000242559A (ja) | 情報処理装置及び半導体装置 | |
US20170091099A1 (en) | Memory controller for multi-level system memory having sectored cache | |
TW200915179A (en) | Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same | |
KR101732841B1 (ko) | 내장된 ecc 어드레스 맵핑 | |
EP3382558B1 (en) | Apparatus, method and system for just-in-time cache associativity | |
JP2019509554A (ja) | ソリッドステート装置のための多重アドレスレジスタ用の装置および方法 | |
CN107369473B (zh) | 存储系统及其操作方法 | |
CN116360674A (zh) | 写入请求缓冲器 | |
US20210326265A1 (en) | Tags and data for caches | |
US8127082B2 (en) | Method and apparatus for allowing uninterrupted address translations while performing address translation cache invalidates and other cache operations | |
US11995005B2 (en) | SEDRAM-based stacked cache system and device and controlling method therefor | |
EP4071593A1 (en) | Stacked cache system based on sedram, and control method and cache device | |
US6400640B2 (en) | Method for memory addressing | |
US10216454B1 (en) | Method and apparatus of performing a memory operation in a hierarchical memory assembly | |
CN112835513A (zh) | 控制数据读写装置与方法 | |
CN114691541A (zh) | 一种基于动态访问的dram-nvm混合内存预测器 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |