用于处理使用上下文切换的多线程架构中的指令的装置和方法制造方法及图纸

技术编号:5494962 阅读:453 留言:0更新日期:2012-04-11 18:40
用于复杂指令格式的动态生成、执行、同步以及并行的统一架构包括虚拟寄存器文件、寄存器缓存以及寄存器文件层级。自生成和同步动态和静态线程的架构提供了高效的上下文切换。

【技术实现步骤摘要】
【国外来华专利技术】多线程架构
本专利技术主要涉及数字电路。更具体地,本专利技术涉及改进的处理器设计。
技术介绍
处理器需要过程相关的或者完全独立的多个任务。这种处理器的内部状态通常由寄存器集成,所述寄存器在程序执行的每个特定的时刻处可以具有不同的值。在程序执行的每个时刻处,将内部状态的图像称为处理器的架构状态。当切换代码执行来运行另一个子例程(function)(例如,另一个线程、过程或者程序)时,则必需保存机械/处理器的状态,以便新的子例程可以使用内部寄存器来建立其新的状态。一旦新的子例程终止,则可以放弃其状态,并且恢复到之前上下文的状态并继续执行。将这种切换过程称为上下文切换,并且该过程通常包括特别是具有现代架构的几十个或者几百个周期,所述现代架构采用大量的寄存器(例如,64,128,256)和/或乱序执行。在线程感知(thread-aware)硬件架构中,硬件一般支持有限数量的硬件支持的线程的多个上下文状态。在这样的情况下,硬件复制每个支持的线程的所有架构状态要件。当执行新的线程时,这不需要上下文切换。然而,这还是有多个弊端,即:复制在硬件中支持的每个额外的线程的所有架构状态要件(即,寄存器)的区域、能量、以及复杂度。此外,如果软件线程的数量超过明确支持的硬件线程的数量,则必须还是要进行上下文切换。这是因为基于精细度的并行往往需要大量的线程。对上下文状态的硬件存储进行复制的硬件线程感知架构无助于非线程的软件代码,并且只能为线程化的软件减少上下文切换的次数。然而,这些线程通常构建为粗粒度并行,并且导致初始和同步离开诸如子例程调用和循环并行执行之类的细粒度并行的沉重的软件开销,而无法进行高效的线程初始/自动生成。如此描述的开销使得使用现有技术的编译器来自动并行化这种代码困难,或者针对不明确的/易并行化的/线程的软件代码的用户并行化技术困难。
技术实现思路
用于复杂指令格式的动态生成、执行、同步以及并行的统一架构包括虚拟寄存器文件、寄存器缓存(registercache)以及寄存器文件层级。自生成和同步动态和静态线程的架构提供了高效的上下文切换。附图说明结合附图通过下面的详细描述,可以更加全面地理解本专利技术,在附图中:图1示出了使用到寄存器文件的直连的寄存器状态的即时保存和恢复;图2示出了根据本专利技术实施例的具有寄存器位置映射的虚拟寄存器文件;图3示出了根据本专利技术实施例的具有用于推测的寄存器状态的临时存储装置的多个层级的寄存器文件;图4示出了根据本专利技术实施例的用于对软件的上下文/线程进行虚拟化的寄存器缓存;图5示出了根据本专利技术实施例的具有在上下文切换时溢出和重载寄存器的自动机制的寄存器缓存;图6示出了根据本专利技术实施例的使用计数器模式的寄存器名称的错误相关性的方案;图7示出了已知的超标量执行架构;图8A示出了根据本专利技术实施例使用的执行架构;图8B示出了根据本专利技术实施例的缓存、调度器以及存储继承信息的重排序单元;图9A示出了根据本专利技术实施例的用以在跨一组核心的线程之间实施顺序一致性的全局前端和继承向量;图9B示出了根据本专利技术实施例的允许跨核心的线程间和线程内的寄存器通信的寄存器互连拓扑;图9C示出了根据本专利技术实施例的跨物理分段式架构的统一寄存器文件的基于位置的寄存器引用;图10示出了根据本专利技术实施例的自动生成越过循环迭代和边界的线程的机制;图11A示出了根据本专利技术实施例的自动生成跨越控制路径的线程的机制;图11B示出了根据本专利技术实施例的测试和分支指令处理;图12示出了根据本专利技术实施例的使用的具有单独标签和数据阵列的分段式/分布式缓存;图13A示出了支持预取指令和其加载消耗指令之间的精确调度的映射机制;图13B示出了根据本专利技术实施例的通过虚拟化硬件存储的到物理存储的Temp和Chain的动态分配;图14示出了根据本专利技术实施例使用的在无需额外的物理寄存器的情况下使地址寄存器能够重新命名的调度器向量中的计数器机制;图15示出了根据本专利技术实施例实施的绕过和检查机制。在各个附图中,相似的附图标记指代相对应的部分。具体实施方式本专利技术的一个方面减小了上下文切换所带来的麻烦。由于保存架构状态(例如,数据寄存器、控制寄存器、程序计数器等)耗费时间,因而上下文切换带来了麻烦。在继续进行执行之前不得不恢复之前的上下文的状态。这意味着大量寄存器的许多加载/存储的出现有时就如同涉及的子例程调用一样常见。公开的架构状态的结构在架构状态上进行逐步的自上下文切换以及即时上下文切换。同样,引入虚拟寄存器文件和寄存器缓存的概念作为可能的实施组件。相比可能使用传统的硬件线程的支持来说,虚拟寄存器文件或者寄存器缓存还可以提供硬件中对虚拟的更大数量的线程或上下文的支持。多个层级的寄存器文件支持为寄存器文件提供更大的带宽。还可以将该技术与线程支持相结合。架构状态的一部分将会经历即时硬件/软件支持的上下文切换,在所述上下文切换中,通过使用LIFO(后进先出)电路的硬件,来快速地/即时地保存所有架构状态。相对于寄存器文件或者随机存取存储器的实施,LIFO电路的使用允许更低的复杂度和高效的速度和区域的实现。将属于该类的每个接下来的上下文切换保存在LIFO中的旧的上下文切换的上面。这个技术非常适合递归式的子例程调用或者嵌套的并行循环,其中,在递归中的一个调用的上下文将会以LIFO的方式自然地进入和离开。图1示出了硬件上下文切换支持的一个实施例。对架构状态进行这种快速保存的另一种方式是将寄存器文件的内容保存为存储器或缓存中的一个块(例如,一个缓存行或块)。一个寄存器批组为一系列后续的寄存器号码(例如,寄存器0到7可以为更大寄存器集0-64的子组),当出现涉及这8个寄存器的上下文切换时,可以将该一系列后续的寄存器号码存储为64字节大小的一个缓存行。相对于通常使用加载和存储来保存和恢复每个个别寄存器来说,寄存器文件具有在同一周期或少量周期中直接运送其所有内容的专门的宽总线101和102。寄存器文件的缓存传送的一个可能的实施是使用总线102和101来连接到填充缓冲区,所述填充缓冲区一般用来填充缓存行以作为后门路径来将寄存器直接移动到缓存。一个可选的实施可以使用写入/读取结合缓冲区,所述写入/读取结合缓冲区通常用来在部分数据作为简单事务而通过总线写到存储器之前,将它们存储和加载积累到缓冲区,而不是每个均形成部分总线事务。这种结合缓冲区可以具有经由101和102的侧门总线连接,用以将一系列寄存器结合到一个写入结合缓冲区,所述写入结合缓冲区随后可以将寄存器的整个缓存行的值传送到缓存或者存储器中,同时可以使用读取结合缓冲区来进行相反的传送。在另一个实施中,可以选择使用具有LIFO电路或者随机存取存储器缓冲区的专门局部存储器。LIFO电路更为简单,并且具有更少的实施限制,但却实行了严格的保存和恢复数据的顺序(后进先出)。另一方面,诸如对处理器缓存使用直接总线之类的随机存取存储器具有使用局部存储器的灵活性,但却实行了硬件实施限制,而允许以随机的顺序灵活地保存和恢复上下文。当新的上下文取代旧的上下文时,可以逐步地保存和恢复架构状态的另一部分。换句话说,在新的或旧的上下文中使用个别寄存器时,由硬件来交换进和交换出/读进和读出该特定寄存器。这种逐步的上下文切换适合全局变量和通过上下文切换从一个子例程传本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/200780046679.html" title="用于处理使用上下文切换的多线程架构中的指令的装置和方法原文来自X技术">用于处理使用上下文切换的多线程架构中的指令的装置和方法</a>

【技术保护点】
一种多线程架构,其包括: 多个线程寄存器,其存储对应的多个线程上下文;以及 在所述多个线程寄存器之间的线程间通信电路,用于支持线程通信和同步。

【技术特征摘要】
【国外来华专利技术】US 2006-11-14 60/865,813;US 2006-11-14 60/865,816;1.一种多线程架构,其包括:寄存器集;执行单元集;电路,其用于调整所述寄存器集和执行单元集,来支持指令级别并行以及软件线程和硬件生成线程的执行;调度单元,用于从序列程序接收具有独立指令和相互相关指令的一组指令,并且使用继承向量调度该组指令,其中来自所述继承向量的信息被用来为带入到执行单元中执行的该组指令填充相关性信息;其中所述执行单元集处理该组指令,并且访问所述寄存器集的多个寄存器文件段,所述多个寄存器文件段是物理分段的,但表现为在每个寄存器...

【专利技术属性】
技术研发人员:M阿卜杜拉
申请(专利权)人:索夫特机械公司
类型:发明
国别省市:US[美国]

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

1