We propose a flexible machine architecture that recognizes these technological realities and not only supports advanced software structures, but exploits them to configure its programmable hardware, adapting itself to the application. The programming flexibility can provide a wide range of convenient interfaces, ranging from uniform cache-coherent shared memory, to clusters of smaller shared memory systems, to fully distributed memory. In addition to a range of interfaces, our flexible machine can customize both operations and protocols, exploiting appropriate mechanisms and policies to minimize the critical performance aspect -- communication -- at all levels of the system. Our machine design leverages the wealth of research into optimal architectural mechanisms, customizable cache-coherence, as well as technological advances in interprocedural analysis, programmable hardware, and hardware synthesis technology to achieve general-purpose high performance.
comments to: Larry Picha PAWS'96
posted: 19 April 96