10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 MIKROPROZESSOR PROGRAMMIERUNG 2. VORLESUNG BIT LV-Nr. 439.026 SS2007 1 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 LABORÜBUNG Gruppeneinteilung Mikroprozessor-Programmierung LU Anmeldung zur Laborübung im TUGOnline erforderlich! Für Terminwechsel bitte ein Email an [email protected] senden. Eintägige Übung: Vormittag 8:30 bis 12:00 Uhr, Nachmittag 13:30 bis 18:00 Uhr Ansteuerung eines Schrittmotors: 2 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 PROZESSOR KLASSIFIKATION MIKROPROZESSOR MIKROCONTROLLER 4/8/16/32/64BIT 4/8/16/32/64BIT DSP Digitale Signalverarbeitung ASIC / FPGA -Programmierbare Logik -Kundenspezifische Integrierte Schaltung 3 Phasen bei der Mikroprozessorentwicklung HALBLEITERENTWICKLUNG u. FORTSCHRITT TECHNOLOGIE ARCHITEKTUR 3 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Begriffsdefinitionen: Der Kern eines Computers ist die zentrale Verarbeitungseinheit (Central Processing Unit, CPU). Diese besteht im wesentlichen aus den Komponenten Steuerwerk, Rechenwerk, mehreren Registern und einem Verbindungssystem zur Ankopplung von Speicher- und Peripheriekomponenten Unter einem Computerprogramm versteht man eine Folge von Anweisungen oder Befehlen, die direkt oder indirekt im Computer benutzt werden, um gezielt ein bestimmtes Resultat herbeizuführen Unter einem Algorithmus versteht man allgemein eine genau definierte Handlungsvorschrift zur Lösung eines Problems. Ein Mikroprozessor (Microprocessor) ist die auf einem Mikrochip realisierte CPU eines Computersystems 4 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Begriffsdefinitionen: Die Mikroprozessortechnik (Microprocessor Technology) befasst sich mit der Architektur, der Entwicklung, der Implementierung, dem Bau, der Programmierung und dem Einsatz von Mikroprozessoren Rechner bzw. Computer, bei denen Mikroprozessoren zum Einsatz kommen, werden als Mikrorechner bzw. Mikrocomputer bezeichnet. Mikrocontroller (Microcontroller) sind vollständige Mikrocomputersysteme auf einem Chip. Neben der CPU sind Speicher und Peripheriekomponenten auf dem Chip integriert. Digitale Signalprozessoren (DSP… Digital Signal Processor) sind Spezialprozessoren für die sehr schnelle Verarbeitung von mathematischen Befehlen zur Bearbeitung komplexer Algorithmen der analogen/digitalen Signalverarbeitung 5 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Begriffsdefinitionen: Die Abkürzung ASIC steht für: Kundenspezifische Integrierte Schaltung (Application Specific Integrated Circuit (ASIC)) Ein FPGA (Field Programmable Gate Array) ist ein frei programmierbarer Logikschaltkreis Vorteile FPGA gegenüber ASICs: •geringe Entwicklungskosten •sehr kurze Implementierungszeiten •einfach korrigier- und erweiterbar (rekonfigurierbar) → Flexibilität Nachteile FPGA gegenüber ASICs: •ab mittleren Stückzahlen höherer Stückpreis •geringere Taktraten •geringere Logikdichte (ca. 10facher Flächenbedarf gegenüber ASIC gleicher Technologie) •höherer Energiebedarf Unterschiede zu Prozessoren FPGAs/ASICs bieten die Möglichkeit Informationen massiv parallel zu verarbeiten. Dadurch benötigen sie nicht so hohe Taktfrequenzen wie Prozessoren, die Informationen sequentiell verarbeiten. In einem FPGA können zig Additionen und Multiplikationen zur gleichen Zeit ausgeführt werden, während selbst moderne Prozessoren nur einige wenige Operanden parallel verarbeiten können. 6 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Im Vergleich … Mikroprozessor µP LEISTUNG SPEZIALISIERUNG Mikrocontroller µC Digitaler- Signal Prozessor FLEXIBILITÄT Programmierbare Hardware FPGA ASIC 7 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik PRINZIPIELLER AUFBAU EINER CPU (Central Processing Unit): BESTANDTEILE DER CPU: Die CPU ist das "Gehirn" des Rechners. Sie hat die Aufgabe, die Daten, die im Hauptspeicher liegen, zu verarbeiten, d.h. sie zu lesen, mit ihrer Hilfe Berechnungen durchzuführen und die Berechnungsergebnisse in den Hauptspeicher zu schreiben • Recheneinheit (ALU) für die eigentliche Datenverarbeitung • Steuerwerk (CU) für die Kontrolle des Rechenteils und Aktivitäten der übrigen Rechnerbestandteile • Register dienen zur Ablage von Daten 8 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik ARITHMETISCHE-LOGIK EINHEIT: 1. OPERAND 2. OPERAND ALU FUNKTIONSAUSWAHL VOM STEUERWERK FLAGS ERGEBNIS Die arithmetisch-logische Einheit (Arithmetic-Logical Unit – ALU) übernimmt die eigentliche Datenverarbeitung. Sie kann meinst nur einfache Elementaroperationen mit maximal zwei beteiligten Operanden ausführen; komplexere Operationen sind aus einer Folge einfacher Aktionen zusammenzusetzen 9 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Aufgaben der Arithmetischen-Logik-Einheit: Arithmetische Operationen (Addition, Subtraktion, Vergleich) Logische Verknüpfungen (AND, OR, XOR) Verschiebungen um eine oder mehrere Bitstellen nach links bzw. rechts (rotieren) Anmerkung: Die maximale Größe der ALUOperanden definiert die Einstufung des Prozessors als 4-, 8-, 16-, 32-, 64 Bit- Prozessor 10 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Register: Darunter versteht man CPU-interne Speicherstellen, die im Gegensatz zum (externen) Speicher besonders schnell ansprechbar ist. Universalregister (General Purpose Register) – Für die direkte Datenablage – Operanden für arithmetische und logische Operationen, Ergebnisse z.B. Akkumulator Adresszeigerregister (Pointer bzw. Index Register) – Für Zugriffe auf Speicherstellen bzw. periphere Komponenten und für eine flexible Berechnung von Operandenadressen Spezialregister (Special Function Register) – Befehlszähler (Programm Counter PC oder Instruction Pointer) Er enthält die Speicheradresse der als nächstes einzulesenden Befehlsinformation Flagregister (Flags) – Die Flags nehmen binäre Informationen über Sonderfälle bei der letzten ALUALU-Operation auf und stellen diese zur weiteren Auswertung bereit. Stapelzeiger (Stackpointer SP) – Er adressiert den Ort, an dem Rückkehrinformationen bei Prozeduraufrufen bzw. temporären Daten im Speicher abgelegt wurden. z.B. Register eines 80386 Prozessors Control Register – Sie dienen der Konfiguration der Arbeitsweise des Prozessors, z.B. der Einstellung von Testmodi, der Funktion eines Coprozessors, der Behandlung von Breakpoints oder der Arbeitsweise einer Speicherverwaltung 11 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik FLAGS sind binäre Informationen, die besondere Ergebniszustände kennzeichnen. Sie werden im Flagregister für eine nachfolgende Auswertung bereitgestellt. Außerdem werden sie dem Steuerwerk zur Behandlung eventueller Sonderfälle, z.B. bei Division durch 0, übergeben. Wichtige FLAGS: Zero- Flag – Das Ergebnis der Verarbeitung ist genau 0 Carry- Flag – Bei der Verarbeitung ist ein Übertrag aufgetreten, d.h. das Ergebnis lässt sich nicht mit der vorhandenen Verarbeitungsbreite darstellen Overflow- Flag – Zahlenbereichsüberschreitung Parity- Flag – gerade/ungerade Parität des Akkumulatorregister z.B. Flagregister eines 80386 Prozessors 12 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Das Steuerwerk (Control Unit) organisiert und kontrolliert die gesamte Arbeit der CPU als auch des Rechnersystems als Ganzes Es stellt ein durch einen externen Takt gesteuertes Schaltwerk dar, welches entsprechend den auszuführenden Befehlen konkrete Folgen elementarer Transport- und Verarbeitungsaktionen auslöst. Die konkrete Funktion und der Ablauf eines Befehls sind konstant und reproduzierbar und werden bei der Herstellung des Prozessors fest vorgegeben. Aufgaben des Steuerwerks: Steuerung prozessinterner Abläufe, d.h. die Organisation von Datentransporten innerhalb des Rechenwerkes zwischen Registern, ALU und Datenbus sowie die Auslösung und Auswertung von Operationen der ALU Bereitstellung von Adressinformationen für Befehls- und Datentransporte über das Bussystem Steuerung externer Abläufe bei der Kommunikation des Prozessors mit dem Speicher bzw. mit Eingabe-/Ausgabe-Einheiten Wesentliche Bestandteile des Steuerwerks sind der Programm- Counter PC, der die Adresse des nächsten auszuführenden Befehls bereitstellt, der Befehlsdecoder, der die Informationen des binären Maschinenbefehls zerlegt und analysiert, und die Ablaufsteuerung, die eine passende Sequenz von Teilschritten zur Befehlsbearbeitung auslöst. 13 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik FPU (Floating Point Unit) – Die Gleitkomma-Einheit ist im Fall der x86-Architektur fast schon ein eigener Prozessor mit Rechen- und Steuerwerk und eigenen Befehlen. Eine CPU mit FPU kann Operationen auf Gleitkomma Real-Zahlen wesentlich schneller ausführen als Prozessoren ohne FPU. Während es zu den frühen Prozessoren der x86-Architektur (8086 bis i486SX) einen eigenen, nachrüstbaren Coprozessor für Gleitkomma-Operationen gab, ist diese Einheit seit dem Intel i486DX in die CPU integriert. Auch die x86-Prozessoren anderer Hersteller haben heute alle eine integrierte FPU. MMU (Memory Management Unit) – Eine Komponente, die die Verwaltung des Hauptspeicherzugriffs übernimmt. Cache -Controller – Die Steuereinheit für den Cache-Zugriff und der eigentliche Cache-Speicher befindet sich im allgemeinen ebenfalls auf der CPU. Cache – Der Cache ist ein spezieller Puffer-Speicher, der zwischen dem Arbeitsspeicher und dem Prozessor liegt. Damit der Prozessor nicht jeden Programm-Befehl aus dem langsamen Arbeitsspeicher holen muss, wird gleich ein ganzer Befehls- oder Datenblock in den Cache geladen. Die Wahrscheinlichkeit, das die nachfolgenden Programmbefehle im Cache liegen, ist sehr groß, da die Programm-Befehle nacheinander abgearbeitet werden. 14 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik CODESPEICHER DATENSPEICHER EXTERNE I/O ERWEITERUNG A D MIKROPROZESSOR µP MASTER SLAVE 1 SLAVE 2 ADRESSBUS A0 … An DATENBUS D0 … Dn ….SLAVE n SYSTEMBUS STEUERBUS 15 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Systembus. Die Teilbusse Datenbus, Adressbus und Steuerbus bilden gemeinsam den Systembus des Mikrorechners Der Adressbus stellt Ziel- bzw. Quelladresse des Datentransfers bereit Über den Datenbus werden die zu übertragenden Daten transferiert Die Signale des Steuerbus übernehmen die Koordinierung des Datentransfers im Hinblick auf Richtung und Ablauf des Datentransports. Der Transport der einzelnen Daten- bzw. Adressinformationen (D0 bis Dn bzw. A0 bis An) erfolgt aus Gründen einer hohen Übertragungsgeschwindigkeit jeweils parallel und gleichzeitig Adresse. Sie besteht aus einer Kombination mehrer binärer Stellen, Adressbits, zur Angabe und eineindeutigen Auswahl einer konkreten Speicherstelle (wie eine Postadresse). Mit n Adressbits lassen sich m = 2n verschiedene Bitkombinationen, d.h. Adressen darstellen Die Datenbreite einer Speicherstelle wird in Bit angegeben. Sie gibt an, wie viel binäre Einheiten in genau einer Speicherstelle untergebracht sind. 16 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik ZEITDIAGRAMM FÜR GETAKTETEN SYSTEMBUS BUSTAKT SYSTEMBUS ADRESSE 1 ADRESSE 2 ADRESSBUS READ DATEN DATENBUS WRITE DATEN LESEZYKLUS DATENBUS SCHREIBZYKLUS STEUERBUS 17 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Master-Slave Prinzip. Der gesamte rechnerinterne Ablauf unterliegt einem festen Regime. Die CPU steuert als Master aktiv alle Abläufe und Datentransporte. Speicher und periphere Komponenten arbeiten als Slave, d.h. sie sind stets passiv und werden nur auf Aufforderung der CPU hin aktiv. Typischer Ablauf eines Datentransfers über einen getakteten Systembus: Der Master legt die Adresse der Speicherzelle bzw. der Peripheriekomponente auf den Adressbus (Adressierungsphase) Mithilfe eines Steuersignals definiert der Master die Richtung des Datentransfers (z.B. /RD = 0 & /WR = 1… Lesen und mit /RD = 1 & /WR = 0 Schreiben) Die Daten werden bei einer Schreiboperation nun vom Master auf den Datenbus gelegt und von Speicher bzw. von der Peripheriekomponente übernommen. Alternativ werden bei einer Leseoperation die vom Speicher bzw. von der Peripheriekomponente auf den Datenbus gelegten Informationen vom Master eingelesen (Datentransferphase) Wartezyklen (Wait- States). Um langsamere Speicher- bzw. Peripheriebausteine an einem schnelleren Systembus betreiben zu können, ist bei vielen Bussystemen das Einfügen von Wartezyklen in das Bustiming möglich. Zeitmultiplexe Bussignale. Zur Reduzierung von Anschlusspins und damit von Busleitungen werden häufiger verschiedene Bussignale über gleiche Leitungen zeitlich nacheinander zur Verfügung gestellt. Die Kennzeichnung der momentanen Verwendung der Busleitungen erfolgt dabei über zusätzliche Statussignale 18 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Wartetakte: (Wait-States) Probleme bei unterschiedlicher Geschwindigkeit: Prozessoren sind technologisch bedingt wesentlich schneller als Speicher (Unterschied bis 1:20); periphere Einheiten sind noch langsamer als Speicher Synchronisation über Wartetakte: • die Übertragung wird um eine Anzahl von Takten verlängert - starre Anzahl, z.B. 1 Wartetakt für Zugriffe auf die Peripherie • programmierbare Anzahl, Einstellung in einem Statusregister entsprechend der Geschwindigkeit der im System verwendeten Speicherschaltkreise • Speicher oder Peripherie signalisiert die Bereitschaft über eine spezielle Steuerleitung 19 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik ZEITMULTIPLEXES ADDRESS-/DATENBUS 8-BIT SYSTEM: ADRESSE HIGH BYTE AD8-AD15 AD HIGH AD8-AD15 ADH DATEN BYTE D0-D7 µC DATA AD LOW AD0-AD7 EPROM 8x64k ADL LATCH CS R/W ALE CS_0 CS_1 ADH R/W ALE … ADDRESS LATCH ENABLE DATA CS_x … Chip Select R/W … Read/Write ADH … Adresse High Byte ADL … Adresse Low Byte RAM 8x64k ADRESSE LOW BYTE AD8-AD15 ADL CS R/W DATEN … Datenbyte 20 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Die Von-Neumann-Architektur zeichnet sich dadurch aus, dass Code und Daten über die gleichen Busse übertragen werden (im Gegensatz zur Harvard-Architektur). Dadurch gibt es erstmal keine Unterscheidung zwischen Code- und Datenbereichen und Code kann auch im Datenbereich ausgeführt werden. Das Hauptmerkmal der Harvard-Architektur ist, dass Programm- und Datenspeicher über getrennte Busse angesteuert werden. Daraus ergibt sich der Vorteil, dass auf Daten- und Programmspeicher gleichzeitig zugegriffen werden kann. Es bedeutet aber auch, dass im Gegensatz zur Von Neumann-Architektur echter Code im Datenspeicher nicht ausgeführt werden kann. Dazu muss er erst in den Codespeicher übertragen werden. 21 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Maschinenbefehl (Instruction Code). Er besteht aus binären Mustern fester oder variabler Länge, die vom Prozessor als Befehl interpretiert werden und damit die entsprechenden Operationen auslösen. Aufbau eines Maschinenbefehls (meist 2 Teile): •Operationscode (Opcode). Enthält Informationen über • die auszuführenden Operationen • die Größe der zu verarbeitenden Operanden und • die Anzahl und Bedeutung der Informationen im zweiten Befehlsteil •Operanden- und Adressfeld. Dies können • zu verarbeitende Daten • Informationen zum Auffinden der Daten (Adressinformationen) oder • Programmfortsetzungsadressen sein. Anmerkung: Der Aufbau des Maschinencodes ist strikt prozessorabhängig. Sein Aufbau stellt eine Balance zwischen einem kompakten Befehlsformat, einer einfachen Entschlüsselung und der Menge darzustellender Informationen dar. 22 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Ablauf der Befehlsabarbeitung: Der Befehlsbearbeitungszyklus (Instruction Execution Cycle) ist ein unendlicher, sich ständig wiederholender Zyklus, der aus folgenden Phasen besteht: •Berechnen der Befehlsadresse (Prefetch) •Befehl lesen und decodieren (Instruction Fetch and Decode) •Laden der Operandenadresse (Access) •Laden des Operanden (Read) •Befehl ausführen (Execute) P F D A R X Befehlsbearbeitungszyklus 23 HINTERBERGER M. 2007 2006 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Vereinfachter Prinzipablauf der Befehlsabarbeitung: Instruction Fetch and Decode 1. Befehlsinformation einlesen 1. Einlesen des ersten Teils der Befehlsinformation (1.Teil des Opcode) a.) Ausgabe des Inhaltes des Program Counters PC auf dem Adressbus, 2. Befehl decodieren b.) Einlesen des Inhaltes der angesprochenen Speicherzelle in den Befehlsdecoder, c.) Inkrementieren des PC um eine Adresseinheit. l eh tt ? f Be ple m ko JA 2. Decodieren der eingelesen Information und Festlegung des weiteren Ablaufs. 3. Einlesen der restlichen Bestandteile des Befehls (falls nötig): a.) Ausgabe des PC auf dem Adressbus, NEIN b.) Einlesen des Inhaltes der Speicherstelle in den Befehlsdecoder, c.) Inkrementieren des PC, 3. Lesen ergänzender Information 4. Befehlsausführung a) Bereitstellen der Daten b) Verarbeitung in ALU c) Ergebnisse ablegen d.) Wiederhole ab a.) bis Befehl komplett eingelesen ist. Execute 4. Ausführen des Befehls: a.) Bereitstellen der Daten am Eingang der ALU b.) Ausführen der ALU Operationen c.) Ablage der Ergebnisses. (z.B. in Register) 24 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Performancesteigerung durch Befehlspipline P1 Eine Sprunganweisung oder ein Sprungbefehl dient in Programmiersprachen von Computerprogrammen dazu, die Ausführung an anderer Stelle fortzuführen, also Programmteile zu überspringen. F1 D1 A1 R1 X1 …… P2 F2 D2 A2 R2 X2 …… P3 F3 D3 A3 R3 X3 P4 F4 D4 A4 R4 X4 P5 F5 D5 A5 R5 X5 …… P6 F6 D6 A6 R6 X6 …… …… …… …vollständig geladene Pipeline Probleme und Konflikte: Cycles •Betriebsmittelkonflikte, wenn eine Stufe der Pipeline Zugriff auf eine Ressource benötigt, die bereits von einer anderen Stufe belegt ist; •Datenkonflikte, falls ein Befehl Daten lesen/schreiben will, die zuvor von einem anderen Befehl gelesen/geschrieben werden müssen; •Kontrollflusskonflikte, wenn die Pipeline abwarten muss, ob ein bedingter Sprung ausgeführt wird oder nicht. 25 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Performancesteigerung durch Befehlspipline Vorteil: • enorme Steigerung der Verarbeitungsgeschwindigkeit Nachteil: • viele Befehle befinden sich gleichzeitig in Bearbeitung (eventuell Datenabhängigkeiten, siehe vorige Folie) • im Falle eines Pipeline-Flushs müssen alle Befehle in der Pipeline verworfen und anschließen wieder neu befüllt werden → Verzögerungszeiten entstehen, in denen der Prozessor untätig ist HINTERBERGER M. 2007 26 INSTITUT FÜR ELEKTRONIK 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 Grundlagen der Mikroprozessortechnik Bedienung von Eingabe- und Ausgabe-Einheiten: Prinzipiell kann die Bedienung von Komponenten zur Eingabe bzw. zur Ausgabe von Daten im Polling-Verfahren oder per Interrupt- Steuerung erfolgen Polling. Beim Polling Verfahren wird per Programm ständig kontrolliert, ob Daten von der Eingabeeinheit eingelesen oder an Ausgabeeinheiten ausgegeben werden können. Dazu werden entsprechende Statusinformationen der Eingabe-/Ausgabe-Einheiten ausgewertet Interrupt-Steuerung. Eingabe-/AusgabeEinheiten können eine Bedienanforderung oder ein Ereignis per Interrupt (Interruptanforderung) an den µP/µC anmelden. Dieser entscheidet über die Berücksichtigung dieser Anforderung und den Zeitpunkt des Starts der zugeordneten Interrupt- Behandlung (Interrupt-ServiceRoutine ISR) Unter Interrupt (lat. interruptus, Unterbrechung) die kurzfristige Unterbrechung eines laufenden Programms durch eine von der CPU abzuarbeitenden Befehlssequenz, die Interrupt Service Routine (=ISR, Unterbrechungsroutine). Anschließend wird durch eine Rücksprunginstruktion der ISR die Ausführung des Programms an der der Unterbrechungsstelle folgenden Instruktion fortgesetzt 27 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK