Accelerating performance on Qt and 
 WebKit for the MIPS architecture
Delivering the Best Web Experience 
      for Embedded Devices
Agenda


•   MIPS Introduction
•   Emerging Trends
•   Web Connectivity
•   JIT Optimizations for WebKit
•   Benchmarks
•   Summary
MIPS Technologies Overview

MIPS®: Number One Processor
Architecture for the Digital Home

                          MIPS develops &
                          licenses processor IP
                          for the embedded
                          semiconductor market

                          Hundreds of licenses

                          Billions of units shipped


     At the core of today’s most
innovative digital consumer products
MIPS Segments & Markets

                Consumer                         Communication
          DTV     DVD          STB        VoIP       WiFi     Modem/RG
DPF




                            Home           Home




                                                                        NAS
                        Entertainment    Networking
DMA
DSC/DVC




                                                                    Printers &
                                                                     Copiers
                          Personal          Other
                        Entertainment     Segments




                                                                    Internet
Games




                                                                      Infra
                PND/PMP MID/Netbook     Telematics   Appliances
                 Mobile                  Microcontrollers, Enterprise
MIPS Processors: Owning “The Digital Home”
               -The Growth Sector of Semiconductors for 2009-



 End Market Share
   & Customers


Digital TV        60%

Set Top Box
 -Cable           72%
 -IPTV            75%
                            Our customers include
DVD
 -Blu-ray         75%
 -DVD             72%

Digital Camera    31%

Mobile TV
& GPS PMP         60%
MIPS 32-Bit Processor Core Families

1004K: Multi-threaded (34K), Multiprocessor (1-4 cores)                        Broad range
        Coherence Management Unit                               1004K               of
        1.3+ GHz (40nm), 1.5DMIPS/MHz/Core
                                                                              synthesizable
                                                                               processors,
74K:    Superscalar
        15-stage pipeline                                                     optimized for
        1.1 GHz in 65nm (prod’n frequency)                    74K               low-power
        Up to 2.7GHz in 40nm                                                   convergent
                                                                                consumer
34K: Multi-threading                         34K
                                                                               multimedia
                                                                               applications
24KE: DSP extensions
                                             24KE

24K: 8-stage pipeline 800 MHz
        (65nm)                               24K
                                                          m                       M14Kc
                                                          i
                                                          c                      M14Kc
4KE: Cache, MMU                 4KE                       r
                                                          o
M4K: MCU, Low Cost                                        M
                                M4K                                              M14K
                                                          I
                                                          P
                                                          S
4KS: Security                   4KS                                     microMIPS, MIPS32
                                                                        Reduced interrupt latency
                                                                        AHB, advanced debug
Agenda


•   MIPS Introduction
•   Emerging Trends
•   Web Connectivity
•   JIT Optimizations for WebKit
•   Benchmarks
•   Summary
MIPS in Converging Devices

                                                      Universal Media
                                                          Player
                                                                            IP Phone
                                        Networked
 Multi-Protocol                         Media Tank
  IP Phone
                                                       IPOD Video
                        LCD TV
                                                        Recorder
                      with Widgets
                                                                          IP Set-top Box


                                             HD
Home Entertainment                        Camcorder
     Device                                            Movie Player STB
                       Portable Media
                           Player
                                                                          Networked Digital
                                                                            Photo Frame
                                     Digital Media
                                        Player         Personal Media
    Retail Shopping                                        Player
       Terminal
Qt Is In Homes Today


    Devices
           –Roku Netflix Player
           –Neuros OSD
           –Blu-Ray Players
    Software
           –MythTV PVR
           –LinuxMCE




9   © 2009 Nokia
Bring Internet Media into the Home



     Internet Connected      Web Streaming   Infotainment Portals
         “HD” Devices

                              INTERNET


                                   HTTP
                                   H.264
                                   Flash
                                   Etc.




10
Typical STB Software Architecture

                                                                                                   3rd Party
                                                                                   OEM App
                                                                                                      App


                                     3rd Party Middleware
                                             Qt WebKit
                                              Browser
                                              Toolkit

                                                                    STB            Adobe®
                          Qt GUI ToolKit                                                          Java VM
                                                                 Middleware      Flash Lite®
Qt for Embedded Linux




    DRMs     Audio        Video      Demux       HDMI
     CAs     µCode        µCode      µCode      Library                                        Linux Kernel

            MIPS        MIPS        Audio      Video      MIPS      Peripheral
            IPU      Security CPU   DSPs      Decoders    CPU           I/O             MIPS 74K
Agenda


•   MIPS Introduction
•   Emerging Trends
•   Web Connectivity
•   JIT Optimizations for WebKit
•   Benchmarks
•   Summary
What Drives Web Performance?

• Highly web content specific
    – Interactive AJAX content vs Simple HTML
    – Image heavy vs. text
•   Page rendering
•   Image rendering
•   Javascript
•   Interactive web content is heavily dependent on
    Javascript performance
    – PC: Chrome vs. IE8 vs. Firefox “performance” judged
      mainly on Javascript engine performance
Faster Javascript Leads to “Faster” Web Experience

• PC browser performance differences directly
  related to Javascript engine
   – SquirrelFish Extreme (Nitro)
      • Javascript Virtual Machine engine used in Webkit Open
        Source Project
      • Some projects that make use of Webkit:
        Safari, Qt, Arora, Midori
   – V8
      • Chrome
   – Tracemonkey (w/ nanoJIT)
      • Firefox 3.5.x
   – IE8
JIT and the Javascript Engine

• Developing a JIT speeds up browsing
  performance on Javascript-based webpages
  and applications using it as a scripting language
• JIT techniques also helpful for Tamarin
  – Flash 10
  – Yahoo Widgets
• Status:
  – JIT completed and submitted to Webkit project for
    review/acceptance
  – MIPS incorporating into MIPS-Android HD
    development
Agenda


•   MIPS Introduction
•   Emerging Trends
•   Web connectivity
•   JIT optimizations for WebKit
•   Benchmarks
•   Summary
MIPS JIT for WebKit JavaScriptCore

• Development environment: Debian 5.0 (lenny).
   – Debian runs on top of Qemu simulators, MIPS Malta
     boards (FPGA), or Sigma boards.
• Qt libraries are installed on Debian.
   – # apt-get   install libqt4-dev
• Webkit is configured and built with Qt (--qt) on
  Debian.
• To accelerate compilation time, we copy Qt
  libraries, Qt headers, Qt generated files, and
  Makefile to an x86 Linux host.
  Then, we use MIPS linux-cross toolchains from
  CodeSourcery to cross-compile.
Implementing JIT
• JIT frameworks need to assign registers for
  special purposes. The selection of registers is
  important.
  – Some registers are used for returned values.
  – Some registers must be preserved across function
    calls.
• The design for trampoline is important.
  – We need to set up parameters in the stack to be
    passed to functions.
  – We need to support exceptions.
  – For MIPS position-independent code, we need to
    preserve the value of global-pointer register ($28) in
    the trampoline code.
Implementing JIT (cont.)
• MIPS PC-relative branches cover 16-bit ranges.
     – When branches are too far away, direct jump (J)
       covers 26-bit ranges.
     – LUI/ORI/JR covers 32-bit ranges.
•   J and LUI/ORI/JR are not PC-relative instructions.
•   When the buffer to hold instructions is moved, the target
    of J and LUI/ORI/JR must be re-calculated and updated.
•   The relaxation of branches need four extra words. A
    short branch is created to jump over four extra words to
    speed up.
•   After JIT code is generated, we need to flush data cache
    using synci (a user-level instruction).
All WebKit JIT optimizations are supported

• ENABLE_JIT

• ENABLE_JIT_OPTIMIZE_CALL

• ENABLE_JIT_OPTIMIZE_NATIVE_CALL

• ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS

• ENABLE_JIT_OPTIMIZE_METHOD_CALLS

• YARR_JIT
Agenda


•   MIPS Introduction
•   Emerging Trends
•   Web Connectivity
•   JIT Optimizations for WebKit
•   Benchmarks
•   Summary
Web Performance Benchmarks
Relative Javascript Benchmark Performance
         Interpreted   JIT


   H/W Platforms:
   74Kf = Sigma Designs SMP8642 @ 660 MHz
   A8 = TI OMAP 3530 @ 500 MHz
   Atom = Intel Atom 330 @ 1.6 GHz


                                 >2x faster
                                 than ARM
                                                                     Same performance as
                                                                       Atom @ a fraction
                                                                     of the power and cost




74Kf_32K/32K_0KB       74Kf_32K/32K_256K (est)   A8_16K/16K_256K     Atom_32K/24K_512K


                                                 V8/Sunspider benchmark suite
                                                 All results normalized to 1 GHz
Agenda


•   MIPS Introduction
•   Emerging Trends
•   Web Connectivity
•   JIT Optimizations for WebKit
•   Benchmarks
•   Summary
Best Web and Multimedia Experience Driving Performance




                           2x performance of ARM!
            Fraction of the cost and power consumption of Intel!

More Related Content

PDF
M2sat Regional News Gathering system ppt 191112
PDF
Qvsd datasheet
PDF
Feature-rich Multimedia Video Conferencing MCU
PDF
Qvpro datasheet
PDF
MCU 4200
PDF
VoIP Radio Gateway : Case Study
PDF
ADVANCED DVB-C,DVB-S STB DEMOD
M2sat Regional News Gathering system ppt 191112
Qvsd datasheet
Feature-rich Multimedia Video Conferencing MCU
Qvpro datasheet
MCU 4200
VoIP Radio Gateway : Case Study
ADVANCED DVB-C,DVB-S STB DEMOD

What's hot (15)

PPT
Situation Review: SDR Transceivers
PDF
MCU 4200
PDF
MCU 4200
PDF
Codian MCU 4200 Series
PDF
Enhanced Gateway
PDF
Ds kulabyte encoder
PDF
Sony LMD-2451W
PDF
Blonder Tongue HDE-2H-QAM Presentation
PDF
Brokerage 2007 presentation wireless
PDF
Life Size Communicator
PDF
High Definition Video
PDF
Datavideo HS-2000L
PDF
Lync ip phone 2013
PDF
HD3000
Situation Review: SDR Transceivers
MCU 4200
MCU 4200
Codian MCU 4200 Series
Enhanced Gateway
Ds kulabyte encoder
Sony LMD-2451W
Blonder Tongue HDE-2H-QAM Presentation
Brokerage 2007 presentation wireless
Life Size Communicator
High Definition Video
Datavideo HS-2000L
Lync ip phone 2013
HD3000
Ad

Viewers also liked (8)

PPT
了解 Qt
PDF
Designing and Building (Your Own) UI Frameworks For the Enterprise
PDF
03 - Qt UI Development
PDF
Maemo 6 UI Framework
PDF
OVERVIEW: Chromium Source Tree
PDF
Charity apprentice logo-blue-6675
PDF
Qt5 embedded
PDF
Chromium ui framework(shared)
了解 Qt
Designing and Building (Your Own) UI Frameworks For the Enterprise
03 - Qt UI Development
Maemo 6 UI Framework
OVERVIEW: Chromium Source Tree
Charity apprentice logo-blue-6675
Qt5 embedded
Chromium ui framework(shared)
Ad

Similar to Accelerating performance on Qt and WebKit for the MIPS architecture (20)

PPT
Zig bee 1
PDF
Dham bangalore q407
PPTX
Living with "Moore" & Designing the Ultimate SoC
PDF
Lex Roadmap 2008 Q4
PDF
Lex Roadmap 2008 Q4
PDF
Il Cloud chiavi in mano | Marco Soldi (Intel) | Milano
PPT
Mips track a
PPTX
Computer systems
PDF
Wi-Fi Evolution
PPT
Modeling System Behaviors: A Better Paradigm on Prototyping
PDF
Svs 10
PDF
Svs 10
PDF
ADVANCED DVB-C,DVB-S STB DEMOD
PDF
ADVANCED DVB-C,DVB-S STB DEMOD
PDF
The smartphone opportunity-r3
PDF
PDF
Sip 03
PDF
Sip 03
PDF
Mobile Graphics, The Need for Open Source Drivers
PDF
Sip vo ip-ims-convergence-d2-10 at kishore
Zig bee 1
Dham bangalore q407
Living with "Moore" & Designing the Ultimate SoC
Lex Roadmap 2008 Q4
Lex Roadmap 2008 Q4
Il Cloud chiavi in mano | Marco Soldi (Intel) | Milano
Mips track a
Computer systems
Wi-Fi Evolution
Modeling System Behaviors: A Better Paradigm on Prototyping
Svs 10
Svs 10
ADVANCED DVB-C,DVB-S STB DEMOD
ADVANCED DVB-C,DVB-S STB DEMOD
The smartphone opportunity-r3
Sip 03
Sip 03
Mobile Graphics, The Need for Open Source Drivers
Sip vo ip-ims-convergence-d2-10 at kishore

More from account inactive (20)

ODP
PDF
KDE Plasma for Mobile Phones
PDF
Shipping Mobile Applications Using Qt for Symbian
PDF
The Future of Qt Widgets
PDF
Scripting Your Qt Application
PDF
Special Effects with Qt Graphics View
PDF
Developments in The Qt WebKit Integration
PDF
Qt Kwan-Do
PDF
Qt on Real Time Operating Systems
PDF
Development with Qt for Windows CE
PDF
Translating Qt Applications
PDF
Qt Creator Bootcamp
PDF
Qt Widget In-Depth
PDF
Qt State Machine Framework
PDF
Mobile Development with Qt for Symbian
PDF
How to Make Your Qt App Look Native
PPT
Animation Framework: A Step Towards Modern UIs
PDF
Using Multi-Touch and Gestures with Qt
PDF
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
PDF
The Mobility Project
KDE Plasma for Mobile Phones
Shipping Mobile Applications Using Qt for Symbian
The Future of Qt Widgets
Scripting Your Qt Application
Special Effects with Qt Graphics View
Developments in The Qt WebKit Integration
Qt Kwan-Do
Qt on Real Time Operating Systems
Development with Qt for Windows CE
Translating Qt Applications
Qt Creator Bootcamp
Qt Widget In-Depth
Qt State Machine Framework
Mobile Development with Qt for Symbian
How to Make Your Qt App Look Native
Animation Framework: A Step Towards Modern UIs
Using Multi-Touch and Gestures with Qt
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
The Mobility Project

Recently uploaded (20)

PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
NewMind AI Weekly Chronicles – August ’25 Week IV
PDF
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
DOCX
search engine optimization ppt fir known well about this
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
giants, standing on the shoulders of - by Daniel Stenberg
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
sbt 2.0: go big (Scala Days 2025 edition)
NewMind AI Weekly Chronicles – August ’25 Week IV
CXOs-Are-you-still-doing-manual-DevOps-in-the-age-of-AI.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
Basics of Cloud Computing - Cloud Ecosystem
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
Convolutional neural network based encoder-decoder for efficient real-time ob...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
Co-training pseudo-labeling for text classification with support vector machi...
Taming the Chaos: How to Turn Unstructured Data into Decisions
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Early detection and classification of bone marrow changes in lumbar vertebrae...
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
search engine optimization ppt fir known well about this
Training Program for knowledge in solar cell and solar industry
giants, standing on the shoulders of - by Daniel Stenberg

