• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/132

Click to flip

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