Fujisoft solves graphics acceleration for the Android platform

Similar documents
Fastest Path to Your Design. Quartus Prime Software Key Benefits

Using Altera MAX Series as Microcontroller I/O Expanders

Altera SoC Embedded Design Suite User Guide

Networking Remote-Controlled Moving Image Monitoring System

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Forging a Single Agile Radio Platform for Signal Intelligence and Public Safety

Five Ways to Build Flexibility into Industrial Applications with FPGAs

Building an IP Surveillance Camera System with a Low-Cost FPGA

Quartus II Software and Device Support Release Notes Version 15.0

White Paper Increase Flexibility in Layer 2 Switches by Integrating Ethernet ASSP Functions Into FPGAs

USB-Blaster Download Cable User Guide

Xeon+FPGA Platform for the Data Center

Providing Battery-Free, FPGA-Based RAID Cache Solutions

13. Publishing Component Information to Embedded Software

Quartus II Software Download and Installation Quick Start Guide

Video and Image Processing Suite

RoverPal - A Mobile Payment Application

Video and Image Processing Design Example

CSE467: Project Phase 1 - Building the Framebuffer, Z-buffer, and Display Interfaces

How To Use An Atmel Atmel Avr32848 Demo For Android (32Bit) With A Microcontroller (32B) And An Android Accessory (32D) On A Microcontroller (32Gb) On An Android Phone Or

What Determines FPGA Power Requirements?

Nios II Software Developer s Handbook

1. Overview of Nios II Embedded Development

7a. System-on-chip design and prototyping platforms

Real-Time Challenges and Opportunities in SoCs

Model-based system-on-chip design on Altera and Xilinx platforms

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

Altera Error Message Register Unloader IP Core User Guide

1. Overview of Nios II Embedded Development

Using Nios II Floating-Point Custom Instructions Tutorial

December 2002, ver. 1.0 Application Note 285. This document describes the Excalibur web server demonstration design and includes the following topics:

Bare-Metal, RTOS, or Linux? Optimize Real-Time Performance with Altera SoCs

Qsys System Design Tutorial

Avalon Interface Specifications

PowerPlay Power Analysis & Optimization Technology

Ping Pong Game with Touch-screen. March 2012

Stingray Traffic Manager Sizing Guide

Qsys and IP Core Integration

Atmel AVR4921: ASF - USB Device Stack Differences between ASF V1 and V2. 8-bit Atmel Microcontrollers. Application Note. Features.

Load Balancing Security Gateways WHITE PAPER

NIOS II Based Embedded Web Server Development for Networking Applications

USB-Blaster II Download Cable User Guide

Introducing a platform to facilitate reliable and highly productive embedded developments

A Safety Methodology for ADAS Designs in FPGAs

BLE113 DEVELOPMENT KIT

2. Scope of the DE0 Board and Supporting Material

White Paper Military Productivity Factors in Large FPGA Designs

TI Linux and Open Source Initiative Backgrounder

White Paper Selecting the Ideal FPGA Vendor for Military Programs

Video and Image Processing Suite User Guide

Embedded Development Tools

AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel

PROFINET IRT: Getting Started with The Siemens CPU 315 PLC

ANDROID DEVELOPER TOOLS TRAINING GTC Sébastien Dominé, NVIDIA

FPGAs for High-Performance DSP Applications

White Paper FPGA Performance Benchmarking Methodology

Android Virtualization from Sierraware. Simply Secure

Development With ARM DS-5. Mervyn Liu FAE Aug. 2015

Arria 10 Avalon-MM DMA Interface for PCIe Solutions

Using the Altera Serial Flash Loader Megafunction with the Quartus II Software

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Intel Xeon +FPGA Platform for the Data Center

Performance Optimization and Debug Tools for mobile games with PlayCanvas

Hybrid Platform Application in Software Debug

A Low Latency Library in FPGA Hardware for High Frequency Trading (HFT)

Accelerating Microsoft Exchange Servers with I/O Caching

