A device that accepts input of asynchronously-arriving variable-length optical packets transmitted over a plurality of lightpaths, and outputs same to a single optical path, comprising: in order to prevent the optical packets from overlapping in the output lightpath, a controller that uses the delay times of the delay elements and the optical packet length and arrival gap time thus read to determine by computation the delay element used for temporary storage, where a plurality of stages of processors is provided. Thus, the processing required to determine the delay time is performed by parallel processing with the results of processing the prefix-sum operation used in parallel pipelined processing along with the queue length, optical packet length and arrival gap time of the buffering device.
|
13. An optical packet buffering device that accepts input of synchronous fixed-length optical packets from N light paths, wherein N denotes an integer of 2 or more, and gives each of the optical packets one of B different delay times, wherein B denotes an integer of 1 or more, and outputs the synchronous fixed-length optical packets from N light paths to a single light path, comprising:
means for reading a presence of optical packets on the respective light paths;
a queue consisting of a plurality of delay elements that temporarily store said plurality of optical packets and give each optical packet one of the B different delay times;
an optical switch that directs each of the optical packets to one of said plurality of delay elements;
an optical multiplexer connected by light paths to said plurality of delay elements;
an output light path connected to the multiplexer;
a controller which uses the delay times of the delay elements and the length of the optical packets and the presence information for optical packets read by the means for reading to select the delay elements used for temporary storage from said plurality of delay elements in order to prevent the accepted optical packets from overlapping in the output light path and gives respectively sequential numbers n from 1 to N to said N light paths, wherein,
in said controller, a length ln and an arrival gap time tn, larger than or equal to 0, of the optical packets of the nth light path that pass through the means for reading at a specified time are respectively read at each period t, both ln and tn are set to be zero when the optical packets of the nth light path do not arrive at the means for reading during an initial period t, and, with respect to n−1=0, assume ln−1=tn−1=0;
an arrangement of a first stage, in which processors p(1,n) that each perform a calculation using the optical packet presence information on the light path of the optical packet length ln−1 and the arrival gap time tn−1 and the optical packet presence information on the light path of the optical packet length ln and the arrival gap tn, and registers R(1,n) store the results of calculation;
an arrangement of an mth (2≦m≦log2 N) stage, which has processors p(m,n) that calculate the contents of the registers R(m−1,n−2m−1) or copies of the registers R(m−1,n2m−1) and the registers R(m−1,n) or copies of the registers R(m−1,n), and registers R(m,n) that store the results of the calculation;
a register q that stores information at a tail end of a queue length which is updated when the processors perform operations of adding all arriving optical packets to the queue;
a processor p(log2 N+1,1) that determines the delay applied to the first synchronous fixed-length optical packet by performing calculation on the basis of the optical packet presence information on the first light path or a copy of the optical packet presence information on the first light path and the value of the register q;
processors p(log2 N+1,n), for values of n greater than 1, that determine the delay applied to the nth synchronous fixed-length optical packet by performing calculation on the basis of the optical packet presence information on the nth light path or a copy of the optical packet presence information on the nth light path and the values of the registers R(log2 N,n−1 and the register q and;
an arrangement of a (log2 N+1)th stage, in which delay times applied to the synchronous fixed-length optical packets of the respective light paths are coordinated based on the output of the processor p(log2 N+1,1) or the processors p(log2 N+1,n).
18. An optical packet buffering device that accepts input of synchronous fixed-length optical packets from N light paths, wherein N denotes an integer of 2 or more, and gives each of the optical packets one of B different delay times, wherein B denotes an integer of 1 or more, and outputs the packets to a single light path, comprising:
means for reading a presence of optical packets and priority-class information of said optical packets on the respective light paths;
a queue consisting of a plurality of delay elements that temporarily store said plurality of optical packets and give each optical packet one of the B different delay times;
an optical switch that directs each of the optical packets to one of said plurality of delay elements;
an optical multiplexer connected by light paths to said plurality of delay elements;
a controller which uses the delay times of the delay elements, the presence information of the optical packets and the priority-class information of said optical packets read by the means for reading to select the delay element used for temporary storage from said plurality of delay elements in order to prevent the accepted optical packets from overlapping in an output light path and gives respectively sequential numbers n from 1 to N to said N light paths, wherein
in said controller, a length ln and an arrival gap time tn, which is larger than or equal to 0, of the optical packets of the nth light path that pass through the means for reading at a specified time are respectively read at each period t, both ln and tn are set to be zero when the optical packets of the nth light path do not arrive at the means for reading during an initial period t, and, with respect to n−1=0, assume ln−1=tn−1=0;
an arrangement of a first stage, in which processors p(1,n) each perform a calculation using the optical packet presence information and priority-class information on the light path of the length ln−1 and the arrival gap time tn−1 and the optical packet presence information and priority-class information on the light path of the length ln and the arrival gap time tn, and registers R(1,n) store the results of calculation;
an arrangement of an mth(2≦m≦log2 N) stage, which has processors p(m,n) that calculate the contents of the registers R(m−1,n−2m−1) or copies of the registers R(m−1,n−2m−l) and the registers R(m−1,n) or copies of the registers R(m−1,n), and registers R(m,n) that store the results of the calculation;
a register q that stores information at the tail end of the queue length which is updated when the processors perform operations of adding all arriving optical packets to the queue;
a processor p(log2 N+1,1) that determines the delay applied to the first synchronous fixed-length optical packet by performing calculation on the basis of the optical packet presence information and the optical packet priority-class information on the first light path or a copy of the optical packet priority-class information on the first light path and the value of the register q;
processors p(log2 N+1,n), for values of n greater than 1, that determine the delay applied to the nth synchronous fixed-length optical packet by performing calculation on the basis of the optical packet presence information and optical packet priority-class information on the nth light path or a copy of the optical packet priority-class information on the nth light path and the values of the registers R(log2 N,n−1) and the register q; and
an arrangement of a (log2 N+1)th stage, in which delay times applied to the synchronous fixed-length optical packets of the respective light paths are adjusted based on the output of the processor p(log2 N+1,1) or the processors p(log2 N+1,n).
1. An optical packet buffering device that accepts input of asynchronously-arriving variable-length optical packets transmitted via N light paths, wherein N denotes an integer of 2 or more, and outputs the asynchronously-arriving variable-length optical packets to a single light path, comprising:
means for reading optical packet lengths of the variable-length optical packets on the individual light paths;
means for reading an arrival gap time between a start time of a clock signal prepared in advance and an arrival time of the subsequent most recent variable-length optical packet;
a queue consisting of a plurality of delay elements that temporarily store said plurality of optical packets and give each of said optical packets one of B different delay times, wherein B denotes an integer of 2 or more;
an optical switch that allots said optical packets individually to one of said plurality of delay elements;
an optical multiplexer that is connected by light paths to said plurality of delay elements and enabled to multiplex the optical packet signals delayed by the delay elements;
an output light path connected to the multiplexer;
a controller which, by using the delay times of the delay elements and the lengths of the optical packets and the arrival gap time read by the means for reading the arrival gap time, selects the delay element used for temporary storage from said plurality of delay elements in order to prevent the accepted optical packets from overlapping in the output light path, wherein
the controller gives sequential numbers n from 1 to N individually to said N light paths, and
the means for reading the optical packet lengths of variable-length optical packets and the means for reading the arrival gap time respectively read with a period t, a length ln of an optical packet and the arrival gap time tn, which is larger than or equal to 0, of the optical packets of an nth light path that passes through the means for reading the optical packet lengths at a specified time and, with respect to the optical packets that fail to reach the means for reading the optical packet lengths during an initial period t, set both ln and tn to be zero, and, with respect to n−1=0, assume ln−1=tn−1=0;
an arrangement of a first stage, which has disposed therein processors p(1,n) that calculate the optical packet length ln−1 and the arrival gap time tn−1 and the optical packet length ln and the arrival gap time tn, and registers R(1,n) that store the results of calculation;
an arrangement of an mth (2≦m≦log2N) stage, which has disposed therein processors p(m,n) that calculate the contents of the registers R(m−1,n−2m−1) or copies of the registers R(m−1,n−2m−1) and the registers R(m−1,n) or copies of the registers R(m−1,n), and registers R(m,n) that store the results of the calculation; and
an arrangement of a (log2N+1)th stage, which is provided with a register q that stores the information at a tail end of a queue length which is updated when the processors perform operations of adding all arriving optical packets to the queue, also, a processor p(log2N+1,1) that determines the delay applied to the first variable-length optical packet by performing calculation on the basis of the optical packet length and arrival gap time for the first light path or a copy of the arrival gap time for the first light path and a value of the register q, and processors p(log2N+1,n) that determine the delay applied to the nth variable-length optical packet by performing calculation on the basis of the optical packet length ln and arrival gap time tn for the nth light path or a copy of the arrival gap time tn for the nth light path and the values of the registers R(log2N,n−1)and the register q, wherein
in the arrangement of the (log2N+1)th stage, the delay times applied to the variable-length optical packets of the individual light paths are adjusted based on the output of the processor p(log2N+1,1) or the processors p(log2N+1,n).
2. The optical packet buffering device according to
the means for reading the optical packet length of variable-length optical packets performs reading of the length ln at each period t and the means for reading the arrival gap time performs reading the arrival gap time tn, which is larger than or equal to 0, of the optical packets of the nth light path that pass through the means for reading the optical packet lengths at a specified time and both ln and tn are set to zero when the optical packets of the nth light path do not arrive at the means for reading the optical packet lengths during an initial period t, and
with respect to n−1=0, assume ln−1=tn−1=0,
the plurality of said delay elements give each of the optical packets delays that respectively increase by a delay time D>0;
each of said processors is provided on one of the respective N light paths on the input side, and perform the following processing on the integers n from 1 to N:
1) when ln−1=0 is true, output tn as tn,1, or
when ln−1=0 is not true, output tn−1 as tn,1,
2) and take gn,1=1n−1+tn−1,
when ln=0 is true, and output gn−1 as last position fn−1 of the optical packets of the nth light path, or
when ln=0 is not true, taking Δn to be the smallest integer no less than (gn−1−tn)/D set (tn+ln+ΔnD) to the output fn,1 of the last position of the optical packets of the nth light path.
3. The optical packet buffering device according to
under a condition that N is an integer of 3 or more,
each of the processors p(1,n) in the arrangement of the first stage is respectively provided with a register R(1,n) that temporarily stores its respective output of (fn,1, tn,1), and
the processors p(2, n) in the arrangement of the second stage, for the integers n from 3 to N, calculate the content of the nth register and the content of the (n−2)th register and gives the output of (fn,2, tn,2), where
1) when fn−2,1=0 is true, output tn,1 as tn,2, or
when fn−2,1=0 is not true, output tn−2,1 as tn,2,
2) in addition, when fn,1=0 is true, output fn−2,1 as fn,2, or
when fn,1=0 is not true,
2-1) taking Δn to be the smallest integer no less than (fn−2,1−tn,1)/D set
(fn,1+ΔnD) to the output fn,2.
4. The optical packet buffering device according to
each of the processors p(1,n) in the arrangement of the first stage is respectively provided with a register R(1,n) that temporarily stores its respective output of (fn,1, tn,1), and
the processors p(m, n) in the arrangement of the (m−1)th stage, for the integers m from 2 to log2 N, are provided,
for the mth stage processors, and for the integers n from β+1 to N where β=2m−1, the (n−β)th processors p(m,n) in the arrangement of the mth stage calculate the content of said nth register R(m−1,n) connected to the previous-stage processors p(m−1,n) and the content of the (n−β)th register R(m−1,n−β) and gives the output of (fn,m, tn,m), where
1) when fn−β,m−1=0 is true, output tn,m−1as tn,m, or
when fn−β,m−1=0 is not true, output tn−β,m−1 as tn,m,
2) in addition, when fn,m−1=0 is true, output fn−β,m−1 as fn,m, or
when fn,m−1=0 is not true,
2-1) taking Δn to be the smallest integer no less than (fn−β,m−1−tn,m−1)/D set
(fn,m−1+ΔnD) to the output fn,m.
5. The optical packet buffering device according to
M=log2 N and the length of the queue is defined as q, for the integers n from 1 to N,
1) when no optical packet exists, or ln=0 is true, end processing, and
when no optical packet exists, for fn−1,M in the register R(M,n−1),
2) when fn−1,M=0 is true, provide a temporary value (temp), and set (temp)=q,
when fn−1,M=0 is not true, set the sum of fn−1,M and the smallest integer no less than (q−tn,−1,M)/D to (temp),
3) taking Δn to be the smallest integer no less than ((temp)−tn)/D, when Δn is less than B, output Δn as information that specifies a delay element, but if not less, discard the corresponding optical packet.
6. The optical packet buffering device according to
1) when fN,M=0 is true for the fN,M stored in register R(M,N), the larger of (q−T) or 0 is stored as the new queue length (qnew) in the register q,
when fN,M=0 is not true, Δ is set as the smallest integer no less than (q−tN,M)/D and at this time,
2) when this Δ is smaller than B, store the value of the larger of (fN,M+ΔD−T) and 0 in the register q as the new queue length,
when this Δ is not smaller than B, take (q−T) as the new queue length and store it in the register q.
7. The optical packet buffering device according to
an MTU (maximum transfer unit) is set in optical packet communications,
1) when fN,M=0 is true for the fN,M stored in register R(M,N), the larger of (q−T) or 0 is stored as the new queue length (qnew) in the register q,
when fN,M=0 is not true, Δ is set as the smallest integer no less than (q−tN,M)/D and at this time,
2) when this Δ is smaller than said B, store the value of the larger of 0 and the value found by subtracting t from the lesser of (fN,M+ΔD) and (BD+MTU) in the register q,
when this Δ is not smaller than B, take (q−T) as the new queue length and store it in the register q.
8. The buffering device for asynchronously-arriving optical packets according to
and the period t is set as a power of 2 times a set time unit (τ) set in advance, or namely T=2aτ (where a is a non-negative integer), while t is to be no greater than the minimum packet length represented as the length of an integral multiple of the time unit (τ),
the means for reading the optical packet length of variable-length optical packets, read with a period t, perform reading of the length ln and the means for reading the arrival gap time, read with a period t, perform reading the arrival gap time tn of the optical packet in the nth light path that pass through the means for reading the optical packet lengths at a specified time, the length ln is represented as a length which is an integral multiple of the time unit (τ) that is not less than the length of the optical packet in the nth light path, the arrival gap time tn is a length which is an integer multiple of the time unit (τ) that is not more than the arrival gap time of the optical packet in the nt light path, and for n−1=0, ln−1=tn−1=0,
the plurality of said delay elements give each of the optical packets delays that respectively increase by the delay time D which is given as 2kτ (where k is a non-negative integer), and, the integer corresponding to the k least significant bits of a binary representation of an integer x is represented as x(2), and a binary number consisting of the remaining most significant bits after removing the aforementioned k least significant bits is represented as x(1), each of said processors is provided on one of respective N light paths on the input side, and performs the following processing for the integers n from 1 to N:
1) when ln−1=0 is true, output tn as tn,1, or
when ln−132 0 is not true, output tn−1 as tn,1,
2) and take gn,1=ln−1+tn,1,
when ln=0 is true, output gn−1 as fn,1, or
when ln=0 is not true,
i) when gn−1 is less than tn, set gn−1(1) to Δn,
ii) when gn−1 is not less than tn, set (gn−1(1)+1) to Δn, and
3) set (tn(2)+ln+ΔnD) to the output fn,1.
9. The optical packet buffering device according to
each of the processors p(1,n) in the arrangement of the first stage is respectively provided with a register R(1,n) that temporarily stores its respective output of (fn,1, tn,1);
processors are provided, for the integers m from 2 to log2 N, in the arrangement of the (m−1)th stage;
for the mth-stage processors, and for the integers n from β+1 to N where β=2m−1, the (n−β)th processors p(m, n) in the arrangement of the mth-stage calculate the content of said nth register R(m−1,n) connected to the previous-stage processors p(m−1,n) and the content of the (n−β)th register R(m−1,n−β) and gives the output of (fn,m, tn,m), where
1) when fn−β,m−1=0 is true, output tn,m−1 as tn,m, or
when fn−β,m−1=0 is not true, output tn−β,m−1 as tn,m,
2) in addition, when fn,m−1=0 is true, output fn−β,m−1 as fn,m, or
when fn,m−1=0 is not true,
2-1) when fn−β,m−1(2) is less than or equal to tn,m−1(2), set fn−β,m−1(1) to Δn,
2-2) when fn−β,m−1(2) is not less than or equal to tn,m−1(2), set (fn−β,m−1(1)+1) to Δn,
3) set (fn,m−1+2kΔn) to the output fn,m.
10. The optical packet buffering device according to
M=log2 N and the length of the queue is defined as q(n), for the integers n from 1 to N, and, the integer corresponding to the k least significant bits of the binary representation of the integer x is represented as x(2), and the binary number consisting of the remaining most significant bits after removing the aforementioned k least significant bits is represented as x(1)
1) when no optical packet exists, or ln=0, end processing,
2) when an optical packet exists,
2-1) when fn−1,M=0 is true and,
when q(2) is less than or equal to tn(2), set q(1) to Δn,
when q(2) is not less than or equal to tn(2), set (q(1)+1) to Δn,
2-2) when fn−1,M=0 is not true and,
when q(2) is less than or equal to tn−1,M(2), set q(1) to Δ1,
when q(2) is not less than or equal to tn−1,M(2), set (q(1)+1 to Δ1, and moreover,
2-3-1) when fn−1,M(2) is less than or equal to tn(2),
set (Δ1+fn−1,M(1)) to Δn,
2-3-2) when fn−1,M(2) is not less than or equal to
tn(2), set (Δ1+1+fn−1,M(1)) to Δn,
3) when Δn is less than B, output Δn as information that specifies a delay element,
but if not less, discard the corresponding optical packet.
11. The optical packet buffering device according to
M=log2 N and the length of the queue is defined said q(n), for the integers n from 1 to N,
and, the integer corresponding to the k least significant bits of the binary representation of the integer x is represented as x(2), and the binary number consisting of the remaining most significant bits after removing the aforementioned k least significant bits is represented as x(1)
1) when fN,M=0 is true,
1-1) when q is greater than t, (q−T) is set as the new queue length (qnew),
1-2) when q is not greater than t, qnew=0 is set,
2) when fN,M=0 is not true,
2-1) when q(2) is less than or equal to tN,M(2), q(1) is set as Δ, when q(2) is not less than or equal to tN,M(2), (q(1)+1) is set as Δ,
3-1) when this Δ is smaller than B and,
3-1-1) when fN,M+2kΔ is greater than t, (fN,M+2kΔ−T) is set as qnew,
3-1-2) when fN,M+2kΔ is not greater than t, qnew=0 is set,
3-2) when this Δ is not smaller than B, (q−T) is set as qnew.
12. The optical packet buffering device according to
an MTU (maximum transfer unit) is set-in optical packet communications;
M=log2 N and the length of the queue is defined as said q(n), for the integers n from 1 to N;
and, the integer corresponding to the k least significant bits of the binary representation of the integer x is represented as x(2), and the binary number consisting of the remaining most significant bits after removing the aforementioned k least significant bits is represented as x(1)
1) when fN,M=0 is true,
1-1) when q is greater than t, (q−T) is set as the new queue length (qnew),
1-2) when q is not greater than t, qnew=0 is set,
2) when fN,M=0 is not true,
2-1) when q(2) is less than or equal to tN,M(2), q(1) is set as Δ,
when q(2) is not less than or equal to tN,M(2),
(q(1)+1) is set as Δ,
3-1) when this Δ is smaller than B and,
3-1-1) when (fN,M+2kΔ) is greater than
(2kB+MTU), (2kB+MTU−T) is set as qnew,
3-1-2) when (fN,M+2kΔ) is not greater than (2kB+MTU) and,
3-1-2-1) when fN,M+2kΔ is greater than
(fN,M+2kΔ−T) is set as qnew,
3-1-2-2) when fN,M+2kΔ is not greater than t, qnew=0 is set,
3-2) when this Δ is not smaller than B, (q−T) is set as qnew.
14. The buffering device for optical packets according to
the respective processors of the arrangement of the first stage input variables ln−1 and ln according to the presence of optical packets arriving at a port (n−1) corresponding to the (n−1)th light path and a port n corresponding to the nth light path, wherein each variable is 1 when a packet has arrived and 0 when no packet has arrived, and perform the following processing:
10=0
for each processor n, in parallel (n=1 to N) fn,1=ln−1+ln;
and provide output of fn,1 as the number of packets arriving at the two ports.
15. The buffering device for optical packets according to
each of the respective processors p(1,n) of the arrangement of the first stage is provided with a register R(1,n) that temporarily stores output (fn,l) of the respective processors p(1,n), and
each of the respective processors of the arrangement of the (m−1)th stage are provided for the integers m from 2 to log2 N;
the processor p(m,n) in the arrangement of the mth-stage, for the integers n from to β+1 to N where β=2m−1 uses the value of the nth register R(m−1,n) connected to the processor p(m−1,n) in the arrangement of the respective previous-stage and the value of the (n−β)th register R(m−1,n−β) connected to processor p(m−1,n−β) and performs the processing:
fn,m=fn−m−1+fn−β,m−1 and provides output of fn,m.
16. The buffering device for optical packets according to
the processors p(M+1,n) (where 1≦n≦N in the arrangement of the the (m+1)th-stage use
fn−1,M as the number of optical packets arriving from ports 1 to n−1,
ln which indicates the presence of an optical packet arriving at port n, and the queue length q;
perform the following processing respectively for the integers n from 1 to N:
if no optical packet exists, or ln=0, end processing;
else Δn=q+fn−1,M;,
but if Δn<B packet n is given delay Δn;
and if not Δn<B packet n is discarded;
and output the value of the delay Δn as information that specifies the delay element.
17. The buffering device for optical packets according to
19. The buffering device for optical packets according to
input variables cn−1 and cn that indicate the priority-class of optical packets arriving at port (n−1) and port n, are each 1 when a packet belongs to high-priority class and 0 when a packet belongs low-priority-class, and perform the following processing:
l0=0, c0=0;
for each processor n, in parallel (n=1 to N)
fn,1=ln−1+ln;
gn,1=cn−1ln−1+cnln;
and provide output of fn,1 as the number of packets arriving at the two ports and output of gn,1 as a number of high-priority-class packets arriving at the two ports.
20. The buffering device for optical packets according to
each of the respective processors p(1,n) of the arrangement of the first stage is provided with a register R(1,n) that temporarily stores output (fn,1, gn,1) of the respective processors p(1,n), and
each of the respective processors of the arrangement of the (m−1)th stage are provided for the integers m from 2 to log2 N;
the processor p(m, n) in the arrangement of the mth-stage, for the integers n from β+1 to N where β=2m−1 uses the value of the nth register R(m−1,n)connected to the processor p(m−1,n) in the arrangement of the respective previous-stage and the value of the (n−β)th register R(m−1,n−β) connected to processor p(m−1,n−β) and performs the processing
fn,m=fn−m−1+fn−β,m−1
gn,m=gn−m−+gn−β,m−1
and provides outputs of fn,m and gn,m.
21. The buffering device for optical packets according to
the processors p(M+1, n) (where 1≦n≦N) in the arrangement of the (m+1)th-stage use
fn−1,M as the number of optical packets arriving from ports 1 to n−1,
gn−1,M as the number of high-priority-class optical packets arriving from ports 1 to n−1,
ln which indicates the presence of an optical packet arriving at port n,
cn which indicates the priority-class information of an optical packet arriving at port n, and
when ln=1, perform the following processing
1) when q is less than a predetermined threshold TH, set Δn=q+fn−1,M;
when q is not less than TH, set Δn=q+gn−1,M;
2) when Δn is less than B and when cn shows a high-priority, or, when q is less than TH and when Δn is less than B and when cn shows a low-priority, the optical packet arriving at port n is given delay Δn;
and when Δn is not less than B or when cn shows a low-priority and when Δn is not less than TH, the optical packet arriving at port n is discarded;
and outputs the value of the delay Δn as information that specifies the delay element.
22. The buffering device for optical packets according to
when q is less than said threshold TH, the larger value between (min(q+fn,M,B)−1) and 0 is stored as the new queue length (qnew) in register q,
and when q is not less than said threshold TH, the larger value between (min(q+gn,M,B)−1) and 0 is stored as the new queue length (qnew) in register q.
|
1. Field of the Invention
The present invention relates to an optical packet buffering device that uses optical circuits that have limited buffer capacity or data holding time, in order to guide a plurality of optical packets such that they are not overlapped toward one lightpath, and to the buffering method thereof.
2. Description of the Prior Art
With advances in optical communications technology able to transfer large amounts of information, in order to achieve even higher levels of throughput, optical technology is being introduced into not only the transmission paths but also into optical packet switching. Typically in optical packet switching, an optical packet transfer process is performed and an optical packet switch is used therein. The functions of such an optical packet switch can be divided into the five categories of: (1) label lookup, (2) switching, (3) buffer management, (4) buffering and (5) routing. Typically, an optical packet switch that implements functions (2) and (4) above optically is called an optical packet switch. This consists of optical switches and optical buffers, having broadband characteristics because the data is transferred while remaining as an optical signal.
In addition, by improving (3) buffer management above, it is possible to make further improvements to the throughput of an optical packet switch. Logic circuits based on electronic circuits had conventionally been used for this (3) buffer management. This is because practical optical logic circuits had not been available.
One of the objects of buffer management is to prevent the collision of optical packets. In an optical packet switching network, if a plurality of optical packets should arrive simultaneously at an optical packet switch, then the optical packets are stored in different positions of buffers to avoid collision.
In addition, an optical packet switch does not use a semiconductor memory, which is often used in the buffer described above. Since an optical packet switch does not use semiconductor memory for buffering, a method of implementing optical buffer must be used as reported in the literature such as Document 1: K. Habara et al., “Development of a large-capacity photonic packet switch using wavelength routing techniques,” Technical Report of IEICE, SSE99-149, February 2000, and Document 2: David K. Hunter and Meow C. Chia and Ivan Andonovic, “Buffering in Optical Packet Switches,” IEEE/OSA Journal of Lightwave Technology, Vol. 16, No. 12, pp. 2081-2094, December 1998.
Previously known optical buffers have used a plurality of optical fibers of different lengths. These are optical delay elements with different delay times, so the optical packets are stored for the length of this delay time. A method of controlling the optical packets that are allocated to these optical delay lines to be able to avoid collision is known. At this time, it is not possible to extract an optical packet at an arbitrary time, so it is necessary to prevent the collision of optical packets at the time of output, and for this reason, some sort of buffer management technique must be used at the time of input to the optical buffer, thereby controlling the delay times,
In addition, as examples of the conventional optical packet switch architecture, we shall present N-input×N-output optical packet switches with configurations consisting of N 1-input×N-output buffer-less optical switches and N N-input×1-output buffers. The respective 1-input×N-output switches and N-input×1-output buffers are connected in a substantially lattice-type manner. In order to configure the above 1-input×N-output optical packet switches as N-input×N-output optical packet switches that exhibit adequate performance, it is also necessary to process a plurality of optical packets that arrive simultaneously in a sufficiently short period of time, and thus it is important to adopt a buffer management scheme requiring a small amount of computation.
The above optical packet switches are constituted using optical switches. Known optical switches that can be used in this application include: mechanical optical switches that use drive coils as shown in the schematic diagram in
With the above 1-input×N-output buffer-less optical switches, it is possible to perform high-speed label lookup by means of an optical label lookup function as recited in Document 4: N. Wada, H. Harai, W. Chujo, and F. Kubota, “Photonic packet routing based on ultiwavelength label switching using fiber Bragg gratings,” ECOC 2000 Technical Digest (26th European Conference on Optical Communication), vol. 4 (No. 10.4.6), pp. 71-72, September 2000. As a result, N-input×N-output optical packet switches exhibit high node throughput. However, in order to avoid collision of optical packets and decrease the percentage discarded, a buffer is required, so an N-input×1-output buffer is connected to each output port of the N-input×N-output optical packet switches.
Here follows a more specific description of the buffer management method for processing variable-length packets. This method is already well known. For example, in Document 3: F. Callegati, “Optical buffers for variable length packets,” IEEE Communications Letters, vol. 4, pp. 292-294, September 2000, control is done by the following method with the addition of round-robin scheduling.
With the output buffer type N-input×N-output optical packet switch shown in
In order to prevent the collision (or overlap) of these optical packets, delay line buffers are used. In this case, in order to store all of the optical packets, the process of finding the delay of N optical packets must be performed within the period of time lmin equivalent to the minimum optical packet length. Specifically, the time permitted for processing one optical packet is lmin/N. If this time is made to be equivalent to the processing time for one optical packet when buffering is performed according to a simple round-robin scheme, then this indicates that the buffer management can be performed by means of round-robin scheduling.
Here follows a detailed description of the behavior of the buffer manager according to the flowchart in
[Table 1]
TABLE 1
ln
: packet length
tn (n=1, . . . , N)
: arrival gap time
f
: temporary variable for queue length
T
: period
D
: unit length of the delay element
B
: number of the delay elements
for n = 1 to N do
begin
if (f! = 0)
begin
begin
f = tn + ln + ΔnD;
Packet n is given delay Δn;
end
else Packet n is discarded;
end
end
f = max(f − T, 0);
The buffer manager performs processing in order to avoid optical packet collisions both internally or upon output. Here, f is defined to be the amount of time from a predetermined start time to within the round-robin repeat time T until the time tf when all of the optical packets within the optical fibers have left the buffer. Hereinafter this f is called the buffer occupancy. Each period T, the buffer manager finds the delay time of the optical packets that have arrived at all ports. The delay times given to the optical packets arriving within the same period are found in the order port k=1, 2, . . . , N. Let us assume that an optical packet with an optical packet length lk arrives at port k at the time tk taking the time t0 to be the origin. The, delay time t to be given to the optical packet in order to avoid a collision is t=f−tk. Here, upon considering that the delay line buffer has a discrete time characteristic, one can see that the optical packets should be given the following time delay (F1 of
Here, the function Ceil(x) represents a function that gives the smallest integer that is no less than x. If Δk<B, then that packet is stored in the Δkth delay line (F2). Conversely, if Δk≧B, then that optical packet is discarded. In this manner, a portion of the optical packets is discarded and the remainder is stored, so it is necessary to update the buffer occupancy f accordingly. Thus, when an optical packet is stored (F4), f is updated as follows.
f=tk+lk+ΔkD [Equation 2]
Once the delay of the optical packets at all ports is found, excluding the discarded ports, the buffer occupancy f is updated to the new value of max((f−T),0), thus getting ready for the optical packet processing in the next round-robin period after a time of T.
When such an optical delay line buffer is used, the interval between the optical packet arriving at port k and the optical packet stored immediately previously, or namely the optical packet output at the time indicated by the f used at the time of finding the delay in the optical packet arriving at port k, is as follows.
Θk=ΔkD+tk−f [Equation 3]
Document 6 (H. Harai, N. Wada, F. Kubota, and W. Chujo, “Contention resolution using multi-stage fiber delay line buffer in a photonic packet switch,” Proceedings of IEEE ICC 2002) recites a method wherein delay line buffer units are disposed in a tree structure, and buffer managers are placed in each. Taking N to be the number of ports, this increases the processing speed by N1/2 times in comparison to the round robin processing described above, but a group of delay lines must be placed at each buffer unit so the increased size of the optical element is a problem. In addition, Document 5 (A. Prakash, S. Sharif, and A. Aziz, “An O(log2N) parallel algorithm for output queuing,” Proceedings of IEEE Infocom 2002.) recites a method of performing the process of storing packets, not in optical buffers but rather in semiconductor memory buffers, as parallel processing. This makes the scale of the managing device N times that when using the round-robin process, and the processing speed is log2 N times as fast.
The round-robin scheme described above proceeds sequentially, with data processing regarding buffering being performed in a predetermined port order, so in order to perform high-speed buffering, it is necessary to perform the data processing at high speed but thus the buffering speed is limited. In addition, when the same number of processor units as the number of lightpaths are provided in parallel as recited in Document 5 above, or when delay line buffer units are provided in a tree structure as recited in Document 6 above, even in a method wherein parallel processing is used, the maximum processing time per processor units increases rapidly as the number of input lightpaths increases.
The present invention has as its object to improve the speed of buffering performed during the parallel processing of data, and provide an optical packet buffering device that is able to avoid a rapid increase in the maximum processing time per arithmetic operator even if the number of inputs increases.
In order to achieve the aforementioned object, the present invention relates to a buffering device for asynchronously-arriving variable-length optical packets that uses a large number of processor units to improve the throughput of processings, and is characterized in being:
a device that accepts input of asynchronously-arriving variable-length optical packets transmitted over a plurality of lightpaths, and outputs same to a single optical path, comprising:
reading means that reads the optical packet length of variable-length optical packets on the respective lightpaths, reading means that reads a time difference-between start time of a period provided by a clock and arrival time of the subsequent most recent variable-length optical packet (hereafter the time difference is called “arrival gap time”), a queue consisting of a plurality of delay elements that temporarily store the plurality of optical packets and give each optical packet one of B different delay times, an optical switch that directs the optical packet to one of the plurality of delay elements, an optical multiplexer connected by lightpaths to the plurality of delay elements, and an output lightpath connected by a lightpath to the multiplexer, and
a controller that uses the delay times of the delay elements and the optical packet length and the arrival gap time thus read to select the delay element used for temporary storage in order to prevent the optical packets from overlapping in the output lightpath, and
the device being a buffering device for asynchronously-arriving optical packets wherein:
this controller is such that, when the plurality of lightpaths are given sequential numbers n from 1 to N, and the value is set to zero for those in which there is no corresponding lightpath,
for the optical packet length and the arrival gap time in the respective lightpaths,
as the arrangement of the first stage of processors and registers, processors P(1,n) that perform the calculation of the optical packet length and the arrival gap time on the (n−1)th lightpath and the optical packet length and the arrival gap time on the nth light path, and registers R(1,n) that store the results of calculation are disposed,
as the arrangement of the mth (2≦m≦log2 N) stage, processors P(m,n) that perform the calculation of the registers R(m−1,n−2m−1) or copies thereof and the registers R(m−1,n) or copies thereof, and registers R(m,n) that store the results of calculation are disposed,
on the (M+1)th stage where 2M=N a processor and a register Q that stores the information at the tail end of the queue length are disposed,
moreover, processors P(M+1,1) that determine the delay applied to the first variable-length optical packet from the optical packet length and the arrival gap time for the first lightpath or a copy thereof and the value of the register Q, and
for values of n greater than 1, processors P(M+1,n) that determine the delay applied to the nth variable-length optical packet, by calculation on the optical packet presence information for the nth lightpath or a copy thereof and the values of the register R(M,n−1) and the register Q, are disposed,
and thus the delay time applied to the variable-length optical packets of the respective lightpaths is coordinated based on the output of the processors P(M+1,1) and the processors P(M+1,n).
In addition, this invention pertains to a buffering method for optical packets used in the above buffering device for optical packets comprising steps wherein:
taking N to be the number of the lightpaths and n to be the sequential number,
the reading means takes readings at a period T, and regarding the optical packets in the nth light path passing through this reading means at a specified time, the length of the optical packet is ln and the arrival gap time is tn, and for n=0, ln−tn=0,
when a constitution is used such that the delay of the plurality of the delay elements can be arranged as delays that increase by the delay time D,
each of the processors is provided on one of the respective N lightpaths on the input side, and performs the following processing on the integers n from 1 to N:
1) when ln−1=0 is true, output tn as tn,1, or
In addition, this invention includes, when the plurality of processors are called first stage processors,
each of the respective first-stage processors P(1,n) is provided with a register R(1,n) that temporarily stores its respective output of (fn,1, tn,1), and
for the integers n from 3 to N, calculates the content of the nth register and the content of the (n−2)th register and gives the output of (fn,2, tn,2), where:
In addition, this invention includes, when the plurality of processors are called first-stage processors,
each of the respective first-stage processors P(1,n) is provided with a register R(1,n) that temporarily stores its respective output of (fn,1, tn,1), and when the (m−1)th stage processors are defined for the integers m from 2 to log2 N,
for the mth-stage processors, and for the integers n from β+1 to N where β=2m−1, the mth-stage (n−β)th processor P(m,n) calculates the content of the nth register R(m−1,n) connected to the previous-stage processor P(m−1,n) and the content of the (n−β)th register R(m−1,n−β) and gives the output of (fn,m, tn,m), where:
In addition, the method of determining the value Δn for controlling the delay time according to this invention includes:
for the integers n from 1 to N when the length of the queue is q, and M=log2 N,
In addition, the updating of the queue length according to this invention includes:
In addition, the updating of the queue length according to this invention includes:
if the MTU (maximum transfer unit) is set,
In addition, this invention pertains to a buffering method for optical packets in the buffering apparatus for optical packets wherein:
taking N to be the number of the lightpaths, n to be the lightpath number from 1 through N, and the period T to be set as a power of 2 times an appropriately set time unit (τ), or namely T−2aτ (where a is a nonnegative integer), while T is to be no greater than the minimum packet length represented as the length of an integral multiple of the time unit (τ), the reading means performs reading at each period T, and for the optical packets of the nth lightpath that pass through this reading means at a specified time, the length of the optical packet is ln represented as a length which is an integral multiple of the time unit, the arrival gap time is expressed as tn which is an integral multiple of the length of the time unit, and the optical packet length is expressed as an integral multiple of the unit time that is no less than its length, the arrival gap time is expressed as an integral multiple of the unit time that is no greater than the lead time, and for n=0, ln=tn=0,
In addition, the buffering method for optical packets according to this invention includes: each of the respective first-stage processors P(1,n) is provided with a register R(1,n) that temporarily stores its respective output of (fn,1, tn,1), and when the (m−1)th stage processors are defined for the integers m from 2 to log2 N,
for the mth-stage processors, and for the integers n from β+1 to N where β=2m−1, the mth stage (n−β)th processor P(m,n) calculates the content of the nth register R(m−1,n) connected to the previous-stage processor P(m−1,n) and the content of the (n−β)th register R(m−1,n−β) and gives the output of (fn,m, tn,m), where:
In addition, the buffering method for optical packets according to this invention includes: for the integers n from 1 to N when the length of the queue is q, assuming that M=log2 N,
In addition, the buffering method for optical packets according to this invention includes: assuming that M=log2 N,
In addition, the buffering method for optical packets according to this invention includes: assuming that M=log2 N,
As described above, when the period T is 2p (where p is an integer) times or 2nk times the delay time D, this invention simplifies the implementation in hardware by eliminating division, and can further increase the speed of data processing.
In addition, this invention includes a device that accepts input of synchronous fixed-length optical packets from a plurality of lightpaths, gives each of the optical packets one of B different delay times and outputs same to a single optical path, comprising:
reading means that reads the presence of optical packets on the respective lightpaths,
a queue consisting of a plurality of delay elements that temporarily store the plurality of optical packets and give each optical packet one of B different delay times, an optical switch that directs the optical packet to one of the plurality of delay elements, an optical multiplexer connected by lightpaths to the plurality of delay elements, and an output lightpath connected by a lightpath to the multiplexer, and
a controller that uses the delay times of the delay elements and the presence information for optical packets thus read to select by computation the delay element used for temporary storage in order to prevent the optical packets from overlapping in the output lightpath, the controller being such that:
when the plurality of lightpaths are given sequential numbers n from 1 to N, and cases in which there is none corresponding to n can be neglected,
for the number of optical packets in the respective lightpaths,
as the arrangement of the first stage of processors and registers, processors P(1,n) that perform the calculation using the optical packet presence information on the (n−1)th lightpath and the optical packet presence information on the nth light path, and registers R(1,n) that store the results of calculation are disposed,
as the arrangement of the mth (2≦m≦log2 N) stage, processors P(m,n) that perform the calculation of the registers R(m−1,n−2m−1) or copies thereof and the registers R(m−1,n) or copies thereof, and registers R(m,n) that store the results of calculation are provided,
for the integers M where 2M=N, on the (M+1)th stage a processor and a register Q that stores the information at the tail end of the queue length are provided,
moreover, processors P(M+1,1) is used to that determine the delay applied to the first synchronous fixed-length optical packet from the optical packet presence information for the first lightpath or a copy thereof and the value of the register Q, and
for values of n greater than 1, processors P(M+1,n) are used to determine the delay applied to the nth synchronous fixed-length optical packet, by calculation on the optical packet presence information for the nth lightpath or a copy thereof and the values of the register R(M,n−1) and the register Q, thereby coordinating the delay times given to the synchronous fixed-length optical packets of the respective lightpaths.
In addition, the buffering device for optical packets according to this invention, further comprising reading means that takes readings of the presence of optical packets in the respective light paths, wherein
the respective first-stage processors receive input variables ln−1 and ln that indicate the presence of optical packets arriving at port (n−1) and port n, namely, the variable is 1 when a packet has arrived and 0 when no packet has arrived, and perform the following processing:
l0:=0
for each processor n, in parallel (n:=1 to N)
fn,1:=ln−1+ln;
and provide output of fn,1, the number of packets arriving at the two ports.
In addition, this invention includes a device that accepts input of synchronized fixed-length optical packets, gives different delay times to the respective optical packets and outputs same on a single light path, wherein:
each of the respective first-stage processors P(1,n) is provided with a register R(1,n) that temporarily stores its respective output of (fn,i), and when the (m−1)th stage processors are defined for the integers m from 2 to log2 N,
for the mth-stage processors, and
for the integers n from β+1 to N where β=2m−1, for the value of the nth register R(m−1,n) connected to the previous-stage processor P(m−1,n) and the value of the (n−β)th register R(m−1,n−β, processor P(m,n) performs the processing:
fn,m:=fn−m−1+fn−β,m−1
and provides output of fn,m.
In addition, this invention includes a device that accepts input of synchronized fixed-length optical packets, gives different delay times to the respective optical packets and outputs same on a single light path, wherein,
the (M+1)th processors PM+1,n (where 1≦n≦N) use
fn−1,M as the number of optical packets arriving from ports 1 to n−1,
ln which indicates the presence of an optical packet arriving at port n, and
the queue length q, for the integers n from 1 to N, and perform the processing:
if ln=0 exit;
else Δn:=q+fn−1,M;
but if Δn<B Packet n is given delay Δn;
and if not Δn<B Packet n is discarded;
in this order, and outputs the value of the delay Δn as information that specifies the delay element.
In addition, this invention includes a device that accepts input of synchronized fixed-length optical packets, gives different delay times to the respective optical packets and outputs the same on a single light path, wherein:
for the fN,M stored in register R(M,N), the value of the larger of (min(q+fn,M,β)−1) and 0 is stored as the new queue length (qnew) in register Q.
As described above, since arrival gap time is always zero and packet length is unity in the case of synchronously-arriving fixed-length packets, this invention simplifies the calculation and the implementation in hardware, and can further increase the speed of data processing.
In addition, this invention includes a device that accepts input of synchronous fixed-length optical packets from a plurality of lightpaths, gives each of the optical packets one of B different delay times and outputs same to a single optical path, comprising:
reading means that reads the presence of optical packets and priority-class information of the optical packets on the respective lightpaths,
a queue consisting of a plurality of delay elements that temporarily store the plurality of optical packets and give each optical packet one of B different delay times, an optical switch that directs the optical packet to one of the plurality of delay elements, an optical multiplexer connected by lightpaths to the plurality of delay elements, and an output lightpath connected by a lightpath to the multiplexer,
and a controller that selects the delay element to be used for temporary storage for the optical packets in order to prevent the optical packets from overlapping in the output lightpath by using the delay times of the delay elements and the presence information of the optical packets and the priority-class information of the optical packets,
and this controller is such that:
when the plurality of lightpaths are given sequential numbers n from 1 to N, and in the following, cases in which there is none corresponding to n can be neglected,
for the presence information of the optical packets and the priority-class information of the optical packets in the respective lightpaths,
as the arrangement of the first stage of processors and registers, processors P(1,n) that perform the calculation using the optical packet presence information and priority-class information on the (n−1)th lightpath and the optical packet presence information and priority-class information on the nth light path, and registers R(1,n) that store the results of calculation are disposed,
as the arrangement of the mth (2≦m≦log2 N) stage, processors P(m,n) that perform the calculation of the registers R(m−1,n−2m−1) or copies thereof and the registers R(m−1,n) or copies thereof, and registers R(m,n) that store the results of calculation are provided,
for the integers M where 2M=N, on the (M+1)th stage a processor and a register Q that stores the information at the queue length are provided,
moreover, processor P(M+1,1) is used to determine the delay applied to the first synchronous fixed-length optical packet from the optical packet presence information and the optical packet priority-class information for the first lightpath or a copy thereof and the value of the register Q, and
for values of n greater than 1, processors P(M+1,n) are used to determine the delay applied to the nth synchronous fixed-length optical packet, by calculation on the optical packet presence information and optical packet priority-class information for the nth lightpath or a copy thereof and the values of the register R(M,n−1) and the register Q, thereby coordinating the delay times given to the synchronous fixed-length optical packets of the respective lightpaths.
In addition, this invention includes a device that further comprises reading means that takes readings of the presence of optical packets and the priority-class information of optical packets in the respective light paths, wherein
the respective first-stage processors receive input variables ln−1 and ln that indicate the presence of optical packets arriving at port (n−1) and port n of 1 when a packet has arrived and 0 when no packet has arrived, receive input variables cn−1 and cn that indicate the priority-class of optical packets arriving at port (n−1) and port n of 1 when a packet belongs to high-priority class and 0 when a packet belongs low-priority-class, and perform the following processing:
l0:=0, c0:=0;
for each processor n, in parallel (n:=1 to N)
begin
fn,1:=ln−1+ln;
gn,1:=cn−1ln−1cnln;
end,
and provide output of fn,1, the number of packets arriving at the two ports and output of gn,1, the number of high-priority-class packets arriving at the two ports.
In addition, this invention includes a device that each of the respective first-stage processors P(1,n) is provided with a register R(1,n) that temporarily stores its respective outputs of (fn,1, gn,1), and when the (m−1)th stage processors are defined for the integers m from 2 to log2 N,
for the mth-stage processors, and
for the integers n from β+1 to N where β=2m−1, for the value of the nth register R(m−1,n) connected to the previous-stage processor P(m−1,n) and the value of the (n−β)th register R(m−1,n−β, processor P(m,n) performs the processing:
fn,m:=fn−m−1+fn−β,m−1
gn,m:=gn−m−1+gn−β,m−1
and provides outputs of fn,m and gn,m.
In addition, this invention includes a device that the (M+1)th processors PM+1,n (where 1≦n≦N) use
fn−1,M as the number of optical packets arriving from ports 1 to n−1,
gn−1,M as the number of high-priority-class optical packets arriving from ports 1 to n−1,
ln which indicates the presence of an optical packet arriving at port n,
cn which indicates the priority-class information of an optical packet arriving at port n, and
the queue length q, for the integers n from 1 to N, and when ln=1, perform the following processing:
1) when q is less than the predetermined threshold TH, set Δn:=q+fn−1,M;
In addition, this invention includes a device for the fN,M and gN,M stored in register R(M,N) and for q stored in register Q,
when q is less than the threshold TH, the larger value between (min(q+fn,M,B)−1) and 0 is stored as the new queue length (qnew) in register Q,
and when q is not less than the threshold TH, the larger value between (min(q+gn,M,B)−1) and 0 is stored as the new queue length (qnew) in register Q.
Here follows a detailed description of a preferred embodiment of the preferred embodiment made with reference to the drawings. In the examples below, devices or the like that have the same or similar functions are given the same numbers.
Here, the (N×1) buffers 4 are buffers characteristic of the present invention, having the constitution described in
In the constitution illustrated in
As the management information processor 12, it is possible to use one of the constitution illustrated in
In the one of
In addition, in the one of
A unit of the constitution shown in
A unit of the constitution shown in
Here follows a description of the length l of the optical packet signal at a specified buffering time and the interval t between the optical packet and clock signal. First, the buffering is assumed to be performed every T seconds and this time T is to be smaller than the minimum value of l. Specifically, T is determined so that in the interval from time T0 to time T1 which is T seconds later, no more than one packet arrives at the same port. At this time, if no optical packet signal should arrive in the interval from time t0 to time T1, then l is zero and t is also zero. However, if an optical packet signal arrives in the interval from time T0 to time T1, then the length of this optical packet signal is set as l and the interval between the clock signal and the end of the optical packet signal closest to time T1 is set as t. Specifically, in the event that an optical packet signal is so long as to extend across a plurality of periods, then that optical packet signal is deemed to belong to the first period time that it extends across.
The following description pertains to a buffering device as shown in
The main point of the present invention is to determine the delay times for as many packets as possible per time unit. To this end, a large number of processors Pij are disposed as shown in
In
In the constitution shown in
In this case, the optical packet length and the lead time of the optical packet of each respective lightpath is calculated using a buffering device for optical packets of the following constitution. This is a buffering device for asynchronously arriving optical packets characterized in that it:
1) comprises reading means that reads the optical packet length of the variable-length optical packets on the respective lightpaths, reading means that reads a time difference (the lead time of optical packet) between a clock prepared in advance and the subsequent most recent variable-length optical packet, a queue consisting of delay elements that temporarily store the optical packet and give the optical packet one of B different delay times, an optical switch that directs the optical packet to one of the plurality of delay elements, an optical demultiplexer connected by lightpaths to the plurality of delay elements, and an output lightpath connected by a lightpath to the demultiplexer,
2) comprises a controller that, in order to prevent the input optical packets from overlapping in the lightpath used for output, uses the delay times of the delay elements and the read optical packet lengths and optical packet pre-periods to calculate and determine the delay element where it is to be temporarily stored,
3) this controller is such that, when the plurality of lightpaths are given sequential numbers n from 1 to N, and in the following, the value is set to zero for those in which there is no corresponding lightpath,
for the optical packet length and the optical packet pre-period in the respective lightpaths,
as the arrangement of the first stage of processors and registers, processors P(1,n) that perform the calculation of the optical packet length and the optical packet pre-period on the (n−1)th lightpath and the optical packet length and the optical packet pre-period on the nth light path, and registers R(1,n) that store the results of calculation are disposed,
5) on the (M+1)th stage where 2M=N are provided a processor and a register Q that stores the information at the tail end of the queue length,
6) moreover, processors P(M+1,1) that determine the delay applied to the first variable-length optical packet from the optical packet length and the lead time of the optical packet for the first lightpath or a copy thereof and the value of the register Q, and
7) for values of n greater than 1, processors P(M+1,n) that determine the delay applied to the nth synchronous fixed-length optical packet, by calculation on the optical packet presence information for the nth lightpath or a copy thereof and the values of the register R(M,n−1) and the register Q, thereby coordinating the delay times given to the synchronous fixed length optical packets of the respective lightpaths are provided,
8) and thus the delay time applied to the variable-length optical packets of the respective lightpaths is coordinated based on the output of the processors P(M+1,1) or the processors P(M+1,n).
The functions of the processors Pij will be described later. In the case that there are N elements a1, a2, . . . , aN, the prefix-sum operation is known as the way of finding the respective prefix sums a1, a1+a2, . . . , a1+a2+, . . . , aN, and the parallel prefix operation is known as a method of finding the solution by parallel processing using N processors. However, when this method is used to find the delay of packets, it is necessary to perform the calculation log2 N+1 times per processor and the delay of the next packet cannot be found during that period. In addition, the pipeline is known as a constitution that improves throughput by sending the results of each operation sequentially to the next stage, but even if previously known processing methods are applied, they cannot be used in the present invention. Processors of a unique constitution are required for application to the present invention, and processing suited to the buffering device and buffering method is required.
The first-stage processors P1n perform processing according to the flowchart shown in
[Table 2]
TABLE 2
First Stage (P1n : 1≦n≦N)
ln, ln−1
: packet length
tn, tn−1
: arrival gap time
gn−1
; temporary variable for queue length
fn,1 , tn,1
: output
T
: period
D
: unit length of the delay element
B
: number of the delay elements
for each processor n, in parallel (n = 1 to N)
begin
if (ln−1 = 0) tn,1 = tn;
else tn,1 = tn−1;
gn−1 = tn−1 + ln−1; :
if (ln = 0) fn,1 = gn−1
else begin
end
end
In Table 2 above, the length of the optical packet is ln and the optical packet pre-period is tn, for n=0, ln=tn=0, and the delay of the plurality of delay elements can be arranged as delays that increase by the delay time D. These first-stage processors are provided with N lightpaths on the input side, and perform the following processing on the integers n from 1 to N.
1) when ln=1=0 is true, output tn as tn,1, or
The second-stage processors P2n perform processing according to the flowchart shown in
[Table 3]
TABLE 3
Second Stage (P2n : 3≦n≦N)
fn,1 , fn−2,1
: last position of the combined packet
tn,1 , tn-2,1
: arrival gap time
gn-1
: temporary variable for queue length
fn,2 , tn,2
: output
for each processor n, in parallel (n = 3 to N)
begin
if (fn−2,1 = 0) tn,2 = tn,1;
else tn,2 = tn−2,1;
if (fn,1 = 0) fn,2 = fn−2,1;
else begin
end ;
end
Table 3 above presents the buffering method of a device provided with the second-stage (n−2)th processor that, for the integers n from 3 to N, calculates the content of the nth register and the content of the (n−2)th register and gives the output of (fn,2, tn,2). Here, the following processing is performed.
On the integers n from 1 to N.
The third-stage processors P3n perform processing according to the flowchart shown in
[Table 4]
TABLE 4
Third Stage (P3n : 5≦n≦N)
fn,2 , fn−1,2
: last position of the combined packet
tn,2 , tn−1,2
: arrival gap time
fn,3 , tn,3
: output
for each processor n, in parallel (n = 5 to N)
begin
if (fn−4,2 = 0) tn,3 = tn,2;
else tn,3 = tn−4,2;
if (fn,2 = 0) fn,3 = fn−4,2;
else begin
end ;
end
In general, the mth-stage processors Pmn perform processing according to the flowchart shown in
[Table 5]
TABLE 5
m-th Stage (Pmn : 2m−1+1≦n≦2M=) : M=log2N
fn,m−1, fn−2
: last position of the combined packet
tn,m−1 , tn−2
: arrival gap time
fn,m , tn,m
: output
for each processor n, in parallel (n = 2m−1 + 1 to N)
begin
if (fn−2
else tn,m = tn−2
if (fn,m−1 = 0) fn,m = fn−2
else begin
end ;
end
Table 5 above presents the buffering method of a device that, when an (m−1)th processor is defined, is provided with the mth-stage (n−β)th processor that, for the integers n from β+1 to N where β=2m−1, calculates the content of the nth register and the content of the (n−β)th register and gives the output of (fn,m, tn,m). Here, the following processing is performed. Assuming that 2≦m≦log2 N.
As data for % electing delay elements that are arranged with equal differences between their delay times of 0, D, 2D, . . . , (B−1)D, when the delay time of the nth lightpath is given as ΔnD, output this Δn. To this end, the processing according to the flowchart shown in
[Table 6]
TABLE 6
(m+1)m−1-th Stage ,Delay time, (PM+1,n : 1≦n≦N) : M=log2N
fn−1,M
: last position of the combined packet
ln
: packet length arrived M periods before
tn
: arrival gap time M periods before
tn−1,M
: arrival gap time
q
: queue length
Δn
: delay
for each processor n, in parallel (n = 1 to N)
begin
if (ln = 0) exit;
if (fn−1,M = 0) temp = q;
If (Δn < B) Packet n is given delay Δn;
else Packet n is discarded;
end
Table 6 above presents the method of finding Δn for the integers n from 1 to N when the length of the queue is q, by performing the following processing. However, in the following, M=log2 N.
In this manner, taking M=log2 N, at the same time that the Mth-stage processing results are obtained, the queue length (q) is updated by a separate processor. This processing is performed according to the flowchart shown in
[Table 7]
TABLE 7
(m+1)m−1-th Stage, Queue length, : M=log2N
fN,M
: last position of the combined packet
tN,M
: arrival gap time
q
: queue length
Δ
: temporary variable
qnew
: output queue length
if (fN,M = 0) qnew = max(q − T, 0);
else begin
qnew = max (min(fN,M + ΔD, BD + MTU) − T, 0);
else qnew = q − T;
end
Generally, in packet communications, the MTU (maximum transfer unit) is set. Table 7 above presents the procedure in the case that the MTU is set.
If the MTU (maximum transfer unit) is not set, or if the speed of processing is to be increased even if the MTU is present, the queue length can be set by the following method.
In order to perform the processing of the flowcharts above at high speed, it is preferably implemented in semiconductor circuits (hardware). However, in order to implement it in hardware, the processing procedure must be described in hardware description language (HDL) and converted to circuitry, but the function (max) that finds the maximum value is used in Table 6 above, yet this operate cannot be used in the current state. In addition, division is used in the above processing procedure and this may complicate the circuitry, or cause the processing to slow down, among other problems. These problems are solved by setting T=2pD (where p is an integer).
In this case, the first-stage processors P1n perform processing according to the flowchart shown in
TABLE 8
First Stage (P1n: 1≦n≦8)
ln , ln−1
: packet length
tn , tn−1
: arrival gap time
gn−1
: temporary variable for queue length
fn,1 , tn,1
: output
T
: period
D=2k
: unit length of the delay element
B
: number of the delay elements
for each processor n, in parallel (n = 1 to N)
begin
if (ln−1 = 0) tn,1 = tn;
else tn,1 = tn−1;
gn−1 = tn−1(2) + ln−1;
if (ln = 0) fn,1 = gn−1;
else begin
if (gn−1(2) ≦ tn(2)) Δn = gn−1(1);
else Δn = gn−1(1) + 1;
fn,1 = tn(2) + ln + 2kΔn;
end;
end
In Table 8 above, taking N to be the number of lightpaths, n to be the lightpath number, and the period T to be set as a power of 2 times an appropriately set time unit (τ), or namely T=2aτ (where a is a nonnegative integer), while T is to be no greater than the minimum packet length represented as the length of an integral multiple of the time unit (τ), the above reading means performs reading at each period T, and for the optical packets of the nth lightpath that pass through this reading means at a specified time, the length of the optical packet is ln represented as a length which is an integral multiple of the time unit, the pre-period is expressed as an integral multiple of the time unit that is no greater than the pre-period, and for n=0, ln=tn=0, and the delay of the plurality of delay elements, in a constitution where the delays can be arranged such that they increase by the delay time D, D is given as 2k (where k is a nonnegative integer), and, as the method of representation, the integer corresponding to the least significant bit k of the binary representation of the integer x is given as x(2), and the binary number consisting of the remaining most significant bits after removing the aforementioned least significant bit k is given as x(1), this processor is provided with N lightpaths on the input side, and performs the following processing on the integers n from 1 to N
The processing procedures for the second stage and third stage are shown in
TABLE 9
Second Stage (P2n : 3≦n≦8)
fn,1 , fn−2,1
: last position of the combined packet
tn,1 , tn−2,1
: arrival gap time
Δn
: temporary variable
fn,2 , tn,2
: output
for each processor n, in parallel (n = 3 to N)
begin
if (fn−2,1 = 0) tn,2 = tn,1;
else tn,2 = tn−2,1;
if fn,1 = 0 fn,2 = fn−2,1;
else begin
if (fn−2,1(2) ≦ tn,1(2)) Δn = fn−2,1(1);
else Δn = fn−2,1(1) + 1;
fn,2 = fn,1 + 2kΔn;
end;
end
TABLE 10
Third Stage (P3n : 5≦n≦8)
fn,2 , fn−4,2
: last position of the combined packet
tn,2 , tn−4,2
: arrival gap time
Δn
: temporary variable
fn,3 , tn,3
: output
for each processor n, in parallel (n = 5 to N)
begin
if (fn−4,2= 0) tn,3 = tn,2;
else tn,3 = tn−4,2;
if fn,2 = 0 fn,3 = fn−4,2;
else begin
if (fn−4,2(2) ≦ tn,2(2)) Δn = fn−4,2(1);
else Δn = fn−4,2(1) + 1;
fn,3 = fn,2 + 2kΔn;
end;
end
These procedures are generally performed as follows. Generally, in the buffering method of a device that is provided with the mth-stage (n−β)th processor P(m,n) that, for the integers n from β+1 to N where β=2m−1, calculates the content of the nth register R(m−1,n) connected to the previous-stage processors P(m−1,n) and the content of the (n−β)th register R(m−1,n−β) and gives the output of (fn,m, tn,m).
At the stage of providing output of Δn, the processing according to the flowchart shown in
TABLE 11
(m+1)m−1-th Stage ,Delay time, (PM+1,n : 1≦n≦N) : M=log2 N
fn−1,M
: last position of the combined packet
ln
: packet length arrived M periods before
tn
: arrival gap time M periods before
tn-1.M
: arrival gap time
q
: queue length
Δ n
: delay
for each processor n, in parallel (n = 1 to N)
begin
if (ln = 0) exit;
if (fn−1,M = 0)
begin
if (q(2) ≦ tn(2)) Δn = q(1);
else Δn = q(1) + 1;
end
else begin
if (q(2) ≦ tn−1,M(2)) Δ1 = q(1);
else Δ1 = q(1) + 1;
if (fn−1,M(2) ≦ tn(2)) Δn = Δ1 + fn−1,M(1);
else Δn = Δ1 + 1 + fn−1,M(1);
end ;
if (Δn < B) Packet n is given delay Δn;
else Packet n is discarded;
end
Table 11 presents the following processing for the integers n from 1 to N when the length of the queue is q.
Assuming that M=log2 N,
1) when ln≠0 is not true, end processing,
2) when ln≠0 is true,
2-1) when fn−1,M=0 is true and,
In addition, at the stage of updating the queue length, processing is performed according to the flowchart shown in
TABLE 12
(m+1)-th Stage, Queue length, : M=log2 N
fN,M
: last position of the combined packet
tN,M
: arrival gap time
q
: queue length
Δ
: temporary variable
qnew
: output queue length
if (fN,3 = 0)
begin
if (q > T) qnew = q − T;
else qnew = 0;
end
else begin
if (q(2) ≦ tN,M(2)) Δ = q(1);
else Δ = q(1) + 1;
if (Δ < B)
begin
if (fN,M + 2kΔ > 2kB + MTU)
qnew = 2kB + MTU − T; (*)
elsif (fN,M + 2kΔ > T) qnew = fN,M + 2kΔ − T;
else qnew = 0;
end
else qnew = q − T;
end
In Table 12 above, the processing is performed by the following procedure. As described above, the MTU (maximum transfer unit) is generally set.
When M=log2 N,
In each period, if the buffer is already overflowing with optical packets at the time that the queue length is updated, perform the process of discarding newly arriving packets in the same manner as in the conventional round-robin scheme. If not, perform the queue length update assuming that all arriving optical packets can be added to the queue. The computations for appropriately storing all arriving optical packets are to be performed with a plurality of processors.
When the above buffering device in the optical packet switch for asynchronous variable-length optical packets is used for buffering in an optical packet switch for synchronous fixed-length optical packets, the parallel processing of
A device that accepts input of synchronous fixed-length optical packets from a plurality of lightpaths, gives each of the optical packets one of B different delay times and outputs same to a single optical path, comprising:
reading means that reads the presence of optical packets on the respective lightpaths,
a queue consisting of a plurality of delay elements that temporarily store the plurality of optical packets and give each optical packet one of B different delay times, an optical switch that directs the optical packet to one of the plurality of delay elements, an optical demultiplexer connected by lightpaths to the plurality of delay elements, and an output lightpath connected by a lightpath to the demultiplexer,
and in order to prevent the optical packets from overlapping in the output lightpath, a controller that uses the delay times of the delay elements and the presence information for optical packets thus read to determine by computation the delay element used for temporary storage, and
this controller is such that:
when the plurality of lightpaths are given sequential numbers n from 1 to N, and in the following, cases in which there is none corresponding to n can be neglected,
for the number of optical packets in the respective lightpaths,
as the arrangement of the mth (2≦m≦log2A) stage, processors P(m,n) that perform the calculation of the registers R(m−1,n−2m−1) or copies thereof and the registers R(m−1,n) or copies thereof, and registers R(1,n) that store the results of calculation are provided,
for the integers M where 2M=N, on the (M+1)th stage are provided a processor and a register Q that stores the information at the tail end of the queue length,
moreover, the delay applied to the first synchronous fixed-length optical packet is determined from the optical packet presence information for the first lightpath or a copy thereof and the value of the register Q, and
for values of n greater than 1, processors P(M+1,n) are used to determine the delay applied to the nth synchronous fixed-length optical nth packet, by calculation on the optical packet presence information for the nth lightpath or a copy thereof and the values of the register R(M,n−1) and the register Q, thereby coordinating the delay times given to the synchronous fixed-length optical packets of the respective lightpaths.
We shall first describe the first-stage processors P1n (P1n: 2≦n≦N). Here, for the N processors P1n (where 2≦n≦N), the following processing is performed after the time of (log2 N+1)T until after the time (log2 N+2). Here, (log2 N+1) is the number of steps in which the following process is performed as parallel processing and T is the time per 1 step. This process must not end before the optical packets reach the optical switch for directing them to the respective delay elements.
In the case of the first stage, the input to the variables ln−1 and ln that indicate the presence of optical packets arriving at port (n−1) and port n is 1 when a packet has arrived and zero when no packet has arrived. The first-stage processors perform the following processing based on this information, and provides output of the presence information fn for optical packets arriving at the two ports.
Start
l0=0
for each processor n, in parallel (n:=1 to N)
fn,1:=ln−1+ln;
End
In addition, the second stage (P2n: 3≦n≦N) is processed as follows.
For the (N−2)th processor P2a (where 3≦n≦N), the optical packet presence information obtained from the first-stage processors is input as:
In addition, the following process is used to output fn,2, which is the number of optical packets arriving at port max(n−3,1) through port n.
Start
for each processor n, in parallel (n:=3 to N)
fn,2:=fn−1+fn−2,1;
End
In addition, the third stage (Pn: 5≦n≦N) is processed as follows.
For the (N−4)th processor P0n (where 5≦n≦), the optical packet presence information obtained from the second-stage processors is input as:
In addition, the following process is used to find and output fn,3, which is the number of optical packets arriving at port max(n−7,1) through port n.
Start
for each processor n, in parallel (n:=5 to N)
fn,3:=fn−2+fn−4,2;
End
In general, the mth stage (Pmn: 2m−1+1≦n≦N) is processed as follows.
Taking β=2m−1, for the (N−2m−1)th processor Pmn (where β+1≦n≦N), the optical packet presence information, obtained from the (m−1)th-stage processors is input as:
In addition, the following process is used to find and output fn,m, which is the number of optical packets arriving at port max((n−2m−1+1),1) through port n.
Start
for each processor n, in parallel (n:=2m−1+1 to N)
fn,m:fn−m−1+fn−β,m−1;
End
With the above processing, it is possible to use pipeline processing in a parallel configuration of m stages of processors to find the number of optical packets arriving at port 1 through port n, for n=1, 2, . . . , N.
In addition the delay is found for the (M+1)th stage.
For the processors PM+1,n (where 1≦n≦N), upon taking input of fn−1,M as the number of optical packets arriving from ports 1 to n−1, ln which indicates the presence of an optical packet arriving at port n, and the queue length q, the value of the delay Δn is output.
Start
for each processor n, in parallel (n:=1 to N)
begin
if (ln=0) exit;
Δn:=q+fn−1,M;
if (Δn<B) Packet n is given delay Δn;
else Packet n is discarded;
end
End
At the same time as the derivation of the delay, separate processors Pq perform an update of the stored buffer occupancy.
The input is fN,M, the number of optical packets arriving at all ports.
The internal variables are Δ and the queue length q.
The output is the new queue length qnew.
qnew:=max((min(fN,M+q,β)−1,0);
When the above process is performed by the conventional round-robin type method, the following can be done.
Start
for n:=1 to N do
begin
if (ln=0)
begin
if f<B
begin
Packet n is given delay f× T,
f.=f+ 1;
end
else Packet n is discarded;
end
end
f.=max(f−1,0);
End
When round-robin type processing is performed in this manner by the conventional method, the loop must be traversed N times, so the processing time from start to end per processor becomes a much longer time than in the case of parallel processing according to the present invention as above. In other words, if the processing time of a processor according to the present invention is taken to be the time unit, the round-robin type processing requires N time units to process one packet per port.
The optical packets transmitted over various lightpaths are typically subject to shifting out of synchronization, but by using a previously reported optical synchronization device, it is possible to obtain synchronized optical packets. In addition, by setting the optical packet length of the largest transmitted optical packet to the respective optical packet length, they can be made fixed length. Thus, synchronized fixed-length optical packets can be used by this method.
In addition, the above method of preparing synchronized fixed-length optical packets can also be applied even to the case of asynchronous variable-length optical packets, so it is clear that after converting asynchronous variable-length optical packets to synchronous fixed-length packets, the buffering device can be applied to these synchronous fixed-length packets and thus the asynchronous variable-length optical packets can be buffered so that they do not overlap on output.
Table 13 presents the results of the method according to the present invention in comparison to the results when dendriform delay line buffer units are disposed and the method recited in Document 6 is used with a buffer managers placed in each, and the method recited in Document 5 for finding the delay by parallel processing, for each of the cases of N=8, 64, 256 and 1024.
TABLE 13
Number of processors, Np. processing delay, TD. and processing time, Tp. per processor when input N = 2k.
con-
ventional
document 6
document 5
Present Invention
N
k
NP
TD
NP
TD
TP
NP
TD
TP
NP
TD
TP
1
O(N)
O(N1/2)
O(N1/2)
O(N1/2)
O(N)
O(log2 N)
O(N log2 N)
O(log2 N)
O(1)
1
N
N1/2 + 1
2N1/2
N1/2
N
log2 N + 1
log2 N + 1
N log2 N + 2
log2 N + 1
1
16
4
1
16
5
8
4
16
5
5
66
5
1
64
6
1
64
9
16
8
64
7
7
386
7
1
256
8
1
256
17
32
16
256
9
9
2,050
9
1
1,024
10
1
1,024
33
64
32
1,024
11
11
10,242
11
1
Here, N=2k is the number of inputs, Np, TD and TP are the number of processors, processing delay and processing time per processor, respectively. As is evident from this Table 13, while the number of processors used is large in the present invention, the processing delay (TD) and processing time per processor (TP) can be made small. In addition, the characteristic of the present invention in that the processing time per processor does not change even if N (or k) that is the number of inputs increases is further superior in comparison to Document 5 above. In this manner, the characteristic of being able to reduce the processing delay (TD) and processing time per processor is necessary in order to perform high-speed buffering. In particular, the latter characteristic of being able to reduce the processing delay per processor allows more processes to be performed per time unit. For example, when N=1024, where only one process per input could be performed during 111 time units according to Document 5 above, with the present invention, 11 processes can be performed per input during 11 time units. In this manner, one can see that it is possible to avoid rapid increases in the maximum processing time per processor even when the number of inputs increases. This meritorious effect is an object of the present invention, and the effect thereof becomes even more prominent as N increases further,
In the followings, we describe two prioritized buffer management methods in parallel and pipeline processing architecture. At first, we directly apply PBS (partial buffer sharing) to the multiprocessing architecture. We then point out its problem and design a new prioritized buffer management method, called PBFS (partial buffer fair sharing), which is an extended version of the PBS. PBFS is closer to the multiprocessing architecture rather than PBS from the viewpoint of buffer utilization. We describe the processing mechanism in the multiprocessing architecture.
In PBS method, threshold TH is predetermined. When the queue is shorter than the threshold (q<TH), every packet is allowed to enter the queue. When the queue length is equal to or longer than the threshold and is shorter than the buffer size (TH≦q<B), only high-priority class (class-1) packets are allowed to enter the queue while low-priority class (class-2) packets are discarded. The mechanism can be combined into the round robin scheduling, by replacing condition “if q<B” in the forth line in the following procedure;
0. Procedure round-robin
1. For n:=1 to N do
2. Begin
3. If (ln=1) then begin
4. If q < B then begin
5. Packet n is given delay qD;
6. q:=q+1; End
7. Else Packet n is discarded;
8. End
9. End
10. q:= max(q−1, 0) ,
into condition “if ((q<B) and (cn=HIGH) or (q<TH) and (cn=LOW))”, as follows;
0. Procedure PBS
1. For n:=1 to N do
2. Begin
3. If (ln=1) then begin
4. if ((q<B) and (cn= HIGH) or (q<TH) and (cn= LOW)) then begin
5. Packet n is given delay qD;
6. q:=q+1; End
7. Else Packet n is discarded;
8. End
9. End
10. q:= max(q−1, 0); ,
where cn indicates the priority class of the packet arriving at port n.
Parallel PBS is a direct application of PBS. In the non priority case in Example 3, the number of arriving packets is calculated in the front log2 N pipeline stages to be used for the delay calculation and the update of the queue length. Since PBS does not allow to enter class-2 packets when the queue reaches the threshold, calculating the number only of packets including class-2 packets results in overestimation of the queue length. We therefore introduce another prefix-sum, in which arrivals of class-1 packets are used as elements. In each processor in the pipeline stages, the number of class-1 packets as well as the number of packets (namely, sum of the number of class-1 packets and the number of class-2 packets) are calculated.
We first describe procedures in front log2 N pipeline stages for parallel prefix operation. The first-stage processors perform the first operation of the parallel prefix. For processor P1,n (2≦n≦N), values ln and ln−1 are inputted. Values cn and cn−1 respectively indicating the priority class of the packet at ports n and n−1, are also inputted. The value is 1, if the packet belongs to class-1, and it is 0 otherwise. Processor P1,n performs the procedure in the following procedure to generate fn,1 and gn,1, which respectively represent the number of packets and the number of class-1 packets at the two ports.
0.
Procedure first stage of parallel PBS;
1.
For each processor Pl,n, in parallel (n:= 2 to N)
2.
Begin
3.
fn, l:= ln + ln·1;
4.
gn, l:= cn ln + cn·1 ln·1;
5.
End,
The kth-stage processors are devoted to the kth operation of the parallel prefix. For processor Pk,n (2≦k≦log2 N, 2k−1+1≦n≦N), the inputs are connected to the registers of the two (k−1)th-stage processors Pk−1,n and Pk−1,2k−1. Processor Pk,n thus receives fn,k−1, gn,k−1, fn−2
0.
Procedure k-th stage of Parallel-PBS;
1.
For each processor Pk,n, in parallel (n:= 2k·1 + 1 + 1 to N)
2.
Begin
3.
fn,k·1:= fn,k·1 + fn − 2k·1,k·1;
4.
gn,k·1;= gn,k·1 + gn − 2k·1,k·1;
5.
End,
By performing the above procedures at the front log2 N stages, processors in the (log2 N)th stage generate a set of prefix sums. The prefix sums are the number of packets and the number of class-1 packets both arriving at ports 1 through n(n=1, . . . , N).
N processors at the (log2 N+1)th stage are devoted to delay determination. For processor P(log2 N+1),n (1≦n≦N), the inputs are connected to the register of the (log2 N)th stage processor, P(log2 N+1),n−1. Processor P(log2 N+1),n thus receives fn−1,log2 N and gn−1,log2 N. At the same time, the processor also receives the queue length at the beginning of the cycle (qstart) and the original information about packet arrival (ln) and its priority class (cn). The delay to a packet at port n is determined by sum of qstart and the number of packets, or, the number of class-1 packets. Since PBS allows to enter class-2 packets only when the queue is smaller than the threshold, delay determination should depend on the current status of the queue length. Namely,
When the queue length is equal to or greater than the threshold at the beginning of the cycle (qstart≧TH), the queue length during the cycle is also equal to or greater than the threshold. Class-2 packets are not allowed to enter the queue. The delay to a class-1 packet is determined as the sum of qstart and the number of class-1 packets, Δn=qstart+gn−1,log2 N.
When the queue is smaller than the threshold at the beginning (qstart<TH), the queue length may reach the threshold. However, Parallel PBS gives a packet the delay that is the sum of the queue length at the beginning of the cycle and the number of packets, Δn=qstart+fn−1,log2 N, regardless of the priority class of the packets.
If we strictly apply the PBS, other variables are needed in addition to f*,*'s and g*,*'s and delay determination becomes very complicated. The complication makes the speed of parallel and pipeline processing lose. We therefore make the delay determination simple. Finally, the class-1 packet at port n is given delay Δn if Δn<B, and is discarded otherwise. The class-2 packet at port n is given delay Δn if Δn<TH, and is discarded otherwise. The following procedure shows the pseudo-code for processor P(log2 N+1),n.
0.
Procedure of (log2N + 1)th stage of Parallel PBS
1.
For each processor P(log2 N+1),n in parallel (n:= 1 to N)
2.
Begin
3.
If (ln = 1) then begin
4.
If (qstart < TH) then Δn = fn·1 ,log2 N
5.
else Δn = qstart + gn·1 ,log2 N
6.
if ((Δn < B) and (cn = HIGH) or (Δn < TH) and (cn = LOW))
7.
then Packet n is given delay Δn D;
8.
Else Packet n is discarded;
9.
End
10.
End,
At the last stage, the queue length is also updated at processor Pq. The input of the processor is connected to the register of processor Plog2 N,n. Processor Pq thus receives fn,log2 N and gn,log2 N. If queue is smaller than the threshold at the beginning of the cycle, the queue length is updated as follows;
q:=max(min(qstart+fN,log2 N, B)−1, 0)
Otherwise that is, if the queue is equal to or larger than the threshold, the queue length is updated as follows.
Parallel PBS can increase throughput but the buffer is not utilized well. For example, consider a queue of which length is two (qstart=2), where one packet has been served and another is waiting. Assume that four packets (classes 1, 1, 2, and 1 in the scheduled order) designated to the same output port arrive at the packet switch in this cycle. Threshold TH is three. In this case, after the first class-1 packet is allowed to enter the queue and is given delay two, the queue reaches the threshold. The second class-1 packet is given delay three. The class-2 packet is discarded. Nevertheless, the last class-1 packet is given delay five because the delay is determined by means of the number of arriving packets. As a result, we have free space between the second class-1 packet and the last one.
We extend PBS in order to avoid the free space. The condition for packet buffering (the forth line in the Procedure round-robin) is replaced by “if ((q<B) and (cn=HIGH) or (qstart<TH) and (q<B) and (cn=LOW))”. Namely, if queue length at the beginning of the cycle is smaller than the threshold, class-2 packets are allowed to enter the buffer. Since packets in the same cycle are fairly treated except for buffer overflow, we call this method partial buffer fair sharing (PBFS).
PBFS can also be introduced in the multiprocessing architecture. In the Parallel PBFS, the procedures in the front log2 N stages and procedure in processor Pq are identical to those in the Parallel PBS. Delay determination procedures in the last stage are different. The delay to a packet is temporally determined by the same method as that of Parallel PBS. The difference exists in the decision of packet buffering; the class 2 packet at port n is given delay Δn if qstart<TH and if Δn<B, and is discarded otherwise. The following procedure shows the pseudo code for processor P(log2 N+1),n.
0. Procedure of (log2N + 1)th stage of Parallel PBFS
1. For each processor P(log2 N+1),n in parallel (n:=1 to N)
2. Begin
3. If (ln=1) then begin
4. if (qstart < TH) then Δn := qstart + fn−1,log2N
5. else Δn = qstart + gn−1 ,log2 N
6. if ((Δn<B) and (cn= HIGH) or (qstart <TH) and (Δn<B) and (cn=
LOW))
7. then Packet n is given delay Δn D;
8. Else Packet n is discarded;
9. End
10. End,
Parallel PBFS can use buffer more efficiently than Parallel PBS does because PBFS does not generate the free space, which is generated by Parallel PBS.
In order to demonstrate the hardware scale and the feasibility of high-speed management, we conducted a simulation of the buffer management hardware with partial buffer fair sharing (PBFS) priority control based on a multi-processor configuration. We simulated our configuration after performing a place-and-route operation on a 0.13-μm FPGA (Field Programmable Gate Array) wiring process, in which 79,040 logic elements are integrated and 830 I/O pins are prepared. The specifications of this configuration circuit are given in the table below.
TABLE 14
Specifications
Clock speed (fmax)
156.4
MHz
Port speed (C)
80.0
Gpbs
Number of inputs (N)
8
Packet length (L)
64
bytes
Number of FDLs (B)
15
Unit length of FDLs (D)
1.56
m (64 bytes)
As indicated by the table above, this configuration circuit has a clock speed of 156.4 MHz. The circuit provides priority control for 8-input optical packet switch. The number of logic elements required to implement this circuit was 456. Note that from the equation below, the circuit speed at this clock speed becomes 80 Gbps.
C=8L×fmax
Here, C, L and fmax are the channel speed (Gbps), packet length (bytes) and the clock speed (MHz), respectively. The breakdown of the critical path in this imaging circuit was 44% cell delay and 56% wiring delay.
The maximum number of input ports can be estimated by using configuration-circuits with a smaller number of input ports. The upper limit for input ports is limited by the number of I/O pins and number of FPGA logic elements that can be used. In the configuration circuit, if N is the number of input ports, then (6N+19) X/O pins are required. The number of ports that can be obtained therefrom is 128.
On the other hand,
The scale of a multiprocessor circuit is on the order of Nlog2 N. In addition, the number of logic elements used in the reference function is 32Nlog2 N. From
Patent | Priority | Assignee | Title |
8306047, | Jul 29 2009 | University of Southern California | Packet switch with separate look ahead, computation, and shift phases |
9961420, | Feb 27 2014 | National Institute of Information and Communications Technology | Optical delay line and electronic buffer merged-type optical packet buffer control device |
Patent | Priority | Assignee | Title |
7106967, | Sep 04 2001 | F POSZAT HU, L L C | Optical packet switching apparatus and methods |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 09 2004 | National Institute of Information and Communications Technology Incorporated Administrative Agency | (assignment on the face of the patent) | / | |||
Aug 09 2004 | HARAI, HIROAKI | National Institute of Information and Communications Technology Incorporated Administrative Agency | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 015919 | /0520 |
Date | Maintenance Fee Events |
Jun 17 2013 | ASPN: Payor Number Assigned. |
Sep 27 2013 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Sep 26 2017 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Nov 22 2021 | REM: Maintenance Fee Reminder Mailed. |
May 10 2022 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Apr 06 2013 | 4 years fee payment window open |
Oct 06 2013 | 6 months grace period start (w surcharge) |
Apr 06 2014 | patent expiry (for year 4) |
Apr 06 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 06 2017 | 8 years fee payment window open |
Oct 06 2017 | 6 months grace period start (w surcharge) |
Apr 06 2018 | patent expiry (for year 8) |
Apr 06 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 06 2021 | 12 years fee payment window open |
Oct 06 2021 | 6 months grace period start (w surcharge) |
Apr 06 2022 | patent expiry (for year 12) |
Apr 06 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |