CDC 6600

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

CDC 6600 a fost primul supercomputer construit de Control Data Corporation în 1963. În general, este considerat primul supercomputer cu un mare succes comercial. A devenit cel mai rapid supercomputer din epoca sa, fiind de trei ori mai rapid decât IBM 7030 Stretch anterior. A rămas cel mai puternic computer de pe planetă între 1964 și 1969, când a fost depășit de succesorul CDC 7600 . A fost primul sistem care a implementat tabloul de bord .

Organizația CDC 6600 a fost utilizată de CDC pentru dezvoltarea CDC 6400 mai simplu (și mai lent) și ulterior pentru dezvoltarea unui sistem bazat pe doi procesoare CDC 6400 care au devenit CDC 6500 . Aceste mașini sunt compatibile programatic cu 6600, dar datorită designului mai simplu și secvențial, acestea sunt sisteme mai lente. Succesorul CDC 7600 trebuia inițial să fie compatibil cu codul 6600, dar compatibilitatea ulterioară este abandonată pentru o performanță mai bună.

Istorie

Consola de sistem

Primele proiecte CDC s-au bazat pe arhitectura dezvoltată de Seymour Cray la ERA pe care Cray a îmbunătățit-o pentru CDC. După dezvoltarea mașinii experimentale Little Character , mașina CDC 1604 a fost introdusă pe piață, unul dintre primele computere comerciale bazate pe tranzistoare și una dintre cele mai rapide mașini de pe piață. Directorii au planificat dezvoltarea unei noi serii de mașini destinate pieței comerciale și apoi cu instrucțiuni special concepute pentru sarcinile comerciale. Cray nu a fost interesat de acest proiect, a vrut să facă o mașină de 50 de ori mai rapidă decât 1604. Cray, la cererea directorilor, a finalizat un plan detaliat de cinci ani care a inclus construcția celui mai rapid computer de pe planetă.

El și echipa sa de dezvoltare s-au mutat în noul laborator de lângă sediul CDC și au început să experimenteze versiuni de mare viteză ale tranzistoarelor pe bază de germaniu pe care Cray le folosise în 1604. După multe experimente cu germaniu, a ajuns la concluzia că semiconductorul nu ar fi permis. pentru a realiza tranzistoare foarte rapide într-un mod simplu. Într-adevăr, mașinile dorite de conducere dezvoltate în scopuri comerciale, și anume seria CDC 3000 , au depășit limitele tehnologiei lor. Cray a decis să se concentreze asupra noilor tranzistoare pe bază de siliciu dezvoltate de Fairchild Semiconductor, care au fost introduse recent și au furnizat frecvențe de operare foarte mari.

În același timp, CDC devenea o corporație mare. Cray a devenit din ce în ce mai nerăbdător față de interferența constantă a directorilor care, a spus el, au creat complicații inutile și au avut cereri inutile. În 1962, CDC 3600 era în producție, iar relația dintre Cray și conducere devenise foarte tensionată. Cray a vorbit cu CEO-ul William Norris și i-a spus că fie îl va lăsa să înființeze un laborator departe de biroul principal, fie va părăsi compania. Norrir știa importanța lui Cray în proiectarea sistemelor și a fost de acord să construiască un alt laborator.

După o scurtă căutare, Cray a decis să înființeze laboratorul în orașul său natal Chippewa Falls, unde a cumpărat un teren mare. Deși construcția laboratorului a încetinit inițial dezvoltarea proiectelor, odată ce laboratorul a fost pus în funcțiune, proiectele au progresat rapid. În același timp, noile tranzistori atingeau maturitatea necesară pentru aplicații complexe, precum cele concepute de Cray. Cray a lucrat cu Jim Thornton, un designer foarte capabil în arhitectura mașinii.

Peste o sută de CDC 6600 au fost vândute în timpul funcționării mașinii. Multe laboratoare de cercetare nucleară, universități și multinaționale au cumpărat mașina. După realizarea 6600 Cray a început să dezvolte succesorul 7600 , scopul noului model a fost de a dezvolta o putere de calcul de 10 ori mai mare decât cea a 6600. Produsele CDC ulterioare, CDC Cyber 70 și 170 erau foarte asemănătoare cu CDC 6600.

