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

Minimum-latency data mover with auto-segmentation and reassembly

Assignee: Monterey Research LLC
•
Filing: 1996-12-27
•
Granted: 1999-09-07
•
Expires: 2016-12-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data mover which provides guaranteed transfer of data between two locations. The data mover includes a pair of data packet memories for input, a pair of data packet memories for output, and a controller which alternately switches each of the paired data packet memories between a data loading mode and a data unloading mode. The controller enables one of the paired data packet memories in the data loading mode and enables the other one of the paired data packet memories in the data unloading mode. The controller switches the modes of the paired data packet memories upon receiving an acknowledgement of moved data. By (a) switching the paired data packet memories upon receiving the acknowledgement, (b) segmenting the data packets (enabling data transfer initiation before all source data becomes available) and/or (c) embedding a response (enabling transmission of the next packet without first waiting for complete transmission of an incoming packet), complete transmission of the bi-directional data is automatically segmented and reassembled to minimize latency.

Inventors

  • 👤 Edward L. Grivna
  • 👤 Paul Scott

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 15:02
CPC Classifications
H; H04; H04L; H04L1/00; H04L1/12; H04L1/16; H04L1/18; H04L1/1829; H04L1/1835; H04L1/1607; H04L1/1664; H04L1/1671; H04L1/1867; H04L1/1874

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 122 words
A data mover for moving a plurality of data packets between a first host and a second host, said data mover comprising: first and second transmit data packet memories each configured to hold one of said plurality of data packets at a time; a transmitter for transmitting data to the second host; and a controller in communication with said first and second transmit data packet memories and said transmitter, said controller for alternately enabling one of said first and second transmit data packet memories to receive a first one of said data packets from the first host while enabling the other of said first and second transmit data packet memories to transfer a second one of said data packets to said transmitter.
Claim 2
Dependent Claim 122 words
A data mover for moving a plurality of data packets between a first host and a second host, said data mover comprising: first and second transmit data packet memories each configured to hold one of said plurality of data packets at a time; a transmitter for transmitting data to the second host; and a controller in communication with said first and second transmit data packet memories and said transmitter, said controller for alternately enabling one of said first and second transmit data packet memories to receive a first one of said data packets from the first host while enabling the other of said first and second transmit data packet memories to transfer a second one of said data packets to said transmitter.
Claim 3
Dependent Claim 37 words
The data mover according to claim 1, wherein said controller is configured to alternate said first and second transmit data packet memories in response to acknowledgment of the receipt of said first one of said data packets.
Claim 4
Dependent Claim 16 words
The data mover according to claim 2, wherein said acknowledgment is embeddable within said data packets.
Claim 5
Dependent Claim 47 words
The data mover according to claim 1, wherein said controller is adapted to cause a respective one of said first and second transmit data packet memories to retransfer a respective data packet to said transmitter in response to a negative acknowledgment of one of said data packets.
Claim 6
Dependent Claim 19 words
The data mover according to claim 4, wherein said negative acknowledgment is embeddable within one of said data packets.
Claim 7
Dependent Claim 38 words
The data mover according to claim 1, wherein said data packets comprise one or more data characters, and said controller is configured to embed one or more differentiation characters distinct from said data characters within the data packets.
Claim 8
Dependent Claim 28 words
The data mover according to claim 1, wherein said controller is adapted to monitor said data packets and embed a plurality of differentiation characters within the data packets.
Claim 9
Dependent Claim 29 words
The data mover according to claim 1, further comprising a bulk data memory to buffer data between said first and second transmit data packet memories and the first host.
Claim 10
Dependent Claim 19 words
The data mover according to claim 1, wherein said first and second transmit data packet memories are FIFO memories.
Claim 11
Dependent Claim 75 words
The data mover according to claim 1, further comprising a receiver for receiving data from the second host and first and second receive data packet memories, wherein said controller is in communication with said first and second receive data packet memories for alternately enabling said first receive data packet memory to load data packets from said receiver while enabling said second receive data packet memory to transfer a validated data packet to said first host.
Claim 12
Dependent Claim 29 words
The data mover according to claim 10, wherein said controller is adapted to alternate said first and second receive data packet memories in response to said validated data packet.
Claim 13
Dependent Claim 23 words
The data mover of claim 11, wherein said controller acknowledges the receipt of said data packets in response to said validated data packet.
Claim 14
Dependent Claim 16 words
The data mover according to claim 11, wherein said acknowledgment is embeddable within the data packets.
Claim 15
Dependent Claim 30 words
The data mover according to claim 10, further comprising a bulk data memory to buffer receive data between said first and second receive data packet memories and the first host.
Claim 16
Dependent Claim 19 words
The data mover according to claim 10, wherein said first and second receive data packet memories are FIFO memories.
Claim 17
Dependent Claim 25 words
The data mover according to claim 1, wherein said first and second transmit data packet memories are configured to segment said plurality of data packets.
Claim 18
Dependent Claim 30 words
The data mover according to claim 1, wherein said data mover is configured to operate independently of a second plurality of data packets configured to operate at a host level.
Claim 19
Dependent Claim 38 words
The data mover according to claim 1, wherein said first and second transmit data packets are configured to be alternately enabled without waiting for a predetermined amount of data to be received from said first or second host.
Claim 20
Dependent Claim 45 words
The data mover according to claim 1, wherein said first and second transmit data packets are configured to be alternately enabled without waiting for the first transmit data packet memory to be full before starting to transfer data from the second transmit data packet memory.
Claim 21
Dependent Claim 45 words
The data mover according to claim 1, further comprising a bulk data memory connected between said first and second transmit data packet memories and said first or second host, wherein said bulk data memory is configured to change the clock domain of the data packets.
Claim 22
Dependent Claim 25 words
The data mover according to claim 1, wherein said first and second transfer data packet memories are configured to allow simultaneous loading and unloading operations.
Claim 23
Dependent Claim 26 words
The data mover according to claim 1, wherein said first and second transmit data packet memories are configured to automatically segment said plurality of data packets.
Claim 24
Independent Claim 146 words
A system comprising: a first and second host; a serial link interconnecting said first and second hosts; first and second data movers respectively connecting said first and second hosts with said serial link, each of said data movers including first and second transmit data packet memories, a transmitter for transmitting data over said serial link, and a controller in communication with said first and second transmit data packet memories and said transmitter, said controller for alternately enabling one of said first and second transmit data packet memories to receive a first one of a plurality of data packets while enabling the other of said first and second transmit data packet memories to transfer a second one of said data packets to said transmitter, wherein said first and second data packet memories are each configured to hold one of said plurality of data packets at a time.
Claim 25
Independent Claim 146 words
A system comprising: a first and second host; a serial link interconnecting said first and second hosts; first and second data movers respectively connecting said first and second hosts with said serial link, each of said data movers including first and second transmit data packet memories, a transmitter for transmitting data over said serial link, and a controller in communication with said first and second transmit data packet memories and said transmitter, said controller for alternately enabling one of said first and second transmit data packet memories to receive a first one of a plurality of data packets while enabling the other of said first and second transmit data packet memories to transfer a second one of said data packets to said transmitter, wherein said first and second data packet memories are each configured to hold one of said plurality of data packets at a time.
Claim 26
Dependent Claim 32 words
The system according to claim 23, wherein said controller is configured to alternate said first and second transmit data packet memories in response to an acknowledgment of one of said data packets.
Claim 27
Dependent Claim 25 words
The system according to claim 24, wherein said acknowledgment is embeddable within said data packets received by said first or second transmit data packet memories.
Claim 28
Dependent Claim 36 words
The system according to claim 23, wherein said controller is configured to enable retransferring a respective transmit data packet to said transmitter in response to a negative acknowledgment of one or more of said data packets.
Claim 29
Dependent Claim 16 words
The system according to claim 26, wherein said negative acknowledgment is embeddable within said data packets.
Claim 30
Dependent Claim 51 words
The system according to claim 25, wherein at least one of said data packets comprise one or more data characters, and said controller is configured to embed one or more differentiation characters distinct from said data characters within the data packet received by said first or second transmit data packet memories.
Claim 31
Dependent Claim 27 words
The system according to claim 23, wherein said controller is adapted to monitor the data packets and embed a plurality of differentiation characters within the data packets.
Claim 32
Dependent Claim 29 words
The system according to claim 23, further comprising a bulk data memory to buffer data between at least one of said hosts and the associated transmit data packet memory.
Claim 33
Dependent Claim 27 words
The system according to claim 23, wherein said first and second hosts each comprise bulk data memory to buffer data between said hosts and said data movers.
Claim 34
Dependent Claim 81 words
The system according to claim 23, wherein each of said data movers further comprise (a) a receiver for receiving data from said serial link and (b) first and second receive data packet memories, wherein said controller is in communication with said first and second receive data packet memories for alternately enabling said first receive data packet memory to load one of said data packets from said receiver while enabling said second receive data packet memory to transfer a validated data packet.
Claim 35
Dependent Claim 32 words
The system according to claim 32, wherein said controller is adapted to alternate said first and second receive data packet memories in response to an acknowledgment of one of said data packets.
Claim 36
Dependent Claim 15 words
The system according to claim 33, wherein said acknowledgment is embeddable within the data packets.
Claim 37
Dependent Claim 36 words
The system according to claim 32, wherein each of said data movers further comprise a bulk data memory to buffer data between said first and second data packet memories and the associated one of said hosts.
Claim 38
Independent Claim 110 words
A method for moving a plurality of data packets between a first host and a second host, said method comprising the steps of: enabling a first data packet memory, configured to hold one of said plurality of data packets at a time, to a loading mode wherein a first data packet from the first host is loaded; enabling a second data packet memory, configured to hold one of said plurality of data packets at a time, to an unloading mode wherein a second data packet is unloaded for transmission to the second host; transmitting the second data packet; and alternating the modes of the first and second data packet memories.
Claim 39
Independent Claim 110 words
A method for moving a plurality of data packets between a first host and a second host, said method comprising the steps of: enabling a first data packet memory, configured to hold one of said plurality of data packets at a time, to a loading mode wherein a first data packet from the first host is loaded; enabling a second data packet memory, configured to hold one of said plurality of data packets at a time, to an unloading mode wherein a second data packet is unloaded for transmission to the second host; transmitting the second data packet; and alternating the modes of the first and second data packet memories.
Claim 40
Dependent Claim 23 words
The method according to claim 36, wherein said step of alternating the modes responds to an acknowledgment of one of said data packets.
Claim 41
Dependent Claim 18 words
The method according to claim 37, further comprising the step of embedding the acknowledgment in said data packet.
Claim 42
Dependent Claim 28 words
The method according to claim 36, further comprising the step of retransmitting the second data packet in response to a negative acknowledgment of one of said data packets.
Claim 43
Dependent Claim 21 words
The method according to claim 39, further comprising the step of embedding the negative acknowledgment in one of said data packets.
Claim 44
Dependent Claim 26 words
The method according to claim 36, further comprising embedding one or more differentiation characters distinct from said data characters within the one of said data packets.
Claim 45
Dependent Claim 28 words
The method according to claim 41, wherein the step of embedding one or more differentiation characters is in response to the receipt of one of said data packets.
Claim 46
Dependent Claim 122 words
A data mover for moving a plurality of data packets between a first host and a second host, said data mover comprising: first and second receive data packet memories each configured to hold one of said plurality of data packets at a time; a transmitter for transmitting data to the second host; and a controller in communication with said first and second receive data packet memories and said transmitter, said controller for alternately enabling one of said first and second receive data packet memories to receive a first one of said data packets from the first host while enabling the other of said first and second receive data packet memories to transfer a second one of said data packets to said transmitter.
Claim 47
Dependent Claim 122 words
A data mover for moving a plurality of data packets between a first host and a second host, said data mover comprising: first and second receive data packet memories each configured to hold one of said plurality of data packets at a time; a transmitter for transmitting data to the second host; and a controller in communication with said first and second receive data packet memories and said transmitter, said controller for alternately enabling one of said first and second receive data packet memories to receive a first one of said data packets from the first host while enabling the other of said first and second receive data packet memories to transfer a second one of said data packets to said transmitter.

References Cited (Backward Citations)

US5021949A Cited
US5634015A Cited
US5291481A Cited
US5633865A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-09-06 2003-03-08 2003-09-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-09-06 2007-03-08 2007-09-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-09-06 2011-03-08 2011-09-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag