недеља, 25. децембар 2011.

Staticke i dinamicke RAM memorije


Staticke RAM memorije kad zapamte sadrzaj u celiji ne zahtevaju proces u cilju obnavljanja sadrzaja, formiraju se kao Flip - Flopovi  sa 4 - 6 tranzistora. Glavne odlike staticke memorije su velika brzina rada, velika potrosnja elektricne energije, mala gustina pakovanja, zauzimaju malo prostora, visoka cena. Glavna primena statickih memorija je u CacheMemory procesora zbog velike brzine.
Ako se kondenzator napuni i ostavi bez opterecenja on ce se lagano prazniti zavisno od velicine i njegovog kvaliteta. Da bi se sadrzaj kondenzatora odrzao u duzem vremenskom periodu potrebno ga je povremeno dopunjavati na onu vrednost koji treba da pamti. Savremene poluprovodnicke dinamicke memorije koriste za punjenje kondenzatora MOSFET tranzistor i kondenzatore koji se u toj tehnici relativno jednostavno prave. Na sledecoj slici prikazana je jedna celija dinamicke memorije koja pamti 1 Bit.
Ocigledna su sledeca svojstva dinamicke memorije:
- Koriste 1 tranzistor po celiji pa je njihova gustina pakovanja veca u odnosu na staticke memorije.
-Tranzistor provodi povremeno da bi se napunio i ocitao sadrzaj kondenzatora.
- Tehnologija dinamickih memorija odredjuje njihovu nisku cenu.
-Punjenje kondenzatora zahteva izvesno vreme, to se izvesno odnosi i na praznjenje, pa su dinamicke memorije znatno sporije u odnosu na staticke.
-Obnavljanje sadrzaja dinamickih memorija vrsi se u regularnim intervalima reda par mili sekundi ( Flash Controler ).
* Pobrojane karakteristike memorija omogucavaju njihovo koriscenje kao glavne operativne memorije u PC-u.

ROM - PROM - EEPROM - FLASH


ROM - U velikom broju slucajeva softver masine se uopste ne menja ili se neke tabele fiksnih vrednosti stalno koriste, zbog toga ne postoji potreba da se svaki put ucitava softver u RAM memoriju. Tipicne primene vezane su za koriscenje mikro kontrolera zbog toga se softver samo jednog upisuje u poluprovodnicku memoriju, a ona se dalje samo ocitava.
PROM - Kada se radi o masovnoj proizvodnji uredjaja najjednostavnije je razvijen softver upisati vec pri proizvodnji integrisanog kola. Ovakve ROM memorije se zovu Mask Programmable. Za manje serije uredjaja ostavljena je mogucnost korisniku da sam svoj softver ubaci u memoriju - Ovakve ROM memorije se zovu Field Programmable.
EEPROM - Savremeni nacin brisanja memorije je pomocu struje, takve memorije se zovu EEPROM - Electricaly Eraseable PROM. Glavna osobina EEPROM - a je pisanje i brisanje jedne reci  u memoriji. Vek trajanja ovih memorija ( Ciklusa pisanja i brisanja ) reda je 100.000. Cena EEPROM-a je visoka u poredjenju sa drugim tipovima ROM memorije.
FLASH - Osnovna karakteristika Flash memorija je brisanje u blokovima. Ovaj proces brisanja pronalazace je podsetio na blic fotoaparata ( Flash ). Flash memorije koriste MOSFET tehnologiju kod izrade memorijske celije sa 2 Gate-a. Jedan gate je upravljacki, a drugi izolovani. Kada se na izolovani gate dovedu elektroni oni se tu zadrzavaju dugi niz godina i menjaju prag provodjenja i time se pamti upisano stanje.
Postoje 2 vrste Flash memorija: NOR i NAND. Kod NOR memorija moze da se vrsi ocitavanje rec po rec i zato se koriste kao memorije mikro kontrolera. NAND Flash memorije mogu da se citaju samo u blokovima, nesto slicno citanju podataka sa hard diska, njihova primena jeste da zamene HDD. Flash memorije su u poredjenju sa EEPROM znatno jeftinij. Zivotni vek u broju ciklusa pisanja i brisanja je manji nego kod EEPROM.
Veoma slozene programabilne memorije su FPGA - Field programmable gate array. FPOA - Field programmable object array. Njihova primena je upravljanje u realnom vremenu ( Vojna industrija ).

Programski brojac / Program Counter


Niz instrukcija u programskoj memoriji treba da se izvrsava nekim redosledom. Registar ciji je to zadatak zove se programski brojac ( Program Counter ). Brojac se sastoji od Flip-Flopova.
Stanje programskog brojaca se menja u regularnim vremenskim intervalima pomocu generatora radnog takta. Kazemo da ovaj generator odredjuje radnu ucestanost procesora.
Radni Takt (clock)
PC
Kada se dovede napon napajanja programski brojac se resetuje na 0. Signali programskog brojaca predstavljaju adresu lokacije u programskoj memoriji (adresu 0 nakon dovodjenja napona napajanja). Na lokaciji 0 se nalazi neka instrukcija koja se ocitava i na neki nacin izvrsava. Ciklus izvlacenja instrukcije iz memorije zove se Fetch Cycle. Nakon izvrsavanja instrukcije sadrzaj brojaca se povecava na 1, pa sad on adresira lokaciju 1. Prethodno opisan proces se ponavlja.

Princip prozivanja periferija - Interrupts ( prekidi ) - IRQ


Procesor komunicira sa nizom jedinica ciji je zadatak priprema podataka za obradu ili prijem podataka nakon obrade. Ove jedinice zovu se periferijske i mogu da se podele na ulazne i ulazno izlazne.
* Zadatak ulaznih jedinica je priprema podataka za procesiranje : Tastatura, Mis.
*Izlazne jedinice primaju podatke nakon obrade: Monitor.
*Ulazno izlazne mogu i da primaju i da salju podatke procesoru: HDD, CD Drive, DVD, Flash.

U cilju razmene podataka sa periferijama CPU treba da zna stanje u kome se one nalaze:
* Da li ulazna jedinica ima spremne podatke za ucitavanje.
* Da li izlazna jedinica moze da primi obradjene podatke ili je zauzeta.

Na sledecoj slici prikazan je najjednostavniji nacin utvrdjivanja stanja periferije metodom pozivanja periferije od strane CPU po unapred utvrdjenom proizvodu.
Pozivanje pojedinih periferija vrsi se u regularnim vremenskim intervalima. Ako procesor ustanovi da je periferija spremna za rad sa podacima prekinuce izvrsavanje svog glavnog programa i poceti rad na komunikaciji sa periferijama. Ako periferija nema potrebe za komunikaciju sa procesorom procesor prelazi na utvrdjivanje stanja sledece periferije.
Glavni nedostatak ovakvog pristupa je ispitivanje stanja periferija, cak i u slucaju kada one nemaju sta da kazu procesoru ( Stanje tastature se ispituje bez obzira da li je neki taster pritisnut ili ne ). Vreme procesora se uzaludno trosi i proces glavne obrade usporava.
Resenje se nalazi u mehanizmu interapta. Procesor ne proziva periferiju . Umesto toga periferija signalizira procesoru da je spremna za prijem podataka ili da ima spremne podatke za cpu. Procesor ce prekinuti glavni program i preci na rad sa periferijom. Nakon obavljene procedure procesor nastavlja rad na glavnoj obradi. Kazemo da je periferija poslala zahtev za prekidom IRQ - Interrupt Request.
Za svaku periferiju vezan je tzv. vektor interapta, koji je adresa lokacije u memoriji na kojoj se nalazi instrukcija bezuslovnog skoka na prvu instrukciju programa interapta.

Maskiranje i prioriteti interapta


U nekim slucajevima potrebno je spreciti izvrsavanje interapta bez obzira na postojanje zahteva. To se vrsi postupkom  maskiranja interapta. Uobicajeno je da za tu svrhu procesor ima registar za maskiranje interapta.
Ako je bit M u mask registru programski postavljen na 0 CPU nece dobiti zahtev za interaptom zato sto je IRQ blokiran na " I " kolu. Ako je bit M postavljen na 1 interapt je omogucen. Postupak omogucavanja interapta vrsi se tokom podizanja sitema nakon ukljucivanja napajanja odnosno procesor inicijalizacije.
Neki interapti spadaju u klasu ne maskirajucih interapta ( NMI - Non Mascable Interrupt ) to znaci da se oni uvek izvrsavaju kad god se pojavi zahtev.
Tokom izvrsavanja nekog interapta moze da se javi zahtev za izvrsavanjem nekog drugog interapta, interapt u interaptu - nested interrupts. Ovakva situacija se izvrsava prioritetima interapta, izvrsice se onaj interapt koji ima visi prioritet. (Dolazeci interapt ako je nizeg prioriteta sacekace da se izvrsi tekuci interapt ili ce prekinuti tekuci interapt ako je dolazeci viseg prioriteta).
Kod nekih procesora postoji automatsko maskiranje svih drugih interapta cim neki interapt pocne da se izvrsava . Nakon njegovog zavrsetka bira se interapt najviseg prioriteta. Ovakvu semu moze da promeni programer zavisno od problema koji resava.

Pipeline


Arhitektura procesora o kojoj je do sad bilo reci ( Fon Nojmanova ) za izvrsavanje jedne instrukcije u jednom trenutku nad jednim ili najvise dva podatka.
Analizom obrade podataka ustanovljeno je da se slozeni problemi mogu da razloze na niz jednostavnih operacija koje mogu jednovremeno da se izvrsavaju . Kazemo da se operacije izvrsavaju paralelno ili konkurentno.
Nivoi paralelnosti zavise od stupnja sa kojeg se posmatra p (pocev od nivoa bit-a do mreza racunara).
c = a * b
d = 2a + b
e = a * a + b * b
Niz ovakvih operacija umesto da se sekvencijalno izvrsava kao kod Fon Nojmanove arhitekture moze da se razlozi na 3 jednostavna problema sa paralelnim izvrsavanjem. Jasno je da je proces obrade znacajno ubrazan. Ovakvo programiranje se zove konkurentno programiranje i zahteva takve jezike.
Princip pipeline-a uvodi paralelizam na nivou instrukcija i moze se uporediti sa proizvodnom trakom za automobile. Citav proces od izvrsavanja instrukcije do njegovog izvrsavanja izdeljen je na delove i odredjene hardverske jedinice. Razlozene *** putuju duz ovih jedinica i jednovremeno se izvrsava neki deo razlozenih instrukcija. Ocigledno vreme potrebno za izvrsavanje instrukcija priblizno je isto ali je propusna moc celog sistema povecana.
Broj stepena na koji se razlaze instrukcija moze da bude nekoliko desetina. Vreme potrebno da instrukcija prodje ceo pipeline zove se latentno vreme. Latentno vreme se povecava za *** pipelinea zbog uvodjenja dodatnih hardverskih komponenti za svaki stepen. Brzina obrade je povecana usloznjavanjem procesora na hardverskom nivou.

Superskalarni procesori


Procesori mogu da budu skalarni i vektorski. Skalarni su Fon Nojmanovog tipa  - 1 ili 2 podatka u jednoj instrukciji. Vektorski procesori izvrsavaju jednu instrukciju nad vecim brojem podataka ( SIMD - Single Instruction Multiple Data ). Supersklalarni procesori predstavljaju mesavinu skalarnih i vektorskih procesora.
Instrukcije se izvrsavaju nad jednim ili 2 podatka ali se jednovremeno ( paralelno ) izvrsava vise instrukcija. Paralelizam se ostvaruje u ovom slucaju pomocu veceg broja istorodnih jedinica ( veci broj jedinica ALU i FPU ).
Potrebno je naglasiti da se paralelizam u ovom slucaju odvija unutar jednog procesora. Kljucna jedinica super skalarnog procesora je dispecer ciji je zadatak utvrdjivanje koje instrukcije mogu da se paralelno izvrsavaju i njihovo upucivanje u paralelne kanale. Svi superskalarni procesori u sebi sadrze pipeline.
Procesori mogu da budu skalarni i vektorski. Skalarni su Fon Nojmanovog tipa  - 1 ili 2 podatka u jednoj instrukciji. Vektorski procesori izvrsavaju jednu instrukciju nad vecim brojem podataka ( SIMD - Single Instruction Multiple Data ). Supersklalarni procesori predstavljaju mesavinu skalarnih i vektorskih procesora.
Instrukcije se izvrsavaju nad jednim ili 2 podatka ali se jednovremeno ( paralelno ) izvrsava vise instrukcija. Paralelizam se ostvaruje u ovom slucaju pomocu veceg broja istorodnih jedinica ( veci broj jedinica ALU i FPU ).
Potrebno je naglasiti da se paralelizam u ovom slucaju odvija unutar jednog procesora. Kljucna jedinica super skalarnog procesora je dispecer ciji je zadatak utvrdjivanje koje instrukcije mogu da se paralelno izvrsavaju i njihovo upucivanje u paralelne kanale. Svi superskalarni procesori u sebi sadrze pipeline.