Einführung Datenverarbeitungssysteme


von Prof. Jürgen Plate

2. Aufbau und Arbeitsweise einer Datenverarbeitungsanlage

2.1 Hardware & Software

Eine DVS besteht aus einzelnen untereinander verbundenen Bauteilen, Schaltungen und Geräten, die fest verdrahtet sind im wesentlichen digitale Schaltungen

Die Hardware bildet noch kein programmierbares DVS (abgesehen von festverdrahteten Spezialrechnern für bestimmte Aufgaben, z.B. Taschenrechner). Die Hardware (HW) eines Universalrechners ist problemunabhängig.

Zum Arbeiten, d.h. zum Verarbeiten von Daten, sind noch Programme erforderlich.
Programme sind die Bearbeitungsvorschriften für die Daten. Ein Programm ist die Beschreibung eines Arbeitsablaufs mit folgenden Eigenschaften:

Die Gesamtheit der Programme nennt man Software (SW). Die Software ist veränderbar. Das jeweilige Programm bestimmt, welche Aufgabe das DVS bearbeiten kann. Bei der Software unterscheidet man:

Die Grenze zwischen Hardware und Software kann bei verschiedenen DVS verschieden sein (Funktionen entweder als SW oder HW realisiert, z.B. programmierte Gleitpunktarithmetik oder Arithmetikprozessor).

Es gibt Teile der Systemsoftware, die zwar als Programm realisiert sind, jedoch in einem Festwertspeicher abgelegt werden. Der Speicher kann nur gelesen werden, ist wie die HW nicht ohne weiteres veränderbar und für den Benutzer nicht von der HW unterscheidbar, z.B. Mikroprogramme, Betriebssystemteile, Systemsoftware, SW von Einplatinen-Computern (Steuerung/ Regelung) Software on Silicon Firmware.

2.2 "Klassische" Rechnerarchitektur

Die meisten Computer, die heute verwendet werden, sind nach dem Konzept organisiert, das John v. Neumann (zusammen mit Burks und Goldstine) in den Jahren 1944-1947 entwickelt hat:

Der v.Neumann-Rechner besteht aus 4 Funktionsgruppen:

Der Informationsaustausch (Steuersignale, Daten/Befehle, Adressen) zwischen diesen Funktionsgruppen erfolgt über interne Datenwege. Diese können realisiert werden als direkte Verbindung der einzelnen Funktionsgruppen oder als gemeinsame Datenschiene Busstruktur. Bei Mikros und Minis (z. B. Workstation, PC) wird im allgemeinen die Busstruktur verwendet.

Die Funktionsgruppen Speicher, Leitwerk, Rechenwerk, E/A-Werk bilden zusammen mit den Verbindungswegen die Zentraleinheit (ZE, CU, CPU) eines Computers. Die ZE wird häufig schon als "Computer" bezeichnet. Zu einer vollständigen DVS gehören jedoch noch die Peripheriegeräte. Dies sind:

Operationsprinzip

Die CPU kann nur elementare, (fest verdrahtete) Befehle verarbeiten ( Maschinenbefehle). Jedes Programm besteht also aus einer Folge elementarer Befehle. Da im Speicher nicht zwischen Daten und Befehlen unterschieden wird, muss das Leitwerk entscheiden, ob der Inhalt einer Speicherzelle als Befehl oder Datum aufzufassen ist. Es gibt somit zwei Zustände des Rechners: Befehl holen (Interpretieren als Befehl) und Befehl ausführen (Interpretation als Datum). Entsprechend gibt es zwei Phasen der Programmabarbeitung:

Dieses Zweiphasenschema erfordert eine streng sequentielle Ausführung eines Programms, d.h. es sind zwar Sprünge möglich, jedoch keine parallele Bearbeitung mehrerer Befehle. Ein v. Neumann-Rechner bearbeitet zu jedem Zeitpunkt immer nur einen Befehl, der immer eine Datenoperation im Rechenwerk bewirkt. Typ SISD (single instruction, singel data)

Vorteile der v. Neumann-Architektur:

(Dies ist der Hauptgrund für ihre Langlebigkeit)

Nachteile der v. Neumann-Architektur:

Durch neue Rechnerarchitekturen kann man die Nachteile des v. Neumann-Rechners beseitigen, was aber erst durch die stürmische Entwicklung auf dem Hardware-Sektor (sinkende Preise, höhere Integrationsdichte, schnellere Chips, höhere Zuverlässigkeit der Komponenten) möglich wurde. Die neuen Architekturen werden (jedenfalls zur Zeit) den v. Neumann-Rechner nicht ablösen, sondern nur in den Gebieten sinnvoll ergänzen, in denen sie wirkliche Vorteile bringen. Ein Weg ist z.B. der RISC (Reduced Instruction Set Computer), der durch den vereinfachten Befehlssatz wesentlich schneller arbeitet. Ein Teil der neuen Architekturen ist bereits in kommerziell vertriebenen DVS vorhanden, ein Teil befindet sich im Experimentierstadium und ein letzter Teil ist noch in der Entwicklungsphase.

2.3 Innovative Rechnerarchitekturen

Erhöhung der Leistungsfähigkeit des v. Neumann-Rechners

Vermeiden oder Mildern des v. Neumann-Flaschenhalses

Asynchrone Trennung von Befehlshol- und -ausführungsphase

