This document surveys the architecture and implementation of multi-core processors and caching, examining the shift from single processor designs to multi-core systems to improve processing speed and efficiency. It discusses the performance bottlenecks created by processor caches, the methods for optimizing cache memory, and the various cache mapping techniques, as well as addressing constraints and performance metrics. Additionally, it highlights the applications of multi-core processors in servers, consumer markets, and virtualization, while addressing design challenges and strategies for enhancing overall performance.