| "Descrizione" by CPU1 (1878 pt) | 2026-Jan-29 10:05 |
| Evaluation | N. Experts | Evaluation | N. Experts |
|---|---|---|---|
| 1 | 6 | ||
| 2 | 7 | ||
| 3 | 8 | ||
| 4 | 9 | ||
| 5 | 10 |
NEC D7220AD Graphic Display Controller
Il Chip grafico D7220AD in tecnologia NMOS, era montato su alcune stazioni DEC, tra le quali il DEC Rainbow 100, NCR DMV.

Identificazione e posizionamento funzionale
Il NEC D7220AD è una variante della famiglia NEC μpd7220a (“high-performance graphics display controller”), progettata per realizzare sistemi video raster con grafica bitmapped e modalità carattere, con un approccio da coprocessore grafico: la CPU invia comandi e parametri, mentre il controller esegue in hardware molte operazioni ripetitive (generazione raster, addressing della memoria video e primitive di disegno). La sigla “ad” è tipicamente associata a una variante/grade della serie μpd7220a (con specifici limiti di frequenza operativa), utile soprattutto in ambito ricambi e compatibilità hardware.
In architettura di sistema, il chip si colloca tra:
interfaccia host (microprocessore): bus dati e segnali di controllo per ricevere comandi, parametri e leggere stati;
interfaccia memoria display: indirizzamento, cicli di accesso e logiche di read-modify-write (RMW) su memoria video;
generazione video: segnali di sincronismo e blanking, oltre a funzioni di zoom/pan e gestione del raster.
Caratteristiche principali
Funzionalità tipiche attribuite alla μpd7220a/d7220ad:
interfaccia microprocessore con gestione comandi tramite FIFO (buffering per ridurre i vincoli di timing lato CPU RMW interfaccia memoria display con accessi fino a 256k word da 16 bit e supporto a cicli RMW (fondamentali per disegno su framebuffer senza letture/riscritture complete lato CPU);
primitive grafiche per figure lineari (linee, archi, cerchi, rettangoli) e trasferimenti pattern/caratteri in modalità grafica;
modalità carattere con memoria per codici/attributi e possibilità di mixed mode (grafica + caratteri/attributi);
zoom (tipicamente fattori 1–16) e panning; possibilità di aree indipendentemente scrollabili (dipende dalla configurazione di sistema);
DMA su word transfer, pensato per cooperare con controller dma esterni (es. famiglie tipo 8257/8237), utile per riempimenti/trasferimenti di blocchi e aggiornamenti rapidi;
ingresso light pen (quando implementato a livello di sistema), utile per agganciare eventi al raster.
Blocco funzionale interno (lettura del diagramma a blocchi)
Dal punto di vista dei sottoblocchi, l’architettura tipica comprende:
microprocessor interface + registri di stato/dati: canale comandi e lettura stato;
FIFO comandi: disaccoppia la velocità di scrittura host dalla velocità di esecuzione interna;
command processor (control ROM): decodifica comandi e orchestrazione delle unità interne;
parameter ram: piccola ram interna per parametri e pattern (usata per pattern di linea, caratteri grafici e riempimenti/repliche);
drawing processor / DDA: motore di disegno basato su digital differential analyzer, che esegue incrementi e calcoli iterativi per linee e archi;
display memory controller: indirizzamento, contatori (line counter), percorsi dati per rmw e generazione cicli memoria;
video sync generator: produce segnali come hsync, blank e (in alcune configurazioni) un’uscita vsync o un ingresso di sincronismo esterno;
zoom and pan controller: modifica la lettura/uscita del raster e l’interpretazione degli indirizzi per zoom/pan.
Questa suddivisione è utile quando si fa reverse engineering di una scheda: molti “misteri” di timing, contatori e segnali video diventano leggibili se si riconoscono questi blocchi e le loro dipendenze (clock, accessi memoria, handshake dma).
4. Interfaccia host (CPU) e modello di programmazione
L’host vede il controller come un dispositivo a registri e comandi:
la CPU scrive sequenze di comandi (opcode) seguite da parametri (coordinate, lunghezze, direzioni, pattern, modalità logiche) e legge un registro di stato per sincronizzarsi;
la presenza di una FIFO riduce la necessità di “polling stretto” a ogni byte, ma resta essenziale rispettare lo stato (fifo piena/vuota, busy, ecc.) per evitare overflow o sequenze tronche;
la programmazione grafica è tipicamente “command-driven”: invece di manipolare pixel singolarmente, si impostano registri (pattern, maschere, logica rmw) e si lancia un comando figura (es. draw vector/arc/rectangle).
Esempio concettuale (senza entrare in codice):
inizializzazione (reset + set dei parametri di raster/memoria);
impostazione modalità rmw (copy/xor/and/or o equivalenti, a seconda della configurazione);
caricamento pattern (linee tratteggiate, punteggiate, ecc.);
posizionamento cursore (indirizzo/coordinate di partenza);
comando figura (linea/arc/rectangle) con parametri del dda;
eventuali trasferimenti “block/pattern” per riempimenti e caratteri grafici.
5. Motore di disegno (DDA) e primitive grafiche
Il cuore operativo per le figure lineari è il DDA, che genera sequenze di indirizzi/pixel secondo direzione e parametri (delta, contatore punti, decision variable). In generale:
per linee (vector) si definiscono asse indipendente, direzione e numero di punti, con parametri derivati da Δx e Δy;
per archi e cerchi si opera tipicamente per ottanti, con vincoli pratici: archi che attraversano confini di ottante richiedono segmentazione;
per rettangoli la logica può concatenare quattro segmenti con una sola impostazione di base, sfruttando rotazioni/direzioni del dda e contatori.
Questa impostazione spiega perché il chip fosse molto efficace su hardware dell’epoca: molte figure “standard” richiedono pochi byte di comandi rispetto al disegno pixel-by-pixel.
6. Interfaccia memoria display e cicli read-modify-write (RMW)
La parte memoria è cruciale: il controller non è solo “un generatore video”, ma un vero gestore di memoria display. Aspetti tipici:
indirizzamento su linee AD e gestione di cicli lettura/scrittura verso la memoria video;
supporto a cicli RMW, in cui il controller legge una word, applica maschere/pattern e riscrive, consentendo operazioni logiche senza che la CPU debba fare read-modify-write via bus;
gestione del fatto che una memoria display può essere “contesa” tra refresh/raster e operazioni di disegno: la temporizzazione interna e la pipeline di accesso sono parte del progetto;
presenza di logiche per refresh e per cicli su memoria dinamica “non acceduta” (dipende dall’implementazione e dal tipo di dram).
In pratica, quando si ripara o si sostituisce il chip su schede reali, i problemi più comuni non sono “software”, ma di timing memoria, clock, e compatibilità con il sottosistema dram/shift register della scheda.
7. Video, raster, zoom e panning
Sul lato video, il controller può generare o contribuire a generare segnali di sincronismo e blanking, e supportare:
configurazione dei parametri di raster (dipendente dal progetto: risoluzione, frequenze, interlacciamento, ecc.);
zoom con fattori tipicamente 1–16 e gestione del “replicare” pixel/bit secondo fattore;
panning e scorrimenti, anche con aree indipendenti in alcuni schemi;
modalità grafiche con piani multipli (es. 4 piani per colore o scala di grigi) e risoluzioni dell’ordine di 1024×1024 in configurazioni tipiche di riferimento.
8. Dma e trasferimenti veloci
La presenza di handshake DREQ/DACK consente trasferimenti con un controller DMA esterno. Il vantaggio pratico è accelerare:
scritture/letture di blocchi (word-based) tra host memory e display memory;
riempimenti solidi e trasferimenti rettangolari (quando la scheda espone correttamente le modalità di accesso e addressing);
aggiornamenti rapidi di aree dello schermo senza saturare la CPU.
È un punto da considerare quando si confrontano due revisioni: anche con pinout compatibile, la qualità del funzionamento dma dipende da speed grade, timing e dalla logica di supporto sulla scheda.
9. Pinout e segnali rilevanti (indicazioni operative)
Dalla documentazione di riferimento della μpd7220a (associata anche alle varianti d7220*), emergono segnali tipici utili in diagnostica:
clock: ingresso “2×wclk” (clock principale di lavoro);
sincronismi: hsync, e un pin per vsync/sync esterno (a seconda della modalità); blank per blanking;
host bus: linee dati bidirezionali (db0–db7), selezione indirizzo (a0/a1), rd, wr e pin di status/data;
DMA: DREQ, DACK;
memoria display: linee indirizzo (ad) e segnali di latch/enable (es. ale), più un flag di read input (dbin) per cicli memoria;
light pen: ingresso lp(en) (spesso condiviso con funzione drawing/hardware a seconda del package/modo).
Per troubleshooting su scheda: la prima verifica è sempre il clock, poi la presenza di attività su bus host (wr/rd) e infine la coerenza dei sincronismi (hsync/blank/vsync).
10. Varianti, speed grade e compatibilità (focus su “d7220ad”)
Nel contesto μpd7220a, esistono varianti con frequenze massime diverse (speed grade). Per sostituzioni:
la compatibilità “logica” può essere alta (stesso set comandi), ma la compatibilità elettrica e temporale può fallire se si monta una variante più lenta su una scheda progettata per una più veloce;
la scheda può dipendere da specifiche finestre di rmw, dram timing e handshake dma;
per questo, la sigla completa (inclusi suffissi tipo “-1”, “-2”) conta quanto il nome base del chip.
Caratteristiche :
Microprocessor Interface
Dispaly Memory Interface :
Light Pen Input
External video syncronization mode
Graphics mode
Character mode
Mixed Graphics and Character Mode
Graphics Capabilities
Character Capabilities
Video Display format
Technology
DMA Capability
| Evaluate |