使用于多处理器系统的同步方法与装置的制作方法

文档序号:6639352阅读:125来源:国知局
专利名称:使用于多处理器系统的同步方法与装置的制作方法
技术领域
本发明涉及一种使用于多处理器(multi-processor)系统的同步(synchronization)方法与装置,且特别是涉及一种使用旋转锁(spinlock)的同步方法与装置。
背景技术
在多处理器系统中,旋转锁是必要的同步机制。在不同处理器上执行的程序,如果同时去修改共享的数据结构,会造成数据错误,必须通过旋转锁的机制,只有成功取得(acquire)该数据结构的旋转锁的程序,才有权去修改共享的数据结构,如此可以保障共享的数据结构的正确。
旋转锁的设计会影响整个多处理器系统的效能,传统做法的旋转锁是使用存储器当中的一个地址,通过处理器的原子操作(atomic operation,如test-and-set、load-linked、store-conditional等)以及软件程序来取得旋转锁。如果取得成功,就可以去修改共享的数据结构。如果取得失败,处理器就会进入循环(loop),不断检查旋转锁的状态。当多个处理器都在检查旋转锁的时候,会消耗许多总线(bus)与存储器的频宽(bandwidth),系统效能会因此下降。

发明内容
本发明的目的是提供一种使用于多处理器系统的同步方法,可节省系统的总线与存储器频宽。
本发明的另一目的是提供一种使用于多处理器系统的同步装置,不需要原子操作就能达成多处理器的同步,而且可节省电能消耗,提高系统效能。
为达成上述及其它目的,本发明提出一种使用于多处理器系统的同步方法,其特征在于在处理器取得旋转锁失败之后,以及成功取得旋转锁之前,暂停其时钟脉冲(clock signal),以暂停其动作。
上述使用于多处理器系统的同步方法,在一实施例中还包括下列步骤首先,接收处理器取得旋转锁的请求(request),传回旋转锁的状态至处理器。若旋转锁处于未锁定状态,则将旋转锁的状态改为锁定状态。反之,若旋转锁处于锁定状态,则暂停处理器的动作,并且将处理器排入队列(queue)。然后,接收处理器释放(release)旋转锁的请求,将旋转锁的状态改为未锁定状态。最后,若有其它处理器在队列中等待,则根据既定策略自队列中选出一个处理器,恢复选出的处理器的动作。
从另一观点来看,本发明另提出一种使用于多处理器系统的同步装置,包括旋转锁控制器以及时钟控制器(clock controller)。旋转锁控制器接收并处理多个处理器取得与释放旋转锁的请求。时钟控制器则提供多个时钟脉冲至上述处理器,并且根据旋转锁控制器的指示,在处理器取得旋转锁失败之后,以及成功取得旋转锁之前,暂停此处理器的时钟脉冲,以暂停此处理器的动作。
依照本发明的较佳实施例所述,本发明是在处理器取得旋转锁失败之后,暂停其动作。然后在处理器的等待结束,成功取得旋转锁之前,恢复其动作。在暂停时,处理器不会象已有技术一样不断从存储器读取旋转锁状态,所以可节省系统的总线与存储器频宽,进而节省电能消耗,提高系统效能。本发明使用旋转锁控制器集中控制处理器对于旋转锁的取用,所以不需要原子操作就能达成多处理器的同步。
目前的可携式多媒体电子产品为求达到高效能与低耗电,多采用单芯片的多处理器系统。本发明特别适用于单芯片多处理器系统,只需要在单芯片系统中增加少许的逻辑线路就可以实现。
为让本发明的上述和其它目的、特征和优点能更明显易懂,下文特举本发明的较佳实施例,并配合附图,作详细说明如下。


图1与图2为根据于本发明一实施例的使用于多处理器系统的同步方法流程图。
图3为根据于本发明一实施例的使用于多处理器系统的同步装置示意图。
图4至图6为图3的旋转锁控制器的可能结构示意图。主要元件标记说明100~190、200~240流程图步骤300多处理器系统310同步装置311~314处理器320总线矩阵330时钟控制器340旋转锁控制器350存储器410总线接口单元420控制逻辑单元430仲裁单元440缓存器组441取得缓存器442释放缓存器443队列缓存器444仲裁缓存器445优先缓存器520控制逻辑单元
540缓存器组541地址缓存器550存储器620控制逻辑单元640地址缓存器具体实施方式
图1为根据于本发明一实施例的使用于多处理器系统的同步方法流程图的其中一部分。图1本身分为两个部分,在垂直虚线左边是处理器取得旋转锁的流程,右边是本方法的核心,也就是同步装置接受并处理来自处理器的请求的流程。
首先,在步骤100,处理器开始尝试取得旋转锁。在步骤110,处理器会自同步装置提供的取得缓存器(acquisition register)读取旋转锁的状态,而这个读取动作本身也等于向同步装置发出取得旋转锁的请求。在步骤160,同步装置收到处理器的请求后,会将旋转锁状态传回给处理器。
接下来,同步装置会在步骤170检查旋转锁状态,处理器也会在步骤120检查旋转锁状态。如果这时候旋转锁处于未锁定状态,表示未被占用,同步装置会在步骤190将旋转锁的状态改为锁定状态。另一方面,处理器会在步骤150成功取得旋转锁,也就是占有旋转锁,然后就可以去修改共享的数据结构。
反之,如果在同步装置收到请求时旋转锁已经处于锁定状态,表示有其它处理器占有旋转锁,目前的取得动作已经失败。这时候,同步装置会在步骤180暂停取得旋转锁失败的处理器的动作,并且将这个处理器排入队列等待。在本实施例中,同步装置是以暂停处理器的时钟脉冲,来暂停处理器的动作。
另一方面,当处理器在步骤120发现旋转锁已经处于锁定状态,就会进入回到步骤110的循环继续尝试取得旋转锁,但是很快就会在步骤130被同步装置暂停动作。当队列中的等待结束,在步骤140被同步装置恢复动作之后,处理器会回到步骤110,继续尝试取得旋转锁。如果这时候没有其它竞争者,处理器就可以成功占有旋转锁。
现在请参照图2,图2为根据于本实施例的同步方法流程图的另一部分。图2同样分为两个部分,在垂直虚线左边是处理器释放旋转锁的流程,右边是同步装置方面接受并处理来自处理器的请求的流程。
首先,处理器在步骤200开始释放旋转锁,在步骤210写入任一数值到同步装置提供的释放缓存器(release register)。在本实施例中,这个写入动作等于向同步装置提出释放旋转锁的请求。接着在步骤220,同步装置收到处理器的请求后,会将旋转锁的状态改为未锁定状态。然后在步骤230,同步装置会检查是否有其它处理器在队列中等待取得旋转锁。如果有,同步装置会在步骤240根据既定策略从队列中选出一个处理器,并且恢复选出的处理器的动作。在本实施例中,上述既定策略可以是先进入队列的处理器先恢复动作(先进先出),或是根据既定优先次序(priority),从队列中选出最优先的处理器,或是公知的其它选择或分配策略。
现在请参照图3,图3为根据于本实施例的多处理器系统300的架构示意图。多处理器系统300包括处理器311~314、总线矩阵(bus matrix)320、存储器350、以及本发明提出的同步装置310。
图1及图2当中虚线右边的流程,就是由同步装置310负责执行。同步装置310包括旋转锁控制器340以及时钟控制器330。旋转锁控制器340通过总线矩阵320接收处理器311~314取得与释放旋转锁的请求,并且处理上述请求。时钟控制器330则提供时钟脉冲至处理器311~314,并且根据旋转锁控制器340的指示,在处理器311~314其中的任何一个取得旋转锁失败之后,以及成功取得旋转锁之前,暂停上述处理器的时钟脉冲,以暂停其动作。
图4为旋转锁控制器340的结构示意图。旋转锁控制器340包括总线接口单元410、仲裁单元430、控制逻辑单元420、以及缓存器组440。其中,总线接口单元410自总线矩阵320接收来自处理器311~314的请求。控制逻辑单元420自总线接口单元410接收上述请求,然后处理上述请求,同时维护管理旋转锁的相关信息。若有处理器需要暂停动作时,仲裁单元430会根据控制逻辑单元420的指示,发出指示信号至时钟控制器330,以暂停处理器的动作。
上述旋转锁的相关信息,在本实施例中包括旋转锁的状态、等待取得旋转锁的处理器队列、以及自队列中选择处理器的既定策略等等。本实施例的旋转锁状态只有两个,就是锁定或未锁定。上述既定策略,是为了决定如何自队列中选出最先取得旋转锁的处理器,在本实施例中可以是先进先出(first in first out)、根据既定优先次序、或公知的其它方式。如果是根据优先次序,这个既定的次序也可以包含在旋转锁的相关信息中。
至于旋转锁的相关信息如何储存,有三种方式。第一种是全部储存于缓存器(register)。第二种是部分储存于缓存器,部分储存于存储器。第三种是全部储存于存储器。而图4表示的是全部储存于缓存器的做法。
图4的缓存器组440就是用来储存旋转锁的相关信息,包括取得缓存器441、释放缓存器442、队列缓存器443、仲裁缓存器444、以及优先缓存器445。其中,取得缓存器441储存旋转锁的状态。若有处理器读取取得缓存器441,则视同发出取得旋转锁的请求。若有处理器将任何数值写入释放缓存器442,则视同发出释放旋转锁的请求。队列缓存器443储存等待取得旋转锁的处理器队列。仲裁缓存器444储存自队列中选择处理器的既定策略。而优先缓存器445则储存各处理器的既定优先次序。
图5表示的是以上述第二种方式储存旋转锁相关信息的旋转锁控制器340。在图5当中有一部分的旋转锁相关信息储存在缓存器组540,其余部分的相关信息则储存在耦接于控制逻辑单元520的存储器550。缓存器组540包括地址缓存器541,以储存上述其余部分在存储器550之内的所在地址。当然,缓存器组540也包括其它缓存器,用以储存归属于缓存器组540的相关信息。因为控制逻辑单元520是通过地址缓存器541取用存储器550之内的旋转锁相关信息,只要改变地址缓存器541的内容,就可以在执行时间实时分配或变动相关信息的存储器地址。如此可增加应用上的弹性。
除了使用内建于旋转锁控制器340的存储器550之外,在本发明的范围中,也可以使用外部的存储器储存旋转锁相关信息,例如图3的系统存储器350。如果使用外部存储器,控制逻辑单元520会通过总线矩阵320存取外部存储器的相关信息。
最后,图6表示的是以上述第三种方式储存旋转锁相关信息的旋转锁控制器340。在图6当中,所有相关信息都储存在耦接于控制逻辑单元620的存储器550。而地址缓存器640是用来储存旋转锁相关信息在存储器550之内的所在地址。同样的,除了内建的存储器之外,相关信息也可以使用外部存储器储存。
综上所述,本发明是在处理器取得旋转锁失败之后,暂停其动作。然后在处理器的等待结束,成功取得旋转锁之前,恢复其动作。在暂停时,处理器不会象已有技术一样不断从存储器读取旋转锁状态,所以可节省系统的总线与存储器频宽,进而节省电能消耗,提高系统效能。本发明使用旋转锁控制器集中控制处理器对于旋转锁的取用,所以不需要原子操作就能达成多处理器的同步。
目前的可携式多媒体电子产品为求达到高效能与低耗电,多采用单芯片的多处理器系统。本发明特别适用于单芯片多处理器系统,只需要在单芯片系统中增加少许的逻辑线路就可以实现。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,任何所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与改进,因此本发明的保护范围当视权利要求所界定者为准。
权利要求
1.一种使用于多处理器系统的同步方法,其特征是在处理器取得旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的动作。
2.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是还包括下列步骤暂停该处理器的时钟脉冲,以暂停该处理器的动作。
3.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是还包括下列步骤接收该处理器取得该旋转锁的请求,传回该旋转锁的状态至该处理器;若该旋转锁处于未锁定状态,则将该旋转锁的状态改为锁定状态;若该旋转锁处于锁定状态,则暂停该处理器的动作,并且将该处理器排入队列;接收该处理器释放该旋转锁的请求,将该旋转锁的状态改为未锁定状态;以及若有处理器在该队列中等待,则根据既定策略自该队列中选出一个处理器,恢复选出的该处理器的动作。
4.根据权利要求3所述的使用于多处理器系统的同步方法,其特征是该既定策略为先进入该队列的处理器先恢复动作。
5.根据权利要求3所述的使用于多处理器系统的同步方法,其特征是该既定策略为根据既定优先次序,自该队列中选出最优先的处理器。
6.一种使用于多处理器系统的同步装置,其特征是包括旋转锁控制器,接收并处理多个处理器取得与释放旋转锁的请求;以及时钟控制器,提供多个时钟脉冲至上述这些处理器,并且根据该旋转锁控制器的指示,在处理器取得该旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的时钟脉冲,以暂停该处理器的动作。
7.根据权利要求6所述的使用于多处理器系统的同步装置,其特征是该旋转锁控制器包括总线接口单元,自总线矩阵接收上述这些请求;控制逻辑单元,自该总线接口单元接收上述这些请求,处理上述这些请求,并且维护管理该旋转锁的相关信息;以及仲裁单元,若有处理器需要暂停动作,则根据该控制逻辑单元的指示,发出指示信号至该时钟控制器,以暂停该处理器的动作。
8.根据权利要求7所述的使用于多处理器系统的同步装置,其特征是该相关信息包括该旋转锁的状态以及等待取得该旋转锁的处理器队列。
9.根据权利要求8所述的使用于多处理器系统的同步装置,其特征是该旋转锁的状态为锁定与未锁定中之一种。
10.根据权利要求8所述的使用于多处理器系统的同步装置,其特征是该相关信息还包括既定策略,该既定策略决定如何自该队列中选出最先取得该旋转锁的处理器。
11.根据权利要求8所述的使用于多处理器系统的同步装置,其特征是该相关信息还包括上述这些处理器取得该旋转锁的既定优先次序。
12.根据权利要求7所述的使用于多处理器系统的同步装置,其特征是该旋转锁控制器还包括缓存器组,以储存该相关信息。
13.根据权利要求12所述的使用于多处理器系统的同步装置,其特征是该缓存器组还包括取得缓存器,储存该旋转锁的状态,并接受取得该旋转锁的请求;释放缓存器,接受释放该旋转锁的请求;以及队列缓存器,储存等待取得该旋转锁的处理器队列。
14.根据权利要求13所述的使用于多处理器系统的同步装置,其特征是该缓存器组还包括仲裁缓存器,以储存既定策略,该既定策略决定如何自该队列中选出最先取得该旋转锁的处理器。
15.根据权利要求13所述的使用于多处理器系统的同步装置,其特征是该缓存器组还包括优先缓存器,以储存上述这些处理器取得该旋转锁的既定优先次序。
16.根据权利要求7所述的使用于多处理器系统的同步装置,其特征是该旋转锁控制器还包括缓存器组,以储存该相关信息的其中一部分,该相关信息的其余部分则储存于存储器,该缓存器组包括地址缓存器,以储存该其余部分于该存储器的所在地址。
17.根据权利要求16所述的使用于多处理器系统的同步装置,其特征是该存储器为包含于该旋转锁控制器的内部存储器以及独立于该旋转锁控制器之外的外部存储器中之一个。
18.根据权利要求7所述的使用于多处理器系统的同步装置,其特征是该相关信息储存于存储器当中,而且该旋转锁控制器还包括地址缓存器,以储存该相关信息于该存储器的所在地址。
19.根据权利要求18所述的使用于多处理器系统的同步装置,其特征是该存储器为包含于该旋转锁控制器的内部存储器以及独立于该旋转锁控制器之外的外部存储器中之一个。
全文摘要
一种使用于多处理器系统的同步方法与装置,上述方法包括下列步骤。首先,接收处理器取得旋转锁的请求,传回旋转锁的状态至处理器。若旋转锁处于未锁定状态,则将旋转锁的状态改为锁定状态。反之,若旋转锁处于锁定状态,则暂停处理器的时钟脉冲以暂停其动作,并且将处理器排入队列。然后,接收处理器释放旋转锁的请求,将旋转锁的状态改为未锁定状态。最后,若有其它处理器在队列中等待,则根据既定策略自队列中选出一个处理器,恢复选出的处理器的动作。
文档编号G06F15/16GK1924811SQ200510093629
公开日2007年3月7日 申请日期2005年8月31日 优先权日2005年8月31日
发明者段正明 申请人:财团法人工业技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1