状态机相关信息存储方法及装置的制作方法

文档序号:6354144阅读:171来源:国知局
专利名称:状态机相关信息存储方法及装置的制作方法
技术领域
本发明涉及状态机技术领域,特别涉及状态机相关信息存储方法及装置。
背景技术
状态机在软件、硬件的设计中是一项使用频繁的关键技术。通常地,在软件和硬件 的正常运行中,会有海量(K级、兆级、千兆级以上)的并行状态机同时运行,并且需要涉及 状态机的动态创建、调用、跳转等众多操作。现有的状态机在设计时大多按照如下步骤进行步骤SlOl 严格按照状态转换表定义状态表结构,以状态机类型区分各状态表结 构;步骤S102 严格按照状态转换表定义跳转表结构,以状态机类型区分各跳转表结 构。步骤S103 为每个状态机的运转维护一个信息记录结构,记录状态机的运转状 态,状态机的运转参数,如定时器值,注册模式,对应端口(若状态机基于物理端口)等,这 种状态机运行参数信息往往采用结构体的形式记录;步骤S104 定义状态机接口为对内接口和对外接口。对内接口主要用于状态机运 转时查询其它状态机的状态机运转参数,如查询状态机A的当前运转状态;对外接口主要 是对于状态机外部调用者,如需要在某端口创建一个状态机。通过以上设计方法设计出的状态机通过结构体(如用c语言中定义的结构体)来 存储状态机相关的信息,并且每个状态机都需要设计很多接口,以实现对状态机相关信息 的读取和调用等操作。随着软件、硬件设计中状态机的数量越来越大,现有的状态机的缺陷逐步显现,首 先,当状态机的数量很多时,每个状态机都需要存储自己的状态、注册模式等相关信息,而 结构体形式的存储方法需要占用较多的存储资源;其次,使用结构体存储状态机相关信息, 要查询或调用各信息时,需要通过各个状态机中预先设计的相应的接口进行,这些接口包 括对内接口和对外接口等,数量较多,而在状态机的运转过程中,往往需要反复的查询和调 用,当状态机数量较多时,频繁的查询和调用等操作将耗费大量的运算资源,而且不便于统 一的调用。

发明内容
本发明实施例提供一种状态机相关信息存储方法,能够减少状态机相关信息占用 的存储资源。本发明实施例提供一种状态机相关信息存储装置,能够减少状态机相关信息占用 的存储资源。为达到上述目的,本发明的技术方案具体是这样实现的一种状态机相关信息存储方法,该方法包括
接收状态机相关信息存储指令;从所述指令中提取需要存储的状态机相关信息;根据预先建立的所述状态机相关信息与位域中数据位的对应关系,将所述状态机 相关信息存储到预先建立的位域数据结构中。较佳地,所述位域数据结构为短数据short类型数据结构。较佳地,所述信息与位域中数据位的对应关系,包括应用状态机状态信息对应位域中任意连续4个比特位;注册状态机状态信息对应位域中任意连续2个比特位;注册类型信息对应位域中任意连续2个比特位。较佳地,所述信息与位域中数据位的对应关系,还包括协议控制信息对应位域中任意1个比特位;离开定时器的递减计数信息对应位域中任意连续4个比特位;保留信息对应位域中任意连续3个比特位。较佳地,该方法进一步包括接收状态机相关信息调用指令;根据所述指令确定需要调用的状态机相关信息;选取预先根据所述状态机相关信息与位域中数据位的对应关系定义的掩码,与所 述存储的位域数据结构中的数据进行逻辑计算,得到所述需要调用的状态机相关信息。较佳地,所述逻辑计算包括逻辑与、逻辑或,或者异或操作。一种状态机相关信息存储装置,该装置包括存储指令接收模块,用于接收状态机相关信息存储指令;存储模块,用于在所述存储指令接收模块接收到数据存储指令时,从所述指令中 提取需要存储的状态机相关信息;根据预先建立的所述信息与位域中数据位的对应关系, 将所述信息存储到预先建立的位域数据结构中。较佳地,所述存储模块包括信息提取单元,用于在所述指令接收模块接收到数据存储指令时,从所述指令中 提取需要存储的状态机相关信息;存储单元,用于根据预先建立的所述信息与位域中数据位的对应关系,将所述信 息存储到预先建立的短数据short类型数据结构中。较佳地,该装置进一步包括调用指令接收模块,用于接收状态机相关信息调用指令;调用模块,用于在所述调用指令接收模块接收到所述状态机相关信息调用指令 时,根据所述状态机相关信息调用指令确定需要调用的状态机相关信息,选取预先根据所 述信息与位域中数据位的对应关系定义的掩码,与所述存储模块存储的位域数据结构中的 数据进行逻辑计算,得到所述需要调用的状态机相关信息。较佳地,所述调用模块包括掩码单元,用于在所述调用指令接收模块接收到所述状态机相关信息调用指令 时,根据所述状态机相关信息调用指令确定需要调用的状态机相关信息,选取预先根据所 述状态机相关信息与位域中数据位的对应关系定义的掩码;
调用单元,用于使用所述掩码单元选取的掩码,与所述存储单元存储的位域数据 结构中的数据进行逻辑与、逻辑或,或者异或操作,得到所述需要调用的状态机相关信息。由上述的技术方案可见,本发明的这种状态机相关信息存储方法及装置无需为状 态机设计复杂的数据存储结构,以及调用数据的各种接口,仅通过简单的位域方式存储信 息,进而可以通过掩码与位域的逻辑操作简单方便地得到位域中的数据,由于采用了位域 结构存储状态机的相关信息,相比现有状态机相关信息的存储方法,可以明显地减少状态 机相关信息的存储空间以及调用状态机相关信息所需消耗的系统资源,并简化状态机设 计,在需要大量状态机并行工作的应用场景下(例如交换机应用)本发明的效果尤其明显。


