Buffer allocation device, subscriber line termination device, buffer allocation method and program

The buffer allocation device optimizes buffer allocation in FTTH systems by determining minimum required buffer amounts based on efficiency, preventing oversubscription and reducing costs through efficient internal and external buffer management.

JP7601727B2Active Publication Date: 2024-12-17NIPPON TELEGRAPH & TELEPHONE CORP +1
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2021134586
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

Technical Problem

Existing buffer allocation methods in FTTH systems, such as GE-PON and 10G-EPON, fail to provide a clear setting method for buffer amounts in two-stage buffer configurations, leading to increased device costs due to the need for oversized external buffers to prevent oversubscription.

Method used

A buffer allocation device and method that determines the minimum required buffer amounts based on the lowest data accommodation efficiency and allocates these amounts to internal and external buffers, preventing oversubscription and optimizing buffer usage.

Benefits of technology

This approach allows for efficient and cost-effective buffer allocation, reducing the need for excessive external buffer capacity and minimizing device costs while ensuring priority-based data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007601727000001
    Figure 0007601727000001
  • Figure 0007601727000002
    Figure 0007601727000002
  • Figure 0007601727000003
    Figure 0007601727000003
Patent Text Reader

Abstract

To mount a device for buffering transmission data at a lower cost.SOLUTION: A buffer allocation device includes an acquisition unit for acquiring request buffer amounts for a plurality of queues, and a setting unit for converting each of the request buffer amounts into a first lowest conversion buffer amount based on a lowest data accommodation efficiency which may occur in a first storage unit, allocating a buffer amount calculated based on the first lowest conversion buffer amount and a lowest required buffer amount per cycle of dynamic bandwidth allocation to a queue having the lowest priority, allocating the first lowest conversion buffer amount to queues other than the lowest priority queue, determining for each queue whether oversubscription may occur, based on the total capacity of the first storage unit and the first lowest conversion buffer size, and allocating a predetermined buffer amount to queues in a second storage unit with respect to the queues which are determined to cause oversubscription.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

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, 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 memory unit, allocates the first minimum converted buffer amount to queues other than the queue with the lowest priority of the first memory unit, determines for each queue whether oversubscription may occur based on the total capacity of the first memory unit and the first minimum converted buffer amount for each queue of the first memory unit, and allocates a predetermined buffer amount to the queue of a second memory unit for the queue for which it is determined that oversubscription will occur.

[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 an internal 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 internal buffer, allocates the first minimum converted data length to upstream transmission queues other than the upstream transmission queue having the lowest priority of the internal buffer, determines whether or not oversubscription may occur for each of the upstream transmission queues based on a total capacity of the internal buffer and the first minimum converted data length for each of the upstream transmission queues of the internal buffer, and allocates a predetermined buffer amount to the upstream transmission queue of an external buffer for the upstream transmission queue for which it is determined that the oversubscription may occur. 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, 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, allocating the first minimum converted buffer amount to queues other than the queue with the lowest priority of the first memory unit, determining for each queue whether or not oversubscription may occur based on the total capacity of the first memory unit and the first minimum converted buffer amount for each queue of the first memory unit, and allocating a predetermined buffer amount to the queue of a second memory unit for the queue for which it is determined that oversubscription will occur.

[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] In addition, the buffer setting unit 220 allocates the calculated buffer amount to be secured in the built-in queue q#1, the buffer amount to be secured in the built-in queue q#2, and the buffer amount to be secured in the built-in queue q#3 to the built-in queue q#1, the built-in queue q#2, and the built-in queue q#3, respectively.

[0054] Here, as shown in FIG. 3, buffer amounts of 450 [KB], 300 [KB], and 150 [KB] are allocated to the built-in queue q#1, the built-in queue q#2, and the built-in queue q#3, respectively.

[0055] Next, the buffer setting unit 220 judges whether or not oversubscription may occur in each of the built-in queues q#0 to q#3 based on the total capacity of the built-in buffer 221 (built-in queues q#0 to q#3). For example, when the total capacity of the built-in buffer 221 is entirely used up in 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 is oversubscribed in the built-in buffer, and the data that cannot be stored is stored in the external buffer. The buffer setting unit 220 judges whether or not oversubscription may occur in a certain built-in queue based on the buffer amount of other built-in queues.

[0056] Here, as shown in FIG. 4, the total capacity of the built-in buffer 221 (built-in queue q#0 to built-in queue q#3) is assumed to be 1 [MB]. As described above, the built-in queue q#0, built-in queue q#1, and built-in queue q#2 are assigned buffer capacities of 525 [KB], 450 [KB], and 300 [KB], respectively. Therefore, the total buffer capacity of the built-in queues q#0 to q#2 is 1,275 [KB], which exceeds 1 [MB] (= 1,024 [KB]). Therefore, it is determined that oversubscription may occur in the built-in queue q#3.

[0057] In this way, since the sum of the buffer amounts allocated to the built-in queues q#0, q#1, and q#2 is 1,275 [KB] (= 525 + 450 + 300) > 1 [MB], it is determined that oversubscription may occur in the built-in queue q#3, and since the sum of the buffer amounts allocated to the built-in queues q#0, q#1, and q#3 is 1,125 [KB] (= 525 + 450 + 150) > 1 [MB], it is determined that oversubscription may occur in the built-in queue q#2.

[0058] On the other hand, since the sum of the buffer amounts allocated to the built-in queues q#0, q#2, and q#3 is 975 [KB] (= 525 + 300 + 150) ≦ 1 [MB], it is determined that oversubscription will not occur in the built-in queue q#1, and since the sum of the buffer amounts allocated to the built-in queues q#1, q#2, and q#3 is 900 [KB] (= 450 + 300 + 150) ≦ 1 [MB], it is determined that oversubscription will not occur in the built-in queue q#0.

[0059] Next, the buffer setting unit 220 allocates a buffer amount to the external queue corresponding to the internal queue determined in the above judgment that oversubscription may occur (note that the buffer setting unit 220 converts this into a buffer amount equivalent to the data length that results in the minimum storage efficiency of the external buffer 24).

[0060] Here, as described above, since it is determined that oversubscription may occur in the built-in queue q#2 and the built-in queue q#3, buffer amounts are allocated to the external queues Q#2 and Q#3. As described above, since the buffer amount to be initially set for the built-in queue q#2 is 200 [KB], as shown in Fig. 5, a buffer amount of 240 [KB] (=200 x 1.2) equivalent to the data length that provides the minimum storage efficiency in the external buffer 24 is allocated to the external queue Q#2. Also, since the buffer amount to be initially set for the built-in queue q#3 is 100 [KB], as shown in Fig. 5, a buffer amount of 120 [KB] (=100 x 1.2) equivalent to the data length that provides the minimum storage efficiency in the external buffer 24 is allocated to the external queue Q#3.

[0061] [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.

[0062] 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).

[0063] 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.

[0064] Next, the buffer setting section 220 calculates the minimum buffer amount required per cycle of the DBA function (step S03).

[0065] 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).

[0066] 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).

[0067] 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).

[0068] Next, the buffer setting unit 220 allocates the buffer amount to be secured in the built-in buffer calculated in step S02 to each of the built-in queues other than the built-in queue q#m, which is the lowest priority upstream transmission queue (step S07).

[0069] Next, the buffer setting unit 220 determines whether or not oversubscription is likely to occur in each of the built-in queues q#0 to q#n based on the total capacity of the built-in buffers 221 (step S08).

[0070] Next, the buffer setting unit 220 allocates a buffer amount to the external queue corresponding to the internal queue determined in the above determination that oversubscription may occur (step S09). This completes the operation of the ONU 20 shown in the flowchart of FIG.

[0071] 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.

