Vers du matériel libre



Documents pareils
Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Chapitre 4 : Les mémoires

Leçon 1 : Les principaux composants d un ordinateur

Structure de base d un ordinateur

Architecture des ordinateurs

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Une méthode de conception de systèmes sur puce

Conférence sur les microcontroleurs.

MAC-TC: programmation d un plate forme DSP-FPGA

Contributions à l expérimentation sur les systèmes distribués de grande taille

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Chapitre 1 : Introduction aux méthodologies de conception et de vérification pour SE

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Les systèmes embarqués Introduction. Richard Grisel Professeur des Universités Université de Rouen Nacer Abouchi Professeur ESCPE Lyon

Conception de circuits numériques et architecture des ordinateurs

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

[ Rencontres Mondiales du Logiciel Libre 2011 Lundi 11 juillet 2011 ] Introduction à l'open Hardware Auteur : Dr Ir Robert Viseur

Conception des systèmes répartis

Éléments d'architecture des ordinateurs

Structure et fonctionnement d'un ordinateur : hardware

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Architecture matérielle des systèmes informatiques

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

Architecture des ordinateurs

HP 600PD TWR i G 4.0G 39 PC

Premiers pas sur l ordinateur Support d initiation

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

L intelligence intégrée et connectée au cœur de vos projets. Dossier de presse

CH.3 SYSTÈMES D'EXPLOITATION

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

Matériel & Logiciels (Hardware & Software)

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Exécution des instructions machine

Cours 3 : L'ordinateur

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

LOT 1 - ACQUISITION DE SERVEURS INFORMATIQUES LOT 2 - ACQUISITION DE 5 POSTES INFORMATIQUES

Spécifications détaillées

IV- Comment fonctionne un ordinateur?

Thème 3 Conception et vérification d architectures de systèmes sur puce

Cours Informatique 1. Monsieur SADOUNI Salheddine

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Architecture des calculateurs

PODIUM_ e-station. E-STATION COMPONENT

Pré-requis techniques

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

CI 1 PROBLEME : Quelles sont les fonctions et les caractéristiques d un environnement informatique?

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

Exigences système Edition & Imprimeries de labeur

Réalisation d un réseau de capteurs de température sans fil basé sur le protocole ZigBee

11 Février 2014 Paris nidays.fr. france.ni.com

escan Entreprise Edititon Specialist Computer Distribution

KX GPRS SERIAL ETHERNET MODEM Le modem GPRS/EDGE «Machine to Machine»

Initiation à l informatique. Module 1 : Le Matériel

Alchin Couderc Flambard TBSEID 2

Machines virtuelles Cours 1 : Introduction

Electron S.R.L. SERIE B46 - SYSTEMES DIDACTIQUES DE TELEPHONIE

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Génération de code binaire pour application multimedia : une approche au vol

Mini_guide_Isis.pdf le 23/09/2001 Page 1/14

Architecture des ordinateurs Introduction à l informatique

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Série Pro Toshiba Business Vision

Diffusez et enregistrez vos réunions en direct Richmedia SYSTEM

LES MÉMOIRES FLASH : ENTRE MÉMOIRE VIVE ET MÉMOIRE DE STOCKAGE. Etienne Nowak 12 mars Etienne Nowak - 12 mars GIS-SPADON

Initiation. àl algorithmique et à la programmation. en C

Tests de performance du matériel

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Initiation au HPC - Généralités

RIE LE RENDU THEO. 2 e trim ÉTAPE DE FINITION BOÎTE DE DIALOGUE. remarques

PIC EVAL Dev Board PIC18F97J60

Fiche technique CPU 314SC/DPM (314-6CG13)

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

nom : Collège Ste Clotilde

Limitations of the Playstation 3 for High Performance Cluster Computing

Programmation C. Apprendre à développer des programmes simples dans le langage C

Profil UML pour TLM: contribution à la formalisation et à l automatisation du flot de conception et vérification des systèmes-sur-puce.

TABLE DES MATIÈRES 1. DÉMARRER ISIS 2 2. SAISIE D UN SCHÉMA 3 & ' " ( ) '*+ ", ##) # " -. /0 " 1 2 " 3. SIMULATION 7 " - 4.

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Fiche technique CPU 315SN/PN (315-4PN33)

Chapitre II-2 : Conception SoPC (Altera)

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Séminaire RGE REIMS 17 février 2011

Openmoko, free your phone!

Introduction à l informatique temps réel Pierre-Yves Duval (cppm)

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

á Surveillance en temps réel á Contrôle PTZ á Enregistrement

Une solution de stockage VDI unifiée, flexible et disponible pour vos utilisateurs

Modélisation des interfaces matériel/logiciel

Transcription:

Février 2011

La liberté du logiciel n est qu une partie du problème.

Winmodems

Modem traditionnel Bon fonctionnement Plus cher Electronique propriétaire Blob sur DSP intégré au modem Bien reçu par les libristes Modifications difficiles Winmodem Idem Très bon marché Idem Blob sur CPU de l ordinateur Mal reçu par les libristes Modifications plus faciles

Pourquoi regarder plus loin que les spécifications du matériel?

Transparence des technologies.

Nouveaux modèles de fabrication du matériel.

Libertés pour les utilisateurs finaux.

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Openmoko

CC-BY-SA, Pas de PCB

Arduino

CC-BY-SA

CC-BY-SA

Ben Nanonote

CC-BY-SA

CC-BY-SA

Milkymist One

CC-BY-SA

CC-BY-SA

Kicad GNU GPL

geda GNU GPL

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Boîtier Openmoko CC-BY

QCad et boîtier Milkymist One GPL (QCad), CC-BY-SA (boîtier)

RepRap

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Pourquoi s intéresser aux semiconducteurs?

source : visual6502.org

source : visual6502.org

source : visual6502.org

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Très coûteux Haute technologie Secrets industriels

MOSIS Jeri Ellsworth home chip fab

FPGAs Silicium reconfigurable ( CD-RW ) Accessibles Moins performants qu une puce sur mesure Outils de développement propriétaires

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Magic MIT

Toped GPL

Comment faire pour 125 millions de transistors?

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Elever le niveau d abstraction.

Langages de description du comportement du matériel (HDL).

Outils de synthèse automatiques.

Outils de synthèse Propriétaires et fonctionnels : Très chers Interviews (parfois!) Location de licences Serveurs de licences NDAs Gratuits pour certains FPGA Libres et pas encore fonctionnels : Alliance LLHDL

Outils de simulation Bon choix de solutions libres fonctionnelles : Verilator GPL Cver Icarus Verilog GHDL

OpenSPARC

LEON3/GRLIB

LatticeMico32

Milkymist SoC

Logiciel Spécifications du matériel Conception logique (HDL) Implémentation en semiconducteurs Fabrication des semiconducteurs Schémas électroniques traditionnels et circuits imprimés Mécanique

Débuts et objectifs du projet Milkymist

VJing

MilkDrop

Processus itératif simple : Tracer des objets à l écran onde bordures sprites, video live programmable (patch), langage de script possibilités d interaction Tordre l image zoom, rotation, warping,... distorsion programmable également Recommencer!

Ordinateur embarqué.

Interfaces (video, MIDI, DMX,...) intégrées.

Faible latence.

Difficultés Taille, vitesse et coût d un FPGA Objectif : produit commercialement viable Equilibre entre matériel et logiciel (cf. winmodem) Le logiciel est bon marché et lent, le matériel est cher et rapide Problèmes liés à la mémoire : taille, bande passante, latence Puissance de calcul Distorsion de l image Exécution du patch

Choix du coeur de CPU (OpenSPARC, LEON3, LM32,...)

Périphériques de base.

Port série.

Mémoire flash.

Bus d interconnexion.

Entrée-sorties mappées en mémoire.

/* notice the use of volatile */ volatile unsigned int *my_peripheral; /* peripheral memory mapped at 0xc0001004 */ my_peripheral = (unsigned int *)0xc0001004; /* write word to peripheral */ *my_peripheral = 0xbaadf00d; /* read word from peripheral */ printf("result: %08x\n", *my_peripheral);

Interruptions.

Exemple : port série. Registre de données à 0xe0000000. Interruption 0 après un caractère complètement reçu. Interruption 1 après un caractère complètement envoyé.

void transmit(char c) { /* ecriture du caractère */ *((volatile unsigned int *)0xe0000000) = c; /* attente de la fin de l envoi */ while(!(lm32_interrupts_pending() & (1 << 0))); /* acquittement de l interruption */ lm32_interrupt_ack(1 << 0); }

char receive() { /* attente de réception */ while(!(lm32_interrupts_pending() & (1 << 1))); /* acquittement de l interruption */ lm32_interrupt_ack(1 << 1); /* lecture du caractère */ return *((volatile unsigned int *)0xe0000000); }

Accès direct à la mémoire (DMA). Les périphériques peuvent écrire directement en mémoire. Accès maître au bus (au même titre que le CPU). I/O ou accélérateurs de calculs. Bénéfice : performance!

char buffer[8192]; void start_process() { (...) /* remplissage du buffer */ /* programmation de l adresse du buffer */ *((volatile unsigned int *)0xc0001000) = (unsigned int)buffer; /* démarrage du calcul dans le périphérique */ *((volatile unsigned int *)0xc0001004) = 1; /* CPU disponible pour d autres calculs! */ } void on_dma_interrupt() { /* le périphérique envoie une interruption à la fin */ get_results(buffer); ack_interrupt(); }

Périphériques DMA dans Milkymist Affichage VGA Ethernet Audio AC 97 Entrée vidéo Accélération graphique

VGA

Framebuffer lu par DMA Rafraîchissement de l écran automatique Données dans l ordre du scan VGA 16 bits par pixel (RGB565)

Problèmes de bande passante mémoire Task VGA frame buffer, 1024x768, 75Hz, 16bpp Distortion : texture mapping, 512x512 to 512x512, 30fps, 16bpp Live video : texture mapping, 720x576 to 512x512 with transparency, 30fps, 16bpp Scaling : texture mapping, 512x512 to 1024x768, 30fps, 16bpp Video echo : texture mapping, 512x512 to 1024x768 with transparency, 30fps, 16bpp NTSC input, 720x576, 30fps, 16bpp Software and misc. Total Bandwidth 950Mb/s 250Mb/s 300Mb/s 500Mb/s 900Mb/s 200Mb/s 200Mb/s 3.3Gb/s

Capacité nécessaire de plusieurs Mo = mémoire externe.

Un chip DDR SDRAM à 100MHz : Quelques dollars Maximum de 2 transferts par cycle : 200Mt/s 16 bits par transfert 3.2 Gb/s de bande passante maximum

Latence mémoire

Heuristique des transferts en rafale (burst).

Heuristique des transferts en rafale (burst). Très simple à implémenter. Fonctionne naturellement pour le scan VGA. Idem pour l acquisition video. Logiciel : cache, principe de localité spatiale et temporelle. Distorsion d image : étudié dans la suite.

Distorsion d image?

Plus formellement : Texture mapping dans OpenGL On couvre l image cible d un maillage A chaque sommet (vertex) du maillage : attribution de coordonnées de l image source (texture) Remplissage de chaque maille avec interpolation linéaire des coordonnées

Performance? 1024x768, 30fps = 24Mpixels/s Horloge 100MHz = 4 cycles/pixel Implémentation naïve : 100 cycles calcul + 12 cycles lecture mémoire + 12 cycles écriture mémoire Ouch!

Solutions? Meilleur algorithme (basé sur Bresenham) Parallélisme SIMD (même opération sur données indépendantes) Pipeline Accès mémoire intelligent : cache, tampon d écriture

Problème de la lecture mémoire La lecture occupe déjà 12 cycles, et nous en avons 4 maximum! Idée : utiliser les transferts en rafale et un cache...

Cache direct-mapped

Cache de 32Kio = 95% de hits Temps moyen = 0.05*(12+3) + 0.95*1 = 1.7 cycles!

Performance système (Mpixels/s) mesurée

Calcul des sommets (vertices) Grille 64x64, 30 fois par seconde, horloge 100MHz Calculs flottants assez lourds (est. 470 opérations de base/sommet 1 ) Contrainte : CPI < 1.73 Logiciel traditionel (+ FPU) : CPI > 5 1 pour 150 ops de base, 8 divisions/racines, et 20 trigo ; divisions/racines = 15 ops, trigo = 10 ops

Exécution en désordre (out-of-order execution).

Patch Inst. Cycles CPI Default 192 259 1.35 The Tunnel 208 286 1.38 Warp of Dali 1 220 292 1.33 Digital Flame 216 293 1.36 Wormhole Pillars 231 326 1.41

Conclusions : Il existe aussi du matériel libre! Un algorithme peut être aussi bien en logiciel qu en matériel. Il faut considérer un système dans son ensemble. Les circuits intégrés sont importants. Vous pouvez expérimenter avec des FPGA. Milkymist One est disponible dans le commerce... Autre source en ce moment : récupération de cartes de conversion HDTV Quelques techniques classiques de l industrie des microprocesseurs : Memory mapped I/O, DMA Parallélisme Transferts mémoire en rafale (burst) Caches Exécution en désordre... Merci pour votre attention!