
Moblin.org SDK and Tools: Open Source Development for the Intel Powered MID Uli Dumschat Tools Product Marketing, Intel Intel® Software Development Products Overview Intel® Compilers • The best way to get application performance on Intel® multi- core processors Intel® VTune™ Performance Analyzers • Identify bottlenecks in source code and optimize multi-core performance Intel® Performance Libraries • Highly optimized, thread-safe, multimedia and HPC math functions Intel® Threading Analysis Tools • Find threading errors and optimize threaded applications for maximum performance Intel® Threading Building Blocks • C++ template-based runtime library that simplifies writing multithreaded applications for performance and scalability Intel® Cluster Tools • Create, analyze, optimize and deploy cluster-based applications Agenda Introduction to Moblin Intel® Compiler for more performance Intel® Debuggers to support Intel® Atom™ processor Intel® IPP Library for new feature development Intel® VTune™ to identify performance bottlenecks Introduction To Moblin Moblin Moblin SDK Intel® Tools for MID • Open Source Linux* SW Platform • Common platform for for Mobile & Embedded Devices development & deployment including Mobile Internet Devices • Complemented by OSS tools (MIDs), Netbooks, Automotive In- Vehicle Infotainment Systems • Rich Development Tool Suite from Intel: “Intel® C++ Software • Optimized for Intel® Atom™ Development Tool Suite for Processor Technologies Linux* OS Supporting Mobile Internet Devices” (Intel® Tools for MID) Moblin SDK Image Creator • Graphical tool to create a Linux* stack PowerTop • Identify how well system uses various power-saving features • Identify misbehaving applications • Get tuning suggestions to achieve low power consumption GNU Tools • GCC – Open Source Compiler Intel® Tools for MID • Complete set of development tools for optimized applications Documentation PowerTop • Sample apps, guides and documentation Moblin & Moblin SDK provide all components and tools to develop software for MIDs Why Intel Provides Software Development Products For MIDs Outstanding performance • Increased application software performance can help to extend battery life time Intel® Architecture customization increases productivity & efficiency • Find issues faster with system-level JTAG and application debugging Technology alignment • Latest Intel® Atom™ Processor Z5xx and chipset support • NDA Tools BETA programs for next generation silicon Excellent customer support Software Design Cycle Intel® C++ Compiler Intel® Debuggers y Highly optimizing y Intel® Atom™ y Full support for processor Z5xx and Intel® Atom™ chipset Support processor Z5xx & y Linux* Kernel and low- Moblin level driver debugging y GCC compatible y Application debugging y Built-in flash memory tool y Execution trace support Intel® IPP Library Intel® VTune™ Analyzer y Highly optimized y Tune code actually multimedia functions running on device y Tailored to y Performance bottleneck Intel® Atom™ identification processor Z5xx y Tuning Assistant Intel® MID Tool Suite covers the entire cycle of system and application software development Linux Compiler Features Compiler Features Benefits Performance Significantly faster than GCC High performing code maps directly into application quality and battery lifetime In-order scheduler Compiler optimization switch that re-arranges/optimizes application code to be executed with best performance on Intel’s Low-power IA technology Better performance of system- and application software helps to reduce power consumption of a mobile device Profile Guided Multi-stage optimization method with feedback loop Optimization Improves application performance by reducing instruction-cache thrashing, reorganizing code layout, shrinking code size, and reducing branch mispredictions GCC Compatibility Intel Compiler provides GCC language extensions and is source and binary code compatible with GCC Saves efforts in porting/re-using existing code Need For In-order Scheduler Support Representative assembly: 1 movl b,%eax Memory Load Dependency Stall Dependency 2 imull $7,%eax Consider code sequence: 3 movl %eax,a a = b * 7; 4 movl d,%edx c = d * 7; Memory Load Dependency Stall Dependency Processor cycles 5 imull $7,%edx 6 movl %edx,c • In some cases assembly code causes delays and dependency stalls which decrease the performance of application and performance critical code Need For In-order Scheduler Support Representative assembly: -xL Compiler 1 movl b,%eax switch 4 movl d,%edx 2 imull $7,%eax Consider code sequence: in-order 5 imull $7,%edx a = b * 7; scheduler 3 movl %eax,a c = d * 7; 6 movl %edx,c Processor cycles • Compiler switch –xL enables the in-order scheduler, which may improve application’s performance behavior SPEC CPU2000 Benchmark (Estimated) Estimated SPECint*_base2000 ICC10.1 vs. GCC4.2.1 16% 30% 1,4 faster faster Estimated based on the following configuration assumptions: Compilers: 1,2 Intel C/C++ Compiler 10.1.013 for Linux GCC 4.2.1 (as contained in Ubuntu/MOBLIN 2008/02/05) Hardware: 1,0 Intel® Atom™ Processor Z530 (code-named: Silverthorne) processor @ 1.60 GHz CPU: 1596.138 MHz (according to Linux /proc/cpuinfo) HT enabled (according to BIOS + Linux /proc/cpuinfo) 0,8 FSB: 533 MHz (according to BIOS) L1 cache: 24 KB 0,6 L2 cache: 512 KB 512 MB Memory (RAM) Board: Intel internal reference board 0,4 Target Operating System: GCC 4.2.1 GCC 4.2.1 GCC Ubuntu/MOBLIN 2008/02/05 (GCC = 4.2.1 1.00) installed on a hard disc drive (no USB stick) E stim ated Relative SPECint_base2000: 0,2 Version 1.3 Perform ance GCC to 4.2.1 SPEC and SPECint are trademarks of the Standard Performance Evaluation 0,0 Intel®Compiler 10.1 C++ for Linux* Intel®Compiler 10.1 C++ for Linux* Corporation. For more information see http://www.spec.org). Compiler switches used: -o2 Advanced optimization -o2: GCC: "-O2 -m32“ ICC: "-xL -O2 -vec-“ Advanced optimization: GCC 4.2.1 Intel® C++ Compiler 10.1 for Linux* GCC: "-m32 -fprofile-use -O3 -funroll-all-loops“ ICC: "-xL -prof_use -O3 -ipo -no-prec-div" Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the performance of Intel products, reference www.intel.com/software/products or call (U.S.) 1-800-628-8686 or 1-916-356-3104 Intel does not control or audit the design or implementation of third party benchmarks or Web sites referenced in this document. Intel encourages all of its customers to visit the referenced Web sites or others where similar performance benchmarks are reported and confirm whether the referenced benchmarks are accurate and reflect performance of systems available for purchase. Use Intel® C++ Compiler for higher performance on MIDs System And Application Debugger System y JTAG System Debugging Debugging - Connects through In-Target Probe eXtended Debug Port (ITP-XDP). - Requires JTAG connector on the target hardware and Intel’s XDP3 JTAG hardware interface - Flash Memory support Intel® C++ JTAG Debugger for Linux* OS Supporting Mobile Internet Devices (Intel® MID JTAG Debugger) - Ideal for kernel debugging and boardbring-upphase - Linux* OS awareness Application Debugging y Application Debugging - Connects through TCP/IP - Requires debug agent on the target - Linux* OS awareness - Ideal for application development Intel® C++ Application Debugger for Linux* OS Supporting Mobile Internet Devices (Intel® MID Application Debugger) Chipset Peripheral Registers Kernel Module/Audio Driver Intel® Atom™ Processor -Init Code Z510/Z530 #include <hdaudioregisters.h> #define HD_AUDIO_REG_BASE = 0x00FF0000; uint32 * hdaudioregbase = (uint32)HD_AUDIO_REG_BASE; 24bit init() LVDS 400/533 MHz { FSB System DDR2 400/533 hdaudioregbase[D27FO_IHDACR] = 0x01; (mem down) … SDVO Controller Hub 2 PCIe* x1 } Lanes GPIO SCH US15W 8* USB 2.0 Host US15W • ~400 Peripheral Registers Ports SMBus LPC SDIO/ MMC FWH SIO 1 IDE Channel Intel® High Definition Audio • Validating Peripheral Register Settings Can Be Quite Complex Processor & Chipset Specific Register Access Show and change the content of all processor & chipset registers Convenient access to architectural registers - analyze register changes after instruction execution Chipset Registers Bitfield Editor Graphical representation of peripheral registers and bit fields with online documentation Easy and fully documented access to all processor registers and peripherals. Change register contents on the fly, without re-compilation Note: Intel® MID JTAG Debugger requires the XDP3 JTAG hardware interface from Intel (see p.20 “Pricing & Support Model“) Trace Support • Hardware feature of Intel® Atom™ Processor • Enables viewing of execution history • Identify the root cause for exceptions Branch Trace Buffer On chip (Intel® MID JTAG Debugger) Memory allocated (Intel® MID Application Debugger) Executed Application Application Source Code Send Branch Trace Information To Debugger Branch Trace Support C/C++ Source Window Trace Window Stop application at specific signal Assembler Window OS Awareness Kernel • Monitor kernel modules and system threads (JTAG only) • Access status information • Halt, debug threads and applications and modules individually • Debugging of Linux*
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages27 Page
-
File Size-