RISC Teil 1

1.Teil der großen RISC Serie. “Die Geschichte”  – man beachte die Rücksicht auf user ohne Packer und das Aufteilen in 10kb Häppchen. Ich sag’ nur 1200baud Modem!

Hallo!  

Gleich zu Anfang eine Warnung: DIESES WIRD EINE LANGE MAIL! Also Zeit zum Kaffekochen! (Ich packe nicht, da sich dann weniger Leser an diesem Brett erfreuen koennen.) Zur Uebersichtlichkeit teile ich aber in Kapitel, die je eine eigene Mail darstellen und durchlaufend nummeriert sind.  

Also RISC 1 - die GESCHICHTE:  

Heute gehts mal ganz allgemein um RISC-PROZESSOREN bzw. Rechner. Fur "Neue": RISC ist kein Praedikat fuer einen Prozessor der nach ablauf seiner Garantie das Leben seines Umfeldes riskiert, sonder ist eher eine Abkuerzung fuer: Reduced Instuction Set Computer (z.Dt. Prozessor mit eingeschraenktem Befehlssatz). (An dieser Stelle weise ich darauf hin, dass eingeschraenkt nicht beschraenkt heisst) Nach der Vokabelklaehrung zum Rest: (Ich hole "etwas" aus!) Mit der einfuehrung der Universalrechner Familie /360 von IBM wurde in den 60'er Jahren der Schritt zur modernen Rechnerarchitektur vollzogen. Man reagierte auf diese Tatsache,dass die Software immer teurer als die Hardware wurde, indem man innerhalb einer Rechnerfamilie verschiedene Rechner unterschiedlicher Leitung und Preise schuf,die aber aufwaerts- kompatibel waren. Bei einem Aufstieg in hoehere Klassen konnte die Software "mitgenommen" werden, das war revolutionaer. Das Familienkonzept stellte aber eine Herausforderung an die Rechnerarchitektur dar: Es musste eine Architektur geschaffen werden, die ermoeglicht ein und denselben Maschienenbefehlssatz in Modellen unterschiedlicher Leistung auszufuehren. In den Systemen /360 und /370 trieb man das so weit, dass Unterschiede zwischen dem Kleinsten und dem Groessten Modell um den Faktor 1000 ent- standen. Verglichen mit einem PKW muesste, wenn das kleinste Modell gerade 100km/h faehrt, das Spitzenmodell so um die 100000 Sachen machen. Nicht schlecht. Der Trik bestand darin, eine strikte Trennung duchzu- fuehren zwischen Maschienenbefehls-Schnittstelle (Laut IBM "architek- tur"), der logischen Organisation des Rechners ("Implementierung") und den physikalischen Bausteinen,aus denen er aufgebaut wird ("Realisierung"). Wichtigste Implemetierungs-Vorraussetzung fuer diese Organisation von Rechnern war die Technik der Mikroprogrammierung. Schon 1951 wurde eine Technik zur strukturierten von Maschienenbefehls- saetzen eingefuehrt, wurde sie eigentl. erst 1960 so richtig gewuerdigt. Die Idee ist sehr einfach: Jeder Maschienenbefehl wird durch ein Mikroprogramm implementiert. Das Mikroprogramm besteht aus Mikroin- struktionen, wobei jede die gesamte Steuerungsinformation fuer alle Hardwareelemente fuer einen Grundtakt der Maschiene beinhaltet. Die Methode der Mikroprogrammierung hat ihre Vor- und Nachteile: Sie ist wegen des Auslesens der Steuerinformationen aus dem Mikro- programmspeicher langsamer, sie bietet aber die Vorteile der Erweiter- barkeit, besserer Lesbarkeit und Aenderungsfreundlichkeit etc.. Die Mikroprogrammierung ist fuer den Normalbenutzer des Rechners meist nicht sichtbar, sie wird deshalb oft zur Systemhardware gezaehlt, obwohl sie eine Softwareloesung darstellt. Sie ermoeglichte nun, ein und den selben Maschienenbefehl auf unteschiedlicher Hardware laufen zu lassen. Die Mikroprogrammierung hatte natuerlich auch ihre Tech- nischen Vorraussetzungen: Anfang der 60'er war die Halbleitertechnik naemlich so weit, dass sie schnelle integrierte Speicherchips her- stellen konnte, die sich durch ihre geringe Kapazitaet geradezu an- boten Mikrocode aufzunehmen (Der Hauptspeicher war aber immernoch ein Magnetkernspeicher, der aus technischen Grunden eine Zugriffs- zeit von einer ms erlaubte.). Der Mikrocodespeicher war ungefaehr um den Faktor 10 schneller. Damit war das Verhaeltnis zwischen Haupt- speicher und Mikrocode etwa ausgeglichen, da auf einen Maschienen- befehl etwa 5-10 Mikroinstruktionen entfielen. Die Mikroprogrammierung bot den Herstellern also kompatible Rechnerfamilien herzustellen, wobei das einfachste Modell den Befehlssatz definierte und die naechst hoeheren diesen ebenfalls beherrschten und evtl. erweiterten. Die Tendenz ist zu erkennen: Sobald eine Rechnerfamilie in die Jahre kommt geraten die Maschienenbefeflssaetze immer groesser und bekommt hier und da noch ein Gimmick verpasst. Eine neue Maschiene schleppt also immer die "alten" Gimmicks mit sich herum wobei immer neue hinzu- kommen. Mit den Fortschritten in der Halsleitertechnik gelang die Entwicklung immer schnellerer Speicherchips fuer den Mikrocode, ganz anders bei den Hauptspeichern in Magnetkernspeichertechnologie. Es lohnte sich also noch mehr, eine Sequenz von Maschienenbefehlen zu genau einem Maschienenbefehl zusammenzufassen,um die Anzahl der Haupt- speicherzugriffe fuer Befehlsholphasen zu reduzieren. Im endeffekt wurde genau dies zu dem Kriterium bei der Entwicklung einer CPU. All dies zusammen fuerhte dazu, dass Maschienen mit an die 500 Maschienen- befehlen keine Seltenheit waren. Der Aufwand fuer die Entwicklung des Steuerwerkes von Rechnern explodierte: man sprach zu Recht von Complex Instruction Set Computern (CISC). Ich moechte wagen diese Zeit als die "barockzeit der Computer" zu bezeichnen, wobei man den barocken Bau- werken insofern unrecht tut, als hier nicht die funktionalitaet, sondern die Schoenheit der ueberladenen Struktur im Vordergrund stand. Bei Rechnern als Werkzeuge kommt es auf schoenheit nicht an, die Funktionalitaet der CISC wurde aber anfang der 70'er mehr und mehr in Frage gestellt. Denn genau Anfang der 70'er konnten die Halbleiterhersteller ploetzlich Speicherbausteine von genuegender Kapazitaet herstellen. Der prinzipielle Geschwindigkeitsvorteil der Mikroprogrammspeicher gegenueber den Haupt- speichern war damit verlohren. Einen weiteren Schlag versetzte der Technik der Mikroprogrammierung eine neue Speicherorganisationsform. Man erkannte, dass es sinnvoll war zwischen Hauptspeichern und Registern eine weitere Stufe in die Speicherhirachie einzubauen: den sog. Cachespeicher. Diese relativ kleinen aber schnellen Speicher enthalten gerade den Ausschnitt des Programms und der Daten die die aktuelle Nachbarschaft des aktiven Programmteils darstellen. Durch diese Caches wurden die Hauptspeicher- zugriffe scheinbar (im Mittel auch real) noch schneller. Doch den entscheidenden Hieb versetzten der Mikroprogrammierung die Statistiker unter den Rechnerarchitekten. Inzwischen war es mehr und mehr ueblich geworden in Hochsprachen wie FORTRAN,Algol,Pascal oder C zu programmieren. Es wurden also nicht mehr die Befehle aus dem Maschienensprachenvokabular genutzt, die ein geschickter menschlicher Programmierer gewaehlt haette, sondern nur die,die der Codegenerator eines Compilers anspricht. Diese Codegeneratoren wissen mit komplexen Maschienenbefehlssaetzen nichts anzufangen. Analysen von durch Compiler erzeugten Code foerderte die sog. 90:10 Regel zutage: d.h.,dass 90% der ausgefuehrten Befehle sich nur auf 10% des Maschienenbefehlsumfangs der CISC Architektur beziehen. Ergo: Der riesige Entwurfsaufwand fuer die CISC Maschienenbefehlssaetze ging zu 90% ins Leere. Um noch eins draufzusetzen: Jeder Ingeneur weiss, dass durch Hinzufuegen von Funktionen an ein technisches Geraet nicht nur zusaetzlicher Entwurfsaufwand entsteht,sondern auch eine Verlangsamung der restlichen Funktionen. Auf einen Rechner bezogen heisst das, jede zusaetzliche Verzweigung in Datenpfaden kostet Gatterlaufzeiten fuer Multiplexer/Demultiplexer. So war es also kein Wunder,dass mitte der 70'er fast gleichzeitig aus dem Walde IBM und Berkley University der Ruf "zu- ruek zur Natur" laut wurde. Die Ergebnisse dieser Entruepelung der Maschienenbefehlssaetze waren die IBM 801 sowie die Ein-Chip-Prozessoren MIPS und RISC. Neue Technologien erwarten also eine neue Rechnerarchi- tektur. Man sollte also erwarten,dass es heute nur noch RISC Rechner gibt...doch da hat man leider den Anfags erwaehnten Aspekt der Software vergessen. Es existieren immer noch Softwarepakete (wirklich grosse welche!) die zu 90% in Maschienensprache geschrieben sind. Eine por- tierung auf einen RISC Rechner wuerde sich finanziell nicht lohnen. Ein weiteres Argument ist, das manche Prozesse ohne einen Gewissen Maschienen- befehl nicht so schnell waeren wie sie sind. Damit sind eigentlich schon alle Gruende genannt, die die Daseinsberechtigung fuer so erfolgreiche Prozessoren wie die INTEL 80x86 oder Motorola 680x0 Familie darstellen. Somit ist die heutige Rechnerwelt in 124 Zeilen erklaehrt: Einerseits diktieren die nicht uebertragbaren investierten Milliarden in Rechnersoft- ware die Aufrechterhaltung von zumindest teilweise ueberholten Rechner- architekturen. Andererseits sind Architekturen bekannt,die bei weniger Investition hoehere Leitung bieten. So ergibt sich,dass diese Architektur bei Anwendungen mit grossen Rechenanspruechen und die nicht auf exsitiernenden Anwendungen aufgebaut sind bevorzugt verwendet wird. Um die geht es in Zukunft (dieser Mail) und somit ist das Kapitel CISC ad acta gelegt, genauso wie dieses Kapitel ueber die Entstehung der RISC Architektur.  

mfg AXEL

Leave a Reply

Your email address will not be published. Required fields are marked *