Enabling The Software Ecosystem for the Future of Mobile Computing

Seth Bernsen Strategic Software Alliances P.R. China November, 2009

1 Engagement Model for Differentiation

Differentiated Products  OEM/ODM requirements OEM Partners capture  Connecting OEM/ODM to software solutions providers Software Partners  Enable software and services vendors  Ensure robust support of Semiconductor Partners key applications and capabilities  Organization and rally the Open Source Community Open Source community  Direct Open Source Common Foundation Contributions

2 Innovating with Open Source Software  ARM contributions into open source upstream projects result in performance optimizations across the eco-system  Example: ARM has optimized JIT code generation for JavaScript

ARM Optimal JIT Code Key Contributions to One project positively work  Generation  2.75X speedup* effects 6 key web technologies

ActionScript JavaScript Virtual Machine Virtual Machine

Web Web Browser Adobe Flash Applications Runtime Runtime

Adobe AIR Browser Yahoo Widgets

Fennec Mobile Browser

Internet Application Reference code available on http://www.linux.onarm.com *Based on Sunspider benchmark Runtime

3 Across the ARM Roadmap ARM Cortex “Low-Power Leadership”  Contributing CPU support to Linux kernel Osprey for Cortex-A profiles x1-4 1.6GHz TSMC 40G… Cortex-A9  uClinux for Cortex-R & Cortex-A8 Cortex-M Profiles  Validated with ARM x1-4 RealView reference Cortex-R4F Cortex-A5 boards Cortex-R4  Includes support for both ARM & Thumb-2 builds Performance, Functionality Performance, http://www.arm.com/linux SC300 Cortex-M3 http://www.linux-arm.org/git Cortex-M1 Cortex-M0 miniSwift Gate-level netlist 2006 2007 2008 2009 2010

4 Supporting Two Development Models Growing demand for native as well as cross target development  Embedded Platforms  Open Platforms  MIDs, PDA, etc.  Netbooks, Nettops, Servers, etc  Resource constrained targets …  Relatively closed products  Native code development cycle  Limited storage  High-spec platform  Build and test process  Memory, MHz is relatively complex  Easy to reconfigure and expand  Cross-development model  Access to disk storage  Build on PC/x86, test on target platform or simulator

5 ARM Linux Internet Software Platform

 Leverages Nokia Maemo™ project  Debian Linux as foundation  GNOME components and Mozilla web browser

 Reference platform to validate integration of software components  Support for ARMv6 and ARMv7  Facilitate common development across ARM reference platforms

 Provide builds to facilitate access and engagement with respective communities and projects  Includes patches not yet mainlined  Maintained code base and regular snapshots

Website: http://linux.onarm.com

6 Java Standard Edition on ARM  Java Standard Edition v6.10 (ARM) available from Sun since Q1 2009  For ARM Linux 2.6.22 and above  Full Desktop Java for ARM  Includes C1 Client Hotspot JIT  Powers Java Applets in browser  Powers many desktop apps  Popular in Enterprise front-ends

Java Micro Java Standard Java Card Edition Edition

Windows Mobile Symbian OS ARM ARM Linux Linux

ARM Architecture SecurCore ARM 9… ARM 11.. Cortex A…

7 OpenJDK (IcedTea) on ARM  ARM is driving optimization via Ubuntu  Built and tested with Ubuntu 9.04  Added optimized ARM Assembly interpreter for Ubuntu – 4x speedup  OpenJDK optimizations in Karmic  Accepted by Canonical  Pushed upstream to IcedTea  Free Open Source Java  Complete implementation  Java TCK compliant Java Micro Java Standard Java Card Edition Edition

Windows Mobile Symbian OS ARM ARM Linux Linux

ARM Architecture SecurCore ARM 9… ARM 11.. Cortex A…

8 JavaScript Acceleration  2009 was the year that JavaScript performance accelerated  4 Key Open Source Projects to accelerate JavaScript  “TraceMonkey” – Mozilla Foundation  “Tamarin”- Adobe  “Squirrel Fish (Extreme)”- WebKit  “V-8”-  All accelerate JavaScript by compiling it to native code (JIT)  Some yield up to 5X+ performance improvement  Example: Factorial is faster than non-optimized C  Multiple JavaScript engines to fit the need  All Open Source Projects: benefit from each other!

9 Mozilla Firefox and Fennec Browsers  Targets Smartbooks, Smartphones, DTV’s…  ARM created enhanced “Tamarin” nano JIT code generator  ARM created graphics optimizations using NEON  ARM is working with Mozilla to add OpenGLES 2.0  Firefox 3.5 up to 2x faster* than Firefox 3.0  7x JavaScript improvement between Firefox 3.5. and 3.0  Uses ARM optimized JIT code generation  Release schedule parity with Intel  Firefox 3.6 Dec 2009  Fennec 1.0 scheduled for Nov 2009  Performance parity with Intel

* Sunspider benchmark

10 Webkit - Advanced Browser Framework  Webkit forms the basis for >6 browsers on ARM  Webkit framework has 2 parts  WebCore – supports different graphics libraries  JavaScriptCore – supports different JavaScript Engines  ARM is optimizing key libraries and engines

skia 2D Graphics Squirrel Fish Nitro Squirrel Fish Cairo 2D Extreme Javascript Engine Graphics Google V8 Javascript Engine Javascript Engine

Chrome Midori Safari Browser Browser Browser Symbian S60 Browser Browser Browser Framework

11 Skia Graphics Engine Optimizations

 Graphics core for both Chrome and Android  Includes software implementation of OpenGLES1.1 (libagl)  Will load a hardware accelerator if present (libhgl)

 ARM optimized Skia using NEON intrinsics (and assembler)  Provides 10%-30% performance uplift on browser use cases  OpenGL ES 2.0 API coming in Éclair NDK

12 Google VM Optimizations

 Dalvik JIT announced publically at Google-IO May ’09  Today functional for Architecture 5T (ARM &Thumb)  Google has asked ARM to engage on Dalvik open source project  ARM has initially worked on interpreter improvements >10% Uplift  ARM planning work on JIT contributions to code generation  Thumb2 and Thumb-2 EE (as appropriate)

13 OS: Designed for ARM  Core browser across Mobile, Desktop/Smartbook  Implements HTML 5.0 standards including

 Rapid lifecycle (v3.0 in 1 year) for LARGE scale Web Apps  ARM has provided training for the Chrome V8 Team  ARM will contribute resource to improving V8 performance

14 Ubuntu Distribution on ARM

 Engaged with Canonical to produce Ubuntu Linux distribution in sync with other architectures  Ubuntu 9.04 Jaunty version released in April’09  http://www.ubuntu.com/arm  Used i.MX51 as reference platform for Jaunty release cycle  Use the same process and release cycle as for x86

 ‘Karmic’ October ’09 released!  Built with ARMv6 ISA + VFP options  Include support for additional HW  Expands ARM Linux ecosystem  Builds on Debian “armel” distribution  Provide supported distributions with improved architectural support

15 Adobe Flash Player Technology

The worlds most popular web Rich Content delivery vehicle 1 billion mobile phones predicted to run Flash Player in 2010

Vector & raster graphics Bi-directional audio & Execution of ActionScript rendering via software video streaming via programs via Tamarin and hardware engines Audio and Video codecs Central Virtual Machine

 Three core technology threads as part of Flash

16 OSP Technical Engagement & Output

>100 Man years effort porting and optimizing

Codec Optimization Tamarin Central JIT F10 Open GLES 2.0 Open Max IL Software Rendering

Flash 10.1

17 Flash 10 Milestones

2008 2009 2010 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Tamarin VM  Flash 10 in development for Optimizations various platforms SW Graphic Rendering Optimizations Adobe porting and certification HW Graphic  Rendering partners Optimizations Adobe ARM Partnership SoC announced at Adobe Max Codec  Approach enables partners to fully Optimizations utilize hardware capabilities of SoC and software platform Open Screen Project Integration announced! and QA

Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2

18 Summary

 ARM works with both the private and open source communities to enable optimized solutions for the broadest range of software

 ARM is working to ensure software support for the future of mobile computing

19 Thank You

20