![点击分享此内容可以赚币 分享](/master/images/share_but.png)
低延迟低抖动的FAST解码器设计与实现.pdf
《低延迟低抖动的FAST解码器设计与实现.pdf》由会员分享,可在线阅读,更多相关《低延迟低抖动的FAST解码器设计与实现.pdf(13页珍藏版)》请在咨信网上搜索。
1、第41卷 第4期2023年7月应用科学学报JOURNAL OF APPLIED SCIENCESElectronics and Information EngineeringVol.41 No.4Jul.2023DOI:10.3969/j.issn.0255-8297.2023.04.014低延迟低抖动的 FAST 解码器设计与实现张曦煌1,2,丁楠1,柴志雷1,冯一飞1,叶钧超11.江南大学 人工智能与计算机学院,江苏 无锡 2141222.无锡太湖学院 智能装备学院,江苏 无锡 214064摘摘摘要要要:为了解决金融 FAST(financial information exchange
2、adapted for streaming)协议面临的纯软件解码延迟高,FPGA(field programmable gate array)硬件解码开发周期长、更新困难的问题,提出了基于 OpenCL 和 HLS 的硬件解码模式。通过对 FAST 数据解码的标记、切分、合并、解码模块进行流水优化,对切分和字段解码进行并行操作,将数据的输入输出改为流式接口减少 I/O 口的延时以及对切分数组进行分割映射等优化方式实现了解码过程低延迟、低抖动。实验结果表明,相比纯软件解码,本文提出的解码器处理速度提升了 11 倍,解码延迟缩短至 1/6,抖动幅度控制在 10ns 之内。相比传统 HDL 方式的
3、FPGA 定制硬件开发,开发效率可提升 34 倍,从而更好地满足产品更新换代的需求。关键词:OpenCL;低延迟低抖动;FAST 协议解码;高层次综合;现场可编程门阵列中图分类号:P751.1文章编号:0255-8297(2023)04-0705-13Implementing a FAST Decoder with Low Latency andLow JitterZHANG Xihuang1,2,DING Nan1,CHAI Zhilei1,FENG Yifei1,YE Junchao11.School of Artificial Intelligence and Computer Scie
4、nce,Jiangnan university,Wuxi 214122,Jiangsu,China2.School of Intelligent Equipment Engineering,Wuxi Taihu University,Wuxi 214064,Jiangsu,ChinaAbstract:In order to solve the problems of high delay of pure software decoding,longdevelopment period of FPGA(field programmable gate array)hardware decoding
5、 and dif-ficult update of financial FAST(financial information exchange adapted for streaming)protocol,a hardware decoding mode based on OpenCL and HLS was proposed.By opti-mizing the marking,segmentation,merging,and decoding modules of FAST data decodingthrough pipelining,parallel operations are pe
6、rformed on segmentation and field decoding.The input and output of the data are changed to a streaming interface to reduce I/O portlatency,and the segmentation and mapping of the array segmentation are carried out toachieve low latency and low jitter in the decoding process.Experimental results show
7、 that收稿日期:2021-12-16基金项目:国家自然科学基金(No.61972180)资助通信作者:张曦煌,教授,研究方向为计算机网络、分布式系统与应用。E-mail:706应用科学学报第41卷compared with pure software decoding,the processing speed of the proposed decoder isimproved by 11 times,the decoding delay is shortened to 1/6,and the jitter amplitudeis controlled within 10ns.Compar
8、ed with the traditional HDL custom FPGA hardwaredevelopment,the proposed approach improves development efficiency by 34 times,thusbetter meeting the needs of product updates.Keywords:OpenCL,low latency and low jitter,FAST(financial information exchangeadapted for streaming)protocol decoding,high lev
9、el synthesis,field programmable gatearray(FPGA)金融信息交换适应性流协议(financial information exchange adapted for streaming,FAST)1是 2005 年全球金融企业联盟组织 FPL 提出的一种面向消息流的压缩、编码和传输方法。该方法主要是在消息流中对先后数据字段进行增量传输,压缩所需传送的数据内容,针对不同类型的二进制字段高效地提高二进制编码使得数据压缩率,降低传输数据大小。FAST协议主要应用在高密度、低延迟的数据传输领域。发送和接收方希望能够在传输带宽有限的情况下,减少不必要的信息传输,从
10、而获得更多的数据信息2。FAST 协议的一个典型应用场景是证券交易所的行情信息传输。证券交易所将行情信息通过 FAST 协议压缩后传输给各个行情商,行情商采用 FAST 解码器对数据进行解压缩并获得行情数据。例如,上交所新一代的 Level-2 行情系统在原来 FIX 的协议传输基础上对于部分数据采用了 FAST 协议传输,在很大程度上提高了数据的传输效率3。上交所证券成交量从 2019 年 53792.1454 亿股增长到 2021 年的 70444.4027 亿股,涨幅达到了 30.96%。深交所证券成交量从 2019 年的 72832.14 亿股增长到 2021 年的 90805.84亿
11、股,涨幅达到了 24.68%。成交量暴涨的背后是证券交易信息数据的激增。在证券交易市场4,第一时间获取行情信息就可以更精准地把握交易时机从而获得更高的收益。FAST 协议应用初期,解码器的设计主要以纯软件解码为主,分别为基于 C+编程语言的 Quickfast和 Mfast 以及基于 Java 的 Openfast。纯软件解码开发周期短,同时在代码逻辑更新迭代上具有很大的优势。但是,由于编译器以及操作系统本身的中断机制和资源调度问题,使得解码过程中时延不稳定。此外,纯软件串行解码的特点可能会导致高峰交易时段的数据阻塞,使得整个解码系统不稳定。因此,纯软件解码越来越难以满足量化交易对行情数据实时
12、稳定获取的需求。为了解决纯软件解码高延迟、高抖动的问题,基于 FPGA 的定制化硬件解码5逐渐替代了纯软件解码,其实现模式通常采用 Verilog/VHDL 来进行解码逻辑的开发6。发挥 FPGA并行流水及运行时间可精确到周期的特点,实现更低的时延和抖动。但是与纯软件相比,其开发和维护更新迭代的周期也大大增加了,很难适应交易策略和逻辑的快速迭代。针对以上问题,已有通过 Vivido HLS 完成核心模块的开发7,从而在较低延迟的基础上提高核心模块的开发效率。但仍需要关注接口的定义以及内存的分配和管理,对开发者的硬件开发能力提出了较高的要求8。为了让开发人员更多关注业务本身,而不需要关注底层硬件
13、接口配置和内存分配及管理等重复造轮子的工作。本文探索了基于 OpenCL 和 HLS 快速开发 FAST 解码器的技术路径。通过 HLS 并行、流水指令级优化以及 OpenCL 高层次的底层抽象设计开发模式,实现了一种低延迟、低抖动的 FAST 解码器。其开发周期相比传统 FPGA 硬件设计时间可以缩短至 1/3,能够更好地适应金融行情市场解码及交易策略的快速迭代。同时,通过实验仿真和验证,该解码器解码延迟可以控制在 183 ns。与纯软件相比处理速度提升了 11 倍,解码延迟缩短至 1/6,解码抖动幅度控制在 10 ns 以内,可以满足 FAST 解码的应用需求。第4期张曦煌,等:低延迟低抖
14、动的 FAST 解码器设计与实现7071FAST 协议FAST 协议采用存在位图 PMAP(Presence Map)值+字段压缩数据的压缩方式。具体流程是:首先,传输的字段数目和模板对应生成 PMAP 作为 FAST 数据的首位;其次,模板 ID转换成二进制(通常为 7 位二进制数,高位补 0),并将高 8 位补位 1 作为模板值传输。再次,之后的字段数据采用停止位分割,将数据按照 7 位一组进行分割,从高到低,最高位的一组高8 位补 1,其余组补 0,作为字段压缩数据接在模板数据之后,完成对原始数据的 FAST 压缩。FAST 数据解码则与压缩相逆,依据 PMAP 值和模板获得传输数据的压
15、缩字段数目和标签含义。设置每 8 位为一组,根据后续每组的最高位来判断每一个字段的起始位置和终止位置。将每组的最高位去除,其余位合并,最终获得了每一个压缩字段数据的二进制数表示。1.1FAST模板FAST 模板作为发送方和接收方数据传输过程中的格式规则,模板的内容主要是传输数据的编号、数据类型、各个数据字段的标签含义、数据字段采用的加解密 FAST 操作符、小数点的精度等标签信息。在传输总数据量不变的情况下,通过减少传输通用标签含义信息的数据,来提高有效信息的传输条数。通常 FAST 协议的模板是以 XML 文件的形式存放。FAST协议数据传输示意图如图 1 所示。?FAST?FAST?图 1
16、 FAST 协议数据传输示意图Figure 1 Data transmission diagram of FAST protocol1.2PMAP值和FAST操作符通常而言,一条 FAST 数据传输的首个字段是 PMAP 值,其主要作用是判断对应数据字段解码是否需要采用 FAST 操作符。FAST 操作符主要分为无操作符、常值、缺省、复制、自增、差值、换尾。在本文解码的模板中,主要采用了无操作符、常值、复制、缺省以及自增操作符,其中常值操作符和无操作符不占用 PMAP 值位元。无操作符始终出现在数据流中,而常值操作符来自于模板中的初值。复制是将上一条数据对应的字段复制到本条数据的位置。自增是在
17、上一条数据对应字段的基础上自增 1,而缺省和常值类似,也是输出模板中的初值。1.3数据类型和停止位由于 FAST 模板包含了小数点的精度信息,因此数据类型主要分为整型和字符串类型。此外,FAST 数据每个字段的长度并不固定,以 8 bits 为一个单位,首位作为标志停止位。如果首位为 1,将后 7 个 bit 构成一个字段进行解码操作。如果首位为 0,则需要观察后一个单位的停止位,直到找到停止位为 1 的单位,将除停止标志位以外的位拼接成一个整体再进行对应的解码操作。停止位的存在使得有效传输数据利用率大大提升。708应用科学学报第41卷2低延迟低抖动 FAST 硬件解码器设计FAST 硬件解码
18、分为预处理 FAST 数据提取模块与核心 FAST 数据解码器。预处理 FAST数据提取模块主要功能是提取嵌套在 STEP 数据中的 FAST 数据并将其送入 FAST 数据解码器中解码。核心 FAST 数据解码器由 PMAP 值提取、标记字段起始和终止位置、字段切分、数据类型判断和合并、数据字段解码组成。FAST 数据解码首先需提取 PMAP 值,该操作为后续字段切分的边界和字段解码的规则提供判断依据。同时 FAST 数据标记字段分割位置完成后,依靠位置存放数组进行字段切分。分割完成的数据通过判断数据类型来决定是否进行字段合并。最终各字段的解码由 PMAP值,分割合并后的字段以及前值字典共同
19、完成,并输出结果。此外,根据每一次的输出结果更新前值字典以供后续的数据解码。具体 FAST 解码器设计流程如图 2 所示。?PMAP?图 2 FAST 解码器设计流程图Figure 2 Flowchart of FAST decoder design2.1硬件并行优化2.1.1切分数组存储映射针对数据字段的切分,尽管每一个字段的起始和终止位置无耦合,且 FAST 数据的特征不定长,但其实际大小始终以 8 的整倍数比特在一定的范围内波动,最终根据模板数据类型大小计算汇总单条数据的长度最大为 472 bits。为了确保 FAST 数据解码器接收数据的完整性,从而减少多次读取产生的延迟抖动,将接口大
20、小设计为 512 bits。根据以上特征,采用并行切分的设计思想来降低数据切分的时延,从而提升整体的解码效率。考虑 FAST 数据存放在一个数组中,而并行切分需要对数组进行多次的访问,可能会产生访问冲突,这将导致数据读取效率的降低。针对此问题,本文将 FAST 数据数组映射到多个存储器,通过提高存储器的访问接口,提高切分的并行度,从而实现解码处理的低延迟。FAST 数组映射切分示意图如图3 所示。第4期张曦煌,等:低延迟低抖动的 FAST 解码器设计与实现7098 bitsFAST?8?8 bits8 bits8 bits图 3 存储映射切分示意图Figure 3 Storage mappin
21、g segmentation diagram2.1.2单元内核矢量化并行分割完成的字段数据通过类型判断和合并将最终需要处理的数据送入解码器中。PMAP 值和 FAST 操作符的联合判断决定解码器解码是否需要使用特定的 FAST 操作符和前值字典。最终,根据解码的结果对前值字典进行更新。FAST 解码单元框架如图 4 所示。?PMAP?FAST?图 4 FAST 解码单元框架图Figure 4 Frame diagram of FAST decoding unit由于 FAST 数据各字段的解码过程相互独立,无相关性。根据各字段数据的最大长度,设计接口位宽大小固定为 64 bits。由于 FAS
22、T 单个字段的解码处理所消耗的时钟周期为 18 个Cycles。在未采用并行设计的前提下,总消耗为 1296 个 Cycles,产生的延迟抖动较大,不易于解码系统的稳定。通过内核复制矢量化,可以将解码延迟控制在单个字段最大解码延迟上,其解码时钟周期抖动为 23 个 Cycles。根据 FAST 的字段数目,对单元内核矢量化,将FAST 解码单元复制成 16 块,实现 FAST 字段数据并行解码,从而降低字段解码的延迟和抖动幅度。码单元内核矢量化示意图如图 5 所示。2.2存储优化设计由于 FPGA 硬件资源有限,而解码器设计对标记位和前值字典的存储空间需求较大。同时 PMAP 值的存储以及各字
23、段的存储范围跨度较大,这就造成采用传统的存储数据类型会浪710应用科学学报第41卷?1?2?NFAST?图 5 FAST 解码单元内核矢量化示意图Figure 5 Vectorization diagram of FAST decoding unit kernel费大量的存储空间。根据字段数据特定的范围,定制化地设计存储类型的位宽,从而优化存储空间,提高空间利用率。让更多的计算数据存放在片上 SRAM 中,进而发挥片上存储高带宽读写速率的优势,提高传输速度,降低解码延迟9。通过定制化数据类型存储优化10可在满足字段存储需求的同时,将存储空间利用率提升 12 倍。数据类型存储优化对比如图 6 所
24、示。32 bits12 bits?(a)?(a)Traditional data type storage(b)?(b)Customize data type storage图 6 数据类型存储优化对比图Figure 6 Comparison diagram of data type storage optimizationFPGA 的存储资源主要分为片上的 SRAM 以及片外的 HBM,SRAM 相比 HBM 拥有更高的数据读写带宽,但是其存储空间远小于 HBM,因此在设计空间存储中,首先将频繁读写的前值字典存放在 SRAM 中,通过高带宽的读写速率,降低前值字段更新处理的延迟,从而进一步实
25、现整体的低延迟处理11。2.3硬件流水设计考虑到 FAST 数据压缩强耦合性和增量传输的特点,不同 FAST 数据之间无法做到并行处理,但单条数据各个模块之间的处理没有交叉关联。因此,为了能够确保流水的效率最优,在设计上将总体处理过程细分成多个部分,尽可能使得每一个部分的延迟(Latency)相等。将 FAST 解码设计主要分为标记、切分、合并、解码这 4 个部分处理,由于 4 部分均不涉及复杂运算,处理延迟均为一个时钟周期。同时模块前后呈现单进单出的相关性,即前一个模块的输出作为后一个模块的输入12,从而能够最优化实现硬件流水设计。流水设计处理对比如图7 所示。通过流水设计,尽管无法优化降低
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 延迟 抖动 FAST 解码器 设计 实现
![提示](https://www.zixin.com.cn/images/bang_tan.gif)
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。