730 likes | 919 Views
KOMPIUTERIŲ ELEMENTAI ir ARCHITEKTŪRA. ŠIUOLAIKINIŲ KOMPIUTERIŲ ARCHITEKTŪRA. Doc. Stasys Maciulevičius Kompiuterių katedra sta sys. ma ciulevicius @ktu.lt. Ankstesnėje paskaitoje. Grafin ė plokštė Grafinė atmintis Grafinės atminties tipai Grafikos procesorius Įterptinė g rafik a
E N D
KOMPIUTERIŲ ELEMENTAI ir ARCHITEKTŪRA ŠIUOLAIKINIŲ KOMPIUTERIŲ ARCHITEKTŪRA Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt
Ankstesnėje paskaitoje • Grafinė plokštė • Grafinė atmintis • Grafinės atminties tipai • Grafikos procesorius • Įterptinė grafika • SLI ir CrossFire • Skaičiavimų spartinimas • Intel Larrabee • Bendrosios paskirties GPU • Nvidia CUDA
Šioje paskaitoje • Pertrauktys, jų tipai • Pertraukčių apdorojimas • Klasika - IBM • Intel pertraukčių kontroleris • Įvesties ir išvesties problemos • Periferinio įtaiso kontroleris • Prievadai (portai) • Programa valdomi duomenų mainai • Tiesioginiai duomenų mainai • Kanalas. TKA • Kompiuterių platformos • Mobiliųjų kompiuterių platformos
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
Pertrauktys Procesorius Pagrindinėprograma Pertraukties signalai Pertraukiančios (pertrauktį apdorojančios) programos Aplinka
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) Į turinį
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
Ar dažnai būna pertrauktys? VAX 8800 kompiuterio, kuriame buvo naudojamas laiko skirstymo režimas, darbo analizė parodė:
Pertrauktys Pagr.progr. Signalas Pertr. apdor. Reakcijos Perjungimo laikas laikas • Parametrai: • įėjimo signalų skaičius • reakcijos laikas • perjungimo laikas • gylis
Pertraukčių lygiai 2 3 1 1 2 3 2 2 1 1 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
Įtaiso kontroleris arba kita aparatūra formuoja pertraukties signalą Pertraukties apdorojimas Išsaugoma kita svarbi informacija apie proceso būseną Procesorius apdoroja pertrauktį P R O G R A M I N Ė Į R A N G A Atstatoma informacija apie pertraukto proceso būseną Procesorius baigia vykdyti pradėtą komandą Atstatomas programų skaitiklio turinys ir proceso būsena (PSW) A P A R A T Ū R A Procesorius perduoda pertr. patvirtinimo signalą Procesorius į steką įrašo programų skaitiklio ir PSW reikšmes Procesorius nustato PC pagal pertraukties vekt. Į turinį
PSW (IBM/360) 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
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
Pertraukčių realizacija IBM/360 • PSW adresai: • Pertraukties tipas “Senieji” “Naujieji” • Išorinės 24 88 • Kreipinys į supervizorių 32 96 • Programinės 40 104 • Aparatinės kontrolės 48 112 • Įvesties ir išvesties 56 120
Pertraukčių realizacija IBM/360 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 Į turinį
Pertraukčių kontroleris (Intel) RD WR A0 CS CAS0 CAS1 CAS2 SP/EN 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)
Pertraukčių aptarnavimo valdymas • Procesorius gali nurodyti, kaip pertraukčių kontroleris aptranaus pertrauktis: • Fiksuoti prioritetai – pertraukčių užklausos aptarnaujamos pagal įėjimų eilės tvarką (nuo IR0 iki IR7; aukščiausias – IR0); šis režimas nustatomas automatiškai • Cikliniai prioritetai – aptarnautas įtaisas gauna žemiausią prioritetą toje grupėje • Speciali kaukė – kai kurių įtaisų pertraukčių užklausos gali būti ignoruojamos.
Cikliškas prioritetų keitimas IS7 IS6 . . . IS3 IS0 Žem. . . . Aukšč. Aukšč. Žem. 0 1 1 0 1 0 0 0 7 6 5 4 3 2 1 0 3 2 1 07 6 5 4 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 • Tegul aptrarnavimo laukia tokios pertrauktys: • Prioritetai: • Aptarnavus IR3 (jis turi aukščiausią pripritetą tarp laukiančių),visų įtaisųprioritetai pasikeis taip:
Pertraukčių kontroleris 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ų kontrolerio naudojimas Vedamieji (Slaves) 8259A IR0 IR1 INT IR2 … IR7 CAS IR0 IR1 INT IR2 … IR7CAS IR0 IR1 INT IR2 … IR7 CAS IR0 IR1 INT IR2 … IR7 CAS Išor. įtaisas 08 Išor. įtaisas 56 Išor. įtaisas 00 Išor. įtaisas 57 Išor. įtaisas 09 Išor. įtaisas 01 Vedantysis (Master) 8259A Išor. įtaisas 07 Išor. įtaisas 63 Išor. įtaisas 15 Procesorius NMI INTR
Pertraukčių kontrolerio naudojimas AT 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 PC/XT kompiuteriuose buvo tik viena mikroschema 8259A PC/AT kompiuteriuose buvo 2 mikroschemos 8259A, sujungtos tokiu būdu: Į turinį
Pertraukčių kontrolerio 8259A valdymas • Pertraukčiųkontroleris – programuojamas įtaisas. • Informacija jam perduodama ir gali būti iš jo gauta vieno baito žodžiais, naudojant įvesties ir išvesties komandas. • Kontroleris turi du darbo režimus: • inicializavimo režimą ir • darbo režimą.
Pertraukčių kontrolerio 8259A valdymas • Pradžioje kontroleris inicializuojamas, perduodant jam iki 4 baitų, vadinamų inicializavimo žodžiais (ICW). Šie žodžiai užduoda tokius parametrus, kaip: • paleidimo režimą (frontu ar lygiu), • kontrolerių kiekį, • pertraukties tipą nurodančius bitus, • kaskadinio jungimo detales, ... • Baigus inicializavimą, kontroleris pereina į darbo režimą.
Pertraukčių kontrolerio 8259A valdymas • Dirbdamas darbo režimu, jis priima valdymo komandas – OCW (Operation Control Words). Šie žodžiai užduoda: • kaukę - blokuotus(maskuotus) įėjimus, • ciklinį prioritetų režimą, • pertraukties lygį, • apklausos režimą.
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
Komandos išrinkimas Dekodavimas ir operandų išrinkimas Operacijos vykdymas Rezultato įrašymas Pertrauktys konvejerizuojame procesoriuje • puslapio klaida • adreso klaida • lyginumas • blogas op. kodas • puslapio klaida • adreso klaida • blogas išlyginimas • lyginumas • dalyba iš nulio • perpildymas • rezultato išnykimas • puslapio klaida • adreso klaida • blogas išlyginimas • lyginumas
Į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 Į turinį
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ė Į turinį
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 Į turinį
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 valdomiduomenų 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 valdomiduomenų mainai a) besąlyginiai mainai b) sąlyginiai mainai Pasi-rengęs? in/out port Ne Taip in/out port
Programa valdomiduomenų mainai c) mainai pagal pertraukties signalą Mainų parengimas Pertr. sistemos parengimas Pagrindinė programa INTR Mainų papro-gramė INTR ... Į turinį
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)
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 Į turinį
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ą.