Texas Instruments DaVinci
The Texas Instruments DaVinci is a family of system on a chip processors that are primarily used in embedded video and vision applications. Many of the processors in the family combine a DSP core based on the TMS320 C6000 VLIW DSP family and an ARM CPU core into a single system on chip. By using both a general-purpose processor and a DSP, the control and media portions can both be executed by processors that excel at their respective tasks.
Later chips in the family included DSP only and ARM only processors. All the later chips integrate several accelerators to offload commodity application specific processing from the processor cores to dedicated accelerators. Most notable among these are HDVICP, an H.264, SVC and MPEG-4 compression and decompression engine, ISP, an accelerator engine with sophisticated methods for enhancing video, primarily input from camera sensors and an OSD engine for display acceleration. Some of the newest processors also integrate a vision coprocessor in the SoC.
History
DaVinci processors were introduced at a time when embedded processors with homogeneous processor cores were widely used. These processors were based either on cores that could do signal processing optimally, like DSPs or GPUs or based on cores that could do general purpose processing optimally, like, powerPC, ARM, StrongARM and so on. By using both a general-purpose processor and a DSP on a single chip, the control and media portions can both be executed by processors that excel at their respective tasks. By providing a bundled offering with system and application software, evaluation modules and debug tools based on Code Composer Studio, TI DaVinci processors were intended to win over a broader set of customers looking to add video feature to their electronic products.TI announced its first DaVinci branded video processors, the DM6443 and DM6446, on 5 December 2005. A year later, TI followed up with DSP only versions of the chips in the family, called DM643x. On January 15, 2007, TI announced DM6441 that is pin-pin compatible with DM6446, but a lower end version With increased investment and significant focus on the DaVinci product line, following products were announced:
- May 21, 2007 — TMS320DM648 — Processor offering $40 reduction in BOM for security applications
- Sep 4, 2007 — TMS320DM355 — Sub $10 ARM+co-processor chip for MPEG-4 encode/decode
- Dec 30, 2007 — TMS320DM6467 — 10x performance improvement over DM6446
- Jul 18, 2008 — TMS320DM335 — ISP only version of DM355
- Nov 18, 2008 — TMS320DM357 — Low cost realtime D1 H.264 video encode
- March 3, 2009 — TMS320DM365 — Sub $10 ARM+co-processor chip for 720p30 and 1080p H.264 encode/decode
- March 18, 2010 — TMS320DM8168 — 36x channels of realtime D-1 H.264 encode/decode or 6x channels of realtime HD H.264 encode/decode
- April 14, 2010 — TMS320DM368 — Pin-pin compatible processor with DM365 that can do 1080p30 H.264 encode/decode
- May 10, 2010 — DMVA2 — Pin-pin compatible processor with DM365 and DM368 that can do analytics in addition to H.264 compression
- Mar 1, 2011 — TMS320DM8148 — 12x channels of D-1 H.264 encode performance with DSP for analytics
- Dec 3, 2012 — DM385 and DM8107 — ARM+co-processor chips that does 1080p60 encode/decode and high quality image processing. DM8107 was for multi-channel DVR/NVR market
- Apr 10, 2013 — DM369 — ARM+co-processor chip pin-pin compatible with DM365, DM365 and DMVA2, with enhanced low-light performance
- Oct 29, 2013 — DM388, DMVA3, DM383 — ARM+co-processor chip pin-pin compatible with DM385, adding enhanced video quality and analytics
Processors
Many of these model numbers should, formally, be prefixed by TMS320; the prefix is usually omitted for brevity. So for example the full part number for the DM6446 begins with TMS320DM6446 and has a suffix indicating its packaging type and temperature rating.Processor | Release Date | ARM | DSP | Co-processor | Camera Application | Multichannel DVR/NVR Application |
Dec 5, 2005 | ARM9 | C64x+ DSP | ISP, OSD, VENC | Yes | ||
Nov 14, 2006 | ARM9 | C64x+ DSP | ISP, OSD, VENC | Yes | ||
Jan 15, 2007 | ARM9 | C64x+ DSP | ISP, OSD, VENC | |||
May 21, 2007 | C64x+ DSP | Yes | ||||
Sep 4, 2007 | ARM9 | ISP, VICP, MJCP, OSD, VENC | Yes | |||
Dec 30, 2007 | ARM9 | C64x+ DSP | Yes | |||
Jul 18, 2008 | ARM9 | ISP | Yes | |||
Nov 18, 2008 | ARM9 | ISP | Yes | |||
Mar 3, 2009 | ARM9 | ISP, HDVICP1, OSD, VENC | Yes | |||
Mar 18, 2010 | A8 | C64x+ DSP | ISP, HDVICP2, HDVPSS | Yes | ||
Apr 14, 2010 | ARM9 | ISP, HDVICP1, OSD, VENC | Yes | |||
May 10, 2010 | ARM9 | ISP, HDVICP1, OSD, VENC, VCOP | Yes | |||
Mar 1, 2011 | A8 | C64x+ DSP | ISP, HDVICP2, HDVPSS, NF Engine, VCOP | Yes | Yes | |
Mar 1, 2011 | A8 | C64x+ DSP | ISP, HDVICP2, HDVPSS, NF Engine, VCOP | Yes | ||
Dec 3, 2012 | A8 | ISP, HDVICP2, HDVPSS | Yes | |||
Dec 3, 2012 | A8 | ISP, HDVICP2, HDVPSS | Yes | |||
Apr 10, 2013 | ARM9 | ISP, HDVICP1, OSD, VENC, NF Engine | Yes | |||
Oct 29, 2013 | A8 | ISP, HDVICP2, HDVPSS | Yes | |||
Oct 29, 2013 | A8 | ISP, HDVICP2, HDVPSS, VCOP | Yes |
Peripherals
The DaVinci processor families include a number of on-chip peripherals. Depending on the particular device, these may include:- CCD Controller for digital camera/camcorder applications
- BT.656 and MIPI CSI-2 video/camera input interface
- Support for memory cards such as CompactFlash, SD Card and MMC
- ATA interface
- Connectivity, including USB 2.0 Host and Client modes, VLYNQ, EMAC with MDIO
- GPIO
- Enhanced DMA
- Interrupt controller
- Digital LCD controller
- Serial interfaces, including SPI, I²C, and I²S, UART
- Histogram, autofocus, autoexposure, and auto-white-balance acceleration
- Image resize acceleration
- A/D and D/A converters for analog video input and output
Libraries
- Most the TMS320 DSPs include a TMS320 Chip Support Library which is an API used to control the peripherals. However, since the philosophy for the DaVinci was to allow the ARM/Linux side to control the peripherals via Linux drivers, support for the CSL on the DM644x is not currently available for the DSP.
Operating systems
A number of operating systems for the DaVinci ARM and support DaVinci and the DSP/BIOS Link drivers:
- FreeBSD
- Linux kernel
- Mentor Graphics Nucleus PLUS RTOS
- Green Hills Software INTEGRITY RTOS
- QNX Neutrino
- Windows CE
- LEOs