具有高速缓存模式的dram部件的系统应用

文档序号:197377 发布日期:2021-11-02 浏览:19次 >En<

阅读说明:本技术 具有高速缓存模式的dram部件的系统应用 (System application of DRAM component with cache mode ) 是由 F·韦尔 T·沃吉尔桑 M·米勒 C·威廉姆斯 于 2020-03-16 设计创作,主要内容包括:公开了一种存储器系统,该存储器系统具有存储器控制器并且可以具有存储器部件。存储器部件可以是动态随机存取存储器(DRAM)。存储器控制器可连接到存储器部件。存储器部件具有至少一个数据行和至少一个标签行,该至少一个标签行与该至少一个数据行不同并且与该至少一个数据行相关联。存储器系统用于实现具有多个通路来保持数据组的高速缓存。存储器控制器可在多个操作模式中的每个操作模式下操作。这些操作模式包括第一操作模式和第二操作模式。第一操作模式和第二操作模式具有用于访问数据组的不同寻址和时序。存储器控制器具有发送高速缓存读取命令的高速缓存读取逻辑、从存储器部件接收响应的高速缓存结果逻辑、以及高速缓存提取逻辑。(A memory system is disclosed that has a memory controller and may have a memory component. The memory component may be a Dynamic Random Access Memory (DRAM). A memory controller may be connected to the memory components. The memory component has at least one data line and at least one tag line, the at least one tag line being different from and associated with the at least one data line. Memory systems are used to implement caches that have multiple ways to hold data sets. The memory controller may operate in each of a plurality of operating modes. The operating modes include a first operating mode and a second operating mode. The first and second modes of operation have different addressing and timing for accessing the data sets. The memory controller has cache read logic to send a cache read command, cache result logic to receive a response from the memory component, and cache fetch logic.)

具体实施方式

以及根据本公开的各种实施例的附图,对本公开进行更全面的理解。

图1A图示了具有可以作为多通路集合关联高速缓存操作的数据行和标签行或具有多通路集合关联高速缓存的DRAM的实施例。

图1B图示了适合于图1A中的DRAM实施例的版本的单独标签mat中的标签。

图2A图示了具有跨多个存储体(bank)分布的集合的缓存数据的DRAM的另一实施例。

图2B图示了适合于图2A中的DRAM实施例的版本的数据行和标签行。

图2C图示了适合于图2A中的DRAM实施例的版本的分布式标签。

图3A图示了在一个实施例中用于高速缓存命中和对已经缓存在多通路集合关联高速缓存的通路中的集合中的数据的访问的电路系统和寻址。

图3B图示了在列解码中使用来自标签数据的集合位来访问由匹配标签指向的缓存数据。

图3C图示了根据一个实施例的用于访问缓存在多通路集合关联高速缓存DRAM中的SCM的数据的SCM和DRAM中的地址空间。

图4A是图示了在一个实施例中对数据的正常访问和对缓存数据的修改访问的读取时序细节。

图4B图示了使用图4A所示的读取时序从多通路集合关联高速缓存DRAM的存储体中的一个存储体读取缓存数据,同时从其他存储体并行读取更多缓存数据。

图5A是图示了在一个实施例中对数据的正常访问和对缓存数据的修改访问的写入时序细节。

图5B图示了使用图5A所示的写入时序将高速缓存数据写入多通路集合关联高速缓存DRAM的存储体中的一个存储体,同时将更多高速缓存数据并行写入其他存储体。

图6图示了可以用于DRAM的实施例的mat中的DRAM单元和感测放大器。

图7图示了用于选择标准DRAM模式或具有位长可调的标签和比较器的多通路集合关联高速缓存模式的模式寄存器。

图8A是可以通过本文中所描述的各种实施例来实践的多通路集合关联DRAM高速缓存的操作方法的流程图。

图8B是可以通过本文中所描述的各种实施例来实践的选择操作模式的流程图。

图9描绘了多通路集合关联DRAM高速缓存的实施例。

图10描绘了多通路集合关联DRAM高速缓存的另一实施例。

图11描绘了根据本实施例的DRAM以及可以将DRAM作为多通路集合关联DRAM高速缓存来操作的存储器控制器。

图12描绘了根据本实施例的使用具有高速缓存模式的DRAM的控制器。

图13A描绘了其中数据通路被保持在多个设备的多个存储体内并且标签访问/数据访问重叠的系统配置示例X-A。

图13B描绘了其中数据通路被保持在单个设备的多个存储体内并且标签访问/数据访问重叠的系统配置示例Y-A。

图13C描绘了其中数据通路被保持在单个存储体内并且标签访问/数据访问重叠的系统配置示例Z-A。

图13D描绘了其中数据通路被保持在单个存储体内并且标签访问/数据访问非重叠的系统配置示例Z-B。

图14A描绘了用于如图13A所示的系统配置示例X-A的图12的控制器中的地址字段操纵。

图14B描绘了用于如图13B所示的系统配置示例Y-A的图12的控制器中的地址字段操纵。

图14C描绘了用于如图13C所示的系统配置示例Z-A的图12的控制器中的地址字段操纵。

图14D描绘了用于如图13D所示的系统配置示例Z-B的图12的控制器中的地址字段操纵。

图15A描绘了用于如图13D所示的系统配置示例Z-B的命令格式。

图15B描绘了用于如图13C、图13B和图13A所示的系统配置示例Z-A、Y-A和X-A的命令格式。

图15C描绘了如图13D、图13C、图13B和图13A所示的系统配置示例Z-B、Z-A、Y-A和X-A的命令格式。

图16描绘了在具有高速缓存模式的DRAM中具有提取和逐出的高速缓存未命中的读取时序细节。

图17是具有高速缓存模式的DRAM的64字节读取、正常(直接)访问和修改(缓存)访问的读取时序细节。

图18是描绘了经历高速缓存未命中的DRAM高速缓存的控制器排序的流程图。

图19是描绘了执行图18的动作的使用具有高速缓存模式的DRAM的控制器的系统动作图.

图20描绘了逐出决策过程的触摸标志增强。

图21A描绘了根据本实施例的跨存储体/通道/设备分布的4kB高速缓存线。

图21B描绘了根据本实施例的位于相同DRAM行中的16个集合(通路)的4kB高速缓存线标签和数据。

具体实施方式

在以下描述中,使用本领域技术人员常用的术语对说明性实施例的各个方面进行描述,以将他们的工作的实质传达给本领域的其他技术人员。出于解释的目的,对特定数目、材料和配置进行陈述以提供对说明性实施例的透彻理解。然而,对于本领域技术人员而言,显而易见的是,本公开可以仅在所描述的方面中的一些方面或在没有具体细节的情况下实践。在其他实例中,省略或简化了众所周知的特征,以免混淆说明性实施例。

本文中所描述的DRAM架构和控制器修改使得能够在DRAM上进行标签存储和比较以及对缓存数据的访问。在一些版本中,DRAM可操作为多通路集合关联高速缓存,还可操作为标准DRAM,例如,如果不是具有存储级存储器或其他存储器的混合系统的一部分。来自存储级存储器或其他存储器的数据集合可以缓存在DRAM高速缓存中的各个通路中,并且当标签比较指示缓存命中时,被访问。

在典型系统中,DRAM管芯外部的电通路系统执行标签匹配。在混合存储器系统中使用标准DRAM部分作为高速缓存包括将标签信息位从DRAM传送到芯片,以便在能够访问DRAM上的数据信息之前进行标签匹配。如本文中所描述的,与修改DRAM以使得能够对DRAM进行标签匹配相比较,这产生了延迟开销和功率开销。

DRAM高速缓存的各种实施例具有以下特征中的一些或全部特征。

通常,使用非常大的块大小来完成往来于存储级存储器(SCM)的传送。这使得标签与数据的比例比传统高速缓存小得多,从而使得能够以很少开销对高速缓存进行DRAM修改。参考图1至图11对具有数据行和标签行以及数据mat行和标签mat行的DRAM的各种实施例进行示出并描述,并且针对标签与数据的各种比例,易于设计处具有数据行、标签行、数据mat行和标签mat行的其他布置的其他实施例。在图12至图21B中以多种配置对多通路集合关联高速缓存的控制器和DRAM进行描述。

DRAM高速缓存被组织为集合关联高速缓存。在集合关联高速缓存中,来自存储级存储器的数据集合可以缓存在集合中,缓存在多个通路或位置中的任一通路或位置中的集合中,并且缓存在高速缓存存储器中。将统计总数乘以每个集合中的通路的总数得出高速缓存存储器中的线的总数。每个通路和每个集合映射到线。当缓存数据集合时,标签匹配数据集合的地址的一部分,并且指向高速缓存存储器中的集合和通路或位置,以便可以从高速缓存存储器中读取带有标签的缓存数据集合。该标签将数据集合与高速缓存存储器中的集合和通路或位置相关联,因此得到这类高速缓存。数据集合可以缓存的数据数量、集合的数目、以及可以缓存该数量的通路或位置的数目(一般用N表示)决定了N通路集合关联高速缓存的高速缓存存储器的数量以及每个标签总共使用的地址位的数目。

DRAM中的标签存储通过添加附加单元行来完成,要么分布在现有mat中要么通过添加mat来完成。mat(无论是带有数据行的数据mat、带有标签行的标签mat、还是同时具有数据行和标签行的mat)都是具有定义高度(单元或行的数目)和宽度(单元或列的数目)的DRAM单元组。每个DRAM单元都有晶体管(一般为NMOS或N型金属氧化物半导体)和电容器。参考图1A至图6示出并描述了mat的各种实施例,并且易于设计DRAM单元和mat的其他布置。

将标签行与没有共享初级感测放大器的数据行相关联无需加倍感测放大器条带并且节省面积。在一些实施例中,具有一个感测放大器的mat中的标签行与具有另一感测放大器的DRAM中别处的数据位置相关联并且指向该数据位置。这通过为标签行工作的感测放大器支持标签感测中的时序重叠以及通过为与标签行相关联的数据位置工作的感测放大器的数据感测,如图4和图5的时序细节所示。如果标签行和关联数据位置位于同一mat中,则这种时序重叠可能需要加倍感测放大器。

集合内的不同通路的标签位于一个行。标签命中激活与位于这一行的通路中的一个通路的标签匹配,如参考图3A所示出和描述的。该特征支持要在逻辑OR配置中联动在一起用于图3A所示的比较块中的紧凑电路系统的比较块,每个标签和标签匹配一个比较块。

标签比较仅通过列访问来完成。特定集合的所有通路的标签都位于同一行上,并且跨该行的标签数据的列访问并行与地址位进行比较,如图3A和图3B所示。

存储体的边缘处的并行访问用于使并行标签比较最大。标签在每个存储体的边缘处进行比较,以使可以跨多个存储体并行进行多个标签比较。在一些实施例中,然后在多个存储体中并行访问缓存数据,例如,如图1A至图2C所示。

使用设备、存储体和行地址对集合进行寻址。来自存储级存储器的数据可以缓存在N个通路或位置中的一个通路或位置中,缓存集合中的一个集合中,缓存在N通路集合关联高速缓存中。用于集合的地址包括如通过地址解码解码的设备地址、存储体地址和行地址。

由标签匹配确定的集合地址、比较值和地址使用内部地址总线分布在DRAM中。参见例如图9,该图9示出了用于将地址分布到DRAM中的存储体的行解码和列解码的高速缓存逻辑和多路复用。

阵列外部的内部数据总线和DQ引脚仅用于数据。参见例如图9,该图9示出了从DRAM中的存储体到数据逻辑的内部数据。地址和数据不会在数据总线上混合或多路复用。

图1A图示了具有数据mat行104(每个数据mat行具有多个数据行)和标签mat行106(每个标签mat行具有用于标签信息位的多个标签行)的DRAM的实施例,该DRAM可以操作为多通路集合关联高速缓存。在该示例中,DRAM的每个存储体102是DRAM的32个mat 108×64个mat 108的阵列,并且每个mat 108是512个位×512个位的阵列或子阵列(参见图6),每个mat 108总共256个千位(kb)。在DRAM 0的通道A和B中的每个通道中有八个存储体102,在DRAM 1中的通道C和D中的每个通道中还有八个存储体102,总共32个存储体102。DRAM可以对4千字节(kB)个DRAM块(高速缓存线)执行64字节读取或写入访问。在该示例中,在存储体102的底部(或在其他实施例中,顶部)处形成标签mat行106的32个mat 108中的标签行中的标签占据约1.6%的额外存储器单元区域。

DRAM存储体102由包含存储器单元和行/列外围逻辑的mat块阵列(子阵列)构建。数据线将存储体102连接到接口块。单个未经修改mat行为标签提供了足够容量和带宽(BW)。

图1B图示了适合于图1A中的DRAM实施例的版本的单独标签mat 112中的标签。标签读取位确定在读取操作期间是读取缓存数据还是标签数据。如果标签读取位为1,则读取标签mat 112中的标签的数据。如果标签读取位为0,则从数据mat 110中读取缓存数据。

在各种实施例中,包括对于如图1A、图1B、图2A、图2B和图2C所示的标签,可以使用像正常访问一样的访问来读取标签(没有标签匹配,从存储器控制器直接访问要激活的行地址)。在一些实施例中,需要发信号通知标签访问而非正常访问的附加地址空间。在内部,这可以通过如对于单独mat 112中的标签通过图11B所示的标签读取位来设置,或如图2B和图2C所示的分布在mat中等。多种选项可以做到这点:

1.当DRAM处于高速缓存模式时,用于解码通过CA总线发送的位序列的位分配被修改为具有发信号通知标签访问的附加状态。

2.当DRAM处于高速缓存模式并且存在用来传送附加信息的像DMI这样的双向信号时,这个信号可以用来在高速缓存访问与标签读取之间切换。

3.模式寄存器集合(MRS)在高速缓存访问与标签读取之间切换。

图2A图示了集合的缓存数据跨多个存储体202分布的DRAM的另一实施例。在该示例中,该集合跨四个存储体202分布,每个存储体202为32kB,并且该集合的每通路分布为相同的四个存储体202中的每个存储体中的每存储体202 16个字节。这些相同的四个存储体202中的每个存储体具有32个标签。其他集合跨DRAM的其他存储体202分布,每个集合四个存储体202。集合所占用的四个存储体202中的每个存储体中的标签中的标签匹配指向四个存储体202中的每个存储体中的集合的通路的缓存数据。

图2B图示了适合于图2A中的DRAM实施例的版本的数据行204和标签行206。如与本文中的教导一致地容易设计的DRAM中的数据行和标签行的这种以及其他数目和布置可以操作为多通路集合关联高速缓存。在该示例中,DRAM的每个存储体202是8个mat 208×64个mat 208的阵列,并且每个mat 208是512个位×1024个位的阵列或子阵列(参见图6),每个mat 208总共512kb。在该示例中,每个mat 208包括顶部和底部的冗余行、紧靠上部冗余行或可替代地紧靠下部冗余行的标签行、以及规则行(即,数据行),并且使用每个集合32行数据。在各种实施例中,标签行206可以位于mat 208的顶部、底部或其他地方。标签行、冗余行和规则数据行的各种布置是可能的。在一些实施例中,区段(或存储体202)的下半部中的标签分配给区段(或存储体202)的上半部中的数据。区段(或存储体202)的上半部中的标签分配给区段(或存储体202)的下半部中的数据。DRAM0的通道A和B中的每个通道中存在16个存储体202,DRAM 1的通道A和B中的每个通道中也存在16个存储体202。DRAM 0中的四个存储体202中的每个存储体中的32个标签可以缓存具有4×16字节的命中数据的4×32kB集合。

图2C图示了适合于图2A中的DRAM实施例的版本的分布式标签。(以实线描绘的)规则字线和(以虚线描绘的)标签字线存在于mat 210中。当标签读取位为0时,可以读取规则字线的数据。当标签读取位为1时,可以读取标签字线的数据。在该实施例中,在给定mat210中,缓存数据可以有多个规则字线,而标签数据可以有单个标签字线。

参考图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单元mat阵列的边缘定位。这种位置缩短了信号通路径,从而保持低寄生信号线负载,例如,降低电阻和电容,还可能减少信号反射的发生率。

对控制器的反馈(例如,命中或未命中)使用可用反馈引脚(警报(ALERT_n)、数据掩码反转(DMI)等)进行。例如,可以使用具有DRAM到控制器的方向并且在以其高速缓存模式使用DRAM的情况下不需要的可用引脚来完成对控制器的反馈。示例是在将LPDDR4 DRAM修改为高速缓存DRAM(参见图11)的情况下使用DMI引脚或在修改DDR4 DRAM的情况下使用ALERT_n引脚。另一示例是在修改GDDR5或GDDR6 DRAM的情况下使用误差检测代码(EDC)引脚。

写入无效位和写入数据可以同时开始。无效位与标签数据一起写入,要缓存的数据写入与标签关联的高速缓存存储器中的位置(或通路)。如果DRAM中的同一存储体用于标签数据和缓存数据,则可能需要两个列周期,从而将标签行的关闭推出一个列周期。

冗余:标签行可以获得优先级替换或总是加倍。

DRAM具有双重用途并且可以在其所处于的一个模式(例如,多通路集合关联高速缓存模式)下设置为高速缓存DRAM或在另一模式(例如,标准DRAM模式)下设置为标准DRAM。参考图7示出并描述了模式寄存器的实施例,以选择标准DRAM模式对高速缓存DRAM模式。模式选择控制地址多通路复用和数据多通路复用,其在这两种模式之间有所不同。

如果每个mat的一个冗余行被分配为标签行,则仅从标准DRAM设计布局改变为外围逻辑的实现方式是可能的。标准DRAM设计布局具有多个冗余行,这些冗余行中的一个冗余行可以被指定为标签行,而无需改变mat或行的布置的设计布局。然后,外围逻辑可以实现对地址解码和数据多通路复用的改变以及为标签行和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)。在一个实施例中,LPDDR4 DRAM的标准时序和信令在启用时用于标准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图示了在一个实施例中用于高速缓存命中的电路系统和寻址和对已经缓存在多通路集合关联高速缓存的各个通路中的集合的数据的访问。标签mat与存储体的普通数据mat相同。例如,在所示的实施例中,每个mat 108为512位×512位的阵列或子阵列(参见图6),每个mat总共256千位(kb)。标签阵列允许从存储体访问16kb行而从行访问256b列。256b列包含16个16b标签106,其中每个标签可能与访问的物理地址AP[39:27]字段匹配。使用用于行解码的九个地址位AR[14:6]和用于列解码306的六个地址位AR[5:0]访问标签。并行读取标签并且并行比较它们,其中每个标签访问提供16个位,其中13个位在比较块302中呈现给比较器304以用于与AP[39:27]地址字段进行比较,并且其他三个位是标志位(例如,无效、有效、奇偶校验)。其他实施例可以使用14个位进行地址比较,从而留下两个标志位。易于设计其他数目的标签位、地址比较位和标志位。

图3B图示了在列解码中使用来自标签数据的集合位来访问由匹配标签指向的缓存数据。匹配标签106为HIT,并且集合编号(从0至15)Set[3:0]由比较块302传递到存储体的列访问路径、列解码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]用作用于缓存数据的列地址位AC[5:2]的标签字段,该标签生成Set[3:0]。块地址(SCM物理地址的15个位)AP[26:12]用于缓存数据的行地址AR[14:0]。SCM物理地址的子块地址的5个最高有效位AP[11:6]向设备地址AD[1:0]提供了两个位而为缓存数据的存储体地址AB[2:0]提供了三个位。SCM物理地址的子块地址的后两位为缓存数据的列地址AC[1:0]提供了另外两个位。列解码306使用地址位AC[5:2]和AC[1:0]。标签比较之后,所有集合都在DRAM高速缓存中可用。

图4A是图示了在一个实施例中对数据的正常访问402和对缓存数据的修改访问404的读取时序细节。DRAM(高速缓存存储器)中的4kB块的副本跨32个存储体102分布以获得更好性能。在所示的实施例中,4kB块由mat组成,并且每个mat 108是512位×512位阵列或子阵列(参见图6),每个mat总共256千位(kb)。易于设计存储体、块和mat的其他布置。列解码306如上文参考图3A所描述的。标签mat行106中的标签如上文参考图1A所描述的。易于设计其他实施例的变型。

图4A示出了时钟信号CK,该时钟信号CK通过作为时钟的命令/地址CA、命令和地址(控制器到DRAM)、作为数据(在正常模式下使用的DRAM)的数据总线DQ、以及作为DRAM(在正常模式下使用的DRAM)的内部活动的存储体控制Bank进行分组用于正常(直接)访问402以读取数据。下文这些是通过作为DRAM(在高速缓存模式下使用的DRAM)的内部活动的存储体控制Bank和作为数据(在缓存模式下使用的DRAM)的数据总线DQ进行分组用于修改(缓存)访问404以读取缓存数据的标签活动Tag。根据存储体控制,对于正常(直接)访问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,首先,激活并感测标签,然后,读取并比较标签数据,其中确定标签命中还是未命中。正常(直接)访问402的CA输入分组与修改(缓存)访问404的CA输入分组相同。与该活动重叠,根据存储体控制,激活并感测存储体,其中标签命中提供集合位Set[3:0],然后,对缓存数据进行数据读取,并且传送到接口Xface。修改(缓存)读取访问404的时序为51ns,其中激活并感测标签花费与正常访问402中读取数据所花费的时钟周期相同的36个时钟周期或18ns,随后,标签比较花费12个时钟周期或6ns。缓存数据访问的时序重叠,其中激活并感测存储体102与激活并感测标签花费相同的36个时钟周期或18ns,但与其重叠,随后,读取花费相同的8个时钟周期或4ns,并且传送到接口(Xface)花费相同的8个时钟周期或4ns。额外10ns(访问读取缓存数据的总时间)包括用于列访问的4ns和用于16b比较的6ns。

图4B图示了使用图4B所示的读取时序从多通路集合关联高速缓存DRAM的存储体中的一个存储体读取缓存数据,同时从其他存储体并行读取更多缓存数据。在一个实施例中,来自SCM的数据的4kB块的副本跨DRAM(高速缓存)存储器中的32个存储体分布(参见例如图1A),以便获得更好性能。256位标签数据使用所选择的地址位用于mat(和标签行)选择和列解码306从存储体中并行读出。在一个实施例中,标签106中的一个标签的标签匹配产生命中的指示(即,高速缓存命中、标签匹配或标签命中,参见图3A)和集合位Set[3:0],以及无效位、有效位和奇偶校验位。集合位与列解码306的指定地址位组合,并且从存储体中读出256位高速缓存数据。类似活动跨DRAM的32个存储体发生,从而导致并行读取缓存数据的4kB块。对于包括图2A所示的实施例在内的多通路集合关联DRAM高速缓存的其他实施例,易于开发具有不同位数和不同寻址和时序方案的变型。

图5A是图示了在一个实施例中对数据的正常访问502和对缓存数据的修改访问504的写入时序细节。DRAM(高速缓存存储器)中的4kB块的副本跨32个存储体102分布,以便获得更好的性能。在所示的实施例中,4kB块由mat组成,并且每个mat 108为512位×512位阵列或子阵列(参见图6),每个mat总共256千位(kb)。易于设计存储体、块和mat的其他布置。易于设计存储体、块和mat的其他布置。列解码306如上文参考图3A所描述的。标签mat行106中的标签如上文参考图1A所描述的。易于设计其他实施例的变型。

图5A示出了时钟信号CK,该时钟信号CK通过作为时钟的命令/地址CA、命令和地址(控制器到DRAM)、作为数据(在正常模式下使用的DRAM)的数据总线DQ、以及作为DRAM(在正常模式下使用的DRAM)的内部活动的存储体控制Bank进行分组用于正常(直接)访问502以写入数据。下文这些是通过作为DRAM(在高速缓存模式下使用的DRAM)的内部活动的存储体控制Bank和作为数据(在缓存模式下使用的DRAM)的数据总线DQ进行分组用于修改(缓存)访问404以写入缓存数据的标签活动Tag。根据存储体控制,对于正常(直接)访问502,首先,激活并感测存储体,随后,传送到接口Xface,写入和列访问。正常(直接)写入访问502的时序在34ns内存储两列数据,其中激活并感测存储体102花费36个时钟周期或18ns,等待周期,传送到接口(Xface)花费8个时钟周期或4ns,写入WR花费8个时钟周期或4ns,并且列COL花费8个时钟周期或4ns。

根据标签活动,对于修改(缓存)访问504,首先,激活并感测标签,随后,读取并比较标签数据,其中确定标签命中或未命中。正常(直接)访问502的CA输入分组与修改(缓存)访问504的CA输入分组相同。与该活动重叠,根据存储体控制,激活并感测存储体,其中标签命中提供集合位Set[3:0];随后,传送到接口(Xface)并且写入缓存数据花费两个写入周期。时序图中的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图示了使用图5B所示的写入时序将高速缓存数据写入多通路集合关联高速缓存DRAM的存储体中的一个存储体,同时更多高速缓存数据并行写入其他存储体。在一个实施例中,来自SCM的数据的4kB块的副本跨DRAM(高速缓存)存储器中的32个存储体分布,以便获得更好性能(参见例如图1A)。256位标签数据使用用于mat(和标签行)选择和列解码306的所选地址位从存储体中并行读出。在一个实施例中,标签106中的一个标签的标签匹配产生命中(即,高速缓存命中、标签匹配或标签命中,参见图3A)的指示和集合位Set[3:0],以及无效位、有效位和奇偶校验位。集合位与列解码306的指定地址位组合,并且256位高速缓存数据写入存储体。如果适合命中,则新准备的带有无效位和经调整的奇偶校验等的标签还写回到存储体。类似活动跨DRAM的32个存储体发生,从而导致并行写入缓存数据的4kB块。对于包括图2A所示的实施例在内的多通路集合关联DRAM高速缓存的其他实施例,易于开发具有不同数目的位和不同寻址和时序方案的变型。

图6图示了可以用于DRAM的实施例的mat 602中的DRAM单元604和感测放大器608。DRAM单元604按行612和列610布置。每个DRAM单元604具有MOSFET以及可以存储电荷的电容器。给定行612中的DRAM单元604由该行612的字线614激活,并且读出到DRAM单元604的该列610的位线616上。所有位线616由位线预充电606预充电,并且选定DRAM单元604通过感测放大器608读出。感测放大器608可以具有其他电路系统。通常,感测放大器具有三个功能:预充电、读出和连接到阵列数据线,并且对于各种实施例,易于实现各种感测放大器设计。值得注意的是,在该设计中,每个mat 602具有专用于mat 602的DRAM单元604的感测放大器608。因此,可以通过一个mat集合602和与标签相关联的数据行104(即,作为标签行)以及其他mat集合602布置标签mat行106,使得每个标签和标签mat行106被耦合到感测放大器(即,构成标签mat行106的mat集合602的感测放大器608),并且关联数据行被耦合到不同的感测放大器(即,用于构成数据mat行104的那些mat集合602的感测放大器608),并且对标签的访问可以与对标签指向的缓存数据的访问重叠。

在各种实施例中,存在避免感测放大器冲突的不同方式。图1A和图1B可能具有彼此相邻的标签mat和数据mat,因此它们可能需要仅在该边界处具有双倍感测放大器条带,而存储体中的其他任何地方都没有。图2和其他可能实施例无需使通常交错的感测放大器加倍,因为它们以标签从不与相关数据相邻的方式构建。在6F2打开位线架构中同时操作相邻mat需要虚拟阵列的开销来提供补充位线,因此具有相当多的开销。

图7图示了用于选择标准DRAM模式或具有位长可调的标签和比较器的多通路集合关联高速缓存模式的模式寄存器702。一个或多个模式寄存器702控制地址多通路复用器(mux)704、数据多通路复用器(mux)706、以及比较器304。在标签访问和缓存数据访问中用于行解码和行使能以及列解码和列使能的地址位以及用于标签比较(参见图3A至图5B)的数据位的数目和位置的选择通过地址多通路复用器704和/或数据多通路复用器706根据模式选择来控制。在各个实施例中,存在指定范围的标签和比较器304的位长,该指定范围与多通路集合关联高速缓存的通路的数目的范围相对应。模式寄存器702可以选择用于标签比较的位的数目或集合中的通路的数目。例如,更高性能的解决方案可以从32通路转换为16通路,其中集合的数目增加一倍。相同DRAM可以用作标准DRAM,该标准DRAM与指定DRAM时序和信令兼容并且禁用比较器,或用作启用比较器的多通路集合关联高速缓存,甚至可以在两种模式之间来回切换。在其他实施例中,可以使用熔丝逻辑而非模式寄存器702来启用或选择这些特征中的一些或全部特征。

图8A是可以通过本文中所描述的各种实施例来实践的多通路集合关联DRAM高速缓存的操作方法的流程图。例如,硬件、在处理器上执行的软件、固件或其组合可以使用如图3A、图4A或图5A所示的时序和电通路或其变型来执行这些各种动作,以执行图1A至图7所示的DRAM或其变型中缓存数据的访问。在动作802中,读取DRAM的标签行。并行读取标签行,并且这些标签行可以如图1A和图2A所描绘的或其变型定位。对于修改(缓存)访问404,图4A中示出了动作802的读取时序的示例,其中标签活动显示激活/感测标签,随后读取(rd)。

在动作804中,可以在DRAM中(例如,从主存储器或SCM)缓存的集合的地址位呈现给比较器。选择地址位可以如图7或图8B所示的或其变型进行控制。对于修改(缓存)访问404,图4A中示出了动作804的读取时序的示例,其中标签活动显示读取(rd),随后比较。

在动作806中,比较集合的地址位和来自DRAM的标签行的数据位(即,标签信息位)。如图3A至图5B所示的比较器跨DRAM的存储体并行执行比较。对于修改(缓存)访问404,图4A中示出了动作806的读取时序的示例,其中标签活动实现比较,其中标签命中提供集合位Set[3:0]。

在决策动作808中,确定是否存在高速缓存命中。高速缓存命中根据动作806中的比较结果确定。对于修改(缓存)访问404,图4A中示出了该时序的示例,其中执行比较以确定是存在高速缓存命中还是存在高速缓存未命中。如果答案为否,则没有高速缓存命中,流程进行到动作810,报告高速缓存未命中。如果答案为是,则存在高速缓存命中,流程进行到动作812。

在动作812中,生成多通路集合关联高速缓存命中的地址位。图3A至图5B示出了集合位Set[3:0]的生成示例,其示出了多通路集合关联高速缓存的哪个通路具有缓存数据集合。

在动作814中,使用基于高速缓存命中的地址位从数据行读取数据。图3A至图5B示出了用于读取高速缓存数据的列解码的示例。对于修改(缓存)访问404,图4示出了这种时序的示例,其中在高速缓存命中之后,DQ位读取到DQ总线上。

图8B是可以通过本文中所描述的各种实施例来实践的选择操作模式的流程图。在动作820中,用选定的标签的位长和比较强来写入模式寄存器,以选择标准DRAM模式或多通路集合关联高速缓存模式。

在动作822中,基于模式寄存器的内容来控制地址多路复用、数据多路复用、标签的位长和比较器的位长。图7示出了控制这些方面的模式寄存器的示例。

图9描绘了多通路集合关联DRAM高速缓存的实施例。示出了四个存储体902,每个存储体具有行解码器904。每个存储体902具有列解码器906和次级感测放大器(SA)908。每个存储体902还具有高速缓存逻辑914。该示例示出了每两个存储体902一个多通路复用器920,但是在其他实施例中,每个存储体或每任何数目的存储体902可以具有一个多路复用器920。来自命令/地址逻辑/再驱动器916的内部命令和地址线连接到要么来自高速缓存逻辑要么来自全局命令和地址逻辑以及再驱动器916的阵列的边缘处的逻辑(用于存储体控制、解码器和行解码器)。内部数据线910将次级感测放大器连接到全局数据逻辑和再驱动器918,而非高速缓存逻辑914。

图10描绘了多通路集合关联DRAM高速缓存的另一实施例。感测放大器1008在邻居mat 1004之间被共享。存储体的边缘需要负载mat 1002。激活字线(WL)块评估共享感测放大器1008的字线,例如,WL b块同时阻止WL a和WL c。

多通路集合关联DRAM高速缓存(参见图10的左侧))的实施例的选项包括以下各项。选项A)mat 1和mat n存储标签,mat 1存储mat 2至mat n/2中数据的标签,mat n存储mat n/2+1至mat n-1中的数据的标签。选项B)只有mat 1存储标签,mat 2是mat 1与mat 3之间被共享的负载mat,数据存储在mat 3至mat n中。选项C)标签在所有标签中作为额外行分布,mat 1至mat n/2中的数据的标签位于mat n/2+1至mat n中,mat n/2+1至mat n中的数据的标签位于mat 1至mat n/2中。

多通路集合关联DRAM高速缓存(参见图10的右侧)的实施例的选项包括以下各项。选项D)matt 1006存储标签(即,标签mat),matt 1006的字线数目与mat 1至mat n的字线数目不同,matt 1006需要自己的负载mat,其中字线数目相同,才能使负载平衡(切割负载位线并且共享负载mat可能会产生工艺问题),并且数据存储在mat 1至mat n中。

图11描绘了根据本实施例的DRAM 1102以及可以将DRAM1102操作为多通路集合关联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引脚的管芯上终结。

数据输入/输出I/O符号DQ[15:0]_A、DQ[15:0]_B。双向数据总线。每个通道(A和B)都有自己的总线。

数据选通I/O符号DQS[1:0]_t_A、DQS[1:0]_c_A、DQS[1:0]_t_B、DQS[1:0]_c_B。双向差分输出时钟信号用于在READ或WRITE期间选通数据。每个通道(A和B)都有自己的DQS选通。

数据掩码反转I/O符号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。多功能引脚定义所录入的命令。

输入数据掩码和数据总线反转I/O符号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。

数据输入/输出I/O符号DQ。双向数据总线。

数据选通I/O符号DQS_t、DQS_c、DQSU_t、DQSU_c、DQSL_t、DQSL_c。输出读取数据、输入写入数据。

终端数据选通输出符号TDQS_t、TDQS_c。依据模式寄存器启用终结电阻功能、数据屏蔽功能或数据屏蔽反转。

命令和地址奇偶校验输入输入符号PAR。支持偶校验。

警报I/O符号ALERT_n。CRC误差、命令和地址奇偶校验误差、连通性测试的多功能警报。

连通性测试模式使能输入符号TEN。启用连通性测试模式操作。

无连接符号NC。

DQ电源供应符号VDDQ。

DQ接地供应符号VSSQ。

电源供应符号VDD。

接地供应符号VSS。

DRAM激活电源供应符号VPP。

CA的参考电压供应符号VREFCA。

ZQ校准的参考引脚供应符号ZQ。

图12描绘了根据本实施例的使用具有高速缓存模式的DRAM1304的控制器1302。提出了针对在控制器上具有标签SRAM的高速缓存系统的潜在限制的解决方案,图12中的部件在参考图1A至图11所描述的各种实施例中将标签容量添加到特殊子阵列(映射)组中的DRAM。在高速缓存模式下,DRAM访问标签,并且选择正确数据(或指示未命中)。标记和数据空间交错,以便获得最佳性能。

在各种实施例中,控制器1302可以是CPU、与CPU和存储器不同或模块上的单独片上系统(SoC),只要控制器1302位于SCM的通路径中即可。可以将控制器连接到DRAM以及将控制器连接到SCM的总线包括DDRX、SATA、PCIe等。该系统可以与具有一个通道的一个DRAM1304、具有两个通道的一个DRAM 1304、各自具有一个通道的两个DRAM 1304而非如图12中的示例所示的各自具有两个通道的两个DRAM等一起工作。此外,直连总线的路径中可以存在缓冲器以扩展容量。

在下文作为配置示例X-A描述的一个实施例中,SCM(物理)存储器堆栈1312中的4kB组1202的副本存储在跨DRAM中的32个存储体分布的DRAM(高速缓存)存储器中,以便获得最佳性能。DRAM 1304以被耦合到控制器1302的各自具有两个通道1306的两个DRAM部件(其可以是IC、多芯片IC封装、逻辑单元等)示出。还如下文所描述的其他配置可以在图12所示的系统中实现。控制器1302具有读取队列1310和地址字段操纵1308,该地址字段操纵1308根据配置以各种格式或方案操纵地址位。一些实施例具有单个配置,而一些实施例具有多个配置。在一些实施例中,物理地址字段放置在用于DRAM的CA分组中。控制寄存器字段选择所使用的高速缓存配置。地址字段操纵1308使用逻辑、多路复用或其他电路系统、或在处理器上执行的软件或固件、或按照本文中的教导容易设计的其组合。

在系统处于高速缓存模式的情况下,控制器1302的高速缓存读取逻辑跨存储器总线向DRAM 1304发送高速缓存读取命令(参见图15A至图17)。高速缓存结果逻辑接收来自SCM 1312的DRAM 1304的对缓存数据的响应或通过将标签比较字段与存储在DRAM 1304中的标签字段进行比较而产生未命中的指示。在未命中的情况下,高速缓存提取逻辑跨另一存储器总线向SCM发送高速缓存提取命令1312(被示为SCM堆栈)。高速缓存提取命令使得SCM 1312将与标签字段相关联的数据发送到控制器1302。高速缓存提取逻辑响应于高速缓存提取命令而将其从SCM 1312接收的数据写入到DRAM 1304中作为缓存数据。在一些实施例中,高速缓存读取逻辑重试对DRAM 1304的高速缓存读取命令。

下表是比较具有高速缓存模式的DRAM的系统配置的表。对于各种配置X-A、Y-A、Z-A、Z-B,“A”=重叠的标签访问/数据访问,“B”=非重叠的标签访问/数据访问。重叠是指数据访问与标签访问重叠,换言之,数据访问在标签访问完成之前开始。非重叠是指数据访问与标签访问不重叠,换言之,在标签访问完成之后,开始数据访问。非重叠的标签访问/数据访问比重叠的标签访问/数据访问花费的时间更长。“Z”=被保持在单个存储体内的数据“通路”,“Y”=被保持在单个设备的多个存储体内的数据“通路”,以及“X”=被保持在多个设备的多个存储体中的数据“通路”。图13A中描绘了配置X-A,其中数据通路被保持在多个设备的多个存储体中并且标签访问/数据访问重叠。图13B中描绘了配置Y-A,其中数据通路被保持在多个设备的多个存储体中并且标签访问/数据访问重叠。图13C中描绘了配置Z-A,其中数据通道被保持在单个存储体中并且标签访问/数据访问重叠。图13D中描绘了配置Z-B,其中数据通路被保持在单个存储体中并且标签访问/数据访问非重叠。标签被保持在关联标签存储体中,其XYZ分布选项与数据库中的数据相同。也就是说,在配置X中,数据通路和关联标签存储体被保持在多个设备的多个存储体中。在配置Y中,数据通路和关联标签存储体被保持在单个设备的多个存储体中。在配置Z中,数据通路和关联标签存储体被保持在单个存储体中。

以上比较和以下细节针对一个特定实施例,但是在任何给定实现方式中,如访问时间之类的规范可能不同。传统(非缓存)访问时间约为36ns。配置假设包括每个DRAM两个通道,每个DRAM 8GB,每列32个字节,每行64个列(2kB行),每个存储体16K行,每个通道8个存储体,tRC约为50ns,tFAW约为40ns,每秒DQ位率为4Gb,每个DRAM高速缓存线16个通路(集合),每个DRAM高速缓存线(组)4kB。所有重叠的标签访问/数据访问配置X-A、Y-A、Z-A的命中访问时间约为46ns,其比配置Z-B的非重叠标签访问/数据访问的命中访问时间64ns短。但是,配置Z-B的非重叠标签访问/数据访问在未命中之后访问4kB组的每位成本能量最低,并且与配置Z-A的最低标签开销相同,为0.05%。表中易于探讨出各种配置的其他特点和权衡。

图13A描绘了其中数据通路被保持在多个设备的多个存储体102内并且标签访问/数据访问重叠的系统配置示例X-A。在该示例中,拷贝SCM(物理)存储器中的4kB组1202,并且使它们跨32个存储体102分布。所分布的4kB组1202的16位标签复制在32个标签存储器1502中,每存储体102一个标签存储器。4kB组的其他通路的16个位标签(处于相同的高速缓存组地址)被保持在存储体102中的一行的同一列中。4kB组的其他通路的运送块(处于相同的高速缓存组地址)与被保持在存储体102的行的两个32字节列中的64字节运送块被保持在同一行中。配置XA可以使使用跨多个通道的宽数据总线的DRAM高速缓存系统受益。

图13B描绘了其中数据通路被保持在单个设备的多个存储体102内并且标签访问/数据访问重叠的系统配置示例Y-A。在该示例中,拷贝SCM(物理)存储器中的4kB组1202,并且使它们跨一个通道(通道D)的八个存储体102中的每个存储体中的四行分布。在该示例中,所分布的4kB组1202的16位标签复制在八个标签存储器1502中(一个通道(通道D)的八个存储体中的每个存储体中的一个标签存储器)。4kB组的其他通路的16位标签(处于相同的高速缓存组地址)被保持在存储体102中的一行的同一列中。4kB组1202的其他通路的运送块(处于相同的高速缓存组地址)与被保持在存储体102中四行中每行的两个32字节列中的64字节运送块被保持在存储体102中相同的四行中。配置Y-A可能有利于单个通道中的连续地址处的多个顺序数据访问。与其他配置相比,单个通道中连续地址处的多个顺序数据访问的平均功耗可能更低。

图13C描绘了其中数据通路被保持在单个存储体102内并且标签访问/数据访问重叠的系统配置示例Z-A。在该示例中,拷贝SCM(物理)存储器中的4kB组1202,并且使它们跨一个通道的一个存储体102的32行分布。用于64字节运送块的16位标签106处于存储体102中的关联标签存储器1502中。其他存储体102中的标签没有重复。4kB组的其他通路的16位标签(处于相同的高速缓存组地址)被保持在存储体102中标签存储器1502中的一行的同一列中。4kB组1202的其他通路的运送块(处于相同的高速缓存组地址)与被保持在存储体102中32行中每行的两个32字节列中的64字节传送块被保持在相同的32行中。配置Z-A无需重复标签,因此较少消耗标签的存储器的行。配置X、Y和Z与用于寻址DRAM中的行、列、存储体和通道的不同方案相对应,并且可能影响访问时间和能耗。

图13D描绘了其中数据通路被保持在单个存储体102内并且标签访问/数据访问不重叠的系统配置示例Z-B。在该示例中,拷贝SCM(物理)存储器中的4kB组1202,并且使它们跨一个通道的一个存储体102的32行分布。用于64字节运送块的16位标签106处于存储体102中的关联标签存储器1502中。其他存储体102中的标签没有重复。4kB组的其他通路的16位标签(处于相同的高速缓存组地址)被保持在存储体102中标签存储器1502中的一行的同一列中。4kB组1202的其他通路的运送块(处于相同的高速缓存组地址)被保持在存储体102中的不同行中。64字节运送块被保持在存储体102中的两个行的两个32字节列中。配置Z-B的标签无需重复,因此标签的存储器的行消耗较少。配置B的访问时间比配置A的访问时间长,但能耗可能更低。

图14A描绘了用于如图13A所示的系统配置示例X-A的图12的控制器1302中的地址字段操纵1308。对于2GB的DRAM,DRAM字节地址1604通过控制器1302上的地址字段控制1308和DRAM上的标签比较从用于1TB存储器(例如,SCM,其各个组1202缓存在DRAM中)的控制器(物理)地址1602导出。从控制器(物理)地址1602的标签字段AP[39:27],DRAM通过标签比较产生集合位Set[3:0],该集合位Set[3:0]用于DRAM字节地址1604的四列地址位AC[5:2]。控制器(物理)地址1602的组地址AP[26:12]的所有15位都用于DRAM字节地址1604的行地址位AR[14:0]。控制器1302从控制器(物理)地址1602的子组地址的上两位和后三位导出DRAM字节地址1604的通道地址位AD[1:0]和存储体地址位AB[2:0]。控制器(物理)地址1602的子组地址的后下两位提供DRAM字节地址1608的剩余两个列地址位AC[1:0]。并且,控制器(物理)地址1602的子组地址的最下五位提供用于64字节读取/写入的子列地址的五个位以完成DRAM字节地址1604。

图14B描绘了用于如图13B所示的系统配置示例Y-A的图12的控制器1302中的地址字段控制1308。对于2GB的DRAM,DRAM字节地址1606通过控制器1302上的地址字段控制1308和DRAM上的标签比较从用于1TB存储器(例如,SCM,其各个组1202缓存在DRAM中)的控制器(物理)地址1602导出。从控制器(物理)地址1602的标签字段AP[39:27],DRAM通过标签比较产生集合位Set[3:0],该集合位Set[3:0]用于DRAM字节地址1606的四列地址位AC[5:2]。从控制器(物理)地址1602的组地址AP[26:25]的上两位,控制器1302提供通道地址位AD[1:0]。从控制器(物理)地址1602的组地址AP[24:12]的下13位或剩余13位,控制器1302为DRAM字节地址1606提供行地址的上13位AR[14:2]。控制器(物理)地址1602的子组地址AP[11:9]的上三位被操纵为DRAM字节地址1606的存储体地址位AB[2:0]。控制器(物理)地址1602的子组地址AP[8:7]的后下两位提供DRAM字节地址1606的行地址AR[1:0]的最下两位。控制器(物理)地址1602的子组地址AP[6:5]的后下两位用作DRAM字节地址1606中的列地址AC[1:0]的最下两位。并且控制器(物理)地址1602的子组地址的最下五位提供了用于64字节读取/写入的子列地址的五个位以完成DRAM字节地址1606。

