Seria CDC 6000

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Seria CDC 6000 este o linie de mainframe fabricate de Control Data Corporation în anii 1960 . Linia era formată din CDC 6400 , CDC 6500 , CDC 6600 și CDC 6700 , o serie de sisteme extrem de rapide și eficiente pentru acea vreme. Acestea au fost sisteme dezvoltate pentru sarcini de uz general și au fost utilizate cu aplicații științifice, militare și comerciale. Sistemele sprijinit executarea multiple concurente programe datorită unui sistem de operare de partajare a timpului numit DOMENIU (S upervisory C ontrol O f P rogram E xecution).

Seria CDC 6000 consta din patru unități funcționale, memoria principală, unul sau două procesoare centrale foarte puternice și rapide, procesoare multiple periferice și o consolă pentru gestionarea sistemului. Sistemele de linie 6000 au fost împărțite în principal la numărul de procesoare centrale și puterea lor. Mașinile se bazau pe o arhitectură asemănătoare RISC cu mult înainte de a fi inventat termenul.

Istorie

Primul membru al seriei CDC 6000 a fost supercomputerul CDC 6600 dezvoltat de Seymour Cray și James E. Thornton în laboratoarele Chippewa Falls din Wisconsin . A fost introdus în septembrie 1964 și a dezvoltat peste trei milioane de operații în virgulă mobilă pe secundă, triplând IBM 7030 Stretch, cel mai rapid computer al vremii. 6600 a rămas cel mai rapid computer de pe planetă timp de cinci ani până la introducerea CDC 7600 . Mașina a fost refrigerată în Freon, iar CDC a produs peste 100 de mașini de acest tip, vândându-se între 6 și 10 milioane de dolari.

Următorul sistem, CDC 6400 a fost introdus în aprilie 1966. Procesorul 6400 a fost un procesor lent, a implementat procesare serială spre deosebire de 6600 care avea un procesor capabil să proceseze instrucțiuni în paralel. În caz contrar, a fost la fel ca și 6600. Succesorul a fost CDC 6500 care se baza pe două procesoare 6400, sistemul a fost dezvoltat în principal de James E. Thornton în octombrie 1967 . În cele din urmă a fost introdus CDC 6700, care era un sistem care combina un procesor 6600 și un procesor 6400, sistemul a fost introdus în octombrie 1969 .

Modificările ulterioare aduse seriei în 1969 au dus la versiuni capabile să gestioneze 20 de periferice, cu procesoare periferice cu 24 de canale. CDC a introdus, de asemenea, o versiune a CDC 6400 cu un număr redus de procesoare periferice, CDC 6415-7 cu 7 procesoare periferice pentru a reduce costurile.

Procesorul central

Procesorul central (CP sau procesor central) a fost unitatea depusă pentru a efectua operațiile aritmetice sau logice ale sistemului. CP ar putea efectua adunări, scăderi, înmulțiri, diviziuni, operații logice, incrementări și salturi condiționale. În arhitectura CDC 6000, procesorul central nu a efectuat operații de I / O, deoarece acestea au fost efectuate asincron de către procesoarele secundare.

CPU-urile din seria 6000 aveau 24 de registre variind de la X0-X7, A0-A7 și B0-B7. Registrele X au avut o lățime de 60 de biți și au fost utilizate pentru a manipula date întregi și în virgulă mobilă. Registrele B erau registre pe 18 biți și erau utilizate în mod normal pentru gestionarea indexurilor și adreselor din memorie. Registrul B0 a fost fixat la 0 în hardware. În mod normal, registrul B1 a fost setat la 1 prin intermediul software-ului (acest lucru a permis adesea utilizarea instrucțiunilor de 15 biți în loc de instrucțiunile de 30 de biți). Cele opt registre A au fost pe 18 biți și au fost cuplate direct la registrele X. Inserarea unei adrese în registrele de la A1 la A5 a produs citirea locației memoriei și stocarea acesteia a registrului X corespunzător. Inserarea unei adrese în A6 sau A7 a produs scrierea datelor conținute în X6 și X7 în locația de memorie indicată de adresele A. Registrele A0 și X0 nu au fost implicate în proces și ar putea fi utilizate ca registre pentru sarcini externe. De fapt, memoria externă Extended Core Storage (ECS) a fost gestionată prin aceste registre.

