CN116016397B - 一种报文传输缓冲区快速检索方法和电路 - Google Patents
一种报文传输缓冲区快速检索方法和电路 Download PDFInfo
- Publication number
- CN116016397B CN116016397B CN202310312947.5A CN202310312947A CN116016397B CN 116016397 B CN116016397 B CN 116016397B CN 202310312947 A CN202310312947 A CN 202310312947A CN 116016397 B CN116016397 B CN 116016397B
- Authority
- CN
- China
- Prior art keywords
- bit
- message
- byte
- buffer unit
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及通信技术领域的一种报文传输缓冲区快速检索方法和电路,所述方法包括通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化,并配置指示寄存器;根据指示寄存器的信息采用位检测电路检测优先级最高的有效缓冲单元的序号N;在报文过滤单元中根据第N个缓冲单元的传输方向位、标识符掩码以及标识符对接收的报文信息进行过滤;如果过滤成功,则根据报文长度,将相应字节长度的报文数据存放在第N个缓冲单元中;中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。该方法提过了在报文接收、过滤、检索的速度,可以快速获取到优先级最高的有效缓冲单元,并提高了检索效率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种报文传输缓冲区快速检索方法和电路。
背景技术
在报文传输过程中,通常电路需要对接收到的报文信息进行报文过滤、缓存以及中央处理器对报文信息的获取等操作。当接收到大量报文时,就需要根据一定的优先级对存放报文信息的缓冲区进行检索,从而获取到优先级最高的报文信息。因此如何准确、快速地根据一定优先级检索到接收的报文信息,并最终传输给中央处理器,就成为报文传输的关键。
发明内容
基于此,有必要针对上述技术问题,提供一种报文传输缓冲区快速检索方法和电路。该方法在报文接收、过滤、检索过程中,具有速度快、简单实用的特点。另外,在此过程中不需要软件过多的参与,因此软件资源开销很小。
一种报文传输缓冲区快速检索方法,所述方法包括:
通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化。
通过中央处理器单元配置指示寄存器;所述指示寄存器的值用于表示所述缓冲单元是否有效。
根据所述指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N。
将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元。
在报文过滤单元中,根据接收到的缓冲单元传输方向位判断是否接收报文;如果接收报文,则根据接收到的缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤。
所述中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。
在其中一个实施例中,报文缓冲区包括32个缓冲单元,每个缓冲单元包括6行,每行包含32位存储空间。
通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化,包括:
通过中央处理器单元对报文缓冲区的32个缓冲单元中缓冲的传输方向位、标识符掩码、标识符以及报文长度进行初始化,所述缓冲区中第P个所述缓冲单元,地址为6P+0的行存放传输方向位,地址为6P+1的行存放标识符掩码,地址为6P+2的行存放标识符,地址为6P+3的行存放报文长度,地址为6P+4的行存放第0~3字节报文数据,地址为6P+5的行存放第4~7字节报文数据;其中,P=0, 1, 2, ……, 31。
在其中一个实施例中,指示寄存器是32位寄存器,所述指示寄存器的一位的值代表对应缓冲单元的有效性。
通过中央处理器单元配置指示寄存器,包括:
通过中央处理器单元对指示寄存器进行配置,如果所述指示寄存器的32位数据序列中一位为1,则表示该位对应序号的缓冲单元有效。
如果所述指示寄存器的32位数据序列中一位为0,则表示该位对应序号的缓冲单元无效。
在其中一个实施例中,指示寄存器是32位寄存器,所述指示寄存器的一位的值代表对应缓冲单元的有效性。
根据所述指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N,包括:
将所述指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N。
在其中一个实施例中,将所述指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N,包括:
将所述指示寄存器的32位数据序列输入到位检测电路中,将32位数据序列划分为4个字节。
判断第零个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果所述第零个字节为全0,则判断第一个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果所述第一个字节为全0,则判断第二个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果所述第二个字节为全0,则判断第三个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码。
根据3位的二进制码,计算出现第一个1的位序号,并将出现第一个1的位序号作为优先级最高的有效缓冲单元对应的缓冲单元的序号N。
将所述指示寄存器的32位数据序列中出现第一个1的位置0,对所述指示寄存器的32位数据序列进行更新。
在其中一个实施例中,在报文过滤单元中根据接收到的缓冲单元的所述传输方向位、标识符掩码以及标识符对接收的报文信息进行过滤,包括:
在报文过滤单元中,根据传输方向位判断是否接收报文。
如果接收报文,则根据缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤。
一种报文传输缓冲区快速检索电路,所述电路包括:报文缓冲区、指示寄存器、位检测电路以及报文过滤单元。
所述报文缓冲区,包括32个缓冲单元,每个缓冲单元包括6行,每行包含32位存储空间;每个缓冲单元中缓冲的信息有传输方向位、标识符掩码、标识符、报文长度、报文数据第0~3字节、报文数据第4~7字节;每个缓冲单元中缓冲的传输方向位、标识符掩码、标识符以及报文长度是通过中央处理器单元进行配置的;
所述指示寄存器的32位数据序列用于保存缓冲单元是否有效的信息,指示寄存器的32位数据序列是通过中央处理器配置的。
所述位检测电路,用于检测指示寄存器的32位数据序列中出现第一个1的位置,确定优先级最高的有效缓冲单元对应的缓冲单元的序号N,并将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元。
所述报文过滤单元,用于接收第N个缓冲单元的传输方向位、标识符掩码、标识符、报文长度,并根据所述缓冲单元传输方向位判断是否接收报文;如果接收报文,则根据接收到的缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤。
所述中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。
在其中一个实施例中,所述缓冲区中第P个所述缓冲单元,地址为6P+0的行存放传输方向位,地址为6P+1的行存放标识符掩码,地址为6P+2的行存放标识符,地址为6P+3的行存放报文长度,地址为6P+4的行存放第0~3字节报文数据,地址为6P+5的行存放第4~7字节报文数据;其中,P=0, 1, 2, ……, 31。
在其中一个实施例中,所述位检测电路包括4个8-3编码器, 4个判断模块以及数据处理模块。
所述判断模块,用于判断所述指示寄存器的32位数据序列的每个字节是否为全0。
所述8-3编码器,用于对所述指示寄存器的32位数据序列中对应的字节进行编码,输出3位的二进制码。
数据处理模块,用于根据8-3编码器输出的位的二进制码,计算出现第一个1的位序号,并将出现第一个1的位序号作为优先级最高的有效缓冲单元对应的缓冲单元的序号N。
第一个所述判断模块判断所述指示寄存器的32位数据序列的第零个字节是否为全0,如果第零个字节不全为0,则使能第一个所述8-3编码器对所述指示寄存器的32位数据序列的第零个字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第零个字节为全0,则通过第二个所述判断模块判断第一个字节是否为全0,如果不为全0,则使能第二个所述8-3编码器对所述指示寄存器的32位数据序列的第一字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第一个字节为全0,则通过第三个所述判断模块判断所述指示寄存器的32位数据序列的第二个字节是否为全0,如果不为全0,则使能第三个8-3编码器对第二个字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第二个字节为全0,则通过第四个所述判断模块判断所述指示寄存器的32位数据序列的第三个字节是否为全0,如果不为全0,则使能第四个8-3编码器对第三个字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第三个字节为全0,则将固定值32传输至所述数据处理模块。
上述报文传输缓冲区快速检索方法和电路,所述方法包括通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化,并配置指示寄存器;根据指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元的序号N;将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元;在报文过滤单元中根据缓冲单元的传输方向位、标识符掩码以及标识符对接收的报文信息进行过滤;如果过滤成功,则根据报文长度,将相应字节长度的报文数据存放在第N个缓冲单元中的第0~3字节报文数据和/或第4~7字节报文数据中;中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。该方法在报文接收、过滤、检索过程中,具有速度快、简单实用的特点,可以快速获取到优先级最高的有效缓冲单元,并提高了检索效率。
附图说明
图1为一个实施例中报文传输缓冲区快速检索方法的流程示意图;
图2为一个实施例中报文缓冲区的结构示意图;
图3为一个实施例中报文过滤的规则示意图;
图4为另一个实施例中位检测电路的进行位检测的逻辑示意图;
图5为一个实施例中报文传输缓冲区快速检索电路的组成框图;
图6为一个实施例中8-3编码器的结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种报文传输缓冲区快速检索方法,该方法包括以下步骤:
步骤100:通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化。
具体的,报文缓冲区中每个缓冲单元中缓冲的信息包括传输方向位、标识符掩码、标识符、报文长度、报文数据第0~3字节、报文数据第4~7字节;其中每个缓冲单元中缓冲的这4类信息:传输方向位、标识符掩码、标识符以及报文长度是通过中央处理单元进行配置初始化的。
报文缓冲区的结构如图2所示。
步骤102:通过中央处理器单元配置指示寄存器;指示寄存器的值用于表示缓冲单元是否有效。
具体的,指示寄存器MVAL是32位寄存器,指示寄存器的值是由中央处理器单元配置,指示寄存器的每一位对应报文缓冲区的一个缓冲单元,该位的值用于保存缓冲单元是否有效的信息。缓冲单元有效是指该缓冲单元中的信息是有效的,其可以给报文过滤单元提供标识符掩码、标识符、报文长度信息,并存放过滤后的报文数据。
步骤104:根据指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N。
具体的,根据输入的指示寄存器的32位数据序列,从第0位开始检测,当检测到出现第一个1时,将该位对应的序号输出,该位对应的序号即为优先级最高的有效缓冲单元对应的缓冲单元的序号N。例如,输出是0,表示寄存器MVAL的第0位是1,即第1个缓冲单元是优先级最高的有效缓冲单元。
步骤106:将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元。
步骤108:在报文过滤单元中,根据接收到的缓冲单元传输方向位判断是否接收报文;如果接收报文,则根据接收到的缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤。
具体的,报文过滤是指,在报文过滤单元中根据来至于缓冲单元的标识符掩码、标识符以及接收报文信息中的标识符,来判断接收报文的标识符是否与来至于缓冲单元的标识符的相应位一致,如果一致则允许该报文通过,否则丢弃该报文。
具体的,接收报文信息包含标识符和32位报文数据。
报文过滤的规则如图3所示,来至于缓冲单元的标识符掩码和标识符,与接收报文信息中的标识符在报文过滤单元中进行过滤,用于决定是否需要将报文信息写入相应的缓冲单元中。当某一位的标识符掩码为0时,对应位的标识符和报文信息的标识符不需要过滤,即0或1均可;当某一位的标识符掩码为1时,对应位的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤。所有来至于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤。
步骤110:中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。
上述报文传输缓冲区快速检索方法中,所述方法包括通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化,并配置指示寄存器;根据指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元的序号N;将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元;在报文过滤单元中根据缓冲单元的传输方向位、标识符掩码以及标识符对接收的报文信息进行过滤;如果过滤成功,则根据报文长度,将相应字节长度的报文数据存放在第N个缓冲单元中的第0~3字节报文数据和/或第4~7字节报文数据中;中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。该方法在报文接收、过滤、检索过程中,具有速度快、简单实用的特点,可以快速获取到优先级最高的有效缓冲单元,并提高了检索效率。
在其中一个实施例中,如图2所示,报文缓冲区共有192行,报文缓冲区包括32个缓冲单元,每个缓冲单元包括6行,每行包含32位存储空间;步骤100包括:通过中央处理器单元对报文缓冲区的32个缓冲单元中缓冲的传输方向位、标识符掩码、标识符以及报文长度进行初始化,缓冲区中第P个缓冲单元,地址为6P+0的行存放传输方向位,地址为6P+1的行存放标识符掩码,地址为6P+2的行存放标识符,地址为6P+3的行存放报文长度,地址为6P+4的行存放第0~3字节报文数据,地址为6P+5的行存放第4~7字节报文数据;其中,P=0, 1, 2,……, 31。
在其中一个实施例中,指示寄存器是32位寄存器,指示寄存器的一位的值代表对应缓冲单元的有效性;步骤102包括:通过中央处理器单元对指示寄存器进行配置,如果指示寄存器的32位数据序列中一位为1,则表示该位对应序号的缓冲单元有效;如果指示寄存器的32位数据序列中一位为0,则表示该位对应序号的缓冲单元无效。
具体的,指示寄存器的某一位为1则表示对应序号的缓冲单元有效,为0表示对应序号的缓冲单元无效。缓冲单元有效是指该缓冲单元中的信息是有效的,其可以给报文过滤单元提供标识符掩码、标识符、报文长度信息,并存放过滤后的报文数据。
在其中一个实施例中,指示寄存器是32位寄存器,指示寄存器的一位的值代表对应缓冲单元的有效性;步骤104包括:将指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N。
在其中一个实施例中,将指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N,包括:将指示寄存器的32位数据序列输入到位检测电路中,将32位数据序列划分为4个字节;判断第零个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果第零个字节为全0,则判断第一个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果第一个字节为全0,则判断第二个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果第二个字节为全0,则判断第三个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;根据3位的二进制码,计算出现第一个1的位序号,并将出现第一个1的位序号作为优先级最高的有效缓冲单元对应的缓冲单元的序号N;将指示寄存器的32位数据序列中出现第一个1的位置0,对指示寄存器的32位数据序列进行更新。
具体的,位检测电路进行位检测的逻辑示意图如图4所示。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种报文传输缓冲区快速检索电路,电路包括:报文缓冲区50、指示寄存器60、位检测电路70以及报文过滤单元80。
报文缓冲区50,包括32个缓冲单元,每个缓冲单元包括6行,每行包含32位存储空间;每个缓冲单元中缓冲的信息有传输方向位、标识符掩码、标识符、报文长度、报文数据第0~3字节、报文数据第4~7字节;每个缓冲单元中缓冲的传输方向位、标识符掩码、标识符以及报文长度是通过中央处理器单元进行配置的。
指示寄存器60的32位数据序列用于保存缓冲单元是否有效的信息,指示寄存器60的32位数据序列是通过中央处理器配置的。
具体的,32位的指示寄存器MVAL由中央处理器单元配置,用于保存缓冲单元是否有效的信息,某一位为1则表示对应序号的缓冲单元有效,为0表示对应序号的缓冲单元无效。缓冲单元有效是指该缓冲单元中的信息是有效的,其可以给报文过滤单元提供标识符掩码、标识符、报文长度信息,并存放过滤后的报文数据。
位检测电路70,用于检测指示寄存器60的32位数据序列中出现第一个1的位置,确定优先级最高的有效缓冲单元对应的缓冲单元的序号N,并将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元。
具体的,位检测电路的作用是检测32位的指示寄存器MVAL中出现第一个1的位置。根据输入的32位数据序列,从第0位开始检测,当检测到出现第一个1时,将该位对应的序号输出。例如,输出是0,表示寄存器MVAL的第0位是1,即第1个缓冲单元是优先级最高的有效缓冲单元。
32位数据序列输入到位检测电路,首先判断字节0是否为全0,如果不为全0,则该字节数据进入8-3编码器,输出3位的二进制码,经过计算得到bits_count;否则,如果字节0为全0,则判断字节1是否为全0,如果不为全0,则该字节数据进入8-3编码器,输出3位的二进制码,经过计算得到bits_count;否则,如果字节1为全0,则判断字节2是否为全0,如果不为全0,则该字节数据进入8-3编码器,输出3位的二进制码,经过计算得到bits_count;否则,如果字节2为全0,则判断字节3是否为全0,如果不为全0,则该字节数据进入8-3编码器,输出3位的二进制码,经过计算得到bits_count;否则,如果字节3为全0,则输出固定值32。最终计算得到的bits_count就是出现第一个1的位序号。
报文过滤单元80,用于接收第N个缓冲单元的传输方向位、标识符掩码、标识符、报文长度,并根据所述缓冲单元传输方向位判断是否接收报文;如果接收报文,则根据接收到的缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤;
中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。
具体的,所谓检索,即是根据32位的指示寄存器MVAL,经过位检测电路后,得到优先级最高的有效缓冲单元的序号,然后获取到该缓冲单元中的信息:传输方向位、标识符掩码、标识符、报文长度。
因此,快速获取到优先级最高的有效缓冲单元是提高检索效率的关键。
快速检索的工作流程如下:
①中央处理器单元初始化报文缓冲区的32个缓冲单元,将配置每个缓冲单元的传输方向位、标识符掩码、标识符、报文长度;
②中央处理器单元配置32位寄存器MVAL,用于决定哪些缓冲单元是有效的;
③32位寄存器MVAL的值将被送入位检测电路;
④位检测电路检测到32位数据序列中出现第一个1的位置,并将该位置对应的缓冲单元作为优先级最高的缓冲单元,输出优先级最高的有效缓冲单元的序号N;
⑤电路将第N个缓冲单元的传输方向位、标识符掩码、标识符、报文长度送入报文过滤单元;
⑥在报文过滤单元中,根据传输方向位判断是否接收报文信息,为0表示接收报文信息,再根据标识符掩码、标识符和接收报文信息中的标识符进行过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;
⑦最后,中央处理器单元获取到第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。
在其中一个实施例中,缓冲区中第P个缓冲单元,地址为6P+0的行存放传输方向位,地址为6P+1的行存放标识符掩码,地址为6P+2的行存放标识符,地址为6P+3的行存放报文长度,地址为6P+4的行存放第0~3字节报文数据,地址为6P+5的行存放第4~7字节报文数据;其中,P=0, 1, 2, ……, 31。
该报文传输缓冲区快速检索电路在报文接收、过滤、检索过程中,具有速度快、简单实用的特点。另外,在此过程中不需要软件过多的参与,因此软件资源开销很小。
在其中一个实施例中,位检测电路包括4个8-3编码器, 4个判断模块以及数据处理模块。
判断模块,用于判断指示寄存器的32位数据序列的每个字节是否为全0。
8-3编码器,用于对指示寄存器的32位数据序列中对应的字节进行编码,输出3位的二进制码。
数据处理模块,用于根据8-3编码器输出的位的二进制码,计算出现第一个1的位序号,并将出现第一个1的位序号作为优先级最高的有效缓冲单元对应的缓冲单元的序号N。
第一个判断模块判断指示寄存器的32位数据序列的第零个字节是否为全0,如果第零个字节不全为0,则使能第一个8-3编码器对指示寄存器的32位数据序列的第零个字节进行编码,输出3位的二进制码,并传输至数据处理模块;如果第零个字节为全0,则通过第二个判断模块判断第一个字节是否为全0,如果不为全0,则使能第二个8-3编码器对指示寄存器的32位数据序列的第一字节进行编码,输出3位的二进制码,并传输至数据处理模块;如果第一个字节为全0,则通过第三个判断模块判断指示寄存器的32位数据序列的第二个字节是否为全0,如果不为全0,则使能第三个8-3编码器对第二个字节进行编码,输出3位的二进制码,并传输至数据处理模块;如果第二个字节为全0,则通过第四个判断模块判断指示寄存器的32位数据序列的第三个字节是否为全0,如果不为全0,则使能第四个8-3编码器对第三个字节进行编码,输出3位的二进制码,并传输至数据处理模块;如果第三个字节为全0,则将固定值32传输至数据处理模块。
具体的,8-3编码器的结果如图6所示。8-3编码器的真值表如表1所示。
表1 8-3编码器的真值表
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (7)
1.一种报文传输缓冲区快速检索方法,其特征在于,所述方法包括:
通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化;
通过中央处理器单元配置指示寄存器;所述指示寄存器的值用于表示所述缓冲单元是否有效;所述指示寄存器是32位寄存器,所述指示寄存器的每一位的值代表对应缓冲单元的有效性;
根据所述指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N;
将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元;
在报文过滤单元中,根据接收到的缓冲单元传输方向位判断是否接收报文;如果接收报文,则根据接收到的缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤;
所述中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据;
其中,根据所述指示寄存器的信息采用位检测电路进行检测,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N,包括:
将所述指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N。
2.根据权利要求1所述的方法,其特征在于,报文缓冲区包括32个缓冲单元,每个缓冲单元包括6行,每行包含32位存储空间;
通过中央处理器单元对报文缓冲区的所有缓冲单元进行初始化,包括:
通过中央处理器单元对报文缓冲区的32个缓冲单元中缓冲的传输方向位、标识符掩码、标识符以及报文长度进行初始化,所述缓冲区中第P个所述缓冲单元,地址为6P+0的行存放传输方向位,地址为6P+1的行存放标识符掩码,地址为6P+2的行存放标识符,地址为6P+3的行存放报文长度,地址为6P+4的行存放第0~3字节报文数据,地址为6P+5的行存放第4~7字节报文数据;其中,P=0, 1, 2, ……, 31。
3.根据权利要求1所述的方法,其特征在于,指示寄存器是32位寄存器,所述指示寄存器的一位的值代表对应缓冲单元的有效性;
通过中央处理器单元配置指示寄存器,包括:
通过中央处理器单元对指示寄存器进行配置,如果所述指示寄存器的32位数据序列中一位为1,则表示该位对应序号的缓冲单元有效;
如果所述指示寄存器的一位为0,则表示该位对应序号的缓冲单元无效。
4.根据权利要求1所述方法,其特征在于,将所述指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N,包括:
将所述指示寄存器的32位数据序列输入到位检测电路中,将32位数据序列划分为4个字节;
判断第零个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果所述第零个字节为全0,则判断第一个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果所述第一个字节为全0,则判断第二个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;如果所述第二个字节为全0,则判断第三个字节是否为全0,如果不为全0,则对该字节数据采用8-3编码器进行编码,输出3位的二进制码;
根据3位的二进制码,计算出现第一个1的位序号,并将出现第一个1的位序号作为优先级最高的有效缓冲单元对应的缓冲单元的序号N;
将所述指示寄存器的32位数据序列中出现第一个1的位置0,对所述指示寄存器的32位数据序列进行更新。
5.一种报文传输缓冲区快速检索电路,其特征在于,所述电路包括:报文缓冲区、指示寄存器、位检测电路以及报文过滤单元;
所述报文缓冲区,包括32个缓冲单元,每个缓冲单元包括6行,每行包含32位存储空间;每个缓冲单元中缓冲的信息有传输方向位、标识符掩码、标识符、报文长度、报文数据第0~3字节、报文数据第4~7字节;每个缓冲单元中缓冲的传输方向位、标识符掩码、标识符以及报文长度是通过中央处理器单元进行配置的;
所述指示寄存器的32位数据序列用于保存缓冲单元是否有效的信息,指示寄存器的32位数据序列是通过中央处理器配置的;所述指示寄存器是32位寄存器,所述指示寄存器的每一位的值代表对应缓冲单元的有效性;
所述位检测电路,用于将所述指示寄存器的32位数据序列输入到位检测电路中,从第0位开始检测,当检测到出现第一个1时,将该位对应的缓冲单元的序号输出,得到优先级最高的有效缓冲单元对应的缓冲单元的序号N,并将第N个缓冲单元的传输方向位、标识符掩码、标识符以及报文长度传输至报文过滤单元;
所述报文过滤单元,用于接收第N个缓冲单元的传输方向位、标识符掩码、标识符、报文长度,并根据所述缓冲单元传输方向位判断是否接收报文;如果接收报文,则根据接收到的缓冲单元的标识符掩码和标识符、接收报文信息中的标识符以及报文过滤规则进行报文过滤,如果过滤成功,再根据报文长度,将相应字节长度的报文数据输出,存放在第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据中;所述报文过滤规则为:标识符掩码中的值为0的位,对应位的缓冲单元的标识符和报文信息的标识符不参与过滤;标识符掩码中的值为1的位,对应位的缓冲单元的标识符和报文信息的标识符需要进行过滤,两者必须一致才能成功过滤;所有来自于缓冲单元的标识符和接收报文信息的标识符参与过滤的位都一致时,才能完全成功过滤;
所述中央处理器单元获取第N个缓冲单元的第0~3字节报文数据和/或第4~7字节报文数据。
6. 根据权利要求5所述的电路,其特征在于,所述缓冲区中第P个所述缓冲单元,地址为6P+0的行存放传输方向位,地址为6P+1的行存放标识符掩码,地址为6P+2的行存放标识符,地址为6P+3的行存放报文长度,地址为6P+4的行存放第0~3字节报文数据,地址为6P+5的行存放第4~7字节报文数据;其中,P=0, 1, 2, ……, 31。
7.根据权利要求5所述的电路,其特征在于,所述位检测电路包括4个8-3编码器,4个判断模块以及数据处理模块;
所述判断模块,用于判断所述指示寄存器的32位数据序列的每个字节是否为全0;
所述8-3编码器,用于对所述指示寄存器的32位数据序列中对应的字节进行编码,输出3位的二进制码;
所述数据处理模块,用于根据8-3编码器输出的位的二进制码,计算出现第一个1的位序号,并将出现第一个1的位序号作为优先级最高的有效缓冲单元对应的缓冲单元的序号N;
第一个所述判断模块判断所述指示寄存器的32位数据序列的第零个字节是否为全0,如果第零个字节不全为0,则使能第一个所述8-3编码器对所述指示寄存器的32位数据序列的第零个字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第零个字节为全0,则通过第二个所述判断模块判断第一个字节是否为全0,如果不为全0,则使能第二个所述8-3编码器对所述指示寄存器的32位数据序列的第一字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第一个字节为全0,则通过第三个所述判断模块判断所述指示寄存器的32位数据序列的第二个字节是否为全0,如果不为全0,则使能第三个8-3编码器对第二个字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第二个字节为全0,则通过第四个所述判断模块判断所述指示寄存器的32位数据序列的第三个字节是否为全0,如果不为全0,则使能第四个8-3编码器对第三个字节进行编码,输出3位的二进制码,并传输至所述数据处理模块;如果所述第三个字节为全0,则将固定值32传输至所述数据处理模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310312947.5A CN116016397B (zh) | 2023-03-28 | 2023-03-28 | 一种报文传输缓冲区快速检索方法和电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310312947.5A CN116016397B (zh) | 2023-03-28 | 2023-03-28 | 一种报文传输缓冲区快速检索方法和电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116016397A CN116016397A (zh) | 2023-04-25 |
CN116016397B true CN116016397B (zh) | 2023-05-30 |
Family
ID=86025290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310312947.5A Active CN116016397B (zh) | 2023-03-28 | 2023-03-28 | 一种报文传输缓冲区快速检索方法和电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116016397B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1388443A (zh) * | 2001-05-28 | 2003-01-01 | 佳能株式会社 | 用于数据压缩的方法、装置、计算机程序和存储介质 |
CN1960335A (zh) * | 2005-10-31 | 2007-05-09 | 恩益禧电子股份有限公司 | 流数据处理器 |
CN101296376A (zh) * | 2007-04-24 | 2008-10-29 | 北京展讯高科通信技术有限公司 | 填充位丢弃电路和方法 |
CN101432686A (zh) * | 2006-04-19 | 2009-05-13 | 泰吉克通讯股份有限公司 | 单词表和其它文本的有效存储和检索 |
CN101452484A (zh) * | 2003-06-25 | 2009-06-10 | 微软公司 | 用于寄存和检索可以用来使缓存记录无效的数据库表格变化信息 |
CN101689204A (zh) * | 2007-07-03 | 2010-03-31 | 新叶股份有限公司 | 比特序列检索方法以及程序 |
CN103269253A (zh) * | 2013-04-24 | 2013-08-28 | 上海创远仪器技术股份有限公司 | 基于多阶数字扫频的无源互调故障定位检测电路结构 |
CN107615260A (zh) * | 2015-10-22 | 2018-01-19 | 甲骨文国际公司 | 用于在事务处理环境中提供分布式高速缓存的***和方法 |
CN109165144A (zh) * | 2018-09-06 | 2019-01-08 | 南京聚铭网络科技有限公司 | 一种基于变长记录的安全日志压缩存储和检索方法 |
CN109189995A (zh) * | 2018-07-16 | 2019-01-11 | 哈尔滨理工大学 | 基于mpi的云存储中数据消冗方法 |
CN111767081A (zh) * | 2019-03-30 | 2020-10-13 | 英特尔公司 | 用于加速存储处理的装置、方法和*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539031B2 (en) * | 2006-09-19 | 2009-05-26 | Netlogic Microsystems, Inc. | Inexact pattern searching using bitmap contained in a bitcheck command |
US11687341B2 (en) * | 2019-08-29 | 2023-06-27 | Intel Corporation | Multi-variate strided read operations for accessing matrix operands |
-
2023
- 2023-03-28 CN CN202310312947.5A patent/CN116016397B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1388443A (zh) * | 2001-05-28 | 2003-01-01 | 佳能株式会社 | 用于数据压缩的方法、装置、计算机程序和存储介质 |
CN101452484A (zh) * | 2003-06-25 | 2009-06-10 | 微软公司 | 用于寄存和检索可以用来使缓存记录无效的数据库表格变化信息 |
CN1960335A (zh) * | 2005-10-31 | 2007-05-09 | 恩益禧电子股份有限公司 | 流数据处理器 |
CN101432686A (zh) * | 2006-04-19 | 2009-05-13 | 泰吉克通讯股份有限公司 | 单词表和其它文本的有效存储和检索 |
CN101296376A (zh) * | 2007-04-24 | 2008-10-29 | 北京展讯高科通信技术有限公司 | 填充位丢弃电路和方法 |
CN101689204A (zh) * | 2007-07-03 | 2010-03-31 | 新叶股份有限公司 | 比特序列检索方法以及程序 |
CN103269253A (zh) * | 2013-04-24 | 2013-08-28 | 上海创远仪器技术股份有限公司 | 基于多阶数字扫频的无源互调故障定位检测电路结构 |
CN107615260A (zh) * | 2015-10-22 | 2018-01-19 | 甲骨文国际公司 | 用于在事务处理环境中提供分布式高速缓存的***和方法 |
CN109189995A (zh) * | 2018-07-16 | 2019-01-11 | 哈尔滨理工大学 | 基于mpi的云存储中数据消冗方法 |
CN109165144A (zh) * | 2018-09-06 | 2019-01-08 | 南京聚铭网络科技有限公司 | 一种基于变长记录的安全日志压缩存储和检索方法 |
CN111767081A (zh) * | 2019-03-30 | 2020-10-13 | 英特尔公司 | 用于加速存储处理的装置、方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN116016397A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109145158B (zh) | 一种布隆过滤器中数据的处理方法以及布隆过滤器 | |
CN109450900B (zh) | 拟态判决方法、装置及*** | |
US7383490B2 (en) | Methods and apparatus using commutative error detection values for fault isolation in multiple node computers | |
CN101606160A (zh) | 模式检测的相关改进 | |
CN1642112A (zh) | 使用网络处理器和并行模式检测引擎检测侵入 | |
CN1016037B (zh) | 通信交换方法 | |
JPH09505713A (ja) | 広帯域ネットワークにおけるデータ伝送の並列アセンブリのためのシステム | |
CN112787856A (zh) | 故障判断方法、装置、计算机设备以及可读存储介质 | |
US8868584B2 (en) | Compression pattern matching | |
CN1675635A (zh) | 具有增强能力的关联存储器 | |
CN116016397B (zh) | 一种报文传输缓冲区快速检索方法和电路 | |
CN111651137A (zh) | 排序方法、装置、电子装置以及计算机设备 | |
CN107798117B (zh) | 一种数据存储与读取的方法和装置 | |
CN112272184A (zh) | 一种工业流量检测的方法、装置、设备及介质 | |
CN109857740B (zh) | 字符串的存储方法、匹配方法、电子设备及可读存储介质 | |
US20080022403A1 (en) | Method and apparatus for a pattern matcher using a multiple skip structure | |
CN113222807B (zh) | 数据存储器、数据存储、读取方法、芯片及计算机设备 | |
CN112363893B (zh) | 时序指标异常检测方法、设备及装置 | |
Amir et al. | Approximate string matching with address bit errors | |
CN112187935A (zh) | 信息识别方法与只读内存 | |
CN111722940A (zh) | 基于异步串口的消息传输方法、终端设备及传输*** | |
CN117688564B (zh) | 一种用于智能合约事件日志的检测方法、装置和存储介质 | |
CN113741821B (zh) | 基于分类的数据存取方法、***、介质及程序 | |
CN113162728B (zh) | 极化Polar编码方法、装置、电子设备和存储介质 | |
CN113114273B (zh) | Ldpc码的校验矩阵提取方法及***、设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |