280 likes | 377 Views
D iscover P yra t ec’s TombExplorer 2.0. Pré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
E N D
Discover Pyratec’sTombExplorer 2.0 Pré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
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 Introduction
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 Description générale du système
Schéma bloc du système Description générale du système
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
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
Maintenance de l’état du labyrinthe Tour des différentes modules
Calcul du chemin vers le trésor • Algorithme itérative à 10 itérations par seconde 4 3 2 3 4 5 2 1 4 5 2 1 0 1 2 9 8 7 4 3 8 7 6 5 4 Tour des différentes modules
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
CPU1 – Schéma local Tour des différentes modules
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) • Writeonly (excepté un mot de status) Tour des différentes modules
Schéma bloc du contrôleur VGA Tour des différentes modules
Illustration du double buffering Tour des différentes modules
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
Schéma bloc de l’instruction spécialisée Tour des différentes modules
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
Unité de Bresenham • Traçage des lignes à 1 pixel par coup d’horloge Tour des différentes modules
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
Schéma bloc / Machine à états Tour des différentes modules
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
Pile des protocoles Tour des différentes modules
Modes de navigation Tour des différentes modules
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
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 Robustesse et vérification
Développements futurs (Version 3.0) • Ajout de son • Ajout de la vrai 3D (ev. avec textures) • Interfaçage avec un manette de jeu Développements futurs (Version 3.0)
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) Conclusion
Questions…? Pyratec’sTombExplorer 2.0 Questions