Claims Analysis
Total Claims: 58
Claim 1
Independent Claim
356 words
An apparatus for writing segments of data from a host bus to a buffer, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the first data path to the second data path without redundant accesses of segments of data to be transferred, the second data path having a fixed number of the segments of data to be transferred, and the first data path having a selected number and a selected alignment of the segments of data to be transferred; a first stage including, a plurality of first stage inputs, coupled to the control resource and the segment lanes D1(n), for n=0 through N, associated with the first data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and a subset of the plurality of first stage outputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, and a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the second data path, the second stage capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the second data path.
Claim 2
Independent Claim
356 words
An apparatus for writing segments of data from a host bus to a buffer, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the first data path to the second data path without redundant accesses of segments of data to be transferred, the second data path having a fixed number of the segments of data to be transferred, and the first data path having a selected number and a selected alignment of the segments of data to be transferred; a first stage including, a plurality of first stage inputs, coupled to the control resource and the segment lanes D1(n), for n=0 through N, associated with the first data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and a subset of the plurality of first stage outputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, and a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the second data path, the second stage capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the second data path.
Claim 3
Dependent Claim
99 words
The apparatus of claim 1, wherein the control resource further includes a control input for receiving a segment enable signal for each segment of data on the segment lanes D1(n) to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane D1(n) corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane D1(n) corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data.
Claim 4
Dependent Claim
24 words
The apparatus of claim 2, wherein the first control signal includes a rotate signal and the second control signal includes an output enable signal.
Claim 5
Dependent Claim
107 words
The apparatus of claim 3, wherein the first stage includes: a shifter for transferring segments of data from the selected first stage input to the selected first stage output, wherein the plurality of first stage inputs includes a plurality of shifter inputs X1 in (j), for j=0 through N, corresponding to segment lanes D1(n), for n=0 through N, and the plurality of first stage outputs includes a plurality of shifter outputs X1 out (j), for j=0 through N, for transferring segments of data from a selected first stage input X1 in (j) to a selected first stage output X1 out (j) in response to the rotate signal.
Claim 6
Dependent Claim
145 words
The apparatus of claim 4, wherein the second stage includes: a plurality of queuing stores having store inputs R in (k), for k=0 through N-1, coupled to the shifter at the plurality of first stage outputs X1 out (j), for j=0 through N-1, and store outputs R out (k), for k=0 through N-1, for storing the segment of data from the selected shifter outputs in response to a queue enable signal; and a plurality of selectors having selector inputs M in (m), for m=0 through N-1, coupled to the store outputs R out (k), for k=0 through N-1, and shifter outputs X1 out (j), for j=0 through N-1, and selector outputs M out (m), for m=0 through N-1, for supplying a selected segment of data to segment lanes D2(n), for n=0 through N-1, at the second data path in response to the output enable signal.
Claim 7
Dependent Claim
97 words
The apparatus of claim 5, wherein each selector among the plurality of selectors comprises a 2-to-1 multiplexer (MUX), including: a first MUX input coupled to a corresponding store output, a second MUX input coupled to a corresponding shifter output, a MUX control input for receiving the output enable signal and selecting one of the first MUX input and the second MUX input, and a MUX output for transferring the selected segment of data on one of the first MUX input and the second MUX input in response to the output enable signal at the MUX control input.
Claim 8
Dependent Claim
68 words
The apparatus of claim 5, wherein the control resource generates the rotate signal by determining a data offset value and a current queue value, the data offset value determined by counting the segment lanes D1(n) not transferring segments of data and the current queue value determined by counting the queuing stores storing segments of data, the rotate value equals the current queue value minus the data offset value.
Claim 9
Dependent Claim
61 words
The apparatus of claim 7, wherein the control resource determines the data offset value by counting the number of segment enable signals in the invalid state from a lowest segment lane D1(n), for n=0, to a higher segment lane D1(n), for n=1 through N, until the segment lane D1(n) corresponding to the segment enable signal in the valid state is reached.
Claim 10
Dependent Claim
86 words
The apparatus of claim 7, wherein the output enable signal includes: a bypass enable signal for bypassing at least one of the plurality of queuing stores, where the control resource generates the bypass enable signal to select the second MUX input corresponding to the shifter outputs X1 out (j), for j=0 through N-1, and a nonbypass enable signal for not bypassing the plurality of queuing stores, where the control resource generates the nonbypass enable signal to select the first MUX input corresponding to the store output.
Claim 11
Dependent Claim
52 words
The apparatus of claim 9, wherein the control resource generates the bypass enable signal when a sum of the current queue value and the number of segment enable signals corresponding to segment lanes D1(n) transferring segments of data equals the fixed number of the segments of data on the second data path.
Claim 12
Dependent Claim
19 words
The apparatus of claim 10, wherein a desired number of the fixed number of segments of data is N+1.
Claim 13
Dependent Claim
48 words
The apparatus of claim 9, wherein the control resource generates the nonbypass enable signal when a sum of the current queue value and the number of segment enable signals corresponding to segment lanes D1(n) transferring segments of data is one of less than N+1 and greater than N+1.
Claim 14
Independent Claim
375 words
An apparatus for reading segments of data from a buffer to a host bus, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the second data path to the first data path without redundant accesses of segments of data to be transferred, the first data path having a selected number and a selected alignment of the segments of data to be transferred, and the second data path having a fixed number of the segments of data to be transferred; a first stage including a plurality of first stage inputs, coupled to the control resource and a subset of the segment lanes D2(n), for n=1 through N, associated with the second data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and at least a subset of the plurality of first stage outputs and the segment lanes coupled to the plurality of first stage inputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, and a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the first data path where the first stage is capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the first data path.
Claim 15
Independent Claim
375 words
An apparatus for reading segments of data from a buffer to a host bus, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the second data path to the first data path without redundant accesses of segments of data to be transferred, the first data path having a selected number and a selected alignment of the segments of data to be transferred, and the second data path having a fixed number of the segments of data to be transferred; a first stage including a plurality of first stage inputs, coupled to the control resource and a subset of the segment lanes D2(n), for n=1 through N, associated with the second data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and at least a subset of the plurality of first stage outputs and the segment lanes coupled to the plurality of first stage inputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, and a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the first data path where the first stage is capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the first data path.
Claim 16
Dependent Claim
99 words
The apparatus of claim 13, wherein the control resource further includes a control input for receiving a segment enable signal for each segment of data on the segment lanes D2(n) to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane D2(n) corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane D2(n) corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data.
Claim 17
Dependent Claim
52 words
The apparatus of claim 14, wherein the first data path is coupled to a host bus, the second data path is coupled to a buffer, the plurality of first stage inputs is coupled to the second data path, and the plurality of first stage outputs is coupled to the first data path.
Claim 18
Dependent Claim
24 words
The apparatus of claim 15, wherein the first control signal includes a selector enable signal and the second control signal includes a rotate signal.
Claim 19
Dependent Claim
140 words
The apparatus of claim 16, wherein the first stage includes: a plurality of queuing stores having store inputs R in (k), for k=1 through N, coupled to the subset of the segment lanes D2(n), for n=1 through N, and store outputs R out (k), for k=1 through N, for storing the segment of data from the subset of the segment lanes D2(n), for n=1 through N, in response to a queue enable signal; and a plurality of selectors having selector inputs M in (m), for m=1 through N, coupled to the store outputs R out (k), for k=1 through N, and the subset of the segment lanes D2(n), for n=1 through N, and selector outputs M out (m), for m=1 through N, for supplying a selected segment of data to the selector outputs in response to the selector enable signal.
Claim 20
Dependent Claim
15 words
The apparatus of claim 17, wherein the queue enable signal includes a clock strobe signal.
Claim 21
Dependent Claim
122 words
The apparatus of claim 17, wherein the second stage includes: a shifter for transferring segments of data from the selected second stage input to the selected second stage output, wherein the plurality of second stage inputs includes a plurality of shifter inputs X2 in (j), for j=0 through N, coupled to the segment lanes D2(n), for n=0, and the plurality of selectors at the selector outputs M out (m), for m=1 through N, and the plurality of second stage outputs includes a plurality of shifter outputs X2 out (j), for j=0 through N, for transferring segments of data from a selected second stage input X2 in (j) to a selected second stage output X2 out (j) in response to the rotate signal.
Claim 22
Dependent Claim
33 words
The apparatus of claim 19, wherein the selected second stage output X2 out (j) corresponds to the segment lane D1(n) with the lowest n that is enabled for receiving the segment of data.
Claim 23
Dependent Claim
69 words
The apparatus of claim 20, wherein the control resource generates the rotate signal by determining a data offset value and a read count value, the data offset value determined by counting the segment lanes D2(n) not transferring segments of data and the read count value determined by counting the segment lanes D2(n) transferring the segments of data the rotate value equals the data offset minus the read count value.
Claim 24
Dependent Claim
61 words
The apparatus of claim 21, wherein the control resource determines the data offset value by counting the number of segment enable signals in the invalid state from a lowest segment lane D2(n), for n=0, to a higher segment lane D2(n), for n=1 through N, until the segment lane D2(n) corresponding to the segment enable signal in the valid state is reached.
Claim 25
Dependent Claim
104 words
The apparatus of claim 19, wherein each selector among the plurality of selectors comprises a 2-to-1 multiplexer (MUX), including: a first MUX input coupled to a corresponding store output, a second MUX input coupled to a corresponding subset of segment lanes D2(n), for n=1 through N, a MUX control input for receiving the selector enable signal and selecting one of the first MUX input and the second MUX input, and a MUX output for transferring the selected segment of data on one of the first MUX input and the second MUX input in response to the selector enable signal at the MUX control input.
Claim 26
Dependent Claim
26 words
The apparatus of claim 21, wherein the control resource determines the read count value by counting the number of segment enable signals in the valid state.
Claim 27
Dependent Claim
86 words
The apparatus of claim 21, wherein the selector enable signal includes: a bypass enable signal for bypassing at least one of the plurality of queuing stores, where the control resource generates the bypass enable signal to select the second MUX input corresponding to the subset of segment lanes D2(n), for n=1 through N, and a nonbypass enable signal for not bypassing the plurality of queuing stores, where the control resource generates the nonbypass enable signal to select the first MUX input corresponding to the store output.
Claim 28
Dependent Claim
49 words
The apparatus of claim 25, wherein the control resource generates the bypass enable signal when a sum of the segments of data in the queuing stores and the segments of data in the segment lanes D2(n), for n=0 through N, equals a desired number of the segments of data.
Claim 29
Dependent Claim
49 words
The apparatus of claim 25, wherein the control resource generates the bypass enable signal when all segments of data necessary to satisfy a desired number of the segments of data for the transfer are located on the segment lanes D2(n), for n=O through N, in the first data path.
Claim 30
Dependent Claim
53 words
The apparatus of claim 25, wherein the control resource generates the bypass enable signal when the queuing stores contain no segment of data and all segments of data necessary to satisfy a desired number of the segments of data for the transfer are located on the segment lanes D2(n), for n=0 through N.
Claim 31
Dependent Claim
55 words
The apparatus of claim 25, wherein the control resource generates the nonbypass enable signal when a sum of the segments of data stored in the queuing stores and the read count value is less than the number of segments of data necessary to satisfy a desired number of the segments of data for the transfer.
Claim 32
Dependent Claim
55 words
The apparatus of claim 25, wherein the control resource generates the nonbypass enable signal when a sum of the segments of data stored in the queuing stores and the new count value is greater than the number of segments of data necessary to satisfy a desired number of the segments of data for the transfer.
Claim 33
Independent Claim
187 words
A device for transferring data units from a host system, having a host bus having a plurality of segment data lanes, to a network, comprising: a bus interface, coupled to the host bus, for transferring a data unit on each segment data lane in a subset of the plurality of segment data lanes during a bus write cycle; means for receiving a valid data unit signal from the host system; a buffer, having a plurality of memory locations, for storing each data unit; a data path between the bus interface and the buffer; a network controller, coupled to the buffer and the network, for transferring a data unit between the buffer and the network; and a data aligner, in the data path, for controlling alignment of each data unit in the data path in response to the valid data unit signal so that the data units having a selected width and selected alignment are transferred on the subset and sequentially stored in the plurality of buffer memory locations having a fixed width and fixed alignment without requiring redundant writes of any transferred data unit in the subset.
Claim 34
Independent Claim
187 words
A device for transferring data units from a host system, having a host bus having a plurality of segment data lanes, to a network, comprising: a bus interface, coupled to the host bus, for transferring a data unit on each segment data lane in a subset of the plurality of segment data lanes during a bus write cycle; means for receiving a valid data unit signal from the host system; a buffer, having a plurality of memory locations, for storing each data unit; a data path between the bus interface and the buffer; a network controller, coupled to the buffer and the network, for transferring a data unit between the buffer and the network; and a data aligner, in the data path, for controlling alignment of each data unit in the data path in response to the valid data unit signal so that the data units having a selected width and selected alignment are transferred on the subset and sequentially stored in the plurality of buffer memory locations having a fixed width and fixed alignment without requiring redundant writes of any transferred data unit in the subset.
Claim 35
Independent Claim
185 words
A device for transferring data units from a network to a host system having a host bus having a plurality of segment data lanes, comprising: a bus interface, coupled to the host bus, for transferring a data unit on each segment data lane during a bus read cycle; means for receiving a valid data unit signal from the host system; a buffer, having a plurality of memory locations, for storing each data unit; a data path between the bus interface and the buffer; a network controller, coupled to the buffer and the network, for transferring data units between the network and the buffer; and a data aligner, in the data path, for controlling alignment of each data unit in the data path in response to the valid data unit signal so that the data units having a fixed width are transferred on a subset of the plurality of segment data lanes to form data units of a selected width and a selected alignment, each segment lane in the subset transferring a data unit, without requiring redundant reads of any transferred data unit in the subset.
Claim 36
Independent Claim
185 words
A device for transferring data units from a network to a host system having a host bus having a plurality of segment data lanes, comprising: a bus interface, coupled to the host bus, for transferring a data unit on each segment data lane during a bus read cycle; means for receiving a valid data unit signal from the host system; a buffer, having a plurality of memory locations, for storing each data unit; a data path between the bus interface and the buffer; a network controller, coupled to the buffer and the network, for transferring data units between the network and the buffer; and a data aligner, in the data path, for controlling alignment of each data unit in the data path in response to the valid data unit signal so that the data units having a fixed width are transferred on a subset of the plurality of segment data lanes to form data units of a selected width and a selected alignment, each segment lane in the subset transferring a data unit, without requiring redundant reads of any transferred data unit in the subset.
Claim 37
Independent Claim
146 words
A method of transferring segments of data between a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising step: generating a control signal at a control resource; mapping segments of data between the first data path and the second data path in response to the control signal, the first data path having a selected number and a selected alignment of the segments of data to be transferred, and the second data path having a fixed number of the segments of data to be transferred; and transferring at least a segment of data between the first data path and the second data path in response to the control signal.
Claim 38
Independent Claim
146 words
A method of transferring segments of data between a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising step: generating a control signal at a control resource; mapping segments of data between the first data path and the second data path in response to the control signal, the first data path having a selected number and a selected alignment of the segments of data to be transferred, and the second data path having a fixed number of the segments of data to be transferred; and transferring at least a segment of data between the first data path and the second data path in response to the control signal.
Claim 39
Dependent Claim
93 words
The method of claim 33, further comprising step: receiving a segment enable signal at the control resource for each segment of data on the segment lanes to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data.
Claim 40
Dependent Claim
25 words
The method of claim 34, wherein the step of generating the control signal includes: generating a first control signal; and generating a second control signal.
Claim 41
Dependent Claim
198 words
The method of claim 35, wherein the step of mapping includes: receiving at least a segment of data at a selected first stage input of a first stage, the first stage coupled to the control resource and at least a subset of the segment lanes associated with one of the first and second data paths, supplying the segment of data at a selected first stage output in response to the first control signal, receiving the segment of data at a selected second stage input of a second stage, the second stage coupled to the control resource and at least a subset of the first stage output and the segment lanes coupled to the first stage input, and supplying the segment of data at a selected second stage output in response to the second control signal and coupling the segment of data to the segment lanes not associated with the data path coupled to the first stage input, where a selected one of the first stage and the second stage is capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of one of the first and second data paths.
Claim 42
Independent Claim
866 words
An apparatus for writing segments of data from a host bus to a buffer, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the first data path to the second data path without redundant accesses of segments of data to be transferred, the second data path having a fixed number of the segments of data to be transferred, and the first data path having a selected number and a selected alignment of the segments of data to be transferred; a first stage including, a plurality of first stage inputs, coupled to the control resource and the segment lanes D1(n), for n=0 through N, associated with the first data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and a subset of the plurality of first stage outputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the second data path, the second stage capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the second data path, wherein the control resource further includes a control input for receiving a segment enable signal for each segment of data on the segment lanes D1(n) to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane D1(n) corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane D1(n) corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data, wherein the first control signal includes a rotate signal and the second control signal includes an output enable signal, wherein the first stage includes: a shifter for transferring segments of data from the selected first stage input to the selected first stage output, wherein the plurality of first stage inputs includes a plurality of shifter inputs X1 in (j), for j=0 through N, corresponding to segment lanes D1(n), for n=0 through N, and the plurality of first stage outputs includes a plurality of shifter outputs X1 out (j), for j=0 through N, for transferring segments of data from a selected first stage input X1 in (j) to a selected first stage output X1 out (j) in response to the rotate signal, wherein the second stage includes: a plurality of queuing stores having store inputs R in (k), for k=0 through N-1, coupled to the shifter at the plurality of first stage outputs X1 out (j), for j=0 through N-1, and store outputs R out (k), for k=0 through N-1, for storing the segment of data from the selected shifter outputs in response to a queue enable signal; and a plurality of selectors having selector inputs M in (m), for m=0 through N-1, coupled to the store outputs R out (k), for k=0 through N-1, and shifter outputs X1 out (j), for j=0 through N-1, and selector outputs M out (m), for m=0 through N-1, for supplying a selected segment of data to segment lanes D2(n), for n=0 through N-1, at the second data path in response to the output enable signal, wherein each selector among the plurality of selectors comprises a 2-to-1 multiplexer (MUX), including: a first MUX input coupled to a corresponding store output, a second MUX input coupled to a corresponding shifter output, a MUX control input for receiving the output enable signal and selecting one of the first MUX input and the second MUX input, and a MUX output for transferring the selected segment of data on one of the first MUX input and the second MUX input in response to the output enable signal at the MUX control input, and wherein the control resource generates the rotate signal by determining a data offset value and a current queue value, the data offset value determined by counting the segment lanes D1(n) not transferring segments of data and the current queue value determined by counting the queuing stores storing segments of data, the rotate value equals the current queue value minus the data offset value.
Claim 43
Independent Claim
866 words
An apparatus for writing segments of data from a host bus to a buffer, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the first data path to the second data path without redundant accesses of segments of data to be transferred, the second data path having a fixed number of the segments of data to be transferred, and the first data path having a selected number and a selected alignment of the segments of data to be transferred; a first stage including, a plurality of first stage inputs, coupled to the control resource and the segment lanes D1(n), for n=0 through N, associated with the first data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and a subset of the plurality of first stage outputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the second data path, the second stage capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the second data path, wherein the control resource further includes a control input for receiving a segment enable signal for each segment of data on the segment lanes D1(n) to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane D1(n) corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane D1(n) corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data, wherein the first control signal includes a rotate signal and the second control signal includes an output enable signal, wherein the first stage includes: a shifter for transferring segments of data from the selected first stage input to the selected first stage output, wherein the plurality of first stage inputs includes a plurality of shifter inputs X1 in (j), for j=0 through N, corresponding to segment lanes D1(n), for n=0 through N, and the plurality of first stage outputs includes a plurality of shifter outputs X1 out (j), for j=0 through N, for transferring segments of data from a selected first stage input X1 in (j) to a selected first stage output X1 out (j) in response to the rotate signal, wherein the second stage includes: a plurality of queuing stores having store inputs R in (k), for k=0 through N-1, coupled to the shifter at the plurality of first stage outputs X1 out (j), for j=0 through N-1, and store outputs R out (k), for k=0 through N-1, for storing the segment of data from the selected shifter outputs in response to a queue enable signal; and a plurality of selectors having selector inputs M in (m), for m=0 through N-1, coupled to the store outputs R out (k), for k=0 through N-1, and shifter outputs X1 out (j), for j=0 through N-1, and selector outputs M out (m), for m=0 through N-1, for supplying a selected segment of data to segment lanes D2(n), for n=0 through N-1, at the second data path in response to the output enable signal, wherein each selector among the plurality of selectors comprises a 2-to-1 multiplexer (MUX), including: a first MUX input coupled to a corresponding store output, a second MUX input coupled to a corresponding shifter output, a MUX control input for receiving the output enable signal and selecting one of the first MUX input and the second MUX input, and a MUX output for transferring the selected segment of data on one of the first MUX input and the second MUX input in response to the output enable signal at the MUX control input, and wherein the control resource generates the rotate signal by determining a data offset value and a current queue value, the data offset value determined by counting the segment lanes D1(n) not transferring segments of data and the current queue value determined by counting the queuing stores storing segments of data, the rotate value equals the current queue value minus the data offset value.
Claim 44
Dependent Claim
61 words
The apparatus of claim 37, wherein the control resource determines the data offset value by counting the number of segment enable signals in the invalid state from a lowest segment lane D1(n), for n=0, to a higher segment lane D1(n), for n=1 through N, until the segment lane D1(n) corresponding to the segment enable signal in the valid state is reached.
Claim 45
Dependent Claim
86 words
The apparatus of claim 37, wherein the output enable signal includes: a bypass enable signal for bypassing at least one of the plurality of queuing stores, where the control resource generates the bypass enable signal to select the second MUX input corresponding to the shifter outputs X1 out (j), for j=0 through N-1, and a nonbypass enable signal for not bypassing the plurality of queuing stores, where the control resource generates the nonbypass enable signal to select the first MUX input corresponding to the store output.
Claim 46
Dependent Claim
52 words
The apparatus of claim 39, wherein the control resource generates the bypass enable signal when a sum of the current queue value and the number of segment enable signals corresponding to segment lanes D1(n) transferring segments of data equals the fixed number of the segments of data on the second data path.
Claim 47
Dependent Claim
19 words
The apparatus of claim 40, wherein a desired number of the fixed number of segments of data is N+1.
Claim 48
Dependent Claim
48 words
The apparatus of claim 39, wherein the control resource generates the nonbypass enable signal when a sum of the current queue value and the number of segment enable signals corresponding to segment lanes D1(n) transferring segments of data is one of less than N+1 and greater than N+1.
Claim 49
Independent Claim
880 words
An apparatus for reading segments of data from a buffer to a host bus, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the second data path to the first data path without redundant accesses of segments of data to be transferred, the first data path having a selected number and a selected alignment of the segments of data to be transferred, and the second data path having a fixed number of the segments of data to be transferred; a first stage including a plurality of first stage inputs, coupled to the control resource and a subset of the segment lanes D2(n), for n=1 through N, associated with the second data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and at least a subset of the plurality of first stage outputs and the segment lanes coupled to the plurality of first stage inputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, and a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the first data path where the first stage is capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the first data path, wherein the control resource further includes a control input for receiving a segment enable signal for each segment of data on the segment lanes D2(n) to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane D2(n) corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane D2(n) corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data, wherein the first data path is coupled to a host bus, the second data path is coupled to a buffer, the plurality of first stage inputs is coupled to the second data path, and the plurality of first stage outputs is coupled to the first data path, wherein the first control signal includes a selector enable signal and the second control signal includes a rotate signal, wherein the first stage includes: a plurality of queuing stores having store inputs R in (k), for k=1 through N, coupled to the subset of the segment lanes D2(n), for n=1 through N, and store outputs R out (k), for k=1 through N, for storing the segment of data from the subset of the segment lanes D2(n), for n=1 through N, in response to a queue enable signal; and a plurality of selectors having selector inputs M in (m), for m=1 through N, coupled to the store outputs R out (k), for k=1 through N, and the subset of the segment lanes D2(n), for n=1 through N, and selector outputs M out (m), for m=1 through N, for supplying a selected segment of data to the selector outputs in response to the selector enable signal, wherein the second stage includes: a shifter for transferring segments of data from the selected second stage input to the selected second stage output, wherein the plurality of second stage inputs includes a plurality of shifter inputs X2 in (j), for j=0 through N, coupled to the segment lanes D2(n), for n=0, and the plurality of selectors at the selector outputs M out (m), for m=1 through N, and the plurality of second stage outputs includes a plurality of shifter outputs X2 out (j), for j=0 through N, for transferring segments of data from a selected second stage input X2 in (j) to a selected second stage output X2 out (j) in response to the rotate signal, wherein the selected second stage output X2 out (j) corresponds to the segment lane D1(n) with the lowest n that is enabled for receiving the segment of data, and wherein the control resource generates the rotate signal by determining a data offset value and a read count value, the data offset value determined by counting the segment lanes D2(n) not transferring segments of data and the read count value determined by counting the segment lanes D2(n) transferring segments of data the rotate value equals the data offset value minus the read count value.
Claim 50
Independent Claim
880 words
An apparatus for reading segments of data from a buffer to a host bus, the host bus coupled to a first data path having N+1 segment lanes D1(n), for n=0 through N, each segment lane D1(n) for transferring a segment of data, and the buffer coupled to a second data path having N+1 segment lanes D2(n), for n=0 through N, each segment lane D2(n) for transferring a segment of data, comprising: a control resource having a control output for generating a first control signal and a second control signal which map segments of data from the second data path to the first data path without redundant accesses of segments of data to be transferred, the first data path having a selected number and a selected alignment of the segments of data to be transferred, and the second data path having a fixed number of the segments of data to be transferred; a first stage including a plurality of first stage inputs, coupled to the control resource and a subset of the segment lanes D2(n), for n=1 through N, associated with the second data path, for receiving at least a segment of data at a selected first stage input among the plurality of first stage inputs, and a plurality of first stage outputs for supplying the segment of data at a selected first stage output among the plurality of first stage outputs in response to the first control signal; and a second stage including, a plurality of second stage inputs coupled to the control resource and at least a subset of the plurality of first stage outputs and the segment lanes coupled to the plurality of first stage inputs, for receiving the segment of data at a selected second stage input among the plurality of second stage inputs, and a plurality of second stage outputs for supplying the segment of data at a selected second stage output among the plurality of second stage outputs in response to the second control signal and coupling the segment of data to the segment lanes associated with the first data path where the first stage is capable of queuing and storing segments of data for selectively aligning the segments of data on selected segment lanes of the first data path, wherein the control resource further includes a control input for receiving a segment enable signal for each segment of data on the segment lanes D2(n) to indicate a validity state of the corresponding segment of data, the validity state including a valid state to indicate that the segment lane D2(n) corresponding to the segment enable signal is transferring a valid segment of data, and an invalid state to indicate that the segment lane D2(n) corresponding to the segment enable signal is transferring one of an invalid segment of data and no segment of data, wherein the first data path is coupled to a host bus, the second data path is coupled to a buffer, the plurality of first stage inputs is coupled to the second data path, and the plurality of first stage outputs is coupled to the first data path, wherein the first control signal includes a selector enable signal and the second control signal includes a rotate signal, wherein the first stage includes: a plurality of queuing stores having store inputs R in (k), for k=1 through N, coupled to the subset of the segment lanes D2(n), for n=1 through N, and store outputs R out (k), for k=1 through N, for storing the segment of data from the subset of the segment lanes D2(n), for n=1 through N, in response to a queue enable signal; and a plurality of selectors having selector inputs M in (m), for m=1 through N, coupled to the store outputs R out (k), for k=1 through N, and the subset of the segment lanes D2(n), for n=1 through N, and selector outputs M out (m), for m=1 through N, for supplying a selected segment of data to the selector outputs in response to the selector enable signal, wherein the second stage includes: a shifter for transferring segments of data from the selected second stage input to the selected second stage output, wherein the plurality of second stage inputs includes a plurality of shifter inputs X2 in (j), for j=0 through N, coupled to the segment lanes D2(n), for n=0, and the plurality of selectors at the selector outputs M out (m), for m=1 through N, and the plurality of second stage outputs includes a plurality of shifter outputs X2 out (j), for j=0 through N, for transferring segments of data from a selected second stage input X2 in (j) to a selected second stage output X2 out (j) in response to the rotate signal, wherein the selected second stage output X2 out (j) corresponds to the segment lane D1(n) with the lowest n that is enabled for receiving the segment of data, and wherein the control resource generates the rotate signal by determining a data offset value and a read count value, the data offset value determined by counting the segment lanes D2(n) not transferring segments of data and the read count value determined by counting the segment lanes D2(n) transferring segments of data the rotate value equals the data offset value minus the read count value.
Claim 51
Dependent Claim
61 words
The apparatus of claim 43, wherein the control resource determines the data offset value by counting the number of segment enable signals in the invalid state from a lowest segment lane D2(n), for n=0, to a higher segment lane D2(n), for n=1 through N, until the segment lane D2(n) corresponding to the segment enable signal in the valid state is reached.
Claim 52
Dependent Claim
26 words
The apparatus of claim 43, wherein the control resource determines the read count value by counting the number of segment enable signals in the valid state.
Claim 53
Dependent Claim
86 words
The apparatus of claim 43, wherein the selector enable signal includes: a bypass enable signal for bypassing at least one of the plurality of queuing stores, where the control resource generates the bypass enable signal to select the second MUX input corresponding to the subset of segment lanes D2(n), for n=1 through N, and a nonbypass enable signal for not bypassing the plurality of queuing stores, where the control resource generates the nonbypass enable signal to select the first MUX input corresponding to the store output.
Claim 54
Dependent Claim
49 words
The apparatus of claim 46, wherein the control resource generates the bypass enable signal when a sum of the segments of data in the queuing stores and the segments of data in the segment lanes D2(n), for n=0 through N, equals a desired number of the segments of data.
Claim 55
Dependent Claim
49 words
The apparatus of claim 46, wherein the control resource generates the bypass enable signal when all segments of data necessary to satisfy a desired number of the segments of data for the transfer are located on the segment lanes D2(n), for n=O through N, in the first data path.
Claim 56
Dependent Claim
53 words
The apparatus of claim 46, wherein the control resource generates the bypass enable signal when the queuing stores contain no segment of data and all segments of data necessary to satisfy a desired number of the segments of data for the transfer are located on the segment lanes D2(n), for n=0 through N.
Claim 57
Dependent Claim
55 words
The apparatus of claim 46, wherein the control resource generates the nonbypass enable signal when a sum of the segments of data stored in the queuing stores and the read count value is less than the number of segments of data necessary to satisfy a desired number of the segments of data for the transfer.
Claim 58
Dependent Claim
55 words
The apparatus of claim 46, wherein the control resource generates the nonbypass enable signal when a sum of the segments of data stored in the queuing stores and the new count value is greater than the number of segments of data necessary to satisfy a desired number of the segments of data for the transfer.