1 / 49

KOMPIUTERIŲ ARCHITEKTŪRA

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

rama-lawson
Download Presentation

KOMPIUTERIŲ ARCHITEKTŪRA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. KOMPIUTERIŲ ARCHITEKTŪRA Doc. Stasys Maciulevičius Kompiuterių katedra stasys.maciulevicius@ktu.lt

  2. 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

  3. Š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

  4. 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

  5. Procesorius Pagrindinėprograma Pertraukties signalai Pertraukiančios (pertrauktį apdorojančios) programos Aplinka Pertrauktys

  6. 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

  7. 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)

  8. 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

  9. Pagr.progr. Signalas Pertr. apdor. Reakcijos Perjungimo laikas laikas Pertrauktys • Parametrai: • įėjimo signalų skaičius • reakcijos laikas • perjungimo laikas • gylis

  10. 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ą

  11. Pertrauktys • Apdorojimo procedūra: • pertraukties signalo priėmimas • pertraukties atpažinimas • būsenos įsiminimas • pertrauktį apdorojančios programos vykdymas • būsenos atstatymas

  12. 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)

  13. CC formavimas IBM/360 CC reikšmės formavimo pavyzdys: Komanda 00 01 10 11 Kodų sudėtis =0,C=00,C=0 =0,C0 0,C0 Pusžodžių sudėtis=0 <0 >0 Perpild. IR =00 - - Sąlyginis perėjimasn e k e i č i a m a Palyginimas =Op1<OP2Op1>OP2

  14. 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

  15. 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)

  16. 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

  17. 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

  18. 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:

  19. 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

  20. 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

  21. 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

  22. Į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

  23. Problemų sprendimo keliai PĮ moduliškumas (konstruktyvus išbaigtumas, paprastas prijungimas) Unifikuoti duomenų formatai Unifikuota sąsaja (interfeisas) Unifikuoti komandų formatai ir tipai

  24. 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

  25. Periferinių įtaisų darbo sparta

  26. 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

  27. 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ė

  28. 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

  29. 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

  30. 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į).

  31. 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

  32. 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ė

  33. 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ą

  34. Programa valdomi duomenų mainai a) besąlyginiai mainai b) sąlyginiai mainai Pasi-rengęs? in/out port Ne Taip in/out port

  35. Programa valdomi duomenų mainai c) mainai pagal pertraukties signalą Mainų parengimas Pertr. sistemos parengimas Pagrindinė programa INTR Mainų papro-gramė INTR ...

  36. 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)

  37. 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)

  38. 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ą

  39. 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

  40. Klasika: IBM kanalai Procesorius Pagrindinė atmintis Kanalas I/O kontroleris

  41. 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ą.

  42. 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)

  43. 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

  44. Uždaviniai

  45. 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

  46. 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

  47. 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

  48. 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ų

  49. 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

More Related