1. A method for processing memory transactions in a cluster having a plurality of processing nodes and an interconnection controller coupled to the plurality of processing nodes, the interconnection controller including a plurality of protocol engines, each engine configured to process multiple memory transactions wherein each of said plurality of protocol engines is configured to be assigned a disjoint subset of a global memory space, the method comprising: receiving a first memory transaction with the interconnection controller; identifying one of the disjoint subsets using destination information associated with the first memory transaction, the one of the identified subsets corresponding to one of remote and local memory; selecting a first protocol engine of the plurality corresponding to the identified disjoint subset; processing the memory transaction with the first selected protocol engine in accordance with a cache coherence protocol; receiving a second memory transaction with the interconnection controller; identifying another of the disjoint subsets using destination information associated with the second memory transaction, the other of the identified subsets corresponding to one of remote and local memory; selecting a second protocol engine of the plurality corresponding to the other of the identified disjoint subsets; and processing the second memory transaction with the second selected protocol engine in accordance with the cache coherence protocol.