1. An apparatus to determine prefetch data, the apparatus comprising: a semiconductor device storing executable code executed by a processor, the executable code comprising: a start module communicating a first start of a target software process to a storage device; a learning module recording a target software process identifier and target software process count to a prefetch list for the target software process, recording a data block element for each data block of the target software process, and recording a first cumulative count of executions of each data block as a current count and a first sequence value associated with the current count and indicating an order of execution of accesses to each data block of the target software process as a current sequence in each data block element for the first start of the target software process; an end module communicating an end of the target software process to the storage device; the start module communicating a second start of the target software process to the storage device; the learning module recording a sum of the first cumulative count and a previous count of each data block element as the previous count in the data block element and a second cumulative count of accesses of each data block for the second start of the target software process as the current count in the data block element and recording the first sequence value of each data block as a previous sequence value associated with the previous count in the data block element and a second sequence value for the second start of the target software process as the current sequence in the data block element; and a prefetch module prefetching a first data block with a high data block element previous count value and a low data block element previous sequence value.