Teil Rechnerarchitekturen – M03 Darstellung von Zahlen, Rechnen, CPU, Busse Corinna Schmitt [email protected] Darstellung von Zahlen Rechnen © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 2 Zwei Darstellung von Ganzzahlen mit Vorzeichen ! Vorzeichen + Magnitude – Zusatzbit, um Vorzeichen zu kodieren (0)101 = 5 ! 1101 = - 5 1-er Komplement – Vorzeichenwechsel durch Invertierung aller Bits (0)101 = 5 ! 1010 = - 5 Nachteile: – Zwei unterschiedliche Darstellungen der Null – Benötigt zusätzliche Gatter © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 3 Negativzahlen: 2er-Komplement ! Subtrahiere die entsprechende positive Zahl N von 2n (0)101 = 5 1011 (16dec – 5dec) = - 5 Sieht kompliziert und unnatürlich aus, ist aber effizient! ! Eigenschaft: höchstwertiges Bit ist 1 falls Zahl negativ ! ! Andere Art der Berechnung – Invertiere jedes Bit – Addiere 1 © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 4 Addition mit dem 2er-Komplement ! Direkte Addition ohne Spezialbehandlung des Vorzeichens © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 5 Subtraktion mit dem 2er-Komplement ! Subtraktionsregel – Um eine Zahl (Subtrahend) von einer anderen (Minuend) abzuziehen, addiere man das 2er-Komplement des Subtrahenden zum Minuend. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 6 32-bit ALU für Subtraktion mit dem 2erKomplement ! Einsatz von bininvert and carry input © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 7 2er-Komplement und Überlauf (Overflow) (I) ! Ein Problem der Addition und Subtraktion mit 2erKomplement: ! Grund: – Die Resultate (+9 und -13) passen nicht mehr in die Maske von 3 Bits (1 Bit für das Vorzeichen) – Überlauf-Bedingung gegeben © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 8 2er-Komplement und Überlauf (Overflow) (II) ! Die ALU kann bei Überlauf nicht viel machen – „Flag“ (Bit im „Zustandsvektor“ der CPU) setzen. – Den Programmierer diesen Wert prüfen lassen. ! D.h., der Programmiere muß – Das „overflow“-Bit nach jeder Addition und Subtraktion abfragen und – Entsprechende Maßnahmen ergreifen. ! Einige Programmiersprachen ignorieren Überlauf – Bspw. C © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 9 Multiplikation ! Mehrere Problembereiche – Das Produkt von zwei 32-Bit-Worten ist 64 Bits lang! – Spezialbehandlung bei Produkt zweier Zahlen im 2erKomplement ! Beispiel: Multiplikation ohne 2er-Komplement © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 10 Multiplikations-Hardware ! Bemerkung zur Implementierung – Multiplikation erfolgt außerhalb der ALU – „Hardware-Schleife“ © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 11 Multiplikation und Division Multiplikation und Division sind zeitraubend. ! Es existieren schnellere Verfahren als Bit-für-Bit Operationen ! – Können mit 2er-Komplement arbeiten – Bsp. Booth‘s Algorithmus ! Konsultiere das jeweilige Datenblatt des Prozessors. ! Laufzeit hängt vom Wert der Operanden ab – Bsp. Multiplikation mit Null © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 12 Floating Point ! Gleiche Diskussion wie bei Integer-Werten ! Darstellung – Vorzeichen, Mantisse, Exponent – Z.B. IEEE 754-Norm (1985) – In 32 oder 64 bits (float, double) – NaN (not-a-number) ! Implementierungsfrage – Als Programm (mit Integer) – In Hardware (Co-Prozessor) © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 13 Central Processing Unit (CPU) © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 14 Zentraleinheit eines Rechners ! Die Zentraleinheit besteht im wesentlichen aus den Komponenten der Hauptplatine (Mainboard oder Motherboard). – Der Mikroprozessor (CPU = Central Processing Unit): Ausführung der Programme, Steuerung und Verwaltung der Hardware verantwortlich. – Der RAM-Arbeitsspeicher (RAM = Random Access Memory): enthält Programme, die gerade ausgeführt werden, und verwendete Daten. – Der ROM-Speicher (ROM = Read-only-Memory): enthält meist ein Programm (BIOS bei IBM-PCs), das beim Einschalten die wichtigsten Hardwarekomponenten überprüft und dann das Booten des Betriebssystems von einem Speichermedium (Festplatte, CD) veranlaßt. – Die Busse und Schnittstellen: Kommunikation zwischen einzelnen Bestandteilen des Mainboards, zum Anschluss von Peripheriegeräten (z.B. Grafikkarten, Netzwerkkarten, Festplatten, Druckern). – Der Chipsatz: fest auf dem Mainboard untergebrachte Schaltkreise, z.B. Für die Steuerung sämtlicher Anschlüsse des Mainboards. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 15 Mikroprozessor (1) ! Mikroprozessoren sind integrierte elektronische Schaltkreise – Während sie ursprünglich nur aus wenigen Transistoren bestanden, enthalten sie heute mehrere Millionen Transistoren, wobei die Integrationsdichte auf Grund des technologischen Fortschritts ständig zunimmt. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 16 Mikroprozessor (2) ! Ein Mikroprozessor setzt sich aus folgenden Komponenten zusammen: – ALU (Arithmetic Logical Unit=Arithmetisch-logische Einheit): Rechenwerk, das mathematische Operationen und logische Verknüpfungen durchführt. – Register: spezielle Speicherplätze innerhalb des Prozessorkerns. Die ALU rechnet mit den Werten, die sich in den Arbeitsregistern befinden. Typische Prozessoren verfügen nur über relativ wenige Register, wie z. B. 2, 4, 6, 8 usw. – Steuerwerk: übernimmt mittels zweier spezieller Register (Befehlszählerregister und Befehlsregister) die Kontrolle über die Ausführung des Programmcodes und initiiert andere Steuerungsfunktionen, verwaltet auch den Stack-Zeiger. • Befehlstabelle (Instruction Table) erlaubt Maschinenbefehle eines Programms zu dekodieren. – Über Busse (Datenleitungen) ist der Prozessor mit den Komponenten verbunden: • Datenbus: Austausch von Daten mit dem Arbeitsspeicher • Adressbus: Übertragen der zugehörigen Speicheradressen • Steuerbus: Ansteuerung der Peripherie-Anschlüsse © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 17 Register ! Register – sind prozessorinterne Speicherplätze, die jeweils ein (binäres) Datum bestimmter Länge (z. B. 32-Bit) aufnehmen können. – besitzen zu anderen Prozessorkomponenten, wie Ablaufsteuerung und Verknüpfungslogik, sehr enge Verbindungen. Nur mit den Daten in den Arbeitsregistern können direkte logische Operationen durchgeführt werden. ! Registertypen – Arbeitsregister werden in Befehlen durch Namen wie z.B. D1…D7 oder EAX… EDX angesprochen. Sie können Daten (Datenregister) und je nach Prozessortyp auch Adressen (Adressregister) aufnehmen. – Das Befehlszählerregister beinhaltet immer die Adresse des nächsten auszuführenden Befehls (häufiger Name ist Instruction Pointer = IP). – Das Befehlsregister kann einen (binären) Maschinenbefehl aufnehmen. – Das Stackregister speichert den Prozessorstatus und den Programmzähler ab. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 18 Central Processing Unit (CPU) hier nur 1 Bus © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 19 CPU-interne Register (statischer Speicher) Abkürzung Registerart IR Instruction Register Y, Z, TEMP Temporary operand/result register MAR Memory Address Aegister MDR Memory Data Register PC Program Counter R0 – Rn-1 User programmable registers F (nicht dargestellt) Flags register inside control unit © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 20 Funktionsweise eines Prozessors 1. Das Befehlszählerregister des Steuerwerks enthält die Adresse des nächsten Maschinenbefehls. Die Adresse des Befehls wird über den Adressbus an den Arbeitsspeicher übermittelt. 2. Der Befehl wird aus dem Arbeitsspeicher über den Datenbus in das Befehlsregister übertragen. Mittels Dekodierlogik wird der Befehl analysiert und die Ausführung angestoßen. 3. Der Befehl wird ausgeführt; abhängig vom jeweiligen Befehl wird dabei zusätzlich das Lesen von Daten aus dem Arbeitsspeicher, die Ansteuerung von Peripherieschnittstellen, das Rechnen in der ALU oder die Durchführung eines Sprungs im Programm erforderlich. Der Status der jeweiligen Operation wird im Statusregister (Flagregister) angezeigt 4. Falls ein Sprung stattfand, wird das Befehlszählerregister auf die entsprechende neue Adresse gesetzt, ansonsten wird das Befehlszählerregister um 1 erhöht. 5. Der Prozessor fährt wieder mit dem 1. Schritt fort. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 21 Arbeitsschritte einer CPU Speicherzugriff ! Arithmetische Operationen ! Logische Operationen ! Ganzer Instruktionszyklus ! © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 22 Speicherzugriff ! Mehrere „Microschritte“ sind nötig, um einen CPU-Befehl ab zu arbeiten. Bsp.: Holen eines Datenwortes aus dem Speicher ! Annahmen: ! – Speicheradresse in R1 abgelegt – Zieladresse sei R2 ! Schritte: 1. Lege Adresse ins MAR-Register: MAR " [R1] 2. Setze MAR-Inhalt auf externe Signalleitung: Starte LeseProzess 3. Signal vom externen Speicher: Warte, bis Leseoperation fertig 4. Transferiere Inhalt von MDR nach R2: R2 " [MDR] © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 23 Arithmetische und logische Operation ! Bsp.: Zwei Register addieren ! Annahmen: – Operanden seien in R1 und R2 – Ergebnis soll nach R3 ! Schritte 1. Wert im Register R1 zur ALU kopieren: Y " [R1] 2. Lege [R2] auf den CPU-Bus 3. Wähle add-Operation aus und warte 4. Transfer des Ergebnisses nach R3: R3 " [Z] © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 24 Ganzer Instruktionszyklus ! Die CPU arbeitet folgende Schritte ab: 1. 2. 3. 4. 5. ! Hole nächste Instruktion (mittels PC) Hole die Operanden (in Abhängigkeit der Instruktion) Führe die Operation durch Speichere das Resultat Berichtige PC (falls nicht schon Teil der Operation) Die Kontrolleinheit dirigiert diesen Ablauf. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 25 Festverdrahtete „Control Unit“ (CU) © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 26 Festverdrahtete CU vs. MicroProgrammierung Vorher: Status der Kontrollleitungen wird „ausgelesen“. ! Neu: Programmierbare Kontrolleinheit, Mini-Programm! ! – Jede CPU-Instruktion wird durch eine Mikro-Routine abgearbeitet. ! Bemerkungen: – Benutzer können normalerweise die Kontrolleinheit nicht programmieren • Wird in der Fabrik festgelegt – Intel erlaubt micro-programming # „Intel Updater“ in Linux © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 27 Arbeitsweise einer mikroprogrammierbaren Kontrolleinheit © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 28 Microprocessor vs. Microcontroller (Definition) ! Vor 1971 waren ALU, Kontrolleinheit und Register durch mehrere (diskrete) elektronische Komponenten realisiert. – Mainframes, Minicomputers, Spezialarchitekturen (VektorProzessoren) haben zum Teil die ALU immer noch separat. – Microprocessor • ALU, Kontrolleinheit, Register und interner Bus aus 1 Chip – Microcontroller (µC) • Ein Microprocessor, der auch Hauptspeicher und die Ein-/AusgabeLogic auf einem Chip hat (kompletter Computer) © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 29 Relevanz von µKontrollern (µC) µC sind billig: 50 Rappen bis 5 Franken pro Chip ! µC Markvolumen über 10 Milliarden USD pro Jahr ! ! Vergleich µProzessoren (PC etc.): 25-30 Milliarden USD/anno – Digital Signal Processors (DSP): 4 Milliarden USD/anno ! Populäre Geräte/Anwendungen: – Auto: Heute 60 µC und mehr pro Highend-Auto – NASA Mars Sojourner Rover (8-bit Intel 80C85) – Sonicare Plus Zahnbürste (8-bit Zilog Z8) © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 30 Busse © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 31 Die Großfamilie der Busse Cache bus Level 2 cache Local bus Memory bus PCI bridge CPU Main memory PCI bus SCSI USB Mouse Modem © 2015 – Corinna Schmitt ISA bridge IDE disk Graphics adaptor Available PCI slot Monitor Keyboard ISA bus Sound card Teil Rechnerarchitekturen - 32 Printer Available ISA slot Busse und Schnittstellen ! Busse und Schnittstellen werden sowohl zur Kommunikation zwischen den Bestandteilen des Mainboards als auch zum Anschluß aller Arten von Peripheriegeräten benötigt, wie z.B. für Grafikkarten, Festplatten, Drucker. ! Dem Transport von Daten zwischen den Einheiten auf dem Mainboard, dem Prozessor, dem Arbeitsspeicher und der Ein-/ Ausgabeeinheit dient ein so genanntes internes Bussystem. ! Aus Geschwindigkeitsgründen werden auf dem internen Bussystem mehrere Bits parallel übertragen. Die Anzahl der parallel zu übertragenden Bits hängt von der an den HW-Chips verfügbaren Busleitungen ab und korreliert sinnvollerweise mit der Bitlänge der Prozessorregister und der darin zu verarbeitenden maximalen Datengrößen. © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 33 Bustypen ! ! ! ! Schnittstelle zwischen CPU (Chip) und Außenwelt Datenbus: Er dient der bidirektionalen Übertragung von Daten zwischen den Einheiten. # „was“ [MDR] Adreßbus: Er dient der unidirektionalen Übermittlung von Adressen zum Speicher (oder zu den Ein-/Ausgabeeinheiten). # „wo“ [MAR] Steuerbus: Er dient zur Koordination exklusiver Zugriffe auf den Datenund Adressbus (Bus reservieren, freigeben, …). © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 34 Cache — Prinzipieller Aufbau ! Pufferspeicher hält Kopien derjenigen Teile des Arbeitsspeichers bereit, auf die aller Wahrscheinlichkeit nach von der CPU als nächstes zugegriffen wird Adreßbus µP Steuerung Steuerbus Cache verarbeiten Speicher ein-/auslagern Datenbus – Der Cache ist entweder direkt auf dem Prozessorchip integriert (on-chipCache) oder – in der schnellsten und teuersten SRAM-Technologie realisiert (Off-ChipCache). © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 35 Bus = Satz von Signal- und Kontrollleitungen ! Verschiedene Busse in und außerhalb des Computers und der CPU – In der CPU: Bus für Integer-Werte (Register-ALU-Register) © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 36 Externe Busse ISA = Industrial Standard Architecture (alter IBM/PC) ! PCI = Peripheral Connect Interface ! AGP = Accelerated Graphics Port ! ! „North“ / „South“ Bridge – Bus-Verbindungen © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 37 Bus Interfaces, Bridges ! Gründe für die Vielzahl von Bussen – Unterschiedliche Geschwindigkeiten • Speicherzugriff ist schneller als Input/Output (I/O) – Unterschiede in Zugriffs-Verfahren • Synchron (fester Zeitpunkt, wann Daten gelesen werden können) • Asynchron (beliebige Verzögerungen, spezielle Signalleitungen) – Unterschiede in den elektrischen Eigenschaften • Bus auf einer PC-Platine (10-30 cm) • SCSI-Bus für externe Geräte (10-100 cm) ! „Backplane“: externer System-Bus © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 38 Signalleitungen für Hauptspeicher im Mikrocomputer ! ATmega128 – 4Kx8 EEPROM, 4Kx8 SRAM, 128Kx8 Flash © 2015 – Corinna Schmitt Teil Rechnerarchitekturen - 39
© Copyright 2025 ExpyDoc