一种应用在核电站全范围模拟机中的数据打包和解包方法

文档序号:7952283阅读:163来源:国知局
专利名称:一种应用在核电站全范围模拟机中的数据打包和解包方法
技术领域
本发明涉及数据传输技术,更具体地说,涉及一种应用在核电站全范围模拟机中的以离散结构存储的数据打包和解包的方法和装置。
背景技术
核电站全范围模拟机是核电站操作员培训和考试取照的必备设备,是核电工程建设关键路径上的重要设备之一。全范围模拟机的硬件系统包括计算机系统、I/o接口系统、电站监控机(如DAS或DCS系统等)仿真设备、控制盘台,教练员站、工程师站等等。其中计算机系统、I/O接口系统、电站监控机仿真设备之间需要进行大量的数据通讯,这些数据即指模拟机所模拟的实际物理信号的值。由于核电站的物理仿真模型复杂以及在运行中需要监测的信息很多,从而在模拟机系统中往往存在几万个数据。而仿真系统对于实时性的要求很高,因此为了保证能够对数据进行高速查找,数据结构往往采用离散结构例如哈希图(hashmap)进行空间离散,使得查询效率可以达到常量级,即是以空间换取性能。但这也造成了这些变量在物理结构上都是离散的。与此同时底层物理仿真模型为了同上层DCS控制系统进行数据交互,每隔100-200毫秒就需要把底层物理模型中的这些以离散结构存储的大批量数据需要通过TCP/IP协议发送给接收方系统。因此需要有把以离散结构存储的大批量数据快速高效打包的方案。现有的方法往往是采用最普通的广度遍历的方案,即遍历离散结构所有变量,遍历过程中把离散数据存放在一个连续地址的内存块中,并在完成该数据更新之后将内存块中的数据打包发送。但是这种方法无论存储结构如何,随着变量数目的增长,打包所用时间会随之增加,从而这点成为了制作具有高度实时性的核电全范围模拟机的重大隐患和技术难题。因此需要新的方案来进行替代。

发明内容
本发明要解决的技术问题在于,针对现有采用先更新再打包的方式对离散数据进行打包传送从而影响打包速度的缺陷,提供一种应用在核电站全范围模拟机中的数据打包和解包的方法和装置。本发明第一方面,提供了一种应用在核电站全范围模拟机中的数据打包方法,用于将底层物理存储器中以离散结构存储的数据打包发送,包括以下步骤:地址映射步骤,在发送缓存中为底层物理存储器中以离散结构存储的数据分配一个或多个内存块,并针对每个内存块生成映射文件,所述映射文件记载所述底层物理存储器中以离散结构存储的数据到该内存块中连续地址的映射关系;文件发送步骤,将所述映射文件发送给数据接收方用于解包;以及同时执行的以下步骤:数据更新步骤,运行一个或多个同步线程,其中每个同步线程根据地址映射步骤所生成的映射文件将底层物理存储器中以离散结构存储的数据更新至对应内存块;数据打包步骤,将所述发送缓存中内存块内数据进行打包并发送给数据接收方。在根据本发明第一方面所述的应用在核电站全范围模拟机中的数据打包方法中,所述数据更新步骤中:所述同步线程的数量由底层物理存储器中以离散结构存储的数据总量、所需的数据打包发送时间和同步线程遍历内存块的速度确定。本发明第二方面,提供了一种应用在核电站全范围模拟机中的数据解包方法,用于将接收的数据包解包并存储至接收方系统存储器中,包括以下步骤:文件接收步骤,接收映射文件,所述映射文件记载底层物理存储器中以离散结构存储的数据到发送缓存的内存块中连续地址的映射关系;反向映射步骤,根据针对每个内存块的映射文件生成针对每个内存块的反向映射文件,所述反向映射文件记载该内存块中连续地址到接收方系统存储器中离散结构的地址的映射关系;以及同时执行的以下步骤:数据接收步骤,接收数据包并存储至接收缓存的一个或多个的内存块中;数据存储步骤,运行一个或多个同步线程,其中每个同步线程根据一个反向映射文件将接收缓存中对应内存块的数据更新存储至接收方系统存储器中对应的离散结构的地址中。在根据本发明第二方面所述的应用在核电站全范围模拟机中的数据解包方法,在所述数据存储步骤中:所述同步线程的数量等于所接收的映射文件的数量。本发明第三方面,提供了一种应用在核电站全范围模拟机中的数据打包装置,包括发送缓存以及以离散结构存储数据的底层物理存储器,还包括:地址映射模块,与所述发送缓存和底层物理存储器相连,用于在发送缓存中为底层物理存储器中以离散结构存储的数据分配一个或多个内存块,并针对每个内存块生成映射文件,所述映射文件记载所述底层物理存储器中以离散结构存储的数据到该内存块中连续地址的映射关系;文件发送模块,与所述地址映射模块相连,用于在数据打包模块发送数据包之前,将所述映射文件发送给数据接收方,用于数据接收方解包;数据更新模块,与所述地址映射模块、所述发送缓存和底层物理存储器相连,用于运行一个或多个同步线程,其中每个同步线程根据地址映射模块所生成的一个映射文件将底层物理存储器中以离散结构存储的数据更新存储至对应内存块;数据打包模块,与所述发送缓存相连,用于在所述数据更新模块运行同时将所述发送缓存中内存块内数据进行打包并发送给数据接收方。在根据本发明第三方面所述的应用在核电站全范围模拟机中的数据打包装置,所述数据更新模块根据底层物理存储器中离散结构的数据总量、所需的数据打包发送时间和同步线程遍历内存块的速度确定所述同步线程的数量。本发明第四方面,提供了一种应用在核电站全范围模拟机中的数据解包装置,包括接收缓存以及接收方系统存储器,还包括:文件接收模块,用于接收映射文件,所述映射文件记载底层物理存储器中以离散结构存储的数据到发送缓存的内存块中连续地址的映射关系;反向映射模块,与所述文件接收模块相连,用于根据针对每个内存块的映射文件生成针对每个内存块的反向映射文件,所述反向映射文件记载该内存块中连续地址到接收方系统存储器中离散结构的地址的映射关系;数据接收模块,用于接收数据包并存储至接收缓存的一个或多个内存块中;数据存储模块,与所述数据接收模块、接收缓存和接收方系统存储器相连,用于在所述数据接收模块运行时同时运行一个或多个同步线程,其中每个同步线程根据一个反向映射文件将接收缓存中对应内存块的数据更新存储至接收方系统存储器中对应的离散结构的地址中。在根据本发明第四方面所述的应用在核电站全范围模拟机中的数据解包装置中,所述数据存储模块采用的所述同步线程的数量等于所接收的映射文件的数量。实施本发明的应用在核电站全范围模拟机中的数据打包和解包的方法和装置,具有以下有益效果:本发明通过在主线程执行数据打包的同时,采用一个或多个同步线程,对以离散结构存储的数据进行同步更新,在不影响对数据的快速查询的基础上,可以有效的改善数据打包传输的时间,快速地对将大量数据打包发送到接收方系统,且同样通过一个或多个同步线程进行解包存储,也缩短了数据解包存储的时间,提高了核电站全范围模拟机的数据传输速度,加强了操作性能和仿真逼真度。


