在多核芯片中为母核预取制造技术

技术编号:12203182 阅读:67 留言:0更新日期:2015-10-14 16:23
在具有至少一个侦察核、至少一个母核、以及在该至少一个侦察核和该至少一个母核之间共用的共享高速缓存器的芯片上,由该至少一个侦察核执行预取代码来监视该至少一个母核,该预取代码独立于该至少一个母核执行;侦察核基于监视至少一个母核确定在该至少一个母核中发生了至少一个指定的数据模式;基于所述确定,从该至少一个侦察核向该共享高速缓存器发送预取请求;该共享高速缓存器将由该预取请求指示的数据集发送给该至少一个母核。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及具有母核和侦察(scout)核的多核芯片,更具体地涉及在多核芯片中为母核预取
技术介绍
单线程处理器性能的增长受限于单线程性能所需的功率要求。通过增加频率和/或功能特性的处理器的功率需求加倍不一定会产生性能增益大于或等于增加的功率需求。这是因为性能增益和功率增益比显著倾斜。为了提供芯片性能的增长,功率预算的重要部分可以是专门在芯片上放置额外的核。而共享高速缓存器和内存防止性能增加与核数量的增加同比例,增加芯片上的核的数量导致的性能增益比单纯提高单核处理器的性能可以产生更大的性能/瓦(watt)增益。在一个提高单线程性能的方法中,可以将在同一芯片上作为主核或母核的次级核作为侦察核。具体来说,侦察核可用于从共享高速缓存器预取数据到母核的私有高速缓存器。这种方法在母核遇到高速缓存器未命中(miss)的事件中可能是特别有用的。当特定的数据行导致搜索母核的目录,而请求的缓存行不存在时,高速缓存器未命中发生。一个典型的获得未命中的高速缓存行的方法是对更高级别的高速缓存器启动一个获取操作。侦察核提供了一种用于预取母核所需要的数据的机制。应该指出的是,不同的程序表现不同,导致一个预取算法或方法可能不总是改善访问高速缓存器内容的延迟。在对母核预取数据的方法中,有一个相对小而简单的算法,该算法可以提供一种跨越引擎,其基于后续高速缓存器多个未命中之间观测到的跨越来投机性预取数据。为了覆盖更复杂的模式,需要额外的硬件,这些硬件在物理尺寸和功率上更复杂并且更大。然而,依照芯片对吞吐量、延迟、和功率平衡的取舍,可用于预取的专用硬件的量可以是有限的核。此外,监视和检测高速缓存器未命中所需要的面积和存储的量可能太大,不能在硬件上唯一地实现。
技术实现思路
本专利技术的多个方面包括一种用于在芯片上预取数据的方法、系统、和计算机程序产品,所述芯片具有至少一个侦察核,至少一个母核,在所述至少一个侦察核和所述至少一个母核之间共有的共享高速缓存器。由侦察核执行预取代码来监测母核。预取代码独立于母核执行。侦察核基于对母核的监视确定在母核中发生了至少一个指定的数据模式,侦察核向共享高速缓存器发出预取请求,基于所述被侦察核检测到的至少一个指定的模式发送预取请求,共享高速缓存器将预取请求指示的数据集发送到母核。【附图说明】现在将要参考附图,通过举例的方式描述本专利技术的多个实施例,其中:图1根据一个实施例描述了多核芯片;图2根据一个实施例描述了一个中央处理(CP)芯片;图3根据另一个实施例描述了一个CP芯片;图4根据又一个实施例描述了一个CP芯片;;图5根据一个实施例描述了用于说明用于由侦察核为母核预取预取数据的操作方法的流程;以及图6示出根据本专利技术的一个实施例的计算机程序产品。【具体实施方式】公开了在多核芯片中的侦察核为母核预取数据的实施例。在一个示例性实施例中,多核芯片包括至少一个母核,至少一个侦察核,以及共享高速缓存器。侦察核监视母核的行为,监视母核创建的至少一种指定的模式,并确定是否应该从侦察核向共享高速缓存器发送预取请求。一旦从侦察核接收到预取请求,将被预取请求的数据发送到母核。被预取请求的数据只能由母核接受,而不能由侦察核接受。侦察核监视其中出现的各种类型的指定数据模式的母核。相反,现有的具有专有硬件预取器的某些类型的核通常只能监视母核的模式的指定子集。同时,由于由侦察核预取器重用的硬件量,侦察处理器能够比典型的硬件预取器分析更多的数据。图1根据一个实施例描述了计算系统10的例子。计算系统10包括至少一个中央处理(CP)芯片20。在如图1所示的示范性实施例中,示出了三个CP芯片20,然而可以理解,可以使用任何数量的CP芯片20。每一个CP芯片20与共享的高速缓存器22和系统内存器24通信。现在参考图1-2,每个CP芯片20包括用于读取和执行指令的多个核30。例如,在如图2所示的示例实施例中,每个CP芯片20包括母核32和侦察核34,然而可以理解,也可以使用任何数量的核30。在图3-4中还示说明了 CP芯片的替代实施例。参考图2,每个核30还包括各自的指令高速缓存器(1-cache)40和数据高速缓存器(D-cache)42。在如图2所示的示例实施例中,每个核30只包括一级(LI)高速缓存器,然而可以理解,在不同实施例中,核30也可以包括二级(L2)高速缓存器。每个核30可操作地连接到共享高速缓存器50。在如图2所示的实施例中,共享高速缓存器50是L2高速缓存器,然而,可以理解,其也可以是二级(L3)尚速缓存器。在母核32和共享高速缓存器50之间提供数据返回总线60,并且在侦察核34和共享高速缓存器50之间提供数据返回总线62。获取请求总线64将母核32与共享高速缓存器50连接起来,在这将数据从母核32发送到共享高速缓存器50。获取监视总线66将侦察核34与共享高速缓存器50连接起来,在这侦察核34通过获取监视总线66监视共享高速缓存器50。获取请求总线68位于侦察核34和共享高速缓存器50之间,从而将各种预取请求从侦察核34发送到共享高速缓存器50。获取请求总线68如获取请求总线64所做的那样,也可用于典型的获取。之所以需要这种获取是要将预取代码加载到侦察核34,除此之夕卜,载入进一步的数据的以便分析的可能需求应该是要被分析的数据没有全部纳入本地数据高速缓存器42和/或预取代码没有完全纳入本地的指令高速缓存器40。在图2所示的实施例中,共享高速缓存器50作为一个集线器或连接点,以便侦察核34可以监视母核32。侦察核34监视母核32以得到在母核32中发生的至少一个指定的数据模式。具体来说,侦察核34执行用来监视母核32的预取代码。预取代码确定是否在母核32中发生一个或多个指定的数据模式,并基于指定的数据模式向共享高速缓存器50发送获取请求。而且,预取代码是独立于由母核32执行的任何代码执行的。侦察核34通常在位于侦察核34的LI指令高速缓存器40中存储预取代码。指定数据模式可以是离开母核32的内容请求,(例如,对不在母核32的指令高速缓存器40和数据高速缓存器42中的高速缓存指定行的请求),或者替换地,母核32的检查点地址。例如,母核32可能或者从指令高速缓存器40或者从数据高速缓存器42请求存储器地址。如果指令高速缓存器40或数据高速缓存器42不包含从母核32请求的指定的缓存行,就发生高速缓存器未命中。侦察核34由获取监视总线66,通过共享高速缓存器50,监视母核32,检测到高速缓存器未命中。在一个实施例中,侦察核34确定是否或者在指令高速缓存器40或者在数据高速缓存器42发生高速缓存器未命中(或任何其他类型的位于母核32中的高速缓存器发生了高速缓存器未命中),一旦检测到高速缓存未命中,可以由侦察核34通过获取请求总线68向共享高速缓存器50发送对预期的未来的未命中的高速缓存行的预取。在一种方法中,侦察核34也可以检查来确定是否高速缓存器的指定行存储在母核32的高速缓存器中(例如,指令高速缓存器40和数据高速缓存器42)。如果高速缓存器的指定行在母核32中,那么就不需要预取已经在母核32的高速缓存器中的数据。在另一种方法中,母核32的检查点地址可以通过共享高速缓存器50在母核32和侦察核34之间传递。具体的本文档来自技高网
...

【技术保护点】
一种预取数据的计算机系统,该系统包括:芯片,包括:位于该芯片上的至少一个侦察核;位于该芯片上的至少一个母核;以及在该至少一个侦察核和该至少一个母核之间共用的共享高速缓存器,该共享高速缓存器位于该芯片之上,该系统被配置为执行方法,包括:由该至少一个侦察核执行预取代码来监视该至少一个母核,该预取代码独立于该至少一个母核执行;由该至少一个侦察核基于监视该至少一个母核确定在该至少一个母核中发生了至少一个指定的数据模式;基于所述确定,从该至少一个侦察核向该该共享高速缓存器发送预取请求;以及由该共享高速缓存器将由该预取请求指示的数据集发送给该至少一个母核。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:B·R·普瑞斯凯C·A·卡尔果维斯基CL·K·舒F·Y·布萨巴S·卡洛
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1