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

线程级推测中的动态数据同步制造技术

技术编号:8493978 阅读:170 留言:0更新日期:2013-03-29 06:43
在一个实施例中,本发明专利技术介绍一种推测引擎,用于通过从串行指令创建独立的线程并插入处理器指令,以在依赖源之前设置同步位,并在依赖源之后清除同步位来使串行指令并行化,其中该同步位被设计成停止依赖接收端在独立核上运行的线程。描述并要求保护其他的实施例。

【技术实现步骤摘要】
【国外来华专利技术】线程级推测中的动态数据同步
技术介绍
在现代处理器中,通常具有多个能够并行执行的计算核。然而,很多顺序或串行的应用和程序不能有效地利用并行架构。线程级推测(Thread-levelspeculation TLS)是一种使顺序程序并行化的有希望的技术,其利用静态或动态编译器和硬件以便在错误推测发生时恢复。然而在依赖加载和存储指令之间没有适当同步的情况下,例如,加载可在存储之前执行并导致数据违背,这破坏推测线程并且需要对于重新加载的数据的重新执行。附图简述附图说明图1是根据本专利技术一个实施例的示例系统的框图。图2是根据本专利技术一实施例的示例推测引擎的框图。图3A和3B是根据本专利技术一实施例的示例软件代码的框图。图4是根据本专利技术的一实施例的线程级推测中的动态数据同步的流程图。图5是根据本专利技术实施例的系统的框图。详细描述在各实施例中,引入具有推测高速缓存的处理器,该推测高速缓存具有同步位,该同步位被设置时可使高速缓存线或字的读取停止。本领域的技术人员将意识到这可防止错误的推测和相关的被破化线程的无效。还介绍了设置和清除同步位的处理器指令。编译器可利用这些指令来同步数据依赖性。本专利技术旨在实施在可包括附加并行和/或线程推测特征的处理器和系统中。现在参见图1,所示为根据本专利技术的一个实施例的示例系统的框图。如图1所示,系统100可包括处理器102和存储器104,诸如动态随机存取存储器(DRAM)。处理器102可包括核106-110、推测高速缓存112和推测引擎118。核106-110能够彼此独立地执行指令且可包括任意类型的架构。尽管被示为包括三个核,然而处理器102可具有任意数量的核且可包括未示出的其它组件或控制器。在一个实施例中,处理器102是芯片上系统(S0C)。推测高速缓存112可包括任意数量的独立高速缓存且可包含任意数量的实体。尽管期望作为低等待时间一级高速缓存,然而推测高速缓存112可在任意架构级下以任意存储器技术来实现。推测高速缓存112包括与高速缓存线或字116相关联的同步位114。当同步位114被设置时,如下文更详细描述的,线或字116可能不能被核加载,因为例如另一个核可能要执行加载依赖的存储。在一个实施例中,当同步位114被设置时试图从高速缓存线或字116加载的核将停止直到同步位114被清除。推测引擎118可实现用于线程级推测中的动态数据同步的方法,例如参考图4描述的,且可具有参考图2描述的架构。推测引擎118可与处理器102分离且可被实现为硬件、软件或硬件和软件的组合。现在参见图2,所示为根据本专利技术的一实施例的示例推测引擎的框图。如图2所示,推测引擎118可包括并行化服务202、并行输出代码204和串行输入代码206。并行化服务202可提供推测引擎118,具有使串行指令并行化并在线程级推测中增加动态数据同步的能力。并行化服务202可包括线程服务208、同步集服务210和同步清除服务212,其可分别从串行指令创建并行线程、插入处理器指令以在依赖源之前设置同步位、并插入处理器指令以在依赖源之后清除同步位。并行化服务202可从串行输入代码206 (例如如图3A所示)创建并行输出代码204 (例如如图3B所示)。现在参考图3A和3B,示出的是根据本专利技术一实施例的示例软件代码的框图。如图3A所示,顺序指令300包括串行前进的各种加载和存储,且旨在由处理器的单个核执行。顺序指令300可用作推测引擎118的串行输入代码206。如图3B所示,并行指令302可表示推测引擎118的并行输出代码204。线程304-308能够由核106-110单独地执行。线程304-308可各自包括处理器指令(例如,标记_通信_地址mark_comm_addr ),该指令在被执行时在诸如存储指令之类的依赖源之前设置关于特定高速缓存线或字116的同步位114。线程304-308还可各自包括对应的处理器指令(例如,清除_通信_地址clear_comm_add;r),该指令在被执行时在依赖源之后清除同步位114。可在线程304和308中看到数据依赖的示例,其中依赖接收端(dependence sink)将要等待依赖源完成并清除同步位。在这种情况下,加载310将停止线程308的前进直到存储312完成且线程304清除相关联的同步位。现在参考图4,示出根据本专利技术的一实施例的线程级推测中的动态数据同步的流程图。如图4所示,方法开始于从串行指令创建(402)并行线程。在一个实施例中,线程服务208被调用以从顺序指令300生成并行指令302。在另一个实施例中,所生成的线程(304-308)的数量至少部分地基于处理器中核(106-110)的数量。该方法继续,插入(404)处理器指令以设置和清除同步位。在一个实施例中,当生成地址时,同步设置服务210在依赖源或潜在的依赖源之前的早期点将指令(标记_通信_地址)插入线程304-308。在另一个实施例中,同步清除服务212在依赖源或潜在的依赖源之后将指令(清除_通信_地址)插入线程304-308。该方法以在多核处理器的核上执行(406)并行线程结束。在一个实施例中,线程304-308分别在核106-110上执行。在一个实施例中,核110的执行可停止在加载310上,直到同步位114被核106上执行的线程304清除为止。各实施例可在许多不同的系统类型中实现。现在参见图5,所示为根据本专利技术实施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,并且包括经由点对点互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中的每一个都可以是多核处理器,包括第一和第二处理器核(即,处理器核574a与574b以及处理器核584a与584b )。每个处理器可包括根据本专利技术的实施例的动态数据同步线程级推测硬件、软件和固件。仍参考图5,第一处理器570还包括存储器控制器中枢(MCH) 572与点对点(P_P)接口 576和578。类似地,第二处理器580包括MCH 582与P-P接口 586和588。如图5所示,MCH 572和582将各处理器耦合到相应的存储器,即存储器532和存储器534,这些存储器可以是主存储器(例如,动态随机存取存储器(DRAM))的本地附连到相应处理器的部分,其中的每一个可包括根据本专利技术的一个实施例的扩展页表。第一处理器570和第二处理器580可分别经由P-P互连552和554耦合到芯片组590。如图5所示,芯片组590包括P-P接口 594 和 598。此外,芯片组590包括将芯片组592与高性能图形引擎538耦合的接口 590。接着,芯片组590可经由接口 596耦合到第一总线516。如图5所示,各种I/O设备514可连同总线桥518 —起稱合到第一总线516,总线桥518将第一总线516稱合到第二总线520。各种设备可被耦合到第二总线520,这些设备包括例如键盘/鼠标522、通信设备526以及诸如磁盘驱动器或其它大容量存储设备之类的数据储存器单元528,在一个实施例中该数据储存器单元可包括代码530。此外,音频I/O 524可耦合到第二总线520。各实施例可以用代码实现,并可存储在其上存储有指令的存储介质上,这些指令可用来对系统编程以执行这些指令。存储介质可本文档来自技高网...
线程级推测中的动态数据同步

