Interrupts Seminar Rechnerarchitektur



Ähnliche Dokumente
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

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

Einführung in IP, ARP, Routing. Wap WS02/03 Ploner, Zaunbauer

Tag 2 Eingabe und Interrupts

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

Seite Wireless Distribution System (Routing / Bridging) 3.1 Einleitung

SNr bis mit Gigabyte AMD K7 Mainboard. Konfiguration 7 und 7M

Teil VIII Von Neumann Rechner 1

Aufgabe 2 - Erweiterung um PIC und Interrupts

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Allgemeine USB Kabel Installation und Troubleshooting

(1) (2) (3) (4) (5) (6) (7)

5. PC-Architekturen und Bussysteme

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

web: CAD/CAM-Systeme Entwicklung Beratung Vertrieb Kundenbetreuung Service für Werkzeugmaschinen

Serielle Kommunikation mit dem Arduino. Teil 1: Das Serial Peripheral Interface (SPI)

Mikrocontroller Grundlagen. Markus Koch April 2011

auf den E-Book-Reader

> Mozilla Firefox 3. Browsereinstellungen optimieren. Übersicht. Stand Juli Seite. Inhalt. 1. Cache und Cookies löschen

Aufgabe 2 - Erweiterung um PIC und Interrupts

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

Windows 7 Winbuilder USB Stick

Lokale Installation von DotNetNuke 4 ohne IIS

Benutzung der LS-Miniscanner

Handbuch PCI Treiber-Installation

DIGITALVARIO. Anleitung Bootloader. Ausgabe 0.1 deutsch für Direkt-Digital-Vario. Firmware ab Hardware 01 Seriennummer ab 0003

Kapsch Carrier Solutions GmbH Service & Support Helpdesk

DST EINFÜHRUNG IN MRT (V2)

Diese Anleitung erläutert die Einrichtung des Active Directory Modus im DNS-343.

i386 Interrupt-Deskriptortabelle (IDT)

Einfache Computersteuerung für Modellbahnen

Inbetriebnahme grabbmodul-1 / minimodul-16x bzw. smarteye-1

S7-Hantierungsbausteine für R355, R6000 und R2700

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

METTLER TOLEDO ETHERNET-Option

Übung zu Betriebssystembau (Ü BS)

Anleitung zur Erstellung einer Batchdatei. - für das automatisierte Verbinden mit Netzlaufwerken beim Systemstart -

Elektrische Logigsystem mit Rückführung

Übung zu Betriebssysteme

32-Bit Microcontroller based, passive and intelligent UHF RFID Gen2 Tag. Zürcher Fachhochschule

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Serieller S-Bus reduziertes Protokoll (Level 1)

Mit lebenslanger StarTech.com-Garantie sowie lebenslanger kostenloser technischer Unterstützung.

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

FastViewer Remote Edition 2.X

Mail-Account Unimail mit der Einstellungen für Outlook Express 5.0

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Rainbow-OS Architekturseminar Thema: Interrupt-Controller

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Anwenderdokumentation PersoSim

Systemwiederherstellung

Adami CRM - Outlook Replikation User Dokumentation

Interruptverarbeitung

Seite Out-Of-Band-Authentifizierung (OOBA) 8.1 Einleitung

Die MSDE ist nicht mehr Bestandteil des Installationspaketes der GETECO contura

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

Beschreibung EtherNet/IP Prozessschnittstelle

Interrupt-Programmierung

Dokumentation IBIS Monitor

:: Anleitung Hosting Server 1cloud.ch ::

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand:

auf den ebook-reader Ausleihen und Nutzen von ebooks auf einem ebook-reader

Anleitung zur Nutzung des SharePort Utility

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Technical Note 0404 ewon

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Anleitung zum Upgrade auf SFirm Datenübernahme

Tutorial -

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

mit SD-Karte SD-Karte Inhalt

Leichte-Sprache-Bilder

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Handbuch PCI Treiber-Installation

Anleitung zum erstellen von DVD/ CD zum Sichern der Volumes:

Allgemeine Anleitung Treiber für CP2102