图14C描绘了用于如图13C所示的系统配置示例Z-A的图12的控制器1302中的地址字段操纵1308。图14C中的实线箭头描绘了DRAM上的标签比较过程。作为物理地址的一部分的标签字段与存储在DRAM中的标签进行比较,并且如果匹配,则选择16个集合中的一个集合(Set[3:0]字段)——Set字段形成用于选择数据的DRAM地址的一部分。对于2GB的DRAM,DRAM字节地址1608通过控制器1302上的地址字段控制1308和DRAM上的标签比较从1TB存储器(例如,SCM,其各个组1202缓存在DRAM中)的控制器(物理)地址1602导出。从控制器(物理)地址1602的标签字段AP[39:27],DRAM通过标签比较产生集合位Set[3:0],该集合位Set[3:0]用于DRAM字节地址1608的四列地址位AC[5:2]。也就是说,来自标签比较的集合位用于四个列地址位以获取缓存数据。从控制器(物理)地址1602的组地址AP[26:12],控制器1302导出DRAM字节地址1608的通道地址位AD[1:0]、存储体地址位AB[2:0]和上10个行地址位AR[14:5]。DRAM字节地址1608的另外五个行地址位AR[4:0]从控制器(物理)地址1602的子组地址AP[11:0]的上五个位导出。控制器(物理)地址1602的子组地址的中间两位提供DRAM字节地址1608的另外两个列地址位AC[1:0]。控制器(物理)地址1602的子组地址的下五个位提供DRAM字节地址1608的子列地址的五个位。

图14D描绘了用于如图13D所示的系统配置示例Z-B的图12的控制器1302中的地址字段控制1308。对于2GB的DRAM,DRAM字节地址1610通过控制器1302上的地址字段控制1308和DRAM上的标签比较从1TB存储器(例如,SCM,其各个组1202缓存在DRAM中)的控制器(物理)地址1602导出。从控制器(物理)地址1602的标签字段AP[39:27],DRAM通过标签比较产生集合位Set[3:0],该集合位Set[3:0]用于DRAM字节地址1608的上四行地址位AR[14:11]。从控制器(物理)地址1602的组地址AP[26:12],控制器1302导出DRAM字节地址1608的通道地址位AD[1:0]、存储体地址位AB[2:0]和后10个行地址位AR[10:1]。DRAM字节地址1608的最下行地址位AR[10:0]来自控制器(物理)地址1602的子组地址AP[11]的最上位。控制器(物理)地址1602的子组地址的后下6位提供DRAM字节地址1608的六个列地址位AC[5:0]。控制器(物理)地址1602的子组地址的下五位提供DRAM字节地址1608的子列地址的五个位。

图15A描绘了如图13D所示的系统配置示例Z-B的命令格式。图15和图15B中的冗余发生,因为每行访问有两个列访问,即,其他DRAM部件或子系统可能将该比例设置为每个行访问一个列访问,并且命令序列中不会有冗余字段。ACT命令之后是RD命令0和RD命令1。在该示例中,ACT命令指示它具有最低有效标签字段1702位AP[30:27]。第一读取命令(RD命令0)具有最高有效标签字段1704位AP[39:31]。同一组的同一行的后续RD命令中无需标签字段,例如,RD命令1。这是因为每个协议具有两个部分的读取命令已经在RD命令0中指定了当与来自ACT命令的标签字段1702结合时完成标签字段所需的标签位,因此RD命令1中的标签字段为冗余。

图15B描绘了图13C、图13B和图13A中所示的系统配置示例Z-A、Y-A和X-A的命令格式。ACT命令之后是RD命令0和RD命令1。在该示例中,ACT命令只有行地址。第一读取命令(RD命令0)具有最高有效标签字段1706位AP[39:31]和最低有效标签字段1708位AP[30:27]。同一组的同一行的后续RD命令(例如,RD命令1)中无需标签字段。这是因为每个协议具有两个部分的读取命令已经在RD命令0中指定了完成标签字段所需的所有标签位,所以RD命令1中的标签字段为冗余。

图15C描绘了如图13D、图13C、图13B和图13A所示的系统配置示例Z-B、Z-A、Y-A和X-A的命令格式。ACT命令之后是RD命令0和RD命令1。在该示例中,第一读取命令(RD命令0)表示它具有最高有效标签字段1710位AP[39:33]。下一读取命令(RD命令1)具有最低有效标签字段1712位AP[32:27]。如果仅需32字节访问,则可以读取同一列两次。与图15A和图15B中的命令格式示例不同,RD命令1确实需要提供剩余标签位来完成标签字段,因此没有冗余标签字段。参考图15A至图15C,“共享”标签字段的概念可以是指(来自物理地址的)标签字段跨(图15A中的)行命令和列命令分开,或由一个列命令指定,稍后由(图15B中的)第二列命令使用,或跨(图15C中的)两个连续列命令分开,即,这些备选方案中的任一备选方案都允许使CA引脚的数目最小。

图16描绘了具有高速缓存模式的DRAM中具有提取和逐出的高速缓存未命中的读取时序细节。控制器队列在(1)处接收下一读取(RD)事务(T)1720。这被示为地址总线(ADR)上的读取地址。在(2)处执行对DRAM的ACT/RD访问1722。访问在(3)处通过标签MISS 1724取消。这通过从DRAM到控制器的状态(ST)信号发信号通知。事务(T)状态是重试,该系统通过在(4)处经由ST2信号将状态发送到执行单元来完成。事务(T)在(5)处移动到重试缓冲器,直至提取操作已经返回到读取(RD)数据。在(6)处,系统启动并发提取过程,以从外部存储器(XMEM)中获得具有未命中读取(RD)数据的组。并发获取过程被示为获取新组1726。在(7)处,存储器控制器选择要从高速缓存存储器中移除的组(为新组腾出空间),并且启动并发逐出过程。这被示为逐出旧组1728。在(8)处,系统继续并发处理事务。在(9)处,完成对4kB提取缓冲器的提取访问,并且4kB缓冲器已经移动到DRAM。在(10)处,在状态分组的后台字段中向存储器控制器发信号通知获取完成,并且可以重试原始读取。

图17是具有高速缓存模式的DRAM的64字节读取、正常(直接)访问1802和修改(高速缓存)访问1804的读取时序细节。在高水平处(并且参考[00125]处的表),四种配置之间的差异影响命中访问延迟、标签开销成本、以及在未命中(逐出/获取)后访问4KB组的带宽和能量/位,即,这些以复杂方式相互作用,但它们不能同时优化,这就是为什么需要四种配置来说明每个度量的最佳点。对于修改(缓存)访问1804和正常(直接)访问1802,CA输入分组处于相同位置。ACT命令,然后是RD命令0和RD命令1遵循序列并且具有上文参考图15A至图15C所描述的位,视系统配置的情况而定。配置X-A、Y-A和Z-A(参见表的系统配置示例X-A、Y-A、Z-A、Z-B的比较和图13A至图13C、图14A至图14C和图15B)的标签访问和数据访问重叠,其中图17中的时序针对配置XYZ-A被示为修改(缓存访问)1804。配置Z-B(参见表的系统配置示例X-A、Y-A、Z-A、Z-B的比较和图13D、图14D和图15A)的标签访问和数据访问非重叠,其中图17中的时序针对配置Z-B被示为修改(缓存)访问1804。该时序可以与用于在没有高速缓存访问的情况下直接读取DRAM的正常(直接)访问1802中的更快数据读取进行比较。

参考图16A至图16C和图17,在一个实施例中,存在三个命令,ACT后跟两个连续列命令,用于组合为64字节访问的两个32字节读取或写入数据访问。两个连续列命令是标签列访问操作和后续数据列访问操作。两个列访问都使用同一标签。也就是说,标签列访问操作的标签比较字段也用于数据列访问操作的标签比较字段。

图18是描绘了经历高速缓存未命中的DRAM高速缓存的控制器排序的流程图。向前参考图19,各个系统部件参与图18中所描述的动作。从动作1902开始,[1]获取下一事务“T”,该事务可以是读取,例如,64字节读取(参见图19的左侧),或是写入,例如,64字节写入(参见图18的右侧)。