Remote Desktop on Mobile

Designing Feature-Rich User Interfaces for Home and Industrial Controllers

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

VDI Clients. Delivering Tomorrow's Virtual Desktop Today

Pre-tested System-on-Chip Design. Accelerates PLD Development

Document ID: FLXN111 PRODUCTS AND LICENSING

Video Conferencing Unit. by Murat Tasan

Guidelines for Developing a Nios II HAL Device Driver

Configuring CoreNet Platform Cache (CPC) as SRAM For Use by Linux Applications

White Paper Video Surveillance Implementation Using FPGAs

White Paper 40-nm FPGAs and the Defense Electronic Design Organization

NVIDIA Jetson TK1 Development Kit

Embedded Systems: map to FPGA, GPU, CPU?

ARM Cortex -A8 SBC with MIPI CSI Camera and Spartan -6 FPGA SBC1654

High Performance or Cycle Accuracy?

MAX II ISP Update with I/O Control & Register Data Retention

QLogic 16Gb Gen 5 Fibre Channel in IBM System x Deployments

High-Definition Video Reference Design (UDX4)

White Paper Utilizing Leveling Techniques in DDR3 SDRAM Memory Interfaces

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

How To Develop For A Powergen 2.2 (Tegra) With Nsight) And Gbd (Gbd) On A Quadriplegic (Powergen) Powergen Powergen 3

10/100/1000Mbps Ethernet MAC with Protocol Acceleration MAC-NET Core with Avalon Interface

White Paper Video and Image Processing Design Using FPGAs

FPGA Accelerator Virtualization in an OpenPOWER cloud. Fei Chen, Yonghua Lin IBM China Research Lab

Avoiding pitfalls in PROFINET RT and IRT Node Implementation

AN FPGA FRAMEWORK SUPPORTING SOFTWARE PROGRAMMABLE RECONFIGURATION AND RAPID DEVELOPMENT OF SDR APPLICATIONS

AVR1510: Xplain training - XMEGA USART. 8-bit Microcontrollers. Application Note. Prerequisites. 1 Introduction

Architekturen und Einsatz von FPGAs mit integrierten Prozessor Kernen. Hans-Joachim Gelke Institute of Embedded Systems Professur für Mikroelektronik

Protecting Corporate Data from Mobile Threats. And the emerging role for microsd-based security Art Swift CEO, CUPP Computing

From Bus and Crossbar to Network-On-Chip. Arteris S.A.

CSE597a - Cell Phone OS Security. Cellphone Hardware. William Enck Prof. Patrick McDaniel

Desktops in the Cloud

15. Introduction to ALTMEMPHY IP

Transcription:

DESIGN SOLUTION: A C U S T O M E R S U C C E S S S T O R Y Fujisoft solves graphics acceleration for the Android platform by Hiroyuki Ito, Senior Engineer Embedded Core Technology Department, Solution Business Division, Fujisoft The Project: an Android SoC The Android software platform is becoming increasingly The Design Team: Fujisoft is a design services and IP provider with deep experience in packaging FPGAbased hardware with software stacks to provide complete solutions to embedded design teams. Challenge: Embedded systems employing the Android platform frequently need graphics acceleration for the Android user interface, but most embedded hardware lacks the performance to provide a smooth experience. Solution: Fujisoft has developed a compact, low-powered graphics engine with the specific accelerations Android requires, based on a small FPGA. appealing to embedded designers because it provides a turnkey environment for developing a high-performance Linux-based system with rich user-interface and communications libraries. But many embedded developers are not sufficiently familiar with Android to be comfortable shopping for hardware components and bringing up their own hardware to support the platform. So Fujisoft is providing a package. Specifically, Fujisoft is providing the Graphics Accelerator IP Core needed to provide a smooth-running Android OS on the Altera SoC FPGAs. On top of that we will provide the Android Platform that includes the standard open source Android OS version 4.0.4 ICS running on top of the Linux Kernel from Altera s BSP. For more information: Fujisoft: www.fsi.co.jp/solution/android/e/ Email: global_embedded@fsi.co.jp Altera: www.altera.com/devices/processor/ soc-fpga/cyclone-v-soc/cyclone-v-soc.html

