CN111971660A - 高速缓存动态随机存取存储器 - Google Patents

高速缓存动态随机存取存储器 Download PDF

Info

Publication number
CN111971660A
CN111971660A CN201980025005.0A CN201980025005A CN111971660A CN 111971660 A CN111971660 A CN 111971660A CN 201980025005 A CN201980025005 A CN 201980025005A CN 111971660 A CN111971660 A CN 111971660A
Authority
CN
China
Prior art keywords
dram
data
tag
row
cache
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
CN201980025005.0A
Other languages
English (en)
Inventor
T·沃吉尔桑
F·韦尔
M·米勒
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.)
Rambus Inc
Original Assignee
Rambus Inc
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 Rambus Inc filed Critical Rambus Inc
Publication of CN111971660A publication Critical patent/CN111971660A/zh
Pending legal-status Critical Current

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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • 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/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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/41Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
    • G11C11/413Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
    • G11C11/417Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
    • G11C11/418Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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/6032Way prediction in set-associative cache
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2272Latency related aspects

Landscapes

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

Abstract

公开了一种具有列、数据行、标签行和比较器的动态随机存取存储器。每个比较器比较地址位和来自标签行的标签信息位,以确定高速缓存命中并且生成地址位,以作为多路集关联高速缓存来访问DRAM中的数据信息。

Description

高速缓存动态随机存取存储器
相关申请的交叉引用
本申请涉及于2018年6月5日提交的名称为“CACHE DYNAMIC RANCC-ACCESSMEMORY”的美国临时申请No.62/680,738、于2018年12月10日提交的题为“CACHE DYNAMICRANDOM ACCESS MEMORY”的美国临时申请No.62/777,639、以及于2019年5月2日提交的名称为“CACHE DYNAMIC RANDOM ACCESS MEMORY”的美国临时申请No.62/842,244并且要求其优先权,其全部内容通过引用合并于此。
背景技术
动态随机存取存储器(DRAM)在各种计算机和计算设备中用作系统存储器。现在,DRAM的扩展速度正在放缓,具有降低成本的存储类存储器(SCM)和DRAM对于继续增加存储器系统容量将非常有用。将SCM与DRAM高速缓存相结合的混合存储系统可能会很有用,因为与DRAM相比,SCM的等待时间更长且耐久性有限。
附图说明
根据下面给出的详细描述和本公开的各种实施例的附图,将能够更加充分地理解本公开。
图1A示出了具有数据行和标签行的DRAM的实施例,其可以用作多路集关联高速缓存或多路集关联高速缓存。
图1B示出了适合于图1A中的DRAM实施例的版本的单独的标签板(mat)中的标签。
图2A示出了具有分布在多个存储体之间的一组高速缓存数据的DRAM的另一实施例。
图2B示出了适合于图2A中的DRAM实施例的版本的数据行和标签行。
图2C示出了适合于图2A中的DRAM实施例的版本的分布式标签。
图3A示出了在一个实施例中的用于高速缓存命中以及对已经以多路集关联高速缓存的路径被高速缓存的集合的数据的访问的电路系统和寻址。
图3B示出了在列解码中使用来自标签数据的集位来访问由匹配标签指向的高速缓存数据。
图3C示出了根据一个实施例的用于访问被高速缓存在多路集关联高速缓存DRAM中的SCM的数据的SCM和DRAM中的地址空间。
图4A是示出在一个实施例中的对数据的正常访问和对高速缓存数据的已修改访问的读取定时细节。
图4B示出了使用图4A所示的读取定时从多路集关联高速缓存DRAM的存储体中的一个存储体读取高速缓存数据,而从其他存储体并行地读取更多的高速缓存数据。
图5A是写入定时细节,示出了在一个实施例中的对数据的正常访问和对高速缓存数据的已修改访问。
图5B示出了。
图6示出了板中的DRAM单元和读出放大器,其可以在DRAM的实施例中使用。
图7示出了用于选择标准DRAM模式或多路集关联高速缓存模式的模式寄存器,其中标签和比较器的位长可调节。
图8A是操作多路集关联DRAM高速缓存的方法的流程图,其可以通过本文中描述的各种实施例来实践。
图8B是选择操作模式的流程图,其可以通过本文中描述的各种实施例来实践。
图9描绘了多路集关联DRAM高速缓存的实施例。
图10描绘了多路集关联DRAM高速缓存的另一实施例。
图11描绘了根据本实施例的DRAM以及可以将DRAM用作多路集关联DRAM高速缓存的存储器控制器。
图12描绘了根据本实施例的用于具有独立可选择的DRAM和DRAM高速缓冲存储器的层的DRAM设备的多芯片封装的通过硅通孔连接的管芯堆叠。
图13描绘了图12的管芯堆叠的版本,其中在基础层上具有高速缓存层、DRAM层和混合模式逻辑。
图14描绘了根据本实施例的图9的多路集关联DRAM高速缓存的版本,其中在图12和图13的管芯堆叠的DRAM层和基础层上布置有电路系统。
具体实施路径
在以下描述中,将使用本领域技术人员通常采用的用于将其工作的实质传达给本领域其他技术人员的术语来描述说明性实施例的各个方面。为了说明的目的,阐述了具体的数字、材料和配置以便提供对说明性实施例的透彻理解。然而,对于本领域的技术人员将很清楚的是,本公开可以仅利用所描述的方面中的一些方面或者在没有具体细节的情况下来实践。在其他情况下,省略或简化了众所周知的特征,以免使说明性实施例不清楚。
本文中描述的DRAM架构修改使得能够在DRAM上进行标签存储和比较、以及进行对高速缓存数据的访问。在一些版本中,DRAM可用作多路集关联高速缓存,并且还可用作标准DRAM,例如,如果不是具有存储类存储器或其他存储器的混合系统的一部分。来自存储类存储器或其他存储器的数据集可以通过某种路径被高速缓存在DRAM高速缓存中,并且在标签比较指示高速缓存命中时被访问。
在典型的系统中,在DRAM管芯外部的电路系统执行标签匹配。在混合存储器系统中使用标准DRAM部件作为高速缓存包括在能够访问DRAM上的数据信息之前,将标签信息位从DRAM传输到进行标签匹配的芯片。与修改DRAM以实现DRAM上的标签匹配相比,这既产生了等待时间开销又产生了功率开销,如本文所述。
DRAM高速缓存的各个实施例具有以下一些或全部特征。
通常使用非常大的块大小来完成与存储类存储器(SCM)的传输。这使得标签与数据的比率比传统高速缓存要小得多,从而能够以很少的开销对高速缓存进行DRAM修改。具有数据行和标签行以及数据板行和标签板行的DRAM的各种实施例参考图1A至图4B来示出和描述,并且针对标签与数据的各种比率,容易想到具有数据行、标签行、数据板行和标签板行的其他布置的其他实施例。
DRAM高速缓存被组织为集关联高速缓存。在集关联高速缓存中,来自存储类存储器的数据集可以被高速缓存在集合中,并且在集合中以多个路径或位置中的任何一种被高速缓存在高速缓冲存储器中。将统计信息的总数乘以每个集合中的路径的总数得出高速缓冲存储器中的总行数。每个路径和每个集合映射到线。当数据集被高速缓存时,标签与数据集的地址的一部分相匹配,并且指向集合以及高速缓存中的路径或位置,以便可以从高速缓存读取带标签的高速缓存数据集。标签将数据集与集合以及高速缓冲存储器中的路径或位置相关联,因此与这种类型的高速缓存的名称相关联。可以为数据集高速缓存的数据量、集合的数目以及可以高速缓存该数量的路径或位置的数目(通常表示为N)确定了N路集关联高速缓存的高速缓冲存储器的量以及总计和每个标签使用的地址位数。
DRAM中的标签存储是通过添加分布在现有板中的附加单元行或通过添加板来完成的。板(无论是具有数据行的数据板、具有标签行的标签板,还是具有数据行和标签行两者的板)是具有定义高度(单元数或行数)和宽度(单元数或列数)的一组DRAM单元。每个DRAM单元具有晶体管(通常为NMOS或N型金属氧化物半导体)和电容器。板的各种实施例参考图1A至图6来示出和描述,并且容易想到DRAM单元和板的其他布置。
将标签行与不共享主读出放大器的数据行相关联避免了将读出放大器条带加倍的需求并且节省了面积。在一些实施例中,具有一个读出放大器的板中的标签行与具有另一读出放大器的DRAM中的其他地方的数据位置相关联并且指向该数据位置。这通过用于标签行的读出放大器支持标签读出的定时重叠,并且通过用于与标签行相关联的数据位置的读出放大器支持数据读出的定时重叠,如图4和图5的定时细节所示。如果标签行和相关联的数据位置在同一板中,则这种定时重叠将需要使读出放大器加倍。
集合内不同路径的标签位于一行。标签命中激活与位于这一行的一个路径的标签匹配,如参考图3A示出和描述的。该特征支持比较块,每个标签和标签匹配一个比较块,以在逻辑“或”配置中被组合在一起,以用于图3A所示的比较块中的紧凑电路系统。
标签比较仅通过列访问来完成。用于特定集合的所有路径的标签在同一行,并且与该行的标签数据的列访问之间并行地与地址位比较,如图3A和图3B所示。
在存储体边缘处的并行访问用于最大化并行标签比较。在每个存储体的边缘处对标签比较,以便在多个存储体之间并行进行多个标签比较。然后,在一些实施例中,例如,如图1A至图2C所示,在多个存储体中并行访问高速缓存数据。
寻址集合使用设备、存储体和行地址。来自存储类存储器的数据可以被高速缓存在N个路径或位置中的一个路径或位置中,在集合中的一个集合中,在N路关联高速缓存中。集合的地址包括通过地址解码来解码的设备地址、存储体地址和行地址。
使用内部地址总线在DRAM中分配集合地址、比较值和由标签匹配确定的地址。参见例如图9,图9示出了用于将地址分配给DRAM中的存储体的行解码和列解码的高速缓存逻辑和多路复用。
阵列和DQ引脚外部的内部数据总线仅用于数据。参见例如图9,图9示出了从DRAM中的存储体到数据逻辑的内部数据。地址和数据不在数据总线上进行混合或多路复用。
图1A示出了可以用作多路集关联高速缓存的具有数据板行104(每个具有多个数据行)和标签板行106(每个具有用于标签信息位的多个标签行)的DRAM的实施例。在该示例中,DRAM的每个存储体102是DRAM的32个板108乘以64个板108的阵列,并且每个板108是512位乘以512位的阵列或子阵列(参见图6),每个板108总共256千比特(kb)。在DRAM 0的每个通道A和B中有8个存储体102,在DRAM 1的每个通道C和D中有8个存储体102,总共有32个存储体102。DRAM可以对4千位(kB)的DRAM块(高速缓存行)执行64字节读取或写入访问。在该示例中,在存储体102的底部(或在其他实施例中在顶部)形成标签板行106的32个板108中的标签行中的标签占据大约1.6%的额外存储器单元面积。
DRAM存储体102由包含存储器单元和行/列外围逻辑的矩阵块阵列(子阵列)构成。数据线将存储体102连接到接口块。一行未修改板为标签提供足够的容量和带宽(BW)。
图1B示出了适合于图1A中的DRAM实施例的版本的单独的标签板112中的标签。标签读取位确定在读取操作期间是读取高速缓存数据还是标签数据。如果标签读取位为1,则读取标签板112中的标签的数据。如果标签读取位为0,则从数据板110读取高速缓存数据。
在各种实施例中,包括用于如图1A、图1B、图2A、图2B和图2C所示的标签,可以使用类似于正常访问的访问来读取标签(没有标签匹配,从存储器控制器到要激活的行地址的直接访问)。在一些实施例中,需要有另外的地址空间来发信号通知标签访问而不是正常访问。在内部,这可以通过标签读取位来设置,如图1B针对单独板112中的标签所示,或者分布在板中,如图2B和图2C所示,等等。执行该操作有多个选项:
1.当DRAM处于高速缓存模式时,对解码通过CA总线发送的一系列位的位分配进行修改以使其具有发信号通知标签访问的附加状态。
2.当DRAM处于高速缓存模式并且存在双向信号(如DMI)用于传输附加信息时,该信号可以用于在高速缓存访问与标签读取之间切换。
3.模式寄存器集(MRS)在高速缓存访问与标签读取之间切换。
图2A示出了具有分布在多个存储体202之间的集合的高速缓存数据的DRAM的另一实施例。在该示例中,该集合以每个存储体202为32kB分布在四个存储体202之间,并且该集合的每个路径被分配为在四个相同的存储体202中的每个存储体中的每个存储体202的16个字节。这四个相同的存储体202中的每个具有32个标签。其他集合分布在DRAM的其他存储体202之间,每个集合四个存储体202。在该集合占用的四个存储体202中的每个存储体中的标签中的标签匹配指向在四个存储体202中的每个存储体中的该集合的路径的高速缓存数据。
图2B示出了适合于图2A中的DRAM实施例的版本的数据行204和标签行206。根据本文中的教导容易想到的DRAM中的数据行和标签行的这个数目以及其他数目和布置可以用作多路集关联高速缓存。在该示例中,DRAM的每个存储体202是8个板208乘以64个板208的阵列,并且每个板208是512位乘以1024位的阵列或子阵列(参见图6),每个板208总共512kb。在该示例中,每个板208在顶部和底部包括冗余行,在上部冗余行旁边或备选地在下部冗余行旁边包括标签行,并且包括正常行(即,数据行),并且每个集合使用32行数据。在各种实施例中,标签行206可以在板208的顶部、底部或其他地方。用于标签、冗余和正常数据行的各种布置是可能的。在一些实施例中,分段(或存储体202)的下半部中的标签被分配给分段(或存储体202)的上半部中的数据。分段(或存储体202)的上半部中的标签被分配给分段(或存储体202)的下半部中的数据。DRAM0的每个通道A和B中有16个存储体202,而DRAM1的每个通道A和B中有16个存储体202。DRAM 0中的四个存储体202的每个中的32个标签可以高速缓存4乘以32kB集合,其中命中数据为4乘以16字节。
图2C示出了适合于图2A中的DRAM实施例的版本的分布式标签。板210中存在正常字线(以实线表示)和标签字线(以虚线表示)。当标签读取位为0时,可以读取正常字线的数据。当标签读取位为1时,可以读取标签字线的数据。在该实施例中,在给定板210中,对于高速缓存数据可以有多个正常字线,对于标签数据可以有单个标签字线。
参考图1A、图1B和图2A至图2C,各种实施例具有以下架构细节中的一些或全部。
优化多路高速缓存中与一个路径相对应的数据单元的分布(例如,4kB路径内的64B事务)可以基于标签匹配的访问速度、对单个单元的随机数据访问和对整个4kB块的访问与存储体利用率之间的权衡以实现连续数据流。例如,图1A中的多路集关联高速缓存DRAM实施例在所有存储体上针对这些路径分配高速缓存数据。图2A中的多路集关联高速缓存DRAM实施例仅在少数几个存储体上针对给定路径分配高速缓存数据。图1A中的一个版本或其变体可以具有用于标签和数据的同时行激活,图2A中的另一版本或其变体可以等待直到比较具有匹配,以激活用于高速缓存数据访问的行。图1A中的一个版本有利于随机访问数据,图2A中的另一版本有利于存储体利用率和连续流。
将路径地址与列地址相关联允许标签行激活和数据行激活的完全重叠,但是当访问用于填充的完整路径时,需要访问更多存储体或同一存储体中的多个行访问,例如,取回和逐出。填充涉及将数据放入高速缓存,并且然后最后清除脏数据。
根据需要复制标签,从而使得可以在需要匹配信息的情况下在本地进行标签匹配。多个存储体每个具有用于在该存储体中高速缓存数据的路径的标签副本,从而使得实际上具有标签匹配的任何(多个)存储体都可以产生数据。参见例如图2A,图2A示出了在多路集关联高速缓存DRAM的四个存储体中的标签命中。每个存储体具有针对特定路径的标签匹配,并且所有四个存储体中该路径的高速缓存数据被并行读取。每个存储体具有集合的所有路径的数据,但是没有每个路径的完整数据。在图1A中,标签被复制32次(32个存储体中的每个具有完整的重复标签集),并且通过并行访问所有32个存储体中的一组路径的数据,一次可使用一种路径的所有高速缓存数据。在图2A中,标签被复制四次(四个存储体中的每个具有一组标签的重复集合,每个其他组四个存储体具有另一组标签的重复集合,等等),并且这四个存储体被多次访问以便针对这个路径获取所有高速缓存数据。
比较逻辑位于靠近阵列边缘的位置。例如,比较器和比较块(参见图3)沿着存储体中的DRAM单元的板的阵列的边缘定位。这样的位置缩短了信号路径,从而使寄生信号线负载保持为低,例如,减小了电阻和电容,还可能减少了信号反射的发生率。
到控制器的反馈(例如,命中或未命中)使用可用反馈引脚(警报(ALERT_n)、数据掩码反转(DMI)等)完成。例如,到控制器的反馈可以使用具有DRAM到控制器方向的可用引脚完成,并且在以其高速缓存模式使用DRAM的情况下不需要。示例是在将LPDDR4DRAM修改为高速缓存DRAM的情况下使用DMI引脚(参见图11),或者在修改DDR4 DRAM的情况下使用ALERT_n引脚。另一示例是在修改GDDR5或GDDR6 DRAM的情况下使用错误检测代码(EDC)引脚。
可以同时开始写入脏位和写入数据。脏位与标签数据一起被写入,并且要高速缓存的数据被写入与标签相关联的高速缓冲存储器中的位置(或路径)。如果将DRAM中的同一存储体用于标签数据和高速缓存数据,则可能需要两个列周期,以一个列周期推出标签行的关闭。
冗余:标签行可以得到优先级替换或总是加倍。
DRAM是双重用途的,并且可以被设置为一种模式,在该模式中,它用作高速缓存DRAM(例如,多路集关联高速缓存模式);或者被设置为另一种模式,在该另一种模式中,它用作标准DRAM(例如,标准DRAM模式)。用于选择标准DRAM模式与高速缓存DRAM模式的模式寄存器的实施例参考图7示出和描述。模式选择控制地址多路复用和数据多路复用,这在这两种模式之间有所不同。
如果每个板的一个冗余行被分配为标签行,则仅从标准DRAM设计布局来改变外围逻辑的实现是可能的。标准DRAM设计布局具有多个冗余行,并且冗余行中的一个冗余行可以被指定为标签行,而无需改变板或行的布置的设计布局。然后,外围逻辑可以实现对地址解码和数据多路复用的改变,并且为标签行和DRAM其余部分的N路集关联高速缓存操作添加比较器和比较块。
在一个实施例中,最新的标签匹配信息可以被存储在DRAM上,以允许随后以相同的路径进行访问而无需另一比较。如果根据关闭页面策略使用高速缓存DRAM,则在一次访问之后将关闭标签和数据行(路径)两者。也可以根据开放页面策略来使用高速缓存DRAM,其中在发生初始高速缓存命中之后,数据行(路径)保持打开状态。在这种情况下,可以使用连续的列命令来访问打开行的其他列。显式预充电命令将关闭数据行,并且下一次访问将再次启动标签比较。
标签的大小以及被分配给地址和元数据的位可以配置。模式寄存器的实施例,用于选择与多路集关联高速缓存的可配置数目的路径相对应的标签和比较器的位长的模式寄存器的实施例参考图7示出和描述。
一个实施例是一种支持高速缓存操作的DRAM设备,其中高速缓存行标签被保持在与单独的物理字线上的相关联的数据行存储元件相邻的通过两个相关联的操作进行访问的专用行存储元件中。第一操作访问标签匹配中的标签的数据,并且访问数据行存储元件。第二操作获取标签的数据,使用该数据指向数据的列,然后访问高速缓存数据。这两个操作在参考图4A和图5A示出和描述的定时上重叠。因此,对于两个相关联的操作中的一个操作,数据和高速缓存访问是重叠的。参见例如图1A中的设计,其中标签和数据行被并发访问,并且标签匹配激活列解码以进行高速缓存数据访问。
对于两个相关联的操作中的另一个,数据和高速缓存访问是不重叠的。参见例如图2A中的设计,这导致标签匹配发生在为高速缓存数据访问打开另一行之前。
多路集关联高速缓存的一个实施例具有以下特征。
2GB高速缓存大小。这是可用于从存储类存储器中高速缓存数据的DRAM数量。对于其他实施例,容易想到其他大小的高速缓存。
两个8Gb LPDDR4 DRAM管芯。在一个实施例中,这是可用于多路集关联高速缓存的管芯的数目。其他数目的管芯容易用于其他实施例。
32路。这是高速缓冲存储器中每个集合中的路径或寻址位置的数目,其中来自存储类存储器的数据可以被高速缓存在多路(对于本实施例而言,现在是32路径)集关联高速缓存中。其他数目的路径容易用于其他实施例。
每个路径4kB。这是可以按照32路或N路集关联高速缓存来被高速缓存在每个路径或每个行中的数据量。每个路径的其他数据量很容易用于其他实施例。
64B事务。这是在每个(读或写)事务中可以从高速缓冲存储器读取或写入每个高速缓冲存储器的数据量。每个事务的其他数据量容易用于其他实施例。
与低功率双倍数据速率版本4(LPDDR4)信令和定时兼容的操作:两个16b通道上的具有16b突发长度的一个突发(每个通道32B)。在一个实施例中,当启用时,用于LPDDR4DRAM的标准定时和信令用于标准DRAM操作和N路集关联高速缓存操作。在另一实施例中,DRAM使用用于LPDDR4 DRAM的标准定时和信令作为N路集关联高速缓存进行操作,但是如果没有N路集关联高速缓存操作,则对于标准DRAM操作是不可选择的。如容易想到的,其他实施例可以将标准定时和信令用于其他类型的DRAM。
针对一个实施例中的以下配置和其他实施例中的其他变体容易想到包括地址解码和地址线复用的寻址。
2GB的高速缓冲存储器是231字节=(分为)25个路径,每个路径212个字节的高速缓冲存储器和214个集合。因此,14b集合地址标识该集合,集合的大小为128kB。在4kB路径内,有64=26个可能的64B事务。6b偏移地址在高速缓存命中的情况下标识事务。
对于1TB SCM大小,在SCM中存在40b的地址。标签中匹配的地址为40b-14b(集合数)-12b(路径大小)=14b。添加两个状态位将使标签2B=16b。每个4kB数据的标签2B(在该示例中为32路集关联高速缓存的每个路径)的标签存储开销很小。即使标签被存储在DRAM中的多个位置以方便并行访问,开销也将大大低于1%。
在一个实施例中,针对以下配置以及在其他实施例中的变化,容易想到包括地址解码和地址线多路复用的寻址。设备的1b寻址、存储体的3b寻址、和属于一个集合的行块的10b寻址针对每个子存储体标识32个1kB行的区域。在该实施例中,同时使用四个子存储体。
取决于高速缓存数据的方式和位置以及地址多路复用、存储体选择、行解码和行使能、列解码和列使能的设计决策,存在各种可能定时来访问高速缓存数据。可以组合多个实施例以在一个设备中进行定时。在一个实施例中,标签比较与对DRAM中的高速缓存数据的访问之间没有重叠。来自主存储器(例如,SCM)的可以被高速缓存的一组数据的地址被分成位字段,并且一个字段(该地址的标签字段)被提供给比较器以进行标签匹配。读取标签并且将其与标签字段比较。标签匹配为DRAM中的高速缓存数据生成地址的一部分,而高速缓存DRAM的地址的另一部分来自主存储器中数据集的地址。只有在所有地址位都可用之后,才可以在DRAM中执行访问。
在其他实施例中,对于标签匹配,对标签(即,标签行)的访问与对DRAM中的高速缓存数据的访问存在完全重叠或部分重叠。主存储器中数据集的某些地址位用于访问DRAM的数据行中的存储体选择和行使能,与访问标签行并行或在访问标签行之后立即开始。标签匹配为DRAM中的高速缓存数据生成地址的一部分,并且该地址的一部分用于列解码以访问高速缓存数据。
本文中提出了具有各种数目的用于比较的标签地址位,集合中的路径数目、标志位的数目、用于列和行解码的地址位的布置、用于读出放大器的设计和功能等的各种实施例。应当理解,这些是示例,并且根据其容易想到其他实施例。
图3A示出了在一个实施例中的用于高速缓存命中和对已经在多路集关联高速缓存的路径中高速缓存的集合的数据的访问的电路系统和寻址。标签板与存储体的正常数据板相同。例如,在所示的实施例中,每个板108是512位乘以512位的阵列或子阵列(参见图6),每个板总共有256千位(kb)。标签阵列允许从存储体访问16kb的行,并且从该行访问256b的列。256b列包含16个16b标签106,每个标签可以是访问的物理地址AP[39:27]字段的可能匹配。使用9个地址位AR[14:6]进行行解码并且使用6个位AR[5:0]进行列解码306来访问标签。并行读取和并行比较标签,每个标签访问提供16位,其中的13位被呈现给比较块302中的比较器304以与AP[39:27]地址字段比较,其中的其他3位是标志位(例如,脏、有效、奇偶校验)。另一实施例可以使用14位用于地址比较,而留下两个标志位。容易想到其他数目的标签位、地址比较位和标志位。
图3B示出了在列解码中使用来自标签数据的集合位来访问由匹配标签指向的高速缓存数据。匹配标签106是HIT,并且由比较块302将集合号码(从0到15)Set[3:0]传递到存储体的列访问路径,即列解码306。在所示的电路中,每个比较块302与集合号码N硬连线,该集合号码N通过该比较块302中的命中被启用到集合号码位Set[3:0]上。然后访问匹配数据。在各种实施例中(例如,参见图1A、图2A、图9和图10),比较和数据访问可以并行地在多个存储体102中发生。
图3C示出了根据一个实施例的用于访问在多路集关联高速缓存DRAM中高速缓存的SCM的数据的SCM和DRAM中的地址空间。在一个实施例中,SCM物理地址是40位AP[39:0],以寻址SCM的240个字节(1TB)。为了访问高速缓存数据,将13个最高有效位AP[39:27]用作标签字段,该字段生成Set[3:0],该Set[3:0]用于高速缓存数据的列地址位AC[5:2]。块地址(SCM物理地址的15位)AP[26:12]用于高速缓存数据的行地址AR[14:0]。SCM物理地址的子块地址的五个最高有效位AP[11:6]为设备地址AD[1:0]提供了两位,为高速缓存数据的存储体地址AB[2:0]提供了3位。SCM物理地址的子块地址的接下来的两位为高速缓存数据的列地址AC[1:0]提供了另外两位。列解码306使用地址位AC[5:2]和AC[1:0]。在标签比较之后,所有集合都在DRAM高速缓存中可用。
图4A是示出在一个实施例中的数据的正常访问402和高速缓存数据的已修改访问404的读取定时细节。DRAM(高速缓存)中4kB块的副本分布在32个存储体102之间以获取更好性能。在所示的实施例中,4kB块由板组成,并且每个板108是512位乘以512位的阵列或子阵列(参见图6),每个板总共256千位(kb)。容易想到存储体、块和板的其他布置。列解码306如以上参考图3A所述。标签板行106中的标签如以上参考图1A所述。容易想到用于其他实施例的变体。
图4A示出了时钟信号CK,其被分组为以命令/地址CA作为时钟、命令和地址(对DRAM的控制器),以数据总线DQ作为数据(在正常模式中被使用的DRAM),并且以存储体控制Bank作为DRAM(在正常模式中被使用的DRAM)的内部活动,用于正常(直接)访问402以读取数据。这些下面是标签活动Tag,其被分组为以存储体控制Bank作为DRAM(在高速缓存模式中被使用的DRAM)的内部活动,并且以数据总线DQ作为数据(在高速缓存模式中被使用的DRAM),用于已修改(已高速缓存)访问404以读取高速缓存数据。根据存储体控制,对于正常(直接)访问402,首先存在对存储体的激活和读出,然后是读取并且传输到接口Xface。时序图中的Xface表示在DRAM内部数据从阵列出来到出现在外部DQ(读取)(例如,图4A)上或从进入外部DQ到出现在阵列(写入)(例如,图5A)处所花费的时间。
正常(直接)读取访问402的定时在41ns内传输两列数据,存储体102的激活和读出花费36个时钟周期或18ns,读取花费8个时钟周期或4ns,然后传输到接口(xface)花费8个时钟周期或4ns。图4A和图5A示出CA[5:0]作为遵循LPDDR4协议从控制器到DRAM的命令和地址传输的示例。如果将另一协议的DRAM修改为可用作高速缓存DRAM,则这些功能可以使用显式地址引脚和单独的命令引脚(如RAS、CAS和WE)来完成。
根据标签活动,对于已修改(已高速缓存)访问404,首先存在标签的激活和读出,随后是标签数据的读取和比较,其中确定标签命中或未命中。CA输入分组对于正常(直接)访问402与已修改(已高速缓存)访问404相同。根据存储体控制,与该活动重叠,存在存储体的激活和读出,其中标签命中提供集合位Set[3:0],然后是高速缓存数据的数据读取,并且传输到接口Xface。已修改(已高速缓存)读取访问404的定时为51ns,其中标签的激活和读出花费与正常访问402中的数据读取所花费的相同的36个时钟周期或18ns,随后是标签比较花费12个时钟周期或6ns。对于高速缓存数据访问,定时重叠,其中存储体102的激活和读出花费相同的36个时钟周期或18ns,但是标签的激活和读出重叠,随后是相同的8个时钟周期或4ns的读取、以及用于传输到接口(Xface)的相同8个时钟周期或4ns。额外的10ns(用于访问以读取高速缓存数据的总时间)包括4ns(用于列访问)和6ns(用于16b比较)。
图4B示出了使用图4A所示的读取定时从多路集关联高速缓存DRAM的存储体中的一个存储体读取高速缓存数据,而从其他存储体并行地读取更多的高速缓存数据。在一个实施例中,为了实现更好的性能,来自SCM的4kB数据块的副本分布在DRAM(高速缓存)存储器中的32个存储体之间(参见例如图1A)。使用所选择的地址位用于板(和标签行)选择和列解码306从存储体中并行读取256位标签数据。在一个实施例中,对于标签106中的一个标签,标签匹配产生命中指示(即,高速缓存命中、标签匹配或标签命中,参见图3A)和集合位Set[3:0]、以及脏位、有效位和奇偶校验位。集合位与所指定的地址位组合以进行列解码306,并且从存储体读取256位的高速缓存数据。在DRAM的32个存储体之间发生类似的活动,从而并行读取高速缓存数据的4kB块。对于多路集关联DRAM高速缓存的其他实施例,包括图2A所示的实施例,容易开发出具有不同位数以及不同寻址和定时方案的变体。
图5A是写入定时细节,其示出了在一个实施例中的数据的正常访问502和高速缓存数据的已修改访问504。DRAM(高速缓存)中4kB块的副本分布在32个存储体102之间以获取更好的性能。在所示的实施例中,4kB块由板组成,并且每个板108是512位乘以512位的阵列或子阵列(参见图6),每个板总共256千位(kb)。容易想到存储体、块和板的其他布置。容易想到存储体、块和板的其他布置。列解码306如以上参考图3A所述。标签板行106中的标签如以上参考图1A所述。容易想到用于其他实施例的变体。
图5A示出了时钟信号CK,其被分组为以命令/地址CA作为时钟、命令和地址(对DRAM的控制器),以数据总线DQ作为数据(在正常模式中被使用的DRAM),并且以存储体控制Bank作为DRAM(在正常模式中被使用的DRAM)的内部活动,用于正常(直接)访问502以写入数据。这些下面是标签活动Tag,其被分组为以存储体控制Bank作为DRAM(在高速缓存模式中被使用的DRAM)的内部活动,并且以数据总线DQ作为数据(在高速缓存模式中被使用的DRAM),用于已修改(已高速缓存)访问504以写入高速缓存数据。根据存储体控制,对于正常(直接)访问502,首先存在对存储体的激活和读出,然后是传输到接口Xface、写入和列访问。正常(直接)写入访问502的定时在34ns内存储两列数据,存储体102的激活和读出花费36个时钟周期或18ns,一个等待周期,传输到接口(Xface)花费8个时钟周期或4ns,写入WR花费8个时钟周期或4ns,列COL花费8个时钟周期或4ns。
根据标签活动,对于已修改(已高速缓存)访问504,首先存在标签的激活和读出,随后是标签数据的读取和比较,其中确定标签命中或未命中。CA输入分组对于正常(直接)访问502与已修改(已高速缓存)访问504相同。根据存储体控制,与该活动重叠,存在存储体的激活和读出,其中标签命中提供集合位Set[3:0],然后是传输到接口(Xface)、以及用于写入高速缓存数据的2个写入周期。时序图中的Xface表示在DRAM内部数据从阵列出来到出现在外部DQ(读取)(例如,图4A)上或从进入外部DQ到出现在阵列(写入)(例如,图5A)处所花费的时间。已修改(已高速缓存)访问504的“存储体”中的第二WR用于标签写入WR。上面标签为“标签”的行与标签为“存储体”的行之间存在差异。“标签”行示出了标签逻辑中发生的情况,即,对于WR,需要读取、比较标签,并且需要准备带有脏位等的新标签。“存储体”行示出了阵列中发生的情况。图4A和图5A都读取了标签,但是图4A和图5A的“存储体”行未示出已读取的标签(在读取标签时,该存储体位于“激活/读出存储体”块下方,同时激活并且读出数据行)。
已修改(已高速缓存)写入访问504的定时是44ns,其中标签的激活和读出花费与正常访问502中的数据读取所花费的相同的36个时钟周期或18ns,随后是标签读取花费8个时钟周期或4ns,标签比较花费12个时钟周期或6ns。随后紧接着是写入wr,其需要8个时钟周期或4ns。读取(rd)和(如果命中)写回(wr)标签,其中设置脏位并且调节奇偶校验。命中或未命中状态被返回到控制器。如果未命中,则取消64字节写入和标签写入脏操作。在某些实施例中,额外的10ns(用于访问以写入高速缓存数据的总时间)包括用于列访问的4ns和用于16b比较的6ns。16b标签以其“脏”标志集被回写——这可能会增加标签访问的tRC。
图5B示出了使用图5A所示的写入定时将高速缓存数据写入多路集关联高速缓存DRAM的存储体中的一个存储体,而更多的高速缓存数据被并行地写入其他存储体。在一个实施例中,为了实现更好的性能,来自SCM的4kB数据块的副本分布在DRAM(高速缓存)存储器中的32个存储体之间(参见例如图1A)。使用所选择的地址位用于板(和标签行)选择和列解码306从存储体中并行读取256位标签数据。在一个实施例中,对于标签106中的一个标签,标签匹配产生命中指示(即,高速缓存命中、标签匹配或标签命中,参见图3A)和集合位Set[3:0]、以及脏位、有效位和奇偶校验位。集合位与所指定的地址位组合以进行列解码306,并且将256位的高速缓存数据写入存储体。如果适合命中,则新准备的带有脏位和已调节奇偶校验等的标签也将被写回存储体。在DRAM的32存储体之间发生类似的活动,从而并行写入高速缓存数据的4kB块。对于多路集关联DRAM高速缓存的其他实施例,包括图2A所示的实施例,容易开发出具有不同位数以及不同寻址和定时方案的变体。
图6示出了板602中的DRAM单元604和读出放大器608,其可以在DRAM的实施例中使用。DRAM单元604布置在行612和列610中。每个DRAM单元604具有可以存储电荷的MOSFET和电容器。给定行612中的DRAM单元604被用于该行612的字线614激活,并且被读出到该DRAM单元604的该列610的位线616上。所有位线616读出位线预充电606被预充电,并且所选择的DRAM单元604通过读出放大器608被读出。读出放大器608可以具有其他电路系统。通常,读出放大器将具有三个功能,即预充电、读出和与阵列数据线的连接,并且各种读出放大器设计容易用于各种实施例。值得注意的是,在该设计中,每个板602具有特定于板602的DRAM单元604的读出放大器608。因此,可以将标签板行106与一组标签602一起布置并且将与标签相关联的数据行104(即,作为标签行)与其他组的板602一起布置,从而使得每个标签和标签板行106被耦合到读出放大器(即,用于构成标签板行106的板集合602的读出放大器608),并且相关联的数据行被耦合到不同的读出放大器(即,用于构成数据板行104的板集合602的读出放大器608),并且对标签的访问可以与对由标签指向的高速缓存数据的访问重叠。
在各个实施例中,存在不同路径可以避免读出放大器冲突。图1A和图1B可以具有彼此相邻的标签板和数据板,因此它们可能仅需要在该边界处、在存储体中的其他任何地方具有双倍读出放大器条带。图2和其他可能的实施例不需要使通常的交错式读出放大器加倍,因为它们以标签永远不与相关数据相邻的方式构造。具有在6F2开放位线架构中同时操作的相邻板需要虚拟阵列的开销来提供补充位线,并且因此开销相当大。
图7示出了用于选择标准DRAM模式或多路集关联高速缓存模式的模式寄存器702,其中标签和比较器的位长可调节。一个或多个模式寄存器702控制地址多路复用器(mux)704、数据多路复用器(mux)706和比较器304。用于标签访问和高速缓存数据访问中的行解码和行启用以及列解码和列启用的地址位、以及用于标签比较的数据位的数目和位置的选择(参见图3A至图5B)因此通过地址多路复用器704和/或数据多路复用器706根据模式选择来控制。在各种实施例中,标签和比较器304可以有与多路集关联高速缓存的路径数目范围相对应的指定位长范围。模式寄存器702可以选择用于标签比较的位数或集合中的路径数。例如,一个更高性能的解决方案可以从32路转换为16路,其中集合数目为两倍。相同的DRAM可以用作标准DRAM,与指定DRAM定时和信令兼容,并且比较器被禁用,或者用作启用了比较器的多路集关联高速缓存,甚至可以在两种模式之间来回切换。在另一实施例中,可以使用熔丝逻辑而不是模式寄存器702来启用或选择这些特征中的一些或全部。
图8A是操作多路集关联DRAM高速缓存的方法的流程图,其可以通过本文中描述的各种实施例来实践。例如,硬件、在处理器上执行的软件、固件或其组合可以使用如图3A、4A或5A所示的定时和电路或其变体执行对如图1A至图7或其变体所示的DRAM中的高速缓存数据的访问来执行这些各种动作。在动作802中,读取DRAM的标签行。标签行被并行读取,并且可以如图1A和图2A或其变体所示被定位。图4A中示出了对于已修改(已高速缓存)访问404的针对动作802的读取定时的示例,其中标签活动示出了激活/读出标签,随后是读取(rd)。
在动作804中,可以被高速缓存在DRAM中(例如,从主存储器或SCM)的集合的地址位被呈现给比较器。地址位的选择可以如图7或图8B或其变体所示控制。图4A中示出了对于已修改(已高速缓存)访问404的针对动作804的读取定时的示例,其中标签活动示出了读取(rd),然后是比较。
在动作806中,比较集合的地址位和来自DRAM的标签行的数据位(即,标签信息位)。如图3A至图5B所示的比较器在DRAM的存储体之间并行执行比较。图4A中示出了对于已修改(已高速缓存)访问404的针对动作806的读取定时的示例,其中标签活动示出了比较,其中标签命中提供了集合位Set[3:0]。
在决策动作808中,确定是否存在高速缓存命中。根据动作806中的比较结果来确定高速缓存命中。图4A中示出了对于已修改后(已高速缓存)访问404的该定时的示例,其中执行比较以确定存在高速缓存命中还是高速缓存未命中。如果答案为否,则没有高速缓存命中,流程进行到动作810,以报告高速缓存未命中。如果答案为是,则存在高速缓存命中,流程进行到动作812。
在动作812中,为多路集关联高速缓存命中生成地址位。图3A至图5B示出了示出集合位Set[3:0]的示例,其示出了多路集关联高速缓存中的哪个路径具有高速缓存数据集。
在动作814中,基于高速缓存命中,使用地址位从数据行读取数据。图3A至图5B示出了用于读取高速缓存数据的列解码的示例。图4中示出了对于已修改(已高速缓存)访问404的该定时的一个示例,其中在高速缓存命中之后,DQ位被读取到DQ总线上。
图8B是选择操作模式的流程图,其可以通过本文中描述的各种实施例来实践。在动作820中,向模式寄存器写入,以选择标准DRAM模式或多路集关联高速缓存模式,其中标签和比较器具有所选择的位长。
在动作822中,基于模式寄存器的内容来控制地址多路复用、数据多路复用、标签的位长和比较器的位长。图7示出了控制这些方面的模式寄存器的示例。
图9描绘了多路集关联DRAM高速缓存的实施例。示出了四个存储体902,每个存储体具有行解码器904。每个存储体902具有列解码器906和次级读出放大器(SA)908。每个存储体902还具有高速缓存逻辑914。该示例示出了每两个存储体902有一个多路复用器920,但是在其他实施例中,每个存储体或每任何数目的存储体902可以有一个多路复用器920。来自命令/地址逻辑/重新驱动器916的内部命令和地址线从高速缓存逻辑或从全局命令和地址逻辑和重新驱动器916连接到阵列边缘处的逻辑(用于存储体控制、解码器和行解码器)。内部数据线910将次级读出放大器908连接到全局数据逻辑和数据逻辑/重新驱动器918,而不连接到高速缓存逻辑914。
图10描绘了多路集关联DRAM高速缓存的另一实施例。读出放大器1008在相邻板1004之间被共享。在存储体的边缘处需要负载板1002。激活字线(WL)阻止访问共享读出放大器1008的字线,例如,WL b阻止WL a和WL c两者。
用于多路集关联DRAM高速缓存的实施例的选项(参见图10的左侧)包括以下内容。选项A)板1和板n存储标签,板1将数据的标签存储在板2至n/2中,板n将数据的标签存储在板n/2+1至n-1中。选项B)仅板1存储标签,板2是在板1与板3之间共享的负载板,数据被存储在板3至n中。选项C)标签在所有标签中都作为额外行而分布,板1到n/2中的数据的标签位于板n/2+1至n中,板n/2+1至n中的数据的标签位于板1至n/2中。
用于多路集关联DRAM高速缓存的实施例的选项(参见图10的右侧)包括以下内容。选项D)板l 1006存储标签(即,标签板),板l 1006具有与板1至n不同字线数,板l 1006需要具有相同字线数的自己的负载板以平衡负载(切割负载位线和共享负载板可能会导致过程问题),并且数据被存储在板1至n中。
图11描绘了根据本实施例的DRAM 1102和可以将DRAM 1102作为多路集关联DRAM高速缓存操作的存储器控制器1104。在一些版本中,DRAM 1102用作多路集关联DRAM,而在其他版本中,DRAM 1102可以被选择性地用作标准DRAM或多路集关联DRAM(例如,参见图7中的模式寄存器702的描述)。连接DRAM 1102和存储器控制器1104两者上的对应引脚的信号线包括CK、CKE、CS、CA、DQ、DQS和DMI(参见下面的DRAM标准)。在该实施例中,DMI信号和引脚被重新指定用于传送高速缓存信息,并且带有标签DMI/CACHE_INFO。
适用于DRAM 1102的实施例的一个示例DRAM标准是用于LPDDR4(低功率双倍数据速率版本4)DRAM的JEDEC标准编号209-4B,概述如下。可以根据已经发布的标准获取更多信息。
时钟,输入,符号CK_t_A、CK_c_A、CK_t_B、CK_c_B。差分时钟输入,每个通道(A和B)都有自己的时钟对。
时钟使能,输入,符号CKE_A、CKE_B。每个通道(A和B)都有自己的时钟使能信号。
芯片选择,输入,符号CS_A、CS_B。每个通道(A和B)都有自己的芯片选择信号。
命令/地址输入,输入,符号CA[5:0]_A、CB[5:0]_B。每个通道(A和B)都有自己的命令/地址信号。
命令/地址管芯上终止控制,输入,符号ODT_CA_A、ODT_CA_B。打开或关闭CA引脚的管芯上终止。
数据输入/输出,EO,符号DQ[15:0]_A、DQ[15:0]_B。双向数据总线。每个通道(A和B)都有自己的总线。
数据选通,EO,符号DQS[1:0]_t_A、DQS[1:0]_c_A、DQS[1:0]_t_B、DQS[1:0]_c_B。双向差分输出时钟信号,用于在读取或写入期间选通数据。每个通道(A和B)都有自己的DQS选通脉冲。
数据掩码反转,EO,符号DMI[1:0]_A、DMI[1:0]_B。双向信号指示数据总线上的数据何时反转或处于正常状态,或者向DRAM提供写入数据屏蔽信息,具体取决于数据反转或数据屏蔽的模式寄存器设置。每个通道(A和B)都有自己的DMI信号。
校准参考,参考,符号ZQ。校准输出驱动强度和终止电阻。
电源,电源,符号VDDQ、VDD1、VDD2。
接地参考,GND,符号VSS、VSSQ。
复位,输入,符号RESET_n。低电平有效复位信号。
适用于DRAM 1102的实施例的另一示例DRAM标准是用于DDR4(双倍数据速率版本4)DRAM的JEDEC标准编号79-4,概述如下。LPDDR4和DDR4标准中相似或名称相同的引脚或信号执行相似或相同的功能。可以根据已发布的标准获取更多信息。
时钟,输入,符号CK_t、CK_c。差分时钟输入。
时钟使能,输入,符号CKE(CKE1)。激活和禁用内部时钟信号、设备输入缓冲器和输出驱动器。
芯片选择,输入,符号CS_n(CS1_n)。
芯片ID,输入,符号C0、C1、C2。选择堆叠组件的每个切片。管芯上终止,输入,符号ODT(ODT1)。适用于所选择的配置的所选择的引脚。
激活命令输入,输入,符号ACT_n)。定义与CS_n一起输入的激活命令。
命令输入,输入,符号RAS_n/A16、CAS_n/A15、WE_n/A14。多功能引脚定义输入的命令。
输入数据掩码和数据总线反转,EO,符号DM_n/DBI_n/TDQS_t、(DMU_n/DBIU_n)、(DML_n/DBIL_n)。输入屏蔽信号、或真实或反相数据的指示符。
存储体组输入,输入,符号BG0-BG1。定义向哪个存储体组应用“激活”、“读取”、“写入”或“预充电”命令。
存储体地址输入,输入,符号BA0-BA1。定义向哪个存储体应用“激活”、“读取”、“写入”或“预充电”命令。
地址输入,输入,符号A0-A17。为“激活”命令提供行地址,为“读取/写入”命令提供列地址。
自动预充电,输入,符号A10/AP。在读写命令期间对地址A10进行采样以确定自动预充电。
突发斩波,输入,符号A12/BC_n。在读/写命令期间对地址A12进行采样以确定突发斩波。
低电平有效异步复位,输入,符号RESET_n。
数据输入/输出,EO,符号DQ。双向数据总线。
数据选通,EO,符号DQS_t、DQS_c、DQSU_t、DQSU_c、DQSL_t、DQSL_c。输出读取数据,输入写入数据。
终止数据选通,输出,符号TDQS_t、TDQS_c。启用终止电阻功能、数据屏蔽功能或数据屏蔽反转,具体取决于模式寄存器。
命令和地址奇偶输入,输入,符号PAR。支持偶校验。
警报,EO,符号ALERT_n。针对CRC错误、命令和地址奇偶校验错误、连接测试的多功能警报。
连接测试模式启用,输入,符号TEN。启用连接测试模式操作。
未连接,符号NC。
DQ电源,电源,符号VDDQ。
DQ接地,电源,符号VSSQ。
电源,电源,符号VDD。
接地,电源,符号VSS。
DRAM激活电源,电源,符号VPP。
CA的参考电压,电源,符号VREFCA。
ZQ校准的参考引脚,电源,符号ZQ。
图12描绘了根据本实施例的用于具有独立可选择的DRAM和DRAM高速缓冲存储器的层的DRAM设备的多芯片封装的与硅通孔1210连接的管芯堆叠。在各种实施例中,该多管芯堆叠的每个DRAM层1202、1204、1206具有可选择以用作正常DRAM的DRAM的存储体,例如与DDR4、LPDDR4、HBM(高带宽存储器)或其他DRAM标准兼容,并且也是可选择以用作DRAM高速缓存,如本文所述。基础层1208(是堆叠中的管芯中的一个管芯)控制DRAM和高速缓存。例如,基础层1208可以选择多个层,包括要用作DRAM的DRAM层1202至DRAM层1204,即,所选择的(多个)DRAM层1304(参见图13),并且选择DRAM层1206(并且可能选择一个或多个其他DRAM层)以用作DRAM高速缓存,即所选择的(多个)高速缓存层1302(参见图13)。管芯堆叠的封装细节未示出,但是很容易想到。
使基础层1208成为多芯片封装中的管芯堆叠中的最低管芯可能是最佳的,但是其他实施例可以使基础层1208位于管芯堆叠的顶部或中间。其他实施例可以具有附接到多芯片封装中的多层衬底并且通过多层衬底互连的多个管芯。更进一步,实施例可以在一个管芯上具有所有的DRAM层、基础层电路系统和互连。
图13描绘了图12的管芯堆叠的版本,其中在基础层1208上具有高速缓存层1302、DRAM层1304和混合模式逻辑。外部数据和控件1310连接到基础层1208,以读取和写入(多个)模式寄存器1308,读取和写入DRAM层1304,并且读取和写入高速缓存层1302的高速缓存操作。内部数据和控件1312在基础层1208与所选择的(多个)高速缓存层1302和所选择的(多个)DRAM层1304之间传递。(多个)模式寄存器1308选择将给定DRAM层1202、1204、1206用作所选择的DRAM层1304还是所选择的高速缓存层1302。这些模式寄存器1308可以类似于其他寄存器来实现,并且可以具有控制位和/或标志位。在另外的实施例中,模式寄存器1308是用保险丝实现的,或者是在芯片制造过程中掩模可编程的。
图14描绘了根据本实施例的图9的多路集关联DRAM高速缓存的版本,其中在图12和图13的管芯堆叠的DRAM层1202、1204、1206和基础层1208上布置有电路系统。可以用作所选择的高速缓存层1302或所选择的DRAM层1304的每个DRAM层1202、1204、1206具有存储体902、行解码器904、列解码器906和次级读出放大器908。芯片堆叠的基础层1208具有命令/地址逻辑/重新驱动器916、数据逻辑/重新驱动器918、高速缓存逻辑914和多路复用器920。内部命令和地址线通过一组TSV 1210(即,通过硅通孔1402)连接在基础层1208与DRAM层1202、1204、1206之间。内部数据线910通过另一组TSV 1210(即,通过硅通孔1402)连接在基础层1208与DRAM层1202、1204、1206之间。
上述方法、系统和设备可以在计算机系统中实现,或者由计算机系统存储。上述方法也可以被存储在非暂态计算机可读介质上。本文中描述的设备、电路和系统可以使用本领域中可用的计算机辅助设计工具来实现,并且可以通过包含这样的电路的软件描述的计算机可读文件来体现。这包括但不限于DRAM及其组件的一个或多个元素。这些软件描述可以是:行为、寄存器传输、逻辑组件、晶体管和布局几何级别描述。此外,软件描述可以被存储在存储介质上或通过载波传送。
可以实现这种描述的数据格式包括但不限于:支持行为语言(如C)的格式、支持寄存器传送级别(RTL)语言(如Verilog和VHDL)的格式、支持几何描述语言(如GDSII、GDSIII、GDSIV、CIF和MEBES)的格式、以及其他合适的格式和语言。而且,这样的文件在机器可读介质上的数据传输可以在互联网上通过各种介质电子地进行或者例如经由电子邮件电子地进行。注意,物理文件可以在机器可读介质上实现,诸如:4mm磁带、8mm磁带、3-1/2英寸软盘介质、CD、DVD、硬盘驱动器、固态驱动器(SSD)等。
包括摘要中描述的内容的本公开的示例性实施例的以上描述并非旨在穷举或将本公开限制为所公开的精确形式。尽管本文中出于说明性目的描述了本公开的特定实施例和示例,但是如相关领域的技术人员将认识到的,在本公开的范围内可以进行各种等效修改。其他实施例可以具有与所示出的实施例不同顺序的层、更多的层或更少的层。
进而,以对帮助理解本公开内容最有帮助的方式将各种操作描述为多个离散操作,但是,描述的顺序不应当解释为暗示这些操作必定与顺序有关。特别地,这些操作不需要按照呈现顺序执行。
如本文中使用的,术语“之上”、“上方”、“下方”、“之间”和“上”是指一种材料层或组件相对于其他层或组件的相对位置。例如,沉积在另一层上方或之上或下方的一层可以与另一层直接接触,或者可以具有一个或多个中间层。而且,沉积在两层之间的一层可以与两层直接接触,或者可以具有一个或多个中间层。相反,在第二层“上”的第一层与该第二层直接接触。类似地,除非另有明确说明,否则沉积在两个特征之间的一个特征可以与相邻特征直接接触或者可以具有一个或多个中间层。
词语“示例”或“示例性”在本文中用来表示用作示例、实例或说明。本文中被描述为“示例”或“示例性”的任何方面或设计不必被解释为比其他方面或设计更优选或更具优势。相反,词语“示例”或“示例性”的使用旨在以具体方式呈现概念。如在本申请中使用的,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文可以清楚地看出,否则“X包括A或B”旨在表示任何自然的包含性排列。也就是说,如果X包括A;X包括B;或X包括A和B两者,则在任何前述情况下均满足“X包括A或B”。另外,在本申请和所附权利要求书中使用的冠词“一个(a)”和“一个(an)”通常可以被解释为表示“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。而且,除非如此描述,否则术语“实施例”或“一个实施例”或“实施例”或“一个实施例”在全文中的使用并不意图表示相同的实施例。如本文中使用的,术语“第一”、“第二”、“第三”、“第四”等是指用于在不同元件之间进行区分的标签,并且不一定根据它们的数字名称而具有序数含义。

