Patent US5528587A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5528587A Expired / Lapsed US ⏱️ 0.0 years remaining

Programmable high performance data communication adapter for high speed packet transmission networks

Assignee: International Business Machines Corp
•
Filing: 1994-06-01
•
Granted: 1996-06-18
•
Expires: 2014-06-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A high performance data packet buffering method and a programmable data communication adapter for high speed packet transmission networks are disclosed. The line adapter includes programmable processing means, for receiving and transmitting data packets of fixed or variable length. This system is characterized in that it comprises means for buffering (132) said data packets, means for identifying said buffering means and said data packets in said buffering means, means for queueing (FIG. 15) in storing means (131) said identifying means in a single instruction, means for dequeueing (FIG. 16) from said storing (131) means said identifying means in another single instruction, means for releasing said buffering means, Each instruction comprises up to three operations executed in parallel by said processing means: an arithmetical and logical (ALU) operation on said identifying means, memory operation on said storing means, and a sequence operation.

Inventors

  • 👤 Claude Galand
  • 👤 Gerald Lebizay
  • 👤 Daniel Mauduit
  • 👤 Jean-Marie Munier
  • 👤 Andre Pauporte
  • 👤 Eric Saint-Georges
  • 👤 Victor Spagnol

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 14:44
CPC Classifications
H; H04; H04L; H04L49/00; H04L49/30; H04L49/90; H04L49/901; H04L49/9063; H04L49/9068; H04L9/00; H04L9/40

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 316 words
A line adapter (401, 402) for a switching node (300) in a packet communication network (200) including: a programmable processing means (SSP) for receiving (138) and transmitting (137) data packets of fixed or variable length; memory means having a plurality of buffers (132,800) for storing said data packets and a separate area (131) for working storage; means for identifying said data packets in said buffers including; buffer pointers (B -- PTR) each identifying one of the said data packet buffers, said buffer pointers including a status field for indicating when the pointed to buffer contains the end of a packet (EOP) or the end of a segment (EOS), a free buffer list (FBL) and an associated free buffer list pointer (P -- FBL) for identifying said list, said list including indicia indicating buffers which are free and available for use in storing packets, buffer lists (B -- LIST) each including a plurality of buffer pointers (B -- PTR) each identifying a buffer in the memory in which packet data is stored, packet pointers (P -- PTR) for identifying a said buffer list (B -- LIST), at least one list of packet pointers (P -- LIST), and queue pointers (Q -- PTR) for identifying a said packet pointer list (P -- LIST); means responsive to the detection of the end of segment (EOS) status for correlating buffers of the same packet having buffer pointers (B-PTR) in different buffer lists (B-LIST), whereby buffer lists (B-LIST) can be of uniform size or smaller than needed to accommodate the largest packet; means (FIG. 15) for listing said identifying means in said working storage (131) in a single instruction; means (FIG. 14) for delisting said identifying means in said working storage in a single instruction; and, means responsive to the delisting of a buffer for modifying the indicia in the free buffer list (FBL) to indicate the availability of the buffer.
Claim 2
Dependent Claim 316 words
A line adapter (401, 402) for a switching node (300) in a packet communication network (200) including: a programmable processing means (SSP) for receiving (138) and transmitting (137) data packets of fixed or variable length; memory means having a plurality of buffers (132,800) for storing said data packets and a separate area (131) for working storage; means for identifying said data packets in said buffers including; buffer pointers (B -- PTR) each identifying one of the said data packet buffers, said buffer pointers including a status field for indicating when the pointed to buffer contains the end of a packet (EOP) or the end of a segment (EOS), a free buffer list (FBL) and an associated free buffer list pointer (P -- FBL) for identifying said list, said list including indicia indicating buffers which are free and available for use in storing packets, buffer lists (B -- LIST) each including a plurality of buffer pointers (B -- PTR) each identifying a buffer in the memory in which packet data is stored, packet pointers (P -- PTR) for identifying a said buffer list (B -- LIST), at least one list of packet pointers (P -- LIST), and queue pointers (Q -- PTR) for identifying a said packet pointer list (P -- LIST); means responsive to the detection of the end of segment (EOS) status for correlating buffers of the same packet having buffer pointers (B-PTR) in different buffer lists (B-LIST), whereby buffer lists (B-LIST) can be of uniform size or smaller than needed to accommodate the largest packet; means (FIG. 15) for listing said identifying means in said working storage (131) in a single instruction; means (FIG. 14) for delisting said identifying means in said working storage in a single instruction; and, means responsive to the delisting of a buffer for modifying the indicia in the free buffer list (FBL) to indicate the availability of the buffer.
Claim 3
Dependent Claim 28 words
The programmable adapter set forth in claim 1 in which each of the lists includes a prefix for storing information related to the data included in the list.
Claim 4
Dependent Claim 28 words
The programmable adapter set forth in claim 2 in which the said buffer list prefix includes control and routing information from the header of the stored data packet.
Claim 5
Dependent Claim 24 words
The programmable adapter set forth in claim 3 in which the listing and delisting means can have up to three operations executing in parallel.
Claim 6
Dependent Claim 46 words
The programmable adapter set forth in claim 1 in which said list pointers include: a first field identifying the list (LID); a second field identifying where (TAIL) to attach a pointer to the list; and, a third field identifying the first pointer (HEAD) in the list.
Claim 7
Dependent Claim 68 words
The programmable adapter set forth in claim 1 in which each buffer pointer includes in addition to said status field: a first field for identifying a buffer (BID); a second field for identifying the first data element (FEP) in said buffer; a third field for identifying the last data element (LEP) in said buffer; and, a fourth field for identifying a current data element (CEP) in said buffer.
Claim 8
Dependent Claim 74 words
The programmable adapter set forth in claim 6 in which: the buffer lists are of fixed length; the buffer pointers can be chained in a plurality of buffer lists when a stored data packet requires more buffers than a single fixed length buffer list can accommodate; and, said status indicator is set in the last buffer pointer of each buffer list to ensure a correlation between the different lists of the said data packet.
Claim 9
Independent Claim 317 words
A method of handling data packets in a line adapter (401, 402) for a switching node (300) in a packet communication network (200) which includes a memory, a programmable processing means (SSP) for receiving (138) and transmitting (137) data packets of fixed or variable length, said method including the following steps: dividing said memory into a plurality of buffers (132,800) for storing said data packets and a separate area (131) for working storage; establishing pointers and lists in the working storage for identifying said data packets in said buffers including; buffer pointers (B -- PTR) each identifying one of the said data packet buffers, said buffer pointers including a status field for indicating when the pointed to buffer contains the end of a packet (EOP) or the end of a segment (EOS), a free buffer list (FBL) and an associated free buffer list pointer (P -- FBL) for identifying said list, said list including indicia indicating which buffers are free and available for use in storing packets, buffer lists (B -- LIST) each including a plurality of buffer pointers (B -- PTR) each identifying a buffer in the memory in which packet data is stored, packet pointers (P -- PTR) for identifying a said buffer list (B -- LIST), queue pointers (Q -- PTR) for identifying a said packet pointer list (P -- LIST); detecting the end of segment (EOS) status for correlating buffers of the same packet having buffer pointers (B-PTR) in different buffer lists (B-LIST), whereby buffer lists (B-HST) can be of uniform size or smaller than needed to accommodate the largest packet; listing said identifying means (FIG. 15) in said working storage (131) in a single instruction; delisting said identifying means (FIG. 14) in said working storage in a single instruction; and, modifying the indicia in the free buffer list (FBL) to indicate the availability of the buffer following the delisting of a buffer.
Claim 10
Independent Claim 317 words
A method of handling data packets in a line adapter (401, 402) for a switching node (300) in a packet communication network (200) which includes a memory, a programmable processing means (SSP) for receiving (138) and transmitting (137) data packets of fixed or variable length, said method including the following steps: dividing said memory into a plurality of buffers (132,800) for storing said data packets and a separate area (131) for working storage; establishing pointers and lists in the working storage for identifying said data packets in said buffers including; buffer pointers (B -- PTR) each identifying one of the said data packet buffers, said buffer pointers including a status field for indicating when the pointed to buffer contains the end of a packet (EOP) or the end of a segment (EOS), a free buffer list (FBL) and an associated free buffer list pointer (P -- FBL) for identifying said list, said list including indicia indicating which buffers are free and available for use in storing packets, buffer lists (B -- LIST) each including a plurality of buffer pointers (B -- PTR) each identifying a buffer in the memory in which packet data is stored, packet pointers (P -- PTR) for identifying a said buffer list (B -- LIST), queue pointers (Q -- PTR) for identifying a said packet pointer list (P -- LIST); detecting the end of segment (EOS) status for correlating buffers of the same packet having buffer pointers (B-PTR) in different buffer lists (B-LIST), whereby buffer lists (B-HST) can be of uniform size or smaller than needed to accommodate the largest packet; listing said identifying means (FIG. 15) in said working storage (131) in a single instruction; delisting said identifying means (FIG. 14) in said working storage in a single instruction; and, modifying the indicia in the free buffer list (FBL) to indicate the availability of the buffer following the delisting of a buffer.
Claim 11
Dependent Claim 27 words
The method set forth in claim 8 in which each of the lists includes a prefix for storing information related to the data included in the list.
Claim 12
Dependent Claim 27 words
The method set forth in claim 9 in which the said buffer list prefix includes control and routing information from the header of the stored data packet.
Claim 13
Dependent Claim 23 words
The method set forth in claim 8 in which the listing and delisting step can have up to three operations executing in parallel.
Claim 14
Dependent Claim 45 words
The method set forth in claim 8 in which said list pointers include: a first field identifying the list (LID); a second field identifying where (TAIL) to attach a pointer to the list; and, a third field identifying the first pointer (HEAD) in the list.
Claim 15
Dependent Claim 67 words
The method set forth in claim 8 in which each buffer pointer includes in addition to said status field: a first field for identifying a buffer (BID); a second field for identifying the first data element (FEP) in said buffer; a third field for identifying the last data element (LEP) in said buffer; and, a fourth field for identifying a current data element (CEP) in said buffer.
Claim 16
Dependent Claim 73 words
The method set forth in claim 13 in which: the buffer lists are of fixed length; the buffer pointers can be chained in a plurality of buffer lists when a stored data packet requires more buffers than a single fixed length buffer list can accommodate; and, said status indicator is set in the last buffer pointer of each buffer list to ensure a correlation between the different lists of the said data packet.

References Cited (Backward Citations)

EP0433520A1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-06-18 1999-12-18 2000-06-18 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-06-18 2003-12-18 2004-06-18 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-06-18 2007-12-18 2008-06-18 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag