Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte



Ähnliche Dokumente
Handbuch PCI Treiber-Installation

5. PC-Architekturen und Bussysteme

HANDBUCH LSM GRUNDLAGEN LSM

Umstieg auf Microsoft Exchange in der Fakultät 02

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Technical Note 0302 ewon

Powermanager Server- Client- Installation

4D Server v12 64-bit Version BETA VERSION

RO-Serie CAN-Übertragungsprotokoll

Anleitung zur Nutzung des SharePort Utility

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

High Performance Datenerfassung Tests am Beispiel WEGA

Virtual Desktop Infrasstructure - VDI

Verwendung des Terminalservers der MUG

Hinweise zur Installation der USB Treiber für Windows XP 32bit

LabView7Express Gerätesteuerung über LAN in einer Client-Serverkonfiguration. 1. Steuerung eines VI über LAN

Treiber- und Software-Update für ITRA-Geräte

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

Formular»Fragenkatalog BIM-Server«

Umstellung News-System auf cms.sn.schule.de

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Updatehinweise für die Version forma 5.5.5

PCI VME Interface SIS1100/SIS3100

Bluetooth Low Energy Demo mit dem Apple iphone 4s

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Installation OMNIKEY 3121 USB

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Systeme 1. Kapitel 10. Virtualisierung

Technical Note 0301 ewon

Verteilte Dateisysteme

DNS-325/-320 und FXP

Videoüberwachung als Virtuelle Maschine. auf Ihrem Server, PC oder Mac. Peter Steinhilber

"Ich habe als Vereinsverantwortlicher eine erhalten - was mache ich, um Torwurf.de für meinen Verein einzusetzen?"

Kurzanleitung So geht s

icloud nicht neu, aber doch irgendwie anders

IAWWeb PDFManager. - Kurzanleitung -

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

3. Anlegen eines WIN CC Projektes

Inbetriebnahme Profinet mit Engineer. Inhaltsverzeichnis. Verwendete Komponenten im Beispiel:

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Umstellung Ihrer Mailbox von POP zu IMAP

PC-Kaufmann 2014 Neues Buchungsjahr anlegen

ANYWHERE Zugriff von externen Arbeitsplätzen

Collax PPTP-VPN. Howto

Windows 7 32 Bit (x32) Windows 7 64 Bit (x64)

How to do? Projekte - Zeiterfassung

Software zur Anbindung Ihrer Maschinen über Wireless- (GPRS/EDGE) und Breitbandanbindungen (DSL, LAN)

INSTALLATIONSANLEITUNG

T est of 1GBit/s Fiber optical communication interfaces based on FlexRIO R Series

Kommunikations-Management

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

Whitepaper. Produkt: combit Relationship Manager. combit Relationship Manager und Terminalserver. combit GmbH Untere Laube Konstanz

Netzwerkeinstellungen unter Mac OS X

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Tevalo Handbuch v 1.1 vom

Memeo Instant Backup Kurzleitfaden. Schritt 1: Richten Sie Ihr kostenloses Memeo-Konto ein

HowTo: Einrichtung & Management von APs mittels des DWC-1000

KURZANLEITUNG CYBERDUCK MIT CLOUD OBJECT STORAGE

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

BANKETTprofi Telefonschnittstelle

Anforderungen an die HIS

HTBVIEWER INBETRIEBNAHME

Installationshandbuch (deutsch)

Installationsanleitung für Magento-Module

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Pflichtenheft. Projektteam. Rexford Osei - Frey Michael Weichert Thomas Thutewohl. Pflichtenheft Seite 1 von 7

BIA-Wissensreihe Teil 4. Mind Mapping Methode. Bildungsakademie Sigmaringen

Ihre PLM-Prozessexperten für Entwicklung und Konstruktion

Einkaufen im Internet. Lektion 5 in Themen neu 3, nach Übung 10. Benutzen Sie die Homepage von:

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

Installationsanleitung. Installieren Sie an PC1 CESIO-Ladedaten einschl. dem Firebird Datenbankserver, wie in der Anleitung beschrieben.

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

DWA-140: Betrieb unter Mac OS X Über dieses Dokument. Vorbereitungen. Laden der Treiber aus dem Internet - 1 -

Leitfaden SIS-Handball

Kleines Handbuch zur Fotogalerie der Pixel AG

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Ticketregistrierung. Schritt 1.) Öffnen Sie in Ihrem Browser die Seite Klicken Sie auf Tickets.

Schnittstelle DIGI-Zeiterfassung

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

teischl.com Software Design & Services e.u. office@teischl.com

TeamSpeak3 Einrichten

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Bitte unbedingt lesen! Update-Dokumentation

