| "Descrizione" by CPU1 (1882 pt) | 2026-Jan-29 09:31 |
Graphic display controller
Definizione
Un graphic display controller (GDC) è un coprocessore video progettato per generare il refresh del display e, nei modelli più evoluti come il NEC µPD7220, anche per accelerare la costruzione di primitive grafiche (es. linee, archi, cerchi, caratteri grafici) tramite un set di comandi dedicato. A differenza di un semplice CRTC (che si limita a scandire la memoria video e produrre temporizzazioni), un GDC “tipo 7220” integra una logica che:
Pianifica l’accesso alla display memory esterna e genera gli indirizzi video durante il refresh.
Offre una coda comandi e un micro-motore interno per eseguire operazioni grafiche elementari, riducendo il carico della CPU host.
Supporta sia una modalità più “testuale/character” sia una modalità bitmap/graphics, con funzioni di scrolling e gestione aree di schermo.

Perché è importante nel contesto storico
Nel primo decennio dei personal computer e delle workstation leggere, la CPU era spesso troppo lenta per:
Aggiornare lo schermo e, contemporaneamente, calcolare geometrie o ridisegnare porzioni di bitmap in modo fluido.
Gestire set di caratteri complessi (es. kanji) con buone prestazioni e risoluzioni elevate.
Il µPD7220 è considerato uno dei primi esempi di “graphics processor” integrato in un singolo chip, capace di alleggerire la CPU tramite comandi di alto livello (ad esempio “disegna una linea” invece di “scrivi N pixel uno a uno”).
Funzioni chiave di un GDC tipo 7220
Generazione video: produce segnali di temporizzazione e indirizzamento verso la memoria video per alimentare il circuito di uscita (shift register, DAC, logiche RGB).
Accesso a memoria video esterna: la VRAM/DRAM/SRAM non è “dentro” il GDC; il controller gestisce cicli di lettura durante il refresh e cicli dedicati alle operazioni grafiche.
Command processor: riceve comandi e parametri dalla CPU, li accoda in una FIFO interna e li esegue in autonomia (entro i limiti della banda memoria).
Primitive grafiche: accelerazione di elementi come line drawing e arc/circle drawing, oltre a funzioni per caratteri e pattern.
Modalità character e graphics: in character mode gestisce griglie di caratteri con attributi e funzioni di finestratura; in graphics mode gestisce bitmap con viewport/scroll.
Cursor e input sincronizzati: supporto a cursor e, in alcune configurazioni, interfaccia per light pen sincronizzata al timing video.
(Queste capacità e la programmazione a comandi sono descritte nei manuali e datasheet del µPD7220/compatibili e nella documentazione Intel 82720, che riprende l’impostazione NEC.)
Architettura logica a blocchi
Un sistema tipico con GDC comprende:
CPU host (8086/8088 e simili) che invia comandi al GDC via I/O o memory-mapped I/O.
GDC che contiene: logica display, generatori di indirizzi, registri di configurazione, FIFO comandi, engine di disegno.
Display memory esterna (DRAM/SRAM, talvolta planar/bitplane) letta dal GDC durante il refresh e scritta durante le operazioni grafiche.
Sezione di uscita video (shift register, palette, DAC o logiche TTL) che trasforma i dati letti in segnali RGB/mono.
Interfaccia con la CPU e modello di programmazione
Il µPD7220 usa tipicamente due registri I/O (spesso selezionati con linee A0/A1). In modo comune:
Un registro è usato per leggere lo status (busy, FIFO, stato comandi).
Un registro è usato per scrivere comandi e leggere/scrivere dati dalla coda interna.
La CPU quindi non “disegna” pixel direttamente:
Carica parametri (coordinate, modalità, pattern, area di lavoro).
Invia un comando (es. disegna linea/arc, copia pattern, operazioni su caratteri).
Il GDC esegue, mentre la CPU può proseguire, sincronizzandosi solo quando serve il completamento.
Differenza pratica rispetto a un CRTC
CRTC: refresh e timing, zero (o quasi) accelerazione grafica; la CPU fa i calcoli e spesso anche il rendering.
GDC tipo 7220: refresh più engine grafico; la CPU orchestralizza, il GDC disegna primitive e gestisce parte della movimentazione dati, entro la banda memoria disponibile.
Schizzo dei collegamenti più importanti
CPU host (es. 8086/8088) ┌──────────────────────────────────┐ │ I/O bus: DATA[ ] ADDR[ ] RD/WR │ └───────────────┬──────────────────┘ │ (registri: status / cmd+data) ▼ ┌───────────────┐ │ GDC 7220 │ │ FIFO comandi │ │ engine linee │ │ timing video │ │ gen. indiriz │ └──────┬────────┘ │ bus verso display memory ▼ ┌─────────────────┐ │ Display memory │ (DRAM/SRAM, bitplane, ecc.) └──────┬──────────┘ │ dati video letti in refresh ▼ ┌────────────────────────────┐ │ Shift / palette / DAC / RGB │ └──────────────┬─────────────┘ ▼ Monitor/CRT
Aspetti progettuali tipici su scheda
Banda memoria: la prestazione reale dipende da quanto rapidamente il GDC può leggere per il refresh e, nello stesso tempo, eseguire cicli per il disegno.
Organizzazione della memoria: spesso a bitplane (per più colori) o con layout che facilita scrolling e viewport.
Sincronizzazione CPU–GDC: polling dello status o interrupt (se previsti) per sapere quando un comando è finito o quando la FIFO è pronta.
Clock e timing: il GDC richiede un clock stabile; la sezione di uscita video deve rispettare timings del display (per CRT soprattutto).
Tabella 1 – Punti tecnici chiave
| Caratteristica | Dettaglio operativo |
|---|---|
| Ruolo | Controller di refresh più accelerazione di primitive grafiche |
| Memoria video | Esterna; il GDC genera indirizzi e legge dati in tempo di refresh |
| Programmazione | Comandi + parametri in coda; la CPU invia “alto livello” |
| Modalità | Character mode e graphics mode (bitmap) con funzioni di gestione schermo |
| Accelerazioni tipiche | Linee, archi/cerchi, caratteri/pattern, scrolling/viewport |
| Colli di bottiglia | Banda memoria e sincronizzazione con la CPU |
Mini-glossario
GDC: chip che combina temporizzazioni video, indirizzamento memoria e funzioni grafiche a comandi.
CRTC: controller più semplice, focalizzato su timing/scanout senza engine grafico.
Primitive grafiche: elementi base come linee e archi da cui costruire grafica complessa.
Bitplane: più piani di bit separati per rappresentare colore/attributi.
Viewport/scroll: registri o meccanismi per spostare la finestra visibile sulla bitmap senza ricopiare tutto.
| Evaluate |