← Back to Patent Explorer
US5734649A Expired / Lapsed US ⏱️ 0.0 years remaining

Data packet router

Assignee: Merrill Lynch Capital Corp
•
Filing: 1996-05-31
•
Granted: 1998-03-31
•
Expires: 2016-05-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In the data packet router disclosed herein, a matrix of crosspoint switch elements connects data sources to selected destinations during each of a succession of intervals. Allocation of switch elements to desired connections is accomplished by a process which provides a data array having a number of data elements corresponding to the number of switch elements. During each interval, a source is assigned to each of the data elements in accordance with a first current pseudo-random shuffle pattern and a respective destination is assigned to each of the data elements in accordance with a second current pseudo-random shuffle pattern. A new set of shuffle patterns is generated during each interval. An incremental testing is performed across the data array to locate matches not previously allocated and each match found is successively allocated to this switch element corresponding to the data element. After testing, the complete array of switch elements are operated, during a subsequent interval, in accordance with the previously determined allocations.

Inventors

  • 👤 Philip P. Carvey
  • 👤 Thomas F. Clarke

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 08:35
CPC Classifications
H; H04; H04L; H04L12/00; H04L12/54; H04L12/56; H04L49/00; H04L49/25; H04L49/253; H04L49/10; H04L49/101; H04L49/20; H04L49/205; H04L49/30; H04L49/3027

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 210 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning, in accordance with said first current pseudo-random shuffle pattern, a respective source to each of said data elements; assigning, in accordance with said second current pseudo-random shuffle pattern, a respective destination to each of said data elements; performing an incremental testing across the array, of the sources and destinations assigned to each data element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 2
Dependent Claim 210 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning, in accordance with said first current pseudo-random shuffle pattern, a respective source to each of said data elements; assigning, in accordance with said second current pseudo-random shuffle pattern, a respective destination to each of said data elements; performing an incremental testing across the array, of the sources and destinations assigned to each data element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 3
Dependent Claim 21 words
A process as set forth in claim 1 wherein, for each source, a respective bid queue is maintained for each destination.
Claim 4
Dependent Claim 29 words
A process as set forth in claim 2 wherein a data cell can be transmitted during each interval and wherein said bid queues are at least three cells long.
Claim 5
Dependent Claim 44 words
A process as set forth in claim 2 wherein each destination maintains an output buffer for each source and wherein each destination can disable waiting messages in the queue of a source for which the destination's respective output buffer has reached a preselected capacity.
Claim 6
Dependent Claim 68 words
A process as set forth in claim 1 wherein a source communicates bids to said process during a first one of said intervals; wherein said allocations occur during a second one of said intervals; wherein the allocation is communicated to the allocated sources and destinations are during a third one of said intervals; and wherein data transfer between correspondingly allocated sources and destinations occurs during a forth interval.
Claim 7
Dependent Claim 43 words
A process as set forth in claim 5 wherein each source maintains a bid queue for each destination and wherein said queues are at least three elements long so that it is possible for a source to transfer data cells during consecutive intervals.
Claim 8
Dependent Claim 255 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements, said sources including sources of at least first and second priority levels, said first priority level being of higher priority than the second, a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning, in accordance with said first current pseudo-random shuffle pattern, a respective source to each of said data elements; assigning, in accordance with said second current pseudo-random shuffle pattern, a respective destination to each of said data elements; performing an incremental testing across the array, of the sources and destinations assigned to each data element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element, said first shuffle pattern being biased to place sources of said first priority level closer to the start of said incremental testing; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 9
Dependent Claim 255 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements, said sources including sources of at least first and second priority levels, said first priority level being of higher priority than the second, a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning, in accordance with said first current pseudo-random shuffle pattern, a respective source to each of said data elements; assigning, in accordance with said second current pseudo-random shuffle pattern, a respective destination to each of said data elements; performing an incremental testing across the array, of the sources and destinations assigned to each data element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element, said first shuffle pattern being biased to place sources of said first priority level closer to the start of said incremental testing; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 10
Dependent Claim 68 words
A process as set forth in claim 7 wherein a source communicates bids to said process during a first one of said intervals; wherein said allocations occur during a second one of said intervals; wherein the allocation is communicated to the allocated sources and destinations are during a third one of said intervals; and wherein data transfer between correspondingly allocated sources and destinations occurs during a forth interval.
Claim 11
Dependent Claim 43 words
A process as set forth in claim 8 wherein each source maintains a bid queue for each destination and wherein said queues are at least three elements long so that it is possible for a source to transfer data cells during consecutive intervals.
Claim 12
Dependent Claim 249 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a two dimensional data array having a number of data elements corresponding to the number of said switch elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning a respective source to each of said data elements, the assigning of a respective source to each of said data elements being in accordance with said first current pseudo-random shuffle pattern; assigning a respective destination to each of said data elements, the assigning of a respective destination to each of said data elements being in accordance with said second current pseudo-random shuffle pattern; starting at one corner of said array, performing a testing of successively progressing diagonal regions across the array of the sources and destinations assigned to each array element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 13
Dependent Claim 249 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a two dimensional data array having a number of data elements corresponding to the number of said switch elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning a respective source to each of said data elements, the assigning of a respective source to each of said data elements being in accordance with said first current pseudo-random shuffle pattern; assigning a respective destination to each of said data elements, the assigning of a respective destination to each of said data elements being in accordance with said second current pseudo-random shuffle pattern; starting at one corner of said array, performing a testing of successively progressing diagonal regions across the array of the sources and destinations assigned to each array element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 14
Dependent Claim 59 words
A process as set forth in claim 10 wherein each source maintains a message buffer having a respective queue for each destination and wherein each destination maintains an output buffer for each source and wherein each destination can disable waiting messages in the queue of a source for which the destination's respective output buffer has reached a preselected capacity.
Claim 15
Dependent Claim 68 words
A process as set forth in claim 10 wherein a source communicates bids to said process during a first one of said intervals; wherein said allocations occur during a second one of said intervals; wherein the allocation is communicated to the allocated sources and destinations are during a third one of said intervals; and wherein data transfer between correspondingly allocated sources and destinations occurs during a forth interval.
Claim 16
Dependent Claim 218 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a system for allocating the switch elements to possible connections which comprises: for each source, a message buffer having a respective queue for each destination; for each destination, an output buffer for each source; a respective means associated with each destination for disabling waiting messages in the queue of a source for which the destination's respective output buffer has reached a preselected capacity; means for providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements; assigning a respective source to each of said data elements; assigning a respective destination to each of said data elements; performing an incremental testing across the array, of the sources and destinations assigned to each array element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 17
Dependent Claim 218 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a system for allocating the switch elements to possible connections which comprises: for each source, a message buffer having a respective queue for each destination; for each destination, an output buffer for each source; a respective means associated with each destination for disabling waiting messages in the queue of a source for which the destination's respective output buffer has reached a preselected capacity; means for providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements; assigning a respective source to each of said data elements; assigning a respective destination to each of said data elements; performing an incremental testing across the array, of the sources and destinations assigned to each array element to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 18
Dependent Claim 239 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements, said array being divisible into a plurality of regions corresponding to subgroupings of said data elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning, in accordance with said first current pseudo-random shuffle pattern, a respective source to each of said data elements; assigning, in accordance with said second current pseudo-random shuffle pattern, a respective destination to each of said data elements; starting at one corner of said array, performing a testing of successively progressing diagonal grouping of regions across the array of the sources and destinations assigned to each array region to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 19
Dependent Claim 239 words
In a router for connecting, to a plurality of data destinations, a plurality of data sources bidding for connection to identified ones of said destinations, respective sets of connections being made during each of a succession of intervals using a matrix of crosspoint switch elements; a process for allocating the switch elements to possible connections which comprises: providing, in correspondence with said switch element matrix, a data array having a number of data elements corresponding to the number of said switch elements, said array being divisible into a plurality of regions corresponding to subgroupings of said data elements; generating for each interval, first and second pseudo-random shuffle patterns, the respective shuffle patterns generated for each interval being the current shuffle patterns for the respective interval; assigning, in accordance with said first current pseudo-random shuffle pattern, a respective source to each of said data elements; assigning, in accordance with said second current pseudo-random shuffle pattern, a respective destination to each of said data elements; starting at one corner of said array, performing a testing of successively progressing diagonal grouping of regions across the array of the sources and destinations assigned to each array region to locate matches of bidding sources and destinations not previously allocated and successively allocating each match to the switch element corresponding to the respective data element; and after testing the complete array, operating the switch elements during a subsequent interval in accordance with the allocations made.
Claim 20
Dependent Claim 68 words
A process as set forth in claim 14 wherein a source communicates bids to said process during a first one of said intervals; wherein said allocations occur during a second one of said intervals; wherein the allocation is communicated to the allocated sources and destinations are during a third one of said intervals; and wherein data transfer between correspondingly allocated sources and destinations occurs during a forth interval.
Claim 21
Dependent Claim 46 words
A process as set forth in claim 15 wherein each source maintains a message buffer having a queue for each destination and wherein said queues are at least three elements long so that it is possible for a source to transfer data cells during consecutive intervals.

References Cited (Backward Citations)

US4817084A Cited
US5107489A Cited
US5132965A Cited
US5216668A Cited
US5299190A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-03-30 2001-09-29 2002-03-31 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-03-30 2005-09-29 2006-03-31 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-03-30 2009-09-29 2010-03-31 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag