CN100561439C - 使用于多处理器系统的同步方法与装置 - Google Patents
使用于多处理器系统的同步方法与装置 Download PDFInfo
- Publication number
- CN100561439C CN100561439C CNB2005100936296A CN200510093629A CN100561439C CN 100561439 C CN100561439 C CN 100561439C CN B2005100936296 A CNB2005100936296 A CN B2005100936296A CN 200510093629 A CN200510093629 A CN 200510093629A CN 100561439 C CN100561439 C CN 100561439C
- Authority
- CN
- China
- Prior art keywords
- rotation lock
- processor
- multicomputer system
- synchronous
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种使用于多处理器系统的同步方法与装置,上述方法包括下列步骤。首先,接收处理器取得旋转锁的请求,传回旋转锁的状态至处理器。若旋转锁处于未锁定状态,则将旋转锁的状态改为锁定状态。反之,若旋转锁处于锁定状态,则暂停处理器的时钟脉冲以暂停其动作,并且将处理器排入队列。然后,接收处理器释放旋转锁的请求,将旋转锁的状态改为未锁定状态。最后,若有其它处理器在队列中等待,则根据既定策略自队列中选出一个处理器,恢复选出的处理器的动作。
Description
技术领域
本发明涉及一种使用于多处理器(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之内的所在地址。同样的,除了内建的存储器之外,相关信息也可以使用外部存储器储存。
综上所述,本发明是在处理器取得旋转锁失败之后,暂停其动作。然后在处理器的等待结束,成功取得旋转锁之前,恢复其动作。在暂停时,处理器不会象已有技术一样不断从存储器读取旋转锁状态,所以可节省系统的总线与存储器频宽,进而节省电能消耗,提高系统效能。本发明使用旋转锁控制器集中控制处理器对于旋转锁的取用,所以不需要原子操作就能达成多处理器的同步。
目前的可携式多媒体电子产品为求达到高效能与低耗电,多采用单芯片的多处理器系统。本发明特别适用于单芯片多处理器系统,只需要在单芯片系统中增加少许的逻辑线路就可以实现。
虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,任何所属技术领域的技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与改进,因此本发明的保护范围当视权利要求所界定者为准。
Claims (16)
1.一种使用于多处理器系统的同步方法,其特征是:
在处理器取得旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的动作,其中所述的使用于多处理器系统的同步方法还包括下列步骤:
接收该处理器取得该旋转锁的请求,传回该旋转锁的状态至该处理器;
若该旋转锁处于未锁定状态,则将该旋转锁的状态改为锁定状态;
若该旋转锁处于锁定状态,则暂停该处理器的动作,并且将该处理器排入队列;
接收该处理器释放该旋转锁的请求,将该旋转锁的状态改为未锁定状态;以及
若有处理器在该队列中等待,则根据既定策略自该队列中选出一个处理器,恢复选出的该处理器的动作。
2.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是还包括下列步骤:
暂停该处理器的时钟脉冲,以暂停该处理器的动作。
3.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是该既定策略为先进入该队列的处理器先恢复动作。
4.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是该既定策略为根据既定优先次序,自该队列中选出最优先的处理器。
5.一种使用于多处理器系统的同步装置,其特征是包括:
旋转锁控制器,接收并处理多个处理器取得与释放旋转锁的请求;以及
时钟控制器,提供多个时钟脉冲至上述这些处理器,并且根据该旋转锁控制器的指示,在处理器取得该旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的时钟脉冲,以暂停该处理器的动作,其中该旋转锁控制器包括:
总线接口单元,自总线矩阵接收上述这些请求;
控制逻辑单元,自该总线接口单元接收上述这些请求,处理上述这些请求,并且维护管理该旋转锁的相关信息;
仲裁单元,若有处理器需要暂停动作,则根据该控制逻辑单元的指示,发出指示信号至该时钟控制器,以暂停该处理器的动作;以及
缓存器组,以储存该相关信息。
6.根据权利要求5所述的使用于多处理器系统的同步装置,其特征是该相关信息包括该旋转锁的状态以及等待取得该旋转锁的处理器队列。
7.根据权利要求6所述的使用于多处理器系统的同步装置,其特征是该旋转锁的状态为锁定与未锁定中之一种。
8.根据权利要求6所述的使用于多处理器系统的同步装置,其特征是该相关信息还包括既定策略,该既定策略决定如何自该队列中选出最先取得该旋转锁的处理器。
9.根据权利要求6所述的使用于多处理器系统的同步装置,其特征是该相关信息还包括上述这些处理器取得该旋转锁的既定优先次序。
10.根据权利要求5所述的使用于多处理器系统的同步装置,其特征是该缓存器组还包括:
取得缓存器,储存该旋转锁的状态,并接受取得该旋转锁的请求;
释放缓存器,接受释放该旋转锁的请求;以及
队列缓存器,储存等待取得该旋转锁的处理器队列。
11.根据权利要求10所述的使用于多处理器系统的同步装置,其特征是该缓存器组还包括仲裁缓存器,以储存既定策略,该既定策略决定如何自该队列中选出最先取得该旋转锁的处理器。
12.根据权利要求10所述的使用于多处理器系统的同步装置,其特征是该缓存器组还包括优先缓存器,以储存上述这些处理器取得该旋转锁的既定优先次序。
13.根据权利要求5所述的使用于多处理器系统的同步装置,其特征是该旋转锁控制器还包括缓存器组,以储存该相关信息的其中一部分,该相关信息的其余部分则储存于存储器,该缓存器组包括地址缓存器,以储存该其余部分于该存储器的所在地址。
14.根据权利要求13所述的使用于多处理器系统的同步装置,其特征是该存储器为包含于该旋转锁控制器的内部存储器以及独立于该旋转锁控制器之外的外部存储器中之一个。
15.根据权利要求5所述的使用于多处理器系统的同步装置,其特征是该相关信息储存于存储器当中,而且该旋转锁控制器还包括地址缓存器,以储存该相关信息于该存储器的所在地址。
16.根据权利要求15所述的使用于多处理器系统的同步装置,其特征是该存储器为包含于该旋转锁控制器的内部存储器以及独立于该旋转锁控制器之外的外部存储器中之一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100936296A CN100561439C (zh) | 2005-08-31 | 2005-08-31 | 使用于多处理器系统的同步方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100936296A CN100561439C (zh) | 2005-08-31 | 2005-08-31 | 使用于多处理器系统的同步方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1924811A CN1924811A (zh) | 2007-03-07 |
CN100561439C true CN100561439C (zh) | 2009-11-18 |
Family
ID=37817466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100936296A Active CN100561439C (zh) | 2005-08-31 | 2005-08-31 | 使用于多处理器系统的同步方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100561439C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8090984B2 (en) * | 2008-12-10 | 2012-01-03 | Freescale Semiconductor, Inc. | Error detection and communication of an error location in multi-processor data processing system having processors operating in Lockstep |
-
2005
- 2005-08-31 CN CNB2005100936296A patent/CN100561439C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN1924811A (zh) | 2007-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7577823B2 (en) | Wake-up and sleep conditions of processors in a multi-processor system | |
KR101149622B1 (ko) | 장치 지향 메모리 베리어들 | |
EP3362898B1 (en) | Method for efficient task scheduling in the presence of conflicts | |
US20110161540A1 (en) | Hardware supported high performance lock schema | |
CN102077181A (zh) | 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
CN1908890B (zh) | 用于使用记录板机制处理加载锁定指令的方法和装置 | |
JP4568292B2 (ja) | キャッシュライン・ポーリングを実行する方法、装置、プログラム及び情報処理システム | |
CN103176943B (zh) | 用于功率优化的多处理器同步的方法 | |
US8725958B2 (en) | Methods and systems for maintaining cache coherency in multi-processor systems | |
JP2010044770A (ja) | モニタメモリ待機を用いたキューされたロック | |
JP2011505647A (ja) | ロックインジケータを有するマルチスレッドプロセッサ | |
CN101320289A (zh) | 提高多内核处理器性能的方法、系统和装置 | |
US20060136925A1 (en) | Method and apparatus for shared resource management in a multiprocessing system | |
US20180276052A1 (en) | Deadlock detector, system including the same and associated method | |
EP1994469B1 (en) | Method, system, apparatus and article of manufacture for performing cacheline polling utilizing a store and reserve instruction | |
CN106293894B (zh) | 执行事务性功率管理的硬件设备和方法 | |
CN111052094B (zh) | 使用c状态和睿频加速提高用户空间的自旋锁效率 | |
US20040059818A1 (en) | Apparatus and method for synchronizing multiple accesses to common resources | |
CN102681890A (zh) | 一种应用于线程级推测并行的限制性值传递方法和装置 | |
Kim et al. | $ C\!\!-\!\! Lock $: Energy Efficient Synchronization for Embedded Multicore Systems | |
US20070050527A1 (en) | Synchronization method for a multi-processor system and the apparatus thereof | |
CN100561439C (zh) | 使用于多处理器系统的同步方法与装置 | |
US9043507B2 (en) | Information processing system | |
US7552269B2 (en) | Synchronizing a plurality of processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |