Cache and Interconnect Architectures in Multiprocessors