动态同时多线程架构
Dynamic Simultaneous Multithreaded Architecture
AI总结:
本研究提出动态同时多线程架构DSMT,通过动态生成推测线程、状态位机制管理依赖与恢复、贪心策略选代码段来提升单程序下SMT性能,同时指出需平衡线程级并行开发与推测错误率的挑战。
摘要:
本文提出了动态同时多线程架构(Dynamic Simultaneous Multi-threaded Architecture,DSMT)。DSMT可在单个SMT(同时多线程)处理器核心上高效执行来自同一程序的多个线程。为实现这一点,线程从可预测的控制流中动态生成,随后进行推测执行。DSMT在单上下文非推测执行阶段获取的数据会作为提示,用于推测多个线程的后续行为。DSMT采用基于状态位的简单机制,可追踪寄存器和内存中的线程间依赖关系、同步线程执行并控制推测错误后的恢复。此外,DSMT使用一种新颖的贪心策略,根据代码段的过往执行历史选择能带来最高性能的代码段。研究人员使用一款全新的周期精确、执行驱动的模拟器对DSMT架构进行了仿真。仿真结果表明,即便只有单个程序可用,DSMT在提升SMT性能方面仍极具潜力。但研究也发现,动态线程行为加上频繁的推测错误也可能导致性能收益递减。因此,当前的挑战在于最大化DSMT能够开发的线程级并行度,同时降低推测错误的发生频率。
英文摘要:
This paper presents the Dynamic Simultaneous Multi-threaded Architecture (DSMT). DSMT efficiently exe-cutes multiple threads from a single program on a SMT processor core. To accomplish this, threads are generated dynamically from a predictable flow of control and then executed speculatively. Data obtained during the single context non-speculative execution phase of DSMT is used as a hint to speculate the posterior behavior of multiple threads. DSMT employs simple mechanisms based on state bits that keep track of inter-thread dependencies in registers and memory, synchronize thread execution, and control recovery from misspeculation. Moreover, DSMT utilizes a novel greedy policy for choosing those sections of code which provide the highest performance based on their past execution history. The DSMT architecture was simulated with a new cycle-accurate, execution-driven simulator. Our simulation results show that DSMT has very good potential to improve SMT performance, even when only a single program is available. However, we found that dynamic thread behavior together with fre-quent misspeculation may also produce diminishing re-turns in performance. Therefore, the challenge is to max-imize the amount of thread-level parallelism that DSMT is capable of exploiting and at the same time reduce the fre-quency of misspeculations.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。