Koexistenz oder Verdrängungswettbewerb?

Von CISC zu RISC: Leistungsexplosion bei Mikroprozessoren

28.09.1990

*Rolf Jürgen Brüß, Siemens AG, Bereich Halbleiter, München CISC (Complex Instruction Set Computer - Computer mit komplexem Befehlssatz) und RISC (Reduced Instruction Set Computer - Computer mit reduziertem Befehlssatz) sind Begriffe, die sich für zwei sehr unterschiedliche Konzepte zum Bau von Computersystemen eingebürgert haben. Sie geben die auffälligsten Attribute wieder, die bei der Publizierung der ersten RISC-Konzepte erkennbar waren. Hierzu gehörte die deutliche Reduzierung der Anzahl der Befehle.

Die Attribute komplex und reduziert beschreiben jedoch nur sehr oberflächlich den Unterschied zwischen diesen beiden Architekturmodellen für Mikroprozessoren. So läßt sich nicht eindeutig eine Anzahl von Prozessor-Befehlen angeben, unterhalb der man es mit RISC zu tun hat. Vielmehr gehört eine Vielzahl anderer Wesensmerkmale dazu, um typische RISC und CISC zu kennzeichnen. Auch gibt es diverse Prozessoren, die sich nicht eindeutig einer Kategorie zuordnen lassen. Recht gut geben die Begriffe komplex und reduziert jedoch ein wichtiges Unterscheidungsmerkmal wieder, wenn man sie nicht nur auf die Befehle sondern darüber hinaus auf die Komplexität der Prozessor-Hardware bezieht.

Bei Verwendung vergleichbarer Halbleitertechnologie und gleicher Taktrate (zum Beispiel CMOS und 25 MHz) erreicht ein RISC-Prozessor heute typischerweise die zwei- bis vierfache Leistung eines CISC-Prozessors. Die Prozessor-Hardware eines derartigen RISC-Prozessors ist aber so einfach strukturiert (reduziert), daß sie auf einem Bruchteil der Chipfläche des CISC-Prozessors realisiert werden kann. Dies legt die Vermutung nahe, daß CISC von RISC abgelöst werden wird - aber derart vereinfacht kann diese Frage nicht beantwortet werden.

Realisierungstechnische Voraussetzungen und nicht zuletzt die Wirtschaftlichkeit unter Einbeziehung der Software-Kosten sind ausschlaggebend für den Einsatz einer bestimmten Mikroprozessor-Architektur. Darüber hinaus gab und gibt es Gründe für Entwicklung und Einsatz von Prozessoren mit komplexem Aufbau und umfangreichem Befehlssatz.

CISC-Architekturen bei Mikroprozessoren

Wichtiges Wesensmerkmal fast aller CISC-Architekturen, zum Beispiel der weltweit millionenfach eingesetzten Prozessoren der Intel- (8086, 80186, 80286, 80386, 80486) und Motorola-FamiIien (6800, 68010, 68020, 68030, 68040) ist die Mikroprogrammierung. Hierbei handelt es sich um eine strukturierte Lösung des Aufbaus von Prozessoren. Jeder Maschinenbefehl wird durch ein sogenanntes Mikroprogramm interpretiert, das sich in einem Mikroprogrammspeicher auf dem Prozessorchip befindet. Im Gegensatz dazu steht die fest verdrahtete Befehlsstruktur bei Prozessoren bis Mitte der 60er Jahre und bei heutigen RISC-Prozessoren. Der Weg der Mikroprogrammierung wurde in den 60er Jahren eingeschlagen, da er am besten mit den verfügbaren Speichertechnologien korrespondierte und die Entwicklung aufwärtskompatibler Prozessorfamilien ermöglichte. Konkret bedeutet Mikroprogrammierung die Verlagerung von komplexen Befehlsabläufen aus dem Anwendungsprogramm auf den Prozessorchip.

Dem Anwendungsprogramm wurden mächtige, komplexe Befehlssätze zur Verfügung gestellt. Mit extrem codierten Befehlsformaten konnte zum Beispiel die Anzahl der pro Befehl aus dem Hauptspeicher zu holenden Bits durch das Mikroprogramm auf Kostendes Decodieraufwands minimiert werden. Die damals verfügbaren Ferritkern-Speicher erlaubten nur Zugriffszeiten von etwa 1Ás. Für den Mikroprogrammspeicher konnten jedoch ROM-Technologien (Read Only Memory - Festwertspeicher) mit einer Größe von etwa 1 Kbit und einer Zugriffszeit von 100 Nanosekunden verwendet werden. Für den Aufbau von Hauptspeichern waren diese Speicher technisch und kostenmäßig aber nicht verwendbar. Es ergab sich ein Faktor 10 im Verhältnis der Zugriffszeiten von Mikroprogramm- und Hauptspeicher. So konnten während eines Befehls zehn Mikrobefehle aus dem Mikroprogrammspeicher geholt werden. Von diesem Umstand machten komplexe Befehle Gebrauch, die als Ersatz für häufig verwendete, zu langsame Unterprogramme in Anwenderprogrammen in die Befehlssätze aufgenommen wurden. Der Aufwand eines zusätzlichen Befehls im Mikroprogrammspeicher war meist nicht groß, da die ROM-Speichergröße häufig noch ungenützten Raum übrig ließ. Die Mikroprogrammierung war also Ende der 60er Jahre die folgerichtige Lösung, um unter Anwendung aller verfügbaren Technologien ein entwicklungsfähiges Prozessorkonzept mit optimalen Leistungsdaten zu verwirklichen.

Es entstanden Prozessorfamilien mit einer enormen Anzahl von Maschinenbefehlen (bis über 300), deren Befehlsstruktur stark codiert und deren Formate sehr uneinheitlich (16 bis 456 Bits) waren. Man erreichte damit einen kompakten Code, der wenig Platz im Hauptspeicher benötigte. Damit wurde dem Umstand Rechnung getragen, daß Kernspeicher damals die langsamsten und teuersten Elemente der Rechner waren. Auf Basis dieses Grundkonzepts entstanden Mikroprozessorfamilien , die zu Standards in der Computertechnik wurden. In der Folgezeit wurde eine große Anzahl von Software-Paketen entwickelt, die auf diesen Prozessoren lauffähig waren. Es entstand jedoch auch der Zwang, bei der Weiterentwicklung der Prozessoren kompatibel zu bleiben, das heißt alte Programme mußten auch auf dem weiterentwickelten Folgemodell lauffähig sein. Frühere Generationen einer Prozessorfamilie mußten also in jeder neuen Prozessorversion als Untermenge enthalten sein. Hierdurch wurde die Komplexität von Befehlsatz und Chip-Hardware schrittweise immer weiter erhöht. Neue Halbleitertechnologien und immer neue, ausgeklügeltere Architekturverfeinerungen verhalfen jedoch diesen Prozessorfamilien in den letzten 15 Jahren zu einer steigenden Leistungsfähigkeit.

Der erste RISC-Prozessor wurde von IBM entwickelt

Mitte der 70er Jahre wurden bei statistischen Untersuchungen (im IBM Thomas J. Watson Forschungszentrum in Yorktown Heights) folgende Beobachtungen gemacht:

-Was die Häufigkeit der Verwendung und den Zeitaufwand für einen Befehl betrifft, so belegen bei einem CISC-Prozessor etwa 20 Prozent der Befehle Prozent der gesamten Ausführungszeit eines Programms.

- Es gibt Beispiele, in denen eine Sequenz einfacher Befehle das gleiche bewirkt wie eine vor gegebene komplexe Sequenz aber eine geringere Ausführungszeit benötigt.

Außerdem war zu dies Zeitpunkt schon absehbar, daß die Fortschritte in der Halbleitertechnologie den Geschwindigkeitsunterschied zwischen CPU und Hauptspeicher reduzieren. Auch war bekannt, daß sich dieser Unterschied durch Verwendung schneller Cache-Speicher (SRAM) noch weiter absenken läßt. Diese Erkenntnisse führten zum IBM-801-Projekt mit der Entwicklung des ersten RISC-Prozessors, der jedoch als Forschungsprojekt nicht in kommerzielle Serienfertigung ging.

Die zunehmend positive Veränderung der realisierungstechnischen Rahmenbedingungen führte 1980/81 zu RISC-Projekten an den Universitäten Berkeley und Stanford, wo David Patterson und John L. Hennessy begannen, mit ihren Teams RISC-Prozessoren als Ein-Chip-Rechner zu entwickeln.

Seit Mitte der 80er Jahre gibt es kommerzielle Implementierungen des RISC-Konzepts. Eine der bedeutendsten dieser Architekturen ist die von der Firma Mips auf Basis des Stanford-Projekts entwickelte Prozessorfamilie R2000/3000 mit inzwischen Hunderten von Anwendungen in verschiedenen Hochleistungsbereichen. Der Firmenname Mips ist vom Stanford-RISC-Projekt übernommen (Mips bedeutet hier Microprocessor without interlocked pipeline Stages). Generell lassen sich die Wesensmerkmale einer RISC-Architektur wie folgt zusammenfassen.

- Reduzierung des Befehlssatzes auf einfache Basisbefehle, aus denen sich alle komplexen Operationen zusammensetzen lassen;

- Load-Store-Architektur - die einzigen Befehle, die auf den Speicher zugreifen, sind Load und Store; Register-Register-Modell - drastische Verringerung des Steueraufwands gegenüber anderen Ausführungsmodellen;

- fast alle Befehle können in einem Maschinenzyklus abgeschlossen werden - wichtige Grundlage für die Reorganisation der Befehlsabläufe durch einen optimierenden Compiler;

- Pipelining (überlappende Ausführung mehrerer Befehle) - eine Möglichkeit, die Anzahl der notwendigen Maschinenzyklen für die Ausführung eines Befehls zu reduzieren.

Die Tatsache, daß die einfachere Chip-Struktur bei einem RISC-Prozessor zu erheblich kleineren Chipflächen führt, wird oft genutzt, um zusätzliche Funktionen auf dem Chip unterzubringen (zum Beispiel eine Einheit zur Fließkomma-Arithmetik, Memory-Management-Einheit Cache-Kontrollfunktionen unter anderem) Außerdem führt die relative Einfachheit der Architektur von RISC-Prozessoren zu kürzeren Design-Zyklen bei der Entwicklung neuer Versionen. Dies wiederum macht es möglich, daß jeweils der neueste Stand der Halbleitertechnologie zum Einsatz kommen kann. RISC-Prozessoren setzen damit nicht nur auf einer um den Faktor 2 bis 4 höheren (System-)Leistung an, sondern machen auch von Generation zu Generation erheblich größere Leistungssprünge als CISC-Prozessoren. Eine gültige Faustregel besagt, daß aktuell bei modernen RISC-Prozessoren etwa alle zwei Jahre eine Leistungsverdopplung mit neuen Prozessorversionen möglich ist.

Es ist für die Leistung eines Computersystems von entscheidender Bedeutung, daß die einzelnen Komponenten des Gesamtsystems optimal ausbalanciert werden. Dies gilt auch für RISC-Architekturen. Während bei CISC-Systemen aus ökonomischen Gründen die Komplexität auf den Prozessorchip verlagert wurde, wird bei RISC-Konzepten der Prozessor von den komplexen Befehlen befreit. Durch die Verfügbarkeit großer, preiswerter Speicherbausteine in CMOS-Technologie (1 Mbit, 4 Mbit) mit Zugriffszeiten von unter 60 Nanosekunden, SRAM-Bausteinen für Cache-Speicher mit Zugriffszeiten von unter 15 Nanosekunden und Gehäusetechnologien, die standardmäßig Pinzahlen über 120 ermöglichen, haben sich in der zweiten Hälfte der 80er Jahre die realisierungstechnischen Bedingungen für RISC-Architekturen, wesentlich verbessert.

