CN1613064A - 用于动态调整存储器页面关闭策略的方法 - Google Patents
用于动态调整存储器页面关闭策略的方法 Download PDFInfo
- Publication number
- CN1613064A CN1613064A CNA028267788A CN02826778A CN1613064A CN 1613064 A CN1613064 A CN 1613064A CN A028267788 A CNA028267788 A CN A028267788A CN 02826778 A CN02826778 A CN 02826778A CN 1613064 A CN1613064 A CN 1613064A
- Authority
- CN
- China
- Prior art keywords
- page
- memory
- locked
- memory pages
- visit
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0215—Addressing or allocation; Relocation with look ahead addressing means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Storage Device Security (AREA)
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种动态调整用于利用了各种类型的DRAM存储器的计算机系统的存储器页面-关闭策略的方法及实施该方法的电路,所述DRAM存储器被划分为一个或多个存储体。通常,该方法包括监视对存储体的存储器访问,以及基于该存储器访问的局部性特征动态调整这些存储体的存储器页面关闭策略,以减少存储器延迟。在一个实施例中,响应于来自计算机系统处理器的存储器请求,基于页面方式进行对DRAM存储器的存储器访问。当每个存储器页面被访问时,产生页面未命中、页面命中和页面空白。取决于页面访问状态,调整页面关闭设定点,这些页面访问状态通常反应了访问存储器的应用程序的局部性特征。当对应于页面的定时计数超过页面关闭设定点时,关闭存储器页面。
Description
技术领域
本发明一般地涉及算机存储器(例如,DRAM)的使用和操作;更具体而言,涉及用于动态调整DRAM页面关闭策略的方法以及用于执行该方法的存储器控制器和电路。
背景技术
在各种计算机系统(例如,桌面个人计算机、笔记本计算机、个人数字助理等)中,能够使用存储器控制器电路来帮助计算机系统的处理器访问存储器芯片。这些存储器芯片通常包括计算机系统的主存,该主存一般包括多个动态随机存取存储器(DRAM)芯片,DRAM芯片可以包括例如同步DRAM(SDRAM)芯片,扩展数据输出(EDO)DRAM芯片、Rambus(R)DRAM芯片、双数据速率(DDR)SDRAM芯片等。存储器控制器提供用于连接到一个或多个这样的DRAM芯片的存储器接口,并且提供系统接口来连接到系统处理器。存储器控制器使用这些接口来用适当的地址和控制信号在处理器和DRAM芯片之间路由数据。
通常,在当前的计算机中所使用的DRAM芯片都按组进行组织,并且被安装到一个或多个“存储器模块”上。目前使用中最常见的存储器模块是DIMM(双列直插式内存模块),该模块包括在其基底上具有168管脚的双面连接器的小型电路板,在该电路板上安装了多个DRAM芯片和一个或多个控制器芯片。(或者,DRAM芯片可以具有内置的嵌入式控制器电路。)其它常见的存储器模块包括被使用在膝上计算机中的144管脚的小轮廓DIMMS(SODIMMS)、SIMM(单列直插式内存模块)以及各种其它类型的构造。
通常,当前的DIMM能够存储32、64、128、256和512兆字节(Mb)的存储内容,这对应于DIMM上的存储器芯片总的存储能力。在每个DRAM芯片上的存储器在逻辑上被配置为存储阵列,该阵列包括多个行和列的存储“单元”。每个存储单元具有特定的地址,并且存储一个比特的数据。存储阵列然后在逻辑上被划分为一个或多个存储“体”。在很多DRAM芯片中,有4个存储体。在目前比如页面模式、EDO和SDRAM芯片的DRAM芯片中,基于“页面”对存储器进行访问,其中对于存储体内给定行的存储单元包括存储器“页面”。存储器页面通常包括512、1024(1K)、2048(2K)、4098(4K)、8196(8K)、16392(16K)或32768(32K)比特的数据。
访问DRAM通常是由存储器控制器以下面的方式进行的一个多步骤过程。首先,识别对应于所请求的数据或指令的一个页面或多个页面。一旦已知该页面或多个页面,那么确定对应于该页面(或多个页面)的适当的存储体。然后,存储器控制器“打开”该适当的存储体(或多个存储体)和适当的页面(或多个页面)。通常,所请求数据的特定页面(或多个页面)最初将处于三种状态之一:页面命中、页面空白或页面未命中。如果状态是页面命中,那么所希望的页面已经被加载到对应于存储该页面的存储体的感应放大器(amps)体中。如果遇到的是页面空白状态,那么对应于所希望页面的数据将需要在它能够被访问之前,通过“激活”命令被加载到适当的感应放大器体中。如果存储体的状态是页面未命中,那么所指定的存储体包含不同于所请求数据的页面。将首先要求这一现存的页面被“关闭”,这包括使用“预充电”命令将其写回到存储阵列,然后将需要使用激活命令来加载适当的页面到感应放大器体中。
前面的三个状态对访问延迟具有影响。页面命中状态指页面已准备好被访问,而不需要额外的延迟。页面空白状态需要激活命令,而页面未命中状态需要预充电和激活命令,预充电和激活命令的每一个都需要一个或多个时钟周期。对于每种访问实际的后果(即,延迟)将取决于存储技术、存储器组织和体系结构,以及取决于其它对每种存储技术特别的规则。但是,通常的规律是页面命中最快,页面空白较慢,而页面未命中最慢。
一般现有的页面管理策略包括“页面-打开”、“页面-关闭”以及定时器机制。在页面-打开策略下,页面保持打开直到它们由于页面未命中而需要被关闭(或由于一些其它的比如需要刷新它们的存储器体系结构规则而需要被关闭)时为止。在页面-关闭策略下,在当前访问结束之后,尽可能快地使用“预充电”命令关闭页面。使用定时器机制时,“空闲”定时器被用来确定总的存储器,或特定的存储体是否已经空闲了N个时钟周期。如果已经经过了N个时钟周期而没有被访问,那么关闭页面。计数器可以是对于每个存储体的,在这种情形种当定时器已到时只有该存储体的页面将被关闭。其它的实施例可以每一行或对于所有的系统存储器都有定时器,在这种情形当定时器已到时,行中或所有的系统存储器中的页面可以被关闭。
附图说明
当结合附图时,随着参考下面详细的说明,本发明前面的方案或许多随附的优点变得更加好理解,它们也变得更加易于被正确地评价。在附图中:
图1是图示了对应于本发明的示例性实施例的体系结构的示意图,通过该实施例可以实现本发明的动态调整页面关闭策略机制;
图2是图示了根据本发明的动态调整页面关闭策略机制,在调整定时器跳变点(trip point)时由存储器控制器使用的逻辑的流程图,该定时器跳变点被用来确定存储器页面何时被关闭;
图3是图示了根据图2的实施例,由存储器控制器的跳变点基于当前的定时器值和定时器来关闭页面的逻辑的流程图;和
图4是适于实现本发明的示例性计算机系统的示意图。
具体实施方式
在这里描述用于动态调整DRAM页面关闭策略的方法以及用于执行该方法的存储器控制电路的实施例。在下面的描述中,阐述了许多具体的细节来提供对本发明实施例全面的理解。但是,相关领域的普通技术人员将意识到本发明能够在没有这些一个或多个具体的细节时或具有其它方法、部件和材料等时被实施。在其它例子中,为了不使本发明的方案模糊,没有详细地示出或说明公知的结构、材料或操作。
该说明书全篇所提及的“一个实施例”或“实施例”是指结合该实施例说明的具体的特征、结构或特点被包括在本发明的至少一个实施例中。因此,在本说明书全篇中多处出现的“在一个实施例中”或“在实施例中”的短语不一定都指代相同的实施例。此外,具体的特征、结构或特点可以以适当的方式被组合到一个或多个实施例中。
在传统的计算机系统中,页面-关闭策略由存储器控制器以通常静态的方式控制。例如,页面关闭策略模式可以在引导启动期间被设置,在该模式中,在页面未命中时,具体的或所有的感应放大器体被预充电以关闭页面,否则将不再处理这些体。在其它情形,页面关闭策略将基于“一般”的预定存储器访问模式被设置。时常地,在整个会话执行期间(即,从引导启动直到该计算机被关机或重启)维持单个的页面关闭管理模式。这种静态方法的问题是,在相同的系统上运行着的不同应用程序可能给出完全不同的存储器访问问题。一个应用程序可能呈现出半随机访问模式,要求“页面-关闭”策略以得到最佳性能,而其它的应用程序可能表现出好的局部性(即,重复访问存储器相同的部分),要求“页面-打开”或“定时器”机制以得到最佳性能。即使相同的应用程序在它执行的各个阶段都可能呈现出不同的访问模式行为。
本发明通过提供使得页面管理策略能够基于实际访问模式而被动态调整的机制来解决这个问题。于是,对于每个应用程序(或访问相同存储体的应用程序组)对页面-关闭策略进行调整,来提供用于该应用程序(或应用程序组)的适当策略。在下面一个更加详细说明的实施例中,根据利用所积累的应用程序使用存储器的记录来预测的未来的存储器访问行为设置页面-关闭策略。
如图1所示,对应于本发明的一个示例性实施例的框架10图示了在处理器12、存储器控制器中心(MCH)14和包含在DIMM 18上的DRAM芯片16之间的各种相互作用。如上所述,本发明提供了一种机制,通过该机制存储器控制器(在该情形是MCH 14)的页面-关闭策略可以被动态调整来满足实际的存储器访问模式,这些存储器访问模式是运行在处理器10上的一个或多个应用程序基于各个存储体的执行的过程中产生的。
为了更好地评价调整页面-关闭策略的好处以及更好地理解它的操作,现在根据框架10对一般的存储器访问序列进行说明。当在计算机系统的处理器(处理器10)上执行的应用程序(或更典型地,作为应用程序代理的操作系统模块)请求一个或多个字节的数据或指令时,开始该序列。一般地,存储器请求将引用对应于在系统存储器中存储了所希望的数据或指令的存储器地址范围。例如,加载子例程的请求将识别对应于该子程序指令所存储的存储单元的起始和结束地址。在所图示的实施例中,该请求被传递到“北桥”芯片组20,该芯片组20通过系统总线22被耦合到处理器12。该系统总线22提供了多个系统数据总线线路、系统地址总线线路和系统控制线路,它们使得数据和请求能够在处理器和其它被连接到系统总线的系统部件之间被传递,这些部件包括由北桥芯片组20所提供的各个部件。
北桥芯片组通常被使用在应用了PCI(外围部件接口)设备和外设的计算机系统中,所述计算机系统例如为应用了英特尔处理器的计算机。通常,北桥芯片组将提供可以在多个芯片或单个芯片上实现的多个功能。这些功能通常包括由比如MCH 14的存储器控制器提供的存储器接口功能。可选地是,MCH 14(或类似的存储器控制器)可以被直接通过系统总线(配置未示出)连接到处理器12。
当接收到存储器访问请求时,MCH 14确定该存储内容被存储的具体存储体,并且产生适当的地址信号24和控制信号26来进行该存储体的存储器访问。如上所述,每个DRAM芯片包括逻辑上被划分为一个或多个存储体的单元阵列。在图1中,这被描述为存储阵列28和存储体0、1、2和3。单个的存储单元通过它们所在的行和列的地址识别。通常,数据和指令以数据字节或字存储,其中每个字节包括8个相邻的单元,每个字包括存储在同一行中M个相邻存储单元的数据,M表示该字的长度。通常,为了访问特定的字,提供该字的第一个位的地址,可选的信息是指明字的长度。因此,为了访问特定一组字节或字(例如,相关的数据或指令),这些数据或指令的地址范围将被提供给MCH 14。但是,与仅仅访问在所提供的地址范围内的数据/指令不同的是,在大多数当前的DRAM中,对应于涵盖该地址范围的一个或多个页面(必要时)的数据通过打开这些页面被检索。为了进行说明,将假设在当前的例子中访问存储在存储体0中的单个的存储器页面30。
打开存储器页面包括使存储器控制器(通过DIMM 18)发送“激活”命令到DRAM芯片16,其中适当的控制信号26的组与地址信号24一道通过计算机系统的存储器总线被发送到DIMM 18。在所图示的实施例中,控制信号包括CS#(片选)信号,WE#(写使能)信号,CAS#(列访问选通)信号以及RAS#(行访问选通)信号,它们由DRAM芯片16中的控制与刷新电路块32接收。注意,在一些DIMM体系结构中,控制信号和其它各种信号是由DIMM上的一个或多个控制芯片(如DIMM 18上的控制芯片33所示)接收,这控制芯片被用来提供用于该DIMM的DRAM芯片的上级控制操作。于是,在这些配置中,控制信号被控制芯片译码,适当的控制信号被传递到和/或产生给对应于由地址信号所指定的页面地址的适当DRAM芯片。激活命令打开或激活由当前行地址信号所指定的行,这些行信号响应于DRAM接收控制信号和激活命令而被锁存到所图示的实施例中的行地址缓冲器32中。取决于具体的存储器控制器体系结构和存储器总线,行和列地址信号可以通过单个被复用的地址信号线路组或经由分开的地址信号线路分组被发送。响应于“读”或“写”命令(如由适当的CS#、WE#、CAS#和RAS#组的逻辑电平所指定的那样),列地址数据可以与行地址数据如何被锁存相类似的方式被锁存到列地址缓冲器36中。存储在行和列地址缓冲器中的列与行地址然后由DRAM芯片16的内部电路解码以识别包含被请求的存储器访问范围的相应的存储体和页面,如由行解码器38和被复用的列解码器40所说明的那样。
如上所述,在现在的DRAM中,数据通常是基于页面的方式,而非基于字节或字的方式被访问。乍看,人们可能认为可以直接访问所选择存储体内的数据行。但是,由于DRAM存储单元的工作方式,数据不能直接从存储单元被访问。DRAM芯片被称为“动态”RAM,因为它们的存储单元必须基于一定的频率(例如,>1000次/秒或甚至>10000次/秒)被动态地刷新。这是因为每个存储单元都包括一个仅能在非常短的时间内维持电荷的“漏”电容器。为了维持数据,对应于逻辑1的单元必须使用刷新周期被刷新(即,再充电),这是由控制与刷新电路块34连续而自动地执行。于是,如果直接“读取”单元,该单元将失去它的电荷,因此失去数据。
为了避免这些问题,DRAM使用多个感应放大器42,每个列线路有一个感应放大器。因此,感应放大器被划分为感应放大器体,其中每个感应放大器体的宽度分别对应于它相应的存储阵列体的页面长度。感应放大器具有两个功能。一个功能,如其名字所指出的那样,是它们“感应”被保持在对应于它们各自的列和目前被断言的行的存储单元中的电荷,然后放大被感应的信号。例如,如果在给定单元中的电荷被感应为在预定阈值之上,那么感应放大器产生对应于逻辑“1”的电压信号输出,而如果被感应的电荷低于阈值,那么感应放大器产生对应于逻辑“0”的电压信号输出。由感应放大器提供的第二种功能是缓冲功能,通过该功能被放大的信号可以被访问,而不会对存储在存储器中的数据的电荷有不利的影响。
在图示的实施例中,通过输入/输出(I/O)门控块44访问感应放大器,该I/O门控块44响应于由I/O控制块48和控制及刷新电路块34产生的控制信号,传递数据到数据I/O缓冲器46,并从其接收数据。注意,在图1中描述的结构仅仅是示例性的,本领域中各种其它公知的也可以被用来在感应放大器和数据I/O缓冲器之间传递数据(或直接传递到非缓冲的DIMM中的存储器总线)。MCH 14然后能够通过存储器数据总线50使用对应于“写”和“读”命令一组适当的控制信号26,来获取存储在数据I/O缓冲器46的数据。
通常,使用序列机制读出在页面中的各个字节或字。例如,一些DRAM提供突发模式,其中多个依次相邻的字节和/或字可以使用单个读命令被快速地读取。通常,该序列是如此执行:通过断言单个的行地址,同时与提供依次改变列访问数据结合来快速地触发CAS#信号。
一旦已经从给定页面访问了数据,对应的数据就被保持在对应于该页面的感应放大器体中。为了访问在相同存储体中另一个页面的数据,发出“预充电”命令。这恢复在对应于初始页面的存储单元行和存储体中的电荷(也称为写回),并且准备感应放大器体用于新页面的数据。通常“预充电”命令将通过CS#、WE#、CAS#和RAS#信号组的组合来发送。在对于多个存储器控制器命令组通用的一个实施例中,“预充电”命令信号组包括用于CS#、WE#、CAS#和RAS#的各个信号(L、L、H、L)。所使用信号的具体组合在体系结构上特定于由MCH(或相似的存储器控制器)提供的控制信号;这样的信号组合在本领域中是公知的,因此这各个组合在此不进一步讨论了。一旦发出“预充电”命令,该存储体对于随后的访问将不可用,直到经过了预定的(结构依赖的)时间。此外,一旦存储体已经被预充电,那么它处在空闲状态,并且在发出“读”或“写”命令之前必须被使用“激活”命令激活。
从前面的讨论清楚的是,在各个存储器访问模式下将出现不同的延迟。例如,如果页面-关闭策略为每个页面访问提供自动页面关闭,那么该策略将对于具有差的局部性(即,应用程序不会反复地访问相同的存储器页面)的应用程序具有优势,但却为具有好的局部性的应用程序提供了高的延迟。与此对比的是,仅仅在页面未命中出现时才关闭的策略将对于具有好的局部性的应用程序具有优势,但是却在应用程序具有具差的局部性时提供差的性能。
根据本发明的原理,提供了可动态调整的页面-关闭策略,其对于具有各种不同类型的存储器访问模式的应用程序产生改善的延迟。通常,依据未来的访问模式将类似于前面的访问模式的原理,使能该功能的机制是基于测量实际的访问模式,以及接着根据所测量的访问模式调整页面-关闭策略的。但是,应该理解,对实际访问模式的测量也是动态的,由此页面-关闭策略可以被动态调整,以适于在应用程序访问存储体或多个存储体或者应用程序组访问共享的存储体或多个存储体时改变存储器访问模式。
根据一个实施例,定时器机制可以基于每个存储体实现。在这个实施例中,每次存储体访问都由存储器控制器(例如,MCH 14)跟踪,并且存储器控制器使用每个存储体的定时器来确定何时关闭页面。如果定时器的跳变点被设置为0(或某个其它的特定指示位置),那么页面将在它最后的访问(即,“读”或“写”)已经完成后就立即关闭。这与上面所讨论的“页面关闭”策略相同。在另一个极端,如果定时器的跳变点被设置为最大,那么控制器将不会关闭该页面,除非它不得不(由于其它DRAM体系结构规则)关闭,或者控制器将在非常长的时间以后关闭该页面。这与上面所讨论的“页面-打开”策略相同。对于在这两个极端之间的策略,定时器的跳变点将确定页面将在何时被关闭。定时器的跳变点是一个能被动态调整来对应于最近的存储器访问行为的值。较小的行程值将使该机制更像页面-关闭策略行动,而较大的行程值将使该机制更像页面-打开策略行动。该机制还实现了召回(recall)操作,该操作存储对于每个存储体最后被打开的页面的标识。换句话说,控制器记住了在具体的存储体中哪个页面被打开了,即使该页面已经被关闭,除非控制器已经打开了新的替代页面。
参考图2,页面-关闭策略调整机制在实现本发明的计算机系统的操作期间,基于每个存储体进行下面的操作。过程开始于框100,其中每个存储体的跳变点被设置为一个初始值。该起始值可以是平均值或为特定应用程序而专门设定的。例如,如果已经提前知道一个应用程序通常提供较好的局部性,那么该跳变点的初始值可以被设定为一个较高的值,将该机制策略的行为初始化来对应于页面-打开策略。与此相对,如果已知该应用程序通常具有随机的存储器访问(即,差的局部性),那么该跳变点的起始值可以被设定为一个较低的值(甚至是0),由此该机制的行为被初始化来导向页面-关闭策略。在一个实施例中,所有存储体的跳变点的初始值可以使用计算机设置参数来设定,这些参数比如是那些在设置操作期间可以被访问的,该设置操作通常在系统引导启动序列期间是可用的。在另一个实施例中,应用程序或操作系统可以将信息传递到存储器控制器以设定或调整初始跳变点值。在所有实施例中,可以使用各种公知的存储方案来存储跳变点值,比如设置参数的CMOS和用于运行时环境的专用存储器或寄存器等。还应该注意,在许多例子中,初始跳变点值基本上是无关的,因为算法动态的特性很快就适应了存储器页面-关闭策略以基于实际的访问模式的局部性特点来优化值。
在一个实施例中,每个存储体的跳变点被存储在对应的寄存器中,如图1中的寄存器52所示。如由标号“1x-4x”所述的那样,对于每个给定存储器体系结构的存储体数目将通常包括4、8、12或16,这取决于每个DIMM的体系结构和系统中所安装的DIMM的数目。例如,如果使用4-存储体的体系结构,并且系统包括4个DIMM,那么存储体的数目将是16。通常,将为每个存储体提供单独的寄存器。可选的是,根据寄存器的长度和其它体系结构上的考虑因素,可以将寄存器分区以保持对应于两个或多个存储体的信息。
在设定了起始跳变点以后,在图2中框100以下示出的操作将基于正进行的情况被执行,如操作循环所示。同时,在图3中示出和在下面讨论的操作将在基本异步的基础上连续进行。在一个实施例中,体管理器54如图1所示是由MCH 14实现的逻辑的一部分,它提供了各种非传统的(即,本发明新颖之处)存储器控制器操作。一般地,如本领域普通技术人员所意识到的那样,将使用那些在存储器控制器电路的使用中通用的门电路级逻辑或嵌入式软件来实现体管理器。
操作循环从框102开始,在框102存储器控制器(例如,MCH 14)从处理器10接收访问存储器的请求,并且确定存储器访问的存储体和页面。然后在框104,存储器控制器试图访问存储器页面,并且在判断框106确定页面访问试图是否导致页面未命中、页面命中或页面空白状态。如果页面已经通过前面的访问被加载,那么将导致页面命中状态,使逻辑流向框108,在框108中由体管理器54对当前存储体的跳变点进行递增。通常,用与定时器速率(和/或定时器除数因子(division factor))成比例的预设量对跳变点进行递增;为简化起见,在这个例子中使用1对跳变点进行递增。
如果在感应放大器体中已经加载了另外的页面,那么将导致页面未命中状态,使逻辑流向框110,在框110中使用“预充电”命令关闭页面。然后在框112中,使用“激活”命令(和适当的地址信息一起)加载新的页面。(注意,在框110和112中的操作都是在存储器控制器感应到页面未命中状态时由该控制器自动进行的通常操作。)
在关闭了页面和激活新的页面之后,逻辑前进到判断框114,在框114中确定跳变点是否大于0。如果答案是“是”(“真”),那么跳变点将在框116由体管理器54递减。以与递增跳变点相似的方式,跳变点将由与定时器速度(和/或定时器除数因子)成比例的预设量对跳变点进行递减。为简化起见,在这个例子中使用1对跳变点进行递减。
在跳变点已经被递增或递减之后,或如果在判断框114中的结果是“否”(“假”),那么逻辑流向框118,在框118中进行页面访问。这将通常包括存储器“读”和存储器“写”,这些是由公知的通常存储器控制器操作来自动处理的。然后,在框120,“最后页面”标识符被更新(如需要)。最后页面标识符(例如,页面地址或相似的页面标识标记)被用来存储标识将从对应体访问的最后页面的信息。在一个实施例中,每个体的最后的页面被记录在MCH 14中多个分别的寄存器中,或使用在通常的存储器控制器中被用来存储页面访问信息的另外的存储机制。在一个实施例中,被使用来存储跳变点的相同的寄存器也被用来存储最后页面标识符。然后逻辑循环返回到框102以响应下一个存储访问请求。
如果先前已经发出“预充电”命令,并且没有激活页面,那么判断框106的结果将对应于页面空白状态。在这种情况下,在框122激活新的页面,逻辑前进导判断框124。该判断框通过检查为该体而存储的页面标识符(例如,在页面标识符被存储在寄存器中的实施例中进行寄存器查找)来进行检查以察看:要是在最后的“预充电”命令之前已经先驻留在体中的页面依然可用的话,访问导致页面未命中还是页面命中状态。如果访问产生页面未命中状态,那么逻辑流向判断框114(和框116,如适当),其中如果跳变点大于0那么递减该跳变点。如果页面访问产生页面命中状态,那么逻辑流行108以递增跳变点。
与以上面所讨论的一种通常的方式关闭页面不同的是,本发明还实现定时器和跳变点值来确定页面将何时被关闭(除了响应于页面未命中以常规的方式关闭页面外)。用于实现该机制的逻辑示出在图3中,其通过在框150中起动每个存储体的定时器而开始。可以使用各种类型的定时器用于该目的。例如,MCH 14可以包括一个或多个专用的计数器,该计数器可以由MCH 14或系统时钟所提供的定时信号驱动。可选的是,也可以使用其它各种类型的系统定时器。在框152中,对定时器进行递增。通常,当计数器被用于定时器时,该计数器将在它接收到新的时钟周期时(例如,当计数器感应到被用来驱动它的时钟信号中的上升沿或逻辑电平变化时)递增。
接下来,在判断框154中,确定定时器是否已经超出跳变点。如果没有,那么判断框154的判断结果是“否”(“假”),并且逻辑循环返回到框152以递增定时器,同时框152和154的逻辑被重复直到定时器已经超出跳变点。当定时器已经超出跳变点时,判断框154的答案是“是”(“真”),并且逻辑将前进到判断框156,在框156判断页面是否是空白(即,先前被关闭且随后没有加载新的页面)。如果答案是“是”(“真”),逻辑将前进到框158,在框158中定时器被复位,然后循环返回到框152。在框160,如果页面不是空白的,发出“预充电”命令以关闭该页面,然后在框158将定时器复位。可以理解的是,在关闭页面和复位定时器中使用的实际顺序是可选的,即在适当的条件下定时器可以在关闭页面之前被复位,或相反,对于实现可以是任何顺序。
用于实施本发明的计算机系统的例子
参考图4,图示了传统的计算机200,其适于被用作实施本发明的计算机系统。传统的计算机200是各种类型的适于实现本发明的计算机系统的例子,其包括运行视窗95、98、2000、ME、XP或NT操作系统的PC系列系统、运行基于UNIX的操作系统的UNIX工作站以及各种实现LINUX操作系统的计算机体系结构。计算机200也被打算来涵盖各种服务器结构以及具有多处理器的计算机。
计算机200包括处理器机架202,在该机架202中安装了软盘驱动器204、硬盘驱动器206、主板208、一个或多个处理器(CPU)212和电源(未示出),在主板208上组装了包括存储器210(例如,DRAMDIMM)的适当的集成电路,这些对于本领域的普通技术人员是非常熟知的。主板208还包括被配置来进行如上所讨论由MCH 14所提供的操作的存储器控制器(未示出)。在示例性实施例中,处理器212包括英特尔PENTIUM IIITM或PENTIUM IVTM处理器,以及存储器控制器包括支持这些处理器的各种MCH之一,比如英特尔82845 MCH或82815(E)MCH。可以理解的是,硬盘驱动器106可以包括单个部件或多个硬盘驱动器,并可以可选地放置在计算机200外部。使用监视器214来显示由计算机运行的软化程序和程序模块所产生的图形和文本。鼠标216(或其它指示设备)可以被连接到处理器机架202后部的串行端口(或总线端口、USB端口),来自鼠标216的信号被传送到主板来控制显示器上的光标,并且选择由在计算机上执行的软件应用程序和模块在监视器216上所显示的文本、菜单选项和图像元件。此外,键盘218被耦合到主板用于输入文本和命令,这些命令将影响在计算机上执行的软件程序的运行。计算机200也包括内置于网络适配器中的网络接口卡200,用于将计算机连接到计算机网络,这比如局域网、广域网或互联网。
计算机200也可以可选地包括压缩盘只读存储器(CD-ROM)驱动器222,在该驱动器中可以插入CD-ROM盘片使得能够读取盘上的可执行文件和数据,以传输到计算机200的存储器和/或硬盘驱动器206的存储设备。也可以包括比如光记录介质或DVD驱动器的其它大容量存储设备。使CPU来执行如上所述的本发明功能的软件可包括在机器可读指令中,这些机器可读指令将可能被分配在比如软盘驱动器或CD-ROM(或其它存储介质)的机器可读介质上和被存储在硬盘驱动器中,直到被加载到随机存取存储器(RAM)中由CPU执行。此外,机器可读介质可以包括比如电、光、声的传播信号或其它形式的能够通过计算机网络加载机器的指令的传播信号(例如,载波、红外信号、数字信号等)。
虽然已经结合实施本发明及其修改的优选形式对本发明进行了说明,但是本领域的普通技术人员将能够理解,对本发明能够进行许多其它落入权利要求范围之内的修改。因此,本发明的范围并不打算由上面的描述以任何方式进行限制,相反其完全应该参考后面的权利要求书进行确定。
Claims (22)
1.一种方法,包括:
监视对存储体的存储器访问;以及
基于所述存储体的存储访问的局部性特征,动态调整所述存储体的存储器页面关闭策略。
2.如权利要求1所述的方法,其中所述监视存储器访问步骤包括确定每个存储器页面访问导致页面未命中还是页面命中状态,以及
如果监视到有比页面未命中状态更多的页面命中状态,那么向着页面-打开策略动态调整存储器页面关闭策略,其中所述页面-打开策略使页面打开,直到由于页面未命中或存储器部件体系结构要求,所述页面被要求关闭;否则
如果有比页面命中状态更多的页面未命中状态,那么向着页面-关闭策略动态调整存储器页面关闭策略,其中所述页面-关闭策略在完成对存储器页面的访问时就立即关闭所述存储器页面。
3.如权利要求2所述的方法,还包括:
跟踪从所述存储体访问的最后的存储器页面;以及
确定存储器页面访问是否导致页面空白状态,如果所述页面访问确实导致页面空白状态,那么:
如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面命中状态的话,那么向着所述页面-打开策略动态调整存储器页面关闭策略;
如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面未命中状态的话,那么向着所述页面-关闭策略动态调整存储器页面关闭策略面-打开策略动态调整存储器页面关闭策略;
4.如权利要求1所述的方法,其中所述方法被应用在具有被划分为多个存储体的系统存储器的计算机系统中,并且所述方法的操作在所述多个存储体的每一个上被同时实现,以动态调节每个存储体的各自的页面关闭策略。
5.一种用于动态调整存储器页面关闭策略的方法,包括:
初始化存储器关闭跳变点;
开始定时器计数;
访问存储体中的存储器页面,并且响应于该访问,来:
打开所述存储器页面;
确定对所述存储器页面的所述访问产生了页面未命中还是页面命中状态;
如果所述存储器页面访问导致页面命中状态,那么增大所述存储器关闭跳变点;
如果所述存储器页面访问导致页面未命中状态,关闭所述存储器页面,以及重启所述定时器计数,那么减小所述存储器关闭跳变点;重复访问所述存储体中的存储器页面,响应于所述访问来进行前面的操作,同时确定所述定时器计数是否已经超过所述存储器跳变点;以及
在完成了任何当前对所述存储器页面的访问之后,在定时器计数超过所述存储器关闭跳变点时关闭任何打开的存储器页面。
6.如权利要求5所述的方法,还包括:
跟踪从所述存储体访问的最后的存储器页面;以及
确定存储器页面访问是否导致页面空白状态,如果所述页面访问确实导致页面空白状态,那么:
如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面命中状态的话,那么增大所述存储器关闭跳变点;否则如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面未命中状态的话,那么减小所述存储器关闭跳变点。
7.如权利要求6的所述方法,其中标识从所述存储体访问的所述最后的存储器页面的数据被存储在寄存器中。
8.如权利要求5的所述方法,其中所述方法被应用在具有被划分为多个存储体的系统存储器的计算机系统中,并且所述方法的操作在所述多个存储体中每一个上被同时实现,以动态调节每个存储体的各自的存储器页面关闭策略。
9.如权利要求6所述的方法,其中所述方法被应用在具有被划分为多个存储体的计算机系统中,并且所述方法的操作被同时实现在所述多个存储体中每一个上以动态调节每个存储体的各个存储器页面关闭策略。
10.如权利要求9的所述方法,其中标识从每个存储体访问的所述最后的存储器页面的标记被存储在相应的寄存器中。
11.一种电路,包括:
到存储器控制器的接口,所述存储器控制器控制在具有被划分为多个存储体的系统存储器的计算机系统中的存储器访问;
嵌入式逻辑,所述逻辑在所述计算机系统中运行时使所述电路进行操作,所述操作包括:
监视所述多个存储体中的每一个的存储器访问模式;
确定每一个所述存储器访问模式各自的局部性特征;
基于相应的存储体的所述局部性特征,动态调整所述多个存储体中每一个的存储器页面关闭策略;以及
向所述存储器控制器提供对应于所述多个存储体的每一个的所述存储器页面关闭策略。
12.如权利要求11所述的电路,其中所述确定存储器访问模式的所述局部性特征的操作包括:
确定对给定存储体的存储页面访问导致页面未命中还是页面命中状态;以及
如果在对所述存储体的存储器页面访问期间监视到有比页面未命中状态更多的页面命中状态,那么向着页面-打开策略动态调整所述给定存储体的存储器页面关闭策略,其中所述页面-打开策略使页面打开,直到所述页面由于页面未命中或存储器部件结构要求请求被关闭;否则
如果有比页面命中状态更多的页面未命中状态,那么向着页面-关闭策略动态调整所述给定存储体的存储器页面关闭策略,其中所述页面-关闭策略在完成对所述存储器页面的访问时就立即关闭存储器页面。
13.如权利要求12的所述电路,其中所述嵌入式逻辑还进行如下的操作:
跟踪从所述多个存储体中每一个访问的最后的存储器页面;
确定对给定存储体的存储器页面访问是否导致页面空白状态,并且如果所述页面访问确实导致页面空白状态,那么:
如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面命中状态的话,那么向着页面-打开策略动态调整存储器页面关闭策略;
如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面未命中状态的话,那么向着页面-关闭策略动态调整存储器页面关闭策略;
14.如权利要求11的电路,其中所述电路包括在存储器控制器中心中的一部分电路。
15.如权利要求11的电路,其中所述电路包括在北桥芯片组部件中的一部分电路。
16.一种存储器控制部件,包括:
系统接口,其可操作地将所述存储器控制部件耦合到计算机系统中的处理器,所述计算机系统具有被可操作地耦合到存储器总线并被划分为多个存储体的系统存储器;
存储器接口,其可操作地将所述存储器控制部件耦合到所述存储器总线;
嵌入式逻辑,其使所述存储器控制部件在运行于所述计算机系统中时进行操作,所述操作包括:
初始化用于至少一个存储体的存储器关闭跳变点;
开始定时器计数;
响应于来自所述处理器的存储器访问请求进行对存储体的存储器页面访问,并且响应于该访问,来:
打开所述存储器页面;
确定对所述存储器页面的访问产生了页面未命中还是页面命中状态;
如果所述存储器页面访问导致页面命中状态,那么增大所述存储器关闭跳变点;
如果所述存储器页面访问导致页面未命中状态,关闭所述存
储器页面以及重启所述定时器计数,那么减小所述存储器关闭跳变点;
重复访问所述存储体中的存储器页面,响应于所述访问,进行所述前面的操作,同时确定所述定时器计数是否已经超过所述存储器跳变点;以及
在完成了任何当前对所述存储器页面的访问之后,当定时器计数超过所述存储器关闭跳变点时,关闭在所述存储体中的任何打开的存储器页面。
17.如权利要求16的存储器控制部件,其中所述嵌入式逻辑在所述多个存储体中的每一个上同时进行所述操作,来动态调整每个存储体各自的存储器页面关闭策略。
18.如权利要求16的存储器控制部件,其中所述嵌入式逻辑还进行如下的操作:
跟踪从所述存储体访问的最后的存储器页面;以及
确定存储器页面访问是否导致页面空白状态,如果所述页面访问确实导致页面空白状态,那么:
如果假设所述最后的存储器页面仍然被加载到所述存储体就会产生页面命中状态的话,那么增大所述存储器关闭跳变点;否则
如果假设最后的存储器页面仍然被加载到所述存储体就会产生页面未命中状态的话,那么减小所述存储器关闭跳变点。
19.如权利要求18的存储器控制部件,还包括多个寄存器,每个寄存器存储标识从这个寄存器所对应的所述存储体访问的一个或多个最后的存储器页面的标记。
20.如权利要求16的存储器控制部件,还包括多个定时器,每个定时器为相应的存储体提供定时器计数。
21.如权利要求16的存储器控制部件,其中所述存储器控制部件包括存储器控制器中心。
22.如权利要求16的存储器控制部件,其中所述存储器控制部件包括一部分北桥芯片组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/039,087 US6799241B2 (en) | 2002-01-03 | 2002-01-03 | Method for dynamically adjusting a memory page closing policy |
US10/039,087 | 2002-01-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1613064A true CN1613064A (zh) | 2005-05-04 |
CN1284086C CN1284086C (zh) | 2006-11-08 |
Family
ID=21903596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028267788A Expired - Fee Related CN1284086C (zh) | 2002-01-03 | 2002-12-27 | 用于动态调整存储器页面关闭策略的方法和电路 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6799241B2 (zh) |
EP (1) | EP1461706B1 (zh) |
KR (1) | KR100626770B1 (zh) |
CN (1) | CN1284086C (zh) |
AT (1) | ATE431590T1 (zh) |
AU (1) | AU2002359868A1 (zh) |
DE (1) | DE60232367D1 (zh) |
TW (1) | TWI284261B (zh) |
WO (1) | WO2003058456A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136120A (zh) * | 2012-12-31 | 2013-06-05 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
WO2013152648A1 (zh) * | 2012-04-12 | 2013-10-17 | 腾讯科技(深圳)有限公司 | 提高应用程序运行速度的方法、装置及终端 |
CN105190566A (zh) * | 2013-03-28 | 2015-12-23 | 惠普发展公司,有限责任合伙企业 | 调节存储器激活率 |
CN105264497A (zh) * | 2014-04-22 | 2016-01-20 | 华为技术有限公司 | 一种文件管理方法及文件系统 |
CN105489242A (zh) * | 2014-10-07 | 2016-04-13 | 爱思开海力士有限公司 | 数据储存器件及其操作方法 |
CN106874106A (zh) * | 2016-12-23 | 2017-06-20 | 北京北大众志微系统科技有限责任公司 | 一种主存bank划分方法及装置 |
CN108595124A (zh) * | 2018-04-27 | 2018-09-28 | 江苏华存电子科技有限公司 | 一种提升多颗闪存平行写入校能的管理方法 |
CN111381773A (zh) * | 2018-12-27 | 2020-07-07 | 三星电子株式会社 | 用于页面激活的系统、计算系统和访问存储器的方法 |
CN111462793A (zh) * | 2019-01-18 | 2020-07-28 | 爱思开海力士有限公司 | 数据存储系统及其预充电策略设置方法 |
CN112487340A (zh) * | 2020-12-23 | 2021-03-12 | 深圳市哈哈丫丫互联网有限公司 | 一种极速简约防盗Linux全屏浏览器的创新技术 |
US11474706B2 (en) | 2013-04-30 | 2022-10-18 | Hewlett Packard Enterprise Development Lp | Memory access rate |
Families Citing this family (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6906978B2 (en) * | 2002-03-19 | 2005-06-14 | Intel Corporation | Flexible integrated memory |
US6976122B1 (en) * | 2002-06-21 | 2005-12-13 | Advanced Micro Devices, Inc. | Dynamic idle counter threshold value for use in memory paging policy |
US6910114B2 (en) * | 2002-11-15 | 2005-06-21 | Intel Corporation | Adaptive idle timer for a memory device |
JP4250989B2 (ja) * | 2003-03-26 | 2009-04-08 | 日本電気株式会社 | メモリアクセス制御装置 |
US20050060533A1 (en) * | 2003-09-17 | 2005-03-17 | Steven Woo | Method, device, software and apparatus for adjusting a system parameter value, such as a page closing time |
US7076617B2 (en) * | 2003-09-30 | 2006-07-11 | Intel Corporation | Adaptive page management |
US20050204113A1 (en) * | 2004-03-09 | 2005-09-15 | International Business Machines Corp. | Method, system and storage medium for dynamically selecting a page management policy for a memory controller |
US7296129B2 (en) | 2004-07-30 | 2007-11-13 | International Business Machines Corporation | System, method and storage medium for providing a serialized memory interface with a bus repeater |
US7512762B2 (en) | 2004-10-29 | 2009-03-31 | International Business Machines Corporation | System, method and storage medium for a memory subsystem with positional read data latency |
US7305574B2 (en) * | 2004-10-29 | 2007-12-04 | International Business Machines Corporation | System, method and storage medium for bus calibration in a memory subsystem |
US7331010B2 (en) | 2004-10-29 | 2008-02-12 | International Business Machines Corporation | System, method and storage medium for providing fault detection and correction in a memory subsystem |
US7299313B2 (en) | 2004-10-29 | 2007-11-20 | International Business Machines Corporation | System, method and storage medium for a memory subsystem command interface |
US7457926B2 (en) | 2005-05-18 | 2008-11-25 | International Business Machines Corporation | Cache line replacement monitoring and profiling |
US20080028136A1 (en) | 2006-07-31 | 2008-01-31 | Schakel Keith R | Method and apparatus for refresh management of memory modules |
US7472220B2 (en) | 2006-07-31 | 2008-12-30 | Metaram, Inc. | Interface circuit system and method for performing power management operations utilizing power management signals |
US7609567B2 (en) | 2005-06-24 | 2009-10-27 | Metaram, Inc. | System and method for simulating an aspect of a memory circuit |
US7392338B2 (en) | 2006-07-31 | 2008-06-24 | Metaram, Inc. | Interface circuit system and method for autonomously performing power management operations in conjunction with a plurality of memory circuits |
US8386722B1 (en) | 2008-06-23 | 2013-02-26 | Google Inc. | Stacked DIMM memory interface |
US8090897B2 (en) | 2006-07-31 | 2012-01-03 | Google Inc. | System and method for simulating an aspect of a memory circuit |
US8130560B1 (en) | 2006-11-13 | 2012-03-06 | Google Inc. | Multi-rank partial width memory modules |
US9507739B2 (en) | 2005-06-24 | 2016-11-29 | Google Inc. | Configurable memory circuit system and method |
US9542352B2 (en) | 2006-02-09 | 2017-01-10 | Google Inc. | System and method for reducing command scheduling constraints of memory circuits |
US8041881B2 (en) | 2006-07-31 | 2011-10-18 | Google Inc. | Memory device with emulated characteristics |
US8438328B2 (en) | 2008-02-21 | 2013-05-07 | Google Inc. | Emulation of abstracted DIMMs using abstracted DRAMs |
US8089795B2 (en) | 2006-02-09 | 2012-01-03 | Google Inc. | Memory module with memory stack and interface with enhanced capabilities |
US10013371B2 (en) | 2005-06-24 | 2018-07-03 | Google Llc | Configurable memory circuit system and method |
US8060774B2 (en) | 2005-06-24 | 2011-11-15 | Google Inc. | Memory systems and memory modules |
US20080082763A1 (en) | 2006-10-02 | 2008-04-03 | Metaram, Inc. | Apparatus and method for power management of memory circuits by a system or component thereof |
US8327104B2 (en) | 2006-07-31 | 2012-12-04 | Google Inc. | Adjusting the timing of signals associated with a memory system |
US7386656B2 (en) | 2006-07-31 | 2008-06-10 | Metaram, Inc. | Interface circuit system and method for performing power management operations in conjunction with only a portion of a memory circuit |
US8081474B1 (en) | 2007-12-18 | 2011-12-20 | Google Inc. | Embossed heat spreader |
US8111566B1 (en) | 2007-11-16 | 2012-02-07 | Google, Inc. | Optimal channel design for memory devices for providing a high-speed memory interface |
US8244971B2 (en) | 2006-07-31 | 2012-08-14 | Google Inc. | Memory circuit system and method |
US8335894B1 (en) | 2008-07-25 | 2012-12-18 | Google Inc. | Configurable memory system with interface circuit |
US8359187B2 (en) | 2005-06-24 | 2013-01-22 | Google Inc. | Simulating a different number of memory circuit devices |
US8077535B2 (en) | 2006-07-31 | 2011-12-13 | Google Inc. | Memory refresh apparatus and method |
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
US8796830B1 (en) | 2006-09-01 | 2014-08-05 | Google Inc. | Stackable low-profile lead frame package |
US8055833B2 (en) | 2006-10-05 | 2011-11-08 | Google Inc. | System and method for increasing capacity, performance, and flexibility of flash storage |
US7590796B2 (en) * | 2006-07-31 | 2009-09-15 | Metaram, Inc. | System and method for power management in memory systems |
US9171585B2 (en) | 2005-06-24 | 2015-10-27 | Google Inc. | Configurable memory circuit system and method |
KR100714396B1 (ko) * | 2005-07-18 | 2007-05-04 | 삼성전자주식회사 | 메모리의 처리속도를 향상시킨 컴퓨터 시스템 |
KR101303518B1 (ko) | 2005-09-02 | 2013-09-03 | 구글 인코포레이티드 | Dram 적층 방법 및 장치 |
US7478259B2 (en) | 2005-10-31 | 2009-01-13 | International Business Machines Corporation | System, method and storage medium for deriving clocks in a memory system |
US7685392B2 (en) * | 2005-11-28 | 2010-03-23 | International Business Machines Corporation | Providing indeterminate read data latency in a memory system |
US9632929B2 (en) | 2006-02-09 | 2017-04-25 | Google Inc. | Translating an address associated with a command communicated between a system and memory circuits |
US7587547B2 (en) * | 2006-03-30 | 2009-09-08 | Intel Corporation | Dynamic update adaptive idle timer |
US7409516B2 (en) * | 2006-03-30 | 2008-08-05 | Intel Corporation | Pending request scoreboard for out-of-order memory scheduler |
US7594055B2 (en) * | 2006-05-24 | 2009-09-22 | International Business Machines Corporation | Systems and methods for providing distributed technology independent memory controllers |
US7724589B2 (en) | 2006-07-31 | 2010-05-25 | Google Inc. | System and method for delaying a signal communicated from a system to at least one of a plurality of memory circuits |
US7669086B2 (en) | 2006-08-02 | 2010-02-23 | International Business Machines Corporation | Systems and methods for providing collision detection in a memory system |
US7870459B2 (en) | 2006-10-23 | 2011-01-11 | International Business Machines Corporation | High density high reliability memory module with power gating and a fault tolerant address and command bus |
US7721140B2 (en) | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
KR100885783B1 (ko) * | 2007-01-23 | 2009-02-26 | 주식회사 하이닉스반도체 | 플래시 메모리 장치 및 동작 방법 |
US7606988B2 (en) * | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
US20080282028A1 (en) * | 2007-05-09 | 2008-11-13 | International Business Machines Corporation | Dynamic optimization of dynamic random access memory (dram) controller page policy |
US20080282029A1 (en) * | 2007-05-09 | 2008-11-13 | Ganesh Balakrishnan | Structure for dynamic optimization of dynamic random access memory (dram) controller page policy |
KR100879463B1 (ko) * | 2007-05-11 | 2009-01-20 | 삼성전자주식회사 | 억세스 권한 이양 시 프리차아지 스킵을 방지하는 동작을갖는 멀티패쓰 억세스블 반도체 메모리 장치 |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8904098B2 (en) | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US8301833B1 (en) | 2007-06-01 | 2012-10-30 | Netlist, Inc. | Non-volatile memory module |
US8209479B2 (en) | 2007-07-18 | 2012-06-26 | Google Inc. | Memory circuit system and method |
US8080874B1 (en) | 2007-09-14 | 2011-12-20 | Google Inc. | Providing additional space between an integrated circuit and a circuit board for positioning a component therebetween |
KR101598828B1 (ko) * | 2008-12-22 | 2016-03-02 | 삼성전자주식회사 | 메모리 장치의 페이지 오픈 시간 조절 방법 및 이를 이용한메모리 시스템 |
US8347020B2 (en) * | 2009-03-20 | 2013-01-01 | Qualcomm Incorporated | Memory access controller, systems, and methods for optimizing memory access times |
DE202010017690U1 (de) | 2009-06-09 | 2012-05-29 | Google, Inc. | Programmierung von Dimm-Abschlusswiderstandswerten |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
US20120317376A1 (en) * | 2011-06-10 | 2012-12-13 | Advanced Micro Devices, Inc. | Row buffer register file |
US10198350B2 (en) | 2011-07-28 | 2019-02-05 | Netlist, Inc. | Memory module having volatile and non-volatile memory subsystems and method of operation |
US10838646B2 (en) | 2011-07-28 | 2020-11-17 | Netlist, Inc. | Method and apparatus for presearching stored data |
US10380022B2 (en) | 2011-07-28 | 2019-08-13 | Netlist, Inc. | Hybrid memory module and system and method of operating the same |
US9684600B2 (en) * | 2011-11-30 | 2017-06-20 | International Business Machines Corporation | Dynamic process/object scoped memory affinity adjuster |
US10372551B2 (en) | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
US9436600B2 (en) | 2013-06-11 | 2016-09-06 | Svic No. 28 New Technology Business Investment L.L.P. | Non-volatile memory storage for multi-channel memory system |
US9378127B2 (en) * | 2013-06-21 | 2016-06-28 | Intel Corporation | Dynamic memory page policy |
US10248328B2 (en) | 2013-11-07 | 2019-04-02 | Netlist, Inc. | Direct data move between DRAM and storage on a memory module |
WO2016089355A1 (en) | 2014-12-01 | 2016-06-09 | Hewlett Packard Enterprise Development Lp | Auto-negotiation over extended backplane |
WO2016122585A1 (en) * | 2015-01-30 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Modifying characteristics of a memory segment |
CN105068940B (zh) * | 2015-07-28 | 2018-07-31 | 北京工业大学 | 一种基于Bank划分的自适应页策略确定方法 |
US10616142B2 (en) | 2015-10-12 | 2020-04-07 | Hewlett Packard Enterprise Development Lp | Switch network architecture |
EP3258382B1 (en) * | 2016-06-14 | 2021-08-11 | Arm Ltd | A storage controller |
US10191689B2 (en) * | 2016-12-29 | 2019-01-29 | Intel Corporation | Systems and methods for page management using local page information |
JP6905195B2 (ja) * | 2017-11-16 | 2021-07-21 | 富士通株式会社 | データ転送装置、演算処理装置及びデータ転送方法 |
US10559348B2 (en) | 2018-05-16 | 2020-02-11 | Intel Corporation | System, apparatus and method for simultaneous read and precharge of a memory |
US10776047B2 (en) | 2018-08-30 | 2020-09-15 | Micron Technology, Inc. | Memory characteristic based access commands |
CN111372369B (zh) | 2018-12-25 | 2023-07-07 | 奥特斯科技(重庆)有限公司 | 具有部件屏蔽的部件承载件及其制造方法 |
US11114150B2 (en) | 2019-04-18 | 2021-09-07 | Rambus Inc. | Memory system with multiple open rows per bank |
US11216386B2 (en) * | 2019-09-26 | 2022-01-04 | Intel Corporation | Techniques for setting a 2-level auto-close timer to access a memory device |
US11449267B1 (en) | 2021-04-28 | 2022-09-20 | Micron Technology, Inc. | Determination of durations of memory device temperatures |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6269433B1 (en) | 1998-04-29 | 2001-07-31 | Compaq Computer Corporation | Memory controller using queue look-ahead to reduce memory latency |
US6389514B1 (en) | 1999-03-25 | 2002-05-14 | Hewlett-Packard Company | Method and computer system for speculatively closing pages in memory |
US6604186B1 (en) * | 1999-10-19 | 2003-08-05 | Intel Corporation | Method for dynamically adjusting memory system paging policy |
-
2002
- 2002-01-03 US US10/039,087 patent/US6799241B2/en not_active Expired - Fee Related
- 2002-12-27 KR KR1020047010521A patent/KR100626770B1/ko not_active IP Right Cessation
- 2002-12-27 AT AT02794434T patent/ATE431590T1/de not_active IP Right Cessation
- 2002-12-27 DE DE60232367T patent/DE60232367D1/de not_active Expired - Lifetime
- 2002-12-27 CN CNB028267788A patent/CN1284086C/zh not_active Expired - Fee Related
- 2002-12-27 EP EP02794434A patent/EP1461706B1/en not_active Expired - Lifetime
- 2002-12-27 AU AU2002359868A patent/AU2002359868A1/en not_active Abandoned
- 2002-12-27 WO PCT/US2002/041550 patent/WO2003058456A1/en not_active Application Discontinuation
-
2003
- 2003-01-02 TW TW092100020A patent/TWI284261B/zh not_active IP Right Cessation
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013152648A1 (zh) * | 2012-04-12 | 2013-10-17 | 腾讯科技(深圳)有限公司 | 提高应用程序运行速度的方法、装置及终端 |
US9256421B2 (en) | 2012-04-12 | 2016-02-09 | Tencent Technology (Shenzhen) Company Limited | Method, device and terminal for improving running speed of application |
CN103136120B (zh) * | 2012-12-31 | 2016-01-27 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
CN103136120A (zh) * | 2012-12-31 | 2013-06-05 | 北京北大众志微系统科技有限责任公司 | 行缓冲管理策略确定方法和装置、bank划分方法和装置 |
US9804972B2 (en) | 2013-03-28 | 2017-10-31 | Hewlett-Packard Enterprise Development LP | Regulating memory activation rates |
CN105190566A (zh) * | 2013-03-28 | 2015-12-23 | 惠普发展公司,有限责任合伙企业 | 调节存储器激活率 |
US11474706B2 (en) | 2013-04-30 | 2022-10-18 | Hewlett Packard Enterprise Development Lp | Memory access rate |
CN105264497A (zh) * | 2014-04-22 | 2016-01-20 | 华为技术有限公司 | 一种文件管理方法及文件系统 |
US10339100B2 (en) | 2014-04-22 | 2019-07-02 | Huawei Technologies Co., Ltd. | File management method and file system |
CN105489242A (zh) * | 2014-10-07 | 2016-04-13 | 爱思开海力士有限公司 | 数据储存器件及其操作方法 |
CN106874106A (zh) * | 2016-12-23 | 2017-06-20 | 北京北大众志微系统科技有限责任公司 | 一种主存bank划分方法及装置 |
CN108595124A (zh) * | 2018-04-27 | 2018-09-28 | 江苏华存电子科技有限公司 | 一种提升多颗闪存平行写入校能的管理方法 |
CN111381773A (zh) * | 2018-12-27 | 2020-07-07 | 三星电子株式会社 | 用于页面激活的系统、计算系统和访问存储器的方法 |
CN111462793A (zh) * | 2019-01-18 | 2020-07-28 | 爱思开海力士有限公司 | 数据存储系统及其预充电策略设置方法 |
CN111462793B (zh) * | 2019-01-18 | 2023-09-26 | 爱思开海力士有限公司 | 数据存储系统及其预充电策略设置方法 |
CN112487340A (zh) * | 2020-12-23 | 2021-03-12 | 深圳市哈哈丫丫互联网有限公司 | 一种极速简约防盗Linux全屏浏览器的创新技术 |
Also Published As
Publication number | Publication date |
---|---|
EP1461706B1 (en) | 2009-05-13 |
US20030126354A1 (en) | 2003-07-03 |
US6799241B2 (en) | 2004-09-28 |
ATE431590T1 (de) | 2009-05-15 |
EP1461706A1 (en) | 2004-09-29 |
CN1284086C (zh) | 2006-11-08 |
KR20040064742A (ko) | 2004-07-19 |
TW200305803A (en) | 2003-11-01 |
AU2002359868A1 (en) | 2003-07-24 |
TWI284261B (en) | 2007-07-21 |
WO2003058456A1 (en) | 2003-07-17 |
DE60232367D1 (de) | 2009-06-25 |
KR100626770B1 (ko) | 2006-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1284086C (zh) | 用于动态调整存储器页面关闭策略的方法和电路 | |
US6687172B2 (en) | Individual memory page activity timing method and system | |
Chang | Understanding and improving the latency of DRAM-based memory systems | |
US5889714A (en) | Adaptive precharge management for synchronous DRAM | |
TWI614752B (zh) | 經由記憶體通道關閉之節電技術 | |
US7496719B2 (en) | Universal nonvolatile memory boot mode | |
US6766385B2 (en) | Device and method for maximizing performance on a memory interface with a variable number of channels | |
US10559335B2 (en) | Method of training drive strength, ODT of memory device, computing system performing the same and system-on-chip performing the same | |
US10073790B2 (en) | Electronic system with memory management mechanism and method of operation thereof | |
US8935467B2 (en) | Memory system, and a method of controlling an operation thereof | |
MX2008014859A (es) | Dispositivo de memoria hibrida con interfase individual. | |
US8385146B2 (en) | Memory throughput increase via fine granularity of precharge management | |
US7796458B2 (en) | Selectively-powered memories | |
TW201635152A (zh) | 記憶體控制器的操作方法 | |
KR20050108352A (ko) | 버퍼된 기록들 및 메모리 페이지 제어 | |
US20220270662A1 (en) | Memory device and operating method thereof | |
US20170228175A1 (en) | Memory controller, memory system managing refresh operation and operating method of the memory controller | |
US7080217B2 (en) | Cycle type based throttling | |
CN111090387B (zh) | 存储模块、操作其的方法以及操作控制其的主机的方法 | |
US20090122627A1 (en) | Memory with programmable strides | |
Knyaginin | Towards Large-Capacity and Cost-Effective Main Memories | |
US12056371B2 (en) | Memory device having reduced power noise in refresh operation and operating method thereof | |
KR20230082529A (ko) | 리프레쉬 동작에서 파워 노이즈를 감소시킨 메모리 장치 및 그 동작방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20061108 Termination date: 20121227 |