Buffer allocation device, subscriber line termination device, buffer allocation method and program
The buffer allocation method optimizes buffer usage in FTTH systems by determining minimum required amounts based on efficiency, reducing costs and preventing overflow, thus enhancing the efficiency of FTTH systems.
Patent Information
- Application Number
- JP2021134583
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-08-20
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2041-08-20
AI Technical Summary
Existing buffer allocation methods in FTTH systems, such as GE-PON and 10G-EPON, do not provide a clear method for setting necessary and sufficient buffer amounts, leading to increased device costs due to oversubscription and insufficient capacity in built-in buffers.
A buffer allocation method that determines the minimum required buffer amounts based on data accommodation efficiency and allocates these amounts to internal and external buffers, ensuring efficient use of both types of buffers while preventing oversubscription.
This approach allows for cost-effective implementation of transmission data buffering by optimizing buffer allocation, reducing the need for excessive external buffer capacity and preventing buffer overflow.
Smart Images

Figure 0007601726000001 
Figure 0007601726000002 
Figure 0007601726000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a buffer allocation device, termination The present invention relates to an apparatus, a buffer allocation method, and a program. [Background technology]
[0002] In response to the growing need for faster access services, FTTH (Fiber To The Home) has become widespread worldwide. In Japan, the main FTTH services include GE-PON (Gigabit Ethernet PON) and 10G-EPON (10 Gigabit Ethernet PON), which realize gigabit-class transmission speeds.
[0003] In GE-PON and 10G-EPON, TDMA (Time Division Multiple Access) technology is used for upstream communications from ONU to OLT. In addition, one of the functions required for GE-PON and 10G-EPON to operate as a system is the DBA (Dynamic Bandwidth Allocation) function. The DBA function is a bandwidth control function that dynamically allocates bandwidth for upstream communications according to the amount of traffic. The DBA function realizes efficient upstream bandwidth without generating unused bandwidth by appropriately switching the allocated bandwidth according to the status of the upstream communication traffic flowing to each ONU.
[0004] In the DBA function, each ONU notifies the OLT of the amount of upstream data waiting to be transmitted that is stored in the upstream transmission buffer using a REPORT frame. Meanwhile, the OLT uses a GATE frame to instruct each ONU on the transmission start time and permitted transmission amount of the upstream data so that each ONU can transmit upstream data without time collisions based on the received REPORT frame. Each ONU transmits upstream data based on the permitted transmission amount at the transmission start time instructed by the GATE frame. In this way, the DBA function is realized through communication using GATE and REPORT frames. [Prior art documents] [Non-patent literature]
[0005] [Non-Patent Document 1] "Technical Basics Course [GE-PON Technology] Part 4: Systemization Functions of GE-PON", NTT Technical Journal, pp.59-61, November 2005. Summary of the Invention [Problem to be solved by the invention]
[0006] Incidentally, when providing multiple services to one user, for example, when quality-guaranteed communications such as VoIP (Voice over Internet Protocol) and video distribution are multiplexed, a priority control function is required to ensure the quality of the service (see Non-Patent Document 1). The priority control function makes it possible to transmit data with higher priority, and ensures the quality of the high-priority service even if low-priority data (Internet service) and high-priority data (VoIP, video distribution, etc.) are input simultaneously.
[0007] Generally, ONUs perform priority control for the transmission of upstream data. ONUs require a large amount of buffer to control the timing of transmission of upstream data. For this reason, ONUs are equipped with an upstream transmission buffer (hereinafter referred to as "built-in buffer") in their internal PON chip to temporarily store upstream data. This built-in buffer also has multiple upstream transmission queues. The PON chip referred to here is an ONU whose main functions have been integrated into an LSI (Large Scale Integration) to reduce costs.
[0008] However, even so, there are cases where the built-in buffer mounted on the PON chip does not have enough buffer capacity. In this case, it is necessary to add an external upstream transmission buffer (hereinafter referred to as "external buffer") such as a DDR SDRAM (Double-Data-Rate Synchronous Dynamic Random Access Memory) to create a two-stage buffer configuration. This external buffer is also configured to have multiple upstream transmission queues. Each upstream transmission queue of the built-in buffer and each upstream transmission queue of the external buffer are in one-to-one correspondence with each other. With the two-stage buffer configuration, even if there is no free space in the built-in buffer, buffering is performed in the external buffer, so that it is possible to prevent buffer overflows and the like.
[0009] However, in the past, there was no clear method for setting a necessary and sufficient buffer capacity for each buffer in such a two-stage buffer. Therefore, in order to prevent a situation in which the entire set buffer capacity cannot be allocated to the built-in buffer (hereinafter referred to as "oversubscription"), it was necessary to set the buffer capacity of the external buffer with a margin. This resulted in an issue of increased equipment costs for the transmission buffer.
[0010] The present invention has been made in view of the above-mentioned points, and provides a buffer allocation device, a subscriber line, and a buffer buffering device that can be implemented at a lower cost for buffering transmission data. termination An object of the present invention is to provide an apparatus, a buffer allocation method, and a program. [Means for solving the problem]
[0011] One aspect of the present invention is a buffer allocation device that includes an acquisition unit that acquires information indicating a requested buffer amount for each of a plurality of queues; and a setting unit that converts the requested buffer amount for each queue into a first minimum converted buffer amount based on the lowest data storage efficiency that can occur in a first memory unit, and assigns a buffer amount calculated based on the first minimum converted buffer amount and a minimum buffer amount required per cycle of a dynamic bandwidth allocation function to the queue with the lowest priority of the first memory unit, and assigns a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the queue with the lowest priority of the first memory unit from the total capacity of the first memory unit, and a second buffer amount, which is the sum of the first minimum converted buffer amounts of queues other than the queue with the lowest priority of the first memory unit.
[0012] According to another aspect of the present invention, there is provided a subscriber line communication system including: an acquisition unit that acquires information indicating a requested buffer amount for each of a plurality of upstream transmission queues; and a setting unit that converts the requested buffer amount for each of the upstream transmission queues into a first minimum converted data length based on a lowest data storage efficiency that can occur in a built-in buffer, and allocates a buffer amount calculated based on the first minimum converted data length and a minimum buffer amount required per cycle of a dynamic bandwidth allocation function to the upstream transmission queue having the lowest priority of the built-in buffer; and allocates a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the upstream transmission queue having the lowest priority of the built-in buffer from the total capacity of the built-in buffer, and a second buffer amount, which is a sum of the first minimum converted buffer amounts of the upstream transmission queues other than the upstream transmission queue having the lowest priority of the built-in buffer. termination It is a device.
[0013] Moreover, one aspect of the present invention is a buffer allocation method comprising: an acquisition step of acquiring information indicating a requested buffer amount for each of a plurality of queues; and a setting step of converting the requested buffer amount for each queue into a first minimum converted buffer amount based on the lowest data storage efficiency that can occur in a first memory unit, and allocating a buffer amount calculated based on the first minimum converted buffer amount and a minimum buffer amount required per cycle of a dynamic bandwidth allocation function to the queue with the lowest priority of the first memory unit; and allocating, to queues other than the queue with the lowest priority of the first memory unit, a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the queue with the lowest priority of the first memory unit from the total capacity of the first memory unit, and a second buffer amount, which is a sum of the first minimum converted buffer amounts of queues other than the queue with the lowest priority of the first memory unit.
[0014] Another aspect of the present invention is a program for causing a computer to function as the above-mentioned buffer allocation device. Effect of the Invention
[0015] The present invention allows devices for buffering transmission data to be implemented at lower cost. [Brief description of the drawings]
[0016] [Figure 1] 1 is an overall configuration diagram of a PON1 according to an embodiment of the present invention. [Diagram 2] 2 is a block diagram showing a configuration of an ONU 20 according to an embodiment of the present invention. [Diagram 3] 10 is a diagram for explaining an upstream transmission buffer setting process by an ONU 20 according to an embodiment of the present invention. FIG. [Figure 4] 10 is a diagram for explaining an upstream transmission buffer setting process by an ONU 20 according to an embodiment of the present invention. FIG. [Diagram 5] 10 is a diagram for explaining an upstream transmission buffer setting process by an ONU 20 according to an embodiment of the present invention. FIG. [Figure 6] 5 is a flowchart showing an example of an operation of an ONU 20 according to the embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0017] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0018] [PON configuration] PON (Passive Optical Network) is an optical access system that provides FTTH services at high speed and low cost. PON does not perform optical-electrical conversion, but splits optical signals into multiple signals using an optical splitter, which is a low-cost passive element. This allows multiple users to share a single optical fiber, making it possible to realize an economical network. The main FTTH services in Japan include, for example, GE-PON, which achieves gigabit-class transmission speeds, and 10G-EPON, which has 10 times the bandwidth of GE-PON.
[0019] The overall configuration of the PON1 in this embodiment will be described below. Fig. 1 is an overall configuration diagram of the PON1 in the embodiment of the present invention. As shown in Fig. 1, the PON1 includes an OLT (Optical Line Terminal) 10, a plurality of (n in Fig. 1) ONUs (Optical Network Units) 20, an optical fiber 30, and an optical splitter 40.
[0020] The OLT 10 is installed, for example, in a central office of a telecommunications carrier. The ONU 20 is installed, for example, in a user's home (or premises). The optical fiber 30 is laid, for example, between the central office of a telecommunications carrier and the user's home. The optical splitter 40 branches the optical fiber 30. By installing the optical splitter 40 that multiplexes and splits optical signals between the OLT 10 and the ONU 20, multiple ONUs 20 are connected to one OLT 10.
[0021] The OLT 10 receives optical signals transmitted from the ONUs 20 and transfers them to a higher-level device or a higher-level network (e.g., the Internet). The OLT 10 also receives signals from the higher-level device or the higher-level network and transfers them to each ONU 20. The OLT 10 is responsible for controlling and monitoring the PON section and the ONUs 20.
[0022] The ONU20 receives an optical signal transmitted from the OLT10 and converts it into an electrical signal. The ONU20 then transfers the converted electrical signal to a user's terminal device (e.g., a PC, etc.). The ONU20 also receives an electrical signal transmitted from a user's terminal device and converts it into an optical signal. The ONU20 then transfers the converted optical signal to the OLT10.
[0023] In the PON1, TDM (Time Division Multiplexing) technology is used for communication from the OLT 10 to the ONU 20 (hereinafter referred to as "downstream communication"). TDM is a technology that multiplexes and transmits signals from multiple users so that they do not overlap in time.
[0024] In downstream communication, the same signal (hereinafter referred to as "downstream signal") transmitted from the OLT 10 and split by the optical splitter 40 is transferred to all ONUs 20 connected to the OLT 10. That is, data other than data addressed to the ONU 20 itself is also transferred to each ONU 20. Therefore, each ONU 20 extracts only the data addressed to itself from the transferred data, and discards the other data (addressed to other ONUs 20).
[0025] Furthermore, in the PON1, TDMA technology is used for communication from the ONU 20 to the OLT 10 (hereinafter referred to as "upstream communication"). In upstream communication, signals from a plurality of ONUs 20 (hereinafter referred to as "upstream signals") are multiplexed by the optical splitter 40. Therefore, if the upstream signals from each ONU 20 are transmitted in a disorderly manner, there is a possibility that collisions will occur on the optical fiber 30. Therefore, TDMA controls the transmission timing of the upstream signals from the ONUs 20 and the transmission amount of the upstream data, so that the upstream signals from each ONU 20 are multiplexed without collisions on the optical fiber 30.
[0026] The DBA function is one of the functions required for GE-PON and 10G-EPON to operate as a system. The DBA function is a bandwidth control function that dynamically allocates the bandwidth for upstream communication (hereinafter referred to as "upstream bandwidth") according to the amount of traffic. The DBA function can flexibly allocate the upstream bandwidth according to the upstream communication traffic (hereinafter referred to as "upstream traffic") from each ONU 20. The DBA function allocates the upstream bandwidth only to ONUs 20 through which upstream traffic is flowing, so that the upstream bandwidth can be used without waste. The DBA function appropriately switches the allocated bandwidth according to the status of the upstream traffic flowing through each ONU 20, thereby realizing efficient upstream bandwidth without generating unused bandwidth.
[0027] GE-PON and 10G-EPON use a protocol called MPCP (Multi Point Control Protocol) to control the transmission of upstream signals. The OLT 10 uses a GATE frame to instruct each ONU 20 on the start time and permitted transmission amount of the upstream signal so that each ONU 20 can transmit the upstream signal without collision in time.
[0028] Meanwhile, each ONU 20 notifies the OLT 10 by a REPORT frame of the amount of upstream data waiting to be transmitted that is stored in the upstream transmission buffer of the own ONU 20. The DBA function is realized by using the GATE frame and the REPORT frame.
[0029] The mechanism of the DBA function is briefly explained below. When the ONU 20 receives upstream data, it first stores the upstream data in the upstream transmission buffer. The ONU 20 records the amount of stored upstream data in a REPORT frame and transmits the REPORT frame to the OLT 10.
[0030] From the received REPORT frame, OLT 10 ascertains the amount of upstream data stored in ONU 20 and waiting to be transmitted. OLT 10 calculates the upstream bandwidth to be assigned to ONU 20 based on the amount of stored data in that ONU 20 and the bandwidths used by other ONUs 20. Specifically, OLT 10 calculates the transmission start time and permitted transmission amount of the upstream signal of ONU 20. OLT 10 writes the calculated values in a GATE frame and transmits the GATE frame to ONU 20.
[0031] The ONU 20 transmits the specified amount of upstream data (permitted transmission amount) at the specified transmission start time according to the instructions written in the received GATE frame. At this time, the ONU 20 may notify the OLT 10 again of the amount of upstream data stored in the upstream transmission buffer for the next allocation of upstream bandwidth.
[0032] By repeating the above procedure, the OLT 10 can grasp the upstream traffic status of each ONU 20, and can appropriately allocate an upstream bandwidth to each ONU 20 according to the status.
[0033] [ONU configuration] The configuration of the ONU 20 in this embodiment will be described below. Fig. 2 is a block diagram showing the configuration of the ONU 20 in the embodiment of the present invention. As shown in Fig. 2, the ONU 20 includes a TRx 21, a MAC processing unit 22, a PHY 23, and an external buffer 24.
[0034] The TRx (Transmitter / Receiver) 21 is an optical transceiver that transmits and receives optical signals between the device itself and the OLT 10. The TRx 21 converts digital data (electrical signal) for upstream transmission output from the MAC processing unit 22 into an optical signal (upstream signal) and outputs it to the optical fiber 30, and also receives an optical signal (downstream signal) transmitted from the OLT 10, converts the received optical signal into digital data (electrical signal) and outputs it to the MAC processing unit 22.
[0035] The MAC (Media Access Control) processing unit 22 is a functional unit of the data link sublayer that controls the transmission and reception of data. The MAC processing unit 22 is generally configured using a PON chip. The MAC processing unit 22 includes a buffer setting unit 220 and an internal buffer 221. The buffer setting unit 220 sets the buffer amount of the internal buffer 221 and the external buffer 24. In the following description, the internal buffer 221 and the external buffer 24 may be collectively referred to as the "upstream transmission buffer."
[0036] The built-in buffer 221 and the external buffer 24 are configured using a storage medium such as a magnetic hard disk device or a semiconductor storage device. The built-in buffer 221 and the external buffer 24 accumulate upstream data received by the PHY 23. The built-in buffer 221 and the external buffer 24 each include a plurality of upstream transmission queues. In the following description, the upstream transmission queue of the built-in buffer 221 may be referred to as the "built-in queue," and the upstream transmission queue of the external buffer 24 may be referred to as the "external queue."
[0037] The PHY (PHYsical sublayer) 23 is a functional unit of the physical layer. The PHY 23 is a communication interface that connects the device itself to a lower device (e.g., a user communication terminal, etc.). The PHY 23 acquires an analog signal transmitted from the lower device, converts it into a digital signal, and outputs the converted digital signal to the MAC processing unit 22. The PHY 23 also acquires a digital signal output from the MAC processing unit 22, converts it into an analog signal, and transmits the converted analog signal to the lower device.
[0038] [How to set the upstream send buffer] A specific example will be described below of a method for setting an upstream transmission buffer by the ONU 20 in this embodiment. Figures 3 to 5 are diagrams for explaining the upstream transmission buffer setting process by the ONU 20 in the embodiment of the present invention.
[0039] Here, the internal buffer 221 and the external buffer 24 of the ONU 20 each have four upstream transmission queues. As shown in FIG. 3, the internal buffer 221 and the external buffer 24 each have four upstream transmission queues, from upstream transmission queue #0 to upstream transmission queue #3. Here, the upstream transmission queue #3 has the highest priority, followed by the upstream transmission queue #2 and the upstream transmission queue #1, and the upstream data is stored in the upstream transmission queues in this order. Then, the ONU 20 transmits the upstream data stored in the transmission queue #3 with the highest priority, and after the queue becomes empty, transmits the upstream data stored in the transmission queue #2, and then similarly transmits the upstream data in the order of the transmission queue #1 and the transmission queue #0.
[0040] Hereinafter, the upstream transmission queue #0 to the upstream transmission queue #3 of the internal buffer 221 are referred to as internal queues q#0 to q#3, respectively, and the upstream transmission queue #0 to the upstream transmission queue #3 of the external buffer 24 are referred to as external queues Q#0 to Q#3, respectively.
[0041] The buffer setting unit 220 stores the uplink data that does not fall within the range of the buffer amount allocated to the built-in queue q#0 in the external queue Q#0. Similarly, the buffer setting unit 220 stores the uplink data that does not fall within the range of the buffer amount allocated to the built-in queue q#1 in the external queue Q#1, stores the uplink data that does not fall within the range of the buffer amount allocated to the built-in queue q#2 in the external queue Q#2, and stores the uplink data that does not fall within the range of the buffer amount allocated to the built-in queue q#3 in the external queue Q#3. In this way, the built-in queue q#n and the external queue Q#n form corresponding two-stage buffers, and each uplink data is temporarily stored by this pair of uplink transmission queues.
[0042] First, the buffer setting unit 220 determines the amount of buffer space for upstream data to be set in each of the built-in queues q#0 to q#3 (hereinafter, simply referred to as the "buffer space to be set") in accordance with instructions from a predefined device or line maintenance and monitoring function (e.g., an extended OAM (Operation, Administration, and Maintenance) function).
[0043] Here, as shown in FIG. 3, it is assumed that the buffer amount to be set for the built-in queue q#0 is 600 [KB], the buffer amount to be set for the built-in queue q#1 is 300 [KB], the buffer amount to be set for the built-in queue q#2 is 200 [KB], and the buffer amount to be set for the built-in queue q#3 is 100 [KB].
[0044] Next, the buffer setting unit 220 converts the determined buffer amounts to be set in the built-in queues q#0 to q#3 into buffer amounts equivalent to a data length that provides the lowest storage efficiency in the built-in buffer 221. The data length that provides the lowest storage efficiency is a data length that provides the largest unused buffer space when upstream data is stored in an upstream transmission queue. The buffer setting unit 220 determines the converted buffer amounts as the buffer amounts for upstream data to be secured in the built-in queues q#0 to q#3 (hereinafter, also simply referred to as "secure buffer amounts").
[0045] Here, the minimum storage efficiency of the built-in buffer 221 is assumed to be 1 / 1.5. Therefore, the buffer capacity secured in the built-in queue q#0 is 900 [KB] (=600×1.5), the buffer capacity secured in the built-in queue q#1 is 450 [KB] (=300×1.5), the buffer capacity secured in the built-in queue q#2 is 300 [KB] (=200×1.5), and the buffer capacity secured in the built-in queue q#3 is 150 [KB] (=100×1.5).
[0046] Next, the buffer setting unit 220 calculates the minimum buffer amount required per one cycle of the DBA function. The reason why the minimum buffer amount required per one cycle of the DBA function is calculated is due to the constraint on the PON chip that only the built-in buffer 221 can output upstream data per one cycle. That is, the buffer setting unit 220 calculates the buffer amount equivalent to the maximum upstream data transmission permission amount (Data Grant) that can be granted by the OLT 10 per one cycle of the DBA function (note that, similarly to the above, the buffer setting unit 220 converts into the buffer amount equivalent to the data length that provides the minimum storage efficiency in the built-in buffer 221).
[0047] Here, it is assumed that the buffer capacity corresponding to the data length of the maximum upstream data transmission grant that can be granted is 525 [KB].
[0048] Next, the buffer setting unit 220 allocates a buffer amount so that the built-in queue q#0, which is the lowest priority upstream transmission queue, has the maximum upstream rate. Specifically, the buffer setting unit 220 compares the calculated buffer amount (hereinafter also referred to as "buffer amount A") to be secured in the built-in queue q#0 with the buffer amount (hereinafter also referred to as "buffer amount B") equivalent to the data length that provides the minimum storage efficiency in the built-in buffer 221 for the calculated maximum amount of upstream data transmission grant (Data Grant) that can be granted. If the buffer amount A is greater than the buffer amount B, the buffer setting unit 220 sets the buffer amount B to be allocated to the built-in queue q#0. On the other hand, if the buffer amount A is equal to or less than the buffer amount B, the buffer setting unit 220 sets the buffer amount A to be allocated to the built-in queue q#0.
[0049] In this example, as described above, the buffer amount A is 900 [KB] and the buffer amount B is 525 [KB]. Since the buffer amount A is greater than the buffer amount B, the buffer amount of 525 [KB] (buffer amount B) is allocated to the built-in queue q#0 as shown in FIG.
[0050] Next, the buffer setting unit 220 calculates the buffer amount to be actually allocated to the external queue Q#0. Specifically, when the buffer amount B is allocated to the built-in queue q#0 in the above, the buffer setting unit 220 allocates to the external queue Q#0 the buffer amount that cannot be set by the setting of the buffer amount for the built-in queue q#0 among the buffer amounts secured in the built-in queue q#0 (note that the buffer setting unit 220 converts this into a buffer amount equivalent to a data length that provides the minimum storage efficiency in the external buffer 24).
[0051] Here, as described above, a buffer capacity of 525 [KB] is allocated to the built-in queue q#0. This buffer capacity of 525 [KB] is the buffer capacity equivalent to the data length that provides the minimum storage efficiency in the built-in buffer 221, so that 350 [KB] (=525÷1.5) of the buffer capacity of 600 [KB] originally desired to be set in the built-in queue q#0 is allocated to the built-in queue q#0. Therefore, the remaining buffer capacity of 250 [KB] (=600-350) of the buffer capacity of 600 [KB] originally desired to be set in the built-in queue q#0 needs to be allocated to the external queue Q#0.
[0052] Here, it is assumed that the minimum storage efficiency of the external buffer 24 is 1 / 1.2. Therefore, as shown in FIG 3, a buffer capacity of 300 [KB] (=250 x 1.2) is allocated to the external queue Q#0.
[0053] Next, the buffer setting unit 220 determines whether or not oversubscription is likely to occur by comparing the remaining buffer amount (hereinafter also referred to as "buffer amount X") obtained by subtracting the buffer amount allocated to the built-in queue q#0 from the total capacity of the built-in buffer 221 (built-in queues q#0 to q#3) with the total buffer amount (hereinafter also referred to as "buffer amount Y") reserved for the built-in queues q#1 to q#3 other than the built-in queue q#0 with the lowest priority.
[0054] For example, when the total capacity of the built-in buffer 221 is used up by the built-in queues q#0 to q#2, the buffer amount of the built-in queue q#3 becomes 0 [KB]. In this case, even if the upstream data of the built-in queue q#3 is acquired, the built-in queue q#3 cannot store the upstream data. As a result, the upstream data causes oversubscription in the built-in buffer, and the data that cannot be stored is stored in the external buffer.
[0055] Next, when the buffer amount X is greater than the buffer amount Y, the buffer setting unit 220 allocates the buffer amount secured for the built-in queues q#1 to q#3 to the built-in queues q#1 to q#3, respectively. On the other hand, when the buffer amount X is equal to or less than the buffer amount Y, the buffer setting unit 220 distributes the buffer amount X to the built-in queues q#1 to q#3 according to the ratio of the buffer amount to be set to each of the built-in queues q#1 to q#3, and allocates the buffer amount X to the built-in queues q#1 to q#3, respectively. As described above, by distributing the buffer amount X to the built-in queues q#1 to q#3 according to the ratio of the buffer amount to be set to each of the built-in queues, oversubscription of upstream data in the built-in buffer is avoided.
[0056] 4, it is assumed that the total capacity of the built-in buffer 221 (built-in queue q#0 to built-in queue q#3) is 1 [MB] (=1,024 [KB]). As described above, a buffer capacity of 525 [KB] is allocated to the built-in queue q#0. Therefore, the buffer capacity (i.e., buffer capacity X) that can be allocated to the built-in queues q#1 to q#3 is the remaining 499 [KB] (=1,024-525).
[0057] 4, the buffer amounts required for the built-in buffers Q#1 to Q#3 are 450 [KB], 300 [KB], and 150 [KB], respectively. Therefore, the sum of these buffer amounts (i.e., buffer amount Y) is 900 [KB], which exceeds 499 [KB]. Therefore, since the buffer amount X is equal to or less than the buffer amount Y, it is determined that oversubscription may occur, and the buffer amount of 499 [KB] is distributed according to the ratio of the buffer amounts to be set to the built-in queues q#1 to q#3, and is assigned to the built-in queues q#1 to q#3, respectively.
[0058] Specifically, as shown in FIG. 4, the built-in queue q#1 is assigned a buffer capacity of 249 [KB] (≒ 499 × 300 / (300 + 200 + 100)), the built-in queue q#2 is assigned a buffer capacity of 166 [KB] (≒ 499 × 200 / (300 + 200 + 100)), and the built-in queue q#3 is assigned a buffer capacity of 83 [KB] (≒ 499 × 100 / (300 + 200 + 100)).
[0059] Next, the buffer setting unit 220 calculates the buffer amount to be allocated to each of the external queues Q#1 to Q#3. Specifically, when the buffer amount X is equal to or less than the buffer amount Y in the above, the buffer setting unit 220 allocates to each of the external queues Q#1 to Q#3 the buffer amount that cannot be set by setting the buffer amount for the built-in queues q#1 to q#3 among the buffer amounts secured for each of the external queues Q#1 to Q#3 (note that the buffer setting unit 220 converts this into a buffer amount equivalent to a data length that provides the minimum storage efficiency in the external buffer 24).
[0060] Here, as mentioned above, a buffer capacity of 249 [KB] is allocated to the built-in queue q#1. Since this 249 [KB] is the physical size, 166 [KB] (≒ 249 ÷ 1.5) of the buffer capacity of 300 [KB] originally intended to be set for the built-in queue q#1 is allocated to the built-in queue q#1. Therefore, the remaining buffer capacity of 134 [KB] (= 300 - 166) of the buffer capacity of 300 [KB] originally intended to be set for the built-in queue q#1 must be allocated to the external queue Q#1.
[0061] As described above, the minimum storage efficiency of the external buffer 24 is set to 1 / 1.2. Therefore, as shown in FIG 5, a buffer capacity of 161 [KB] (≈134×1.2) is allocated to the external queue Q#1.
[0062] Also, here, as described above, a buffer capacity of 166 [KB] is allocated to the built-in queue q#2. This buffer capacity of 166 [KB] is the buffer capacity equivalent to the data length that provides the lowest storage efficiency in the built-in buffer 221, so that 111 [KB] (≒166÷1.5) of the buffer capacity of 200 [KB] originally desired to be set in the built-in queue q#2 is allocated to the built-in queue q#2. Therefore, the remaining buffer capacity of 89 [KB] (=200-111) of the buffer capacity of 200 [KB] originally desired to be set in the built-in queue q#2 needs to be allocated to the external queue Q#2.
[0063] As described above, the minimum storage efficiency of the external buffer 24 is set to 1 / 1.2. Therefore, as shown in FIG 5, a buffer capacity of 107 [KB] (≈89×1.2) is allocated to the external queue Q#2.
[0064] Also, here, as described above, a buffer capacity of 83 [KB] is allocated to the built-in queue q#3. This buffer capacity of 83 [KB] is the buffer capacity equivalent to the data length that provides the lowest storage efficiency in the built-in buffer 221, so that 55 [KB] (≒ 83 ÷ 1.5) of the buffer capacity of 100 [KB] originally desired to be set in the built-in queue q#3 is allocated to the built-in queue q#3. Therefore, the remaining buffer capacity of 45 [KB] (= 100 - 55) of the buffer capacity of 100 [KB] originally desired to be set in the built-in queue q#3 needs to be allocated to the external queue Q#3.
[0065] As described above, the minimum storage efficiency of the external buffer 24 is set to 1 / 1.2. Therefore, as shown in FIG 5, a buffer capacity of 54 [KB] (=45 x 1.2) is allocated to the external queue Q#3.
[0066] [ONU operation] Hereinafter, the operation of the ONU 20 in this embodiment during the setting process of the upstream transmission buffer will be described. Fig. 6 is a flowchart showing an example of the operation of the ONU 20 in the embodiment of the present invention. Note that here, it is assumed that the built-in buffer 221 and the external buffer 24 each have n (n is an integer equal to or greater than 1) upstream transmission queues.
[0067] First, the buffer setting unit 220 determines the buffer amount to be set in each of the built-in queues q#0 to q#n-1 based on the upstream data acquired from the PHY 23 (step S01).
[0068] Next, the buffer setting unit 220 converts the buffer amounts to be set in the built-in queues q#0 to q#n-1 determined in step S01 into buffer amounts equivalent to a data length that provides the lowest storage efficiency in the built-in buffer 221 (step S02). The buffer setting unit 220 determines the converted buffer amounts as the buffer amounts to be secured in the built-in queues q#0 to q#n-1, respectively.
[0069] Next, the buffer setting section 220 calculates the minimum buffer amount required per cycle of the DBA function (step S03).
[0070] Next, the buffer setting unit 220 allocates a buffer amount so that the built-in queue q#m (m is an integer satisfying 0≦m≦n-1), which is the lowest priority upstream transmission queue, has the maximum upstream rate. Specifically, the buffer setting unit 220 compares the calculated buffer amount (buffer amount A) to be secured in the built-in queue q#m with the buffer amount (buffer amount B) corresponding to the data length that provides the minimum storage efficiency in the built-in buffer 221 for the calculated maximum amount of upstream data transmission permission (Data Grant) that can be granted. If the buffer amount A is greater than the buffer amount B, the buffer setting unit 220 sets the buffer amount B to be allocated to the built-in queue q#m. On the other hand, if the buffer amount A is equal to or less than the buffer amount B, the buffer setting unit 220 sets the buffer amount A to be allocated to the built-in queue q#m (step S04).
[0071] Next, the buffer setting unit 220 judges whether or not it is necessary to allocate a buffer amount to the external queue Q#m corresponding to the built-in queue q#m, which is the lowest priority upstream transmission queue (step S05). Specifically, the buffer setting unit 220 judges that it is necessary to allocate a buffer amount to the external queue Q#m when there is a buffer amount that cannot be set by the buffer amount setting for the built-in queue q#m in the above step S04 among the buffer amounts secured in the built-in queue q#m (i.e., when the buffer amount B is assigned to the built-in queue q#m).
[0072] If it is determined that allocation of buffer capacity to the external queue Q#m is necessary (step S05: YES), the buffer setting unit 220 allocates to the external queue Q#0 the buffer capacity reserved in the built-in queue q#0 that cannot be fully set by setting the buffer capacity for the built-in queue q#0 (step S06).
[0073] Next, the buffer setting unit 220 determines whether or not oversubscription may occur by comparing the remaining buffer amount (buffer amount X) obtained by subtracting the buffer amount allocated to the above-mentioned built-in queue q#m from the total capacity of the built-in buffers 221 (built-in queues q#0 to q#n-1) with the total buffer amount (buffer amount Y) to be reserved in the built-in buffers other than the built-in queue q#m with the lowest priority (step S07).
[0074] Next, if the buffer amount X is greater than the buffer amount Y (i.e., if it is determined that oversubscription will not occur; step S07: NO), the buffer setting unit 220 allocates a desired buffer amount (i.e., a buffer amount to be secured for each built-in queue other than the built-in queue q#m) to each built-in queue other than the built-in queue q#m (step S08).
[0075] On the other hand, if the buffer amount X is equal to or less than the buffer amount Y (i.e., if it is determined that oversubscription may occur; step S07: YES), the buffer setting unit 220 distributes the buffer amount X to each built-in queue other than the built-in queue q#m according to the ratio of the buffer amounts to be set, and allocates the buffer amount X to each built-in queue other than the built-in queue q#m (step S09).
[0076] Next, the buffer setting unit 220 calculates the buffer amount to be allocated to each external queue other than the external queue Q#m. Specifically, when the buffer amount X is equal to or less than the buffer amount Y (step S07: YES), the buffer setting unit 220 allocates the buffer amount that cannot be set by setting the buffer amount for each internal queue other than the internal queue q#m out of the buffer amount secured for each external queue other than the external queue Q#m to each external queue other than Q#m (note that the buffer setting unit 220 converts the buffer amount into a buffer amount equivalent to a data length that provides the minimum storage efficiency in the external buffer 24) (step S10). With this, the operation of the ONU 20 shown in the flowchart of FIG. 6 is completed.
[0077] As described above, in this embodiment, the ONU 20 converts the buffer amount to be set for each upstream transmission queue into the buffer amount when the built-in buffer 221 provides the minimum accommodation efficiency. The ONU 20 first preferentially allocates the built-in buffer 221 to the upstream transmission queue with the lowest priority. At this time, if the buffer amount to be set is larger than the minimum buffer amount required per cycle of the DBA function, the ONU 20 allocates the minimum required buffer amount to the built-in buffer 221 and allocates the remaining buffer amount to the external buffer 24.
[0078] By providing such a configuration, the ONU 20 in this embodiment can appropriately set the buffer amount of the two-stage upstream transmission buffer. Specifically, the external buffer 24 stores the upstream data that does not fit in the built-in buffer 221. Then, while allocating a sufficient buffer amount to the upstream transmission queue #0, which is a class assumed to be a best-effort class and has the largest buffer requirement, the built-in buffer 221 secures only the data amount guaranteed per cycle of the DBA function for the upstream transmission queues #1 to #3, which are classes assumed to be bandwidth guaranteed classes, so that the upstream data can be efficiently transmitted based on priority. The best-effort class here is a quality class for providing a communication service that prioritizes economy and freedom, similar to the general Internet. The bandwidth guaranteed class here is a priority class, for example, a quality class suitable for providing a communication service that requires real-timeness, such as video telephone and video distribution. As a result, according to the ONU 20 in this embodiment, it is possible to use a combination of low-cost, low-capacity buffers, and a configuration that satisfies the necessary performance of the ONU 20 at a lower cost can be achieved. Therefore, according to the ONU 20 of this embodiment, a device for buffering transmission data can be implemented at lower cost.
[0079] As described above, the ONU 20 in this embodiment allocates the remaining buffer capacity to the upstream transmission queues other than the upstream transmission queue with the lowest priority. At this time, if there is a possibility of oversubscription in which the buffer capacity to be set exceeds the total capacity of the built-in buffer 221, the ONU 20 allocates the buffer capacity obtained by distributing the remaining total capacity in the ratio of the buffer capacity to be set to the upstream transmission queues other than the upstream transmission queue with the lowest priority.
[0080] With such a configuration, the ONU 20 in this embodiment can prevent oversubscription and suppress an increase in the amount of buffering required for the external buffer 24.
[0081] According to the above-described embodiment, the buffer allocation device includes an acquisition unit and a setting unit. For example, the buffer allocation device is the ONU 20 or the MAC processing unit 22 in the embodiment, the acquisition unit is a part of the MAC processing unit 22 in the embodiment, and the setting unit is the buffer setting unit 220 in the embodiment. The acquisition unit acquires information indicating the requested buffer amount for each of the multiple queues. For example, the multiple queues are upstream transmission queue #0 to upstream transmission queue #n in the embodiment, and the requested buffer amount is the buffer amount of upstream data to be set in each of the built-in queues q#0 to q#n in the embodiment.
[0082] The setting unit converts the requested buffer amount for each queue into a first minimum converted buffer amount based on the lowest data storage efficiency that can occur in the first storage unit. For example, the first storage unit is the built-in buffer 221 in the embodiment, and the first minimum converted buffer amount is a buffer amount corresponding to a data length that is the lowest storage efficiency in the built-in buffer 221 in the embodiment. The setting unit allocates a buffer amount calculated based on the first minimum converted buffer amount and the minimum buffer amount required per cycle of the dynamic bandwidth allocation function to the lowest priority queue of the first storage unit. For example, the lowest priority queue of the first storage unit is the built-in queue q#0 in the embodiment, and the dynamic bandwidth allocation function is the DBA function in the embodiment. The setting unit allocates a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the lowest priority queue of the first storage unit from the total capacity of the first storage unit, and a second buffer amount, which is a sum of the first minimum converted buffer amounts of queues other than the lowest priority queue of the first storage unit. For example, the queues other than the lowest priority queue in the first storage unit are the built-in queues q#1 to q#n in the embodiment.
[0083] In the above-described buffer allocation device, the setting unit may allocate a first minimum conversion buffer amount to each queue other than the lowest priority queue in the first memory unit when the first buffer amount is greater than the second buffer amount, and may allocate a buffer amount obtained by distributing the second buffer amount in a ratio of the requested buffer amount of the queue other than the lowest priority queue in the first memory unit when the first buffer amount is equal to or less than the second buffer amount.
[0084] In the above buffer allocation device, the setting unit may compare the first minimum converted buffer amount with a required buffer amount indicating a minimum required buffer amount per one cycle of the dynamic bandwidth allocation function, and allocate the required buffer amount to the queue with the lowest priority in the first storage unit if the first minimum converted buffer amount is greater than the required buffer amount, and allocate the first minimum converted buffer amount to the queue with the lowest priority in the first storage unit if the first minimum converted buffer amount is equal to or less than the required buffer amount. For example, the required buffer amount is a buffer amount equivalent to a data length equivalent to the maximum upstream data transmission grant amount (Data Grant) that can be granted by the OLT 10 per one cycle of the DBA function in the embodiment.
[0085] In the above buffer allocation device, the setting unit may convert the buffer amount not set for the lowest priority queue of the first storage unit into a second minimum converted buffer amount based on the lowest data storage efficiency that can occur in the second storage unit, and allocate the second minimum converted buffer amount to the lowest priority queue of the second storage unit. For example, the second storage unit is the external buffer 24 in the embodiment, the second minimum converted buffer amount is a buffer amount corresponding to a data length that results in the lowest storage efficiency in the external buffer 24 in the embodiment, and the lowest priority queue of the second storage unit is the external queue Q#0 in the embodiment.
[0086] In the above buffer allocation device, the setting unit may convert the buffer amount not set for queues other than the lowest priority queue in the first storage unit into a second minimum converted buffer amount based on the lowest data storage efficiency that can occur in the second storage unit, and allocate the second minimum converted buffer amount to queues other than the lowest priority queue in the second storage unit. For example, the queues other than the lowest priority queue in the second storage unit are the external queues Q#1 to Q#n-1 in the embodiment.
[0087] A part or all of the ONU 20 in the above-mentioned embodiment may be realized by a computer. In that case, a program for realizing this function may be recorded in a computer-readable recording medium, and the program recorded in the recording medium may be read into a computer system and executed to realize the function. The term "computer system" here includes an OS and hardware peripherals. The term "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, and recording devices such as hard disks built into a computer system. The term "computer-readable recording medium" may also include a medium that dynamically holds a program for a short period of time, such as a communication line when a program is transmitted via a network such as the Internet or a communication line such as a telephone line, and a medium that holds a program for a certain period of time, such as a volatile memory inside a computer system that is a server or client in that case. The above-mentioned program may be a program for realizing a part of the above-mentioned function, or may be a program that can realize the above-mentioned function in combination with a program already recorded in the computer system, or may be a program that is realized using a programmable logic device such as an FPGA (Field Programmable Gate Array).
[0088] Although an embodiment of the present invention has been described in detail above with reference to the drawings, the specific configuration is not limited to this embodiment, and designs that do not deviate from the gist of the present invention are also included. [Explanation of symbols]
[0089] 1 PON, 10 OLT, 20 ONU, 21 TRx, 22 MAC processing unit, 23 PHY, 24 external buffer, 30 optical fiber, 40 optical splitter, 220 buffer setting unit, 221 built-in buffer
Claims
1. an acquisition unit that acquires information indicating a requested buffer amount for each of a plurality of queues; a setting unit that converts the requested buffer amount for each of the queues into a first minimum converted buffer amount based on the lowest data storage efficiency that can occur in a first storage unit, and allocates a buffer amount calculated based on the first minimum converted buffer amount and a minimum buffer amount required per cycle of a dynamic bandwidth allocation function to the queue with the lowest priority of the first storage unit, and allocates a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the queue with the lowest priority of the first storage unit from the total capacity of the first storage unit, and a second buffer amount, which is a sum of the first minimum converted buffer amounts of queues other than the queue with the lowest priority of the first storage unit; A buffer allocation apparatus comprising:
2. The setting unit allocates the first minimum conversion buffer amount to each queue other than the queue with the lowest priority in the first storage unit when the first buffer amount is greater than the second buffer amount, and allocates a buffer amount obtained by distributing the second buffer amount in a ratio of a requested buffer amount of the queue other than the queue with the lowest priority in the first storage unit when the first buffer amount is equal to or less than the second buffer amount.
2. The buffer allocation apparatus of claim 1.
3. The setting unit compares the first minimum converted buffer amount with a required buffer amount indicating a buffer amount minimally required per one cycle of the dynamic bandwidth allocating function, and when the first minimum converted buffer amount is greater than the required buffer amount, allocates the required buffer amount to the queue with the lowest priority in the first storage unit, and when the first minimum converted buffer amount is equal to or less than the required buffer amount, allocates the first minimum converted buffer amount to the queue with the lowest priority in the first storage unit. Buffer allocation device according to claim 1 or 2.
4. The setting unit converts the buffer amount that is not set in the queue with the lowest priority in the first storage unit into a second minimum converted buffer amount based on the lowest data storage efficiency that can occur in the second storage unit, and assigns the second minimum converted buffer amount to the queue with the lowest priority in the second storage unit. Buffer allocation device according to any one of claims 1 to 3.
5. The setting unit converts the buffer amount that has not been set for queues other than the queue with the lowest priority in the first storage unit into the second minimum converted buffer amount based on the lowest data storage efficiency that can occur in the second storage unit, and allocates the second minimum converted buffer amount to queues other than the queue with the lowest priority in the second storage unit.
5. The buffer allocation apparatus of claim 4.
6. an acquisition unit that acquires information indicating a requested buffer amount for each of a plurality of upstream transmission queues; a setting unit which converts the requested buffer amount for each of the upstream transmission queues into a first minimum converted data length based on the lowest data storage efficiency that can occur in the built-in buffer, allocates a buffer amount calculated based on the first minimum converted data length and a minimum buffer amount required per cycle of a dynamic bandwidth allocation function to the upstream transmission queue having the lowest priority of the built-in buffer, and allocates a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the upstream transmission queue having the lowest priority of the built-in buffer from the total capacity of the built-in buffer, and a second buffer amount, which is a sum of the first minimum converted buffer amounts of the upstream transmission queues other than the upstream transmission queue having the lowest priority of the built-in buffer; A subscriber line termination device comprising:
7. An acquisition step in which a computer acquires information indicating a requested buffer amount for each of a plurality of queues; a setting step of the computer converting the requested buffer amount for each of the queues into a first minimum converted buffer amount based on the lowest data storage efficiency that can occur in the first storage unit, allocating a buffer amount calculated based on the first minimum converted buffer amount and a minimum buffer amount required per cycle of a dynamic bandwidth allocation function to the queue with the lowest priority of the first storage unit, and allocating a buffer amount calculated based on a first buffer amount, which is a buffer amount obtained by subtracting the buffer amount allocated to the queue with the lowest priority of the first storage unit from the total capacity of the first storage unit, and a second buffer amount, which is a sum of the first minimum converted buffer amounts of the queues with the lowest priority of the first storage unit other than the queue with the lowest priority of the first storage unit; The buffer allocation method has the following structure:
8. A program for causing a computer to function as the buffer allocation device according to any one of claims 1 to 5.
Citation Information
Patent Citations
Circuit, method and program for assigning dynamic band and recording medium
JP2003087282A
Variable length frame buffer device
JP2007324886A
Communication apparatus and communication system
JP2013126034A
Device and Method for Packet Processing with Memories Having Different Latencies
US20150215226A1
