Académique Documents
Professionnel Documents
Culture Documents
INSTRUKSIONEVE-2
Leksioni III
SETI I INSTRUKSIONEVE
Repertori i instruksioneve te nje kompjuteri
Kompjutera te ndryshme kane sete te ndryshme
instruksionesh
Implementim i thjeshtezuar
Konceptimi I familjeve
Memoria cache
Vecorite kryesore
KRAHASIMI I PROCESOREVE
Perdorim
add a, b, c # a merr b + c
Te gjithe veprimet aritmetike kane kete forme
SHEMBULL ARITHMETIK
Kodi C :
f = (g + h) - (i + j);
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
Emertimet
ne assembler
Kodi C:
f = (g + h) - (i + j);
f, , j ne $s0, , $s4
OPERANDET E MEMORIES
Memoria
perbera
te nje fjale
cf. Little Endian: Byti me me pak peshe ndodhet ne
adresen me te vogel
Kodi C:
g = h + A[8];
lw $t0, 32($s3)
add $s1, $s2, $t0
offset
regjistri baze
ngarkimi i fjales
Kodi C:
A[12] = h + A[8];
lw $t0, 32($s3) #
add $t0, $s2, $t0
sw $t0, 48($s3) #
ngarkimi i fjales
ruajtja e fjales
OPERANDET E MENJEHERESHEM(IMEDIATE)
KONSTANTJA ZERO
x = x n1 2
+ x n2 2
n2
+ + x1 2 + x 0 2
1
Rangu: 0 ne +2n 1
Shembull
n 1
0 deri +4,294,967,295
x = x n1 2
+ x n2 2
n2
+ + x1 2 + x 0 2
Rangu : 2n 1 ne +2n 1 1
Shembull
n 1
2,147,483,648 to +2,147,483,647
(2n 1)
MOHIMI ME SHENJE
Komplementi eshte 1 0, 0 1
x + x = 1111...1112 = 1
x + 1 = x
Shembull: mohimi i +2
ZGJATJA E SHENJES
Paraqitja
Shembuj:
8-bit ne16-bit
PARAQITJA E INSTRUKSIONEVE
Instruksionet
Instruksionet
MIPS
Regjistrat
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
FORMATI R SHEMBULL
op
rs
rt
rd
shamt
funct
6 bite
5 bite
5 bite
5 bite
5 bite
6 bite
$s1
$s2
$t0
add
17
18
32
000000
10001
10010
01000
00000
100000
000000100011001001000000001000002 = 0232402016
rs
rt
6 bite
5 bite
5 bite
16 bite
Instruksione
perfaqesohen ne binar si te
dhenat.
Instruksionet dhe te dhenat ruhen ne
memorie.
Programet mund te veprojne mbi programe
Kompatibiliteti
OPERACIONET LLOGJIKE
Java
MIPS
Shift left
<<
<<
sll
Shift right
>>
>>>
srl
Bitwise AND
&
&
and, andi
Bitwise OR
or, ori
Bitwise NOT
nor
OPERACIONI SHIFT
op
rs
rt
rd
shamt
funct
6 bite
5 bite
5 bite
5 bite
5 bite
6 bite
OPERACIONET
AND
$t2
$t1
$t0
OPERACIONET OR
$t2
$t1
$t0
OPERACIONET NOT
Ndrysho 0 ne 1, dhe 1 ne 0
a NOR b == NOT ( a OR b )
Regjistri 0: gjithmone
eshte zero
$t1
$t0
OPERACIONET E KUSHTEZUARA
j L1
KOMPILIMI I IF
Kodi C:
if (i==j) f = g+h;
else f = g-h;
f, g, ne $s0, $s1,
bne
add
j
Else: sub
Exit:
PERMBLEDHJE
Fund i leksionit
KOMPILIMI I CIKLEVE
Kodi C:
while (save[i] == k) i += 1;
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
Kompilatori identifikon
blloqet kryesore per
optimizim
Nje procesor i avancuar
mund te shpejtoje
ekzekutimin e blloqeve
kryesore
Perndryshe vendose ne 0
slt
1 < +1 $t0 = 1
# me shenje
# pa shenje
THIRRJA E PROCEDURES
Hapat e nevojshem
1.
2.
3.
4.
5.
6.
PERDORIMI I REGJISTRAVE
$a0
$s0
$gp:
INSTRUKSIONET E THERRITJES SE
PROCEDURES
jal EtiketeEProcedures
Adresa e instruksionit pasardhes vendoset ne $ra
Kercehet ne adresen destinacion
jr $ra
Kopjon $ra ne PC
95 grafike, 33 kontrolli
lb rt, offset(rs)
sb rt, offset(rs)
lh rt, offset(rs)
sh rt, offset(rs)
Kodi C :
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
#
#
#
#
#
#
#
#
#
#
#
#
#
KONSTANTET 32-BIT
lhi $s0, 61
ori $s0, $s0, 2304 0000 0000 0111 1101 0000 1001 0000 0000
op
rs
rt
6 bite
5 bite
5 bite
16 bite
Adresim PC-relativ
ADRESIMI I JUMP
op
adrese
6 bits
26 bits
Loop: sll
$t1, $s3, 2
80000
19
add
80004
22
32
lw
$t0, 0($t1)
80008
35
bne
21
19
19
80016
80020
Exit:
Loop
80024
20000
Kompilon
bytecodet e
metodave ne
kod te
makines
Interpreton
bytecodet
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
tej
Mikroarkitekture e re
U shtuan instruksione SSE2
tej
Nese
REGJISTRAT
X86
Regjister
Regjister
Regjister
Imediate
Regjister
Memorie
Memorie
Regjister
Memorie
Imediate
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
Thjeshtezim kompilatori?
E kontestuar
Instruksionet komplekse te makines veshtire
shfrytezohen
Optimizimi eshte me I veshtire
Programe me te vogla?
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
PERFUNDIME
Principet e projektimit
Shtresat e software/hardware
c.f. x86
PERFUNDIME
Instruction class
MIPS examples
SPEC2006 Int
SPEC2006 FP
Arithmetic
16%
48%
Data transfer
35%
36%
Logical
12%
4%
Cond. Branch
34%
8%
Jump
j, jr, jal
2%
0%
LITERATURA
Referencat ne faqen web
Organizimi dhe arkitektura e kompjuterave,
Kapitulli 3