CN1975634B - 用于存储器访问的自适应节流的装置 - Google Patents
用于存储器访问的自适应节流的装置 Download PDFInfo
- Publication number
- CN1975634B CN1975634B CN2006101688601A CN200610168860A CN1975634B CN 1975634 B CN1975634 B CN 1975634B CN 2006101688601 A CN2006101688601 A CN 2006101688601A CN 200610168860 A CN200610168860 A CN 200610168860A CN 1975634 B CN1975634 B CN 1975634B
- Authority
- CN
- China
- Prior art keywords
- memory
- bandwidth
- throttling
- storer
- mask
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/225—Clock input buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
- Dram (AREA)
- Circuits Of Receivers In General (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
一种用于存储器访问的自适应节流的装置,包括:存储器控制器,所述存储器控制器具有:第一寄存器,用于设置给所述存储器控制器分配的存储器带宽的百分数或者存储器访问次数;第二寄存器,用于设置时间窗以便监视所述存储器控制器使用的存储器带宽的百分数或者存储器访问次数;以及计数器,用于测量在所述时间窗期间所述存储器控制器使用的存储器带宽的百分数或者存储器访问次数。
Description
本申请是申请日为2001年9月20日、申请号为01819375.7并且发明名称为“诸如在实时系统中节流RDRAM访问的存储器访问的自适应节流”的申请的分案申请。
技术领域
本发明涉及计算机和计算机技术,具体而言,涉及计算机存储器。
背景技术
对于当今的计算机,在某些条件下常常希望能加快和减慢计算机的运行。这种减慢和加快有时被称为“节流”(throttling)。节流的可能有各种原因。例如,在移动计算机中节流能够用于节省电池的电力。
节流还能够结合计算机存储器设备或存储器控制器而加以使用。减慢和加速对相关存储器请求的速率常常称为“存储器节流”,这样就减少了存储器的访问。这也可以称为“热节流”,因为如果在一段时间有太多的存储器访问,则存储器设备和控制器就会过热。过热在移动或者其它低电力的计算机中是相当棘手的。
存储器节流还会有负面的影响,例如在有实时要求的系统中。使用显示流诸如视频会议以及电影预映的系统例如就会有严格的实时要求并且要求能保证对存储器的快速访问。如果存储器控制器不能足够快地对来自计算机显示的存储器请求作出响应,则与计算机显示相关联的本地缓冲器就会下溢,这样就会导致计算机显示器上的闪烁。为使缓冲器下溢的机会最小化,计算机显示通常对存储器进行许多次的访问,每次访问都要获取小量的像素。
有许多现有的模式可用来节流存储器。一种这样的模式是:对在一段时间内出现的存储器访问次数进行计数。如果存储器访问的次数超过了存储器访问的阈值次数,则所有对存储器的后续访问就要被阻塞另一个更长的时间段。即,存储器有很长的一段时间是不可访问的,这在实时处理流式数据的计算机中是很棘手的。
发明内容
本发明提供了一种用于存储器访问的自适应节流的装置,包括:
存储器控制器,所述存储器控制器具有第一寄存器,用于设置给所述存储器控制器分配的存储器带宽的百分数,第二寄存器,用于设置时间窗以便监视所述存储器控制器要求的存储器带宽,以及计数器,用于测量在所述时间窗期间所述存储器控制器要求的存储器带宽。
本发明还提供了一种用于存储器访问的自适应节流的装置,包括:
逻辑电路,该逻辑电路用于当所述存储器控制器要求的存储器带宽小于给所述存储器控制器分配的第一存储器带宽时,增加给所述存储器控制器分配的存储器带宽的百分数;以及
逻辑电路,该逻辑电路用于当所述存储器控制器要求的存储器访问大于给所述存储器控制器分配的所述存储器带宽时,减小给所述存储器控制器分配的存储器带宽的百分数。
附图说明
在如下的附图中,相同的数字总体上表示完全相同的、功能相似的以及/或结构等价的元件。元件第一次出现的图通过参考数字的最左端数字来表示,其中:
图1绘制了根据本发明的实施例的用于节流存储器的例子方法;
图2表示适合于实施本发明的实施例的计算机系统;
图3是适用本发明实施例使用的存储器节流机制的图形表示;
图4图示了本发明实施例的掩码;以及
图5是图解用于节流存储器的示范方法的流程图。
具体实施方式
在此详细描述自适应存储器的节流。在下面的描述中,描述本发明的各个方面。然而,对本领域的技术人员显而易见的是,本发明可以仅用本发明的一些或者所有方面来实现。为了便于解释,对专用数字、方法、素材以及配置进行了说明从而实现对本发明有一个彻底的理解。然而,对本领域的技术人员仍然显而易见的是,本发明在没有这些专门细节的情况下也是可以实践的。在其它实例中,为了不对本发明产生混淆,就将公知的特征省略或简化了。
本说明书的一些部分是使用本领域技术人员普遍所用的术语诸如程序、掩码、寄存器、计数器、存储器、控制器等等来加以展示的,从而将他们工作的实质转达给本领域的其它技术人员。本说明书的其它部分是使用诸如访问、判定、计数、传送等等术语在由计算机系统所执行的操作方面加以展示的。本领域技术人员应该能够很好理解的是,这些量和操作通过计算机系统的机械和电部件能够采取可以被存储、传输、组合和以其它方式操作的电、磁或光信号的形式;并且术语“计算机系统”包括通用的以及专用的数据处理机、系统等等,它们可以是独立的、附属的或者嵌入式的。
各种操作采用最有助于理解本发明的方式并且作为循序执行的多个独立的步骤来加以描述。然而,描述它们的顺序不应该理解成意味着这些操作是必须依赖于顺序的或这些操作应该以所展示的步骤顺序而被执行。
本发明在下面相对于若干例子进行更详细的描述以便于说明。贯穿本说明书的参考“一个实施例”或者“实施例”的意思是结合该实施例描述的具体特征、结构或者特性被包含在本发明的至少一个实施例中。因此,出现在贯穿本说明书的许多处的短语“在一个实施例中”或者“在实施例中”并不一定都指的是相同的实施例。此外,具体特征、结构或者特性可以在一个或者多个实施例中采用任何合适的方式加以组合。
本发明的一个方面使用屏蔽工具来控制对存储器的访问从而把存储器的通信量(或者节流)阻塞一段时间。与常规的存储器节流模式相比较,所述屏蔽工具大幅度地消减了存储器处于空闲或不可访问的时间量。该特征相当有益于那些具有实时要求的、并且不能够容忍存储器在长时间段内不可用的计算机系统。而且,通过允许最合适的存储器带宽的百分数或者每单位时间的读和写(访问)次数来控制对存储器的访问以便提供降低存储器的温度的机会。
本发明的另一个方面使用自适应屏蔽工具来增加或者减小存储器带宽的分配。该特征根据前一个时间段的存储器访问来在下一个时间段阻塞更大或者更小的存储器通信量。所述自适应屏蔽工具允许许多实时系统的典型存储器访问的突发和能够“平滑”在不同时间段之间的存储器访问。
本发明的又一个方面使用作为历史机制的自适应屏蔽工具来存储关于从以前的时间段的存储器访问的信息。例如,所述自适应屏蔽工具记住存储器访问的弱或者强的时间段,并且修改掩码以便允许每时间段有更多或者更少的存储器访问。
下面是在此所使用的若干个术语以及它们的定义。这些术语代表可以存储在一个或者多个寄存器中的参数。术语“采样窗”指对一些字进行计数的时间长度。术语“节流时间”指热节流作为一些采样窗在多长时间内仍然有效。术语“节流-监视窗”指在向存储器写或者从存储器读的字的数量受到监视同时所述热节流机制受到调用期间的存储器时钟窗。术语“允许的访问数”指在一个节流-监视窗内允许从存储器读或者允许向存储器写的字的数量。
图1绘制了本发明的一个方面的用于节流存储器的方法100。步骤102定义用于监视存储器带宽的时间窗。在一个实施例中,步骤102定义采样窗。在另一个实施例中,存储器带宽是通过监视向存储器写入或者从存储器读出的字而受到监视的。
步骤104施加掩码以便分配存储器带宽。在一个实施例中,所述掩码设置了一些使得存储器能够对存储器持续进行访问的专用时钟周期。换言之,所述掩码限定了存储访问的次数和模式。
步骤106定义存储器节流-监视窗。
步骤108监视存储器带宽。在一个实施例中,步骤108监视在所述采样窗内从存储器读或者向存储器写的字的数量。
步骤110允许在节流-监视窗期间对存储器进行访问。在一个实施例中,步骤110允许在节流-监视窗期间向存储器写入字或者从存储器读取字。这在采样窗期间就是这种情况,而不管从存储器读或者向存储器写入的字的数量。
步骤112施加另一个掩码,以便根据在一个节流-监视窗之内同时热监视还有效的情况下从存储器读取或者写入存储器的字的数量来增加或者减小所分配的存储器带宽。所述掩码重新限定在当前节流-监视窗期间的访问次数。例如,如果在节流-监视窗内从存储器读或向存储器写的字的数量超过了所允许的访问次数,则施加下一个较低掩码,并且减小所允许的访问次数。候选地,如果在节流-监视窗内从存储器读或向存储器写的字的数量并没有超过所允许访问的次数,则施加下一个较高掩码,并且增加所允许的访问次数。
图2是适合于实施方法100的计算机系统200的方块图。计算机系统200包括处理器202,它执行其常规的关于执行编程指令的功能,包括实施本发明所教导的。处理器202可以是可从加利福尼亚州的SantaClara的Intel公司购买到的奔腾系列的处理器。
计算机系统200包括桥204,桥204一般实现通信协议转换以及实现中断处理,还作为存储器代理来发挥作用。桥技术是公知的,为了简洁起见不再对其进行更加详细的描述。
桥204包括图形控制器206,图形控制器206从处理器202接收命令和数据并生成显示(例如采用RGB格式的)信号。图形控制器技术也是公知的。
桥204包括存储器控制器208,它管理存储器。存储器控制器208执行其常规的关于控制和监视存储器数据线的状态、错误检验等的功能。存储器控制器技术是公知的。
存储器控制器208包括3个寄存器210、212和214,它们是具有指定存储容量诸如比特、字节或者计算机字的存储设备。在一个实施例中,寄存器210规定节流-监视窗。在另一个实施例中,寄存器212规定所允许的访问次数以便设置存储器带宽。在又一个实施例中,寄存器212还用于设置存储器带宽分配。寄存器技术是公知的。
寄存器214规定节流时间。所述节流时间规定热节流在多长时间仍然是有效的。节流时间被划分为若干个节流-监视窗。
存储器控制器208还包括一组计数器216,所述一组计数器通常包括一个和多个单独的计数器。计数器216在一个实施例中测量在预定时间段的存储器带宽。在该实施例中,计数器216对在节流-监视窗期间对存储器访问的次数进行计数。计数器计数是公知的。
计算机系统200还包括软件218,所述软件218总体上控制逻辑、指令、命令、代码以及计算机程序等。软件218由计算机系统200执行以便实现在此所描述的功能。在计算机系统中执行软件是公知的。
软件218包括基本输入/输出系统(BIOS)220,它是在应用软件和硬件之间的低层接口组指令。BIOS220通常包括在软件218调用专用例程时被执行的一组函数。在一个实施例中,寄存器210和214通过BIOS220进行了预编程。BIOS220可以存储在只读存储器(ROM)设备中。BIOS技术是公知的。
软件218还包括操作系统222,它执行其常规的关于管理在执行程序期间在计算机系统200之内的资源分配和取消资源分配的功能。操作系统222可以存储在ROM设备中。操作系统是公知的,Windows操作系统是合适的。
计算机系统200包括主存储器224,它执行其常规的关于存储供其它系统部件访问的数据(像素、帧、音频、视频等等)和软件(控制逻辑、指令、代码、计算机程序等等)的功能。一般,存储器224包括与若干可寻址的存储位置相对应的若干数据线。在一个实施例中,每条数据线处理8个数据字(或者64个字节)。在另一个实施例中,每条数据线处理16个数据字(或者128个字节)。存储器技术是公知的,合适的存储器可以是可从加利福尼亚的Mountain View的Rambus公司购买的随机访问存储器(RAM),诸如动态随机访问存储器(RDRAM)。
计算机系统200包括输入/输出(I/O)设备226,它通常是外围的部件或者设备,诸如打印机、本地磁盘驱动器、光盘CD-ROM、局域网(LAN)、声音模块、小型计算机系统接口(SCSI)等等。I/O设备226一般具有I/O驱动器,它为I/O设备226从存储器读取并向存储器写入。I/O设备是公知的。
计算机系统还包括图形设备228,它一般是用于显示图像的屏幕。通常的图像包括三维图像、动画效果、视频、文本等等。图形设备技术也是公知的,因此就不做进一步的描述了。
在图2所绘制的实施例中,来往于主存储器224的通信量来自处理器202、图形设备228或者I/O设备226。当然,请求访问存储器的源(或通信量)对本发明并不是重要的。
图形设备228被耦合到图形局部存储器230,它在一个实施例中是具有16M存储器的小型帧缓冲器。在另一个实施例中,图形局部存储器230是具有8M存储器的小型帧缓冲器。
计算机系统200包括3个热传感器。所提供的一个热传感器240用于测量图形局部存储器的温度。第二热传感器250测量主存储器224的温度。第三热传感器260测量计算机系统200整体内的温度。
有各种方式来使计算机系统200开始存储器节流。例如,热传感器250可以通过向存储器控制器208指示主存储器224的温度太高而触发存储器节流。热传感器260通过向BIOS220或者操作系统222指示计算机系统200内部的温度太高而触发存储器节流。在屏蔽设备位于图形局部存储器230内的实施例中,热传感器240通过向图形控制器206指示图形局部存储器230的温度太高而触发存储器节流。
软件218(包括BIOS220和操作系统222)能够自己决定来使计算机系统200进入存储器节流模式。例如,软件218能够接收来自热传感器260的计算机系统200的温度太高的指示。在存储器控制器208中还能有独立的控制器寄存器,它在由热传感器260所测量的温度超过预定的限值时被设置。
当然,热传感器能够用于在各种设备中触发存储器节流。例如,I/O设备226的I/O驱动器可能也需要得到冷却。
计数器216也能够触发存储器节流方式。例如,如果主存储器224的访问次数超过了BIOS220所设置的限值,计算机系统200就能够进入存储器节流模式。因此,用于进入存储器节流的具体机制不限制本发明。
一旦已经做了判定使计算机系统200进行存储器节流,则计算机系统200开始节流存储器。常规地,计算机系统200在采样窗期间会对向存储器写入以及从存储器读取的字的数量进行计数。如果字的数量超过了所允许的访问次数,则从那个时间点到节流-监视窗结束之前的所有对存储器(主存储器224、图形本地存储器230等)的访问就遭到阻塞。这意味着来自处理器202、I/O设备226以及图形控制器206的读和写请求遭到阻塞。
在一个实施例中,主存储器224包括用于允许来自存储器202、I/O设备226以及图形控制器206等的读和写的请求到达存储器的屏蔽工具290,而不管字的数量是否超过所允许访问的次数。
起初,屏蔽工具290从若干个掩码中选择一个掩码。屏蔽工具290使用公知的屏蔽算法来选择掩码。在一个实施例中,屏蔽工具290为每个节流-监视窗计算掩码。在图2所示的实施例中,屏蔽工具290位于主存储器224中。可选地,屏蔽工具290可以位于存储器控制器208中。在这两个实施例中,屏蔽工具290控制主存储器的带宽。
在另一个实施例中,屏蔽工具290位于图形局部控制器250(或者图形控制器206)中,并且控制图形局部存储器250的带宽。当然,屏蔽工具290可以控制对各种存储器设备的访问。而且,屏蔽工具290可以位于存储器控制器中。
图3是由屏蔽工具290所选择的一组掩码300。在一个实施例中,该组掩码300位于存储器控制器208中。
掩码300包括具有不同数量的0和1的14个单个掩码(301-314)。对于每个单个掩码,每个“0”对应存储器访问被允许的时钟周期。每个“1”对应存储器访问被阻塞的时钟周期。当然,约定可以改变成:每个“0”对应存储器访问被允许的时钟周期,每个“1”对应存储器访问被阻塞的时钟周期。使用在此所作的描述,本领域的普通人员就能够容易地实施所改变的实施例。
在图3所表示的实施例中,所述掩码组是14比特的掩码,它提供7%的分辨率,并且给存储器控制器208分配存储器224的带宽的7%。当然,所述掩码可以长些或者短些。掩码越长,(存储器带宽的)分辨率就越大。对于1%的分辨率,掩码的长度是100个比特。对于20%的分辨率,掩码的长度是5个比特。根据在此所提供的描述,本领域的普通技术人员能够实施各种分辨率的掩码。
掩码的模式被设计成使在存储器受到阻塞时的周期数最小化。这通过尽可能多地交织0和1来加以实现。
图4表示使用屏蔽工具209来节流存储器的方法400。图4是结合图5进行描述的,图5是对节流机制500的图形表示。节流机制500包括节流时间502。节流时间被划分成节流-监视窗(504),它通过节流-监视窗504a、504b、504c以及504d来表示。所允许访问的预定数目(506)包括所允许的访问506a、506b、504c以及506d的数目,它们对应节流-监视窗504a、504b、504c以及504d。
在步骤402,屏蔽工具290选择掩码。在一个实施例中,屏蔽工具290以50%掩码307开始。选择50%掩码307把在节流-监视窗504a期间所允许的访问506a的次数设置为存储器带宽的50%。
在步骤404,屏蔽工具290监视在节流-监视窗504a期间对存储器的访问。在步骤406,屏蔽工具290确定存储器访问的次数是否超过所允许的访问506a的次数或者是否超过由掩码307所设置的存储器带宽的百分数。
在步骤408,如果屏蔽工具290确定了存储器访问的次数超过了所允许的访问506a的次数,或者超过了存储器带宽的百分数,则屏蔽工具290允许所述存储器被访问直到节流-监视窗504a结束为止。
在节流-监视窗504a结束时,如果屏蔽工具290确定存储器访问的次数超过了所允许的访问506a的次数,则在步骤410,屏蔽工具290选择下一个较低的掩码。在一个实施例中,屏蔽工具290选择42%掩码306。选择42%掩码306把在节流-监视窗504b期间所允许的访问506b的次数设置为存储器带宽的42%。
方法400返回到步骤404,此处屏蔽工具290监视在节流-监视窗504b期间对存储器的访问。在步骤406,屏蔽工具290确定存储器访问的次数是否超过了所允许的访问506b的次数,它现在是存储器带宽的42%。如果在步骤408,屏蔽工具290确定了存储器访问的次数超过了存储器带宽的42%,则屏蔽工具290允许所述存储器被访问直到节流-监视窗504b结束为止。在节流-监视窗504b结束时,如果屏蔽工具290确定了存储器访问的次数超过了存储器带宽的42%,则在步骤410,屏蔽工具290选择35%掩码305。
只要存储器访问的次数超过了所分配的带宽,屏蔽工具290就继续选择下一个较低的掩码。最终,屏蔽工具290会到达最低的掩码,仅仅有最小的带宽得到了分配。
候选地,在节流-监视窗504a结束时,如果屏蔽工具290确定了存储器访问的次数没有超过所允许的访问506a的次数,则在步骤412,屏蔽工具290选择下一个较高的掩码。在一个实施例中,屏蔽工具290选择58%掩码308。选择58%掩码308把在节流-监视窗504b期间所允许的访问506b的数量设置为存储器带宽的58%。
在该实施例中,屏蔽工具290监视在节流-监视窗504b期间对存储器的访问。在步骤406,屏蔽工具290确定存储器访问的次数是否超过所允许的访问506b的次数,它现在是存储器带宽的58%。如果在步骤408,屏蔽工具290确定存储器访问的次数超过了存储器带宽的58%,则屏蔽工具290允许所述存储器被访问直到节流-监视窗504b结束为止。在节流-监视窗504b结束时,如果屏蔽工具290确定了存储器访问的次数超过了存储器带宽的58%,则在步骤410,屏蔽工具290选择50%掩码307。
只要存储器访问的次数小于所允许的存储器带宽,屏蔽工具290就继续选择下一个较高的掩码。最终,屏蔽工具290会到达最高的掩码,并且整个带宽都被分配。即,对访问存储器的所有尝试都将被允许。
在每个节流监视窗504结束时,方法400就作出要施加较高或者较低掩码的决定。采用此方式,屏蔽工具290在整个节流时间502期间都在运行。屏蔽工具290继续根据来自以前的节流-监视窗504的存储器通信量来在掩码300之间移动。如果对于若干节流-监视窗504都有较低的通信量,则屏蔽工具290继续提高可用于访问的存储器带宽的百分数。方法400因此允许在不同的节流-监视窗504之间自适应地平滑存储器访问。在长的阶段里(许多个节流-监视窗504)可以有一个平均存储器带宽。
例如,如果所述掩码继续在下一个较低掩码例如存储器带宽的42%和下一个较高的掩码例如存储器带宽的50%之间移动,则所述平均存储器带宽就近似为存储器带宽的46%。当希望的存储器带宽小于每个节流-监视窗504所允许的访问506的次数时,所述平均存储器带宽与常规的方法相比就更靠近所希望的存储器带宽。这在实际上是一种这样的历史机制,该历史机制记住存储器访问的弱或者强的时段,并且通过考虑那些存储器访问次数比所允许的该存储器访问次数很明显地低些或高些的时段的情况,从而把所述掩码调整为允许每时间段有更多或者更少的存储器访问。
本发明的各方面能够使用硬件、软件或者硬件与软件的组合来加以实施。上述的实施包括状态机和专用集成电路(ASIC)。在使用软件的实施中,软件可以存储在计算机程序产品(诸如光盘、磁盘、软盘等等)或者程序存储设备(诸如光盘驱动器、磁盘驱动器、软盘驱动器等等),它们包括嵌入在计算机可用介质中的导致计算机执行此间各种功能的计算机可读程序代码。
关于本发明的说明的实施例的上述描述并不是有意要穷举或者有意要把本方面限制在所披露的准确形式上。尽管为了说明的目的,在此描述了例如关于本发明的专门的实施例,但是各种等价的修改是可行的,而不离开本发明的范围,这一点那些本领域的技术人员应该会明白的。根据上面详细的描述,是能够对本发明做这些修改的。
在如下的权利要求中所使用的术语不应该理解为是把本方面限制在本说明书和权利要求书中所披露的专门的实施例。不同的是,本发明的范围是完全由下面的权利要求书来确定的,它们应该根据权利要求书的解释所建立的实质来加以理解。
Claims (4)
1.一种用于存储器访问的自适应节流的装置,包括:
存储器控制器,所述存储器控制器具有:第一寄存器,用于设置分配给所述存储器控制器的存储器带宽的百分数;第二寄存器,用于设置时间窗以便监视所述存储器控制器要求的存储器带宽;计数器,用于测量在所述时间窗期间所述存储器控制器要求的存储器带宽;以及
屏蔽工具,用于当所述存储器控制器的存储器访问小于存储器带宽或者分配给所述存储器控制器的存储器访问的次数时,提高存储器带宽的百分数或者分配给存储器控制器的存储器访问的次数,或者当所述存储器控制器的存储器访问大于存储器带宽或者分配给所述存储器控制器的存储器访问的次数时,减小存储器带宽的百分数或者分配给存储器控制器的存储器访问的次数。
2.如权利要求1所述的装置,其中第一寄存器用于在第一时间窗期间设置分配给所述存储器控制器的存储器带宽的百分数。
3.如权利要求2所述的装置,其中第二寄存器用于设置第一时间窗以便监视所述存储器控制器使用的存储器带宽。
4.如权利要求3所述的装置,其中计数器用于测量在第一时间窗期间使用的存储器带宽。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/667,649 US6662278B1 (en) | 2000-09-22 | 2000-09-22 | Adaptive throttling of memory acceses, such as throttling RDRAM accesses in a real-time system |
US09/667649 | 2000-09-22 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018193757A Division CN100350400C (zh) | 2000-09-22 | 2001-09-20 | 用于存储器访问的实时自适应节流的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1975634A CN1975634A (zh) | 2007-06-06 |
CN1975634B true CN1975634B (zh) | 2010-05-19 |
Family
ID=24679046
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101688601A Expired - Fee Related CN1975634B (zh) | 2000-09-22 | 2001-09-20 | 用于存储器访问的自适应节流的装置 |
CNB018193757A Expired - Fee Related CN100350400C (zh) | 2000-09-22 | 2001-09-20 | 用于存储器访问的实时自适应节流的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018193757A Expired - Fee Related CN100350400C (zh) | 2000-09-22 | 2001-09-20 | 用于存储器访问的实时自适应节流的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6662278B1 (zh) |
EP (1) | EP1360590B1 (zh) |
CN (2) | CN1975634B (zh) |
AT (1) | ATE479941T1 (zh) |
AU (1) | AU2001291203A1 (zh) |
DE (1) | DE60142986D1 (zh) |
WO (1) | WO2002025448A2 (zh) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6378066B1 (en) * | 1999-02-04 | 2002-04-23 | Sun Microsystems, Inc. | Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications |
DE10036914A1 (de) * | 2000-07-28 | 2002-02-14 | Infineon Technologies Ag | Integrierte Schaltung mit Temperatursensor |
US6662278B1 (en) | 2000-09-22 | 2003-12-09 | Intel Corporation | Adaptive throttling of memory acceses, such as throttling RDRAM accesses in a real-time system |
US6772352B1 (en) * | 2000-09-29 | 2004-08-03 | Intel Corporation | Method and apparatus for reducing the rate of commands being issued if the rate exceeds a threshold which is based upon a temperature curve |
US20030025698A1 (en) * | 2001-08-01 | 2003-02-06 | Riemens Abraham Karel | Programmed stall cycles slow-down video processor |
US7155568B2 (en) * | 2001-09-29 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Transaction generator for initialization, rebuild, and verify of memory |
US7003658B2 (en) * | 2002-02-21 | 2006-02-21 | Inventec Corporation | Method for user setup of memory throttling register in north bridge via BIOS to save power |
US20040064745A1 (en) * | 2002-09-26 | 2004-04-01 | Sudarshan Kadambi | Method and apparatus for controlling the rate at which instructions are executed by a microprocessor system |
US6871119B2 (en) * | 2003-04-22 | 2005-03-22 | Intel Corporation | Filter based throttling |
US20040215912A1 (en) * | 2003-04-24 | 2004-10-28 | George Vergis | Method and apparatus to establish, report and adjust system memory usage |
WO2005003961A2 (en) * | 2003-07-07 | 2005-01-13 | Koninklijke Philips Electronics N.V. | Data processing system and method for data processing |
US7054968B2 (en) * | 2003-09-16 | 2006-05-30 | Denali Software, Inc. | Method and apparatus for multi-port memory controller |
JP4415317B2 (ja) * | 2004-02-23 | 2010-02-17 | セイコーエプソン株式会社 | 情報機器及びその制御方法 |
CA2509001A1 (en) * | 2004-06-22 | 2005-12-22 | Textron Inc. | Blind bolt installation tool |
US8190863B2 (en) * | 2004-07-02 | 2012-05-29 | Intel Corporation | Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction |
US20060048158A1 (en) * | 2004-07-29 | 2006-03-02 | International Business Machines Corporation | Methods and apparatus for aging a command |
US8490102B2 (en) * | 2004-07-29 | 2013-07-16 | International Business Machines Corporation | Resource allocation management using IOC token requestor logic |
JP4262647B2 (ja) * | 2004-07-30 | 2009-05-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 情報処理装置、制御方法、プログラム、及び記録媒体 |
US7650481B2 (en) * | 2004-11-24 | 2010-01-19 | Qualcomm Incorporated | Dynamic control of memory access speed |
US7694152B2 (en) * | 2005-02-03 | 2010-04-06 | International Business Machines Corporation | Memory controller with performance-modulated security |
CN100377104C (zh) * | 2005-02-28 | 2008-03-26 | 中国科学院计算技术研究所 | 一种内存访问信息实时捕获装置及访存信息捕获方法 |
US7496969B2 (en) * | 2005-04-25 | 2009-03-03 | Darren Edward Pieczynski | Heat containment hand warming device |
US20060248355A1 (en) * | 2005-04-27 | 2006-11-02 | Thayer Larry J | Power throttling system and method for a memory controller |
US7596707B1 (en) * | 2005-05-06 | 2009-09-29 | Sun Microsystems, Inc. | System and method for efficient power throttling in multiprocessor chip |
US20070028010A1 (en) * | 2005-08-01 | 2007-02-01 | Texas Instruments, Inc. | Peripheral device utilization monitoring |
US7472292B2 (en) * | 2005-10-03 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | System and method for throttling memory power consumption based on status of cover switch of a computer system |
US7159082B1 (en) | 2005-10-03 | 2007-01-02 | Hewlett-Packard Development Company, L.P. | System and method for throttling memory accesses |
JP4949013B2 (ja) * | 2006-04-03 | 2012-06-06 | ハイニックス セミコンダクター インク | 温度感知装置を備えた半導体メモリ素子及びその駆動方法 |
US7500078B2 (en) * | 2006-08-25 | 2009-03-03 | Dell Products L.P. | Thermal control of memory modules using proximity information |
US8122265B2 (en) * | 2006-12-29 | 2012-02-21 | Intel Corporation | Power management using adaptive thermal throttling |
US9122648B2 (en) * | 2007-08-22 | 2015-09-01 | Advanced Micro Devices, Inc. | Temperature throttling mechanism for DDR3 memory |
JP2009130036A (ja) * | 2007-11-21 | 2009-06-11 | Toshiba Corp | 半導体装置 |
EP2318935B1 (en) * | 2008-07-23 | 2014-11-19 | Micro Motion, Inc. | Processing system with external memory access control |
US7984206B2 (en) * | 2008-08-06 | 2011-07-19 | Texas Instruments Incorporated | System for debugging throughput deficiency in an architecture using on-chip throughput computations |
US8032678B2 (en) * | 2008-11-05 | 2011-10-04 | Mediatek Inc. | Shared resource arbitration |
US8566539B2 (en) * | 2009-01-14 | 2013-10-22 | International Business Machines Corporation | Managing thermal condition of a memory |
US8898674B2 (en) * | 2009-12-23 | 2014-11-25 | International Business Machines Corporation | Memory databus utilization management system and computer program product |
US20110179248A1 (en) * | 2010-01-18 | 2011-07-21 | Zoran Corporation | Adaptive bandwidth allocation for memory |
CN101794263B (zh) * | 2010-02-03 | 2012-11-21 | 深圳市海思半导体有限公司 | 存储器的访问方法和访问控制器 |
US8650427B2 (en) * | 2011-03-31 | 2014-02-11 | Intel Corporation | Activity alignment algorithm by masking traffic flows |
US9377844B2 (en) | 2011-10-31 | 2016-06-28 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Memory refresh rate throttling for saving idle power |
TWI601006B (zh) | 2011-10-31 | 2017-10-01 | 聯想企業解決方案(新加坡)有限公司 | 記憶體控制系統與具有記憶體控制系統的電腦系統 |
CN103092743A (zh) * | 2011-11-02 | 2013-05-08 | 联芯科技有限公司 | 片外存储器带宽检测方法及装置 |
US8675444B2 (en) | 2011-12-08 | 2014-03-18 | International Business Machines Corporation | Synchronized command throttling for multi-channel duty-cycle based memory power management |
TWI508099B (zh) | 2013-01-28 | 2015-11-11 | Phison Electronics Corp | 工作時脈切換方法、記憶體控制器與記憶體儲存裝置 |
CN103985403B (zh) * | 2013-02-07 | 2017-04-05 | 群联电子股份有限公司 | 工作时钟切换方法、存储器控制器与存储器存储装置 |
JP6122682B2 (ja) | 2013-04-16 | 2017-04-26 | ルネサスエレクトロニクス株式会社 | 半導体装置及びそれを備えたプロセッサシステム |
US9851771B2 (en) * | 2013-12-28 | 2017-12-26 | Intel Corporation | Dynamic power measurement and estimation to improve memory subsystem power performance |
US9671767B2 (en) | 2014-05-14 | 2017-06-06 | Advanced Micro Devices, Inc. | Hybrid system and method for determining performance levels based on thermal conditions within a processor |
US9652019B2 (en) | 2014-06-02 | 2017-05-16 | Advanced Micro Devices, Inc. | System and method for adjusting processor performance based on platform and ambient thermal conditions |
US20160062421A1 (en) * | 2014-09-03 | 2016-03-03 | Lenovo (Singapore) Pte. Ltd. | Device side initiated thermal throttling |
US9864647B2 (en) * | 2014-10-23 | 2018-01-09 | Qualcom Incorporated | System and method for dynamic bandwidth throttling based on danger signals monitored from one more elements utilizing shared resources |
US20160110132A1 (en) * | 2015-01-09 | 2016-04-21 | Mediatek Inc. | Dynamic Adjustment Of Speed of Memory |
KR102316441B1 (ko) * | 2015-04-14 | 2021-10-25 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10198216B2 (en) * | 2016-05-28 | 2019-02-05 | Advanced Micro Devices, Inc. | Low power memory throttling |
DE102017119426B4 (de) * | 2017-08-24 | 2020-02-13 | Infineon Technologies Ag | Test und verwaltung von speicherzellen |
JP7102198B2 (ja) * | 2018-04-05 | 2022-07-19 | キヤノン株式会社 | 記憶手段を有する画像形成装置、画像形成装置の制御方法 |
US11086803B2 (en) * | 2018-10-05 | 2021-08-10 | Micron Technology, Inc. | Dynamically configuring transmission lines of a bus |
CN110275676B (zh) * | 2019-05-08 | 2023-03-21 | 镕铭微电子(济南)有限公司 | 一种固态硬盘的控制方法、装置及固态硬盘系统 |
US20230325241A1 (en) * | 2020-09-26 | 2023-10-12 | Intel Corporation | Hardware and configuration support for allocating shared resources |
US11531485B1 (en) * | 2021-09-07 | 2022-12-20 | International Business Machines Corporation | Throttling access to high latency hybrid memory DIMMs |
US20230305906A1 (en) * | 2022-03-24 | 2023-09-28 | Honeywell International S.R.O. | Systems and method for thermal management of computing systems |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5953685A (en) * | 1997-11-26 | 1999-09-14 | Intel Corporation | Method and apparatus to control core logic temperature |
CN1238050A (zh) * | 1996-09-16 | 1999-12-08 | 科罗拉利公司 | 一种在具有多系统总线的计算机系统中保持存储器相关性的系统和方法 |
US6021076A (en) * | 1998-07-16 | 2000-02-01 | Rambus Inc | Apparatus and method for thermal regulation in memory subsystems |
US6035360A (en) * | 1997-10-29 | 2000-03-07 | International Business Machines Corporation | Multi-port SRAM access control using time division multiplexed arbitration |
US6058450A (en) * | 1996-07-15 | 2000-05-02 | Micron Electronics, Inc. | Method and system for apportioning computer bus bandwith |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515523A (en) | 1991-06-03 | 1996-05-07 | Digital Equipment Corporation | Method and apparatus for arbitrating conflicts by monitoring number of access requests per unit of time in multiport memory systems |
DE69411203T2 (de) * | 1993-02-03 | 1998-10-29 | Asahi Glass Co Ltd | Monolithische feuerfeste Pulvermischung |
US5719800A (en) * | 1995-06-30 | 1998-02-17 | Intel Corporation | Performance throttling to reduce IC power consumption |
EP0831402A1 (en) | 1996-09-23 | 1998-03-25 | Hewlett-Packard Company | Dynamically configuring timing to match memory bus loading conditions |
US6154815A (en) * | 1997-06-25 | 2000-11-28 | Sun Microsystems, Inc. | Non-blocking hierarchical cache throttle |
US6233190B1 (en) * | 1999-08-30 | 2001-05-15 | Micron Technology, Inc. | Method of storing a temperature threshold in an integrated circuit, method of modifying operation of dynamic random access memory in response to temperature, programmable temperature sensing circuit and memory integrated circuit |
WO2001029694A2 (en) | 1999-10-22 | 2001-04-26 | Nokia Corporation | Method of and system and apparatus for presenting newspaper text in an electronic book format |
US6662278B1 (en) | 2000-09-22 | 2003-12-09 | Intel Corporation | Adaptive throttling of memory acceses, such as throttling RDRAM accesses in a real-time system |
-
2000
- 2000-09-22 US US09/667,649 patent/US6662278B1/en not_active Expired - Lifetime
-
2001
- 2001-09-20 DE DE60142986T patent/DE60142986D1/de not_active Expired - Lifetime
- 2001-09-20 AU AU2001291203A patent/AU2001291203A1/en not_active Abandoned
- 2001-09-20 EP EP20010971304 patent/EP1360590B1/en not_active Expired - Lifetime
- 2001-09-20 WO PCT/US2001/029694 patent/WO2002025448A2/en active Application Filing
- 2001-09-20 CN CN2006101688601A patent/CN1975634B/zh not_active Expired - Fee Related
- 2001-09-20 AT AT01971304T patent/ATE479941T1/de not_active IP Right Cessation
- 2001-09-20 CN CNB018193757A patent/CN100350400C/zh not_active Expired - Fee Related
-
2003
- 2003-07-28 US US10/628,990 patent/US7418561B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058450A (en) * | 1996-07-15 | 2000-05-02 | Micron Electronics, Inc. | Method and system for apportioning computer bus bandwith |
CN1238050A (zh) * | 1996-09-16 | 1999-12-08 | 科罗拉利公司 | 一种在具有多系统总线的计算机系统中保持存储器相关性的系统和方法 |
US6035360A (en) * | 1997-10-29 | 2000-03-07 | International Business Machines Corporation | Multi-port SRAM access control using time division multiplexed arbitration |
US5953685A (en) * | 1997-11-26 | 1999-09-14 | Intel Corporation | Method and apparatus to control core logic temperature |
US6021076A (en) * | 1998-07-16 | 2000-02-01 | Rambus Inc | Apparatus and method for thermal regulation in memory subsystems |
Non-Patent Citations (1)
Title |
---|
全文. |
Also Published As
Publication number | Publication date |
---|---|
US20040019738A1 (en) | 2004-01-29 |
EP1360590B1 (en) | 2010-09-01 |
US6662278B1 (en) | 2003-12-09 |
EP1360590A2 (en) | 2003-11-12 |
US7418561B2 (en) | 2008-08-26 |
DE60142986D1 (de) | 2010-10-14 |
CN1975634A (zh) | 2007-06-06 |
AU2001291203A1 (en) | 2002-04-02 |
WO2002025448A3 (en) | 2003-07-10 |
CN1537280A (zh) | 2004-10-13 |
WO2002025448A2 (en) | 2002-03-28 |
ATE479941T1 (de) | 2010-09-15 |
CN100350400C (zh) | 2007-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1975634B (zh) | 用于存储器访问的自适应节流的装置 | |
US9559982B2 (en) | Packet shaping in a network processor | |
KR101245823B1 (ko) | 데이터 전송동안 제한된 캐시 엑세스를 위한 시스템 및방법 | |
DE102008016181A1 (de) | Prioritätsbasiertes Drosseln für Leistungsaufnahme-Verarbeitungsleistung-Dienstgüte | |
US9680742B2 (en) | Packet output processing | |
US8611368B2 (en) | Controlling bandwidth reservations method and apparatus | |
US20030018863A1 (en) | Prioritized bus request scheduling mechanism for processing devices | |
CN103324592B (zh) | 一种数据迁移控制方法、数据迁移方法及装置 | |
US20150249604A1 (en) | Packet scheduling in a network processor | |
DE102007039431A1 (de) | Technik zur Speicherreferenzfilterung | |
CN101916231A (zh) | 使用存储属性的技术 | |
EP3929745A1 (en) | Apparatus and method for a closed-loop dynamic resource allocation control framework | |
DE10196440T5 (de) | Steuern des Zugriffs auf mehrere isolierte Speicher in einer isolierten Ausführungsumgebung | |
EP3929746A1 (en) | Apparatus and method for a resource allocation control framework using performance markers | |
CN108874324A (zh) | 一种访问请求处理方法、装置、设备及可读存储介质 | |
US20080052467A1 (en) | System for restricted cache access during information transfers and method thereof | |
CN106603256A (zh) | 一种流量控制方法及装置 | |
JPH02287648A (ja) | Lruキヤツシユ管理方法 | |
JPH0243636A (ja) | トレース情報記録方式 | |
DE112021000317B4 (de) | Teilweise computerprozessorkern-abschaltung | |
DE102022121123A1 (de) | Physikalisch verteilte Firewalls auf Steuerungsebene mit einheitlicher Softwareansicht | |
CN116501589A (zh) | 面向并行应用核间通信竞争的通信性能预测方法及装置 | |
JPS6140651A (ja) | 記憶装置へのフアイル割当て方法および割当て決定装置 | |
JPS63163951A (ja) | アクセス権制御方式 | |
KR20220058353A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100519 Termination date: 20170920 |
|
CF01 | Termination of patent right due to non-payment of annual fee |