A method and apparatus for manipulating data in a storage device that is coupled
to a host computer. Manipulations that can be performed by the storage device include
moving non-contiguous blocks of data between the host computer and the storage
device in a single operation. Other manipulations can be performed directly by
the storage device without passing data to or from the host computer and include
copying data from one logical object that is defined on the host computer to another,
initializing, backing-up, transforming, or securely deleting a logical object that
is defined by the host computer with a single command. In one embodiment, an application
programming interface is provided that allows a relationship between logical objects
on a host computer and storage locations on a storage device to be communicated
between the host computer and the storage device. By providing the storage device
with knowledge of the relationship between a logical object and the storage locations
corresponding to that logical object, data corresponding to the logical object
can be manipulated directly by the storage device, rather than by the host computer.
In another embodiment, a graphical visualization routine is provided that displays
the global mapping of a logical object to a set of physical blocks on the storage
device for each layer of mapping below the logical object.