同时多线程处理器在每时钟周期从多个线程读取指令执行,极大地提高了指令吞吐率.文中简单介绍了SMT技术,讨论了常用的取指策略,比较了各策略在提高性能方面的优劣.给出特定负载下理论上的最优取指策略,在此基础上提出一种基于负载瞬时IPC性能的动态取指策略IPCBFP.实验表明,该策略可以有效地提高负载的性能,平均加速比对于两线程负载可以达到17%,对于四线程负载可以达到8%.该策略还具有平均占用指令队列项少,指令队列冲突率低的特点,而且,对降低SMT的Cache失效率和TLB失效率方面也有一定的作用.
Simultaneous Multithreaded Processors improve the instruction throughput by allowing fetching and executing instructions from several running threads simultaneously in each clock cycle. In this paper, first, the authors introduce simply several instruction fetch policies of SMT processors, and compare their performance on improving IPC of single running workload. Next, an ideal fetch model of instruction fetch policy is given, and a realistic policy named IPCBFP, based on the ideal model, is proposed and analyzed. This policy fetches instructions for a thread according to its instantaneous IPC value and its current instruction number in the instruction queue. Simulation results show that IPCBFP policy can improve the performances of the workloads dramatically. In two-thread and four-thread mix workload experiments, the speedups are 17% and 8% on average respectively. In addition, the sizes and the conflict rates of IQ on average in the experiments with the policy are small than that with ICOUNT. 2.8 policy, which is the best fetch policy up to date to our knowledge. And the authors' policy also has some advantages on the degradation of cache miss rates and TLB miss rates.