交易行情数据加工方法及装置、数据加工板卡转让专利

申请号 : CN202211137676.6

文献号 : CN115687708B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张兴陈岩张宇

申请人 : 中科驭数(北京)科技有限公司

摘要 :

本申请提供一种交易行情数据加工方法及装置、数据加工板卡,方法包括:基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元;应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至DDR存储单元中;根据预获取的自定义计算规则,自DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果。本申请能够提高交易行情数据在数据加工板卡中的存储及检索效率,并能够进行自定义分类及计算,能够满足用户对交易行情数据的个性化加工需求及加工效率,提高数据加工板卡的用户体验,进而能够提高数据加工板卡的应用灵活性、加工有效性、适用广泛性及销售量。

权利要求 :

1.一种交易行情数据加工方法,其特征在于,包括:

将DDR存储单元划分为多个总区,并基于所述DDR存储单元的存储容量对各个所述总区进行内存分配;其中,所述总区包括:用于存储交易行情数据的数据存储区域、用于存储冗余数据的冗余数据存储区域和用于为数据计算保留的数据运算区域;

基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元;

应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中;

根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果;

在所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元之前,还包括:将所述数据存储区域划分为多个子存储区,各个所述子存储区分别用于以链表结点的形式存储各个索引对应的交易行情数据;

其中,所述链表结点包括用于存储数据元素的数据域和用于存储下一个链表结点地址的指针域;

其中,所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元,包括:基于以太网接口自行情转发服务器接收原始交易行情数据;

根据FAST协议或Binary协议对所述原始交易行情数据进行解析,得到经格式化的交易行情数据;

根据交易行情数据对应的索引,基于KPU架构将交易行情数据分区存储至对应的所述子存储区内;

其中,所述应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中,包括:应用PCIe接口自用户应用程序接收针对交易行情数据的自定义分类数据;

基于预设的通信协议解析出所述自定义分类数据对应的补充字段值及对应的索引;

根据所述自定义分类数据的索引将所述补充字段值补充存储至对应的所述子存储区。

2.根据权利要求1所述的交易行情数据加工方法,其特征在于,所述自定义计算规则有多个,且各个所述自定义计算规则均包含有:规则编号、计算数据、触发类型、预设的计算频率和阈值;

所述规则编号用于得到对应的计算结果后将该计算结果与对应的计算规则一一对应;

所述计算数据包括:最新成交价格、成交量、成交额、最高价和最低价中的至少一项;

所述触发类型包括:时间触发和/或条件触发。

3.一种交易行情数据加工装置,其特征在于,所述交易行情数据加工装置用于执行下述内容:将DDR存储单元划分为多个总区,并基于所述DDR存储单元的存储容量对各个所述总区进行内存分配;其中,所述总区包括:用于存储交易行情数据的数据存储区域、用于存储冗余数据的冗余数据存储区域和用于为数据计算保留的数据运算区域;

所述交易行情数据加工装置还包括:

分区存储模块,用于基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元;

补充存储模块,用于应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中;

自定义计算模块,用于根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果;

在所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元之前,所述交易行情数据加工装置还用于执行下述内容:将所述数据存储区域划分为多个子存储区,各个所述子存储区分别用于以链表结点的形式存储各个索引对应的交易行情数据;

其中,所述链表结点包括用于存储数据元素的数据域和用于存储下一个链表结点地址的指针域;

其中,所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元,包括:基于以太网接口自行情转发服务器接收原始交易行情数据;

根据FAST协议或Binary协议对所述原始交易行情数据进行解析,得到经格式化的交易行情数据;

根据交易行情数据对应的索引,基于KPU架构将交易行情数据分区存储至对应的所述子存储区内;

其中,所述应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中,包括:应用PCIe接口自用户应用程序接收针对交易行情数据的自定义分类数据;

基于预设的通信协议解析出所述自定义分类数据对应的补充字段值及对应的索引;

根据所述自定义分类数据的索引将所述补充字段值补充存储至对应的所述子存储区。

4.一种数据加工板卡,其特征在于,包括:DDR存储单元、KPU架构及存储在所述数据加工板卡内且用于在KPU架构中运行的计算机程序,所述KPU架构执行所述计算机程序时实现如权利要求1或2所述的交易行情数据加工方法;

所述KPU架构分别与以太网接口和PCIe接口之间通信连接。

5.根据权利要求4所述的数据加工板卡,其特征在于,所述KPU架构包括:依次连接的逻辑处理单元、内存管理单元、数据调度器、任务调度器、核处理器组和数据缓存单元组,其中,所述数据缓存单元组还与所述内存管理单元连接;

所述内存管理单元和所述数据调度器均分别与所述DDR存储单元连接;

所述KPU架构还包括:分别连接至所述逻辑处理单元的网络控制器和PCIe控制器,其中,所述网络控制器与所述以太网接口之间通信连接,所述PCIe控制器与所述PCIe接口之间通信连接;

所述核处理器组包括多个核处理器;所述数据缓存单元组包括多个数据缓存单元,且各个所述数据缓存单元均分别连接所述内存管理单元和一个所述核处理器。

6.根据权利要求5所述的数据加工板卡,其特征在于,所述数据加工板卡通过所述PCIe接口安装在服务器上,所述数据加工板卡通过所述以太网接口与行情转发服务器之间通信连接以自该行情转发服务器获取交易行情数据。

说明书 :

交易行情数据加工方法及装置、数据加工板卡

技术领域

[0001] 本申请涉及硬件板卡技术领域,尤其涉及交易行情数据加工方法及装置、数据加工板卡。

背景技术

[0002] 针对日益庞大的用户证券分析需求,交易数据加工已变成量化交易策略研究的重点之一。而交易行情数据则是交易过程中最基本、最重要的部分。对于高频交易和低延迟交易者,行情数据的精度和细度尤其重要。目前,在软件中实现交易行情数据加工已得到普遍应用,但对于交易数据的实时变化情况,软件计算方式存在效率较低的问题,不能够完全满足交易行情数据加工的时效性要求。因此,应用硬件进行交易行情数据加工的方式被提出。
[0003] 目前,应用硬件进行交易行情数据加工的方式通常采用FPGA(现场可编程逻辑门阵列)板卡进行数据计算,FPGA板卡中集成了网卡及网络通信功能。将FPGA板卡通过网口链接到行情转发服务器接收行情源数据,对接收到的原始行情数据进行协议解析,将解析后的数据进行委托薄重构。
[0004] 然而,现有的应用硬件进行交易行情数据加工的方式普遍是在数据加工板卡中固定业务逻辑进行整体存储及调用,如委托薄重构等。但该种方式灵活性差且对数据进行存储或检索的效率依然在一定程度上受限,无法满足用户对交易行情数据的个性化加工需求及加工效率,进而影响数据加工板卡的应用灵活性、有效性及销售数量等。

发明内容

[0005] 鉴于此,本申请实施例提供了交易行情数据加工方法及装置、数据加工板卡,以消除或改善现有技术中存在的一个或更多个缺陷。
[0006] 本申请的一个方面提供了一种交易行情数据加工方法,包括:
[0007] 基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元;
[0008] 应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中;
[0009] 根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果。
[0010] 在本申请的一些实施例中,在所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元之前,还包括:
[0011] 将DDR存储单元划分为多个总区,并基于所述DDR存储单元的存储容量对各个所述总区进行内存分配;
[0012] 其中,所述总区包括:用于存储交易行情数据的数据存储区域、用于存储冗余数据的冗余数据存储区域和用于为数据计算保留的数据运算区域。
[0013] 在本申请的一些实施例中,在所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元之前,还包括:
[0014] 将所述数据存储区域划分为多个子存储区,各个所述子存储区分别用于以链表结点的形式存储各个索引对应的交易行情数据;
[0015] 其中,所述链表结点包括用于存储数据元素的数据域和用于存储下一个链表结点地址的指针域。
[0016] 在本申请的一些实施例中,所述基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元,包括:
[0017] 基于以太网接口自行情转发服务器接收原始交易行情数据;
[0018] 根据FAST协议或Binary协议对所述原始交易行情数据进行解析,得到经格式化的交易行情数据;
[0019] 根据交易行情数据对应的索引,基于KPU架构将交易行情数据分区存储至对应的所述子存储区内。
[0020] 在本申请的一些实施例中,所述应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中,包括:
[0021] 应用PCIe接口自用户应用程序接收针对交易行情数据的自定义分类数据;
[0022] 基于预设的通信协议解析出所述自定义分类数据对应的补充字段值及对应的索引;
[0023] 根据所述自定义分类数据的索引将所述补充字段值补充存储至对应的所述子存储区。
[0024] 在本申请的一些实施例中,所述自定义计算规则有多个,且各个所述自定义计算规则均包含有:规则编号、计算数据、触发类型、预设的计算频率和阈值;
[0025] 所述规则编号用于得到对应的计算结果后将该计算结果与对应的计算规则一一对应;
[0026] 所述计算数据包括:最新成交价格、成交量、成交额、最高价和最低价中的至少一项;
[0027] 所述触发类型包括:时间触发和/或条件触发。
[0028] 本申请的另一个方面提供了一种交易行情数据加工装置,包括:
[0029] 分区存储模块,用于基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元;
[0030] 补充存储模块,用于应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中;
[0031] 自定义计算模块,用于根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果。
[0032] 本申请的另一个方面提供了一种数据加工板卡,包括:DDR存储单元、KPU架构及存储在所述数据加工板卡内且用于在KPU架构中运行的计算机程序,所述KPU架构执行所述计算机程序时实现所述的交易行情数据加工方法;
[0033] 所述KPU架构分别与以太网接口和PCIe接口之间通信连接。
[0034] 在本申请的一些实施例中,所述KPU架构包括:依次连接的逻辑处理单元、内存管理单元、数据调度器、任务调度器、核处理器组和数据缓存单元组,其中,所述数据缓存单元组还与所述内存管理单元连接;
[0035] 所述内存管理单元和所述数据调度器均分别与所述DDR存储单元连接;
[0036] 所述KPU架构还包括:分别连接至所述逻辑处理器的网络控制器和PCIe控制器,其中,所述网络控制器与所述以太网接口之间通信连接,所述PCIe控制器与所述PCIe接口之间通信连接;
[0037] 所述核处理器组包括多个核处理器;所述数据缓存单元组包括多个数据缓存单元,且各个所述数据缓存单元均分别连接所述内存管理单元和一个所述核处理器。
[0038] 在本申请的一些实施例中,所述数据加工板卡通过所述PCIe接口安装在服务器上,所述数据加工板卡通过所述以太网接口与行情转发服务器之间通信连接以自该行情转发服务器获取交易行情数据。
[0039] 本申请的另一个方面还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的交易行情数据加工方法。
[0040] 本申请提供的交易行情数据加工方法,基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元,对于解析后的行情数据在板卡中进行分区存储;达到快速存储或检索数据的效果;应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中,对于解析后的行情数据可在用户层进行数据分类,达到用户对于行情数据的自定义分类的效果;根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果,在自定义规则的情况下对于解析后的行情数据进行计算;达到用户对于行情数据的自定义计算的效果;能够提高交易行情数据在数据加工板卡中的存储及检索效率,并能够进行自定义分类及计算,能够满足用户对交易行情数据的个性化加工需求及加工效率,提高数据加工板卡的用户体验,进而能够提高数据加工板卡的应用灵活性、加工有效性、适用广泛性及产品销售量等。
[0041] 本申请的附加优点、目的,以及特征将在下面的描述中将部分地加以阐述,且将对于本领域普通技术人员在研究下文后部分地变得明显,或者可以根据本申请的实践而获知。本申请的目的和其它优点可以通过在说明书以及附图中具体指出的结构实现到并获得。
[0042] 本领域技术人员将会理解的是,能够用本申请实现的目的和优点不限于以上具体所述,并且根据以下详细说明将更清楚地理解本申请能够实现的上述方案和其他目的。

附图说明

[0043] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。附图中的部件不是成比例绘制的,而只是为了示出本申请的原理。为了便于示出和描述本申请的一些部分,附图中对应部分可能被放大,即,相对于依据本申请实际制造的示例性装置中的其它部件可能变得更大。在附图中:
[0044] 图1为本申请一实施例中的交易行情数据加工方法的总流程示意图。
[0045] 图2为本申请一实施例中的交易行情数据加工方法的一种具体流程示意图。
[0046] 图3为本申请另一实施例中的交易行情数据加工装置的结构示意图。
[0047] 图4为本申请另一实施例中的数据加工板卡的结构示意图。
[0048] 图5为本申请另一实施例中的数据加工板卡与其他服务器之间的物理连接示意图。
[0049] 图6为本申请应用实例提供的数据接收及解析的流程示意图。
[0050] 图7为本申请应用实例提供的三大总区的划分示意图。
[0051] 图8为本申请应用实例提供的数据存储区域中各子存储区的划分示意图。
[0052] 图9为本申请应用实例提供的补充数据流程图。
[0053] 图10为本申请应用实例提供的自定义计算规则计算流程示意图。

具体实施方式

[0054] 为使本申请的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本申请做进一步详细说明。在此,本申请的示意性实施方式及其说明用于解释本申请,但并不作为对本申请的限定。
[0055] 在此,还需要说明的是,为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与根据本申请的方案密切相关的结构和/或处理步骤,而省略了与本申请关系不大的其他细节。
[0056] 应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
[0057] 在此,还需要说明的是,如果没有特殊说明,术语“连接”在本文不仅可以指直接连接,也可以表示存在中间物的间接连接。
[0058] 在下文中,将参考附图描述本申请的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
[0059] 现有较好的技术是使用FPGA(现场可编程逻辑门阵列)板卡进行数据计算,FPGA板卡中集成了网卡及网络通信功能。将FPGA板卡通过网口链接到行情转发服务器接收行情源数据,对接收到的原始行情数据进行协议解析,将解析后的数据进行委托薄重构。
[0060] 本申请的发明人在进行量化交易策略的研究时,发现现有技术中在板卡中普遍以固化的方式对行情数据进行计算。但对于交易策略来说,需要在板卡中更加灵活的方式对行情数据进行计算,比如对于股票分时的成交价格进行求均值计算。此计算方法可以在软件中实现,但对于交易数据的实时变化的情况,软件的计算方式较慢,使用硬件板卡的计算方式更高效,能更快速的根据行情数据使用自定义规则计算出想要的结果。
[0061] 基于此,本申请提供一种交易行情数据加工方式及硬件实现,对于解析后的行情数据在板卡中进行分区存储;达到快速存储或检索数据的效果;对于解析后的行情数据可在用户层进行数据分类,达到用户对于行情数据的自定义分类的效果;在自定义规则的情况下对于解析后的行情数据进行计算;达到用户对于行情数据的自定义计算的效果。
[0062] 在本申请的一个或多个实施例中,FPGA是指:Field Programmable Gate Array是作为专用集成电路(ASIC)领域中一种半定制电路而出现的一种集成电路,所谓集成电路就是将各种分立元件(比如电阻,二极管,三极管)搭建的电路集成到一块芯片上就称之为集成电路。FPGA加速卡是针对特定领域和应用的专业板卡,通常以PCIe扩展卡的方式进行部署。板卡上设计有丰富的高速I/O接口与存储资源,但往往不会配备太多开发板卡上常见的调试功能与资源。
[0063] 在本申请的一个或多个实施例中,PCI是指:外设元间互联标准(Peripheral Component Interconnect)是一种由Intel推出的用于定义局部总线的标准。此标准允许在计算机内安装遵从PCI标准的扩展卡。PCI总线系统要求有一个PCI控制卡,它必须安装在一个PCI插槽内。
[0064] 在本申请的一个或多个实施例中,PCIe是指:PCI Express,是沿用现有的PCI编程概念及信号标准,并且构建了更加高速的串行通信系统标准。使用PCI额标准接口的集成电路板卡,可以简称为PCIe板卡。
[0065] 在本申请的一个或多个实施例中,所述数据加工板卡可以为英伟达(NVIDIA)发布的数据处理单元DPU(Data Processing Unit),尤其可以采用DPU‑K1或DPU‑K2等型号,为各类证券企业等输出成熟的产品及硬件加速解决方案。
[0066] 具体通过下述实施例进行详细说明。
[0067] 为了提高交易行情数据在数据加工板卡中的存储及检索效率,进行自定义分类及计算并满足用户对交易行情数据的个性化加工需求及加工效率,本申请实施例提供一种交易行情数据加工方法,可以基于交易行情数据加工装置实现,并应用于数据加工板卡中,参见图1,所述交易行情数据加工方法具体包含有如下内容:
[0068] 步骤100:基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元。
[0069] 在本申请的一个或多个实施例中,核处理器KPU(Kernel Processing Unit)架构是基于“软件定义加速器”的技术路线研发的专用技术芯片架构,这是一种专为加速特定领域核心功能计算而设计的一种协处理器架构,以功能核作为基本单元,具备超强异构核集成和调度能力。
[0070] KPU架构内提供了多个核处理器,可根据规则定于核处理器的运算方式。KPU架构可以包含PCIe控制器、网络控制器、逻辑处理单元、内存管理单元、数据缓存单元、数据调度器、任务调度器及核处理器等。这是一种专为加速特定领域核心功能计算而设计的一种协处理器架构,以功能核作为基本单元,具备超强异构核集成和调度能力。一颗KPU根据需求可以集成数十至数百个功能核,可直接对应用中的计算密集型应用进行抽象核和高层综合,实现以数据为中心的架构“定制”,灵活性极高,在保障充沛算力的同时以最低功耗支撑更多运算负载类型。
[0071] 步骤200:应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中。
[0072] 在本申请的一个或多个实施例中,DDR(Double Data Rate)存储单元也可以直接写为DDR,是指双倍速率同步动态随机存储器,是内存的其中一种。DDR运用了同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了延时锁定回路提供一个数据滤波信号DLL(Delay Locked Loop)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。DDR本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRAM的两倍。
[0073] 步骤300:根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果。
[0074] 在本申请的一个或多个实施例中,交易行情数据也可以称之为行情数据,是交易过程中最基本、最重要的部分。一次完整的交易通常分为三个步骤:接收行情、分析行情(策略部分)、发出买卖指令并成交(算法交易部分)。对于高频交易和低延迟交易者,行情数据的精度和细度尤其重要。精度是指数据的准确性和能在多大程度上反映市场的真实情况,细度是指行情的推送频率。行情数据分为两部分:交易行情和订单委托行情。交易行情就是交易数据,包括最新成交价、成交量、成交额、最高价、最低价等字段信息;订单委托行情就是买卖报价和委托量,根据委托价格的不同,可以分为一档、五档、十档等行情;通常把交易行情和订单委托行情结合在一起,形成TAQ(Trades and Quotes)行情。
[0075] 从上述描述可知,本申请实施例提供的交易行情数据加工方法,对于解析后的行情数据在板卡中进行分区存储;达到快速存储或检索数据的效果;对于解析后的行情数据可在用户层进行数据分类;达到用户对于行情数据的自定义分类的效果;在自定义规则的情况下对于解析后的行情数据进行计算;达到用户对于行情数据的自定义计算的效果;能够提高交易行情数据在数据加工板卡中的存储及检索效率,并能够进行自定义分类及计算,能够满足用户对交易行情数据的个性化加工需求及加工效率,提高数据加工板卡的用户体验,进而能够提高数据加工板卡的应用灵活性、加工有效性、适用广泛性及销售量。
[0076] 为了进一步提高数据在数据加工板卡中的存储及检索效率,在本申请实施例提供的一种交易行情数据加工方法中,参见图2,所述交易行情数据加工方法中的步骤100之前还具体包含有如下内容:
[0077] 步骤010:将DDR存储单元划分为多个总区,并基于所述DDR存储单元的存储容量对各个所述总区进行内存分配;其中,所述总区包括:用于存储交易行情数据的数据存储区域、用于存储冗余数据的冗余数据存储区域和用于为数据计算保留的数据运算区域。
[0078] 具体来说,可以将64GB内存的存储分成三部分:30GB的数据存储区域、2GB的冗余数据存储区域和32GB的数据运算区。
[0079] 其中,数据存储区域:按照股票代码为索引,在30GB的数据存储区域中等分成了10个3GB数据存储区。首先以起始代码判断是上海证券行情数据还是深圳证券行情数据,上证A股市场为6,深证A股市场则为:0。根据判断结果确定股票代码的分区存储位置。分区存储方式以500个为间隔,判断行情数据应存储到哪个数据存储器区域。例:股票代码为600000‑600500将存储于第一个3G的数据存储区域,以此类推。
[0080] 冗余数据存储区域:对于股票代码超过605000(上证)或005000(深证)的其余数据,均存储在冗余数据存储区域。
[0081] 数据运算区域是为后期数据计算而保留的存储区域。
[0082] 为了进一步提高数据在数据加工板卡中的存储及检索效率,在本申请实施例提供的一种交易行情数据加工方法中,参见图2,所述交易行情数据加工方法中的步骤010之后和步骤100之前还具体包含有如下内容:
[0083] 步骤020:将所述数据存储区域划分为多个子存储区,各个所述子存储区分别用于以链表结点的形式存储各个索引对应的交易行情数据;其中,所述链表结点包括用于存储数据元素的数据域和用于存储下一个链表结点地址的指针域。
[0084] 具体来说,30GB的数据存储区域等分成10部分,将接收到的数据根据索引存储在对应的子存储区。以股票代码为索引的实际数据存储在链表结点的数据域。
[0085] 在本申请的一个或多个实施例中,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
[0086] 为了进一步提高数据分区存储的效率、有效性及可靠性,在本申请实施例提供的一种交易行情数据加工方法中,参见图2,所述交易行情数据加工方法中的步骤100具体包含有如下内容:
[0087] 步骤110:基于以太网接口自行情转发服务器接收原始交易行情数据。
[0088] 步骤120:根据FAST协议或Binary协议对所述原始交易行情数据进行解析,得到经格式化的交易行情数据。
[0089] 步骤130:根据交易行情数据对应的索引,基于KPU架构将交易行情数据分区存储至对应的所述子存储区内。
[0090] 具体来说,数据加工板卡通过PCIe(高速串行计算机扩展总线标准)安装在服务器上,通过以太网接口链接券商的行情转发服务器获取原始行情数据。将接收到的行情数据通过FAST或Binary协议解析成格式化数据。
[0091] 格式化数据包括:最新成交价格、成交量、成交额、最高价和最低价等。板卡集成64GB的DDR3内存颗粒,将格式化的数据存储到板卡DDR中。
[0092] 为了进一步提高用户自定义分类的可靠性及有效性,在本申请实施例提供的一种交易行情数据加工方法中,参见图2,所述交易行情数据加工方法中的步骤200具体包含有如下内容:
[0093] 步骤210:应用PCIe接口自用户应用程序接收针对交易行情数据的自定义分类数据;
[0094] 步骤220:基于预设的通信协议解析出所述自定义分类数据对应的补充字段值及对应的索引;
[0095] 步骤230:根据所述自定义分类数据的索引将所述补充字段值补充存储至对应的所述子存储区。
[0096] 具体来说,步骤210至步骤230具体可以根据协议补充股票数据的自定义分类,如:财务指标。通信协议包括:股票代码,新建类别,类别值。用户应用程序通过PCIe将待补充的数据发送到板卡,板卡根据通信协议解析出待补充的字段值,根据股票代码查找到存储在数据存储区域的行情数据,并将待补充的数据追加到对应的子存储区。
[0097] 为了进一步提高自定义计算的可靠性及有效性,在本申请实施例提供的一种交易行情数据加工方法中,所述自定义计算规则有多个,且各个所述自定义计算规则均包含有:规则编号、计算数据、触发类型、预设的计算频率和阈值;
[0098] 所述规则编号用于得到对应的计算结果后将该计算结果与对应的计算规则一一对应;所述计算数据包括:最新成交价格、成交量、成交额、最高价和最低价中的至少一项;
[0099] 所述触发类型包括:时间触发和/或条件触发。
[0100] 具体来说,根据规则设置板卡的计算规则,规则可根据规则编号设置多条。规则协议包括:规则编号、计算数据、触发类型、频率和阈值等。由于板卡会同时计算多条规则,需将计算规则与计算结果对应,计算完成后,以计算规则编号返回计算结果。计算数据可设置为最新成交价格、成交量、成交额、最高价和最低价,可同时计算多个数据。触发类型包括时间触发与条件触发。时间触发为小时,分钟和秒级别。条件触发是对于规则计算时,计算结果大于、小于或等于阈值时以中断形式反馈应用层条件已经触发。计算结果返回应用层数据格式为:规则编号、触发类型和计算结果。
[0101] 从软件层面来说,本申请还提供一种用于执行所述交易行情数据加工方法中全部或部分内的交易行情数据加工装置,参见图3,所述交易行情数据加工装置具体包含有如下内容:
[0102] 分区存储模块10,用于基于KPU架构将交易行情数据分区存储至已分多个区的本地DDR存储单元;
[0103] 补充存储模块20,用于应用PCIe接口接收针对交易行情数据的自定义分类数据,并将该自定义分类数据补充存储至所述DDR存储单元中;
[0104] 自定义计算模块30,用于根据预获取的自定义计算规则,自所述DDR存储单元中调取对应的交易行情数据并进行加工计算,得到对应的计算结果并输出该计算结果。
[0105] 本申请提供的交易行情数据加工装置的实施例具体可以用于执行上述实施例中的交易行情数据加工方法的实施例的处理流程,其功能在此不再赘述,可以参照上述交易行情数据加工方法实施例的详细描述。
[0106] 所述交易行情数据加工装置进行交易行情数据加工的部分可以在服务器中执行,而在另一种实际应用情形中,也可以所有的操作都在客户端设备中完成。具体可以根据所述客户端设备的处理能力,以及用户使用场景的限制等进行选择。本申请对此不作限定。若所有的操作都在所述客户端设备中完成,所述客户端设备还可以包括处理器,用于交易行情数据加工的具体处理。
[0107] 上述的客户端设备可以具有通信模块(即通信单元),可以与远程的服务器进行通信连接,实现与所述服务器的数据传输。所述服务器可以包括任务调度中心一侧的服务器,其他的实施场景中也可以包括中间平台的服务器,例如与任务调度中心服务器有通信链接的第三方服务器平台的服务器。所述的服务器可以包括单台计算机设备,也可以包括多个服务器组成的服务器集群,或者分布式装置的服务器结构。
[0108] 上述服务器与所述客户端设备端之间可以使用任何合适的网络协议进行通信,包括在本申请提交日尚未开发出的网络协议。所述网络协议例如可以包括TCP/IP协议、UDP/IP协议、HTTP协议、HTTPS协议等。当然,所述网络协议例如还可以包括在上述协议之上使用的RPC协议(Remote Procedure Call Protocol,远程过程调用协议)、REST协议(Representational State Transfer,表述性状态转移协议)等。
[0109] 从上述描述可知,本申请实施例提供的交易行情数据加工装置,对于解析后的行情数据在板卡中进行分区存储;达到快速存储或检索数据的效果;对于解析后的行情数据可在用户层进行数据分类;达到用户对于行情数据的自定义分类的效果;在自定义规则的情况下对于解析后的行情数据进行计算;达到用户对于行情数据的自定义计算的效果;能够提高交易行情数据在数据加工板卡中的存储及检索效率,并能够进行自定义分类及计算,能够满足用户对交易行情数据的个性化加工需求及加工效率,提高数据加工板卡的用户体验,进而能够提高数据加工板卡的应用灵活性、加工有效性、适用广泛性及销售量。
[0110] 本申请实施例还提供了一种数据加工板卡,参见图4,数据加工板卡包含有:DDR存储单元、KPU架构及存储在所述数据加工板卡内且用于在KPU架构中运行的计算机程序,所述KPU架构执行所述计算机程序时实现前述的交易行情数据加工方法;
[0111] 所述KPU架构分别与以太网接口和PCIe接口之间通信连接。
[0112] 其中,所述KPU架构包括:依次连接的逻辑处理单元、内存管理单元、数据调度器、任务调度器、核处理器组和数据缓存单元组,其中,所述数据缓存单元组还与所述内存管理单元连接;
[0113] 所述内存管理单元和所述数据调度器均与所述DDR存储单元连接;
[0114] 所述KPU架构还包括:分别连接至所述逻辑处理器的网络控制器和PCIe控制器,其中,所述网络控制器与所述以太网接口之间通信连接,所述PCIe控制器与所述PCIe接口之间通信连接;
[0115] 所述核处理器组包括多个核处理器;所述数据缓存单元组包括多个数据缓存单元,且各个所述数据缓存单元均分别连接所述内存管理单元和一个所述核处理器。
[0116] 另外,参见图5,所述数据加工板卡通过所述PCIe接口安装在服务器上,所述数据加工板卡通过所述以太网接口与行情转发服务器之间通信连接以自该行情转发服务器获取交易行情数据。
[0117] 本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时以实现前述交易行情数据加工方法的步骤。该计算机可读存储介质可以是有形存储介质,诸如随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、软盘、硬盘、可移动存储盘、CD‑ROM、或技术领域内所公知的任意其它形式的存储介质。
[0118] 为了进一步说明本方案,本申请还提供一种交易行情数据加工方法的具体应用实例,具体为一种基于KPU架构的自定义规则的行情数据加工方法,用于解决现有技术存在的硬件无法自定义行情数据加工规则等问题,对于解析后的行情数据在板卡中进行分区存储;达到快速存储或检索数据的效果;对于解析后的行情数据可在用户层进行数据分类,达到用户对于行情数据的自定义分类的效果;在自定义规则的情况下对于解析后的行情数据进行计算;达到用户对于行情数据的自定义计算的效果。
[0119] 本申请应用实例采用的技术方案包括以下步骤:
[0120] (1)参见图4和图5,数据加工板卡通过PCIe(高速串行计算机扩展总线标准)安装在服务器上,参见图6,通过以太网接口链接券商的行情转发服务器获取原始行情数据。将接收到的行情数据通过FAST或Binary协议解析成格式化数据。
[0121] KPU(Kernel Processing Unit)架构内提供了多个核处理器,可根据规则定于核处理器的运算方式。KPU架构包含PCIe控制器,网络控制器,逻辑处理单元,内存管理单元,数据缓存单元,数据调度器,任务调度器,核处理器等。
[0122] (2)格式化数据包括最新成交价格、成交量、成交额、最高价和最低价等。板卡集成64GB的DDR3内存颗粒,将格式化的数据存储到板卡DDR中。
[0123] (3)参见图7,将64GB内存的存储分成三部分,30GB数据存储区域,2GB冗余数据存储区域,32GB数据运算区。参见图8,30GB数据存储区域等分成10部分(子存储区1‑10),将接收到的数据根据索引存储在对应的子存储区。以股票代码为索引的实际数据存储在链表结点的数据域。
[0124] 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
[0125] 数据存储区域:按照股票代码为索引,在30GB的数据存储区域中等分成了10个3GB数据存储区。首先以起始代码判断是上海证券行情数据还是深圳证券行情数据,上证A股市场为“6”,深证A股市场则为:“0”。根据判断结果确定股票代码的分区存储位置。分区存储方式以500个为间隔,判断行情数据应存储到哪个子存储区。例:股票代码为600000‑600500将存储于第一个3G的子存储区1,以此类推。
[0126] 冗余数据存储区域:对于股票代码超过605000(上证)或005000(深证)的其余数据,均存储在冗余数据存储区域。
[0127] 数据运算区域是为后期数据计算而保留的存储区域。
[0128] (4)参见图9,根据协议补充股票数据的自定义分类,如:财务指标。通信协议包括:股票代码,新建类别,类别值。用户应用程序通过PCIe将待补充的数据发送到板卡,板卡根据通信协议解析出待补充的字段值,根据股票代码查找到存储在数据存储区域的行情数据,并将待补充的数据追加到子存储区。
[0129] (5)参见图10,根据规则设置板卡的计算规则,规则可根据规则编号设置多条。规则协议包括:规则编号、计算数据、触发类型、频率和阈值。由于板卡会同时计算多条规则,需将计算规则与计算结果对应,计算完成后,以计算规则编号返回计算结果。计算数据可设置为最新成交价格、成交量、成交额、最高价和最低价,可同时计算多个数据。触发类型包括时间触发与条件触发。时间触发为小时,分钟和秒级别。条件触发是对于规则计算时,计算结果大于、小于或等于阈值时以中断形式反馈应用层条件已经触发。计算结果返回应用层数据格式为:规则编号、触发类型和计算结果。
[0130] 与现有技术相比,本申请应用实例的有益效果是:
[0131] 1.对于软件的串行化计算来对比,在硬件中实现数据计算更快速,高效。
[0132] 2.现有的行情数据加工都是基于交易所发出的行情数据,此行情数据对于用户来说未进行有效分类。该申请应用实例提出用户可以以股票代码为基础,对行情数据进行自定义分类。
[0133] 3.对于现有的硬件行情数据加工板卡来说,对行情数据的计算都是固定的,无法实现对于行情数据的自定义运行,该申请应用实例提出用户可以将自定义规则下发到板卡中,板卡根据自定义规则对行情数据进行计算,并将计算结果反馈给用户。
[0134] 本领域普通技术人员应该可以明白,结合本文中所公开的实施方式描述的各示例性的组成部分、系统和方法,能够以硬件、软件或者二者的结合来实现。具体究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。
[0135] 需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
[0136] 本申请中,针对一个实施方式描述和/或例示的特征,可以在一个或更多个其它实施方式中以相同方式或以类似方式使用,和/或与其他实施方式的特征相结合或代替其他实施方式的特征。
[0137] 以上所述仅为本申请的优选实施例,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。