Communication devices, communication methods, and programs

The communication device optimizes memory usage and prevents high-priority packet discarding by employing priority-based spare buffer allocation in a FIFO memory system, addressing the inefficiencies of shared buffer schemes.

JP7838859B2Active Publication Date: 2026-04-01NEC PLATFROMS LTD
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2026-04-01

AI Technical Summary

Technical Problem

Existing communication devices with shared buffer schemes face challenges in managing memory efficiently while ensuring high-priority packets are not discarded, requiring complex memory address management and access control.

Method used

A communication device with main buffers for each priority level and dynamically assignable spare buffers, where spare buffers are allocated based on data accumulation, prioritizing high-priority packets using FIFO memory to prevent discarding.

Benefits of technology

This approach enhances memory usage efficiency and suppresses high-priority packet discarding with a simple configuration, avoiding complex control mechanisms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007838859000001
    Figure 0007838859000001
  • Figure 0007838859000002
    Figure 0007838859000002
  • Figure 0007838859000003
    Figure 0007838859000003
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 in each output destination port, buffers for temporarily storing packets are provided for each output port. Further, a communication device that supports QoS (Quality of Service) control for preferentially transferring packets with high priority includes buffers capable of controlling 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 each priority 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 that "when the amount of packets stored in the shared buffer exceeds the threshold corresponding to a predetermined priority, writing packets of that priority to the shared buffer is suppressed (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 scheme is highly memory-efficient because packets of each priority level can use available memory space. As a result, the total memory size can be reduced compared to schemes that use dedicated memory for each priority level. On the other hand, the shared buffer scheme requires complex memory address management and access control because multiple priority packets need to be able to randomly access a single memory area.

[0007] For example, according to the technology disclosed in Patent Document 1, the packet reading unit reads unread frames stored in the shared buffer using a strict priority method. Specifically, when reading a frame, if a relatively high-priority frame is stored in the shared buffer, the packet reading unit will read the high-priority frame, even if a large number of relatively low-priority frames are stored there, or if they were stored earlier. Therefore, priority-based management of received packet storage addresses and storage order, as well as control over updating this management information and memory access during packet transmission and reception, are necessary.

[0008] The present invention has been made in view of the above circumstances, and aims to provide a technology for a communication device that performs QoS control to preferentially forward high-priority packets, which achieves both improved memory usage efficiency and suppression of discarding high-priority packets with a simple configuration and without complex control. [Means for solving the problem]

[0009] According to the first aspect of this invention, A main buffer section equipped with main buffers for each of several priority levels, A spare buffer section having multiple spare buffers to which priority can be dynamically assigned individually, A monitoring unit monitors the amount of data accumulated in the main buffer and the auxiliary buffer according to the priority, A communication device is provided, comprising: an allocation control unit that allocates a plurality of the reserve buffers to the respective priority levels in order from the highest priority level, according to the amount of data accumulating for each priority level, and controls the allocation of the reserve buffers so that packets of that priority level are stored in the allocated reserve buffers.

[0010] According to a second aspect of the present invention, A main buffer section equipped with main buffers for each of several priority levels, A communication method in a communication device comprising: a spare buffer unit having multiple spare buffers to which priority can be dynamically assigned individually; The amount of data accumulated in the main buffer and the auxiliary buffer is monitored according to the priority level. In order from the highest priority, a plurality of the reserve buffers are assigned to each priority according to the amount of data accumulating for each priority. A communication method is provided that controls the storage of packets of the corresponding priority in the allocated reserve buffer.

[0011] According to a third aspect of the present invention, A main buffer section equipped with main buffers for each of several priority levels, A program is provided to cause a computer in a communication device, which includes a spare buffer section having multiple spare buffers to which priority can be dynamically assigned individually, to execute the above-described communication method.

[0012] This program can be recorded on a computer-readable storage medium. The storage medium can be a non-transient medium such as semiconductor memory, hard disk, magnetic recording medium, or optical recording medium. The present invention can also be embodied as a computer program product. [Effects 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 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] It is a configuration diagram of an example of the communication device of the present disclosure. [Figure 2] It is a configuration diagram of an example of the communication device of the present disclosure. [Figure 3] It is a configuration diagram of an example of the buffer unit of the present disclosure. [Figure 4] It is an explanatory diagram for explaining an example of the determination criterion table of the present disclosure. <​​​​​​​​​​​​​​​​​​​​​​​​​

[0016] Furthermore, although there are ports and interfaces at the input / output connection points of each block in the diagram, they are omitted from the illustration. Also, in the following explanation, "A and / or B" means A or B, or A and B.

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

[0018] The communication device 100a of this embodiment includes a main buffer, dedicated to each priority level, and a plurality of spare buffers, which serve as buffers for temporarily storing packets when congestion occurs. By individually and dynamically assigning priorities to each spare buffer according to the amount of data accumulating for each priority level, QoS (Quality of Service) control is realized in a FIFO memory where FIFO (First In First Out) control is performed, prioritizing the forwarding of high-priority packets while suppressing the discarding of high-priority packets.

[0019] The following describes the communication device 100a of this embodiment that realizes this. Figure 1 is a configuration diagram of the communication device 100a of this embodiment, showing the configuration related to the realization of the functions of this embodiment.

[0020] The communication device 100a of this embodiment is equipped with multiple input / output ports and receives packets with one of several priority levels set. In the following, as an example, it will be assumed that packets are assigned one of three priority levels: high priority, medium priority, or low priority. Hereafter, packets with high priority will be referred to as high-priority packets, packets with medium priority will be referred to as medium-priority packets, and packets with low priority will be referred to as low-priority packets.

[0021] The communication device 100a is equipped with a buffer unit 200a for each output port to temporarily store packets in order to suppress packet loss when congestion occurs at each output port. The buffer unit 200a comprises a main buffer unit 300a, a reserve buffer unit 400a, and a control unit 500a.

[0022] The main buffer section 300a includes a dedicated main buffer for each of several priority levels, provided to store packets with the corresponding priority. In this embodiment, it includes a main buffer for high-priority packets (high-priority MB) 310a, a main buffer for medium-priority packets (medium-priority MB) 320a, and a main buffer for low-priority packets (low-priority MB) 330a. Each of these main buffers is a FIFO memory.

[0023] The spare buffer section 400a is equipped with multiple spare buffers as physical resources for storing packets. These are spare buffers to be used when congestion occurs and there is no longer enough space to store packets in one or more of the priority-dedicated buffers of the main buffer section 300a.

[0024] In this embodiment, as an example, three spare buffers are provided. 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 there may be multiple spare buffers. Each of the spare buffers is a FIFO memory.

[0025] These spare buffers are dynamically assigned to one of the priorities individually (on a per-sparing-buffer basis) by the allocation control unit 520a, which will be described later. Assigning to a priority means that it will be used as a spare buffer for packets to which that priority has been set.

[0026] The control unit 500a assigns each of the spare buffers of the spare buffer unit 400a to one of the priority levels. In this embodiment, the system includes a monitoring unit 510a and an assignment control unit 520a.

[0027] The monitoring unit 510a monitors the data retention amount (packet retention amount) of each buffer in the main buffer unit 300a and the auxiliary buffer unit 400a according to priority, and notifies the allocation control unit 520a of the results.

[0028] The allocation control unit 520a determines which priority to assign each of the multiple spare buffers to, based on the monitoring results from the monitoring unit 510a. That is, it determines which priority to assign the first B410a, second B420a, and third B430a to, based on the amount of data backed up for each priority notified by the monitoring unit 510a. In making this determination, higher priority is given priority. In other words, the necessary spare buffers are allocated in order of data backed up, starting with those with the highest priority.

[0029] Furthermore, the allocation control unit 520a controls the operation of the reserve buffer unit 400a and controls the packets of each priority to be stored in the first B410a, second B420a, and third B430a according to the determined allocation.

[0030] As described above, the communication device 100a of this embodiment is equipped with multiple buffers composed of FIFO memories as spare buffers, and allocates and uses them in FIFO memory units in order of priority, starting with the highest priority, according to the amount of data accumulating. The spare buffers can be used separately for each priority as needed. Therefore, compared to a system in which dedicated memory is provided as a buffer for each priority, packets of each priority can be temporarily stored with less memory. Also, since allocation is performed on a FIFO memory unit basis, memory management and access control are simpler compared to a system in which a single memory is shared among each priority. Furthermore, allocation is performed in order from the highest priority.

[0031] Therefore, according to this embodiment, in a communication device 100a that performs QoS control to preferentially forward high-priority packets, it is possible to achieve both improved memory usage efficiency and suppression of discarding high-priority packets with a simple configuration and without performing complex control.

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

[0033] In this embodiment, we will explain using the case where a Layer 2 switch is used as the communication device 100. 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, a Layer 2 switch stores the MAC addresses of devices connected by LAN (Local Area Network) cables and communicates by knowing which device is connected to which port.

[0034] In this embodiment, the multiple types of priority packets will be explained using the example of high-priority packets, medium-priority packets, and low-priority packets. High-priority packets may be, for example, packets from VoIP (Voice over Internet Protocol) services or packets from video and audio streaming services. Medium-priority packets may be, for example, packets from email services. Low-priority packets may be, for example, packets from file transfer services.

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

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

[0037] The receiving unit 130 receives MAC frames (hereinafter simply referred to as packets), which are Ethernet® frames transmitted from an external device, via the input port 120, and determines the output port 170 (170a or 170b) for the packet. Each packet is assigned a priority. In this embodiment, one of high priority, medium priority, or low priority is assigned.

[0038] The switch unit 140 forwards packets received by the receiver unit 130 and for which the output port 170 has been determined to, to the transmitter unit 150 which is associated with that output port 170.

[0039] The transmitting unit 150 performs packet forwarding processing to an external device. During this process, it also performs QoS control. The transmitting unit 150 is provided in association with the output port 170. In this embodiment, for example, the system includes transmitting units 150a and 150b. For example, transmitting unit 150a is provided in association with output port 170a, and transmitting unit 150b is provided in association with output port 170b. Hereafter, unless otherwise necessary, the unit will be referred to simply as 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 perform packet forwarding processing while performing QoS control. The buffer unit 200 also includes a spare buffer unit 400 and a main buffer unit 300.

[0041] Each component is connected via priority data signal lines 610, 620, 630, and 650. These priority data signal lines are provided according to the priority set for the packets to be transmitted.

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

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

[0044] The spare buffer unit 400 forwards packets input from the packet writing unit 210 to the main buffer unit 300 via priority-based data signal lines (second signal lines) 620, according to the priority set for each packet. In this embodiment as well, similar to the configuration of the same name in the first embodiment, there are multiple spare buffers configured as FIFO memories.

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

[0046] The monitoring unit 510, similar to the configuration of the same name in the first embodiment, monitors the amount of data (packets) accumulating in the main buffer and the reserve buffer according to priority, and notifies the allocation control unit 520 of the results. Details will be described later.

[0047] The allocation control unit 520, similar to the configuration of the first embodiment, determines which priority each of the multiple spare buffers should be used for (which priority to assign it to) based on the monitoring results of the monitoring unit 510. Details will be described later.

[0048] The main buffer unit 300 notifies the auxiliary buffer unit 400 of information indicating the amount of data accumulating in the main buffers, which are provided specifically for each priority level, via the priority-specific data signal line (third signal line) 630. Also, similar to the configuration of the same name in the first embodiment, a dedicated main buffer (FIFO memory) is provided for each of the multiple types of priority levels.

[0049] The packet reading unit 220 reads unread packets stored in the main buffer unit 300 using the Strict Priority method via the priority data signal line (fifth signal line) 650. Specifically, if relatively high-priority packets are stored in the main buffer unit 300 at the time of reading, the packet reading unit 220 will read the high-priority packets even if a large number of relatively low-priority packets are stored there, or even if they were stored earlier. The read packets are 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. Figure 3 is a detailed configuration diagram of the buffer unit 200 of this embodiment. As described above, the buffer unit 200 comprises a main buffer unit 300 and a spare buffer unit 400.

[0051] First, let's explain the configuration of the main buffer section 300. The main buffer section 300 is equipped with 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 configured as FIFO memories.

[0052] The main buffer unit 300 stores packets forwarded from the auxiliary buffer unit 400 sequentially in dedicated main buffers for each priority level (high priority MB310, medium priority MN320, low priority MB330) according to the packet's priority. Furthermore, in accordance with the read control of the packet read unit 220, packets are forwarded to the packet read unit 220 sequentially, starting with the highest priority packets and then the packets that were stored first, according to their respective priority levels.

[0053] Packets are stored in the dedicated main buffer for each priority level from the auxiliary buffer section 400 via the second signal line 620. Specifically, high-priority MB310 stores high-priority packets via the second high-priority signal line 621 of the second signal line 620. Medium-priority MB320 stores medium-priority packets via the second medium-priority signal line 622 of the second signal line 620. Low-priority MB330 stores low-priority packets via the second low-priority signal line 623 of the second signal line 620.

[0054] Furthermore, the main buffer unit 300 notifies the reserve buffer unit 400 of the amount of data (packet data) waiting to be read from each dedicated main buffer of each priority, as MB data.

[0055] The amount of MBs backed up by the high-priority MB310 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 amount of MBs backed up by the medium-priority MB320 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 amount of MBs backed up by the low-priority MB330 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 spare buffer section 400 will be described. The spare buffer section 400 comprises a first spare buffer (first B) 410, a second spare buffer (second B) 420, and a third spare buffer (third B) 430. All of these are composed of FIFO memory.

[0057] Furthermore, the auxiliary 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 amount of each buffer in the main buffer unit 300 and the auxiliary buffer unit 400 according to priority. In this embodiment, the monitoring unit 510 is provided according to priority. Specifically, it includes a high-priority packet monitoring unit 511 that monitors the data retention amount of the buffer where high-priority packets are stored, a medium-priority packet monitoring unit 512 that monitors the data retention amount of the buffer where medium-priority packets are stored, and a low-priority packet monitoring unit 513 that monitors the data retention amount of the buffer where low-priority packets are stored.

[0059] The monitoring unit 510 monitors the total data backlog for each priority level, which is the sum of the MB backlog (data backlog sent from the main buffer unit 300) and the reserve backlog (data backlog sent from the reserve buffers assigned to that priority level in the reserve buffer unit 400). Based on the total backlog, it determines the required number of reserve buffers (requested number) for each priority level and notifies the allocation control unit 520.

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

[0061] Similar to the first embodiment, the allocation control unit 520 determines, based on the monitoring results from the monitoring unit 510, which priority each of the multiple spare buffers should be used for. That is, it determines which priority to assign the first B410, second B420, and third B430 to, based on the number of spare buffers requested for each priority. The allocation is performed in order of priority (from highest priority to lowest).

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

[0063] In this embodiment, the spare buffer unit 400 stores priority-based packets transferred from the packet writing unit 210 into the assigned spare buffer via the input selector 530, according to the instructions of the allocation control unit 520. Then, starting with the packets stored first, it transfers them to the main buffer unit 300 via the output selector 540, according to their priority.

[0064] The allocation method for the spare buffer will be described later. Depending on the priority, some packets may not use the spare buffer. Packets with a priority that does not have any spare buffers allocated to them are not stored in the spare buffers (first B410, second B420, third B430) but are forwarded to the main buffer section 300 via the output selector 540.

[0065] Furthermore, the selector 550 is not required. Each monitoring unit 510 (high-priority packet monitoring unit 511, medium-priority packet monitoring unit 512, low-priority packet monitoring unit 513) may be notified of the amount of data accumulating in all high, medium, and low priority reserve buffers (first B410, second B420, third B430), and each monitoring unit 510 may be configured to use only the necessary information.

[0066] [Allocation of spare buffer] Next, the pre-buffer allocation process performed by the monitoring unit 510 and the allocation control unit 520 of this embodiment will be described.

[0067] As described above, the monitoring unit 510 determines the required number of reserve buffers (requests) according to the total backlog for each priority level and notifies the allocation control unit 520. The number of requests is determined, for example, according to a pre-stored judgment criterion table 710 that associates the total backlog, threshold, and number of requests.

[0068] Figure 4 shows an example of the judgment criteria table 710. As shown in this figure, the judgment criteria table 710 stores the number of requested reserve buffers (reserve buffer request number 712) associated with each judgment criterion 711 that shows the relationship between the total stagnant amount and the threshold.

[0069] In this embodiment, we will explain using, for example, the case where four thresholds (first threshold, second threshold, third threshold, and fourth threshold) are used. These have the following meanings, as shown in Figure 5, for example. Note that in Figure 5, the first B410, second B420, and third B430 are assigned in that order.

[0070] The first threshold is used to determine whether there is free space in each of the main buffers of priority (high priority MB310, medium priority MN320, low priority MB330) of the main buffer unit 300. The second threshold is used to determine whether the first spare buffer (first B410) of the spare buffer unit 400 is free or not. The third threshold is used to determine whether the second spare buffer (second B420) of the spare buffer unit 400 is free or not. The fourth threshold is used to determine whether the third spare buffer (third B430) of the spare buffer unit 400 is free or not. These thresholds have the relationship: first threshold < second threshold < third threshold < fourth threshold.

[0071] As shown in Figure 5(a), if the total stagnant volume is less than the first threshold, no spare buffer is needed. Therefore, as shown in Figure 4, the number of requests is 0. As shown in Figure 5(b), if the total stagnant volume is greater than or equal to the first threshold and less than the second threshold, one spare buffer is needed. Therefore, the number of requests is 1. As shown in Figure 5(c), if the total stagnant volume is greater than or equal to the second threshold and less than the third threshold, two spare buffers are needed. Therefore, the number of requests is 2. As shown in Figure 5(d), if the total stagnant volume is greater than or equal to the third threshold and less than the fourth threshold, three spare buffers are needed. Therefore, the number of requests is 3. Also, if the total stagnant volume is greater than or equal to the fourth threshold, in this embodiment there are three spare buffers, so in this case as well, the number of requests is 3.

[0072] Each priority monitoring unit 510 makes the above determination regarding the amount of data backlogged for its respective priority, determines the number of requests for each, and notifies the allocation control unit 520. For example, the high-priority packet monitoring unit 511 makes the above determination regarding the total amount of high-priority packets backlogged and notifies the allocation control unit 520 of the number of reserve buffer requests (high-priority requests) for high-priority packets. The medium-priority packet monitoring unit 512 makes the above determination regarding the total amount of medium-priority packets backlogged and notifies the allocation control unit 520 of the number of reserve buffer requests (medium-priority requests) for medium-priority packets. The low-priority packet monitoring unit 513 makes the above determination regarding the total amount of low-priority packets backlogged and notifies the allocation control unit 520 of the number of reserve buffer requests (low-priority requests) for low-priority packets.

[0073] Each priority monitoring unit 510 performs these determinations synchronously at predetermined time intervals and notifies the assignment control unit 520.

[0074] When the allocation control unit 520 receives a request number from each monitoring unit 510, it performs an allocation process (arbitration process) to allocate each spare buffer to a specific priority based on the input request number, up to the limit of the total number of spare buffers.

[0075] In other words, the allocation control unit 520 first allocates each spare buffer for high-priority packets according to the number of high-priority requests, allocates the remaining spare buffers for medium-priority packets according to the number of medium-priority requests, and then allocates the remaining spare buffers for low-priority packets according to the number of low-priority requests. That is, it performs priority control of the allocation so that the relationship is high-priority packets > medium-priority packets > low-priority packets.

[0076] The allocation is performed, for example, according to a pre-stored allocation table 720. For example, Figure 6 shows an example of an allocation table 720 that stores the allocation of each spare buffer for each determination condition (combination of the number of requests for each priority) when allocating in the order of first B410, second B420, and third B430 among the spare buffers.

[0077] As shown in this figure, the allocation table 720 registers the number of requests 722 for each priority of condition No. 721, which uniquely identifies each combination of request numbers as a condition, and the allocation 723 for each reserve buffer under that condition.

[0078] Specifically, each of the spare buffers in the spare buffer section 400 (first B410, second B420, third B430) is allocated to packets of the following priorities if the following conditions are met. First B410: • Conditions for allocation to high-priority packets Conditions No. 1-9: Number of high-priority requests is 1 or more. • Conditions for allocation to medium-priority packets Conditions No. 10-14: Number of high-priority requests is 0, and number of medium-priority requests is 1 or more. • Conditions for allocation to low-priority packets Conditions No. 15-17: The number of high-priority requests and medium-priority requests is 0, and the number of low-priority requests is 1 or more. Second B420: • Conditions for allocation to high-priority packets Conditions No. 1-4: Number of high-priority requests is 2 or more. • Conditions for allocation to medium-priority packets Conditions No. 5-6: Number of high-priority requests is 1, AND number of medium-priority requests is 1 or more, Conditions No. 10-11: Number of high-priority requests is 0, and the number of medium-priority requests is 2 or more. • Conditions for allocation to low-priority packets Conditions No. 7-8: The number of high-priority requests is 1, the number of medium-priority requests is 0, and the number of low-priority requests is 1 or more. Conditions No. 12-13: Number of high-priority requests is 0, number of medium-priority requests is 1, and number of low-priority requests is 1 or more, or Conditions No. 15-16: Number of high-priority requests is 0, number of medium-priority requests is 0, and number of low-priority requests is 2 or more. Third B430: • Conditions for allocation to high-priority packets Condition No. 1: Number of high-priority requests is 3 • Conditions for allocation to medium-priority packets Condition No. 2: The number of high-priority requests is 2, and the number of medium-priority requests is 1 or more. Condition No. 5: The number of high-priority requests is 1, and the number of medium-priority requests is 2 or more, Condition No. 10: Number of high-priority requests is 0, and number of medium-priority requests is 3. • Conditions for allocation to low-priority packets Condition No. 3: The number of high-priority requests is 2, the number of medium-priority requests is 0, and the number of low-priority requests is 1 or more. Condition No. 6: The number of high-priority requests is 1, and the number of medium-priority requests is 1, and the number of low-priority requests is 1 or more. Condition No. 7: The number of high-priority requests is 1, the number of medium-priority requests is 0, and the number of low-priority requests is 2 or more. Condition No. 11: The number of high-priority requests is 0, the number of medium-priority requests is 2, and the number of low-priority requests is 1 or more. Condition No. 12: The number of high-priority requests is 0, the number of medium-priority requests is 1, and the number of low-priority requests is 2 or more, or Condition No. 15: Number of high-priority requests is 0, number of medium-priority requests is 0, and number of low-priority requests is 3 or more.

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

[0080] For example, each threshold (first threshold, second threshold, third threshold, fourth threshold), the judgment criteria table 710, and the assignment table 720 are stored in the storage device provided by the communication device 100.

[0081] Here, the allocation control unit 520 allocates the first B410, the second B420, and the third B430 in that order according to the allocation table 720, as described above. The allocation table 720 is created so that, if there are multiple allocations, the allocations are made in order of the spare buffers whose outputs are connected to the input selector 530 (the preceding stage) which is connected to the input of the previously allocated spare buffer. Specifically, for example, if there are 2 allocations, the first B410 and the second B420, or the second B420 and the third B430, are allocated first.

[0082] The allocation control unit 520 notifies the respective monitoring unit 510 if it cannot allocate the requested number of spare buffers for each priority, i.e., if the number of spare buffers to be allocated is less than the requested number. The monitoring unit 510 receives this notification and, according to priority, notifies the packet writing unit 210 of a discard control signal via the discard signal line 640. If the allocation control results in the allocation of the requested number of spare buffers, it notifies the packet writing unit 210 of a discard control stop signal via the discard signal line 640.

[0083] [Assignment 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 explained. For the sake of explanation, for example, other spare buffers whose output is connected to the input selector 530 preceding one spare buffer will be referred to as upstream spare buffers. For example, in the example in Figure 3, the upstream spare buffer of the first B410 is the second B420. Also, the upstream spare buffer of the second B420 is the third B430. Furthermore, in the example in Figure 3, the first B410 is the furthest downstream spare buffer, and the third B430 is the furthest upstream spare buffer.

[0084] As shown in Figure 3, the input selector 530 preceding the uppermost auxiliary buffer receives packets of each priority from the first signal line 610. The input selector 530 selects one of them according to the control signal. The input selector 530 preceding the auxiliary buffers other than the uppermost buffer receives packets of each priority from the first signal line 610 and the output of the auxiliary buffer upstream of that auxiliary buffer. The input selector 530 selects one of them according to the control signal.

[0085] The allocation control unit 520 connects the signal line for that priority on the first signal line 610 to the input of the uppermost auxiliary buffer at the input selector 530 of the uppermost auxiliary buffer among one or more auxiliary buffers allocated for the same priority. That is, it controls the input selector 530 to select and output packets from the signal line of that priority on the first signal line 610. At the input selector 530 of the auxiliary buffers downstream of the uppermost auxiliary buffer, the output of the auxiliary buffer one level upstream is connected to its input.

[0086] Furthermore, as shown in Figure 3, each output selector 540 receives packets of priority from the first signal line 610 to the main buffer to which the output selector is connected. In addition, the output of each auxiliary buffer is also received.

[0087] The allocation control unit 520 connects the output of the downstream auxiliary buffer among the auxiliary buffers allocated for a certain priority to the input of the main buffer in an output selector 540 connected to a main buffer of a certain priority. In other words, each output selector 540 is controlled to output packets output from the downstream auxiliary buffer allocated to the same priority as the main buffer to which the output selector 540 is output to the main buffer to which it is output. If there is no auxiliary buffer allocated to that priority, the first signal line 610 is connected to the input of the main buffer.

[0088] Furthermore, the allocation control unit 520 controls the selector 550 so that the amount of data accumulating in the reserve buffer assigned to each priority is input to the monitoring unit 510, which monitors packets of that priority.

[0089] Here, we will explain a specific control example.

[0090] For example, when the first B410 is allocated for high-priority packets, the flow of high-priority packets and the flow of reserve retention information within the reserve buffer section 400 are shown in Figure 7 with thick lines and thick dashed lines, respectively.

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

[0092] As shown in this figure, the allocation control unit 520 operates the high-priority output selector 541 so that packets (read data) (S411) output from the first B410 are output to the main buffer unit 300 (high-priority MB310). It also sends signals to the other output selectors 540 (medium-priority output selector 542 and low-priority output selector 543) instructing them not to output packets output from the first B410.

[0093] Furthermore, the allocation control unit 520 operates the first input selector 531 so that packets (S412) from the first high-priority signal line 611, on which high-priority packets are transmitted, are input to the first B410. The allocation control unit 520 also transmits signals to the other input selectors 530 (second input selector 532 and third input selector 533) instructing them not to receive packets from the first high-priority signal line 611.

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

[0095] In this way, the allocation control unit 520 controls the high-priority output selector 541 and the first input selector 531, enabling data transfer operations using the first B410 as a buffer resource for high-priority packets. Furthermore, the data retention amount of the first B410 can be monitored by the monitoring unit 510 as a reserve retention amount for high-priority packets.

[0096] For example, when the first B410 and the second B420 are allocated for high-priority packets, the packet flow and data retention flow within the reserve buffer section 400 are shown in Figure 8 with thick lines and thick dashed lines, respectively.

[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 packets (read data) (S411) output from the first B410 are output to the main buffer unit 300. It also sends signals to the other output selectors 540 (medium-priority output selector 542 and low-priority output selector 543) instructing them not to output packets output from the first B410.

[0099] Furthermore, the allocation control unit 520 operates the first input selector 531 so that the output packet (S414) of the second B420 is input to the first B510. In addition, the second input selector 532 is operated so that the packet (S412) from the first high-priority signal line 611 is input to the second B420. The other input selector 530 (third input selector 533) is instructed not to receive packets from the first high-priority signal line 611.

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

[0101] In this way, the allocation control unit 520 controls the high-priority output selector 541, the first input selector 531, and the second input selector 532, enabling data transfer operations using the first B410 and second B420 as buffer resources for high-priority packets. Furthermore, the reserve data holding amount of the first B410 and second B420 can be monitored by the monitoring unit 510 as the data holding amount for high-priority packets.

[0102] Figure 9 shows an example of the forwarding paths of packets of each priority in the buffer unit 200 (main buffer unit 300 and auxiliary buffer unit 400). Here, when the first B410 and second B420 of the auxiliary buffer unit 400 are assigned to high-priority packets, and the third B430 is assigned to medium-priority packets, the buffers that packets input via the first signal line 610 (611, 612, 613) pass through before being output from the main buffer unit 300 are shown.

[0103] The buffers for high-priority packets are the high-priority MB310 in the main buffer section 300 and the first B410 and second B420 in the auxiliary buffer section 400. These function as a single FIFO memory. Specifically, 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 high-priority MB310.

[0104] The buffers for medium-priority packets are the medium-priority MB320 in the main buffer section 300 and the third B430 in the auxiliary buffer section 400. These function as a single FIFO memory. Specifically, packets input from the first medium-priority signal line 612 are first stored in the third B430, and then output via the medium-priority MB320.

[0105] The only buffer for low-priority packets is the low-priority MB330 in the main buffer section 300. 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 this embodiment has the same configuration as the first embodiment. Therefore, similar to the first embodiment, depending on the amount of data backed up, a spare buffer composed of multiple FIFO memories is allocated and used in FIFO memory units, starting with those of the highest priority. In other words, the same spare buffer is used separately for each priority on a FIFO memory unit basis as needed. Therefore, compared to a method in which a dedicated memory is provided as a buffer for each priority, an area for temporarily storing packets of each priority can be secured in order of highest priority with less memory. Furthermore, since the allocation is performed on a FIFO memory unit basis, memory management and access control are simpler compared to a method in which a single memory is shared among each priority.

[0107] Therefore, according to this embodiment, in a communication device 100 that performs QoS control to preferentially forward high-priority packets, it is possible to achieve both improved memory usage efficiency and suppression of discarding high-priority packets with a simple configuration and without performing complex control.

[0108] <Example 1> In the embodiments described above, there are three types of packet priorities (high priority, medium priority, and low priority), and the example was given where the number of spare buffers in the spare buffer unit 400 is three. However, the number of priority types and the number of spare buffers are not limited to these. Any number of types is acceptable.

[0109] For example, when changing the number of priority types, the number of dedicated buffers in the main buffer unit 300, the output selectors 540 and monitoring units 510 in the auxiliary buffer unit 400, which are provided for each priority, are changed to match the number of priority types. Furthermore, the conditions in the assignment table 720 are also changed according to the number of priority types.

[0110] For example, when changing the number of spare buffers in the spare buffer section 400, the number of input selectors 530 and the number of input data for the output selector 540, which are provided for each spare buffer, are changed to match the number of spare buffers. In addition, the number of thresholds in the judgment criteria table 710 is also changed according to the number of spare buffers. Furthermore, the number of conditions in the assignment table 720 is also changed accordingly.

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

[0112] <Variation 3> Furthermore, in each of the above embodiments, the monitoring units 510 for each priority level perform the determination of the number of requests synchronously at predetermined time intervals, but this is not limited to this. For example, the determination does not have to 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, for example, perform allocation control at predetermined time intervals. When performing allocation control, it uses the latest number of requests notified by each monitoring unit 510.

[0113] Furthermore, the allocation control unit 520 may be executed, for example, in response to a predetermined event. It may also be configured to be executed according to instructions from the user.

[0114] For example, the monitoring unit 510 may make a determination when a threshold is exceeded during packet writing, or when a threshold is fallen below during packet reading, and notify the allocation control unit 520 accordingly.

[0115] <Modification 4> Furthermore, in each of the above embodiments, the transmitting unit 150 that forwards packets to an external device performs QoS control using the main buffer unit 300 and the auxiliary buffer unit 400. However, it is not limited to this. For example, these buffer units may be provided and QoS control may be performed in other functional units within the communication device 100, such as the receiving unit 130.

[0116] <Modification 5> Furthermore, in each of the above embodiments, a Layer 2 switch was used 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, router, or Layer 4 switch.

[0117] <Variation 6> Furthermore, in each of the above embodiments, the allocation of spare buffers is performed according to the allocation table 720. The allocation table 720 allocates spare buffers with the highest priority starting from the most downstream buffer, and even when assigning the same priority, the buffers are allocated to consecutive buffers. However, this is not limited to this. For example, in the case of a service where it is not a problem if the packet forwarding order is reversed, the allocation order does not need to be fixed. Also, spare buffers to which the same priority is assigned do not need to be consecutive.

[0118] [Hardware configuration] The monitoring unit 510 and the allocation control unit 520 described above may be implemented by a control device 900, as shown in Figure 10. The control device 900 comprises a CPU (Central Processing Unit) 991, a main memory (memory) 992, an auxiliary memory 993, and an I / F 994, all interconnected by an internal bus.

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

[0120] The main memory 992 is a type of memory such as RAM (Random Access Memory). The main memory 992 is the work area where 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), or an SSD (Solid State Drive). The auxiliary storage device 993 stores various programs executed by the monitoring unit 510 and the allocation control unit 520, respectively. The auxiliary storage device 993 may also include storage media such as a flexible disk, hard disk, optical disk, CD-ROM, CD-R, magnetic tape, non-volatile memory card, or DVD.

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

[0123] I / F994 is an interface for inputting and outputting various data such as control signals and notifications. Expansion interfaces such as display devices and input devices may also be connected. A display device is, for example, an LCD monitor. An input device is, for example, a device that accepts user input such as a keyboard or mouse.

[0124] The respective functions of the monitoring unit 510 and the allocation control unit 520 are realized by the CPU 991 loading a program stored in the auxiliary storage device 993 into the main memory device 992 and executing it.

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

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

[0127] Furthermore, the programs that implement the above-mentioned functions of the monitoring unit 510 and the allocation control unit 520 in this embodiment can be recorded on a computer-readable storage medium. The storage medium can be a non-transient material such as semiconductor memory, hard disk, magnetic recording medium, or optical recording medium. The present invention can also be embodied as a computer program product.

[0128] Furthermore, each function of the monitoring unit 510 and the allocation control unit 520 may be implemented, for example, by an integrated circuit (IC) dedicated to each process, an application-specific integrated circuit (ASIC), a system-on-a-chip (SOC), a field-programmable gate array (FPGA), or the like.

[0129] In the process flow described above, multiple steps (processes) are listed in order, but the execution order of each step is not restricted by that order. For example, the order of the illustrated steps can be changed to the extent that it does not affect the content, such as by executing each process in parallel.

[0130] Although embodiments and variations of the present invention have been described above, the present invention is not limited to the embodiments described above, and various modifications can be made that will be understood by those skilled in the art. Furthermore, each embodiment and variation can be combined with other embodiments as appropriate. In addition, for example, the network configurations and element configurations shown in each drawing are examples to aid in understanding the present invention, and the present invention is not limited to the configurations shown in these drawings.

[0131] Finally, preferred embodiments of the present invention are summarized. Some or all of the above embodiments may also be described as follows, but are not limited to these. (Note 1) Communication equipment, A main buffer section equipped with main buffers for each of several priority levels, A spare buffer section equipped with multiple spare buffers, A monitoring unit monitors the amount of data accumulated in the main buffer and the auxiliary buffer according to the priority, The system includes an allocation control unit that allocates a plurality of the reserve buffers to the respective priority levels, in order from the highest priority level, according to the amount of data accumulating for each priority level, and controls the allocation control so that packets of that priority level are stored in the allocated reserve buffers. (Note 2) In the communication device described in Appendix 1, The monitoring unit monitors the total data retention amount for each priority, which is the sum of the data retention amount in the main buffer provided for that priority and the data retention amount in the spare buffer to which that priority is assigned. Based on the total data retention amount, it determines the number of spare buffers required, which is the number of requests, and notifies the allocation control unit. The allocation control unit preferably allocates the requested number of spare buffers to the priority in order from the highest priority. (Note 3) In the communication device described in Appendix 2, It is desirable that the monitoring unit determine the number of requests according to a judgment criterion table that stores the number of requests corresponding to the total amount of dwelling. (Note 4) In the communication device described in Appendix 2 or 3, It is desirable that the allocation control unit allocates the reserve buffers to each priority according to an allocation table that stores the reserve buffers to be allocated according to the number of requests for each priority. (Note 5) In a communication device described in any of the appendices 1 to 4, Each of the preceding multiple auxiliary buffers is equipped with an input selector, Each of the multiple main buffers is equipped with an output selector, It is desirable that 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. (Note 6) In a communication device described in any of the appendices 1 to 5, A selector is provided between the multiple auxiliary buffers and the monitoring unit. It is desirable that the allocation control unit transmits a control signal to the selector, thereby causing the monitoring unit to acquire the amount of data accumulating for each priority from the multiple reserve buffers. (Note 7) Communication method: A main buffer section equipped with main buffers for each of several priority levels, A communication method in a communication device comprising a spare buffer section having multiple spare buffers, The amount of data accumulated in the main buffer and the auxiliary buffer is monitored according to the priority level. In order from the highest priority, a plurality of the reserve buffers are assigned to each priority according to the amount of data accumulating for each priority. The system controls the allocation of the reserve buffer to store packets of the corresponding priority. (Note 8) The program is A computer in a communication device having a main buffer section with main buffers provided for each of several priority levels, and a backup buffer section with multiple backup buffers, A procedure for monitoring the amount of data accumulating in the main buffer and the auxiliary buffer according to the priority, A procedure for allocating a plurality of the aforementioned reserve buffers to a given priority, in order from the highest priority, according to the amount of data accumulating for each priority, The procedure involves controlling the storage of packets of the corresponding priority in the allocated reserve buffer. Furthermore, the forms described in appendices 7 and 8 can be expanded into the forms described in appendices 2-6, similar to appendice 1.

[0132] Furthermore, the disclosures in the above-mentioned patent documents, etc., are incorporated into this book by reference. Within the framework of the full disclosure of the present invention (including the claims), further modifications and adjustments of embodiments and variations are possible based on the basic technical concept. Also, within the framework of the disclosure of the present invention, various combinations or selections of various disclosed elements (including each element of each claim, each element of each embodiment or variation, each element of each drawing, etc.) are possible. In other words, the present invention naturally includes the full disclosure, including the claims, and various modifications and alterations that a person skilled in the art could make in accordance with the technical concept. In particular, with respect to the numerical ranges described in this book, any numerical value or sub-range included within that range should be interpreted as being specifically described, even if not otherwise stated. [Explanation of Symbols]

[0133] 100: Communication device, 100a: Communication device, 120: Input port, 130: Receiving unit, 140: Switching unit, 150: Transmitting unit, 150a: Transmitting unit, 150b: Transmitting unit, 170: Output port, 170a: Output port, 170b: Output port, 200: Buffer section, 200a: Buffer section, 210: Packet writing section, 220: Packet reading section, 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: Reserve buffer section, 400a: Reserve buffer section, 410: First reserve buffer (First B), 410a: First reserve buffer (First B), 420: Second reserve buffer (Second B), 420a: Second reserve buffer (Second B), 430: Third reserve buffer (Third B), 430a: Third reserve buffer (Third B), 500a: Control unit, 510: Monitoring unit, 510a: Monitoring unit, 511: High priority packet monitoring unit, 512: Medium priority packet monitoring unit, 513: Low priority packet monitoring unit, 520: Assignment control unit, 520a: Assignment control unit, 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 criteria table, 711: Judgment criteria, 712: Number of reserve buffer requests, 720: Allocation table, 721: Condition No., 722: Number of requests, 723: Allocation, 900: Control unit, 991: CPU, 992: Main memory, 993: Auxiliary memory, 994: I / F, S411: High priority packets, S412: High priority packets, S413: Reserved data, S414: High priority packets, S415: Reserved data

Claims

1. A main buffer section equipped with main buffers for each of several priority levels, A spare buffer section having multiple spare buffers to which priority can be dynamically assigned individually, A monitoring unit monitors the amount of data accumulated in the main buffer and the auxiliary buffer according to the priority, A communication device comprising: an allocation control unit that allocates a plurality of the aforementioned reserve buffers to the respective priorities in order from the highest priority, such that the number of reserve buffers increases as the value of the data retention amount for each priority increases and decreases as the value of the data retention amount decreases, and controls the allocated reserve buffers to store packets of the respective priority.

2. A communication device according to claim 1, The monitoring unit monitors the total data retention amount for each priority, which is the sum of the data retention amount in the main buffer provided for that priority and the data retention amount in the spare buffer to which that priority is assigned. Based on the total data retention amount, it determines the number of spare buffers required, which is the number of requests, and notifies the allocation control unit. The allocation control unit allocates the requested number of spare buffers to the priority in order from the highest priority, The monitoring unit is a communication device that determines the number of requests such that the number of requests increases as the value of the total amount of waiting time increases, and decreases as the value of the total amount of waiting time decreases.

3. A communication device according to claim 2, The monitoring unit is a communication device that determines the number of requests according to a judgment criterion table that stores the number of requests corresponding to the total amount of occupancy.

4. A communication device according to claim 2, The allocation control unit is a communication device that allocates the reserve buffers to each priority according to an allocation table that stores the reserve buffers to be allocated according to the number of requests for each priority.

5. A communication device according to claim 1, Each of the preceding multiple auxiliary buffers is equipped with an input selector, Each of the multiple main buffers is equipped with an output selector, The allocation control unit is a communication device that controls the storage of packets by transmitting control signals to each of the input selectors and each of the output selectors.

6. A communication device according to claim 1, A selector is provided between the multiple auxiliary buffers and the monitoring unit. The allocation control unit is a communication device that transmits a control signal to the selector, causing the monitoring unit to acquire the amount of data stagnating for each priority from a plurality of the auxiliary buffers.

7. A main buffer section equipped with main buffers for each of several priority levels, A communication method in a communication device comprising: a spare buffer unit having multiple spare buffers to which priority can be dynamically assigned individually; The amount of data accumulated in the main buffer and the auxiliary buffer is monitored according to the priority level. In order from the highest priority, a plurality of the aforementioned reserve buffers are assigned to the respective priority levels such that the number of buffers increases as the value of the data retention amount for each priority level increases, and decreases as the value of the data retention amount decreases. A communication method that controls the storage of packets of the corresponding priority in the allocated reserve buffer.

8. A main buffer section equipped with main buffers for each of several priority levels, A program for causing a computer of a communication device, which includes a spare buffer unit having a plurality of spare buffers to which priority can be dynamically assigned individually, to execute the communication method described in 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