Transcript Document

Mikroprocesorski
sistemi
Mikroprocesorska
elektronika
Osnovi o računarima
I poglavlje
1 deo
-Opšti principi rada-
Računarski sistemi-definicija pojmova
 Računarski sistemi su mašine koje vrše brzo izračunavanje i
čije su akcije upravljane od strane programa
 Program se sastoji od unapred pripremljene liste instrukcija
 Softver, hardver, podaci, i komunikacije su komponente
koje čine računarski sistem
The Big Picture
 Since 1946 all computers have had 3, 4, 5, or 6 components
Memory
Control
Processor
Input
Link
Datapath
CPU
Input/Output
Output
To/from network
I/O
Komponente računarskog sistema
 Podaci sa kojima se manipuliše - predstavljaju fundamentalnu
prezentaciju činjenica i opservacija.
 Hardver - obezbedjuje fizičke mehanizme za:
i) unošenje (generisanje) podataka iz (ka) spoljnjeg sveta;
ii) procesiranje podataka putem izvršenja instrukcija;
iii) memorisanje podataka;
iv) kopiranje podataka izmedju različitih ulazno-izlaznih
uredjaja;
v) elektronsko upravljanje različitim ulaznim, izlaznim, i
memorijskim komponentama.
Komponente računarskog sistema produžetak
 Softver - čine ga sistemski i aplikacioni programi, a
definišu ga instrukcije koje se izvršavaju od strane hardvera.
 Komunikaciona komponenta - čine je hardver i softver
koji obavljaju transport programa i podataka izmedju
medjusobno povezanih računara
From Components to Applications
Highlevel
view
Circuit designer
Logic designer
Electronic components
Hardware
Computer designer
System designer
Application designer
Application domains
Software
Computer archit ecture
Computer organization
Subfields or views in computer system engineering
Lowlevel
view
Arhitektura i organizacija računara
 Pojam arhitektura računara tiče se funkcionalnog
ponašanja računarskog sistema i uključuje one atribute sistema
koji su vidljivi programeru, tj. atribute koji imaju direktan uticaj
na logičko izvršenje programa kao što su:
 broj bitova koji se koriste za predstavljanje različitih tipova
podataka
 skup instrukcija
 tehnike za adresiranje memorije
 ulazno-izlazni (U/I) mehanizmi
Arhitektura i organizacija računara
(produžetak)
 Pojam organizacija računara odnosi se na operativne
jedinice i njihovo medjusobno povezivanje, tj. detalje koji nisu
direktno vidljivi programeru, kakvi su na primer:
 interfejsi izmedju računara i perifernih uredjaja,
 taktna frekvencija,
 tehnologija instalirane memorije,
 namena i naponski nivoi raznih upravljačkih signala, i dr.
 Pojam organizacija se alternativno, od strane većeg broja
autora, naziva implementacija
Arhitektura i organizacija računara
(produžetak)
 U toku svog životnog veka arhitektura računara se ne menja
(ne menja se obim podataka, skup instrukcija, adresni načini
rada itd.). Kada je arhitektura dobro projektovana, dobro se
prilagodjava budućim tehnologijama, a prihvaćena je od strane
tržišta, tada ona može da egzistira nekoliko desetina godina (kao
na primer PC mašina).
 Organizacija računara obično pretrpi veći broj promena
(promene se gabariti uredjaja, taktna frekvencija rada,
tehnologija izrade ploča i modula itd.).
What is “Computer Architecture”
Computer Architecture =
Instruction Set Architecture +
Machine Organization + …..
What is “Computer Architecture” ?
Application
Operating
System
Compiler
Firmware
Instr. Set Proc. I/O system
Instruction Set
Architecture
Datapath & Control
Digital Design
Circuit Design
Layout
 Coordination of many levels of abstraction
 Under a rapidly changing set of forces
 Design, Measurement, and Evaluation
Analogija sa piano arhitekturom
 Piano arhitektura se definiše specifikacijom tastature.
 Tastatura je interfejs ovog muzičkog instrumenta prema korisniku.
 Tastatura se sastoji od 88 dirki, 36 crnih i 52 belih.
 Pritiskom na dirku generiše se ton.
Note:
Uredjenje dirki je identično za sve
tipove piana (arhitektura), tako da onaj
koji zna da svira na jednom tipu piana
zna i na svim ostalim tipovima.
(organizacije, tj. implementacije)
Implementation Domains
 An implementation domain is the collection of
devices, logic levels, etc. which the designer uses.
 Possible implementation domains:





VLSI on silicon
TTL or ECL chips
Gallium Arsenide chips
PLA’s or sea-of-gates arrays
Fluidic logic or optical switches
Three Different Implementation Domains
 2 to 1 multiplexer in three different implementation domains
– generic logic gates (abstract domain)
– National Semiconductor FAST Advanced Schottky TTL (VLSI on Si)
– Fiber optic directional coupler switch (optical signals in LiNbO3)
Hijerarhijska organizacija računara
 Računar je kompleksan sistem sastavljen od velikog broja
elektronskih komponenata.
 Kako se funkcionisanje računara može najefikasnije opisati
i rad sa njim uspešno savladati ?
 Rešenje se ogleda u hijerarhijskoj organizaciji. Svaki
korisnik treba da poznaje detalje koji su njemu od interesa.
Hijerarhijska organizacija računara –
struktura i funkcija
 Na svakom nivou projektant se suočava sa :
 strukturom – ukazuje na medjusobni odnos
komponenata
 funkcijom – opisuje rad svake individualne
komponente koja predstavlja deo sistema
Hijerarhijska organizacija računara –
funkcija
 Osnovne funkcije koje računar treba da obavi su:
 obrada podataka
 memorisanje podataka
 premeštanje podataka
 upravljanje
Operacije koje obavlja računar
Operacije koje obavlja računar – prod.
Hijerarhijska organizacija računara –
struktura
 Funkcionalne komponente računara:
 centralna procesorska jedinica (CPU)
 glavna memorija
 ulazno-izlazni podsistem
 sprežni sistem
Globalna struktura računara
Osnovi o računarima
I poglavlje
2. deo
-Jezici i prevodioci-
Odnos hardver, sistremski softver i
aplikacioni softver kod računara
Modern Computer Systems
Application S/W
Computing
Problems
Operating System
Algorithms
And Data
Structures
Mapping
H/W
Architecture
Programming
High-level
Languages
Binding
Performance
evaluation
Categorization of software with examples
in each class
Software
Application:
word processor,
spreadsheet,
circuit simulator,
.. .
System
Operating system
Translator:
Manager:
Enabler:
Coordinator:
MIPS assembler,
C compiler,
.. .
virtual memory,
security,
file system,
.. .
disk driver,
display driver,
printing,
.. .
scheduling,
load balancing,
diagnostics,
.. .
Models and abstractions in programming
More abstract, machine-independent;
easier to write, read, debug, or maintain
One task =
many statements
add
add
add
lw
lw
sw
sw
jr
One statement =
several instructions
$2,$5,$5
$2,$2,$2
$2,$4,$2
$15,0($2)
$16,4($2)
$16,0($2)
$15,4($2)
$31
Assembler
temp=v[i]
v[i]=v[i+1]
v[i+1]=temp
Assembly
language
instructions,
mnemonic
Compiler
Swap v[i]
and v[i+1]
High-level
language
statements
Interpreter
Very
high-level
language
objectives
or tasks
More conc rete, machine-specific, error-prone;
harder to write, read, debug, or maintain
Machine
language
instructions,
binary (hex)
00a51020
00421020
00821020
8c620000
8cf20004
acf20000
ac620004
03e00008
Mostly one-to-one
Pascal iskaz preveden u asemlerski jezik, a
nakon toga asembliran u mašinski jezik
Levels of Representation
temp = v[k];
High Level Language
Program
v[k] = v[k+1];
v[k+1] = temp;
Compiler
lw $15,
lw $16,
sw $16,
sw $15,
Assembly Language
Program
Assembler
Machine Language
Program
0000
1010
1100
0101
1001
1111
0110
1000
1100
0101
1010
0000
0($2)
4($2)
0($2)
4($2)
0110
1000
1111
1001
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
1000
0110
1001
1111
Machine Interpretation
Control Signal
Specification
°
°
ALUOP[0:3] <= InstReg[9:11] & MASK
A Programmer’s View
• High-level languages versus low-level languages
• In C:
• result = count1 + count2 + count3 + count4
• In Pentium assembly language:
•
mov AX,count1
•
add AX,count2
•
add AX,count3
•
add AX,count4
•
mov result,AX
A Programmer’s View
• Some simple high-level language instructions can be
expressed by a single assembly instruction
•
•
•
•
•
Assembly Language
inc result
mov size,45
and mask1,128
add marks,10
C
result++;
size = 45;
mask1 &= 128;
marks += 10;
A Programmer’s View
• Most high-level language instructions need more than
one assembly instruction
•
C
Assembly Language
•
•
•
•
•
•
•
size = value;
sum += x + y + z;
mov
mov
mov
add
add
add
mov
AX,value
size,AX
AX,sum
AX,x
AX,y
AX,z
sum,AX
Advantages of High-Level Languages
• Program development is faster
• High-level instructions
– Fewer instructions to code
• Program maintenance is easier
• For the same reasons as above
• Programs are portable
• Contain few machine-dependent details
– Can be used with little or no modifications on different
types of machines
• Compiler translates to the target machine language
• Assembly language programs are not portable
Why Program in Assembly Language?
• Two main reasons:
– Efficiency
• Space-efficiency
• Time-efficiency
– Accessibility to system hardware
• Space-efficiency
– Assembly code tends to be compact
• Time-efficiency
– Assembly language programs tend to run faster
• Only a well-written assembly language program runs faster
– Easy to write an assembly program that runs slower than its
high-level language equivalent
Architect’s View
Processor
Processor (cont.)
• Variations of the ISA-level can be implemented by
changing the microprogram
The build and load process for desktop
application programs
Object Files
Executable
Image File
Compiler
Loader
Linker
Assembler
Run-Time Library:
Operating System Image:
Boot
Process
Read-Write
Memory
(RAM)
Hijerarhijska organizacija računara - koncept nivoa
 Nivo aplikacionog programa
 Nivo višeg programskog jezika
 Nivo mašinskog kôda (asemblerski jezik)
 Upravljački nivo
 Nivo funkcionalne jedinice
 Logička kola, tranzistori i veze
A Programmer’s View
Generacije računarskih jezika
 Globalno razlikujemo četiri klase računarskih jezika
Generacija
Opis
prva generacija
mašinski jezik
druga generacija
asemblerski jezik
treća generacija
viši programski jezici
(HLL)
četvrta generacija
novi jezici
Evolucija programskih jezika
jezik
detalji
prva
generacija
mašinski kôd
binarni (0,1) i hardversko zavisni
druga
generacija
asemblerski jezik
hardversko zavisna prezentacija
odgovarajućeg binarnog mašinskog kôda
treća
generacija
jezici visokog nivoa
(HLL – High Level
Language) /
proceduralni jezici
jezici visokog nivoa podsećaju na
standardne jezičke konstrukcije a
prenosivi su, tipični jezici su C, Pascal, ...
četvrta
generacija
jezici veoma visokog
nivoa (VHLL – Very
High Level Language) /
neproceduralni jezici
jezici veoma visokog nivoa: objektno
orijentisani jezici (C++, Java, ...), jezici za
manipulisanje bazama podataka (SQL), ...
peta
generacija
prirodni jezici
programiranje je slično konverzacionim
jezicima, obično se koriste kod veštačke
inteligencije (AI), još su u fazi razvoja
Prva generacija – mašinski jezik
Karakteristike:
 svaka instrukcija, na hardverskom nivou, direktno upravlja radom
mašine, tj. pojedinim gradivnim blokovima.
 instrukcije su numeričke, predstavljene u formi binarnih oblika od 0 i 1
 programiranje je naporno i podložno velikom broju grešaka
 efikasnost programiranja je niska
 programi nerazumljivi korisniku
 direktno se pristupa resursima mašine
 veća brzina izvršenja programa
 efikasnije korišćenje memorije
Druga generacija – asemblerski jezik
Karakteristike:
 svaka instrukcija se predstavlja mnemonikom, kao na primer
ADD
 korespondencija izmedju asemblerskih i mašinskih
instrukcija je jedan-na-prema-jedan
 postoje i direktive koje nemaju izvršno dejstvo, ali programu
na asemblerskom jeziku olakšavaju prevodjenje, dodelu
memorije i segmentaciju programa
 direktno se pristupa resursima mašine
 veća brzina izvršenja programa
 efikasnije korišćenje memorije
Treća generacija – HLL
Karakteristike:
 kompajler prevodi programske iskaze u odgovarajuće sekvence
instrukcija na mašinskom nivou
 u principu jedan iskaz na HLL-u (High Level Language) se
prevodi u n (n >= 1) instrukcija na mašinskom (asemblerskom)
jeziku
 programiranje je jednostavnije
 efikasnost je veća
 ispravljanje grešaka lakše
 nema direktni pristup resursima mašine
 neefikasno iskorišćenje memorije
 duži programi
Četvrta generacija – novi jezici
Novi tipovi računarskih jezika se karakterišu
sledećim osobinama:
 implementiraju veštačku inteligenciju (primer je LISP)
 jezici za pristup bazama podataka (primer je SQL)
 objektno-orijentisani jezici (primeri su C++, Java i dr.)
Mehanizmi za prevodjenje sa HLL-a na
mašinski kôd
kompilacija – kompilator je program koji na svom ulazu prihvata
program napisan na nekom od programskih jezika nazvan izvorni
program, a na svom izlazu generiše ekvivalentan program na
mašinskom kôdu nazvan objektni program, tj. program u formi
mašinskog kôda koji se može direktno izvršavati od strane hardvera
računara
Generisanje programa od kompilacije do
loadovanja
HLL kôd
kompajler
asemblerski
kôd
kompajler
asemblerski
kôd
linker
izvršenje
loader
izvršivi
binarni kôd
A Programmer’s View
Ciklus kompilacije
 Objektni program koji se generiše na izlazu kompilatora
upisuje se u sekundarnu memoriju
 Korisnički program poznat kao punilac (loader) smešta
program iz sekundarne meorije u glavnu čime je objektni
program spreman za izvršenje
Proces kompilacije
 Proces kompilacije se može podeliti na dva glavna dela:
 analiza izvornog programa
 sinteza objektnog programa
Interpretacija
Interpreter uzima jednu instrukciju iz programa PH, analizira je i
uslovljava da se sa istim efektom izvrši niz instrukcija sa nivoa LL.
Ovaj proces se nastavlja sve dok se ne izvrši kompletan program
Interpretacija - prednosti i nedostaci
 Prednost interpeterskog mehanizma konverzije je ta što
je interpreter relativno mali i što se u odnosu na
kompilator lakše imlementira na nivou mašine.
 Nedostatak je taj što je izvršenje izvornih programa
postupkom interpetacije sporije u odnosu na kompilovane
programe.
 Razlika u brzini izvršenja je reda 10.
