Upload
juliette-leleu
View
103
Download
0
Embed Size (px)
Citation preview
Discover PyraTec’s TombExplorer 2.0Présentation par:
Burri Samuel, CEO
Kader Abdoul-Keita, Chief Marketing
Ferreira Olivier, Lead Software Designer
Moumbe Arno-Patrice, Lead Hardware Designer
Contenu Introduction Description générale du système Tour des différente modules
CPU0 – Processeur principale CPU1 – Processeur graphique CPU2 – Processeur communication
Robustesse et vérification Développements futurs (Version 3.0) Conclusion/Questions
Contenu
3Introduction
Introduction PyraTec
Fondé en 2008 Basé à Montréal avec locaux en Egypte 430 employés Système le plus répandu pour
l’exploration des pyramides Présentation de la nouvelle version
(2.0) du système TombExplorer
4Description générale du système
Description générale du système 3 CPUs – Nios II/f
4kB cache d’instructions 2kB cache de données Hardware multiplier/divider Instructions et données locales dans la
SDRAM Instruction de débogage décale des
DELs Compteur des milliseconds (ajustable)
Modules matériels pour accélérer l’affichage
5Description générale du système
Schéma bloc du système
Tour des différentes modules 6
Tour des différentes modules CPU0 – Processeur principale
Interconnexions avec les autres processeurs Modules logiciels (Représentation du labyrinthe,
Algorithmes) CPU1 – Processeur graphique
Contrôleur VGA optimisé Instruction spécialisé pour le calcul d’intensité des
ellipses et les transformations 3D-2D (divisions) Modules matériels pour le traçage des lignes et
des quadrilatères CPU2 – Processeur communication
Communication avec les modules Ethernet et PS2 Pile des protocoles réseaux Assistance logiciel pour la navigation
Tour des différentes modules 7
CPU0 – Processeur principale 4 Fifos pour la communication avec
les autres processeurs (2 x In/Out) Tâches logiciels
Interprétations (2D) des paquets du serveur et maintenance de l’état du labyrinthe
Passer les paquets au CPU1 pour l’affichage 3D
Passer des message de CPU2 au CPU1 Génération et interprétation des paquets
intra-équipe (état du labyrinthe) Calcul du chemin vers le trésor
Tour des différentes modules 8
Maintenance de l’état du labyrinthe
Tour des différentes modules 9
Calcul du chemin vers le trésor Algorithme itérative à 10 itérations par seconde
0 1 2
34
45
1
1
2
2
2
33
4
44
5 5
6
7
78
9 8
Tour des différentes modules 10
CPU1 – Processeur graphique Interprétation des paquets pour
l’affichage 3D Reçoit les commandes d’affichage (2D)
du CPU0 Accès directe au contrôleur VGA Instruction spécialisée pour le calcul de
l’intensité des ellipses et les transformations 2D-3D (divisions)
Module matériel pour le traçage des lignes
Module matériel pour le traçage des quadrilatères
Tour des différentes modules 11
CPU1 – Schéma local
Tour des différentes modules 12
Contrôleur VGA Basé sur le contrôleur VGA du laboratoire
#4 Double buffering sur la partie gauche de
l’écran (configurable) Coordonnées X et Y en 12 bits Clipping sur un rectangle spécifié Palette des couleurs configurable en logiciel Bande passante doublé pour les accès
sequentiel (env. 1 pixel par coup d’horloge -> 132 écrans complets par seconde)
Write only (excepté un mot de status)
Tour des différentes modules 13
Schéma bloc du contrôleur VGA
Tour des différentes modules 14
Illustration du double buffering
Tour des différentes modules 15
Instruction spécialisée Contient deux unité de division
(lpm_divide) Utilise une unité de carré
(lpm_square) Machine d’états pour calculer la
racine carré Calcul de l’intensité des ellipses
Intensité de 4 pixels en 18 cycles Résultat entre 0 et 63 (6 bits)
Deux divisions en parallèle en 11 cycles (résultats sur 16 bits)
Tour des différentes modules 16
Schéma bloc de l’instruction spécialisée
Tour des différentes modules 17
Module de traçage des lignes Interface master pour le contrôleur
VGA Unité de Bresenham pour le traçage
des lignes Fifo pour les commandes du
processeur
Tour des différentes modules 18
Unité de Bresenham Traçage des lignes à 1 pixel par coup
d’horloge
Tour des différentes modules 19
Module de traçage des quadrilatères Interface master pour le contrôleur VGA
2 Unité de Bresenham pour tracer les extrémités gauches et droites
Machine à état pour remplir des quadrilatères spécifié par le processeur (sens de l’aguille du montre)
Vitesse: 20 coups d’horloge pour le setup + 1 coup par pixel
Fifo pour les commandes du processeur
Tour des différentes modules 20
Schéma bloc / Machine à états
Tour des différentes modules 21
CPU2 – Processeur communication Interagit avec CPU0 Accède au contrôleur réseau et PS2 Vérifie les paquets entrant du réseau Génère les paquets vers le serveur et
les coéquipiers Réagit sur les messages du clavier Assiste l’utilisateur dans la navigation
du labyrinth
Tour des différentes modules 22
Pile des protocoles
Tour des différentes modules 23
Modes de navigation
Robustesse et vérification 24
Robustesse et vérification La base matériel est stable depuis
plusieurs semaines (Version 1.0 sur un processeur)
Les modules logiciels ont été testés individuellement
Les modules matériels ont été testés par des programmes de test et de vérification
Robustesse et vérification 25
Points critiques Cohérence des données entre
plusieurs processeurs (caches) Utilisation des pointeurs (aucune
protection de mémoire) Au cas des interruptions les
structures partagé doivent supporter la concurrence ou désactiver les interruptions
Développements futurs (Version 3.0) 26
Développements futurs (Version 3.0) Ajout de son Ajout de la vrai 3D (ev. avec textures) Interfaçage avec un manette de jeu
Conclusion 27
Conclusion Points forts
Plusieurs modes de navigation Intelligence artificiel Module VGA efficace (double buffering, clipping,
palette logiciel, double bande passante) Modules matériels pour l’affichage des primitives Pile des protocoles complet et efficace Déploiement rapide (code exécutable dans la
flash, script de programmation) Faiblesses:
Qualité du code (Nombres magiques, commentaires)
Prix: 2230$, 1230$ pour les étudiants (support et code source compris)
PyraTec’s TombExplorer 2.0
QUESTIONS…?
28Questions