Broadband satellite-borne switching system for dynamically distributing and sharing multiple queues based on multiple ports
By adopting multi-port dynamic allocation and sharing multi-queue technology in broadband satellite satellite-borne switching systems, dynamically allocating satellite data to appropriate input processing subunits, the problem of low cache space utilization in existing systems is solved and efficient satellites is achieved Data transmission and storage are loaded.
Patent Information
- Application Number
- CN202411391286.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-08
- Publication Date
- 2024-12-27
- Estimated Expiration
- 2044-10-08
AI Technical Summary
The existing broadband satellite-based switching systems cannot effectively and dynamically allocate cache space, resulting in low cache space utilization and cannot meet the needs of large-scale satellite-based data storage and high-speed transmission.
Adopt a broadband satellite satellite-based switch system based on multi-port dynamic allocation and sharing multi-queue. Through the input processing unit and output processing unit, it combines the satellite-based data combination processing module, multi-port dynamic allocation and sharing multi-queue module, data block processing module and queue. The cache scheduling module realizes dynamic allocation and scheduling of data and improves cache utilization.
By dynamically allocating the onboard data to the appropriate input processing subunit for processing, the cache space utilization of the onboard switching system is improved, and the high bandwidth and high-speed onboard data transmission needs are met.
Smart Images

Figure CN119210567A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of broadband satellite onboard switching, and in particular to a broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues. Background Art
[0002] In recent years, with the continuous development of satellite communication systems, the number of broadband satellite nodes has continued to increase, and the amount of data transmitted by onboard links has increased significantly. The onboard link data exchange and transmission capacity is facing challenges. How to achieve reliable and effective onboard data exchange has become a research focus. In broadband satellite onboard switching systems, it is divided into two categories according to the different exchange objects: channelized switching (circuit switching) and packet switching. Channelized switching uses frequency band shifting to achieve exchanges between sub-channels in different beams and frequency bands; packet switching mainly includes asynchronous transfer mode switching and Internet protocol switching, which completes the exchange of user service data in the digital domain;
[0003] The current mainstream onboard data packet switching method is a switching method based on the Crossbar architecture. This method mainly processes multi-port onboard data by combining and storing it in a shared cache area, and then outputs it through a Crossbar cross matrix. With the increasing number of ports and the continuous improvement of onboard data bandwidth, higher requirements are placed on the switching capacity and transmission rate of the onboard switching system. Currently, the onboard storage resources and computing power of broadband satellites are limited and cannot meet the needs of large-scale onboard data storage, which places higher requirements on the cache utilization of the onboard switching method. With the increasing number of broadband satellite nodes, the types of data packet services are also increasing, which places higher requirements on the scheduling algorithm of the onboard switching system. The existing broadband satellite onboard switching system cannot dynamically allocate subsequent cache space, which makes the cache space utilization of the existing onboard switching system low. Summary of the invention
[0004] In view of the deficiencies in the prior art, the present invention provides a broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues, which solves the problems in the prior art.
[0005] According to an embodiment of the present invention, a broadband satellite onboard switching system based on multi-port dynamic allocation sharing of multiple queues includes:
[0006] An input processing unit, used for receiving satellite data from multiple ports and performing cache scheduling on the satellite data;
[0007] The output processing unit is used to receive the output data of the input processing unit and transmit it to the corresponding port for output;
[0008] The input processing unit includes several input processing sub-units, and the input processing sub-units include: a satellite data combining processing module, a multi-port dynamic allocation shared multi-queue module, a data block processing module and a queue cache scheduling module;
[0009] The satellite data combining processing module is used to obtain the satellite data input from the corresponding port, detect the satellite data, and combine the satellite data of several ports through fair polling;
[0010] The multi-port dynamic allocation shared multi-queue module is used to obtain the cache status and read the onboard data after the onboard data combining processing module, and allocate the onboard data according to the cache status;
[0011] A data block processing module is used to perform block processing and information extraction on the allocated satellite data to obtain satellite data blocks, destination ports and priority information;
[0012] The queue cache scheduling module is used to cache and schedule the satellite data according to the destination port and priority information.
[0013] As an embodiment of the present invention, the satellite-borne data combining processing module includes a plurality of mac_r modules and a fair poller;
[0014] The satellite data combining and processing module performs the following operations:
[0015] The mac_r module obtains the satellite data input from the corresponding port, and performs frame header detection on the satellite data to determine whether the frame header of the satellite data conforms to the preset format; if not, the satellite data is discarded;
[0016] If it is in compliance, perform CRC check and frame length detection on the satellite data to determine whether the CRC check result and data length conform to the preset format; if it is not in compliance, discard the satellite data; if it is in compliance, cache the satellite data in the mac_r module;
[0017] The fair poller reads the satellite data in the mac_r module in turn in a fair polling manner to obtain the combined satellite data.
[0018] As an embodiment of the present invention, a multi-port dynamic allocation shared multi-queue module performs the following operations:
[0019] Read the combined satellite data output from the previous satellite data combining processing module;
[0020] Obtaining the cache status of the data block cache area of the input processing subunit where the multi-port dynamic allocation shared multi-queue module is located, and the idle time of the onboard data combining processing module of other input processing subunits; wherein the cache status includes: unable to continue to store and able to continue to store;
[0021] When there is an input processing subunit whose idle time is greater than a preset idle time, the satellite-borne data is sent to the input processing subunit for processing;
[0022] When there is no input processing subunit whose idle time is greater than the preset idle time, it is determined whether to send the onboard data to other input processing subunits for processing according to the cache status; if the cache status is that it cannot continue to be stored, the onboard data is sent to other input processing subunits for processing; if the cache status is that it can continue to be stored, the onboard data is not sent to other input processing subunits for processing.
[0023] As an embodiment of the present invention, the data block processing module performs the following operations:
[0024] Perform bit width conversion and information extraction on the satellite data to obtain the converted data stream, destination port and priority information;
[0025] The converted data stream is processed into blocks to obtain onboard data blocks.
[0026] As an embodiment of the present invention, a queue cache scheduling module includes: a data block cache area, a multicast counter, a block number queue, a queue scheduling module and a priority queue;
[0027] A block number queue, used to assign block numbers to onboard data blocks input to the queue scheduling module;
[0028] The queue scheduling module is used to control the data block buffer area to cache the received satellite data blocks, and when receiving the read request of the output processing unit, schedule the output of the satellite data blocks;
[0029] The data block buffer is used to store the satellite data blocks, and when receiving the output instruction of the queue scheduling module, it outputs the satellite data block with the corresponding block number;
[0030] The priority queue module is used to store block numbers according to the destination port and priority information. When receiving the output instruction of the queue scheduling module, the block number in a priority queue corresponding to the destination port is selected for output according to the scheduling strategy. Among them, the priority queue module has priority queue groups corresponding to the number of destination ports, and each priority queue group is composed of 8 different priority queues; each priority queue is set with an initial weight value.
[0031] As an embodiment of the present invention, the queue scheduling module performs the following operations:
[0032] When receiving the onboard data block, determining a multicast count value based on the destination port information;
[0033] The control block number queue assigns a block number to each satellite data block, sends the satellite data block to the data block buffer area according to the address corresponding to the block number for storage, sends the assigned block number to the priority queue module for storage, and sends the multicast count value to the multicast counter for storage;
[0034] When receiving the output request of the output processing unit, and at the same time fairly polling the corresponding destination port, obtaining the external input scheduling parameter information, selecting the preset priority queue scheduling algorithm to schedule the stored block number according to the scheduling parameter information, and issuing an output instruction to the data block buffer area, controlling the data block buffer area to output the onboard data block of the corresponding block number;
[0035] The multicast count value corresponding to the block number stored in the multicast counter is controlled to be reduced by 1; wherein, when the multicast count value corresponding to the block number stored in the multicast counter becomes 0, the block number is recycled to the block number queue.
[0036] As an embodiment of the present invention, the scheduling parameter information includes: a first scheduling parameter and a second scheduling parameter; the preset priority queue scheduling algorithm includes: a strict priority and an adaptive weighted scheduling algorithm;
[0037] Obtain external input scheduling parameter information, and select a preset priority queue scheduling algorithm to schedule the stored block number according to the scheduling parameter information, including:
[0038] If the scheduling parameter information is the first scheduling parameter, scheduling the onboard data according to the strict priority algorithm and the priority information;
[0039] If the scheduling parameter information is the second scheduling parameter, the satellite-borne data is scheduled according to an adaptive weighted scheduling algorithm.
[0040] As an embodiment of the present invention, scheduling satellite-borne data according to an adaptive weighted scheduling algorithm includes:
[0041] When there is no priority queue with a weight value of 0 in the priority queue group of the destination port, the priority queue of the destination port is polled until the priority queue outputs a block number, the weight value of the priority queue is reduced by 1, and the polling is stopped; wherein, during the polling process, when the priority queue with a weight value not 0 has no block number, the polling continues to the next priority queue;
[0042] When the priority queue group of the destination port has a priority queue with a weight value of 0, and the priority queue with a weight value other than 0 has a block number, the priority queues of the destination port are polled until a priority queue outputs a block number, and the weight value of the priority queue is reduced by 1; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is not output, and the next priority queue is polled;
[0043] When the priority queue group of the destination port has a priority queue with a weight value of 0, and the priority queue with a weight value of 0 has a block number, and the priority queue with a weight value other than 0 does not have a block number, the priority queues of the destination port are polled until a priority queue outputs a block number, and the weight value of the priority queue remains unchanged; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is output;
[0044] Among them, after the destination port outputs the block number, when an output request is received again, the priority queue of the destination port is polled, starting from the next priority queue of the priority queue that output the block number last time; the priority queue of the destination port is continuously polled until the weight values of all priority queues become 0, and the initial weight value of each priority queue in the next cycle is calculated and updated. The calculation formula is as follows:
[0045]
[0046] Among them, K1 represents the initial weight value of the next cycle, K0 represents the initial weight value of the current cycle, and n represents the number of response output requests after the weight value of the priority queue becomes 0 in one cycle.
[0047] The present invention also provides a broadband satellite onboard switching method based on multi-port dynamic allocation sharing of multiple queues, comprising the following steps:
[0048] Receive satellite data from multiple ports and perform cache scheduling on the satellite data;
[0049] Receive the data after cache scheduling and pass it to the corresponding port for output;
[0050] Receive multi-port satellite data and perform cache scheduling on the satellite data, including:
[0051] Obtain the satellite data input from the corresponding port, and perform detection and combination processing on the satellite data;
[0052] Obtain cache status and read the onboard data after the combining process, and distribute the onboard data according to the cache status;
[0053] Perform block processing and information extraction on the allocated satellite data to obtain satellite data blocks, destination ports and priority information;
[0054] The onboard data is cached and scheduled according to the destination port and priority information.
[0055] A broadband satellite onboard switching device based on multi-port dynamic allocation and sharing of multiple queues is used to implement the above-mentioned broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues.
[0056] Compared with the prior art, the present invention has the following beneficial effects: by dynamically allocating a shared multi-queue module through multiple ports, it is determined whether to allocate the onboard data to other input processing subunits for processing according to the idle time of the onboard data combining processing module of the input processing subunit and the cache status of the data cache area, thereby realizing dynamic allocation of data cache space and improving the cache utilization of the entire onboard switching system. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] Figure 1 It is a structural schematic diagram of an embodiment of the present invention;
[0058] Figure 2 is a schematic structural diagram of an input processing subunit according to another embodiment of the present invention;
[0059] Figure 3 A logical schematic diagram of a multi-queue dynamic allocation module according to another embodiment of the present invention;
[0060] Figure 4 A schematic diagram of the structure of a queue cache scheduling module according to another embodiment of the present invention;
[0061] Figure 5 It is an internal framework diagram of a priority queue module according to another embodiment of the present invention;
[0062] Figure 6 A flowchart of calculating an initial weight value of a priority queue according to another embodiment of the present invention;
[0063] Figure 7 is a schematic diagram of an output processing unit according to another embodiment of the present invention;
[0064] Figure 8 is a schematic diagram of a device according to another embodiment of the present invention;
[0065] Fig. 9 This is a structural principle diagram of Paper 1 involved in the present invention. DETAILED DESCRIPTION
[0066] The technical solution of the present invention is further described below in conjunction with the accompanying drawings and embodiments.
[0067] like Figures 1 to 7 As shown, the embodiment of the present invention proposes a broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues, including:
[0068] An input processing unit, used for receiving satellite data from multiple ports and performing cache scheduling on the satellite data;
[0069] The output processing unit is used to receive the output data of the input processing unit and transmit it to the corresponding port for output;
[0070] The input processing unit includes several input processing sub-units, and the input processing sub-units include: a satellite data combining processing module, a multi-port dynamic allocation shared multi-queue module, a data block processing module and a queue cache scheduling module;
[0071] The satellite data combining processing module is used to obtain the satellite data input from the corresponding port, detect the satellite data, and combine the satellite data of several ports through fair polling;
[0072] The multi-port dynamic allocation shared multi-queue module is used to obtain the cache status and read the onboard data after the onboard data combining processing module, and allocate the onboard data according to the cache status;
[0073] A data block processing module is used to perform block processing and information extraction on the allocated satellite data to obtain satellite data blocks, destination ports and priority information;
[0074] A queue cache scheduling module is used to cache and schedule onboard data according to the destination port and priority information;
[0075] The working principle of the above technical solution: The present invention uses 16-port satellite data exchange as a model to illustrate the embodiment. The design of the present invention is also suitable for 24-port satellite data exchange after simple adjustment, and has a certain range of applicability;
[0076] Multiple terminals (ground terminals or satellite terminals) send satellite data, which enter the input processing unit through multiple input ports (P0, P1, ..., P14, P15) for cache processing, and then are scheduled for output from the destination ports (D0, D1, ..., D14, D15) in order of priority. The 16 input ports are divided into 4 groups, and the satellite data of each group of input ports enter an input processing subunit, that is, the input processing unit contains 4 input processing subunits; in the input processing subunit, frame header detection, bit width conversion, data block allocation, data block cache, bus scheduling and other tasks of the satellite data are completed by providing a satellite data combining processing module, a multi-port dynamic allocation shared multi-queue module, a data block processing module and a queue cache scheduling module; at the same time, the subsequent cache status and idle time of the satellite data combining processing module are obtained by providing a multi-port dynamic allocation shared multi-queue module, the satellite data after the satellite data combining processing module is read, and the satellite data is allocated according to the cache status and idle time information;
[0077] The beneficial effects of the above technical solution are as follows: by dynamically allocating a shared multi-queue module through multiple ports, it is decided whether to allocate the onboard data to other input processing subunits for processing based on the idle time of the onboard data combining processing module of the input processing subunit and the cache status of the data cache area, thereby realizing dynamic allocation of data cache space and improving the cache utilization of the entire onboard switching system.
[0078] In one embodiment, the onboard data combining processing module includes a plurality of mac_r modules and a fairness poller;
[0079] The satellite data combining and processing module performs the following operations:
[0080] The mac_r module obtains the satellite data input from the corresponding port, and performs frame header detection on the satellite data to determine whether the frame header of the satellite data conforms to the preset format; if not, the satellite data is discarded;
[0081] If it is in compliance, perform CRC check and frame length detection on the satellite data to determine whether the CRC check result and data length conform to the preset format; if it is not in compliance, discard the satellite data; if it is in compliance, cache the satellite data in the mac_r module;
[0082] The fair poller reads the satellite data in the mac_r module in turn in a fair polling manner to obtain the combined satellite data;
[0083] The working principle and beneficial effects of the above technical solution are as follows: the satellite data combining processing module is composed of 4 mac_r modules and a fair poller, which respectively receive the satellite data from input ports P0, P1, P2 and P3; the mac_r module performs frame header detection on the received data to determine whether the frame header of the satellite data conforms to the preset format; if not, the satellite data is discarded; if it conforms, CRC check and frame length detection are performed on the satellite data to determine whether the check result of the CRC check and the data length conform to the preset format; if not, the satellite data is discarded; if it conforms, the satellite data is cached to the FIFO queue of the mac_r module and waits for output; the fair poller reads the satellite data in the FIFO queues of the four mac_r modules in turn in a fair polling manner to complete the satellite data combining processing.
[0084] In one embodiment, the multi-port dynamic allocation shared multi-queue module performs the following operations:
[0085] Read the combined satellite data output from the previous satellite data combining processing module;
[0086] Obtaining the cache status of the data block cache area of the input processing subunit where the multi-port dynamic allocation shared multi-queue module is located, and the idle time of the onboard data combining processing module of other input processing subunits; wherein the cache status includes: unable to continue to store and able to continue to store;
[0087] When there is an input processing subunit whose idle time is greater than a preset idle time, the satellite-borne data is sent to the input processing subunit for processing;
[0088] When there is no input processing subunit whose idle time is greater than the preset idle time, it is determined whether to send the onboard data to other input processing subunits for processing according to the cache status; if the cache status indicates that the data cannot be stored any more, the onboard data is sent to other input processing subunits for processing; if the cache status indicates that the data can be stored any more, the onboard data is not sent to other input processing subunits for processing;
[0089] The working principle and beneficial effects of the above technical solution are as follows: in each input processing subunit, the satellite data output from the satellite data combining processing module of the previous level is read; for example, the combined data in input processing subunit 0 is unit0_data, the combined data in input processing subunit 1 is unit1_data, and so on; in order to realize the dynamic allocation of multi-port queues, a dynamic chip selector is designed and added, and the dynamic chip selector in each input processing subunit will access the combined data output from the satellite data combining processing modules of all input processing subunits, and then determine the received combined data to enter a certain input processing subunit for subsequent processing according to the cache status of the data block cache area of the subunit; for example, taking input processing subunit 0 as an example, assuming that the storage space of data block cache area 0 is not enough to cache a satellite data with a maximum frame length, the corresponding full indication signal (cache status) will be pulled high and inform the previous dynamic chip selector; after receiving the indication, if the dynamic chip selector has unit0_data data at this time, the data will not enter the data block cache area 0, but will be sent to the other three input processing subunits for storage and processing according to the chip selection result of the dynamic chip selector;
[0090] In addition, if the onboard data is only transmitted in a certain input processing sub-unit, and it is detected that the idle time of the onboard data combining processing modules of the other three input processing sub-units is greater than the preset idle time, then the dynamic chip selector will send the combined data to the data block cache areas of other input processing sub-units in turn. Since the onboard data of each data block cache area will be transmitted to the four cross nodes horizontally of the corresponding Crossbar output matrix, the function of dynamic allocation of shared cache of multi-port and multi-queue onboard data is realized. At the same time, according to the result of the dynamic chip selector, the flow direction of the combined data can be better controlled to improve the space utilization of subsequent cache units.
[0091] In one embodiment, the data block processing module performs the following operations:
[0092] Perform bit width conversion and information extraction on the satellite data to obtain the converted data stream, destination port and priority information;
[0093] The converted data stream is processed into blocks to obtain onboard data blocks;
[0094] The working principle and beneficial effects of the above technical solution: The function of the data block processing module is to process the satellite data output by the dynamic chip selector in blocks, so as to facilitate subsequent block storage in the cache area; the data block processing module converts the bit width of the obtained satellite data into a 128-bit data stream and sends it to the subsequent bus, while extracting information from the satellite data to obtain the destination port and priority information; then the satellite data is processed in blocks, and each data block is fixed to 64Bytes; if there is a data block less than 64Bytes, a certain amount of data needs to be filled.
[0095] In one embodiment, the queue cache scheduling module includes: a data block cache area, a multicast counter, a block number queue, a queue scheduling module and a priority queue;
[0096] A block number queue, used to assign block numbers to onboard data blocks input to the queue scheduling module;
[0097] The queue scheduling module is used to control the data block buffer area to cache the received satellite data blocks, and when receiving the read request of the output processing unit, schedule the output of the satellite data blocks;
[0098] The data block buffer is used to store the satellite data blocks, and when receiving the output instruction of the queue scheduling module, it outputs the satellite data block with the corresponding block number;
[0099] The priority queue module is used to store the block number according to the destination port and priority information. When receiving the output instruction of the queue scheduling module, the block number in a priority queue corresponding to the destination port is selected according to the scheduling strategy for output; wherein, the priority queue module has a number of priority queue groups corresponding to a number of destination ports, and each priority queue group is composed of 8 different priority queues; each priority queue is set with an initial weight value;
[0100] The working principle and beneficial effects of the above technical solution: the queue cache scheduling module is the core of the cache scheduling method of the satellite switching system, which is specifically composed of a data block cache area, a multicast counter, a block number queue, a priority queue and a queue scheduling module; the data block cache area is used to store satellite data blocks, and when receiving an output instruction from the queue scheduling module, the satellite data block corresponding to the block number is output; when the block number queue is initialized, the numbers (storage addresses) corresponding to all the space blocks in the data block cache area are written into the queue, and whenever a data block is received, a block number is assigned to the data block, and the block number is stored in the corresponding cache area; the queue scheduling module is responsible for caching the received satellite data blocks, and when receiving an output request from the output processing unit, the corresponding satellite data block is output according to the priority queue scheduling rule;
[0101] In order to solve the head blocking problem of Crossbar cross-node multicast satellite data, a multicast counter is designed. When the queue scheduling module receives the satellite data block, it first determines the multicast count value based on the destination port information (the value is the number of satellite data blocks to be transmitted to the destination port), and then assigns a block number to the data block. The multicast count value is stored in the RAM of the multicast counter using the block number as the address. At the same time, the block number enters the priority queue of the corresponding destination port. Since it is multicast data, the block number may enter the priority queues of several destination ports at the same time, ensuring that the subsequent multicast satellite data can be output from the corresponding destination port. Whenever the scheduling outputs a block number, the multicast count value of the corresponding block number will be reduced by 1. Only when the multicast count value of the block number is reduced to 0, it means that the multicast satellite data has been output from the corresponding destination ports, ensuring the perfection of the multicast function. Since this method does not need to consider whether the subsequent Crossbar cross-nodes meet the ready situation at the same time, there is no head blocking problem of multicast satellite data.
[0102] In one embodiment, the queue scheduling module performs the following operations:
[0103] When receiving the onboard data block, determining a multicast count value based on the destination port information;
[0104] The control block number queue assigns a block number to each satellite data block, sends the satellite data block to the data block buffer area according to the address corresponding to the block number for storage, sends the assigned block number to the priority queue module for storage, and sends the multicast count value to the multicast counter for storage;
[0105] After receiving the output request from the output processing unit, it will poll the corresponding destination port fairly at the same time, obtain the external input scheduling parameter information, select the preset priority queue scheduling algorithm to schedule the stored block number according to the scheduling parameter information, and send an output instruction to the data block buffer area to control the data block buffer area to output the onboard data block with the corresponding block number;
[0106] Controlling the multicast count value corresponding to the block number stored in the multicast counter to be reduced by 1; wherein, when the multicast count value corresponding to the block number stored in the multicast counter becomes 0, the block number is recycled to the block number queue;
[0107] The scheduling parameter information includes: a first scheduling parameter and a second scheduling parameter; the preset priority queue scheduling algorithm includes: a strict priority and an adaptive weighted scheduling algorithm;
[0108] Obtain external input scheduling parameter information, and select a preset priority queue scheduling algorithm to schedule the stored block number according to the scheduling parameter information, including:
[0109] If the scheduling parameter information is the first scheduling parameter, scheduling the onboard data according to the strict priority algorithm and the priority information;
[0110] If the scheduling parameter information is the second scheduling parameter, scheduling the satellite-borne data according to an adaptive weighted scheduling algorithm;
[0111] Scheduling of onboard data based on a strict priority algorithm and priority information, including:
[0112] The priority queue group of the destination port includes priority queue 7, priority queue 6, priority queue 5, priority queue 4, priority queue 3, priority queue 2, priority queue 1 and priority queue 0. The block number will enter one of the priority queues according to the destination port and priority information;
[0113] When the priority queue 7 of the destination port has a block number, the data block number of the priority queue 7 is output first, regardless of whether other priority queues have data block numbers. When the data block number does not exist in the priority queue 7, the next priority queue with a data block number is polled and the block number is output. In the strict priority algorithm, the priority of the data block number output decreases in priority queue 7, priority queue 6, priority queue 5, priority queue 4, priority queue 3, priority queue 2, priority queue 1 and priority queue 0.
[0114] The satellite data is scheduled according to the adaptive weighted scheduling algorithm, including:
[0115] When there is no priority queue with a weight value of 0 in the priority queue group of the destination port, the priority queue of the destination port is polled until the priority queue outputs a block number, the weight value of the priority queue is reduced by 1, and the polling is stopped; wherein, during the polling process, when the priority queue with a weight value not 0 has no block number, the polling continues to the next priority queue;
[0116] When the priority queue group of the destination port has a priority queue with a weight value of 0, and the priority queue with a weight value other than 0 has a block number, the priority queues of the destination port are polled until a priority queue outputs a block number, and the weight value of the priority queue is reduced by 1; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is not output, and the next priority queue is polled;
[0117] When the priority queue group of the destination port has a priority queue with a weight value of 0, and the priority queue with a weight value of 0 has a block number, and the priority queue with a weight value other than 0 does not have a block number, the priority queues of the destination port are polled until a priority queue outputs a block number, and the weight value of the priority queue remains unchanged; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is output;
[0118] Among them, after the destination port outputs the block number, when an output request is received again, the priority queue of the destination port is polled, starting from the next priority queue of the priority queue that output the block number last time; the priority queue of the destination port is continuously polled until the weight values of all priority queues become 0, and the initial weight value of each priority queue in the next cycle is calculated and updated. The calculation formula is as follows:
[0119]
[0120] Where K1 represents the initial weight value of the next cycle, K0 represents the initial weight value of the current cycle, and n represents the number of response output requests after the weight value of the priority queue becomes 0 in a cycle;
[0121] The working principle and beneficial effects of the above technical solution are as follows: the satellite switching system has 16 switching ports, and 8 priority queues are set for each port, so there are 128 priority queues in total; it is set that only the satellite data block numbers are stored in the priority queues, so all the 128 priority queues are virtual output queues (Virtual Output Queuing, VOQ); since the satellite data block numbers are stored in the virtual output queues, the queue storage resources can be effectively reduced, and the scheduling of the numbers (virtual scheduling) is more convenient and efficient than directly scheduling the real satellite data, which greatly reduces the complexity of the scheduling algorithm and improves the efficiency of queue scheduling;
[0122] The multicast count value is determined based on the destination port information. The destination port information consists of 16-bit data. Assuming that the destination port information is "0000_0000_0000_0001", the number of "1"s in it determines whether it is unicast or multicast. When there is only one "1", the satellite data is unicast data. When the number of "1"s is greater than 1, the satellite data is multicast data. At the same time, the position of "1" in the destination port information also determines which destination ports the satellite data needs to be sent to. For example, "0000_0000_0010_0011" needs to be sent to three destination ports DP5, DP1, and DP0. The 16 bits in the destination port information represent the destination ports DP15, DP14, ..., DP1, and DP0 in turn. The number of "1"s in the destination port information is used as the multicast count value to ensure the normal sending of subsequent multicast data.
[0123] In order to improve the quality of service (QoS) of priority queue scheduling, two preset priority queue scheduling algorithms are added to the priority queue module, and one of the preset priority queue scheduling algorithms can be selected for scheduling through external input scheduling parameter information; that is, if the scheduling parameter information is the first scheduling parameter, the satellite data is scheduled according to the strict priority algorithm and the priority information; when the strict priority (SP) scheduling method is used for scheduling, when the output request of the output processing unit is received and the corresponding destination port is polled at the same time, the priority queue module selects the block number of the priority queue with the highest priority level for output; for example, when there are satellite data block numbers in multiple priority queues (priority queue 7, priority queue 5, priority queue 2) of a destination port at the same time, the block number of priority queue 7 is directly output; one of the output requests corresponds to one satellite data, so the priority queue output may output multiple block numbers;
[0124] If the scheduling parameter information is the second scheduling parameter, the satellite data is scheduled according to an adaptive weighted round robin (AWRR) scheduling algorithm, that is, when there is no priority queue with a weight value of 0 in the priority queue group of the destination port, the priority queue of the destination port is polled until the priority queue outputs a block number, the weight value of the priority queue is reduced by 1, and the polling is stopped; wherein, during the polling process, when the priority queue with a weight value not being 0 has no block number, the next priority queue is continuously polled; when there is a priority queue with a weight value of 0 in the priority queue group of the destination port, and the priority queue with a weight value not being 0 has a block number, the priority queue of the destination port is polled until there is a priority queue outputting a block number, and the weight value of the priority queue is reduced by 1; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is not output, and the next priority queue is continuously polled; when there is a priority queue with a weight value of 0 in the priority queue group of the destination port, When the priority queue with a weight value of 0 has a block number and the priority queue with a weight value other than 0 does not have a block number, the priority queue of the destination port is polled until a priority queue outputs a block number, and the weight value of the priority queue remains unchanged; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is output; after a scheduling cycle is completed, the number of response output requests after the weight value of the priority queue becomes 0 in a scheduling cycle is statistically obtained, and the value is subtracted from the initial weight value of the corresponding priority queue to obtain the change amount, which is divided by 4 as the update amount of the corresponding priority queue, and then added to the original weight value as the initial weight value of the next scheduling cycle; the calculation results of the update amount have positive and negative values, a positive value indicates that the weight value needs to be increased in the next scheduling cycle, and a negative value indicates that the weight value needs to be reduced in the next scheduling cycle; wherein, a scheduling cycle is when the weight values of all priority queues are reduced to 0;
[0125] The actual situation of the adaptive weighted scheduling algorithm is as follows: assuming that the eight priority queues of a destination port are priority queue 7, priority queue 6, priority queue 5, priority queue 4, priority queue 3, priority queue 2, priority queue 1, and priority queue 0; their initial weight values are set to 3, 2, 1, 2, 1, 2, 2, and 1 respectively;
[0126] Assuming that there are a large number of block numbers of satellite-borne data in all priority queues of the destination port at the same time, when an output request of the destination port is received, starting from priority queue 7, it is judged that the weight is greater than 0, and the data block number of a satellite-borne data is output, and the weight of priority queue 7 is reduced by 1; when the output request of the destination port is received again, starting from priority queue 6, it is judged that the weight is greater than 0, and the corresponding data block number is output, and its own weight is reduced by 1; when the output request of the destination port is received again, starting from priority queue 5, it is judged that the weight is greater than 0, and the corresponding data block number is output, and its own weight is reduced by 1; when the output request of the destination port is received again, starting from priority queue 4, it is judged that the weight is greater than 0, and the corresponding data block number is output, and its own weight is reduced by 1 ; When the output request of the destination port is received again, start from priority queue 3, judge that the weight is greater than 0, output the corresponding data block number, and reduce its own weight by 1; when the output request of the destination port is received again, start from priority queue 2, judge that the weight is greater than 0, output the corresponding data block number, and reduce its own weight by 1; when the output request of the destination port is received again, start from priority queue 1, judge that the weight is greater than 0, output the corresponding data block number, and reduce its own weight by 1; when the output request of the destination port is received again, start from priority queue 0, judge that the weight is greater than 0, output the corresponding data block number, and reduce its own weight by 1; when the output request of the destination port is received again, start from priority queue 7, judge that the weight is greater than 0, and output the corresponding data block number. The corresponding data block number is output, and its own weight is reduced by 1; when the output request of the destination port is received again, it starts from priority queue 6, judges that the weight is greater than 0, outputs the corresponding data block number, and reduces its own weight by 1; when the output request of the destination port is received again, it starts from priority queue 5, judges that the weight is 0, and then judges the weight of priority queue 4. If the weight is greater than 0, the corresponding data block number is output, and its own weight is reduced by 1; when the output request of the destination port is received again, it starts from priority queue 3, judges that the weight is 0, and then judges the weight of priority queue 2. If the weight is greater than 0, the corresponding data block number is output, and its own weight is reduced by 1; when the output request of the destination port is received again, it starts from priority queue 1, and judges that the weight is greater than 0. When the output request of the destination port is received again, it starts from priority queue 0 and finds that the weight is 0. Then it determines the weight of priority queue 7. If the weight is greater than 0, it outputs the corresponding data block number and reduces its own weight by 1. Since the weights of all priority queues are 0, this scheduling cycle ends and the weights are restored to their initial values. Assuming that priority queues 7, 6, 5, 4, 3, 2 and 0 do not contain satellite data block numbers, they only respond to priority queue 1 (with a weight of 0 and an initial weight of 2). After 8 responses, the initial weight of priority queue 1 will become 3 when this scheduling cycle ends.
[0127] In one embodiment, the output processing unit is an output processing unit based on the Crossbar architecture, which is the same as the current mainstream Crossbar architecture and adopts a combined input and Crosspoint Queued (CICQ) structure. The Crossbar cross node uses a ping-pong FIFO to cache and read out satellite data. Each cross node can cache up to two satellite data of the maximum frame length. When there is satellite data in the cross node and the corresponding destination port is enabled, the vertical Crossbar bus will read the satellite data of the vertical cross node in turn through fair polling and transmit it to the next level module. The output scheduling module sends the satellite data to the corresponding mac_t module according to the destination port information of the read satellite data. The mac_t module is responsible for completing the restoration processing of the satellite data and outputting it through the corresponding port.
[0128] In one embodiment, the specific working process of the onboard exchange system is as follows:
[0129] The satellite data enters the satellite switching system through 16 write ports. Every four ports are aggregated into one combined data channel. The dynamic chip selector determines which combined data channels are sent to the subsequent cache area for storage. The final satellite data is converted into a 128-bit data stream through bit width conversion. The destination port and priority information of the satellite data are extracted, and then data blocks are allocated. Data blocks less than 64 bytes are filled with data, and finally the data blocks are sent to the queue scheduling cache module;
[0130] When the queue scheduling cache module receives the satellite data block, a block number (address information) is assigned to each satellite data block. At the same time, the block number will be sent to the corresponding priority queue according to the destination port and priority information, and the satellite data block will enter the cache area for storage according to the address information. In addition, the multicast count value is calculated according to the destination port information, and the calculated multicast count value is stored in the RAM of the multicast counter with the block number as the storage address;
[0131] Each input processing subunit with four ports in a group represents a group of Crossbar buses (corresponding to the four crossbar nodes in the horizontal direction of the Crossbar output matrix). For example, the satellite data of the 16 destination ports in the input processing subunit 0, where the satellite data of the destination ports DP0, DP1, DP2, and DP3 enter the crossbar node M11, the satellite data of the destination ports DP4, DP5, DP6, and DP7 enter the crossbar node M12, the satellite data of the destination ports DP8, DP9, DP10, and DP11 enter the crossbar node M13, and the satellite data of the destination ports DP12, DP13, DP14, and DP15 enter the crossbar node M14;
[0132] When there is idle crossbar node in the horizontal direction of Crossbar output matrix, it will send output request to the queue scheduling module of the previous level. For example, crossbar node M11 sends output request to the queue scheduling module of the previous level. If there is block number data in the priority queue of destination port DP0, DP1, DP2, DP3 in the previous level priority queue, and the destination port is polled, a response signal will be given, and the block number will be scheduled and output according to the preset priority scheduling algorithm. The corresponding satellite data block will be extracted from the data block buffer according to the block number (address information) and written into the crossbar node M11, completing the satellite data writing task.
[0133] When reading the onboard data of the cross node, firstly, the four cross nodes in the vertical direction of the Crossbar output matrix are fairly polled to determine whether a certain vertical cross node has a data read request. At the same time, the output scheduling module detects the output status of the corresponding port. If the destination port is idle and the vertical cross node has data, the onboard data is sent to the corresponding mac_t module to complete the onboard data restoration processing and output the port. The restoration processing of the onboard data block is to delete the padding data added by the data block processing module.
[0134] The present invention also provides a broadband satellite onboard switching method based on multi-port dynamic allocation sharing of multiple queues, comprising the following steps:
[0135] Receive satellite data from multiple ports and perform cache scheduling on the satellite data;
[0136] Receive the data after cache scheduling and pass it to the corresponding port for output;
[0137] Receive multi-port satellite data and perform cache scheduling on the satellite data, including:
[0138] Obtain the satellite data input from the corresponding port, and perform detection and combination processing on the satellite data;
[0139] Obtain cache status and read the onboard data after the combining process, and distribute the onboard data according to the cache status;
[0140] Perform block processing and information extraction on the allocated satellite data to obtain satellite data blocks, destination ports and priority information;
[0141] The onboard data is cached and scheduled according to the destination port and priority information.
[0142] like Figure 8 As shown, the present invention also provides a broadband satellite onboard switching device based on multi-port dynamic allocation and sharing of multiple queues,
[0143] The satellite switching device is implemented based on the XC7VX690T platform and uses custom FIFO and RAM modules. The peripheral conversion equipment and satellite equipment interact with the switching unit through the GTX transceiver, and each port can support a maximum transmission rate of 4.9Gbps. The satellite data enters the satellite switching system through 16 input ports, and the internal system clock of the satellite switching system uses 156.25MHz. The data of 4 input ports are grouped into the RAM of an input processing subunit for scheduling. Each processing subunit represents a bus, and the data width of the bus is 128bit, and the transmission rate can reach up to 19.5Gbps. The Crossbar network consists of 16 ping-pong FIFOs with 4K cache resources to complete the writing and output of satellite data. In FPGA design, due to the fixed capacity of the BRAM unit block, it is easy to cause resource waste when instantiating small-capacity RAM / FIFO. In terms of FPGA deployment, the satellite switching system uses custom storage modules and combines distributed RAM resources on the chip, consuming 30% of storage resources and 19% of logic resources, and meeting the timing requirements.
[0144] The device diagram of the satellite switching system invention mainly shows the use of some registers, RAM, FIFO and interface processing; first, the satellite data is input into the satellite switching system through 16 ports P0-P15. Since it is necessary to process high-speed and high-bandwidth data, the GTX resources of FPGA are selected for data processing. At the same time, the GTX input processing module also includes frame checking and mac_r functions, and finally cached in FIFO_0-FIFO_15 (corresponding to the FIFO of the mac_r module); the subsequent information extraction data processing module combines the satellite data, extracts information and divides the data blocks, corresponding to the dynamic chip selector and data block allocation of the input processing subunit; the extracted satellite data blocks, destination ports and priority information will be stored in the corresponding registers; the four input processing subunits are divided into four groups of registers; the register control module (queue scheduling module) extracts the satellite data blocks, destination ports and priority information, extracts the block numbers from the address parameter register (block number queue) and allocates them to the satellite data The satellite data blocks with assigned block numbers are cached in the RAM (data cache) waiting for output; when the subsequent Crossbar network (ping-pong FIFO0-FIFO15, M11 is ping-pong FIFO0, M12 is ping-pong FIFO1, M13 is ping-pong FIFO2, M14 is ping-pong FIFO3, M21 is ping-pong FIFO4, M22 is ping-pong FIFO5, M23 is ping-pong FIFO6, M24 is ping-pong FIFO7, M31 is ping-pong FIFO8) is connected to the satellite data block. IFO8, M32 is ping-pong FIFO9, M33 is ping-pong FIFO10, M34 is ping-pong FIFO11, M41 is ping-pong FIFO12, M42 is ping-pong FIFO13, M43 is ping-pong FIFO14, M44 is ping-pong FIFO15) sends an output request, the onboard data block is output, and finally the output scheduling control module (output scheduling 0-3) is responsible for selecting the corresponding destination port, and the GTX interface output processing module restores the onboard data before outputting it.
[0145] At the same time, the present invention also provides a comparison between the present technical solution and the existing system, which is as follows:
[0146] First, if Fig. 9As shown, the existing public paper 1 (Wang Fangyuan. Design and Implementation of a 24-port Satellite Switch Based on Crossbar [D]. Xidian University, 2019) uses Crossbar switching and partial buffer sharing structure (PBS) to realize satellite switching, which has the characteristics of multi-port, high speed and large capacity; since the satellite switch is the backbone network of the integrated space-ground network, the switch must not only meet the requirements of speed and capacity, but also has very high requirements for the delay of the switch. The crossbar matrix feature can solve the internal blocking problem, so each port on the bus can work at full speed, which greatly improves the transmission rate and switching capacity, making high-speed and large-capacity switching possible; the entire switching unit uses a 156.25MHz system clock, the bus width is 64 bits, the maximum bus rate is 9.7Gbps, there are 24 ports in total, the transmission rate of each port reaches 1.2Gbps, and the switching capacity reaches 28.8Gbit;
[0147] Public Paper 2 (Zhang Xiaowen. Design and Implementation of High-Speed Satellite Router Switching Unit [D]. Xidian University, 2021) designed a high-speed satellite router based on a shared cache structure. Combining typical queue scheduling algorithms with project requirements, a fair arbitration polling algorithm (Round Robin, RR) based on output port status feedback and a priority-based deficit weighted scheduling algorithm (Deficit Weighted Round Robin, DWRR) were proposed, and the design and implementation of a multi-level queue scheduling scheme were completed by introducing a token bucket algorithm. The data exchange unit bus width is 80 bits, the clock of the exchange unit is 156.25MHz, and the bus rate can reach up to 12.2Gbps;
[0148] As shown in Table 1 (Comparison of Satellite Switching System Resources and Performance), both Papers 1 and 2 are satellite switching systems designed with the XC7VX690T chip. Compared with Papers 1 and 2, the technical solution of the present invention (taking 16 ports as an example for comparison) is firstly in terms of storage resources. Since the design of the present invention is to set custom RAM and FIFO storage units and utilize distributed RAM resources within the chip, while reducing the block number bit width and simplifying the scheduling strategy, the occupancy rate of chip storage resources is greatly reduced. Since the system of the present invention adopts high-bit-width satellite data streams for transmission scheduling, the bus rate is relatively high. Compared with the above two technical solutions, the present invention is better in terms of exchange rate and exchange capacity; at the same time, the system of the present invention adds a dynamic adjustment strategy, which can dynamically allocate satellite data to multiple queues according to the cache status and the idle time of the satellite data combining processing module of the input processing subunit, thereby improving the system exchange efficiency; the present invention internally records the multicast count value of satellite data, and ensures the normal transmission of multicast satellite data without the need for additional resources; compared with the first two solutions, the present invention adds an adaptive weighted scheduling algorithm to the queue scheduling algorithm, and effectively improves the service quality of queue scheduling by adaptively adjusting the weight value of the priority queue;
[0149] Table 1 Comparison of onboard switching system resources and performance
[0150]
[0151] Finally, it should be noted that the above embodiments are only used to illustrate the technical solution of the present invention rather than to limit it. Although the present invention has been described in detail with reference to the preferred embodiments, those skilled in the art should understand that the technical solution of the present invention can be modified or replaced by equivalents without departing from the purpose and scope of the technical solution of the present invention, which should be included in the scope of the claims of the present invention.
Claims
1. A broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues, characterized in that: include: An input processing unit, used for receiving satellite data from multiple ports and performing cache scheduling on the satellite data; The output processing unit is used to receive the output data of the input processing unit and transmit it to the corresponding port for output; The input processing unit includes several input processing sub-units, and the input processing sub-units include: a satellite data combining processing module, a multi-port dynamic allocation shared multi-queue module, a data block processing module and a queue cache scheduling module; The satellite data combining processing module is used to obtain the satellite data input from the corresponding port, detect the satellite data, and combine the satellite data of several ports through fair polling; The multi-port dynamic allocation shared multi-queue module is used to obtain the cache status and read the onboard data after the onboard data combining processing module, and allocate the onboard data according to the cache status; A data block processing module is used to perform block processing and information extraction on the allocated satellite data to obtain satellite data blocks, destination ports and priority information; The queue cache scheduling module is used to cache and schedule the satellite data according to the destination port and priority information.
2. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 1, characterized in that: Onboard data combining processing module, including several mac_r modules and fair pollers; The satellite data combining and processing module performs the following operations: The mac_r module obtains the satellite data input from the corresponding port, and performs frame header detection on the satellite data to determine whether the frame header of the satellite data conforms to the preset format; if not, the satellite data is discarded; If it is in compliance, perform CRC check and frame length detection on the satellite data to determine whether the CRC check result and data length conform to the preset format; if it is not in compliance, discard the satellite data; if it is in compliance, cache the satellite data in the mac_r module; The fair poller reads the satellite data in the mac_r module in turn in a fair polling manner to obtain the combined satellite data.
3. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 1, characterized in that: The multi-port dynamic allocation shares the multi-queue module, and performs the following operations: Read the combined satellite data output from the previous satellite data combining processing module; Obtaining the cache status of the data block cache area of the input processing subunit where the multi-port dynamic allocation shared multi-queue module is located, and the idle time of the onboard data combining processing module of other input processing subunits; wherein the cache status includes: unable to continue to store and able to continue to store; When there is an input processing subunit whose idle time is greater than a preset idle time, the satellite-borne data is sent to the input processing subunit for processing; When there is no input processing subunit whose idle time is greater than the preset idle time, it is determined whether to send the onboard data to other input processing subunits for processing according to the cache status; if the cache status is that it cannot continue to be stored, the onboard data is sent to other input processing subunits for processing; if the cache status is that it can continue to be stored, the onboard data is not sent to other input processing subunits for processing.
4. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 1, characterized in that: The data block processing module performs the following operations: Perform bit width conversion and information extraction on the satellite data to obtain the converted data stream, destination port and priority information; The converted data stream is processed into blocks to obtain onboard data blocks.
5. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 1, characterized in that: A queue cache scheduling module, including: a data block cache area, a multicast counter, a block number queue, a queue scheduling module and a priority queue; A block number queue, used to assign block numbers to onboard data blocks input to the queue scheduling module; The queue scheduling module is used to control the data block buffer area to cache the received satellite data blocks, and when receiving the read request of the output processing unit, schedule the output of the satellite data blocks; The data block buffer is used to store the satellite data blocks, and when receiving the output instruction of the queue scheduling module, it outputs the satellite data block with the corresponding block number; The priority queue module is used to store block numbers according to the destination port and priority information. When receiving the output instruction of the queue scheduling module, the block number in a priority queue corresponding to the destination port is selected for output according to the scheduling strategy. Among them, the priority queue module has priority queue groups corresponding to the number of destination ports, and each priority queue group is composed of 8 different priority queues; each priority queue is set with an initial weight value.
6. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 5, characterized in that: The queue scheduling module performs the following operations: When receiving the onboard data block, determining a multicast count value based on the destination port information; The control block number queue assigns a block number to each satellite data block, sends the satellite data block to the data block buffer area according to the address corresponding to the block number for storage, sends the assigned block number to the priority queue module for storage, and sends the multicast count value to the multicast counter for storage; When receiving the output request of the output processing unit, and at the same time fairly polling the corresponding destination port, obtaining the external input scheduling parameter information, selecting the preset priority queue scheduling algorithm to schedule the stored block number according to the scheduling parameter information, and issuing an output instruction to the data block buffer area, controlling the data block buffer area to output the onboard data block of the corresponding block number; The multicast count value corresponding to the block number stored in the multicast counter is controlled to be reduced by 1; wherein, when the multicast count value corresponding to the block number stored in the multicast counter becomes 0, the block number is recycled to the block number queue.
7. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 6, characterized in that: The scheduling parameter information includes: a first scheduling parameter and a second scheduling parameter; the preset priority queue scheduling algorithm includes: a strict priority and an adaptive weighted scheduling algorithm; Obtain external input scheduling parameter information, and select a preset priority queue scheduling algorithm to schedule the stored block number according to the scheduling parameter information, including: If the scheduling parameter information is the first scheduling parameter, scheduling the onboard data according to the strict priority algorithm and the priority information; If the scheduling parameter information is the second scheduling parameter, the satellite-borne data is scheduled according to an adaptive weighted scheduling algorithm.
8. The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 7, characterized in that: The satellite data is scheduled according to the adaptive weighted scheduling algorithm, including: When there is no priority queue with a weight value of 0 in the priority queue group of the destination port, the priority queue of the destination port is polled until the priority queue outputs a block number, the weight value of the priority queue is reduced by 1, and the polling is stopped; wherein, during the polling process, when the priority queue with a weight value not 0 has no block number, the polling continues to the next priority queue; When the priority queue group of the destination port has a priority queue with a weight value of 0, and the priority queue with a weight value other than 0 has a block number, the priority queues of the destination port are polled until a priority queue outputs a block number, and the weight value of the priority queue is reduced by 1; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is not output, and the next priority queue is polled; When the priority queue group of the destination port has a priority queue with a weight value of 0, and the priority queue with a weight value of 0 has a block number, and the priority queue with a weight value other than 0 does not have a block number, the priority queues of the destination port are polled until a priority queue outputs a block number, and the weight value of the priority queue remains unchanged; wherein, during the polling process, when the priority queue with a weight value of 0 is polled, the block number is output; Among them, after the destination port outputs the block number, when an output request is received again, the priority queue of the destination port is polled, starting from the next priority queue of the priority queue that output the block number last time; the priority queue of the destination port is continuously polled until the weight values of all priority queues become 0, and the initial weight value of each priority queue in the next cycle is calculated and updated. The calculation formula is as follows: Among them, K1 represents the initial weight value of the next cycle, K0 represents the initial weight value of the current cycle, and n represents the number of response output requests after the weight value of the priority queue becomes 0 in one cycle.
9. A broadband satellite onboard switching method based on multi-port dynamic allocation and sharing of multiple queues, characterized in that: The broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 1 comprises the following steps: Receive satellite data from multiple ports and perform cache scheduling on the satellite data; Receive the data after cache scheduling and pass it to the corresponding port for output; Receive multi-port satellite data and perform cache scheduling on the satellite data, including: Obtain the satellite data input from the corresponding port, and perform detection and combination processing on the satellite data; Obtain cache status and read the onboard data after the combining process, and distribute the onboard data according to the cache status; Perform block processing and information extraction on the allocated onboard data to obtain onboard data blocks, destination ports and priority information; The onboard data is cached and scheduled according to the destination port and priority information.
10. A broadband satellite onboard switching device based on multi-port dynamic allocation and sharing of multiple queues, used to implement the broadband satellite onboard switching system based on multi-port dynamic allocation and sharing of multiple queues as claimed in claim 1.
Citation Information
Patent Citations
Congestion management suitable for wideband satellite communication system
CN101309103A
Satellite network dynamic routing method based on queue monitoring and congestion prediction
CN110290066A
Crossbar switching system for longitudinally splitting shared queue cache, implementation method and splitting method
CN118075217A