490 likes | 846 Views
KOMPIUTERIŲ ARCHITEKTŪRA. Doc. Stasys Maciulevičius Kompiuterių katedra sta sys. ma ciulevicius @ktu.lt. Ankstesnėje paskaitoje. I š orin ė a t mintis C D DVD Naujieji DVD tipai Magistralės HyperTransport, QPI PCI Express USB Magistralės arbitražas Valdymo schem ų rinkiniai
E N D
KOMPIUTERIŲ ARCHITEKTŪRA Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt
Ankstesnėje paskaitoje • Išorinė atmintis • CD • DVD • Naujieji DVD tipai • Magistralės • HyperTransport, QPI • PCI Express • USB • Magistralės arbitražas • Valdymo schemų rinkiniai • Išorinių įtaisų sąsajos • IDE, SATA • SCSI
Šioje paskaitoje • Pertrauktys • Pertraukčių tipai • Pertraukčių apdorojimas • Įvestis ir išvestis • Įvesties ir išvesties problemos • Periferinio įtaiso kontroleris • Programa valdomi duomenų mainai • Tiesioginiai duomenų mainai
Pertrauktys Procesoriui dirbant savo darbą (vykdant programos komandas) tenka kreipti dėmesį ir į kitų kompiuterio komponentų darbą Galima tai atlikti taip – reguliariai paklausti, ar kuris nors komponentas nereikalauja dėmesio ar jame nesusidarė situacija, reikalaujanti dėmesio ir atitinkamo sprendimo Toks reguliarus tikrinimas vadinamas apklausa arba polingu Tačiau kur kas tikslingiau naudoti signalus, kuriais kompiuterio komponentai patys informuotų apie juose susidariusią situaciją, reikalaujančią dėmesio Tokie signalai vadinami pertrauktiessignalais
Procesorius Pagrindinėprograma Pertraukties signalai Pertraukiančios (pertrauktį apdorojančios) programos Aplinka Pertrauktys
Pertraukčių tipai • Išorinės (asinchroniškos procesui): • techniniai gedimai (įtampa, …) • laikrodis • kiti procesai ar procesoriai • procesai išoriniuose įtaisuose • vartotojas, operatorius • Vidinės (sinchroniškos procesui): • adresavimo klaidos • operandų klaidos (/0, …) • operacijos klaidos (perpildymas, …) • negalima operacija • režimo pakeitimas
Pertraukčių tipai • Programinės (sinchroniškos procesui): • programinės (pertr. sistemai tikrinti) • derinimo (po kiekvienos komandos - analizė) • Vykdymo variantai: • po komandos (dažniausiai) • komandoje (rečiau, kai negalima užbaigti): • puslapio klaida • ilgai trunkančioms komandoms • Apdorojama: • mikroprograma (anksčiau) • paprograme (dažniausiai)
Pertrauktys: terminai • Aparatinės pertrauktys – iššaukiamos elektriniais signalais procesoriaus įėjimuose. • maskuojamos (įėjimas INTR) – reakcija priklauso nuo IF reikšmės • nemaskuojamos (įėjimas NMI) • Programinės pertrauktys – iš esmės tai speciali priemonė tam tikroms procedūroms iškviesti. • Išskirtinės situacijos (Exceptions) – trijų tipų ypatingi atvejai: • klaidos (faults) – aptinkamos prieš vykdant komandą (pvz., page fault) • “spąstai” (traps) – aptarnaujamos įvykdžius komandą (pvz., programinės pertrauktys) • avarinės situacijos (aborts) – neaišku, kuri komanda kalta
Pagr.progr. Signalas Pertr. apdor. Reakcijos Perjungimo laikas laikas Pertrauktys • Parametrai: • įėjimo signalų skaičius • reakcijos laikas • perjungimo laikas • gylis
2 3 1 1 2 3 2 2 1 1 Pertraukčių lygiai Pertraukčių prioritetai Aptarnavimo tvarka: Užklausos Vieno lygio sistema Kelių lygių sistema 3 Čia 1 pertrauktis turi žemiausią prioritetą, 3 - aukščiausią
Pertrauktys • Apdorojimo procedūra: • pertraukties signalo priėmimas • pertraukties atpažinimas • būsenos įsiminimas • pertrauktį apdorojančios programos vykdymas • būsenos atstatymas
Išorinių pertraukčių kaukė Įvedimo / išvedimo kaukė Valdymo režimas Kontrolės schemų pertraukties kaukė Laukimas / skaičiavimas Uždavinys / supervizorius Kanalų Programos Pertraukties kaukėraktas kodas 0 5 6 7 8 11 12 13 14 15 16 31 Sistemos kaukė Būsena • Progr. • ILC CC pertr. Komandos adresas • kaukė 32 33 34 35 36 39 40 63 Sistemos kaukė: [0] - multipl. kan. kaukė [1-5] - selekt. kan. kaukė [6] - >5 kan. kaukė Programinių pertraukčių kaukė: [36] - sveikųjų skaičių perpildymas [37] - dešimtainių skaičių perpildymas [38] - eilės išnykimas [39] - mantisės išnykimas Rezultato požymis Komandos ikgio kodas PSW (IBM/360)
CC formavimas IBM/360 CC reikšmės formavimo pavyzdys: Komanda 00 01 10 11 Kodų sudėtis =0,C=00,C=0 =0,C0 0,C0 Pusžodžių sudėtis=0 <0 >0 Perpild. IR =00 - - Sąlyginis perėjimasn e k e i č i a m a Palyginimas =Op1<OP2Op1>OP2
Pertraukiančioji programa 1 2 3 4 5 Pertrau-kiamoji programa Senieji PSW Būsenos išsaugojimas Programa Būsenos atstatymas PSW registras P.užklausa (2 klasės) 1 2 3 4 5 Pertrauk-toji programa Naujieji PSW 3 5 1 4 2 6 Pertraukčių realizacija IBM/360
RD WR A0 CS CAS0 CAS1 CAS2 SP/EN Pertraukčių kontroleris (Intel) INTA INT Duom.magistr.buferis Valdymo logika D7 - D0 Skait./ Įrašymologika IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 Aptarn.pertr.regist- ras (ISR) Prioritetoschema Pertr. užklaus.regist-ras (IRR) Kaskadinio jungimo valdymas Pertr.kaukės registras (IMR)
Adreso magistralė Duomenų magistralė Adreso selektorius ĮP CS A0 INT D7-D0 WR RD 8259ACAS INTA IR0 IR7 IOWC IORC INTA Kaskadiniam jungimui Pertraukčių įėjimai Pertraukčių kontroleris
Vedamieji (Slaves) 8259A IR0 IR1 INT IR2 … IR7 CAS IR0 IR1 INT IR2 … IR7 CAS IR0 IR1 INT IR2 … IR7 CAS IR0 IR1 INT IR2 … IR7CAS Išor. įtaisas 00 Išor. įtaisas 08 Išor. įtaisas 56 Išor. įtaisas 57 Išor. įtaisas 09 Išor. įtaisas 01 Vedantysis (Master) 8259A Išor. įtaisas 07 Išor. įtaisas 15 Išor. įtaisas 63 Procesorius NMI INTR Pertraukčių kontrolerio naudojimas
IR0 IR1 INT IR2 … IR7 CAS Išor. įtaisas 10 Išor. įtaisas 11 Išor. įtaisas14 Vedantysis 8259A Procesorius Vedamasis 8259A NMI INTR Išor. įtaisas 00 IR0 IR1 INT IR2 IR3 IR4 IR5 IR6 IR7 CAS Išor. įtaisas 02 Išor. įtaisas 01 Išor. įtaisas 03 Išor. įtaisas 09 Pertraukčių kontrolerio naudojimas AT PC/XT kompiuteriuose buvo tik viena mikroschema 8259A PC/AT kompiuteriuose buvo 2 mikroschemos 8259A, sujungtos tokiu būdu:
Modernus pertraukčių kontroleris Multiprocesorinėms sistemoms buvo sukurti modernūspertraukčių kontroleriai(APIC - advanced programmable interrupt controllers), kurie turėjo padidinti pertraukčių apdorojimo efektyvumą tokiose sistemose Intel APIC sistemose yra du komponentai - lokalus APIC (LAPIC) ir I/O APIC
Modernus pertraukčių kontroleris LAPIC valdo visas savojo procesoriaus išorines pertrauktis SMP sistemoje. Be to, jis gali priimti ir generuoti tarpprocesorines pertrauktis (IPI) tarp LAPIC LAPIC gali palaikyti iki 224 pertraukčių vektorių iš I/O APIC. Vektoriai, kurių numeriai 0 - 31, yra rezer-vuoti pertraukčių apdorojimuix86 procesoriuose I/O APIC turi specialią lentelę, kuri naudojama iš I/O magistralių gautoms pertrauktims nukreipti į vieną ar kelis lokalius APIC
Pentium pertrauktys ir išskirtinės situacijos Pertraukties (vektoriaus) numeris – 8 bitų kodas, identifikuojantis pertraukties vektorių. Pertraukties vektorius – įrašas pertraukčių deskriptorių lentelėje IDT, kuris nurodo pertrauktį aptarnaujančią programą (paprogramę). 0-31 numeriais pažymėtas pertrauktis atpažįsta CPU, o 32-255 numeriais pažymėtos pertrauktys atpažįstamos tik programiškai
Įvesties ir išvesties problemos Galimybė prijungti įvairius PĮ Lygiagretus įvesties ir išvesties sistemos darbas su procesoriumi Maksimaliai supaprastintas įvesties ir išvesties procesų programavimas Reakcija į įvairias kritines situacijas bei iškilusias problemas
Problemų sprendimo keliai PĮ moduliškumas (konstruktyvus išbaigtumas, paprastas prijungimas) Unifikuoti duomenų formatai Unifikuota sąsaja (interfeisas) Unifikuoti komandų formatai ir tipai
Kompiuteris ir jo I/O įtaisai Pertraukčių signalai CPU Kešas Įvesties ir išvesties magistralė I/O kontroleris I/O kontroleris I/O kontroleris Pagrindinė atmintis Grafikos išvesties įtaisas MD MD LAN
Pagrindinės sąvokos periferinis įtaisas (I/O įtaisas) I/O magistralė I/O kanalas I/O kontroleris I/O sąsaja (interfeisas) programa valdomi duomenų mainai tiesioginiai mainai su atmintimi
Periferinio įtaiso kontroleriofunkcijos valdymas ir sinchronizavimas ryšis su CPU ryšis su periferiniu įtaisu adreso atpažinimas komandų dekodavimas informacijos apie būseną pateikimas duomenų perdavimas duomenų buferizavimas klaidų kontrolė
Periferinių įtaisų adresavimas a) atskiros adresų b) persidengiančios sritys (PDP) adresų sritys 0000 000000 RAM RAM I/O prievadai 00FF 777400 777777 FFFFFFFF I/O prievadai
Periferinių įtaisų adresavimas ir I/O komandos Komandos: a) move - universali (ir kreipiantis į atmintį, ir į PĮ); vieta atskiriama pagal adreso reikšmę b) load/store - kreipiantis į atmintį, in/out - kreipiantis į PĮ; vieta atskiriama pagal magistralės signalus
Prievadai (portai) Įvesties prievadas –bet koks duomenų šaltinis, kuris gali būti išrinktas vykdant įvesties komandą. Išvesties prievadas – bet koks duomenų imtuvas, kuris gali būti išrinktas vykdant išvesties komandą. Prievadai adresuojami per adreso magistralę (ar jos dalį).
Prievadai (portai) A magistralė į periferinį įtaisą selektorius 7 0 L Išvesties prievadas & išrinkimas D magistralė 7 0 tribūvis buferis išvesti & įvesti 7 0 Įvesties prievadas L iš periferinio įtaiso
Duomenų mainai su PĮ Atsižvelgiant į persiunčiamų duomenų kiekį bei PĮ darbo spartą, pasirenkamas vienas iš dviejų mainų tipų: a) programa valdomi duomenų mainai – kai perduodama mažai duomenų ir kreipiantis į atmintį, ir PĮ darbo sparta nedidelė b) tiesioginiai duomenų mainai - kai perduodamų duomenų apimtis didelė ar PĮ darbo sparta didelė
Programa valdomi duomenų mainai Šiuo atveju mainus valdo procesorius, tam naudodamas įvesties ir išvesties komandas IN ir OUT Priklausomai nuo įtaiso tipo ir jo darbo ypatumų skiriami trys atvejai: a) besąlyginiai mainai, b) sąlyginiai mainai, c) mainai pagal pertraukties signalą
Programa valdomi duomenų mainai a) besąlyginiai mainai b) sąlyginiai mainai Pasi-rengęs? in/out port Ne Taip in/out port
Programa valdomi duomenų mainai c) mainai pagal pertraukties signalą Mainų parengimas Pertr. sistemos parengimas Pagrindinė programa INTR Mainų papro-gramė INTR ...
Tiesioginiai duomenų mainai Tiesioginiais duomenų mainais vadinamas toks duomenų įvedimas ir išvedimas, kuris vyksta tarp sistemos pagrindinės atminties ir įvesties ar išvesties įtaisų, nedalyvaujant (tiesiogiai) procesoriui Visas duomenų mainų valdymo funkcijas atlieka specialus įtaisas, kurį vadiname kanalu (klasika – didieji kompiuteriai) ar tiesioginių mainų su atmintimi kontroleriu (mikroprocesorinėse sistemose)
Tiesioginiai duomenų mainai Procesorius parengia duomenų mainus, nusiųsdamas reikalingą informaciją (duomenų adresą atmintyje, baitų skaičių, operacijos tipą ir t.t.) kanalui ar kontroleriui, parengia pertraukčių sistemą ir toliau dirba kitą darbą Bet kuriuo pagrindinės programos vykdymo momentu, kai periferinis įrenginys pasiruošęs tiesioginiams duomenų mainams, kanalas siunčia tiesioginių mainų reikalavimo signalą, kadangi jam reikalinga magistralė (vienam žodžiui perduoti)
Tiesioginiai duomenų mainai Procesorius leidžia atlikti duomenų mainus (perduoti žodį), leisdamas valdyti magistralę kanalui ar kontroleriui; tai vadinama ciklo užėmimu Duomenų mainų procesas tęsiasi tol, kol perduodamas nustatytas baitų skaičius (duomenų masyvo ilgis) Pabaigus įvesti ar išvesti nustatyto ilgio duomenų masyvą, kanalas siunčia pabaigos signalą į PĮ bei pertraukties signalą į CPU, informuodamas juos apie duomenų mainų pabaigą
Tiesioginiaiduomenų mainai CPU parengia mainus, progr. TKA kontrolerį CPU vykdo kitą procesą TKA valdo mainus tarp disko ir atminties Cik- lų už- ėmi- mas ... INTR
Klasika: IBM kanalai Procesorius Pagrindinė atmintis Kanalas I/O kontroleris
Pagrindinės kanalo funkcijos nurodyti duomenų masyvo adresą atmintyje; nurodyti duomenų masyvo ilgį; formuoti (nuosekliai) atminties adresus; skaičiuoti perduodamų duomenų kiekį; nustatyti operacijos pabaigą; buferizuoti duomenis; keisti duomenų formatus (pagal PĮ ir Atm); įgalinti praleisti atskirus duomenų srauto gabalus; minimizuoti procesoriaus įsikišimą, kai sudaromos komandų grandinėlės; formuoti pertraukties užklausimo signalą; perduoti informaciją apie periferinio įtaiso būseną.
Tiesioginių mainų su atmintimi kontroleris (8237A) Duomenų magistralės buferis 0 kanalas D DREQ0 DACK0 CAR (16) BAR (16) CWR (16) A WCR (16) MR (6) Kontr. vald. blokas 1 kanalas DREQ1 DACK1 TR(16) Režimųvald. blokas DREQ2 DACK2 2 kanalas Valdymo signalai CR(8) SR(8) RR(4) 3 kanalas DREQ3 DACK3 MASK(4)
Registrai Registrai: CR – Command Register CAR – Current Address Register SR – Status Register BAR – Basic Address Register SR – Request Register CWR – Current WordCount Register MASK – Mask Register WCR – Basic WordCount Register
Informacijos adresavimas keše Dviejų krypčių kešo dydis - 256 KB, jo eilutės ilgis - 32 baitai. Vietai eilutėje nurodyti reikės log232= 5 bitų. Eilutės numeriui (indeksui) nurodyti reikės log2(256K/(2x32))= log24K= 12 bitų. Tegui lieka 32 – 5 – 12 = 15 bitų Atminties adreso struktūra: 31 17 16 5 4 0
Informacijos adresavimas keše Pakeiskime krypčių skaičių: Aštuonių krypčių kešo dydis - 256 KB, jo eilutės ilgis - 32 baitai. Vietai eilutėje nurodyti reikės log232= 5 bitų. Eilutės numeriui (indeksui) nurodyti reikės log2(256K/(8x32))= log21K= 10 bitų. Tegui lieka 32 – 5 – 10 = 17 bitų Atminties adreso struktūra: 31 15 14 5 4 0
Loginis adresas iš procesoriaus Loginio puslapio numeris Fizinio puslapio numeris Baito poslinkis Baito poslinkis Miss Sparčiosios transliacijos buferis Puslapių lentelė Įkrauti TLB Hit Puslapio atmintyje nėra OR Fizinis adresas į atmintį Puslapių mainai su disku Sparčiosios transliacijos buferis
Informacijos adresavimas TLB Keturių krypčių TLB dydis - 32 įrašai, VA puslapio ilgis - 2 Kbaitai. Vietaipuslapyje nurodyti reikės log22KB = 11 bitų. Tai turime įvertinti aiškindamiesi atminties adreso struktūrą, nes šie bitai nėra transliuojami (žr. ankstesnę skaidrę) Eilutės numeriui (indeksui) nurodyti reikės log2(32/2)= log216= 4 bitų. Tegui lieka 32 – 11 – 4 = 17 bitų
Informacijos adresavimas TLB Taigi: • Vietaipuslapyje nurodyti - 11 bitų • Indeksui nurodyti - 4 bitų • Tegui lieka 32 – 11 – 4 = 17 bitų Atminties adreso struktūra: 31 15 14 11 10 0 Įrašo struktūra: ??? 38 37 21 20 0