You are on page 1of 19

Fakultet za ekonomiju i inenjerski menadment,

Novi Sad, Januar 2015.

SEMINARSKI RAD
PREDMET: UVOD U ORGANIZACIJU
RAUNARA
TEMA: ARITMETIKO-LOGIKA JEDINICA

Profesor: Dr Duan Okanovi


Student: Stefan Spasojevi IN431/14

Sadraj
UVOD.......................................................................................................
................3

1. ta je Aritmetiko-logika
jedinica?...................................................................4

2. Integer i Aritmetiko-logika
jedinica................................................................5
2.1. Prezentacija Integer
brojeva........................................................................5
2.2. Konverzija izmeu razliitih bitnih
veliina.....................................................8

3. Floating-point i Aritmetiko-logika
jedinica......................................................9
3.1. Prezentacija Floating-point tipa brojeva
principi.........................................9
3.1.1. Standard za binarnu prezentaciju floating-point
brojeva...11
3.2. Aritmetike operacije sa floating-point
brojevima.......................................12
3.2.1. Floating-point sabiranje i
oduzimanje..................................................12
3.2.2. Floating-point mnoenje i
deljenje.......................................................14
Zakljuak.................................................................................................
.........17
2

Literatura.................................................................................................
........18

Uvod
Tema ovog seminarskog rada je funkcionalnost aritmetike i logike
jedinice (ALU Arithmetic logic unit), a fokus je na reprezentaciji
brojeva i tehnikama za implementaciju aritmetikih operacija.
Procesori tipino podravaju dva aritmetika tipa: Integer celi brojevi,
i floating point, brojevi sa pokretnim zarezom.
Dva osnovna principa kompjuterske aritmetike su nain na koji su
brojevi prezentovani (format binarnog koda) i algoritmi koji se koriste
za osnovne aritmetike operacije (oduzimanje, sabiranje, mnoenje,
deljenje). Ova dva principa primenjuju se se i na tip integer i na tip sa
plutajuim zarezom.
Brojevi sa pokretnim zarezom definisani su kao brojevi koji su
pomnoeni konstantom (bazom), podignuti na odredjeni stepen
(eksponent). Mogu predstavljati i veoma velike ali i male brojeve.
U prvom delu bie pojanjen pojam aritmetiko logike jedinice i
osnovni principi njenog funkcionisanja.
Dalje se sreemo sa predstavljanjem integer brojeva.
U poslednjem delu bavimo se predstavljanjem kao i aritmetikim
operacijama nad brojevima sa pokretnim zarezom.

1.

ta je Aritmetiko logika jedniica?

Aritmetiko logika jedinica ALU, je deo raunara koji zapravo operie


aritmetikim i logikim operacijama nad podacima. Svi ostali elementi
kompjuterskog sistema kontrolna jedinica, registri, memorija, I/O su
tu da bi pre svega sproveli podatke do ALU kako bi ona mogla da ih
obradi a zatim da povratnu informaciju u vidu rezultata.
ALU kao i sve ostale elektronske komponente kompjuterskog sistema
zasnovani su na digitalnom logikom ureaju koji skladiti binarne cifre
i izvrava jednostavne Boolean (tip koji odreuje istinitost iskaza, true
ili false) logike operacije.
Na slici broj 1 vidimo kako je u globalu ALU konektovana sa ostatkom
procesora. Podaci se predaju ALU u registrima, i rezultat operacija se
skladiti u registrima. Ovi registri predstavljaju kratkotrajnu lokaciju za
skladitenje unutar procesora koji su konektovani signalnim putanjama
do ALU.
ALU takodje moe da postavi takozvane zastavice (flags). Na primer
zastavica je podeena na jedinicu ukoliko rezultat premauje(overflow)
duinu registra u kojem je predvieno da bude uskladitena. Vrednosti
zastavica su takodje smetene u registrima unutar procesora.
Kontrolna jedinica prua signale koji kontroliu operaciju ALU i
migraciju podataka ka ALU kao i iz nje.

Slika

broj
1.
Inputi i autputi aritmetiko logike jedinice

2. Integer i ALU

2.1. Prezentacija Integer brojeva


