View
270
Download
6
Category
Preview:
Citation preview
UUR 2009/20101
Uvod u računarstvoPreddiplomski studij
elektrotehnike 2009/2010
prof.dr.sc. Ivo Ipšić
UUR 2009/20102
Saržaj kolegija Uvod u računarstvo
Uvod i razvoj računala Zapis podataka i kodiranje informacija u računaluGrađa računalaProgramska oprema računalaRačunalne mrežeUvod u programiranje i programski jezik C
UUR 2009/20103
Sadržaj
Model računalavon Neumannova arhitektura računalaElementi računalaPojednostavljen model računalaIzvršavanje instrukcija
UUR 2009/20104
John von Neumann (1903-1957)
ideja: zajedničko pohranjivanje podataka i programa u memoriji računala slijedeći korak programa ovisi o prijašnjem
predložena arhitektura za EDVAC (Electronic DiscreteVariable AutomaticComputer) postaje poznata pod imenom von Neumanovaarhitektura računala
UUR 2009/20105
Model von Neumannovog računala
CPU
UPRAVLJAČKI
SKLOP
ARITMETIČKO -LOGIČKAJEDINICA
ULAZNAJEDINICA MEMORIJA IZLAZNA
JEDINICA
Tok podataka i instrukcija
Upravljački signali
UUR 2009/20106
Mikroprocesor Intel Pentium
UUR 2009/20107
Model računala
mainmemory
I/O bridgebus interface
ALU
register file
CPU chip
system bus memory bus
disk controller
graphicsadapter
USBcontroller
mousekeyboard monitordisk
I/O bus Expansion slots forother devices suchas network adapters.
UUR 2009/20108
Komponente računala
UUR 2009/20109
Komponente računala
centralna procesna jedinica (CPU) ili mikroprocesor obavlja upravljačke operacije i obradu podatakamemorija – glavna ili radna memorija pohranjuje instrukcije programa i podatkeulazno/izlazni sklopovi – služe za unos podataka u računalo i prikaz rezultata obradesustav sabirnica – omogućava prijenos podataka, instrukcija, adresa i upravljačkih signala između mikroprocesora, memorije i ulazno/izlaznih uređaja
UUR 2009/201010
CPU (Central processing unit)
control unit
registers
flagscachememory
ALUinput/output
storage
memory
registers
UUR 2009/201011
CPU
aritmetičko – logička jedinica (ALU): izvršava aritmetiče i logičke operacije na podacima zapisanim u registre prema naredbama upravljačkog sklopa registri mikroprocesora: privremena pohrana podataka i instrukcija provides temporary storage for data and instructions.
registri upravljačkog sklopa:• instrukcijski registar csadrži instrukciju koja se izvršava• programsko brojilo (instruction pointer) sadrži adresu sljedeće
instrukcijeregistri aritmetičko logičkog sklopa
• akumulator sadrži operande i rezultate aritmetičkih i logičkih operacija
UUR 2009/201012
interne sabirnice mikroprocesora:povezuju upravljački sklop, ALU i registreupravljački sklop: upravlja operacijama mikroprocesora, interpretira, dekodira instrukcije, prenosi podatke među registrima, upravlja ALU, ... priručna memorija (cache) : sadrži skup instrukcija i podataka koje mikroprocesor koristi za izvršavanje
CPU
UUR 2009/201013
Memorije mikroprocesora
UUR 2009/201014
Sabirnice mikroprocesora
Microprocessor(CPU)
RAM ROM
Input/Output(I/O)
Control Bus
Data Bus
Address Bus
UUR 2009/201015
Sabirnice (BUS)spojni putovi – vodovi –povezuju dijelove računalaadresna sabirnica – prijenos adresa instrukcija i podataka potrebnih za operacije čitanja i pisanjapodatkovna sabirnica –prijenos podataka i instrukcija – dvosmjerna komunikacijaupravljačka sabirnica –prijenos upravljačkih i sinkronizacijskih signala
UUR 2009/201016
UUR 2009/201017
Memorija
memorijska hijerarhija
registri i cache
RAM
vanjska memorija
CPU
veća brzina
veći kapacitet
UUR 2009/201018
RAM – Random Access Memory
svaki podatak u memoriji ima svoju jednoznačnu adresuu memoriji se pohrajuju podaci i programikapacitet memorije1 bajt = 8 bita1 kilobajt [KB]= 1024 bita 1 megabajt [MB] = 1024 kilobajta1 gigabajt [GB ]= 1024 megabajta
UUR 2009/201019
sadrži BIOS (Basic Input/Output System-instrukcije koje pokreću operacijski sustav)
sadržaj ROM memorije se zapisuje u postupku proizvodnje, kod pokretanja računala čitaju se podaci o računalnom sustavu (tip mikroprocesora, radna memorija, ...)
ROM – Read Only Memory
UUR 2009/201020
Vanjska memorija - disk
UUR 2009/201021
Memorija
svaki podatak u memoriji ima svoju jednoznačnu adresuu memoriji se pohrajuju podaci i programipostupci pisanja i čitanja preko dva registra: MAR i MDR
UUR 2009/201022
Memorija
kapacitet memorije
1 bajt = 8 bita1 kilobajt [KB]= 1024 bita 1 megabajt [MB] = 1024 kilobajta1 gigabajt [GB ]= 1024 megabajta
UUR 2009/201023
Memorija - čitanje
• zapisuje se adresa podatka koji se čita u registar MAR;
• generiraju se upravljački signali na liniji za čitanje, koji omogućavaju da se sadržaj memorijske lokacije zapisane u MAR prenese u registar MDR;
• nakon operacije čitanja podatak se nalazi u MDR;• vrši se prijenos podatka iz registra MDR u ciljni
registar.
UUR 2009/201024
Memorija - pisanje
• zapisuje se adresa na koju želimo pohraniti podatak u MAR;
• podatak se prenosi u registar MDR;• generiraju se upravljački signali, koji vrše prijenos
podataka iz MDR u memoriju na adresu zapisanu u registru MAR;
• nakon operacije pisanja podatak se nalazi u memoriji
UUR 2009/201025
Memorijska hijerarhijaregistri
L1cache (SRAM)
radna memorija(DRAM)
sekundarna memorija(lokalni diskovi)
distribuirana sekundarna memorija( distribuirani datotečni sustavi, web serveri)
L2cache (SRAM)
L0:
L1:
L2:
L3:
L4 :
L5:
UUR 2009/201026
Ulazno/izlazne jedinice
ulazna jedinica - služi za unos podataka iz vanjskog svijeta memoriju računala:
tipkovnica, miš,mikrofon,kamera
izlazna jedinica - služi za prikaz obrađenih podataka:monitor,štampač, ploter, zvučnik
UUR 2009/201027
CPU
sastoji se od aritmetičko-logičke jedinice, upravljačke jedinice i registara:
akumulator (AR),brojilo instrukcija (PC registar),instrukcijski registar (IR),indeksni registar (IX),statusni registar (SR),...
UUR 2009/201028
Izvršavanje instrukcija
2 faze:pribavi instrukciju (fetch)
• adresa instrukcije iz PC MAR• signal za čitanje• sadržaj iz MDR IR
izvrši instrukciju (execute)• dekodiraj instrukciju• izvrši instrukciju• PC PC + 1
UUR 2009/201029
Instrukcijskiciklus
izračun adreseinstrukcije
pribaviinstrukciju
dekodirajinstrukciju
izračunajadresu
operanadaizvrši
instrukcijuizračunaj adresu
operanada
pribavioperande
pohranioperande
UUR 2009/201030
Računalni sustav
UUR 2009/201031
Model pojednostavljenog mikroprocesora
ALU
dekoder
upravljačkisklop
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201032
Izvođenje jednog instrukcijskog ciklusa
ALU
dekoder
upravljačkisklop
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201033
Faza pribavi instrukciju
ALU
dekoder
upravljačkisklop
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201034
Faza izvrši instrukciju
ALU
dekoder
upravljačkisklop
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201035
Faza izvrši instrukciju 2
ALU
dekoder
upravljačkisklop
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201036
Primjer faze izvrši za instrukciju MVT 001024
ALU
88001024
dekoder
upravljačkisklop
001024
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201037
Pribavi operand
ALU
88001024
dekoder
upravljačkisklop
AAAA0000001024
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201038
Izvrši MVT 001024
ALU
AAAA0000 88001024
dekoder
upravljačkisklop
AAAA0000001024
IR
PC
pišičitaj
AR
MAR MDR
takt φ
UUR 2009/201039
Jezik mikroprocesora
instrukcije se izvršavaju u dvije faze: pribavi i izvrši instrukciju
1 AM ADRESA0 3 7 8 31
OP - operacija, instrukcijski kod
AM - način adresiranja
polje operacijskog koda
bit 4 = 1 ⇒ 32 bitna instrukcija
OP
UUR 2009/201040
Elementi procesora SAP
memorija224=16.777216 riječi (16MB)dužina riječi 32 bita
dostup do 4 registraakumulator AR 32 bitniindeksni registar IX 24 bitniregistar stoga SP 24 bitnistatusni registar SR 8 bitni
2 registra do kojih programer nema pristupaprogramsko brojilo PC 24 bitni registarinstrukcijski registar IR 32 bitni
UUR 2009/201041
Elementi procesora SAP
format instrukcija32 bitne i 16 bitne instrukcije
1 AM ADRESA0 3 7 8 31
OP - operacija, instrukcijski kod
AM - način adresiranja
polje operacijskog koda
bit 4 = 1 ⇒ 32 bitna instrukcija
OP
UUR 2009/201042
Format instrukcije
polje operacijskog koda – što treba izvršitiadresno polje – nad kojim podaci treba izvršiti
jednoadresne ili višeadresne instrukcije
UUR 2009/201043
Primjer operacije zbrajanja
zbrojiti operande na memorijskim lokacijama 1000 i 1001, te rezultat pohraniti na memorijskoj lokaciji 10011jednoadresne instrukcije
MVT 001000ADD 001001MVF 010011
triadresne instrukcijeADD 1000,1001,10011
UUR 2009/201044
Načini adresiranjabit5 6 7
načinadresiranja
mnemotehnička oznaka
000 direktni ili izravni
MVT ADDR
001 indirektni iliposredni
MVT (ADDR)
010 indeksni MVT ADDR,X
011 posredni indeksni
MVT (ADDR),X
100 neposredni MVT #ADDR
UUR 2009/201045
Direktno adresiranje
MVT 1 000 123456hex
123456 A 1 C 7 3 F F E A 1 C 7 3 F F E
AR
UUR 2009/201046
Indirektno adresiranje
MVT 1 001 246A7Bhex
246A7B 8 4 3 9 F 6 4 1
1 4 6 A E 9 3 0
AR
1 4 6 A E 9 3 039F641
UUR 2009/201047
Indeksno adresiranje
MVT 1 010 39F641hex
39F649 2 8 5 3 D 4 1 9 2 8 5 3 D 4 1 9
AR
+
000008
IX
UUR 2009/201048
Posredno indeksno adresiranje
MVT 1 011 446A7Bhex
446A7B 8 4 4 9 F 6 4 1
3A59C240
AR
+000008
IX
3 A 5 9 C 2 4 049F641
UUR 2009/201049
Neposredno adresiranje
0000 0000 0101 0000 0001 1000 0100 0010
MVT 1 100 0101 0000 0001 1000 0100 0010bin
BR
AR
UUR 2009/201050
Instrukcije mikroprocesoraSAP
aritmetičkelogičkenaredbe prijenosa podataknaredbe grananjanaredbe posmaka i rotacije
UUR 2009/201051
Aritmetičke instrukcije
SUC subtract operands with carrySUB subtract operandsADC add operands with carryADD add operands
UUR 2009/201052
Logičke instrukcije
ORA logical OR of operandsAND logical AND of operandsXOR exclusive OR of operandsBIT logical compare
UUR 2009/201053
Instrukcije prijenosa
MVT move to A (load A)MVF move from A (store A)
UUR 2009/201054
Instrukcije grananja
JSR jump to subroutineJMP jump to address
UUR 2009/201055
Instrukcije posmaka i rotacije
LSR logical shift rightSHL shift leftROR rotate right...
UUR 2009/201056
Primjeri
aritmetičko – logičke naredbenaredbe prijenosa podataka među registrimaMVT SP,ARMVT AR #0ADD IX #1
UUR 2009/201057
Primjeri programa
zbrajanje Z=A+Bpretpostavka da je cijeli broj A na memorijskoj lokaciji 001024, broj B na memorijskoj lokaciji 001025, te da broj Z treba pohraniti na memorijskoj lokaciji 001026
MVT 001024 upiši u akumulator broj AADD 001025 zbroji A+BMVF 001026 zbroj pohrani na adresi 001026
UUR 2009/201058
Primjer grananja
if (n<0)i=j;
elseif(n==0)
i=k;else
i=l;
pretpostavka da se varijabla n nalazi na memorijskoj lokaciji 100, a varijable i,j,k,lna memorijskim lokacijama 201,202,203,204slijed naredbi počinje na adresi 4
UUR 2009/201059
Primjer grananja
adresa naredba opis4 MVT 100 u AR upiši n5 BEQ 4 grananje ukoliko je n=06 BPL 6 grananje ukoliko je n>07 MVT 202 i=j n<08 MVF2019 BRA 5 grananje na slijedeći blok instrukcija10 MVT 203 i=k n=011 MVF 20112 BRA 213 MVT 204 i=l n>014 MVF 20115 ...
UUR 2009/201060
Primjer petlje
traži se zbroj komponenti vektora x
s=Σxi i=1,..,nu višem programskom jeziku:s=0;for (i=0;i<n;i++)
s=s+x[i];
UUR 2009/201061
Primjer petlje
pretpostavka da je n na memorijskoj lokaciji 200, a s na 199vrijednosti komponenti vektora x počinju na
simboličkoj adresi AXprevodioc će simboličku adresu pretvoriti u fizičku adresu npr. AX=201
UUR 2009/201062
Primjer petlje
MVT AR #0 neposredno adresiranje u AR upisujemo 0MVT IX #0 neposredno adresiranje u IX upisujemo 0MVF 199 s=0
START MVT 200 u AR upisujemo dužinu vektoraCMP AR,IX uspoređujemo IX i nBEQ ENDMVT 199 upiši s u ARADD (AX),X s=s+x[i] neposredno indeksni način adresiranja
MVF 199ADD IX #1BRA START
END HLT
UUR 2009/201063
Pisanje na stog
dno stoga
vrh stoga000999
001001
SP 000999
R2
R1 000100
000200001000 000100
000200
POP R1
UUR 2009/201064
Čitanje sa stoga
dno stoga
vrh stoga000999
SP 001000
R2
R1 000200
000200
000100000200
001001001000
UUR 2009/201065
Programi
MVT 1024ADD 1025MVF 1026
Z :=A + B;
111001100110000011000110000011000111100001111001
UUR 2009/201066
Prevođenje programa
UUR 2009/201067
Programski kod
C program (p1.c)
asemblerski program (p1.s)
objektni program (p1.o)
Izvršni program (p)
tekst
tekst
binarni kod
binarni kod
prevodioc - compiler (gcc -S)
asembler (gcc, as)
UUR 2009/201068
Programski kod
int zbroji(int x, int y){int zbroj;
return zbroj=x+y;}
UUR 2009/201069
Programski kod
prevođenje izvornog programa u asmblerskikod
gcc –O2 –S zbroji.cgcc - GNU compiler
prikaz asembleskog programaobjdump -d zbroji.s
UUR 2009/201070
Programski kod
zbroji.o: file format pe-i386
Disassembly of section .text:
00000000 <_zbroji>:0: 55 push %ebp1: 89 e5 mov %esp,%ebp3: 8b 45 0c mov 0xc(%ebp),%eax6: 8b 55 08 mov 0x8(%ebp),%edx9: 5d pop %ebpa: 01 d0 add %edx,%eaxc: c3 ret d: 90 nope: 90 nopf: 90 nop
objektni kod asemblerski kod
UUR 2009/201071
Programski kod
instrukcija zbroji zbroj=x+y
01 d0 add %edx,%eax
0000000111010000 16-bitna instrukcija
registri mikroprocesora
UUR 2009/201072
Pitanja
Nariši shemu ispisne memorije ROM.Opiši postupak izvođenja jednog instrukcijskog ciklusa.Opiši djelove 16-bitne naredbe sa dvije adrese.Navedi primjere instrukcija.Skiciraj univerzalno (von Neumannovo) računalo.Opiši postupak čitanja i pisanja u memoriju.Opiši funkciju upravljačkog sklopa računala.Opiši postupak prevođenja programa u strojni jezik.
Recommended