1 / 62

Kompiuterių architektūra ir operacin ė s sistemos

Kompiuterių architektūra ir operacin ė s sistemos. Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt. P e nk tosios paskaitos turinys. k omandų sistemos išplėtimas MMX, SSE, 3DNow!, … šiuolaikiniai procesoriai: pagrindiniai gamintojai

kirkan
Download Presentation

Kompiuterių architektūra ir operacin ė s sistemos

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 ir operacinės sistemos Doc. Stasys Maciulevičius Kompiuterių katedra stasys@ecdl.lt stasys.maciulevicius@ktu.lt

  2. Penktosios paskaitos turinys • komandų sistemos išplėtimas • MMX, SSE, 3DNow!, … • šiuolaikiniai procesoriai: • pagrindiniai gamintojai • x86 procesorių raida • kelių branduolių procesoriai • 64 bitų procesoriai S.Maciulevičius

  3. Šeštosios paskaitos turinys Hierarchinė atminčių sistema Lokališkumo principas Kešas (spartinančioji atmintis) Kešo darbo principai Procesorių kešai Kešo nauda Pagrindinė atmintis hierarchinėje atminčių sistemoje Dinaminių atminčių(DRAM) tipai Šiuolaikinės DRAM DRAM moduliai Atminties valdymas S.Maciulevičius S.Maciulevičius 3

  4. Kompiuterio atmintis Kompiuterio atmintyje saugoma visa informacija: išorinėje atmintyje – ir sisteminės programos, ir taikomosios porgramos, ir duomenų failai; pagrindinėje atmintyje darbo metu – dalis operacinės sistemos programų, aktyvios taikomosios programos, jų vykdymui reikalingi duomenys ir skaičiavimo metu gauti rezultatai; spartinančiojoje atmintyje – dažniausiai darbo metu naudojamos informacijos (komandų ir duomenų) kopijos, reikalingos didesnei skaičiavimo spartai pasiekti. S.Maciulevičius S.Maciulevičius 4

  5. Kompiuterio atmintis Dar J.von Neumann pastebėjo, kad kiekvienas kompiuterio vartotojas nori, kad: kompiuteris turėtų pakankamai didelės talpos atmintį, atmintis dirbtų kiek įmanoma sparčiau, atmintis būtų nebrangi. Aišku, kad visus vartotojo norus patenkinti naudojant tik vieną atminties tipą neįmanoma. Jau seniai naudojamos kelių tipų atmintys, jas derinant kompiuteryje S.Maciulevičius S.Maciulevičius 5

  6. Hierarchinė atminčių sistema CPU reg. Kešas Sparta, kaina Talpa Pagrindinė atmintis Išorinė atmintis S.Maciulevičius S.Maciulevičius 6

  7. Hierarchijos lygių parametrai HDD HITACHI Deskstar 250GB, 8MB, Serial ATA II-300 - 135,36 Lt Apacer AM1 DDR II 800 MHz 2048MB - 145,77 Lt  S.Maciulevičius S.Maciulevičius 7

  8. Lokališkumo principas Hennessy ir Patterson teigia: programos linkę naudoti duomenis ir komandas, kurias jau yra naudoję. Sakoma, kad programaapie90%vykdymo laiko skiria apie10%kodo. Lokališkumas laiko atžvilgiu: jei dabar reikalingas kuris nors elementas, labai tikėtina, kad netrukus vėl jo prisireiks vietos atžvilgiu: jei dabar reikalingas kuris nors elementas, labai tikėtina, kad netrukus bus reikalingas ir jam gretimas Ką duoda lokališkumas? S.Maciulevičius S.Maciulevičius 8

  9. Sąvokos pataikymas (hit) nepataikymas (miss) pataikymo dažnis - fh nepataikymo dažnis - fm fm= 1 -fh išrinkimo laikas pataikius - th uždelsimas nepataikius - tm S.Maciulevičius S.Maciulevičius 9

  10. 4 klausimai Į kurią vietą aukštesnio lygio atmintyje turi būti įrašytas blokas? Kaip surasti bloką aukštesnio lygio atmintyje? Kurį bloką reikia pakeisti nepataikymo atveju? Kaip turi būti vykdomas įrašymas į atmintį? 1 1000 S.Maciulevičius S.Maciulevičius 10

  11. SPARTINANČIOJI ATMINTIS Kompiuterių architektūra ir operacinės sistemos S.Maciulevičius S.Maciulevičius 11

  12. Spartinančioji atmintis (kešas) CPU Žodis Kešas Blokas Pagrindinė atmintis S.Maciulevičius S.Maciulevičius 12

  13. Kešo lygiai • Sparčiausias - L1 kešas; jo vėlinimas – 1-2 ciklai • Kiek mažesnės spartos – L2 kešas; jo vėlinimas – 1 (lėtuose procesoriuose) -20 ciklų (sparčiuose procesoriuose) • Lėčiausias – L3 kešas; jo vėlinimas – 10 (lėtuose procesoriuose) - 40 ciklų (sparčiuose procesoriuose) • Pagrindinės atminties išrinkimo laikas – 200-300 ciklų S.Maciulevičius

  14. Kešo sąvokos Pataikyti į kešą - kreipiantis į adresuojamą (atmintyje esantį) kintamąjį, rasti jo kopiją keše Pataikymų dažnis - santykinė dalis kreipinių į adresuojamus (atmintyje esančius) kintamuosius, kurių kopijos randamos keše Kešo eilutė - tam tikro dydžio informacijos blokas, kurio vieta keše identifikuojama kreipinio adresu ir pakeičiama vienos užpildymo operacijos metu, kartu su išrinkimui ir identifikavimui reikalinga papildoma informacija Indeksas - kešo eilutės numeris Išrinkimo laikas pataikius - laikas, per kurį surandama ir išrenkama keše esanti informacija Išrinkimo (uždelsimo) laikas nepataikius - laikas, per kurį iš pagrindinės atminties išrenkama informacija, kurios keše nėra S.Maciulevičius S.Maciulevičius 14

  15. 4 klausimai Kur reikia padėti informaciją, nukopijavus ją į kešą? - Į kurią eilutę keše reikia įrašyti iš pagrindinės atminties paimtą eilutės dydžio bloką. Kaip randama informacija keše? - Kaip atliekama informacijos paieška keše, priklausomai nuo kešo tipo. Kaip vykdomas naujos informacijos įrašymas į kešą? - Kešo eilutė, į kurią reikia įrašyti naują bloką, jau užimta. Kaip reikia elgtis tokiu atveju? Kaip vykdomas informacijos įrašymas tuo atveju, jei nepataikoma į kešą? - Ar reikia ją rašyti į kešą, ar tiesiai į pagrindinę atmintį? S.Maciulevičius S.Maciulevičius 15

  16. Kešo tipai Tiesioginio atitikimo kešas - kiekvienas iš pagrindinės atminties paimtas eilutės dydžio blokas turi vienintelę apibrėžtą vietą keše. Pilnai asociatyvus kešas - kiekvienas iš pagrindinės atminties paimtas eilutės dydžio blokas gali būti bet kurioje vietoje keše. Dalinai asociatyvus kešas - kiekvienas iš pagrindinės atminties paimtas eilutės dydžio blokas gali būti bet kurioje iš k vietų; skaičius k vadinamas asociatyvumo laipsniu arba krypčių skaičiumi. S.Maciulevičius S.Maciulevičius 16

  17. Tiesioginio atitikimo kešas Adresas srityje Pagrindinė atmintis Kešo dydžio ATM sritis Kešas 512 eilučių64 bitus 0012 34AD 0000 0088 000 004 008 00C FF8 FFC 000 sritis Tegas Duomenys 0 1 ... 65 ... 511 000 0012 34AD 0000 0088 0000 2ADC 00FF 0000 009 246A DC00 CCCC 0000 A06 0000 2ADC 00FF 0000 000 004 008 00C FF8 FFC 000 0000 2ADC 00FF 0000 009 sritis 246A DC00 CCCC 0000 S.Maciulevičius S.Maciulevičius 17

  18. Dalinai asociatyvus kešas Pagrindinė atmintis Kešo dydžio ATM sritis 2 krypčių kešas 2 256 eilutes 64 bitus 0012 34AD 0000 0088 000 004 008 00C 7F8 7FC 000 sritis Tegas Duomenys 0 1 ... 65 ... 255 000 0012 34AD 0000 0088 0000 2ADC 00FF 0000 009 246A DC00 CCCC 0000 0 kryptis A06 0000 2ADC 00FF 0000 1246 34AD 4444 0088 000 004 008 00C 7F8 7FC 000 0000 2ADC 00FF 0000 009 sritis 246A DC00 CCCC 0000 0 1 ... 65 ... 255 009 1246 34AD 4444 0088 1 kryptis 646 2ADC 0000 0000 00FF Adresas srityje S.Maciulevičius S.Maciulevičius 18

  19. Kešo adresavimas Kešo dydis - 256 KB, jo eilutės ilgis - 16 baitų. Atminties adreso struktūra: 3118 17 4 3 0 Vietai eilutėje nurodyti reikės log216 = 4 bitų. Eilutės numeriui (indeksui) nurodyti reikės log2(256K/16)= log216K= 14 bitų. Tegui lieka 32 – 4 – 14 = 14 bitų S.Maciulevičius S.Maciulevičius 19

  20. Kešo adresavimas Jeigu, pavyzdžiui, procesorius kreipiasi adresu 912A45CH, tai reiškia, kad adresuojamas žodis keše gali būti saugomas 2A45 eilutės 3 pozicijoje, o tegas lygus 1001000100 = 244H: 18 17 4 3 0 Kešo eilutė: S.Maciulevičius S.Maciulevičius 20

  21. Skaitymas iš kešo Pradžia CPU generuoja kreipinio adresą RA Pagal RA iš ATM skaityti bloką Ne Ar blokas yra keše? Nustatyti bloko vietą keše Taip Pagal RA skaityti žodį ir perduoti į CPU Įrašyti bloką į kešo eilutę Perduoti žodį į CPU Atlikta S.Maciulevičius S.Maciulevičius 21

  22. Kešo eilutės struktūra Kešo eilutėje būna tokia informacija: duomenų baitai – informacijos kopija iš pagrindinės atminties; tegas – bitai, nurodantys atminties sritį, iš kurios buvo įkeltas duomenų blokas (žr. aukščiau pateiktą tiesioginio atitikimo kešo principą iliustruojantį paveikslą); bitas V (Valid) – bitas, rodantis, ar kešo eilutė užpildyta („tikra“); V ... Tegas Duomenų baitai S.Maciulevičius S.Maciulevičius 22

  23. Kešo eilutės struktūra Be to, priklausomai nuo kešo tipo, eilutėje gali dar būti: bitas D (Dirty) – bitas, rodantis, ar į kešo eilutę buvo kas nors įrašyta (jos turinys modifikuotas); bitai LRU (Least Recently Used) – bitai, naudojami pakeičiamai eilutei parinkti (dalinai asociatyviame keše). S.Maciulevičius S.Maciulevičius 23

  24. Išrinkimas iš kešo S.Maciulevičius S.Maciulevičius 24

  25. Įrašymo strategijos write-through - informacija įrašoma ir į kešą, ir į pagrindinę atmintį write-back, copy-back - informacija įrašoma tik į kešą; į pagrindinę atmintį ji perrašoma, jei buvo pakeista Modifikavimo bitas - M, D (dirty bit) Ką daryti, jei įrašoma nepataikius? blokas įrašomas į kešą, o po to rašoma į kešą rašoma tik į pagrindinę atmintį S.Maciulevičius S.Maciulevičius 25

  26. Kešai procesoriuose S.Maciulevičius S.Maciulevičius 26

  27. Kešai šiuolaikiniuose procesoriuose S.Maciulevičius S.Maciulevičius 27

  28. Kešo įtaka kompiuterio našumui L1 ir L2 Tik L1 3,46 3,20 3 2 Tik L2 1,03 1 Nė vieno 0,58 0 Eksperimentai su sistema: AMD K6-2 procesorius, 350 Mhz, 512 KB L2 kešas, 2x32 KB L1 kešas, pagrindinė atmintis – 128 MB, magistralė PC100. S.Maciulevičius S.Maciulevičius 28

  29. DRAM Kompiuterių architektūra ir operacinės sistemos S.Maciulevičius S.Maciulevičius 29

  30. Eilutės linija Stulpelio linija DRAM ląstelė Pagrindinė kompiuterio atmintis sudaroma iš dinaminės atminties (DRAM) mikroschemų. Vienam bitui saugoti dinaminės atminties ląstelėje pakanka vieno tranzistoriaus (statinėje atmintyje – 6-8). Siekiant sumažinti mikroschemos kontaktų skaičių, tradiciškai buvo pereita prie adreso perdavimo dalimis: pradžioje į schemą paduodamas eilutės adresas, po to – stulpelio). Tai sąlygoja didesnį taktų skaičių kreipinio metu. Informacija saugoma krūvio pavidalu kondensatoriuje, kuris palaipsniui išsikrauna, todėl ją periodiškai reikia atkurti (regeneruoti). Skaitymo metu kondensatorius taip pat išsikrauna, todėl jo krūvis taip pat atkuriamas. Dėl to DRAM dirba maždaug 10 kartų lėčiau, nei SRAM. S.Maciulevičius

  31. Atminčių kainos mažėjimas 1 bito saug. kaina (mili-centais) 100 10 1 0.1 0.01 0.001 0.0001 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 S.Maciulevičius S.Maciulevičius 31

  32. DRAM tipai Paprastos FPM EDO SDRAM RDRAM, DDR, DDR2,… BEDO 1987 94 95 96 97 98 99 2000 1M 4M 16M 64M 256M S.Maciulevičius S.Maciulevičius 32

  33. DRAM struktūra CAS# A0-A8 Stulpelio dešifr. Stulp. adr. buferis I/O valdymas ir duomenų buferiai N.2 taktų generat. Regener. kontroleris Stiprintuvai ir Įrašymo valdymas A0-A8 Regener. skaitiklis DRAM matrica 512  512 4 A0-A8 Eil. adr. buferis Eil. dešifrat. N.1 taktų generat. RAS# OE# WE# Duomenys D0-D3 S.Maciulevičius S.Maciulevičius 33

  34. Eil.1 Stulp.1 Eil.2 RAS# CAS# Addr Data Stulp.2 D1 D2 Paprasta DRAM Kiekvienas kreipinys - atskiras. S.Maciulevičius

  35. Stulp.3 Eil. Stulp.1 Stulp.2 Fast Page Mode (FPM) DRAM RAS# CAS# Addr Data D1 D2 D3 • Paketui perduoti kartojamas CAS#. • Kai CAS# H, duomenų išėjimai  Z būsenas. S.Maciulevičius

  36. Stulp.2 Stulp.1 Eil. RAS# CAS# Addr Data Stulp.3 Extended Data Output RAM (EDO RAM) D1 D2 D3 • Paketui perduoti kartojamas CAS#. • Nuo FPM skiriasi tuo, kad duomenys palaikomi išėjime iki CAS# L. Juos reikia fiksuoti, kai CAS# H. • Todėl galima pasiekti mažesnį periodą (didesnį dažnį). S.Maciulevičius

  37. Eil. Stulp.1 Stulp.2 Burst Extended Data Output RAM (BEDO RAM) RAS# CAS# Addr Data D10 D11 D12 D13 D20 S.Maciulevičius

  38. Burst Extended Data Output RAM (BEDO RAM) • Įvesta papildoma konvejerio pakopa - dar vienas fiksatorius, todėl duomenys pasiekia išėjimą tik su antruoju sinchroimpulsu • Vidinis adreso skaitiklis keturioms porcijoms išrinkti • Paketui perduoti kartojamas CAS# • Duomenys palaikomi išėjime iki CAS# L. Juos reikia fiksuoti, kai CAS# H • 4 duomenų porcijoms pasiekiama 5-1-1-1 sparta, kai tuo tarpu EDO RAM - 5-2-2-2 S.Maciulevičius S.Maciulevičius 38

  39. Synchronous Dynamic RAM (SDRAM) • Prieš tai apžvelgtų tipų DRAM dirba asinchroniškai sistemos taktinių signalų atžvilgiu. SDRAM darbas pririštas prie sistemos taktinių signalų • Tai realizuota pridedant registrus (fiksatorius) adreso, duomenų ir valdymo signalams fiksuoti • Visos jos sukurtos darbui paketiniu režimu, kiekvieną paketo porciją perduodant kas 1 taktą. Paketo ilgis programuojamas: 1, 2, 4, 8 arba 256 • 4 duomenų porcijoms pasiekiama 5-1-1-1 sparta S.Maciulevičius S.Maciulevičius 39

  40. Registras DRAM Registras Adresas Duomenys Valdymo signalai Sinchronizacija Synchronous Dynamic RAM (SDRAM) S.Maciulevičius

  41. Synchronous Dynamic RAM (SDRAM) • Mikroschemos viduje realizuotas konvejeris, padidinantis našumą 3 kartus • SDRAM našumui padidinti panaudojamas kreipinių persidengimas (interleaving): galima kreiptis į vieną modulio dalį, kai antrojoje dalyje baigiamas vykdyti kitas kreipinys • Darbo spartai nurodyti naudojami du principai: • Minimalus intervalas tarp gretimų paketo porcijų (8 ns, 7 ns, 6 ns ir pan.) • Magistralės darbo dažnis (100 MHz dažnį atitinka 8 ns, 133 MHz dažnį atitinka 6 ns ir pan.) • Nepamirškime, kad pirmoji porcija žymiai vėluoja! S.Maciulevičius S.Maciulevičius 41

  42. PC100 SDRAM laiko diagrama Stulp Eil Stulp Eil Eil Stulp W W W W W W W W W W W W R R R R Kom Duomenys Pauzės • 2 ciklų adresavimas • Pauzės (Bubbles) padidina vėlinimą, sumažina pralaidumą S.Maciulevičius S.Maciulevičius 42

  43. SDRAM laiko diagrama • Šioje diagramoje reikėtų atkreipti dėmesį į du SDRAM technologijos sąlygojamusdalykus: • PC platformoje nebuferizuoti SDRAM DIMM reikalauja vadinamojo ‘2-ciklų adresavimo’, kaieilučių ir stulpelių adresai magistralėje laikomi po du ciklus. Toreikia naudojamt keletą DIMM lizdų. Ten, kur naudojamas tik 1 DIMM, pakanka 1 ciklo. • Pakeitus duomenų adresą (išrenkant kitus stulpelius, tiek skaitant, tiek ir įrašant informaciją), reikalingos nedidelės pauzės (‘bubbles’). S.Maciulevičius S.Maciulevičius 43

  44. Double Data Rate SDRAM (DDR SDRAM) • DDR - Double Data Rate SDRAM - SDRAM su dvigubu magistralės dažniu: skaitymo ir rašymo operacijos vykdomos du kartus vieno takto metu - pagal kylantį ir krintantį taktinio impulso frontus • Pralaidumas • 1 kartos - iki 1.6 GB/s (dažnis iki 100 MHz) • dabartinių - 3.2 GB/s (= 200 2  8B; dažnis 200 MHz) S.Maciulevičius S.Maciulevičius 44

  45. SDRAM, DDR, DDR 2 Kaip matome, visos SDRAM schemos dirba pagrindiniu dažniu, o duomenys perduodami kartą per taktą. DDR schemos taip pat dirba pagrindiniu dažniu, o duomenys perduodami du kartus per taktą. DDR 2 išėjimo buferiai dirba dvigubu dažniu, o duomenys perduodami du kartus per taktą. S.Maciulevičius S.Maciulevičius 45

  46. DDR2 • DDR2 branduolys skaitymo ir rašymo operacijos vykdo tokiu pačiu dažniu, kaip ir DDR ar SDRAM. • Tačiau: • Padvigubintas I/O buferių darbo dažnis • Du kartus išplėsta magistralė, jungianti branduolį su buferiais • Todėl duomenys multipleksuojami ir perduodami dvigubu dažniu įprasto pločio magistrale. • Taigi, DDR2 533 dirba tuo pačiu dažniu, kaip DDR266 arba PC133 SDRAM. S.Maciulevičius S.Maciulevičius 46

  47. DDR2 ir DDR3 DDR3 skiriasi nuo DDR2 tuo, kad iš atminties elementų matricos išrenkama dvigubai daugiau bitų: S.Maciulevičius

  48. DDR2 ir DDR3 skirtumai http://www.anandtech.com/memory/showdoc.aspx?i=2989pateikia tokius lyginamųjų testų rezultatus: S.Maciulevičius

  49. DDR2 ir DDR3 skirtumai Vėlinimas: S.Maciulevičius

  50. DDR2 ir DDR3 skirtumai Žaidimuose (Fra Cry): S.Maciulevičius

More Related