Different applications require different hardware resources for efficient execution.
In particular, to maximize parallel instruction execution, processor delays related to program branches and structural hazards must be significantly reduced in order to achieve better performance. We studied the behavior of programs from several benchmark suites - SPEC CPU95, SPECjvm98 and MediaBench, and determined the hardware resources required to support these programs. We used the Shade toolkit to build a simulator to measure the instruction-level parallelism of both C and Java executables. The tool simulates the fetch and issue stage in a superscalar pipeline. The performance of C and Java programs were measured to determine optimal architectural configurations for these applications.