用于将数据推送到处理器高速缓存中的方法和设备的制作方法

文档序号:6657127阅读:239来源:国知局
专利名称:用于将数据推送到处理器高速缓存中的方法和设备的制作方法
技术领域
本公开一般涉及计算系统中的高速缓存体系结构,更确切地涉及将数据推送到处理器高速缓存中的方法和设备。
背景技术
从存储器系统检索数据的开销相当大地影响具有大代码和/或数据足印的程序的执行时间。存储器开销会实质性地增加总执行时间。现代处理器通常在硬件中执行预取,以便提前将数据提取到处理器高速缓存中。与处理器关联的预取硬件跟踪存储器存取的空间和时间存取模式,并代处理器向系统存储器发出预期请求。这有助于在处理器上执行的程序实际需要数据时减少存储器存取的等待时间。对于本公开,词“数据”将指指令和传统的数据。由于预取,可以在高速缓存中找到数据,并且等待时间常常远小于系统存储器存取等待时间。通常,此类预取硬件随同每个处理器分布。如果计算系统中不是所有处理器(例如数字信号处理器(DSP))都具有预取硬件,则此类处理器将无法执行基于硬件的预取。这导致处理器之间的性能不平衡。


通过下文对本公开的详细描述,本公开的特征和优点将变得显而易见,其中图1是图示其存储器控制器可以主动将数据推送到处理器的高速缓存中的单处理器计算系统的示意图;图2是图示单处理器计算系统中使用存储器控制器将数据推送到处理器高速缓存的示例过程的流程图,其中假定采用MOESI高速缓存协议;图3是图示其存储器控制器可以主动将数据推送到处理器的高速缓存中的多处理器计算系统的示意图;图4和图5图示多处理器计算系统中使用存储器控制器将数据推送到处理器高速缓存的流程图,其中假定采用MOESI高速缓存协议;以及图6是图示可以使用集中式推送机构主动将数据推送到处理器的高速缓存的计算系统的示意图。
具体实施例方式
本发明的实施例包括一种使用集中式推送机构来将数据推送到处理器高速缓存的方法和设备。例如,存储器控制器可适于作为单处理器计算系统或多处理器计算系统中用于将数据推送到处理器高速缓存的集中式推送机构。集中式推送机构可以包括请求预测逻辑用于基于该处理器的存储器存取模式来预测处理器对代码/数据的请求。集中式推送机构还可以包括预取数据缓冲器,以便临时存储预测为处理器所需要的代码/数据。此外,集中式推送机构还可以包括推送逻辑,用于发出推送请求并主动将存储在预取数据缓冲器中的代码/数据推送到系统互连总线上。目标处理器可以接受集中式推送机构发出的推送请求,并从系统互连总线认领代码/数据。根据代码/数据的高速缓存行在系统中它自己的高速缓存和/或其他处理器的高速缓存中的状态,目标处理器可以将代码/数据置于它自己的高速缓存中或丢弃该代码/数据。而且,推送请求可以导致系统中所有高速缓存中的高速缓存行的状态的变化,以确保高速缓存一致性。
在本说明书中对本发明的“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定功能特征、结构或特征包含在本发明的至少一个实施例中。因此,本说明书中多个不同位置中出现的短语“在一个实施例中”不一定全指同一个实施例。
图1说明其存储器控制器可以主动将数据推送到处理器的高速缓存中的单处理器计算系统100。系统100包括耦合到互连(例如总线)130的处理器110。高速缓存120可以与处理器110关联。在一个实施例中,处理器110可以是可从Intel公司获得的Pentium系列处理器中的处理器,包括例如Pentium4处理器、Intel公司的XScale处理器、Intel公司的PentiumM处理器等。或者,也可以使用其他制造商的其他处理器。在另一个实施例中,处理器110可以是数字信号处理器(DSP)。
高速缓存120可以与处理器110关联。在一个实施例中,可以将高速缓存120与处理器集成在相同的集成电路中。在另一个实施例中,高速缓存120可以与处理器在物理上分离。高速缓存120被设置成使处理器可以在高速缓存中访问代码/数据比在系统100中的存储器170中访问数据更快。高速缓存120可以包括不同级(例如,三级;处理器对第一级的存取等待时间通常比对第二级或第三级的存取等待时间短;以及处理器对第二级的存取等待时间通常比对第三级的存取等待时间短)。
计算系统100可以与芯片组140耦合,该芯片组140可以包括存储器控制器150(图1是包含未示出的电路的示意图)。存储器控制器150连接到存储器170,用于处理发往和来自存储器170的数据通信。存储器170可以存储系统中包括的处理器110或任何其他装置使用或执行的数据。对于一个实施例,主存储器150可以包括一个或多个动态随机存取存储器(DRAM)、只读存储器(ROM)、闪速存储器等。存储器控制器可以是存储器控制集线器(MCH(图1中未示出)的一部分,它可以经由集线器接口耦合到输入/输出(I/O)控制集线器(ICH)(图1中未示出)。在一个实施例中,MCH和ICH都可以包括在芯片组140中。ICH可以包括I/O控制器160,I/O控制器160提供与计算系统100内的I/O装置180(例如180A、....180M)的接口。I/O装置180可以通过I/O总线连接到I/O控制器。一些I/O装置可以经由无线连接连接到I/O控制器160。
存储器控制器150可以包括推送逻辑152、预取数据缓冲器154和预取预测逻辑156。预取预测逻辑156可以分析处理器110的存储器存取模式(时间和空间),并基于处理器的存储器存取模式预测处理器的将来数据请求。根据预取预测逻辑的预测,可以从存储器170移动预测为处理器所需要的数据,并将其临时存储在预取数据缓冲器154中。推送逻辑可以向处理器发出请求以将数据从预取数据缓冲器154推送到高速缓存120。可以为要推送的数据的每个高速缓存行来发送推送请求。如果处理器110接受推送请求,则推送逻辑152可以将数据放到总线130上,以便处理器可以从总线认领该数据;否则推送逻辑152可以向处理器发出推送请求来重试。
计算系统100可以运行高速缓存一致性协议。在一个实施例中,可以使用4状态高速缓存一致性协议、MESI协议。根据MESI协议,可以将高速缓存行标记为四个状态的其中一M(已修改)、E(独占)、S(共享)和I(无效)。高速缓存行的M状态指示该高速缓存行已被修改,以及底层数据(例如存储器中对应的数据)比该高速缓存行旧,并因此不再是有效的。高速缓存行的E状态指示该高速缓存行仅存储在此高速缓存中,并且尚未被写访问更改。高速缓存行的S状态指示可以将该高速缓存行存储在系统的其他高速缓存中。高速缓存行的I状态指示该高速缓存行是无效的。在另一个实施例中,可以使用5状态高速缓存一致性协议、MOESI协议。MOESI协议具有比MESI协议多一个的状态-O(拥有)。但是,MOESI协议中的S状态不同于MESI协议中的S状态。根据MOESI协议的S状态,高速缓存行可以存储在系统的其他高速缓存中,但是已被修改并且不与存储器中的底层数据一致。该高速缓存行仅能由一个处理器修改,并且在该处理器的高速缓存中具有O状态,但是在其他处理器的高速缓存中具有S状态。在下文的描述中,将使用MOESI协议作为示范高速缓存一致性协议。但是,本领域技术人员将认识到相同的原理还可以应用于任何其他高速缓存一致性协议、例如MESI或MSI(已修改、共享和无效)高速缓存一致性协议。
计算系统中的总线130可以是前端总线(FSB)或任何其他类型的系统互连总线。当存储器控制器150中的推送逻辑152将数据放到总线130上时,它还包括数据的目的地标识(“目标ID”)。连接到总线130且其ID与推送的数据的目标ID匹配的处理器(例如处理器110)可以从总线认领该数据。在一个实施例中,总线可以具有“推送”功能,根据此功能,总线事务的地址部分可以包含指示是否启用“推送”功能的字段(例如值1表示启用而值“0”表示禁用);以及如果“推送”功能被启用,则可以使用字段或字段的一部分来指示被推送的数据的目的地标识(“目标ID”)。具有“推送”功能的总线还可以提供命令(例如Write_Line)来对总线执行高速缓存行写。因此,在Write_Line事务期间设置了“推送”字段时,如果与事务一起提供的目标ID与处理器自己的ID匹配,则总线上的处理器将认领该事务。一旦目标处理器认领事务,则存储器控制器150的推送逻辑152可以将数据从预取数据缓冲器154提供到高速缓存120。
当处理器110从总线130认领推送的高速缓存行时,处理器可以决定将高速缓存行置于高速缓存120中以便不破坏高速缓存一致性,或者可以不这样做。处理器110需要检查高速缓存中是否存在该高速缓存行(即,该数据对于高速缓存是否是新的)。如果该高速缓存行对于高速缓存120是新的,则处理器可以将该高速缓存行置于高速缓存中;否则,处理器需要进一步检查该高速缓存行在高速缓存120中的状态。如果高速缓存120中的高速缓存行处于I状态,处理器110可以将该高速缓存行替换为从总线认领的高速缓存行;否则,处理器110将丢弃所认领的高速缓存行而不将其写入到高速缓存120。
虽然图1图示可以使用存储器控制器来将数据推送到处理器高速缓存的单处理器计算系统,但是本领域技术人员将认识到还可以利用多种其他装置。
图2图示在单处理器计算系统中使用存储器控制器将数据推送到处理器高速缓存中的示范过程。在框205中,可以分析处理器的存储器存取模式(空间和时间)。在框210中,可以基于在框205中获得的分析结果作出处理器的将来数据请求的预测。在框215中,可以将根据框210作出的预测处理器将来需要的数据从存储器移到存储器控制器中的缓冲器(例如图1所示的预取数据缓冲器154)。在框220中,可以发出将需要的数据推送到与处理器关联的高速缓存(例如图1所示的高速缓存120)中的请求。可以为需要的数据的每个高速缓存行发出一个推送请求。
在框225中,可以作出处理器是否接受框220中发出的推送请求的判断。可以设置高速缓存行写事务的“推送”字段(即启用“推送”功能),并可以将目标ID包含在该事务中。如果处理器自己的ID与该事务中的目标ID匹配,则该处理器可以认领利用“推送”的该高速缓存行写事务。如果处理器不接受推送请求,则在框230中执行重试指令,以便可以在框220重发推送请求。如果处理器接受该推送请求,则可以在框235中作为写数据事务将要推送的数据的高速缓存行放到连接存储器控制器和处理器的总线上。可以将目标ID包含在写数据事务中。这里假定利用“推送”的写操作作为具有请求阶段和数据阶段的拆分的事务来执行。但是,也可能具有支持利用“推送”的直接写操作的互连,其中在地址(请求)阶段期间或紧随其后提供推送数据。
在框245中,可以检查处理器的高速缓存以查看所认领的高速缓存行是否存在。一方面,如果所认领的高速缓存行对于高速缓存是新的(即高速缓存中不存在),则在框260中,将所认领的高速缓存行置于高速缓存中且将其状态设为E。另一方面,如果高速缓存中存在该认领的高速缓存行,则可以进一步检查高速缓存中存在的高速缓存行的状态。如果该状态是I(即无效),则在框250中将高速缓存中的此高速缓存行替换为所认领的高速缓存行且将其状态设为E。如果高速缓存中的高速缓存行的状态是M、O、E或S(即处理器的命中),则在框255处理器可以丢弃所认领的数据,而不更改高速缓存行在高速缓存中的状态。
虽然上文描述中假定采用全高速缓存推送,但是本领域技术人员将认识到所公开的技术并且可以容易通过修改或不作修改地将它们应用于任何局部高速缓存行推送。
图3说明其存储器控制器可以主动将数据推送到处理器的高速缓存中的多处理器计算系统300。系统300与图1所示的计算系统100相似。不同于包括单个处理器的系统100,系统300包括多个处理器110A、...、110N。每个处理器具有与之关联的高速缓存(例如120A、...、120N)。高速缓存(例如120A)设置为使它关联的处理器可以比访问存储器170中的数据更快地访问高速缓存中的数据。所有处理器通过总线130彼此连接,并且通过总线130耦合到芯片组140,芯片组140包括存储器控制器150和I/O控制器160。
存储器控制器150可以包括推送逻辑152、预取数据缓冲器154和预取预测逻辑156。在系统300中,预取预测逻辑156可以分析所有处理器110A至110N的存储器存取模式(时间和空间),并可以基于其存储器存取模式预测每个处理器的将来数据请求。基于此类预测,可以从存储器170移动可能被每个处理器请求的数据并将其临时存储在预取数据缓冲器154中。推送逻辑可以发出请求以将数据从预取数据缓冲器154推送到请求处理器的高速缓存120。可以为要推送的数据的每个高速缓存行发出一个推送请求。可以经由总线130将包含目标处理器的标识(“目标ID”)的推送请求发送到所有处理器,但是仅其标识与该目标ID匹配的目标处理器需要响应该推送请求。如果目标处理器接受推送请求,则推送逻辑152可以将高速缓存行放到总线130上,以便目标处理器可以从总线认领该高速缓存行;否则,推送逻辑152可以向目标处理器发出推送请求来重试。当多个处理器彼此协作并执行相同的任务时,预取预测逻辑可以就所有处理器可能需要什么数据作出全局性的预测。基于此类全局性的预测,可以由推送逻辑152将可能被所有处理器需要的数据推送到所有处理器的高速缓存(例如,将数据广播到所有处理器)。
与结合图1描述的内容相似,推送逻辑152可以使用任何系统互连总线事务来将数据推送到目标处理器的高速缓存。如果总线具有“推送”功能,则推送逻辑152可以使用此类功能来推送数据。目标处理器可以从总线认领数据,但是目标处理器可以确实地将数据置于它的高速缓存中以便不破坏多个处理器之间的高速缓存一致性,或者目标处理器可以不将数据置于它的高速缓存中以便不破坏多个处理器之间的高速缓存一致性。目标处理器是否确实地将数据置于它的高速缓存中不仅取决于目标处理器的高速缓存中相关高速缓存行的状态,而且还取决于非目标处理器的高速缓存中对应高速缓存行的状态。下文将结合图4和图5论述在多处理器计算系统中由存储器控制器将数据推送到处理器高速缓存中时如何保持高速缓存一致性的详细描述。
图4和图5图示在多处理器计算系统中使用存储器控制器将数据推送到处理器高速缓存中的示范过程。在框402中,可以分析每个处理器的存储器存取模式(空间和时间)。在框408中,可以基于在框402中获得的分析结果作出每个处理器的将来数据请求的预测。如果多个处理器彼此协作并执行相同的任务,可以就所有处理器可能需要什么数据作出全局性的预测。在框412中,可以将根据框408作出的预测每个处理器可能请求的数据从存储器移到存储器控制器中的缓冲器(例如图3所示的预取数据缓冲器154)。在框416中,可以发出将处理器需要的数据推送到与该处理器关联的高速缓存(例如图3所示的高速缓存120B)中的请求。可以为数据的每个高速缓存行发出一个推送请求。可以经由系统互连总线发送推送请求,并且推送请求可以到达连接到总线的所有处理器,但是仅其ID与该推送请求中所含的目标ID匹配的处理器将响应该推送请求。目标处理器可以接受或可以不接受该推送请求。
在框420中,可以作出目标处理器是否接受框416中发出的推送请求的决定。可以设置高速缓存行写事务的“推送”字段(即启用“推送”功能),并可以将目标ID包含在该事务中。如果处理器自己的ID与该事务中的目标ID匹配,则该处理器可以认领利用“推送”的该高速缓存行写事务。如果目标处理器不接受推送请求,则在框424中执行重试指令,以便可以在框416重发推送请求。如果目标处理器接受该推送请求,则可以在框428中作为写数据事务将要推送的数据的高速缓存行放到连接存储器控制器和处理器的总线上。这里假定利用“推送”的写操作作为具有请求阶段和数据阶段的拆分的事务来执行。但是,也可能具有支持利用“推送”的直接写操作的互连,其中在地址(请求)阶段期间或紧随其后提供推送数据。在确定将认领的高速缓存行置于目标处理器的高速缓存中之前,需要执行测量以确保目标处理器和非目标处理器的所有高速缓存之间的高速缓存一致性。
在框436中,可以检查目标处理器的高速缓存以查看是否存在从总线认领的推送的高速缓存行。一方面如果高速缓存中存在所认领的高速缓存行,则可以进一步检查高速缓存中的高速缓存行的状态。如果该高速缓存行的状态是M、O、E或S(即处理器的命中),则在框440目标处理器可以丢弃所认领的高速缓存行;并且该高速缓存行在高速缓存中的状态保持不变。另一方面如果所认领的高速缓存行对于高速缓存是新的,或者不是新的但高速缓存中的该高速缓存行具有I状态,则在图5的框444执行进一步的动作,以检查所认领的高速缓存行对于任何其他高速缓存是否是新的,并在它对于任何其他高速缓存均不是新的情况下检查该高速缓存行在任何其他高速缓存中的状态。
如果所认领的高速缓存行对于所有非目标处理器的高速缓存都是新的,则在图5的框480中可以将所认领的高速缓存行置于目标处理器的高速缓存中且将其状态设为E。如果非目标处理器的一个或多个高速缓存中存在所认领的高速缓存行,但是这些高速缓存行在所有那些高速缓存中的状态是I,则在框448中可以使用所认领的高速缓存行替换目标处理器高速缓存中它对应的高速缓存行且将被替换的高速缓存行设置新的E状态。
如果非目标处理器高速缓存中存在所认领的高速缓存行且具有E或S状态,而且非目标处理器都不具有处于M或O状态的高速缓存行,则在框452可以使用所认领的高速缓存行替换目标处理器高速缓存中它对应的高速缓存行且将替换的高速缓存行设置S状态。在框456中,将高速缓存行在非目标处理器中的状态从E更改为S。
如果一个非目标处理器高速缓存中存在所认领的高速缓存行且状态为M或O,则这意味着至少一个非目标处理器高速缓存具有比存储器更新版本的高速缓存行。在此情况中,在框460中可以发送用于重试发出推送请求的请求。在框464中,可以将具有M/O状态的对应高速缓存行从非目标处理器高速缓存写回到存储器控制器中的缓冲器(例如图3所示的预取数据缓冲器154)。作为写回的结果,在框468中将一个非目标处理器高速缓存中具有M状态的对应高速缓存行的状态从M更改为O。在框472中,可以从存储器控制器中的缓冲器检索从框468写回的高速缓存行,并使用它来替换目标处理器高速缓存中的对应高速缓存行。在框476中,可以将目标处理器高速缓存中替换为写回的高速缓存行的高速缓存行的状态设为S。
虽然上文描述中假定采用全高速缓存推送,但是本领域技术人员可以认识到所公开的技术可以容易应用于任何局部高速缓存行推送。
虽然图1和图3说明的是使用存储器控制器来将数据推送到处理器高速缓存中的计算系统,但是本领域技术人员将认识到还可以利用多种其他装置。例如,可以使用图6所示的集中式推送机构来达到相同或相似的目的。
图6说明可以使用集中式推送机构主动将数据推送到处理器的高速缓存的计算系统600。计算系统600包括两个处理器610A和610B、存储器620A和620B、集中式推送机构630、I/O集线器(IOH)650、外围组件互连(PCI)总线660以及耦合到PCI总线660的至少一个I/O装置670。每个处理器(例如610A)可以包括一个或多个处理核611A、611B、...、611M。每个处理核可以运行需要来自存储器(例如620A或620B)的数据的程序。在一个实施例中,每个处理核可以具有它自己的高速缓存、诸如附图所示的613A、613B、...、613M。在另一个实施例中,一些或所有处理核可以共享高速缓存。通常处理核可以比它访问存储器620A或620B中的数据更有效率地访问它的高速缓存中的数据。每个处理器(例如610A)还可以包括耦合到存储器(例如620A)用于控制发往/来自存储器的业务的存储器控制器(例如615)。此外,处理器还可以包括链路接口617,用于提供处理器、集中式推送机构630和IOH 650之间的点到点连接(例如640A和640B)。虽然图6示出两个处理器,但是系统600也可以包括仅一个处理器或多于两个的处理器。
存储器620A和620B都存储系统600中包含的处理器或任何其他装置所需的数据。IOH 650提供与系统中的输入/输出(I/O)装置的接口。IOH可以耦合到外围组件互连(PCI)总线660。I/O装置670可以连接到PCI总线。虽然未示出,但是其他装置也可以耦合到的PCI总线和ICH。
集中式推送机构630可以包括推送逻辑632、预取数据缓冲器634以及预取预测逻辑636。在系统600中,预取预测逻辑636可以分析每个处理器(例如610A和610B)中的所有处理核(例如611A至611M)的存储器存取模式(时间和空间),并可以基于它的存储器存取模式预测每个处理核的将来数据请求。基于此类预测,可以从存储器(例如620A或620B)移动可能被每个处理核请求的数据并将其临时存储在预取数据缓冲器634中。推送逻辑632可以发出请求以将数据从预取数据缓冲器634推送到请求处理核的高速缓存。可以为要推送的数据的每个高速缓存行发出一个推送请求。可以经由点到点连接(例如640A或640B)将含有目标处理核的标识的推送请求发送到所有处理核,但是仅其标识与该目标ID匹配的目标处理核需要响应该推送请求。如果目标处理核接受推送请求,则推送逻辑632可以将高速缓存行放到目标处理核可从其中认领该高速缓存行的点到点连接上;否则,推送逻辑632可以向目标处理核发出推送请求来重试。当多个处理核彼此协作并执行相同的任务时,预取预测逻辑可以就所有处理核可能需要什么数据作出全局性的预测。基于此类全局预测,推送逻辑632可以将可能由那些处理器所需要的数据推送到它们的高速缓存。虽然如图6所示集中式推送机构630是与IOH 650分离的,但是该机构可以与IOH组合在一个电路中,或者在其他实施例中可以是构成IOH整体的一部分。
与结合图1和图3描述的内容相似,推送逻辑632可以使用任何系统互连(例如点到点连接)事务来将数据推送到目标处理器的高速缓存。如果系统互连具有“推送”功能,则推送逻辑632可以使用此类功能来推送数据。目标处理核可以从系统互连认领数据,但是目标处理核可以确实地将数据置于它的高速缓存中以便不破坏多个处理器之间的高速缓存一致性,或者可以不将数据置于它的高速缓存中以便不破坏多个处理器之间的高速缓存一致性。目标处理核是否确实地将数据置于它的高速缓存中,不仅取决于目标处理器核的高速缓存中的相关高速缓存行的状态,而且还取决于非目标处理器核的高速缓存中对应高速缓存行的状态。可以使用与图4和图5所示的相似的方法来保持系统600中的高速缓存一致性。
虽然所公开的技术的示范实施例是参考图1-6中的示意图来描述的,但是本领域技术人员将容易地认识到可以作为备选方式使用实现本发明的许多其他方法。例如,可以更改这些功能框或处理过程的执行次序,和/或可以更改、取消或组合所描述的这些功能框或处理过程的其中一些。
在前文描述中,描述了本公开内容的多个不同方面。出于解释的目的,提出了特定的数字、系统和配置以便提供对本公开内容的透彻理解。但是对于利用本公开内容的本领域技术人员来说,显见的是可以在不拘泥于这些特定细节的情况下实施本公开内容。在另一些示例中,省略、简化、组合或拆分了公知的特征、组件或模块以不致于使本公开内容难以理解。
所公开的技术可以具有用于设计的仿真、模仿和制造的多种设计表示或格式。表示设计的数据可以采用多种形式来表示该设计。首先,正如有利于仿真的那样,可以使用实质性地提供期望所设计的硬件如何执行的计算模型的硬件描述语言或另一种功能描述语言来表示硬件。可以将硬件模型存储在如计算机存储器的存储媒体中,以便可以使用仿真软件来仿真该模型,该仿真软件对硬件模型施加特定的测试套装工具来确定它是否确实地按期望地实现功能。在一些实施例中,未将仿真软件记录、捕获或包含在媒体中。
此外,可以在设计过程的一些阶段制作具有逻辑和/或晶体管门电路的电路级模型。有时可以由使用可编程逻辑构成模型的专用硬件仿真器来类似地仿真该模型,进一步的程度来说,此类型的仿真可以是模仿技术。在任何情况中,可重新配置的硬件是可以包括存储采用所公开技术的模型的机器可读媒体的另一个实施例。
而且,在某个阶段,大多数设计达到表示硬件模型中多种装置的物理布置的数据级。在使用常规半导体制造技术的情况中,表示硬件模型的数据可以是指定制造集成电路所用的掩模的不同掩模层上存在或不存在多个不同特征的数据。表示集成电路的此数据也包含所公开的技术,因为可以仿真或制造该数据中的电路或逻辑来执行这些技术。
在设计的任何表示中,数据可以存储在任何形式的计算机可读媒体或装置(例如,硬盘驱动器、软盘驱动器、只读存储器(ROM)、CD-ROM装置、闪速存储器装置、数字多功能光盘(DVD)或其他存储装置)中。所公开的技术的实施例还可以视为作为机器可读存储媒体来实现,该机器可读存储媒体存储描述该设计或该设计的特定部分的比特。该存储媒体可能本身由其他公司出售或使用来实施进一步设计或制造。
虽然此公开是参考说明性实施例来描述的,但是不应基于限制的意义来解释此描述内容。本公开内容所属领域的技术人员显见,对这些说明性实施例以及本公开内容的其他实施例的多种修改应视为属于本公开内容的精神和范围内。
权利要求
1.一种用于在计算系统中将数据从存储器推送到处理单元的高速缓存中的设备,包括请求预测逻辑,所述请求预测逻辑分析所述处理单元的存储器存取模式并基于所述存储器存取模式预测所述处理单元的数据请求;以及推送逻辑,所述推送逻辑为预测要被所述处理单元请求的数据的每个高速缓存行发出推送请求,并在所述处理单元接受所述推送请求的情况下将与所述推送请求关联的高速缓存行发送到所述处理单元,所述处理单元将所述高速缓存行置于所述高速缓存中。
2.如权利要求1所述的设备,还包括预取数据缓冲器,所述预取数据缓冲器临时存储预测要被所述处理单元请求的数据,所述数据从所述存储器中取出。
3.如权利要求1所述的设备,其特征在于,所述计算系统包括至少一个处理器,每个处理器包括至少一个处理单元。
4.如权利要求1所述的设备,其特征在于,所述请求预测逻辑分析所述计算系统中的每个处理单元的存储器存取模式并基于所述存储器存取模式预测每个处理单元的数据请求;以及所述推送逻辑将预测要被每个处理单元请求的数据推送到目标处理单元的高速缓存。
5.如权利要求1所述的设备,其特征在于,所述计算系统包括一致性协议以确保将请求高速缓存行置于所述处理单元的高速缓存中时所述计算系统中的高速缓存之间的一致性。
6.一种计算系统,包括至少一个处理器,每个处理器包括与高速缓存关联的至少一个处理单元;至少一个存储器,所述至少一个存储器存储可被所述系统中的每个处理单元访问的数据;以及集中式推送机构,所述集中式推送机构便于发往和来自所述至少一个存储器的数据通信,预测所述系统中每个处理单元的数据请求,并且基于目标处理单元的预测的数据请求主动将数据推送到所述至少一个处理器中的目标处理单元的高速缓存中。
7.如权利要求6所述的计算系统,其特征在于,处理单元比访问所述至少一个存储器中的数据更快地访问与所述处理单元关联的高速缓存中的数据。
8.如权利要求6所述的计算系统,还包括高速缓存一致性协议,所述高速缓存一致性协议确保将预测要被目标高速缓存请求的数据置于所述高速缓存中时所述计算系统中的高速缓存之间的一致性。
9.如权利要求6所述的计算系统,其特征在于,所述集中式推送机构包括请求预测逻辑,所述请求预测逻辑分析所述系统中的每个处理单元的存储器存取模式并基于所述存储器存取模式预测每个处理单元的数据请求;以及推送逻辑,所述推送逻辑为预测要被处理单元请求的数据的每个高速缓存行发出推送请求,并在所述处理单元接受所述推送请求的情况下将与所述推送请求关联的所述高速缓存行发送到所述处理单元。
10.如权利要求9所述的计算系统,还包括预取数据缓冲器,在将数据发送到所述处理单元之前所述预取数据缓冲器临时存储预测要被处理单元请求的数据,所述数据从所述存储器中取出。
11.如权利要求6所述的计算系统,其特征在于,所述至少一个处理器和所述集中式推送机构耦合到总线,所述集中式推送机构通过总线写事务将数据发送到所述目标处理单元。
12.如权利要求11所述的计算系统,其特征在于,所述总线包括推送功能和高速缓存行写事务,在所述高速缓存行写事务期间当所述集中式推送机构通过高速缓存行写事务将高速缓存行发送到目标处理单元时启用所述推送功能,其中高速缓存行写事务包括所述目标处理单元的标识。
13.如权利要求12所述的计算系统,其特征在于,由其标识与所述事务中的所述目标处理单元的标识匹配的处理单元认领通过高速缓存行写事务发送的高速缓存行。
14.如权利要求6所述的计算系统,其特征在于,所述集中式推送机构是存储器控制器。
15.一种用于使用集中式推送机构将数据推送到处理器高速缓存中的方法,包括分析处理器的存储器存取模式;基于所述处理器的存储器存取模式预测所述处理器的数据请求;为预测要被所述处理器请求的数据发出推送请求;以及将所述数据推送到所述处理器的高速缓存中。
16.如权利要求15所述的方法,还包括在发出所述推送请求之前,将所述数据从存储器移到所述集中式推送机构中的缓冲器。
17.如权利要求15所述的方法,还包括当将所述数据推送到所述处理器的高速缓存中时确保高速缓存一致性。
18.如权利要求15所述的方法,其特征在于,发出所述推送请求包括为预测要被所述处理器请求的数据的每个高速缓存行发出推送请求。
19.如权利要求18所述的方法,其特征在于,推送数据的高速缓存行包括确定所述处理器是否接受所述推送请求;如果所述处理器接受所述推送请求,则作为总线事务将所述高速缓存行发送到所述处理器,并由所述处理器从所述总线认领所述高速缓存行;以及否则,重试发出所述推送请求。
20.如权利要求19所述的方法,还包括处理从所述总线认领的所述高速缓存行以确保高速缓存一致性。
21.如权利要求19所述的方法,其特征在于,作为总线事务将所述高速缓存行发送到所述处理器包括使用所述总线的高速缓存行写事务并启用所述高速缓存行写事务的推送功能。
22.一种用于使用集中式推送机构将数据推送到处理单元的高速缓存中的方法,包括分析多个处理器中每个处理单元的存储器存取模式,每个处理器包括至少一个处理单元;基于每个处理单元的存储器存取模式预测每个处理单元的数据请求;为预测要被每个处理单元请求的数据发出至少一个推送请求;以及将预测要被处理单元请求的数据推送到所述处理单元的高速缓存中。
23.如权利要求22所述的方法,其特征在于,预测数据请求包括预测所述多个处理器中多个处理单元之间的共用数据请求。
24.如权利要求22所述的方法,还包括在发出所述至少一个推送请求之前,将预测要被每个处理单元请求的数据从存储器移到所述集中式推送单元中的缓冲器。
25.如权利要求22所述的方法,其特征在于,发出所述至少一个推送请求包括为预测要被每个处理单元请求的数据的每个高速缓存行发出推送请求,所述推送请求包含目标处理单元的标识。
26.如权利要求25所述的方法,其特征在于,将数据的高速缓存行推送到目标处理单元的高速缓存包括确定所述目标处理单元是否接受所述推送请求;如果所述目标处理单元接受所述推送请求,则作为总线事务将所述高速缓存行发送到所述多个处理器,所述总线事务包含要将所述高速缓存行发送到的处理单元的标识,以及如果所述目标处理器的标识与要将所述高速缓存行发送到的处理器的标识匹配,则由所述目标处理器从所述总线认领所述高速缓存行;以及否则,重试发出所述推送请求。
27.如权利要求26所述的方法,其特征在于,作为总线事务将所述高速缓存行发送到所述多个处理器包括使用所述总线的高速缓存行写事务并启用所述高速缓存行写事务的推送功能。
28.如权利要求26所述的方法,还包括处理所认领的高速缓存行以确保所述多个处理器中所有处理单元的高速缓存之间的一致性。
29.一种包括机器可读媒体的产品,所述机器可读媒体存储表示集中式推送机构的数据,所述集中式推送机构包括请求预测逻辑,所述请求预测逻辑分析计算系统中的至少一个处理单元的存储器存取模式并基于所述存储器存取模式预测所述至少一个处理单元的数据请求;预取数据缓冲器,所述预取数据缓冲器临时存储预测要被所述至少一个处理单元请求的数据,所述数据从存储器中取出;以及推送逻辑,所述推送逻辑为预测要被所述至少一个处理单元请求的数据的每个高速缓存行发出推送请求,并在目标处理单元接受所述推送请求的情况下将与所述推送请求关联的高速缓存行发送到所述目标处理单元,所述目标处理单元将所述高速缓存行置于所述高速缓存中。
30.如权利要求29所述的产品,其特征在于,表示所述计算系统的数据包括硬件描述语言代码。
31.如权利要求29所述的产品,其特征在于,表示所述计算系统的数据包括表示多个掩模层串物理数据的数据,所述多个掩模层串物理数据表示所述多个掩模层的每一层的多个不同位置处存在或不存在材料。
32.一种包括其上存储有数据的机器可读媒体的产品,在处理器结合仿真例行程序访问所述数据时提供集中式推送机构的功能,所述集中式推送机构包括请求预测逻辑,所述请求预测逻辑分析计算系统中的至少一个处理单元的存储器存取模式并基于所述存储器存取模式预测所述至少一个处理单元的数据请求;预取数据缓冲器,所述预取数据缓冲器临时存储预测要被所述至少一个处理单元请求的数据,所述数据从存储器中取出;以及推送逻辑,所述推送逻辑为预测要被所述至少一个处理单元请求的数据的每个高速缓存行发出推送请求,并在目标处理单元接受所述推送请求的情况下将与所述推送请求关联的高速缓存行发送到所述目标处理单元,所述目标处理单元将所述高速缓存行置于所述高速缓存中。
33.如权利要求32所述的产品,其特征在于,所述集中式推送机构便于发往和来自存储器的数据通信,并主动将数据推送到目标处理单元的高速缓存中,所述目标处理单元对所述高速缓存中的数据的访问比对所述存储器中的数据的访问更有效率。
全文摘要
提供一种装置,用于使用集中式推送机构主动将数据推送到具有至少一个处理器的计算系统中的处理器高速缓存中。每个处理器可以包括一个或多个处理单元,其中可以将每个处理单元与高速缓存关联。集中式推送机构可以基于每个处理单元的存储器存取模式预测计算系统中每个处理单元的数据请求。可以将预测要被处理单元请求的数据从存储器移到集中式推送机构,然后集中式推送机构将数据发送到请求处理单元。计算系统中的高速缓存一致性协议可以帮助在将数据置于请求处理单元的高速缓存中时保持系统中所有高速缓存之间的一致性。
文档编号G06F12/08GK101044464SQ200580035480
公开日2007年9月26日 申请日期2005年10月27日 优先权日2004年10月28日
发明者S·埃迪里索里亚 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1