具有被应用用户定义协议的硬件协议栈和用于对硬件协议栈应用用户定义协议的方法与流程

文档序号:12863755阅读:181来源:国知局
具有被应用用户定义协议的硬件协议栈和用于对硬件协议栈应用用户定义协议的方法与流程

本公开涉及一种硬件协议栈和一种用于应用用户定义协议的方法,并且更特别地涉及由用户定义的协议适用于的硬件协议栈和用于对硬件协议栈应用用户定义协议的方法。



背景技术:

软件协议栈产品和硬件协议栈产品提供有用于自动地解释协议的功能,并且其中的每一个仅处理与特定协议有关的信息。软件协议栈移植软件栈并将软件栈端用于当前使用的硬件而不具有单独的硬件,并且因此不需要附加的硬件资源。然而,协议通过软件被解释,使得存在其中增加处理时间的缺点。并且,硬件协议栈是附加硬件资源所必需的,但是其具有其中处理时间明显比软件协议栈的更快的优点。

图1a是图示出根据现有技术的从软件协议栈提取数据的过程的概念图。

参考图1,在根据现有技术的软件协议栈40中,当帧20被输入到介质10中时,设备将帧20存储在帧储存器30中。并且,软件协议栈40验证帧20的报头信息并确定要提取错误数据还是应被送到哪个储存器的帧20。用此类结构,当使用根据现有技术的软件协议栈时,开发者可以减少开发所需的时间,因为即使当开发者不知道其中软件协议栈解释帧的过程时也动态地提取数据。

图2是图示出根据相关技术的从硬件协议栈提取数据的过程的概念图。

参考图2,不同于软件协议栈,根据现有技术的硬件协议栈50在帧20被输入到介质10中时立即处理其中的帧20而不是将帧20存储在帧储存器处。因此,用户可以快速地提取期望的数据。

如上所述,硬件协议栈自动地解释协议,使得即使当开发者不完全知道协议时,也可以减少开发时间。另一方面,当处理用户定义协议而不是所述协议或者硬件协议栈未提供的协议时,开发者应在软件中实现解释协议的过程。然而,在这种情况下,另外需要开发时间或努力,并且与用硬件实现的协议栈相比性能下降。



技术实现要素:

本公开的目的是提供一种被应用用户定义协议的硬件协议栈和一种用于对硬件协议栈应用用户定义协议的方法,其即使当用户新定义了协议时也能够保持硬件协议栈的快速速度。

本公开的目的不限于上述目的,并且根据以下描述,在本领域中将理解且用本公开的实施例也将清楚地理解上文未提到的其它目的和优点。并且,将很容易理解的是可用由所附权利要求定义的手段及其组合来实现本文所述的本公开的目的和优点。

为了达到上述目的,提供了一种被应用用户定义协议的硬件协议栈,其包括在其中存储报头信息的寄存器单元、被配置成将接收到的帧的报头信息与存储在寄存器单元中的报头信息相比较两个报头信息是否相互匹配的比较单元、被配置成基于比较单元的比较结果来确定接收到的帧的处理的接口逻辑单元以及逻辑处理单元,其被配置成当根据在寄存器单元中存储的且被与接收到的帧的报头信息匹配的报头信息在接口逻辑中确定的帧处理方法是处理帧时基于根据报头信息的逻辑来处理接收到的帧的数据。

根据报头信息的逻辑包括根据报头信息的数据的单元指定。可以执行数据的单元指定,使得逻辑处理单元在接收到用于在数据的特定区域中写入有效负荷数据的请求时设定数据的尺寸单元和基本偏移,并且然后通过将有效负荷扩展至对应于数据的设定尺寸单元来将有效负荷存储在该基本偏移中。

在这里,包括帧接收单元,其被配置成当在接口逻辑单元中根据在寄存器单元中存储的且被与接收帧到的报头信息匹配的报头信息确定的帧处理方法是存储帧时将接收到的帧存储在预先指定位置上。

并且,包括帧产生单元,其被配置成当在接口逻辑单元中根据在寄存器单元中存储的且被与接收到的帧的报头信息匹配的报头信息确定的帧处理方法是发送响应帧时相对于接收到的帧产生并发送响应帧。

此外,本公开提供了一种用于对硬件协议栈应用用户定义协议的方法,其包括在寄存器单元中从用户接收其中包括至少一个或多个帧报头信息的寄存器的输入;在比较单元中将接收到的帧的帧报头信息与至少一个或多个寄存器报头信息相比较;以及在接口逻辑单元中基于所述至少一个或多个寄存器报头信息之中的与所述至少一个或多个帧报头信息匹配的寄存器报头信息来确定帧处理方法。

