Beruflich Dokumente
Kultur Dokumente
Nomadik
Lowest power consumption Scalable performance Video/Audio quality Cost-effective Nominees: Intel XScale PXA260, NeoMagic MiMagic 6, Nvidia MQ-9000, STMicroelectronics Nomadik STn8800, Texas Instruments OMAP 1611
January 14, 2009
Nomadik
Nomadik is a family of Application Processors
Distributed processing architecture ARM9 + multiple Smart Accelerators Support of a wide range of OS and applications Seamless integration in the OS through standard API drivers and MM framework
roadmap
...
SDRAM
Unlimited Space Limited Bandwidth
Master OS Peripherals
Memory Controller
RTOS Multi-thread
NAND Flash
Unlimited Space No Bandwidth Mass storage
MMDSP+ Audio
133 MHz, 24-bit
66 MHz, 16-bit
HW Acceleration
Audio Peripherals
January 14, 2009
Video Peripherals
Virtual world
System calls
IO process IO
SVA boundary
Rotate
Hardware/Software partitioning
MPEG4 software stack
Sequence ARM SW Group of picture Picture Group of Macro-Block HW/FW Macro-Block Block
Firmware
Handled by Software on the host CPU. High flexibility, low computation OS friendly
MM integration in an open OS
Application (Player,) MM Framework
Audio Source Filter Codec Filter/Codec Video Filter/Codec Audio Sink Video Sink Virtual Media pipeline User side Kernel side PCM if SAA HW Driver (control path) SVA HW Driver (control path)
(plug-ins based)
Integration/Adaptation layer
SVA
Display FrameBuffer
Processing
Concurrent execution
t1 t2 t3 t4 t5
ARM
Read & Parse Audio Decode Audio Playback Video Decode Video Display
Read & Parse Audio Decode Audio Playback Video Decode Video Display
SAA
SVA
Video Decode
~200mA
Doze mode :
ARM in WFI mode PLL1 & 2 OFF, clocks = 32 kHz 32 kHz All peripheral clocks are gated
Standby mode :
ARM in WFI mode (Wait For Interrupt) PLL1 & 2 are running 64-393MHz
Sleep mode :
ARM in WFI mode PLL1 & 2 OFF, clocks are stopped except the non switchable part @ 32 kHz All peripheral clocks are gated
~mA
~ A
CPU & Bus clocked at XTAL frequency All peripheral clocks unused are gated
SW architecture Linux
20% CPU
3% CPU
+20pp
Full open source Linux 2.6.20 kernel OpenedHand PokyLinux for system test In line with GMAE, Limo and Maemo
Multimedia HCL + SAA HCL + SGA HCL + SVA HCL
Middleware Communication + Connection Manager + Bluetooth + Wi-Fi + Ethernet + Telephony Connectiv ity + SD/MMC + USB Hi-Speed MEMS + Gesture Library + MEMS Driver Security + Cryptoengine driver + IPSec + OpenSSL + Security Graphic User Interface + Matchbox + GTK+ Camera + Camera ISP + ISP Driver OpenGL-ES 1.1 + Clutter + EGL + OpenGL Driver + OpenGL-ES 1.1 + GLES Library GStreamer + GStreamer + OpenMAX-IL + FFMPEG + SAA Block Library Pow er Management + PM framework + Governor + Battery Manager + CPUFreq + Linux DPM + APM + LiMo PM
Kernel and driver level Multimedia Interfaces + ALSA + V4L2 + X.11 + xvideo + EXA + DirectFB File systems + JFFS2 + YAFFS + CRAMFS + RAMFS + MTD Kernel and Driv ers + DMA + I2C + Linux kernel 2.6.20 + MSP + SPI + UART Multimedia Driv ers + SAA Driver + SGA Lib and Driver + SVA Driver
Power Management
Audio
Multimedia interfaces
cmp Multimedia Interfaces
ALSA
X.11
DirectFB
V4L2
xvideo flow
use
use
Nomadik drivers
3D Graphics
Video rendering
flow
flow
flow
flow
AudioCodec
frame buffer
instantiate
FRAMEWORK
instantiate
instantiate
GSTREAMER:: GstAlsaSink
GSTREAMER_OMX: :GstOmxMp3Dec
GSTREAMER_OMX: :GstOmxMpeg4Dec
flow
GSTREAMER:: GstXVImageSink
OMX::OMX_Core
INTEGRATION
OMX:: OMX_AudioDecComponent
OMX:: OMX_VideoDecComponent
XVideo
KERNEL
NOMADIK HW
APPLICATION FRAMEWORK
Activity Manager Package Manager Window Manager Telephony Manager Content Providers Resource Manager View System Location Manager Notification Manager XMPP Service
LIBRARIES
Surface Manager OpenGL|ES SGL Media Framework FreeType SSL SQLite WebKit libc
ANDROID RUNTIME
Core libraries
LINUX KERNEL
Display Driver USB Driver Camera Driver Keypad Driver Bluetooth Driver WiFi Driver Modem Driver Crypto Engine Driver Flash Memory Driver A/V Driver Binder (IPC) Driver Power Management
R1
R2
R3
Thread Model
Play bin thread
gst player
gst XVImageSink
XVLib
ALSA lib
Power Management
CPUfreq to scale voltage and frequency CPUIdle to switch amongst running, idle, sleep and deep sleep Custom API to control clock gating to all internal IPs Feasibility on-going with DPM
PowerTop
flow /sysfs
/sysfs
/sysfs
Kernel Space
CpuIdle use
cpufreq
Constraint Manager
Driver Interface
Governor
1.0V
1.2V
264.0/132.0 MHz
1.2V
326.4/163.2 MHz Boot
1.2V
Initial
1.26V
1.45V
(lab only)
PM Dump Tool
PM monitor to optimise operating modes and ULP, estimate consumption
(Under development)
UART SDMMC MCDE TVOUT AUDIO SAA SVA BT WIFI LAN CPU 0 CPU 1
35510ms 35530ms 35550ms 35570ms 35590ms 35610ms 35630ms
I (mA) V Clock
95 1.2 393
20 0.9 64
50 1 166
10 0.8 19
95 1.2 393
20 0.9 64
50 1 166
10 0.8 19
95 1.2 393
20 0.9 64
Thank you!