Netgauge auf Cell BE



Ähnliche Dokumente
Cell Broadband Engine & CellSs: ein Programmiermodel für den Cell Prozessor

Outline. Cell Broadband Engine. Application Areas. The Cell

Cell Broadband Engine

Cell and Larrabee Microarchitecture

Über die Cell/B.E.-Architektur: Optionen zur Generierung von Programm-Traces

Multicore-Architekturen

8: IIC-Bussystem / PID

U4-1 Aufgabe 3: einfache malloc-implementierung

Konzeption und Implementierung einer Videodigitalisierung und Videoausgabe unter Embedded Linux. Kolloquium von Frank Schwanz

RO-Tutorien 15 und 16

Der Cell Prozessor. Seminarvortrag von Viacheslav Mlotok. SS2005 Universität Mannheim, Lehrstuhl für Rechnerarchitektur

Parallelisierung von MD-Simulationen auf Mehrkernarchitekturen

Inhaltsverzeichnis. LNT Fischertechnik RCTXTLT 2 Juni 2017

Hardware und Gerätetreiber

U3-1 Organisatorisches

USBCAN.DLL. Manual. Microcomputersysteme. Version 1.2

Assignment #2. Virtueller Speicher Virtual Memory WS 2012/2013 IAIK 1

1 Fehler in Bibliotheksfunktionen. 1 Überblick. 2 Ziele der Aufgabe. Besprechung der 1. Aufgabe

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

Multi-Port-Speichermanager für die Java-Plattform SHAP

Ein- Ausgabeeinheiten

Übersicht. Vergleich der Spielekonsole mit dem PC. Historie der Spielekonsolen von 1976 bis 1999

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

Computergrundlagen Geschichte des Computers

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Viele Rechenaufgaben können auf verschiedene CPUs und/oder Maschinen aufgeteilt und verteilt werden, um die Leistung zu steigern

Computergrundlagen Geschichte des Computers

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

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

Praktikumsbericht. Jens Breitbart

2 Rechnerarchitekturen

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Virtueller Speicher und Memory Management

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Unicode Support Atomic Operations Thread Support Type-Generic Makros Sicherheit Ease-of-Use C11. Thomas Duckardt

Tutorium Rechnerorganisation

Einschub: HW-Zugriff aus dem Userspace

Grundlagen der CELL Programmierung

Echtzeitbetriebssysteme

Android Testautomatisierung mit dem Framework Robotium

Datenübertragung per Direct Memory Access (DMA)

Grundlagen der Rechnerarchitektur. MIPS Assembler

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

1 wsort - Datenstrukturen (1. Möglichkeit)

CUDA. Jürgen Pröll. Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg Jürgen Pröll 1

Netzwerk-Programmierung in C

QCS-Einführungskurs. Serielle Kommunikation

Einführung in die Programmiersprache C

Synthese Eingebetteter Systeme. 1 Einführung: Entwurf und Synthese

Zwei Möglichkeiten die TLB zu aktualisieren

Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes

Übungen Datenverarbeitungstechnik 2017/18. Reiner Doll, Technikerschule München

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

Synthese Eingebetteter Systeme. 14 Abbildung von Anwendungen auf Multicore-Systeme

Pointer und Arrays. INE1, Montag M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

POWSE Pouch-Cell Wireless Sensing

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

Speicheraufbau des AT89C5131


Eine Familie von gemeinsamen Speichern für MPSoCs

Multicore-Architekturen

7. Organisation von Informationen

Hardware-Interfaces für FlexRay und CAN

Übung zu Betriebssystemtechnik

Eigenschafte: Konfiguration: Baudrate:

Realisierung eines Speichermanagements zur Zugriffsvirtualisierung von konkurrierenden Nutzerdesigns auf Rekonfigurierbarer Hardware

Einführung in die Programmiersprache C

Streams. V by WBR1&MOU2/BFH-TI. Berner Fachhochschule Hochschule für Technik und Informatik HTI

