![]() | ist Chefarchitekt im „DSP Innovation Center“ bei ST-NXP Wireless. |
Die EVP-Architektur von ST-NXP Wireless
Der EVP-Chip VD3204x von STNXP Wireless ( www.stnwireless.com) bietet eine parallele Verarbeitungsarchitektur für Anwendungen im Kommunikationsbereich. Dieser Prozessor kommt im „Inneren Empfänger“ (Inner Receiver) zum Einsatz, der hauptsächlich Aufgaben der digitalen Modulation und Demodulation einer Communication-Pipe übernimmt. Er ermöglicht hier eine Programmierbarkeit in Bereichen, die bisher ausschließlich mit festverdrahteten Beschleunigern implementiert werden konnten. Die VD3204x-Familie wurde als Low-Power-SoC optimiert und besonders für 3G+-Geräte und andere akkubetriebene Anwendungen entwickelt, bei denen ein niedriger Energiebedarf und eine kostengünstige Umsetzung wichtig sind.
Der Kern des Prozessors basiert auf einem SIMD-ähnlichen Datenpfad (Single Instruction Multiple Data), der durch Hinzufügung von „Intra-Vektor-Operationen“ erweitert wird und damit eine zusätzliche Interaktion zwischen den einzelnen Elementen innerhalb eines Vektors erlaubt (Permutationen, Hinzufügungen, Max.-/Min.-Suchen usw.). Damit vergrößert sich der Bereich von Algorithmen, die auf diesem Kern abgebildet werden können. Mit seinem Einsatz auf Vektoren von typischerweise 256 bit kann er dabei 16 Operationen auf 16 Bitdatenelementen pro Funktionseinheit verarbeiten. Aufgrund der höheren VLIW-Parallelität (Very Long Instruction Word) ergibt das 100 Operationen pro Zyklus und bietet damit eine erhebliche Rechnerleistung, ohne im GHz-Taktfrequenzbereich arbeiten zu müssen. Dies ermöglicht eine besonders energieeffiziente Form der Implementierung bei Verwendung einer Standard-Bibliothekssynthese. Die Programmierung des Prozessors erfolgt in ANSI-C; die Verarbeitung der Vektorfunktionen mit Intrinsics. Ebenfalls zum Einsatz kommen eine C++-Host-Emulationsbibliothek, ein Compiler mit einem im Vergleich zur klassischen Assembly-Programmierung höheren Abstraktionsgrad sowie ein Verknüpfer, ein zyklen- und bitgenauer Simulator und ein Debugger/Profiler.