CN108780424A - 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 - Google Patents

提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 Download PDF

Info

Publication number
CN108780424A
CN108780424A CN201780016893.0A CN201780016893A CN108780424A CN 108780424 A CN108780424 A CN 108780424A CN 201780016893 A CN201780016893 A CN 201780016893A CN 108780424 A CN108780424 A CN 108780424A
Authority
CN
China
Prior art keywords
cache
data
bar purpose
dram
error
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.)
Granted
Application number
CN201780016893.0A
Other languages
English (en)
Other versions
CN108780424B (zh
Inventor
N·瓦伊德亚纳坦
M·C·A·A·黑德斯
C·B·韦里利
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 CN108780424A publication Critical patent/CN108780424A/zh
Application granted granted Critical
Publication of CN108780424B publication Critical patent/CN108780424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • 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
    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明为提供用于动态随机存取存储器DRAM高速缓存标记的空间高效存储。在一个方面,DRAM高速缓存管理电路提供多个高速缓存条目,其每一者含有标记存储区域、数据存储区域及错误保护区域。所述DRAM高速缓存管理电路经配置以将待高速缓存的数据存储在每一高速缓存条目的所述数据存储区域中。所述DRAM高速缓存管理电路还经配置为使用错误检测码EDC而非错误校正码ECC且将每一高速缓存条目的标记及所述EDC存储于所述高速缓存条目的所述错误保护区域中。以此方式,可通过避免对于每一高速缓存条目的所述标记存储区域的需要,同时仍提供对于所述高速缓存条目的错误检测来增加DRAM高速缓存的容量。

Description

提供用于动态随机存取存储器DRAM高速缓存标记的空间高效 存储
优先权申请
本申请要求保护2016年3月30日申请且名为“提供用于动态随机存取存储器DRAM高速缓存标记的空间高效存储(PROVIDING SPACE-EFFICIENT STORAGE FOR DYNAMICRANDOM ACCESS MEMORY(DRAM)CACHE TAGS)”的美国专利申请案第15/085,350号的优先权,所述专利申请案以全文引用的方式并入本文中。
技术领域
本发明的技术大体上涉及动态随机存取存储器(DRAM)管理,且具体来说,涉及DRAM高速缓存的管理。
背景技术
由竖直互连的多个堆叠裸片构成的裸片堆叠集成电路(IC)的出现实现了裸片堆叠动态随机存取存储器(DRAM)的产生。裸片堆叠DRAM可用于实施在本文中被称作“高带宽存储器”的事物。高带宽存储器相比常规系统存储器DRAM提供更大的带宽,同时提供类似存取时延。在一些实施方案中,高带宽存储器还可为“近(near)”存储器或物理位置相比其它系统存储器DRAM更接近存储器接口的存储器。高带宽存储器可用于实施DRAM高速缓存以存储先前从系统存储器DRAM读取且从高级高速缓存(例如,作为非限制性实例,3级(L3)高速缓存)中收回的频繁存取的数据。在高带宽存储器中提供DRAM高速缓存可以减少系统存储器DRAM上的存储器争用,并因此实际上增加了整体存储器带宽。
如同其它常规高速缓存,DRAM高速缓存内的每一高速缓存条目包含标记存储区域、数据存储区域及错误保护区域。标记存储区域可用于存储标记,所述标记充当高速缓存条目的唯一识别符。经高速缓存的数据存储于高速缓存条目的数据存储区域中,同时错误保护区域可存储错误校正码(ECC),其使得DRAM高速缓存能够检测并校正高速缓存条目内的经高速缓存的数据的损坏。作为非限制性实例,ECC可包含单一错误校正及双重错误检测(SECDED)码,使得DRAM高速缓存能够校正经高速缓存的数据内的一位错误并检测经高速缓存的数据内的双位错误。
然而,可存储于DRAM高速缓存内的数据的量可受到专用于标记存储的DRAM高速缓存的量的负面影响。举例来说,在每一高速缓存条目为64字节长的DRAM高速缓存实施方案中,每一标记的大小可为五(5)个字节,因此消耗可供DRAM高速缓存使用的存储器的近百分之八(8)。DRAM高速缓存实施方案的存储器存取粒度可由于导致标记占据高速缓存条目的超过五(5)个字节而加剧此问题。因此,需要提供用于存储DRAM高速缓存标记的空间高效机制以增加DRAM高速缓存的有效存储器容量。
发明内容
实施方式中揭示的各方面包含提供用于动态随机存取存储器(DRAM)高速缓存标记的空间高效存储。在一些方面中,提供DRAM高速缓存管理电路以管理对为高带宽存储器的一部分的DRAM高速缓存的存取。DRAM高速缓存包含多个高速缓存条目,其每一者含有标记存储区域、数据存储区域及错误保护区域。在DRAM高速缓存的一些方面中,标记存储区域可为五(5)个字节长,数据存储区域可为64个字节长,且错误保护区域可为八(8)个字节长。在一些方面,标记存储区域可大于或小于五(5)个字节,而一些方面可提供数据存储区域更大或更小(例如,作为非限制性实例,32个字节或128个字节),其中错误保护区域具有相对应尺寸。DRAM高速缓存管理电路经配置以将待高速缓存的数据存储在每一高速缓存条目的数据存储区域中。DRAM高速缓存管理电路还经配置为使用错误检测码(EDC)而非错误校正码(ECC),且将每一高速缓存条目的标记及EDC存储于高速缓存条目的错误保护区域中。作为非限制性实例,EDC可包括占据11个位的循环冗余检查(CRC),其中高速缓存条目的错误保护区域的剩余53个位用于存储高速缓存条目的标记及/或与存储于高速缓存条目中的数据相关的元数据(例如,作为非限制性实例,压缩及/或安全属性)。以此方式,可通过消除或减小每一高速缓存条目的标记存储区域的尺寸同时仍提供对于高速缓存条目的错误检测来增加DRAM高速缓存的容量。
DRAM高速缓存管理电路的其它方面可经配置为以通写模式或回写模式操作。在以通写模式操作的DRAM高速缓存管理电路的各方面中,存储于DRAM高速缓存中的数据也写入到由ECC保护的系统存储器DRAM,由此保证DRAM高速缓存与系统存储器DRAM始终同步,且系统存储器DRAM含有未损坏数据。因此,如果高速缓存条目的EDC指示已在存储于高速缓存条目中的数据内检测到错误,那么DRAM高速缓存管理电路可读取系统存储器DRAM中对应于高速缓存条目的存储行,以获得未损坏数据。在以回写模式操作的DRAM高速缓存管理电路的各方面中,DRAM高速缓存管理电路可进一步提供对应于DRAM高速缓存的多个高速缓存条目的多个脏指示符。在存取高速缓存条目时,DRAM高速缓存管理电路可使用高速缓存条目的脏指示符来确定高速缓存条目是否存储干净(即,未修改的)或脏(即,经修改的)数据。DRAM高速缓存管理电路可采用标记存储区域,其使用如上文所描述的存储干净数据的高速缓存条目的EDC。对于存储脏数据的高速缓存条目来说,DRAM高速缓存管理电路可如同常规高速缓存一般来使用ECC。DRAM高速缓存管理电路还可将误码指示符存储于每一高速缓存条目的错误保护区域内,以指示所述高速缓存条目是使用EDC还是ECC来进行错误检测。
在另一方面中,提供一种基于处理器的系统。所述基于处理器的系统包括DRAM高速缓存,其为高带宽存储器的一部分。DRAM高速缓存包括多个各自提供数据存储区域及错误保护区域的高速缓存条目。所述基于处理器的系统进一步包括DRAM高速缓存管理电路,其位于所述基于处理器的系统的计算裸片上并以通信方式耦合到DRAM高速缓存。所述DRAM高速缓存管理电路经配置以将待高速缓存的数据写入所述DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中。所述DRAM高速缓存管理电路进一步经配置以将所述高速缓存条目的标记及EDC写入所述高速缓存条目的错误保护区域中。
在另一方面中,提供一种包含DRAM高速缓存管理电路的基于处理器的系统。所述DRAM高速缓存管理电路包括用于将待高速缓存的数据写入DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中的装置,所述DRAM高速缓存为高带宽存储器的一部分。所述DRAM高速缓存管理电路进一步包括用于将高速缓存条目的标记及EDC写入所述高速缓存条目的错误保护区域中的装置。
在另一方面中,一种用于在DRAM高速缓存中提供DRAM高速缓存标记的空间高效存储的方法。所述方法包括通过DRAM高速缓存管理电路将待高速缓存的数据写入DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中,所述DRAM高速缓存为高带宽存储器的一部分。所述方法进一步包括将高速缓存条目的标记及EDC写入所述高速缓存条目的错误保护区域中。
在另一方面中,提供一种非暂时性计算机可读媒体。非暂时性计算机可读媒体存储计算机可执行指令,所述计算机可执行指令在由处理器执行时致使所述处理器将待高速缓存的数据写入DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中,所述DRAM高速缓存为高带宽存储器的一部分。非暂时性计算机可读媒体进一步存储计算机可执行指令,所述计算机可执行指令在由处理器执行时致使所述处理器将高速缓存条目的标记及EDC写入所述高速缓存条目的错误保护区域中。
附图说明
图1为包含提供动态随机存取存储器(DRAM)高速缓存的高带宽存储器及用于存取DRAM高速缓存的常规DRAM高速缓存管理电路的示范性基于处理器的系统的框图;
图2为包含DRAM高速缓存管理电路的示范性基于处理器的系统的框图,所述DRAM高速缓存管理电路经配置以提供DRAM高速缓存内的DRAM高速缓存标记的空间高效存储。
图3为说明图2的用于使用图1的DRAM高速缓存执行存储器写入操作的DRAM高速缓存管理电路的示范性操作的流程图;
图4为说明图2的用于使用图1的DRAM高速缓存执行存储器读取操作的DRAM高速缓存管理电路的示范性操作的流程图;
图5A及5B为说明图2的用于以回写模式执行存储器写入操作的DRAM高速缓存管理电路的示范性操作的流程图;
图6为说明图2的用于以回写模式执行存储器读取操作的DRAM高速缓存管理电路的示范性操作的流程图;及
图7为可包含图2的DRAM高速缓存管理电路的示范性基于处理器的系统的框图。
具体实施方式
现参考各图,描述本发明的数个示范性方面。词语“示范性”在本文中用于意指“充当实例、例子或说明”。本文中描述为“示范性”的任何方面不必解释为比其它方面优选或有利。
实施方式中揭示的各方面包含提供用于动态随机存取存储器(DRAM)高速缓存标记的空间高效存储。就此而言,在一些方面,提供一种DRAM高速缓存管理电路。DRAM高速缓存管理电路经配置以将待高速缓存的数据存储于DRAM高速缓存内的每一高速缓存条目的数据存储区域中。所述DRAM高速缓存管理电路还配置为使用错误检测码(EDC)而非错误校正码(ECC),且将每一高速缓存条目的标记及EDC存储于高速缓存条目的错误保护区域中。以此方式,可消除或减少对于每一高速缓存条目的标记存储区域的需要,由此增加DRAM高速缓存的有效存储器容量,同时仍提供错误检测能力。
在论述用于提供空间高效DRAM高速缓存标记的DRAM高速缓存管理电路的示范性元件及操作之前,描述常规DRAM高速缓存的结构。相应地,就此而言,图1为基于处理器的系统100的框图,所述基于处理器的系统100提供用于管理为高带宽存储器106的一部分的DRAM高速缓存104的DRAM高速缓存管理电路102。基于处理器的系统100包含系统存储器DRAM 108,在一些方面中,所述系统存储器DRAM 108可包括一或多个双列直插式存储器模块(DIMM)。系统存储器DRAM 108经细分为其中存储数据的存储行110(0)-110(Y)。基于处理器的系统100进一步提供其上定位高级高速缓存114的计算裸片112。在一些方面中,作为非限制性实例,高级高速缓存114可包括3级(L3)高速缓存。DRAM高速缓存管理电路102位于计算裸片112上且以通信方式耦合到高带宽存储器106及系统存储器DRAM 108,如由双向箭头116及118所指示。DRAM高速缓存管理电路102还可通过高级高速缓存114读取且写入,如由双向箭头120所指示。
图1的基于处理器的系统100可涵盖已知数字逻辑元件、半导体电路、处理核心和/或存储器结构以及其它元件中的任一个,或其组合。本文中所描述的各方面并不限于任何特定元件布置,且所揭示技术可容易地延伸到半导体裸片或封装上的各种结构和布局。应理解,基于处理器的系统100的一些方面可包含除图1中所说明的那些元件之外的元件。
为改进存储器带宽,基于处理器的系统100的高带宽存储器106内的DRAM高速缓存104可由DRAM高速缓存管理电路102用来高速缓存先前从系统存储器DRAM 108的存储行110(0)-110(Y)中的一或多者读取及/或从高级高速缓存114收回的数据(图中未展示)。作为非限制性实例,一些方面可提供仅在从系统存储器DRAM 108读取数据之后才可将数据高速缓存在DRAM高速缓存104中,而在一些方面中,仅在从高级高速缓存114收回数据时才可将数据高速缓存在DRAM高速缓存104中。根据一些方面,可在从系统存储器DRAM 108读取数据以通过处理器负载触发读取和从高级高速缓存114进行脏收回之后将数据高速缓存在DRAM高速缓存104中。
可独立于系统存储器DRAM 108来存取高带宽存储器106内的DRAM高速缓存104。因此,存储器带宽可通过同时从DRAM高速缓存104和系统存储器DRAM 108两者进行读取而有效地增加。在一些方面中,DRAM高速缓存104可实施随机替换策略来确定用于在DRAM高速缓存104内收回的候选。
DRAM高速缓存104提供其中可存储经高速缓存的数据的多个高速缓存条目122(0)-122(X)。高速缓存条目122(0)-122(X)中的每一者由标记存储区域124、数据存储区域126及错误保护区域128构成。应理解,仅为说明起见,在图1中将标记存储区域124、数据存储区域126及错误保护区域128展示为经连续存储。在一些方面中,标记存储区域124、数据存储区域126及错误保护区域128可实施为单独数据结构或存储器区域。根据DRAM高速缓存104的一些方面,高速缓存条目122(0)-122(X)中的每一者与占据五(5)个字节的标记存储区域124、占据64个字节的数据存储区域126及占据八(8)个字节的错误保护区域128相关联。应理解,在一些方面中,标记存储区域124可大于或小于图1的实例中所示的标记存储区域。应进一步理解,根据一些方面的数据存储区域126可大于或小于图1的实例中所示的数据存储区域(例如,作为非限制性实例,32个字节或128个字节),其中错误保护区域128具有相对应尺寸。
高速缓存条目122(0)-122(X)的标记存储区域124常规用于存储对应的标记130(0)-130(X),其充当高速缓存条目122(0)-122(X)的唯一识别符。数据132(0)-132(X)存储于高速缓存条目122(0)-122(X)的数据存储区域126中。高速缓存条目122(0)-122(X)的错误保护区域128可存储ECC 134(0)-134(X),所述ECC 134(0)-134(X)使得能够检测及校正高速缓存条目122(0)-122(X)内的数据132(0)-132(X)的损坏。作为非限制性实例,ECC 134(0)-134(X)各自可包含单一错误校正及双重错误检测(SECDED)代码,其使得能够校正对应数据132(0)-132(X)内的一位错误并检测数据132(0)-132(X)内的双位错误。
然而,可存储于DRAM高速缓存104内的数据132(0)-132(X)的量可由专用于存储标记130(0)-130(X)的DRAM高速缓存104的量限制。举例来说,在高速缓存条目122(0)-122(X)中的每一者为64字节长的DRAM高速缓存104的实施方案中,标记130(0)-130(X)中的每一者可大至五(5)个字节,因此消耗可供DRAM高速缓存104使用的存储器的近百分之八(8)。在DRAM高速缓存104的存储器存取粒度大于五(5)个字节的DRAM高速缓存104的各方面中,标记130(0)-130(X)中的每一者可实际上占据其对应高速缓存条目122(0)-122(X)的超过五(5)个字节。因此,需要提供用于存储标记130(0)-130(X)的空间高效机制以增加DRAM高速缓存104的有效存储器容量。
就此而言,提供图2以说明包含DRAM高速缓存管理电路202的示范性基于处理器的系统200,所述DRAM高速缓存管理电路202经配置以提供DRAM高速缓存104内的标记130(0)-130(X)的空间高效存储。为清楚起见,在描述图2时参考图1的元件。如图2中所见,DRAM高速缓存管理电路202经配置以改变错误保护区域128的用途,以提供用于数据132(0)-132(X)的更大存储容量及标记130(0)-130(X)的更高效存储。为实现这些目标,DRAM高速缓存管理电路202依赖于EDC 204(0)-204(X)而非图1的ECC 134(0)-134(X),以用于检测存储于高速缓存条目122(0)-122(X)中的数据132(0)-132(X)中的错误。作为非限制性实例,EDC 204(0)-204(X)可包括占据11个位的循环冗余检查(CRC)。因为EDC 204(0)-204(X)中的每一者比ECC 134(0)-134(X)小得多(例如,在一些方面中,11个位相对于64个位),所以DRAM高速缓存管理电路202可将相对应的高速缓存条目122(0)-122(X)的EDC 204(0)-204(X)及标记130(0)-130(X)两者存储于错误保护区域128中。以此方式,DRAM高速缓存管理电路202可避免或减少提供图1的标记存储区域124的需要,由此有效增加DRAM高速缓存104的容量。
不同于ECC 134(0)-134(X),EDC 204(0)-204(X)不可用于校正数据132(0)-132(X)中检测到的错误,而是仅用于检测此类错误。在检测到高速缓存条目122(0)-122(X)中的一者内的错误后,DRAM高速缓存管理电路202可从系统存储器DRAM 108中读取对应于高速缓存条目122(0)-122(X)的存储行110(0)-110(Y)中的一者,以检索未损坏数据。出于此原因,在DRAM高速缓存管理电路202的一些方面中,可能仅在将已知为干净的数据写入到DRAM高速缓存104时使用图2中所说明的实例。举例来说,DRAM高速缓存管理电路202的一些方面可经配置为以通写模式操作,其中还将存储于DRAM高速缓存104中的所有数据写入到系统存储器DRAM 108。因为DRAM高速缓存104与系统存储器DRAM 108始终同步,所以图2中所说明的实例可用于所有写入到DRAM高速缓存104及从DRAM高速缓存104读取的数据132(0)-132(X)。
在以回写模式操作的DRAM高速缓存管理电路202的各方面中,存储于DRAM高速缓存104的每一高速缓存条目122(0)-122(X)中的数据132(0)-132(X)可为干净或脏的。因此,在这些方面中,DRAM高速缓存管理电路202可提供对应于DRAM高速缓存104的多个高速缓存条目122(0)-122(X)的多个脏指示符206(0)-206(X)。在写入到DRAM高速缓存104的高速缓存条目122(0)-122(X)(例如高速缓存条目122(0))时,DRAM高速缓存管理电路202可确定待写入的数据132(0)是干净的(例如,从系统存储器DRAM 108读取的数据132(0)及/或从高级高速缓存114收回的干净数据132(0))还是脏的(例如,从高级高速缓存114收回的脏数据132(0))。因此,DRAM高速缓存管理电路202可接着设置对应于高速缓存条目122(0)的脏指示符206(0)。如果数据132(0)是干净的,那么数据132(0)、标记130(0)及EDC 204(0)可存储于高速缓存条目122(0)中,如图2中所说明。然而,如果数据132(0)是脏的,那么数据132(0)、标记130(0)及EDC 134(0)可以常规方式存储于高速缓存条目122(0)中,如图1中所示。在从DRAM高速缓存104中读取高速缓存条目122(0)时,脏指示符206(0)-206(X)还可由DRAM高速缓存管理电路202用来确定数据132(0)及标记130(0)以何种方式存储于高速缓存条目122(0)中,并指示哪种形式的错误保护(EDC 204(0)或ECC 134(0))用于高速缓存条目122(0)。
在基于处理器的系统200的一些方面中,由基于处理器的系统200执行及存取DRAM高速缓存104的其它处理程序可能需要用于确定哪种形式的错误保护用于DRAM高速缓存104的每一高速缓存条目122(0)-122(X)的机制。作为非限制性实例,基于处理器的系统200可提供“清除”处理程序(图中未展示),其定期或不断运行以检查高速缓存条目122(0)-122(X)的一位数据错误并校正任何检测到的错误。为方便此处理程序,DRAM高速缓存104的每一高速缓存条目122(0)-122(X)可存储相对应的误码指示符(IND)208(0)-208(X),以指示高速缓存条目122(0)-122(X)是使用EDC 204(0)-204(X)还是ECC 134(0)-134(X)来进行错误检测。
根据一些方面,DRAM高速缓存管理电路202可经配置以使用里德-所罗门码作为ECC 134(0)-134(X)。在使用ECC 134(0)-134(X)的各方面中,里德-所罗门码可小于其它常规ECC代码,且因此可提供在错误保护区域128内的附加位,以存储误码指示符208(0)-208(X)。在一些方面中,误码指示符208(0)-208(X)中的每一者可包括奇数个全部设置成同一值的多个位(图中未展示)。如果奇数个的多个位中的一者被损坏,那么仍可以通过多个位中的大部分的值来确定错误保护的形式。
图3为说明图2的用于使用图1的DRAM高速缓存104执行存储器写入操作的DRAM高速缓存管理电路202的示范性操作的流程图。为清楚起见,在描述图3时参考图1及2的元件。在图3中,操作开始于DRAM高速缓存管理电路202将待高速缓存的数据132(0)写入为高带宽存储器106的一部分的DRAM高速缓存104的多个高速缓存条目122(0)-122(X)中的高速缓存条目122(0)的数据存储区域126中(框300)。就此而言,DRAM高速缓存管理电路202可在本文中被称作“用于将待高速缓存的数据写入为高带宽存储器的一部分的DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中的装置”。DRAM高速缓存管理电路202接着将高速缓存条目122(0)的标记130(0)及EDC 204(0)写入到高速缓存条目122(0)的错误保护区域128中(框302)。因此,DRAM高速缓存管理电路202可在本文中被称作“用于将高速缓存条目的标记及EDC写入高速缓存条目的错误保护区域中的装置”。以此方式,DRAM高速缓存管理电路202提供标记130(0)的空间高效存储,同时增加DRAM高速缓存104的存储器容量。
如上文所描述,在执行已知为干净的数据132(0)的写入时,例如在以通写模式操作时,DRAM高速缓存管理电路202的一些方面可采用图3的操作。在实施通写模式的一方面中,DRAM高速缓存管理电路202进一步将待高速缓存的数据132(0)连同所述数据132(0)的ECC写入到系统存储器DRAM 108(框304)。以此方式,DRAM高速缓存104与系统存储器DRAM108的内容始终同步,其中系统存储器DRAM 108含有未损坏数据。
为说明图2的用于使用图1的DRAM高速缓存104来执行存储器读取操作的DRAM高速缓存管理电路202的示范性操作,提供图4。为清楚起见,在描述图4时参考图1及2的元件。图4中的操作开始于DRAM高速缓存管理电路202读取DRAM高速缓存104的多个高速缓存条目122(0)-122(X)中的高速缓存条目122(0)(框400)。DRAM高速缓存管理电路202接着确定高速缓存条目122(0)的错误保护区域128中的EDC 204(0)是否指示数据错误(框402)。如果EDC 204(0)指示数据错误,那么DRAM高速缓存管理电路202可从系统存储器DRAM 108读取对应于高速缓存条目122(0)的存储行110(0)(框404)。因为系统存储器DRAM 108由ECC保护,所以数据132(0)的未损坏副本可获自系统存储器DRAM 108。以此方式,可针对未发生数据损坏的更常见情况优化DRAM高速缓存管理电路202的性能,而当在数据损坏的相对不常见情况下从系统存储器DRAM 108读取时会导致损失。
DRAM高速缓存管理电路202接着继续处理数据132(0)(例如,通过将数据132(0)提供到请求高速缓存或处理程序)(框406)。如果DRAM高速缓存管理电路202在决策块402处确定EDC 204(0)并不指示数据错误,那么恢复框406处的处理。如同图3,在执行已知为干净的数据132(0)的读取时,DRAM高速缓存管理电路202的一些方面可采用图4的操作。
图5A及5B为说明图2的DRAM高速缓存管理电路202在经配置为以回写模式操作时执行存储器写入操作的示范性操作的流程图。为清楚起见,在描述图5A及5B时参考图1及2的元件。现参考图5A,操作开始于DRAM高速缓存管理电路202确定待高速缓存的数据132(0)是否已经修改(框500)。作为非限制性实例,待高速缓存的数据132(0)可包括从高级高速缓存114收回的脏数据132(0)。如果数据132(0)已经修改(即,数据132(0)是脏的),那么DRAM高速缓存管理电路202继续进行类似于常规写入操作的存储器写入操作。DRAM高速缓存管理电路202将待高速缓存的数据132(0)写入DRAM高速缓存104的多个高速缓存条目122(0)-122(X)中的高速缓存条目122(0)的数据存储区域126中(框502)。DRAM高速缓存管理电路202接下来将高速缓存条目122(0)的标记130(0)写入高速缓存条目122(0)的标记存储区域124中(框504)。DRAM高速缓存管理电路202还将高速缓存条目122(0)的ECC 134(0)写入高速缓存条目122(0)的错误保护区域128中(框506)。在一些方面中,DRAM高速缓存管理电路202可通过写入里德-所罗门码(框508)来执行框506的用于写入ECC 134(0)的操作。DRAM高速缓存管理电路202接着设置DRAM高速缓存管理电路202的多个脏指示符206(0)-206(X)中对应于高速缓存条目122(0)的脏指示符206(0),以指示高速缓存条目122(0)含有经修改数据132(0)(框510)。接着恢复图5B的框514处的处理。
现转到图5B,如果DRAM高速缓存管理电路202在图5A的决策块500处确定数据132(0)尚未经修改(即,数据132(0)是干净的),那么DRAM高速缓存管理电路202继续进行类似于图3中所示的操作的存储器写入操作。DRAM高速缓存管理电路202将待高速缓存的数据132(0)写入DRAM高速缓存104的多个高速缓存条目122(0)-122(X)中的高速缓存条目122(0)的数据存储区域126中(框516)。DRAM高速缓存管理电路202接下来将高速缓存条目122(0)的标记130(0)及EDC 204(0)写入高速缓存条目122(0)的错误保护区域128中(框518)。DRAM高速缓存管理电路202接着设置多个脏指示符206(0)-206(X)中对应于高速缓存条目122(0)的脏指示符206(0),以指示高速缓存条目122(0)含有未经修改的数据132(0)(框520)。在一些方面中,DRAM高速缓存管理电路202还可将误码指示符208(0)写入高速缓存条目122(0)的错误保护区域128中,指示高速缓存条目122(0)的错误保护区域128是否含有高速缓存条目122(0)的EDC 204(0)或ECC 134(0)(框514)。
为说明图2的DRAM高速缓存管理电路202在经配置为以回写模式操作时执行存储器读取操作的示范性操作,提供图6。为清楚起见,在描述图6时参考图1及2的元件。在图6中,操作开始于DRAM高速缓存管理电路202读取DRAM高速缓存104的多个高速缓存条目122(0)-122(X)中的高速缓存条目122(0)(框600)。DRAM高速缓存管理电路202基于多个脏指示符206(0)-206(X)中对应于高速缓存条目122(0)的脏指示符206(0)来确定所述高速缓存条目122(0)是否含有经修改数据132(0)(即,脏数据132(0))(框602)。如果高速缓存条目122(0)不含经修改数据132(0),那么DRAM高速缓存管理电路202接下来确定高速缓存条目122(0)的错误保护区域128中的EDC 204(0)是否指示数据错误(框604)。若为否,则恢复框608处的处理。然而,如果DRAM高速缓存管理电路202在决策块604处确定高速缓存条目122(0)的错误保护区域128中的EDC 204(0)指示数据错误,那么DRAM高速缓存管理电路202从系统存储器DRAM 108读取对应于高速缓存条目122(0)的存储行110(0)(框606)。以此方式,数据132(0)的未损坏副本可获自系统存储器DRAM 108。DRAM高速缓存管理电路202接着继续处理数据132(0)(例如,通过将数据132(0)提供到请求高速缓存或处理程序)(框608)。
如果DRAM高速缓存管理电路202在决策块602处确定高速缓存条目122(0)含有经修改数据132(0),那么DRAM高速缓存管理电路202接着确定高速缓存条目122(0)的错误保护区域128中的ECC 134(0)是否指示数据错误(框610)。若为否,则恢复框608处的处理。如果DRAM高速缓存管理电路202在决策块610处确定高速缓存条目122(0)的错误保护区域128中的ECC 134(0)的确指示数据错误,那么DRAM高速缓存管理电路202确定数据错误是否为可校正的(例如,可通过SECDED ECC 134(0)校正的一位错误)(框612)。如果数据错误无法校正,那么DRAM管理电路202可产生中断以指示发生了不可校正的错误(框613)。然而,如果数据错误是可校正的,那么DRAM高速缓存管理电路202基于ECC 134(0)来校正所述数据错误(框614)。接着恢复框608处的处理。
根据本文所揭示的各方面的提供用于DRAM高速缓存标记的空间高效存储可提供于或集成到任何基于处理器的装置中。实例包含但不限于机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、智能电话、平板计算机、平板手机、服务器、计算机、便携式计算机、台式计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、收音机、卫星收音机、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频光盘(DVD)播放器、便携式数字视频播放器和机动车。
就此而言,图7说明基于处理器的系统700的实例,所述基于处理器的系统700可采用图1中所说明的用于管理为高带宽存储器(HBM)106的一部分的DRAM高速缓存104的DRAM高速缓存管理电路(DCMC)102。基于处理器的系统700包含图1的计算裸片112,其上提供一或多个各自包含一或多个处理器704的中央处理单元(CPU)702。CPU 702可具有耦合到处理器704以用于快速存取临时存储的数据的高速缓存存储器706。CPU 702耦合到系统总线708,且可将基于处理器的系统700中所包含的主控装置与从属装置互相耦合。如众所周知的,CPU 702与这些其它装置通过在系统总线708上交换地址、控制及数据信息进行通信。举例来说,CPU 702可将总线事务请求传送到存储器控制器710(作为从属装置的实例)。
其它主控装置和从属装置可连接到系统总线708。如图7中所说明,作为实例,这些装置可包含存储器系统712、一或多个输入装置714、一或多个输出装置716、一或多个网络接口装置718以及一或多个显示器控制器720。输入装置714可包含任何类型的输入装置,包含(但不限于)输入按键、开关、语音处理器等。输出装置716可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置718可为经配置以允许将数据交换到网络722并从网络722交换数据的任何装置。网络722可为任何类型的网络,包含(但不限于)有线或无线网络、私用或公用网络、局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、BLUETOOTHTM网络和因特网。网络接口装置718可经配置成支持所要的任何类型的通信协议。存储器系统712可包含一或多个存储器单元724(0)-724(N)。
CPU 702还可经配置以经由系统总线708存取显示器控制器720以控制发送到一或多个显示器726的信息。显示器控制器720将信息发送到显示器726,以经由一或多个视频处理器728显示,所述视频处理器728处理将显示成适合于显示器726的格式的信息。显示器726可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
所属领域的技术人员将进一步了解,结合本文中所揭示的各方面所描述的各种说明性逻辑块、模块、电路和算法可实施为电子硬件、存储于存储器中或另一计算机可读媒体中且由处理器或其它处理装置执行的指令,或此两者的组合。作为实例,本文所描述的主控装置和从属装置可用于任何电路、硬件组件、集成电路(IC)或IC芯片中。本文所揭示的存储器可为任何类型及大小的存储器,并且可经配置以存储所要的任何类型的信息。为清楚说明此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路和步骤。如何实施此功能性取决于特定应用、设计选项和/或强加于整个系统的设计约束。本领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但这样的实施决策不应被解释为会引起脱离本发明的范围。
结合本文中所揭示的各方面所描述的各种说明性逻辑块、模块和电路可用以下来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文中所描述的功能的任何组合。处理器可以是微处理器,但在替代例中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置)。
本文中所揭示的各方面可以硬件和存储在硬件中的指令来体现,且可驻留于例如随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示范性存储媒体耦合到处理器,使得处理器可以从存储媒体读取信息且将信息写入所述存储媒体。在替代例中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留在ASIC中。ASIC可驻留在远程站中。在替代例中,处理器和存储媒体可作为离散组件驻留在远程站、基站或服务器中。
还应注意,描述本文中的示范性方面中的任一者中所描述的操作步骤是为了提供实例和论述。可以用除了所说明的顺序之外的大量不同顺序执行所描述的操作。另外,在单个操作步骤中描述的操作实际上可以在数个不同步骤中执行。另外,可组合在示范性方面中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将易于显而易见,流程图中所说明的操作步骤可以经受大量不同修改。所属领域的技术人员还将了解,可使用多种不同技术和技法中的任一来表示信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个以上描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
提供本发明的先前描述以使得本领域的技术人员能够制造或使用本发明。所属领域的技术人员将易于显而易见对本发明的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本发明的精神或范围。因此,本发明并不希望限于本文中所描述的实例及设计,而应被赋予与本文中所揭示的原理及新颖特征相一致的最广范围。

Claims (20)

1.一种基于处理器的系统,其包括:
动态随机存取存储器DRAM高速缓存,其为高带宽存储器的一部分,所述DRAM高速缓存包括多个各自提供数据存储区域及错误保护区域的高速缓存条目;及
DRAM高速缓存管理电路,其位于所述基于处理器的系统的计算裸片上并以通信方式耦合到所述DRAM高速缓存;
所述DRAM高速缓存管理电路经配置以:
将待高速缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目的高速缓存条目的所述数据存储区域中;及
将所述高速缓存条目的标记及错误检测码EDC写入所述高速缓存条目的所述错误保护区域中。
2.根据权利要求1所述的基于处理器的系统,其中所述DRAM高速缓存管理电路经配置为以通写模式操作。
3.根据权利要求2所述的基于处理器的系统,其中所述DRAM高速缓存管理电路进一步经配置以:
读取所述DRAM高速缓存的所述多个高速缓存条目的所述高速缓存条目;
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC指示数据错误,从系统存储器DRAM读取对应于所述高速缓存条目的存储行。
4.根据权利要求1所述的基于处理器的系统,其中:
所述DRAM高速缓存管理电路经配置为以回写模式操作;
所述DRAM高速缓存管理电路包括多个脏指示符,其对于所述DRAM高速缓存的所述多个高速缓存条目;及
所述DRAM高速缓存管理电路进一步经配置以:
确定所述待高速缓存的数据是否已经修改;
响应于确定所述待高速缓存的数据已经修改:
将所述待高速缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目的所述数据存储区域中;
将所述高速缓存条目的所述标记写入所述高速缓存条目的标记存储区域中;
将所述高速缓存条目的错误校正码ECC写入所述高速缓存条目的所述错误保护区域中;及
设置所述多个脏指示符中对应于所述高速缓存条目的脏指示符,以指示所述高速缓存条目含有经修改数据;及
响应于确定所述待高速缓存的数据尚未经修改:
设置所述多个脏指示符中对应于所述高速缓存条目的脏指示符,以指示所述高速缓存条目含有未经修改的数据;
其中所述DRAM高速缓存管理电路经配置以进一步响应于确定所述待高速缓存的数据尚未经修改,将所述待缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目的所述数据存储区域中,且将所述高速缓存条目的所述标记及所述EDC写入所述高速缓存条目的所述错误保护区域中。
5.根据权利要求4所述的基于处理器的系统,其中所述DRAM高速缓存管理电路进一步经配置以:
读取所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目;
基于所述多个脏指示符中对应于所述高速缓存条目的所述脏指示符来确定所述高速缓存条目是否含有经修改数据;
响应于确定所述高速缓存条目含有经修改数据:
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述ECC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述ECC指示数据错误:
确定所述数据错误是否为可校正的;
响应于确定所述数据错误为可校正的,基于所述ECC校正所述数据错误;
响应于确定所述数据错误并非可校正的,从系统存储器DRAM中读取对应于所述高速缓存条目的存储行;及
响应于确定所述高速缓存条目不含经修改数据:
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC指示数据错误,从所述系统存储器DRAM中读取对应于所述高速缓存条目的所述存储行。
6.根据权利要求4所述的基于处理器的系统,其中所述DRAM高速缓存管理电路经配置以将所述高速缓存条目的所述ECC写入所述高速缓存条目的所述错误保护区域中作为里德-所罗门码;
所述DRAM高速缓存管理电路进一步经配置以将误码指示符写入所述高速缓存条目的所述错误保护区域中,指示所述高速缓存条目的所述错误保护区域是否含有所述高速缓存条目的所述EDC或所述ECC。
7.根据权利要求1所述的基于处理器的系统,其集成到集成电路IC中。
8.根据权利要求1所述的基于处理器的系统,其集成到选自由以下组成的群组的装置中:机顶盒;娱乐单元;导航装置;通信装置;固定位置数据单元;移动位置数据单元;移动电话;蜂窝式电话;智能电话;平板计算机;平板手机;服务器;计算机;便携式计算机;台式计算机;个人数字助理PDA;监视器;计算机监视器;
电视机;调谐器;收音机;卫星收音机;音乐播放器;数字音乐播放器;便携式音乐播放器;数字视频播放器;视频播放器;数字视频光盘DVD播放器;便携式数字视频播放器;以及机动车。
9.一种包含动态随机存取存储器DRAM高速缓存管理电路的基于处理器的系统,其包括:
用于将待高速缓存的数据写入DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中的装置,所述DRAM高速缓存为高带宽存储器的一部分;
用于将所述高速缓存条目的标记及错误检测码EDC写入所述高速缓存条目的错误保护区域中的装置。
10.一种用于在动态随机存取存储器DRAM高速缓存中提供DRAM高速缓存标记的空间高效存储的方法,其包括:
通过DRAM高速缓存管理电路将待高速缓存的数据写入DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中,所述DRAM高速缓存为高带宽存储器的一部分;及
将所述高速缓存条目的标记及错误检测码EDC写入所述高速缓存条目的错误保护区域中。
11.根据权利要求10所述的方法,其中所述DRAM高速缓存管理电路经配置为以通写模式操作。
12.根据权利要求11所述的方法,其进一步包括:
读取所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目;
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC指示数据错误,从系统存储器DRAM中读取对应于所述高速缓存条目的存储行。
13.根据权利要求10所述的方法,其中所述DRAM高速缓存管理电路经配置为以回写模式操作;
所述方法进一步包括:
确定所述待高速缓存的数据是否已经修改;
响应于确定所述待高速缓存的数据已经修改:
将所述待高速缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目的所述数据存储区域中;
将所述高速缓存条目的所述标记写入所述高速缓存条目的标记存储区域中;
将所述高速缓存条目的错误校正码ECC写入所述高速缓存条目的所述错误保护区域中;及
设置所述DRAM高速缓存管理电路的多个脏指示符中对应于所述高速缓存条目的脏指示符,以指示所述高速缓存条目含有经修改数据;及
响应于确定所述待高速缓存的数据尚未经修改:
设置所述多个脏指示符中对应于所述高速缓存条目的所述脏指示符,以指示所述高速缓存条目含有未经修改的数据;
其中将所述待高速缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目的所述数据存储区域中及将所述高速缓存条目的所述标记及所述EDC写入所述高速缓存条目的所述错误保护区域中进一步响应于确定所述待高速缓存的数据尚未经修改。
14.根据权利要求13所述的方法,其进一步包括:
读取所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目;
基于所述多个脏指示符中对应于所述高速缓存条目的所述脏指示符确定所述高速缓存条目是否含有经修改数据;
响应于确定所述高速缓存条目含有经修改数据:
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述ECC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述ECC指示数据错误:
确定所述数据错误是否为可校正的;
响应于确定所述数据错误为可校正的,基于所述ECC校正所述数据错误;
响应于确定所述数据错误并非可校正的,从系统存储器DRAM中读取对应于所述高速缓存条目的存储行;及
响应于确定所述高速缓存条目不含经修改数据:
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC指示数据错误,从所述系统存储器DRAM中读取对应于所述高速缓存条目的所述存储行。
15.根据权利要求13所述的方法,其中将所述高速缓存条目的所述ECC写入所述高速缓存条目的所述错误保护区域中包括写入里德-所罗门码;
所述方法进一步包括将误码指示符写入所述高速缓存条目的所述错误保护区域中,指示所述高速缓存条目的所述错误保护区域是否含有所述高速缓存条目的所述EDC或所述ECC。
16.一种非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时致使所述处理器:
将待高速缓存的数据写入动态随机存取存储器DRAM高速缓存的多个高速缓存条目中的高速缓存条目的数据存储区域中,所述动态随机存取存储器DRAM高速缓存为高带宽存储器的一部分;及
将所述高速缓存条目的标记及错误检测码EDC写入所述高速缓存条目的错误保护区域中。
17.根据权利要求16所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步致使所述处理器:
读取所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目;
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC指示数据错误,从系统存储器DRAM中读取对应于所述高速缓存条目的存储行。
18.根据权利要求16所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步致使所述处理器:
确定所述待高速缓存的数据是否已经修改;
响应于确定所述待高速缓存的数据已经修改:
将所述待高速缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目的所述数据存储区域中;
将所述高速缓存条目的所述标记写入所述高速缓存条目的标记存储区域中;
将所述高速缓存条目的错误校正码ECC写入所述高速缓存条目的所述错误保护区域中;及
设置多个脏指示符中对应于所述高速缓存条目的脏指示符,以指示所述高速缓存条目含有经修改数据;及
响应于确定所述待高速缓存的数据尚未经修改:
设置所述多个脏指示符中应于所述高速缓存条目的所述脏指示符,以指示所述高速缓存条目含有未经修改的数据;
其中将所述待高速缓存的数据写入所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目的所述数据存储区域中及将所述高速缓存条目的所述标记及所述EDC写入所述高速缓存条目的所述错误保护区域中进一步响应于确定所述待高速缓存的数据尚未经修改。
19.根据权利要求18所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步致使所述处理器:
读取所述DRAM高速缓存的所述多个高速缓存条目中的所述高速缓存条目;
基于所述多个脏指示符中对应于所述高速缓存条目的所述脏指示符确定所述高速缓存条目是否含有经修改数据;
响应于确定所述高速缓存条目含有经修改数据:
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述ECC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述ECC指示数据错误:
确定所述数据错误是否为可校正的;
响应于确定所述数据错误为可校正的,基于所述ECC校正所述数据错误;
响应于确定所述数据错误并非可校正的,从系统存储器DRAM中读取对应于所述高速缓存条目的存储行;及
响应于确定所述高速缓存条目不含经修改数据:
确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC是否指示数据错误;及
响应于确定所述高速缓存条目的所述错误保护区域中的所述高速缓存条目的所述EDC指示数据错误,从所述系统存储器DRAM中读取对应于所述高速缓存条目的所述存储行。
20.根据权利要求18所述的非暂时性计算机可读媒体,其上存储有计算机可执行指令,所述计算机可执行指令在由所述处理器执行时进一步致使所述处理器:
通过写入里德-所罗门码将所述高速缓存条目的所述ECC写入所述高速缓存条目的所述错误保护区域中;及
将误码指示符写入所述高速缓存条目的所述错误保护区域中,指示所述高速缓存条目的所述错误保护区域是否含有所述高速缓存条目的所述EDC或所述ECC。
CN201780016893.0A 2016-03-30 2017-03-03 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储 Active CN108780424B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/085,350 US10467092B2 (en) 2016-03-30 2016-03-30 Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
US15/085,350 2016-03-30
PCT/US2017/020620 WO2017172258A1 (en) 2016-03-30 2017-03-03 Providing space-efficient storage for dynamic random access memory (dram) cache tags

