CN112088368B - 动态的每存储体和全存储体刷新 - Google Patents
动态的每存储体和全存储体刷新 Download PDFInfo
- Publication number
- CN112088368B CN112088368B CN201880089664.6A CN201880089664A CN112088368B CN 112088368 B CN112088368 B CN 112088368B CN 201880089664 A CN201880089664 A CN 201880089664A CN 112088368 B CN112088368 B CN 112088368B
- Authority
- CN
- China
- Prior art keywords
- bank
- memory
- given
- latency
- refresh operation
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 claims abstract description 263
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000004044 response Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 239000004744 fabric Substances 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 239000000872 buffer Substances 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1636—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40603—Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
公开了用于执行计算系统中的高效存储器访问的系统、设备和方法。在各种实施方案中,一种计算系统包括计算资源和耦接到存储器装置的存储器控制器。所述存储器控制器确定针对多个排中的给定排的存储器请求。所述存储器控制器将所述给定排的预测的等待时间确定为所述存储器控制器中的用于存储未完成存储器请求的待决队列不存储针对所述给定排的任何存储器请求的时间量。所述存储器控制器将总存储体等待时间确定为用于利用每存储体刷新操作来刷新给定存储体中的尚未刷新的多个存储体的时间量。如果不存在针对所述给定排的待决请求,则使用所述预测的等待时间和所述总存储体等待时间中的每一者来在每存储体刷新操作与全存储体刷新操作之间进行选择。
Description
背景技术
相关技术的描述
当给定线程的存储器访问在计算系统的最后层级高速缓存中未命中时,将请求发送到系统存储器。因此,用于系统存储器(诸如片外动态随机存取存储器(DRAM))的存储器访问等待时间通常远大于高速缓存的访问等待时间。为了减小此类等待时间的影响,并且考虑到读取操作通常在程序执行的关键路径上,可为读取操作分配比写入操作更高的优先级。然而,因为存储器总线可利用双向共享总线结构,所以必须执行切换总线的驱动方向,并且增加的数据总线周转等待时间仍然存在。
为了增加带宽并进一步减少等待时间,可将DRAM组织成独立的排并且支持存储器访问流水线。一般来讲,DRAM将数据存储在给定存储体中的来自已激活行的缓冲器中。然而,与静态RAM(SRAM)不同,DRAM不针对每个存储访问具有相等的访问时间。而是,从系统存储器接收读取数据具有比将写入数据发送到系统存储器更长的等待时间。除了上述内容之外,对系统存储器的访问还使用多个事务。例如,根据情况需要诸如预充电、行的激活/打开、对已打开行的列读取访问、对已打开行的列写入访问和已打开行的关闭的DRAM事务。此外,这些各种事务中的每一者可具有不同的等待时间。通常,激活和预充电事务具有比读取访问和写入访问事务明显更高的等待时间。
一些存储器访问(诸如对存储体的同一行的连续访问)使用较少的上述事务。其他存储器访问需要更多的事务。例如,包括对未打开所请求的行的不同存储体的连续访问的存储器事务将需要更多的事务。除了上述内容之外,在已访问行之后何时关闭行是由DRAM中的控制逻辑进行的一项确定,这影响性能和功耗。
鉴于以上内容,期望用于执行计算系统的高效存储器访问的高效方法和系统。
附图说明
通过结合附图参见以下描述,可更好地理解本文所述的方法和机制的优点,在附图中:
图1是计算系统的一个实施方案的框图。
图2是存储器控制器的一个实施方案的框图。
图3是用于基于工作负载和总存储体等待时间来选择用于基于预测的等待时间来刷新排的刷新操作的方法的一个实施方案的流程图。
图4是用于基于工作负载和总存储体等待时间来选择用于基于预测的等待时间来刷新排的刷新操作的方法的一个实施方案的流程图。
图5是用于基于工作负载和总存储体等待时间来选择用于基于预测的等待时间来刷新排的刷新操作的方法的一个实施方案的流程图。
虽然本发明易于具有各种修改和替代形式,但通过举例的方式在图式中示出并且在本文中详细地描述特定的实施方案。然而,应当理解,图式和对其的详细描述并不意图将本发明局限于所公开的具体形式,而是相反,本发明将涵盖落入如所附权利要求所限定的本发明的范围内的所有修改、等效物和替代方案。
具体实施方式
在以下描述中,阐述了许多特定细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些特定细节的情况下实践各种实施方案。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文所述的方法。应当理解,为了说明的简单和清楚起见,附图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可相对于其他元件被放大。
公开了用于执行计算系统的高效存储器访问的各种系统、设备、方法和计算机可读介质。在一个实施方案中,计算系统包括一个或多个计算资源和外部系统存储器,诸如多种类型的动态随机存取存储器(DRAM)中的一种。计算资源的实例包括通用中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)等。在各种实施方案中,给定计算资源包括高速缓存存储器子系统。当给定计算资源确定存储器访问请求在高速缓存存储器子系统内未命中时,给定计算资源将存储器访问请求发送到一个或多个存储器控制器中的给定存储器控制器。
给定存储器控制器耦接到与存储器访问请求的目标地址相关联的存储器装置。如果计算系统包括多个存储器装置,则操作系统在多个存储器装置之间分配地址空间。存储器控制器支持在计算资源的请求地址与指向一个或多个存储器装置中的存储位置的地址之间的映射。在一些实施方案中,存储器控制器连接到单个存储器装置。在其他实施方案中,存储器控制器连接到多个存储器装置。
在一个实施方案中,存储器控制器中的控制逻辑接收关于由一个或多个计算资源执行的工作负载的信息。例如,控制逻辑接收给定计算资源的唯一计算资源识别符(ID)和要处理的多个线程。在一些实施方案中,操作系统(OS)调度器将计算资源ID和多个线程发送到存储器控制器。例如,OS调度器可发送对应于CPU的ID以及在CPU上调度的多个线程。类似地,OS调度器可发送对应于GPU的不同ID和在GPU上调度的多个线程。
在各种实施方案中,存储器控制器中的控制逻辑至少基于所接收的信息来预测等待时间。给定排的预测的等待时间是从自存储器控制器发送针对给定排的最新存储器访问到存储器控制器接收到针对给定排的另一个存储器访问的预测的时间量。在各种实施方案中,存储器控制器包括用于存储所接收的存储器访问请求的待决队列。然后,存储器控制器从待决队列中检索存储器访问请求,以用于传送到存储器。在这种实施方案中,预测的等待时间是用于存储未完成存储器请求的待决队列不存储针对给定排的任何存储器请求的时间量。
例如,选择特定的计算资源来处理某些应用程序。有时,某个应用程序的处理行为包括特定计算资源的高速缓存存储器子系统中的给定数量的存储器访问未命中。这些未命中导致多个存储器请求通过存储器控制器发送到系统存储器。在一些实施方案中,OS调度器还向存储器控制器发送识别对应于未命中的特定应用程序或应用程序类型的唯一的应用程序ID。应用程序类型还可用于预测存储器访问未命中并且确定预测的等待时间。
存储器控制器将所接收的存储器请求的目标地址转换为目标排、目标排内的目标存储体以及目标存储体内的目标行的指示。存储器控制器能够维持访问历史,所述访问历史将计算资源ID和多个线程与存储器请求所针对的排相关联。在一些实施方案中,由存储器控制器执行的关联也使用应用程序ID。在一些实施方案中,计算资源或功率管理器还将对应于计算资源的功率性能状态(p状态)发送到存储器控制器。在一个实施方案中,存储器控制器利用所接收的信息来维护一个或多个表,并且确定在哪些条件下访问特定排。此外,存储器控制器被配置为确定先前描述的预测的等待时间。
在各种实施方案中,当计算资源接收线程以用于执行时,计算资源发送资源ID和被调度来处理的多个线程。在一个实施方案中,当发生超过阈值的数量差时,计算资源发送多个线程的更新。例如,如果线程的数量的增加超过阈值,则计算资源将更新的数量发送到存储器控制器。类似地,如果数量的减少降至低于阈值,则计算资源将更新的数量发送到存储器控制器。
在又一些实施方案中,计算资源发送对应于计算资源所使用的高速缓存存储器子系统的高速缓存未命中率信息的更新。在一个实施方案中,计算资源发送分层高速缓存存储器子系统的每个层级的未命中率。在另一个实施方案中,发送单个组合的未命中率。与多个线程类似,当检测到超过阈值的更改时,将发送未命中率信息。在各种实施方案中,存储器控制器在确定在哪些条件下访问特定排并预测先前描述的等待时间时另外使用p状态和未命中率中的一者或多者。
在一个实施方案中,当存储器控制器接收到开始存储器装置中的给定排的刷新间隔的指示时,存储器控制器至少基于给定排的预测的等待时间来选择一个或多个刷新操作。在一个实施方案中,存储器控制器比较预测的等待时间和全存储体刷新操作的等待时间。全存储体刷新操作的等待时间是刷新给定排中的全部存储体所花费的时间量。在一个实例中,给定排包括8个存储体,并且在对给定排执行全存储体刷新操作时,不允许待决存储器请求访问给定排中的8个存储体中的任何存储体。在各种实施方案中,全存储体刷新操作的等待时间是恒定值。例如,全存储体刷新操作的等待时间可为约130纳秒(ns)。等待时间也可被测量为多个时钟周期。
相反,每存储体刷新操作的等待时间通常小于全存储体刷新操作的等待时间。在一个实例中,每存储体刷新操作的等待时间可达到60ns。但是,虽然8个存储体中的一个存储体正被刷新,并且无法通过待决存储器请求进行访问,但是其他7个存储体可通过待决存储器请求进行访问。在一个实施方案中,当存储器控制器确定存在针对给定排的待决存储器请求时,存储器控制器选择每存储体刷新操作以对给定排中的多个存储体中的给定存储体执行。在一个实施方案中,当存储器控制器确定预测的等待时间小于全存储体刷新操作的等待时间并且不存在针对给定排的待决存储器请求时,存储器控制器选择每存储体刷新操作以对给定排中的多个存储体中的给定存储体执行。
在一些实施方案中,所述存储器控制器将总存储体等待时间确定为用于利用每存储体刷新操作来刷新给定存储体中的尚未刷新的多个存储体的时间量。在另一个实施方案中,存储器控制器响应于确定以下而执行给定排的每存储体刷新操作:预测的等待时间大于全存储体刷新操作的等待时间,总存储体等待时间小于全存储体刷新操作的等待时间,以及存在针对给定排的一个或多个待决存储器请求。在其他实施方案中,存储器控制器响应于确定预测的等待时间小于全存储体刷新操作的等待时间而执行给定排的每存储体刷新操作。
参见图1,示出了计算系统100的一个实施方案的一般化框图。如图所示,计算系统100包括在存储器控制器130中的每一个与计算资源110之间的通信结构120。在所示的实施方案中,计算资源包括中央处理单元(CPU)112、图形处理单元(GPU)114和集线器116。集线器116用于与多媒体引擎118通信。尽管示出了单个存储器控制器130,但是在其他实施方案中,在计算系统100中使用另一数量的存储器控制器。
在一些实施方案中,计算系统100的部件是诸如片上系统(SOC)的集成电路(IC)上的单个管芯。在其他实施方案中,部件是系统级封装(SiP)或多芯片模块(MCM)中的单个管芯。在一个实施方案中,计算系统100是以下内的独立系统:移动计算机、智能电话、智能手表或平板电脑;桌上型电脑;服务器;或其他项。CPU 112、GPU 114和多媒体引擎118是能够生成存储器访问请求的计算资源的实例。尽管未示出,但是在其他实施方案中,在计算资源110中包括其他类型的计算资源。
在各种实施方案中,存储器控制器130通过通信结构120从计算资源110接收存储器访问请求,并且将所述存储器访问请求发送到片外磁盘存储器162和被实现为片外动态随机存取存储器(DRAM)170的系统存储器中的一者或多者。存储器控制器130还从DRAM 170和磁盘存储器162接收响应,并且将响应发送到计算资源110中的请求的对应源。
CPU 112中的一个或多个处理器核心中的每一个包括用于根据给定选定的指令集架构(ISA)执行指令的电路。在各种实施方案中,CPU 112中的处理器核心中的每一个包括用于处理给定ISA的指令的超标量、多线程微架构。在一个实施方案中,GPU 114包括具有大量并行执行通道的高并行数据微架构。在一个实施方案中,微架构将单指令多数据(SIMD)管道用于并行执行通道。多媒体引擎118包括用于处理多媒体应用的音频数据和视觉数据的处理器。
在一个实例中,加速处理单元(APU)、显示控制器、音频处理器等是要包括在处理单元110中的另外的候选装置。APU的一个实例是CPU,所述CPU与GPU、FPGA或其他处理单元集成在相同管芯上,从而提高了这些单元之间的数据传送速率,同时降低了功耗。在其他实施方案中,APU包括视频处理和其他专用加速器。
在各种实施方案中,通信结构120在计算资源110与存储器控制器130之间来回传送业务,并且包括用于支持相应的通信协议的接口。在一些实施方案中,通信结构120包括用于存储请求和响应的队列、用于在跨内部网络发送请求之前在所接收的请求之间进行仲裁的选择逻辑、用于构建分组并对其进行解码的逻辑以及用于选择分组的路由的逻辑。
在一些实施方案中,计算系统100的地址空间至少在CPU 112、GPU 114和集线器116以及一个或多个其他部件(诸如输入/输出外围装置(未显示))与其他类型的计算资源之间划分。维护存储器映射以用于确定将哪个地址映射到哪个部件,并因此确定应当将对特定地址的存储器请求路由到CPU 112、GPU 114和集线器116中的哪一者。计算资源110中的一者或多者包括高速缓存存储器子系统,以用于减少相应的处理器核心的存储器等待时间。此外,在一些实施方案中,共享的高速缓存存储器子系统在访问片外DRAM 170和/或片外磁盘存储器162之前被处理器核心用作最后层级高速缓存(LLC)。计算资源110中的高速缓存存储器子系统(未示出)包括被配置为存储数据的高速的高速缓存存储器。在各种实施方案中,高速缓存存储器子系统被实现为高速缓存的层次结构。如本文所使用的,术语“存储器访问”是指执行存储器读取请求或存储器写入请求操作,如果对应请求地址的所请求的数据驻留在高速缓存中,则所述操作导致高速缓存命中。替代地,如果所请求的数据未驻留在高速缓存中,则存储器访问请求导致高速缓存未命中。
存储器控制器130通过存储器总线150将存储器访问请求发送到片外DRAM 170。响应于高速缓存未命中,对应的数据从片外DRAM170传送到处理单元110中的高速缓存存储器子系统,以便完成原始存储器访问请求。在各种实施方案中,片外DRAM 170包括多通道存储器架构。这种类型的架构通过在其间添加更多的通信通道来提高数据到存储器控制器130的传送速度。在一个实施方案中,多通道架构利用多个存储器模块和母板和/或能够支持多个通道的卡。在一些实施方案中,DRAM 170利用三维集成电路(3D IC)来提供系统存储器。在这种实施方案中,3D集成DRAM提供低等待时间互连和另外的片上存储器存储以减少片外存储器访问。在各种实施方案中,DRAM 170被用作计算系统100的系统存储器。可能存在并设想使用包括一个或多个行缓冲器或其他等效结构的基于行的访问方案的用于系统存储器的其他存储器技术。其他存储器技术的实例包括相变存储器、自旋扭矩转移电阻式存储器、忆阻器等。
如图所示,DRAM 170包括多个排176A至176B,每个排具有多个存储器阵列存储体。例如,如图所示,排176A包括存储器阵列存储体174A至174B。存储体174A至174B中的每一个包括行缓冲器172A至172B。行缓冲器172A至172B中的每一个存储对应于存储器阵列存储体174A至174B内的多行中的所访问的行的数据。所访问的行由所接收的存储器访问请求中的DRAM地址识别。DRAM 170内的控制逻辑执行事务,诸如激活以及对DRAM 170内的数据和控制线进行预充电,以从所识别的行读取数据并且将数据写入所识别的行。
在各种实施方案中,DRAM 170包括一个或多个存储器通道、每通道的一个或多个存储器模块或装置、每存储器模块的一个或多个排、每排的一个或多个存储体以及每存储体的一个或多个行。通常,每一行存储一页数据。页面的大小是基于设计考虑来选择的。这种页面大小可以是一千字节(1KB)、四千字节(4KB)或其他大小。在各种实施方案中,存储器总线150利用双向共享总线结构。
如果在高速缓存存储器子系统中发生高速缓存未命中,则生成存储器访问请求以检索所请求的数据。存储器控制器130转换从计算资源110接收的存储器访问请求的目标地址。在各种实施方案中,在存储器控制器130中执行存储器访问控制逻辑确定排176A至176B中的目标排、存储器阵列存储体174A至174B中的目标存储体和目标存储体内的目标页面。
如图1所示,存储器控制器130包括用于使通过通信结构120从计算资源110接收的存储器访问请求排队的请求队列132。存储器控制器130还具有用于存储从DRAM 170接收的响应的响应队列134。在各种实施方案中,请求队列132包括用于存储读取存储器访问请求和写入存储器访问请求两者的一个或多个队列。在另一个实施方案中,请求队列132包括用于存储读取请求和写入请求的单独队列。在又一实施方案中,请求队列132包括用于存储所接收的存储器访问请求的一个或多个队列和用于存储选自一个或多个队列的调度的存储器访问请求的单独队列。
图1中的调度器136包括用于选择存储在请求队列132中的存储器访问请求以发送到DRAM 170的逻辑。在各种实施方案中,可有序地或无序地选择存储器请求。存储器控制器130对请求的无序选择可基于优先级、服务质量指示、年限、进程或线程识别、目标地址、与(诸如针对相同的存储器通道、针对相同的排,针对相同的存储体和/或针对相同的页面或其他项)其他所存储的请求的关系。类似地,在一些实施方案中,存储器控制器130还支持向计算资源110无序地发送读取响应(即,所检索的读取数据)。
刷新操作型选择器138(也称为“选择器”138)用于至少部分地基于对应于即将发生的或当前的操作条件的信息来预测给定排的等待时间。预测的等待时间是预测从自存储器控制器发送针对给定排的最后剩余存储器访问时到由存储器控制器接收到针对给定排的后续存储器访问时的时间点经过的时间量。在各种实施方案中,预测的等待时间是请求队列132中的用于存储未完成存储器请求的待决队列不存储针对给定排的任何存储器请求的时间量。刷新操作型选择器138至少基于预测的等待时间在给定排的刷新间隔期间选择一个或多个刷新操作。
在各种实施方案中,选择器138接收识别计算资源110中的一者的计算资源识别符(ID)和分配到计算资源110中的所识别的一者的多个线程。在一些实施方案中,操作系统(OS)调度器发送此信息,而在其他实施方案中,计算资源110将此信息发送到选择器138。在一些实施方案中,计算资源110或功率管理器(未示出)将对应于计算资源110的功率性能状态(p状态)发送到选择器138。在其他实施方案中,计算资源110中的一者或多者发送由计算资源访问的高速缓存存储器子系统的高速缓存命中率和/或未命中率。例如,使用单个未命中率中的每一者的乘积。在又一些实施方案中,相应的权重与分层高速缓存存储器子系统的每个层级相关联,并且权重用于加权总和中或作为单个值发送到选择器138。在一些实施方案中,当正在处理的线程的数量和未命中率的更新值的变化超过对应的阈值时,发送这些值。在各种实施方案中,选择器138基于所接收的信息来预测排176A至176B中的每一个的对应的等待时间。
在各种实施方案中,当存储器控制器130接收到开始排176A至176B中的给定排的刷新间隔的指示时,选择器138至少基于给定排的预测的等待时间来选择一个或多个刷新操作。在一个实施方案中,选择器138比较预测的等待时间和全存储体刷新操作的等待时间。在一些实施方案中,等待时间被测量为多个时钟周期。在各种实施方案中,选择器138将总存储体等待时间确定为用于利用每存储体刷新操作来刷新给定排中的尚未刷新的多个存储体的时间量。例如,如果每存储体刷新操作的等待时间为60ns,并且给定排中的8个存储体中的6个存储体已刷新,则总存储体等待时间为2个剩余存储体乘以60ns/存储体或120ns。总存储体等待时间也可被测量为多个时钟周期。
在一些实施方案中,选择器138响应于确定以下而选择给定排的全存储体刷新操作:预测的等待时间大于全存储体刷新操作的等待时间,总存储体等待时间大于全存储体刷新操作的等待时间,以及在请求队列132中不存在针对给定排的待决存储器请求。在一些实施方案中,选择器138响应于确定在请求队列132中存在针对给定排的一个或多个待决存储器请求而选择给定排的每存储体刷新操作。在其他实施方案中,选择器138响应于确定预测的等待时间小于全存储体刷新操作的等待时间而选择给定排的每存储体刷新操作。
在各种实施方案中,存储器总线150支持一次(诸如在读取模式或写入模式期间)在一个方向上发送数据业务。在一个实施方案中,存储器总线150至少使用命令总线和数据总线,并且支持用于将数据总线上的数据业务从DRAM 170接收到存储器控制器130的读取模式。另外,存储器总线150支持用于将数据总线上的数据业务从存储器控制器130发送到DRAM 170的写入模式。
参见图2,示出了存储器控制器200的一个实施方案的一般化框图。在所示的实施方案中,存储器控制器200包括经由通信结构的计算资源的接口210、用于存储所接收的存储器访问请求和所接收的响应的队列220、控制单元250以及经由存储器总线的至少一个数据总线的存储器装置的接口280。接口210和280中的每一者都支持相应的通信协议。
在一个实施方案中,队列220包括用于存储所接收的读取请求的读取队列232和用于存储所接收的写入请求的单独的写入队列234。在其他实施方案中,队列220包括用于存储存储器读取请求和存储器写入请求两者的统一队列。在一个实施方案中,队列220包括用于存储调度的存储器访问请求的队列236,所述调度的存储器访问请求选自读取队列232、写入队列234或统一队列(在使用统一队列的情况下)。队列236也称为待决队列236。在一些实施方案中,控制寄存器270存储当前模式的指示。例如,片外存储器数据总线和存储器装置在给定时间处支持读取模式或写入模式。因此,业务在当前模式期间在给定单个方向上进行路由并且在当前模式结束时改变方向。
在一些实施方案中,读取调度器252包括用于从读取队列232中无序地选择读取请求的仲裁逻辑。读取调度器252基于服务质量(QoS)或其他优先级信息、年限、进程或线程识别符(ID)以及与(诸如针对相同的存储器通道、针对相同的排、针对相同的存储体和/或针对相同的页面的)其他所存储的请求的关系来调度向存储器装置无序地发送读取队列232内的所存储的请求。写入调度器254包括用于写入队列234的类似的选择逻辑。在一个实施方案中,响应调度器256包括用于基于优先级向计算资源无序地发送从存储器装置接收的响应的类似逻辑。
排访问等待时间单元262(也称为单元262)至少基于对应于即将发生的或当前的操作条件的所接收的信息来预测给定排的等待时间。预测的等待时间是从自待服务的待决队列236发送针对给定排的最后存储器访问的第一时间点到在待决队列236中存储针对给定排的后续存储器访问的第二时间点。换句话讲,预测的等待时间是待决队列236未存储针对给定排的任何存储器请求的时间量。在各种实施方案中,单元262接收以下中的一者或多者:计算资源ID、分配到计算资源的多个线程、计算资源的p状态以及高速缓存存储器子系统的未命中率。基于所接收的信息和目标地址到存储器装置中的排的映射,单元262确定排的预测的等待时间。控制寄存器270中的多个可编程寄存器存储由单元262用于确定存储器装置中的多个排的预测的等待时间的一个或多个阈值。
在一些实施方案中,单元262还将总存储体等待时间确定为用于利用每存储体刷新操作来刷新给定排中的尚未刷新的多个存储体的时间量。在一个实施方案中,当存储器控制器200接收到开始存储器装置中的给定排的刷新间隔的指示时,刷新操作型选择器260至少基于预测的等待时间和由单元262确定的给定排的总存储体等待时间来选择一个或多个刷新操作。刷新操作型选择器260选择也称为选择器260。选择器260不是维持给定排中的已刷新的存储体的数量,而是比较由单元262确定的预测的等待时间和全存储体刷新操作的等待时间以选择刷新操作。因此,在一个实例中,当排包括8个存储体并且6个存储体被刷新时,选择器260仍能够选择全存储体刷新操作以在刷新间隔中完成刷新存储体,而不是被迫选择每存储体刷新操作。
每存储体刷新操作允许在选定的存储体已刷新时访问8个存储体中的7个存储体。然而,当刷新8个存储体中的6个存储体时,并且由单元260确定的预测的等待时间大于全存储体刷新操作的刷新等待时间时,选择器260仍可选择全存储体刷新操作。当预测的等待时间正确时,无存储器访问被阻止,因为待决队列236不具有针对给定排的存储器请求,同时全存储体刷新操作刷新了全部8个存储体。
现在参见图3,示出了用于基于排的访问之间的预测的等待时间来选择刷新操作的方法300的一个实施方案。出于讨论的目的,以顺序的次序示出此实施方案中(以及图4中)的步骤。然而,应注意,在所描述方法的各种实施方案中,所描述元件中的一个或多个同时执行、以不同于所示的次序执行或者被完全省略。还可根据需要执行其他另外的元件。本文所述的各种系统或设备中的任一者被配置为实现方法300。
在所示的方法300中,一个或多个计算资源处理一个或多个软件应用程序(框302)。计算资源的实例包括中央处理单元、图形处理单元以及其他项。将工作负载特征信息发送到存储器控制器(框304)。此信息的实例包括以下中的一者或多者:计算资源ID、分配到计算资源的多个线程、计算资源的性能状态以及高速缓存存储器子系统的命中率和/或未命中率。基于所接收的信息、目标地址到存储器装置中的排的映射和所维持的计数器值,预测排的对应于待决队列不存储针对排的任何存储器请求时的等待时间(框306)。如先前所描述的,给定排的预测的等待时间是用于存储未完成存储器请求的待决队列不存储针对给定排的任何存储器请求的时间量。
如果确定高速缓存存储器子系统的每个层级中的未命中(条件框308的“是”分支),则生成针对给定计算资源的存储器请求(框310)。将所生成的存储器请求发送到存储器控制器(框312)。如果未确定高速缓存存储器子系统的每个层级中的未命中(条件框308的“否”分支),则方法300的控制流程移动至条件框314。如果确定正出现给定排的刷新间隔(条件框314的“是”分支),则至少利用预测的等待时间来在刷新间隔期间在给定排的全存储体刷新操作与每存储体刷新操作之间进行选择(框316)。为了选择刷新操作,在一些实施方案中,当存在针对给定排的待决存储器请求时,存储器控制器选择给定排的每存储体刷新操作。在各种实施方案中,当不存在针对给定排的待决存储器请求时,除了将预测的等待时间与待刷新的多个剩余存储体的总存储体等待时间进行比较之外,存储器控制器还比较预测的等待时间和全存储体刷新操作的等待时间以选择刷新操作。
参见图4,示出了用于基于工作负载来选择用于基于排的访问之间的预测的等待时间来刷新排的刷新操作的方法400的另一个实施方案。开始具有多个存储体的给定排的刷新间隔(框402)。确定给定排的预测的等待时间(框404)。如先前所描述的,给定排的预测的等待时间是用于存储未完成存储器请求的待决队列不存储针对给定排的任何存储器请求的时间量。如先前针对(图3的)方法300的框302和304所描述的,使用工作负载特征信息、目标地址到存储器装置中的排的映射和所维持的计数器值来预测排的等待时间。如果已刷新给定排中的全部存储体(条件框406的“是”分支),则完成刷新间隔,并且存储器装置准备服务给定排中的全部存储体中的存储器请求(框408)。
如果尚未刷新给定排中的全部存储体(条件框406的“否”分支),则确定给定排的总存储体等待时间(框410)。总存储体等待时间是用于利用每存储体刷新操作来刷新给定排中的尚未刷新的多个存储体的时间量。例如,如果每存储体刷新操作的等待时间为60ns,并且给定排中的8个存储体中的6个存储体已刷新,则总存储体等待时间为2个存储体乘以60ns/存储体或120ns。总存储体等待时间也可被测量为多个时钟周期。
如果存在针对给定排的任何待决存储器请求(条件框412的“是”分支),则在当前刷新间隔期间从给定排中选择尚未刷新的存储体(框414)。利用每存储体刷新操作来刷新给定排的选定的存储体(框416)。然后,方法400的控制流程返回到框404。如果不存在针对给定排的待决存储器请求(条件框412的“否”分支),则利用预测的等待时间和总存储体等待时间来在刷新间隔期间在给定排的全存储体刷新操作与每存储体刷新操作之间进行选择(框418)。然后,方法400的控制流程返回到框404。此外,在各种实施方案中,预测的等待时间是用于存储未完成存储器请求的待决队列不存储针对给定排的任何存储器请求的时间量。
参见图5,示出了用于基于工作负载来选择用于基于排的访问之间的预测的等待时间来刷新排的刷新操作的方法500的另一个实施方案。已开始刷新间隔,但尚未完成刷新间隔。在此时间点处,确定在给定存储体的刷新期间不存在针对给定排的待决存储器请求(框502)。此确定类似于到达(图4的)方法400的框418。如先前所描述的,给定排的预测的等待时间是存储器控制器中的用于存储未完成存储器请求的待决队列不存储针对给定排的任何存储器请求的时间量。
如果预测的等待时间不大于全存储体刷新操作的等待时间(条件框504的“否”分支),则在当前刷新间隔期间从给定排中选择尚未刷新的存储体(框506)。利用每存储体刷新操作来刷新给定排的选定的存储体(框508)。例如,如果预测的等待时间为90ns,并且全存储体刷新操作的等待时间为130ns,则可预测针对给定排的存储器请求将在全存储体刷新操作完成之前存储在存储器控制器中的待决队列中。因此,选择每存储体刷新操作以用于刷新给定排中的存储体。
如先前所描述的,给定排的总存储体等待时间是用于利用每存储体刷新操作来刷新给定排中的尚未刷新的多个存储体的时间量。如果预测的等待时间大于全存储体刷新操作的等待时间(条件框504的“是”分支),但是给定排的总存储体等待时间不大于全存储体刷新操作的等待时间(条件框510的“否”分支),则方法500的控制流程移动至框506,其中针对每存储体刷新操作选择存储体。例如,如果预测的等待时间为200ns,并且全存储体刷新操作的等待时间为130ns,则可预测针对给定排的存储器请求将不会在全存储体刷新操作完成之前存储在存储器控制器中的待决队列中。然而,如果每存储体刷新操作的等待时间为60ns,并且给定排中的8个存储体中的6个存储体已刷新,则总存储体等待时间为2个存储体乘以60ns/存储体或120ns。全存储体刷新操作的等待时间(130ns)和总存储体等待时间(120ns)中的每一者小于预测的等待时间(200ns),因此,全存储体刷新操作与每存储体刷新操作之间的每个选择被预测为在针对给定排的存储器请求被预测为存储在存储器控制器中的待决队列中之前完成。但是,总存储体等待时间小于全存储体刷新操作的等待时间,因此执行为两个剩余存储体选择每存储体刷新操作。
如果预测的等待时间大于全存储体刷新操作的等待时间(条件框504的“是”分支),并且给定排的总存储体等待时间大于全存储体刷新操作的等待时间(条件框510的“是”分支),则利用全存储体刷新操作来刷新给定排中的全部存储体(框512)。例如,如果预测的等待时间为200ns,并且全存储体刷新操作的等待时间为130ns,则可预测针对给定排的存储器请求将不会在全存储体刷新操作完成之前存储在存储器控制器中的待决队列中。如果每存储体刷新操作的等待时间为60ns,并且给定排中的8个存储体中的5个存储体已刷新,则总存储体等待时间为3个存储体乘以60ns/存储体或180ns。全存储体刷新操作的等待时间(130ns)和总存储体等待时间(180ns)中的每一者小于预测的等待时间(200ns),因此,全存储体刷新操作与每存储体刷新操作之间的每个选择被预测为在针对给定排的存储器请求被预测为存储在存储器控制器中的待决队列中之前完成。然而,全存储体刷新操作的等待时间小于总存储体等待时间,因此执行选择全存储体刷新操作。
在各种实施方案中,使用软件应用程序的程序指令来实现先前所述的方法和/或机制。所述程序指令以诸如C的高级编程语言来描述硬件的行为。替代地,使用诸如Verilog的硬件设计语言(HDL)。程序指令存储在非暂时性计算机可读存储介质上。可使用多种类型的存储介质。在使用期间,计算系统可访问存储介质,以将程序指令和随附数据提供到计算系统以用于程序执行。计算系统至少包括一个或多个存储器和被配置为执行程序指令的一个或多个处理器。
应当强调的是,上述实施方案仅是实现方式的非限制性实例。一旦完全理解上述公开内容,许多变化和修改对于本领域的技术人员将变得显而易见。意图将所附权利要求解释为包含所有此类变化和修改。
Claims (20)
1.一种计算系统,其包括:
通信结构;
一个或多个计算资源,所述一个或多个计算资源被配置为:
执行一个或多个应用程序;并且
生成存储器访问请求;
存储器控制器,所述存储器控制器耦接到存储器装置,所述存储器装置包括多个排,每个排包括多个存储体;
其中所述存储器控制器被配置为:
通过所述通信结构接收所述存储器访问请求;
接收识别所述一个或多个应用程序的信息;
至少基于所接收的信息预测第一等待时间,其中所述第一等待时间是用于存储未完成存储器请求的待决队列不存储针对所述多个排中的给定排的任何存储器请求的时间量;并且
响应于接收到开始所述给定排的刷新间隔的指示:
基于所述第一等待时间来选择一个或多个刷新操作;并且
对所述给定排执行所选择的一个或多个刷新操作。
2.如权利要求1所述的计算系统,其中所述存储器控制器被配置为:至少基于比较所述第一等待时间和全存储体刷新操作的第二等待时间来确定是执行所述给定排的全存储体刷新操作还是对所述给定排中的所述多个存储体中的给定存储体执行每存储体刷新操作。
3.如权利要求2所述的计算系统,其中所述存储器控制器被配置为:响应于确定所述第一等待时间小于所述第二等待时间而对所述多个存储体中的给定存储体执行每存储体刷新操作。
4.如权利要求2所述的计算系统,其中所述存储器控制器被配置为:将第三等待时间确定为用于利用每存储体刷新操作来刷新所述给定排中的尚未刷新的多个存储体的时间量。
5.如权利要求4所述的计算系统,其中所述存储器控制器被配置为响应于确定以下而执行所述给定排的所述全存储体刷新操作:
不存在针对所述给定排的待决存储器请求;
所述第一等待时间大于所述第二等待时间;以及
所述第三等待时间大于所述第二等待时间。
6.如权利要求4所述的计算系统,其中所述存储器控制器被配置为响应于确定以下而对所述多个存储体中的给定存储体执行每存储体刷新操作:
不存在针对所述给定排的待决存储器请求;
所述第一等待时间大于所述第二等待时间;以及
所述第三等待时间小于所述第二等待时间。
7.如权利要求1所述的计算系统,其中预测所述第一等待时间包括识别所述一个或多个应用程序访问所述多个排中的哪些排。
8.如权利要求1所述的计算系统,其中预测所述第一等待时间包括识别执行所述一个或多个应用程序的所述一个或多个计算资源的功率性能状态。
9.如权利要求1所述的计算系统,其中预测所述第一等待时间包括识别所述一个或多个计算资源的高速缓存存储器子系统的未命中率。
10.一种用于刷新存储体的方法,其包括:
由一个或多个计算资源执行一个或多个应用程序;
由所述一个或多个计算资源生成对存储在存储器装置中的数据的存储器访问请求,所述存储器装置包括多个排,每个排包括多个存储体;
由存储器控制器接收所述存储器访问请求;
由所述存储器控制器接收识别所述一个或多个应用程序的信息;
由所述存储器控制器至少基于所接收的信息来预测所述多个排中的给定排的访问之间的第一等待时间;以及
响应于接收到开始所述给定排的刷新间隔的指示:
由所述存储器控制器基于所述第一等待时间来选择一个或多个刷新操作;以及
由所述存储器控制器对所述给定排执行所选择的一个或多个刷新操作。
11.如权利要求10所述的用于刷新存储体的方法,其还包括:至少基于比较所述第一等待时间和全存储体刷新操作的第二等待时间来确定是执行所述给定排的全存储体刷新操作还是对所述给定排中的所述多个存储体中的给定存储体执行每存储体刷新操作。
12.如权利要求11所述的用于刷新存储体的方法,其还包括:响应于确定所述第一等待时间小于所述第二等待时间而对所述多个存储体中的给定存储体执行每存储体刷新操作。
13.如权利要求11所述的用于刷新存储体的方法,其还包括:将第三等待时间确定为用于利用每存储体刷新操作来刷新所述给定排中的尚未刷新的多个存储体的时间量。
14.如权利要求13所述的用于刷新存储体的方法,其还包括:响应于确定以下而执行所述给定排的所述全存储体刷新操作:
不存在针对所述给定排的待决存储器请求;
所述第一等待时间大于所述第二等待时间;以及
所述第三等待时间大于所述第二等待时间。
15.如权利要求13所述的用于刷新存储体的方法,其还包括响应于确定以下而对所述多个存储体中的给定存储体执行每存储体刷新操作,
不存在针对所述给定排的待决存储器请求;
所述第一等待时间大于所述第二等待时间;以及
所述第三等待时间小于所述第二等待时间。
16.一种存储器控制器,其包括:
第一接口,所述第一接口用于接收由执行一个或多个应用程序的一个或多个计算资源生成的存储器访问请求;
第二接口,所述第二接口用于发送对存储器装置的所述存储器访问请求,所述存储器装置包括多个排,每个排包括多个存储体;以及
控制逻辑,其中所述控制逻辑被配置为:
接收识别所述一个或多个应用程序的信息;
至少基于所接收的信息来预测所述多个排中的给定排的访问之间的第一等待时间;并且
响应于接收到开始所述给定排的刷新间隔的指示:
基于所述第一等待时间来选择一个或多个刷新操作;并
且
对所述给定排执行所选择的一个或多个刷新操作。
17.如权利要求16所述的存储器控制器,其中所述控制逻辑被配置为:至少基于比较所述第一等待时间和全存储体刷新操作的第二等待时间来确定是执行所述给定排的全存储体刷新操作还是对所述给定排中的所述多个存储体中的给定存储体执行每存储体刷新操作。
18.如权利要求17所述的存储器控制器,其中所述控制逻辑被配置为:响应于确定所述第一等待时间小于所述第二等待时间而对所述多个存储体中的给定存储体执行每存储体刷新操作。
19.如权利要求17所述的存储器控制器,其中所述控制逻辑被配置为:将第三等待时间确定为用于利用每存储体刷新操作来刷新所述给定排中的尚未刷新的多个存储体的时间量。
20.如权利要求19所述的存储器控制器,其中所述控制逻辑被配置为响应于确定以下而执行所述给定排的所述全存储体刷新操作:
不存在针对所述给定排的待决存储器请求;
所述第一等待时间大于所述第二等待时间;以及
所述第三等待时间大于所述第二等待时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/851,324 | 2017-12-21 | ||
US15/851,324 US10503670B2 (en) | 2017-12-21 | 2017-12-21 | Dynamic per-bank and all-bank refresh |
PCT/US2018/051774 WO2019125560A1 (en) | 2017-12-21 | 2018-09-19 | Dynamic per-bank and all-bank refresh |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112088368A CN112088368A (zh) | 2020-12-15 |
CN112088368B true CN112088368B (zh) | 2024-05-14 |
Family
ID=63794697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880089664.6A Active CN112088368B (zh) | 2017-12-21 | 2018-09-19 | 动态的每存储体和全存储体刷新 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10503670B2 (zh) |
EP (1) | EP3729280B1 (zh) |
JP (1) | JP7257401B2 (zh) |
KR (1) | KR20200108854A (zh) |
CN (1) | CN112088368B (zh) |
WO (1) | WO2019125560A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018188083A1 (zh) * | 2017-04-14 | 2018-10-18 | 华为技术有限公司 | 内存刷新技术及计算机系统 |
US11194382B2 (en) * | 2018-10-16 | 2021-12-07 | Advanced Micro Devices, Inc. | Speculative exit from power down mode of a dynamic random access memory rank |
US11656992B2 (en) * | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
US11681465B2 (en) * | 2020-06-12 | 2023-06-20 | Advanced Micro Devices, Inc. | Dynamic multi-bank memory command coalescing |
US11765250B2 (en) | 2020-06-26 | 2023-09-19 | Western Digital Technologies, Inc. | Devices and methods for managing network traffic for a distributed cache |
US11675706B2 (en) | 2020-06-30 | 2023-06-13 | Western Digital Technologies, Inc. | Devices and methods for failure detection and recovery for a distributed cache |
US11720404B2 (en) * | 2020-07-16 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for arbitrating access to a shared resource |
US11736417B2 (en) | 2020-08-17 | 2023-08-22 | Western Digital Technologies, Inc. | Devices and methods for network message sequencing |
US12088470B2 (en) | 2020-12-18 | 2024-09-10 | Western Digital Technologies, Inc. | Management of non-volatile memory express nodes |
CN113311728B (zh) * | 2021-05-25 | 2022-08-30 | 南京国电南自维美德自动化有限公司 | 一种仿真模型与控制器通信的方法和系统 |
US11755246B2 (en) | 2021-06-24 | 2023-09-12 | Advanced Micro Devices, Inc. | Efficient rank switching in multi-rank memory controller |
JP2023133729A (ja) | 2022-03-14 | 2023-09-27 | 株式会社デンソー | メモリコントローラ |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732536A (zh) * | 2002-12-31 | 2006-02-08 | 英特尔公司 | 动态存储器的刷新端口 |
CN1822224A (zh) * | 2004-10-25 | 2006-08-23 | 三星电子株式会社 | 能利用缓冲器刷新数据的存储器装置及其刷新方法 |
CN101213533A (zh) * | 2005-05-04 | 2008-07-02 | Nxp股份有限公司 | 存储器控制器、控制存储器存取的方法以及包括存储器控制器的系统 |
CN101211653A (zh) * | 2006-12-26 | 2008-07-02 | 尔必达存储器株式会社 | 半导体存储器件、半导体器件、存储系统和刷新控制方法 |
CN101639817A (zh) * | 2009-03-13 | 2010-02-03 | 青岛海信信芯科技有限公司 | 一种存储器的控制方法、存储器控制器和存储器控制系统 |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN102214152A (zh) * | 2010-04-01 | 2011-10-12 | 英特尔公司 | 存储器装置从自刷新状态的快速退出 |
CN103370685A (zh) * | 2010-09-15 | 2013-10-23 | 净睿存储股份有限公司 | 存储环境中的i/o写入的调度 |
CN104137081A (zh) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | 偏移在先的高等待时间操作的存储器重排序队列 |
US9761297B1 (en) * | 2016-12-30 | 2017-09-12 | Intel Corporation | Hidden refresh control in dynamic random access memory |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0785357B2 (ja) * | 1991-06-10 | 1995-09-13 | 工業技術院長 | Dramのリフレッシュ制御装置 |
JPH09198863A (ja) * | 1996-01-24 | 1997-07-31 | Fuji Xerox Co Ltd | メモリ制御装置 |
JPH1011964A (ja) * | 1996-06-28 | 1998-01-16 | Toshiba Corp | メモリ制御装置およびメモリ制御方法 |
JPH1049436A (ja) * | 1996-08-07 | 1998-02-20 | Oki Electric Ind Co Ltd | 主記憶制御回路 |
US6356485B1 (en) | 1999-02-13 | 2002-03-12 | Integrated Device Technology, Inc. | Merging write cycles by comparing at least a portion of the respective write cycle addresses |
US6400631B1 (en) | 2000-09-15 | 2002-06-04 | Intel Corporation | Circuit, system and method for executing a refresh in an active memory bank |
JP3938842B2 (ja) * | 2000-12-04 | 2007-06-27 | 富士通株式会社 | 半導体記憶装置 |
JP4428319B2 (ja) | 2005-08-30 | 2010-03-10 | エルピーダメモリ株式会社 | 半導体記憶装置およびバンク・リフレッシュ方法 |
US7613941B2 (en) | 2005-12-29 | 2009-11-03 | Intel Corporation | Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state |
KR101966858B1 (ko) | 2012-04-24 | 2019-04-08 | 삼성전자주식회사 | 휘발성 메모리 장치의 동작 방법, 휘발성 메모리 장치 및 메모리 시스템의 제어 방법 |
US9355704B2 (en) * | 2012-12-28 | 2016-05-31 | Mediatek Inc. | Refresh method for switching between different refresh types based on at least one parameter of volatile memory and related memory controller |
JP2015011729A (ja) | 2013-06-27 | 2015-01-19 | マイクロン テクノロジー, インク. | 半導体装置 |
US9281046B2 (en) | 2013-10-08 | 2016-03-08 | Advanced Micro Devices, Inc. | Data processor with memory controller for high reliability operation and method |
US9911485B2 (en) | 2013-11-11 | 2018-03-06 | Qualcomm Incorporated | Method and apparatus for refreshing a memory cell |
US20150206574A1 (en) * | 2014-01-22 | 2015-07-23 | Advanced Micro Devices, Inc. | Relocating infrequently-accessed dynamic random access memory (dram) data to non-volatile storage |
US20150318035A1 (en) | 2014-05-02 | 2015-11-05 | Qualcomm Incorporated | Priority adjustment of dynamic random access memory (dram) transactions prior to issuing a per-bank refresh for reducing dram unavailability |
JP6233287B2 (ja) | 2014-12-11 | 2017-11-22 | 京セラドキュメントソリューションズ株式会社 | メモリーアクセス装置、画像処理装置 |
US9728245B2 (en) | 2015-02-28 | 2017-08-08 | Intel Corporation | Precharging and refreshing banks in memory device with bank group architecture |
US9524769B2 (en) * | 2015-04-17 | 2016-12-20 | Samsung Electronics Co., Ltd. | Smart in-module refresh for DRAM |
US9761296B2 (en) | 2015-04-17 | 2017-09-12 | Samsung Electronics Co., Ltd. | Smart in-module refresh for DRAM |
US9703493B2 (en) * | 2015-12-14 | 2017-07-11 | Qualcomm Incorporated | Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache |
US9824742B1 (en) * | 2016-04-28 | 2017-11-21 | Qualcomm Incorporated | DRAM access in self-refresh state |
US10318187B2 (en) * | 2016-08-11 | 2019-06-11 | SK Hynix Inc. | Memory controller and memory system including the same |
-
2017
- 2017-12-21 US US15/851,324 patent/US10503670B2/en active Active
-
2018
- 2018-09-19 KR KR1020207021269A patent/KR20200108854A/ko not_active Application Discontinuation
- 2018-09-19 JP JP2020534251A patent/JP7257401B2/ja active Active
- 2018-09-19 EP EP18783265.4A patent/EP3729280B1/en active Active
- 2018-09-19 WO PCT/US2018/051774 patent/WO2019125560A1/en unknown
- 2018-09-19 CN CN201880089664.6A patent/CN112088368B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732536A (zh) * | 2002-12-31 | 2006-02-08 | 英特尔公司 | 动态存储器的刷新端口 |
CN1822224A (zh) * | 2004-10-25 | 2006-08-23 | 三星电子株式会社 | 能利用缓冲器刷新数据的存储器装置及其刷新方法 |
CN101213533A (zh) * | 2005-05-04 | 2008-07-02 | Nxp股份有限公司 | 存储器控制器、控制存储器存取的方法以及包括存储器控制器的系统 |
CN101211653A (zh) * | 2006-12-26 | 2008-07-02 | 尔必达存储器株式会社 | 半导体存储器件、半导体器件、存储系统和刷新控制方法 |
CN101639817A (zh) * | 2009-03-13 | 2010-02-03 | 青岛海信信芯科技有限公司 | 一种存储器的控制方法、存储器控制器和存储器控制系统 |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
CN102214152A (zh) * | 2010-04-01 | 2011-10-12 | 英特尔公司 | 存储器装置从自刷新状态的快速退出 |
CN103370685A (zh) * | 2010-09-15 | 2013-10-23 | 净睿存储股份有限公司 | 存储环境中的i/o写入的调度 |
CN104137081A (zh) * | 2012-02-13 | 2014-11-05 | 国际商业机器公司 | 偏移在先的高等待时间操作的存储器重排序队列 |
US9761297B1 (en) * | 2016-12-30 | 2017-09-12 | Intel Corporation | Hidden refresh control in dynamic random access memory |
Also Published As
Publication number | Publication date |
---|---|
JP7257401B2 (ja) | 2023-04-13 |
EP3729280B1 (en) | 2022-03-02 |
US10503670B2 (en) | 2019-12-10 |
WO2019125560A1 (en) | 2019-06-27 |
US20190196987A1 (en) | 2019-06-27 |
EP3729280A1 (en) | 2020-10-28 |
JP2021507405A (ja) | 2021-02-22 |
KR20200108854A (ko) | 2020-09-21 |
CN112088368A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112088368B (zh) | 动态的每存储体和全存储体刷新 | |
EP3729281B1 (en) | Scheduling memory requests with non-uniform latencies | |
US20210073152A1 (en) | Dynamic page state aware scheduling of read/write burst transactions | |
KR102402630B1 (ko) | 캐시 제어 인지 메모리 컨트롤러 | |
US20190196996A1 (en) | Dynamically determining memory access burst length | |
US11429281B2 (en) | Speculative hint-triggered activation of pages in memory | |
US20200133905A1 (en) | Memory request management system | |
US11474942B2 (en) | Supporting responses for memory types with non-uniform latencies on same channel | |
US9489321B2 (en) | Scheduling memory accesses using an efficient row burst value | |
US11526278B2 (en) | Adaptive page close prediction |
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 |