CN100416529C - 用于确定动态随机存取存储器页面管理实现的方法和装置 - Google Patents
用于确定动态随机存取存储器页面管理实现的方法和装置 Download PDFInfo
- Publication number
- CN100416529C CN100416529C CNB2003801070425A CN200380107042A CN100416529C CN 100416529 C CN100416529 C CN 100416529C CN B2003801070425 A CNB2003801070425 A CN B2003801070425A CN 200380107042 A CN200380107042 A CN 200380107042A CN 100416529 C CN100416529 C CN 100416529C
- Authority
- CN
- China
- Prior art keywords
- page
- access
- time
- bus
- memory
- 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.)
- Expired - Fee Related
Links
Images
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/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
揭示了一种系统和方法,使处理器确定存储器控制器使用的存储器页面管理实现而不必直接存取存储器控制器的电路或寄存器。在一个实施例中,计数器矩阵对应于潜在的页面管理实现和每个块的页面数量。只要观察到长存取等待延迟时间,则根据相应的页面管理实现和页面数量预测页面边界,计数器可递增或递减。一段时间后,具有最大值的计数器可对应于实际页面管理实现和每个块的页面数量。
Description
技术领域
本揭示内容一般涉及微处理器系统,尤其涉及能在系统总线上与存储器控制器一起操作的微处理器系统。
背景技术
动态随机存取存储器(DRAM)具有存储器预充电、激活、读取和写入操作。特别是,寻址存储器存储体(bank)的存储器控制器必须首先预充电该存储器存储体,随后必须在存取(读取或写入)页面中的寻址列之前激活存储体内的寻址页。“DRAM页面打开”或“页面命中”表示被存取的存储器已被预充电和激活,且可用从页面读取或写入数据而不必在每次存储器存取期间预充电或激活存储器。当出现“页面不命中”(即,从存储器中打开的页面之外的其它页面存取数据),打开页面必须从检测放大器写回到DRAM芯片。接着,在被存取之前,新存储器页面必须首先被预充电并激活。将旧页面写到DRAM,且预充电和激活新的DRAM页面花费时间并减慢存储器存取,从而不能有效使用存储器总线(减少带宽)并引起采用DRAM的装置(例如,计算机)的性能损耗。
通过在系统总线上将存储器存取命令发送到存储器控制器,处理器可与系统存储器对接,包括DRAM。处理器的总线接口电路可包括总线调度器,它调度经由总线存取队列从处理器到系统存储器的存取(读取和写入)。如果总线调度器可按减少页面不命中并增加页面命中的顺序将存储器存取请求置入总线存取队列,则可减少存取等待延迟时间。如果处理器知道存储器页面管理实现和每个存储体的页面数量这两者,则可以形成这种总线调度器,它通常由存储器控制器控制。但是,对于从存储器控制器读取来说,这种信息通常是不可得的。
附图说明
附图中,作为实例而非限制地说明本发明,其中相同的标号表示相似的元件,且其中:
图1是根据一个实施例的微处理器系统的示意图。
图2是根据一个实施例的存储器管理实现的示意图。
图3是根据本发明一个实施例的图1总线接口的示意图。
图4是根据本发明一个实施例的与可能的存储器管理实现和每个块的存储器页面数对应的一组计数器的示意图。
图5是根据本发明一个实施例的方法的流程图。
发明内容
本发明揭示了一种总线接口,包括:总线存取队列,它将存储器存取请求排队;总线调度器,它将存储器存取请求调入所述总线存取队列;以及页面命中预测器,它将页面命中预测数据提供给所述总线调度器,包括ij计数器的矩阵,其中i对应于存储体中的存储器页面数量且j对应于可能的页面管理实现。
本发明还揭示了一种用于确定动态随机存取存储器页面管理实现的方法,包括:建立一组计数器,每一个都对应于可能页面管理实现和一存储体中的存储器页面数量的组合;确定存储器存取的观察到的等待延时是否超过平均等待延时;如果所述观察到的等待延时超过所述平均等待延时,则当可能页面管理实现和存储器页面数量的所述对应组合预测所述存储器存取是要在与先前存储器存取不同的页面上时,递增所述计数器之一;以及如果所述观察到的等待延时超过所述平均等待延时,则当可能页面管理实现和存储器页面数量的所述对应组合预测所述存储器存取不是要在与先前存储器存取不同的页面上时,递减所述计数器之一递减所述计数器之一。
本发明又揭示了一种用于确定动态随机存取存储器页面管理实现的系统,包括:处理器,它包括将存储器存取请求排队的总线存取队列;将存储器存取请求调度入所述总线存取队列的总线调度器;以及将页面命中预测数据提供给所述总线调度器的页面命中预测器,其包括ij计数器的矩阵,其中i对应于存储体中的存储器页面数量而j对应于可能的页面管理实现;系统总线,它耦合到所述处理器;存储器控制器,它耦合到所述系统总线以接收所述存储器存取请求;以及音频输入/输出装置,它耦合到所述系统总线。
具体实施方式
以下的描述说明了存储器控制器所使用的处理器确定存取页面管理实现的技术,其不必具有直接存取存储器控制器的电路或寄存器。在以下的描述中,阐述了诸如逻辑实现、软件模块分配、总线信令技术的许多具体细节以及操作细节,以提供本发明的完整理解。但是,本领域的熟练技术人员可理解,可以在没有这种特定细节的情况下实施本发明。在其它实例中,控制结构、门电平电路和完整的软件指令序列未详细示出,以使本发明更加清楚。通过所包含的描述,本领域的普通技术人员将能实现合适的功能,而不用过分实验。本发明按微处理器系统内由系统总线连接的处理器和存储器控制器的形式加以揭示,其中系统存储器连接到存储器控制器。但是,本发明也可按处理器和系统存储器的其它配置的方式实施。
现在参考图1,示出了根据一个实施例的微处理器系统100的示意图。图1系统可包括几个处理器,但为了清楚,仅示出两个处理器140、160。处理器140、160可包括一级高速缓存142、162。图1的多处理器系统100可具有经由总线接口144、164、112、108与系统总线106连接的几个功能。在一个实施例中,系统总线106可以是Corporation制造的级微处理器利用的前端总线(FSB)。经由总线接口与系统总线连接的功能的一般名称是“代理”。代理的实例是处理器140、160,总线桥路132和存储器控制器134。在某些实施例中,存储器控制器134和总线桥路132可共同被称作芯片组。在某些实施例中,在物理芯片中可以按与图1实施例所示的方式不同的方式划分芯片组的功能。
在一个实施例中,处理器140、160的总线接口144、164分别包括将存储器存取请求排队的总线存取队列、将存储器存取请求放入总线存取队列的总线调度器以及帮助总线调度器按顺序放置总线存取请求以减少页面不命中存取的次数的页面命中预测器。
存储器控制器134允许处理器140、160从系统存储器110和从基本输入/输出系统(BIOS)可擦可编程只读存储器(EPROM)136读取和写入。在某些实施例中,BIOS EPROM 136可使用闪存。存储器控制器134可包括总线接口108以允许存储器将承载的数据读取和写入到系统总线106上的总线代理。存储器控制器134还通过高性能图形接口139与高性能图形电路138连接。在特定实施例中,高性能图形接口139可以是高级图形端口AGP接口,或者以倍速(诸如4X AGP或8XAGP)工作的AGP接口。存储器控制器134可以通过高性能图形接口139将从系统存储器110读取的数据引导到高性能图形电路138。
总线桥路132可允许系统总线106和总线116之间的数据交换,在某些实施例中该总线可以是工业标准架构(ISA)总线或外围部件互连(PCI)总线。在总线116上可有各种输入/输出I/O装置114,在某些实施例中包括低性能图形控制器、视频控制器和连网控制器。在某些实施例中,另一个总线桥路118可用于允许总线116和总线120之间的数据交换。总线120在某些实施例中可以是小型计算机系统接口(SCSI)总线、集成驱动电子(IDE)总线或通用串行总线(USB)总线。附加的I/O装置也可与总线120连接。这些可以包括键盘和包含鼠标的光标控制装置122、音频I/O124、包含调制解调器和网络接口的通信装置126以及数据存储装置128。软件代码130可存储于数据存储装置128上。在某些实施例中,数据存储装置128可以是固定的磁盘、软盘驱动器、光盘驱动器、磁光盘驱动器、磁带或包含闪存的非易失性存储器。
现在参考图2,示出了根据一个实施例的存储器管理实现的示意图。通常,存储器按存储体组织,且进一步细分成页面。如何存取存储器的细节可以称作存储器页面管理实现。对于给定的存储器尺寸,可以有许多可能的存储器页面管理实现。例如,可以按各种特定格式购买DRAM,诸如快速页面DRAM、扩展数据输出(EDO)DRAM、同步DRAM(SDRAM)、双倍数据率SDRAM(DDR SDRAM)和DRAM(RDRAM)。将来,许多更多的格式都将是可用的。通过存储器控制器134和系统存储器110的组合指定特殊的存储器页面管理实现。存储器类型、存储器大小、是否使用交错存取以及许多其它因素可加入特殊的存储器页面管理实现。
图2示出了可能的存储器页面管理实现。存在存储器的两个或更多存储体,这里所示的两个作为存储体0 220和存储体1 230。示出的每个存储体有四个页面,但在其它实施例中,每个存储体会有其它数量的页面,包括不相等尺寸的页面。在存储体0 220中,存在标记的页面0 222、页面1 224、页面2 226和页面3 228。在其它实施例中,在不同的存储体0 220和1 230中存在不同数量的页面。图2的实施例假定每次仅打开每个存储体中的一个页面,但其它实施例可以每次打开超过一个页面。
考虑存储体0 220中的存储器存取240、242、244的序列。对于该实例,假定页面1 224已被打开。随后,页面1224在存取240期间保持打开,这是页面命中。相同页面1 224上的后续存取242也应发现页面1 224是打开的,从而存取242也应是页面命中。但是,存取244针对页面2 226,在存取244开始时该页面是关闭的。因此,存取244应为页面不命中。一般,与存取242相比,存取244要花费更大量的时间。
明显的是,通过进行遍及存储器的存储器存取和在存取等待延时时间超过标准时进行记录,处理器可以确定实际页面管理实现。可推断,在这些情况中,已经穿过存储器页面边界。但是,实际上,该方法不能给出正确结果。例如,对于给定的存储器存取的存取等待延迟时间超过某些标准,还存在许多其它原因。更新周期期间发出的存取具有的等待延时时间会超过标准。类似地,在图1所示的微处理器系统中,处理器140发出的许多存储器存取会被由处理器160发出的先前存储器存取延迟。处理器160发出的存储器存取不仅自己花费时间,而且它们还打开存储器中的不同页面。这些效果会影响处理器140发出的存取的存储器存取等待延迟时间。
现在参考图3,根据本揭示内容的一个实施例,示出了图1的总线接口的示意图。图3说明了总线接口,在一个实施例中它是前端总线(FSB)接口,它调度存储器存取。总线接口144可包括总线调度器320,它利用总线存取队列310调度从处理器140到DRAM的DRAM存取。总线接口144可经由高速缓存142内的附加总线耦合到处理器140,并经由系统总线106耦合到存储器控制器134的总线接口108。存储器控制器134可经由存储器总线耦合到系统存储器110。在一个实施例中,系统存储器110可以是DRAM。
处理器140可包括无序(out-of-order)核心和硬件预取器(HWP)。无序核心可使用管道技术,其中在执行中重叠多个指令,努力改善处理器的整体性能。HWP可以预取被预测为无序核心中的执行单元最终需要的DRAM存取。
总线接口144可包括总线调度器320和页面命中预测器330。在一个实施例中,总线调度器320可耦合到页面命中预测器310。可选实施例可具有页面命中预测器330和耦合到总线存取队列310的总线调度器320这两者。在一个实施例中,总线调度器320基于应用或由处理器所处理的应用的各部分调度从处理器140(即,从无序核心和从HWP)到系统存储器110的存取。例如,如果所处理的应用程序是容许等待延时的,则总线调度器320可调度存储器存取,用于利用可用的存储器总线带宽。
或者,如果所处理器的应用程序是不容许等待延时的,则总线调度器320可调度存储器存取以减少存储器存取的等待延迟时间。换句话说,总线调度器320可基于处理器140所处理的应用程序的特征安排总线存取队列310中的存储器存取。例如,当需要存储器存取来解决分支误预测时,应用程序可是不容许等待延时的。在该实例中,误预测分支时核心所执行的预测工作是无用的,直到存储器存取完成和处理器从程序执行的正确路径取出指令。为了确定应用程序是“等待延时容许”还是“等待延时不容许”,总线调度器320可监控HWP和无序核心产生的存储器存取。
为了调度被预测为从系统存储器的打开页面存取数据的系统存储器存取,总线调度器320可利用页面命中预测器330。在一个实施例中,页面命中预测器330可跟踪被存取的系统存储器内页面的历史记录,且页面命中预测器320可基于被存取页面的历史记录产生预测打开的系统存储器内的页面列表。例如,如果过去存取了页面12、14、16和18,且系统存储器110的页面管理实现允许同时打开4个页面,则页面命中预测器可预测对页面12的新存取将命中,且对页面13的新存取将不命中。在本发明的一个实施例中,在至少每个存储器总线周期中,页面命中预测器330可产生(或更新)系统存储器中的被预测为打开的页面列表。在其它实施例中,在每几个(例如,2个或更多)存储器总线周期中,页面命中预测器330可产生(或更新)系统存储器中被预测为打开的页面列表。
为了确定存储器中的打开页面,页面命中预测器330应知道系统存储器110的实际页面管理实现。这在许多实施例中都是困难的,因为处理器140不直接存取存储器控制器134的这些部分,这些部分指示了实际页面管理实现。如以上图2的讨论中所注意的,执行遍及存储器的存储器存取和注意增加的存储器存取等待延时而尝试简单地推算存储器页面边界的位置都不会提供正确的结果。
因此,本揭示内容的一个实施例中,页面命中预测器330可包括附加电路来帮助系统的实际页面管理实现的确定。在图3的实施例中,计时器332、平均等待延迟时间计数器334和计数器矩阵336可用于帮助该确定。在其它实施例中,可以使用其它电路。在又一个实施例中,可通过处理器上执行的软件程序来进行本揭示内容的方法。
计时器332可用于提供由处理器140发出的给定存储器存取的测量出的存储器存取等待延迟时间。在一个实施例中,该等待延迟时间可提供作为存储器存取请求在系统总线106上从总线存取队列310发出直到读取数据到达总线接口144或写入数据离开总线接口144的时间。可以用本领域已知的电路实现计时器332。
平均等待时间计数器334可用于跟踪从处理器140发出的存储器存取的运行平均等待延迟时间。通常,对于特定类型的DRAM可有标称存储器存取时间。例如,在一个DRAM实例中,对于页面命中期望125纳秒的存储器存取等待延迟时间,且对于页面不命中期望180纳秒。这些值通常是静态的且不随时间改变。某些DRAM可具有与对“页面空”条件的存取相对应的第三可能标称存储器存取时间。当存储体的读取电路没有被充电时,会出现页面空条件(即,无页面被打开),因此尽管与存取页面相对应的读取电路需充电,但不存在必须从检测放大器(senseamps)写回DRAM的打开页面。为此,对页面空存储体的存储器存取可在页面命中和页面不命中条件的标称存取等待延迟时间之间具有一标称存取等待延迟时间。
在某些实施例中,可以使用以上静态存储器存取时间之一或其组合作为平均等待延迟时间。但是,平均等待延迟时间计数器334可用于提供运行平均等待延迟时间。平均等待时间计数器334可被初始化为某些选择值。随后,对于观察到的每个存储器存取等待延时,将新值与平均等待延时计数器334的内容组合,产生平均等待延时的新值。在一个实施例中,平均等待延时计数器334可在每次完成存储器存取时增加1000。随后,平均等待延时计数器334可在每个时钟周期乘以0.999。如果每100个时钟周期正常完成存储器存取,则平均返回等待时间可以是[105/(平均等待延时计数器的内容)]。在其它实施例中,可使用平均等待延时计数器的其它实现,以提供其它运行平均等待延时值。
计数器矩阵336可包括大量计数器,其中每一个都可对应于特殊可能页面管理实现和每个存储体的特殊可能数量的页面。对于所出现的每个存储器存取,在与紧接的先前存储器存取相比时,计数器矩阵336可为特殊可能页面管理实现和每个存储体的页面数量的每一个组合计算一预测,其表示是否通过页面边界。当存储器存取等待延迟时间(如一个实施例中由计时器332所产生的)和平均等待延迟时间(如一个实施例中由平均等待延时计数器334所产生的)之差大于所选阈值时,计数器矩阵336的所有计数器可递增或递减。如果在与紧接的先前存储器存取比较时关于是否通过页面边界的预测为假,则可递减特殊计数器。另一方面,如果在与紧接的先前存储器存取比较时关于是否通过页面边界的预测为真,则可递增特殊计数器。在一个实施例中,计数器可递增的量为10且计数器可递减的量为1。也可选择其它量。按该方式,一段时间后,可推断具有最大值的计数器对应于实际页面管理实现和每个存储体的实际页面数量。
图3所示的电路预先假定在系统存储器内的各存储体中页面管理实现和每个存储体的页面数量是相等的。在其它实施例中,可添加附加的计数器矩阵,以对应于具有不同页面管理实现和每个存储体的页面数量的存储体。
现在参考图4,根据本揭示内容的一个实施例,示出了一组ij计数器的示意图,这组ij计数器对应于可能的存储器管理实现和每个块的存储器的页面数量。示出了这组ij计数器,如被组织成图3的规则计数器矩阵336。但是,在其它实施例中,这组ij计数器可组织为不同于矩阵。
在计数器矩阵336的顶部上是可能的页面管理实现(PMI)的数目,标记为0PMI、1 PMI一直到4 PMI。在给定实施例中,可有更多或更少的页面管理实现。在某些实施例中,在计数器矩阵中有额外的列,允许将来添加新形式的页面管理实现。第j个MPI的实例可以是“快速页面-非交错存取的”,“快速页面-交错存取的”,“EDO-非交错存取的”,“EDO-交错存取的”和许多其它形式的页面管理实现。
在计数器矩阵336的左侧示出了存储体中每个存储体的页面数量。图4的实施例示出了每个存储体的页面数量i为2的幂。但是,在其它实施例中,可以使用其它序列的值。在某些实施例中,在计数器矩阵中可以有额外的行,以允许将来添加每个存储体的新的页面数量。
图4所示的每个ij计数器都对应于第j种可能页面管理实现和第i种每个存储体的页面数量。例如,2,3计数器428对应于第三种页面管理实现和第二种每个存储体的页面数量(8个页面)。在执行以上结合图3描述的过程后,含最高值的ij计数器将对应于实际页面管理实现和每个存储体的实际页面数量。例如,如果2,1计数器424含最大值,则第一页面管理实现将是实际的页面管理实现,且第二种每个存储体的页面数量(8个页面)将是实际的页面数量。
可按不同方式实行ij计数器中的最高值。在一个实施例中,可选择固定阈值M,并在任何ij计数器等于或超过M时,暂停该过程。在其它实施例中,计数器可运行无限量的时间并在必要时读取。值得注意的是,在某些情况中,实际页面管理实现不列在给定计数器矩阵中。但是,在用于诸如页面命中预测器330的页面命中预测器中时,对应于具有最大值的ij计数器的潜在页面管理实现仍使用。
现在参考图5,根据本揭示内容的一个实施例,示出了方法流程图。为了清楚,所示的过程讨论读取存储器存取,但也可使用写入存储器存取。图5的过程在框514处开始,其中将初始值置入计数器矩阵的各种ij计数器。此时,平均等待延时的初始值可用于初始化平均等待延时计数器。随后,在框518中,该过程等待来自存储器的数据到达。当来自存储器的数据到达时,在框522中,该过程在计数器矩阵的行0、列0处开始。在框526中,为当前存储器存取,进行根据第i种页面数量和第j种页面管理实现的页面上的预测位置。随后,在判决框530中,可以确定观察到的等待延迟时间和平均等待延迟时间之差是否超出阈值T。
如果判决框530的结果是“是”(YES),则该过程行进到判决框534。在判决框534中,可判决框526中确定的页面上的预测位置是否在与对紧接的在先存储器存取所预测的页面不同的页面上。如果判决框354的结果是“是”,则在框538中该过程递增ij计数器。但是,如果判决框534的结果是“否”(NO),则在框542中该过程递减ij计数器。在任一情况中,该过程行进到判决框546,其中可确定该过程是否到了计数器矩阵的最后行。如果答案是“否”,则在框554中i的值递增且该过程在框526处重复。如果答案是“是”,则过程行进到判决框550,其中确定过程是否到了计数器矩阵的最后行。如果答案是“否”,则在框558中i的值被复位到0且j的值递增。接着,过程重复到框526。但是,如果答案是“是”,则在框562中更新平均等待延迟时间值,且该过程返回到框518处等待数据。
返回到判决框530,如果作出的确定是“否”,则在框562中还更新平均等待延时值,且过程返回到在框518处等待数据。
在前述说明书中,已参考具体的实例性实施例描述了本发明。但显然,可对其进行各种修改和变化,而不背离本发明的更宽的精神和范围,如所附权利要求书中所阐述的。因此,说明书和附图被认为是说明性的而非限制性的。
Claims (19)
1. 一种总线接口,其特征在于,包括:
总线存取队列,它将存储器存取请求排队;
总线调度器,它将存储器存取请求调入所述总线存取队列;以及
页面命中预测器,它将页面命中预测数据提供给所述总线调度器,包括ij计数器的矩阵,其中i对应于存储体中的存储器页面数量且j对应于可能的页面管理实现。
2. 如权利要求1所述的总线接口,其特征在于,包括计时器以便确定观察到的存取等待延迟时间。
3. 如权利要求2所述的总线接口,其特征在于,包括平均等待延时计数器,以便确定平均存取等待延迟时间。
4. 如权利要求3所述的总线接口,其特征在于,所述页面命中预测器是要确定所述观察到的存取等待延迟时间减去所述平均存取等待延迟时间的值是否大于阈值。
5. 如权利要求4所述的总线接口,其特征在于,当与先前的存储器存取相比,对应于j的所述可能页面管理实现和对应于i的所述存储器页面数量预测当前存储器存取是要在新存储器页面上时,所述页面命中预测器将逻辑信号设定为真。
6. 如权利要求5所述的总线接口,其特征在于,当所述逻辑信号为真时,所述ij计数器递增。
7. 如权利要求5所述的总线接口,其特征在于,当所述逻辑信号为假时,所述ij计数器递减。
8. 一种用于确定动态随机存取存储器页面管理实现的方法,包括:
建立一组计数器,每一个都对应于可能页面管理实现和一存储体中的存储器页面数量的组合;
确定存储器存取的观察到的等待延时是否超过平均等待延时;
如果所述观察到的等待延时超过所述平均等待延时,则当可能页面管理实现和存储器页面数量的所述对应组合预测所述存储器存取是要在与先前存储器存取不同的页面上时,递增所述计数器之一;以及
如果所述观察到的等待延时超过所述平均等待延时,则当可能页面管理实现和存储器页面数量的所述对应组合预测所述存储器存取不是要在与先前存储器存取不同的页面上时,递减所述计数器之一。
9. 如权利要求8所述的方法,其特征在于,所述确定包括确定存储器存取的所述观察到的等待延时减去所述平均等待延时的结果是否超过阈值。
10. 如权利要求8所述的方法,其特征在于,进一步包括如果所述观察到的等待延时减所述平均等待延时小于阈值时,更新所述平均等待时间。
11. 如权利要求8所述的方法,其特征在于,进一步包括确定所述计数器组的一组值的最大值。
12. 如权利要求11所述的方法,其特征在于,进一步包括将与所述值最大的计数器相对应的可能页面管理实现和存储器页面数量的所述组合之一提供给页面命中预测器。
13. 一种用于确定动态随机存取存储器页面管理实现的系统,包括:
处理器,它包括将存储器存取请求排队的总线存取队列;将存储器存取请求调度入所述总线存取队列的总线调度器;以及将页面命中预测数据提供给所述总线调度器的页面命中预测器,其包括ij计数器的矩阵,其中i对应于存储体中的存储器页面数量而j对应于可能的页面管理实现;
系统总线,它耦合到所述处理器;
存储器控制器,它耦合到所述系统总线以接收所述存储器存取请求;以及
音频输入/输出装置,它耦合到所述系统总线。
14. 如权利要求13所述的系统,其特征在于,所述处理器包括一计时器,以便确定观察到的存取等待延迟时间。
15. 如权利要求14所述的系统,其特征在于,所述处理器包括平均等待延迟时间计数器,以便确定平均存取等待延迟时间。
16. 如权利要求15所述的系统,其特征在于,所述页面命中预测器是要确定所述观察到的等待存储延迟时间减去所述平均存储等待延迟时间的结果是否超过阈值。
17. 如权利要求16所述的系统,其特征在于,当与先前的存储器存取相比,对应于j的所述可能页面管理实现和对应于i的所述存储器页面数量预测当前存储器存取是要在新存储器页面上时,所述页面命中预测器将逻辑信号设定为真。
18. 如权利要求17所述的系统,其特征在于,当所述逻辑信号为真时,所述ij计数器递增。
19. 如权利要求18所述的系统,其特征在于,当所述逻辑信号为假时,所述ij计数器递减。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/328,576 | 2002-12-24 | ||
US10/328,576 US7020762B2 (en) | 2002-12-24 | 2002-12-24 | Method and apparatus for determining a dynamic random access memory page management implementation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1729462A CN1729462A (zh) | 2006-02-01 |
CN100416529C true CN100416529C (zh) | 2008-09-03 |
Family
ID=32594518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003801070425A Expired - Fee Related CN100416529C (zh) | 2002-12-24 | 2003-12-04 | 用于确定动态随机存取存储器页面管理实现的方法和装置 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7020762B2 (zh) |
JP (1) | JP4203022B2 (zh) |
CN (1) | CN100416529C (zh) |
AU (1) | AU2003298950A1 (zh) |
DE (1) | DE10393803T5 (zh) |
TW (1) | TWI236591B (zh) |
WO (1) | WO2004061685A2 (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7020762B2 (en) * | 2002-12-24 | 2006-03-28 | Intel Corporation | Method and apparatus for determining a dynamic random access memory page management implementation |
JP4250989B2 (ja) * | 2003-03-26 | 2009-04-08 | 日本電気株式会社 | メモリアクセス制御装置 |
US7404047B2 (en) * | 2003-05-27 | 2008-07-22 | Intel Corporation | Method and apparatus to improve multi-CPU system performance for accesses to memory |
US8028143B2 (en) * | 2004-08-27 | 2011-09-27 | Qualcomm Incorporated | Method and apparatus for transmitting memory pre-fetch commands on a bus |
US8443162B2 (en) | 2005-01-21 | 2013-05-14 | Qualcomm Incorporated | Methods and apparatus for dynamically managing banked memory |
US7587547B2 (en) * | 2006-03-30 | 2009-09-08 | Intel Corporation | Dynamic update adaptive idle timer |
US20090132769A1 (en) * | 2007-11-19 | 2009-05-21 | Microsoft Corporation | Statistical counting for memory hierarchy optimization |
CN101453361B (zh) * | 2007-12-07 | 2012-03-14 | 中国科学院声学研究所 | 一种网站请求队列管理方法 |
WO2011007599A1 (ja) | 2009-07-17 | 2011-01-20 | 株式会社 東芝 | メモリ管理装置 |
US8260991B2 (en) * | 2009-09-15 | 2012-09-04 | Arm Limited | Data processing apparatus and method for measuring a value of a predetermined property of transactions |
US8935489B2 (en) * | 2010-01-19 | 2015-01-13 | Rambus Inc. | Adaptively time-multiplexing memory references from multiple processor cores |
US9720859B1 (en) | 2010-04-30 | 2017-08-01 | Mentor Graphics Corporation | System, method, and computer program product for conditionally eliminating a memory read request |
US9418011B2 (en) * | 2010-06-23 | 2016-08-16 | Intel Corporation | Region based technique for accurately predicting memory accesses |
US9183041B2 (en) * | 2012-09-21 | 2015-11-10 | International Business Machines Corporation | Input/output traffic backpressure prediction |
US9336164B2 (en) * | 2012-10-04 | 2016-05-10 | Applied Micro Circuits Corporation | Scheduling memory banks based on memory access patterns |
GB2517195A (en) * | 2013-08-15 | 2015-02-18 | Ibm | Computer system productivity monitoring |
US10387046B2 (en) * | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
TWI595412B (zh) * | 2016-09-09 | 2017-08-11 | 大心電子(英屬維京群島)股份有限公司 | 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元 |
US20180150125A1 (en) * | 2016-11-28 | 2018-05-31 | Qualcomm Incorporated | Wifi memory power minimization |
US11029879B2 (en) * | 2018-01-29 | 2021-06-08 | Samsung Electronics Co., Ltd | Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel |
US10846363B2 (en) | 2018-11-19 | 2020-11-24 | Microsoft Technology Licensing, Llc | Compression-encoding scheduled inputs for matrix computations |
US11493985B2 (en) * | 2019-03-15 | 2022-11-08 | Microsoft Technology Licensing, Llc | Selectively controlling memory power for scheduled computations |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651130A (en) * | 1993-03-22 | 1997-07-22 | Compaq Computer Corporation | Memory controller that dynamically predicts page misses |
US5860106A (en) * | 1995-07-13 | 1999-01-12 | Intel Corporation | Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem |
WO2001075620A1 (en) * | 2000-04-03 | 2001-10-11 | Advanced Micro Devices, Inc. | Bus bridge including a memory controller having an improved memory request arbitration mechanism |
CN1338681A (zh) * | 2000-08-15 | 2002-03-06 | 矽统科技股份有限公司 | 具有页面组织器的内存控制器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US586106A (en) * | 1897-07-13 | Flour-sifter | ||
US5787267A (en) * | 1995-06-07 | 1998-07-28 | Monolithic System Technology, Inc. | Caching method and circuit for a memory system with circuit module architecture |
US6088772A (en) * | 1997-06-13 | 2000-07-11 | Intel Corporation | Method and apparatus for improving system performance when reordering commands |
US6035377A (en) * | 1997-12-17 | 2000-03-07 | Ncr Corporation | Method and apparatus for determining memory pages having greatest frequency of access in a non-uniform memory access computer system |
US6199145B1 (en) * | 1998-02-27 | 2001-03-06 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
US6539440B1 (en) * | 1998-11-16 | 2003-03-25 | Infineon Ag | Methods and apparatus for prediction of the time between two consecutive memory accesses |
US6212598B1 (en) * | 1998-11-30 | 2001-04-03 | Micron Technology, Inc. | Controlling a paging policy based on a requestor characteristic |
US6684304B2 (en) * | 1999-01-29 | 2004-01-27 | Micron Technology, Inc. | Method to access memory based on a programmable page limit |
US6799257B2 (en) | 2002-02-21 | 2004-09-28 | Intel Corporation | Method and apparatus to control memory accesses |
US7020762B2 (en) * | 2002-12-24 | 2006-03-28 | Intel Corporation | Method and apparatus for determining a dynamic random access memory page management implementation |
-
2002
- 2002-12-24 US US10/328,576 patent/US7020762B2/en not_active Expired - Fee Related
-
2003
- 2003-12-04 DE DE10393803T patent/DE10393803T5/de not_active Withdrawn
- 2003-12-04 JP JP2004565222A patent/JP4203022B2/ja not_active Expired - Fee Related
- 2003-12-04 AU AU2003298950A patent/AU2003298950A1/en not_active Abandoned
- 2003-12-04 WO PCT/US2003/038727 patent/WO2004061685A2/en active Application Filing
- 2003-12-04 CN CNB2003801070425A patent/CN100416529C/zh not_active Expired - Fee Related
- 2003-12-09 TW TW092134720A patent/TWI236591B/zh not_active IP Right Cessation
-
2005
- 2005-12-30 US US11/323,598 patent/US7536530B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5651130A (en) * | 1993-03-22 | 1997-07-22 | Compaq Computer Corporation | Memory controller that dynamically predicts page misses |
US5860106A (en) * | 1995-07-13 | 1999-01-12 | Intel Corporation | Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem |
WO2001075620A1 (en) * | 2000-04-03 | 2001-10-11 | Advanced Micro Devices, Inc. | Bus bridge including a memory controller having an improved memory request arbitration mechanism |
CN1338681A (zh) * | 2000-08-15 | 2002-03-06 | 矽统科技股份有限公司 | 具有页面组织器的内存控制器 |
Also Published As
Publication number | Publication date |
---|---|
US7020762B2 (en) | 2006-03-28 |
JP4203022B2 (ja) | 2008-12-24 |
US20060112255A1 (en) | 2006-05-25 |
AU2003298950A8 (en) | 2004-07-29 |
CN1729462A (zh) | 2006-02-01 |
WO2004061685A3 (en) | 2004-11-04 |
TWI236591B (en) | 2005-07-21 |
DE10393803T5 (de) | 2005-10-20 |
AU2003298950A1 (en) | 2004-07-29 |
US20040123067A1 (en) | 2004-06-24 |
TW200416535A (en) | 2004-09-01 |
JP2006511886A (ja) | 2006-04-06 |
WO2004061685A2 (en) | 2004-07-22 |
US7536530B2 (en) | 2009-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100416529C (zh) | 用于确定动态随机存取存储器页面管理实现的方法和装置 | |
US10783104B2 (en) | Memory request management system | |
US6058461A (en) | Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation | |
KR102519019B1 (ko) | 액세스 효율에 기초한 메모리 요청의 순서화 | |
US6212611B1 (en) | Method and apparatus for providing a pipelined memory controller | |
CN103034476B (zh) | 用于在总线上发送存储器预取命令的方法和设备 | |
US6799257B2 (en) | Method and apparatus to control memory accesses | |
CN112088368B (zh) | 动态的每存储体和全存储体刷新 | |
CN102084345B (zh) | 侦测推测性预充电 | |
EP3361386B1 (en) | Intelligent far memory bandwidth scaling | |
US20210073152A1 (en) | Dynamic page state aware scheduling of read/write burst transactions | |
JP4866646B2 (ja) | メモリーに送るコマンドの選択方法、メモリーコントローラー、コンピュータシステム | |
US20090158067A1 (en) | Saving power in a computer system | |
US20200285580A1 (en) | Speculative memory activation | |
US9489321B2 (en) | Scheduling memory accesses using an efficient row burst value | |
CN101859259A (zh) | 具有片外带宽分配的多处理器高速缓存预取 | |
US6654837B1 (en) | Dynamic priority external transaction system | |
CN109801659B (zh) | Dram内存库激活管理 | |
US5784711A (en) | Data cache prefetching under control of instruction cache | |
CN101211321A (zh) | 分层存储器读取/写入微指令调度器 | |
Kim et al. | MViD: Sparse matrix-vector multiplication in mobile DRAM for accelerating recurrent neural networks | |
CN114667508A (zh) | 为加速器取回数据的方法和系统 | |
US20160284021A1 (en) | Systems, Apparatuses, and Methods for Resource Bandwidth Enforcement | |
US7409516B2 (en) | Pending request scoreboard for out-of-order memory scheduler | |
Yuan et al. | A hybrid analytical DRAM performance model |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080903 Termination date: 20171204 |
|
CF01 | Termination of patent right due to non-payment of annual fee |