Kombinovanje interpetacije i kompilacije
Kombinovani mehanizam kompilacija-interpretacija koristi
među-jezik LI, koji se nalazi izme|u nivoa LL i LH. Program PH,
napisan na jeziku LH, kompajlira se u program PI na jeziku LI.
Program PI se zatim intepretira na nivou LL pomoću interpretera
Prednost ove metode
ogleda se u boljoj
prenosivosti programa,
kao i u tome što se
zadržavaju ostale dobre
osobine tehnika
kompilacije i interpretacije
Proces kompilacije za Java aplete
Dodatne informacije o
kompilaciji
Translation Hierarchy
Compiler Phase
Intermediate Code Generation
Preview: Code Optimisation
Code Optimisation
Optimizing Compilers
Limitations of Optimizing Compilers
Constant Folding
Constant Propagation
Constant Propagation – cont.
Reduction in Strenght
Reduction in Strenght – cont.
Common Sub-Expression Elimination
Common Sub-Expression Elimination – cont.
Induction Variable Elimination
Register Allocation & Assignement
Assembly Code Generation
Assembler
Pseudoinstructions
Object File
Linker
Loader
Osnovi o računarima
I poglavlje
3. deo
-Tipičan računarski sistem –
Tipičan računarski sistem
flopi disk
(floppy disk)
CD-ROM
komunikacioni
interfejs
kruti disk (hard disk)
CPU
memorija
tastatura
(keyboard)
U/I
interfejs
štampač
(printer)
računar
zvučnik
(speaker)
monitor
jedinica trake
(tape unit)
miš
(mouse)
Packaging of processor, memory, and other
components
Backplane
Die
PC board
Interlayer connections
deposited on the
outside of the stack
Bus
CPU
Connector
Memory
(a) 2D or 2.5D packaging now common
Stacked layers
glued together
(b) 3D packaging of the future
Trends in processor performance and DRAM
memory chip capacity (Moore’s law)
TIPS
Tb
Processor performance
1.6 / yr
2 / 18 mos
10 / 5 yrs
Memory
GIPS
80486
R10000
Pentium II
Pentium
256Mb
68040
64Mb
Gb
1Gb
16Mb
80386
68000
MIPS
80286
4Mb
1Mb
256kb
Mb
4 / 3 yrs
64kb
kIPS
1980
1990
2000
Calendar year
kb
2010
Memory chip capacity
Processor
Magnetic and optical memory units
Typically
2-9 cm
Floppy
disk
.
.
.
..
(a) Cutaway view of a hard disk drive
CD-ROM
..
.
Magnetic
tape
cartridge
(b) Some removable storage media
Hardverske komponente računarskog
sistema
 Hardversku organizaciju računarskog sistema čine sledeća
četiri podsistema:
Memory
 magistrala (link)
 CPU
 ulazno-izlazni podsistem
 memorijski podsistem
Control
Processor
Input
Link
Datapath
CPU
Input/Output
Output
To/from network
I/O
Hardverske komponente -magistrala
 Magistrala predstavlja skup veza (linija) po kojima se u paralelnoj
formi prenose signali i napajanje.
 obezbedjuje put preko koga sastavni delovi sistema mogu
komunicirati.
 može biti jednosmerna ili dvosmerna
 trostatička magistrala – označava da svaka linija može biti u
stanju 0, 1, ili isključeno
 svakom magistralom mogu se prenositi tri/četiri grupe
signala:
 podaci
 adrese
 upravljački signali
 takt i napajanje
Buses as Multiplexers





Interconnections are very important to computer
Most connections are shared
A bus is a time-shared connection or multiplexer
A bus provides a data path and control
Buses may be serial, parallel, or a combination
 Serial buses transmit one bit at a time
 Parallel buses transmit many bits simultaneously on
many wires
Hardverska organizacija jednog tipičnog
računarskog sistema sa aspekta magistrala
CPU
registarsko polje
PC
ALU
sistemska magistrala
memorijska magistrala
Interfejs magistrale
U/I
most
Glavna
memorija
U/I magistrala
USB
kontroler
miš
tastatura
Grafički
adapter
kontroler
diska
slotovi proširenja za
druge uređaje kakvi su
mrežni adapteri
displej
Disk
zdravo izvršivi fajl
smešten na disku
One and Two Bus Architecture
Examples
Tipične magistrale kod jednog računarskog
sistema
Hardverske komponente- ulazno-izlazni
podsistem
 Ulazno izlazni podsistem čine ulazno-izlazni uredjaji koji
povezuju računar sa spoljnim svetom.
 Kod tipičnih sistema U/I podsistem čine sledeći U/I uredjaji:
 tastatura i miš - unos podataka i komandi od strane
korisnika
 displej - izlaz za korisnika
 disk - dugoročno memorisnje podataka i programa
Ulazno-izlazni uredjaji
 Svaki U/I uredjaj je povezan na U/I magistralu preko
kontrolera ili adaptera
Kontroleri su čip-setovi (jedinstveno ili skup integrisanih kola)
koji su locirani na glavnoj sistemskoj ploči (često nazvanoj
motherboard)
Adapter je kartica koja se smešta u slot na sistemskoj ploči.
 Obično na svaki U/I kontroler ili adapter moguće je
povezati više od jednog uredjaja ili tzv. periferala
Ulazno-izlazni uredjaji - interfejsi
 U/I interfejsi ne predstavljaju samo mehaničke konektore koji
povezuju periferal na U/I magistralu, nego sadrže i odredjeni iznos
"inteligencije"
 U/I periferali ne povezuju direktno na magistralu iz sledećih
razloga :
 postoji širok dijapazon periferala koji se razlikuju po načinu rada
 brzina prenosa podataka koja karakteriše periferale je često sporija
u odnosu na brzinu prenosa podataka izmedju memorije i CPU-a
 periferali često koriste različite formate podataka i obim reči u
odnosu na računar na koji se priključuju
Hardverske komponente - CPU
Centralna procesorska jedinica – CPU ili jednostavno rečeno
procesor je mašina koja interpretira (ili izvršava) instrukcije
smeštene u glavnoj memoriji
 CPU se može podeliti na sledeće gradivne blokove:
 programsko-upravljačka jedinica (control unit)
 staza podataka (datapath) – sadrži sledeće gradivne blokove:
 izvršne jedinice kakve su ALU, množači, pomerači itd.
 registre opšte namene vidljive korisniku (R0 ... Rn),
