You are on page 1of 11

Pogled unapred 1

Pogled
Pogled
Programiranje naračunar
računar
na
u asembleru spolja

Računarstvo i informatika III


spolja

školska 2011/2012. godina Pogled


Pogled
Viši elementi naračunar
računar
na
rada CPU iznutra
iznutra
Arhitektura i organizacija
Lekcija 2 – Pogled na računar iznutra računarskih sistema
Struktura i funkcija računara, osnovni elementi rada CPU

Ulazno/izlazni
Sistemska
podsistem
magistrala

Memorija

RIII 02 Pogled iznutra - 1 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 2 Matematička gimnazija Beograd

Šta ćemo učiti Struktura crne kutije


UU ovoj
ovoj lekciji...
lekciji...
° Osnovna binarna pretpostavka uređaj
.
° Funkcije i struktura centralnog procesora (CPU)
.
° Funkcije i struktura memorije Procesor Memorija Ulaz/Izlaz .

° Funkcije i struktura ulazno/izlaznih uređaja uređaj


Magistrala - Bus
° Funkcije i struktura sistemske magistrale
° Povezivanje svih “crnih kutija” - “Uprošćeni IAS” (uIAS ) Procesor izvršava instrukcije
• Arhitektura skupa instrukcija
Memorija skladišti informacije (podatke i instrukcije)
• Emulator
• Primeri programa U/I premešta podatke u/iz kompjutera
Bus povezuje različite komponente i podržava
njihovu međusobnu interakciju
RIII 02 Pogled iznutra - 3 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 4 Matematička gimnazija Beograd
CRNA KUTIJA: Osnovna binarna pretpostavka Registrovanje podataka korišćenjem binarnog brojnog sistema

° prevođenje brojeva vidi Dodatak 1 ☺


° sve informacije kodiraju se binarno
• binarne cifre se lako implentiraju (elektronski, magnetski) ° celi brojevi - integers (format defacto standard)
veliko • jedan bit = binary digit vrednost 0 ili 1 ° brojevi u pokretnom zarezu - floating point (IEEE standard)
slovo! • jedan Byte = 8 grupisanih bitova b7b6b5b4b3b2b1b0
° znakovi - characters (ASCII, Unicode)
npr. 100111012 ≠ 1001110110
jedna reč (word) = broj bitova zavisi od mašine ° logičke promenljive - boolean
° dani u nedelji
ukazuje na osnovu msb lsb
° boje
° drugi ???
° informacije uključuju podatke i instrukcije!

RIII 02 Pogled iznutra - 5 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 6 Matematička gimnazija Beograd

Binarno kodiranje instrukcija CRNA KUTIJA - Funkcija

° nekoliko bitova za kodiranje operacije opcode ° Ponovimo funkcije računarskog sistema:


• OBRADA podataka
° nekoliko bitova za kodiranje operanada (ako ih ima) • SKLADIŠTENJE podataka
° za sada, smatramo da je fiksan broj bitova (w) za instrukciju • PREMEŠTANJE podataka
• fiksan broj bitova (i) koristi se za opcode • UPRAVLJANJE

• fiksan broj bitova (j) koristi se za operand(e)


° nadalje ćemo razmatrati funkciju svake pojedinačne komponente
računarskog sistema i njenu ulogu u strukturi
w bitova

opcode operandi

i bitova j bitova
RIII 02 Pogled iznutra - 7 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 8 Matematička gimnazija Beograd
Procesor (CPU) CPU = Central Processing Unit Struktura procesora

° OBRADA Aritmetičko logička jedinica


Arithmetic and Logic Unit (ALU) ° PREMEŠTANJE
• manipuliše/menja/kombinuje/računa vrednosti podataka • interno povezivanje (upravljačka jedinica, ALU i registri)
• eksterno Bus povezuje sa drugim komponentama
° SKLADIŠTENJE Registri čuvaju vrednosti u CPU
• svaki registar ima unikatno ime

° UPRAVLJANJE Upravljačka jedinica (Control Unit) CPU


• ugrađen instrukcijski ciklus sredstvo koje upravlja računarom
(poput motora koji upravlja mašinom) Upravljačka
ALU Registri eksterno Bus
• instrukcijski ciklus upravlja memorijom i U/I komponentama kada je to potrebno! jedinica
povezivanje

interno povezivanje

RIII 02 Pogled iznutra - 9 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 10 Matematička gimnazija Beograd

Instrukcijski ciklus Memorija (1)

° SKLADIŠTENJE
START • fiksna širina lokacija (ili ćelija)
ciklus • svaka lokacija sadrži informaciju
- sadržaj: vrednost koja se čuva na lokaciji
donošenje instrukcije - adresa: unikatno “ime” za svaku lokaciju
izvršavanje instrukcije
(iz memorije)
kao brojevi kuća
memorija ne razlikuje da li sadržaj
može da dovede do više pristupa HALT ° PREMEŠTANJE predstavlja instrukciju ili podatak (to su
• interne veze samo binarni brojevi)
memoriji (zbog operanada) • eksterne bus veze

RIII 02 Pogled iznutra - 11 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 12 Matematička gimnazija Beograd
Memorija (2) Struktura memorije
° OBRADA (ograničena obrada u poređenju sa CPU)
• refresh? tranzistorska tehnologija
• provera greška? korekcija grešaka?
Memorija
° UPRAVLJANJE (memorijskim akcijama)
Procesor Upravljačka
• write – kopira ulaznu vrednost kao novi sadržaj lokacije lokacije eksterno Bus
• read – izdaje (ali ne menja) sadržaj lokacije memorije jedinica
povezivanje
• write/read sprovodi se “spolja” (npr. procesor, drugi?)
• može da pozove spoljašnje upravljanje (pojava greške)
interno povezivanje

RIII 02 Pogled iznutra - 13 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 14 Matematička gimnazija Beograd

Ulaz Izlaz (1) Ulaz Izlaz (2)

° Funkcije zavise od povezanog uređaja


° OBRADA
° SKLADIŠTENJE fiksna širina registara (ili portova) • zavisi od uređaja! specijalizovan hardver
• svaki registar sadrži informaciju
° UPRAVLJANJE (obrada koja zavisi od uređaja)
- sadržaj: vrednost koja se čuva u registru
• write – kopira ulaznu vrednost kao novi sadržaj porta
- adresa: unikatno “ime” za svaki registar
• read – izdaje sadržaj porta
° PREMEŠTANJE • ne može se uvek izvršiti read/write sa porta!
• interne veze • operacijama write/read upravlja se “spolja” (npr. procesor)
• eksterne bus veze • mogu da pozovu spoljašnje upravljanje prekidi (interrupts)!

RIII 02 Pogled iznutra - 15 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 16 Matematička gimnazija Beograd
Struktura Ulaza Izlaza Magistrala - Bus

I/O komponenta ≠ Memorija! ° putanja za interakciju među komponentama


° za korišćenje Busa postoje standardni protokoli za signale
Uređaj • specifikuju se korišćenjem vremenskih dijagrama

° PREMEŠTANJE DA!
U/I
° UPRAVLJANJE arbitracija
Procesor registri Upravljačka • rešava konkurentne zahteve za korišćenje Busa
uređaja (portovi) eksterno Bus
jedinica ° SKLADIŠTENJE obično NE
povezivanje
° OBRADA obično NE
interno povezivanje

RIII 02 Pogled iznutra - 17 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 18 Matematička gimnazija Beograd

Povezivanje svih “crnih kutija” - Primer “Uprošćeni IAS” ( uIAS ) uIAS Memorija

° Potreban nam je primer za prikazivanje jednostavnog izvršavanja instrukcija Memorija lokacija


– to će biti uprošćena verzija IAS adresa sadržaj
° sadržaj: čuva 4-cifrene dekadne brojeve
° potebni su nam detalji: 000 1234
• uIAS memorije: lokacije 001 9075 ° adresa: 3-cifreni dekadni brojevi
• uIAS procesora: instrukcije, registri, instrukcijski ciklus 002 0997 • kako je svaka adresa jedinstvena
ukupni adresni prostor = 1000
° naredno uprošćavanje: smatramo da se koriste dekadne vrednosti (umesto . .
binarnih ili hekasadekadnih) . .
° ovaj primer ignoriše: bus protokole, U/I, detalje upravljanja . .

997 3180 najveći mogući broj lokacija


998 6724
999 9932

RIII 02 Pogled iznutra - 19 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 20 Matematička gimnazija Beograd
uIAS Memorija uIAS Procesor – Registri

Memorija SVI reg. čuvaju 4-cifrene dekadne brojeve


° zapis 2 → 4 znači
adresa sadržaj • u registar sa adresom 4 upisuje se broj 2, CPU Registri
000 1234 825 PC: brojač instrukcija
001 9075
° zapis (2) → 4 znači PC čuva adresu sledeće instrukcije
• u registar sa adresom 4 upisuje se sadržaj registra sa
002 0997 adrese 2 odnosno broj 997
IR 2001 IR: registar instrukcija
čuva tekuću instrukciju (po donošenju)
. . ° zapis ((2)) →4 znači
. . • u registar sa adresom 4 upisuje se sadržaj sadržaja AC 0000 AC: registar podataka - akumulator
registra 2, dakle sadržaj registra 997, odnosno broj 3180
. . MAR: adresni registar memorije
Memory Address Register
997 3180 MAR 0024
998 6724 MBR: prihvatni registar memorije
999 9932 MBR 2001 Memory Buffer Register

RIII 02 Pogled iznutra - 21 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 22 Matematička gimnazija Beograd

uIAS Instrukcijski ciklus uIAS Procesor – Instrukcije

1. Donošenje instrukcije podrazumeva “punjenje u IR” 4-cifreni kodovi Operacija


° (PC) → MAR // postavlja adresu donošenja 1 xxx Puni AC vrednošću sa mem. adrese xxx
° ((MAR)) → MBR // donosi instrukciju 2 xxx Čuva vrednost AC na mem. adresu xxx
° (MBR) → IR // pamti instrukciju u IR
3 xxx Dodaje sadržaj sa mem. adrese xxx na AC
° (PC) + 1 → PC // postavlja adresu sledeg = kodiranje opcoda
donošenja
= kodiranje operanda
ugrađeno sekvencijalno izvršavanje instrukcija!
° Primeri instrukcija: 1376 2378 3379
• Ako se izvršavaju, koji efekat će imati na CPU i memoriju?
2. Izvršavanje instrukcije iz IR Može da zahteva pristupanje memoriji

RIII 02 Pogled iznutra - 23 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 24 Matematička gimnazija Beograd
Pretpostavimo da imamo sledeće uIAS stanje 1. ponavljanje instrukcijskog ciklusa – donošenje

Donošenje instrukcije sa adrese 225


CPU Registri
Memorija a) (PC) → MAR; (PC)= 0225 ⇒ 225 → MAR
PC 0225 adresa
...
sadržaj
... b) ((MAR)) → MBR; (0225)= 1827 ⇒ 1827 → MBR
224 1826 c) (MBR) → IR; (MBR)= 1827 ⇒ 1827 → IR
IR 1826 225 1827
226 3828 d) (PC) + 1 → PC ⇒ 0226 → PC
AC 9999 227 2828
... ...
826 9999 donosi se instrukcija: 1827
MAR 0826 827 0001
828 0009
Puni AC vrednošću sa memorijske adrese 827
MBR 2001 829 0000
... ...
RIII 02 Pogled iznutra - 25 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 26 Matematička gimnazija Beograd

1. ponavljanje instrukcijskog ciklusa – izvršavanje 2. ponavljanje instrukcijskog ciklusa – donošenje

Izvršavanje instrukcije iz IR: 1827 Donošenje instrukcije sa adrese 226


Memorija
(Puni AC vrednošću sa mem. adrese 827) a) (PC) → MAR; (PC)= 0226 ⇒ 226 → MAR
adresa sadržaj
b) ((MAR)) → MBR; (0226)= 3828 ⇒3828 → MBR
224 1826
c) (MBR) → IR; (MBR)= 3828 ⇒3828 → IR
a) (IRadr) → MAR; (IRadr)= 827 ⇒ 0827 → MAR 225 1827
d) (PC) + 1 → PC ⇒ 0227 → PC 226 3828
b) ((MAR)) → MBR; (827)= 0001 ⇒ 0001 → MBR
227 2828
c) (MBR) →AC; (MBR)=0001 ⇒ 0001 → AC
donosi se instrukcija: 3828 826 9999
Dodaje sadržaj sa memorijske adrese 828 na AC 827 0001
828 0009
829 0000

RIII 02 Pogled iznutra - 27 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 28 Matematička gimnazija Beograd
2. ponavljanje instrukcijskog ciklusa – izvršavanje 3. ponavljanje instrukcijskog ciklusa – donošenje

Donošenje instrukcije sa adrese 227


Izvršavanje instrukcije iz IR: 3828
a) (PC) → MAR; (PC)= 0227 ⇒ 227 → MAR
(Dodaje vrednost sa memorijske adrese 828 na AC)
b) ((MAR)) → MBR; (0227)= 2828 ⇒ 2828 → MBR
c) (MBR) → IR; (MBR)= 2828 ⇒ 2828 → IR
a) (IRadr) → MAR; (IRadr)= 828 ⇒ 0828 → MAR
d) (PC) + 1 → PC ⇒ 0228 → PC
b) ((MAR)) → MBR; (828)= 0009 ⇒ 0009 → MBR
c) (MBR)+AC → AC ⇒ 0010 → AC donošenje instrukcije: 2828
Čuva vrednost AC na memorijskoj adresi 828

RIII 02 Pogled iznutra - 29 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 30 Matematička gimnazija Beograd

3. ponavljanje instrukcijskog ciklusa – izvršavanje Primer 1 Zadaci

Izvršavanje instrukcije u IR:2828 Zadatak Rešenje


(Pamti vrednost AC na adresi 828) Dati su sadržaji sledećih mašinska simbolička dejstvo
memorijskih registara: instrukcija instrukcija
a) (IRadr) → MAR; (IRadr)= 828 ⇒ 0828 → MAR 1323 LDA 323 (AC) = (323) = 5
(321)=15
(322)=10 3321 ADD 321 (AC) = (AC) + (321)
b) (AC) → MBR; (AC)= 0010 ⇒ 0010 → MBR = 5 + 15 = 20
(323)=5
2322 STA 322 (322) = (AC) = 20
c) (MBR) → (MAR); (MBR)=0010 ⇒ 0010 → 828 2323 STA 323 (323) = (AC) = 20
Koliki će biti sadržaji ovih
registara i akumulatora po
izvršenju sledeće sekvence
instrukcija? ⇒ (321) = 15 (322) = 20 (323) = 20 (AC) = 20
1323
3321
2322
2323

RIII 02 Pogled iznutra - 31 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 32 Matematička gimnazija Beograd
Primer 2 Zadaci Rad sa označenim brojevima Podsećanje

° Zadatak Rešenje ° Neoznačeni 4-cifreni dekadni brojevi 0000 – 9999


Napisati fragment simbolička dejstvo mašinska ° Označeni
instrukcija procesora uIAS instrukcija instrukcija
koji sabira vrednosti sa • Oblik znaka i apsolutne vrednosti
memorijskih lokacija LDA 221 (AC) = (221) 1221
221 i 222, pa zatim ADD 222 (AC) = (AC) + (222) 3222 • Nepotpuni komplement
STA 223 (223) = (AC) 2223
dvostruku vrednost ovog ADD 223 (AC) = (AC) + (223) = 2*(AC) 3223 • Potpuni komplement
zbira upisuje na lokaciju STA 223 (223) = (AC) = 2*((221)+(222)) 2223
223. ° Dogovor
• svi zapisi koji počinju cifrom manjom od 5 predstavljaju pozitivne brojeve
• zapisi koji počinju ciframa većim ili jednakim 5 predstavljaju negativne brojeve

RIII 02 Pogled iznutra - 33 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 34 Matematička gimnazija Beograd

Sabiranje u PK Podsećanje Interpretacija zapisa brojeva Podsećanje

° Pravilo Zapis Vrednost ako se interpretira Vrednost ako se interpretira


kao neoznačen kao označen
• Sabrati sve cifre zapisa sabiraka, uključujući i poziciju za znak. 0000 0 0
• Eventualni prenos sa mesta za znak odbaciti. 0100 100 +100
• Dobijeni broj predstavlja zapis rezultata u potpunom komplementu. 1000 1000 +1000
° Primeri 3000 3000 +3000
0123 0123 9877 9877 4999 4999 +4999
0234 9766 0234 9766 5000 5000 5000-10000 = -5000
0357=+357 9889=-111 10111=+111 19643=-357 5100 5100 5100-10000 = -4900
9999 9999 9999-10000 = -1

RIII 02 Pogled iznutra - 35 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 36 Matematička gimnazija Beograd
Instrukcije uIAS procesora – drugi deo Emulator uIAS procesora
Prevođenje Brisanje sadržaja Brisanje sadržaja
4-cifreni kod Operacija Simbolički zapis
programa memorijskih registara procesorskih registara
4xxx Puni AC IN xxx •Radi samo sa
sadržajem porta sa adrese xxx označenim dekadnim
brojevima Izvršavanje celog programa
5xxx Ispisuje sadržaj AC OUT xxx
na port sa adresom xxx. • Memorija se
NE RESETUJE Izvršavanje korak po korak
6xxx bezuslovno predaje upravljanje JMP xxx pri asembliranju
instrukciji na adresi xxx Promena sadržaja
memorijskih registara
•PC se NE VRAĆA
7xxx Ako (AC)<0 predaje upravljanje JL xxx
instrukciji na adresi xxx automatski na 0
po izvršenju programa
8xxx Ako (AC)=0 predaje upravljanje JE xxx
instrukciji na adresi xxx •NE OMOGUĆAVA
korišćenje simboličkih
9xxx Menja znak broju u AC NEG adresa
(ne uzima se u obzir deo xxx)
0xxx Zaustavlja rad programa HALT
RIII 02 Pogled iznutra - 37 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 38 Matematička gimnazija Beograd

Primer 3 Zadaci Primer 4 Zadaci

° Zadatak Raspodela memorije: Zadatak Raspodela memorije:


Počev od adr. 0000 – program Počev od adr. 100 - podaci Napisati program za Počev od adr. 0000 – program Počev od adr. 100 - podaci
Napisati program koji
izračunava zbir tri cela broja 0100 zbir 0101 x1 0102 x2 0103 x3 izračunavanje zbira 0100 zbir 0101 x1 0102 x2 0103 x3 0104 x4 0105 x5
x1,x2,x3. x1-x2+x3-x4+x5 .
° Brojevi se zadaju preko ° Brojevi se zadaju preko
input dijaloga, a rezultat input stream-a, a rezultat
pamti na adresi 100 i ispisuje u message box-u.
ispisuje u message box-u.

Test primer:
Test primer:
Za ulaz
Za ulaz 1, 1234 i 5678
dobiće se rezultat 6913 0120, 1234, 4321, 5123 i 9999
dobiće se rezultat 8083.
(1+1234-4322=-3087)
(120–1234+4321–(-4877)+(-1) = -1917)
RIII 02 Pogled iznutra - 39 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 40 Matematička gimnazija Beograd
Primer 5 Zadaci Primer 6 Zadaci

Zadatak Raspodela memorije: ° Zadatak Raspodela memorije:


Upisati manji od brojeva sa Počev od adr. 0000 – program Počev od adr. 100 - podaci Napisati instrukcije koje na Počev od adr. 0000 – program Počev od adr. 100 - podaci
memorijskih lokacija 100 i 0100 x 0101 y 0102 z lokaciju 1002 smeštaju broj 0100 x 0101 y
101 na memorijsku lokaciju z koji se računa po formuli
102. ⎧ x + y ako je x < y
z=⎨
° Instrukcije smestiti počev ° ⎩ x − y ako je x ≥ y
od memorijske lokacije ° gde su x i y simbolička
0000. Pretpostavlja se da imena za memorijske
su brojevi različiti. lokacije 100 i 101.
° Brojeve upisati na ° Instrukcije smestiti počev
memorijske lokacije od memorijske lokacije
pomoću registara MAR, 0000, podatke upisati na
MBR i dugmeta Write. memorijske lokacije preko
Test primeri: registara MAR i MBR. Test primeri:
a) 1→100 2→101 ⇒ 1→102 a) 1→100 2→101 ⇒ 9999 (-1)→102
b) 3→100 2→101 ⇒ 2→102 b) 1→100 2→101 ⇒ 3→102

RIII 02 Pogled iznutra - 41 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 42 Matematička gimnazija Beograd

Primer 7 Zadaci Pogled unapred 2


° Zadatak Raspodela memorije:
Napisati program koji za Počev od adr. 0000 – program Počev od adr. 0099 - podaci Programiranje
Pogled
Pogled
naračunar
računar
na
zadate prirodne brojeve x i 0099 j=9999 0100 x 0101 y 0102 z u asembleru spolja
spolja

y (manje od 100) računa


njihov proizvod.
° Program treba da počinje Pogled
Pogled
na adresi 0000, faktori se Viši elementi
rada CPU
naračunar
na računar
iznutra
nalaze na adresama 100 i
iznutra
Arhitektura i organizacija
101, rezultat upisati na računarskih sistema
lokaciju 102,a na adresi 099
koju ćemo simbolički
nazvati j nalazi se broj -1.
Ulazno/izlazni
° Konstantu j uneti u podsistem
Sistemska
Sistemska
magistrala
magistrala
memoriju preko registra
MAR i MBR, a ulazne
podatke preko input Memorija

dijaloga. Rezultat treba Test primer:


ispisati u message box-u Za ulaz 7, 5 dobiće se rezultat 35
RIII 02 Pogled iznutra - 43 Matematička gimnazija Beograd RIII 02 Pogled iznutra - 44 Matematička gimnazija Beograd

You might also like