WO2004088938A1 - 通信装置及び通信方法 - Google Patents

通信装置及び通信方法 Download PDF

Info

Publication number
WO2004088938A1
WO2004088938A1 PCT/JP2003/004057 JP0304057W WO2004088938A1 WO 2004088938 A1 WO2004088938 A1 WO 2004088938A1 JP 0304057 W JP0304057 W JP 0304057W WO 2004088938 A1 WO2004088938 A1 WO 2004088938A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
processor
buffer
receiving
token
Prior art date
Application number
PCT/JP2003/004057
Other languages
English (en)
French (fr)
Inventor
Katsuhiko Yamatsu
Nobuhiko Eguchi
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2003/004057 priority Critical patent/WO2004088938A1/ja
Priority to JP2004570152A priority patent/JP4049777B2/ja
Publication of WO2004088938A1 publication Critical patent/WO2004088938A1/ja
Priority to US11/234,111 priority patent/US7796618B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/54Loss aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the present invention relates to a communication technique, and more particularly to a technique in which a plurality of processor units communicate a bucket using a token.
  • FIG. 15 shows a communication device using a multiprocessor system according to the prior art.
  • first to fourth processor units 1501 to 1504 are connected in parallel, a packet 1531 is input, and a bucket 1532 is output.
  • the first processor unit 1501 has a first receiving processor 1511a, a first receiving buffer 1512a, and a first processing processor 1513a.
  • the second processor unit 1502 includes a second receiving processor 1511b, a second receiving buffer 1512b, and a second processing processor 1513b.
  • the third processor unit 1503 has a third receiving processor 1511c, a third receiving buffer 1512c, and a third processing processor 1513c.
  • the fourth processor unit 15 ⁇ 4 is the fourth receiving processor 15 5 1 1d, the fourth receiving buffer 15 1
  • the first to fourth receiving processors 15 11 1 a to 15 11 d are individually or all received processors 15 15 1, the first to fourth receiving buffers 15 1 2 a to 1 5 1 2 d Individual or all receive buffers 1 5 1 2, 1st to 4th processing processors 1 5 1
  • Each or all of 3a to 1513d is referred to as a processing processor 1513.
  • the main function of the receiving processor 1511 is to receive packets.
  • the main function of the processor 1513 is to process the received bucket and transmit the bucket.
  • Reception The buffer 1512 has an interface function between the receiving processor 1511 and the processing processor 1513, and has, for example, a buffering capacity for two buckets.
  • the reception token 1541 and the transmission token 15542 are circulating asynchronously between the processor units 1501 to 1504.
  • the receiving processor 1511 receives the receiving bucket 1531 and passes the receiving token 15541 to the next processor unit.
  • the processing processor 1513 receives the transmission token 15542, it transmits the transmission bucket 1532 and passes the transmission token 15542 to the next processor unit.
  • the operation flow is as follows.
  • the receiving processor 1511 holding the receiving token 1541 receives the bucket 1531, and the received packet is Stored in the receive buffer 1512.
  • the processor 1513 recognizes that the packet has been stored in the reception buffer 1512, it starts processing the bucket, and if the packet has the transmission token 1542, it transmits the packet. Then, upon completion of the processing, the receiving buffer 1512 is released.
  • the processing processors 15 13 are programmable, and a programmer can configure any program. As the size of this program increases, the processing time increases, the release of the receive buffer 1512 becomes slower, and the number of discarded packets increases. When this packet is discarded, packet order inversion occurs, which cannot be solved by packet order matching using tokens. The operation at this time is described below.
  • the first receiving processor 1511a having the receiving token 1541 receives the packet.
  • Receives P1 stores it in the first receive buffer 1512a, and passes the receive token 1541 to the second receive processor 1511b.
  • the second receiving processor 1511b holding the receiving token 1541 receives the bucket P2, stores it in the receiving buffer 1512b, and stores the receiving token 1541 in the third receiving processor.
  • 1 5 1 1 Pass to c Thereafter, the third receiving processor 1 5 1 1 c ⁇ the fourth receiving processor 1 5 1 1 d ⁇ the first receiving processor 1 5 1 1 a Is done.
  • the first receiving buffer 1512a stores the packets P1 and P5
  • the second receiving buffer 1512b stores the packets P2 and P6
  • the third The reception buffer 1512c stores packets P3 and P7
  • the fourth reception buffer 1512d stores packets P4 and P8.
  • the first processing processor 1513a processes the packet P1 in the first reception buffer 1512a
  • the second processing processor 1513b operates the second reception buffer 1
  • the packet P 2 in the 5 1 2 b is processed
  • the third processing processor 15 13 c processes the packet P 3 in the third receiving buffer 15 12 c, and the fourth processing.
  • the processor 1513d processes the packet P4 in the fourth reception buffer 1512d.
  • the first processing processor 1513a since the first processing processor 1513a has the transmission token 1542, it transmits the processed bucket P1 and the first reception buffer Release packet P1 in 1 5 1 2a. After that, the first processing processor 1513a passes the transmission token 1542 to the second processing processor 1513c and processes the packet P5 in the first reception buffer 1512a. .
  • the first receiving processor 1511a having the receiving token 154 1 receives the packet P9, and The received token is stored in the reception buffer 1512a, and the reception token 1541 is passed to the second reception processor 1511b.
  • the second receiving processor 1511b holding the receiving token 1541 receives the packet P10, but since the receiving buffer 1512b is full, the packet P1 Discard 0 and pass the receive token 154 1 to the third receive processor 1511c.
  • the third and fourth receiving processors 1511c and 1.511d have full receiving buffers 1512c and 1512d. Therefore, the packets P 11 and P 12 are discarded.
  • the second processing processor 1513b since the second processing processor 1513b has the transmission token 1542, it transmits the processed packet P2 and the second reception buffer Release packet P2 in 1 5 1 2b. Thereafter, the second processing processor 15 13 b passes the transmission token 1 542 to the third processing processor 15 13 c and processes the bucket P 6 in the second reception buffer 15 12 b. . Similarly, the third and fourth processing processors 1513c and 1513d transmit buckets P3 and P4, respectively, and subsequently process packets P7 and P8. Next, the first processing port processor 1513a transmits packet P5, and subsequently processes bucket P9.
  • the first receiving processor 1511 a having the receiving token 154 1 receives the packet P 13, and 1 is stored in the reception buffer 1512a, and the reception token 1541 is passed to the second reception processor 1511b.
  • the second to fourth receiving processors 15 11 1 b to 15 11 d receive the packets P 14 to P 16 and receive buffers 15 12 b to 15 12 respectively. Store in d.
  • the second processing processor 153 b since the second processing processor 153 b has the transmission token 1 ⁇ 542, the second processing processor 153 b transmits the processed packet ⁇ ⁇ ⁇ ⁇ 6, and the second reception buffer 153. Release bucket P6 in 1 5 1 2b. Thereafter, the second processing processor 1513b processes the bucket P14 in the second reception buffer 1512b. Next, similarly, the third and fourth processing processors 1513c and 1513d transmit buckets P7 and P8, respectively, followed by bucket P15. And P16. Next, the first processing processor 1513a transmits the packet P9, and subsequently processes the packet p13.
  • the second processing processor 15 13 b since the second processing processor 15 13 b has the transmission token 1542, it transmits the processed packet P14 and the second reception buffer 15 Release bucket P14 in 1 2b.
  • the third and fourth processing processors 1513c and 1513d transmit the knockets P15 and P16, respectively.
  • the first processing processor 1513a transmits the note P13.
  • the transmission token 1 5 4 2 circulates, and the order of the first processing processor ⁇ the second processing processor ⁇ the third processing processor—the fourth processing processor—the first processing processor ⁇ . To send. Also, since there is no number in the packet itself that can identify the input order, the number of the packet h stored in the receive buffer 1512 is determined by each processor 1513 side.
  • the bucket order is P14 ⁇ P15 ⁇ P16 ⁇ P13. Even in this case, it is preferable to transmit the packets P13 in an appropriate order.
  • Patent Document 1 below is disclosed.
  • Patent Document 1
  • An object of the present invention is to provide a communication technique capable of preventing the order inversion of a transmission bucket with a simplified configuration.
  • a communication device including a plurality of processor units, wherein each processor unit includes a buffer for buffering a packet, a reception processor, and a transmission processor.
  • each processor unit includes a buffer for buffering a packet, a reception processor, and a transmission processor.
  • the receiving processor receives the received token, it receives the packet from the outside, buffers the received packet in a buffer, and passes the received token to another processor unit for circulation.
  • the transmission token Upon receiving the transmission token, the transmission token transmits the packet in the buffer to the outside, and passes the transmission token to another processor unit for circulation.
  • the receiving processor When the receiving processor receives the receiving token, it If the packet is free, the received packet is buffered in a buffer.If the buffer is not free, the received packet is discarded, the number of discarded packets is incremented, and the received token is transmitted to another processor. Pass to.
  • the transmission processor transmits the packets to the outside in the order of the received packets based on the counted number of discarded packets.
  • each processor unit counts the number of discarded packets and transmits a packet based on the number of discarded packets, so that even when a received packet is discarded due to a congestion state, transmission is performed. Bucket order reversal can be prevented. Also, there is no need to consider the state of other processor units, etc., so that the transmission bucket order can be prevented from being reversed with a simple configuration, and the influence on the processing capability of the communication device can be minimized.
  • FIG. 1 is a block diagram showing a configuration example of a router which is a communication device according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating a configuration example of the input processor according to the present embodiment.
  • FIG. 3 is a diagram illustrating a first processing example of the input processor.
  • FIG. 4 is a diagram illustrating a first processing example of the input processor.
  • FIG. 5 is a diagram illustrating a first processing example of the input processor.
  • FIG. 6 is a diagram illustrating a first processing example of the input processor.
  • FIG. 7 is a diagram illustrating a first processing example of the input processor.
  • FIG. 8 is a diagram illustrating a first processing example of the input processor.
  • FIG. 9 is a diagram illustrating a second processing example of the input processor.
  • FIG. 10 is a diagram illustrating a second processing example of the input processor.
  • FIG. 11 is a diagram illustrating a third processing example of the input processor.
  • FIG. 12 is a diagram illustrating a third processing example of the input processor.
  • FIG. 13 is a diagram illustrating a third processing example of the input processor.
  • FIG. 14 is a flowchart showing the processing procedure of the input processor.
  • FIG. 15 is a diagram showing a configuration of an input processor according to the related art.
  • FIG. 16 is a diagram illustrating a processing example of the input processor according to the related art.
  • FIG. 17 is a diagram illustrating a processing example of the input processor according to the related art.
  • FIG. 18 is a diagram illustrating a processing example of the input processor according to the related art.
  • FIG. 19 is a diagram illustrating a processing example of the input processor according to the related art.
  • FIG. 20 is a diagram illustrating a processing example of the input processor according to the related art.
  • FIG. 1 shows a configuration example of a router as a communication device according to an embodiment of the present invention.
  • the router 100 has, for example, an input processor 101 and output processors 102 and 103.
  • the input processor 101 inputs a packet 110 having a MAC (media access control) frame, analyzes the address of the packet, and outputs the packet 111 in an appropriate order.
  • the output processors 102 and 103 receive the packet 111 transmitted by the input processor 101, respectively, and according to the analyzed address, the packets 112 and 1 respectively. Outputs 1 and 3. That is, in order to transmit the bucket to an appropriate destination according to the address, the bucket 112 is output to the first port or the bucket 113 is output to the second port.
  • Buckets 112 and 113 are packets having a MAC frame. In this way, the router 100 controls the output destination of the packet according to the end address.
  • FIG. 2 shows a configuration example of the input processor (communication device) 101 described above.
  • first to fourth processor units 201 to 204 are connected in parallel, a packet 231 is input, and a packet 232 is output.
  • the first processor unit 201 includes a first reception processor 211a, a first reception buffer 211a, and a first processing processor 211a.
  • the second processor unit 202 has a second receiving processor 2 lib, a second receiving buffer 2 12 b, and a second processing processor 2 13 b.
  • the third processor unit 203 has a third receiving processor 211c, a third receiving buffer 211c and a third processing processor 211c.
  • the fourth processor unit 204 has a fourth receiving processor 211d, a fourth receiving buffer 211d and a fourth processing processor 211d.
  • the first to fourth receiving processors 2 11 a to 2 11 d receive individual or all of them, and the first to fourth receiving buffers 2 1 2 a to 2 1 2 d Each or all of them are referred to as a reception buffer 2 12, and the first to fourth processing processors 2 13 a to 2 13 d are individually or entirely referred to as a processing processor (transmission processor) 2 13.
  • the receiving processor 211 has a discard bucket counter 221. Further, the processor 2 13 has an idle counter 2 22 and a discarded packet counter 2 23.
  • the main function of the reception processor 211 is to receive a packet.
  • the main function of the processor 2113 is to process received packets and transmit packets.
  • the reception buffer 211 has an interface function between the reception processor 211 and the processing processor 211, and has, for example, a buffering capacity of two buckets.
  • the reception token 2441 and the transmission token 2442 circulate between the processor cuts 201 to 204 asynchronously.
  • the receiving processor 2 1 1 receives the receiving bucket 2 3 1 and passes the receiving token 2 4 1 to the next processor unit.
  • the processing processor 213 transmits the transmission packet 232, and passes the transmission token 242 to the next processor unit.
  • the receiving processor 2 1 1 When the packet 2 3 1 is input, the receiving processor 2 1 1 having the receiving token 2 4 1 receives the bucket 2 3 1, and the received bucket is stored in the receiving buffer 2 1 2. .
  • the processor 2 13 knows that the packet has been stored in the receive buffer 2 12, it starts processing the packet, and if it has the transmit token 2 4 2, it transmits the packet. Then, upon completion of the processing, the receiving buffer 211 is released.
  • the first reception processor 211a having the reception token 241 receives the packet P1. Then, the received token is stored in the first reception buffer 211a, and the reception token 241 is passed to the second reception processor 211b.
  • the second receiving processor 2 1 1 b having the receiving token 2 4 1 receives the bucket P 2, stores it in the receiving buffer 2 1 2 b, and receives the receiving token 2 4 1 Pass to processor 2 1 1 c.
  • the third and fourth receiving processors 211c and 211d receive the packets P3 and P4, respectively, and store them in the receiving buffers 21c and 21d, respectively.
  • the receiving token 24 1 is circulated in the order of the third receiving processor 2 1 1 c ⁇ the fourth receiving processor 2 1 1 d ⁇ the first receiving processor 2 1 1 a.
  • the first to fourth receiving processors 21 1 a to 21 d receive the buckets P 5 to P 8 and store them in the receiving buffers 21 a to 21 d, respectively. .
  • the first receive buffer 2 12 a stores packets P 1 and P 5
  • the second receive buffer 21 2 b stores buckets P 2 and P 6
  • the third receive buffer 2 1 2 c Stores packets P3 and P7
  • the fourth reception buffer 211d stores buckets P4 and P8.
  • the first processing processor 2 1 3 a is the first reception buffer 2 1
  • the second processing processor 2 1 3 b processes the bucket P 2 in the second reception buffer 21 2 b
  • the first processing processor 2 1 3a sends the transmission token 2
  • the first processing processor 21a Since it has 42, it transmits the processed packet P1, and releases the packet P1 in the first reception buffer 2 1 2a. Thereafter, the first processing processor 21a passes the transmission token 242 to the second processing processor 21b, and processes the packet P5 in the first reception buffer 21a.
  • the first reception processor 21 1 a having the reception token 24 1 receives the bucket P 9 and outputs the first reception buffer 2 1 2a and passes the received token 24 1 to the second receiving processor 2 1 1b.
  • the second receiving processor 211b holding the receiving token 241 receives the bucket P10, but since the receiving buffer 211b is full, the packet P110 is received.
  • the third and fourth receiving processors 2 1 1 c and 2 1 1 d transmit packets P 11 and P 1 2 since the receiving buffers 2 1 2 c and 2 1 2 d are full.
  • discard The packet counter 221 is incremented.
  • the value of the discarded packet counter 221 of the second to fourth reception processors 2 1 1 b to 2 1 1 d is “1 j”.
  • the second processing processor 2 13 b transmits the processed packet P 2 because it has the transmission token 2 42, and the second reception buffer 2 1 2 b Release bucket P2 in.
  • the second processing processor 2 13 b passes the transmission token 242 to the third processing processor 2 13 c, and processes the bucket P6 in the second reception buffer 2 12 b.
  • the third and fourth processing processors 21c and 21d transmit buckets P3 and P4, respectively, and subsequently process packets P7 and P8.
  • the first processing processor 2 13 a transmits the packet P5, and subsequently processes the packet P9.
  • the first reception processor 21 1a having the reception token 24 1 receives the bucket P 13 and performs the first reception.
  • the second to fourth receiving processors 21b to 21d receive the packets P14 to P16, respectively, and store them in the receiving buffers 21b to 21d.
  • the second to fourth reception buffers 2 1 2 b to 2 12 d store the packets P 14 to P 16 and the second to fourth reception processors 21 1 b to 21 d. Stores the value “1” of the discard bucket counter 2 2 1.
  • the second processing processor 2 13 b since the second processing processor 2 13 b has the transmission token 242, it transmits the processed packet P 6 and the second reception buffer 2 1 2 b Release bucket P6 inside. Thereafter, the second processing processor 2 13 b processes the bucket P 14 in the second reception buffer 211 b and also discards the bucket counter value “1” in the reception buffer 211 b. Set to discard packet counter 2 2 3. Next, similarly, the third and fourth processing processors 21c and 21d transmit packets P7 and P8, respectively, followed by the packets P15 and P16. And the discarded packet counter value “1” in the reception buffers 2 1 2c and 2 1 2d is set in the discarded packet counter 223.
  • the first processing processor 213a transmits the packet P9, and subsequently processes the packet P13.
  • the second processor 2 13 b has the transmission token 2 42, but the value of the discarded packet counter 2 23 is “1” and the idle counter 2 23 Since the value of 2 2 2 is larger than “0”, the discarded packet counter 2 2 3 is decremented (1 1) without transmitting the packet, and the transmission token 2 4 2 is sent to the third processing processor 2 1 3 c Pass to.
  • the third and fourth processing processors 2 13 c and 2 13 d decrement the discard bucket counter 2 23 without transmitting the packet, respectively, and transmit token 2 4 2 Is passed to the next processor 2 13.
  • the first processing processor 2 13 a transmits the bucket P 13 and passes the transmission token 2 42 to the second processing processor 2 13 b.
  • the second processing processor 2 13 b determines that the value of the discarded packet counter 2 23 is “0” and the value of the idle power counter 2 22 is “0” or less. Therefore, the packets P15 and P16 are transmitted, and the packets P15 and P16 in the reception buffers 21c and 21d are released.
  • the discarded packet counter 221 is incremented, and then, when the received packet is stored in the receiving buffer 211, the discarded packet counter is simultaneously set.
  • the processor 2 13 can recognize how many packets have been discarded before receiving the current bucket.
  • each processing processor idles the transmission token by the number of discard bucket counters, and discards the discarded packets. By treating the packet as if it had been processed and transmitted, it is possible to avoid order inversion.
  • the idle counter 222 is not always necessary.
  • the processing processor 2 13 receives the transmission token 2 42, the processing processor 2 13 If the counter 2 23 is 0, the packet in the receive buffer 212 is transmitted. If the discarded packet counter 222 is 1 or more, the packet is not transmitted and the discard bucket counter is decremented. Pass to the processing processor 2 1 3.
  • the idle state refers to a state in which there is no packet input after the input of the packets P1 to P8. More specifically, when the processor 2 13 receives the transmission token 24 2, the reception buffer 2 12 is empty.
  • the first receiving processor 211a having the receiving token 2241 sends the bucket It receives Q1, stores it in the first receive buffer 2 1 2a, and passes the receive token 2 4 1 to the second receive processor 2 1 1b.
  • the second to fourth reception processors 2 11 b to 2 1 Id receive buckets Q 2 to Q 4, respectively, and store them in the reception buffers 21 2 b to 2 12 d
  • the second to fourth receiving processors 2 1 1 b to 2 11 1 d discard bucket counter 2 2 1
  • the value “1” is received by the receiving buffer 2 1
  • the first to fourth receiving processors 21a to 21d receive the packets Q5 to Q8, respectively, and store them in the receiving buffers 21a to 21d.
  • the first receive buffer 2 12 a stores packets Q 1 and Q 5
  • the second receive buffer 2 12 b stores buckets Q 2 and Q 6
  • the third receive buffer 2 1 2 c Stores packets Q3 and Q7
  • the fourth reception buffer 211d stores packets Q4 and Q8.
  • the first processing processor 2 13 a processes the packet Q 1 in the first reception buffer 2 1 2 a 1.
  • the second processing processor 2 13 b processes the bucket Q 2 in the second reception buffer 2 1 2 b and, at the same time, discards the bucket counter value in the reception buffer 2 1 2 b. “1” is set in the discarded packet counter 2 2 3.
  • 3 c and 2 13 d process the packets Q 3 and Q 4 of the receive buffers 2 1 2 c and 2 1 2 d, respectively, and the corresponding receive buffers 2 1 2 c and 2 1 Set the discarded packet counter value “1” in 2 d to discarded packet counter 2 2 3
  • the first processor 2 13 a sends packet Q 1, releases bucket Q 1 of receive buffer 2 1 2 a, and releases the next bucket Q 5 in receive buffer 2 1 2 a. To process.
  • the discard packet counter 2 23 is decremented without transmitting the packet, and the transmission token 2 42 is then c pass to the third processor 2 1 3 c, similarly, third and fourth processor 2 1 3 c and 2 1 3 d is discarded packet counter 2 2 3 is "1" Therefore, the packet discard counter 2 23 is decremented without transmitting the packet, and the transmission token 2 42 is passed next.
  • the discard bucket counter 2 23 in the second to fourth processors 2 13 b to 2 13 d becomes “0”.
  • the first processing processor 2 13 a transmits the bucket Q 5 and releases the packet Q 5 of the reception buffer 2 12 a.
  • the second processor 2113b transmits the packet Q2, and releases the packet Q2 in the reception buffer 211b.
  • the 213c and 213d send the note Q3 and Q4, respectively, and then process the packets Q7 and Q8.
  • the next processing is performed even if the idle state is interposed.
  • the first packet Q2 to Q4 passed to the processor 213 has the value "1" of the discard bucket counter 223 added thereto, which causes the packet order to be reversed. That is, the packet order is Q5 ⁇ Q2 ⁇ Q3 ⁇ Q4.
  • the processing processor 2 13 increments the idle power counter 2 2 by determining that the reception buffer 2 12 is idle when the reception buffer 2 1 2 is empty. Then, the transmission token is passed to the next processing processor 2 13.
  • the processing processors 2 13 a to 2 13 d "N" is set in the idle power center 2 2 2.
  • N J is, for example, a value of 1 or more.
  • the first receiving processor 211a having the receiving token 241 receives the bucket Q1 and performs the first receiving.
  • the received token is stored in the buffer 2 1 2 a and the reception token 2 4 1 ′ is passed to the second reception processor 2 1 1 b.
  • the second to fourth receiving processors 2 llb to 21 d receive the buckets Q 2 to Q 4, respectively, store them in the buffers 2 12 b to 2 12 d, and discard them.
  • the discard bucket counter 221 is reset to zero.
  • the first to fourth receiving processors 21a to 21d receive the buckets Q5 to Q8, respectively, and store them in the receiving buffers 21a to 21d.
  • the first receive buffer 2 12 a stores packets Q 1 and Q 5
  • the second receive buffer 2 12 b stores buckets Q 2 and Q 6
  • the third receive buffer 2 1 2 c stores packets Q 3 and Q 7
  • fourth receive buffer 2 12 d stores packets Q 4 and Q 8.
  • the first processing processor 2 13 a processes the bucket Q 1 in the first reception buffer 2 12 a.
  • the second processing processor 2 1 3 b processes the packet Q 2 in the second reception buffer 2 1 2 b and, at the same time, discards the packet discard value in the corresponding reception buffer 2 1 2 b “ Set “1” to the discarded packet counter 2 2 3.
  • the third and fourth processing processors 2 13 c and 2 13 d process the packets Q 3 and Q 4 in the reception buffers 2 12 c and 2 12 d, respectively.
  • the discard packet counter value “1” in the corresponding receive buffers 2 1 2 c and 2 12 d is set to the discard packet counter 2 23 c.
  • the processing processor 2 13 a transmits the bucket Q 1.
  • the second processor 2 1 3 b since waste bucket preparative counter 2 2 3 value "1" is in idle counter 2 2 2 value gamma eta "hereinafter transmits a packet Q 2,
  • the transmission token 24 2 is passed to the third processor 2 13 c.
  • the third and fourth processing processors 2 13 c and 2 13 d determine that the value “1” of the discarded packet counter 2 23 is less than or equal to the value “nj” of the idle counter 2 22. Since there are, packets Q 3 and Q 4 are transmitted, and the transmission token 242 is passed next.
  • the first to fourth processing processors 2 13 a to 2 13 d reset the idle counter 22 2 and the discarded packet counter 2 23 to 0. Reset to.
  • the first processor 2 13 a releases the packet Q 1 in the reception buffer 2 12 a and processes the packet Q 5.
  • the second processing processor 2 13 b releases the packet Q 2 in the reception buffer 2 12 b and processes the packet Q 6.
  • the third and fourth processing processors 2 13 c and 2 13 d release the buckets Q 3 and Q 4 in the receiving buffers 2 12 c and 2 12 d, and the buckets Q 7 and Q 8 Process. Thereafter, packets Q 5, Q 6, Q 7 and Q 8 are transmitted in order.
  • the processing processor 2 13 when the processing processor 2 13 receives the transmission token, if there is no bucket in the reception buffer 2 12, the processing processor 2 13 increments the idle counter 2 2 and sends it to the other processing processors 2 13. Pass the transmission token, and if there is a packet in the reception buffer 212, send the bucket in the reception buffer 212 when the discard bucket counter 222 is less than the idle power counter 222, and Reset the dollar power center 2 2 2
  • the transmission processor 2 13 decrements the discarded packet counter 2 2 3 without transmitting the packet in the reception buffer 2 1 2.
  • the transmission token is passed to the other processing processors 2 1 and 3. As a result, after the last packet P10 to P12 of the continuous packet is discarded, the packet enters the idle state, and the bucket is transmitted in an appropriate order even if the buckets Q1 to Q8 are input. can do.
  • FIG. 14 is a flowchart showing a processing procedure of the input processor (communication device) 101 according to the embodiment of the present invention.
  • step S1401 it is checked whether a bucket has been received. Specifically, the processor checks whether there is a bucket in the reception buffer. If there is a bucket in the reception buffer, the flow proceeds to step S1405, and if there is no bucket, the flow proceeds to step S1402. Note that the receiving processor stores the bucket in the receiving buffer if the receiving buffer is free, and discards the packet if the receiving buffer is not free.
  • step S1402 it is checked whether or not the transmission token is owned. If not, the process returns to step S1401, and if it is, step S14. Go to 0 3. In step S1403, the transmission token is released and passed to the next processing processor. Next, in step S144, the idle force counter is incremented. Thereafter, the flow returns to step S1401.
  • step S1405 a reception bucket process is performed. That is, the transmission processor performs packet processing in the reception buffer. For example, the address of the packet is analyzed to determine the destination.
  • step S1406 it is checked whether or not the user has the transmission token. If not, wait. If yes, go to step S 1407.
  • step S 1407 a condition is checked to determine whether the discard bucket counter is less than or equal to the idle counter. If the condition is not satisfied, the process proceeds to step S1408. If the condition is satisfied, the process proceeds to step S140.
  • step S1408 the transmission token is released and passed to the next processing processor.
  • step S1409 the discarded packet counter is decremented. Thereafter, the flow returns to step S1406.
  • step S 1410 the processing processor performs a packet transmission process.
  • step S1411 the transmission token is released and passed to the next processor.
  • step S1412 the idle force counter is reset to zero. This is the end of the process. Such a process is repeatedly performed.
  • high-speed packet processing is performed in a multiprocessor system (such as a network processor), particularly using a token.
  • a multiprocessor system such as a network processor
  • the receiving buffer buffers the received packet when the receiving buffer is free, and discards the received packet when the receiving buffer is not free. Increment the number of discarded buckets and pass the received token to another receiving processor.
  • the processing processor transmits the packets to the outside in the order of the received buckets based on the counted number of discarded buckets.
  • the processing processor increments the idle number and passes the transmission token to another processing processor, and if there is a bucket in the reception buffer, the processing packet is discarded. Numbers and eyes The packet in the receiving buffer is transmitted according to the dollar number.
  • the discarded packet can be requested by the upper layer software for retransmission, and the discarded packet can be recovered. Further, the present embodiment is not limited to the above-described number of processors and the like, but can be implemented in various multiprocessor systems operating under token control.
  • each processor unit counts the number of discarded packets and transmits a packet based on the number of discarded packets, so that even when a received packet is discarded due to a congestion state, transmission is performed. Packet order inversion can be prevented. Also, there is no need to consider the state of other processor units, etc., and it is possible to prevent the transmission packet order from being reversed with a simple configuration and to minimize the influence on the processing capability of the communication device.

Description

明 細 書
通信装置及ぴ通信方法 技術分野
本発明は、 通信技術に関し、 特に複数のプロセッサユニットがトークンを用い てバケツトを通信する技術に関する。 背景技術
高速なパケッ ト (Gigabit Ether 等) を処理する為に、 複数のプロセッサを用 いて、 互いに並列処理させる事により処理の高速化を図っている。 又、 その複数 プロセッサ間でトークンを用いる事によって、 複数プロセッサ間での負荷分散、 処理高速化及びバケツト順序整合を実現している。
図 1 5は、 従来技術によるマルチプロセッサシステムによる通信装置を示す。 この通信装置は、 第 1〜第 4のプロセッサュニット 1 5 0 1〜 1 5 04が並列に 接続され、 パケット 1 5 3 1を入力し、 バケツト 1 5 3 2を出力する。 第 1のプ 口セッサユニッ ト 1 5 0 1は、 第 1の受信プロセッサ 1 5 1 1 a、 第 1の受信バ ッファ 1 5 1 2 a及び第 1の処理プロセッサ 1 5 1 3 aを有する。 第 2のプロセ ッサュニッ ト 1 5 0 2は、 第 2の受信プロセッサ 1 5 1 1 b、 第' 2の受信バッフ ァ 1 5 1 2 b及び第 2の処理プロセッサ 1 5 1 3 bを有する。 第 3のプロセッサ ユニッ ト 1 5 0 3は、 第 3の受信プロセッサ 1 5 1 1 c、 第 3の受信バッファ 1 5 1 2 c及び第 3の処理プロセッサ 1 5 1 3 cを有する。 第 4のプロセッサュニ ット 1 5 ◦ 4は、 第 4の受信プロセッサ 1 5 1 1 d、 第 4の受信バッファ 1 5 1
2 d及ぴ第 4の処理プロセッサ 1 5 1 3 dを有する。
以下、 第 1〜第 4の受信プロセッサ 1 5 1 1 a〜 1 5 1 1 dの個々又はすベて を受信プロセッサ 1 5 1 1、 第 1〜第 4の受信バッファ 1 5 1 2 a〜 1 5 1 2 d の個々又はすベてを受信バッファ 1 5 1 2、 第 1〜第 4の処理プロセッサ 1 5 1
3 a〜 1 5 1 3 dの個々又はすベてを処理プロセッサ 1 5 1 3という。
受信プロセッサ 1 5 1 1は、 パケットの受信を主機能とする。 処理プロセッサ 1 5 1 3は、 受信されたバケツトの処理やバケツ ト送信を主機能とする。 受信パ ッファ 1 5 1 2は、 受信プロセッサ 1 5 1 1及び処理プロセッサ 1 5 1 3間のィ ンタフヱース機能を有し、 例えば 2個のバケツ ト分のバッファリング容量を有す る。
受信トークン 1 5 4 1及ぴ送信トークン 1 5 4 2は、 非同期にプロセッサュニ ット 1 5 0 1〜 1 5 0 4間を巡回している。 受信プロセッサ 1 5 1 1は、 受信ト 一クン 1 5 4 1を受け取ると、 受信バケツト 1 5 3 1を受信し、 受信トークン 1 5 4 1を次のプロセッサュニットに渡す。 処理プロセッサ 1 5 1 3は、 送信トー クン 1 5 4 2を受け取ると、 送信バケツト 1 5 3 2を送信し、 送信トークン 1 5 4 2を次のプロセッサュニッ トに渡す。
動作の流れとしては、 パケット 1 5 3 1が入力されると、 受信トークン 1 5 4 1を所持している受信プロセッサ 1 5 1 1がバケツト 1 5 3 1を受信し、 受信さ れたパケットは受信バッファ 1 5 1 2へ格納される。 処理プロセッサ 1 5 1 3は、 受信バッファ 1 5 1 2にパケットが格納された事を知ると、 そのバケツトに対し て処理を開始し、 送信トークン 1 5 4 2を所持していればパケット送信して、 処 理終了時に受信バッファ 1 5 1 2を解放する。
上記は、 理想的な処理の流れであるが、 昨今の通信の高速化や、 搭載機能の複 雑化によって必ずしも上記の処理が守られるとは限らない。 パケットが入力され、 受信バッファ 1 5 1 2がパケットを受信しようとするが、 処理プロセッサ 1 5 1 3が輻輳状態で受信バッファ 1 5 1 2の解 ¾がバケツト入力に間に合わない様な 過負荷が掛かった場合、 パケットは受信出来ない。 すなわち、 パケットが廃棄さ れる事になる。
ネットワークプロセッサ等では、 処理プロセッサ 1 5 1 3はプログラマブルで あり、 プログラマが任意のプログラムで構成することが可能である。 このプログ ラムの規模が大きくなるにつれ、 処理時間が長くなり、 受信バッファ 1 5 1 2の 解放が遅くなり、 パケッ トの廃棄数も増える。 このパケッ トの廃棄が発生する事 によって、 トークンでのパケット順序整合では解決出来ない、 パケットの順序逆 転が起こってしまう。 以下に、 この時の動作を示す。
図 1 6に示すように、 パケット P 1〜P 8が連続で入力された場合、 まず受信 トークン 1 5 4 1を所持している第 1の受信プロセッサ 1 5 1 1 aは、 パケッ ト P 1を受信し、 第 1の受信バッファ 1 5 1 2 aに格納し、 受信トークン 1 54 1 を第 2の受信プロセッサ 1 5 1 1 bに渡す。 次に、 受信トークン 1 541を所持 する第 2の受信プロセッサ 1 5 1 1 bは、 バケツト P 2を受信し、 受信バッファ 1 5 1 2 bに格納し、 受信トークン 1 541を第 3の受信プロセッサ 1 5 1 1 c に渡す。 以降、 第 3の受信プロセッサ 1 5 1 1 c→第 4の受信プロセッサ 1 5 1 1 d→第 1の受信プロセッサ 1 5 1 1 a · ··と受信トークン 1 54 1が巡回され、 パケットが受信される。
これにより、 第 1の受信バッファ 1 5 1 2 aはバケツ ト P 1及ぴ P 5を記憶し、 第 2の受信バッファ 1 5 1 2 bはパケット P 2及び P 6を記憶し、 第 3の受信バ ッファ 1 5 1 2 cはパケッ ト P 3及び P 7を記憶し、 第 4の受信バッファ 1 5 1 2 dはパケット P 4及び P 8を記憶する。 第 1の処理プロセッサ 1 5 1 3 aは第 1の受信バッファ 1 5 1 2 a内のパケット P 1の処理を行い、 第 2の処理プロセ ッサ 1 5 1 3 bは第 2の受信バッファ 1 5 1 2 b内のパケッ ト P 2の処理を行い、 第 3の処理プロセッサ 1 5 1 3 cは第 3の受信バッファ 1 5 1 2 c内のバケツト P 3の処理を行い、 第 4の処理プロセッサ 1 5 1 3 dは第 4の受信バッファ 1 5 1 2 d内のパケット P 4の処理を行う。
次に、 図 1 7に示すように、 第 1の処理プロセッサ 1 5 1 3 aは、 送信トーク ン 1 542を所持しているので、 処理したバケツト P 1を送信し、 第 1の受信バ ッファ 1 5 1 2 a内のパケッ ト P 1を解放する。 その後、 第 1の処理プロセッサ 1 5 1 3 aは、 送信トークン 1 542を第 2の処理プロセッサ 1 5 1 3 cに渡し、 第 1の受信パッファ 1 5 1 2 a内のパケット P 5を処理する。
続いて、 パケット P 9〜P 1 2が連続で入力された場合、 受信トークン 1 54 1を所持している第 1の受信プロセッサ 1 5 1 1 aは、 パケット P 9を受信し、 第 1の受信バッファ 1 5 1 2 aに格納し、 受信トークン 1 54 1を第 2の受信プ 口セッサ 1 5 1 1 bに渡す。 次に、 受信トークン 1 54 1を所持する第 2の受信 プロセッサ 1 5 1 1 bは、 バケツト P 1 0を受信するが、 受信バッファ 1 5 1 2 bがー杯であるので、 パケッ ト P 1 0を廃棄し、 受信トークン 1 54 1を第 3の 受信プロセッサ 1 5 1 1 cに渡す。 同様に、 第 3及ぴ第 4の受信プロセッサ 1 5 1 1 c及ぴ 1·5 1 1 dは、 受信バッファ 1 5 1 2 c及ぴ 1 5 1 2 dがー杯である ので、 パケット P 1 1及び P 1 2を廃棄する。
次に、 図 1 8に示すように、 第 2の処理プロセッサ 1 5 1 3 bは、 送信トーク ン 1 542を所持しているので、 処理したパケット P 2を送信し、 第 2の受信パ ッファ 1 5 1 2 b内のパケッ ト P 2を解放する。 その後、 第 2の処理プロセッサ 1 5 1 3 bは、 送信トークン 1 542を第 3の処理プロセッサ 1 5 1 3 cに渡し、 第 2の受信バッファ 1 5 1 2 b内のバケツト P 6を処理する。 同様に、 第 3及び 第 4の処理プロセッサ 1 5 1 3 c及び 1 5 1 3 dは、 それぞれ、 バケツト P 3及 び P 4を送信し、 続いてパケット P 7及び P 8を処理する。 次に、 第 1の処理プ 口セッサ 1 5 1 3 aは、 パケット P 5を送信し、 続いてバケツト P 9を処理する。 次に、 パケット P 1 3〜P 1 6が連続で入力された場合、 受信トークン 1 54 1を所持している第 1の受信プロセッサ 1 5 1 1 aは、 パケット P 1 3を受信し、 第 1の受信バッファ 1 5 1 2 aに格納し、 受信トークン 1 54 1を第 2の受信プ 口セッサ 1 5 1 1 bに渡す。 同様に、 第 2〜第 4の受信プロセッサ 1 5 1 1 b〜 1 5 1 1 dは、 それぞれ、 パケッ ト P 14〜P 1 6を受信し、 受信バッファ 1 5 1 2 b〜 1 5 1 2 dに格納する。
次に、 図 1 9に示すように、 第 2の処理プロセッサ 1 51 3 bは、 送信トーク ン 1 ·542を所持しているので、 処理したパケット Ρ 6を送信し、 第 2の受信バ ッファ 1 5 1 2 b内のバケツト P 6を解放する。 その後、 第 2の処理プロセッサ 1 5 1 3 bは、 第 2の受信バッファ 1 5 1 2 b内のバケツ ト P 14を処理する。 次に、 同様に、 第 3及び第 4の処理プロセッサ 1 5 1 3 c及ぴ 1 5 1 3 dは、 そ れぞれ、 バケツト P 7及び P 8を送信し、 続いてバケツ ト P 1 5及び P 1 6を処 理する。 次に、 第 1の処理プロセッサ 1 5 1 3 aは、 パケッ ト P 9を送信し、 続 いてパケット p 1 3を処理する。
次に、 図 20に示すように、 第 2の処理プロセッサ 1 5 1 3 bは、 送信トーク ン 1 542を所持しているので、 処理したパケット P 14を送信し、 第 2の受信 バッファ 1 5 1 2 b内のバケツト P 14を解放する。 次に、 同様に、 第 3及び第 4の処理プロセッサ 1 5 1 3 c及び 1 5 1 3 dは、 それぞれ、 ノ ケット P 1 5及 び P 1 6を送信する。 次に、 第 1の処理プロセッサ 1 5 1 3 aは、 ノ ケット P 1 3送信する。 以上のように、 送信トークン 1 5 4 2が巡回し、 第 1の処理プロセッサ→第 2 の処理プロセッサ→第 3の処理プロセッサ—第 4の処理プロセッサ—第 1の処理 プロセッサ→ · · ·の順番で送信を行う。 また、 パケット自体に入力順序が識別 可能な番号等がない為、 受信バッファ 1 5 1 2に格納されているパケッ hが何番 目のパケッ トなのかは、 各処理プロセッサ 1 5 1 3側から知ることは出来ず、 単 純に受信バッファ 1 5 1 2に格納された順に処理を行っている。 そのため、 パケ ット P 1 0〜'P 1 2の廃棄が生ずると、 パケット P 1 3の送信順序が逆転してし まう問題がある。 すなわち、 バケツ ト順序が、 P 1 4→P 1 5→P 1 6→P 1 3 になってしまう。 この場合でも、 パケット P 1 3を適正な順番で送信することが 好ましい。
もし、 パケッ トの順序が逆転したままパケッ ト送信を実施すると、 宛先によつ て正しく受け取れなくなり、 そのリカバリの為に不要なトラフィックの増大にも 繋がる。 また、 プロセッサの処理能力への影響を最小に抑える必要がある為、 パ ケット順序逆転を回避する方法は極力簡素化する必要がある。
また、 下記の特許文献 1が開示されている。
特許文献 1
特開平 9 - 1 6 2 9 2 7号公報 発明の開示
本発明の目的は、 簡素化した構成で送信バケツトの順序逆転を防止することが できる通信技術を提供することである。
本発明の一観点によれば、 複数のプロセッサュニットを有する通信装置であつ て、 各プロセッサュニットは、 パケットをバッファリングするためのバッファと、 受信プロセッサと、 送信プロセッサとを有する通信装置が提供される。 受信プロ セッサは、 受信トークンを受け取ると、 外部からパケットを受信し、 受信したパ ケットをバッファにバッファリングし、 他のプロセッサュ二ットに受信トークン を渡して巡回させる。 送信トークンは、 送信トークンを受け取ると、 バッファ内 のパケットを外部に送信し、 他のプロセッサュニットに送信トークンを渡して巡 回させる。 また、 受信プロセッサは、 受信トークンを受け取ったときに、 バッフ ァが空いているときには受信したバケツトをバッファにバッファリングし、 ノ ッ ファが空いていないときには受信したパケットを廃棄して廃棄パケッ ト数をィン クリメントし、 受信トークンを他のプロセッサュ-ットに渡す。 送信プロセッサ は、 カウントした廃棄パケット数を基に受信したバケツトの順番でパケッ トを外 部に送信する。
本発明によれば、 各プロセッサユニットが、 廃棄パケッ ト数をカウントし、 そ の廃棄バケツ ト数を基にバケツトを送信することにより、 輻輳状態により受信パ ケットが廃棄された場合にも、 送信バケツト順序逆転を防止することができる。 また、 他のプロセッサユニットの状態等を考慮する必要がなく、 簡単な構成で送 信バケツト順序逆転を防止することができ、 通信装置の処理能力への影響を最小 限に留めることができる。 図面の簡単な説明
図 1は、 本発明の実施形態による通信装置であるルータの構成例を示すプロッ ク図である。
図 2は、 本実施形態による入力プロセッサの構成例を示す図である。
図 3は、 入力プロセッサの第 1の処理例を示す図である。
図 4は、 入力プロセッサの第 1の処理例を示す図である。
図 5は、 入力プロセッサの第 1の処理例を示す図である。
図 6は、 入力プロセッサの第 1の処理例を示す図である。
図 7は、 入力プロセッサの第 1の処理例を示す図である。
図 8は、 入力プロセッサの第 1の処理例を示す図である。
図 9は、 入力プロセッサの第 2の処理例を示す図である。
図 1 0は、 入力プロセッサの第 2の処理例を示す図である。
図 1 1は、 入力プロセッサの第 3の処理例を示す図である。
図 1 2は、 入力プロセッサの第 3の処理例を示す図である。
図 1 3は、 入力プロセッサの第 3の処理例を示す図である。
図 1 4は、 入力プロセッサの処理手順を示すフローチヤ一トである。
図 1 5は、 従来技術による入力プロセッサの構成を示す図である。 図 1 6は、 従来技術による入力プロセッサの処理例を示す図である。
図 1 7は、 従来技術による入力プロセッサの処理例を示す図である。
図 1 8は、 従来技術による入力プロセッサの処理例を示す図である。
図 1 9は、 従来技術による入力プロセッサの処理例を示す図である。
図 2 0は、 従来技術による入力プロセッサの処理例を示す図である。 発明を実施するための最良の形態
図 1は、 本発明の実施形態による通信装置であるルータの構成例を示す。 ルー タ 1 0 0は、 例えば入力プロセッサ 1 0 1及び出力プロセッサ 1 0 2 , 1 0 3を 有する。 入力プロセッサ 1 0 1は、 MAC (media access control)フレームを有 するパケッ ト 1 1 0を入力し、 パケットのア ドレスを解析し、 適切な順序でパケ ット 1 1 1を出力する。 出力プロセッサ 1 0 2及ぴ 1 0 3は、 それぞれ、 入力プ 口セッサ 1 0 1により送信されたパケット 1 1 1を受信し、 上記の解析されたァ ドレスに応じて、 パケット 1 1 2及び 1 1 3を出力する。 すなわち、 ァドレスに 応じて適切な宛先にバケツトを送信するため、 バケツト 1 1 2を第 1のポートに 出力又はバケツト 1 1 3を第 2のポートに出力する。 バケツト 1 1 2及ぴ 1 1 3 は、 MACフレームを有するパケットである。 このように、 ルータ 1 0 0は、 了 ドレスに応じて、 パケットの出力先を制御する。
図 2は、 上記の入力プロセッサ (通信装置) 1 0 1の構成例を示す。 この入力 プロセッサは、 第 1〜第 4のプロセッサュニット 2 0 1〜 2 04が並列に接続さ れ、 パケッ ト 2 3 1を入力し、 パケッ ト 2 3 2を出力する。 第 1のプロセッサュ ニッ ト 2 0 1は、 第 1の受信プロセッサ 2 1 1 a、 第 1の受信バッファ 2 1 2 a 及ぴ第 1の処理プロセッサ 2 1 3 aを有する。 第 2のプロセッサユニッ ト 2 0 2 は、 第 2の受信プロセッサ 2 l i b , 第 2の受信バッファ 2 1 2 b及ぴ第 2の処 理プロセッサ 2 1 3 bを有する。 第 3のプロセッサユニット 2 0 3は、 第 3の受 信プロセッサ 2 1 1 c、 第 3の受信バッファ 2 1 2 c及び第 3の処理プロセッサ 2 1 3 cを有する。 第 4のプロセッサュニット 2 0 4は、 第 4の受信プロセッサ 2 1 1 d、 第 4の受信バッファ 2 1 2 d及ぴ第 4の処理プロセッサ 2 1 3 dを有 する。 以下、 第 1〜第 4の受信プロセッサ 2 1 1 a〜2 1 1 dの個々又はすベてを受 信プロセッサ 2 1 1、 第 1〜第 4の受信バッファ 2 1 2 a〜2 1 2 dの個々又は すべてを受信バッファ 2 1 2、 第 1〜第 4の処理プロセッサ 2 1 3 a〜 2 1 3 d の個々又はすベてを処理プロセッサ (送信プロセッサ) 2 1 3という。
さらに、 受信プロセッサ 2 1 1は、 廃棄バケツ トカウンタ 2 2 1を有する。 ま た、 処理プロセッサ 2 1 3は、 アイ ドルカウンタ 2 2 2及び廃棄パケットカウン タ 2 2 3を有する。
受信プロセッサ 2 1 1は、 パケッ トの受信を主機能とする。 処理プロセッサ 2 1 3は、 受信されたバケツ トの処理やパケット送信を主機能とする。 受信バッフ ァ 2 1 2は、 受信プロセッサ 2 1 1及ぴ処理プロセッサ 2 1 3間のインタフヱ一 ス機能を有し、 例えば 2個のバケツト分のバッファリング容量を有する。
受信トークン 2 4 1及び送信トークン 2 4 2は、 非同期にプロセッサュ-ッ ト 2 0 1〜 2 0 4間を巡回している。 受信プロセッサ 2 1 1は、 受信トークン 2 4 1を受け取ると、 受信バケツト 2 3 1を受信し、 受信トークン 2 4 1を次のプロ セッサュニットに渡す。 処理プロセッサ 2 1 3は、 送信トークン 2 4 2を受け取 ると、 送信パケット 2 3 2を送信し、 送信トークン 2 4 2を次のプロセッサュニ ットに渡す。
パケット 2 3 1が入力されると、 受信トークン 2 4 1を所持している受信プロ セッサ 2 1 1がバケツ ト 2 3 1を受信し、 受信されたバケツトは受信バッファ 2 1 2へ格納される。 処理プロセッサ 2 1 3は、 受信バッファ 2 1 2にバケツ トが 格納された事を知ると、 そのパケッ トに対して処理を開始し、 送信トークン 2 4 2を所持していればパケッ ト送信して、 処理終了時に受信バッファ 2 1 2を解放 する。
図 3に示すように、 パケット P 1〜P 8が連続で入力された場合、 まず受信ト 一クン 2 4 1を所持している第 1の受信プロセッサ 2 1 1 aは、 パケット P 1を 受信し、 第 1の受信バッファ 2 1 2 aに格納し、 受信トークン 2 4 1を第 2の受 信プロセッサ 2 1 1 bに渡す。 次に、 受信トークン 2 4 1を所持する第 2の受信 プロセッサ 2 1 1 bは、 バケツ ト P 2を受信し、 受信バッファ 2 1 2 bに格納し、 受信トークン 2 4 1を第 3の受信プロセッサ 2 1 1 cに渡す。 次に、 同様に、 第 3及ぴ第 4の受信プロセッサ 2 1 1 c及ぴ 21 1 dは、 それぞれ、 パケット P 3 及び P 4を受信し、 受信バッファ 2 1 2 c及ぴ 2 1 2 dに格納する。 受信トーク ン 24 1は、 第 3の受信プロセッサ 2 1 1 c→第 4の受信プロセッサ 2 1 1 d→ 第 1の受信プロセッサ 2 1 1 a ···と巡回される。 次に、 第 1〜第 4の受信プロ セッサ 2 1 1 a〜2 1 1 dは、 それぞれバケツ ト P 5〜P 8を受信し、 受信バッ ファ 2 1 2 a〜 2 1 2 dに格納する。
第 1の受信バッファ 2 1 2 aはパケット P 1及び P 5を記憶し、 第 2の受信バ ッファ 21 2 bはバケツト P 2及ぴ P 6を記憶し、 第 3の受信バッファ 2 1 2 c はパケット P 3及ぴ P 7を記憶し、 第 4の受信バッファ 2 1 2 dはバケツト P 4 及ぴ P 8を記憶する。 第 1の処理プロセッサ 2 1 3 aは第 1の受信バッファ 2 1
2 a内のパケット P 1の処理を行い、 第 2の処理プロセッサ 2 1 3 bは第 2の受 信バッファ 21 2 b内のバケツト P 2の処理を行い、 第 3の処理プロセッサ 2 1
3 cは第 3の受信バッファ 2 1 2 c内のバケツト P 3の処理を行い、 第 4の処理 プロセッサ 21 3 dは第 4の受信バッファ 21 2 d内のパケット P 4の処理を行 う
次に、 図 4に示すように、 第 1の処理プロセッサ 2 1 3 aは、 送信トークン 2
42を所持しているので、 処理したパケッ ト P 1を送信し、 第 1の受信バッファ 2 1 2 a内のパケッ ト P 1を解放する。 その後、 第 1の処理プロセッサ 2 1 3 a は、 送信トークン 242を第 2の処理プロセッサ 2 1 3 bに渡し、 第 1の受信バ ッファ 2 1 2 a内のパケッ ト P 5を処理する。
続いて、 パケット P 9〜P 1 2が連続で入力された場合、 受信トークン 24 1 を所持している第 1の受信プロセッサ 21 1 aは、 バケツト P 9を受信し、 第 1 の受信バッファ 2 1 2 aに格納し、 受信トークン 24 1を第 2の受信プロセッサ 2 1 1 bに渡す。 次に、 受信トークン 24 1を所持する第 2の受信プロセッサ 2 1 1 bは、 バケツ ト P 1 0を受信するが、 受信バッファ 2 1 2 bがー杯であるの で、 パケット P 1 0を廃棄して廃棄バケツトカウンタ 2 2 1をインクリメント (+ 1 ) し、 受信トークン 24 1を第 3の受信プロセッサ 2 1 1 cに渡す。 同様 に、 第 3及ぴ第 4の受信プロセッサ 2 1 1 c及び 2 1 1 dは、 受信バッファ 2 1 2 c及び 2 1 2 dがー杯であるので、 パケット P 1 1及ぴ P 1 2を廃棄し、 廃棄 パケットカウンタ 22 1をインクリメントする。 第 2〜第 4の受信プロセッサ 2 1 1 b〜 2 1 1 dの廃棄パケットカウンタ 22 1の値は 「 1 j になる。
次に、 図 5に示すように、 第 2の処理プロセッサ 2 1 3 bは、 送信トークン 2 42を所持しているので、 処理したパケット P 2を送信し、 第 2の受信バッファ 2 1 2 b内のバケツ ト P 2を解放する。 その後、 第 2の処理プロセッサ 2 1 3 b は、 送信トークン 242を第 3の処理プロセッサ 2 1 3 cに渡し、 第 2の受信パ ッファ 2 1 2 b内のバケツト P 6を処理する。 同様に、 第 3及び第 4の処理プロ セッサ 2 1 3 c及ぴ 2 1 3 dは、 それぞれ、 バケツト P 3及び P 4を送信し、 続 いてパケット P 7及び P 8を処理する。 次に、 第 1の処理プロセッサ 2 1 3 aは, パケッ ト P 5を送信し、 続いてパケット P 9を処理する。
次に、 パケット P 1 3〜P 1 6が連続で入力された場合、 受信トークン 24 1 を所持している第 1の受信プロセッサ 21 1 aは、 バケツト P 1 3を受信し、 第 1の受信バッファ 2 1 2 aに格納し、 受信トークン 24 1を第 2の受信プロセッ サ 2 1 1 bに渡す。 同様に、 第 2〜第 4の受信プロセッサ 2 l l b〜2 1 1 dは、 それぞれ、 パケット P 1 4〜P 1 6を受信し、 受信バッファ 2 1 2 b〜2 1 2 d に格納する。 第 2〜第 4の受信バッファ 2 1 2 b〜2 1 2 dは、 パケット P 1 4 〜P 1 6を格納すると共に、 第 2〜第 4の受信プロセッサ 2 1 1 b〜2 1 1 dの 廃棄バケツトカウンタ 2 2 1の値 「 1」 を格納する。
次に、 図 6に示すように、 第 2の処理プロセッサ 2 1 3 bは、 送信トークン 2 42を所持しているので、 処理したパケット P 6を送信し、 第 2の受信バッファ 2 1 2 b内のバケツ ト P 6を解放する。 その後、 第 2の処理プロセッサ 2 1 3 b は、 第 2の受信バッファ 2 1 2 b内のバケツト P 14を処理すると共に、 受信バ ッファ 2 1 2 b内の廃棄バケツトカウンタ値 「 1」 を廃棄パケッ トカウンタ 2 2 3にセットする。 次に、 同様に、 第 3及ぴ第 4の処理プロセッサ 2 1 3 c及び 2 1 3 dは、 それぞれ、 パケッ ト P 7及び P 8を送信し、 続いてバケツト P 1 5及 ぴ P 1 6を処理すると共に、 受信バッファ 2 1 2 c及ぴ 2 1 2 d内の廃棄バケツ トカウンタ値 「 1」 を廃棄パケッ トカウンタ 223にセットする。 次に、 第 1の 処理プロセッサ 21 3 aは、 パケッ ト P 9を送信し、 続いてバケツト P 1 3を処 理する。 次に、 図 7に示すように、 第 2の処理プロセッサ 2 1 3 bは、 送信トークン 2 4 2を所持しているが、 廃棄パケッ トカウンタ 2 2 3の値が 「 1」 でありアイ ド ルカウンタ 2 2 2の値 「0」 よりも大きいので、 パケット送信をせずに廃棄パケ ッ トカウンタ 2 2 3をデクリメント (一 1 ) し、 送信トークン 2 4 2を第 3の処 理プロセッサ 2 1 3 cに渡す。 次に、 同様に、 第 3及び第 4の処理プロセッサ 2 1 3 c及び 2 1 3 dは、 それぞれ、 パケッ ト送信せずに、 廃棄バケツトカウンタ 2 2 3をデクリメントし、 送信トークン 2 4 2を次の処理プロセッサ 2 1 3に渡 す。 次に、 第 1の処理プロセッサ 2 1 3 aは、 バケツト P 1 3送信し、 送信トー クン 2 4 2を第 2の処理プロセッサ 2 1 3 bに渡す。
次に、 図 8に示すように、 第 2の処理プロセッサ 2 1 3 bは、 廃棄パケットカ ゥンタ 2 2 3の値が 「 0」 でありアイ ドル力ゥンタ 2 2 2の値 「 0」 以下である ので、 パケッ ト P 1 4を送信し、 第 2の受信バッファ 2 1 2 bのバケツ ト P 1 4 を解放する。 同様に、 第 3及び第 4の処理プロセッサ 2 1 3 c及び 2 1 3 dは、 廃棄パケッ トカウンタ 2 2 3の値が 「 0」 でありアイ ドル力ゥンタ 2 2 2の値 「0」 以下であるので、 パケット P 1 5及び P 1 6を送信し、 受信バッファ 2 1 2 c及ぴ 2 1 2 dのパケット P 1 5及び P 1 6を解放する。
以上のように、 受信プロセッサ 2 1 1において、 パケット廃棄が発生した場合 に廃棄パケッ トカウンタ 2 2 1をインクリメントしておき、 次に受信バケツトを 受信バッファ 2 1 2に格納する際、 同時に廃棄パケットカウンタも格納しておく ことによって、 処理プロセッサ 2 1 3は現在のバケツト受信以前に幾つのパケッ トが廃棄されたかを認識する事が可能となる。
パケットの廃棄が発生しない状況であれば、 トークンでバケツ ト順序の整合を 取っている以上、 順序逆転の発生はありえない。 廃棄されたパケットは、 本来そ の処理プロセッサで処理されるべきパケットであった事に着目し、 各処理プロセ ッサにて廃棄バケツトカウンタの数だけ送信トークンを空回しし、 廃棄されたパ ケットを、 あたかも処理及ぴ送信したかの如く扱う事で、 順序逆転を回避する事 が可能となる。
上記の場合には、 アイ ドルカウンタ 2 2 2は、 必ずしも必要でない。 処理プロ セッサ 2 1 3は、 送信トークン 2 4 2を受け取ったときに、 廃棄バケツ トカウン タ 2 2 3が 0であれば受信バッファ 2 1 2内のパケットを送信し、 廃棄パケット カウンタ 2 2 3が 1以上であれば送信せずに廃棄バケツトカウンタをデクリメン トし、 送信トークンを次の処理プロセッサ 2 1 3に渡す。
次に、 図 9及び図 1 0を参照しながら、 アイ ドルカウンタ 2 2 2を設けない場 合の問題点を説明する。 図 3及び図 4の処理の後、 アイ ドル状態が生じた場合を 説明する。 ここで、 アイ ドル状態は、 上記のパケッ ト P 1〜P 8の入力後、 パケ ット入力がない状態をいう。 具体的には、 処理プロセッサ 2 1 3が送信トークン 24 2を受け取ったときに、 受信バッファ 2 1 2が空である状態をいう。
上記のアイ ドル状態後、 図 9に示すように、 パケット Q 1〜Q 8が連続で入力 された場合、 受信トークン 2 4 1を所持している第 1の受信プロセッサ 2 1 1 a は、 バケツト Q 1を受信し、 第 1の受信バッファ 2 1 2 aに格納し、 受信トーク ン 2 4 1を第 2の受信プロセッサ 2 1 1 bに渡す。 同様に、 第 2〜第 4の受信プ 口セッサ 2 1 1 b〜 2 1 I dは、 それぞれ、 バケツ ト Q 2〜Q 4を受信し、 受信 バッファ 2 1 2 b〜 2 1 2 dに格納すると共に、 第 2〜第 4の受信プロセッサ 2 1 1 b〜 2 1 1 dの廃棄バケツトカウンタ 2 2 1の値 「1」 を受信バッファ 2 1
2 b〜 2 1 2 dに格納する。 その後、 廃棄パケッ トカウンタ 2 2 1は、 0にリセ ットされる。 次に、 第 1〜第 4の受信プロセッサ 2 l l a〜 2 1 1 dは、 それぞ れパケット Q 5〜Q 8を受信し、 受信バッファ 2 1 2 a〜 2 1 2 dに格納する。 第 1の受信バッファ 2 1 2 aはパケット Q 1及び Q 5を記憶し、 第 2の受信バ ッファ 2 1 2 bはバケツト Q 2及び Q 6を記憶し、 第 3の受信パッファ 2 1 2 c はパケット Q 3及ぴ Q 7を記憶し、 第 4の受信バッファ 2 1 2 dはパケッ ト Q 4 及び Q 8を記憶する。 第 1の処理プロセッサ 2 1 3 aは、 第 1の受信バッファ 2 1 2 a內のパケット Q 1の処理を行う。 次に、 第 2の処理プロセッサ 2 1 3 bは、 第 2の受信バッファ 2 1 2 b内のバケツト Q 2の処理を行うと共に、 それに対応 する受信バッファ 2 1 2 b内の廃棄バケツトカウンタ値 「1」 を廃棄パケットカ ゥンタ 2 2 3にセットする。 次に、 同様に、 第 3及び第 4の処理プロセッサ 2 1
3 c及び 2 1 3 dは、 受信バッファ 2 1 2 c及ぴ 2 1 2 d內のパケッ ト Q 3及ぴ Q 4の処理を行うと共に、 それらに対応する受信バッファ 2 1 2 c及ぴ 2 1 2 d 内の廃棄パケッ トカウンタ値 「 1」 を廃棄パケッ トカウンタ 2 2 3にセッ トする 次に、 第 1の処理プロセッサ 2 1 3 aは、 パケット Q 1を送信し、 受信パッフ ァ 2 1 2 aのバケツト Q 1を解放し、 受信バッファ 2 1 2 a内の次のバケツト Q 5を処理する。 次に、 第 2の処理プロセッサ 2 1 3 bは、 廃棄バケツ トカウンタ 2 2 3カ 「1」 であるので、 パケット送信をせずに廃棄パケットカウンタ 2 2 3 をデクリメントし、 送信トークン 2 4 2を第 3の処理プロセッサ 2 1 3 cに渡す c 次に、 同様に、 第 3及び第 4の処理プロセッサ 2 1 3 c及び 2 1 3 dは、 廃棄パ ケットカウンタ 2 2 3が 「1」 であるので、 パケット送信をせずに廃棄パケット カウンタ 2 2 3をデクリメントし、 送信トークン 2 4 2を次に渡す。 第 2〜第 4 の処理プロセッサ 2 1 3 b〜2 1 3 d内の廃棄バケツトカウンタ 2 2 3は 「0」 になる。
次に、 図 1 0に示すように、 第 1の処理プロセッサ 2 1 3 aは、 バケツト Q 5 を送信し、 受信バッファ 2 1 2 aのパケッ ト Q 5を解放する。 次に、 第 2の処理 プロセッサ 2 1 3 bは、 パケット Q 2を送信し、 受信バッファ 2 1 2 b内のパケ ット Q 2を解放する。 その後、 第 2の処理プロセッサ 2 1 3 bは、 受信バッファ
2 1 2 b内のパケッ ト Q 6を処理する。 同様に、 第 3及ぴ第 4の処理プロセッサ
2 1 3 c及び 2 1 3 dは、 それぞれ、 ノ ケット Q 3及び Q 4を送信し、 続いてパ ケッ ト Q 7及び Q 8を処理する。
以上のように、 連続パケットの最後のパケット P 1 0〜P 1 2が廃棄されてい た場合 (図 4の状態でパケット入力が終わった場合) で、 アイ ドル状態を挟んで も、 次に処理プロセッサ 2 1 3に渡される最初のパケッ ト Q 2〜Q 4には、 廃棄 バケツ トカウンタ 2 2 3の値 「 1」 が付加されて来ている為、 パケット順序逆転 を引き起こしてしまう。 すなわち、 パケット順序が、 Q 5→Q 2→Q 3→Q 4に なってしまう。 このような問題点は、 上記のアイ ドルカウンタ 2 2 2を用いるこ とにより解決することができる。 以下、 その説明を行う。
上記と同様に、 図 3及び図 4の処理の後、 アイ ドル状態が生.じる場合を説明す る。 図 1 1に示すように、 処理プロセッサ 2 1 3は、 送信トークンを受け取った ときに、 受信バッファ 2 1 2が空であるときには、 アイ ドル状態であるとして、 アイ ドル力ゥンタ 2 2 2をインクリメントし、 送信トークンを次の処理プロセッ サ 2 1 3に渡す。 この処理により、 例えば、 処理プロセッサ 2 1 3 a〜 2 1 3 d のアイ ドル力ゥンタ 2 2 2には 「n」 がセットされる。 「n J は、 例えば 1以上 の値とする。
次に、 バケツト Q 1〜Q 8が連続で入力された場合、 受信トークン 24 1を所 持している第 1の受信プロセッサ 2 1 1 aは、 バケツト Q 1を受信し、 第 1の受 信バッファ 2 1 2 aに格納し、 受信トークン 2 4 1'を第 2の受信プロセッサ 2 1 1 bに渡す。 同様に、 第 2〜第 4の受信プロセッサ 2 l l b〜2 1 1 dは、 それ ぞれ、 バケツト Q 2〜Q 4を受信し、 バッファ 2 1 2 b〜 2 1 2 dに格納すると 共に、 廃棄バケツトカウンタ 2 2 1の値 「 1」 を受信バッファ 2 1 2 b〜 2 1 2 dに格納する。 その後、 廃棄バケツトカウンタ 2 2 1は、 0にリセットされる。 次に、 第 1〜第 4の受信プロセッサ 2 l l a〜 2 1 1 dは、 それぞれバケツト Q 5〜Q 8を受信し、 受信バッファ 2 1 2 a〜 2 1 2 dに格納する。
第 1の受信バッファ 2 1 2 aはパケット Q 1及ぴ Q 5を記憶し、 第 2の受信バ ッファ 2 1 2 bはバケツト Q 2及ぴ Q 6を記憶し、 第 3の受信バッファ 2 1 2 c はパケット Q 3及び Q 7を記憶し、 第 4の受信バッファ 2 1 2 dはパケット Q 4 及び Q 8を記憶する。 第 1の処理プロセッサ 2 1 3 aは、 第 1の受信バッファ 2 1 2 a内のバケツト Q 1の処理を行う。 次に、 第 2の処理プロセッサ 2 1 3 bは- 第 2の受信バッファ 2 1 2 b内のパケット Q 2の処理を行うと共に、 それに対応 する受信バッファ 2 1 2 b内の廃棄パケッ トカウンタ値 「 1」 を廃棄パケットカ ゥンタ 2 2 3にセッ トする。 次に、 同様に、 第 3及ぴ第 4の処理プロセッサ 2 1 3 c及び 2 1 3 dは、 受信パッファ 2 1 2 c及び 2 1 2 d内のパケット Q 3及び Q 4の処理を行うと共に、 それらに対応する受信バッファ 2 1 2 c及び 2 1 2 d 内の廃棄バケツ トカウンタ値 「1」 を廃棄パケッ トカウンタ 2 2 3にセットする c 次に、 図 1 2に示すように、 第 1の処理プロセッサ 2 1 3 aは、 バケツ ト Q 1 を送信する。 次に、 第 2の処理プロセッサ 2 1 3 bは、 廃棄バケツトカウンタ 2 2 3の値 「 1」 がアイ ドルカウンタ 2 2 2の値 Γη」 以下であるので、 パケット Q 2を送信し、 送信トークン 24 2を第 3の処理プロセッサ 2 1 3 cに渡す。 次 に、 同様に、 第 3及び第 4の処理プロセッサ 2 1 3 c及ぴ 2 1 3 dは、 廃棄パケ ットカウンタ 2 2 3の値 「1」 がアイ ドルカウンタ 2 2 2の値 「nj 以下である ので、 パケッ ト Q 3及ぴ Q 4を送信し、 送信トークン 24 2を次に渡す。 次に、 図 1 3に示すように、 第 1〜第 4の処理プロセッサ 2 1 3 a 〜 2 1 3 d は、 上記の送信後、 アイ ドルカウンタ 2 2 2及び廃棄パケットカウンタ 2 2 3を 0にリセットする。 その後、 第 1の処理プロセッサ 2 1 3 aは、 受信バッファ 2 1 2 a内のパケット Q 1を解放し、 パケット Q 5を処理する。 第 2の処理プロセ ッサ 2 1 3 bは、 受信バッファ 2 1 2 b内のパケット Q 2を解放し、 パケット Q 6を処理する。 第 3及び第 4の処理プロセッサ 2 1 3 c及び 2 1 3 dは、 受信バ ッファ 2 1 2 c及び 2 1 2 d内のバケツト Q 3及ぴ Q 4を解放し、 バケツト Q 7 及び Q 8を処理する。 その後、 パケット Q 5 , Q 6 , Q 7及ぴ Q 8が順に送信さ れる。
以上のように、 処理プロセッサ 2 1 3は、 送信トークンを受け取ったときに、 受信バッファ 2 1 2内にバケツトがなければアイ ドルカウンタ 2 2 2をインクリ メントして他の処理プロセッサ 2 1 3に送信トークンを渡し、 受信バッファ 2 1 2内にパケッ トがあれば、 廃棄バケツトカウンタ 2 2 3がアイ ドル力ゥンタ 2 2 2以下であるときには受信バッファ 2 1 2内のバケツトを送信し、 アイ ドル力ゥ ンタ 2 2 2をリセットする。 また、 送信プロセッサ 2 1 3は、 廃棄パケットカウ ンタ 2 2 3がアイ ドル力ゥンタ 2 2 2より大きいときには受信バッファ 2 1 2内 のパケットを送信せずに廃棄パケットカウンタ 2 2 3をデクリメントし、 他の処 理プロセッサ 2 1 3に送信トークンを渡す。 これにより、 連続パケットの最後の パケット P 1 0〜 P 1 2が廃棄されていた後、 アイ ドル状態になり、 バケツ ト Q 1 〜Q 8が入力されても、 適切な順序でバケツ トを送信することができる。
図 1 4は、 本発明の実施形態による上記の入力プロセッサ (通信装置) 1 0 1 の処理手順を示すフローチヤ一トである。 ステップ S 1 4 0 1では、 バケツ トを 受信したか否かをチェックする。 具体的には、 処理プロセッサが受信バッファ内 にバケツトがあるか否かをチェックする。 受信バッファ内にバケツトがあればス テツプ S 1 4 0 5へ進み、 バケツトがなければステップ S 1 4 0 2へ進む。 なお、 受信プロセッサは、 受信バッファが空いていればそのバケツトを受信バッファに 格納し、 空いていなければそのパケットを廃棄する。
ステップ S 1 4 0 2では、 送信トークンを所有しているか否かをチェックする 所有していなければステップ S 1 4 0 1へ戻り、 所有していればステップ S 1 4 0 3へ進む。 ステップ S 1 4 0 3では、 送信トークンを解放し、 次の処理プロセ ッサに渡す。 次に、 ステップ S 1 4 0 4では、 アイ ドル力ゥンタをインクリメン トする。 その後、 ステップ S 1 4 0 1へ戻る。
ステップ S 1 4 0 5では、 受信バケツト処理を行う。 すなわち、 送信プロセッ サは、 受信バッファ内のパケット処理を行う。 例えば、 パケットのア ドレス解析 を行い、 宛先を確定する。 次に、 ステップ S 1 4 0 6では、 送信トークンを所有 しているか否かをチェックする。 所有していなければ待機し、 所有していればス テツプ S 1 4 0 7へ進む。
ステップ S 1 4 0 7では、 廃棄バケツトカウンタがアイ ドルカウンタ以下であ るか否かの条件をチェックする。 条件を満たさなければステップ S 1 4 0 8へ進 み、 条件を満たしていればステップ S 1 4 1 0へ進む。
ステップ S 1 4 0 8では、 送信トークンを解放し、 次の処理プロセッサに渡す。 次に、 ステップ S 1 4 0 9では、 廃棄パケットカゥンタをデクリメントする。 そ の後、 ステップ S 1 4 0 6へ戻る。
ステップ S 1 4 1 0では、 処理プロセッサがパケット送信処理を行う。 次に、 ステップ S 1 4 1 1では、 送信トークンを解放し、 次の処理プロセッサに渡す。 次に、 ステップ S 1 4 1 2では、 アイ ドル力ゥンタを 0にリセットする。 以上で、 処理を終了する。 このような処理を繰り返し行う。
本実施形態は、 マルチプロセッサシステム (ネットワークプロセッサ等) にお いて、 特にトークンを用いて高速パケット処理を行うものである。 以上のように、 受信プロセッサは、 受信トークンを受け取ったときに、 受信バッファが空いてい るときには受信したパケッ トを受信パッファにバッファリングし、 受信バッファ が空いていないときには受信したパケットを廃棄して廃棄バケツト数をィンクリ メントし、 受信トークンを他の受信プロセッサに渡す。 処理プロセッサは、 カウ ントした廃棄バケツ ト数を基に上記受信したバケツ トの順番でパケットを外部に 送信する。
また、 処理プロセッサは、 送信トークンを受け取ったときに、 受信バッファ內 にパケットがなければアイ ドル数をィンクリメントして他の処理プロセッサに送 信トークンを渡し、 受信バッファ内にバケツトがあれば廃棄バケツト数及びアイ ドル数に応じて受信バッファ内のパケットを送信する。
本実施形態によれば、 トークンを使用したネットワークプロセッサ等のマルチ プロセッサシステムにおいて、 パケッ トの廃棄による、 パケット順序逆転が発生 し得る状況においても、 これを回避する事が可能であり、 他のプロセッサの状態 等を考慮する必要がなく、 わずかなアルゴリズム追加で実現可能である為、 処理 能力への影響を最小限に留める事が可能である。
なお、 廃棄パケッ トは、 上位階層のソフトウェアが再送要求し、 廃棄パケット をリカバリすることができる。 また、 本実施形態は、 上記のプロセッサ構成数等 に限定されるものではなく、 トークン制御により動作している種々のマルチプロ セッサシステムにおいて実施可能である。
上記実施形態は、 何れも本発明を実施するにあたっての具体化の例を示したも のに過ぎず、 これらによって本発明の技術的範囲が限定的に解釈されてはならな いものである。 すなわち、 本発明はその技術思想、 またはその主要な特徴から逸 脱することなく、 様々な形で実施することができる。 産業上の利用可能性
本発明によれば、 各プロセッサユニットが、 廃棄パケッ ト数をカウントし、 そ の廃棄パケッ ト数を基にバケツトを送信することにより、 輻輳状態により受信パ ケットが廃棄された場合にも、 送信パケット順序逆転を防止することができる。 また、 他のプロセッサユニットの状態等を考慮する必要がなく、 簡単な構成で送 信パケット順序逆転を防止することができ、 通信装置の処理能力への影響を最小 限に留めることができる。

Claims

請 求 の 範 囲
1 . 複数のプロセッサユニットを有する通信装置であって、
各プロセッサュ二ットは、
バケツトをバッファリングするためのバッファと、
受信トークンを受け取ると、 外部からパケッ トを受信し、 受信したパケットを 前記バッファにバッファリングし、 他のプロセッサュニッ トに受信トークンを渡 して巡回させる受信プロセッサと、
送信トークンを受け取ると、 前記バッファ内のパケットを外部に送信し、 他の プロセッサュニットに送信トークンを渡して巡回させる送信プロセッサとを有し、 前贯己受信プロセッサは、 受信トークンを受け取ったときに、 前記バッファが空 いているときには受信したバケツトを前記バッファにバッファリングし、 前記バ ッファが空いていないときには受信したバケツトを廃棄して廃棄パケット数をィ ンクリメントし、 受信トークンを他のプロセッサュニットに渡し、
前記送信プロセッサは、 前記カウントした廃棄パケット数を基に前記受信した バケツトの順番でパケットを外部に送信する通信装置。 _
2 . 前記送信プロセッサは、 送信トークンを受け取ったときに、 前記廃棄バケツ ト数が 0であれば前記バッファ内のバケツ トを送信し、 前記廃棄パケット数が 1 以上であれば送信せずに前記廃棄バケツト数をデクリメン トし、 送信トークンを 他のプロセッサユニットに渡す請求項 1記載の通信装置。
3 . 前記受信プロセッサは、 M A C (media access control)フレームを有するパ ケットを受信する請求項 2記載の通信装置。
4 . 前記送信プロセッサは、 さらに前記バッファ内のパケットのア ドレスを解析 する請求項 3記載の通信装置。
5 . さらに、 前記複数のプロセッサユニットにより送信されたパケットを受信し、 前記解析されたァドレスに応じて、 該受信したパケットを出力するための出力装 置を有する請求項 4記載の通信装置。
6 . 前記送信プロセッサは、 送信トークンを受け取ったときに、 前記バッファ內 にパケットがなければアイ ドル数をィンクリメントして他のプロセッサュニット に送信トークンを渡し、 前記バッファ内にバケツトがあれば前記廃棄パケット数 及ぴ前記アイ ドル数に応じて前記バッファ内のパケットを送信する請求項 1記載 の通信装置。
7 . 前記送信プロセッサは、 前記廃棄パケット数が前記アイ ドル数以下であると きには前記バッファ内のパケットを送信する請求項 6記載の通信装置。
8 . 前記送信プロセッサは、 前記廃棄パケット数が前記アイ ドル数以下であると きには前記バッファ內のバケツトを送信し、 前記アイ ドル数をリセッ トする請求 項 6記載の通信装置。
9 . 前記送信プロセッサは、 前記廃棄パケット数が前記アイ ドル数より大きいと きには前記バッファ内のバケツトを送信せずに前記廃棄パケット数をデクリメン トし、 他のプロセッサュニットに送信トークンを渡す請求項 8記載の通信装置。
1 0 . 前記受信プロセッサは、 M A C (media access control)フレームを有する バケツトを受信する請求項 9記載の通信装置。
1 1 . 前記送信プロセッサは、 さらに前記バッファ内のパケットのア ドレスを解 析する請求項 1 0記載の通信装置。
1 2 . さらに、 前記複数のプロセッサユニットにより送信されたパケットを受信 し、 前記解析されたア ドレスに応じて、 該受信したパケットを出力するための出 力装置を有する請求項 1 1記載の通信装置。
1 3 . 複数のプロセッサュニットを用いる通信方法であって、
各プロセッサユニットが、 受信トークンを受け取ると、 外部からパケットを受 信し、 受信したパケットをバッファにバッファリングし、 他のプロセッサュニッ トに受信トークンを渡して巡回させる受信ステップと、
各プロセッサュニットが、 送信トークンを受け取ると、 バッファ内のパケット を外部に送信し、 他のプロセッサュニットに送信トークンを渡して巡回させる送 信ステップとを有し、
前記受信ステップは、 受信トークンを受け取ったときに、 バッファが空いてい るときには受信したパケットをバッファにバッファリングし、 バッファが空いて いないときには受信したバケツトを廃棄して廃棄バケツト数をインクリメントし、 受信トークンを他のプロセッサュニッ トに渡し、 前記送信ステップは、 前記カウントした廃棄バケツ ト数を基に前記受信したパ ケットの順番でバケツトを外部に送信する通信方法。
1 4 . 前記送信ステップは、 送信トークンを受け取ったときに、 前記廃棄パケッ ト数が 0であればバッファ内のバケツ トを送信し、 前記廃棄パケット数が 1以上 であれば送信せずに前記廃棄バケツト数をデクリメントし、 送信トークンを他の プロセッサュ-ットに渡す請求項 1 3記載の通信方法。
1 5 . 前記受信ステップは、 M A C (media access control)フレームを有するパ ケットを受信する請求項 1 4記載の通信方法。
1 6 . 前記送信ステップは、 さらにバッファ内のパケットのア ドレスを解析する ステップを含む請求項 1 5記載の通信方法。
1 7 . さらに、 前記複数のプロセッサユニットにより送信されたパケットを受信 し、 前記解析されたア ドレスに応じて、 該受信したパケットを出力する出力ステ ップを有する請求項 1 6記載の通信方法。
1 8 . 前記送信ステップは、 送信トークンを受け取ったときに、 バッファ内にパ ケットがなければアイ ドル数をインクリメントして他のプロセッサュニッ トに送 信トークンを送信し、 バッファ内にパケッ トがあれば前記廃棄パケット数及び前 記アイ ドル数に応じてバッファ内のパケッ トを送信する請求項 1 3記載の通信方 法。
1 9 . 前記送信ステップは、 前記廃棄パケット数が前記アイ ドル数以下であると きにはバッファ内のパケットを送信する請求項 1 8記載の通信方法。
2 0 . 前記送信ステップは、 前記廃棄バケツト数が前記アイ ドル数以下であると きにはバッファ内のバケツトを送信し、 前記アイ ドル数をリセットする請求項 1 8記載の通信方法。
2 1 . 前記送信ステップは、 前記廃棄パケット数が前記アイ ドル数より大きいと きにはバッファ内のパケットを送信せずに前記廃棄バケツ ト数をデクリメントし、 他のプロセッサュニットに送信トークンを渡す請求項 2 0記載の通信方法。
2 2 . 前記受信ステップは、 M A C (media access control)フレームを有するパ ケットを受信する請求項 2 1記載の通信方法。
2 3 . 前記送信ステップは、 さらにバッファ内のパケットのア ドレスを解析する ステップを含む請求項 2 2記載の通信方法。
2 4 . さらに、 前記複数のプロセッサユニットにより送信されたパケッ トを受信 し、 前記解析されたア ドレスに応じて、 該受信したパケッ トを出力する出力ステ ップを有する請求項 2 3記載の通信方法。
PCT/JP2003/004057 2003-03-31 2003-03-31 通信装置及び通信方法 WO2004088938A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2003/004057 WO2004088938A1 (ja) 2003-03-31 2003-03-31 通信装置及び通信方法
JP2004570152A JP4049777B2 (ja) 2003-03-31 2003-03-31 通信装置及び通信方法
US11/234,111 US7796618B2 (en) 2003-03-31 2005-09-26 Communication device and communication method using tokens and local counters of discarded packets to maintain order of the packets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/004057 WO2004088938A1 (ja) 2003-03-31 2003-03-31 通信装置及び通信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/234,111 Continuation US7796618B2 (en) 2003-03-31 2005-09-26 Communication device and communication method using tokens and local counters of discarded packets to maintain order of the packets

Publications (1)

Publication Number Publication Date
WO2004088938A1 true WO2004088938A1 (ja) 2004-10-14

Family

ID=33105334

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/004057 WO2004088938A1 (ja) 2003-03-31 2003-03-31 通信装置及び通信方法

Country Status (3)

Country Link
US (1) US7796618B2 (ja)
JP (1) JP4049777B2 (ja)
WO (1) WO2004088938A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009232244A (ja) * 2008-03-24 2009-10-08 Oki Electric Ind Co Ltd 通信制御装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014155043A1 (en) 2013-03-28 2014-10-02 British Telecommunications Public Limited Company Re-marking of packets for queue control
EP3332522B8 (en) 2015-08-06 2019-07-31 British Telecommunications public limited company Data packet network
WO2017021046A1 (en) * 2015-08-06 2017-02-09 British Telecommunications Public Limited Company Data packet network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11234331A (ja) * 1998-02-19 1999-08-27 Matsushita Electric Ind Co Ltd パケット並列処理装置
JPH11317768A (ja) * 1998-01-23 1999-11-16 Matsushita Electric Ind Co Ltd 伝送システム、送信装置、記録再生装置、および記録装置
JP2002261826A (ja) * 2001-03-05 2002-09-13 Fujitsu Ltd 入力回線インタフェース装置及びパケット通信装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5361372A (en) * 1991-12-27 1994-11-01 Digital Equipment Corporation Memory management for data transmission networks
JPH09162927A (ja) 1995-12-11 1997-06-20 Toshiba Corp ネットワークシステム及びこれに使用される情報通信機器、情報通信方法
JP3987581B2 (ja) * 1996-11-04 2007-10-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 1個以上の処理要素を用いる信号処理装置
US6104700A (en) * 1997-08-29 2000-08-15 Extreme Networks Policy based quality of service
US20020107903A1 (en) * 2000-11-07 2002-08-08 Richter Roger K. Methods and systems for the order serialization of information in a network processing environment
US6925055B1 (en) * 2001-03-05 2005-08-02 Advanced Micro Devices, Inc. Systems and methods for traffic shaping
US6772244B2 (en) * 2002-04-03 2004-08-03 Sun Microsystems, Inc. Queuing delay limiter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11317768A (ja) * 1998-01-23 1999-11-16 Matsushita Electric Ind Co Ltd 伝送システム、送信装置、記録再生装置、および記録装置
JPH11234331A (ja) * 1998-02-19 1999-08-27 Matsushita Electric Ind Co Ltd パケット並列処理装置
JP2002261826A (ja) * 2001-03-05 2002-09-13 Fujitsu Ltd 入力回線インタフェース装置及びパケット通信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009232244A (ja) * 2008-03-24 2009-10-08 Oki Electric Ind Co Ltd 通信制御装置

Also Published As

Publication number Publication date
US7796618B2 (en) 2010-09-14
JP4049777B2 (ja) 2008-02-20
US20060013241A1 (en) 2006-01-19
JPWO2004088938A1 (ja) 2006-07-06

Similar Documents

Publication Publication Date Title
US11818037B2 (en) Switch device for facilitating switching in data-driven intelligent network
EP0166734B1 (en) Adaptive preferential flow control for packet switching system
US7447152B2 (en) Controlling traffic congestion
US8300526B2 (en) Network relay apparatus and packet distribution method
KR20080077189A (ko) 상호접속 대기시간을 감소시키기 위한 방법 및 시스템
US10791054B2 (en) Flow control and congestion management for acceleration components configured to accelerate a service
EP0872988A2 (en) A method for supporting per-connection queuing for feedback-controlled traffic
US20100091782A1 (en) Method and System for Controlling a Delay of Packet Processing Using Loop Paths
JP2006502650A (ja) トランザクションを確立するための集積回路および方法
EP3563535B1 (en) Transmission of messages by acceleration components configured to accelerate a service
US7349978B2 (en) Spurious timeout detection in TCP based networks
US7796618B2 (en) Communication device and communication method using tokens and local counters of discarded packets to maintain order of the packets
KR101318426B1 (ko) 온칩 네트워크에서 토러스 토폴로지를 이용한 라우팅 시스템 및 라우팅 방법
US20050190795A1 (en) Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots
US10439952B1 (en) Providing source fairness on congested queues using random noise
US11973685B2 (en) Fat tree adaptive routing
US20240056385A1 (en) Switch device for facilitating switching in data-driven intelligent network
Jaakkola Implementation of transmission control protocol in linux
Kabari Simulation of an Optimized Data Packet Transmission in a Congested Network
Rehman et al. Bandwidth efficient router design with introduction of buffering to reduce retransmission cost of corrupt data

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2004570152

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11234111

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 11234111

Country of ref document: US

122 Ep: pct application non-entry in european phase