Descriere

O mașină tipică folosea un singur CPU pentru a gestiona întregul sistem. Un program tipic a încărcat inițial date în memorie (adesea folosind biblioteci optimizate), a prelucrat datele și apoi le-a salvat în memorie: toate acestea implicau utilizarea unor procesoare complexe, extinse și, prin urmare, supuse unor penalizări severe de performanță din cauza latențelor comunicării. De fapt, proiectanții trebuie să se asigure că semnalele trec prin unitățile funcționale înainte de următoarea procesare și, prin urmare, frecvența maximă este limitată.

Cray a urmat o altă abordare. În acel moment, un procesor era mult mai lent decât memoria , de exemplu, dacă înmulțirea între două numere necesita 15 cicluri de ceas pentru a se executa, accesarea memoriei necesită doar unul sau două cicluri și, prin urmare, era considerată neglijabilă. În 6600, timpul de acces și timpul de procesare erau similare.

În loc să delege toate funcțiile către CPU în 6600, a gestionat doar funcțiile aritmetice și logice. Acest lucru a făcut CPU foarte mic și, prin urmare, ar putea funcționa la frecvențe foarte mari. Noul design combinat cu tranzistoarele rapide de 100 ns (10 MHz) au făcut posibilă construirea unui procesor de zece ori mai rapid decât cel produs de concurență. În plus, procesorul era, de asemenea, foarte eficient, de exemplu, putea efectua multiplicări în doar 10 cicluri de ceas .

Evident, fiind simplu, procesorul nu putea efectua toate operațiunile necesare funcționării normale a unui computer. Instrucțiunile pentru încărcarea și salvarea datelor în memorii și operațiile I / O au fost eliminate din procesor. Cray încredințează aceste sarcini unor procesoare externe pe care le-a numit PP sau unități de procesare periferice. Pentru a susține procesorul, zece PP au funcționat în paralel, această arhitectură a îmbunătățit semnificativ performanța sistemului.

Evident, această arhitectură era, de asemenea, mult mai scumpă decât o arhitectură clasică. Pentru a menține costuri reduse și performanțe adecvate, PP-urile au fost făcute să fie simple. PP-urile s-au bazat pe procesoarele CDC 160A , aceste procesoare erau pe 12 biți și erau foarte lente în comparație cu CPU și pentru aceasta Cray a folosit 10 care erau conectate la memorie și CPU prin canale dedicate de mare viteză.

Mașinile funcționau într-un anumit mod. În fiecare moment, un PP a monitorizat procesorul și i-a atribuit o sarcină de îndeplinit. Scrierea programelor a fost dificilă, deoarece a fost necesar să sincronizați corect execuția datelor cu încărcarea lor. CPU-ul a fost mult mai rapid decât memoria, astfel încât programele au trebuit să profite de timpul de oprire al procesării pentru a încărca date. CPU ar trebui să aștepte 10 cicluri de ceas pentru a încărca date din memorie, dar folosind cei 10 PP în paralel, timpul de acces a fost redus la un ciclu de ceas .

Cele 10 PP-uri au fost implementate într-un mod virtual, întrucât în ​​realitate nu exista decât un singur PP în hardware. CPU a accesat 10 seturi de registre care simulează starea celor 10 PP-uri. Procesoarele PP au fost gestionate într-un mod exclusiv permițând procesorului să acceseze registrul unic de competențe. Au fost necesare mai multe rotații ale PP pentru a executa o instrucțiune completă. O rotație completă a registrului a durat 1000 de nanosecunde și o instrucțiune ar putea dura între 1 și 5 rotații de înregistrare, înregistrarea rotațiilor acces simulat la memorie.

Arhitectura de bază a procesorului 6600 ar fi în prezent clasificată ca o arhitectură RISC deoarece procesorul avea un set limitat de instrucțiuni și avea moduri limitate de acces la memorie. La acea vreme (și pentru mulți ani care au urmat) filozofia predominantă a fost crearea de procesoare capabile să efectueze operațiuni extrem de specializate și complexe pentru a acoperi cel mai bine nevoile programatorilor. Aceste procesoare, așa cum s-a indicat deja, erau foarte complexe și, prin urmare, lente, spre deosebire de procesorul 6600, care datorită simplității sale a fost foarte rapid.

