Le architetture SPARC

0

In elettronica e informatica SPARC (Scalable Processor ARChitecture) è un’architettura per microprocessore big-endian RISC.

L’architettura fu progettata nel 1985 da Sun Microsystems, e diventò un marchio registrato da SPARC International, Inc., un’organizzazione nata nel 1989 appositamente per promuovere SPARC e inoltre rilasciare attestati e definire degli standard di conformità a cui attenersi per quei processori che intendono ottenere tale titolo di conformità.
SPARC International ha reso SPARC un’architettura open, in modo tale da creare una grande community attorno allo sviluppo e progettazione di nuovi processori. Allo stato attuale, SPARC è definibile come un’architettura aperta e non proprietaria: esiste anche un’implementazione 
open source completa, denominata LEON, scritta in VHDL, la quale ha licenziato il suo codice sorgente sotto LGPL. L’ASIC di LEON, sviluppato da Gaisler Research, è a 32-bit e supporta il set di istruzioni presente nell’architettura SparcV8.

Le CPU con implementazioni dell’architettura SPARC inizialmente furono progettate e usate per ambiti come le workstation e più tardi anche in server SMP prodotti dalla Sun Microsystems e dalla Fujitsu. Solaris, il sistema operativo creato da Sun Microsystems, fu concepito proprio per funzi0nare su macchine con processori dotati di architettura SPARC, anche se per questa architettura sono disponibili versioni di vari sistemi operativi tra cui OPENSTEP, Linux, FreeBSD, OpenBSD e NetBSD. Negli anni si sono sviluppate varie versioni dell’architettura SPARC in modo da garantire la massima compatibilità possibile fra processori datati e nuovi per rendere più semplici eventuali aggiornamenti (un esempio sono i processori UltraSPARC III e UltraSPARC VI/VI+ che possono essere montati nello stesso sistema senza problemi); l’architettura più recente e tuttora in uso è la nona (V9).

Un processore SPARC normalmente contiene almeno 128 registri di uso generico; di questi solo 32 registri sono disponibili direttamente al software, 8 sono globali e gli altri 24 vengono utilizzati come stack. I 24 registri fungono da register window e quando le funzioni chiamano o ritornano variabili questi registri provvedono a memorizzare i dati.

Share.

Leave A Reply