CN104699448A - Fast协议的并行解码***及其实现方法 - Google Patents
Fast协议的并行解码***及其实现方法 Download PDFInfo
- Publication number
- CN104699448A CN104699448A CN201510125945.0A CN201510125945A CN104699448A CN 104699448 A CN104699448 A CN 104699448A CN 201510125945 A CN201510125945 A CN 201510125945A CN 104699448 A CN104699448 A CN 104699448A
- Authority
- CN
- China
- Prior art keywords
- decoding
- module
- field
- input
- fast
- 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.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种FAST协议的并行解码***及其实现方法,该***包括:掩码模块,接收数据输入,从输入的数据中提取若干最高位作为停止位标志以控制该掩码模块的输出,该掩码模块根据该若干位停止位,对输入的数据进行字段分隔;命令模块,接收并存储从该掩码模块中分割后的字段,然后使用状态机控制,把输入字段与FAST模板信息进行并行匹配;解码模块,利用四个并行的解码单元并行负责命令模块传递的字段的解码,每个单元负责一个字段的解码,本发明通过并行的分隔字段与解码,可以有效提高***的解码速度,同时,通过存储参数化的模板信息,可以降低更换模板的开销。
Description
技术领域
本发明涉及FAST协议的解码***及其实现方法,特别是涉及一种基于FPGA的FAST协议(金融压缩协议)的并行解码***及其实现方法。
背景技术
近年来,随着国内外资本市场的快速发展,资本流动性增强,金融交易方式日益多样化。作为一种新兴的交易方式,高频交易(High-frequency Trading,HFT)正日益受到金融证券行业从业人员的高度关注。
高频交易是一种应用在金融上的主要算法交易模式。准确来说,高频交易使用了复杂的技术工具和计算机算法快速的交易证券,比如用专有的交易策略,通过电脑在秒一级甚至微秒级进行买入或者卖出。
高频交易的单笔利润一般很低,但是通过密集的交易,仍能保证稳定的收益。高频交易公司通常利用强大的电脑程序进行快速交易,持股人的持股时间经常不到一秒。与技术相对落后的投资人相比,此类公司依靠IT技术优势获得时间优势先行下单。现有的高频交易基金通常下单速度已经达到微秒级别,个别基金甚至已经达到纳秒级别。高频交易的消息传输带宽、延迟等方面的问题已经成为制约投资人获利的主要瓶颈。因此,以微秒甚至纳秒来计算证券交易延迟的“低延迟证券交易***”正逐渐成为金融信息技术领域研究的热点问题。
根据金融证券行业高频交易***处理的环节,交易延迟一般可以分为:网络传输延迟、网卡处理与中断延迟、进程切换和CPU处理延迟。交易延迟的影响因素涵盖了网络、CPU、存储器、网络接口性能等计算机硬件相关的因素,以及操作***、中间件(主要为消息中间件)、应用软件等软件相关的因素。这些因素在不同层次上对高频证券交易延迟造成影响。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种FAST协议的并行解码***及其实现方法,其可以并行分隔字段以适应万兆以太网,可以将FAST模板信息存储在命令模块中使得***更加灵活的适应模板的更换,可以并行的解码使得解码延迟更低。
为达上述及其它目的,本发明提出一种FAST协议的并行解码***,至少包括:
掩码模块,接收数据输入,从输入的数据中提取若干最高位作为停止位标志以控制该掩码模块的输出,该掩码模块根据该若干位停止位,对输入的数据进行字段分隔;
命令模块,接收并存储从该掩码模块中分割后的字段,然后使用状态机控制,把输入字段与FAST模板信息进行并行匹配;
解码模块,利用四个并行的解码单元并行负责命令模块传递的字段的解码,每个单元负责一个字段的解码。
进一步地,该掩码模块从64位的输入中提取8个最高位,作为停止位标志,并根据该8位停止位,在一个周期内分隔8字节数据。
进一步地,该掩码模块存储每一个周期没有分隔的剩下的字节,与下一个周期的输入拼接在一起,进行下一个周期的字段分隔。
进一步地,该命令模块通过设置一个FIFO以存储从该掩码模块接收到的信息,该FIFO的写指针每次增加接收的字段个数,通过命令存储器存储着FAST模板中的信息,通过状态机控制,把输入字段与FAST模板信息进行并行匹配。
进一步地,该该命令模块将第一个状态提取输入中的一个字段作为存在位图,然后根据参数化后的模板信息,判断一个模板中的字段需不需要存在位图和输入字段,将该些内容并行的匹配后,传递给该解码模块。
进一步地,每个解码单元通过重组器去除接收到的数据的停止位,将数据重组,利用解码器将重组后的数据与之前存储的解码值作为源操作数,对源操作数进行操作符的解码,解码的方法受该命令模块传递过来的信号控制,解码完成后存储新的解码值,作为下一次解码的源操作数。
为达到上述目的,本发明提供一种FAST协议的并行解码的实现方法,包括如下步骤:
步骤一,利用掩码模块接收数据输入,从输入的数据中提取若干最高位作为停止位标志以控制掩码模块的输出,掩码模块根据停止位,对输入数据进行字段分隔;
步骤二,命令模块存储从掩码模块中分割后的字段,然后使用状态机控制把输入字段与FAST模板信息进行并行匹配;
步骤三,利用四个并行的解码单元并行负责命令模块传递的字段的解码,每个单元负责一个字段的解码。
进一步地,步骤一中,掩码模块从64位的输入中提取8个最高位作为停止位标志,并根据8位停止位,在一个周期内分隔8字节数据。
进一步地,步骤二中,命令模块利用FIFO存储从掩码模块中分割后的字段;利用状态机控制工作内容,在第一个状态提取输入中的一个字段作为存在位图;然后根据参数化后的模板信息,判断一个模板中的字段需不需要存在位图和输入字段。将该些内容并行的匹配后,传递给下一个模块。
进一步地,于步骤三中,每个解码单元通过重组器去除接收到的数据的停止位,将数据重组,利用解码器将重组后的数据与之前存储的解码值作为源操作数,对源操作数进行操作符的解码,解码的方法受该命令模块传递过来的信号控制,解码完成后存储新的解码值,作为下一次解码的源操作数。
与现有技术相比,本发明一种FAST协议的并行解码***及其实现方法通过并行的分隔字段与解码,可以有效提高***的解码速度,同时,本发明通过存储参数化的模板信息,可以降低更换模板的开销。
附图说明
图1为本发明一种FAST协议的并行解码***的***架构图;
图2为本发明一种FAST协议的并行解码的实现方法的步骤流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
图1为本发明一种FAST协议的并行解码***的***架构图。如图1所示,本发明一种FAST协议的并行解码***,在具体实施例中基于FPGA实现,其至少包括:掩码模块10、命令模块20和解码模块30。
掩码模块10是***的第一个模块,接收数据输入,位宽是64位,掩码模块10从64位的输入中提取8个最高位,作为停止位标志。这8位停止位将控制掩码模块的输出。
掩码模块10根据8位停止位,在一个周期内分隔8字节数据。由于一个完整的字段有可能在不同的周期内传送,掩码模块10会存储每一个周期没有分隔的剩下的字节,与下一个周期的输入拼接在一起,进行下一个周期的字段分隔。在本发明较佳实施例中,掩码模块10根据8位停止位通过环形寄存器与加法器实现分割字段,其中,加法器将8位停止位相加,其结果是这个周期内输入的完整字段的数量,例如,当输入的8个字节的最高位分别是10110101时,加法器将这几个数字相加,得到5,这即是这个周期内输入的字段个数。
命令模块20实现三个功能:第一是存储掩码模块中分割后的字段;第二是在这个模块中存储着需要解码的模板信息;第三是把输入字段与模板信息进行匹配。
命令模块20中设置了一个FIFO(First Input First Output,先进先出),存储从掩码模块10接收到的信息。从掩码模块10传递过来的字段个数是不固定的,最少一个,最多八个。FIFO的写指针每次增加接收的字段个数。
命令模块20中的命令存储器存储着FAST模板中的信息。FAST模板中关于字段的信息包括:操作符,操作符对存在位图的需要,操作符对输入字段的需要和字段格式,被数字化并存储在命令模块的命令存储器中。
命令模块20使用状态机控制工作内容。在第一个状态提取输入中的一个字段作为存在位图。然后根据参数化后的模板信息,判断一个模板中的字段需不需要存在位图和输入字段。将这些内容并行的匹配后,传递给下一个模块。
解码模块30包含四个并行的解码单元,每个单元负责一个字段的解码。解码单元的功能有三点:第一,去除停止位重组数据。第二,根据操作符和存在位图解码。第三,存储解码后的值。
解码模块30首先通过重组器去除接收到的数据的停止位,将数据重组,利用解码器将重组后的数据与之前存储的解码值作为源操作数,对源操作数进行操作符的解码。解码的方法受命令模块20传递过来的信号控制,也就是受存储在命令模块中的FAST模板信息控制,前值存储器用于存储命令模块20传递过来的信号。具体实现的操作为FAST协议对各个操作符的定义。解码完成后于前值存储器存储新的解码值,作为下一次解码的源操作数。
图2为本发明一种FAST协议的并行解码的实现方法的步骤流程图。如图2所示,本发明一种FAST协议的并行解码的实现方法,包括如下步骤:
步骤201,利用掩码模块接收数据输入,从输入的数据中提取若干最高位作为停止位标志以控制掩码模块的输出,掩码模块根据停止位,在一个周期内分割8字节数据,对输入数据进行字段分隔。在本发明较佳实施例中,掩码模块从64位的输入中提取8个最高位,作为停止位标志,并根据8位停止位,在一个周期内分隔8字节数据。由于一个完整的字段有可能在不同的周期内传送,掩码模块会存储每一个周期没有分隔的剩下的字节,与下一个周期的输入拼接在一起,进行下一个周期的字段分隔。
步骤202,命令模块存储从掩码模块中分割后的字段,然后使用状态机控制把输入字段与FAST模板信息进行并行匹配。具体地说,命令模块利用FIFO(FirstInput First Output,先进先出)存储从掩码模块中分割后的字段,从掩码模块传递过来的字段个数是不固定的,最少一个,最多八个,FIFO的写指针每次增加接收的字段个数。命令模块中存储着FAST模板中的信息,FAST模板中关于字段的信息包括:操作符,操作符对存在位图的需要,操作符对输入字段的需要和字段格式,被数字化并存储在命令模块的命令存储器中。在本发明较佳实施例中,命令模块使用状态机控制工作内容,在第一个状态提取输入中的一个字段作为存在位图。然后根据参数化后的模板信息,判断一个模板中的字段需不需要存在位图和输入字段。将这些内容并行的匹配后,传递给下一个模块。
步骤203,利用四个并行的解码单元并行负责命令模块传递的字段的解码,每个单元负责一个字段的解码。具体地说,每个解码单元首先通过重组器去除接收到的数据的停止位,将数据重组;利用解码器将重组后的数据与之前存储的解码值作为源操作数,对源操作数进行操作符的解码,解码的方法受命令模块传递过来的信号控制,也就是受存储在命令模块中的FAST模板信息控制。具体的实现为利用FAST协议对各个操作符的定义;解码完成后存储新的解码值,作为下一次解码的源操作数。
与传统的FAST协议解码结构相比,本发明之FAST协议的并行解码***及其实现方法在实现过程中,并行的分隔字段与解码,可以有效提高***的解码速度,同时,存储参数化的模板信息,可以降低更换模板的开销。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种FAST协议的并行解码***,至少包括:
掩码模块,接收数据输入,从输入的数据中提取若干最高位作为停止位标志以控制该掩码模块的输出,该掩码模块根据该若干位停止位,对输入的数据进行字段分隔;
命令模块,接收并存储从该掩码模块中分割后的字段,然后使用状态机控制,把输入字段与FAST模板信息进行并行匹配;
解码模块,利用四个并行的解码单元并行负责命令模块传递的字段的解码,每个单元负责一个字段的解码。
2.如权利要求1所述的一种FAST协议的并行解码***,其特征在于:该掩码模块从64位的输入中提取8个最高位,作为停止位标志,并根据该8位停止位,在一个周期内分隔8字节数据。
3.如权利要求2所述的一种FAST协议的并行解码***,其特征在于:该掩码模块存储每一个周期没有分隔的剩下的字节,与下一个周期的输入拼接在一起,进行下一个周期的字段分隔。
4.如权利要求3所述的一种FAST协议的并行解码***,其特征在于:该命令模块通过设置一个FIFO以存储从该掩码模块接收到的信息,该FIFO的写指针每次增加接收的字段个数,通过命令存储器存储着FAST模板中的信息,通过状态机控制,把输入字段与FAST模板信息进行并行匹配。
5.如权利要求4所述的一种FAST协议的并行解码***,其特征在于:该该命令模块将第一个状态提取输入中的一个字段作为存在位图,然后根据参数化后的模板信息,判断一个模板中的字段需不需要存在位图和输入字段,将该些内容并行的匹配后,传递给该解码模块。
6.如权利要求5所述的一种FAST协议的并行解码***,其特征在于:每个解码单元通过重组器去除接收到的数据的停止位,将数据重组,利用解码器将重组后的数据与之前存储的解码值作为源操作数,对源操作数进行操作符的解码,解码的方法受该命令模块传递过来的信号控制,解码完成后存储新的解码值,作为下一次解码的源操作数。
7.一种FAST协议的并行解码的实现方法,包括如下步骤:
步骤一,利用掩码模块接收数据输入,从输入的数据中提取若干最高位作为停止位标志以控制掩码模块的输出,掩码模块根据停止位,对输入数据进行字段分隔;
步骤二,命令模块存储从掩码模块中分割后的字段,然后使用状态机控制把输入字段与FAST模板信息进行并行匹配;
步骤三,利用四个并行的解码单元并行负责命令模块传递的字段的解码,每个单元负责一个字段的解码。
8.如权利要求7所述的一种FAST协议的并行解码的实现方法,其特征在于:步骤一中,掩码模块从64位的输入中提取8个最高位作为停止位标志,并根据8位停止位,在一个周期内分隔8字节数据。
9.如权利要求8所述的一种FAST协议的并行解码的实现方法,其特征在于:步骤二中,命令模块利用FIFO存储从掩码模块中分割后的字段;利用状态机控制工作内容,在第一个状态提取输入中的一个字段作为存在位图;然后根据参数化后的模板信息,判断一个模板中的字段需不需要存在位图和输入字段。将该些内容并行的匹配后,传递给下一个模块。
10.如权利要求9所述的一种FAST协议的并行解码的实现方法,其特征在于:于步骤三中,每个解码单元通过重组器去除接收到的数据的停止位,将数据重组,利用解码器将重组后的数据与之前存储的解码值作为源操作数,对源操作数进行操作符的解码,解码的方法受该命令模块传递过来的信号控制,解码完成后存储新的解码值,作为下一次解码的源操作数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510125945.0A CN104699448A (zh) | 2015-03-20 | 2015-03-20 | Fast协议的并行解码***及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510125945.0A CN104699448A (zh) | 2015-03-20 | 2015-03-20 | Fast协议的并行解码***及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104699448A true CN104699448A (zh) | 2015-06-10 |
Family
ID=53346625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510125945.0A Pending CN104699448A (zh) | 2015-03-20 | 2015-03-20 | Fast协议的并行解码***及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699448A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105654383A (zh) * | 2016-01-07 | 2016-06-08 | 中国科学院信息工程研究所 | 基于流水线架构的低时延fast行情解码装置和方法 |
CN111967244A (zh) * | 2020-07-30 | 2020-11-20 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的fast协议解码方法、装置及设备 |
CN112073365A (zh) * | 2020-07-22 | 2020-12-11 | 深圳华云信息***有限公司 | 基于fpga的响应消息处理方法、装置 |
CN112346843A (zh) * | 2020-11-26 | 2021-02-09 | 上海金融期货信息技术有限公司 | 一种低延时fast协议的解析方法 |
CN112347020A (zh) * | 2020-10-26 | 2021-02-09 | 东方证券股份有限公司 | 一种基于cgra的fast行情解析***和方法 |
CN113691532A (zh) * | 2021-08-24 | 2021-11-23 | 中科亿海微电子科技(苏州)有限公司 | 基于fast协议的万兆通信数据的并行解析方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193287A (zh) * | 2006-11-30 | 2008-06-04 | 北京中电华大电子设计有限责任公司 | 一种提高jpeg2000 mq解码效率的方法和电路 |
CN101996632A (zh) * | 2009-08-10 | 2011-03-30 | 北京多思科技发展有限公司 | 一种支持语音编码加密的芯片、方法和通信设备 |
CN102685008A (zh) * | 2012-05-07 | 2012-09-19 | 西安电子科技大学 | 基于流水线的快速流识别方法及设备 |
CN103491417A (zh) * | 2013-10-17 | 2014-01-01 | 上海龙晶科技有限公司 | 机顶盒解复用***中的psi数据过滤器及过滤方法 |
-
2015
- 2015-03-20 CN CN201510125945.0A patent/CN104699448A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193287A (zh) * | 2006-11-30 | 2008-06-04 | 北京中电华大电子设计有限责任公司 | 一种提高jpeg2000 mq解码效率的方法和电路 |
CN101996632A (zh) * | 2009-08-10 | 2011-03-30 | 北京多思科技发展有限公司 | 一种支持语音编码加密的芯片、方法和通信设备 |
CN102685008A (zh) * | 2012-05-07 | 2012-09-19 | 西安电子科技大学 | 基于流水线的快速流识别方法及设备 |
CN103491417A (zh) * | 2013-10-17 | 2014-01-01 | 上海龙晶科技有限公司 | 机顶盒解复用***中的psi数据过滤器及过滤方法 |
Non-Patent Citations (1)
Title |
---|
HAN LI等: "《IEEE 17th International Conference on Computational Science and Engineering》", 31 December 2014 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105654383A (zh) * | 2016-01-07 | 2016-06-08 | 中国科学院信息工程研究所 | 基于流水线架构的低时延fast行情解码装置和方法 |
CN112073365A (zh) * | 2020-07-22 | 2020-12-11 | 深圳华云信息***有限公司 | 基于fpga的响应消息处理方法、装置 |
CN112073365B (zh) * | 2020-07-22 | 2023-02-03 | 深圳华云信息***有限公司 | 基于fpga的响应消息处理方法、装置 |
CN111967244A (zh) * | 2020-07-30 | 2020-11-20 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的fast协议解码方法、装置及设备 |
WO2022021852A1 (zh) * | 2020-07-30 | 2022-02-03 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的fast协议解码方法、装置及设备 |
CN111967244B (zh) * | 2020-07-30 | 2023-03-14 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的fast协议解码方法、装置及设备 |
CN112347020A (zh) * | 2020-10-26 | 2021-02-09 | 东方证券股份有限公司 | 一种基于cgra的fast行情解析***和方法 |
CN112346843A (zh) * | 2020-11-26 | 2021-02-09 | 上海金融期货信息技术有限公司 | 一种低延时fast协议的解析方法 |
CN113691532A (zh) * | 2021-08-24 | 2021-11-23 | 中科亿海微电子科技(苏州)有限公司 | 基于fast协议的万兆通信数据的并行解析方法及装置 |
CN113691532B (zh) * | 2021-08-24 | 2023-11-28 | 中科亿海微电子科技(苏州)有限公司 | 基于fast协议的万兆通信数据的并行解析方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104699448A (zh) | Fast协议的并行解码***及其实现方法 | |
CN105654383B (zh) | 基于流水线架构的低时延fast行情解码装置和方法 | |
JP2020205075A (ja) | Tcp対マルチキャスト(t2m)のためのシステムおよび方法ならびに関連ネットワークアーキテクチャ | |
CN112650499A (zh) | 基于OpenCL平台实现对交易所level-2 FAST行情的硬件解码处理的*** | |
CN105659274A (zh) | 用于在可重构平台中解码数据流的方法和设备 | |
CN112347020A (zh) | 一种基于cgra的fast行情解析***和方法 | |
CN108701052A (zh) | 发送事务而不跟踪的方法、设备和*** | |
CN108717665A (zh) | 电子装置、大类基金资产配置策略分析方法及存储介质 | |
CN102110066B (zh) | 一种税控加密卡的控制方法 | |
CN111857868A (zh) | 证券数据的读写方法、装置、设备及计算机可读存储介质 | |
CN106407391A (zh) | 一种数据质量监控的方法及*** | |
CN101097507A (zh) | 影像画面及光标图像的传输暨显示***及其方法 | |
CN107122359A (zh) | 数据实时跟踪可视化处理方法及装置 | |
CN104836710A (zh) | 一种基于分布式***一主多从通信的方法与装置 | |
CN103973581A (zh) | 一种报文数据处理方法、装置及*** | |
CN109324838A (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN115187403A (zh) | 证券行情转发方法及***、计算机可读存储介质及装置 | |
CN110555763A (zh) | 基于区块链的金融数据处理方法及装置 | |
CN111506784B (zh) | 资产债权匹配方法、装置、计算机设备及存储介质 | |
CN101887529A (zh) | 一种用户可自行更换加密算法的射频识别卡及其方法 | |
CN104933086A (zh) | 一种数据处理方法及其装置 | |
CN105812442B (zh) | 一种合并数据文件的方法和ftp转发器 | |
CN110995754A (zh) | 一种数据报文索引的管理方法和装置以及设备 | |
CN113141603B (zh) | 一种数据通信方法、***、主端设备及从端设备 | |
CN116991593B (zh) | 操作指令处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150610 |