Movatterモバイル変換


[0]ホーム

URL:


Vai al contenuto
WikipediaL'enciclopedia libera
Ricerca

Agnus

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento daFat Agnus)
Un modello di Agnus: il MOS 8367R0.

L'Agnus è una famiglia dimicrochip prodotta dallaCommodore Semiconductor Group. Un esemplare di Agnus è sempre presente nell'Original Chip Set e nell'Enhanced Chip Set.

Origine del nome

[modifica |modifica wikitesto]

Il nome del componente Agnus deriva da 'Address GeNerator UnitS', in quanto contiene tutti i registri di indirizzamento e controlla gli accessi in memoria dei chip custom.

Funzioni

[modifica |modifica wikitesto]

Il chip Agnus coordina il funzionamento dell'intero chipset. Tutte le operazioni sono sincronizzate con il pennello video, compreso l'accesso alla RAM dedicata al chipset, detta per questochip RAM. Il microprocessore centrale68000 e gli altri membri del chipset si contendono l'accesso alla RAM tramiteAgnus. In termini di architettura degli elaboratori, si parla diaccesso diretto in memoria (in inglese: Direct Memory Address, DMA), e Agnus è il DMA Controller (DMAC).

Agnus gestisce 25 canali DMA per il chipset con una complessa politica basata su priorità. Poiché il processore 68000 normalmente accede alla memoria ogni due cicli di clock della RAM, Agnus di preferenza effettua gli accessi per il chipset solo durante i cicli dispari, lasciando quelli pari alla CPU, che in questo modo non viene rallentata. Questa pacifica coesistenza viene però messa in crisi quando si scelgono modalità video con più di 4 bitplane in bassa risoluzione (o 2 bitplane in alta risoluzione): in questi casi Agnus comincia ad accedere alla RAM anche nei cicli pari, rallentando la CPU.Anche ilblitter, se attivato, può sottrarre cicli alla CPU, specie se si imposta il bit "Blitter Nasty": in questo caso Agnus può negare alla CPU ogni ciclo pari, se richiesto dal blitter.

Le temporizzazioni di Agnus si misurano in "colour clock" di 280ns, equivalenti a due pixel in bassa risoluzione (140ns) e a quattro pixel in alta risoluzione (70ns). Come per Denise, queste temporizzazioni erano progettate per gli schermi delle TV domestiche, e possono essere sincronizzate ad una sorgente esterna di clock.

Componenti

[modifica |modifica wikitesto]

Blitter

[modifica |modifica wikitesto]

Il blitter è un sub-componente di Agnus. "Blit" è l'abbreviazione di "block image transfer" (trasferimento di immagini a blocchi) obit blit. Il blitter è una unità ad alto parallelismo in grado di effettuare trasferimento di blocchi di memoria e operazioni logiche. Ha tre modi di funzionamento: copia di blocchi di memoria, riempimento di poligoni e tracciamento di linee.

Il blitter consente la copia rapida di memoria video, lasciando libera la CPU per altre operazioni. Il blitter era usato principalmente per disegnare sullo schermo immagini grafiche dette "bob", abbreviazione di "blitter object".

In modalità di copia il blitter prende da zero a tre sorgenti in memoria, dette A, B e C, ed esegue su di esse una funzione booleana programmabile. Il risultato viene (eventualmente) scritto in un'area di destinazione, D. Queste aree possono sovrapporsi, e tutti i blocchi devono essere allineati a 16 bit. Il blitter può operare sui blocchi sia dall'inizio alla fine, in modalità detta "ascendente", sia al contrario, in modalità discendente.

I blocchi sono "rettangolari"; hanno una larghezza in multipli di 16 bit, un'altezza misurata in linee, e un passo, ovvero lo scostamento fra la fine di una linea e la successiva. Questo consente al blitter di operare in qualsivoglia risoluzione video. Durante la copia viene eseguita automaticamente un'operazione logica sui singoli pixel, descritta tramitemintermini[1]. Operazioni tipiche sono la copia (D = A), o l'applicazione di una maschera di pixel attorno agli oggettiblittati (D = A AND C). La copia può anche far scorrere ogni linea di fino a 15 pixel, la qual cosa consente al blitter di disegnare a coordinate orizzontali che non siano necessariamente multiple di 16 pixel.