Procesorul central (CP)

Procesorul central (CP) și memoria 6400, 6500 și 6600 constau din cuvinte de 60 de biți. motivul pentru o arhitectură de 60 de biți a fost că a permis utilizarea de cuvinte de 2, 3,4,5,10,12 și 15 biți, astfel încât memoria să poată fi umplută cu cuvinte de lungime diferită pentru a umple mai bine memoria (o componentă la acel moment).

Procesorul central avea opt registre de uz general de 60 de biți indicate de la X0 la X7, avea opt registre de 18 biți pentru adresele A0 la A7 și opt registre de 18 biți, de la B0 la B7, utilizate pentru gestionarea indexului. Registre suplimentare au fost folosite pentru tablou de bord și nu au fost vizibile în afara procesorului. Alte registre (RA și FL) au fost utilizate de sistemul de operare . CP nu avea instrucțiuni pentru încărcarea sau salvarea datelor, deoarece acest lucru a fost făcut de către PP. Conform filosofiei RISC, procesorul nu putea citi sau scrie date direct din memorie în procesor, dar trebuia să treacă întotdeauna prin registre. Citirea și scrierea datelor s-au făcut prin registre. Introducerea unei adrese în registrele A1 până la A5 a avut ca rezultat citirea datelor din memorie și înregistrarea în registrele X1 până la X5. Intrarea adreselor în registrele A5, A6 și A7 a produs în schimb scrierea registrelor X5, X6 și X7 în locațiile de memorie indicate. Registrele X0 și A0 nu au fost implicate în operațiile de citire și scriere a datelor. Citirea și scrierea efectivă a datelor în memorie a fost efectuată independent de operația procesorului, deoarece a fost efectuată asincron, iar în condițiile optime a fost efectuată în opt cicluri de ceas. Într-un proiect modern, operațiile de citire și scriere a memoriei sunt efectuate de unități de încărcare / stocare în interiorul procesorului, dar asincrone față de celelalte unități de procesare interne. Operațiunile în virgulă mobilă au fost pilotul sistemului: CDC 6600 a reușit să efectueze înmulțirea în virgulă mobilă de 60 de biți în același timp și cu aceeași viteză ca un salt condițional.

6600 CP a inclus 10 unități funcționale care au funcționat în paralel pentru a efectua mai multe operațiuni în paralel. În prezent, această arhitectură ar fi numită superscalar , dar la acea vreme era o caracteristică unică. Sistemul a executat și decodat instrucțiunile mai repede decât s-ar putea încărca din memorie. Unitățile au fost:

  • unitate de execuție în virgulă mobilă (2)
  • unitate de divizare în virgulă mobilă
  • unitate de sumă în virgulă mobilă
  • unitate de suma
  • sumator (2 unități, îmbunătățește performanța memoriei)
  • unitate de schimbare
  • Unitate logică booleană
  • unitate de salt

Instrucțiunile înainte de a fi executate au fost introduse într-un buffer în 8 etape alimentat de registrele procesorului. Instrucțiunile lungi de 15 biți au fost grupate în blocuri de patru, sistemul a preluat o instrucțiune fără constrângeri de execuție din cele 32 de instrucțiuni stocate și a trimis-o către unitatea de execuție corespunzătoare. Conducta a fost golită în cazul unui salt necondiționat. În cazul unui salt condițional, acesta ar putea fi mai rapid. Sistemul a folosit un ceas de 10 MHz și a utilizat un semnal cu patru faze pentru a sincroniza unitățile care, prin prezența a 4 instrucțiuni pentru fiecare acces la memorie, au permis sistemului să funcționeze ocazional ca un sistem de 40 MHz. Înmulțirea în virgulă mobilă a necesitat 10 cicluri de ceas în timp ce divizarea în virgulă mobilă a durat 29 de cicluri. Luând în considerare accesul la memorie, sistemul ar putea dezvolta aproximativ 3 MegaFLOPS . Folosind cei mai buni compilatori fortran ai timpului, a fost posibil să se obțină programe care au dezvoltat o putere de calcul de aproximativ 0,5 MegaFLOPS.

Organizarea memoriei

Programele la nivel de utilizator s-au limitat la posibilitatea de a utiliza doar o parte din memoria sistemului. Această porțiune de memorie a fost gestionată de registrul RA și registrul FL ' . Când un program a încercat să acceseze memoria, a pus adresa în registrul AX și procesorul a verificat dacă adresa era între 0 și FL-1, dacă testul a fost pozitiv, procesorul a accesat memoria la locația RA + AX. Acest proces este cunoscut ca traducere de adresă logică și permite programelor să vadă memoria ca un bloc adiacent (cu lungimea FL) fără a cunoaște adresa fizică reală. Cu această tehnică, sistemul de operare ar putea muta programele în memoria fizică fără a fi nevoie să le modifice, ci doar să actualizeze registrul RA. Registrele au făcut posibilă evitarea acceselor ilegale la memorie, dacă un program a accesat o locație neautorizată, procesorul a împiedicat accesul și sistemul de operare a terminat programul. Când programul a fost terminat, sistemul de operare a făcut o copie a memoriei în fișier pentru a facilita depanarea pentru programator. Cu toate acestea, spre deosebire de memoria virtuală, întregul program trebuia încărcat în memorie.

Seria CDC 6000 ar putea fi, de asemenea, configurată cu un sistem de stocare a nucleului extins (ECS). ECS a fost produs în mai multe variante pentru a oferi mai multe configurații de memorie. A fost ieftin, dar nu a fost foarte rapid. Primul motiv pentru încetinirea ECS a fost că acesta a fost conectat la sistem prin intermediul a două canale, spre deosebire de memoria principală care folosea patru canale și a efectuat transferuri cu cuvinte foarte mari. CPU 6000 ar putea transfera direct blocuri mari de memorie între memoria sa principală și memoria ECS. Autobuzul de conexiune mare a fost folosit pentru transferuri și astfel procesul a fost relativ rapid. Gestionarea memoriei bloc a fost menținută și în memoria ECL prin utilizarea registrelor RA / FL. Memoria ECL a fost utilizată pentru multe sarcini, cum ar fi păstrarea unor seturi mari de date, schimbarea datelor neutilizate și comunicarea cu alte sisteme de calcul.

Procesoare periferice (PP)

Pentru a efectua câmpurile I / O ale sistemului și pentru a încărca datele în CPU, Cray a proiectat zece procesoare periferice care se bazau pe procesoarele CDC 160A, primul sistem proiectat și vândut de Cray pentru CDC. Aceste procesoare numite Procesoare Periferice (PP) erau inițial computere complete, dar Cray le-a modificat și le-a adaptat pentru a îndeplini funcțiile I / O ale 6600 și pentru a rula sistemul de operare. Un procesor PP a fost implicat în gestionarea mașinii și, de asemenea, s-a ocupat de procesarea procesorului principal, în timp ce ceilalți au efectuat operațiunile I / O. Când un program a trebuit să încarce sau să salveze date, a activat unul dintre PP-uri și a făcut ca procesorul periferic să îndeplinească sarcina. Când PP a terminat lucrarea, a avertizat procesorul principal printr-o întrerupere.

Fiecare PP a inclus o memorie de 4096 cuvinte pe 12 biți. Memoria a fost utilizată pentru a stoca date în tranzit, în timp ce execuția efectivă a programului a fost partajată de cei zece procesoare. În fiecare ciclu de ceas, un PP a făcut acces la memorie și apoi a trecut controlul către următorul PP. Deoarece un acces la memorie necesita 10 cicluri de ceas atunci când PP a primit din nou accesul la memorie, datele erau disponibile pentru PP. Acest mod a redus costul sistemului și nu a penalizat sistemul.

Set de caractere

Unitatea centrală de procesare a folosit cuvinte pe 60 de biți, în timp ce procesoarele periferice au folosit cuvinte pe 12 biți. CDC a folosit termenul de octeți pentru a se referi la cuvinte de 12 biți, caracterele erau de 6 biți, în timp ce instrucțiunile erau de 15 biți sau 30 de biți cu un spațiu de adrese de 18 biți, care putea gestiona blocuri de 128.000 de cuvinte. Dimensiunea registrelor a limitat dimensiunea maximă a memoriei adresabile pe program. Mașinile ulterioare CDC 6000 au fost echipate cu 256.000 de cuvinte sau mai mult, dar dimensiunea blocului de memorie a rămas neschimbată pentru compatibilitatea cu programele anterioare. Instrucțiunile de salt au fost urmate de un NOP datorită conductei care execută întotdeauna instrucțiunea după salt indiferent de rezultatul săriturii.

S-au folosit caractere pe 6 biți pentru a stoca 10 caractere într-un singur cuvânt. Acestea au făcut posibilă gestionarea unui set de caractere limitat la doar 64 de simboluri, un număr suficient pentru a conține în continuare litere mici, litere mari și semne de punctuație. Setul a permis programarea în Fortran sau tipărirea rapoartelor financiare. Au existat două seturi de caractere, unul cu 64 de simboluri și unul cu doar 63 de simboluri. Setul cu 64 de simboluri avea dezavantajul că două „:” consecutive erau interpretate ca sfârșitul liniei dacă erau plasate la sfârșitul unui cuvânt de 10 caractere. Un set de caractere ulterior numit 6/12 a fost folosit de sistemele de operare KRONOS și NOS. Acestea au permis utilizarea setului ASCII complet, deși incompatibil cu vechiul set de caractere.

Deoarece nu s-au folosit biți pentru a specifica adresele de acces, dar deplasările de acces au fost specificate în instrucțiuni, a fost posibil să se creeze programe foarte compacte, ocuparea memoriei, o resursă foarte costisitoare.

Interesant este faptul că cuvintele mari care conțin până la 10 caractere au făcut posibilă gestionarea blocurilor de cuvinte foarte repede. Procesorul a prelucrat datele simultan foarte repede. Procesorul a durat mai mult timp pentru a procesa doar unele date din cuvânt decât pentru a procesa toate datele în același timp. Instrucțiunile procesorului multimedia utilizează în prezent o tehnică similară.

Proiect la nivel hardware

Mașina a fost construită într-o serie de dulapuri cu o pompă de căldură de 18 inci. Răcirea a fost efectuată de freonul care circula în mașină și în unitatea de răcire a îndepărtat căldura de la procesoare. Fiecare secțiune era formată din patru șasiuri cu grosimea de 8 inci. Fiecare șasiu a fost numerotat de la 1 la 16 și conținea cele 10 PP, memorii și canale I / O de cel puțin 12. Memoria principală a fost împărțită în diferitele șasiu.

Logica mașinii a fost încorporată în module de 2,5 inci grosime de aproximativ un inci. Fiecare modul a fost conectat (aproximativ 40 de pini de legătură pe două rânduri) și 6 pini de legătură pe partea opusă, care au fost folosiți pentru testarea modulului. Modulele au fost închise de două foi de aluminiu care au servit la îndepărtarea excesului de căldură. Această structură a modulului a asigurat o integrare ridicată a circuitului, dar a fost dificil de reparat datorită foliei de aluminiu care cuprinde modulele.

Sisteme de operare și programare

Singurul punct în care lipsea sistemul CDC 6600 era sistemul de operare.

Aparatul utilizat inițial un sistem de operare foarte simplu , bazat pe procesele care urmează să fie executate și numit COS, C hippewa O perating S ystem, care a fost dezvoltat foarte repede , deoarece derivat din sistemul de operare utilizat de prima CDC 3000 . COS a fost dezvoltat pentru a efectua funcții de testare în timpul dezvoltării mașinii. Pentru versiunea finală a mașinii, SIPROS, SI multaneous PR ocessing O perating S ystem, un sistem de operare foarte inovatoare , care divizia Stiinte System din Los Angeles a fost în curs de dezvoltare, a fost în curs de dezvoltare. Cumpărătorii au fost impresionați de caracteristicile SIPROS și mulți au rezervat SIPROS pentru mașinile lor.

SIPROS s-a transformat într-un imens fiasco. Dezvoltatorii au întârziat întârzierea datei de lansare și, în curând, costul penalităților pe care CDC a trebuit să le plătească cumpărătorilor a depășit câștigurile sistemului de operare. După mai multe luni cu mașina pregătită pentru expediere, dar fără un sistem de operare, proiectul a fost anulat. Din fericire, programatorii COS au continuat dezvoltarea sistemului lor de operare deoarece credeau că dezvoltatorii din Los Angeles nu ar putea dezvolta un sistem de operare atât de inovator.

Sistemul de operare s-a împărțit în două versiuni. Prima versiune a fost realizată de laboratoarele din Sunnyvale (California) și a fost numită SCOPE ( S upervisory C ontrol O of P rogram E xecution), mulți cumpărători au acceptat calculatoare cu acest sistem de operare. SCOPE 1 a fost în esență o versiune a COS cu puține modificări. SCOPE versiunea 2 a inclus noi module și suport pentru sistemul de fișiere. SCOPE versiunea 3 a inclus gestionarea fișierelor permanente, gestionarea bachelor de fișiere El / 200 și suportul INTERCOM, un sistem de partajare a timpului. SCOPE a demonstrat întotdeauna fiabilitate remarcabilă și ușurință în întreținere.

A doua versiune a COS a fost realizată într-un mod semi-clandestin în Arden Hills (Minnesota) și a fost numită MACE ( M ansfield A nd C ahlander E xecutive). Acest sistem de operare a fost scris în mare parte de un singur programator care a folosit computerul în timpul orelor libere ale sistemului. Funcțiile au fost similare cu cele ale SCOPE 1 sau COS, dar sistemul de operare a fost foarte modular și a susținut mai întâi gestionarea discurilor și a dispozitivelor noi. Deși MACE nu era un produs CDC oficial, mulți cumpărători aveau o copie a sistemului de operare de pe CDC.

MACE a fost ulterior folosit ca bază pentru KRONOS (sensul acronimului incert). Principala motivație pentru dezvoltarea acestui nou sistem de operare a fost dezvoltarea TELEX, o componentă care a permis distribuirea mașinii între mai multe programe. În același timp, a fost eliminată componenta BATCHIO, care se ocupa cu gestionarea loturilor de procese. KRONOS a folosit sistemul de fișiere COS / SCOPER 1 cu adăugarea unor inovații.

Încercarea de a SCOPE stamentul și KRONOS produse NOS, N ReŃeaua O peration S ystem. NOS urma să fie sistemul de operare pentru mașinile CDC, care l-au promovat puternic. Mulți cumpărători care folosesc SCOPE erau prea legați de SCOPE pentru a-l abandona exclusiv pentru o cerere CDC. CDC a creat apoi NOS / BE (Batch Environment) astfel încât să poată declara că toate mașinile folosesc NOS. În realitate, aceasta a fost o versiune a KRONOS cu ușoare modificări pentru a vă permite să gestionați caracteristicile SCOPE care nu au fost gestionate inițial.

În timpul dezvoltării, au fost produse alte sisteme de operare care nu au fost făcute publice cumpărătorilor. Aceste sisteme de operare includeau instrumente SMM pentru controlul hardware și KALEIDOSCOPE pentru testarea software-ului.

Bibliografie

  • (EN) Grishman, Ralph (1974). Programarea limbajului de asamblare pentru seria de date de control 6000 și seria Cyber ​​70 . New York, NY: Algorithmics Press. [1]
  • ( RO ) CONTROL DATA 6400/6500/6600 COMPUTER SYSTEMS Manual de referință , pe ed-thelen.org . Adus la 2 ianuarie 2014 (arhivat din original la 2 ianuarie 2014) .
  • ( EN ) Thornton, J. (1963). Considerații în proiectarea computerelor - Conducerea la datele de control 6600 [2]
  • ( EN ) Thornton, J. (1970). Proiectarea unui computer - Control Data 6600 . Glenview, IL: Scott, Foresman and Co. [3]

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN ( EN ) sh85021579
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT