|
The performance of a stack machine is limited mainly by sequential stackacceses. A performance enhancement mechanism - Stack Operations Folding -was used in Sun Microelectronics' picoJava design. There are another twofolding techniques: fixed- pattern folding and POC model beyond Sun'.In thisthesis, we use the Java bytecode language as the target machine language, analyze the factors affecting ILP, and extract parallelism among bytecodesafter folding using POC model.Five factors: stack pointer renaming, localvariable renaming, finite operations, finite scheduling window size andlimited foldable numbers were simulated and evaluated. Statistical data showthat the ILP can be doubled as compared to original figure of POC model. Andwithout stack pointer renaming, the performance gain is only half oftheoretical upper bound. From the experiments, we observe that 4 operationsfor each PIG (Parallel Instruction Group) is enough to approximate thetheoretical upper bound. With a 32-byte or a 64-byte window size, theperformance can reach 82% or 93% as compared to the infinite window size.Finally, we conclude that stack operations folding and stack pointer renamingare the most important mechanisms in designing higher-end stack machines.
|