当前位置: 首页 > 专利查询>英特尔公司专利>正文

由外部代理启动CPU数据预取的方法和设备技术

技术编号:3895489 阅读:223 留言:0更新日期:2012-04-11 18:40
在计算系统中对外部代理进行设置以便启动从系统存储器到与目标处理器相关联的高速缓存的数据预取,其中该目标处理器需要所述数据以执行程序。当外部代理具有数据时,产生并发出预取指令。该预取指令可以与系统互连事务一起或作为单独的事务发送到系统中包括所述目标处理器的设备。当接收到并识别出预取指令时,与所述目标处理器相关联的硬件预取器可以向系统存储器发出请求以将数据预取到高速缓存。目标处理器能够比访问系统存储器中的数据更有效率地访问高速缓存中的数据。可以将一些预处理与数据预取相关联。

【技术实现步骤摘要】

本公开总体上涉及计算系统中的存储器访问,更具体地涉及由外部代理启动CPU 数据预取和预处理,以提高依赖于存储器的操作性能。
技术介绍
中央处理单元(CPU)通常在硬件中执行预取,以便先行将数据取到CPU的高速缓 存中。当在CPU上执行的程序真的需要数据时,这有助于减少存储器访问等待时间。由于 预取的原因,能够以通常比系统存储器访问等待时间小得多的等待时间在高速缓存中找到 数据。现代预取硬件追踪存储器访问的空间和时间访问模式,并代表CPU向系统存储器发 出先行请求。然而,与CPU相关联的预取硬件通常不能被外部代理调用,所述外部代理诸如另一个cpu、芯片组或输入/输出a/o)设备。当外部代理具有新数据时,典型的协议要求所有CPU的高速缓存(如果外部代理是CPU的话,则具有新数据的CPU除外,)使它们的拷贝无效,并当它们需要新数据时,从存储器读取新数据。换句话说,无论何时当除外部代理之外的CPU需要新数据时,CPU必须从存储器(或可能从外部代理)读取新数据,并因而导 致了比从CPU自身的高速缓存直接读取高得多的等待时间。结果,由于存储器访问的原因,数据处理速度会被降低。 附图说明 由以下的本公开的详细说明,本公开的特点和优点会变得明显,其中 图1是示出一般计算系统的示意图; 图2是计算系统的功能部件的示意图,其中外部代理可以启动CPU数据预取; 图3是处理器的示意图,外部代理可以对其启动数据预取; 图4是示出用于在计算系统中由外部代理启动CPU数据预取的预取指令的示例性 格式的表格; 图5是示出一个示例性计算系统的示意图,在此外部代理可以被允许启动CPU数 据预取; 图6是示出另一个示例性计算系统的示意图,在此外部代理可以被允许启动CPU 数据预取;及 图7是示出在计算系统中由外部代理启动CPU数据预取的示例性过程的流程图。 具体实施例方式本专利技术的实施例包括一种由外部代理启动CPU数据预取的方法和设备。在现代计 算系统中,除了软件实现的预取机制之外,还存在预取硬件,以先行将数据取到CPU高速缓存中。这种预取硬件能够基于存储器访问的空间和时间访问模式,将数据从系统存储器预 取到CPU高速缓存中。根据本专利技术的实施例,预取硬件的功能可以被扩展,以便其能够被外 部代理调用,外部代理诸如芯片组、I/O设备和除与预取硬件相关联的那个CPU之外的CPU。 当外部代理具有新数据时,外部代理可以向目标CPU的预取硬件发出一条独立消息或"预 取指令",以使得新数据可以从存储器被预取到目标CPU的高速缓存中。在一个实施例中,预取指令可以与现有系统互连事务一起进行发送。在另一个实施例中,预取指令可以作为 单独的事务来发送。而且,除预取新数据之外的诸如对新数据预处理的其它功能也可以被 调用。 在说明书中所提及的本专利技术的"一个实施例"意味着结合该实施例描述的具体特 征、结构或特性被包括在本专利技术的至少一个实施例中。因而,在本说明书全文中多个地方出 现的短语"在一个实施例中"不必全部指相同的实施例。 图1是示出一般计算系统100的示意图。计算系统100包括目标CPU110、支持平 台120、存储器130和至少一个外部代理140。目标CPU可以运行用于处理来自外部代理 140的数据的程序。目标CPU可以是在计算系统中的仅有的CPU或多个CPU中的一个。目 标CPU可以包括高速缓存112和硬件预取器114。高速缓存112被设置成目标CPU 110从 该高速缓存访问数据比从存储器130访问相同数据更有效率(例如高速缓存访问等待时间 比存储器访问等待时间短得多)。硬件预取器114可以代表目标CPU 110向存储器130发 送请求,以先行将数据取到高速缓存112中。基于可预测的目标CPU对存储器访问的空间 和时间访问模式,硬件预取器可以发出预取请求。尽管在图1中高速缓存112和硬件预取 器114被示为在目标CPU IIO之内,但它们可以是彼此分开的,且它们中的任何一个或全部 都可以与目标CPU分离。外部代理140可以包括多CPU系统中的另一个CPU,和/或诸如 芯片组或I/0设备的其它设备。外部代理可以提供在目标CPU IIO上运行的程序所需的数 据。支持平台120可以提供在目标CPU 110、存储器130和外部代理140之间必要的接口。 支持平台可以包括存储器控制器125,以处理往来于存储器130的数据的输入/输出(1/ 0)。支持平台还可以包括接口部件(在图中未示出)以便于在存储器与外部代理之间的数 据通信。存储器130可以存储目标CPU 110或包括在系统100中的任何其它设备使用的数 据(包括指令序列)。与由目标CPU 110访问位于高速缓存112中的信息相比,访问位于存 储器130中的信息会相对较慢(例如高等待时间)。 计算系统IOO可以运行高速缓存一致性协议(cache coherencyprotocol),根据 该协议,当外部代理具有新数据时,外部代理使得包括目标CPU的高速缓存112在内的所 有CPU的高速缓存中的、与新数据具有相同存储器地址的数据的所有拷贝无效,并将新数 据写入到存储器130 (该协议可以被称为写入无效协议)。换句话说,当数据源是外部代理 时,无论何时在目标CPU 110上运行的程序需要数据,该程序不能期望在其高速缓存112中 找到数据(即招致高速缓存缺失),并必须从存储器获得数据。因为存储器访问等待时间 通常比高速缓存访问等待时间高得多,在目标CPU上运行的程序性能会受到影响。 一种避 免来自外部代理的数据的高速缓存缺失(并从而帮助改进在目标CPU上运行的程序性能) 的方案是允许外部代理代表目标CPU IIO启动数据预取。用该方法,当外部代理具有新数 据时,外部代理可以通过发送预取指令来调用硬件预取器114。 一旦接收到并识别出预取 指令,硬件预取器可以发出存储请求,以从存储器130预取新数据,并将其放置在高速缓存5112中。该方案给予外部代理对目标CPU的高速缓存的直接访问,并可以称为直接高速缓 存访问(DCA)。在一个实施例中,预取指令可以与现有的系统互连事务一起发送,如监听事 务。在另一个实施例中,预取指令可以作为单独的事务被发送。 图2是计算系统的功能部件的示意图,在此外部代理可以启动CPU数据预取。目 标代理210可以是CPU或处理器,其可以运行需要从DCA源代理260而来的数据的程序。 目标代理对目标高速缓存220的访问比对存储器250的访问更快并更有效率。目标代理包 括硬件预取器215。基于目标代理210过去的空间和时间存储器访问模式,硬件预取器215 可以预料到随后的存储器访问,并发出存储请求以将数据预取到目标高速缓存220中。硬 件预取器还可以被DCA源代理260调用,以使得由DCA源代理接收的或产生的新数据可以 被预取到目标高速缓存中。目标高速缓存220存储目标代理上运行的程序所需的数据的至 少一部分。在一个实施例中,目标高速缓存可以与目标代理相关联。在另一个实施例中,目 标高速缓存可以是系统中的任何高速缓存。目标高速缓存被实现为目标代理从该高速缓 存访问数据要比从存储器250访问相同数据更有效率。在一个实施例中,目标代理210、硬 件预取器215和目标高速缓存22本文档来自技高网...

【技术保护点】
一种用于启动CPU数据预取的设备,包括:    目标代理,用于执行程序;    外部源代理,用于为所述目标代理提供至少一部分数据以执行所述程序,且当具有新数据时,产生并发出预取指令;及    与所述目标代理相关联的硬件预取器,当接收到所述预取指令时,发出请求以将所述新数据从存储器预取到目标高速缓存。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:罗摩克里希纳胡加哈利布兰农巴特森雷蒙德蒂特里克罗伯特布兰肯希普
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利