1. A method of exploring a region below a surface of the Earth, comprising using a single sensor located in turn at a plurality of locations to obtain seismic data by recording ambient seismic interface waves in a frequency range whose lower limit is greater than or equal to 0 Hz and whose upper limit is less than or equal to substantially 1 Hz, and processing the data to obtain a measure of the energy in a frequency band within the frequency range.
2. A method as claimed in claim 1, in which the lower limit is greater than or equal to to one of 0.005 Hz, 0.001 Hz, 0.01 Hz and 0.1 Hz.
3. A method as claimed in claim 1, in which the data are recorded at each location over a predetermined period.
4. A method as claimed in claim 3, in which the period is greater than substantially half an hour.
5. A method as claimed in claim 1, in which the sensor is sensitive to three substantially orthogonal components of said ambient seismic interface waves.
6. A method as claimed in claim 5, comprising processing said data to rotate said components so that one of the components is substantially aligned with a direction of arrival of said ambient seismic interface waves.
7. A method as claimed in claim 6, comprising processing said data to obtain said measure of said energy of at least one of Rayleigh, Love and Scholte waves.
8. A method as claimed in claim 1, comprising selecting for processing a portion of said data obtained at each said location in accordance with said energy within said portion.
9. A method as claimed in claim 8, comprising selecting said portion as a portion of least energy at each said location.
10. A method as claimed in claim 1, in which said locations are spaced apart by at least substantially 100 meters.
11. A method as claimed in claim 1, in which said locations are spaced apart by less than substantially 5 kilometers.
12. A method as claimed in claim 1, in which said locations are arranged as a two-dimensional array.
13. A method as claimed in claim 1, in which said seismic interface waves are recorded at or adjacent an interface.
14. A method as claimed in claim 1, in which said data are processed to obtain measures of said energy in a plurality of different frequency bands within said frequency range.
15. A method as claimed in claim 14, in which said frequency bands are contiguous or non-overlapping.
16. A method as claimed in claim 1, in which each said frequency band has a width between 0.001 Hz and 1 Hz.
17. A method as claimed in claim 1, in which said frequency band comprises a discrete frequency.
18. A method as claimed in claim 1, comprising deriving said measure of said energy from amplitudes of said recorded waves in said frequency band.
19. A method as claimed in claim 1, comprising deriving each said measure of energy from a number of said recorded waves said frequency band.
20. A method as claimed in claim 1, comprising converting said data to the frequency domain.
21. A method as claimed in claim 20, comprising deriving said measure of said energy by integrating said converted data over said frequency band.
22. A method as claimed in claim 1, comprising normalizing an amplitude of said data.
23. A method as claimed in claim 22, comprising converting said amplitude of said data to one of first and second values according to a sign of said amplitude.
24. A method as claimed in claim 1, comprising filtering said data to attenuate at least some frequencies outside said band.
25. A method as claimed in claim 1, comprising providing a visualization of said measure.
26. A method as claimed in claim 25, in which said measure is represented as a map of said region.
27. An apparatus arranged to perform a method as claimed in claim 1.
28. A computer program arranged to control a computer to perform processing in a method as claimed in claim 1.
29. A computer or programmed by a program as claimed in claim 28.
30. A computer-readable medium containing a program as claimed in claim 28.
31. (canceled)
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 comprising:
receiving a storage request for a data set of a non-volatile storage device, the data set different in size from a data block size associated with an address space of the non-volatile storage device;
scheduling the non-volatile storage device to begin reading one or more data blocks of the non-volatile storage device before the data set identified by the storage request arrives at the non-volatile storage device, the one or more data blocks comprising the data set identified by the storage request;
reading the one or more data blocks comprising the data set into a memory of the non-volatile storage device; and
transforming the data blocks in the memory of the non-volatile storage device to service the storage request by modifying the data blocks using the data set identified by the storage request and writing the modified data blocks to the non-volatile storage device.
2. The method of Claim 1, further comprising:
using a Direct Memory Access (\u201cDMA\u201d) operation to transfer the data set to the non-volatile storage device for modifying the data blocks.
3. The method of Claim 1, wherein modifying the data blocks comprises overwriting a portion of the data blocks with the data set.
4. The method of Claim 1, wherein writing the modified data blocks to the non-volatile storage device comprises writing the modified data blocks to an append point of a sequential log-based writing structure of the non-volatile storage device.
5. The method of claim 1, wherein a length of the data set is less than a data block size for the non-volatile storage device.
6. The method of claim 1, wherein a length of the data set is dynamically selectable by a client from a plurality of supported lengths, the storage request comprising an indicator of the length.
7. An apparatus comprising:
an interface module configured to receive a storage request from a client, the storage request for a data set of a non-volatile memory device, wherein a length of the data set differs from a data block size associated with an address space of the non-volatile memory device;
a schedule module configured to schedule the non-volatile memory device to begin loading data of at least the data block size of the non-volatile memory device before the data set identified by the storage request arrives at the non-volatile memory device, the data of at least the data block size comprising the data set identified by the storage request;
a block load module configured to load the data of at least the data block size, comprising the data set, into a memory of the non-volatile memory device; and
a fulfillment module configured to service the storage request using at least a portion of the loaded data from the memory of the non-volatile memory device, by modifying the loaded data using the data set and writing the modified data to the non-volatile memory device.
8. The apparatus of claim 7, wherein the storage request comprises a write request and:
the block load module is configured to load the data by reading one or more data blocks of the non-volatile memory device into an internal memory of the non-volatile memory device, the data blocks associated with the data set; and
the fulfillment module is configured to service the storage request by modifying the data blocks using the data set and writing the modified data blocks to the non-volatile memory device.
9. The apparatus of claim 8, further comprising:
a Direct Memory Access (\u201cDMA\u201d) module configured to perform a DMA operation to transfer the data set to the non-volatile memory device for modifying the data blocks.
10. The apparatus of claim 7, wherein the interface module is configured to receive the length of the data set and an offset within a block for the data set with the storage request.
11. The apparatus of claim 7, wherein the interface module comprises a first channel and a second channel, the first channel comprising a block device interface for servicing storage requests at the data block size of the non-volatile memory device, the second channel for servicing storage requests for data sets smaller than a block of the non-volatile memory device.
12. The apparatus of claim 11, wherein:
the block load module is configured to load the data by grouping data from a plurality of write requests received over the second channel into a data block of the data block size of the non-volatile memory device; and
the fulfillment module is configured to write the data block to the non-volatile memory device over the first channel.
13. The apparatus of claim 12, wherein the fulfillment module is configured to write the data block partially empty to the non-volatile memory device in response to a power cut event.
14. The apparatus of claim 12, further comprising a reservation module configured to determine a logical block address (\u201cLBA\u201d) for the data block by:
receiving a write request over the first channel, the write request comprising a reservation indicator and the LBA; and
extracting the LBA from the write request for use as the LBA for the data block without writing the reservation indicator to the non-volatile memory device.
15. An apparatus comprising:
means for receiving a write request from a client, the write request for a data set of a non-volatile storage device, a length of the data set less than a block size associated with an address space for the non-volatile storage device;
means for scheduling the non-volatile storage device to begin loading data of at least the data block size of the non-volatile storage device before the data set identified by the write request arrives at the non-volatile storage device, the data of at least the data block size associated with the data set identified by the write request;
means for loading the data of at least the block size, associated with the data set, into a memory of the non-volatile memory device; and
means for servicing the write request using at least a portion of the loaded data from the memory of the non-volatile memory device, by modifying the loaded data using the data set and writing the modified data to the non-volatile storage device.
16. The apparatus of claim 15, further comprising:
means for reading one or more data blocks of the non-volatile storage device without outputting the data blocks, the data blocks associated with the data set;
means for modifying the data blocks using the data set and writing the modified data blocks to the non-volatile storage device;
means for using a Direct Memory Access (\u201cDMA\u201d) operation to transfer the data set to the non-volatile storage device for modifying the data blocks.
17. The apparatus of claim 15, further comprising:
means for grouping data from a plurality of write requests into a data block of the block size for the non-volatile memory device;
means for writing the data block to the non-volatile storage device; and
means for determining a logical block address (\u201cLBA\u201d) of the data block by receiving a write request comprising a reservation indicator and the LBA, and extracting the LBA from the write request for use as the LBA of the data block without writing the reservation indicator to the non-volatile storage device.
18. A system comprising:
a non-volatile recording device configured to store data in one or more native blocks of a native block size, the non-volatile recording device in communication with a host device over a communications bus;
a presented block module configured to provide access to the data of the non-volatile recording device as one or more presented blocks of a presented block size, the presented block size differing from the native block size;
an interface module configured to receive a storage request for a set of one or more presented blocks;
a block load module configured to read a set of one or more native blocks of the non-volatile recording device without outputting the set of native blocks over the communications bus, the set of native blocks including the set of presented blocks;
a schedule module configured to schedule the non-volatile recording device to begin reading the set of native blocks before the set of presented blocks arrives at the non-volatile recording device; and
a fulfillment module configured to transform the set of native blocks to service the storage request by modifying the set of native blocks using the set of presented blocks and writing the modified set of native blocks to the non-volatile recording device.
19. The system of claim 18, further comprising:
a Direct Memory Access (\u201cDMA\u201d) module configured to perform a DMA operation to transfer the set of presented blocks to the non-volatile recording device.
20. The system of claim 18, wherein the presented block module is configured to define one or more of the presented block size and the native block size in response to user input.
21. The system of claim 18, further comprising the host device, a device driver comprising the presented block module, and a non-volatile memory media controller of the non-volatile recording device comprising the block load module and the fulfillment module.
22. A computer program product comprising a non-transitory computer readable medium storing computer usable program code executable to perform operations comprising:
storing data of a non-volatile memory device in one or more native blocks of a native block size, the non-volatile memory device configurable to communicate with a host device over a communications bus;
providing access to the data of the non-volatile memory device from the host device as one or more presented blocks of a presented block size, the presented block size smaller than the native block size, wherein one or more of the presented block size and the native block size is defined in response to user input;
receiving a storage request for a set of one or more presented blocks;
scheduling the non-volatile memory device to begin reading a set of one or more native blocks of the non-volatile memory device before the set of presented blocks arrives at the non-volatile memory device, the set of native blocks including the set of presented blocks;
reading the set of one or more native blocks including the set of presented blocks; and
transforming the set of native blocks to service the storage request by modifying the set of native blocks using the set of presented blocks and writing the modified set of native blocks to the non-volatile memory device.