Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
132 Cards in this Set
- Front
- Back
Binär zu Hex
|
- Binärzahl in 4er Bit aufteilen, von rechts nach links
- Jede Vierergruppe in Hex umwandeln |
|
Zweierkomplement bilden
|
- Der positive Wert in binärer Form aufschreiben
- Invertieren - 1 dazu addieren |
|
Carry-Bit
|
- Bereichsüberschreitung, von grössten zum kleinsten oder umgekehrt
|
|
Overflow Bit
|
Kommt nur bei signed Zahlen vor. Überschreitung der zu den negativ/positiven Zahlen
|
|
Festkomma Zahlen
|
- Position des Kommas ist fest
- Mathematisch ist es kein Problem, nur mit der Darstellung |
|
Hierarchische Struktur
|
Ein einziger Busteilnehmer dominiert den Bus und erlaubt den andern Teilnehmern den Bus zu benützen. MC
|
|
Gleichberechtigte Struktur
|
- Jeder Busteilnehmer darf von sich aus Daten auf den Busgeben
- Zuerst immer eine Kontrolle ob der Bus frei ist |
|
Operation
|
Art der Verarbeitung
|
|
Operand
|
"Adresse" der zu verarbeitenden Daten
|
|
Harvard Architektur
|
- Strikte Trennung von Programm- und Datenspeicher
- Beide Speicher werden über getrennte Busse mit der CPU Verbunden |
|
Von Neumann Architektur
|
- Meisten Computersysteme heute
- Programme und Daten im gleichen Speicher - CPU, Speicher, I/O |
|
CPU
|
- Zentraleinheit
- Steuert den zeitlichen Ablauf des esamten Systems - Führt alle Operationen aus |
|
Busse
|
- Datenbus
- Addressbus - Steuerbus |
|
Datenbus
|
- Verbindungsleitungen zu Daten
- Befehle, Operanden und Resultate - Bidirektional - Verbindet ALU, Steuerwerk, Speicher und I/O |
|
Adressbus
|
- Verbindungsleitungen für Adressen
- Dienen zur anwahl einer Speicherzelle |
|
Steuerbus
|
- Verbindungsleitungen für Steuersignale, Datenrichtung beispielsweise.
|
|
ALU
|
- Arithmetic Logical Unit
- Verarbeitet Daten in Wortbreite parallel - Arithmetische Operationen - Logische Operationen - Besitzt Akkumulatoren an den Enden, für Zwischenspeicher |
|
Steuereinheit
|
- Stellt korrekten Ablauf der Instruktionen und die Steuerung des Adress- und steuerbus sicher
|
|
Instruktionsregister
|
- Enthält den Befehl, der ausgeführt wird
|
|
Statusregister
|
- CCR (Condition Code Register)
- Informationen über den momentanen Zustand der CPU - C, Carry - V, Overflow - Z, Zero - N, Negative |
|
Registerblock
|
- Zwischenspeicher für Daten und Konfigurieren des Prozessors
- Viel schnelleler Zugriff |
|
CPU-Register
|
- Akkumulatoren
- Index- und Adressregister - Stackpointer - Programmcounter |
|
Akkumulatoren
|
- Operandenregister und Resultatregister der ALU
- 8 Bit |
|
Index- Und Adressregister
|
- Vorallem für komplexere Adressierungsarten
- Adressen von Daten |
|
Stackpointer
|
- Zeigt auf aktuelle Position im Stack
|
|
Programmcounter
|
- Immer vorhanden
- Zeigt auf die Adresse der nächst auszuführenden Instruktion |
|
Datenbus Detaillierter
|
- Werden Daten übertragen
- Datenbusbreite wie Wortlänge - Bidirektional - HCS08 8Bit |
|
Adressbus Detaillierter
|
- Wohin werden die Daten auf dem Adressbus transferiert
- 16 Bit -> 2^16 -> 64k -> 65535 - UNIDIREKTIONAL |
|
Steuerbus Detaillierter
|
- Steuersignale
- RESET, INT, IO/M |
|
Arbeitsweise MC
|
1. Befehl Holen
2. Dekodierung (Befehlserkennung, Operation erkennen) 3. evtl. Operanden holen 4. Durchführung des Befehls 5. Festellen der nächsten Befehlsadresse |
|
Befehlszyklus
|
Befehlszykluns ist die ganze Arbeitsweise des MCs, 1-5
|
|
Maschinenzyklus
|
- Ein Befehlszyklus besteht aus mehreren Maschinenzyklen
- Mehrere QuarzTakte |
|
Disketten
|
- Daten auf Spur-Ringe unterteilt, welche Sektoren aufgeteilt sind
|
|
Harddisk
|
- Wie Disketten, Spur-Ringe, die Sektoren haben
- Besteht aber aus einem Stapel von mehreren Scheiben |
|
Magnetbänder
|
- Grosse Datenmengen
- Backup - parallele Daten werden in serielle Bitströme umgewandelt |
|
interne Arbeitsspeicher
|
- ROM / RAM
- kleine Datenmengen - Schneller Zugriff - Zugriff zu einer beliebigen Speicherzelle - Kosten direkt von Speicherkapazität abhängig |
|
ROM
|
- Read Only Memory
- maskenprogrammierbarer Festwertspeicher - |
|
PROM
|
- Programmable Read Only Memory
- Programmierbarer Festwertspeicher - Kann mit Progrmmiergerät gespeichert werden |
|
EPROM
|
- Erasable Programmable ROM
- kann gelöscht werden, durch längere Bestrahlung mit UV Licht - Wiederverwendbar |
|
EEPROM
|
- Electrically Erasable Programmable ROM
- Elektrisch löschbar, beeinflusst alle Speicherzellen |
|
EAROM
|
- Eletrically Alterable ROM
- elektrisch umprogrammierbar - Einzelne Speicherzellen können verändert werden |
|
REPROM
|
- Reprogrammable ROM
- Wie EPROM |
|
PEROM
|
- Programmable and Erasable ROM
- EEPROM ausser dass es nur noch ein 5V Speisung benötigt |
|
FRAM
|
- Nonvolatile Ferroeletric RAM
- Random Access Memory - Behält Daten bei Spannungsverlust!! - Langsam |
|
SRAM
|
- Static Random Access Memory
- Schreiben und Lesen gleich schnell möglich - Verliert Speicher beim Spannungsausfall - Schneller und teurer als Dynamisches Ram - Informationen in FlipFlops |
|
DRAM
|
- Dynamic RAM
- Transistoren speichern Werte - Billiger als SRAM - Sind langsamer als SRAM, da Refresh zyklus ca 2ms. well transisotren Ladung verlieren |
|
MRAM
|
- Magneto-resistive RAM
- Aktueller Trend - Magnetische Ladungselemente - Nicht Flüchtig - RAM mit ROM eigenschaft! |
|
Steuersignale
|
- CE, CS -> Chip Enable, Chip Select
- WE, WR -> Write Enable |
|
Zugriffszeit
|
Bis Daten zur verfügung stehen, oder Daten geschrieben sind
|
|
Zykluszeit
|
Zeitspanne zwischen Beginn zweier zyklisch wiederkehrenden Vorgängen
|
|
Delay-Time
|
- Zeit nach einem Ereignis, bis der Flankenwechsel auf 1 geht
|
|
Storage-Time
|
- Ausschaltzeit
- Delaytime bis Flanke auf 0 geht |
|
Transition time
|
- Zeit für Zustandswechsel
- Flanke rauf/runter |
|
Setup-Time
|
- Wielange muss ein Signal vor einem kritischen Ereignis bereitstehen
|
|
Hold-Time
|
- Wielange nach einem kritischen Ereignis mus ein Signal noch anliegen
|
|
Direkte I/O Leitungen
|
- Leitungen werden meist auf 8bzw16 Bits zusammengefasst (Ports)
- Direkte Steuerung, Abfragen |
|
I/O über Register
|
- Wie normale Speicherzelllen, einfach dass nun I/O einheiten angesprochen werden
|
|
I/O Controller
|
- Über einen zusätzlichen Kontroller
- DMA |
|
Isolated I/O
|
- Trennung von speicher und I/O Teil durch Steuersignale
- Gesamtadressenbereich des Speichers (64K) wird nicht eingeschränkt |
|
Memory-Mapped I/O
|
- I/O Bausteine wie Speicherzellen behandeln
- Adressen für Speicherbereich werden eingeschränkt |
|
Memory Map
|
- Speicherbelegungsplan
|
|
Maschinensprache
|
- Binäre Befehle
- Nicht lesbar, wartbar |
|
Assembler
|
- Mnemonics, codewörter
- Assebmler übersetzt die Mnemonics in Maschinensprache - Wartbarer - Label; Befehl; Operand; Kommentar - An Prozessor gebunden |
|
Hochsprache
|
- Übersichtlich, einfach, wartbar, testbar, etc...
- Nicht sehr effizient - Langsamer - Portierbar, nur spezieller Compiler muss angewendet werden... |
|
IndexRegister H:X
|
- 16 Bit
- Besteht aus zwei 8Bit Register H:X - H -> High |
|
StackPointer
|
- Sp
- 16 Bit |
|
Programmzähler PC
|
- Programmcounter
- 16 Bit - Immer Adresse des nächsten aus dem Programmspeicher zu ladenden Bytes enthält |
|
StatusRegister
|
- 8 Bit
- hat 5 Bits belegt - C-Carry - Z-Zero - N-Negative - H-HalfCarry - I-IRQ - V-Overflow |
|
Ports
|
- A,B,C,D,E,F,G
- 8 Bit - alle Ports Bidirektional ausser G0 - PTxDD -> Data Direction (1-> ausgang) |
|
Adressierungsarten
|
- Direct (DIR)
- Extended (EXT) - Immedaite (Imm) - Indexed - Inherent (INH) - Relativ (REL) |
|
Extended (EXT)
|
- LDA $100A
- Beliebiger Speicherplatz kann adressiert werden |
|
Direct (DIR)
|
- Wie Extended, aber nur 8Bit Opcode
- LDA$08 |
|
Immediate (IMM)
|
- Der Mitgegebene Wert ist keine Adresse, sondern eine Konstante!
- LDA #08 / LDA #100A |
|
Indexed
|
- Adresse wird mit IndexRegister oder Stackpointer gebildet
- Zusätzlich können die Adressen noch inkrementiert werden - 7 Unterarten |
|
Inherent (INH)
|
- Befehle die Adressen bereits im Befehl haben
- INCA |
|
Relative (REL)
|
- Bei Sprungbefehlen
- BNE $EE - Wenn, sonst am nächsten weiterfahren... |
|
Daten in CPU Register Laden
|
- Load Befehle (LDA)
- Clear Befehle, 0 Laden (CLRA) - PULL Befehle, vom Stack holen (PULA) |
|
Von CPU Register an bestimmte Stelle speichern
|
- Store Befele ( STA)
- PUSH Befehle, auf Stack (PSHX) |
|
Transfer Befehle, Transfer zwischen CPU Register
|
- TAP, TAX, TSX
- Spezialfall MOV Op1 Op2: ohne CPU Register, direkt mit 2 Speicher adressen |
|
16 Bit Addition/Subtraktion
|
- Zuerst alles mit dem Low Byte, dann mit dem High Byte machen!
- LDA LowByte1 - ADD LowByte2 - STA ResLow - LDA HighByte1 - ADC HighByte2 (Carrybit) - STA ResultHigh |
|
Bit-Maskierung
|
- Einzelne Bits setzen oder löschen
|
|
Einzelnes Bit löschen
|
- Mit dem Logischen AND Befehl
- AND ... |
|
Einzelnes Bit setzen
|
- Mmit dem logischen OR Befehl
- ORA ... |
|
Rotationsbefehle
|
- Carry Bit ist das 9te Bit,
- ROR -> Rechtsrotation - ROL -> Linksrotatiton |
|
Schiebebefehle
|
- Herausfallendes Bit geht ins Carryflag
|
|
Programmverzweigungen
|
- Sprungkriterium HCS08 immer Statusbits
- BCC -> Springe wenn CarryBit gesetzt - BRCLR/BRSET -> Es wird gesprungen falls bit x den Wert 0 hat oder den Wert 1... Bitmaskierung anwenden! -> Diese beiden Befehle funktionieren nurmit DIR Adressierung |
|
Unterprogramm Aufruf
|
- BSR, JSR
- Schreiben rücksrpungadresse auf den Stack. - Schreibt die Adresse des neuen Befehls in den CP |
|
Rücksprung vom Unterprogramm
|
- RTS
|
|
Stack
|
- LIFO
- Wächst gegen Adressrichtung - SP zeigt immer auf nächst leeres Element - Stack muss immer initialisiert werden |
|
Stack Befehle
|
- PSHA
- PSHX - PULA - PULX |
|
Context-Save bei Unterprogrammen
|
- Programmcounter wird automatisch gespeichert
- Die CPU Register müssen explizit gemacht werden: AKKU, HX --> PSHA, PSHH, PSHX, PULX, PULH, PULA |
|
Parameterübergaben
|
- in Registern (Value)
- in festen Speicherzellen (Value) - mit Adressübergabe von Datenbereichen (Reference) - Stack (Beides) - Hauptprogrammbereich (Beides) |
|
Einfache Verschachtelung Unterprogramme
|
Verschiedene Unterprogramme rufen sich, ausgehend von einem hauptprogramm nacheinander auf. Wobei Statusretten und Parameterübergabe funktioniert wie erklärt
|
|
Reentrannte Unterprogramme
|
- Wiedereintrittsfeste Unterprogramme
- Wenn bsp. ein Unterprogramm durch ein Interrupt unterbrochen wird - |
|
Rekursive Unterprogramme
|
- Ein Unterprogramm ruft sich selber auf
|
|
Interrupts
|
- Ausnahmebehandlung
- Eventhändling, es geschieht etwas, darauf wird reagiert.. |
|
Polling
|
- Es wird aktiv geschaut, ob ein Resultat bereits vorliegt.
|
|
Prinzipielle Funktionsweise Interrupts
|
- Interrupt festellen, am ende jedes Befehlszyklus wird Interrupt Leitung überprüft
- ISR Aufrufen - Status Retten, ausser dem H Regsiter! - Quittierung des Interrupts - > Solange die Meldeflags (Overflow flag timer) gesetzt sind, wird der Interrupt gleich wieder ausgelöst, deshalb muss das beim Interrupt gelöscht werden |
|
Interrupt Vektoren
|
- Sind Pointer auf die Startadressen der Methoden
|
|
Autovektoren
|
Jedem Eingang oder jeder Bitkombination der Eingägnge ist ein Interrupt Vektor fest zugeordnet
|
|
Non-Autovektoren
|
Vektoren sind variabel zugoeordnet
|
|
Interrupt HCS08
|
- Interrupt Vektoren im letzten Bereich des Speichers, Flash
- Spiegelt in den Bereich $1033..$107F - Immer nur 1 Interrupt |
|
Folgende Schritte für Interrupts
|
1 Interruptvektoren definieren: PRM File
2. Freigabemechanismen festlegen, Enable Bits etc. 3. Stack definieren und im Hauptprogramm initialisieren 4. Ev. Flags vor Freigaben löschen, damit Interrupts nicht sofort ausgelöst werden 5. ISR programmieren 6. Vor dem Schluss der ISR IE Flag löschen 7. In Assembler abschliessen mit RTI 8. Enableinterrupts |
|
Echtzeitsysteme
|
- Ergebnis muss logisch korrekt sein
- Ergebnis muss pünktlich zur Verfügung stehen |
|
harte Echtzeitanforderung
|
- Überschreitung der Antwortzeit ist ein Fehler
- Liefern Resultate immer innerhalb vorgegebener Zeitschranken |
|
weiche Echtzeitanforderung
|
- Das System muss in der angegebenen Zeitspanne reagieren, nicht das vollständige Ergebnis liefern
- Bsp. VideoKonferenz, wenn einige Bilder nicht vollständig sind, ruckelt das bild... |
|
Ereignisgesteuert (Echtzeitsysteme)
|
- Auf ein Ereignis von aussen wird sofort reagiert
- Geringer Zeitverlust auf das Ereignis - Wenn viele Ereignisse nacheinander -> Überlastung |
|
Zeitgesteuert (Echtzeitsysteme)
|
- Vorher festgelegter Zeitplan
- Keine Überlastungen - Hoher Planungsaufwand |
|
Kernel
|
- Kernkomponente des OS
- Prozessverwaltung - Speicherverwaltung - HW Unterstützung |
|
Scheduler
|
- Task an CPU zuteilen oder unterbrechen
- Verantwortlich für Ablauf des Programms |
|
Task
|
- Prozess, Thread
- in sich abgeschlossener Programmteil - übernimmt "parallel" zu anderen Threads eine Aufgabe |
|
kritischer Abschnitt
|
- Es dürfen in diesem Abschnitt keine Unterbrechungen stattfinden
- Massnahmen: Semaphoren, Mutex, Eventflags, etc. |
|
Ticks
|
- Impuls nach genauen Zeitabständen
- Bei Echtzeit OS |
|
Semaphor
|
- Ampel
- Tasksynchronisation |
|
uCOS-II
|
- Echtzeitbetriebssystem
- Skalierbar - Viele mcs - Betriebssicherheit und Robustheit - Sogar in Flugzeuganwendungen |
|
I2C
|
- Serieller synchroner Zweidraht bus
- Hierarchisches Bus-System, über das mehrere ICs miteinander kommunizieren können - echter bidirektionaler Zweidraht Bus - Master/Slave Architektur - SCL - SDA |
|
SCL
|
- Serial Clock Line
- Bidirektional - Pullup Wiederstand auf HIGH - Wenn High, dann frei |
|
SDA
|
- Serial Data Line
- Bidirektional - Pullup Wiederstand auf HIGH - Wenn High, dann frei |
|
IIC Standardkommunikation
|
1. Start Signal generieren
2. Slave Adresse übermitteln 3. Daten übermitteln 4. Stop Signal generieren |
|
IIC: Startsignal
|
- Wenn SDA/SCL frei sind (beide auf 1) dann los
- Startsignal: SDA geht auf 0, wenn SCL 1 ist - Transfer beginnt |
|
IIC: Slave Adresse übermitteln
|
- Slave Adresse 7Bit + R/W Bit
- R/W Bit -> 1 Master sendet, 0 Slave sendet - Adressierter Slave sendet ACK SDA-> 0 |
|
IIC: Daten übermitteln
|
- Jedes folgende Byte ist 8 Bit lang
- Pro Clock-Puls wird 1 bit übertragen |
|
IIC: Stop
|
- Am Schluss vom Master
- SCL high & SDA steigende Flanke - Wenn kein Stop sondern gerade wieder ein Start -> Restart |
|
HCS08: IIC
|
1. IIC1F Frequenz, die der Master erzeugen soll
2. IIC1C- > Controlregister (Power, IE, MasterSlave, Transferrichtung, ACK, Restart) 3. IIC1D -> Fürs Senden und Empfangen der Daten 4. IIC1S -> Status register, Falgs 5. Wird Prozessor als Slave betrieben, braucht er eine Adresse (IIC1A) |
|
Scheduler Funktionsweisen
|
- Strategien (First Come, First Serve, Shortest Job First)
- Preemptiv (Scheduler managed) - Kooperativ (task muss systemressourcen selber angeben) |
|
uCOSII: Waiting
|
- Task wartet auf Ereignis
- Wenn Eintritt dann Ready |
|
uCOSII: Ready
|
- Bereit zum Laufen
- Wartet auf Scheduler |
|
uCOSII: Dormant
|
- Schlafend
- Task ist vom Scheduler nicht mehr aufrufbar |
|
uCOSII: Running
|
- Läuft
|
|
uCOSII: ISR-Running
|
- Wenn ein Interrupt eintritt, wechselt das OS in diesen Zustand
|
|
uCOSII: Starten eines Tasks
|
OSTaskCreate(pd, pdata, ptos, prio)
- pd = Pointer auf Funktion - pdata = Pointer auf Daten - ptos = Pointer auf Stack - Priorität |
|
uCOSII: Timerverwaltung
|
- OSTimeDly(100) Wartet 2s
- OSTimeDlyHMSM(1,0,0,0) wartet 1h |