Alright, I'm probably just repeating here, but this is the best way that I've seen cache explained:
Pretend you're a librarian. When somebody comes into the library, they have to ask you to get the book that they want. So every time that somebody comes in for a book, you have to get up from your desk, walk to the shelf, get the book, and come all the way back. This takes a lot of time and slows up all the operations of the library.
So one day you get fed up with this system and try to think up something more efficient. While thinking about it, you notice that a few books have been taken out over and over again while the rest of the books have barely been taken out at all. So you take the 5 most commonly used books and put them on your desk. This way when somebody comes in and asks for those books, you can circumvent the whole system and just give them the book immediately. Much faster and more efficient than the other system.
Unfortunately you don't have the best memory, and every time that somebody comes in and asks for a book you have to check through the books on your desk to make sure that it's not in there before going out to the shelves to get them the book. If the book that the customer asks for is on your desk, great! You just saved a bunch of time through your nifty little system. If the book isn't on your desk, though, you've just wasted time looking through the books on your desk that you wouldn't have otherwise. As a result of this, you need to keep the stack of books on your desk relatively small, or else you will spend more time searching through the book pile on your desk than you actually save by having them there in the first place.
This is more or less how the cache in your CPU works. The cache is equatable to the books on your desk. Since the cache is right on the CPU, it takes almost no time to find things that are stored there. The cache is much faster than your system RAM because the RAM is "farther away" from the CPU and the process of the CPU retrieving information from system RAM is much like you having to get up to get a book off of the shelf. If the CPU had to send out a command to the RAM and wait for the RAM to send back the relevant information each time it ever had to execute a command, computers would run horribly slow. Cache allows the CPU to work much more efficiently. If, however, the cache is too large, the CPU will spend so much time searching through it that the loss of time spent on every time the information is not in the cache (called a cache miss) will negate the benefits of having the cache there in the first place. This, coupled with cost, is why caches are relatively small compared to RAM and hard drives.
Hope this helps,