用于继电保护领域的双核多处理器架构的数据同步方法
【专利摘要】本发明公开了一种应用于继电保护领域的双核多处理器架构的数据同步方法,包括第一处理器内部的双核数据同步的步骤和第一处理器与第二处理器间的数据同步的步骤;本发明方法提供的数据同步方法,根据继电保护领域任务优先级的特殊性,数据同步具有效性和实时性,使继电保护装置能及时响应遥控命令,提高继电保护装置性能。
【专利说明】用于继电保护领域的双核多处理器架构的数据同步方法
【技术领域】
[0001]本发明涉及数据同步处理领域,尤其涉及一种用于继电保护领域的双核多处理器架构的数据同步方法。
【背景技术】
[0002]在继电保护领域,自动化装置除了实时保护现场设备外,还需要与变电站的站控层主机建立数据通讯,有效实现数据的上送和下发。尤其是继电保护进入微机保护时代后,通信规约的网络协议更依赖于操作系统,对装置的实时性和通信的可靠性提出了更高的要求。如果装置内处理器间的数据同步不具有效性和实时性,保护算法所需的采样数据不及时,未能及时响应遥控命令,会影响保护装置性能。
[0003]为了防止因数据不同步而产生的过时数据,一般都会在处理器数据交换时增加数据同步功能,尤其在多CPU间,一般的芯片间的数据同步通过标准总线方式或者双口缓存方式实现,但是标准总线受硬件接口和速度的约束,不适合多CPU间的通信;而双口缓存芯片只适合于双CPU的通信,且增加硬件成本。而对于双核多处理器架构的系统平台,既要实现双核CPU内部的通信,又要实现CPU间的通信,以上常见的做法存在一定的弊端。
【发明内容】
[0004]本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种用于继电保护领域的双核多处理器架构的数据同步方法。
[0005]本发明解决其技术问题所采用的技术方案是:
[0006]一种用于继电保护领域的双核多处理器架构的数据同步方法,包括第一处理器内部的双核数据同步的步骤和第一处理器与第二处理器间的数据同步的步骤;
[0007]第一处理器内部的双核数据同步的步骤如下:
[0008]在第一处理器的一级缓存,即片内共享存储区域和第一处理器的二级缓存,即片外共享存储区域中分别开辟第一核和第二核的环形队列作为数据交换区;所述队列的数据结构包括消息头和消息数组,消息头记录消息更新写序号和消息更新读序号;
[0009]第一处理器根据接收的任务等级确定数据同步优先级,包括高优先级和低优先级;
[0010]任务等级为高优先级时,会选择片内共享存储区域为数据交换区,如果第一核需要同步第二核,第一核会更新片内存储区域的对应消息,并更新消息头的写序号,中断第二核以触发第二核以DMA(Direct Memory Access)方式接收,第二核判断消息头的读写序号,接收未同步的消息并更新消息头的读序号;如果第二核需要同步第一核,步骤相同;
[0011]任务等级为低优先级时,会选择片外共享存储区域为数据交换区,如果第一核需要同步第二核,第一核会更新片外存储区域的对应消息,并更新消息头的写序号,并通过内部中断第二核以通知第二核同步数据,第二核判断消息头的读写序号,接收未同步的消息并更新消息头的读序号;如果第二核需要同步第一核,步骤相同;[0012]第一处理器与第二处理器间的数据同步的步骤如下:
[0013]在第二处理器内部开辟3个FIFO区,分别作为与第一处理器的第一核、与第一处理器的第二核和公共的交换数据区;分别用于同步A/D采样数据、对时数据和状态信息;
[0014]第二处理器根据接收的任务等级确定数据同步优先级,包括优先级1、优先级2和优先级3 ;
[0015]若是第一处理器需要同步第二处理器,则进行下述步骤:
[0016]任务等级为优先级I时,第一处理器的第一核与第二处理器进行中断同步;所述中断同步的过程为:
[0017]任务等级为优先级2时,第一处理器的第二核与第二处理器进行中断同步;
[0018]任务等级为优先级3时,第一处理器与第二处理器进行查询方式同步;
[0019]当第二处理器接收任务并完成数据更新后需要同步第一处理器,第二处理器的数据同步模块以状态机方式执行;状态机如果处于空闲状态,则根据任务优先级进入对应同步状态,按照对应同步方式同步第一处理器,并等待同步返回信号后,重新进入空闲状态;状态机如果处于同步状态,则根据任务优先级,高优先级会抢占同步状态机,会挂起当前同步,同步结束后,恢复低优先级同步状态。
[0020]本发明的原理为:平台架构为双核处理器I与处理器2,处理器I的第一核与第二核通过共享内存方式通信,按通信响应速度分为2个优先级,高优先级同步方式通过第一核与第二核的DMA方式通信,共享片内缓存空间,用来同步交换实时性较高的突发事件等数据;低优先级同步方式通过第一核与第二核间的内部中断方式通信,共享片外的存储空间,用来同步交换实时性较低的状态变量等数据。处理器I与处理器2通过EMIFA总线连接,第一核与第二核共享总线接口,按通信实时性需求分为3个优先级,对应于处理器2内部的3个FIFO区,分别用于同步A/D采样数据、对时数据和状态信息。数据同步机制自适应任务优先级。
[0021]本发明产生的有益效果是:使用本发明方法提供的数据同步方法,根据继电保护领域任务优先级的特殊性,数据同步具有效性和实时性,使继电保护装置能及时响应遥控命令,提高继电保护装置性能。
【专利附图】
【附图说明】
[0022]图1是本发明实施例的结构示意图。
【具体实施方式】
[0023]下面将结合附图及实施例对本发明作进一步说明。
[0024]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0025]如图1所示,本发明涉及的处理器I采用OMAP系列芯片,处理器2采用XILINX系列芯片。双核OMAP芯片内部ARM与DSP数据同步两种方式:片内共享内存的DMA方式和片外共享内存的中断方式。OMAP芯片与FPGA芯片数据同步有三种方式,OMAP响应FPGA按优先级分为:DMA方式中断DSP,外部IO中断ARM,ARM/DSP主动查询同步标志;FPGA根据数据同步优先级响应OMAP的数据同步。
[0026]双核OMAP芯片内部ARM与DSP数据同步,实现方法如下:在片内128K共享存储区域和片外4M共享存储区域分别都开辟ARM和DSP的环形队列作为数据交换区,队列的数据结构包括消息头和消息数组,消息头记录消息更新写序号和消息更新读序号。如果ARM需要同步DSP,根据任务等级选择数据同步优先级。高优先级时,ARM会更新片内存储区域的对应消息,并更新消息头的写序号,中断DSP以触发其DMA方式接收,DSP判断消息头的读写序号,接收未同步的消息并更新消息头的读序号;低优先级时,会选择片外4M空间为数据交换区,并通过内部中断DSP以通知DSP同步数据。如果DSP需要同步ARM,与上述方法一致。
[0027]OMAP与FPGA的数据同步,实现方法如下:FPGA内部开辟3个FIFO区,分别作为与DSP、与ARM和公共交换数据区。FPGA与OMAP间同步,会根据任务等级选择对应同步方式,包括优先级I的DSP与FPGA中断同步,优先级2的ARM与FPGA中断同步,优先级3的ARM/DSP与FPGA的查询方式同步。FPGA的数据同步模块以状态机方式执行,默认为空闲状态,当FPGA接收任务并完成数据更新后需要同步0ΜΑΡ,状态机如果处于空闲状态,则根据任务优先级进入对应同步状态,按照对应同步方式同步OMAP数据,并等待同步返回信号后,从新进入空闲状态;状态机如果处于同步状态,会挂起当前同步,高优先级会抢占同步状态机,同步结束后,恢复低优先级同步状态。
[0028]应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【权利要求】
1.一种用于继电保护领域的双核多处理器架构的数据同步方法,包括第一处理器内部的双核数据同步的步骤和第一处理器与第二处理器间的数据同步的步骤,其特征在于,第一处理器内部的双核数据同步的步骤如下: 在第一处理器的一级缓存,即片内共享存储区域和第一处理器的二级缓存,即片外共享存储区域中分别开辟第一核和第二核的环形队列作为数据交换区;所述队列的数据结构包括消息头和消息数组,消息头记录消息更新写序号和消息更新读序号; 第一处理器根据接收的任务等级确定数据同步优先级,包括高优先级和低优先级; 任务等级为高优先级时,会选择片内共享存储区域为数据交换区,如果第一核需要同步第二核,第一核会更新片内存储区域的对应消息,并更新消息头的写序号,中断第二核以触发第二核接收同步数据,第二核判断消息头的读写序号,接收未同步的消息并更新消息头的读序号;如果第二核需要同步第一核,步骤相同; 任务等级为低优先级时,会选择片外共享存储区域为数据交换区,如果第一核需要同步第二核,第一核会更新片外存储区域的对应消息,并更新消息头的写序号,并通过内部中断第二核以通知第二核同步数据,第二核判断消息头的读写序号,接收未同步的消息并更新消息头的读序号;如果第二核需要同步第一核,步骤相同。
2.根据权利要求1所述的,其特征在于,任务等级为高优先级时,第二核接收同步数据时第二核以 DMA (Direct Memory Access)方式接收。
3.根据权利要求1所述的双核多处理器架构的数据同步方法,其特征在于,第一处理器与第二处理器间的数据同步的步骤如下: 在第二处理器内部开辟3个FIFO区,分别作为与第一处理器的第一核、与第一处理器的第二核和公共的交换数据区;分别用于同步A/D采样数据、对时数据和状态信息; 第二处理器根据接收的任务等级确定数据同步优先级,包括优先级1、优先级2和优先级3 ; 若是第一处理器需要同步第二处理器,则进行下述步骤: 任务等级为优先级I时,第一处理器的第一核与第二处理器进行中断同步;所述中断同步的过程为: 任务等级为优先级2时,第一处理器的第二核与第二处理器进行中断同步; 任务等级为优先级3时,第一处理器与第二处理器进行查询方式同步; 当第二处理器接收任务并完成数据更新后需要同步第一处理器,第二处理器的数据同步模块以状态机方式执行;状态机如果处于空闲状态,则根据任务优先级进入对应同步状态,按照对应同步方式同步第一处理器,并等待同步返回信号后,重新进入空闲状态;状态机如果处于同步状态,则根据任务优先级,高优先级会抢占同步状态机,会挂起当前同步,同步结束后,恢复低优先级同步状态。
【文档编号】G06F9/52GK103559095SQ201310526722
【公开日】2014年2月5日 申请日期:2013年10月30日 优先权日:2013年10月30日
【发明者】卢伟, 朱宝, 邵宇平, 刘长虎, 崔新友 申请人:武汉烽火富华电气有限责任公司