570 likes | 899 Views
Kompiuterių architektūra ir operacin ė s sistemos. Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt. T r eči osios paskaitos santrauka. K OMANDŲ SISTEMA komandų sistem os samprata p agrindiniai komandų sistemų tipai
E N D
Kompiuterių architektūra ir operacinės sistemos Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt
Trečiosios paskaitos santrauka KOMANDŲ SISTEMA • komandųsistemossamprata • pagrindiniai komandųsistemų tipai • bendrosios paskirties registrų tipo architektūra • komandų formatai • operandų adresavimo būdai • komandų formatų pavyzdžiai • CISC ir RISC KOMANDŲ VYKDYMO KONVEJERIS • konvejerio esmė • kliūtys konvejeryje S.Maciulevičius
Ketvirtosios paskaitos turinys • programos rengimas ir vykdymas • procesoriaus struktūra • procesorių vystymasis • bendrosios procesorių našumo didinimo priemonės S.Maciulevičius
Proce- sorius Pagr. atmintis Grafika Tiltas 1 Standusis diskas Tiltas 2 Išvesties įtaisas Klaviatūra Pelė Programos rengimas 3 4 1 2 S.Maciulevičius
Programos rengimas • Iš MD programavimo sistema (specialus redaktorius + kompiliatorius + ryšių redaktorius + derinimo sistema) įkeliama į atmintį • Naudojant klaviatūrą ir pelę, įvedamas programos tekstas • Naudojant derinimo sistemą, patikrinamas programos teisingumas • Sukompiliuotas programos failas (.exe) išsaugomas diske • Jei reikia, programos tekstas išspausdinamas S.Maciulevičius
Programos vykdymas • Vartotojas disko aplankuose suranda programos vykdomąjį failą (.exe) • Operacinė sistema įkelia jį atmintį, paruošia informaciją apie programos vietą ir išdėstymą atmintyje • Pradedama vykdyti programa; jei reikia, duomenys įkeliami iš disko ar įvedami klaviatūra • Programos rezultatai įrašomi į diską ir/ar išvedami į ekraną S.Maciulevičius
Kompiuterių architektūra ir operacinės sistemos PROCESORIAI S.Maciulevičius
Komandų procesorius Duomenų procesorius Įvesties ir išvesties procesorius Ryšio įtaisas (magistralė) Atmintis von Neuman'o tipo kompiuteris Tokio kompiuterio struktūra: S.Maciulevičius
Procesorius Dabar komandų ir duomenų procesorius įprasta apjungti į vieną įtaisą – centrinį procesorių (CPU). Todėl komandų ir duomenų procesorius toliau vadinsime valdymo ir operaciniais įtaisais, nes šie pavadinimai geriau atspindi jų paskirtį ir funkcijas 4 S.Maciulevičius
PROCESORIUS Valdymo signalai Valdymo įtaisas Operacinis įtaisas Informacija apie opera- cijos eigą Komanda (iš atminties) Duomenys (iš atminties) Rezultatai (į atmintį) Procesorius S.Maciulevičius
Procesorius • valdymo įtaisas išrenka iš atminties komandas, jas analizuoja ir valdo operacinio įtaiso darbą (jame vykdomas operacijas, kreipinius į atmintį duomenims išrinkti ar rezultatui įrašyti); • operacinis įtaisas vykdo operacijas, kurias nurodo komanda; • šie du įtaisai dirba kartu: valdymo įtaisas pagal operacijos kodą formuoja signalus, valdančius operacinio įtaiso darbą; pastarasis perduoda į valdymo įtaisą signalus, informuojančius apie operacijos eigą; nuo to (pavyzdžiui, operando ženklo, jo kurios nors skilties reikšmės ir t.t.) gali priklausyti paskesnių valdymo įtaiso signalų formavimas 4 S.Maciulevičius
Operacinis įtaisas operandai Vidinė atmintis (registrai, spart. atmintis) Operacijas vykdančios schemos rezultatai Duomenys (iš atminties) Informacija apie opera- cijos eigą (į valdymo įtaisą) Rezultatai (į atmintį) Valdymo signalai (iš valdymo įtaiso) Procesoriausoperacinis įtaisas S.Maciulevičius
Procesoriausoperacinis įtaisas • Jei pažvelgtume į operacinio įtaiso vidų, galėtume jame išskirti dviejų tipų schemas: • vidinę atmintį, kuri reikalinga apdorojamiems duomenims (operandams) laikyti; ją sudaro registrai, atskiri trigeriai, spartinančioji atmintis [kešas], kai kuriuose įtaisuose – stekas; • operacijas vykdančios schemos, kurios atlieka visus informacijos apdorojimui reikalingus veiksmus – sudėtį, logines operacijas, postūmius ir t.t. S.Maciulevičius
Procesorių vystymasis • Panagrinėsime bendruosius procesoriųvystymosi principus • Vienas procesoriųvystymosi aspektas – duomenų žodžio ilgio didinimas • Pastaba: toliau kalbėsime apie mikroprocesorius, kadangi dabartiniu metu procesoriai realizuojami tik kaip mikroprocesoriai S.Maciulevičius
Duomenų žodžio ilgio didinimas • Pirmojo mikroprocesoriaus duomenų žodžio ilgis – 4 bitai (Intel 4004). • Kokią įtaką turėjo toks žodžio ilgis? • operacijos su skaičiais atliekamos nuosekliai • komandų, registrų ilgis – 4m bitų • paprogramių biblioteka operacijoms su sveikaisiais (taip pat slankaus kablelio ar dešimtainiais) skaičiais S.Maciulevičius
Duomenų žodžio ilgio didinimas • Antrasis žingsnis – 8 bitai • Kokią įtaką turėjo toks žodžio ilgis? • sveikieji skaičiai arba 8 bitų arba 16 (dviejų baitų) • registrų ilgis –16 bitų • komandų ilgis – m baitų • adresavimo galimybės – 64 KB (adreso ilgis –16 bitų) • paprogramių biblioteka operacijoms su dviejų baitų sveikaisiais (taip pat slankaus kablelio ar dešimtainiais) skaičiais S.Maciulevičius
Duomenų žodžio ilgio didinimas • Trečiasis žingsnis– 16 bitų • Kokią įtaką turėjo toks žodžio ilgis? • sveikieji skaičiai - iki16 bitų • registrų ilgis –16 bitų • komandų ilgis – m baitų • adresavimo galimybės – 64 KB (adreso ilgis –16 bitų) • atsiranda koprocesoriai operacijoms su slankaus kablelio ir dešimtainiais skaičiais S.Maciulevičius
Duomenų žodžio ilgio didinimas • Ketvirtasis žingsnis – 32 bitų • Kokią įtaką turėjo toks žodžio ilgis? • sveikieji skaičiai – iki32 bitų • registrų ilgis – 32 bitų • komandų ilgis – m baitų • adresavimo galimybės – 4 GB (adreso ilgis –32 bitų) • atsiranda virtualiosios atminties palaikymas S.Maciulevičius
Duomenų žodžio ilgio didinimas • Penktasis žingsnis – 64 bitai • Kam to reikėjo? Pagrindinė priežastis – adresavimo ribotumas 32 bitų procesoriuose • 232 = 4 G. 4 GB nebepakako ne tik serveriams, bet ir galingesnėms darbo stotims • Slankaus kablelio ar dešimtainiams skaičiams niekas nepasikeitė S.Maciulevičius
Koprocesoriai • Intel 8086, 80286 ir 80386 laikais plokštėse buvo dar vienas lizdas, skirtas aritmetiniam koprocesoriui • Koprocesorius buvo skirtas operacijoms su slankaus kablelio ir dešimtainiais skaičiais • Koprocesoriumi jis vadinamas todėl, kad jis savarankiškai dirbti negalėjo – komandas išrinkdavo pagrindinis procesorius, o koprocesorius, pastebėjęs magistralėjejam skirtą komandą, ją paimdavo ir vykdydavo S.Maciulevičius
Būsenos bitai CPU Koprocesorius AD AD Atmintis Procesorius ir koprocesorius S.Maciulevičius
Mikroprograminiai procesoriai • Jie buvo populiarūs prieš tris dešimtmečius • Mikroprogramavimą kaip procesoriaus projektavimo pagrindą pasiūlė M.Wilkes dar 1951 m., tačiau šis metodas buvo pritaikytas kur kas vėliau • Mikroprograma – komandos vykdymo aprašas, kai operuojama atskirų procesoriaus komponenčių valdymo signalais (mikrooperacijomis) ir loginėmis sąlygomis, informuojančiomis apie operacijos eigą • Mikroprograma – tai tarsi programa žemesniame lygyje, aprašanti komandos realizaciją • Kai kurių komandų mikroprogramos buvo vykdomos kelis šimtus ciklų S.Maciulevičius
Mikroprograminiai procesoriai • Kuo ypatinga tokia procesorių realizacija? • paprastesnis projektavimo procesas • lengva realizuoti bet kokio sudėtingumo operacijas • patogu atlikti derinimo ir modifikavimo darbus • galima keisti komandų sistemą, pritaikant procesorių specialiems taikymams • pertraukčių apdorojimas galimas tiek komandų, tiek ir mikrokomandų lygyje • komanda realizuojama dideliu žingsnių skaičiumi • buvo sukurti moduliniai ir sekcijiniai mikroprocesoriai S.Maciulevičius
Spartinančioji atmintis (kešas) Atminties spartai vis labiau atsiliekant nuo procesorių darbo spartos, į procesorius buvo įkelta spartinančioji atmintis [kešas] CPU Kešas Pagrindinė atmintis S.Maciulevičius
Kešo lygiai • Sparčiausias - L1 kešas; jo vėlinimas – 2-4 ciklai • Kiek mažesnės spartos – L2 kešas; jo vėlinimas – 5 (lėtesniuose procesoriuose) -20 ciklų (sparčiuose procesoriuose) • Lėčiausias – L3 kešas; jo vėlinimas – 20-30 ciklų vidiniuose procesoriuose; išoriniuose – dar didesnis • Palyginimui pasakysime, kad pagrindinės atminties išrinkimo laikas – 200-300 procesoriaus ciklų • Šiuolaikiniuose kelių branduolių procesoriuose L3 (kartais ir L2) kešas būna bendras, kiti - atskiri S.Maciulevičius
FĮ skaičiaus didinimas • Pirmieji mikroprocesoriai turėjo vieną funkcinį įtaisą (FĮ), kuris realizavo operacijas su sveikaisiais skaičiais, loginėmis reikšmėmis, perėjimo komandas • Operacijos su slankaus kablelio ar dešimtainiais skaičiais buvo realizuojamos programiniu būdu (paprogramėmis, įeinančiomis į specialią biblioteką) • Operacijoms su slankaus kablelio ir dešimtainiais skaičiais kuriami koprocesoriai S.Maciulevičius
FĮ skaičiaus didinimas • Po kurio laiko, kai padidėjęs integracijos lygis įgalino smarkiai padidinti kristale sutalpinamų tranzistorių skaičių, į procesoriaus vidų buvo įdėtas antrasis funkcinis įtaisas - koprocesorius • Netrukus procesoriaus viduje atsirado trečiasis funkcinis įtaisas, vėliau FĮ skaičius toliau buvo didinamas, o šie FĮ imti specializuoti • Kelis funkcinius įtaisus turintys procesoriai vadinami superskaliariniais, o kiek kitokia jų atmaina – labai ilgo komandos žodžio (VLIW) procesoriais S.Maciulevičius
Skirstymo įtaisas Komandos (iš atminties ar kešo) IU1 IU2 FPU BPU Superskaliariniai procesoriai • Superskaliariniuose procesoriuose komandas į funkcinius įtaisus nukreipia specialios schemos, vadinamos skirstymo įtaisu IU – sveikųjų skaičių Įtaisas FPU – slankaus kablelio skaičių įtaisas BPU – perėjimo įtaisas S.Maciulevičius
VLIW procesoriai • Labai ilgo komandos žodžio (VLIW) procesoriuose už tai atsakingas ne pats procesorius, o kompiliatorius, kuris iš anksto numato, kurios komandos gali būti vykdomos lygiagrečiai (skirtinguose FĮ) ir jas apjungia į “labai ilgą” komandos žodį (jo ilgis būna 128 ar 256 bitai – tai atitinka 4 ar 8 įprastas komandas) S.Maciulevičius
K1 K1 K2 K2 K3 K3 K4 K4 VLIW procesoriai Komandos (iš atminties ar kešo) Komandos (iš atminties ar kešo) Konkretus FĮ komandą iš vienos ar kelių pozicijų Pozicija gali būti ir tuščia (NOOP) LSU IU2 IU2 FPU BPU BPU S.Maciulevičius
Lygiagretus komandų vykdymas • Pradžioje procesoriai programą vykdė nuosekliai – nauja komanda būdavo išrenkama po to, kai buvo baigiamas ankstesnės vykdymas • Vėliau procesoriuose buvo realizuotas konvejerio darbo principas, kai nauja komanda būdavo išrenkama nelaukiant ankstesnės vykdymo pabaigos • Kai procesoriuose atsirado keli FĮ, lygiagrečiai galėjo būti vykdomos kelios komandos (kiekviena savame FĮ; pridėkime ir konvejerizavimą) S.Maciulevičius
Gijų ir branduolių skaičiaus didinimas • Sklandų procesoriaus darbą trikdo perėjimo komandos, kreipiniai į atmintį, todėl tai riboja lygiagretaus komandų vykdymo galimybes • Pentium 4 procesoriuose buvo realizuotas gijų išskyrimas ir dviejų gijų vykdymas; tai pavadinta hipergijų mechanizmu (HyperThreading) • Padidėjęs integracijos lygis įgalino kristale realizuoti du (vėliau – keturis, ...) branduolius, taip dar padidinant lygiagretaus užduočių vykdymo galimybes S.Maciulevičius
Procesorių spektras • Procesorių spektras labai platus – jie naudojami ne tik kompiuteriuose (pradedant superkompiuteriais ir baigiant staliniais ar nešiojamais), bet ir mobiliuosiuose įtaisuose (delninukuose, mobiliuose telefonuose, ...) • Papildyti valdymui reikalingomis schemomis, procesoriai mikrovaldiklių pavidalu naudojami buitiniuose prietaisuose, automobiliuose ir t.t. S.Maciulevičius
Procesoriai serveriams • Serveriams skirti procesoriai– galingiausi • Jie dirba maksimaliu tuo metu pasiekiamu dažniu, jų FSB magistralė – taip pat • Be to, jie projektuojami taip, kad su minimaliomis papildomomis schemomis galėtų būti statomi į plokštę po du, keturis ir pan. • Ypatingas dėmesys skiriamas jų testavimui ir patikimumui, siekiant palaikyti darbingumą 24/7 režimu S.Maciulevičius
Procesoriai staliniams kompiuteriams • Kol kas plačiausiai naudojamų kompiuterių klasei skirti procesoriaigana “margi” – nuo pigiausių, skirtų ekonominės klasės kompiuteriams, iki galingiausių, skirtų entuziastams ir žaidimų kompiuteriams • Kainų žirklės gana didelės. Pateiksime Intel procesorių pavyzdį. 2010m. www.kainos.ltduomenimis INTEL M360J Celeron 1.4 GHz 400FSB 1MB kainavo 100 Lt, Intel Corei7-975 3.33 GHz, L2 - 8 MB – 3288 Lt S.Maciulevičius
Procesoriai nešiojamiems kompiuteriams • Šiai kompiuterių klasei projektuojami procesoriaiišsiskiria mažesnėmis energijos sąnaudomis ir kiek mažesniu našumu • Jų kainų žirklės taip pat gana didelės. Vėl pateiksime Intel procesorių pavyzdį. 2009 m. www.kainos.ltduomenimis Intel Celeron M 540 1.86GHz 533/1MB kainavo 232 Lt.Core 2 Duo T9800 2.93GHz, 6 MB L2, FSB 1066 MHz - apie 1430 Lt S.Maciulevičius
Procesoriai mobiliesiems Interneto įtaisams • Šiems įtaisams skirti procesoriaiišsiskiria ypač mažomis energijos sąnaudomis ir mažesniu našumu • Jie pradėti gaminti neseniai – 2008 metais. • Pirmieji plačiau paplitę procesoriaiyra Atom (Intel) ir Nano (VIA) • Įdomu, kad Atom jau naudojamas ir nešiojamuose kompiuteriuose S.Maciulevičius
Grafikos procesoriai • Taip vadinami labai našūs procesoriai, skirti grafinių vaizdų apdorojimui (transformavimui, apšvietimo efektų taikymui, paviršių formavimui, ...) • Jie įstatomi į grafikos plokštes arba integruojami į valdymo schemų rinkinius (chipsets) • Fizinius efektus, kurie reikalingi dirbant su vaizdais, grafikos procesorius apskaičiuoja žymiai sparčiau, nei tai daro centrinis procesorius S.Maciulevičius
Kiti procesoriai • Procesorius gamina ir kitos firmos - Philips, Marvel, Texas Instrument, Samsung, Freescale, ... • Šie procesoriaiskirti ne kompiuteriams (nors kai kuriuos iš jų siūloma naudoti Interneto kompiuteriuose – nettops ir netbooks), o telefonams, valdymo pultams, automobiliams, televizoriams ir kitiems įtaisams S.Maciulevičius
Kompiuterių architektūra ir operacinės sistemos PROCESORIŲ NAŠUMO DIDINIMAS S.Maciulevičius
Bendrosios procesorių našumo didinimo priemonės • technologijos normos mažinimas, • superskaliariškumas, • superkonvejerizacija, • specializuoti funkciniai įtaisai (MMX, SSE, …), • registrų pakeitimas (register renaming), • komandų vykdymo eilės tvarkos pakeitimas, • perėjimų spėjimas (branch prediction), • lygiagretus dviejų šakų vykdymas (predication), • … S.Maciulevičius
Bendrosios procesorių našumo didinimo priemonės • … • kristale esančios atminties talpos didinimas ir integruotos spartinančios atmintys, • išankstinis įkrovimas (speculation), • daugelio gijų skaičiavimų palaikymas (multithreading), • sudėtingų sistemų realizacija viename kristale (SOC - Systems On the Chip). S.Maciulevičius
Technologijos normos mažinimas Technologijos norma apsprendžia kristalo plotą ir faktiškai riboja jame realizuojamo įtaiso sudėtingumą Jei pirmasis asmeniniams kompiuteriams skirtas Intel 16 bitų mikroprocesorius buvo gaminamas naudojant 3 mikronų technologiją, tai dabar naudojama 0,045 ir 0,032mikrono technologija Technologijos normos sumažinimasbeveik100 kartų sudaro galimybę tame pačiame kristalo plote sutalpinti 8000 kartų sudėtingesnes schemas ir padidinti jų darbo spartą S.Maciulevičius
Komandų kešas (8 KB) BTB Išankstinio išrinkimo buferis FPU Registrų stekas ALU U-pipe ALU V-pipe + BIU (Mag. Interf. Įt.) Registrai Duomenų kešas (8 KB) Superskaliariškumas Pentiume įtaisyti du sveikųjų skaičiųALU ir vienas slankaus kablelio skaičių(FPU) įtaisas: Praktiškai visi šiuolaikiniai kompiuteriams skirti procesoriai yra superskaliariniai S.Maciulevičius
Superkonvejerizacija Dauguma procesorių turi dviejų – penkių pakopų konvejerius. Siekiant sumažinti takto trukmę, pakopų skaičius didinamas ir viršija 10 (juo daugiau pakopų, tuo kiekviena iš jų paprastesnė, todėl gali būti įvykdyta per trumpesnį laiką). Tokie procesoriai vadinami superkonvejerizuotais. Pentium konvejeris turėjo tik 5 pakopas, AMDAthlon sveikųjų skaičių įtaiso konvejeris -10pakopų, FPU - 15pakopų, o Pentium 4 konvejeris – net 20. Čia naudojamas terminas – hiperkonvejeris. S.Maciulevičius
Registrų pakeitimas Tegul programoje turime tokias dvi komandas: k1: add ..., r2, ...; [... (r2) + (…) ] k2: mul r2, ..., …; [r2 (...) + (…) ] Antroji komanda pakeičia registro r2 turinį nauju. Aišku, kad komandos k2 negalima vykdyti iki tol, kol k1 nepanaudojo buvusio jo turinio. Ši situacija vadinama konfliktu “įrašymas po skaitymo” (WAR – write-after-read). S.Maciulevičius
Registrų pakeitimas Jei procesorius turi “atsarginių” registrų, vieną iš jų (pavyzdžiui, r33) panaudokime komandoje k2: k1: add ..., r2, ...; [... (r2) + (…) ] k2: mul r33, ..., …; [r33 (...) + (…) ] Taip WAR konfliktas bus išspręstas. Aišku, kad ir paskesnės komandos turi kreiptis į r33vietoj r2 (kol registro pakeitimas galioja). Terminas “registrų pakeitimas” (register renaming) įvestas dar1975 m. S.Maciulevičius
Komandų vykdymo eilės tvarkos pakeitimas Superskaliariniuose procesoriuose vienu metu gali būti pradėtos vykdyti kelios komandos. Kadangi kompiliatoriaus suformuota komandų seka programoje ne visuomet bus palanki kelių funkcinių įtaisų aprūpinimui darbu, programos vykdymo metu šiuolaikiniuose procesoriuose esančios specialios schemos analizuoja didelį vykdymo eilėje laukiančių komandų skaičių ir dinamiškai parenka vykdymui tas komandas, kurios konkrečiu momentu galėtų būti vykdomos, nors prieš jas eilėje yra kitos komandos. S.Maciulevičius
Perėjimų krypties spėjimas Konvejerizuotame (ir ypač –superkonvejerizuotame) procesoriuje sutikus perėjimo komandą, tenka pasirinkti, iš kurios krypties turi būti išrenkamos paskesnės komandos konvejeriui užpildyti. Kadangi perėjimo kryptis, priklausanti nuo tikrinamos sąlygos reikšmės, paaiškėja kiek vėliau, specialios schemos “nuspėja” perėjimo kryptį. Jei spėjimas nepasitvirtina, tenka stabdyti konvejerį ir jį užpildyti komandomis iš tikrosios krypties. Juo tikslesnis perėjimų spėjimas, tuo mažiau laiko sugaištama konvejeriui perkrauti. S.Maciulevičius
Kristale esančios atminties talpos didinimas Didėja registrų skaičius: • pirmuosiuose procesoriuose – 8-16 registrų • RISC procesoriuose – 32 registrai • Itanium procesoriuose – 128 registrai • papildomi registrai pakeitimui Didėja spartinančiosios atminties (kešo), esančios procesoriuje, talpa: • pirmuosiuose procesoriuose – 8 KB • vėlesniuose procesoriuose L1 kešas – 2x8, 2x16, 2x32, 2x64 KB • L2 kešas – 64, 128, 256, 512 KB,... S.Maciulevičius