Processori UltraSparc

Cimenti Marco
Stampa

 

ARCHITETTURA SPARC V9:

sparc 1996

II primo processore di tipo SPARC (Scalable Processor ARChitecture),chiamato Integer Unit, era a 32 bit e 36 MHz ;

in accordo con la filosofìa RISC esso era dotato di sole 55 istruzioni in tutto,più altre 14 istruzioni floating point.

L'architettura SPARC V9 (versione 9) e la nuova Workstation Sun che ne derivò, segnarono una importante svolta poiché utilizzavano indirizzi e registri a 64 bit, pur essendo compatibili a livello binario con le versioni precedenti a 32 bit. La workstation Sun che nel 1995 utilizzò per la prima volta questa famiglia di processori prese il nome di UltraSparc-I.

 

La famiglia di processori UltraSPARC, che si poggia sull' architettura superscalare SPARC V9 progettata da Sun Microelectronics, è costituita da tre modelli principali di processori: l'UltraSparc-I, l'UltraSparc-II, e /' UltraSparc-III.

Queste Cpu, archittetturalmente molto simili, vengono utilizzate principalmente nelle workstation e nei server SUN .

NOTE;

Sparc non è stato il primo processore RISC; prima di esso sono da ricordare AMD2900, il MPSR2000 dell'università di stanford, la HP Precision Architecture... Tuttavia l'architettura SPARC si dimostrò più radicale ed innovativa.

(*) Un multiprocessore è un sistema basato sulla memoria condivisa (shared memory) cioè in cui tutte le CPU hanno una memoria fisica comune. Naturalmente tali sistemi devono disporre di un adeguato software; tutti i processi devono lavorare in parallelo e condividere un unico spazio di indirizzamento virtuale mappato in una memoria comune.

Panoramica sui componenti:


IEU-Integer Execution Unit:

è preposta ai calcoli con dati interi; essa è composta da due unità aritmetico-logiche (ALU) ciascuna con registri propri ed è dotata di un moltiplicatore ed un divisore a cicli multipli per gli interi.

FPU-Floating Point Unit:

Si occupa dei calcoli in virgola mobile;è divisa in due unità di esecuzione separate che permettono al processore di eseguire fino a due istruzioni per ciclo di clock.

GRU-Graphic Unit:

Si tratta di una unità capace di eseguire istruzioni grafiche che permettono una elaborazione di immagini bi-tridimensionali più efficiente:ad esempio sono scortate operazioni come la distanza tra pixel, l' allineamento dei dati, somma e confronto booleani (tutte eseguite in un solo ciclo di clock).

MMU-Memorv Menagement Unit:

La Mmu provvede al mappaggio di indirizzi virtuali da 44 bit in indirizzi fisici da 41 bit. Questo avviene grazie al TLB (Translation Lookaside Buffer) con 64 ingressi per le istruzioni e 64 per i dati (entrambi sono di tipo full-associative).

LSU-Load and Store Unit:

L'LSU è dedicato alla creazione degli indirizzi virtuali di tutti i load e gli store, all'accesso alla cache dati. Ad ogni ciclo può essere eseguito un load o uno store.

Questa unità carica le istruzioni prima che siano effettivamente necessario nella pipeline. Le istruzioni possono essere prelevate dalla cache delle istruzioni, dalla cache esterna o dalla memoria centrale.Le istruzioni vengono caricate (fino a un massimo di 12) nel buffer delle istruzioni per poi essere inviate alla pipeline.

Icache-Cache L1 delle istruzioni:

È di tipo two way associative da 16KB con blocchi da 32 byte;è fisicamente indicizzata e contiene TAG fisici.

Dcache-Cache L1 dei dati:

È di tipo write-trough da 16KB direttamente mappata con due sottoblocchi da 16 byte per linea;è indicizzata virtualmente ed il TAG è fisico.

ECU-External Cache Unit:

II ruolo principale dell'ECU è gestire in maniera efficiente i cache miss; può eseguire un accesso per ciclo alla cache esterna.

MIU-Memory Interface Unit:

gestisce i miss della cache esterna, gli interrupt, i write-back comunicando con il sistema ad una frequenza minore di quella del processore. Sia l'MIU che l'ECU forniscono il supporto per tre caricamenti contemporanei e due writeback contemporanei sul bus UPA.

 

