A data transmission method, apparatus, device and medium
By receiving queuing information and generating port tags in a multi-core processor, and using the arbitration management unit for data packet transmission, the problem of communication congestion in multi-core processors is solved, and efficient data management and flow control are achieved.
Patent Information
- Application Number
- CN202510163683.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-14
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2045-02-14
AI Technical Summary
As the number of cores in multi-core processors increases, traditional information management mechanisms can no longer meet business needs, leading to communication congestion and latency issues.
By receiving enqueue information and comparing it with the remaining space of the cache management unit, port information tags are generated. Data packets are transmitted using the arbitration management unit, and parallel arbitration and data backpressure mechanisms are adopted to control data flow and avoid communication system congestion.
Effective data transmission management avoids congestion and delays in the communication system, improving the efficiency and reliability of inter-core communication.
Smart Images

Figure CN119668902B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of data processing, and particularly relates to a data transmission method and device, equipment and medium. BACKGROUND
[0002] At present, with the development of electronic information technology, multi-core processors gradually replace single-core processors, and multi-core processors become the design mainstream of system on chip (SOC). Each core in the multi-core processor is responsible for a specific task, such as logical operation, peripheral scheduling or algorithm acceleration. With the increase of the number of integrated circuit cores, the amount of inter-core communication data is greatly improved. The traditional information management mechanism cannot meet the business requirements and is prone to communication congestion. SUMMARY
[0003] In order to overcome the above technical defects, the purpose of the present application is to provide a data transmission method, device, equipment and medium. The method comprises: receiving any one of the enqueued information of the originating processor core and the occupied memory value of the enqueued information; comparing the enqueued information occupied memory value of the originating processor core with the remaining space corresponding to the originating processor core in the cache management unit; in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueued information, performing data physical enqueuing; generating the port information tag of the originating processor core according to the enqueued information of the originating processor core; setting the arbiter corresponding to the arbitration management unit and the target processor core as the target arbiter; generating any one of the dequeued information of the target processor core according to the port information tag of the originating processor core; judging the remaining space of the data dequeued cache queue corresponding to the target processor core; in response to the remaining space of the data dequeued cache queue corresponding to the target processor core being not full and the cache area of the originating processor core existing any one of the dequeued information to be sent to the target processor core, storing any one of the dequeued information of the target processor core to the message queue pool through the target arbiter, and performing data physical dequeuing; generating a dequeued request queue through the dequeued request of each port of the message queue pool, and performing grouped transmission of the data. The present application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of the communication system.
[0004] The specific technical solutions provided by the embodiments of the present application are as follows:
[0005] In a first aspect, the present application provides a data transmission method. The method is applied to a multi-core data transmission system, the system comprising a message queue pool, a cache management unit and an arbitration management unit. The message queue pool comprises a plurality of queues, and the arbitration management unit comprises a plurality of arbiters. The method comprises:
[0006] receiving any one piece of enqueuing information of the originating processor core and an occupied memory value of the enqueuing information;
[0007] comparing the occupied memory value of the enqueuing information of the originating processor core with a remaining space corresponding to the originating processor core in the cache management unit;
[0008] in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueuing information, performing data physical enqueuing;
[0009] generating port information tags of the originating processor core according to the enqueuing information of the originating processor core;
[0010] setting an arbitrator corresponding to a target processor core in the arbitration management unit as a target arbitrator;
[0011] generating any one piece of dequeuing information of a target processor core according to the port information tags of the originating processor core;
[0012] judging a data dequeuing cache queue remaining space corresponding to the target processor core;
[0013] in response to the data dequeuing cache queue remaining space corresponding to the target processor core being not full and the cache area of the originating processor core existing any one piece of enqueuing information to be sent to the target processor core, storing the any one piece of dequeuing information of the target processor core to a message queue pool through the target arbitrator, and performing data physical dequeuing;
[0014] generating a dequeuing request queue through dequeuing request of each port of the message queue pool, and performing packet transmission on the data.
[0015] In one embodiment, before the receiving any one piece of enqueuing information of the originating processor core and the occupied memory value of the enqueuing information, the method further comprises:
[0016] obtaining a data frame of the originating processor core, the data frame comprising a data transmission target processor core ID address, a data message ID, a data message priority, and a data frame head and tail flag;
[0017] determining the enqueuing information of the originating processor core through the data message ID;
[0018] determining the occupied memory value of the enqueuing information through the data frame head and tail flag;
[0019] and grouping and storing the enqueuing information of the originating processor core and the occupied memory value of the enqueuing information.
[0020] In one of the embodiments, the method comprises:
[0021] In response to the remaining space corresponding to the originating processor core in the cache management unit being less than the occupied memory value of the enqueued information, stopping receiving the enqueued information of the originating processor core and performing data enqueuing back pressure.
[0022] In one of the embodiments, the method comprises:
[0023] In response to the data dequeuing cache queue space corresponding to the target processor core being full or the cache area of the originating processor core not having any dequeued information to be sent to the target processor core, re-sending a dequeuing request to the message queue pool.
[0024] In one of the embodiments, the dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the data is grouped and transmitted, comprising:
[0025] The dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the dequeuing request queue is stored separately;
[0026] When the storage space of the dequeuing cache queue is not full, the dequeuing request queue is stored in the corresponding dequeuing cache queue, and the data is grouped and transmitted.
[0027] In one of the embodiments, after the dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the data is grouped and transmitted, comprising:
[0028] The cache management unit initializes the port information tag of the originating processor core according to the dequeued information of the target processor core, and updates the remaining storage space of the cache area of the cache management unit.
[0029] In one of the embodiments, the dequeued information of the target processor core is stored to the message queue pool by the target arbitrator, and the data is physically dequeued, comprising:
[0030] The priority of the dequeued information of the target processor core is determined by the target arbitrator;
[0031] The priority level of the dequeued information is determined according to the network application type of the dequeued information of the target processor core, wherein the network application type includes voice over internet protocol, video stream, electronic mail and web browsing;
[0032] The dequeued information of the target processor core is stored to the message queue pool according to the priority level of the dequeued information, and the data is physically dequeued.
[0033] The storing of the de-queue information of the target processor core to the message queue pool by the target arbiter to perform data physical de-queue further comprises:
[0034] The target arbiter determines a time sequence scheduling strategy of the de-queue information to the target processor core;
[0035] The de-queue information is distributed to different queues according to the time sequence priority of the de-queue information, and the de-queue information that reaches the target processor core first is processed preferentially and stored to the message queue pool to perform data physical de-queue;
[0036] When the de-queue information priority level strategy and the time sequence scheduling strategy are determined by the network application type of the de-queue information, the target arbiter stores the de-queue information of the target processor core to the message queue pool to perform data physical de-queue preferentially by the time sequence scheduling strategy.
[0037] In a second aspect, the application further provides a data transmission device, which is applied to a multi-core data transmission system, the system comprising a message queue pool, a cache management unit and an arbitration management unit; the message queue pool comprises a plurality of queues, the arbitration management unit comprises a plurality of arbiters, and the device comprises:
[0038] A receiving module is configured to receive any one piece of in-queue information of an originating processor core and an occupied memory value of the in-queue information;
[0039] A comparison module is configured to compare the occupied memory value of the in-queue information of the originating processor core with a remaining space corresponding to the originating processor core in the cache management unit;
[0040] A first execution module is configured to perform data physical in-queue in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the in-queue information;
[0041] A generating module is configured to generate port information tags of the originating processor core according to the in-queue information of the originating processor core, and to generate any one piece of de-queue information of a target processor core according to the de-queue request of the target arbiter and the port information tags of the originating processor core;
[0042] A setting module is configured to set an arbiter corresponding to the target processor core in the arbitration management unit as a target arbiter;
[0043] A judging module is configured to judge a remaining space of a data de-queue cache queue corresponding to the target processor core;
[0044] a second execution module, configured to, in response to the remaining space of the data dequeue buffer queue corresponding to the target processor core being not full and the buffer area of the originating processor core having any piece of dequeue information to be sent to the target processor core, store any piece of dequeue information of the target processor core to a message queue pool through the target arbiter, and perform data physical dequeue;
[0045] a transmission module, configured to generate a dequeue request queue through a dequeue request of each port of the message queue pool, and perform packet transmission on the data.
[0046] In a third aspect, a data transmission apparatus is also provided, comprising:
[0047] one or more processors;
[0048] a storage apparatus configured to store one or more programs;
[0049] When the one or more programs are executed by the one or more processors, the one or more processors implement the data transmission method according to any one of the first aspect.
[0050] In a fourth aspect, a computer device is also provided, comprising:
[0051] a memory, a processor, and a computer program stored in the memory, wherein the processor executes the computer program to implement the steps of the data transmission method according to any one of the first aspect.
[0052] In a fifth aspect, a computer program product is also provided, comprising a computer program which, when executed by a processor, implements the steps of the data transmission method according to any one of the first aspect.
[0053] In a sixth aspect, a computer storage medium is also provided, comprising:
[0054] a computer program stored thereon, which, when executed by a processor, implements the steps of the data transmission method according to any one of the first aspect.
[0055] Compared with the prior art, the method provided by the technical scheme of the embodiment of the application comprises the following steps: receiving any one of the enqueuing information of an originating processor core and the occupied memory value of the enqueuing information; comparing the occupied memory value of the enqueuing information of the originating processor core with the remaining space corresponding to the originating processor core in the cache management unit; in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueuing information, performing data physical enqueuing; generating the port information tag of the originating processor core according to the enqueuing information of the originating processor core; setting the arbiter corresponding to the target processor core in the arbitration management unit as a target arbiter; determining the dequeuing request through the target arbiter, generating any one of the dequeuing information of the target processor core according to the port information tag of the originating processor core; judging the remaining space of the data dequeuing cache queue corresponding to the target processor core; in response to the remaining space of the data dequeuing cache queue corresponding to the target processor core not being full and the cache area of the originating processor core having any one of the dequeuing information to be sent to the target processor core, storing any one of the dequeuing information of the target processor core to the message queue pool through the target arbiter, and performing data physical dequeuing; and performing grouped transmission of the data through the dequeuing request queue of each port of the message queue pool. The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of the communication system.
[0056] The technical scheme provided by the embodiment of the application solves the head blocking caused by the multi-port mounting single bus by extracting the enqueuing information to group and cache the information and using the parallel arbitration mode to dequeue the queue message. Meanwhile, the data back pressure mode is used in the data processing process to control the data flow in the port blocking, and the problem of data loss caused by the fact that the back pressure information cannot be timely fed back to the upstream is solved.
[0057] The technical scheme provided by the embodiment of the application provides a kind of inter-core communication data grouping scheduling mechanism suitable for kernel heterogeneous scene, and the versatility of data transmission device is increased by the flexible configuration of the number of queue ports and cache area size. BRIEF DESCRIPTION OF DRAWINGS
[0058] In order to more clearly illustrate the technical solutions in the embodiments of the application, the following will briefly introduce the drawings needed to be used in the embodiment description. Obviously, the drawings in the following description are only some embodiments of the application, and other drawings can also be obtained by those skilled in the art without creative labor.
[0059] Figure 1 The first structure diagram of the data transmission system provided by the embodiment of the application;
[0060] Figure 2 A second structural diagram of a data transmission system provided for Embodiment One of the present application is provided.
[0061] Figure 3 A first flowchart of a data transmission method provided for Embodiment One of the present application is provided.
[0062] Figure 4 A second flowchart of a data transmission method provided for Embodiment Two of the present application is provided.
[0063] Figure 5 A specific flowchart of a data transmission method provided for Embodiment Two of the present application is provided.
[0064] Figure 6 A structural diagram of a data transmission device provided for Embodiment Three of the present application is provided.
[0065] Figure 7 An exemplary system that can be used to implement various embodiments described herein is provided for Embodiment Seven of the present application. DETAILED DESCRIPTION
[0066] In order to make the objectives, technical solutions and advantages of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of protection of the present application.
[0067] It should be noted that, unless the context clearly requires otherwise, throughout the description and the claims of this specification the word "comprise", and variations such as "comprises" or "comprising", will be understood to imply the inclusion of a stated integer or group of integers but not the exclusion of any other integer or group of integers. In other words, the term "comprises" should be construed as meaning "including but not limited to".
[0068] In addition, in the description of the present application, the meaning of "multiple" is two or more, unless otherwise specified.
[0069] With the increase of the number of processor cores, the amount of inter-core communication data increases significantly. How to efficiently and quickly group and sort inter-core information to ensure communication efficiency becomes crucial.
[0070] Here, the queue management module technology can effectively manage the queuing and transmission of data packets, control data flow in congestion, and avoid blocking and delay of the communication system.
[0071] Embodiment One
[0072] The embodiments of the present application provide a data transmission method, such as Figure 1 ,2 The method shown in Fig. 3 is applied to a multi-core data transmission system, the system comprising a message queue pool, a cache management unit and an arbitration management unit; the message queue pool comprises a plurality of queues, the arbitration management unit comprises a plurality of arbitrators, and the method comprises:
[0073] receiving any one piece of enqueuing information of an originating processor core and an occupied memory value of the enqueuing information;
[0074] comparing the occupied memory value of the enqueuing information of the originating processor core with a remaining space corresponding to the originating processor core in the cache management unit;
[0075] in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueuing information, performing data physical enqueuing;
[0076] generating port information tags of the originating processor core according to the enqueuing information of the originating processor core;
[0077] setting an arbitrator corresponding to a target processor core in the arbitration management unit as a target arbitrator;
[0078] determining a dequeuing request through the target arbitrator, and generating any one piece of dequeuing information of a target processor core according to the port information tags of the originating processor core;
[0079] judging a data dequeuing cache queue remaining space corresponding to the target processor core;
[0080] in response to the data dequeuing cache queue remaining space corresponding to the target processor core being not full and the cache area of the originating processor core having any one piece of dequeuing information to be sent to the target processor core, storing the any one piece of dequeuing information of the target processor core to the message queue pool through the target arbitrator, and performing data physical dequeuing;
[0081] generating a dequeuing request queue through dequeuing requests of each port of the message queue pool, and performing grouped transmission of the data.
[0082] Specifically, the application provides a method suitable for inter-core communication data grouping scheduling, which groups and caches data through extraction of enqueuing information, and performs dequeuing of queue messages in a parallel arbitration manner, thereby solving the head-of-line blocking caused by multi-port mounting of a single bus; meanwhile, a data back pressure manner is used in the data processing flow to control the data loss problem caused by the fact that back pressure information cannot be timely fed back to the upstream when the data flow is blocked at a port.
[0083] Enqueuing management:
[0084] According to the input data frame and the sending address, corresponding enqueue information is extracted, and the enqueue information is grouped and temporarily stored.
[0085] Cache management:
[0086] The cache management mainly includes a message cache and a cache scheduling module.
[0087] The message cache is used for maintaining idle cache space information and allocating a cache address for the enqueue when needed.
[0088] The cache scheduling is used for adjusting the position of the input message in the message cache area.
[0089] Arbitration management:
[0090] The arbitration management mainly includes a parallel arbitration and an enqueue cache module; the arbitrator reads the request to be dequeued in the enqueue request cache queue, obtains the address of the information in the cache queue from the cache management module according to the request, obtains the actual dequeued message from the cache module according to the address, and stores the message in the enqueue cache module to complete the logical dequeue.
[0091] Dequeue management:
[0092] The dequeue management includes generating a dequeue request and a dequeue request cache queue; the dequeue request is generated according to the empty-full state of the data buffer memory area of the lower-level port, and is stored in the dequeue request cache queue; when the physical dequeue is completed according to the parallel arbitration result, the data in the cache module is updated.
[0093] In the core in the Figure 2 The core refers to a processor core.
[0094] The technical scheme provided by the embodiment of the application has the following beneficial effects:
[0095] The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of the communication system.
[0096] The technical scheme provided by the embodiment of the application extracts enqueue information to group and cache information, and uses a parallel arbitration method to dequeue the queue message, solves the head-of-line blocking caused by the multi-port mounting single bus; at the same time, the data back pressure method is used in the data processing process to control the data flow in the port blocking, and solves the problem of data loss caused by the fact that the back pressure information cannot be fed back to the upstream in time.
[0097] The technical scheme provided by the embodiment of the application provides a core-to-core communication data grouping scheduling mechanism suitable for a heterogeneous core scene, and increases the versatility of the data transmission device through flexible configuration of the number of queue ports and the size of the cache area.
[0098] Embodiment two
[0099] The embodiment of the present application provides a data transmission method, which comprises Figure 4 As shown in the figure, the method is applied to a multi-core data transmission system, the system comprises a message queue pool, a cache management unit and an arbitration management unit; the message queue pool comprises a plurality of queues, the arbitration management unit comprises a plurality of arbitrators, and the method comprises the following steps:
[0100] Step S01, acquiring a data frame of an originating processor core, wherein the data frame comprises a data transmission target processor core ID address, a data message ID, a data message priority and a data frame head and tail flag;
[0101] The data message ID is used to determine the enqueuing information of the originating processor core;
[0102] The data frame head and tail flag is used to determine the occupied memory value of the enqueuing information;
[0103] The enqueuing information of the originating processor core and the occupied memory value of the enqueuing information are grouped and stored.
[0104] Specifically, the corresponding enqueuing information is extracted according to the input data frame and the address, and the information is temporarily stored;
[0105] In a multi-core communication system, a multi-core system inputs a message frame into a grouping system through a bus, and the data frame usually comprises a target core corresponding address ID of data, a message ID, a message priority, data bits and a frame tail flag; the address ID is used to determine the core from which the message comes.
[0106] The enqueuing information can be extracted through the target core corresponding address ID, the memory size of the data frame is obtained through the data frame head and tail, and the data is grouped and temporarily stored.
[0107] Step S02, receiving any enqueuing information of an originating processor core and an occupied memory value of the enqueuing information;
[0108] The enqueuing information occupied memory value of the originating processor core is compared with the remaining space corresponding to the originating processor core in the cache management unit;
[0109] In response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueuing information, data physical enqueuing is performed.
[0110] Specifically, the enqueuing information is read, the enqueuing information is compared with the current state in the cache management module, the logical enqueuing result of the data frame is determined, and physical enqueuing or enqueuing side data back pressure is performed according to the result.
[0111] By comparing the enqueuing information with the memory state of the corresponding cache area in the cache management space, when the remaining space of the cache area meets the data frame enqueuing demand, the temporarily stored data frame is written into the cache area to realize physical enqueuing.
[0112] Step S02 further includes:
[0113] Step S021, in response to the remaining space corresponding to the originating processor core in the cache management unit being less than the occupied memory value of the enqueuing information, the enqueuing information of the originating processor core is stopped to be received, and data enqueuing back pressure is performed.
[0114] Specifically, for example: when the kernel core0 (originating processor core) sends a message message0, the target core is core1 (target processor core), and the data size is 16KB. When the message0 is cached, it is compared with the remaining space of the cache area corresponding to core0 in the cache management module. If the remaining space is 32KB, it can be normally cached. If the remaining space is only 4KB, the remaining space is not enough, and space release is needed, and data back pressure is needed, that is, the subsequent message sent by core0 is stopped.
[0115] Step S03, generating a port information tag of the originating processor core according to the enqueuing information of the originating processor core;
[0116] The arbiter corresponding to the target processor core in the arbitration management unit is set as a target arbiter;
[0117] The de-queuing request is determined through the target arbiter, and any de-queuing information of the target processor core is generated according to the port information tag of the originating processor core.
[0118] Specifically, while the message is physically enqueued, the port information tag is generated through the enqueuing information of the originating processor core. Similarly, when the originating processor core core0 sends a message message0, the target processor core is core1, and the data size is 16KB. When the message0 is physically enqueued successfully, the data tag of the occupied area of the cache area of the kernel core0 is updated to the tag label1, corresponding to core1. When the cache area of core0 has multiple messages, multiple data tags label1, label2, labelN, etc. will exist.
[0119] Step S04, judging the remaining space of the data de-queuing cache queue corresponding to the target processor core;
[0120] In response to the fact that the data de-queue buffer queue corresponding to the target processor core is not full and the buffer area of the originating processor core has any de-queue information to be sent to the target processor core, the target arbiter stores any de-queue information of the target processor core into a message queue pool, and performs data physical de-queue.
[0121] Specifically, the arbiter of the arbitration management unit selects de-queue requests of each queue, reads corresponding de-queue information according to the queue port information tag, and completes logical de-queue; the arbiter determines whether to perform physical de-queue according to the empty / full confirmation of the de-queue buffer queue, and after confirming that physical de-queue is possible, the arbiter puts the de-queue information into the de-queue buffer queue.
[0122] Here, each queue matches the same number of arbiters according to the number of connection ports, and parallel processing is performed when processing de-queue requests of each port.
[0123] For example, core0 interacts with three other cores (core1 / 2 / 3), and the arbitration management module of core0 has three arbiters that process data read requests from core1 / 2 / 3; if the data receiving queue corresponding to core1 is not full and the buffer area of core0 has a message to be sent to core1, a de-queue request with a label of label2 will be generated, logical de-queue is realized; the arbiter reads the corresponding message to the de-queue buffer queue according to the de-queue label, and completes physical de-queue; when the bus issues a data read command of core1, the message in the de-queue buffer area is read to the data receiving queue of core1.
[0124] Step S04 further includes:
[0125] Step S041, in response to the fact that the data de-queue buffer queue corresponding to the target processor core is full or the buffer area of the originating processor core has no de-queue information to be sent to the target processor core, the de-queue request is sent to the message queue pool again.
[0126] Step S05, generate a de-queue request queue through de-queue requests of each port of the message queue pool, and perform packet transmission on the data.
[0127] Step S05 further includes:
[0128] Step S051, generate a de-queue request queue through de-queue requests of each port of the message queue pool, and store the de-queue request queue separately;
[0129] When the storage space of the dequeue buffer queue is not full, the dequeue request queue is stored in the corresponding dequeue buffer queue, and the data is grouped and transmitted.
[0130] Specifically, the dequeue management module generates a dequeue request according to the state of the data receiving queue of different ports, and separately stores the dequeue request.
[0131] The dequeue request is stored according to the state of the data receiving queue of different ports, and when the space of the data receiving queue is not full, a dequeue request is sent, and the dequeue requests of different ports constitute a dequeue request queue.
[0132] In step S06, the cache management unit initializes the port information tag of the originating processor core according to the dequeue information of the target processor core, and updates the remaining storage space of the cache management unit cache area.
[0133] Specifically, the cache management module updates the port information tag and the queue cache state information according to the physical dequeue information.
[0134] When the message0 of the label label1 in the core0 cache area is completed, the cache management module needs to restore the label corresponding to the area to the default value, and update the remaining state of the cache area space.
[0135] In step S07, the target arbitrator stores any one of the dequeue information of the target processor core to the message queue pool to execute data physical dequeue, including:
[0136] The target arbitrator determines the priority of the dequeue information of the target processor core.
[0137] According to the network application type of the target processor core dequeue information, the priority level of the dequeue information is determined, wherein the network application type includes voice over internet protocol, video stream, electronic mail and web browsing.
[0138] According to the priority level of the dequeue information, the dequeue information of the target processor core is stored to the message queue pool to execute data physical dequeue.
[0139] The target arbitrator stores any one of the dequeue information of the target processor core to the message queue pool to execute data physical dequeue, further including:
[0140] The target arbitrator determines the time sequence scheduling strategy of the dequeue information to the target processor core.
[0141] The dequeuing information is assigned to different queues according to the time sequence priority of the dequeuing information, the dequeuing information of the target processor core is preferentially processed, and is stored to the message queue pool to execute the data physical dequeuing;
[0142] When the dequeuing information priority level strategy and the time sequence scheduling strategy appear at the same time through the network application type of the dequeuing information, the target arbiter preferentially stores the dequeuing information of the target processor core to the message queue pool through the time sequence scheduling strategy to execute the data physical dequeuing.
[0143] Specifically, the data priority allocation:
[0144] Firstly, different priority levels need to be defined according to the importance or urgency of the data; for example, real-time voice communication is given the highest priority, and file download has a lower priority;
[0145] Different types of network applications have different requirements for delay and bandwidth; for example, real-time applications such as Voice over Internet Protocol (VoIP) and video streaming usually require high priority to reduce delay; while email or web browsing can accept slightly higher delay, and can be assigned a lower priority;
[0146] Network conditions and user needs may change over time, and mechanisms need to be established to dynamically adjust the priority of data packets according to actual conditions;
[0147] Scheduling algorithm selection:
[0148] Processing according to the order of data packet arrival;
[0149] Classifying data packets according to their priority into different queues, and preferentially processing data packets in high-priority queues; this method can effectively guarantee the rapid transmission of important data, but may cause low-priority data packets to be indefinitely delayed;
[0150] Combining priority queues and fairness principles, a certain weight is assigned to each priority to ensure that all data packets can obtain a certain degree of service, while giving higher priority data packets more bandwidth;
[0151] When network congestion is about to occur, RED discards some data packets in advance to avoid complete congestion;
[0152] Different types or priorities of data packets are assigned to different physical or logical queues, each queue can independently configure different scheduling strategies, thereby achieving more fine-grained flow control.
[0153] Here, RED (Random Early Detection) is a random early detection algorithm.
[0154] As Figure 5 shown, the application extracts corresponding enqueue information according to input data frames and addresses, and temporarily stores the information;
[0155] Reads the enqueue information, judges the enqueue information and the current state in the cache management module, determines the logical enqueue result of the data frame, and executes physical enqueue or enqueue side back pressure according to the result;
[0156] When the message is physically enqueued, the port information tag is generated through the enqueue information;
[0157] The dequeue management module generates dequeue requests according to the state of the secondary cache of different ports, and separately stores the dequeue requests;
[0158] The parallel arbiter selects the dequeue requests of each queue, reads the corresponding dequeue information according to the port information tag, and completes logical dequeue; the arbiter confirms whether to perform physical dequeue according to the empty / full state of the dequeue cache queue, and after confirming that it can be dequeued, puts the dequeue information into the dequeue cache queue;
[0159] The cache management module updates the port information tag and the queue cache state information according to the physical dequeue information.
[0160] In addition, the arbiter includes a polling arbiter and a credit-based arbiter, and the target arbiter stores any one dequeue information of the target processor core into the message queue pool to execute data physical dequeue, and further includes:
[0161] The polling arbiter determines the scheduling strategy of the dequeue information reaching the target processor core;
[0162] The polling arbiter checks the request state of each dequeue information to determine the dequeue request information;
[0163] When it is determined that the dequeue request needs to be transmitted, the polling arbiter grants the current communication right to the dequeue information, and transmits the data of the dequeue information through the shared resource;
[0164] The time slice is set to control the dequeue duration of the dequeue information;
[0165] And according to the change of system load, dynamically adjust the polling interval and the length of the time slice;
[0166] The dequeue information of the target processor core is stored into the message queue pool to execute data physical dequeue;
[0167] The target arbiter stores any one dequeue information of the target processor core into the message queue pool to execute data physical dequeue, and further includes:
[0168] determining a scheduling policy of the de-queue information reaching the target processor core through the credit-based arbiter;
[0169] initializing the credit values of the origin processor core and the target processor core;
[0170] determining whether the credit value of the origin processor core is greater than zero;
[0171] if yes, the origin processor core determines the memory value of sending the de-queue information according to the available credit value;
[0172] storing the de-queue information of the target processor core to the message queue pool, and performing data physical de-queue;
[0173] after the data physical de-queue, updating the credit values of the origin processor core and the target processor core.
[0174] Here, according to the change of system load, the polling interval and the time slice length can be dynamically adjusted to optimize performance. For example, in the case of high load, the time slice may need to be shortened to improve response speed; while in the case of low load, the time slice can be extended to reduce the polling overhead.
[0175] At the same time, through the credit mechanism, network congestion and data overflow can be effectively avoided, and the stability and efficiency of data transmission can be maintained;
[0176] The credit value can be dynamically adjusted according to the network status, and is suitable for different application scenarios;
[0177] The origin processor core will only send data after receiving enough credit value to ensure the correct transmission of data.
[0178] In the design of multi-core processor (SoC), multiple processing cores need to exchange data efficiently, in order to manage and control the communication between these cores, the mechanism of arbiter is used to ensure the effectiveness of data transmission and avoid conflict; that is, effectively using the arbiter to manage the communication between integrated circuit cores, improving the reliability and efficiency of the whole system.
[0179] The method for data transmission provided by the embodiments of the application can be improved and optimized without departing from the technical solutions of the application, and these improvements and optimizations should also be considered as the protection scope of the application.
[0180] The technical solutions provided by the embodiments of the application have the following beneficial effects:
[0181] The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of the communication system.
[0182] The technical scheme provided by the embodiment of the application groups and caches information by extracting the enqueuing information, and adopts a parallel arbitration mode to de-queue the queue message, so as to solve the head-of-line blocking caused by the multi-port mounting single bus; meanwhile, the data back pressure mode is used in the data processing flow to control the data flow at the port blocking, so as to solve the problem of data loss caused by the fact that the back pressure information cannot be fed back to the upstream in time.
[0183] The technical scheme provided by the embodiment of the application provides a kind of inter-core communication data grouping scheduling mechanism suitable for heterogeneous kernel scene, by the flexible configuration of queue port quantity and cache area size, increase the versatility of data transmission device.
[0184] Embodiment three
[0185] The application provides a kind of data transmission device, as shown in Figure 6 The device includes an acquisition module, a receiving module, a comparison module, a first execution module, a generation module, a setting module, a judgment module, a second execution module, a transmission module and a processing module.
[0186] In the embodiment, the receiving module is configured to receive any one enqueuing information of an originating processor core and an occupied memory value of the enqueuing information.
[0187] The comparison module is configured to compare the occupied memory value of the enqueuing information of the originating processor core with a remaining space corresponding to the originating processor core in the cache management unit.
[0188] The first execution module is configured to perform data physical enqueuing in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueuing information.
[0189] The generation module is configured to generate a port information tag of the originating processor core according to the enqueuing information of the originating processor core, determine a de-queue request through the target arbitrator, and generate any one de-queue information of the target processor core according to the port information tag of the originating processor core.
[0190] The setting module is configured to set the arbitrator corresponding to the target processor core in the arbitration management unit as the target arbitrator.
[0191] The judgment module is configured to judge the remaining space of the data de-queue cache queue corresponding to the target processor core.
[0192] a second execution module, configured to, in response to the data out-queue buffer queue of the target processor core not being full and the buffer area of the originating processor core having any out-queue information to be sent to the target processor core, store any out-queue information of the target processor core to a message queue pool through the target arbiter, and perform data physical out-queueing;
[0193] a transmission module, configured to generate an out-queue request queue through an out-queue request of each port of the message queue pool, and perform packet transmission on the data.
[0194] In one of the embodiments, the acquisition module is configured to acquire a data frame of the originating processor core, and the data frame includes a data transmission target processor core ID address, a data message ID, a data message priority, and a data frame header and trailer flag.
[0195] The data message ID is used to determine the in-queue information of the originating processor core.
[0196] The data frame header and trailer flag is used to determine an occupied memory value of the in-queue information.
[0197] The in-queue information of the originating processor core and the occupied memory value of the in-queue information are stored in a group.
[0198] In one of the embodiments, the first execution module is configured to, in response to the remaining space of the originating processor core in the buffer management unit being less than the occupied memory value of the in-queue information, stop receiving the in-queue information of the originating processor core, and perform data in-queue back pressure.
[0199] In one of the embodiments, the second execution module is configured to, in response to the data out-queue buffer queue of the target processor core being full or the buffer area of the originating processor core having no any out-queue information to be sent to the target processor core, re-send an out-queue request to the message queue pool.
[0200] In one of the embodiments, the transmission module is configured to generate an out-queue request queue through an out-queue request of each port of the message queue pool, and separately store the out-queue request queue.
[0201] When the storage space of the out-queue buffer queue is not full, the out-queue request queue is stored in the corresponding out-queue buffer queue, and packet transmission is performed on the data.
[0202] In one of the embodiments, the processing module is configured to initialize a port information tag of the originating processor core according to the out-queue information of the target processor core, and update the remaining storage space of the buffer area of the buffer management unit.
[0203] In one embodiment, a transmission module is configured to determine a priority level of the de-queue information of the target processor core by the target arbitrator;
[0204] The priority level of the de-queue information is determined according to a network application type of the de-queue information of the target processor core, wherein the network application type includes voice over internet protocol, video streaming, email, and web browsing;
[0205] The de-queue information of the target processor core is stored into a message queue pool according to the priority level of the de-queue information, and a data physical de-queue is performed;
[0206] The de-queue information of the target processor core is stored into a message queue pool according to the priority level of the de-queue information, and a data physical de-queue is performed;
[0207] The time sequence scheduling strategy of the de-queue information to the target processor core is determined by the target arbitrator;
[0208] The de-queue information is distributed into different queues according to the time sequence priority of the de-queue information, the de-queue information that reaches the target processor core first is processed preferentially, and is stored into a message queue pool, and a data physical de-queue is performed;
[0209] When the de-queue information priority level strategy and the time sequence scheduling strategy are determined simultaneously according to the network application type of the de-queue information, the de-queue information of the target processor core is stored into a message queue pool by the target arbitrator according to the time sequence scheduling strategy, and a data physical de-queue is performed.
[0210] The technical scheme provided by the embodiments of the present application has the following beneficial effects:
[0211] The present application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of a communication system.
[0212] The technical scheme provided by the embodiments of the present application groups and caches information by extracting de-queue information, and de-queues queue messages in a parallel arbitration manner, thereby solving the head-of-line blocking caused by multi-port mounting of a single bus. Meanwhile, a data back pressure method is used in a data processing flow to control data flow in port blocking, thereby solving the problem of data loss caused by the fact that back pressure information cannot be fed back to an upstream in time.
[0213] The technical scheme provided by the embodiments of the present application provides a kind of inter-core communication data grouping scheduling mechanism suitable for heterogeneous kernel scene, and the versatility of data transmission device is increased by the flexible configuration of queue port quantity and cache area size.
[0214] Embodiment Four
[0215] The application further provides a data transmission device, comprising:
[0216] one or more processors;
[0217] a storage device for storing one or more programs;
[0218] when the one or more programs are executed by the one or more processors, the one or more processors perform the data transmission method described below:
[0219] receiving any one piece of enqueue information of an originating processor core and an occupied memory value of the enqueue information;
[0220] comparing the occupied memory value of the enqueue information of the originating processor core with a remaining space corresponding to the originating processor core in the cache management unit;
[0221] in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueue information, performing data physical enqueue;
[0222] generating port information tags of the originating processor core according to the enqueue information of the originating processor core;
[0223] setting an arbitrator corresponding to a target processor core in the arbitration management unit as a target arbitrator;
[0224] determining an out-of-queue request through the target arbitrator, and generating any one piece of out-of-queue information of a target processor core according to the port information tags of the originating processor core;
[0225] judging a remaining space of a data out-of-queue cache queue corresponding to the target processor core;
[0226] in response to the remaining space of the data out-of-queue cache queue corresponding to the target processor core being not full and the cache area of the originating processor core existing any one piece of out-of-queue information to be sent to the target processor core, storing any one piece of out-of-queue information of the target processor core to a message queue pool through the target arbitrator, and performing data physical out-of-queue;
[0227] generating an out-of-queue request queue through the out-of-queue request of each port of the message queue pool, and performing packet transmission on the data.
[0228] The technical scheme provided by the embodiment of the application has the beneficial effects that:
[0229] The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of a communication system.
[0230] The technical scheme provided by the embodiment of the application groups and caches information by extracting the enqueuing information, and uses a parallel arbitration mode to de-queue the queue message, so as to solve the head-of-line blocking caused by the multi-port mounting single bus; meanwhile, the data back pressure mode is used in the data processing flow to control the data flow at the port blocking, so as to solve the problem of data loss caused by the fact that the back pressure information cannot be fed back to the upstream in time.
[0231] The technical scheme provided by the embodiment of the application provides a kind of inter-core communication data grouping scheduling mechanism suitable for kernel heterogeneous scene, by the flexible configuration of queue port quantity and cache area size, increase the versatility of data transmission device.
[0232] Embodiment five
[0233] The application provides a kind of computer equipment, including memory, processor and the computer program stored on memory and can be run on processor, when processor executes computer program, can execute the following data transmission method:
[0234] Any one enqueuing information of originating processor core and the occupied memory value of enqueuing information are received;
[0235] The enqueuing information occupied memory value of the originating processor core is compared with the residual space corresponding to the originating processor core in the cache management unit;
[0236] In response to the residual space corresponding to the originating processor core in the cache management unit is greater than or equal to the occupied memory value of the enqueuing information, then execute data physical enqueuing;
[0237] The port information tag of the originating processor core is generated according to the enqueuing information of the originating processor core;
[0238] The arbitrator corresponding to target processor core in the arbitration management unit is set as target arbitrator;
[0239] The de-queue request is determined through the target arbitrator, and any one de-queue information of target processor core is generated according to the port information tag of the originating processor core;
[0240] The residual space of data de-queue cache queue corresponding to the target processor core is judged;
[0241] In response to the residual space of data de-queue cache queue corresponding to the target processor core is not full and the cache area of the originating processor core exists any one de-queue information to be sent to the target processor core, then any one de-queue information of the target processor core is stored to message queue pool through the target arbitrator, executes data physical de-queue;
[0242] The de-queuing request queue is generated by de-queuing requests of each port of the message queue pool, and the data is transmitted in groups.
[0243] The technical scheme provided by the embodiments of the application has the following beneficial effects:
[0244] The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of the communication system.
[0245] The technical scheme provided by the embodiments of the application solves the head blocking caused by the multi-port mounting single bus by extracting the enqueuing information to group cache the information and using the parallel arbitration mode to de-queue the queue message. Meanwhile, the data back pressure mode is used in the data processing process to control the data flow in the port blocking, and the problem of data loss caused by the fact that the back pressure information cannot be timely fed back to the upstream is solved.
[0246] The technical scheme provided by the embodiments of the application provides a kind of inter-core communication data grouping scheduling mechanism suitable for heterogeneous kernel scene, by the flexible configuration of queue port quantity and cache area size, the versatility of data transmission device is increased.
[0247] Embodiment six
[0248] The application also provides a computer program product, comprising a computer program, which can implement the following data transmission method when executed by a processor:
[0249] Receiving any one enqueuing information of an originating processor core and an occupied memory value of the enqueuing information;
[0250] Comparing the occupied memory value of the enqueuing information of the originating processor core with the remaining space corresponding to the originating processor core in the cache management unit;
[0251] In response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueuing information, performing data physical enqueuing;
[0252] Generating a port information tag of the originating processor core according to the enqueuing information of the originating processor core;
[0253] Setting an arbitrator corresponding to a target processor core in the arbitration management unit as a target arbitrator;
[0254] Determining a de-queuing request through the target arbitrator, and generating any one de-queuing information of a target processor core according to the port information tag of the originating processor core;
[0255] Judging the remaining space of the data de-queuing cache queue corresponding to the target processor core;
[0256] in response to the fact that the data de-queue buffer queue corresponding to the target processor core is not full of remaining space and the buffer area of the originating processor core has any de-queue information to be sent to the target processor core, storing any de-queue information of the target processor core to a message queue pool through the target arbiter, and performing data physical de-queue;
[0257] generating a de-queue request queue through a de-queue request of each port of the message queue pool, and performing packet transmission on the data.
[0258] The technical scheme provided by the embodiment of the application has the following beneficial effects:
[0259] The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of a communication system.
[0260] The technical scheme provided by the embodiment of the application solves the head-of-line blocking caused by the multi-port mounting single bus by extracting the en-queue information to group and cache the information, and de-queue the queue message in a parallel arbitration manner. Meanwhile, the data back pressure method is used in the data processing process to control the data flow in the port blocking, and the problem of data loss caused by the fact that the back pressure information cannot be timely fed back to the upstream is solved.
[0261] The technical scheme provided by the embodiment of the application provides a kind of inter-core communication data grouping scheduling mechanism suitable for heterogeneous kernel scene, and the versatility of data transmission device is increased by the flexible configuration of queue port quantity and cache area size.
[0262] Embodiment Seven
[0263] The application provides a computer storage medium, including a memory, a processor and a computer program stored on the memory and executable on the processor, and the processor executes the computer program to implement the following steps:
[0264] receiving any en-queue information of the originating processor core and an occupied memory value of the en-queue information;
[0265] comparing the occupied memory value of the en-queue information of the originating processor core with the remaining space corresponding to the originating processor core in the cache management unit;
[0266] in response to the fact that the remaining space corresponding to the originating processor core in the cache management unit is greater than or equal to the occupied memory value of the en-queue information, performing data physical en-queue;
[0267] generating a port information tag of the originating processor core according to the en-queue information of the originating processor core;
[0268] Setting an arbitrator corresponding to the target processor core in the arbitration management unit as a target arbitrator;
[0269] Determining a dequeue request through the target arbitrator, and generating any piece of dequeue information of the target processor core according to the port information tag of the originating processor core;
[0270] Judging the remaining space of the data dequeue cache queue corresponding to the target processor core;
[0271] In response to the fact that the data dequeue cache queue corresponding to the target processor core is not full and the cache area of the originating processor core has any piece of dequeue information to be sent to the target processor core, storing the any piece of dequeue information of the target processor core to a message queue pool through the target arbitrator, and performing data physical dequeue;
[0272] Generating a dequeue request queue through the dequeue request of each port of the message queue pool, and performing packet transmission on the data.
[0273] In one of the embodiments, before the any piece of enqueue information of the originating processor core and the occupied memory value of the enqueue information are received, the method comprises:
[0274] Obtaining a data frame of the originating processor core, wherein the data frame comprises a data transmission target processor core ID address, a data message ID, a data message priority, and a data frame head and tail flag;
[0275] Determining the enqueue information of the originating processor core through the data message ID;
[0276] Determining the occupied memory value of the enqueue information through the data frame head and tail flag;
[0277] And packet storing the enqueue information of the originating processor core and the occupied memory value of the enqueue information.
[0278] In one of the embodiments, the method comprises:
[0279] In response to the fact that the remaining space of the originating processor core in the cache management unit is less than the occupied memory value of the enqueue information, stopping receiving the enqueue information of the originating processor core, and performing data enqueue back pressure.
[0280] In one of the embodiments, the method comprises:
[0281] In response to the fact that the data dequeue cache queue space corresponding to the target processor core is full or the cache area of the originating processor core has no any piece of dequeue information to be sent to the target processor core, re-sending a dequeue request to the message queue pool.
[0282] In one embodiment, the dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the data is grouped and transmitted.
[0283] The dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the dequeuing request queue is stored separately.
[0284] When the storage space of the dequeuing cache queue is not full, the dequeuing request queue is stored in the corresponding dequeuing cache queue, and the data is grouped and transmitted.
[0285] In one embodiment, after the dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the data is grouped and transmitted, the method further comprises:
[0286] The cache management unit initializes the port information tag of the originating processor core according to the dequeuing information of the target processor core, and updates the remaining storage space of the cache area of the cache management unit.
[0287] In one embodiment, the method further comprises:
[0288] The target arbitrator determines the priority of the dequeuing information of the target processor core.
[0289] The priority level of the dequeuing information is determined according to the network application type of the dequeuing information of the target processor core, wherein the network application type includes voice over internet protocol, video streaming, email, and web browsing.
[0290] The dequeuing information of the target processor core is stored in the message queue pool according to the priority level of the dequeuing information, and the physical dequeuing of data is performed.
[0291] The method further comprises:
[0292] The target arbitrator determines the time sequence scheduling strategy of the dequeuing information to the target processor core.
[0293] The dequeuing information is distributed to different queues according to the time sequence priority of the dequeuing information, the dequeuing information that arrives at the target processor core first is processed preferentially, and the dequeuing information is stored in the message queue pool to perform physical dequeuing of data.
[0294] When the de-que information priority level policy and the time sequence scheduling policy determined by the network application type of the de-que information appear simultaneously, the target arbiter preferentially stores the de-que information of the target processor core into the message queue pool according to the time sequence scheduling policy, and executes data physical de-que.
[0295] The application can effectively manage data transmission, control data flow in congestion, and avoid congestion and delay of the communication system.
[0296] Figure 7 An exemplary system that can be used to implement various embodiments described herein is provided for embodiment seven of the application; wherein the NVM in the system is a non-volatile memory; Figure 7
[0297] As shown in FIG. 1, in some embodiments, the system can be used as the above-mentioned device for data transmission in any of the embodiments described herein. In some embodiments, the system can include one or more computer-readable media (e.g., system memory or NVM / storage device) having results and one or more processors (e.g., processor(s)) coupled to the one or more computer-readable media and configured to execute the results to implement modules to perform the actions described herein. Figure 7
[0298] A person of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiments can be completed by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer readable storage medium. When the computer program is executed, it can include the processes of the above-mentioned embodiments. Any reference to memory, storage, database or other medium used in the embodiments provided by the application can include non-volatile and / or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration but not limitation, RAM is available in various forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), Rambus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.
[0299] Any combination of the technical features in the above embodiments can be made, and for the sake of brevity, not all possible combinations are described above, however, as long as the combination of the technical features does not exist in contradiction, it shall be considered within the scope of the present disclosure.
[0300] The above embodiments only express several implementation manners of the present application, and the description is relatively specific and detailed, but it shall not be understood as a limitation on the patent scope of the present application. It shall be pointed out that, for ordinary skilled persons in the art, several modifications and improvements can be made without departing from the concept of the present application, and these shall be within the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the appended claims.
Claims
1. A data transmission method, characterized by, The method is applied to a multi-core data transmission system, the system comprising a message queue pool, a cache management unit and an arbitration management unit; the message queue pool comprises a plurality of queues, the arbitration management unit comprises a plurality of arbitrators, and the arbitrators comprise a polling arbitrator and a credit-based arbitrator; the method comprises: receiving any one of the enqueued information of the originating processor core and the occupied memory value of the enqueued information; comparing the enqueued information of the originating processor core with the remaining space corresponding to the originating processor core in the cache management unit; in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the occupied memory value of the enqueued information, performing physical data enqueuing; generating the port information tag of the originating processor core according to the enqueued information of the originating processor core; setting the arbitrator corresponding to the target processor core in the arbitration management unit as the target arbitrator; generating any one of the dequeued information of the target processor core according to the port information tag of the originating processor core; judging the remaining space of the data dequeued cache queue corresponding to the target processor core; in response to the data dequeued cache queue space corresponding to the target processor core not being full and the cache area of the originating processor core having any one of the dequeued information to be sent to the target processor core, performing the following steps: checking the request state of each dequeued information through the polling arbitrator to determine the dequeued request information; when it is determined that the dequeued request needs to be transmitted, the polling arbitrator grants the current communication right to the dequeued information, and performs data transmission on the dequeued information through the shared resource; setting a time slice to control the dequeued information dequeuing duration; dynamically adjusting the polling interval and the time slice length according to the change of the system load; storing the dequeued information of the target processor core to the message queue pool to perform physical data dequeuing; generating a dequeued request queue through the dequeued request of each port of the message queue pool to perform grouped transmission of data; the step of storing the dequeued information of the target processor core to the message queue pool to perform physical data dequeuing further comprises: determining the scheduling strategy of the dequeued information to the target processor core through the credit-based arbitrator; initializing the credit values of the originating processor core and the target processor core; determining whether the credit value of the originating processor core is greater than zero; if yes, the originating processor core determines the memory value of the dequeued information to be sent according to the available credit value; storing the dequeued information of the target processor core to the message queue pool to perform physical data dequeuing; after the physical data dequeuing, updating the credit values of the originating processor core and the target processor core.
2. The data transmission method of claim 1, wherein, before the step of receiving any one of the enqueued information of the originating processor core and the occupied memory value of the enqueued information, comprising: obtaining the data frame of the originating processor core, the data frame comprising a data transmission target processor core ID address, a data message ID, a data message priority and a data frame header and tail flag; determining the enqueued information of the originating processor core through the data message ID; determining the occupied memory value of the enqueued information through the data frame header and tail flag; and grouping and storing the enqueued information of the originating processor core and the occupied memory value of the enqueued information.
3. The data transmission method of claim 1, wherein, The method comprises: In response to the remaining space corresponding to the originating processor core in the cache management unit being less than the occupied memory value of the enqueued information, stopping receiving the enqueued information of the originating processor core and performing data enqueuing back pressure.
4. The data transmission method of claim 1, wherein, The method comprises: In response to the data dequeuing cache queue space corresponding to the target processor core being full or the cache area of the originating processor core not having any dequeued information to be sent to the target processor core, re-sending a dequeuing request to the message queue pool.
5. The data transmission method of claim 1, wherein, The dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the data is grouped and transmitted, comprising: The dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, and the dequeuing request queue is stored separately; When the storage space of the dequeuing cache queue is not full, the dequeuing request queue is stored in the corresponding dequeuing cache queue, and the data is grouped and transmitted.
6. The data transmission method of claim 1, wherein, After the dequeuing request queue is generated by the dequeuing request of each port of the message queue pool, the data is grouped and transmitted, comprising: The cache management unit initializes the port information tag of the originating processor core according to the dequeued information of the target processor core, and updates the remaining storage space of the cache area of the cache management unit.
7. The data transmission method of claim 1, wherein, The dequeued information of the target processor core is stored in the message queue pool by the target arbitrator, and the data is physically dequeued, comprising: The priority of the dequeued information of the target processor core is determined by the target arbitrator; The priority level of the dequeued information is determined according to the network application type of the target processor core, wherein the network application type includes voice over internet protocol, video stream, electronic mail and web browsing; The dequeued information of the target processor core is stored in the message queue pool according to the priority level of the dequeued information, and the data is physically dequeued; The dequeued information of the target processor core is stored in the message queue pool by the target arbitrator, and the data is physically dequeued, further comprising: The time sequence scheduling strategy of the dequeued information to the target processor core is determined by the target arbitrator; The dequeued information is distributed to different queues according to the time sequence priority of the dequeued information, the dequeued information that arrives at the target processor core first is preferentially processed, and is stored in the message queue pool to perform data physical dequeuing; When the dequeued information priority level strategy and the time sequence scheduling strategy determined by the network application type of the dequeued information appear at the same time, the target arbitrator preferentially stores the dequeued information of the target processor core in the message queue pool according to the time sequence scheduling strategy, and performs data physical dequeuing.
8. A data transmission apparatus for implementing the method of claim 1, characterized by The device is applied to a multi-core data transmission system, the system comprising a message queue pool, a cache management unit and an arbitration management unit; the message queue pool comprises a plurality of queues, the arbitration management unit comprises a plurality of arbitrators, and the device comprises: A receiving module for receiving any one of the enqueued information of the originating processor core and the occupied memory value of the enqueued information; The comparison module is configured to compare the memory occupation value of the enqueuing information of the originating processor core with the remaining space corresponding to the originating processor core in the cache management unit; The first execution module is configured to perform data physical enqueuing in response to the remaining space corresponding to the originating processor core in the cache management unit being greater than or equal to the memory occupation value of the enqueuing information; The generation module is configured to generate a port information tag of the originating processor core according to the enqueuing information of the originating processor core, and generate any one dequeuing information of a target processor core according to the port information tag of the originating processor core; The setting module is configured to set an arbitrator corresponding to the target processor core in the arbitration management unit as a target arbitrator; The judgment module is configured to judge the remaining space of a data dequeuing cache queue corresponding to the target processor core; The second execution module is configured to store any one dequeuing information of the target processor core to a message queue pool through the target arbitrator in response to the data dequeuing cache queue space corresponding to the target processor core being not full and the cache area of the originating processor core having any one dequeuing information to be sent to the target processor core, and perform data physical dequeuing. The transmission module is configured to generate a dequeuing request queue through dequeuing request of each port of the message queue pool, and perform packet transmission on the data.
9. A computer device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, The processor executes the computer program to implement the steps of the data transmission method in any one of claims 1 to 7.
10. A computer-readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement the steps of the data transmission method in any one of claims 1 to 7.
Citation Information
Patent Citations
High-speed data flow aggregation type queue management method and device supporting PFC (Power Factor Correction) protocol
CN117834553A