Wykład 6 Lista rozkazów


12/26/2008
architektura komputerów
w. 5
Lista rozkazów
Lista rozkazów
Wykonanie programu polega na interpretowaniu w procesorze kolejnych rozkazów
umieszczonych w pamięci operacyjnej w postaci słów rozkazowych.
Słowo rozkazowe jest ciągiem bitów określonej długości, podzielone jest na pola, zawierające
kody określające wszystkie czynności cyklu rozkazowego.
Kod operacji Pole argumentów
(kilka bajtów) (kilka-kilkanaście bajtów)
Zwykle procesor posiada kilka (kilkanaście) formatów rozkazów
architektura komputerów w 1
12/26/2008
Lista rozkazów
liczba liczba
różnych sposobów max.
długości adresowa długość
procesor rozkazów nia rozkazu
VAX 56 21 57
MC 68000 11 12 22
IA-32 12 7 16
SPARC 1 2 4
MIPS 1 1 4
RS/6000 1 4 4
Lista rozkazów
Klasyfikacja z tytułu:
funkcji rozkazu:
uð sterujÄ…ce
Fð wykonaniem programu (skoki, skoki do podprogramu warunkowe i bezwarunkowe) JMP, CALL, RET,
Fð sterujÄ…ce pracÄ… procesora HALT, NOP
uð przesÅ‚ania MOV, PUSH, POP, LD, SET
Fð miÄ™dzyrejestrowe
Fð pamięć - rejestr
Fð z operandem bezpoÅ›rednim
uð instrukcje arytmetyczno-logiczne
Fð arytmetyczne ADD, SUB, MUL, ABS, DIV, NEG, INC, DEC
Fð logiczne AND, OR, NOT
Fð testowanie
Fð przesuniÄ™cia i rotacje SHL, SHR, SAL, SAR, ROL, ROR
uð instrukcje wejÅ›cia-wyjÅ›cia IN, OUT
sposobu adresowania argumentów:
uð bezadresowe (zeroadresowe) - zwykle używane do sterowania dziaÅ‚aniem procesora
uð jednoadresowe - z jednym argumentem
uð wieloadresowe - wiÄ™kszość dziaÅ‚aÅ„ arytmetycznych i logicznych
architektura komputerów w 2
12/26/2008
Lista rozkazów
Repertuar określa funkcje dostępne dla programisty.
Pierwsze komputery dysponowały ograniczoną listą rozkazów głównie arytmetycznych
oraz wejścia/wyjścia
Obecnie komputery różnią się często znacząco listą rozkazów.
Maszyny małe dysponują ograniczoną listą rozkazów arytmetycznych.
Listy rozkazów mainframe obejmują bogaty repertuar operacji arytmetycznych
obejmujący podstawowe 4 działania.
Słowo rozkazowe określa format rozkazu i zawiera:
kod operacji
odnośniki do argumentów (adresy argumentów lub kody określające sposób wyliczenia
adresów argumentów) lub argumenty
uð kontekstowe (rozkazy tyczÄ…ce akumulatora, argument bezpoÅ›redni)
uð adres(y) (kod) rejestru(ów)
uð argument w pamiÄ™ci
Sposób wyliczenia adresu argumentu nazywany jest trybem adresowania. Procesor posiada
zwykle co najmniej kilka trybów adresowania.
Lista rozkazów. Tryby adresowania.
Sposób wyliczenia adresu argumentu nazywany jest trybem adresowania. Procesor
posiada zwykle co najmniej kilka trybów adresowania.
uð Tryb natychmiatowy (immediate)
Kod operacji argument
uð Tryb rejestrowy
rejestry
Kod operacji Nr rejestru
argument
uð Tryb bezpoÅ›redni (direct)
pamięć
Kod operacji Adres argumentu
argument
pamięć
uð Tryb rejestrowy poÅ›redni (register indirect)
rejestry
argument
Kod operacji Nr rejestru
Adres argumentu
architektura komputerów w 3
12/26/2008
Lista rozkazów. Tryby adresowania.
.
pamięć
uð Tryb poÅ›redni (indirect)
argument
Kod operacji Adres
Adres argumentu
uð Tryb indeksowy
rejestry
Kod operacji przesunięcie Nr rejestru
Adres argumentu
pamięć
+
argument
Lista rozkazów
Przykłady.
Intel 80x86
słowo rozkazowe - 1-15 bajtów
OP
R
5 3
OP
8
OP OP
8 8
AMB
OP a
R/x R/m
8 2 3 3
AMB
OP a R/x R/m
8 2 3 3
SIB
sc
INDEX BASE
2 3 3
OP - kod rozkazu; X - rozszerzenie kodu, R - identyfikator rejestru, a - typ wskaznika, m - tryb adresowania
sc-skala, ; AMB - adressing mode byte, SIB - bajt rozszerzenia adresu
architektura komputerów w 4
12/26/2008
Lista rozkazów
Przykłady.
Intel 80x86
słowo rozkazowe - 1-15 bajtów
ebx
MOV ebx,eax
10001011 11011000
mov
mod eax
MOV edx,$004081a0
10111010 10100000
Mov
edx
32b,imm
10000001 01000000
00000000
Lista rozkazów
Intel 80x86 Tryby adresacji
EBX
EBX
architektura komputerów w 5
12/26/2008
Lista rozkazów
Przykłady.
Motorola 680x0
słowo rozkazowe - 1-8 półsłów 16 bitowych
OP
16
OP
R/q
13 3
OP
dst src
rejestr tryb tryb rejestr
4 6 6
Op - kod rozkazu; r - identyfikator rejestru, q - argument błyskawiczny, tryb - tryb adresowania,
Lista rozkazów
Przykłady.
Motorola 680x0
rejestry
PC SR
D0 A0
D1 A1
D2 A2
D3 A3
D4 A4
D5 A5
D6 A6
D7 SP
Rejestry danych Rejestry adresowe
architektura komputerów w 6
12/26/2008
Lista rozkazów
Przykłady.
Motorola 680x0
Tryb Rejestr Tryb adresowania
000 Numer rejestru Bezpośrednie rejestru danych
001 Numer rejestru Bezpośrednie rejestru adresowego
111 100 Natychmiastowe
111 001 bezwzględne
010 Numer rejestru Pośrednie zawartością rejestru adresowego
011 Numer rejestru Pośrednie zawartością rejestru adresowego z
postinkrementacjÄ…
100 Numer rejestru Pośrednie zawartością rejestru adresowego z
predekrementacjÄ…
111 010 Z przesunięciem wzgl. Licznika rozkazów
101 Numer rejestru Pośrednie zawartością rejestru adresowego z
przesunięciem
Lista rozkazów. Tryby adresowania.
Tryby adresowe:
prosty dane:= N następnych słów
rejestowy danych AE:=Dn
rejestrowy adresowy AE:=An MOVE.L A7,D5
bezpośredni krótki AE:= (nast.. Słowo)
bezpośredni pełny AE:= (2 nast. Słowa)
pośredni rejestrowy AE:=(An) MOVE.L (A7),D5
pośredni rejestrowy z inc AE:=(An);An:=An+N MOVE.L (A7)+,D5
pośredni rejestrowy z predec An:=An-k; AE:=(An); MOVE.L -(A7),D5
względny An AE:=(An)+d16 MOVE.L 1000(A7),D5
względny PC AE:=(PC)+d16
AE - adres efektywny,An - n-ty rejestr adresowy, Dn - n-ty rejestr danych, PC - licznik
rozkazów, Ri - rejestr danych lub adresowy w funkcji indeksu, d8 -ośmiobitowe
przesunięcie, d16 - 16 bitowe przesunięcie, N - długośc argumentu w bajtach, ( ) -
zawartość
architektura komputerów w 7
12/26/2008
Lista rozkazów. Tryby adresowania.
względny indeksowy wzgl An AE:=(An)+(Ri)+d8
MOVE.L 100(A7,D3.W),D5
względny indeksowy wzgl PC AE:=(PC)+(Ri)+d8
MOVE.L 100(PC,D3.L),D5
AE - adres efektywny,An - n-ty rejestr adresowy, Dn - n-ty rejestr danych, PC - licznik
rozkazów, Ri - rejestr danych lub adresowy w funkcji indeksu, d8 -ośmiobitowe
przesunięcie, d16 - 16 bitowe przesunięcie, N - długośc argumentu w bajtach, ( ) -
zawartość
Lista rozkazów
Przykład.
Z80
LD r,r
LD A,nn
JMP cc,nn
r,r - kody rejestrów, A - akumulator, nn - adres komórki pamięci, cc - kod warunków
architektura komputerów w 8
12/26/2008
Lista rozkazów
Przykłady.
Motorola 680x0
MOVE przenieÅ›
dst src
00 rozmiar
rejestr tryb tryb rejestr
4 6 6
MOVEQ przenieÅ› argument natychmiastowy
0111 rejestr 0 Dana natychmiastowa
4 3 8
MOVE.L #10002000,D0 ładuj do rejestru danych D0 długie
słowo o wartości 10002000
0010 000 000 111 100 (heksalnie)
0001000000000000
0010000000000000
Lista rozkazów
Przykład.
PowerPC (RISC)
OP RD RA DISP/IMM
6 5 5 16
Instrukcja ładowania (z DISP) lub z operandem bezpośrednim (w polu IMM)
OP RD RA RB OP/EXT
6 5 5 5 11
Instrukcja z trzema operandami (RA, RB - rejestry zródłowe, RD -docelowy)
OP ADDR A:L
6 24 2
instrukcja skoku
OP - kod operacji Rx - identyfikator rejestru IMM - argument bezpośredni DISP - adres
względny, ADDR - adres, A - rodzaj adresu (bezwzględny lub w stosunku do PC), L
wskaznik śladu skoku, OP/EXT - rozszerzenie kodu
architektura komputerów w 9
12/26/2008
Lista rozkazów
Przykład.
MIPS R3000 (RISC)
Instrukcja typ R (rejestr)
OP Rs Rt Rd Sh Func
6 5 5 5 5 6
add Rd,Rs,Rt Rs+Rt Rd
0 Rs Rt Rd 0 20
addi Rt,Rs,Imm Rs+Imm Rt
8 Rs Rt IMM
OP - kod operacji Rs - rejestr zródłowy, Rd - rejestr docelowy, Rt - rejestr zródłowy lub
docelowy, ADDR - adres, Sh - przesunięcie, Func - kod funkcji
Lista rozkazów
Przykład.
MIPS R3000 (RISC)
Rt = Mem[Rs+offset]
Instrukcja typ I (natychmiastowy)
OP Rs Rt offset
6 5 5 16
lb Rt,adres - Å‚aduj do RT bajt spod podanego adresu Tryb adresowania z rej Rs jako bazowym
24 Rs Rt przesunięcie
6 5 5
instrukcja skoku (typ J)
PC = PC[31:28] || offset<<2
OP ADDR
6 26
j label
2
cel
Instrukcja typ R (rejestr)
OP Rs Rt Rd Sh Func
6 5 5 5 5 6
OP - kod operacji Rs - rejstr zródłowy, Rd - rejestr docelowy, Rt - rejestr zródłowy lub
docelowy, ADDR - adres, Sh - przesunięcie, Func - kod funkcji
architektura komputerów w 10
12/26/2008
Lista rozkazów.
Åšrodowisko programowe INTEL 80x86
32b
EAX Rejestry uniwersalne
EBX
ECX
EDX FFFFFFFF
EBP
ESI
ESP
16b
pamięć
CSDS
SS Rejestry segmentowe
ES
FS
GS
Rejestr znaczników 0
32b Wskaznik rozkazów
Rejestry uniwersalne
80b
8 x
16b Rejestr sterujÄ…cy koprocesora
48b Wskaznik rozkazów kopr
16b Rejestr stanu koprocesora
48b Wskaznik danych kopr.
16b Rejestr ident. Zawartości rej. danych
64b Rejestry SSE MMX
8 x
128b Rejestry SSE2 MMX
8 x
Lista rozkazów.
Odwzorowanie rejestrów SSE MMX w
rejestry koprocesora. INTEL Pentium
architektura komputerów w 11
12/26/2008
Lista rozkazów.
Operacje na rejestrach SSE MMX. INTEL
Pentium
Lista rozkazów.
Åšrodowisko programowe Motorola 680x0
32b 32b
PC SR
0
D0 A0
D1 A1 pamięć
D2 A2
D3 A3
D4 A4
D5 A5
FFFFFF
D6 A6
D7 SP
Rejestry danych Rejestry adresowe
architektura komputerów w 12
12/26/2008
Lista rozkazów.
Åšrodowisko programowe Z80
0
pamięć
FFFF
Lista rozkazów.
Åšrodowisko programowe MIPS R3000
32b 32b
licznik rozkazów
0
32 x
. . .
pamięć
pamięć
Rejestr mnożenia
Rejestr dzielenia
Rejestry uniwersalne
FFFFFFFF
architektura komputerów w 13
12/26/2008
Lista rozkazów
przetwarzanie potokowe
Cykl
Pobranie dekodowaniewykonanie zapisanie
1 Rozkaz 1
2 Rozkaz 2 Rozkaz 1
3 Rozkaz 3 Rozkaz 2 Rozkaz 1
Rozkaz 4 Rozkaz 3 Rozkaz 2 Rozkaz 1
4
5 Rozkaz 5 Rozkaz 4 Rozkaz 3 Rozkaz 2
przetwarzanie może być zakłócone przez rozkazy skoku oraz przez rozkazy
wymagające do wykonania więcej niż jednego cyklu rozkazowego
Lista rozkazów
Procesor RISC. Hazardy.
Hazard danych
uð Read-after-write
uð Write-after-read
uð write-after-write
rozwiÄ…zania:
programowe (kompilator)
program: krok1: krok 2
lb r2,a ;(a)Å‚ðr2 lb r2,a lb r2,a
Addi r3,r2,#7 ;r2+7 Å‚ð r3 nop sub r6,r4,r5
sb r3,b ;r3 Å‚ð b addi r3,r2,#7 addi r3,r2,#7
sub r6,r4,r5 ;r4-r5 Å‚ðr6 nop nop
sb r3,b sb r3,b
sub r6,r4,r5
architektura komputerów w 14
12/26/2008
Lista rozkazów
Hazard danych
uð Read-after-write
uð Write-after-read
uð write-after-write
rozwiÄ…zania:
Hardware
uð Operand forwarding
IF ID EX WB
IF ID EX WB
Lista rozkazów
sprzętowe
blokowanie potoku
scoreboarding
etykiety
ustawienie
Zerowanie
etykiety
etykiety
Zbiór rejestrów
IF ID EX WB
architektura komputerów w 15
12/26/2008
Lista rozkazów
Procesor RISC. Hazardy.
Hazard zasobów.
uð Jeden rozkaz jest pobierany, inny w tym samym czasie pobiera argument z
pamięci
1 Rozkaz 1
2 Rozkaz 2 Rozkaz 1
uð RozwiÄ…zanie  rozdzielenie pamiÄ™ci programu i danych (model Harvard).
Realizowane zwykle na poziomie L1 pamięci cache.
Lista rozkazów
Procesor RISC. Hazardy.
Hazardy sterowania
rozwiązania: predykcja skoków; omijanie skoków, opóznianie skoków
architektura komputerów w 16
12/26/2008
Lista rozkazów
Procesor RISC. Hazardy.
Predykcja skoków
uð Przewidywanie statyczne. Przyjmuje siÄ™, że skok do tyÅ‚u jest
wykonywany zawsze a do przodu nie. Trafność metody 65-85%
uð Przewidywanie dynamiczne. Procesor posiada tablicÄ™
Adres skoku historia
Decyzja podejmowana jest na podstawie historii.
Pentium - tablica 256 pozycji, 2 bity na historię, trafność 85%
Pentium Pro - tablica 512 pozycji, 4 bity na historię, trafność 90-95%
architektura komputerów w 17


Wyszukiwarka

Podobne podstrony:
Wykład29 lista
8051 Lista rozkazow
Wykład24 lista
Wykład27 lista
Analiza regresji wykład i lista nr 3
!!! Tylko lista rozkazów 51
wykład lista bez nazwisk
Skrócona lista rozkazów mikroprocesora 8086
!!! Lista rozkazów 51 na podstawie KURSU EDW
ATMEL lista rozkazow
Lista rozkazowa
Wykład30 lista

więcej podobnych podstron