Caches are small amounts of fast memory located between the CPU and main memory that store copies of frequently accessed data from main memory in order to reduce latency. They work by storing recently used data from main memory that is likely to be reused in the faster cache memory. Caches improve performance by providing quicker access to frequently used data and instructions than if they had to be retrieved from main memory each time.