We expect that many FPGA users may not be so familiar with Android and Linux so we can also offer OS support services as well as full hardware/software designs (Figure 1). The Graphics Accelerator, Android PF and OS Support basically enables design teams to start developing their Android-based products using an Altera SoC. We can then support whatever development they re doing with full-system design services. Figure 1: The Android Stack Application Application Application Full Design Services Applications, Middlewares, OS, Drivers, Boards, FPGA and IP Middleware Android Anrooid PF and Driver for Altera SoC Open Source 4.0 OS, FSI PF Driver Linux Android and Linux OS Support Service Driver Graphic Accelerator Control Driver Graphics Accelerator IP Core and Driver Graphic Accelerator atop IP HPS FPGA Altera SoC Full Customization and Design Service 2

The Design Challenge Android has grown to be the number one Smartphone operating system. While Android continues to be the most popular OS for Smartphones and tablets, it is also being adopted for other embedded devices and industrial equipment. However, embedded-system designers rarely employ high-performance CPUs. But implementation using rather low-performing CPUs will slow down the Android drawing process and thus the user experience. Typical Android functions such as movement, rotation, and scaling (shrink & magnification) are an essential part of the user-interface metaphor. But these actions will appear unsmooth and slow due to a rather weak processing performance when you rely on the ARM CPU cores alone. The obvious solution is a hardware graphics accelerator. But today SoCs with hardware graphics acceleration for Android are typically aimed at smart phones, not embedded applications. And integrating a stand-alone graphics engine into an embedded design is fraught with device-choice, bandwidth, power, and verification issues, especially since proper operation of the graphics is so fundamental to the Android experience. The Design Solution Our solution to this challenge was to implement specific accelerations for Android graphics. Through analysis we isolated the functions that consumed the most CPU effort the heaviest Android drawing functions. By exploiting the very high bandwidth between the ARM hardware core and the logic fabric in the SoC FPGA, we were able to extract these functions from the ARM software and implement them inside the FPGA fabric. This division of labor not only speeds graphics operation restoring the smooth, natural feel to the user interface but it eases the processing bottleneck, with the result of faster performance for application code as well. Figure 2: Selecting graphics functions for acceleration Testing done on Multi-touch veek (P013) 800x400 Performance α Blending fps CPU Usage Total With Graphic Accellerator 55 fps Android Drawing 19% Image Rotation Without Graphic Accellerator 33 fps Android Drawing 49% Shrink and Magnification Layer Mixing Android Drawing refers to Application layer and User Interaction and does not include Linux and Android System. Size LE ALM SRAM 2DGE 5500 2400 262 Kbit (1024 bit x 32 bit x 8 line) + DSP 18 bit x 38 3

Our IP processes the heaviest 4 Android drawing functions α blending, image rotation, scaling, and layer mixing-in the Altera SoC FPGA fabric, as shown in Figure 2. The result is faster frames per second (FPS) performance and lower CPU Usage. Theory of Operation The following is an explanation of the processing flow from the point of initiating the drawing of an application to the point where the application can be output onto an LCD with Android. Every application renders images on each respective application s image rendering buffer. When this happens, as is standard with Android, an image rendering software library is used through an API such as OpenGL ES, as shown in Figure 3. Figure 3: Graphics Accelerator IP Core Theory of Operation App Process 1 App Process 2 App Process 3 App Process X App 1 App 2 App 3 App X 1 Image Process Software Draw Libraries (OpenGL ES1.0, Skia, etc.) 2 3 Software Draw Libraries (OpenGL ES1.0) Point 1 Point 3 Software Libraries Graphics Accelerator Image Synthesizing Point 2 Software Libraries Software Draw Libraries (OpenGL ES1.4) Image Synthesizing Point 4 Graphics Accelerator X Every application uses Software Libraries (OpenGL ES, etc.) to perform 3D image rendering, etc., on the application s image rendering buffer The data from the application s image rendering buffer is blended to the image synthesizing buffer LCD Output Previous Software Library usage sequence Accelerated sequence using Graphics Accelerator LCD Output The data from the image synthesizing buffer is transferred to the LCD output buffer 4

Next, the SurfaceFlinger function blends together the multiple layers that have been written on the application s image rendering buffer. In order to create one frame, the layers are blended to an image-synthesizing buffer while using an image-rendering software library through the OpenGL ES API. (See Point 1 in Figure 3) At this point, traditionally the ARM CPU alone must perform the extremely heavy processing needed for many Android drawing functions such as α-blending, scaling (shrink and magnification) and layer mixing etc. This causes a bottleneck that slows down the Android user experience. Lastly, the picture blended on the image synthesizing buffer is transferred to the LCD output buffer. The final LCD picture is sent through the standard Android image rendering software library called API EGL, at Point 2 in Figure 3. Implementing our graphics accelerator will ease the bottleneck that occurs in points 1 & 2 above. The accelerator takes the heaviest Android Drawing functions α-blending, scaling, layer mixing and rotation away from the ARM CPU and processes them within the FPGA fabric. See Points 3 and 4 in Figure 3. The red line illustrated by Points 3 and 4 in the diagram represent the improved Android drawing process whereby the Arm CPU is complemented by the accelerator inside the FPGA. This results in an improved frame rate processing performance thus creating a user experience similar to that of a Smartphone. Figure 4: Accelerator Block Diagram DRAM CPU Avalon-MM Slave Host Interface Memory Avalon-MM Slave DMA Control Scaler Mixer Avalon-MM Slave DRAM DRAM 5

Actual implementation of the accelerator exploits the high-bandwidth connections from the ARM system bus into the logic fabric, as shown in Figure 4. We employed three memory-mapped interfaces two bus-master interfaces and one slave interface, to handle image-processing data flows and set-up/control flow, respectively, between the ARM core and the fabric. Results We implemented the graphics accelerator and Android platform on an Altera Cyclone V SoC FPGA, using the Altera Cyclone V SoC development kit and a compatible Terasic multi-touch LCD module, with a 4 GByte (or greater) MicroSD card for storage. The package as implemented includes Android 4.0.4 (ICS), Linus kernel 3.7.0, and U-boot version 2012.10. In this system we measured the following results: With Graphics Accelerator for Android Without Graphics Accelerator for Android CPU Usage (%) 19.0 48.8 Frame Rate (fps) 55 33 These figures show that we have indeed achieved significant off-loading of the ARM CPU. And user interaction with the device verifies that the look and feel of the user interface dynamics are the same as one would experience on a smart phone. We believe that this implementation of selected graphics primitives in the fabric of an FPGA illustrates the importance of a very high-bandwidth, low-latency connection between the Android host CPU and the accelerators, and the value of programmable logic as a means of implementing hardware acceleration in an embedded environment. Altera Corporation 101 Innovation Drive San Jose, CA 95134 USA www.altera.com Altera European Headquarters Holmers Farm Way High Wycombe Buckinghamshire HP12 4XF United Kingdom Telephone: (44) 1494 602000 Altera Japan Ltd. Shinjuku i-land Tower 32F 6-5-1, Nishi-Shinjuku Shinjuku-ku, Tokyo 163-1332 Japan Telephone: (81) 3 3340 9480 www.altera.co.jp Altera International Ltd. Unit 11-18, 9/F Millennium City 1, Tower 1 388 Kwun Tong Road Kwun Tong Kowloon, Hong Kong Telephone: (852) 2945 7000 2014 Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, ENPIRION, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and are trademarks or registered trademarks in other countries. All other words and logos identified as trademarks or service marks are the property of their respective holders as described at www.altera.com/legal. DS-1000