programski brojač (PC), programsko statusni registar
(PSW), instrukcioni registar (IR), i td.
Osnovi o računarima
I poglavlje
4. deo
-Principi rada CPU-a –
Princip rada CPU-a – osnovni koraci
 čita instrukciju iz glavne memorije na koju pokazuje PC,
 interpretira bitove instrukcija,
 obavlja neku jednostavnu operaciju diktiranu od strane
instrukcije, i
 ažurira PC da bi ukazao na narednu instrukciju, koja može,
ali ne mora biti kao naredna u memoriji u odnosu na
instrukciju, koja se tekuće izvršava.
Operacije koje obavlja CPU
 Neke od jednostavnih aktivnosti koje CPU obavlja po nalogu
instrukcije su sledeće:
 punjenje (load)
 pamćenje (store)
 ažuriranje (update)
 U/I čitanje (I/O read)
 U/I upis (I/O write)
 grananje (jump)
Osnovi o računarima
I poglavlje
5. deo
-Memorija –
Hardverske komponente - memorija
Memorija – koristi se za čuvanje programa, konstanti,
medjurezultata, i rezultata izračunavanja.
 Postoji razlika u brzini rada procesora sa jedne i memorije sa
druge strane koju projektanti teže da reše odgovarajućom
hijerarhijskom organizacijom
 Jedan tipični računarski sistem sadr`i nekoliko tipova
memorije, počev od brzih i skupih internih registara pa sve do
sporih i jeftinih prenosivih diskova i traka
CPU
C ache
M e m or y
T ape
M ain M e mory
Disk M e mory
M e m or y
Hijerarhijska organizacija memorije
Memorijske komponente u okviru računarskog sistema su
hijerarhijski organizovane
L0:
registri
Manji,
brži
i
skuplji
(po bajtu)
uređaj za
memorisanje
L1:
On-chip L1 keš
(SRAM)
CPU-ovi registri čuvaju reči
podataka iz keš memorije.
L1 keš čuva keš linije
izbavljene iz L2 keša.
L2:
On-chip L2 keš
(SRAM)
L2 keš čuva keš linije izbavljene
iz glavne memorije.
L3:
Veći,
sporiji
I
jeftiniji
(po bajtu)
uređaj za
memorisanje
Glavna memorija
DRAM
Glavna memorija čuva disk blokove
podataka izbavljene sa lokalnih
diskova.
L4:
Lokalna sekundarna memorija
(lokalni diskovi)
Lokalni diskovi čuvaju fajlove
izbavljene sa diskova od
udaljenih mrežnih servera.
L5:
Udaljena sekundarna memorija
(distribuirani fajl sistemi, Web serveri)
Memorijski sistem - karakteristike
med.mem
tACC
BW (B/s)
kapacitet
obim bloka
upravljanje
tehno
registri
CPU-a
200 ps-1 ns
0.5–60 GB/s
256 B – 1 kB
reč
2 ili 4 B
CPU
CMOS
SRAM
L1 keš
memorija
5 – 10 ns
0.1-0.8 GB/s
16 – 64 kB
linija
4 – 32 B
primarni
keš
kontroler
CMOS
SRAM
L2 keš
memorija
15 –40 ns
0.1-0.3 GB/s
128 kB – 1GB
linija
4 – 128 B
sekundarni
keš
kontroler
CMOS
SRAM
glavna
memorija-GM
50 – 100 ns
20-80 MB/s
256 MB – 1GB
stranica
4 kB
MMU
CMOS
DRAM
slotovi
proširenja GM
75 – 500 ns
800 kB/s300 MB/s
1 – 10 GB
stranica
4 kB
MMU
CMOS
DRAM
disk keš
60 – 500 ns
900 kB/s30MB/s
1 – 10 MB
stranica
4 kB
kontroler
uredjaja
CMOS
DRAM
kruti disk
5 – 50 ms
12006000 kB/s
100 – 500 GB
fajlovi obima
MB
kontroler
uredjaja
magnetni
medijum
flopi disk
95 ms
100200 kB/s
1.44 MB
fajlovi obima
kB
kontroler
uredjaja
magnetni
medijum
CD-ROM
100 – 500
ms
5004000 kB/s
600 MB–20 GB
fajlovi obima
MB
kontroler
uredjaja
optički
zapis
trake (cartrige)
0.5 s pa
naviše
2000 kB/s
1 – 10 TB
fajlovi obima
MB
kontroler
uredjaja
magnetni
medijum
Osnovne karakteristike glavne memorije
Glavna memorija – često se naziva primarna ili radna memorija,
koristi se za čuvanje programa i podataka kojima se pristupa od
strane CPU-a
 Obim podatka (reči) koji se čuva u memoriji odgovara
obimu magistrale
 Kapacitet glavne memorije odredjuje maksimalni broj
instrukcijskih re~i i re~i podataka koje se mogu istovremeno
napuniti (~uvati) u memoriju
Sekundarna memorija
 čine je uredjaji za masovno memorisanje kakvi su kruti
diskovi, trake, CD, i dr.
 koristi ne-nestalan (non-volatile) tip memorisanja –
informacija se ne gubi nakon isključenja napajanja
 karakteriše je veliki kapacitet
Keš memorija
 Princip rada keša se zasniva na lokalnosti- koja može biti:
 vremenska lokalnost
 prostorna lokalnost
Keš kontroler posreduje izmedju CPU-a i memorijskog
sistema koga čine keš i glavna memorija.
podaci
adrese
CPU
keš
podaci kontroler
keš
adrese
podaci
glavna
memorija
Princip rada keš memorije
 Keš kontroler predaje zahtev za ~itanje memorije prema
kešu i glavnoj memoriji.
 Ako se sadr`aj zahtevane lokacije nalazi u kešu, keš
