can a single process run different threads on different cores?
(I think they can)
In that case, different cores share the same address space but with different caches? Does that mean caches will be redundant?
Thanks!
Yes, a single process can run multiple threads on different cores.
Caching is specific to the hardware. Many modern Intel processors have three layers of caching, where the last level cache is shared across cores.
It does not mean the non-shared caches are redundant, but it does have implications for multicore performance. In particular, if one core updates a value in the address space that currently lives in another core's private cache, then a cache coherence protocol must be run to ensure that another core can no longer read a stale value.