Claims (20)

1.一种动态随机存取存储器(DRAM),包括:
DRAM,具有多个列、多个数据行和多个标签行;以及
多个比较器,所述多个比较器各自用于比较第一多个地址位和来自所述多个标签行的第一多个标签信息位,以确定高速缓存命中并且生成第二多个地址位,以在所述DRAM的多个存储体中作为多路集关联高速缓存访问所述DRAM中的数据信息。
2.根据权利要求1所述的DRAM,其中所述多个存储体中的每个存储体中的多个板中的每个板具有所述多个标签行中的一个标签行。
3.根据权利要求1所述的DRAM,其中所述多个存储体中的每个存储体包括多个数据板和一个或多个标签板,所述一个或多个标签板各自具有标签行以包含所述标签信息。
4.根据权利要求1所述的DRAM,其中:
所述DRAM的分段在所述分段的上半部中具有第一标签行,所述第一标签行被分配给所述分段的下半部中的数据;并且
所述分段在所述分段的所述下半部中具有第二标签行,所述第二标签行被分配给所述分段的所述上半部中的数据。
5.根据权利要求1所述的DRAM,其中所述多个标签行中的每个标签行与特定数据行相关联作为所述多路集关联高速缓存的路径,并且不与相关联的所述特定数据行共享读出放大器。
6.根据权利要求1所述的DRAM,还包括:
以标准DRAM模式和以集关联高速缓存模式可操作的所述多个存储体。
7.根据权利要求1所述的DRAM,其中要由所述多个比较器生成以访问所述DRAM中的所述数据的所述第二多个地址位包括用于列访问的列地址位。
8.根据权利要求1所述的DRAM,还包括每个标签和所述多个比较器中的每个比较器,所述标签和所述比较器中的每个比较器关于位长或集合中有多少路径而言是可配置的。
9.一种集关联高速缓存动态随机存取存储器(DRAM),包括:
多个存储体,每个存储体包括多个板,每个板包括按行和列的多个DRAM单元;
所述行中的多数行包括作为数据行的用于数据的行,所述行中的少数行包括作为标签行的用于标签的行;以及
多个比较器,所述多个比较器各自以第一多个地址位和来自所述标签行的第一多个标签信息位作为输入,所述第一多个地址位和来自所述标签行的所述第一多个标签信息位要被比较以查找高速缓存命中并且生成第二多个地址位,以作为所述集关联高速缓存的多个路径中的一个路径访问所述DRAM中的所述数据信息。
10.根据权利要求9所述的集关联高速缓存DRAM,其中所述标签行包括每个存储体的所述多个板中的每个板中的一个标签行,从而使得一个板的标签行与同一存储体中的不同板的数据行相关联以用于所述存储体的并发访问。
11.根据权利要求9所述的集关联高速缓存DRAM,其中所述标签行包括:
在每个分段的上半部中的第一标签行,被分配给所述分段的下半部中的数据;以及
在每个分段的所述下半部中的第二标签行,被分配给所述分段的所述上半部中的数据。
12.根据权利要求9所述的集关联高速缓存DRAM,其中:
每个标签行与多个所述数据行相关联;
每个标签行被耦合到第一读出放大器;并且
相关联的所述多个所述数据行被耦合到不同的第二读出放大器。
13.根据权利要求9所述的集关联高速缓存DRAM,还包括:
模式寄存器,用于在以下各项之间选择:在所述多个比较器被禁用的情况下以标准DRAM模式操作所述多个存储体,以及在所述多个比较器跨所述标签行并行操作的情况下以集关联高速缓存模式操作所述多个存储体。
14.根据权利要求9所述的集关联高速缓存DRAM,其中为了生成所述第二多个地址位,所述多个比较器用于生成用于所述DRAM中的所述数据的列访问的地址位。
15.根据权利要求9所述的集关联高速缓存DRAM,还包括模式寄存器,所述模式寄存器用于设置所述标签中的每个标签和所述多个比较器中的每个比较器的位长,或者选择集合中有多少路径。
16.一种操作集关联高速缓存动态随机存取存储器(DRAM)的方法,包括:
向所述DRAM的存储体中或附近的多个比较器中的每个比较器呈现所述DRAM中的集合中的多个地址位,其中每个存储体具有数据行和标签行;
在所述多个比较器中并行比较所述多个地址位和来自所述标签行的第一多个标签信息位,以确定高速缓存命中;
基于所述比较来确定第二多个地址位;以及
基于所述高速缓存命中和所述第二多个地址位来从所述数据行读取。
17.根据权利要求16所述的方法,还包括:
读取每个分段的上半部中的第一标签行,所述第一标签行被分配给所述分段的下半部中的数据;以及
读取每个分段的下半部中的第二标签行,所述第二标签行被分配给所述分段的所述上半部中的数据。
18.根据权利要求16所述的方法,还包括:
根据集关联高速缓存模式与标准DRAM模式之间的选择来选择以所述集关联高速缓存模式操作所述DRAM。
19.根据权利要求16所述的方法,还包括:
根据路径范围来设置集合中的多个路径,或者根据位长范围来设置每个标签和所述多个比较器中的每个比较器的位长。
20.根据权利要求16所述的方法,其中确定所述第二多个地址位包括确定列地址位。
CN201980025005.0A 2018-06-05 2019-05-31 高速缓存动态随机存取存储器 Pending CN111971660A (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862680738P 2018-06-05 2018-06-05
US62/680,738 2018-06-05
US201862777639P 2018-12-10 2018-12-10
US62/777,639 2018-12-10
US201962842244P 2019-05-02 2019-05-02
US62/842,244 2019-05-02
PCT/US2019/035045 WO2019236427A1 (en) 2018-06-05 2019-05-31 Cache dynamic random access memory

Publications (1)

Publication Number Publication Date
CN111971660A true CN111971660A (zh) 2020-11-20

Family

ID=68770581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980025005.0A Pending CN111971660A (zh) 2018-06-05 2019-05-31 高速缓存动态随机存取存储器

Country Status (3)

Country Link
US (1) US20210200680A1 (zh)
CN (1) CN111971660A (zh)
WO (1) WO2019236427A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022247195A1 (zh) * 2021-05-22 2022-12-01 上海阵量智能科技有限公司 数据存储器、数据存储、读取方法、芯片及计算机设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271672A (ja) * 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
US5675549A (en) * 1994-12-23 1997-10-07 Micron Technology, Inc. Burst EDO memory device address counter
JP5595514B2 (ja) * 2009-11-20 2014-09-24 ラムバス・インコーポレーテッド Dramエラー訂正用のビット交換技術
WO2012061048A1 (en) * 2010-11-04 2012-05-10 Rambus Inc. Techniques for storing data and tags in different memory arrays
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US9037949B1 (en) * 2012-06-21 2015-05-19 Rambus Inc. Error correction in a memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022247195A1 (zh) * 2021-05-22 2022-12-01 上海阵量智能科技有限公司 数据存储器、数据存储、读取方法、芯片及计算机设备

Also Published As

Publication number Publication date
WO2019236427A1 (en) 2019-12-12
US20210200680A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US7990746B2 (en) Method and circuit for configuring memory core integrated circuit dies with memory interface integrated circuit dies
KR960003227B1 (ko) 데이타 전송방법과 그것을 사용한 반도체 메모리 장치 및 그 전송방법
US5680363A (en) Semiconductor memory capable of transferring data at a high speed between an SRAM and a DRAM array
US5025421A (en) Single port dual RAM
US8644104B2 (en) Memory system components that support error detection and correction
US8120985B2 (en) Multi-bank memory device method and apparatus
US9037949B1 (en) Error correction in a memory device
US8305834B2 (en) Semiconductor memory with memory cell portions having different access speeds
KR950014905B1 (ko) 반도체기억장치 및 그 내부전압발생방법
US20230418471A1 (en) Apparatuses and methods for configurable memory array bank architectures
US20240153548A1 (en) System application of dram component with cache mode
JPH11265315A (ja) 様々なdramバンクサイズと複数のインターリービング機構とをサポートする高速でコンパクトなアドレスビット経路指定機構
KR102420897B1 (ko) 메모리 모듈, 이를 포함하는 메모리 시스템 및 그의 동작 방법
US11449441B2 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
US20240203475A1 (en) Semiconductor memory device and memory system including the same
US6055202A (en) Multi-bank architecture for a wide I/O DRAM
US8468433B2 (en) Optimizing the size of memory devices used for error correction code storage
EP3306614A1 (en) Memory array having segmented row addressed page registers
US11494319B1 (en) Apparatuses, systems, and methods for input/output mappings
CN111971660A (zh) 高速缓存动态随机存取存储器
US6956786B2 (en) Random access memory with optional inaccessible memory cells
JP2001307483A (ja) 半導体記憶装置

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