CS HTW


René Mayer
Diese Lernkarten bieten einen umfassenden Überblick über die Grundlagen von Computersystemen auf Universitätsniveau. Sie behandeln zentrale Konzepte wie Adressierung, Befehle, Register, Cache-Speicher und verschiedene Speicherarten, darunter SRAM, DRAM und SDRAM. Die Karteikarten erklären auch die Funktionsweise von Prozessoren, einschließlich Pipeline-Architekturen, Out-of-Order-Execution und die Unterschiede zwischen CISC und RISC. Zudem werden Themen wie Assembler, Speicherzugriff, Flip-Flops und die Arithmetisch-Logische Einheit (ALU) behandelt. Diese Lernkarten sind ideal für Studierende der Informatik, die ein tiefes Verständnis der Hardware- und Software-Interaktionen in Computersystemen erlangen möchten.
Flashcards
40
Students
1
Language
German
Category
Computer Science
Level
University
Created / Updated
27.01.2014 / 15.02.2017

Flashcards

Einerkomplement

Alle Bits Kippen

+1 = 0001

-1 = 1000

Zweierkomplement

Alle Bits kippen und 1 Bit addieren.

0001 + 1111 = 10000

ALU - Arithmetische-logsiche Einheit

  • konkrete Hardware
  • in heutige CPUs
  • Funktion
    • binär addieren
    • logisches nicht
    • logisches und/oder
  • Wir betrachten 1 Bit Operatoren

Unterschiede zwischen Analog und Digital

Analog

  • unbegrenzt genau
  • ungenauigkeiten schlecht zu entdecken

Digital

  • endliche möglichkeiten
    • einfacher zu erfassen
    • vollständige erfassung möglich
  • fehler bei kodierung erkenn und behebbar

Schaltzeichen

Grafik

Verknüpfung von Schaltzeichen

grafik

Logik vs Schaltungen

  • für jede unserer aussagenlogischen Formeln existiert eine schaltung oder umgekehrt
  • schaltung hat ein layout
  • qualität der aussage nicht klar messbar
  • schaltungsqualität hat praktische kriterien

Signallaufzeit

  • Wieviel Zeit vergeht bis Ergebnis vorliegt
  • mehr Gatter nacheinader = langsamer
  • mehr gatter insgesamt = teurer

Mehrere Funktion

  • Signal abzweigen
  • Alle Optionen parallel durchlaufen
  • Anschließend aus beiden Ergebnissen, gewünschtes auswählen

Signalauswahl

  • Auswahl über Steuerleitungen
  • Eine solche Einheit heißt Multiplexer
  • so = 0 wählt a = eo, so = 1 wählt a = e1

1 Bit (halb) addierer

Grafik

1 Bit (Voll) addierer

grafik

Additionsbefehl

Wie löst man eune Addition aus?

  • theoretisches Beispiel
  • 0111 00010111 00110001
  • Steuerung signalisieren "addiere" : 01101
  • Zwei Zahlen 00010111 + 00110001

 

Flip-Flop (bitstabile kippstufe)

  • setzen über Signal S, löschen über R
  • anschließend S und R auf 0
  • Q bleibt gespeichert

Zahlen speichern

  • Flipflop speichert 1 Bit
  • Computer speichert Milliarden von Zahlen
  • Addierter muss auf die Zahl zugreifen
  • Alle Flipflops mit Addierer verkabeln?
  • Wennige Zahlen direkt verkabeln: Register
  • Hauptspeicher langsamer + billiger anbinden

Register

  • feste Bitlänger zb 32 Bit oder 64 Bit
  • Direkt mit den Recheneinheiten verbunden
  • Maximale Geschwindigkeit biem Lesen und Schreiben < 1 Nanosekunde
  • Spezielle Register
    • program counter, stack pinter, status

Program Counter

  • Spezielles Register - kein direktes Schreiben
  • enthält Position der als nächstes auszuführende Befehls
  • Wird nach Befehlsabarbeitung automatisch auf darauffolgenden Befehl gesetzt
  • Heißt je nach System auch Instruction Pointer

Statusregister

  • Jeder Bit hat eine eigene Bedeutung
  • Nach Befehlsausführung ablesbar
  • Typische Informationen
    • Zero - Ergebnis war 0
    • Sign - Vorzeichenbit (höchstes) gesetzt
    • Carry - ÜBerlauf aufgetreten (vorzeichenlos)
      • carry oit des höchsten Bits
    • Overflow - Überlauf (Vorzeichen)
      • Höchstes Bit: carry in xor carry out

Arbeitsspeicher RAM

  • Random Access Memory
  • Flüchtig - inhalt verschwindet ohen Strom
  • Zugriffzeiten:
    • 50 - 100 Nanosekunden
    • Register < 1 Nanosekunde

Speicherarten

  • SRAM (static)
    • Flip-Flops
    • schnell, teuer
  • DRAM (dynamic)
    • Kondensator + ständiges Auffrischen
    • weniger Bautele pro Bit = billiger
  • SDRAM (synchronous dynamic)
    • DDR-SDRAM (double data rate synchronous dynamic random access memory)

Flip-Flop

grafik

DRAM auf Hardwareebene

grafik

Speicherzugriff

  • idealisiert: linear mit adressen 0,1,2 ... n
  • konret: caches, paging, virtueler speicher

Direkte Adressierung

  • Pseudo-Code: ADD [7], 5
    • addiert 5 zu der Zahl an Adresse 7
  • An Adresse 7 steht -3
  • - 5 +5 = 2
  • Ergebnis 2 an Adresse 7 schreiben

Indirekte Adressierung

  • Pseudo-Code: Add [REgister 1], 5
    • addiere 5 zu der Zahl an der Adresse die in REgister 1 steht
  • Hat Register 1 den Wert 7, dann wie eben
  • Je nach Architektur dürfen nur spezielle Adressregister verwendet werden

 

Zwischenspeicher Cache

  • Sehr weiter Begriff
  • Ziel: Zugriff auf langsame Medien beschleunigen
  • Idee: Daten im Voraus lesen oder gelesene bereithalten für weitere Nutzung
  • Beim Zugriff auf ADresse erst im Cahce nachsehen ggf. Daten dort ablegen

Cache - Aufbau

  • Cache logischerweise kleiner als Hauptspeicher
  • Cachezeile besteht aus Daten (mehrere Bysten), Orginaladresse und Flags
  • Zuordung Addresse > Zeile

 

Cache füllen

  • Lesen von ADresse X
    • Adresse x im Cache eingetragen?
    • Ja / Nein
  • Schreiben an Adresse X
    • Zu Adresse x passende Zeile im Cache suchen
    • Daten dort eitragen

 

Cache Direkt abgebildet

  • Zuordnung ADresse > Zeile eindeutig
  • Hash-Funktion wandelt ADressen in Cachen Zeilen Nummer um
    • gültige Zeile
    • mathematisch und technis am einfachsten Adresse modulo Anzahl Zeilen
  • Direkt abgebildet (direct mapped), da jede Adresse auf genau eine Zeile abgebildet wird
    • ABER: nicht jede Zeile hat genau eine Adresse

 

Cache - Assoziativität

  • Vollassoziativ
    • jede Adresse kan in jeder Cache Zeile stehen
  • Satzassoziativ
    • zu jeder Adresse passt eine feste Anzahl von Zeilen
    • ist eine dieser Zeilen frei, so wird sie verwendet
  • Assoziativität = Anzahl Zeilen pro Satz

Cache: Zeilen und Daten finden

  • z Zeilen mit je b Bytes
  • Adresse > Zeile [Adresse / b] modulo z
  • In der Zeile
    • Adresse eingetragen als b [Adresse / b]
      • kleine durch b teilbare Adresse > Basisadresse der Zeile
    • Daten an Position: Adresse - b * [Adresse / b]
      • Differenz aus echter Adresse und Basisadresse

Schreiben aus dem Cache

  • Write Through
    • Daten sofort durchschreiben
    • warten bis langsames schreiben fertig ist
  • Write Back
    • daten später zurückschreiben

Assembler

  • Befehle für CPU sind 0/1 Folgen
  • Nicht einfach lesbar für Menschen
  • Prozessorabhängig

CISC und RISC

  • CISC
    • Complex Instruction Set Computer
    • Alle Adressierungsarten für Befehle
    • wenig komplexe Befehle
    • abarbeitung aufwendig, langsam, teuer
  • RISC
    • Reduced Instruction Set Computer
    • wenig Adressierungsarten pro Befehl
    • Programm hat viele einfache Befehle
    • Abarbeitung einfach/schnell/billig

Leistungsfähigkeit CPU

  • hängt in einem komplexen System  von sehr vielen Faktoren ab
  • Taktfrequenz des Prozessors = Maximale Anzahl Befehl pro Sekunde
  • Komplexe Befehle nicht vollständig zu schaffen in einem Takt

Pipelinestufen

  • fetch
  • decode
  • execute
  • memory access
  • write back

MIPS- Pipline Daten-Hazard

  • Read after Write
    • Register lesen
    • Wer noch nicht da

Out of Order execution

  • kann Programmierer und Prozessor
  • Befehle früh in code reordering buffer
  • befehle auf datenabhängikeit untersuchen
  • zwischen 2 abhänogen befehlen mehrere unabhänig ausführen

Superskalare Pipeline

  • Beobachtung: Befehle benötigen nicht alle Teile der Pipeline
  • Zwei Befehle holen statt einen
  • Wenn Rechnen ADD und Speicher LW
    • Fetch, decode parallel
    • eine ALU addiert, zweite bestimmt Adresse
    • Speicherzugriff nur für LW
    • zurückschreiben parallel

Mehrkernprozessoren

  • Echte parallilität sämlicher Pipelinestufen
  • Buszugriff geteilt
  • Alle gleichberechtigt (symmetrisch)
  • Billiger als mehere einzelne Prozessoren

Study