1. A method comprising:
converting between a full-data snapshot and a space-saving snapshot, wherein
the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and
the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein
memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and
no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs.
2. The method of claim 1 wherein
converting from the full-data snapshot to the space-saving snapshot comprises:
identifying a first set of regions of the plurality of regions, wherein
each region in the first set has primary data that have changed since a point in time;
allocating memory in the space-saving snapshot for each region in the first set of regions; and
copying an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.
3. The method of claim 2 further comprising:
identifying a second set of regions of the primary data, wherein
each region in the second set has primary data that have not changed since the point in time; and
freeing memory previously allocated for the second set of regions in the full-data snapshot.
4. The method of claim 2 further comprising:
marking each region in the space-saving snapshot as valid in the full-data snapshot; and
after each region in the space-saving snapshot is marked in the full-data snapshot,
marking each unmarked region in the full-data snapshot as invalid in the full-data snapshot.
5. The method of claim 1 wherein converting from the space-saving snapshot to the full-data snapshot comprises:
allocating memory to store the primary data to the full-data snapshot;
saving valid data from the space-saving snapshot in the full-data snapshot; and
copying data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.
6. The method of claim 5 further comprising:
constructing the full-data snapshot as an instant full-data snapshot by performing the following:
after the valid data are saved in the full-data snapshot, making the full-data snapshot available; and
performing the copying of the data for the regions with no data from the parent into the full-data snapshot while the full-data snapshot is available.
7. The method of claim 5 wherein
the parent of the space-saving snapshot comprises the primary data.
8. The method of claim 5 further comprising:
marking each region in the full-data snapshot as valid.
9. A computer-readable storage medium comprising:
converting instructions, executable by a processor, and configured to convert between a full-data snapshot and a space-saving snapshot, wherein
the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and
the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein
memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and
no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs.
10. The computer-readable storage medium of claim 9 further comprising:
first converting instructions, executable by the processor, and configured to convert from the full-data snapshot to the space-saving snapshot, wherein the first instructions comprise:
identifying instructions, executable by the processor, and configured to identify a first set of regions of the plurality of regions, wherein
each region in the first set has primary data that have changed since a point in time;
allocating instructions, executable by the processor, and configured to allocate memory in the space-saving snapshot for each region in the first set of regions; and
copying instructions, executable by the processor, and configured to copy an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.
11. The computer-readable storage medium of claim 10 further comprising:
second identifying instructions, executable by the processor, and configured to identify a second set of regions of the primary data, wherein
each region in the second set has primary data that have not changed since the point in time; and
freeing instructions, executable by the processor, and configured to free memory previously allocated for the second set of regions in the full-data snapshot.
12. The computer-readable storage medium of claim 9 further comprising:
first marking instructions, executable by the processor, and configured to mark each region in the space-saving snapshot as valid in the full-data snapshot; and
second marking instructions, executable by the processor, and configured to perform the following:
after each region in the space-saving snapshot is marked in the full-data snapshot, mark each unmarked region in the full-data snapshot as invalid in the full-data snapshot.
13. The computer-readable storage medium of claim 9 further comprising:
second converting instructions, executable by the processor, and configured to convert from the space-saving snapshot to the full-data snapshot, wherein the second instructions comprise:
allocating instructions, executable by the processor, and configured to allocate memory to store the primary data to the full-data snapshot;
saving instructions, executable by the processor, and configured to save valid data from the space-saving snapshot in the full-data snapshot; and
copying instructions, executable by the processor, and configured to copy data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.
14. The computer-readable storage medium of claim 13 further comprising:
constructing instructions, executable by the processor, and configured to construct the full-data snapshot as an instant full-data snapshot by performing the following:
after the valid data are saved in the full-data snapshot, making the full-data snapshot available; and
performing the copying of the data for the regions with no data from the parent into the full-data snapshot while the full-data snapshot is available.
15. The computer-readable storage medium of claim 13 wherein the parent of the space-saving snapshot comprises the primary data.
16. The computer-readable storage medium of claim 13 further comprising:
marking instructions, executable by the processor, and configured to mark each region in the full-data snapshot as valid.
17. A system comprising:
first converting means for converting between a full-data snapshot and a space-saving snapshot, wherein
the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and
the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein
memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and
no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs; and
second converting means for converting from the full-data snapshot to the space-saving snapshot.
18. The system of claim 17, wherein the second converting means comprise:
identifying instructions to identify a first set of regions of the plurality of regions, wherein
each region in the first set has primary data that have changed since a point in time;
allocating instructions to allocate memory in the space-saving snapshot for each region in the first set of regions; and
copying instructions to copy an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.
19. The system of claim 17 further comprising:
third converting means for converting from the space-saving snapshot to the full-data snapshot.
20. The system of claim 19, wherein the third converting means comprise:
allocating means for allocating memory to store the primary data to the full-data snapshot;
saving means for saving valid data from the space-saving snapshot in the full-data snapshot; and
copying means for copying data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.
21. A system comprising:
a converting module to convert between a full-data snapshot and a space-saving snapshot, wherein
the full-data snapshot comprises memory to store data for each region of a plurality of regions of primary data, and
the space-saving snapshot comprises memory to store data for each changed region of the plurality of regions of the primary data, wherein
memory to store data for a first region of the plurality of regions is allocated to the space-saving snapshot in response to a change to the primary data in the first region, and
no memory is allocated to the space-saving snapshot for a second region of the plurality of regions if no change to the primary data in the second region occurs.
22. The system of claim 21 further comprising:
a second converting module to convert from the full-data snapshot to the space-saving snapshot, wherein the second converting module comprises:
identifying instructions to identify a first set of regions of the plurality of regions, wherein
each region in the first set has primary data that have changed since a point in time;
allocating instructions to allocate memory in the space-saving snapshot for each region in the first set of regions; and
copying instructions to copy an original value for the primary data of each region in the first set of regions from the full-data snapshot to the space-saving snapshot.
23. The system of claim 21 further comprising:
a second converting module to convert from the space-saving snapshot to the full-data snapshot, wherein the second converting module comprises:
allocating instructions to allocate memory to store the primary data to the full-data snapshot;
saving instructions to save valid data from the space-saving snapshot in the full-data snapshot; and
copying instructions to copy data for regions with no data in the space-saving snapshot from a parent of the space-saving snapshot to the full-data snapshot.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of performing channel estimation by a receiver, comprising:
determining a frequency domain initial channel estimate;
transforming the frequency domain initial channel estimate to the time domain;
filtering the time domain initial channel estimate; and
transforming the filtered time domain initial channel estimate to the frequency domain.
2. The method of claim 1 wherein determining a frequency domain initial channel estimate comprises:
multiplying a frequency domain representation of a symbol representing a received signal with a predetermined training symbol; and
averaging the results of the multiplying over a plurality of symbols.
3. The method of claim 1 wherein filtering the time domain initial channel estimate comprises setting selected ones of samples of the time domain initial channel estimate to zero.
4. The method of claim 3 the selected ones of the samples are determined by a mask.
5. The method of claim 4 wherein the mask indicates that samples with an index of greater than an index value A and less than an index value B are to be set to zero.
6. The method of claim 5 wherein the index value A and the index value B are a constant.
7. The method of claim 5 wherein the index value A and the index value B are determined based on an index of a sample having a peak magnitude of the samples.
8. The method of claim 5 wherein the index value A and the index value B are determined based on an index of a sample having a peak magnitude of the samples and values of the samples other than the sample having a peak magnitude of the samples.
9. The method of claim 1 wherein the initial channel estimate is in bit reversed order and transforming the frequency domain initial channel estimate to the time domain is performed using a decimation in time method without bit reversal of inputs and transforming the filtered time domain initial channel estimate to the frequency domain is performed using a decimation in frequency method without bit reversal of outputs.
10. The method of claim 1 wherein the initial channel estimate is in non-bit reversed order and transforming the frequency domain initial channel estimate to the time domain is performed using a decimation in frequency method without bit reversal of outputs and transforming the filtered time domain initial channel estimate to the frequency domain is performed using a decimation in time method without bit reversal of inputs.
11. The method of claim 1 wherein the determining a frequency domain initial channel estimate, transforming the frequency domain initial channel estimate to the time domain, filtering the time domain initial channel estimate, and transforming the filtered time domain initial channel estimate to the frequency domain is performed separately for signals received over a plurality of subbands.
12. A system for forming channel estimates in a receiver, comprising:
an initial channel estimate block for forming an initial channel estimate;
a inverse Fast Fourier Transform (iFFT) block for transforming the initial channel estimate to the time domain;
a filter for filtering the time domain initial channel estimate;
a Fast Fourier Transform (FFT) block for transforming the filtered time domain initial channel estimate to the frequency domain.
13. The system of claim 12 wherein the filter is a low pass filter.
14. The system of claim 12 wherein the iFFT block and the FFT block are matched for bit reversal with each other and a FFT block of the receiver which transforms received symbols to the frequency domain.
15. The system of claim 12 further comprising a multiplexer configured to select the initial channel estimate or the filtered frequency domain channel estimate.
16. A receiver for a wireless communication system, comprising:
downconversion circuitry to downconvert received signals to baseband;
an analog to digital converter to digitize the baseband signals;
a Fast Fourier Transform (FFT) block to transform the digitized signal to the frequency domain; and
a channel estimate block to provide a channel estimate for use in performing channel compensation on the frequency domain signal, the channel estimate block including circuitry to form an initial channel estimate, an inverse Fast Fourier Transform (iFFT) block to transform the initial channel estimate to the time domain, a filter implementing a digital mask to mask selected samples of the fine domain initial channel estimate, and a further FFT block to transform the masked time domain initial channel estimate to the frequency domain.
17. The receiver of claim 16 wherein the FFT block and the further FFT block are configured to perform an FFT using a decimation in frequency process and the iFFT block is configured to perform an iFFT using a decimation in time process, and the FFT block and the further FFT block are not configured to perform bit reversal of output and the iFFT block is not configured to perform bit reversal of input.
18. The receiver of claim 16 wherein the FFT block and the further FFT block are configured to perform an FFT using a decimation in time process and the iFFT block is configured to perform an iFFT using a decimation in frequency process, and the FFT block and the further FFT block are not configured to perform bit reversal of input and the iFFT block is not configured to perform bit reversal of output.