In modalità di tracciamento linee, il blitter disegna linee spesse un pixel usando l'algoritmo di Bresenham. Può anche applicare alla linea un pattern di 16 bit. Nella modalità di riempimento il blitter opera per linee orizzontali, riempiendo intervalli orizzontali compresi fra due pixel accesi. Per ogni linea, legge ogni a turno ogni pixel da sinistra a destra; quando legge un pixel a uno, inizia a riempire tutti i bit che seguono fino al successivo bit a uno o alla fine della linea. Insieme, questi modi consentono al blitter di disegnare poligoni singoli monocolore, anche se molto lentamente al confronto con i moderni chipset grafici 3D o anche con la stessa CPU di un Amiga accelerato.

Copper

[modifica |modifica wikitesto]

Il copper è un altro subcomponente di Agnus. Il nome è un'abbreviazione di "co-processor". Il copper è unamacchina a stati finiti programmabile che esegue un flusso di istruzioni sincronizzato con l'hardware video.

Quando è in funzione, il copper ha tre stati: lettura di un'istruzione, esecuzione, o attesa che il pennello video raggiunga una specifica posizione dello schermo. Il copper esegue un programma (dettocopper list) in parallelo con la CPU principale, sincronizzato al pennello video e può essere usato per effettuare varie operazioni che richiedono sincronizzazione con il video. Più comunemente viene usato per controllare l'uscita video, ma può scrivere in qualsiasi registro del chipset e pertanto può controllare anche l'audio o mandare un'interruzione alla CPU.

La copper list ha tre tipi di istruzione, ognuna delle quali è composta da una coppia di parole di 16 bit, per un totale di quattro byte.

  • L'istruzione MOVE scrive una parola di 16-bit in uno dei registri del chipset.
  • L'istruzione WAIT blocca il copper fino al raggiungimento di una data posizione video, rendendo così possibile la sincronizzazione di altre istruzioni al tracciamento dello schermo. Può anche attendere che il blitter finisca un'operazione.
  • L'istruzione SKIP farà sì che il copper salti l'istruzione successiva se è già stata raggiunta una data posizione del pennello video. Può essere usata per creare cicli nelle copper list.

La lunghezza di una copper list è limitata dal tempo d'esecuzione. Il copper riavvia l'esecuzione della copper list all'inizio di ogni quadro video. Non esiste una istruzione "end" esplicita, al suo posto viene usata l'istruzione WAIT per attendere una posizione video irraggiungibile.

Usi del copper

[modifica |modifica wikitesto]
  • Il copper viene comunemente usato per (ri)inizializzare i registri dell'hardware video all'inizio di ogni quadro video. Può essere usato anche per modificare le impostazioni video durante il tracciamento di un quadro. Questo consente all'Amiga di cambiare la configurazione video, compresa la risoluzione, da una linea all'altra. L'Amiga può visualizzare diverse risoluzioni orizzontali e diverse profondità di colore nello stesso schermo. L'interfaccia grafica dell'AmigaOS consente a due programmi di funzionare con due risoluzioni video distinte, pur essendo entrambi visibili contemporaneamente sullo schermo. Un programma di disegno può ad esempio usare questa caratteristica per consentire agli utenti di disegnare direttamente su uno schermoHold And Modify a bassa risoluzione, offrendo contemporaneamente una barra degli strumenti in alta risoluzione in cima o in fondo allo schermo.
  • Il copper può anche cambiare i registri dei colori ad ogni linea di scansione, creando gli effetti "raster bar" tanto comuni nei giochi dell'Amiga. Il copper può fare anche di più, come cambiare il colore di sfondo abbastanza spesso da visualizzare una grafica a blocchi senza usare del tutto i bitplane.
  • Il copper consente di riusare gli sprite: dopo che uno sprite è stato visualizzato una prima volta, il copper può muoverlo immediatamente ad una nuova locazione, facendolo disegnare nuovamente anche sulla stessa linea di scansione.
  • Il copper può anche essere usato per programmare ed attivare il blitter. Ciò è utile per fare più operazioni in sequenza col blitter, in quanto il copper può aspettare che il blitter termini un'operazione e subito dopo riprogrammare quest'ultimo per l'operazione seguente.
  • Il copper può essere usato per produrre il modo video "slicedHAM", o S-HAM[2], che consiste nel costruire una copper list che modifichi la tavolozza dei colori ad ogni linea di scansione, migliorando la scelta dei colori di base nel modo graficoHold And Modify.

Package

[modifica |modifica wikitesto]

