掌桥专利:专业的专利平台
掌桥专利
首页

为具有多个列的系统配置动态随机存取存储器刷新

文献发布时间:2023-06-19 09:54:18


为具有多个列的系统配置动态随机存取存储器刷新

背景技术

相关技术

一些电子装置包括动态随机存取存储器(DRAM),诸如双数据速率第四代(DDR4)同步DRAM。例如,台式计算机可包括多个千兆字节的DDR4SDRAM作为用于存储用于各种计算操作的信息(即,数据、指令等)的主存储器。通常,DRAM是使用在半导体集成电路芯片上制造的集成电路元件来存储信息的半导体存储器。例如,一些DRAM使用电容器来存储信息位,其中电容器被充电以用于存储逻辑值1并且被放电以用于存储逻辑值0。在用于存储信息的电路元件随时间推移损失电荷的意义上,DRAM是“动态的”,这意味着如果不定期对电路元件进行再充电,则存储在DRAM中的信息最终将丢失。例如,对于将电容器用作存储元件的DRAM来说,电容器的荷电状态由于泄漏而损失,因此必须对电容器进行再充电或“刷新”,以便维持所存储的信息。

一些电子装置包括具有大量DRAM的存储器,这些DRAM通常在组合以形成存储器的多个单独DRAM集成电路芯片(或更简单地说,“DRAM芯片”)上实现。在这些电子装置中,多个DRAM芯片中的分离DRAM芯片可出于诸如功率控制、寻址/存储器访问等问题而划分为逻辑群组和/或物理群组。例如,在一些电子装置中,数个DRAM芯片安装到存储器模块(例如,双列直插存储器模块或DIMM),并且存储器模块安装在耦接到电子装置中的通信总线的套接口中。在此类电子装置中,功率连接、芯片选择以及其他功率、控制和访问信号可连接到存储器模块上的DRAM集成电路芯片的子集,从而在逻辑上和/或物理上对DRAM芯片或其部分进行分组。例如,在一些电子装置中,存储器模块上的DRAM芯片包括在N个列(例如,4个列、8个列等)中的一个列中或可作为所述一个列进行操作,其中每个芯片包括M个体(例如,32个体),并且每个体包括用于存储信息的DRAM电路元件的数个阵列。

在包括多个DRAM芯片的电子装置中,可针对DRAM芯片的逻辑和/或物理群组执行上述刷新操作。例如,这些电子装置中的一些按列层次执行刷新。换句话说,当执行刷新操作以对DRAM芯片中的电路元件进行再充电时,这些电子装置将列中的一个或多个DRAM芯片作为群组进行刷新。在此类电子装置中,为了刷新列,首先移除列或阻止使用列执行存储器访问(例如,读取、写入等),诸如通过消除列中的DRAM芯片的芯片可用性信号。然后刷新列中的DRAM芯片中的电路元件(即,用现有信息重写以刷新所述现有信息)。刷新之后,使列的DRAM芯片恢复以供用于执行存储器访问。

用于刷新列中的DRAM芯片中的电路元件的过程需要数百个时钟周期,这可等同于数百纳秒,在这段时间内,列中的DRAM芯片不可用于执行存储器访问。因此,由于刷新操作,电子装置中依赖于存储器访问操作的结果的实体以及由此所执行的操作在可完成存储器访问操作之前会延迟显著量的时间。因为DRAM刷新操作导致电子装置中的其他操作的延迟,DRAM刷新操作的改进对于电子装置来说是有益的。

附图说明

图1呈现示出根据一些实施方案的电子装置的框图。

图2呈现示出根据一些实施方案的用于选择要用于对存储器列执行刷新的刷新顺序的过程的流程图。

图3呈现示出根据一些实施方案的用于使用刷新顺序对存储器列执行刷新的过程的流程图。

图4呈现示出根据一些实施方案的对存储器列执行刷新操作的时间线图。

贯穿附图和描述,相似的附图标号指代相同的附图元件。

具体实施方式

呈现以下描述以使本领域任何技术人员能够制造和使用所描述的实施方案,并且以下描述是在特定应用及其要求的背景下提供的。对所描述的实施方案的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的一般原理可应用于其他实施方案和应用。因此,所描述的实施方案不限于所示的实施方案,而是将被赋予与本文公开的原理和特征一致的最宽范围。

在以下描述中,使用各种术语来描述实施方案。以下是对这些术语之一进行的简化且一般的描述。应注意,术语可具有重要的附加方面,为了清楚和简洁起见,本文没有列举附加方面,因此描述并不意图限制术语。

功能块:功能块是指一个或多个相互关联的电路元件(诸如集成电路元件、离散电路元件等)的群组、集合和/或组。电路元件因电路元件共有至少一种特性而“相互关联”。例如,相互关联的电路元件可包括在特定的集成电路芯片或其部分中、制造在其上或以其他方式耦接到其上,可涉及给定功能(计算或处理功能、存储器功能等)的执行,可由公共控制元件控制等。功能块可包括任何数量的电路元件,从单个电路元件(例如,单个集成电路逻辑门)到数百万或数十亿个电路元件(例如,集成电路存储器)等。

所描述的实施方案包括一种电子装置,其具有存储器功能块和存储器控制器功能块。存储器功能块包括多列动态随机存取存储器(DRAM)电路。存储器电路因存储器电路随时间推移损失电荷而是“动态的”,因此必须定期地对其进行刷新,以便避免丢失所存储的信息。存储器控制器功能块包括刷新逻辑,所述刷新逻辑确定在刷新间隔期间针对各个存储器列执行刷新操作的方式和时间。例如,存储器控制器可基于指定标准来确定要刷新的特定存储器列以及要在刷新间隔期间对存储器列进行刷新的刷新顺序。

在一些实施方案中,在刷新间隔之前,刷新逻辑执行用于针对所述刷新间隔确定刷新顺序的操作。通常,刷新顺序是要在刷新间隔期间对所标识存储器列(或更简单地说,“列”)进行刷新的顺序。当确定刷新顺序时,刷新逻辑首先标识要在刷新间隔期间对其执行刷新的列。例如,刷新逻辑可标识存储器控制器目前针对其缓冲的存储器访问超过指定数量的列(其中“访问”包括存储器读取、写入、移动、删除等)。然后,刷新逻辑至少部分地基于所标识列的数量将刷新间隔划分为子间隔,每个子间隔将用于对所标识列中的一个执行刷新。例如,如果存在五个所标识列,则刷新逻辑可将刷新间隔划分为五个子间隔。接下来,基于与缓冲存储器访问的特性和/或存储器控制器与所标识列之间的相互作用有关的一个或多个标准,刷新逻辑确定用于对所标识列执行刷新的刷新顺序。在这些操作结束时,刷新逻辑已确定了刷新间隔的子间隔的数量以及要在子间隔中执行刷新的刷新顺序两者。

在一些实施方案中,与用于确定刷新顺序的缓冲存储器访问的一个或多个特性有关的标准包括诸如以下的标准:对每个列的缓冲存储器访问的计数(即,针对每个列在存储器控制器中待决的存储器访问的总数)、来自一组类型(例如,读取、写入、移动、删除等)中的缓冲存储器访问中的每一个的类型、来自一组优先级中的缓冲存储器访问的优先级等。例如,在一些实施方案中,存储器控制器保持处于一组两个或更多个优先级级别中的每一个的缓冲存储器访问的数量的按列记录,并且标准是指定优先级的缓冲存储器访问的数量、对每个列的缓冲存储器访问的平均优先级级别等。在一些实施方案中,与存储器控制器与所标识列之间的相互作用有关的标准包括诸如以下的标准:已经发送或将要发送到列的命令的类型、列之间的相互关系等。例如,标准可以是存储器控制器先前向(未向)所标识列和/或其他列发送此类命令的相对定时。在一些实施方案中,存储器控制器保持用于确定是否满足对应标准的值的一个或多个运行记录(即,实时以及在事件发生时更新的记录)。

在一些实施方案中,在确定刷新顺序之后,刷新逻辑使存储器控制器按所述刷新顺序执行刷新操作。针对刷新顺序中的第一列,存储器控制器在第一子间隔中发送刷新,这意味着暂停对第一列的缓冲存储器访问并且在刷新间隔开始时基本上立即对第一列执行刷新。针对刷新顺序中的第二列和随后列,在针对刷新顺序中的一个或多个先前列执行刷新的同时,存储器控制器对那个列执行缓冲存储器访问。以此方式,当用于对第一列之后的每个列执行刷新的子间隔发生时,那个列已准备好用于刷新。换句话说,存储器控制器在对列进行刷新之前已经(尽量)清除了对列的缓冲存储器访问。通过如上所述在执行刷新之前执行缓冲存储器访问,存储器控制器可帮助避免依赖于缓冲存储器访问的实体(例如,处理器、输入-输出装置等)的延迟。在一些实施方案中,存储器控制器还避免在用于列的子间隔发生的指定时间内向那个列发生指定命令,从而避免子间隔期间的刷新的对应延迟。

通过如上所述确定刷新顺序并在使用刷新顺序执行刷新之前执行缓冲存储器访问,所描述的实施方案提高了刷新操作的性能。更具体地,所描述的实施方案可避免现有系统中在反应性地并且没有使用刷新顺序地执行刷新操作—并且随后在执行相应刷新操作之后发送暂停的缓冲存储操作导致存储器访问延迟—时所经历的一些延迟。这可帮助避免执行程序代码的不必要的延迟、闲置的计算元件以及在执行DRAM刷新的现有电子装置中发生的其他低效现象。电子装置的改进的功能进而可产生更高的用户满意度。

图1呈现示出根据一些实施方案的电子装置100的框图。如在图1中可见,电子装置100包括处理功能块102和存储器功能块110。通常,处理功能块102和存储器功能块110在硬件中(即,使用各种电路元件和装置)实现。例如,处理功能块102和存储器功能块110可完全制造在一个或多个半导体芯片上(包括在用于功能块中的每一个的一个或多个分离半导体芯片上),可由半导体芯片结合离散电路元件来塑造,可单独由离散电路元件制造等。如本文所述,处理功能块102和存储器功能块110执行用于处置存储器功能块110中的动态随机存取存储器(DRAM)的刷新的操作。

处理功能块102是电子装置100中执行计算和其他操作(例如,控制操作、配置操作等)的功能块。如在图1中可见,处理功能块102包括处理复合体104-106。处理复合体104-106是包括用于执行计算和其他操作的元件的功能块,所述元件诸如中央处理单元(CPU)或CPU内核、专用集成电路(ASIC)、通用图形处理单元(GPGPU)、现场可编程门阵列(FPGA)等。例如,在一些实施方案中,处理复合体104-106中的一者或两者包括经由高速互连耦接在一起的多个CPU内核、高速缓存和其他元件。处理功能块102还包括下文有更详细描述的存储器控制器108。

存储器功能块110是电子装置100中执行电子装置100的存储器(例如,“主”存储器)的操作的功能块。存储器功能块110包括:存储器电路,诸如第四代双数据速率同步DRAM(DDR4 SDRAM)和/或用于存储数据和指令以供电子装置100中的功能块使用的其他类型的存储器电路;以及控制电路,其用于处置对存储在存储器电路中的数据和指令的访问以及用于执行其他控制或配置操作。在所描述的实施方案中,存储器功能块110中的存储器电路中的至少一些是“动态”存储器电路。动态存储器电路使用由于泄漏和/或其他电荷损失机制而随时间推移损失电荷的电路元件(诸如电容器)来存储信息(例如信息位,诸如数据、指令等)。因为电路元件损失电荷,所以定期地执行刷新操作以对电路元件进行再充电,从而避免丢失所存储的信息。例如,在一些实施方案中,给定电路元件可能需要每N微秒刷新一次,以便确保存储在电路元件中的信息不会由于泄漏和/或其他电荷损失机制而丢失。

如在图1中可见,存储器功能块110包括存储器模块112-118,其是包括安装在电路板两侧的数个存储器集成电路芯片(MEM CHIP)120(例如,DDR SDRAM集成电路芯片)的模块,诸如双列直插存储器模块(DIMM)(图1中仅示出存储器模块112-118的一侧)。在所描述的实施方案中,每个存储器芯片120包括数个体诸如体122(为清楚起见,图1中仅针对存储器芯片120中的一个标记体),每个体包括数个存储器电路阵列(未示出)。在图1所示的存储器模块112-118的那一侧上,存储器模块112-118上的存储器芯片120在逻辑上和/或物理上划分为八个列(为清楚起见,图1中仅针对存储器模块中的一些标记列124-126),如使用虚线所示。在一些实施方案中,控制信号、功率信号、地址信号、芯片选择和/或其他信号分别耦接到列中的每一个,从而使得能够分别对列进行寻址/访问、控制、上电和下电和/或与之互动。所描述的实施方案按列的分辨率对存储器功能块110中的存储器电路执行刷新。换句话说,当刷新DRAM存储器电路时,所描述的实施方案选择列并且在那个列的存储器电路上执刷行新。

在一些实施方案中,存储器芯片120中的一些或全部包括布置在堆叠中的至少两个分离DRAM存储器芯片。换句话说,各自包括一组体的两个或更多个分离存储器芯片在物理上布置在堆叠中,所述堆叠可称为“3D堆叠”。在这些实施方案中,存储器芯片包括用于与堆叠中的存储器芯片通信以及在存储器芯片之间通信的通信机构,诸如硅通孔,并且堆叠中的至少一个芯片包括用于与存储器控制器108和堆叠外部的其他实体通信的接口电路。在一些实施方案中,上述列是或包括单个存储器芯片堆叠中的芯片的至少一部分。