Publications (2)

Publication Number Publication Date
CN108780424A true CN108780424A (zh) 2018-11-09
CN108780424B CN108780424B (zh) 2022-10-28

Family

ID=58347984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780016893.0A Active CN108780424B (zh) 2016-03-30 2017-03-03 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储

Country Status (6)

Country Link
US (1) US10467092B2 (zh)
EP (1) EP3436957A1 (zh)
JP (1) JP2019513264A (zh)
KR (1) KR102457671B1 (zh)
CN (1) CN108780424B (zh)
WO (1) WO2017172258A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114974381A (zh) * 2021-02-22 2022-08-30 美光科技公司 用于复位读取干扰缓解的读取高速缓存

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3453022B1 (en) 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US10866900B2 (en) * 2017-10-17 2020-12-15 Samsung Electronics Co., Ltd. ISA extension for high-bandwidth memory

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002035354A1 (fr) * 2000-10-25 2002-05-02 Centre National D'etudes Spatiales Dispositif et procede de detection et correction d'erreurs memoire dans un systeme electronique
US20070260820A1 (en) * 2006-02-27 2007-11-08 Qureshi Moinuddin K Demand-based error correction
US20100064181A1 (en) * 2008-09-05 2010-03-11 Moyer William C Error detection schemes for a unified cache in a data processing system
US20100064206A1 (en) * 2008-09-05 2010-03-11 Moyer William C Error detection schemes for a cache in a data processing system
US20100251036A1 (en) * 2009-03-31 2010-09-30 Moyer William C Implementation of multiple error detection schemes for a cache
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
CN102985930A (zh) * 2011-05-25 2013-03-20 松下电器产业株式会社 信息处理装置以及信息处理方法
CN103034562A (zh) * 2011-07-14 2013-04-10 Lsi公司 闪存介质控制器中的元数据处理
US20130346695A1 (en) * 2012-06-25 2013-12-26 Advanced Micro Devices, Inc. Integrated circuit with high reliability cache controller and method therefor
CN104246898A (zh) * 2012-05-31 2014-12-24 惠普发展公司,有限责任合伙企业 局部错误检测和全局错误纠正

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4765249B2 (ja) * 2003-11-18 2011-09-07 セイコーエプソン株式会社 情報処理装置およびキャッシュメモリ制御方法
US7437597B1 (en) * 2005-05-18 2008-10-14 Azul Systems, Inc. Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US7650557B2 (en) 2005-09-19 2010-01-19 Network Appliance, Inc. Memory scrubbing of expanded memory
US8464007B2 (en) 2007-03-26 2013-06-11 Cray Inc. Systems and methods for read/write phase request servicing
JP2012103826A (ja) * 2010-11-09 2012-05-31 Fujitsu Ltd キャッシュメモリシステム
US8826097B2 (en) 2011-03-30 2014-09-02 Arm Limited Memory scrubbing
US8719664B1 (en) 2011-04-12 2014-05-06 Sk Hynix Memory Solutions Inc. Memory protection cache
US9753858B2 (en) * 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
WO2013095525A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Content-aware caches for reliability
US9444496B2 (en) 2012-04-04 2016-09-13 University Of Southern California Correctable parity protected memory
US9170955B2 (en) * 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US20140244932A1 (en) * 2013-02-27 2014-08-28 Advanced Micro Devices, Inc. Method and apparatus for caching and indexing victim pre-decode information
WO2015016880A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Global error correction
JP6275427B2 (ja) * 2013-09-06 2018-02-07 株式会社東芝 メモリ制御回路およびキャッシュメモリ
US9250998B2 (en) * 2013-11-26 2016-02-02 Qualcomm Incorporated Cache structure with parity-protected clean data and ECC-protected dirty data

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002035354A1 (fr) * 2000-10-25 2002-05-02 Centre National D'etudes Spatiales Dispositif et procede de detection et correction d'erreurs memoire dans un systeme electronique
US20070260820A1 (en) * 2006-02-27 2007-11-08 Qureshi Moinuddin K Demand-based error correction
CN101187886A (zh) * 2006-02-27 2008-05-28 英特尔公司 基于需求的纠错
US20100064181A1 (en) * 2008-09-05 2010-03-11 Moyer William C Error detection schemes for a unified cache in a data processing system
US20100064206A1 (en) * 2008-09-05 2010-03-11 Moyer William C Error detection schemes for a cache in a data processing system
CN102138129A (zh) * 2008-09-05 2011-07-27 飞思卡尔半导体公司 用于数据处理系统中的统一高速缓存的错误检测方案
US20100251036A1 (en) * 2009-03-31 2010-09-30 Moyer William C Implementation of multiple error detection schemes for a cache
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
CN102985930A (zh) * 2011-05-25 2013-03-20 松下电器产业株式会社 信息处理装置以及信息处理方法
CN103034562A (zh) * 2011-07-14 2013-04-10 Lsi公司 闪存介质控制器中的元数据处理
CN104246898A (zh) * 2012-05-31 2014-12-24 惠普发展公司,有限责任合伙企业 局部错误检测和全局错误纠正
US20130346695A1 (en) * 2012-06-25 2013-12-26 Advanced Micro Devices, Inc. Integrated circuit with high reliability cache controller and method therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114974381A (zh) * 2021-02-22 2022-08-30 美光科技公司 用于复位读取干扰缓解的读取高速缓存

Also Published As

Publication number Publication date
BR112018069663A2 (pt) 2019-02-05
US10467092B2 (en) 2019-11-05
KR102457671B1 (ko) 2022-10-20
EP3436957A1 (en) 2019-02-06
CN108780424B (zh) 2022-10-28
US20170286214A1 (en) 2017-10-05
JP2019513264A (ja) 2019-05-23
KR20180127378A (ko) 2018-11-28
WO2017172258A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
US10884940B2 (en) Method and apparatus for using compression to improve performance of low voltage caches
CN109416666B (zh) 用于存储和读取多个缓存行的装置和方法
US9916116B2 (en) Memory access and detecting memory failures using dynamically replicated memory based on a replication policy
US8255742B2 (en) Dynamically replicated memory
US10678768B2 (en) Logical band-based key-value storage structure
US9910786B2 (en) Efficient redundant array of independent disks (RAID) write hole solutions
US8839053B2 (en) Error correcting pointers for non-volatile storage
TWI312466B (en) Computing systems,computer system,method including functions in a host control interface,method of memory error reporting, and article comprising a machine-readable storage medium containing instructions
CN106255953B (zh) 持久性数据存储体中的前向参考记录的方法和系统
US9003247B2 (en) Remapping data with pointer
US9274888B2 (en) Method and apparatus for multiple-bit DRAM error recovery
KR20160124794A (ko) Dram 결함들의 커널 마스킹
KR102515417B1 (ko) 캐시 메모리 장치 및 그것의 동작 방법
US20120311248A1 (en) Cache line lock for providing dynamic sparing
CN105117351A (zh) 向缓存写入数据的方法及装置
US11456034B2 (en) Fully associative cache management
US10289321B1 (en) Bad block table recovery in a solid state drives
CN101494085A (zh) 防止非易失性存储器发生读取干扰的方法及其控制器
WO2017000517A1 (zh) 应用于固态硬盘阻变存储器缓存的纠错保护架构及方法
CN108780424A (zh) 提供用于动态随机存取存储器dram高速缓存标记的空间高效存储
US9218294B1 (en) Multi-level logical block address (LBA) mapping table for solid state
TW201604681A (zh) 在一使用具有無效之讀取之快取記憶體中用於降低頻寬及功率之方法及設備
US7747896B1 (en) Dual ported replicated data cache
US7624224B1 (en) System and method for directly executing code from block-based memory
CN103294613A (zh) 存储器的访问方法

Legal Events

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