Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 40

Organizacija raunara

Kontrolna jedinica

Kontrolna jednica
Upravlja pojedinim koracima u obradi
podataka i to na osnovu informacija
sadranih u instrukciji koju zahvata iz
memorije.
Sinhronizuje U/I jedinice, memoriju i
aritmetiko-logiku jedinicu.
Dva pristupa:
direktan (hardverski) i
mikroprogramski.

2/40

Instrukcijski ciklus
Procesor:
dobavlja naredbu (komandu, instrukciju) iz memorije
(fetch instruction)
interpretira naredbu dekodira je da bi utvrdio koju
akciju da izvri
dobavlja podatke ako naredba zahteva podatke iz
memorije ili U/I ureaja (fetch data)
procesira podatke ako naredba zahteva izvrenje
nekih aritmetikih ili logikih opeacija nad podacima
upis podataka ako naredba zahteva da se rezultat
upie u memoriju ili U/I jedinicu.
3/40

Instrukcijski ciklus

4/40

Instrukcijski ciklus
Svaka instrukcija mainskog jezika se
sastoji iz niza koraka (fetch, decode, itd.)
Svaki korak se sastoji iz niza
mikrooperacija
svaka mikrooperacija predstavlja osnovnu
funkcionalnu operaciju u procesoru

5/40

1. Dobavljanje instrukcije (fetch)


Fetch

PC sadri adresu sledee instrukcije


adresa iz PC se smeta u MAR (MAR PC)
adresa dospeva na adresnu magistralu
kontrolna jedinica zahteva itanje od memorije
(signalima na kontrolnoj magistrali)
rezultat se smeta na sabirnicu podataka
sa sabirnice podataka se rezultat smeta u MBR
(MBR memory)
za to vreme, PC se uvea za L (PC PC + L, gde
je L duina instrukcije)

t1: MAR PC
t2: MBR memory
PC PC + L
t3: IR MBR

iz MBR, dobavljena instrukcija se smeta u IR


(IR MBR)
6/40

1. Dobavljanje instrukcije (fetch)

t1: MAR PC
t2: MBR memory
PC PC + L
t3: IR MBR
7/40

Grupisanje mikroinstrukcija
Pravilan redosled mikroinstrukcija se mora
potovati (prvo ide MAR PC, pa onda
MBR memory)
Konflikti se moraju izbegavati
(istovremena itanja i pisanja i sl.)
zato moe MBR memory i PC PC + L

8/40

2. Dobavljanje operanada
Ako instrukcija zahteva dobavljanje
operanada, onda se oni dobave pre
izvrenja instrukcije
Primer direktnog adresiranja
(MOV R1, [1000]):
t1: MAR IR(Address)
t2: MBR memory
t3: R1 MBR
9/40

2. Dobavljanje operanada

t1: MAR IR(Address)


t2: MBR memory
t3: R1 MBR

10/40

3. Izvrenje instrukcije
Moe biti razliitog oblika
Zavisi od instrukcije koja se izvrava
Moe da sadri
itanje/pisanje po memoriji
ulazno/izlazne operacije
rad sa registrima
aritmetiko/logike operacije

11/40

Primer
Instrukcija ADD R1, X koja sabira sadraj R1 i sadraj
lokacije X, i rezultat smeta u R1
Mikrooperacije:
t1: MAR IR(Address) # adresni deo instrukcije u MAR
t2: MBR memory # sa zadate adrese proitamo i smestimo u MBR
t3: R1 R1 + MBR

Instrukcija ISZ x koja povea vrednost na lokaciji X i ako je


0, preskoi sledeu operaciju (HP 2100 raunar)
Mikrooperacije:
t1: MAR IR(Address)
t2: MBR memory
t3: MBR MBR + 1
t4: memory MBR
IF (MBR = 0) THEN PC PC + 2

# 2 je duina svake instrukcije

12/40

Primer

Instrukcija JMP X koja skae na adresu X


Mikrooperacije:
t1: PC IR(Address)

Instrukcija CALL X koja poziva potprogram na adresi X


Mikrooperacije:
t1: MAR SP
t2: MBR PC + L # L je duina tekue instrukcije
SP SP + LA # LA je duina adrese (32 bita, 64 bita, itd.)
t3: memory MBR
t4: PC IR(Address)

Instrukcija RET kojom se vraa iz potprograma


Mikrooperacije:
t1: MAR SP LA
t2: MBR memory
SP SP LA
t3: PC MBR

13/40

4. Provera prekida
Tekua vrednost PC se sauva u memoriji da bi se
po zavretku prekida moglo nastaviti
sadraj PC se smeta u MBR (MBR PC)

Specijalna adresa (npr. Stack Pointer) se smeta u


