The exploitation of value locality and redundancy in computation has been a popular area of research since the seminal work was done at Carnegie Mellon University in 1996. The PHARM team's mission is to find new ways to exploit value locality and other program properties to improve performance, reduce bandwidth and complexity, and mask ever-increasing memory and interprocessor communication latencies in tomorrow's computer systems.
Our initial focus is on exploiting value locality in shared-memory multiprocessor systems. Data sharing in multi-threaded programs manifests itself as processor cache miss stalls brought about by inefficient synchronization primitives, restrictions on memory access ordering, and references to data in other processors' caches. The performance and scalability of shared-memory multiprocessors can be severely limited by these factors. We are exploring mechanisms that exploit redundancy in the address and value streams to reduce these effects.
We are also working on developing and characterizing workloads that accurately reflect the demands placed on today's SMP server systems. These workloads, commonly called commercial workloads, are usually multi-threaded, support hundreds to thousands of concurrent users, contain complex application semantics, and are increasingly being implemented in new run-time environments and languages (e.g. Java).