存储器控制器108是管理、控制以及以其他方式处置处理功能块102与存储器功能块110之间的相互作用的功能块。例如,存储器控制器108代表处理功能块102执行存储器访问(即,读取、写入、删除、移动等),执行对存储器功能块110的配置和控制操作和/或其他操作。在一些实施方案中,存储器控制器108调度、引起和/或控制对存储器功能块110中的DRAM存储器电路的刷新的执行。在一些实施方案中,存储器控制器108经由诸如通道128-130的通道与存储器模块112-118中的相应单独存储器模块通信,所述通道各自包括总线、电线、引导件和/或其他通信元件和电路系统。

在一些实施方案中,存储器访问由存储器控制器108缓冲。换句话说,在从诸如处理复合体104的实体接收到要执行存储器访问的请求、命令或其他指示时,存储器控制器108确定要将存储器访问(即,请求、命令等—或基于其的信息)保持在存储器控制器108中的缓冲器、队列或另一存储元件中,而不是将其立即发送到存储器功能块110以供解析。例如,存储器控制器108可缓冲存储器访问,以便能够进行存储器访问(重新)排序,从而避免与要访问的列正在执行的其他操作相冲突、避免干扰对应通道上的其他业务等。在这些实施方案中的一些中,存储器控制器108诸如通过架构规范或其他系统规则而被限制为针对每个列在给定时间缓冲仅预定数量(例如,7个、8个等)的存储器访问,和/或在将存储器访问发送到存储器功能块110之前仅保持缓冲存储器访问达指定时间量。

存储器控制器108包括刷新逻辑(RELO)132。刷新逻辑132是存储器控制器108中的功能块,其执行用于确定要在刷新间隔期间对存储器列进行刷新的刷新顺序的操作。如本文所述,刷新逻辑132基于缓冲存储器访问的特性和/或存储器控制器108与存储器列之间的相互作用确定刷新顺序,然后使存储器控制器基于所述刷新顺序向要刷新的每个列发送相应刷新。

电子装置100出于说明性目的而被简化。然而,在一些实施方案中,电子装置100包括另外或不同的功能块、子系统、元件和/或通信路径。例如,电子装置100可包括显示子系统、电源子系统、输入-输出(I/O)子系统等。电子装置100通常包括足以执行本文描述的操作的功能块等。

电子装置100可以是执行计算操作的任何装置或可包括在其中。例如,电子装置100可以是台式计算机、膝上型计算机、可穿戴计算装置、平板计算机、一件虚拟或增强现实装备、智能电话、人工智能(AI)或机器学习装置、服务器、网络家电、玩具、一件视听装备、家用电器、车辆等和/或其组合,或可包括在其中。

在所描述的实施方案中,在“刷新操作”期间对存储器功能块中的动态存储器电路进行刷新,以避免丢失所存储的信息。在一些实施方案中,刷新操作按存储器列的分辨率执行,使得在单个刷新操作期间对存储器列中的所有存储器电路进行刷新。在一些实施方案中,在刷新操作期间,首先移除要刷新的存储器列或阻止其有效使用,使得存储器访问和涉及存储在存储器列的存储器电路中的信息的其他操作暂停、终止或以其他方式延迟达刷新操作的持续时间。例如,在一些实施方案中,存储器控制器将待决存储器访问操作存储在与列相关联的缓冲器、队列或其他存储器电路中,直到刷新操作完成之后为止。然后对存储器列进行刷新。例如,在一些实施方案中,针对列中的一组多行存储元件,在刷新操作期间,直到每一行都已被刷新为止,存储器控制器将来自下一行存储器电路中的一组位的值存储到行缓冲器中,然后对那一行存储器电路的存储器电路进行预充电,接下来将来自行缓冲器的所存储值写回到那一行存储器电路中。一旦完成刷新操作,即,列中的存储器电路都被刷新,则将存储器列释放回有效使用状态,使得正常执行存储器访问和涉及存储在存储器电路中的信息的其他操作(包括缓冲存储器访问)。

在所描述的实施方案中,存储器控制器中的刷新逻辑确定刷新来自多个存储器列之中的存储器列中的动态存储器电路的顺序。图2呈现示出根据一些实施方案的用于选择要用于对存储器列执行刷新的刷新顺序的过程的流程图。应注意,图2中所示的操作作为由一些实施方案执行的操作的一般实例呈现。由其他实施方案执行的操作包括不同的操作和/或以不同顺序执行的操作。对于图2中的实例,与电子装置100具有相似内部布置的电子装置被描述为执行各种操作。然而,在一些实施方案中,不同布置的电子装置执行所描述的操作。例如,电子装置中可存在不同数量的列、存储器模块等。

图2所示的操作在存储器控制器(例如,存储器控制器108)中的刷新逻辑(例如,刷新逻辑132)检测要对其执行刷新的存储器列(步骤200)时开始。针对此操作,刷新逻辑执行一个或多个检查,以基于关于存储器列的、与其相关联的或以其他方式与其相关的信息确定要在下一个刷新间隔期间执行刷新。例如,在一些实施方案中,刷新逻辑检测处于或接近指定状态的存储器列,诸如存储器控制器已经针对其缓冲(并且可能地故意缓冲/延迟)足够数量的存储器访问的列,所述缓冲存储器访问中的至少一些应在下一个刷新间隔期间发送以避免违反对应的存储器访问规则。在这种情况下,可通过架构规范、电子装置中的规则和/或通过定时约束来决定缓冲存储器访问的可允许数量的限制—因为缓冲存储器访问可能需要在其过时之前、在请求装置超时之前等进行发送。

然后,刷新逻辑至少部分地基于要对其执行刷新的存储器列的数量将刷新间隔划分为数个子间隔(步骤202)。在此操作期间,在一些实施方案中,刷新逻辑将刷新间隔划分为数个子间隔,所述子间隔的数量等于要对其执行刷新的存储器列的数量。例如,如果要在刷新间隔期间刷新八个列中的五个,则刷新逻辑可将刷新间隔划分为五个相等的子间隔,使得将N微秒(例如,4微秒、2微秒等)的刷新间隔划分为N/5微秒的子间隔。在一些实施方案中,除了要对其执行刷新的存储器列的数量之外,刷新逻辑还使用一个或多个其他输入或因素来确定子间隔的数量、持续时间和/或布置。例如,可使用每个存储器列的当前状态(例如,缓冲存储器访问的数量等)来将刷新间隔划分为相应不同时间长度的子间隔。

在一些实施方案中,使用最小和/或最大数量的子间隔。例如,可选择指定最小数量的存储器列作为要对其执行刷新的存储器列,而不管在步骤200中是否已经确定至少最小数量的存储器列需要刷新。在这种情况下,步骤200-202将涉及至少最小数量的列—并且因此涉及至少最小数量的子间隔。在这些实施方案中,当确定少于最小数量的列需要刷新时,可使用如在下文更详细描述的默认或初始刷新顺序来决定存储器列中要刷新的至少一些。作为另一实例,可选择指定最大数量的列(例如,如由在刷新间隔内刷新每个列所花费的时间所限制)作为要对其执行刷新的存储器列—并且步骤200-202将涉及最多最大数量的列并且因此涉及最多最大数量的子间隔。

接下来,刷新逻辑基于存储器列的缓冲存储器访问的一个或多个特性和/或存储器控制器的操作来确定用于对存储器列执行刷新的刷新顺序(步骤204)。通常,针对此操作,刷新逻辑基于缓冲存储器访问、列和/或存储器控制器的目前状况来确定(即,生成、选择等)刷新顺序。鉴于缓冲存储器访问和其他目前状况,所确定的刷新顺序使得按以下方式对列的刷新操作进行排序,所述方式为使得帮助减少对执行刷新的电子装置的整体性能的影响。换句话说,针对按减少执行缓冲存储器访问的延迟的方式执行的刷新(其可能以其他方式阻止缓冲存储器访问的执行,特别是在现有电子装置中)确定刷新顺序。这意味着依赖于缓冲存储器访问的实体(例如,处理复合体104-106等)不太可能全部地或部分地闲置以等待由于刷新而延迟的缓冲存储器访问的完成。

在一些实施方案中,用于确定刷新顺序的缓冲存储器访问的特性是针对要刷新的每个存储器列缓冲的存储器访问的数量。例如,在一些实施方案中,要刷新具有多于N个缓冲存储器访问(例如,5个、7个等)的存储器列,并且基于每个存储器列的缓冲存储器访问的实际数量来选择刷新顺序。例如,假设N=5,根据架构规范针对任何存储器列可保持最多7个缓冲存储器访问,并且四个存储器列具有以下数量的缓冲存储器访问:列

在一些实施方案中,用于确定刷新顺序的缓冲存储器访问的特性是针对要刷新的每个存储器列缓冲的存储器访问的优先级。例如,在一些实施方案中,存储器控制器给来自电子装置中的各种实体的存储器访问分配来自一组两个或更多个优先级中的对应优先级。例如,在这些实施方案中,来自I/O子系统的存储器访问可被分配比来自处理复合体的存储器访问低的优先级,来自特定软件实体(例如,浏览器、文字处理器等)的存储器访问可被分配比来自其他软件实体(例如,操作系统、固件等)的存储器访问低的优先级,等等。在这些实施方案中,基于以下来选择刷新顺序:具有指定优先级的缓冲存储器访问的计数、缓冲存储器访问的优先级的平均数或总和、和/或缓冲存储器访问的优先级的另一个特性。例如,假设要刷新四个存储器列,优先级包括至少最低优先级和最高优先级,并且四个存储器列具有如下的最高优先级的缓冲存储器访问:列

在一些实施方案中,用于确定刷新顺序的缓冲存储器访问的特性是针对要刷新的每个存储器列缓冲的存储器访问的类型。例如,在一些实施方案中,存储器访问的类型包括存储器读取、存储器写入、存储器删除、存储器移动等。在这些实施方案中,基于以下来选择刷新顺序:具有指定类型的缓冲存储器访问的计数、具有一个或多个类型的缓冲存储器访问的平均数或总和、和/或缓冲存储器访问的类型的另一个特性。例如,假设要刷新五个存储器列,类型包括至少写入类型和读取类型,并且五个存储器列具有如下的写入类型的缓冲存储器访问:列

在一些实施方案中,用于确定刷新顺序的存储器控制器的操作是存储器控制器先前向存储器列发送的命令。例如,在一些实施方案中,当存储器控制器向存储器列发送命令(例如,页面打开命令等)时,存储器列执行数个操作,然后等待延迟周期(例如,N微秒),之后存储器列才处理随后操作并因此处理命令。在一些实施方案中,基于在延迟周期内是否向存储器列发送命令来选择刷新顺序。例如,假设要刷新三个存储器列:列

在一些实施方案中,使用上述存储器列的缓冲存储器访问的特性中的两个或更多个的组合和/或存储器控制器的操作来确定刷新顺序。例如,在一些实施方案中,使用两个或更多个特性的组合值或平均值(例如,每个列的缓冲存储器访问的计数和缓冲存储器访问的优先级)来确定刷新顺序。在一些实施方案中,使用数学、逻辑和/或其他函数来确定组合值。

在一些实施方案中,刷新逻辑或另一实体保持用于确定刷新顺序的存储器列的缓冲存储器访问的一个或多个特性和/或存储器控制器的操作的运行记录。例如,假设其中缓冲存储器访问的特性包括针对每个存储器列缓冲的存储器访问的数量的实施方案,则刷新逻辑、存储器控制器和/或另一实体可保持每个存储器列的缓冲存储器访问的计数器,所述计数器在存储器访问被缓冲(例如,存储在存储器控制器中的缓冲器或队列中)时递增,并且在存储器访问被解除缓冲、执行或以其他方式处置时递减。作为另一实例,假设其中使用存储器控制器的操作确来定刷新顺序的实施方案,则刷新逻辑、存储器控制器和/或另一实体可保持定时器,所述定时器在向每个存储器列发送一个或多个指定命令启动,在向每个存储器列发送一个或多个指定命令时存储时间戳,等等。在一些实施方案中,刷新逻辑或另一实体生成或以其他方式确定用于根据需要确定刷新顺序的存储器列的缓冲存储器访问的一个或多个特性和/或存储器控制器的操作的记录。例如,刷新逻辑或其他实体可根据需要针对存储器访问所存储于的缓冲器使用尾指针来计算缓冲存储器访问的计数等。

在一些实施方案中,可针对一些或所有刷新间隔使用静态/不变的默认或初始刷新顺序。例如,可在列均未以上述指定状态(其中缓冲存储器访问中的至少一些应在下一个刷新间隔期间发送以避免违反对应存储器访问规则)或接近上述指定状态操作时的情况下使用默认刷新顺序。在一些实施方案中,由外部实体诸如在配置文件或固件中提供默认或初始刷新顺序。在一些实施方案中,在图2中确定的刷新顺序是对默认或初始刷新顺序的修改。

在一些实施方案中,使用一个或多个规则、准则、阈值、函数等来基于上述存储器列的缓冲存储器访问的特性和/或存储器控制器的操作来确定刷新顺序。在这些实施方案中的一些中,可从诸如软件实体、配置文件、固件等的外部源接收所述一个或多个规则、准则、阈值、函数等。

然后,刷新逻辑使存储器控制器按刷新顺序对存储器列执行刷新(步骤206)。针对此操作,刷新逻辑将刷新顺序传达给存储器控制器。然后,存储器控制器使用刷新顺序来在对应刷新间隔期间执行刷新。图3呈现示出根据一些实施方案的用于使用刷新顺序对存储器列执行刷新的过程的流程图。应注意,图3所示的操作作为由一些实施方案执行的操作的一般实例呈现。由其他实施方案执行的操作包括不同的操作和/或以不同顺序执行的操作。对于图3中的实例,与电子装置100具有相似内部布置的电子装置被描述为执行各种操作。然而,在一些实施方案中,不同布置的电子装置执行所描述的操作。

图3所示的操作在存储器控制器针对刷新顺序中的第一存储器列暂停缓冲存储器访问并且在刷新间隔中的一组子间隔中的第一子间隔中执行刷新时(步骤300)开始。通常并且如本文更详细地描述,所描述的实施方案的益处中之一在于可通过在在其中执行刷新的子间隔之前发送对应缓冲存储器访问来将存储器列准备好用于待决刷新。然而,在一些实施方案中,对于刷新顺序中的第一存储器列,在刷新间隔中没有时间来发送对应缓冲存储器访问。相反,通过将缓冲存储器访问保持在存储器控制器中的缓冲器中来“暂停”缓冲存储器访问,并且直到刷新完成之后才执行缓冲存储器访问。刷新“基本上立即”执行,因为刷新顺序中的第一存储器列的刷新在刷新间隔开始时(即,在刷新间隔的第一子间隔开始时)或在刷新间隔开始之后不久执行。在一些实施方案中,可以这种方式并且在这种定时下执行图2的操作:使得生成/准备刷新顺序以恰好赶得上在刷新间隔期间按刷新顺序开始存储器列的刷新。因此,一旦准备好刷新顺序,就可在第一子间隔中对第一存储器列排执行刷新—即,可“基本上立即”执行刷新。

图4呈现示出根据一些实施方案对存储器列执行刷新操作的时间线图。更具体地,图4呈现如图3所示的基于刷新顺序执行的刷新的图示。应注意,图4作为一个实施方案的刷新操作的实例呈现,但是其他实施方案以不同方式操作,诸如刷新不同数量的存储器列和/或按不同顺序刷新存储器列、在不同时间执行缓冲存储器访问等。如在图4中可见,刷新顺序如下:(1)存储器列(RANK)400、(2)存储器列402、(3)存储器列406和(4)存储器列404。如上面针对图3的步骤300所描述,在刷新间隔开始时(即,在子间隔(SUB-INT)408中)基本上立即地对存储器列(RANK)400(其是刷新顺序中的第一存储器列)执行刷新操作。直到刷新间隔中的子间隔408之后,即在子间隔410期间(或可能地在其后)),存储器列400的缓冲存储器访问的执行才发生。

返回图3,针对刷新顺序中的第二和随后存储器列,在对前一存储器列执行刷新的同时,存储器控制器执行对应缓冲存储器访问(步骤302)。在此操作期间,存储器控制器针对给定存储器列执行在开始对给定存储器列的刷新之前可执行的那么多的缓冲存储器访问。换句话说,将缓冲存储器读取、写入等发送到存储器列以便在其中执行,从而完成存储器访问。在一些情况下,大多数(如果不是全部)对给定存储器列的缓冲存储器访问在于对应子间隔期间开始对给定存储器列的刷新之前执行。返回图4并且如上面针对图3的步骤302所描述,在子间隔408期间对列402执行缓冲存储器访问,在子间隔410-412期间对列404执行缓冲存储器访问,并且在子间隔408-410期间对列406执行缓冲存储器访问。

通过如图3至图4所示在刷新开始之前执行缓冲存储器访问,所描述的实施方案可避免延迟电子装置中取决于缓冲存储器访问的结果的其他实体(例如,处理复合体104-106等)的操作。然而,应注意,电子装置中的其他实体可生成在对给定存储器列的刷新期间将由存储器控制器缓冲的新存储器访问,包括生成在子间隔之前但是在所述子间隔的阈值时间内生成的存储器访问。以此方式/在这些时间生成的存储器访问在刷新期间被暂停。

返回图3,针对第二和随后存储器列,存储器控制器在刷新间隔中的一组子间隔中的对应子间隔中执行刷新(步骤304)。如在图4中可见并且如上面针对图3的步骤304所描述,在子间隔410中对存储器列402(刷新顺序中的第二存储器列)执行刷新操作,在子间隔412中对存储器列406(刷新顺序中的第三存储器列)执行刷新操作,并且在子间隔414中对存储器列412(刷新顺序中的第四存储器列)执行刷新操作。

当多个列就处理存储器访问而言在满容量或接近满容量下操作时,所描述的实施方案可提高电子装置的性能(与现有电子装置相比)。这是事实,因为刷新如图2至图4所示进行组织,使得在执行对应刷新之前尽可能地执行缓冲存储器存储。这与现有电子装置形成对比,现有电子装置—对于达到必须发送缓冲存储器访问的状态的列—是反应性,并且在刷新的方法中缺乏组织和效率。

在本文描述的实施方案以及图2至图4中的实例中,刷新操作在列层次执行(即,在列分辨率下)。然而,每列的体和DRAM芯片的特定数量根据电子装置的配置、所使用的DRAM存储技术或架构、存储器模块的布置等变化。例如,在一些实施方案中,列包括仅一个DRAM芯片,包括一个或多个体等。因此,当刷新“列”时,列内的一个或多个体可被刷新。在一些实施方案中,在刷新操作期间刷新的体的数量和布置包括列中的一部分体—即,在给定刷新间隔(或子间隔)期间仅刷新列中的体中的一些。例如,在一些实施方案中,可分别刷新多体列内的一个或多个体。在这些实施方案中,针对列的刷新描述的操作可适于应用到列内的一个或多个体。例如,可在体层次和/或列和体层次确定刷新间隔和/或刷新顺序,并且可相应地执行刷新。

在一些实施方案中,电子装置(例如,电子装置100和/或其某个部分)使用存储在非暂时性计算机可读存储介质上的代码和/或数据来执行本文描述的操作中的一些或全部。更具体地,当执行所描述的操作时,电子装置从计算机可读存储介质读取代码和/或数据并且执行代码和/或使用数据。计算机可读存储介质可以是存储代码和/或数据以供电子装置使用的任何装置、介质或其组合。例如,计算机可读存储介质可包括但不限于易失性存储器或非易失性存储器,包括闪存存储器、随机存取存储器(eDRAM、RAM、SRAM、DRAM、DDR、DDR2/DDR3/DDR4 SDRAM等)、只读存储器(ROM)和/或磁性或光学存储介质(例如,磁盘驱动器、磁带、CD、DVD)。

在一些实施方案中,一个或多个硬件模块被配置来执行本文描述的操作。例如,硬件模块可包括但不限于一个或多个处理器/内核/中央处理单元(CPU)、专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、计算单元、嵌入式处理器、图形处理器(GPU)/图形内核、管线、加速处理单元(APU)、系统管理单元、功率控制器和/或其他可编程逻辑装置。当此类硬件模块被激活时,硬件模块执行操作中的一些或全部。在一些实施方案中,硬件模块包括一个或多个通用电路,其通过执行指令(程序代码、固件等)来配置以执行操作。

在一些实施方案中,表示本文描述的结构和机制中的一些或全部的数据结构(例如,处理功能块102、存储器功能块110和/或其某个部分)存储在非暂时性计算机可读存储介质上,所述非暂时性计算机可读存储介质包括可由电子装置读取和直接或间接使用以制造包括结构和机制的硬件的数据库或其他数据结构。例如,数据结构可以是采用诸如Verilog或VHDL的高级设计语言(HDL)的硬件功能性的行为级描述或寄存器传输级(RTL)描述。描述可由综合工具读取,所述综合工具可综合描述以产生包括来自综合库的表示包括上述结构和机制的硬件的功能性的门/电路元件的列表的网表。然后,可放置并路由网表以产生描述要应用于掩模的几何形状的数据集。然后,可在各种半导体制造步骤中使用掩模以产生对应于上述结构和机制的一个或多个半导体电路(例如,集成电路)。替代地,计算机可访问存储介质上的数据库可以是网表(具有或没有综合库)或数据集(根据期望),或图形数据系统(GDS)II数据。

在本说明书中,变量或未指定值(即,在没有值的特定实例的情况下对值的一般描述)由诸如N的字母表示。如本文所使用,尽管在本说明书中的不同位置可能使用相似的字母,但是在每种情况下变量和未指定值不一定相同,可能有不同的变量的量和值旨在用于一般变量和未指定值中的一些或全部。换句话说,在本说明书中,N和用于表示变量和未指定值的任何其他字母不一定彼此相关。

如本文所使用的表达“等(et cetera/etc.)”意图呈现一者和/或情况,即,与等相关联的列表中的元素中的“至少一个”的等同物。例如,在语句“系统执行第一操作、第二操作等”中,系统执行第一操作、第二操作和其他操作中的至少一个。此外,与等相关联的列表中的元素仅仅是一组实例中的实例—并且实例中的至少一些可能未出现在一些实施方案中。

仅出于说明和描述的目的呈现实施方案的前述描述。前述描述并不意图穷举或将实施方案限制为所公开的形式。因此,许多修改和变化对于本领域技术人员将是显而易见的。此外,以上公开内容并不意图限制实施方案。实施方案的范围由所附权利要求限定。

相关技术
  • 为具有多个列的系统配置动态随机存取存储器刷新
  • 频率调整电路、电子存储器及多个动态随机存取存储器芯片的刷新频率的确定方法
技术分类

06120112348506