Aufbau von Datenverarbeitungsanlagen [Reprint 2019 ed.] 9783110830125, 9783110046175


180 37 18MB

German Pages 270 [272] Year 1976

Report DMCA / Copyright

DOWNLOAD PDF FILE

Recommend Papers

Aufbau von Datenverarbeitungsanlagen [Reprint 2019 ed.]
 9783110830125, 9783110046175

  • 0 0 0
  • Like this paper and download? You can publish your own PDF file online for free in a few minutes! Sign Up
File loading please wait...
Citation preview

de Gruyter Lehrbuch Dirlewanger • Hieber • Rzehak Aufbau von Datenverarbeitungsanlagen

Werner Dirlewanger • Ludwig Hieber Helmut Rzehak

Aufbau von Datenverarbeitungsanlagen

w DE

G Walter de Gruyter • Berlin • New York 1976

Dr.-Ing. Werner Dirlewanger, Abteilungsleiter und Lehrbeauftragter am Institut für Informatik der Universität Stuttgart Dr.-Ing. Ludwig Hieber, Lehrbeauftragter am Institut für Informatik der Universität Stuttgart Dr. rer. nat. Helmut Rzehak, Professor an der Bundeswehrhochschule München

Mit 125 Abbildungen

CIP-Kurztitelaufnahme der Deutschen

Bibliothek

Diilewanger, Werner Aufbau von Datenverarbeitungsanlagen/Werner Dirlewanger; Ludwig Hieber; Helmut Rzehak. - 1. Aufl. - Berlin, New York: de Gruyter, 1976. ISBN 3-11-004617-2 NE: Hieber, Ludwig:; Rzehak, Helmut:

© Copyright 1976 by Walter de Gruyter & Co., vormals G. J. Göschen'sche Verlagshandlung, J. Guttentag, Verlagsbuchhandlung, Georg Reimer, Karl J. Trübner, Veit & Comp., Berlin 30. Alle Rechte, insbesondere das Recht der Vervielfältigung und Verbreitung sowie der Übersetzung, vorbehalten. Kein Teil des Werkes darf in irgendeiner Form (durch Photokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung des Verlages reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Printed in Germany. Satz: Ilmgaudruckerei, Pfaffenhofen. - Druck: Color-Druck, Berlin. Bindearbeiten: Dieter Mikolai, Berlin.

Vorwort

Der Bau der ersten elektronischen digitalen Rechenanlagen vor über drei Jahrzehnten löste eine stürmische Entwicklung aus, die inzwischen zu einem eigenständigen Wissensgebiet in den Naturwissenschaften, der Informatik, geführt hat. Die — wegen ihrer über die Erledigung reiner Rechenarbeit weit hinausgehenden Fähigkeiten — nun häufig Datenverarbeitungsanlagen genannten Maschinen spielen innerhalb der Informatik eine zentrale Rolle. Die Lehre vom funktionellen und technischen Aufbau von Datenverarbeitungsanlagen ist ein Kerngebiet der Informatik. Das vorliegende Buch ist diesem Gebiet gewidmet. Die Entwicklung auf dem verhältnismäßig jungen Wissensgebiet Informatik ist immer noch stark im Fluß. Es zeichnen sich jedoch auf einzelnen Teilgebieten Wissensmengen ab, die der Weiterentwicklung allmählich weniger unterliegen und damit die Bedeutung eines Grundlagenwissens bekommen. In diesem Sinne gibt es insbesondere über den Aufbau von Datenverarbeitungsanlagen inzwischen ein gut umrissenes Grundlagenwissen. Es umfaßt allgemein anerkannte Konstruktionsprinzipien solcher Anlagen, die Wirkungsweise der einzelnen Systemkomponenten und deren internen und logischen Aufbau. Dies darzustellen ist Ziel dieses Buches. Konstruktionsprinzipien, die Gegenstand neuester noch nicht abgeschlossener Forschung sind, wurden vorerst nicht berücksichtigt. Bei der Darstellung des Stoffes ist eine Abgrenzung nach zwei Seiten getroffen: Der Detaillierungsgrad der Beschreibung von Systemkomponenten erfolgt herab bis zu logischen Verknüpfungsschaltungen, Speicherelementen usw., während auf deren elektrotechnische Realisierung im allgemeinen nicht mehr eingegangen wird. Damit werden beim Leser Kenntnisse über elektrotechnische Grundlagen und über kombinatorische und sequentielle Netzwerke vorausgesetzt. Die Abgrenzung zur anderen Seite erfolgt dadurch, daß die komplexeste betrachtete Funktion diejenige ist, die sich aus dem Zusammenspiel der physikalischen Module (und ggf. ihrer Mikroprogramme) ergibt. Darauf aufbauende Funktionen auf der Ebene der Betriebs- und Programmiersysteme (z. B. Betriebsmittelverwaltung, Jobmanagement, Sprachübersetzungsvorgänge usw.) werden im allgemeinen nicht betrachtet. Nach einer allgemeinen Einführung in Abschnitt 1 werden in Abschnitt 2 Zahlendarstellungen und der Ablauf arithmetischer Operationen beschrieben. Die Abschnitte 3 bis 8 befassen sich mit dem Aufbau der einzelnen Systemkomponenten und deren Zusammenspiel. Abschnitt 9 geht auf die Erkennung und Behandlung von Maschinenfehlern ein. Abschnitt 10 gibt einen Überblick über ww

6

Vorwort

den derzeitigen Stand der Computerarchitektur, wobei abschließend vier typische, derzeitige Rechenanlagen aus unterschiedlichen Leistungsklassen beschrieben werden. Der letzte Abschnitt (11) beschreibt Beurteilungskriterien für Rechenanlagen und Verfahren zur Leistungsmessung. Zur Wiederholung und Vertiefung des dargestellten Stoffes findet sich am Ende jedes Kapitels eine Reihe von Übungsaufgaben. Das Buch ist gedacht für Studierende der Informatik oder von Datenverarbeitungsorientierten Studiengängen an Hochschulen und Universitäten für den Studienabschnitt Grundstudium; für Studierende der Elektrotechnik, Physik und Mathematik an Hochschulen und Universitäten; für Studierende der Fachrichtung Informatik an Fachhochschulen und für Leser mit entsprechenden Kenntnissen zum Selbststudium. Stuttgart, im Sommer 1976

Die Autoren

Inhalt

1. Einführung 1.1 Prinzipieller Aufbau und Wirkungsweise von Digitalrechenanlagen 1.1.1 Der klassische Universalrechner 1.1.2 Rechner mit Ein/Ausgabe-Prozessor 1.2 Unterscheidungsmerkmale von Rechenanlagen 1.2.1 Konstruktionsmerkmale 1.2.2 Technischer Aufbau 1.2.3 Anwendungsarten von Rechnern 1.2.4 Betriebsweisen 1.3 Die bisherige Entwicklung von Digitalrechnern 1.3.1 Die Rechnergenerationen 1.3.2 Die Entwicklung von Speichern, Rechenwerksleistung und der Kosten für Rechenarbeit Aufgaben 2. Zahlendarstellung und arithmetische Operationsabläufe 2.1 B-adische Zahlensysteme und Stellenschreibweise 2.2 Der Komplementbegriff und negative Zahlen 2.3 Die Gleitkomma-Zahlen 2.4 Konvertierung zwischen verschiedenen Zahlendarstellungen . 2.4.1 Konvertierung von Festkommazahlen 2.4.2 Konvertierung von Gleitkommazahlen Aufgaben 3. Rechenwerke 3.1 Addierwerke 3.1.1 Halbaddierer, Volladdierer 3.1.2 Serienaddierwerk 3.1.3 Serielles Dezimal-Addierwerk 3.1.4 Duales Parallel-Addierwerk 3.1.4.1 Der prinzipielle Aufbau 3.1.4.2 Beschleunigung des Übertrages durch zusätzliche Logik 3.1.4.3 Verwendung von Registern zur Reduzierung des Übertragabbaues

13 13 13 17 18 18 20 21 22 23 23 26 28

.

30 30 39 48 50 50 54 56 58 59 59 63 64 65 - 65 66 69

8

Inhalt

3.2 Subtrahierwerke 3.2.1 Subtraktion durch Addition des Komplements . . . . 3.2.2 Die Schaltung eines Volladdierers/Subtrahierers . . . 3.2.3 Duales Serien-Addier/Subtrahierwerk 3.2.4 Duales Parallel-Addier/Subtrahierwerk 3.2.5 Addier-Subtrahierwerke in Bausteintechnik 3.3 Vergleichswerke 3.3.1 Serienvergleich 3.3.2 Parallelvergleich 3.3.3 Parallelvergleicher in Bausteintechnik 3.4 Multiplizierwerke 3.4.1 Duale Serien-Multiplikation 3.4.2 Duale Parallel-Multiplikation 3.5 Divisionswerk 3.5.1 Division von Dualzahlen 3.5.2 Ablauf der Division in einem Rechenwerk 3.6 Gleitkommawerke Aufgaben 4. Hauptspeicher 4.1 Anforderungen und Kenndaten 4.2 Organisationsformen von Speichermatrizen 4.2.1 Das 2 D-System 4.2.2 Das 2 \ D-System 4.2.3 Das 3 D-System 4.3 Die Organisation von Halbleiterspeichern 4.3.1 Statische Speicher 4.3.2 Dynamische Speicher 4.4 Die Adressierung des Hauptspeichers 4.5 Der assoziative Speicher 4.5.1 Ordnungs-und Notierungsprinzip 4.5.2 Das Prinzip des assoziativen Speicherelementes. 4.5.3 Einsatz assoziativer Speicher Aufgaben 5. Befehlssysteme und Leitwerke 5.1 Befehlsfolgeabarbeitung 5.2 Allgemeine Befehlsstruktur 5.3 Befehlsformate 5.3.1 Bedeutung der Adressen 5.3.2 Festes Befehlsformat 5.3.3 Variables Befehlsformat

. . .

71 71 72 73 74 75 77 77 78 79 82 83 85 88 88 89 90 92 94 94 98 98 98 101 102 102 105 107 111 112 113 115 115 117 117 118 120 120 121 122

Inhalt

5.4 Hauptspeicheradressierung 5.4.1 Direkte Adressierung 5.4.2 Modifizierte und indizierte Adressen 5.4.3 Virtuelle Adressierung (Paging) 5.5 Leitwerke 5.5.1 Der Aufbau von Leitwerken 5.5.2 Synchroner und asynchroner Betrieb 5.5.2.1 Synchroner Betrieb 5.5.2.2 Asynchroner Betrieb Aufgaben 6. Mikroprogrammierung 6.1 Einführung 6.2 Modell eines sequentiellen Funktionsgenerators 6.3 Konzepte der Mikroprogrammsteuerung 6.3.1 Erzeugen von Steuersignalen durch Dekodieren des Operationsteils eines Befehlswortes 6.3.2 Erzeugen beliebiger Folgen von Mikrooperationen durch ein Mikroprogramm 6.3.3 Mikroprogrammsteuerwerk nach WILKES 6.3.3.1 Mikroprogrammsteuerung mit Speicher und interner Modifikation 6.3.3.2 Mikroprogrammsteuerung mit Speicher und externer Modifikation 6.4 Beispiel für einen Mikrobefehlssatz 6.4.1 Allgemeine Gesichtspunkte 6.4.2 Der Mikrobefehlssatz 6.5 Der Mikroprogrammspeicher 6.5.1 Speichermedien 6.5.2 Wortstrukturen in Mikroprogrammspeichern . . . . 6.6 Rechtfertigung der Mikroprogrammsteuerung Aufgaben 7. Ein- und Ausgabe 7.1 Ein/Ausgabe-Prozessoren 7.1.1 Aufbau und Wirkungsweise von Ein/AusgabeProzessoren 7.1.2 Das Kanalwerk 7.1.3 Periphere Einheiten 7.1.4 Zusammenarbeit zwischen E/A-Prozessor und peripherer Einheit 7.1.5 Zusammenarbeit zwischen Verarbeitungs-Prozessor und Ein/Ausgabe-Prozessor