HelvePic32 Breadboard. Internet Data Logger

Einführung in die Programmiersprache C

Übung 3: VHDL Darstellungen (Blockdiagramme)

Protected User-Level DMA in SCI Shared Memory Umgebungen

Android-Testautomatisierung mit Robotium

Anlage B zum Achtzehnten Hauptgutachten der Monopolkommission 2008/2009

Tutorium Rechnerorganisation

Übung Praktische Informatik II

Datenstrukturen, Alignment Stack Prozeduraufruf, Parameterübergabe und -rückgabe (Calling Conventions) Leaf procedures

Memory Models Frederik Zipp

Deckblatt. S7-Kommunikation mit S PUT und GET. FAQ November Service & Support. Answers for industry.

Betriebssysteme I SS 2008 Hans-Georg Eßer, Hochschule München Zusammenfassung Seite 1

Martin Delvai. SPEAR2: Erweiterungskonzept

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

C-PROGRAMMIERUNG - STRUKTUREN. Marcel Lebek

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Distributed Memory Computer (DMC)

Die UART-Schnittstelle

Die serielle Schnittstelle mit den Atmega32: USART

Programmieren in C++

Apropos Sicherheit; IOTA bietet vier verschiedene Walletarten mit verschiedenen Sicherheitsstandards an.

Foliensatz. Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

DST EINFÜHRUNG IN MRT (V2)

Computergrundlagen Moderne Rechnerarchitekturen

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Assembler am Beispiel der MIPS Architektur

µversion 2 Einführung

Transkript:

TU Chemnitz 15. Oktober 2007

Inhaltsverzeichnis 1 Einführung Aufgabe Netgauge Cell BE 2 3

Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE

Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE

Aufgabe Einführung Aufgabe Netgauge Cell BE Netgauge + Cell = Messung Speichertransfers von Cell BE

Netgauge Einführung Aufgabe Netgauge Cell BE Nachfolger von Netpipe hatte nur Ping-Pong-Test schlechte Zeitmessung viel Code innerhalb von Messungen Verschiedene Module für Transfer mehrere Tests genaue Zeitmessung

Netgauge Aufbau Einführung Aufgabe Netgauge Cell BE

Cell BE Einführung Aufgabe Netgauge Cell BE Entwicklung von IBM, Toshiba, Sony Einsatz in Multimedia-Geräten (HDTV, Playstation 3) Echte Hardware : Steckkarten, Cell-Blades

Cell BE Aufbau Einführung Aufgabe Netgauge Cell BE

Cell BE SPE-Aufbau Einführung Aufgabe Netgauge Cell BE Memory Flow Controller Local Store (256 KB Speicher) Synergistic Processing Unit SIMD-Befehle für 128-Bit-Daten Vortrag Simon Wunderlich

Cell BE SPE-Aufbau Einführung Aufgabe Netgauge Cell BE Memory Flow Controller Local Store (256 KB Speicher) Synergistic Processing Unit SIMD-Befehle für 128-Bit-Daten Vortrag Simon Wunderlich

Einführung cell PPE übernimmt Speicherzugriff cell mail Transfer über Mailbox cell dma SPE greift auf Speicher zu cell dmalist SPE greift über Listen auf Speicher zu

PPE kopiert Daten in Local Store Senden Empfangen

PPE kopiert Daten in Local Store Beispiel Beispiel void l o c a l s t o r e = s p e l s a r e a g e t ( s p u c o n t e x t ) ;.... memcpy ( l o c a l s t o r e + addr, b u f f e r, s i z e ) ;

DMA-Operation durch SPE Senden Empfangen

DMA-Operation durch SPE Beispiel Beispiel spu mfcdma64 ( ( void ) &b u f f e r, e x t e r n a l b u f f e r h i g h, b u f f e r l o w, s i z e, tag, MFC GET CMD ) ; m f c w r i t e t a g m a s k (1 << tag ) ; m f c r e a d t a g s t a t u s a l l ( ) ;

DMA-Operation durch SPE Zwischen zwei SPEs Senden Empfangen

Mailbox zwischen SPE und PPE Senden Empfangen

Mailbox zwischen SPE und PPE Beispiel Beispiel PPU u i n t 3 2 t data ; s p e i n m b o x w r i t e ( s p u c o n t e x t, ( void )& data, 1, SPE MBOX ALL BLOCKING ) ; Beispiel SPU u i n t 3 2 t data = s p u r e a d i n m b o x ( ) ;

1 Erstelle Thread-Kontext 2 Erstelle SPU Kontext 3 Lade SPU-Programm 4 Starte SPU-Programm in Thread 5 Affinität festlegen 6 Informationen über Puffer versenden

1 Erstelle Thread-Kontext 2 Erstelle SPU Kontext 3 Lade SPU-Programm 4 Starte SPU-Programm in Thread 5 Affinität festlegen 6 Informationen über Puffer versenden

SPE-Übertragung initialisieren 1 Erstelle Thread-Kontext 2 Erstelle SPU Kontext 3 Lade SPU-Programm 4 Starte SPU-Programm in Thread 5 Affinität festlegen 6 Informationen über Puffer versenden

mod cell spu

mod cell dma spu

Bus Error is not your friend Einführung Unterschiede bei Datenypen PPU-void* (32-/64-Bit), SPU-void* (32-Bit) PPU-long (32-/64-Bit), SPU-long (32-Bit) char unsigned!!! DMA-Transfers Größe: 1, 2, 4, 8 Byte oder vielfaches von 16 Alignment: 16 Byte Kein impliziter Zugriff auf Hauptspeicher

Bus Error is not your friend Einführung Unterschiede bei Datenypen PPU-void* (32-/64-Bit), SPU-void* (32-Bit) PPU-long (32-/64-Bit), SPU-long (32-Bit) char unsigned!!! DMA-Transfers Größe: 1, 2, 4, 8 Byte oder vielfaches von 16 Alignment: 16 Byte Kein impliziter Zugriff auf Hauptspeicher

Bus Error is not your friend Einführung Unterschiede bei Datenypen PPU-void* (32-/64-Bit), SPU-void* (32-Bit) PPU-long (32-/64-Bit), SPU-long (32-Bit) char unsigned!!! DMA-Transfers Größe: 1, 2, 4, 8 Byte oder vielfaches von 16 Alignment: 16 Byte Kein impliziter Zugriff auf Hauptspeicher

Transferraten zwischen Speicher und SPE 65536 16384 PPE-Transfer Mailbox DMA-Transfer DMA-List-Transfer 4096 1024 MBit/s [log] 256 64 16 4 1 0.25 1 4 16 64 256 1024 4096 16384 65536 262144 Bytes [log]

Transferraten abhängig vom Gegenstelle 120000 DMA-Transfer SPE-Speicher DMA-Transfer SPE-SPE 100000 80000 MBit/s 60000 40000 20000 0 0 50000 100000 150000 200000 250000 Bytes

Transferraten zwischen zwei SPEs mit und ohne Afinitäten 262144 65536 DMA ohne Affinitaet DMA-List ohne Affinitaet DMA mit Affinitaet DMA-List mit Affinitaet 16384 4096 1024 MBit/s [log] 256 64 16 4 1 0.25 1 4 16 64 256 1024 4096 16384 65536 262144 Bytes [log]

Verbrachte Zeit in Hardware-/Software-Interrupts 10 PPE-Transfer Mailbox DMA-Transfer DMA-List-Transfer 8 6 User Hz 4 2 0 0 50000 100000 150000 200000 250000 Bytes

Einführung http://www.ibm.com/developerworks/power/cell/ http://www.unixer.de/research/netgauge/ http://blog.perlplexity.org/

Fragen?