SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
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!

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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
 

Destacado (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)
 

Similar 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
 

Similar 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
 

Más 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
 

Más 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

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Último (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
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
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

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!