Eine Schlüsselrolle für ein ausbalanciertes RISC-Konzept kommt dem Compiler (Übersetzer) zu. Zugunsten der optimalen Beschleunigung der wichtigsten Basisbefehle durch feste Verdrahtung auf dem Prozessorchip werden alle komplexen Operationen in den Compiler verlagert. Der Compiler übernimmt die Rolle des intelligenten Mittlers zwischen Anwenderprogramm und Mikroprozessor. Hierbei werden unterschiedlichste Optimierungstechniken auf verschiedenen Software-Hierarchieebenen eingesetzt, um den Prozessor so mit Daten zu füttern, daß dieser optimal beschäftigt ist.

Die RISC-Entwickler bei Mips (und Hewlett-Packard) arbeiten nach der Regel, daß ein Befehl nur dann aufgenommen, das heißt, auf dem Prozessorschip fest verdrehtet wird, wenn dies erwiesenermaßen zu einer Steigerung der gesamten Systemleistung um mindestens ein Prozent fuhrt. Mit äußerster Konsequenz wurde bei Mips Computer Systems die Systemeinheit Compiler und Prozessorchip in einem Gesamtprogramm entwickelt. Ergebnis war ein Satz von nur 74 Befehlen, wobei auf möglichst einheitliches Befehlsformat geachtet wurde. Es läßt sich mit Recht behaupten, daß beim Mips-Konzept der Prozessor (Hardware) ein Produkt der Compiler-Entwicklung , (Software) ist. Im Vergleich hierzu wurden und werden CISC- und auch manche RISC-Prozessoren typischerweise von Chipentwicklungs-Teams der Halbleiterfirmen entwickelt, während die Compiler-Entwicklung oftmals abgetrennt nachfolgt. Die Compiler-Entwickler finden also eine festgelegte Schnittstelle zum Prozessor vor und können so die Aufgabenteilung zwischen Prozessor und Compiler nicht mehr optimierend beeinflussen.

Darüber hinaus neigen Softwarehäuser, die Compiler und Anwendersoftware entwickeln, aus Wirtschaftlichkeitsgründen dazu, ihre Software auf verschiedene Prozessorchips zu portieren, statt eine volle Optimierung unter Nutzung der jeweiligen Prozessoreigenschaften durchzuführen. Dies erzeugt weitere negative Faktoren der Ineffizienz. Diese (oft auch durch Kompatibilitätszwang vorgegebene) Einschränkung der Möglichkeiten zur Systemoptimierung wurde bei modernen RISC-Entwicklungen überwunden.

Computerleistung aus Anwendersicht

Neben der konzeptionellen Grundlage zur Entwicklung eines leistungsstarken Computersystems sind spezielle Techniken notwendig, um die einzelnen Faktoren zu optimieren, aus denen sich die Computerleistung zusammensetzt. Computerleistung kann real eigentlich nur mit dem konkreten Anwenderprogramm definiert werden. Die Aussage eines Herstellers, daß seine Architektur eine bestimmte Zahl von MIPS (Million instructions per second - Millionen Befehle je Sekunde) leiste, ist für einen Anwender ohne Bedeutung, solange er nicht weiß, wie viele Befehle der jeweilige Compiler bei der Übersetzung seines Anwenderprogramms erzeugt , und wie lang die Ausführung dieser Befehle dann dauert. Um eine Vorabschätzung, das heißt, eine Eingrenzung der in Frage kommenden Architekturen zu ermöglichen, gibt es eine Vielzahl von Benchmark-Programmen, die zu unterschiedlichen MIPS-Angaben führen, da sie in unterschiedlicher Weise und Häufigkeit auf bestimmte Befehle zugreifen.

Nur eine Betrachtung verschiedener Benchmarks gibt also, ein ungefähres Bild, auf dessen Basis ein Anwender eine Eingrenzung der geeigneten Architekturen vornehmen kann.

Ein Anwender, der ein Reprogrammable System, das heißt ein Computersystem entwickeln möchte, ist nicht an hoher Leistung bei nur einem Anwenderprogramm interessiert. Im Gegensatz zu Embedded Systems (eingebettete Systeme), die nur eine eindeutige, eingrenzbare Anzahl von Aufgaben (Anwenderprogramme) immer wieder abarbeiten, ist hier eine möglichst ausgewogene Leistung über viele verschiedene Benchmarks von Bedeutung. Angaben über Spitzenleistungen, die nur unter bestimmten Rahmenbedingungen gelten und in keinem realen Anwenderprogramm wiederzufinden sind, muß man eigentlich als unseriös bezeichnen.

SPEC (Systems Performance Evaluation Cooperative) - eine Institution, die auf einem Konsortium vieler namhafter Computerhersteller basiert - bemüht sich derzeit, realistische Benchmarks zu erstellen, um dem Anwender die Beurteilung von Leistungsangaben zu erleichtern. Pionier auf diesem Gebiet ist die Firma Mips, die seit Jahren die Rahmenbedingungen all ihrer Benchmarks in sogenannten Performance Briefs offenlegt und - sich bemüht, auch von Anwendern reproduzierbare Leistungsmessungen vorzustellen.

Häufigste Anwendungen für RISC-Prozessoren

Die seit 15 Jahen verwendeten CISC-Architekturen haben die Entwicklung einer großen Anzahl von Softwareprodukten ermöglicht. Dies stellt eine gewaltige Investitionssumme dar und sichert diesen Prozessorfamilien einen wachsenden Markt. Daneben nehmen jedoch Anwendungen zu, bei denen die erreichbare Systemleistung aus Anwendersicht einen größeren Stellenwert einnimmt als die Kompatibilität zu älterer Hardware und Software. Neben Hochleistungs-Subsystemen im Embedded-Bereich, wo schon immer spezielle Lösungen mit höherer Leistung dominierten, gilt dies auch für Workstations. Diese Geräte waren bislang überwiegend im technischen Bereich von Forschung und Entwicklung zu finden. Immer größer und komplexen werdende Softwarepakete mit hohem Bedarf an visueller Umsetzung verhalfen dieser Geräteklasse nun auch zum Durchbruch in anderen Bereichen, zum Beispiel in Büro-, Medizin- und Bankenanwendungen. Die Anwendersoftware läuft dabei unter dem Betriebssystem Unix. Unix ist in C geschrieben, und die heutigen RISC-Architekturen sind für diese Hochsprachenumgebung angepaßt und optimiert. Dies führte binnen, weniger Jahre dazu, daß alle namhaften Workstation-Hersteller von CISC- zu RISC-Prozessoren übergingen. Die resultierenden Systeme bieten in der Bauform eines großen PC oft die Leistung eines Großrechners und schaffen eine völlig neue Dimension beim Preis-Leistungs-Verhältnis. Dies spiegelt sich in einem starken Anwachsen der Zähl der pro Jahr eingesetzten RISC-Prozessoren wider.

Während schon der gesamte Markt der 32-Bit-Mikroprozessoren ein jährliches Wachstum von etwa 100 Prozent aufweist, wächst der RISC-Anteil dieser Sparte sogar mit über 150 Prozent. Innerhalb weniger Jahre wird RISC im 32-Bit-Markt 25 bis 30 Prozent Marktanteil erobert haben - trotz der scheinbar erdrückenden Menge an Software, die auf Basis von Standard-CISC-Prozessoren weltweit verkauft wurde.

Raum für exotische Konzepte

Innerhalb der RISC-Welt ringen unterschiedliche Architekturen um die Vorherrschaft. Während bei Embedded Systems auch in den nächsten Jahren Raum für unterschiedlichste, zum Teil exotische Konzepte bleiben wird, da dort die normierende Wirkung des Unix-Betriebssystems kaum greift, zeichnet sich im Bereich der Reprogrammable Systems, und hier besonders im Workstation-Bereich, eine Dominanz weniger, allen Anwendern zugänglichen Prozessorarchitekturen ab. Die MIPS-RISC-Architektur hat hier die stärkste Akzeptanz gefunden. Im Gegensatz zu den meisten anderen Prozessoren, die nur von einem Hersteller, zum Teil auch nur für den Eigenbedarf, produziert werden, werden Mips-Prozessoren weltweit von fünf Halbleiterherstellern gefertigt und angeboten, unter ihnen NEC und Siemens. Die Prozessoren aller fünf Hersteller sind pin-, funktions- und binär-kompatibel, wodurch für den Anwender eine Multiple-Source-Situation gegeben ist.

Die Entscheidung für oder gegen eine bestimmte Prozessorarchitektur muß jeder Anwender unter Berücksichtigung seiner konkreten Applikation treffen. Dies gilt bei der Entscheidung für eine bestimmte CISC- oder RISC-Architektur genauso wie für die Entscheidung, ob RISC in einer Anwendung ökonomisch eingesetzt werden kann. Hierbei wird nie allein die Prozessorleistung, sondern immer die erreichbare reale Systemleistung den Ausschlag geben. Auch die Kostenfrage wir wahrscheinlich sehr unterschiedlich zu beurteilen sei. Für den Anwender, der eine Workstastion entwickelt, die anschließend für 100 000 Mark verkauft werden soll, sind die Kosten für den Prozessor sekundär, wenn sie unter 500 Mark liegen; er wird sich ausschließlich an der Leistungsfähigkeit orientieren. Ein Anwender dagegen, der einen Laserdrucker entwickelt und ihn für 5000 Mark verkaufen möchte, wird an die zu wählende Prozessorarchitektur andere Maßstäbe anlegen. RISC wird überall dort eine attraktive Lösung bieten, wo hohe Leistungsanforderungen und Hochsprachenorientierung auftreten. Im industriellen Bereich gibt es jedoch noch ein große Zahl von Anwendungen, die nicht einmal die Leistungsfähigkeit heutiger 8-Bit-CICS-Controller ausschöpfen.

Obwohl der Anwendungsbereich für Hochleistungs-RISC-Architekturen stark wächst, ist dies nicht gleichbedeutend mit dem Ende für andere bewährte Prozessor- und Controllerarchitekturen, die sich ebenfalls weiterentwickeln werden.

Die existierenden CISC-Standard-Prozessorfamilien werden sicher weiterentwickelt und weiter weltweit eingesetzt. Fraglich ist jedoch, ob noch völlig neue CISC-Familien entstehen werden. Inzwischen haben auch Intel und Motorola, die beiden großen Hersteller von CISC-Prozessoren, erkannt, daß RISC-Prozessoren weit mehr sind als nur eine Spielart von Spezialprozessoren. Durch Adaptieren von RISC-typischen Prozessortechniken, bei neuen Versionen von CISC-Prozessoren wird versucht, neue Wege der Leistungssteigerung auch bei eingeführten CISC-Prozessor-Familien zu finden. Inzwischen haben RISC-Prozessoren die Domäne der Motorola-68000-Prozessoren im Workstation-Bereich erobert. Es ist zu erwarten, daß bald im oberen PC-Bereich RISC-Prozesoren die Intel-Architektur bedrängen. Es zeigt sich jedoch, daß nur dort, wo sich neue Standards im Gerätebereich herausbilden, wie mit Unix im Workstation-Bereich, genügend Raum für den hochvolumigen Einsatz von neuen, nicht mit älteren Geräten kompatiblen Systemen entsteht. Die Marktentscheidungen fallen auf der Anwenderseite, und hier spielt die Software das heißt, die konkrete Anwendung, eine weit größere Rolle als die für den Endanwender nicht sichtbaren Architekturunterschiede. +

Dieser Artikel wurde mit freundlicher Genehmigung der Siemens AG aus der Siemens AG aus der Siemens-Zeitschrift 4/90 übernommen.

Etablierte Familien

Fortschritte der Halbleitertehnologie haben den Geschwindigkeitsunterschied zwischen Mikroprozessor und Speicher so stark reduziert, daß neue, schnellere Prozessor-Architekturen wirtschaftlich wurden. Vielfach herrscht sogar die Meinung vor, diese RISC-Prozessoren würden die herkömmlichen CISC-Prozessoren bald weitgehend ersetzen. Die enorme Verbreitung der CISC-Prozessoren und der zugehörigen Anwendersoftware sichert diesen Prozessorfamilien jedoch auch weiterhin einen wachsenden Markt. Fraglich bleibt indes, ob sich neue CISC-Familien gegen die immer stärker werdenden RISC-Konzepte am Markt etablieren können.