1. A method of performing multi-level indirect data prefetching, comprising: determining a first memory address of a pointer associated with a data prefetch instruction, wherein the first memory address corresponds to an address to which the pointer points; fetching a first data block that includes content at the first memory address; determining a second memory address based solely on the content at the first memory address; fetching a second data block that includes content at the second memory address; determining a third memory address based solely on the content at the second memory address; and fetching a third data block that includes another pointer or desired data at the third memory address, wherein the data prefetch instruction includes an indirect address field that identifies whether an effective address associated with the data prefetch instruction is a pointer for the desired data that is to be prefetched or whether the effective address corresponds to an address for the desired data and the indirect address field also identifies a number of indirection levels.