# Scalable Link Interface

Scalable Link Interface (SLI) è una tecnologia sviluppata da 3dfx per collegare due o più schede video per produrre un unico segnale video in uscita.

## SLI: un acronimo riciclato

Il nome SLI era stato inizialmente creato da 3dfx per indicare la propria tecnologia Scan Line Interleave, che era stata introdotta nel 1998 e utilizzata nelle linee di acceleratori grafici Voodoo 2 e successive.
Lo stadio sostanzialmente embrionale della tecnologia utilizzata da 3dfx, e i conseguenti ridotti guadagni prestazionali non hanno portato fortuna a questa prima incarnazione di una tecnica per gestire più schede video in parallelo. La successiva acquisizione di 3dfx proprio da parte di Nvidia che ne ha acquisito anche tutte le proprietà intellettuali, i marchi e i brevetti, ha portato nel giugno del 2004 alla re-introduzione della tecnologia SLI ma con il significato di Scalable Link Interface. Rimaneva intatto lo scopo della tecnologia, ovvero unire la potenza di elaborazione di più schede video per ottenere maggiori prestazioni nella generazione di una scena 3D, ma cambiava radicalmente l'approccio mediante il quale tutto questo veniva realizzato. Contrariamente a quanto si sarebbe potuto pensare infatti, la scelta di riutilizzare questo nome commerciale non derivava dall'uso effettivo della vecchia tecnologia di 3dfx, ma da una semplice operazione di marketing.

## Evoluzione della tecnologia SLI

La prima generazione della tecnologia SLI di NVIDIA è stata lanciata, come detto, nel 2004, cioè quando Intel ha introdotto i primi chipset (i915 Grantsdale e i925 Alderwood) in grado di gestire gli slot PCI Express, in sostituzione del tradizionale AGP. Contemporaneamente alla nascita dello standard PCI Express, NVidia ha lanciato la sua prima generazione di schede GeForce basate sulla nuova interfaccia di interconnessione, la serie GeForce 6. Le schede video GeForce 6800 Ultra e GT riportavano, sulla parte superiore del circuito stampato, uno nuovo connettore "a pettine" la cui finalità era quella di poter collegare 2 esemplari della stessa scheda video attraverso un connettore dedicato in modo che potessero dialogare insieme e generare un'unica scena 3D renderizzata da entrambe le schede video secondo algoritmi di ripartizione del carico, specificati a livello driver.
In realtà le primissime soluzioni SLI erano una prerogativa dei sistemi Intel Xeon DP (dual processor) per sistemi biprocessore, in quanto solo queste piattaforme pensate per i piccoli server fornivano 2 Slot PCI Express sulle proprie motherboard. Il supporto per i sistemi della linea desktop Intel arrivò solo in un secondo tempo, nel 2005. I chipset citati sopra infatti ebbero "solo" il merito di introdurre il nuovo standard PCI Express, ma non fornivano supporto alla tecnologia SLI, della quale NVidia non ha mai pubblicato i diritti a nessun altro produttore di chipset. Il primo sistema desktop ad impiegare la nuova tecnologia era basato sul chipset nForce 4 per i processori AMD Athlon 64 basati su socket 939.
La prima generazione della tecnologia SLI richiedeva necessariamente che le due schede video impiegate fossero esattamente identiche nel modello e nel quantitativo di memoria. Successivamente lo sviluppo driver consentì l'impiego di schede video dello stesso modello ma anche di produttori diversi.

### Quad SLI

Nel gennaio 2006, NVidia ha presentato una configurazione Quad SLI, in grado di sfruttare la potenza di 4 GPU operanti in parallelo. Dato che ai tempi non esistevano motherboard in grado di fornire 4 slot PCI Express x16, per poter installare 4 GPU in un unico sistema, NVidia ha reso disponibili le schede GeForce 7950 GX2 (della serie GeForce 7) realizzate unendo 2 PCB alla base delle schede GeForce 7950 in un'unica periferica dotata di un unico connettore di collegamento alla scheda madre. Installando quindi 2 schede video Geforce 7950 GX2 in un unico sistema dotato di 2 slot PCI Express x16, è possibile quindi unire le prestazioni di 4 GPU.
Pur essendo una soluzione ideale come "ponte" tra le due soluzioni SLI estreme, ovvero 2 schede video montate su 2 slot, e 4 schede video montate su 4 slot, l'approccio di 2 schede video a doppia GPU ha incontrato varie limitazioni alla sua diffusione con, in primo luogo, l'impossibilità di ottenere incrementi prestazionali significativi con buona parte delle applicazioni DirectX 9 proprio per limitazioni architetturali di queste API.
A metà 2007, Intel ha annunciato il futuro arrivo della piattaforma Intel V8 Skulltrail, destinata al settore più alto del mercato desktop, in grado di offrire supporto a sistemi biprocessore quad core e 4 slot PCI Express x16 in grado di offrire il "vero" Quad SLI a 4 schede video indipendenti della serie GeForce 8.

### Hybrid SLI

Nel corso del 2007, NVidia ha annunciato un nuovo sviluppo della tecnologia SLI, chiamata Hybrid SLI, il cui obiettivo dovrebbe essere quello di offrire una soluzione che possa conciliare in qualche modo il contenimento dei consumi e le elevate prestazioni.
Hybrid SLI avrà due differenti modalità di funzionamento denominate Power Saving Mode e Max Performance Mode. Il principio alla base di questa evoluzione parte dalla possibilità di realizzare lo SLI tra 2 schede video differenti e, in particolare, tra una soluzione integrata nel chipset della scheda madre (come avviene soprattutto in moltissimi sistemi Notebook) e una scheda video discreta. In modalità Power Saving Mode si otterrà il massimo risparmio energetico grazie allo spegnimento della soluzione discreta, più potente, in favore di quella integrata. Quando dovesse essere necessaria maggior potenza, verrà attivata invece la soluzioni discreta, in grado di offrire indubbiamente maggiori prestazioni 3D, ma a fronte di maggiori consumi. Nel caso in cui servisse la potenza massima, le due soluzioni video lavorerebbero in parallelo mediante la tecnologia SLI.
Anche Intel ha sviluppato una propria versione di questa tecnologia, chiamata Intel Switchable Graphics e che prevede il passaggio dalla scheda video integrata all'interno di un proprio chipset a quella discreta. Tale tecnologia è stata presentata per la prima volta ad agosto 2008 e integrata nel chipset Cantiga alla base delle piattaforme mobile Centrino 2 e Centrino 2 vPro Montevina. A differenza della soluzione nVidia però, Switchable Graphics non prevede il passaggio tra le due sezioni video in automatico ma solo mediante un interruttore fisico o un comando software e inoltre, non ne consente il funzionamento simultaneo, in modo da migliorare ulteriormente le prestazioni, ma solo un funzionamento alternativo.
NVidia promuove questa tecnologia non solo per l'ambito notebook ma anche per il settore desktop e, a questo proposito, è interessante notare che per sfruttarne a pieno i vantaggi sarà necessario collegare il connettore del monitor direttamente alla presa VGA/DVI della scheda madre e non su quella della scheda video discreta. Questo fatto rende ancor più fondamentale un ottimo controllo da parte del driver, delle continue richieste di prestazioni da parte delle applicazioni in funzione, per evitare che si creino "colli di bottiglia" e ritardi nell'invio del segnale video al monitor, che in modalità Max Performance Mode dopo essere stato elaborato dalla scheda video discreta deve poi essere inviato allo schermo transitando dal chipset che contiene il sistema video integrato.
Secondo NVidia comunque, il passaggio dalla soluzione discreta a quella integrata e viceversa avverrà in maniera totalmente trasparente all'utente, il quale potrà comunque forzare una delle due modalità estreme dal driver video, che per il momento è previsto solo per Windows Vista.

### Three-way SLI

Con il termine "Three-way SLI" (conosciuto anche con i sinonimi "Triple-SLI" o "Tri-SLI") viene indicata da NVidia un'ulteriore incarnazione della propria tecnologia multi GPU e annunciata alla stampa a ottobre 2007 con arrivo sul mercato atteso a gennaio 2008. Come il nome lascia facilmente intendere, si tratta di utilizzare 3 schede video collegate tra loro; la particolarità rispetto alla soluzione Quad SLI (quanto meno nella sua prima generazione), che potrebbe sembrare più evoluta in virtù della presenza di 4 GPU, risiede nel fatto che le schede video saranno completamente distinte, ciascuna alloggiata in un proprio slot di tipo PCI Express x16 o addirittura PCI Express 2.0. Nel 2006 non esistevano motherboard in grado di supportare più di 2 slot PCI Express x16, ma con i nuovi chipset presentati dai vari produttori nella seconda metà del 2007 sono diventati possibili scenari di utilizzo con 3 e in alcuni casi addirittura 4 slot PCI Express x16 (almeno meccanici).
In ogni caso per poter funzionare insieme in una configurazione di questo tipo, le schede video devono essere particolari, cioè dotate di doppio connettore SLI, è necessario infatti che ciascuna delle tre schede sia collegata direttamente alle altre due, in modo da non avere colli di bottiglia nella comunicazione tra le varie unità di processo e nella ripartizione dinamica del carico di lavoro. Si era ipotizzato che anche le ultime GeForce 8800 GT potessero essere utilizzate in questa configurazione ma successivamente NVidia ha smentito tale possibilità.
Sebbene come accennato poco sopra alla fine del 2007 quasi tutti i produttori di chipset abbiano a disposizione dei modelli in grado di offrire supporto a più di 2 slot PCI Express, in virtù del fatto che NVidia non ha mai voluto concedere in licenza l'uso della propria tecnologia, sarà necessario dotarsi di un chipset prodotto dallo stesso produttore e in particolare deve trattarsi dell'nForce 680i SLI, o dei futuri 780a/780i SLI.

## Principi di funzionamento

Nella tecnologia Scan Line Interleaving di 3dfx, il carico di lavoro era ripartito tra le due schede video demandando a una scheda l'elaborazione delle linee pari dello schermo e all'altra l'elaborazione delle linee dispari; successivamente le due scene venivano fuse per ottenere l'immagine finale. Questo approccio risultò essere molto efficiente per alcuni tipi di applicazioni e in certi ambiti le prestazioni subivano effettivamente quasi un raddoppio.
La tecnica di ripartizione del carico di lavoro alla base della tecnologia Scalable Link Interface invece è basata su un principio completamente differente dal suo omonimo. Invece di far elaborare le linee pari dello schermo a una GPU e quelle dispari all'altra, NVIDIA ha deciso di suddividere la scena orizzontalmente in due parti da assegnare alle due schede. La suddivisione non è necessariamente al 50%, ma varia dinamicamente da un fotogramma all'altro: il driver analizza infatti l'immagine e definisce le percentuali da assegnare a ciascuna scheda video. Questo nuovo approccio consente di bilanciare in maniera ottimale il calcolo in quanto una suddivisione statica al 50% sarebbe risultata completamente inefficiente in casi, come nei simulatori di volo nella visuale in terza persona, dove, ad esempio, la zona superiore dello schermo è costituita solo da texture sovrapposte (nuvole) e quella superiore contiene invece moltissimi poligoni ed è interamente 3D.

### 2 modalità di funzionamento per il nuovo SLI

Dal driver della scheda video è possibile selezionare 2 criteri differenti di ripartizione del carico di lavoro tra le schede video operanti in parallelo:
* Alternate Frame Rendering (AFR): il rendering della scena viene eseguito in modo sequenziale, con la prima scheda che renderizza i frames pari e l'altra quelli dispari.
* Split Frame Rendering (SFR): con questa tecnica il rendering di ogni frame viene diviso tra le due schede. La percentuale di rendering può essere 50-50, ma anche divisa dinamicamente tra le due schede a seconda del tipo di applicazione che viene eseguita.
NVidia ha deciso di rendere disponibili entrambi i criteri in quanto non esiste la modalità migliore in assoluto; a seconda dell'applicazione in esecuzione, può essere migliore una o l'altra modalità. Per semplificare la scelta sono disponibili dei profili ottimizzati per un grande numero di applicazioni 3D e, semplicemente selezionando il profilo desiderato, è possibile sfruttare al meglio le potenzialità di una configurazione SLI.
I dati sui vertici, elaborati dal processore, vengono inviati alla prima scheda video e da questa ultima vengono duplicati alla seconda, utilizzando il connettore posto nella parte superiore delle due schede; questo permette a ciascuna scheda video di avere a disposizione le informazioni necessarie per la generazione della scena 3D. Una volta che il frame è stato generato dalla scheda video secondaria, i dati vengono inviati al frame buffer della scheda principale, quella alla quale viene collegato il monitor, e da quest'ultima mandati sullo schermo.

## SLI e Windows Vista: un inizio difficile

Il debutto del sistema operativo Windows Vista ha portato con sé diversi problemi di compatibilità e prestazioni con la tecnologia SLI. In realtà la responsabilità del sistema operativo Microsoft in questo inizio difficile di convivenza è solo indiretto. Il problema nasce dal fatto che per questioni di stabilità e sicurezza Windows Vista ha cambiato radicalmente l'approccio dello sviluppo driver da parte dei produttori di periferiche in generale, e dei produttori di schede video in particolare, in quanto oltre ai nuovi requisiti di interfacciamento dei driver con il sistema operativo, si sono aggiunte anche le nuove librerie DirectX 10 (disponibili solo su Windows Vista) che hanno rivoluzionato a loro volta le tecniche con cui le schede video devono relazionarsi con la gestione grafica del sistema operativo.
Per diversi mesi, NVidia non è stata in grado di far fronte a tutta questa mole di difficoltà nate con l'arrivo di Windows Vista (e dei primi driver certificati ForceWare 158.42), soprattutto per quanto riguarda il supporto della tecnologia SLI. Solo a partire da maggio 2007, nuovi driver ottimizzati hanno finalmente reso disponibile la tecnologia SLI sia con le API DirectX 9, sia con le DirectX 10. Ovviamente anche le schede video GeForce 7950 GX2, dotate di 2 GPU collegate in parallelo tra di loro non potevano venire sfruttate adeguatamente nei primi mesi di vita di Windows Vista.

## La soluzione concorrente: AMD/ATI CrossFire

La tecnologia SLI è stata fondamentalmente la prima ad offrire un aumento di prestazioni unendo la potenza di più schede video ed è diventata, in un certo senso, un "sinonimo" di elaborazione multi GPU.
Dopo poco più di 1 anno dalla presentazione di SLI, la concorrente di NVidia, ATI (poi acquisita da AMD) sviluppò la propria tecnologia multi GPU, chiamata CrossFire, disponibile nelle schede della serie Radeon. L'approccio della prima generazione era molto diverso da quello NVidia, utilizzando un cavo esterno al case del pc, che collegava direttamente le uscite DVI delle due schede video. Malgrado i molti sforzi tecnici e commerciali per migliorare le prestazioni di CrossFire, questa tecnologia non ha mai raggiunto la popolarità dello SLI di NVidia, ma il suo sviluppo è continuato negli anni, e nelle ultime incarnazioni, è diventata ormai molto simile alla tecnologia concorrente, iniziando dall'abbandono del cavo esterno in favore del collegamento interno mediante connettore "a pettine", e dalla concessione in licenza anche a Intel che può ora fornire direttamente il supporto CrossFire attraverso i propri chipset.