Method and apparatus for aligning data for transfer between a source memory and a destination memory over a multibit bus
AssigneeNational Semiconductor Corporation
InventorJohnny Chuang-Li Lee
Life of this patent
Estimating the term…
Abstract
A data alignment logic cell properly aligns the individual data units (e.g., bytes) in a block of data that is transferred in a multiple bit bus such that the data units in the block are transferred to desired lanes of the bus. The data alignment logic cell includes a gathering unit, which aligns the data units into a fixed, justified arrangement in the bus, and a scattering unit, which receives the data units from the gathering unit and realigns them to the desired lanes. Both the gathering and scattering units contain registers for temporarily storing certain of the data units and multiplexers for transferring the data units between the lanes of the bus, the state of the multiplexers being determined by signals from control units.
Claims11
A data alignment logic cell for transferring a block of data between a source memory and a destination memory over a multiple bit bus, said block being defined in said source memory by a starting source address and a number of data units to be transferred, said cell comprising:
- a gathering unit for rearranging said block of data such that an initial data unit stored at said starting source address is shifted to a fixed lane of said bus and
- a scattering unit for rearranging said block of data such that said initial data unit is shifted from said fixed lane to a lane of said bus that corresponds to a starting destination address in said destination memory, an output of said gathering unit being connected to an input of said scattering unit, each of said units containing:
- a plurality of registers;
- a plurality of multiplexers;
- and
- a control unit,
- an output of each of said registers being connected to an input of one or more of said multiplexers, said control unit delivering a binary code which selects an input of each of said multiplexers, said gathering unit receiving a data unit from a first lane of said bus and delivering said unit of data to said scattering unit, said scattering unit delivering said unit of data to a second lane of said bus, said gathering and scattering units thereby aligning said data unit on said bus in response to the codes provided by said control units.
A method of transferring a block of data from a source memory to a destination memory over a multiple bit bus, said block of data being defined by a number of data units and a starting source address in said source memory, said block of data to be transferred to a plurality of storage locations in said destination memory defined by a starting destination address, said bus having N data lanes, said method comprising:
- gathering said data block such that a first data unit is certain to appear in a first data lane of said bus, a second data unit is certain to appear in a second data lane of said bus, and a third data unit is certain to appear in a third data lane of said bus, wherein said first data lane corresponds to said starting source address;
- and
- scattering said data block such that said first data unit is transferred to a first destination lane of said bus, said second data unit is transferred to a second destination lane of said bus, and said third data unit is transferred to a third destination lane of said bus, wherein said first destination lane corresponds to said starting destination address and said step of gathering occurs prior to said step of scattering.
Dependencies are inferred from the claim text.