首页> 中国专利> 适用于多处理器系统的硬件同步电路结构及其实现方法

适用于多处理器系统的硬件同步电路结构及其实现方法

摘要

本发明公开了一种适用于多处理器系统的硬件同步电路结构,该硬件同步电路结构支持多个处理器通过一定的互联方式与其相联,提供了配置和访问接口;目标系统至少包括多个处理器、一个硬件同步电路结构和一个互斥信号量单元。本发明同时公开了一种实现多处理器系统的硬件同步电路结构的方法。本发明能够高效的实现多处理器通信和并行任务调度,而且简化多处理器的并行编程工作。该电路结构相对其他同步结构和方法简单易用,复杂度低,并且可以方便的整合到系统设计过程中。

著录项

  • 公开/公告号CN101840390A

    专利类型发明专利

  • 公开/公告日2010-09-22

    原文格式PDF

  • 申请/专利权人 中国科学院微电子研究所;

    申请/专利号CN200910080058.0

  • 发明设计人 许汉荆;刘建;陈杰;

    申请日2009-03-18

  • 分类号G06F15/163(20060101);G06F13/38(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人周国城

  • 地址 100029 北京市朝阳区北土城西路3号

  • 入库时间 2023-12-18 00:48:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-07-28

    专利权的转移 IPC(主分类):G06F15/163 专利号:ZL2009100800580 登记生效日:20230718 变更事项:专利权人 变更前权利人:中科芯(荣成)信息技术产业研究院有限公司 变更后权利人:中国科学院微电子研究所 变更事项:地址 变更前权利人:264315 山东省威海市荣成市崂山南路788号 变更后权利人:100029 北京市朝阳区北土城西路3号

    专利申请权、专利权的转移

  • 2020-05-12

    专利权的转移 IPC(主分类):G06F15/163 登记生效日:20200422 变更前: 变更后: 申请日:20090318

    专利申请权、专利权的转移

  • 2019-09-27

    专利权的转移 IPC(主分类):G06F15/163 登记生效日:20190906 变更前: 变更后: 申请日:20090318

    专利申请权、专利权的转移

  • 2012-05-23

    授权

    授权

  • 2010-11-10

    实质审查的生效 IPC(主分类):G06F15/163 申请日:20090318

    实质审查的生效

  • 2010-09-22

    公开

    公开

查看全部

说明书

技术领域

本发明涉及片上多处理器系统技术领域,具体涉及一种适用于多处理器系统的硬件同步电路结构及其实现方法。

背景技术

随着多媒体、移动通信等技术的发展,人们对处理器运算能力的需求越来越高。然而传统单核由于功耗、存储器带宽和工作频率等方面的条件制约,在性能提高上受到了较大限制,因此提高处理器并行度成了提高其运算能力的新的突破口。多处理器体系结构有效的提高计算的并行度,适应计算密集型应用的要求,然而在存储器数据一致性、软件编程、任务调度方面,多处理器结构确引入的新的难点。

在多核共享存储器设计中,处理器可以拥有自己的数据缓存器(Cache)。当一个处理器修改了共享存储器数据时,必须通过一种同步机制,告诉其他处理器修改他们私有Cache的数据,从而避免在以后的运行中使用过时数据而引发错误。并行程序设计中,同步原语尤其重要,它是协调各个进程按照合理的顺序协作完成复杂任务的基础。例如在分布式多媒体系统中,数据的传输、解码、音视频同步都需要精确的同步控制。

同步设计已经成为了多处理器系统设计的关键。不同的多处理器系统都提供了相应的硬件原语来支持这些同步操作。在分布式系统中,比如通过MPI协议构建的多处理器系统中,就利用了栅栏同步(BarrierSynchronize)操作来确保多个进程的同步操作。其具体的实现一般包括定时同步、中断控制等方式。

定时同步多用在分布式网络操作系统的一种同步方式。如果一台节点处理器需要其他节点并发完成某项任务,可以向其他节点发送带有定时信息的数据包。由于全网采用同一时钟,其他节点根据接收数据包,将在同一时刻启动任务,从而达到同步目的。这种方式适用于基于网络的大型分布式系统,具有较高的同步代价。而且同步数据包往往还会受到网络阻塞等因素影响,而错过同步时间。

另一种广泛使用的同步机制是中断(Interrupt),它在片上多处理器系统和多核处理器系统上都有效。通过触发中断,强迫处理器暂停当前任务,与中断发起者同步完成某一任务。但是不同的处理器中断响应速度不同,而且被动中断过程也无法精确定位中断前处理器的程序执行状态,加大了软件开发的复杂度。

避免由于“定时同步”和“中断”引起的同步开销和编程复杂度增加,就是确保同步操作软件透明,由硬件自动完成。任何一个这样的操作都必须以单个指令执行,中间不能中断,且为基本指令。这些原子操作的基本指令可以适用于各种体系结构的处理器。

发明内容

(一)要解决的技术问题

有鉴于此,本发明的主要目的在于为多处理器系统提供一种适用于多处理器系统的硬件同步电路结构及其实现方法,以满足多个处理器协作完成复杂任务时的调度与同步等要求。

(二)技术方案

为达到上述目的,本发明提供的技术方案是这样的:

一种适用于多处理器系统的硬件同步电路结构,其特征在于,该硬件同步电路结构由连接在系统总线101上的硬件同步单元电路构成,该硬件同步单元电路包括读使能107、写使能104、读数据102、写数据105、读应答103和处理器ID号106,该硬件同步单元电路还包括有效标志位108、同步请求寄存器109、同步完成寄存器110以及状态控制逻辑单元111。

优选地,所述有效标志位108用于记录该硬件同步单元电路是否被使用,同步请求寄存器109用于记录需要进行同步操作的处理器编号,同步完成寄存器110用于记录已经完成同步操作的处理器编号。

优选地,所述系统总线101连接有读数据102、读应答103、写使能104、写数据105、处理器ID号106和读使能107,其中,写数据105有效位宽和同步请求寄存器109、同步完成寄存器110相同,每一比特分别对应一个处理器。

优选地,所述处理器对硬件同步单元电路进行配置操作时,在获得该硬件同步单元电路相关联信号量后,对其进行写操作,配置需要同步的处理器组。

优选地,所述处理器对硬件同步单元电路进行读操作时,硬件同步单元电路根据内部寄存器状态决定返回处理器的各类响应,而处理器通过分析读数据可得出已同步的处理器信息以及该硬件同步单元电路的可使用情况。

优选地,所述处理器对硬件同步单元电路进行读操作,包括以下多种结果:

1)、硬件同步单元电路有效标志位为0,读操作立即返回特定值,该值表示同步单元未被使用;或者

2)、硬件同步单元电路有效标志位为1,同步请求寄存器中对应该处理器位为0,读操作立即返回特定值,该值表示该处理器并未被要求实现同步操作;或者

3)、不向处理器返回值,使该处理器一直处于读操作未完成状态,等其同步请求寄存器中列举的其他处理器全部进行同步操作后,修改同步单元电路状态,并向所有等待读操作结果的处理器返回完成状态。

一种适用于多处理器系统的硬件同步电路结构的目标系统,该目标系统至少包括多个处理器、一个硬件同步电路结构和一个互斥信号量模块;所述多个处理器通过一定的互联方式与硬件同步电路结构相连,可并发读操作访问该硬件同步电路结构,并可通过互斥信号量模块对该硬件同步电路结构进行写操作访问。

优选地,所述硬件同步电路结构由多个功能相同的硬件同步单元电路构成,每个硬件同步单元电路包含有一个有效标志位和两个状态寄存器,有效标志位用于记录该同步单元是否被使用,状态寄存器组用于记录需要同步的处理器组和已经同步的处理器组。

优选地,所述硬件同步单元电路是处理器在存储空间中的一段地址空间,处理器通过读该地址空间的地址完成同步操作,硬件同步单元电路可实现任意一组处理器的同步操作;处理器可写该地址空间对硬件同步单元电路进行配置管理;一个互斥信号量单元与一个硬件同步单元电路或者多个硬件同步电路相对应,该对应关系不是硬件上存在的关联,是软件可设置的对应关系。

优选地,所述硬件同步单元电路中状态寄存器长度与处理器个数对应,寄存器中每一位唯一代表一个处理器。

一种实现多处理器硬件同步电路结构的方法,该方法包括:

处理器通过互斥信号量单元独占的对硬件同步单元电路进行写操作,配置硬件同步单元电路,标记需要同步的处理器组;

处理器对硬件同步单元电路进行读操作,在硬件同步单元电路中标记自己以完成同步,等待其他处理器;

硬件同步单元电路根据有效标志位、同步请求寄存器和同步完成寄存器,决定返回何种响应信号给处理器;

处理器读操作结束,根据返回值表示同步操作状态。

优选地,所述处理器对硬件同步单元电路进行写操作,需申请互斥信号量;对于硬件同步单元电路的写操作是独占式的访问,且如果处理器申请写操作不成功,则可选择阻塞或者返回两种模式。

优选地,所述硬件同步单元电路根据有效标志位、同步请求寄存器和同步完成寄存器,决定返回何种响应信号给处理器,包括:

硬件同步单元电路有效标志位为0,读操作立即返回,返回值表示无效含义;或者

硬件同步单元电路有效标志位为1,同步请求寄存器组中对应该处理器位为0,读操作立即返回,返回值表示无效含义;或者

硬件同步单元电路有效标志位为1,同步请求寄存器组中对应该处理器位为1,则将同步完成寄存器中对应该处理器位置1,并检查同步请求寄存器与同步完成寄存器是否相同;如果二者相同,释放寄存器中标记的全部处理器,完成同步,并将同步单元电路恢复初始状态;否则阻塞该处理器。

优选地,所述处理器读操作结束时,返回值表示同步操作状态,包含有已同步的处理器信息以及该硬件同步单元电路的可使用情况。

优选地,所述处理器采用读、写存储空间方式实现对硬件同步单元电路的多种操作方式,通过“读阻塞”方式取代“中断通知”方式阻塞和恢复处理器的正常运行。

优选地,所述处理器使用硬件同步单元电路进行同步操作,硬件同步单元电路设置存储器读等待信号停止处理器运行,并在同步完成寄存器中设置标志位,表示该处理器已经进行了同步操作;

同步请求寄存器中标记的全部处理器进行同步操作后,硬件同步单元电路通过撤销读等待信号,发送读ACK信号,并发送相应状态,通知各个处理器完成同步操作。

优选地,一次同步完成后,硬件同步单元电路自动恢复初始状态,可被任意处理器再次使用。

(三)有益效果

从上述技术方案可以看出,本发明具有以下有益效果:

1、利用本发明,可以实现多处理器之间的同步功能,而不需要处理器存在支持读-修改-写操作或额外的中断向量。利用本发明硬件同步的方法相对其他方法复杂度大大降低,结构简单,同时方便与软件方法相组合,实现灵活的并行任务划分与调度。

2、利用本发明,能够高效的实现多处理器间通信,简化多处理器的设计复杂度,通过通用的存储器访问接口请求同步和实现多核间同步。该方法相对其他方法简单易用,并且可以方便的整合到系统设计过程中。

附图说明

图1是本发明提供的适用于多处理器系统的硬件同步电路结构的电路图;

图2是本发明提供的适用于多处理器系统的硬件同步电路结构的目标系统的结构示意图;

图3是本发明提供的硬件同步电路结构发起同步的流程图;

图4是本发明提供的硬件同步电路结构进行同步的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

本发明提出的这种用于实现多处理器系统中多核间同步的硬件电路中,硬件同步电路结构中的每一个同步单元电路可以由任意处理器配置,并完成任意一组处理器的同步。每一个同步单元电路都可以通过互斥信号量被独占访问而进行配置。

图1是本发明提供的适用于多处理器系统的硬件同步电路结构的电路图。该硬件同步电路结构由连接在系统总线101上的硬件同步单元电路构成,该硬件同步单元电路包括读使能107、写使能104、读数据102、写数据105、读应答103和处理器ID号106,该硬件同步单元电路还包括有效标志位108、同步请求寄存器109、同步完成寄存器110以及状态控制逻辑单元111。

有效标志位108用于记录该硬件同步单元电路是否被使用,同步请求寄存器109用于记录需要进行同步操作的处理器编号,同步完成寄存器110用于记录已经完成同步操作的处理器编号。系统总线101上,写数据105有效位宽和同步请求寄存器109、同步完成寄存器110相同,每一比特分别对应系统中的一个处理器。

硬件同步单元电路对于处理器来说就是存储空间中的一段地址空间。处理器通过标准存储器操作,修改与总线相连的各信号线状态,包括读使能107、写使能104、读数据102、写数据105、读应答103,并由处理器ID号106标示该处理器,从而完成对于硬件同步单元电路的配置和处理器间同步。

处理器对同步模块进行配置操作时,即在获得该同步单元相关联信号量后,对其进行写操作,即配置需要同步的处理器组。

处理器对同步模块进行读操作时,硬件同步单元电路根据内部寄存器状态决定返回处理器的各类响应,而处理器通过分析读数据102可以得出已同步的处理器信息以及该硬件模块单元可使用情况等。当处理器对硬件同步单元电路进行读操作,可以有多种结果:

1、硬件同步单元电路有效标志位108为0,读操作立即返回特定值,该值表示同步单元未被使用。

2、硬件同步单元电路有效标志位108为1,同步请求寄存器109中对应该处理器位为0,读操作立即返回特定值,该值表示该处理器并未被要求实现同步操作。

3、不向处理器返回值,使该处理器一直处于读操作未完成状态。等其同步请求寄存器109中列举的其他处理器全部进行同步操作后,修改同步单元电路状态,并向所有等待读操作结果的处理器返回完成状态。

图2是本发明提供的适用于多处理器系统的硬件同步电路结构的目标系统的结构示意图。多个处理器(P0-PN)201通过一定的互联方式202和硬件同步电路结构203相联,同时系统还包括多个处理器可以访问的互斥信息量单元(Mutex0-MutexM)205。这些互斥信息量单元可以通过软件配置的方式204与硬件同步电路结构203相关联。

硬件同步电路结构203由多个功能相同的硬件同步单元电路(S0-SM)206组成。每一个互斥信息量单元205可以与一个硬件同步单元电路206相对应,该对应关系不需要实际的硬件上存在互斥信号量单元205与硬件同步单元电路206的关联,只需软件上存在这种对应关系204即可。

根据本发明,对于给定的硬件同步单元电路206,例如SM,在一个处理器,例如P0对该信号量单元进行写操作时,硬件同步电路结构发起同步的流程图如图3所示。

处理器P0访问互斥信号量单元,查看与其关联的硬件同步单元电路是否正在被操作(图3-301)。如果P0获得配置硬件同步单元电路的权限,则对硬件同步单元电路的地址ADDRi发起写操作,写数据为DATAi。P0选择需要进行同步的一组处理器,将DATAi中相应的比特置1(图3-304)。完成设置后,P0即可释放互斥信号量单元,让出硬件同步单元电路的访问权限。

在处理器P0完成硬件同步单元电路的配置后,需要同步的处理器需要发起同步操作,以完成整个同步过程。具体如图4所示,图4是本发明提供的硬件同步电路结构进行同步的流程图。

处理器读该硬件同步单元电路所在地址ADDRi,硬件同步单元电路依次检查有效标志位和同步请求寄存器(图4-401)。当有效标志位为0(即同步单元无效)或者同步请求寄存器中该处理器对应比特为0的情况下,硬件同步单元电路立即返回相应状态值,通知处理器不需要同步(图4-402,图4-403)。否则,硬件同步单元电路修改同步完成寄存器,将处理器对应比特值修改为1。比较同步完成寄存器和同步请求寄存器,如果二者相等,表明所有处理器均进行完同步操作,硬件同步单元电路释放所有被读阻塞的处理器,同时修改自身状态为初始值(图4-406)。否则,硬件同步单元电路不发送读应答信号,而使该处理器一直处于读操作未完成状态。

硬件同步电路结构的实现如上文所述,同时结合处理器运行的软件,任意处理器均可以配置各个硬件同步单元电路中的同步请求寄存器。多处理器系统中,处理器可以被划分为多个处理器组,由多个同步单元电路管理,分组并行完成各种任务。

如上文所述,由于处理器使用读阻塞方式控制处理器运行状态,不需要额外用于同步的中断源,因此适用于中断资源紧张的处理器来实现片上多处理器系统。同时处理器与硬件同步电路结构的接口只需具有简单握手功能的存储器操作。

上文中,已经描述了硬件同步电路结构的具体电路实现形式,多处理器系统中的电路连接形式,以及多处理器系统通过存储器操作实现硬件同步的过程。尽管本发明是参照特定实施例来描述的,但很明显,本领域熟练人员,在不偏移权利要求书所限定的发明范围和精神的情况下,还可以对改电路及实施例作各种修改和变更。因此,说明书和附图是描述性的,而不是限定性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号