The memory manager is part of the CPU.

Each core has its own cache (two, in fact: L1 and L2. The 256K one I referred to previously is the L2 cache).

There is an additional third level cache, L3, which is 8MB and shared by all cores.

Cache is in no way larger than RAM. In my i7 PC I have 3GB RAM. I doubt you can get a single 4MB ECC3 stick, or 3x 2MB or similar, or that you could do much with the computer if you could.

As I understand it each core's L2 256K cache is duplicated in the L3 cache, this way the memory manager doesn't need to poke around in the individual cores' L2 caches to find out if some memory is cached there. I think if it had to do that then there would be a severe performance impact. As with many facets of computer technology it's a trade off between speed and amount of memory used; generally you can run slower with less memory or faster with more memory and you'll find this principle cropping up everywhere.