Zusammenfassung

1. Einführung

universell vs. speziell

Rechner
speziell universell
angepasst an bestimme Aufgabenklassen für viele unterschiedliche Andwendungen verwendbar
Hard- und Software optimiert auf die Anwendung viele Anforderungen
für Einzelanwendung nicht notwendige Funktionalität

Bsp:

Motorsteuergerät PC
nicht anwendertransparent Rechnernutzung anwendertransparent
keine typ Rechnerperipherie Universalperipherie
Anwedung typ gleich in hoher Stückzahl Anwendungen von 1..groß
Softwareentwicklung nicht auf Spezialrechner Softwareentwicklung auf Anwendungsrechnertyp
optimierte Hardware bei hohen Entwicklungskosten Universelle Hardware (Software reicht aus)

2. µController

  • kompletter Rechner
  • Blöcke mit angepasster Leistungsfähigkeit
  • Kosten, problemangepasste Varianten entsprechend der Anwendung

2.1 Bsp: untere Leistungsklasse (Infineon C501)

  • Datenbreite 8 Bit (größere Daten zusammengesetzt)
  • wenig leistungsfähiger Befehlssatz aber Bitbefehle
  • Adressraum 16 Bit
  • geringe Taktfrequenz
  • Oszillator: Taktgenrator mit externem Quarz
  • Zeitbegrenzung: Zeitbezug für Timer
  • Datenspeicher
    • klein, adressierung wie Register
    • teilweise vordefiniert für andere Funktionen
  • Programmspeicher
    • kleinere adressiebarer Bereicht
    • typ ROM (EEPROM)
  • Daten- und Programmspeicher extern über Speichererweiterungsinterface
    • im Adressraum der Proz
    • Anwendung reduziert E/A Anschlüsse

Einchip Controller

  • E/A
    • 4x 8 Bit parallele E/A
    • normale Byte E/A
    • auch bitweise
    • synchronisiert (2 draht Handshake) → RDY und DAV aus anderen Ports
  • Speichererweiterung und spez. E/A benutzt i.a. Ports oder Bits aus pralleler E/A
  • 3 Timer: Zeitgeber / Zähler
  • 1x serielle E/A: USART
    • Übertragunsrate mit Timer einstellbar
  • Interrupt Behandlung / Auslösung
    • Timer
    • serieller Kanal
    • Syncsignale der parallelen Ports
    • einzelne parallel Biteingänge
  • E/A ist im Datenregisterbereich
  • E/A → programmierbar, Steuerregister im Datenregisterbereich

Bsp: Wage + Preisrechner

2.2 Bsp: µController mittlerer Leistungsklasse

  • Kern mit 16 Bit Datenformat
  • interner ROM in verschiedenen Varianten
  • interner RAM in verschiedenen Varianten
  • Speichererweiterung durch spezielle Ports mögl → externe Buscontroller
  • Taktgeber wie 2.1
  • E/A
    • 4 universelle 16 Bit parallel digitale E/A
    • 2 spezielle (10 / 2 Bits)
    • 2 USART
    • 5 Universaltimer
    • ADC mit 10 mögl Eingängen (Zeitmultiplex) (Port 5 kann analoge Spannungen durchschalten)
  • Capcom
    • 2x Timer
    • 16x Register mit digitalem Komparator

2.3 DSP

  • Einchipkozept
  • Typenvielfalt
  • → µController und DSP Vorlesung

3. Risc vs. Cisc

CISC RISC
add [EAX], EBX mov ECX, [EAX]
add ECX, EBX
mov [EAX], ECX
1. Speicher lesen Load-store Achitektur
2. addieren
3. Speicher schreiben
CISC RISC
einfache und komplexe Befehle nur einfache Befehle
heterogener Befehlssatz orthogonaler Befehlssatz
verschiedene Taktzahl pro Befehl meist ein Takt pro Befehl
viele Befehlscodeformate mit unterschiedlicher Länge wenige Befehlscodeformate mit einheitlicher Länge
Mikroprogrammwerk direktverdrahtung
vermischung von Verarbeitungs- und Speicherbefehlen Trennung von Verarbeitungs- und Speicherbefehlen

3.1 Mikroprogrammwerk

  • in CISC verwendet
  • Teil des Steuerwerks (Ablaufsteuerung)
  • µOps
  • Vorteile:
    • Realisierung einfacher und komplexer Befehle mit den selben Mitteln
    • übersichtliche Befehlsimplementierung
    • evtl. ladbarer Mikrocode
  • Nachteil:
    • für jeden Befehl mehrere Schritte nötig

3.2 CISC Beispiele

  • IBM 360
  • Z80
  • X86
  • i-432

3.3 RISC Beispiele

  • Alpha
  • IA64
  • Sparc
  • PowerPC

aktuell:

  • extern CISC, intern RISC

4. Pipelining

  • Durchsatz: Befehle pro Zeit (bei gefüllter Pipeline)
  • Latenz: Zeitaufwand für einen Befehl

4.1 Pipelining Probleme

  • Sprungbefehle
    • Adressbereitstellung in der Dekodiephase
    • Waretphase (delayslots)
    • statische Vorhersage
    • dynamische Vorhersage
      • branchprediction buffer
      • branchtarget buffer
      • branchtarget cache
  • Datenabhängigkeiten
    • Bypass, Operandforwarding

4.1.1 Beispiel für Warteplätze

bef 1
.
.
.
JMP m1
.
.
.
bef 2
bef 3 
bef 4

bef 2 und bef 3: Warteplätze

4.1.2 stat. Vorhersage

4.1.3 branchprediction buffer

  • 1 bit Vorhersage
  • 2 bit Vorhersage

4.1.4 branchtarget cache

4.2 Superpipeline

IF: instruction first IS: instruction second RF: register fetch, instruction decode EX: execution DF: data first DS: data second TC: tag check WB: write back

5. Skalare Architektur

  • Problem: bei komplexeren Ausführungen dominiert die Ausführungsphase das Zeitverhalten
  • → mehrere Ausführungseinheiten (evtl spezialisiert)

Bsp: 4 stufige sequenzielle Befehlsfole BL/BD wie normale Pipeline

  • zusätzlich BD steuert aufgrund Befehlscode DD → Ex-Einheiten. verlange passenden freie Einheit
  • nach jeder Ex Einheit folgt parallele writeback Einheit
  • WB muss unter Einhaltung der Befehle zurückschreiben
  • Problem: Befehlsdecoder kann komplex werden
    • → 2 stufige decodierung
      • Vordecodierung in Befehlslesephase zur Aufteilung der Befehle
      • parallel spezielle Befehlsdecodierung je Ex-Einheit zur eigentlichen Befehldecodierung

6. Very large instructionword Architektur

  • Problem: alles parallel außer BL (zeitlicher Engpass)
  • → BL auch parallel (soviel gleichzeitig lesen, wie Ex-Einheiten da sind)
  • Bsp: 4 Ex-Einheiten ein Befehslswort hat parallel 4 Befehle
    • 4x BL
    • 4x BD
    • 4x EX
    • 4x WB
  • zu lösende Probleme
    • Bef müssen im Speicher so stehen, dass sie bei BL zu den passenen Ex-Einheiten kommen
    • Compiler muss Befehl verzögern falls aktuell zu wenig passenden Ex-Einheiten
    • Compiler muss NOP ergänzen falls aktuell keine Befehle für keine Ex-Einheit
    • Compiler benötigt Datenanalyse um Befehle parallel abzuarbeiten, die untereinander Datenabhängig sind (evtl verzögern/umsortieren)
  • theoretisch leistungsfähigstens Mikroparallel Konzept
  • maximale Parallelität bei vergleichsweise einfacher Logik
  • komplexer Compiler
  • sehr spezieller Maschinencode
  • sehr breiter Befehlsbus
  • gut nur bei gleicher Ausführungszeit aller Ex-Einheiten

7. Out-of-order Execution

  • Grundidee:
    • Befehle kommen sequenziell vom Speicher
    • bei freier Ex-Einheit sofort belegt
    • bei belegten benötigten Ex-Einheiten werden Befehle gepuffert und nachfolgende werden vorgeholt
  • umsortieren entsprechend der freien Ex-Einheiten
  • WB wie in BL
  • Probleme
    • Datenabhänigkeiten
    • Befehle, die Daten von anderen verzögerten Befehlen brauchen dürfen nicht vorgezogen werden

8. Entwicklung der Speicherarchitektur

  • Ziel: Prozessor- und Speicherzugriff mit angepasstem Zeitverbrauch
  • technische Parameter erhöhen
    • Prozessortakt
    • Speicherzugriffszeit

8.1 einfache Methoden

  • beziehen sich auf einzelne Zugriffe / Zugriffsfolgen
  • → Adresspipelining
<Addr1> <Daten1>
        <Addr2> <Daten2>
  • Nutzung von Speicherbänken
  • Prozessor greift nie auf Hauptspeicher bei Speicherzugriffen zu sonder nutzt cachelogik

8.3 Cache Speicher

  • “Tag” dient dem Adressvergleich

Varianten

vollassoziativ
  • Vergleich mit kompletter HS Adresse
  • + alle Datenworte im Cache unabhängig voneinander
  • - aufwendiger Adressvergleich (langsamer und aufwendige HW)
direct mapped
  • Teil der Adresse
  • → Tag k-Bit, n Bit Adresswort → 1 Tag = 2^(n-k) mögliche Adressen, davon nur 1 gleichzeitig möglich
  • + weniger aufwendiger Adressvergleich
  • - mit einer höherwertigen Tag-Adresse werden andere blockiert
    • Ausweg: Tag adressiert ganzen Block und dieser wird in Cache blockiert
  • Cacheprobleme bei geänderter Grundarchitektur
Mehrprozessorsysteme
P1	P2
|	|
C1	C2
|	|
---------
---------

   HS (gemeinsamer)
  • Kopien in allen Caches müssen zu allen Zeiten gleich sein → geeignetes Protokoll

Princeton mit Cache

  • 4.100 (ohne E/A)
  • Befehle und Daten im gleichen Cache

Havard mit Cache

  • 4.120
  • Befehle und Daten in getrennten Caches + HS

Havard / Princeton Mischform

  • Befehle und Daten in getrennten Caches aber gemeinsamer HS

Speicherverwaltung (Übersetzung logisch → physisch Adressen)

  • Havard + gem
    • getrennte Speicherverwaltung (Befehle + Daten)
    • vor Cache

Strategien

Ladestrategie
  • on demand
  • pre demand, vor dem Bedarf mittels Warscheinlichkeit → Laden immernur wenn ein MISS erfolgt
Ersetzungsstrategie
  • bei direct mapped nicht notwendig
  • bei n-way-cache n-fache Entscheidung
  • bei vollassz. cache volle Entscheidung über zu ersetzende Zellen
    • LRU: die Zelle, die am längsten keinen Hit mehr hatte ersetzen
    • pseudo LRU: nur für kurz zurückliegende Ereignisse Überblick bewahren
Schreibstrategie

write through

  • CPU muss auf Arbeitsspeicher warten → kein Vorteil durch cache

write back

  • Phase 1 cache immer aktueller als RAM
  • Phase 2 Controller aktualisiert RAM (CPU unabhängig)
  • → dirty bit um bei Ersetzungsstrategie Zellen auszuschliessen deren Wert noch nicht zum Hauptspeicher zurückgeschrieben wurde (Vermeidung von Verdrängung)

snooping

  • Controller: beobachten der Zugriffe fremder Master auf den eigenen cache
  • Konsistenz: Übereinstimmung cache Speicher
  • Kohärenz: Übereinstimmung zwischen verschiedenen caches mittels snooping und MESI-Protokol

8.5 Beispielarchitekturen

  • welche Architekturmerkmale sind realisiert
  • PentiumPro
    • gem. Havard L1 Daten/Befehle

RISC Architektur CISC Ergänzung über Mikroprogrammierung

  • complex instruction decoder
    • Erkennung der CISC Befehle + Start des zugehörigen Mikroprogramms
  • microcode sequencer
    • steuert Abfolge des entsprechenden Mikroprogramms
  • Mikroprogramm: besteht aus CISC Befehlen

skalare Architektur

  • mehrere instruction decoder
  • mehrere Ausführungseinheiten
    • 2x Int “normale Befehle”
    • 2x Float
    • 1x Meminterface unit Datenspeicher Zugriffe über L1 Datencache

Befehlspipeline

  • instruction cache unit (greift über instruction cache auf Befehle zu)
  • branch prediction
  • über
  • out-of-order Execution
  • retirement register
  • register renaming

weitere Beispiele

Prozessor Folie Pipeline CISC Skalar Havard zum L1 Cache Princeton zum HS MP fähig out-of-order
21164 5.2 X - X X X -
21364 5.21 getrennt - X X x X
5.22, 5.63 Int, FP
5.30 Int, FP - X X X -
MPC750 5.50 X - X X X - X
Microsparc 5.60 vermutl - (x) nur 2 Einheiten X X - -
PentiumPro 5.11 X - X X X - X

9. Leistungsbewertung

  • Verkaufsargument
  • reicht Leistung für gewünschte Funktion?
  • Preiswert
  • Softwaretechnik

9.1 Grundideen zur Leistungssteigerung

  • Takt erhöhen
  • bessere Architektur
  • Arbeit entspricht den ausgeführten Befehlen
  • Notwendig: richtige Befehlshäufigkeit → statistische Ermittlung über viele Programme
  • Ausführungszeit eines Befehls (Problem: Pipeline)
L = 1/T (Taktzykluszeit in ns)
T = summe(pi * ti)
  • MIPS - million instructions per sencond
L[MIPS] = Befehlsanzahl/Zeit in µs
L[MIPS] = f[MHz]/CPI
CPI = Taktanzahl/Befehlsanzahl clocks per instruction
  • Problem: exakte Berücksichtigung der modernen Architekturmerkmale nicht möglich
    • Deshalb: Relative MIPS (Vergleichsmaschine festlegen)
    • Klassische Referenzmaschine: VAX 11/7 80 („1-MIPS-Maschine“)
Lrel = Lref*(refZeit/aktZeit)
  • L [MFLOPS] wie L [MIPS] aber MFLOPS million floatingpoint operations per second
Lgk[MFLOPS]=Anzahl GK-Befehle/Zeit in µs (bei GFLOPS in ns)

9.2 Programmabhängige Leistungsbewertung

  • wieviel Teit braucht Rechner für konkrete Funktionalität (Programm)
  • Einflüsse
    • E/A Architektur
    • Compiler, Laufzeitbibliotheken
    • gewählte Beschreibung der Funktion

→ Test mit Benchmarkprogrammen

  • Quellprogramm
    • Compiler, OS wird mitgetestet
    • für verschiedene Umgebungen nutzbar
    • → verschiedene Umgebungen vergleichbar

Auswahle bzw Systhese von Benchmarkprogrammen

  • Prozessor / Speicher Benchmark
    • Codestücke ohne OS
    • → Maschinenprogramm
      • Maschinenbefehl entspricht pi Auftreten von L Berechnung
    • → MIPS Berechnung
  • Systembenchmark
    • Codestücke mit E/A und OS Funktionen
  • Sammlung von relativ großen Programmen aus veschiedenen Anwendungsklassen
    • Physik, Robotik, Simulation, Numerik, Tabellenkalkulation

10. Ausblick parallele Rechnerarchitekturen

10.1 Klassifikation nach Flynn

data
single multiple
single instruction SISD SIMD
multiple instruction MISD MIMD

SIMD

  • 1 Befehl auf n Datenelemente

MISD

  • n Befehle wirken auf 1 Datenelement

MIMD

  • wesentliche Parallelrechner

10.2 enge / lose Kopplung

10.2.1 enge Kopplung

  • CPUs über gemeinsamen Speicher verbunden
  • CPUs über Multimaster Bus verbunden

10.2.2 lose Kopplung

  • z.B. serielle / parallele E/A
  • LAN, WAN
shared memmory distributed memmory virtual shared memmory
Kommunikation gemeinsame Speicherinhalte Nachrichtenaustausch (message passing) verdeckter Nachrichtenaustausch
 
wiki/study/scripts/ra2/zusammenfassung.txt · Last modified: 2005/07/20 16:12 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki