# Accelerated Processing Unit

Accelerated Processing Unit (kurz APU; englisch für „beschleunigte Verarbeitungseinheit“), auch Advanced Processing Unit (engl. für „fortschrittliche Verarbeitungseinheit“) ist eine unter anderem an die Abkürzungen „CPU“ und „GPU“ angelehnte Bezeichnung für einen Hauptprozessor mit integrierten Koprozessoren, die fast ausschließlich von AMD verwendet wird. Wie der Name bereits andeutet, soll dabei der Hauptprozessor durch einen oder mehrere Koprozessor(en) in bestimmten Situationen beschleunigt werden. Als Koprozessor kann dabei ein Grafikprozessor (GPU), Vektorprozessor, Streamprozessor oder auch jeder andere beliebige Prozessor dienen, der dem Hauptprozessor in bestimmten Situationen überlegen ist. Lediglich ein mathematischer Koprozessor in Form einer Gleitkommaeinheit (auch „FPU“ abgekürzt), der – neben anderen – schon lange vor der Definition des APU-Begriffes im Hauptprozessor integriert war und damit zum Bestandteil des Hauptprozessors wurde, ist davon ausgenommen.

## Geschichte

Kreiert und geprägt wurde die Bezeichnung Accelerated Processing Unit vom Mikroprozessor-Hersteller AMD, der diese Bezeichnung zur Kennzeichnung von Hauptprozessoren mit integrierter Grafikeinheit verwendet. AMD Fusion ist der Codename dieses Prozessorkonzepts, welches CPU, GPU sowie Video- und andere Hardwarebeschleuniger auf einem Die vereint.
Erste Ankündigungen für die Integration eines Grafikprozessor-Kerns in einem Hauptprozessor hatte es bereits im Jahr 2006, nach der Übernahme von ATI durch AMD, gegeben. Ab Mai 2010 wurden Prototypen an die ersten Kunden ausgeliefert und auf der Computex im Frühling 2010 wurde bekannt gegeben, dass die APU-Modelle Llano und Ontario im ersten Halbjahr 2011 in den Handel kommen sollen. Zudem wurde im Vorfeld der CES 2011 bekannt, dass erste Rechner in Form von Tablet-PCs und -Computer auf Basis der APU-Serien Zacate und Ontario im ersten Quartal 2011 ausgeliefert werden.
Auch Intel liefert seit dem Jahr 2012 mit ihrer Core-I-Serie Hauptprozessoren mit integrierter Grafikeinheit, verwendet jedoch nicht den Begriff 'APU'. Beispielsweise ist die GPU in den Ivy-Bridge-Prozessoren durch Unterstützung von OpenCL und Direct Compute auch für universelle Computerberechnungen nutzbar. Auch andere Wettbewerber verwenden den „APU“-Begriff nicht.

## Technische Details

Um einen Chip 'APU' nennen zu können, sollte der Prozessor (CPU) einen oder mehrere Hauptprozessor-Kerne und mindestens einen zusätzlichen Koprozessor für spezielle Aufgaben enthalten. Der zusätzliche Koprozessor ist dabei meist ein Grafikprozessor (GPU). Mit diesem Konzept will man vor allem die Vorteile unterschiedlicher Prozessortypen/Prozessorarchitekturen vereinen. Das Konzept an sich wird daher auch in Anlehnung an Mehrkernprozessorsysteme als heterogenes Rechnen (englisch: heterogeneous computing) bezeichnet, da nun heterogene Prozessortypen in einem System vorkommen.
Da Grafikprozessoren im Laufe ihrer Entwicklungsgeschichte einen Teil ihrer Spezialisierung auf Grafik aufgaben und immer mehr zu frei programmierbaren Prozessoren wurden, die insbesondere datenparallele Aufgaben sehr schnell bearbeiten können, sahen hier die Hersteller die Möglichkeit, die für sequentielle Aufgaben optimierten Hauptprozessoren mit dieser Art von Koprozessor sinnvoll zu ergänzen. Da zudem jeder PC sowieso einen Grafikprozessor benötigt, sollte auch der Übergang in der Zeit, in der entsprechende Software für den Koprozessor fehlt, durch die reinen Vorteile eines Grafikprozessors überbrückbar sein.
Entscheidend für die Bezeichnung APU ist dementsprechend nicht nur die Integration eines Grafikprozessors in den Hauptprozessor, sondern auch die Eignung dieses Grafikprozessors zur Berechnung von universellen Aufgaben abseits von reinen Grafikberechnungen.
Grafikprozessoren wurden schon sehr früh für GPGPU-Zwecke eingesetzt, allerdings geschah die Programmierung sehr nahe an der Hardware und konnte damit nicht ohne weiteres auf andere Grafikprozessoren übertragen werden, womit auch die Verbreitung entsprechender Programme und Tools sehr eingeschränkt blieb. Ein weiterer wichtiger Schritt von einem reinen Hauptprozessor mit IGP zur sogenannten APU ist somit die Unterstützung von Hersteller übergreifenden Programmierstandards wie OpenCL und Quasistandards wie Direct Compute in der DirectX-11-API vom Grafikprozessor.
Abseits der programmierbaren GPU-Teile hat die GPU aber auch fest verdrahtete Einheiten (engl.: Fixed Function Units), die abseits der Grafik genutzt werden können. So können die Videodecodiereinheiten wie etwa UVD oder Nvidias Videoprozessor schon sehr lange für das Decodieren von bestimmten Codecs genutzt werden und damit ebenfalls den Hauptprozessor entlasten. Intels integrierte GPU in Sandy-Bridge-CPUs haben abseits solcher Decodiereinheiten auch fest verdrahtete Encodiereinheiten, mit denen das Encodieren von Videos bei bestimmten Codecs beschleunigt werden kann. Da sowohl das Encodieren als auch das Decodieren aber nur auf bestimmte Codecs begrenzt und nicht frei programmierbar ist, werden entsprechende CPUs bei enger Auslegung der APU-Definition immer noch als „CPUs mit IGP und Zusatzbeschleunigungsfunktionen“ bezeichnet und nicht als APUs, da hierbei das Konzept des Verbindens von mehreren Prozessorarchitekturen mit unterschiedlichen Vorteilen fehlt und lediglich eine Prozessorarchitektur durch fest verdrahtete Einheiten auf manche Gebiete spezialisiert wird.