In den siebziger Jahren versuchte man eine größere Performance durch die Verlagerung der Aufgaben in den Prozessor zu erreichen. So entstanden Prozessoren mit riesigem Befehlssatz und verschiedenen Datentypen und Adressierungsarten. Man versprach sich davon eine optimierte Codeproduktion durch den Compiler, kürzere Programme und schnellere Ausführungszeiten. Ein Beispiel dafür ist der 68020, mit Befehlen von einem Byte Länge bis zur 11 Byte und einer CU, die 60% der Chipfläche einnimmt.
Da zu jener Zeit das Mikroprogrammwerk der Prozessoren um ein vielfaches schneller als der Hauptspeicher war, bedeutete das keinen Nachteil für die CISC-Rechner. Erst als die Speicherbausteine schnell und billig wurden, und damit der Geschwindigkeitsvorteil von Mikroprogrammen gegenüber Assemblerprogrammen verlorenging, zeichneten sich eine Kehrtwende im Prozessorbau an. Sie wurde von Studien der Prozessorhersteller DEC und IBM unterstützt, die besagen, daß man eine Laufzeit des Code verbessern kann, indem man dem Compiler nur ein Bruchteil des Befehlssatzes überläßt. Die Analyse der gängiger Programme zeigte, daß die Compiler einen Code erzeugten, der nur in sehr kleinem Umfang prozessorspezifische Befehle benutzt.
Ein Grund dafür ist die angestrebte Portierbarkeit. Des weiteren ergeben sich bei CISC-Maschinen Probleme rein technischer Natur. So steigt der Aufwand z.B. für die Verwaltung einer Pipeline überproportional mit der Anzahl der Befehle.
Befehl Relative Häufigkeit
Bedingte Sprünge 11%
Unbedingte Sprünge 1%
Load 18%
Store 8%
Arithmetik 39%
Rest 23%
Typische Vertreter:
Intel Prozessorfamilie 80x86er bis einschließlich (Pentium).
|