# TriMedia (Mediaprocessor)

De TriMedia was een programmeerbare VLIW mediaprocessor-familie van NXP Semiconductors, vroeger Philips Semiconductors, deel van Philips. De TriMedia vond toepassing in diverse innovatieve multimedia-apparaten. De eerste versie, de TM1000, kwam op de markt in 1997. In 2010 hief NXP de TriMedia-groep op.

## Toepassingen

Philips bracht de TriMedia-processor op de markt als een programmeerbare oplossing voor het implementeren van multimedia-toepassingen, met de initiële bedoeling om enerzijds DVD-decodering te kunnen doen en anderzijds open te staan voor de implementatie van nieuwe toepassingen. Zo kon men er bijvoorbeeld een TCP/IP-stack op laten werken, een browser en dit laten werken naast de multimedia-bewerkingen. De TriMedia werd eerst op de markt gebracht als een aparte processorchip. Later paste men de processorkern ook toe op complexere System on Chip (SoC)-configuraties. Zo kende de PNX5100 drie TM3271-processorkernen.
De TriMedia werd initieel onder andere gebruikt in de TriCoder-kaart, een uitbreidingskaart voor de PC om DVD-decodering en videobewerking uit te voeren. Hij vond verder toepassing in de Streamium-lijn van geconnecteerde multimediaproducten, op chips voor settopboxen, in mobiele toepassingen en in multimedia-apparatuur voor gebruik in auto's.

## Technische kenmerken

De processor kende diverse voorzieningen voor de efficiënte verwerking van audio- en videosignalen. Een uitgangspunt voor het ontwerp was dat de processor in de hogere programmeertalen C en C++ geprogrammeerd moest kunnen worden in plaats van in assembleertaal. Deze programmeerbaarheid in een hogere programmeertaal werd mogelijk gemaakt door de orthogonale instructieset en de uniforme registerset van 128 registers, waardoor RISC-type bewerkingen grotendeels onafhankelijk van elkaar uitgevoerd konden worden.
De TriMedia-processoren hadden geavanceerde caches die niet-gealigneerde geheugentoegang zonder verlies van prestaties toelieten, alsmede technieken voor prefetch van gegevens.

## Functionaliteiten

* 5 tot 8 issue slots om tot 45 functionele eenheden aan te sturen
* 128 32-bit algemene registers
* SIMD- en DSP-bewerkingen
* 32-bit vlottende-kommabewerkingen volgens standaard IEEE 754
* 8/16/32/64 KB instructiecache, 8/16/32/64/128 KB gegevenscache
* gescheiden businterfaces voor geheugen en randapparatuur
* tot acht ingebouwde timers
* tot 64 ingebouwde vector-interrupts
* ontwikkelomgeving voor programmering in hogere programmeertalen C en C++

## Geschiedenis

Philips Semiconductors realiseerde intern de eerste TriMedia in 1987, onder de naam LIFE-1. In 1996 resulteerde dit in het eerste product, de TM1000-mediaprocessor. Er volgden diverse verbeterde versies als zelfstandige mediaprocessor, terwijl in 2002 de TM3260-CPU verscheen als onderdeel van de PNX1500-SoC, later opgevolgd door de PNX1700.
In 2005 kwam de TM3270 op de markt als CPU met laag energieverbruik en met functies om H.264-video te verwerken. Hij was onderdeel van de PNX4103 SoC.
In 2006 verzelfstandigde Philips zijn halfgeleiderdivisie als NXP Semiconductors, dat de TriMedia-lijn verder ontwikkelde. In 2009 bracht men de PNX1005 uit met de TM3282 CPU-kern. Deze kon tot acht instructies tegelijkertijd starten en voorzag ook in meer instructies voor H264-bewerkingen, video-optimalisaties en enkele andere verbeteringen.
In 2010, hief NXP Semiconductors de TriMediagroep op.

## Versies

Philips en NXP Semiconductors brachten de volgende versies van de TriMedia op de markt:
| Kern | Introductie | ISA | Functies | Cache (I/D) KB | Frequentie (minimum) | Technologie |
| TM1000 | 1997 | TMA0 | | 32/16 | 100 MHz | 500 nm |
| TM1100 | 1998 | TMA1 | | 32/16 | 133 MHz | 350 nm |
| TM1300 | 1999 | TMA1 | | 32/16 | 166 MHz | 250 nm |
| TM3260 | 2002 | TMA2 | binair compatibel met de TM1300 | 64/16 | 250 MHz | 130 nm |
| TM5250 | 2004 | TMA3 | 128 KB L2 gegevenscache, alloceer bij schrijffout, hardware prefetch, super-pipelined (hoge snelheid) | 64/16 | 450 MHz | 130 nm |
| TM2270 | 2006 | TMA3 | 96 GPRs (lage oppervlakte) | 32/16 | 290 MHz | 90 nm |
| TM3270/1 | 2006 | TMA4 + ASE | laag energieverbruik | 64/128 64/32 32/16 | 350 MHz | 90 nm |
| TM3282 | 2009 | TMA4 + ASE2 | 8 instructiestarts, voor-allocatie, bitstroom-coprocessor, real-time tracering | 64/128 | 400 MHz | 90 nm |
| TM? | 2009 | TMA4 + ASE2? | 8 instructiestarts? | ?/? | 500 MHz | 45 nm |

## Ontwikkeling

In België was het in Hasselt gevestigde SPECS actief als ontwikkelgroep voor ingebedde software voor de TriMedia-processor. Gedurende de jaren 1996-2002 ontwikkelde men er een raamwerk voor streaming en droeg men bij aan de ontwikkeling van diverse toepassingen voor multimedia-apparaten van Philips.