470 likes | 608 Views
Számítógépek felépítése 12. előadás. Dr. Istenes Zoltán ELTE-TTK. Processzorok („gépek”). Alpha CRAY-1 VAX. Alpha 21164 processzor. 64-bit RISC Superscalar: 4 utasítás órajel ciklusonként Superpipelined: 7 lépcsős pipeline egész számos utasításokra,
E N D
Számítógépek felépítése12. előadás Dr. Istenes Zoltán ELTE-TTK
Processzorok („gépek”)... Alpha CRAY-1 VAX ...
Alpha 21164 processzor • 64-bit RISC • Superscalar: 4 utasítás órajel ciklusonként • Superpipelined: • 7 lépcsős pipeline egész számos utasításokra, • 9 lépcsős pipeline lebegőpontos számos utasításokra • 16K L1 cache (8K adat, 8K utasítás), 96K L2 cache • Pipelined Floating Point Unit: lebegőpontos egység 2 utasítás órajel ciklusonként (kivéve osztás) • órajel 600 MHz, 2.4 billió utasítás /sec • 9.6 millió tranzisztor • Dynamic Branch Prediction
Dinamikus elágazás előrelátás(Dynamic Branch Prediction) Probléma : feltételes elágazáskor a prefetch nem „tudja előre kitalálni” hogy lesz elágazás vagy sem (melyik lesz a következő utasítás) A végrehajtott feltételes elágazás utasításaihoz „elágazási információk” eltárolása... az előző (két) esetben volt elágazás vagy sem...
CRAY-1 • Semour Cray (kb. 1977 ?) • hosszú ideig a leggyorsabb számítógép • „tiszta” tervezés • „semmivel se spórolni” • tudományos, sok-sok lebegőpontos számításra
CRAY-1 • vektor processzor • kb. 5 IBM 370/195 • 138 MFLOP (250 MFLOPS burst) • 12,5ns (80MHz) • 1 millió szavas tár, 1 szó = 64 bit • 115KW fogyasztás, freon hűtés... • kb. 5 tonna • nagyon drága...
CRAY-1 • 128 utasítás (egész + lebegőpontos) • 0-3 címes utasítások • nincs karakter művelet, sem egész osztás • adattípusok : 2-es komplemens, lebegőpontos • szó hozzáférésű tár, 1 szó = 64 bit • 12 műveletvégző egység • pipeline feldolgozás
CRAY-1 regiszterek • 8x 24 bites címregiszter (A) • 64x 24 bites átmeneti címregiszter (B) • 8x 64 bites skalár regiszter (S) • 64x 64 bites átmeneti skalár regiszter (T) • 8x 64 elemes vektor regiszter (64bit/elem) (V) 4Kbyte+ 6ns -os regiszter tároló
CRAY-1 • memoria blokk töltése T regiszterekbe • vektoron végzett műveletek • verem nincs • cache nincs
VAX • 1970 DEC (Digital Equipement Corp.) • CISC • VAX 11/780 sebessége kb. 1MIPS • kb. „hűtőszekrény” méret
VAX utasítás készlete • egész aritmetika : különféle adat-mérettel • logikai : különféle adat-mérettel • cím és bit manipulációk • vezérlés átadó utasítások (elágazás, ugrás, ciklusok, eljárások) • lebegőpontos műveletek • karakter-string műveletek (pld. edit) • crc (Cyclic Redundancy Check) • BCD műveletek összesen több mint 200 utasítás...
VAX regiszterek • 16db 32 bites „általános célú”... • R15 = PC (szabadon módósítható) • R14 = SP (varem mutató) • R13 = „keret mutató” (memória kezelés) • R12 = „argumentum mutató” (eljárások paraméterei)
VAX adattípusok • byte, word (16 bits), longword (32 bits), quadword (64 bits), octaword (128 bits) • F floating point (32 bit, 7 bites exponens) • D floating point (64 bit, 7 bites exponens) • G floating point (64 bits,10 bites exponens) • H floating point (128 bit, 15 bites exponens) • character string • numeric string (egészeket ábrázoló ASCII kódok) • BCD string
Csodák palotája...számítógép történeti kiállítás http://www.sztaki.hu/providers/bsc/home/home.htm cím: Bp. XIII. Váci út 19 telefon: (+36 1) 350 6131 fax: (+36 1) 350 6131 e-mail: bsc@mtesz.hu
Neumann elv - soros feldolgozás CPU szekvenciális feldolgozás Lassú Mem feladatot részlépésekre lehetne bontani... egy utasítás feldolgozásakor „több részegység tétlen”... Párhuzamosság... párhuzamos számítógépek... párhuzamos feldolgozó egységek...
Párhuzamos számítás(Parallel computing) párhuzamos programozás - operációs rendszer : • „látszólag” több program fut „egyszerre” • amíg egy prg. lassú I/O-ra várt egy másik prg. fut • független folyamatok, „nem férnek egymáshoz” program részeinek párhuzamos feldolgozása : • kommunikáció (információ csere) • szinkronizáció (összehangolt működés)
A párhuzamos programvégrehajtás szintjei • A hardver egységen belüli párhuzamosítás • Gépi utasítás végrehajtásán belüli párhuzamosítás • Párhuzamosítás a feldolgozott adatok szintjén • Gépi utasítások közötti párhuzamosítás • Eljárások (makro utasítások) közötti párhuzamosítás • Jobok közötti párhuzamosítás • Folyamatok közötti párhuzamosítás
1. szint: A hardver egységen belüli párhuzamosítás • Egyidejűleg több alkotóelem végez aktív feldolgozó munkát az aktuális programrészlet végrehajtása érdekében. • Pl.: egy párhuzamos aritmetikai egységben az operandusok minden bitjén egyidejűleg történik az előírt művelet végrehajtása, vagy egy buszon a memóriából felhozott utasításszó minden bitje egyidejűleg mozog.
2. szint: Gépi utasítás végrehajtásán belüli párhuzamosítás. • Egy gépi utasítás végrehajtása több fázisra bontható. A számítógépek sebessége nagymértékben fokozható, ha ezeket a fázisokat átlapoltan, több utasításon párhuzamosan hajtja végre a számítógép. • Pld. az n-edik utasításhoz tartozó akciók végrehajtásával egyidejűleg folyik az n+1.-dik utasítás dekódolása, és az n+2.-dik utasítás felhozása. • Ez a párhuzamosítási technika a pipeline (csővezeték) technika.
3. szint: Párhuzamosítás a feldolgozott adatok szintjén. • Vektorok feldolgozása esetén tipikus feladat, hogy ugyanazt a műveletet a vektor minden elemén végre kell hajtani (pl. két vektor összeadása). N elemű vektor esetén a szokásos számítógépek az ilyen műveleteket N lépésben hajtják végre. Vannak azonban olyan többprocesszoros számítógépek, melyek ezt a műveletet egyetlen lépésben képesek végrehajtani. Ezek az ún. vektorprocesszorok, amelyekben N processzor egyidejűleg hajtja végre a vektor N elemén ugyanazt a műveletet.
4. szint: Gépi utasítások közötti párhuzamosítás. • A hagyományos számítógépekben az utasítások végrehajtási sorrendje kötött, jóllehet legtöbb programban találhatók olyan utasítások, amelyeknek a végrehajtási sorrendje a program működésének helyességét nem befolyásolja. Az olyan utasítások, amelyek egymástól ily módon függetlenek, bármilyen sorrendben, akár egyidejűleg is végrehajthatók. • A párhuzamosan végrehajtható utasítások automatikus felderítésére a Neumann-elvű többprocesszoros számítógépek nem voltak alkalmasak, mivel a párhuzamosítási előírások akkora túlmunkát jelentettek a feldolgozó egységnek, hogy alapjaiban kérdőjelezte meg a gépi utasítások közötti párhuzamosítás létjogosultságát.
Gépi utasítások közötti párhuzamosítás : Dataflow (adatfolyam) A B C D * / utasítás („művelet”) akkor hajtható végre, ha az operandusok már rendelkezésre állnak + X= (A*B)+(C/D)
5. szint: Eljárások (makro utasítások) közötti párhuzamosítás. • Egy adott makro utasítást egyetlen gépi utasítás(ok) egy sorozata reprezentál • Mivel az eljárás végrehajtási ideje jelentős, ezért a párhuzamosítási előírások megvalósításából származó többlet-ráfordítás elhanyagolható lehet az eljárás végrehajtási idejéhez képest. • Ezen a szinten már hatékonyan alkalmazhatók a Neumann-elvű processzorokból felépített többprocesszoros számítógépek is.
6. szint: Jobok közötti párhuzamosítás. • Jobon olyan véges működésű programot értünk, amely önálló működésre képes és a rendszer erőforrásait használja. • Az eljárás és a job közötti rokonság, hogy mindkettő véges lefutású, lényeges különbség viszont, hogy amíg az eljárás sosem önálló, addig a jobok egymástól logikailag függetlenek, egy-egy virtuális gépet reprezentálnak. • A közös erőforrások használata miatt egy szinkronizációs mechanizmust kell alkalmazni.
7. szint: Folyamatok közötti párhuzamosítás. • Folyamat (process) alatt olyan nem feltétlenül véges működésű programot értünk, amely önálló működésre képes, a rendszer erőforrásait használja és a többi folyamattal kommunikál. • Szinkronizációs mechanizmust, az üzenetátadást, és az eseménykezelést is biztosítani kell.
Többprocesszoros rendszerek megjelenését segítő tényezők • hardware elemek árának a csőkkenése • számítógépes hálózatok elméletének és technikájának a fejlődése • technológiai korlátok (több alkatrész már nem fér a chip-be)
Multiprocesszoros rendszerek csoportosítása és osztályozása(alkalmazásuk szerint) • Általános célú rendszerek : cél az egyprocesszoros számítógépek működési sebességének a fokozása az architektúra módosításával. • A redundáns (hibatűrő) rendszerek : cél a számítógépek megbízhatóságának a növelése több processzor alkalmazásával. • A számítógép-hálózatok : cél nagytávolságú elosztott információs rendszerek kialakítása.
Számítógépek teljesítőképességét befolyásoló tényezők • technológia - sebességnövekedés (gyorsabb alkatrészek, tárak, stb...) • architektúra - különböző egységek kapcsolatának a megszervezése, kezelése Példa : gép órajel mátrixszorzás EDSAC1 2000ns 100/s CRAY-1 12,5ns 130 millió/s 160x 1.000.000x
a rendszerek csoportosítása (1) logikai struktúra : • horizontális • vertikális fizikai struktúra • közös tárterület (centralizált) • sínrendszer (osztott)
a rendszerek csoportosítása (2) kölcsönhatás módja, csatolás foka : • szorosan csatolt • lazán csatolt („on site computing”) processzor és passzív elemek (tár, I/O) közötti kapcsolat : • közös sín • crossbar • többszörös hozzáférésű tárak
a rendszerek csoportosítása (3) feldolgozási mód (Flynn) • SISD • MISD • SIMD • MIMD
Multiprocesszoros rendszerek(általános célú) • SISD Single Instruction stream on Single Data stream (egy utasítás egy adat) • SIMD Single Instruction stream on Multiple Data stream (egy utasítás több adat) • MISD Multiple Instruction stream on Single Data stream (több utasítás egy adat) • MIMD Multiple Instruction stream on Multiple Data stream (több utasítás több adat)
SISD, SIMD, MISD, MIMD • A SISD rendszerek : a szokásos egyprocesszoros számítógépek. • A SIMD rendszerek : a program párhuzamosítás 3. szintjének támogatását szolgáló vektor (hardver megvalósítása a CrayX számítógép) -, tömb (Connection Machine) - ill. asszociatív processzorok (Staran). • A MISD rendszerek : a program 2. párhuzamosítási szint megvalósítására szolgáló pipeline processzorok tartoznak. • A MIMD architektúra : a program párhuzamosítás 4., 5., 6. és 7. szintjének megvalósítása.
előnyök feldolgozási teljesítőképesség : • átbocsájtóképesség • közös erőforrás használat • megbízhatóság
többprocesszoros rendszerek architektúrája „egyes rendszerelemek (processzorok - tárak - I/O) egymáshoz kapcsolódása, együttműködése, közös feladatvégrehajtása” fogalmak : adatút, kapcsolóelem (osztott/központi vezérlésű hálózat), kommunikáció létrehozási módja, modularitás, bővíthetőség, hibatűrés, egyidejüség, üzenetterítés, összekötöttség...
osztott feldolgozás (distributed processing) : • feldolgozás • adatbázis
A processzorok közötti kapcsolat megvalósítása : • a csatolás topológiája • a processzorok csatolásánalk módja • a kapcsolat fizikai megvalósítása • a kommunikációs csatorna működési módja • a passzív elemek használata • a kapcsolat technológiája
útvonal (path) kapcsoló (switch) gyűrű teljes összekötés közös központi tár központi rendszersín csillag közös központi vezérlésű sín reguláris hálózat irreguláris hálózat kapcsoló a processzor és a sín között A csatolás topológiája
A processzorok csatolási módja • tárcsatolt • be/kiviteli csatolású
A kapcsolat fizikai megvalósítása • időosztásos közös sínrendszer • crossbar kapcsolórendszer • többszörös hozzáférésű tárak
A kommunikációs csatorna működési módja • szó (byte) átviteli • blokkátviteli • vegyes átviteli
A passzív elemek használata • csak globális • globális és lokális
A kapcsolat technológiája • fizikai elosztottság...
osztott erőforrás • kritikus szakasz • kölcsönös kizárás (mutual exclusion) • test and set • szemafor x:=x+1000 x:=x-200 x