下面将结合附图及实施例对本发明作进一步说明,附图中:图1为根据本发明优选实施例中应用在核电站全范围模拟机中的数据打包方法的原理不意图;图2为根据本发明优选实施例中应用在核电站全范围模拟机中的数据打包方法的流程图;图3为根据本发明优选实施例中应用在核电站全范围模拟机中的数据打包装置的丰旲块不意图;图4为根据本发明优选实施例中应用在核电站全范围模拟机中的数据解包方法的原理不意图;图5为根据本发明优选实施例中应用在核电站全范围模拟机中的数据解包方法的流程图;图6为根据本发明优选实施例中应用在核电站全范围模拟机中的数据解包装置的丰旲块不意图;图7为根据本发明优选实施例中应用在核电站全范围模拟机中的数据传送系统的结构图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。本发明构思一种对以离散结构存储的大批量数据进行快速打包的方法和装置,以及与之对应的解包方法和装置,以在要求的短时间内将以离散结构存储的大批量数据进行传送,尤其是应用在核电站全范围模拟机中将底层物理存储器中产生的数据传送至接收方系统的存储器中,因此本发明也相应提供了这样一种应用在核电站全范围模拟机中的数据传送方法和系统。请参阅图1,为根据本发明优选实施例中应用在核电站全范围模拟机中的数据打包方法的原理示意图。如图1所示,底层物理存储器102中存储有离散结构的数据,如哈希图。该数据为核电站全范围模拟机的底层物理仿真模型所产生的数据。离散结构的数据对象是无序数据的集合,它与 数组一样都是复杂的数据容器,唯一的区别就是容器的结构不同,自然装载数据的方式也就不同。数组是线性数据结构,一般具有一定的规律,适合进行统一的操作,如迭代、循环等批量操作。而离散结构的数据对象的数据之间分散在结构体内,相互之间没有必然的联系,其包含的数据没有位置概念,如图1中底层物理存储器内的数据I至数据N,适合查询。本发明提供的应用在核电站全范围模拟机中的数据打包方法的目的在于将底层物理存储器102中离散结构的数据快速打包发送。在传统方法中,采用广度遍历的方案,即广度遍历在离散结构中存储的数据,并存放至发送缓存104内一个连续地址的内存块中之后,再进行打包发送,如果数据量较大则遍历的时间较长,将直接影响数据打包发送的时间。本发明的原理是在数据打包的同时,采用一个或多个同步线程进行数据同步,把数据更新作业同数据打包作业分割开来,并进一步通过多线程作业缩短更新时间,从而实现以离散结构存储的大批量数据快速高效打包的效果。请参阅图2,为本发明优选实施例中应用在核电站全范围模拟机中的数据打包方法的流程图。如图2所示,该实施例提供的数据打包方法包括:首先在步骤S202中,执行地址映射步骤,在图1所示的发送缓存104中为底层物理存储器102中离散结构的数据分配一个或多个内存块。这些内存块具有连续的地址。同时针对每个内存块生成映射文件,该映射文件记载了底层物理存储器102中将要同步到该内存块的各个数据与该内存块中连续地址的映射关系。一般以文本文件的方式保存,可以命名为ass文件。随后,在步骤S204中,执行文件发送步骤,将前述映射文件发送给数据接收方。数据接收方可以利用这些映射文件对数据包进行解包存储。如果数据打包过程中不改变映射关系,即映射文件不发生改变,则步骤S202和步骤S204可以只在数据打包发送之前执行一次即可,数据接收方可以采用该映射文件对数据包进行解包。随后,同步执行数据更新步骤和数据打包步骤。在步骤S206中,执行数据更新步骤,运行同步线程,其中每个同步线程根据一个映射文件将底层物理存储器102中离散结构的数据实时更新存储至发送缓存104的对应内存块。例如图1中,同步线程I加载针对第一个内存块的ass文件,将数据I至数据N/m存储至第一个具有连续地址的内存块(地址I至地址N/m),以此类推……同步线程m加载针对第m个内存块的ass文件,将数据N-N/m至数据N存储至第m个具有连续地址的内存块(地址N-N/m至地址N)。由于每个同步线程遍历的数据量相对离散结构的整体数据量而言明显减少,因此每个同步线程处理的时间也将缩短,数据从底层物理存储器102到发送缓存104的整体同步时间也相应减少。数据更新步骤是在实时不断运行的,即在一个时间段内更新完一批数据后,再次执行数据更新步骤,在下一时间段内将底层物理存储器102中存储的新的离散结构的数据再次更新到对应内存块中,从而保证内存块中的数据时效性满足核电站全范围模拟机要求。在该步骤中,所采用的同步线程的数量根据底层物理存储器中离散结构的数据总量、所需的数据打包发送时间和同步线程遍历内存块的速度确定。例如,设需要打包的离散结构的数据为N个,所需的数据打包发送时间为T毫秒,同步线程遍历内存块的速度为S个/毫秒,因此同步线程的数量m为不小于N/(TXS)的自然数。例如,需要100毫秒完成一次系统间数据通讯,如果不计算数据传输所需时间,即以离散结构存储的数据和内存块之间要求在100毫秒内要完成一次数据同步。经过测试I万个变量遍历时间大概是30毫秒。如果需要打包10万个离散结构的 数据为例:N = 10 万,T = 100 毫秒,S = 1/30 (万 / 毫秒);N/ (TXS) = 10 万 / (100 毫秒 X 1/30 (万 / 毫秒))=3 ;因此同步线程的数量可以取不小于3的自然数,如3、4、5……,且每个同步线程需要处理的数据分别为10/3、10/4、10/5万个数据。因此,同步线程的数量与所需的数据打包发送时间、同步线程遍历内存块的速度均成反比,与需要打包的数据的数量成正比。在本发明的优选实施例中,映射文件与内存块--对应,因此映射文件的数量由
内存块的数量确定。优选地,内存块的数量可以与所需的同步线程数量相等,在这种情况下,每个内存块的大小可以相等或者不等,只需要满足这些同步线程中遍历内存块的最长时间不大于数据打包时间即可。在步骤S208中,执行数据打包步骤,将所述发送缓存104中内存块内更新的数据进行实时打包并发送给数据接收方。该步骤中可以将打包的数据通过TCP/IP协议或者其他通讯协议发送。数据打包步骤是在实时不断运行的,即不断将内存块中存储的更新的数据打包。在本发明的优选实施例中,数据打包的步骤和数据更新的步骤同时执行,即数据打包的步骤可以由主线程完成,而上述数据更新的步骤可以由多个子同步线程来完成,从而将数据更新作业与数据打包作业分割开来,实现数据的随时动态更新,并快速打包。请参阅图3,为本发明优选实施例中应用在核电站全范围模拟机中的数据打包装置的模块示意图。如图3所示,该数据打包装置300包括底层物理存储器302、发送缓存304、地址映射模块306、数据更新模块308、数据打包模块310和文件发送模块312。其中,底层物理存储器302中存储有离散结构的数据。如图1中底层物理存储器内的数据I至数据N。本发明提供的数据打包装置300的目的在于将底层物理存储器302中离散结构的数据快速打包发送。地址映射模块306,与发送缓存304和底层物理存储器302相连,用于在发送缓存304中为底层物理存储器302中离散结构的数据分配具有连续地址的一个或多个内存块。同时针对每个内存块生成映射文件,该映射文件记载了底层物理存储器302中离散结构的数据到发送缓存304中该内存块内连续地址的映射关系。一般以文本文件的方式保存,可以命名为ass文件。映射文件与内存块一一对应,数量相等。文件发送模块312,与地址映射模块306相连,用于在数据打包模块310发送数据包之前将映射文件发送给数据接收方。如果离散数据打包发送的过程中不改变映射关系,即映射文件不发生改变,则地址映射模块306和文件发送模块312可以只在数据打包发送之前执行一次即可,数据接收方即可以采用该映射文件对数据包进行解包。数据更新模块308,与地址映射模块306、发送缓存304和底层物理存储器302相连,用于运行一个或多个同步线程,其中每个同步线程根据一个映射文件将底层物理存储器中离散结构的数据实时更新存储至发送缓存304的对应内存块中。例如图1中,同步线程I加载针对第一个内存块的ass文件,将数据I至数据N/m存储至第一个具有连续地址的内存块(地址I至地址N/m),以此类推……同步线程m加载针对第m个内存块的ass文件,将数据N-N/m至数据N存储至第m个具有连续地址的内存块(地址N_N/m至地址N)。由于每个同步线程遍历的数据量相对离散结构的整体数据量而言明显减少,因此每个同步线程处理的时间也将缩短,数据从底层物理存储器302到发送缓存304的整体同步时间也相应减少。数据更新模 块308是在实时不断运行的,即在一个时间段内更新完一批数据后,再次执行数据更新步骤,在下一时间段内将底层物理存储器302中存储的新的离散结构的数据再次更新到对应内存块中。在数据更新模块308中,所采用的同步线程的数量根据底层物理存储器302中离散结构的数据总量、所需的数据打包发送时间和同步线程遍历内存块的速度确定。例如,设需要打包的离散结构的数据为N个,所需的数据打包发送时间为T毫秒,同步线程遍历内存块的速度为S个/毫秒,因此同步线程的数量m为不小于N/(TXS)的自然数。例如,需要100-200毫秒传递一次数据,即数据打包发送时间要求在100毫秒内要完成一次同步。经过测试I万个变量遍历时间大概是30毫秒。如果需要打包10万个离散结构的数据为例:N = 10 万,T = 100 毫秒,S = 1/30 (万 / 毫秒),N/ (TXS) = 10 万 / (100 毫秒 X 1/30 (万 / 毫秒))=3 ;因此同步线程的数量可以取不小于3的自然数,如3、4、5……,且每个同步线程需要处理的数据分别为10/3、10/4、10/5万个数据。因此,同步线程的数量与所需的数据打包发送时间、同步线程遍历内存块的速度均成反比,与需要打包的离散结构的数据的数量成正比。在本发明的优选实施例中,映射文件与内存块--对应,因此映射文件的数量由
内存块的数量确定。优选地,内存块的数量可以与所需的同步线程数量相等,在这种情况下,每个内存块的大小可以相等或者不等,只需要满足这些同步线程中遍历内存块的最长时间不大于数据打包时间即可。数据打包模块310,与发送缓存304相连,用于在数据更新模块308运行同时将发送缓存304中内存块内更新的数据进行实时打包并发送给数据接收方。数据打包模块310是在实时不断运行的,即不断将内存块中存储的更新的数据打包。数据打包模块310可以将打包的数据通过TCP/IP协议或者其他通讯协议发送。在本发明的优选实施例的实际运行过程中,数据打包模块310和数据更新模块308同时运行,即数据打包模块310可以由主线程完成,而上述数据更新模块308可以由多个子同步线程来完成,从而将数据更新作业与数据打包作业分割开来,实现数据的随时动态更新,并快速打包。作为替代,数据打包模块310和文件发送模块312可以由同一个通信单元实现,将映射文件与离散结构的数据包发送给数据接收方。请参阅图4,为根据本发明优选实施例中应用在核电站全范围模拟机中的数据解包方法的原理示意图。如图4所示,本发明提供的数据解包方法的目的在于接收数据包并将离散结构的数据存储至接收方系统存储器402中。在传统方法中,在将数据包存储至接收缓存404中之后,再采用广度遍历的方案,即将接收缓存404中连续地址的数据采用一个线程逐个更新存储至接收方系统存储器402的离散结构的地址中。然而数据量较大时,遍历的时间较长,将直接影响数据接收解包的时间。本发明的原理是在将数据包存储至接收缓存404的同时,采用一个或多个同步线程进行数据同步,把数据更新作业同数据解包作业分割开来,并通过多线程作业缩短存储时间,从而实现对大批量离散结构数据的快速解包存储。请参阅图5,为本发 明优选实施例中应用在核电站全范围模拟机中的数据解包方法的流程图。如图5所示,该实施例提供的数据解包方法包括:首先在步骤S502中,执行文件接收步骤,接收映射文件,该映射文件记载底层物理存储器中离散结构的数据到内存块中连续地址的映射关系。如上述数据打包方法和装置中生成的与每个内存块--对应的ass文件。随后在步骤S504中,执行反向映射步骤,根据针对每个内存块的映射文件生成针对每个内存块的反向映射文件,即将映射文件中映射关系进行反向处理就可以得到连续地址到离散结构的地址的映射关系,并将其作为接收缓存404的内存块中连续地址到接收方系统存储器402中离散结构的地址的映射关系,供后续数据存储过程中使用。在准备好映射文件后,可以同时执行以下数据接收步骤和数据存储步骤。如果离散数据打包发送的过程中不改变映射关系,即映射文件不发生改变,则步骤S502和步骤S504可以在数据接收之前仅执行一次即可。在步骤S506中,执行数据接收步骤,实时接收数据包并存储至如图4所示的接收缓存404的具有连续地址的一个或多个内存块中。该步骤中可以接收通过TCP/IP协议或者其他通讯协议传输的数据包。例如接收上述数据打包方法和装置发送的数据包。数据接收步骤是在实时不断运行的,即不断将接收的数据存储至内存块中。在步骤S508中,执行数据存储步骤,运行一个或多个同步线程,其中每个同步线程根据一个反向映射文件将接收缓存404中对应内存块的数据实时更新存储至接收方系统存储器402中对应的离散结构的地址中。例如图4中,同步线程I加载针对第一个内存块的反向映射文件,第一个具有连续地址的内存块(地址I至地址N/m)内的数据I至数据
N/m存储至接收方系统存储器402中对应的离散结构的地址中,以此类推......同步线程m加
载针对第m个内存块的反向映射文件,将第m个具有连续地址的内存块(地址N-N-N/m至地址N)的数据N-N-N/m至数据N存储至接收方系统存储器402中对应的离散结构的地址中。在该步骤中,优选地所采用的同步线程的数量等于接收的映射文件的数量。与上述数据打包发送的原理相似,由于每个同步线程遍历的数据量相对离散结构的整体数据量而言明显减少,因此每个同步线程处理的时间也将缩短,数据从接收缓存404到接收方系统存储器402的整体同步时间也相应减少。数据存储步骤是在实时不断运行的,即在一个时间段内更新完一批数据后,在下一时间段内将接收缓存404中存储的新的数据再次更新到接收方系统存储器402中。在本发明的优选实施例中,数据接收的步骤和数据存储的步骤同时执行,即数据接收的步骤可以由主线程完成,而上述数据存储的步骤可以由多个子同步线程来完成,从而将数据接收作业与数据存储作业分割开来,实现快速解包以及数据的随时动态更新。请参阅图6,为根据本发明优选实施例中核电站全范围模拟机的离散数据接收解包的装置的模块示意图。如图6所示,该核电站全范围模拟机的离散数据接收解包的装置600包括接收方系统存储器602、接收缓存604、反向映射模块606、数据存储模块608、数据接收模块610和文件接收模块612。本发明提供的核电站全范围模拟机的离散数据接收解包的装置600的目的在于将接收数据包并将离散结 构的数据存储至接收方系统存储器602中。文件接收模块612用于接收映射文件,所述映射文件记载底层物理存储器中离散结构的数据到内存块中连续地址的映射关系。如上述数据打包方法和装置中生成的与每个内存块--对应的ass文件。反向映射模块606,与文件接收模块612相连,用于根据针对每个内存块的映射文件生成针对每个内存块的反向映射文件,即将映射文件中映射关系进行反向处理就可以得到连续地址到离散结构的地址的映射关系,并将其作为接收缓存604的内存块中连续地址到接收方系统存储器602中离散结构的地址的映射关系,供后续数据存储模块608使用。如果离散数据打包发送的过程中不改变映射关系,即映射文件不发生改变,则文件接收模块612和反向映射模块606可以只在数据打包发送之前执行一次即可,计算出该反向映射文件提供给后续模块对数据包进行解包。数据接收模块610用于接收数据包并存储至接收缓存604的具有连续地址的内存块中。数据接收模块610可以接收通过TCP/IP协议或者其他通讯协议传输的数据包。例如接收上述数据打包方法和装置发送的数据包。数据接收模块610是在实时不断运行的,即不断将接收的数据存储至内存块中。作为替代,数据接收模块610和文件接收模块612可以由同一个通讯模块实现,从数据发送方接收映射文件与数据包。数据存储模块608,与数据接收模块610、接收缓存604和接收方系统存储器602相连,用于在数据接收模块610运行的同时,再运行一个或多个同步线程,其中每个同步线程根据一个反向映射文件将接收缓存604中对应内存块的数据实时更新存储至接收方系统存储器602中对应的离散结构的地址中。例如图4中,同步线程I加载针对第一个内存块的反向映射文件,第一个具有连续地址的内存块(地址I至地址N/m)内的数据I至数据
N/m存储至接收方系统存储器中对应的离散结构的地址中,以此类推......同步线程m加载
针对第m个内存块的反向映射文件,将第m个具有连续地址的内存块(地址N-N/m至地址N)的数据N-N/m至数据N存储至接收方系统存储器中对应的离散结构的地址中。优选地,数据存储模块608所采用的同步线程的数量等于接收的映射文件的数量。与前述数据打包发送的原理相似,由于每个同步线程遍历的数据量相对离散结构的整体数据量而言明显减少,因此每个同步线程处理的时间也将缩短,数据从接收缓存604到接收方系统存储器602的整体同步时间也相应减少。数据存储模块608是在实时不断运行的,即在一个时间段内更新完一批数据后,在下一时间段内将接收缓存604中存储的新的数据再次更新到接收方系统存储器602中。在本发明的优选实施例中,数据接收模块610和数据存储模块608同时运行,即数据接收模块610可以由主线程完成,而上述数据存储模块608可以由多个子同步线程来完成,从而将数据接收作业与数据存储作业分割开来,实现快速解包以及数据的随时动态更新。本发明还相应提供了一种应用在核电站全范围模拟机中的数据传送方法,其采用前述的应用在核电站全范围模拟机中的数据打包方法,以及应用在核电站全范围模拟机中的数据解包方法,从而将离散结构的数据从底层物理存储器传送至接收方系统存储器,该接收方系统存储器可以包括但不限于上层DCS控制系统存储器。请参阅图7,为本发明优选实施例中应用在核电站全范围模拟机中的数据传送系统的结构图。如图7所示,该系统包括前述的应用在核电站全范围模拟机中的数据打包装置710作为数据发送方,以及与之通讯连接的应用在核电站全范围模拟机中的数据解包装置720作为数据接收方。位于模拟机的底层物理仿真器中的数据打包装置710包括与前述图3中各个对应模块结构和功能相同的底层物理存储器711、发送缓存712、地址映射模块713、数据更新模块714、数据打包模块715和文件发送模块716。相应地,位于模拟机的例如上层DCS控制系统中的数据解包装置720包括与前述图6中各个对应模块结构和功能相同的接收方系统存储器721、接收缓存722、反向映射模块723、数据存储模块724、数据接收模块725和文件接收模块726。由于底层物理存储器711中存储有底层物理仿真器产生的离散结构的数据,因此通过上述数据传送系统便可以在对数据打包发送的同时,采用一个或多个同步线程,对离散结构的数据进行同步更新,并在接收数据的同时,采用一个或多个同步线程进行解包存储至例如上层DCS控制系统的接收方系统存储器721中,从而可以快速地将离散结构的数据打包发送到上层DCS控制系统,又不影响底层物理仿真器对产生的离散结构的数据的快速查询,提高了模拟机的仿真操作性能,使得模拟机可以满足培训操作员的要求。数据打包装置710可以发送一次映射文件给数据解包装置720之后,就不断地利用该映射文件执行打包解包过程。本发明是根据特定实施例进行描述的,但本领域的技术人员应明白在不脱离本发明范围时,可进行各种变化和等同替换。此外,为适应本发明技术的特定场合或材料,可对本发明进行诸多修改而不脱离其保护范围。因此,本发明并不限于在此公开的特定实施例,而包括所有落入到权利要求保护范围的实施例。
权利要求
1.一种应用在核电站全范围模拟机中的数据打包方法,用于将底层物理存储器中以离散结构存储的数据打包发送,其特征在于,包括以下步骤: 地址映射步骤,在发送缓存中为底层物理存储器中以离散结构存储的数据分配一个或多个内存块,并针对每个内存块生成映射文件,所述映射文件记载所述底层物理存储器中以离散结构存储的数据到该内存块中连续地址的映射关系; 文件发送步骤,将所述映射文件发送给数据接收方用于解包;以及同时执行的以下步骤: 数据更新步骤,运行一个或多个同步线程,其中每个同步线程根据地址映射步骤所生成的映射文件将底层物理存储器中以离散结构存储的数据更新至对应内存块; 数据打包步骤,将所述发送缓存中内存块内数据进行打包并发送给数据接收方。
2.根据权利要求1所述的应用在核电站全范 围模拟机中的数据打包方法,其特征在于,所述数据更新步骤中:所述同步线程的数量由底层物理存储器中以离散结构存储的数据总量、所需的数据打包发送时间和同步线程遍历内存块的速度确定。
3.一种应用在核电站全范围模拟机中的数据解包方法,用于将接收的数据包解包并存储至接收方系统存储器中,其特征在于,包括以下步骤: 文件接收步骤,接收映射文件,所述映射文件记载底层物理存储器中以离散结构存储的数据到发送缓存的内存块中连续地址的映射关系; 反向映射步骤,根据针对每个内存块的映射文件生成针对每个内存块的反向映射文件,所述反向映射文件记载该内存块中连续地址到接收方系统存储器中离散结构的地址的映射关系;以及同时执行的以下步骤: 数据接收步骤,接收数据包并存储至接收缓存的一个或多个的内存块中; 数据存储步骤,运行一个或多个同步线程,其中每个同步线程根据一个反向映射文件将接收缓存中对应内存块的数据更新存储至接收方系统存储器中对应的离散结构的地址中。
4.根据权利要求3所述的应用在核电站全范围模拟机中的数据解包方法,其特征在于,在所述数据存储步骤中:所述同步线程的数量等于所接收的映射文件的数量。
5.一种应用在核电站全范围模拟机中的数据打包装置,包括发送缓存以及以离散结构存储数据的底层物理存储器,其特征在于,还包括: 地址映射模块,与所述发送缓存和底层物理存储器相连,用于在发送缓存中为底层物理存储器中以离散结构存储的数据分配一个或多个内存块,并针对每个内存块生成映射文件,所述映射文件记载所述底层物理存储器中以离散结构存储的数据到该内存块中连续地址的映射关系; 文件发送模块,与所述地址映射模块相连,用于在数据打包模块发送数据包之前,将所述映射文件发送给数据接收方,用于数据接收方解包; 数据更新模块,与所述地址映射模块、所述发送缓存和底层物理存储器相连,用于运行一个或多个同步线程,其中每个同步线程根据地址映射模块所生成的一个映射文件将底层物理存储器中以离散结构存储的数据更新存储至对应内存块; 数据打包模块,与所述发送缓存相连,用于在所述数据更新模块运行同时将所述发送缓存中内存块内数据进行打包并发送给数据接收方。
6.根据权利要求5所述的应用在核电站全范围模拟机中的数据打包装置,其特征在于,所述数据更新模块根据底层物理存储器中离散结构的数据总量、所需的数据打包发送时间和同步线程遍历内存块的速度确定所述同步线程的数量。
7.一种应用在核电站全范围模拟机中的数据解包装置,包括接收缓存以及接收方系统存储器,其特征在于,还包括: 文件接收模块,用于接收映射文件,所述映射文件记载底层物理存储器中以离散结构存储的数据到发送缓存的内存块中连续地址的映射关系; 反向映射模块,与所述文件接收模块相连,用于根据针对每个内存块的映射文件生成针对每个内存块的反向映射文件,所述反向映射文件记载该内存块中连续地址到接收方系统存储器中离散结构的地址的映射关系; 数据接收模块,用于接收数据包并存储至接收缓存的一个或多个内存块中; 数据存储模块,与所述数据接收模块、接收缓存和接收方系统存储器相连,用于在所述数据接收模块运行时同时运行一个或多个同步线程,其中每个同步线程根据一个反向映射文件将接收缓存中对应内存块的数据更新存储至接收方系统存储器中对应的离散结构的地址中。
8.根据权利要求7所述的应用在核电站全范围模拟机中的数据解包装置,其特征在于,所述数据存储模块采用的所述同步线程的数量 等于所接收的映射文件的数量。
全文摘要
本发明提供一种应用在核电站全范围模拟机中的数据打包和解包的方法,并且通过该方法,建立了应用在核电站全范围模拟机中的数据打包和解包的装置。该方法包括在发送缓存中为底层物理存储器中以离散结构存储的数据分配具有连续地址的一个或多个内存块中,并针对每个内存块生成映射文件,将所述映射文件发送给数据接收方用于解包;运行一个或多个同步线程根据映射文件将底层物理存储器中以离散结构存储的数据更新存储至对应内存块;在数据更新步骤运行的同时将内存块中数据打包发送。本发明通过采用多线程,分离数据更新同步与打包过程,可有效的改善数据打包和接收解包的时间,快速地将以离散结构存储的大量数据打包发送到其他子系统。
文档编号H04L29/08GK103095738SQ20111033197
公开日2013年5月8日 申请日期2011年10月27日 优先权日2011年10月27日
发明者张光昱, 章旋, 曹建亭 申请人:中广核(北京)仿真技术有限公司, 中国广东核电集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1