Communication device, communication method, and program

The communication device optimizes memory utilization and prevents high-priority packet discard by using dedicated main and dynamically assignable spare buffers, simplifying control processes.

JP2025110409AActive Publication Date: 2025-07-28NEC PLATFROMS LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2025060299
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2025-07-28
Estimated Expiration
2044-01-15

AI Technical Summary

Technical Problem

Existing communication devices face challenges in achieving efficient memory utilization and preventing the discard of high-priority packets without complex control configurations, particularly in shared buffer methods where memory address management and access control become complicated.

Method used

A communication device with a main buffer unit for each priority and a spare buffer unit that can dynamically assign priorities, using a monitoring unit to manage data retention and allocate spare buffers based on priority needs, ensuring high-priority packets are stored in assigned spare buffers.

Benefits of technology

This approach enhances memory usage efficiency and prevents high-priority packet discard with a simple configuration, improving QoS control by prioritizing high-priority packet handling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025110409000001_ABST
    Figure 2025110409000001_ABST
Patent Text Reader

Abstract

To achieve both improvement of memory use efficiency and suppression of discarding of high-priority packets with a simple configuration without performing complex control in a communication device that performs QoS control.SOLUTION: A communication device includes: a main buffer unit including a main buffer provided for each of a plurality of kinds of priorities; a spare buffer unit including a plurality of spare buffers to which priority can be individually and dynamically assigned; a monitoring unit for monitoring an amount of data accumulated in the main buffer and the spare buffers for each priority; and an allocation control unit for allocating the plurality of spare buffers to each priority in descending order of priority according to the amount of data accumulated for each priority, and performs control so that packets of the priority are stored in the allocated spare buffers.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a communication device, a communication method, and a program.

Background Art

[0002] In a communication device having a plurality of input / output ports, in order to suppress data (packet) discard when congestion occurs at each output destination port, a buffer for temporarily storing packets is provided for each output port. Further, a communication device that supports QoS (Quality of Service) control for preferentially transferring packets with high priority is provided with a buffer that can control the size and discard threshold for each priority in order to suppress the discard of packets with high priority. As buffer configurations, a method using dedicated memories for each packet priority and a shared buffer method that shares a single memory among priorities are known.

[0003] In the shared buffer method, when storing packets of several types of priorities in the shared buffer, in order to suppress the discard of high-priority packets, there is a technique of "when the amount of packets stored in the shared buffer exceeds the threshold corresponding to a predetermined priority, suppressing the writing of packets of that priority into the shared buffer (abstract excerpt)" (see, for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0004]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0005] The following analysis is provided by the inventor of the present invention.

[0006] The shared buffer method has high memory utilization because the free area of the memory can be used by packets of each priority. As a result, the total memory size can be made smaller compared to the method using dedicated memory for each priority. On the other hand, in the shared buffer method, since multiple priority packets can randomly access one memory area, the memory address management and access control become complicated.

[0007] For example, according to the technique disclosed in Patent Document 1, the packet reading unit reads the unread frames stored in the shared buffer in the strict priority method. Specifically, when a relatively high-priority frame is stored in the shared buffer at the time of frame reading, the packet reading unit reads the high-priority frame even if a large number of relatively low-priority frames are stored or even if they are stored earlier. Therefore, it is necessary to manage the reception packet storage addresses and storage orders for each priority, and to control the update of those management information and the memory access control during packet transmission and reception.

[0008] The present invention has been made in view of the above circumstances, and in a communication device that performs QoS control for preferentially transferring packets with high priority, it is an object to provide a technique that can achieve both an improvement in memory utilization efficiency and suppression of discard of packets with high priority without performing complicated control with a simple configuration.

Means for Solving the Problems

[0009] According to the first aspect of the present invention, a main buffer unit including main buffers provided for each of a plurality of types of priorities; a spare buffer unit including a plurality of spare buffers to which priorities can be individually and dynamically assigned; a monitoring unit that monitors the data retention amounts of the main buffer and the spare buffer for each of the priorities; In order from the highest of the priorities, in accordance with the data retention amount for each priority, a plurality of the preliminary buffers are assigned to the priority, and an assignment control unit is provided to control such that packets of the priority are stored in the assigned preliminary buffer. A communication device including the assignment control unit is provided.

[0010] According to a second aspect of the present invention, a main buffer unit including main buffers provided for each of a plurality of types of priorities, a preliminary buffer unit including a plurality of preliminary buffers to which priorities can be individually and dynamically assigned, a communication method in a communication device including the main buffer unit and the preliminary buffer unit, monitors the data retention amounts of the main buffer and the preliminary buffers for each of the priorities, in order from the highest of the priorities, in accordance with the data retention amount for each priority, a plurality of the preliminary buffers are assigned to the priority, and a communication method is provided to control such that packets of the priority are stored in the assigned preliminary buffer.

[0011] According to a third aspect of the present invention, a main buffer unit including main buffers provided for each of a plurality of types of priorities, a preliminary buffer unit including a plurality of preliminary buffers to which priorities can be individually and dynamically assigned, a program is provided to cause a computer of a communication device including the main buffer unit and the preliminary buffer unit to execute the above-described communication method.

[0012] Note that this program can be recorded on a computer-readable storage medium. The storage medium can be a non-transient one such as a semiconductor memory, a hard disk, a magnetic recording medium, an optical recording medium, etc. The present invention can also be embodied as a computer program product.

Advantages of the Invention

[0013] According to the present invention, in a communication device that performs QoS control for preferentially transferring packets with high priority, it is possible to achieve both an improvement in the usage efficiency of memory and a suppression of the discard of packets with high priority without performing complex control with a simple configuration.

Brief Description of the Drawings

[0014]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Embodiments for Carrying Out the Invention

[0015] Hereinafter, an overview of an embodiment of the present invention (hereinafter referred to as the present embodiment) will be described with reference to the drawings. Note that the reference numerals in the drawings are attached to each element for convenience as an example to assist understanding, and the present invention is not intended to be limited to the illustrated aspects. Also, the connection lines between the blocks in the drawings and the like referred to in the following description include both bidirectional and unidirectional ones. The one-way arrow schematically shows the flow of the main signal (data) and does not exclude bidirectionality.

[0016] In addition, ports and interfaces exist at the input / output connection points of each block in the figure, but their illustration is omitted. Also, in the following description, "A and / or B" is used to mean A or B, or A and B.

[0017] <<First Embodiment>> First, the first embodiment of the present invention will be described.

[0018] The communication device 100a of this embodiment includes a main buffer dedicated for each priority as a buffer for temporarily storing packets when congestion occurs, and a plurality of spare buffers. By individually and dynamically assigning priorities to each spare buffer according to the retention amount of data for each priority, a QoS (Quality of Service) control is performed in a FIFO (First In First Out) memory that performs FIFO control, and high-priority packets are preferentially transferred, suppressing the discard of high-priority packets and realizing it.

[0019] Hereinafter, the communication device 100a of this embodiment that realizes this will be described. FIG. 1 is a configuration diagram of the configuration related to the function realization of the communication device 100a of this embodiment.

[0020] The communication device 100a of this embodiment includes a plurality of input / output ports, and packets with any one of a plurality of types of priorities are input. Hereinafter, as an example, it is assumed that the packets have any one of three types of priorities: high priority, medium priority, and low priority. Hereinafter, a packet with high priority set is called a high-priority packet, a packet with medium priority set is called a medium-priority packet, and a packet with low priority set is called a low-priority packet.

[0021] In order to suppress packet discard when congestion occurs at each output destination port, the communication device 100a includes a buffer unit 200a for temporarily storing packets for each output port. The buffer unit 200a includes a main buffer unit 300a, a spare buffer unit 400a, and a control unit 500a.

[0022] The main buffer unit 300a includes dedicated main buffers provided for storing packets (packets of the corresponding priority) with the corresponding priority set for each of a plurality of types of priorities. In the present embodiment, the main buffer for high-priority packets (high-priority MB) 310a, the main buffer for medium-priority packets (medium-priority MB) 320a, and the main buffer for low-priority packets (low-priority MB) 330a are provided. Each of the main buffers is a FIFO memory.

[0023] The spare buffer unit 400a includes a plurality of spare buffers as physical resources for packet storage. These are spare buffers used when there is no space to store packets in any one or more of the dedicated buffers of each priority in the main buffer unit 300a under congestion.

[0024] In the present embodiment, as an example, it is assumed to include three spare buffers. Specifically, a first spare buffer (first B) 410a, a second spare buffer (second B) 420a, and a third spare buffer (third B) 430a are provided. Note that the number of spare buffers may be plural. Each of the spare buffers is a FIFO memory.

[0025] These spare buffers are dynamically assigned to any one of the priorities individually (in units of spare buffers) by an allocation control unit 520a described later. Note that assigning to a priority means using it as a spare buffer for packets with the corresponding priority set.

[0026] The control unit 500a assigns each spare buffer in the spare buffer unit 400a to any one of the priorities. In the present embodiment, it includes a monitoring unit 510a and an allocation control unit 520a.

[0027] The monitoring unit 510a monitors the data retention amounts (packet retention amounts) of the buffers in the main buffer unit 300a and the backup buffer unit 400a by priority, and notifies the allocation control unit 520a of the results.

[0028] The allocation control unit 520a determines, according to the monitoring results of the monitoring unit 510a, to which priority each of the plurality of backup buffers is to be allocated. That is, according to the data retention amounts of the respective priorities notified from the monitoring unit 510a, it is determined to which priority the first B410a, the second B420a, and the third B430a are to be allocated. In making the determination, higher priorities are given precedence. That is, starting from the highest priority in order, necessary backup buffers are allocated according to the data retention amount.

[0029] Further, the allocation control unit 520a controls the operation of the backup buffer unit 400a, and controls so that packets of each priority are stored in the first B410a, the second B420a, and the third B430a according to the determined allocation.

[0030] As described above, according to the communication device 100a of the present embodiment, a plurality of buffers configured by FIFO memories are provided as backup buffers, and are allocated and used in units of FIFO memories in order from the highest priority according to the data retention amount. The backup buffers can be selectively used for each priority as needed. Therefore, compared with a method in which dedicated memories are provided as buffers for each priority, packets of each priority can be temporarily stored with less memory. Further, since the allocation is performed in units of FIFO memories, memory management and access control are simpler than a method in which a single memory is shared among priorities. And the allocation is performed in order from the highest priority.

[0031] For this reason, according to the present embodiment, in the communication device 100a that performs QoS control to preferentially transfer packets with high priority, it is possible to achieve both an improvement in the usage efficiency of the memory and suppression of the discard of packets with high priority without performing complicated control with a simple configuration.

[0032] <<Second Embodiment>> Next, the second embodiment of this embodiment will be described. This embodiment is a more detailed and specific implementation of the first embodiment. In this embodiment, the components with the same name as those in the first embodiment basically have the same functions as those in the first embodiment. Hereinafter, this embodiment will be described with a focus on the differences from the first embodiment.

[0033] In this embodiment, the case of using a Layer 2 switch as the communication device 100 will be taken as an example for explanation. Note that a Layer 2 switch is a device that constitutes a network based on the data link layer, which is Layer 2 of the OSI (Open Systems Interconnection) reference model. Specifically, the Layer 2 switch stores the MAC addresses of devices connected by a LAN (Local Area Network) cable, grasps which device is connected to which port, and conducts communication.

[0034] Also in this embodiment, the case where packets of multiple types of priorities are high-priority packets, medium-priority packets, and low-priority packets will be taken as an example for explanation. Note that the high-priority packets may be, for example, packets of a VoIP (Voice over Internet Protocol) service or packets of a video / audio streaming service. The medium-priority packets may be, for example, packets of an email service. The low-priority packets may be, for example, packets of a file transfer service.

[0035] FIG. 2 is a configuration diagram of the communication device 100, which is a Layer 2 switch of this embodiment. As shown in this figure, the communication device 100 includes an input port 120, output ports 170 (output ports 170a and 170b), a receiving unit 130, a switching unit 140, and transmitting units 150 (150a and 150b). Note that the number of each component is an example, and for example, it may include two or more receiving units 130 and three or more output ports 170.

[0036] The input port 120 and the output ports 170 (170a and 170b) are physical ports connected to the transmission line.

[0037] The receiving unit 130 receives, via the input port 120, a MAC frame which is an Ethernet (registered trademark) frame transmitted from an external device (hereinafter simply referred to as a packet), and determines the output port 170 (170a or 170b) of the packet. A priority is set for each packet. In this embodiment, any one of high priority, medium priority, and low priority is set.

[0038] The switch unit 140 transfers the packet received by the receiving unit 130 and for which the output port 170 has been determined to the transmitting unit 150 associated with the output port 170.

[0039] The transmitting unit 150 executes a packet transfer process to an external device. At that time, QoS control is executed. The transmitting unit 150 is provided in association with the output port 170. In this embodiment, for example, the transmitting unit 150a and the transmitting unit 150b are provided. For example, the transmitting unit 150a is provided in association with the output port 170a. The transmitting unit 150b is provided in association with the output port 170b. Hereinafter, when there is no need to distinguish, it is represented by the transmitting unit 150.

[0040] The transmitting unit 150 includes a packet writing unit 210, a buffer unit 200, and a packet reading unit 220 in order to execute a packet transfer process while performing QoS control. The buffer unit 200 includes a preliminary buffer unit 400 and a main buffer unit 300.

[0041] Each unit is respectively connected by priority-based data signal lines 610, 620, 630, 650. The priority-based data signal lines 610, 620, 630, 650 are respectively provided according to the priority set for the packet to be transferred.

[0042] The packet writing unit 210 transfers the packets input from the switch unit 140 to the preliminary buffer unit 400 via the corresponding priority-based data signal line (first signal line) 610 according to the priority set for the packets.

[0043] When the packet writing unit 210 receives a discard control signal from the preliminary buffer unit 400 via the priority-based discard control signal line (discard signal line) 640, it stops transferring the packets of that priority to the buffer unit 200 thereafter. The discard signal lines 640 are also provided according to the priority. The discard control signal is a signal that instructs the stop of the transfer of the packets of the corresponding priority.

[0044] The preliminary buffer unit 400 transfers the packets input from the packet writing unit 210 to the main buffer unit 300 via the priority-based data signal line (second signal line) 620 according to the priority set for the packets. Also in this embodiment, similar to the component with the same name in the first embodiment, it includes a plurality of preliminary buffers configured by FIFO memories.

[0045] In this embodiment, the preliminary buffer unit 400 includes a monitoring unit 510 and an allocation control unit 520 (see FIG. 3).

[0046] The monitoring unit 510 monitors the residence amounts of the data (packets) in the main buffer and the preliminary buffers according to the priority, similar to the component with the same name in the first embodiment, and notifies the allocation control unit 520 of the results. Details will be described later.

[0047] The allocation control unit 520 determines, according to the monitoring results of the monitoring unit 510, which of the plurality of preliminary buffers is to be used as the preliminary buffer for which priority (which priority to allocate to), similar to the component with the same name in the first embodiment. Details will be described later.

[0048] The main buffer unit 300 notifies the preliminary buffer unit 400 of information indicating the data retention amount of the main buffer dedicatedly provided for each priority level via the priority-level data signal line (third signal line) 630 for each priority level. Also, similar to the components with the same name in the first embodiment, a dedicated main buffer (FIFO memory) is provided for each of the plurality of types of priority levels.

[0049] The packet reading unit 220 reads out the unread packets stored in the main buffer unit 300 via the priority-level data signal line (fifth signal line) 650 in a strict priority manner. Specifically, when a packet with a relatively high priority is stored in the main buffer unit 300 at the time of reading, the packet reading unit 220 reads out the high-priority packet even if a large number of relatively low-priority packets are stored, or even if the relatively low-priority packets were stored earlier. The read packet is output to the transmission path via the output port 170.

[0050] Next, the details of the buffer unit 200 of this embodiment will be described. FIG. 3 is a detailed configuration diagram of the buffer unit 200 of this embodiment. As described above, the buffer unit 200 includes a main buffer unit 300 and a preliminary buffer unit 400.

[0051] First, the configuration of the main buffer unit 300 will be described. The main buffer unit 300 includes dedicated main buffers for each priority level. Specifically, it includes a high-priority main buffer (MB) 310 for storing high-priority packets, a medium-priority main buffer (MB) 320 for storing medium-priority packets, and a low-priority main buffer (MB) 330 for storing low-priority packets. All of these are composed of FIFO memories.

[0052] The main buffer unit 300 sequentially stores the packets transferred from the preliminary buffer unit 400 in the dedicated main buffers (high-priority MB 310, medium-priority MN 320, low-priority MB 330) for each priority level according to the priority level of the packet. Also, in accordance with the read control of the packet reading unit 220, the packets stored earlier are sequentially transferred to the packet reading unit 220 from the highest-priority one for each priority level.

[0053] Packets are stored from the preliminary buffer unit 400 into the dedicated main buffers of respective priorities via the second signal line 620. That is, high-priority packets are stored into the high-priority MB 310 via the second high-priority signal line 621 of the second signal line 620. Medium-priority packets are stored into the medium-priority MB 320 via the second medium-priority signal line 622 of the second signal line 620. Low-priority packets are stored into the low-priority MB 330 via the second low-priority signal line 623 of the second signal line 620.

[0054] In addition, the main buffer unit 300 notifies the preliminary buffer unit 400 of the data retention amount (packet retention amount) waiting for reading in each dedicated main buffer of respective priorities as the MB retention amount.

[0055] The MB retention amount of the high-priority MB 310 is notified to the high-priority packet monitoring unit 511 described later. The notification is made via the third high-priority signal line 631 of the third signal line 630. The MB retention amount of the medium-priority MB 320 is notified to the medium-priority packet monitoring unit 512. The notification is made via the third medium-priority signal line 632 of the third signal line 630. The MB retention amount of the low-priority MB 330 is notified to the low-priority packet monitoring unit 513. The notification is made via the third low-priority signal line 633 of the third signal line 630.

[0056] Next, the configuration of the preliminary buffer unit 400 will be described. The preliminary buffer unit 400 includes a first preliminary buffer (first B) 410, a second preliminary buffer (second B) 420, and a third preliminary buffer (third B) 430. All of these are configured by FIFO memories.

[0057] In addition, the preliminary buffer unit 400 includes a monitoring unit 510 and an allocation control unit 520.

[0058] Similar to the first embodiment, the monitoring unit 510 monitors the data retention amounts of the buffers in the main buffer unit 300 and the spare buffer unit 400 according to priorities. In this embodiment, the monitoring unit 510 is provided according to priorities. That is, a high-priority packet monitoring unit 511 that monitors the data retention amount of the buffer in which high-priority packets are stored, a medium-priority packet monitoring unit 512 that monitors the data retention amount of the buffer in which medium-priority packets are stored, and a low-priority packet monitoring unit 513 that monitors the data retention amount of the buffer in which low-priority packets are stored are provided.

[0059] At each priority level, the monitoring unit 510 monitors the total retention amount obtained by adding the MB retention amount, which is the data retention amount sent from the main buffer unit 300, and the spare retention amount, which is the data retention amount sent from the spare buffer allocated to the priority level in the spare buffer unit 400. Then, according to the total retention amount, the number of required spare buffers (required number) is determined for each priority level and notified to the allocation control unit 520.

[0060] The spare retention amount of each spare buffer (first B410, second B420, third B430) is transmitted to the monitoring unit 510 via the signal line 560. Which spare buffer's spare retention amount is notified to which monitoring unit 510 is controlled by, for example, a selector 550. The selector 550 operates according to an instruction (control signal) from the allocation control unit 520.

[0061] Similar to the first embodiment, the allocation control unit 520 determines, according to the monitoring result of the monitoring unit 510, which spare buffer to use as the spare buffer for each priority level. That is, according to the required number of spare buffers for each priority level, it is determined to which priority level to allocate the first B410, the second B420, and the third B430. The allocation is performed in the order of priorities (from the highest priority).

