Professional Documents
Culture Documents
mikroprocesora RISC
arhitekture
R0
0
.
.
R31
.
.
31
31
PC
IR
CPU
32 32-bitna registra ope
namjene
programsko brojilo PC
instrukcijski registar IR
232-1
Radna Memorija
Big-Endian Byte Ordering
kapacitet 232 byte
pristup 32-bitni 4 byte odjednom
Load/Store arhitektura: pristup memoriji
iskljuivo pomou load i store naredbi
31
27
op
1.
31
27
op
2.
31
3.
22
1.
2.
3.
c1
22
ra
27
op
ra
17
22
ra
rb
c1
17
rb
12
rc
c1
aritmetike:
add, addi, sub, neg
31
22
22
27
31
22
17
ra
rb
rc
brl
count
5
c3
shr, shra
shl, shc
00000
27
op
8.
17
ra
31
br
ne koristi se
c3
22
op
17
rb
c3
rc
22
ra
27
12
rb
27
op
31
rc
neg, not
c3
12
rb
27
op
31
rc
17
ra
ne koristi se
12
rb
22
op
12
rc
17
ne koristi se
31
6.
17
ne koristi se
27
op
5.
22
ra
31
c1
27
op
4.
c2
ra
31
3.
7.
rb
27
op
2.
17
ra
31
I N S T R U K C I J E
22
op
1.
F O R M A T
27
ne koristi se
nop, stop
27
22
op
17
ra
rb
c2
op
Znaenje
Nain adresiranja
ld ra, c2
R[ra] = M[c2]
direktno adresiranje
ld ra, c2(rb)
R[ra] = M[c2+R[rb]]
st ra, c2
M[c2] = R[ra]
direktno adresiranje
st ra, c2(rb)
M[c2+R[rb]] = R[ra]
la ra, c2
R[ra] = c2
la ra, c2(rb)
R[ra] = c2+R[rb]
16
c2
16
0101..................................01
31
000000000000000101..................................01
2.
c2
1101..................................01
31
111111111111111101..................................01
st (store)
2.
la (load address)
R[ra] = c2.
la ra, c2(rb)
R[ra] = c2 + R[rb].
prvih 64 k:
00000000h 0000FFFFh
zadnjih 64k:
FFFF0000h FFFFFFFFh.
31
16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0
16
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
F
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
F
Adresiranje pomakom:
adresa = R[rb] + c2
R[rb] baza
c2 pomak prethodno pretvoreno iz 17 u 32-bitni broj
Indirektno adresiranje:
adresa = R[rb] + 0
R[rb] baza
c2 = 0
27
22
op
ra
c1
op
Znaenje
Opis
ldr ra, c1
R[ra] = M[PC+c1]
str ra, c1
M[PC+c1] = R[ra]
lar ra, c1
R[ra] = PC+c1
Instrukcija
op
ra
rb
c1
Znaenje
Nain adresiranja
ld r5, 44
44
R[5] M[44]
Direktno
ld r5, 44(r6)
44
R[5] M[44+R[6]]
Pomak
ldr r7, 61
61
R[7] M[PC+61]
Relativno
st r11, 0(r12)
11
12
M[R[12]] R[11]
Indirektno registrom
str r11, 23
11
23
la r21, 78
21
78
R[21] 78
Trenutno
lar r17, 0
17
R[17] PC
Adresa u registar
27
op
22
ra
Instrukcija
17
ne koristi se
op
12
rc
ne koristi se
Znaenje
Opis
neg ra, rc
15
R[ra] = -R[rc]
dvojni komplement
not ra, rc
24
R[ra] = R[rc]
jedinini komplement
27
op
22
ra
17
rb
12
rc
ne koristi se
Instrukcija
op
Znaenje
Opis
12
zbroj
14
razlika
20
or ra, rb, rc
22
logiko ILI
27
22
17
op
ra
rb
c2
Instrukcija
op
Znaenje
13
R[ra] = R[rb] + c2
zbroj
21
logiko I
23
R[ra] = R[rb] or c2
logiko ILI
Opis
shr
0 1101.................................0
shra
1 1101.................................0
101................................01 0
shl
1101.................................0 1
27
op
22
ra
17
rb
c3
count
broj 0
10
27
22
op
ra
17
rb
12
rc
c3
broj = 0
Instrukcija
op
Znaenje
26
26
27
28
28
29
29
11
27
op
22
17
ne koristi se
op. kod
rb
12
rc
c3
uvjet
27
op
op. kod
22
ra
povezni reg.
17
rb
12
rc
c3
12
Instrukcija
Uvjet grananja
brnv, brlnv
000
Nikada
br, brl
001
Bezuvjetno
brzr, brlzr
010
Ako je R[rc] = 0
brnz, brlnz
011
Ako je R[rc] 0
brpl, brlpl
100
brmi, brlmi
101
rb
rc
c3 <2..0>
cond
000
R[5] PC
nikada
001
PC R[6]
bezuvjetno
001
R[7] PC
PC R[9]
bezuvjetno
11
010
nula
nula
op
ra
brlnv r5
br r6
brl r7, r9
brzr r11,r6
Znaenje
Uvjet R[rc]
brlzr r10,r11,r6
10
11
010
R[10] PC
ako je R[6] = 0 PC R[11]
brnz r4,r5
011
nije nula
nije nula
brlnz r3,r4,r5
011
R[3] PC
ako je R[5] 0 PC R[4]
brpl r5,r8
100
plus
brlpl r7,r5,r8
100
R[7] PC
ako je R[8] 0 PC R[5]
plus
brmi r4,r7
101
minus
brlmi r6,r4,r7
101
R[6] PC
ako je R[7] < 0 PC R[4]
minus
13
27
op
Instrukcija
ne koristi se
op
Znaenje
Opis
nop
stop
31
Run 0
nop:
Koristi se kod implementacije protone izvedbe mikroprocesora
(cjevovod).
stop:
Koristi se kod otkrivanja greaka u radu programa (debuger).
.....
14
SRISC Primjer IF
C programski isjeak:
#define Cijena 125
if (X<0) then X = -X;
SRISC ekvivalent:
Cijena
X:
Kraj:
.equ
.org
.dw
.org
lar
ld
brpl
neg
.....
125
1000
1
5000
r2, Kraj
r1, X
r2, r1
r1, r1
lar
27
r2
Kraj
22
op = 6
ra = r2
c1 = 3
00110
00010
r2, Kraj
31
la
27
r2
22
17
Kraj
op = 5
ra = r2
rb = 0
c2 = 5004
00101
00010
00000
15
T0
MA PC: C PC+4;
T1
MD M[MA]: PC C;
T2
IR MD;
T3
A R[rb];
T4
C A + R[rc];
T5
R[ra] C;
IZVRI
DOHVATI
Korak
16
IZVRI DOHVATI
Korak
RTN
Kontrolni niz
T0
MA PC;
T1
C PC+4: MD M[MA];
T2
IR MD;
T3
A R[rb];
T4
R[ra] A + R[rc];
17
Instruction Count IC
Ubrzanje =
= (IC*6* -IC*5*)/(IC*5*)*100=
= (6-5)/5 * 100 =
= 20%
2 = 1 * 1,1
IC je jednak
Ubrzanje =
= (IC*6*1 -IC*5*2)/(IC*5*2)*100=
= (IC*6*1 -IC*5*1,1*1)/(IC*5* 1,1*1)*100=
= (6-5,5)/5,5 * 100 =
= 9,1%
18
Kontrolni niz
T0
T1
IR MD;
T2
IZVRI DOHVATI
Korak
Instruction Count IC
Ubrzanje =
= (IC*6* -IC*3*)/(IC*3*)*100=
= (6-3)/3 * 100 =
= 100%
3 = 1 * 1,1
IC je jednak
Ubrzanje =
= (IC*6*1 -IC*3*3)/(IC*3*2)*100=
= (IC*6*1 -IC*3*1,1*1)/(IC*3* 1,1*1)*100=
= (6-3,3)/ 3,3 * 100 =
= 82%
19