Wirtschaftsinformatik (Bachelor-Studiengang): Rechnerarchitketur & Betriebssysteme (1. Semester)

Sie sind hier: StartseiteWirtschaftsinformatikRechnerarchitektur/Betriebssysteme: CPU, RAM und Bus

BM / CM, Kurs vom 01.04.2002 - 30.09.2002

Rechnerarchitektur/Betriebssysteme: CPU, RAM und Bus: Idee der Programme (Wie sieht eine Programmsteuerung aus?, Takt, Puffer (Latch), Phasen der CPU-Arbeit), Von-Neumann-Architektur (Rechnertypen, Princeton-Architektur (von Neumann), Register, Schichtenmodell), Bus (Prinzipien von Bussystemen, Master, Arten von Bussen, Zugriff auf Geräte-Register, Direct Memory Access(DMA)), RAM und ROM (Dynamic Random Access Memory (DRAM), Speichermodule, ROM), Cache (Cache Level, Cache-Strategien, Probleme der Cache Realisierung), Motherboards.

  1. Idee der Programme
  2. Von-Neumann-Architektur
  3. Bus
  4. RAM und ROM
  5. Cache
  6. Motherboards

Idee der Programme

Wie sieht eine Programmsteuerung aus?

Es sollen zwei Variablen wahlweise mit and oder mit or verknüpft werden.

Idee:

  1. Aufteilung der Eingabe-Variablen in Datenvariablen und Steuervariablen
  2. Bereitstellung verschiedener festverdrahteter Funktionen (Schaltnetze)
  3. Steuerung des Datenflusses zu den gewünschten Funktionen

Programmsteuerung I

Bildbeschreibung "Programmsteuerung I": Schaltnetz.

Erklärung:

S ist Variable
S wird auf false gesetzt => x1, x2 geht durch erste Schaltung (und)
S wird auf true gesetzt => x1, x2 geht durch zweite Schaltung (oder)

Programmsteuerung II

Bildbeschreibung "Programmsteuerung I": Schaltnetz.

Ist das ein Computer?

Ja, das ist ein Computer, der aber ein paar Nachteile hat:

· Unser Computer wird jetzt schrittweise weiter entwickelt
· Weil er so klein ist, soll er Maxi heißen
(lat. Nomen est omen = Name ist das Zeichen/Merkmal)

Computer "Maxi" mit Sprüngen:

Comuter Maxi mit Sprüngen

Bildbeschreibung "Comuter Maxi mit Sprüngen": Schaltnetz.

Takt

Takt = Zyklisches (sich wiederholendes) Pulssignal, das global oder für einen Teilbereich einen Arbeitsschritt veranlasst. Die Aufgabe des Taktes besteht in der Synchronisation verschiedener Bauteile.

Synchronisation = zeitliche Abstimmung

Wenn - wie bei Maxi - mehrere Takte für einen komplexen Arbeitsschritt (Ausführung einer Instruktion) erforderlich sind, wird von Phasen gesprochen. Maxi benötigt einen 4-Phasen-Takt, d.h. für eine Instruktion sind 4 Takte erforderlich.

Puffer (Latch)

Entkoppeln durch Puffer:

Entkoppeln durch Puffer

Bildbeschreibung "Entkoppeln durch Puffer": Schaltnetz. Monadische Operationen: Daten gelangen über einen Puffer in das Schaltnetz. Dyadische Operationen: Daten gelangen über mehrere Puffer in das Schaltnetz.

Entkoppeln durch Speicher:

Das zeitliche Entkoppeln zweier Bereiche bewirkt durch eine Trennung durch einen Speicher ein unabhängiges Arbeiten.

Das ist ein allgemeines Prinzip, das z.B. auch im Internet bei E-Mail angewendet wird.

Beispiel: Beim Telefonieren müssen beide Gesprächspartner gleichzeitig anwesend sein (Synchronität); durch Einführung eines Speichers (Anrufbeantworter) ist dies nicht mehr erforderlich: jeder ist viel unabhängiger von einander.

Puffer = Zwischenspeicher = Speicher zur zeitlichen Entkoppelung

Eine einfache Kette von Flip Flops realisiert einen Puffer, der auch Latch genannt wird.

Maxi mit Puffern:

Maxi mit Puffern

Bildbeschreibung "Maxi mit Puffern": Schaltnetz.

Jede adressierbare Bitkette aus RAM1 wird Instruktion (Befehl) genannt. RAM1 enthält die Instruktionen (Befehle) bzw. den Programmcode, kurz: Code.

Alle Puffer werden durchnumeriert, wobei die Nummer die Codierung in den Instruktionen bildet: Operationscode, kurz: Opcode genannt.

RAM2 enthält die Operanden (Daten).

Jede Instruktion enthält neben dem Opcode die Adresse eines Operanden. Daher heißen diese Befehle: 1-Adress-Befehle.

Der Puffer heißt Programmzähler (Program Counter).

Jede Instruktion enthält auch die Adresse der nächsten Instruktion, die in den Programmzähler während jeder Befehlsausführung geschrieben wird.

Phasen der CPU-Arbeit

Ausführungszyklus eines Interpreters (fetch decode execute cycle):

  1. Holen der nächsten Instruktion
  2. Decodieren der Instruktion
  3. Holen aller Operanden
  4. Ausführen der Instruktion
  5. Bestimmen der Adresse der nächsten Instruktion
  6. Weiter bei 1.

Interpreter = Programm oder Hardware, was die Semantik von Befehlen realisiert.

Semantik sind hier alle definierten Effekte (Wirkungen) von Befehlen.

Effekte könnten sein: Variable auf -3 setzen, zwei Zahlen addieren und das Ergebnis an eine bestimmte Stelle im Speicher schreiben.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Von-Neumann-Architektur

Rechnertypen

Harvard-Architektur:

Harvard-Architektur

Bildbeschreibung "Harvard-Architektur": Es gibt einen Arbeitsspeicher für Daten und einen Arbeitsspeicher für Instruktionen.

Princeton-Architektur (von Neumann):

Princeton-Architektur

Bildbeschreibung "Princeton-Architektur": Es gibt nur einen gemeinsamen Arbeitsspeicher für Daten und Instruktionen.

Maxi als Harvard-Rechner:

Maxi als Harvard-Rechner

Bildbeschreibung "Maxi als Harvard-Rechner": Aufteilung des Schaltnetzes in die Bereiche Rechenwerk, Steuerwerk, Datenspeicher und Programmspeicher.

Princeton-Architektur (von Neumann)

Princeton-Architektur

Bildbeschreibung "Princeton-Architektur": Bidirektionaler Bus mit CPU (Rechenwerk und Steuerwerk), RAM (Arbeitsspeicher Daten und Instruktionen) und I/O (Ein-/Ausgabewerk).

Der RAM mit den Instruktionen wird mit dem RAM der Daten zusammengelegt, was zu längeren Adressen oder zur Verkleinerung des Speichers für den Programmcode führt.

Der "untere" Bus zum Laden der In-Puffer wird mit dem "oberen" Bus zum Speichern in den Daten-RAM zusammengelegt; damit wird dieses Bus bidirektional (abwechselnd in beiden Richtungen) betrieben.

Eigenschaften:

  1. Vorteile:
    • Universell und flexibel
    • Minimalität der Hardware, optimale Nutzung
  2. Nachteile:
    • Bus als zentraler Kommunikationsweg ist Nadelöhr

Viele Rechner, insbesondere PC haben nicht die reine von-Neumann-Architektur.

Modell der CPU und I/O-Geräte:

Modell der CPU und I/O-Geräte

Bildbeschreibung "Modell der CPU und I/O-Geräte": Eine 32-bit-CPU besteht aus einem 32-bit-Datenregister (kurz: DR) sowie einem 32-bit-Adressregister (kurz: AR), einem Programm Counter (PC), einem Status Register (kurz: SR) und einem Instruction Register (kurz: IR). Ein einfaches I/O-Gerät besteht aus SR, DR und AR; ein I/O-Gerät mit DMA aus SR, zwei AR und CR (Count Register).

