
Un contrôleur d'affichage vidéo ( VDC ), également appelé moteur d'affichage ou interface d'affichage , est un circuit intégré qui est le composant principal d'un générateur de signal vidéo , un dispositif responsable de la production d'un signal vidéo TV dans un système informatique ou de jeu. Certains VDC génèrent également un signal audio , mais ce n'est pas leur fonction principale. Les VDC étaient utilisés dans les ordinateurs personnels des années 1980 et également dans certains des premiers systèmes d'image vidéo.
Le VDC est le composant principal de la logique du générateur de signaux vidéo, responsable de la génération de la synchronisation des signaux vidéo tels que les signaux de synchronisation horizontale et verticale et le signal d'intervalle de suppression . Parfois, d'autres puces de support étaient nécessaires pour construire un système complet, comme la RAM pour stocker les données de pixels , la ROM pour stocker les polices de caractères ou une logique discrète telle que les registres à décalage .
Le plus souvent, la puce VDC est complètement intégrée dans la logique du système informatique principal (sa RAM vidéo apparaît dans la carte mémoire du processeur principal), mais parfois elle fonctionne comme un coprocesseur capable de manipuler le contenu de la RAM vidéo de manière indépendante.
Contrôleur d'affichage vidéo vs. unité de traitement graphique
La différence entre un contrôleur d'affichage, un accélérateur graphique et un circuit intégré de compression/décompression vidéo est énorme, mais comme toute cette logique se trouve généralement sur la puce d'une unité de traitement graphique et n'est généralement pas disponible séparément pour le client final, il existe souvent beaucoup de confusion au sujet de ces blocs fonctionnels très différents.
Les GPU avec accélération matérielle sont devenus populaires dans les années 1990, notamment le S3 ViRGE , le Matrox Mystique et le Voodoo Graphics ; bien que des exemples plus anciens tels que le NEC μPD7220 existaient déjà depuis un certain temps. Les VDC avaient souvent un matériel spécial pour la création de « sprites », une fonction qui, dans les puces VDP plus modernes, est réalisée avec le « Bit Blitter » à l'aide de la fonction « Bit blit ».
Un exemple de processeur d'affichage vidéo typique est le « processeur d'affichage vidéo d'arrière-plan et de plan de défilement 32 bits VDP2 » de la Sega Saturn . Un autre exemple est la puce Lisa (AGA) qui a été utilisée pour les graphismes améliorés des ordinateurs Amiga de dernière génération .
Cela dit, il n'est pas tout à fait clair quand une « puce vidéo » est un « contrôleur d'affichage vidéo » et quand elle est un « processeur d'affichage vidéo ». Par exemple, le TMS9918 est parfois appelé « contrôleur d'affichage vidéo » et parfois « processeur d'affichage vidéo ». En général, cependant, un « processeur d'affichage vidéo » a une certaine puissance pour « traiter » le contenu de la RAM vidéo (en remplissant une zone de RAM par exemple), tandis qu'un « contrôleur d'affichage vidéo » contrôle uniquement la synchronisation des signaux de synchronisation vidéo et l'accès à la RAM vidéo.
Le processeur graphique (GPU) va encore plus loin que le VDP et prend généralement en charge la fonctionnalité 3D. C'est le type de puce que l'on retrouve dans les ordinateurs personnels modernes.
Types
Les contrôleurs d’affichage vidéo peuvent être divisés en plusieurs types différents, répertoriés ici du plus simple au plus complexe ;
- Les contrôleurs vidéo , ou « systèmes basés sur un registre à décalage vidéo » (il n'existe pas de nom généralement accepté pour ce type d'appareils), sont le type de contrôleur vidéo le plus simple. Ils sont directement ou indirectement responsables des signaux de synchronisation vidéo, mais ils n'accèdent normalement pas directement à la RAM vidéo. Ils obtiennent les données vidéo du processeur principal, un octet à la fois, et les convertissent en un flux binaire série, d'où le nom technique de « contrôleur vidéo ». Ce flux de données série est ensuite utilisé avec les signaux de synchronisation pour générer un signal vidéo. Le processeur principal doit effectuer l'essentiel du travail. Normalement, ces puces ne prennent en charge qu'un mode graphique raster à très basse résolution.
- Un contrôleur de tube cathodique , ou CRTC , génère les timings vidéo et lit les données vidéo à partir de la RAM attachée au CRTC pour les sortir via une ROM de générateur de caractères externe (pour les modes texte ) ou directement vers le registre à décalage de sortie vidéo (pour les modes graphiques haute résolution). Étant donné que les capacités réelles du générateur vidéo dépendent dans une large mesure de la logique externe, le générateur vidéo basé sur une puce CRTC peut avoir une large gamme de capacités, des systèmes simples en mode texte uniquement aux systèmes haute résolution prenant en charge une large gamme de couleurs. Les sprites, cependant, ne sont normalement pas pris en charge par ces systèmes.
- Les contrôleurs d'interface vidéo sont beaucoup plus complexes que les contrôleurs CRT, et les circuits externes nécessaires avec un CRTC sont intégrés dans la puce du contrôleur vidéo. Les sprites sont souvent pris en charge, tout comme les générateurs de caractères (basés sur la RAM) et la RAM vidéo dédiée aux attributs de couleur et aux registres de palettes ( tables de recherche de couleurs ) pour les modes haute résolution ou texte.
- Les coprocesseurs vidéo disposent de leur propre processeur interne dédié à la lecture (et à l'écriture) de leur propre RAM vidéo (qui peut être partagée avec le processeur) et à la conversion du contenu de cette RAM vidéo en un signal vidéo. Le processeur principal peut donner des commandes au coprocesseur, par exemple pour changer les modes vidéo ou pour manipuler le contenu de la RAM vidéo. Le coprocesseur vidéo contrôle également le générateur de caractères (le plus souvent basé sur la RAM), la RAM d'attributs de couleur, les registres de palette et la logique des sprites (pour autant que ceux-ci existent bien sûr).
Liste d'exemples de VDC
Voici des exemples de contrôleurs d'affichage vidéo :
Décaleurs vidéo
- Le RCA CDP1861 était une puce très simple, construite en technologie CMOS (ce qui était inhabituel pour le milieu des années 1970) pour compléter le microprocesseur RCA 1802 , il était principalement utilisé dans le COSMAC VIP . Il ne pouvait supporter qu'un mode graphique monochrome à très basse résolution.
- L' adaptateur d'interface de télévision (TIA) est la puce vidéo personnalisée qui est le cœur de la console de jeux Atari 2600 , une puce primitive qui s'appuyait sur le microprocesseur 6502 pour effectuer la majeure partie du travail, et qui était également utilisée pour générer l'audio.
Contrôleurs CRT
- Le contrôleur Intel 8275 CRT a été utilisé dans le Convergent Technologies AWS / Burroughs B20 , ainsi que dans certains systèmes de bus S-100 .
- Le Motorola 6845 (MC6845) est un générateur d'adresses vidéo introduit pour la première fois par Motorola et utilisé pour l' Amstrad CPC et le BBC Micro . Il a également été utilisé pour presque tous les premiers adaptateurs vidéo pour PC, tels que les adaptateurs MDA , CGA et EGA . Le MDA et le CGA utilisent une puce Motorola réelle, tandis que l'EGA dispose d'un chipset IBM personnalisé de cinq puces LSI ; l'une de ces puces comprend la réimplémentation par IBM du CRTC, qui fonctionne comme un MC6845 mais diffère dans quelques adresses de registre et fonctions, de sorte qu'il n'est pas compatible à 100 %. Dans tous les adaptateurs compatibles VGA ultérieurs , la fonction du 6845 est toujours reproduite à l'intérieur de la puce vidéo, donc dans un sens, tous les PC compatibles IBM PC actuels intègrent toujours la logique du 6845 CRTC.
Contrôleurs d'interface vidéo
- Les Signetics 2636 et 2637 sont des contrôleurs vidéo surtout connus pour leur utilisation respectivement dans l' Interton VC 4000 et l'Emerson Arcadia 2001 .
- Le MC6847 est un générateur d'affichage vidéo (VDG) introduit pour la première fois par Motorola et utilisé dans l' ordinateur couleur TRS-80 , le Dragon 32/64 , le Laser 200 et l'Acorn Atom entre autres.
- Les technologies MOS 6560 (NTSC) et 6561 (PAL) sont connues sous le nom de contrôleur d'interface vidéo (VIC) et utilisées dans le VIC-20 .
- Les technologies MOS 6567/8562/8564 (versions NTSC) et 6569/8565/8566 (PAL) étaient connues sous le nom de VIC-II et étaient utilisées dans le Commodore 64 .
- La technologie MOS 8563/8568 a été utilisée dans le Commodore 128 (8563) et le Commodore 128D (8568) pour créer un affichage de texte de 80 colonnes, ainsi que plusieurs modes graphiques haute résolution. Les modèles Commodore 128 incluaient un VIC-II pour prendre en charge les modes vidéo compatibles Commodore 64 .
- Le dispositif d'édition de texte MOS Technology 7360 (TED) était utilisé dans les ordinateurs Commodore Plus/4 , Commodore 16 et Commodore 116 et possédait une capacité audio intégrée.
- Le semi-conducteur Philips SCC66470 était un VSC (contrôleur vidéo et systèmes) utilisé en conjonction avec leur microcontrôleur 68070 , par exemple dans les systèmes CD-i .
Coprocesseurs vidéo
- L' ANTIC ( Alpha - Numeric Television Interface Circuit ) était une puce de système vidéo ancienne utilisée dans les ordinateurs Atari 8 bits . Il pouvait lire une « liste d'affichage » avec son propre processeur intégré et utiliser ces données pour générer un signal vidéo complexe .
- Le TMS9918 est connu sous le nom de Video Display Processor (VDP) et a été conçu à l'origine pour le Texas Instruments TI-99/4 , mais a ensuite été également utilisé dans des systèmes comme le MSX (MSX-1), le ColecoVision , la série Memotech MTX et pour le Sega SG-1000 et le SC-3000 . Le Master System utilise un VDP amélioré basé sur le TMS9918, et le VDP Sega 315-5313 (Yamaha YM7101) utilisé dans la Sega Genesis et certaines machines d'arcade est une avancée supplémentaire du VDP Master System avec les modes TMS9918 d'origine (inférieurs) supprimés.
- Le NEC μPD7220 . Utilisé dans certaines cartes graphiques haut de gamme pour IBM PC au milieu des années 80, notamment dans les produits de Number Nine Visual Technology .
- Le RP2C02 ( NTSC ) ou RP2C07 ( PAL ) était un coprocesseur vidéo conçu par Ricoh pour être utilisé par Nintendo dans la Famicom et la Nintendo Entertainment System . Il était connecté à 2048 octets de RAM vidéo dédiée et disposait d'un bus d'adresse dédié qui permettait d'accéder à de la RAM ou de la ROM supplémentaire à partir de la cartouche de jeu. Un champ de jeu déroulant de 256 × 240 pixels était pris en charge, ainsi qu'une liste d'affichage de 64 OBJ (sprites), dont 8 pouvaient être affichés par ligne de balayage.
- Le Yamaha V9938 est une version améliorée du TMS9918, et était principalement utilisé dans le MSX2 .
- Le Yamaha V9958 est le processeur d'affichage vidéo (VDP) principalement utilisé dans les ordinateurs MSX2+ et MSX turboR .
- Le VLSI VS21S010D-L est une SRAM SPI/parallèle de 128 Ko avec un contrôleur d'affichage vidéo intégré avec des pixels à profondeur de bits variable et un blitter de déplacement de bloc.
- La série Thomson EF936x de processeurs d'affichage graphique (GDP), qui offre un taux de dessin de 1 million de pixels par seconde et des résolutions jusqu'à 1024 × 512.
Alternatives à une puce VDC
Notez que de nombreux premiers ordinateurs domestiques n'utilisaient pas de puce VDP, mais construisaient l'ensemble du contrôleur d'affichage vidéo à partir d'un grand nombre de puces logiques discrètes (par exemple, l' Apple II , le PET et le TRS-80 ). Comme ces méthodes sont très flexibles, les générateurs d'affichage vidéo pouvaient être très performants (ou extrêmement primitifs, selon la qualité de la conception), mais nécessitaient également de nombreux composants.
De nombreux systèmes anciens utilisaient une forme de matrice logique programmable pour créer un système vidéo ; les systèmes ZX Spectrum et ZX81 et Elektronika BK-0010 en sont des exemples , mais il en existait bien d'autres. Les premières implémentations étaient souvent très primitives, mais les implémentations ultérieures ont parfois donné lieu à des systèmes vidéo assez avancés, comme celui du SAM Coupé . À l'extrémité inférieure, comme dans le ZX81, le matériel n'exécutait que des fonctions électriques et la synchronisation et le niveau du flux vidéo étaient fournis par le microprocesseur. Comme le débit de données vidéo était élevé par rapport à la vitesse du processeur, l'ordinateur ne pouvait effectuer que des calculs réels non liés à l'affichage pendant la période de retour entre les trames d'affichage. Cela limitait les performances à 25 % au maximum du total des cycles CPU disponibles.
Ces systèmes pouvaient donc constituer un système très performant avec relativement peu de composants, mais le faible nombre de transistors des premières logiques programmables signifiait que les capacités des premiers systèmes basés sur PLA étaient souvent moins impressionnantes que celles utilisant les contrôleurs d'interface vidéo ou les coprocesseurs vidéo qui étaient disponibles à la même époque. Les solutions PLA ultérieures, telles que celles utilisant des CPLD ou des FPGA , pouvaient donner lieu à des systèmes vidéo beaucoup plus avancés, surpassant ceux construits à l'aide de composants standard.
Une solution hybride souvent utilisée consistait à utiliser un contrôleur d'interface vidéo (souvent le Motorola 6845 ) comme base et à étendre ses capacités avec une logique programmable ou un ASIC . Un exemple d'une telle solution hybride est la carte VGA d'origine , qui utilisait un 6845 en combinaison avec un ASIC. C'est pourquoi tous les systèmes vidéo actuels basés sur VGA utilisent toujours les registres matériels fournis par le 6845.
Des solutions modernes

Avec les progrès réalisés dans la fabrication des semi-conducteurs , de plus en plus de fonctionnalités sont implémentées sous forme de circuits intégrés , souvent sous licence en tant que cœur de propriété intellectuelle de semi-conducteur (cœur SIP). Les blocs de contrôleur d'affichage System In Package (SiP) peuvent être trouvés sur la matrice des GPU , APU et SoC .
Ils prennent en charge une variété d' interfaces : VGA , DVI , HDMI , DisplayPort , VHDCI , DMS-59 et plus encore. Le PHY comprend LVDS , Embedded DisplayPort , TMDS et Flat Panel Display Link , OpenLDI et CML . moniteur d'ordinateur moderne peut avoir un contrôleur LCD intégré ou un contrôleur OLED.
Par exemple, un signal VGA créé par le GPU est transporté via un câble VGA vers le contrôleur intégré du moniteur. Les deux extrémités du câble se terminent par un connecteur VGA . Les ordinateurs portables et autres ordinateurs mobiles utilisent différentes interfaces entre le contrôleur d'affichage et l'écran. Un contrôleur d'affichage prend généralement en charge plusieurs normes d'affichage d'ordinateur .
Le pilote KMS est un exemple de pilote de périphérique pour les contrôleurs d'affichage et AMD Eyefinity est une marque spéciale de contrôleur d'affichage avec prise en charge multi-écrans .
RandR (redimensionner et faire pivoter) est une méthode permettant de configurer la résolution de l'écran et le taux de rafraîchissement sur chaque sortie individuelle séparément et en même temps de configurer les paramètres du système de fenêtrage en conséquence.
Un exemple de cette dichotomie est proposé par ARM Holdings : ils proposent un cœur SIP pour l'accélération du rendu 3D et pour le contrôleur d'affichage indépendamment. Le premier porte des noms commerciaux tels que Mali-200 ou Mali-T880 tandis que le second est disponible sous les noms Mali-DP500, Mali-DP550 et Mali-DP650.
Histoire
En 1982, NEC a lancé le NEC μPD7220 , l'un des contrôleurs d'affichage vidéo les plus utilisés dans les ordinateurs personnels des années 1980. Il a été utilisé dans les NEC PC-9801 , APC III , compatibles IBM PC , DEC Rainbow , Tulip System-1 et Epson QX-10 . Intel a obtenu une licence pour la conception et l'a appelé le contrôleur d'affichage graphique 82720.
Auparavant, les cartes graphiques étaient également appelées adaptateurs graphiques et les puces utilisées sur ces cartes ISA / EISA se composaient uniquement d'un contrôleur d'affichage, car c'était la seule fonctionnalité requise pour connecter un ordinateur à un écran. Les cartes ultérieures comprenaient des circuits intégrés pour effectuer des calculs liés au rendu 2D en parallèle avec le processeur ; ces cartes étaient appelées cartes accélératrices graphiques. De même, les circuits intégrés pour le rendu 3D ont finalement suivi. Ces cartes étaient disponibles avec des interfaces VLB , PCI et AGP ; les cartes modernes utilisent généralement le bus PCI Express , car elles nécessitent une bande passante bien supérieure à celle que le bus ISA peut fournir.