kontroler prosledjuje taj sadr`aj CPU-u i ukida zahtev prema
glavnoj memoriji. Ovaj uslov se naziva keš pogodak (cache
hit).
 U slu~aju kada lokacija kojoj se obra}amo nije prisutna u
kešu, prvo se kreira slobodna lokacija u kešu pa se
referencirana re~ iz glavne memorije dobavlja prvo u keš, a
zatim se iz keša dostavlja CPU-u. Ova situacija se naziva keš
promašaj (cache miss).
Nivoi keš memorije
 Kod savremenih ra~unarskih sistema postoje nekoliko nivoa
keša, poznatih kao nivo L1, nivo L2, a u odredjenim
slu~ajevima i nivo L3.
CPU čip
Registarsko polje
L1
keš
(SRAM)
ALU
Sistemska magistrala
Memorijska magistrala
L2 keš
(SRAM)
Interfejs magistrale
U/I
most
Glavna
memorija
(DRAM)
Osnovi o računarima
I poglavlje
6. deo
-Softverske komponente –
Softverska komponenta
 Pored hardvera ra~unarskom sistemu je potreban i softver.
 Softver ~ine programi koji ukazuju ra~unaru šta da radi
 Postoje dve glavne kategorije softvera:
 sistemski softver
 aplikacioni softver
 Sistemski softver nam omogu}ava da manipulišemo fajlovima,
punimo i izvršavamo programe, i prihvatamo podatke sa miša i tastature
Sistemsko-softverski programi koji upravljaju
računarom nazivaju se operativni sistem
 Aplikacioni softver čine programi, kakvi su Microsoft Word,
Netscape, ili programi koje je korisnik kreirao, a karakteristični su po
tome što izvršavaju specifi~ne zahteve korisnika
Pojednostavljeni operativni sistem
korisnik
aplikacioni
program
korisnički
interfejs
aplikaciono programski interfejs
sistem za
upravljanje
fajlovima
U/I
drajveri
hardver
kernel
mrežni
modul
mreža
Osnovi o računarima
I poglavlje
7. deo
-Komunikacione komponente–
Komunikaciona komponenta
 Veliki broj savremenih ra~unara danas ne radi samostalno.
Umesto toga oni se povezuju sa drugim ra~unarima preko mre`nog
adaptera na mre`u
CPU
Registarsko polje
PC
ALU
Sistemska magistrala
Memorijska magistrala
Interfejs magistrale
U/I
most
Glavna
memorija
Slotovi proširenja
U/I magistrala
USB
kontroler
miš
tastatura
Grafički
adapter
Kontroler
diska
Mrežni
adapter
displej
Mreža
Disk
Osnovi o računarima
I poglavlje
8. deo
-Evolucija i klasifikacija–
generacija
period
Evolucija
prva
1946-1956
arhitekture
računara
druga
1956-1967
treća
1967-1978
četvrta
1978-1989
peta
1990danas
tehnologija i
arhitektura
vakuumske cevi i relei
kao memorijski
elementi, jedno-bitni
CPU sa akumulatorsko
baziranim skupom
instrukcija
diskretni tranzistori,
mamorijska jezgra,
akceleratori za rad sa
brojevima pokretnog
zareza,
U/I kanali
integrisana kola,
protočno organizovan
CPU, mikroprogramsko
upravljanje
softver i
operativni sistem
reprezentati
vni
sistemi
mašinsko/asemblerski
jezici, programi bez
potprograma
ENIAC,
IBM 701,
Princeton
IAS
Algol i Fortran sa
kompajlerima, batch
operativni sistem
IBM 7030,
CDC 1604,
Univac
LARC
C jezik,
multiprogramiranje,
time-scharing
operativni sistem
PDP 11,
IBM
360/370,
CDC 6600
VLSI mikroprocesori,
poluprovodničke
memorije,
multiprocesori, vektor
procesori
simetrično
multiprocesiranje,
paralelni kompajleri,
message-passing
biblioteke
ULSI kola, skalabilni
paralelni računari,
cluster računari,
Intranet i Internet
Java, mikrokarneli,
multithreading,
distribuirani operativni
sistem,
World Wide Web
IBM PC,
VAX 9000,
Cray X/MP
IBM SP2,
SGI Origin
2000,
Digital
TruCluster
Klasifikacija računarskih arhitektura
 Klasifikovati objekte koji se u vremenu dinami~ki
menjaju veoma je te`ak posao jer uklju~uje predvidjanje
pravaca razvoja ovih objekata u budu}nosti.
 Klasifikacija zahteva pa`ljivo prou~avanje i najsitnijih
detalja kao i sagledavanje svih aspekata na osnovu kojih je
mogu}e ustanoviti kriterijume za klasifikaciju.
 Kada se govori o ra~unarima, njihov izbor na svetskom
tr`ištu danas je tako veliki da je ponekad veoma teško uo~iti
one elemente koji su zajedni~ki za ve}i broj ra~unara, kao i
one koji ih ~ine razli~itim.
Spektar računarskih sistema
Computer
Analog
Digital
Fixed-function
Stored-program
Electronic
General-purpose
Number cruncher
Nonelectronic
Special-purpose
Data manipulator
Klasifikacione šeme
 Analiziraćemo tri klasifikacione šeme:
 Prva, razliku izme|u ra~unara prave na osnovu
fizi~kog obima, kapaciteta i performansi,
 Druga, se zasniva na identifikaciji dva razli~ita
nezavisna koncepta: toka instrukcija i toka podataka.
 Tre}a pravi razliku u obimu obrade koja se, kod
izvršenja programa napisanih na nekom od viših
programskih jezika, obavlja od strane hardvera ili
softvera.
Prva klasifikaciona šema
 Medju in`enjerima, proizvodja~ima i korisnicima
ra~unara standardizovano je grupisanje ra~unara u pet
glavnih klasa:
 mikroračunari
 miniračunari
 super-miniračunari
 veliki računari
 super-računari
Classifying computers by computational power
and price range (dollars)
Super
$Millions
Mainframe
$100s Ks
Server
Differences in scale,
not in substance
Workstation
Personal
Embedded
$10s Ks
$1000s
$100s
$10s
Embedded computers
Impact sensors
Brakes
Airbags
Engine
Cent ral
controller
Navigation &
entert ainment
Embedded computers are ubiquitous, yet invisible. They are found in
our automobiles, appliances, and many other places.
Druga klasifikaciona (Fllyn-ova) šema
 Zasniva na identifikaciji dva nezavisna koncepta:
 toka podataka – definiše se kao sekvenca podataka koji se
pozivaju od strane toka instrukcija (uključujući ulazne podatke i
privremene podatke)
 toka instrukcija – se definiše kao sekvenca instrukcija koja se
obavlja od strane računara
 Postoje četiri klase računara:
 SISD
 SIMD
 MISD
 MIMD
jednostruki tok
podataka
višestruki tok
podataka
jednostruki tok
instrukcija
SISD
SIMD
višestruki tok
instrukcija
MISD
MIMD
SISD, SIMD, MISD i MIMD
SISD - jedinstveni tok instrukcija - jedinstveni tok podataka (Single Instruction
stream Single Data stream) klasu računara čine konvencionalne von Neumann-ove
arhitekture. Kod ovih računara u jednom trenutku procesira se samo jedna
instrukcija koja operiše nad jedinstvenim tokom podataka, operanada i rezultata.
SIMD - jedinstveni tok instrukcija i višestruki tok podataka (Single Instruction
stream Multiple Data stream). Kod ovih računara jednom instrukcijom simultano
se operiše nad nekoliko elemenata podataka.
MISD - višestruki tok instrukcija i jedinstveni tok podataka (Multiple Instruction
stream Single Data stream). Kod ove klase računara nad jedinstvenim podacima
operiše se od strane većeg broja instrukcija.
MIMD - višestruki tok instrukcija višestruki tok podataka (Multiple Instruction
stream Multiple Data stream). Ova klasa ra~unara je veoma široka jer pokriva sve
multiprocesorske i multikompjuterske sisteme, tj. sisteme sa privatnom ili
deljivom memorijom, slabo, umereno ili čvrsto spregnute sisteme itd.
MIMD
MISD
SIMD
Treća klasifikaciona šema
 Ovaj kriterijum za klasifikaciju arhitektura bazira se na iznosu
obrade koji se, kod izvršenja HLL programa, obavlja od strane
softvera ili hardvera
Appendix A
Digitalna logička kola
Register transfers can be mapped to
Digital Logic Circuits
 Implementing the RTN statement A  B
Multiple Bit Register Transfer
 Implementing Am..1  Bm..1
Data Transmission View of Logic Gates
 Logic gates can be used to control the
transmission of data:
Multiplexer as a 2 Way Gated Merge
 Data from multiple sources can be selected for
transmission
m-bit Multiplexer and Symbol
 Multiplexer gate signals Gi may be produced
by a binary to one-out-of-n decoder
Separating Merged Data


Merged data can be separated by gating at the right time
It can also be strobed into a flip-flop when valid
Multiplexed Register Transfers using
Gates and Strobes
 Selected gate and strobe determine which Register is
Transferred to where.
 AC, and BC can occur together, but not AC, and BD
Open-Collector NAND Gate Output
Circuit
Wired AND Connection of Open-Collector
Gates
Open Collector Wired OR Bus




DeMorgan’s OR by not of AND of nots
Pull-up resistor removed from each gate - open collector
One pull-up resistor for whole bus
Forms an OR distributed over the connection
Tri-state Gate Internal Structure and
Symbol
Registers Connected by a
Tri-state Bus
 Can make any register transfer R[i] R[j]
 Can’t have Gi = Gj = 1 for i≠j
 Violating this constraint gives low resistance path from
power supply to ground—with predictable results!
Registers and Arithmetic Connected by
One Bus
Example
Abstract RTN
R[3]  R[1]+R[2];
Concrete RTN
Y  R[2];
Z  R[1]+Y;
R[3]  Z;
Combinational
Logic—no
memory
Control Sequence
R[2]out, Yin;
R[1]out, Zin;
Zout, R[3]in;
Notice that what could be described in one step in the abstract RTN took
three steps on this particular hardware
Timing of the Register Transfers
 Discuss:
difference
between gating
signals and
strobing signals
 Discuss
factors
influencing
minimum clock
period.
Principles of Computer Architecture
Arithmetic
Ripple Carry Adder
 Two binary numbers A and B are added from right to
left, creating a sum and a carry at the outputs of each full
adder for each bit position.
Constructing Larger Adders
 A 16-bit adder can be made up of a cascade of four 4-bit ripplecarry adders.
Full Subtractor
Truth table and schematic symbol for a ripple-borrow
subtractor :
Ripple-Borrow Subtractor
 A ripple-borrow subtractor can be composed of a cascade of
full subtractors.
 Two binary numbers A and B are subtracted from right to left,
creating a difference and a borrow at the outputs of each full
subtractor for each bit position.
Combined Adder/Subtractor
 A single ripple-carry adder can perform both addition and
subtraction, by forming the two’s complement negative for B
when subtracting. (Note that +1 is added at c0 for two’s
complement.)
Multiplication Example
 Multiplication of two 4-bit unsigned binary integers
produces an 8-bit result.
 Multiplication of two 4-bit signed binary integers
produces only a 7-bit result (each operand reduces to a
sign bit and a 3-bit magnitude for each operand,
producing a sign-bit and a 6-bit result).
A Serial Multiplier
Example of Multiplication Using Serial
Multiplier
Example of Base 2 Division
 (7 / 3 = 2)10 with a remainder R of 1.
 Equivalently, (0111/ 11 = 10)2 with a remainder R of 1.
Serial Divider
Division Example Using Serial Divider
Multiplication of Signed Integers
 Sign extension to the target word size is needed for the
negative operand(s).
 A target word size of 8 bits is used here for two 4-bit
signed operands, but only a 7-bit target word size is needed for
the result.
Carry-Lookahead Addition
 Carries are represented in
terms of Gi (generate) and
Pi (propagate) expressions.
Gi = aibi and Pi = ai + bi
c0 = 0
c1 = G0
c2 = G1 + P1G0
c3 = G2 + P2G1 + P2P1G0
c4 = G3 + P3G2 + P3P2G1 + P3P2P1G0
Carry Lookahead Adder
 Maximum gate
delay for the carry
generation is only 3.
The full adders
introduce two more
gate delays. Worst
case path is 5 gate
delays.
The Booth Algorithm
 Booth multiplication reduces the number of additions
for intermediate results, but can sometimes make it worse
as we will see.
 Positive and negative numbers treated alike.
A Worst Case Booth Example
 A worst case situation in which the simple Booth algorithm
requires twice as many additions as serial multiplication.
Bit-Pair Recoding (Modified Booth
Algorithm)
Coding of Bit Pairs
Parallel
Pipelined
Array
Multiplier
Addition Example Using BCD
 Addition is performed digit by digit (not bit by bit), in 4-bit
groups, from right to left.
 Example (255 + 63 = 318)10:
Subtraction Example Using BCD
 Subtraction is carried out by adding the ten’s complement
negative of the subtrahend to the minuend.
 Ten’s complement negative of subtrahend is obtained by
adding 1 to the nine’s complement negative of the subtrahend.
 Consider performing the subtraction operation (255 - 63 =
192)10:
Excess 3 Encoding of BCD Digits
 Using an excess
3 encoding for each
BCD digit, the
leftmost bit indicates
the sign.
A BCD Full Adder
 Circuit adds
two base 10 digits
represented in
BCD. Adding 5
and 7 (0101 and
0111) results in 12
(0010 with a carry
of 1, and not 1100,
which is the binary
representation of
1210).
Ten’s Complement Subtraction
 Compare: the traditional signed magnitude approach
for adding decimal numbers vs. the ten’s complement
approach, for (21 - 34 = -13)10:
BCD Floating Point Representation
 Consider a base 10 floating point representation with a
two digit signed magnitude exponent and an eight digit
signed magnitude fraction. On a calculator, a sample entry
might look like:
-.37100000  10-12
 We use a ten’s complement representation for the
exponent, and a base 10 signed magnitude representation for
the fraction. A separate sign bit is maintained for the
fraction, so that each digit can take on any of the 10 values
0–9 (except for the first digit, which cannot be zero). We
should also represent the exponent in excess 50 (placing the
representation for 0 in the middle of the exponents, which
range from -50 to +49) to make comparisons easier.
 The example above now looks like this (see next slide):
BCD Floating Point Arithmetic
 The example in the previous slide looks like this:
Sign bit:
1
Exponent: 0110 1011
Fraction:
0110 1010 0100 0011 0011 0011 0011 0011 0011
 Note that the representation is still in excess 3 binary form,
with a two digit excess 50 exponent.
 To add two numbers in this representation, as for a base 2
floating point representation, we start by adjusting the exponent
and fraction of the smaller operand until the exponents of both
operands are the same. After adjusting the smaller fraction, we
convert either or both operands from signed magnitude to ten’s
complement according to whether we are adding or subtracting,
and whether the operands are positive or negative, and then
perform the addition or subtraction operation.
16-bit Group Carry Lookahead Adder
 A16-bit GCLA is composed of four 4-bit CLAs, with
additional logic that generates the carries between the fourbit groups.
GG0 = G3 + P3G2 + P3P2G1 + P3P2P1G0
GP0 = P3P2P1P0
c4 = GG0 + GP0c0
c8 = GG1 + GP1c4 = GG1 + GP1GG0 + GP1GP0c0
c12 = GG2 + GP2c8 = GG2 + GP2GG1 + GP2GP1GG0 +
GP2GP1GP0c0
c16 = GG3 + GP3c12 = GG3 + GP3GG2 + GP3GP2GG1 +
GP3GP2GP1GG0 + GP3GP2GP1GP0c0
A Programmer’s View