Communication device, communication method, and program
The communication device optimizes memory utilization and prevents high-priority packet discard by using separate buffers for each priority level and dynamic spare buffer allocation, addressing the complexity of shared buffer methods.
Patent Information
- Application Number
- JP2024003671
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-15
- Publication Date
- 2025-07-28
- Estimated Expiration
- 2044-01-15
AI Technical Summary
Existing communication devices with shared buffers face challenges in managing memory access and address control complexity while attempting to suppress the discard of high-priority packets, leading to inefficient memory utilization.
Implementing a communication device with a main buffer unit for each priority level and a spare buffer unit, utilizing a monitoring unit to track data retention, and an allocation control unit to dynamically allocate spare buffers based on priority needs, ensuring high-priority packets are stored without complex control.
This approach enhances memory usage efficiency and prevents high-priority packet discard while simplifying memory management and access control.
Smart Images

Figure 2025110001000001_ABST
Abstract
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 includes 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 the configuration of the buffer, a method using dedicated memory 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 (summary excerpt)" (for example, see 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] In the shared buffer method, since the free area of the memory can be used by packets of each priority, the memory utilization efficiency is high. As a result, the total memory size can be reduced compared to the method using dedicated memories for each priority. On the other hand, in the shared buffer method, since a plurality of priority packets can randomly access one memory area, the address management and access control of the memory 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 frame with a relatively high priority 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 of the present invention to provide a technique that improves the memory utilization efficiency and suppresses the 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; a monitoring unit that monitors the data retention amounts of the main buffer and the spare buffers for each of the priorities; a communication device is provided, which includes an allocation control unit that, in order from the highest priority, allocates a plurality of the spare buffers to the priority according to the data retention amount for each priority, and controls the packets of the priority to be stored in the allocated spare buffer.
[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, and a spare buffer unit including a plurality of spare buffers, the communication method in a communication device comprising: monitoring data retention amounts of the main buffer and the spare buffers for each of the priorities, allocating the plurality of spare buffers to the priority according to the data retention amount for each of the priorities in order from the highest priority, and controlling to store packets of the priority in the allocated spare buffer, a communication method is provided.
[0011] According to a third aspect of the present invention, 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 spare buffer unit including a plurality of spare buffers, a procedure for monitoring data retention amounts of the main buffer and the spare buffers for each of the priorities, a procedure for allocating the plurality of spare buffers to the priority according to the data retention amount for each of the priorities in order from the highest priority, and a procedure for controlling to store packets of the priority in the allocated spare buffer, a program for causing the computer to execute the procedures is provided.
[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 to preferentially transfer 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
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 this 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 are not intended to limit the present invention to the illustrated embodiments. 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. Further, 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 dedicatedly provided 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 for realizing 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 set 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 that temporarily stores 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 to store packets with a set priority (packets of that priority) for each of a plurality of types of priorities. In the present 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. Any 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 priority-dedicated buffers of the main buffer unit 300a under congestion.
[0024] In the present embodiment, as an example, it is assumed to include three spare buffers. Specifically, it includes a first spare buffer (first B) 410a, a second spare buffer (second B) 420a, and a third spare buffer (third B) 430a. Note that the number of spare buffers may be plural. Any of the spare buffers is a FIFO memory.
[0025] These spare buffers are dynamically assigned to any priority 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 that priority set.
[0026] The control unit 500a assigns each spare buffer of the spare buffer unit 400a to any priority. 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 spare 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 spare 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 prioritized. That is, starting from the one with the highest priority, necessary spare buffers are allocated according to the data retention amount.
[0029] Also, the allocation control unit 520a controls the operation of the spare 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 spare buffers, and are allocated and used in units of FIFO memories in order from the one with the highest priority according to the data retention amount. The spare buffers can be used separately for each priority as needed. Therefore, compared with the method of providing dedicated memories as buffers for each priority respectively, packets of each priority can be temporarily stored with less memory. Also, since the allocation is performed in units of FIFO memories, memory management and access control are simpler compared with the method of sharing a single memory among each priority. And the allocation is performed in order from the highest priority.
[0031] Therefore, according to the present embodiment, in the communication device 100a that performs QoS control for preferentially transferring 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 complex control with a simple configuration.
[0032] <<Second Embodiment>> Next, the second embodiment of this embodiment will be described. This embodiment is a more detailed implementation of the first embodiment. In this embodiment, the components with the same names as those in the first embodiment basically have the same functions as those in the first embodiment. Hereinafter, this embodiment will be described focusing 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 described as an example. Note that a Layer 2 switch is a device that constructs 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 a LAN (Local Area Network) cable, grasps which device is connected to which port, and performs communication.
[0034] Also in this embodiment, the case where there are multiple types of priority packets, namely high-priority packets, medium-priority packets, and low-priority packets, will be described as an example. Note that high-priority packets may be, for example, packets of a VoIP (Voice over Internet Protocol) service or packets of a video / audio streaming service. Medium-priority packets may be, for example, packets of an email service. 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 a transmitting unit 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 (hereinafter simply referred to as a packet), which is an Ethernet (registered trademark) frame transmitted from an external device, 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 this 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 150 includes a transmitting unit 150a and a transmitting unit 150b. 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] Note that each unit is connected by priority-based data signal lines 610, 620, 630, and 650, respectively. The priority-based data signal lines 610, 620, 630, and 650 are 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 the corresponding 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 which of the plurality of preliminary buffers is to be used as the preliminary buffer for which priority (which priority to allocate) according to the monitoring result of the monitoring unit 510, 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 provided specifically for each priority level via the priority-level data signal line (third signal line) 630 for each priority level. Also, similar to the configuration of the same name in the first embodiment, a dedicated main buffer (FIFO memory) is provided for each of multiple 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 the strict priority mode. Specifically, when a packet with 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 they 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, it sequentially transfers the packets stored earlier to the packet reading unit 220 from the highest-priority ones for each priority level.
[0053] Packets are stored in the dedicated main buffers of respective priorities from the preliminary buffer unit 400 via the second signal line 620. That is, high-priority packets are stored in the high-priority MB 310 via the second high-priority signal line 621 of the second signal line 620. Medium-priority packets are stored in the medium-priority MB 320 via the second medium-priority signal line 622 of the second signal line 620. Low-priority packets are stored in 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 of 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 performed 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 performed 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 performed 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 with 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 backup 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] 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 backup retention amount, which is the data retention amount sent from the backup buffer assigned to the corresponding priority in the backup buffer unit 400, at each priority. Then, according to the total retention amount, the number of required backup buffers (request number) is determined for each priority and notified to the allocation control unit 520.
[0060] The backup retention amount of each backup buffer (the first B410, the second B420, and the third B430) is transmitted to the monitoring unit 510 via the signal line 560. Which backup buffer's backup retention amount is notified to which monitoring unit 510 is controlled by, for example, the 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 priority's backup buffer each of the plurality of backup buffers is used as. That is, according to the request number of the backup buffers for each priority, it is determined to which priority the first B410, the second B420, and the third B430 are allocated. 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, an output selector 540 (high-priority output selector 541, medium-priority output selector 542, low-priority output selector 543) is provided on the output side of the preliminary buffer section 400. These select an output signal to the subsequent main buffer. These selectors operate according to an instruction (control signal) from the allocation control section 520. The control signal is transmitted from the allocation control section 520 to each of the 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 assigned preliminary buffer via the input selector 530 according to the instruction of the allocation control section 520. Then, from the packets stored earlier, 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 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. Each monitoring section 510 (high-priority packet monitoring section 511, medium-priority packet monitoring section 512, low-priority packet monitoring section 513) may be configured to notify the residence amounts of all the high, medium, and low preliminary buffers (first B410, second B420, third B430) and use only the necessary information 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 according to, for example, a determination criterion table 710 that stores in advance the correspondence between the total residence amount, the threshold value, and the required number.
[0068] FIG. 4 is an example of the determination criterion table 710. As shown in this figure, the determination criterion table 710 stores, for each determination criterion 711 showing the relationship between the total residence amount and the threshold value, the number of preliminary buffers to be requested (preliminary buffer request number 712) associated as the required number.
[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) of 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) of 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) of 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 residence 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 residence 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 residence 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 residence 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 residence 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 residence amounts of their respective priorities, determines the required number for each, and notifies the allocation control unit 520. For example, the high-priority packet monitoring unit 511 determines the above for the total residence 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 residence 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 residence 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, FIG. 6 shows 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.
[0077] As shown in this figure, the allocation table 720 registers the request number 722 for each priority of the condition and the allocation 723 of each spare buffer in the condition for each condition No. 721 that uniquely identifies with each combination of request numbers as a condition.
[0078] Specifically, each spare buffer (the first B410, the second B420, the third B430) in the spare buffer unit 400 is allocated for packets of the following priority when each of the following conditions is satisfied. First B410: · Conditions for allocation to high-priority packets Condition Nos. 1 to 9 High-priority request number is 1 or more · Conditions for allocation to medium-priority packets Condition Nos. 10 to 14 High-priority request number is 0 and medium-priority request number is 1 or more · Conditions for allocation to low-priority packets Condition Nos. 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 allocation to high-priority packets Condition Nos. 1 to 4 High-priority request number is 2 or more · Conditions for allocation to medium-priority packets Condition No. 5 - 6: The high - priority requirement number is 1, and the medium - priority requirement number is 1 or more, or Condition No. 10 - 11: The high - priority requirement number is 0, and the medium - priority requirement number is 2 or more · Conditions assigned for low - priority packets Condition No. 7 - 8: The high - priority requirement number is 1, the medium - priority requirement number is 0, and the low - priority requirement number is 1 or more, Condition No. 12 - 13: The high - priority requirement number is 0, the medium - priority requirement number is 1, and the low - priority requirement number is 1 or more, or Condition No. 15 - 16: The high - priority requirement number is 0, the medium - priority requirement number is 0, and the low - priority requirement number is 2 or more Third B430: · Conditions assigned for high - priority packets Condition No. 1: The high - priority requirement number is 3 · Conditions assigned for medium - priority packets Condition No. 2: The high - priority requirement number is 2, and the medium - priority requirement number is 1 or more, Condition No. 5: The high - priority requirement number is 1, and the medium - priority requirement number is 2 or more, or Condition No. 10: The high - priority requirement number is 0, and the medium - priority requirement number is 3 · Conditions assigned for low - priority packets Condition No. 3: The high - priority requirement number is 2, the medium - priority requirement number is 0, and the low - priority requirement number is 1 or more, Condition No. 6: The high - priority requirement number is 1, the medium - priority requirement number is 1, and the low - priority requirement number is 1 or more, Condition No. 7: The high - priority requirement number is 1, the medium - priority requirement number is 0, and the low - priority requirement number is 2 or more, Condition No. 11: The high - priority requirement number is 0, the medium - priority requirement number is 2, and the low - priority requirement number is 1 or more, Condition No. 12: The high - priority requirement number is 0, the medium - priority requirement number is 1, and the low - priority requirement number is 2 or more, or Condition No. 15: The high - priority requirement number is 0, the medium - priority requirement number is 0, and the low - priority requirement 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, a 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 for that priority of the first signal line 610 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 the packet 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 from the first signal line 610 to each output selector 540. 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 to the same priority as the main buffer that is the output destination of that output selector 540 to the main buffer of that output destination. If there is no spare buffer allocated to 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). 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 the high-priority packet is 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 preliminary 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 preliminary 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 preliminary retention amount from the other preliminary 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 in the first B410 can be monitored by the monitoring unit 510 as the preliminary 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 preliminary 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 of the main buffer unit 300 and the first B410 and the second B420 of 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 of the main buffer unit 300 and the third B430 of 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 of 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, as in 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 the highest priority. That is, the same preliminary buffer is properly used in units of FIFO memories for each priority as needed. Therefore, compared with the 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 the highest priority with less memory. Also, since the allocation is performed in units of FIFO memories, memory management and access control are simpler than the 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 high-priority packets, it is possible to achieve both an improvement in the usage efficiency of the memory and suppression of the discard of high-priority packets without performing complex 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. Further, the number of conditions in the allocation table 720 is 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 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 are 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 by, for example, 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 inputting and outputting 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 in the figure.
[0127] Also, the program for realizing each of 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, an integrated circuit (IC) dedicated to each process, an application-specific integrated circuit (ASIC), a system-on-chip (SOC), a field-programmable gate array (FPGA), 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 interfere with the content, such as executing each process in parallel.
[0130] The above describes each embodiment and modification example of the present invention. However, the present invention is not limited to the above-described embodiments, and various modifications that can be understood by those skilled in the art can be made. And each embodiment and modification example can be combined with other embodiments as appropriate. Also, for example, the network configuration and the configuration of each element shown in each drawing are examples for helping 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 can also be described as follows in the appended claims, but are not limited thereto. (Appended Claim 1) The communication device includes a main buffer unit having main buffers provided for each of a plurality of types of priorities, a spare buffer unit having 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 of the priorities, allocates a plurality of the spare buffers to the priority according to the data retention amount for each of the priorities, and controls the allocated spare buffers 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 the 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 the spare buffers to the priority in order from the highest of the priorities. (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 that stores 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, input selectors are respectively provided in front of the plurality of preliminary buffers, output selectors are respectively provided in front of the plurality of main buffers, it is desirable that the allocation control unit control the storage of the packets by transmitting control signals 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, and a preliminary buffer unit including a plurality of preliminary buffers, in a communication device, and is monitor the data retention amounts of the main buffer and the preliminary buffer for each priority, allocate the plurality of preliminary buffers to the priority according to the data retention amount for each priority in order from the highest priority, control so that packets of the priority are stored in the allocated preliminary buffer. (Supplementary Note 8) A program is for 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 each priority level in order from the highest priority level according to the data retention amount for each priority level, A procedure for controlling the allocated backup buffer so that packets of the corresponding priority level are stored therein is 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 each disclosure of the above patent documents and the like is 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 various deformations and corrections that those skilled in the art could make according to the entire disclosure including the claims and 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 specifically described even without 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, a monitoring unit that monitors data retention amounts of the main buffer and the preliminary buffers for each of the priorities, and an allocation control unit that allocates the plurality of preliminary buffers to each priority in order from the highest priority according to the data retention amount for each priority, and controls the allocated preliminary buffers to store packets of the corresponding 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 a 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 allocated, determines a required number that is the number of required preliminary buffers based on the total retention amount, and notifies the allocation control unit of the determined required number, and the allocation control unit allocates the required number of preliminary buffers to each 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 corresponding 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 priority 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 respectively provided in front of the plurality of preliminary buffers, output selectors are respectively provided in front of the plurality of main buffers, and the allocation control unit controls storage of the packets by transmitting control signals to the respective input selectors and the respective 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, and 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 communication method in 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, wherein... Monitor the data retention amounts of the main buffer and the backup buffer for each of the priorities, In order from the higher priority, allocate a plurality of the backup buffers to the priority according to the data retention amount for each priority, A communication method for controlling the allocated backup buffer to store packets of the priority.
8. 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 backup buffer unit including a plurality of backup buffers, A procedure for monitoring the data retention amounts of the main buffer and the backup buffer for each of the priorities; A procedure for allocating a plurality of the backup buffers to the priority according to the data retention amount for each priority in order from the higher priority; A program for causing the computer to execute a procedure for controlling the allocated backup buffer to store packets of the priority.
Citation Information
Patent Citations
Buffer control system in packet exchange device
JP1994085840A
Modem for satellite communication, data transmission adapter, and modulation-demodulation unit
JP2012235263A
Communication device and communication method
JP2016165091A