用于在多线程计算机系统中提供高性能和公平的机制的制作方法

文档序号:8516034阅读:450来源:国知局
用于在多线程计算机系统中提供高性能和公平的机制的制作方法
【技术领域】
[0001] 本发明的多个实施例总体涉及处理器架构,更具体地说,涉及用于在在多线程计 算机系统中提供高性能和公平的技术。
【背景技术】
[0002] 许多现代计算机系统能够执行多于一个的不同软件程序或"线程",而不必显式地 保存一个线程的状态并且恢复另一线程的状态。出于该原因,它们被称为"多线程"计算机 系统。按照被称为顺序多线程操作的一种常规方式,操作系统或其他控制机制通过允许作 为执行的候选的每一个线程在处理器上顺序地操作来允许若干线程共享资源。可将在线程 之间改变称为线程切换。按照这些常规方法中的一些方法,在当前正在执行的线程(即,前 台线程)执行了某段时期或达到其不能继续的时刻(例如,等待存储器访问或输入/输出 (I/O)传输完成或仅仅为了确保多个任务间的公平)时,这些线程被切换。可基于严格的优 先级,选择将被切入(被允许使用执行资源)的下一线程。按照其他方法,轮循方法可用于 线程切换。
[0003] 多线程操作(MT)通过允许两个(或更多)软件进程同时使用共享的系统资源来 增加总的系统吞吐量。当共享资源不完全由任何单个进程利用并可由另一进程同时有利地 使用时,增加了系统吞吐量。使系统吞吐量最大化等同于使共享资源的利用最大化。
[0004] 在时效性的多线程操作中,在任意给定时间,仅一个线程可利用主执行流水线,因 此系统必须显式地将该流水线切换到其他线程,以便通过那个线程执行指令。每一个线程 被分配给各自保持单独的架构状态的不同的硬件线程。应当以使系统吞吐量最大化(或等 效地,使利用最大化)的目标来引导线程切换策略。这包括诸如此类策略:在当前的前台 线程不能取得比后台线程更多的进展时切换线程,或者使由任何线程使用的关键资源的时 间最小化。注意,此类策略应当考虑切换线程的开销(当传入和传出进程都不能取得进展 时)。
[0005] 虽然系统资源增加的总利用是多线程化操作的主要动机,但是,完全忽视系统上 硬件线程之间的公平概念会导致客户可见的性能问题,包括拒绝服务和系统崩溃。
[0006] 例如,如果线程"A"完全受计算约束并且多线程策略仅关注使总利用最大化,则将 没有理由切换到线程"B"。可行的线程切换策略需要从使总利用最大化中作出足够的退让, 以便保证所有线程的向前进展,并且满足所有线程的期望的服务质量(QoS)度量。
[0007] 当两个线程共享资源时,给予每一个线程公平的访问意味着什么呢? 一些公平概 念建立在给予全部请求者(线程)对共享资源的相同量的访问的基础上。对应于该理念的 MT公平策略能以聪明的方式(Solomon-style)划分该资源,并且给予两个线程中的每一个 线程恰好该资源的一半。在主流水线的情况下,这意味着给予每一个线程一半时间来独占 使用该流水线。
[0008] 虽然该方法对同类的工作负荷很有作用,但总体来说它是浪费的。假设线程"A"在 75%的时间需要该主流水线,但是线程"B"仅在20%的时间需要该主流水线,则总资源需 求为95%。如果精确地给予每一个线程该流水线的50%,则该流水线的总利用仅为70%。 线程"A"使用50%的全部分配,而线程"B"仅消耗其需要的那20%。
[0009] 该"全都平等"的公平概念可能导致使由每一个线程因多线程操作而经历的放缓 相等的MT策略。当每一个线程的资源需求不同时,该策略也有类似问题。如果在程序执行 期间每一个线程的资源需求发生变化,则使放缓相等会导致严重的低效率并损害总利用, 进而限制源自多线程操作的性能增益。
[0010] 继续上述示例,留意流水线专用于线程"B"而那时线程"B"不能利用它的那30% 的时间。忽略次级效应,使线程"A"除了利用其已经拥有的50%的流水线之外,还利用那 30%并不影响线程"B"的性能。在这种情况下,流水线利用得以最大化,并且相比单线程性 能,没有一个线程经历大于2X的放缓(在该示例中,没有一个线程经历放缓)。在线程"B" 不能使用主流水线的时候拒绝线程"A"访问主流水线不会帮助线程"B"执行得更快,它只 放缓线程"A"并减小总吞吐量。
【附图说明】
[0011] 在所附附图的多个图中,以示例方式而非限制方式说明本发明的多个实施例,在 附图中,同样的参考标号指示类似的元件。
[0012] 图1是根据本发明的一个实施例的处理器或处理器核的执行流水线的框图。
[0013] 图2是多线程控制器的实施例的框图。
[0014] 图3是示出用于线程切换的方法的流程图。
[0015] 图4是示出用于更新公平计数器的方法的流程图。
[0016] 图5是示出用于基于线程切换策略选择用于执行的线程的方法的流程图。
[0017] 图6A是公平计的框图。
[0018] 图6B是策略选择单元的框图。
[0019] 图7是线程状态单元的框图。
[0020] 图8是示出用于基于线程优先级等级选择用于执行的线程的方法的流程图。
[0021] 图9A示出根据本发明的一个实施例的示例性高级向量扩展(AVX)指令格式。
[0022] 图9B示出根据本发明的另一实施例的示例性高级向量扩展(AVX)指令格式。
[0023] 图9C示出根据本发明的又一个实施例的示例性高级向量扩展(AVX)指令格式。
[0024] 图IOA是示出根据本发明的多个实施例的通用向量友好指令格式及其A类指令模 板的框图。
[0025] 图IOB是示出根据本发明的多个实施例的通用向量友好指令格式及其B类指令模 板的框图。
[0026] 图IlA是示出根据本发明的一个实施例的示例性专用向量友好指令格式的框图。
[0027] 图IlB是示出根据本发明的另一实施例的通用向量友好指令格式的框图。
[0028] 图IlC是示出根据本发明的另一实施例的通用向量友好指令格式的框图。
[0029] 图IlD是示出根据本发明的另一实施例的通用向量友好指令格式的框图。
[0030] 图12是根据本发明的一个实施例的寄存器架构的框图。
[0031] 图13A是示出根据本发明的多个实施例的示例性有序流水线和示例性的寄存器 重命名的无序发布/执行流水线的框图。
[0032] 图13B是示出根据本发明的多个实施例的要包括在处理器中的有序架构核的示 例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。
[0033] 图14A是根据本发明的一个实施例的处理器的框图。
[0034] 图14B是根据本发明的另一实施例的处理器的框图。
[0035] 图15是根据本发明的多个实施例的处理器的框图。
[0036] 图16是根据本发明的一个实施例的系统的框图;
[0037] 图17是根据本发明的实施例的更具体的示例性系统的框图。
[0038] 图18是根据本发明的另一实施例的更具体的示例性系统的框图。
[0039] 图19是根据本发明的实施例的SoC的框图。
[0040] 图20是根据本发明的多个实施例的、对照使用软件指令转换器将源指令集中的 二进制指令转换成目标指令集中的二进制指令的框图。
【具体实施方式】
[0041] 将参考以下所讨论的细节来描述本发明的各实施例和方面,并且所附附图将说明 各实施例。下列描述和附图是说明本发明的,并且不应当被解释为限制本发明。描述许多 具体的细节以提供对本发明的各实施例的透彻理解。然而,在某些实例中,不描述公知的或 常规的细节,以便提供本发明的实施例的简洁讨论。
[0042] 说明书中提到"一个实施例"或"实施例"意思是结合实施例所描述的特定的特征、 结构或特性能够被包括在本发明的至少一个实施例中。在本说明书的多处出现的短语"在 一个实施例中"不一定全部都指相同的实施例。
[0043] 根据本发明的一些实施例,提供架构和机
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1