Professional Documents
Culture Documents
1. Digitalni računar
Ulazno
CPU Primarna Sekundarna izlazni Periferije
memorija memorija interfejs
BUS
Sl.1
1
otpada četvrto adresno polje. Treće adresno polje se ukida ako se dogovori da se rezultat
primene instrukcije pamti na lokaciji gde je bio prvi operand. Tako se dobija format
instrukcije za dvoadresni računar. Prvo adresno polje moze da se ukine ako se fiksira
lokacija u kojoj se nalazi prvi operand odnosno rezultat. Ta fiksirana unapred poznata
lokacija se zove akumulator i predstavlja jedan od registara koji se nalaze unutar CPU-a.
Uvođenjem akumulatora, dobija se koncept jednoadresnog kompjutera ili
ACUMULATOR TYPE COMPUTER. Koncept jednog registra unutar CPU-a je oštro
limitirajući i zato se pored akumulatora, uvode dodatni registri unutar CPU. Time se
dobija jednoipoadresni kompjuter ili REGISTER FILE TYPE COMPUTER kod koga
operandi leže u vise CPU registara koji se kraće i jednostavnije adresiraju (kratka adresa)
u odnosu na adresiranje po glavnoj memoriji (puna adresa), Slika 3.
Operaciono polje sadrži operacioni kod instrukcije, koji definiše poslove koje
CPU treba da izvrši. Adresno polje sadrži neki sistem zapisivanja adrese na kojoj se
nalazi operand. Sistem zapisivanja adrese se označava kao način adresiranja. Različiti
načini adresiranja se koriste da bi se postigla optimizacija brzine rada i potrošnje
memorije računara.
Prema poslu koji obavljaju (operacionom kodu), postoji vise vrsta (grupa)
instrukcija:
- transfer (load/store) instrukcije za smeštanje/uzimanje podataka iz memorije,
- aritmetičko/logičke instrukcije za (+,-,x,:)/(AND,OR,NOT,…) operacije,
- šift i rotiranje instrukcije koje pomeraju sadržaj sa gubitkom bita ili kružno bez
gubitka bita,
- Džamp/brenč (jump/branch) instrukcije koje menjaju sekvencu instrukcija koje se
izvršavaju jedna za drugom uvodeći preskakanje delova programskog koda
zavisno od ispunjenja zadatih uslova (uslovni skok) ili nezavisno (bezuslovni
skok), cime se omogućuje realizacija potprograma, na primer.
- ulazno-izlazne instrukcije (input/output) koje omogućavaju unošenje/iznošenje
podataka u procesorske registre,
- kontrolne instrukcije kojima se upravlja radom CPU (STOP, WAIT,…).
Instrukcija može da ima više različitih načina adresiranja. Načini adresiranja su
detaljno opisani u stručnoj literaturi. Ovde su date samo osnovne napomene za način
adresiranja:
- IMMEDIATE ADDRESSING, u adresnom polju na slici 3 je data vrednost
operanda,
- DIRECT REGISTER ADDRESSING, u adresnom polju na slici 3 se nalazi kratka
adresa registra u kome se nalazi operand,
- APSOLUTNO ADRESIRANJE, u adresnom polju na slici 3 se nalazi adresa
lokacije u memoriji u kojoj je operand (stvarna adresa lokacije u memoriji u kojoj
se nalazi operand se zove efektivna adresa; to znaci da se kod apsolutnog
adresiranja u adresnom polju instrukcije nalazi efektivna adresa),
- INDIRECT ADDRESSING postoji u vise varijanti; suština je da se adresa
operanda nalazi u registru ili u nekoj memorijskoj lokaciji, a da se u adresnom
polju instrukcije na slici 3 nalazi adresa od registra ili od te memorijske lokacije;
2
postoji mogućnost i da se efektivna adresa izračuna sabiranjem sadržaja
adresiranog registra i nekog broja iz instrukcije u kom slučaju se govori o
indeksnom adresiranju.
3
eksterni CD-ROM kao peti. Procesor je povezan sa glavnom memorijom, a sadržaj se
prebacuje iz sekundarne u primarnu memoriju da bi CPU brzo pristupao informacijama.
Menadžment memorije je deo računarske struke koji se bavi ovim poslom.
Ulazni interfejs se koristi za unošenje programa koga kreira korisnik.
Izlazni interfejs se koristi za prikaz rezultata koje je napravio izvršeni program.
Računar može da poseduje i dodatne, periferne uređaje (A/D konvertore,
tajmere i slično). Svaka periferija se u programerskom smislu vidi kao trojka registara
(DATA je registar za razmenu podataka između CPU i periferije, STATUS je registar u
koji periferija zapisuje svoj status, CONTROL je registar u koji CPU zapisuje binarni
sadržaj koji definiše konfiguraciju i funkcije periferije).
Blokovi računara razmenjuju međusobno podatke preko zajedničkih električnih
linija koje se označavaju kao magistrala (BUS). Magistrala sadrži tri grupe linija.
- DATA BUS su linije po kojima se razmenjuju podaci između blokova računara.
Prema broju električnih linija u magistrali za podatke, računari se klasifikuju kao
4-bitni, 8-bitni, 16-bitni, 32-bitni, 64-bitni.
- ADDRESS BUS su linije po kojima se postavlja adresa tako da se odredi mesto
odakle se podatak uzima ili odlaze. Broj električnih linija u adresnoj magistrali
određuje ukupan broj raspoloživih memorijskih lokacija (opseg adresa).
Programski kod, podaci, registri unutar CPU, periferije, i drugi resursi se smeštaju
u različite delove raspoloživog memorijskog prostora. Šematski prikaz korišćenja
memorijskog prostora se zove memorijska mapa.
- CONTROL BUS su linije po kojima se šalju signali za upravljanje radom delova
računara (enable, select, ready,….).
4
memorije računara. Blok-šema CPU je pokazana na slici 4.
Instrukcijski Acumulator
registar B B
ALU
B Register
File
Kontrolna
jedinica
CU SP
Condition code register PC
CPU
Slika 4.
CPU komunicira sa ostalim delovima računara preko data busa za razmenu podataka,
address busa za selekciju lokacija u memoriji i control busa za upravljanje sa memorijom
i periferijama.
CPU poseduje interni BUS preko koga se razmenjuju podaci unutar CPU i sa
spoljnim svetom. Interni BUS može da bude singl što znači da u jednom trenutku može
da se obavi samo jedna transakcija izmedju registara unutar CPU-a. Singl interni BUS
zahteva bafer registre B u kojima se privremeno smeštaju podaci dok čekaju dalji
prenos ili obradu. Bafer registri mogu da postoje i na data linijama izmedju Data BUS-a
računara i Internog BUS-a CPU-a, kao i na adresnim linijama od programskog brojača
PC do address BUS-a računara. Može da postoji dva ili više internih BUS-ova unutar
CPU-a da bi se povećala efikasnost rada CPU-a.
Instrukcija se uzima iz memorije u toku feč ciklusa preko data BUS-a i internog BUS-
a od CPU-a i smešta se u instrukcijski registar. Kontrolna jedinica procesora (CU),
na osnovu sadržaja instrukcijskog registra, generiše interne kontrolne signale za
upravljanje unutrašnjim resursima CPU-a i kontrolne eksterne signale za control BUS
računara tako, da se zadata instrukcija izvrši.
Register file je mesto gde se nalaze operandi i mesto gde se smeštaju rezultati.
Akumulator je registar u kome se nalazi jedan od operanada i u koji se stavlja
rezultat operacije.
Programski brojač je registar u kome se nalazi adresa instrukcije koja je sledeća
na redu za izvršavanje. On se automatski inkrementira za jedan posle očitavanja tekuće
instrukcije.
Stek pointer je registar koji pokazuje adresu vrha steka u memoriji.
5
Stek je blok vezanih lokacija u memoriji u koji se po sistemu punjenja magacina
puške, smeštaju vrednosti registara CPU-a kada se prekine tok izvršavanja tekućeg
programa sa ciljem da se izvrši neka nova rutina. Svrha steka je da po okončanju
izvršenja nove rutine, CPU može da se vrati na mesto gde je stao i da nastavi izvršavanje
tekućeg programa kao da izvršavanja nove rutine nije ni bilo.
Ostali registri u register fajlu sadrže adrese memorijskih lokacija sa podacima ili
same podatke.
Aritmrtičko-logička jedinica (ALU) obavlja aritmetičke i logičke operacije nad
operandima. Rezultat operacija se smešta u akumulator, a osobine (svojstva) obavljenih
operacija se beleže u condition code register čiji se bitovi odvojeno beleže i tumače
(''zero flag''=0 kada je rezultat operacije nula, na primer).
Rad CPU se odvija kroz prenos podataka izmedju registara i sa memorijom, pod
odredjenim uslovima. Pored transfera podataka, CPU obavlja i aritmetičke i logičke
operacije. Rad CPU se koncizno opisuje simboličkim jezikom RTL (Register Transfer
Logic), čija je sintaksa ilustrovana narednim primerom.
6
izvedenim subtaktom (subclock) veće učestanosti. Sve interne operacije CPU su inicirane
sa taktom koji je obično stabilisan sa kristalom kvarca. Fečovanje se završava kada se
poslednja memorijska reč smesti u instrukcijski registar.
Jedan ciklus fečovanja instrukcije zapisan u RTL-u ima formu:
FT1: ABUS ← PC
FT2: RD ← 1, AS ← 1, PC ← PC+1
FT3: RD ← 1, AS ← 1, IR ← DBUS
Objašnjenja:
F je kontrolni signal koji označava da je fečovanje aktivno (generiše ga CU)
T1 je prvi taktni ciklus kada se postavljaju i smiruju adresne linije (adrese)
T2 je drugi taktni ciklus kada CU postavlja eksterne kontrolne linije za čitanje memorije
(RD read, AS address strobe) i uvećava programski brojač za jedan
T3 je treći taktni interval u kome se drže nepromenjeni kontrolni signali RD i AS i vrši
presipanje sadržaja raspoloživog na DATA BUS-u u instrukcijski registar.
Jedan red u RTL zapisu se zove MIKROOPERACIJA (registarski transfer) i
obavlja se u jednom taktu ili jednom subtaktu. Operacije odvojene zarezom u jednom
registarskom transferu (RTL zapisu), odnosno mikrooperaciji se zovu ELEMENTARNE
OPERACIJE i one se izvršavaju simultano. Kod izvršavanja jedne mašinske instrukcije,
obavlja se sekvenca mikrooperacija, odnosno registarskih transfera.
Egzekjut ciklus se sastoji od više ciklusa čitanja (read) i upisa (write) izmedju
memorije i CPU registara.
Čitanje podataka iz memorije (Execute read cycle) se odvija tako što se adresa,
koja je na neki način zabeležena u instrukciji koja leži u instrukcijskom registru, izračuna
i postavi na adresni BUS. Kontrolna jedinica CU postavi eksterne i interne kontrolne
signale tako da se posle nekog vremena na DATA BUS-u računara pojave podaci. CPU
pod komandom internih kontrolnih signala upisuje očitane podatke u akumulator.
Upis podataka u memoriju (Execute write cycle) se odvija tako što kontrolna
jedinica CU preko internih i eksternih kontrolnih signala stavi sadržaj akumulatora na
data BUS, a adresu koja je na neki način zabeležena u instrukciji koja leži u
instrukcijskom registru, izračuna i postavi na adresni BUS. CPU pod komandom
eksternih i internih kontrolnih signala upisuje podatke iz akumulatora u definisanu
lokaciju u memoriji.
Sledi primer sabiranja operanada koji se nalaze u registrima Ri i Rj sa
smeštanjem sume u registar Rj zapisan u RTL-u.
RTL zapis:
EADDRRT1 Temp1 ← Ri
EADDRRT2 Temp2 ← Rj
EADDRRT3 Temp3← Temp1+Temp2
EADDRRT4 Rj ← Temp3
7
Gde je EADDRR signal koji dozvoljava sabiranje u AL. Temp1, Temp2, Temp3 su
temporary (bafer) registri vezani za ALU. T1, T2, T3, T4 su taktni (subtaktni) intervali.
3. Upravljačka jedinica – CU
Upravljačka jedinica CU ima zadatak da generiše kontrolne signale potrebne za
izvršavanje instrukcija. Eksterni kontrolni signali služe za upravljanje delovima računara
izvan CPU. Interni kontrolni signali služe za upravljanje sklopovima unutar CPU.
Pomoću kontrolnih signala se upravlja resursima u cilju izvršavanja instrukcije kroz
izvršavanje sekvence mikrooperacija (niza povezanih mikrooperacija).
Upravljačka jedinica može da se realizuje sa gejtovima i brojačima sa
pomeranjem sadržaja (Random logic design).
Upravljačka jedinica može da se realizuje i mikroprogramski (Microprogrammed
design).
Mikroprogramska realizacija upravljačke jedinice se pravi tako što se mašinska
instrukcija predstavi sa sekvencom mikroinstrukcija, a svaka mikroinstrukcija se zapamti
u memoriji upravljačke jedinice sa sadržajem koji odgovara vrednostima kontrolnih
signala potrebnih za izvršenje tekuće mikroinstrukcije čija je adresa postavljena na
adresne ulaze memorije u CU. Da bi se izvršila cela instrukcija koja sadrži M
mikroinstrukcija, potrebno je da takt (subtakt) pomeri adresu na memoriji CU od prve do
M-te adrese (mikroinstrukcije) počevši od početne adrese koja odgovara instrukciji
zapisanoj u instrukcijskom registru, koja se izvršava. Time se na data izlazima memorije
pojavljuju kontrolni signali pod dejstvom takta (subtakta) ili se sadržaj na izlazu
memorije mora dodatno dekodovati da bi se dobili kontrolni signali. Sekvenca
mikroinstrukcija sa kojom se definiše jedna instrukcija se zove mikroprogram, a
memorija u upravljačkoj jedinici se zove kontrolna memorija.
8
9
10
11
12