U binarnom sistemu brojeva, nasumini brojevi mogu biti prezentovani
samo upotrebom nula i jedinica, znaka minus, i periode, tj. radix
point.
- 1101,01012 = -13,312510
Medjutim za funkcije kompjuterskog skladitenja i obrade, ne postoji
prednost korienja znaka minus i periode. Budui da smo ogranieni
da samo binarne cifre 0 i 1 mogu biti upotrebljeni za prezentaciju
brojeva, ova prezentacija je prosta. Evo primera:
Osmobitna re prezentuje brojeve od 0 do 255
00000000 = 0
00000001 = 1
00000101 = 5
00010010 = 18
11111111 = 255
To funkiconise na sledei nain. Ukoliko je n-bitna sekvenca binarnih
cifara an-1 an-2... a1 a0 prezentovana kao celi broj A, njegova vrednost je:

Postoji nekoliko alternativa kako bi se predstavili negativni brojevi kao i


pozitivni brojevi, a tehnike se zasnivaju na analizi prvog (skroz levog)
bita u frazi kao bita za oznaavanje. Ukoliko je taj bit 0, broj je
pozitivan, a ukoliko je prva cifra fraze 1, broj je negativan.

Najjednostavniji nain oznaavnja predznaka + ili je je takozvana


oznaavnje znakovnom dimenzijom (sign magnitude). U n-bitnoj frazi,
bitovi desno od prve cifre n-1 odredjuju dimenziju integer broja.
Uzmimo sledei primer:
+37 = 000100101
-37 = 100100101

U ovom sluaju dakle vidimo da je prva cifra u 9-bitnoj rei 0. Po


pravilima sign-magnitude tehnike znamo da je broj pozitivan. Ukoliko
prevodimo brojeve u dekadni sistem, sledei korak jeste nai brojeve
bitove koji nisu jednaki nuli (jedinice) u rei i stepenovati ih u
zavisnosti od pozicije (pozicija - 1), izuzimajui prvu cifru u rei koja
slui iskljuivo za oznaavanje predznaka broja. Dakle uproeno to
izgleda ovako:
+37 = 000100101
-37 = 100100101
2(5)+2(2)+2(0) =
32 + 4 + 1 = 37

Postoji nekoliko problema koji mogu proizii iz sign magnitude


reprezentacije brojeva. Jedna je to da sabiranje i oduzimanje zahtevaju
uzimanje u obzir i predznaka + ili ispred broja kao i magintudu (deo
broja koji oznaava broj, bez prve cifre fraze) da bi se izvrila
zahtevana operacija.
Drugi problem koji moe nastati jeste taj to u tom sluaju postoje dva
predznaka broja 0.
+010 = 0000000
-010 = 1000000
6

Ovo moe biti nezgodno jer je na ovaj nain tee testirati nulu
(operacija koja se esto vri na kompjuteru) nego kada bi postojao
samo jedan znak. Zbog ovih nedostataka sign magnitude tehnika se
retko upotrebljava za implementaciju funkcionisanja integera kod ALU.
Umesto toga najee koriena tehnika je tehnika komplementarne
reprezentacije dvojke (twos complement representation).
Kao i sign magnitude, i twos complement reprezentacija koristi prvi bit
kao bit za oznaavanje znaka, i na taj nain je lako utvrditi da li je
integer broj pozitivan ili negativan. Razlikuje se meutim od prethodne
tehnike nainom na koji je ostatak bita tumaen. Sledea tabela
naglaava kljune karakteristike ove tehnike prezentovanja brojeva i
aritmetikih operacija.

Opseg
Broj reprezentacija
nule
Negacija

Proirenje bitne
duine
Pravilo za
prekoraenje

Pravilo za oduzimanje

-2

n-1

kroz 2
Jedan

n-1

-1

Uzeti Boolean vrednost svakog bita sa


odgovarajuim pozitivnim brojem, zatim
dodajte jedan rezultatu eme bita
gledane kao na neoznaen integer
broja.
Dodati bitnu poziciju skroz levo i
popuniti sa vrednou originalnog bita
za oznaavanje.
Ukoliko dva broja sa istim znakom (oba
pozitivna ili oba negativna) budu
sabrana, dolazi do prekoraenja samo i
samo ako rezultat dobije suprotan znak.
Kako bi se se B oduzelo od A, uzimaju
se dve komplementarne veliine sa B i
dodaju se na A.

Tabela 1. Kljune karakteristike prezentovanja brojeva i aritmetike


twos complement
Prednost ove tehnike je to ne ostavlja sumnju da pravilo aritmetikih
operacija ne funkcionie na pravilan nain. Razmotrimo n-bitni integer
broj, A, u twos complement tehnici reprezentacije. Ako je A pozitivan,
7

onda je bit za oznaavanje, an-1 sigurno 0. Ostatak bitova predstavlja


dimenziju bitne rei koja slui za oznaavanje ostatka broja. Broj nula
je identifikovan kao pozitivan i stoga ima prvi bit 0.

Tabela 2. Poreenje sign magnitude i twos complement reprezentacije


brojeva1
Tabela data gore poredi sign magnitude i
prezentaciju brojeva u 4bitnom sistemu broja.
complement deluje nezgodno ljudskom oku, ona
operacije sabiranja i oduzimanja. Upravo iz tog
najee koritena tehnika za obradu.

twos complement
Iako tehnika twos
znaajno olakava
razloga ovo jeste

Twos complement se dakle ne rezlikuje u binarnom zapisu od sign


magnitude tehnike kada se radi o prezentaciji pozitivnih brojeva.
Meutim ukoliko je, signifikanta za odreivanje predznaka 1, to
implicira da se radi o negativnom broju, binarni brojevi koji slue za
odreivanje veliine broja se invertuju i dodaje im se jedinica, to
moemo videti i na primeru. Pretpostavimo da radimo sa 8-bitnim
reima i hoemo da prezentujemo dekadni broj -28 u binarnom
sistemu. Ispisaemo prvo broj +28 u binarnom sistemu.
00011100
1 * tabela preuzeta iz knjige: William Stallings - Computer Organization and
Architecture Designing for Performance (8th Edition), strana 310
8

Zatim invertujemo brojeve, nule postaju jedinice, i obrnuto, jedinice


prebacujemo u nule.
11100011
Na kraju dodajemo jedan.
11100100
Ovako izgleda broj -28 zapisan u twos complement sistemu.

2.2. Konverzija izmeu razliitih bitnih


veliina
U nekim sluajevima deava se da je potrebno uzeti n-bitni integer i
smestiti m bita, kada je m n.
U sign magnitude tehnici, ovo je lako ostvarljivo: jednostavno se
pomeri bit za oznaavanje predznaka na novokreiranu poziciju skroz
levo i medjuprostor se popuni nulama.

18

00010010 (sign magnitude, 8

18

0000000000010010 (sing

-18

10010010 (sign magnitude, 8

-18

1000000000010010 (sing

bita)
magnitude, 16 bita)
bita)
magnitude, 16 bita)

Meutim ova procedura, logino, ne funkcione u sluaju twos


complement negativnog broja. Koristei isti primer dolazimo do
sledeeg:

18

00010010

(sign

magnitude, 8 bita)
18
9

0000000000010010 (twos

complement, 16 bita)
-18
magnitude, 8 bita)
-32658
complement, 16 bita)

=
=

10010010

(sign

1000000000010010 (twos

Kod ove tehnike vai drugo pravilmo, jer kao to je ve reeno za


negativne brojeve kod twos complement i sign magnitude ne vae ista
pravila. U ovom sluaju potrebno je pomeriti bit za odreivanje
predznaka na skroz levu poziciju i popuniti sa kopijama bita za
oznaavanje. Dakle za pozitivne brojeve meuprostor se popunjava sa
nulama, dok se za negativne brojeve popunjava sa jedinicima. Ova
tehnika naziva se znakovna ekstenzija.
-18

11101110

(twos

complement, 8 bita)
-18
complement, 16 bita)

10

1111111111101110 (twos

3. Floating Point I ALU


3.1. Prezentacija Floating point tipa
brojeva - principi
Sa notacijom celih brojeva (npr. Twos complement) mogue je
prezentovati veliki opseg negativnih i pozitivnih integer-a koji su
centrirani oko nule. Pretpostavljajui da je binarni broj fiksiran, ovaj
format takoe dozvoljava prezentaciju brojeva sa decimalama. Termin
floating point, tj. plutajui zarez, odnosi se na injenicu da decimalna
taka, moe da pluta; to znai da moe biti smetena bilo gde u
odnosu na znaajne cifre.
Ovaj pristup meutim ima ogranienja. Veoma veliki brojevi ne mogu
biti predstavljeni, kao ni veoma male decimale. Jo jedan problem
moe biti to pri deljenju dva velika broja decimale mogu biti
izgubljene.
Za decimalne brojeve, ovaj problem moemo zaobii koristei naunu
notaciju. Tako 976,000,000,000,000 moe biti prezentovan kao 9,76 X
1014, a 0,000000000000976 moe biti prezentovan kao 9,76 X 10- 14.
Ono to se u prinicpu radi, jeste dinamiko pomeranje take decimale
do odgovarajueg mesta, koritenjem stepenovanog broja 10 kako bi
se zadrao trag originalne veliine broja. Ovo omoguava da veoma
veliki ili veoma mali brojevi budi zapisani u samo nekoliko cifara. Dakle
u ovom sluaju na primer, 9,76 predstavlja signifikantu, odnosno
znaajne, relevantne cifre.

Ovaj broj moe biti uskladilten dakle u binarnu re sa samo tri polja:

11

Znak: plus ili minus


Osnovom za mnoenje (signifikanta relevantni brojevi)
Eksponent E

Da bi se olakale operacije floating point brojevima, potrebno je da


budu normalizovani. Normalizovan broj je onaj kod kojeg skroz leva
cifra u binarnom nizu nije jednaka nuli. Radix point, ili decimalna
taka je uvek pozicionirana negde unutar signifikande, odnosno
mantise koja predstavlja frakcioni deo logaritma, esto odmah
posle, ili pre signifikante. Tako normalizovan broj ispisuje se po ovoj
emi

Gde je b bilo koja binarna cifra (0 ili 1). Zato to je skroz levi broj uvek
jedan, nije potrebno uskladititi ovaj bit; on je dakle samoimpliciran.

Principi korieni u prezentaciji binarnih brojeva sa plutajuim zarezom


mogu su prezentovani na slici broj 2. Ovde je prikazan tipian 32-bitni
floating point format. Dakle bit koji se nalazi skroz levo oznaava
predznak (0 pozitivan, a 1 negativan). Vrednost eksponenta skladiti
se u sledeih 8 bitova. Bias vrednost, ili pretpostavljena, ve
predviena vrednost, koja u ovom sluaju iznosi 8 bitova koristi se
kako bi se dobila prava vrednost eksponenta. Bias vrednost iznosi 2 k-1
1, gde k predstavlja broj bitova binarnog eksponenta. U ovo sluaju
uzmimo da je bias 127(27 1), prava vrednost eksponenta je u rasponu
od -127 do 127. U ovom sluaju baza je 2.

Slika 2. Primer prezentacije 32-bitnog floating point broja2

3.1.1. Standard za binarnu prezentaciju


floating-point brojeva
2 Primer preuzet iz knjige: William Stallings - Computer Organization and
Architecture Designing for Performance (8th Edition), strana 328
12

Najznaajniji dokument za prezentaciju floating-pointa definisan je


IEEE(Institute of Electrical and Electronics Engineers) standardu 754,
koji je usvojen 1985. Ovaj standard je razvijen kako bi olakao
portabilnost programa od jednog procesora do drugog i uinio razvoj
sofisticiranih, numeriki orijentisanih programa. Ovaj standard je dakle
iroko prihvaen i koristi se na praktino svim procesorima i
aritmetikim
koprocesorima.
Ovaj standard definie 32-bitni jedinini i 64-bitni dupli format, sa 8bitnim i 11-bitnim eksponentima. Postoji i proirene varijante ovih
formata koji ukljuuju dodatne bitove u eksponentu i u signifikanti (za
veu preciznost). Proireni formati se koriste za komplikovanija
raunanja gde je potrebna vea preciznost.

3.2. Aritmetike operacije sa floatingpoint brojevima


3.2.1. Floating-point sabiranje i
oduzimanje
U aritmetikim operacijama sa brojevima sa pokretnim zarezom, sabiranje i
oduzimanje su kompleksnije operacije od mnoenja i deljenja. To je zbog toga
to je prisutna potreba za poravnanjem. etiri su osnovne faze u algoritmu
sabiranja i oduzimanja:
1.
2.
3.
4.

Primeri:

13

Provera nula
Poravnanje signifikanti
Dodavanje ili oduzimanje signifikanti
Normalizacija rezultata

Kako bi se izvrilo sabiranje ili oduzimanje brojeva sa pokretnim


zarezom, operandi (brojevi koji nad kojima se vre aritmetike
operacije) moraju biti prebaeni u registre koji e biti koriteni od
strane ALU.
Faza 1: Provera nula. Obzirom da su sabiranje i oduzimanje identini
osim to dolazi do promene znaka, proces zapoinje promenom znaka
umanjioca ako je u pitanju operacija oduzimanja. Zatim, ako je neki od
operanda
jednak
nuli,
drugi
se
daje
kao
rezultat.

Faza 2: Poravnanje signifikante. Druga faza podrazumeva manipulaciju


brojevima kako bi eksponenti bili jednaki. Sledi primer.
(123 x 100) + (456 x 10-2)
Oito je da ne moemo prosto sabrati signifikante. Brojevi moraju prvo
biti postavljeni u ekvivalentne pozicije, tanije etvorka drugog broja
mora biti poravnata sa trojkom prvog broja. Pod ovim uslovima, dva
eksponenta bie jednaka, to je matematiki uslov pod kojim dva broja
u
ovoj
formi
mogu
biti
sabrana.
Dakle,
(123 x 100) + (456 x 10-2) = (123 x 100) + (4.56 x 100)
Poravnanje moe biti postignuto ili pomeranjem decimale manjeg broja
desno, ili pomeranjem decimale veeg broj levo.
Faza 3: Sabiranje. Dve signifikante se sabiraju, uzimajui u obzir i
njihov predznak. S obzirom da znakovi mogu da se razlikuju, rezultat
moe biti 0.
Faza 4: Normalizacija. Poslednja faza normalizuje rezultat.
Normalizacija se sastoji od pomeranja cifri signifikante levo dok se
najznaajniji broj (most-significant number), ne bude razliit od nule.
Svako pomeranje izaziva dekrementaciju(umanjenje) i stoga moe
izazvati eksponencijalni underflow (nedovljno cifara). Konano
rezultat mora biti zaokruen i prijavljen.

14

U sledeem dijagramu vidimo korak po korak kako funkcioniu


oduzimanje i sabiranje brojeva sa pokretnim zarezom.

Slika 3. Dijagram toka za proces sabiranja i oduzimanja floating-point


brojeva3

3.2.2. Floating-point mnoenje i deljenje


Mnoenje i deljenje brojeva sa pokretnim zarezom
jednostavniji proces nego sabiranje i oduzimanje.

je

mnogo

Kod mnoenja se prvo gleda da li je neki od operanda jednak nuli.


Ukoliko jeste 0 se prijavljuje kao rezultat. Drugi korak jeste dodavanje
eksponenata.
Ukoliko je eksponent rezultata unutar odgovarajueg raspona, sledei
korak jeste mnoenje signifikanti, uzimajui u obzir njihove znakove.
Rezultat e duplirati duinu mnoilaca. Bitovi vika bie meutim
izgubljeni prilikom zaoukruivanja. Slian princip primenjuje se i kod
mnoenja integera.
3 Dijagram preuzet iz knjige: William Stallings - Computer Organization and
Architecture Designing for Performance (8th Edition), strana 336
15

Nakon izraunavanja rezultata, rezultat se normalizuje i zaokruuje,


kao i kod sabiranja i oduzimanja.

Slika 4.
Mnoenje floating point,
brojeva sa pokretnim zarezom
(ZX X Y) 4

4 Dijagram preuzet iz knjige: William Stallings - Computer Organization and


Architecture Designing for Performance (8th Edition), strana 339
16

Na kraju razmotrimo dijagram toka deljenja za brojeve sa pokretnim


zarezom.

Slika 5.
Deljenje brojeva sa
pokretnim zarezom
(Z X / Y) 5

Jo jednom, prvi korak je traenje nule. Ako je delilac jednak nuli,


prijavljuje se greka, ili se rezultat postavlja na beskonano, zavisno
od implementacije. Ako je deljenik nula, rezultat se postavlja na
nulu. Sledei korak je oduzimanje eksponentnog broja delioca od
eksponente deljenika. Zatim se dele signifikante. Ovo je propraeno
normalizacijom i zaokruivanjem.

Zakljuak

5 Dijagram preuzet iz knjige: William Stallings - Computer Organization and


Architecture Designing for Performance (8th Edition), strana 338
17

Aritmetiko-logika jedinica (engl. Arithmetic-logic unit - ALU) je logiko


kolo koje izvodi aritmetike (sabiranje, oduzimanje, mnoenje i
deljenje) i logike operacije (uporeivanje dve vrednosti da bi se
odredila vea, odreivanje da li je iskaz istinit ili ne...).
U poetku su ove operacije izvoene samo celim brojevima, dok su
operacije s realnim brojevima izvoene softverski. Kasnije je
aritmetiko-logikoj jedinici pridodata posebna jedinica za izvoenje
operacija s realnim brojevima i izraunavanje trigonometrijskih i drugih
funkcija (en. floating point processor) koja je u poetku bila realizovana
kao posebna jedinica (en. coprocessor), dok su kod savremenih
raunara obe jedinice realizovane u okviru istog ipa.

Literatura
18

1. William Stallings - Computer Organization and Architecture


Designing for Performance (8th Edition)
2. http://education-portal.com/academy/lesson/arithmetic-logic-unit-aludefinition-design-function.html
3. http://www.randelshofer.ch/fhw/gri/float.html

19

You might also like