1. A method of data caching, comprising: establishing a FIFO queue and a LRU queue in a cache memory; establishing an auxiliary FIFO queue for addresses of cache lines which have been swapped-out to an external memory; and determining, if there is a cache miss for requested data, if there is a hit for the requested data in the auxiliary FIFO queue data and, if so, swapping-in the requested data into the LRU queue, otherwise swapping-in the requested data into the FIFO queue.