1. A computing system comprising: a processor, and wherein a plurality of virtual computing systems operate on the processor; a cache in communication with said processor; a main memory in communication with said cache; and a region-based cache prefetecher for preloading the cache for the virtual systems, including grouping blocks of the cache into regions of memory, and when each of the virtual systems executes, identifying one or more of said regions for prefetching from the main memory and into the cache based on previous accesses by said each virtual system to the cache; the 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 the region-based cache prefetcher tracks cache hits during operation of each of the virtual computing systems to identify regions of the main memory where at least one cache block has had a cache hit during operation of said each virtual computing system, and the region-based cache prefetcher only prefetches memory blocks from the identified regions of the main memory for said each virtual operating system.