高速缓存辅助式行锤击缓解
1.相关申请的交叉引用
2.本技术要求2022年1月21日提交的第63/301,991号美国临时申请的优先权,其内容以引用的方式并入本文中。此外,本技术与以下共同转让的美国专利申请有关:代理人案号2021139975-us-3,标题为“存储器媒体行激活偏置高速缓存(memory media row activation-biased caching)”;代理人案号2021140001-us-2,标题为“操作系统的rhr中断(rhr interrupts to the operating system)”;代理人案号2021140197-us-2,标题为“实用的节省空间的行锤击检测器(practical space saving row hammer detector)”;代理人案号2021140206-us-2,标题为“cxl控制器的区域优化rhrj9九游会真人的解决方案(area optimized rhr solution for the cxl controller)”;代理人案号2021140514-us-2,标题为“高速缓存中运行的命令的优化控制(optimized control of commands running in a cache)”;代理人案号2021140514-us-3,标题为“基于缓冲读取和写入条目总数的背压控制(control of the back pressure based on a total number of buffered read and write entries)”;以及代理人案号2021140514-us-4,标题为“通过延迟写入命令移出队列来优先化读取命令移出队列的仲裁策略(arbitration policy to prioritize read command dequeing by delaying write command dequeing)”,其中的每一者的内容均特此以引用的方式并入。
技术领域
3.本公开涉及高速缓存存储器,且具体地,协调进行存储器媒体中的行锤击攻击缓解的高速缓存存储器。
背景技术:
4.存储器装置(也被称作“存储器媒体装置”)广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。例如,二进制存储器单元可被编程为常常对应于逻辑1或逻辑0的两个支持状态中的一者。在一些实例中,单个存储器单元可支持多于两个可能的状态,所述状态中的任一个可由存储器单元存储。为了存取由存储器装置存储的信息,组件可以读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可以将存储器装置内的一或多个存储器单元写入或编程到对应状态。
5.存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(ram)、只读存储器(rom)、动态ram(dram)、同步动态ram(sdram)、静态ram(sram)、快闪存储器等。存储器装置可为易失性或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,dram单元)可随时间推移而丢失其编程状态。sram存储器可在系统正通电的持续时间内维持其编程状态。非易失性存储器单元(例如,nand存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
6.存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令和/或指令以供
主机在计算机或其它电子系统操作时使用。例如,数据、命令和/或指令可在计算或其它电子系统的操作期间在主机与存储器装置之间传送。称为“存储器控制器”的控制器可用于管理数据、命令和/或指令在主机与存储器装置之间的传送。
7.dram被组织为存储单元阵列,其中每个单元存储经编程值。如上文所指出,如果未周期性地刷新,那么单元可失去其编程值。因此,以通常被称作“刷新间隔”的固定间隔刷新行。刷新也被称为“行激活”。在行激活中,读取dram装置中的行,校正错误且将其写入回到同一物理行。在当前dram装置中,由“行锤击事件”(也被称作“行锤击攻击”)引起的数据损坏是相当大的风险。
8.当媒体装置中的特定行在“激活间隔”(即,两个刷新/激活事件之间的间隔)中被多次存取,即,超出“行锤击阈值”(rht)次数时,行锤击事件发生。具体地说,当在激活间隔期间存取特定行(“侵入者行”)超过rht次数时,物理上接近于dram媒体中的所述特定行的一或多个行(“受害者行”)可由于特定行的频繁激活而受影响,且可发生一或多个行的数据损坏。由于收缩制造过程几何形状的各种物理影响,存储器装置的rht已降低到甚至普通计算机系统程序可能无意中损坏其自身数据或共享同一系统存储器的另一程序的数据的水平。
9.一些存储器媒体装置包含用于检测和缓解行锤击攻击的电路。常规行锤击检测器技术,例如“地址采样”和“优先级cam”(优先级内容可寻址存储器)是概率性的,且因此不能保证在任何和所有行锤击场景中完美(即完整、准确和精确)防止数据损坏。如果侵入者(例如,恶意攻击者)知道这些常规行锤击检测方法及其实施方案的足够细节,那么侵入者可攻击其缺点以绕过或破坏其并损坏数据。因此,需要改进的技术来缓解例如行锤击错误之类的软错误。
技术实现要素:
10.本公开的方面涉及一种系统,其包括:高速缓存存储器,存储器媒体存取控制电路;主机接口,其被配置成将所述存储器媒体存取控制电路可操作地耦合到主机装置;媒体接口,其被配置成将所述存储器媒体存取控制电路可操作地耦合到存储器媒体装置;以及行锤击缓解器电路,其被配置成:当所述存储器媒体装置可操作地耦合到所述媒体接口时,跟踪所述存储器媒体装置中的行激活;以及将与跟踪的行激活相关联的信息传输到所述高速缓存存储器。
11.本公开的另一方面涉及一种方法,其包括:通过布置在系统中的行锤击缓解器电路在存储器媒体装置可操作地耦合到所述系统的媒体接口时跟踪所述存储器媒体装置中的行激活;以及通过所述行锤击缓解器电路将与跟踪的行激活相关联的信息传输到高速缓存存储器。
附图说明
12.图1a示出根据本公开的一些实例实施例的计算系统形式的实例功能框图,所述计算系统包含被配置成用于检测行锤击攻击并利用实施行激活偏置高速缓存策略的高速缓存存储器的存储器控制器。
13.图1b示意性地示出根据一些实施例的在图1a所示的存储器控制器的一些组件之
间的交换的实例通信信号。
14.图1c示意性地示出根据一些实施例的为行锤击缓解电路存储的一些数据组件。
15.图2a示出dram媒体装置中的存储器存储体示意图。
16.图2b示出描绘行锤击缓解的基本实施流程的流程图。
17.图3以图形方式示出行锤击事件在存储器控制器中的全局层级、在信道层级以及在存储体层级的实例分布。
18.图4a和4b示意性地示出根据一些实施例的行激活偏置高速缓存。
19.图5是根据一些实施例的主机读取存储在包含行激活偏置高速缓存的系统中的媒体存储装置中的数据的过程的流程图。
20.图6是根据一些实施例的主机向包含行激活偏置高速缓存的系统中的媒体存储装置写入数据的过程的流程图。
21.图7示出根据一些实例实施例的可以实施的不同行锤击攻击响应的表。
具体实施方式
22.本公开描述了与存储器媒体软错误(例如,行锤击错误)检测器和高速缓存存储器相关的系统、设备和方法。有时在本文中称为行锤击检测器的检测器被配置成执行对dram媒体中的行锤击攻击的检测。本公开描述了检测器和高速缓存存储器的协作操作,其方式改进高速缓存性能且还缓解对系统的行锤击攻击的影响。
23.在本公开的以下详细描述中,参考形成本公开的部分的附图,且图中通过图解方式展示可实践本公开的一或多个实施例的方式。足够详细地描述这些实施例以使得所属领域的一般技术人员能够实践本公开的实施例,且应理解,可利用其它实施例,且可在不脱离本公开的范围的情况下进行工艺、电气和结构改变。
24.实例实施例的行锤击检测器位于“存储器控制器”中。存储器控制器可以协调操作的执行,以将数据写入到多种类型的存储器装置中的至少一个存储器装置或从中读取数据。至少在一些实施例中,存储器控制器还包含与行锤击检测器相关联地操作的高速缓存存储器。在一些其它实施例中,高速缓存存储器可以位于存储器控制器的外部。例如,在一些实施例中,高速缓存可以通过高速缓存存储器接口连接到存储器控制器。
25.图1a示出根据本公开的一些实施例的计算系统101形式的实例功能框图,所述计算系统包含被配置成用于检测行锤击攻击的存储器控制器100。计算系统101可以检测并缓解对一或多个存储器媒体装置126的行锤击攻击。存储器控制器100包括前端部分104、中央控制器部分110、后端部分119和管理单元135。存储器控制器100可以耦合到主机103(即,主机系统103)和存储器媒体装置126。在一些实施例中,存储器媒体装置126可以是dram装置。
26.前端部分104包含接口106,以通过一或多个输入/输出(i/o)分道102将存储器控制器100耦合到主机103。i/o分道102上的通信可以根据例如外围组件互连高速(pcie)之类的协议。在一些实施例中,多个i/o分道102可配置为单个端口。实例实施例不受i/o分道的数目、i/o分道是否属于单个端口或用于与主机通信的通信协议限制。接口106通过i/o分道102从主机103接收数据和/或命令。在实施例中,接口106是被配置成用于pcie通信的物理(phy)接口。前端部分104可以包含接口管理电路108(包含数据链路和事务控制),所述接口管理电路可以为通过phy接口106与主机103通信提供较高层协议支持。
27.中央控制器部分110被配置成响应于从主机103接收到请求或命令而控制存储器操作的执行。存储器操作可以是从存储器媒体装置126读取数据或将数据写入到所述存储器媒体装置的存储器操作。中央控制器部分110可包括安全组件114,所述安全组件被配置成在数据存储之前加密数据,且在数据读取之后解密存储器媒体装置126中的数据。在一些实施例中,中央控制器部分110还可包含高速缓存存储器112以存储与存储器操作的执行相关联的数据。
28.在一些实施例中,响应于从主机103接收到请求,从存储器媒体装置126读取或写入到所述存储器媒体装置的数据可存储在高速缓存存储器112的高速缓存线中。高速缓存存储器中的数据可写入到存储器媒体装置126。错误校正组件116被配置成对从存储器媒体装置126读取和/或写入到所述存储器媒体装置的数据提供错误校正。在一些实施例中,可在数据存储于高速缓存存储器中之前使用例如高级加密标准(aes)加密等加密协议对数据进行加密。在一些实施例中,中央控制器部分110可响应于从主机103接收到请求而控制多个数据页基本上同时写入到存储器媒体装置126。
29.在一些实施例中,中央控制器部分还包含行锤击缓解电路132,其操作以跟踪存储器媒体装置中的行激活,并基于跟踪缓解行锤击攻击。高速缓存112可被配置成基于由行锤击缓解电路132提供的行激活信息来调整其高速缓存策略。
30.管理单元135被配置成控制存储器控制器100的操作。管理单元可以识别来自主机103的命令,并相应地管理一或多个存储器媒体装置126。在一些实施例中,管理单元135包含用于管理带外数据的i/o总线138、用于执行固件(其功能包含但不限于监测和配置存储器控制器100的特性)的管理单元控制器140,以及用于存储与存储器控制器100功能相关联的数据的管理单元存储器142。管理单元控制器140还可以执行与初始化和配置存储器控制器100的特性相关联的指令。管理单元135的端点可以暴露给主机系统103,以使用i/o总线138通过通信信道来管理数据。
31.管理单元135的第二端点可暴露于主机系统103,以使用接口106通过通信信道管理数据。在一些实施例中,管理单元135所监测的特性可包含供应到存储器控制器100的电压或外部传感器所测量的温度,或这两者。此外,管理单元135可包含耦合存储器控制器100的不同组件的本地总线互连件136。在一些实施例中,本地总线互连件136可包含但不限于高级高性能总线(ahb)。
32.管理单元135可包含管理单元控制器140。在一些实施例中,管理单元控制器140可为满足联合测试行动小组(jtag)标准且根据集成电路(i2c)协议和辅助i/o电路操作的控制器。如本文所用,术语“jtag”一般是指用于在制造之后验证设计和测试印刷电路板的行业标准。如本文所用,术语“i2c”通常是指用于双线接口以连接如同微控制器、i/o接口和嵌入系统中的其它类似外围设备等低速装置的串行协议。
33.后端部分119被配置成经由(例如,通过)多个信道125耦合到一或多种类型的存储器装置(例如,dram媒体126),所述信道可用于从存储器媒体装置126读取数据/将数据写入到所述存储器媒体装置,将命令传输到存储器媒体装置126,从存储器媒体装置126接收状态和统计数据等。管理单元135可通过相应地初始化和/或配置存储器控制器100和/或存储器媒体装置126来将存储器控制器100耦合到外部电路或外部装置,例如可产生从存储器媒体装置读取数据和/或将数据写入到存储器媒体装置的请求的主机103。管理单元135被配
置成识别从主机103接收到的命令且执行指令以针对耦合到存储器媒体装置126的多个信道中的每一者应用与所接收主机命令相关联的特定操作代码。
34.后端部分119包含包括多个媒体控制器120的媒体控制器部分和包括多个phy接口122的物理(phy)层部分。在一些实施例中,后端部分119被配置成将phy接口122耦合到存储器装置126的多个存储器排。存储器排可以经由多个信道125连接到存储器控制器100。相应媒体控制器120和相应phy接口122可以将信道125驱动到存储器排。在一些实施例中,每个媒体控制器120可以独立于其它媒体控制器120执行命令。因此,可以独立于其它phy接口122和信道125,通过信道125将数据从一个phy接口122传送到存储器媒体装置126。
35.每个phy接口122可根据将存储器控制器100耦合到存储器媒体装置126中的一或多个存储器排的物理(phy)层操作。如本文所用,术语“phy层”通常是指计算系统的开放系统互连(osi)模型中的物理层。phy层可为osi模型的第一(例如,最低)层并且可用以经由物理数据传输媒体传送数据。在一些实施例中,物理数据传输媒体可以是多个信道125。如本文所用,术语“存储器排”一般是指可同时存取的多个存储器芯片(例如,dram存储器芯片)。在一些实施例中,存储器排可以是六十四(64)位宽,且每个存储器排可具有八(8)页。在一些实施例中,第一类型的存储器媒体装置的页大小可大于第二类型的存储器媒体装置的页大小。然而,实例实施例不限于存储器排的特定宽度或页大小。
36.每个媒体控制器120可包含信道控制电路124和多个存储体控制电路128,其中多个存储体控制电路128中的相应一者被配置成存取由相应媒体控制器120存取的媒体装置126上的多个存储体的相应存储体130。
37.排、信道和存储体可被视为媒体装置中的存储位置的硬件相依逻辑分组。排、信道和存储体逻辑分组到存储器媒体装置126中的物理存储位置或行的映射可预先配置,或在一些实施例中可由与存储器媒体装置126通信的存储器控制器配置。
38.在一些实施例中,存储器控制器100可以是符合compute express link
tm
(cxl)的存储器系统(例如,存储器系统可包含pcie/cxl接口)。cxl是被设计成促进下一代数据中心性能的高速中央处理单元(cpu)到装置和cpu到存储器互连件。cxl技术维持cpu存储器空间与附接装置上的存储器之间的存储器相干性,其允许资源共享以实现较高性能、减小软件堆栈复杂性和降低总体系统成本。随着越来越多地使用加速器来补充cpu以支持新兴应用,例如人工智能和机器学习,cxl被设计成用于高速通信的行业开放标准接口。cxl技术构建在外围组件互连高速(pcie)基础结构上,其利用pcie物理和电气接口以在例如输入/输出(i/o)协议、存储器协议(例如,初始允许主机与加速器共享存储器)和相干性接口等领域中提供高级协议。当存储器控制器100符合cxl时,接口管理电路系统108(包含数据链路和事务控制108)可使用cxl协议来管理可包括pcie phy接口的接口106。
39.根据一些实施例,存储器媒体装置126包含一或多个dram装置。在一些实施例中,主存储器存储于具有高存储密度的dram单元中。dram单元随时间推移失去其状态。也就是说,必须周期性地刷新dram单元,因此,称为“动态”。dram可描述为根据包括dimm、排、存储体和阵列的存储组织的层级组织。dimm包括多个dram芯片,并且dimm中的多个芯片被组织成一或多个“排”。每个芯片由多个“存储体”形成。存储体由存储器单元阵列的一或多个“行”形成。排内的所有存储体共享所有地址和控制引脚。所有存储体都是独立的,但在一些实施例中,每次仅可存取排中的一个存储体。由于电气约束,仅几个dimm可附接到总线。排
有助于增加dimm的容量。
40.多个dram芯片用于每个存取以改进数据传送带宽。提供多个存储体,使得计算系统可同时针对不同请求工作。为了使密度最大化,存储体内的阵列较大,行较宽,且行缓冲器较宽(针对64b的请求进行8kb的读取)。每个阵列在循环中将单个位提供到输出引脚(用于高密度且因为存在较少引脚)。dram芯片通常被描述为xn,其中n指输出引脚的数目;一个排可由八个x8 dram芯片组成(例如,数据总线为64位)。存储体和排提供存储器并行性,且存储器控制器100可调度存储器存取以最大化行缓冲器命中速率和存储体/排并行性。
41.在图1a所示的实施例中,存储器媒体装置126为低功率双倍数据速率(lpddr)lp5或其它类似存储器接口。然而,实施例不限于此,且存储器媒体装置126可包括经受行锤击攻击或类似存储器攻击的任何存储器媒体类型的一或多个存储器媒体,例如但不限于dram的类型。
42.多个媒体控制器120中的每一者可接收相同命令(例如,读取或写入存储器媒体装置126的命令)且基本上同时寻址且驱动多个信道125。通过使用用于多个媒体控制器的相同命令和地址,多个媒体控制器120中的每一者可利用多个信道125对相同多个存储器单元执行相同存储器操作。每个媒体控制器120可对应于raid组件。如本文中所使用,术语“基本上”意指特性不需要是绝对的,而是足够接近以便实现所述特性的优点。
43.例如,“基本上同步”不限于绝对同步执行操作并且可包含意在同时但归因于制造限制可能并不精确地同步的定时。例如,由于可由各种接口(例如,lpddr5与pcie)呈现的读取/写入延迟,“基本上同时”利用的媒体控制器可能并不同时开始或结束。例如,可利用多个存储器控制器以使得其在同一时间将数据写入到存储器装置而不考虑媒体控制器中的一个是否在其它媒体控制器之前开始或终止。
44.图1b示意性地示出根据一些实施例的在图1a所示的存储器控制器100的一些组件之间的交换的实例通信信号。高速缓存存储器112和行锤击缓解电路132被配置成彼此关联地操作,以缓解行锤击攻击对系统101的影响,并通过实施行激活偏置的高速缓存策略来改进高速缓存性能(例如,改进高速缓存命中率)。高速缓存112可以临时存储由主机103写入到存储器媒体装置126的数据和主机103试图从存储器媒体装置126读取的数据。例如,系统101的存储器数据路径可以提供来自主机103的写入到高速缓存112的存储器写入请求,以及来自主机103的存取来自存储器媒体装置126的数据154随后存储在高速缓存112中的任何存储器读取请求。对于每个传入请求(读取或写入),存储器存取控制电路150可以确定要在存储器媒体装置126中存取的一或多个行,并且可以相应地控制对存储器媒体装置126和/或高速缓存112的存取。存储器存取控制电路150可以包含信道控制电路124、存储体控制电路128、错误控制电路116、安全电路114、管理接口135和/或其它专用电路中的一或多者,以控制存取存储器媒体装置126的方面。在实例实施例中,存储器存取控制电路150可以向行锤击缓解电路132提供关于存储器媒体装置126中的行激活的行激活信息152(例如,基于由存储器存取控制电路150传输的行存取命令和/或行刷新命令的数目)。在一些实施例中,由于存储器存取控制电路150可以对所有行存取的地址信息具有可见性,因此它还可以向行锤击缓解电路132和/或高速缓存112提供相应请求的信息(例如,用于导出高速缓存线标签信息)。
45.如图1c所示,根据从存储器存取控制电路150接收的行激活信息152,行锤击缓解
电路132维持计数器160集以跟踪存储器媒体装置126中的行的行激活。计数器接可以保持在静态ram(sram)或内容可寻址存储器(cam)中。行锤击缓解电路132基于计数器集检测相应行何时超过一或多个预设阈值,例如rht或一或多个其它行锤击阈值。图1c示出包含计数器160和rht 162的行锤击缓解电路132。在一些实施例中,如图1c中进一步所示,行锤击缓解电路132还可以包含第一其它行锤击阈值164和第二其它行锤击阈值166。第一其它行锤击阈值对应于行存取计数值,小于所述计数值时,行可以被视为不大可能被存取且因此不大可能达到rht。第二其它行锤击阈值对应于比第一其它行锤击阈值高但比rht小的行存取计数值,使得具有达到第二其它行锤击阈值的行存取计数的行被认为更有可能随后被存取且因此更有可能在短持续时间内达到rht。
46.当行锤击缓解电路132检测到特定行(基于其在计数器160中的对应计数器中的计数值)已经超过rht 162时,其发起行锤击响应。在一些实施例中,例如,所述行锤击缓解电路可以向存储器存取控制电路150发出行锤击响应信号156,使得存储器存取控制电路150可以向存储器媒体装置126发送行刷新等,或可以促使发送行刷新等,以刷新对应受害者行。在一些实施例中,当行锤击缓解电路132检测到对存储器媒体装置126的特定行的存取已经超过第一或第二其它行锤击阈值164-166时,所述行锤击缓解电路可以向高速缓存112传输行锤击信息158。例如,当检测到行超过第一其它行锤击阈值时,行锤击信息158可以包含用于行通知高速缓存112所述行不再被认为是不大可能被存取的行的对应通知,并且当检测到行超过第二其它行锤击阈值时,行锤击信息158可以包含用于行通知高速缓存112所述行现在被认为是更可能被存取的行的对应通知,使得高速缓存112能够基于行的相应行存取状态来偏置其高速缓存策略。
47.在实例实施例中,高速缓存112的操作包含基于由行锤击缓解电路提供给高速缓存的行锤击信息158来偏置高速缓存策略。偏置可以包含例如基于高速缓存线的行锤击状态来覆盖或补充其高速缓存线替换策略(也称为“高速缓存线逐出策略”)。在一些实施例中,行锤击状态还可用于偏置其高速缓存线分配策略,例如,以确定是否应将来自存储器媒体装置126的数据存储在高速缓存112中。
48.图2a示出在例如存储器装置126的dram装置中观察到的存储器存储体130的示意图。所示的存储体130表示以10行(例如,行202)和10列(例如,列204)组织的10
×
10单元阵列。存储体经由行缓冲器206一次存储到一行或从一行读取。通过提供行地址和列地址来存取阵列中的每个单元。地址总线、行存取选通信号、列存取选通信号(在图2a中分别示为a、ras、cas)用于存取阵列中的特定存储器位置。行缓冲器206和数据或读取/写入信号用于待从存储器位置读取或存储到所述存储器位置的数据。
49.在一些存储器装置中,图2a中未示的计数器可与行相关联以跟踪行在特定时间间隔期间已激活的次数。例如,可在每个刷新间隔的开始处初始化计数器,且在所述刷新间隔期间针对对所述行的每个存取递增计数器。在常规完美跟踪实施方案中,相应计数器与每一行相关联。在实例实施例中,所维持的计数器的数目比附接到存储器控制器的存储器装置中的行的总数目小得多。
50.图2b示出描绘行锤击缓解的基本实施流程的流程图210。行锤击缓解包含两个方面:第一方面为行锤击检测,且第二方面为对所述检测的响应。多种响应是可能的,其中响应命令存储器媒体装置126刷新受害者行(例如,drfm响应),作为可能响应中的一者以缓解
或消除行锤击效应的影响。在一些情况下,存储器控制器将刷新命令,例如drfm响应传输到存储器媒体装置126且指定侵入者行,且存储器装置的内部电路基于由存储器控制器标识的侵入者行确定待刷新的受害者行并刷新受害者行。
51.当接收到存取存储器媒体装置126中的行(其在本公开中可以称为“侵入者行”(图2a中的行207))的请求时,在操作212处,将所述行标识为要激活的下一行。在操作214处,检查被配置成跟踪预定时间周期内对侵入者行的存取次数的计数器的值。在操作216处,确定计数器的值是否高于rht。当侵入者行207超过rht时,与侵入者行207物理上相邻的一或多个行(称为“受害者行”;见图2a中的行208和209)中的数据的完整性无法保证。rht可以是工厂设置的或者可以在启动时配置,并且可以取决于存储器媒体装置的类型。如果所述值高于rht,那么在操作218处,发出响应。
52.一种类型的响应可以是刷新侵入者行207的两侧的物理上相邻的行(例如,行208和209)的数字刷新管理(drfm)命令。当在操作218处发出响应时,可复位经刷新的受害者行(例如,行208和209)的计数器(例如,将计数值设置为0)。可预先配置或可动态地确定待刷新的物理上相邻的行的数目。在218处发出响应之后,或如果在操作216处确定侵入者行207不超出rht,那么在操作220处,调度针对侵入者行的行激活,且递增针对所述行的计数器(例如,递增1)。
53.如上文所提到,存储器装置126(例如,一或多个dram dimm)可能遭受行锤击攻击,并且正在使用多种方法来消除或减少这种攻击的影响。尽管据本发明人所知,目前在存储器系统中实施的行锤击缓解的常规技术在能量效率和/或空间效率方面的实用性方面都不足,本公开的实例实施例提供了一种行锤击缓解技术,此技术以实用、高能效且节省空间的方式提供行锤击攻击的完美跟踪(即,不允许任何错误否定的行锤击检测)。
54.如图3所示,在dram存储器装置附接到符合cxl的存储器控制器的一些实例场景中,存储器装置上的行锤击攻击的全局速率可以是每秒约6.25亿次攻击。因此,如果在所附存储器装置的全局层级上实施完美的行锤击检测,则行锤击检测器必须配置有足够的计数器,以检测在一秒钟的持续时间内发生的至少那么多攻击。例如,在图1a所示的实例实施例中,如果要在全局范围内实施完美行跟踪,则中央控制器110可以配置有行锤击缓解电路,所述行锤击缓解电路潜在地以每秒6.25亿的速率从媒体控制器120接收所附接的存储器装置中的行的行存取信息,并且根据需要将缓解响应(例如,drfm)传达到相应媒体控制器120。
55.如果针对每个媒体控制器120实施每信道行锤击缓解,那么相应媒体控制器120可以处理的攻击速率之和必须至少达到6.25亿/秒,这样的实施方案将能够并且相应地使用所需的空间和能量资源来跟踪显著更高的行更新速率,因为资源是基于每个信道配置的。
56.类似地,如果在每个存储体控制器128中针对信道中的每个存储体实施每存储体行锤击缓解,那么所有存储体控制器可以处理的攻击速率之和必须至少达到6.25亿/秒,但是这样的实施方案将能够并且相应地使用所需的空间和能量资源来检测显著更高的检测速率,因为资源是基于每个存储体配置的。因此,在存储体层级实施行锤击检测所需的空间和能量资源的总量超过了在信道层级可能需要的空间和能源资源的总量,这又超过了全局层级实施方案的空间和能量资源的总量。可以考虑各种方法,通过将多个行作为一个单元(不同芯片上的同一行)存取,且因此针对所述组仅具有一个计数器而不是针对媒体装置的
每一行具有计数器,从而在存储器控制器中实现完美的(确定性的)行锤击跟踪。
57.如上所述,例如dram之类的存储器媒体装置126可能受到行锤击攻击,并且正在使用多种方法来消除或减少这种攻击的影响。尽管据本发明人所知,目前在存储器媒体装置中实施的行锤击缓解的常规技术在能量效率和/或空间效率方面都不足,上文提到的共同转让的相关申请提供了一种行锤击缓解技术,此技术以实用、高能效和/或节省空间的方式提供行锤击攻击的完美跟踪(即,不允许任何错误否定的行锤击检测)。所描述的方法使用数目少于正被监测的存储器媒体装置行的数目的计数器来跟踪行存取。
58.发明人认识到,跟踪高度存取数据的行锤击缓解活动密切对应于高速缓存存储器的目标,以通过在高速缓存中保持高度存取的数据来改进高速缓存命中率,并且在存储器控制器(例如在存储器控制器100中)中实施行锤击缓解提供了利用行锤击缓解和高速缓存来改进每一者的性能的机会。例如,如上所述,实例实施例使得高速缓存能够用作行锤击响应,而高速缓存使用为行锤击缓解而收集的行激活信息,以改进其命中率。
59.图4a示出根据一些实施例的实例高速缓存112。高速缓存112可以包括高速缓存数据402、传送缓冲器404和高速缓存控制电路406。高速缓存数据402包括多个高速缓存线408,每个高速缓存线包括高速缓存线数据410。每个高速缓存线408还包含标签412,所述标签指示此高速缓存线408的高速缓存线数据410位于存储器媒体装置126中的何处。每个高速缓存线408还可以包含指示高速缓存线408的状态信息的状态414。传送缓冲器404在数据被写入高速缓存之前临时保持一或多个数据高速缓存线,和/或在从高速缓存读取数据时保持数据。高速缓存控制电路406控制对高速缓存的存取,包含对高速缓存数据402的存取。在一些实施例中,高速缓存控制电路406被配置成与行锤击缓解电路132通信,以接收行锤击信息158,并相应地控制高速缓存112的高速缓存策略的偏置。
60.在一些实施例中,高速缓存112中的高速缓存线可以映射到存储器媒体装置126中的一或多个行,或替代地,在一些实施例中,存储器媒体装置126中的每一行可以映射到一或多个高速缓存线。此映射可以由相应高速缓存线中的标签提供,或更具体地,由相应标签中包含的地址信息提供。在一些实施例中,高速缓存控制电路406可以在存储器媒体装置中的高速缓存线与行之间维持单独的映射集。
61.图4b示出根据一些实施例的状态字段414的实例格式。状态字段414可以包含高速缓存策略信息416、高速缓存一致性信息418和行锤击信息420。高速缓存线408的高速缓存策略信息416与高速缓存线替换策略相关,例如,最近最少使用(lru)替换策略,并且可以指示高速缓存线408的lru状态。例如,字段416可以提供按最后存取时间的顺序排列的高速缓存线,以便在必须选择高速缓存线以进行替换时提供高速缓存112以允许选择最近最少存取的高速缓存线进行替换。
62.由于高速缓存存储器112基本上小于其作为高速缓存而操作的存储器媒体装置126(例如,主存储器),因此高速缓存通常涉及替换(也称为逐出)已经存储的数据的高速缓存线,以便写入新的高速缓存线。在实例实施例中,除了其它方面之外,可逐出高速缓存线(也称为受害者高速缓存线)的选择还基于相应候选可逐出高速缓存线的行锤击状态420。在关联高速缓存中,替换策略可以是随机(例如,从所有高速缓存线中随机选择高速缓存线)、循环(例如,以固定顺序从所有高速缓存线中选择)、fifo(先进先出;例如,选择最旧的高速缓存线)或lru(最近最少使用;例如,最长时间未使用的高速缓存线)。在实例实施例
中,在其相应行锤击信息420字段中指示其被认为可能很快达到行锤击阈值的高速缓存线(例如,其行锤击信息420指示其计数已经超过第二其它行锤击阈值的高速缓存线)被偏置以防选择逐出。因此,在实例实施例中,在操作604处,选择根据活动替换策略(例如,随机、循环、fifo或lru)为下一线且未被指示为很可能很快达到行锤击阈值的高速缓存线进行逐出,并从高速缓存中逐出。
63.高速缓存一致性信息418指示高速缓存线是否是直写高速缓存线、高速缓存线的关联性以及脏状态。使用写入分配策略,首先将来自存储器写入请求的数据写入到高速缓存,然后,当高速缓存线从高速缓存中逐出时,将数据写入到主存储器。使用直写策略,来自存储器写入请求的数据同时或几乎同时写入到高速缓存和主存储器。
64.在一些实施例中,高速缓存线408的行锤击信息420指示高速缓存线是否对应于已超过第一其它行锤击阈值或第二其它行锤击阈值的存储器媒体装置行中的数据。如上所述,包含有效数据但未被指示为已超过第一其它行锤击阈值的高速缓存线408可被认为不大可能达到rht 162,并且已超过第二其它行锤击阈值的高速缓存线408可被视为很可能在短时间内达到rht 162。在另一实施例中,行锤击信息420可以包含与存储器媒体装置中的对应行相关联的行存取计数。被提供以用于表示行锤击计数的位数可以与行锤击缓解电路132中的对应计数器中使用的位数相同或更少。每个高速缓存线的行锤击信息420是对应存储器媒体装置行中高速缓存线数据的当前行锤击状态或行激活水平状态的指示。其可以被认为是对应存储器媒体装置行的行激活量(在当前时间窗口内)的指示。在一个实施例中,行锤击信息420包括一个位,所述位当设置时指示高速缓存线可能很快达到rht,而当未设置时则指示其它。
65.图5示出根据实例实施例的用于在例如系统101的系统中服务存储器读取请求502的过程500。
66.在操作502处,从主机103接收从存储器媒体装置126(例如,系统101的主存储器)读取数据的读取请求。例如,在存储器控制器100处通过接口102接收读取请求。在一些实施例中,读取请求可以至少包含主存储器中数据的地址和数据要返回到的地址。
67.执行高速缓存查找操作504以确定用于读取请求的数据是否存在于高速缓存112中。在所示实施例中,高速缓存112(例如,使用高速缓存控制电路406)发起高速缓存查找。然而,在一些实施例中,高速缓存查找可以由存储器存取控制电路150发起。
68.如果读取请求的数据存在于高速缓存112中,则数据从高速缓存112返回到请求主机103。也就是说,如果在高速缓存112中找到与读取请求中指定的主存储器地址相对应的高速缓存线(例如,高速缓存线的标签字段412指示与高速缓存线相关联的主存储器地址),则响应于读取请求返回所述高速缓存线的数据。因此,当对应于读取请求的数据存在于高速缓存中时,则至少在一些实施例中,不对存储器媒体装置126进行对读取请求中请求的数据的存取。因此,当所请求的数据存在于高速缓存112中时,数据直接从高速缓存提供给请求者,而不会导致存储器媒体装置中对应行的行激活计数递增。
69.如果用于读取请求的数据不存在于高速缓存112中,则在操作506处通知存储器存取控制电路150,并且存储器存取控制电路150向存储器媒体装置126发出读取请求508。存储器存取控制电路150还可以将存储器媒体装置126中的对应行的行激活通知给行锤击缓解电路132。根据从主机接收的读取请求中指定的主存储器地址来标识所述行。
70.在操作512处,行锤击缓解电路132基于接收到的行激活信息更新其行锤击计数器。例如,根据接收到的行激活信息,递增行锤击缓解电路132中保持的对应计数器160。行锤击缓解电路132还可以确定递增是否导致任何行超过rht 162或其它行锤击阈值164-166中的任一者。
71.如果超过rht 162,则在操作514处,行锤击缓解电路132通知存储器存取控制电路发出行锤击响应。作为响应,存储器存取控制电路150可以发出drfm 516等以刷新超过rht的行的受害者行。
72.如果在操作512处确定对于一行超过了rht 162中的任一者或其它行锤击阈值164-166中的一或多者,则在518处,行锤击缓解电路132通知高速缓存112。通知可以包含行的计数信息和对应的行标识符。计数信息可以包含行激活计数器的值、超过rht的指示、超过第一其它行锤击阈值的指示或超过第二其它行锤击阈值的指示中的一或多者。当超过rht时,如在图5所示的特定情形中,通知518可以被高速缓存112用作行的行激活计数被重置的指示。在替代情形中,其中代替超过rht 162的行,行超过其它行锤击阈值164-166中的一者,然后,操作518指示超过阈值以使高速缓存112能够相应地调整其高速缓存策略。
73.在操作520,检索响应于读取请求508的数据,并且在操作522-526,根据高速缓存的分配策略和替换策略,确定所检索的数据是否被写入高速缓存112。
74.在操作522,例如使用高速缓存控制电路406,高速缓存112可以根据在操作518处接收到的行锤击计数信息,对一或多个高速缓存线的行锤击信息420进行更新。例如,如果在操作518处的行锤击计数信息指示超过了高速缓存线的rht,则对应高速缓存线的行锤击信息420被设置为指示高速缓存线尚未超过第一其它行锤击阈值。替换地,如果操作518通知超过了第一其它行锤击阈值或第二其它行锤击阈值,则设置对应高速缓存线的行锤击信息420以指示对应状态。在行锤击信息420包括行激活计数值的实施例中,则使用在操作518处接收到的行锤击计数信息相应地更新行锤击信息420中的计数。
75.如果对应于在操作522中引用的行的高速缓存线已经存在于高速缓存112中,则可以直接在所述高速缓存线的行锤击信息420中进行根据操作522的更新。在一些实施例中,高速缓存112可以包含临时缓冲器(例如,传送缓冲器404),以保存一或多个高速缓存线中的高速缓存线的高速缓存线数据和/或行锤击信息420,以临时保存从存储器媒体装置126接收的数据和/或从行锤击缓解电路132接收的计数器信息,直到在操作524-526中做出在高速缓存中存储的决定。
76.在操作524处,高速缓存112确定除其它之外是否还根据行锤击信息420来高速缓存返回的数据。当高速缓存线的行锤击信息420指示对应的行尚未超过第一其它行锤击阈值时,将数据返回给请求者,而不将所述数据存储在高速缓存中。
77.替代地,当行锤击信息420指示对应的行已经超过第二其它行锤击阈值时,高速缓存将存储数据,使得可以从高速缓存112服务对所述行的后续请求,而不必存取存储器媒体装置中的行。当为了存储新的高速缓存线,必须选择受害者高速缓存线时,所述选择可以考虑每个候选高速缓存线408的高速缓存策略状态416和/或行锤击信息420。例如,被选择为受害者高速缓存线的高速缓存线将是在相应行锤击信息420中未被指示为已经超过第二其它行锤击阈值的高速缓存线中最近最少使用的高速缓存线。
78.在实例实施例中,除了其它方面之外,可逐出高速缓存线(也称为受害者高速缓存
线)的选择还基于相应候选可逐出高速缓存线的行锤击状态420。在关联高速缓存中,替换策略可以是随机(例如,从所有高速缓存线中随机选择高速缓存线)、循环(例如,以固定顺序从所有高速缓存线中选择)、fifo(先进先出;例如,选择最旧的高速缓存线)或lru(最近最少使用;例如,最长时间未使用的高速缓存线)。在实例实施例中,在其相应行锤击信息420字段中指示其被认为可能很快达到行锤击阈值的高速缓存线(例如,其行锤击信息420指示其计数已经超过第二其它行锤击阈值的高速缓存线)被偏置以防选择逐出。因此,在实例实施例中,在操作604处,选择根据活动替换策略(例如,随机、循环、fifo或lru)为下一线且未被指示为很可能很快达到行锤击阈值的高速缓存线进行逐出,并从高速缓存中逐出。
79.在操作526处,根据在操作524处作出的确定,响应于读取请求而返回的数据存储或不存储在高速缓存中。当数据存储在高速缓存中时,数据可以写入所选的可逐出高速缓存线占用的高速缓存位置。此外,根据在操作518处接收的信息来更新高速缓存线的行锤击信息420。
80.图6示出根据一些实施例的系统101处理从主机103接收的存储器写入请求的过程600。
81.在操作602处,从主机103接收存储器从存储器媒体装置126(例如,系统101的主存储器)写入数据的写入请求。例如,在存储器控制器100处通过接口102接收写入请求。
82.可以以各种方式处理写入请求。其中写入请求数据最初未存储在高速缓存中的系统(例如,直接将数据写入主存储器的系统,以及将对应高速缓存线标记为脏的但将数据直接写入存储器的系统)可能不会基于高速缓存112是否是行锤击偏置高速缓存而不同地操作。相反,写入分配和直写高速缓存可以基于高速缓存112是否是行锤击偏置高速缓存而不同地操作。使用写入分配策略,首先将来自存储器写入请求的数据写入到高速缓存,然后,当高速缓存线从高速缓存中逐出时,将数据写入到主存储器。使用直写策略,来自存储器写入请求的数据同时或几乎同时写入到高速缓存和主存储器。
83.在操作604处,在一个实施例中,执行高速缓存查找操作,以确定与要向其写入写入请求的数据的存储器媒体装置中的行相对应的高速缓存线是否存在于高速缓存112中。如果对应高速缓存线存在于高速缓存中,则在一个实施例中,将来自存储器写入请求的数据存储在所述对应高速缓存线中。如果对应高速缓存线不存在于高速缓存112中,而是可用的高速缓存线(例如,不包含有效数据的高速缓存线)存在于高速缓存112内,则来自存储器写入请求的数据存储在所述可用的高速缓存线中。如果对应高速缓存线不存在于高速缓存112中,并且没有可用的高速缓存线存在于高速缓存中,则当高速缓存112具有写入分配策略或直写策略时,必须逐出高速缓存线以存储存储器存取请求的所述数据。
84.在实例实施例中,除其它方面外,可逐出高速缓存线的选择还基于相应候选可逐出高速缓存线的行锤击状态420。在关联高速缓存中,替换策略可以是随机、循环、fifo或lru。在实例实施例中,在其相应对应行锤击信息420字段中指示其被认为可能很快达到行锤击阈值的高速缓存线(例如,其行锤击信息420指示其计数已经超过第二其它行锤击阈值的高速缓存线)被偏置以防选择逐出。因此,在实例实施例中,在操作604处,选择根据活动替换策略(例如,随机、循环、fifo或lru)为下一线且未被指示为很可能很快达到行锤击阈值的高速缓存线进行逐出,并从高速缓存中逐出。
85.在操作606处,将来自写入请求的数据写入高速缓存以代替被逐出的高速缓存线。
86.图7示出可以在一些实例实施例中结合偏置高速缓存替换策略实施的一些其它行锤击攻击响应技术的表。刷新技术包含增加刷新、act/pre邻居行、穷人的drfm、drfm、edac清理邻居、限制对crha行(例如,具有高行激活计数的行)的行激活、用数据错误消息响应行存取请求、警告和/或中断主机以指示已超过rht。如表中所示,若干响应技术保证数据完整性,并且不需要媒体装置的修复图。数据完整性的保证提高了从媒体装置读取数据的可靠性。不需要修复图增加了响应技术的灵活性,以及响应技术对不同制造商的媒体装置的适用性等。在图7中可以看出,drfm保证数据完整性,不需要媒体装置的修复图,并且具有低响应时间,这表明它是可以在实例实施例中有效使用的响应技术。然而,实施例不限于使用drfm作为对行锤击攻击的响应。
87.虽然已结合目前被认为是最切实可行和优选的实施例描述本发明,但应了解,本发明不限于所公开的实施例,而是相反地,预期涵盖所附权利要求书的精神和范围内所包含的各种修改和等效布置。
88.应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
89.可使用多种不同技术和技艺中的任一个来表示本文中所描述的信息和信号。例如,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信令说明为单个信号;然而,信号可表示信号的总线,其中所述总线可具有多种位宽度。
90.术语“传输”、“连接”和“耦合”可指代支持组件之间的信号流动的组件之间的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。
91.在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果如控制器的组件将其它组件耦合在一起,那么组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
92.术语“如果”、“当
…
时”、“基于”或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当
……
时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
93.术语“响应于”可以指由于先前条件或动作而至少部分地(如果不是完全地)发生的一个条件或动作。例如,可进行第一条件或动作,且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
94.另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或
动作的直接结果而发生。在一些实例中,可进行第一条件或动作,且可作为与是否发生其它条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可进行第一条件或动作,且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件进行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”这种其它条件或动作而进行。
95.本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(soi)衬底,例如玻璃上硅(sog)或蓝宝石上硅(sop),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
96.本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文使用的术语“示例性”意指“充当实例、例子或说明”,而不是“优选”或“优于其它实例”。详细描述包含具体细节,以提供对所描述技术的理解。然而,可以在没有这些具特定细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
97.本文描述的功能可以硬件、由处理器执行的软件、固件或其任何组合来实施。如果在由处理器执行的软件中实施,那么可将功能作为一或多个指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。其它实例和实施在本公开和所附权利要求书的范围内。例如,由于软件的本质,上文所描述的功能可以使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一者的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
98.例如,结合本文中的公开内容所描述的各种说明性块和组件可与经设计以执行本文中所描述的功能的以下组件一起实施或执行:通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其任何组合。通用处理器可以是微处理器,但在替代方案中,所述处理器可以是任何处理器、控制器、微控制器或状态机。处理器可以实施为计算装置的组合(例如,dsp和微处理器的组合、多个微处理器、与dsp核心结合的一或多个微处理器,或任何其它此类配置)。
99.如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“中的至少一者”或“中的一或多者”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如a、b或c中的至少一者的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。例如,在不脱离本公开的范围的情况下,描述为“基于条件a”的示范性步骤可基于条件a和条件b两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
100.计算机可读媒体包含非暂时性计算机可读存储媒体和通信媒体两者,通信媒体包
含促进将计算机程序从一处传送到另一处的任何媒体。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可以包括ram、rom、电可擦除可编程只读存储器(eeprom)、光盘(cd)rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用以携载或存储呈指令或数据结构形式的所要程序代码装置且可由通用或专用计算机或通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。
101.例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文所使用,磁盘和光盘包含cd、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式复制数据,而光盘使用激光以光学方式复制数据。以上各者的组合也包含在计算机可读媒体的范围内。
102.还应理解,本文中所使用的术语仅出于描述特定实施例的目的,而不意图为限制性的。如本文中所使用,除非上下文另外明确规定,否则单数形式“一(a/an)”和“所述(the)”可以包含单数个指示物和多个指示物两者。另外,“多个”、“至少一个”和“一或多个”(例如,多个存储器存储体)可指一或多个存储器存储体,而“多个”意在指代超过一个此类事物。
103.此外,贯穿本技术案以许可意义(即,有可能、能够)而非以强制性意义(即,必须)使用词语“可能”和“可”。术语“包含”和其派生词指“包含但不限于”。视上下文而定,术语“耦合(coupled/coupling)”意指物理上直接或间接连接或存取及移动(传输)命令和/或数据。视上下文而定,术语“数据”和“数据值”在本文中可互换地使用且可具有相同含义。
104.提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文公开的原理和新颖特征一致的最宽范围。