图1为本发明实施例的状态机相关信息存储方法流程图;图2为本发明实施例的状态机相关信息与位域中数据位的对应关系示意图;图3为本发明实施例的状态机相关信息调用方法流程图;图4为本发明实施例的状态机相关信息存储装置结构示意图;图5为本发明实施例的存储模块结构示意图;图6为本发明另一实施例的状态机相关信息存储装置结构示意图;图7为本发明实施例的调用模块结构示意图。
具体实施例方式为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明进一步详细说明。本发明主要是改进了状态机设计中相关信息存储的传统设计思路,放弃传统的数 据结构和接口的方法,仅通过简单的位域方式存储状态机相关信息,并进而可以通过掩码 与位域的逻辑操作实现状态机相关信息的调用,相比现有状态机相关信息的存储方法,由 于位域结构本身的特性,不仅可以减少存储过程中所需的存储空间,且在对以该方式存储 的信息进行调用时也更加简单,避免了使用接口方式反复调用带来的系统开销,能明显减 少状态机相关信息的存储空间以及调用状态机相关信息所需消耗的系统资源。本发明在具体应用时,可以首先确定状态机的哪些相关信息需要采用位域保存; 之后确定位域中各信息对应的比特位数和存放顺序;最后确定与位域中各信息对应的掩码 值。下面以数据通信领域,交换机开发中GVRP (GARP VLAN RegistrationProtocol,通 用VLAN注册协议)模块的开发为例,具体阐述本发明状态机相关信息的存储方法。现有的交换机基于物理端口接收GVRP协议报文时,协议报文中存在大量的VLAN 信息,基于每个端口接收到的每个VLAN都会有两个状态机应用状态机和注册状态机;基 于物理端口存在注册模式,对于所述两个状态机都存在当前注册状态、定时器递减数目等 需要存储和调用的状态机相关信息。一般来说,应当将状态机运转过程中反复查询的,或者需要反馈给用户使用的,或 者有利于开发人员内部调试的信息等需要消耗较多系统资源的数据放入位域中保存。在本 例中,可将应用状态机的状态、注册状态机的状态、注册模式、协议控制参数、离开(Leave)定时器的递减(Countdown)次数等信息以位域数据结构来存储。所谓位域数据结构,即以二进制数据位(比特位,bit)为单位的数据结构,在位域 中,信息以1个或多个连续的二进制数据位存储,若要在某一长度的位域数据结构中存储 多个不同的信息,就需要预先建立位域结构中各种信息与位域中数据位的对应关系,在本 例中,根据应用状态机、注册状态机的状态个数,对应bit可分别取4个和2个。根据注册 类型种类,对应bit可以取2个。根据协议控制参数类别,bit可取1个。根据Leave定时 器的Countdown (递减)次数,对应bit可取4个,还可以另外取3个bit作为保留位以便 将来扩展,当然,若不考虑扩展,也可以不设置保留位。将上述的信息确定为需要采用位域方式存储的信息后,即可利用本发明的状态机 相关信息存储方法进行存储,具体存储方法如图1所示,包括如下步骤步骤101,接收状态机相关信息存储指令;步骤102,从所述指令中提取需要存储的状态机相关信息;步骤103,根据预先建立的所述信息与位域中数据位的对应关系,将所述信息存储 到预先建立的位域数据结构中。由于在本例中,需要存储的上述信息一共需要16个比特位,因此步骤103中预先 建立的位域数据结构可以是一个16bit的位域数据结构,例如一个短数据short类型数据 结构。应用在交换机中,可以为交换机端口建立一个16个bit的短数据(short)类型数据 结构作为交换机某端口某虚拟标识(VID)的状态机结构的一个成员即可。另外,步骤103中预先建立的所述信息与位域中数据位的对应关系可以如图2所 示,以左边为前,前四个连续bit对应应用状态机状态信息AppState,之后两个连续bit对应注册 状态机状态信息RState,之后两个连续bit对应注册类型信息RegType,0表示正常,1表示 修改,2表示禁止;之后一个bit对应协议控制信息P,0表示正常,1表示没有协议;之后三 个连续bit对应保留位Else,最后四个连续bit对应Leave定时器的递减计数信息Leave Countdown。当然,其中各个信息在位域中具体的排列顺序是任意的,具体哪些信息需要保 存在位域中,也可以根据需要确定,例如应用状态机状态信息、注册状态机状态信息和注册 类型信息是比较常用的信息,预先建立的所述信息与位域中数据位的对应关系中,可以只 包括应用状态机状态信息、注册状态机状态信息和注册类型信息与位域中数据位的对应关 系,而协议控制信息、保留位和Leave定时器的递减计数信息则可以不包括在内。具体存储时,按照上述对应关系将从步骤101接收到的状态机相关信息存储指令 中取出的需要存储的状态机信息存储到位域中相应的数据位中即可。采用上述位域方式存储信息,可以有效节省信息的存储空间,如以现有方法存储 上述应用状态机状态信息、注册状态机状态信息、注册类型信息、协议控制信息、保留位和 Leave定时器的递减计数信息,为每个信息单独建立一个数据结构进行存储,其所需的存储 空间将是本发明方法的数倍。另外,现有的存储方法中,要为每个信息设计独立的调用接口,调用这些信息所要 耗费的系统资源也很大,而通过本发明的存储方法,在后续对存储的信息进行调用时,还可 以进一步采用掩码方式来获取位域中存储的信息,从而进一步节省调用时的系统开销,具 体方法如图3所示,包括如下步骤
步骤301,接收状态机相关信息调用指令;步骤302,根据所述指令确定需要调用的状态机相关信息;步骤303,选取预先根据所述状态机相关信息与位域中数据位的对应关系定义的 掩码,与所述位域数据进行逻辑计算,得到所述状态机相关信息信息。所述逻辑计算可以包括逻辑与、逻辑或,或者异或操作。另外,还以图2所示位域中数据位与状态机相关信息的对应关系为例,可以采用 以下掩码定义APP_MASK,值为OxfOOO,对应最前四个比特位的应用状态机状态AppState信息;REG_MASK,值为OxOcOO,对应之后两个比特位的注册状态机状态RState信息;RTY_MASK,值为0x0300,对应之后两个比特位的注册类型RegType信息;PR0T_MASK,值为0x0080,对应之后一个比特位的协议控制P信息;LV_MASK,值为OxOOOf,对应最后四个比特位的离开定时器的递减计数Leave Countdown 信息;对于三个比特位的保留位Else由于暂时不需要用,所以可以不为其定义对应的掩码。通过以上定义的掩码,使用掩码方式调用状态机相关信息,可以避免设计一系列 的调用接口,降低接口调用的系统开销,提高状态机运转效率。另外,本发明还提供了一种状态机相关信息存储装置,图4为本发明实施例的状 态机相关信息存储装置结构示意图,如图4所示,该装置包括存储指令接收模块401,用于接收状态机相关信息存储指令;存储模块402,用于在所述存储指令接收模块接收到数据存储指令时,从所述指 令中提取需要存储的状态机相关信息;根据预先建立的所述信息与位域中数据位的对应关 系,将所述信息存储到预先建立的位域数据结构中。其中,所述存储模块402的具体结构如图5所示,包括信息提取单元501,用于在所述指令接收模块接收到数据存储指令时,从所述指令 中提取需要存储的状态机相关信息;存储单元502,用于根据预先建立的所述信息与位域中数据位的对应关系,将所述 信息存储到预先建立的短数据short类型数据结构中。另外,考虑到信息调用,本发明的状态机相关信息存储装置,如图6所示,除存储 指令接收模块401和存储模块402外,还可以进一步包括调用指令接收模块601,用于接收状态机相关信息调用指令;调用模块602,用于根据所述状态机相关信息调用指令确定需要调用的状态机相 关信息,选取预先根据所述信息与位域中数据位的对应关系定义的掩码,与所述存储模块 402存储的位域数据结构中的数据进行逻辑计算,得到所述需要调用的状态机相关信息。其中,所述调用模块602如图7所示,包括掩码单元701,用于在所述调用指令接收模块接收到所述状态机相关信息调用指 令时,根据所述状态机相关信息调用指令确定需要调用的状态机相关信息,选取预先根据 所述状态机相关信息与位域中数据位的对应关系定义的掩码;调用单元702,用于使用所述掩码单元选取的掩码,与所述存储单元存储的位域数据结构中的数据进行逻辑与、逻辑或,或者异或操作,得到所述需要调用的状态机相关信 肩、ο 由上述的实施例可见,本发明的这种状态机相关信息的存储和调用方法及装置, 仅通过简单的位域方式存储参数,并通过掩码与位域数据结构的数据进行逻辑操作可以简 单方便地得到位域数据结构中的存储的状态机相关信息,相比现有状态机相关信息的存储 和调用方法,可以明显地减少状态机参数的存储空间以及调用状态机相关信息所需消耗的 系统资源,并简化状态机设计,在需要大量状态机并行工作的应用场景下效果尤其明显。
权利要求
1.一种状态机相关信息存储方法,其特征在于,该方法包括 接收状态机相关信息存储指令;从所述指令中提取需要存储的状态机相关信息;根据预先建立的所述状态机相关信息与位域中数据位的对应关系,将所述状态机相关 信息存储到预先建立的位域数据结构中。
2.如权利要求1所述的状态机相关信息存储方法,其特征在于,所述位域数据结构为 短数据short类型数据结构。
3.如权利要求1所述的状态机相关信息存储方法,其特征在于,所述信息与位域中数 据位的对应关系,包括应用状态机状态信息对应位域中任意连续4个比特位; 注册状态机状态信息对应位域中任意连续2个比特位; 注册类型信息对应位域中任意连续2个比特位。
4.如权利要求3所述的状态机相关信息存储方法,其特征在于,所述信息与位域中数 据位的对应关系,还包括协议控制信息对应位域中任意1个比特位;离开定时器的递减计数信息对应位域中任意连续4个比特位;保留信息对应位域中任意连续3个比特位。
5.如权利要求1 4中任一项权利要求所述的状态机相关信息存储方法,其特征在于, 该方法进一步包括接收状态机相关信息调用指令;根据所述指令确定需要调用的状态机相关信息;选取预先根据所述状态机相关信息与位域中数据位的对应关系定义的掩码,与所述存 储的位域数据结构中的数据进行逻辑计算,得到所述需要调用的状态机相关信息。
6.如权利要求5所述的状态机相关信息存储方法,其特征在于,所述逻辑计算包括逻 辑与、逻辑或,或者异或操作。
7.一种状态机相关信息存储装置,其特征在于,该装置包括 存储指令接收模块,用于接收状态机相关信息存储指令;存储模块,用于在所述存储指令接收模块接收到数据存储指令时,从所述指令中提取 需要存储的状态机相关信息;根据预先建立的所述信息与位域中数据位的对应关系,将所 述信息存储到预先建立的位域数据结构中。
8.如权利要求7所述的状态机相关信息存储装置,其特征在于,所述存储模块包括 信息提取单元,用于在所述指令接收模块接收到数据存储指令时,从所述指令中提取需要存储的状态机相关信息;存储单元,用于根据预先建立的所述信息与位域中数据位的对应关系,将所述信息存 储到预先建立的短数据short类型数据结构中。
9.如权利要求7所述的状态机相关信息存储装置,其特征在于,该装置进一步包括 调用指令接收模块,用于接收状态机相关信息调用指令;调用模块,用于在所述调用指令接收模块接收到所述状态机相关信息调用指令时,根 据所述状态机相关信息调用指令确定需要调用的状态机相关信息,选取预先根据所述信息与位域中数据位的对应关系定义的掩码,与所述存储模块存储的位域数据结构中的数据进 行逻辑计算,得到所述需要调用的状态机相关信息。
10.如权利要求9所述的状态机相关信息存储装置,其特征在于,所述调用模块包括 掩码单元,用于在所述调用指令接收模块接收到所述状态机相关信息调用指令时,根 据所述状态机相关信息调用指令确定需要调用的状态机相关信息,选取预先根据所述状态 机相关信息与位域中数据位的对应关系定义的掩码;调用单元,用于使用所述掩码单元选取的掩码,与所述存储单元存储的位域数据结构 中的数据进行逻辑与、逻辑或,或者异或操作,得到所述需要调用的状态机相关信息。
全文摘要
本发明公开了一种状态机相关信息存储方法,该方法包括接收状态机相关信息存储指令;从所述指令中提取需要存储的状态机相关信息;根据预先建立的所述状态机相关信息与位域中数据位的对应关系,将所述状态机相关信息存储到预先建立的位域数据结构中。本发明还公开了一种状态机相关信息存储装置,该方法和装置可以明显地减少状态机相关信息的存储空间。
文档编号G06F9/312GK102096580SQ201110033189
公开日2011年6月15日 申请日期2011年1月30日 优先权日2011年1月30日
发明者陈卫亮 申请人:瑞斯康达科技发展股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1