1. A method of communicating between caches of different processing units in a multiprocessor computer system, comprising the steps of: synchronizing snoop operation of the caches to create periodic windows of time during which each cache must snoop any pending cache operations; programmably selecting a cache operation for execution during a first one of the periodic windows of time; and issuing the cache operation from one of the caches during the first periodic window of time.