View
222
Download
0
Category
Preview:
Citation preview
11
MIKROPROZESSORMIKROPROZESSORPROGRAMMIERUNGPROGRAMMIERUNG
2. 2. VORLESUNG VORLESUNG
LVLV--Nr. 439.026Nr. 439.026SS2007SS2007
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
BIT
22
LABORÜBUNGLABORÜBUNGGruppeneinteilung Mikroprozessor-Programmierung LU
Anmeldung zur Laborübung im TUGOnline erforderlich!
Für Terminwechsel bitte ein Email an stefan.noehammer@tugraz.at senden.
Eintägige Übung: Vormittag 8:30 bis 12:00 Uhr, Nachmittag 13:30 bis 18:00 Uhr
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Ansteuerung eines Schrittmotors:
33
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
PROZESSOR KLASSIFIKATION
MIKROPROZESSOR MIKROCONTROLLER DSP ASIC / FPGA
3 Phasen bei der Mikroprozessorentwicklung
HALBLEITERENTWICKLUNGu. FORTSCHRITT
ARCHITEKTURTECHNOLOGIE
4/8/16/32/64BIT 4/8/16/32/64BIT Digitale Signalverarbeitung -Programmierbare Logik
-Kundenspezifische IntegrierteSchaltung
44
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikBegriffsdefinitionen:
Ein Mikroprozessor (Microprocessor) ist die auf einem Mikrochip realisierte CPU eines Computersystems
Der Kern eines Computers ist die zentrale Verarbeitungseinheit (Central ProcessingUnit, 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.
55
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikBegriffsdefinitionen:
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
66
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikBegriffsdefinitionen:
Die Abkürzung ASIC steht für:Kundenspezifische Integrierte Schaltung (Application Specific Integrated Circuit (ASIC))
Ein FPGA (Field Programmable Gate Array) ist ein frei programmierbarerLogikschaltkreis
Unterschiede zu ProzessorenFPGAs/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.
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 gleicherTechnologie)
•höherer Energiebedarf
77
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
Mikroprozessor µP
Mikrocontroller µCDigitaler- Signal Prozessor
Programmierbare HardwareFPGA
ASIC
LEISTUNG
SPEZIALISIERUNGFLEXIBILITÄT
Im Vergleich …
88
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikPRINZIPIELLER AUFBAU EINER CPU (Central Processing Unit):
• 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
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
99
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
ALU
1. OPERAND 2. OPERAND
ERGEBNIS
FUNKTIONSAUSWAHL VOM STEUERWERK
FLAGS
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
ARITHMETISCHE-LOGIK EINHEIT:
1010
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
Arithmetische OperationenArithmetische Operationen (Addition, Subtraktion, (Addition, Subtraktion, Vergleich)Vergleich)Logische VerknüpfungenLogische Verknüpfungen (AND, OR, XOR)(AND, OR, XOR)VerschiebungenVerschiebungen um eine oder mehrere Bitstellen nach um eine oder mehrere Bitstellen nach links bzw. rechts (rotieren)links bzw. rechts (rotieren)
Aufgaben der Arithmetischen-Logik-Einheit:
Anmerkung: Die maximale Größe der ALU-Operanden definiert die Einstufung des Prozessors als 4-, 8-, 16-, 32-, 64 Bit- Prozessor
1111
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
UniversalregisterUniversalregister (General (General PurposePurpose Register)Register)–– Für die direkte Datenablage Für die direkte Datenablage –– Operanden für arithmetische und Operanden für arithmetische und
logische Operationen, Ergebnisse z.B. Akkumulatorlogische Operationen, Ergebnisse z.B. AkkumulatorAdresszeigerregisterAdresszeigerregister (Pointer bzw. Index Register)(Pointer bzw. Index Register)
–– Für Zugriffe auf Speicherstellen bzw. periphere Komponenten Für Zugriffe auf Speicherstellen bzw. periphere Komponenten und für eine flexible Berechnung von Operandenadressen und für eine flexible Berechnung von Operandenadressen
SpezialregisterSpezialregister (Special (Special FunctionFunction Register)Register)–– Befehlszähler (Programm Befehlszähler (Programm CounterCounter PC oder PC oder InstructionInstruction Pointer)Pointer)
Er enthält die Speicheradresse der als nächstes einzulesenden Er enthält die Speicheradresse der als nächstes einzulesenden BefehlsinformationBefehlsinformation
FlagregisterFlagregister (Flags)(Flags)–– Die Flags nehmen binäre Informationen über Sonderfälle bei der Die Flags nehmen binäre Informationen über Sonderfälle bei der
letzten letzten ALUALU--OperationOperation auf und stellen diese zur weiteren auf und stellen diese zur weiteren Auswertung bereit.Auswertung bereit.
StapelzeigerStapelzeiger ((StackpointerStackpointer SP)SP)–– Er adressiert den Ort, an dem Rückkehrinformationen bei Er adressiert den Ort, an dem Rückkehrinformationen bei
Prozeduraufrufen bzw. temporären Daten im Speicher abgelegt Prozeduraufrufen bzw. temporären Daten im Speicher abgelegt wurden.wurden.
ControlControl RegisterRegister–– Sie dienen der Konfiguration der Arbeitsweise des Prozessors, Sie dienen der Konfiguration der Arbeitsweise des Prozessors,
z.B. der Einstellung von Testmodi, der Funktion eines z.B. der Einstellung von Testmodi, der Funktion eines Coprozessors, der Behandlung von Coprozessors, der Behandlung von BreakpointsBreakpoints oder der oder der Arbeitsweise einer SpeicherverwaltungArbeitsweise einer Speicherverwaltung
Register: Darunter versteht man CPU-interne Speicherstellen, die im Gegensatz zum (externen) Speicher besonders schnell ansprechbar ist.
z.B. Register eines 80386 Prozessors
1212
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
ZeroZero-- FlagFlag–– Das Ergebnis der Verarbeitung ist genau 0Das Ergebnis der Verarbeitung ist genau 0
CarryCarry-- FlagFlag–– Bei der Verarbeitung ist ein Übertrag aufgetreten, Bei der Verarbeitung ist ein Übertrag aufgetreten,
d.h. das Ergebnis lässt sich nicht mit der d.h. das Ergebnis lässt sich nicht mit der vorhandenen Verarbeitungsbreite darstellenvorhandenen Verarbeitungsbreite darstellen
OverflowOverflow-- FlagFlag–– Zahlenbereichsüberschreitung Zahlenbereichsüberschreitung
ParityParity-- FlagFlag–– gerade/ungerade gerade/ungerade ParitätParität des Akkumulatorregister des Akkumulatorregister
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:
z.B. Flagregister eines 80386 Prozessors
1313
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikDas 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.
Steuerung prozessinterner AbläufeSteuerung prozessinterner Abläufe, d.h. die Organisation von Datentransporten , d.h. die Organisation von Datentransporten innerhalb des Rechenwerkes zwischen Registern, ALU und Datenbus innerhalb des Rechenwerkes zwischen Registern, ALU und Datenbus sowie die sowie die Auslösung und Auswertung von Operationen der ALUAuslösung und Auswertung von Operationen der ALU
Bereitstellung von AdressinformationenBereitstellung von Adressinformationen für Befehlsfür Befehls-- und Datentransporte über und Datentransporte über das Bussystemdas Bussystem
Steuerung externer AbläufeSteuerung externer Abläufe bei der Kommunikation des Prozessors mit dem bei der Kommunikation des Prozessors mit dem Speicher bzw. mit EingabeSpeicher bzw. mit Eingabe--/Ausgabe/Ausgabe--EinheitenEinheiten
Aufgaben des Steuerwerks:
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.
1414
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikFPU (Floating Point Unit)FPU (Floating Point Unit)
–– Die GleitkommaDie Gleitkomma--Einheit ist im Fall der x86Einheit ist im Fall der x86--Architektur fast schon ein eigener Prozessor mit Architektur fast schon ein eigener Prozessor mit RechenRechen-- und Steuerwerk und eigenen Befehlen. Eine CPU mit FPU kann Operund Steuerwerk und eigenen Befehlen. Eine CPU mit FPU kann Operationen auf ationen auf Gleitkomma RealGleitkomma Real--Zahlen wesentlich schneller ausführen als Prozessoren ohne FPU. Zahlen wesentlich schneller ausführen als Prozessoren ohne FPU. Während es zu den frühen Prozessoren der x86Während es zu den frühen Prozessoren der x86--Architektur (8086 bis i486SX) einen Architektur (8086 bis i486SX) einen eigenen, nachrüstbaren Coprozessor für Gleitkommaeigenen, nachrüstbaren Coprozessor für Gleitkomma--Operationen gab, ist diese Einheit seit Operationen gab, ist diese Einheit seit dem Intel i486DX in die CPU integriert. Auch die x86dem Intel i486DX in die CPU integriert. Auch die x86--Prozessoren anderer Hersteller haben Prozessoren anderer Hersteller haben heute alle eine integrierte FPU. heute alle eine integrierte FPU.
MMU (MMU (MemoryMemory Management Unit)Management Unit)–– Eine Komponente, die die Verwaltung des Hauptspeicherzugriffs übEine Komponente, die die Verwaltung des Hauptspeicherzugriffs übernimmt. ernimmt.
CacheCache --ControllerController–– Die Steuereinheit für den CacheDie Steuereinheit für den Cache--Zugriff und der eigentliche CacheZugriff und der eigentliche Cache--Speicher befindet sich im Speicher befindet sich im
allgemeinen ebenfalls auf der CPU. allgemeinen ebenfalls auf der CPU. CacheCache
–– Der Cache ist ein spezieller PufferDer Cache ist ein spezieller Puffer--Speicher, der zwischen dem Arbeitsspeicher und dem Speicher, der zwischen dem Arbeitsspeicher und dem Prozessor liegt. Damit der Prozessor nicht jeden ProgrammProzessor liegt. Damit der Prozessor nicht jeden Programm--Befehl aus dem langsamen Befehl aus dem langsamen Arbeitsspeicher holen muss, wird gleich ein ganzer BefehlsArbeitsspeicher holen muss, wird gleich ein ganzer Befehls-- oder Datenblock in den Cache oder Datenblock in den Cache geladen. Die Wahrscheinlichkeit, das die nachfolgenden Programmbgeladen. Die Wahrscheinlichkeit, das die nachfolgenden Programmbefehle im Cache liegen, efehle im Cache liegen, ist sehr groß, da die Programmist sehr groß, da die Programm--Befehle nacheinander abgearbeitet werden.Befehle nacheinander abgearbeitet werden.
1515
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikCODESPEICHER DATENSPEICHER
AD
EXTERNE I/O ERWEITERUNG
MIKROPROZESSOR
SYSTEMBUS
ADRESSBUS A0 … An
DATENBUS D0 … Dn
STEUERBUS
µP
MASTER SLAVE 1 SLAVE 2 ….SLAVE n
1616
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
Der Der AdressbusAdressbus stellt Zielstellt Ziel-- bzw. Quelladresse des Datentransfers bereitbzw. Quelladresse des Datentransfers bereitÜber den Über den DatenbusDatenbus werden die zu übertragenden Daten transferiertwerden die zu übertragenden Daten transferiertDie Signale des Die Signale des SteuerbusSteuerbus übernehmen die Koordinierung des übernehmen die Koordinierung des Datentransfers im Hinblick auf Richtung und Ablauf des DatentranDatentransfers im Hinblick auf Richtung und Ablauf des Datentransports.sports.
Systembus. Die Teilbusse Datenbus, Adressbus und Steuerbus bilden gemeinsam den Systembus des Mikrorechners
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.
1717
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
ZEITDIAGRAMM FÜR GETAKTETEN SYSTEMBUS
BUSTAKT
ADRESSE 1
DATEN
LESEZYKLUS SCHREIBZYKLUS
ADRESSE 2 ADRESSBUS
READ
DATENBUS
DATEN DATENBUS
WRITESYST
EMBU
S
STEUERBUS
1818
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
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 Der Master legt die Adresse der Speicherzelle bzw. der Peripheriekomponente auf den Adressbus (Adressierungsphase)Peripheriekomponente auf den Adressbus (Adressierungsphase)Mithilfe eines Steuersignals definiert der Master die Richtung dMithilfe eines Steuersignals definiert der Master die Richtung des es Datentransfers (z.B. /RD = 0 & /WR = 1… Lesen und mit /RD = 1 & Datentransfers (z.B. /RD = 0 & /WR = 1… Lesen und mit /RD = 1 & /WR = 0 /WR = 0 Schreiben)Schreiben)Die Daten werden bei einer Schreiboperation nun vom Master auf dDie Daten werden bei einer Schreiboperation nun vom Master auf den en Datenbus gelegt und von Speicher bzw. von der PeripheriekomponenDatenbus gelegt und von Speicher bzw. von der Peripheriekomponente te übernommen. Alternativ werden bei einer Leseoperation die vom Spübernommen. Alternativ werden bei einer Leseoperation die vom Speicher eicher bzw. von der Peripheriekomponente auf den Datenbus gelegten bzw. von der Peripheriekomponente auf den Datenbus gelegten Informationen vom Master eingelesen (Datentransferphase)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
1919
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
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
Wartetakte: (Wait-States)
2020
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
µCEPROM8x64k
LATCH
RAM8x64k
AD HIGH AD8-AD15
AD LOW AD0-AD7
ALE
CS_0
CS_1
R/W
CS R/W
CS R/W
ALE … ADDRESS LATCH ENABLE
CS_x … Chip Select
R/W … Read/Write
ADH … Adresse High Byte
ADL … Adresse Low Byte
DATEN … Datenbyte
ADRESSE HIGH BYTE AD8-AD15
DATEN BYTE D0-D7
ADRESSE LOW BYTE AD8-AD15
ZEITMULTIPLEXES ADDRESS-/DATENBUS 8-BIT SYSTEM:
ADH
DATA
ADL
ADH
DATA
ADL
2121
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
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-Architekturist, 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.
2222
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikMaschinenbefehl (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 zweitenBefehlsteil
•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.
2323
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2006 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
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
Befehlsbearbeitungszyklus
X
2424
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der Mikroprozessortechnik
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Vereinfachter Prinzipablauf der Befehlsabarbeitung:
1. Befehlsinformation einlesen
2. Befehl decodieren
Befehl
komple
tt ?
3. Lesen ergänzenderInformation
4. Befehlsausführunga) Bereitstellen der Datenb) Verarbeitung in ALUc) Ergebnisse ablegen
Instruction Fetch and Decode1. Einlesen des ersten Teils der Befehlsinformation (1.Teil des
Opcode)
a.) Ausgabe des Inhaltes des Program Counters PC auf dem Adressbus,
b.) Einlesen des Inhaltes der angesprochenen Speicherzelle in den Befehlsdecoder,
c.) Inkrementieren des PC um eine Adresseinheit.
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,
b.) Einlesen des Inhaltes der Speicherstelle in den Befehlsdecoder,
c.) Inkrementieren des PC,
d.) Wiederhole ab a.) bis Befehl komplett eingelesen ist.
Execute4. 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)
JA
NEIN
2525
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikPerformancesteigerung durch Befehlspipline
P1 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
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.
Probleme und Konflikte:
Eine Sprunganweisung oder ein Sprungbefehl dient in Programmiersprachen von Computerprogrammen dazu, die Ausführung an anderer Stelle fortzuführen, also Programmteile zu überspringen.
…vollständig geladene Pipeline
2626
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikPerformancesteigerung 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ßenwieder neu befüllt werden → Verzögerungszeiten entstehen, in denen der Prozessor untätig ist
2727
101010101011101010101010101010101010100101010101010101010101010010101010101010101010101010101010101010101010101010111110101000101010101010101010101010101010101101101010101010101010101010101010101010101010101010101010101010101010101101010010001010101011010101010101010101010110010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011
HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK
Grundlagen der MikroprozessortechnikGrundlagen der MikroprozessortechnikBedienung 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-/Ausgabe- Einheiten 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-Service-Routine 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
Recommended