一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器设备的粒度刷新率控制的制作方法

2021-07-27 15:37:00 来源:中国专利 TAG:
存储器设备的粒度刷新率控制的制作方法



背景技术:

申请人提供以下说明以帮助读者理解。所提供的信息或所引用的参考文献均不被承认是现有技术。

存储器设备用于各种各样的应用中以用于存储数据。根据存储器设备的类型,可能需要周期性地刷新存储在那些存储器模块中的数据以防止数据丢失。然而,目前用于刷新存储器设备的机制由于其配置和其操作方式而具有局限性。



技术实现要素:

本公开的系统、方法和设备各自具有若干创新方面,这些创新方面中没有一个独自负责本文所公开的所有期望的属性。

现在将参照某些示例和实施方案来描述本公开的各个方面,这些示例和实施方案旨在举例说明而非限制本公开。尽管出于举例说明的目的,本文所述的示例和实施方案将关注于特定的系统和过程,但本领域的技术人员将会理解,这些示例仅是例示性的,并非旨在进行限制。

根据本公开的一些方面,公开了一种方法。该方法包括将b位字的每个位存储在存储器设备的不同子阵列中。这些位中的每个位与位位置相关联,并且该存储器设备包括多个子阵列。该方法还包括基于该多个位位置对涉及该b位字的机器学习或信号处理任务的执行的相对重要性来确定该多个位位置的刷新间隔。该刷新间隔基于保真性度量和资源度量。该方法还包括:基于为该多个位位置确定的刷新间隔来刷新该多个子阵列,并且在接收到新的保真性度量或新的资源度量时动态地更新该多个位位置的刷新间隔。

根据本公开的一些其他方面,公开了一种系统。该系统包括具有多个子阵列的存储器设备,使得该多个子阵列中的每个子阵列存储b位字的一位。该系统还包括与该多个子阵列中的每个子阵列操作地关联的存储器控制器。该存储器控制器包括编程指令,该编程指令用于在该多个子阵列中的每个子阵列中存储b位字的一位,并且确定该b位字的最高有效位的第一刷新间隔和该b位字的最低有效位的第二刷新间隔。第一刷新间隔小于第二刷新间隔,并且第一刷新间隔和第二刷新间隔被确定为使保真性度量最小化或使资源度量最小化。该存储器控制器还包括编程指令,该编程指令用于基于第一刷新间隔刷新该多个子阵列中的存储最高有效位的第一子阵列,并且基于第二刷新间隔刷新该多个子阵列中的存储最低有效位的第二子阵列。

根据本公开的其他方面,公开了一种存储有计算机可读指令的非暂态计算机可读介质。该指令在由与动态随机存取存储器模块相关联的处理器执行时,使得该处理器:接收保真性度量,接收资源度量,接收粒度,并且确定b位字的多个位位置的刷新间隔以满足粒度和资源度量,同时使保真性度量最小化。对于涉及b位字的机器学习或信号处理任务的执行而言,更重要的位位置的刷新间隔小于较不重要的位位置的刷新间隔。该指令还使得处理器在接收到新的保真性度量、新的资源度量或新的粒度时动态地更新该多个位位置的刷新间隔。

前述发明内容仅是例示性的,并不旨在以任何方式进行限制。除了上述例示性方面、实施方案和特征之外,通过参考以下附图和具体实施方式,另外的方面、实施方案和特征将变得显而易见。

附图说明

图1是根据本公开的一些实施方案的计算系统的示例性框图。

图2是根据本公开的一些实施方案的图1的计算系统的动态随机存取存储器(“dram”)存储器芯片的示例性框图。

图3是根据本公开的一些实施方案的示出图2的dram存储器芯片的其他细节的示例性框图。

图4是根据本公开的一些实施方案的图1的计算系统的用于刷新存储在图2的dram存储器芯片中的数据的刷新系统的示例性框图。

图5a是根据本公开的一些实施方案的示出图4的刷新系统的另一个示例的示例性框图。

图5b是根据本公开的一些实施方案的示出图4的刷新系统的又一个示例的示例性框图。

图6是根据本公开的一些实施方案的概述由图4至图5b的用于刷新存储在图2的dram存储器芯片中的数据的刷新系统实现的操作的示例性流程图。

图7是根据本公开的一些实施方案的更详细地概述图6的流程图的某些操作的示例性流程图。

图8是根据本公开的一些实施方案的更详细地概述图6的流程图的某些操作的另一个示例性流程图。

图9是根据本公开的一些实施方案的描绘存储在图2的dram存储器芯片中的数据的特定位位置的保真性度量和刷新功率消耗之间的关系的示例性曲线图。

图10是根据本公开的一些实施方案的描绘存储在图2的dram存储器芯片中的数据的特定位位置的另一个保真性度量和刷新功率消耗之间的关系的示例性曲线图。

图11是根据本公开的一些实施方案的描绘存储在图2的dram存储器芯片中的数据的特定位位置的保真性度量和刷新功率消耗之间的关系的另一个示例性曲线图。

图12是根据本公开的一些实施方案的加扰操作的示例性框图。

结合附图,根据以下描述和所附权利要求,本公开的上述和其它特征将变得显而易见。应当理解,这些附图仅描绘了根据本公开的若干实施方案,并且因此不应被认为是对其范围的限制,通过使用附图,将更具体且更详细地描述本公开。

具体实施方式

在以下具体实施方式中,参考了形成该具体实施方式的一部分的附图。在附图中,除非上下文另外指明,否则类似的符号通常标识类似的部件。在具体实施方式、附图和权利要求中描述的例示性实施方案并非旨在为限制性的。在不脱离在此呈现的主题的实质或范围的情况下,可利用其它实施方案,并且可进行其它改变。将容易理解的是,如本文一般所述并且在图中示出的本公开的各方面可被布置、取代、组合和设计成广泛多种不同的配置,所有这些配置均被明确地设想并成为本公开的一部分。

存储器刷新(在本文中也称为刷新、刷新操作等)是周期性重复的过程,该过程读取和重写存储器单元的数据以防止存储在该存储器单元内的数据丢失。动态随机存取存储器(“dram”)存储器单元将电荷形式的数据存储在电容器中。dram存储器单元不能永久性地保留其数据,因为电容器电荷会随着时间的推移而逐渐损失。因此,dram存储器单元的电容器需要周期性地被刷新以对电容器再充电。dram存储器单元能够保持存储在其中的数据的时间被称为dram存储器单元的“保持时间”。dram存储器单元的两个刷新周期之间的时间间隔被称为“刷新间隔”。刷新间隔是刷新率的倒数。换句话讲,刷新间隔越大,刷新速率越小。换句话讲,刷新频率较低(从而具有较大刷新间隔)的dram存储器单元比刷新频率较高的dram存储器单元更容易丢失存储在该dram单元中的数据。不能在刷新间隔内保持电荷的dram存储器单元会导致故障,该故障被称为“保持故障”或“保持错误”。现有dram存储器标准中使用的示例性刷新间隔是六十四毫秒。

虽然刷新操作对于防止dram存储器单元中的数据丢失是重要的,但是频繁的刷新操作会消耗大量的功率并降低系统性能。刷新操作期间消耗的功率在本文中称为“刷新功率”。随着dram存储器设备的容量增加以及随着dram存储器单元的尺寸缩小,dram存储器单元的电容器变得更容易发生电荷泄漏并且需要更频繁的刷新操作。更频繁的刷新操作又会更多地增加刷新功率消耗。刷新功率消耗在电池供电/移动计算应用中是至关重要的,特别是因为在空闲期间仍然需要刷新操作,这与写入和读取操作不同。研究已表明,随着dram存储器设备的容量增加,刷新功率消耗变成dram存储器设备的总体功率消耗的更大部分。例如,研究已表明,四千兆字节dram存储器设备中的刷新功率消耗可占该dram存储器设备的总功率消耗的约百分之十五,并且在六十四千兆字节dram存储器设备中,刷新功率可占该dram存储器设备的总功率消耗的约百分之四十七。

降低刷新功率消耗的一种机制是降低dram存储器单元的刷新速率(或增加刷新间隔)。然而,降低刷新率增大了保持故障的可能性。为了抵消保持故障,一些技术使用纠错编码方案来纠正任何所得的保持故障。然而,这些纠错方案会产生存储或带宽开销,并且是不期望的。一些其他技术根据经验计算dram存储器设备的理想刷新率,并且将刷新间隔固定到根据经验计算的刷新率。利用此类技术,一旦刷新率固定,即使刷新间隔对于每个dram单元可能不是最佳的,刷新间隔也不能改变。

本公开提供了用于通过实现期望的保真性度量和资源度量来动态地改变和优化刷新间隔的技术解决方案。在许多信号处理和机器学习操作中,位错误的影响取决于位在b位字中的位位置。例如,在一些实施方案中,b位字的最高有效位(“msb”)位置中的错误可比最低有效位(“lsb”)位置中的错误多得多地降低数据对信号处理和机器学习操作的执行的总体影响。msb位置和lsb位置中的错误的此类相对或不同影响可存在于例如图像和视频应用中,并且此类应用可更好地容忍lsb位置中的错误,同时保持可接受的性能水平。类似地,在其他实施方案中,其他位位置可能比msb和lsb更重要。因此,本公开提供了用于基于位位置的相对重要性来确定刷新间隔的机制。此外,本公开提供了基于使保真性度量诸如均方误差(“mse”)、峰值信噪比(“psnr”)、误码率(“ber”)等最小化或使资源度量诸如刷新功率最小化来确定刷新间隔的机制。

在一些实施方案中,刷新间隔控制系统可应用凸规划和/或机器学习来导出刷新间隔,该刷新间隔基于位位置的相对重要性并且满足保真性度量和/或资源度量。例如,在一些实施方案中,刷新间隔控制系统可使用karush-kuhn-tucker(kkt)条件来确定刷新间隔。由此类凸规划确定的刷新间隔被认为是最佳刷新间隔。有利的是,由刷新间隔控制系统确定的最佳刷新间隔包括针对更重要位位置的比针对较不重要位位置的刷新间隔短的刷新间隔。例如,在一些实施方案中,msb的最佳刷新间隔可比lsb的最佳刷新间隔短。因此,与均匀刷新间隔相比,可计算对于位位置最佳的不均匀刷新间隔并将其用于减少刷新功率消耗,减少mse并改善psnr。

现在参见图1,其中示出了根据本公开的一些实施方案的计算系统100的示例性框图。计算系统100包括与存储器设备110相关联的主机设备105。主机设备105可被配置为接收来自一个或多个输入设备115的输入并向一个或多个输出设备120提供输出。主机设备105可被配置为分别经由适当接口或通道125a、125b和125c与存储器设备110、输入设备115和输出设备120进行通信。计算系统100可在多种计算设备中实现,该多种计算设备诸如计算机(例如,台式计算机、膝上型计算机等)、平板电脑、个人数字助理、移动设备、可穿戴计算设备(诸如智能手表、其它手持式或便携式设备)、或适于使用主机设备105执行操作的任何其它计算单元。

输入设备115可包括多种输入技术中的任一种,诸如键盘、触笔、触摸屏、鼠标、轨迹球、小键盘、麦克风、语音识别、运动识别、远程控制器、输入端口、一个或多个按钮、拨号盘、操纵杆、以及与主机设备105相关联并且允许外部源(诸如用户)将信息(例如,数据)键入主机设备中并且将指令发送到主机设备的任何其它输入外围设备。类似地,输出设备120可包括多种输出技术,诸如外部存储器、打印机、扬声器、显示器、麦克风、发光二极管、耳机、绘图仪、语音生成设备、视频设备、全球定位系统、以及被配置为从主机设备105接收信息(例如,数据)的任何其它输出外围设备。输入到主机设备105中和/或从主机设备输出的“数据”可包括多种文本数据、图形数据、视频数据、声音数据、位置数据、它们的组合,或适于使用计算系统100进行处理的其它类型的模拟和/或数字数据中的任一种。

主机设备105可包括一个或多个中央处理单元(“cpu”)内核或处理器130a-130n,其可被配置为执行用于运行与主机设备相关联的一个或多个应用程序的指令。在一些实施方案中,运行一个或多个应用程序所需的指令和数据可存储在存储器设备110内。主机设备105还可被配置为将运行一个或多个应用程序的结果存储在存储器设备110内。因此,主机设备105可被配置为请求存储器设备110执行各种操作。例如,主机设备105可请求存储器设备110读取数据、写入数据、更新或删除数据、和/或执行管理或其它操作。

为了有利于与存储器设备110进行通信,主机设备105可包括存储器控制器135或与该存储器控制器相关联。虽然存储器控制器135被示出为主机设备105的一部分,但在一些实施方案中,该存储器控制器可替代地为存储器设备110的一部分或计算系统100的另一个元件并且与存储器设备操作地相关联。存储器控制器135可被配置为从主机设备105接收指令并且根据那些指令执行操作的逻辑块或电路。例如,存储器控制器135可被配置为经由接口125a从存储器设备110读取数据或将数据写入该存储器设备。尽管接口125a在图1中已被示出为64位宽,但在其他实施方案中,接口125a的带宽可根据存储器设备110的配置而变化。

在一些实施方案中并且如图所示,存储器设备110可包括dram存储器模块140。在其他实施方案中,存储器设备110可包括需要定期刷新的其他或附加类型的存储器模块以防止数据丢失,诸如同步dram、磁阻随机存取存储器(mram)、电阻式随机存取存储器(reram)等,以及不需要定期刷新的存储器模块。为了便于描述,dram将用于此处的描述中,但各种实施方案的范围涵盖这些其他存储器类型,包括上述那些存储器类型。此外,尽管存储器设备110已被示出为具有单个dram模块(例如,dram存储器模块140),但在其他实施方案中,存储器设备可由多个dram模块构成。dram存储器模块140中的每个dram存储器模块可包括被组织成多个存储组145a-145n的多个dram芯片。例如,存储组145a可包括dram芯片150a-150h。尽管存储组145a已被示出为具有八个dram芯片(例如,dram芯片150a-150h),但在一些实施方案中,形成存储组145a的一部分的dram芯片的数量可变化为小于八个或大于八个。此外,存储组145a-145n中的每个存储组可具有与其他存储组相同数量或不同数量的dram芯片。

因此,存储组145a-145n中的每个代表同步操作以提供宽数据总线的一组dram芯片。例如,在一些实施方案中并且如图所示,dram芯片150a-150h中的每个dram芯片可被配置用于8位通信,使得八个dram芯片一起形成接口125a的64位宽的带宽。在其他实施方案中,dram芯片150a-150n中的一个或多个dram芯片可被配置用于以其他位宽度进行通信。通过同步操作,dram芯片150a-150n中的每个dram芯片可在存储器控制器135和dram存储器模块140之间同时传输八位数据。此外,接口125a可被配置用于与dram存储器模块140进行双数据速率或单数据速率通信。因此,存储器控制器135可单独而且独立地控制dram存储器模块140的存储组145a-145n中的每个存储组以及这些存储组中的每个的dram芯片150a-150h中的每个dram芯片。

应当理解,图1中示出和描述了计算系统100的仅一些部件。然而,计算系统100可包括其它部件,诸如各种电池和电源、联网接口、路由器、交换机、外部存储器系统、控制器等。一般来讲,计算系统100可包括执行本文所述的功能所需或被认为是期望的多种硬件、软件和/或固件部件中的任一种。类似地,主机设备105、输入设备115、输出设备120以及包括dram存储器模块140的存储器设备110可包括在执行本文所述的功能时被认为是必要的或期望的其他硬件、软件和/或固件部件。此外,在某些实施方案中,存储器设备110可集成主机设备105的一些或所有部件,包括例如cpu内核130a-130n,并且cpu内核可实现如本文所述的刷新优化确定和相关控制。

现在转到图2,其中示出了根据本公开的一些实施方案的dram芯片200的其他细节。dram芯片200可以是图1的dram存储器模块140的多个dram芯片中的一个dram芯片。例如,dram芯片200可为dram芯片150a-150n中的一个dram芯片。dram芯片200可包括多个存储体205a-205n。例如,在一些实施方案中,dram芯片200可包括八个存储体。在其他实施方案中,dram芯片200可包括十六个存储体。在其他实施方案中,dram芯片200可根据需要包括另一数量的存储体。存储体205a-205n中的每一者被配置为独立地处理dram命令(例如,读取或写入数据)以增加并行性。存储体205a-205n中的每一者的更多细节在下面的图3中示出。

现在参考图3,示出了根据本公开的一些实施方案的示例性dram芯片的存储体300的示例性框图。存储体300可对应于图2的存储器组205a-205n中的一者。存储体300包括被组织成行和列的dram存储器单元的存储器阵列305。更详细地示出了一个dram存储器单元310。虽然未具体标记,但dram存储器单元形成于存储器阵列305的行和列的交汇处。存储器阵列305中的行和列的数量取决于存储体300中所需的存储器容量。存储器阵列305的每一列形成位线315(其中仅一些在图3中标记),并且该存储器阵列的每一行形成字线320(同样,其中仅一些在图3中标记)。每列中的dram存储器单元(例如,dram存储器单元310)共享位线(例如,位线315中的一个位线),并且每行中的dram存储器单元共享字线(例如,字线320)。

dram存储器单元310包括被配置为存储电荷形式的二进制数据的电容器325。在一些实施方案中,电容器325的充电状态对应于二进制“1”,并且该电容器的放电状态对应于二进制“0”。电容器325在一端处连接到存取晶体管330,该存取晶体管用作电压控制开关以将电容器325连接到dram存储器单元是其一部分的列的位线315。存取晶体管330经由连接到dram存储器单元310是其一部分的行的字线320的存取晶体管的控制栅极而被接通和断开。可以使用行解码器335选择性地启用或禁用字线320中的每个字线。当行解码器335启用字线320中的特定字线时,所启用的字线继而启用dram存储器单元310的存取晶体管330和连接到该字线的所有其他dram单元。此外,位线315中的每个位线连接到感测放大器340。感测放大器340检测存储在电容器325中的电荷并将该电荷转换成二进制信息。

因此,当dram存储器单元310的存取晶体管330和沿字线320中的所选择的一个字线的其他dram存储器单元的存取晶体管被启用时,这些dram存储器单元全部经由其相应的位线315连接到感测放大器340,从而使得该感测放大器能够通过感测存储在dram存储器单元中的每个dram存储器单元中的电荷来读取数据。由感测放大器340检测并转换成二进制信息的电荷可存储在行缓冲器和列解码器345内。行缓冲器和列解码器345的行缓冲器部件可锁存dram存储器单元310和已检测到的其他dram存储器单元的信息,并且行缓冲器和列解码器的列解码器部件可从行缓冲器部件传输信息区块以用于传输到存储器控制器(例如,存储器控制器135)。行缓冲器和列解码器345还可用于暂时存储要存储在dram存储器单元310和存储器阵列305的其他dram存储器单元内的数据。

每个dram存储器单元(例如,dram存储器单元310)被配置为在其中存储一位数据。dram存储器单元310的电容器325随时间推移而泄漏电荷。为了防止存储在电容器325中的数据丢失,周期性地刷新dram存储器单元310。类似地,周期性地刷新所有其他dram存储器单元。

转到图4,示出了根据本公开的一些实施方案的刷新系统400的示例性框图。刷新系统400用于周期性地刷新dram存储器单元。刷新系统400包括用于确定dram存储器单元(例如,图3的dram存储器单元310)的最佳刷新间隔的刷新间隔控制系统405,和用于将数据存储在dram模块420的一个或多个子阵列415a-415n内的交织器410。dram模块420对应于dram存储器模块140。因此,dram模块420可包括被组织成一个或多个存储组的一个或多个dram芯片,并且每个dram芯片可包括一个或多个存储体,并且每个存储体可包括多个dram存储器单元。在一些实施方案中,子阵列415a-415n中的每个子阵列可对应于dram模块420上的dram芯片的存储体。此外,在一些实施方案中,子阵列415a-415n中的每一者可属于dram芯片上的相同存储组,而在其他实施方案中,子阵列中的至少一些可为不同存储组的一部分。在其他实施方案中,子阵列415a-415n中的每一者可对应于dram模块上的独立dram芯片。在一些实施方案中,子阵列415a-415n中的每一者可被形成用于一个存储体的专用部分。在其他实施方案中,子阵列415a-415n中的每一者可由dram模块420的其他专用部分形成,具体取决于dram模块的架构。

在一些实施方案中,子阵列415a-415n中的每一者被配置用于并行操作。换句话讲,与dram模块420相关联的存储器控制器425可能够独立地而且同时地控制子阵列415a-415n中的每一者。另外,子阵列415a-415n中的每一者可相对于其他子阵列具有相同的大小(例如,相同的容量)或不同的大小。子阵列415a-415n中的每一者可被配置为存储存储在dram模块420内的数据。对于存储在dram模块420内的每条数据,子阵列415a-415n中的每一者被配置为存储该条数据的一位。例如,对于存储在dram模块420内的八位数据,子阵列415a-415n中的第一子阵列可被配置为存储该八位数据的第一位,第二子阵列可被配置为存储该八位数据的第二位,第三子阵列可被配置为存储该八位数据的第三位,以此类推。

形成子阵列415a-415n的一部分的子阵列的数量可基于dram模块420的配置和dram模块存储的每条数据的带宽(例如,位宽度)而变化。在一些实施方案中,子阵列415a-415n可包括八个子阵列以存储八位数据。在其他实施方案中,子阵列415a-415n可包括十六个子阵列以存储十六位数据。在其他实施方案中,可形成子阵列组以存储宽度大于八位的数据。例如,在一些实施方案中,第一组八个子阵列可存储数据的0-7位,而第二组八个子阵列可存储数据的8-15位。因此,根据要存储的数据的大小和dram模块420的配置,子阵列的数量可变化。

此外,子阵列415a-415n中的每一者可专用于存储数据的特定位位置。具体地讲,无论位宽度如何,每条数据包括最低有效位(“lsb”)、最高有效位(“msb”)以及占据lsb与msb之间的位位置的位。如本文所用,lsb是一条数据的最右侧的位,msb是该条数据的最左侧的位。因此,例如,对于八位数据b0b1b2b3b4b5b6b7,b0是msb并且b7是lsb。位b1-b6占据msb与lsb之间的位位置。在一些实施方案中,可以说msb位b0占据第一个位位置,可以说位b1占据第二个位位置,可以说位b2占据第三个位位置,以此类推。可以说lsb位b7占据第八个位位置。

子阵列415a-415n中的每一者可专用于存储一条数据的特定位位置。例如并且如图4所示,子阵列415a可被配置为存储lsb(例如,上例中的位b7),子阵列415n可被配置为存储msb(例如,上例中的位b0),而子阵列415b-415m可被配置为存储lsb与msb之间的位位置(例如,上例中的位b1-b6)。由于专用于存储数据的特定位位置,每当要存储一条数据时,该数据的lsb可存储在子阵列415a内,该数据的msb可存储在子阵列415n内,并且lsb与msb之间的每个位可存储在子阵列415a与415n之间的一个子阵列内,具体取决于该位的位位置以及被配置为存储该位位置的子阵列。

交织器410可被配置为知道子阵列415a-415n中的哪个子阵列存储哪个位位置的数据。因此,交织器410可被配置为知道要将一条数据的lsb存储在子阵列415a内,要将这条数据的msb存储在子阵列415n内,以此类推。例如,对于八位数据x=(x0,x1,x2,...x7),其中位x0是lsb并且位x7是msb,交织器410可将位x0存储子阵列415a中、将位x1存储在子阵列415b中、将位x7存储在子阵列415n中,以此类推。如下面将进一步讨论的,交织器410可被配置为周期性地加扰或改变哪些子阵列存储哪些位位置以减少子阵列415a-415n上的位漂移和损耗。通过将每个数据位存储在不同的子阵列中,可根据每个位位置的相对重要性来为该位位置确定不同的刷新间隔。

具体地讲,在诸如机器学习应用和信号处理的许多应用中,位错误的影响取决于位位置。例如,与lsb位置中的错误相比,图像像素的msb位置中的错误可使整体图像质量劣化更多。msb中的错误也可影响机器学习应用中的推断或表征准确性。因此,lsb中的错误可比msb中的错误更易容忍。换句话讲,保持msb的准确性可能比保持lsb的准确性更重要。为了保持msb与lsb相比更高的准确性,可能需要比lsb更频繁地刷新msb。在其他实施方案中,除msb和lsb之外的其他位位置中的错误可使数据劣化更多。通过将一条数据的每个位分离并存储在单独的子阵列中,刷新系统400提供了基于位的相对位位置来为数据的多个位位置设置不同的刷新间隔的能力。刷新间隔控制系统405可被配置为根据多个位位置中的位位置的相对重要性来确定该位位置的刷新间隔。

可采用误码率(“ber”)来定义一条数据的位的错误。具体地讲,ber可被定义为特定位在每单位时间的错误数。较低的ber通常是期望的。berp是刷新间隔t的函数g:

p=g(t)

较长的刷新间隔t(例如,更不频繁地刷新)导致较高的ber。此外,刷新功率pr与刷新间隔t成反比:

pr∝1/t

因此,刷新间隔t越短,刷新功率pr消耗越高。刷新间隔控制系统405被配置为确定位的使berp和刷新功率pr消耗最小化或者实现期望的berp或pr的最佳刷新间隔t。ber在本文中被称为保真性度量,而刷新功率消耗在本文中被称为资源度量。如下所述,也可使用其他保真性度量。例如,均方误差(“mse”)是另一种保真性度量。ber定义数据的特定位的错误率,而mse定义组合的数据的所有位的累积错误率。峰值信噪比(“psnr”)是可用于计算刷新间隔的另一种保真性度量。psnr表示一条数据中的峰值错误的量度。可根据需要使用其他保真性度量。

由于pr∝1/t,对于b位字而言,归一化刷新功率消耗可被给定为:

在上面的公式中,b表示位位置,并且tb表示特定位位置b的刷新间隔。因此,b位字的总刷新功率p(t)是b位字的每个位的刷新功率pr的总和。

如果b位字的保真性度量是mse(其中b位字的每个位的保真性度量是ber),则b位字的mse可被定义为:

在上面的公式中,b表示位位置,并且tb表示特定位位置b的刷新间隔。此外,g(tb)表示特定位位置的ber。4b表示每个位置的不同重要性。换句话讲,4b的值基于位位置而改变。例如,对于b=0,4b=1,而对于b=7,4b=16384。上述mse公式的其他细节可见于kim等人的“generalizedwater-fillingforsource-awareenergy-efficientsrams”,ieeetransactionsoncommunications,第66卷,第10期,2018年10月,其全文以引用方式并入本文。

因此,基于4b的值,b位字的mse改变。上述公式可总结如下:

可以设想凸优化问题来求解上述公式并确定b位字的多个位位置的最佳刷新间隔。在一些实施方案中,可为b位字的每个位位置确定最佳刷新间隔。在其他实施方案中,可以仅为b位字的一些位位置确定最佳刷新间隔。此外,在一些实施方案中,对于给定的刷新功率约束,可使用公式i来针对b位字的位位置计算使mse最小化的最佳刷新间隔:

受限于

其中tb≥δ并且b=0,1,...,b-1

δ是防止tb=0(例如,无穷大刷新功率)的参数。在一些实施方案中,可基于当前dram标准中使用的刷新间隔来将δ设置为六十四毫秒。在其他实施方案中,可使用δ的其他值。上式中的p是期望的刷新功率约束。

此外,在一些实施方案中,可以使用公式ii设想凸优化问题来计算b位字的位的使给定mse的刷新功率消耗最小化的最佳刷新间隔:

受限于

其中tb≥δ并且b=0,1,...,b-1

δ是防止tb=0的参数,如上所示。

在一些实施方案中,可使用指数关系m1或对数正态分布m2来求解上述公式i和ii中的函数g(tb)。在其他实施方案中,可使用其他算法来求解函数g(tb)。m1定义了位位置b的berp和刷新间隔t之间的关系,如下所述:

m1:p=g(tb)=αexp(βtb)

在该公式中,m1、α和β是取决于存储器制造参数的恒定值,并且可经由模拟或测试来估计。在一些实施方案中,α=2.7773×10-7并且β=1.9508。在其他实施方案中,可将其他值用于α和β。m1的其他细节可见于katayama等人的“fault-tolerantrefreshpowerreductionofdramsforquasi-nonvolatiledataretention”pro.ieee有关vlsi系统的缺陷和故障容忍的国际研讨会(eft’99),第311-318页,1999年11月,以及liu等人的“flikker:savingdramrefresh-powerthroughcriticaldatapartitioning”,sigarchcomput.arch.news,第39卷,第1期,第213-224页,2011年3月,这些文献全文以引用方式并入本文。

m2定义了遵循对数正态分布的保留时间分布:

在该公式m2中,p是ber,t是刷新间隔,φ是正态分布的累积分布函数并且μ和σ是可经由模拟或测试来估计的常量参数。在一些实施方案中,μ=4.4780并且σ=0.9011。在其他实施方案中,可将其他值用于μ和σ。m2的其他细节可见于hamamoto等人的“ontheretentiontimedistributionofdynamicrandomaccessmemory(dram)”,ieeetrans.electrondevices,第45卷,第6期,第1300-1309页,1998年6月,其全文以引用方式并入本文。

在公式i中代入m1得到如下公式iii:

受限于

其中tb≥δ

在公式ii中代入m1得到如下公式iv:

受限于

其中tb≥δ

类似地,在公式i中代入m2得到如下公式v:

受限于

其中tb≥δ

并且在公式ii中代入m2得到如下公式vi:

受限于

其中tb≥δ

在一些实施方案中,如果m1中的berp是指数函数,则公式iii和iv中的mse(t)为凸函数。上述公式iii和iv可使用karush-kuhn-tucker(“kkt”)条件求解。kkt条件定义了一阶最佳条件,前提条件是满足限定的正则性条件。换句话讲,kkt条件可以用于求解公式iii和iv以获得b位字的多个位位置的最佳刷新间隔,该最佳刷新间隔针对给定的刷新功率约束(在公式iii中)使mse最小化或者针对给定的mse约束(在公式iv中)使刷新功率最小化。通过求解公式iii和iv中的kkt条件,可由下面的公式vii定义最佳刷新间隔矢量t*:

其中w(x):lambertw函数(f(x)=xex的反函数)并且对于x>0,并且

其中v:kkt条件的双变量(取决于对于给定α和β值的上述公式iii的刷新功率p),使得对于更高的刷新功率,p,v更小。

对于tb>δ,

如果则tb=δ

在公式vii中,v取决于对于给定的α和β的刷新功率约束p。在一些实施方案中,可使用二分法来计算v。二分法是求根的方法。该方法包括重复地将区间二分,然后选择函数改变符号并因此包含根的子区间。在其他实施方案中,可使用其他或另外的方法来计算v。

例如,为了求解上面的公式vii,可如下定义kkt条件:

tb≥δ,λb≥0,λb(tb-δ)=0(公式viib)

其中b=0,1,...,b-1

根据上式viic,λb可如下给出:

根据公式viib和viid:

假定上式viie中的v为零。则:

λb=4bαβexp(βtb)≠0(公式viif)

求解公式viif,对应的刷新功率可由下式给出:

如果小于刷新功率约束p,则mse被最小化。然而,当大于刷新功率约束p时,则:

v≠0

在此类情况下,公式viia如下改变:

如果λb大于零,则:

tb=δ(公式viih)

那么,根据viic,条件λb大于零等同于:

根据公式viie、viih、和viii:

对于

如果λb=0,则:

公式viik等同于:

通过在公式viil中设定:

使用kkt条件来求解公式iii、iv和vii的其他细节可见于kim等人的“ontheoptimalrefreshpowerallocationforenergy-efficientmemories”proc.ieee全球通信会议,2019年12月,其全部内容以引用方式并入本文。

因此,公式vii为b位字的多个位位置b提供具有最佳刷新间隔的b位矢量。此外,在一些实施方案中,如果所计算的最佳刷新间隔t小于δ的值,则刷新间隔控制系统405可被配置为用δ的值替换所计算的最佳刷新间隔。因此,在这种情况下,最小刷新等于δ的值。

类似地,可使用kkt条件来求解上面的公式v和vi。例如,最佳刷新间隔矢量t*可由下式viii定义:

在公式viii中,v:来自kkt条件的双变量(取决于刷新功率),使得对于更高的刷新功率,v更小。如上所述,在一些实施方案中,可使用二分法来计算v。μ和σ是常量参数。在一些实施方案中,μ=4.4780并且σ=0.9011。在其他实施方案中,可将其他值用于μ和s。通过求解公式viii,可获得对于b位字的每个位位置b具有最佳刷新间隔的b位矢量。

公式viii的kkt条件可如下给出:

tb≥δ,λb≥0,λb(tb-δ)=0(公式viiib)

其中b=0,1,...,b-1

根据公式viiic,λb=

根据公式viiib和viiid:

假定上式viiie中的v为零。则,对于b=0,1,...,b-1,λb>0并且tb=δ。对应的刷新功率可由下式给出:

如果小于刷新功率约束p,则mse被最小化。然而,当大于刷新功率约束p时,则:

v≠0

在此类情况下,公式viia如下改变:

如果λb大于零,则:

tb=δ(公式viiig)

通过公式viiic,条件λb大于零等同于:

根据公式viiie:

对于

如果λb=0,则根据公式viiii:

公式viiij等同于:

取公式viiik的对数:

通过在公式viiil中设定x=logtb,可获得以下多项式:

因此,公式viiim的解可由下式给出:

由于条件tb<exp(μ-σ2),最佳刷新间隔可由下式给出:

使用kkt条件来求解公式v、vi和viii的其他细节可见于kim等人的“ontheoptimalrefreshpowerallocationforenergy-efficientmemories”proc.ieee全球通信会议,2019年12月,其全部内容以引用方式并入本文。

虽然本文描述了kkt条件来求解公式iii-viii,但在其他实施方案中,可采用被认为合适的其他优化算法。类似地,尽管m1和m2函数用于获得公式iii-vi,但在其他实施方案中,可使用其他合适的函数。

先前的公式假设可将任何实数值分配给刷新间隔t,只要那些值等于或大于参数δ的值(例如,六十四毫秒)。在一些实施方案中,可能期望分配离散的最佳刷新间隔值,或者换句话讲,分配参数δ的值的倍数(例如,六十四毫秒)。例如,如果特定位位置tb的刷新间隔tb为γδzb,其中γ,zb∈n:正整数,则公式iii可如下重新表达为公式ix:

受限于

其中

类似地,公式iv、v和vi可通过将那些公式中的tb替换为γδzb来重新表达,如上所述。代替使用kkt条件来求解公式ix和通过在公式iv、v和vi中代入tb而获得的公式,可使用标准混合整数非线性编程解算器或其他一般整数非线性编程解。通过求解这些公式,可针对b位字的多个位位置获得离散的最佳刷新间隔,或者换句话讲,可以获得参数δ的值的倍数。

此外,如上所述,psnr可被用作保真性度量而不是mse。psnr与mse成反比:

psnr=10log10((2b-1)2)/mse

因此,如果期望psnr作为保真性度量,则可如本文所讨论的那样计算mse,并且可以使用上述公式从mse计算psnr。

此外,在一些实施方案中,可控制最佳刷新间隔的数量的粒度。例如并且如上所述,对于b位字,针对每个位位置计算最佳刷新间隔。在一些实施方案中,每个位位置可具有不同值的最佳刷新间隔,使得刷新间隔的粒度为八。在一些实施方案中,较低的粒度可能是期望的。例如,可能期望八位字的前四位可具有第一最佳刷新间隔,而该八位字的后四位具有第二最佳刷新间隔。因此,使用了两个不同值的最佳刷新间隔,从而导致刷新间隔的粒度为二。类似地,在一些实施方案中,可使用粒度四,使得成对的位具有相同的最佳刷新间隔。因此,刷新间隔的粒度可在二和八之间变化。

另外,不管使用的粒度如何,针对每个位位置计算的最佳刷新间隔仍然基于位位置的相对重要性。例如,当使用粒度二、使得一半位位置具有第一最佳刷新间隔并且另一半位位置具有第二最佳刷新间隔时,第一最佳刷新间隔和第二最佳刷新间隔的值基于相对位位置。具体地讲,与朝向lsb的位位置相比,朝向msb的位位置具有更短的最佳刷新间隔。因此,在刷新间隔具有粒度二的八位字中,最靠近msb的四位具有比最靠近lsb的四位更短的最佳刷新间隔。

在一些实施方案中,可基于期望的粒度来选择用于刷新操作的最佳刷新间隔。例如,对于b位字,可以如上所述针对每个位位置计算最佳刷新间隔。根据这些所计算的最佳刷新间隔,可基于期望的粒度来选择某些值。例如,在一些实施方案中,当粒度为二时,lsb的最佳刷新间隔也可用于最靠近lsb的其他位位置,而不管为那些位位置计算的最佳刷新间隔(例如,如果那些其他位位置的所计算的最佳刷新间隔与lsb的最佳时间间隔不同,则lsb的最佳时间间隔也可用于那些其他位位置)。类似地,msb的最佳刷新间隔可用于最靠近msb的那一半的位位置,而不管为那些其他位位置计算的最佳刷新间隔如何。

在其他实施方案中,可在计算最佳刷新间隔时考虑粒度。例如,在使用刷新间隔tb的上述公式中,可基于粒度来应用某些相等条件:

t0=…=tj-1

tj=…=tb-1

在上面的公式中,位位置t0-tj-1具有相同的粒度,而位位置tj-tb-1具有相同的粒度,从而提供粒度二。可基于期望的粒度来修改上述公式。

因此,刷新间隔控制系统405确定b位字的多个位位置的最佳刷新间隔以满足给定的保真性度量和资源度量。此外,该多个位位置的最佳刷新间隔基于每个位位置的相对重要性。在一些实施方案中,可认为msb比lsb更重要。在这种情况下,msb的最佳刷新间隔比lsb的最佳刷新间隔短。在其他实施方案中,可认为lsb比msb更重要。在这些情况下,lsb的最佳刷新间隔比msb的短。在其他实施方案中,可认为除lsb和msb之外的位位置更重要。在这些情况下,这些位位置具有比lsb和msb更短的最佳刷新间隔。因此,每个位位置的最佳刷新间隔基于该位位置在b位字中的相对重要性。

刷新间隔控制系统405可被配置为确定要为其确定最佳刷新间隔的多个位位置的相对重要性。在一些实施方案中,相对重要性可基于应用。例如并且如上所述,在机器学习和信号处理应用中,msb比lsb更重要。在一些实施方案中,可使用其他指定的标准来确定每个位位置的相对重要性。在一些实施方案中,存储器控制器425可向刷新间隔控制系统405提供每个位置的相对重要性的指示。

在确定每个位位置的最佳刷新间隔时,刷新间隔控制系统405可根据最佳刷新间隔来刷新那些位位置。因此,刷新间隔控制系统405可基于所计算的位位置的最佳刷新间隔和存储对应于该位位置的位的子阵列,将不同的刷新间隔应用于子阵列415a-415n中的每一者。例如并且如图4所示,如果如上所述针对八位字计算的最佳刷新间隔是t=(t0,t1,t2,...t7),其中t0是lsb的最佳刷新间隔并且t7是msb的最佳刷新间隔,则刷新间隔控制系统405可以t0刷新间隔来对子阵列415a执行刷新操作、以t1刷新间隔来对子阵列415b执行刷新操作、以t7刷新间隔来对子阵列415n执行刷新操作,以此类推。刷新间隔控制系统405可与交织器410通信或者以其他方式知道子阵列415a-415n中的哪个存储哪些位位置。

因此,基于位位置的相对重要性,最佳刷新间隔可变化。在一些实施方案中,可针对保真性度量和资源度量的各种组合预先计算b位字的位位置的最佳刷新间隔值,并将其存储在刷新间隔控制系统405的查找表中。该查找表的输入可以是期望的保真性度量和/或期望的资源度量,并且输出可以是b位字的每个位位置的最佳刷新间隔。例如,在一些实施方案中,为了使mse最小化并实现期望的刷新功率消耗,可将该期望的刷新功率消耗约束用作该查找表的输入。可从该查找表中具有期望的刷新功率消耗约束的所有记录中选择最小mse。然后,对应于最小mse的刷新间隔可以给出b位字的一个或多个位位置的最佳刷新间隔。例如,对于八位字,查找表可输出最多八个最佳刷新间隔值,八个位位置中的每个位位置对应一个刷新间隔值。在其他实施方案中,可将最小mse用作查找表的输入。可从具有最小mse的所有记录中选择对应于期望的刷新功率消耗的记录以输出最佳刷新间隔。

类似地,在一些实施方案中,为了最小化刷新功率并实现给定的mse,可将mse用作查找表的输入。如果在查找表中找到mse的多个记录,则可选择具有最小刷新功率值的记录。然后,对应于该最小刷新功率的刷新间隔可提供该b位字的每个位位置的最佳刷新间隔。在其他实施方案中,可选择具有最小刷新功率的记录。可从这些记录中选择具有所需mse的记录以输出最佳刷新间隔。在一些实施方案中,还可将刷新间隔的粒度用作确定最佳刷新间隔的输入。因此,查找表可以多种方式结构化。在其他实施方案中,可使用查找表之外的机制来确定每个位位置的最佳刷新间隔。

刷新间隔控制系统405和交织器410可以是存储器控制器425的一部分。在其他实施方案中,刷新间隔控制系统405和交织器410中的任一者或两者可与存储器控制器425分开。此外,尽管未示出,刷新间隔控制系统405和交织器410中的任一者或两者可在软件、硬件、固件或它们的组合中配置。一般来讲,刷新间隔控制系统405和交织器410中的每一者可包括用于存储指令的存储器和被配置为执行这些指令以执行本文所述的功能或操作的处理单元或处理器。

转到图5a和图5b,它们分别示出了根据本公开的一些实施方案的刷新系统500和刷新系统505的示例性框图。刷新系统500和505为刷新系统400提供扩展。在一些实施方案中,图4的刷新系统400可用于八位字。换句话讲,dram模块420可包括用于存储八位字的八个子阵列。当需要存储大于八位的字时,可使用刷新系统500和505。例如,刷新系统500和505可被存储用于存储十六位字。为了存储十六位字,可在dram模块510中使用两组子阵列。例如,dram模块510可包括第一组515和第二组520。第一组515可包括八个子阵列525a-525h,并且第二组可包括八个子阵列530a-530h。第一组515和第二组520中的每一者中的子阵列可被配置为类似于图4的子阵列415a-415n。

第一组515可被配置为存储该十六位字中的八位,并且第二组可被配置为存储该十六位字中的剩余八位。例如,对于数据x=(x0,x1,x2,...,x15),其中x0为lsb并且x15为msb,位x0-x7可存储在第一组515中,并且位x8-x15可存储在第二组520中。在一些实施方案中,位x0-x7可存储在第二组中,并且位x8-x15可存储在第一组515中。只要刷新间隔控制系统535知道哪个子阵列存储哪个位位置,存储特定位的特定子阵列并不重要。类似于交织器410,交织器540可被配置为存储指定的子阵列中的每个位。

此外,在一些实施方案中并且如图5a所示,刷新间隔控制系统535的单个实例可用于分别计算第一组515和第二组520的子阵列525a-525h和530a-530h中的每一者的最佳刷新间隔。另选地并且如图5b所示,可将刷新间隔控制系统的单独实例用于每个组。例如,刷新间隔控制系统535可用于计算第一组515中的子阵列525a-525的最佳刷新间隔,并且第二刷新间隔控制系统545可以用于计算第二组520中的子阵列530a-530h的最佳刷新间隔。对于大于十六位的字长,可形成更多组的子阵列,并且这些子阵列可由一个或多个刷新间隔控制系统控制。在一些实施方案中,可使用具有多于八个子阵列的单个组。例如,在一些实施方案中,可使用具有十六个子阵列以容纳十六位字的单个组。因此,根据字长,刷新系统的配置可变化。

参见图6,它示出了根据本公开的一些实施方案的示例性流程图,其概述了基于位位置的相对重要性来执行刷新操作的过程600的操作。根据具体实施方案,过程600可包括附加操作或其他操作。过程600可由刷新系统400、500、505实现。下面的描述是关于刷新系统400的。然而,过程600也适用于刷新系统500和505。

在操作605开始时,刷新系统400,并且具体地刷新系统的交织器410(例如,从主机设备105)接收将b位字存储在dram模块420中的指令。交织器410将该b位字的每个位存储在dram模块420的子阵列415a-415n中的单独的一个子阵列中。交织器410知道哪个子阵列被配置用于存储哪个位位置。因此,交织器410将msb存储在被配置为存储msb的子阵列(例如,子阵列415n)中,将lsb存储在被配置为存储lsb的子阵列(例如,子阵列415a)中,并且将其余位存储在被配置为存储其余位的位位置的子阵列中。

在操作615处,刷新系统400,并且具体地讲刷新系统的刷新间隔控制系统405计算在操作610处存储的b位字的多个位位置的最佳刷新间隔。在一些实施方案中,刷新间隔控制系统400可在计算各个位位置的最佳刷新间隔之前首先确定它们的相对重要性。刷新间隔控制系统405还可从存储器控制器425和/或主机设备(例如,主机设备105)接收保真性度量和资源度量。刷新间隔控制系统405还可接收最佳刷新间隔的粒度。基于保真性度量、资源度量和粒度,刷新间隔控制系统405在操作615处计算每个位位置的最佳刷新间隔,如上所述。在一些实施方案中,在接收到保真性度量、资源度量和粒度时,刷新间隔控制系统405可使用查找来确定最佳刷新间隔。在操作620处,刷新间隔控制系统405基于最佳刷新间隔对子阵列415a-415n执行刷新操作。

在一些实施方案中,刷新间隔控制系统405可被配置为执行刷新操作。在其他实施方案中,单独的刷新操作系统可从刷新间隔控制系统405接收最佳刷新间隔并执行刷新操作。刷新操作涉及从dram存储器单元周期性地读取数据,并且在不修改的情况下立即将数据重新写入到同一dram存储器单元,从而恢复与该dram存储器单元相关联的电容器(例如,电容器325)的电荷。可如上文在图3中所讨论的那样执行数据到dram存储器单元的读取和写入。

此外,可以由最佳刷新间隔定义的间隔来执行刷新操作。例如,如果刷新间隔是一百毫秒,则可每一百毫秒执行一次刷新操作。此外,子阵列415a-415n中的每一者可基于其指定的最佳时间间隔来刷新。例如,如果子阵列415a具有最佳刷新间隔t1,并且子阵列415b具有最佳刷新间隔t2,则可基于最佳刷新间隔t1对子阵列415a执行刷新操作,并且可基于最佳刷新间隔t2对子阵列415b执行刷新操作。因此,子阵列415a-415n可在不同的时间被刷新。然而,可使用为正被刷新的子阵列计算的最佳刷新间隔来同时刷新形成该子阵列的一部分的所有dram存储器单元。过程600在操作625处结束。

现在转到图7,它示出了根据本公开的一些实施方案的示例性流程图,其概述了过程700的操作。根据具体实施方案,过程700可包括附加操作或其他操作。过程700可由刷新系统400、500、505实现。下面的描述是关于刷新系统400的。然而,过程700也适用于刷新系统500和505。过程700可用于计算b位字的位位置的最佳刷新间隔。具体地讲,过程700可用于计算使保真性度量最小化,同时实现给定的资源度量约束的最佳刷新间隔。过程700更详细地描述了操作615。过程700在新的b位字存储在dram模块420内时开始。过程700还可针对先前存储在dram模块420内的字来实现。

因此,在操作705开始时,刷新系统400,并且具体地讲,刷新系统的刷新间隔控制系统405接收要最小化的保真性度量。如上所述,该保真性度量可以是mse、psnr或其他所需度量。下文已经相对于mse解释了过程700。然而,当保真性度量是psnr或另一度量时,也可使用过程700。在操作710处,刷新间隔控制系统405接收保真性度量mse。在一些实施方案中,刷新间隔控制系统405可从存储器控制器425接收保真性度量,该存储器控制器反过来可已经从主机设备105接收保真性度量。在其他实施方案中,刷新间隔控制系统405可直接从主机设备105或从与刷新间隔控制系统相关联的计算设备的另一部件接收保真性度量。在操作715处,刷新间隔控制系统405可接收资源度量。在一些实施方案中,资源度量可以是刷新功率。在其他实施方案中,可使用其他资源度量。刷新间隔控制系统405可采用与保真性度量类似的方式来接收资源度量。换句话讲,刷新间隔控制系统405可从存储器控制器425、主机设备105或与刷新间隔控制系统相关联的计算系统的任何其他部件接收资源度量。

在操作720处,刷新间隔控制系统405任选地接收刷新间隔的粒度。如上所述,在一些实施方案中,b位字的每个位位置可具有不同的最佳刷新间隔。在此类情况下,b位字的粒度为“b”。在其他实施方案中,可使用更小的粒度,使得可以针对b位字的多个位位置使用相同的最佳刷新间隔。刷新间隔控制系统405可从存储器控制器425、主机设备105或与刷新间隔控制系统相关联的计算系统的任何其他部件接收粒度。尽管过程700已被描述为在资源度量之前接收保真性度量(其被描述为在粒度之前被接收),但应当理解,保真性度量、资源度量和粒度可以任何顺序接收。

如上所述,在接收到保真性度量、资源度量和粒度时,刷新间隔控制系统405确定b位字的每个位位置的最佳刷新间隔。具体地讲,刷新间隔控制系统405确定每个位位置的最佳刷新间隔,以最小化在操作710处接收的保真性度量,同时实现在操作715处接收的资源度量。如上所述,刷新间隔控制系统405还将相等条件应用于刷新间隔,以实现在操作720处接收的粒度。在一些实施方案中,刷新间隔控制系统405可使用查找表来确定每个位位置的最佳刷新间隔。例如,刷新间隔控制系统405可使用保真性度量、资源度量或粒度中的一个或多个作为输入以输出最佳刷新间隔的b个值,使得这b个值中的每个值对应于b位字的一个位位置的最佳刷新间隔。此外,刷新间隔控制系统405可计算最佳刷新间隔,使得更重要的位位置比不太重要的位位置具有更短的最佳刷新间隔。例如,在一些实施方案中,msb可具有比lsb短的最佳刷新间隔。在一些实施方案中,刷新间隔可根据粒度从msb到lsb增大。

刷新间隔控制系统405或另一指定部件对存储b位字的各个位的子阵列415a-415n执行刷新操作。在一些实施方案中,存储有msb的子阵列(例如,子阵列415n)可具有最短最佳刷新间隔,并且存储有lsb的子阵列415a可具有该b位字的最长刷新间隔。刷新间隔控制系统405或另一指定部件继续使用操作725的最佳刷新间隔执行刷新操作,直到在操作730处接收到新的保真性度量为止。因此,在操作730处,刷新间隔控制系统405可确定是否接收到新的保真性度量。刷新间隔控制系统405可周期性地或在满足预定条件时检查新的保真性度量。

操作730的新保真性度量可以是与先前在操作710处接收的度量不同的度量,或者该新保真性度量可以是在操作710处接收的相同度量的不同值。换句话讲,如果先前在操作710处接收的保真性度量是mse,则在操作730处接收的新保真性度量可以是psnr或不同值的mse。可采用与在操作710处接收的保真性度量相同或类似的方式接收新的保真性度量。如果在操作730处接收到新的保真性度量,则过程600循环回到操作710并重复操作710-725。在一些实施方案中,如果在操作710处没有接收到新的保真性度量,则刷新间隔控制系统405可在操作735处确定是否接收到新的资源度量或粒度。如果在操作735处没有接收到新的资源度量和新的粒度,则刷新间隔控制系统405返回到操作730并继续监视保真性度量的更新。如果在操作735处接收到新的资源度量,则过程600循环回到操作715,如图7所示,并且使用先前在操作710处接收的保真性度量来重复操作715-725。如果在操作735处接收到新的粒度,则过程700循环回到操作720(图7中未示出)并使用先前在操作710处接收的保真性度量和先前在操作715处接收的资源度量来重复操作725。

因此,过程700提供了一种机制来根据b位字的位位置的相对重要性动态地、基本上实时地更新每个位位置的最佳刷新间隔,同时实现所需的保真性度量和资源度量。

现在转到图8,它示出了根据本公开的一些实施方案的另一个示例性流程图,其概述了过程800。根据具体实施方案,过程800可包括附加操作或其他操作。过程800可由刷新系统400、500、505实现。下面的描述是关于刷新系统400的。然而,过程800也适用于刷新系统500和505。过程800可用于计算b位字的位位置的最佳刷新间隔。具体地讲,过程800可用于计算使资源度量最小化,同时实现给定的保真性度量约束的最佳刷新间隔。过程800开始于在dram模块420内存储新的b位字。过程800还可针对先前存储在dram模块420内的字来实现。

因此,在操作805处开始后,刷新间隔控制系统405在操作810处接收资源度量(例如,刷新功率)。操作810类似于操作715。在操作815处,刷新间隔控制系统405接收保真性度量(例如,mse)。操作815类似于操作710。此外,在操作820处,刷新间隔控制系统405接收粒度。操作8120类似于操作720。如上所述,在接收到保真性度量、资源度量和粒度时,刷新间隔控制系统405确定b位字的每个位位置的最佳刷新间隔。具体地讲,刷新间隔控制系统405确定每个位位置的最佳刷新间隔,以最小化在操作810处接收的资源度量,同时实现在操作815处接收的保真性度量。如上所述,刷新间隔控制系统405还将相等条件应用于刷新间隔,以实现在操作820处接收的粒度。在一些实施方案中,刷新间隔控制系统405可使用查找表来确定每个位位置的最佳刷新间隔,如上面关于操作725所讨论的。

因此,刷新间隔控制系统405可使用保真性度量、资源度量或粒度中的一个或多个作为输入以输出最佳刷新间隔的b个值,使得这b个值中的每个值对应于b位字的一个位位置的最佳刷新间隔。此外,刷新间隔控制系统405可计算最佳刷新间隔,使得更重要的位位置的最佳刷新间隔小于较不重要的位位置的最佳刷新间隔。在一些实施方案中,msb可比lsb更重要,因此可具有比lsb更短的刷新间隔。在一些实施方案中,刷新间隔可根据粒度从msb到lsb增大。刷新间隔控制系统405或另一指定部件对存储b位字的各个位的子阵列415a-415n执行刷新操作。存储有msb的子阵列(例如,子阵列415n)可具有最短刷新间隔,并且存储有lsb的子阵列415a可具有该b位字的位位置的最长刷新间隔。

刷新间隔控制系统405或另一指定部件继续使用操作825的最佳刷新间隔执行刷新操作,直到在操作830处接收到新的资源度量为止。因此,在操作830处,刷新间隔控制系统405可确定是否接收到新的资源度量。刷新间隔控制系统405可周期性地或在满足预定条件时检查新的资源度量。操作730的新的资源度量可以是与先前在操作810处接收的资源度量不同的资源度量,或者是在操作810处接收的相同度量的不同值。如果在操作830处接收到新的资源度量,则过程800循环回到操作810并重复操作810-825。在一些实施方案中,如果在操作830处没有接收到新的资源度量,则刷新间隔控制系统405可在操作835处确定是否接收到新的保真性度量或粒度。如果在操作835处没有接收到新的保真性度量和新的粒度,则刷新间隔控制系统405返回到操作830并继续监视资源度量的更新。如果在操作835处接收到新的保真性度量,则过程800循环回到操作815,如图8所示,并且使用先前在操作810处接收的资源度量来重复操作815-825。如果在操作835处接收到新的粒度,则过程800循环回到操作820(图7中未示出)并使用先前在操作810处接收的资源度量和先前在操作815处接收的保真性度量来重复操作825。

参见图9,示出了根据本公开的一些实施方案的比较mse和归一化刷新功率的示例性曲线图900。较低的mse和较低的刷新功率消耗是期望的。曲线图900绘制了x轴905上的归一化刷新功率与y轴910上的mse的关系。曲线图900还包括对应于使用常规机制获得的特定位位置的刷新间隔的第一曲线915,以及对应于使用本公开获得的特定位位置的最佳刷新间隔的第二曲线920。与使用常规机制为该相同位位置计算的刷新间隔相比,为该特定位位置计算最佳刷新间隔的第二曲线920具有更低的mse并且消耗更少的刷新功率。例如,在mse为一时,最佳计算的刷新间隔将刷新功率消耗降低百分之二十七。类似地,在十分之一的mse处,最佳计算的刷新间隔实现了约百分之三十六的刷新功率消耗的更大节省。尽管未示出,但从曲线图900还可以看出,在给定的刷新功率下,第二曲线920具有比第一曲线915低的mse。

因此,本公开的最佳计算的刷新间隔减少了位位置中的错误,同时节省了刷新功率。

转到图10,示出了根据本公开的一些实施方案的比较psnr和归一化刷新功率的示例性曲线图1000。较高的psnr和较低的刷新功率消耗是期望的。曲线图1000绘制了x轴1005上的归一化刷新功率与y轴1010上的psnr的关系。曲线图1000还包括对应于使用常规机制获得的特定位位置的刷新间隔的第一曲线1015,以及对应于使用本公开获得的特定位位置的最佳刷新间隔的第二曲线1020。与使用常规机制为该相同位位置计算的刷新间隔相比,为该特定位位置计算最佳刷新间隔的第二曲线1020具有更高的psnr并且消耗更少的刷新功率。例如,在五十分贝的psnr处,最佳计算的刷新间隔将刷新功率消耗降低了约百分之二十九。类似地,在六十分贝的psnr处,最佳计算的刷新间隔实现了约百分之三十八的刷新功率消耗的更大节省。尽管未示出,但从曲线图1000还可以看出,在给定的刷新功率下,第二曲线1020具有比第一曲线1015高的psnr。

参见图11,示出了根据本公开的一些实施方案的比较mse和归一化刷新功率的示例性曲线图1100。较低的mse和较低的刷新功率消耗是期望的。曲线图1100绘制了x轴1105上的归一化刷新功率与y轴1110上的mse的关系。曲线图1100还包括第一曲线1115和第二曲线1120,第一曲线对应于使用常规机制获得的特定位位置的刷新间隔,第二曲线对应于使用本公开获得的特定位位置的最佳刷新间隔,其中该最佳刷新间隔等于参数δ的值(例如,六十四毫秒)。曲线图1100还示出了第三曲线1125,其中位位置的最佳刷新间隔是参数δ的值的十倍,而第四曲线1130示出了位位置的最佳刷新间隔是参数δ的值的十五倍。第二曲线1120、第三曲线1125和第四曲线1130各自具有针对给定刷新功率的较低mse和针对给定mse的较低刷新功率。此外,第三曲线1125和第四曲线1130非常类似于第一曲线1115,并且用于使用离散刷新间隔的mse和刷新功率罚分(例如,在第三曲线1125和第四曲线1130中)与第一曲线1115相比是最小的。

现在转到图12,其中示出了根据本公开的一些实施方案的损耗均衡操作1200的示例性框图。如上所述,b位字的每个位存储在dram模块的不同子阵列中。同样如上所述,存储具有更重要位位置的位的子阵列(例如,msb)比存储具有较不重要位位置的位(例如,lsb)的子阵列更频繁地被刷新。未频繁刷新或以低于阈值的刷新间隔刷新的子阵列可遭受位漂移,其中存储在较不频繁刷新的子阵列内的位值可漂移到偏置值。此外,更频繁刷新的子阵列可能比较不频繁刷新的子阵列遭受更大的损耗。为了在一定程度上均衡子阵列上的损耗,在一些实施方案中,交织器(例如,交织器410)可应用损耗均衡操作1200。

在损耗均衡操作1200中,存储在子阵列1205a-1205n中的位位置可被旋转,使得每个子阵列经历频繁刷新(例如,当存储msb时)和较不频繁刷新(例如,当存储lsb时)组成的周期。具体地讲,如图12所示,在第一轮1210中,子阵列1205a可存储lsb,并且子阵列1205n可存储msb。因此,在第一轮1210期间,子阵列1205n比子阵列1205a更频繁地被刷新。在第二轮1215中,位位置可移位一步,使得子阵列1205a现在存储msb,并且子阵列1205b现在存储lsb,以此类推。因此,在第二轮1215期间,子阵列1205a比子阵列1205b和子阵列1205n更频繁地被刷新。虽然移位被示出为向右一步,但在其他实施方案中,移位可为向左一步或可移位多步。

因此,通过执行损耗均衡操作1200,可使子阵列1205a-1205n上的损耗均衡。当满足某些预定条件时,可发生从第一轮1210到第二轮1210的切换。例如,在一些实施方案中,可在已经执行指定数量的刷新操作之后进行轮的切换。在其他实施方案中,该切换可在经过预定的时间段、存储了一定数量的字等之后发生。

此外,当存储器单元存储位“1”而不是“0”时,保持故障的发生率较高。如果原始数据仅由1构成,则该数据可能遭受更高的保持故障率。因此,加扰器(或随机器)可用于通过均衡原始数据中的“1”和“0”的数量来均衡任何类型的数据的保持故障率。在一些实施方案中,除了加扰之外或代替加扰,存储1的存储器单元可比存储0的存储器单元以更高的速率被刷新,以减少存储1的存储器单元的保持故障。在这种情况下,可如上所述基于位位置的相对重要性以及基于存储在特定存储器单元内的数据(1或0)的值来计算存储器单元的最佳刷新间隔。

因此,本公开实现了针对每个位位置计算非均匀的最佳刷新间隔。dram存储器单元的每个电容器上的电荷可基于所计算的最佳刷新间隔来周期性地而且非均匀地刷新。较短的刷新间隔可减小存储器设备的误码率(ber)。可基于位位置的相对重要性将不同的刷新间隔分配给不同的子阵列。可动态地(诸如实时地或基本上实时地)识别最佳刷新间隔。

尽管本公开可关注于优化dram存储器的刷新操作,但本文所公开的系统和方法可适用于利用刷新操作的任何存储器。此外,在一些实施方案中,并且特别是对于每个单元存储多于一位信息(例如,被配置为多级单元)的存储器,可使用格雷映射以及本文讨论的最佳刷新间隔。根据实施方案,本文所述的任何过程或算法的某些动作、事件或功能可以不同的顺序执行,可以一起添加、合并或省略(例如,并非所有所述的操作或事件对于算法的实践都是必要的)。此外,在某些实施方案中,操作或事件可例如通过多线程处理、中断处理或多个处理器或处理器内核同时执行,或者在其他并行架构上同时执行,而不是顺序执行。

结合本文所公开的实施方案描述的各种例示性逻辑块、模块、例程和算法步骤可被实现为电子硬件,或电子硬件和计算机软件的组合。为了清楚地举例说明这种可互换性,上文已经在其功能方面对各种例示性部件、块、模块和步骤进行了总体描述。将此功能性实现为硬件还是在硬件上运行的软件取决于特定应用和施加于整个系统的设计约束。可针对每个特定应用以不同方式实现所描述的功能,但这种实现决策不应被解释为导致脱离本公开的范围。

此外,结合本文所公开的实施方案描述的各种例示性逻辑框和模块可由被设计成执行本文所述的功能的机器实现或执行,诸如通用处理器设备、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、离散门或晶体管逻辑部件、离散硬件部件或它们的任何组合。控制处理器可合成fpga的模型。例如,控制处理器可合成逻辑可编程门的模型以实现张量阵列和/或像素阵列。控制通道可合成模型以连接fpga、可重新配置的芯片和/或管芯等上的张量阵列和/或像素阵列。通用处理器设备可以是微处理器,但是在替代方案中,处理器设备可以是控制器、微控制器或状态机、它们的组合等。处理器设备可包括被配置为处理计算机可执行指令的电路。在另一个实施方案中,处理器设备包括在不处理计算机可执行指令的情况下执行逻辑操作的fpga或其他可编程设备。处理器设备还可以实现为计算设备的组合,例如dsp和微处理器的组合、多个微处理器、一个或多个微处理器结合dsp内核,或任何其他这样的配置。尽管本文主要相对于数字技术进行描述,但处理器设备还可主要包括模拟部件。例如,本文所述算法中的一些或全部算法可在模拟电路或混合模拟和数字电路中实现。计算环境可包括任何类型的计算机系统,包括但不限于例如基于微处理器的计算机系统、大型计算机、数字信号处理器、便携式计算设备、设备控制器或器具内的计算引擎。

结合本文所公开的实施方案而描述的方法、过程、例程或算法的要素可直接体现于硬件中、由处理器设备执行的软件模块中或两者的组合中。软件模块可驻留在ram存储器、闪存存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或任何其他形式的非暂态计算机可读存储介质中。示例性存储介质可以耦接到处理器设备,使得处理器设备可以从存储介质读取信息和向存储介质写入信息。在替代方案中,存储介质可以是处理器设备的组成部分。处理器设备和存储介质可以驻留在asic中。asic可以驻留在用户终端中。在替代方案中,处理器设备和存储介质可作为分立部件驻留在用户终端中。

除非另外特别说明或在所使用的上下文内以其他方式理解,否则本文所用的条件语言诸如“可以”、“可”、“可能”、“可能会”、“例如”等通常旨在传达某些实施方案包括某些特征、元件和/或步骤,而其他实施方案不包括该某些特征、元件和/或步骤。因此,此类条件语言通常不旨在暗示特征、元件和/或步骤以任何方式是一个或多个实施方案所需要的,或者一个或多个实施方案必须包括用于在具有或不具有其他输入或提示的情况下决定这些特征、元件和/或步骤是否包括在任何具体实施方案或将在任何具体实施方案中执行的逻辑。术语“包含”、“包括”、“具有”等是同义的,并且以开放式方式包含性地使用,并且不排除附加的元件、特征、动作、操作等。另外,术语“或”以其包含性意义(而不是以其排他性意义)使用,使得当用于例如连接要素列表时,术语“或”是指该列表中的一个、一些或所有要素。

虽然以上详细描述已经示出、描述并指出了应用于各种实施方案的新颖特征,但可理解,在不脱离本公开的实质的情况下,可对所例示的设备或算法的形式和细节进行各种省略、替换和改变。可以认识到,本文所述的某些实施方案可体现为不提供本文所述的所有特征和有益效果的形式,因为一些特征可与其他特征分开使用或实践。

本文所述的主题有时说明了包含在不同其它部件内或与不同其它部件连接的不同部件。应当理解,此类描绘的架构仅是示例性的,并且事实上实现相同功能的许多其它架构可被实现。在概念意义上,用以实现相同功能的部件的任何布置被有效地“相关联”,使得实现期望功能。因此,本文组合以实现特定功能的任何两个部件可被视为彼此“相关联”,使得实现期望功能,而与架构或中间部件无关。同样地,如此相关联的任何两个部件还可被视为彼此“可操作地连接”、或“可操作地耦接”以实现期望功能,并且能够如此相关联的任何两个部件还可被视为彼此“可操作地耦接”以实现期望功能。可操作地耦接的具体示例包括但不限于物理上可匹配和/或物理上交互的部件和/或无线可交互和/或无线交互的部件和/或逻辑上交互和/或逻辑上可交互的部件。

关于在本文基本上任何复数和/或单数术语的使用,本领域的技术人员可视上下文和/或应用而定从复数转化为单数和/或从单数转化为复数。为了清楚起见,本文可明确地阐述各种单数/复数变换。

本领域的技术人员应当理解,一般而言,在本文中,尤其在所附权利要求书中所用的术语(例如,所附权利要求书中的主体)通常意指“开放性”术语(例如,术语“包括”应被解释为“包括但不限于”,术语“具有”应被解释为“具有至少”,术语“包括”应被解释为“包括但不限于”等)。本领域的技术人员还应当理解,如果意图引入特定数目的引入的权利要求表述,则这种意图将在权利要求书中明确表述,并且在不存在此类表述的情况下,不存在此类意图。例如,为了有助于理解,以下所附权利要求书可包含使介绍性短语“至少一个”和“一个或多个”以引入权利要求表述。然而,此类短语的使用不应被解释为暗示由不定冠词“一个”或“一种”引入的权利要求表述将包含此类引入的权利要求表述的任何特定权利要求书限制为仅包含一个此类表述的发明,即使当相同权利要求包括介绍性短语“一个或多个”或“至少一个”以及不定冠词诸如“一个”或“一种”(例如,“一个”和/或“一种”通常应被解译为表示“至少一个”或“一个或多个”)时也是如此;使用用于引入权利要求表述的定冠词也是如此。此外,即使明确地表述了特定数目的引入的权利要求表述,本领域的那些技术人员也将认识到,此类表述通常应被解释为意思是至少所述表述的数目(例如,在没有其它修饰语的情况下,“两种表述”的无修饰表述通常意思是至少两种表述,或者两种或更多种表述)。此外,在其中使用类似于“a、b和c等中的至少一者”的常规惯例的那些情况下,一般来讲这种构造意指是在本领域的技术人员将理解常规惯例的意义上(例如,“具有a、b和c中的至少一者的系统”将包括但不限于单独具有a、单独具有b、单独具有c、同时具有a和b、同时具有a和c、同时具有b和c、和/或同时具有a、b和c的系统等)。在其中使用类似于“a、b或c等中的至少一者”的常规惯例的那些情况下,一般来讲这种构造意指是在本领域的技术人员将理解常规惯例的意义上(例如,“具有a、b或c中的至少一者的系统”将包括但不限于单独具有a、单独具有b、单独具有c、同时具有a和b、同时具有a和c、同时具有b和c、和/或同时具有a、b和c的系统等)。本领域技术人员将会进一步理解,实际上无论是在说明书、权利要求书还是在附图中,呈现两个或更多个替代性术语的任何分离性词语和/或短语应被理解为设想包括术语中的一个、术语中的任一个或两个术语的可能性。例如,短语“a或b”将被理解为包括“a”或“b”或“a和b”的可能性。此外,除非另外指明,否则使用词语“大约”、“约”、“周围”,“基本上”等意思是加或减百分之十。

已出于说明和描述的目的呈现了例示性实施方案的前述描述。在所公开的精确形式方面并非旨在是穷举性的或限制性的,并且根据上述教导内容,修改形式和变型形式是可能的,或者可从所公开的实施方案的实践中获得。本发明的范围旨在由所附权利要求书及其等效物限定。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