A system comprising: a processor configured to retrieve and store items in memory in accordance with instructions; a first memory having a first capacity and a first access time, where access time refers to the average time it takes for the processor to obtain information from a memory; a second memory (315, 316) having a second capacity and a second access time, the second capacity being greater than the first capacity and the second access time being slower than the first access time; a third memory (340, 341) having a third capacity and a third access time, the third capacity being greater than the second capacity and the third access time being slower than the second access time; the instructions comprising, in response to a request for an item received by the processor: retrieving the requested item from first memory when the requested item is stored in the first memory; retrieving the requested item from second memory (315, 316)when the requested item is stored in the second memory (315, 316); retrieving the requested item from third memory (340, 341) when the requested item is stored in the third memory (340, 341); characterized in further comprising storing the requested item in the first memory depending on whether the item was stored in the second memory (315, 316) at the time of the request and whether the time elapsed since the last time the item was requested is less than a last-eviction duration, where the last-eviction duration comprises the duration of time beginning with the last request for the most recently evicted item while it was still stored in the first memory and ending with the most recently evicted item's eviction from the first memory; storing the requested item in the second memory (315, 316) depending on whether the item was stored in the second memory (315, 316) at the time of the request and whether the item was retrieved from the third memory (340, 341). a processor configured to retrieve and store items in memory in accordance with instructions; a first memory having a first capacity and a first access time, where access time refers to the average time it takes for the processor to obtain information from a memory; a second memory (315, 316) having a second capacity and a second access time, the second capacity being greater than the first capacity and the second access time being slower than the first access time; a third memory (340, 341) having a third capacity and a third access time, the third capacity being greater than the second capacity and the third access time being slower than the second access time; the instructions comprising, in response to a request for an item received by the processor: retrieving the requested item from first memory when the requested item is stored in the first memory; retrieving the requested item from second memory (315, 316)when the requested item is stored in the second memory (315, 316); retrieving the requested item from third memory (340, 341) when the requested item is stored in the third memory (340, 341); characterized in further comprising storing the requested item in the first memory depending on whether the item was stored in the second memory (315, 316) at the time of the request and whether the time elapsed since the last time the item was requested is less than a last-eviction duration, where the last-eviction duration comprises the duration of time beginning with the last request for the most recently evicted item while it was still stored in the first memory and ending with the most recently evicted item's eviction from the first memory; storing the requested item in the second memory (315, 316) depending on whether the item was stored in the second memory (315, 316) at the time of the request and whether the item was retrieved from the third memory (340, 341). retrieving the requested item from first memory when the requested item is stored in the first memory; retrieving the requested item from second memory (315, 316)when the requested item is stored in the second memory (315, 316); retrieving the requested item from third memory (340, 341) when the requested item is stored in the third memory (340, 341); characterized in further comprising storing the requested item in the first memory depending on whether the item was stored in the second memory (315, 316) at the time of the request and whether the time elapsed since the last time the item was requested is less than a last-eviction duration, where the last-eviction duration comprises the duration of time beginning with the last request for the most recently evicted item while it was still stored in the first memory and ending with the most recently evicted item's eviction from the first memory; storing the requested item in the second memory (315, 316) depending on whether the item was stored in the second memory (315, 316) at the time of the request and whether the item was retrieved from the third memory (340, 341).