Tipps und Tricks zu Netop Vision und Vision Pro

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Anbindung des eibport an das Internet

Datenbanken auf Sybase SQL-Anywhere

Windows 2008 Server im Datennetz der LUH

PV-S1600 Betriebssystem-Aktualisierungsvorgang. Sie müssen die beiden folgenden Schritte ausführen,

Kurzeinführung Excel2App. Version 1.0.0

Lehrer: Einschreibemethoden

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Installation. Windows. E-mP Ernst-mechanische Produkte Auf die Bell Linkenheim-Hochstetten Deutschland

Einrichten eines E- Mail Kontos mit Mail (Mac OSX)

serielle Schnittstelle/USB-Schnittstelle für das Velbus-System

Transkript:

Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Matthias Lange Informatikstudent, TU-Dresden 27. September 2005 http://www.matze-lange.de

Warum entwickelt jemand einen Treiber für Mac OS X?

Darum!

Ersetzen des bestehenden Mac/ MacVEE Aufbaus durch G4 Mac/ SIS1100 Systeme Umstieg vom klassischen Mac OS auf Mac OS X erwartete höhere Leistungsfähigkeit für erweiterte Tests nutzen neue Hardware vorhanden, aber kein Treiber für Mac OS X

Einleitung Aufbau moderner Betriebssysteme Struktur von Mac OS X SIS1100/SIS3100 Hardware Aufbau, Struktur und Funktionsumfang des Treibers Optimierungen Ergebnis und Ausblick

Aufbau moderner Betriebssysteme Anwendungsprogramm Anwendungsprogramm... Systemdienste Programmbibliotheken Gerätebibliothek Nutzermodus Betriebssystemkern Gerätetreiber previligierter Modus CPU Speicher Hardware PCI...

Betriebssystemkern exklusiver Zugriff auf die Computerhardware Mechanismen für die Konstruktion von Betriebssystemen (z.b. für Kommunikation zw. Programmen) verwaltet die Resourcen (CPU-Zeit, Speicher etc.) durch virtuellen Speicher Schutz von Anwendungsprogrammen vor gegenseitiger Beeinflussung Gerätetreiber

Der Wechsel in den Betriebssystemkern ist ein sehr teurer Vorgang!

Betriebssystemkern von Mac OS X Mach: Kommunikation, Scheduling, virtueller Speicher BSD Mach TCP/IP Treiber I/O Kit BSD: Dateisysteme, UNIX Schnittstelle POSIX, UNIX Sicherheitskonzept I/O Kit: abstrahiert Hardware und bietet allgemeine Schnittstellen für typische Geräteklassen (z.b. USB, PCI) an

SIS1100/SIS3100 Hardware SIS1100: PCI-Karte mit PLX9054 als Brückenchip und Controller (VME- Zugriffsprotokoll) SIS3100: VME Sequencer, VME Master/Slave Verbindung über Glasfaser, Kommunikation mittels Gigalink-Protokoll

Aufbau der SIS1100 PCI-Karte SIS1100 VME Modul SIS3100 Speicher Ansteuerungslogik lokaler Bus PLX 9054 Schnittstelle zum lokalen Bus Register FIFOs PCI Lokal0 Lokal1 Schnittstelle zum PCI Bus PCI Bus

Entwicklungsschritte Zugriff innerhalb des Treibers auf die Register der SIS1100 um Leuchtdioden an- und auszuschalten Implementierung des Einzelzugriffs und Zugriffsmöglichkeit für Anwendungen Implementierung des Blockzugriffs Test in Produktivumgebung, Test der Integration in LabView, Optimierungen parallel dazu Entwicklung von Testwerkzeugen

Entwicklungsschritte (Fortsetzung) nach WWDC Besuch Integration neuer Techniken um Daten zwischen Programm und Treiber auszutauschen (geteilter Speicher) Kompatibilität mit Mac OS X 10.3 und 10.4 Implementierung des direkten VME-Bus-Zugriffs durch Speichermapping auf der SIS1100 Optimierung Dokumentation der Quelltexte

Schwierigkeiten Schlechte Dokumentation! Widersprüchliche Dokumentation! (Big-/Little Endian) Fehlende Dokumentation! ABER: starke Unterstützung durch Matthias Kirsch bei der Beantwortung meiner Fragen

Aufbau des Treibers Treiber User client Treiber programmiert die Register der SIS1100 steuert VME Transfers User client SIS1100 Schnittstelle für Anwendungsprogramme ruft Funktionen im Treiber auf

