[发明专利]多线程架构有效
申请号: | 201710264673.1 | 申请日: | 2007-11-14 |
公开(公告)号: | CN107368285B | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | M·阿卜杜拉 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38;G06F9/46;G06F9/48 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 张欣 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 架构 | ||
本申请涉及用于处理使用上下文切换的多线程架构中的指令的装置和方法。用于复杂指令格式的动态生成、执行、同步以及并行的统一架构包括虚拟寄存器文件、寄存器缓存以及寄存器文件层级。自生成和同步动态和静态线程的架构提供了高效的上下文切换。
本申请是国际申请号为PCT/US2007/084710,国际申请日为2007/11/14,进入国家阶段的申请号为200780046679.6,题为“多线程架构”的发明专利申请的分案申请。
技术领域
本发明主要涉及数字电路。更具体地,本发明涉及改进的处理器设计。
背景技术
处理器需要过程相关的或者完全独立的多个任务。这种处理器的内部状态通常由寄存器集成,所述寄存器在程序执行的每个特定的时刻处可以具有不同的值。在程序执行的每个时刻处,将内部状态的图像称为处理器的架构状态。
当切换代码执行来运行另一个子例程(function)(例如,另一个线程、过程或者程序)时,则必需保存机械/处理器的状态,以便新的子例程可以使用内部寄存器来建立其新的状态。一旦新的子例程终止,则可以放弃其状态,并且恢复到之前上下文的状态并继续执行。将这种切换过程称为上下文切换,并且该过程通常包括特别是具有现代架构的几十个或者几百个周期,所述现代架构采用大量的寄存器(例如,64,128,256)和/或乱序执行。
在线程感知(thread-aware)硬件架构中,硬件一般支持有限数量的硬件支持的线程的多个上下文状态。在这样的情况下,硬件复制每个支持的线程的所有架构状态要件。当执行新的线程时,这不需要上下文切换。然而,这还是有多个弊端,即:复制在硬件中支持的每个额外的线程的所有架构状态要件(即,寄存器)的区域、能量、以及复杂度。此外,如果软件线程的数量超过明确支持的硬件线程的数量,则必须还是要进行上下文切换。这是因为基于精细度的并行往往需要大量的线程。对上下文状态的硬件存储进行复制的硬件线程感知架构无助于非线程的软件代码,并且只能为线程化的软件减少上下文切换的次数。然而,这些线程通常构建为粗粒度并行,并且导致初始和同步离开诸如子例程调用和循环并行执行之类的细粒度并行的沉重的软件开销,而无法进行高效的线程初始/自动生成。如此描述的开销使得使用现有技术的编译器来自动并行化这种代码困难,或者针对不明确的/易并行化的/线程的软件代码的用户并行化技术困难。
发明内容
用于复杂指令格式的动态生成、执行、同步以及并行的统一架构包括虚拟寄存器文件、寄存器缓存(register cache)以及寄存器文件层级。自生成和同步动态和静态线程的架构提供了高效的上下文切换。
附图说明
结合附图通过下面的详细描述,可以更加全面地理解本发明,在附图中:
图1示出了使用到寄存器文件的直连的寄存器状态的即时保存和恢复;
图2示出了根据本发明实施例的具有寄存器位置映射的虚拟寄存器文件;
图3示出了根据本发明实施例的具有用于推测的寄存器状态的临时存储装置的多个层级的寄存器文件;
图4示出了根据本发明实施例的用于对软件的上下文/线程进行虚拟化的寄存器缓存;
图5示出了根据本发明实施例的具有在上下文切换时溢出和重载寄存器的自动机制的寄存器缓存;
图6示出了根据本发明实施例的使用计数器模式的寄存器名称的错误相关性的方案;
图7示出了已知的超标量执行架构;
图8A示出了根据本发明实施例使用的执行架构;
图8B示出了根据本发明实施例的缓存、调度器以及存储继承信息的重排序单元;
图9A示出了根据本发明实施例的用以在跨一组核心的线程之间实施顺序一致性的全局前端和继承向量;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710264673.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于注视交互的系统
- 下一篇:用于多精度算术的SIMD整数乘法累加指令