多处理器计算机系统的制作方法

文档序号:6412407阅读:170来源:国知局
专利名称:多处理器计算机系统的制作方法
技术领域
本发明涉及一种多处理器计算机系统,包括-至少两个用于并行执行进程的处理器,-至少两个高速缓冲存储器单元,每个高速缓冲存储器单元都与一个分离的处理器相关并且与其相连,-一个将所述的处理器和所述的高速缓冲存储器单元相连的连接总线,以及-一个与所述的连接线相连的进程列表单元,用于存储对于所述处理器执行可用的进程列表。
而且,本发明涉及一个相应的处理器,一种调度进程的执行的方法以及一种由这样的一个多处理器计算机系统中的一个处理器执行进程的方法。而且,本发明涉及一种用于实现所述方法的计算机程序。
背景技术
多处理器计算机系统并行的执行多个进程。每个处理器重复地选择一个正准备执行的进程,并且执行它,直到进程中断或者,在预空闲调度中,运行进程的时间片到期。当不存在已经准备好的进程可供处理器或者特别是其关联的调度器选择时,处理器或其调度器分别等待一个旋转循环,直到在进程列表中出现一个已经准备好用于执行的进程。一个准备好的进程通过一个解锁操作变得可用,例如由运行在另一个处理器上的进程所执行的一个V去阻塞操作。
为了节省能量消耗,最好使处理器转换到一个低能耗或者睡眠模式,而不能让其循环直到一个准备好的进程变得可用。但是,其他的处理器在不花费很大开销的情况下就能够唤醒睡眠的处理器非常重要。将睡眠模式的处理器唤醒的一个标准方法是向其发送一个中断。这种方法的开销对于大多具有精细粒度同步的并行应用来说非常巨大。

发明内容
本发明的一个目的是提供一种多处理器计算机系统,一个相应的处理器,一种调度进程执行的方法以及一种由处理器执行进程的方法,在处理器中提供了一种执行进程的快速有效的方式,处理器能够在非常短的时间内在没有巨大开销的情况下在低能耗模式和正常能耗模式之间转换。
这个目的可以通过权利要求1所述的根据本发明的一个多处理器计算机系统来实现,其中所述的处理器用于将表明向所述的进程列表发信号增加进程的全局唤醒变量装载到与其相关的高速缓冲存储器单元,如果所述的进程列表不含有由所述的处理器执行的进程,处理器转换到一个低能耗模式,如果所述的唤醒变量表明向所述的进程列表增加进程,处理器就转换到正常能耗模式。
本发明是基于使用高速缓冲存储器相干协议来唤醒睡眠处理器的思想。高速缓冲存储器相干协议被设计成比中断更快速的通信,因此允许其以非常有效和快速的方式唤醒睡眠处理器。根据本发明引入了一个全局唤醒变量,该变量由处理器的高速缓冲存储器单元保存。如果已经在进程列表中增加了一个进程,所述的唤醒变量就发出信号。如果一个处理器增加了一个进程到该进程列表当中,这将通过高速缓冲存储器相干协议立即通知处理器的高速缓冲存储器单元,使处理器从低能耗模式转换到正常能耗模式。
在从属权利要求中定义了本发明的优选实施例。在权利要求6中定义了在这样的一个多处理器计算机系统中使用的处理器。在权利要求7中定义了调度进程执行的一种方法。在权利要求8中定义了由一个处理器执行进程的方法。在权利要求9中定义了实现所述方法的一个计算机程序。应当注意这些设备和方法以及计算机程序可以以与权利要求1的从属权利要求中定义的类似的或者相同的方式做出进一步的改进。
根据权利要求2所定义的本发明的一个优选实施例,通过在进程列表中增加进程改变唤醒变量来使处理器转换到正常能耗模式。在进程列表中增加进程的处理器仅需要改变唤醒变量,例如,通过执行根据权利要求3所述的优选实施例中要求的存储命令,并且将任意的新的值写入到所述变量。这将立即通知给所有的保存所述唤醒变量的高速缓冲存储器单元,从而使相关的处理器从低能耗模式转换到正常能耗模式。
根据本发明的另一方面,当在所述的进程列表中增加一个进程时,处理器向其他的处理器发送一个请求将唤醒变量从它们的相关高速缓冲存储器单元中丢弃。而且,以这种方式,其他的处理器被立即通知在进程列表中增加了一个新的进程,这样转换到正常能耗模式,在该模式下它们竭力从进程列表中获得用于执行的进程。
最好是,在根据本发明的多处理器计算机系统中应用一个基于无效的高速缓冲存储器相干协议。这意味着在存储器单元的读取命令下,检测其他的高速缓冲存储器单元从而检查它们是否包含一个比存储器单元中的数据更新的日期版本。如果处理器保存着数据的更新日期的版本,就将该版本提供给存储器。在向高速缓冲存储器单元写入数据的命令下,检测其他的处理器从而检查它们是否高速缓存了同样的数据项目。如果发生这种情况,它们应当将这些数据无效,即从它们的高速缓冲存储器单元中去除。关于高速缓冲存储器相干协议的更多的细节,特别是基于无效的高速缓冲存储器相干协议的细节可以参考John L.Hennessy和David A.Patterson,“计算机结构,定量方法”,Morgan Kaufman出版,第二版,第8.3章。


