Il bus AGP


Essenzialmente lo standard Agp si compone di diversi elementi, fra cui i principali sono un set aggiuntivo di segnali e il Direct Memory Execute (Dime). Le estensioni dei segnali sono quelle inerenti le operazioni pipelined di lettura/scrittura in memoria, il demultiplexing di indirizzi e dati del bus e le temporizzazioni. In pratica, ai tradizionali 32 segnali per dati/indirizzi vengono aggiunti anche quelli per il pipeling più 8 linee di indirizzi per i segnali fuori banda (sideband). Ciò spiega perché a livello pratico il bus Agp necessiti di uno slot aggiuntivo e diverso da quelli Pci normalmente presenti sulle motherboard. Questo slot, più corto di quelli Pci, si trova in posizione sfalsata rispetto agli altri.
Dato che il bus Agp prevede attualmente la presenza di un solo dispositivo, non possono essere presenti più slot Agp sulla motherboard.
Dal punto di vista dell'architettura del bus Agp, la tecnica del pipeling contribuisce sensibilmente a migliorare le prestazioni, come accade da tempo nelle Cpu. Utilizzando questa tecnica infatti i dispositivi, in questo caso quelli Agp, possono inviare alla Cpu una serie di istruzioni in sequenza senza dover attendere, per l'invio delle istruzioni successive, che la Cpu restituisca prima la risposta a quelle precedenti. Questo infatti non accade con il bus Pci, dove i dispositivi devono attendere la risposta della Cpu prima di poter inviare la successiva richiesta.
I segnali fuori banda invece sono in pratica 8 bit dedicati ai comandi e al controllo. Questa parte specifica del protocollo permette comunicazioni di tipo bidirezionale e consente di inviare istruzioni mentre è ancora in corso la ricezione dei dati da parte del sistema. Ciò consente, per esempio, di inviare la richiesta di un insieme di texture mentre è ancora in corso il trasferimento di quello precedente dalla memoria del sistema alla memoria usata come frame buffer sulla scheda grafica. Anche in questo caso si possono ottenere dei discreti benefici in termini di efficienza.
Una cosa da notare, in generale, è che il bus Agp non è una sostituzione del bus Pci, ma un'estensione. In pratica serve unicamente per le schede grafiche, mentre gli altri componenti (controller per le memorie di massa, schede di rete, ecc.) continuano a essere collegate e a utilizzare il bus Pci.
Questi e altri accorgimenti permettono al bus Agp di avere un throughput molto più elevato rispetto a quello ottenibile dal bus Pci. Attualmente infatti il bus Pci può trasferire 32 bit a 33 MHz, il che significa in pratica 133 Mbyte/s. Il bus Agp invece funziona a 66 MHz, il che consente di trasferire dati fino a un massimo di 266 Mbyte/s. Esiste poi una modalità chiamata x2, in cui viene utilizzata sia la rampa di salita di ogni ciclo di clock, che quella di discesa (nel caso precedente viene usata invece solo la rampa di salita del segnale). Questo accorgimento permette di avere a disposizione un ciclo di clock di 133 MHz, il che porta la banda passante del bus Agp a ben 532 Mbyte/s. Per ottenere la modalità x2, viene usato un bit aggiuntivo degli 8 segnali fuori banda introdotti con il protocollo Agp. Un aspetto piuttosto interessante è che questa è solo la prima implementazione del bus Agp, e quindi assoggettabile a ulteriori miglioramenti. Si potrebbero infatti raggiungere gli 800 Mbyte/s usando un bus a 64 bit e un clock a 100 MHz.
Un ulteriore elemento del bus Agp che contribuisce a migliorare le prestazioni del sistema risiede nel fatto che mentre sul bus Pci le periferiche funzionano per la maggior parte in modalità slave, con il bus Agp la scheda grafica opera invece in modalità bus master. Ciò significa che la scheda grafica può funzionare indipendentemente dalla Cpu, sollevandola da una parte dell'elaborazione, con il conseguente miglioramento delle performance del sistema. Con il bus Agp, per esempio, il chip con l'acceleratore grafico può utilizzare direttamente la memoria di sistema per operazioni di rendering, senza dover attendere la Cpu, con i relativi vantaggi.
Il Direct Memory Execute (Dime)
A differenza di un normale sistema Dma (Direct Memory Access) dove viene permesso l'accesso diretto alla memoria di sistema da parte di una periferica, il sistema Dime consente di operare direttamente l'elaborazione usando la memoria di sistema.
La differenza può essere rilevante. Usando un sistema Dma, cosa che viene fatta spesso, per esempio, con gli attuali giochi, si possono per esempio memorizzare le texture nella memoria di sistema, molto più capiente, e trasferirle poi al frame buffer della scheda grafica in base alle esigenze. In questo caso però la memoria di sistema viene usata solo come un serbatoio di grandi dimensioni per le texture.
Usando la tecnica Dime invece le varie operazioni di modifica delle texture, come per esempio le trasformazioni, possono essere eseguite direttamente nella memoria di sistema, senza quindi doverle trasferire prima nella memoria della scheda grafica. Ciò consente, fra l'altro, di concentrare l'uso della memoria video presente sulla scheda per funzioni di frame buffer, anziché dover essere divisa, come accade spesso ora, per la memorizzazione delle texture.
Nella terminologia usata per lo standard Agp compare inoltre il termine di memoria Agp. Non si tratta di un nuovo componente aggiuntivo, ma semplicemente di una porzione di memoria centrale del sistema allocata in modo dinamico.
Un nuovo elemento invece è il Gart (Graphics Address Remapping Table). Questo sistema hardware svolge una funzione fondamentalmente analoga a quella dei sistemi di paginazione presenti nelle Cpu. In pratica viene utilizzato da una scheda Agp per consentire al chip acceleratore grafico di rimappare un indirizzo lineare nella memoria del Pc. Di fatto viene utilizzato dalla tecnologia Dime e dal sistema di segnali fuori banda che hanno la necessità di allocare la memoria del Pc.
A chi serve l'Agp?
I Pc dotati di scheda e motherboard Agp, almeno in questa primissima fase, sono prodotti destinati all'impiego sia in ambito home che aziendale. Nel primo caso infatti il sistema può trarre dei discreti vantaggi in termini di prestazioni grazie al fatto che viene liberata banda sul bus Pci, lasciandola a disposizione di altri componenti, come per esempio schede di rete, controller, ecc. Nel caso di utenti del segmento home invece, i vantaggi del bus Agp per applicazioni multimediali e giochi sono evidenti, dato che le funzioni 3d utilizzate sono sempre più complesse e richiedono per la loro elaborazione un'elevata larghezza di banda.
Dal punto di vista della disponibilità di sistemi Agp, i produttori stanno distribuendo ora i primi modelli. La maggioranza dei Pc con questo tipo di componenti attualmente utilizza Cpu Pentium II, grazie al fatto che il nuovo chipset Intel 440 Lx è il primo a integrare appunto le funzioni per questo nuovo bus. Altri chipset per motherboard basate sul socket 7 (quello utilizzabile per esempio con i Pentium Mmx, gli Amd K6 e i Cyrix 6x86 Mx) comunque sono in procinto di offrire questo tipo di funzionalità. La recente notizia inoltre che Intel ha ulteriormente abbassato i prezzi dei Pentium II e il fatto che si siano già viste le prime motherboard con socket 7 e Agp, permette di prevedere una buona diffusione a breve di questo tipo di sistemi.
Qualche considerazione

Una delle prime implicazioni del fatto che la scheda grafica possa usare la memorie centrale del Pc per le texture risiede nel fatto che serve più memoria centrale. Non si tratta di un limite particolarmente restrittivo visti i bassi costi a cui si è assestata la memoria.
Verosimilmente, almeno nei primi tempi dopo l'introduzione del bus Agp non ci sarà da aspettarsi un incremento sensibile delle prestazioni rispetto alle tradizionali schede su bus Pci. Questo perché non sarà semplice sfruttare completamente tutte le risorse e le tecniche offerte dall'Agp. Per esempio, se infatti da un lato è vero che molte delle applicazioni esistenti possono trarre dei benefici dall'architettura Agp, quelle Dos, come per esempio alcuni giochi, non possono invece sfruttare il Gart a causa dell'impossibilità di indirizzamento virtuale della memoria, e quindi i benefici si riducono, per esempio, alla presenza di un bus più veloce.
Dove si potranno apprezzare maggiormente i vantaggi offerti dall'Agp sarà con le nuove applicazioni, specie quelle 3d, scritte appunto per sfruttare al meglio le risorse messe a disposizione dal nuovo standard.
Un ulteriore elemento comunque da prendere in considerazione riguarda anche l'efficienza del sistema Agp rispetto alle soluzione utilizzate normalmente sulle attuali schede grafiche. Per esempio, su una scheda grafica il bus che collega l'acceleratore grafico alla memoria video presente sulla scheda, solitamente è già molto veloce (molte usano bus e acceleratori a 128 bit). Un ulteriore elemento da considerare è che la memoria video, di norma è più veloce di quella di sistema usata dai Pc.