CN103597450B - 具有存储在存储器页的一部分中的元数据的存储器 - Google Patents

具有存储在存储器页的一部分中的元数据的存储器 Download PDF

Info

Publication number
CN103597450B
CN103597450B CN201280028192.6A CN201280028192A CN103597450B CN 103597450 B CN103597450 B CN 103597450B CN 201280028192 A CN201280028192 A CN 201280028192A CN 103597450 B CN103597450 B CN 103597450B
Authority
CN
China
Prior art keywords
page
metadata
data
storage arrangement
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201280028192.6A
Other languages
English (en)
Other versions
CN103597450A (zh
Inventor
埃里克·詹姆斯·普隆迪克
卢西恩·科德雷斯库
威廉·C·安德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN103597450A publication Critical patent/CN103597450A/zh
Application granted granted Critical
Publication of CN103597450B publication Critical patent/CN103597450B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及用于配置不具有预先存在的专用元数据的基于页的存储器装置的系统及方法。所述方法包含从所述存储器装置的页的元数据部分读取元数据;以及基于所述元数据确定所述页的特性。所述存储器装置可配置为高速缓存。所述元数据可包含地址标记,从而使得确定所述特性可包含确定所述页中是否存在期望的信息,以及在确定所述页中存在所述期望的信息的情况下读取所述期望的信息。所述元数据还可包含错误校正码ECC,从而使得确定所述特性可包含检测在存储在所述页中的数据中存在的错误。所述元数据可进一步包含目录信息、存储器相干性信息或脏/有效/锁定信息。

Description

具有存储在存储器页的一部分中的元数据的存储器
技术领域
所揭示的实施例涉及配置存储器结构以用于高速、低功率应用。更具体地说,示范性实施例涉及配置大型动态随机存取存储器(DRAM)结构以用作高速缓冲存储器。
背景技术
计算机处理系统一般来说包括几个存储器层级。最靠近处理核心或中央处理单元(CPU)的是高速缓存,例如一级高速缓存,而离CPU最远的是主存储器。高速缓存要求高速且尺寸小,尤其是在高速缓存靠近CPU并且放在芯片上的情况下。所以,最靠近CPU的高速缓存通常由静态随机存取存储器(SRAM)形成,静态随机存取存储器的特征就是高速。但是,SRAM的成本也高。另一方面,动态随机存取存储器(DRAM)比SRAM慢,但是也比后者便宜。所以,DRAM过去用在离CPU较远而离主存储器较近的地方。
近来技术方面有所进步,使得可以制造具有大存储容量及低功率特征的DRAM系统。举例来说,宽输入/输出(IO)接口和能效堆叠已经使得能够制造具有大存储容量(大到2GB)、高带宽数据传送还有比DRAM先前已知的等待时间少的等待时间的DRAM系统。
所以,相对较大的存储容量可以使得低功率堆叠DRAM系统在一些低功率嵌入式系统及手持式装置应用中可以充当芯片上主存储器系统。但是,这些低功率堆叠DRAM系统在高性能处理系统中可能并不是主存储器的合适的替换品,因为这些系统的存储容量可能不够大,无法满足主存储器的需求。
另一方面,具有低能量及高速度的特征的低功率堆叠DRAM系统现在可能对于靠近CPU的高速缓存来说更有吸引力。举例来说,低功率堆叠DRAM系统可以配置为常规DRAM系统的高速缓存,常规DRAM系统可能过于缓慢而不能靠近CPU放置。所以,低功率堆叠DRAM系统可以在靠近CPU的高速缓冲存储器中提供比先前已知的存储容量高的存储容量。
但是,当前可用的现成低功率堆叠DRAM型号可能有一些局限性,这些局限性可能会限制它们对于靠近CPU的这些高速缓冲存储器应用的即用性。举例来说,现成低功率堆叠DRAM系统可能未配备错误校正码(ECC)之类的特征。DRAM单元可能泄漏,并且非常容易出现错误。因此,缺少错误检测及错误校正能力(例如ECC机构等)可能会使得低功率堆叠DRAM系统不适合用在靠近CPU的高速缓存中,或在防错系统中用作任何其它种类的存储装置。
配置现成低功率堆叠DRAM系统以用作高速缓冲存储器的另一障碍是这种系统不支持能进行高速数据存取的特征,例如标记机构。众所周知,高速缓冲存储器包含指定对应于高速缓存中的每一复制行的存储器地址的标记机构。有效标记结构使得能够在高速缓冲存储器中高速查找所请求的数据。但是,现成低功率堆叠DRAM系统并没有标记机构,由此使得在没有标记存储装置的替代技术的情况下这类系统不适合用作高速缓存。设计合适的标记机构以结合DRAM使用有几个难题。举例来说,就大型DRAM(例如,2GB)而论,标记字段本身将需要几个MB的存储空间。这种大型标记空间开销会在芯片上标记的放置及组织方面产生几个难题。
另外,用于低功率堆叠DRAM的标记机构的设计因为在为了获得较大的集合关联性而牺牲标记空间时涉及隐式平衡而变得复杂,因而会导致高未命中率的问题。类似地,在设计低功率堆叠DRAM系统使其包含与目录信息或用于多处理器环境的其它存储器相干性信息相关联的智能时也存在难题。
所以,为了有利地采用低功率堆叠DRAM系统以用于靠近CPU的高速缓冲存储器应用,需要克服常规DRAM系统中对于错误的敏感性、缺乏有效标记机构及相关智能特征所导致的难题。
发明内容
本发明的示范性实施例涉及用于配置大型动态随机存取存储器(DRAM)结构以用作高速缓冲存储器的系统及方法。
举例来说,一种示范性实施例涉及不具有预先存在的专用元数据的存储器装置,其包括基于页的存储器,其中每一页分成第一部分及第二部分,从而使得所述第一部分包括数据,并且所述第二部分包括对应于所述第一部分中的数据的元数据。在示范性实施例中,所述元数据可包括错误校正码(ECC)、地址标记、目录信息、存储器相干性信息或脏/有效/锁定信息中的至少一者。
另一示范性实施例涉及配置不具有预先存在的专用元数据的基于页的存储器装置的方法,所述方法包括:从所述存储器装置的页的元数据部分读取元数据;以及基于所述元数据确定所述页的特性。
又一示范性实施例涉及存储器系统,其包括:不具有预先存在的元数据的基于页的存储器装置,其中所述存储器装置的页包括第一存储装置及第二存储装置、存储在所述第一存储装置中的元数据,及存储在所述第二存储装置中的数据,其中所述第一存储装置中的元数据与所述第二存储装置中的数据相关联。
另一示范性实施例涉及包括代码的非暂时性计算机可读存储媒体,所述代码在由处理器执行时使所述处理器执行用于配置不具有预先存在的专用元数据的基于页的存储器装置的操作,所述非暂时性计算机可读存储媒体包括:用于从所述存储器装置的页的元数据部分读取元数据的代码;以及用于基于所述元数据确定页的特性的代码。
附图说明
呈现附图以辅助描述本发明的实施例,且提供所述图式仅用于说明实施例而非对其加以限制。
图1图解说明包括不具有相关元数据的数据页的常规DRAM系统。
图2图解说明根据示范性实施例的DRAM系统,其中DRAM系统的页经配置以用于高速缓存,方法是通过在页中包含对应于存储在页中的数据的相关元数据。
图3图解说明经配置以用作高速缓存的示范性DRAM系统的管线式存取的示范性时间线。
图4图解说明详述配置不具有预先存在的元数据的基于页的存储器系统以用作高速缓存的示范性方法的流程图。
具体实施方式
本发明的各方面揭示于针对本发明的特定实施例的以下描述及相关图式中。可在不脱离本发明的范围的情况下设计替代实施例。此外,将不会详细描述本发明的众所周知的元件,或将省略所述元件,以免混淆本发明的相关细节。
词语“示范性的”在本文中用以意味着“充当实例、个例或说明”。本文中描述为“示范性的”任何实施例不必须被理解为比其它实施例优选或有利。同样,术语“本发明的实施例”并非要求本发明的所有实施例包含所论述的特征、优点或操作模式。
本文中所使用的术语仅仅是为了描述特定实施例,且并不希望限制本发明的实施例。如本文中所使用,除非上下文另外清楚地指示,否则单数形式“一”及“所述”希望还包含复数形式。将进一步理解,术语“包括”及/或“包含”当在本文中使用时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一个或一个以上其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。
此外,根据待由(例如)计算装置的元件执行的动作的序列来描述许多实施例。将认识到,可由特定电路(例如,专用集成电路(ASIC))、由正由一个或一个以上处理器执行的程序指令或由两者的组合来执行本文中所述的各种动作。此外,可认为本文中所述的这些动作序列完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中已存储一组对应计算机指令,所述指令在被执行时将致使相关联的处理器执行本文中所述的功能性。因此,本发明的各种方面可以许多不同形式来体现,所有所述形式均已被涵盖在所主张的标的物的范围内。此外,对于本文中所述的实施例中的每一者来说,任何所述实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述的动作)的逻辑”。
如先前所呈现,例如低功率堆叠DRAM系统等当前可供使用的现成DRAM系统可能非常容易出现错误,并且因此,可能无法满足高速缓冲存储器中所需的数据保真度的临界标准。所以,示范性实施例包括这些低功率堆叠DRAM系统的配置,其中引入错误检测及错误校正特征,例如ECC机构等。实施例还包含有效利用低功率堆叠DRAM系统的数据存储空间及基于页的存储器架构,以便引入具有极少存储空间开销及高速存取的ECC位。
示范性实施例还认识到,可供使用的现成低功率堆叠DRAM架构不具有用于快速数据搜索的内置式标记机构。DRAM系统常规地在页中存储数据。举例来说,DRAM系统可包括存储在1KB页大小中的数据。实施例认识到通过将每一页视为集合关联性高速缓存中的一个集合而将基于页的DRAM存储器转换成具有标记机构的高速缓存类存储器。下文中,为了便于理解,无损于一般性,描述将集中于低功率堆叠DRAM系统的配置为具有单个集合的高速缓存的单个页。可以接着将页中的每一行视为集合关联性高速缓存的一个通道,并且可以对每一行应用标记。所述标记包括识别高速缓存中是否存在特定存储器位置所需的位。通常,存储器地址经配置,从而使得存储器地址的几个所选位可用于识别行中的字节,几个其它所选的其它位可用于识别存储器地址对应的集合,并且其余的地址位可用于形成标记。但是,这个过程引入的标记字段在其存储、组织及放置方面呈现出难题。
首先,标记字段需要大量存储空间。举例来说,实施例可以涉及将具有1千字节(KB)的页大小的低功率堆叠DRAM配置成高速缓冲存储器。所以,1KB页可以配置为具有64字节(B)行的16通道高速缓存。假设物理存储器的大小是1兆兆字节(TB),那么可能需要40个位来寻址物理存储器空间。所以,可能需要6个位来识别64B行中的字节,并且需要21个位来识别集合。因而,可能需要40-(6+21)或13个位来形成用于具有大约2百万个集合的1KB 16通道DRAM高速缓存中的每一行的标记。因此,对于16通道中的每一者具有一个高速缓存行的16通道高速缓存来说,标记位的数目可以是13×16或208个位。如将了解,用于DRAM数据的每一1KB页大小的标记的208个位呈现大量标记空间开销。
其次,将认识到,为了减少标记空间,可以增加高速缓存行大小并且可以减少高速缓存行条目的数目,从而使得高速缓存的总存储容量保持不变。但是,以减少高速缓存条目的数目为代价增加高速缓存行大小,可能会增加未命中率。此外,增加高速缓存行大小还具有增加在填充或读出高速缓存行时传送的数据量的效果。此外,高速缓存行及页的智能组织对于在搜索所请求的数据的过程中可能需要存取的页的数目具有重大含义。所以,示范性实施例将描述对于标记空间开销及组织中涉及的难题的有效解决方案。举例来说,某些实施例包含页自身内的对应于页中的数据的标记字段,从而使得在进行页读取时,如果标记指示命中,那么在所述页仍然打开时可以存取对应数据。另外,示范性实施例还考虑到针对多处理器环境的对于目录信息及存储器相干性信息的有效配置的需要。
如本文所使用,术语“元数据”包含性地指对应于示范性实施例中的DRAM系统中引入的数据的各种信息位及错误校正码。举例来说,ECC位、标记信息(如本技术领域中已知,包含脏/有效/锁定模式信息)、目录信息及其它存储器相干性信息可以统称为元数据。示范性实施例涉及用于在缺乏元数据的DRAM系统中引入这些元数据的技术。实施例进一步涉及元数据的有效存储、组织及存取,以便将DRAM系统配置成可靠的且高效率的高速缓存系统。
应了解,虽然如上所述的参考及重点是针对配置低功率堆叠DRAM系统,但是本文所述的实施例不限于此,而是可以易于扩展到将不具有元数据的任何存储器系统转换成包含元数据的存储器系统。
下文描述一种将例如低功率堆叠DRAM系统等缺乏错误检测/校正特征的DRAM系统配置成包括有效ECC实施方案的示范性DRAM系统的示范性过程。参看图1,展示了一种包括页102的常规DRAM系统100。页102的大小是1KB,分成16行(字线)及8×64=512列(位线),如所图解说明。页102在1KB DRAM位单元中存储数据,其中每一位单元是由以电荷的形式存储信息的电容器形成。
如先前论述,DRAM系统100是易失性的,因为位单元的电容器容易泄漏。需要不断地刷新电容器,以便保持存储在其中的信息。此外,信息易受由各种外部因素(例如电磁场的波动等)引入的错误影响。因此,错误检测及校正对于确保所存储数据的保真度来说至关重要。
用于错误检测及校正的常用技术涉及使用ECC位。ECC位表示与数据位相关联的冗余的等级。使用这种冗余来检验数据的一致性。最初基于已知要校正的原始数据值来计算ECC位。作为简单实例,ECC位可以表示奇偶校验值,从而使得奇偶校验值可以指示原始数据中存在的逻辑“一”的数目是奇数还是偶数。在稍后的时间点,可以再次对当时存在的数据产生奇偶校验值,并且将这个奇偶校验值与ECC位比较。如果存在不匹配,那么可以确定已在原始数据中引入了至少一个错误。在所属领域中,众所周知使用ECC的基本原理用于对错误的复杂分析及后续对错误(如果检测到错误的话)的校正的更加复杂的算法。本文中将不提供对这些算法的详述解释,因为所属领域的技术人员将认识到对于示范性实施例所实现的特定应用来说合适的错误检测/校正算法。
现在返回到图1的DRAM系统100,举例来说,有几个选项可用于在页102中引入ECC位。常规上,对于每一64位的数据采用8位的ECC信息,以便使得能够进行单错误校正/双错误检测(SEC/DED),这包括ECC位引入的12.5%开销。可以认识到,每64位数据有8位ECC的这种传统的实施方案因为在市场上有库存可用,所以可能受到推动。但是,随数据一起内置的ECC位的定制的实施方案能够更加有效地进行SEC/DED,从而使得校正存储器中的错误时需要的位平均来说更少。示范性实施例能够将开销缩小到2.1%,方法是通过对SEC/DED使用每512位数据11个ECC位,并且能够将开销缩小到4.1%,方法是通过对双错误校正(DEC)使用每512位数据21个ECC位。所以,包括1KB或1024字节数据的页102可以分段成16个64-B(512位)行。因而,SEC/DED实施方案可能需要每页16*11或176位的ECC。
现在参看图2,展示了ECC位在页内的一种有效放置。图2图解说明根据示范性实施例配置的DRAM系统200。在示范性实施例中,DRAM系统200可能是由低功率堆叠DRAM模型形成。DRAM系统200包括页202,其经配置以随数据位一起存储ECC位。页202包括16个通道或行L0-L15,其中每一行包括64个字节(512个位)。行L1-L15是用于存储数据,而行L0是指定用于元数据。图2图解说明行L0中的16个32位字段E0-E15。字段E0-E15分别独特地对应于用于行L0-L15中的一者的元数据。字段E0-E15可包括与行L0-L15相关的ECC位,还有其它信息。
根据示范性实施例,行L1-L15可以首先用有待存储在页202中的数据填充。可能接着为数据L1-L15的行中的每一者计算ECC位,并且ECC位分别可以存储在字段E1-E15中。如上所展示,11位的ECC对于512位行L1-L15中的每一者的SEC/DED可能是足够的。在这个实例中,字段E1-E15中的每一者中的32位中的11个可能被ECC位占据,因而使得有21位可以供与行L1-L15有关的其它元数据信息使用,如下文中进一步描述。关于字段E0,可以使得与字段E1-E15有关的ECC信息可供在字段E0中使用,从而使得元数据字段也可受到保护以防发生可能的错误。在某些实施方案中,可以将字段E0设置成零值以用于执行ECC计算。所属领域的技术人员将认识到基于上文详述的技术用于特定应用的ECC的有效实施方案的细节。
现在将提供对于在图2的页202中快速搜索数据的标记机构的有效实施方案的描述。如先前所介绍,可以假设整个物理存储器空间的大小是1TB。1TB的物理存储器空间可以用40位来寻址。假设整个1TB物理存储器用64字节(即,2^6字节)的粒度来寻址,那么1TB(即2^40字节)的物理存储器将包括2^34个这些64字节行。形成标记将不需要总共27位的寻址。因而,40位地址空间中的其余的13位将足以形成有效标记以对应于64字节行中的每一者。所以,在此实例中,13位的标记信息可以存储在字段E1-E15中的每一者中,对应于行L1-L15。
继续参看图2,这样存储在字段E1-E15中的标记将确保所有对应于页202中的行L1-L15的标记包含在页202内。如现在将看到,这样将相同页内的标记组织成对应数据,有利地改善了在页202被配置成高速缓存时对于所请求的数据的存取及搜索速度。
在示范性实施例中,当数据请求是针对DRAM系统200的页202时,首先打开页202进行检查。接下来,存取行L0,并且分析包含字段E1-E15中的标记的元数据。如果在字段E1-E15中的标记中的一者中存在命中,那么将确定对应于引起命中的标记的行L1-L15是包括所请求的数据的行。举例来说,可接着在读取操作中读出包括所请求的数据的数据行。另一方面,如果在字段E1-E15中存储的标记中的任一者中不存在命中,那么可以快速确定页202不包括所请求的数据,并且可以迅速地关闭页202。或者,如果在高速缓存中不存在所请求的数据,并且所请求的数据将导致未命中,从而引起数据随后被放置在高速缓存中,那么适当的页被打开以用于新行,并且还用于因为未命中而也可能需要被写回的任何被收回的行。因为在示范性实施例中每一页是作为一个集合被处理,所以一旦确定页202不包括所请求的数据并且页202关闭,就可以确定在DRAM系统200中不存在所请求的数据。此后,实施例可以接着起始对主存储器的存取以便为数据请求服务。因而,应了解,通过在相同页中配置数据及对应标记,就不需要在存取所存储数据之前对标记数据库进行单独的简并存取,因而改善了存取速度及能效。
现在将描述在示范性实施例中对于元数据组织的几个优化,以便进一步改善速度及效率。存储器存取可以在处理系统中被管线化,从而使得一个存储器存取操作可以分解为几个步骤,每一步骤在系统时钟的单个循环中执行。这些步骤可以表达为“差拍”,其中存储器操作的第一差拍可以在第一时钟循环中执行,第二差拍可以在接下来的时钟循环中执行,依此类推。所述元数据可以经过组织,从而使得更多关键信息可以在头几个差拍期间使用。这种组织可以使得能够迅速确定已被打开以用于检查的特定页的有用性。
举例来说,在一个实施例中,13位标记的最低有效的8个位可以用使得在页202打开之后在第一差拍中可供使用的方式放置在字段E1-E15中。标记的这些最低有效的8个位提供了对于页202内的所请求数据的命中或未命中的似然性的非常良好的估计。在字段E1-E15中的标记中仅有一者在最低有效的8个位中呈现命中的情况下,可以确定命中虚假的可能性较低(如果另一方面,呈现多个命中,那么很可能最低有效的8个位可能不足以准确地确定所请求的数据在页202中的存在)。所以,如果在第一差拍中确定了单个命中,那么可以针对对应数据发出及早提取请求。
此后,可以在第二差拍中存取标记的其余位,并且结合在第一差拍中存取的标记的最低有效的8个位研究这些其余位。可以接着分析完整标记以确定命中或未命中,并且可以相应地采取行动。举例来说,如果在第二差拍中确定第一差拍中的命中指示是虚假的,那么可以放弃任何已发布的及早提取请求。或者,如果在第二差拍中确定或确认了命中,那么可以分别起始或持续提取请求。第一及第二差拍中的未命中指示可以触发搜索过程进行到DRAM系统200内的不同页。所属领域的技术人员将认识到在不脱离示范性实施例的范围的情况下如上文所描述在类似行上的各种替代的实施方案。
其它优化可包含将ECC位放置在字段E1-E15中,从而使得在关键标记信息之后的后来差拍中可以存取这些ECC位。这是因为,ECC位对于快速确定所请求数据在页202中的存在可能是无关的。在某些实施例中,还可以针对元数据自身确定ECC位(并且,举例来说,在字段E0中加以存储)。如果这些ECC位揭示可能已经在标记中出现错误,那么先前在较早差拍中对命中/未命中的确定可能需要适当地加以修订。在基于速度与功率要求之间的可接受的折中的实施例中,可以合适地计量基于较早差拍中的命中/未命中确定的对于数据的推测性提取,因为推测性提取可以在预测错误的情况下以大量耗电为代价改善速度。
现在参看图3,展示了用于基于元数据的优化组织处理对于页202的数据请求的示范性时间线。如图所示,在时间302,发出打开页202以进行检查的命令。在时间304,从页202的行L0请求来自字段E1-E15的标记以用于检查。在时间306,使得标记的最低有效的8个位可供使用(第一差拍)。在时间308,使得标记的其余的位及任何其它的元数据可以从页202获得(第二差拍)。可以基于检索到的标记位在第一和/或第二差拍中执行命中/未命中确定。假设已在检索到的标记中的一者中认识到非虚假命中,那么通过搜索过程产生来自对应行的请求,所述搜索过程在时间310到达页202。在时间312及314,可以在部分1及2中从字段E0-E15检索11个ECC位(举例来说,在第三及第四差拍期间)。假设ECC位指示在来自已经在第一及第二差拍期间引起命中的行的所请求数据中不存在错误,那么在时间316-322在四个差拍中检索数据(64个字节)。因而,可以执行处理对于页202的搜索请求的管线化执行,这在示范性实施例中有利地利用对于元数据的优化组织。
在某些实施例中可以包含其它的有益的特征。举例来说,实施例可以从在与对应数据相同的页中保持元数据得出其它的优点,如现在将描述。常规编索引方案依赖于最低有效位来形成标记,从而使得连续寻址的行用集合关联性高速缓存结构组织成连续集合。将这些常规编索引原理扩展到示范性实施例,将意味着可能需要在连续寻址的行上的连续未命中时打开新页,因为每一页已配置为一个集合。为了将与这些连续未命中相关联的负面影响减到最小,实施例可以利用标记的中间位来用于编索引,与最低有效位形成对比。因而,将确保连续寻址的行上的未命中可以落在相同DRAM页内,并且不需要连续打开多个DRAM页。
作为说明性实例,在示范性实施例中标记的13个位中的最低有效的6个位可用于在64字节行中寻址各个字节。因此,代替像在常规技术中那样使用最低有效位,在示范性实施例中可以使用位置8-29中的较高阶位编索引,这将有利于使连续寻址的行属于所述集合,由此使得连续寻址行上的未命中落在相同DRAM页内。虽然DRAM页高速缓存内的行的这种组织可能会增加一页中的各个行之间的冲突压力,但是这些组织将有利地改善等待时间。如将认识到,页202中的16个行已经经配置以形成15通道的高速缓存(行L1-L15;行L0用于元数据)。
基于在字段E0-E15中可用的未使用的元数据空间,在示范性实施例中可以包含其它有利方面。如已关于页202所描述,字段E0-E15中的每一者包括32个位。ECC位占据11个位,并且包含状态位(表示有效/脏/锁定状态)的标记信息占据13+3=16个位。这使得元数据字段中有5个位的未使用的空间。如先前描述,目录信息及其它高速缓存相干性相关信息可以存储在其余的5位元数据中。此外,在元数据字段中还可引入“有效”、“脏”及“锁定”位。有效及脏位可以辅助追踪及替换过时/修改的高速缓存行。有时,通过将相关DRAM高速缓存行指明为无效及锁定,可以恢复不良部分。还可在元数据字段中引入其它信息,例如用于促进更有效的替换策略或预取技术的信息。基于本文中提供的示范性描述,可在元数据字段中包含各种其它形式的智能,并且所属领域的技术人员将能够认识到合适的元数据配置。
另外,示范性实施例还可经配置以分别高速缓存元数据,从而使得可以快速检索与对应于所高速缓存的元数据的常常存取的高速缓存行有关的信息。实施方案可能涉及用于高速缓存这些元数据的单独的高速缓存结构,或者,这种高速缓存可以在例如DRAM系统200等DRAM系统的一个或一个以上页中执行。作为进一步的优化,基于对存储器系统执行的应用的性质,在已知打开页中的对应高速缓存行具有未来存取的高似然性时,可以仅高速缓存与当前已知打开的页有关的元数据。
通过示范性实施例的以上揭示,将看到一种基于页的存储器装置(例如图2中的DRAM系统200等)可以经配置以使得存储器装置的每一页(例如页202等)可以分成第一部分(举例来说,行L1-L15)及第二部分(例如,行L0等),从而使得第一部分包括数据,并且第二部分包括对应于第一部分中的数据的元数据。
还将了解,实施例包含用于执行本文揭示的过程、功能及/或算法的各种方法。举例来说,如图4中所图解说明,实施例可包含一种使用不具有专用元数据的基于页的存储器装置作为高速缓存的方法,包括:从存储器装置的页(例如,图2的页200)的元数据部分(例如,图2的第二部分202)读取元数据(例如,可包含地址标记或ECC位的字段E0-E15,如图2中所图解说明)(框402);以及基于元数据确定所述页的特性(举例来说,基于包括地址标记的元数据确定是否存在期望的信息,或基于包括ECC位的元数据确定在页中存在的数据中是否检测到错误—框404)。基于确定特性的结果,所述方法可以任选地包含采取进一步的行动,例如,在于页中存在期望的信息的情况下读取所述期望的信息,或者校正可能已经检测到的错误(未图示)。
此外,应了解,可以由主装置(例如处理核心等)通过宽输入/输出接口、硅穿孔(TSV)接口或堆叠接口存取例如DRAM系统200等低功率堆叠DRAM。
所属领域的技术人员将了解,可使用多种不同技术及技艺中的任一者来表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
此外,所属领域的技术人员将了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为清楚说明硬件与软件的此互换性,上文已大致关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。所述功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但所述实施方案决策不应被解释为会导致脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法、序列及/或算法可直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可驻存在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息并将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。
所以,本发明的一实施例可包含一种体现用于配置存储器装置以用作高速缓存的方法的计算机可读媒体。所以,本发明并不限于所说明的实例且用于执行本文中所描述的功能性的任何装置均包含在本发明的实施例中。
虽然前文的揭示内容展示了本发明的说明性实施例,但应注意,在不脱离如所附权利要求书所界定的本发明的范围的情况下,可在本文中进行各种变化及修改。无需以任何特定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤及/或动作。此外,尽管可能是用单数形式描述或主张本发明的元件,但除非明确陈述限于单数,否则也涵盖复数。

Claims (23)

1.一种不具有预先存在的专用元数据的存储器装置,其包括:
基于页的存储器,其中每一页分成第一部分及第二部分,从而使得所述第一部分包括数据,并且所述第二部分包括对应于所述第一部分中的所述数据的元数据,其中所述元数据内的位的相对放置是基于管线式存取次序,使得在两个或更多时钟循环内的所述元数据的位的管线式存取期间可在存取略不关键的位之前存取更关键的位以使得能够迅速确定已被打开以用于检查的特定页的有用性。
2.根据权利要求1所述的存储器装置,其中所述元数据仅对应于相同页中的数据。
3.根据权利要求1所述的存储器装置,其中所述元数据包括ECC信息。
4.根据权利要求1所述的存储器装置,其中所述元数据包括地址标记信息,且其中所述地址标记信息的一个或多个位的相对放置是基于通过所述地址标记信息的所述一个或多个位进行的在所述第一部分中的对应数据的存在的指示的似然性。
5.根据权利要求1所述的存储器装置,其中所述元数据包括目录信息、存储器相干性信息或脏/有效/锁定信息中的至少一者。
6.根据权利要求1所述的存储器装置,其中所述存储器装置经配置为高速缓存。
7.根据权利要求1所述的存储器装置,其中所述存储器装置通过宽输入/输出接口、硅穿孔TSV接口或堆叠接口中的至少一者耦合到主装置。
8.根据权利要求7所述的存储器装置,其中所述存储器装置是动态随机存取存储器DRAM装置。
9.根据权利要求1所述的存储器装置,其集成在至少一个半导体裸片中。
10.一种配置不具有预先存在的专用元数据的基于页的存储器装置的方法,所述方法包括:
从所述存储器装置的页的元数据部分读取元数据;
将所述元数据的位排序,使得所述元数据内的位的相对放置是基于管线式存取次序,使得在两个或更多时钟循环内的所述元数据的位的管线式存取期间可在存取略不关键的位之前存取更关键的位以使得能够迅速确定已被打开以用于检查的特定页的有用性;以及
基于所述元数据确定所述页的特性。
11.根据权利要求10所述的方法,其中确定所述特性包括确定所述页中是否存在期望的信息。
12.根据权利要求11所述的方法,其进一步包括在所述页中存在所述期望的信息的情况下从所述存储器装置读取所述期望的信息。
13.根据权利要求11所述的方法,其进一步包括在所述页中不存在所述期望的信息的情况下采取预定动作。
14.根据权利要求11所述的方法,其进一步包括基于所述元数据在所述期望的信息中检测错误。
15.根据权利要求11所述的方法,其中所述元数据包括地址标记,且其中所述地址标记的一个或多个位的相对放置是基于通过所述地址标记的所述一个或多个位进行的存储在所述页的数据部分中的对应数据的存在的指示的似然性。
16.根据权利要求15所述的方法,其中地址的中间位用于确定要打开的页。
17.根据权利要求16所述的方法,其中所述地址的最低有效位用作标记的一部分。
18.根据权利要求17所述的方法,其包括读取所述标记的一部分以及基于所述标记的所述部分采取预定动作。
19.根据权利要求10所述的方法,其中所述基于页的存储器装置是高速缓冲存储器装置。
20.根据权利要求19所述的方法,其包括在单独的高速缓存中存储所述元数据。
21.根据权利要求20所述的方法,其中仅用于打开页的元数据存储在所述单独的高速缓存中。
22.根据权利要求10所述的方法,其中
所述元数据包括与所述页的数据部分中的数据有关的错误校正码ECC;且
确定所述特性包括确定所述数据中是否存在错误。
23.一种存储器系统,其包括:
不具有预先存在的元数据的基于页的存储器装置,其中所述存储器装置的页包括第一存储装置及第二存储装置;
存储在所述第一存储装置中的元数据;以及
存储在所述第二存储装置中的数据,其中所述第一存储装置中的所述元数据与所述第二存储装置中的所述数据相关联,且其中所述元数据内的位的相对放置是基于管线式存取次序,使得在两个或更多时钟循环内的所述元数据的位的管线式存取期间可在存取略不关键的位之前存取更关键的位以使得能够迅速确定已被打开以用于检查的特定页的有用性。
CN201280028192.6A 2011-05-20 2012-05-21 具有存储在存储器页的一部分中的元数据的存储器 Expired - Fee Related CN103597450B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/112,132 US20120297256A1 (en) 2011-05-20 2011-05-20 Large Ram Cache
US13/112,132 2011-05-20
PCT/US2012/038794 WO2012162225A1 (en) 2011-05-20 2012-05-21 Memory with metadata stored in a portion of the memory pages

Publications (2)

Publication Number Publication Date
CN103597450A CN103597450A (zh) 2014-02-19
CN103597450B true CN103597450B (zh) 2018-03-27

Family

ID=46245618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280028192.6A Expired - Fee Related CN103597450B (zh) 2011-05-20 2012-05-21 具有存储在存储器页的一部分中的元数据的存储器

Country Status (6)

Country Link
US (1) US20120297256A1 (zh)
EP (1) EP2710472B1 (zh)
JP (1) JP5745168B2 (zh)
KR (1) KR101559023B1 (zh)
CN (1) CN103597450B (zh)
WO (1) WO2012162225A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US9208082B1 (en) * 2012-03-23 2015-12-08 David R. Cheriton Hardware-supported per-process metadata tags
KR102204391B1 (ko) 2014-08-18 2021-01-18 삼성전자주식회사 공유 가능한 ecc 셀 어레이를 갖는 메모리 장치
US10127101B2 (en) * 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
US10467092B2 (en) * 2016-03-30 2019-11-05 Qualcomm Incorporated Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
US10180906B2 (en) 2016-07-26 2019-01-15 Samsung Electronics Co., Ltd. HBM with in-memory cache manager
US10572389B2 (en) 2017-12-12 2020-02-25 Advanced Micro Devices, Inc. Cache control aware memory controller
US10761749B2 (en) * 2018-10-31 2020-09-01 Micron Technology, Inc. Vectorized processing level calibration in a memory component
US11403043B2 (en) * 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11287987B2 (en) * 2020-03-04 2022-03-29 Micron Technology, Inc. Coherency locking schemes
US11288188B1 (en) * 2021-01-21 2022-03-29 Qualcomm Incorporated Dynamic metadata relocation in memory
US11681620B2 (en) * 2021-07-23 2023-06-20 Advanced Micro Devices, Inc. Using error correction code (ECC) bits for retaining victim cache lines in a cache block in a cache memory
US11914472B2 (en) * 2022-07-13 2024-02-27 Dell Products L.P. Use of CXL expansion memory for metadata offload

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1243317A (zh) * 1998-07-28 2000-02-02 索尼公司 非易失存储器、记录装置和记录方法
CN1647048A (zh) * 2002-04-03 2005-07-27 威盛电子股份有限公司 用以跟踪内存存取的存储页管理装置及方法
CN101563722A (zh) * 2006-11-20 2009-10-21 寇平公司 用于低功率消耗应用的移位寄存器
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1154931C (zh) * 1995-08-04 2004-06-23 吴乾弥 流水线式-脉冲式-单指令多数据阵列处理结构及其方法
US5862154A (en) * 1997-01-03 1999-01-19 Micron Technology, Inc. Variable bit width cache memory architecture
US6687789B1 (en) * 2000-01-03 2004-02-03 Advanced Micro Devices, Inc. Cache which provides partial tags from non-predicted ways to direct search if way prediction misses
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US7526608B2 (en) * 2004-05-28 2009-04-28 Sony Computer Entertainment Inc. Methods and apparatus for providing a software implemented cache memory
JP4725181B2 (ja) * 2005-04-28 2011-07-13 アイシン・エィ・ダブリュ株式会社 ナビゲーションシステム及びキャッシュ管理方法
DE102005060901A1 (de) * 2005-12-20 2007-06-28 Robert Bosch Gmbh Verfahren zur Erkennung einer Versorgungsunterbrechung in einem Datenspeicher und zur Wiederherstellung des Datenspeichers
US8694714B2 (en) * 2008-01-18 2014-04-08 Spansion Llc Retargeting of a write operation retry in the event of a write operation failure
US8726126B2 (en) * 2010-03-23 2014-05-13 Apple Inc. Non-regular parity distribution detection via metadata tag

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1243317A (zh) * 1998-07-28 2000-02-02 索尼公司 非易失存储器、记录装置和记录方法
CN1647048A (zh) * 2002-04-03 2005-07-27 威盛电子股份有限公司 用以跟踪内存存取的存储页管理装置及方法
CN101563722A (zh) * 2006-11-20 2009-10-21 寇平公司 用于低功率消耗应用的移位寄存器
US7761740B2 (en) * 2007-12-13 2010-07-20 Spansion Llc Power safe translation table operation in flash memory

Also Published As

Publication number Publication date
JP5745168B2 (ja) 2015-07-08
KR101559023B1 (ko) 2015-10-08
WO2012162225A1 (en) 2012-11-29
US20120297256A1 (en) 2012-11-22
EP2710472B1 (en) 2018-10-10
KR20140012186A (ko) 2014-01-29
EP2710472A1 (en) 2014-03-26
JP2014517394A (ja) 2014-07-17
CN103597450A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
CN103597450B (zh) 具有存储在存储器页的一部分中的元数据的存储器
CN105242871B (zh) 一种数据写入方法及装置
US9235514B2 (en) Predicting outcomes for memory requests in a cache memory
US9563658B2 (en) Hardware implementation of the aggregation/group by operation: hash-table method
CN105701033B (zh) 取决于模式而可动态配置的高速缓存存储器
CN103729303B (zh) 一种Flash的数据写入和读取方法
EP3907627A1 (en) Technologies for performing stochastic similarity searches in an online clustering space
CN107111455A (zh) 使用虚拟地址的缓存访问
US20150356024A1 (en) Translation Lookaside Buffer
CN101292228A (zh) 转换后备缓冲器的锁定指示符
CN104160398B (zh) 用于大对象数据内的结构化内容的方法及其系统
US9183055B2 (en) Selecting a resource from a set of resources for performing an operation
CN109815167A (zh) 用于高效虚拟标记的高速缓存实现的系统和方法
US10901640B2 (en) Memory access system and method
TW201643724A (zh) 非對稱設置組合式快取記憶體
CN103336828B (zh) 实时数据库读取及写入方法
CN107315746A (zh) 基于非易失性主存的高效事务文件系统构建方法
CN111316255A (zh) 数据存储系统以及用于提供数据存储系统的方法
US20150212744A1 (en) Method and system of eviction stage population of a flash memory cache of a multilayer cache system
CN107203341A (zh) 基于闪存的数据存储方法、装置以及闪存芯片
KR20190030189A (ko) 캐시 스토리지
CN102650972A (zh) 数据存储方法、装置及系统
CN105045894A (zh) 一种面向分布式顺序表的缓存方法及系统
US20140013054A1 (en) Storing data structures in cache
CN103077133B (zh) 提供可变长度高速缓存线的高速缓存器控制器及方法

Legal Events

Date Code Title Description
C06 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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180327

Termination date: 20210521

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