现在将参照附图详细说明本发明,其中附图1表明了一个已知的多处理器计算机系统的方框图,附图2表明了一个已知的调度进程的执行的方法的流程圈,附图3表明了根据本发明的调度进程的执行的方法的流程图,附图4表明了根据本发明在进程列表中增加一个进程的方法流程图,以及附图5表明了根据本发明的一个多处理器计算机系统的方框图。
具体实施例方式
附图1表明了一个已知的多处理器计算机系统的方框图。所述的计算机系统包括多个处理器1,在本发明中是4个,所谓的中央处理单元(CPU),在每个中央进程单元上连接一个高速缓冲存储器单元2。而且,提供了一个共享的存储器单元3,例如一个随机访问存储器,在该存储器单元中包括将被所述的处理器1执行的进程列表。处理器1通过高速缓冲存储器单元2,经过互连线4,例如一个总线,相互连接,存储单元3,其被认为含有一个进程列表单元,也与处理器1相互连接。
在附图2的流程图中表明了一种在该多处理器计算机系统中执行这样的调度执行进程的已知方法。已准备好的进程的选择,即已经准备好由一个处理器执行的进程,包括等待直到一个进程出现在所谓的“进程列表”的已经准备好的进程列表中(步骤S10)。有多个处理器在等待,因此进程列表不得不用一个锁来保护,否则,在处理器从列表中获得已准备好的进程之前,很可能其已经被另一个处理器所获得(S11)。然后在步骤S12中从列表中获得准备好的进程,以后进程列表被再次解锁,用于对其他的试图获得执行进程的处理器访问(S13)。在处理器成功从进程列表中获得用于执行的进程的情况下(S14),其执行该进程,而在相反情况下,其返回到开始,其中其被设定成试图从进程列表中获得进程的状态。目前没有执行进程的处理器因此持续地检查进程列表是否为空(S10),作为备用状态或者旋转循环。
附图3以流程图的形式表明了根据本发明的调度执行进程的方法的一个例子。根据本发明,引入了一个用于向进程列表发出增加进程信号的全局“唤醒”变量。假设在开始,处理器处于正常能耗模式并且正在寻找一个准备好的进程。在第一步骤S20,如果高速缓冲存储器中没有唤醒变量,处理器将使用正常的装载指令,将含有唤醒变量的高速缓冲线装载到高速缓冲存储器当中。接下来,处理器检查进程列表是否为空(S21)。如果在步骤S21,处理器已经在进程列表中发现一个准备好的进程,在步骤S22其首先锁定进程列表,从而防止其他的处理器访问所述的列表。接下来,处理器从进程列表中获得进程(S23),以后进程列表被再次解锁(S24)。
如果步骤S23成功,处理器将执行其获得的进程(S25)。该进程的上下文被恢复并且进程继续执行。
如果步骤S23没有成功,将以唤醒变量作为参数执行一个所谓的睡眠-同时-高速缓存(swc)指令。这意味着处理器其从其正常功耗模式转换到低功耗模式,即某种睡眠模式,其中只要唤醒变量位于其相关的高速缓冲存储器单元当中,或者更精确的说,只要其高速缓冲存储器单元的高速缓冲线保存唤醒变量,该模式将持续保持。在步骤S21给出一个积极结果的情况下,即如果已经发现进程列表为空的情况下(S26),执行相同的swc指令。
如图4所示,如果另一个处理器在进程列表中增加了一个进程来执行,其在实际增加进程(S31)以前,其首先阻塞进程列表(S30)。在再次解锁进程列表以后(S32),将对唤醒变量执行一个存储命令,即将为唤醒变量分配一个新的值(S33)。这将立即通知所有处于低能耗模式的处理器在进程列表中已经增加了一个新的进程,并且这将导致这种处理器的高速缓冲存储器单元的高速缓冲线无效,然后处理器从低能耗模式转换到正常能耗模式,并且再次开始步骤S20(参见附图3)。
由于没有执行进程的处理器没有在正常能耗模式下在旋转循环中等待,而是转换到低能耗模式,因此这样方法节省了很多能量。但是,由于根据本发明使用了一个高速缓冲存储器相干协议,使用存储在睡眠存储器中的高速缓冲存储器单元中的所述唤醒变量来向进程列表发出增加进程的信号,唤醒程序是非常迅速的,尤其比使用中断快速。
在附图5中显示了一个用于执行本发明的多处理器计算机系统的方框图。根据本发明,在处理器1和高速缓冲存储器单元2之间,除了正常数据路径6以外,还增加了附加的通信线7,8。通信线7用于从处理器1向高速缓冲存储器单元2传送唤醒地址,即向高速缓冲存储器单元2传递swc指令所指定的地址。通信线8用于从高速缓冲存储器单元2向处理器1传输唤醒信息从而当指定的地址从高速缓冲存储器单元中消失时,使处理器从低能耗模式转换到正常能耗模式。
在附图4的步骤S33中,如果一个处理器向一个唤醒变量存储一个任意值,该唤醒变量是随后发生的正常存储指令。如果另一个处理器正在寻找一个准备好的进程,那么该处理器具有其高速缓冲存储器单元中的唤醒变量,这意味着高速缓冲存储器含有与存储块相应的高速缓冲线,唤醒变量存储在上述存储块中。如果另一个处理器正在高速缓存着唤醒变量,那么试图向唤醒变量存储一个任意值的处理器由于高速缓冲存储器相干协议而不能通过存储指令该变唤醒变量,。为了进行存储操作,处理器向所有其它处理器发送一个广播,要求从它们的高速缓冲存储器单元中丢弃唤醒变量。对于高速缓冲存储器相干协议来说,尤其是MSI,MESI,MOESI类型,处理器从共享或者无效转换到修改状态。这使得正在睡眠的处理器在一个swc指令之后唤醒并且转换到正常能耗模式。然后这些处理器将检查进程列表,并且它们中的一个将成功找到刚刚加入的进程。其他的处理器将根据swc指令,转换回低能耗模式。
应当注意处理器在努力从进程列表中得到一个进程之前装载唤醒变量。以相反的顺序执行上述进程可能造成这种情形处理器转换到低能耗模式,同时在进程列表中存在一个准备好的进程。
除了节省进程调度器中的能源以外,上述介绍的根据本发明的swc指令也可以用于诸如需要处理器之间的快速同步的其他目的。尽管多种处理器都具有转换到低能耗睡眠模式的指令,但是由于根据本发明建议的高速缓冲相干转换,没有任何已知的处理器和多处理器计算机系统能够唤醒和转换到正常能耗模式,本发明提供一个非常快速和有效的解决方案。
权利要求
1.多处理器计算机系统包括-至少两个处理器用于平行并行执行处理进程,-至少两个高速缓冲存储器单元,每个高速缓冲存储器单元都与一个分离的处理器相关并且与其相连,-一个将所述的处理器和所述的高速缓冲存储器单元相连的连接总线,以及-一个与所述的连接线相连的处理进程列表单元,用于存储对所述处理器的执行可用执行的处理进程列表,其中所述的处理器用于将表明在所述的处理进程列表中增加了一个处理进程的综合全局唤醒变量装载到它们相关的相关的高速缓冲存储器单元,如果所述的处理进程列表不含有由所述的处理器执行的处理进程,转换到一个低能耗模式,如果所述的唤醒变置表明向所述的处理进程列表发信号增加处理进程,处理器就转换到正常能耗模式。
2.根据权利要求1所述的多处理器计算机系统,其中如果由于在所述的处理进程列表中增加了一个处理进程从而改变了相关高速缓冲存储器单元中存储的唤醒变量,所述的处理器用于转换到正常能耗模式。
3.根据权利要求1所述的多处理器计算机系统,其中当在所述的处理进程列表中增加一个处理进程时,所述的处理器用于在对唤醒变量中执行一个存储命令。
4.根据权利要求1所述的多处理器计算机系统,其中当在所述的处理进程列表中增加一个处理进程时,所述的处理器用于向其他的处理器发送一个请求,从而从它们的相关高速缓冲存储器单元中卸除丢弃唤醒变量。
5.根据权利要求1所述的多处理器计算机系统,其中所述的计算机系统用于实现执行一个基于无效的高速缓冲存储器相干协议。
6.用于在多处理器计算机系统中使用的处理器包括-至少两个处理器用于平行并行执行处理进程,-至少两个高速缓冲存储器单元,每个高速缓冲存储器单元都与一个分离的处理器相关并且与其相连,-一个将所述的处理器和所述的高速缓冲存储器单元相连的连接总线,以及-一个与所述的连接线相连的处理进程列表单元,用于存储对所述处理器的执行可用执行的处理进程列表,其中所述的处理器用于将表明在所述的处理进程列表中增加了一个处理进程的综合全局唤醒变量装载到它们相关的相关的高速缓冲存储器单元,如果所述的处理进程列表不含有由所述的处理器执行的处理进程,处理器转换到一个低能耗模式,如果所述的唤醒变量向所述的处理进程列表发信号表示增加处理进程,处理器就转换到正常能耗模式。
7.用于在多处理器计算机系统中调度处理进程执行的方法包括-至少两个处理器用于平行并行执行处理进程,-至少两个高速缓冲存储器单元,每个高速缓冲存储器单元都与一个分离的处理器相关并且与其相连,-一个将所述的处理器和所述的高速缓冲存储器单元相连的连接总线,以及-一个与所述的连接线相连的处理进程列表单元,用于存储对所述处理器的执行可用的处理进程列表,所述的方法包括步骤-通过处理器将一个综合全局唤醒变量装载到其相关的高速缓冲存储器单元当中,该唤醒变量表明在所述的处理进程列表中增加了一个处理进程,-在所述的处理进程列表中增加一个处理进程,以及-改变表明向所述的处理进程列表增加一个处理进程的唤醒变量,从而使所述的处理器从低能耗模式转换到正常能耗模式。
8.一种由多处理器计算机系统中的处理器所执行的处理进程方法包括-至少两个处理器用于平行并行执行处理进程,-至少两个高速缓冲存储器单元,每个高速缓冲存储器单元都与一个分离的处理器相关并且与其相连,-一个将所述的处理器和所述的高速缓冲存储器单元相连的连接总线,以及-一个与所述的连接线相连的处理进程列表单元,用于存储所述处理器的可用执行的处理进程列表,所述的方法包括步骤-通过处理器将一个综合全局唤醒变量装载到其相关的高速缓冲存储器单元当中,该唤醒变量表明在所述的处理进程列表中增加了一个处理进程,-如果所述的处理进程列表不含有由所述的处理器执行的处理进程,处理器转换到低能耗模式,-如果所述的唤醒变量表明向所述的处理进程列表增加了一个处理进程,处理器转换到正常能耗模式,以及-访问所述的处理进程列表从而获得所述的增加的执行处理进程。
9.如果所述的方法有由所述的计算机执行,含有用于使计算机执行权利要求7或者8所述的方法步骤的计算机程序代码装置的计算机程序。
全文摘要
本发明涉及一种多处理器计算机系统包括至少两个处理器用于并行执行进程;至少两个高速缓冲存储器单元,每个高速缓冲存储器单元都与一个分离的处理器相关并且与其相连;一个将所述的处理器和所述的高速缓冲存储器单元相连的连接总线,以及一个与所述的连接线相连的进程列表单元,用于存储对所述处理器的执行可用的进程列表。如果没有可用的执行进程,同时保证一个快速的唤醒进程是否存在这样的进程,为了节省能量,建议根据本发明的进程来进行,其中所述的处理器用于将全局唤醒变量装载到它们相关的相关的高速缓冲存储器单元,该变量表明在所述的进程列表中增加了一个进程,如果所述的进程列表不含有由所述的处理器执行的进程,处理器转换到一个低能耗模式,如果所述的唤醒变量向所述的进程列表发信号表示增加进程,处理器就转换到正常能耗模式。这样,根据本发明,使用高速缓冲存储器相干协议来传输和通知用于执行的进程的存在。
文档编号G06F9/52GK1666180SQ03815718
公开日2005年9月7日 申请日期2003年6月23日 优先权日2002年7月3日
发明者J·胡格布鲁格 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1