Serie CDC 6000: differenze tra le versioni

Nessun cambiamento nella dimensione ,  15 anni fa
m
mNessun oggetto della modifica
 
Le istruzioni erano a lunghezza variabile e potevano essere a 15 o 30 bit in modo da contenere fino a 4 istruzioni per parola. gli [[op code]] erano a 6 bit, lo spazio rimanente era utilizzato per indicare 3 registri da 3 bit (per esempio due registri dati e un registro per il risultato) o due registri e un indirizzo di memoria a 18 bit. Tutte le operazioni lavoravano solo sui registri. Per esempio il seguente codice [[COMPASS]] carica due valori dalla memoria, esegue una somma a 60 bit e salva il risultato.
 
 
<code>
Il CDC 6600 come il 6400 aveva un solo processore centrale,. Tuttavia questo era molto più prestante di quello utilizzato dal 6400. Il processore era formato da 10 unità di esecuzione indipendenti e sviluppate per eseguire delle operazioni specifiche. Le unità erano divise in una di gestione dei salti, una di logica booleana, uno shifter, un sommatore intero, un sommatore in virgola mobile, un divisore in virgola mobile, due moltiplicatori in virgola mobile e due sommatori incrementali a 18 bit. La più veloce era l'unità di somma incrementale che impiegava 3 cicli di clock, mente la più lenta era l'unità di divisione dei numeri in virgola mobile che richiedeva 29 cicli di clock.
 
Il processore del 6600 poteva iniziare l'esecuzione di un'istruzione per ogni ciclo di clock se erano disponibili le risorse (dati e unità funzionali). La gestione delle risorse disponibili era svolta dallo [[scoreboarding]]. Inoltre il processore aveva unaun pipeline[[buffer]] a 8 stadi in gradi di contenere fino a 32 istruzioni e quindi in grado in grado di racchiudere al suo interno i cicli più piccoli eliminando gli accessi alla memoria principale.
 
Sia il 6400 che il 6600 avevano un clock di 10 MHz (100 ns). Data la natura seriale del processore del 6400 le sue prestazioni dipendevano in maniera significativa dall'ordine delle istruzione da eseguire ma comunque era di circa 1 [[MIPS]]. La somma in virgola mobile richiedeva 11 cicli mentre la moltiplicazione ne utilizzava 57 di cicli. Il numero di operazioni in virgola mobile dipendevano molto dalle operazioni utilizzata ma si attestavano in un programma generico su circa 200.000 al secondo. Il 6600 era molto più veloce. Con un buon compilatore e con un'adeguata schedulazione delle istruzioni il sistema poteva sviluppare fino a 10 milioni di operazioni per secondo. La somma in virgola mobile richiedeva 4 cicli mentre la moltiplicazione in virgola mobile richiedeva 10 cicli (il sistema aveva due unità per le moltiplicazioni per processarne due istruzioni in parallelo) Il 6600 poteva sviluppare fino a 2-3 [[megaflops]].
74 497

contributi