Warteschlange

2.4 Befehlszyklus

Der Befehlszyklus wird von der CPU ständig durchlaufen:

Ablauf des Befehlszyklus

In der Befehlsholphase erfolgt ein Speicherzugriff (1a) auf die vom Befehlszähler (BZ) angezeigte Adresse. Der entsprechende Befehl wird in das Befehlsregister (IR) des Leitwerks gebracht (1b). Anschließend wird der BZ um 1 erhöht. Er zeigt damit auf den nächsten Programmbefehl. Besteht ein Befehl aus mehreren Speicherworten, setzt sich diese Phase auch aus mehreren Speicherzugriffen zusammen (BZ wird jedes Mal erhöht), bis der Befehl vollständig im IR steht. Es erfolgt hier in der Befehlsholphase bereits eine Teilauswertung des Operations-Codes (s. Grafik). Das Befehlsregister besteht hier aus Op-Code-Register (OR, Befehlsregister) und Adress-Register (AR).

Der Befehl im OR wird nun decodiert (Befehlsdecoder) und der Ablaufsteuerung zugeführt. Diese ist in der Regel als Mikroprogramm realisiert. Die Ablaufsteuerung erzeugt nun die nötigen Steuersignale (siehe Kapitel 8).

Benötigt der Befehl Operanden, so wird deren Adresse aus dem Inhalt des AR ermittelt. Häufig ist im Befehl nicht die tatsächliche Operandenadresse, sondern nur eine Teilinformation enthalten, die noch geeignet ergänzt werden muss ( Adressrechnung, s. später).

Nun erfolgt ein Speicherzugriff (4a) auf die so festgestellten Operanden-Adresse. Der Operand wird in das vom Op-Code spezifizierte Register oder in das Rechenwerk (4b) oder in die ausgewählte Speicherzelle gebracht.

Falls durch den Op-Code weitere Teiloperationen gefordert sind, werden diese nun ausgeführt. Dabei kann auch der Inhalt des BZ verändert werden (Sprungbefehle, Unterprogramm-Aufrufe).

Jeder Befehlszyklus besteht aus einer Anzahl von Teilschritten. Die Anzahl der Teilschritte kann für unterschiedliche Befehle verschieden sein, auch die Zeitdauer der einzelnen Befehle kann unterschiedlich sein.

die Befehlszyklen verschiedener Befehle können unterschiedlich lang sein. Die tatsächliche Dauer eines Befehlszyklus hängt von der Taktfrequenz der CPU ab. Der gesamte Ablauf in der CPU wird durch einen zentralen Takt gesteuert. Ein Befehlszyklus kann in eine Reihe von Maschinenzyklen zerlegt werden (z.B. Speicherzugriff in einem Maschinenzyklus). Ein Maschinenzyklus kann eine oder mehrere Taktperioden (Arbeitstakt des Prozessors) dauern.

2.5 Programm-Unterbrechungen

Häufig ist es notwendig, dem Computer zu einem beliebigen Zeitpunkt von außen ein bestimmtes Verhalten aufzuzwingen, z. B. das Lesen eines Datenwertes nach dessen Eintippen am Terminal (besonders wichtig in der Prozess-Steuerung). Wenn das externe Ereignis relativ selten auftritt, wäre es sehr ineffektiv, den Rechner mit einem ständigen Terminal-Abfrageprogramm zu beschäftigen (Polling).

Besser ist es, den Rechner in seiner Arbeit erst dann zu unterbrechen, wenn das externe Ereignis eintritt. Die Unterbrechung erfolgt durch ein an die CPU gesandtes Signal, die Unterbrechnungsanforderung (UA, interrupt request, IRQ), das die CPU veranlasst, das gerade laufende Programm zu unterbrechen und eine Befehlsfolge auszuführen, die auf die Unterbrechung reagiert (z.B. ein Datum von der Tastatur in den Speicher bringt) Programmunterbrechung (interrupt).

Die bei der Unterbrechung zu startende Befehlsfolge ist das Unterbrechungs-Antwortprogramm (interrupt service routine, ISR). Nach dem Abarbeiten der ISR fährt der Rechner mit der Ausführung des unterbrochenen Programms fort. Auf gleiche Weise lassen sich Reaktionen des Computers auf andere seltene oder unvorhersehbare Ereignisse (z.B. Ausfall der Stromversorgung) behandeln. Als Reaktion auf eine Unterbrechungsanforderung geschehen zwei Dinge:

Die Unterbrechung darf nicht mitten in einer Befehlsausführung erfolgen (undefinierter Prozessorstatus!), sondern erst nachdem der gerade laufende Befehl vollständig abgearbeitet ist, also am Ende des Befehlszyklus (siehe Struktogramm). Nach Ende der ISR wird der ursprüngliche Zustandsvektor wieder vom Stack geholt und das Programm an der Unterbrechungsstelle fortgesetzt.

Während des Rettens des Programmzustands und des anschließenden Ladens des Zustandsvektors der ISR darf keine neue Unterbrechungsanforderung auftreten (Zustandsinformation unvollständig!). Der Befehlssatz der Prozessoren enthält daher spezielle Befehle zum Sperren und Freigeben von Unterbrechungsanforderungen.

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Die HTML-Fassung entstand unter Mitwirkung von Volker Arndt
Copyright © FH München, FB 04, Prof. Jürgen Plate