所述方法包括当在接口逻辑单元中确定的帧处理方法是处理帧时在逻辑处理单元中处理接收到的帧;当在接口逻辑单元中确定的帧处理方法是发送响应帧时在帧产生单元中相对于接收到的帧而产生并发送响应帧;以及当在接口逻辑单元中确定的帧处理方法是存储帧时在帧接收单元中将接收到的帧存储在预置目的地处。

根据本公开,可以通过扩展仅应用从硬件协议栈的供应商提供的协议的帧解释功能且通过提供供应商未提供的用于帧解释的功能、用于解释由用户实现的协议的功能以及计算功能来增加灵活性和可扩展性。

并且,根据本公开,可以通过改善被固定于硬件协议栈中的各种协议的自动解释功能以自动地处理由用户用硬件实现的协议来减少开发时间,并且可以保持快速速度,因为即使当用户定义了协议时,也用硬件来解释帧。

附图说明

图1是图示出根据相关技术的从软件协议栈提取数据的过程的概念图。

图2是图示出根据相关技术的从硬件协议栈提取数据的过程的概念图。

图3和4分别地是根据本公开的被应用用户定义协议的硬件协议栈的框图。

图5是根据本公开的用于应用硬件协议栈的用户定义协议的方法的流程图。

具体实施方式

稍后将参考附图来详细地描述本公开的上述及其它目的、特征和优点,并且因此可以由本领域的技术人员容易地实现本公开的技术精神。在本公开的以下描述中,如果已知配置和功能的详细描述被确定为使本公开的实施例的解释模糊,则将省略其详细描述。在下文中,将参考附图来详细地描述根据本公开的优选实施例。在附图中,相同的参考标号自始至终指代相同或类似的元件。

图3和4分别地是根据本公开的被应用用户定义协议的硬件协议栈的框图。

如图3和4中所示,根据本公开的被应用用户定义协议的硬件协议栈包括用于将接收到的帧的报头与在寄存器中存储的报头相比较的比较单元110、用于存储报头的寄存器单元120、确定接收到的帧的处理的接口逻辑单元130、用于根据逻辑来处理接收帧的数据的逻辑处理单元140、用于接收并存储帧的帧接收单元150以及用于生成帧的帧产生单元160。

比较单元110将从介质接收到的帧的报头信息(亦即,帧报头信息)与在寄存器单元120中存储的报头信息(亦即,寄存器报头信息)相比较。一般地,帧被配置有报头信息,亦即帧报头信息、数据以及帧检验序列(fcs)。比较单元110将帧报头信息、数据以及fcs之中的帧报头信息与寄存器报头信息相比较其是否彼此相同。

寄存器单元120存储作为分析目标的协议的报头信息。用户可以将在商用栈产品中不使用或者由用户定义从而开发产品的协议的报头信息存储在寄存器中。此类寄存器单元120可以包括多个寄存器。本公开举例说明了包括第一寄存器121、第二寄存器122以及第n寄存器123的寄存器单元120。在这里,第一寄存器121包括m个寄存器报头信息(m是自然数),并且这举例说明hdr_00、hdr_01、hdr_0m。第二寄存器122还包括m个寄存器报头信息(m是自然数),这举例说明hdr_10、hdr_11、…、hdr_1m。并且,第n寄存器123(n是自然数),并且这举例说明hdr_n0、hdr_n1、…、hdr_nm。

当包括在帧中的m个寄存器报头信息(m是自然数)被举例说明为hdr_r0、hdr_r1、…、hdr_rm时,比较单元110将hdr_00、hdr_01、…、hdr_0m(其是包括在第一寄存器121中的寄存器报头信息)与hdr_r0、hdr_r1、…、hdr_rm(其是包括在帧中的帧报头信息)相比较。在这里,当两个报头信息(亦即,帧报头信息和寄存器报头信息)并未相互匹配时,比较单元110将hdr_10、hdr_11、…、hdr_1m(其为包括在第二寄存器122中的寄存器报头信息)与hdr_r0、hdr_r1、…、hdr_rm(其为包括在帧中的帧报头信息)相比较。当帧报头信息和在第二寄存器122中包括的寄存器报头信息相互匹配时,终止报头信息比较。另一方面,当帧报头信息与在第二寄存器122中包括的寄存器报头信息相互不匹配时,将包括在作为下一寄存器的第三寄存器中的寄存器报头信息与帧报头信息相比较。并且,比较单元110执行比较操作直到帧报头信息与寄存器报头信息相互匹配,并且可以执行此类比较操作直至第n寄存器123。然而,本公开不限于此,并且可以根据需要同时地将帧报头信息与所有寄存器报头信息相互比较。

接口逻辑单元130确定接收到的帧的帧报头信息是否被与存储在寄存器单元120中的寄存器报头信息相比较、帧报头信息和寄存器报头信息的比较范围以及接收到的帧是否被存储。亦即,接口逻辑单元130根据包括在其中的报头的种类而对帧不同地执行帧处理方法。在这里,帧处理方法包括帧的处理或存储和响应帧的产生和发送。

当帧的帧报头信息和寄存器报头信息相互匹配且接口逻辑单元130的相对于相应帧报头信息的帧处理方法是帧的处理时,逻辑处理单元140根据逻辑来处理接收到的帧的数据。在这里,逻辑是根据帧报头信息的规则,并且例如其可以包括根据帧报头信息的帧数据的单元指定等。在帧数据的单元指定中,并未在包括在接收到的帧中的数据中指定单元。因此,逻辑处理单元140根据相应帧的报头信息来指定数据中的单元。

例如,参考表1,当接收到用于在0×10区域处以0×20的尺寸写入有效负荷数据的请求时,用户可以使用逻辑处理单元140来具有能够将基本偏移设置成0×1000并将尺寸单元设置成4个字节且在0×1010处存储有效负荷多达0×80的可扩展性。

【表1】

当帧报头信息和寄存器报头信息相互匹配且接口逻辑单元130相对于相应帧报头信息的帧处理方法是存储帧时,帧接收单元150在预置位置处存储相应帧,亦即,沿着图3中的路径②的处理。

当帧报头信息和寄存器报头信息相互匹配且接口逻辑单元130相对于相应帧报头信息的帧处理方法是响应帧发送时,帧产生单元160产生并发送响应帧,亦即沿着图3中的路径①的处理。在这里,帧产生单元160可以不仅产生响应帧,而且产生根据帧报头信息指定的各种帧。

接下来,将参考附图来描述根据本公开的用于应用硬件协议栈的用户定义协议的方法。在以下描述中,将省略或简要地描述与被应用根据本公开的用户定义协议的上述硬件协议栈重叠的内容。

图5是根据本公开的用于应用硬件协议栈的用户定义协议的方法的流程图。

如图5中所示,用于应用硬件协议栈的用户定义协议的方法包括在操作s1中接收寄存器的输入、在操作s2中比较报头信息、在操作s3中确定帧处理、在操作s4中处理帧、在操作s5中用帧进行响应以及存储帧s6。

寄存器单元在操作s1中从用户接收寄存器的输入。寄存器单元存储由用户输入的接收到的寄存器输入,从而将接收到的寄存器输入与稍后将接收的帧的帧报头信息相比较。并且,由用户进行的接收到的寄存器输入包括报头信息,亦即寄存器报头信息。

当在操作s2中接收到帧时,比较单元将操作s1中的接收到的寄存器输入的寄存器报头信息与接收到的帧的帧报头信息相比较。在这里,寄存器单元包括第一寄存器至第n寄存器。并且,比较单元将帧报头信息与第一寄存器至第n寄存器的寄存器报头信息相比较直至两个报头信息相互匹配为止。

同时,当帧报头信息和寄存器报头信息在操作s2中相互匹配时,本公开还可以包括另外在操作s2-1中从用户接收寄存器的输入。

当在操作s2中存在与帧报头信息匹配的寄存器报头信息时,接口逻辑单元在操作s3中根据相应寄存器报头信息用帧处理方法来处理帧。在这里,如上所述,帧处理方法包括帧的处理或存储和响应帧的产生和发送。

当根据报头信息的帧处理方法在操作s3中是处理帧时,逻辑过程单元在操作s4中处理接收到的帧。

另一方面,当根据报头信息的帧处理方法是用帧进行响应(亦即在操作s3中发送响应帧)时,帧产生单元在操作s5中产生并发送响应帧。

此外,当在操作s3中根据报头信息的帧处理方法是存储帧时,帧接收单元在操作s6中将接收到的帧存储在目的地处。

虽然已参考实施例描述了本公开,但应理解的是在不脱离本公开的技术精神的情况下可以由本领域的技术人员发明许多其它替换、修改和变更,并且因此应理解的是本公开不受上述实施例和附图的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1