Minimum-latency data mover with auto-segmentation and reassembly
First Claim
1. 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.
5 Assignments
0 Petitions
Accused Products
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.
99 Citations
43 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. 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. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. 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. - View Dependent Claims (37, 38, 39, 40, 41, 42)
-
-
43. 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.
-
Specification