Method and apparatus for increasing packet throughput in crossbar
AssigneeFujitsu Limited
InventorsHideto Arai, Nobuyuki Suzuki, Hidekazu Osano, Shu Nakamura
Life of this patent
Estimating the term…
Abstract
The frequency of the internal clock is set at ½ of the frequency of an external clock as well as the width of the internal bus is configured to be twice as wide as the width of an external bus. A write control unit controls a bypass unit and a swap circuit unit and, when a plurality of packets are received, writes words of the packets such that headers H of the received packets are respectively arranged alternately in each packet storage sector between an even-numbered queue and an odd-numbered queue. A read control unit reads the words of the packets in parallel by two words at each time from the even-numbered queue and the odd-numbered queue.
Claims22
A cross bar apparatus that is configured to set frequency of an internal clock thereof at ½ of frequency of an external clock used for transferring packets mutually between a plurality of modules and to configure an internal bus width thereof to be two (2) times as wide as an external bus width, and that reads received packets after storing and classifying the packets by destination, the cross bar apparatus comprising:
- a packet receiving unit receiving packets transferred word by word synchronizing with the external clock as well as dividing a plurality of words of the packets including headers into those at even-numbered reception timing and those at odd-numbered reception timing of the external clock, and outputting the words and the headers in parallel synchronizing with the internal clock;
- an even-numbered latch unit latching the words of the packets at even-numbered reception timing outputted from the packet receiving unit;
- an odd-numbered latch unit latching the words of the packets at odd-numbered reception timing outputted from the packet receiving unit;
- even-numbered queues respectively for each destination, each even-numbered queue including a plurality of stages of multi-stage packet storage sectors to be written into with, packet by packet, the words of the packet at even-numbered reception timing outputted from the even-numbered latch unit;
- odd-numbered queues respectively for each destination, each odd-numbered queue including a plurality of stages of multi-stage packet storage sectors to be written into with, packet by packet, the words of the packet at odd-numbered reception timing outputted from the odd-numbered latch unit;
- a bypass unit bypassing the even-latch unit;
- a swap circuit unit swapping outputs of the even-numbered latch unit and the bypass unit to the odd-numbered queue unit as well as swapping an output of the odd-numbered latch unit to the even-numbered queue unit;
- a write control unit, when a plurality of packets are received sequentially, writing words of the packets such that headers of the received packets are respectively arranged alternately in each of the packet storage sectors of the even-numbered queue and the odd-numbered queue between these queues;
- and
- a read control unit reading in parallel the words of the packets by two (2) words at each time from the even-numbered queue and the odd-numbered queue.
A method of controlling a cross bar apparatus that is configured to set frequency of an internal clock thereof at 1/2 of frequency of an external clock used for transferring packets mutually between a plurality of modules and to configure an internal bus width thereof to be two (2) times as wide as an external bus width, and that reads received packets after storing and classifying the packets by destination, the method comprising:
- a packet receiving step of receiving packets transferred word by word synchronizing with the external clock as well as dividing a plurality of words of the packets including headers into those at even-numbered reception timing and those at odd-numbered reception timing of the external clock, and outputting the words and the headers in parallel synchronizing with the internal clock;
- an even-numbered latch step of latching into an even-numbered latch unit the words of the packets at even-numbered reception timing outputted from the packet receiving step;
- an odd-numbered latch step of latching into an odd-numbered latch unit the words of the packets at odd-numbered reception timing outputted from the packet receiving step;
- even-numbered queue step of writing, packet by packet, the words of the packet at even-numbered reception timing outputted from the even-numbered latch unit, into each even-numbered queue for each destination including a plurality of stages of multi-stage packet storage sectors;
- odd-numbered queue step of writing, packet by packet, the words of the packet at odd-numbered reception timing outputted from the odd-numbered latch unit, into each odd-numbered queue for each destination including a plurality of stages of multi-stage packet storage sectors;
- a bypass step of bypassing the even-latch unit;
- a swap step of swapping outputs of the even-numbered latch unit and the bypass unit to the odd-numbered queue unit as well as swapping an output of the odd-numbered latch unit to the even-numbered queue unit;
- a write control step, when a plurality of packets are received sequentially, of writing words of the packets such that headers of the received packets are respectively arranged alternately in each of the packet storage sectors of the even-numbered queue and the odd-numbered queue between these queues;
- and
- a read control step of reading in parallel the words of the packets by two (2) words at each time from the even-numbered queue and the odd-numbered queue.
A computer-readable storage medium storing a program for controlling a cross bar apparatus that is configured to set frequency of an internal clock thereof at ½ of frequency of an external clock used for transferring packets mutually between a plurality of modules and to configure an internal bus width thereof to be two (2) times as wide as an external bus width, and that reads received packets after storing and classifying the packets by destination, wherein said program causes a computer to execute operations comprising:
- a packet receiving step of receiving packets transferred word by word synchronizing with the external clock as well as dividing a plurality of words of the packets including headers into those at even-numbered reception timing and those at odd-numbered reception timing of the external clock, and outputting the words and the headers in parallel synchronizing with the internal clock;
- an even-numbered latch step of latching into an even-numbered latch unit the words of the packets at even-numbered reception timing outputted from the packet receiving step;
- an odd-numbered latch step of latching into an odd-numbered latch unit the words of the packets at odd-numbered reception timing outputted from the packet receiving step;
- even-numbered queue step of writing, packet by packet, the words of the packet at even-numbered reception timing outputted from the even-numbered latch unit, into each even-numbered queue for each destination including a plurality of stages of multi-stage packet storage sectors;
- odd-numbered queue step of writing, packet by packet, the words of the packet at odd-numbered reception timing outputted from the odd-numbered latch unit, into each odd-numbered queue for each destination including a plurality of stages of multi-stage packet storage sectors;
- a bypass step of bypassing the even-latch unit;
- a swap step of swapping outputs of the even-numbered latch unit and the bypass unit to the odd-numbered queue unit as well as swapping an output of the odd-numbered latch unit to the even-numbered queue unit;
- a write control step, when a plurality of packets are received sequentially, of writing words of the packets such that headers of the received packets are respectively arranged alternately in each of the packet storage sectors of the even-numbered queue and the odd-numbered queue between these queues;
- and
- a read control step of reading in parallel the words of the packets by two (2) words at each time from the even-numbered queue and the odd-numbered queue.
A cross bar apparatus that, in order to transfer packets mutually between a plurality of modules, reads received packets after storing and classifying the packets by destination, the cross bar apparatus comprising:
- a packet receiving unit receiving packets transferred word by word, the packet receiving unit dividing a plurality of words of the packets including headers of the packets into those at even-numbered reception timing and those at odd-numbered reception timing to output the words and the headers in parallel;
- an even-numbered latch unit latching the words of the packets at even-numbered reception timing outputted from the packet receiving unit;
- an odd-numbered latch unit latching the words of the packets at odd-numbered reception timing outputted from the packet receiving unit;
- even-numbered queues respectively for each destination, each even-numbered queue including a plurality of stages of multi-stage packet storage sectors to be written into with, packet by packet, the words of the packet at even-numbered reception timing outputted from the even-numbered latch unit;
- odd-numbered queues respectively for each destination, each odd-numbered queue including a plurality of stages of multi-stage packet storage sectors to be written into with, packet by packet, the words of the packet at odd-numbered reception timing outputted from the odd-numbered latch unit;
- a bypass unit bypassing the even-latch unit;
- a swap circuit unit swapping outputs of the even-numbered latch unit and the bypass unit to the odd-numbered queue unit as well as swapping an output of the odd-numbered latch unit to the even-numbered queue unit;
- a write control unit, when a plurality of packets are received sequentially, writing words of the packets such that headers of the received packets are respectively arranged alternately in each of the packet storage sectors of the even-numbered queue and the odd-numbered queue between these queues;
- and
- a read control unit reading in parallel the words of the packets by two (2) words at each time from the even-numbered queue and the odd-numbered queue.
Dependencies are inferred from the claim text.