1
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Arhitektura Motorole 68000
2
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Pojednostavljeni prikaz
MEMORIJA
RAM, ROM, ...
VANJSKIUREĐAJI
tipkovnica,miš,
Monitor,...
CPU
registriALU
interne sabirnice
Adresna sabirnica
Podatkovna sabirnica
Kontrolna sabirnica
3
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Osnovne komponente CPUa
➢ ALU – aritmetičko-logička jedinica➢ Registri dohvatljivi programu
– Adresni
– Podatkovni
– Statusni
– Uvjetni
…
➢ Registri nedohvatljivi programu➢ Nema: FPU (floating-point unit), priručnu
memoriju (cache)
4
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Sabirnice (buses)
➢ Sabirnice su prijenosnici podataka između registara, vanjske memorije i ALU
➢ Dijelimo ih na:● Adresnu (prijenos adrese, 24 bita)● Podatkovnu (prijenos podataka)● Kontrolnu (prijenos podataka i upravljanje
vanjskim uređajima)
5
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Načini rada procesora
Nadgledni– instrukcije koje nisu potrebne običnom korisniku
– upravljanje poslovima (task scheduler) i obrađivanje prekida (interrupt handling)
– programi imaju pristup cijeloj memoriji
Korisnički– većina se programa izvršava u ovom načinu rada
– program ima pristup samo vlastitim podacima
6
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Načini rada procesora
➢ Jedini način da program iz korisničkog rada pređe u nadgledni jest pomoću iznimki (prekidi od vanjskih uređaja i nelegalne instrukcije)
➢ prelazak iz nadglednog u korisnički je dopušten
7
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Registri u kor. načinu rada
Podatkovni● 8 registara veličine 32 bita● D0, D1, …, D7● 1, 8, 16, 32 bitne operacije nad registrima
Programsko brojilo (PC)● Sadrži adresu sljedeće instrukcije● 32 bitni registar
8
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Registri u kor. načinu rada
Adresni● 8 registara veličine 32 bita● A0, A1, ..., A7● 16 i 32 bitne operacije nad registrima● Sign extension● A0, ..., A6 općenamjenski● A7 pokazivač na korisnički stog
9
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Registri u kor. načinu rada
Uvjetni (Condition code)● Carry bit (C)● Zero bit (Z)● Negative bit (N)● Oveflow bit (O)● Extend bit (X)
7 6 5 4 3 2 1 0
X N Z V C
10
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Registri u nad. načinu rada
Adresni● U nadglednom načinu rada adresni registar A7
sadrži pokazivač na nadgledni stog
Statusni● Supervisor bit (S)● Trace bit (T)
● I0, I1, I2 – interrupt mask bits
7 6 5 4 3 2 1 0
X N Z V C15 14 13 12 11 10 9 8
T S I2 I1 I0
11
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Memorija
➢ Linearna➢ Neprekidan blok ćelija➢ 0x00000000 – 0x00ffffff➢ Adresni prostor 16 MB➢ Vanjski uređaji imaju jedinstvenu
memorijsku lokaciju
N
N+1
N+2
N+3...
a1
b2
cc
01
12
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Memorija
➢ Osnovna jedinica 1 byte = 8 bita➢ 16 ili 32 bitni operandi moraju
početi na parnim adresama➢ Big endian
N
N+1
N+2
N+3...
a1
b2
cc
01
31 23 15 7 0
MSB LSB
a1 b2 cc 01registar
13
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Domaći rad :)
➢ Napišite program, u proizvoljnom programskom jeziku, koji ispisuje na standardni izlaz “Little Endian” ukoliko je procesor na kojem se vrti little endian, odnosno “Big Endian” za big endian procesore.
14
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Načini adresiranja
15
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Implicitno adresiranje
➢ Za instrukcije kojima je adresa operanda određena instrukcijskim kodom kažemo da koriste implicitno adresiranje
➢ Na primjer:● RTS (Return from Subroutine) uvijek dohvaća
operand (povratnu adresu) s vrha stoga.● BRA (Branch) uvijek koristi programsko brojilo (PC) i
kao drugi operand uzima adresu na koju se grana.
16
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Direktno adresiranje
➢ U direktnom adresiranju instrukcija eksplicitno dobiva adresu operanda
➢ Direktno adresiranje dijelimo na:● Direktno adresiranje podatkovnog registra● Direktno adresiranje adresnog registra● Trenutno● Apsolutno
17
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Direktno adr. pod. registra
➢ U ovom tipu adresiranja podatkovni registar sadrži operand
➢ Označavamo ga sa Dn, gdje n označava broj željenog registra
➢ Primjer:
MOVE.L D0,D3
D0: 10204FFF D0: 10204FFF
D3: 1034F88A D3: 10204FFF
18
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Direktno adr. adresnog reg.
➢ U ovom tipu adresiranja adresni registar sadrži operand
➢ Označavamo ga sa An, gdje n označava broj željenog registra
➢ Primjer:
MOVEA.L A0,A3
A0: 00200000 A0: 00200000
A3: 0004F88A A3: 00200000
19
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Trenutno adresiranje
➢ U trenutnom adresiranju operand je dio instrukcije, podaci slijede instrukcijski kod u memoriji.
➢ Koristimo znak # za oznaku ovog adresiranja
MOVE.L #$1FFFF, D0
D0: 012309FF D0: 0001FFFF
20
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Apsolutno adresiranje
➢ U apsolutnom adresiranju adresa operanda je dio instrukcije
➢ Adresa slijedi instrukcijski kod u memoriji.➢ Adresa može biti 16 ili 32 bita velika
MOVE.L #$10030, $1200
00001200 00 00001200 00
00001201 00 00001201 01
00001202 00 00001202 00
00001203 00 00001203 30
21
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Indirektno adr. pomoću reg.
➢ U indirektnom adresiranju pomoću registara adresu operanda sadrži adresni registar ili programsko brojilo. Kažemo da registar pokazuje na operand.
➢ Indirektno adresiranje (IA) dijelimo na:● IA pomoću adresnog registra (IAPAR)● IA pomoću adresnog registra uz preddekrementiranje● IA pomoću adresnog registra uz postinkrementiranje
22
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Indirektno adr. pomoću reg.
● IA pomoću adresnog registra uz odmak● IA pomoću adresnog registra uz indeks i odmak● IA pomoću programskog brojila (IAPPB) uz odmak● IA pomoću programskog brojila uz indeks i odmak
23
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
IA pomoću adresnog registra (IAPAR)
➢ U ovom tipu adresiranja adresni registar sadrži adresu operanda
➢ Za poziv stavimo ime adresnog registra unutar zagrada
MOVE D0, (A0)
D0: 10434567 00001200 10
A0: 00001200 00001201 43
00001202 45
00001203 67
24
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
IAPAR uz predekrementiranje
➢ U ovom se tipu adresiranja prvo dekrementira adresni registar te se potom koristi operand s nove adrese
➢ U assemblyju to označavamo sa -(An)
25
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
IAPAR uz postinkrementiranje
➢ U ovom se tipu adresiranja prvo koristi operand na kojeg pokazuje adresni registar te se potom inkrementira vrijednost u adresnom registru
➢ U assemblyju to označavamo sa (An)+
26
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
IAPAR uz odmak
➢ U ovom tipu adresiranja efektivnu adresu operanda dobivamo kao zbroj neke 16 bitne vrijednosti x (odmak) i vrijednosti koja je sadržana u adresnom registru
➢ Za x vrijedi sign-expansion➢ U assemblyju to označavamo sa x(An)
27
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
IAPAR uz indeks i odmak
➢ U ovom tipu adresiranja efektivna aresa operanda dobivena je zbrajanjem adrese u danom adresnom registru, vrijednosti (indeksa) u nekom drugom (indeksnom) registru IR te odmaka x.
➢ Indeksni registar može biti bilo koji od podatkovnih i adresnih registara.
➢ Indeks i odmak mogu biti 16 i 32 bitne vrijednosti. U slučaju 16 bitnih vrijednosti koristi se sign-expansion
➢ U assemblyju to označavamo sa x(An,IR)
28
Građa računala vježbe 2 (2010./2011.)
Ivo Ugrina [email protected] 01:0
0:00
:00
+
00:
00:0
0:0
1 =
2
Domaći rad :)
➢ Proučite indirektno adresiranje pomoću programskog brojila uz odmak te indirektno adresiranje pomoću programskog brojila uz indeks i odmak.