Mikroprozessortechnik Kapitel 1 und 2
Mikroprozessortechnik an der ZBW ST.Gallen
Mikroprozessortechnik an der ZBW ST.Gallen
-
- 1 / 40
-
Lernkarten
Was ist ein Blockschaltbild ?
Darstellung von Datenverarbeitungsanlagen (Single Chip, Computer, Grossrechner)
Hauptbestandteile einer EDV-Anlage
-Zentraleinheit ( CPU Central Processing Unit )
Leit- oder Steuerwerk ( control unit)
Rechenwerk ( ALU Arithmetic Logic unit)
Adresswerk ( address unit)
-Speicher
Hauptspeicher, Massenspeicher, Cache
- Eingabegerät
Tastatur, Digitaleingänge, Leser ( Barcode, Lochstreifen)
-Ausgabegerät
Bildschirm, Drucker, Plotter
On-line-Peripherie
Rechnerabhängige Ein- und Ausgabegeräte
- reine Eingabe : Tastatur, Leser, Geber
-reine Ausgabe : Bildschirm, Drucker, Plotter, Stanzer
- Dialog : Terminal, Computer, Modem, Teletype
-Speicher: Platten-, Bandspeicher
Offline Peripherie
Rechnerunabhängige Erfassungsgeräte
Lochkarten, Sortierer, Stanzer
Aufgabe Rechenwerk
Im Rechenwerk werden alle mit Daten notwendigen Operationen durchgeführt .Ein Rechenwerk besteht im einfachsten Fall aus einem Verknüpfungsnetzwerk z.B einem Addierer und zwei Registern ( Akkumulator) in denen die zu verarbeitenden Daten gespeichert werden.
Aufgabe Leitwerk
Das Leitwerk steuert den Ablauf der Datenverarbeitung indem es nacheinander angebotene Befehle in einer Reihe interpretiert.
Daher in einer Kodierschaltung in die auszulösenden Steuerfunktion übersetzen.
Aufgabe Speicherwerk
Im Speicherwerk bestehend aus Adressierwerk und Hauptspeicher, werden alle Daten und Befehle, die für die Bearbeitung eines Problems in der EDV-Anlage erforderlich sind, in adressierten Speicherzellen abgelegt. Die einzelnen Befehle liegen in folgerichtiger Reihenfolge in aufeinanderfolgenden Adressen, so dass sie der Reihe nach vom Leitwerk abgerufen werden können.
Lösung eines EDV Problems
Befehlszyklus
1. Eingabe der Befehlsfolge in das Speicherwerk
2. Eingabe der Anfangswerte in das Speicherwerk
3. Start- Abarbeiten der Befehlsfolge
3.1 Das Leitwerk erhält den ersten Befehl aus bekannten Speicheradresse und interpretiert ihn.
3.2 Das Leitwerk gibt der durchzuführenden Operation entsprechende Steuersignale an die beteiligten Einheiten.
3.3 Das Leitwerk ermittelt die Speicheradresse für die nächsten Befehle.
3.4 Das Leitwerk fordert den nächsten Befehl an
4. Ausgabe der Ergebmisse in die peripheren Ausgabegeräte
5. Stoppen der Einrichtung
Was ist ein Programm
Eine Reihe von Befehlen die eine EDV-Anlage nacheinander abzuarbeiten hat
Geradeausprogramm
Ein Geradeausprogramm läuft in einer festgelegten (ununterbrochenen) Reihenfolge ab
Schleifenprogramm
In einem Schleifenprogramm sind während des Programmzyklus Verzweigungen möglich.Die Erfüllung einer Bedingung bestimmt den weiteren Programmablauf nach der Verzweigung.
Unterprogramm
Der Aufwand beim erstelln eines Programms kann - deutlich reduziert werden. Mit hilfe von Unterprogrammen sie lösen dan häufig auftredende Probleme. Zum Beispiel Ein/Ausgaberoutinen, Mathematik - und Formatierroutinen
Transfehrbefehl
Sie veranlassen Datentransport zum Beispiel:
-vom Eingabekanal in eine bestimmte Speicheradresse im Hauptspeicher
-von einer Speicheradresse in das Rechenwerk
- vom Rechenwerk in eine Speicheradresse
-von einer Speicheradresse in den Ausgabekanal
Logische und arithmetische Befehle
Sie veranlassen eine Operation im Rechenwerk
-Addition
-UND-Verknüpfung
-Komplementbildung für die im Rechenwerk stehende Gösse
Sprungbefehle
Sie veranlassen ein Springen auf eine andere als die fortlaufende Adresse. Man unterscheited
-unbedingte Sprungbefehle : Sie lösen in jedem Fall ein Springen auf eine vorgegebene Befehlsadresse aus
-bedingte Sprungbefehle : Sie lösen ein Springen auf die vorgegebene Befehlsadresse nur dann aus, wenn eine Bedingung erfüllt ist Andernfalls wird das Programm mit dem im Speicher auf den bedingten Sprungbefehl folgenden Befehl fortgesetzt.
Regiebefehle
Die Befehle die Einstellungen am Rechenwerk vornehmen
-Darstellungsformat :Binär/BCD , Umrechnungshilfen
-STOP-Befehl versetzt ein Rechenwerk, das keine Befehle zu erledigen hat, in einen Stromsparzustand
-Befehle für Modus oder Achitekturumschaltung : Supervisor/User oder bei Intel Real/Protected/Virtuell-Modus
Was ist ein Computer oder Rechner ?
Computer oder Rechner sind Maschinen, die in der Lage sind auf Grund von vorgegebenen Daten und Anweisungen arithmetische und logische Operationen durchzuführen und numerische Ergebnisse und Entscheide zu liefern
Drei Arten von Rechner?
Analogrechner, Digitalrechner, Hybridrechner
Was macht ein Übersetzer (Assembler)
Der übersetzer brauchen wir nur wenn wir einProgramm für eine Machine schreiben also nicht beim Programmieren einer Website. Der übersetzer wandelt unseren Source Code in maschinenverständlichen Zahlencode um.
Geschichte Mikroprozessor
Früher wurde wen es ein Problem gab in der Digitaltechnik spezifisch dafür eine Schaltung entwickelt mit Transistoren. Später wurden dan Schaltkreise dafür verwendet mit mehreren Schaltgruppen.Noch ein bischen später speicherte man mit hilfe von IC Fertigungstechnik Grundfunktionen auf einem Chip. auf kosten der Geschwindigkeit.Diese Steuerung konnte erst ganz simple sachen wie wenn I1 und I2 High dann Ausgang 5 Low, Stückzähler waren bereits fortgeschritte. Programmiere forderten dann bessere uP mit mehr Funktionen in der Hardware weil er dann schneller wurde und teils Probleme kann man nur in der Hardware lösen.
Was ist ein Algorithmus ?
Eine Lösung für ein Problem das in einer Schritt für Schritt Prozedur erarbeitet wurde.
Was ist Programmieren?
Für ein Problem ein Algoryihmus zu entwerfen und den in der richtigen Sprache dem Computer mizuteilen
Was ist ein Programm?
Mehrere Machinenbefehle zu einer Sequenz zusammengefasst um die Lösung einer Aufgabe zu beschreiben.
Was macht ein Übersetzer (Assembler)?
Er wandelt unser Programm in Maschinenverständliche Zahlencode um.
Wichtige Aufgaben eines Betriebssystems?
-Steuerung der verschiedenen Programme die im System sin
-Verwaltung von Betriebsmitteln(CPU,Memory,Peripherie,usw.)
-Zuteilung von Betriebsmitteln
-Unterhalt von Datenbeständen (Speichern, Schützen)
Bereitstellung von Hilfsprogrammen (Compiler, Linker)
Wartungsprogramm ( Selbsttest, Funktionstest)
Aufbau eines modernen Computersystem ?
Hardware (Hardwareschnittstelle)
Firmware
Betriebsystem (Betriebssystemschnittstelle)
Dienstprogramm (Anwenderschnittstelle)
Anwenderprogramm (Benutzerschnittstelle)
Single User-Betriebssystem
Es wir ein Benutzer unterstützt mindestens Ein-/Ausgabe jedoch nicht unbedingt Massenspeicher Multitasking
Multi User-Betriebsystem
Es werden mehrere Benutzer unterstützt die CPU-Zuteilung kann aber unterschiedlich sein. Normalerweise ist auch Multittasking möglich aber eventuell nicht allen Benutzern erlaubt.
Multitasking oder Multiprogramming-Betriebsystem
Beide Begriffe beschreiben dasselbe. Ein Task (auch Prozess) ist ein laufendes Programm. Das Multitaskingsystem kann nun mehrere Tadk gleichzeitig verwalten.
Realtime Betriebssystem
So ein System ist in der Lage auf ein äusseres Ereigniss innerhalb einer bestimmten zu reagieren z.B einen Interrupt. Das gegenteil ist das Batch- oder Stapel-Betriebsystem das nicht dynamisch ist. Es kann erst auf ein Befehl reagieren nach abarbeiten eines Stapels.
Batch Betriebssystem (Stapelbetriebsystem)
Alles läufts sequentiell ab. Typisches Beispiel sind Computern mit Lochkarten und Lochstreifen
Multiprozessor Betriebsystem
Es werden mehrere Prozesse verwaltet, ihre Zusammenarbeit synchronsiert und die gemeinsamen Resourcen verwaltet und zugeteilt. Heuzutags haben fast alle Computer mehrere Prozesser Dualcore (2) Quadcore (4)
Job Scheduling oder Dispatching
ist die zuteilung der CPU an einen neuen Prozess (Task) mit Z.B höchster Priorietät oder der ersten Stelle in der Warteschlange der lauffähigen Prozesse, da ja nur ein Prozess zu einem Zeitpunkt die CPU zur verfügung gestellt bekommt.
Task Prozesse
Prozesszustände
Ein Prozess ist ein lauffähiges Programmteil, der sich mit anderen Prozessen um die CPU streitet. Dadurch kann ein Prozess folgende Zustände einehmen.
- nicht existen (interessiert BS normalerweise nicht)
-wartend, auf ein Ereigniss z.B. Interrupt, Daten von I/O- Kanal
- bereit rechenbereit - es fehlt nur die CPU (Zeit)
-rechnend, also im Prozessor laufend (nur ein Prozess)
Segment
Ein Segment ist ein durchgehender Abschnitt im Speicherbereich, der vom Betriebssystem als Ressource einem zugeteilt werden kann. Dieser Begriff fällt sehr oft im Zusammenhang mit der Memory Management Unit, die für diese Segmente Adressumrechnungen vornimmt und so einem Programm mehr logischen Speicherplatz vorschwindeln kann, als physikalisch vorhanden ist; man spricht dan auch von virtuellem Speicher.
Semaphor
Ein Semaphor lässt sich mit einer Ampel vergleichen, die eine kritische Zone( wo sich nur einer zu einem Zeitpunkt aufhalten darf) schützt.Ist die Ampel auf Grün so kann die Zone Betreten werden und die Ampel wird auf Rot gestellt (dieser Vorgang MUSS unteilbar sein und wird von der CPU oder vom BS sichergestellt), ist die Ampel rot muss man warten.
Events
In neueren Betriebssystem tauchen länger je mehr Events auf. Dabei handelt es sich im wesentlichen um umgebaute Semaphore die z.B eine bestimmte Anzahl in einer kritischen Zone zulassen können.
Pipeline
Eine Pipeline ist eine Art Daten zu verschicken zwischen Prozessoren durch einen Virtuellen I/O Kanal der sich wie ein richtiges Peripherie Gerät verhält. Das hat für den Anwender den Vorteil, dass es für das Programm egal ist ob die Daten von der Tastatur, der Disk oder von einem anderen datenverarbeitenden Prozess kommen.
Signal
Das Signal stellt ein Software-Interrupt dar. Damit ist es möglich einem Prozess asynchron einen Zustand mitzuteilen. Damit wird es möglich ein Programm sehr wirklichkeitsnah zu schreiben.Der Nachteil ist allerdings das man sich die selben Probleme einheimst wie bei der Interruptprogrammiereung.
Vorgehen bei der Etwicklung einer Software für ein Computersystem
2 Vorgehensweise.
1. Self Hosted Programm direkt auf der Applikattionsmachine entwickeln. Vorteil man kann das Programm sofort ausprobieren. Man hat auch diesselbe Programmierwerkzeugezur Verfügung. Das Programm hat dasselbe ausehen wie das Target Zielsystem.
2. Cross Entwicklung Programm wird auf einer anderen Maschine Entwickelt. Um das Programm testen zu können muss man den Programmkode zuerst ins Zielsystem oder Target übertragen. Wir häufig in der Industrie benutzt.