Instrucțiunile aveau o lungime variabilă și puteau fi de 15 sau 30 de biți, astfel încât să conțină până la 4 instrucțiuni pe cuvânt. codurile op au fost de 6 biți, spațiul rămas a fost folosit pentru a indica 3 registre de 3 biți (de exemplu două registre de date și un registru pentru rezultat) sau două registre și o adresă de memorie de 18 biți. Toate operațiunile au funcționat doar pe registre. De exemplu, următorul cod COMPASS încarcă două valori din memorie, efectuează o sumă de 60 de biți și salvează rezultatul.

 SA1 X Setează registrul A1 cu adresa primului operand (instrucțiune de 30 de biți)
        SA2 Y Setează registrul A2 cu adresa primului operand (instrucțiune de 30 de biți)
        IX6 X1 + X2 Adaugă datele în X1 și X2 și plasează rezultatul în X6 (instrucțiune pe 15 biți)
        SA6 Z Setează registrul A6 cu adresa locației de memorie unde se salvează rezultatul

Procesorul central al CDC 6400 avea o unitate aritmetică unificată capabilă să efectueze o operație pe rând. În funcție de tipul de instrucțiuni, acest lucru ar putea necesita de la cinci cicluri de ceas (suma întreagă la 18 biți) până la 68 de cicluri de ceas (sume ale unui șir de 60 de biți). CDC 6500 era formal identic cu 6400, dar avea două procesoare decât CDC 6400 și avea astfel aproape dublul puterii de calcul a 6400.

CDC 6600 ca și 6400 avea un singur procesor central. Cu toate acestea, acest lucru a fost mult mai puternic decât cel folosit de 6400. Procesorul era format din 10 unități de execuție independente dezvoltate pentru a efectua operațiuni specifice. Unitățile au fost împărțite într-o gestionare a saltului, o logică booleană, un schimbător, un sumator întreg, un sumator în virgulă mobilă, un divizor în virgulă mobilă, doi multiplicatori în virgulă mobilă și doi adăugători incrementali pe 18 biți. Cea mai rapidă a fost unitatea de sumă incrementală care a durat 3 cicluri de ceas, în timp ce cea mai lentă a fost unitatea de divizare a numărului în virgulă mobilă care a durat 29 de cicluri de ceas.

Procesorul 6600 ar putea începe să execute o instrucțiune pentru fiecare ciclu de ceas dacă resursele (date și unități funcționale) ar fi disponibile. Gestionarea resurselor disponibile a fost realizată prin tablou de bord . În plus, procesorul avea un tampon de 8 etape capabil să conțină până la 32 de instrucțiuni și, prin urmare, capabil să cuprindă cele mai mici cicluri în interiorul acestuia, eliminând accesul la memoria principală.

Atât 6400 cât și 6600 au fost tactate la 10 MHz (100 ns). Având în vedere caracterul serial al procesorului 6400, performanța acestuia depindea în mod semnificativ de ordinea instrucțiunilor de executat, dar era încă în jur de 1 MIPS . Suma în virgulă mobilă a durat 11 cicluri, în timp ce multiplicarea a folosit 57 de cicluri. Numărul de operații în virgulă mobilă depindea în mare măsură de operațiunile utilizate, dar erau într-un program generic de aproximativ 200.000 pe secundă. 6600 a fost mult mai rapid. Cu un compilator bun și o planificare adecvată a instrucțiunilor, sistemul ar putea dezvolta până la 10 milioane de operații pe secundă. Suma în virgulă mobilă a durat 4 cicluri în timp ce multiplicarea în virgulă mobilă a durat 10 cicluri (sistemul avea două unități de multiplicare pentru a procesa două instrucțiuni în paralel) 6600 ar putea dezvolta până la 2-3 MegaFLOPS .

6700 a combinat cele mai bune sisteme anterioare. Deoarece 6500 avea două procesoare centrale, unul era procesorul 6400/6500 cu management aritmetic unificat, iar al doilea procesor era cel al 6600. Combinația a făcut din CDC 6700 cel mai puternic sistem din linia CDC 6000.

Memoria centrală

Nucleu de memorie din seria 6000

În toate computerele din seria 6000 procesorul central comunică simultan cu mai multe programe active în memorie, sistemul ar putea gestiona până la șapte procese independente. Instrucțiunile programului au fost citite din registrele procesorului la intervale regulate și procesate în ordine strictă. Rezultatele au fost salvate în registre pentru a fi copiate în memorie.

Informațiile sunt stocate în memorie sub formă de cuvinte. Lungimea fiecărui cuvânt este de 60 de biți. Eficiența ridicată a adresării sistemului a făcut posibilă mutarea unui cuvânt din memorie în procesorul central în 100 nanosecunde

O memorie externă numită unitate de stocare de bază extinsă (ECS) a oferit spațiu suplimentar pentru a parca date și pentru a îmbunătăți performanțele sistemului, care nu trebuiau să acceseze continuu suporturi externe.

Procesorul periferic

Procesorul principal a accesat memoria cu 10 procesoare periferice (PP sau procesoare periferice). Fiecare PP era un sistem independent, cu propria sa memorie. PP-urile au oferit acces la memorie pentru procesor și pentru a gestiona operațiunile de I / O între memoria și unitățile de disc sau benzile magnetice. Când s-au efectuat operații de I / O, procesorul a programat un PP pentru a efectua operațiile în mod asincron. Acest lucru a permis gestionarea eficientă a operațiunilor de I / O și a făcut ca procesorul principal să fie mai simplu și, prin urmare, mai rapid. Fiecare procesor periferic ar putea efectua operații logice și aritmetice simple și ar putea executa programe SCOPE independent de celelalte PP-uri. PP-urile s-au bazat pe designul computerului CDC 160A modificat și adaptat corespunzător pentru I / O.

Canalele de date

Pentru a efectua operațiile de intrare și ieșire, PP-urile au folosit canale de comunicație între memorie și dispozitivele externe. Fiecare PP ar putea accesa fiecare canal de date, dar mai multe canale de date ar putea fi gestionate de un singur PP pentru a accelera operațiunile de transfer.

Un PP ar putea utiliza un canal de date numai dacă nu a fost utilizat de un alt PP. În esență, utilizarea canalelor de date a fost exclusivă.

Ecran și consolă

Pe lângă comunicarea dintre procesoarele secundare și periferice, sistemul trebuia să gestioneze comunicarea dintre sistemul de operare și operator. Operatorul a introdus date printr-un terminal și a verificat funcționarea comenzilor printr-un ecran CRT .

Ecranul era textual și nu grafic. Circuitele analogice au convertit caracterele în impulsuri electrice care comandau ecranul. Un procesor secundar a fost dedicat gestionării ecranului și a fost numit DSD (Dynamic System Display). Acest procesor a fost gestionat de consolă și trebuia să fie rapid pentru a gestiona reproiectarea ecranului în timp real, fără a introduce artefacte vizuale enervante.

Ecranul a arătat starea proceselor care rulează. Consola a inclus o tastatură pentru a permite operatorului să introducă comenzi care modifică execuția programului sau afișează statistici de utilizare a sistemului.

Era disponibil un editor cu ecran complet numit O26, care putea fi activat din consola de comandă. Acest editor de text a fost introdus în 1966 cu mulți ani înainte de editorul de text pe ecran complet pentru alte sisteme. CDC a durat 15 ani pentru a dezvolta o versiune pentru sistemul său de operare Network Operating System, care a devenit sistemul de operare standard pentru mașinile CDC 6000 după o fază inițială folosind alte sisteme de operare.

Configurare minimă

Configurația minimă a seriei CDC 6000 a constat dintr-un sistem format dintr-o memorie de 32.768 de cuvinte de 60 de biți, o combinație de discuri capabile să stocheze 24 de milioane de cuvinte, un cititor de cartele perforate, o imprimantă și o unitate de bandă magnetică cu 7 benzi. Sistemul ar putea fi extins utilizând memorie locală suplimentară, memorie de bază extinsă (ECS), cititoare de carduri perforate suplimentare, scriitoare de carduri perforate, imprimante și unități de bandă. Au fost disponibile plotere grafice și scriitori de microfilme.

Bibliografie

Controlul autorității LCCN ( EN ) sh85021575