使用运行时逆向工程优化DRAM刷新的制作方法

文档序号:17096107发布日期:2019-03-13 23:52阅读:242来源:国知局
使用运行时逆向工程优化DRAM刷新的制作方法

本发明大体上涉及一种刷新dram的方法,更具体,涉及基于优化的命令序列刷新具有新颖的外部多行多库刷新功能的dram。本发明还涉及相关的dram控制器。



背景技术:

主存储器是现代计算系统中的关键组件,其与数据访问速度、数据的可用性和一致性以及安全性方面相关。为了避免从较慢的大容量存储设备进出分页数据或分页数据进出到较慢的大容量存储设备,目前的趋势是安装越来越多的主存储器容量。内存计算甚至更多地增加了对大量主存储器的需求。

主存储器通常以dram(dynamicrandomaccessmemory,动态随机存取存储器)的形式实现。这些存储器设备需要定期刷新数据。众所周知,dram刷新在时间和能耗方面都是昂贵的,并且其开销变得越来越大。dram刷新的成本随着容量线性增长,这意味着每个密度代的存储器芯片的成本呈指数级增长。现代jedec(原联合电子设备工程委员会,jointelectrondeviceengineeringcouncil,今天的jedec固态技术协会)同步dram(synchronousdram,简称sdram)使用一种特殊的自动刷新命令,该命令对外部存储控制器是不透明的,并且在内部(即,dram芯片本身的内部)处理所有刷新操作和时序。

为了补偿一些不断增加的刷新开销,jedec设计了自动刷新功能,该功能在内部使用了高度优化的架构,尤其是,该架构违反了外部控制器在正常操作期间必须满足并遵守的互操作时序规则(例如,对于precharge库、activate行和/或读/写操作列)。之所以dram可以在内部违反外部时序参数,是因为在刷新期间,可以理解为与“正常”操作不同,读或写操作将不遵循(多行)activate操作。内部机制同时刷新数字行(而不仅仅像外部act和pre命令那样一次刷新一个数字行)。对于内部自动刷新功能,没有命令/地址总线限制。sdram的典型示例是广泛使用的ddr3存储器。

存在大量开发用于逐行手动/外部刷新dram的方案的研究,其表征每行保留数据的能力,并消除对可以不经常刷新的行的不必要的刷新操作。已经证明这些方案非常有效,因为消除刷新改善了存储器系统的能耗和性能。这为dram系统效率的显着提高提供了潜力。

然而,这些方案与jedecsdram规范的现代自动刷新功能不兼容。此外,无论该行是否需要刷新,自动刷新不能跳过任何行。

因此,手动/外部方案使用显式行级激活(act)和预充电(pre),并且仍然逐行刷新,称为行粒度刷新(rgr,rowgranularrefresh)。正因为如此,研究表明这些刷新方案无法通过自动刷新机制利用内部可用的优化。

先前的工作已经承诺对dram架构和协议进行最小的改变,允许外部刷新操作的行粒度协议和内部优化的使用(k.k.-wchang,d.lee,z.chrishti,a.r.alameldeen,c.wilkerson,y.kimando.multu:“improvingdramperformancebyparallelizingrefreshwithaccesses”inhigh-performancecomputerarchitecture(hpca),2014ieee20thinternationalsymposium,2014)。

其他先前的工作还声称,通过使用单独的act和pre命令,即rgr,可能无法使优化的自动刷新的性能和能耗节省相等。比较i.bhati,z.chishti,s.-l.luandb.jacob,"flexibleauto-refresh:enablingscalableandenergy-efficientdramrefreshreductions,"inproceedingsofthe42ndannualinternationalsymposiumoncomputerarchitecture,2015和i.bhati,m.-t.chang,z.chishti,s.-l.luandb.jacob,"dramrefreshmechanisms,trade-offs,andpenalties,"computers,ieeetransactionson,vol.pp,no.99,pp.1-1,2015。

因此,需要明显矛盾的内部和外部刷新机制,该刷新机制看似彼此排斥。



技术实现要素:

根据独立权利要求,可以通过用于刷新dram和相关dram控制器的新方法来解决该需求。

根据本发明的一个方面,可以提供一种用于基于优化的命令序列来刷新具有外部多行多库刷新功能的dram的方法。所述方法可以包括:在dram的初始化时确定用于外部多行多库刷新功能的操作间时序参数;确定用于行级激活(act)和预充电(pre)命令的优化时序参数;以及将优化时序参数应用于行级act和pre命令,以使用外部多行多库刷新功能刷新dram。

根据本发明的另一个方面,可以提供一种用于基于优化的命令序列来刷新具有外部多行多库刷新功能的dram的dram控制器。所述dram控制器可以包括:第一确定单元,适于在dram初始化时确定用于外部多行多库刷新功能的操作间时序参数;以及第二确定单元,适于确定用于行级激活(act)和预充电(pre)命令的优化时序参数。

所述dram控制器还可以包括:适于将优化时序参数应用于行级act和pre命令,以使用外部多行多库刷新功能刷新dram。

可以注意到,多行多库刷新功能包括新颖的信号序列,并且可以不与jedecsdram的内部自动刷新机制相互混合。实际上,这里提出的多行多库刷新功能可以取代在多个jedecsdram中的内部自动刷新机制(这些机制也是多行多库刷新)。因此,与传统的外部rgr(rowgranularrefresh,行粒度刷新)方法相比,新的刷新功能可以被称为优化行粒度刷新orgr(optimizedrowgranularrefresh)。

所提出的刷新dram的方法可以提供多种优点和技术效果:

该逐行刷新功能可以由存储控制器外部触发,也可以用于标准的jedec兼容sdram存储器芯片,而不需要对sdram存储器芯片进行任何更改。因此,使用这里提出的技术可以减少sdram通常所需的刷新周期时间和能耗。实际上,可以看出,这里提出的最先进的ddr3作为dram的先进刷新技术可以产生优化的刷新减少方案,如上所述的技术方案已经高度优化,比内部自动刷新功能高出45%的性能效率。其也可能比非优化的逐行刷新高出10%的能耗效率。所提出的技术可以增强所有使用rgr的现有刷新优化方案,并且其不需要对dram或dram协议(即dram的时序规范)进行任何更改。此外,当dram仅部分刷新时,所提出的技术orgr的性能和能耗改进将更高。

因此,新的刷新功能/技术可以与现有的标准sdram一起使用,进一步优化计算机系统的吞吐量和能耗效率。因此,不使用而是替换sdram内部刷新机制(即自动刷新功能)。

执行刷新操作时,通过改进三个dram时序参数tras(act和pre到同一库之间的时间)、trrd(两个连续act命令之间的时间)、trp(pre命令完成的时间),基本上实现了这些优点。所有优化的参数可以在dram的初始化和校准阶段期间导出。然后,优化的参数可以由新型存储控制器使用所提出的多行多库刷新功能用于外部刷新,而不是使用sdram内部(自动)刷新机制的单个触发器刷新。

对于正常命令(如读或写),标准时序规范(如sdram时序规范)可由存储器或dram控制器使用。因此,sdram的正常操作完全不受额外开销的影响。

在下文中,将描述该方法的发明构思的另外的实施例,其也可以适用于相关系统:

根据该方法的一个优选实施例,具有内部多行多库刷新功能的dram为jedecsdram,例如典型的工业标准ddr3dram。如今,它们通常用于许多应用中。因此,新提出的概念可以迎合大部分dram市场。新的外部多行多库刷新功能可以应用于这种jedecsdram。

根据所述的方法的特定实施例,所述优化时序参数包括从包含以下项的组中选择至少一个:act命令和pre命令之间的时间(tras)、两个连续的act命令之间的时间(trrd)、四库激活窗口(tfaw)和pre命令完成的时间(trp)。通常,那些时序参数的正确相互关系可以提供目标结果。

根据一个有利实施例,该方法可以继续使用未优化的时序参数用于操作命令,特别是读取和/或写入命令。因此,可以不更改这些操作而使用正常的jedecsdram时序规范。

根据该方法的另一有利实施例,通过发出(特别是在时间方面)更接近act命令的pre命令,可以逐步减小时序参数tras,直到检测到存在数据选通(datastrobe)dqs信号以响应之后发出的rd(读取)命令。这样,可以以优雅的方式确定优化的t*ras时序的预值。可以注意到,差分输入/输出数据选通信号通常可以表示为dqs/#dqs信号(dqs)。

根据进一步优选的实施,该方法还可包括:(a)使用第一act命令寻址dram中存储器单元的第一库中的第一行,如r1;(b)使用pre命令寻址第一库中的同一第一行r1,其时序违反tras,即具有相对于规范太短的值;(c)在第一act命令之后的时间tras之后,用第二act命令寻址dram中存储器单元的第一库中的另一行,如r2;(d)根据dram的时序规范(再次太短),通过违反与第二act命令相关的trcd要求的rd(读取)命令寻址dram中存储器单元的第一库;和(e)响应于第一库中的读取命令,确定从用第二act命令打开的另一行所接收的错误输出数据(输入/输出dq信号)。可以重复步骤(a)至(e),从而逐步减小tras的步长,直到确定通过读取命令可以接收到先前写入到第一行r1的数据,而不是写入另一行r2的数据。

因此,在dram控制器侧执行和控制比较。有利地,r1和r2中的数据模式应该是不同的。在可以执行步骤(a)至(e)之前,可以将不同的数据模式写入单元。这可以作为所提出的步骤序列的初始化的一部分来执行。使用的数据模式可以是例如“00000000”对比“11111111”。这样,可以保证一个字节的所有比特都符合上述条件。

这样,可以确定逐步迭代优化的命令序列。

根据该方法的另一优选实施例,优化时序参数t*ras由逐步减小的时序参数tras加上dram时钟周期确定。因此,最佳tras值,即trasmin可以通过t*ras的预值加上tck来计算,其中tck为dram的时钟信号。

根据该方法的进一步有利实施例,如在sdram自动刷新机制中那样,可以逐行地执行(特别是外部刷新dram)而不是一次性地执行多行自动刷新。除此之外,dram的外部刷新也可以逐行执行。因此,dram的所有单元可以通过本发明的刷新概念来寻址。

附图说明

应该注意,本发明的多个实施例是参考不同主题描述的。尤其是,一些实施例参考方法类权利要求描述,而另一些实施例参考装置类权利要求描述。然而,除非另有说明,本领域技术人员将从以上和以下描述中归集属于一个种类主题的特征,以及与不同主题相关的特征之间的任何组合,尤其是,在方法类权利要求的特征与装置类权利要求的特征之间的任何组合,认为已在本文件中公开。

以下定义的方面和本发明的其他方面从下文将要描述的实施例的示例中显而易见,并且参考实施例的示例进行解释,但是本发明不限于此。

仅通过示例并参考以下附图,将描述本发明的优选实施例:

图1示出了用于刷新dram的本发明方法的实施例的框图。

图2示出了用于dram的典型读/写操作的感测方案的实施例。

图3示出了根据所提出的方法的刷新操作的时序图。

图4显示了用于检测trasmin的第一实施代替方案。

图5示出了用于检测trasmin的第二实施代替方案的时序图。

图6示出了具有所需元件的dram控制器的实施例的框图。

具体实施方式

在本说明书的上下文中,可以使用以下约定、术语和/或表达:

术语“dram”(也表示为动态随机存取存储器)可以表示一种易失性存储器,用于将每个数据比特存储在集成电路内的单独电容器中。所述电容器可以充电或放电;这两个状态用比特的两个值来表示,通常称为0和1。即使是“非导电”晶体管也总是有少量的泄漏,因此电容器缓慢地放电,信息最终会消失,除非电容器电荷定期刷新。由于需要刷新,所以其是动态存储器,而不是静态随机存取存储器(staticrandom-accessmemory,sram)和其他静态类的存储器。与闪存不同,(与非易失性存储器相比)dram是易失性存储器,因为它在断电时会快速丢失数据。然而,dram确实显示出有限的数据剩磁。

dram广泛地应用于需要低成本和高容量存储器的数字电子设备中。dram的最大应用之一是现代计算机中的主存储器(俗称“ram”),以及这些计算机中使用的组件的主存储器,例如显卡。

dram的优点在于其结构简单:与sram(静态ram)中的四个或六个晶体管相比,每比特仅需要一个晶体管和一个电容器。这允许dram达到非常高的密度。使用的晶体管和电容非常小,可以在一个存储器芯片上放置数十亿。由于存储器单元的动态特性,dram消耗相对大量的功率,因此需要以不同的方式来管理功耗。

术语“jedecsdram”可以表示为根据jedec固态技术协会的规范的动态ram,其包括仅需要一个外部触发的内部自动刷新机制,以便在dram芯片内部自主地执行多行多库的刷新。dram控制器仅需要一个触发信号,以便执行sdram芯片的内部自动刷新功能。

术语“内部多行多库自动刷新功能”可以表示根据jedec固态技术协会规范的dram的自主刷新。

术语“初始化时间”可以表示存储器系统可以首次启动的时间段。这通常可以是开启相关计算机系统的时间。

术语“操作间时序参数”可以表示特定操作或命令之间的时序规范,尤其是特定时间值。这里,act和pre之间的时序(仅限tras的初始值)、以及两个连续的act命令(trrd)之间的时间、四个库激活窗口(tfaw)和pre命令完成的时间(trp),用于外部多行多库刷新功能。可以再次注意,该功能可以是由dram控制器发出的一系列单独命令。

术语“优化时序参数”可以表示用于最佳地执行sdram的外部刷新功能的时序参数(尤其是trasmin)。

术语“行级激活(act)”可以表示用于打开特定库中的行的激活命令。sdram芯片可以具有多库架构,并且可以按库、行和列进行组织。许多芯片组合在存储器模块上以增加字宽。这可以称为存储器配置。

术语“预充电(pre)”可以表示用于关闭特定库中的行的命令。因此,状态可能会在“空闲”和“活动”之间不断变化。为了从“空闲”变为“活动”,使用act命令:为了从“活动”变为“空闲”,可以使用precharge命令。

术语“dq信号”可以表示有效的输入/输出数据信号,这里是来自存储器设备的一个或多个输出信号。

术语“dqs信号”可以表示有效的输入/输出数据选通信号,这里是来自存储器设备的一个或多个输出信号。

术语“rd(读取)命令”可以表示可以启动读取突发,以将数据从行缓冲器的多个存储器单元移动到上面定义为dq的输入/输出数据信号。

术语“trcd”可以表示行地址(rowaddress,ras)到列地址(columnaddress,cas)延迟的时间。一旦将行地址发送到存储控制器,在访问行的多列之一前存在这个周期的延迟。因此,如果没有选择行,这意味着必须在向dram发出rd命令之前等待trcd。

术语“错误数据”可以表示不期望的数据。例如,如果已经将数据模式写入存储器单元,并且稍后读取存储器单元的内容并将其与最初写入的数据模式进行比较,则如果数据相同则认为数据是“正确的”。如果写入和读取的数据不同,则认为其是“错误的”。

在下文中,将给出对附图的详细描述。图中的所有说明都是示意性的。首先,给出了用于刷新dram的本发明方法的实施例的框图。然后,将进一步地描述其他实施例以及dram控制器的实施例。

图1示出了利用外部多行多库刷新功能刷新dram的本发明方法的实施例的框图。在基本形式中,该方法可以总结为如图1的流程图所示。基于优化的命令序列利用外部多行多库刷新功能刷新dram的方法100包括102,在dram的初始化时(尤其是在初始化和校准时间时)确定用于外部多行多库刷新功能的操作间时序参数。同样,这不是单个命令,而是一系列不同的命令。

该方法还包括104,确定用于行级激活(act)和预充电(pre)命令的优化时序参数,以及106,为行级act和pre命令应用优化时序参数,用于刷新dram以作为外部多行多库刷新功能的一部分。该外部多行多库刷新功能用于替代典型sdram芯片的内部自动刷新功能。由于新提出的概念的效率更高,内部自动刷新功能在sdram中保持激活状态,但不使用。

图2示出了用于dram的标称读/写操作的感测方案的实施例。act命令触发本地工作线(localworkline,lwl)驱动器,其将lwl升高到高于vdd加vth的电压。比特线(bitline)产生一个小电荷,由初级读出放大器(psa)放大到vdd。当比特线电压升至vdd的约92%时,发出rd(读取)命令,从而升高列选择线(columnselectline,csl)。这将在比特线电压中产生下降202,直到csl降低;这增加了恢复时间,其反映在jedec指定的tras中。但是,在rgr的情况下,rd命令不遵循act命令,因此比特线中没有如图3所示的电压降302。这使得能够快速恢复比特线,因此可以减少tras。

可以记住,sdram供应商使用内置模拟定时器(实际上是trasmin定时器),其在最小恢复时间结束之前防止对已经激活的行进行预充电,这可确保数据不会因早期预充电而中断。与这种传统方法相反,所提出的概念依赖于在初始化(和校准)时间期间对dram细节的逆向工程,以使用任何所提出的方法找出trasmin。

图3示出了根据所提出的方法的刷新操作的时序图。示出了新的减少的时序参数t*rp和t*ras。比较图2和图3,显然t*ras远小于dram的原始jedec规范的tras。

图4示出了用于trasmin检测的第一替代实施方案的时序图400。存储控制器最初向任意库(例如,库b1)和行(例如,行r1)发出act命令402。然后,在tras之后发出pre命令404,接着在trp(pre命令完成的时间)之后发出rd命令406。之所以在pre命令之后出现的rd命令将被dram忽略,是因为库b1已经预充电,因此dq(s)(数据信号)将不会出现在总线上。然后,控制器通过在更接近act命令402的时间发出pre命令404逐渐减小tras,直到响应于rd命令(406)而检测到dq(s)的存在。当pre命令进入trasmin时间时,dram忽略pre命令以防止数据恢复失败,因此稍后出现的rd命令406将从先前激活的库读取。因此,dq(s)的存在表明dram检测到正确定时的rd命令406,并且控制器将当时有效的时序,即,根据所提出的方法,对应的t*ras+tck(dram时钟周期)作为用于执行优化行粒度刷新(orgr)的trasmin。

图5示出了用于确定最小tras(即trasmin)的第二替代实施方案的时序图。如果第一替代实施方案失败(即,如果根据图4的替代实施方案失败),则存储控制器可以执行该测试。

首先,存储控制器向任意库(例如,库b1)和行(例如,行r1)发出act命令502。然后,其将pre命令504发送到同一存储器库,违反了tras。稍后,在第一act命令502之后的tras,其向同一库b1发出另一个act命令506,但是向不同的行发出,例如r2。紧接着第二act命令506,发出违反trcd的rd命令508。因此,由于trcd违规,存储控制器将接收错误数据512以响应于该rd命令508。然后,控制器通过逐步减少tras重复发出相同的命令集(act502、pre504、act506、rd508),并在每个步骤中调查数据总线以获得正确的数据。当第二act506命令带有第一act命令的trasmin间隔时,dram忽略它并从第一激活行发出读取数据510,因为没有trcd违反,从而传送正确的数据510。最后,根据所提出的方法,将响应于rd命令在数据总线上观察到正确数据的t*ras+tck的值作为用于执行优化行粒度刷新(orgr)的trasmin。

图6示出了dram控制器的实施例的更形式化的框图,该dram控制器基于优化的命令序列利用外部多行多库自动刷新功能刷新dram。dram控制器包括第一确定单元602,适于在dram的初始化和校准时间时确定用于外部多行多库刷新功能的操作间时序参数;第二确定单元604,适于确定(行级激活(act)和预充电(pre)命令的优化时序参数,即trasmin;以及应用模块606,适于应用行级act和pre命令的优化时序参数,以利用外部多行多库刷新功能刷新dram。

出于说明的目的已经给出了对本发明的各种实施例的描述,但是并不旨在穷举或限制于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里选择使用的术语是为了最好地解释实施例的原理、实际应用、对市场中所出现技术的技术改进、或使本领域的其他普通技术人员能够理解本文公开的实施例。

这里参考根据本发明实施例的方法和装置(系统)的流程图和/或框图来描述本发明的各方面。可以理解的是流程图图示和/或框图的每个框,以及流程图图示和/或框图中的框的组合,可以通过计算机可读程序指令来实现。

附图中的流程图和/或框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示模块、片段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个方框实际上可以基本上同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图说明的每个方框,以及框图和/或流程图中的方框的组合,可以通过专用的基于硬件的系统执行指定功能或运行或执行专用硬件和计算机指令的组合来实现。

这里使用的术语仅用于描述特定实施例的目的,并不意图限制本发明。如这里所使用的,单数形式“一”,“一个”和“所述”也旨在包括复数形式,除非上下文另有明确说明。还应当理解,当在本说明书中使用术语“包括”和/或“包含”时,指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组合。

以下权利要求中的所有装置或步骤加上功能元件的对应结构、材料、动作和等同物,如具体要求保护的那样旨在包括用于结合其他要求保护的元件执行功能的任何结构、材料或动作。出于说明和描述的目的已经给出了对本发明的描述,但是并不旨在穷举或将本发明限于所公开的形式。在不脱离本发明的范围和精神的情况下,许多修改和变型对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域普通技术人员能够理解具有各种修改的各种实施例的本发明,这些修改适合于预期的特定用途。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1