The design of the Caltech Mosaic C multicomputer

and Introduction The Caltech Mosaic C is an experimental, ne-grain multicomputer that employs single-chip nodes and advanced packaging technology to demonstrate the performance/cost advantages of the ne-grain-multicomputer architecture. Each Mosaic node includes 64KB of single-clock-cycle dynamic RAM; 2KB of self-test and bootstrap ROM; an 11MIPS processor; a packet interface ; and a 60MB/s, two-dimensional, self-timed router. The node is a single , 9.25mm10.00mm, 1.2m-feature-size, CMOS chip that, at V dd = 5V, operates at 30MHz and dissipates 0.5W. These chips are packaged by tape-automated bonding (TAB) in 88 arrays on circuit boards that can, in turn, be composed in two dimensions to construct arbitrarily large arrays of nodes. In addition to the 88 boards, complete Mosaic systems require host-interface boards that allow workstations to send and receive packets on Mosaic channels, and high-bandwidth cables. The Mosaic host-interface boards are built using memoryless Mosaic chips with external SRAM that can also be accessed by the workstation. The host-interface boards were a critical part of the development strategy: They were used both to develop and re-ne the Mosaic processor, packet interface, and router through MOSIS runs; and also to provide early, operational, Mosaic multicomputers for system-software and test-program development. The Mosaic programming system consists of a compiler for a source programming notation called C +? , and a distributed runtime system. C +? is an extension of C ++ that supports concurrent processes in much the same way that C ++ supports program objects. The runtime system, which is written in C +? , provides copyless message handling, highly distributed resource management, automatic process placement, and scheduling. The Mosaic is intended both for large-scale-computing and for embedded-systems applications. A 16K-node Mosaic system is being constructed at Caltech to explore the programmability and application span of the architecture for large-scale computations. The ATOMIC local-area network 8] is an early example of an embedded-system application of Mosaic components.