Dpu-based order entry method, apparatus, electronic device, medium
By pre-sending the header information of the trading order in high-frequency trading and sending the complete order according to the timing of the order data, the problem of trading order delay is solved, and ultra-low latency and extremely fast order placement are achieved in the trading system.
Patent Information
- Application Number
- CN202411541454.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-31
- Publication Date
- 2026-02-10
- Estimated Expiration
- 2044-10-31
AI Technical Summary
Existing technologies in high-frequency trading have long delays in sending transaction orders, which cannot meet the requirements for ultra-low latency.
By pre-sending the transaction header information when receiving static data and sending the complete transaction report according to the timing of the data, the latency of the transaction report link is reduced.
It enables extremely fast sending of transaction orders, reduces latency in the order reporting process, and improves the performance of the transaction system.
Smart Images

Figure CN119444417B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of order storage technology for financial trading systems such as securities and stocks, and in particular to an order placement method, device, electronic device, and medium based on DPU. Background Technology
[0002] High-frequency trading (HF) in the financial sector is a crucial application area for ultra-low latency and also represents the most extreme pursuit of performance. Financial institutions and exchanges need to execute trades at the microsecond or even nanosecond level to gain a market advantage. Therefore, achieving ultra-low latency is paramount for trading platforms and network infrastructure. In the HF trading field, with the widespread adoption of ultra-low latency technology using Data Processing Units (DPUs), developing ultra-low latency, high-speed trading systems based on DPUs is increasingly becoming a consensus among financial institutions.
[0003] In related technologies, based on low-latency network interface cards (NICs) / DPU accelerator cards, UDP data packets conforming to the exchange's order format are sent to the low-latency NIC via a software protocol stack. The low-latency NIC then sends the data to the trading network and finally to the exchange. When a trading strategy triggers an order, UDP (User Datagram Protocol) data packets need to be sent according to the exchange's protocol data format. However, existing solutions all start sending from the first byte of the UDP data packet upon receiving the order data, which introduces transmission latency in the order link. Therefore, in trading scenarios, how to send trading orders to the exchange more quickly is a problem that urgently needs to be solved. Summary of the Invention
[0004] To solve the above-mentioned technical problems, or at least partially solve them, this disclosure provides a DPU-based order placement method, apparatus, electronic device, and medium that can send transaction orders to the exchange more quickly in trading scenarios.
[0005] To achieve the above objectives, the present disclosure provides the following technical solutions:
[0006] In a first aspect, embodiments of this disclosure provide a DPU-based order placement method, the method comprising:
[0007] When static data is received based on a preset order submission protocol, the static data is sent to the transaction network port in advance; the static data is used to represent the header information of the current transaction order.
[0008] Depending on the timing of receiving the order data, the order data is sent to the transaction network port; the order data is the business data transmitted for each transaction order.
[0009] As an optional implementation of this disclosure, the step of sending the order data to the transaction network port according to the timing of receiving the order data includes:
[0010] If the order data is received during the last clock cycle of sending the static data, the order data will be sent to the transaction network port starting from the next clock cycle.
[0011] As an optional implementation of this disclosure, the step of sending the order data to the transaction network interface according to the timing of receiving the order data further includes:
[0012] If the order data is received during the process of sending the static data, the order data is cached in the first-in-first-out queue;
[0013] Once the static data has been sent, the order data will be sent to the transaction network port.
[0014] As an optional implementation of this disclosure, the step of sending the order data to the transaction network interface according to the timing of receiving the order data, and sending the order data, further includes:
[0015] If the static data has been sent and the order data has not been received, the static data is discarded.
[0016] As an optional implementation of this disclosure, the method further includes:
[0017] Starting from the next clock cycle, the static data is pre-sent cyclically until the order data is received, at which point the order data is sent to the transaction network port.
[0018] As an optional implementation of this disclosure, the step of cyclically pre-transmitting the static data starting from the next clock cycle includes:
[0019] Starting from the next clock cycle, the static data is pre-sent cyclically. When the number of times the static data is sent exceeds a preset number, the pre-sending operation of the static data is stopped.
[0020] As an optional implementation of this disclosure, the step of cyclically pre-transmitting the static data starting from the next clock cycle further includes:
[0021] Starting from the next clock cycle, the static data is pre-sent cyclically. If the report data is not received within a preset time, the pre-sent operation of the static data is stopped.
[0022] Secondly, embodiments of this disclosure provide a DPU-based order processing device, comprising:
[0023] The pre-send module is used to send the static data to the transaction network port in advance when static data based on a preset order protocol is received; the static data is used to represent the header information of the current transaction order.
[0024] The decision module is used to send the order data to the transaction network port according to the timing of receiving the order data; the order data is the business data transmitted for each transaction order.
[0025] As an optional implementation of this disclosure, the decision module is specifically used for:
[0026] If the order data is received during the last clock cycle of sending the static data, the order data will be sent to the transaction network port starting from the next clock cycle.
[0027] As an optional implementation of this disclosure, the decision module is further specifically used for:
[0028] If the order data is received during the process of sending the static data, the order data is cached in the first-in-first-out queue;
[0029] Once the static data has been sent, the order data will be sent to the transaction network port.
[0030] As an optional implementation of this disclosure, the decision module is further specifically used for:
[0031] If the static data has been sent and the order data has not been received, the static data is discarded.
[0032] As an optional implementation of this disclosure, the apparatus further includes:
[0033] The loop module is used to pre-send the static data in a loop starting from the next clock cycle, until the order data is received, and then send the order data to the transaction network port.
[0034] As an optional implementation of this disclosure, the loop module is specifically used for:
[0035] Starting from the next clock cycle, the static data is pre-sent cyclically. When the number of times the static data is sent exceeds a preset number, the pre-sending operation of the static data is stopped.
[0036] As an optional implementation of this disclosure, the loop module is further specifically used for:
[0037] Starting from the next clock cycle, the static data is pre-sent cyclically. If the report data is not received within a preset time, the pre-sent operation of the static data is stopped.
[0038] Thirdly, embodiments of this disclosure provide an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the DPU-based order placement method described in the first aspect or any embodiment of the first aspect.
[0039] Fourthly, embodiments of this disclosure provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the DPU-based order reporting method described in the first aspect or any embodiment of the first aspect.
[0040] The DPU-based order reporting method disclosed herein, upon receiving static data sent according to a preset order reporting protocol, pre-sends the static data to the transaction network interface, and then sends the order reporting data to the transaction network interface according to the timing of receiving the order reporting data. Since the static data represents the header information of the current transaction order, and the order reporting data consists of the business data transmitted for each transaction order, by pre-sending the header information of the current transaction order to the transaction network interface and then sending the order reporting data according to the timing of receiving the order reporting data, the latency of the order reporting link can be reduced from receiving the order reporting data to the complete transmission of the entire transaction order, achieving ultra-fast order reporting. Attached Figure Description
[0041] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0042] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0043] Figure 1 This is a flowchart illustrating a DPU-based order placement method in one embodiment;
[0044] Figure 2a This is a schematic diagram of the UDP packet structure for a DPU-based packet method in one embodiment;
[0045] Figure 2b This is one of the clock cycle diagrams illustrating different timings at which order data is received in a DPU-based order reporting method in one embodiment.
[0046] Figure 2c This is the second schematic diagram of the data transmission clock cycle of the order reporting method based on DPU in one embodiment;
[0047] Figure 2d This is the third schematic diagram of the data transmission clock cycle for a DPU-based order reporting method in one embodiment;
[0048] Figure 3 This is a schematic diagram of the structure of a DPU-based order processing device in one embodiment;
[0049] Figure 4 This is a schematic diagram of the structure of the electronic device described in an embodiment of this disclosure. Detailed Implementation
[0050] To better understand the above-mentioned objectives, features, and advantages of this disclosure, the solutions disclosed herein will be further described below. It should be noted that, unless otherwise specified, the embodiments and features described herein can be combined with each other.
[0051] Numerous specific details are set forth in the following description in order to provide a full understanding of this disclosure, but this disclosure may also be implemented in other ways different from those described herein; obviously, the embodiments in the specification are only some, and not all, of the embodiments of this disclosure.
[0052] In this disclosure, the terms "exemplary" or "for example" are used to indicate that something is an example, illustration, or description. Any embodiment or design described as "exemplary" or "for example" in this disclosure should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a specific manner. Furthermore, in the description of the embodiments in this disclosure, unless otherwise stated, "a plurality of" means two or more.
[0053] Definitions:
[0054] High-frequency trading (HFT) is an automated trading method that utilizes high-speed computer algorithms and network technology to execute a large number of trades in a very short period of time. This trading strategy relies on minute market changes, such as small fluctuations in stock prices or price differences between different exchanges, to generate profits. High-frequency trading is characterized by rapid order execution, low-latency trading systems, and rapid response to market data. High-frequency trading (HFT) systems may use automated algorithms to quickly generate and execute trades to profit from minute market fluctuations.
[0055] A Data Processing Unit (DPU) is a processor specifically designed for data centers to efficiently handle large-scale data workloads, including tasks such as data transfer, reduction, protection, compression, analysis, and encryption. Compared to traditional CPUs and GPUs, DPUs focus on data-centric workloads, such as network, storage, and security operations in data centers.
[0056] UDP is a connectionless network protocol used to transmit data over IP networks. It belongs to the transport layer and is parallel to TCP (Transmission Control Protocol), but its main difference from TCP is that UDP is stateless and does not guarantee the order, integrity, or reliability of data packets. UDP provides a simple way to send encapsulated IP packets, but it does not order the data or ensure that they reach their destination.
[0057] A trading order typically refers to an instruction issued by an investor or trader in the financial market to buy or sell financial products such as securities, stocks, futures, and foreign exchange. These instructions include detailed information about the transaction, such as the financial product code, the direction of the transaction (buy or sell), the quantity, and the price. The execution of trading orders is usually carried out through the exchange's trading system, which determines the execution method based on the type and duration of the order.
[0058] The basic types of trading orders include: market orders, limit orders, stop-loss orders, take-profit orders, and iceberg orders. A market order is an instruction to buy or sell immediately at the current market price. A limit order sets a specific price; the buy or sell order will only be executed if the market price reaches or exceeds that price. A stop-loss order is triggered when the market price reaches a certain level, typically used to limit losses. A take-profit order is similar to a stop-loss order but is used to lock in profits; it is triggered when the price reaches a preset level. An iceberg order is a large transaction that only displays a small portion of the trading volume, hiding the rest to avoid excessive impact on market prices.
[0059] A trading strategy refers to a set of rules and methods developed in financial markets to achieve profit goals. Different traders employ different trading strategies based on their risk appetite, market analysis, money management capabilities, and other factors.
[0060] RAM (Random Access Memory) is hardware used in computers and other electronic devices for temporary storage of data and programs. It is the computer's main memory, used to store data and instructions currently in use while the computer is running. RAM is typically volatile, meaning that data stored in RAM is lost when the power is turned off. RAM allows for fast data read and write operations, enabling the computer to quickly access and process information.
[0061] In related technologies, based on low-latency network interface cards (NICs) / DPU accelerator cards, UDP data packets conforming to the exchange's order format are sent to the low-latency NIC via a software protocol stack. The low-latency NIC then sends the data to the trading network and finally to the exchange. When a trading strategy triggers an order, UDP (User Datagram Protocol) data packets need to be sent according to the exchange's protocol data format. However, existing solutions all start sending from the first byte of the UDP data packet upon receiving the order data, which introduces transmission latency in the order link. Therefore, in trading scenarios, how to send trading orders to the exchange more quickly is a problem that urgently needs to be solved.
[0062] To address the aforementioned issues, this disclosure proposes a DPU-based order reporting method. Upon receiving static data sent according to a preset order reporting protocol, the static data is pre-sent to the transaction network interface. Then, based on the timing of receiving the order reporting data, the order reporting data is sent to the transaction network interface. Since the static data represents the header information of the current transaction order, and the order reporting data consists of the business data transmitted for each transaction order, by pre-sending the header information of the current transaction order to the transaction network interface and then sending the order reporting data based on the timing of receiving the order reporting data, the latency of the order reporting link can be reduced from receiving the order reporting data to the complete transmission of the entire transaction order, achieving ultra-fast order reporting.
[0063] Reference Figure 1 As shown, Figure 1 This is a flowchart illustrating the DPU-based order placement method, which includes the following steps S11-S12:
[0064] S11. When static data is received based on a preset order protocol, the static data is sent to the transaction network port in advance.
[0065] The static data represents the header information of the current transaction order. This static data includes: Ethernet frame header data, IP header data, the preset order protocol header data, and message header data. The Ethernet frame header data includes: Ethernet type, source MAC address, and destination MAC address. The IP header data includes: IP protocol version, IP header length, service type, total length, identifier, source IP address, and destination IP address. The UDP header data includes: source port, destination port, length, and checksum. The message header is used to distinguish different types of message information, such as stop-loss orders, take-profit orders, and iceberg orders.
[0066] The preset reporting protocol can be, but is not limited to, UDP, TCP, etc. In this embodiment of the disclosure, the UDP protocol is used as an example to illustrate the UDP-based reporting method.
[0067] Specifically, when the low-latency network card / DPU accelerator card receives static data sent based on the UDP protocol, it pre-sends the static data to the transaction network port. When using the UDP protocol for data transmission, the data packet is encapsulated sequentially through an Ethernet frame, an IP (Internet Protocol) header, and a UDP header. The header information of the current transaction order includes source MAC, destination MAC, source port, destination port, message format, message length, etc. Since the header information of the current transaction order does not change with specific transaction orders, it can be pre-configured and distributed in the initialization module as initialization parameters.
[0068] For example, refer to Figure 2a As shown, a typical UDP message structure includes: Frame Header, IP Header, UDP Header, and UDP data (PayloadHeader + Payload data). A UDP message refers to a transaction instruction or quotation information transmitted using the UDP protocol. In this case, the message structure is defined at the application level, not by the UDP protocol itself. The payload data portion typically consists of a header and a content field. The header distinguishes different types of message information and is unrelated to the specific message transaction content; it can be pre-configured and distributed as initialization parameters in the initialization module. The content field contains the actual data transmitted for each transaction message.
[0069] Assuming the transaction order is sent via a 10Gbps network interface and the business logic's main frequency is 322MHz, then 32 bits (4 bytes) of data can be sent per clock cycle. The payload portion is assumed to contain 64 bytes (16 clock cycles), including a 16-byte header (4 clock cycles), a 48-byte content (12 clock cycles), and a 42-byte Frame Header, IP Header, and UDP Header (11 clock cycles). Following the traditional hardware ordering method, starting from the received order data and sending according to the UDP packet format, a total of 27 clock cycles are required (11 clock cycles for header information + 16 clock cycles for payload data), approximately 83ns. Figure 2a As shown.
[0070] The data transmitted in the first 15 clock cycles does not depend on the specific transaction content; only the last 48 bytes of the message content are related to the transaction content (i.e., the received order data). Therefore, the information in the UDP header section, including the Frame Header, IP Header, UDP Header, and Payload Header, can be collectively referred to as static data and cached in the RAM (Random Access Memory) on the accelerator card through pre-configuration.
[0071] S12. Based on the timing of receiving the order data, send the order data to the transaction network port.
[0072] The order data refers to the business data transmitted for each transaction order. The order data describes detailed information about the transaction, including, for example, the financial product code, transaction direction, transaction quantity, price, order generation time, order ID, and order validity period.
[0073] Specifically, if no order data is received, the header information is sent to the network port in advance. Depending on the status of the received order data, the following situations apply.
[0074] In some embodiments, step S12 (sending the order data to the transaction network port according to the timing of receiving the order data) can be implemented in the following way:
[0075] If the order data is received during the last clock cycle of sending the static data, the order data will be sent to the transaction network port starting from the next clock cycle.
[0076] Specifically, if the order data is received in the last clock cycle of sending static data, the payload data will be sent starting from the next clock cycle.
[0077] For example, refer to Figure 2b As shown, in this scenario, from receiving the order data to the complete transmission of the message, only 12 clock cycles are needed, saving 15 clock cycles compared to the traditional method.
[0078] In some embodiments, step S12 (sending the order data to the transaction network port according to the timing of receiving the order data) can also be implemented in the following ways:
[0079] If the order data is received during the process of sending the static data, the order data is cached in the first-in-first-out queue;
[0080] Once the static data has been sent, the order data will be sent to the transaction network port.
[0081] Specifically, if Payload Data is received during the sending of static data, the Payload Data is cached in a first-in-first-out (FIFO) queue. Once the static data is sent, the Payload Data will continue to be sent.
[0082] For example, refer to Figure 2c As shown, assuming that the static data is sent for 4 clock cycles and the order data is received, then from the receipt of the order data to the complete transmission of the message, only 23 clock cycles are needed, which saves 4 clock cycles compared to the traditional method.
[0083] In some embodiments, step S12 (sending the order data to the transaction network port according to the timing of receiving the order data) can also be implemented in the following ways:
[0084] If the static data has been sent and the order data has not been received, the static data is discarded.
[0085] Specifically, if the static data has been sent and the order data has not been received, the sending will be terminated immediately. The sent data packets will be discarded in the transmission link as incomplete data packets due to length errors (i.e., missing 48 bytes of PayloadData).
[0086] Furthermore, in some embodiments, after performing the above steps (if the static data has been sent and the report data has not been received, then the static data is discarded), the following steps may also be performed:
[0087] Starting from the next clock cycle, the static data is pre-sent cyclically until the order data is received, at which point the order data is sent to the transaction network port.
[0088] Specifically, if the order data is not received in the last clock cycle of the first pre-transmission, the transmission of the current data packet is terminated; the second pre-transmission is performed starting from the next clock cycle until the order data is received.
[0089] For example, refer to Figure 2d As shown, if no order data is received in the last clock cycle of the first pre-send, the first static data transmission terminates. The second pre-send of static data begins in the next clock cycle and continues until order data is received, at which point the order data is sent to the transaction interface.
[0090] Optionally, the above steps (starting from the next clock cycle, cyclically pre-sending the static data until the order data is received, and then sending the order data to the transaction network port) can be implemented in the following two ways:
[0091] Method 1: Starting from the next clock cycle, the static data is pre-sent cyclically. When the number of times the static data is sent exceeds a preset number, the pre-sending operation of the static data is stopped.
[0092] The preset number of times can be set according to the actual application scenario. For example, the preset number of times can be 5 times, 10 times, or other reasonable values. There are no specific restrictions here.
[0093] Specifically, if no data is received in the last clock cycle of the first pre-transmission, the first transmission of static data is terminated. The second pre-transmission of static data begins in the next clock cycle. When the number of static data transmissions exceeds a preset number, the pre-transmission operation stops, and the entire process ends.
[0094] For example, assuming the preset number of attempts is 5, if no data is received in the last clock cycle of the first pre-send, the first static data transmission is terminated. The second pre-send of static data begins in the next clock cycle. When the number of static data transmissions exceeds 5, the pre-send operation for static data is stopped, and the entire process ends.
[0095] Method 2: Starting from the next clock cycle, the static data is pre-sent cyclically. If the report data is not received within a preset time, the pre-sending operation of the static data is stopped.
[0096] The preset time can be set according to the actual application scenario. For example, the preset time can be 10 milliseconds, 20 milliseconds, 50 milliseconds, or other reasonable values. There are no specific restrictions here.
[0097] Specifically, if no order data is received in the last clock cycle of the first pre-transmission, the first transmission of static data is terminated. The second pre-transmission of static data begins in the next clock cycle. If no order data is received within a preset time, the pre-transmission of static data is stopped, and the entire process ends.
[0098] For example, assuming a preset time of 20 milliseconds, if no report data is received in the last clock cycle of the first pre-send, the first transmission of static data terminates. The second pre-send of static data begins in the next clock cycle. If no report data is received within 20 milliseconds, the pre-send operation of static data stops, and the entire process ends.
[0099] The DPU-based order reporting method provided in this disclosure should be used in the embodiments of this disclosure. When static data sent according to a preset order reporting protocol is received, the static data is sent to the transaction network port in advance. Then, the order reporting data is sent to the transaction network port according to the timing of receiving the order reporting data. Since the static data represents the header information of the current transaction order, and the order reporting data is the business data transmitted for each transaction order, by sending the header information of the current transaction order to the transaction network port in advance, and then sending the order reporting data according to the timing of receiving the order reporting data, the latency of the order reporting link can be reduced from receiving the order reporting data to the complete transmission of the entire transaction order, achieving extremely fast order reporting.
[0100] In one embodiment, such as Figure 3 As shown, a DPU-based order processing device 300 is provided, comprising:
[0101] The pre-send module 310 is used to send the static data to the transaction network port in advance when it receives static data sent based on a preset order protocol; the static data is used to represent the header information of the current transaction order.
[0102] The decision module 320 is used to send the order data to the transaction network port according to the timing of receiving the order data; the order data is the business data transmitted for each transaction order.
[0103] As an optional implementation of this disclosure, the decision module is specifically used for:
[0104] If the order data is received during the last clock cycle of sending the static data, the order data will be sent to the transaction network port starting from the next clock cycle.
[0105] As an optional implementation of this disclosure, the decision module is further specifically used for:
[0106] If the order data is received during the process of sending the static data, the order data is cached in the first-in-first-out queue;
[0107] Once the static data has been sent, the order data will be sent to the transaction network port.
[0108] As an optional implementation of this disclosure, the decision module is further specifically used for:
[0109] If the static data has been sent and the order data has not been received, the static data is discarded.
[0110] As an optional implementation of this disclosure, the apparatus further includes:
[0111] The loop module is used to pre-send the static data in a loop starting from the next clock cycle, until the order data is received, and then send the order data to the transaction network port.
[0112] As an optional implementation of this disclosure, the loop module is specifically used for:
[0113] Starting from the next clock cycle, the static data is pre-sent cyclically. When the number of times the static data is sent exceeds a preset number, the pre-sending operation of the static data is stopped.
[0114] As an optional implementation of this disclosure, the loop module is further specifically used for:
[0115] Starting from the next clock cycle, the static data is pre-sent cyclically. If the report data is not received within a preset time, the pre-sent operation of the static data is stopped.
[0116] Applying the embodiments of this disclosure, the DPU-based order reporting device, upon receiving static data sent according to a preset order reporting protocol, pre-sends the static data to the transaction network port, and then sends the order reporting data to the transaction network port according to the timing of receiving the order reporting data. Since the static data represents the header information of the current transaction order, and the order reporting data is the business data transmitted for each transaction order, by pre-sending the header information of the current transaction order to the transaction network port and then sending the order reporting data according to the timing of receiving the order reporting data, the latency of the order reporting link can be reduced from receiving the order reporting data to the complete transmission of the entire transaction order, achieving extremely fast order reporting.
[0117] For specific limitations regarding the DPU-based order processing device, please refer to the limitations of the DPU-based order processing method above, which will not be repeated here. Each module in the aforementioned DPU-based order processing device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the electronic device's processor in hardware form, or stored in the electronic device's processor in software form, so that the processor can call and execute the corresponding operations of each module.
[0118] This disclosure also provides an electronic device. Figure 4 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Figure 4As shown, the electronic device provided in this embodiment includes a memory 41 and a processor 42. The memory 41 is used to store computer programs; the processor 42 is used to execute the steps of any embodiment of the DPU-based order placement method provided in the above method embodiments when the computer program is invoked. The electronic device includes a processor, a memory, a communication interface, a display screen, and an input device connected via a system bus. The processor of the electronic device provides computing and control capabilities. The memory of the electronic device includes a non-volatile storage medium and internal memory. The non-volatile storage medium stores an operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage medium. When the computer program is executed by the processor, it implements a DPU-based order placement method. The display screen of the electronic device can be a liquid crystal display screen or an electronic ink display screen. The input device of the electronic device can be a touch layer covering the display screen, or buttons, a trackball, or a touchpad provided on the casing of a computer device, or an external keyboard, touchpad, or mouse, etc.
[0119] Those skilled in the art will understand that Figure 4 The structure shown is merely a block diagram of a portion of the structure related to the present disclosure and does not constitute a limitation on the computer device to which the present disclosure is applied. Specific electronic devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0120] In one embodiment, the DPU-based order processing device provided in this disclosure can be implemented as a computer, and the computer program can be used in, for example... Figure 4 The electronic device shown operates on this device. The memory of the electronic device can store the various program modules that make up the DPU-based order processing unit of the electronic device.
[0121] This disclosure also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the DPU-based order reporting method provided in the above-described method embodiments.
[0122] Those skilled in the art will understand that embodiments of this disclosure can be provided as methods, systems, or computer program products. Therefore, this disclosure can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this disclosure can take the form of a computer program product embodied on one or more computer-usable storage media containing computer-usable program code.
[0123] The processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor can be a microprocessor or any conventional processor.
[0124] Memory may include non-persistent memory in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, like read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0125] Computer-readable media include both permanent and non-permanent, removable and non-removable storage media. Storage media can store information using any method or technology; the information can be computer-readable instructions, data structures, program modules, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media do not include transient computer-readable media, such as modulated data signals and carrier waves.
[0126] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0127] The above description is merely a specific embodiment of this disclosure, enabling those skilled in the art to understand or implement it. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not to be limited to the embodiments described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A DPU-based order placement method, characterized in that, The method includes: When static data based on a preset order reporting protocol is received, the static data is sent to the transaction network port in advance; the static data is used to represent the header information of the current transaction order, and the static data includes Ethernet frame header data, IP header data, preset order reporting protocol header data, and message header data; Depending on the timing of receiving the order data, the order data is sent to the transaction network interface; the order data is the business data transmitted for each transaction order, and the order data includes the financial product code of the transaction, the transaction direction, the transaction quantity, the price, the time of order generation, the order ID, and the order validity period; The static data and the order data together constitute the transaction order. The step of sending the order data to the transaction network interface according to the timing of receiving the order data includes: If the static data has been sent and the order data has not been received, the static data is discarded.
2. The method according to claim 1, characterized in that, The step of sending the order data to the transaction network port according to the timing of receiving the order data also includes: If the order data is received during the last clock cycle of sending the static data, the order data will be sent to the transaction network port starting from the next clock cycle.
3. The method according to claim 1, characterized in that, The step of sending the order data to the transaction network port according to the timing of receiving the order data also includes: If the order data is received during the process of sending the static data, the order data is cached in the first-in-first-out queue; Once the static data has been sent, the order data will be sent to the transaction network port.
4. The method according to claim 1, characterized in that, The method further includes: Starting from the next clock cycle, the static data is pre-sent cyclically until the order data is received, at which point the order data is sent to the transaction network port.
5. The method according to claim 4, characterized in that, The step of cyclically pre-sending the static data starting from the next clock cycle includes: Starting from the next clock cycle, the static data is pre-sent cyclically. When the number of times the static data is sent exceeds a preset number, the pre-sending operation of the static data is stopped.
6. The method according to claim 4, characterized in that, The step of cyclically pre-sending the static data starting from the next clock cycle further includes: Starting from the next clock cycle, the static data is pre-sent cyclically. If the report data is not received within a preset time, the pre-sent operation of the static data is stopped.
7. A DPU-based order processing device, characterized in that, include: The pre-send module is used to send the static data to the transaction network port in advance when static data based on a preset order protocol is received; The static data is used to represent the header information of the current transaction order. The static data includes Ethernet frame header data, IP header data, preset order protocol header data, and message header data. The decision module is used to send the order data to the transaction network port according to the timing of receiving the order data; the order data is the business data transmitted for each transaction order, and the order data includes the financial product code of the transaction, the transaction direction, the transaction quantity, the price, the time of order generation, the order ID, and the order validity period; The static data and the order data together constitute the transaction order. The step of sending the order data to the transaction network interface according to the timing of receiving the order data includes: If the static data has been sent and the order data has not been received, the static data is discarded.
8. An electronic device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the DPU-based order reporting method according to any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that, It stores a computer program, which, when executed by a processor, implements the DPU-based order reporting method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Method and device for sending fragmented message
CN112968844A
Data transmission method and related device
CN116095197A