JavaFlow, is an extreme multi-core, multinetwork DataFlow Machine implementing a Java Virtual Machine aimed at addressing technology roadmap issues with the ability to effectively utilize and manage large numbers of processing cores. Specific design challenges addressed include: design complexity through a common set of repeatable structures; low power and reliability by featuring unused circuits and ability to power off or bypass sections of the chip; and clock propagation and wire limits by using locality to bring data to processing elements.
A static Data Flow Architecture is used with multiple heterogeneous networks to connect processing elements capable of executing a single Java ByteCode instruction. Whole methods are cached in this DataFlow fabric, and the networks plus distributed intelligence are used for their management and execution. Analysis of SPEC JVM benchmarks demonstrates the potential for this design concept.A baseline configuration is defined with a compressed dataflow structure and then compared to multiple configurations of instruction assignments and clock relationships. Using a series of methods from the SPEC benchmark running independently, IPC (Instructions per Cycle) performance of the sparsely populated heterogeneous structure is 40% of the baseline. The average ratio of instructions to required nodes is 3.1. Innovative solutions to the loading and management of Java methods along with the translation from control flow to DataFlow structure are demonstrated.