具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的数据访问方法以及数据处理方法应用但不限于两个CPU的数据通信中,存在一个CPU进行协议处理的场景。
本申请实施例以第一处理器为PLC主机架构中的CPU中的通信模块(如电路、组件等),第二处理器为PLC从机架构中的CPU中的控制器(如芯片)为例,对第一处理器以及第二处理器在数据通信时的交互过程进行介绍。
需要说明的是,本实施例所述的方法,可以适用于多种协议,例如第一类通信协议:通信数据点在组态时已经确定的协议类型,包括:ModbusTCP主、OPC UA Client、Profibus DP主、Powerlink主、或EtherCAT主。
第一类通信协议针对订阅表可在协议初始化配置时进行一次性的订阅,且对应的订阅表可设置为永不老化。
以及,第二类通信协议:通信数据点事先不确定性、由实际通信过程决定的协议类型,包括:ModbusTCP从、OPC UA Server、组态软件通信协议。
第二类通信协议针对订阅表需要实行动态的订阅,且需要预设老化时间值。
图1为本申请实施例提供的一种数据的访问及处理的方法,如图1所示,具体可以包括S101~S114。
S101、通信处理模块响应于数据的读命令请求,判断预设的订阅表中的项,是否被读命令请求中的参数命中。
本实施例中,订阅表中的项包括表项和对应的数据项。表项包括历史访问(请求中)的存储属性以及老化时间,数据项包括输出区数据项以及输入区数据。
本实施例中,任一表项的存储属性包括表项ID、数据区ID、地址偏移、数据长度、数据缓存指针、输入输出标志、以及老化设置时间。
其中,表项ID用于唯一标识订阅表的表项,数据区ID用于指示控制器中的数据区ID,地址偏移用于指示控制器中数据段在指定数据区的偏移,数据长度用于指示控制器中数据段的长度,数据缓存指针用于存储控制器中数据段的实时数据,输入输出标志用于指示其为输入还是输出表项,老化设置时间用于设置表项的老化时间值,值为0时表示永不老化。
表项的老化时间用于指示表项从上次命中时刻至当前时刻的时间差。例如,表项1的老化设置时间为T1,老化时间为T2,若T2大于或等于T1,则说明该表项已老化。时间T2指示了表项1从上次命中时刻到当前时刻的时间差为T1。需要说明的是,当表项为初次创建或者被命中,则老化时间置为0。本实施例中,所有表项的老化时间依据更新周期更新。
任一表项对应的数据项的数据值包括:表项ID、长度、以及IO数据。其中,表项ID用于唯一标识订阅表项,同时也为通信处理模块与订阅表进行关联的标识符,长度指示数据项的实际长度(此长度主要用于区分数据区中的多个数据项),IO数据存储本数据项的实际数据内容。
本实施例中,数据的读命令请求中的参数包括数据区ID、地址偏移和数据长度。需要说明的是,读命令请求可以为预先由协议栈依据上述协议,转换得到的读命令请求。
参数命中的项指的是存储属性包括参数指示的存储属性值(例如,存储属性与参数指示的存储属性值相同)的表项(记为目标表项),以及对应的数据项(记为目标数据项)。
也即,本步骤判断预设的订阅表中的项,是否被读命令请求中的参数命中的方法为,查询预设的订阅表中的项是否存在目标表项及对应的数据项。当存在,则说明订阅表中的项被读命令请求中的参数命中。
S102、通信处理模块在判断结果指示命中的情况下,依据参数命中的目标表项,响应数据读命令请求。
本实施例中,目标表项为存储属性包括参数指示的存储属性值的表项,目标数据项为目标表项对应的数据项,当判断结果指示命中,则依据目标数据项以及目标表项,通过通信协议对读命令进行应答。具体响应方式可参照现有技术。
S103、通信处理模块在判断结果指示不命中的情况下,创建新的表项和对应的新的数据项。
具体地,通信处理模块创建的新的表项的方法为,以读命令请求的参数指示的存储属性值作为存储属性,创建新的表项。
该步骤中,因为还未收到控制器的反馈,所以,新的数据项中的数据值为空。
S104、通信处理模块向控制器发送第一创建通知。
本实施例中,第一创建通知用于通知控制器在控制器的订阅表中,创建新的表项和对应的新的数据项。
S105、控制器接收通信处理模块发送的第一创建通知,在控制器的订阅表中,创建新的表项和对应的新的数据项。
本实施例中,控制器的订阅表中包括表项和对应的数据项(包括输出区数据项和输入区数据项),具体内容与通信处理模块中的订阅表相同。
需要说明的是,控制器依据接收的通信处理模块发送的第一创建通知,创建新的表项和对应的新的数据项,创建新的表项对应的数据项的方法为,依据新的表项的存储属性,从控制器的存储空间中,获取存储属性指示的存储空间中的数据值,并将存储空间中的数据值作为新的表项对应的数据项的数据值。并在创建完成后,向通信处理模块发送应答。应答中包括新的数据项的数据值,通信处理模块将此数据值填充为本地的新的数据项的数据值
S106、通信处理模块依据新的数据项,响应数据读命令请求。
具体响应方式可参照现有技术。
以下为通信处理模块与控制器的订阅表的同步流程,需要说明的是,本实施例中,默认处于同一侧的订阅表中的表项和数据项中的表项ID一一对应,即预先经过了本地的同步。
S107、通信处理模块从控制器获取输出区数据项。
S108、通信处理模块在订阅表中存在输出区数据项无法对应的第一目标表项的情况下,通知控制器创建新的表项和新的数据项。
新的表项为第一目标表项,新的数据项为第一目标表项对应的数据项。
具体的,通信处理模块通过比较输入区数据项的表项ID和本地表项的ID,将输出区数据项的表项ID中不存在,但本地表项的表项ID中存在的表项,作为第一目标表项。第一目标表项对应的数据项,由通信处理模块告知控制器。
S109:控制器创建新的表项和新的数据项。
S110、通信处理模块在订阅表中缺少输出区数据项中的第一目标数据项的情况下,通知控制器从控制器的订阅表中,删除第二目标表项。
第二目标表项为第一目标数据项对应的表项。
S111、控制器从控制器的订阅表中,删除第二目标表项。
本实施例中,第二目标表项为第一目标数据项对应的表项。
S112、通信处理模块删除老化时间不小于老化设置时间的表项和对应的数据项。
可选的,S112可以按照预设周期执行。
S113、通信处理模块向控制器发送第一删除通知。
S114、控制器响应于第一删除通知,删除老化时间不小于老化设置时间的表项和对应的数据项。
可选的,第一删除通知中包括通信处理模块删除的表项的表项ID,控制器接收到第一删除通知后,按照表项ID执行删除操作即可,无需再依据老化时间判断。
可选的,通信处理模块在通信处理模块每次创建表项和对应的数据项之前,还可以,判断表项的数量是否达到预设阈值。本实施例中,预设阈值为预设的表项的最大数量限制,该阈值根据实际应用进行设置。在表项的数量达到预设阈值的情况下,删除老化时间最长的表项和对应的数据项。
表项的老化时间在表项的存储属性中查询,当表项的数量达到预设阈值,则说明当前的表项的数量过多,已达到最大数量限制,所以本实施例中,通信处理模块删除老化时间最长的表项和对应的数据项。可以理解的是,老化时间最长的表项为距离上次被命中时刻时间最长的表项,并且,老化时间最长的表项可以为多项。并且,在此情况下,通信处理模块还要通知控制器同步订阅表。
图2为本申请实施例提供的又一种数据的访问及处理的方法,如图2所示,具体可以包括S201~S216。
S201、通信处理模块响应于数据的写命令请求,判断预设的订阅表中的项,是否被写命令请求中的参数命中。
其中,订阅表包括表项和对应的数据项,表项包括历史访问(请求中)的存储属性,数据项包括输出区数据项以及输入区数据。
具体地,任一表项的存储属性包括表项ID、数据区ID、地址偏移、数据长度、数据缓存指针、输入输出标志、老化设置时间、以及老化时间。任一表项对应的数据项的数据值包括:表项ID、长度、以及IO数据。具体可以参照S101,本实施例不做赘述。
本实施例中,数据的写命令请求中的参数包括数据区ID、地址偏移和数据长度。需要说明的是,读命令请求可以为预先由协议栈依据上述协议,转换得到的读命令请求。
参数命中的项指的是存储属性包括参数指示的存储属性值(例如,存储属性与参数指示的存储属性值相同)的表项(记为目标表项),以及对应的数据项(记为目标数据项)。
也即,本步骤判断预设的订阅表中的项,是否被写命令请求中的参数命中的方法为,查询预设的订阅表中的项是否存在目标表项及对应的数据项。当存在,则说明订阅表中的项被写命令请求中的参数命中。
S202、通信处理模块在判断结果指示命中的情况下,依据参数命中的目标表项和目标表项对应的数据项,响应数据写命令请求。
具体响应方式可参照现有技术。
S203、通信处理模块在判断结果指示不命中的情况下,创建新的表项和对应的新的数据项。
具体地,通信处理模块创建的新的表项的方法为,以写命令请求的参数指示的存储属性值作为存储属性,创建新的表项。
创建的新的表项对应的数据项的方法为,以写命令请求的参数指示的写入的数据值作为新的表项对应的数据项的数据值。
S204、通信处理模块向控制器发送第一创建通知。
本实施例中,第一创建通知用于通知控制器在控制器的订阅表中,创建新的表项和对应的新的数据项。
S205、控制器接收通信处理模块发送的第一创建通知,并在控制器的订阅表中,创建新的表项和对应的新的数据项。
本实施例中,控制器的订阅表中包括表项和对应的数据项(包括输出区数据项和输入区数据项),具体内容与通信处理模块中的订阅表相同。
需要说明的是,控制器依据接收的通信处理模块发送的第一创建通知,创建新的表项和对应的新的数据项的方法可以参照上述S105。
S206、通信处理模块依据新的数据项和新的表项,响应数据写命令请求。
具体响应方式可参照现有技术。
以下为通信处理模块与控制器的订阅表的同步流程,需要说明的是,本实施例中,默认处于同一侧的订阅表中的表项和数据项中的表项ID一一对应,即预先经过了本地的同步。
S207、通信处理模块向控制器发送更新输入区数据的指令。
其中,更新输入区数据的指令包括写命令请求中指示的待写入的数据。
S208、控制器响应于更新输入区数据的指令,更新输入区数据。
S209、当更新后的输入区数据存在不匹配项,控制器向通信处理模块发送同步请求。
本实施例中,同步请求包括不匹配项,不匹配项为控制器的订阅表中与更新后的输入区数据不匹配的表项。
S210、通信处理模块接收同步请求,如果通信处理模块的订阅表不存在不匹配项,向控制器发送第二删除通知。
本实施例中,第二删除通知指示控制器在控制器的订阅表中删除不匹配项。
S211、控制器响应于第二删除通知,在控制器的订阅表中,删除不匹配项。
S212、如果通信处理模块的订阅表存在不匹配项,向控制器发送第二创建通知。
本实施例中,第二创建通知指示控制器在控制器的订阅表中,新增不匹配项和对应的数据项。
S213、控制器响应于第二创建通知,在控制器的订阅表中,新增不匹配项和对应的数据项。
S214、通信处理模块删除老化时间不小于老化设置时间的表项和对应的数据项。
S215、通信处理模块向控制器发送第一删除通知。
S216、控制器响应于第一删除通知,删除老化时间不小于老化设置时间的表项和对应的数据项。
需要说明的是,S214~S216的具体实施方法可以参见上述S112~S114。
由上述技术方案可以看出,本申请实施例提供的一种数据访问及处理方法,应用于通信处理模块与控制器的数据通信过程中,通信处理模块响应于数据访问请求,判断预设的订阅表中的项,是否被数据访问请求中的参数命中。如果判断结果指示命中,则通信处理模块依据参数命中的目标表项和/或目标表项对应的数据项,响应数据访问请求。如果判断结果指示不命中,则通信处理模块在订阅表创建新的表项和对应的新的数据项,并向控制器发送第一创建通知,控制器接收通信处理模块发送的第一创建通知,并在控制器的订阅表中,创建新的表项和对应的新的数据项。其中,第一创建通知用于指示控制器在控制器的订阅表中,创建新的表项和对应的新的数据项。
可见,本方法预先将历史访问的存储属性以及对应的数据项存储至订阅表,在数据访问请求中的参数命中表项的情况下,直接依据参数命中的目标表项和/或目标表项对应的数据项,响应数据访问请求即可。并且,在数据访问请求中的参数没有命中表项的情况下,通信处理模块在通信处理模块的订阅表创建新的表项和对应的新的数据项后,响应数据访问请求之前,向控制器发送第一创建通知,指示控制器基于第一创建通知创建新的表项和对应的新的数据项,因此,保证了通信处理模块中的订阅表中的项和控制器中的订阅表中的项相匹配。
综上可知,与现有技术中,在未知通信点的情况下,整个存储空间以及数据都写入通信处理模块的方式相比,能够提高通信效率以及系统性能。
例如,通信处理模块的部分通信协议具有预先无法获知可能的通信数据点的特性,由于需要访问的控制器中的存储空间是未知的,所以,现有技术将有可能读到的空间中的数据,全部复制到通信处理模块中,用于响应读命令请求。但是,本方案将预先将历史访问的存储属性以及对应的数据项存储至订阅表,并同步控制器与通信处理模块的订阅表,在处理未知通信点的场景下,无需将全部数据复制到通信处理模块,由此提高了通信效率,降低系统开销。
进一步,本申请实施例提供的数据访问及处理方法,提供了一种通信处理模块与控制器的订阅表的同步流程,用于在响应数据访问请求之后,同步通信处理模块与控制器的订阅表,保证了通信处理模块的订阅表中的项与控制器中的订阅表中的项相匹配。
需要说明的是,上述图1和图2中,所述的读命令请求或写命令请求,均可以为多个,在此情况下,可以批量处理,对于每个命令请求的处理过程,为图1或图2流程所示。
需要说明的是,图1示例了数据访问及处理方法为访问请求为读命令请求的情况下,通信处理模块以及控制器数据通信的过程,图2示例了数据访问及处理方法为访问请求为写命令请求的情况下,通信处理模块以及控制器数据通信的过程。图1以及图2所示的流程,可以概括为图3所示的通信处理模块端的流程,以及图4所示的控制器端的流程。并且,结合前述两个CPU的场景,将通信处理模块概括为第一处理器,将控制器概括为第二处理器。
图3为本申请实施例提供的数据访问方法的流程示意图,本申请实施例提供的数据访问方法应用于第一处理器。具体可以包括:
S301、响应于数据访问请求,判断预设的订阅表中的项,是否被数据访问请求中的参数命中。
其中,订阅表包括表项和对应的数据项,表项包括历史访问的存储属性,具体可以参见S101。
本实施例中,参数命中的项指的是存储属性包括参数指示的存储属性值(例如,存储属性与参数指示的存储属性值相同)的表项(记为目标表项),以及对应的数据项(记为目标数据项)。
例如,数据访问请求包括读命令请求以及写命令请求。当数据访问请求为读命令请求时,读命令请求中的参数包括数据区ID、地址偏移和数据长度,则目标表项指的是存储属性包括读命令请求中的参数指示的存储属性值(例如,存储属性与参数指示的存储属性值相同)的表项。
本步骤判断预设的订阅表中的项,是否被数据访问请求中的参数命中的方法为,查询预设的订阅表中的项是否存在存储属性包括参数指示的存储属性值的表项,当存在,则说明订阅表中的项被数据访问请求的参数命中。
S302、如果判断结果指示命中,依据参数命中的目标表项和/或目标表项对应的数据项,响应数据访问请求。
具体可以参见现有技术。
S303、如果判断结果指示不命中,创建新的表项和对应的新的数据项。
本实施例中,创建新的表项的方法为创建存储属性为参数指示的存储属性值的表项。
例如,数据访问请求包括读命令请求,读命令请求中的参数包括数据区ID、地址偏移和数据长度,如果判断结果指示不命中,创建存储属性为读命令请求中的参数指示的存储属性值的新的表项。
又例如,数据访问请求包括写命令请求,写命令请求中的参数包括数据区ID、地址偏移和数据长度,如果判断结果指示不命中,创建存储属性为写命令请求中的参数指示的存储属性值的新的表项。
本实施例中,创建新的表项和对应的新的数据项的方法为:
当访问请求包括读命令请求,新的数据项的数据值为从第二处理器获取的存储属性指示的存储空间中的数据值。
当访问请求包括写命令请求,新的数据项的数据值为写命令请求指示的写入的数据值。
S304、通知第二处理器创建新的表项和对应的新的数据项。
S305、依据新的数据项和/或新的表项,响应数据访问请求。
具体可以参见现有技术。
从上述技术方案可以看出,本申请实施例提供的一种数据访问方法,第一处理器响应于数据访问请求,判断预设的订阅表中的项,是否被数据访问请求中的参数命中。其中,订阅表包括表项和对应的数据项,表项包括历史访问的存储属性,参数命中的项为:目标表项以及目标表项对应的数据项,参数命中的项指的是存储属性包括参数指示的存储属性值。如果判断结果指示命中,则第一处理器依据参数命中的目标表项和/或目标表项对应的数据项,响应数据访问请求。综上,本申请提供的数据访问方法中,预先将历史访问的存储属性以及对应的数据项存储至订阅表,在数据访问请求中的参数命中表项的情况下,直接依据参数命中的目标表项和/或目标表项对应的数据项,响应数据访问请求即可。与现有技术中,在未知通信点的情况下,整个存储空间以及数据都写入第一处理器的方式相比,能够提高通信效率以及系统性能。
图4为本申请实施例提供的数据处理方法的流程示意图,本申请实施例提供的数据处理方法应用于第二处理器。具体可以包括:
S401、接收第一处理器发送的第一创建通知,第一创建通知用于指示第二处理器在第二处理器的订阅表中,创建新的表项和对应的新的数据项。
本实施例中,第二处理器中的订阅表包括表项和对应的数据项,表项包括存储属性。具体的订阅表的项以及通信协议可以参见第一处理器中的订阅表。
第一创建通知在第一处理器响应于数据访问请求,确定第一处理器的订阅表没有被数据访问请求中的参数命中,并在第一处理器的订阅表创建新的表项和对应的新的数据项后发出。
S402、在第二处理器的订阅表中,创建新的表项和对应的新的数据项。
本实施例中,第一创建通知中包括第一处理器订阅表创建的新的表项和对应的新的数据项,第二处理器可以依据第一创建通知中的新的表项和对应的新的数据项在第二处理器的订阅表中,创建新的表项和对应的新的数据项。
S403、响应于第一处理器发送的删除通知,删除第二处理器的订阅表中的目标表项。
本实施例中,目标表项为第一处理器的订阅表中,不存在的表项。
需要说明的是,第一处理器发送的删除通知的发送时机至少包括以下两种:
第一种、数据访问请求包括读命令请求时,第一处理器从第二处理器获取输出区数据后,当第一处理器的订阅表中缺少输出区数据项中的第一目标数据项,则发出删除通知,用于通知第二处理器从第二处理器的订阅表中,删除第二目标表项。
此时,第二处理器响应于第一处理器发送的删除通知,删除第二处理器的订阅表中的目标表项,包括:删除第二目标表项,第二目标表项为第二处理器中与第一目标数据项对应的表项。
具体可参照图1所示的流程。
第二种、数据访问请求包括写命令请求时,第二处理器更新输入区数据后,向第一处理器发送至少包括不匹配项的同步请求,第一处理器响应于同步请求,在第一处理器的订阅表不存在不匹配项时,发送删除请求,用于通知第二处理器,在第二处理器的订阅表中删除不匹配项。
此时,第二处理器响应于第一处理器发送的删除通知,删除第二处理器的订阅表中的目标表项,包括:在第二处理器的订阅表中删除不匹配项。
具体可参照图2所示的流程。
需要说明的是,上述仅为第二处理器响应于第一处理器发送的删除通知,删除第二处理器的订阅表中的目标表项的两种方法,本实施例还包括其他方法。
由上述技术方案可以看出,本申请提供的数据处理方法中,第二处理器接收第一处理器发送的第一创建通知,第一创建通知用于指示第二处理器在第二处理器的订阅表中,创建新的表项和对应的新的数据项;第一创建通知在第一处理器响应于数据访问请求,确定第一处理器的订阅表没有被数据访问请求中的参数命中,并在第一处理器的订阅表创建新的表项和对应的新的数据项后发出。第二处理器在第二处理器的订阅表中,创建新的表项和对应的新的数据项。综上,第二处理器基于第一创建通知,在确定第一处理器的订阅表没有被数据访问请求中的参数命中,并在第一处理器的订阅表创建新的表项和对应的新的数据项后,在第二处理器的订阅表中,创建新的表项和对应的新的数据项,因此,保证了第一处理器中的订阅表中的项和第二处理器中的订阅表中的项相匹配。
图5示出了本申请实施例提供的一种数据的访问装置的结构示意图,如图5所示,该装置可以包括:
判断单元501,用于响应于数据访问请求,判断预设的订阅表中的项,是否被所述数据访问请求中的参数命中;其中,所述订阅表包括表项和对应的数据项,所述表项包括历史访问的存储属性,所述参数命中的项为:目标表项以及所述目标表项对应的所述数据项,所述目标表项为所述存储属性包括所述参数指示的存储属性值的所述表项;
响应单元502,用于如果判断结果指示命中,则依据所述参数命中的所述目标表项和/或所述目标表项对应的所述数据项,响应所述数据访问请求。
可选地,响应单元还用于:如果所述判断结果指示不命中,创建新的表项和对应的新的数据项,所述新的表项的所述存储属性为所述参数指示的所述存储属性值;依据所述新的数据项和/或所述新的表项,响应所述数据访问请求;
其中,所述访问请求包括读命令请求,所述新的数据项的数据值为从第二处理器获取的所述存储属性指示的存储空间中的数据值;或者,
所述访问请求包括写命令请求,所述新的数据项的所述数据值为所述写命令请求指示的写入的数据值。
可选地,数据访问装置还包括第一通知单元,用于在所述创建新的表项和新的数据项之后,以及所述响应所述数据访问请求之前,通知所述第二处理器创建所述新的表项和对应的新的数据项。
可选地,访问请求包括读命令请求;所述数据项包括输出区数据项;
可选地,数据访问装置还包括:第二通知单元,用于在所述响应所述数据访问请求之后,从第二处理器获取所述输出区数据项,如果所述订阅表中存在所述输出区数据项无法对应的第一目标表项,通知所述第二处理器创建新的表项和新的数据项,所述新的表项为所述第一目标表项,所述新的数据项为所述订阅表中,所述第一目标表项对应的所述数据项;如果所述订阅表中缺少所述输出区数据项中的第一目标数据项,则通知所述第二处理器从所述第二处理器的所述订阅表中,删除第二目标表项,所述第二目标表项为所述第一目标数据项对应的表项。
可选地,访问请求包括写命令请求;所述数据项包括输入区数据项;
第二通知单元还用于在所述响应所述数据访问请求之后,接收第二处理器发送的同步请求,所述同步请求指示不匹配项,所述不匹配项为所述第二处理器的所述订阅表中与所述输入区数据不匹配的所述表项;
如果所述第一处理器的所述订阅表不存在所述不匹配项,通知所述第二处理器,在所述第二处理器的所述订阅表中,删除所述不匹配项;
如果所述第一处理器的所述订阅表存在所述不匹配项,通知所述第二处理器,在所述第二处理器的所述订阅表中,新增所述不匹配项和对应的所述数据项。
可选地,表项还包括:老化时间,所述老化时间用于指示所述表项从上次命中时刻至当前时刻的时间差;
数据访问装置还包括:老化表项处理单元,用于:
在所述表项的数量达到预设阈值的情况下,删除所述老化时间最长的所述表项和对应的所述数据项,并通知所述第二处理器删除所述老化时间最长的所述表项和对应的所述数据项。
图6示出了本申请实施例提供的一种数据的处理装置的结构示意图,如图6所示,该装置可以包括:
通知接收单元601,用于接收第一处理器发送的第一创建通知,所述第一创建通知用于指示所述第二处理器在所述第二处理器的订阅表中,创建新的表项和对应的新的数据项;所述订阅表包括表项和对应的数据项,所述表项包括历史访问的存储属性;所述第一创建通知在所述第一处理器响应于数据访问请求,确定所述第一处理器的订阅表没有被所述数据访问请求中的参数命中,并在所述第一处理器的订阅表创建所述新的表项和对应的新的数据项后发出;
创建单元602,用于在所述第二处理器的订阅表中,创建所述新的表项和对应的新的数据项。
可选地,数据处理装置还包括第一响应单元,用于响应于所述第一处理器发送的删除通知,删除所述第二处理器的订阅表中的目标表项,所述目标表项为所述第一处理器的订阅表中,不存在的所述表项。
可选地,访问请求包括写命令请求;
所述数据项包括输入区数据项;
数据处理装置还包括第二响应单元,用于:
响应于所述第一处理器更新所述输入区数据的指令,更新所述输入区数据;所述指令包括待写入的数据;
如果更新后的所述输入区数据存在不匹配项,将所述不匹配项,发送至所述第一处理器,所述不匹配项为所述第二处理器的所述订阅表中与所述更新后的输入区数据不匹配的所述表项;
响应于所述第一处理器的第二创建通知,在所述第二处理器的所述订阅表中,新增所述不匹配项和对应的所述数据项,所述第二创建通知由所述第一处理器的所述订阅表存在所述不匹配项触发;
响应于所述第一处理器的第二删除通知,在所述第二处理器的所述订阅表中,删除所述不匹配项,所述第二删除通知由所述第一处理器的所述订阅表不存在所述不匹配项触发。
本申请实施例提供一种设备,包括存储器和处理器,本实施例中,所述处理器为第一处理器,存储器存储计算机程序,第一处理器可执行存储器存储的计算机程序,实现本申请实施例提供的一种数据访问方法,如下:
响应于数据访问请求,判断预设的订阅表中的项,是否被所述数据访问请求中的参数命中;其中,所述订阅表包括表项和对应的数据项,所述表项包括历史访问的存储属性,所述参数命中的项为:目标表项以及所述目标表项对应的所述数据项,所述目标表项为所述存储属性包括所述参数指示的存储属性值的所述表项;
如果判断结果指示命中,则依据所述参数命中的所述目标表项和/或所述目标表项对应的所述数据项,响应所述数据访问请求。
可选地,数据访问方法还包括:
如果所述判断结果指示不命中,创建新的表项和对应的新的数据项,所述新的表项的所述存储属性为所述参数指示的所述存储属性值;
依据所述新的数据项和/或所述新的表项,响应所述数据访问请求;
其中,所述访问请求包括读命令请求,所述新的数据项的数据值为从第二处理器获取的所述存储属性指示的存储空间中的数据值;或者,
所述访问请求包括写命令请求,所述新的数据项的所述数据值为所述写命令请求指示的写入的数据值。
可选地,在所述创建新的表项和新的数据项之后,以及所述响应所述数据访问请求之前,还包括:
通知所述第二处理器创建所述新的表项和对应的新的数据项。
可选地,访问请求包括读命令请求;
所述数据项包括输出区数据项;
在所述响应所述数据访问请求之后,还包括:
从第二处理器获取所述输出区数据项,如果所述订阅表中存在所述输出区数据项无法对应的第一目标表项,通知所述第二处理器创建新的表项和新的数据项,所述新的表项为所述第一目标表项,所述新的数据项为所述订阅表中,所述第一目标表项对应的所述数据项;如果所述订阅表中缺少所述输出区数据项中的第一目标数据项,则通知所述第二处理器从所述第二处理器的所述订阅表中,删除第二目标表项,所述第二目标表项为所述第一目标数据项对应的表项。
可选地,访问请求包括写命令请求;
所述数据项包括输入区数据项;
在所述响应所述数据访问请求之后,还包括:
接收第二处理器发送的同步请求,所述同步请求指示不匹配项,所述不匹配项为所述第二处理器的所述订阅表中与所述输入区数据不匹配的所述表项;
如果所述第一处理器的所述订阅表不存在所述不匹配项,通知所述第二处理器,在所述第二处理器的所述订阅表中,删除所述不匹配项;
如果所述第一处理器的所述订阅表存在所述不匹配项,通知所述第二处理器,在所述第二处理器的所述订阅表中,新增所述不匹配项和对应的所述数据项。
可选地,表项还包括:
老化时间,所述老化时间用于指示所述表项从上次命中时刻至当前时刻的时间差;
所述方法还包括:
在所述表项的数量达到预设阈值的情况下,删除所述老化时间最长的所述表项和对应的所述数据项,并通知所述第二处理器删除所述老化时间最长的所述表项和对应的所述数据项。
本申请实施例提供一种设备,包括存储器和处理器,本实施例中,所述处理器为第二处理器,存储器存储计算机程序,第二处理器可执行存储器存储的计算机程序,实现本申请实施例提供的一种数据处理方法,如下:
接收第一处理器发送的第一创建通知,所述第一创建通知用于指示所述第二处理器在所述第二处理器的订阅表中,创建新的表项和对应的新的数据项;所述订阅表包括表项和对应的数据项,所述表项包括历史访问的存储属性;所述第一创建通知在所述第一处理器响应于数据访问请求,确定所述第一处理器的订阅表没有被所述数据访问请求中的参数命中,并在所述第一处理器的订阅表创建所述新的表项和对应的新的数据项后发出;
在所述第二处理器的订阅表中,创建所述新的表项和对应的新的数据项。
可选地,一种数据处理方法还包括:
响应于所述第一处理器发送的删除通知,删除所述第二处理器的订阅表中的目标表项,所述目标表项为所述第一处理器的订阅表中,不存在的所述表项。
可选地,访问请求包括写命令请求;
所述数据项包括输入区数据项;
所述方法还包括:
响应于所述第一处理器更新所述输入区数据的指令,更新所述输入区数据;所述指令包括待写入的数据;
如果更新后的所述输入区数据存在不匹配项,将所述不匹配项,发送至所述第一处理器,所述不匹配项为所述第二处理器的所述订阅表中与所述更新后的输入区数据不匹配的所述表项;
响应于所述第一处理器的第二创建通知,在所述第二处理器的所述订阅表中,新增所述不匹配项和对应的所述数据项,所述第二创建通知由所述第一处理器的所述订阅表存在所述不匹配项触发;
响应于所述第一处理器的第二删除通知,在所述第二处理器的所述订阅表中,删除所述不匹配项,所述第二删除通知由所述第一处理器的所述订阅表不存在所述不匹配项触发。
本申请实施例还提供一种可读存储介质,该可读存储介质可存储有适于处理器执行的计算机程序,计算机程序被处理器执行时,实现本申请实施例公开的数据访问和数据处理方法,如下:
一种数据访问方法,应用于第一处理器,包括:
响应于数据访问请求,判断预设的订阅表中的项,是否被所述数据访问请求中的参数命中;其中,所述订阅表包括表项和对应的数据项,所述表项包括历史访问的存储属性,所述参数命中的项为:目标表项以及所述目标表项对应的所述数据项,所述目标表项为所述存储属性包括所述参数指示的存储属性值的所述表项;
如果判断结果指示命中,则依据所述参数命中的所述目标表项和/或所述目标表项对应的所述数据项,响应所述数据访问请求。
可选地,数据访问方法还包括:
如果所述判断结果指示不命中,创建新的表项和对应的新的数据项,所述新的表项的所述存储属性为所述参数指示的所述存储属性值;
依据所述新的数据项和/或所述新的表项,响应所述数据访问请求;
其中,所述访问请求包括读命令请求,所述新的数据项的数据值为从第二处理器获取的所述存储属性指示的存储空间中的数据值;或者,
所述访问请求包括写命令请求,所述新的数据项的所述数据值为所述写命令请求指示的写入的数据值。
可选地,在所述创建新的表项和新的数据项之后,以及所述响应所述数据访问请求之前,还包括:
通知所述第二处理器创建所述新的表项和对应的新的数据项。
可选地,访问请求包括读命令请求;
所述数据项包括输出区数据项;
在所述响应所述数据访问请求之后,还包括:
从第二处理器获取所述输出区数据项,如果所述订阅表中存在所述输出区数据项无法对应的第一目标表项,通知所述第二处理器创建新的表项和新的数据项,所述新的表项为所述第一目标表项,所述新的数据项为所述订阅表中,所述第一目标表项对应的所述数据项;如果所述订阅表中缺少所述输出区数据项中的第一目标数据项,则通知所述第二处理器从所述第二处理器的所述订阅表中,删除第二目标表项,所述第二目标表项为所述第一目标数据项对应的表项。
可选地,访问请求包括写命令请求;
所述数据项包括输入区数据项;
在所述响应所述数据访问请求之后,还包括:
接收第二处理器发送的同步请求,所述同步请求指示不匹配项,所述不匹配项为所述第二处理器的所述订阅表中与所述输入区数据不匹配的所述表项;
如果所述第一处理器的所述订阅表不存在所述不匹配项,通知所述第二处理器,在所述第二处理器的所述订阅表中,删除所述不匹配项;
如果所述第一处理器的所述订阅表存在所述不匹配项,通知所述第二处理器,在所述第二处理器的所述订阅表中,新增所述不匹配项和对应的所述数据项。
可选地,表项还包括:
老化时间,所述老化时间用于指示所述表项从上次命中时刻至当前时刻的时间差;
所述方法还包括:
在所述表项的数量达到预设阈值的情况下,删除所述老化时间最长的所述表项和对应的所述数据项,并通知所述第二处理器删除所述老化时间最长的所述表项和对应的所述数据项。
一种数据处理方法,应用于第二处理器,包括:
接收第一处理器发送的第一创建通知,所述第一创建通知用于指示所述第二处理器在所述第二处理器的订阅表中,创建新的表项和对应的新的数据项;所述订阅表包括表项和对应的数据项,所述表项包括历史访问的存储属性;所述第一创建通知在所述第一处理器响应于数据访问请求,确定所述第一处理器的订阅表没有被所述数据访问请求中的参数命中,并在所述第一处理器的订阅表创建所述新的表项和对应的新的数据项后发出;
在所述第二处理器的订阅表中,创建所述新的表项和对应的新的数据项。
可选地,一种数据处理方法还包括:
响应于所述第一处理器发送的删除通知,删除所述第二处理器的订阅表中的目标表项,所述目标表项为所述第一处理器的订阅表中,不存在的所述表项。
可选地,访问请求包括写命令请求;
所述数据项包括输入区数据项;
所述方法还包括:
响应于所述第一处理器更新所述输入区数据的指令,更新所述输入区数据;所述指令包括待写入的数据;
如果更新后的所述输入区数据存在不匹配项,将所述不匹配项,发送至所述第一处理器,所述不匹配项为所述第二处理器的所述订阅表中与所述更新后的输入区数据不匹配的所述表项;
响应于所述第一处理器的第二创建通知,在所述第二处理器的所述订阅表中,新增所述不匹配项和对应的所述数据项,所述第二创建通知由所述第一处理器的所述订阅表存在所述不匹配项触发;
响应于所述第一处理器的第二删除通知,在所述第二处理器的所述订阅表中,删除所述不匹配项,所述第二删除通知由所述第一处理器的所述订阅表不存在所述不匹配项触发。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。