9

123 123 123 123 126 126 127 127 128 128 129 129 131 133 134 135 135 136 137 140 140 140 142 142 143 144 145 146 146 146 147 149 151 154

10

Inhalt

7.1.6 Wechselpuffertechnik 7.1.7 Der Befehlsvorrat und die Gestaltung von E/AProzessoren 7.2 Ein/Ausgabe ohne Verwendung von E/A-Prozessoren. . 7.3 Fehlerbehandlung 7.4 Periphere Geräte 7.4.1 Lochstreifenleser und-Stanzer

7.4.2 7.4.3 7.4.4 7.4.5 7.4.6 Aufgaben

Lochkartenleser und -Stanzer Schnelldrucker Magnetbandspeicher Magnetplattenspeicher Bildschirm- und Schreibmaschinen-Terminals . . .

8. Vorrangsteuerungen 8.1 Konfliktsituationen in Rechenanlagen 8.2 Speicherzugriffskonflikt 8.2.1 Zugriffskonflikt und Auswirkungen 8.2.2 Wirkungsweise einer Vorrangsteuerung 8.2.2.1 Prinzipieller Verlauf der Abarbeitung von Zugriffswünschen 8.2.2.2 Die Vorrangentscheidung 8.2.2.3 Weitere Erläuterungen 8.3 Programmunterbrechungen 8.3.1 Ereignisse, die eine Programmunterbrechung notwendig machen 8.3.2 Prinzipieller Ablauf eines Interrupts 8.3.3 Die Identifizierung von Interrupts 8.3.4 Variable Prioritäten Aufgaben 9. Hardware-Vorkehrungen zur Fehlererkennung und Fehlerbehandlung 9.1 Sicherung der Information 9.2 Ein Beispiel zur systematischen Erzeugung der Prüfzeichen (Blocksicherung) 9.3 Überprüfung der Verknüpfungswerke 9.4 Schutz vor unzulässigem Zugriff auf Hauptspeicherbereiche 9.5 Behandlung von Hardware-Fehlern durch Software . . . 9.6 Wartungsfreundliche Rechenanlagen 9.6.1 Der modulare Aufbau

155

.

156 157 157 160 160

161 163 165 166 167 167 169 169 170 170 172 172 174 175 177 177 178 180 181 182

183 183 187 189 191 195 196 196

Inhalt

9.6.2 Mikroprogramme für die Wartung 9.6.3 Betrieb der Rechenanlage mit verminderter Leistung 9.6.4 Dynamische Rekonfigurierbarkeit Aufgaben 10. Computer-Architektur 10.1 Weiterentwicklungen des klassischen Universalrechners . . 10.1.1 Modifikationen am Grundprinzip 10.1.1.1 Gegenüber dem klassischen Universalrechner erweiterte Adressierungsmöglichkeiten und die Typenkennung 10.1.1.2 Stack-Rechner 10.1.1.3 Sprachorientierte und sprachgebundene Rechner 10.1.1.4 Assoziativ-Rechner 10.1.2 Beschleunigung der Verarbeitungsgeschwindigkeit . 10.1.2.1 Multiregistermaschinen 10.1.2.2 Parallelarbeit von Rechenwerk und Ein/Ausgabe 10.1.2.3 Mehrprogrammbetrieb 10.1.2.4 Überlappte und parallele Befehlsausführung 10.1.2.5 Pufferspeicher (Cache) 10.1.2.6 Mehr-Prozessor-Anlagen 10.1.2.7 Satellitenrechner 10.1.3 Speicherhierarchie 10.2 Datenwege zwischen Funktionseinheiten 10.2.1 Grundstrukturen von Rechensystemen 10.2.2 Das Verbindungsnetzwerk 10.3 Modultechnik 10.3.1 Allgemeine Bemerkungen 10.3.2 Modularer Aufbau 10.3.3 Rechnerfamilien 10.4 Emulation 10.5 Einige typische Beispiele von Rechenanlagen 10.5.1 Ein Beispiel eines Mikro-Computers 10.5.2 Beispiel für eine kleinere Rechenanlage 10.5.3 Beispiel einer Großrechenanlage für technischwissenschaftliche Zwecke 10.5.4 Beispiel eines sprachorientierten Rechners . . . . Aufgaben

11

197 197 198 198 200 200 200

200 201 205 206 207 207 208 208 209 210 211 211 211 212 213 215 221 221 222 223 224 226 226 228 231 234 237

12

Inhalt

11. Beurteilungskriterien für Rechenanlagen 11.1 Vorbemerkung 11.2 Beurteilung der Hardware 11.3 Beurteilung von Gesamtsystemen 11.3.1 Funktionelle Eigenschaften 11.3.2 Leistungsbeurteilung 11.3.2.1 Benchmark-Test 11.3.2.2 Breitbandiger Belastungs-Test . . . . 11.3.2.3 Kennlinien zur Beurteilung eines Anlagentyps 11.3.3 Betriebssicherheit 11.4 Meß-Methoden 11.5 Simulation 11.6 Treibersysteme Aufgaben

239 239 240 242 242 243 243 243

Literatur Verzeichnis der verwendeten Abkürzungen Sachverzeichnis

253 259 262

246 247 249 250 250 250

1. Einführung

1.1 Prinzipieller Aufbau und Wirkungsweise von Digitalrechenanlagen

Die Idee zur Konstruktion programmgesteuerter Automaten für die Ausführung arithmetischer Rechenabläufe wurde erstmals 1823 von Charles Babbage niedergelegt. Babbage hatte an der Universität Cambridge einen Rechenautomaten geplant, der bereits wesentliche Funktionseinheiten heutiger Anlagen enthielt: Zahlenspeicher für Ausgangs-, Zwischen- und Endwerte der Rechnung, ein Rechenwerk, die Steuerung und einen Speicher zur Ablage der Programmschritte. Babbage konnte jedoch sein Konzept mit den Mitteln der damaligen Technologie nicht realisieren, und es geriet in Vergessenheit. Es verging über ein Jahrhundert, bis es zum zweiten Male erfunden wurde und dann aufgrund der besseren Technologie auch realisiert werden konnte (Rechner in Relais-Technik und später mittels Elektronenröhren). Diese frühen Anlagen wurden verbessert, wobei der entscheidendste Schritt die Einführung der Speicherprogrammierung war. Von den nachfolgend gebauten Anlagen hat die von v. Neumann, Burks und Goldstein 1946 beschriebene Anlage [1.3] aufgrund der Universalität und Vollständigkeit des Entwurfs grundlegende Bedeutung für die gesamte, weitere Rechenanlagenentwicklung erlangt. Sie wird deshalb klassischer Universalrechner genannt. Obwohl die heutigen Anlagen Modifikationen oder auch stärkere Abweichungen vom klassischen Prinzip beinhalten, hat es doch grundlegende Bedeutung für das Verständnis von Aufbau und Funktion digitaler Rechenanlagen und wird deshalb hier besprochen.

1.1.1 Der klassische Universalrechner Das Prinzip des klassischen Universalrechners zeigt, welche wesentlichen Eigenschaften und welchen strukturellen Aufbau ein Automat mindestens haben muß, um praktisch-numerische, kommerzielle, logistische u. ä. Datenverarbeitungsvorgänge erledigen zu können. Seine Funktionsprinzipien sind: (1) Er führt ein gespeichertes Programm aus, das sich aus einzelnen Befehlen zusammensetzt.

14

1. Einführung

(2) Befehle werden in gleicher Weise wie Zahlen und ggf. andere Daten in einem gemeinsamen Speicherwerk, dem „Hauptspeicher" gespeichert. (3) Der Hauptspeicher enthält eine Reihe von Speicherplätzen, die durch ihre Adressen identifiziert sind. Auf diese Adressen wird im Programm Bezug genommen, um in Speicherplätzen Information abzulegen oder den Inhalt von Speicherplätzen zu lesen. (4) Das Programm ist im Hauptspeicher unter konsekutiven Adressen a, a+ 1, a + 2, . . . gespeichert. Im allgemeinen wird nach dem Befehl im Speicherplatz mit der Adresse a der unter Adresse a+ 1, dann der unter Adresse a + 2 abgelegte Befehl usw. ausgeführt. (5) Von der in (4) festgelegten natürlichen Reihenfolge weicht der Automat nur dann ab, wenn ein sog. Sprungbefehl vorliegt. (6) Die Ausführung von Sprungbefehlen und gewissen anderen Befehlen kann einer Bedingung unterworfen werden. Ist diese nicht erfüllt, dann wird der Befehl übergangen.

Rechenwerk

Daten bzw. Befehle Steuersignale

Bild 1 - 1 . Bestandteile des klassischen Universalrechners

Die Hauptbestandteile des klassischen Universalrechners sind (s. a. Bild 1 - 1 ) : Das Rechenwerk Es dient zur Ausführung arithmetischer (z. B. +, —, •, :) und logischer (z. B. stellenweise Konjunktion, Negation) Operationen. Zur Zwischenspeicherung besitzt es — ähnlich wie Tischrechenmaschinen — drei sogenannte Register: Das universell verwendbare Akkumulator-Register (AC), das Operanden-Register (MD) und das Übertragsregister (MÜ), die jeweils ein Rechnerwort (s. u.) aufnehmen können.

1.1 Prinzipieller Aufbau und Wirkungsweise von Digitalrechenanlagen

15

Der Hauptspeicher Er ist in eine Reihe gleichgearteter Speicherplätze unterteilt, die mit je einer Adresse versehen sind. In ihnen werden die zur Rechnung nötigen Eingabedaten und das Programm abgelegt. Außerdem werden dort Zwischenergebnisse, die im Laufe der Rechnung anfallen, und schließlich die Ergebnisse des Programmlaufs abgelegt. Die durch ihre Adressen eindeutig festgelegten Speicherplätze bezeichnet man auch als Speicherzellen (kurz Zellen) und die in einer solchen Zelle enthaltene Information als Rechnerwort (kurz Wort). Das Eingabegerät Es dient dazu, Eingabedaten und das Programm in das Speicherwerk zu bringen. Das Eingabegerät ist im einfachsten Fall ein Tastenfeld. Es kann aber z. B. auch ein Lesegerät für maschinell lesbare Datenträger (Lochkarten, Magnetband, . . . ) sein. Ein Eingabebefehl transportiert den Inhalt eines Rechnerwortes. Das Ausgabegerät Es dient dazu, die im Speicherwerk abgelegten Ergebnisse des Programmlaufs auszugeben. Es gibt Ausgabegeräte, die diese Informationen direkt lesbar ausgeben (z. B. Druckwerk), und andere, die sie einem Informationsträger (z. B. Lochkarte, Magnetband) aufprägen. Ein Ausgabebefehl transportiert den Inhalt eines Rechnerwortes. Das Leitwerk Es bewirkt die Durchfuhrung der im abgespeicherten Programm niedergelegten Verarbeitungsvorgänge. Dazu besitzt es u. a. ein Befehlsregister (BR) und den sog. Befehlszähler (BZ). Der Ablauf eines Programms geschieht wie folgt: Als Startvorgang muß die Adresse e des ersten auszuführenden Befehls in den BZ eingegeben werden. Dann veranlaßt das Leitwerk das Holen des in e enthaltenen Befehls in das BR und die Durchführung dieses Befehls, indem es die entsprechenden Signale an Speicher- und Rechenwerk bzw. Eingabegerät oder Ausgabegerät absendet. Gleichzeitig wird der Inhalt von BZ um 1 erhöht. Wenn die Durchfuhrung des momentan in Bearbeitung befindlichen Befehls erledigt ist, wird wie nach dem Startvorgang verfahren (Holen des in BZ adressierten Befehls) usw. Der Sprungbefehl nimmt eine Sonderstellung ein: Wird in einem vom Speicher ins BR geholten Wort ein Sprungbefehl vorgefunden, dann werden keine Signale an Eingabegerät, Ausgabegerät und Rechenwerk abgegeben. Auch der Inhalt von BZ wird nicht um 1 erhöht. Vielmehr wird nach BZ die im Sprungbefehl angegebene Adresse gebracht. Dann wird normal (mit Holen des in BZ adressierten Befehls usw.) weiterverfahren.

16

1. E i n f ü h r u n g

Weitere Erläuterungen: Start eines Rechenprogramms Bevor das Programm gestartet werden kann, muß es in den Hauptspeicher gebracht werden. Dazu gibt es an heutigen Anlagen die verschiedensten Möglichkeiten. Eine sehr einfache, auch beim klassischen Universalrechner anwendbare Möglichkeit ist folgende: Man bringt ein einfaches, meist aus nur wenigen Befehlen bestehendes „Lese-Programm" in den Hauptspeicher, indem man das Eingabewerk von Hand steuert und nicht vom Leitwerk steuern läßt. Dieses Programm wird gestartet und liest mittels des Eingabegerätes das (zuvor z. B. auf Lochkarten abgelochte) Rechenprogramm in den Hauptspeicher. Der Stoppbefehl Neben den Sprungbefehlen ist noch ein weiterer ausgezeichneter Befehl, der sog. Stoppbefehl, erforderlich. Er dient zum Beenden des Programmlaufs und wirkt wie folgt: Kommt ein Wort, das den Stoppbefehl enthält, in das BR des Leitwerks, dann wird die Arbeit des Leitwerks beendet und kein weiterer Befehl aus dem Speicher geholt. Aufbau der Befehle Der genaue Aufbau der Befehle ist beim klassischen Universalrechner nicht festgelegt; es gibt viele mögliche Formen. Eine sehr einfache Form sei hier kurz angedeutet: Jeder Befehl ist ein Wort groß und man unterteilt das Wort in zwei Abschnitte: „Operationsteil" und „Adreßteil". Der Operationsteil stellt (ausgenommen Sprung- und Stoppbefehle) eine Verschlüsselung der vom Rechenwerk auszuführenden Operation dar, und der Adreßteil gibt (ausgenommen Sprungbefehle) die Speicheradresse eines Operanden an. Wirkung der Befehle: Die einfachsten Befehle dienen für Transporte (z. B. von einer Speicherzelle in ein Register des Rechenwerks oder von dort zu einer Speicherzelle); Operationen, die mehr als eine Variable ansprechen, werden — wie am nachfolgenden Beispiel der Addition gezeigt — behandelt: Der Additionsbefehl wird so gebaut, daß er einen Operanden in einem Rechenwerksregister (z. B. Akkumulator) erwartet, während für den anderen Operanden eine Speicheradresse anzugeben ist. Das Ergebnis legt der Additionsbefehl im Akkumulator ab. Dann sind drei Befehle zur Durchführung einer Addition nötig: Holen des einen Summanden in den Akkumulator, Addierebefehl und Abspeicherebefehl für das Resultat. Sich selbst verändernde Programme Da einerseits die Inhalte von Speicherzellen, in denen Befehle eines ursprünglich eingegebenen Programms stehen, auch als Operanden in das Rechenwerk geholt

1.1 Prinzipieller Aufbau und Wirkungsweise von Digitalrechenanlagen

17

werden können und andererseits das Rechenwerk Resultate in Speicherzellen, die Befehle des ursprünglichen Programms enthalten, ablegen kann, kann man Programme entwerfen, die sich während ihres Laufs selbst im Speicher verändern. Dies ermöglicht (über Adreßänderungen) u. a. komfortable UnterprogrammTechniken. Universalität Der klassische Universalrechner erfüllt alle Voraussetzungen zur Verwendung von niederen und hohen Programmiersprachen und für ein komfortables Unterprogramm- bzw. Prozeduren-Konzept. Externspeicher Die Konstrukteure des klassischen Universalrechners hatten richtig vorausgesehen, daß die für Hauptspeicher verwendeten Speichermedien mit schnellem Zugriff aus Kostengründen nicht so groß sein können, um alle benötigten Daten für größere Rechnungen aufzunehmen. Sie sahen daher einen weiteren billigeren Speicher vor, der genügend groß sein muß, aber einen langsameren Zugriff haben darf. Dieser (in Bild 1—1 nicht eingezeichnete) Speicher verkehrt mit dem Hauptspeicher wie ein zusätzliches Ein/Ausgabegerät und wird daher Externspeicher genannt. (Solche Externspeicher werden an fast allen heutigen Rechenanlagen verwendet.)

1.1.2 Rechner mit Ein/Ausgabe-Prozessor Die in Bild 1—1 gezeigte Rechnerstruktur findet sich heute nur noch bei den kleinsten Anlagen (z. B. speicherprogrammierbare Taschenrechner, Minicomputer, usw.) wieder. Bereits bei etwas größeren Anlagen ist man aus Leistungsgründen gezwungen, eine möglichst weitgehende Parallelarbeit zwischen Verarbeitungs- und Ein/Ausgabe-Vorgängen zu erreichen. Man sieht daher oft zur Steuerung der Ein/Ausgabe ein zweites Leitwerk, das „E/A-Leitwerk" vor, das selbständig nach dem Start durch das erste (Haupt-)Leitwerk E/A-Vorgänge anhand spezieller E/A-Befehlfolgen, die im Hauptspeicher abgelegt sind, steuern kann. Das eigentlich die Transporte ausfuhrende Organ ist ein sog. Kanalwerk. Hauptleitwerk und Rechenwerk faßt man gedanklich zu einem „Verarbeitungsprozessor" genannten Baustein zusammen. Auf der Ein/Ausgabe-Seite faßt man gedanklich das Kanalwerk mit dem E/A-Leitwerk zum „E/A-Prozessor" zusammen. Zur Koordinierung der konkurrierenden Zugriffe von Verarbeitungs- und E/A-Prozessor wird dem Hauptspeicher ein „Vorrangwerk" beigegeben. Damit ergibt sich die im Bild 1—2 dargestellte Rechnerstruktur. „Prozessor" ist darin eine Funktionseinheit, die aus einem ausführenden Organ

18

1. Einfuhrung

Verarbeitungs-Prozessor

E/A-Prozessor

Daten bzw. Befehle Steuersignale Bild 1 - 2 . Rechner mit autonomem E/A-Prozessor

(Rechenwerk bzw. Kanalwerk) und einem Leitwerk besteht. Fast alle größeren derzeitigen Rechenanlagen verwenden E/A-Prozessoren und entsprechen damit der in Bild 1—2 dargestellten Erweiterung des klassischen Universalrechners.

1.2 Unterscheidungsmerkmale von Rechenanlagen

Aus dem klassischen Universalrechner hat sich im Laufe der Zeit eine Reihe unterschiedlicher Anlagen entwickelt. Die Gründe dafür liegen u. a. im Bedarf an höherer Rechenleistung und in der Verschiedenartigkeit der Gebiete, in denen Rechner inzwischen eingesetzt werden. Im folgenden sind Merkmale zur Unterscheidung von Anlagen angegeben.

1.2.1 Konstruktionsmerkmale Interne Zahlendarstellungen Bei der Verarbeitung von Zahlen im Rechner können verschiedene interne Darstellungen (Dezimalform, Dualform, . . . ) verwendet werden. Die Dualform, bei der die Ziffern nur zwei Werte, nämlich 0 und 1, haben, wird bevorzugt ver-

1.2 Unterscheidungsmerkmale von Rechenanlagen

19

wendet. Der Grund liegt in besonders geringem Schaltungsaufwand und der daraus resultierenden besseren Zuverlässigkeit. Da zur leichteren Kommunikation mit der Anlage extern die dezimale Darstellung üblich ist, ist eine Konvertierung zwischen externer und interner Zahlendarstellung notwendig. Parallele und serielle Arbeitsweise Bei der Ausführung von arithmetischen und logischen Operationen kann die Ziffern- bzw. Zeichenfolge parallel oder seriell abgearbeitet werden. Die Verarbeitung einzelner Stellen nacheinander erfordert einen geringen Aufwand an logischen Verknüpfungselementen, ergibt jedoch nur niedere Rechengeschwindigkeiten. Die parallele, gleichzeitige Verarbeitung aller Stellen erfordert einen erheblich höheren Aufwand als die serielle Verarbeitung, führt aber zu kurzen Operationszeiten. Beide Arten können kombiniert werden wie beispielsweise bei der Serien-Parallel-Verarbeitung. Dabei werden die einzelnen Ziffern von dezimalen Zahlen nacheinander verarbeitet. Jede Dezimalziffer ist durch eine Tetrade (= Vierergruppe von Dualstellen) dargestellt, und diese vier Dualstellen werden parallel verarbeitet. Zahlen in Festpunkt- und Gleitpunktdarstellung Bei der Ausfuhrung arithmetischer Operationen mit Zahlen, die das Komma an fest vorgegebener Stelle haben, treten insbesondere bei sehr unterschiedlich großen Zahlen Probleme auf, die aus der meist festen Stellenzahl interner Zahlendarstellungen und deren Speicherungsformen kommen. Deswegen finden sich in den meisten Rechenanlagen zusätzlich oder ausschließlich Gleitpunktdarstellungen, bei denen eine fließende Anpassung an die Zahlengröße automatisch durchgeführt wird (sog. halblogarithmische Zahlendarstellung durch Mantisse und Exponent). Feste und variable Wortlänge Feste Wortlänge zieht bei unterschiedlich langen Datenelementen und Befehlen eine unvollkommene Ausnutzung des Speicherplatzes nach sich. Man kann dies vermeiden, indem man zu variabler Wortlänge übergeht. Dann wählt man als kleinste verwendete und im Speicher adressierte Einheit ein internes Zeichen (z. B. Byte) und läßt als Wortlänge alle ganzen Vielfachen dieser Einheit zu. Es ist dann aber notwendig, daß Wortanfang und/oder Wortende jeweils durch besondere Zeichen markiert werden. Diese zusätzlichen Markierungen belegen aber ihrerseits Speicherplatz, so daß die variable Wortlänge nicht immer zu besserer Speicherausnutzung führen muß. Unterschiede im Befehlssystem Für den Algorithmus, nach dem die im Speicher abgelegten Befehle abzuarbei-

20

1. Einfuhrung

ten sind, fiir den Aufbau der Befehle, die Art der Datenadressierung und für die Zahl der ggf. im Befehl enthaltenen Adressen gibt es verschiedene Möglichkeiten. Der Befehlsaufbau legt im allgemeinen bereits den Rechnergrundtypus fest und beschreibt darüberhinaus, um welche der jeweils vielen möglichen Varianten eines Grundtyps es sich handelt.

1.2.2 Technischer Aufbau Bauelemente Für den Aufbau logischer und sequentieller Schaltnetzwerke sind heute weitgehend integrierte Schaltungen üblich, bei denen eine Anzahl logischer Grundschaltkreise auf einem Chip untergebracht ist. Man unterscheidet niederen Integrationsgrad (einige logische Schaltkreise pro Chip), mittleren Integrationsgrad (etwa 102 Schaltkreise pro Chip) und hohen Integrationsgrad (bis zu 104 Schaltkreise pro Chip). Neben den Unterschieden im Integrationsgrad gibt es Unterschiede in der Schaltkreistechnologie und den verwendeten Halbleiterarten, die sich nach außen in der Schaltgeschwindigkeit und den Kosten pro Schaltkreis äußern. Speicher Bei digitalen Rechenanlagen ist eine Vielfalt von Speicherarten in Verwendung. Die wesentlichen sind Ringkernspeicher, Halbleiterspeicher, Magnetplattenspeicher, Magnettrommelspeicher und Magnetbandspeicher. Die einzelnen Speicherarten unterscheiden sich durch Zugriffszeit und maximale Speicherkapazität der damit möglichen Speicher. Unterschiedliche Strukturen von Rechenanlagen ergeben sich u. a. daraus, daß im allgemeinen mehrere Speicherarten für den Aufbau einer Hierarchie von Hauptspeichern und Externspeichern in Frage kommen. Synchrone und asynchrone Arbeitsweise Bei synchroner Arbeitsweise besteht ein zentraler Takt im Rechner, der ein Zeitraster fur alle Steuerungs- und Verarbeitungsvorgänge bildet. Im Gegensatz dazu wird bei der asynchronen Arbeitsweise der zeitliche Ablauf der Steuerund Verarbeitungsvorgänge keinem Zeitraster unterworfen. Der Ablauf ist dann im wesentlichen von den Schaltgeschwindigkeiten der Schaltkreise und von der Tatsache, daß verschiedene Operationen verschieden viele Schaltvorgänge benötigen, beeinflußt. Durch lückenlose Aufeinanderfolge von Operationen kann im asynchronen Betrieb meist eine höhere Gesamtverarbeitungsgeschwindigkeit als im synchronen Betrieb erreicht werden. Dort entstehen unausgenützte Zeitintervalle, die Verzögerungen darstellen. Ein Vorteil des synchronen Betriebes

1.2 Unterscheidungsmerkmale von Rechenanlagen

21

ist, daß sich Einzelvorgänge leichter überblicken lassen, wodurch Wartungsarbeiten und Suche der Fehler bei Störungen übersichtlicher und leichter fallen. Statische und dynamische Signalübertragung Logische Schaltkreise, Schaltnetzwerkteile oder ganze Rechnerbausteine können auf mehrere Arten zur Signalübertragung gekoppelt sein: Man kennt die statische (galvanische) und die dynamische (kapazitive oder induktive) Kopplung. Bei der statischen Kopplung zweier Einheiten ist das Eingangssignal der empfangenden Einheit stets gleich dem Ausgangssignal der sendenden Einheit. Beim Prinzip der dynamischen Kopplung ergibt sich das Eingangssignal der empfangenden Einheit aus dem Differentialquotienten des Sender-Ausgangssignals nach der Zeit, womit am Eingang des Empfängers nur Information darüber ankommt, ob und wie sich das Sender-Ausgangssignal geändert hat, nicht aber, welchen Wert es momentan hat.

1.2.3 Anwendungsarten von Rechnern Die nachfolgenden Beispiele sollen zeigen, mit welch unterschiedlichen Aufgaben digitale Rechenanlagen betraut werden können. Eine vollständige Aufzählung ist in diesem Rahmen natürlich nicht möglich. Universalrechner Diese Rechner sind so ausgelegt, daß sie sowohl für kommerzielle als auch für wissenschaftliche oder technische Aufgaben eingesetzt werden können. Die Menge der Maschinenbefehle ist so gewählt, daß alle in diesen Bereichen vorkommenden Operationen ausgeführt werden können. Die System-Software erlaubt im allgemeinen verschiedenste Verarbeitungsweisen für die ankommenden Jobs und stellt für die benötigte Menge höherer Sprachen die Compiler zur Verfügung. Weiter werden Hilfen zur leichteren Programmentwicklung gegeben. Universalrechner sind zur leichten Anpassung an verschiedenste Benutzeranforderungen sehr modular aufgebaut. Prozeßrechner Die Steuerung von Prozessen unter Echtzeitbedingungen erfordert besondere Eigenschaften von Digitalrechnern. Solche Prozeßrechner müssen Eingabedaten aus technischen Systemen aufnehmen, sie verarbeiten und die Ergebnisse (in Form von Steuersignalen) an das zu steuernde System abgeben. Entscheidend ist hierbei, daß die Antwort des Rechners in allen Fällen innerhalb einer fest vorgegebenen (meist sehr kurzen) Zeit erfolgen muß. Beispiele für Prozeßrechneranwendungen sind: Steuerung eines Zementwerkes, Steuerung einer Walzenstraße eines Walzwerkes, Steuerung des Flugweges ballistischer Flugkörper.

22

1. Einführung

Spezialrechner Für Sonderanwendungen werden digitale Rechner ggf. weitestgehend der besonderen Aufgabenstellung angepaßt. Dabei wird dann auf Eigenschaften, die für den besonderen Zweck nicht von Bedeutung sind, verzichtet. Beispiele sind: Rechner in Raumfahrzeugen zur Navigation, Rechner zur permanenten Standortbestimmung in Flugzeugen oder Rechner, die unter besonderen Umweltbedingungen (Kälte, Hitze, Druck, Erschütterungen, . . . ) arbeiten müssen.

1.2.4 Betriebsweisen Für die Art und Weise, wie Benutzeraufgaben von einer Rechenanlage abgefertigt werden können, gibt es mehrere Möglichkeiten. Welche davon eine Anlage kennt (und ggf. gleichzeitig durchführen kann), ist ein wichtiges Unterscheidungsmerkmal von Rechenanlagen. Die gebräuchlichsten Betriebsweisen sind: Teilnehmerbetrieb Den Benutzern stehen (Dialog-) Datenstationen zur Verfügung. Solche Stationen bestehen im einfachsten Fall aus einer Eingabetastatur und einem einfachen Druckwerk. Der Ablauf einer Job-Bearbeitung hat Dialogform: Der Benutzer gibt eine Steueranweisung ein, die der Rechner sofort durchführt und dann das (Teil-)Ergebnis am Druckwerk ausgibt. Größere Rechenanlagen haben häufig mehrere derartige Datenstationen, die sie quasi-simultan bedienen. Bei der Betriebsart Teilnehmerbetrieb wird von der Rechenanlage erwartet, daß sie ihre Antworten an der Datenstation in so kurzer Zeit nach der jeweiligen Eingabe abgibt, daß — von sehr rechenintensiven Teilaufgaben abgesehen — die Arbeit des Benutzers nicht besonders verzögert wird. Übliche Antwortzeiten sind 2, . . . , 15 sec. Jeder Benutzer an einer Datenstation hat den Eindruck, daß ihm der Rechner mit allen seinen Fähigkeiten allein zur Verfügung steht. Stapelverarbeitung Übergibt man einer Rechenanlage Aufgaben ohne ein Zeitkriterium für deren Fertigstellung, dann spricht man von Stapelverarbeitung. Diese Bezeichnung kommt daher, daß man im Falle mehrer zu bearbeitender Aufgaben diese „aufstapelt" und die Rechenanlage durch Entnahme der unteren Aufgaben diesen Stapel abarbeitet. Bei Rechenanlagen ohne sog. Mehrprogrammbetrieb entnimmt die Anlage jeweils die unterste Aufgabe, bearbeitet sie, gibt die Ergebnisse aus und entnimmt dann wieder die zu unterst liegende Aufgabe, während neue Aufgaben der Benutzer oben auf den Stapel gelegt werden. Liegt eine Rechenanlage mit Mehrprogrammbetrieb vor, dann bearbeitet die Anlage im Falle von n-fach-Programm-Betrieb jeweils die n untersten Aufgaben des Stapels

1.3 Die bisherige Entwicklung von Digitalrechnern

23

quasi-simultan. Bei Stapelverarbeitung kann der Benutzer (im Gegensatz zum Teilnehmerbetrieb) nicht in eine laufende Aufgabenbearbeitung eingreifen. Vielmehr müssen alle Anweisungen an den Rechner zur Beschreibung des Jobablaufes in Form von Steueranweisungen schon vorher in den Job eingebracht worden sein. Der Start und/oder die Eingabe von Jobs, die solcherart im „Stapelmodus" bearbeitet werden sollen, kann sowohl über Datenträger (z. B. Lochkarten) als auch durch direkte Eingabe von einer Datenstation aus erfolgen. Direktverarbeitung Wie beim Teilnehmerbetrieb stehen den Benutzern Dialogdatenstationen zur Verfügung, und es findet ein Dialog Mensch-Maschine statt. Während beim Teilnehmerbetrieb aber der Benutzer u. a. selbsterstellte Programme eingeben und zur Ausführung bringen kann, kann er bei Direktverarbeitung lediglich ein schon in der Anlage befindliches (dialogfähiges) Programm starten und mit diesem verkehren. Beispiel für ein solches System ist ein Platzbuchungssystem einer Fluggesellschaft; von den Datenstationen kann man nur Buchungs- und Reservierungsvorgänge abwickeln, jedoch nicht das Buchungsprogramm abändern oder gar eigene Programme eingeben. Vom Rechner wird bei Direktverarbeitung erwartet, daß er seine Antworten im allgemeinen sehr schnell (d. h. innerhalb von 1, . . . , 5 sec) gibt. Realzeitbetrieb Diese Betriebsart hat eine gewisse Verwandtschaft mit der Direktverarbeitung: Es kann nur mit einem bereits im Rechner befindlichen (dialogfähigen) Programm verkehrt werden. Jedoch sind die Teilnehmer nicht Benutzer an Terminals, sondern Ein/Ausgänge von technischen Systemen. Weiterhin gibt es für jede Art von Eingabe an den Rechner eine Zeitschranke, innerhalb derer die Antwort unter allen Umständen vorliegen muß. Der Realzeitbetrieb ist die Verarbeitungsweise, in der Prozeßrechner ihre Aufgaben zu bearbeiten haben.

1.3 Die bisherige Entwicklung von Digitalrechnern 1.3.1 Die Rechnergenerationen Die neuere Entwicklungsgeschichte wird gerne gemäß den hauptsächlich verwendeten Bauelementen in „Generationen" aufgeteilt. Obgleich die ersten Ver-

24

1. Einfuhrung

suche, digitale Rechner zu bauen, mit mechanischen Geräten im vorigen Jahrhundert begannen und sich mit der Verwendung elektronischer Relais für einfache digitale Maschinen fortsetzten, beginnt die Zählung der Generationen erst bei den elektronischen digitalen Rechenanlagen. Die ersten dieser Anlagen (Mitte der 40er Jahre entwickelt) verwendeten Elektronenröhren für den Aufbau digitaler Schaltungen, und man sieht die Elektronenröhre als das Merkmal der ersten Rechnergeneration an. Die erste Rechnergeneration umfaßt den Zeitraum ab Mitte der 40er Jahre bis Mitte der 50er Jahre. Typische Werte für große Rechenanlagen am Ende der ersten Generation sind: Interner Takt: 0 , 3 . . . 0,5 Mhz; Hauptspeicher mit ca. 10 4 Rechnerworten und 10 ms mittlerer Zugriffszeit (Trommelspeicher); Additionszeit 0,5 . . . 1ms. Im Gefolge der zunehmenden Verwendung von Halbleiterdioden und Transistoren in der Elektronik fanden diese Bauelemente ab Mitte der 50er Jahre Eingang in den Rechnerbau, womit die 2. Generation begann. Diese Rechner sind durch die Verwendung von Halbleiterschaltelementen anstelle von Röhren gekennzeichnet. Die ersten Anlagen der 2. Generation wiesen ähnliche typische Leistungsmerkmale wie die letzten Anlagen der 1. Generation auf. Der Grund für die Verwendung von Halbleitern lag zunächst darin, daß ein wesentlich kompakterer Aufbau, geringerer Strombedarf und höhere Zuverlässigkeit der Rechenanlagen erreicht wurden. Die Schaltgeschwindigkeit der Schaltkreise wurde aber bald erheblich gesteigert, und die Rechenleistung stieg innerhalb der zweiten Generation um mehr als eine Größenordnung. Typische Werte für große Rechenanlagen am Ende der zweiten Generation sind: Interner Takt: 2 . . . 4 Mhz; Hauptspeicher mit ca. 10 5 Rechnerworten und 1 ns Zykluszeit (Ringkernspeicher); 0 , 3 - 1 0 6 Maschinen-Operationen pro sec (Maschinenoperationen im Sinne des klassischen Universalrechners). Durch den Aufbau ganzer Schaltungsgruppen in integrierten Schaltkreisen zeichnete sich Mitte der 60er Jahre der Beginn der 3. Rechnergeneration ab. Die neue Technologie brachte noch kompakteren Aufbau, geringeren Strombedarf, höhere Zuverlässigkeit und größere Rechenleistung. In der seit Beginn der 3. Generation vergangenen Dekade wurde die Rechenleistung wiederum um eine Größenordnung erhöht, und typische Werte für die heutige Großrechenanlage sind: Interner Takt: 20 Mhz; Hauptspeicher mit 0,5 • 10 6 Rechnerworten und 0,5 ßs Zugriffszeit (Halbleiterspeicher); 3 • 10 6 Maschinenoperationen pro sec (Maschinenoperationen im Sinne des klassischen Universalrechners). Parallel zur Steigerung der Leistungsfähigkeit der Hardware vollzog sich die Entwicklung dessen, was heute Software genannt wird. Der Startpunkt war die Entwicklung von Unterprogrammtechnik und Assemblersprachen bei den Anlagen der ersten Generation. Höhere Programmiersprachen und ihre Compiler