Per l'Agnus sono stati utilizzati soltanto due tipologie dipackage:

Il package DIP è stato utilizzato soltanto per i primissimi modelli di Agnus. In seguito è sempre stato utilizzato il package PLCC. L'Agnus in package DIP ha una forma più stretta e allungata rispetto all'Agnus in package PLCC. Per tale motivo l'Agnus in package DIP è chiamato "Thin Agnus" (ovvero "Agnus magro") mentre l'Agnus in package PLCC è chiamato "Fat Agnus" (ovvero " Agnus grasso").

Modelli

[modifica |modifica wikitesto]

Nel corso degli anni l'Agnus è stato costantemente migliorato. Al primo modello commercializzato con laversione di Amiga 1000 dotata di modi video NTSC, il MOS 8361, sono seguiti molti altri modelli. Si possono distinguere due principali sottofamiglie di Agnus: la sottofamiglia di Agnus utilizzata nel chipset OCS e la sottofamiglia di Agnus utilizzata nel chipset ECS. La tabella seguente riporta i modelli di Agnus commercializzati e la sottofamiglia a cui appartengono. In particolare per ogni modello di Agnus viene riportata (rispettivamente) la denominazione del modello di Agnus, ilpart number del modello di Agnus, il chipset in cui è utilizzato il modello di Agnus, la quantità massima diChip RAM che il modello di Agnus è in grado di gestire, ilpackage del modello di Agnus. Alcuni modelli di Agnus sono stati ridenominati. Per tale motivo ilpart number rimane lo stesso.

denominazionepart numberchipsetChip RAMpackage
MOS 8361252125-01OCS500 kBDIP
MOS 8367R0
MOS 8367
252362-01OCS500 kBDIP
MOS 8370318070-01OCS500 kBPLCC
MOS 8371318071-01OCS500 kBPLCC
MOS 8372318069-01ECS1 MBPLCC
MOS 8372R3
MOS 8372A
318069-02ECS1 MBPLCC
MOS 8372AB318069-03ECS2 MBPLCC
MOS 8372BECS2 MBPLCC

Note

[modifica |modifica wikitesto]
  1. ^I minterm del Blitter, inFor You, n. 18, ottobre 1993, pp. 5-7.
  2. ^Inventato nel 1989 da Rhett Anderson (EN)Copia archiviata, suislandnet.com.URL consultato il 10 luglio 2006(archiviato dall'url originale il 10 luglio 2006).

Bibliografia

[modifica |modifica wikitesto]

Voci correlate

[modifica |modifica wikitesto]
V · D · M
Amiga
Amiga Classic
personal computerAmiga 1000 ·Amiga 2000 ·Amiga 2000HD ·Amiga 2500 ·Amiga 2500/30 ·Amiga 1500 ·Amiga 3000 ·Amiga 3000T ·Amiga 3000T-040 ·Amiga 4000/030 ·Amiga 4000/040 ·Amiga 4000T
home computerAmiga 500 ·Amiga 500 Plus ·Amiga 600 ·Amiga 600HD ·Amiga 1200 ·Amiga 1200HD ·Amiga 1200HD/40
workstationAmiga 2500UX ·Amiga 3000UX
lettoristand-alone diCD-ROMCDTV
console per videogiochiAmiga CD32
Chipset degli Amiga ClassicOCS ·ECS ·AGA
Prototipi di chipset non commercializzatiAAA ·AA+ ·Hombre
Prototipi di computer non commercializzatiRanger ·AA3000 ·A3000+ ·Nyx ·Walker ·A5000
Schede madriPowerPC per AmigaOS 4:AmigaOneAmigaOne G3-SE ·AmigaOne XE ·Micro AmigaOne
Altre schede madri PowerPC per AmigaOS 4Sam440ep ·Sam440ep-flex ·Pegasos II
Reimplementazioni di schede madri degli Amiga ClassicMinimig ·Natami
Sistema operativoAmigaOS
Componenti:Kickstart,AmigaDOS,Workbench
Altri sistemi operativi per gli Amiga ClassicAmiga Unix ·NetBSD ·OpenBSD (solo fino alla versione 3.2) ·MINIX (solo versione 1.5) ·MorphOS (solo fino alla versione 1.4.5)
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Agnus&oldid=141404516#Package"
Categorie:
Categoria nascosta:

[8]ページ先頭

©2009-2025 Movatter.jp