[发明专利]处理器中多线程之间的通信有效
申请号: | 200680056225.2 | 申请日: | 2006-10-27 |
公开(公告)号: | CN101529377A | 公开(公告)日: | 2009-09-09 |
发明(设计)人: | E·吉伯特;J·M·科迪纳;F·拉托雷;J·A·皮内罗;L·罗佩斯;A·冈萨雷斯 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/30;G06F9/44 |
代理公司: | 中国专利代理(香港)有限公司 | 代理人: | 柯广华;王丹昕 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 多线程 之间 通信 | ||
背景技术
处理器已经成了很复杂的设备,包括大量的结构和复杂的控制技术,允许指令和数据通过该机器,以便执行所请求的不同操作。为了改进处理器的效率,某些处理器利用指令级的并行性(ILP)。尽管这样的技术可以提高效率,但也会增大功率消耗和设计的复杂性。有鉴于此,某些处理器以这样的意图设计,即通过支持和利用线程级并行性(TLP-“thread level parallem”)的体系结构来允许多线程协作。所述处理器可以包括多个核,至少多个小核,诸如同时多线程(SMT-““simultaneous multithreading”)的有序小核。
但是,这样的有序核不如利用指令级并行性(ILP)时的无序核有效。这说明,这些有序处理器可能有效地执行并行应用,而一系列并行应用中的只有一个线程和部分代码的应用,在这样的体系结构上可能不会有效地表现。据此,某些处理器可以将应用分开,将线程分成较小的部分执行,以维持最低的复杂性,同时改善其效率。但是,当第一线程企图利用第二线程的信息时,可能产生一个数量过大的组织过程。
发明内容
按照本发明的第一方面,提供了一种用于在处理器中多线程之间通信的方法,包含:对第一线程的指令进行译码,使得该指令包括指令的源操作数的位置标志,其中该位置标志指示在第二线程的寄存器堆的寄存器中的所述源操作数的位置;确定是否要从第二线程获得所述指令的任何源操作数;如果确定要从第二线程获得所述指令的任何源操作数,则确定与来自第二线程的源操作数相关联的并且包括在标记表结构中的同步标志是否激活;如果确定所述同步标志被激活,则 确定是否有任何来自第一线程的源操作数;如果确定有来自第一线程的源操作数,则确定与来自第一线程的源操作数相关联的备置标志是否激活;如果确定与来自第一线程的源操作数相关联的备置标志被激活,则由一个核访问一个第二线程的寄存器堆,以在所述核上执行第一线程的指令的期间为第一线程的指令获得源操作数。
按照本发明的第二方面,提供了一种用于在处理器中多线程之间通信的装置,包括:由处理器核内的存储器构成的标记表,包括一些条目,其中每一条目对应于第一线程的第一寄存器堆的一个寄存器,使得所述条目须各自包含备置标志和同步标志,用来指示:须将一个与第二线程的第二寄存器堆对应的寄存器作为目的操作数使用的第二线程的一个生产者操作是否已完成。
按照本发明的第三方面,提供了一种用于在处理器中多线程之间通信的系统,包括:第一寄存器堆,包含用来存储第一线程的数据的多个寄存器;第二寄存器堆,包含用来存储第二线程的数据的多个寄存器;执行单元,连接到第一寄存器堆和第二寄存器堆,以执行第一线程和第二线程的指令,使得所述执行单元访问第一寄存器堆,以获得一个用于执行第二线程的一条指令的源操作数,其中由来自第一线程的指令识别的访问第一寄存器的第一源操作数和访问第二寄存器的第二源操作数两个源操作数分别与包括在由处理器核内的存储器构成的标记表中的第一条目和第二条目相关联,包括在所述标记表中的第一条目和第二条目各自包括同步标志和备置标志,并且当与所述第二源操作数相关联的第二条目的备置标志的值被设定并且和与所述第一源操作数相关联的第一条目的同步标志的值也被均已设定时,来自第一线程的指令被发送到执行单元来执行;以及连接到所述执行单元的动态随机存取存储器。
按照本发明的第四方面,提供了一种用于在处理器中多线程之间通信的装置,包含:用于对第一线程的指令进行译码,使得该指令包括指令的源操作数的位置标志的部件,其中该位置标志指示在第二线程的寄存器堆的寄存器中的所述源操作数的位置;用于确定是否要从 第二线程获得所述指令的任何源操作数的部件;用于如果确定要从第二线程获得所述指令的任何源操作数则确定与来自第二线程的源操作数相关联的并且包括在标记表结构中的同步标志是否激活的部件;用于如果确定所述同步标志被激活则确定是否有任何来自第一线程的源操作数的部件;用于如果确定有来自第一线程的源操作数则确定与来自第一线程的源操作数相关联的备置标志是否激活的部件;用于如果确定与来自第一线程的源操作数相关联的备置标志被激活,则由一个核访问一个第二线程的寄存器堆,以在所述核上执行第一线程的指令的期间为第一线程的指令获得源操作数的部件。
附图说明
图1是根据本发明一个实施例的方法的流程图;
图2是根据本发明一个实施例的标记表的框图;
图3是根据本发明一个实施例实现指令执行的框图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680056225.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:超氧化物歧化酶蜂蜜膏及其制备方法
- 下一篇:用于电磁吸块的箍带