ultra2 diagramma

 

La cache dell 'Ultrasparc II:

 

L'Ultra Sparc II è dotato di :

  1. Una "split" cache interna di livello 1 con 16 KB per le istruzioni e 16 KB per i dati (dunque si tratta di una architettura Harvard con dati e istruzioni che utilizzano una cache diversa).

La cache delle istruzioni è di tipo set-associativo a due vie con blocchi di 32 byte tìsicamente indicizzati (PIPT: physically indexed, physically tagged).

La cache dei dati_è di tipo write-through a mappaggio diretto con due sottoblocchi da 16 byte per linea; è indicizzata virtualmente mentre il tag è fisico (VEPT: virtually indexed,physically tagged).

Nella cache L1 pertanto vi sono sia le 256 linee di dati,sia le 256 linee dedicate alle istruzioni più utilizzate...

  1. Una cache di secondo livello PIPT unificata in cui dati e istruzioni convivono assieme mischiati casualmente ma rintracciabili tramite dei TAG o "etichette"; essa può variare da 512 KB fino a 16 MB (nel Pentium II sono 512KB fissi). la sua peculiarità è che si tratta di una cache di tipo esterno (ECU) ma non presenta alcun package proprietario. In tal modo la cache L2 utilizzata risulta indipendente dal chip della CPU: si è pertanto liberi di scegliere il tipo di SDRAM da montare (al contrario del P2 dove è presente la "cartuccia SEC"). La RAM statica sincrona che costituisce la cache L2 può essere di due tipi diversi; in tal modo,potendo sia variare la dimensione della cache,sia combinare i tipi di SRAM si ottiene una buona scelta di configurazioni possibili.

Se la CPU non individua il dato cercato nella cache di primo livello invia un identificatore di linea (indirizzo della TAG) alla cache L2.

La risposta (ossia la TAG stessa) informa il processore se la linea si trova nella cache di secondo livello;se la linea si trova nella cache viene recuperata mentre se avviene ancora un cache miss allora il dato cercato deve trovarsi in memoria centrale..


Nei sistemi con UltraSparc esiste una interfaccia di memoria espressamente dedicata detta UPA (Ultra Port Architecture). Nel nostro caso PUPA viene implementata con un controllore centralizzato .

