具有预取的高速缓冲存储器的制作方法

文档序号:6553007阅读:260来源:国知局
专利名称:具有预取的高速缓冲存储器的制作方法
技术领域
本发明涉及处理系统领域,更具体地,涉及一种包括具有预取能力的高速缓冲存储器的处理器。
背景技术
处理器和外部存储器之间的数据传送通常消耗大量时间,并且已经发展了减小这种数据传送影响的技术。两种这样的技术包括使用高速缓冲存储器和使用预取。
为了易于参考和理解,在下文中将高速缓冲存储器的操作按照“读取”访问进行定义,其中处理器向存储器地址请求数据。本领域的普通技术人员应该理解,本发明也可以应用于“写入”访问操作。
使高速缓冲存储器比外部存储器更靠近处理器,通常位于与处理器相同的集成电路内。当处理器向存储器地址请求数据项目时,检查高速缓冲存储器以确定所述高速缓冲存储器是否包含与所述存储器地址相对应的数据。当高速缓冲存储器内容与存储器地址相对应时发生“高速缓冲存储器-命中”,否则发生“高速缓冲存储器-未命中”。
如果发生高速缓冲存储器-命中,则在高速缓冲存储器和处理器之间而不是在存储器和处理器之间实现了数据传送。因为高速缓冲存储器更靠近处理器,高速缓冲存储器-处理器传送所需的时间实质上小于存储器-处理器传送所需的时间。
如果发生高速缓冲存储器-未命中,将数据从存储器传送到高速缓冲存储器,然后传送到处理器。假设向存储器请求数据的未来请求将表现出空间或时间局部性,当将数据从存储器传送时,传送了“块”或一“行”数据。空间局部性与向靠近前一个被请求地址的地址请求数据的请求相对应。时间局部性与在前一个数据请求的较短时间之内针对相同数据的请求相对应。如果空间或时间局部性在应用中是普遍的,则通过来自相同块高速缓冲存储器的多次高速缓冲存储器-处理器传送实现的节约,对与管理经由高速缓冲存储器的数据传送相关联的开销进行补偿。
将预取用于通过试图预测向存储器的数据的未来请求,来减少存储器-高速缓冲存储器或存储器-处理器传送的影响。与处理器的操作并行地执行预测存储器存取,以试图当处理器执行所预测的请求时,使来自预测存储器地址的数据是可用的。在典型的预取系统中,监测处理器上的存储器存取操作以确定存储器存取趋势。例如,程序内的do循环通常通过使用通称为数据存取“步幅”的规律模式来调试数据。在循环的开始几个周期之后,预取系统可以确定步幅,并且精确地预测随后的数据请求。在典型的预取系统中,保存已确定步幅值的表,通过发生重复存取的程序地址来对这些值进行索引。无论何时程序计数器表示程序再次处于前一个重复存取的地址,则将表中与该地址相对应的步幅值用于从存储器中预取数据。预测未来的存储器存取的其他措施在本领域是常见的。依赖于具体的实施例,将已预测的数据加载到预取缓冲器中,或者加载到高速缓冲存储器中,为了比从存储器向处理器更快地向处理器传送。如果预测是正确的,通过将数据预加载到高速缓冲存储器,减小了高速缓冲存储器-未命中的可能性。
传统的高速缓冲存储器-预取组合需要大量开销和/或表现出较低效率。在高速缓冲存储器变满之后,每一次将高速缓冲存储器块加载到高速缓冲存储器时,必须盖写(overwrite)已有的高速缓冲存储器块。如果正在被盖写的块已经用于写入意欲用于存储器的数据,则在新块盖写该数据之前,必须将已有的块复制到存储器。因此,每一次错误的预测具有这样的可能性破坏了可能已经通过在高速缓冲存储器中具有盖写块而实现的有益效果,并且消耗了不需要的总线带宽和功率,用于将处理器没有使用的数据传送到高速缓冲存储器。
大体上,用于预取的预测精确性涉及专用于确定可预测存储器存取模式的资源量。因此,为了避免由错误预测引起的潜在高速缓冲存储器-效率有益效果的损失,典型地需要相当大量的预测逻辑电路和用于步幅预测值的存储器,而这对电路面积和功率消耗具有相应影响。另外,如果将软件用于实现一些或全部预取过程,则将附加的处理器周期用于执行该软件。
此外,当确定了已预测的存储器存取时,必须检查高速缓冲存储器以确定是否已经将所预测的存储器地址加载到高速缓冲存储器中。因此,对高速缓冲存储器的每一次重复的预测存取需要确定是否发生高速缓冲存储器-命中或高速缓冲存储器-未命中这两种确定。

