1. An apparatus to determine prefetch data, the apparatus comprising: a start module configured to communicate a start of a target software process to a storage device; a learning module configured to learn data blocks accessed by the target software process; and an end module configured to communicate an end of the target software process to the storage device.