Funktionalität des Treibers alle Zugriffe lesend oder schreibend und funktionieren mit 8, 16 oder 32bit Werten optional mit address modifier Einzelzugriff: Zugriff auf eine VME-Adresse Blockzugriff: beginnend bei einer VME-Adresse sequentieller Zugriff auf eine bestimmte Anzahl von Werten

Funktionalität des Treibers (Fortsetzung) Listenzugriff: Bündelung von Einzelzugriffen für wahlfreien VME-Zugriff direkter Buszugriff: direkter Zugriff auf VME- Adressen über auf der SIS1100 gemappten VME- Speicher (Begrenzung auf 64kB und 64 Mappings) Mappings werden separat angelegt und können wiederverwendet werden

Optimierung Systemauslastung senken geringeren Speicherverbrauch Kompromiss zwischen Geschwindigkeit und Speicherverbrauch nur sinnvoll bei häufig verwendeten Funktionen höhere Geschwindigkeiten beim VME-Zugriff

Beispiel: Programmladen beim OnSiROC OnSiROC sequentieller Zugriff auf drei Adressen Zeilennummer 16bit Code 16bit Code Laden einer Programmzeile, insgesamt mehrere 10.000 mal

Zugriffsdauer im Vergleich zum alten System Implementierung mit Einzelzugriffen (kein Blockzugriff da Adressen nicht sequentiell) 3.000ms MacVEE SIS1100 2.250ms für jeden Wert ein Kerneintritt (pro Zeile Code drei Mal) 1.500ms 750ms 4 Registerzugriffe 0ms Einzelzugriff (Messung auf G4 Mac mit 400MHz)

Beschleunigung 1. Schritt Zusammenfassen der Einzelzugriffe in einer Liste um Kerneintritte zu sparen Implementierung der neuen Zugriffsart als Listenzugriff im Treiber weiterhin Einzelzugriffe mit 4 Registerzugriffen je Wert MacVEE SIS1100 3.000ms 2.250ms 1.500ms 750ms 0ms Einzelzugriff Listenzugriff (Messung auf G4 Mac mit 400MHz)

Beschleunigung 2. Schritt für jeden Einzelzugriff Schreiben von Protokollkopf, AM, Adresse und Wert 3.000ms MacVEE SIS1100 2.250ms Beobachtung: Protokollkopf und AM ändern sich (fast) nie 1.500ms 750ms daher nur bei Änderung neu schreiben 0ms Einzelzugriff Listenzugriff Cache (Messung auf G4 Mac mit 400MHz)

Beschleunigung 3. Schritt direkter VME-Bus-Zugriff über Speichermapping MacVEE SIS1100 Anlegen des Mappings ist vernachlässigbar nur noch ein Registerzugriff pro Wert Implementierung als neue Zugriffsmöglichkeit 3.000ms 2.250ms 1.500ms 750ms 0ms Einzel Listen Cache Direkt (Messung auf G4 Mac mit 400MHz)

Beschleunigung 4. Schritt Schreib- und Lesewarteschlange in PLX9054 3.000ms MacVEE SIS1100 bei Überfüllung verzögert der PLX9054 die Freigabe des PCI-Bus 2.250ms 1.500ms Überfüllung durch einmaliges Lesen oder Schreiben verhindern 750ms 0ms Einzel Listen Cache Direkt Direkt opt. (Messung auf G4 Mac mit 400MHz)

Beschleunigung 4. Schritt Schreib- und Lesewarteschlange in PLX9054 bei Überfüllung verzögert der PLX9054 die Freigabe des PCI-Bus Überfüllung durch einmaliges Lesen oder Schreiben verhindern 3.000ms 2.250ms 1.500ms 750ms 0ms MacVEE SIS1100 Beschleunigung um Faktor 16 1.5 mal schneller als MacVEE Einzel Listen Cache Direkt Direkt opt. (Messung auf G4 Mac mit 400MHz)

Ergebnis Dokumentation SIS.framework (Bibliothek) Poke VI SIS1100Driver (kompatibel mit PPC und Intel) Peek VI SISMonitor SISPerformance ZaradannX (Vorschau)... there is one more thing

Ausblick Speichermapping von VME-Speicher in Anwendungsprogramme für direkten VME Zugriff Implementierung von DMA-Transfers (für die Übertragung großer sequentieller Datenblöcke) Wunsch: Äquivalenz zum Linux-Treiber nur mit direkter Unterstützung von Struck realisierbar, weil das Wissen nicht vorhanden ist (über VME und SIS Hardware)

Fragen?

Quellen und Hinweise http://developer.apple.com http://www.struck.de http://www.maccent-software.de http://www.matze-lange.de Mac OS X, I/O Kit SIS1100/SIS3100 Hardware SIS1100Driver, Dokumentation private Homepage