1. A method for enabling a computing system, comprising: dividing a cache into a plurality of cache pools; determining a criticality of a first thread; and assigning the first thread to a first plurality of locations in a main memory, wherein the plurality of locations in the main memory is chosen based on the criticality of the first thread, wherein the plurality of locations in the main memory map to a first cache pool in the plurality of cache pools.