25

1.3 Die bisherige Entwicklung von Digitalrechnern

wurden ab Mitte der 50er Jahre zunehmend entwickelt und verwendet. Betriebssysteme wurden bei den Anlagen der ersten Generation noch nicht, dann aber zunehmend verwendet und weiterentwickelt. Heute üblich sind leistungsfähige Betriebssysteme mit guten Möglichkeiten zur Verwaltung aller Betriebsmittel (Rechenwerke, Speicher, periphere Geräte, Software-Komponenten wie Compiler usw.), zur Verwaltung großer Datenmengen und mit vielfältigen Möglichkeiten der Datenfernverarbeitung. Es ist im jetzigen Zeitpunkt noch nicht klar ersichtlich, auf welchen Zeitpunkt die Ablösung der 3. Generation durch eine vierte zu datieren sein wird. Soweit erkennbar, ist in einer 4. Generation nicht so sehr eine neue Technologie als vielmehr eine neue Architektur von Hardware und Software zu erwarten. Diese wird Anlagen ermöglichen, die stärker als die jetzigen dem menschlichen Verhalten angepaßt sind und damit leichter und bequemer zu benutzen sind. Weiterhin ist für Hardware und Software eine Struktur zu erwarten, die die immer komplexer werdenden Systeme für Konstrukteur und Benutzer überschaubar hält. ii DM/Bit 30--

10-

3ECL-Speicher

10,3

TTL-Speicher

0,1 Ringkern-Speicher 0,03-

' MOS-Speicher

0,01--

65

66 67 68 69 70 71 72 73

Bild 1 - 3 . Preisentwicklung bei Hauptspeichermedien

74 75

Jahr

26

1. Einführung

1.3.2 Die Entwicklung von Speichern, Rechenwerksleistung und der Kosten für Rechenarbeit Aus Kostengründen findet man in heutigen Rechenanlagen nicht die gesamte benötigte Speicherkapazität im Hauptspeicher vereinigt. Vielmehr verwendet man ein hierarchisch gestuftes System verschiedener Speichermedien. Dabei wird der (teuere) Hauptspeicher nur so groß gemacht, wie für effektiven Anlagenbetrieb unbedingt nötig ist. Weiterer Speicherplatz wird durch Externspeicher abgedeckt, wofür man im allgemeinen magnetomotorische Speicher (Platten, Trommeln, Band) verwendet, die billiger sind. Die Entwicklung zeigt, daß die Kosten für Hauptspeicher durch Weiterentwicklung (allerdings mit zunehmendem Stand der Technologie des jeweiligen Speichermediums immer langsamer) sinken. Dies ist in Bild 1—3 für die heute in Hauptspeichern üblichen Technologien dargestellt. In Bild 1—4 sind Speicherkapazität, Zugriffszeit und Kosten für die heute üblichen Speicherarten dargestellt. Man sieht drei Gruppen, die sich in allen

102

10"

106

10"

1010

Speicherkapazität [Bits] Bild 1 - 4 . Speicherkapazität, Zugriffszeit und Preise (gem. dem Stand von 1974)

1.3 Die bisherige Entwicklung von Digitalrechnern

27

Kriterien deutlich unterscheiden: (1) Kern-, MOS-, Bipolar-Medien (für Hauptspeicher), (2) Plattenspeicher und (3) Magnetbandspeicher (je für Externspeicher). Rechenanlagen verzeichnen seit der 1. Generation eine stetige Leistungszunahme um etwas mehr als eine Größenordnung pro Dekade. Dies liegt (neben einer ständigen Verkürzung der Zugriffszeiten der Hauptspeicher) an der Verwendung

Bild 1 - 6 . Kosten für 1 Million Rechenoperationen im Fall gemieteter mittelgroßer Rechenanlagen

1. Einführung

28

schnellerer logischer Schaltkreise und an verbesserten Rechnerstrukturen. Diese Entwicklung soll durch Betrachtung der Additionszeit von jeweils für ihre Zeit typischen großen Rechenanlagen verdeutlicht werden (siehe Bild 1—5). Eine weitere interessante Tatsache ist, daß sich die fortschreitende Entwicklung bei Rechenanlagen darin äußert, daß die Kosten für die Durchführung einer Rechenarbeit (z. B. eines Programmes für eine bestimmte Rechnung) sinken. Dies soll an einem Diagramm verdeutlicht werden, in dem die Kosten für die Durchführung von 1 Million Rechenoperationen (Rechenoperation = Maschinenoperation im Sinne des klassischen Universalrechners) seit 1950 angegeben sind (s. Bild 1 - 6 ) . Der Kostenermittlung sind mittelgroße gemietete Rechenanlagen zugrunde gelegt.

Aufgaben 1. Man erstelle ein funktionsfähiges Modell für den klassischen Universalrechner gemäß Büd 1 - 1 , indem man wie folgt vorgeht: Als Rechenwerk verwende man einen elektronischen Taschenrechner. Den Hauptspeicher mit z. B. 50 Zellen stelle man durch ein Blatt Papier dar, das in 50 Felder unterteüt ist; die Felder werden ab Null durchnumeriert (Adressen); einzuspeichernde Zahlen werden mit Bleistift in die Zellen eingeschrieben, wobei evtl. vorhandene alte Inhalte zu löschen (auszuradieren) sind. Das Leitwerk wird vom Leser selbst realisiert, wobei für BR und BZ Felder auf einem Blatt Papier (wie für die Hauptspeicherzellen) verwendet werden. 2. Man entwerfe ein Programm, das mittels des Rechners von Aufgabe (1) die Rechnung A = (B/D) * (B+C) leistet. Man führe das Programm auf dem Rechner durch. K L 3. Ein Programm, das Y = Z Xi 2 zj i=l J=i . berechnet, soll für den Rechner von Aufgabe (1) entworfen werden. Es soll aus möglichst wenigen Befehlen bestehen (Verwendung bedingter Sprungbefehle!). Man bringe es für kleine Werte von K, L auf dem Rechner von Aufgabe (1) zur Ausführung.

// /

4. Man mache sich (ggf. unter Verwendung der bisherigen Beispiele) folgende Tatsachen klar: a) Bei einem Programm, das in einem zusammenhängenden Bereich von Adressen abgelegt ist, muß der als erster auszuführende Befehl nicht notwendig der statisch erste Befehl (d. h. derjenige mit der kleinsten Adresse) sein. b) Analog dazu muß der letzte auszuführende Befehl nicht der statisch letzte (d. h. derjenige mit der höchsten Adresse des Programmbereichs) sein.

1.3 Die bisherige Entwicklung von Digitalrechnern

29

c) Ein Programm muß nicht in einem einzigen zusammenhängenden Bereich von Adressen abgelegt sein, sondern kann über mehrere solcher Bereiche verteilt sein. 5. Man bestimme, wievielen Seiten einer üblichen Tageszeitung das Fassungsvermögen des Hauptspeichers einer heutigen Großrechenanlage (ca. 2 Millionen Bytes) und das eines großen Wechselplattenspeichers (ca. 100 Millionen Bytes) entspricht. 6. Die größte zulässige lineare Abmessung der Zentraleinheit einer Rechenanlage ergibt sich daraus, daß die Laufzeit für elektrische Signale über eine solche Entfernung unterhalb einer Taktzeit liegen muß. Die obere Geschwindigkeitsgrenze für die Fortbewegung elektrischer Signale ist die Lichtgeschwindigkeit. Man bestimme daraus die größte zulässige Linearabmessung der Zentraleinheit eines Rechners mit einem internen Takt von 1, 10, 20, 50, 100, 200, 500 und 1000 Mhz.

2. Zahlendarstellung und arithmetische Operationsabläufe

2.1 B-adische Zahlensysteme und Stellenschreibweise Die allgemein eingeführte Schreibweise von Zahlen, das Dezimalsystem, stellt die Kurzschreibweise für eine Summe dar. Die einzelnen Summanden ergeben sich aus der jeweiligen Ziffer, multipliziert mit dem Stellenwert. Der Stellenwert wird nicht niedergeschrieben, sondern ergibt sich vereinbarungsgemäß mit nach links aufsteigenden Zehnerpotenzen mit ganzzahligem Exponenten. Die Stelle mit dem Stellenwert 10° = 1 wird durch den Dezimalpunkt hinter der Ziffer markiert. Dieser kann auch entfallen, wenn nach rechts keine weiteren Ziffern folgen. Die eindeutige Zuordnung der Ziffern zu den Stellen ist nur möglich, indem man die Null als Ziffer zuläßt. So bedeutet ausfuhrlich 125 = 1•10 2 + 2-10 1 + 5-10°. Charakteristisch daran ist, daß sich der Stellenwert von Stelle zu Stelle um einen festen Faktor (nämlich 10) unterscheidet. Das Dezimalsystem ist dem Zähler mit 10 Fingern optimal angepaßt. Diese Darstellung läßt sich verallgemeinern.-Die Zahl a kann allgemein dargestellt werden in der Form a=2aiBi,

(2.1.1)

i=-m

wobei B „Basis des Zahlensystems" heißt. Zahlensysteme, in denen die Zahl zur Darstellung nach Potenzen zu einer Basis B zerlegt wird, heißen B-adische (oder auch polyadische) Zahlensysteme. Zur einfachen Schreibweise werden nur die Ziffern ai niedergeschrieben (Ziffernschreibweise, Stellenschreibweise). Die Stelle mit dem Stellenwert B° wird durch einen Punkt oder ein Komma hinter der Ziffer markiert. Da maschinell nur endlich viele Stellen verarbeitet werden können, erhält man für die Zahl a die Schreibweise a = (a n ... ai ao . a_i a . 2 . . . a . m )

B

.

(2.1.2)

Die Kennzeichnung der Basis B entfällt, wenn darüber kein Zweifel herrscht.

2.1 B-adische Zahlensysteme und Stellenschreibweise

31

Nullen am Rand können bis zur Ziffer a 0 entfallen, weil hierdurch die eindeutige Zuordnung der Ziffern zu den Stellenwerten nicht in Frage gestellt wird. Zur Darstellung einer Ziffer werden B verschiedene Zeichen benötigt. Für B = 2 benötigt man also zwei verschiedene Zeichen. Für eine zweiwertige Logik und Speicherelemente mit zwei verschiedenen Zuständen ist dieses Zahlensystem optimal geeignet. Man nennt es Dualsystem. Daneben haben noch Zahlensysteme eine große Bedeutung, deren Basis selbst eine Zweierpotenz mit ganzzahligem Exponenten ist, da diese aus dem Dualsystem durch Zusammenfassen von mehreren Dualstellen zu einer einzigen Stelle entstehen (vgl. Bild 2—1). Es sind dies vor allem das Oktalsystem mit B = 8 und das Hexadezimalsystem mit B = 16. Da es für die Zahlen zehn, elf, . . . , fünfzehn keine Ziffern gibt, verwendet man häufig dafür die Symbole 10 = A 11 = B

15 4 F. Damit erhält man für die Zahlen Null bis siebzehn in den verschiedenen Zahlensystemen die Darstellung gemäß Bild 2—1. Basis B = 2

8

10

16

1 1 °l Nil 11 1 0 1 11 i i 111001 1 lioi 1 11 1110 I

0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11

'1111

lilooo I .1001 |l|010 ,1,011

lilioo 1 Ii 101 I lllliol lllllll 10,0001

i|o|ooi |

I^j—j-eine *

Ziffer im Oktalsystem

eine Ziffer im Hexadezimalsystem

Bild 2—1. Darstellung der Zahlen 0 bis 17 in verschiedenen Zahlensystemen

32

2. Zahlendarstellung und arithmetische Operationsabläufe

Wesentlicher Gedanke bei der Einführung der Zahlensysteme ist, die arithmetischen Grundoperationen (Addition, Subtraktion, Multiplikation, Division) auf Operationen mit Ziffern zurückzuführen. Darauf basieren die Rechenregeln zur Durchführung der Grundrechenarten, die für das Dezimalsystem allgemein geläufig sind und die Grundlage für den im täglichen Leben nötigen Umgang mit Zahlen bilden. So wird z. B. eine Summe durch stellenweises Summieren bestimmt. Diese Rechenregeln lassen sich auf beliebige B-adische Zahlensysteme verallgemeinern und bilden so die Grundlage für das Rechnen in beliebigen B-adischen Zahlensystemen, z. B. im Dualsystem. Neben den B-adischen Zahlensystemen gibt es noch andere Zahlensysteme (z. B. Restklassensysteme), in denen sich einzelne Operationen (z. B. Multiplikation) wesentlich einfacher durchfuhren lassen. In diesen Systemen sind einzelne Operationen (z. B. Division) nicht mehr eindeutig durchführbar; auch stößt die Konvertierung ins Dezimalsystem auf Schwierigkeiten. Deswegen haben diese Zahlensysteme keine Bedeutung erlangt. Die Rechenregeln in B-adischen Zahlensystemen basieren auf einigen wichtigen Eigenschaften dieser Zahlensysteme, die im folgenden für positive Zahlen näher betrachtet werden sollen. Unter Beachtung der Vorzeichenregeln gelten diese auch für die negativen Zahlen. Da der Stellenwert durch ganzzahlige Potenzen der Basis B gebildet wird, ändert sich dieser von rechts nach links um den Faktor B. Daraus folgt, daß eine Zahl mit B multipliziert wird, indem man deren Ziffern gegenüber den ursprünglichen Stellenwerten um eine Stelle nach links verschiebt. Ein Verschieben nach rechts bedeutet eine Multiplikation mit B" 1 . Dies ist der Division durch B äquivalent. In der Darstellung gemäß Gleichung (2.1.2) bedeutet dies: ( a n - - - ai a 0 . a-i a_2 - - - a . m ) - B = ( a n - - - a 1 a 0 a - i • a- 2 - - - a . m ) (a n .. . a ^ o . a - ! a - 2 - - - a . m ) : B = ( a n - - - a i ,aoa-ia_ 2 - - - a _ m )

(2.1.3a) (2.1.3b)

Der Punkt zur Kennzeichnung des Stellenwertes B° hat sich innerhalb der Ziffernfolge verschoben. Als Beispiel sind diese Operationen für die Zahl 10.25 in verschiedenen Zahlensystemen durchgeführt. Dezimal (B = 10) (10.25)i O -(10) l o = ( 1 0 2 . 5 ) l o (10.25) l o : (10)io ~ (1.025) l o Dual

(B = 2) (1010.01)2

(10)2 = (10100.1)2

(1010.01)2 :(10)2 = (101.001)2

Hexadezimal (B = 16) (A.4) 1 6 -(10) 1 6 = (A 4)i 6 (A.4) 16 :(10)i 6 = (0.A4)I 6

33

2.1 B-adische Zahlensysteme und Stellenschreibweise

Man beachte dabei, daß Multiplikator bzw. Divisor stets die Basis des Zahlensystems ist. Die Ergebnisse stellen daher nicht gleiche Zahlen in den verschiedenen Zahlensystemen dar. Es kann vorkommen, daß das Ergebnis der Operation mit den Ziffern zu einem Stellenwert selbst nicht mehr als Ziffer darstellbar ist. Z. B. ist das Ergebnis der Addition der Ziffern 5 und 9 im Dezimalsystem nicht mehr als einzelne Ziffer darstellbar. Es muß dann zerlegt werden in einen Teil, der als Ziffer an der betreffenden Stelle verbleibt, und in einen Teil, der als Korrektur bei den übrigen Stellen mit verarbeitet werden muß. Dies bedeutet, daß ein vollkommen getrenntes Verarbeiten der einzelnen Stellen nicht möglich ist. Es läßt sich jedoch zeigen, daß die Korrektur in einer endlichen Anzahl von Operationen durchgeführt werden kann, bei denen nur benachbarte Stellen zu verknüpfen sind. Maßnahmen zur Durchführung der Korrekturen beeinflussen die Arbeitsgeschwindigkeit und die Kosten für Rechenwerke entscheidend (vgl. Abschnitt 3). Als wichtigster Fall soll der Stellenübertrag bei der Addition näher behandelt werden. Es sollen die Zahlen a und b addiert werden. Sie werden, beginnend mit der niedrigstwertigen Stelle, stellenweise addiert. Für die Summe der Ziffern an der Stelle i mit der Wertigkeit B1 wählt man die Zerlegung a; + bj = Cj • B + Sj; 0 < Sj < B ; Cj ganzzahlig

(2.1.4)

Diese Zerlegung ist eindeutig. Ist aj + bj < B, so ist Cj = 0. Gilt dies für alle Stellen, so stellt der Wert von Sj die Ziffer des Ergebnisses an der Stelle i dar. Beispiel (B = 2) (10110) 2 + (01000) 2 (111 10) 2 Ist c, * 0, so bilden die Werte von s; nur die Ziffern eines Zwischenergebnisses. Um Cj - B in Gleichung (2.1.4) zu berücksichtigen, addiert man cj an der Stelle mit der Wertigkeit B i + 1 zum Zwischenergebnis. Man bezeichnet Cj daher als Übertrag in die Stelle mit der nächsthöheren Wertigkeit. Addiert man nur zwei Summanden gleichzeitig, so ist q < 1, da wegen a;, bj < B stets aj + bj < 2B gilt. Beim Entwurf von Rechenwerken ist dies der häufigste Fall. Bei der Korrekturaddition des Übertrages kann in der Stelle i + 1 erneut ein Übertrag entstehen, der eine weitere Korrekturaddition erforderlich macht. Ein Übertrag kann sich so über eine Reihe von Stellen fortpflanzen.

2. Zahlendarstellung und arithmetische Operationsabläufe

34

Beispiel (B = 2) (01110) 2 + (01010) 2 +

00100 1010

1. Zwischensumme Übertrag

+

10000 0100

2. Zwischensumme Übertrag

11000

Ergebnis

Die Verknüpfung der Ziffern einer Stelle der Operanden ist bei der Addition in B-adischen Zahlensystemen unabhängig vom Stellenwert. Man braucht daher die Lage des Dezimal- oder Dualpunktes bei der Durchfuhrung nicht zu kennen. Dies gilt nicht für beliebige Zahlensysteme in Stellenschreibweise. Davon kann man sich leicht am Beispiel der üblichen Schreibweise von Zeitangaben in Stunden, Minuten und Sekunden überzeugen. Minuten-Einer müssen in anderer Weise addiert werden als Minuten-Zehner, da die Wertigkeit von Minuten-Einer zu Minuten-Zehner um den Faktor 10, von Minuten-Zehner zu Stunden-Einer dagegen um den Faktor 6 zunimmt. Der beschriebene Algorithmus zur Addition zweier Zahlen ist für das Rechnen im Dezimalsystem allgemein bekannt. Ähnlich wie diese Verallgemeinerung für Zahlensysteme mit beliebiger Basis lassen sich auch die Rechenregeln für Multiplikation und Division für polyadische Zahlensysteme mit beliebiger Basis verallgemeinern. Da B-adische Zahlensysteme Polynome der Basis B darstellen, kann man das Horner-Schema zur Berechnung von Polynomwerten anwenden. Man erhält an Stelle von Gleichung (2.1.1) die Darstellung a = 2 " a i - B ^ B " " 1 ( a . m + B ( a . m + , + - - - + B ( a n . , +B- a n ) - ~ ))

(2.1.5a)

i=-m

a = B n (a n + B"1 (a n _, + - - - + B"1 ( a . m + , + B"1 a . m ) - - - ) )

(2.1.5b)

Die Koeffizienten im Horner-Schema sind mit den Ziffern der Zahlendarstellung identisch. Die Faktoren B"m in Gleichung (2.1.5 a) bzw. B n in Gleichung (2.1.5b) geben die Lage der Stelle mit der Wertigkeit B° = 1 innerhalb der Ziffernfolge an, also von Dezimal- bzw. Dualpunkt. Da man ein besonderes Kennzeichen für den Punkt innerhalb der Rechenwerke vermeiden möchte, vereinbart man eine feste Lage innerhalb der Ziffernfolge (Festkommazahlen). Dabei gibt es zwei ausgezeichnete Lagen. Setzt man in Gleichung (2.1.1) bzw. (2.1.5) m = 0, so erhält man ganze Zahlen. Der Faktor B~m in (2.1.5a) ist dann eins. Der Punkt liegt ganz am rechten Ende hinter der Ziffernfolge. Setzt man

35

2.1 B-adische Zahlensysteme und Stellenschreibweise

n = - 1 , so erhält man Zahlen, die kleiner als eins sind, also echte Brüche. Der Punkt liegt ganz links vor der Ziffernfolge, und der Faktor B n in Gleichung (2.1.5b) ist B"1 . Die Darstellung gemäß Gleichung (2.1.5) bildet die Grundlage für die Rückführung der Multiplikation auf stellengerechte Addition. Da man die Faktoren B"m bzw. B n abspalten kann, kann die Multiplikation zunächst ohne Rücksicht auf die Lage des Punktes zur Kennzeichnung der Stellenwertigkeit innerhalb der Ziffernfolge durchgeführt werden. Dieser kann nachträglich korrekt gesetzt werden. Man kann sich daher auf die Sonderfälle mit m = 0 bzw. n = —1 beschränken. Für den Aufbau von Rechenwerken sind dies die wichtigsten Fälle. Das Ergebnis hat im allgemeinen so viele Stellen wie die beiden Operanden zusammen. Dies folgt aus der Summendarstellung der beiden Operanden a und b: aj • B'; b = z " b bj • B'

a= i=-m a

(2.1.6)

i=-mb

Bei der Multiplikation muß jeder Summand von a mit jedem Summanden von b multipliziert werden. Die höchste Wertigkeit im Produkt ist daher B n a + " b , die niedrigste B " m a " m b . Die Zahlenspeicher im Rechenwerk (Register) müssen für die Aufnahme des gegenüber den Operanden doppelt langen Ergebnisses geeignet sein. Zur Durchführung der Multiplikation sei der erste Faktor dargestellt in der Form a = 2

i=-m

-ai-B'

(2.1.7)

Den zweiten Operand schreibt man in der Form b = B"m (b_ m + B (b_ m + 1 + — + B ( b n . 1 + B - b n ) - - ) )

(2.1.8a)

b = B« (b n + B- 1 (b n _i + — + B" 1 (b_ m + , + B"1 • b^n) - - ) )

(2.1,8b)

bzw.

Die Abarbeitung der Klammern erfolgt für die Darstellung gemäß Gleichung (2.1.8a) nach dem Schema a b = ( Z i=-m

ai

• Bi).(B-m (b. m + B ( b . m + 1 + — t B O » ^ +B • b n ) - )

= ( — ((anBn+ — + a_mB-m)-bn +

(an

n

B m

B + - - - + a_m B" ) • b n . i )

B

+

(2.1.9a)

( a n B n + - - - + a_m B"m ) • b_ m ) • B"1

2. Zahlendarstellung und arithmetische Operationsabläufe

36

Im Gegensatz zur gewohnten Ausführung der Multiplikation werden die Klammern von innen nach außen abgearbeitet und die Zwischensumme mit B multipliziert (Schiften um eine Stelle nach links). Dies ist zweckmäßig, da gewöhnlich nur zwei Summanden gleichzeitig verarbeitet werden können und nur das Ergebnisregister auf die doppelte Anzahl von Stellen nach links verlängert ist, so daß die Multiplikationen mit B nur dort, und nicht im Operandenregister durchgeführt werden können. Für die Darstellung gemäß Gleichung (2.1.8b) erfolgt die Abarbeitung analog. Anstelle der Multiplikation mit B erfolgt eine Multiplikation mit B~" (Schiften um eine Stelle nach rechts). Das Ergebnisregister muß nach rechts verlängert werden. Man erhält das folgende Schema a• b = ( 2

3i

• B j ) • (B n (b n + B- 1 (b n .[ + --- + B - 1 ( b . m + , + B 1 • b . m ) - - ))

i=-m

(anBn + -

= (•••(

+ a.mB-m).b.m-B-1

(anBn+--- + a . m B " m ) b . m + 1 )

+ +

B"1 (2.1.9b)

+ (a n • B" + - - - + a_ m B" m ) • b n )

• Bn

Für die Sonderfälle m = 0 (ganze Zahlen) und n = —1 (echte Brüche) steht der Punkt zur Kennzeichnung der Wertigkeit B° = 1 des Ergebnisses wie bei den Operanden ganz rechts hinter der Ziffernfolge bzw. ganz links davor. Deswegen werden diese Sonderfälle bevorzugt. Die Verwendung von echten Brüchen bringt noch den Vorteil daß das Ergebnis stets kleiner als jeder der beiden Operanden ist. Das doppelt lange Ergebnis kann dann leicht durch Rundung auf die ursprüngliche Länge verkürzt werden. Beispiele (1) Ausfuhrung gemäß Gleichung (2.1.9a) der Aufgabe 326 • 215 im Dezimalsystem. Stellenwert:

105

1 04

1 03

6 6

1 02

1 01

10°

3 3

2 2

6 6

Multiplikation von 326 mit 2 durch wiederholte Addition

6

5

2

5 3

2 2

Multiplikation mit B= 10 durch Schiften nach links

6

Addition des Produktes

8

4

6

1 • 326 zum Zwischenergebnis

37

2.1 B-adische Z a h l e n s y s t e m e u n d Stcllenschrcibweise

0

4 3 3 3 3 3

6 2 2 2 2 2

6 6 6 6 6

Multiplikation mit B= 10 Addition des Produktes 5 • 326 zum Zwischenergebnis

0

9

0

Ergebnis

(2) Ausführung gemäß Gleichung (2.1.9b) der Aufgabe 0.750 • 0.375 im Dualsystem. (0.750)i O = (0.110) 2 ; (0.375) l o = (0.011) 2 Stellenwert:

1

2'1

V2

1

1

0

1 1

1 0

^

0

1

0 0

0

2" 3

2"*

2'5

Tb

(0.110) 2 • 1 Multiplikation mit B = 2 durch Schiften nach rechts Addition von (0.110) 2 • 1

1 0

0 0

0 0

1

1

0

0

1

0

1

0

0

1

Multiplikation mit B"1 Addition von (0.110) 2 0

Multiplikation mit B Ergebnis

0

_1

An dieser Stelle wird auch der Vorteil des Dualsystems deutlich. Da nur die Ziffern 0 und 1 auftreten, so ist bj entweder 0 oder 1, d.h. das Produkt einer Zahl mit einer Ziffer ist entweder Null oder die Zahl selbst. In anderen Zahlensystemen ist zur Bildung dieses Produktes entweder eine wiederholte Addition oder die Benutzung einer Multiplikationstafel („kleines Einmaleins") nötig. Die Division wird als Umkehrung der Multiplikation durchgeführt. Man muß den Dividenden in eine Form zerlegen, wie das Ergebnis der Multiplikation gemäß Gleichung (2.1.9a) bzw. (2.1.9b) dargestellt ist. Die Faktoren b, bilden dann die Ziffern des Quotienten. Diese Zerlegung wird rekursiv durch Subtraktion durchgeführt. Es sei vereinbart, daß Dividend c und Divisor d kleiner als eins sind: c, d < 1. Da das Ergebnis für d -> 0 unbeschränkt wächst, ist es zweckmäßig zu fordern, daß d > c ist. Das Ergebnis liegt dann im gleichen Intervall wie die Operanden und ist damit im Ergebnisregister darstellbar, ohne daß die Stellenwertigkeit geändert werden muß. Die Division beginnt bei der Ermittlung der höchstwertigsten Quotientenstelle q_i mit der Wertigkeit B" 1 . Dazu dient die Zerlegung c = d-q-1-B'1 +rf ,

(2.1.10)

38

2. Zahlendarstellung u n d a r i t h m e t i s c h e O p e r a t i o n s a b l ä u f e

• B < d gelten wobei q_i die Werte 0, - - - , (B—1) annehmen kann u n d 0 soll. Die Zerlegung ist dann eindeutig. Der Ausdruck d • q_! • B~' entspricht der letzten Zeile in Gleichung (2.1.9b), während rf die übrigen Zeilen der rechten Seite umfaßt. An Stelle von (2.1.10) kann man auch schreiben B • c = d • q_i + r* • B .

(2.1.11)

Zur Ermittlung der zweiten Quotientenstelle dient entsprechend die Zerlegung B 2 • rf = d • q - 2 + r* • B ,

(2.1.12)

wobei ebenfalls die Einschränkung 0 < i* • B < d gelten soll. Damit erhält man die Rekursionsformel B-rj.! = d - q - i + q ; i = l , - - - , m r0 = c

(2 1 1 3 )

Zur Ermittlung von q_! wird versuchsweise 0, 1, 2, - - - , (B—1) gesetzt, bis r, im geforderten Bereich liegt. Es werden dafür verschiedene Varianten benutzt. Die häufigste Methode ist, die Versuche abzubrechen, sobald r; negativ geworden ist, und dann um eins zu erniedrigen. Der korrekte Rest q m u ß mit diesem Wert neu berechnet werden. Die rekursive Berechnung der gemäß Gleichung (2.1.13) wird mit i = m beendet, und es verbleibt im allgemeinen beim letzten Schritt ein Rest r m . Dies ist unvermeidbar, da die Division als inverse Operation der Multiplikation nur im Raum der rationalen Zahlen eindeutig lösbar ist. Da in Datenverarbeitungsanlagen nur Zahlen mit endlich vielen Stellen dargestellt werden können, ist nur eine Teilmenge der rationalen Zahlen darstellbar. Die Division besteht also in der Bestimmung der Zahlen q (Quotient) und r (Rest) gemäß der Gleichung m

c = d • 2 q.j • B"' + r ; r < B" m , i=l

(2.1.14)

wobei zwischen dem Rest r in Gleichung (2.1.14) und dem Rest r m beim letzten Rekursionsschritt gemäß Gleichung (2.1.13) die Beziehung besteht r = r m • B" m

(2.1.15)

Beispiel Lösung der Aufgabe 0 . 5 0 0 : 0.750 im Dualsystem. (0.500)io = ( 0 . 1 0 0 ) 2 ; (0.750)io = (0.110) 2 2°

2'1

2" 2 2" 3

0

1

0

0

Multiplikation des Dividenden mit B Subtraktion von Divisor d; da

1

0 1

0 1

0 0

Ergebnis positiv, ist q_i = 1.

0

0

1

0

Stellenwert 1. Rekursionsschritt:

1 Der Komplementbegriff und negative Zahlen

Rekursionsschritt: Multiplikation des Restes ri mit B Subtraktion von Divisor d; da Ergebnis negativ, ist q_2 = 0. Addition

Subtraktion von Divisor d; da Ergebnis positiv, ist q_ 3 = 1.

1 1

0 1

0 0

-

0

0 1

1 1

0 0

0

1

0

0

1

0 1

0 1

0 0

0

0

+

von d, um den Rest r 2 zu erhalten. Rekursionsschritt: Multiplikation des Restes r 2 mit B

0 -

-

1 0

Man erhält q = (0.101) 2 und r = (0.000010) 2 .

2.2 Der Komplementbegriff und negative Zahlen Die Subtraktionsaufgabe x—y kann durch die algebraische Identität x—y = x + (C—y) — C

(2.2.1)

umgeformt werden. Gelingt es dabei, die Operationen (C—y) und (x + ( C - y ) ) —C besonders einfach durchzuführen, so kann man an Stelle der Subtraktion x—y besser die Addition x + (C—y) durchführen und dafür das vorhandene Addierwerk benutzen. Unter diesem Gesichtspunkt kann man für C entweder die kleinste bei der festen Stellenlänge L nicht mehr darstellbare Zahl oder die größte noch eben darstellbare Zahl verwenden. Es wird dann die Operation (x + (C—y)) — C bzw. C—y besonders einfach. Im folgenden sind beide Möglichkeiten einander gegenübergestellt. Durch die Transformation K(y) = C - y

(2.2.2)

wird der Zahl y die Zahl K(y) zugeordnet, die Komplement der Zahl y heißt. Eine Festkommazahl mit fester Stellenlänge L wird durch die Gleichung (2.1.1) dargestellt: n

y=2

yi • B ' ; L = m + n + 1 .

(2.2.3)

i=-m

Wählt man für C die kleinste nicht mehr darstellbare Zahl B n + 1 , so erhält man die Definitionsgleichung für das B-Komplement: K b (y) = B N + 1 - y .

(2.2.4)

40

2. Zahlendarstellung und arithmetische Operationsabläufe

Für ganze Zahlen ist n+1 = L, da m = 0 ist. Wendet man Gleichung (2.2.4) nur auf eine Ziffer y, an (0 < y , < B—1), so erhält Gleichung (2.2.4) die Form KR (Vi) = B -

yi

,

(2.2.5)

und man bezeichnet Kg (yj) als Ziffernkomplement. Von der Darstellung des Ziffernkomplementes leitet sich die Bezeichnung B-Komplement her. Es gilt: 0 < K b (yj) < B - l

für 0
bj gespeichert ist (aj bj entspricht dem Ausgang S, des Halbaddierers von Büd 3-22). Takt

Takt

Bild 3 - 2 3 . Vergleichsschaltung für A > B und A < B, sowie A = B im Serienvergleich

3.3.2 Parallelvergleich Die Inhalte zweier Register A und B sind auf A = B, A < B und A > B zu überprüfen und die Ergebnisse durch entsprechende logische Schaltungen anzuzeigen. Beschränken wir uns auf zwei duale Stellen, so läuft sich die in Bild 3 - 2 4 gezeigte Wertetabelle angeben (A = a 0 ) ai, B = b 0 , bi). Aus dieser Wertetabelle lassen sich die zugehörigen Schaltfunktionen ermitteln. Als Beispiel sei die Funktion F für A = B angegeben: F = a 0 b 0 a i b j + aoboaibi + a 0 b 0 a i b i + aob 0 aibi F = aoboiaib! + a j b i ) + a 0 b 0 ( a i b i + aibi) F = (aibi + aibi) (aobo + a 0 b 0 ) Die zugehörige Schaltung ist in Bild 3—25 dargestellt.

79

3.3 Vergleichswerke a

o 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

b0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

a, 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

b, 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

A>B

A=B

A B und A < B können entsprechende Schaltungen angegeben werden.

3.3.3 Parallelvergleicher In Bausteintechnik Um integrierte Schaltkreise wirtschaftlich anwenden zu können, muß ein System von möglichst wenig unterschiedlichen Bausteinen derart entworfen werden, so daß ohne weitere Verwendung zusätzlicher Schaltungen Bausteine zusammengeschlossen werden können, um erweiterte Funktionen realisieren zu können. Ein Beispiel dafür soll (in TTL Technik) für den Parallelvergleicher gezeigt wer-

3. Rechenwerke

80

den. Dazu wird ein Baustein verwendet, der die Schaltfunktionen gemäß der Wertetabelle in Bild 3 - 2 6 beinhaltet. Der Baustein umfaßt den Vergleich von 4 Stellen mit der Möglichkeit, durch Anschluß weiterer identischer Bausteine den Vergleich jeweils um 4 Stellen zu erweitern. Bild 3—27 zeigt den Baustein als Blockschaltbild und Bild 3 - 2 8 die zugehörige logische Schaltung. Die zu vergleichenden Stellen sind mit a 0 , a i , a 2 , a 3 und b 0 , b r , b 2 , b 3 bezeichnet. Daneben gibt es weitere Eingänge E ! , E 2 und E 3 , an die Vergleichsergebnisse A < B, A = Bund A > B niederwertiger Stellen (aus vorgeschalteten Bausteinen) angeschlossen werden. Die Ausgänge A < B , A = B und A > B des Bausteins zeigen die betreffenden Vergleichsergebnisse an. Bei der kaskadenförmigen Zusammenschaltung zweier oder mehrerer Bausteine werden die Kaskadeneingänge mit den Ausgängen des vorherigen Bausteins verbunden (vgl. Bild 3 - 2 9 ) .

a, , b, >b 3 B)

(Ab 2 b, a, b„ a„ B A < B A= B

X

X

Bild 3-26. Wertetabelle für 4 Bit-Vergleicher a a a

a

3 2

o-

ol o o

E2 OE3

4 Bit Vergleicher

b0 bi o\>2

b 3 o-

Bild 3-27. Baustein zum Vergleich von 4 Stellen

A B

81

3.3 Vergleichswerke

3H

A > B

KASKADEN-\ g 1 EINGÄNGE )

A < B

Ausgänge

Bild 3 - 2 8 . Schaltung eines 4-Bit-Vergleichers

Eine Kaskadenschaltung für den Vergleich zweier 12-stelliger Binärzahlen ist in Bild 3 - 2 9 dargestellt.

82

3. Rechenwerke

Bild 3 - 2 9 . Vergleichsschaltung für zwei 12-stellige Binärzahlen

3.4 Multiplizierwerke

Im Abschnitt 2.1 haben wir gesehen, daß man die Multiplikation auf die Addition zurückfuhren kann. Dazu müssen im Dualsystem die Teilprodukte gebildet und stellenrichtig addiert werden. Die Bildung der einzelnen Teilprodukte ist im Dualsystem sehr einfach, da die Multiplikatorstelle nur L oder O sein kann. Bei L wird der Multiplikand zu dem bis dahin erhaltenen Zwischenergebnis stellenrichtig addiert, bei 0 dagegen kann ohne Addition zur nächsten Multiplikatorstelle übergegangen werden.

83

3.4 Multiplizierwerke

Die zur stellenrichtigen Addition notwendigen Verschiebungen können bei Parallelmaschinen leicht durch Shift um 1 Stelle durchgeführt werden. Im Gegensatz zur Addition bzw. Subtraktion hat die Multiplikation bei n-stelligen Faktoren ein 2 n-stelliges Ergebnis und benötigt daher als Ergebnisspeicher ein 2 n-stelliges Register. Wegen der Komplexität der Operation „Multiplikation" ist hier eine weit größere Anzahl von Schaltungsmöglichkeiten als bei der Addition bekannt. Wir beschränken uns hier auf die wesentlichen Gesichtspunkte. Außerdem betrachten wir nur die Multiplikation von Beträgen. Die Behandlung des Vorzeichens kann gesondert erfolgen und wird hier nicht besprochen.

3.4.1 Duale Serien-Multiplikation Das Serien-Multiplizierwerk besteht im wesentlichen aus 3 Schiebe-Registern (AC, MD, MQ, vgl. Bild 3—30) und einem Addierwerk. Die Bildung der jeweiligen Teilprodukte wird einfach über eine UND-Schaltung durchgeführt. Dann wird dieses Teilprodukt jeweils zu dem schon ermittelten Teilergebnis addiert.

k3 Bild 3 - 3 0 . Duale Serienmultiplikation

Das Verfahren soll anhand von Bild 3—30 näher erläutert werden. Dabei gelten folgende Festlegungen: (a) Anfangs steht der Multiplikand im MD, der Multiplikator im MQ, AC ist auf 0 gelöscht.

84

3. Rechenwerke

(b) Die Faktoren sind n-stellig und, mit der niedrigsten Stelle rechts, in Schieberegistern gespeichert. (c) Der Addierer arbeitet verzögerungsfrei. In Bild 3—30 kann man drei wichtige Schleifen erkennen. Die Schleife der umlaufenden AC-Ziffern geht vom Registerausgang über die Konjunktion k l und den Addierer zurück zum Eingang. Die MQ-Schleife geht über k2 und die Disjunktion zum Eingang von MQ zurück. Da keine Verzögerungen vorliegen, erfolgt 1 Wortumlauf in n-Takten. Die MD-Schleife dagegen enthält eine Verzögerung von 1 Takt. Der eigentliche Zyklus ist daher n + 1 Takte lang. In AC und MQ ergibt sich also wegen der um 1 Takt kürzeren Umlaufzeit eine Rechtsverschiebung um 1 Stelle pro Umlauf. Der Speicher SP hält die zu verarbeitende Multiplikatorstelle für eine Wortzeit fest und führt sie dem multiplizierenden Glied m (Und-Gatter) zu. Die Konjunktionen K 3 , K4 sind Schalter, mit denen die Ziffern an die richtigen Plätze geleitet werden. Diese vier Tore werden von dem Steuersignal gesteuert, das dann auftritt, wenn die niedrigste MD-Ziffer in die am weitesten rechts stehende Stelle von MD geschoben wird (jeweils im letzten Taktintervall vor Beginn einer neuen Wortzeit), und zwar nur einen Takt lang. Der Addierer addiert, je nach Ausgang von SP, den Multiplikand oder 0 zur bisherigen Teilsumme, die im AC kreist und von der am Ende jeder Wortzeit eine Stelle in das MQ-Register geleitet wird. Das Steuersignal hat zwei Aufgaben: Es soll den Inhalt der rechten Stelle von MQ durch Öffnen von k4 in SP einspeichern und außerdem die niedrigste Stelle von AC nach MQ schaffen. Dafür werden die Umläufe in AC und MQ für 1 Takt unterbrochen, und k3 wird geöffnet. Mit der bisherigen Erläuterung einzelner Komponenten ist die Wirkungsweise der Gesamtschaltung leicht verständlich: Beim 1. Auftreten des Steuersignals wird über k4 die niedrigste MQ Stelle in SP übernommen und liegt nun für die ganze nächste Wortzeit an einem Eingang von m. Der Multiplikand läuft am anderen Eingang ein, wird mit 0 oder L multipliziert und zum Inhalt von AC addiert. Im letzten Taktintervall der Wortzeit erscheint wieder das Steuersignal und leitet durch Öffnen von k3 die letzte Stelle von AC nach MQ. Gleichzeitig kommt die nächste Multiplikatorziffer über k4 nach SP. Bei dieser Schaltung dauert eine Multiplikation n Wortzeiten zu je n + 1 Takten. Ein Nachteil ist, daß die Multiplikation mit einer 0 genauso lange dauert wie mit L. Es gibt Spezialverfahren zur Beschleunigung des Ablaufes in solchen Fällen.

85

3.4 Multiplizierwerke

3.4.2 Duale Parallel-Multiplikation Eine parallele Multiplikation kann analog zu Abschnitt 3.4.1 schrittweise unter Verwendung eines Paralleladdierers durchgeführt werden. Der dann notwendige technische Aufwand ist verhältnismäßig klein, die Multiplikationszeit ein Vielfaches der Additionszeit. Es ist möglich, das Schema der dualen Multiplikation direkt in eine Schaltung übertragen. Der Aufwand wird zwar entsprechend hoch, die MultiplikationsZeiten sinken aber beträchtlich ab. Um den Aufbau einer solchen Schaltung zu erklären, sei zunächst das in Bild 3—31 angegebene Multiplikationsschema zweier 6-stelliger Dualzahlen betrachtet. Dabei erkennt man eine Besonderheit der dualen Parallelmultiplikation: Bei der jeweiligen Bildung der Zwischensummen wird entsprechend der zu verarbeitenden Multiplikatorstelle entweder 0 oder der Multiplikand dazuaddiert. X: Multiplikand Y: Multiplikator

L O L L O L L L O L L L

L O L L O L L O L L O L L O O O O L L L L O L L O L

1. Zw.-Summe

L O O L L L O L L

2. Zw.-Summe

L O O L L L O L L L O L L O L

3. Zw.-Summe

OOOOOO

L O O O O O O L O L L O L L O L

L

L O O L L O L O L O L L

4. Zw.-Summe Endergebnis

Bild 3 - 3 1 . Multiplikationsschema

Zur Entscheidung, ob 0 oder der Multiplikand zur Bildung einer Zwischensumme zu verwenden ist, dient die in Bild 3 - 3 2 angegebene Schaltung. Zur Bildung der Zwischensummen werden Volladdierer verwendet. Die Ausgänge der Konjunktionen in Bild 3—32 sind mit den gleichnamigen Eingängen der Volladdierer in Bild 3—33 verbunden. Das Ergebnis der Addition entsteht an den Ausgängen Po bis P u in Büd 3 - 3 3 . Eine verbesserte Schaltung („carry save"), bei welcher der Übertragsabbau weitgehend reduziert wird, ist in Bild 3—35 dargestellt. Die verwendeten Volladdierer sind dabei so geschaltet, daß ein entstehender Übertrag stellenrichtig auf ein späteres Teilergebnis addiert wird. Die Wirkungsweise baut auf dem in Bild 3 - 3 4 gezeigten modifizierten Multiplikationsschema auf. Die Eingänge Aj bis Fj sind wieder die Ausgänge der Konjunktionen in Bild 3—32. Der maximale logische Pfad geht hier nur durch 3 Volladdierer und 1 Konjunktion und er-

86

3. Rechenwerke Multiplikand X5

x4

x3

x2

Xl

x0

2 c §

Bild 3 - 3 2 . Multiplikator-Verknüpfungen zu Bild 3 - 3 4 . Volladdierer bj

II

Bs

B 4 A s B 3 A4 B 2 A3 .Bi A 2

B0Ai

I I

I I

1 1

I I

I I

I I

A0 "

+ ?c4

?c3

4

?°3

J_lP

fE3