CN102084345B - 侦测推测性预充电 - Google Patents
侦测推测性预充电 Download PDFInfo
- Publication number
- CN102084345B CN102084345B CN200880108416.8A CN200880108416A CN102084345B CN 102084345 B CN102084345 B CN 102084345B CN 200880108416 A CN200880108416 A CN 200880108416A CN 102084345 B CN102084345 B CN 102084345B
- Authority
- CN
- China
- Prior art keywords
- memory
- paging
- given
- access
- bar
- 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
- 238000001514 detection method Methods 0.000 title description 3
- 230000015654 memory Effects 0.000 claims abstract description 238
- 238000000034 method Methods 0.000 claims description 23
- 230000004913 activation Effects 0.000 claims description 9
- 230000004044 response Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 description 12
- 238000005457 optimization Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000013439 planning Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 229920006395 saturated elastomer Polymers 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种动态随机存取内存(DRAM)控制器(103),其可以被配置以重新排序(re-order)读取/写入要求,以将分页命中数最大化以及将分页冲突数和分页落空数最小化。三层次预测算法可以被进行以对于每一个读取/写入要求获得自动预充电预测,而不需要追踪每个各别分页。相反地,该动态随机存取内存控制器可以追踪动态随机存取内存(105)中每一个条的分页活动之历史,并且对于以第一阶为基础之历史作出预测,其中以第一阶为基础之历史并非以条为基础。该内存要求可以每次特定数量被存储在队列中,并且被用以判断分页在被存取后是否应该被关闭或保持开启。如果未来没有存储于该队列中之要求被送至包含该分页的该条,该条最近之条历史可以用以获得该分页是否应该被关闭或保持开启的预测。如果该分页并没有因该判断和/或该预测而被关闭,则该分页可以保持开启,而在该分页收到最后存取后并维持一段时间的闲置之后该分页可以被关闭。
Description
技术领域
本发明所揭示系关于内存系统领域,更详细地说,系关于内存控制器之设计。
背景技术
随着近期计算机系统复杂度的增加,技术上的加强导致于处理器速度之增加,系统效能的最佳化变得越来越困难,系统效能常取决于该系统的内存频宽(bandwidth)和总体延迟(latency)。因此,以最低之总体延迟来存取内存,并且使用最高的内存频宽可以增进且(或)最佳化该系统的效能。当存取该内存和完成给定内存要求(request)所需要之时间增加,该系统便会慢下来。因此,任何存取时间上的减少和(或)该内存之总体处理能力的增加都可以增进系统的效能。
很多的系统使用动态随机存取内存(Dynamic random accessmemory,DRAM),包含桌上型计算机、图形转换卡(graphic adapter card)和笔记型计算机和其它。DRAM装置提供许多优于其它内存技术的优点,包含最常被注意的静态随机存取内存(static random access memory,SRAM)装置。这些优点中最重要的系较高之存储密度和较少之功率消耗。然而,这些优点来自于当该DRAM装置内的内存单元和其它组件接受每一个接下来的存取所耗费之大量时间延迟,例如在读取/写入存取的前后。这种延迟包括进行列预充电(row precharge)、列更新(rowrefresh)和列激活(row activation)所需的时间。为了在遭遇这些延迟时可以更精确地管理并控制内存的操作,额外的指令(被传送于读取/写入存取之间)被创造也因此造成额外的面积消耗(overhead)。现今所使用之DRAM中有很高的比重都属于双倍数据传输率同步动态随机存取内存(double-data-rate synchronous DRAM,DDR SDRAM)家族。
DDR SDRAM(包含DDR2和DDR3)藉由在以该系统频率为基础之闪控信号(strobe signal)之上升边缘和下降边缘(rising and falling edges)转换数据,相较于单倍数据传输率SDRAM可以达到较高之频宽。这样的方法有效地使该转换率加倍,因此改善了系统效能而不需要增加该内存总线之操作频率。为了进一步增进DRAM的效能,该内存组件往往以分页配置(page configuration)被存取,其中该DRAM的列可以被激活或开启,该列地址控制器信号(row address strobe,RAS)不需要维持确立(asserted),同时利用个别的行地址控制器(column address strobe,CAS)信号进行多重读取或写入。这样的操作容许在相同列之内连续地读取或写入以避免该延迟(通常与预充电和列存取有关),并且于突然增加的数据转换(burst data transfers)中提供显著的系统效能改善。
一般而言,在进行内存分页读取或写入内存分页的操作前,该内存分页需要被开启。该DRAM控制器可以在读取/写入指令后立即地关闭该分页,或决定让该分页保持开启。然而,该DRAM控制器之该有限容量可能妨碍该DRAM能够处理许多之开启分页。因此,该DRAM控制器被要求关闭一些开启的分页,即使保持该等分页开启将可消除一些于未来之转换中的存取延迟。因此,该DRAM控制器之限制可能成为利用DRAM运作优点之障碍。
于比较过稍后将叙述之本发明和以上之先前技术后,对于习知技术者而言其它与先前技术相关之议题将变得显而易见。
发明内容
一种系统(如:计算机系统)可能包括连接至DRAM总线之DRAM装置,以及被配置以管理和控制该DRAM装置的存取的DRAM控制器。如果该分页尚未开启,则在内存分页可以被存取以进行读取或写入操作前,该内存分页可能需要被开启。该DRAM控制器可能于存取该分页的读取/写入要求之后接着立即关闭先前开启的分页,或者该DRAM控制器可能决定将该分页保持开启。如果该DRAM控制器之容量具有限制而无法处理过多开启的分页,于一些例子中该DRAM控制器可能被要求关闭一个或更多个开启的分页,即使将该些分页保持开启可以藉由消除所需要之额外激活(以开启新分页)和预充电(以关闭开启的分页)指令以达到相当程度上减少内存的存取时间的效果。该DRAM总线之总体处理能力(throughput)可以被改善,尽管该DRAM控制器之容量具有限制而无法同时处理过多开启的分页。于一组实施例中,该DRAM控制器可以被配置以根据有效率的分页策略来操作,进而决定那些开启的分页保持开启和那些开启的分页被关闭,以将激活和预充电指令减至最少,该等激活和预充电指令需要在接下来之读取/写入存取过程中被发出。
内存控制器(如:DRAM控制器)可以被配置以根据三层次自动预充电预测算法来操作以改善内存的存取。该DRAM控制器可以藉由追踪每一个DRAM条(bank)的分页活动之历史来最佳化分页的使用。给定条之最近存取的历史可以致能(enable)该DRAM控制器以决定是否在读取/写入操作之后开始自动预充电对应于该被存取的分页的该列,或是否保持开启该被存取的分页。如果该分页应该被保持在开启,则给定条之最近存取的历史也可以决定该分页在被关闭之前应该被保持开启(和闲置)多久的时间。因此,该DRAM控制器可以被配置以每条为基础追踪分页命中(对于DRAM之特定条中已开启的列所提出之要求)、分页落空(对于DRAM中特定条之列所提出之要求,其中该特定条不具有任何已开启的列)、以及分页冲突(对于DRAM中特定条之列所提出之要求,其中该特定条已具有已开启的其它不同列)之历史,但对并非以条为基础之以第一阶为基础之历史提出自动充电之预测。
于一组实施例中,该DRAM控制器可以包含分页表(Page Table),其中每一条项目(entry)可记录对给定内存条之最后四笔历史存取。该DRAM控制器也可包含内存条历史表(Memory Bank History Table)。于内存要求赢得裁决之后,该内存控制器可以指示(indication)来更新该内存条历史表,其中该指示系是否该要求在该给定内存条中所对应的DRAM分页与该先前的内存要求相同。这种方式实际上与指示是否该要求系分页命中不同,因为分页落空可能会一直要求在给定条中最近被存取过(即使现在已关闭)的内存分页。
一旦有要求透过裁决而被选定,则可进行预测。根据选定,该最后M个(如:三个)对该有疑虑之条的存取加上刚才选定之该存取可以用来对该内存条历史表标示(index)。该内存条历史表可以于完成预测后之该周期(cycle)被更新。该更新可以对于被该对应的M+1位(如:4位,其中M等于3)条历史信息(bank history information)所标示之位置中所存储之值来进行,其中该M+1位条历史信息存储于有疑虑之该条之该DRAM分页表。于一组实施例中,该预测之更新可以基于可靠计数器(confidence counter)而发生。内存条历史表中每一条项目均可以包含N位(如:2位)之可靠计数值。如果该预测系正确的,该DRAM控制器可以增加该可靠计数值(于最大值饱和)。如果该预测系不正确的,该DRAM控制器可以减少该可靠计数值。该DRAM控制器接着可以更新该预测值,只要该计数器达到一特定值(如:0)。于其它实施例中,该计数值可以由低开始增加,而该最大值可被用以当作该预测值可以被更新之指示。该历史、预测及可靠计数值之更新不可对于要求进行,该等要求之自动预充电决定(auto-precharge decision)决定于条命中(Bank Hit)或条冲突(Bank Conflict),如下所进一步描述。
是否队列中其它迫切之要求被转移瞄准向(target toward)特定DRAM条之状态可能取代该被该内存条历史表中之该预测值所指示之自动预充电预测。例如,存储于该内存条历史表中并对应于该当前内存要求之该预测值可以预测该当前之读取/写入要求应该被送至该具有被致能之自动预充电之DRAM。然而,该要求队列可以包含一个或更多个迫切之要求,该等迫切之要求与该当前内存要求正在瞄准相同之DRAM分页。这种情形指出自动预充电可能无法于此种案例中带来好处。
于一组实施例中,一旦迫切的内存要求被选定为该当前内存要求(如:由裁决产生),产生之条命中和条冲突信号(分别对应于该有疑虑的内存条内之潜在分页命中和分页落空)可以被用以限制该条历史预测。如果该DRAM控制器判断没有任何该迫近的内存要求将造成分页命中或分页冲突(也就是说,没有任何该迫近的内存要求系要求存取该有疑虑的内存条),该DRAM控制器可根据该条历史预测针对该当前内存要求来设定该自动预充电(如上所述)。如果没有任何迫切的内存要求将会造成分页命中,但该迫切的内存要求中至少一个将会造成分页冲突,则该自动预充电将会针对该当前内存要求而被致能。如果该迫切的内存要求中至少一个将会造成分页冲突,则该自动预充电将会针对该当前内存要求而被停用。
如果该读取/写入要求没有自动预充电,则该DRAM控制器可以使用闲置周期计数器(idle cycle counter)以判断已开启的分页于维持闲置一段特定长度时间后是否应该被关闭。于一个实施例中,该DRAM分页表中之每一条项目均可以追踪给定之已开启内存分页已开启多久的时间。当该闲置周期计数器到达可编程之极限(programmable limit),该DRAM控制器可以关闭该已开启的内存分页。于可编程之固定数量的频率周期(programmable fixed number of clock cycle)之后,该DRAM控制器可以关闭非作用(inactive)的分页,或者于固定数量的频率周期之后关闭非作用的分页,其中该固定数量的频率周期系以该DRAM分页表项目历史(DRAM page entry history)为基础被动态调整。
附图说明
本发明之其它态样可藉由阅读上述之详细说明及参考附加图示而变得明显,其中:
图1系范例系统之方块图,该范例系统包括被配置以经由内存总线来控制对内存的存取的内存控制器;
图2系图1中该内存控制器的一个实施例中部份逻辑之方块图;
图3系显示该条历史表根据一个实施例所作的存取与更新之结构图;
图4系图标三层次自动预充电预测算法中部份步骤的一个实施例之流程图;
虽然本发明可容易作各种之修饰和替代形式,但是在此系由图式中之范例显示及详细说明本发明之特定实施例。然而,应暸解到此处特定实施例之图式及详细说明并不欲用来限制本发明为所揭示之特定形式,反之,本发明将涵盖所有落于如所附申请专利范围内所界定之本发明之精神和范围内之修饰、等效和替代内容。
具体实施方式
如此处所使用的,「对给定内存条提出内存要求」或「对已开启/关闭的内存分页提出内存要求」意指该内存要求正在要求存取该给定内存条和(或)该已开启/已关闭的内存分页。换言之,例如该词句「对已开启的分页提出内存要求」等同于「内存要求正在要求存取已开启的分页」。类似地,「内存要求瞄准给定条」、或「内存要求瞄准已开启/已关闭的分页」意指该内存要求正在要求对该给定内存条和(或)该已开启/已关闭的内存分页作存取。
图1显示基本范例系统100之方块图,范例系统100可为计算机系统,其中处理单元113系配置有被连结至内存控制器103之处理器核心101。内存控制器103可被连接至内存总线111,透过内存总线111,内存控制器103可以调整对内存105的存取以促进处理单元113和内存105间之数据交换。于所属技术领域中具有通常知识者将了解系统100可以多种作法被实施,图标所显示为基本之配置,其中内存的存取由内存控制器所控制。
于一组实施例中,内存控制器103可包括:次电路(sub circuit)和/或组件,包含用以支持系统100所需要之功能范围(range of functionality)之缓存器。例如,内存控制器103可以包含许多种缓冲器(buffer)以缓冲于内存105和处理器核心101间被转换之数据,内存控制器103也可被分割成多个次控制方块(sub-control blocks)。类似地,内存105可以包含许多种内存组件或多种配置的内存装置,以透过内存总线111来适应与内存103间之接口。具有许多种可能以及可考虑之实施例。
于一组实施例中,内存105可以为DRAM,而内存控制器103因而为DRAM控制器。于又一组实施例中,内存105可以包括:双倍数据传输率DRAM(DDR DRAM),如:由DDR3控制器103所控制之DDR3内存。于一组实施例中,DRAM控制器103可以被配置以管理并控制对DRAM装置中内存分页的存取。于内存分页被存取以进行读取或写入操作之前,该内存分页必须被开启。DRAM控制器103可以跟随于该读取/写入存取之后关闭已开启的分页,或可以决定保持该分页为开启。于一组实施例中,DRAM控制器103可以被配置以根据有效率的分页策略来操作,因此改善DRAM总线111之总体处理能力即使DRAM控制器103无法立即地处理大量之开启的分页,其中该分页策略系被设计以减少于接下来之读取/写入存取间所发出之激活和预充电指令。
当与DRAM 105相连系,DRAM控制器103可以被操作以处理导致三种不同型态的内存存取的读取和写入要求。该第一种型态的内存存取对应于对DRAM 105中特定条之列提出之要求,其中该特定条具有另一个已开启且不同之列,此种存取被称为分页冲突。于分页冲突之案例中,该分页首先经由预充电指令而被关闭,然后经由激活指令被开启,以使DRAM 105准备好接受要求之读取/写入操作。该第二种内存存取对应于对DRAM 105中特定条之列提出之要求,其中该特定条不具有任何已开启的列,此种存取被称为分页落空。于分页落空之案例中,该分页首先经由激活指令而被开启,以使DRAM 105准备好接受要求之读取/写入操作。该第三种内存存取对应于对DRAM 105中特定条之列提出之要求,其中该特定条不具有已开启的列,此种存取被称为分页命中。于分页命中之案例中,该要求之读取/写入操作可被进行而无需准备DRAM 105以接受要求之读取/写入操作,因此,不需要先进行额外的指令。
因此,较佳将DRAM控制器103以将分页命中之数量最大化以及将分页冲突和分页落空之数量最小化之方式配置以重新排序读取/写入要求。结果,当与要求流(stream of requests)有关联之该地址流(stream ofaddresses)未导致分页命中,则DRAM控制器103可以被操作以有助于分页落空为下一个较好之选择而不是分页冲突。因此,为了达到最佳之效能,DRAM控制器103可以被配置以进行三层次自动预充电预测算法。
图2系图示出DRAM控制器103被配置以进行三层次自动预充电预测算法的一个可能实施例。于一组实施例中,DRAM控制器103可以利用DRAM分页表106来支持达特定数量的开启分页(于一些实施例中为32个开启分页)。DRAM分页表106可以芯片选择信号和条选择信号为基础而被下标示,因而涵盖了每一个条,并且可以被用于存储列地址和每一个条最近之条历史信息。DRAM分页表106也可被用于判断是否读取/写入要求导致分页命中、分页落空或分页冲突,且判断是否应该对于当前之读取/写入要求进行自动预充电。地址地图104(address map)可以从处理器核心101接收对应于当前读取/写入要求之地址,并且可以产生该标示(查询)信号以查询(lookup)对应于DRAM分页表106中该当前要求的分页。
输入之指令可被放置于DRAM控制器要求队列114(DCQ)中,该DCQ 114可以被配置以容纳特定数量的项目(于一些实施例中为12条项目)。DCQ 114可因此被配置以存储读取、写入、预先取得(prefetch)和DRAM地址信息、分页命中/落空/冲突信息以及要求优先信息,该要求优先信息对应于该写入、读取和预先取得指令。一经获得该以上信息,DCQ 114便可以被分配(allocated),而一旦该完整之指令序列(command sequence)已被完成则DCQ 114便可以被反分配(deallocate)。此外,DCQ 114可以于每一次DRAM分页表106改变时被更新。该排队中之指令之裁决系由裁决器112所进行,该裁决系根据特定之优先计划和(或)多种要求类型之优先性,并且以至少一个接收自DRAM分页表106的分页信息和接收自时序检测方块110(timing check block)之时序检测信息为基础。一般而言,对于输入指令之裁决可根据许多可能之优先计划中的一个或更多个来进行,而每一个优先计划系根据特定之系统效能和内存效能需求而被设计。例如,较旧之要求(olderrequest)可以藉由额外的机制来接收到超过较近之要求之优先权,以适当地避免最旧之项目(oldest entry)被置之不理超过特定次数。其它之可能性包含选择分页命中超过分页落空,其中分页落空则被选择超过分页冲突。熟悉习知之技术者将可以了解到分页利用之最佳化也可以于多种不同之裁决电路中进行,而其它许多优先计划(虽然这里没有明确揭露)系可能且可预期的。一旦来自于DCQ 114之指令经由裁决而被选定,则该选定之指令(和与该指令相关之地址信息)将经由多任务器116并透过垫片(pad)124a而被提供至DRAM 105。
DRAM控制器103也可以分别包含后端读取和写入队列120和118。写入队列118可以于指令部份已完成以及DCQ114已经被反分配之后被用来存储特定数量(于一些实施例中为6)之写入信号要求。写入队列118可以因此促进读取之数据以更精确之时间方式自该内存控制器数据缓冲器离开。读取队列120可以于指令部份已完成以及DCQ114已经被反分配之后被用来存储特定数量(于一些实施例中为6)之写入信号要求。读取队列120可以因此促进(在DDR内存的例子中)DDR触发信号DQS和数据接收器(receiver)之控制,并促进先进先出(FIFO)缓冲器112之接收以为了转换数据至该反相频率领域。
使用自动预充电预测的分页利用最佳化:
DRAM控制器103可以藉由追踪DRAM 105中每一个条的分页活动的历史来将分页利用最佳化。对于任何给定条之最近要求之历史可以帮助判断是否DRAM控制器103应该跟随在读取/写入操作之后开始自动预充电,或保持该内存分页为开启。如果决定该分页应该被保持开启,该历史也可以被用以决定该分页在被关闭之前应该被保持开启(可能维持闲置)多久之时间。于一组实施例中,DRAM 105中每一个分页的历史可以被追踪。然而,当以上方法不能被实现于硬件中之情况下,DRAM控制器103可以被配置以根据条为基础(如:使用DRAM分页表106)来追踪分页命中、分页落空和分页冲突之历史,同时对于非以条为基础之以第一阶条为基础之历史(利用条历史表108和DRAM分页表106)作出预测。
条历史:
如前所述,DRAM控制器103可以追踪DRAM 105中每一个条的分页活动的历史。条历史表108中每一条项目均可以包含预测,该预测系基于(存储于DRAM分页表106中之)给定内存条中最后四个分页存取的历史。于要求从裁决器112赢得裁决而变成该当前之要求后,该条历史可以根据是否该当前之要求与对该条之该先前之要求均系对于该条内相同之DRAM分页所提出而被更新。换言之,因为追踪系根据条为基础来进行,这种指示与是否该当前之要求为分页命中之指示有些许不同。例如,当前之要求可能导致分页落空,但该当前之要求可能正在对该当前被要求之条中最近一次被要求之该同一分页提出要求,导致该当前之要求在追踪对于该被要求之条的分页所作的存取时由该被要求之条之观点而言被认为系”命中”。换句话说,分页落空可以实际地指示该当前之要求本来可以系分页命中,该被要求的分页并未过早被关闭。要是该分页并未被关闭,该当前之要求可能已经导致分页命中或分页冲突,而非分页落空。也应该注意的是,当该当前所描述之实施例之预先取得和写入不会导致分页历史表108的更新时,其它实施例可以被配置成不同之形式。
图3显示条历史表108如何被存取以及如何被更新的一个实施例。如该实施例所示,进入条历史表108之项目可以包括:自动预充电预测位(AP),其可具有数值”1”以指示自动预充电系被预测,或数值”0”以指示未预测到自动预充电。然而,在其它实施例中,该AP的数值指示自动预充电预测可以被指定以不同于已显示之前例,只要清楚该指定之数值所期望指示者为何。如图3所示,条历史表108可以容纳个别对应于4位标示之16条项目(210),其中每一个标示系根据对应于该四个对于给定条最近的分页存取/要求之该条历史而被构成。换句话说,对于该当前被要求的分页中之预测项目的存取的该标示系根据该最后三次对于该当前被要求之条的存取(也就是,存储于DRAM分页表之条历史信息106)加上该当前之要求为基础。
对于给定的分页的预测可以在裁决器112已选择该当前之要求后被进行,并且可以包含利用如上所述之标示数值来存取条历史表108中对应的预测值。如图3所示,该三位206(其对应于该三个最近先前的存取对该当前被要求之条存取的该历史)加上该当前要求(208)可以被用以构成该标示以存取条历史表108中对于该当前被要求的分页的预测值。期望对该预测值之该存取于一个频率周期内被进行,为了防止由额外的频率周期所造成之延迟分页命中。
于一组实施例中,该标示系可藉由多任务该芯片选择信号/条选择信号和分页命中信号,以及自该分页表106多任务该条历史而被产生。应该要注意的一点系,于其它实施例中项目之数量可以不同,该数量系最少由正在被追踪之最近之要求/存取所决定,而于所属领域中具有通常知识者将了解可能之变动并不被图3中所示之该实施例所限制。例如,如果对于条之该五个最近的存取/要求系被追踪,则条历史表108可以被32条项目(可根据五位标示而被存取)所配置,该五位标示包括:四位之旧条历史加上该当前(新的)条历史。于所有实施例中,被追踪之最近存取的数量可以被指定以不同于4,而且许多实施例中被追踪之最近存取的数量可能系小于或大于4。
于跟随在该预测之后之该频率周期过程中,条历史表108可以接着被更新。如图3所示,跟随在该预测之后,条历史表108可以藉由更新对应于该标示之该项目数值来作更新,其中该标示系被获得自DRAM分页表106之该四位条历史所定义,也就是该四个位(202)对应于该最近先前对该当前被要求之条提出之该四个存取的该历史。如果该当前之要求导致分页命中,该AP可被更新为”0”(于某些实施例中,课题也针对于将在之后更详加描述之可靠计数器)。如果该当前之要求导致分页冲突,AP可以被更新为”1”(再次地,于某些实施例中,课题针对于该可靠计数器)。如果该当前之要求导致分页落空,AP可以被更新为”0”如果该当前被要求之列为该被要求条中最近被存取/被要求之列,否则AP可以被更新为”1”(再一次地,于某些实施例中,课题针对于该可靠计数器)。一旦条历史表108已经被更新,对应于分页表106中该当前被要求之条的该条历史项目也可以被更新以反映该新的条历史,该条历史目前包含该当前发生或完成的内存存取。
如上述所提及,于一组实施例中,条历史表108中该预测值AP之更新可以额外地根据可靠计数器来进行。条历史表108中每一条项目也可以包括对应的N位可靠计数器值。该计数器可以增加,如果其对应的条之该预测系正确且饱和于该位数所决定之数值。例如,如果条历史表108中每一条项目均具有对应的二位可靠计数器,则该计数器可以饱和于数值3。如果该预测系不正确,则该计数器可增加。当该计数器达到0,则该预测值(例如,条历史表108中AP所对应的该数值)可被翻转,指示出一串不正确之预测。于所属领域具有通常知识者将了解该计数器值可以包括如指定之任何位数,而且其中所使用之该正确数字系仅为范例。
自动预充电预测算法:
对于如上所描述之该条历史所作之追踪可以被用作自动预充电预测算法之部份,该自动预充电预测算法系执行于DRAM控制器103,可包含三种层次之预测。
层次1:未来于DCQ 114之要求可以被用以决定给定条中最近被存取的DRAM分页是否应该跟随于该存取之后立即被关闭,或者是否应该被保持开启。也就是说,DCQ 114中其它迫切之要求是否被瞄准向特定之DRAM分页的该状态可以被用以进行层次1之自动预充电预测。因此,DCQ 114中每一个迫切之要求均可以被评估以决定该要求系对于那一个给定条,以及是否该要求系对于该给定条中该当前开启的分页。于一组实施例中,此评估可针对该开启的分页进行(以及其对应的给定条),该分页系被该当前正在处理中的内存要求所存取。也就是说,每一个迫切之要求均可以被评估以决定是否为对正在被存取的该条和(或)分页的要求,并决定是否该当前正在处理中的内存要求系被送至具有被致能或被停用之自动预充电之DRAM内存。反应于DCQ114中该迫切要求之评估所作之动作可以为以下四种之一。
(A)如果没有任何DCQ 114中迫切之要求系对于该给定之条内的分页所提出(也就是说,没有任何迫切之要求系对于该给定条内的分页所提出,因而不会导致该给定条中该开启的分页产生分页命中或分页冲突),然后根据上述该条历史分段(section)中该条历史信息可进行层次2之预测(也进一步阅读之后之层次2项目),并且该当前正在处理中的内存要求之该自动预充电可以因此被设定。
(B)如果没有任何DCQ 114中迫切之要求系对于该给定之条内该开启的分页所提出(也就是说,没有任何对于该给定条内的分页所提出之迫切之要求会导致该给定条中该开启的分页产生分页命中,但迫切之要求中至少一个会导致分页冲突),接着自动预充电可以针对该当前正在处理的内存要求而被致能(为了跟随在该当前内存要求之后关闭该给定条中该开启的分页)而不论条历史表108中对应的预测系如何。
(C)如果DCQ 114中对于该给定条之所有迫切之要求系对于该给定条中该开启的分页(也就是说,对于该给定条之所有迫切之要求会导致该给定条中该开启的分页产生分页命中),接着该给定条中该开启的分页可以被保持开启,也就是自动预充电不会跟随于该当前内存存取之后被进行。
(D)如果DCQ 114中对于该给定条之迫切之要求中的至少一个系对于该给定条中该开启的分页,则至少一个该迫切之要求系对于该给定条中关闭的分页所提出(也就是说,对于该给定条之迫切要求中至少一个会导致该给定条中该开启的分页产生分页命中,且该等迫切之要求中至少一个或导致分页冲突),接着该给定条中该开启的分页可以被保持开启,也就是说,自动预充电不会跟随于该当前内存存取之后被进行。一旦所有该要求已被送出,该迫切之要求招致如上述(B)之该情况。
总而言之,情况(C)和(D)可被结合以决定是否DCQ 114中该迫切之要求中至少一个系对于该给定条中该开启的分页所提出,接着该当前内存要求(对于该给定条)之自动预充电应该被停用。
层次2:如果没有DCQ 114中之迫切要求系对该给定条内之DRAM分页所提出(如前述层次1(A)中所描述),最近之条历史信息可以被用以预测是否该DRAM分页应该跟随于该存取之后立即被关闭,或是否应该被保持开启。该预测可以被存取于条历史表108中如同先前所述之条历史中所描述者。
层次3:如果DRAM分页已经基于层次1或层次2之预测而被关闭,则该DRAM分页可以被保持开启,但是自该分页最后一次被存取后已保持闲置持续一段特定数量(可编程)之频率周期之后该分页可以被关闭。
应该再次留意的系该DRAM分页表106中该条历史、条历史表108中该预测值以及该对应的可靠计数器值系不可以被要求所更新,其中该要求之自动预充电决定于如前述之层次1(A)中所描述之层次1预测。
类似地,预先取得(prefetches)和写入之要求系不可以导致利用条历史表108来产生预测,或导致条历史表108之更新。自动预充电是否系与这些型态之要求一起被进行也可以由前述之层次1(A)中所描述之层次1预测所决定。然而,DRAM控制器103可以被配置以初始化在自动预充电后之该突发性写入(burst write)中之最后写入要求,以及初始化预先取得,以及初始化可能如任何其它要求般影响分页命中/分页冲突之写入要求。
如以上所讨论,自动预充电预测算法可以被用以预测是否自动预充电应该针对读取/写入要求而被进行。如果该预测未导致针对读取/写入要求之自动预充电,当该开启的分页是否应该被关闭时该问题依然维持。如果该分页维持开启但是闲置一段长时间,可能系该条历史预测已经不正确,这情况可能招致分页冲突。DRAM控制器103可以因此被配置以包含对应于每一个DRAM分页的个别之闲置周期计数器(idle cycle counter)以追踪给定的分页已经开启多久。于一组实施例中,当对应于该开启的分页的该闲置之周期计数器达到特定之限制,则DRAM控制器103可操作以关闭该开启(闲置)的分页。于一组实施例中,该特定之限制可以被编程。因此,DRAM控制器103可以于特定数量的频率周期之后(如:128个周期于实施例中)关闭非作用(闲置)的分页,或于动态调整之特定频率循环数(例如:16,32,64,96等周期)之后关闭非作用的分页,其中该动态调整系可基于对应于DRAM分页表历史106中该特定的内存分页的该条历史项目。
图4显示三层次自动预充电预测算法中一部份的一个实施例之流程图,该算法系被内存控制器所执行,例如图1和图2的内存控制器103。输入的内存要求(可能系该内存控制器所接收到的内存要求)可以如同迫切的内存要求般被存储于队列(402)。存储于该队列中该迫切的内存要求中的一个可以被选择以进行处理(processing)/供应(serving)、和自该队列中被移除,并且被该选定的内存要求所要求的给定内存分页(和对应的给定内存条)可以被识别(404)。基于当前预测值,是否关闭或保持该给定内存分页开启的预测将被产生,该当前预测值对应于对该给定内存条之最近存取的历史(406)。一旦该预测已被产生,未来预测值可以被更新,其中该未来预测值对应于对该给定内存条之最近先前内存存取的给定数量(412)。该内存队列中该迫切的内存要求可以被分析以决定是否至少一个存储于该存储中之该迫切内存要求中是正在对该给定内存条提出存取的要求(410)。
如果410中之该分析指示至少一个存储于该存储中之该迫切内存要求中是正在对该给定内存条提出存取的要求(也就是说,至少一个存储于该队列中之该迫切内存要求系正瞄准该给定内存条中的内存分页),存储于该队列中之该迫切内存要求可以被用来决定是否该给定内存分页应该被关闭或保持开启(414,418)。如果,相反地,该410中之分析指示没有任何一个存储于该存储中之该迫切内存要求中是正在对该给定内存条提出存取的要求,则该给定内存分页可以根据产生于406(416)中之预测而被关闭或保持开启。
如果418或416中其中之一指示该给定内存分页应该被关闭,一旦该选定的内存要求对于该给定内存分页的存取已完成(并且,于一些实施例中系在该内存被再次存取之前),则该给定内存分页可以被关闭(422)。如果决定该给定内存分页应该被维持开启,于该选定的内存要求对于该给定内存分页的存取已完成之后被保持开启(424),并且可能于一段特定长度时间之后被关闭,如果该给定内存分页于该特定长度时间内系维持闲置(426)。该特定时间长度可以依据频率周期而被测量出来,并且可被编程。例如,该给定内存分页可以于维持闲置长达128个频率周期之后被关闭。于特定实施例中,该频率周期之数量可以基于对该给定内存条之该最近存取历史而被动态调整。例如,基于对该给定内存条之该最近存取历史,该128个频率周期可比被调整为16,32,64个频率周期等等。于一些实施例中,一旦406中该预测已被产生,则该该算法可进一步包含更新该给定内存条之最近存取历史,并且更新对该给定内存条之最近存取历史之对应的预测值。
这里应该留意的系图4中之流程图并没有具体指出当该选定的内存存取对该给定内存分页作实际存取发生之情况。于一组实施例中,于关于对该给定内存分页的未来存取的该判断已经被产生之后,对该给定内存分页的该存取可能发生。于另一组实施例中,该存取可发生于当该判断是正在被产生,或甚至该判断被产生前。然而,该判断系被产生以判断一旦该选定的内存要求对于该给定内存分页的存取已完成后(于特定实施例中,系于该内存被另一内存要求存取前),该给定内存分页应该为什么状况。因此,于一些实施例中,一旦关于对该给定内存分页的未来存取的该判断已经被产生,该选定的内存要求(指令)伴随对应该被选定的内存指令之该自动预充电指标(indicator)一起被指向该内存(以存取该给定内存分页)。如果预测该给定内存分页应该被关闭,该自动预充电指标可以被致能,而如果预测该给定内存分页被保持开启,则该自动预充电指标可以被停用。一旦该选定内存要求对该给定内存分页的存取已完成,则致能之自动预充电可以导致对应于该给定条中之该给定内存分页的该列之自动预充电。跟随于该选定内存要求对该给定内存分页的该存取完成之后,则停用之自动预充电可以导致对应于该给定条中之该给定内存分页的该列之不改变状态(unchanged state)。
DRAM控制器可因此被配置以重新排序读取/写入要求,进而使该分页命中数最大化并且最小化该分页冲突数量,其中该重新排序可以被自动预充电预测所通知以预测是否预充电应该跟随于读取/写入要求之后,为了在不需要追踪配置于该DRAM中之个别分页的情况下达到最佳化之效能。
于本发明已参考特定之实施例而被描述之同时,可暸解到此处特定实施例之图式及详细说明并不欲用来限制本发明为所揭示之特定形式。按照前面所教示者,其它的修改或变化都是可能的。本发明将涵盖所有落于如所附申请专利范围内所界定之本发明之精神和范围内之修饰、等效和替代内容。
产业利用性
本发明一般可应用于微处理器。
Claims (8)
1.一种管理内存(105)存取的方法,该内存具有多个内存条,该方法包括:
识别当前内存要求所要求的给定内存分页,其中,该给定内存分页位于该多个内存条的给定内存条中(404);
根据对该给定内存条的最近内存存取的历史所对应的当前预测值来判断该给定内存分页是否应该被关闭或保持开启(406);以及
一旦该当前内存要求对该给定内存分页的存取完成,则进行以下其中一个步骤:
关闭该给定内存分页,以响应导致决定该给定内存分页应该被关闭的该判断(422);或
保持该给定内存分页为开启,以响应导致决定该给定内存分页应该被保持开启的该判断(424);以及
判断等待存取该内存的一个或更多个额外的内存要求中没有一个正在要求该给定内存条中的内存分页;
其中,进行该给定内存分页是否应该被关闭或保持开启的该判断以响应该一个或更多个额外内存要求中没有一个正在要求该给定内存条中的内存分页的该判断。
2.如权利要求1所述的方法,其中,该进行以下其中一个步骤是在该内存被再次存取之前并在该当前内存要求对该给定内存分页的存取完成之后进行。
3.如权利要求1所述的方法,还包括在该当前内存要求对该给定内存分页的存取完成之后关闭该给定内存分页一特定时间长度,以响应该给定内存分页在该特定长度时间期间维持闲置(426)。
4.如权利要求1所述的方法,还包括根据以下信息获得该当前预测值:
对该给定内存条的第一数量的最近之前的内存存取所对应的第一信息;以及
该当前内存要求对该给定内存分页的该存取所对应的第二信息。
5.如权利要求1所述的方法,还包括:
接收多个内存要求并且将该接收的内存要求如同迫切之内存要求一般存储于队列内(402);
选择存储于该队列内该迫切的内存要求中的一个,并且自该队列移除该选定的内存要求(404);
识别第一内存分页以及对应的第一内存条,其中,该内存条被该选定的内存要求所要求(404):
基于对该第一内存条的最近内存存取的历史所对应的当前预测值,作出该第一内存分页是否应该被关闭或保持开启的预测(406);
判断没有任何存储于该队列中的该迫切内存要求是正在存取该给定第一内存条(410);
响应该判断,进行以下其中一个步骤:
对该选定的内存要求致能自动预充电,以响应导致在该第一内存分页应该被关闭的该预测的该作出预测(422);或
对该选定的内存要求停用该自动预充电,以响应导致在该第一内存分页应该被保持开启的该预测的该作出预测(424)。
6.一种管理内存存取的装置(103),被配置以控制对具有一个或更多个内存条的内存(105)的存取,该管理内存存取的装置包括:
第一装置,该第一装置被配置以识别被当前内存要求所瞄准的给定内存分页,其中,该给定内存分页位于该一个或更多个内存条的给定内存条中;
第二装置,该第二装置被配置以从内存条历史表获得当前预测值,该内存条历史表具有多条项目,该多条项目的每一条项目均存储各个预测值,该预测值对应于各个内存条存取历史信息,该内存条存取历史信息为该一个或更多个内存条的一个存储于分页表中,该分页表为该一个或更多个内存条的每一个存储该各个内存条存取历史信息,其中,该当前预测值是基于存储于该分页表中对于该给定内存条的该至少各个内存条存取历史信息,和其中,该当前预测值指示该内存控制器是否该内存控制器应该关闭该给定内存分页或保持该内存分页开启;以及
第三装置,该第三装置被配置以决定是否有任何迫切的内存要求正瞄准该给定内存条,并响应判断没有迫切的内存要求正瞄准该给定内存条,一旦该当前内存要求对该给定内存分页的存取被完成,则该内存控制器被配置以根据该当前预测值所指示的内容来关闭或保持该给定内存分页开启;
其中,该迫切的内存要求包括一个或更多个等待存取该内存的额外内存要求。
7.如权利要求6所述的管理内存存取的装置,其中,该管理内存存取的装置还被配置以包括下列一个或多个装置:
第四装置,该第四装置被配置以自该内存条历史表的给定项目获得该当前预测值,其中,该给定项目的位置决定于:
对于该给定内存条在该分页表中存储至少第一部分该各个内存条存取历史信息;以及
对应于该当前内存要求的内存条存取信息;
第五装置,该第五装置被配置以当该迫切的内存要求中没有一个正瞄准该给定内存分页,并且该迫切的内存要求中的至少一个正瞄准该给定内存条中关闭的内存分页时,一旦该当前内存要求对该给定内存分页的存取被完成,关闭该给定内存分页;
第六装置,该第六装置被配置以当该迫切的内存要求中没有一个正瞄准该给定内存条中任何关闭的内存分页,并且该迫切的内存要求中的至少一个正瞄准该给定内存分页时,一旦该当前内存要求对该给定内存分页的存取被完成,保持该给定内存分页开启;
第七装置,该第七装置被配置以当该迫切的内存要求中的至少一个正瞄准该给定内存分页,并且该迫切的内存要求中的至少一个正瞄准该给定内存条中关闭的内存分页时,一旦该当前内存要求对该给定内存分页的存取被完成,保持该给定内存分页开启;
第八装置,该第八装置被配置以在获得该当前预测值之后,更新存储于该内存条历史表中的未来预测值;
第九装置,该第九装置被配置以更新存储于该内存条历史表的给定项目内的该未来预测值,其中,该给定项目的位置决定于存储于该给定内存条中该分页表内的该各个内存条存取历史信息;以及
第十装置,该第十装置被配置以识别对应于该当前内存要求的内存存取状态并根据该内存存取状态来更新该未来预测值,其中,该内存存取状态是以下其中一种:
分页命中,指示该给定内存分页已经开启;
分页落空,指示在该给定内存条中不具有开启的分页;或者
分页冲突,指示该给定内存分页是未开启以及在该给定内存条中另一个内存分页是开启的。
8.如权利要求7所述的管理内存存取的装置;
第十一装置,该第十一装置被配置以当该内存存取状态为分页命中,该内存控制器可以操作以更新该未来预测值,以指示该给定内存分页应该维持开启;
第十二装置,该第十二装置被配置以当该内存存取状态为分页冲突,该内存控制器可以操作以更新该未来预测值,以指示该给定内存分页应该被关闭;
第十三装置,该第十三装置被配置以当该内存存取状态为分页落空,并且该给定内存条内最近开启的分页并非该给定内存分页,则该内存控制器可以操作以更新该未来预测值,以指示该给定内存分页应该被关闭;以及
第十四装置,该第十四装置被配置以当该内存存取状态为分页落空,并且该给定内存条内最近开启的分页为该给定内存分页,则该内存控制器可以操作以更新该未来预测值,以指示该给定内存分页应该维持开启;
第十五装置,该第十五装置被配置以该内存条历史表中每一条项目均被进一步配置以存储各个可靠计数器值;
第十六装置,该第十六装置被配置以该内存控制器可以操作以将该未来预测值存储于该内存条历史表的给定项目内;以及
第十七装置,该第十七装置被配置以该内存控制器可以操作以根据该内存存取状态及存储于该给定项目内的该各个可靠计数器值来更新该未来预测值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/843,443 | 2007-08-22 | ||
US11/843,443 US7761656B2 (en) | 2007-08-22 | 2007-08-22 | Detection of speculative precharge |
PCT/US2008/009098 WO2009025712A1 (en) | 2007-08-22 | 2008-07-28 | Detection of speculative precharge |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102084345A CN102084345A (zh) | 2011-06-01 |
CN102084345B true CN102084345B (zh) | 2014-06-18 |
Family
ID=39865815
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880108416.8A Active CN102084345B (zh) | 2007-08-22 | 2008-07-28 | 侦测推测性预充电 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7761656B2 (zh) |
EP (1) | EP2191376B1 (zh) |
JP (1) | JP5305542B2 (zh) |
KR (1) | KR101554294B1 (zh) |
CN (1) | CN102084345B (zh) |
TW (1) | TWI457753B (zh) |
WO (1) | WO2009025712A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090157985A1 (en) * | 2007-12-18 | 2009-06-18 | Arm Limited | Accessing memory arrays |
US8429367B2 (en) * | 2007-12-28 | 2013-04-23 | Intel Corporation | Systems, methods and apparatuses for clock enable (CKE) coordination |
US8347020B2 (en) * | 2009-03-20 | 2013-01-01 | Qualcomm Incorporated | Memory access controller, systems, and methods for optimizing memory access times |
JP5428687B2 (ja) * | 2009-09-14 | 2014-02-26 | 株式会社リコー | メモリ制御装置 |
KR20110032606A (ko) * | 2009-09-23 | 2011-03-30 | 삼성전자주식회사 | 전자 디바이스의 성능 개선을 위한 전자 디바이스 컨트롤러 |
US20120059983A1 (en) * | 2010-09-03 | 2012-03-08 | David Wilkins Nellans | Predictor-based management of dram row-buffers |
US8615638B2 (en) * | 2010-10-08 | 2013-12-24 | Qualcomm Incorporated | Memory controllers, systems and methods for applying page management policies based on stream transaction information |
WO2013083194A1 (en) * | 2011-12-08 | 2013-06-13 | Huawei Technologies Co., Ltd. | Memory controller and method for controlling accesses to a memory |
US8990473B2 (en) * | 2012-10-04 | 2015-03-24 | Applied Micro Circuits Corporation | Managing requests to open and closed banks in a memory system |
US9251048B2 (en) * | 2012-10-19 | 2016-02-02 | International Business Machines Corporation | Memory page management |
CN103902462B (zh) * | 2012-12-27 | 2018-03-09 | 华为技术有限公司 | 内存管理方法、内存管理装置及计算机 |
US20150199134A1 (en) * | 2014-01-10 | 2015-07-16 | Qualcomm Incorporated | System and method for resolving dram page conflicts based on memory access patterns |
KR20160061704A (ko) | 2014-11-24 | 2016-06-01 | 삼성전자주식회사 | 페이지 상태 알림 기능이 있는 메모리 장치 |
WO2016089355A1 (en) | 2014-12-01 | 2016-06-09 | Hewlett Packard Enterprise Development Lp | Auto-negotiation over extended backplane |
CN107534590B (zh) | 2015-10-12 | 2020-07-28 | 慧与发展有限责任合伙企业 | 网络系统 |
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 |
JP2018049387A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリシステム及びプロセッサシステム |
US10379748B2 (en) | 2016-12-19 | 2019-08-13 | International Business Machines Corporation | Predictive scheduler for memory rank switching |
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 |
JP2019204150A (ja) * | 2018-05-21 | 2019-11-28 | 日本電信電話株式会社 | 通信用入出力装置 |
US11189662B2 (en) | 2018-08-13 | 2021-11-30 | Micron Technology | Memory cell stack and via formation for a memory device |
US10991425B2 (en) | 2018-08-13 | 2021-04-27 | Micron Technology, Inc. | Access line grain modulation in a memory device |
CN109658009B (zh) * | 2019-01-11 | 2024-05-07 | 杭州市电力设计院有限公司 | 基于随机原理与排队理论的电动汽车充电站能量管理方法 |
US10991417B1 (en) | 2019-05-24 | 2021-04-27 | Xilinx, Inc. | Auto-precharge management in a controller |
US11373695B2 (en) * | 2019-12-18 | 2022-06-28 | Micron Technology, Inc. | Memory accessing with auto-precharge |
KR102343550B1 (ko) * | 2020-04-10 | 2021-12-24 | 원광대학교산학협력단 | 스몰 액티브 커맨드를 이용한 메모리 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501254A (zh) * | 2002-11-13 | 2004-06-02 | 矽统科技股份有限公司 | 内存读取/写入仲裁方法 |
US7133995B1 (en) * | 2002-12-16 | 2006-11-07 | Advanced Micro Devices, Inc. | Dynamic page conflict prediction for DRAM |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0394344A (ja) * | 1989-09-07 | 1991-04-19 | Nec Corp | 情報処理装置 |
US5715421A (en) * | 1992-10-16 | 1998-02-03 | Seiko Epson Corporation | Apparatus and method of addressing paged mode memory including adjacent page precharging |
JP3254019B2 (ja) * | 1992-11-30 | 2002-02-04 | 富士通株式会社 | データ先読み制御装置 |
US5732236A (en) | 1993-05-28 | 1998-03-24 | Texas Instruments Incorporated | Circuit and method for controlling access to paged DRAM banks with request prioritization and improved precharge schedule |
JPH07105686A (ja) * | 1993-10-04 | 1995-04-21 | Oki Electric Ind Co Ltd | メモリ制御装置 |
US5625790A (en) | 1995-09-14 | 1997-04-29 | Micron Technology, Inc. | Method and apparatus for reducing the access time of a memory device by decoding a row address during a precharge period of the memory device |
US5889714A (en) * | 1997-11-03 | 1999-03-30 | Digital Equipment Corporation | Adaptive precharge management for synchronous DRAM |
US5983325A (en) | 1997-12-09 | 1999-11-09 | Advanced Micro Devices, Inc. | Dataless touch to open a memory page |
US6199145B1 (en) * | 1998-02-27 | 2001-03-06 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
US6219765B1 (en) * | 1998-08-03 | 2001-04-17 | Micron Technology, Inc. | Memory paging control apparatus |
US6401180B1 (en) | 1999-01-04 | 2002-06-04 | Advanced Micro Devices, Inc. | Bank history table for improved pre-charge scheduling of random access memory banks |
JP2001166985A (ja) * | 1999-12-10 | 2001-06-22 | Nec Gumma Ltd | メモリ制御装置 |
US7127573B1 (en) | 2000-05-04 | 2006-10-24 | Advanced Micro Devices, Inc. | Memory controller providing multiple power modes for accessing memory devices by reordering memory transactions |
US6785793B2 (en) * | 2001-09-27 | 2004-08-31 | Intel Corporation | Method and apparatus for memory access scheduling to reduce memory access latency |
US6829184B2 (en) | 2002-01-28 | 2004-12-07 | Intel Corporation | Apparatus and method for encoding auto-precharge |
US7124260B2 (en) | 2002-08-26 | 2006-10-17 | Micron Technology, Inc. | Modified persistent auto precharge command protocol system and method for memory devices |
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 |
US7167946B2 (en) | 2003-09-30 | 2007-01-23 | Intel Corporation | Method and apparatus for implicit DRAM precharge |
US7130967B2 (en) * | 2003-12-10 | 2006-10-31 | International Business Machines Corporation | Method and system for supplier-based memory speculation in a memory subsystem of a data processing system |
US7162567B2 (en) * | 2004-05-14 | 2007-01-09 | Micron Technology, Inc. | Memory hub and method for memory sequencing |
KR100650730B1 (ko) | 2004-12-28 | 2006-11-27 | 주식회사 하이닉스반도체 | 메모리 장치의 프리차지 타이밍 제어 방법 및 그 장치 |
US7167385B2 (en) | 2005-02-11 | 2007-01-23 | International Business Machines Corporation | Method and apparatus for controlling the timing of precharge in a content addressable memory system |
JP4839749B2 (ja) * | 2005-09-20 | 2011-12-21 | 日本電気株式会社 | コンピュータ、携帯端末装置、電力制御方法、電力制御プログラム |
US20070162642A1 (en) * | 2005-12-19 | 2007-07-12 | Ivo Tousek | A dma controller with multiple intra-channel software request support |
US7606988B2 (en) * | 2007-01-29 | 2009-10-20 | International Business Machines Corporation | Systems and methods for providing a dynamic memory bank page policy |
-
2007
- 2007-08-22 US US11/843,443 patent/US7761656B2/en active Active
-
2008
- 2008-07-28 EP EP08794791.7A patent/EP2191376B1/en active Active
- 2008-07-28 WO PCT/US2008/009098 patent/WO2009025712A1/en active Application Filing
- 2008-07-28 KR KR1020107006272A patent/KR101554294B1/ko active IP Right Grant
- 2008-07-28 CN CN200880108416.8A patent/CN102084345B/zh active Active
- 2008-07-28 JP JP2010521845A patent/JP5305542B2/ja active Active
- 2008-08-22 TW TW097132032A patent/TWI457753B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1501254A (zh) * | 2002-11-13 | 2004-06-02 | 矽统科技股份有限公司 | 内存读取/写入仲裁方法 |
US7133995B1 (en) * | 2002-12-16 | 2006-11-07 | Advanced Micro Devices, Inc. | Dynamic page conflict prediction for DRAM |
Also Published As
Publication number | Publication date |
---|---|
EP2191376B1 (en) | 2016-09-28 |
CN102084345A (zh) | 2011-06-01 |
TW200925859A (en) | 2009-06-16 |
TWI457753B (zh) | 2014-10-21 |
JP5305542B2 (ja) | 2013-10-02 |
KR101554294B1 (ko) | 2015-09-18 |
EP2191376A1 (en) | 2010-06-02 |
KR20100055503A (ko) | 2010-05-26 |
US20090055570A1 (en) | 2009-02-26 |
US7761656B2 (en) | 2010-07-20 |
JP2010537310A (ja) | 2010-12-02 |
WO2009025712A1 (en) | 2009-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102084345B (zh) | 侦测推测性预充电 | |
CN100354796C (zh) | 使用多存储体存储器设备中的标记寄存器的方法 | |
US7536530B2 (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
KR100724557B1 (ko) | 아웃 오브 오더 dram 시퀀서 | |
CN101609438B (zh) | 存储器系统、其访问控制方法和计算机程序 | |
US6687172B2 (en) | Individual memory page activity timing method and system | |
EP2223217B1 (en) | System, apparatus, and method for modifying the order of memory accesses | |
US6799257B2 (en) | Method and apparatus to control memory accesses | |
JP2022514128A (ja) | メモリコントローラのリフレッシュスキーム | |
EP0375121B1 (en) | Method and apparatus for efficient DRAM control | |
JP3629519B2 (ja) | プログラマブルsram及びdramキャッシュ・インタフェース | |
EP2686774B1 (en) | Memory interface | |
EP1579335B1 (en) | Read-write switching method for a memory controller | |
AU703750B2 (en) | Easily programmable memory controller which can access different speed memory devices on different cycles | |
CN1707694B (zh) | 用于多线程流水线总线系统的存储控制器 | |
EP1573551B1 (en) | Precharge suggestion | |
US6801982B2 (en) | Read prediction algorithm to provide low latency reads with SDRAM cache | |
US7543105B2 (en) | Memory access control based on hit prediction | |
CN112965816B (zh) | 内存管理技术及计算机系统 | |
WO2024072725A1 (en) | Directed refresh management for dram | |
JP2001243116A (ja) | 書込みのみで最長時間未使用ビットを更新するためのシステム |
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 |