La cache dell'Ultrasparc è in grado di funzionare alla medesima frequenza di clock della CPU: in tal modo si sfrutta una maggiore ampiezza di banda e si ha una minore latenza (accesso ai vettori in 1 ciclo,latenza lettura 3 cicli,larghezza banda per ciclo di 16bit). Se si utilizzano SRAM di tipo flow-through,anch'esse supportate,possono operare alla metà della frequenza di clock della CPU. Tali memorie hanno però tempi di accesso al registro degli indirizzzi più lunghi (sono necessari 2 cicli per trasmettere l'indirizzo alla SRAM,due cicli per accedere e fornire dati al processore). Utilizzando questa cache più lenta è possibile raggiungere grosse dimensioni di cache esterna; inoltre, non essendo vincolata a seguire gli andamenti della frequenza della CPU, è adatta a frequenze superiori ai 500MHz.

 

Accesso alla memoria centrale

 

Come già visto, la memoria centrale è divisa in linee di cache da 64 byte. Per accedere alla memoria la CPU (o le CPU) devono prima utilizzare i numerosi piedini dedicati all'arbitraggio del bus per ottenere l'autorizzazione; una volta ottenutala CPU attiva i piedini dell'indirizzo di memoria specifica il tempo di richiesta e attiva il piedino di indirizzo valido.

L'interfaccia UPA è sincrona e richiede alla frequenza della CPU di essere in rapporto fìsso con la frequenza dei bus.

 

Freq.CPU(MHz)

Freq. Bus (MHz)

Rapporto

Applicazione

250

83

3:1

Configurazione standard

300

75

4:1

Processore di alto livello

300

100

3:1

Sistema di alto livello

Esempi di interfaccia del sistema

Da notare come si possano verifìcare più transazioni UPA contemporaneamente. Ad esempio,una volta rilevato un cache miss, in attesa dei risultati delle operazioni successive della CPU, può avvenire l'esecuzione di una o più istruzioni già preventivamente lette.

Come già accennato un controllore generalizzato si occupa di soddisfare le richieste di memoria nell'ordine più efficiente.

Tutti i dati in arrivo alla memoria vengono organizzati in 8 byte per volta con un codice di correzione di errore di 16 bit.

In seguito i dati vengono messi nella UDB (Ultrasparc Data Buffer), che li memorizza temporaneamente.

L'UDB è in grado di gestire il trasferimento (ritardato) alla memoria anche se l’UPA è occupato; inoltre genera e controlla il codice di correzione d'errore.


Esempio: si supponga che la CPU debba scrivere una linea di cache in memoria;invece di attendere che PUPA si liberi (se è occupato) scrive direttamente i dati nel buffer UDB. A questo punto è l'UDB stesso che si occupa del trasferimento,permettendo alla CPU di svolgere altre operazioni.

Note:

L'US2 utilizza l'UDB2: si tratta come già visto di un buffer dati che nella maggior parte delle configurazioni consiste in 2 microchip contenenti 128 linee dati e 16 linee di correzione errori connessi tra di loro tramite l'UPA a 144 bit (128+16). Hanno una interfaccia a 64 bit (+8 bit parità) e sono contenuti in un package a 256 pin detto BGA (Ball Grid Array). Quest'ultimo viene utilizzato anche per racchiudere i moduli SRAM L2.

 

LA PIPELINE:

 

 

 

Visual Instruction Set

 

Per la crescente richiesta di grafica avanzata nei settori più disparati, UltraSPARC è stato progettato fornire capacità multimediali generiche.

Per questo furono aggiunte 23 nuove istruzioni all'ISA RISC standard dell'architettura SPARC V9. Tali estensioni sono chiamate Visual Instruction Set e permettono il completamento di istruzioni complesse anche in un solo ciclo di clock grazie ad operazioni di tipo SEMD. Le macchine SIMD (Single Instruction Multiple Data) possiedono una sola unità di controllo che esegue una sola istruzione per volta ma sono dotate di più ALU in grado di operare contemporaneamente su più set di dati.

Le estensioni VIS sono dunque ideate per accelerare l'esecuzione di certi algoritmi fino a sette volte, con oltre 10 operazioni a ciclo eseguibili in parallelo.Inoltre c'è la possibilità di ottenere prestazioni ancora migliori nelle configurazioni a multiprocessore...

Ad esempio sono state concepite apposite istruzioni per impacchettare e spacchettare i pixel in parole da 64 bit, per cambiare scala o ruotare immagini, per comprimere in modo efficace audio e video (vd MPEG2)...

Le applicazioni multimediali traggono ulteriore profitto dalle quattro pipeline di cui è dotato l’ UltraSparc. Due sono dedicate agli interi mentre altre due sono dedicate alle unità floating point.

Esempio (istruzione somma-VIS): quattro operandi da 16 bit vengono caricati in un registro da 64 bit e quattro in un altro registro; quindi in un solo ciclo di clock vengono eseguite quattro operazioni di somma a 16 bit.

 

 

 

Esaminamo due miglioramenti significativi che tali istruzioni portano :

  1. Decodifica MPEG in tempo reale: Ultrasparc II è in grado di elaborare 4 pixel in una sola operazione;è stato il primo processore ad utilizzare la compressione MPEG2 (prima si necessitava di un sistema video esterno espressamente dedicato).

 

  1. Accelerazione delle funzionalità di rete : I processori dotati dell'instruction set VIS possono eseguire molto più velocemente i calcoli ripetitivi richesti dalla rete... Questo grazie all'aritmetica parallela ed a un miglioramento delle prestazioni nello spostamento dei dati (ossia accelerazione delle operazioni I/O nel protocollo TCP/TP).

Tabella di confronto


Ovviamente il confronto dobbiamo farlo con un processore delle stesso periodo...


Unix e Ultrasparc


II sistema operativo UNIX fu creato dai Bell Labs durante gli anni '70; la prima versione venne scritta in linguaggio assembler da Ken Thompson per il minicomputer della DEC PDP-7; in seguito verrà riscritto in linguaggio C da Dennis Ritchie.

Ben presto molte università dotate dei diffusissimi PDP-11 si procurarono questo nuovo sistema operativo e,poiché era disponibile il codice sorgente completo, poterono implementarlo e modificarlo a piacimento.

Questo fatto portò tuttavia alla disordinata diffusione di diverse versioni UNIX (da ricordare le versioni System di Berkeley e l'evoluzione dell'UNIX originario dei Bell Labs) e spinse alla creazione di uno standard internazionale chiamato POSIX (Portable Operating System).

Il sistema operativo tuttora (ndt) utilizzato dalle macchine Ultrasparc si chiama SOLARIS ed è basato sul System 5 dell'università di Berkeley.

L' interfaccia a linea di comando viene gestita da un programma utente chiamato shell (ne esistono di diversi tipi : ash, bash... ) ben distaccato dal kernel che è il vero e proprio "nucleo" del sistema operativo.

In seguito,con la diffusione dei terminali grafici venne aggiunta una GUI (Graphic User Interface) chiamata Motif.

ALCUNE NOTE SU LINUX:

è la versione freeware del sistema operativo UNIX sviluppata presso l'università di Helsinky dal finlandese Linus Torvalds con l'aiuto di collaboratori da tutto il mondo.

La prima versione completa di Linux (1.0) risale al 1994;del 1996 è invece una seconda versione (2.0). Linux mantiene tutte le potenzialità di UNIX, ma a differenza di quest'ultimo può essere scaricato da internet; ciò ne ha favorito una notevole diffusione specie negli ambienti universitari e fra gli appassionati di informatica.


Approfondimento: Filosofia SUN:

Sun Microsystems è una delle società che maggiormente hanno influenzato lo scenario deirinformation Technology degli ultimi anni attraverso il concetto "The Network is the Computer", offrendo tecnologie, prodotti e servizi alle aziende che intendono cogliere i vantaggi della Rete in termini di utenti, dati, applicazioni.

Diversamente dalle più tradizionali architetture di processori SPARC è un progetto libero ed aperto disponibile sotto la licenza della SPARC International.INC. Qualsiasi compagnia in possesso di questa licenza può produrre un processore SPARC.

Infatti,già dopo pochi anni dalla sua fondazione, SUN autorizzò diversi produttori di semiconduttori a produrre chip SPARC confidando che la competizione fra di loro avrebbe giovato all'evoluzione del processore; per questo motivo sono stati prodotti diversi tipi di processori basati su tecnologie diverse (ad esempio : microsparc,hypersparc,turbosparc,supersparc... )

La stessa filosofia venne applicata,per esempio, nella scelta di non pogettare una cache L2 apposita per l'ultrasparc; infatti, come già visto, TUS2 permette ai progettisti di sistemi di scegliere la quantità ed il tipo di SRAM più adatti ai loro scopi.

 


Sun ha percorso molta strada dai tempi in cui l'azienda era costituita solo da quattro studenti universitari con un'idea innovativa. Da vent'anni sulla breccia, Sun, sorprendentemente, conta oggi circa 40000 dipendenti nei suoi uffici in tutto il mondo. In realtà, dai modesti esordi come azienda produttrice di workstation per progettazione, Sun svolge ora un ruolo preminente nella fornitura di server di rete, sistemi di Storage, software, applicazioni per I'infrastruttura di rete e altro ancora. Tuttavia, nonostante i cambiamenti che hanno interessato l'azienda e i vari modi di reinventare i nostri prodotti e la nostra società nel corso di questi anni, una caratteristica è rimasta immutata: l'idea originaria. Il concetto di apertura applicato alla rete è ancora la nostra passione, la forza trainante alla base delle tecnologie, dei prodotti e dei servizi Sun. È questa passione che ci ha guidato nello sviluppo di potenti standard Internet, quali NFSeXML, e nella creazione di soluzioni innovative, come l'ormai universalmente nota tecnologia Java[tm]. Ed è sempre per questa passione che Sun continua a promuovere interfacce di programmazione aperte, che riteniamo il fulcro della nostra filosofìa e la chiave per poter creare sistemi in grado di interoperare, indipendentemente dal loro produttore. La visione di Sun è rimasta immutata. Il nostro motto, "The Network Is The Computer" (la rete è il computer), non è un semplice slogan, ma un principio di progettazione... ,.. Soltanto verso la metà del 1990, quando Internet si aprì al mondo commerciale uscendo dal chiuso delle istituzioni governative e accademiche, la potenza dell'informatica di rete colpì davvero nel segno. Improvvisamente, la rete divenne molto più di un semplice insieme di computer presenti all'interno di un edifìcio o di un'azienda. Internet si trasformò in un mezzo per comunicare, collaborare ed eseguire transazioni commerciali con clienti, fornitori e partner in tutto il mondo...

25 Febbraio 2002 Scott McNealy



Tabella di confronto

Ultrasparc-II

Pentium-II

Tecnologia a 0.35µ

787 piedini

5.4 milioni di transistor frequenza 250-333MHz

oltre 2Terabyte di mem

Tecnologia 0.25 µ

242 piedini

7.5 milioni transistor frequenza 233-400MHz

fino a 4GB di memoria

Macchina a 64 bit con registri e data path da 64 bit che mantiene la compatibilita con le versioni precedenti a 32 bit.

Macchina a 32 bit ma che supporta operandi anche da 8 e 16 bit (in accordo con la filosofìa Intel che intende mantenere la "compatibilita verso il basso")

Puro progetto RISC con istruzioni semplici e precise...Maggior parte delle istruzioni hanno due registri sorgente e uno di destinazione adatti all'esecuzione in pipeline in un ciclo di clock.

Progetto CISC (vecchio set di istruzioni mantenuto per garantire l'utilizzo del vecchio software).

Necessità di suddividere le istruzioni complesse in micro operazioni tramite una ROM di decodifica.

La memoria indirizzabile è un vettore di 2^64 byte; l'ordine dei byte è big endian per default.

IL P2 è dotato di un vasto spazio di indirizzamento con la memoria divisa in 16384 segmenti ognuno dei quali va dall'indirizzo 0 a 2^32-1. Le parole vengono memorizzate in formato little endian.

Istruction set multimediale VIS (Visual Instruction set). Si tratta di 23 nuove istruzioni multimediali in aggiunta all'ISA RISC).

Tecnologia MMX: 57 nuove istruzioni definite da Intel come "estensioni matriciali".

CACHE L1 interna di tipo two-way associative con 16KB sia per i dati che per le istruzioni.

CACHE L2 unificata esterna al chip con dati e istruzioni mescolati ma rintracciabili grazie a dei TAG. Può variare da 512KB a 16MB .

Il Pentium II si presenta con una cache di livello due già cablata in un package proprietario:la cartuccia SEC (Single Edge Cartrige). La SRAM è fissa a 512KB.

PIPELINE a 9 stadi:

(due stadi sono in eccesso solo poiché la

pipeline Integer è stata allungata artificialmente). L'US2 è in grado di sostenere l'esecuzione di oltre 4 istruzioni a ciclo anche in presenza di salti condizionati e cache miss..

La pipeline del pentium II è a 12 stadi divise in tre sezioni che possono funzionare con una certa autonomia una rispetto all'altra

Bus sincrono a 25 MHz chiamato SBUS per dispositivi I/O. Essendo quest,ultimo troppo lento per la memoria SUN ha creato un bus più veloce detto UPA (Ultra ort Architecture).

Un tipico sistema Pentium II utilizza bus ISA con trasferimenti di 16.7 MB/s; il più evoluto PCI (Peripheal Component Interconnect Bus) fino a 528MB/sec (usato anche dalla SUN nell' Ultrasparc III); inoltre è presente il bus ad alta velocità AGP (254MB/sec,nella modalità 2X 508MB/sec).

Sia l'ALU integer sia quella floating point sono divise in due ALU separate che Permettono di eseguire almeno due istruzioni in parallelo; inoltre i registri 'Integer e FP sono separati. L'ALU FP comprende inoltre una unità grafica...

Il P2 possiede due unità per gli interi,una floating point ed una unità per il load e lo store.


Sostenete il rinnovamento del sito dando un'occhiata ai link pubblicitari che vi interessano.
Commenti
Nuovo Cerca
+/-
Commenta
Nome:
Email:
 
Website:
Titolo:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:D:angry::angry-red::evil::idea::love::x:no-comments::ooo::pirate::?::(
:sleep::););)):0
 
Please input the anti-spam code that you can read in the image.
giorgio |2012-01-13 18:38:57
Bei tempi!
tired  - bello |2011-11-18 18:02:47
grazie mille!

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."


Ultimo aggiornamento ( Mercoledì 12 Ottobre 2011 12:49 )