Serie CDC 6000: differenze tra le versioni

Corregge secondo le norme del Sistema internazionale di unità di misura, replaced: a A → ad A using AWB
m (Bot: Correzione di uno o più errori comuni)
(Corregge secondo le norme del Sistema internazionale di unità di misura, replaced: a A → ad A using AWB)
Il central processor (CP o processore centrate) era l'unità deposta all'esecuzione delle operazioni aritmetiche o logiche del sistema. Il CP poteva eseguire addizioni, sottrazioni, moltiplicazioni, divisioni, operazioni logiche incrementi e salti condizionati. Nell'architettura del CDC 6000 il processore centrale non eseguiva operazioni di I/O dato che queste erano svolte in modo asincrono dai processori secondari.
 
Le CPU della serie 6000 disponevano di 24 [[registro (informatica)|registri]] compresi tra X0-X7, A0-A7 e B0-B7. I registri X erano ampi 60 bit e venivano utilizzati per manipolare i dati interi e in virgola mobile. I registri B erano registri a 18 bit e venivano utilizzati normalmente per gestire gli indici e gli indirizzi in memoria. Il registro B0 era fissato a 0 in hardware. Normalmente il registro B1 veniva settato via software a 1 (questo spesso permetteva di utilizzare le istruzioni a 15 bit invece delle istruzioni a 30 bit). Gli otto registri A erano a 18 bit ed erano accoppiati ai registri X direttamente. L'inserimento di un indirizzo nei registri da A1 aad A5 produceva la lettura della locazione di memoria e la sua memorizzazione del registro X corrispondente. L'inserimento di un indirizzo in A6 o A7 produceva la scrittura dei dati contenuti in X6 e X7 nella locazione di memoria indicata dagli indirizzi A. I registri A0 e X0 non erano coinvolti nel processo e potevano venir utilizzati come registri per compiti esterni. Difatti al memoria esterna Extended Core Storage (ECS) veniva gestita tramite questi registri.
 
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.
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 un [[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 (unità di misura)|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 [[FLOPS|MegaFLOPS]].
 
Il 6700 combinava il meglio dei precedenti sistemi. Come il 6500 aveva due processori centrali, una era il processore del 6400/6500 con la gestione aritmetica unificata il secondo processore era quello del 6600. La combinazione rendeva il CDC 6700 il più potente sistema della linea CDC 6000.
 
==Bibliografia==
* {{en}} [http://bitsavers.vt100.net/cdc/6x00/60100000D_6600refMan_Feb67.pdf CONTROL DATA 6400/6500/6600 Computer Systems Reference Manual, Publication No. 60100000 D, 1967]
* {{en}} CONTROL DATA 6400/6500/6600/6700 Computer Systems, SCOPE 3.3 User’s Guide, Publication No. 60252700 A, 1970
* {{en}} [http://bitsavers.vt100.net/cdc/6x00/scope/60305200D_SCOPE3.3ug_Sep71.pdf CONTROL DATA 6400/6500/6600/6700 Computer Systems, SCOPE Reference Manual, Publication No. 60305200, 1971]