370 likes | 590 Views
Računarstvo i informatika III. Le kcija 6 a - Memorij e. U ovoj lekciji. Šta ćemo učiti. Šta je memorija Kako se memorija pov ezuje u sistem Karakteristike memorije Hijerarhijski sistem memorija Keš memorija. Šta je memorija?.
E N D
Računarstvo i informatika III Lekcija6a - Memorije
U ovojlekciji... Šta ćemo učiti • Šta je memorija • Kako se memorija povezuje u sistem • Karakteristike memorije • Hijerarhijski sistem memorija • Keš memorija
Šta je memorija? • Specijalizovani hardver koji obezbeđuje pamćenje informacija u računarskom sistemu • Dve osnovne komponente • MEMORIJSKI MEDIJUM • čuva podatke • UPRAVLJAČKI SISTEM MEMORIJE • definiše vrstu pristupa - za upis ili čitanje • locira registar kome se pristupa • omogućava prenošenje podataka između magistrale podataka i izabranog memorijskog registra
A0 - A14 RAM Chip D0 - D7 CS# R/W# OE# Način povezivanja memorije u sistem • Memorija = memorijski medijum + upravljački sistem memorijeUpravljački sistem omogućava: • izbor vrste pristupa (read, write) • adresiranje (izbor lokacije kojoj se pristupa) • prenošenje podataka iz/u memoriju • Memorija se u sistem može povezati • Preko zajedničke magistrale koju deli sa perifernim uređajima • Preko specijalizovane memorijske magistrale
Upravljački sistem memorije • Potrebna su dva registra u CPU za pristupanje memoriji • Adresni registar memorije - MAR(Memory Address Register) • Registar u koji se upisuje memorijska adresa kojoj će CPU pristupati • Prihvatni registar memorije - MBR(Memory Buffer Register) • Registar koji čuva podatke za memorijskipristup • Pri Read pristupu, memorija smešta podatke pročitane iz memorije • Pri Write pristupu, CPU smešta podatke koje treba upisati u memoriju • Pristup za čitanje • Šalje seadresau MAR iReadkontrolni signal ka memoriji • Čitaju se podaci koje memorija stavlja u MBR po isteku vremena pristupa memoriji ((MAR))-> MBR • Pristup za upis • Šalje se adresau MAR iWrite kontrolni signal kamemoriji • CPU upisujepodatkeu MBR • Upis podataka kompletira se po istekuvremena memorijskog ciklusa (MBR)-> (MAR)
Karakteristike memorije • Kapacitet • količina informacija koju memorija može da sadrži • Performanse(osobine koje utiču na brzinu) • vreme pristupa, vreme memorijskog ciklusa, brzina prenosa • Adresivost • adresive, poluadresive, neadresive • Način pristupa • sekvencijalni, poludirektan, direktan, asocijativni • Stalnost zapisa, mogućnost promene zapisa, fizički tip medijuma, cena, jedinica prenosa
Kako se mogu podeliti memorije? Prema više kriterijuma • mesto i funkcija • unutrašnje – primarne – operativne • spoljašnje - sekundarne – za skladištenje • trajnost zapisa podataka bez napajanja • privremene – RAM memorija • trajne – ROM, hard disk, CD, DVD, USB flash disk • tehnologija zapisa podataka • optičke, magnetske, poluprovodničke • vrsta pristupa • Sa direktnim, poludirektnim ili sekvencijalnim pristupom • ...
Gde se nalazi memorija? • Registri:u okviru CPU • Najbrža memorija – na Procesorskom čipu • Keš:veoma brza memorija, poluprovodnička, blizu CPU • Unutrašnja ili operativnamemorija • Poluprovodnička (tranzistori) • Brza memorija, slučajan pristup, na sistemskoj magistrali • Spoljašnja ili sekundarnamemorija • Periferni uređaji za skladištenje (diskovi, trake) • Sporija memorija, obično magnetna, sporija magistrala
Performanse memorije (osobine koje utiču na brzinu) • Vreme pristupa • vreme koje protekne od dovođenja signala za vrstu pristupa do završetka upisa ili čitanja • Memorijski ciklus • najkraće vreme između dva uzastupna pristupa memoriji • memoriji je potrebno izvesno vreme “oporavka” pre sledećeg pristupa podacima • vreme ciklusa = vreme pristupa + vreme oporavka • Nivo transfera • brzina kojom se podaci prenose • za memoriju sa direktnim pristupom T=1/vp • T - broj memorijskih reči u sec (obično bajtova) • za ostale vrste memorija T=n/(vn-vp) • T - bitova u sec • Vp - vreme pristupa • Vn - prosečno vreme za čitanje ili pisanje n bitova • n - broj bitova
Načini pristupa • Direktan (Random)pristup • “Slučajan” je dobar: vreme pristupa je isto za sve lokacije • DRAM: Dynamic Random Access Memory • Velika gustina, mala snaga napajanja, jeftina, spora • Dinamička: zahteva rednovno “osvežavanje” • SRAM: Static Random Access Memory • Mala gustina, velika snaga napajanja, skupa, brza • Statička: sadržaj je raspoloživ “zauvek”(dok se ne isključi napajanje) • Poludirektan pristup • Vreme pristupa zavisi od lokacije podataka • Primeri: Disk, CDROM, DRAM page-mode pristup • Sekvencijalan pristup • Vreme pristupa linearno zavisi od lokacije (Trake)
start prva lokacija cilj tražena lokacija Sekvencijalni način pristupa • Startuje se od prve lokacije – čitaju se sve lokacije redom • Vreme pristupa zavisi od lokacije traženog podatka i trenutne lokacije čitača • npr.magnetna traka
. . . skoči ovde block i čitaj dovde Poludirektan pristup • Pojedinačni blokovi imaju jedinstvene adrese • Pristup se ostvaruje u dva koraka: • Skok na najbližu startnu lokaciju • Sekvencialna pretraga tražene lokacije (ili čekanje – čekanje rotacije diska) • Vreme pristupa zavisi od ciljne lokacije • npr. disk
Direktan (random) pristup • Adresa određuje tačnu lokaciju na kojoj je podatak • Vreme pristupa ne zavisi ni od tražene lokacije ni od prethodnog ciklusa pristupa • npr. RAM . . . čitaj
Tehnološkitrendovi • Kapacitet Brzina • Logika: 2xza 3 god. 2x za 3 god. • DRAM: 4x za 3 god. 2x za 10 god. • Cilj: Iluzija velike, brze i jeftine memorije • Činjenice: • Velike memorije su spore • Brze memorije sumale • Kako da se napravi memorija koja je velika, jeftinaibrza (najveći deo vremena)? • Paralelizam • Hijerarhija
CPU Memorija D1 je raspoloživ Početak pristupa za D1 Početak pristupa za D2 Memorijska Banka 0 Memorijska Banka1 CPU Memorijska Banka2 Memorijska Banka3 Pristup Banci 1 Pristup Banci0 Pristup Banci2 Pristup Banci3 Ponovo možemo da pristupamo Banci Povećanje propusnog opsega – Preklapanje(interleaving) Model pristupa bez preklapanja: Model pristupa sa četvorostrukim preklapanjem:
Hijerarhija memorije • kapacitet ? brzina ? cena ? • registri • u okviru CPU • Interna • Operativna (OM), a može da uključi jedan ili više nivoa keša • eksterna memorija • skladište za sve najmanji, najbrži, najskuplji, najčešći pristup srednje-velika, brza, cene različite velika, spora, jeftina, najređi pristup
Memorijskahijerarhija u savremenimkompjuterskimsistemima • Zahvaljujući korišćenju principa lokalnosti: • Prezentuje korisniku onoliko memorije koliko je ima u najjeftinijoj tehnologiji • Obezbeđuje pristup brzinom koju nudi najbrža tehnologija Procesor Upravljački organ Tercijalna Mem. (Traka) Spoljašnja Mem. (Disk) L3 Keš (SRAM) Glavna Mem. (DRAM) L2 Keš (SRAM) L1 Keš Reg ALU
Hijerarhijski sistem memorija • desetak, 1 takt • 4-16KB, 3 takta • 256-512KB, 20 taktova • MB, 50-70ns • zavisno od slota • GB, <10ms • neograničeno, 100ms • neograničeno, 10sec
Memorijskahijerarhija u savremenimkompjuterskimsistemima Razmotrimo vrednosti za Intel Pentium 4 procesor na 2.2 GHz.
manji od glavne memorije Keš • Malakoličinabrzememorije • Smeštena između OM i CPU • Može se nalaziti na CPU čipu keš misli da je OM organizovana po “blokovima” blok se prenosi reč se prenosi cache
Verovatnoćareference 0 2n – 1 Adresni prostor Glavna memorija Keš memorija Ka procesoru Blk X Od procesora Blk Y Memorijskahijerarhija: Zašto funkcioniše? Princip lokalnosti! • Tipičan program koristi svega 10-20% memorije koja je za njegaalocirana. • Vremenska lokalnost(Temporal Locality): • u kratkomvremenskom periodu program pristupa istim memorijskim lokacijamaČuvamo podatke kojima se najčešće obraća bliže procesoru • Prostorna lokalnost(Spatial Locality): • program ima tendenciju da pristupa susednim memorijskim lokacijamaPremeštamo blokove uzastopnih reči na viši nivo
Glavna memorija Keš memorija Ka procesoru Blk X Od procesora Blk Y Memorijskahijerarhija: Terminologija • Pogodak (Hit): Podatakpostoji u nekom bloku keša (Blok X) • Procenat pogodaka (Hit Rate): procenat podataka koji su pronađeni u kešu • Vreme pogotka (Hit Time): Vreme za pristup kešu koje se sastoji odvremena pristupa RAM-u + vremena utvrđivanja pogotka/promašaja • Promašaj (Miss): podaci koje treba prebaciti iz bloka na nižem nivou (Blok Y) • Procenat promašaja (Miss Rate)= 1 - (Procenat pogodaka) • Kazna za promašaj (Miss Penalty): Vreme za utvrđivanje pogotka/promašaja + Vreme za zamenu bloka na višem nivou+ Vreme za isporučivanje bloka procesoru • Vreme pogotka << Vreme promašaja
Zašto keš povećava brzinu rada? Primer: • OM sadrži 100,000 reči, vreme pristupa je 0.1 s. • Keš sadrži 1000 reči, vreme pristupa je 0.01 s. • Ako se Reč koju CPU traži nalazi • ukešu (pogodak), procesor joj odmah pristupa. • umemoriji (promašaj), prvo se mora preneti u keš da bi joj procesor pristupio. • Pod pretpostavkom da je 95% zahteva pogodak • Srednje vreme pristupa Reči je(0.95)(0.01 s)+0.05(0.1 s+ 0.01 s) = 0.015 s Približno brzini keša
Operacija čitanja keša • CPU traži sadržaj sa memorijske lokacije (iz OM) • Proverava se da li je sadržaj sa te lokacije već prisutan u KEŠu kešpogodak ! prisutan uzmi podatke iz keša (brzo) kešpromašaj ! nije prisutan pročitaj traženi blokiz OM u keš • zatim prenesi podatak iz keša u CPU
Ko upravlja hijerarhijom? • RegistriKeš • Kompajler (programer?) • Keš Memorija • Hardver • Memorija Diskovi • Hardver i operativni sistem (virtualnom memorijom) • Programer (fajlovima)
Dizajn keš memorije • Veličina • Funkcija mapiranja • Algoritmi zamene sadržaja • Politika upisivanja informacija • Veličina bloka • Broj keš komponenti
Veličina keša • Cena • Više keša je skuplje • Brzina • Više keša je brže (do određene granice) • Provera sadržaja keša troši vreme
keš tagpolje podataka Funkcija mapiranja • Kako se sadržaj kešapreslikava (mapira)na sadržajOM? OM adresasadržaj 000 xxx linija bloki . . . blokj koristitag (i ponekad adresu linije) da odredišadresu bloka
Mapiranje – osnovni pojmovi • Sadržaj keš linije je podeljen na tagipolje podataka • Fiksna širina linije • Polje podatakaprima sadržajčitavogbloka OM • Blok OM sadrži niz lokacija OM (lokacija - najmanja količina podataka koja se može adresirati u OM) • tagpomažepri oderđivanjupočetne adrese bloka OM koji se prenosi u polje podataka keša širina keš linije veća nego veličina lokacije u OM!
Algoritmi zamene sadržaja • Hardverski algoritmi su najbrži • Najdavnije korišćen (Least Recently Used LRU) • zamenjuje se blok koji najduže nije upotrebljavan • Prvi ušao prvi izašao (First In first Out FIFO) • zamenjuje se blok koji je najduže u kešu • Najređe korišćen (Least Frequently Used LFU) • Zamenjuje se blok koji je imao najmanje pogodaka • Slučajni izbor (Random)
Politika upisivanja informacija (Write Policy) • Zabranjeno prenošenje bloka iz OM u keš ako nismo sigurni da OM ima najsvežije podatke • Kompikacije • Više CPU na matičnoj ploči – svaki CPU ima svoj keš!! • U/I uređaji takođe mogu da traže pristup OM (da čitaju iz OM i da u nju upisuju)!! • 15%pristupa operativnoj memoriji je upisivanje (write)
Politika upisivanja informacija • “Write Through”metod • Sve promene sadržaja idu istovremeno i u keš i u OM • Ako imamo više CPU, svaki je pojedinačno odgovoran da prati upise u OM i da podatke u svom kešu osvežava • Često pristupanje OM usporava se svaki upis podataka • “Write Back”metod • Promene sadržaja inicijalno idu samo u keš • Postavlja se “zastavica” da je keš “uprljan” (dirty bit) upisom koji nije prenesen u OM • Ako vršimo zamenu bloka u keš memoriji, sadržaj bloka koji izbacujemo iz keša se upisuje u OM samo ako je “zastavica” podignuta (dirty bit =1) • Ostale keš memorije se moraju sinhronizovati • U/I uređaji moraju pristupati OM kroz keš
Više keš memorija na jednom CPU • Dva nivoa • L1najbliže CPU (najčešće na čipu) • L2 – između L1 i OM • proveri L1 – ako je promašaj – proveri L2 • Ako je L2 promašaj – uzmi podatak iz OM processor L1 L2 system bus local bus to high speed bus
Jedinstveni ili podeljeni keš • jedinstveni instrukcije i podaci su u istom kešu • podeljeni poseban keš zainstrukcijeipodatke • Odvojene lokalne (CPU) magistrale prema kešu • Poboljšana paralelizacija “pipelining “ • Prenos instrukcija u CPU se odvija paralelno sa prenosom podataka koje instrukcija obrađuje
Pentium 4 Keš • Pentium 4 – podeljeni L1keš (instrukcije i podaci) • 8KB podataka • 128 linija, 64 bajtasvaka • Jedinstveni L2keš – puni oba L1 keša • 256KB • 2048 (2k) linija, svaka 128 bajta Koliko bitova ? Koliko reči (words)?