一种行情数据传输方法、装置、设备及介质与流程

    专利2022-07-08  66


    本发明涉及数据传输领域,特别涉及一种行情数据传输方法、装置、设备及介质。



    背景技术:

    当前,行情数据的传输处理,通过硬件接收交易所发送的行情数据,并将接收到的行情数据通过一个pcie通道传输给驱动,驱动收到行情数据后进行内存拷贝,然后按照行情类别分发给对应的软件接收进程。但由于驱动收到行情数据后需要内存拷贝才能送给个软件进程,内存拷贝动作带来了很大的传输时延,并且驱动分发行情数据是串行的处理过程,如果其中一个软件进程处理的慢,则会影响其他软件进程的数据接收。增大了行情数据的传输时延,降低了行情数据处理系统的稳定性。



    技术实现要素:

    有鉴于此,本发明的目的在于提供一种数据传输方法、装置、设备及介质,能够减少数据传输时延,提高系统的数据处理能力和稳定性。其具体方案如下:

    第一方面,本申请公开了一种数据传输方法,包括:

    通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;

    为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;

    通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    可选的,所述通过所述pcie通道将所述目标类型行情数据传输给主机,包括:

    对所述目标类型行情数据进行组包处理得到相应的行情数据包;

    通过所述pcie通道将所述行情数据包传输给所述主机;

    根据预设存储关系,将所述行情数据包写入所述主机内相应的独立存储区;其中,所述预设存储关系为所述pcie通道与所述独立存储区的对应关系。

    可选的,所述通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据,包括:

    根据预设读取关系,利用所述主机内目标进程读取相应的所述独立存储区中的所述行情数据包;其中,所述预设读取关系为所述目标进程与所述独立存储区的对应关系。

    可选的,所述行情数据传输方法,还包括:

    通过所述板卡的网口接收柜台发送的订单数据,并根据所述订单数据中的目标字段确定出所述订单数据对应的席位;

    通过与所述席位对应的pcie通道,将所述订单数据发送给应用程序,并由所述应用程序通过api接口将所述订单数据转发给交易所。

    可选的,所述利用所述主机内的目标进程读取所述独立存储区内的所述行情数据包之后,还包括:

    释放所述独立存储区;

    通过所述pcie通道向所述板卡发送相应的存储区释放信息。

    第二方面,本申请公开了一种数据传输装置,包括:

    数据获取模块,用于通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;

    数据传输模块,用于为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;

    数据接收模块,用于通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    可选的,所述数据传输模块,包括:

    组包单元,用于对所述目标类型行情数据进行组包处理得到相应的行情数据包;

    传输单元,用于通过所述pcie通道将所述行情数据包传输给所述主机;

    写入单元,用于根据预设存储关系,将所述行情数据包写入所述主机内相应的独立存储区;其中,所述预设存储关系为所述pcie通道与所述独立存储区的对应关系。

    可选的,所述数据接收模块,包括:

    读取单元,用于根据预设读取关系,利用所述主机内目标进程读取相应的所述独立存储区中的所述行情数据包;其中,所述预设读取关系为所述目标进程与所述独立存储区的对应关系。

    第三方面,本申请公开了一种电子设备,包括:

    存储器,用于保存计算机程序;

    处理器,用于执行所述计算机程序,以实现前述的数据传输方法。

    第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的数据传输方法。

    本申请中,通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    由此可见,通过将行情数据进行分类得到不同类型的目标类型行情数据,然后为每个类型的目标类型行情数据分配以一个单独的pcie通道,在硬件pcie层进行多通道目标类型行情数据的传输,因为硬件pcie通道之间各自独立,由此可以避免不同通道间相互干扰,增加了硬件系统的稳定性,同时减少数据传输时延,提高系统的数据处理能力。并且,pcie通道直接与目标进程进行通讯,避免驱动的内存拷贝和分发,各进程独立并行处理各自的行情数据,减少了数据传输时延,简化了系统结构,提升了系统稳定性。

    附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

    图1为本申请提供的一种行情数据传输方法流程图;

    图2为本申请提供的一种具体的行情数据传输流程图;

    图3为本申请提供的一种具体的行情数据传输方法流程图;

    图4为本申请提供的一种具体的行情数据传输系统流程图;

    图5为本申请提供的一种具体的订单传输流程图;

    图6为本申请提供的一种行情数据传输装置结构示意图;

    图7为本申请提供的一种电子设备结构图。

    具体实施方式

    现有技术中,通过一个pcie通道传输行情数据给驱动,驱动收到行情数据后进行内存拷贝,然后按照行情类别分发给对应的软件接收进程。由于驱动收到行情数据后需要内存拷贝才能送给个软件进程,内存拷贝动作带来了很大的传输时延,并且驱动分发行情数据是串行的处理过程,增大了行情数据的传输时延,降低了行情数据处理系统的稳定性。为克服上述技术问题,本申请提供了一种基于pcie多通道的行情数据传输方法,可以减少数据传输时延,提高系统的数据处理能力和稳定性。

    本申请实施例公开了一种行情数据传输方法,参见图1所示,该方法可以包括以下步骤:

    步骤s11:通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据。

    本实施例中,首先通过板卡获取行情数据,并对上述行情数据进行分类得到目标类型行情数据。可以理解的是,通过硬件板卡获取交易所发送的行情数据,通过内部行情处理模块根据用户需求将上述行情数据进行分类,得到一个或多个类型的目标类型行情数据;即获取原始行情数据包,根据行情类型过滤掉不关心的行情数据,得到目标类型行情数据。其中,上述行情数据的分类标准可以包括但不限于逐笔委托、逐笔成交、行情快照、指数快照。

    步骤s12:为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机。

    本实施例中,在得到上述目标类型行情数据后,为每个目标类型行情数据分配单独的pcie通道,然后通过上述pcie通道将目标类型行情数据从上述板卡传输给主机。即按照行情数据的类别,不同类别的行情数据进入不同的pcie通道,不同pcie通道并行传输多个类型的目标类型行情数据。具体的,可以将得到的目标行情数据通过统一的计算方式放到不同pcie通道上,由此应用层收到的行情数据不需要再进行过滤,并且通道的行情数据可以使用同一放大倍数以便方便计算;并且对于不需要关心的行情数据,可以直接丢弃并不干预其他通道的信息接收处理。同时通过硬件pcie多通道并行传输方式,不同类型的行情走不同的pcie通道,不同类型的行情可以并行处理,可以兼容硬件内部的并行数据处理,提高数据处理能力。

    步骤s13:通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    本实施例中,通过pcie通道将目标类型行情数据传输给主机后,利用主机内与上述pcie通道对应的目标进程,接收并处理上述目标类型行情数据。可以理解的是,在终端为每个pcie通道启动一个软件接收进程,每个pcie通道直接与目标进程进行数据交互,即一个pcie通道的目标类型行情数据由一个进程处理。例如图2所示,原始行情数据可以通过光分方式传输到硬件解析模块,即通过一个网络通路来接收网络过来的全部行情内容,当上述板卡的硬件解析模块接收到原始行情数据后,根据不同的行情类型对原始行情数据进行分类,通过行情分类得到订单、成交、快照和指数四类目标类型行情数据,然后为每个类型的行情数据分配一个pcie通道,并交由不同的线程进行处理;利用pcie多通道并行方案将以上四种行情类型放到不同的通道上传,应用层多线程接收各通道行情数据。在主机内每个目标类型行情数据可以由一个或多个线程进行接收处理,也可以使用单个进程进行接收处理。

    由上可见,通过将行情数据进行分类得到不同类型的目标类型行情数据,然后为每个类型的目标类型行情数据分配以一个单独的pcie通道,在硬件pcie层进行多通道目标类型行情数据的传输,因为硬件pcie通道之间各自独立,由此可以避免不同通道间相互干扰,增加了硬件系统的稳定性,同时减少数据传输时延,提高系统的数据处理能力。并且,软件进程直接与pcie通道进行通讯,避免驱动的内存拷贝和数据分发,每个pcie通道直接与相应的目标进程进行数据交互,能省去了驱动与各进程之间通道切换和数据的拷贝;软件层使用多通道并行方式,可以并行处理各类行情,提高系统行情处理能力,一个软件进程处理速度慢不会影响其他软件进程的数据接收和处理。

    本申请实施例公开了一种具体的行情数据传输方法,参见图3所示,该方法可以包括以下步骤:

    步骤s21:通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据。

    步骤s22:为每个所述目标类型行情数据分配单独的pcie通道,对所述目标类型行情数据进行组包处理得到相应的行情数据包。

    本实施例中,在得到上述目标类型行情数据后,对上述目标类型行情数据进行组包处理,得到相应的行情数据包;具体的,组包处理可以包括但不限于添加数据包头信息。

    步骤s23:通过所述pcie通道将所述行情数据包传输给所述主机。

    本实施例中,在得到上述行情数据包后,通过上述pcie通道将行情数据包传输给主机,并通知相应的软件进程去读取数据;具体的,可以通过板卡的pcieip核和主机的pcieip核将上述行情数据包传输给主机。例如图4所示,硬件板卡的pcieip核接收到硬件pcie通道传输的行情数据包后,将行情数据包发送给电脑主板的pcieip核。

    步骤s24:根据预设存储关系,将所述行情数据包写入所述主机内相应的独立存储区;其中,所述预设存储关系为所述pcie通道与所述独立存储区的对应关系。

    本实施例中,主机接收到上述行情数据包后,根据预设存储关系,将上述行情数据包写入主机内相应的独立存储区;其中,上述预设存储关系为pcie通道与独立存储区的对应关系;可以理解的是,驱动在内存中为每个pcie通道申请一片或多片独立存储区,将通过该pcie通道的行情数据包存储到相应的存储区。例如图4所示,当主板的pcieip核接收到行情数据包后,根据数据包的头信息,利用软件层pcie通道将上述行情数据包存入到pcie通道对应的存储空间内。

    步骤s25:根据预设读取关系,利用所述主机内目标进程读取相应的所述独立存储区中的所述行情数据包;其中,所述预设读取关系为所述目标进程与所述独立存储区的对应关系。

    本实施例中,根据预设读取关系,利用主机内目标进程读取相应的独立存储区中的行情数据包;其中,预设读取关系为目标进程与独立存储区的对应关系。可以理解的是,一个目标进程去读取一个pcie通道对应的独立存储区。

    步骤s26:释放所述独立存储区;通过所述pcie通道向所述板卡发送相应的存储区释放信息。

    本实施例中,例如图4所示,在上述目标进程读取上述独立存储区中的目标行情数据包后,释放相应的独立存储区,并且通过上述pcie通道通知硬件板卡,该独立存储区已经释放可以继续使用。

    本实施例中,所述行情数据传输方法,还可以包括:通过所述板卡的网口接收柜台发送的订单数据,并根据所述订单数据中的目标字段确定出所述订单数据对应的席位;通过与所述席位对应的pcie通道,将所述订单数据发送给应用程序,并由所述应用程序通过api接口将所述订单数据转发给交易所。可以理解的是,例如图5所示,在柜台交易系统中,用户通过席位下发订单以及发送接收订单响应,本实施例中,每个席位对应一个pcie通道,板卡接收到柜台发送的订单数据后,通过查看订单数据中的席位字段判断上述订单数据对应的席位,可以理解的是,硬件系统中每个席位有对应的标识符,通过查看订单数据中目标字段内的标识符,判断上述订单数据对应的席位。然后通过该席位对应的pcie通过将上述订单数据发送给应用程序,再由应用程序通过交易所的api实例接口将订单数据转发给交易所。

    相比于现有技术中,硬件柜台系统之前普遍使用单个pcie通道传输方式,所有席位共用一个pcie通道,驱动收到行情后进行数据的拷贝和转发,各席位下单性能受驱动性能的影响,对于下发的订单响应数据需要多席位排队处理。本实施例中,通过pcie多通道并行方式,每个席位占用一个通道,席位直接各自独立互不影响,每个席位只需要处理对应通道的数据,由此可以提高系统下单的性能。

    其中,关于上述步骤s21的具体过程可以参考前述实施例公开的相应内容,在此不再进行赘述。

    由上可见,根据预设存储关系,将行情数据包写入主机内相应的独立存储区,其中,预设存储关系为pcie通道与独立存储区的对应关系;并根据预设读取关系,利用主机内目标进程读取相应的独立存储区中的行情数据包,其中,预设读取关系为目标进程与独立存储区的对应关系。由此,利用pcie通道与独立存储区的对应关系,及独立存储区与目标进程的对应关系,实现行情数据的快速传输,降低了数据传输的时延,使每个pcie通道直接与相应的目标进程进行数据交互,能省去了驱动与各进程之间通道切换和数据的拷;同时软件层使用多通道并行方式,并行处理各类行情,提高了系统行情处理能力。

    相应的,本申请实施例还公开了一种行情数据传输装置,参见图6所示,该装置包括:

    数据获取模块11,用于通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;

    数据传输模块12,用于为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;

    数据接收模块13,用于通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    由上可见,通过将行情数据进行分类得到不同类型的目标类型行情数据,然后为每个类型的目标类型行情数据分配以一个单独的pcie通道,在硬件pcie层进行多通道目标类型行情数据的传输,因为硬件pcie通道之间各自独立,由此可以避免不同通道间相互干扰,增加了硬件系统的稳定性,同时减少数据传输时延,提高系统的数据处理能力。并且,软件进程直接与pcie通道进行通讯,避免驱动的内存拷贝和数据分发,每个pcie通道直接与相应的目标进程进行数据交互,能省去了驱动与各进程之间通道切换和数据的拷贝;软件层使用多通道并行方式,可以并行处理各类行情,提高系统行情处理能力,一个软件进程处理速度慢不会影响其他软件进程的数据接收和处理。

    在一些具体实施例中,所述数据传输模块12具体可以包括:

    组包单元,用于对所述目标类型行情数据进行组包处理得到相应的行情数据包;

    传输单元,用于通过所述pcie通道将所述行情数据包传输给所述主机;

    写入单元,用于根据预设存储关系,将所述行情数据包写入所述主机内相应的独立存储区;其中,所述预设存储关系为所述pcie通道与所述独立存储区的对应关系。

    在一些具体实施例中,所述数据接收模块13具体可以包括:

    读取单元,用于根据预设读取关系,利用所述主机内目标进程读取相应的所述独立存储区中的所述行情数据包;其中,所述预设读取关系为所述目标进程与所述独立存储区的对应关系。

    在一些具体实施例中,所述行情数据传输装置具体可以包括:

    存储区释放单元,用于释放所述独立存储区;通过所述pcie通道向所述板卡发送相应的存储区释放信息。

    进一步的,本申请实施例还公开了一种电子设备,参见图7所示,图中的内容不能被认为是对本申请的使用范围的任何限制。

    图7为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的行情数据传输方法中的相关步骤。

    本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

    另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括行情数据在内的数据223等,存储方式可以是短暂存储或者永久存储。

    其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的行情数据传输方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20获取到的行情数据。

    进一步的,本申请实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的行情数据传输方法步骤。

    本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

    结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

    最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

    以上对本发明所提供的一种行情数据传输方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。


    技术特征:

    1.一种行情数据传输方法,其特征在于,包括:

    通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;

    为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;

    通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    2.根据权利要求1所述的行情数据传输方法,其特征在于,所述通过所述pcie通道将所述目标类型行情数据传输给主机,包括:

    对所述目标类型行情数据进行组包处理得到相应的行情数据包;

    通过所述pcie通道将所述行情数据包传输给所述主机;

    根据预设存储关系,将所述行情数据包写入所述主机内相应的独立存储区;其中,所述预设存储关系为所述pcie通道与所述独立存储区的对应关系。

    3.根据权利要求2所述的行情数据传输方法,其特征在于,所述通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据,包括:

    根据预设读取关系,利用所述主机内目标进程读取相应的所述独立存储区中的所述行情数据包;其中,所述预设读取关系为所述目标进程与所述独立存储区的对应关系。

    4.根据权利要求1所述的行情数据传输方法,其特征在于,还包括:

    通过所述板卡的网口接收柜台发送的订单数据,并根据所述订单数据中的目标字段确定出所述订单数据对应的席位;

    通过与所述席位对应的pcie通道,将所述订单数据发送给应用程序,并由所述应用程序通过api接口将所述订单数据转发给交易所。

    5.根据权利要求3所述的行情数据传输方法,其特征在于,所述利用所述主机内的目标进程读取所述独立存储区内的所述行情数据包之后,还包括:

    释放所述独立存储区;

    通过所述pcie通道向所述板卡发送相应的存储区释放信息。

    6.一种行情数据传输装置,其特征在于,包括:

    数据获取模块,用于通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;

    数据传输模块,用于为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;

    数据接收模块,用于通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。

    7.根据权利要求6所述的行情数据传输装置,其特征在于,所述数据传输模块,包括:

    组包单元,用于对所述目标类型行情数据进行组包处理得到相应的行情数据包;

    传输单元,用于通过所述pcie通道将所述行情数据包传输给所述主机;

    写入单元,用于根据预设存储关系,将所述行情数据包写入所述主机内相应的独立存储区;其中,所述预设存储关系为所述pcie通道与所述独立存储区的对应关系。

    8.根据权利要求6所述的行情数据传输装置,其特征在于,所述数据接收模块,包括:

    读取单元,用于根据预设读取关系,利用所述主机内目标进程读取相应的所述独立存储区中的所述行情数据包;其中,所述预设读取关系为所述目标进程与所述独立存储区的对应关系。

    9.一种电子设备,其特征在于,包括:

    存储器,用于保存计算机程序;

    处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的行情数据传输方法。

    10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中计算机程序被处理器执行时实现如权利要求1至5任一项所述的行情数据传输方法。

    技术总结
    本申请公开了一种行情数据传输方法、装置、设备及介质。该方法包括:通过板卡获取行情数据,并对所述行情数据进行分类得到目标类型行情数据;为每个所述目标类型行情数据分配单独的pcie通道,并通过所述pcie通道将所述目标类型行情数据传输给主机;通过所述主机内与所述pcie通道对应的目标进程,接收所述目标类型行情数据。本申请,通过多通道pcie并行传输不同类型的目标类型行情数据,并且每个pcie通道直接与对应的软件进程进行数据交互,pcie通道之间各自独立,各进程独立处理各自的行情数据,减少了数据传输时延,提高了系统的数据处理能力和稳定性。

    技术研发人员:王永国;刘生;李森
    受保护的技术使用者:盛立金融软件开发(杭州)有限公司
    技术研发日:2020.12.11
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22406.html

    最新回复(0)