【技术保护点】

【技术特征摘要】
【国外来华专利技术】2010.06.29 US 12/826,2871.一种包括内容的存储介质,所述内容在被访问机器执行时导致所述访问机器 执行多核处理器的第一核中的指令;确定推测高速缓存中数据的地址作为依赖接收端的一部分;以及如果与所述数据相关联的同步位已经被第二核中的依赖源设置,则等待访问所述数据。2.如权利要求1所述的存储介质,其特征在于,还包括在被访问机器执行时导致所述访问机器通过执行处理器指令设置同步位的内容。3.如权利要求2所述的存储介质,其特征在于,还包括在被访问机器执行时导致所述访问机器通过执行处理器指令清除同步位的内容。4.如权利要求3所述的存储介质,其特征在于,所述依赖接收端包括加载指令。5.如权利要求3所述的存储介质,其特征在于,所述依赖接收端包括存储指令。6.如权利要求3所述的存储介质,其特征在于,与所述数据相关联的所述同步位包括高速缓存线位。7.如权利要求3所述的存储介质,其特征在于,与所述数据相关联的所述同步位包括高速缓存字位。8.如权利要求3所述的存储介质,其特征在于,用于通过执行处理器指令设置同步位的内容包括用于在生成依赖源地址时设置同步位的内容。9.一种系统,包括处理器,其包括用于执行指令的第一核和第二核;·推测高速缓存,用于存储用于所述处理器的数据和指令,所述推测高速缓存包括同步位以指示相关联的数据是否遭受依赖源,并且当同步位被设置时停止依赖接收端的操作; 耦...

【专利技术属性】
技术研发人员:W·刘吴友峰
申请(专利权)人:英特尔公司
类型:
国别省市:

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

1