hide random home http://www.phase5.de/news/projectinfo/umad.html (Amiga Plus Extra No. 5/97, 05/1997)

Home Ueber phase 5 Products Dealer News Tech Suppoort Developer Support Dealer Support Filemap




Ein Statement zum Thema "Vor- und Nachteile der Unified Memory Architecture"

oder: Warum eigentlich noch etwas selbst entwickeln, es gibt doch alles zu kaufen?

Nach der Veröffentlichung der groben Systemspezifikationen unseres A\BOX-Systems bzw. unseres in der Entwicklung befindlichen CAIPIRINHA-Chips sind in der Öffentlichkeit viele Diskussionen über Sinn oder Unsinn dieser Entwicklung geführt worden. Viele Diskussion drehten sich dabei um die Frage, warum eine Unified Memory Architecture verwendet werden solle, und ob nicht Standard-Designs mit verfügbaren Komponenten sinnvoller seien.

Als Argument gegen das CAIPIRINHA-Konzept mit UMA-Design wird oftmals die Speicher-Bandbreite aufgeführt, die für die verschiedenen Systemfunktionen, den Prozessorzugriff und die Video-Ausgaben benötigt wird. Hier sind hitzige Grundsatzdiskussionen geführt worden, wobei die Kritiker des UMA-Designs äußerst vereinfachende Berechnungen anführten, um mögliche Engpässe im UMA-Design aufzuzeigen, in der Art von: "1600x1200Pixel in 24 Bit mal 75 Hz = 432MB/sec Dauerbelastung, dazu ein zweiter Videoausgang, 3D-Berechnung mit Unmengen von Texturen, Multichannel-Audio und mehr, und schon kann die CPU nur noch gebremst zugreifen." Mit dieser Argumentation wird dann gerne das Prinzip getrennter Busse bzw. einer Grafik auf PCI oder AGP befürwortet. Andere Argumentationen führen vermeintliche Zukunftssicherheit oder günstige Kosten verschiedener modularer Lösungen oder Bus-Erweiterungskonzepte auf. Allerdings werden in diesen oftmals sehr vereinfachenden Darstellungen verschiedene Fakten vollkommen unberücksichtigt, was wir im folgenden - teilweise durchaus mit etwas Ironie - etwas durchleuchten möchten.

1. Herkömmliche Architekturen mit Hauptspeicher und Grafik z.B. auf PCI-Karten haben deutlich niedrigere Bandbreiten (die sich natürlich nicht miteinander addieren). Durch die Teilung des Speichers besteht dazu die Notwendigkeit, Daten vom Hauptspeicher in den Videokartenspeicher zu transferieren. Drei Beispiele:

- Ein PC-Prozessor berechnet eine bewegte 3D-Szenerie. Er liest für jedes Bild Zehntausende von Koordinatenwerten, führt aufwendige Berechnungen durch und schreibt diese Daten in seinen Hauptspeicher zurück. Dann werden dies Daten abermals aus dem Hauptspeicher gelesen, um in der entsprechenden Sortierung über den PCI-Bus an die 3D-Grafikkarte übertragen zu werden. Da die Szene recht komplex ist, und der Grafikkartenspeicher dummerweise nur 2 oder 4 MB groß ist, werden zwischendurch immer wieder neue Texturen in den Texturspeicher auf der Grafikkarte übertragen - denn hier benötigt der 3D-Grafikchip diese zum Berechnen der Polygone. Alternativ kann man natürlich einfache Szenerien gestalten, deren komplette Texturen in 1 MB dafür reservierten Speicher auf der Grafikkarte dauerhaft übertragen werden... eine echte High-End-Lösung.

- Ein Videodigitizer schreibt Echtzeit-Bilddaten in den Hauptspeicher eines PC - denn dort sollen diese ggfs. bearbeitet werden. Um diese als bewegtes Fenster anzuzeigen, müssen sie abermals in den Speicher der Grafikkarte umkopiert werden - 25mal pro Sekunde rund 1 Mbyte an Daten gleich 25 MByte/sec oder ca. die Hälfte der tatsächlich nutzbaren Bandbreite vieler PCI-Systeme. Wie praktisch, daß die andere Hälfte bereits vom Videodigitizer verbraucht wurde...

- Ein 4000x4000 Pixel x 24Bit (=48MByte) großer Screen soll auf der Grafikarte mit einer Auflösung von 1280x1024 ausgegeben werden, und man möchte in diesem Screen umhercrollen (panning). Auf einer PC-artigen Standard-Architektur ist dies natürlich auch denkbar - wobei allerdings während des Scrollens der PCI-Bus und der Hauptspeicher "dicht" sind, weil der Prozessor nahezu ununterbrochen die im Hauptspeicher liegenden Bilddaten umkopieren muß. Aber daß der Speicherbus "dicht" ist, ist eigentlich auch nicht schlimm, denn da der Prozessor ja mit Kopieren beschäftigt ist, könnte er freie Bandbreite sowieso nicht für sinnvolle Berechnungen nutzen.

In allen Beispielen - die sich durchaus ergänzen lassen - hat das UMA-Design deutliche Vorteile, da vielfach ein Umkopieren von riesigen Datenmengen entfällt, denn diese sind schon da, wo alle Funktionseinheiten darauf zugreifen können - nämlich im einheitlichen Speicher. An beliebiger Adresse im Speicher vorhandene Displaydaten können durch die UMA/DLRP-Kombination (siehe unten) an beliebigen Bildschirmpositionen dargestellt werden, ohne daß sie unter Einsatz von Bandbreite und CPU-Leistung in einen "Bildschirmspeicher" kopiert werden müßten. Dies gilt aber auch für andere Daten, wie z.B. 3D-Koordinaten, Texturen, Sounddaten und viele mehr. Als Fazit bleibt: Ein aufwendig implementiertes UMA-Design bietet nicht nur deutlich mehr Speicherbandbreite als heutige (und kommende) Standard-Lösungen, sondern reduziert darüberhinaus den Bedarf an Speicherbandbreite erheblich - und bietet damit überlegene Leistung und Reserven für High-End-Anwendungen.

2. Die einfache Bandbreitenrechnung geht von konventionellen Grafikkarten-Designs aus, die zusammenhängende Bilddaten benötigen, die als Block im Speicher liegen. Damit ist die Datenmenge und Farbtiefe stets auf das Maximum festgelegt, was ein vollkommen unsinniges Prinzip ist. Die fortschrittliche Technik des Display List Risc Prozessors (DLRP) des CAIPIRINHA-Chips realisiert ein vollkommen anderes Konzept, in dem darzustellende Screens in dieser Form nicht im Speicher liegen müssen. Dabei ist - bei einer flexiblen Farbtiefe - das Datenaufkommen erheblich geringer. Ein einzelner DLRP-Befehl kann z.B. anweisen, 100 aufeinanderfolgende Pixel in einer bestimmte Farbe darzustellen. In einem System - wie mit CAIPIRINHA möglich - in dem an jeder Stelle 24-Bit-Fenster in beliebiger Form und Größe dargestellt werden können, bleibt es dem Anwender überlassen, ob er z.B. Speicherplatz und Bandbreite für einen 24-Bit-Hintergrundimage verbrauchen will; entscheidet er sich für einen farbreduzierten oder gar einen einfarbigen oder regelmäßig gemusterten Hintergrund, spart er deutlich Resourcen ein. Die Darstellung einer 1600-Pixel-Zeile eines 24-Bit-Screens könnte, vereinfacht dargestellt in Humansprache, mit einer folgenden DLRP-Sequenz erfolgen:

{

    Zeige 312 Pixel RGBA 128,128,256,0
      ;hier ist Hintergrund

    Zeige 10 Pixel zu je 1 Byte aus Cache-Adresse $xxxxxxxxx

      ;hier wird eine Zeile aus der Scrollbar aus dem Cache dargestellt

    Zeige 700 Pixel RGBA zu je 4 Byte ab Adresse $yyyyyyyyy

      ;700 Pixel eines 24-Bit-Bildes

    Zeige 350 Pixel Palette zu je 1 Byte ab Adresse $zzzzzzzzz

      ;hier wird ein vor dem Bild liegendes Fenster, z.B. Kontrollpanel, mit 256 Farben dargestellt

    Zeige 312 Pixel RGBA 128,128,256,0

      ;hier ist wieder Hintergrund bis zum rechten Rand
}


Insgesamt werden in diesem Beispiel für eine Zeile rund 3150 Byte plus einige wenige Steuerbefehle aus dem Hauptspeicher gelesen, während für eine "herkömmliche" 1600 Pixel lange 24Bit-Zeile 6.400 Byte gelesen werden müßten; dies entspricht auf die volle Bildschirmdarstellung hochgerechnet einer Reduktion der für die höchste darzustellende Auflösung benötigten Bandbreite von rund 432 MB/s auf rund 214 MB/s. Wie in diesem Beispiel, ist in vielen anderen Fällen - die den absoluten Hauptanteil der reellen Anwendungen darstellen - bei intelligenter Programmierung und Konfiguration durch die Kombination von UMA und DLRP eine deutlich bessere Nutzung der Resourcen des Systems realisierbar - ein Konzept, das wir der Resourcenverschwendung in manch anderen weitverbreiteten Fenster-orientierten Systemen, die regelmäßig eine neue Leistungsgeneration von Prozessoren benötigen, vorziehen.

3. Viele Kritiker des A\BOX-Konzepts bzw. des UMA-Designs unseres CAIPIRINHA-Chips argumentierten bevorzugt mit absoluten High-End-Anforderungen an die Systemleistung und die Grafikdarstellung, bei denen sie - teilweise in Unkenntnis des CAIPIRINHA-Designkonzepts - mögliche Engpässe oder Limitierungen errechnen, um dann mit der Leistungsfähigkeit heutiger preiswerter Grafikkarten mit Standard-Komponenten zu argumentieren. Hierfür wird bevorzugt eine komplexe 3D-Darstellung in allerhöchster Auflösung und Wiederholfrequenz angeführt. Unberücksichtigt bei der Lobpreisung der Standard-Konzepte bleiben allerdings verschiedene Fakten:

- Heutige PCI-Grafikkarten sind bereits den zur Zeit kommenden Anforderungen für Multimedia und 3D nicht mehr gewachsen - der hochgelobte PCI-Bus ist bereits am Ende seiner Bandbreite. Macht nichts, die Industrie hat als Lösung AGP bereit - fast 400MB/s Bandbreite, um richtig schnelle 3D-Anwendungen fahren zu können, natürlich nur mit neuen Grafikkarten. Nebenbei kann man noch allen PC-Usern neue Mainboards mit AGP-Port verkaufen... Da wird es in zwei bis drei Jahren richtig spannend, wenn die Grenzen von AGP erreicht sind - per Definition der Marketingstrategen, die eine neue, noch leistungsfähigere Softwaregeneration propagieren, die leider unvorhersehbarerweise eine neue Hardwaregeneration benötigt...
- Existierende PCI-3D-Grafikkarten für wenig Geld kommen selten über Auflösungen von 1280x1024 in 24 Bit - auch die neusten EDO-RAM-basierten Karten nicht. Dafür muß es schon eine High End-Karte mit VRAM oder WRAM sein - und nur diese etwas teureren Karten können mit der Grafik der A\BOX im Ansatz verglichen werden, und das auch nur in Hinblick auf die Auflösungen, nicht aber auf sonstige Features.
- Viele Grafikkarten mit Chips der marktführenden Hersteller bieten heute bereits fließend schnelle 3D-Grafik - bei Spieleauflösungen und in reduzierten Farbtiefen. Oder andersherum gesagt: Die 3D-Engines vieler aktueller Grafikchips arbeiten nicht in den höchsten Auflösungen der Chips, sondern teilweise nur bis zu 800x600x16 Bit (manche 3D-Engines bieten bei 24-Bit Farbtiefe gar keine 3D-Darstellung). Solche Auflösungen allerdings könnte CAIPIRINHA bei 150Hz Bildwiederholfrequenz mit weniger als 15% seiner Bandbreite darstellen... Mit echter High-End-3D-Grafik hat dies aber noch lange nichts zu tun (was auch für die schön schnellen und bunten Spielekonsolen gilt); für eine solche sind die meisten heute verfügbaren Systeme noch bei weitem nicht gerüstet.

Für eine realistische Betrachtung muß man also die erheblichen Limitierungen der heutigen Standard-Designs berücksichtigen. Oftmals aufgeführte theoretische Spitzenwerte der Standard-Designs sind von der Realität wesentlich weiter entfernt, als das CAIPIRINHA-Design von seiner theoretischen Maximalleistung. Nochmals muß hervorgehoben werden, daß z.B. der heute noch verwendete PCI-Bus von der Industrie selbst als bereits überholt gilt und sowohl in PowerPC- als auch x86-basierten Systemen in nicht allzu ferner Zukunft durch AGP mit etwa der dreifachen Datenrate ersetzt werden soll - was aber weder die prinzipiellen Beschränkungen überwindet, noch im Ansatz den Leistungsdaten des schnellen UMA-Design von CAIPIRINHA nahekommt.

4. Als Argument gegen UMA wurde aufgeführt, daß die CPU gegebenenfalls in ihrem Speicherzugriff limitiert würde. Als Bandbreitenbedarf wurde bei 50 MHz CPU-Bus-Takt x 8 Byte (64-Bit-Bus) eine Rate von 400 MB/s errechnet, für einen mit CAIPIRINHA theoretisch möglichen CPU-Bus-Takt von 100 MHz (sobald die PowerPC-Prozessoren auf dem Bus so schnell sind, was heute noch nicht der Fall ist) sogar ein Bandbreitenbedarf von 800 MB/s. Die dem gegenüberstehende, derzeit spezifizierte Bandbreite des UMA-Speicher von 1.600 MB/s wurde als theoretischer Maximalwert abgetan, der praktisch kaum erreicht werden könne, was natürlich ein korrektes Argument ist. Dieses letzte Argument gilt allerdings noch in viel stärkerem Maße für die theoretische CPU-Bandbreite von 400 bzw. 800 MB/s, da selbst die heute schnellsten PowerPC-Prozessoren solche Mengen von Daten in sinnvollen Anwendungen bei weitem nicht verarbeiten könnten (und reines Umkopieren übernimmt CAIPIRINHA, damit sich die CPU sinnvolleren Aufgaben widmen kann).

Darüber hinaus verfügen im Vergleich zum UMA-Design von CAIPIRINHA heute weitverbreitete PC-Systemcontroller gemäß den Meßergebnissen unabhängiger Fachmagazine über tatsächliche Hauptspeicherzugriffs-Bandbreiten von weniger als 100 MB/s, was z.B. für die schnellsten Pentium- und PentiumPro-Systeme gilt. Aber auch der Standard-Controller MPC106 von Motorola, ein kombinierter Memory/Cache/PCI-Bus-Controller für PowerPC-Rechner, erreicht gemäß Spezifikation mit 60ns-EDO-RAM und bei 64 Bit Datenbusbreite eine maximale Burst-Datenrate von 133MB/s (was übrigens etwa einem Zero-Waitstate-RAM-Controller mit 16 MHz entspricht), die in der Praxis meistens noch geringer ausfallen wird. Wenn also der PowerPC-Prozessor von CAIPIRINHA bei extrem hoher Systemaktivität "nur noch" mit einer dauerhaften Datenrate von 200-300 MB/s bedient würde, ist dies immer noch bei weitem schneller als in den heutigen Standard-Designs (auch in solchen, die erst im Laufe des Jahres 1997 auf den Markt kommen).

5. Ein anderes Argument gegen die hohe Integration, die das CAIPIRINHA-Design erfordert, ist die Erweiterungsfähigkeit; es wurde gerne kritisiert, daß der Controller inklusive Grafik und Sound fest auf dem Mainboard integriert ist, und nicht über ein Bussystem austauschbar ist (was nicht möglich ist, da kein heute verfügbares oder spezifiziertes Standard-Bussystem den Leistungsanforderungen genügen würde). Demgegenüber steht allerdings die Tatsache, daß das CAIPIRINHA-Design derzeit bereits erst im Laufe des Jahres 1997 tatsächlich verfübare Technologien ausreizt (wie z.B. 100-MHz-SDRAMs, die zwar seit zwei Jahren angekündigt sind, aber derzeit erst bemustert werden, oder einen 100 MHz-CPU-Bus, der heute noch von keinem Prozessor ausgereizt werden kann), und durch sein fortschrittliches und innovatives Design Leistungsreserven für mehrere Jahre bietet. Dies kann von den vielgelobten modularen Systemen nicht uneingeschränkt behauptet werden. Wer heute z.B. eine PCI-Grafikkarte kauft, setzt eine bereits in Kürze überholte Technik ein; dabei wird die nächste Generation mit der schnelleren AGP-Grafik eine neue Generation von Mainboards für PowerPC- wie auch x86-Systeme erfordern, was im Endeffekt bedeutet, daß der Anwender Grafikkarte und Mainboard (inkl. allen Controllern) tauschen muß. Aber auch diese nächste Generation von Mainboards verschiebt mit AGP den Flaschenhals lediglich von 132 MB/s auf rund 400 MB/s, womit diese Systeme auch nur begrenzt zukunftssicher sind. Andere Konzepte, bei denen der Prozessor zusammen mit dem Speicher und gegebenfalls einem Cache als Modul eingesetzt wird (was übrigens dem Konzept von AMIGA-Turbokarten wie der CYBERSTORM entspricht, die aufgrund des peinlich langsamen Hauptspeicherdesigns des A4000 notwendigerweise rund viermal schnelleres eigenes RAM verwenden), bringen dem Anwender im Falle einer Aufrüstung erhebliche Mehrkosten, da ja mit einem neuen Modul ein neuer Prozessor, ein neuer Speicher/Cache/Systemcontroller und auch neue Sockel für Speicher und Cache-Module mitbezahlt werden müssen. Der Sinn dieser Mehrkosten ist mehr als fraglich, denn soll mit einer solchen Aufrüstung tatsächlich z.B. ein wesentlich schnelleres Cache- und Speicherdesign implementiert werden, so ist es - speziell wenn neue, schnellere RAM-Konzepte wie SDRAM eingesetzt werden sollen - nicht unwahrscheinlich, daß auch die vorhandenen Cache- und Speichermodule ausgetauscht werden müssen. Es wird sich also auch bei diesem modularen Konzept erst noch erweisen müssen, inwieweit die Aufrüstbarkeit in dieser Form sinnvoll, preislich angemessen und zukunftssicher gegeben ist.

Alles in allem gibt es viele und wesentliche Gründe, auf denen unsere Hardware-Philosophie beruht. Wir hoffen, daß die oben aufgeführten Informationen diese etwas deutlicher machen, und Mißverständnisse oder spekulative Darstellungen in der öffentlichen Diskussion korrigieren können. Bitte beachten Sie hierzu auch die weiteren verfügbaren Information wie z.B. zu unserer OS-Strategie.