Aufgabe 2 - Erweiterung um PIC und Interrupts

Ähnliche Dokumente
Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Übung zu Betriebssystembau (Ü BS)

Übung zu Betriebssysteme

i386 Interrupt-Deskriptortabelle (IDT)

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Teil 6: PIC Studiengang Technische Informatik (TI) Prof. Dr.-Ing. Alfred Rożek. nur für Lehrzwecke Vervielfältigung nicht gestattet

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Proseminar: Konzepte von Betriebsystem-Komponenten (KVBK)

Hinweise 80x86-Architektur

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

2

Intel x86 Bootstrapping

Mikroprozessortechnik Grundlagen 1

Übersicht. Busse. Übersicht. Bus, Bridge, I/O-Controller. Einleitung Hersteller-Konfiguration Manuelle Konfiguration Programmierbare Konfiguration

Interrupt. Externe Interrupts 0 und 1

Inhalt. Übungen zu Systemnahe Programmierung in C (SPiC) Implementierung von Interruptbehandlungen. Interrupts

Interruptverarbeitung

1,8V Flash and SRAM 28F3208W30

Virtueller Speicher und Memory Management

Forth-Vokabular. Vokabular für Attiny2313-Forth Stand: A: Assembler-Wort F: Forth-Wort C: Compiler-Wort

E Mikrocontroller-Programmierung

Mikrocomputertechnik. Thema: Serielle Schnittstelle / UART

Mikrocomputertechnik. 6. Exceptionhandling ( Ausnahmebearbeitung)

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

U5-2 Register beim AVR-µC

Lösung 5. Mikroprozessor & Eingebettete Systeme 1

Assembler. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Vorlesung 5: Interrupts

Ein- Ausgabeeinheiten

Lösungsvorschläge zur Übungsklausur. zum Kurs 1708 Technische Informatik II. im WS 01/02

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Betriebssysteme BS-V SS Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Arithmetische und Logische Einheit (ALU)

Hardware Logik-Analysatoren

Fachbereich Medienproduktion

Rainbow-OS Architekturseminar Thema: Interrupt-Controller

GdI2 - Systemnahe Programmierung in C Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2006 U4.fm

Bootvorgang des DSM-Systems Systems Plurix

Mikrocomputertechnik

Konzepte von Betriebsystem-Komponenten (KVBK) Schwerpunkt Linux

Übungen zu Grundlagen der Rechnerarchitektur und -organisation (ÜGRa)

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

"Organisation und Technologie von Rechensystemen 4"

Wie schreibt man ein Betriebssystem?

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

Betriebssysteme 1. Thomas Kolarz. Folie 1

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Betriebssysteme Vorstellung

Mikrocomputertechnik

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins

Übungen zu Systemnahe Programmierung in C (SPiC)

Datenübertragung per Direct Memory Access (DMA)

Name : Klasse : Punkte : Note :

Teil VIII Von Neumann Rechner 1

Microcontroller Selbststudium Semesterwoche 9

5. Weitere Konzepte. Ganz grob sieht das Innenleben des INTEL 8086 so aus:

VT-X. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Interrupts im Handbuch des ATmega128 gründlich lesen.

Just-In-Time-Compiler (2)

Betriebssystembau (BSB)

Rechnernetze und Organisation

Mikrocomputertechnik. Systembus. Ein Mikroprozessor kommuniziert über den Systembus mit Speicher und I/O

MikroController der 8051-Familie

Einleitung Die Pins alphabetisch Kapitel 1 Programmierung des ATmega8 und des ATmega

Mikrocomputertechnik. 5. Systembus R/W. Ein Mikroprozessor kommuniziert über den Systembus mit Speicher und I/O. Der Ablauf erfolgt in zwei Schritten:

Remote-Objekt-Überwachung. von Jan Schäfer und Matthias Merk

EDT-REFERAT Adressierungsarten

U2 Fortgeschrittene AVR-Programmierung. U2-1 Externe Interrupts des AVR-μC. 1 Flanken-/Pegel-Steuerung. 1 Flanken-/Pegel-Steuerung (2) 2 Maskieren

Hardware und Gerätetreiber

Vorlesung "Struktur von Mikrorechnern" (SMR)

Microcomputertechnik

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

STM32 - Schieberegister, SPI - u

Betriebssysteme (BS) IA-32. Überblick. das Programmiermodell der Intel Architektur. Historie der Intel x86 Prozessoren. 8086: Programmiermodell

CPU Speicher I/O. Abbildung 11.1: Kommunikation über Busse

Emulation. Dr.-Ing. Volkmar Sieh. Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg

Prinzipieller Aufbau und Funktionsweise eines Prozessors

serielles 8-Digit LED Display PL0061

Atmega Interrupts. Rachid Abdallah Gruppe 3 Betreuer : Benjamin Bös

GRUNDLAGEN DER INFORMATIONSTECHNIK. Übungen TEIL 1 RECHNER

Betriebssysteme (BS) Überblick: Einordnung dieser VL. VL 6 IA-32: Das Programmiermodell der Intel-Architektur. Historie der Intel x86-prozessoren

Hinweise C-Programmierung

Funktions-Blockschaltbild des Mikroprozessors 8085

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014

Selbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer

11. Die PC-Schnittstelle

Betriebssystembau (BSB)

Kopplung Interaktion. TI-Übung 6. Kopplung Datenübergabe. RS232 Datenfluss (1) Teilnehmer. Ein-/Ausgabe. Interaktionsarten

USB > I2C- Bus Modul. Startet den I2C-Bus. Daten einlesen NACK senden

Teil 1: Prozessorstrukturen

CPU CPU CPU RAM. 24. APIC Advanced Programmable Interrupt Controller

Aufbau eines Assembler-Programms

Übung 7. Mikroprozessor & Eingebettete Systeme 1

M-AX-16/C1 (Typ 37) Inhaltsverzeichnis M-AX-16/C1

Transkript:

Aufgabe 2 - Erweiterung um PIC und Interrupts Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Erweiterung um PIC und Interrupts (WS14/15) 1 15

Busse - Überblick technische Sicht Kabelbündel zur Verbindung von Komponenten physikalische Eigenschaften: Timing, Tristate, etc. Arbitrierung Topologie logische Sicht ermöglicht Kommunikation mehrerer Komponenten gezieltes Adressieren einzelner Komponenten Senden oder Empfangen eines Datums/mehrerer Daten ggf. weitere Kommunikationsaspekte: Speicher/IO, Menge der Übertragenen Informationen (1 Byte, 2 Byte),... R. Müller Erweiterung um PIC und Interrupts (WS14/15) 2 15

ISA-Bus (auszugsweise) 20 Adressleitungen 8 Datenleitungen Kommunikationssteuerung: MR: Lesen von Speicher MW: Schreiben an Speicher IOR: Lesen von IO IOW: Schreiben an IO ALE: Adresse gültig I/O CH RDY: IO-Daten an Bus weitere Leitungen: zur DMA-Steuerung Reset Masse, Versorgungspannungen: +5V, -5V, +12V, -12V CLK: Taktsignal... R. Müller Erweiterung um PIC und Interrupts (WS14/15) 3 15

Übertragungsbeispiel ISA-Bus (vereinfacht) ALE IOR A19-A0 0x0020 D7-D0 0x01 I/O CH RDY CPU liest von IO-Gerät mit Port 0x0020. Gerät antwortet mit Datum 0x01. R. Müller Erweiterung um PIC und Interrupts (WS14/15) 4 15

Relevanz für virtuelle Maschinen? Was hiervon wird für virtuelle Maschinen benötigt? R. Müller Erweiterung um PIC und Interrupts (WS14/15) 5 15

Übersicht serielle Schnittstelle generiert Interrupts Intel PIC 8259a verwaltet Interrupts Unterscheidung mehrerer Interruptquellen Prioritäten Ein-/Ausschalten von einzelnen Interrupts Zwischenspeicher Signalisieren der CPU IO-Dekoder übernimmt Adresssteuerung des PIC CPU empfängt Interruptsignal und führt Interruptbehandlung durch R. Müller Erweiterung um PIC und Interrupts (WS14/15) 6 15

Übersicht (2) CS PIC IO-Dekoder CPU CS PIC IRQ0 IRQ1 IRQ2... HB HB INT INT HB IRQ7... Host Bus HB serial INT R. Müller Erweiterung um PIC und Interrupts (WS14/15) 7 15

serielle Schnittstelle Nun auch Eingabe vom Gastsystem Eingabe: Lesen von Zeichen auf stdin Wenn Zeichen eingegeben Interrupt weitere Eingabe dann blockiert Lesen von Adresse 0x00 holt Zeichen ab und setzt Interrupt zurück ermöglicht Empfang von weiteren Zeichen R. Müller Erweiterung um PIC und Interrupts (WS14/15) 8 15

Intel PIC 8259a Dokumentation: http://pdos.csail.mit.edu/6.828/2005/ readings/hardware/8259a.pdf 8 Interrupteingänge IRQ 0-7 kann kaskadiert werden (hier nicht notwendig) diverse Priorisierungsvarianten Interrupts können einzeln maskiert werden Interrupts ausgelöst durch steigende Flanke (Edge-triggered) konstanten hohen Pegel (Level-triggered) einstellbar nur chip-weit später: einstellbar für einzelne Interrupteingänge R. Müller Erweiterung um PIC und Interrupts (WS14/15) 9 15

Intel PIC 8259a: Fully nested Mode 1. Anlegen eines Interrupts aktualisiert irr 2. Wenn nicht maskiert Interrupt an CPU 3. CPU führt Interrupt Acknowledge Zyklus aus 4. Interrupt mit höchster Priorität wird in isr kopiert Fully nested mode: Priorität gemäß Interrupt Nummer (wobei 0 höchste Priorität) 5. Entsprechender Interrupt wird aus irr gelöscht 6. Interruptvektor wird an CPU übermittelt 7. Wenn automatic end of interrupt : CPU-Interruptleitung wird bei Ende des Interrupt Acknowledge Zyklus zurückgenommen Ein Interrupt höherer Priorität kann einen Interrupt-Handler niedriger Priorität unterbrechen. R. Müller Erweiterung um PIC und Interrupts (WS14/15) 10 15

IO-Dekoder Intel PIC 8259a hat nur eine Adressleitung weiß nicht, ob er gemeint ist Chip-Select-Eingang signalisiert Daten für PIC IO-Dekoder steuert Chip-Select-Eingänge großer Demultiplexer IO-Adressbereich 0x0020-0x003f setzt Chip-Select des PIC R. Müller Erweiterung um PIC und Interrupts (WS14/15) 11 15

Interruptbehandlung der CPU (Wiederholung) 1. CPU führt Interrupt-Acknowledge-Zyklus durch und liest Vektor vom Bus. 2. Zustandssicherung: 2.1 EFLAGS Stack 2.2 CS Stack 2.3 EIP Stack 3. bei Interrupts: IF=0 4. Eintrag aus Interrupttabelle wird angesprungen 5. Behandlungsroutine wird ausgeführt 6. IRET 7. EFLAGS, CS und EIP werden vom Stack geholt und der Zustand somit wiederhergestellt R. Müller Erweiterung um PIC und Interrupts (WS14/15) 12 15

Da fehlt doch was...? Woher weiß denn der PIC, dass er einen Vektor auf den Bus legen soll? Wie findet die CPU denn die Interrupttabelle? R. Müller Erweiterung um PIC und Interrupts (WS14/15) 13 15

idtr Register IDTR enthält Zeiger auf IDT, sowie Größe der IDT in Bytes. lidt dient zum Laden des IDTR Aufbau Operand von lidt: Offset Inhalt Größe 2 Pointer auf Anfang IDT 32 Bit 0 Größe der IDT 16 Bit R. Müller Erweiterung um PIC und Interrupts (WS14/15) 14 15

IDT 4G Eintrag für Vektor 1 Offset 31-24 Offset 23-16 P DPL 0 D 11 IF 0 (reserviert) Segment Sel. 15-8 Eintrag für Vektor 0 IF Interrupts ausschalten (0)? D 1: 32 Bit Ziel, 0: 16-Bit Ziel DPL maximaler Ring P Eintrag gültig? Segment Sel. 7-0 Offset 15-8 Offset 7-0 7 0 0 Siehe auch: Intel 64 and IA-32 Architectures Software Developer s Manual, R. Müller Erweiterung um PIC und Interrupts (WS14/15) 15 15 Volume 1: Basic Architecture, Kapitel 5.11.