Android Android Java Java Dalvik VM Intel Atom PCI Express DMA 1.25 Gbps Atom Android Java Acceleration with an Accelerator in an Android Mobile Terminal Keisuke Koike, Atsushi Ohta, Kohta Ohshima, Kaori Fujinami, Nobuyuki Kohri, Masashi Takemoto and Hironori Nakajo We have implemented an accelerator, which realizes higher performance by executing a part of a Java source code executable in hardware, to accelerate Java execution in an Android mobile terminal. Between an Intel Atom processor which executes a Dalvik virtual machine and an accelerator, we have implemented PCI Express interface which performs high speed communication of 1.25 Gbps with DMA transfer in our experimental environment. In this paper, acceleration of Android with an accelerator is described. Communication performance between a processor and an has been measured and the future performance with the acceleration is estimated. 1. 1.1 Apple iphone NTT docomo, Soft- Bank au Tokyo University of Agriculture and Technology BeatCraft, Inc. NDA Google Android Android OS, Android,. Android HTC Sony Ericsson Android Android Java (VM) Java 10-1
Android Java Dalvik Dalvik VM Java VM Dalvik VM Java VM. Dalvik VM Java JavaVM LSI (Field Programmable Gate Array) LSI LSI, 2010 11 Intel 1) PCI Express x2,.,, LSI,,. 1.2 SRAM Flash ROM ACTEL Android Java Dalvik Dalvik VM Reconfigurable Android Android Android Android Reconfigurable Android Android 2. Reconfigurable Android Android Android Reconfigurable Android 1 Reconfigurable Android ARM Atom Android Android 10-2
HW CO 2 etc.. 1 Android Android 2.1 Reconfigurable Android (a) (b) (c) (d) (e) Wi-Fi 3G IrDA Bluetooth ZigBee RFID TransferJet (a),(b),(c) (d) (e) 10-3
Reconfigurable Android Android OS Reconfigurable Android 2.2 Reconfigurable Android Dalvik VM JIT (Just in Time) AOT (Ahead of Time) Dalvik Java Java VM Java 3 2) 2 2 Java : I/O 10-4
Jazelle 3) 5) Jazelle DBX ARM Java ARM Android Dalvik Jazelle 2.3 Reconfigurable Android bc- R Android ARM TI OMAP 3530 bc9 bc10 6) Reconfigurable Android bc-r bc-r IP DSP USB SD bc10 3 3. Reconfigurable Android 3.1 Reconfigurable Android bc-r 4 3 bc-r Android 4 Reconfigurable Android 5 Application Reference Platform for Image Processing (ARPIP) ARPIP Atom Z530 Xilinx Spartan-6(XC6SLX45T) ARPIP Windows Android Linux Atom PCI Express Linux 3.2 ARPIP, Android 10-5
. Android OS 5 Application Reference Platform for Image Processing. Java. Java 7) Android,.,, 3. Android Java open read, write, ioctl C so, Java. C Java,., Java C. C, Java JNI. C, open write, read, ioctl,. I / O, Java 6 Android OS, Java.,,.,.,, Java,. 3.3 3. ( 1 ) PCI Express DMA ( 2 ) ( 3 ) RAM (1) Xilinx IP. IP, TLP. DMA RAM,, DMA, RAM, 3. I / O,.,. RAM,,. RAM, 10-6
.., Java., init module, delete module, open, close, read, write, ioctl 7. 1. Rocket I/O init module delete module open close read write ioctl 1 PCI DMA DMA DMA DMA DMA DMA DMA RAM DMA DMA DMA DMA RAM DMA DMA DMA 7 8 DMA,. 6µ 11µ 4. Reconfigurable Android 4.1 Reconfigurable Android PCI Express Linux 7 (a) Atom Block RAM (b) 40KB 140MB/S PCI Express 1.1 250MB/S Spartan-6 8 4.2 Reconfigurable Android 10-7
Java Java Verilog-HDL Configuration 3.2 Java., Android Android 2.2 x86, JIT. 62.5MHz 2. 2 Logic Resources Used Utilization Rate Slice 3530 51% FF 13224 24% 6 in LUT 8466 31% 256 256 1785ms 624ms 316ms 455µs 478µs 310µs 306ms PCI Express Android Intel Atom E600C, LSI bc-r Atom Xilinx ARM ARM Reconfigurable Android bc-r 1) http://www.intel.com/jp/intel/pr/ press2010/101124.htm 2) H. Mizuno, N. Irie, K. Uchiyama, Y. Yanagisawa, S. Yoshioka, I. Kawasaki, and T. Hattori. SH-Mobile3: Application Processor for 3G Cellular Phones on a Low-Power SoC Design Platform. Hot Chips 16 (2004). 3),,, : Dalvik MIPS, (SACSIS2010), Vol.2010, No.5, pp.113-114 (2010) 4),, : Dalvik Android Java, (ESS2010), pp.13-22 (2010) 5) Android Java,, Vol.4, No.3, pp.115-132 (2011) 6) http://labs.beatcraft.com/ja/index.php? Open%20Source%20Gadgets 7) E. Lattanzi, A. Gayasen, M. Kandemir, N. Vijaykrishnan, L. Benini, A. Bogliolo: Improving Java performance using dynamic method migration on s, Int. Journal of Embedded Systems Vol.1, No.3-4, pp.228 236 (2005) 5. Reconfigurable Android Java LU FFT 10-8