Accelerating performance on Qt and WebKit for the MIPS architecture

  • 2. Agenda • MIPS Introduction • Emerging Trends • Web Connectivity • JIT Optimizations for WebKit • Benchmarks • Summary
  • 3. MIPS Technologies Overview MIPS®: Number One Processor Architecture for the Digital Home MIPS develops & licenses processor IP for the embedded semiconductor market Hundreds of licenses Billions of units shipped At the core of today’s most innovative digital consumer products
  • 4. MIPS Segments & Markets Consumer Communication DTV DVD STB VoIP WiFi Modem/RG DPF Home Home NAS Entertainment Networking DMA DSC/DVC Printers & Copiers Personal Other Entertainment Segments Internet Games Infra PND/PMP MID/Netbook Telematics Appliances Mobile Microcontrollers, Enterprise
  • 5. MIPS Processors: Owning “The Digital Home” -The Growth Sector of Semiconductors for 2009- End Market Share & Customers Digital TV 60% Set Top Box -Cable 72% -IPTV 75% Our customers include DVD -Blu-ray 75% -DVD 72% Digital Camera 31% Mobile TV & GPS PMP 60%
  • 6. MIPS 32-Bit Processor Core Families 1004K: Multi-threaded (34K), Multiprocessor (1-4 cores) Broad range Coherence Management Unit 1004K of 1.3+ GHz (40nm), 1.5DMIPS/MHz/Core synthesizable processors, 74K: Superscalar 15-stage pipeline optimized for 1.1 GHz in 65nm (prod’n frequency) 74K low-power Up to 2.7GHz in 40nm convergent consumer 34K: Multi-threading 34K multimedia applications 24KE: DSP extensions 24KE 24K: 8-stage pipeline 800 MHz (65nm) 24K m M14Kc i c M14Kc 4KE: Cache, MMU 4KE r o M4K: MCU, Low Cost M M4K M14K I P S 4KS: Security 4KS microMIPS, MIPS32 Reduced interrupt latency AHB, advanced debug
  • 7. Agenda • MIPS Introduction • Emerging Trends • Web Connectivity • JIT Optimizations for WebKit • Benchmarks • Summary
  • 8. MIPS in Converging Devices Universal Media Player IP Phone Networked Multi-Protocol Media Tank IP Phone IPOD Video LCD TV Recorder with Widgets IP Set-top Box HD Home Entertainment Camcorder Device Movie Player STB Portable Media Player Networked Digital Photo Frame Digital Media Player Personal Media Retail Shopping Player Terminal
  • 9. Qt Is In Homes Today Devices –Roku Netflix Player –Neuros OSD –Blu-Ray Players Software –MythTV PVR –LinuxMCE 9 © 2009 Nokia
  • 10. Bring Internet Media into the Home Internet Connected Web Streaming Infotainment Portals “HD” Devices INTERNET HTTP H.264 Flash Etc. 10
  • 11. Typical STB Software Architecture 3rd Party OEM App App 3rd Party Middleware Qt WebKit Browser Toolkit STB Adobe® Qt GUI ToolKit Java VM Middleware Flash Lite® Qt for Embedded Linux DRMs Audio Video Demux HDMI CAs µCode µCode µCode Library Linux Kernel MIPS MIPS Audio Video MIPS Peripheral IPU Security CPU DSPs Decoders CPU I/O MIPS 74K
  • 12. Agenda • MIPS Introduction • Emerging Trends • Web Connectivity • JIT Optimizations for WebKit • Benchmarks • Summary
  • 13. What Drives Web Performance? • Highly web content specific – Interactive AJAX content vs Simple HTML – Image heavy vs. text • Page rendering • Image rendering • Javascript • Interactive web content is heavily dependent on Javascript performance – PC: Chrome vs. IE8 vs. Firefox “performance” judged mainly on Javascript engine performance
  • 14. Faster Javascript Leads to “Faster” Web Experience • PC browser performance differences directly related to Javascript engine – SquirrelFish Extreme (Nitro) • Javascript Virtual Machine engine used in Webkit Open Source Project • Some projects that make use of Webkit: Safari, Qt, Arora, Midori – V8 • Chrome – Tracemonkey (w/ nanoJIT) • Firefox 3.5.x – IE8
  • 15. JIT and the Javascript Engine • Developing a JIT speeds up browsing performance on Javascript-based webpages and applications using it as a scripting language • JIT techniques also helpful for Tamarin – Flash 10 – Yahoo Widgets • Status: – JIT completed and submitted to Webkit project for review/acceptance – MIPS incorporating into MIPS-Android HD development
  • 16. Agenda • MIPS Introduction • Emerging Trends • Web connectivity • JIT optimizations for WebKit • Benchmarks • Summary
  • 17. MIPS JIT for WebKit JavaScriptCore • Development environment: Debian 5.0 (lenny). – Debian runs on top of Qemu simulators, MIPS Malta boards (FPGA), or Sigma boards. • Qt libraries are installed on Debian. – # apt-get install libqt4-dev • Webkit is configured and built with Qt (--qt) on Debian. • To accelerate compilation time, we copy Qt libraries, Qt headers, Qt generated files, and Makefile to an x86 Linux host. Then, we use MIPS linux-cross toolchains from CodeSourcery to cross-compile.
  • 18. Implementing JIT • JIT frameworks need to assign registers for special purposes. The selection of registers is important. – Some registers are used for returned values. – Some registers must be preserved across function calls. • The design for trampoline is important. – We need to set up parameters in the stack to be passed to functions. – We need to support exceptions. – For MIPS position-independent code, we need to preserve the value of global-pointer register ($28) in the trampoline code.
  • 19. Implementing JIT (cont.) • MIPS PC-relative branches cover 16-bit ranges. – When branches are too far away, direct jump (J) covers 26-bit ranges. – LUI/ORI/JR covers 32-bit ranges. • J and LUI/ORI/JR are not PC-relative instructions. • When the buffer to hold instructions is moved, the target of J and LUI/ORI/JR must be re-calculated and updated. • The relaxation of branches need four extra words. A short branch is created to jump over four extra words to speed up. • After JIT code is generated, we need to flush data cache using synci (a user-level instruction).
  • 20. All WebKit JIT optimizations are supported • ENABLE_JIT • ENABLE_JIT_OPTIMIZE_CALL • ENABLE_JIT_OPTIMIZE_NATIVE_CALL • ENABLE_JIT_OPTIMIZE_PROPERTY_ACCESS • ENABLE_JIT_OPTIMIZE_METHOD_CALLS • YARR_JIT
  • 21. Agenda • MIPS Introduction • Emerging Trends • Web Connectivity • JIT Optimizations for WebKit • Benchmarks • Summary
  • 22. Web Performance Benchmarks Relative Javascript Benchmark Performance Interpreted JIT H/W Platforms: 74Kf = Sigma Designs SMP8642 @ 660 MHz A8 = TI OMAP 3530 @ 500 MHz Atom = Intel Atom 330 @ 1.6 GHz >2x faster than ARM Same performance as Atom @ a fraction of the power and cost 74Kf_32K/32K_0KB 74Kf_32K/32K_256K (est) A8_16K/16K_256K Atom_32K/24K_512K V8/Sunspider benchmark suite All results normalized to 1 GHz
  • 23. Agenda • MIPS Introduction • Emerging Trends • Web Connectivity • JIT Optimizations for WebKit • Benchmarks • Summary
  • 24. Best Web and Multimedia Experience Driving Performance 2x performance of ARM! Fraction of the cost and power consumption of Intel!