Controller video - Video display controller

Image
Schema a blocchi di un controller display grafico NEC µPD7220

Un controller di visualizzazione video o VDC (chiamato anche regolarmente display engine , display interface ) è un circuito integrato che è il componente principale di un generatore di segnale video , un dispositivo responsabile della produzione di un segnale video TV in un sistema informatico o di gioco. Alcuni VDC generano anche un segnale audio , ma questa non è la loro funzione principale.

I VDC sono stati utilizzati nei computer di casa degli anni '80 e anche in alcuni dei primi sistemi di immagini video .

Il VDC è il componente principale della logica del generatore di segnali video, responsabile della generazione della temporizzazione dei segnali video come i segnali di sincronizzazione orizzontale e verticale e il segnale dell'intervallo di soppressione . A volte erano necessari altri chip di supporto per costruire un sistema completo, come la RAM per contenere i dati dei pixel , la ROM per contenere i caratteri dei caratteri o alcune logiche discrete come i registri a scorrimento .

Molto spesso il chip VDC è completamente integrato nella logica del sistema informatico principale, (la sua RAM video appare nella mappa di memoria della CPU principale), ma a volte funziona come un coprocessore che può manipolare il contenuto della RAM video in modo indipendente.

Controller per display video e unità di elaborazione grafica

La differenza tra un controller video, un acceleratore grafico e un CI di compressione/decompressione video è enorme, ma, poiché tutta questa logica si trova solitamente sul chip di un'unità di elaborazione grafica e di solito non è disponibile separatamente per il cliente finale , c'è spesso molta confusione su questi blocchi funzionali molto diversi.

Le GPU con accelerazione hardware hanno iniziato a comparire negli anni '90. I VDC avevano spesso hardware speciale per la creazione di " sprite ", una funzione che nei chip VDP più moderni viene svolta con il " Bit Blitter " utilizzando la funzione " Bit blit ".

Un esempio di un tipico processore per display video è il "processore per display video VDP2 a 32 bit con sfondo e piano di scorrimento " del Sega Saturn . Un altro esempio è il chip Lisa (AGA) che è stato utilizzato per la grafica migliorata dei computer Amiga di ultima generazione .

Detto questo, non è del tutto chiaro quando un "chip video" è un "controller per display video" e quando è un "processore per display video". Ad esempio, il TMS9918 viene talvolta chiamato "controller per display video" e talvolta "processore per display video". In generale, tuttavia, un "processore di visualizzazione video" ha una certa capacità di "elaborare" il contenuto della RAM video (riempiendo un'area di RAM per esempio), mentre un "controller di visualizzazione video" controlla solo la temporizzazione dei segnali di sincronizzazione video e il accesso alla RAM video.

L' unità di elaborazione grafica (GPU) fa un passo avanti rispetto al VDP e normalmente supporta anche la funzionalità 3D. Questo è il tipo di chip utilizzato nei moderni personal computer.

tipi

I controller di visualizzazione video possono essere suddivisi in diversi tipi, elencati qui dal più semplice al più complesso;

  • I video shifter , o "sistemi basati su registri a scorrimento video" (non esiste un nome generalmente concordato per questo tipo di dispositivi), sono il tipo più semplice di controller video. Sono direttamente o indirettamente responsabili dei segnali di temporizzazione video, ma normalmente non accedono direttamente alla RAM video. Ottengono i dati video dalla CPU principale, un byte alla volta, e li convertono in un flusso di bit seriale, da cui il nome tecnico "video shifter". Questo flusso di dati seriali viene quindi utilizzato insieme ai segnali di sincronizzazione per emettere un segnale video. La CPU principale deve fare la maggior parte del lavoro. Normalmente questi chip supportano solo una modalità grafica raster a risoluzione molto bassa .
  • Un controller CRTC , o tubo a raggi catodici , genera i tempi video e legge i dati video dalla RAM collegata al CRTC per emetterli tramite un generatore di caratteri esterno ROM (per modalità testo ) o direttamente al registro di scorrimento dell'uscita video (per alta risoluzione modalità grafiche). Poiché le capacità effettive del generatore video dipendono in larga misura dalla logica esterna, il generatore video basato su un chip CRTC può avere un'ampia gamma di funzionalità, da semplici sistemi solo in modalità testo a sistemi ad alta risoluzione che supportano un'ampia gamma di colori. Gli sprite, tuttavia, non sono normalmente supportati da questi sistemi.
  • I controller di interfaccia video sono molto più complessi dei controller CRT e il circuito esterno necessario con un CRTC è incorporato nel chip del controller video. Gli sprite sono spesso supportati, così come i generatori di caratteri (basati su RAM) e la RAM video dedicata agli attributi del colore e ai registri delle palette ( tabelle di ricerca del colore ) per le modalità ad alta risoluzione o testo.
  • I coprocessori video hanno una propria CPU interna dedicata alla lettura (e scrittura) della propria RAM video (che può essere condivisa con la CPU) e alla conversione del contenuto di questa RAM video in un segnale video. La CPU principale può dare comandi al coprocessore, ad esempio per cambiare le modalità video o per manipolare i contenuti della RAM video. Il coprocessore video controlla anche il generatore di caratteri (il più delle volte basato su RAM), la RAM dell'attributo del colore, i registri della tavolozza e la logica degli sprite (purché esistano, ovviamente).

Elenco di VDC di esempio

Esempi di controller per display video sono:

Video shifter

  • L' RCA CDP1861 era un chip molto semplice, costruito in tecnologia CMOS (cosa insolita per la metà degli anni '70) per completare il microprocessore RCA 1802 , veniva utilizzato principalmente nel COSMAC VIP . Potrebbe supportare solo una modalità grafica monocromatica a risoluzione molto bassa.
  • Il Television Interface Adapter (TIA) è il chip video personalizzato che è il cuore della console di gioco Atari 2600 , un chip molto primitivo che si affidava al microprocessore 6502 per fare la maggior parte del lavoro, utilizzato anche per generare l'audio.

Controller CRT

  • Il controller Intel 8275 CRT è stato utilizzato nel Convergent Technologies AWS / Burroughs B20 , insieme ad alcuni sistemi bus S-100 .
  • Il Motorola 6845 (MC6845) è un generatore di indirizzi video introdotto per la prima volta da Motorola e utilizzato per Amstrad CPC e BBC Micro . È stato utilizzato anche per quasi tutti i primi adattatori video per PC, come gli adattatori MDA , CGA ed EGA . L'MDA e il CGA utilizzano un vero chip Motorola, mentre l'EGA ha un chipset IBM personalizzato di cinque chip LSI; uno di questi chip include la reimplementazione di IBM del CRTC, che opera come un MC6845 ma differisce in alcuni indirizzi di registro e funzioni, quindi non è compatibile al 100%. In tutti i successivi adattatori VGA compatibili la funzione del 6845 è ancora riprodotta all'interno del chip video, quindi in un certo senso tutti gli attuali PC compatibili con PC IBM incorporano ancora la logica del 6845 CRTC.

Controller di interfaccia video

Coprocessori video

  • L' ANTIC ( A lpha- N umeric T elevisione ho nterface C ircuit ) è stato un chip di sistema di video presto utilizzato nella Famiglia Atari 8-bit di microcomputer . Potrebbe leggere un " elenco di visualizzazione " con la propria CPU incorporata e utilizzare questi dati per generare un segnale video complesso.
  • Il TMS9918 è noto come Video Display Processor (VDP) ed è stato inizialmente progettato per Texas Instruments TI-99/4 , ma in seguito è stato utilizzato anche in sistemi come MSX (MSX-1), ColecoVision , serie Memotech MTX e per il Sega SG-1000 e SC-3000 . Il Master System utilizza un VDP avanzato basato sul TMS9918 e il Sega 315-5313 (Yamaha YM7101) VDP utilizzato nel Sega Genesis e alcune macchine arcade è un ulteriore avanzamento del Master System VDP con le modalità TMS9918 originali (inferiori) rimosse .
  • Lo Yamaha V9938 è una versione migliorata del TMS9918 ed è stato utilizzato principalmente nell'MSX2 .
  • Lo Yamaha V9958 è il Video Display Processor (VDP) utilizzato principalmente nei computer MSX2+ e MSX turboR .
  • Il VLSI VS21S010D-L è una SRAM/SRAM parallela da 128 kB con un controller video integrato con pixel a profondità di bit variabile e un blitter block-move.
  • La serie Thomson EF936x di Graphic Display Processor (GDP), che offre un draw rate di 1 milione di  pixel  al secondo e risoluzioni fino a 1024×512.

Alternative a un chip VDC

Si noti che molti dei primi computer domestici non utilizzavano un chip VDP, ma costruivano l'intero controller del display video da molti chip logici discreti (esempi sono Apple II , PET e TRS-80 ). Poiché questi metodi sono molto flessibili, i generatori di display video potrebbero essere molto capaci (o estremamente primitivi, a seconda della qualità del design), ma avevano anche bisogno di molti componenti.

Molti dei primi sistemi utilizzavano una qualche forma di un primo array logico programmabile per creare un sistema video; esempi includono i sistemi ZX Spectrum e ZX81 e Elektronika BK-0010 , ma ce ne sono stati molti altri. Le prime implementazioni erano spesso molto primitive, ma le implementazioni successive a volte hanno portato a sistemi video abbastanza avanzati, come quello nel SAM Coupé .

Questi sistemi potevano quindi costruire un sistema molto capace con relativamente pochi componenti, ma il basso numero di transistor della prima logica programmabile significava che le capacità dei primi sistemi basati su PLA erano spesso meno impressionanti di quelle che utilizzavano i controller di interfaccia video o i coprocessori video che erano disponibili allo stesso tempo. Soluzioni PLA successive, come quelle che utilizzano CPLD o FPGA , potrebbero portare a sistemi video molto più avanzati, superando quelli realizzati con componenti standard.

Una soluzione ibrida spesso utilizzata consisteva nell'utilizzare un controller di interfaccia video (spesso il Motorola 6845 ) come base ed espandere le sue capacità con la logica programmabile o un ASIC . Un esempio di tale soluzione ibrida è la scheda VGA originale , che utilizzava un 6845 in combinazione con un ASIC. Ecco perché tutti gli attuali sistemi video basati su VGA utilizzano ancora i registri hardware forniti dal 6845.

Soluzioni moderne

Image
Schema a blocchi del chip ATi R300 . La scheda video è etichettata come "interfaccia display".

Con i progressi compiuti nella fabbricazione di dispositivi a semiconduttore , sempre più funzionalità vengono implementate come circuiti integrati , spesso licenziabili come core di proprietà intellettuale a semiconduttore (core SIP). I blocchi SIP del controller del display si trovano sul die di GPU , APU e SoC .

Supportano una varietà di interfacce : VGA , DVI , HDMI , DisplayPort , VHDCI , DMS-59 e altro. Il PHY include LVDS , TMDS e Flat Panel Display Link , OpenLDI e CML .

Ad esempio, un segnale VGA, creato dal controller del display, viene trasportato tramite un cavo VGA al display. Entrambe le estremità del cavo terminano in un connettore VGA . I laptop e altri computer portatili utilizzano interfacce diverse tra il controller del display e il display. Una scheda video di solito supporta più standard di visualizzazione del computer .

Il driver KMS è un esempio di driver di dispositivo per controller di visualizzazione e AMD Eyefinity è un marchio speciale di controller di visualizzazione con supporto multi-monitor .

RandR (ridimensiona e ruota) è un metodo per configurare la risoluzione dello schermo e la frequenza di aggiornamento su ogni singola uscita separatamente e allo stesso tempo configurare le impostazioni del sistema di finestre di conseguenza.

Un esempio di questa dicotomia è offerto da ARM Holdings : offrono core SIP per l'accelerazione del rendering 3D e per il controller del display in modo indipendente. Il primo ha nomi commerciali come Mali-200 o Mali-T880, mentre il secondo è disponibile come Mali-DP500, Mali-DP550 e Mali-DP650.

Storia

Nel 1982, NEC ha rilasciato il NEC μPD7220 , uno dei controller di visualizzazione video più utilizzati nei personal computer degli anni '80 . E 'stato utilizzato in NEC PC-9801 , APC III , compatibili IBM PC , DEC Rainbow , Tulip System-1 e Epson QX-10 . Intel ha concesso in licenza il design e lo ha chiamato controller del display grafico 82720.

In precedenza, le schede grafiche erano anche chiamate adattatori grafici e i chip utilizzati su queste schede ISA / EISA consistevano esclusivamente in un controller del display, poiché questa era l'unica funzionalità richiesta per collegare un computer a un display. Le schede successive includevano circuiti integrati per eseguire calcoli relativi al rendering 2D in parallelo con la CPU; queste schede erano chiamate schede di accelerazione grafica. Allo stesso modo, alla fine sono seguiti i circuiti integrati per il rendering 3D. Tali schede erano disponibili con interfacce VLB , PCI e AGP ; le schede moderne utilizzano tipicamente il bus PCI Express , poiché richiedono una larghezza di banda molto maggiore di quella che il bus ISA può fornire.

Guarda anche

Riferimenti

link esterno