Rechner– und Systemarchitekturen

Einführung in die Informatik 3 für den Studiengang Informatik

im Fachbereich MND der Fachhochschule Frankfurt am Main

Prof. Dr. Erik Jacobson

Wintersemester 2000/2001

Übersicht

Belegnummer: 06 65 35

Inhalte

1. Hardware (wie ein Computer funktioniert)

- Schaltungstechnik: Schaltungslogik, Schaltelemente

- Beschreibungsmittel (Graphen): Petri-Netze, Zustandsdiagramme

- Datendarstellungen

- Rechnerarchitekturen:

- Die Zentraleinheit

- Die CPU, Maschinenbefehle und Mikroprogrammierung

- Der Bus

- Der Arbeitsspeicher

- Ein- und Ausgabe, Schnittstellen

- Periphere Geräte: Terminal, Drucker, Plotter, Massenspeicher

2. Softwareware (Die Basismaschine)

- Betriebsarten, Betriebssystemfunktionen

- Prozesse, Prozeßverwaltung

- Speicherverwaltung

- Dateiverwaltung

- Interprozeßkommunikation

- Benutzeroberflächen

- Schichtenmodell

- Anwendungsbeispiel: UNIX, MVS, VMS, BS200, RSX, RT-11, o.ä.

- Spezialthemen, z.B.: TP-Systeme, TP-Monitore

3. Prozeßdatenverarbeitung, PDV (Anwendungsgebiet)

- Prozeßelemente, Prozeßglieder (Sensoren, Motoren, ADCs, DACs)

Literatur

- Coy, W.: Aufbau und Arbeitsweise von Rechenanlagen. Vieweg 1988 - Jacobson, E.: Einführung in die Prozeßdatenverarbeitung. Hanser 1996 - Sokolowski/ Huge: Digitale Schaltungs- und Rechnertechnik.

Labor (nach Vereinbarung)

- Bussignale und -protokolle

- COM-Schnittstelle (RS 232C, V.24)

- Laufzeitmessungen

Leistungsnachweis

Prüfungsklausur am Semesterende

Kapitel 0

Einleitung

0.1 Historische Grundlagen

0.1.1 Hilfsmittel zur Datenverarbeitung

0.1.1.1 Primitive Hilfsmittel

- 6000 v Chr. 2 Hände x 5 Finger = biquinär

= 10 Finger = dezimal

Finger = lat.: digitus → digital

Zählen = lat.: computare → computer Zählstäbchen = lat.: calculi → Kalkül

- 1000 v Chr. Abakus (Griechenland, China, Rußland, Rom)

0.1.1.2 Mechanische Hilfsmittel

1623 Schickard, W. Tübingen: 6-stellige Rechenuhr (Add, Sub)
1641 Pascal, Blaise Frankreich: 6-stellige Addiermaschine
1650 Partridge, England: Rechenschieber
1671 Leibniz, G.W. Hannover: 4-Spezies-Rechner mit Staffelwalzen

(Kurbelmaschine)

1900 elektrischer Antrieb für Kurbelrechenmaschinen

0.1.1.3 Logische Hilfsmittel

- 1000 Zahldarstellung mittels Buchstaben (Alphabet = α, β)
- 0 Mathematische Grundlagen: Pythagoras, Aristoteles, ..
± 0 Römisches Zahlensystem ( I, V, X, L, C, D, M )
500 Hindu-Arabisches Zahlensystem: (dezimale) Stellenschreibweise
1574 Adam Riese: Popularisierung der Rechenkünste
1614 Napier: Logarithmentafeln
1703 Leibniz: Dualsystem
1847 Boole: Schaltalgebra
1833 Babbage & Ada (Augusta Comtess of Lovelace geb. Byron):

Difference Engine, Analytic Engine (Mill, Store, Control)

1940 Programmiersprachen

0.1.2 DV-Systeme

1890 Hollerith:  Lochkartenmaschine

zur Volkszählung in Chikago

1934 Konrad Zuse, Berlin:  Z1: erster programmgesteuerter Rechner

Z3: CPU mit 600 Relais, 22 Dualstellen, Speicher mit 64 Worten (2000 Relais), Steuerung mit Programm auf Lochstreifen

1944 Aiken @ Harvard, USA  Relais-Rechner MARK 1
1946 Ekert & Mauchly @ MIT, USA Röhren-Rechner ENIAC (18 000 Röhren)
1946 John v. Neumann @ MIT  Rechner-Architektur:

Steuerwerk + Rechenwerk

ein Speicher für Daten und Programme, Ein- und Ausgabeeinheiten (-werke)

1950 Universalrechner:  Hardware und Betriebssysteme (in ROM)
1959 Siemens 2002  2000 Worte à 14 BCD-Stellen (56 Bit)

0.1.3 Rechner-Generationen

Nr  Zeit Schaltelement  -zeit Operationszeit Add/Sek
0 1935 - 1945 Relais  1 ms 100 ms  30
1 1945 - 1955 Röhren  10 μs 1 ms  1000
1951 Kernspeicher  1 μs
2 1955 - 1965 Transistoren 1 μs 100 μs 10^{4}
3 1965 - 1971 Integrierte Schaltung (SSI) 10 ns 1 μs  10^{4}
4 1971 - 1985  LSI 1 ns 100 ns  10^{6}
5 1985 - 1995  VLSI, XLSI 1 ns 10 ns  10^{7}

0.1.4 Physikalische Grenzen

Größe  aktuell  Grenze
Breite einer Leiterbahn 0.4μm (400 nm) 100 Atome = 100 · 10^{−10}m = 10nm
Taktfrequenz  200 – 400 MHz 20 GHz (λ = c^{∗}/f = 1cm)
( c^{∗} = c/ε ≈ 200 000 km/s)

0.2 Begriffe

DIN 44 300, 66 xxx, ISO 2382 Teile 1 bis 36

Informatik (engl.: Computer Science, CS): Wissenschaft von der Informationsverarbeitung

Anwendung: Informationstechnik (Information Technology, IT)

0.2.1 Grundbegriffe

Information (objektartig): Dargestelltes Wissen über beliebige Objekte: Fakten, Ereignisse, Dinge, Vorgänge, Ideen, Konzepte, ...

Daten: Formalisierte Darstellung von Information, die geeignet ist zur Weitergabe, Interpretation oder Verarbeitung.

Signale: Veränderung einer physikalischen Größe zur Darstellung von Daten. Zum Beispiel Strom, Spannung, Helligkeit, Farbe.

0.2.2 Basisreferenzmodell

Schichten-, Schalen-, Strukturmodell

[figure: Information; Information; Daten; Daten; Signale; Signale; Wissen; Wissen]

Bild b1p01

↓ : Darstellung, Repräsentation, Codierung ↑ : Erwerb, Interpretation, Decodierung ⟷ : Übertragung, Verarbeitung, Speicherung

0.2.3 Signale

Signalwert (Signalparameter): veränderlicher Wert, abhängig von Ort oder Zeit (y-Koordinate), z.B. elektrische Spannung in Volt. Signalverlauf in der Zeit (t) oder als Funktion des Ortes (x-Koordinate) Signalqualität:

- kontinuierlich (auf reele Zahlen abbildbar)

- diskret (auf natürliche (ganze) Zahlen abbildbar)

[figure: a) analog:; b) Samples:; c) quantisiert:; d) digital:; wert- und zeitkontinuierlich; wertkontinuierlich, zeitdiskret; wertdiskret, zeitkontinuierlich; wert- und zeitdiskret; Signal; Signal; Wert; Wert; t; t; t; t]

Bild b1p02

0.2.4 Daten

analog: kontinuierlich. diskret: diskontinuierlich, unterscheidbare Werte. digital: durch Daten aus Zeichen dargestellt. numerisch: Daten aus Numeralen (Zeichenfolgen für Zahlen). Beispiel: 11, elf, XI, B_{16} alphanumerisch: Daten aus Buchstaben und Ziffern. Zeichen: Element einer Menge von Symbolen. Ziffer: Zeichen zur Darstellung einer (nichtnegativen) Zahl. Symbol: Graphische Darstellung mit vorgegebener Bedeutung (kontextabhängig). Bit: Zeichen zur Darstellung von Ziffern im Dualsystem. Wort: Syntaktische Einheit von Zeichen. Byte: (Teil)Wort fester Länge im Binärsystem (meist 8 Bit) zur Darstellung von Zeichen aus anderen Zeichensätzen (z.B. ASCII). Oktett: Folge von 8 Zeichen (Bits). String: Folge von Zeichen unbestimmter Länge. Satz: Folge von Worten (mit Struktur). Datei: Folge von Sätzen (gleicher Struktur). Text: Darstellung von Konstrukten einer Sprache durch Daten. Gewöhnlich in Form von Zeichen, Symbolen, Worten, Phrasen, Absätzen, Sätzen, Tabellen oder anderen Zusammenstellungen von Zeichen. Datenobjekt: Daten mit vorgegebenen Datentyp. Datentyp: Aufbau und Anordnung von Daten und die auf ihnen erlaubten Operationen. Adresse: Wort zur Kennzeichnung (Lokalisierung) eines Datenobjekts. Adreßraum: geordnete Menge von (zugelassenen) Adressen Programm: Folge von Anweisungen und Vereinbarungen zur Lösung einer Aufgabe (eines Problems). Anweisung: Arbeitsvorschrift, abgefaßt in einer (Programmier-)Sprache Vereinbarung: Festlegung von Sprachelementen für Anweisungen. Operation: Ein Methode, um nach vorgegebenen Regeln aus gegebenen Objekten (Operanden) ein neues Objekt (Resultat) zu erzeugen. Instruktion: elementare Anweisung. System: Eine Menge von Objekten und ihren Beziehungen, die von ihrer Umgebung abgegrenzt erscheint. Struktur: Die Beziehungen zwischen den Elementen eines Systems.

6 KAPITEL 0. EINLEITUNG

Grundlagen der Digitalelektronik

1.1 Boole’sche Algebra

1.1.1 Definition

Einfachste Algebra mit

- 2 Elementen: {0, 1} {L, H} {O, L}

- 3 Grund-Operationen:

- unäre Operation: Komplement, Negation, NICHT, NOT, \begin{matrix}x → x̄ \\ 0 & 1 \\ 1 & 0 \end{matrix}

- binäre Operationen:

Disjunktion, ODER, OR, f(x,y) = Max(x,y) = x + y \begin{matrix}x ∨ y → z \\ 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 1 \end{matrix}  .  .Konjunktion, UND, AND, f(x,y) = Min(x, y) = x · y \begin{matrix}x ∧ y → z \\ 0 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \end{matrix}

- Zusammengesetzte binäre Operationen (2 Beispiele):

Äquivalenz, f(x, y) = x · y + \overline{x} · \overline{y} \begin{matrix}x ≡ y → z \\ 0 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 1 & 1 & 1 \end{matrix}  .  .Antivalenz, Exklusives Oder, XOR, f(x, y) = x · \overline{y} + \overline{x} · y \begin{matrix}x ⊕ y → z \\ 0 & 0 & 0 \\ 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \end{matrix}

1.1. BOOLE’SCHE ALGEBRA 7 Gesetze der Boole’schen Algebra: Assoziativgesetz (x + y) + z = x + (y + z) = x + y + z

(x · y) · z = x · (y · z) = x · y · z

(x ⊕ y) ⊕ z = x ⊕ (y ⊕ z) = x ⊕ y ⊕ z

Kommutativgesetz x + y = y + x x · y = y · x

x ⊕ y = y ⊕ x

Distributivgesetz x · (y + z) = (x · y) + (x · z)

x + (y · z) = (x + y) · (x + z)

De Morgansche Regeln \overline{(x + y)} = \overline{x} · \overline{y}

\overline{(x · y)} = \overline{x} + \overline{y}

Absorptionsregeln  x + \overline{x} = 1  x · \overline{x} = 0  x ⊕ \overline{x} = 1
x + x = x  x · x = x  x ⊕ x = 0
x + x · y = x x · (x + y) = x

Neutrale Elemente

0 bezüglich OR (+) : x + 0 = x  x · 0 = 0  x ⊕ 0 = x
1 bezüglich AND ( · ) : x · 1 = x  x + 1 = 1  x ⊕ 1 = \overline{x}

1.1.2 Boole’sche Funktionen

Abbildung von m logischen Werten auf n logische Werte

B^{m} → B^{n} mit B = {0, 1} dargestellt durch Funktionen: \{ \begin{matrix}x \\ y \end{matrix} \} = \{ \begin{matrix}f_{1}(a, b, c) \\ f_{2}(a, b, c) \end{matrix} \} oder durch Wertetabellen,

zum Beispiel:  a b c x y 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0

1.1.3 Normalformen

Erstellung von Boole’schen Funktionen aus Wertetabellen. Vollständige Normalformen enthalten in allen Funktionstermen alle Variablen (oder deren Inverse). Sie können meist unter Anwendung der Gesetze der Boole’schen Algebra oder mit Hilfe von KV-Diagrammen zu kompakten (reduzierten) Normalformen vereinfacht werden.

1.1.3.1 Disjunktive Normalform

DNF (Min-Terme)

- Tabellenzeilen mit Funktionswert ’1’ liefern einen Funktionsterm (Min-Term)

- Funktionsterme werden aus den Eingangsvariablen mit UND verknüpft

- alle Funktionsterme werden mit ODER verknüpft

- DNF = ΣΠx_{i} (Summe von Produkten)

1.1.3.2 Konjunktive Normalform

KNF (Max-Terme)

- Tabellenzeilen mit Funktionswert ’0’ liefern einen Funktionsterm (Max-Term)

- Funktionsterme werden aus den invertierten Eingangsvariablen mit ODER verknüpft

- alle Funktionsterme werden mit UND verknüpft

- KNF = ΠΣ\overline{x_{i}} (Produkt über Summen)

1.1.3.3 Beispiel

a b c x 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0  .  .Disjunktive Normalform: x = ā · b̄ · c + ā · b · c̄+ a · b̄ · c̄+ a · b̄ · c (vollständige DNF) x = ā · b · c̄ + b̄ · c + a · b̄ · c̄ (reduzierte DNF) (Absorption von (a + ā) = 1) oder x = ā · b · c̄ + a · b̄ + ā · b̄ · c (reduzierte DNF) (Absorption von (c + c̄) = 1) oder (nach Verdopplung von a · b̄ · c ) x = a · b̄ · c + ā · b̄ · c + ā · b · c̄ + a · b̄ · c̄ + a · b̄ · c x = b̄ · c + ā · b · c̄ + a · b̄ Konjunktive Normalform: x = (a + b + c) · (a + b̄ + c̄) · (ā + b̄ + c) · (ā + b̄ + c̄)

1.1.4 Karnaugh-Veitch-Diagramme (KV-Diagramme)

Erstellung von Minimalen Disjunktiven Normalformen (MDNF) in vier Schritten:

a) Erstellung des KV-Diagrammrahmens nach folgender Regel: Die (n) Variablen werden paarweise mit ihrer Negation in Spalten und Zeilen einer Matrix angeordnet der- art, daß Quadrate (falls n gerade ist) oder Rechtecke (falls n ungerade ist).. \begin{aligned}& & x_{3} & & & \overline{x_{3}} \\ & x_{1} & & \overline{x_{1}} & \overline{x_{1}} & & x_{1} \\ x_{2} & x_{1} x_{2} x_{3} & & \overline{x_{1}} x_{2} x_{3} & \overline{x_{1}} x_{2} \overline{x_{3}} & & x_{1} x_{2} \overline{x_{3}} \\ \overline{x_{2}} & x_{1} \overline{x_{2}} x_{3} & & \overline{x_{1}} \overline{x_{2}} x_{3} & \overline{x_{1}} \overline{x_{2}} \overline{x_{3}} & & x_{1} \overline{x_{2}} \overline{x_{3}} \end{aligned}

entstehen, deren Felder eindeutig einer Variablenkombination zugeordnet sind. Es ist zu beachten, daß benachbarte Felder sich in der Negation von nur einer Variablen unterscheiden.

b) Eintragen der Funktionswerte in den Rahmen

c) Umschließen von benachbarten Feldern, die eine ”1” enthalten, zu Rechtecken möglichst großer Seitenlängen in Schritten von 1, 2, 4 ... Einheiten (dabei sind auch Felder einzuschließen, die - einer Torus-Topologie entsprechend - an der gegenüberliegenden Seite liegen).

d) Jedes der gefundenen Rechtecke stellt den Konjuktionsterm seiner beiden Seiten dar. Die Disjunktion dieser Terme ergibt die gesuchte minimale Funktion. Beispiel

[figure: \overline{b}; b; 0; 1; 0; 1; a; \overline{a}; 1; 0; 0; 1; \overline{a}; a; c; \overline{c}; \overline{b}; b; 0; 1; 0; 1; a; \overline{a}; 1; 0; 0; 1; \overline{a}; a; c; \overline{c}; oder]

Bild b1p02c

x = ā · b · c̄ + b̄ · c + a · b̄ · c̄ oder x = ā · b · c̄ + a · b̄ + ā · b̄ · c ergibt zusammen

[figure: \overline{b}; b; 0; 1; 0; 1; a; \overline{a}; 1; 0; 0; 1; \overline{a}; a; c; \overline{c}]

x = ā · b · c̄ + b̄ · c + a · b̄

Bild b1p02b

1.2 Elektrotechnische Grundlagen

1.2.1 Zweipole

[figure: I; =; ≈; U; R; Strom- und Spannungsquellen; ohmscher Widerstand R; Kondensator, Kapazität C; Drossel, Spule, Induktivität L; Nichtlineare Widerstände, z.B. Diode; binäre Zweipole, z.B. Kontakte]

Bild b1p03a

Ohm’sches Gesetz: U = I · R . .Komplexe Wechselstromlehre Ũ = Ĩ· R̃ mit R̃ ∈ \{R, R_{C} = \frac{1}{iωC} , R_{L} = IωL\} Ũ = Û · e^{iωt} und Ĩ = Î· e^{iωt}

Multipole Verknüpfungen von Zweipolen zu Multipolen mit Maschen (M) mit Knoten (K). (Jeder Knoten kann als Pol betrachtet werden) Kirchhoffsche Regeln: Maschenregel: ∑ U_{i} = 0 Knotenregel: ∑ I_{j} = 0. . [figure: U_{0}; R_{1}; R_{2}; R_{3}; R_{4}; R_{5}; R_{6}; M_{1}; M_{2}; K_{1}; K_{2}]_{Bild b1p03}

Vierpole Eingang: U_{1}, I_{1} Ausgang: U_{2}, I_{2} Übertragungsfunktion: H̃ = Ũ_{2}/Ũ_{1} = H̃(ω) Darstellung durch –Ortskurve in der komplexen Zahlenebene –Bodediagramme für den Betrag H(ω) = \sqrt{Re H^{2} + Im H^{2}} und den Phasenwinkel tanφ = Im H/Re H. .Beispiel: [figure: R; L; C; I_{1}; U_{1}; U_{2}; I_{2}] Bild b1p03b U_{2}/U_{1} = 1/(1 − ω^{2}LC + iωRC)

1.2.2 Schalter

[figure: y; y; x; x; x; y; z; Schließer: Arbeitskontakt (Einschalter) y = x; Öffner: Ruhekontakt (Ausschalter) y = \overline{x}; Wechsler:; Arbeits- und Ruhekontakt (Umschalter) y = \overline{x}, z = x]

Bild b1p04

1.2.3 Verknüpfungen

[figure: x; y; x; x; x; y; y; y; x; y; z = x · y  UND (AND); z = x + y ODER (OR); z; z; z = x ⊕ y Exklusives ODER (XOR)]

Bild b1p05

Kreuzschalter

[figure: a; b; y = a · x̄ + b · x; z = a · x + b · x̄]

Bild b1p05a

1.2.4 Relais

a) Passive Relaisschaltungen:

[figure: /; x; y = \overline{x} = \begin{cases}∞ Ω & für I_{x} = 0 \\ 0 Ω & für I_{x} > I_{0} \end{cases} \}; R_{y}; I_{x}]

Bild b1p06

Die Ausgangsgrößen (Durchlaßwiderstände R_{y}) entsprechen nicht den Eingangsgrößen (Ströme I_{x})

b) Aktive Schaltungen benötigen eine Hilfsspannung (V_{cc}) und haben die gleichen Eingangs- und Ausgangsgrößen (U_{x}, U_{y}).

[figure: /; x; U_{y} = \begin{cases}0 \\ U_{2} \end{cases} \}; aktive Relaisschaltung; /; x; U_{y} = \begin{cases}U_{b} \\ 0 \end{cases} \}; aktive Relaisschaltung (invertierend); R; V_{cc}; U_{2}]

Bild b1p06a

1.2.5 Transistoren

a) Transistoren als Vierpole (z.B. in Emitterschaltung):

{I_{1} = Y_{11} · U_{1} + Y_{12} · U_{2} \atop I_{2} = Y_{21} · U_{1} + Y_{22} · U_{2}} . .Eingangswiderstand R_{in} = 1/Y_{11} (groß) Steilheit S = Y_{21} (Verstärkung) . .{Y_{12} ≈ 0 \atop Y_{22} ≈ 0}

Mit Vektoren und Matrizen:

I⃗ = Ŷ · U⃗ oder U⃗ = Ĥ · I⃗ [figure: B; I_{2}; C; E; I_{1}; U_{1}; U_{2}; G; D; S]_{Bild b1p07} . .NPN-Transistor: C = Collektor E = Emitter B = Basis FET (verallgemeinert): D = Drain S = Source G = Gate

b) Feld-Effekt-Transistoren (FET) besonders kleine Eingangsströme (I_{1} ≈ 0) c) Aktive Schaltung (Analogverstärker) Einstufiger Verstärker (invertierend) [figure: R; V_{cc}; U_{1}; U_{2}; I_{2}; U_{x}; U_{y}; V_{cc}; U_{0}; Kennlinie; Schaltung] Bild b1p08 U_{2} = V_{cc} − I_{2}R mit I_{2} = Y_{21}U_{1} + 0 U_{2} = V_{cc} − RS U_{1} . .Zweistufiger Verstärker (nicht invertierend) [figure: R_{1}; V_{cc}; R_{2}; U_{1}; U_{out}; U_{2}; I_{3}; I_{2}] Bild b1p08a U_{out} = V_{cc} − I_{3}R_{2} mit I_{3} = Y_{21}U_{2} + 0 U_{2} = V_{cc} − I_{2}R_{1} mit I_{2} = Y_{21}U_{1} + 0 U_{out} = V_{cc}(1 − R_{1}Y_{21}) + R_{1}R_{2}Y_{21}^{2}U_{1} U_{out} = V_{cc}(1 − RS) + RS^{2} · U_{1} (lineare Verstärkung)

1.2.6 Schalttransistoren

Sättigungsbetrieb in 2 Zuständen: (I_{2} = 0 und U_{2} = 0). Vorzugsweise mit FET wegen höherer Schaltgeschwindigkeit.

[figure: R; V_{cc}; Transistor; U_{1}; U_{2}; U_{1}; U_{2}; V_{cc}; U_{0}; ”1”; ”0”; ”0”; ”1”; Kennlinie; U_{0}; I_{2}]

Bild b1p07a

1.3 Logische Schaltungen

1.3.1 Elementare logische Schaltungen

Aus FETs

1.3.1.1 Inverter (NOT)

[figure: Schaltung; R; V_{cc}; U_{a}; U_{x} = \begin{cases}V_{cc} & bei U_{a} = 0 \\ 0 & bei U_{a} > U_{0} = V_{cc}/(R · Y_{21}) \end{cases}; \begin{aligned}U_{x} & = V_{cc} − IR ≥ 0 \\ & = V_{cc} − RY_{21}U_{a} \end{aligned}; Schaltzeichen; 1; a; x = \overline{a}]

Bild b1p09

Kennlinie:

[figure: x = U_{x}/V_{cc}; 1; 0; U_{a}; ”0”; ”1”; 1; 2; 3; U_{0}; a]

Bild b1p10

Ausgangswert (x) in Abhängigkeit vom Eingangswert (a) 1: bei linearer Verstärkung 2: bei Berücksichtigung von Nichtlinearitäten und Schwellspannungen 3: idealisierter Verlauf für binäre Ein- und Ausgangsvariablen (a, x)

1.3.1.2 Zweistellige Gatter NAND-Gatter

[figure: V_{cc}; U_{a}; U_{x}; U_{b}]_{Bild b1p11}  .  .U_{x} = \begin{cases}V_{cc} falls & I = 0 \\ 0 falls & beide FETs leiten, U_{a} ∧ U_{b} ≥ U_{0} \end{cases} Schaltzeichen: ^{& a b  x = \overline{a ∧ b}} Bild b1p11a

NOR-Gatter [figure: +V_{cc}; U_{a}; U_{x}; U_{b}] Bild b1p12 .  .U_{x} = \begin{cases}V_{cc} falls & I_{a} und I_{b} = 0 \\ 0 falls & ein FET leitet, U_{a} ∨ U_{b} ≥ U_{0} \end{cases} Schaltzeichen: ^{≥ 1 a b  x = \overline{a ∨ b}} Bild b1p12a

1.3.1.3 Mehrstellige Gatter

– Multi-OR (Vielfach-ODER) [figure: U_{a}; ≥ 1; Schaltzeichen; U_{b}; U_{n}; +V_{cc}; U_{x}; a; b; n; x] Bild b1p13 . .– Multi-AND (Vielfach-UND) [figure: U_{a}; &; Schaltzeichen; U_{b}; U_{n}; +V_{cc}; U_{x}; a; b; n; x] Bild b1p14 1.3.1.4 Schaltnetze für Boole’sche Funktionen

Boole’sche Funktionen können in Normalformen dargestellt werden, welche sich direkt in Schaltnetze umsetzen lassen: jeder Funktionsterm läßt sich durch ein Mehrfach-Gatter darstellen, und ebenso deren Verküpfungen.

– DNF = ΣΠx_{i} (ODER-Verküpfung über UND-Gatter)

– KNF = ΠΣ\overline{x_{i}} (UND-Verknüpfung über ODER-Gatter)

Bei Anwendung der De Morganschen Regeln können aus Min-Termen oder Max-Termen Schaltungen mit gleichen Typen von invertierenden mehrstelligen Gattern verwendet werden.

Min-Terme der DNF = ΣΠx_{i} = \overline{Π\overline{Πx_{i}}} (nur NAND-Gatter)

Max-Terme der KNF = ΠΣ\overline{x_{i}} = \overline{Σ\overline{Σ\overline{x_{i}}}} (nur NOR-Gatter)

Beispiel 1

Das XOR x = a ⊕ b = a · \overline{b} + \overline{a} · b = \overline{(\overline{a\overline{b}}) · (\overline{\overline{a}b})}

[figure: &; &; ≥ 1; x; a; b; &; &; b; &; &; a; &; x]

Bild b1p15

Beispiel 2 x = ā · b̄· c + ā · b · c̄+ a · b̄· c̄+ a · b̄· c x = ā · b̄ · c + ā · b · c̄ + a · b̄ x = \overline{\overline{ā · b̄ · c} · \overline{ā · b · c̄} · \overline{a · b̄}}

[figure: &; &; &; &; a; b; c; \overline{a}; \overline{b}; \overline{c}]

Bild b1p16

1.3. LOGISCHE SCHALTUNGEN 17

1.3.2 Rechnerbausteine

1.3.2.1 Addierer Halbaddierer a + b = Ergebnis e und Übertrag c

a b e c 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1  .. \begin{aligned}e & = a ⊕ b \\ c & = a · b \end{aligned}  .. ^{& ⊕ a b  ec}_{Bild b1p17}

Volladdierer a_{i} + b_{i} + c_{i} = Ergebnis e_{i} und Übertrag c_{i+1}

\begin{matrix}a_{i} & b_{i} & c_{i} & e_{i} & c_{i+1} \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 1 & 0 \\ 0 & 1 & 0 & 1 & 0 \\ 0 & 1 & 1 & 0 & 1 \\ 1 & 0 & 0 & 1 & 0 \\ 1 & 0 & 1 & 0 & 1 \\ 1 & 1 & 0 & 0 & 1 \\ 1 & 1 & 1 & 1 & 1 \end{matrix}  . . \begin{aligned}e_{i} & = (a_{i} ⊕ b_{i}) ⊕ c_{i} \\ c_{i+1} & = a_{i} · b_{i} + c_{i} · (a_{i} ⊕ b_{i}) \end{aligned} ^{HA a b  ec a_{i} b_{i}  HA a b  ec c_{i}  ≥ 1  c_{i+1} e_{i}} Bild b1p18

Subtrahierer x = a + (-b) mit -b = \overline{b} + 1 (2-er Komplement)

18 KAPITEL 1. GRUNDLAGEN DER DIGITALELEKTRONIK 1.3.2.2 Multiplexer

[figure: s_{1}; s_{0}; x_{3}; x_{2}; x_{1}; x_{0}; 0; 1; 2; 3; y; x_{0}; x_{3}; x_{2}; x_{1}; y; mehrstufiger Umschalter]_{Bild b1p20} . .[figure: &; &; &; &; s_{1}; s_{0}; x_{0}; x_{1}; x_{2}; x_{3}; ≥ 1; y]_{Bild b1p21}

\begin{matrix}s_{1} & s_{0} & y \\ 0 & 0 & x_{0} \\ 0 & 1 & x_{1} \\ 1 & 0 & x_{2} \\ 1 & 1 & x_{3} \end{matrix} . .Statische Anwendung: Boole’sche Funktion y = f(s) durch Belegung der Eingänge eines Multiplexers mit festen Werten x_{i}

Demultiplexer

[figure: s_{1}; s_{0}; y_{3}; y_{2}; y_{1}; y_{0}; x; y_{3}; y_{2}; y_{1}; y_{0}; mehrstufiger Umschalter; x]_{Bild b1p20a} . . \begin{matrix}s_{1} & s_{0} & y_{0} & y_{1} & y_{2} & y_{3} \\ 0 & 0 & x & 0 & 0 & 0 \\ 0 & 1 & 0 & x & 0 & 0 \\ 1 & 0 & 0 & 0 & x & 0 \\ 1 & 1 & 0 & 0 & 0 & x \end{matrix}

1.3.2.3 PROM

Programmable Read-only Memory Funktionswerte { d_{i} } = f(a) werden über Adreßwerte { a_{i} } aus einem Speicher gelesen, der wahlfrei (RAM) adressierbar ist. Die Zuordnung der Funktionswerte zu den Adressen erfolgt durch ”Brennen” der zugehörigen Verbindungen.

[figure: feste Adreßzuordnung; ≥ 1; ≥ 1; ≥ 1; ≥ 1; &; &; &; &; &; \overline{a_{3}}; a_{3}; \overline{a_{2}}; a_{2}; \overline{a_{1}}; a_{1}; \overline{a_{0}}; a_{0}; \overline{0000}; \overline{000}1; \overline{00}1\overline{0}; \overline{00}11; 1111; d_{3}; d_{2}; d_{1}; d_{0}; Wert; 0101; 1010; 0100; 0001; 1011; Adresse; ×; ×; ×; ×; ×; ×; ×; ×; ×; programmierbare Daten]

Bild b1p22

1.3.2.4 PAL

Programmable Array Logic Zum PROM inverse Festlegung von Funktionswerten zu (programmierbaren) Adressen.

[figure: programmierbare Adreßzuordnung; ≥ 1; ≥ 1; ≥ 1; ≥ 1; &; &; &; &; &; \overline{a_{3}}; a_{3}; \overline{a_{2}}; a_{2}; \overline{a_{1}}; a_{1}; \overline{a_{0}}; a_{0}; \overline{0}1\overline{0}1; \overline{0}11\overline{0}; 1\overline{000}; 11\overline{00}; \overline{0}111; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; ×; d_{3}; d_{2}; d_{1}; d_{0}; Wert; 0001; 0001; 0010; 0010; 1111; Adresse; feste Daten; ×]

Bild b1p23

20 KAPITEL 1. GRUNDLAGEN DER DIGITALELEKTRONIK

1.4 Sequentielle Schaltungen

1.4.1 Zeitverhalten

Gatterlaufzeiten Schaltverzögerung (delay time t_{d}) [figure: t_{d1}; t_{d0}; t; t; y; x] Bild b1p24 . . [figure: 1; x; y; &; y; oder; 1; 1; x; x; y; Identität; z.B.]_{Bild b1p24a}

Flankensteilheit Anstiegs- und Abfallzeit (rise time t_{r}, fall time t_{f})

[figure: t_{r}; t_{f}; y; t; P]_{Bild b1p25} . .in der Regel ist t_{d0} ≈ t_{d0} ≈ t_{r} ≈ t_{r} und hängt von der verwendeten Halb- leitertechnologie ab. Technologie t_{d} TTL  5 ns ECL  1 ns CMOS  15 ns

Ansprechschwellen (threshold) [figure: x; th_{1}; y; th_{0}; t_{d}; t_{d}; t; P] Bild b1p26 . . [figure: x; y; U_{f}; U_{r}] Bild b1p26a Kennlinie (Schmitt-Trigger: U_{f} < U_{r})

1.4. SEQUENTIELLE SCHALTUNGEN 21

1.4.2 Bistabile Schaltungen

Elementare Schaltwerke, Automaten

a) Rückgekoppeltes NAND instabile Kippstufe, Multivibrator

& x y  z Bild b1p27 \begin{matrix}x & y & z = \overline{xy} \\ 0 & 0 & 1 \\ 0 & 1 & 1 \\ 1 & 0 & 1 = \overline{y} \\ 1 & 1 & 0 = \overline{y} \end{matrix} . . [figure: x; z; t_{d}] Bild b1p27a x y(t) y(t+t_{d}) y(t+2t_{d}) 0 0  1  1  y = 1 = const 1 1  0  1  f_{y} = 1/2t_{d} ≈ 100MHZ

b) bistabile Kippstufe

[figure: &; y; &; x; P(t); Q(t)]

Bild b1p28

x y Q(t) P(t) Q P(t+t_{d}) Q P(t+2t_{d})
0 0 1  1  1 1  1 1 = const \overline{clear}
0 1 1  P_{t}  1 0 = \overline{Q_{t}} 1 0 = const (set)
1 0 Q_{t}  1  0 1  0 1 = const (reset)
1 1 1  1  0 0  1 1 ≠ const (instabil)
1 1 1  0  1 0  1 0 = const (bi)stabil
1 1 0  1  0 1  0 1 = const (bi)stabil
1 1 0  0  1 1  0 0 ≠ const instabil

c) RS–Flipflop

[figure: &; y; &; x; P(t); Q(t); &; &; S; T; R; T1; 1S; 1R; Q; \overline{Q}; Schaltsymbol]

Bild b1p29

R S T x y Q P
0 0 0 1 1 Q_{0} P_{0} = \overline{Q_{0}} = const
1 0 0 1 1 Q_{0} P_{0} = \overline{Q_{0}}
0 1 0 1 1 Q_{0} P_{0} = \overline{Q_{0}}
1 1 0 1 1 Q_{0} P_{0} = \overline{Q_{0}}
0 0 1 1 1 Q_{0} P_{0} = \overline{Q_{0}} = const
1 0 1 1 0 0 1 (reset)
0 1 1 0 1 1 0 (set)
1 1 1 0 0 1 1 instabil

d) D-Flipflop Speicherelement für 1 Bit Ausschließen des instabilen Zustands durch D = S = R̄

[figure: &; y; &; x; P(t); Q(t); &; &; D; T; 1D; T1; \overline{Q}; Q; Schaltsymbol]

Bild b1p30

D T x y Q
0 0 1 1 Q_{0}
1 0 1 1 Q_{0}
0 1 1 0 0 = D (set)
1 1 0 1 1 = D (reset)

e) JK-Flipflop

[figure: T1; 1S; 1R; Q; \overline{Q}; &; &; T; J; K; T1; 1J; 1K; Q; \overline{Q}; Schaltsymbol]

Bild b1p31

J K Q_{0} S R Q(T) für T = 1
0 0 0 0 0 Q_{0}  Store
0 0 1 0 0 Q_{0}  Store
0 1 0 0 0 0=Q_{0}  Reset
0 1 1 0 1 0  Reset
1 0 0 1 0 1  Set
1 0 1 0 0 1=Q_{0}  Set
1 1 0 1 0 1=\overline{Q_{0}}  Kippen
1 1 1 0 1 0=\overline{Q_{0}}  Kippen

f) Master-Slave-Flipflop Serienschaltung von einem JK– und einem RS–Flipflop. Ein- und Ausgang werden entkoppelt. Das neue Signal erscheint erst nach Beendigung des Taktimpulses (verzögert), an dessen Endflanke (flankengesteuertes Flipflop).

[figure: T1; 1S; 1R; Q; \overline{Q}; T1; 1J; 1K; Q_{1}; \overline{Q_{1}}]_{Bild b1p32} . . \begin{matrix}J & K & S(T) & Q(T) & Q(\overline{T}) \\ 0 & 0 & Q_{0} & Q_{0} & Q_{0} \\ 0 & 1 & 0 & Q_{0} & 0 \\ 1 & 0 & 1 & Q_{0} & 1 \\ 1 & 1 & \overline{Q_{0}} & Q_{0} & \overline{Q_{0}} \end{matrix}

g) T-Flipflop Anwendung eines Master-Slave-Flipflops zum Zählen

T1 1J 1K  Q \overline{Q} T 1 1_{Bild b1p32a}  . . [figure: T; Q]_{Bild b1p32b}

1.4.3 Register

a) Speicherregister (latch) Parallelschaltung von n D-Fliflops mit ge- meinsamen Ladevorgang (Load). .[figure: D; T; Q; d_{n−1}; d_{n−1}; D; T; Q; d_{i}; d_{i}; D; T; Q; d_{1}; d_{1}; D; T; Q; d_{0}; d_{0}; Load]_{Bild b1p33}

b) Zähler (counter) Sequentielle Addition Serienschaltung von T-Flipflops. Rücksetzen (reset) durch J = K = 0 beim nächsten Taktimpuls (synchrones Reset). Die Steuerung für Vorwärts/Rückwärtszählen (F/R) erfolgt durch Nutzung des Qbzw des \overline{Q}-Ausgangs (Die Umschaltung kann durch ein XOR simuliert werden).

[figure: T1; 1J; 1K; Q; z_{0}; D; =1; T1; 1J; 1K; Q; z_{0}; =1; T1; 1J; 1K; Q; z_{0}; =1; T1; 1J; 1K; Q; z_{0}; =1; F/R; Z]

Bild b1p34

\overline{}z_{1} z_{0} D  t z_{3} z_{2} Wert: 1  2 3 4  5  6 7 8 9

Bild b1p34a

c) Teiler Serienschaltung von Master-Slave- Flipflops und Rücksetzen nach Er- reichen bestimmter Werte (binär, dezimal, beliebig), die durch eine lo- gische Verküpfung der Zählerstands- werte bestimmt wird (R = f(z)). Dieser Übertrag (Carry) kann als Eingangstakt für eine nächste Stu- fe (Stelle) dienen.. . [figure: Zähler; Verknüpfung; Takt; Reset; Carry]_{Bild b1p35}

Z.B. z = (1001) = 9 ergibt einen Dezimalzähler (0 ... 9).

d) Schieberregister Serienschaltung von JK-Flipflops mit seriellem Eingang und parallelem Ausgang (Seriell-Parallel-Wandler)

[figure: T1; 1J; 1K; Q; T; D; s_{1}; T1; 1J; 1K; Q; s_{2}; T1; 1J; 1K; Q; s_{7}; T1; 1J; 1K; Q; s_{8}; \overline{Q}; \overline{Q}; \overline{Q}; \overline{Q}]

Bild b1p36

T  \overline{}t D 0 1 1 0 0 0 1 0 s_{1} s_{2} s_{1} s_{2} s_{3} s_{4} s_{5} s_{6} s_{7} s^{8}  0 1 0 0 0 1 1 0

Bild b1p36a

Nach 8 Takten stehen die 8 seriell eingegangenen Bits ”0 1 1 0 0 0 1 0” an den Ausgängen s_{8}..s_{1} zur Verfügung e) Parallel-Seriell-Wandler Schieberegister mit parallem Laden (Load) und seriellem Ausgang

Schieberegister

Takt Load Daten

Ausgang

f) FIFO (First In First Out) Registersatz, der von oben geladen und nach unten entleert wird. Die oben mit einem Ladesignal eingegebe- nen Daten werden in das unterste noch freie Register gebracht. Wenn das FIFO voll ist, wird ein entsprechendes Signal gegeben. Mit dem Signal ”Hole” werden Daten aus dem untersten Register abgeholt. Die übri- gen Daten rücken im FIFO nach. Wenn das FIFO keine Daten mehr enthält, wird das Signal ”Leer” abgegeben. Das FIFO ist ein Speicher mit sequentiellem Zugriff (SAM, sequential access memory).. . [figure: FIFO; /; Daten; Laden; Voll; /; Daten; Holen; Leer; Register]_{Bild b1p38}

Bild b1p37

Systeme, Automaten und Modelle

Kleine Einführung in die Automatentheorie

2.0 Grundbegriffe

a) System (DIN 44 300 T1, DIN 66 201) Eine Gesamtheit von Objekten, die sich aufgrund ihrer gegenseitigen Beziehungen – von ihrer Umwelt abhebt,

– davon abgegrenzt erscheint und

– daher ein als Einheit anzusehendes und gegliedertes Ganzes bildet Die Objekte können sein:

– reale oder abstrakte Gegenstände

– Methoden oder Vorgänge Aus Systemen können durch

– Unterteilen oder

– Zusammenfügen neue Systeme gebildet werden. Das bedeutet: Systeme können Objekte in (d.h. Bestandteile von) Systemen sein. [figure: O; O; O; O; O; B; S; H; S]_{Bild n2p01} ..O: Objekte des Systems (objects) B: Beziehungen zwischen den Objekten (relations, links) H: Hüllfläche (surface) S: Schnittstellen zur Umwelt (interfaces) Beispiele: 1. Haus: Räume (O), Anordnung, Zugänge (B), Dach, Mauern (H), Türen, Versorgung, Entsorgung, Kommunikation (S). 2. Computer: Hardware, Software (O), Signale (B), Gehäuse (H), Netzleitung, Bildschirm, Tastatur (S).

Als Abgrenzung eines Systems gegenüber seiner Umwelt läßt sich eine Hüllfläche denken, die von allen Beziehungen zur Umwelt durchdrungen wird. Die Orte der Durchdringung lassen sich als Schnittstellen auffassen; die dort geltenden Bedingungen beschreiben das Systemverhalten nach außen.

Das Wort ”System” sollte stets durch einen Präfix näher bestimmt werden, z.B. Rechnersystem, Versorgungssystem.

Im ITV (ISO/IEC 2382-01.01.04A) und im IEV (351-01-01) ist ”system”: A set of interrelated elements considered in a defined context as a whole and separated from their environment. NOTE 1: Such elements may be both material objects and modes of thinking as well as the results thereof (e.g. forms of organisation, mathematical methods, and programming languages). NOTE 2: The system is considered to be separated from the environment and other external systems by an imaginary surface, which can cut the links between them and the considered system. System (in der deutschen Übersetzung): System: Gesamtheit untereinander zusammenhängender Elemente, die als Ganzes und von ihrer Umgebung abgegrenzt betrachtet werden, um ein bestimmtes Ziel zu erreichen. ANMERKUNG 1: Solche Elemente können Gegenstände oder auch Denkweisen und deren Ergebnisse (z. B. Organisationsformen, mathematische Verfahren und Programmiersprachen) sein. ANMERKUNG 2: Das System wird als von der Umgebung und anderen äußeren Systemen durch eine imaginäre Hüllfläche abgegrenzt gedacht, welche die Verbindungen zwischen diesen Systemen und dem betrachteten System durchschneiden kann.

b) Struktur Die Menge der Beziehungen zwischen den Teilen eine Ganzen, zwischen den Objekten eines Systems (abstrakt). Einfachere Definition in ISO/IEC 2382-01.01.3B und IEV 351-01-02 ”Struktur”: Gesamtheit der Beziehungen zwischen den Elementen eines Systems. (engl. structure: The relations among the elements of a system.) Beispiele:

1. Hierarchie, Baumstruktur

2. Folge, Sequenz

3. Maschennetz

4. Fraktale

5. Abhngigkeit, Versorgung (Erzeuger - Verbraucher) c) Automat (DIN 19 223) Ein Automat ist ein künstliches System, das selbstätig ein Programm befolgt. Auf Grund des Programms trifft das System, Entscheidungen, die auf der Verknüpfung von Eingaben mit dem jeweiligen Zustand des Systems beruhen, und Ausgaben zur Folge haben. [figure: Verarbeitung; Zustände; E; A]_{Bild n2p02} . .EVA-Prinzip: E: Eingabe V: Verabeitung A: Ausgabe

Beispiele:

– inhärente Automaten, z.B. Sicherungsautomat (kein endlicher Automat !)

– festverdrahtete Automaten, z.B. Kaffee-, Zigarettenautomat

– programmierbare Automaten, z.B. SPS (speicherprogrammierbare Steuerung), Computer.

Endliche Automaten haben nur endlich viele Zustände.

d) Zustand (eines Systems): Die Gesamtheit der aktuellen Werte der veränderlichen Objekte oder Beziehungen eines Systems (Zustandsvektor).

Beispiel: Zigarettenautomat Schacht: leer/gefüllt (Anzahl der Packungen {0 ... Max}) Geldeinwurf: nichts, zu wenig, ausreichend, zu viel. Geldvorrat: 0, ... Bereitschaft: bereit, defekt

2.1 Automaten

Endliche Automaten, Finite State Machines Sequentielle Maschinen M = { E, Z, A, δ, λ, Z_{0} } (eine Menge von Mengen) E: eine (endliche) Menge von Eingabewerten = Eingabealphabet, -vektor Z: eine (endliche) Zustandsmenge = Zustandsalphabet, -vektor A: eine (endliche) Menge von Ausgabewerten = Ausgabealphabet, -vektor Z_{0}: Anfangszustand δ: Zustandsübergangsfunktion, Z′ = Z(T + δt) = δ(Z(t), E(t)) λ: Ausgabefunktion A = λ(Z, E)

Schematischer Aufbau: [figure: e; λ; z; z’; E(n); A(m); δ(ΔT)] Bild n2p03 . .Eingabevektor E mit n Komponenten Ausgabevektor A mit m Komponenten Rückkopplung mit Verzögerung (ΔT) – getaktet, synchron: ΔT = 1/ f (Taktfrequenz) – ungetaktet, asynchron: ΔT = Σt_{i} (Laufzeiten)

2.1.1 Moore-Automat

Z′ = δ(Z, E) (immer) A = λ(Z) die Ausgabe A hängt \underline{nur} vom jeweiligen Zustand (Z) ab, die Ausgabe ist ein stationäres Signal… [figure: A; Z; E]_{Bild n2p04}

Beispiel: Belegung eines Parkhauses E = Ereignis, ein- oder ausfahrendes Auto Z = Anzahl der geparkten Autos { 0 .. Max}, δ: Z’ = Z ± 1 A = Anzeige der Anzahl der freien Plätze. { Max .. 0 }. λ: A = Max - Z Sobald sich die Zahl Z ändert, wird auch A geändert.

2.1.2 Mealy-Automat

Z′ = δ(Z, E) A = λ(Z, E) die Ausgabe A hängt von der Eingabe und vom aktuellen Zustand ab. Die Ausgabe ist ein (transientes) Ereig- nis, ein Impuls.. .[figure: A; Z; E]_{Bild n2p05}

Beispiel: Zigarettenautomat E = Eingabe von Geld, Z = gespeicherte Zigarettenschachteln Z und eingegebenes Geld G A = Ausgabe einer Zigarettenschachtel und/oder Geldrückgabe. Nach der Eingabe von ausreichend Geld (λ: 5 DM/Schachtel) erfolgt die Ausgabe als Ereignis, und das System geht in einen neuen Zustand über (δ: Z’ = Z - 1, G’ = G + x ).

2.2 Zustandsdiagramme und -tafeln

Beschreibung von Automaten

2.2.1 Moore-Automat

Zustandstafel

Eingaben

Zustand E_{1}  E_{2}  E_{n}  Ausgabe λ
Z_{0}  Z_{a}  Z_{b}  Z_{c}  A_{1}
Z_{i}  δ: Folgezustände  A_{i}
Z_{m}  Z_{x}  Z_{y}  Z_{z}  A_{n}

Zustandsdiagramm Knoten (Kreise): Zustände und Ausgaben Kanten (Pfeile): Eingaben, Ereignisse

[figure: Z_{0}; A_{0}; Z_{1}; A_{1}; Z_{x}; A_{x}; E_{0}; E_{1}; E_{2}; E_{i}; E_{j}; E_{n}; E_{x}]_{Bild n2p06} . .

Strukturierung Verfeinerung durch Aufgliedern und Vergröberung durch Zusammenfassen

[figure: E_{i}; E_{2}; E_{j}; E_{m}]

Bild n2p07

Beispiel 1 Das JK-Flipflop

Z = {0, 1} = Q E={J, K, T} λ: A=Z δ: Z’=δ(Z,E) gemäß Wertetabelle

J K Q_{0} Q(T) für T = 1
0 0 0 0
0 0 1 1 } Q_{0}
0 1 0 0
0 1 1 0 } Reset
1 0 0 1
1 0 1 1 } Set
1 1 0 1
1 1 1 0 \} \overline{Q_{0}}

Zustandstafel

E = (J, K)

Zustand (0,0) (0,1) (1,0) (1,1) Ausgabe
Z_{0}  Z_{0}  Z_{0}  Z_{1}  Z_{1} Q=0
Z_{1}  Z_{1}  Z_{0}  Z_{1}  Z_{0} Q=1

Zustandsdiagramm

[figure: Z_{0}; 0; Z_{1}; 1; (1,0); (1,1); (1,1); (0,1); (0,0); (0,1); (1,0); (0,0)]

Bild n2p09

2.2.2 Mealy-Automat

Zustandstafel

Eingaben

Zustand E_{1}  E_{2}  E_{3}  E_{n}
Z_{0}  Z_{a}/A_{01}  Z_{b}/A_{02}  Z_{c}/A_{03}  Z_{d}/A_{0n}
Z_{i}  Z_{j}/A_{i1}  Z_{k}/A_{i2}  Z_{l}/A_{i3}  Z_{p}/A_{in}

Folgezustände/Ausgaben

Z_{m}  Z_{r}/A_{m1}  Z_{s}/A_{m2}  Z_{u}/A_{m3}  Z_{v}/A_{mn}

Zustandsdiagramm

Knoten (Kreise): Zustände Z Kanten (Pfeile): Eingaben und Ausgaben (E/A),

auch die leere Ausgabe (-) ist möglich.

[figure: Z_{0}; Z_{1}; Z_{m}; E_{0}/A_{00}; E_{1}/A_{01}; E_{2}/A_{02}; E_{i}/A_{mi}; E_{j}/A_{mj}; E_{x}/A_{1x}; E_{n}/A_{nx}]

Bild n2p08

Strukturierung Verfeinerung durch Aufgliedern und Vergröberung durch Zusammenfassen

[figure: E_{i}/A_{ij}; E_{x}/A_{xy}; E_{k}/A_{lk}; E_{m}/A_{nm}]

Bild n2p07a

Beispiel 2 Der Kaffee-Automat

Zustände: bereit (Z_{0}), bereit mit n DPf Guthaben (Z_{nn}) Eingaben: Münzen á 10, 50 Dpf = E(10), E(50) (nicht berücksichtigt ist eine Auswahl) Ausgabe: nichts (-) oder Kaffee (+ Rückgeld) λ: Kaffeeausgabe falls mindestens 70 DPf eingeworfen wurden δ: Z’=δ(Z,E(x)) gemäß Wertetabelle

Zustandsdiagramm

[figure: Z_{0}; E(10)/-; Z_{10}; E(10)/-; Z_{20}; E(10)/-; Z_{30}; E(10)/-; Z_{40}; E(10)/-; Z_{50}; E(10)/-; Z_{60}; E(50)/-; E(50)/Kaffee + 10; E(50)/Kaffee + 20; E(10)/Kaffee oder E(50)/Kaffee + 40; E(50)/-; E(50)/Kaffee + 30; E(50)/Kaffee]

Bild n2p10

Zustandstafel

Zustand E(10)  E(50)
Z_{0}  Z_{10}/-  Z_{50}/-
Z_{10}  Z_{20}/-  Z_{60}/-
Z_{20}  Z_{30}/-  Z_{0}/Kaffee
Z_{30}  Z_{40}/-  Z_{0}/Kaffee + 10
Z_{40}  Z_{50}/-  Z_{0}/Kaffee + 20
Z_{50}  Z_{60}/-  Z_{0}/Kaffee + 30
Z_{60}  Z_{0}/Kaffee Z_{0}/Kaffee + 40

2.3 Netze

Netze aus Instanzen und Kanälen, NIK

Beschreibung statischer und stationärer Strukturen und Systeme (aus DIN 66 200)

Grundelemente

Knoten: 1. Instanzen = Verarbeitungseinheiten mit Entscheidungsbefugnis (Rechtecke)

2. Kanäle = Objekte, die ver- oder bearbeitet werden, z.B. Daten (Kreise) Kanten: Beziehungen mit Flußrichtung, Verarbeitungsfluß (Pfeile):

Grundstruktur

[figure: Bild n2p11] . .Verknüpfungsregel: Nur unterschiedliche Knoten dürfen durch Pfeile verknüpft werden (EVA- Prinzip).

Verfeinerung / Zusammenfassung Nur Knoten gleichen Typs dürfen an den Randstellen einer neuen Einheit sitzen. Sie legen damit den Typ des neuen Knotens fest. [figure: Bild n2p12] . .[figure: Bild n2p12a] Beispiel 1: Programmerstellung

[figure: Quell-; Object-; Code; Library; EXE.; Code; Code; Editor; Compiler; Linker]

Bild n2p13

Beispiel 2: Sequentieller Addierer

[figure: b; T; a; &; ≥1; J; K; JK-; Flipflop; c; =1; e]

Bild n2p13a

Man überlege sich anhand eines Impulsdiagramms die Wirkungsweise dieses Addierers.

2.4 Petri-Netze

2.4.1 Statische Petri-Netze

Variante der Netze aus Instanzen und Kanäle (NIK)

Anwendung: Beschreibung von Beziehungen in (abgeschlossenen) Systemen, d.h. zur Strukturbeschreibung von Systemen. Strukturelemente:

[figure: Instanz; Transition; Stelle, Platz; Bedingung, Zustand; Kanal]

Bild n2p14

Grundstruktur:

[figure: Stellen, Vorbedingungen; Transition, Entscheidung; Stellen, Nachbedingungen]

Bild n2p14a

Strukturvarianten:

[figure: Folge; Synchronisation; Nebenläufigkeit; Sequenz; UND; Vermehrung; ODER; Verzweigung]

Bild n2p15

Strukturierung (Verfeinerung / Zusammenfassung):

[figure: Stellen; Transitionen]

Bild n2p16

2.4.2 markierte Petri-Netze

Anwendung: Beschreibung der Dynamik, d.h. der zeitlichen Kopplungen in Systemen.

a) Beschreibung von Zuständen Zustände von Stellen werden durch Marken (gefüllte Kreise) beschrieben.. . [figure: Bild n2p17]

b) Beschreibung von Zustandsänderungen (transiente Vorgänge, deren Zeitdauer unbeobachtbar kurz ist) Regeln: - Alle Vorbedingungen einer Transition müssen erfüllt sein, d.h. alle Eingangs- stellen müssen jeweils mindestens eine Marke enthalten (Anfangszustand). - Ereignis (Verarbeitung): Die Transition schaltet und - verbraucht je eine Marke aus jeder Ein- gangsstelle, - erzeugt je eine Marke in jeder Aus- gangsstelle (Nachbedingung). . [figure: Bild n2p18] c) Beschreibung von Systemverhalten

Lebendigkeit (Liveness): jede Transition wird mindestens einmal aktiviert.

Eindeutigkeit (Determiniertheit): Jeder Gesamtzustand (Verteilung der Marken auf die Stellen) hat einen eindeutig definierten Folgezustand.

Gegenbeispiele:

[figure]

Bild n2p19

Die Marke (in der mittleren Stelle) kann nur für eine der beiden Transitionen genutzt (verbraucht) werden. Eine Vorschrift, für welche, liegt hier nicht vor. Ein Lösung kann in unterschiedlicher Bewichtung der einzelnen Kanten (Pfeile) erfolgen (bewichtete Petrie-Netze), durch die unterschiedliche Prioritäten vergeben werden.

Verklemmung (deadlock): tritt ein, falls im Lauf der Zeit auf, wenn die Anzahl der Marken so abnimmt, daß keine Transition mehr schalten kann.

Beispiel:

[figure: T0; T1; T2; T3; T4; S1; S2; S3; S4; S5]

Bild n2p20

Nach dem ersten Durchlauf (Zünden der Transitionen T1 und T2) sind nur noch 2 Marken übrig. Die linke wandert aus S4 wieder in ihre Startposition in S1, für die rechte (aus S5) kann entweder nach S2 oder nach S3 wandern. Im ersten Fall kann die Transition T1 noch einmal zünden, die T2 nie wieder. Im anderen Fall wird S3 besetzt und keine der Transitionen kann zünden, da S2 leer bleibt.

Überlauf (overflow): wenn sich im Lauf der Zeit die Zahl der Marken in einer Stelle stark vermehrt, kann die Kapazität dieser Stelle überschritten werden (wie der Überlauf in einem Datenspeicher - ”Festplatte voll!!”) und das System geht in eine Verklemmung, die sich aber unter Umständen nach einiger Zeit wieder auflösen kann.

[figure]

Bild n2p21

2.4.3 Formale Beschreibung von Petri-Netzen

Statische Beschreibung Alle Transitionen können durch die eingehenden und die ausgehenden Stellen in Form einer Tabelle beschrieben werden. Z.B. (p20)

Transition Eingangsstellen Ausgangsstellen
T0  S4  S1
T1  S1 S2  S4
T2  S2 S3  S5
T3  S5  S3
T4  S5  S2

Eine äquivalente Beschreibung der Stellen, mit anliefernden und abnehmenden Transitionen ist ebenso möglich.

Dynamische Beschreibung Die dynamische Beschreibung soll hier für getaktete Systeme gezeigt werden, wo zu jedem Zeitintervall ein bestimmter Gesamtzustand, d.h. eine bestimmte Verteilung der Marken auf die Stellen gegeben ist. Die dann schaltenden Transitionen sind im rechten Teil durch ’x’ markiert. Bei Mehrdeutigkeiten müssen ab dem entsprechenden Zustand 2 oder mehr Folgetabellen geführt werden.

Als Beispiel wird die Verklemmung des vorhergehenden Abschnitts (Bild 20) beschrieben.

Zustand  Stellen  Transitionen
Z  S1 S2 S3 S4 S5 T0 T1 T2 T3 T4
Z0  1 2 1 0 0 - x x -  -
Z1  0 0 0 1 1 x -  - x - 1. Alternative
Z2  1 0 1 0 0 -  -  -  -  - deadlock
Z1a  0 0 0 1 1 x -  -  - x 2. Alternative
Z2a  1 1 0 0 0 - x -  -  -
Z3a  0 0 0 0 0 -  -  -  -  - deadlock

2.4.4 Anwendungen von Petri-Netzen

Semaphore Nachrichtenstelle zum gegenseitigen Ausschluß (mutual exclusion) bei der Belegung von Betriebsmitteln, z.B. Drucker in einem Netzwerk (Sperrsynchronisation). Konkurrierende Prozesse P1 und P2 können quasi gleichzeitig eine Druckanforderung erzeugen (S1 und S2). Da aber nur ein Drucker vorhanden (nur eine Marke in S0) ist, kann nur ein Auftrag bearbeitet wer- den, nur eine Transition (T1) wird aktiv. Nach Durch- laufen des Druckprozesses (S3) fährt der Prozeß P1 mit der Transition T3 fort, geht in einen neuen Ab- schnitt S5 und gibt den Drucker frei, indem eine neue Marke in S0 erzeugt wird, mit der Prozeß P2 weiter- machen kann.. . [figure: P1; Drucker; P2; S1; S0; S2; T1; T2; S4; S3; T3; T4; S5; S6]_{Bild n2p22}

Z S0 S1 S2 S3 S4 S5 S6 T1 T2 T3 T4
Z0 1 1 1 0 0 0 0 x - - - 1. Prozess druckt
Z1 0 0 1 1 0 0 0 -  - x - Drucken beendet
Z2 1 0 1 0 0 0 0 - x -  - 2. Prozess druckt
Z3 0 0 0 0 1 0 0 -  -  - x Drucken beendet
Z4 1 0 0 0 0 0 1 -  -  -  - Drucker bereit

FIFO [figure: S_{0}; D_{0}; S_{1}; D_{1}; S_{2}; D_{2}; S_{8}; D_{7}; D_{8}; H; T_{0}; T_{1}; T_{2}; T_{7}; T_{8}; Frei/; Voll; Daten; Laden; Holen; Nicht-Leer; L; S_{7}]_{Bild n2p23} . .Die Erstellung der statischen und der dynamischen Tabellen soll dem Leser überlassen bleiben.

2.4.5 Varianten von Petri-Netzen

a) gewichtetet Petri-Netze Bei dieser Variante werden den einzelnen Zuführungen von Transitionen zu Stellen unterschiedliche Gewichte zugeordnet, damit können Konkurrenzsituationen besser aufgelöst werden. (vgl. w.o.)

b) farbige Petri-Netze Bei dieser Variante können den Marken unterschiedliche Farben zugeordnet werden, derart daß für die Aktivierung einer Transition stets Marken gleicher Farbe notwendig sind.

c) Petri-Netze mit Nachbedingungen Bei dieser Variante müssen für die von einer bestimmtem Transition erzeugten Marken bestimmte Bedingungen erfüllt sein, so z.B. daß die Ausgangsstellen leer sind.

Rechnerarchitekturen

3.0 Der Rechner als System

Grobstrukturen:

- Hardware: Zentraleinheit und Peripherie

- Software: Programme und Daten

Programme Daten

Dienst-Anwender-Dateien

Ein-/

Betriebssystem

Verbindungen (Bus)

CPU Memory

Peripherie-Anschlüsse

Ausgabe-

Programme Programme

Anwendungen

Basismaschine

Periphere Geräte

[figure] [figure] [figure]

SW

HW ZE

[figure] [figure]

1μs 1h

[figure] [figure]

1ms 1s

t (variabel)

(konstant)

Bild n3p00

Das Bindeglied zwischen Hard- und Software ist die CPU (Central Processing Unit, der Zentralprozessor). Deren Leitwerk liest die Instruktionen aus dem Arbeitsspeicher, interpretiert sie und führt sie aus. Dabei steuert sie das interne Rechenwerk, den CPU-internen Datenfluß und den gesamten Datenverkehrüber über das Verbindungsnetzwerk (meist einen Bus).

Betriebssysteme und Betriebsarten:

1. Single User  Multi User
z.B. MS-DOS  Unix

ohne Datenschutz mit Datenschutz:

(Benutzerkennung, Passwort)

2. Single Tasking Multi Tasking Mehrprogrammbetrieb

ein einziges (komplexes) Programm in Betrieb mehrere Programme in Konkurrenz um 1 oder n CPU (concurrency) Zuteilungsstrategien (sheduling):

– time-sharing

– resource-sharing

nur Spezialrechner

(MS-DOS), Unix

3. Single Processing

Multiprocessing

Ein Prozessor (1 CPU)

Mehrere Prozessoren (n ≤ 2^{16} = 65 536) Massive Parallel Computing

z.B. Prozeßrechner in Geräten

z.B. Hypercube, Suprenum

Der Rechner als endlicher Automat:

- Eingabealphabet: Binärwerte

- Ausgabealphabet: Binärwerte

- Zustandsalphabet: Z = {Z_{0}...Z_{z}} Bei einem Binärrechner ist z = 2^{x}, wobei x die Zahl aller Binärvariablen (Bits) ist. Abschätzung: x = c + m + p c: Bits innerhalb der CPU ca. 20 Register à 16 bit: m: Kapazität des Arbeitsspeichers, typ. 1 MB = 1 000 000 * 8 bit p: Kapazität der Peripherie, einschließlich Bildschirm und Tastatur.

Einheit Menge Zugriffszeit
CPU  c = 1024 (32 Register à 32 Bit) 1 - 20 ns
Arbeitsspeicher m = 16 ∗ 10^{6} (20 MB)  1 μs

Peripherie:

Tastatur 4 * 102 Tasten 1 s
Bildschirm 1 Mio Pixel  10 ms (100 Hz)
Festplatte p > 8 ∗ 10^{9} (1 GB) 10 ms

Damit wird x im wesentlichen durch p (die Speicherkapazität der Peripherie) bestimmt; im folgenden wird mit x ≈ p ≈ 10 · 10^{9} gerechnet.

Abschätzung: z = 2^{x} = 2^{10·10^{9}} = (2^{10})^{10^{9}} ≈ (10^{3})^{10^{9}} = 10^{3·10^{9}} Das ist eine Zahl mit 3 Milliarden Nullen. Es ist also eine sehr große Zahl, die aber

endlich ist !

Man überlege sich die Zeit für das Ausdrucken einer so großen Zahl.

3.1 Rechnerkonfiguration

Rechner := Zentraleinheit + Peripherie

Zentraleinheit: Rechnerkern

Peripherie:

- Datenendgeräte (Terminals): Datensichtgerät (Monitor + Tastatur), Drucker, Plotter,

- Massenspeicher (Hintergrundspeicher): Magnetplatte (auch Floppydisk), Magnetband (auch Cassetten),

- Kommunikationsperipherie: Modem, Ethernetanschluß o.ä.

- Prozeßperipherie, insbesondere A/D- und D/A-Wandler

Zentraleinheit

[figure] [figure] [figure]

Terminals

Datenendgeräte [figure] [figure]

[figure]

[figure]

Massenspeicher

[figure] [figure]

A D D

A

Prozeßperipherie

Modem

Kommunikationsperipherie

[figure]

[figure]

Bild n3p01

Begriffsbildungen: Betrachtungseinheiten

Baueinheiten / Beispiel  Funktionseinheiten / Beispiel
Baueinheit:  Haus  Funktionseinheit:  Wohnhaus
Baugruppe:  Dach, Raum, Tür  Funktionsgruppen:  Küche, Zugänge

Sitzgruppe

Bauelement: Ziegel, Balken, Nagel Funktionselement: Möbel, Haken

Computer:

Der sog. Rechnerkern umfaßt als Baueinheit oft mehrere Funktionseinheiten: Die Zentraleinheit, Massenspeicher, Stromversorgung.

Eine Funktionseinheit, wie z.B. der Arbeitsspeicher, kann auf mehrere Baueinheiten (Speicherwerke) verteilt sein.

3.2 Die Zentraleinheit

Definition: Alle Funktionseinheiten, die vom Zentralprozessor (CPU) direkt erreicht (adressiert) werden können.

CPU MEMory

Geräteanschlüsse

[figure]

Bus

Periphere Geräte

Bild n3p02

Grundfunktionen

- Die CPU ist der eigentliche (einzige) aktive Kern des Rechners - das Steuerwerk liest Instruktionen aus dem MEMory

- das Leitwerk interpretiert sie und steuert Rechenwerk

- das Steuerwerk liest Daten aus dem MEMory oder vom GA

- das Rechenwerk verarbeitet die Daten

- das Steuerwerk schreibt Ergebnisse ins MEMory oder zum GA

- das Unterbrechungswerk verwaltet Interrupts

- Der Arbeitsspeicher (MEMory) enthält Daten und Instruktionen als Bitmuster in adressierbaren Speicherworten (der Breite n Bit).

- Die Geräteanschlüsse sorgen für die Kommunikation mit den peripheren Geräten; sie transferieren Daten von und zu Geräten sie steuern den Transfer und die Geräte (oft enthalten sie eigene Prozessoren).

- Der Bus verbindet alle Funktionseinheiten, er überträgt Daten, Adressen und Steuersignale. (es können auch andere Topologien eingesetzt werde, z.B. Ring oder Stern)

[figure: CPU; GA; MEM; CPU; GA; MEM; Schalt-; werk]_{Bild n3p02a} . . [figure: CPU; GA; MEM; A; D; S] Bild n3p02b Die Zentraleinheit als Netz aus Instanzen und Kanälen

3.2.1 Die CPU

- Steuerwerk: koordiniert die Zugriffe auf den Bus und den Datentransfer.

- Leitwerk: interpretiert Instruktionen anhand eines Mikroprogramms, das in einem ROM gespeichert ist.

- Rechenwerk: führt Operationen aus, meist nur auf ganze Zahlen (Integer) Der Kern ist die ALU (Arithmetic and Logic Unit)

- Coprozessoren für Gleitpunktoperationen (Floating Point Processor), Textoperationen (Byte Processor)

- Register enthalten die wichtigsten Daten

- Der Zugang zum Bus ist meist gepuffert, d.h. hier werden Zwischenspeicher für Adressen und Daten eingesetzt, die einen größeren Umfang annehmen können und dann als Cache bezeichnet werden.

[figure: Daten; Adressen; Steuerung; Register; PC (IP); SP; Adressen-; Daten-; Register; Leitwerk; Interrupt; ALU; Priorität; N; Z; V; C; Prozessorstatuswort; CPU; BUS; D; A; und; BUS]_{Bild n3p03} ..Die wichtigsten Register der CPU PC (IP):Der Program Counter (Instruction Pointer) zeigt auf die nächste zu bearbeitende Instruktion SP: Der Stack Pointer (Kellerzeiger) zeigt auf die zuletzt auf dem Stack benutzte Adresse (LIFO, Last In First Out) Die Flags im Prozessorstatuswort N (negativ): Resultat war negativ Z (zero): Resultat war Null V (oVerflow): Arithmetischer Überlauf C (carry): Übertrag

- Das Unterbrechungswerk (Interrupt Arbitrator, IA) bearbeitet externe Unterbrechungsanforderungen, indem es geeignet Hilfsprogramme (Interrupt Service Routinen) aufruft, die vom Betriebssystem zur Verfügungs gestellt werden müssen.

Leistungsmerkmale

- Verarbeitungsbreite, Wortlänge (n Bit, n = 4, 8, 16, 32, 48, 64)

- Taktfrequenz (1 ... 500 MHz)

- Instruktionssatz und dessen Mächtigkeit - CISC: Complex Instruction Set Computer

- RISC: Reduced Instruction Set Computer

- Rechenleistung wird meist in MIPS (Millionen Operationen pro Sekunde), oder MegaFLOPS (Millionen Floating Point Operationen pro Sekunde) angegeben. Realistischere Angaben erhält man über Instruktionsmischungen, wie sie in realen Programmen vorkommen.

3.2.1.1 Das Mikroprogramm

Jede Instruktion, die aus dem Arbeitsspeicher gelesen wird, wird im Leitwerk anhand eines Mikroprogramms interpretiert. Das Mikroprogramm ist festverdrahtet, bzw. in einem ROM gespeichert. (Darstellung als Jackson-Struktogramme).

immer

fetch cycle

Instruktion aus dem

lesen

Ausführung

Interpretation Flags setzen

Operation ^{0}

Sprung ^{0}
Sonst. ^{0}

source cycle destination c.

Interrupt ?

ja ^{0} nein ^{0}

PUT

GET

source cycle

destination c.

PC → Stack

PC ← IVT

Speicher

Operanden lesen Ergebnis abspeichern

PC→ a

R→ s
d→ D

PC+1

Bild n3p04

D+1→D

Source cycle Operation

destination c. z.B. INC X 2-Op-Op^{0}

1-Op-Op^{0}

0-Op-Op^{0}

3-Op-Op^{0}

Operation

Sprung  \overline{}ja ^{0}  nein ^{0} ausführen^{PC→ a} ^{R→ s}  ^{d→ D}  ^{PC+1} Sprungadresse bestimmen  absolut^{0} relativ^{0}^{D→ PC}  ^{PC+D→ PC}

A→ a

R→ s

d→ D

PC+1

A→ a

D→ d

W→ s PC→A Bild n3p04b Bild n3p04a

3.2.1.2 Instruktionen und Adressierungen

Instruktionssatz oder Befehlsvorrat: Menge der zulässigen Instruktionen (engl.: instruction set). Jede Instruktion besteht im Prinzip aus zwei Teilen,

Op-code Adreßteil

- Der Instruktionsteil, Operationscode, (Op-code) legt die Art der Instruktion fest und damit auch die Zahl der Operanden,

- Der Adreßteil beschreibt den Zugriff auf Operanden oder Adressen. In der Regel steht hier nur der Adressierungsmodus, ein Verweis dafür, wie Operand oder Adresse gefunden werden kann.

Operationscode und Adreßteil können auch bitweise gemischt sein; das Steuerwerk der CPU muß nur wissen, was wo steht, und dementsprechend handeln.

In manchen Fällen werden Operanden oder Adressen indirekt durch den Operationscode festgelegt, z.B. INC X (erhöhe X um 1); LDA X (lade den AKU mit Operand X). Instruktionsgruppen

- Steuerungsinstruktionen wie HALT, RESET, WAIT, NOP (0 Operanden)

- Verarbeitungsoperationen wirken auf einen oder mehrere Operanden. - 1-Operanden - Operationen, wie CLEAR X, TEST X

- 2-Operanden - Operationen, wie COMP A,B (compare), MOV A,B (move) (auf 1 Operand) reduzierbare wie NEG X, ABS X, DEC X, INC X, ROTR/L X

- 3-Operanden - Operationen, wie ADD, SUB, MUL A, B, C (A + B = C)

- 4-Operanden - Operationen, wie DIV A, B, C, D ( A/B = C rest D)

- Verzweigungen:

- unbedingte und bedingte Sprünge mit Sprungbedingung über die Status Flags wie BEQ a (branch on equal) nach a, wenn das Z-bit gesetzt ist,

- Unterprogrammsprünge (meistens ohne Bedingung) (CALL subroutine). Rücksprungadresse auf dem Stack. Beim Rücksprung (RETURN) wird die Rücksprungadresse dort wieder abgeholt. Komplikation bei der Multiplikation: Das Produkt aus 2 Zahlen mit je n bit er-

gibt ein Ergebnis mit 2n bit, und kann nur in 2 Speicherworten untergebracht werden; z.B. in doppelt langen AKUs, oder im Speicher in zwei aufeinanderfolgenden Worte (Double). Entsprechende Komplikationen treten bei der Division auf. Das Rechenwerk

[figure: Ergebnis E; Operand A; Operand B; Funktion; Takt; ALU; C; c_{n+1}; c_{n}; e_{n}; ⊕; ∨e_{i}; V; N; Z]

Bild n3p04d

Adressierung Ein Operand kann in einem internen Daten-Register der CPU stehen, oder im Speicher, aus dem er erst noch gelesen werden muß.

Bei der Speicheradressierung wird stets ein internes Register der CPU verwendet, entweder der Program Counter, ein Adreßregister oder der Stack Pointer

Adressierungsmodi (bestimmte Bitkombinationen) bestimmen, wie diese Register zu verwenden sind:

reg mode

Dabei benötigt man r Bit (3...5) für die Auswahl des Registers und m Bit (3...5) für den Modus.

Folgende Adreßmodi (mode = 0 ... 2^{m} − 1) sind denkbar:

a) Alle Register (reg = 0 ... 2^{r} − 1) 0: direkt: die Daten befinden sich im Register. 1: absolut: das Register (Adreß- oder Indexregister) enthält die absolute Adres-

se des Operanden, 2: indirekt: das Adreßregister enthält die Adresse der Adresse des Operanden, 3: indiziert: der Inhalt des Adreßregisters addiert zum Inhalt des unmittelbar fol-

genden Wortes ergibt die Adresse des Operanden, 4: indirekt indiziert: ergibt wie oben die Adresse der Adresse des Operanden. 5: auto-increment (absolut oder indirekt): mit einer automatischen Erhöhung des

Adreßregisters nach dessen Benutzung, 6: auto-decrement (absolut oder indirekt): mit einer automatischen Erniedrigung

des Adreßregisters vor dessen Benutzung. 7: relativ: der aktuelle Wert des PC zuzüglich einer Verschiebung (offset) aus einem

Register oder aus der nachfolgenden Speicherzelle.

b) Adressierungen, die den PC benutzen (reg = 7) müssen dafür sorgen, daß der PC nach Benutzung erhöht wird, um auf das nächstfolgende Speicherwort zu zeigen. Manche CPU macht dies automatisch nach jeder PC-Benutzung, dann machen die Modi 5 und 6 keinen Sinn. Oder es kann praktisch nur der Modus 5 (auto- increment) benutzt werden.

Beim Modus 0 wird in jedem Fall durch eine Veränderung des PC ein Sprung durchgeführt.

c) Die Adressierung mit dem Stack Pointer (reg = 6) erfolgt meist implizit, bei bestimmten Instruktionen.

Bei einem Unterprogrammsprung wird der aktuelle PC auf dem Stack abgelegt. Dieser PC-Wert zeigt schon auf die nächste Instruktion, die aber erst nach Rückkehr bearbeitet werden soll; er stellt also die Rücksprungadresse dar, die beim Rücksprung dort wieder abgeholt wird.

Der Stack Pointer wird nach Ablegen eines Wertes (PUSH) jeweils anschließend automatisch erhöht (auto-increment), um auf einen freien Platz zu zeigen; beim Abholen (POP) wird er erniedrigt, um den Platz wieder als frei zu kennzeichnen. Da der Stack bei den meisten Rechnern ein beliebiger Bereich im Arbeitsspeicher sein kann, muß der Stack Pointer von der Software vor der ersten Benutzung einen Wert erhalten, und während der Arbeit sollte er immer überprüft werden, ob er den vorgesehen Bereich nicht überschreitet (engl.: stack overflow) und andere Daten zerstört.

Instruktionsgröße die Anzahl der Speicherworte, die eine Instruktion belegt, hängt von der Instruktion, den Operanden und deren Adressierungsmodi ab. So findet man bei einem 2-Adreßrechner folgende Konstellationen: 1 Wort bei Steuerungsinstruktionen (0-Operanden) und bei allen Operationen, bei denen alle Operanden oder Adressen schon in der CPU vorhanden sind:. . Steuerung oder Op-code Adr.

2 Worte bei Einadreßinstruktionen mit dem Operanden oder dessen (absoluter, relativer, indirekter oder indizierter) Adresse im unmittelbar darauf folgenden Wort:. . Op-code Adr. Operand/Adresse

3 Worte bei 2-Adreßinstruktionen wenn weder Operanden noch Adressen in der CPU vorliegen.. . Op-code Adr. Adr. 1. Operand/Adresse 2. Operand/Adresse

1-Adreß-Rechnern können alle 0- und 1-Operanden-Operationen auch auf Operanden im Speicher ausführen. Für 2-Operanden - Operationen (und mehr) benutzen sie meist ein internes Arbeitsregister, den AKU.

Bei einigen 2-Operanden - Operationen wie NEG, ABS, etc. wird hier der Ausgabeoperand, das Ergebnis, auf den Platz des Eingabeoperanden, des Quelloperanden geschrieben und dieser geht dabei verloren.

Bei den anderen 2-Operanden - Operationen wie MOV, COMP, muß einer der Operanden zuerst in ein besonderes Register der CPU, in der Regel in den AKU gebracht werden. Dann wird aus einer Instruktion, wie MOV A, B . .eine Reihe von einfachen Instruktionen, wie LDA A (lade den AKU von A) und STA B (speichere AKU nach B)

Bei 3-Operanden - Operationen (ADD, SUB, MULT) muß dann einer der Quelloperanden schon im AKU stehen, während der zweite vom Speicher eingelesen werden kann. Das Ergebnis wird dann auf einen der Quelloperanden (meist in den AKU) geschrieben, so daß dieser Wert verloren geht.

Bei 4-Operanden-Operationen (z.B. DIV) könnten dann im Prinzip beide Quelloperanden durch die Ergebnisse überschrieben werden; tatsächlich verwendet man aber hier meist 2 verschiedene 3-Operanden-Operationen, z.B. DIV und MOD, die jeweils nur den Quotienten oder den Rest liefern. 2-Adreß-Rechnern müssen solche Tricks eigentlich erst ab 3 Operanden anwenden, jedoch werden auch hier meistens solche Operationen wie NEG, ABS, etc. wie bei 1-Adreß-Rechnern als 1-Operanden - Operationen behandelt, bei denen der Originalwert verloren geht.

Bei den 3-Operanden - Operationen wird in der Regel so verfahren, daß der 2. Operand vom Ergebnis überschrieben wird

ADD A, B → (A + B ⇒ B) 3-Adreß-Rechner findet man selten

3.2.2 RISC

RISC (Reduced Instruction Set Computing) unterscheidet sich vom bisher betrachteten CISC (Complex Instruction Set Computing) insbesondere in zwei Punkten:

1. der Load-and-Store-Architektur,

2. dem Pipelining.

Der ”reduzierte Instruktionssatz“, der in diesem Begriff so betont wird, ist eigentlich von untergeordneter Bedeutung. Betrachtet man die Menge der unterschiedlichen Op-Codes, so stehen die RISC- den CISC-Prozessoren nur wenig nach (ca. 50 : 60). Der große Unterschied ergibt sich erst, wenn man gleichzeitig den Adressierungsumfang, d.h. die Menge der verschiedenen Adressierungsarten betrachtet (s.w.u.). Und auch das Prinzip des Pipelining ist in Ansätzen bei CISC-Prozessoren zu finden, kann dort aber nicht konsequent durchgehalten werden.

3.2.2.1 Load-and-Store-Architektur

Die Load-and-Store-Architektur eines RISC-Prozessors besteht darin, daß der Instruktionssatz in mehrere Klassen aufgeteilt wird:

- Instruktionen zum Speicherzugriff, die im wesentlichen aus den Instruktionen LOAD register from memory STORE register to memory

Op-code Register

Operand/Adresse

bestehen, und den gesamten Adressierungsumfang besitzen wie CISC-Prozessoren;

- Verarbeitungsinstruktionen, die nur auf die Inhalte von Registern wirken, und so einen sehr eingeschränkten Adressierungsumfang haben, jedoch meisten 3-Adreß-instruktionen darstellen: z.B.

ADD reg1,reg2,reg3 (reg1 = reg2 + reg3)

Op-code reg1, reg2, reg3

Dadurch bleiben die Quelloperanden erhalten und müssen nicht aus dem Speicher nachgeladen werden. Damit möglichst viele Operanden in den Registern gehalten und nicht immer wieder nachgeladen werden müssen, wird die Zahl der CPU-Register möglichst groß gemacht, typisch sind 32 Datenregister.

- Verzweigungsinstruktionen, wie

BRAnch(BEDingung) Ziel

Op-code Bedingung

Zieladresse

- Steuerungsinstruktionen, wie HALT und WAIT sind selten, dafür Verwaltungsintruktionen für das Pipelining, insbesondere bei Sprüngen und Unterbrechungen.

3.2.2.2 Pipelining

Pipelining (Rohrleitung) bedeutet, daß das Verarbeitungsgut (Information) von einer Bearbeitungsstation zur nächsten weitergeleitet wird wie bei einem technischen Prozeß.

Beim CISC-Prozessor findet man auch mehr oder minder abgeschlossene Zweige, wie das Lesen einer Instruktion (Fetch Cycle). Dieses kann unabhängig von allen anderen Abläufen parallel erfolgen (instruction prefetch). Bei allen anderen CISC-Instruktionen sind die verschiedenen Möglichkeiten zu unterschiedlich.

Beim RISC-Prozessor wird eine Klasseneinteilung vorgenommen in

- Verarbeitungsinstruktionen, bei denen die Durchführung der Operation Zeit beansprucht, und nur mit einfachsten Adressierungen für Quell- und Zieloperanden durchgeführt werden,

- Load- und Store-Instruktionen, bei denen praktisch keine Verarbeitung erfolgt, dagegen Zeit für ausgiebige Adreßermittlung beim Speicherzugriff bleibt. Daß hierbei nicht auf den Hauptspeicher, sondern auf ein Cache Memory (s. 2.5.5) zugegriffen wird, ist fast selbstverständlich; meist wird sogar mit 2 Cache Memories gearbeitet, eines für die Daten, ein zweites für die Instruktionen.

In der Regel werden die RISC-Instruktionen in folgenden Schritten abgearbeitet:

- IF:  Instruktion lesen (Fetch Cycle)
- RD: Operanden (aus Registern) lesen (read)
- OP: Operation durchführen
- MM: Zeit für einen zusätzlichen Speicherzugriff (bei LOAD oder STORE)
- WT: Abspeichern des Resultats (write)

[figure: IF; IF; RD; OP; IF; RD; OP; MM; IF; RD; OP; MM; IF; RD; WT; RD; OP; MM; WT; OP; MM; WT; MM; WT; WT; Zeit; aktueller Takt; Instruktion (PC); 1; 2; 3; 4; 5]

Bild b3p35

RISC-Pipelining: Ein RISC-Prozessor teilt die Bearbeitung einer Instruktion in mehrere (5) Phasen auf, die auf entsprechende Bearbeitungsstationen verteilt und im Pipelining weitergegeben werden, so daß mehrere Instruktionen gleichzeitig in Bearbeitung sind und nach außen die Arbeitsgeschwindigkeit um das 5-fache erhöht erscheint.

Besondere Probleme ergeben sich, wenn der sequentielle Bearbeitungsfluß unterbrochen wird: wenn innerhalb des Programms (synchron) verzweigt wird, oder wenn eine (asynchrone) Unterbrechung von außen erfolgt. Dann müssen solche Instruktionen, die bereits begonnen wurden, abgebrochen werden; bei manchen, die z.B. schon ein Ergebnis ins Memory geschrieben haben, geht das aber nicht, dann muß die Verarbeitungskette angehalten werden (pipe stalling) und diese Instruktion bis zum Ende durch geführt werden. Dabei muß auch der Program Counter in der CPU entsprechend zurück gesetzt werden, damit bei der Wiederaufnahme an dieser Stelle korrekt fortgesetzt wird.

3.2.3 Der Bus

Bustypen:

- parallele Busse, Daten- Adreß- und Steuerbus

- serielle Busse (in der Zentraleinheit selten)

- synchrone (mit Taktsignal) und asynchrone Busse

- Adressen und Daten im Raummultiplex (eigene Leitungen)

- Adressen und Daten im Zeitmultiplex (nacheinander auf den gleichen Leitungen)

a) Das Busprotokoll für einen synchronen Bus (im Raummultiplex). Adressen und Daten werden als Worte parallel übertragen.

[figure: NoWait(MEM); Adressen(CPU); Daten; READ(CPU); WRITE(CPU); Lesen; fetch cycle; Lesen; source cycle; Schreiben; destination cycle; Takt(CPU); MEM; MEM; CPU]

Bild n3p05a

b) Das Busprotokoll für einen asynchronen Multiplex-Bus (im Zeitmultiplex). Adressen und Daten werden als Worte auf denselben Leitungen nacheinander übertragen. Die Steuersignale sorgen im Handshaking-Verfahren für eine gesicherte Datenübertragung.

[figure: Daten-; Adressen; A(CPU); A/D (CPU); BUSY(CPU); Read(CPU); Write(CPU); Ackn(MEM); D(MEM); A(CPU); D(CPU); Lesen; Schreiben]

Bild n3p05b

c) Interrupts Die Bussignale bei einer Interrupt-Anforderung (READ- bzw. WRITE-Signale sind hier weggelassen)

[figure: IRG; IRQ; BUSY; CPU; CPU; ACKN.; Adressen; Daten; t; G.A.; CPU (IA); CPU; CPU; M; CPU; G.A.; M; M; Interrupt-Zyklus; Interrupt-Sequenz; G.A.; CPU]

Bild n3p06

Ein Interrupt Request (IRQ) wird erst nach Abarbeitung einer Instruktion von der CPU zugelassen (IRG, Interrupt Grant). Dann schickt der Geräteanschluß auf den Datenleitungen einen Wert, der als Interrupt Vektor von der CPU (bzw dem Umterbrechungswerk) interpretiert wird und dazu dient, aus der Interrupt Vektor Tabelle (IVT) eine Adresse für eine Interrupt Service Routine in den Programm Counter (PC) zu lesen (und auch eine neues Prozessor Status Wort (PSW). Der alte PC (und auch der Prozessor Status, PSW) werden für einen Rücksprung auf dem Stack gesichert. Diese 4 Speicherzugriffe stellen die Interrupt Sequenz dar.

d) einige Bussysteme

Bussystem Über- tragungs-Daten- Adreß- Steuer- Gesamt-Inter- rupt-Bus- zyklus

Standards

Protokoll  Leitungen  Ebenen (nsec)
S-100 Bus asynchron 8+8 16(24) 44  100  2  ≈ 500 IEEE 696

STD-Bus synchron (+WAIT)

8  16  22  56  2  ≈ 500

diverse Hersteller

MULTIBUS asynchron 8/16 20(24) 23  86+60  8  ≈ 100 IEEE 796
VME-BUS asynchron 16(64) 24(32) 38  96+96  7  ≥ 50 IEC 821

Q - BUS asynchron multiplex

16  18(22) 22  72  4  ≈ 500

DEC

EISA-Bus synchron 32  32  16+8  120 diverse Hersteller
MCA-Bus synchron 32  32  16+8  100 IBM

e) Kombinierte Bussysteme – Die Bussystem der VAX-11 (DEC)

[figure: CPU; MEM; SBI; GA; Te; GA; Adapter; Q-Bus; Adapter; GA; GA; MassBus]

Bild n3p06a (interne Busse der ZE)

– Die Bussysteme eines Prozeßrechners (Motorola)

[figure: GA; Te; GA; Adapter; VME-Bus; Adapter; SCSI-Bus; Adapter; IEC-Bus; PPC; MEM; PCI]

Bild n3p06b (externe Busse für periphere Geräte)

3.2.4 Der Arbeitsspeicher

Speicherhierarchie

[figure: Register; Cache (SRAM); Arbeitsspeicher (DRAM); Main Memory; Sekundärspeicher; externer Massenspeicher (Platte); Archivspeicher; (Wechselplatte, Magnetband, CD-ROM); Kapazität (Bytes); 16 ... 1024; 1 ... 64 K; 1 ... 160 M; 20 M ... 4 G; 100 M ... 10 T; Zugriffszeit; 10 ns; 10 ... 20 ns; 30 ... 500 ns; 10 ... 50 ms; 100 ... 1000 ms]

Bild b4p07

Begriffe

- RAM = Random Access Memory (Method): die Adresse kann eine beliebige zufällige Zahl sein (wahlfreier Speicherzugriff)

- SAM = Sequential Access Memory (Method): es gibt eine Startadresse, die folgenden Werte müssen dann sequentiell gelesen werden, z.B. FIFO, Stack, Lochstreife, Magnetband

- ROM = Read Only Memory (Nur-Lese-Speicher): z.B. Lochstreifen

- RWM = ”RAM” = Read-Write Memory: Schreib-Lese-Speicher

a) Grundstruktur

MEMory CPU  Speicherplatz Adresse  A(m) Adresse MSB  LSB 0 1 2^{m}-1 \overline{}Adreßraum: Anzahl der Adressen = 2^{m} Worte (m ≠ n)

Bild b4p07a

Kenngrößen

- Speichergröße, in Bit, Byte oder Worten (1 K = 2^{10} = 1024, 1 M = 1 Mebi = 2^{20})

- Zugriffszeit (typ: t_{a} = 30 ... 500 ns)

- Zykluszeit, bei wiederholtem Zugriff (t_{c} ≤ t_{a})

- Aufbau und Struktur

b) Bytestruktur Ein Byte ist ein Teilwort, meist 8 bit breit, zur Speicherung von Zeichen.

Wort Halbwort Byte Doppel- wort  High Byte 1 Low Byte 0 MSB  LSB Big Endian  3 2 Low Byte 0 High Byte 1 MSB  LSB Little Endian  2 3 LSB MSB

Bild b4p07b

c) Adreßräume Flacher Adreßraum: Die CPU kann logische Adressen (mit n bit Wortbreite) erstellen, welche in ihrer Breite (m bit) ausreichen, um alle Speicherplätze des realen Adreßraums direkt zu adressieren (d.h. n ≥ m). Hierarchischer Adreßraum: Die CPU liefert Adressen, welche in einem Speicherverwaltungswerk (Memory Management Unit, MMU) zu realen Adressen umgewandelt werden. Hier ist in der Regel n < m. Durch Hinzufügen von weiteren Adreßbits aus Registern der MMU (Memory Management Register, MMR) wird die reale Adresse erstellt.

[figure: MEMory; Speicherplatz; A(m); MMU; MMR; Adressen; Seitenbasis]

Bild b4p09

Die Bildung der realen Adressen kann nach unterschiedlichsten Regeln erfolgen:

a) durch einfaches Anfügen weiterer Bits aus dem MMR (nur ein MMR möglich)

b) durch Addieren des MMR zur logischen Adresse.

c) durch Auswahl eines MMR durch die obersten Bits der logischen Adresse und anschließender Verknüpfung wie in a) oder b). In jedem Fall bestimmt das MMR die unterste verfügbare reale Speicheradresse, die Seitenbasis. Die Seitengröße wird durch die von der CPU gelieferte Adresse (oder deren Rest im Falle c)) bestimmt, also höchstens 2^{n} Speicherplätze.

[figure: A(m); MMR; A(n); A(m); MMR; A(n); A(m); MMR(p); MMR(p+1); A(n); p; offset]

Bild b4p09a

3.2.5 Speicherwerke (Memory Units)

a) Grundstruktur Ein Speicherwerk (memory unit) enthält eine Speichermatrix, welche die Daten und Instruktionen in Speicherelementen enthält. Diese werden über die (decodierte) Adresse aktiviert. Der Adreßdecoder kann auch integrierter Bestandteil eines Speicherchips sein. Die Basisadresse wird nur benötigt, wenn mehrere Speicherwerke (Speicherkarten) vorhanden sind. Die Auswahl der Karte erfolgt meist über die höchstwertigen Adreßbits. Über die Steuersignale (READ/WRITE) wird die Richtung der Datenübertragung bestimmt (R/W).

[figure: Daten; Adressen; Steuerung; D; A; BUS; Speicher-; matrix; Basis; Decoder; R/W]

Bild b4p08

b) Adreßdecoder

Card Select Chip Select

Chip Address

Card Address

Decoder

Speichermatrix

-

/ l /

m = p + l + k

2^{l} Chip Select / k / p

/ l / k

Bild b4p08a

c) Speicherbausteine (Chips)

[figure: Datenbits; Chip Enable; Address Bits; Datenbits; Chip Enable; Address Bits; Datenbits; Chip Enable; Address Bits; Datenbits; Chip Enable; Address Bits; MSB; LSB; /; k; 1 ∈ 2^{l}]

Bild b4p08b

d) Chipstruktur [figure: Adreß-; Decoder; 2^{k−1}; k; /; Datenbits; Bit-Matrix; 2^{k−1}]_{Bild b4p08c} . .Die Bits im Chip sind in der Regel in einer quadratischen Matrix angeordnet; z.B. 1 M(ebi) Bits in 1K Reihen und 1K Spalten. Der Zugang kann unterschied- lich sein; z.B. kann bei einem 1M Bit Chip meist nur auf ein Bit (von 2^{20}) mit 20 Adreßleitungen zugegriffen wer- den, oder auf 2 Bit bei 19 Adreßbits.

3.2.6 Speicherelemente (Memory Elements)

a) Grundstruktur

[figure: 1 Bit; 1 Bit; D_{i}; D_{i}; 1 Bit; 1 Bit; D_{i−1}; D_{i−1}; Bitleitungen; A_{j}; A_{j−1}; Wortleitungen; R/W]

Bild b4p10

b) Ladungsspeicher (dynamisches RAM, DRAM) [figure: C; A; D]_{Bild b4p10a} . .Vorteile: - sehr klein, hohe Speicherdichte: ca 1 Mbit / Chip - billig: ca 10 DM/Mbit - schnell: t_{a} ≈ 10 – 200 ns - sparsam: ca 1 W / Chip Nachteile - flüchtig (volatil) bei Stromausfall - destruktives Lesen: t_{c} ≈ 2 t_{a} - selbstentladend: τ = 1/RC ≈ 1 ms (refresh erforderlich) - störanfällig: Entladung (Soft-Error) durch ionisierende Strah- lung (Röntgen, Höhenstrahlung, o.ä.)

Anwendung: Arbeitsspeicher in sicherheitsunkritischen Anwendungen (PC)

c) Flipflop-Speicher (statisches RAM, SRAM) [figure: ⊲; ⊳; ”1”; A_{j}; D_{i}; ”0”]_{Bild b4p10b} . .Vorteile: - sehr schnell: t_{a} ≈ 2 – 20 ns - nicht destruktiv beim Lesen: t_{c} = t_{a} - nicht selbstentladend - (klein) ca 8 Kbit / Chip Nachteile - flüchtig (volatil) - konsumptiv (viel Strom verbrauchend, ein Transistor leitet immer) ca 3 W / Chip Anwendung: Register und Puffer

d) Ringkernspeicher (Ferritkerne)

[figure: ΔU; I/2; I/2; A; R/W; D; B; H(I); I/2]

Bild b4p10c

Nachteile: - groß: ca 100 bit / 1 mm^{3} - langsam: t_{a} ≈ 500 ns - destruktives Lesen - komplexe Ansteuerung - teuer (ca 500 DM/ Kbyte) . .Vorteile: - nicht flüchtig (nonvolatil) - störsicher gegen praktisch alle Umwelt- einflüsse (Strahlung, Felder, Temperatur, Schock)

Anwendung: in sicherheitsrelevanten Anwendungen, Raumfahrt, Medizintechnik

e) Festwertspeicher (ROM) [figure: A_{j}; A_{j−1}; D_{i}; D_{i−1}; D_{i−2}; D_{i−3}]_{Bild b4p10d} . .Vorteile: - billig: ab 10 DM/Mbit - schnell: t_{a} ≈ 10 – 200 ns - sehr sparsam: ca 0.01 W / Chip - nicht flüchtig (nonvolatil) - störsicher gegen die meisten Umweltein- flüsse (Strahlung, Felder, Schock) Nachteile - einmaliges oder aufwendiges Schreiben

Anwendung: Betriebssystem-Komponenten, sicherheitsrelevante Programme Varianten

- Diodenmatrix

- PROM, Programmable ROM: die Dioden werden vom Anwender (für ”0”en) durchgebrannt (WORM = Write Once, Read Multiple)

- EPROM, Erasable PROM, wiederlöschbares PROM: Statt der Dioden werden Transitoren eingesetzt, die durch UV-Licht oder Röntgenstrahlung wieder ”geheilt’ werden können.

- EEPROM, Electrically Erasable PROM: die Löschung erfolgt elektrisch.

3.3 Geräteanschlüsse

Aufgaben:

- Steuerung von Geräten und Zustandsabfrage

- Datenübertragung von und zu Geräten

- Adressierung von Geräten

- Interfaces: byteweise Übertragung zu und und von Datenendgeräten

- Controller: blockweise Übertragung von und zu Massenspeichern

3.3.1 Grundstruktur

[figure: D; A; BUS; S; Busschnittstelle; D; S; Umsetzer; D; S; Geräteschnittstelle; D; A; S; Gerät]_{Bild n3p11} . . - Busschnittstelle: rechnerspezifisch, Kommunikation erfolgt über Register, die wie Speicher- worte angesprochen werden können. - Geräteschnittstelle: gerätespezifisch, byte- oder blockorientiert. - Umsetzer: für Daten und Steuersignale. Adressen für Geräte müssen aus Daten von der CPU gebil- det werden.

3.3.2 Busschnittstelle

a) Grundstruktur Für alle Geräteanschlüsse einheitlich.

[figure: Daten; Adressen; Steuerung; D; A; BUS; Register-; satz; Basis; Decoder; Umsetzer; Interrupts; Ereignis; CSR.IE; IRG; IRQ; Gerät; D; A; S; S]

Bild n3p11a

b) Zugriff der CPU auf Register in einem speziellen Adreßraum (IO-page) Basisadresse für jedes Gerät konfigurierbar,

z.B. COM-1 Port = 3F8h Registeradressen mit festem Offset DBR: Data Buffer Register, Datenpuffer CSR: Control and Status Register, Abfrage und Steuerung von Gerät und Umsetzer.

z.B. beim COM-1 Port (UART 8250/16450):

- 00h MSB LSB Empfangs-Datenregister (Receive Data Buffer Register,R-DBR) read only Sende-Datenregister (Transmit Data Buffer Register,T-DBR) write only

- 01h Interrupt-Aktivierungsregister (Interrupt Enable)

0 0 0 0 SINP ERBK TBE RxRd

Interrupt-Aktivierung wenn Bitwert = 1

- SINP = Serial INPut (Zustandsänderung einer Empfangsleitung)

- ERBK = Error or Break: Parity-, Overflow- oder Framing-Fehler oder BREAK - TBE = Transmitter Buffer Empty (Sendepuffer leer)

- RxRd = Received Data Ready (ein Zeichen im Empfangspuffer)

3.3.3 Polling, Interrupts und DMA

- Geräteschnittstelle: byteorientiert oder blockorientiert

- Busschnittstelle: CPU-Kontrolle oder DMA-Betrieb

3.3.3.1 Abfragebetrieb, Polling:

Übertragung unter CPU-Kontrolle

- Einzelzeichenübertragung:

MEM ↔ CPU ↔ DBR ↔ Gerät (Datenübertragung) MEM ↔ CPU ↔ CSR ↔ Gerät (Steuerung) unter Programmkontrolle z.B. TSTB CSR ; Abfrage ob READY BPL .-1 ; Rücksprung falls nicht MOV DBR, MEM ; Daten holen und speichern

- Blockpufferung: Die zu übertragenden Zeichen werden in einem FIFO zwischengespeichert und erst bei Bedarf ohne CPU Kontrolle übertragen. (Das FIFO kann auch im Gerät angesiedelt sein.) Datenübertragung: MEM ↔ CPU ↔ DBR ↔ FIFO ↔ Gerät

3.3.3.2 Interrupts

Interrupt-Behandlung in mehreren Ebenen

a) Interrupt-Erzeugung Quelle für (fast) jede Interrupt-Anforderung ist ein Geräte-Anschluß Aufagben der Interrupt-Logik

- außere Ereignisse erfassen und eventuell speichern,

- Interrupt-Anforderung (Interrupt Request, IRQ) an die CPU senden und auf deren Bestätigung (Interrupt Grant, IRG) warten,

- eventuell weitere Daten über den geforderten Interrupt senden, (Priorität des Interrupts (HW-P), Zeiger (IV) auf einen Eintrag in der IVT (vektorisierte Interrupts).)

[figure: DBR; Adressen; Interrupt; IV + HWP.; ROM oder; Ereignis; R; IE; &; Daten; I-A; RAM (Register); IRQ; IRG; IRQ; IRG; IV; CPU; Geräteanschluß]

Bild b3p15

b) Filterung der Interrupt-Anforderungen in der CPU im Interrupt-Verarbeitungswerk (Interrupt Arbitrator, I-A) nach verschiedenen Verfahren

b1) Maskierung, Verriegelung Bei der Interrupt-Maskierung wird unter Programmkontrolle ein Register geladen, dessen Bits einzelnen Geräte-Anschlüssen zugeordnet sind und deren Interruptanforderungen weitergeben oder blockieren. Beim gleichzeitigen Auftreten mehrerer IRQ könnte die Bitposition für eine weitere Auswahl (Gewichtung) herangezogen werden. Nachteilig bei dieser Interrupt-Behandlung ist die geringe Anzahl von unterschiedlichen IRQs.

[figure: &; > 1; vom Geräte-Anschluß; von der CPU; zur CPU; 1; n]

Bild b3p16

b2) Interrupt-Gewichtung Bei der Interrupt-Gewichtung werden die von den Geräte-Anschlüssen ankommenden IRQs über einen Decoder in einen Zahlenwert umgewandelt, die Hardware-Priorität (HWP), der mit einem arithmetischen Vergleicher mit dem in einem Register stehenden Zahlenwert, der Software-Priorität (SWP), verglichen wird. An die CPU wird die Interrupt-Anforderung nur dann weitergegeben, wenn HW P > SW P ist.

[figure: von der CPU; zur CPU; 1; n; Vergleicher; Decoder; von den Geräte-Anschlüssen; 0; 0; 0; 0; 1; 1; 1; 0; 0; 1; 0; 1; HW-Priorität; SW-Priorität]

Bild b3p17

c) Bearbeitung des Interrupts durch das Mikroprogramm der CPU

Anwenderprogramm

ISR1

ISR2

ISRn

IVT

Stack

Bild b3p09

- Ein Anwenderprogramm P läuft (in einer Schleife).

- Ein Ereignis löst eine Interruptanforderung aus.

- Die CPU bestätigt die Anforderung am Ende einer Instruktion

- Der aktuelle PC (und eventuell auch andere Werte, wie das Prozessor-Status-Wort PSW) wird auf dem Stack gesichert

- Aus der Interrupt Vektor Tabelle IVT wird ein neuer PC, die Einsprungadresse der ISR geholt.

- Nach Abarbeitung der ISR wird beim Rücksprung der alte PC (und die übrigen Werte) vom Stack zurückgeholt und das unterbrochene Programm fortgesetzt.

Darstellung der Abläufe durch A-t-Diagramme

[figure: t; A; ISR1; ISR2; Programm; E_{1}; t_{V}; E_{2}; E_{1}; ISRn; IVT; Stack]

Bild b3p10

Abläufe auf dem Bus beim Interrupt

[figure: IRG; IRQ; BUSY; CPU; CPU; ACKN.; Adressen; Daten; t; G.A.; CPU (IA); CPU; CPU; M; CPU; G.A.; M; M; Interrupt-Zyklus; Interrupt-Sequenz; G.A.; CPU]

Bild n3p06

d) Darstellung der Prioritätensteuerung durch P-t-Diagramme Zur Darstellung der wechselnden Prioritäten und der gegenseitigen Abhängigkeit von Hard- und Software-Prioritäten dienen P-t-Diagramme. Hier wird in Abhängigkeit von der Zeit t die Software-Priorität P (der CPU) als Kurvenzug aufgetragen, der nur (wenige) diskrete Werte annehmen kann. Als Ereignispfeile (E_{i}) werden die auftretenden Interrupts mit ihren Hardware-Prioritäten eingetragen. Falls ein solcher Pfeil eine höhere Priorität anzeigt, wird ein Interrupt ausgelöst, der in einem parallel verlaufenden A-t-Diagramm dargestellt werden kann. Falls die Hardware-Priorität niedriger ist und der Interrupt nicht sofort durchgeführt wird, kann die dabei auftretende Wartezeit (Reaktionszeit) dargestellt und bestimmt werden.

[figure: t; A; t; P; Programm; ISR1; ISR2; E_{1}; E_{2}; 1; 0; 2; 3; ISR1; ISR2; Programm]

Bild b3p18

e) Vergleich der Betriebsarten:

Polling  Interrupt
Vorteile einfache  CPU-Auslastung
Hard- und Software < 100%
Nachteile CPU-Auslastung  komplexe
= 100%  Hard- und Software

3.3.3.3 DMA-Betrieb

Direct Memory Access (Speicherdirektzugriff)

Daten

Adressen

[figure] [figure]

D A BUS

[figure] [figure]

S

Bus-Steuerung DMA-Steuerung S

(DBR)

WCR DAR MAR CSR

Register select Card select

D

DMA-Prozessor

A

[figure] [figure]

D Ereignis

–1 +1

Gerät Basis-Adresse

Bild n3p12

- MAR: Memory Address Register: Adresse im Arbeitsspeicher, von/zu der das nächste Wort übertragen wird.

- DAR: Device Address Register: Adresse des Gerätes bzw. Gerätebereichs (Plattenfläche, Sektor, Spur)

- WCR: Word Count Register: Zähler für die zu übertragenden Daten. DMA-Vorbereitung unter Programm-Kontrolle:

MOV X, MAR ; MAR laden MOV Y, DAR ; DAR laden MOV Z, WCR ; WCR laden MOV F, CSR ; Funktion laden INC CSR ; Go-Bit setzen

DMA-Übertragung ohne CPU-Mitwirkung (internes Programm des DMA-Controllers in ROM):

- DMA-Request, sobald Daten übetragen werden (Ereignis)

- DMA-Grant von der CPU nach dem nächsten Buszugriff \overline{BUSY}

- Buszugriff durch Controller ”BUSY” (DMA-Zyklus)

- Controller bedient A- und S-Leitungen

- Daten kommen vom Memory (bei READ)

- Controller gibt den Bus wieder frei

- MAR + 1

- WCR - 1 DMA-Zugriffsmethoden:

- Cycle-Stealing: CPU und Controller teilen sich den Bus 1:1

- Burst-Mode: Controller macht n Zugriffe nacheinander (1:n)

- Prozessor-Halt: Controller macht beliebig viele Zugriffe.

DMA Bus-Protokoll

\overline{}CPU Adresse Daten Busy Read Write Ackn DMA-Request DMA-Grant  CPU Controller CPU CPU  Controller MEM Controller Controller CPU  MEM MEM

Bild n3p12a

DMA-Abschluß unter Programm-Kontrolle

- Wenn WCR = 0, wird das READY-Bit im CSR setzen

- Falls ein Fehler auftritt, wird das ERROR-Bit im CSR gesetzt

- Falls Interrupt Enable gesetzt, erfolgt Aufruf einer ISR Andernfalls muß die CPU immer wieder mal nachfragen (pollen)

3.3.4 Geräteschnittstellen

zur Ankopplung von peripheren Geräten, für jeden Gerätetyp unterschiedlich:

a) Parallel-Schnittstelle (für Drucker von Centronics) Die Daten werden aus dem DBR (über Leitungsverstärker) parallel ausgegeben. Steuersignale werden aus dem CSR gebildet.

[figure: CSR; DBR; Daten; Steuerung; Strobe; Ackn; Busy]

Bild n3p13

b) Terminalschnittstelle seriell, asynchron (V.24, RS 232-C) Der Zugriff auf diese Schnittstelle erfolgt gewöhnlich über je ein CSR und ein DBR in Sende- und in Empfangsrichtung.

Zur Umsetzung wird ein Parallel-Seriell-Wandler eingesetzt, der die Datenbits eines Zeichens in eine Folge von (gleich langen) Signalen umsetzt.

Die V.24-Schnittstelle ist also sowohl für synchrone als auch für asynchrone Datenübertragung vorgesehen. Also solche, bei der die Zeichen in beliebigen Abständen oder unterbrechungslos (mit Pausenzeichen) übertragen werden.

[figure: CSR; DBR; Takt; Daten; ”1”; ”0”; Ruhezustand; Start-; LSB; MSB; (P); 1-2 Stoppbits; Parallel-Seriell; Wandler; n Datenbits; bit; Prüf-; bit; =; Mindestruhezeit; T_{s}; CSR; DBR; Takt; Daten; Seriell-Parallel; Wandler]

Bild n3p14

V.4 (DIN 66 022) legt die Zeichendarstellung auf den Datenleitungen für die asynchrone Übertragung, das Start-Stop-Verfahren fest:

- Der Ruhezustand der Leitung ist ’1’.

- Jedes Bit wird in einem Taktschritt fester Länge T_{s} übertragen.

- Der Beginn eines Zeichens wird durch ein Startbit mit dem Zustand ’0’ markiert.

- Die Datenbits werden mit dem niederwertigsten Bit (LSB = Least Significant Bit) zuerst und dem höchstwertigen Bit (MSB = Most Significant Bit) zuletzt übertragen. In der Regel werden 7 Datenbits des ASCII-Zeichensatzes übertragen.

- Den Datenbits kann ein Prüfbit gerader oder ungerader Parität folgen (even/ odd parity). Das Prüfbit wird so gesetzt, daß hiermit die Summe aller ’1’-en gerade bzw. ungerade, d.h. die gesamte Quersumme modulo 2 eine 0 oder eine 1 ergibt.

- Das Ende eines Zeichens wird signalisiert durch 1, 1.5 oder 2 Stoppbits, bei denen die Leitung im Ruhezustand ’1’ bleibt, bevor das nächste Zeichen übertragen wird. Die Stoppbits beinhalten keine Informationsübertragung, und die Angabe ihrer Anzahl bedeutet nur die Mindestruhezeit in Einheiten von Taktschritten T_{s}.

- Das nächste Zeichen kann unmittelbar darauf folgen, oder zu einem beliebigen späteren Zeitpunkt.

Freie Parametern, die am Sender und am Empfänger übereinstimmend eingestellt sein müssen:

- Baudrate oder Schrittgeschwindigkeit f_{s} = 1/T_{s}, für die folgende Werte gewählt werden können: 75, 110, 150, 200, 300, 600, 1200, 2400, 4800, 9600, und 19200 Baud. Wegen der binären Codierung ist hier die Schrittgeschwindigkeit (in Baud) mit der Bitübertragungsrate (in bps = bits per second) identisch.

- Zahl der Datenbits (n = 5,6,7,8). Für die Übertragung von beliebigen, uncodierten Dualwerten in Form von Bytes ist n = 8 zu wählen.

- Anwendung eines Prüfbits (p = 0 oder 1). Falls ein Prüfbit verwendet werden soll (p=1), muß noch die Parität auf ’gerade’ oder ’ungerade’ eingestellt werden. In manchen Fällen werden auch Prüfbits mit festen Werten verwendet: ’0’ = space parity oder ’1’ = mark parity, die vom Sender erzeugt, vom Empfänger nicht ausgewertet, aber mitgezählt werden (vgl. 2.6.6).

- Anzahl der Stoppbits (z = 1, 1.5, 2). Die Übertragungszeit für ein Zeichen ergibt sich dann zu

T_{z} = (1 + n + p + z) ∗ T_{s}

und die Zeichenübertragungsrate zu

f_{z} = 1/T_{z} (in cps = characters per second)

Typische Einstellungen sind:

- Für die amerikanischen Fernschreiber (Teletype): n = 7 (ASCII-Zeichen), p = 1, odd parity, z = 2, f_{s} = 110 Baud; das ergibt eine Zeichen(druck)geschwindigkeit f_{z} = 110/(1+7+1+2) = 10 cps

- Für Binärdaten bei hoher Geschwindigkeit: n = 8 (Byte), p = 0, z = 1, f_{s} = 9600 Baud; und einer resultierenden Übertragungsrate f_{z} = 9600/(1+8+1) = 960 Byte/sec.

Die V.24 Schnittstelle ist ursprünglich für die Kopplung von 2 gleichwertigen Datenstationen über eine Telefonleitung konzipiert worden (a). Dazu werden auf beiden Seiten Modems eingesetzt, welche die Aufgabe haben, die digitalen Signale von Terminal und Rechner in Wechselspannungen umzusetzen, wie sie auch bei der Sprachübertragung auf Telefonleitungen übermittelt werden. Wenn das Terminal nahe beim Rechner steht (b), können die Modems entfallen; dann muß aber ein Nullmodemkabel eingesetzt werden, welches eine Sende- auf die zugehörige Empfangsleitung umsetzt, und umgekehrt (c).

Dazu sind an jedem Stecker jeweils folgende Verbindungen herzustellen:

- RTS, CTS (Stifte 4 und 5) und

- DSR, DTR, DCD (Stifte 6 und 20 und 8).

[figure: Modem; DEE; V.24; DÜE; DCD; DSR; DTR; CTS; RTS; DxR; DxT; GND; 7; 2; 3; 4; 5; 20; 6; 8; Telefonleitung; Modem; Rechner; dce; RS 232C; dte; DEE; V.24; Rechner; RS 232C; dte; Nullmodemkabel; c); b); a); 7; 2; 3; 4; 5; 20; 6; 8]

Bild n3p14a

V.24 (DIN 66 020, 66 021) legt die physische und die logische Schnittstelle fest, d.h. die Stiftbelegung eines genormten, 25-poligen Anschlußsteckers (nach ISO 2110) und die Bedeutung der auf den Leitungen übertragenen Signale. Sie beziehen sich immer auf die Verbindung zwischen der Datenendeinrichtung (DEE, engl.: data terminal equipment, dte), welche sowohl ein Terminal als auch ein Rechner sein kann, und dem Modem (Modulator/Demodulator), der auch als Datenübertragungseinrichtung (DÜE, engl.: data communication equipment oder data circuit terminating equipment, dce) bezeichnet wird.

V.28 (DIN 66 259; T1) legt die elektrischen Werte für die Darstellung der Daten und der Steuersignale fest:

- Die Datenwerte werden durch Signalpegel dargestellt, die über einen Taktschritt, eine Bitdauer (engl.: bit time) konstant bleiben. Dieses Verfahren wird als NRZ (Non Return to Zero) bezeichnet. Für die Pegel wird ein Doppelstromverfahren benutzt, also Pegel entgegengesetzter Polarität, die bestimmte Grenzwerte einhalten müssen (s. Tabelle 2.8).

- Die Steuersignale können beliebige Längen haben, die Pegel für ihre EIN- bzw. AUS-Zustände sind in Tabelle 2.8 angegeben.

Schnittstellenleitungen nach V.24

Kurzzeichen  Stift  Beschreibung  Richtung
CCITT EIA  DIN ISO deutsch  englisch  Terminal
V.24  RS232 66020 2110  Modem
[figure: 101; P-GND; E 1; 1; Schutzerde; protectiv ground]
[figure: 102; S-GND; E 2; 7; Signalerde; signal ground]
[figure: 103; TD; D 1; 2; Sendedaten; Transmitted Data]
[figure: 104; RD; D 2; 3; Empfangsdaten; Received Data]
[figure: 105; RTS; S 2; 4; Sendeteil einschalten; Request to Send]
[figure: 106; CTS; M 2; 5; Sendebereitschaft; Clear to Send]
[figure: 107; DSR; M 1; 6; Betriebsbereitschaft; Data Set Ready]
[figure: 108.1; S 1.1; 20; Übertragung. anschalten]
[figure: 108.2; DTR; S 1.2; 20; Terminal betriebsbereit; Data Terminal Ready]
[figure: 109; DCD; M 5; 8; Empfangssignalpegel; Carrier Detected]
[figure: 110; SQ; M 6; 21; Empfangsgüte; Signal Quality]
[figure: 125; RI; M 3; 22; Ankommender Ruf; Ring Indicator]
[figure: 111; DRS; S 4; 23; Übertragungsgeschw.; Rate selctor (dte)]
[figure: 112; M 4; 23; dto; Rate selctor (dce)]
[figure: 126; STF; S 5; 11; Sendefrequenz(200 Baud); Select frequency]
[figure: 113; TC; T 1; 24; Sendeschrittakt; Transmit Clock (dte)]
[figure: 114; TC; T 2; 15; Sendeschrittakt; Transmit Clock (dce)]
[figure: 115; RC; T 3; 17; Empfangschrittakt; Receive Clock]
[figure: 118; TD.2; HD 1; 14; Hilfskanal Sendedaten; Second. Trans. Data]
[figure: 119; RD.2; HD 2; 16; Hilfskanal Empfangsdaten; Second. Receiv. Data]

Pegel der V.24-Schnittstelle (V.28)

Pegel  Daten  Signale
-15 V bis -3 V ’1’ (mark) AUS
+15 V bis +3 V ’0’ (space) EIN
-3 V bis +3 V (no carrier) undefiniert

Varianten für die (elektrische) Darstellung der Bits gegenüber der V.28 Norm sind:

– die historische 20-mA-Stromschleife (current loop vgl. DIN 66 258; T1), ein Einfachstromverfahren mit folgenden Werten:

’0’ = 0 mA ’1’ = 20 mA

– V.10 bzw. X.26 (DIN 66 259; T2), eine unsymmetrische Doppelstromschnittstelle, die auch für Koaxialleiter gedacht ist, und Übertragungsraten bis 100 kBaud ermöglichen soll. Sie arbeitet mit Signalpegeln, die mit integrierten Schaltungen leicht realisiert werden können:

’0’ = +0.3V bis +5.0 V ’1’ = –0.3V bis –5.0 V

– V.11 bzw. X.27 (DIN 66 259; T3), eine symmetrische Doppelstromschnittstelle bis 10 MBaud mit denselben Signalpegeln wie V.10, jedoch für verdrillte Doppeladern gedacht.

Neue Schnittstellennormen, welche die RS-232-C Schnittstelle ablösen, sind:

– RS-449 bis 10 MBaud und elektrischen Werten von V.11 (RS-422A) oder V.10 (RS-423A). Neue Signalleitungen und ein 37-poliger Stecker.

– In den neuen Datennetzen (ISDN) sollen X.21 und X.24 die V.24-Norm ablösen. Rechnerbausteine:

UART, Universal Asynchronous receiver and Transmitter oder PUSART, Programmable Universal Synchroneous and Asynchroneous Receiver and Transmitter

c) Massenspeicheranschlüsse

– SCSI (Small Computer System Interface) mit DMA-Controller (ANSI X.3.131)

Drucker  Platten CD-ROM Cassette

Bild n3p14b

SCSI-Typ Anz. Geräte max. Länge max. Daten- rate Bitbreite Datenbus

Termi- nierung

Asynchronous SCSI  8  6 m  5 MByte/s  8 Bit  passiv
Fast-SCSI  8  3 m  10 MByte/s 8 Bit  passiv
Wide-SCSI  16  3 m  20 MByte/s 16 Bit  passiv
Ultra-SCSI  4  3 m  20 MByte/s 8 Bit  aktiv
Ultra-SCSI  8  1,5 m 20 MByte/s 8 Bit  aktiv
Ultra-Wide-SCSI  4  3 m  40 MByte/s 16 Bit  aktiv
Ultra-Wide-SCSI  8  1,5 m 40 MByte/s 16 Bit  aktiv
Ultra-Wide diff.-SCSI 16  25 m 40 MByte/s 16 Bit  aktiv
Ultra2-SCSI  8  12 m 40 MByte/s 8 Bit  aktiv
Wide Ultra2-SCSI  16  12 m 80 MByte/s 16 Bit  aktiv

Tabelle 1: Verschiedene SCSI-Varianten (auch mit unterschiedlichen Steckern)

SCSI-Signalübertragung Kürzel Spannungpegel
Single-Ended SE +5 V
High Voltage Differential HVD +1.5 V -1.5 V
Low Voltage Differential LVD  +60 mV -60 mV

Tabelle 2: Signalübertragung bei SCSI

– IEC-Bus (IEEE 488) für diverse Geräte, auch Prozeßperipherie

Drucker  Cassette  Sensoren Motoren

Bild n3p14c

3.4 Standardperipherie

- Ein/Ausgabegeräte für den Benutzer: - Terminal, Datenstation, Datensicht- gerät (Bildschirm und Tastatur) - Drucker - Plotter - Maus - Scanner - Kommunikation - Modem - Netzkarten. . - Massenspeicher - Magnetplatten, Floppydisk - CD-ROM - Magnetband, Cassetten - - Prozeßperipherie - Sensoren - Motoren - AD-Wandler - DA-Wandler

3.4.1 Terminal

Das Terminal besteht aus 2 Einheiten, dem Bildschirm und der Tastatur. Für jede wird ein eigener Satz von Registern (DBR, CSR) zum Senden (transmit, T) und Empfangen (receive, R) benötigt.

[figure: Bildschirm; T-CSR; T-DBR; R-DBR; R-CSR; MEMory; CPU; Tastatur; Steuereinheit; Interface]

Bild n3p15

a) Der Bildschirm (Monitor)

– Kathodenstrahlröhre (CRT, Cathode Ray Tube)

[figure: U_{y}; U_{x}; U_{z}; A; D; A; D; A; D; Y-DBR; Z-DBR; X-DBR]

Bild n3p16

Die Ablenkung in X- und in Y-Richtung erfolgt durch Analogspannungen (U_{x} und U_{y}), die aus Digitalwerten durch A/D-Wandler erzeugt werden. Die Helligkeit wird durch eine weitere Spannung (U_{z}) gesteuert. Bei Farbbildröhren werden 3 solcher Spannungen benötigt für die Grundfarben Rot, Grün, Blau, RGB). In vielen CRT-Geräten wird die X- und Y-Ablenkung mit Schaltungen der Fernsehtechnik realisiert, die anstelle von Analogsignalen nur noch Synchronisationsimpulse (horizontal und vertikal) benötigen.

- Vektorbildschirm (selten und teuer): Jeder Bildpunkt P wird durch geeignete Ablenkspannungen U_{x}(P) und U_{y}(P) im RAM-Verfahren erstellt.

- Rasterbildschirm: periodische Ablenkung durch U_{x}(t) und U_{y}(t), Helligkeit unfd Farbe werden zum ”richtigen” Zeitpunkt durch die Steuerspannung(en) U_{z}(RGB) erzeugt (SAM).

[figure: Bild n3p16a] . .Kennwerte von (Raster-)Bildschirmen - horizontale Auflösung: Pixel/Zeile ≈ 1000 - vertikale Auflösung: Zeilen/Bild ≈ 1000 - zeitliche Auflösung: Bilder/Sekunde ≈ 100 (Bildfrequenz) Zeilenfrequenz: ≈ 100 kHz Übertragungsrate: ≈ 100 · 10^{6} Hz = 100 MHz

Ablenkgeschwindigkeit (in x-Richtung): v = \frac{Δs}{Δt} = \frac{0.5m}{100·10^{3}s^{−1}} = 50km/s Röntgenstrahlung durch Abbremsen der Elektronen beim Aufprall auf den Bildschirm (U_{b} = 35 kV), Elektronenaufprallgeschwindigkeit v_{e} = 111 · 10^{3} km/s (ca. 1/3 Lichtgeschwindigkeit). Nachleuchten der Bildschirmpunkte:

– lange Nachleuchtdauer → Schmieren – kurze Nachleuchtdauer → Flimmern

– LCD-Bildschirme (Liquid Crystal Display, LCD) Flüssigkristalle drehen die Polarisation von Licht und lassen sich durch elektrische Felder verändern. TFT (Thin Film Transistor) Dünnschicht-Transistoren im Kreuzungspunkt von Leiterbahnen legen die elektrischen Felder an die Elektroden und lassen Licht hindurch.

[figure: LCD; R; G; B; <; ∼; ∼; ∼; <; <; ∼; ∼; ∼; ∼; ∼; ∼; <; <; ∼; ∼; ∼; ∼; ∼; ∼; <; <; <; <; <; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; ∼; <; <; ∼; ∼; ∼; ∼; ∼; ∼; <; ∼; ∼; ∼; R; G; B; Farb-; filter; Licht-; quelle; Elektroden; +; Crystals; Liquid; Querschnitt; Pixel; Bildschirm; Zuleitungen]

Bild n3p55

Eigenschaften:

- sehr flache Bildschirme - geringe Leistungsaufnahme - keine Röntgenstrahlung . . - geringer Sichtwinkel (Farbverzerrungen) - relativ langsam: ca. 20 ms = 50 Hz - jedes Pixel wird einzeln angesteuert (RAM), vgl. Speichermatrix b) Die Tastatur Das Drücken einer Taste adressiert ein Wort in einem ROM. Sondertasten (Alt, Shift, Ctrl/Strg) wählen verschiedene Zeichensätze (ROMs) aus

[figure: Zeichen; Zeichen; Decoder; Shift; Alt; CTRL; ROM; /; Daten; Zeichen; Zeichen; Zeichen; Zeichen; Zeichen; Zeichen]

Bild n3p17

3.4.2 Drucker

- Typendrucker (Fernschreiber, Trommel-, Banddrucker)

- Matrixdrucker Pixel → Zeichen → Zeile → Blatt (-Drucker) Schwärzung, Farbe

- Farbband (anschlagende (impact) Drucker)

- Tinte (nichtanschlagende (non-impact) Drucker)

- Toner (Laserdrucker)

- Wärme (Thermodrucker)

Druckertyp  Druckeinheit Druckfolge Druckgeschwindigkeit
Trommeldrucker  Typen  zeichen-  200 - 2400 Zeile/min
Ketten-, Banddrucker  parallel  3 - 5000 Zeichen/sec

Typenhebel-, -rad-,  zeichen-  10 - 30 Zeichen/sec Typenkorb-,  seriell Kugelkopfdrucker Nadeldrucker Punkte spalten- 30 - 300 Zeichen/sec Tintenstrahl-  seriell Thermodrucker Elektrostatische,  zeilen-  10 - 60 Seiten/min Laserdrucker  parallel  1 - 200 Seiten/min

3.4. STANDARDPERIPHERIE 79

3.4.3 Plotter

- Transport von Papier oder Stift in X- und Y-Richtung

- Heben und Senken des Stifts in Z-Richtung

- Auswahl von farben (4. Dimension)

Die Basismaschine ist ein Inkrementalplotter, bei dem ein Zeichenstift (Z) abgehoben und gesenkt werden kann (Z-Richtung). Die Bewegung in X- und Y-Richtung erfolgt Schrittmotoren, die 2-phasig angesteuert werden müssen, und so ein Vorwärts- und Rückwärtsbewegung ermöglichen. Zur Ansteuerung müssen Impulse in einer der beiden Drehrichtungen erzeugt werden:

[figure: Y; X; Schrittmotor; Z; I1; I2]

Bild n3p27

Die Impuls erzeugen über Elektromagnete Kraftwir- kungen auf den (magnetischen) Rotor. In der Praxis werden hier meist 7 Paare verwendet, und die An- steuerung wird von speziellen Chips übernommen.. . I2 I1 Bewegung 0 0 Ruhe 0 1 +1 1 0 –1 1 1 Ruhe

Die Benutzerschnittstelle wird durch ein DBR realisiert, in welches geeignet Bitkombinationen zu schreiben sind, die über eine Parallelschnittstelle an den Plotter übertragen werden. Zum Erzeugen der Impulse kann ein zusätzliches Startbit (Go) notwendig sein.

[figure: Z; +Y; -Y; +X; -X; Go]

Bild n3p28

Mit der dargestellten Anordnung können von jedem Punkt aus 8 verschiedene Linienelemente benutzt werden. Aus diesen setzt sich dann jede Linie und Kurve zusammen.

Moderne Plotter enthalten in der Regel die notwendige Logik in Form von Firmware, die als Interpreter mehr oder minder abstrakte Plottbefehle ausführen kann (z.B. HPGL). Die Übertragung zum Plotter erfolgt hier meist über serielle Schnittstellen als ASCII-Text.

80 KAPITEL 3. RECHNERARCHITEKTUREN

3.4.4 Maus

[figure: X; Y; S1; S2]

Bild n3p24

Die Bewgung der Maus auf einem Untergrund wird durch die Rollkugel auf 2 orthogonale Achsen übertragen, an denen Lochscheiben mit je 2 Lichtschranken sitzen. Die Lichtschranken müssen um 1/4 Lochabstand versetzt sein, um eine Rückwärts- von einer Vorwärtsbewegung zu unterscheiden (orthogonale Impulsfolgen). Die Taster ergeben Z-Signale (setzen Flags im CSR).

[figure: S2; S1; Vorwärtsbewegung; Rückwärtsbewegung; S1; S2; Decoder; Zähler; vorwärts; rückwärts; DBR; UART; V.24]

Bild n3p25

3.4.5 Scanner

Optische Abtastung einer Fläche (Vorlage) durch einen oder viele Lichtstrahlen und Erfassung der reflektierten Intensität durch Sen- soren (Photozellen, -dioden, -transistoren) - einen Lichtstrahl mit X-Y-Ablenkung (vgl. Plotter) - eine Zeile von Sensoren oder Leuchtpunkten - Auswahl von Farben durch Lichtfilter. .[figure: Bild n3p26]

3.5. MASSENSPEICHER 81

3.5 Massenspeicher

3.5.1 Magnetplatten

- Floppydisk (Diskette)

- Festplatte (Plattenstapel)

Magnetplatten Ein Magnetplatte besteht in der Regel aus mehreren Plattenflächen mit je 2 Seiten. Jeder Seite ist ein Schreib/Lese-Kopf zugeordnet.

SpindelmotorLinearmotor

Bild n3p18

[figure: Sektor; Spur(track); Block]

Bild n3p19

Einteilung in Spuren, Sektoren und Blöcke Ein Datenblock liegt im Schnitt einer Spur mit einem Sektor. Übereinander liegende Spuren, die bei fester Stellung des Linearmotors erreicht werden, bilden einen Zylinder. Jeder Block kann wahlfrei adressiert werden (RAM).

Zugriff:

- auf Sektoren durch die Rotation (ϕ = ω · t mit ω = 2πn)

- auf Spuren durch Radialbewegung r(t)

Platten-Kapazität C = B * p * t * s

- s = Anzahl der Sektoren = 10 ... 100)

- t = Anzahl der Spuren (tracks) = 100 ... 1000

- p = Anzahl der Plattenflächen = 1 ... 20

- B = Blockkapazität = 4096 Bit (= 512 Byte = 1/2 KB) Typisch sind heute: 512 Byte · 20 Seiten · 800 Spuren · 50 Sektoren · = 400 Mbyte

Ein Datenblock wird aus einer (sequentiellen) Folge von Bits gebildet (SAM). Zusätzlich zu den Nutzdaten enthält ein Block weitere Felder: eine Präambel zur Synchronisation, ein Adreßfeld (Seite, Spur, Sektor), eine Prüfsumme und sonstige Daten am Ende (Trailer). Zwischen 2 Blocks liegt immer ein Zwischenraum (Gap), der nicht beschrieben wird.

Präambel Adresse  Daten  Prüfsumme Trailer Gap  Gap

Bild n3p20

Magnetische Aufzeichnung

Beim Schreiben wird durch den Schreibstrom (I) ein Magnetfeld erzeugt, welches auf der Magnetschicht eine Magnetisierung (Φ) hinterläßt, deren Richtung die binäre Information repräsentiert. Beim Lesen wird an den Stellen, wo ein Flußwechsel in der Magnetschicht erreicht wird, eine Induktionsspannung erzeugt (U_{ind} = dΦ/dt).

Magnetschicht

[figure] [figure]

I

[figure] [figure] [figure]

U_{ind}

[figure]

Φ

Bild n3p21

Für die Darstellung von Daten können unterschiedliche Verfahren eingesetzt werden (vgl. DIN 66010):

- Richtungsschrift, NRZ (non return to Zero): Flußwechsel bei Datenwechsel:

- Richtungstaktschrift (phase encoding): positiver Flußwechsel bei ”1”, negativer bei ”0” (u.U. werden zusätzliche Flußwechsel eingefügt).

- Wechselschrift (NRZ 1): Flußwechsel bei ”1”, kein Flußwechsel bei ”0”.

- Wechseltaktschrift: Flußwechsel für jedes Bit, zusätzlicher Flußwechsel bei ”1”.

[figure: Induktions-; spannung; Daten; 0; 0; 0; 0; 0; 1; 1; 1; 0; 1; 1; 0]

Bild n3p22

Die Darstellung in Richtungsschrift erweist als recht ungünstig, da beim Lesen langer Folgen von gleichartigen Bits kein Lesesignal erzeugt wird.

Aufzeichnungsdichten werden in Bits/mm, bits/inch (bpi) oder Bits/rad gemessen. In Deutschland werden Flußwechsel pro cm bzw. pro Zoll (1- 2.54 cm) oder pro rad (1rad = 55.6^{∘}, bzw. 1 Umdrehung = 2πrad) angegeben. Die Werte liegen zwischen 800 und 10000 bpi bzw. 5 bis 65 Kbit/rad. Die (radiale) Dichte der Spuren wird in Spuren/cm bzw tracks/inch (tpi) gemessen.

Bei konstanter Aufzeichnungsrate (bits/s) erhält man eine konstante Aufzeichnungsdichte in bit/rad. Wegen der nach außen zunehmenden Radien auf einer Platte wird die lineare Aufzeichnungsdichte (bpi) nach Außen ab nehmen. d.h. die einzelnen Bits sind weniger dicht gepackt und damit auch weniger störanfällig.

3.5. MASSENSPEICHER 83

Die Übertragungsrate von der Platte in den Arbeitsspeicher wird im wesentlichen von der Spurkapazität und der Drehzahl bestimmt. Typische Drehzahlen liegen bei 3600 min^{−1}, d.h. 60 /sec. Bei einer Spurkapazität von 100 Sektoren a 4096 bit erhält man ca 24 Mbit/s oder 3 MByte/s.

3.5.2 Magnetbänder

Die Aufzeichnung auf Magnetbänder erfolgt im Prinzip genau so wie bei Magnetplatten, allerdings werden auf einem Band oft mehrere Schreibspuren parallel aufgezeichnet; meist sind es 8 Daten- und eine Prüfspur (z.B. DIN 66015).

[figure: Magnetband]

Bild n3p23

3.5.3 Optische Speicherplatten, CD-ROM

Optische Abtastung einer Scheibe durch einen (Laser)Lichtstrahl und Erfassung der reflektierten Intensität durch eine Sensor (Photozelle, -diode, -transistor) in einer Spiralbewegung. Die lineare Schreibdichte bleibt konstant. Der Zugriff kann nicht wahlfrei (RAM) erfolgen, sondern sequentiell von der aktuellen Position aus.

3.6 Abläufe in der ZE

Darstellung mit A-t-Diagrammen

Darstellung des Programmablaufs anhand der Adressen der abgearbeiteten Instruktionen, d.h. dem Inhalt des Program Counters PC (Instruction Pointers IP)

[figure: t; A; Sequenz; Sprünge; Unterprogramm; Schleife]

Bild r4p44

- Sequenz (Folge von Instruktionen) ergibt eine Gerade, deren Steigung die Verarbeitungsgeschwindigkeit des Prozessors wiedergibt.

- Sprünge zeigen sich als senkrechte Übergänge

- Unterprogrammsprünge kehren in die vorhergehende Sequenz zurück,

- Schleifen ergeben einen Sägezahnverlauf.

3.6. ABLÄUFE IN DER ZE 85

3.6.1 Das Zeitverhalten im Polling-Betrieb

Polling-, Abfrage- bzw. Abrufbetrieb

- eine endlos laufende Abfrageschleife

- bei Eintreten eines Ereignisses wird in ein Bearbeitungsmodul verzweigt, das man sich als Unterprogramm vorstellen kann.

[figure: immer; Ereignis; E1; E2; E3; SUB1; SUB2; SUB3; SUBn]

Bild r4p45

100 IF(E1) CALL SUB1 IF(E2) CALL SUB2 ................ IF(En) CALL SUBn GO TO 100

Als A-t-Diagramm:

[figure: t; A; SUB1; SUB2; 100; t_{S}; E_{1}; t_{A}; t_{R}; t_{V}; E_{2}; t_{R}; E_{1}; t_{R}; t_{R}; A_{1}; A_{2}; A_{1}]

Bild r4p46

Mittlere Reaktionszeit, wenn nur eine Ereignisquelle vorhanden ist (n=1), t̄_{R} = t_{s}/2. Die Antwortzeit wird t_{A} = t_{R} + t_{V}. Im allgemeinen Fall ist die maximale Anwortzeit

Max(t_{A}) = Max(t_{R}) + t_{V} = t_{s} + ∑_{i} t_{V i} im Mittel wird

t̄_{A} ≤ t_{s} + n · t̄_{V} (wobei t̄_{V} die mittlere Verarbeitungszeit ist) Da t_{s} linear mit der Anzahl n der Abfragen (der Ereignisquellen) ansteigt, wird auch t_{A} linear mit n ansteigen

Problemfälle

a) Falls während eines Durchlaufs der Abfrageschleife 2 oder mehr Ereignisse auftreten, wird ihre Bearbeitung durch die Reihenfolge der Abfragen im Programm bestimmt und nicht durch die der Ereignisse. Ihre Reihenfolge kann also dann verlorengehen, wenn ihr zeitlicher Abstand Δt = t(E_{i}) − t(E_{j}) ≤ t_{s}/2 wird; dieser Wert kann als Zeitauflösungsgrenze verstanden werden.

[figure: t; A; E_{2}; E_{1}; SUB2; SUB1]

Bild r4p47

b) Falls während eines Durchlaufs der Abfrageschleife 2 oder mehr Ereignisse (E1) aus derselben Quelle auftreten, kann eines davon verlorengehen. Es muß also stets t_{P} ≤ t_{s} sein.

[figure: t; A; E_{1}; E_{1}; SUB2; SUB1]

Bild r4p48

3.6. ABLÄUFE IN DER ZE 87

3.6.2 Zeitverhalten im Interrupt-Betrieb

Interrupt- bzw. Anforderungsbetrieb Interrupt-Erzeugung durch Geräte-Anschluß. Filterung der Interrupt-Anforderungen durch CPU im Interrupt-Verarbeitungswerk (Interrupt Arbitrator, I-A)

– Maskierung, Verriegelung

– Interrupt-Gewichtung HW P > SW P Bearbeitung des Interrupts durch das Mikroprogramm der CPU

– Darstellung der Prioritätensteuerung durch P-t-Diagramme

– Darstellung der Abläufe durch A-t-Diagramme

[figure: t; A; ISR1; ISR2; Programm; E_{1}; t_{V}; E_{2}; E_{1}; ISRn; IVT; Stack]

Bild r4p50

Reaktionszeiten Die maximale Reaktionszeit wird zunächst nur durch die Interrupt-Behandlung bestimmt. Hier ist die längste Instruktion zu betrachten und die Zeit für das Abspeichern des aktuellen PC (und des PSW) auf dem Stack sowie die Zeit für das Lesen des neuen PC (und PSW) aus der IVT. Ingesamt sind dafür 2 (oder mehr) Buszyklen notwendig. Dieser Wert wird im folgenden als vernachlässigbar klein angesehen und t_{R} = 0 angenommen. Konkurrenzsituationen Falls während der Bearbeitung eines Ereignisses in einer ISR ein weiteres Ereignis eintritt, das eine Interruptanforderung stellt, werden unterschiedliche Strategien eingesetzt:

a) Die laufende ISR wird grundsätzlich nicht unterbrochen. Das bedeutet, daß die Reaktionszeit für ein neues Ereignis (E2) einen endlichen Wert annimmt (t_{R} > 0). Im schlimmsten Fall müssen alle anderen Interrupts vorher abgehandelt werden, dann wird die maximale Reaktionszeit wieder Max(t_{R}) = ∑ t_{Bi} und die maximale Antwortzeit Max(t_{A}) = ∑ t_{Bi} Die Reihenfolge der Bearbeitung entspricht aber in jedem Fall der Reihenfolge der Ereignisse.

[figure: t; A; E_{1}; E_{2}; ISR2; ISR1; t_{R}; A_{2}; t_{B1}; t_{B2}]

Bild r4p51

b) Die laufende ISR wird in jedem Fall unterbrochen. Hier wird t_{R} = 0. Die Antwortzeit t_{A}, auf die es aber ankommt, wird im schlimmsten Fall wieder Max(t_{A}) = ∑ t_{Bi} Die Antworten auf die Ereignisse, die Ausgaben A_{i} können jetzt in der umgekehrten Reihenfolge auftreten, wenn die Ausgaben ganz am Ende der Interrupt Service Routinen erfolgen. Es ist also sehr wichtig, die Ausgaben möglichst schnell zu erstellen und andere Arbeiten hinten an zustellen. Ein weiteres Problem ergibt sich in diesem Fall daraus, daß mit jeder Unterbrechung neue Werte auf dem Stack gesichert werden müssen, der aber nur eine endliche Größe haben kann. Irgendwann kann ein Überlauf eintreten, der den ganzen Prozeß gefährdet.

[figure: t; A; E_{1}; E_{2}; ISR2; ISR1; A_{2}; A_{1}]

Bild r4p52

[figure: SP; E_{1}; E_{2}; A_{2}; A_{1}; Stack; t]

Bild r4p53

c) Die laufende ISR wird nicht in jedem Fall unterbrochen, sondern nur, wenn sie es selber (programmgesteuert) zuläßt. Hier wird im günstigsten Fall die Reaktionszeit t_{R} = 0 und die Antwortzeit t_{A} = t_{B} (falls es sich in bevorzugtes Ereignis handelt); im schlimmsten Fall wird die Antwortzeit beliebig groß (t_{A} → ∞), wenn es sich um ein Ereignis untergeordneter Bedeutung handelt. Hier müssen Prioritäten gesetzt werden, die der Bedeutung der Ereignisse bzw der Prozesse entsprechen.

[figure: t; A; ISR2; ISR1; E_{1}; E_{2}; A_{1}; A_{2}; E_{2}; E_{1}; E_{1}; A_{1}; A_{1}; t; P; E_{1}; E_{2}; A_{1}; A_{2}; E_{2}; E_{1}; E_{1}; A_{1}; A_{1}; 0; 1; 2; 3; 4; 5; 6; 7; E_{1}; E_{1}; P; P; ISR1; ISR2; ISR1; P; ISR2; ISR1; ISR1; ISR1]

Bild r4p54

Betriebssysteme

4.0 Der Rechner als System

Grobstrukturen:

- Hardware: Zentraleinheit und Peripherie

- Software: Programme und Daten

Programme Daten

Dienst-Anwender-Dateien

Ein-/

Betriebssystem

Verbindungen (Bus)

CPU Memory Peripherie-Anschlüsse

Ausgabe-

Programme Programme

Anwendungen

Basismaschine

Periphere Geräte

[figure] [figure] [figure]

SW

HW ZE

[figure] [figure]

1μs 1h

[figure] [figure]

1ms 1s

t (variabel)

(konstant)

Bild n3p00

- Dienstprogramme - zur Verwaltung des Rechners (Dateiverwaltung, Systemsteuerung).

- zur Programmentwicklung (Editor, Compiler, Binder, etc),

- Anwenderprogramme zur Produktion:

Programmentwicklung, Textverarbeitung, Betriebsdatenverarbeitung, Prozeßdatenverarbeitung (CAM = Computer Aided Manufactoring), Betriebslenkung (CIM = Computer Integrated Manufactoring), Entwicklung (CAD = Computer Aided Design), etc.

- Dateien auf den Massenspeichern (Magnetband oder -platte) umfassen sowohl Programme, als auch Daten, die von den Produktionsprozessen stammen oder für sie bestimmt sind. Oft sind diese in Datenbanken organisiert.

90 KAPITEL 4. BETRIEBSSYSTEME

- Ein- und Ausgaben vom/zum Anwender oder Prozeß über EA-Geräte (Eingaben von der Tastatur, der Maus oder von externen Quellen, Ausgaben auf Bildschirm, Drucker oder Plotter).

Verwaltungsaufgaben: Verwaltung von Programmen und Daten Programme laden, starten, koordinieren (→ BS) Daten erstellen (durch Anwenderprogramme) Daten verwalten (durch Dienstprogramme, Be- triebssystemfunktionen, Kommandos): - DIR (ls): Dateien auflisten - COPY (cp). Dateien kopieren - RENAME (mv), Dateien umbenennen - DELETE (rm), Dateien löschen - TYPE (cat), Dateien anzeigen - PRINT (lpr), Dateien ausdrucken - FORMAT (fmt), Formatieren oder Initialisieren von Datenträgern.. .Systemsteuerung: z.B. Booten - LOAD program - INSTALL “ - BUFFERS reservieren - STACKS “

Programmentwicklung - Editoren zur Erstellung von Quellprogrammen; - Compiler und Assembler zum Übersetzen der Quellprogramme in Maschinensprache. - Linker (Binder) zum Anbinden von Bibliotheks- routinen, die nicht im Betriebssystem eingebettet sind, sondern zur Unterstützung einer bestimmten Programmiersprache als Laufzeitroutinen benötigt werden; - Loader (Lader) zum Laden der gebundenen Pro- gramme in den Arbeitsspeicher und ihrer Eingliede- rung in das System; meist ist der Lader in das Be- triebssystem vollständig integriert und kein Dienst- programm mehr.. . [figure: Quell-; Object-; Code; Library; EXE.; Code; Code; Editor; Compiler; Linker]_{Bild n2p13}

- Testprogramme zur Kontrolle des Funktionsablaufs und

- Debugger zum Auffinden von Programmfehlern (engl.: bugs)

- Dateiverwaltungsprogramme, die bis zu Datenbanksystemen anwachsen können (Workflow-Systeme).

Die Aufteilung der Aufgaben und Funktionen auf Dienstprogramme oder Systemroutinen ist nicht exakt festlegbar und wird in jedem Betriebssystem anders gehandhabt. Zwei Grundfunktionen (Module) müssen im BS verankert sein:

- zur Kommunikation mit dem Anwender (Benutzeroberfläche)

- zum Laden und Nachladen (overlays) des BS von der Systemplatte (engl.: disk, DOS = disk operating system) oder von anderen Ressourcen (z.B. von einer CD-ROM oder von einem Server übers Netz).

4.1 Die Benutzeroberfläche

Zur Bedienung des Rechners müssen Kommandos an das Betriebssystems gegeben werden. Dazu dient ein Dienstprogramm, das Benutzereingaben annimmt, sie interpretiert und einen entsprechenden Teil des Betriebssystems aktiviert. Textorientierte Kommandointerpreter, Monitor oder Schale (engl.: shell) z.B. unter MS-DOS oder UNIX.

     H:\FH_FFM\INFO3AI\SKRIPT>dir a:\
      Datentrager in Laufwerk A ist DOS-DISKEDI
      Datentragernummer: 3D5E-14DF
      Verzeichnis von A:\
     COMMAND  COM        57.351 30.09.93    6:20
     CWDSKEDT EXE        65.677 25.09.98   21:49
     CWHDS    EXE        44.124 30.09.98   20:52
     CWRCONF  EXE        25.655 30.09.98   18:43
     CWDSKEDT HLP         3.792 25.09.98   21:56
     LIESMICH TXT         4.474 01.10.98   21:40
     EDIT     COM           429 30.09.93    6:20
     DOS          <DIR>         30.12.00   13:21
     CONFIG   SYS           381 30.12.00   19:25
     AUTOEXEC BAT           209 30.12.00   18:11
     TMP          <DIR>         30.12.00   13:32
     CONFIG   SY1         1.557 30.12.00   19:11
            12 Datei(en)        203.649 Byte
                                 71.168 Byte frei
     H:\FH_FFM\INFO3AI\SKRIPT>

Graphische Benutzeroberflächen (GUI Graphical User Interface), auf denen Objekte (Dateien oder Programme) als bildhaften Symbole (Icons) dargestellt und per Mausklick ausgewählt und aktiviert werden. Im Multitaskingbetrieb, bei dem viele Prozesse nebeneinander (engl.: concurrent) ablaufen, werden dem Benutzer mehrere Fenster (engl.: Windows) zur Verfügung gestellt.

In allen Fällen werden mit den Benutzereingaben Dienstprogramme oder -funktionen aktiviert, die die gewünschten Operationen durchführen. Beispiel: Das Löschen einer Datei

- unter DOS mit dem Kommando DELETE datei

- unter UNIX mit dem Kommando rm datei

- unter GEM oder WINDOWS durch das ”Ziehen” eines Dateisymbols mit der Maus in einen ”Papierkorb”(tatsächlich wird damit das Dateiobjekt zunächst nur in einen anderen Ordner verschoben und kann aus diesem - wie aus einem realen Papierkorb - wieder herausgeholt werden. Erst das Leeren des Papierkorbs entfernt die Datei aus dem Dateisystem.)

4.2 Betriebsarten

- Einzel–Betrieb (stand-alone) Im einfachsten Fall besteht die Software eines Rechners aus einem einzigen, festinstallierten Programm, das direkt auf die Hardware zugreift. Man findet sie in Kompaktsystemen (engl.: embedded systems), in Speicherprogrammierten Steuerungen (SPS) oder als Firmware in einem ”intelligenten“ (μ-Prozessor gesteuerten) Gerät. Allgemein verwendbare Module werden aus einer Bilbliothek hinzugebunden und bilden ein Basis(betriebs)system. Manchmal wird eine reduzierte (und ROM-residente) Variante eines konventionellen BS verwendet (z.B. Windows CE).

- Stapelbetrieb (engl.: batch mode): der Benutzer stellt alle Kommandos und alle Eingabedaten zu einem Auftrag zusammen (engl.: batch job). Erst nach dessen Beendigung stehen die Ergebnisse zur Verfügung. Dabei ist (bewußt) keine Möglichkeit vorgesehen, in den Bearbeitungsablauf einzugreifen. Lediglich einen Abbruch (engl.: abort) kann man erzwingen; dann sind in der Regel aber alle Zwischenergebnisse verloren. Beispiele: Lohnabrechnungen, Steuerbescheide .

- Dialogbetrieb (engl.: interactive mode): der Benutzer macht Eingaben, wenn das Programm läuft und auf Eingaben wartet. Unter Umständen kann er sie sogar kurz vorher eingeben (engl.: type ahead), wenn ein Puffer dafür zur Verfügung steht. Die Ausgaben erscheinen, sobald sie berechnet sind, sodaß der Benutzer seine folgenden Eingaben danach ausrichten kann. Beim Multitasking können hierbei Verzögerungen eintreten, wenn mehrere Benutzer auf dieselben Betriebsmittel zugreifen, z.B. auf den Drucker.

- Realzeitbetrieb (engl.: real time processing): zeichnet sich dadurch aus, daß bestimmte Antwortzeiten eingehalten werden müssen, d.h. daß auf eine Eingabe innerhalb einer bestimmten Zeit eine Ausgabe erfolgt.

Betriebssysteme und Betriebsarten:

1. Single User  Multi User (Mehrbenutzerbetrieb)
z.B. MS-DOS  Unix

ohne Datenschutz

mit Datenschutz: (Benutzerkennung, Passwort)

2. Single Tasking

Multi Tasking (Mehrprogrammbetrieb)

ein einziges (komplexes)

Programm in Betrieb mehrere Programme in Konkurrenz um 1 oder n CPU (concurrency) Zuteilungsstrategien (scheduling):

nur Spezialrechner z.B. für

– time-sharing

“Intelligente“ Geräte

– resource-sharing

Wetterkarte-Super-Computer

Windows, Unix, MVS(IBM), VMS(DEC)

3. Single Processing

Multiprocessing

Ein Prozessor (1 CPU / ZE)

Mehrere Prozessoren (n ≤ 2^{16} = 65 536)

Massive Parallel Computing

z.B. Prozeßrechner in Geräten

z.B. Hypercube, Suprenum

Mehrbenutzerbetrieb (engl.: multi user) erlaubt die Nutzung eines Rechnersystems durch mehrere Benutzer, die gegeneinander abgeschirmt werden müssen, damit keiner einen anderen fahrlässig oder absichtlich stören kann. Diese Problematik wird als “Zugangsschutz“ und als “Speicherschutz“ im Bundesdatenschutzgesetz (BDGS) behandelt.

Multitasking oder Multiprogramming ist der nächste Schritt zu einer effektiveren Nutzung des Rechners. Hier werden die Programme nicht mehr nacheinander abgearbeitet, sondern abwechselnd, so daß alle Benutzer den Eindruck erhalten, gleichzeitig bedient zu werden, oder ein einzelner Benutzer nutzt mehrere Programme gleichzeitig. Tatsächlich wird jedes Programm immer nur für eine kurze Zeit bearbeitet und dann zum nächsten weitergeschaltet. Dazu ist ein ausgefeiltes Taskmanagement notwendig.

4.3 Aufgabe und Struktur eines Betriebssystems

4.3.1 Struktur

Hierarchie von abstrakten Maschinen:

Hardware

CPU Speicher

Geräte

Betriebssystemfunktionen Software-Treiber Gerätetreiber

ISRn

Betriebsmittelverwaltung

CPU Speicher

Geräte

Auftragsteuerung

Taskmanagement Dateiverwaltung

Programmier-Schnittstelle (API)

Bild r3p03

Aufgaben:

Bereitstellung von Funktionen durch Module und Schnittstellen

- Module für den Zugriff auf die Hardware (Gerätetreiber)

- Module für komplexe Rechenoperationen (sin x oder ASCII–HEX) (SW-Treiber)

- Module zur Systemsteuerung (Interrupt-, Task-, Zeit- Management)

- Abstrahierung von der konkreten Hardware (Hardware-Software-Interface)

Der Betriebssystemkern (kernel, nucleus) umfaßt

- Taskmanagement (Prozeßverwaltung) mit Tabellen und Algorithmen zu deren Verwaltung, insbesondere für die Taskumschaltung bei Multitasking

- Dateiverwaltung mit Routinen für Dateizugriff und Tabellen für Dateistrukturen.

- Betriebsmittelverwaltung mit Tabellen für die Speicherbelegung, Gerätebelegung, laufende Tasks, Interrupt-Vektoren und Algorithmen zu deren Verwaltung.

- Betriebssystemfunktionen, z.B. Datenkonvertierung, Gerätetreiber, Interrupt Service Routinen (ISR)

Der Betriebssystemkern ist der Hardware am nächsten und muß ihr speziell angepaßt sein (BIOS, Basic Input/Output System).

Der Betriebssystemkern wird oft in einem ROM gespeichert, um größtmögliche Sicherheit gegen ein Überschreiben dieser Software zu haben. Variablen, Tabellen und ladbare Treiber müssen im ”RAM” abgespeichert werden. Weitere Teile des Betriebssystems werden beim Starten (Booten) von der Festplatte (disk) geladen (DOS = Disk Operating System).

4.3.2 Taskmanagement

Beim Multitasking stehen in der Regel die Programme schon ablaufbereit im Speicher. Dann wird zu jedem Programm ein Speicherbereich zur Ablage von Zwischenergebnissen und Zustandsparametern benötigt, die zum Zeitpunkt der Weiterschaltung vorliegen und ’gerettet’ werden müssen; dazu dient zum einen der Stack zum anderen der Task Control Block (TCB), die den Task-Kontext enthalten. Das Betriebssystem bildet daraus eine Tabelle in Form einer verketteten Liste.

Der Mechanismus zur Weiterschaltung von einer Task zur anderen stellt eine besondere Aufgabe dar. Im einfachsten Fall wird die Weiterschaltung zu festen Zeiten vorgenommen (engl.: time sharing) und die Programme in fester Reihenfolge abgearbeitet (engl.: round robbin).

Eine verbesserte Ausführung bearbeitet die Programme nach ihren Anforderungen und Prioritäten, so daß alle Betriebsmittel möglichst gut verteilt und ausgenutzt werden (engl.: resource sharing). Dabei erfolgt die Weiterschaltung auf Grund von Ereignissen (events). Eine wichtige Aufgabe des Betriebssystems besteht nun darin, die Kommunikation zwischen den einzelnen Programmen (engl.: inter task communcation) zu ermöglichen. Dabei entsteht eine ganze Reihe von Problemen, zu deren Lösung geeignete Strategien erforderlich sind. Da die Zahl der möglichen Beziehungen zwischen mehreren Tasks mit deren Anzahl dramatisch (etwa mit n!) anwächst, kann ein solches System bald unüberschaubar werden.

Programm Daten Speicherbedarf Soft- Kontext  Hard- Kontext ware-  ware-_{Bild r3p04} . .Eine Task besteht aus dem Programm und dem Kontext, der im Taskheader eingetragen ist. Beim Laden einer Task werden die benötigten und im Taskheader angegebenen Betriebsmittel zugeteilt und im Task Control Block (TCB) ab- gelegt. - Der Hardware-Kontext bestimmt die benötig- ten Geräte (exclusive oder sharable) - Der Software-Kontext bestimmt die benötig- ten Systemfunktionen, Prioritäten, Zugriffs- rechte, Umgebungsvariablen, Prozeßnummer (pid). - Die Datenstrukturen werden im Speicher an- gelegt (Stack, Register) - Daraus ergibt sich der gesamte Speicherbedarf

Die Aktivierung einer Task bei der Weiterschaltung durch das BS erfolgt als Unterprogrammaufruf, bei dem ein neuer Instruction Pointer (Program Counter) in der CPU geladen wird.

Taskzustände und -übergänge

[figure: ruhend; rechnend; wartend; bereit; E_{6}; E_{1}; E_{4}; E_{3}; E_{2}; E_{5}; E_{1}: Laden und Zuteilen; E_{2}: Zuteilung der CPU; E_{3}: Anfordern; E_{4}: Zuteilen; E_{5}: Unterbrechung; E_{6}: Programmende; von Betriebsmitteln; von Betriebsmitteln; von Betriebsmitteln]

Bild r3p05

Task Scheduling, Algorithmen zur CPU-Zuteilung - preemptiv - Run-to-Completion - Round-Robin - Prioritäts-Scheduling - Klassen-Scheduling . . - zeitgesteuert - ereignisgesteuert

Prozeßliste: LINUX-Kommando ”ps” pid ppid status  name 1234 1  Running  ps 1235 1  Hibernating xyz 1236 1234 Stopped  rst 1237 1236 Waiting  uvw  . .Prozeßbaum: Kindprozesse [figure: 1237; 1236; 1234; 1235; 1] Bild r3p05a

4.3.3 Dateiverwaltung

a) Dateien auf Massenspeichern (files)

- auf blockorientierten Massenspeichern (oder im Arbeitsspeicher)

- Verzeichnisstruktur baumförmig (vernetzt bei UNIX durch links)

- Dateinamen und Pfade

- Dateiattribute ugo(a) * rwx (dlc)

root

directory

directory

file

subdirectory subdirectory subdirectory

file file file

file

[figure]

[figure]

[figure]

[figure]

[figure]

[figure]

[figure]

Bild r3p06

b) Ein-/Ausgabedaten

- Gerät = Datei ohne Namen (special file), Pseudo-Datei

- zeichenorientiert

- Standardein- und -ausgabe (Terminal = Tastatur und Bildschirm)

c) Interne Dateien

- files, arrays

- Puffer, Cache für Ein-/ausgabe

- Kommunikation: Pipe, Shared Memory, Semaphore, Signale d) Beispiel: Das Diskettenformat unter MS-DOS

Boot-Sektor FAT-1 Sektoren FAT-2 Sektoren Directory 0 1 5 6 10 11

17

BRANCH to BOOTCODE

BOOTCODE

Checksum

$ 2
$ B
$ D
$ E
$10
$11
$13
$15
$16

OEM-Code

Anzahl Bytes pro Sektor Sektoren pro Cluster Reservierte Sektoren Zahl der FATs Anzahl Directory Einträge Anzahl Sektoren der Disk Media Deskriptor ($Fx) Anzahl Sektoren pro FAT

$18
$1A

Anzahl Sektoren pro Track Anzahl Seiten der Disk Anzahl verborgener Sektoren

$1C

[figure]

12(16) bit

                          0: $FxF

Cluster-Nummer Zeiger zum nächsten Cluster der Datei Datei-Eintrag File Entry

0 10 Dateiname

(8+3 Byte)

11

Attribute ^{1} 12

reserviert (10 Byte) 22

Zeit (2 Byte)^{2} 24

Datum (2 Byte)^{3} 26

Startcluster (2 Byte^{∗}) 28

Länge (4 Byte^{∗})

Disk Information

1: A/O/D/S/H/R

2: h(15..11)/m(10..5)/2s(4..0) 3: J-80(15..9)/M(8..5)/T(4..0) *: Big Endian

                            $xxx
                            $FFF
                            $000

                                 : Next
                                 : <EOF>
                                 : Free

                          1: $FFF

Gesamtzahl Sektoren

$1D
$23
$25

Gerätenummer

Signatur

Seriennummer

$27

Disk Name

$2A

FAT-ID (12/16)

$32

Bild r3p06a

4.3.4 Betriebsmittelverwaltung

- Prozessor (CPU) (auch mehrere bei Multiprocessing) Zuteilung durch Task-Scheduler

- Arbeitsspeicher (Mmemory), Puffer (Cache)

- Segmentation (Speicherschutz durch MMU)

- Paging (Auslagern von Seiten auf Massenspeicher)

- Swapping (Auslagern von Tasks auf Massenspeicher)

- Geräte (devices)

Geräte-Treiber (driver)

4.3.5 Gerätetreiber

Treiber (Gerätetreiber, device driver) sind Software-Module innerhalb des Betriebssystems, die zu Datenübertragung und Kommunikation zwischen Zentraleinheit und peripheren Geräten dienen. Für jedes Gerät bzw. jede Geräteart muß ein Treiber vorhanden sein.

Ein Treiber enthält die Interrupt-Service-Routine (ISR) und Module zur Vorbereitung, Inbetriebnahme und zur Abschaltung des Geräts.

In Realzeitsystemen müssen oft spezielle Treiber für spezielle Geräte (z.B. ADC) installiert werden. Das muß vom Betriebssystem unterstützt werden.

Treiber sollen resident gehalten werden können, d.h. sie sollen dann nicht, um z.B. Speicherplatz für andere Programme zu schaffen, auf Massenspeicher ausgelagert werden. Das kann zu unvertretbar langen Reaktionszeiten führen.

Jeder vorhandene Treiber belegt Betriebsmittel (Speicherplatz, CPU-Zeit). Daher ist es vorteilhaft, wenn Treiber temporär (z.B. beim Booten) ge- oder entladen werden können, um maximale Systemleistung zu erhalten.

Load: Init Interrupt Vector Allocate Buffer Enable Interrupts Interrupt Service Routine Get data Save data Fork if not ready Return from Interrupt (RTI)

Unload:

Clear Interrupt Vector Deallocate Buffer

Disable Interrupts

ERROR Handler (Fehlerbehandlung)

Bild r3p07

4.3.6 Anforderungen

Systemeigenschaften

- Interrupt-Verarbeitung

- Prioritätensteuerung: priorisierte Interrupts, priorisierte Tasks

- residente oder ladbare Teiber

- Resource sharing

- Multitasking

- Multiprozessorfähigkeit

- ROM-fähig

- skalierbare Prozessorleistung

- Skalierbarkeit der Hardware und der Peripherie

Systemfunktionen

- Erfassung von gleichzeitig auftretenden externen Prozeßereignissen

- IPC, Inter Process Communikation: Semaphore (switches, signals, flags), shared memory, pipes, mailboxes

- Dateisystem mit schnellem Zugriff, gesichertem Zugriff und Pufferung (Caching)

- Zeitschrankenüberwachung

- Schutzmechanismen: Speicherschutz, Zugriffsschutz

- Fenstertechnik (Benutzeroberflächen)

Systemmanagement

- Konfigurierbarkeit (Installation von Tasks und Treibern)

- Power-fail Vorkehrungen (bei Netzspannungsausfall)

- Stapelverarbeitung, Batchbetrieb

- Dienstprogramme für Dateiverwaltung und Kommunikation

- Spooling

- Error-Logger

- Backup

- Dokumentation

Unterstützung für die Programmentwicklung:

- definierte/normierte Anwenderschnittstellen (User Interface) API (Application Program Interface)

- Entwicklungsumgebung

- Datenbanksystem als Entwicklungstool

- Testumgebung: interaktiver Debugger

4.3.7 Beispiele für Betriebssysteme

Betriebssystem Prozessor Hersteller  Anmerkungen
MS-DOS  Intel  MicroSoft  für PCs
Windows  Intel 80x86 MicroSoft  dito
OS/2  Intel 80x86 IBM  für Workstations
UNIX  diverse  AT&T; u.a.  dito
VAX-VMS  VAX  DEC  für ”Minicomputer”
OS-9  viele  zur Realzeitverarbeitung
LynxOS  diverse  dito
RTX  M 68 000  dito
RSX-11  PDP-11  DIGITAL (DEC) dito, historisch
RT-11  PDP-11  DIGITAL (DEC) dito, historisch

4.4 Systembetrieb

4.4.1 Systemstart (Booten)

Das Einschalten des Rechners erfolgt in mehreren Arbeitsschritten:

- Erstellung eines definierten Anfangszustands (Z_{0}), insbesondere der Instruction Pointer (IP oder PC, Programm Conter) muß auf einen bestimmten Wert gesetzt werden, der auf einen “Urlader“ (Bootstrap) in einem ROM (im BIOS) verweist. Auch der Stack Pointer (SP) muß einen bestimmten Wert erhalten und alle Flags der CPU (im PSW). Durch ein geeignetes Signal (INIT) werden alle Geräteanschlüsse über den Bus vom Bootvorgang informiert und haben sich selber in einen definierten Anfangszustand zu bringen.

- Der Urlader führt eine Reihe von Systemtests (auf den Arbeitsspeicher und die Geräteanschlußregister) durch, bevor er das Betriebssystem von der Systemplatte in den Arbeitsspeicher lädt. Dabei kann er Konfigurationsparameter aus einer vom Administrator verwalteten Datei (z.B. config.sys) lesen und verwenden.

- Nach dem Laden des Betriebsystems führt dieses wiederum weitere Tests an Hardund Software aus, bevor es weitere Systemkomponenten und Dienst- und Anwenderprogramme lädt, wie sie in einer oder mehreren weiteren Konfigurationsdateien (z.B. autoexec.bat) festgelegt sind.

- In den meisten Fällen kann der Bootvorgang durch Benutzereingriff unterbrochen und in interaktive Module verzweigt werden, um neue Systemparameter einzustellen oder Alternativen auszuwählen.

4.4.2 Systempflege

Systemkonfigurierung, Systemmanagement

- Installation von Treibern,

- Entfernen von Treibern,

- Einrichten von Hintergrund-Tasks (Daemons)

- Einstellen von Systemparametern wie Prioritäten von Tasks, Zeitschranken

4.5 Aufbau eines Betriebssystems

Konstruktive, statische Aspekte Typische Bestandteile sind:

- Tabellen, z.B. Interrupt Vektor Tabelle (IVT)

- Datenpuffer, z.B. Video-RAM

- BS-Routinen, wiedereintrittsfähig (reentrant), verschiebbar (position independent) Die Programme und Daten werden unterschiedlich gespeichert:

- im ROM residente Basisfunktionen, z.B. BIOS (Basic Input/Output System)

- im RAM residente Tabellen, z.B. die Interrupt Vektor Tabelle (IVT), und Hintergrundprogramme, z.B. Daemon-Programme oder TSR-Programme (Terminate and Stay Resident)

- im RAM und auf der Systemplatte austauschbare Routinen (Swapp oder Overlay) Im Adreßraum liegt das BS meist am unteren oder am oberen Ende. Manche BS (z.B. MS-DOS) machen beides. Die Geräteregister liegen in einem eigenen Adreßbereich, (Input/Output Page), der entweder ein (gemappter) Bereich im obersten Abschnitt des Adreßraums ist, oder ein eigener, skundärer Adreßraum, der durch ein zusätzliches Adreßbit zu erreichen ist. (Beim Intel 80x86 wird dieses nur durch bestimmte Instruktionen wie IN und OUT aktiviert.)

Beispiel: Belegung des Speichers unter MS-DOS (V 6.20) (nicht maßstäblich)

32 M  EMS (XMS)  Speichererweiterung (4G) 1 M  BIOS – ROM 48 K HiRAM: 32 K System–  UMB EMS-Fenster: 64 K Programme  SCSI–ROM: 16 K Video – RAM 128 K 640 K Dienst - und Anwender Programme konventioneller TSRs  Speicher Treiber MSDOS.SYS (Kernel) IO.SYS (BIOS – API) 1 K  Interrupt 0  Vektoren . .Sekundärer Adreßbereich 64K I/O page 0

Inhaltsverzeichnis

0 Einleitung 1

0.1 Historische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . 1

0.1.1 Hilfsmittel zur Datenverarbeitung . . . . . . . . . . . . . . . . 1 0.1.1.1 Primitive Hilfsmittel . . . . . . . . . . . . . . . . . . . 1 0.1.1.2 Mechanische Hilfsmittel . . . . . . . . . . . . . . . . . 1 0.1.1.3 Logische Hilfsmittel . . . . . . . . . . . . . . . . . . . 1

0.1.2 DV-Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0.1.3 Rechner-Generationen . . . . . . . . . . . . . . . . . . . . . . . 2 0.1.4 Physikalische Grenzen . . . . . . . . . . . . . . . . . . . . . . . 2

0.2 Begriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0.2.1 Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0.2.2 Basisreferenzmodell . . . . . . . . . . . . . . . . . . . . . . . . 3 0.2.3 Signale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 0.2.4 Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 Grundlagen der Digitalelektronik 6

1.1 Boole’sche Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.2 Boole’sche Funktionen . . . . . . . . . . . . . . . . . . . . . . . 7 1.1.3 Normalformen . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.3.1 Disjunktive Normalform . . . . . . . . . . . . . . . . . 8 1.1.3.2 Konjunktive Normalform . . . . . . . . . . . . . . . . 8 1.1.3.3 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1.4 Karnaugh-Veitch-Diagramme (KV-Diagramme) . . . . . . . . . 9 1.2 Elektrotechnische Grundlagen . . . . . . . . . . . . . . . . . . . . . . . 10

1.2.1 Zweipole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.2 Schalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.3 Verknüpfungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.4 Relais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.5 Transistoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.6 Schalttransistoren . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3 Logische Schaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3.1 Elementare logische Schaltungen . . . . . . . . . . . . . . . . . 14 1.3.1.1 Inverter (NOT) . . . . . . . . . . . . . . . . . . . . . 14 1.3.1.2 Zweistellige Gatter . . . . . . . . . . . . . . . . . . . . 15 1.3.1.3 Mehrstellige Gatter . . . . . . . . . . . . . . . . . . . 15 1.3.1.4 Schaltnetze für Boole’sche Funktionen . . . . . . . . . 16

1.3.2 Rechnerbausteine . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.2.1 Addierer . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3.2.2 Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.2.3 PROM . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.3.2.4 PAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.4 Sequentielle Schaltungen . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.1 Zeitverhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.2 Bistabile Schaltungen . . . . . . . . . . . . . . . . . . . . . . . 21 1.4.3 Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2 Systeme, Automaten und Modelle 27 2.0 Grundbegriffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1 Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.1.1 Moore-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.2 Mealy-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.2 Zustandsdiagramme und -tafeln . . . . . . . . . . . . . . . . . . . . . . 31 2.2.1 Moore-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.2.2 Mealy-Automat . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.3 Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4 Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.4.1 Statische Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4.2 markierte Petri-Netze . . . . . . . . . . . . . . . . . . . . . . . 38 2.4.3 Formale Beschreibung von Petri-Netzen . . . . . . . . . . . . . 40 2.4.4 Anwendungen von Petri-Netzen . . . . . . . . . . . . . . . . . . 41 2.4.5 Varianten von Petri-Netzen . . . . . . . . . . . . . . . . . . . . 42

3 Rechnerarchitekturen 43 3.0 Der Rechner als System . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1 Rechnerkonfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.2 Die Zentraleinheit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.2.1 Die CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2.1.1 Das Mikroprogramm . . . . . . . . . . . . . . . . . . . 48 3.2.1.2 Instruktionen und Adressierungen . . . . . . . . . . . 49

3.2.2 RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2.2.1 Load-and-Store-Architektur . . . . . . . . . . . . . . . 52 3.2.2.2 Pipelining . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.2.3 Der Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.2.4 Der Arbeitsspeicher . . . . . . . . . . . . . . . . . . . . . . . . 57 3.2.5 Speicherwerke (Memory Units) . . . . . . . . . . . . . . . . . . 59 3.2.6 Speicherelemente (Memory Elements) . . . . . . . . . . . . . . 61

3.3 Geräteanschlüsse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.3.1 Grundstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.3.2 Busschnittstelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.3.3 Polling, Interrupts und DMA . . . . . . . . . . . . . . . . . . . 65

3.3.3.1 Abfragebetrieb, Polling: . . . . . . . . . . . . . . . . . 65 3.3.3.2 Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.3.3.3 DMA-Betrieb . . . . . . . . . . . . . . . . . . . . . . . 69

3.3.4 Geräteschnittstellen . . . . . . . . . . . . . . . . . . . . . . . . 71 3.4 Standardperipherie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.4.1 Terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.4.2 Drucker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.4.3 Plotter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 3.4.4 Maus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.4.5 Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.5 Massenspeicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.5.1 Magnetplatten . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.5.2 Magnetbänder . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.5.3 Optische Speicherplatten, CD-ROM . . . . . . . . . . . . . . . 83

3.6 Abläufe in der ZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.6.1 Das Zeitverhalten im Polling-Betrieb . . . . . . . . . . . . . . . 85 3.6.2 Zeitverhalten im Interrupt-Betrieb . . . . . . . . . . . . . . . . 87

4 Betriebssysteme 89 4.0 Der Rechner als System . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.1 Die Benutzeroberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.2 Betriebsarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.3 Aufgabe und Struktur eines Betriebssystems . . . . . . . . . . . . . . . 93

4.3.1 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.3.2 Taskmanagement . . . . . . . . . . . . . . . . . . . . . . . . . . 93 4.3.3 Dateiverwaltung . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.3.4 Betriebsmittelverwaltung . . . . . . . . . . . . . . . . . . . . . 96 4.3.5 Gerätetreiber . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.3.6 Anforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.3.7 Beispiele für Betriebssysteme . . . . . . . . . . . . . . . . . . . 98

4.4 Systembetrieb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.4.1 Systemstart (Booten) . . . . . . . . . . . . . . . . . . . . . . . 99 4.4.2 Systempflege . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.5 Aufbau eines Betriebssystems . . . . . . . . . . . . . . . . . . . . . . . 100