CDC 6600
A CDC 6600 egy nagyszámítógép, a világ első szuperszámítógépe, amelyet a Control Data Corporation gyártott 1964-től 1977-ig. 1965-ben a svájci Genf melletti CERN laboratóriumba szállítottak egy CDC 6600-ast, ahol a CERN kísérleteiben termelt évi 2,3 millió buborékkamra-felvételt elemezték rajta. 1966-ban egy másik CDC 6600-ast szállítottak a Lawrence Sugárzási Laboratóriumba Berkeleybe, amely ekkor a Kaliforniai Egyetem része volt, ahol az Alvarez buborékkamrában végbemenő nukleáris események fotóit elemezték vele. Úgy tartják, hogy a CDC 6600 volt az első sikeres szuperszámítógép, amelynek teljesítménye közel háromszorosa volt elődjének, az IBM 7030 Stretch modellnek. Körülbelül 1 megaFLOPS teljesítményével a CDC 6600 volt a világ leggyorsabb számítógépe 1964-től 1969-ig, mikor ezt a helyet át kellett adnia utódjának, a CDC 7600-nak.

A CDC 6600 volt a Control Data Corporation 6000-es sorozatú számítógéprendszereinek zászlóshajója, ez a sorozat négy alapmodellt foglalt magába, a CDC 6400, a CDC 6500, a CDC 6600 és a CDC 6700 modelleket. A 6000-es sorozat modelljei csak a beléjük épített CPU-kialakításokban különböztek, ami kétfajta lehetett: a 6400-as CPU és a 6600-as CPU. A 6400-as CPU egyesített aritmetikai egységgel rendelkezett, nem pedig különálló végrehajtó egységekkel, avagy „funkcionális egységekkel” – ezáltal az utasítások végrehajtásában nem lehet átfedés. Például, ha a 6400 CPU-nál valamely programban egy szorzó utasítás után egy összeadás utasítás következik, az összeadás nem kezdődhet el, amíg a szorzás be nem fejeződik, így az utasítások végrehajtási idejének összege adja ki a két utasítás teljes végrehajtási idejét. A 6600 CPU-nak több funkcionális egysége van, amelyek egyidejűleg képesek működni (ez a párhuzamosság egy formája), ami valamelyest lehetővé teszi a CPU-ban az utasítások átlapolását. Például, a 6600 CPU elkezdheti egy összeadás utasítás végrehajtását közvetlenül egy szorzás utasítás megkezdését követő CPU-órajelciklusban (feltételezve persze, hogy a szorzás utasítás eredménye nem operandusa az összeadás utasításnak), tehát a két utasítás összesített végrehajtási ideje egyszerűen a szorzás utasítás (hosszabb) végrehajtási idejével lesz egyenlő. A 6600-as CPU-nak emellett van egy utasítás-verme is, ami egy utasítás-gyorsítótárhoz hasonló szerepet tölt be; ez növeli a CPU adatátviteli sebességét, mivel csökkenti a CPU tétlen várakozási idejét, amikor a processzor a lassabb memória válaszára vár az utasításbehívási kérelmek kiadásakor. A két processzortípus egymással utasítás-kompatibilis, tehát a programok változtatás nélkül egyformán futnak mindkét processzoron, csak a 6600-as CPU-n gyorsabban. Valóban, a 6000-es sorozat minden modellje teljesen kompatibilis volt egymással. A CDC 6400-ban egy 6400-as CPU, a CDC 6500-ban két 6400-as CPU, a CDC 6600-ban egy 6600-as CPU, és a CDC 6700-ban két CPU – egy 6600-as és egy 6400-as CPU van beépítve.

A CDC 7600 a kezdeti elképzelések szerint szintén teljesen kompatibilis lett volna a meglévő 6000-es sorozatú gépekkel – ez lett volna a soron következő CDC 6800 jelű modell –, ám a tervezés során a tervezők úgy találták, hogy a teljes kompatibilitás fenntartása (a meglévő 6000-es sorozatú gépekkel) korlátozta volna az elérhető teljesítménynövekedést, és úgy döntöttek, hogy a teljesítmény érdekében feláldozzák a kompatibilitást. Míg a CDC 7600-as CPU-ja alapvetően utasítás-kompatibilis a 6400-as és 6600-as processzorokkal, ami lehetővé teszi a kód könnyű hordozhatóságát a magas szintű nyelvek forráskódja szintjén, a CDC 7600-as hardvere, különösen a perifériaprocesszor-egységek (Peripheral Processor Units, PPU) felépítése nagyon különbözött az elődjétől, és emiatt pl. a CDC 7600-nak eltérő operációs rendszerre volt szüksége. Ez végső soron egy szerencsés megoldásnak bizonyult, mert lehetővé tette a tervezőknek a 6000-es sorozat terveinek továbbfejlesztését, például ennek a kialakítás teljes függőségét a perifériaprocesszoroktól (PP), különösen a 0-s számú PP0 egységtől, amely a teljes számítógéprendszer működését vezérelte, magát a CPU-t is beleértve. A 6600-as CPU-val ellentétben a CDC 7600-as processzora önmaga vezérelte saját működését. Ezt az elvet visszaportolták a 6000-es sorozat modelljeibe is.

Egy CDC 6600-as a kaliforniai Mountain View Computer History Museum (Számítógéptörténeti Múzeum) gyűjteményében látható.

Története és hatásai

A CDC első termékei az Engineering Research Associates (ERA) cég által tervezett gépek továbbfejlesztései voltak, és ezzel a feladattal éppen Seymour Crayt bízták meg, amint a CDC-hez került. Egy Little Character néven ismert kísérleti gép megépítése után elkészült a CDC 1604 jelű modell, amely az egyik első kereskedelmi tranzisztoros számítógép volt és az akkoriban kapható leggyorsabb gépek egyike. A cégvezetőség ennek nagyon örvendett, és rögtön egy újabb, sokkal inkább üzletorientált gépsorozat terveit kezdte felvázolni; ezek például karakterkezelő és adattárolási (adatrekord-kezelő) utasításokat is tartalmaztak volna. Cray-t nem érdekelték ezek a projektek, és nekifogott egy új, az 1604-esnél ötvenszer gyorsabb gép tervezésének. Mikor megkérték, hogy vázolja fel az elkövetkező egy és öt évre vonatkozó terveit, a válaszában „a világ legnagyobb számítógépének megépítése” szerepelt, ahol a „legnagyobb” helyébe a „leggyorsabb” értendő, és egyéves terve pedig nem volt más, mint „az út egyötöde”.

Fejlesztőcsapatával az eredeti CDC központ közelében létesült új irodákban az 1604-esben alkalmazott „olcsó” tranzisztorok jobb minőségű változataival kezdtek kísérletezni. A kísérletek során kiderült, hogy germánium-alapú tranzisztorokkal egyszerűen lehetetlen meghaladni az 1604-esben elért sebességet. A vezetőség által igényelt „üzleti gép”, amely ekkor a CDC 3000 sorozatot alkotta, elérte a lehetőségek határát. Cray ekkor a még újdonságnak számító, Fairchild Semiconductor gyártmányú szilíciumalapú tranzisztorok felhasználása mellett döntött – ezek éppen akkor kerültek piacra és drámaian megnövelt kapcsolási teljesítményt kínáltak.

Ezalatt a CDC egy induló cégből nagyvállalattá nőtte ki magát, és Cray-t egyre inkább hátráltatni kezdték a vezetőség szerinte nevetséges követelései. A feszültség egyre nagyobb lett 1962-ben, mikor az új CDC 3600 modell a gyártáshoz közeli állapotba jutott, és ráadásul mindenben pontosan megfelelt a vezetőség igényeinek és az elvárt határidőknek. Cray végül közölte a CDC igazgatójával, William Norrissal, hogy valaminek változnia kell, mert különben elmegy a cégtől. Norris érezte, hogy Cray túl értékes ahhoz, hogy elveszítsék, így engedélyt adott egy új labor felállítására, tetszőleges helyen, ahol Cray éppen jónak látja.

Rövid keresés után Cray visszatért szülővárosába, a wyomingi Chippewa Falls-ba, ahol egy telket vásárolt és elkezdte az új labor felállítását. Bár ez a folyamat egy meglehetősen hosszú késlekedést okozott az új gép tervezésében, az új laborban, a vezetőség beavatkozásától mentesen, a dolgok felgyorsultak. Ekkorra az új tranzisztorok elég megbízhatóvá váltak, és a velük épített modulok hajlamosak voltak már az első próbálkozásra megfelelően működni. A gép lassan alakot öltött, Jim Thornton közreműködésével, aki a rendszer konstruktőre és a 6600 mögött álló „rejtett géniusz” volt.

A CDC 6600 1964-ben jelent meg, ára 7 millió dollár volt. 100 nanoszekundumos órajelével (ez 10 MHz-es órajelet jelent) ez volt az első kereskedelemben kapható szuperszámítógépnek hirdetett gép, az első freon-hűtésű és az első katódsugárcsöves (CRT) konzollal rendelkező számítógép. A gép ellenőrző mérnökei alkották a Lunar Lander és a Spacewar játékokat, amelyek nagy valószínűséggel az első monitoron játszható számítógépes játékok. Több mint 100 CDC 6600 gépet adtak el a gép életciklusa alatt. Az első gépet az Egyesült Államok Nemzeti Atmoszférakutató Központjában állították föl (U.S. National Center for Atmospheric Research, NCAR) a coloradói Boulderben, 1965-ben. Az állítólagos nulladik példányt az NSA kapta, ahol kódfejtésre használták. Több példányt nukleáris fegyverkutató laboratóriumokban használtak és néhány példányt különböző egyetemeken. A gép 1977-ig volt forgalomban, amikor felváltotta a CDC 7600 és a CDC Cyber sorozat.

Cray azonnal a következő modellre koncentrált, ez alkalommal a 6600-hez képest tízszeres gyorsítást kívánt elérni a következő, CDC 7600 jelű modellben. A későbbi CDC Cyber 70 és 170 számítógépek általános kialakításukban igen hasonlóak a CDC 6600-hoz és majdnem teljesen kompatibilisek azzal.

Leírás
A kor tipikus gépei egyetlen CPU-t használtak az egész rendszer meghajtására. Ezekben egy tipikus program először betölti az adatokat a memóriába (gyakran előre elkészített könyvtári kód használatával), feldolgozza, majd ezután visszaírja. Ez megkövetelte a CPU megfelelő komplexitását, illetve a megfelelően nagy utasításkészletet ezekre a feladatokra. A komplexitás egyben a CPU nagy méretével járt együtt, és a processzort alkotó egyedi modulok közötti adatáramlás vezérlésekor jelentkező jelkésleltetésekkel. Ezek a késleltetések határozzák meg a teljesítmény felső határát, a gép csak legfeljebb olyan órajel-sebességen működhet, amely lehetővé teszi, hogy a jelek a megszabott átviteli idő alatt elérjenek a következő modulba.

Cray egy másik megközelítést választott. Ekkoriban a CPU-k általában alacsonyabb sebességen működtek, mint a hozzájuk kapcsolt operatív memória. Például egy ilyen processzor két szám összeszorzását 15 órajelciklus alatt végzi el, míg a memória-hozzáférések csak egy vagy két ciklust igényelnek. Ebből következik, hogy a fő memória a végrehajtási idő jelentős részében tétlen, nem történik vele semmi. Ezt a tétlen időt használta ki a 6600.

A 6600 CPU-k csak az aritmetikai és logikai műveleteket végeznek, nem pedig az összes műveletet. Ennek eredménye az, hogy a processzor sokkal kisebb és magasabb órajelen működhet. A szilíciumtranzisztorok nagyobb kapcsolási sebességével egyesítve az új CPU kialakítás könnyedén lekörözött minden abban az időben létező más megoldást. Az új kialakítás 10 MHz-en működött (órajelciklusa 100 ns), közel tízszer gyorsabban mint a többi gép a piacon. A magasabb órajelen kívül, az egyszerű processzor az utasításokat kevesebb órajelciklus alatt hajtotta végre, például a szorzást tíz ciklus alatt.

A kor tipikus processzorai összetett utasításkészletű gépek voltak, amelyek utasításkészletében megtalálhatóak az összes olyan „háztartási” feladatokra szolgáló utasítások is, mint a memóriahozzáférés vagy a be-/kimenet. Cray ezeket az műveleteket különálló, egyszerűbb dedikált processzorokra bízta, így a fő CPU utasításkészlete sokkal kisebb lehetett. (Ez volt az első, később RISC-nek nevezett kialakítás – a RISC kifejezést csak az 1980-as évek elején alkották meg.) Ebben a kialakításban a CPU, a perifériaprocesszorok (PP-k) és a be-/kimenet párhuzamosan működik, ami jelentősen megnöveli az ilyen architektúrájú gép teljesítményét. Átlagos esetben egy többprocesszoros gép ára is magasabb. A 6600 kialakításának kulcseleme, hogy a perifériaprocesszorként (PP) ismert processzorok szerkezete a lehető legegyszerűbb legyen. A PP-k az egyszerű 12 bites CDC 160-A processzoron alapulnak, ezek a CPU-nál lassabban működnek, begyűjtik az adatokat és egy dedikált hardveren keresztül nagy sebességgel a memóriába írják azt.

A 10 PP virtuálisan van megvalósítva: valójában csak egyetlen PP processzor-hardver volt megépítve. Ez a processzorhardver hajtja végre a 10 virtuális PP utasításait és kezeli az ezek állapotát reprezentáló 10 külön regiszterkészletet (hasonlóan a modern többszálas processzorokhoz). A PP regisztertár szervezése egy revolver forgótárához hasonlít: az éppen aktuális processzort a regiszter-forgótáron a „kivágás” (avagy a „csőtorkolat”) reprezentálja, amely az adott PP regiszterkészletére mutat. A PP végrehajtja a perifériaprogram egy utasításának egy órajelciklusra eső részét, majd a „forgótár” elfordul, és a következő PP regiszterkészlete kerül a résbe, így a következő processzorállapot lesz aktív. Egy PP egy utasításához egy vagy több „fordulatra” van szükség. Egy teljes „körbefordulás” ideje 1000 nanoszekundum (egy PP-re 100 nanoszekundum jut), és egy utasítás végrehajtásához 1-től 5 fordulatig terjedő idő szükséges, vagy több, adatátviteli műveletek esetén. Ezt az elrendezést nevezték „barrel processzor” (kb. forgótáras processzor) vagy „barrel and slot” (kb. forgótár és rés) kialakításnak.

A 6600-as processzor alapját egy olyan, manapság RISC-nek nevezett rendszer alkotja, amelyben a processzor viszonylag egyszerű és korlátozott, ám jól definiált memóriahozzáféréssel rendelkező utasítások végzésére van optimalizálva. Sok más gép tervezési filozófiája a bonyolultabb utasítások bevezetése felé haladt — például: egyetlen művelet kiolvas egy operandust a memóriából és az értékét hozzáadja egy regiszter tartalmához. A 6600-ban az érték betöltése a memóriából és az összeadás két külön utasításban történik. Ez elvileg lassabb a járulékos memória-hozzáférések miatt, de a gyakorlatban egy jól ütemezett kódban, több utasítás párhuzamos végrehajtásával a többletidő kiküszöbölődik. Ez az egyszerűsítés a programírókat is arra kényszerítette, hogy kitüntetett figyelmet szenteljenek a memóriahozzáféréseknek és elkerüljék ezt a kódban, amennyire csak lehetséges.

A központi processzor (Central Processor, CP) 

A 6400-as, 6500-as és 6600-as gépek központi processzora (CP) és főmemóriája 60 bites szóhosszúságú. A központi processzornak nyolc általános célú 60 bites regisztere van, ezeket X0-tól X7-ig jelölik, nyolc 18 bites címregisztere van, (A0–A7, A mint address, cím) és nyolc 18 bites növekményregisztere (relatív címek képzésében játszanak szerepet), ezeket B0-tól B7-ig jelölnek. A B0 a hardveresen rögzített 0 értéket tartalmazza állandóan. A programozók hasonlóan a B1 regisztert is gyakran 1-re állították és érintetlenül hagyták azt a futás során.

A CP-nek nincsenek utasításai a bemenet és kimenet számára, mivel ezeket a perifériaprocesszorok (PP) végzik. Nincsenek külön kijelölt opkódok a memóriából való olvasás és az oda történő tárolás számára; ezek a műveletek egyes A regiszterek értékadásának mellékhatásai. Az A1–A5 regiszterek írása (értékadás) a regiszter által címzett szó betöltését eredményezi az X0–X5 regiszterekbe; az A6–A7 regiszterekbe való írás rendre az X6–X7 regiszterek tartalmának kiírását eredményezi a memóriába. Az A0 regiszter írásának nincs mellékhatása. Külön hardveres betöltő/tároló egység kezeli a tényleges adatmozgatást az utasításfolyamban soron következő művelettől függetlenül, ami lehetővé teszi más műveletek befejezését a memóriahozzáférés ideje alatt, ami a legjobb esetben is 8 órajelciklusig tart.

A 6600-as CP-nek tíz párhuzamos funkcionális egysége van, ezáltal egy időben több utasítás állhat végrehajtás alatt. Manapság ez szuperskalár kialakításként ismert, a 6600-as idejében azonban egyedülálló volt. A modern processzoroktól eltérően a funkcionális egységek nem voltak futószalagos rendszerűek; a funkcionális egység egy utasítás végrehajtásának megkezdésekor foglalttá vált és úgy is maradt a végrehajtás befejezéséig. (A CDC 7600-nál már bevezették a futószalagos működést a funkcionális egységekbe.) A legjobb esetben minden 100 ns-es órajelciklusban kiadható egy utasítás egy funkcionális egységnek. A rendszer a memóriából a lehető legnagyobb sebességgel olvassa ki és dekódolja az utasításokat, általában gyorsabban, mint azok végrehajthatók, és az utasításokat továbbadja a végrehajtó egységeknek, feldolgozásra. Az egységek a következők:
 lebegőpontos szorzó (2 példány)
 lebegőpontos osztó
 lebegőpontos összeadó
 „hosszú” fixpontos összeadó
 növelőegység (2 példány; memóriaolvasást és írást is végez)
 léptetőegység
 bináris logikai egység
 elágazáskezelő

A lebegőpontos műveletek sebessége kiemelkedően nagy ebben az architektúrában: a CDC 6600 és rokonai egyedülállók abban, hogy képesek egy 60 bites lebegőpontos szorzást egy elágazás feldolgozásával összemérhető idő alatt elvégezni.

A 60 bites számokon végzett fixpontos összeadás és kivonást a hosszú összeadó egység végzi, amely a negatív számokat egyes komplemens ábrázolásban kezeli. A fixpontos szorzást és osztást a lebegőpontos egységek végzik, az számok oda-vissza konvertálásával, fixpontos formátumról lebegőpontosra és vissza.

Az előzőleg végrehajtott utasítások egy nyolcszavas gyorsítótárba kerülnek, amelyet ebben az architektúrában veremnek neveznek (de nem azonos az általánosan veremként ismert adatszerkezettel). A gyorsítótáron (vermen) belüli ugrásokat gyorsabban hajtja végre a rendszer, mert ekkor nincs memóriaolvasás. A gyorsítótárat a feltétel nélküli ugróutasítások törlik, ezért pl. a ciklusok végén szereplő feltétel nélküli ugrások helyett konvencionálisan olyan feltételes ugróutasítást használtak, amelynél a feltétel mindig teljesül.

A rendszer 10 MHz-es órajelet használ, azonban az órajel négyfázisú, így a rendszer időnként 40 MHz-es tényleges sebességen működik. Egy lebegőpontos szorzás végrehajtása tíz ciklust vesz igénybe, az osztás 29-et, az összteljesítmény, figyelembe véve a memóriakésleltetéseket és egyéb tényezőket is, kb. 3 MFLOPS. A gép késői pályafutása során a rendelkezésre álló legjobb fordítóprogramokkal fordított FORTRAN programoktól közel 0,5 MFLOPS átlagos teljesítmény volt elvárható.

Memóriaszervezés

A felhasználói programok csak a főmemória összefüggő részeit használhatták. A végrehajtás alatt álló program által elérhető (egybefüggő) memóriaterületet az RA (Relative Address, relatív cím) és az FL (Field Length, mezőhossz) regiszterek jelölik, amelyek a felhasználói program számára nem elérhetőek. Mikor a felhasználói program megkísérli a központi memória a címén elhelyezkedő szó írását vagy olvasását, a processzor először ellenőrzi, hogy az a a 0 és az FL-1 értékek között van-e. Ha igen, akkor a processzor hozzáfér a memória RA+a címen található memóriarekeszhez. Ezt a folyamatot alaphoz kötött relokációnak hívják; a felhasználói programok az operatív tárat szavak folyamatos sorozataként látja, amelynek hossza FL, és a memória a 0 címen kezdődik; valójában a program akárhol lehet a fizikai memóriában. Ezzel a technikával az operációs rendszer bárhol elhelyezheti (relokálhatja) a programot a főmemóriában, mindaddig, amíg az RA a kezdőpozíciót mutatja a memóriában. A felhasználói program, amely a megengedett területen kívüli részeket próbál elérni (tehát egy olyan címet próbál elérni, amelynek az értéke nagyobb, mint az FL-1), egy megszakítást generál, és az operációs rendszer leállítja. Ekkor az operációs rendszer egy core dump-ot készíthet (a memória tartalmát és a regisztereket tartalmazó fájlt; a core a ferritmagos memória elnevezéséből származik), ami a programozót segítheti a hiba keresésében. A gép memóriaszervezése jelentősen eltér a virtuális memóriát használó rendszerekétől: ebben a rendszerben a címezhető területnek teljes egészében a főmemóriában kell lennie, a területnek összefüggőnek (folyamatosnak) kell lennie és a mérete nem lehet nagyobb, mint a valódi fizikai memóriakapacitás.

Az első hét CDC 6000 sorozatú gép kivételével a sorozat gépei konfigurálhatók az ún. ECS (Extended Core Storage, kierjesztett ferritmagos tároló) rendszer használatára. Az ECS egy másik (a központi memóriától eltérő) technológiával készült ferritmagos memória, ezáltal egyszerre gazdaságosabb, nagyobb és lassabb működésű. Ennek oka, hogy ezt csak két vezetékkel fűzték, a központi memória 5 vezetékével ellentétben. Mivel nagyon széles adatátvitelt biztosított, a soros átviteli képessége ugyanakkora, mint a kisebb méretű központi memóriának. A 6000-es CPU képes közvetlenül végrehajtani a blokkos memóriaátviteleket a felhasználók vagy az operációs rendszer programjai és az ECS egység között. Széles adatutakat használ, ezért az átvitel igen gyors. A memóriahatárok a központi memóriához hasonló módon vannak kezelve, egy az operációs rendszer által kezelt RA/FL mechanizmus által. Az ECS számos célra volt használható, például a központi memória számára túl nagy felhasználói adattömbök vagy a gyakran használ fájlok tárolására, memóriacsere céljaira (swapping), vagy akár kommunikációs területként a többgépes rendszerekben.

A perifériaprocesszorok (PP-k) 

Az olyan „háztartási” feladatok ellátására, amelyek elvégzése más rendszerekben a CPU feladata, Cray 10 újabb processzort helyezett a rendszerbe, amelyek részben korábbi számítógépén, a CDC 160-A-n alapultak. Ezek a perifériaprocesszornak (PP) nevezett egységek önmagukban is teljes jogú számítógépek, csak a be-/kimeneti feladatokra és az operációs rendszer futtatására voltak beállítva. Majdnem a teljes operációs rendszer a PP-ken fut, így a központi processzor szinte teljes kapacitása a felhasználói programok rendelkezésére áll. Az egyik PP megkapja a gép teljeskörű vezérlésének jogát, és ebbe beleértendő a fő CPU-n futó program vezérlése is, míg a többi PP különféle be/kimeneti feladatokat végez – a korabeli IBM nagyszámítógépek be-/kimeneti csatornáihoz hasonlóan. Mikor a program be/kimeneti műveletet végez, akkor az egyik PP-be betöltődik egy kisebb program, amely elvégzi a feladatot. A PP egy megszakítás segítségével értesíti a programot a feladat befejezéséről.

