Wirtschaftsinformatik (Bachelor-Studiengang): Rechnerarchitketur & Betriebssysteme (1. Semester)
Sie sind hier: Startseite › Wirtschaftsinformatik › Rechnerarchitektur/Betriebssysteme: Allgemeine Einführung, Repräsentation von Daten
BM / CM, Kurs vom 01.04.2002 - 30.09.2002
- Einführung
- Aussagenlogik
- Schaltnetze und Schaltwerke
- Variablen können viele Zustände haben
- Rechnen mit Natürlichen Zahlen
- Rechnen mit Rationalen Zahlen
Einführung
Folgendes soll gelernt sein:
- Wie Hardware grundsätzlich funktioniert, welche Arten davon es gibt und wofür diese verwendet werden können,
- Was eine Architektur auf der Ebene der Hardware und Software ist,
- Wie Rechner intern aussehen, wie sie kommunizieren, was PC, Client und Server sind,
- Was ein Betriebssystem ist, welche Aufgaben es hat und wie diese realisiert werden und
- Erfahrungen mit Windows NT und Linux haben.
Ziele der Veranstaltung
Was soll von dem Stoff gelernt werden?
- Das Wesentliche, der Kern der Dinge: das Konzept erkennen und
- das Konzept anhand eines oder mehrerer Beispiele studieren und damit verstehen, um
- das Konzept in ähnlichen oder vollkommen anderen Fällen anzuwenden
Warum die Orientierung an Konzepten?
- Das Innovationstempo ist so hoch, dass das Gelernte schon zum Ende des Studiums veraltet ist.
- Im Konzept steckt das Wissen, um das es eigentlich geht.
Wissen in Form von Modellen:
Globale Vorgehensweise:
- Darstellung des (technischen) Problems
- Darstellung einer (speziellen) Lösung
- Abstraktion von der Lösung zum (allgemeinen) Konzept
- Konzept anhand der Beispiellösung wieder erkennen
- Konzept auf andere Probleme anwenden und damit verstehen
Das Konzept wird in Form eines Modells beschrieben, so dass dieses Modell das Konzept ausdrückt.
Hinweis: Das Modell ist damit die sprachliche Form für das Konzept.
Begriffe - Die Basis des Wissens
Wichtig zum Verstehen sind Begriffe, die daher möglichst genau festgelegt (definiert) und damit übereinstimmend benutzt werden (sollten).
Aber: Begriffe können nicht immer präzise definiert
werden, und: manchmal ist dies auch nicht sinnvoll.
z.B. Schmerz, "zu teuer",
schicker Rechner
Begriffe werden festgelegt (Definition) oder erläutert (Explikation), der Aufbau ist derselbe:
- Definiendum = Definiens
- Das-festzulegende = Das-was-festlegt
- z.B. "Junggeselle = Unverheirateter junger Mann"
Hinweis: Auf der rechten Seite darf nichts von der linken stehen, falsch ist: "System = Menge von Subsystemen".
Begriffe und eine Erklärung:
- Definition: Festlegung der Bedeutung (Semantik) eines Begriffs
- Explikation: Umschreibende Erläuterung der Bedeutung eines Begriffs
- Konzept: Zusammenfassung des Wesentlichen, des Kerns (lat. concipere: zusammenfassen)
- Abstraktion: Weglassen des aus der Sicht des Zwecks Unwichtigen (lateinisch abstrahere: weglassen)
- Modell: Beschreibung eines Sachverhalts oder eines Zusammenhangs zum Zweck einer Problemlösung
- Wissen: Informationen, die zu einer Problemlösung befähigen
- Semantik: Bedeutung
- Bedeutung: Das, was in einer Äußerung
ausgedrückt ist (in der menschliche Kommunikation)
Das, was bewirkt bzw. verändert wird (in Computern) - Synonym: Verschiedene Worte mit derselben Bedeutung sind
Synonyme
z.B. "Semantik" - "Bedeutung", "Schlips" - "Krawatte"
Rechnerarchitektur:
Rechnerarchitektur = Baukunst, Rechner (Computer) als physikalische Geräte so zu entwerfen und zu realisieren, dass sie den gewollten Zweck zu den gewollten Kosten erfüllen.
Rechnerarchitektur befasst sich also mit
- Hardware
- Hardware-naher Software
- Vernetzungen verschiedener Hardware-Komponenten
Rechnerarchitektur = Struktur bestehend aus vernetzten physikalischen Komponenten eines Rechners. Hierbei wird der Aufbau eines bestimmten Rechners betrachtet, während bei der vorherigen Definition die Ingenieurskunst zum Konstruieren von Computern thematisiert wird.
Geschichte
Ältere Geschichte:
Bildbeschreibung "ältere Geschichte": Im Bereich der mechanischen Rechner: 1623 - Schickard (Addition / Subtraktion), 1645 - Pascal (Addition / Subtraktion), 1674 - Leibniz (Grundrechenarten). Im Bereich Programmierung: 1805 - Jaquard (Webstuhlprogrammierung; Lochkarten). Dann Zusammenführung: 1822 - Babbage (mit Lochkarten programmgesteuerte Rechenmaschine; Konzept), 1937 - Zuse (mechanisch programmierbare Maschine; Z1), 1941 - Zuse (mechanisch programmierbare Maschine; Z2), 1945 - von Neumann (programmgesteuerte Maschine, deren Vehalten vom internen Zustand abhängt; Konzept), 1946 - von Eckert, Mauchly und Goldstine (ENIAC vollelektronischer Rechner; Röhren).
Neuere Geschichte:
- 1964: IBM /360, CDC 6600
- 1965: UNIVAC 1108
- 1966: DEC PDP 8
- 1969: CDC 7600
- 1970: DEC PDP 11
- 1971: Intel 4004
- 1972: IBM /370, Burroughs B7700, Intel 8008
- 1974: Intel 8080, Motorola 6800
- 1976: Apple-I, Cray 1, Zilog 80, Intel 8085
- 1977: Commodore PET, TRS 80
- 1978: DEC VAX-11, Intel 8086
- 1979: Motorola 68000, Intel 8088
- 1980: ZX80, Volkscomputer-20
- 1981: IBM-PC
- 1982: Commodore C64, Intel 80286
- 1983: Apple Lisa
- 1984: IBM-AT, Motorola 68020
- 1985: Atari ST, Intel 80386
- 1987: Sun Sparc
- 1989: Intel 80486, Motorola 68040
- 1992: DEC Alpha
- 1993: Intel Pentium, Motorola PowerPC 601, mips R4400
- 1997: Intel Pentium II, Motorola PowerPC 604
- 1999: Intel Pentium 3, Motorola PowerPC 750
- 2001: Intel Pentium 4, IA64
Zitate:
Thomas Watson (IBM), 1943:
I think there is a world market for
maybe five computers.
Popular Mechanics (Zeitschrift, 40er Jahre):
Computers in the future may weigh no
more than 1.5 tons.
Bill Gates, 1981:
640 Kbytes ought to be enough for
anybody.
Ken Ohlson (Gründer von DEC):
There is no reason anyone would want
a computer in their home.
Aussagenlogik
Einführung und Kombinationstabelle
Einführung / Erklärung:
Was darf der Butler dem Grafen auftischen?- A1 = "Hühnchen passt mir mit gelber Soße"
- A2 = "Aber nie Soße mit Pudding"
- A3 = "Nie Fisch und Hühnchen zusammen"
- A4 = "Pudding passt nicht zu Fisch"
- A5 = "Nie etwas allein auftischen"
- A6 = "Aber immer irgendetwas auftischen"
Lösung:
- Elemente der Aussagen identifizieren
Hühnchen (H), Fisch (F), Soße (S), Pudding (P) - Zustände der Elemente bestimmen
Gereicht (J) oder nicht-gereicht (N) - Tabelle mit allen Kombinationen aufstellen
- Aussagen A1 bis A6 in die Tabelle einarbeiten
Hühnchen | Fisch | Soße | Pudding | Okay? | Aussagen |
---|---|---|---|---|---|
N | N | N | N | N | A2, A3, A4, A5 |
N | N | N | J | N | A2, A3, A4, A6 |
N | N | J | N | N | A2, A3, A4, A6 |
N | N | J | J | N | A3, A4, A5, A6 |
N | J | N | N | N | A2, A3, A4, A6 |
N | J | N | J | N | A2, A3, A5, A6 |
N | J | J | N | J | A2, A3, A4, A5, A6 |
N | J | J | J | N | A3, A5, A6 |
J | N | N | N | N | A2, A3, A4, A6 |
J | N | N | J | J | A2, A3, A4, A5, A6 |
J | N | J | N | J | A1, A2, A3, A4, A5, A6 |
J | N | J | J | N | A1, A3, A4, A5, A6 |
J | J | N | N | N | A2, A4, A5, A6 |
J | J | N | J | N | A2, A5, A6 |
J | J | J | N | N | A1, A2, A4, A5, A6 |
J | J | J | J | N | A1, A5, A6 |
Umformen in logische Ausdrücke
- "Hühnchen passt mir mit gelber Soße":
H ⊥ S - "Aber nie Soße mit Pudding":
¬(S ⊥ P) - "Nie Fisch und Hühnchen zusammen":
¬(F ⊥ H) - "Pudding passt nicht zu Fisch":
¬(P ⊥ F) - "Nie etwas allein auftischen":
¬((H ⊥ ¬ F ⊥ ¬ S ⊥ ¬ P) ⊥ (¬ H ⊥ F ⊥ ¬ S ⊥ ¬ P) ⊥ (¬ H ⊥ ¬ F ⊥ S ⊥ ¬ P) ⊥ (¬ H ⊥ ¬ F ⊥ ¬ S ⊥ P)) - "Aber immer irgendetwas auftischen":
¬(¬H ⊥ ¬ F ⊥ ¬ S ⊥ ¬ P)
Bedeutung der logischen Operatoren
F steht für Falsch, W steht für Wahr.
- ¬A: Negation, darstellbar durch not bzw. das Zeichen "!"
- A ⊥ B: Und (And), darstellbar durch and bzw. das Zeichen "&"
- A ⊦ B: Oder (Or), darstellbar durch or bzw. das Zeichen "|"
- A | B: nand
- A ∇ B: nor
A | B | ¬A | A ⊥ B | A ⊦ B | A | B | A ∇ B |
---|---|---|---|---|---|---|
F | F | W | F | F | W | W |
F | W | W | F | W | W | F |
W | F | F | F | W | W | F |
W | W | F | W | W | F | F |
Sätze der Aussagenlogik
⇔ bedeutet Äquivalenz, » bedeutet Implikation.
- Satz vom ausgeschlossenen Dritten:
A ⊦ ¬A - Satz vom Widerspruch:
¬(A ⊥ ¬A) - Satz von der doppelten Verneinung:
¬(¬ A) ⇔ A - Sätze von De Morgan:
¬(A ⊥ B) ⇔ ¬A ⊦ ¬B
¬(A ⊦ B) ⇔ ¬A ⊥ ¬B - Kontrapositionssatz:
A » B ⇔ ¬B » ¬A - Modus ponens:
(A » B) ⊥ A » B - Modus tollens:
(A » B) ⊥ ¬B » ¬A - Modus barbara:
(A » B) ⊥ (B » C) » (A » C) - Distributivsätze:
A ⊥ ( B ⊦ C) ⇔ (A ⊥ B) ⊦ (A ⊥ C)
A ⊦ ( B ⊥ C) ⇔ (A ⊦ B) ⊥ (A ⊦ C)
Schaltnetze und Schaltwerke
Schaltnetze (Moore-Automat)
Beispiel (Spezialfall):
Bildbeschreibung "Schaltnetz 1": Vier Schalter [Hühnchen (H), Fisch (F), Soße (S), Pudding (P)] stellen die Eingangsvariablen dar. Abgefragt wird, ob das Essen in Ordnung ist. Ausgangsvariablen werden über eine Lampe dargestellt.
Interpretation der
Variablen (Prädikate)
Variablen, die gesetzt werden müssen:
Eingangsvariablen
Nein = Falsch = Schalter auf,
Ja = Wahr = Schalter zu
Variablen, die "berechnet" werden:
Ausgangsvariablen
Nein = Falsch = Lampe aus,
Ja = Wahr = Lampe brennt
Allgemeines Modell:
Bildbeschreibung "Schaltnetz 2": Links: Eingänge x1 bis xn; Mitte: Schaltnetz; Rechts: Ausgänge y1 bis yn.
Funktion:
Zuordnung von Werten von Variablen zu einem Wert.
Für bestimmte Werte der Variablen liefert die Funktion einen
Wert.
Statt Zuordnung kann auch Abbildung
gesagt werden.
Schaltnetz:
Komponente, die Werte entsprechend den Funktionen aus einer oder
mehreren Variablen bestimmt, ohne dabei vorherigen Werte zu
benutzen.
Jeder Funktionswert wird sofort, ohne die Vorgeschichte zu beachten
- also ohne einen "Speicher" -, aus den Variablen nach
einem unveränderbaren Schema bestimmt.
Vorgehensweise
Bildbeschreibung "Vorgehensweise": Unterteilung in Phasen, Tätigkeiten und Ergebnisse. Phase 1 = Analyse des Problems. Phase 2 = Konstruieren/Aussuchen einer Sprache/Theorie. Tätigkeit = Analysieren, verstehen, interpretieren. Ergebnis = Aussagenlogik, Bildung von Prädikaten, Sätze/Regeln. Phase 3 = Formulieren des Problems samt Lösung in Sprache. Tätigkeiten = Interpretieren. Ergebnis = Wertetabelle, Boole'sche Ausdrücke. Phase 4 = Realisierung des Modells auf Computer-Ebene. Tätigkeiten = Umformen, abbilden. Ergebnis = Schaltnetz. Phase 5 = Realisierung des Computers. Tätigkeiten = Löten. Ergebnis = And/Or/Not-Gatter, nand-Gatter.
Denken in Schichten
Jede Ebene (Schicht) hat eine eigene "Denkwelt".
In dieser Welt kann eigenständig unabhängig von der
Umwelt gedacht werden,
nur die Schnittstelle nach "oben" und "unten"
muss beachtet werden.
Nach "oben" werden Leistungen erbracht,
von "unten" werden Leistungen benutzt.
Jede Ebene hat eine eigene "Sprache",
in der die Modelle dieser Ebene formuliert werden.
Bildbeschreibung "Schichten": Fünf Ebenen (Schichten): Arbeitssituation (oberste Ebene), Lösungsbeschreibung, Gatter, Bauelemente, Physik (unterste Ebene).
Schicht (Ebene, Layer):
Eigenständige Denkwelt mit spezieller Sprache.
Schichten werden mit der gerichteten benutzt-Beziehung (Relation)
mit anderen Schichten verbunden.
In strengen Schichtensystemen ("Torten") benutzt eine
Schicht max. eine andere und wird von
max. einer anderen selbst
benutzt.
Sprache wird hier als allgemeines Ausdrucksmittel zur Formulierung
von Sachverhalten verstanden.
Benutzt-Beziehung:
"A benutzt B" bedeutet, dass die von B erbrachte Leistung
bei der Leistungserbringung von A erforderlich ist.
Die Korrektheit von A hängt damit von der Korrektheit von B
ab.
Zu Ehren von George Boole werden Daten mit zwei
Zuständen als von der Art "Boolean" oder
"Bool" bezeichnet.
Ausdrücke damit sind daher "Boole'sche
Ausdrücke" - sie kennen nur zwei Werte: Wahr (true) und
Falsch (false).
Bool'sche Algebra = Aussagenlogik (Teilmenge der
Prädikatenlogik, 1. Stufe).
Typ = Art von Ausdrücken oder Daten. Im zweiten Fall wird auch von Datentyp gesprochen.
Schaltwerk (Mealy-Automat)
Darstellung von Information:
- Unser Graf ist etwas wählerisch, denn er möchte, dass nie dasselbe Essen zwei Mal hintereinander serviert wird.
- Leider ist unser Butler total vergesslich, so dass sich unsere Maschine das jeweils letzte Essen merken und es bei der Bewertung berücksichtigen muss.
- Unser Schaltnetz kann sich nichts merken - warum?
- Mit Schaltnetzen können keine Computer gebaut werden, in denen etwas "abgespeichert" werden kann.
- Speicher lassen sich nur mit rückgekoppelten Schaltnetzen, die sich dann Schaltwerke nennen, realisieren.
Flip Flop:
Bildbeschreibung "Flip Flop": Diese Grafik enthält die technische Zeichnung von verschiedenen Schaltvorgängen in einem Flip Flop.
Ein Flip Flop mit einem Takteingang erhält den Zustand unabhängig von den Zuständen an dem Data-Eingang bei.
Nur wenn der Takt auf 1 ist, wird der Wert am Data-Eingang übernommen.
Hinweis: Ein rückgekoppeltes Schaltnetz mit einem inneren Zustand wird Mealy-Automat genannt.
Schaltwerk:
Rückgekoppeltes Schaltnetz mit Speicher, dessen Zustände in die Funktion eingehen; d.h. der Funktionswert hängt von den Eingangsvariablen und vom inneren Zustand ab.
Zustand:
Wert einer Funktion, der länger als ein (technisch bedingter) festgelegter Zeitraum anhält.
Speicher:
Schaltwerk, dessen Zustände nur unter festgelegten Bedingungen sich ändern, ansonsten erhalten bleiben.
Alle Speicher des "Rechnerkerns" arbeiten nach dem vorgestellten Prinzip, auch wenn vollkommen andere Technologien als DTL benutzt werden. Außerhalb des Rechnerkerns - an der Peripherie - werden zum Speichern andere Techniken verwendet.
Maschine für unseren vergesslichen Butler:
Für unseren Butler werden 4 Flip Flops benötigt, die jeweils den letzten servierten Zustand der Variablen H, F, S und P speichern und deren Zustände (Werte) in das Schaltnetz zur Bestimmung, ob das Servierte in Ordnung ist, eingehen.
Dies wird in einer viel größeren - hier nicht abgebildeten - Zustandstabelle berücksichtigt, in der als Spalten auch die Speicher-Flip Flops mit ihren alten und neuen Werten eingehen.
Variablen können viele Zustände haben
- Jede Variable hatte bisher nur 2 Zustände/Werte;
deshalb reichte pro Variable ein Flip Flop. - Was ist, wenn eine Variable mehr als 2 Werte annehmen kann?
- Verfahren zur Bestimmung der Flip Flop-Anzahl:
- Feststellen der Anzahl der Zustände
- Ld(Anzahl) (Logarithmus Dualis = Log zur Basis 2)
- Zur nächsten ganzen Zahl aufrunden
- Dies ist die Anzahl der Flip Flops
- Eine bestimmte Kombination von Flip Flop-Werten entspricht
einem bestimmten Zustand der Variablen.
Die Zuordnung der Flip Flop-Wertkombination zu den Werten der Variablen wird Codierung oder Code genannt.
Codierung
- Wenn n Bits zur Verfügung stehen, kann damit ein Symbol
mit max. 2n-Zuständen dargestellt werden:
8 bit » 28 » 256 Zustände
16 bit » 216 » 65535 Zustände - Ein Zustand eines Symbols wird durch einen Wert, der aus einer Kombination von Bit-Zuständen besteht, repräsentiert.
Repräsentation:
Rechnerinterne Darstellung eines Werts bzw. Zustands eines Symbols.
Symbole werden durch ihren augenblicklichen Wert/Zustand im Computer repräsentiert.
Code:
Zuordnung zwischen Repräsentationen (Bitkombinationen) und Werten eines Symbols.
Zeichencodes:
Bildbeschreibung "Zeichencodes": Das schriftliche Alphabet in den USA besteht aus 26 Kleinbuchstaben, 26 Großbuchstaben, 10 Ziffern, 33 Sonderzeichen und 33 Steuerzeichen. Somit sind für die Darstellung 7 Bits erforderlich, 8 bit (1 Byte) stehen zur Verfügung. Nach dem ASCII-Code (American Standard Code for Information Exchange) wird der Buchstabe "a" beispielsweise dargestellt durch 0110.1000, der Buchstabe "b" durch 0110.0100, der Buchstabe "c" durch 0110.1100. Neben dem ASCII-Code gibt es noch EBCDI (Extended Binary Coded Decimal Interchange Code), Unicode (16 bit) und UCS (Universal Multiple Octett Coded Character, 32 bit)
- ASCII enthält
keine Umlaute, wie z.B. 'ä' oder
'å'.
Dies sind Erweiterungen, die nicht von allen Computern gleich behandelt werden. - Unicode enthält weltweit standardisiert alle besonderen Zeichen, auch aus dem arabischen, chinesischen oder koreanischen Raum, benötigt aber 16 bit (2 byte).
- Um ein Zeichen (Char) zu speichern oder zu verarbeiten, muss die interne Repräsentation (8 oder 16 bit) entsprechend dem Code als Einheit interpretiert werden, z.B. beim Ausdrucken muss bei "0110.1000" ein "a" auf dem Papier erscheinen (ASCII-Code).
Bildbeschreibung "Zeichenbearbeitung": Eine Zeichenvariable kann bei 8 Flip Flops 256 Zustände annehmen. Die Grafik zeigt 8 Flip Flops, die zur Darstellung eines Zeichens benötigt weden. Diese werden an ein Schaltnetz zum Decodieren weitergegeben. Zur Darstellung einer "8" werden somit 16 Eingänge (2 pro Flip Flop) und 7 Ausgänge benötigt.
Das Bit:
Ein Symbol mit den zwei Boole'schen Zuständen benötigt ein Flip Flop, das abstrakt Bit genannt wird.
Umgekehrt formuliert: Ein Bit kann durch ein Flip Flop realisiert werden, ist jedoch keines.
Bit = Abstrakte Begriff von einen Speicher, der nur zwei Zustände bzw. Werte annehmen kann.
Bit = Binary digit.
Für Variablen mit beliebig vielen Zuständen ist dementsprechend eine bestimmte Anzahl von Bits erforderlich.
Informationsmenge:
- Die Informationsmenge einer Nachricht wird in bit gemessen. Hier ist bit die quantitative Einheit, mit der der "Umfang" einer Information gemessen wird.
- 1 bit hat die Menge von ausgetauschten Informationen, die nötig ist, das Ergebnis einer Entscheidung zwischen zwei gleichwahrscheinlichen Alternativen mitzuteilen. Sie ist gleichzeitig die kleinste mögliche Informationsmenge.
- Technisch ist das bit sehr wichtig, da die maximal notwendige Informationsmenge bestimmt werden kann, die nötig ist, einem Menschen eine ihm vollkommen neue Nachricht zu übertragen bzw. abzuspeichern, um sie ihm später lesbar zu machen.
Das bit in diesem Sinne wurde von Claude Shannon definiert.
Hinweis: Beachte: 3 Bits aber 3 bit, "das Bit 4" und nicht "das bit 4".
Organisation von Speichern:
Speicher wird organisiert in Einheiten von
- 8 Bits = 1 Byte
- 16 Bits = 1 Wort (kurzes Wort, short)
- 1 Kbit = 1024 bit (Kilo bit)
- 1 Mbit = 1024 × 1024 bit = 1.048.576 bit (Mega bit)
- Analog Bytes: 1 KB = 1024 byte, 1 MB
- K steht für Kilo im Sinne von 1024, nicht 1000 (!)
- Doppeldeutig ist: 1 KB (bit oder byte?), bei 1 MB wird immer byte angenommen.
Dass ein Byte 8 Bits hat, hat rein praktische Gründe: Es lassen sich leichter Schaltungen damit aufbauen. Die CDC 6000er Serie (CDC = Control Data Corporation, Großrechner aus den 60er Jahren) hatte 12 bit-Bytes und 60 bit-Worte.
Aufbau von Speichern:
Speicher werden als
- Zwischenspeicher (Puffer) oder
- Arbeitsspeicher (RAM) benutzt.
RAM = Speicher zur Ablage von Daten, die mit
einer Adresse
angesprochen werden.
RAM = Random Access Memory
=
Speicher mit wahlfreiem Zugriff.
Zwischenspeicher werden immer benutzt, um für eine gewisse Zeit Daten zu vermerken oder um einen komplexen Zustand zu realisieren.
Realisierung von RAM:
Da sehr viele Bits in möglichst kleinen Ausmaßen benötigt werden, werden keine Flip Flops, sondern spezielle Transistor-Schaltungen benutzt.
Bildbeschreibung "Realisierung von RAM": 8-mal-8-Matrix zur Darstellung einer 6 bit Adresse. 3 bit-Teil-Adresse wird senkrecht abgebildet, 3 bit-Teil-Adresse waagerecht. Derartige Matrizen werden mehrfach parallel verwendet.
Statische RAM behalten nach dem Auslesen ihren Zustand, während dynamische dadurch ihren verlieren und daher neu aufgefrischt werden müssen.
Es gibt viele Arten von RAM, die aber vom Prinzip her gleich sind:
- SDRAM (Synchronous Dynamic Random Access Memory)
- DDR (Double Data Rate)
Hinweis: Alle RAM gehören zu den flüchtigen Speichern, die ihren Inhalt bei Verlust der Spannungsversorgung verlieren.
Nicht-flüchtige Speicher
Nicht-flüchtige Speicher behalten ihren Inhalt auch nach Spannungsverlust.
Für die Verwendung im Inneren gibt es u.a. folgende Arten:
- ROM (Read Only Memory)
- EPROM (Electrical Programmable Read Only Memory)
- EEPROM (Electrical Erasable and Programmable Read Only Memory)
- ROM sind langsamer (und teurer) als RAM, aber in Computern absolut notwendig.
Rechnen mit Natürlichen Zahlen
Darstellung von Natürlichen Zahlen
Eine Kette von Bits wird zur Darstellung der natürlichen Zahlen verwendet analog zur Codierung von Zeichen.
Die Bits werden als Koeffizienten eines Polynoms zur Berechnung des Zahlenwert interpretiert. Das Polynom entspricht einer Codierungsvorschrift.
Zahl= an × Bn + an-1 × Bn-1 + ... + a1 × B1+a0 × B0
Beispiel mit B=10:
1984 = 1 × 103 + 9 × 102 + 8 × 101 + 4 × 100
Beispiel mit B=2:
13 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 = 1101
Hinweis: Zusammenfassung von 4 Bits zu einer Zahl.
Umrechnung nach Binär
Bildbeschreibung "Umrechnung nach Binär": Schritt 1 = Initialisierung (Zahl 13). Schritt 2 = 1. Durchlauf (13 ÷ 2 = 6 Rest 1; also: Zahl 6, Ziffer 1, gemerkt 1). Schritt 3 = 2. Durchlauf (6 ÷ 2 = 3 Rest 0; also: Zahl 3, Ziffer 0, gemerkt 10). Schritt 4 = 3. Durchlauf (3 ÷ 2 = 1 Rest 1; also: Zahl 1, Ziffer 1, gemerkt 101). Schritt 5 = 4. Durchlauf (Zahl 0, Ziffer 1, gemerkt 1011). Schritt 6 = Umdrehen (1011 wird zu 1101). Die Dezimalzahl "13" wird somit binär dargestellt durch die "1101".
Ziffernvorrat, Basis und Ziffern:
- Binärsystem
Basis: 2, Ziffern: 0, 1 - Oktalsystem
Basis: 8, Ziffern: 0, 1, 2, 3, 4, 5, 6, 7 - Dezimalsystem
Basis: 10, Ziffern: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - Hexadezimalsystem
Basis: 16, Ziffern: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Aus dem Binärsystem lassen sich sehr leicht die Ziffern des Oktalen (jeweils 3 Bits) und des Hexadezimalen (jeweils 4 Bits) System herleiten.
Umrechnung von Binär
Bildbeschreibung "Umrechnung von Binär": Die Binärzahl 1101 wird wieder zurückgrechnet in die Dezimalzahl 13. Berechnung: 1.Schritt = Initialisierung der Binärzahl 1101; 2.Schritt = Umdrehen (aus 1101 wird 1011); 3.Schritt = 1.Durchlauf (1 × 20 = 1); 4.Schritt = 2.Durchlauf (0 × 21 = 0); 5.Schritt = 3.Durchlauf (1 × 22 = 4); 6.Schritt = 4.Durchlauf (1 × 23 = 8). Die Addition der in Schritt 3 bis Schritt 6 errechneten Ergebnisse ergibt die gesuchte Dezimalzahl 13 (1 + 0 + 4 + 8).
Negative Zahlen (Komplement)
Die Subtraktion wird auf die Addition des negativen Werts
zurückgeführt: a − b ⇔ a+(−b).
Das Komplement einer Zahl ist dessen negativer Wert.
1er- und 2er-Komplement:
Bildbeschreibung "Komplement": Die größte positive Zahl wird dargestellt durch 0111111. Die 0 ist dabei zuständig für das Vorzeichen. Die größte negative Zahl ist somit die 10000000.
In der Praxis kommen nur Maschinen mit 2er-Komplement vor.
Addition/Subtraktion mit 2er-Komplement:
Bildbeschreibung "Addition/Subtraktion mit 2er-Komplement": In dem Beispiel werden die Dezimalzahlen 7 und 8 binär addiert (0111 + 0110). Durch bitweise Addition ist das Ergebnis 1101, was der Dezimalzahl 13 entspricht.
Bilden des 2er-Komplements:
(1) 1er-Komplement durch Negation
(2) Addition von 1
1-Bit-Addierer
Input | Output | |||
---|---|---|---|---|
A | B | Überlauf | Summe | Überlauf |
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 |
Bildbeschreibung "N bit Addierer": Das Bild zeigt den Schaltplan eines N bit Addierers.
Zahlenbereiche
- Vorzeichenbehaftet
8 bit (byte): -128 ... 127
16 bit (short): -32.768 ... 32767
32 bit (int): -2147483648 ... 2147483647
64 bit (long): -9223372036854775808 ... 9223372036854775807 - Vorzeichenlos
8 bit (byte): 0 ... 255
16 bit (short): 0 ... 65535
... jeweils von 0 beginnend die doppelte obere Grenze+1
Die Bezeichnungen der Typen (byte, short, int) entstammen Java.
Byte-Reihenfolge (byte sex)
Big endian computer:
(von links nach rechts)
Bildbeschreibung "Big endian": Von links nach rechts: 0 = E, 1 = B, 2 = E, 3 = R.
Little endian computer:
(von rechts nach links)
Bildbeschreibung "Little endian": von rechts nach links: 0 = E, 1 = B, 2 = E, 3 = R.
Nachtrag:
Zusammenfassen von 2 × 8 bit => ein 18 bit
Kann in zwei Bereiche geteilt werden
215 - 20
höstwertig / niedrigster oder höchster / niedrigster mit:
ADR+1 / ADR
oder ADR / ADT+1
bzw.
Little Endian (Intel x86) oder Big Endian
(Motorola, IBM)
Dieses Problem betrifft nur Daten, die über mehrere hintereinander liegende Bytes gehen.
Rechnen mit Rationalen Zahlen
Festpunktzahlen
Es wird eine bestimmte Bitanzahl für den Wert vor und dem nach dem Komma festgelegt.
Bildbeschreibung "Festpunktzahlen": Von links nach rechts: Erstes Bit = Vorzeichenbit; zweites bis neuntes Bit = Binärzahl vor dem Komma; zehntes bis vierzehntes Bit = Binärzahl nach dem Komma.
Zahl = an × Bn + an−1 × Bn−1 + ... + a1 × B1 + a0 × B0 + a−1 × B−1 + a−2 × B−2 + ... + a-m × B−m
Gleitpunktzahlen
Neben einem Vorzeichenbit und der Mantisse wird ein Exponent samt eigenem Vorzeichen benutzt.
Bildbeschreibung "Gleitpunktzahlen": Von links nach rechts: Erstes Bit = Vorzeichenbit; zweites bis neuntes Bit = Binärzahl der Mantiesse; zehntes bis vierzehntes Bit = Binärzahl des Exponenten, wobei das zehnte Bit für das Vorzeichen reserviert ist.
Zahl = Mantisse × BExponent
Mantisse = 0,xxxxxxx...
Wobei 1/B ⇐ Mantisse < 1 gelten sollte (normalisiert)
Hinweis: Normalisieren = Umformen durch Umrechnung des
Exponenten, so dass Mantisse zwischen 1/B und 1 liegt.
» Der Exponent kann als Zahlenwert noch eine Basis (Offset)
haben, zu der er relativ gemeint ist.
Heutige Prozessoren realisieren Gleitpunktarithmetik (Gleitkommaarithmetik, Floating Point) nach der Norm IEEE 754.
Addition von Gleitkommazahlen:
- Angleichung des kleineren an den größeren Exponenten
- Addition der Mantissen
- Normalisierung (falls erforderlich)
Beispiel:
1.000 × 2−1 − 1.110 × 2−2 [Mantisse in Binär]
- 1.000 × 2−1 − 0.111 × 2−1
- 0.001 × 2−1
- 1.000 × 2−4 [Normalisieren]
Multiplikation von Gleitkommazahlen:
- Multipliziere die Vorzeichen
- Multipliziere die beiden Mantissen
- Addiere die beiden Exponenten und subtrahiere den Offset-Wert
- Normalisierung (falls erforderlich)
Beispiel:
+ 1.000 × 2−1 X − 1.110 × 2−2 [Mantisse in Binär]
- Multiplikation der Vorzeichen: 0 × 1 = 1
- Multiplikation der Mantissen: 1.000 × 1.110 = 1.110
- Addition der Exponenten und Subtraktion des Offset:
(−1+offset)+(−2+offset)−offset = (−3+offset)
[Offset ist hier 0] - Ergebnis: −1.110 × 2−3