对于64字节读取,流程进行到动作1904,[2r]读取DRAM 1304并且确定是存在命中还是存在未命中的事务T。如果命中,则流程进行到动作1906,返回读取数据。如果未命中[3],则流程进行到动作1908。

对于64字节写入,流程进行到动作1930,[2w]写入DRAM并且确定是存在命中还是未命中的事务T。如果命中,则流程进行到动作1932,将64字节数据写入DRAM 1304(根据高速缓存命中),然后进行到动作1934,为128字节子组设置无效标志。如果未命中[3],则流程进行到动作1908。

对于动作1908[8],控制器1302执行将事务T状态标记为“重试”的动作[4],[5]保持事务T,[6]启动并发“获取”过程,[7]启动并发“逐出”过程,以及[8]继续并发处理事务。

对于[6]获取,流程进行到动作1910,[6a]开始访问SCM中的4kB组BT(包含事务T目标)并且传送到控制器1302中的4kB获取缓冲器2006。过程流程并行分支,其中完成提取,进行到动作1922[7c],并且继续动作1912[6b],将4kB组BT从控制器1302中的4kB缓冲器传送到DRAM 1304。接下来是动作1914[6c]将事务T返回到读取重试缓冲器2022中的待重试队列,并且动作1916[6d]终止提取过程。在一些实施例中,一旦完成从SCM到DRAM的提取,存储器控制器1302必须从DRAM 1304获取数据。控制器可以等待确认,或在一些版本中依赖预先确定的时间间隔,然后通过动作1902的过程再次从DRAM 1304请求数据。在一些实施例中,当数据从SCM移动到DRAM高速缓存时,控制器1302读取数据,从而防止一旦数据位于DRAM高速缓存,就需要进行单独DRAM读取。

对于[7]逐出,流程进行到动作1918,[7a]选择DRAM高速缓存中的4kB组BE进行逐出(组BE和组BT在该地址的16个集合中具有相同的AP[26:12]地址)。接下来,流程进行到动作1920[7b]将4kB组BE(包含事务)连同32个无效标志(每128字节数据一个无效标志)从DRAM传送到控制器1302中的4kB逐出缓冲器2004。流程进行到动作1922[7c]等待访问BT并且从SCM传送以通过(可选的)获取过程进行控制。流程进行到动作1924[7d]将控制器1302中的4kB逐出缓冲器2004中的4kB组BE(包含事务)传送到SCM。可选地,32个无效标志可以控制每128字节数据的写入。在动作1926中,终止[7e]逐出过程。

下文对用于各种实施例的逐出选择选项进行描述。

[7a.1]逐出选择可以是随机的。

[7a.2]可以对16个目标4kB组的32个128字节子组中的几个字节子组进行采样。高无效标志的数目可以用于指示每个4kB组已使用了多少。可以选取使用率最高的组。如果SCM耐力是个问题,则可以选取具有零高无效标志的组。

[7a.3]与上述类似,但可以使用触摸标志来指示已使用了多少4kB块。

图19是描绘了执行图18的动作的使用具有高速缓存模式的DRAM的控制器的系统动作图。在DRAM系统中,DRAM 1304在第一DRAM排列中被示为DRAM 0和DRAM 1,其中第二DRAM排列中具有更多DRAM。每个DRAM 1304具有两个通道:DRAM 0中的通道A和通道B、DRAM1中的通道C和通道D。SCM存储器堆栈1312在SCM(物理)存储器中具有4kB组1202。在控制器1302内部,事务格式化和操纵2010通过接口2012(表示为xface)被耦合到DRAM 1304。状态/控制2014被耦合到用于被耦合到DRAM 1304的接口2012的事务格式化和操纵2010。事务格式化和操纵2010被耦合到写入队列2016、读取队列2018、写入重试缓冲器2020和读取重试缓冲器2022。另一事务格式化和操纵2002通过另一接口2024被耦合到SCM存储器堆栈1312。另一状态2008被耦合到事务格式化和操纵2002。事务格式化和操纵2002被耦合到逐出缓冲器2004和提取缓冲器2006,该提取缓冲器2006还耦合到DRAM 1304的事务格式化和操纵2014。

针对如上文参考图18所描述的高速缓存未命中,通过使用图18和图19中对应的带括号的数字容易得出DRAM高速缓存的控制器排序。

图20描绘了逐出决策过程的触摸标志增强。触摸标志被添加到16位标签标志字2106,然后,该16位标签标志字2106具有用于标签比较的12位和作为无效、有效、奇偶校验和触摸2104的四个标志位。当4kB块通过获取过程从SCM加载时,触摸2104(和无效)位最初是低的。64字节读取事务将用于被访问的128字节子块(类似于64字节写入事务设置无效标志时)的本地标签标志字2106中的触摸2104标志设置为高(并且调整奇偶校验)。当4kB块首次写入DRAM高速缓存(即,从SCM加载)时清零的触摸位当从DRAM高速缓存读取4kB块或部分时进行设置,以通知系统缓存4kB块正在被读取,因此值得保留。已经写入DRAM高速缓存以使触摸位已被清零但在以后仍显示触摸位清零的4kB块可能是逐出的候选者,因为它未被读取,因此不值得保持。由写入事务设置的无效位通知系统缓存数据已写入,因此应当将其写回到SCM。这在写回高速缓存中很有用。对于逐出决策过程,无效位和触摸位都有目的。如上所述,触摸位可以用于标识逐出的候选者,无效位可以用于确保已经写入(即,覆盖)的缓存数据在高速缓存中的该位置可以被认为是逐出的候选者之前写回到SCM。

图21A描绘了根据本实施例的跨存储体/通道/设备分布的4kB高速缓存线。在该示例中,每个4kB高速缓存线的数据和关联标签跨所有可用存储体102分布(例如,来自两个DRAM的32个存储体和每个DRAM的两个通道,其中每个通道有八个存储体102)。这允许尽可能快地在DRAM与控制器之间传送4kB高速缓存线2202。这使得提取过程和逐出过程更易于安排。图22A示出了物理SCM地址空间中的4kB高速缓存线2202如何跨多个通道和多个设备的存储体102分布以使提取过程和逐出过程期间的运送时间最短。

图21B描绘了根据本实施例的位于相同DRAM行中的16个集合(通路)的4kB高速缓存线标签和数据。在该示例中,通路的传送数据块(例如,两个64字节传送块)位于同一行。通路是具有相同的低中地址但具有不同的高地址的多个数据集合。通路的标签位于单个列中(例如,16×16位)。这将在行/列访问和标签比较之后生成标签,并且在再两次列访问之后生成数据。标签的行访问与数据的行访问重叠。图21B示出了如何访问物理SCM地址空间中的16个别名4kB高速缓存线以找到具有匹配39:27地址的高速缓存线。在该示例中,这16个4kB高速缓存线2202占据地址AP[26:12]处的16个集合。AP[26:12]行地址相同但AP[39:27]匹配地址不同。应当指出,标签匹配的每行包含与数据存储体102中的64个行相关联的64个列16×16位标签。

上文所描述的方法、系统和设备可以在计算机系统中实现或由计算机系统存储。上文所描述的方法还可以存储在非暂态计算机可读介质上。本文中所描述的设备、电路和系统可以使用本领域中可用的计算机辅助设计工具来实现,并且由包含这样的电路的软件描述的计算机可读文件来体现。这包括但不限于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”。另外,除非另有说明或从上下文清楚指向单数形式,否则本申请和所附权利要求中使用的冠词“一”和“一个”通常可以被解释为意指“一个或多个”。此外,除非如此描述,否则始终使用术语“一实施例”或“一个实施例”或“一实施例”或“一个实施例”并不旨在意指相同的实施例或实施例。本文中所使用的术语“第一”、“第二”、“第三”、“第四”等意在作为区分不同元件的标签,并且根据它们的数字指定可能不一定具有顺序含义。

67页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于数据产生的数据线更新

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类