COMMUNICATION DEVICE, COMMUNICATION METHOD, AND PROGRAM
By employing a communication device with dynamically allocated spare buffers based on priority, the complexity of managing shared buffers is reduced, ensuring efficient memory usage and preventing high-priority packet discarding.
Patent Information
- Application Number
- JP2024003671
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-01-15
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2044-01-15
AI Technical Summary
In communication devices with shared buffer systems, managing memory address and access control becomes complex due to multiple priority packets accessing a single memory area, leading to potential discarding of high-priority packets during congestion.
The implementation of a communication device with a main buffer section for each priority and a spare buffer section, where a monitor unit and allocation control unit dynamically allocate spare buffers to priorities based on data retention amounts, ensuring high-priority packets are stored without complex control.
This configuration enhances memory usage efficiency and prevents the discarding of high-priority packets while maintaining a simple control mechanism, even during congestion.
Smart Images

Figure 0007662293000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a communication device, a communication method, and a program. [Background technology]
[0002] In a communication device with multiple input / output ports, a buffer that temporarily stores packets is provided for each output port in order to prevent data (packet) discard when congestion occurs at each output destination port. Also, a communication device that supports QoS (Quality of Service) control that preferentially transfers high-priority packets is provided with a buffer that can control the size and discard threshold for each priority in order to prevent discarding of high-priority packets. Known buffer configurations include a method that uses dedicated memory for each packet priority, and a shared buffer method in which a single memory is shared between each priority.
[0003] In a shared buffer system, when packets of several different priorities are stored in a shared buffer, there is a technique for preventing the discarding of high-priority packets, in which "if the amount of packets stored in the shared buffer exceeds a threshold corresponding to a specified priority, the packet writing unit prevents packets of that priority from being written to the shared buffer (summary excerpt)" (see, for example, Patent Document 1). [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2016-165091 A Summary of the Invention [Problem to be solved by the invention]
[0005] The following analysis has been provided by the inventors of the present invention.
[0006] The shared buffer method is highly efficient in memory usage because each priority packet can use the free memory space. As a result, the total memory size can be smaller than a method that uses dedicated memory for each priority. On the other hand, the shared buffer method requires complex memory address management and access control in order to allow multiple priority packets to randomly access one 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 in a strict priority system. Specifically, if a relatively high-priority frame is stored in the shared buffer when the packet reading unit reads a frame, the packet reading unit reads the high-priority frame even if a large number of relatively low-priority frames are stored or if the high-priority frame was stored earlier. Therefore, it is necessary to manage the storage addresses and storage order of received packets by priority, and to control the update of the management information and memory access control when transmitting and receiving packets.
[0008] The present invention has been made in consideration of the above circumstances, and aims to provide a technology in a communication device that performs QoS control to preferentially transfer high priority packets, which achieves both improved memory usage efficiency and reduced discarding of high priority packets with a simple configuration without performing complex control. [Means for solving the problem]
[0009] According to a first aspect of the present invention, a main buffer unit including main buffers provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; a monitoring unit that monitors the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; an allocation control unit that allocates a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controls the packets of the priorities to be stored in the allocated spare buffers. the monitoring unit monitors, for each priority, a total backlog which is a sum of the amount of data backlogged in the main buffer provided for that priority and the amount of data backlogged in the spare buffer to which that priority is assigned, and determines a requested number which is the number of spare buffers required based on the total backlog, and notifies the allocation control unit, and the allocation control unit allocates the spare buffers of the requested number to that priority in order from highest to lowest priority.A communications device is provided.
[0010] According to a second aspect of the present invention, a main buffer unit including main buffers provided for each of a plurality of types of priority; A communication method in a communication device including a spare buffer unit including a plurality of spare buffers, The amount of data accumulated in the main buffer and the spare buffer is monitored for each priority. and A plurality of spare buffers are allocated to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and control is performed so that packets of the priorities are stored in the allocated spare buffers. and the monitoring step includes monitoring a total buffer amount, which is a sum of the amount of data accumulated in the main buffer provided for each priority and the amount of data accumulated in the spare buffer to which the priority is assigned, and determining a number of requests, which is the number of spare buffers required, based on the total buffer amount; In the step of controlling, the determined number of requested spare buffers are allocated to the priority in order from the highest priority. , a communication method is provided.
[0011] According to a third aspect of the present invention, The main buffer unit includes a main buffer provided for each of a plurality of types of priority, and a spare buffer unit includes a plurality of spare buffers. For communication devices , Executing the above-mentioned communication method The program is provided.
[0012] The program can be recorded on a computer-readable storage medium. The storage medium can be a non-transient medium 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. Effect of the Invention
[0013] According to the present invention, in a communication device that performs QoS control to preferentially transfer high priority packets, it is possible to achieve both improved memory usage efficiency and reduced discarding of high priority packets with a simple configuration without performing complex control. [Brief description of the drawings]
[0014] [Figure 1] FIG. 2 is a configuration diagram of an example of a communication device according to the present disclosure. [Diagram 2] FIG. 2 is a configuration diagram of an example of a communication device according to the present disclosure. [Diagram 3] FIG. 2 is a configuration diagram of an example of a buffer unit according to the present disclosure. [Figure 4] FIG. 11 is an explanatory diagram for explaining an example of a determination criteria table of the present disclosure. [Diagram 5] 11 is an explanatory diagram for explaining the relationship between the total remaining amount, the threshold value, and the number of requests in the present disclosure. [Figure 6] FIG. 11 is an explanatory diagram for explaining an example of an allocation table according to the present disclosure. [Figure 7] FIG. 1 is an explanatory diagram for explaining a specific example of the present disclosure. [Figure 8] FIG. 11 is an explanatory diagram for explaining another specific example of the present disclosure. [Figure 9] FIG. 2 is an explanatory diagram for explaining an example of a transfer path of a buffer unit according to the present disclosure. [Figure 10] FIG. 2 is a configuration diagram illustrating an example of a hardware configuration of a control device according to the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0015] An outline of one embodiment of the present invention (hereinafter, referred to as the present embodiment) will be described below with reference to the drawings. Note that the reference symbols in the drawings are given to each element for convenience as an example to aid understanding, and are not intended to limit the present invention to the illustrated form. Furthermore, the connection lines between blocks in the drawings and the like referred to in the following description include both bidirectional and unidirectional lines. Unidirectional arrows are used to diagrammatically indicate the flow of the main signal (data), and do not exclude bidirectionality.
[0016] In addition, although there are ports and interfaces at the connection points of input and output of each block in the figure, they are not shown in the figure. 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 and multiple spare buffers, each dedicated for a different priority, as buffers for temporarily storing packets when congestion occurs. By dynamically assigning a priority to each spare buffer according to the amount of data accumulated for each priority, a FIFO memory that performs First In First Out (FIFO) control realizes Quality of Service (QoS) control that preferentially transfers high priority packets while suppressing the discarding of high priority packets.
[0019] The communication device 100a of the present embodiment that realizes this will be described below. Fig. 1 is a configuration diagram of the communication device 100a of the present embodiment, which is related to realizing the functions of the present embodiment.
[0020] The communication device 100a of this embodiment includes multiple input / output ports, and receives packets with one of multiple priority levels. In the following, as an example, it is assumed that one of three priority levels, high priority, medium priority, and low priority, is set for a packet. In the following, a packet with high priority level set is called a high priority packet, a packet with medium priority level set is called a medium priority packet, and a packet with low priority level set is called a low priority packet.
[0021] The communication device 100a includes a buffer unit 200a for temporarily storing packets for each output port in order to prevent packet discard when congestion occurs at 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 a dedicated main buffer for storing packets (packets of the priority level) to which a priority level is set for each of a plurality of priority levels. In this embodiment, the main buffer unit 300a includes a main buffer (high priority MB) 310a for high priority packets, a main buffer (medium priority MB) 320a for medium priority packets, and a main buffer (low priority MB) 330a for low priority packets. All of the main buffers are FIFO memories.
[0023] The spare buffer unit 400a has a plurality of spare buffers as physical resources for storing packets. These are spare buffers to be used when one or more of the priority-specific buffers in the main buffer unit 300a have no free space to store packets under congestion.
[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 the number of spare buffers may be more than one. Each spare buffer is a FIFO memory.
[0025] These spare buffers are dynamically assigned to one of the priorities individually (on a spare buffer basis) by an assignment control unit 520a (described later). Note that assigning to a priority means using the buffer as a spare buffer for packets to which that priority is set.
[0026] The control unit 500a assigns each spare buffer of the spare buffer unit 400a to one of the priorities. In this embodiment, the control unit 500a includes a monitoring unit 510a and an assignment control unit 520a.
[0027] The monitor 510a monitors the amount of data (amount of packets) accumulated in each of 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 to which priority each of the multiple spare buffers should be assigned according to the monitoring result of the monitoring unit 510a. That is, it determines to which priority the first B410a, the second B420a, and the third B430a should be assigned according to the amount of data accumulated at each priority notified by the monitoring unit 510a. In making this determination, the higher priority is given priority. That is, the necessary spare buffers are assigned according to the amount of data accumulated, starting from the highest priority.
[0029] Furthermore, the allocation control unit 520a controls the operation of the spare buffer unit 400a, and performs control so that packets of each priority level are stored in the first B 410a, the second B 420a, and the third B 430a in accordance with the determined allocation.
[0030] As described above, according to the communication device 100a of this embodiment, a plurality of buffers each made up of a FIFO memory are provided as spare buffers, and are allocated and used in units of FIFO memory in descending order of priority according to the amount of data accumulated. The spare buffers are used for each priority as necessary. Therefore, compared to a method in which a 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 in units of FIFO memory, memory management and access control are simpler than a method in which a single memory is shared among each priority. And, allocation is performed in descending order of priority.
[0031] Therefore, according to this embodiment, in the communication device 100a that performs QoS control to preferentially transfer high priority packets, it is possible to achieve both improved memory usage efficiency and suppression of discarding of high priority packets with a simple configuration without performing complex control.
[0032] <<Second embodiment>> Next, a second embodiment of the present invention will be described. This embodiment is an embodiment in which the first embodiment is embodied in more detail. In this embodiment, configurations having the same names as those in the first embodiment basically have the same functions as those in the first embodiment. Below, this embodiment will be described with a focus on the differences from the first embodiment.
[0033] In this embodiment, a case where a layer 2 switch is used as the communication device 100 will be described as an example. The layer 2 switch is a device that configures a network based on the data link layer, which is layer 2 of the OSI (Open Systems Interconnection) reference model. Specifically, the layer 2 switch stores the MAC addresses of devices connected by LAN (Local Area Network) cables, and communicates by knowing which device is connected to which port.
[0034] In this embodiment, the packets of multiple priority levels are described by taking as an example a high priority packet, a medium priority packet, and a low priority packet. The high priority packet may be, for example, a packet of a Voice over Internet Protocol (VoIP) service or a packet of a video / audio streaming service. The medium priority packet may be, for example, a packet of an e-mail service. The low priority packet may be, for example, a packet of a file transfer service.
[0035] 2 is a configuration diagram of a communication device 100 which is a Layer 2 switch of this embodiment. As shown in the figure, the communication device 100 includes an input port 120, an output port 170 (output ports 170a and 170b), a receiving unit 130, a switch unit 140, and a transmitting unit 150 (150a and 150b). Note that the number of each component is an example, and for example, two or more receiving units 130 and three or more output ports 170 may be included.
[0036] The input port 120 and the output ports 170 (170a and 170b) are physical ports connected to a transmission line.
[0037] The receiver 130 receives a MAC frame (hereinafter simply referred to as a packet), which is an Ethernet (registered trademark) frame transmitted from an external device, via the input port 120, and determines an output port 170 (170a or 170b) for the packet. A priority is set for each packet. In this embodiment, one of high priority, medium priority, and low priority is set.
[0038] The switch unit 140 transfers a packet that has been received by the receiver 130 and for which an output port 170 has been determined, to the transmitter 150 associated with that output port 170 .
[0039] The transmitting unit 150 executes packet forwarding processing to an external device. At that time, it executes QoS control. 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 between them, they will be represented by the transmitting unit 150.
[0040] In order to execute packet forwarding processing while performing QoS control, the transmitting unit 150 includes a packet writing unit 210, a buffer unit 200, and a packet reading unit 220. The buffer unit 200 also includes a spare buffer unit 400 and a main buffer unit 300.
[0041] The individual units are respectively connected by priority-specific data signal lines 610, 620, 630, and 650. The priority-specific data signal lines 610, 620, 630, and 650 are provided according to the priorities set for packets to be transferred.
[0042] The packet writing unit 210 transfers the packet input from the switch unit 140 to the spare buffer unit 400 via the corresponding priority-based data signal line (first signal line) 610 in accordance with the priority set for the packet.
[0043] When the packet writing unit 210 receives a discard control signal from the spare buffer unit 400 via a priority-based discard control signal line (discard signal line) 640, the packet writing unit 210 stops transferring packets of that priority to the buffer unit 200. The discard signal lines 640 are also provided according to the priorities. The discard control signal is a signal that instructs the stop of transfer of packets of the corresponding priority.
[0044] The spare buffer unit 400 transfers the packet input from the packet writing unit 210 to the main buffer unit 300 via a priority-based data signal line (second signal line) 620 in accordance with the priority set for the packet. This embodiment also includes a plurality of spare buffers configured with FIFO memories, similar to the configuration of the same name in the first embodiment.
[0045] In this embodiment, the spare buffer unit 400 includes a monitoring unit 510 and an allocation control unit 520 (see FIG. 3).
[0046] Similar to the configuration of the same name in the first embodiment, the monitor 510 monitors the amount of data (packets) accumulated in the main buffer and the spare buffer by priority and notifies the result to the allocation control unit 520. Details will be described later.
[0047] The allocation control unit 520, like the configuration of the same name in the first embodiment, determines for which priority each of the multiple spare buffers is to be used as a spare buffer (to which priority each is to be assigned) according to the monitoring result of the monitoring unit 510. Details will be described later.
[0048] The main buffer unit 300 notifies the spare buffer unit 400 for each priority of information indicating the amount of data accumulated in the main buffers provided exclusively for each priority, via a priority-specific data signal line (third signal line) 630. Also, like the configuration of the same name in the first embodiment, a dedicated main buffer (FIFO memory) is provided for each of multiple types of priorities.
[0049] The packet reading unit 220 reads unread packets stored in the main buffer unit 300 in a strict priority system via a priority-specific data signal line (fifth signal line) 650. Specifically, when a relatively high-priority packet is stored in the main buffer unit 300 at the time of reading, the packet reading unit 220 reads the high-priority packet even if a large amount of relatively low-priority packets are stored or even if the high-priority packet was stored earlier. The read packet is output to the transmission path via the output port 170.
[0050] Next, a detailed description will be given of the buffer unit 200 of this embodiment. Fig. 3 is a detailed configuration diagram of the buffer unit 200 of this embodiment. As described above, the buffer unit 200 includes the main buffer unit 300 and the spare buffer unit 400.
[0051] First, the configuration of the main buffer unit 300 will be described. The main buffer unit 300 has a dedicated main buffer for each priority. Specifically, it has a high-priority main buffer (MB) 310 that stores high-priority packets, a medium-priority main buffer (MB) 320 that stores medium-priority packets, and a low-priority main buffer (MB) 330 that stores low-priority packets. All of these are configured as FIFO memories.
[0052] The main buffer unit 300 stores the packets transferred from the spare buffer unit 400 in a dedicated main buffer for each priority (high priority MB 310, medium priority MN 320, low priority MB 330) in sequence according to the priority of the packet. Also, in accordance with the read control of the packet read unit 220, the packets are transferred to the packet read unit 220 in sequence, starting from the packet with the highest priority and stored first.
[0053] In the main buffers dedicated to each priority, packets are stored from the spare buffer unit 400 via the second signal line 620. That is, high priority packets are stored in the high priority MB 310 via a second high priority signal line 621 of the second signal line 620. Medium priority packets are stored in the medium priority MB 320 via a second medium priority signal line 622 of the second signal line 620. Low priority packets are stored in the low priority MB 330 via a second low priority signal line 623 of the second signal line 620.
[0054] Furthermore, the main buffer unit 300 notifies the spare buffer unit 400 of the amount of data (amount of packets) waiting to be read in each of the dedicated main buffers for each priority as the MB amount.
[0055] The MB retention amount of the high priority MB 310 is notified to the high priority packet monitor 511, which will be described later. The notification is made via a 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 monitor 512. The notification is made via a 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 monitor 513. The notification is made via a third low priority signal line 633 of the third signal line 630.
[0056] Next, a description will be given of the configuration of the spare buffer unit 400. The spare buffer unit 400 includes 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 configured with FIFO memories.
[0057] The spare buffer unit 400 also includes a monitoring unit 510 and an allocation control unit 520 .
[0058] As in the first embodiment, the monitoring unit 510 monitors the amount of data accumulated in each buffer of the main buffer unit 300 and the spare buffer unit 400 by priority. In this embodiment, the monitoring unit 510 is provided for each priority. That is, the monitoring unit 510 includes a high-priority packet monitoring unit 511 that monitors the amount of data accumulated in the buffer in which high-priority packets are stored, a medium-priority packet monitoring unit 512 that monitors the amount of data accumulated in the buffer in which medium-priority packets are stored, and a low-priority packet monitoring unit 513 that monitors the amount of data accumulated in the buffer in which low-priority packets are stored.
[0059] The monitor 510 monitors the total buffer amount, which is the sum of the MB buffer amount, which is the amount of buffered data sent from the main buffer 300, and the spare buffer amount, which is the amount of buffered data sent from the spare buffer assigned to the priority in the spare buffer 400, for each priority. Then, depending on the total buffer amount, the monitor 510 determines the number of spare buffers required (number of requests) for each priority and notifies the allocation control unit 520.
[0060] The spare buffer amount of each of the spare buffers (first B410, second B420, third B430) is transmitted to the monitoring unit 510 via a signal line 560. Which spare buffer's spare buffer amount is notified to which monitoring unit 510 is controlled by, for example, a selector 550. The selector 550 operates according to an instruction (control signal) from the allocation control unit 520.
[0061] As in the first embodiment, the allocation control unit 520 determines which priority each of the multiple spare buffers should be used as a spare buffer for, depending on the monitoring result of the monitoring unit 510. That is, it determines which priority the first B410, second B420, and third B430 should be allocated to, depending on the number of spare buffer requests for each priority. Allocation is performed in order of priority (highest priority first).
[0062] Further, input selectors 530 (first input selector 531, second input selector 532, third input selector 533) are connected to the inputs of the spare buffers (first B410, second B420, third B430). The input selectors 530 are FIFO write data selectors that select an input signal to the connected spare buffer. Further, 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 spare buffer unit 400. These selectors select an 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 the selectors 530, 540, 550 via control lines 521.
[0063] In this manner, the spare buffer unit 400 of the present embodiment stores the priority-classified packets transferred from the packet writer 210 in the assigned spare buffer via the input selector 530 in accordance with instructions from the allocation controller 520. Then, the packets are transferred to the main buffer unit 300 via the output selector 540 in order of priority, beginning with the packets stored earlier.
[0064] The method of allocating the spare buffer will be described later. Depending on the priority, there may be packets that do not use a spare buffer. Such packets with a priority to which no spare buffer is allocated are not stored in the spare buffers (first B410, second B420, third B430) and are transferred to the main buffer unit 300 via the output selector 540.
[0065] Also, the selector 550 may not be provided. 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 retention amounts of all the high, medium and low priority spare buffers (first B410, second B420, third B430) so that each monitoring unit 510 uses only necessary information.
[0066] [Reserve Buffer Allocation] Next, a spare buffer allocation process performed by the monitoring unit 510 and allocation control unit 520 of this embodiment will be described.
[0067] As described above, the monitor 510 determines the number of spare buffers required (number of requests) for each priority level according to the total queued amount, and notifies the allocation controller 520. The number of requests is determined, for example, according to a pre-stored criterion table 710 that associates the total queued amount with a threshold value and the number of requests.
[0068] 4 is an example of the criterion table 710. As shown in the figure, the criterion table 710 stores the number of requested spare buffers (requested spare buffer number 712) in association with each criterion 711 indicating the relationship between the total queue amount and a threshold value.
[0069] In this embodiment, for example, a case where four thresholds (first threshold, second threshold, third threshold, and fourth threshold) are used will be described. These have the following meanings, for example, as shown in Fig. 5. Note that in Fig. 5, the description will be given assuming that the first B410, second B420, and third B430 are assigned in this order.
[0070] The first threshold value is a threshold value for judging whether or not the main buffers of each priority level (high priority MB 310, medium priority MN 320, low priority MB 330) of the main buffer unit 300 have free space. The second threshold value is a threshold value for determining whether the first spare buffer (first B410) of the spare buffer unit 400 has free space. The third threshold value is a threshold value for determining whether the second spare buffer (second B420) of the spare buffer unit 400 has free space. The fourth threshold value is a threshold value for determining whether the third spare buffer (third B430) of the spare buffer unit 400 has free space. These thresholds have a relationship of first threshold<second threshold<third threshold<fourth threshold.
[0071] As shown in FIG. 5(a), when the total backlog amount is less than the first threshold, no spare buffer is required. Therefore, as shown in FIG. 4, the number of requests is 0. As shown in FIG. 5(b), when the total backlog amount is equal to or greater than the first threshold and less than the second threshold, one spare buffer is required. Therefore, the number of requests is 1. As shown in FIG. 5(c), when the total backlog amount is equal to or greater than the second threshold and less than the third threshold, two spare buffers are required. Therefore, the number of requests is 2. As shown in FIG. 5(d), when the total backlog amount is equal to or greater than the third threshold and less than the fourth threshold, three spare buffers are required. Therefore, the number of requests is 3. Also, when the total backlog amount is equal to or greater than the fourth threshold, in this embodiment, the number of spare buffers is three, so in this case, the number of requests is also 3.
[0072] The priority monitors 510 make these determinations for the amount of accumulated data of each priority, and determine and notify the allocation control unit 520 of the number of requests. For example, the high priority packet monitor 511 makes the above determination for the total amount of accumulated high priority packets, and notifies the allocation control unit 520 of the number of spare buffer requests for high priority packets (number of high priority requests). The medium priority packet monitor 512 makes the above determination for the total amount of accumulated medium priority packets, and notifies the allocation control unit 520 of the number of spare buffer requests for medium priority packets (number of medium priority requests). The low priority packet monitor 513 makes the above determination for the total amount of accumulated low priority packets, and notifies the allocation control unit 520 of the number of spare buffer requests for low priority packets (number of low priority requests).
[0073] The priority monitors 510 perform these determinations synchronously at predetermined time intervals, for example, and notify the allocation control unit 520 of the results.
[0074] When the allocation control unit 520 receives the number of requests from each monitoring unit 510, it executes an allocation process (arbitration process) to allocate each spare buffer to a specific priority in order of priority based on the input number of requests, up to the total number of spare buffers.
[0075] That is, the allocation control unit 520 first allocates each spare buffer to high priority packets according to the number of high priority requests, allocates the remaining spare buffers to medium priority packets according to the number of medium priority requests, and further allocates the remaining spare buffers to low priority packets according to the number of low priority requests. That is, the allocation priority control is performed 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, Fig. 6 shows an example of the allocation table 720 that stores the allocation of each spare buffer for each judgment condition (combination of the number of requests for each priority) in the case where the first B410, the second B420, and the third B430 are preferentially allocated among the spare buffers.
[0077] As shown in the figure, in the allocation table 720, for each condition number 721 that uniquely identifies a combination of the number of requests as a condition, the number of requests 722 of each priority for that condition and the allocation 723 of each spare buffer for that condition are registered.
[0078] Specifically, the spare buffers (first B410, second B420, third B430) of the spare buffer unit 400 are allocated to packets with the following priorities when the following conditions are satisfied. First B410: · Conditions assigned for high priority packets Condition No. 1 to 9 Number of high priority requests is 1 or more · Conditions assigned for medium priority packets Condition No. 10 to 14: The number of high priority requests is 0 and the number of medium priority requests is 1 or more. · Conditions assigned for low priority packets Condition No. 15 to 17: The number of high-priority requests and the number of medium-priority requests are 0, and the number of low-priority requests is 1 or more. Second B420: · Conditions assigned for high priority packets Conditions No. 1 to 4: Number of high priority requests is 2 or more · Conditions assigned for medium priority packets Condition No. 5~6 The number of high priority requests is 1 and the number of medium priority requests is 1 or more, or Condition No. 10 to 11: The number of high priority requests is 0 and the number of medium priority requests is 2 or more. · Conditions assigned for low priority packets Condition 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. Condition No. 12 to 13: The number of high priority requests is 0, the number of medium priority requests is 1, and the number of low priority requests is 1 or more, or Condition No. 15~16: The number of high priority requests is 0, the number of medium priority requests is 0, and the number of low priority requests is 2 or more. Third B430: · Conditions assigned for high priority packets Condition No. 1 Number of high priority requests is 3 · Conditions assigned for 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, or Condition No. 10: The number of high priority requests is 0 and the number of medium priority requests is 3 · Conditions assigned for 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, 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: The number of high priority requests is 0, the number of medium priority requests is 0, and the number of low priority requests is 3 or more.
[0079] After determining which priority packets should be allocated to each spare buffer, the allocation control unit 520 controls the input selectors 530 (531, 532, 533), the output selectors 540 (541, 542, 543), and the selector 550 accordingly.
[0080] For example, the thresholds (first threshold, second threshold, third threshold, and fourth threshold), the criterion table 710, and the allocation table 720 are stored in a storage device included in the communication device 100.
[0081] Here, the allocation control unit 520 allocates the first B410, the second B420, and the third B430 in this order according to the allocation table 720, as described above. The allocation table 720 is created so that when there are multiple allocations, the spare buffers whose outputs are connected to the (previous-stage) input selector 530 connected to the input of the previously allocated spare buffer are allocated in order. Specifically, for example, when the allocation number is 2, first, the first B410 and the second B420, or the second B420 and the third B430, are allocated.
[0082] If the allocation control unit 520 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, it notifies the respective monitoring unit 510. Upon receiving the notification, the monitoring unit 510 notifies the packet writing unit 210 of a discard control signal via the discard signal line 640 for each priority. Note that if the requested number of spare buffers are 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] [Quota Control] The details of the control of the input selectors 530, output selector 540, and selector 550 by the allocation control unit 520 will be described. For the sake of explanation, for example, a spare buffer whose output is connected to an input selector 530 in the preceding stage of one spare buffer will be called an upstream spare buffer. For example, in the example of FIG. 3, the spare buffer upstream of the first B410 is the second B420. Also, the spare buffer upstream of the second B420 is the third B430. Also, in the example of FIG. 3, the first B410 is the most downstream spare buffer, and the third B430 is the most upstream spare buffer.
[0084] 3, packets of each priority level are input to an input selector 530 preceding the most upstream spare buffer from a first signal line 610. The input selector 530 selects one of the packets in accordance with a control signal. The input selector 530 preceding the spare buffers other than the most upstream buffer receives packets of each priority level from the first signal line 610 and the output of a spare buffer upstream of the spare buffer. The input selector 530 selects one of the packets in accordance with a control signal.
[0085] The allocation control unit 520 connects the signal line of the first signal line 610 for that priority to the input of the most upstream spare buffer in the input selector 530 of the most upstream spare buffer among one or more spare buffers assigned to the same priority. That is, the allocation control unit 520 controls the input selector 530 to select and output packets from the signal line of that priority of the first signal line 610. The input selector 530 of the spare buffer downstream of the most upstream spare buffer connects the output of the spare buffer one upstream to its input.
[0086] 3, each output selector 540 receives packets having the priority of the main buffer to which the output selector is connected via a first signal line 610. Furthermore, the output of each spare buffer is also input.
[0087] In an output selector 540 connected to a main buffer of a certain priority, the allocation control unit 520 connects the output of the most downstream spare buffer among the spare buffers assigned for that priority to the input of that main buffer. In other words, each output selector 540 is controlled so as to output a packet output from the most downstream spare buffer assigned to the same priority as the main buffer of the output destination of that output selector 540 to that output destination main buffer. Note that if there is no spare buffer assigned to that priority, the first signal line 610 is connected to the input of that main buffer.
[0088] Furthermore, the allocation control unit 520 controls the selector 550 so that the amount of data accumulated in the spare buffer assigned to each priority level is input to the monitoring unit 510 that monitors packets of that priority level.
[0089] Here, a specific control example will be described.
[0090] For example, the flow of high priority packets and the flow of spare buffer volume information in the spare buffer unit 400 when the first B410 is assigned for high priority packets are shown in FIG. 7 by a thick line and a thick dashed dot line, respectively.
[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 their operations.
[0092] As shown in the figure, the allocation control unit 520 operates the high-priority output selector 541 so that the packet (read data) (S411) output from the first B410 is output to the main buffer unit 300 (high-priority MB310). Note that the allocation control unit 520 transmits a signal to the other output selectors 540 (the medium-priority output selector 542 and the low-priority output selector 543) to instruct them not to output the packet output from the first B410.
[0093] The allocation control unit 520 also operates the first input selector 531 so that a packet (S412) from the first high priority signal line 611, which is one of the first signal lines 610 and through which a high priority packet is transmitted, is input to the first B410. Note that the allocation control unit 520 transmits a signal to the other input selectors 530 (the second input selector 532 and the third input selector 533) to instruct them not to input a packet from the first high priority signal line 611.
[0094] The allocation control unit 520 also operates the selector 550 so that the reserve retention amount (S413) from the first B410 is input to the high priority packet monitoring unit 511. At this time, the selector 550 operates so that the reserve retention amount from the first B410 is not input to the other monitoring units 510 (the medium priority packet monitoring unit 512 and the low priority packet monitoring unit 513), and operates so that the reserve retention amount from the other reserve buffers (the second B420 and the third B430) is not input to the high priority packet monitoring unit 511.
[0095] In this way, the allocation control unit 520 can perform a data transfer operation using the first B410 as a buffer resource for high priority packets by controlling the high priority output selector 541 and the first input selector 531. Also, the monitoring unit 510 can be made to monitor the amount of data accumulated in the first B410 as a reserve amount of high priority packets.
[0096] For example, the flow of packets and the flow of accumulated data in the spare buffer unit 400 when the first B410 and the second B420 are assigned to high priority packets are shown by the thick line and the thick dashed dot line in FIG.
[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) (S411) output from the first B410 is output to the main buffer unit 300. Note that the allocation control unit 520 transmits a signal to the other output selectors 540 (the medium-priority output selector 542 and the low-priority output selector 543) to instruct them not to output the packet output from the first B410.
[0099] The allocation control unit 520 also operates the first input selector 531 so that the output packet (S414) of the second B420 is input to the first B510. Furthermore, the second input selector 532 operates so that the packet (S412) from the first high priority signal line 611 is input to the second B420. Note that a signal is sent to the other input selector 530 (the third input selector 533) to instruct not to input the packet from the first high priority signal line 611.
[0100] The selector 550 is also operated so that the reserve retention amounts (S413, S415) from the first B410 and second B420 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 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 another reserve buffer (the 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, thereby enabling a data transfer operation using the first B410 and the second B420 as buffer resources for high priority packets. Also, the monitoring unit 510 can be made to monitor the reserve retention amounts of the first B410 and the second B420 as the data retention amount of high priority packets.
[0102] 9 shows an example of a transfer path of packets of each priority level in the buffer unit 200 (the main buffer unit 300 and the spare buffer unit 400). Here, the buffers through which a packet input via the first signal line 610 (611, 612, 613) passes before being output from the main buffer unit 300 are shown when the first B410 and the second B420 of the spare buffer unit 400 are assigned to high priority packets and the third B430 is assigned to medium priority packets.
[0103] The buffers for high-priority packets are the high-priority MB310 of the main buffer unit 300, and the first B410 and second B420 of the spare buffer unit 400. These function as one FIFO memory. Specifically, a packet input from the first high-priority signal line 611 is first stored in the second B420. Then, the packet is 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 spare buffer unit 400. These function as one FIFO memory. Specifically, a packet input from the first medium priority signal line 612 is first stored in the third B430. Then, the packet is output via the medium priority MB320.
[0105] The buffer for low priority packets is only the low priority MB 330 of the main buffer unit 300. A packet input from the first low priority signal line 613 is output via only the low priority MB 330.
[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, a spare buffer consisting of multiple FIFO memories is allocated in units of FIFO memories in descending order of priority according to the amount of data accumulated, and used. That is, the same spare buffer is used in units of FIFO memories for each priority as necessary. 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 descending order of priority with less memory. Also, since the allocation is performed in units of FIFO memories, memory management and access control are simpler than a method in which a single memory is shared between each priority.
[0107] Therefore, according to this embodiment, in a communication device 100 that performs QoS control to preferentially transfer high priority packets, it is possible to achieve both improved memory usage efficiency and reduced discarding of high priority packets with a simple configuration without performing complex control.
[0108] <Variation 1> In the above embodiments, an example has been described in which there are three types of packet priorities (high priority, medium priority, and low priority) and 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 this. Any number may be more than one.
[0109] For example, when the number of priority types is changed, the number of dedicated buffers in the main buffer unit 300, the number of output selectors 540 in the spare buffer unit 400, and the number of monitoring units 510 provided for each priority are changed according to the number of priority types. Furthermore, 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 spare buffers in spare buffer section 400, the number of input selectors 530 provided for each spare buffer and the number of input data to output selectors 540 are changed according to the number of spare buffers. The number of thresholds in criterion table 710 is also changed according to the number of spare buffers. Furthermore, the number of conditions in allocation table 720 is also changed accordingly.
[0111] <Variation 2> In each of the above embodiments, after allocating the spare buffers, the allocation control unit 520 transmits control signals to the input selector 530, the output selector 540, and the selector 550 in accordance with the connection relationships of the spare buffers, but this is not limiting. For example, the control signals to be transmitted to the selectors for each condition in the allocation table 720 may be stored in advance.
[0112] <Modification 3> In addition, in each of the above embodiments, the monitoring units 510 of each priority level synchronously judge the number of requests at a predetermined time interval, but this is not limiting. For example, the judgment does not have to be synchronous. Each monitoring unit 510 may make a judgment at its own timing and notify the allocation control unit 520. In this case, the allocation control unit 520 may execute allocation control at a predetermined time interval, for example. When executing the allocation control, the latest number of requests notified from each monitoring unit 510 is used.
[0113] The allocation control unit 520 may also be configured to execute the process in response to a predetermined event, or in response to an instruction from a user.
[0114] For example, when a threshold is exceeded in packet writing or when a threshold is fallen below in packet reading, the monitor 510 may make this determination and notify the allocation control unit 520.
[0115] <Modification 4> In addition, in each of the above embodiments, the transmission unit 150 that transfers packets to an external device executes QoS control using the main buffer unit 300 and the spare buffer unit 400. However, this is not limited to this. For example, these buffer units may be prepared in other functional units in the communication device 100, such as the reception unit 130, and QoS control may be executed.
[0116] <Variation 5> In addition, 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, the communication device 100 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] <Variation 6> In each of the above embodiments, the spare buffers are allocated according to the allocation table 720. In the allocation table 720, the spare buffers are allocated with the highest priority from the most downstream, and even when the same priority is allocated, the spare buffers are allocated to consecutive buffers. However, this is not limited to this. For example, in the case of a service in which the packet transfer order can be reversed without causing any problems, the allocation order does not need to be fixed. Furthermore, the spare buffers to which the same priority is allocated do not need to be consecutive.
[0118] [Hardware configuration] The monitoring unit 510 and the allocation control unit 520 may be realized by, for example, a 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 the above-mentioned functions by, for example, loading a program stored in the auxiliary storage device 993 into the main storage device 992 and executing it, and also performs overall control of the communication device 100 (or 100a). Note that, instead of the CPU 991, one or more processors such as an MPU (Micro Processing Unit) may be used.
[0120] The main storage device 992 is a memory such as a RAM (Random Access Memory), etc. The main storage device 992 is a work area when the CPU 991 processes the programs executed by the monitor unit 510 and the allocation control unit 520.
[0121] The auxiliary storage device 993 is, for example, a read only memory (ROM), a hard disk drive (HDD), a solid state drive (SSD), etc. The auxiliary storage device 993 stores various programs executed by the monitoring unit 510 and the allocation control unit 520. 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, etc.
[0122] The 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 the non-transitory computer-readable storage medium for a medium to long term.
[0123] The I / F 994 is an interface for inputting and outputting various data such as control signals and notifications. In addition, a display device, an input device, etc. may be connected as an extended interface. The display device is, for example, a liquid crystal monitor, etc. The input device is, for example, a device that accepts user operations such as a keyboard or a mouse.
[0124] The above-mentioned respective functions of the monitor 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 storage device 992 and executing it.
[0125] Furthermore, each threshold value, each table, etc. are stored in, for example, 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 described above, and may include hardware (not shown).
[0127] In addition, a program for implementing the above-mentioned functions of the monitoring unit 510 and the allocation control unit 520 of this embodiment can be recorded in a computer-readable storage medium. The storage medium can be a non-transient medium such as a semiconductor memory, a hard disk, a magnetic recording medium, or an optical recording medium. The present invention can also be embodied as a computer program product.
[0128] In addition, 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 chip (SOC), a field programmable gate array (FPGA), or the like.
[0129] In the process flow used in the above description, multiple steps (processes) are described in order, but the order of execution of each step is not limited to the order described. For example, the order of the steps shown in the figure can be changed to a range that does not affect the content, such as executing each process in parallel.
[0130] Although the embodiments and modifications of the present invention have been described above, the present invention is not limited to the above-mentioned embodiments, and various modifications that can be understood by those skilled in the art can be made. Each embodiment and modification can be appropriately combined with other embodiments. For example, the network configuration and the configuration of each element shown in each drawing are examples to help understand 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 will be summarized as follows: A part or all of the above-described embodiments can be described as follows, but are not limited to the following. (Appendix 1) The communication device a main buffer unit including main buffers provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; a monitoring unit that monitors the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; and an allocation control unit that allocates a plurality of spare buffers to the priorities in order from the highest priority according to the amount of data accumulated for each priority, and controls so that packets of the priorities are stored in the allocated spare buffers. (Appendix 2) 2. The communication device according to claim 1, the monitoring unit monitors, for each priority, a total buffer amount that is a sum of the amount of data accumulated in the main buffer provided for that priority and the amount of data accumulated in the spare buffer to which that priority is assigned, and determines a number of requests that is the number of spare buffers required based on the total buffer amount and notifies the allocation control unit; It is preferable that the allocation control unit allocates the requested number of spare buffers to the priorities in order of decreasing priority. (Appendix 3) 3. The communication device according to claim 2, It is preferable that the monitoring unit determines the number of requests in accordance with a criterion table that stores the number of requests corresponding to the total accumulation amount. (Appendix 4) 4. The communication device according to claim 2, It is preferable that the allocation control unit allocates the spare buffers to each of the priorities in accordance with an allocation table that stores spare buffers to be allocated according to the number of requests for each of the priorities. (Appendix 5) 5. The communication device according to claim 1, an input selector is provided in front of each of the spare buffers; an output selector is provided in front of each of the main buffers; It is preferable that the allocation control unit controls the storage of the packets by transmitting a control signal to each of the input selectors and each of the output selectors. (Appendix 6) 6. The communication device according to claim 1, a selector is provided between the spare buffers and the monitoring unit; It is preferable that the allocation control unit transmits a control signal to the selector to cause the monitoring unit to obtain the amount of accumulated data for each priority from a plurality of the spare buffers. (Appendix 7) The communication method is a main buffer unit including main buffers provided for each of a plurality of types of priority; A communication method in a communication device including a spare buffer unit including a plurality of spare buffers, monitoring the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; allocating a plurality of the spare buffers to the priorities in order from the highest priority according to the amount of data accumulated for each of the priorities; The packet with the priority level is controlled so as to be stored in the allocated spare buffer. (Appendix 8) The program includes: A computer of a communication device including a main buffer unit having a main buffer provided for each of a plurality of types of priority and a spare buffer unit having a plurality of spare buffers, monitoring the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; allocating a plurality of spare buffers to the priority levels in descending order of priority according to the amount of data accumulated for each priority level; and a procedure of controlling the storage of packets of the priority level in the allocated spare buffer. In addition, the forms of Supplements 7 and 8 can be expanded into the forms of Supplements 2-6, similar to Supplementary Note 1.
[0132] The disclosures of the above patent documents and the like are incorporated herein by reference. Within the framework of the entire disclosure of the present invention (including the scope of claims), and further based on the basic technical idea, modifications and adjustments of the embodiments and modifications are possible. Furthermore, within the framework of the disclosure of the present invention, various combinations and selections of various disclosed elements (including each element of each claim, each element of each embodiment or modification, each element of each drawing, etc.) are possible. In other words, the present invention naturally includes various modifications and corrections that a person skilled in the art would be able to make according to the entire disclosure including the scope of claims and the technical idea. In particular, with regard to the numerical ranges described in this specification, any numerical value or subrange included in the range should be interpreted as being specifically described even if not otherwise specified. [Explanation of symbols]
[0133] 100: communication device, 100a: communication device, 120: input port, 130: receiving unit, 140: switch unit, 150: transmitting unit, 150a: transmitting unit, 150b: transmitting unit, 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 unit, 400a: spare buffer unit, 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 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: allocation control unit, 520a: allocation 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: data signal line by priority (first signal line), 611: first high priority signal line, 612: first medium priority signal line, 613: first low priority signal line, 620: data signal line by priority (second signal line), 621: second high priority signal line, 622: second medium priority signal line, 623: second low priority signal line, 630: data signal line by priority (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: data signal line by priority, 710: Criteria table, 711: Criteria, 712: Number of spare buffer requests, 720: Allocation table, 721: Condition No., 722: Number of requests, 723: Allocation, 900: control device, 991: CPU, 992: main memory device, 993: auxiliary memory device, 994: I / F, S411: High priority packet, S412: High priority packet, S413: Reserve retention amount, S414: High priority packet, S415: Reserve retention amount
Claims
1. a main buffer unit including main buffers provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; a monitoring unit that monitors the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; an allocation control unit that allocates a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controls the packets of the priorities to be stored in the allocated spare buffers; the monitoring unit monitors, for each priority, a total buffer amount that is a sum of the amount of data accumulated in the main buffer provided for that priority and the amount of data accumulated in the spare buffer to which that priority is assigned, and determines a number of requests that is the number of spare buffers required based on the total buffer amount and notifies the allocation control unit; The allocation control unit allocates the requested number of spare buffers to the priority levels in descending order of priority.
2. 2. The communication device according to claim 1, The monitoring unit determines the number of requests in accordance with a criteria table that stores the number of requests according to the total retention amount.
3. 2. The communication device according to claim 1, The allocation control unit allocates the spare buffers to each of the priorities in accordance with an allocation table that stores spare buffers to be allocated according to the number of requests for each of the priorities.
4. a main buffer unit including main buffers provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; a monitoring unit that monitors the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; an allocation control unit that allocates a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controls the packets of the priorities to be stored in the allocated spare buffers; an input selector provided in a stage preceding each of the spare buffers; an output selector provided in front of each of the main buffers; The allocation control unit controls the storage of the packets by transmitting a control signal to each of the input selectors and each of the output selectors.
5. a main buffer unit including main buffers provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; a monitoring unit that monitors the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; an allocation control unit that allocates a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controls the packets of the priorities to be stored in the allocated spare buffers; a selector provided between the spare buffers and the monitoring unit; The allocation control unit transmits a control signal to the selector to cause the monitoring unit to acquire the amount of data accumulated for each priority from the spare buffers.
6. a main buffer unit including main buffers provided for each of a plurality of types of priority; A communication method in a communication device including a spare buffer unit including a plurality of spare buffers, monitoring the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; allocating a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controlling the packets of the priorities to be stored in the allocated spare buffers; the monitoring step includes monitoring a total buffer amount, which is a sum of the amount of data accumulated in the main buffer provided for each priority and the amount of data accumulated in the spare buffer to which the priority is assigned, and determining a number of requests, which is the number of spare buffers required, based on the total buffer amount; A communications method, wherein in the controlling step, the determined requested number of spare buffers are allocated to the priorities in order from highest to lowest.
7. The communication method according to claim 6, The communication method, in the monitoring step, the number of requests is determined according to a criterion table that stores the number of requests according to the total retention amount.
8. The communication method according to claim 6, The communication method, wherein the controlling step allocates the spare buffers to each of the priorities in accordance with an allocation table that stores spare buffers to be allocated according to the number of requests for each of the priorities.
9. A main buffer unit including a main buffer provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; an input selector provided in a stage preceding each of the spare buffers; A communication method in a communication device including output selectors provided in front of a plurality of the main buffers, the output selectors comprising: monitoring the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; allocating a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controlling the packets of the priorities to be stored in the allocated spare buffers; A communication method, wherein in the controlling step, storage of the packets is controlled by transmitting a control signal to each of the input selectors and each of the output selectors.
10. A main buffer unit including a main buffer provided for each of a plurality of types of priority; a spare buffer unit including a plurality of spare buffers; The monitoring department and A communication method in a communication device including a selector provided between a plurality of spare buffers and the monitoring unit, a monitoring unit monitoring the amount of data accumulated in the main buffer and the spare buffer for each of the priorities; allocating a plurality of the spare buffers to the priorities in descending order of priority according to the amount of data accumulated for each of the priorities, and controlling the packets of the priorities to be stored in the allocated spare buffers; In the controlling step, a control signal is sent to the selector, thereby causing the monitor unit to obtain the amount of accumulated data for each priority from a plurality of spare buffers.
11. A communication device including a main buffer unit having a main buffer provided for each of a plurality of types of priority, and a spare buffer unit having a plurality of spare buffers, A program for executing the communication method according to any one of claims 6 to 8.
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