Browse Prior Art Database

Buffer Access Method and Lookaside Buffer for a Switch

IP.com Disclosure Number: IPCOM000105346D
Original Publication Date: 1993-Jul-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 4 page(s) / 99K

Publishing Venue

IBM

Related People

Chen, WL: AUTHOR [+2]

Abstract

Disclosed is a buffer access method and lookaside buffer for switches that must retain a copy of transmitted packets temporarily for possible re-transmission.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Buffer Access Method and Lookaside Buffer for a Switch

      Disclosed is a buffer access method and lookaside buffer for
switches that must retain a copy of transmitted packets temporarily
for possible re-transmission.

      The figure shows the general structure of a switch that
includes this invention.  The switch contains some number of input
ports that receive packets (shown is input port 1).  The data
elements of an incoming packet are buffered in input buffer 4.  When
possible, packet elements are then routed through the switching
complex 3 to the appropriate output port 2.  The remainder of this
article describes the use of input buffer 4 and the lookaside buffer
5.

      The input buffer 4 can hold up to N packet data elements and is
accessed as a circular buffer with a address space of 0 thru N-1.
The next address is the current address plus 1, modulo N.  It is
assumed that the input buffer can hold one or more packets.  A
buffer_empty flag is associated with the input buffer that denotes
whether or not there are any packets stored in the input buffer.
Also necessary are four pointers into the input buffer.  They are:

o   old_head - points to the first data element of the next packet to
    be transferred through the Switching Complex 3.

o   old_tail - points to the last data element of the last completely
    stored packet.

o   new_head - points to the next data element to be transferred
    through the Switching Complex 3.

o   new_tail - points to the next buffer location available to
    receive a packet data element.

      Consider the case where an incoming packet is written into the
input buffer 1.  With initial buffer_empty flag set to TRUE, new_tail
is used to point the location for storing the incoming packet data
element.  The new_tail pointer is incremented after a packet data
element is stored.  If the last packet data element has not yet been
received and the incremented new_tail is equal to the old_head, then
there is no room to take the current packet, and the packet will be
rejected.  If the last packet data element is received before the
incremented new_tail reaches old_head, then the whole packet is
received, and the old_tail is updated with the incremented new_tail.
This allows the buffer to take as many packets as possible.

      Consider the case where the packet at the head of the buf...