同时多线程(SMT,Simultaneous Multithreading)处理器中,同时运行的线程在共享资源的同时也在竞争资源.如果一个发生L2 cache失效的线程长时间占用共享资源,那么会导致其他线程运行速度减慢,甚至会因为缺少资源而停顿下来,从而降低了SMT处理器的总体性能.本文提出了一种基于多个取指优先级的同时多线程取指策略MFP(Multiple Fetch Priorities),用于减少L2 cache失效给处理器性能带来的负面影响.模拟结果表明,无论使用IPC作为度量标准还是使用Hmean作为度量标准,对于所有类型的工作负载,尤其是存储器访问密集的工作负载,MFP都要优于现有的其他取指策略.此外,对于不同的取指策略,MFP表现出不同程度的提升.相对于PDG的提升最明显,平均IPC以及平均Hmean分别提高了19.2%和27.7%.
Abstract: In Simultaneous Multithreading (SMT) processors, co-scheduled threads share the processor's resources, but at the same time compete for them. A thread missing in L2 cache may occupy most of available resources for a long time,causing other threads run slower than they could or even stall because of lack of resources. As a result, the overall performance of SMT processors is degraded. In this paper, we propose a novel fetch policy called MFP (Multiple Fetch Priorities) to prevent the negative effects caused by L2 cache misses. Results show that our policy outperforms previously proposed fetch policies for all types of workloads, especially for memory bounded workloads, whether using IPC as a metric or using the harmonic mean as a metric. Results also tell that our policy shows different degrees of improvement over other fetch policies. The increment over PDG is greatest, reaching 19.2% in IPC and 27.7% in Hmean on average.