Title: Cartes Graphiques
1Cartes Graphiques
2Plan
- Historiques et modes graphiques
- Architecture-évolution des composants
- RAMDAC (CRT/DVI)
- Bus
- Mémoire
- Accélérateur graphique/GPU
- Vertex Shader
- Pixel Shader
3Plan
- Historiques et modes graphiques
- Architecture-évolution des composants
- RAMDAC (CRT/DVI)
- Bus
- Mémoire
- Accélérateur graphique/GPU
- Vertex Shader
- Pixel Shader
4Historique/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
5Historique/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
6Historique/modes graphiques
- MDAs
- HGC
- CGA (contre attaque dIBM)
- Mode Graphique Couleur 320x200x4
- Essentiellement jeux vidéos
- Manque de résolution pour bureautique
- EGA
- VGA
- SVGA
- XGA, SXGA, UXGA et autres
7Historique/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
8Historique/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
9Historique/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
10Historique/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
11Historique/modes graphiques
- MDAs
- HGC
- CGA
- EGA
- Amélioration du VGA par IBM
- XGA2 XGA avec fréquence plus élevées1024x768x16b
its800x600x24bits - SVGA
- XGA, SXGA, UXGA et autres
12Historique/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
13Historique/modes graphiques
- MDAs
- HGC
- CGA
- EGA
- VGA
- SVGA
- SXGA, UXGA
- UVGA (UltraVGA) et XGA standard 1024x768
- SXGA (SuperXGA) standard 1280x1024
- UXGA (UltraXGA) standard 1600x1200
14Plan
- Historiques et modes graphiques
- Architecture-évolution des composants
- RAMDAC (CRT/DVI)
- Bus
- Mémoire
- Accélérateur graphique/GPU
- Vertex Shader
- Pixel Shader
15Architecture
Accélérateur Graphique GPU
BUS
Mémoire centrale
Mémoire vidéo
DVI
RAMDAC
CRT
- RAMDAC (CRT vs DVI)
- Bus
- Mémoire
- Accélérateur Graphique (2D)/GPU (3D)
16Architecture
Accélérateur Graphique GPU
BUS
Mémoire centrale
Mémoire vidéo
DVI
RAMDAC
CRT
- RAMDAC (CRT vs DVI)
- Bus
- Mémoire
- Accélérateur Graphique (2D)/GPU (3D)
17Architecture - RAMDAC
- Random Access Memory Digital to Analogic
Converter - Numérique -gt 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 )
18Architecture - RAMDAC
- Du framebuffer au RAMDAC
- Le RAMDAC peut recevoir les formats suivants
- True Color 1 octet/composante gt 24bits
- HiColor 5bits (rouge et bleu)-6bits (vert)
gt16 bits (65536 couleurs)ou 5 bits/composante
gt 15 bits soit 2 octets (32768 couleurs) - RGBA True Color avec canal Alpha (32 bits)
- Fausses Couleurs Indexation dune palette de
couleur (24bits/couleur) gt envoi des couleurs
indexées
19Architecture - RAMDAC
- Persistance rétinienne gt rémanence visuelle gt
effet danimation (25Hz 30Hz) - Fréquence de rafraîchissement de limage au
minimum 50Hz (entrelacé)Confort des yeux à
fréquence gt 72Hz - gt Fréquence interne élevé (en Mhz)
- gt Accès mémoire très fréquent
20Architecture - RAMDAC
- Calcul théorique de la fréquence interne
- Taille de lécran largeur x hauteur
- Fréquence visuelle (ex 75Hz) freq
- Freq. internelargeur 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
21Architecture - RAMDAC
- Exemples
- ATI Radeon 9800 Bi-RAMDAC 400Mhz
- 1600x1200 -gt 120Hz (pas de 160 Hz !!)
- 2048x1536 -gt 85Hz (pas de 90 Hz !!)
- nVidia GeForce FX 5900 Bi-RAMDAC 400Mhz
- 2048x1536 -gt 85Hz (pas de 90 Hz!!)
- Pour assurer une résolution 1600x1200 à 85Hz,il
faut un RAMDAC dau moins 1600x1200x85x1.32 Hz
205 Mhz - Problème actuel Limitation du moniteur !!
22Architecture - 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) gt
Pas de RAMDAC !
23Architecture
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)
24Architecture - Bus
- ISA (Industry Standard Architecture )
- 1981 8bits à 4.7Mhz (sur les 8086)
- 80286 (1984) gt 16bits 6Mhz (puis 8Mhz)
- Débit max de 5.5Mo/s
- Goulet détranglement dès larrivé du 80386
- Les - Le bus le lent !!
- Les Facilement utilisable peu coûteux
25Architecture - Bus
- MCA (Micro Channel Architecture)
- Développé et utilisé par IBM (avec ses PS/2)
- Incompatible avec lISA gt Monopole dIBM
- 1er bus à 32bits - 10Mhz (40Mo/s)
- EISA (Enhanced ISA) 1988
- Développé par des constructeurs(Compaq)pour
contre-attaquer le MCA dIBM - Architecture 32bits, compatible ISA 8/16bits
- 8.33 Mhz (compatibilité ISA) - 33 Mo/s
- Utilisation application lourde (Serveurs de
fichier)
26Architecture - 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
27Architecture - Bus
- PCI (Peripheral Component Interconnect)
- En 1993 par Intel en réponse au VLB
- PCI 1.0 32bits - 33Mhz gt 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 linformation
gt meilleur débit - Incompatible avec lISA gt Slots PCIISA
- Devenu un standard, mais goulet détranglement !
28Architecture - 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 gt 66Mhz
- Architecture 32 bits
- Version Pro 110W (au lieu de 50W)
29Architecture - Bus
- Port AGP
- Bus Mastering (accès direct à la mémoire)
- Pipelining requête en série (? PCI attente
dack) - 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 AGPlt-gtCarte 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
30Architecture - 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éecontrôle multiplexé
- SBA envoie donnéecontrôle démultiplexé
- 4x débit 1Go/s (double les infos sur chaque
front) - gt 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.
31Architecture - Bus
- Demain PCI-Express
- Très peu dinformations
- PCI en série
- Très performant !!
- ?
32Architecture
Accélérateur Graphique GPU
BUS
Mémoire centrale
Mémoire vidéo
DVI
RAMDAC
CRT
- RAMDAC (CRT vs DVI)
- Bus
- Mémoire
- Accélérateur Graphique (2D)/GPU (3D)
33Architecture - Mémoire
- Importance du débitUn écran de 1024x768x24bits
à 70Hz gt débit de 1024768370157Mo/s - Multiple accèsProcesseur graphique RAMDAC gt
latence - DRAM (DynamicRAM)
- Type FPM (Fast Page Mode) Rafraîchi très
souventgtlatence(asynchrone)gtaccès en 70ns - 225Mo/s (33Mhz-50Mhz)
- La plus lente et dépassé
34Architecture - Mémoire
- DRAM EDO (DRAM Extended Data Out)
- 400Mo/s (inadaptée pour des fréquence gt 66Mhz)
- Accès réduit à 50-60ns (système de cache de
ladresse 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 daccès 20-25ns
- Dual Port (grâce à 1 registre à décalage)
35Architecture - 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
36Architecture - Mémoire
- SDRAM (SynchronousDRAM)
- Apparue en 1997
- Synchronisée avec le bus mémoire
- Temps daccès 10-12ns
- Fréquence 66Mhz à 133Mhz
- 500,800,1.060 Mo/s -gt 66,100,133Mhz
37Architecture - Mémoire
- SGRAM (SynchronousGraphicRAM)
- SDRAM optimisée pour le graphique
- Single Port
- Synchronisée au bus mémoire (lt100Mhz)
- Exemple Matrox Mystique
- Techniques
- Masked write modif en 1 cycle
- Mode rafale ou Block write récupération et
modification par bloque entier
38Architecture - Mémoire
- RAMBUS
- Soutenue par intel
- A 300Mhz, 1,2Go/s
- A 400Mhz, 1,6Go/s
- Enorme latence
39Architecture - Mémoire
- DDR-SDRAM(Double Data RateSDRAM)
- 2 informations transferées par cycle
- Front montant
- Front descendant
- Temps daccès 6ns
- Fréquence de 100Mhz à 200Mhz
- Débit de 1.5Go/s à 3Go/s
- Exemple GeForce FX (DDR400)
40Architecture
Accélérateur Graphique GPU
BUS
Mémoire centrale
Mémoire vidéo
DVI
RAMDAC
CRT
- RAMDAC (CRT vs DVI)
- Bus
- Mémoire
- Accélérateur Graphique (2D)/GPU (3D)
41Architecture 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 darchitecture graphique
programmable réutilisé tard en 3D
42Architecture 2D
- Accélération des traitements 2Dligne,
rectangle, curseur souris, overlay, bitBLT - Décompression MPEG2 (DVD)
- Tuner TV
- Acquisition vidéo
- Cartes 2D seules nexistent plus
- Carte 3D pure (3dfx voodoo)
- Maintenant, carte 2D/3D
43Architecture GPU (3D)
- Pipeline de rendu 3D (triangle en entrée)
- Transformation et éclairement
- Culling, clipping,
- Triangle setup
- Texturing, Fog
- Rasterization (Alpha, Stencil, Depth test -gt
Alpha blending -gt Dithering -gt Channel mask) -gt
Framebuffer
44Architecture GPU-gtTransform
- Planter le décors
- Placer lobjet courant dans la scène par rapport
à la caméra - Opérations matricielles 3d (homogène)
- Translations, rotations, mise à léchelle,
projection
45Architecture GPU-gtLighting
- Modèle de Phong
- Éclairement ambiant
- Propriété générale de lenvironnement
- Éclairement diffus
- Existe pour chaque source lumineuse
- Éclairement spéculaire
- Existe pour chaque source lumineuse
46Architecture GPU-gtLighting
- Éclairement ambiant
- CafCala
- Éclairement diffus
- Cdfsum( CdLid (n.lidir) )
n
ldir
47Architecture GPU-gtLighting
n
- Éclairement spéculaire
- Csfsum( CsLis (v.ri) )
- Mais r2(n.ldir)n-ldir (coûteux)
v
ldir
r
gt formule de Blinn-PhongCsfsum( CsLis (n.hi)
)avec h ldirv / ldirv
n
h
v
ldir
48Architecture GPU-gtculling, 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)
49Architecture GPU-gttriangle 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)
50Architecture GPU-gtCalcul 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 (gt possibilité de gérer un
bump-mapping) - Effet de brouillard (fog)
51Architecture GPU-gtRasterization
- Dernière étape du pipeline 3D
- Gestion de la profondeur - ensemble de test libre
gt effet - Alpha test -gt Stencil test -gt Depth test
- Blending (Transparence)
- Dithering (Illusion de couleur, motif)
- Channel mask -gt FRAME BUFFER
52Architecture GPU
- TL (en soft) 3D Now, MMX
- 31 août 1999 GeForce256 (nVidia)
- GPU (Graphics Processing Unit)
- pipeline 100 hard (TL, culling, clipping)
- Amélioration du pipeline 3D
- Registers combiners (GeForce256)Circuit câblé
paramétrable pour le calcul de la couleur
(texture) - Shader (Vertex Pixel) (GeForce3)Circuit
programmable remplaçant une partie du pipeline 3D
53Architecture GPU-gt Shader
- Architecture SIMD
- Limitation de la taille du programme
- 128 instructions GeForce3-4 - Radeon8500
- 1024 instructions GeForce FX
- Registres temporaires
- ALU
- Registres constants (mémoire)
54Architecture GPU-gt Vertex Shader
55Architecture GPU-gt Vertex Shader
- Remplace létape de TL
- Possibilités
- Position Procédurale
- Position Blend
- Position Morphing
- Position Déformation
- Tissu, peau, interpolation, displacement maps
- Coordonnées de texture
- Brouillard particulier
- Taille daffichage dun point
56Architecture GPU-gt Vertex Shader
- Exemple simple de vertex shaderdéformation
surfacique (onde) Dauphin (Direct3D)
57Architecture GPU-gt Pixel Shader
58Architecture GPU-gt Pixel Shader
- Remplace létape du calcul de la couleur
- Possibilités
- Réflexion par pixel
- Illumination par pixel (phong, BRDF)
- Textures procédurales
59Architecture GPU-gt Shaders Exemple
- Le rendu cartoon
- Exemples Zelda - Jet Set Radio Future
- Produit scalaire lumière x normale pour indexer
une texture 1D
light
1.0
dot product
0.0
1 dimensional texture
60Cartes Graphiques
- API OpenGL 1.4, DirectX 9.0, Glide (3DFX)
- Carte professionnelle Intergraph, HP, MaxVision