 But when you do have a conflict, you're going to have to replace something. So how do we choose which piece of data we should replace? We could just randomly pick one and throw it out. That one looks good. I'll throw it out. You know, maybe I should have thrown that one out instead. I would even worry about why those pieces of data are in memory. We pulled them in because we were interested in them. So there might be some better reasons why we should pick which one we should evict. One of the most effective ones is least recently used. That goes back to that temporal locality we saw a little bit ago, where if we just used a piece of data, there's a pretty good chance we're going to use that piece of data again. So in this case, we would evict the block of data that was least recently used. Which one have we not touched in quite a while? That one seems to be the least useful for us at the moment, so we'll throw it out. Hopefully we don't need it in another three cycles, but that happens. First in, first out is rather like it sounds. You just evict whichever one came in first. Pieces of data come in and go out in a round robin ordering just whichever one came in first gets thrown out first.