Hardwiring the OS kernel into a Java application processor

This paper presents the design and implementation of a hardwired OS kernel circuitry inside a Java application processor to provide the system services that are traditionally implemented in software. The hardwired system functions in the proposed SoC include the thread manager, the memory manager, and the I/O subsystem interface. There are many advantages in making the OS kernel a hardware component, such as a fast system boot time, highly efficient single-core multi-thread context-switching performance, and a better potential for supporting a complex multi-level memory subsystem. In addition, since the target application processor used in this paper is based on a Java processor, the system is not susceptible to the stack and pointer-based security attacks that are common to the register-based processors. Full-system performance evaluations on an FPGA show that the proposed system is very promising for deeply-embedded multi-thread applications.

[1]  Martin Schoeberl,et al.  A Hardware Abstraction Layer in Java , 2011, TECS.

[2]  Juha Plosila,et al.  Efficient bytecode optimizations for a multicore Java co-processor system , 2010, 2010 12th Biennial Baltic Electronics Conference.

[3]  Martin Schoeberl,et al.  The embedded Java benchmark suite JemBench , 2010, JTRES '10.

[4]  Uwe Brinkschulte,et al.  A multithreaded Java microcontroller for thread-oriented real-time event-handling , 1999, 1999 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.PR00425).

[5]  Chun-Jen Tsai,et al.  Temporal multithreading architecture design for a Java processor , 2014, 2014 IEEE International Symposium on Circuits and Systems (ISCAS).

[6]  Sascha Uhrig,et al.  Real-time event-handling and scheduling on a multithreaded Java microcontroller , 2003, Microprocess. Microsystems.

[7]  David Hardin Real-time objects on the bare metal: an efficient hardware realization of the Java/sup TM/ Virtual Machine , 2001, Fourth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing. ISORC 2001.

[8]  Martin Schoeberl,et al.  Non-blocking object copy for real-time garbage collection , 2008, JTRES '08.

[9]  Martin Schoeberl,et al.  A Java processor architecture for embedded real-time systems , 2008, J. Syst. Archit..

[10]  Shin-Dug Kim,et al.  A dualthreaded Java processor for Java multithreading , 1998, Proceedings 1998 International Conference on Parallel and Distributed Systems (Cat. No.98TB100250).

[11]  Craig Chambers,et al.  Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches , 1991, ECOOP.

[12]  Mike O'Connor,et al.  PicoJava: A Direct Execution Engine For Java Bytecode , 1998, Computer.

[13]  George F. Ryckman The IBM 701 computer at the general motors research laboratories , 1983 .

[14]  Onur Mutlu,et al.  Flexible reference-counting-based hardware acceleration for garbage collection , 2009, ISCA '09.

[15]  Chun-Jen Tsai,et al.  A Java Processor IP Design for Embedded SoC , 2015, TECS.

[16]  Zoran A. Salcic,et al.  Designing a Concurrent Hardware Garbage Collector for Small Embedded Systems , 2005, Asia-Pacific Computer Systems Architecture Conference.