610 likes | 976 Views
Cartes Graphiques. Plan. Historiques et modes graphiques Architecture-évolution des composants RAMDAC (CRT/DVI) Bus Mémoire Accélérateur graphique/GPU Vertex Shader Pixel Shader. Plan. Historiques et modes graphiques Architecture-évolution des composants RAMDAC (CRT/DVI) Bus Mémoire
E N D
Plan • Historiques et modes graphiques • Architecture-évolution des composants • RAMDAC (CRT/DVI) • Bus • Mémoire • Accélérateur graphique/GPU • Vertex Shader • Pixel Shader
Plan • Historiques et modes graphiques • Architecture-évolution des composants • RAMDAC (CRT/DVI) • Bus • Mémoire • Accélérateur graphique/GPU • Vertex Shader • Pixel Shader
Historique/modes graphiques • 1ère carte graphique: • Par IBM en 1981 • MDAs: Monochrome Display Adapters • Mode texte uniquement 80x25 caractères à 50Hz • Port imprimante • HGC • CGA • EGA • VGA • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC: • Par Hercules (fondée en 1982) • Hercules Graphics Card (compatible MDAs) • Mode graphique monochrome 720x348 • CGA • EGA • VGA • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA (contre attaque d’IBM): • Mode Graphique Couleur 320x200x4 • Essentiellement jeux vidéos • Manque de résolution pour bureautique • EGA • VGA • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA (Enhanced Graphics Adapter): • Par IBM en 1984 • Résolution max: 640x350x16 couleurs • Palette de 64 couleurs • Fréquence de 60Hz • VGA • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA • VGA (Video Graphic Array): • Par IBM en 1987 • Résolution 640x480x16 – 320x200x256 • Palette de 262.144 couleurs (6 bits) • 1er standard vidéo à fonctionner en analogique • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA • Amélioration du VGA par IBM: • 8514/A (1987):1024x768x256 43.5Hz entrelacé640x480 60Hz non-entrelacé • … • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA • Amélioration du VGA par IBM: • XGA (eXtended Graphics Array):Introduit en 1990, successeur du 8514/A512Kb/1Mb VRAM 1024x768x256 – 640x480x16bits • … • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA • Amélioration du VGA par IBM: • XGA2: XGA avec fréquence plus élevées1024x768x16bits800x600x24bits • SVGA • XGA, SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA • VGA • SVGA (SuperVGA): • Basé sur le VGA avec spécif du constructeur • Reconnu standard du mode 800x600 • ‘Video Electronics Standards Association’ propose une interface logiciel standard : le VESA SVGAou VESA BIOS Extension (VBE) • SXGA, UXGA et autres
Historique/modes graphiques • MDAs • HGC • CGA • EGA • VGA • SVGA • SXGA, UXGA… • UVGA (UltraVGA) et XGA: standard 1024x768 • SXGA (SuperXGA): standard 1280x1024 • UXGA (UltraXGA): standard 1600x1200
Plan • Historiques et modes graphiques • Architecture-évolution des composants • RAMDAC (CRT/DVI) • Bus • Mémoire • Accélérateur graphique/GPU • Vertex Shader • Pixel Shader
Architecture • RAMDAC (CRT vs DVI) • Bus • Mémoire • Accélérateur Graphique (2D)/GPU (3D) BUS Accélérateur Graphique GPU Mémoire centrale Mémoire vidéo DVI RAMDAC CRT
Architecture BUS Accélérateur Graphique GPU Mémoire centrale Mémoire vidéo DVI RAMDAC CRT • RAMDAC (CRT vs DVI) • Bus • Mémoire • Accélérateur Graphique (2D)/GPU (3D)
Architecture - RAMDAC • « Random Access Memory Digital to Analogic Converter » • Numérique -> Signal analogiquepour périphérique CRT(Cathotique Ray Tube) • Fréquence interne liée à la fréquence de rafraîchissement du moniteur • Accès à la mémoire vidéo (« framebuffer »)
Architecture - RAMDAC Du « framebuffer » au RAMDAC: Le RAMDAC peut recevoir les formats suivants: • «True Color»: 1 octet/composante => 24bits • «HiColor»: 5bits (rouge et bleu)-6bits (vert) =>16 bits (65536 couleurs)ou 5 bits/composante => 15 bits soit 2 octets (32768 couleurs) • RGBA: «True Color» avec canal Alpha (32 bits) • Fausses Couleurs: Indexation d’une palette de couleur (24bits/couleur) => envoi des couleurs indexées
Architecture - RAMDAC • Persistance rétinienne => rémanence visuelle => effet d’animation (25Hz – 30Hz) • Fréquence de rafraîchissement de l’image au minimum 50Hz (entrelacé*)Confort des yeux à fréquence >= 72Hz => Fréquence interne élevé (en Mhz) => Accès mémoire très fréquent *: Affichage des lignes paires puis impaires
Architecture - RAMDAC Calcul théorique de la fréquence interne: • Taille de l’écran: largeur x hauteur • Fréquence visuelle (ex: 75Hz): freq Freq. interne=largeur x hauteur x freq x 1.32 Raison du facteur 1.32: Canon à électron perd ~32% du temps pour les déplacements horizontaux et verticaux
Architecture - RAMDAC • Exemples: • ATI Radeon 9800: Bi-RAMDAC 400Mhz • 1600x1200 -> 120Hz (pas de 160 Hz !!) • 2048x1536 -> 85Hz (pas de 90 Hz !!) • nVidia GeForce FX 5900: Bi-RAMDAC 400Mhz • 2048x1536 -> 85Hz (pas de 90 Hz!!) • Pour assurer une résolution 1600x1200 à 85Hz,il faut un RAMDAC d’au moins: 1600x1200x85x1.32 Hz = 205 Mhz • Problème actuel: Limitation du moniteur !!
Architecture - RAMDAC • DVI (Digital Video Interface) • Specif. par ‘Digital Display Working Group’(DDWG) • Accomodation pour périph. digital ET analogique • 3 normes: • DVI-A: signaux analogiques en sortie • DVI-D: signaux digitaux en sortie • DVI-I (‘Integrated’): fait pour les 2 types de sortie • DVI-D & DVI-I: périph. digital (écran plat…) => Pas de RAMDAC !
Architecture BUS Accélérateur Graphique GPU Mémoire centrale Mémoire vidéo DVI RAMDAC CRT • RAMDAC (CRT vs DVI) • Bus • Mémoire • Accélérateur Graphique (2D)/GPU (3D)
Architecture - Bus • ISA (Industry Standard Architecture ): • 1981: 8bits à 4.7Mhz (sur les 8086) • 80286 (1984) => 16bits 6Mhz (puis 8Mhz) • Débit max de 5.5Mo/s • Goulet d’étranglement dès l’arrivé du 80386 Les - : Le bus le + lent !! Les +: Facilement utilisable & peu coûteux
Architecture - Bus • MCA (Micro Channel Architecture): • Développé et utilisé par IBM (avec ses PS/2) • Incompatible avec l’ISA => Monopole d’IBM • 1er bus à 32bits - 10Mhz (40Mo/s) • EISA (Enhanced ISA) 1988: • Développé par des constructeurs(Compaq…)pour contre-attaquer le MCA d’IBM • Architecture 32bits, compatible ISA 8/16bits • 8.33 Mhz (compatibilité ISA) - 33 Mo/s • Utilisation: application lourde (Serveurs de fichier…)
Architecture - Bus • VLB (VESA Local Bus): • En 1992 par « Video Electronics Standards Association » • Extension du bus local du processeur (port ISA étendu) • Spécifique aux cartes graphiques • Largeur: 32 bits • Fréquence externe du processeur: ~33-50Mhz • Débit: 130Mo/s (40Mo/s en pratique) • VLB 2.0 fonctionne en 64bits
Architecture - Bus • PCI (Peripheral Component Interconnect): • En 1993 par Intel en réponse au VLB • PCI 1.0: 32bits - 33Mhz => 132Mo/s (le + courant) • PCI 2.0: 64bits (33,66,133Mhz) pour serveurs ! • Meilleur que le VLB car certaines fonctionnalités: • Bus Master (transfert direct entre 2 périph. PCI) • ‘Look Ahead’ (anticipation) • ‘buffering’ (stockage temporaire de l’information => meilleur débit… • Incompatible avec l’ISA => Slots PCI+ISA • Devenu un standard, mais goulet d’étranglement !
Architecture - Bus • Port AGP (Accelerated Graphics Port): • Fin 1997 par Intel (palier au pb du PCI) • Spécifique aux cartes graphiques • Basé sur le standard PCI2.1 => 66Mhz • Architecture 32 bits • Version Pro : 110W (au lieu de 50W)
Architecture - Bus • Port AGP: • Bus Mastering (accès direct à la mémoire) • Pipelining: requête en série ( PCI attente d’ack) • SBS (Side Band Signaling) ou SBA(Side Board Adressing): 32bits du bus + 8bits (broches latérales) pour le contrôle (requêtes) et la synchro AGP<->Carte graphique • 2 modes de fonctionnement: • Mode DMA ou PIPE(local texturing): accès direct à la mémoire centrale • Mode DIME (Direct Memory Execute): traitement des textures en mémoire centrale
Architecture - Bus • Port AGP: • 1x: débit de 264Mo/s (codage sur les fronts montant) • 2x: débit de 528Mo/s (codage sur les deux front) • PIPE: envoie donnée+contrôle multiplexé… • SBA: envoie donnée+contrôle démultiplexé • 4x: débit 1Go/s (double les infos sur chaque front) • => mémoire suffisamment rapide (DDR ou RAMBUS) • «Fast Write»: accès direct mémoire vidéo • 8x: débit 2Go/s (quadruple les infos sur chaque front)Mais gain minuscule de 5% par rapport au 4x.
Architecture - Bus • Demain: PCI-Express • Très peu d’informations • PCI en série • Très performant !! • ?
Architecture BUS Accélérateur Graphique GPU Mémoire centrale Mémoire vidéo DVI RAMDAC CRT • RAMDAC (CRT vs DVI) • Bus • Mémoire • Accélérateur Graphique (2D)/GPU (3D)
Architecture - Mémoire • Importance du débit:Un écran de 1024x768x24bits à 70Hz => débit de 1024*768*3*70=157Mo/s • Multiple accès:Processeur graphique & RAMDAC => latence • DRAM (DynamicRAM): • Type FPM (Fast Page Mode): Rafraîchi très souvent=>latence(+asynchrone)=>accès en 70ns • 225Mo/s (33Mhz-50Mhz) • La plus lente et dépassé
Architecture - Mémoire • DRAM EDO (DRAM Extended Data Out): • 400Mo/s (inadaptée pour des fréquence > 66Mhz) • Accès réduit à 50-60ns (système de cache de l’adresse de la prochaine cellule à lire/écrire) • Surtout employé par 3DFX (Diamond Monster 3D et Diamond Monster 3D II) mais aussi par S3 (Virge 3D). • VRAM (VideoRAM): • 625Mo/s (30% + chère que DRAM) • Jusqu’à 80Mhz - Temps d’accès 20-25ns • « Dual Port » (grâce à 1 registre à décalage)
Architecture - Mémoire • WRAM (WindowsRAM): • 960Mo/s • VRAM avec circuit 32 bits (accessible par bloque) • Fonctionnalités 2D (transfert de mémoire…) • Matrox avec sa Millennium II • MDRAM (Multi-bankDRAM): • Accès simultanés • 500 Mo/s • Cartes S3, Hercules Dynamite 128, Tseng Labs ET 6000
Architecture - Mémoire • SDRAM (SynchronousDRAM): • Apparue en 1997 • Synchronisée avec le bus mémoire • Temps d’accès: 10-12ns • Fréquence 66Mhz à 133Mhz • 500,800,1.060 Mo/s -> 66,100,133Mhz
Architecture - Mémoire • SGRAM (SynchronousGraphicRAM): • SDRAM optimisée pour le graphique • « Single Port » • Synchronisée au bus mémoire (<=100Mhz) • Exemple: « Matrox Mystique » • Techniques: • «Masked write»: modif en 1 cycle • Mode rafale ou «Block write»: récupération et modification par bloque entier
Architecture - Mémoire • RAMBUS • Soutenue par intel • A 300Mhz, 1,2Go/s • A 400Mhz, 1,6Go/s • Enorme latence
Architecture - Mémoire • DDR-SDRAM(Double Data RateSDRAM): • 2 informations transferées par cycle: • Front montant • Front descendant • Temps d’accès: 6ns • Fréquence de 100Mhz à 200Mhz • Débit de 1.5Go/s à 3Go/s • Exemple: GeForce FX (DDR400)
Architecture BUS Accélérateur Graphique GPU Mémoire centrale Mémoire vidéo DVI RAMDAC CRT • RAMDAC (CRT vs DVI) • Bus • Mémoire • Accélérateur Graphique (2D)/GPU (3D)
Architecture – 2D • Ancêtre des accélérateurs Graphiques: • Cartes à coprocesseur graphique (carte programmable) • Début 90 avec TIGA (TMS34020), ou P9000 (Carte Diamond Viper) • Dépassé ensuite par les cartes accélératrices • MAIS principe d’architecture graphique programmable réutilisé + tard en 3D
Architecture – 2D • Accélération des traitements 2D:ligne, rectangle, curseur souris, overlay, bitBLT • Décompression MPEG2 (DVD) • Tuner TV • Acquisition vidéo • Cartes 2D seules n’existent plus • Carte 3D pure (3dfx voodoo) • Maintenant, carte 2D/3D
Architecture – GPU (3D) • Pipeline de rendu 3D (triangle en entrée): • Transformation et éclairement • Culling, clipping,… • Triangle setup • Texturing, Fog • Rasterization (Alpha, Stencil, Depth test -> Alpha blending -> Dithering -> Channel mask) -> Framebuffer
Architecture – GPU->Transform • « Planter le décors »: • Placer l’objet courant dans la scène par rapport à la caméra… • Opérations matricielles 3d (homogène) • Translations, rotations, mise à l’échelle, projection
Architecture – GPU->Lighting • Modèle de Phong • Éclairement ambiant • Propriété générale de l’environnement • Éclairement diffus • Existe pour chaque source lumineuse • Éclairement spéculaire • Existe pour chaque source lumineuse
Architecture – GPU->Lighting • Éclairement ambiant: • Caf=Ca*la • Éclairement diffus: • Cdf=sum( Cd*Lid* (n.lidir) ) n ldir
Architecture – GPU->Lighting • Éclairement spéculaire: • Csf=sum( Cs*Lis* (v.ri) ) • Mais r=2(n.ldir)n-ldir (coûteux) n v r ldir => formule de Blinn-PhongCsf=sum( Cs*Lis* (n.hi) )avec h = ldir+v / |ldir+v| n h v ldir
Architecture – GPU->culling, clipping… • Culling: Orientation de la face (Counter Clock Wise) • Clipping: Découpe du triangle dans le volume de vision (frustum) • Projection sur l’écran (division par w) • Viewport mapping (coordonnées écran)
Architecture – GPU->triangle setup • Préparation des données pour l’étage du calcul des couleurs: • Délimitation du triangle par ses bords pour chacune de ses lignes (scanline) • Interpolation linéaire des données le long des bords (couleurs, z, coordonnées de textures…)
Architecture – GPU->Calcul de la couleur • Combinaisoncouleur d’éclairement / textures • Filtrage des textures (bilinéaire, tri linéaire…) • Différentes possibilités de combinaison • Possibilité de combinaison différente à chaque étage de texture (=> possibilité de gérer un bump-mapping) • Effet de brouillard (fog)