Kleines Handbuch zur Fotogalerie der Pixel AG

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Berührungslose Datenerfassung. easyident-usb Stickreader. Art. Nr. FS-0012

Einrichtung von VPN für Mac Clients bei Nortel VPN Router

PHPNuke Quick & Dirty

Übertragung von MoData2 Dateien mit dem mobilen Gerätecenter unter Windows 7

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Erfassen von Service-Meldungen über das Web-Interface auf

e-books aus der EBL-Datenbank

Dynamisches VPN mit FW V3.64

Application Note MiniRouter: IPsec-Konfiguration und -Zugriff

Erstellen einer digitalen Signatur für Adobe-Formulare

-Versand an Galileo Kundenstamm. Galileo / Outlook

Modul 2: Automatisierung des Posteingangs - Regel- und Abwesenheits-Assistent

Verwendung des IDS Backup Systems unter Windows 2000

Betriebssysteme (BS)

4D Server v12 64-bit Version BETA VERSION

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

Transkript:

Interrupts Seminar Rechnerarchitektur Christian Stöffler Universität Mannheim WS 2005/06

Gliederung 1. Übersicht, Beispiel und Motivation 2. Ablauf eines Interrupts 2.1.Gerät PIC: Prioritäten 2.2.PIC CPU: Maskierung 2.3.CPU Gerät: IRQ-Vektoren 2.4.CPU OS: Top Half, Bottom Half 3. Intel 8259 PIC & APIC 3.1.modes of Operation 4. Interrupts über PCI / PCI-X 4.1.Interrupt-Pins 4.2.Message Signaled Interrupts (MSI) 5. Interruptpakete über HyperTransport 2

Übersicht intel 955X Express Chipsatz PIC/APIC Com1

Beispiel: Serielle Schnittstelle Logik Status Schieberegister 8 Datenregister 8 TX 1 bit Übretragung von Characters im PIO-Mode über COM1 8 bit Character + Start-/Stop Bit + Parity Bit = 11 bit Übertragungsrate 9600 bit/s CPU: 3GHz, könnte 3.000.000.000 bit/s übertragen! 312.500 Takte Leerlauf! H A L L O 312.500 Takte ohne mit Interrupt serielle Datenübertragung CPU belegt 4

Motivation CPU Programm Programmunterbrechung Unterbrechungsbehandlung Return from Exception (RTE) Ereignis Beispiele: Keyboard, Timer-IRQ, DMA Interrupt (IRQ) = Unterbrechung asynchron zur Prozessverarbeitung Trap = synchrone Unterbrechung, aus Programm heraus muss für laufendes Programm transparent sein! 5

Interrupt-Ablauf Ereignis Priorität? maskiert? Gerät IRQ-Anforderung PIC IRQ-Code CPU IRQ-Handler OS IRQ-Process IRQ-Vektor IRQ-Leitung auf 0 setzen ggf. IRQ-Vektor ins Vektorregister schreiben Priorität bei gleichzeitigen IRQ IRQ-Code generieren nicht maskierte IRQ akzeptieren IRQ-Maske setzen Interrupt Acknowledge (IACK) -Zyklus IRQ-Vektor CPU-Status retten IRQ zurücksetzen verarbeiten zurückspringen 6

Prioritäten IRQ 7 IRQ 1 0 Gerät Prio- Logik Codierer CPU Logik entscheidet über Priorität bei mehreren Signalen IRQ1 IRQ7 active low 3-bit Code an CPU kein Interrupt = alles auf 1 IRQ-Encoding [1] 7

Ablauf in der CPU IRQ Maske IRQ-Code Steuerung > Statusregister Statusregisterinhalt in Pufferregister retten Statuswechsel in Supervisor Mode IRQ-Maske setzen verhindern von geschachtelten Interrupts NMI kann nicht maskiert werden IACK-Zyklus Interrupt-Vektor holen alternativ: Autovektor-IRQ Maske IRQ-Mask Compare [1] 8

IACK-Zyklus Interrupt- Quelle IRQ 6 VNR CPU D31 - D24 Vektornummer IACK 6 7 6.. 0 A2 A1 A0 Demultiplexer Steuerung IRQ 7 IRQ 6 7 Prioritäten- Codierer IL2 - IL0 Masken- Logik 0 0 IACK-Zyklus [1] 9

Vektornummer Betriebssystem (OS) Einsprungadresse berechnen adr = Vektornummer*4 + Vektorbaseregister Prozessorstatus retten (auf Supervisor Stack) Statusregister, insb. Condition Codes, Statusbit, etc. IRQ-Programm auf CPU laden PC = adr OS: IRQ-Handler ausführen Top Half aufrufen, Bottom Half dann später Rückkehr bei Return from Exception (RTE) 10

IRQ-Handler Top Half nimmt Anforderung entgegen markiert Bottom Half zur späteren Ausführung setzt IRQ-Request zurück RTE, insb. alten Status wieder laden Bottom Half implementiert durch BH oder Tasklet enthält den eigentlichen Handler wird erst später ausgeführt alle IRQ an -> Top Half kann weitere bedienen führt langwierige Operationen durch, z.b. E/A Vorteil: System bleibt reaktionsfähiger 11

Bottom Halfs aufrufen ältere Variante alle BHs vordefiniert -> nur 32 Stück interessante BH mit zugeh. Taskqueues: IMMEDIATE_BH: führt tq_immediate aus, so schnell wie möglich (Scheduler oder bei Systemcall-Rücksprung) TQUEUE_BH: tq_timer nach allen Timer-Ticks Bsp.: linux/drivers/acorn/block/mfmhd.c mfm_tq.routine = (void (*)(void *)) mfm_initialise; queue_task(&mfm_tq, &tq_immediate); mark_bh(immediate_bh); 12

Tasklets modernere Variante mehrere Tasklets parallel ausführen (SMP), aber: nie parallel zu sich selbst dynamisches erstellen von Tasklets Bsp.: linux/drivers/char/keyboard.c DECLARE_TASKLET_DISABLED(keyboard_tasklet, kbd_bh, 0); und tasklet_schedule(&keyboard_tasklet); 13

intel 8259 Programmable Interrupt Controller (PIC) zuständig für system timer keyboard controller serial ports parallel ports floppy disk IDE mouse DMA channels nicht multiprozessor-fähig i955x: 2 Stück als Master / Slave 15 IRQs Statusregister: IRR: Interrupt Request Register wenn sich ein Gerät meldet ISR: Interrupt Service Register während IRQ-Vektor geliefert wird IMR: Interrupt Mask Register nicht mehr in CPU Programmable modes of Operation 14

modes of operation Fully nested mode höchste Priorität: IRQ 0, niedrigste: IRQ 7 Prioritäten können rotiert werden Special Fully nested mode weitere IRQ des gleichen Geräts während der IRQ-Verarbeitung Prüfen und Zurücksetzen durch Software evtl weitere IRQ? Automatic Rotation Mode (Equal Priority Devices) rotiert Geräte mit gleicher Priorität nach IRQ: niedrigste alle anderen sind einmal vor nächstem IRQ dran! Specific Rotation mode (Specific Priority) Auswahl der niedrigsten Priorität per Software z.b. IRQ 5 höchste Priorität: IRQ 6 15

modes of operation Poll Mode spart Einträge in der interrupt vector table eine pollende ISR ruft andere Handler auf Cascade Mode 15 Prioritäten 3-bit Bus als Verbindung Master Slave EOI Befehl muss zweimal benutzt werden (Master + Slave) Normal End of Interrupt (EOI) EOI Befehl per Software schreiben Automatic End of Interrupt mode EOI wird nach IACK-Zyklus automatisch generiert vorsicht mit Special Fully Nested! 16

Advanced Programmable Interrupt Controller (APIC) Multiprozessor-Unterstützung 24 APIC-Interrupts unterstützt PCI-Express Message Based Interrupts Message Adress Format 31 20 immer FEEh 19 12 Destination ID 11 4 Extended Destination ID 3 Redirection Hint 2 Destination Mode 1 0 immer 00 PCI-Express Message Format Message Data Format 31 16 immer 0000h 15 Trigger Mode 14 Delivery Status 13 12 immer 00 11 Destination Mode 10 8 Delivery Mode 7 0 IRQ-Vektor 17

Übersicht bisher: IRQ-Verarbeitung jetzt: IRQ-Übertragung: verdrahtet (PCI) message signaled (PCI-X) Pakete mit routing (HyperTransport) 18

PCI / PCI-X Bus Spezifikation Bus-Breite Taktfrequenz Datentransferrate Signalspannung Geräte pro Bus PCI 2.3 32 33 0,133 GByte/s 5V 6 PCI 2.3 64 33 0,266 GByte/s 5V 6 PCI 2.3 32 66 0,266 GByte/s 3,3V 3 PCI 2.3 64 66 0,533 GByte/s 3,3V 3 PCI-X 1.0 64 66 0,533 GByte/s 3,3V 4 PCI-X 1.0 64 100 0,800 GByte/s 3,3V 2 PCI-X 1.0 64 133 1,066 GByte/s 3,3V 1 PCI-X 266 (2.0) 64 133 DDR 2,133 GByte/s 1,5V 1 PCI-X 533 (2.0) 64 133 QDR 4,266 GByte/s 1,5V 1 PCI-Overview Interrupt Sharing Burst Modus 4 IRQ pro Gerät (INTA bis INTD) Adressen-Daten-Multiplexing bei 1 Gerät pro Bus: mehrere parallele Busse PCI-X abwärtskompatibel zu PCI ECC Fehlerkorrektur 19

Interrupts über PCI / PCI-X Pin-Belegung: AD Adress & Data C/BE Bus Command & Byte enable Frame Cycle Frame, bei Transaktion 0 IRDY Initiator ready TRDY Target ready DEVSEL Device Select INTA INTD PIC / APIC, normal nur INTA benutzt [4] 20

Interrupt Acknowledge Command CLK 1 2 3 4 5 6 7 8 Frame AD[31:0] Address ATTR Data C/BE[3:0] Cmd BEs IRDY TRDY DEVSEL IACK-Command Signals [3] entspricht im wesentlichen normaler read transaction C/BE = 0000 (PCI-X Command Encoding) CLK 1-8 = 1 Frame AD[31:0] = beliebiger zulässiger Wert Data = IRQ-Vektor 21

Message Signaled Interrupts (MSI) optional ab PCI > v2.1 zusätzliche Capability -Register 31 16 15 8 7 0 Message Control Next Pointer Capability ID Message Address Message Data Capability Pointer Capability Pointer + 04h Capability Pointer + 08h Capability ID == 05h MSI-fähiges Gerät! OS muss PCI-Device für MSI konfigurieren Message Adress Register setzen Message Data Register setzen bit 0 vom Message Control register setzen mehrere verschiedene Nachrichten möglich restliche bits IRQ über INTA INTD ist dann deaktiviert! PCI-X: IRQ-Devices müssen beides unterstützen! 22

HyperTransport Link CAD = Command, Addresses, and Data HyperTransport requests, responses, addresses und data 2, 4, 8, 16 oder 32 bit CLK CTL CAD[n:1] CTL=1 Kontrollpaket CTL=0 Daten 1 bit HyperTransport I/O Link CLK CTL CAD[n:1] CLK = Takt für CAD und CTL Signale Eigener CLK für jedes byte CAD CTL gleicher Takt wie CAD[0] 1, 2 oder 4 bit (außerdem PWROK und RESET) 23

Paketstruktur Code Command 00000 NOP 00001 Reserved-HOST 00010 Flush 00011 0001xx Reserved-HOST 0001xx 101xxx Wr (sized) 01xxxx Rd (sized) 100xxx Reserved-I/O 110000 RdResponse 110001 110010 Reserved-HOST 110011 TgtDone 11010x Reserved-HOST 110110 Reserved-I/O 110111 Extended FC 11100x Reserved-HOST 111010 Broadcast 111011 Reserved-HOST 111100 Fence 111101 Atomic-RMW 111110 AddrExt 111111 Sync/Error Command Field Encoding [6] Pakete = Vielfache von 4 bytes (doublewords) Kontrollpakete: 4 oder 8 bytes relevante Felder im Kontrollpaket: SeqID[3:0] Sequenznummer Reihenfolge Cmd[5:0] Befehlsfeld Pakettyp PassPW Paket darf Vorgänger überholen Performance UnitID[4:0] HT-ID des Geräts Addr[63:2] Zieladresse nicht immer alle bits benutzt Reserved muss immer 0 sein Datenpakete: 4-64 bytes Count[1:0]-Field 24

IRQ-Request Paket Bit-Time CTL 7 6 5 4 3 2 1 0 0 1 SeqID[3:2] Cmd[5:0]: 1010X1 1 1 PassPW SeqID[1:0] UnitID[4:0] 2 1 Count[1:0] Rsv Reserved 3 1 IntrInfo[7:6] IntInfo[5] IntrInfo[4:2] Count[3:2] 4 1 IntrInfo[15:8] 5 1 IntrInfo[23:16] 6 1 IntrInfo[31:24] 7 1 Addr[39:32] 8 0 IntrInfo[39:32] 9 0 IntrInfo[47:40] 10 0 IntrInfo[55:48] 11 0 Reserved Cmd 1010X1 Wr(sized), posted, cache-coherent Count immer 0 nur ein doubleword IntrInfo[4:2] IRQ-Typ, 111 reserviert für End of Interrupt (EOI) IntrInfo[5] RQEOI, warten auf EOI IntrInfo[31:8] Rückgabe in EOI Rest ist systemabhängig IRQ-Request Packet [6] 25

End of Interrupt (EOI) Pakete Bit-Time 7 6 5 4 3 2 1 0 0 SeqID[3:2] Cmd[5:0]: 111010 1 PassPW SeqID[1:0] UnitID[4:0] 2 Reserved 3 Reserved MT[2:0]=111b Rsv 4 IntrInfo[15:8] 5 IntrInfo[23:16] 6 IntrInfo[31:24] 7 Addr[39:32] EOI-Packet [6] Broadcast Message Packets Cmd = 111010 Devices vergleichen IntrInfo[31:8] und setzen IRQ zurück IntrInfo[4:2] Message Type MT = 111b Alternativ write ins Interrupt Definition Register des Devices 26

Zusammenfassung Ablauf eines Interrupts Ereignis Priorität? maskiert? Gerät IRQ-Anforderung PIC IRQ-Code CPU IRQ-Handler OS IRQ-Vektor Intel 8259 PIC & APIC modes of Operation Interrupts über PCI / PCI-X Interrupt Signale Interrupts über HyperTransport Interrupt Pakete 27

Quellen [1] Flik Mikroprozessortechnik, 6. Auflage [2] Prentice-Hall Motorola MC68020 User's Manual [3] Addison-Wesley Longman PCI-X System Architecture [4] PCI Local Bus Specification [5] PCI-X Addendum to the PCI Local Bus [6] HyperTransport I/O Link Specification http://www.hypertransport.org/docucontrol/htc20031217-0036-0009.pdf [7] O'Reilly Linux Gerätetreiber, 2. Auflage http://www.oreilly.de/german/freebooks/linuxdrive2ger/book1.html [8] intel I/O Controller Hub 7 (ICH7) Family Datasheet http://download.intel.com/design/chipsets/datashts/30701301.pdf [9] intel 82955X Memory Controller Hub (MCH) Datasheet http://download.intel.com/design/chipsets/datashts/30682801.pdf [10] intel 82093 Advanced Programmable Interrupt Controller (APIC) Datasheet http://www.intel.com/design/chipsets/datashts/29056601.pdf [11] AMD 8131 HyperTransport PCI-X Tunnel Datasheet http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/24637.pdf [12] http://www.hypertransport.org/tech/tech_latency.cfm [13] http://www.elektronik-kompendium.de/sites/com/0310091.htm [14] http://www.watch.impress.co.jp/akiba/hotline/980131/image/atx5863.gif [15] http://www.cpu-world.com/support/82/intel-p8259a.jpg [16] http://www.pcisig.com/specifications/ 28

Vielen Dank für die Aufmerksamkeit 29