MEMORIJA Memorija je svojim konceptom najjednostavnija. Međutim u odnosu na druge elemente, pokazuje najširi spektar: tipova, tehnologija, organizacije, performansi i cijena. Nijedna tehnologija nije optimalna za zadovoljenje memorijskih zahtjeva. Računarski sistem ima hijerarhijske memorijske podsisteme. Neki su u sistemu, kojima procesor pristupa direktno, a drugi su eksterni, a njima procesor pristupa preko I/O modula. Karakteristike memorijskih sistema Ključne karakteristike memorije su: Lokacija Kapacitet Jedinica prenosa Način pristupanja Performanse Fizički tip Fizičke karakteristike Organizacija Lokacija se odnosi na to da li je za računar memorija unutrašnja ili vanjska. Unutrašnja se često izjednačava sa glavnom memorijom, ali postoje i druge vrste unutrašnje memorije. Npr. procesor zahtijeva vlastitu lokalnu memoriju (registri). Keš je još jedan tip unutrašnje memorije. Vanjsku čine perifernih uređaja za pohranjivanje (disk i traka). Njima procesor pristupa preko I/O kontrolera. Kapacitet interne memorije se izražava u bajtima ili riječima. Obično, dužine riječi su 8, 16 i 32 bita. Kapacitet vanjske memorije se obično izražava u bajtima. Jedinica prenosa je jednaka broju električnih linija koje ulaze i izlaze u memorijski modul. Jedinica prenosa za glavnu memoriju je broj bitova koji se odjednom čitaju/upisuju u memoriju. Nemora biti jednaka riječi niti jedinici pristupa. Kod vanjske memorije podaci se često prebacuju u mnogo većim jedinicama od riječi i označavaju se kao blokovi. Način pristupa uključuje: Sekvencijalni pristup (trake): memorija je organizovana u zapise (jedinice podataka). Pristupa se u posebnom linearnom nizu. Pohranjene informacije o adresiranju se koriste za razdvajanje zapisa i kao pomoć u povratnom procesu. Koristi se djeljivi mehanizam čitanja i pisanja. Pretraživanje počinje od prvog zapisa, čitanje jednog elementa nakon nekog prethodnog, propuštajući i odbacujući svaki dok se ne dođe do željenog. Zato je vrijeme pristupa proizvoljnog zapisa veoma promjenljivo. Neposredni pristup (diskovi): uključuje djeljivi mehanizam čitanja i pisanja. Međutim, pojedinačni blokovi ili zapisi imaju jedinstvenu adresu zasnovanu na fizičkoj lokaciji. Direktno se pristupa do opće lokacije u blizini, a onda slijedi sekvencijalno pretraživanje, brojanje, ili čekanje do konačne lokacije. Vrijeme pristupa je promjenjivo. Slučajni pristup (RAM i neki keševi): lokacija ima jedinstven fizički mehanizam adresiranja. Vrijeme pristupa datoj lokaciji je konstantno, i nezavisno od njenog mjesta u memoriji, kao i
od niza prethodnih pristupa. Zato svaka lokacija može biti izabrana slučajno, a adresira se i pristupa joj se direktno. Asocijativan pristup (neki keševi): riječ se pronalazi na osnovu dijela njenog sadržaja, a ne na osnovu njene adrese. Vrijeme pronalaženja je konstantno i ne zavisi od lokacije ili prethodnih uzoraka pristupanja. Performanse imaju tri faktora: Vrijeme pristupa (latentnost): za RAM, ovo je vrijeme potrebno za izvođenje operacije čitanja/pisanja, vrijeme od trenutka predstavljanja adrese u memoriji do trenutka kad su podaci pohranjeni/raspoloživi za korištenje. Vrijeme memorijskog ciklusa: primarno se primjenjuje na memoriju sa direktnim pristupom. Sastoji se od vremena pristupa i dodatnog vremena potrebno prije nego što drugi pristup može da počne. To je tzv. mrtvo vrijeme neophodno je zbog tehničkih razloga. Vrijeme memorijskog ciklusa se tiče sistemske sabirnice a ne procesora. Brzina prenosa: brzina kojom se podaci prenose u ili iz memorijske jedinice. Za RAM jednaka je recipročnoj vrijednosti vremena ciklusa. Fizički tipovi memorije: poluprovodničke, površinski magnetizirane (disk i traka), optički i magnentno-optički. Fizičke karakteristike: nepostojane memorije - nema struje nema informacija; postojane memorije - snimljene informacije ostaju do namjerne promjene; površinski magnetizirane memorije su stalne; poluprovodnička memorija može biti u oba oblika; neizbrisiva memorija se ne može mijenjati, osim uništavanja memorijske jedinice (ROM); za memoriju sa direktnim pristupom organizacija je ključna. Organizacija je fizičko uređenje bitova u kreiranju riječi. Memorijska hijerarhija Postoji kompromis kapacitet, vrijeme pristupa i cijena. Među memorijskim tehnologijama postoje veze: Kraće vrijeme pristupa, veća cijena po bitu Veći kapacitet, manja cijena po bitu Veći kapacitet, duže vrijeme pristupa. Projektanti žele tehnologije koje obezbjeđuju kapacitet i manji trošak po bitu. Međutim, zbog performansi, projektant koristi skupe memorije manjeg kapaciteta sa kraćim vremenom pristupa. Rješenje dileme je ne oslanjati se na jednu memorijsku komponentu (tehnologiju), već upotrijebiti memorijsku hijerarhiju. Zato se manje, skuplje i brže memorije dopunjavaju većim, jeftinijim i sporijim. Npr., procesor ima pristup dvoslojnoj memoriji. Nivo 1: sadrži 1000 riječi, vrijeme pristupa 0,01 µs.; Nivo 2: sadrži 100000 riječi i vrijeme pristupa 0,1 µs.
Pretpostavke: Procesor pristupa direktno riječi sa nivoa 1 Ako je na nivou 2, onda se riječ prvo prebacuje na nivo 1 Pojednostavljenje: ignoriše se vrijeme za određivanje sa kojeg je nivoa riječ. Moguće je hijerarhijski organizovati podatke, tako da postotak pristupa nižem nivou je znatno manji od onog iznad. Razmotrimo gornji primjer sa dva nivoa. Najbrža, najmanja i najskuplja su procesorski registri. Obično, procesor ima nekoliko desetina registara, mada neki imaju na stotine. Glavna memorija je unutrašnji memorijski sistem računara. Svaka njena lokacija ima jedinstvenu adresu. Ona se obično proširuje bržim ali manjim kešom. Keš obično nije vidljiv programeru ili, ustvari, procesoru. To je međustepenica za prenos podataka između glavne memorije i registara zbog poboljšanja performansi RAM-a. Keš i registri su nestalni i koriste poluprovodnike. Tri su nivoa jer poluprovodnička memorija ima razne tipove, koji se razlikuju u cijeni i brzini. Podaci se pohranjuju trajno na tvrdi disk i prenosne medije (prenosni magnetni disk, traka i optičko skladište). Vanjska, stalna memorija se označava kao sekundarna ili pomoćna memorija. Koristi se za pohranu programskih i podatkovnih fajlova i obično je vidljiva programeru samo u smislu fajlova i zapisa. Disk omogućuje proširenje glavne memorije na virtualnu. Nivoi mogu biti efikasno dodani hijerarhiji u softveru. Dio glavne memorije se može koristiti kao bafer za privremeno čuvanje podataka koji će biti učitani na disk. Ova tehnika (keš disk), poboljšava performanse na 2 načina: Upisi na disk su grupisani. Umjesto mnogih manjih prenosa, postoji nekoliko većih. Na ovaj način se smanjuje uključenost procesora. Neki podaci namijenjeni za vanjsko upisivanje, mogu biti programom upućeni prije sljedećeg deponovanja na disk. U tom slučaju, podaci se brže preuzimaju iz softverskog keša nego sa mnogo sporijeg diska. Keš memorija Namjena keš memorije: Povećanje brzine kako se približava najbržim memorijama Veći kapacitet po manjoj cijeni poluprovodničke memorije. Keš sadrži kopiju dijelova glavne memorije. Kada procesor čita memoriju, provjera da li keš sadrži riječ. Ako da, riječ se prosljeđuje procesoru. Ako ne, blok glavne memorije se učitava u keš i onda se riječ prosljeđuje procesoru. Keš ima više nivoa: L1, L2 i L3. L2 je sporiji i veći od L1, a L3 od L2. Struktura sistema keš/ram RAM se sastoji od 2^n adresabilnih riječi, svaka riječ ima jedinstvenu n-bitnu adresu. Zbog preslikavanja, smatra se da ova memorija sadrži brojne fiksne blokove sa po K riječi. Keš se sastoji od m blokova koji se nazivaju linije. Linija sadrži K riječi i oznaku od nekoliko bitova. Linija sadrži kontrolne bitovi (kao što je bit koji pokazuje da li je linija promijenjena od njenog učitavanja u keš). Broj linija je znatno manji od broja blokova memorije m << M. Uvijek je neki podskup blokova
memorije u linijama keša. Pošto ima više blokova nego linija, jedna linija ne može biti jedinstveno i trajno posvećena određenom bloku. Zato, svaka linija uključuje oznaku kojom se identificira koji je blok trenutno pohranjen. Oznaka je obično dio adrese glavne memorije. Karakteristike keš dizajna Elementi koji služe za klasifikovanje i razlikovanje keš arhitektura su: Keš adrese (logičke i fizičke) Veličina keša Funkcije preslikavanja (direktno, asocijativno, poluasocijativno) Algoritmi zamjene (posljednji korišten LRU, prvi ušao prvi izašao FIFO, najmanje korišten LFU, slučajni) Načini upisa (write through, write back, write once) Veličina linije Broj keševa (jedan ili dva nivoa, ujedinjeni ili razdvojeni) Broj keševa Kad je keš uveden, tipičan sistem je imao samo jedan. U posljednje vrijeme, normalna je upotreba višestrukih keševa. Povećanjem gustine elemenata omogućilo je da keš i procesor budu na istom čipu. Keš na čipu smanjuje procesorsku vanjsku sabirnicu. Zato se ubrzava izvršenje i povećavaju performanse sistema. Zbog kraćih podatkovnih putanja unutar procesora, keš-na-čipu pristupi će se završiti znatno prije. Tokom ovog perioda sabirnica je slobodna za podršku drugim prenosima. Najjednostavnija organizacija je keš u dva nivoa: Unutrašnji keš dizajniran kao nivo 1 (L1), Vanjski kao nivo2 (L2). Zašto uključiti L2: Ako ga nema, CPU može tražiti lokaciju koja nije u L1, onda procesor mora pristupiti memoriji preko sabirnice. Zbog male brzine sabirnice i dužeg vremena memorijskog pristupa, rezultat su slabe performanse. Ako se koristi L2 SRAM (statički RAM) keš, onda često informacije koje nedostaju mogu biti brzo dobavljene. Uštede zbog korištenja L2 zavise od stope pogodaka L1 i L2. Studije su pokazale korištenje L2 poboljšava performanse. Ali, korištenje višeslojnih keševa usložnjava projektovanje kod većine današnjih CPU L2 je na čipu i dodan je L3. Izvorno, L3 kešu se pristupalo preko eksterne sabirnice. U novije vrijeme, većina CPU ima ugrađen L3 na čipu. U oba slučaja, pojavljuju se poboljšanja performansi zbog dodavanja trećeg nivoa. Ujedinjeni vs. razdvojeni keš Prije: jedan keš za pohranjivanje podatkovnih i instrukcijskih referenci. Danas: razdvajanje keša na dva: za instrukcije i za podatke. Oba se nalaze na istom nivou, obično kao dva L1 keša. Dvije su potencijalne dobre stvari ujedinjenog keša: 1. Ujedinjeni ima veću stopu pogotka jer uravnotežuje instrukcijska i podatkovna dobavljanja; 2. Treba samo projektovati i implementirati jedan keš.
Ključna prednost razdvojenog keša je da eliminiše trku za kešom između jedinice za dobavljanje/dekodiranje i izvršne. Ovo je važno za instrukcijski pipelining. Unutrašnja memorija Osnova poluprovodničke memorije je memorijska ćelija. Poluprovodničke memorijske ćelije imaju zajednička svojstva: 1. Imaju dva (polu)stabilna stanja, koja se koriste za predstavljanje binarnih 1 i 0. 2. Za postavljanje stanja u njih se, bar jednom, može upisivati. 3. Iz njih se može čitati s obzirom na stanje (0 ili 1). Najčešće, ćelija ima tri izvoda koja prenose električni signal. Izborni izvod bira memorijsku ćeliju za čitanje/pisanje. Kontrolni izvod ukazuje na čitanje ili pisanje: Upis, drugi izvod daje signal koji postavlja stanje 0 ili 1 Čitanje, taj izvod se koristi za izlaz stanja ćelije. DRAM i SRAM Glavni tipovi poluprovodničke memorije: RAM (Random Acces Memory) ROM (Read Only Memory) PROM (Programmable ROM) EPROM (Erasable PROM) EEPROM (Electrically Erasable PROM) Flash Najčešća je RAM memorija. Karakteristike koje RAM razdvaja od drugih: Moguće veoma jednostavno i brzo izvršiti njeno čitanje i pisanje, što se postiže korištenjem električnih signala. Nepostojanost: RAM mora imati stalno napajanje strujom. Ako se struja isključi, gube se podaci. Zato se RAM koristi za privremeno pohranjivanje. RAM tehnologija: dinamička i statička. DRAM sadrži ćelije koje pohranjuju podatke kao kondenzatorske naboje. Prisustvo (odsustvo) naboja u kondenzatoru se tumači kao binarna 1 (0). Pošto kondenzator ima prirodno svojstvo pražnjenja, dinamički RAM-ovi zahtijevaju periodično osvježavanje radi održanja pohranjenih podataka. Dinamički se odnosi na sklonost curenja pohranjenog naboja, čak i kad je struja uključena. Tranzistor radi kao prekidač: Napon na adresnoj liniji prekidač zatvoren (struja teče) Napona na adresnoj liniji nema prekidač otvoren (nema struje). - Operacija upisa: Linija bita je priključena na napon: visoki napon - 1, a niski - 0. Onda se signal postavlja na adresnu liniju, dopuštajući punjenje kondenzatora. - Operacija čitanja: Odabirom adresne linije, tranzistor se uključuje, i prazni se kondenzator. Njegov naboj izlazi na liniju bita na odgovarajuće pojačalo. Pojačalo upoređuje napon kondenzatora
sa referentnom vrijednošću kako bi odredio da li ćelija sadrži 1 ili 0. Čitanje iz ćelije prazni kondenzator, pa se on mora ponovo napuniti kako bi se operacija završila. DRAM ćelija osnovi je analogni uređaj. Kondenzator može primiti bilo koji naboj iz datog raspona. Njegova veličina određuje da li se radi o 1 ili 0. Statički RAM (SRAM) je digitalni uređaj koristi iste logičke elemente kao procesor. Binarne vrijednosti se pohranjuju koristeći obične flip-flop konfiguracije logičkih vrata. Drži podatke dok je struja uključena. Adresna linija se koristi za otvaranje ili zatvaranje prekidača. Zaključak: DRAM i SRAM su nestalni. Mora postojati stalan napon struje da bi se sačuvali bitova. DRAM ćelija je jednostavnija i manja. Zato je DRAM gušći (više ćelija po jedinice površine) i jeftiniji. DRAM zahtijeva osvježavanje kola. Za veće memorije, troškovi osvježavanja se kompenziraju razlikom između cijene DRAM i SRAM ćelija. Zato, DRAM ima prednost kod većih memorijskih zahtjeva. Generalno, SRAM-ovi su nešto brži. Zato se SRAM koristi za keš, DRAM za glavnu memoriju. ROM sadrži podatke koji se ne mijenjaju. ROM je stabilan (što znači da se podaci ne gube prekidom napajanja struje). Iz njega je moguće čitati, nije moguće upisivati nove podatke. Važna primjena je mikroprogramiranje, a moguća upotreba je u sistemskim programima, funkcionalnim tabelama i bibliotečnim potprogramima za često tražene funkcije. Za skromnije zahtjeve, njegova prednost je što su podaci stalno u glavnoj memoriji i nema potrebe za učitavanjem sa sekundarnog uređaja. ROM se izrađuje kao bilo koji drugi integrisani čip, sa podacima ugrađenim u čip kao dio proizvodnog procesa. Zbog toga se javljaju dva problema: 1. Učitavanje podataka iziskuje relativno visok fiksni trošak, bez obzira da li se proizvodi jedna ili hiljade kopija 2. Ne smije se napraviti greška. Ako je samo jedan bit neispravan, cijela serija se mora baciti. Ako je potrebno manje ROM-ova određenog sadržaja, PROM je jeftinija varijanta. PROM je stabilan i u njega se upisuje samo jednom. Proces upisivanja se vrši električnim putem, a upisivanje vrši isporučilac ili korisnik. Potrebna je posebna oprema za upisivanje (programiranje). EPROM se čita ili piše električnim putem. Prije operacije upisa, sve ćelije moraju biti izbrisane na isto početno stanje izlaganjem čipa ultraljubičastom zračenju. Brisanje se obavlja osvjetljavanjem ultraljubičastom svjetlošću kroz prozor koji je ugrađen na čipu. Postupak se može ponoviti. Za brisanje treba do 20 minuta. Zato, se njegov sadržaj može mijenjati više puta. Praktički neograničeno drži podatke. EPROM je skuplji od PROM-a, ali prednost je što se njegov sadržaj može mijenjati. U EEPROM se upisivati u bilo kojem trenutku bez prethodnog brisanja sadržaja, samo se ažuriraju bajtovi na koje se promjena odnosi. Upisivanje znatno duže od čitanja (nekoliko stotina μs/b). Udružuje prednost postojanosti sa fleksibilnošću lokalnog ažuriranja koristeći običnu kontrolnu sabirnicu, adresne i podatkovne linije. Skuplji od EPROM-a i ima manju gustinu, podržavajući manje bitova po čipu.
Fleš memorija je oblik poluprovodničke memorije. Ime je dobila zbog brzine kojom se reprogramira. Prvi put se pojavljuje sredinom 1980-tih, međukorak između EPROM i EEPROM (cijenom i funkcijom). Kao EEPROM, fleš koristi električnu tehnologiju brisanja. Cijela fleš memorija može biti izbrisana za nekoliko sekundi, moguće je izbrisati neke blokove, ne mora čitav sadržaj. Ime je dobila po tome što se odjeljak ćelija briše jednom aktivnošću ili bljeskom. Međutim, ne podržava brisanje na nivou bajta.