MAR (MAR SP)
MBR se snima u memoriju
(memory MBR i SP SP + LA
u PC se smeta adresa prekidne rutine (PC
interrupt_handler)
nakon ovog sledi regularno dobavljanje instrukcije
(ali ovaj put od prekidne rutine)
t1: MBR PC
t2: MAR SP
t3: memory MBR
SP SP + LA
14/40
t4: PC interrupt_handler

4. Provera prekida

t1: MBR PC
t2: MAR SP
t3: memory MBR
SP SP + LA
t4: PC interrupt_handler

15/40

Prefetch
Neki od koraka izvrenja instrukcije se mogu
preklapati, odn. obavljati istovremeno.
dok se instrukcija izvrava, moe se dobavljati
sledea

Ubrzanje nije duplo


fetch je bri od izvrenja
svaki skok ponitava prefetch
branch prediction

16/40

Pipelining
Preklapanje svih stepena izvrenja
instrukcije
Fetch instruction (FI)
Decode instruction (DI)
Calculate operands (CO)
Fetch operands (FO)
Execute instructions (EI)
Write result (WO)
17/40

Pipelining

18/40

Kontrolni signali

19/40

Primer

Cinc

Cinc CR

Mikro operacija

Tajming

Aktivni kontrolni signali

Fetch

t1: MAR PC
t2: MBR memory
PC PC + 1
t3: IR MBR

C2

t1: MAR IR(Address)


t2: MBR memory
t3: IR(Address) MBR(Address)

C8,C13

Dobavljanje operanda

C5, CR (CR read control signal)


Cinc (Cinc increment PC)
C4
C5, CR
C4

20/40

Direktna (hardverska)
implementacija kontrolne jedinice
Kontrolna jedinica je sekvencijalno digitalno kolo
Koristi se da generie fiksne sekvence kontrolnih signala
Implementira se upotrebom standardnih digitalnih
tehnika
Karakteristino za RISC procesore
jedna instrukcija po mainskom ciklusu
mainski ciklus nije takt, ve vreme za dobavljanje operanada iz dva
registra, raunanje i smetanje rezultata u registar)

operacije registar-registar
velik broj registara
jednostavni adresni modovi
jednostavan format instrukcija
sve instrukcije iste duine, pa se dekodiraju brzo

21/40

Direktna realizacija CU

22/40

Direktna realizacija CU
Prednost nad mikroprogramskim reenjem
vea brzina izvrenja operacija
manji broj komponenti

Mana
teko je izvesti izmene
teko popraviti greke
teko dodati nove instrukcije

komplikovana realizacija i testiranje


23/40

Primer RISC koda


C program:
while(i != j) {
if (i > j) i -= j;
else j -= i;
}

Asemblerski kod:
; set condition "NE" if (i != j),
; "GT" if (i > j), or "LT" if (i < j)
loop CMP Ri, Rj
SUBGT Ri, Ri, Rj ; if "GT" (greater than), i = i-j;
SUBLT Rj, Rj, Ri ; if "LT" (less than), j = j-i;
BNE loop ; if "NE" (not equal), then loop
24/40

Primer RISC koda


C program:
a += (j << 2);

Asemblerski kod:
ADD Ra, Ra, Rj, LSL #2

25/40

Mikroprogramska implementacija
kontrolne jedinice
Stanja svih prekidaa se smetaju u memoriju unutar
kontrolne jedinice
Sistemski asovnik pokree broja
Broja izbacuje binarni broj
Binarni broj se dekodira u jedan od 2n izlaza
Pobueni izlaz proziva memorijsku eliju
Sadraj prozvane memorijske elije su kontrolni signali koji
upravljaju svim komponentama
sadraj elije je mikroinstrukcija (mikrokod)
sekvenca mikroinstrukcija je mikroprogram ili firmver (firmware)

Karakteristino za CISC procesore


jedna instrukcija se izvrava u velikom broju ciklusa takta
komplikovani adresni modovi
komplikovan format instrukcija

26/40

Mirkroprogram
Sadraj jedne lokacije mikroprogramske
memorije je viebitna re
svaki bit te rei je jedan upravljaki signal

Svaka instrukcija je reprezentovana


skupom rei u mikroprogramskoj memoriji
svaka re predstavlja skup upravljakih
signala u jednom momentu

27/40

Mikroprogram

28/40

Wilkes-ova mikroprogramska
kontrolna jedinica iz 1951. godine

29/40

Mikroprogramirana kontrolna jedinica

30/40

Prednosti i mane CISC u odnosu


na RISC
Prednosti:
manji broj instrukcija u mainskom programu
instrukcije su monije od RISC instrukcija
mikroprogramiranje je jednostavnije od
dizajniranja hardverski implementirane
kontrolne jedinice
manja cena, manje greaka (Pentium FP
greka )
31/40

Prednosti i mane CISC u odnosu


na RISC
Mane:
sporije od direktne (hardverske)
implementacije
dekodiranje kompleksnih instrukcija je sporije zbog
promenljive duine instrukcije
promenljivog formata instrukcije

zbog manjeg broja registara, parametri i


povratne vrednosti se smetaju na stek, pa je
sporije izvrenje funkcija i procedura
32/40

RISC vs CISC
Konvergencija obe tehnologije
CISC procesori imaju sve vie registara
RISC procesori postaju sve kompleksniji
vei broj instrukcija

33/40

Case Study

4-bitni procesor
4-bitna data magistrala
4-bitna adresna magistrala
Program od tri instrukcije:
LD A, broj (ubaci broj u A)
LD B, broj (ubaci broj u B)
ADD A, B (A=A+B)
34/40

Fetch

Fetch:
S1: MAR PC
S2: MBR MEMORY
S3: PC PC + 1
S4: IR MBR

35/40

LD A, broj
Ubacuje u registar A broj koji sledi posle
instrukcije:
S1: MAR PC
S2: MBR MEMORY
S5: A MBR
S3: PC PC + 1

36/40

LD B, broj
Ubacuje u registar B broj koji sledi posle
instrukcije:
S1: MAR PC
S2: MBR MEMORY
S6: B MBR
S3: PC PC + 1

37/40

ADD A, B
Sabira sadraj registra A i B i rezultat
smeta u A:
S7: ALU1 A
S8: ALU2 B
S9: OP ADD
S10: A ALU_RESULT

38/40

Sadraj operativne memorije raunara


Adresa Sadraj

Objanjenje

0100

LD A, broj

0101

1000

LD B, broj

0011

1100

ADD A, B
39/40

Sadraj mikroprogramske memorije


0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

S1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0

S2
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0

S3
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0

S4
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0

S5
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0

S6
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0

S7
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0

S8
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0

S9
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0

S10
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
40/40

You might also like