SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
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!

Mais conteúdo relacionado

Mais procurados

Situation Review: SDR Transceivers
Situation Review: SDR TransceiversSituation Review: SDR Transceivers
Situation Review: SDR TransceiversTobias Wellnitz
 
Codian MCU 4200 Series
Codian MCU 4200 SeriesCodian MCU 4200 Series
Codian MCU 4200 SeriesVideoguy
 
Enhanced Gateway
Enhanced GatewayEnhanced Gateway
Enhanced GatewayVideoguy
 
Ds kulabyte encoder
Ds kulabyte encoderDs kulabyte encoder
Ds kulabyte encoderciperi
 
Blonder Tongue HDE-2H-QAM Presentation
Blonder Tongue HDE-2H-QAM PresentationBlonder Tongue HDE-2H-QAM Presentation
Blonder Tongue HDE-2H-QAM PresentationRakesh Agrawal
 
Brokerage 2007 presentation wireless
Brokerage 2007 presentation wirelessBrokerage 2007 presentation wireless
Brokerage 2007 presentation wirelessimec.archive
 
Life Size Communicator
Life Size CommunicatorLife Size Communicator
Life Size CommunicatorAnnie Lavoie
 
High Definition Video
High Definition VideoHigh Definition Video
High Definition VideoVideoguy
 
Datavideo HS-2000L
Datavideo HS-2000LDatavideo HS-2000L
Datavideo HS-2000LAV ProfShop
 

Mais procurados (15)

Situation Review: SDR Transceivers
Situation Review: SDR TransceiversSituation Review: SDR Transceivers
Situation Review: SDR Transceivers
 
MCU 4200
MCU 4200MCU 4200
MCU 4200
 
MCU 4200
MCU 4200MCU 4200
MCU 4200
 
Codian MCU 4200 Series
Codian MCU 4200 SeriesCodian MCU 4200 Series
Codian MCU 4200 Series
 
Enhanced Gateway
Enhanced GatewayEnhanced Gateway
Enhanced Gateway
 
Ds kulabyte encoder
Ds kulabyte encoderDs kulabyte encoder
Ds kulabyte encoder
 
Sony LMD-2451W
Sony LMD-2451WSony LMD-2451W
Sony LMD-2451W
 
Blonder Tongue HDE-2H-QAM Presentation
Blonder Tongue HDE-2H-QAM PresentationBlonder Tongue HDE-2H-QAM Presentation
Blonder Tongue HDE-2H-QAM Presentation
 
Brokerage 2007 presentation wireless
Brokerage 2007 presentation wirelessBrokerage 2007 presentation wireless
Brokerage 2007 presentation wireless
 
Life Size Communicator
Life Size CommunicatorLife Size Communicator
Life Size Communicator
 
High Definition Video
High Definition VideoHigh Definition Video
High Definition Video
 
Datavideo HS-2000L
Datavideo HS-2000LDatavideo HS-2000L
Datavideo HS-2000L
 
Lync ip phone 2013
Lync ip phone 2013Lync ip phone 2013
Lync ip phone 2013
 
Dexing
DexingDexing
Dexing
 
HD3000
HD3000HD3000
HD3000
 

Destaque

Designing and Building (Your Own) UI Frameworks For the Enterprise
Designing and Building (Your Own) UI Frameworks For the EnterpriseDesigning and Building (Your Own) UI Frameworks For the Enterprise
Designing and Building (Your Own) UI Frameworks For the EnterpriseExoLeaders.com
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI DevelopmentAndreas Jakl
 
OVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeOVERVIEW: Chromium Source Tree
OVERVIEW: Chromium Source TreeChang W. Doh
 
Charity apprentice logo-blue-6675
Charity apprentice logo-blue-6675Charity apprentice logo-blue-6675
Charity apprentice logo-blue-6675FITC
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)gnomekr
 

Destaque (8)

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

Semelhante a Accelerating performance on Qt and WebKit for the MIPS architecture

BRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGE
BRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGEBRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGE
BRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGEREICOM SRL
 
Qt Experiences on NXP's Connetcted TV Platforms
Qt Experiences on NXP's Connetcted TV PlatformsQt Experiences on NXP's Connetcted TV Platforms
Qt Experiences on NXP's Connetcted TV Platformsaccount inactive
 
REICOM PRODUCTS - POSSIBLE SCENARIOS
REICOM PRODUCTS - POSSIBLE SCENARIOSREICOM PRODUCTS - POSSIBLE SCENARIOS
REICOM PRODUCTS - POSSIBLE SCENARIOSREICOM SRL
 
2011 intelligent operator_panels
2011 intelligent operator_panels2011 intelligent operator_panels
2011 intelligent operator_panelsadvantech2012
 
Approach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkApproach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkAdrian Hornsby
 
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12ndzervas
 
Ibc forum 2012-divitel
Ibc forum 2012-divitelIbc forum 2012-divitel
Ibc forum 2012-divitelVerimatrix
 
Flyport openPicus datasheet
Flyport openPicus datasheetFlyport openPicus datasheet
Flyport openPicus datasheetIonela
 
Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...
Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...
Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...Embarcados
 
“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...
“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...
“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...Edge AI and Vision Alliance
 
FPGA Camp - Softjin Presentation
FPGA Camp - Softjin PresentationFPGA Camp - Softjin Presentation
FPGA Camp - Softjin PresentationFPGA Central
 
Applied technology
Applied technologyApplied technology
Applied technologyErica Fressa
 
Reaching a Broader Audience
Reaching a Broader AudienceReaching a Broader Audience
Reaching a Broader AudienceVideoguy
 
Local Social Overview Q1 2011
Local Social Overview Q1 2011Local Social Overview Q1 2011
Local Social Overview Q1 2011Web2 Ireland
 

Semelhante a Accelerating performance on Qt and WebKit for the MIPS architecture (20)

BRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGE
BRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGEBRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGE
BRAND NEW PRODUCTS FOR CCTV AND DIGITAL SIGNAGE
 
Digital TV, IPTV
Digital TV, IPTVDigital TV, IPTV
Digital TV, IPTV
 
m4-out-20027
m4-out-20027m4-out-20027
m4-out-20027
 
m4-out-20027
m4-out-20027m4-out-20027
m4-out-20027
 
m4-out-20027
m4-out-20027m4-out-20027
m4-out-20027
 
Qt Experiences on NXP's Connetcted TV Platforms
Qt Experiences on NXP's Connetcted TV PlatformsQt Experiences on NXP's Connetcted TV Platforms
Qt Experiences on NXP's Connetcted TV Platforms
 
REICOM PRODUCTS - POSSIBLE SCENARIOS
REICOM PRODUCTS - POSSIBLE SCENARIOSREICOM PRODUCTS - POSSIBLE SCENARIOS
REICOM PRODUCTS - POSSIBLE SCENARIOS
 
2011 intelligent operator_panels
2011 intelligent operator_panels2011 intelligent operator_panels
2011 intelligent operator_panels
 
Approach to handover in heterogeneous Network
Approach to handover in heterogeneous NetworkApproach to handover in heterogeneous Network
Approach to handover in heterogeneous Network
 
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
CAST BA22 32-bit Processor - SoCIP Design Seminar, 2/1/12
 
Ibc forum 2012-divitel
Ibc forum 2012-divitelIbc forum 2012-divitel
Ibc forum 2012-divitel
 
Flyport openPicus datasheet
Flyport openPicus datasheetFlyport openPicus datasheet
Flyport openPicus datasheet
 
Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...
Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...
Webinar embarcados - Simplificando seus projetos de Internet das coisas com o...
 
“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...
“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...
“Visual AI at the Edge: From Surveillance Cameras to People Counters,” a Pres...
 
FPGA Camp - Softjin Presentation
FPGA Camp - Softjin PresentationFPGA Camp - Softjin Presentation
FPGA Camp - Softjin Presentation
 
TMDXEVM8148
TMDXEVM8148 TMDXEVM8148
TMDXEVM8148
 
Applied technology
Applied technologyApplied technology
Applied technology
 
Reaching a Broader Audience
Reaching a Broader AudienceReaching a Broader Audience
Reaching a Broader Audience
 
Local Social Overview Q1 2011
Local Social Overview Q1 2011Local Social Overview Q1 2011
Local Social Overview Q1 2011
 
LocalSocial Q12011
LocalSocial Q12011LocalSocial Q12011
LocalSocial Q12011
 

Mais de account inactive

KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phonesaccount inactive
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbianaccount inactive
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Applicationaccount inactive
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics Viewaccount inactive
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integrationaccount inactive
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systemsaccount inactive
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CEaccount inactive
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applicationsaccount inactive
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Frameworkaccount inactive
 
Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbianaccount inactive
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Nativeaccount inactive
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsaccount inactive
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qtaccount inactive
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)account inactive
 

Mais de account inactive (20)

Meet Qt
Meet QtMeet Qt
Meet Qt
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
 
Shipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for SymbianShipping Mobile Applications Using Qt for Symbian
Shipping Mobile Applications Using Qt for Symbian
 
The Future of Qt Widgets
The Future of Qt WidgetsThe Future of Qt Widgets
The Future of Qt Widgets
 
Scripting Your Qt Application
Scripting Your Qt ApplicationScripting Your Qt Application
Scripting Your Qt Application
 
Special Effects with Qt Graphics View
Special Effects with Qt Graphics ViewSpecial Effects with Qt Graphics View
Special Effects with Qt Graphics View
 
Developments in The Qt WebKit Integration
Developments in The Qt WebKit IntegrationDevelopments in The Qt WebKit Integration
Developments in The Qt WebKit Integration
 
Qt Kwan-Do
Qt Kwan-DoQt Kwan-Do
Qt Kwan-Do
 
Qt on Real Time Operating Systems
Qt on Real Time Operating SystemsQt on Real Time Operating Systems
Qt on Real Time Operating Systems
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Translating Qt Applications
Translating Qt ApplicationsTranslating Qt Applications
Translating Qt Applications
 
Qt Creator Bootcamp
Qt Creator BootcampQt Creator Bootcamp
Qt Creator Bootcamp
 
Qt Widget In-Depth
Qt Widget In-DepthQt Widget In-Depth
Qt Widget In-Depth
 
Qt State Machine Framework
Qt State Machine FrameworkQt State Machine Framework
Qt State Machine Framework
 
Mobile Development with Qt for Symbian
Mobile Development with Qt for SymbianMobile Development with Qt for Symbian
Mobile Development with Qt for Symbian
 
How to Make Your Qt App Look Native
How to Make Your Qt App Look NativeHow to Make Your Qt App Look Native
How to Make Your Qt App Look Native
 
Animation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIsAnimation Framework: A Step Towards Modern UIs
Animation Framework: A Step Towards Modern UIs
 
Using Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with QtUsing Multi-Touch and Gestures with Qt
Using Multi-Touch and Gestures with Qt
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
 
The Mobility Project
The Mobility ProjectThe Mobility Project
The Mobility Project
 

Último

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Último (20)

The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

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!