论文部分内容阅读
由于单个处理器芯片上的晶体管数目随着集成电路制造工艺的提升不断增长,处理器的功耗、散热以及设计复杂度问题越来越显著,变得不可忽视。在撰写本论文时,单个处理器上的晶体管集成度已经达到十亿级的高度。传统的通过挖掘处理器的时钟频率提高处理器性能的方法已经走到了尽头。微体系结构研究人员一直在寻找提高处理器性能而不会带来过多功耗以及设计复杂度的方法。最终,多核处理器(又称单芯片多处理器)微体系结构由于具有高性能、低功耗的优点被当作传统单核处理器的替代品而提出。然而,多核处理器这种微体系结构也并非完美无缺。它在解决硬件功耗和复杂度问题的同时,也给相关的软硬件研究领域带来了一系列的挑战。在所有的这些挑战当中,针对多核处理器微体系结构如何进行操作系统调度设计无疑是非常关键的问题之一,因为操作系统调度是决定这些多核处理器如何被充分有效利用的一个十分重要的因素。因此,针对多核处理器的调度设计已经受到越来越多的关注,成为产业界和学术界的热门课题。面向多核处理器的调度这一领域当中需要解决的课题非常多,在本文中作者仅对其中的一些问题着重进行了研究和探讨。具体来说,本文主要探讨了性能异构多核微体系架构和典型同构多核微体系架构这两种体系结构上的调度问题,并且分别针对提高吞吐量的服务器计算领域以及提高实时性的实时领域进行了研究。所取得的主要研究成果主要有以下几个方面。首先,针对性能异构多核系统提出一个新的性能衡量机制,称之为ASTPI(average stall time per instruction,单指令平均停驻时间)。性能异构多核处理器由于相对同构处理器具有更高的能效比而为业界所熟知。但是,性能异构多核处理器的高能效比是建立在准确高效的调度之上的。只有结合任务的需求和处理器核的性能进行调度才能实现性能异构处理器的充分利用。现有的方法根据任务在不同核上取得的IPC (instructions per cycle,每周期指令数)之比衡量任务的计算特性。这意味着为了衡量任务的计算特性,待调度任务需要在每一种处理器核类型上试运行一段时间以获取其执行速率。而本文提出的这种方法并不需要待调度任务在所有的处理器核上执行,在任意一个处理器核上执行就可以获得该任务的单指令平均停驻时间。其次,本文形式化地证明了任务的ASTPI值与它的性能特性成反比。也就是说,一个任务的ASTPI值越大那么这个任务的计算需求越小,反过来它的ASTPI值越小则它的计算需求越大。再次,本文还为性能异构多核处理器提出一个异构高速缓存共享模型。通过实验发现对于超过一个LLC(last level cache,最后一级缓存)的性能异构多核处理器,性能异构的核共享LLC的模式要比性能同构的核共享LLC的模式能带来更大的性能提升。另外,为了解决现有的性能异构多核处理器调度算法在调度之前都需要同步所有任务的限制,本文提出了一个自适应调度算法(称之为AS4HMS)。为了给性能最高的处理器核上分配最合适的任务,所有的任务都需要先获取它们的计算特性,然后比较它们的计算特性得出计算特性最高的任务。现有的算法采用一种全局方法,很容易成为性能瓶颈,并且要求任务必须同步并且同时到达。与现有方法不同的是,AS4HMS采用一种局部机制比较任务的计算需求,克服了现有方法的不足。最后,提出了一个轻量多核实时调度算法(称之为PSEKG)。PSEKG在现有EKG算法的基础上引入一个周期敏感机制。与EKG相比, PSEKG在不降低利用率界限的基础上,大大减少了调度次数、任务的切换次数和迁移次数。