1. A computing system comprising: a processor; a cache in communication with said processor; a main memory in communication with said cache; and a region-based cache prefetcher comprising a region access table (RAT) configured to track access of memory blocks in said main memory, wherein said RAT comprises a plurality of RAT entries, and each of said RAT entries comprises: a region group identifier configured to store region group identifier bits that identify a region of said main memory that includes a plurality of memory blocks; and a block presence vector configured to store block presence identifier bits that identify at least one block among said plurality of memory blocks, wherein said block presence vector represents at least one block corresponding to an address specified by said processor during a cache access; and wherein: a plurality of virtual system operate on the processor; and the region-based cache prefetcher is configured for using the region access table to identify data in the main memory for each of the virtual systems, and for prefetching the identified data from the main memory and into the cache, wherein the identified data are available in the cache for said each virtual system.