发明内容
本发明的目的是提供一种有效的高速缓冲存储器-预取组合。本发明另一个目的是提供一种不需要大量电路或软件编程的高速缓冲存储器-预取组合。本发明另一个目的是提供一种与已有高速缓冲存储器或预取结构兼容的高速缓冲存储器-预取组合。
通过将预取比特与每一个高速缓冲存储器块相关联,并且基于该比特的状态来管理高速缓冲存储器-预取操作,来实现这些目的和其他目的。通过使每一个应用能够识别规律重复的存储器存取可能处于的存储器区域,例如视频应用中的帧存储器,来获得另外的效果。针对这些存储器区域中的每一个,所述应用还识别可能的步幅值,例如帧存储器中的数据的线宽。将预取限制在所识别的区域内,并且将预取比特用于从这些区域中识别块,并且用于限制重复的高速缓冲存储器-命中/未命中的确定。


将作为示例并且参考附图来更详细地解释本发明,其中图1示出了根据本发明的处理系统的示例方框图。
图2示出了根据本发明的预取控制器的示例流程图。
在全部附图中,相同的附图标记指代相同的元件,或执行基本相同功能的元件。附图用于说明性目的,而不意欲限制本发明的范围。
具体实施例方式
图1示出了根据本发明的处理系统的示例方框图。该处理系统包括处理器150和高速缓冲存储器120,将所述高速缓冲存储器120配置用于向外部存储器110发送和从外部存储器110接收数据,并且用于响应于来自处理器150的存储器存取请求,将至少一些数据传送到处理器150。
预取控制器130也包括在本发明的处理系统中,并且可以将其包括在高速缓冲存储器120中,或如图1所示,实现为与高速缓冲存储器120相连的分离模块。
根据本发明的一个方面,高速缓冲存储器120的每一个块或线125包括预取参数126,由控制器130使用所述预取参数126以确定是否预取与块125相对应的其他数据。在优选实施例中,预取参数126是单独的二进制数字(比特),尽管也可以将多比特参数用于限定预取选项的各种组合或不同的预取优先权。图2的流程图示出了控制器130对参数126的具体使用,但是本发明不局限于图2所示的方法。
本发明的前提在于被存取数据的位置可以作为是否发生对存储器的规律重复(即,可预测的)存取的识别。通常,将预取参数126用于基于高速缓冲存储器120中的块125中的数据,向控制器130提供处理器150是否可能要存取已预取的数据的识别。在参数126的多比特实施例中,参数的值可以与可能性的定量估计相对应;在单比特实施例中,参数的值可以与简单的可能/不可能或可能/未知的确定相对应。如上所述,与传统的步幅预测表相反,对存储器的规律重复存取的可能性是基于正在被存取的存储器的块,而不是正在被执行的程序代码段。
还可以将参数126用于识别已经执行了预取的块,从而避免了在存取每一个块内数据项目时,需要执行多次高速缓冲存储器命中/未命中的确定。
根据本发明另一个方面,基于Jan-Willem van de_Waerdt 2002年5月1日递交的美国专利申请公开US/2003/0208660“MEMORY REGIONBASED DATAPRE-FETCHING”中公开的原理,将其结合在此作为参考,应用程序可以通过识别其中可能发生可预测存取的存储器110中的区域115,便于确定高速缓冲存储器中的数据块125是否有可能确保其他数据的预取。例如,在视频处理应用中,应用程序可以将存储器110中用于帧缓冲的区域识别为适合于预取的区域115。使用传统技术,应用程序在预定寄存器或存储器位置中存储这些预取区域115的每一个的边界,并且预取控制器130将所请求的存储器地址与这些边界进行比较,以确定所请求的存储器地址是否在预取区域115内。
在示例实施例中,当执行应用的处理器150首先存取限定区域115内的数据时,执行预取。使用参数126,将随后从区域115传送到高速缓冲存储器120的每一个块125识别为用于确保预取的块。当存取每一个所识别的块125时,执行与其相应的预取块的预取。
根据本发明另一方面,应用程序还便于预取步幅值的确定。在典型实施例中,应用程序通过将与每一个预取区域115相关联的步幅存储在预定寄存器或存储器位置中,直接提供预取步幅值。例如,在其中通常存取相邻垂直图像元素(像素)、并且存储器中的数据被存储为象素的连续水平线的视频应用中,应用程序可以存储水平线宽作为预取步幅值。如果将存储器中的数据存储为矩形小块,应用程序可以存储小块尺寸作为预取步幅值。
可选地,当应用程序运行时,可以使用本领域普遍使用的预测技术,但是将其修改为存储器位置依赖的而不是程序代码依赖的预测技术,探索性地确定表现出可预测存储器存取的存储器区域115和/或与每一个区域115相关联的步幅值。
图2示出了根据本发明的预取控制器的示例流程图,可以由图1的预取控制器130来使用。在210处,接收针对位于地址A处的数据项目的存储器请求。在215处,进行高速缓冲存储器命中/未命中确定。如果确定高速缓冲存储器-命中,即表示被请求的数据项目位于高速缓冲存储器中,则在220处,返回相应的数据项目,从而允许图1的处理器150继续其操作,而预取控制器确定是否从外部存储器110中预取数据。
根据本发明的一个方面,在235处,预取控制器检查以确定对被请求地址A的存取之后是否可能有针对与地址A有关的预取存储器位置处的数据的请求。如上所述,与地址A相对应的块125相关联的预取参数126提供了这种可能性的表示。在优选实施例中,预取参数126是二进制数字,其中“0”表示预取不可能是有效的,而“1”表示预取可能是有效的,或者可能性是未知的,并且应该假设是可能的,除非收集到证据确定预取不可能是有效的。
如果在215处确定了高速缓冲存储器-未命中,在225处从外部存储器中得到与地址A相对应的数据块,并且在230处设定与该高速缓冲存储器块相对应的预取参数,以表示应该针对该块执行用于预取的检查。在220处,从高速缓冲存储器块中提取与地址A相对应的数据项目,并且将其返回到处理器,从而允许图1的处理器150继续其操作,而在235处,预取控制器确定是否从外部存取110中预取数据。
本领域的普通技术人员应该理解,除了块230之外的块215-235与传统高速缓冲存储器控制器的操作相对应,并且为了完整性而呈现在此。如果使用传统的高速缓冲存储器控制器,可以将预取控制器130配置用于使用高速缓冲存储器120的命中/未命中输出,在报告未命中时,选择性地执行块230,然后继续块235。
如果在235处,预取参数表示预取可能是有效的,预取控制过程分支到判决块240;否则,如果预取参数表示预取不可能是有效的,在290处,控制器只返回以等待来自处理器的另一个存储器请求。
在240处,控制器确定与地址A相对应的预取地址是否是可用的。如上所述,在本发明的优选实施例中,将应用程序配置用于识别其中预取可能是有效的外部存储器的区域。可选地,使用与传统的步幅预测分析类似的技术,对在前的存储器存取活动进行存取,以识别/预测这种区域。如果确定地址A不具有相关联的预取数据,在280处,如以下所讨论的,过程继续。
如果在240处,确定地址A具有相关联的预取数据,则在245处检查预取资源的可用性。如果在245处,此时不能执行预取,则在290处,过程只返回以等待另一个存储器请求,并且重复以上过程。
如果在245处,预取资源当前是可用的,则在250处,优选地,通过添加与A所处的预定预取区域相关联的步幅值,来确定预取数据的地址P。可选地,可以将前述步幅预测分析技术用于估计步幅值。如果没有使用使应用程序可以定义步幅值的优选技术,则还可以使用用于确定与地址A相对应的预取地址P的其他传统技术。
在255处,评定高速缓冲存储器以确定预取地址P是否已经包含在高速缓冲存储器中(高速缓冲存储器-命中)。如果预取地址已经在高速缓冲存储器中,则不需要进行预取,并且过程继续到280,这将在以下讨论。否则,在260处,从存储器中得到与预取地址P相对应的预取数据的块,并且将其存储在高速缓冲存储器中。在270处,对与包含地址P的高速缓冲存储器块相对应的预取参数(图1的126)进行设定,以表示当通过来自处理器的存储器请求对地址P进行存取时,预取可能是有效的。
在280处,对与被请求的存储器地址A相对应的高速缓冲存储器块相关联的预取参数进行重新设定,以表示当处理器请求来自存储器地址A的、或与存储器地址A相对应的高速缓冲存储器块之内的任意存储器地址的数据项目时,预取不可能是有效的。注意,预取不可能有效的原因是或者因为已经确定地址A不具有用于预取的相关联的地址(经由240),或者是因为已经将A的相关联预取地址P加载到高速缓冲存储器中(经由255或255-260)。因此,一旦做出了这些确定中的任意一个,避免了针对与地址A相对应的高速缓冲存储器块之内的全部地址的预取开销。
在290处,过程返回,等待处理器对于存储器存取的另一个请求。
前面仅示出了本发明的原理。因此,应该理解的是,本领域的普通技术人员能够设计各种配置,尽管这里没有清楚地描述或示出这些配置,但是所述配置具体实现了本发明的原理,并且因此在本发明的精神和范围之内。例如,图1示出了其中将预取参数26存储在高速缓冲存储器120之内的实施例。本领域的普通技术人员应该认识到,可以将预取控制器130配置用于包含这些预取参数,从而避免必须重新设计传统的高速缓冲存储器结构。按照类似的方式,作为以预测方式识别区域115的边界以识别可能要存取的存储器区域的可选方式,可使用比特表来识别这些区域,以存储器地址的高位比特作为索引。按照类似的方式,可以将传统的高速缓冲存储器标记(通常是存储器地址的高位比特)用于对表进行索引,所述表包含识别与以预测方式可能要进行存取的区域的比特、以及表示针对所述块预取是否可能是有效的预取参数。对于本领域普通技术人员,考虑到本公开,这些和其他系统结构和优化特征将是显而易见的,并且将包括在所附权利要求的范围之内。
在解释这些权利要求时,应该理解的是a)词语“包括”不排除给定权利要求所列的元件或动作之外的其他元件或动作的存在;b)单数形式的元件不排除多个该元件的存在;c)权利要求中的任意附图标记并不限制其范围;d)几个“装置”可以由相同的项目、硬件或软件实现的结构或功能来表示;e)每一个所公开的元件可以包括硬件部分(例如,包括分立的和集成的电子电路)、软件部分(例如,计算机程序)、及其组合;f)硬件部分可以包括模拟部分和数字部分之一或两者;g)可以将任意所公开的设备或部分组合在一起,或分离成另外的部分,除非有特别说明;h)并不要求特定的动作顺序,除非有特别说明;以及i)术语“多个元件”包括两个或更多所要求的元件,并不暗示元件个数的具体范围,即多个元件可以是最少两个元件。
权利要求
1.一种处理系统,包括处理器(150),配置用于从存储器(110)接收数据;高速缓冲存储器(120),可操作地连接在处理器(150)和存储器(110)之间,配置用于从存储器(110)接收数据,并且将所述数据传送到处理器(150);以及预取控制器(130),可操作地与高速缓冲存储器(120)相连,配置用于基于与从存储器(110)接收到的数据相关联的预取参数(126)的状态,对将要从存储器(110)传送到高速缓冲存储器(120)的预取数据进行识别。
2.根据权利要求1所述的处理系统,还包括存储器(110)。
3.根据权利要求1所述的处理系统,其中,预取参数(126)是二进制数字,用于识别处理器(150)是否可能要请求预取数据中的数据项目。
4.根据权利要求3所述的处理系统,其中,预取参数(126)的状态是基于来自存储器(110)的数据是否来自存储器(110)的一个或更多已定义的预取区域(115)。
5.根据权利要求1所述的处理系统,其中,对预取数据进行识别也是基于与从存储器(110)接收到的数据相关联的步幅值。
6.根据权利要求5所述的处理系统,其中,所述步幅值与存储器(110)的已定义预取区域(115)相关联。
7.根据权利要求5所述的处理系统,其中,基于先前对从存储器(110)接收到的数据的存取来确定所述步幅值。
8.一种高速缓冲存储器系统(120),包括高速缓冲存储器,包括多个高速缓冲存储器块(125);预取控制器(130),可操作地与高速缓冲存储器相连,配置用于基于与多个高速缓冲存储器块(125)的每一个块(125)相关联的预取参数(126),将预取数据从外部存储器(110)传送到所述高速缓冲存储器。
9.根据权利要求8所述的高速缓冲存储器系统(120),其中,所述预取参数(126)是二进制数字,用于识别可操作地与高速缓冲存储器系统(120)相连的处理器(150)是否可能要请求预取数据中的数据项目。
10.根据权利要求8所述的高速缓冲存储器系统(120),其中,所述预取参数(126)的状态是基于相应的块(125)是否是从所述外部存储器(110)的已定义的预取区域(115)传送来的。
11.根据权利要求10所述的高速缓冲存储器系统(120),其中,所述高速缓冲存储器系统(120)基于与外部存储器(110)的已定义的预取区域(115)相关联的步幅值来对预取数据进行识别。
12.一种将预取数据从外部存储器(110)传送到高速缓冲存储器系统(120)的方法,包括从处理器(150)接收(210)针对数据项目的请求;对包含所述数据项目的高速缓冲存储器系统(120)的高速缓冲存储器块(125)进行识别(215);基于与所述高速缓冲存储器块(125)相关联的预取参数(126)的状态,将所述预取数据传送(260)到所述高速缓冲存储器系统(120)。
13.根据权利要求12所述的方法,还包括如果(215)所述数据项目未位于所述高速缓冲存储器系统(120)内,将数据块从所述外部存储器(110)传送(225)到所述高速缓冲存储器块(125)。
14.根据权利要求12所述的方法,其中,将所述预取数据传送(260)到所述高速缓冲存储器系统(120)还基于(240)所述数据块是否与所述外部存储器(110)的已定义的预取区域(115)相关联。
15.根据权利要求12所述的方法,其中,所述预取参数(126)的状态是基于(240-280)所述数据块是否与所述外部存储器(110)的已定义的预取区域(115)相关联。
16.根据权利要求15所述的方法,还包括基于与所述已定义的预取区域(115)相关联的步幅值,对所述预取数据进行识别(250)。
17.根据权利要求12所述的方法,还包括确定与来自所述外部存储器(110)的所述数据块相关联的步幅值,并且基于所述步幅值对所述预取数据进行识别(250)。
全文摘要
预取比特(126)与高速缓冲存储器(120)的每一个块(125)相关联,并且高速缓冲存储器预取操作的管理是基于该比特(126)的状态。通过使每一个应用能够对可能要进行规律重复的存储器存取的存储器区域(115)进行识别,例如识别视频应用中的帧存储器,来获得进一步的效率。针对这些存储器区(115)的每一个,应用还识别可能的步幅值,例如帧存储器中数据的线长。将预取局限于已识别的区域(115),并且将预取比特(126)用于对来自这些区域的块(125)进行识别,并且用于限制已重复的高速缓冲存储器命中/未命中确定。
文档编号G06F12/08GK101057224SQ200580038887
公开日2007年10月17日 申请日期2005年11月15日 优先权日2004年11月15日
发明者让-威廉A·范德韦尔特, 让-保罗·范因特格姆 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1