CPU多线程技术的运用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 2.发射策略 • 发射策略有许多种,如: • SM:完全同步发射。这是一个便捷的完全同时多 线程超标量处理:每周期所有的线程竞争每一个 的发射槽。对硬件的复杂度来说,这是实现最简 单的模型,但是提供了同时多线程的潜力。下面 介绍的几个模型都对发射策略进行了约束,当然 也增加了硬件的复杂度。
• Cache组织的优化是SMT 的另一个关键技术 • SMT只有获得了更高的功能单元利用率,才 能提高指令的吞吐率。要实现这一目标, 对存储器的层次结构提出了挑战。多线程 对Cache提出了更高的要求,由于要获得高 指令吞吐量,就需要和运算能力相匹配的 持续的指令流,因此Cache系统可能成为最 大的瓶颈。 • Cache共享有时会导致性能损失,不用的 Cache配置对CPU性能的影响大不相同。我 们采用一个基于简单的标量模拟器模拟环 境来模拟一个SMT处理器。
功耗问题在微处理器设计中变得 越来越重要
• SMT结构是一种功耗有效的处理器结构,与传统的单线程 超标量结构相比具有一定的低功耗优势。实验结果表明: 在4个线程同时执行的情况下,执行每条有用指令所需的 平均能量比单个线程执行的情况下改进22%。SMT结构中 程序执行所需能量减少的主要原因,一是减少了资源利用 率低造成的能量浪费,二是减少了无用指令占用资源,减 少无用指令是SMT结构功耗低的主要因素。SMT结构通过 在多个线程间取指执行能有效地容忍误预测分支指令,从 而有效地减少无用指令数。此外,尽管SMT同时执行多个 线程给Cache造成了很大压力从而增加功耗,例如L2 Cache 的不命中率增加会导致功耗增加,但实验结果表明,无用 指令数的减少对减少功耗起了决定性作用。
综合了多发射的超标量处理器和多线程处 理器的特性。同时多线程处理器可以在一 个时钟周期内发射多条指令,这是继承于 超标量处理的特性;和多线程处理器类似, SMT处理器为多个程序(或线程)保留了硬 件现场。
• 同时多线程(SMT)挖掘了线程级和指令级的并 行性,在提高CPU性能方面走出了一条新路 • 今天,处理器的运算速度达到了每秒10亿次, 研究人员仍然在思考如何获得计算性能的显著提 高。一般来说挖掘运算所有层次、形式的并行度 成为一项重要的手段。在一个程序里面通常有两 种并行:指令级并行(Instruction Level Parallelism, ILP),可同时执行两条或多条连续的指令,并且 不破坏因指令间数据传递而产生的顺序语义;线 程级并行(Thread Level Parallelism, TLP),线程级 的并行有更高的层次,一个程序由一组并行执行 的任务组成。以往CPU结构挖掘应用程序的并行 度往往只从某一种并行入手,最好的解决办法就 是开发全方位的并行度。
发射能力比较
优化取指及发射策略是SMT的关键技术
SMT获得高性能的关键是: ● 优化发射策略:由此获得高功能部件利用率 ,进而得到高指令吞吐率。 ● 优化存储子系统,提供有效的策略来保证 数据的供应。
1.取指策略 • SMT的取指部件利用各个线程竞争取指带宽来提高性能。 首先,SMT在各个线程间分配取指带宽。这是SMT的优点 :如果取指部件只能访问一个线程,由于存在转移指令和 Cache行边界,使得装填满发射槽很困难;而SMT可以有多 个线程竞争取指部件,就可以减少因0发射周期带来的浪 费。 • 其次,处理器每周期可以从两个以上的线程取指,这样提 高了只取有用(不是投机的)指令的可能性。 • 再次,当取指部件智能到知道应该到哪个线程取指的时候 ,就可以去那些processors 多线程处理器
研究组员 李鹏飞 070302308 柳祚前 070302310 钱冰雁 070302313 田荣荣 070302318 王晗 070302321 吴瑕 070302323
•
线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准 的线程由线程ID,当前指令指针(PC),寄存器集合和 堆栈组成。另外,线程是进程中的一个实体,是被系 统独立调度和分派的基本单位,线程自己不拥有系统 资源,只拥有一点在运行中必不可少的资源,但它可 与同属一个进程的其它线程共享进程所拥有的全部资 源。一个线程可以创建和撤消另一个线程,同一进程 中的多个线程之间可以并发执行。由于线程之间的相 互制约,致使线程在运行中呈现出间断性。线程也有 就绪、阻塞和运行三种基本状态。 线程是程序中一个单一的顺序控制流程.在单个程 序中同时运行多个线程完成不同的工作,称为多线程
多线程技术
如果某个线程进行 一次长延迟操作, 处理器就切换到另 一个线程执行。这 样,多个线程的并 行(并发)执行隐藏了 长延迟,提高了处 理器资源利用率, 从而提高了整体性 能。
多线程是为了同步完成多项任务,不是 为了提高运行效率,而是为了提高资源 使用效率来提高系统的效率
同时多线程处理器 (simultaneous multithreading,SMT)
超 线 程 技 术
Intel 的SMT技术——超线程技术
超线程(Hyper Threading)是同时多线程技术(SMT)的 一种,这种技术可经由复制处理器上的结构状态,让同一 个处理器上的多个线程同步执行并共享处理器的执行资源。 对支持多处理器功能的应用程序而言,超线程处理器 被视为两个分离的逻辑处理器。应用程序不须修正就可使 用这两个逻辑处理器。同时,每个逻辑处理器都可独立响 应中断。第一个逻辑处理器可追踪一个软件线程,而第二 个逻辑处理器则可同时追踪另一个软件线程。由于两个线 程共同使用同样的执行资源,因此不会产生一个线程执行 的同时另一个线程闲置的状况。 这种方式将会提升每个 实体处理器中的执行资源的使用率。 这项技术为新功能 及用户不断增长的需求提供了更大的改善空间。