JavaFlow is a systolic array of heterogeneous processing elements with two interconnection schemas configured as a two phase dataflow machine coupled with a General Purpose Processor implementing a Java Virtual Machine (JVM). The processor is described and shown to offer an attractive solution to address challenges of locality, design complexity, power, and reliability in a Java application processor.