Diky!
Jenom bych mel dotaz k vyhodnocovani vektorovych operaci ‚v nekolika taktech pomoci vektorove jednotky‘. Ktery Cray pracoval takto jako SIMD? Urcite to tak nebyl na CRAY-1, ten mel napr. pouze jednu FP nasobicku (ktera se po mirne rekofiguraci nekolika ricimi bity pouzivala i pro integery) a mela takove dost nesikovne zaokrouhlovani, ktere zpusobovalo ze FP nasobeni nebylo komutativni (coz nekdy nastve). Ostatni craye tolik neznam.
V CRAY-1 se jednalo o to ze i kdyz byla jen 1 nasobicka (a nez se pronasobila 2 cisla tak to tez trvalo nekolik clocku), tak byla dusledne pipelinovana, takze kazdy takt do ni mohly vstoupit nove dva operandy, ktere za N taktu vypadly ven. Scitacka byla nezavisla takze skutecne slo delat scitat 2 vektory a nejake jine nasobit. Dokonce slo operace spojovat do retizku takze treba skalarni soucin taky slo pocitat tez timto zpusobem (scitani si automaticky pockalo na latenci nasobicky nez zaclo pracovat). Load/store unit byla tez nezavisla coz se pouzivalo k tomu ze zatimco jste pocital tak nejaka dalsi instrukce uz tahala data z pameti do nejakeho vektoroveho registru (nemuselo se cekat az se cely naplni, stacilo kdyz treba nasledne scitani bude o jeden prvek pozadu pred naplnovanim). Pamet byla staticka (SRAM), cache to nemelo (krome nejakeho instrukcniho bufferu, ale to nebyla skutecna cache), takze casovani bylo celkem deterministicke.
V tom bylo to zrychleni oproti tehdejsim mikrokodovanym pocitacum. Tem trvalo nekolik taktu nez provedou instrukci (nez prosla celou tou byrokracii) a cray mohl za takt provest nemin 3 operace (scitani, nasobeni, load/store (do toho se pocita i update adresovych registru, umelo to nacitat s volitelnym krokem (to se hodi pro sloupce matice) i napreskacku, jak bylo receno v clanku)). Instrukce ale mohla trvat i 64 taktu pokud byl vektor maximalne dlouhy (kazdy vektorovy registr mel jeste navic par bitu kde se pamatovala skutecne pouzivana delka).
Takze to nebylo skutecne paralelni (jako ze by scital vsechny prvky vektoru `naraz'), pouze se chytre schovavaly latence jednotek tim ze se behem doby latence mohla delat jina prace (na jinem miste vektoru a nebo v jinych jednotkach).
V podstate podobny princip se pouziva dodnes (zacaly to RISC procesory, proto se jim taky rika Really Invented by Seymour Cray), jen uz ty vektorove registry se z toho vytratily protoze je nahradila L-1 cache ktera bezi na frekvenci CPU (ono totiz mit mnoho registru je i nevyhoda, kdyz je treba udelat context-switch (puvodni OS pro cray nemel multitasking protoze si mysleli ze by bylo skoda delit tak hezkej pocitac na nekolik uzivatelu, kdyz by to diky tolika registrum melo velky overhead)).
Doufam ze se priste docteme neco HW. Bylo zajimave ze na svou dobu tak silny stroj jako CRAY-1 byl slozen z integrovanych obvodu nizke (4 a 5tivstupe NORy) a stredni (staticke 1kbit RAMky) integrace. Krom toho elektricky bylo vse (krome pameti) delano jako diferencialni zesilovace, takze kazdy bit se prenasel 2ma draty. Na prvni pohled to vypada jako plytvani, ale omezuje to ruseni/vyzarovani. Navic pouzita logika (nebylo to TTL, mozna ECL uz si nepamatuju) diky te symetrii mela temer
konstatni spotrebu hradla pri prepinani z 0 do 1 (dnes to tak neni, pri prepinani hradlo chvili zere mnohem vic nez v klidu). Tim ze cely pocitac spotrebovaval nezavisle na tom co dela porad tentyz proud si mohl Seymour dovolit nestabilizovat napajeci napeti (coz pri prikonu okolo 1MW (pokud se pamatuju, ale urcite vic nez 100kW) by byl problem). Proste to ma jen trasformatory (3fazove, umistene v te pohovce), usmernovace a LC filtry pro vyhlazeni. Aby ty transformatory nebyly velke tak pocitac vyzaduje 400 Hz napajeni, ktere se ziskavalo v motorgenratoru (v podstate elektromotor ktery toci synchronnim generatorem s vetsim mnozstvim polu aby se dosahlo zvyseni frekvence), ktery se k tomu standardne dodaval a byl umisten v mistnosti vedle, aby nekazil umelecky dojem.
Zvlast se tesim na CRAY-2 a CRAY-3 o nich temer nic nevim (krom toho ze CRAY-2 mel desky chlazene tim ze byly v nejake freonove lazni a spojeny byly takovymi pruznymi kontakty co se snad jen dotykaly vhodnych plosek na protejsim plosnem spoji).
Docela zajimava pradnaska:
http://www.youtube.com/watch?v=J9kobkqAicU
Jinak pokud vim tak Cray primo navrhoval `pouze' na pocitace CRAY-1, CRAY-2 a CRAY-3.
Ty ostatni X-MP, Y-MP, delal jiny team, ktery uz jen zdokonaloval jeho genialni myslenky obvyklou `inzenyrskou evoluci'.
Vychladit 1MW z tak malé bedny by byl problém a číslo je o řád nadsazené. Pro představu jen o něco větší množství tepla promrhá při provozu dieselelektrická lokomotiva T435 (http://www.mec01.muenchberg.de/sergej/T435.0145.jpg), ovšem na větším tepelném spádu. CRAY-1 byl skutečně napájený z rotačního měniče 208V, 400Hz s příkonem 150kW. Příkon vlastního počítače byl 115kW. Dalších 150kW (odhad) mohla být spotřeba chladícího kompresoru k udržení teploty pouzder IO na max. 54°C.
http://american.cs.ucdavis.edu/academic/readings/papers/CRAY-technology.pdf – dobový článek o HW.
Škoda, že se všude píše jen o vlastní architektuře, fotí se paměťové moduly, ale to co bylo kvůli „uměleckému dojmu“ skryto takto stále zůstává.
Na další díly se také těším a předem děkuji.
To pouziti technologie ECL melo svoje vyhody, protoze se tranzistory neprepinaly z uplneho uzavreni az do saturace (jak je to v TTL), ale v pracovni oblasti, tak bylo prepinani mezi obema stavy dost rychle.
A hlavne – dneska ani ty ruzne HxxxMOS technologie moc nevyuzivaji jejich nejvetsi vyhodu (prakticky nulovou spotrebu ve stabilnim stavu) kdyz se pracuje na gigahertzovych frekvencich.
Ten prikon C-jednicky byl nekde okolo 150kW plus dalsich 150kW na uchlazeni.