Mindegyik PP saját 4096 12 bites szó méretű külön memóriával rendelkezik. Ez a memória szolgál a programtárolás és a be/kimeneti pufferelés céljaira is. ám a 10 PP csak egyetlen, közösen használt végrehajtóegységen osztozik, egy ún. „forgódob és rés” (barrel and slot) konfigurációban. (Erre nincs jó fordítás, kb. „forgótáras” processzor lehet, de a többkontextusú processzor kifejezés is jól leírja a fogalmat.) Ez azt jelenti, hogy a végrehajtóegység (a „rés”) végrehajt egy egy utasításciklust az első PP-ből, majd egy utasításciklust a másodikból, és így tovább, körforgásos (ciklikus időkiosztásos) rendszerben. Ez egyrészt a költségcsökkentés miatt alakult így, másrészt, mert a CP memóriahozzáférése 10 PP utasításciklust igényelt: mikor a PP a főprocesszor (CP) memóriájához fordul, az adat a következő alkalommal rendelkezésre áll, amint a PP elfoglalja a „rés” szerepét, tehát amint legközelebb hozzá kerül a végrehajtás.

Szóhosszak, karakterek 
A központi processzor 60 bites, a periferiális processzorok 12 bites szavakat használnak. A CDC szintén a „bájt” kifejezést használta a perifériaprocesszorok által használt 12 bites egységekre; a karakterek ebben a rendszerben 6 bitesek, a központi processzor utasításai pedig 15 bitesek, vagy 30 bitesek, amelyek egy előjeles 18 bites címmezőt is tartalmaznak; ez utóbbi 128 K-szó memóriaterület közvetlen címzését teszi lehetővé a központi memóriában (modern kifejezéssel, 8 bites bájtokkal számolva ez 0,94 MiB-ot jelent). A címregiszterek előjeles volta a programok méretét 128 K-szó méretre korlátozza. (A későbbi CDC 6000 kompatibilis gépek 256 K vagy több szó méretű központi memóriát is tartalmazhattak, de a különálló felhasználói programok mérete továbbra is 128 K-szó maradt.) A központi processzor utasításainak szóhatáron kell kezdődniük, mikor az egy ugróutasítás célja vagy egy szubrutinból való visszatérés célutasítása, ezért helyenként üres (nop) utasításokkal kellett feltölteni a memóriaszó utolsó 15, 30 vagy 45 bitjét.

A display code nevű kódkészlet 6 bites karaktereivel 10 karakter tárolható egy szóban. A karakterkészlet 64 különböző jelet tartalmazhat, ami elég az összes nagybetű, számjegy és néhány központozási jel ábrázolására. Ez megfelel a Fortran programok írására vagy üzlet és tudományos jelentések nyomtatásához. A display code-nak két változata volt használatban egy 64 és egy 63 karakteres készlet. A 64 karakteres változatnak az volt a hátránya, hogy az egymást követő két ':' karakter sorvégjelként volt értelmezhető, mikor egy 10 bájtos szó végére esett. A későbbi változatot 6/12 display code-nak hívták, és ez már a teljes ASCII karakterkészletet képes volt ábrázolni, az előző rendszerekkel valamennyire kompatibilis módon.

Mivel az utasításkészletben nincsenek bájtokat címző vagy feldolgozó utasítások, a kódban a karaktereket egyenként eltolva és összerakva kellett egy szóba betárazni. A nagyon nagy szóhossz és a viszonylag kicsi memória azzal járt, hogy a programozók igyekeztek memóriát megtakarítani az adatok szavakba történő bitszintű összecsomagolásával.

Érdekesség, hogy a 10 karakter tárolására alkalmas nagy szóméret miatt gyakran gyorsabb volt a karakterekkel kitöltött szavakat egészben kezelni, mint a karaktereket egyenként kicsomagolva és a feldolgozás után visszacsomagolva kezelni. A CDC COBOL fordító különösen jó volt a decimális mezők feldolgozásában, ezt a technikát alkalmazva. Ezt a fajta gyorsítást mostanában széles körben használják a modern processzorok multimédia-utasításaiban.

Fizikai kialakítás 

A gépet egy felülnézetben pluszjel alakú szekrénybe építették, a négy kar végén az utolsó 48 cm-ben a hűtőrendszer kapott helyet. A hűtést freongáz áramoltatásával végezték a gép belsejében, amit vízhűtés egészített ki. A négy kar mindegyike négy tartóvázat tartalmaz, amelyek könyvszerűen nyithatók. A pluszjel közepén a karokat és hordozóvázakat összekötő kábelhálózat található. A vázakat 1-től 16-ig számozták, ezek a 10 PPU egységet, azok memóriáit és a 12 viszonylag kicsi be-/kimeneti csatornát tartalmazzák. A CPU főmemóriája több vázon van elosztva. Egy 64 K szavas memóriával ellátott rendszerben egy kar kimaradhat.

A gép logikája 2,5 inches (64 mm) oldalú négyzet alakú modulokban volt szerelve, a modulok 1 inch (2,5 cm) vastagok. A modulok mindegyike rendelkezik egy 30 tűs csatlakozóval az egyik élen, míg a másik élen tesztpontokat alakítottak ki. A modulok két hőelvezető alumínium lemez közé kerülnek. Maga a modul két nyomtatott áramköri lapból áll, amelyeket a beléjük szerelt alkatrészek tartanak össze – az alkatrészek lehetnek csak az egyik lapra vagy mindkettőre felszerelt elemek. Ez egy elég nagy alkatrészsűrűséget eredményez, ez nehezíti a javítást, de jó a hőelvezetés szempontjából. Ezt a rendszer hasáb-kivitelezésként ismert (cordwood konstrukció).

Operációs rendszer és programozás 
A 6600 gépek eredetileg egy COS (Chippewa operációs rendszer) nevű, igen egyszerű feladatvezérlő rendszert kaptak, ami a korábbi CDC 3000 operációs rendszerén alapuló „összedobott” rendszer volt, a gépek szállítás előtti tesztelésére. A gépekhez egy sokkal hatékonyabb rendszert terveztek szállítani, a SIPROS nevűt (Simultaneous Processing Operating System, szimultán feldolgozó operációs rendszer), amely a los angelesi System Sciences Division cég fejlesztése.

A SIPROS egy üzleti bukásnak bizonyult, a fejlesztési határidők csúszása és az ezt követő profitkimaradás és kötbérek miatt. Ezt a projektet végül törölték, a COS fejlesztése tovább folytatódott.

A CDC egy másik operációs rendszer fejlesztését is elindította, ez lett a SCOPE (Supervisory Control Of Program Execution) rendszer, amelynek első verziója szintén a COS-on alapult. A következő verziókban jelent meg az eszköz- és fájlrendszer-támogatás, majd a permanens fájlok, az EI/200 távoli batch támogatás, és az INTERCOM időosztás támogatása. A SCOPE-nak mindig jelentős megbízhatósági és karbantarthatóság problémái voltak.

A COS-ból később kifejlesztették a MACE rendszert, amely nem lett hivatalos termék. Ennek utódja lett a Kronos rendszer. A SCOPE és a Kronos operációs rendszerek összeolvasztására tett kísérlet eredményezte a NOS (szoftver), hálózati operációs rendszer terméket. Ezt később a CDC NOS/BE (Batch Environment) névre nevezte át, ami egy elterjedt operációs rendszerré vált. Ehhez később különféle mérnöki fejlesztések és kiegészítők kapcsolódtak.

Kapcsolódó szócikkek 
 A szuperszámítógépek története

Jegyzetek

Fordítás

Források

Hivatkozások
 Grishman, Ralph (1974). asszembler-nyelv Programming for the vezérlőadat 6000 Series és the Cyber 70 Series. New York, NY: Algorithmics Press. 
 CONTROL DATA 6400/6500/6600 COMPUTER SYSTEMS Reference Manual
 Thornton, J. (1963). Considerations in Computer Design - Leading max. the vezérlőadat 6600 
 Thornton, J. (1970). Design of a Computer—The vezérlőadat 6600. Glenview, IL: Scott, Foresman és Co. 
 (1990) Understanding Computers: Speed és Power, a TIME LIFE series

További információk
 Neil R. Lincoln with 18 Control Data Corporation (CDC) engineers on computer architecture and design, Charles Babbage Institute, University of Minnesota. Engineers include Robert Moe, Wayne Specker, Dennis Grinna, Tom Rowan, Maurice Hutson, Curt Alexander, Don Pagelkopf, Maris Bergmanis, Dolan Toth, Chuck Hawley, Larry Krueger, Mike Pavlov, Dave Resnick, Howard Krohn, Bill Bhend, Kent Steiner, Raymon Kort, és Neil R. Lincoln. Discussion topics include CDC 1604, CDC 6600, CDC 7600, CDC 8600, CDC STAR-100 és Seymour Cray.
 Parallel operation in the Control Data 6600, James Thornton
 Presentation of the CDC 6600 and other machines designed by Seymour Cray – by C. Gordon Bell of Microsoft Research (korábban/régebben of DEC)

Kapcsolódó szócikkek 
CDC 3000
Szuperszámítógép
Számítástechnikai múzeum

Szuperszámítógépek
Tranzisztoros számítógépek
Mikroprocesszorok
A CDCegy nagyszámítógép , a világ első szuperszámítógépe , amelyet a Control Data Corporation gyártotttőlig.ben a svájci Genf melletti CERN laboratóriumba szállítottak egy CDCast , ahol a CERN kísérleteiben termelt évi3 millió buborékkamra-felvételt elemezték rajta.ban egy másik CDCast szállítottak a Lawrence Sugárzási Laboratóriumba Berkeleybe , amely ekkor a Kaliforniai Egyetem része volt , ahol az Alvarez buborékkamrában végbemenő nukleáris események fotóit elemezték vele . Úgy tartják , hogy a CDCvolt az első sikeres szuperszámítógép , amelynek teljesítménye közel háromszorosa volt elődjének , az IBMStretch modellnek . KörülbelülmegaFLOPS teljesítményével a CDCvolt a világ leggyorsabb számítógépetőlig , mikor ezt a helyet át kellett adnia utódjának , a CDCnak . A CDCvolt a Control Data Corporationes sorozatú számítógéprendszereinek zászlóshajója , ez a sorozat négy alapmodellt foglalt magába , a CDC a CDC a CDCés a CDCmodelleket . Aes sorozat modelljei csak a beléjük épített CPU-kialakításokban különböztek , ami kétfajta lehetett : aas CPU és aas CPU. Aas CPU egyesített aritmetikai egységgel rendelkezett , nem pedig különálló végrehajtó egységekkel , avagy „ funkcionális egységekkel” – ezáltal az utasítások végrehajtásában nem lehet átfedés . Például , ha aCPU-nál valamely programban egy szorzó utasítás után egy összeadás utasítás következik , az összeadás nem kezdődhet el , amíg a szorzás be nem fejeződik , így az utasítások végrehajtási idejének összege adja ki a két utasítás teljes végrehajtási idejét . ACPU-nak több funkcionális egysége van , amelyek egyidejűleg képesek működni ( ez a párhuzamosság egy formája ) , ami valamelyest lehetővé teszi a CPU-ban az utasítások átlapolását . Például , aCPU elkezdheti egy összeadás utasítás végrehajtását közvetlenül egy szorzás utasítás megkezdését követő CPU-órajelciklusban ( feltételezve persze , hogy a szorzás utasítás eredménye nem operandusa az összeadás utasításnak ) , tehát a két utasítás összesített végrehajtási ideje egyszerűen a szorzás utasítás ( hosszabb ) végrehajtási idejével lesz egyenlő . Aas CPU-nak emellett van egy utasítás-verme is , ami egy utasítás-gyorsítótárhoz hasonló szerepet tölt be ; ez növeli a CPU adatátviteli sebességét , mivel csökkenti a CPU tétlen várakozási idejét , amikor a processzor a lassabb memória válaszára vár az utasításbehívási kérelmek kiadásakor . A két processzortípus egymással utasítás-kompatibilis , tehát a programok változtatás nélkül egyformán futnak mindkét processzoron , csak aas CPU-n gyorsabban . Valóban , aes sorozat minden modellje teljesen kompatibilis volt egymással . A CDCban egyas CPU , a CDCban kétas CPU , a CDCban egyas CPU , és a CDCban két CPU – egyas és egyas CPU van beépítve . A CDCa kezdeti elképzelések szerint szintén teljesen kompatibilis lett volna a meglévőes sorozatú gépekkel – ez lett volna a soron következő CDCjelű modell – , ám a tervezés során a tervezők úgy találták , hogy a teljes kompatibilitás fenntartása ( a meglévőes sorozatú gépekkel ) korlátozta volna az elérhető teljesítménynövekedést , és úgy döntöttek , hogy a teljesítmény érdekében feláldozzák a kompatibilitást . Míg a CDCas CPU-ja alapvetően utasítás-kompatibilis aas ésas processzorokkal , ami lehetővé teszi a kód könnyű hordozhatóságát a magas szintű nyelvek forráskódja szintjén , a CDCas hardvere , különösen a perifériaprocesszor-egységek ( Peripheral Processor Units , PPU ) felépítése nagyon különbözött az elődjétől , és emiatt pl. a CDCnak eltérő operációs rendszerre volt szüksége . Ez végső soron egy szerencsés megoldásnak bizonyult , mert lehetővé tette a tervezőknek aes sorozat terveinek továbbfejlesztését , például ennek a kialakítás teljes függőségét a perifériaprocesszoroktól ( PP ) , különösen as számú PP0 egységtől , amely a teljes számítógéprendszer működését vezérelte , magát a CPU-t is beleértve . Aas CPU-val ellentétben a CDCas processzora önmaga vezérelte saját működését . Ezt az elvet visszaportolták aes sorozat modelljeibe is . Egy CDCas a kaliforniai Mountain View Computer History Museum ( Számítógéptörténeti Múzeum ) gyűjteményében látható . Története és hatásai A CDC első termékei az Engineering Research Associates ( ERA ) cég által tervezett gépek továbbfejlesztései voltak , és ezzel a feladattal éppen Seymour Crayt bízták meg , amint a CDC-hez került . Egy Little Character néven ismert kísérleti gép megépítése után elkészült a CDCjelű modell , amely az egyik első kereskedelmi tranzisztoros számítógép volt és az akkoriban kapható leggyorsabb gépek egyike . A cégvezetőség ennek nagyon örvendett , és rögtön egy újabb , sokkal inkább üzletorientált gépsorozat terveit kezdte felvázolni ; ezek például karakterkezelő és adattárolási ( adatrekord-kezelő ) utasításokat is tartalmaztak volna . Cray-t nem érdekelték ezek a projektek , és nekifogott egy új , azesnél ötvenszer gyorsabb gép tervezésének . Mikor megkérték , hogy vázolja fel az elkövetkező egy és öt évre vonatkozó terveit , a válaszában „ a világ legnagyobb számítógépének megépítése” szerepelt , ahol a „ legnagyobb” helyébe a „ leggyorsabb” értendő , és egyéves terve pedig nem volt más , mint „ az út egyötöde” . Fejlesztőcsapatával az eredeti CDC központ közelében létesült új irodákban azesben alkalmazott „ olcsó” tranzisztorok jobb minőségű változataival kezdtek kísérletezni . A kísérletek során kiderült , hogy germánium-alapú tranzisztorokkal egyszerűen lehetetlen meghaladni azesben elért sebességet . A vezetőség által igényelt „ üzleti gép” , amely ekkor a CDCsorozatot alkotta , elérte a lehetőségek határát . Cray ekkor a még újdonságnak számító , Fairchild Semiconductor gyártmányú szilíciumalapú tranzisztorok felhasználása mellett döntött – ezek éppen akkor kerültek piacra és drámaian megnövelt kapcsolási teljesítményt kínáltak . Ezalatt a CDC egy induló cégből nagyvállalattá nőtte ki magát , és Cray-t egyre inkább hátráltatni kezdték a vezetőség szerinte nevetséges követelései . A feszültség egyre nagyobb lettben , mikor az új CDCmodell a gyártáshoz közeli állapotba jutott , és ráadásul mindenben pontosan megfelelt a vezetőség igényeinek és az elvárt határidőknek . Cray végül közölte a CDC igazgatójával , William Norrissal , hogy valaminek változnia kell , mert különben elmegy a cégtől . Norris érezte , hogy Cray túl értékes ahhoz , hogy elveszítsék , így engedélyt adott egy új labor felállítására , tetszőleges helyen , ahol Cray éppen jónak látja . Rövid keresés után Cray visszatért szülővárosába , a wyomingi Chippewa Falls-ba , ahol egy telket vásárolt és elkezdte az új labor felállítását . Bár ez a folyamat egy meglehetősen hosszú késlekedést okozott az új gép tervezésében , az új laborban , a vezetőség beavatkozásától mentesen , a dolgok felgyorsultak . Ekkorra az új tranzisztorok elég megbízhatóvá váltak , és a velük épített modulok hajlamosak voltak már az első próbálkozásra megfelelően működni . A gép lassan alakot öltött , Jim Thornton közreműködésével , aki a rendszer konstruktőre és amögött álló „ rejtett géniusz” volt . A CDC1964-ben jelent meg , áramillió dollár volt.nanoszekundumos órajelével ( ezMHz-es órajelet jelent ) ez volt az első kereskedelemben kapható szuperszámítógépnek hirdetett gép , az első freon-hűtésű és az első katódsugárcsöves ( CRT ) konzollal rendelkező számítógép . A gép ellenőrző mérnökei alkották a Lunar Lander és a Spacewar játékokat , amelyek nagy valószínűséggel az első monitoron játszható számítógépes játékok . Több mintCDCgépet adtak el a gép életciklusa alatt . Az első gépet az Egyesült Államok Nemzeti Atmoszférakutató Központjában állították föl ( U.S. National Center for Atmospheric Research , NCAR) a coloradói Boulderben, ben . Az állítólagos nulladik példányt az NSA kapta , ahol kódfejtésre használták . Több példányt nukleáris fegyverkutató laboratóriumokban használtak és néhány példányt különböző egyetemeken . A gépig volt forgalomban , amikor felváltotta a CDCés a CDC Cyber sorozat . Cray azonnal a következő modellre koncentrált , ez alkalommal ahez képest tízszeres gyorsítást kívánt elérni a következő , CDCjelű modellben . A későbbi CDC Cyberésszámítógépek általános kialakításukban igen hasonlóak a CDChoz és majdnem teljesen kompatibilisek azzal . Leírás A kor tipikus gépei egyetlen CPU-t használtak az egész rendszer meghajtására . Ezekben egy tipikus program először betölti az adatokat a memóriába ( gyakran előre elkészített könyvtári kód használatával ) , feldolgozza , majd ezután visszaírja . Ez megkövetelte a CPU megfelelő komplexitását , illetve a megfelelően nagy utasításkészletet ezekre a feladatokra . A komplexitás egyben a CPU nagy méretével járt együtt , és a processzort alkotó egyedi modulok közötti adatáramlás vezérlésekor jelentkező jelkésleltetésekkel . Ezek a késleltetések határozzák meg a teljesítmény felső határát , a gép csak legfeljebb olyan órajel-sebességen működhet , amely lehetővé teszi , hogy a jelek a megszabott átviteli idő alatt elérjenek a következő modulba . Cray egy másik megközelítést választott . Ekkoriban a CPU-k általában alacsonyabb sebességen működtek , mint a hozzájuk kapcsolt operatív memória . Például egy ilyen processzor két szám összeszorzásátórajelciklus alatt végzi el , míg a memória-hozzáférések csak egy vagy két ciklust igényelnek . Ebből következik , hogy a fő memória a végrehajtási idő jelentős részében tétlen , nem történik vele semmi . Ezt a tétlen időt használta ki a ACPU-k csak az aritmetikai és logikai műveleteket végeznek , nem pedig az összes műveletet . Ennek eredménye az , hogy a processzor sokkal kisebb és magasabb órajelen működhet . A szilíciumtranzisztorok nagyobb kapcsolási sebességével egyesítve az új CPU kialakítás könnyedén lekörözött minden abban az időben létező más megoldást . Az új kialakításMHz-en működött ( órajelciklusans ) , közel tízszer gyorsabban mint a többi gép a piacon . A magasabb órajelen kívül , az egyszerű processzor az utasításokat kevesebb órajelciklus alatt hajtotta végre , például a szorzást tíz ciklus alatt . A kor tipikus processzorai összetett utasításkészletű gépek voltak , amelyek utasításkészletében megtalálhatóak az összes olyan „ háztartási” feladatokra szolgáló utasítások is , mint a memóriahozzáférés vagy a be-/kimenet . Cray ezeket az műveleteket különálló , egyszerűbb dedikált processzorokra bízta , így a fő CPU utasításkészlete sokkal kisebb lehetett . ( Ez volt az első , később RISC-nek nevezett kialakítás – a RISC kifejezést csak azas évek elején alkották meg . ) Ebben a kialakításban a CPU , a perifériaprocesszorok ( PP-k ) és a be-/kimenet párhuzamosan működik , ami jelentősen megnöveli az ilyen architektúrájú gép teljesítményét . Átlagos esetben egy többprocesszoros gép ára is magasabb . Akialakításának kulcseleme , hogy a perifériaprocesszorként ( PP ) ismert processzorok szerkezete a lehető legegyszerűbb legyen . A PP-k az egyszerűbites CDCA processzoron alapulnak , ezek a CPU-nál lassabban működnek , begyűjtik az adatokat és egy dedikált hardveren keresztül nagy sebességgel a memóriába írják azt . APP virtuálisan van megvalósítva : valójában csak egyetlen PP processzor-hardver volt megépítve . Ez a processzorhardver hajtja végre avirtuális PP utasításait és kezeli az ezek állapotát reprezentálókülön regiszterkészletet ( hasonlóan a modern többszálas processzorokhoz ) . A PP regisztertár szervezése egy revolver forgótárához hasonlít : az éppen aktuális processzort a regiszter-forgótáron a „ kivágás” ( avagy a „ csőtorkolat” ) reprezentálja , amely az adott PP regiszterkészletére mutat . A PP végrehajtja a perifériaprogram egy utasításának egy órajelciklusra eső részét , majd a „ forgótár” elfordul , és a következő PP regiszterkészlete kerül a résbe , így a következő processzorállapot lesz aktív . Egy PP egy utasításához egy vagy több „ fordulatra” van szükség . Egy teljes „ körbefordulás” idejenanoszekundum ( egy PP-renanoszekundum jut ) , és egy utasítás végrehajtásáhoztőlfordulatig terjedő idő szükséges , vagy több , adatátviteli műveletek esetén . Ezt az elrendezést nevezték „ barrel processzor” ( kb . forgótáras processzor ) vagy „ barrel and slot” ( kb . forgótár és rés ) kialakításnak . Aas processzor alapját egy olyan , manapság RISC-nek nevezett rendszer alkotja , amelyben a processzor viszonylag egyszerű és korlátozott , ám jól definiált memóriahozzáféréssel rendelkező utasítások végzésére van optimalizálva . Sok más gép tervezési filozófiája a bonyolultabb utasítások bevezetése felé haladt — például : egyetlen művelet kiolvas egy operandust a memóriából és az értékét hozzáadja egy regiszter tartalmához . Aban az érték betöltése a memóriából és az összeadás két külön utasításban történik . Ez elvileg lassabb a járulékos memória-hozzáférések miatt , de a gyakorlatban egy jól ütemezett kódban , több utasítás párhuzamos végrehajtásával a többletidő kiküszöbölődik . Ez az egyszerűsítés a programírókat is arra kényszerítette , hogy kitüntetett figyelmet szenteljenek a memóriahozzáféréseknek és elkerüljék ezt a kódban , amennyire csak lehetséges . A központi processzor ( Central Processor , CP ) Aas , as ésas gépek központi processzora ( CP ) és főmemóriájabites szóhosszúságú . A központi processzornak nyolc általános célúbites regisztere van , ezeket X0-tól X7-ig jelölik , nyolcbites címregisztere van , ( A0–A7 , A mint address , cím ) és nyolcbites növekményregisztere ( relatív címek képzésében játszanak szerepet ) , ezeket B0-tól B7-ig jelölnek . A B0 a hardveresen rögzítettértéket tartalmazza állandóan . A programozók hasonlóan a B1 regisztert is gyakranre állították és érintetlenül hagyták azt a futás során . A CP-nek nincsenek utasításai a bemenet és kimenet számára , mivel ezeket a perifériaprocesszorok ( PP ) végzik . Nincsenek külön kijelölt opkódok a memóriából való olvasás és az oda történő tárolás számára ; ezek a műveletek egyes A regiszterek értékadásának mellékhatásai . Az A1–A5 regiszterek írása ( értékadás ) a regiszter által címzett szó betöltését eredményezi az X0–X5 regiszterekbe ; az A6–A7 regiszterekbe való írás rendre az X6–X7 regiszterek tartalmának kiírását eredményezi a memóriába . Az A0 regiszter írásának nincs mellékhatása . Külön hardveres betöltő/tároló egység kezeli a tényleges adatmozgatást az utasításfolyamban soron következő művelettől függetlenül , ami lehetővé teszi más műveletek befejezését a memóriahozzáférés ideje alatt , ami a legjobb esetben isórajelciklusig tart . Aas CP-nek tíz párhuzamos funkcionális egysége van , ezáltal egy időben több utasítás állhat végrehajtás alatt . Manapság ez szuperskalár kialakításként ismert , aas idejében azonban egyedülálló volt . A modern processzoroktól eltérően a funkcionális egységek nem voltak futószalagos rendszerűek ; a funkcionális egység egy utasítás végrehajtásának megkezdésekor foglalttá vált és úgy is maradt a végrehajtás befejezéséig . ( A CDCnál már bevezették a futószalagos működést a funkcionális egységekbe . ) A legjobb esetben mindenns-es órajelciklusban kiadható egy utasítás egy funkcionális egységnek . A rendszer a memóriából a lehető legnagyobb sebességgel olvassa ki és dekódolja az utasításokat , általában gyorsabban , mint azok végrehajthatók , és az utasításokat továbbadja a végrehajtó egységeknek , feldolgozásra . Az egységek a következők : lebegőpontos szorzópéldány ) lebegőpontos osztó lebegőpontos összeadó „ hosszú” fixpontos összeadó növelőegységpéldány ; memóriaolvasást és írást is végez ) léptetőegység bináris logikai egység elágazáskezelő A lebegőpontos műveletek sebessége kiemelkedően nagy ebben az architektúrában : a CDCés rokonai egyedülállók abban , hogy képesek egybites lebegőpontos szorzást egy elágazás feldolgozásával összemérhető idő alatt elvégezni . Abites számokon végzett fixpontos összeadás és kivonást a hosszú összeadó egység végzi , amely a negatív számokat egyes komplemens ábrázolásban kezeli . A fixpontos szorzást és osztást a lebegőpontos egységek végzik , az számok oda-vissza konvertálásával , fixpontos formátumról lebegőpontosra és vissza . Az előzőleg végrehajtott utasítások egy nyolcszavas gyorsítótárba kerülnek , amelyet ebben az architektúrában veremnek neveznek ( de nem azonos az általánosan veremként ismert adatszerkezettel ) . A gyorsítótáron ( vermen ) belüli ugrásokat gyorsabban hajtja végre a rendszer , mert ekkor nincs memóriaolvasás . A gyorsítótárat a feltétel nélküli ugróutasítások törlik , ezért pl. a ciklusok végén szereplő feltétel nélküli ugrások helyett konvencionálisan olyan feltételes ugróutasítást használtak , amelynél a feltétel mindig teljesül . A rendszerMHz-es órajelet használ , azonban az órajel négyfázisú , így a rendszer időnkéntMHz-es tényleges sebességen működik . Egy lebegőpontos szorzás végrehajtása tíz ciklust vesz igénybe , az osztáset , az összteljesítmény , figyelembe véve a memóriakésleltetéseket és egyéb tényezőket is , kb.MFLOPS . A gép késői pályafutása során a rendelkezésre álló legjobb fordítóprogramokkal fordított FORTRAN programoktól közel5 MFLOPS átlagos teljesítmény volt elvárható . Memóriaszervezés A felhasználói programok csak a főmemória összefüggő részeit használhatták . A végrehajtás alatt álló program által elérhető ( egybefüggő ) memóriaterületet az RA ( Relative Address , relatív cím ) és az FL ( Field Length , mezőhossz ) regiszterek jelölik , amelyek a felhasználói program számára nem elérhetőek . Mikor a felhasználói program megkísérli a központi memória a címén elhelyezkedő szó írását vagy olvasását , a processzor először ellenőrzi , hogy az a aés az FL-1 értékek között van-e . Ha igen , akkor a processzor hozzáfér a memória RA+a címen található memóriarekeszhez . Ezt a folyamatot alaphoz kötött relokációnak hívják ; a felhasználói programok az operatív tárat szavak folyamatos sorozataként látja , amelynek hossza FL , és a memória acímen kezdődik ; valójában a program akárhol lehet a fizikai memóriában . Ezzel a technikával az operációs rendszer bárhol elhelyezheti ( relokálhatja ) a programot a főmemóriában , mindaddig , amíg az RA a kezdőpozíciót mutatja a memóriában . A felhasználói program , amely a megengedett területen kívüli részeket próbál elérni ( tehát egy olyan címet próbál elérni , amelynek az értéke nagyobb , mint az FL-1 ) , egy megszakítást generál , és az operációs rendszer leállítja . Ekkor az operációs rendszer egy core dump-ot készíthet ( a memória tartalmát és a regisztereket tartalmazó fájlt ; a core a ferritmagos memória elnevezéséből származik ) , ami a programozót segítheti a hiba keresésében . A gép memóriaszervezése jelentősen eltér a virtuális memóriát használó rendszerekétől : ebben a rendszerben a címezhető területnek teljes egészében a főmemóriában kell lennie , a területnek összefüggőnek ( folyamatosnak ) kell lennie és a mérete nem lehet nagyobb , mint a valódi fizikai memóriakapacitás . Az első hét CDCsorozatú gép kivételével a sorozat gépei konfigurálhatók az ún . ECS ( Extended Core Storage , kierjesztett ferritmagos tároló ) rendszer használatára . Az ECS egy másik ( a központi memóriától eltérő ) technológiával készült ferritmagos memória , ezáltal egyszerre gazdaságosabb , nagyobb és lassabb működésű . Ennek oka , hogy ezt csak két vezetékkel fűzték , a központi memóriavezetékével ellentétben . Mivel nagyon széles adatátvitelt biztosított , a soros átviteli képessége ugyanakkora , mint a kisebb méretű központi memóriának . Aes CPU képes közvetlenül végrehajtani a blokkos memóriaátviteleket a felhasználók vagy az operációs rendszer programjai és az ECS egység között . Széles adatutakat használ , ezért az átvitel igen gyors . A memóriahatárok a központi memóriához hasonló módon vannak kezelve , egy az operációs rendszer által kezelt RA/FL mechanizmus által . Az ECS számos célra volt használható , például a központi memória számára túl nagy felhasználói adattömbök vagy a gyakran használ fájlok tárolására , memóriacsere céljaira ( swapping ) , vagy akár kommunikációs területként a többgépes rendszerekben . A perifériaprocesszorok ( PP-k ) Az olyan „ háztartási” feladatok ellátására , amelyek elvégzése más rendszerekben a CPU feladata , Crayújabb processzort helyezett a rendszerbe , amelyek részben korábbi számítógépén , a CDCA-n alapultak . Ezek a perifériaprocesszornak ( PP ) nevezett egységek önmagukban is teljes jogú számítógépek , csak a be-/kimeneti feladatokra és az operációs rendszer futtatására voltak beállítva . Majdnem a teljes operációs rendszer a PP-ken fut , így a központi processzor szinte teljes kapacitása a felhasználói programok rendelkezésére áll . Az egyik PP megkapja a gép teljeskörű vezérlésének jogát , és ebbe beleértendő a fő CPU-n futó program vezérlése is , míg a többi PP különféle be/ kimeneti feladatokat végez – a korabeli IBM nagyszámítógépek be-/kimeneti csatornáihoz hasonlóan . Mikor a program be/kimeneti műveletet végez , akkor az egyik PP-be betöltődik egy kisebb program , amely elvégzi a feladatot . A PP egy megszakítás segítségével értesíti a programot a feladat befejezéséről . Mindegyik PP saját12 bites szó méretű külön memóriával rendelkezik . Ez a memória szolgál a programtárolás és a be/kimeneti pufferelés céljaira is . ám aPP csak egyetlen , közösen használt végrehajtóegységen osztozik , egy ún . „ forgódob és rés” ( barrel and slot ) konfigurációban . ( Erre nincs jó fordítás , kb . „ forgótáras” processzor lehet , de a többkontextusú processzor kifejezés is jól leírja a fogalmat . ) Ez azt jelenti , hogy a végrehajtóegység ( a „ rés” ) végrehajt egy egy utasításciklust az első PP-ből , majd egy utasításciklust a másodikból , és így tovább , körforgásos ( ciklikus időkiosztásos ) rendszerben . Ez egyrészt a költségcsökkentés miatt alakult így , másrészt , mert a CP memóriahozzáférésePP utasításciklust igényelt : mikor a PP a főprocesszor ( CP ) memóriájához fordul , az adat a következő alkalommal rendelkezésre áll , amint a PP elfoglalja a „ rés” szerepét , tehát amint legközelebb hozzá kerül a végrehajtás . Szóhosszak , karakterek A központi processzorbites , a periferiális processzorokbites szavakat használnak . A CDC szintén a „ bájt” kifejezést használta a perifériaprocesszorok által használtbites egységekre ; a karakterek ebben a rendszerbenbitesek , a központi processzor utasításai pedigbitesek , vagybitesek , amelyek egy előjelesbites címmezőt is tartalmaznak ; ez utóbbiK-szó memóriaterület közvetlen címzését teszi lehetővé a központi memóriában ( modern kifejezéssel, bites bájtokkal számolva ez94 MiB-ot jelent ) . A címregiszterek előjeles volta a programok méretétK-szó méretre korlátozza . ( A későbbi CDCkompatibilis gépekK vagy több szó méretű központi memóriát is tartalmazhattak , de a különálló felhasználói programok mérete továbbra isK-szó maradt . ) A központi processzor utasításainak szóhatáron kell kezdődniük , mikor az egy ugróutasítás célja vagy egy szubrutinból való visszatérés célutasítása , ezért helyenként üres ( nop ) utasításokkal kellett feltölteni a memóriaszó utolsóvagybitjét . A display code nevű kódkészletbites karaktereivelkarakter tárolható egy szóban . A karakterkészletkülönböző jelet tartalmazhat , ami elég az összes nagybetű , számjegy és néhány központozási jel ábrázolására . Ez megfelel a Fortran programok írására vagy üzlet és tudományos jelentések nyomtatásához . A display code-nak két változata volt használatban egyés egykarakteres készlet . Akarakteres változatnak az volt a hátránya , hogy az egymást követő két ':' karakter sorvégjelként volt értelmezhető , mikor egybájtos szó végére esett . A későbbi változatot12 display code-nak hívták , és ez már a teljes ASCII karakterkészletet képes volt ábrázolni , az előző rendszerekkel valamennyire kompatibilis módon . Mivel az utasításkészletben nincsenek bájtokat címző vagy feldolgozó utasítások , a kódban a karaktereket egyenként eltolva és összerakva kellett egy szóba betárazni . A nagyon nagy szóhossz és a viszonylag kicsi memória azzal járt , hogy a programozók igyekeztek memóriát megtakarítani az adatok szavakba történő bitszintű összecsomagolásával . Érdekesség , hogy akarakter tárolására alkalmas nagy szóméret miatt gyakran gyorsabb volt a karakterekkel kitöltött szavakat egészben kezelni , mint a karaktereket egyenként kicsomagolva és a feldolgozás után visszacsomagolva kezelni . A CDC COBOL fordító különösen jó volt a decimális mezők feldolgozásában , ezt a technikát alkalmazva . Ezt a fajta gyorsítást mostanában széles körben használják a modern processzorok multimédia-utasításaiban . Fizikai kialakítás A gépet egy felülnézetben pluszjel alakú szekrénybe építették , a négy kar végén az utolsócm-ben a hűtőrendszer kapott helyet . A hűtést freongáz áramoltatásával végezték a gép belsejében , amit vízhűtés egészített ki . A négy kar mindegyike négy tartóvázat tartalmaz , amelyek könyvszerűen nyithatók . A pluszjel közepén a karokat és hordozóvázakat összekötő kábelhálózat található . A vázakattőlig számozták , ezek aPPU egységet , azok memóriáit és aviszonylag kicsi be-/kimeneti csatornát tartalmazzák . A CPU főmemóriája több vázon van elosztva . EgyK szavas memóriával ellátott rendszerben egy kar kimaradhat . A gép logikája5 inchesmm ) oldalú négyzet alakú modulokban volt szerelve , a modulokinch5 cm ) vastagok . A modulok mindegyike rendelkezik egytűs csatlakozóval az egyik élen , míg a másik élen tesztpontokat alakítottak ki . A modulok két hőelvezető alumínium lemez közé kerülnek . Maga a modul két nyomtatott áramköri lapból áll , amelyeket a beléjük szerelt alkatrészek tartanak össze – az alkatrészek lehetnek csak az egyik lapra vagy mindkettőre felszerelt elemek . Ez egy elég nagy alkatrészsűrűséget eredményez , ez nehezíti a javítást , de jó a hőelvezetés szempontjából . Ezt a rendszer hasáb-kivitelezésként ismert ( cordwood konstrukció ) . Operációs rendszer és programozás Agépek eredetileg egy COS ( Chippewa operációs rendszer ) nevű , igen egyszerű feladatvezérlő rendszert kaptak , ami a korábbi CDCoperációs rendszerén alapuló „ összedobott” rendszer volt , a gépek szállítás előtti tesztelésére . A gépekhez egy sokkal hatékonyabb rendszert terveztek szállítani , a SIPROS nevűt ( Simultaneous Processing Operating System , szimultán feldolgozó operációs rendszer ) , amely a los angelesi System Sciences Division cég fejlesztése . A SIPROS egy üzleti bukásnak bizonyult , a fejlesztési határidők csúszása és az ezt követő profitkimaradás és kötbérek miatt . Ezt a projektet végül törölték , a COS fejlesztése tovább folytatódott . A CDC egy másik operációs rendszer fejlesztését is elindította , ez lett a SCOPE ( Supervisory Control Of Program Execution ) rendszer , amelynek első verziója szintén a COS-on alapult . A következő verziókban jelent meg az eszköz- és fájlrendszer-támogatás , majd a permanens fájlok , az EI/200 távoli batch támogatás , és az INTERCOM időosztás támogatása . A SCOPE-nak mindig jelentős megbízhatósági és karbantarthatóság problémái voltak . A COS-ból később kifejlesztették a MACE rendszert , amely nem lett hivatalos termék . Ennek utódja lett a Kronos rendszer . A SCOPE és a Kronos operációs rendszerek összeolvasztására tett kísérlet eredményezte a NOS ( szoftver ) , hálózati operációs rendszer terméket . Ezt később a CDC NOS/ BE ( Batch Environment ) névre nevezte át , ami egy elterjedt operációs rendszerré vált . Ehhez később különféle mérnöki fejlesztések és kiegészítők kapcsolódtak . Kapcsolódó szócikkek A szuperszámítógépek története Jegyzetek Fordítás Források Hivatkozások Grishman , Ralph asszembler-nyelv Programming for the vezérlőadatSeries és the CyberSeries . New York , NY : Algorithmics Press . CONTROL DATA6500/6600 COMPUTER SYSTEMS Reference Manual Thornton , J. Considerations in Computer Design - Leading max. the vezérlőadat Thornton , J. Design of a Computer—The vezérlőadat Glenview , IL : Scott , Foresman és Co . Understanding Computers : Speed és Power , a TIME LIFE series További információk Neil R. Lincoln withControl Data Corporation ( CDC ) engineers on computer architecture and design , Charles Babbage Institute , University of Minnesota . Engineers include Robert Moe , Wayne Specker , Dennis Grinna , Tom Rowan , Maurice Hutson , Curt Alexander , Don Pagelkopf , Maris Bergmanis , Dolan Toth , Chuck Hawley , Larry Krueger , Mike Pavlov , Dave Resnick , Howard Krohn , Bill Bhend , Kent Steiner , Raymon Kort , és Neil R. Lincoln . Discussion topics include CDC CDC CDC CDC CDC STAR-100 és Seymour Cray . Parallel operation in the Control Data James Thornton Presentation of the CDCand other machines designed by Seymour Cray – by C. Gordon Bell of Microsoft Research ( korábban /régebben of DEC ) Kapcsolódó szócikkek CDC Szuperszámítógép Számítástechnikai múzeum Szuperszámítógépek Tranzisztoros számítógépek Mikroprocesszorok