An analytical POC stack operations folding for continuous and discontinuous Java bytecodes

Lee Ren Ton*, Lung Chung Chang, Chung-Ping Chung

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

6 Scopus citations


The execution performance of a stack-based Java virtual machine (JVM) is limited by the true data dependency. To enhance the performance of the JVM, a stack operations folding mechanism for the picoJava-I/II processor was proposed by Sun Microsystems to fold 42.3% stack operations. By comparing the continuous bytecodes with pre-defined folding patterns in instruction decoder, the number of push/pop operations in between the operand stack and the local variable could be reduced. In this study, an enhanced POC (EPOC) folding model is proposed to further fold the discontinuous bytecodes that cannot be folded in continuous bytecodes folding mechanisms. By proposing a stack re-order buffer (SROB) to help the folding check processes, the EPOC folding model can fold the stack operations perfectly with a small size of SROB implementation. Statistical data shows that the four-foldable strategy of the EPOC folding model can eliminate 98.8% of push/pop operations with an instruction buffer size of 7 bytes and the SROB size of eight entries.

Original languageEnglish
Pages (from-to)1-16
Number of pages16
JournalJournal of Systems Architecture
Issue number1-3
StatePublished - 1 Sep 2002


  • EPOC folding model
  • Java processor
  • Java virtual machine
  • POC folding model
  • Stack operations folding

Fingerprint Dive into the research topics of 'An analytical POC stack operations folding for continuous and discontinuous Java bytecodes'. Together they form a unique fingerprint.

Cite this