1 / 60

Technische Informatik Mikroprozessor- und Microcomputerarchitektur / von-Neumann-Prinzip

Technische Informatik Mikroprozessor- und Microcomputerarchitektur / von-Neumann-Prinzip. Peter G. Poloczek. Aus dem Lehrplan. Von-Neumann-Prinzip Funktionseinheiten, Speichermodell, Befehlsabarbeitung Mikroprozessor- und Bussysteme, ALU,

Download Presentation

Technische Informatik Mikroprozessor- und Microcomputerarchitektur / von-Neumann-Prinzip

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Technische InformatikMikroprozessor- und Microcomputerarchitektur / von-Neumann-Prinzip Peter G. Poloczek

  2. Aus dem Lehrplan Von-Neumann-Prinzip Funktionseinheiten, Speichermodell, Befehlsabarbeitung Mikroprozessor- und Bussysteme, ALU, Mikrocomputerarchitektur Register, Flag-Register, Steuerwerk, Mikroprogramm, BIOS, ROM, RAM

  3. PCs • Der IBM PC (1981) konnte 1 MB adressieren • Er besaß einen 16-Bit-Prozessor 8088 von Intel, eine Version des 8086 mit einem externen 8-Bit-Datenbus • 384 kB waren für „Erweiterungen“ wie ROM für Steckkarten und Grafik reserviert. • Bill Gates in 1981: „640K oughtto be enough for anybody “ (später bestritten, Quelle Wikipedia)

  4. ROM • Read-Only-Memory: • Kann Routinen z.B. für I/O-Aufgaben beinhalten: parallele oder serielle Schnittstellen, Festplattencontroller, Grafik,… • ROM-Code wird an bestimmte Adressen „eingeblendet“ • Auch das BIOS ist im ROM

  5. BIOS • Basic-Input-Output-System • Bootstrapping startet den Rechner • Eigentlich ein Henne-Ei-Problem: • Software (zum Start) muss eingelesen werden • zum einlesen muss Software vorhanden sein • Stellt Basis-Treiber (Bildschirm, …) bereit • Wird vielleicht vom Extensible Firmware Interface (EFI) ersetzt (Apple!)

  6. RAM • Random Access Memory: Speicher mit wahlfreiem Zugriff • Der Arbeitsspeicher des Computers ist ein durch Adressen (in Tabellenform) strukturierter Bereich, der Binärwörter fester Größe aufnehmen kann. • Der Arbeitsspeicher moderner Computer ist flüchtig, d. h. dass alle Daten nach dem Abschalten der Energieversorgung verloren gehen – der Hauptgrund dafür liegt in der Technologie der DRAMs.

  7. „Busse“ Quelle: https://www.fbi.h-da.de/fileadmin/personal/k.kasper/Materialien/RG/rg11.pdf

  8. Funktion der Busse • Adressbus: Spricht eine bestimmte Speicherstelle (zum Schreiben/Lesen) an. • Datenbus: überträgt Daten zu oder von dieser Speicherstelle. • Kontroll-(oder System-)bus: sorgt z.B. dafür, dass diese Vorgänge synchronisiert werden.

  9. Adress- und Datenbus • Die Anbindung des physischen Speichers erfolgt also den durch Adress- und Datenbus gemeinsam. • Der Adressbus dient zur Auswahl der angeforderten Speicherzellen; von seiner Busbreite (in Bit) ist der maximal ansprechbare Speicher eines Prozessors abhängig. • Zur Zeit gibt es 32Bit- (max. 4 GB RAM) und 64-Bit Betriebssysteme. • An jeder Adresse ist stets ein Byte (nicht nur ein Bit) abgelegt. • Der Datenbus übernimmt den eigentlichen Datentransfer. • In allen aktuellen PC-Architekturen werden dabei 64 Bit auf einmal transferiert – unter Umständen unabhängig vom Betriebssystem!

  10. Adressbusbreite und Speicher

  11. Exkurs: IEC 60027-2 Quelle: http://de.wikipedia.org/wiki/Bin%C3%A4rpr%C3%A4fix

  12. Daten: SDRAM / DDRx-RAM • „Normale“ SDRAM-Module (Single-Data) bieten bei einem Takt von 133 MHz eine Datenübertragungsrate von 1,06 GB/s. • Module mit DDR-SDRAM (133MHz) arbeiten nahezu mit der doppelten Datenrate. • Der „Trick“: Sowohl bei der auf- als auch bei der absteigenden Flanke des Taktsignals wird ein Datenbit übertragen, anstatt wie bisher nur bei der aufsteigenden. • Damit das Double-Data-Rate-Verfahren zu einer Beschleunigung führt, muss die Anzahl zusammenhängend angeforderter Daten (= „Burst-Length“) immer gleich oder größer als die doppelte Busbreite sein. • SDRAM DIMM: Speichermodule (DIMM) besitzen 168 Kontakte (DDR-SDRAM: 184 Kontakte/Pins, DDR2-SDRAM DIMM/DDR3-SDRAM DIMM: 240,).

  13. Prefetch - Erläuterung • Die im Vergleich zu einem SRAM deutlich geringere Geschwindigkeit eines DRAMs liegt in der Struktur und Funktionsweise des DRAMs begründet. (Lange Wortleitun-gen müssen aufgeladen werden, eine ausgelesene Zelle kann ihre Ladung nur langsam auf die Bitleitung ausgeben, der ausgelesene Inhalt muss bewertet und zurückgeschrieben werden.) • Es wird ein Trick angewendet, um die externe Datentrans-ferrate zu steigern, ohne die interne Geschwindigkeit erhöhen zu müssen: • Bei dem so genannten Prefetching werden pro Adressie-rung die Daten von mehreren Spaltenadressen ausgelesen und in einen Parallel-Seriell-Wandler (Schieberegister) geschrieben. Von diesem Puffer aus werden die Daten mit der höheren (externen) Taktrate ausgegeben.

  14. Prefetch - Anwendung • Beim Single-Data-Rate(SDR)-SDRAM wird pro Leseanforderung 1 Datenbit pro Datenpin ausgelesen: Prefetch = 1 • Beim DDR-SDRAM werden pro Leseanforderung 2 Datenbits pro Datenpin ausgelesen: Prefetch = 2 • Beim DDR2-SDRAM werden pro Leseanforderung 4 Datenbits pro Datenpin ausgelesen: Prefetch = 4 • Beim DDR3-SDRAM werden pro Leseanforderung 8 Datenbits pro Datenpin ausgelesen: Prefetch = 8

  15. Übertragungsraten DDR/DDR2

  16. Übertragungsraten DDR3 • ²) Geschwindigkeit der Anbindung an den Speichercontroller von CPU oder Mainboard • ³) Effektiver Takt im Vergleich zu SDR-SDRAM (theoretisch) Beispielrechnung: (Takt der Speicherzellen (in MHz) × Bit pro Übertragung ×Anzahl Taktflanken) /8 Bit = Speichertransferrate in Byte/s DDR3-1600: (200 MHz × 64 Bit × 8) /8 = 12.800 MB/s = 12,8 GB/s

  17. Aufbau / Ansicht einer CPU Quelle: Wikipedia/Intel

  18. Pentium 4 Quelle: http://referate.mezdata.de/sj2001/pentium4_stefan_lands/intel_tech.html

  19. Der i7-980X Quelle: Intel

  20. Das Rechen- und Steuerwerk • Rechenwerk: • Arithmetic Logic Unit • Register • Akkumulator • Steuerwerk: • Befehlsregister, Befehlscodierer • Statusregister • Operationssteuerung, Befehlszähler, Taktgeber

  21. Die ALU - Funktionen • Die ALU berechnet arithmetische und logische Funktionen. Sinnvoller-weise kann sie mindestens folgende Minimaloperationen durchführen: • Arithmetisch: Addition (ADD) • Logisch: Negation (NOT) ; Konjunktion (Und-Verknüpfung, AND) • Zusätzliche Operationen vor, die aber oft in mehreren Takten nachgebildet werden können: • Arithmetisch: Subtraktion (SUB); Multiplikationen (MUL) mittels Multiplizierer • Logisch: Vergleich (compare, CMP); Disjunktion (Oder-Verknüpfung, OR); Kontravalenz (Exklusiv-Oder-Verknüpfung, XOR, EOR) • Sonstige: • Rechts- und Linksverschiebung (Rechts-, Linksshift, ASR – arithmetische Shift rechts, ASL – arithmetische Shift links, LSR – logisches Verschieben nach rechts, LSL – logisches Verschieben nach links) • Links- und Rechtsrotation (ROL, ROR); Register-Manipulationen und Bit-Veränderungen (Bits setzen, löschen und testen) • (Decimal adjust)

  22. ALU - Statusregister • Dieses Register enthält meistens vier Statusbits. Die einzelnen Werte des Statusregisters können von Maschinensprachebefehlen abgefragt werden. Man nennt sie oft auch Flags. • Übertragsbit (C für engl. carry bit): Zeigt den Übertrag an, der bei Addition der n-ten Bits (der höchsten Stelle) der Operanden entsteht. • Überlaufbit (V für engl. overflow bit): Zeigt Zahlenbereichsüberschreitung bei 2er-Komplement-Rechnung an (Übertrag der zweithöchsten Stelle der Operanden). • Nullbit (Z für engl. zero bit): Zeigt an, ob das Ergebnis der vorhergehenden Rechenoperation Null ist (wird 1, wenn Inhalt des Akkumulatorregisters 0 ist). • Negativbit (N): Wird gesetzt, wenn das Ergebnis der Operation als negative Zahl zu interpretieren sein kann (oberstes Bit des Akkumulatorregisters = 1).

  23. Der Registersatz • Register sind CPU-interne Speicher: • Akkumulator und Datenregister • Adressregister • Spezialregister • Befehlszähler • Staturegister • … • Stackregister

  24. Registerhistorie: REAL-Mode • Die Intel 8086 und 8088 hatten 14 16-Bit-Register. Vier von ihnen (AX, BX, CX, DX) waren Mehrzweck-Register. Zusätzlich hatte jedes noch eine Sonderfunktion: • AX (engl. accumulator register) diente als bevorzugtes Ziel für Rechenoperationen • BX (engl. base register) diente zur Adressierung der Anfangsadresse einer Datenstruktur • CX (engl. count register) diente als Zähler für Schleifen (loop-Instruktion) und Verschiebeoperationen • DX (engl. data register) diente als Datenregister für den zweiten Operanden.

  25. Protected und Enhanced Mode • Ab dem 80386 gibt es echte 32 Bit-Register: • AX/EAX/RAX: Akkumulator • BX/EBX/RBX: Basis • CX/ECX/RCX: Zähler • DX/EDX/RDX: Daten/Allzweck • SI/ESI/RSI: Quellindex (Zeichenketten) • DI/EDI/RDI: Zielindex (Zeichenketten) • SP/ESP/RSP: Stapelzeiger • BP/EBP/RBP: Stapelsegment (Anfangsadresse) • IP/EIP/RIP: Befehlszeiger

  26. MMX und 64 Bit • MMX: 8 neue „Single Instruction, Multiple Data“-Register mit 64 Bit • Weitergeführt als 3Dnow!, SSE bis SSE5. • Intel: 64 Bit (Register) mit EMT 64 oder Intel64, entwickelt als AMD64 • SSE5: 128Bit breite Operanden in 47 neuen Befehlen (z. B. für die AES-Verschlüsselung) in i5- und i7-CPUs

  27. Strategien der aktuellen CPUs • Multicore • Pipelines • Sprungvorhersage • Cache • Hyperthreading

  28. Mehrkernprozessoren • Zwei oder mehr Kerne auf einem „Die“ • Parallele Berechnungen möglich • Schnelle Kommunikation der Kerne untereinander • Gemeinsame Ressourcennutzung

  29. Pipelining - 1 • A – Befehlscode laden (IF, Instruction Fetch) • In der Befehlsbereitstellungsphase wird der Befehl, der durch den Befehlszähler adressiert ist, aus dem Arbeitsspeicher geladen. Der Befehlszähler wird anschließend hochgezählt. • B – Instruktion dekodieren und Laden der Daten (ID, Instruction Decoding) • In der Dekodier- und Ladephase wird der geladene Befehl dekodiert (1. Takthälfte) und die notwendigen Daten aus dem Arbeitsspeicher und dem Registersatz geladen (2. Takthälfte). • C – Befehl ausführen (EX, Execution) • In der Ausführungsphase wird der dekodierte Befehl ausgeführt. Das Ergebnis wird durch den Pipeline-latch gepuffert. • D – Ergebnisse zurückgeben (WB, Write Back) • In der Resultatspeicherphase wird das Ergebnis in den Arbeitsspeicher oder in den Registersatz zurückgeschrieben.

  30. Pipelining 2 Quelle: Wikipedia

  31. Sprungvorhersage • „Branch prediction“, Beispiele: • Sprünge im Programmcode zurück sind in der Regel Schleifen, die oft mehrfach durchlaufen werden, so dass bei dieser prophylaktisch die Pipeline mit dem zurückliegenden Code gefüllt wird • Versuch der Vorhersage, ob ein bedingter Sprung ausgeführt wird • Versuch, die Zieladresse eines Sprunges zu ermitteln

  32. Cache - 1 • Zwischenspeicher, arbeitet „unsichtbar“ • Ziele: eine Verringerung der Zugriffszeit bzw. der Anzahl der Zugriffe auf den zu cachenden Speicher • Vermeidet den „von-Neumann-Flaschenhals“ (= das Verbindungssystem (Daten- und Befehls-Bus) wird zum Engpass zwischen dem Prozessor und dem Speicher)

  33. Cache - 2 • First-level-Cache nahe am Prozessor • Second- und Third-Level-Caches dahinter • Cache mit Havard-Architektur: getrennte Caches für Daten und Befehle

  34. Cache - 3 • Der Cachecontroller entscheidet, ob (und womit) der Cache gefüllt oder wo er geleert werden muss. • Er benutzt dazu Cache-Hit- und –Miss-Detektoren. • Cache-Speicher arbeitet in Blöcken organisiert und oft in dieser Hinsicht „assoziativ“.

  35. Assoziativer Cache

  36. Der Cache beim i7 • L1-Cache: je Kern 32 + 32 KB (Daten + Instruktionen) • L2-Cache: je Kern 256 KB mit Prozessortakt (etwa 3 GHz) • L3-Cache: „shared“ 12 MB mit doppeltem Speichertakt (etwa 0,4-0,8 GHz)

  37. Hyperthreading - 1 • (kurz: HTT, üblicherweise nur Hyper-Threading genannt) ist die Implementierung von hardwareseitigem Multithreading in Intel-Prozessoren. • Durch mehrere vollständige Registersätze und ein komplexes Steuerwerk werden intern parallel arbeitende Pipeline-Stufen mehreren parallelen Befehls- und Datenströmen zugeteilt. • Hyperthreading ist damit Parallelverarbeitung auf der Ebene des Simultaneous Multithreadings (SMT).

  38. Hyperthreading - 2 • Im Gerätemanager von Windows sind dann z.B. bei einer i7-980-CPU zwölf Prozessoren zu sehen (hier: acht).

  39. Komponenten eines vN-Rechners • Ein Von-Neumann-Rechner beruht auf folgenden Komponenten, die bis heute in Computern verwendet werden: • ALU (Arithmetic Logic Unit) – Rechenwerk, selten auch Zentraleinheit oder Prozessor genannt, führt Rechenoperationen und logische Verknüpfungen durch. (Die Begriffe Zentraleinheit und Prozessor werden i.A. in anderer Bedeutung verwendet.) • Control Unit – Steuerwerk oder Leitwerk, interpretiert die Anweisungen eines Programms, und verschaltet dementsprechend Datenquelle, -senke und notwendige ALU-Komponenten; das Steuerwerk regelt auch die Befehlsabfolge. • Memory – Speicherwerk speichert sowohl Programme als auch Daten, welche für das Rechenwerk zugänglich sind. • I/O Unit – Eingabe-/Ausgabewerk steuert die Ein- und Ausgabe von Daten, zum Anwender (Tastatur, Bildschirm) oder zu anderen Systemen (Schnittstellen).

  40. Komponenten eines vN-Rechners Quelle: Wikipedia

  41. Bussystem Quelle: Wikipedia

  42. Programmablauf 1 • Prinzipien des gespeicherten Programms: • Befehle sind in einem RAM-Speicher mit linearem (1-dimensionalem) Adressraum abgelegt. • Ein Befehls-Adressregister, genannt Befehlszähler oder Programmzähler, zeigt auf den nächsten auszuführenden Befehl. • Befehle können wie Daten geändert werden.

  43. Programmablauf 2 • Prinzipien der sequentiellen Programm-Ausführung • Befehle werden aus einer Zelle des Speichers gelesen und dann ausgeführt. • Normalerweise wird dann der Inhalt des Befehlszählers um Eins erhöht. • Es gibt einen oder mehrere Sprung-Befehle, die den Inhalt des Befehlszählers um einen anderen Wert als +1 verändern. • Es gibt einen oder mehrere Verzweigungs-Befehle, die in Abhängigkeit vom Wert eines Entscheidungs-Bit den Befehlszähler um Eins erhöhen oder einen Sprung-Befehl ausführen.

  44. Von-Neumann-Zyklus - 1 • FETCH • In das Befehls-Register, das zusammen mit Steuerwerk und Rechenwerk (ALU: Arithmetisch-logische Einheit) die CPU darstellt, wird aus RAM- oder ROM-Speicher der nächste zu bearbeitende Befehl geladen. • Bei modernen Prozessoren können mehrere Befehle aus dem Speicher in einen Zwischenspeicher (Prefetch-Registerblock) geladen werden, während der aktuelle Befehl noch decodiert wird. 1. Vorteil: Deutliche Steigerung der Verarbeitungsgeschwindigkeit.2. Nachteil: Bei Programmverzweigungen muss der Befehl evtl. wieder entfernt werden. • DECODE • Befehlszähler wird vor dem Dekodieren um 1 erhöht. Der Befehl wird durch das Steuerwerk in Schaltinstruktionen für das Rechenwerk aufgelöst (übersetzt).

  45. Von-Neumann-Zyklus - 2 • FETCH OPERANDS • Aus RAM oder ROM werden nun die Operanden geholt: die Werte, die durch den Befehl verändert werden sollen bzw. die als Parameter verwendet werden. • EXECUTE • Die Operation wird vom Rechenwerk ausgeführt. An dieser Stelle wird, so vom Programm gewünscht, auch der Befehlszähler verändert (Sprungbefehl). • (INCREMENT • auch schon mal in FETCH enthalten; der Befehlszähler wird um 1 erhöht) • Jetzt kann der Zyklus wieder von vorn beginnen

  46. Programmablauf / Akkumulator • Die Arbeit des Computers besteht also im Wesentlichen aus einem Verschieben von Daten in Register und Ausführen von Rechenoperationen beziehungsweise logischen Operationen. • Wenn ein Befehl im Rechenwerk ausgeführt wird, so wird eine Dualzahl in das Arbeitsregister, auch Akkumulator genannt, geladen. Am Ende steht das Ergebnis wieder im Akkumulator. Er akkumuliert sozusagen die Ergebnisse.

  47. Von-Neumann-Zyklus im Compi16

  48. Mikroprogramm - 1 • Der Algorithmus eines Mikroprogramm-steuerwerks in einer CPU zum Steuern des Rechenwerks • Kann unmittelbar in Form binär codierter Mikrobefehle erstellt werden • Oder: Mikroassembler • Üben? -> http://www.mikrocodesimulator.de/

  49. Mikroprogramm - 2 Quelle: http://www.jeckle.de/vorlesung/sysarch/script.html

  50. „Havard“-Architektur - 1 • Der Befehlsspeicher ist physisch vom Datenspeicher getrennt und beide werden über getrennte Busse angesteuert. Quelle: Wikipedia

More Related