heutige möglichkeiten von prozessoren in eingebetteten ... · chemnitzer linux tage 2014, wolfram...
TRANSCRIPT
![Page 1: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/1.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 1
Heutige Möglichkeiten von Prozessoren in
eingebetteten Systemen
Wolfram Luithardt
Hochschule für Technik und Architektur, Fribourg, Schweiz
![Page 2: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/2.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 2
Microprozessor – Microcontroller
Microprozessor:
- auf hohen Befehlsdurchsatz optimiert.
- oft CISC- Cache-Speicher
Microcontroller:
- weniger Durchsatz aber enthält mehr Peripherie
- Speicher (volatil und permanent)- diverse Schnittstellen- Oszillator- analoge Komponenten- oft RISC
Eine genaue Unterscheidung ist heute oft nicht mehr möglich ---> z.B. ARM-Prozessoren
Noch weiter: Systems on chip (SoC): können auch noch Sensoren und Aktoren enthalten und sind damit sehr intelligente Schaltungen auf einem einzigen Chip.
Oft enthalten Prozessoren oder Controller mehrere Recheneinheiten, die oft sehr spezifisch für verschiedene Aufgaben verwendet werden können.
![Page 3: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/3.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 3
Symmetrisch...
http://www.phytec.de/de/produkte/module-im-ueberblick/prozessor-vergleich.html
![Page 4: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/4.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 4
Symmetrisch...
Symmerisches Multiprocessing SMP: Verteilung auf unterschiedliche Prozessoren auf Prozess- oder Threadebene
#include <stdio.h>#include <math.h>#define N 1000000
void main(){ double a[N]; long i; #pragma omp parallel for for(i=0; i<N; i++){ a[i] = sin(sqrt(i))+sin(sqrt(i+1))/3; } }
160ms --> 90ms für 2 Cores
OpenMP: Open multiprocessing: Auf Compilerebene (z.B. gcc) werden gewisse Programmstrukturen (z.B. Schleifen) auf mehrere Prozessoren verteilt:
![Page 5: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/5.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 5
.... und Asymmetrisch...
![Page 6: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/6.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 6
AbgrenzungDevice Driver vs. Multicore-Frameworks
Zugriff auf interne Peripherie durch Device-Driver:
- Memory mapped- feste Funktionen --> Lediglich Änderung der Konfiguration- relativ beschränkter Funktionsumfang, sehr spezifisch- Daten- aber nicht funktionsgetrieben
In Gegensatz dazu: Multicore
- Oft kein gemeinsamer Speicher- Übertragung von Code + Daten- komplett verschiedene Programmiermodelle- ....
![Page 7: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/7.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 7
Verschiedene Typen von zusätzlichen Recheneinheiten
● Andere Mikrocontroller z.B. Cortex-M
● SIMD- Einheiten
● Floating-Point Einheiten
● Digitale Signalprozessoren (DSP)
● Graphische Prozessoren (GPU)
● Field Programmable Gate Array (FPGA)
● .....
![Page 8: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/8.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 8
SIMD-Einheiten
http://www.arm.com/products/processors/technologies/neon.php
SIMD: Singe Instruction, Multiple Data
![Page 9: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/9.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 9
Open CL
Offener Standard für paralleles Programmieren von heterogenen Stukturen. Obwohl für alle Arten von Co-Prozessoren entwickelt, werden heute hauptsächlich GPUs unterstützt.
Für embedded systems ist OpenCL erst am Anfang der Entwicklung: z.B. für ARM-GPUs ab T600 (OpenCL 1.1)
Aber: - Beschränkt auf wenige Hersteller (Intel, AMD, Nvidia) - häufig „closed source“, d.h. sehr intransparent
Programme, die in OpenCL (Open Computing Language) geschrieben werden, sind dabei auf allen OpenCL-fähigen Cores lauffähig und können zur Laufzeit auf diese verteilt werden.
![Page 10: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/10.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10
Ziel: Erstellen eines Frameworks, das es erlaubt, Aufgaben in transpa-renter Weise auf asymmetrische Multicore-Prozessoren zu verteilen. Dabei soll statisches und dynamisches Dispatching möglich sein, sowie ein synchrones oder asynchrones Verhalten unterstützt werden.
Das Projekt SOSoC: System Optimization using System on Chip
Hauptprozessor:
void foo(void* date_in, void * data_out){...... // Hauptprozessor-Code return;
Co-Prozessor 1:
void foo(void* date_in, void * data_out){...... // Code des Co-Prozessors 1 return;
Hauptprozessor:
int main(){ init_sosoc(...); /* Bereitet die
Funktionen vor */ foo(&data_in, &data_out, core);.....
Co-Prozessor 2:
void foo(void* date_in, void * data_out){...... // Code des Co-Prozessors 2 return;
Die SOSoC Library ruft die Funktion foo gemäss
einstellbaren Regeln auf den verschiedenen
Cores auf
![Page 11: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/11.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 11
Das Projekt SOSoC: System Optimization using System on Chip
foo(){..}
Core1
Core2
foo(Core1); foo(Core2); foo(auto);
t
Program blocks
Program blocks
Synchroner Modus
foo(){..}
foo(){..}
foo(){..}
foo(){..}
foo(){..}Core0 foo(Core0);
Statisches dispatching
Dynamisches dispatching
foo(){..}
foo(Core1); foo(Core2); foo(auto);
t
Program continues
Asynchroner Modus
foo(){..}
foo(){..}
foo(){..}
foo(){..}
foo(){..}foo(Core0);
Statisches dispatching
Dynamisches dispatching
Core1
Core2
Core0 no
tify
()
Program continues n
oti
fy()
![Page 12: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/12.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 12
SOSoC: Dynamisches Dispatching
![Page 13: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/13.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 13
Texas-Instruments DM3730
http://www.ti.com/lit/ug/sprugn4r/sprugn4r.pdf
+ NEON-SIMD
![Page 14: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/14.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 14
Der ARM NEON Co-Prozessor
![Page 15: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/15.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 15
NEON + VFP
VFP
Datenformate: - floating points: 32 bit oder 64 bit
- Sehr interessanter Befehlssatz- Multiplikation- Multiplikation + Addition- Division
- Quadratwurzel- .....
- Umwandlung zwischen Integer in FP- Umwandlung zwischen Fixpoint in FP
NEON
- Datenformate:- 16 bit, 32 bit, 64 bit integer - scalar oder vector
- Vektoroperationen: - Addition, - Subtraktion- Multiplikation (+ Addition) - Bitoperationen - Reziprokwert (geschätzt)- ......
........
- Register werden mit der VFP (Floating Point Unit) geteilt (aus Kompatibilitätsgründen)
- Beide haben ihren eigenen Befehlssatz
![Page 16: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/16.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 16
SW.Struktur von SOSoC
Bloc schema
Application
DSPLINK DSPLINK
Functions
CMEM
libsosoc.so
Libsosoc_arm.so
Libsosoc_dsp.soLibsosoc_neon.so
User space
Kernel space
ARM DSP
![Page 17: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/17.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 17
SOSoC: Abhängigkeiten
http://sourceforge.net/p/sosoc
![Page 18: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/18.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 18
SOSoC: Programmierinterface
sosoc_exec(char* fname, void* param, void* res, sosoc_target target);
sosoc_exec_async(char* fname, void* param,void* res, sosoc_target target, int notifier(void *p));
enum sosoc_target {arm, neon, dsp, automatic};
Weitere Funktionen:
int sosoc_init(int flags); // initialisieren und Methode zur Messung der Performanceint sosoc_finalize(void); // aufräumen
int sosoc_cache_wb_invalidate(void *data, int size); //clear cache-writeback
int sosoc_alloc(void **p, int size, int target); // für Aufruf der Funktionen mit den gleichen Werten
void *sosoc_malloc(size_t size, sosoc_target target); // core-spezifisches mallocvoid sosoc_free(void *ptr, sosoc_target target); // core-spezifisches free
![Page 19: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/19.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 19
SOSoC: Ergebnisse
Warum ist der DSP so schlecht?
![Page 20: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/20.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 20
Wie sind ARM und DSP verbunden?
![Page 21: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/21.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 21
Kommunikation zwischen CPU und DSP
![Page 22: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/22.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 22
Übertragungszeiten
![Page 23: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/23.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 23
Rechen – und Kommunikationszeiten
![Page 24: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/24.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 24
Ein etwas komplexeres Beispiel
![Page 25: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/25.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 25
Fast Fourier Transformation
![Page 26: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/26.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 26
Und noch ein Beispiel
![Page 27: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/27.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 27
Ein reales Beispiel: Bildverarbeitung
![Page 28: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/28.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 28
Ergebnisse Bildverarbeitung
![Page 29: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/29.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 29
SOSoC: wie kann dies alles verbessert werden?
- DSP-Link ist obsolet: Anderes Kommunikationsprinzip von Texas Instruments (IPC3.x) in aktiver Entwicklung
- Eigene Datenübertragung, Zugriff auf gemeinsamen Speicher (leider wenig Informationen von TI)
- Weniger Daten! Vorhandene Datenübertragung ist problemlos, wenn wenig Daten übertragen werden müssen.
- Hoffentlich weitere Entwicklungen aus der Community oder durch reale Industrieprojekte.
http://sourceforge.net/projects/sosoc/?source=directory
![Page 30: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/30.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 30
Verwendung eines graphischen Co-Prozessors: GPU
GPUs für embedded Systems haben meist wesentlich kleinere Leistungen als Desktop GPUs
GPUs sind hochparallele Strukturen, die zur schnellen Verarbeitung von graphischen Objekten verwendet werden.
Für Desktops existieren Framworks zur Verwendung von GPUs für hochparallele „nichtgraphische“ Berechnungen (z.B. CUDA (Compute Unified Device Architecture) von Nvidia)
![Page 31: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/31.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 31
Die verwendete Plattform: Allwinner SoC A13
![Page 32: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/32.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 32
The OpenGL Shading language
- Programmiersprache ähnlich wie ANSI C- mit speziellen Datentypen (Vektoren und Matrizen)
http://rnd.azoft.com/fluid-dynamics-simulation-on-ios/
![Page 33: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/33.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 33
Die OpenGL2.0-Pipeline
Vertex-Shader
Primitive-Assemby Rasterization
Fragment Shader
Per-Fragment Operations
Framebuffer
Vertex-Arrays
Textures
Use
r-p
rog
ram
Data
Code
Berechnung von 3-D Objekten. Das Programm wird für jeden
Vertex einmal ausgeführt
Berechnung der Farben im Raum. Programm wird für jeden Pixel
ausgeführt
![Page 34: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/34.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 34
Shading Sprache
Möglichkeiten:
- Verschiedene Datenstrukturen- Programmflusselemente
(Funktionen, Schleifen, if-else.... )- arithmetische Operationen - Vektor- und Matrix-Operationen (bis 4x4 Matrix)
Aber Einschränkungen bei:
- Genauigkeit (16-bit oder RGBA-Rückgabedaten)- Geschwindigkeit der Datenübertragung (vorallem Datenrückgabe) - Dokumentation: innere Struktur der Chips ist meist nicht offen.
http://tomdalling.com/blog/modern-opengl/03-matrices-depth-buffering-animation/
![Page 35: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/35.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 35
Besipiel: Fractale; Mandelbrot
![Page 36: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/36.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 36
Ergebnisse
![Page 37: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/37.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 37
LIMA Driver
Reverse engineering des OpenGL-Drivers für MALI-GPUs
http://limadriver.org/
![Page 38: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/38.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 38
Der Cell-Prozessor Synergistic Processing Element
Power Processing Element
![Page 39: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/39.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 39
Warum war der Cell-Prozessor ein Flop ?
Matthew Scarpino; „Programming the Cell processor“ ISBN 978-0-13-600886-6:
Epilogue:
“At some point in the history of music, single instrument compositions gave way to full polyphonic arrangements. Can you imagine it? One day the audiences cheer at your flute solos, the next day they demand not only multiple flutes, but also drums and lyres! Many composers must have thrown down their quills and stormed away. But others, such as Bach and Vivaldi, embraced the challenge and created works that continue to draw cheers centuries later.”
![Page 40: Heutige Möglichkeiten von Prozessoren in eingebetteten ... · Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 10 Ziel: Erstellen eines Frameworks,](https://reader035.vdokument.com/reader035/viewer/2022071007/5fc49ad080ef6567ea0eebb4/html5/thumbnails/40.jpg)
Chemnitzer Linux Tage 2014, Wolfram Luithardt, EIA-Fribourg Schweiz, 15.3.2014 40
Vielen Dank für die
Aufmerksamkeit !
Und Schluss....
Ein grosses Dankeschön auch an das SOSoC-Team:
Olivier Nasrallah Daniel RossierAlberto DassattiJérôme Stadelmann
Xavier BlancNuria PazosFlorian SauserSerge Monnerat
und an Yann Kurzo
Und an Texas Instruments für die Unterstützung des SOSoC-Projects