Vous êtes sur la page 1sur 70

ARKITEKTURA E SETIT TE

INSTRUKSIONEVE-2

Leksioni III

SETI I INSTRUKSIONEVE
Repertori i instruksioneve te nje kompjuteri
Kompjutera te ndryshme kane sete te ndryshme
instruksionesh

Por kane shume aspekte te perbashketa

Implementim i thjeshtezuar

Kompjuterat e hershem kishin sete


instruksionesh shume te thjeshta

Shume kompjutera moderne kane gjithashtu sete


instruksionesh te thjeshta

AVANTAZHET ME TE MEDHA NE KOMPJUTERA

Konceptimi I familjeve

IBM System/360 1964


DEC PDP-8
Ndarja e arkitektures nga implementimi

Njesia e kontrollit e mikroprogamuar


Ideja nga Wilkes 1951
Prodhuar nga IBM S/360 1964

Memoria cache

IBM S/360 modeli 85 1969

HAPI TJETER - RISC

Reduced Instruction Set Computer

Vecorite kryesore

Numer i madh i regjistrave me perdorim te


pergjithshem.
Perdorimi i teknologjise se kompilatoreve per
optimizimin e perdorimit te regjistrave.
Sete instruksionesh te thjeshte dhe te limituar.
Fokusi ne shfrytezimin e teknikave te avancuara te
ekzekutimit te instruksioneve (pipeline).

FORCAT FAVORIZUESE TE CISC


Kostot Software i tejkalojne ato Hardware.
Gjuhe te niveleve te komplesitetit te larte
gjithnje ne rritje ne numer .
Boshlleku semantik.
Con ne:

Sete instruksionesh te medha.


Me shume menyra adresimi.
Implemntime ne hardware te shprehjeve HLL.

psh. CASE (switch) neVAX

KRAHASIMI I PROCESOREVE

SETI I INSTRUKSIONEVE MIPS


Perdoret

si shembull ne shume libra


Stanford MIPS eshte hedhur ne treg nga
MIPS Technologies (www.mips.com)
Perdorim te gjere ne tregun e sistemeve
embedded

Aplikohet ne elektroniken per konsumatore,


paisjet e rrjetit dhe ruajtjes, kamerat,
printerat,

Perdorim

tipik ne shume ISA moderne

NDERTIMI I ARKITEKTURES- VEPRIMET


ARITMETIKE

Mbledhja dhe zbritja, tre operatore

Dy burime dhe nje destinacion

add a, b, c # a merr b + c
Te gjithe veprimet aritmetike kane kete forme

SHEMBULL ARITHMETIK

Kodi C :

f = (g + h) - (i + j);

Kodi perkates MIPS :

add t0, g, h
add t1, i, j
sub f, t0, t1

# temp t0 = g + h
# temp t1 = i + j
# f = t0 - t1

OPERANDET E REGJISTRAVE
Instruksionet

arithmetike perdorin
operande regjistrash
MIPS ka nje file regjistrash me permasa
32 32-bit

Perdoret per te dhenat qe perdoren shpesh


Numerohen nga 0 deri 31
Te dhenat 32-bit quhen fjale (word)

Emertimet

ne assembler

$t0, $t1, , $t9 per vlerat e perkoheshme


$s0, $s1, , $s7 per variablat e ruajtur

SHEMBULL ME OPERANDE REGJISTRASH

Kodi C:

f = (g + h) - (i + j);

f, , j ne $s0, , $s4

Kodi perkates ne MIPS :

add $t0, $s1, $s2


add $t1, $s3, $s4
sub $s0, $t0, $t1

OPERANDET E MEMORIES
Memoria

perbera

kryesore perdoret per te dhena te

Matricat, strukturat, te dhenat dinamike

Kryerja e veprimeve arithmetike


Ngarkimi i vlerave nga memoria ne regjistra
Ruajtja e rezultatit nga regjistrat ne memorje
Memorja adresohet me byte
Cdo adrese identifikon nje byte (8-bit)
Fjalet jane te lidhura ne memorje
Adresat duhet te jene shumefishe te 4
MIPS eshte Big Endian
Byti me me peshe ndodhet ne adresen me te vogel

te nje fjale
cf. Little Endian: Byti me me pak peshe ndodhet ne
adresen me te vogel

OPERANDET E MEMORIES: SHEBULLI 1

Kodi C:

g = h + A[8];

g ne $s1, h ne $s2, adresa baze e A ne $s3

Kodi perkates MIPS:

Index-i 8 kerkon offset prej 32

4 byte per fjale

lw $t0, 32($s3)
add $s1, $s2, $t0
offset

regjistri baze

ngarkimi i fjales

OPERANDET E MEMORIES: SHEBULLI 2

Kodi C:

A[12] = h + A[8];

h ne $s2, adresa baze e A ne $s3

Kodi perkates MIPS:

Index 8 kerkon offset 32

lw $t0, 32($s3) #
add $t0, $s2, $t0
sw $t0, 48($s3) #

ngarkimi i fjales

ruajtja e fjales

REGJISTRAT NE KRAHASIM ME MEMORIEN


Regjistrat jane me te shpejte per tu aksesuar
sesa memoria
Veprimet mbi te dhenat ne memorie kerkojne
ngarkime dhe ruajtje

Ekzekutohen me shume instruksione

Kompilatori duhet te perdore sa me shume


regjistra per variablat

I drejtohen memories vetem per variabla qe perdoren


rralle
Optimizimi i regjistrave eshte i rendesishem!

OPERANDET E MENJEHERESHEM(IMEDIATE)

Te dhenat konstante specifikohen ne instruksion

addi $s3, $s3, 4

Nuk ka zbritje ne instruksionet e menjehershem

Perdoret konstante negative

addi $s2, $s1, -1

KONSTANTJA ZERO

Regjistri MIPS: 0 ($zero) perfaqeson konstanten 0

Nuk mund te mbishkruhet

I perdorshem per veprime te zakonshme

P.sh., levizja ndermjet regjistrave


add $t2, $s1, $zero

INTEGERAT BINARE PA SHENJE

Jepet nje numer me n-bit

x = x n1 2

+ x n2 2

n2

+ + x1 2 + x 0 2
1

Rangu: 0 ne +2n 1
Shembull

n 1

0000 0000 0000 0000 0000 0000 0000 10112


= 0 + + 123 + 022 +121 +120
= 0 + + 8 + 0 + 2 + 1 = 1110

Duke perdorur 32 bite

0 deri +4,294,967,295

KOMPLEMENTI I 2-SHIT NUMRAT ME SHENJE

Jepet numri n-bit

x = x n1 2

+ x n2 2

n2

+ + x1 2 + x 0 2

Rangu : 2n 1 ne +2n 1 1
Shembull

n 1

1111 1111 1111 1111 1111 1111 1111 11002


= 1231 + 1230 + + 122 +021 +020
= 2,147,483,648 + 2,147,483,644 = 410

Duke perdorur 32 bite

2,147,483,648 to +2,147,483,647

KOMPLEMENTI I 2-SHIT NUMRAT ME SHENJE


Biti

i 31-te eshte biti i shenjes

1 per numrat negative


0 per numrat jo negative

0: 0000 0000 0000


1: 1111 1111 1111
Me shume negativ: 1000 0000 0000
Me shume pozitiv: 0111 1111 1111

(2n 1)

nuk mund te paraqitet


Numrat jo negative kane te njejten
paraqitje te numrit pa shenje dhe te
komplementit te 2-shit
Disa numra specifike

MOHIMI ME SHENJE

Komplementi dhe shuma me 1

Komplementi eshte 1 0, 0 1

x + x = 1111...1112 = 1
x + 1 = x

Shembull: mohimi i +2

+2 = 0000 0000 00102


2 = 1111 1111 11012 + 1
= 1111 1111 11102

ZGJATJA E SHENJES
Paraqitja

e numrave duke perdorur me


shume bite

Ruajta e vleres numerike

Ne setin e instruksioneve MIPS


addi: zgjat vleren e operandit imediate
lb, lh: zgjat byte/gjysmefjalen e ngarkuar
beq, bne: zgjat zhvendosjen
Shumefishimi

i bitit te shenjes ne te majte

cf. vlerat pa shenje: zgjaten me 0

+2: 0000 0010 => 0000 0000 0000 0010


2: 1111 1110 => 1111 1111 1111 1110

Shembuj:

8-bit ne16-bit

PARAQITJA E INSTRUKSIONEVE
Instruksionet

Quhet kod makine

Instruksionet

MIPS

Enkodohet si fjale instruksionesh 32-bit


Pak formatet te ndryshem enkodimi per kodet
e operimit (opcode), numrin e regjistrave,
Regullsi!

Regjistrat

kodohen ne numra binare

$t0 $t7 jane regjistrat 8 15


$t8 $t9 jane regjistrat 24 25
$s0 $s7 jane regjistrat 16 23

FORMATI-R I INSTRUKSIONEVE

op

rs

rt

rd

shamt

funct

6 bits

5 bits

5 bits

5 bits

5 bits

6 bits

Fushat e Instruksionit

MIPS

op: kodi operativ (opcode)


rs: numri i regjistrit te pare burim
rt: numri i regjistrit te dyte burim
rd: numri i regjistrit destinacion
shamt: madhesia e zhvendosjes (00000 per kete tip)
funct: kodi i funksionit (zgjeron opcode-in)

FORMATI R SHEMBULL
op

rs

rt

rd

shamt

funct

6 bite

5 bite

5 bite

5 bite

5 bite

6 bite

add $t0, $s1, $s2


speciale

$s1

$s2

$t0

add

17

18

32

000000

10001

10010

01000

00000

100000

000000100011001001000000001000002 = 0232402016

INSTRUKSIONET MIPS FORMATI-I


op

rs

rt

konstante ose adrese

6 bite

5 bite

5 bite

16 bite

Instruksione

arithmetike me immediate dhe


operacione load/store

rt: numri i regjistrit destinacion ose burim


Konstante: 215 deri +215 1
Adrese: offset qe i shtohet adreses baze ne rs

KOMPJUTERA ME PROGRAME NE MEMORIE


Instruksionet

perfaqesohen ne binar si te

dhenat.
Instruksionet dhe te dhenat ruhen ne
memorie.
Programet mund te veprojne mbi programe

p.sh. kompilatoret, linkerat,

ISA jane standartizuar

Kompatibiliteti

binar lejon qe programet te


punojne ne kompjutera te ndryshem.

OPERACIONET LLOGJIKE

Instruksione per manipulimin e biteve


Operacioni

Java

MIPS

Shift left

<<

<<

sll

Shift right

>>

>>>

srl

Bitwise AND

&

&

and, andi

Bitwise OR

or, ori

Bitwise NOT

nor

Te dobishme per te nxjerre apo per te


futur grupe bitesh nga nje fjale

OPERACIONI SHIFT
op

rs

rt

rd

shamt

funct

6 bite

5 bite

5 bite

5 bite

5 bite

6 bite

shamt: sa pozicione duhen zhvendosur


Zhvendosje llogjike majtas

Zhvendos majtas dhe mbushe me bite 0


sll me i bite shumezon me 2i

Zhvendosje llogjike djathtas

Zhvendos djathtas dhe mbushe me bite 0


srl me i bite pjeston me 2i (numra pa shenje)

OPERACIONET

AND

Te dobishme per te marre bitet ne nje fjale

Selekto disa bite, ktheji te tjeret ne 0

and $t0, $t1, $t2

$t2

0000 0000 0000 0000 0000 1101 1100 0000

$t1

0000 0000 0000 0000 0011 1100 0000 0000

$t0

0000 0000 0000 0000 0000 1100 0000 0000

OPERACIONET OR

Te dobishme per te perfshire disa bite ne nje fjale

Vendos disa bite ne 1, leri te tjeret te paprekur

or $t0, $t1, $t2

$t2

0000 0000 0000 0000 0000 1101 1100 0000

$t1

0000 0000 0000 0000 0011 1100 0000 0000

$t0

0000 0000 0000 0000 0011 1101 1100 0000

OPERACIONET NOT

Te dobishme per te invertuar bitet ne nje fjale

Ndrysho 0 ne 1, dhe 1 ne 0

MIPS ka instruksion NOR me 3-operande

a NOR b == NOT ( a OR b )

nor $t0, $t1, $zero

Regjistri 0: gjithmone
eshte zero

$t1

0000 0000 0000 0000 0011 1100 0000 0000

$t0

1111 1111 1111 1111 1100 0011 1111 1111

OPERACIONET E KUSHTEZUARA

Kerce ne nje instruksion te etiketuar nese nje kusht


eshte i vertete

beq rs, rt, L1

if (rs == rt) kerce tek instruksioni qe eshte etiketuar me L1;

bne rs, rt, L1

Perndryshe vazhdo ekzekutimin sekuencial

if (rs != rt) kerce tek instruksioni qe eshte etiketuar me L1;

j L1

kercim i pakushtezuar tek instruksioni qe eshte etiketuar


me L1

KOMPILIMI I IF

Kodi C:

if (i==j) f = g+h;
else f = g-h;

f, g, ne $s0, $s1,

Kodi perkates MIPS:

bne
add
j
Else: sub
Exit:

$s3, $s4, Else


$s0, $s1, $s2
Exit
$s0, $s1, $s2
Asemblatori perllogarit adresen

PERMBLEDHJE

Principet e projektimit ne MIPS

1. Thjeshtesia favorizon rregullsine


2. Me te vegjel, me te shpejte
3. Nderto rastin e zakonshem te shpejte

Fund i leksionit

KOMPILIMI I CIKLEVE

Kodi C:

while (save[i] == k) i += 1;

i ne $s3, k ne $s5, adresa e vektorit save ne $s6

Kodi perkates MIPS:

Loop: sll
add
lw
bne
addi
j
Exit:

$t1,
$t1,
$t0,
$t0,
$s3,
Loop

$s3, 2
$t1, $s6
0($t1)
$s5, Exit
$s3, 1

BLLOQET KRYESORE

Nje bllok kryesor eshte nje sekuence instruksionesh


me

Mungese kercimi ne brendesi (pervecse ne fund)


Nuk permban instruksion qe eshte destinacion i nje kercimi
(pervecse ne fillim)

Kompilatori identifikon
blloqet kryesore per
optimizim
Nje procesor i avancuar
mund te shpejtoje
ekzekutimin e blloqeve
kryesore

OPERACIONE TE TJERA TE KUSHTEZUARA

Vendos rezultatin ne 1 nese nje kusht eshte i


vertete

slt rd, rs, rt

if (rs < rt) rd = 1; else rd = 0;

slti rt, rs, kostante

Perndryshe vendose ne 0

if (rs < kostante) rt = 1; else rt = 0;

Perdoren ne kombinim me beq, bne


slt $t0, $s1, $s2 # if ($s1 < $s2)
bne $t0, $zero, L #
kerce ne L

PROJEKTIMI I INSTRUKSIONEVE BRANCH


Pse jo blt, bge, etj?
Hardware per <, , me i ngadalte sesa =,

Te kombinuara me kercim kerkojne me shume pune


per instruksion, duke cuar ne nje clock me te
ngadalte
Te gjithe instruksionet penalizohen!

beq dhe bne jane rasti me i zakonshem


Gjithmone eshte nje kompromis i mire
shpejtimi i rastit me te zakonshem!

ME SHENJE DHE PA SHENJE


Krahasimi me shenje: slt, slti
Krahasimi pa shenje: sltu, sltui
Shembull
$s0 = 1111 1111 1111 1111 1111 1111 1111 1111
$s1 = 0000 0000 0000 0000 0000 0000 0000 0001

slt

$t0, $s0, $s1

1 < +1 $t0 = 1

sltu $t0, $s0, $s1

# me shenje
# pa shenje

+4,294,967,295 > +1 $t0 = 0

THIRRJA E PROCEDURES

Hapat e nevojshem

1.
2.
3.
4.
5.
6.

Vendos parametrat ne regjistra


Transfero kontrollin tek procedura
Krijo hapsire per proceduren
Kryej operacionet e procedures
Vendos rezultatin ne regjister per thirresin
Kthehu ne vendin e therritjes

PERDORIMI I REGJISTRAVE
$a0

$a3: per argumentet (regj. 4 7)


$v0, $v1: rezultatet (regj. 2 dhe 3)
$t0 $t9: te perkohshem

Mund te mbishkruhen nga i therrituri

Mund te ruhen dhe te rikthehen nga i therrituri

$s0

$s7: ruhen te dhenat

$gp:

pointeri global per te dhena statike (regj 28)


$sp: pointeri ne stack (regj 29)
$fp: pointeri ne frame (regj 30)
$ra: regjistri qe mban adresen e kthimit(regj 31)

INSTRUKSIONET E THERRITJES SE
PROCEDURES

Therritja e procedures: jump and link

jal EtiketeEProcedures
Adresa e instruksionit pasardhes vendoset ne $ra
Kercehet ne adresen destinacion

Kthimi nga procedura: jump register

jr $ra

Kopjon $ra ne PC

TE DHENA TE TIPIT KARAKTER

Grupi i karaktereve me madhesi 1-byte

ASCII: 128 karaktere

Latin-1: 256 karaktere

95 grafike, 33 kontrolli

ASCII, +96 karaktere te tjere grafike

Unicode: grup karakteresh me 32-bit

Perdoret ne Java, C++,


Shumicen e alfabeteve te botes, plus simbole
UTF-8, UTF-16: enkodime me gjate te ndryshme

OPERACIONE MBI BYTE/HALFWORD


Mund te perdorim operacionet e veprimit mbi byte
Instruksione MIPS load/store mbi byte/halfword

Ne rastin me te zakonshem eshte perpunimi i stringave

lb rt, offset(rs)

Zgjerimi i shenjes me 32-bit ne rt

lbu rt, offset(rs)

lhu rt, offset(rs)

Zgjerimi i zeros me 32-bit ne rt

sb rt, offset(rs)

lh rt, offset(rs)

sh rt, offset(rs)

Ruaj pjesen me ne te djathte byte/halfword

SHEMBULL I KOMPJIMIT TE NJE STRINGE

Kodi C :

Stringa e perfunduar me null

void strcpy (char x[], char y[])


{ int i;
i = 0;
while ((x[i]=y[i])!='\0')
i += 1;
}
Adresa e x, y ne $a0, $a1
i ne $s0

SHEMBULL I KOMPJIMIT TE NJE STRINGE


Kodi

MIPS :

strcpy:
addi
sw
add
L1: add
lbu
add
sb
beq
addi
j
L2: lw
addi
jr

$sp,
$s0,
$s0,
$t1,
$t2,
$t3,
$t2,
$t2,
$s0,
L1
$s0,
$sp,
$ra

$sp, -4
0($sp)
$zero, $zero
$s0, $a1
0($t1)
$s0, $a0
0($t3)
$zero, L2
$s0, 1
0($sp)
$sp, 4

#
#
#
#
#
#
#
#
#
#
#
#
#

rregullo stakun per 1


ruaj $s0
i = 0
adresa e y[i] ne $t1
$t2 = y[i]
adresa e x[i] ne $t3
x[i] = y[i]
dil nga cikli nese y[i] == 0
i = i + 1
iterimi tjeter i ciklit
rikthe $s0 e ruajtur
pop 1 nga staku
dhe rikthehu

KONSTANTET 32-BIT

Shumica e konstanteve jane numra te vegjel

16-bit imediat mjafton

Per konstantet me 32-bit kemi


lui rt, constant
Kopjon konstanten 16-bit ne 16-bitet e majte te rt
Bitet e tjera i con ne zero

lhi $s0, 61

0000 0000 0111 1101 0000 0000 0000 0000

ori $s0, $s0, 2304 0000 0000 0111 1101 0000 1001 0000 0000

ADRESEIMI I KERCIMEVE BRANCH

Instruksionet branch specifikojne

Opkodin, dy regjistra, adresen destinacion

Shumica e destinacioneve te kercimit jane afer

Perpara ose mbrapa

op

rs

rt

konstante ose adrese

6 bite

5 bite

5 bite

16 bite

Adresim PC-relativ

Adresa destinacion = PC + offset 4


PC eshte inkrementuar me perpara me 4

ADRESIMI I JUMP

Jump (j) destinacioni mund te jete kudo

Vendos adresen e plote ne instruksion

op

adrese

6 bits

26 bits

Adresimi direkt ne jump

Adresa destinacion = PC3128 : (adresa 4)

ADRESA DESTINACION SHEMBULL

Shembull i nje cikli

Marrim parasysh qe cikli eshte ne adresen 80000

Loop: sll

$t1, $s3, 2

80000

19

add

$t1, $t1, $s6

80004

22

32

lw

$t0, 0($t1)

80008

35

bne

$t0, $s5, Exit 80012

21

19

19

addi $s3, $s3, 1

80016

80020

Exit:

Loop

80024

20000

PERMBLEDHJE E MENYRAVE TE ADRESIMIT

NGARKIMI I NJE PROGRAMI

Ngarkimi nje file imazh nga disku ne memorie


1. Lexo headerin per te percaktuar madhesite e
segmenteve
2. Krijo hapsiren e adresimit
3. Kopjo tekstin dhe te dhenat ne memorie
4. Vendos argumentat ne stack
5. Inicializo regjistrat ($sp, $fp, $gp)
6. Kerce tek rutina fillestare

Kopjo argumentat ne $a0, dhe thirr main()


Kur main() perfundon ekzekuto thirrjen e sistemit exit()

FILLIMI I APLIKACIONIT NE JAVA


Seti i
Instruksioneve i
thjeshte per JVM

Kompilon
bytecodet e
metodave ne
kod te
makines

Interpreton
bytecodet

ARM & MIPS NGJASHMERITE


ARM:

berthama per sistemet embedded


Grupi i instruksioneve i ngjashem me MIPS

Data e prezantimit
Madhesia e instruksioneve
Hapsira e adresimit
Data alignment
Menyra e adresimit
Regjistrat
Input/output

ARM

MIPS

1985

1985

32 bits

32 bits

32-bit flat

32-bit flat

Aligned

Aligned

15 32-bit

31 32-bit

Memory
mapped

Memory
mapped

ENKODIMI I INSTRUKSIONEVE

ISA PER INTEL X86


Evolucioni

duke ruajtur kompatibilitetin

8080 (1974): 8-bit mikroprocesor

Akumulator, plus 3 cifte indeks-regjistra

Complex instruction set (CISC)

Shton nstruksionet FP dhe stakun e regjistrave

Mbrojtja e memories nepermjet segmentimit

8086 (1978): 16-bit zgjerim i 8080

8087 (1980): koprocesor per llogaritjet FP


80286 (1982): 24-bit adresa

80386 (1985): 32-bit zgjerim (tani IA-32)

Menyra te tjera adresimi dhe operacione


Perdorimi i faqosjes se memories dhe segmentimit

ISA PER INTEL X86


Me

i486 (1989): pipeline, cache dhe FPU

tej

konkurenca: AMD, Cyrix,

Pentium (1993): superskalar, 64-bit datapath


Instruksionet MMX (Multi-Media eXtension)
Problem ne njesine e pjestimit

Pentium Pro (1995), Pentium II (1997)

Mikroarkitektura te reja (Colwell)

Instruksionet SSE (Streaming SIMD Extensions) dhe


regjistra te rinj

Pentium III (1999)


Pentium 4 (2001)

Mikroarkitekture e re
U shtuan instruksione SSE2

ISA PER INTEL X86


Me

tej

AMD64 (2003): zgjeroi arkitekturen ne 64 bite


EM64T Extended Memory 64 Technology
(2004)
AMD64 e adoptuar nga Intel (me permiresim)
U shtuan instruksionet SSE3

Intel Core (2006)

U shtuan instruksionet SSE4

Inteli refuzoi te ndiqte, por

Regjistra SSE me te gjate, me shume instruksione

AMD64 (2007): Instruksionet SSE5


Advanced Vector Extension (2008)

Nese

Inteli nuk do te zgjeronte me


kompatibilitet, konkurenca do ta bente!

REGJISTRAT

X86

MENYRAT KRYESORE TE ADRESIMIT X86


Dy

operande per instruksion


Burim/dest operand

Operandi i dyte burim

Regjister

Regjister

Regjister

Imediate

Regjister

Memorie

Memorie

Regjister

Memorie

Imediate

Menyrat e adresimit te memories

Adresa ne regjister
Adresa = Rbase + zhvendosje
Adresa = Rbase + 2shkalla Rindeks (shkalla = 0, 1, 2, ose 3)
Address = Rbase + 2shkalla Rindeks + zhvendosje

X86 INSTRUCTION

ENCODING

Instruksionet me permasa
te ndryshme
Byte Postfix specifikon
menyren e adresimit
Byte Prefix modifikon
operacionin

IMPLEMENTIMI I IA-32

Seti i instruksioneve kompleks e ben


implementimin e veshtire

Hardware i perkthen instruksionet ne


mikrooperacione
Instruksione te thjeshte: 11
Instruksione komplekse: 1shume

Mikronjesia njesoj si RISC


Metode mjaft e mire provuar nga eksperienca

Performance e krahasueshme me RISC

PSE CISC (1)?

Thjeshtezim kompilatori?

E kontestuar
Instruksionet komplekse te makines veshtire
shfrytezohen
Optimizimi eshte me I veshtire

Programe me te vogla?

Programet harxhojneme pak memorie por


Memoria eshte e lire tani
Mund te mos zere shume bite por duket me I
shkurtuar simbolikisht

Me shume instruksione duan me shume opcod-e


Referuesit e regjistrave duan me pak bite

KARAKTERISTIKAT RISC
Nje instruksion per cikel
Veprime me regjistra
Disa menyra te thjeshta adresimi memorieje
Pak formate, te thjeshta instruksionesh
Ndertim Hardwired (pa mikrokod)
Format I percaktuar instruksionesh
Me shume konsum kohe gjate kompilimit

RISC NE KRAHASIM ME CISC


Ska prerje me thike
Shume dizenjues marrin nga te dyja filozofite
Psh PowerPC dhe Pentium II

PERFUNDIME

Principet e projektimit

Shtresat e software/hardware

1. Thjeshtesia favorizon rregullsine


2. Me te vegjel, me te shpejte
3. Nderto rastin e zakonshem te shpejte

Compiler, assembler, hardware

c.f. x86

MIPS: rasti tipik i ISA-s RISC

PERFUNDIME

Matja e ekzekutimit te instruksioneve MIPS ne


benchmarke
Rasti me i shpeshte behet me i shpejte
Kompromiset e ndryshme

Instruction class

MIPS examples

SPEC2006 Int

SPEC2006 FP

Arithmetic

add, sub, addi

16%

48%

Data transfer

lw, sw, lb, lbu,


lh, lhu, sb, lui

35%

36%

Logical

and, or, nor, andi,


ori, sll, srl

12%

4%

Cond. Branch

beq, bne, slt,


slti, sltiu

34%

8%

Jump

j, jr, jal

2%

0%

LITERATURA
Referencat ne faqen web
Organizimi dhe arkitektura e kompjuterave,
Kapitulli 3

Vous aimerez peut-être aussi