【技术实现步骤摘要】
本专利技术涉及一种使用于多处理器(multi-processor)系统的同步(synchronization)方法与装置,且特别是涉及一种使用旋转锁(spinlock)的同步方法与装置。
技术介绍
在多处理器系统中,旋转锁是必要的同步机制。在不同处理器上执行的程序,如果同时去修改共享的数据结构,会造成数据错误,必须通过旋转锁的机制,只有成功取得(acquire)该数据结构的旋转锁的程序,才有权去修改共享的数据结构,如此可以保障共享的数据结构的正确。旋转锁的设计会影响整个多处理器系统的效能,传统做法的旋转锁是使用存储器当中的一个地址,通过处理器的原子操作(atomic operation,如test-and-set、load-linked、store-conditional等)以及软件程序来取得旋转锁。如果取得成功,就可以去修改共享的数据结构。如果取得失败,处理器就会进入循环(loop),不断检查旋转锁的状态。当多个处理器都在检查旋转锁的时候,会消耗许多总线(bus)与存储器的频宽(bandwidth),系统效能会因此下降。
技术实现思路
本专利技术的目的是提供一种 ...
【技术保护点】
一种使用于多处理器系统的同步方法,其特征是:在处理器取得旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的动作。
【技术特征摘要】
1.一种使用于多处理器系统的同步方法,其特征是在处理器取得旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的动作。2.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是还包括下列步骤暂停该处理器的时钟脉冲,以暂停该处理器的动作。3.根据权利要求1所述的使用于多处理器系统的同步方法,其特征是还包括下列步骤接收该处理器取得该旋转锁的请求,传回该旋转锁的状态至该处理器;若该旋转锁处于未锁定状态,则将该旋转锁的状态改为锁定状态;若该旋转锁处于锁定状态,则暂停该处理器的动作,并且将该处理器排入队列;接收该处理器释放该旋转锁的请求,将该旋转锁的状态改为未锁定状态;以及若有处理器在该队列中等待,则根据既定策略自该队列中选出一个处理器,恢复选出的该处理器的动作。4.根据权利要求3所述的使用于多处理器系统的同步方法,其特征是该既定策略为先进入该队列的处理器先恢复动作。5.根据权利要求3所述的使用于多处理器系统的同步方法,其特征是该既定策略为根据既定优先次序,自该队列中选出最优先的处理器。6.一种使用于多处理器系统的同步装置,其特征是包括旋转锁控制器,接收并处理多个处理器取得与释放旋转锁的请求;以及时钟控制器,提供多个时钟脉冲至上述这些处理器,并且根据该旋转锁控制器的指示,在处理器取得该旋转锁失败之后,以及该处理器成功取得该旋转锁之前,暂停该处理器的时钟脉冲,以暂停该处理器的动作。7.根据权利要求6所述的使用于多处理器系统的同步装置,其特征是该旋转锁控制器包括总线接口单元,自总线矩阵接收上述这些请求;控制逻辑单元,自该总线接口单元接收上述这些请求,处理上述这些请求,并且维护管理该旋转锁的相关信息;以及仲裁单元,若有处理器需要暂停动作,则根据该控制逻辑单元的指示,发出指示信号至该时钟控制器,以暂停该处理器的动作。8.根据权利要求7所述的使用于多处理器系统的同步装置,其特征是该相关信息包括该旋转锁的状态以及等待取得该旋转锁的处理器队列。9.根据权利要求8所述的使用于...
【专利技术属性】
技术研发人员:段正明,
申请(专利权)人:财团法人工业技术研究院,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。