[0072] 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 upstream transmission queues #1 to #3, which are classes assumed to be bandwidth guaranteed classes, are secured in the built-in buffer 221 with only the data amount guaranteed per cycle of the DBA function, so that the upstream data can be efficiently transmitted based on the 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 compensation class here is a priority class, and is 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.

[0073] As described above, the ONU 20 in this embodiment allocates the remaining buffer capacity to 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 capacity of the built-in buffer 221, the ONU 20 sets the upstream transmission queue in which the oversubscription may occur in the external buffer 24.

[0074] 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.

[0075] 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.

[0076] 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 queue with the lowest priority in the first storage unit. For example, the queue with the lowest priority in 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 converts the buffer amount that is not set 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 allocates the second minimum converted buffer amount to the queue with the lowest priority in the second storage unit. For example, the second memory unit is the external buffer 24 in the embodiment, the second minimum converted buffer amount is the buffer amount equivalent to the data length that results in the minimum storage efficiency of the external buffer 24 in the embodiment, and the lowest priority queue of the second memory unit is the external queue Q#0 in the embodiment.

[0077] 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.

[0078] In the above buffer allocation device, the setting unit may allocate the first minimum converted buffer amount to a queue other than the lowest priority queue in the first storage unit, determine for each queue whether oversubscription may occur based on the total capacity of the first storage unit and the first minimum converted buffer amount for each queue in the first storage unit, and allocate a predetermined buffer amount to a queue in the second storage unit for which oversubscription is determined to occur. For example, the queue other than the lowest priority queue in the first storage unit is a built-in queue q#n other than the built-in queue q#0 in the embodiment.

[0079] In addition, in the above-mentioned buffer allocation device, the setting unit may determine that oversubscription may occur in a specific queue of the first memory unit when the total buffer amount allocated to queues other than the specific queue of the first memory unit is greater than the total capacity of the first memory unit.

[0080] In the above buffer allocation device, the setting unit may allocate the predetermined buffer amount calculated based on the lowest data storage efficiency that can occur in the second storage unit.

[0081] 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).

[0082] 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]

[0083] 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 the first storage unit, 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 in the first storage unit, allocates the first minimum converted buffer amount to queues other than the queue with the lowest priority in the first storage unit, determines for each of the queues whether or not oversubscription may occur based on a total capacity of the first storage unit and the first minimum converted buffer amount for each of the queues in the first storage unit, and allocates a predetermined buffer amount to the queue in the second storage unit for the queue for which it is determined that oversubscription will occur; A buffer allocation apparatus comprising:

2. The setting unit determines that the oversubscription may occur in the specific queue of the first storage unit when a total of buffer amounts allocated to queues other than the specific queue of the first storage unit is greater than a total capacity of the first storage unit.

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 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 allocates the predetermined buffer amount calculated based on the lowest data storage efficiency that can occur in the second storage unit. Buffer allocation device according to any one of claims 1 to 4.

6. an acquisition unit that acquires information indicating a requested buffer capacity for each of a plurality of upstream transmission queues; 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 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 with the lowest priority of the built-in buffer, allocates the first minimum converted data length to upstream transmission queues other than the upstream transmission queue with the lowest priority of the built-in buffer, determines for each of the upstream transmission queues whether or not oversubscription may occur based on a total capacity of the built-in buffer and the first minimum converted data length for each of the upstream transmission queues of the built-in buffer, and allocates a predetermined buffer amount to the upstream transmission queue of an external buffer for the upstream transmission queue for which it is determined that oversubscription will occur; 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: a 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 a 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 in the first storage unit, allocating the first minimum converted buffer amount to queues other than the queue with the lowest priority in the first storage unit, determining for each of the queues whether or not oversubscription may occur based on a total capacity of the first storage unit and the first minimum converted buffer amount for each of the queues in the first storage unit, and allocating a predetermined buffer amount to the queue in the second storage unit for the queue for which it is determined that oversubscription will occur; 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