27
1 1 MIKROPROZESSOR MIKROPROZESSOR PROGRAMMIERUNG PROGRAMMIERUNG 2. 2. VORLESUNG VORLESUNG LV LV - - Nr. 439.026 Nr. 439.026 SS2007 SS2007 10101010101110101010101010101010101010010101010101010101010101001010101010101010101010101010101010101010101010101011111010100010101010101 01010101010101010101011011010101010101010101010101010101010101010101010101010101010101010101011010100100010101010110101010101010101010101 10010101010110101010111110101010101010101010101010101010111110101010101001010101011110110111110100101010100000110101111111011010101011011 HINTERBERGER M. 2007 INSTITUT FÜR ELEKTRONIK BIT

MIKROPROZESSOR PROGRAMMIERUNG 2. VORLESUNGalt.ife.tugraz.at/LV/upprog/Pdfs/Vorlesung_SS07_2.pdf · 2 LABORÜBUNG Gruppeneinteilung Mikroprozessor-Programmierung LU Anmeldung zur Laborübung

  • Upload
    vokiet

  • View
    222

  • Download
    0

Embed Size (px)

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 [email protected] 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