[0062] Also, input selectors 530 (first input selector 531, second input selector 532, third input selector 533) are respectively connected to the inputs of the respective preliminary buffers (first B410, second B420, third B430). The input selector 530 is a FIFO write data selector that selects an input signal to the connected preliminary buffer. Also, on the output side of the preliminary buffer section 400, output selectors 540 (high-priority output selector 541, medium-priority output selector 542, low-priority output selector 543) are provided. These select an output signal to the subsequent main buffer. These selectors operate according to instructions (control signals) from the allocation control section 520. The control signals are transmitted from the allocation control section 520 to the respective selectors 530, 540, 550 via the control line 521.

[0063] In this way, the preliminary buffer section 400 of the present embodiment stores the priority packets transferred from the packet writing section 210 in the allocated preliminary buffer via the input selector 530 according to the instructions of the allocation control section 520. Then, from the previously stored packets, they are transferred to the main buffer section 300 via the output selector 540 according to priority.

[0064] Note that the method of allocating the preliminary buffer will be described later. Depending on the priority, there may be packets that do not use the preliminary buffer. Packets of such a priority for which no preliminary buffer is allocated are not stored in the preliminary buffers (first B410, second B420, third B430) and are transferred to the main buffer section 300 via the output selector 540.

[0065] Also, the selector 550 may not be provided. The residence amounts of all the high, medium, and low preliminary buffers (first B410, second B420, third B430) may be notified to each monitoring section 510 (high-priority packet monitoring section 511, medium-priority packet monitoring section 512, low-priority packet monitoring section 513), and only the necessary information may be used among the respective monitoring sections 510.

[0066] [Preliminary Buffer Allocation] Next, the preliminary buffer allocation process by the monitoring unit 510 and the allocation control unit 520 of the present embodiment will be described.

[0067] As described above, the monitoring unit 510 determines the number (required number) of necessary preliminary buffers according to the total residence amount at each priority and notifies the allocation control unit 520. The required number is determined, for example, according to a determination criterion table 710 in which the total residence amount, the threshold value, and the required number are associated in advance and stored.

[0068] FIG. 4 is an example of the determination criterion table 710. As shown in this figure, in the determination criterion table 710, the number of preliminary buffers to be requested (preliminary buffer request number 712) is stored in association as the required number for each determination criterion 711 indicating the relationship between the total residence amount and the threshold value.

[0069] In the present embodiment, for example, the case of using four threshold values (first threshold value, second threshold value, third threshold value, fourth threshold value) will be described as an example. These have the following meanings, for example, as shown in FIG. 5. In FIG. 5, it will be described as being allocated in the order of the first B410, the second B420, and the third B430.

[0070] The first threshold value is a threshold value for determining the presence or absence of free space in the main buffers (high-priority MB310, medium-priority MN320, low-priority MB330) of each priority in the main buffer unit 300. The second threshold value is a threshold value for determining the presence or absence of free space in the first preliminary buffer (first B410) in the preliminary buffer unit 400. The third threshold value is a threshold value for determining the presence or absence of free space in the second preliminary buffer (second B420) in the preliminary buffer unit 400. The fourth threshold value is a threshold value for determining the presence or absence of free space in the third preliminary buffer (third B430) in the preliminary buffer unit 400. These threshold values have the relationship of the first threshold value < the second threshold value < the third threshold value < the fourth threshold value.

[0071] As shown in FIG. 5(a), when the total retention amount is less than the first threshold value, the preliminary buffer is not required. Therefore, as shown in FIG. 4, the required number is 0. As shown in FIG. 5(b), when the total retention amount is equal to or greater than the first threshold value and less than the second threshold value, one preliminary buffer is required. Therefore, the required number is set to 1. As shown in FIG. 5(c), when the total retention amount is equal to or greater than the second threshold value and less than the third threshold value, two preliminary buffers are required. Therefore, the required number is set to 2. As shown in FIG. 5(d), when the total retention amount is equal to or greater than the third threshold value and less than the fourth threshold value, three preliminary buffers are required. Therefore, the required number is set to 3. Further, when the total retention amount is equal to or greater than the fourth threshold value, in this embodiment, since the number of preliminary buffers is three, the required number is also set to 3 in this case.

[0072] Each monitoring unit 510 for each priority determines these for the data retention amount of each priority, and respectively determines the required number and notifies the allocation control unit 520. For example, the high-priority packet monitoring unit 511 determines the above for the total retention amount of high-priority packets, and notifies the allocation control unit 520 of the required number of preliminary buffers (high-priority required number) for high-priority packets. The medium-priority packet monitoring unit 512 determines the above for the total retention amount of medium-priority packets, and notifies the allocation control unit 520 of the required number of preliminary buffers (medium-priority required number) for medium-priority packets. The low-priority packet monitoring unit 513 determines the above for the total retention amount of low-priority packets, and notifies the allocation control unit 520 of the required number of preliminary buffers (low-priority required number) for low-priority packets.

[0073] Each monitoring unit 510 for each priority performs these determinations, for example, synchronously at a predetermined time interval, and notifies the allocation control unit 520.

[0074] When the allocation control unit 520 receives the required number from each monitoring unit 510, based on the input required number, it executes an allocation process (arbitration process) of allocating each preliminary buffer to a specific priority in order of priority up to the total number of preliminary buffers.

[0075] That is, the allocation control unit 520 first allocates each spare buffer for high-priority packets according to the high-priority request number, allocates the remaining spare buffers for medium-priority packets according to the medium-priority request number, and further allocates the remaining spare buffers for low-priority packets according to the low-priority request number. That is, priority control of the allocation is performed so that the relationship is high-priority packet use > medium-priority packet use > low-priority packet use.

[0076] The allocation is performed, for example, according to an allocation table 720 stored in advance. For example, an example of the allocation table 720 that stores the allocation of each spare buffer for each determination condition (combination of request numbers for each priority) when preferentially allocating in the order of the first B410, the second B420, and the third B430 among the spare buffers is shown in FIG. 6.

[0077] As shown in this figure, in the allocation table 720, for each condition No. 721 that uniquely identifies with each combination of request numbers as a condition, the request number 722 of each priority of the condition and the allocation 723 of each spare buffer in the condition are registered.

[0078] Specifically, each spare buffer (the first B410, the second B420, the third B430) of the spare buffer unit 400 is allocated for packets of the following priorities when each of the following conditions is satisfied. First B410: · Conditions for being allocated for high-priority packets Condition No. 1 to 9 High-priority request number is 1 or more · Conditions for being allocated for medium-priority packets Condition No. 10 to 14 High-priority request number is 0 and medium-priority request number is 1 or more · Conditions for being allocated for low-priority packets Condition No. 15 to 17 High-priority request number and medium-priority request number are 0 and low-priority request number is 1 or more Second B420: · Conditions for being allocated for high-priority packets Condition No. 1 to 4 High-priority request number is 2 or more · Conditions for being allocated for medium-priority packets Condition Nos. 5 to 6: The high-priority request number is 1, and the medium-priority request number is 1 or more, or Condition Nos. 10 to 11: The high-priority request number is 0, and the medium-priority request number is 2 or more · Conditions assigned for low-priority packets Condition Nos. 7 to 8: The high-priority request number is 1, the medium-priority request number is 0, and the low-priority request number is 1 or more, Condition Nos. 12 to 13: The high-priority request number is 0, the medium-priority request number is 1, and the low-priority request number is 1 or more, or Condition Nos. 15 to 16: The high-priority request number is 0, the medium-priority request number is 0, and the low-priority request number is 2 or more Third B430: · Conditions assigned for high-priority packets Condition No. 1: The high-priority request number is 3 · Conditions assigned for medium-priority packets Condition No. 2: The high-priority request number is 2, and the medium-priority request number is 1 or more, Condition No. 5: The high-priority request number is 1, and the medium-priority request number is 2 or more, or Condition No. 10: The high-priority request number is 0, and the medium-priority request number is 3 · Conditions assigned for low-priority packets Condition No. 3: The high-priority request number is 2, the medium-priority request number is 0, and the low-priority request number is 1 or more, Condition No. 6: The high-priority request number is 1, the medium-priority request number is 1, and the low-priority request number is 1 or more, Condition No. 7: The high-priority request number is 1, the medium-priority request number is 0, and the low-priority request number is 2 or more, Condition No. 11: The high-priority request number is 0, the medium-priority request number is 2, and the low-priority request number is 1 or more, Condition No. 12: The high-priority request number is 0, the medium-priority request number is 1, and the low-priority request number is 2 or more, or Condition No. 15: The high-priority request number is 0, the medium-priority request number is 0, and the low-priority request number is 3 or more

[0079] Once the allocation control unit 520 determines which priority packets to allocate to each reserve buffer, it controls the input selector 530 (531, 532, 533), the output selector 540 (541, 542, 543), and the selector 550 accordingly.

[0080] Note that, for example, each threshold value (the first threshold value, the second threshold value, the third threshold value, the fourth threshold value), the determination reference table 710, and the allocation table 720 are stored in the storage device included in the communication device 100.

[0081] Here, as described above, the allocation control unit 520 allocates in the order of the first B410, the second B420, and the third B430 according to the allocation table 720. The allocation table 720 is created such that when there are a plurality of allocation numbers, the reserve buffer whose output is connected to the input selector 530 (the previous stage) connected to the input of the previously allocated reserve buffer is allocated in order. Specifically, for example, when the number of allocations is 2, first, it is the first B410 and the second B420, or the second B420 and the third B430.

[0082] When the allocation control unit 520 cannot allocate the required number of reserve buffers for each priority, that is, when the number of reserve buffers to be allocated is less than the required number, it notifies each monitoring unit 510. Upon receiving the notification, the monitoring unit 510 notifies the packet writing unit 210 of the discard control signal via the discard signal line 640 for each priority. Note that if the required number of reserve buffers is allocated as a result of the allocation control, the discard control stop signal is notified to the packet writing unit 210 via the discard signal line 640.

[0083] [Allocation Control] The details of the control of each input selector 530, output selector 540, and selector 550 by the allocation control unit 520 will be described. Here, for the sake of explanation, for example, among the input selectors 530 in front of one standby buffer, the other standby buffer to which the output is connected is called the upstream standby buffer. For example, in the example of FIG. 3, the upstream standby buffer of the first B410 is the second B420. Also, the upstream standby buffer of the second B420 is the third B430. Also, in the example of FIG. 3, the first B410 is the most downstream standby buffer, and the third B430 is the most upstream standby buffer.

[0084] As shown in FIG. 3, packets of each priority are input from the first signal line 610 to the input selector 530 in front of the most upstream standby buffer. The input selector 530 selects one of them according to the control signal. Packets of each priority from the first signal line 610 and the output of the standby buffer upstream of that standby buffer are input to the input selector 530 in front of the standby buffer other than the most upstream one. The input selector 530 selects one of them according to the control signal.

[0085] The allocation control unit 520 connects the signal line of the first signal line 610 for that priority to the input of the most upstream standby buffer in the input selector 530 of the one or more standby buffers allocated for the same priority. That is, the input selector 530 is controlled to select and output packets from the signal line of that priority of the first signal line 610. In the input selector 530 of the standby buffer on the downstream side from the most upstream standby buffer, the output of the standby buffer one upstream is connected to its input.

[0086] Also, as shown in FIG. 3, packets of the priority of the main buffer to which each output selector 540 is connected are input to each output selector 540 from the first signal line 610. Further, the output of each standby buffer is input.

[0087] The allocation control unit 520 causes the output selector 540 connected to the main buffer of a certain priority to connect the output of the most downstream spare buffer among the spare buffers allocated for that priority to the input of the main buffer. In other words, each output selector 540 is controlled to output the packet output from the most downstream spare buffer allocated the same priority as the main buffer that is the output destination of that output selector 540 to the main buffer that is the output destination. Note that when there is no spare buffer allocated for that priority, the first signal line 610 is connected to the input of the main buffer.

[0088] Also, the allocation control unit 520 controls the selector 550 so that the data retention amount of the spare buffer allocated to each priority is input to the monitoring unit 510 that monitors the packets of that priority.

[0089] Here, a specific control example will be described.

[0090] For example, when the first B410 is allocated for high-priority packets, the flow of high-priority packets and the flow of spare retention amount information in the spare buffer unit 400 are respectively shown by thick lines and thick dashed-dotted lines in FIG. 7.

[0091] In this case, the allocation control unit 520 transmits control signals to the high-priority output selector 541, the first input selector 531, and the selector 550 to control the operations.

[0092] As shown in this figure, the allocation control unit 520 operates the high-priority output selector 541 so that the packet (read data) (S411) output from the first B410 is output to the main buffer unit 300 (high-priority MB310). Note that a signal instructing not to output the packet output from the first B410 is transmitted to the other output selectors 540 (medium-priority output selector 542 and low-priority output selector 543).

[0093] Also, the allocation control unit 520 operates the first input selector 531 so that the packet (S412) from the first high-priority signal line 611 among the first signal lines 610, on which high-priority packets are transmitted, is input to the first B410. Note that a signal for instructing that the packet from the first high-priority signal line 611 is not input is transmitted to the other input selectors 530 (the second input selector 532 and the third input selector 533).

[0094] Also, the allocation control unit 520 operates the selector 550 so that the reserve retention amount (S413) from the first B410 is input to the high-priority packet monitoring unit 511. At this time, the selector 550 is operated so that the reserve retention amount from the first B410 is not input to the other monitoring units 510 (the medium-priority packet monitoring unit 512 and the low-priority packet monitoring unit 513), and the reserve retention amount from the other reserve buffers (the second B420 and the third B430) is not input to the high-priority packet monitoring unit 511.

[0095] In this way, by the allocation control unit 520 controlling the high-priority output selector 541 and the first input selector 531, a data transfer operation in which the first B410 is used as a buffer resource for high-priority packets becomes possible. Also, the data retention amount of the first B410 can be monitored by the monitoring unit 510 as the reserve retention amount of high-priority packets.

[0096] For example, when the first B410 and the second B420 are allocated for high-priority packets, the flow of packets and the flow of data retention amounts in the reserve buffer unit 400 are respectively shown by thick lines and thick dashed-dotted lines in FIG. 8.

[0097] The allocation control unit 520 transmits control signals to the high-priority output selector 541, the first input selector 531, the second input selector 532, and the selector 550.

[0098] The allocation control unit 520 operates the high-priority output selector 541 so that the packet (read data) output from the first B410 (S411) is output to the main buffer unit 300. Note that a signal instructing not to output the packet output from the first B410 is transmitted to the other output selectors 540 (the medium-priority output selector 542 and the low-priority output selector 543).

[0099] Also, the allocation control unit 520 operates the first input selector 531 so that the output packet of the second B420 (S414) is input to the first B510. Further, the second input selector 532 is operated so that the packet from the first high-priority signal line 611 (S412) is input to the second B420. Note that a signal instructing not to input the packet from the first high-priority signal line 611 is transmitted to the other input selectors 530 (the third input selector 533).

[0100] Also, the selector 550 is operated so that the reserve retention amounts from the first B410 and the second B420 (S413, S415) are input to the high-priority packet monitoring unit 511. At this time, the selector 550 is operated so that the reserve retention amounts from the first B410 and the second B420 are not input to the other monitoring units 510 (the medium-priority packet monitoring unit 512 and the low-priority packet monitoring unit 513), and the reserve retention amount from the other reserve buffer (the third B430) is not input to the high-priority packet monitoring unit 511.

[0101] In this way, by the allocation control unit 520 controlling the high-priority output selector 541, the first input selector 531, and the second input selector 532, a data transfer operation using the first B410 and the second B420 as buffer resources for high-priority packets becomes possible. Also, the reserve retention amounts of the first B410 and the second B420 can be monitored by the monitoring unit 510 as the data retention amounts of high-priority packets.

[0102] FIG. 9 is an example of the transfer path of packets of each priority in the buffer unit 200 (main buffer unit 300 and preliminary buffer unit 400). Here, when the first B410 and the second B420 of the preliminary buffer unit 400 are assigned to high-priority packets and the third B430 is assigned to medium-priority packets, it shows the buffers through which the packets input via the first signal line 610 (611, 612, 613) pass until they are output from the main buffer unit 300.

[0103] The buffers for high-priority packets are the high-priority MB310 in the main buffer unit 300 and the first B410 and the second B420 in the preliminary buffer unit 400. These function as one FIFO memory. Specifically, the packets input from the first high-priority signal line 611 are first stored in the second B420. Then, they are output via the first B410 and the high-priority MB310.

[0104] The buffers for medium-priority packets are the medium-priority MB320 in the main buffer unit 300 and the third B430 in the preliminary buffer unit 400. These function as one FIFO memory. Specifically, the packets input from the first medium-priority signal line 612 are first stored in the third B430. Then, they are output via the medium-priority MB320.

[0105] The buffers for low-priority packets are only the low-priority MB330 in the main buffer unit 300. The packets input from the first low-priority signal line 613 are output only via the low-priority MB330.

[0106] As described above, the communication device 100 of the present embodiment has the same configuration as that of the first embodiment. Therefore, similar to the first embodiment, according to the data retention amount, a preliminary buffer composed of a plurality of FIFO memories is allocated and used in units of FIFO memories in order from those with a high priority. That is, the same preliminary buffer is appropriately used in units of FIFO memories for each priority as needed. Therefore, compared with a method of providing dedicated memories as buffers for each priority, a region for temporarily storing packets of each priority can be secured in order from those with a high priority with less memory. In addition, since the allocation is performed in units of FIFO memories, memory management and access control are simpler than a method of sharing a single memory among different priorities.

[0107] Therefore, according to the present embodiment, in the communication device 100 that performs QoS control for preferentially transferring packets with a high priority, it is possible to achieve both an improvement in the usage efficiency of the memory and suppression of the discard of packets with a high priority without performing complicated control with a simple configuration.

[0108] <Modification Example 1> In each of the above embodiments, the number of packet priorities is three (high priority, medium priority, low priority), and the case where the number of preliminary buffers in the preliminary buffer unit 400 is three has been described as an example. However, the number of priority types and the number of preliminary buffers are not limited to this. Any number may be used as long as there are a plurality of them.

[0109] For example, when changing the number of priority types, the number of dedicated buffers in the main buffer unit 300, the output selector 540 and the monitoring unit 510 in the preliminary buffer unit 400 provided for each priority are changed according to the number of priority types. Further, the conditions of the allocation table 720 are also changed according to the number of priority types.

[0110] For example, when changing the number of preliminary buffers in the preliminary buffer unit 400, the number of input selectors 530 provided for each preliminary buffer and the number of input data of the output selector 540 are changed according to the number of preliminary buffers. Also, the number of threshold values in the determination criterion table 710 is changed according to the number of preliminary buffers. Furthermore, the number of conditions in the allocation table 720 is also changed accordingly.

[0111] <Modification Example 2> In each of the above embodiments, the allocation control unit 520 transmits control signals to the input selector 530, the output selector 540, and the selector 550 according to the connection relationship of each preliminary buffer after the preliminary buffer allocation, but it is not limited thereto. For example, the control signals to be transmitted to each selector may be stored in advance for each condition of the allocation table 720.

[0112] <Modification Example 3> Also, in each of the above embodiments, the monitoring units 510 for each priority perform the determination of the required number synchronously at a predetermined time interval, but it is not limited thereto. For example, the determination may not be synchronous. Each monitoring unit 510 may perform the determination at its own timing and notify the allocation control unit 520. In this case, the allocation control unit 520 may execute the allocation control, for example, at a predetermined time interval. And when executing the allocation control, the latest required number notified from each monitoring unit 510 is used.

[0113] Also, the allocation control unit 520 may execute, for example, according to a predetermined event. Also, it may be configured to execute according to an instruction from the user.

[0114] For example, the monitoring unit 510 may perform these determinations at the timing when the threshold value is exceeded by packet writing or at the timing when the threshold value is fallen below by packet reading, and notify the allocation control unit 520.

[0115] <Modification Example 4> Also, in each of the above embodiments, in the transmission unit 150 that transfers packets to an external device, QoS control is executed using the main buffer unit 300 and the reserve buffer unit 400. However, it is not limited to this. For example, in other functional units within the communication device 100, such as the reception unit 130, these buffer units may be prepared and QoS control may be executed.

[0116] <Modification Example 5> Also, in each of the above embodiments, a layer 2 switch has been described as an example of the communication device 100. However, the communication device 100 is not limited to this. For example, it may be another device that performs QoS control using a packet storage buffer, such as a layer 3 switch, a router, or a layer 4 switch.

[0117] <Modification Example 6> Also, in each of the above embodiments, the allocation of the reserve buffer is performed according to the allocation table 720. In the allocation table 720, allocation is performed with high priority from the most downstream reserve buffer, and when the same priority is allocated, it is also allocated to consecutive reserve buffers. However, it is not limited to this. For example, in the case of a service where there is no problem even if the transfer order of the packets is reversed, the allocation order does not have to be fixed. Also, the reserve buffers to which the same priority is allocated do not have to be consecutive.

[0118] [Hardware Configuration] The above monitoring unit 510 and allocation control unit 520 may be realized, for example, by the control device 900 shown in FIG. 10. The control device 900 includes a CPU (Central Processing Unit) 991, a main storage device (memory) 992, an auxiliary storage device 993, and an I / F 994, which are interconnected by an internal bus.

[0119] The CPU 991 realizes each of the above functions by, for example, loading a program stored in the auxiliary storage device 993 into the main storage device 992 and executing it, and comprehensively controls the entire communication device 100 (or 100a). Note that one or more processors such as an MPU (Micro Processing Unit) may be used instead of the CPU 991.

[0120] The main storage device 992 is a memory such as a RAM (Random Access Memory). The main storage device 992 is a work area when the CPU 991 processes programs executed by the monitoring unit 510 and the allocation control unit 520, respectively.

[0121] The auxiliary storage device 993 is, for example, a ROM (Read Only Memory), an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like. The auxiliary storage device 993 stores various programs executed by the monitoring unit 510 and the allocation control unit 520, respectively. Note that the auxiliary storage device 993 may include a storage medium such as a flexible disk, a hard disk, an optical disk, a CD-ROM, a CD-R, a magnetic tape, a non-volatile memory card, a DVD, or the like.

[0122] Note that the program stored in the auxiliary storage device 993 can be provided as a program product recorded on a non-transitory computer-readable storage medium. The auxiliary storage device 993 can be used to store various programs recorded on a non-transitory computer-readable storage medium in the medium to long term.

[0123] The I / F 994 is an interface for input / output of various data such as control signals and notifications. Also, as an extended interface, a display device, an input device, or the like may be connected. The display device is, for example, a liquid crystal monitor or the like. The input device is a device that receives user operations such as a keyboard and a mouse.

[0124] Each of the above functions of the monitoring unit 510 and the allocation control unit 520 is realized by the CPU 991 loading and executing a program stored in the auxiliary storage device 993 into the main storage device 992.

[0125] Also, each threshold value, each table, etc. are stored in, for example, the auxiliary storage device 993.

[0126] Note that the hardware configurations of the monitoring unit 510 and the allocation control unit 520 are not limited to this. They may include hardware not shown.

[0127] Also, the programs for realizing the above functions of the monitoring unit 510 and the allocation control unit 520 of the present embodiment can be recorded on a computer-readable storage medium. The storage medium can be a non-transient one such as a semiconductor memory, a hard disk, a magnetic recording medium, an optical recording medium, etc. The present invention can also be embodied as a computer program product.

[0128] Also, each function of the monitoring unit 510 and the allocation control unit 520 can be implemented by, for example, dedicated integrated circuits (ICs) for each process, application-specific integrated circuits (ASICs), system-on-chips (SOCs), field-programmable gate arrays (FPGAs), etc.

[0129] Note that in the processing flow used in the above description, a plurality of steps (processes) are described in order, but the execution order of each step is not limited to the described order. For example, the order of the illustrated steps can be changed within a range that does not affect the content, such as executing each process in parallel.

[0130] As described above, each embodiment and modification of the present invention have been explained. However, the present invention is not limited to the above-described embodiments, and various changes that can be understood by those skilled in the art can be made. And each embodiment and modification can be combined with other embodiments as appropriate. Also, for example, the network configuration shown in each drawing and the configuration of each element are examples for assisting the understanding of the present invention, and are not limited to the configurations shown in these drawings.

[0131] Finally, the preferred forms of the present invention are summarized. Some or all of the above embodiments may be described as follows in the appended claims, but are not limited thereto. (Appended Claim 1) The communication device includes a main buffer unit including main buffers provided for each of a plurality of types of priorities, a spare buffer unit including a plurality of spare buffers, a monitoring unit that monitors the data retention amounts of the main buffer and the spare buffers for each of the priorities, and an allocation control unit that, in order from the highest priority, allocates the plurality of spare buffers to the priority according to the data retention amount for each of the priorities, and controls the allocated spare buffer to store packets of the priority. (Appended Claim 2) In the communication device according to Appended Claim 1, the monitoring unit monitors, for each of the priorities, a total retention amount that is the sum of the data retention amount of the main buffer provided for the priority and the data retention amount of the spare buffer to which the priority is allocated, determines a required number that is the number of required spare buffers based on the total retention amount, and notifies the allocation control unit, and it is desirable that the allocation control unit allocates the required number of spare buffers to the priority in order from the highest priority. (Appended Claim 3) In the communication device according to Appended Claim 2, it is desirable that the monitoring unit determines the required number according to a determination criterion table storing the required number according to the total retention amount. (Appended Claim 4) In the communication device according to Supplementary Note 2 or 3, It is desirable that the allocation control unit allocate the preliminary buffers to each of the priorities according to an allocation table storing the preliminary buffers to be allocated according to the number of requests for each priority. (Supplementary Note 5) In the communication device according to any one of Supplementary Notes 1 to 4, An input selector is provided in front of each of the plurality of preliminary buffers, An output selector is provided in front of each of the plurality of main buffers, It is desirable that the allocation control unit control the storage of the packets by transmitting a control signal to each of the input selectors and each of the output selectors. (Supplementary Note 6) In the communication device according to any one of Supplementary Notes 1 to 5, A selector is provided between the plurality of preliminary buffers and the monitoring unit, It is desirable that the allocation control unit cause the monitoring unit to acquire the data retention amount for each priority from the plurality of preliminary buffers by transmitting a control signal to the selector. (Supplementary Note 7) A communication method is, A main buffer unit including main buffers provided for each of a plurality of types of priorities, A preliminary buffer unit including a plurality of preliminary buffers, and a communication method in a communication device including the same, Monitoring the data retention amounts of the main buffer and the preliminary buffer for each priority, Allocating the plurality of preliminary buffers to the priority in order from the highest priority according to the data retention amount for each priority, Controlling the allocated preliminary buffer to store packets of the priority. (Supplementary Note 8) A program is, In a computer of a communication device including a main buffer unit including main buffers provided for each of a plurality of types of priorities and a preliminary buffer unit including a plurality of preliminary buffers, A procedure for monitoring the data retention amounts of the main buffer and the backup buffer for each priority level, A procedure for allocating a plurality of the backup buffers to the corresponding priority levels in descending order of the priority levels according to the data retention amounts for each priority level, A procedure for controlling the allocated backup buffer to store packets of the corresponding priority level, are executed. Note that the forms of Supplementary Notes 7 and 8 can be developed into the forms of Supplementary Notes 2 - 6 in the same manner as Supplementary Note 1.

[0132] Note that the disclosures of the above patent documents and the like are incorporated herein by reference. Within the scope of the entire disclosure of the present invention (including the claims), further changes and adjustments of the embodiments or modifications can be made based on the basic technical idea. Also, within the scope of the disclosure of the present invention, various combinations or selections of various disclosure elements (including each element of each claim, each element of each embodiment or modification, each element of each drawing, etc.) are possible. That is, the present invention naturally includes all the disclosures including the claims and various deformations and corrections that a person skilled in the art could make according to the technical idea. In particular, for the numerical ranges described in this document, any numerical value or small range included within the range should be construed as being specifically described even in the absence of separate description.

Explanation of Reference Numerals

[0133] 100: Communication device, 100a: Communication device, 120: Input port, 130: Receiver, 140: Switch unit, 150: Transmitter, 150a: Transmitter, 150b: Transmitter, 170: Output port, 170a: Output port, 170b: Output port, 200: Buffer unit, 200a: Buffer unit, 210: Packet writing unit, 220: Packet reading unit, 300: Main buffer section, 300a: Main buffer section, 310: High-priority main buffer (High-priority MB), 310a: High-priority main buffer (High-priority MB), 320: Medium-priority main buffer (Medium-priority MB), 320a: Medium-priority main buffer (Medium-priority MB), 330: Low-priority main buffer (Low-priority MB), 330a: Low-priority main buffer (Low-priority MB), 400: Spare buffer section, 400a: Spare buffer section, 410: First spare buffer (First B), 410a: First spare buffer (First B), 420: Second spare buffer (Second B), 420a: Second spare buffer (Second B), 430: Third spare buffer (Third B), 430a: Third spare buffer (Third B), 500a: Control section, 510: Monitoring section, 510a: Monitoring section, 511: High-priority packet monitoring section, 512: Medium-priority packet monitoring section, 513: Low-priority packet monitoring section, 520: Allocation control section, 520a: Allocation control section, 521: Control line, 530: Input selector, 531: First input selector, 532: Second input selector, 533: Third input selector, 540: Output selector, 541: High-priority output selector, 542: Medium-priority output selector, 543: Low-priority output selector, 550: Selector, 560: Signal line, 610: Priority-based data signal line (First signal line), 611: First high-priority signal line, 612: First medium-priority signal line, 613: First low-priority signal line, 620: Priority-based data signal line (Second signal line), 621: Second high-priority signal line, 622: Second medium-priority signal line, 623: Second low-priority signal line, 630: Priority-based data signal line (Third signal line), 631: Third high-priority signal line, 632: Third medium-priority signal line, 633: Third low-priority signal line, 640: Discard signal line, 650: Priority-based data signal line, 710: Judgment criterion table, 711: Judgment criterion, 712: Spare buffer required number, 720: Allocation table, 721: Condition No., 722: Required number, 723: Allocation, 900: Control device, 991: CPU, 992: Main memory device, 993: Auxiliary storage device, 994: I / F, S411: High-priority packet, S412: High-priority packet, S413: Spare retention amount, S414: High-priority packet, S415: Spare retention amount

Claims

1. A main buffer unit including main buffers provided for each of a plurality of types of priorities; A preliminary buffer unit including a plurality of preliminary buffers to which priorities can be individually and dynamically assigned; A monitoring unit that monitors the data retention amounts of the main buffer and the preliminary buffers for each of the priorities; An allocation control unit that, in order from the highest priority, allocates the plurality of preliminary buffers to the priority according to the data retention amount for each priority, and controls the allocated preliminary buffers to store packets of the priority. A communication device comprising:

2. The communication device according to claim 1, wherein the monitoring unit monitors, for each of the priorities, a total retention amount that is the sum of the data retention amount of the main buffer provided for the priority and the data retention amount of the preliminary buffer to which the priority is assigned, and based on the total retention amount, determines a required number that is the number of the preliminary buffers required and notifies the allocation control unit; The allocation control unit allocates the required number of preliminary buffers to the priority in order from the highest priority. A communication device.

3. The communication device according to claim 2, wherein the monitoring unit determines the required number according to a determination criterion table storing the required number according to the total retention amount. A communication device.

4. The communication device according to claim 2, wherein the allocation control unit allocates the preliminary buffers to each of the priorities according to an allocation table storing the preliminary buffers to be allocated according to the required number for each priority. A communication device.

5. The communication device according to claim 1, wherein input selectors are provided in front of the plurality of preliminary buffers respectively; wherein output selectors are provided in front of the plurality of main buffers respectively; The allocation control unit controls the storage of the packets by transmitting control signals to each of the input selectors and each of the output selectors. A communication device.

6. The communication device according to claim 1, wherein a selector is provided between the plurality of preliminary buffers and the monitoring unit; The allocation control unit causes the monitoring unit to acquire the data retention amount for each priority from the plurality of preliminary buffers by transmitting a control signal to the selector. A communication device.

7. A main buffer unit including main buffers provided for each of a plurality of types of priorities; A communication method in a communication device including a preliminary buffer unit having a plurality of preliminary buffers capable of dynamically assigning priorities individually, monitor the data retention amounts of the main buffer and the preliminary buffers for each of the priorities, assign the plurality of preliminary buffers to the priority according to the data retention amount for each priority in order from the highest priority, and control the assigned preliminary buffer to store packets of the priority.

8. A main buffer unit including a main buffer provided for each of a plurality of types of priorities, A program for causing a computer of a communication device including a preliminary buffer unit having a plurality of preliminary buffers capable of dynamically assigning priorities individually to execute the communication method according to claim 7.

Citation Information

Patent Citations

  • Packet forwarding device and queue management method

    CN115250256A

  • Buffer control system in packet exchange device

    JP1994085840A

  • Packet buffering device

    JP2002290455A

  • Adaptive network load distribution system and packet switching device

    JP2003078555A

  • Modem for satellite communication, data transmission adapter, and modulation-demodulation unit

    JP2012235263A