Method and system for interleaving first and second halves of a data segment of unknown length

Information

  • Patent Application
  • 20070162714
  • Publication Number
    20070162714
  • Date Filed
    December 19, 2006
    17 years ago
  • Date Published
    July 12, 2007
    16 years ago
Abstract
Method and system for dividing a data segment of unknown length into first and second halves, for example, for interleaving the first and second halves. Units of the data segment are written into first and second register files. With respect to the first register file, responsive to determining that the last unit of the data segment has been written into the first register file, units of the data segment in the first register file that are not units of the first half of the data segment are removed, wherein the first register file stores the first half of the data segment. With respect to the second register file, responsive to writing each unit of the data segment into the second register file, data currently stored in the second register file is adjusted to comprise a last half of the data so far written into the second register file, wherein, when the last unit of the data segment has been written into the second register file, and the data currently stored in the second register file has been adjusted, the data currently stored in the second register file comprises the second half of the data segment.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself however, as well as a preferred mode of use, further objects and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:



FIG. 1 is a pictorial representation of a data processing system in which the present invention may be implemented;



FIG. 2 is a block diagram of a data processing system in which the present invention may be implemented;



FIGS. 3A and 3B together show a block diagram that illustrates a system for interleaving first and second halves of a data segment of unknown length according to an exemplary embodiment;



FIG. 4 is a diagram that schematically illustrates operation of the large register file of FIGS. 3A and 3B according to an exemplary embodiment;



FIG. 5 is a diagram that schematically illustrates operation of the small register file of FIGS. 3A and 3B according to an exemplary embodiment; and



FIG. 6 is a flowchart that illustrates a method for interleaving first and second halves of a data segment of unknown length according to an exemplary embodiment.


Claims
  • 1. A method for dividing a data segment into first and second halves of the data segment, wherein the data segment comprises an unknown plurality of data units, the method comprising: sequentially writing units of the data segment into first and second register files;with respect to the first register file: responsive to determining that the last unit of the data segment has been written into the first register file, removing units of the data segment in the first register file that are not units of the first half of the data segment, wherein the first register file stores the first half of the data segment; andwith respect to the second register file: responsive to writing each unit of the data segment into the second register file, adjusting data currently stored in the second register file to comprise a last half of the data so far written into the second register file, wherein when the last unit of the data segment has been written into the second register file, and the data currently stored in the second register file has been adjusted, the data currently stored in the second register file comprises the second half of the data segment.
  • 2. The method according to claim 1, further comprising marking the last unit of the data segment to identify it as the last unit of the data segment, and wherein responsive to determining that the last unit of the data segment has been written into the first register file, removing units of data of the data segment in the first register file that are not units of the first half of the data segment, wherein the first register file stores the first half of the data segment comprises: responsive to detecting that the marked last unit of the data segment has been written into the first register file, removing units of the data segment in the first register file that are not units of the first half of the data segment, wherein the first register file stores the first half of the data segment.
  • 3. The method according to claim 2, wherein removing units of the data segment in the first register file that are not units of data of the first half of the data segment, comprises: trimming the data stored in the first register file back to the first half of the data segment.
  • 4. The method according to claim 3, wherein trimming the data stored in the first register file back to the first half of the data segment, comprises: counting units of data written into the first register file; anddividing the counted units of data written into the first register file by two.
  • 5. The method according to claim 1, wherein a unit of data comprises an even number of data bits.
  • 6. The method according to claim 1, wherein adjusting data currently stored in the second register file to comprise a last half of the data so far written into the second register file, comprises: adjusting a boundary between a first half and a second half of the data currently stored in the second register file by half a unit of the data as a unit of the input data segment is written into the second register file.
  • 7. The method according to claim 6, wherein adjusting a boundary between a first half and a second half of the data currently stored in the second register file by half a unit of data as a unit of the input data segment is written into the second register file, comprises: one of removing the half a unit of data from the second register file or considering the half a unit of data as pad in the second register file.
  • 8. The method according to claim 2, wherein marking the last unit of the data segment to identify it as the last unit of the data segment, comprises counting each unit of data written into the first and second register files.
  • 9. The method according to claim 1, and further comprising: interleaving the first and second halves of the data segment to provide an interleaved data segment.
  • 10. A system for dividing a data segment into first and second halves of the data segment, wherein the data segment comprises an unknown plurality of data units, the system comprising: first and second register files for receiving units of the data segment sequentially written thereinto,the first register file comprising:a removing mechanism, responsive to determining that the last unit of the data segment has been written into the first register file, for removing units of the data segment in the first register file that are not units of the first half of the data segment, wherein the first register file stores the first half of the data segment; andthe second register file comprising:an adjusting mechanism, responsive to writing each unit of the data segment into the second register file, for adjusting data currently stored in the second register file to comprise a last half of the data so far written into the second register file, wherein, when the last unit of the data segment has been written into the second register file, and the data currently stored in the second register file has been adjusted, the data currently stored in the second register file comprises the second half of the data segment.
  • 11. The system according to claim 10, and further comprising a last symbol marker for marking the last unit of the data segment to identify it as the last unit of the data segment, wherein the removing mechanism, responsive to detecting that the marked last unit of the data segment has been written into the first register file, removes units of the data segment in the first register file that are not units of the first half of the data segment, wherein the first register file stores the first half of the data segment.
  • 12. The system according to claim 11, wherein the removing mechanism comprises: a trimming mechanism for trimming the data stored in the first register file back to the first half of the data segment.
  • 13. The system according to claim 12, wherein the trimming mechanism comprises: a counter for counting units of data written into the first register file; anda mechanism for dividing the counted units of data written into the first register file by two.
  • 14. The system according to claim 10, wherein a unit of data comprises an even number of data bits.
  • 15. The system according to claim 10, wherein the adjusting mechanism comprises: a boundary adjusting mechanism for adjusting a boundary between a first half and a second half of the data currently stored in the second register file by half a unit of the data as a unit of the input data segment is written into the second register file.
  • 16. The system according to claim 15, wherein the boundary adjusting mechanism comprises: a mechanism for one of removing the half a unit of data from the second register file or considering the half a unit of data as pad in the second register file.
  • 17. The system according to claim 11, wherein the last symbol marker comprises a data unit counter for counting each unit of data written into the first and second register files.
  • 18. The system according to claim 10, and further comprising: an interleaver for interleaving the first and second halves of the data segment to provide an interleaved data segment.
  • 19. A method for interleaving first and second halves of a data segment, wherein the data segment comprises an unknown plurality of data units, the method comprising: sequentially writing units of the data segment into first and second register files;with respect to the first register file: responsive to determining that the last unit of the data segment has been written into the first register file, removing units of the data segment in the first register file that are not units of the first half of the data segment, wherein the first register file stores the first half of the data segment; andwith respect to the second register file: responsive to writing each unit of the data segment into the second register file, adjusting data currently stored in the second register file to comprise a last half of the data so far written into the second register file, wherein, when the last unit of the data segment has been written into the second register file, and the data currently stored in the second register file has been adjusted, the data currently stored in the second register file comprises the second half of the data segment; andinterleaving the first and second halves of the data segment to provide an interleaved data segment.
  • 20. The method according to claim 19, further comprising marking the last unit of the data segment to identify it as the last unit of the data segment.
Provisional Applications (1)
Number Date Country
60757832 Jan 2006 US