论文部分内容阅读
提高微处理器性能是广大研究者们不懈追求的目标。目前半导体工艺水平的飞速发展,为芯片设计提供了广阔的空间,如何有效利用这些不断增长的片上资源,以更短的时间开发出更快、更高效的微处理器,是当前计算机体系结构进一步发展面临的极为重要的课题之一。 采用传统的微处理器体系结构,通过开发深度指令级并行性(ILP)来提高微处理器性能受到开发时机、开发范围、自身结构和硬件实现等多方面的限制。采用片上多线程结构,通过挖掘程序的线程级并行性(TLP)克服指令级并行性难于开发的缺陷是一种有效的做法,单芯片多处理器(SCMP)结构更在开发TLP的同时可以兼顾硬件实现的简洁性,充分体现了其良好的性能潜力和实现优势。研究面向通用程序的SCMP具有很好的研究和应用价值。本文以提高通用程序在SCMP上的执行效率为目的,针对其中的关键技术进行了深入研究,主要取得了以下几个方面的研究成果: 1、提出了一种支持线程级前瞻执行(TLS)的SCMP模型——SWT(SCMP With TLS)。SWT结构在切实遵循SCMP的设计原则的同时,充分考虑通用程序的结构特征,通过非常自然的方式实现TLS,而TLS可以大大简化在通用程序中开发TLP的软硬件技术的复杂性。 2、提出了一种面向通用程序的线程划分算法。该算法充分考虑影响通用程序在多线程结构特别是SCMP结构中执行效率的各种因素;以程序控制流图(CFG)为基础,借助profiling信息对影响线程划分效果的线程体积、线程间的数据相关性等进行量化研究;建立序关系,进行程序结构分析,以简化线程划分难度。在该算法的启发式原则设计中融合了TLP开发硬件开销,在流程设计中考虑了面向SCMP之外其他多线程结构的适用性。 3、提出了基于双环结构的数据相关性解决方法。线程间的存储数据相关性是多线程结构不可避免的问题,解决数据相关性策略的优劣直接影响到处理器的执行效率。基于SWT结构,我们将TLS的数据前瞻和数据相关性统一起来,设计实现了一种基于双环结构的数据相关性解决方法。该方法硬件设计实现简单,消除了线程间的显式同步,降低了数据相关性维护操作的访问冲突。 4、提出了两阶段线程并行执行控制和通信机制。线程并行执行控制和通信机制是实现线程级并行执行的关键,本文设计的控制和通信机制充分利用片上高带宽和低延迟的优势,通过分布的线程控制单元(TCU)部件互相协同,以两阶段执行方式完成线程创建、重启、提交、清除等操作和寄存器级的数据通信,从而降低并覆盖了部分控制和通信开销,保持了良好的扩展性。 以提高通用程序的执行效率为目标的上述各个技术环节紧密结合、互为补充,是成功的关键。实验及测试结果表明,SWT结构能够在保有SCMP硬件实现优势的基础上,深