Register

Register = Schneller Speicher innerhalb der CPU, der durch das Programm direkt ansprechbar ist.

Register der CPU:

Register der I/O-Geräte:

Diese Register können über den Bus direkt von der CPU gelesen und verändert werden.

Modell des RAM und des I/O-Bereichs:

RAM und I/O-Bereich

I/O-Adressen werden manchmal Ports bzw. Port-Nummern genannt.

I/O-Adressen können getrennt vom RAM, aber auch im selben Adressbereich sein.

Schichtenmodell

Monoflops sind Flip Flops, die nur für eine bestimmte Zeit in einem Zustand verharren und dann automatisch in den stabilen anderen Zustand übergehen.

Schnittstellen sind hier Gatter mit Tri-State-Ausgängen, also Ausgängen mit drei Zuständen (H, L sowie "entkoppelt").

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Bus

Prinzipien von Bussystemen

Prinzipien von Bussystemen

Bildbeschreibung "Prinzipien von Bussystemen": CPU, Arbeitsspeicher und I/O-Gerät greifen auf die drei Busse (Adress-, Kontroll-, Datenbus) zu.

Adressbus: Datenleitungen mit den Adressen der Kommunikationspartner (8 bis 32 Leitungen):

Datenbus: Datenleitungen mit den zu transportierenden Daten (8 bis 64 Leitungen)

Kontrollbus: Leitungen, die der Steuerung dienen

Aufgaben des Kontrollbusses:

Master

Wer kann alles Master werden?

Wie lange bleibt ein Master Master?

Wie wird ein Partner Master?

Arten von Bussen

Bei den Bussen wird unterschieden, ob sie zur Kommunikation zwischen CPU und anderen Komponenten dienen (Systembusse) oder zwischen I/O-Schnittstellen und peripheren Geräten (I/O-Busse).

Es gibt viele Systembusse, verbreitet sind:

Die I/O-Busse sind auch vielfältig, verbreitet sind:

Kreuztabelle: Beispiele für Systembusse bei PC
XT ISA MCA EISA VL PCI
Datenleitungen 8 16 32 32 32/64 32/64
Adressleitungen 20 24 32 32 32 32
DMA-Geschwindigkeit [MB/s] 2 2 20-33 20-33 75/150 130/260
Bus-Takt [MHz] 4,7 8 10 8,33 25-50 33

Zugriff auf Geräte-Register

Spezielle I/O-Instruktionen:

Die I/O-Register haben spezielle Adressen (Port-Nummern) z.B. Intel x86.

Spezielle I/O-Instruktionen

Bildbeschreibung "Spezielle I/O-Instruktionen": CPU, RAM und zwei I/O greifen auf den Bus zu.

  1. CPU setzt bei I/O-Instruktionen eine spezielle Leitung des Kontrollbusses
  2. RAM ignoriert Bus, wenn diese Leitung gesetzt ist
  3. I/O ignoriert Bus, wenn diese Leitung nicht gesetzt ist

Memory Mapped I/O:

Adressen der I/O-Register befinden sich innerhalb des Bus-Adressraums. Zugriff mit normalen Instruktionen, es gibt keine I/O-Instruktionen.

Memory Mapped I/O

Bildbeschreibung "Memory Mapped I/O": Die niedrigen Adressen des physikalischen Adressraumes werden vom Betriebssystem und Programmen belegt, die hohen von den I/O-Geräten.

I/O-Geräte verhalten sich wie der RAM.

CPU kommuniziert mit I/O-Geräten wie mit dem RAM.

Direct Memory Access(DMA)

Direct Memory Access

Bildbeschreibung "Direct Memory Access": I/O-Gerät transferiert im Auftrag der CPU einen Datenblock vom/zum RAM.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

RAM und ROM

Arten von Halbleiterspeichern:

Halbleiterspeicher

Bildbeschreibung "Halbleiterspeicher": Obergruppen bilden die Festwertspeicher (Nur-Lese-Speicher) und die Flüchtigen Speicher (Lese-Schreib-Speicher). Die Festwertspeicher sind unterteilbar in einmal beschreibbar (ROM, PROM) und mehrfach beschreibbar (EPROM, EEPROM, Flash ROM). Die Flüchtigen Speicher sind unterteilbar in dynamisch (DRAM, SDRAM, DDR, RAMBUS) und statisch (SRAM).

Static Random Access Memory (SRAM):

Speichereinheiten sind Flip Flops. Durch geschickte Reduktion auf wenige Transistoren wird trotzdem eine hohe Integrationsdichte erreicht.

Dynamic Random Access Memory (DRAM)

Speichereinheiten sind Kondensatoren, die regelmäßig wieder geladen werden und deren Inhalt beim Auslesen zerstört und deshalb wieder hergestellt wird (refresh).

DRAM haben eine komplexe chipinterne Steuerung, wobei diese sowie die Zusammenstellung mehrerer Chips die Leistungsfähigkeit beeinflusst. Die einzelnen Arten unterscheiden sich in der Steuerung.

Bei DRAM muss zwischen der

Arten von DRAM:

  1. Normaler DRAM (FPM = Fast Page Mode)
    Der CPU-Takt arbeitet asynchron (zeitlich nicht gekoppelt) zur Steuerung des RAM. Intern werden ganze Zeilen der Speichermatrix (Page) ausgelesen und zwischengepuffert. Wenn die nachfolgende Anforderung sich auf diese Seite (Page) bezieht, kann sofort der Wert ausgegeben werden.
  2. EDO-DRAM (Hyper-Page-Mode,Extended Data Output)
    Um bis zu 30% kürzere Zugriffszeit gegenüber DRAM (FPM) aufgrund innerer Verschaltung. Der zeitliche Abstand zwischen Anforderungen ist kürzer: Zugriffszeiten bei 50-60 ns.
  3. Synchronous Dynamic Random Access Memory (SDRAM)
    SDRAM arbeiten mit dem Systemtakt (66 MHz und 100 MHz) und haben Zugriffszeiten im Bereich von 8-15 ns.
    Varianten von SDRAM:
    • Ein EEPROM (Festwertspeicher) gibt Auskunft über das zeitliche Verhalten
    • Ohne EEPROM muss im Betriebssystem (BIOS) die Angaben über das zeitliche Verhalten vorhanden sein
  4. SDRAM II, DDR-DRAM (Double Data Rate)
    SDRAM mit doppelter Datenrate bei der Ausgabe beim Auslesen.

Trotz aller Tricks wird die Geschwindigkeit des RAM durch die Geschwindigkeit der Speicherzellen bestimmt. Diese ist in den letzten Jahren nur wenig gesteigert worden.

Die DRAM samt Controller liegen auf einem RIMM (Rambus Inline Memory Module) mit 184 Anschlüssen. RIMM gibt es in den Größen 64, 128 und 256 MB.

RAMbus- und DDR-RAM sind z. Z. die beiden Mitbewerber auf dem Speichermarkt mit jeweils den höchsten Leistungsansprüchen.

VRAM haben darüber hinaus noch die Möglichkeit, auf einfache Weise eine nebeneinander liegende Reihe von Zellen sequenziell schnell auszulesen, was für die Bildschirmansteuerung wichtig ist.

Die Technik des VRAM sorgt dafür, dass die Bildschirme trotz/wegen der hohen Bildwiederholfrequenz nicht flimmern.

Speichermodule

Mehrere RAM-Chips samt Controller werden auf kleinen Karten (PCB = Printed Circuit Board) montiert, die Speichermodule (auch "Riegel") genannt werden.

Diese Module werden in Steckplätzen auf der Hauptplatine gesteckt, die dann den Arbeitsspeicher ausmachen.

Es gibt die Möglichkeit der automatischen Fehlererkennung und Korrektur (ECC = Error Correction Code = Fehlerkorrekturcode).

  1. Vorteile:
    • Hohe Flexibilität
    • Leichter Ein-/Ausbau
  2. Nachteile:
    • Geringere Geschwindigkeit aufgrund längerer Leitungen
    • Geringere Geschwindigkeit aufgrund Steckplatz

Single In-line Memory Module (SIMM):

Double In-line Memory Module (DIMM):

ROM

  1. 1x beschreibbar:
    • ROM = Read Only Memory:
      Speicherinhalt wird bei der Herstellung des Chips gleich (mit der Maske) gesetzt.
      Lohnt sich nur in großen Stückzahlen
    • PROM = Programmable Read Only Memory:
      Speicherinhalt wird einmal elektrisch geschrieben (programmiert) und kann anschließend nicht mehr geändert werden
  2. Mehrfach beschreibbar:
    • EPROM = Electrical Programmable Read Only Memory:
      Speicherinhalt kann durch starkes UV-Licht gelöscht und elektrisch gesetzt (programmiert) werden.
      Chips haben ein Quarzfenster zum Löschen, das während des Gebrauchs abgedeckt sein sollte.
      Offenes Fenster: Neonlicht löscht innerhalb 3 Jahren, Sonnenlicht innerhalb einer Woche.

EPROM: Brennzeit für 128 KB: 2-20 Min.

EEPROM: Elektrisch löschbare und programmierbarer ROM.

Flash-ROM: Variante des EEPROM.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Cache

Cache ist ein schneller Zwischenspeicher, in dem Daten bzw. Instruktionen gehalten werden, von denen gehofft wird, dass auf diese bald zugegriffen wird.

Cache

Bildbeschreibung "Cache": Zwischenspeicher zwischen CPU und Bus.

Mechanismus:

  1. CPU stellt Leseanfrage
  2. Cache prüft, ob Datum vorhanden
    • Falls ja, Datum wird unmittelbar geliefert (cache hit)
    • Falls nein, Datum wird aus RAM geladen, in den Cache gebracht und der CPU geliefert (cache miss)
    Beim Laden: Es werden die Daten im Cache bestimmt, die entfernt werden.
  3. CPU schreibt ein Datum
  4. Datum wird vom Cache übernommen und
    • unmittelbar in den RAM geschrieben (write-through) oder
    • erst dann in den RAM geschrieben, wenn dieses Datum verdrängt wird (write-back).

Cache Level

In Abhängigkeit vom Ort, Technologie und Funktion werden verschiedene Levels (Ebenen) eingeführt:

Neuere (komplexere) Architekturen haben drei Level:

Cache Level

Bildbeschreibung "Cache Level": Der L1-Cache befindet sich in der CPU, der L2-Cache zwischen CPU und Bus, der L3-Cache zwischen RAM und Bus.

Cache-Strategien

Probleme der Cache Realisierung

Cache-Kohärenz (Übereinstimmung mit RAM):

Der Cache muss immer die "wahren", tatsächlichen Daten enthalten, auf keinem Fall veraltete. Dieses Problem tritt bei Mehr-Prozessoranlagen sowie bei I/O auf. In diesen Fällen schreibt Hardware unter Umgehung des Cache etwas in den RAM.

Umgekehrt muss auch der RAM die wahren Daten haben, z.B. wenn der Cache die aktuellen hat. Auch dies betrifft andere Prozessoren und I/O.

Trashing:

Trashing ist ein Effekt, bei dem die Daten, die als nächstes benötigt werden vor diesem Zugriff aus dem Cache entfernt werden, so dass der Cache wenig Effekt hat.

Speicherhierarchie:

Speicherhierarchie

Bildbeschreibung "Speicherhierarchie": Von schnell und teuer bis groß und billig: Register, Cache, Arbeitsspeicher, Festplatte, Magnetband.

Ziele der Technik:

Durch Software - basierend auf korrekten Modellen der Speicherbenutzung - werden die Daten auf der Hierarchie zum richtigen Zeitpunkt nach oben bzw. nach unten kopiert.

An der Spitze werden die Daten verarbeitet und befinden sich in flüchtigen Speichern, an der Basis werden die Daten langfristig aufbewahrt und zur späteren Bearbeitung vorbereitet.

Zum Menü Wirtschaftsinformatik | Zum Seitenanfang

Motherboards

Motherboard = Mutterplatine = Platine/Karte mit CPU, RAM, Bus und optional den Schnittstellen zur Ein-/Ausgabe.

Das Motherboard hat eine viel niedrigere Taktrate als die CPU:

Dies Werte gelten für den Front Side Bus (FSB), auf den die RAM abgestimmt sind: PC66, PC100, PC133 (z.B.).

Es gibt entsprechend der Leistung abgestufte Busse:

Der Chipsatz steuert die einzelnen Komponenten. Dessen Leistungsfähigkeit hat einen erheblichen Einfluss auf die gesamte Performance des Rechners.

Es gibt viele verschiedenen Chip-Sätze, die mit bestimmten Entwürfen der Motherboards zusammengehen. Motherboards mit wenigen festen Komponenten und vielen Bus-Steckplätzen werden modular genannt.

PC-Busse auf Motherboards:

Peripheral Component Interconnect (PCI):

Verfahren zur Beschleunigung:

Cache (Idee): Geschickte Benutzung schneller Pufferspeicher mit automatischer Steuerung

Pipelining (Idee): Versuch so viele Phasen der Befehlsausführung wie möglich trotz sequenzieller Programme parallel auszuführen.

Pipelining:

Verfahren, bei dem Phasen der Instruktionsausführung verschiedener hintereinander auszuführender Befehle parallel ausgeführt werden, ohne dass Phasen gleicher Art parallel ablaufen.

Pipelining

Bildbeschreibung "Pipelining": Drei Befehle werden versetzt ausgeführt. Ist Phase 1 in Befehl 1 ausgeführt, dann startet Befehl 2 mit Phase 1. Wenn auch diese Phase beendet ist, dann startet Befehl 3 mit Phase 2. Dies zieht sich durch die Phasen 1 bis 4 (Instruction fetch, Data fetch, Execute, Results write).

Superpipelining:

Pipelining-Verfahren, bei dem auch Phasen gleicher Art (teil-)parallel ablaufen.

Superpipelining

Bildbeschreibung "Superpipelining": Drei Befehle werden versetzt ausgeführt. Ist Phase 1 in Befehl 1 teilweise ausgeführt, dann startet Befehl 2 mit Phase 1. Wenn auch diese Phase teilweise beendet ist, dann startet Befehl 3 mit Phase 2. Dies zieht sich durch die Phasen 1 bis 4 (Instruction fetch, Data fetch, Execute, Results write).

Super Skalar Pipelining:

Pipelining-Verfahren, bei dem mehrere Instruktionen (teil-)parallel ablaufen.

Super Skalar Pipelining

Bildbeschreibung "Super Skalar Pipelining": Sechs Befehle werden ausgeführt. Während jeweils zwei Befehle gleichzeitig in ihren Phasen ausgeführt werden, starten die restlichen Befehle (jeweils in Zweier-Paaren) wieder Phasen-versetzt.

Phasen einer Befehlsausführung:

  1. Instruction fetch
  2. Data fetch
  3. Execute
  4. Results write

Typen von CPU-Architekturen:

CISC = Complex Instruction Set Computer; typische Vertreter: M68000, Intel x86

RISC = Reduced Instruction Set Computer. Versuch in den 80er Jahre, durch

Platz auf dem Chip zu erhalten, um einen größeren Cache zu benutzen.

Inzwischen sind RISC-CPU genauso komplex wie CISC: der Unterschied ist verschwommen.
Typische Vertreter: PowerPC, Alpha, SPARC