论文部分内容阅读
随着集成电路工艺技术的发展,单个芯片上可集成的晶体管数目已达到10亿个,如何利用这些晶体管资源设计高性能处理器成为当前重要的研究课题。多线程技术通过利用晶体管资源,开发线程级并行度来提高系统性能,是未来高性能处理器发展的趋势。本文重点研究多线程处理器技术,以挖掘程序的线程级并行、提高功能部件的利用率为切入点,以降低设计复杂度、提升处理器的性能为研究目标,从多线程处理器的设计、同时多微线程体系结构、存储一致性模型和寄存器同步和共享等方面对龙芯2号多线程处理器进行了深入研究。本文的主要贡献及创新点如下:1.在分析当前多线程技术的现状和发展趋势的基础上,结合龙芯处理器的结构特点,提出龙芯2号多线程处理器设计方案,并完成了具体的微体系结构设计以及逻辑设计。在此基础上,使用0.18um CMOS工艺进行综合,进行芯片性能和面积评估。龙芯2号多线程处理器拥有超标量、同时多线程和同时多微线程三种运行模式,允许软件根据应用程序进行模式选择,最大限度地发挥处理器的性能。2.提出一种融合同时多线程技术和微线程技术的新型体系结构——同时多微线程,并且在龙芯2号多线程处理器中实现此技术。同时多微线程有效结合同时多线程技术硬件代价小、资源利用率高和微线程技术能够加速单进程应用的优点,通过软硬件协同的方式充分挖掘单进程程序的微线程级并行性。3.提出一种新的存储一致性模型——单芯片多线程一致性模型,并给出其正确性证明。单芯片多线程模型提高了处理器系统的性能,而且不需要对程序员的编程做额外的限制,单处理机的软件无需作任何修改就可以在多线程处理器上正确运行。提出一种利用例外机制维护多线程处理器的存储一致性的方法,并给出单芯片多线程一致性模型在龙芯2号多线程处理器上的具体实现方案。4.提出龙芯2号多线程处理器的线程间寄存器的同步和共享的方案。龙芯2号多线程处理器的寄存器增加Full/Empty状态,并且在译码流水级进行执行条件的检测,既避免了修正重命名的物理寄存器号的复杂逻辑,又避免阻塞整个流水线。通过线程间的寄存器快速访问,龙芯2号多线程处理器实现了快速高效的同步以及线程间的数据传递。5.在分析同时多线程和同时多微线程模式的软件需求的基础上,提出龙芯2号多线程处理器的软硬件接口协同设计解决方案,给出相应的操作系统实现方案,设计实现了配套的龙芯2同时多线程和同时多微线程Linux操作系统。龙芯2同时多线程Linux操作系统将调度两个进程同时运行在龙芯2号多线程处理器上,以此提高整个软件系统的