W7 – Architektura zbioru rozkazów
-
Upload
lewis-chase -
Category
Documents
-
view
61 -
download
0
description
Transcript of W7 – Architektura zbioru rozkazów
Zdzisław Stryła komputer 1
W7 – Architektura zbioru rozkazów
Zdzisław Stryła
Instytut Fizyki UAM
Zdzisław Stryła komputer 2
Czym jest architektura komputera
Architektura komputera =
architektura zbioru rozkazów +
architektura sprzętu;
Zdzisław Stryła komputer 3
Czym jest architektura zbioru rozkazów?
Atrybuty systemu (komputerowego), tak jak są widziane przez programistę, to jest jako koncepcja struktury i właściwości funkcjonalne, bez uwzględniania organizacji przepływu danych i sterowania, konstrukcji logicznej i implementacji fizycznej.Amdahl, Blaaw, Brooks 1964
Zdzisław Stryła komputer 4
Czym jest architektura zbioru rozkazów ?
Zdzisław Stryła komputer 5
The Instruction Set Architecture - ISA
ISA: określa, co może wyrazić kompilator.
ISA: określa, co musi wykonać sprzęt.
ISA: jest słownikiem dla kompilatora.
ISA: jest pośrednikiem pomiędzy kompilatorem, a sprzętem.
Zdzisław Stryła komputer 6
ISA - Architektura procesora - mikroarchitektura
ISA - odnosi się do zestawu instrukcji widzianego przez programistę.
Określa granicę między oprogramowaniem i sprzętem.Często ISA jest utożsamiana z architekturą procesora.
Mikroarchitektura procesora odnosi się do wewnętrznej organizacji procesora.
Różne procesory z różnymi mikroarchitekturami mogą mieć tę samą architekturę ISA.
Zdzisław Stryła komputer 7
Jak programista widzi maszynę?:
•Jak są reprezentowane dane?
•Gdzie można zapamiętywać dane?
•Jak można odwoływać się do danych?
•Które operacje na danych mogą być wykonane?
•Jak są kodowane rozkazy?
Zdzisław Stryła komputer 8
Co trzeba określić?:
•Format (kodowanie rozkazu);•Jak jest dekodowany?
•Lokalizacja operandów i wyników:•Jeśli nie w pamięci, to gdzie?•Ile jawnych operandów?•Jak operandy są lokowane w pamięci?•Które mogą, lub nie mogą być w pamięci?
•Typy i rozmiary danych•Operacje – które są wspierane?•Skąd następny rozkaz?
Pobranie rozkazu
dekodowanie rozkazu
Pobranie operandu
wykonanie
Zapis wyniku
Wyznaczenie adresu
następnego rozkazu
Zdzisław Stryła komputer 9
Co trzeba określić? cd :
• Organizacja zestawu( widocznych) rejestrów;• Typy i struktury danych;
KODOWANIE i reprezentacje;• Formaty rozkazów;• Zestaw rozkazów maszynowych;• Tryby adresowania i rozkazy udostępniające
obiekty danych;• Wyjątki, I/O, przerwania;
Zdzisław Stryła komputer 10
Rejestry ogólnego przeznaczenia
• Zalety rejestrów:• Rejestry są szybsze od pamięci;• Użycie rejestrów jest wygodniejsze dla
kompilatora;• Rejestry są adresowane na kilku bitach (krótki
rozkaz).• Wszystkie procesory są wyposażone w rejestry.
• Zmniejsza się obciążenie magistral.
Zdzisław Stryła komputer 11
Rejestry w Pentium
AX EAXAH AL
BX EBXBH BL
CX ECXCH CL
DX EDXDH DL
ESIEDIEBPESP
AKUMULATOR
REJESTR WSKAŹNIKÓW
LICZNIK PĘTLI
AKUMULATOR POMOCNICZY ( *, / )
WSKAŹNIK ŁAŃCUCHA ŻRÓDŁOWEGO
WSKAŹNIK ŁAŃCUCHA DOCELOWEGO
WSKAŹNIK RAMKI STOSU
WSKAŹNIK WIERZCHOŁKA STOSU
Zdzisław Stryła komputer 12
Rejestry w Pentium cd.
CS
EIP
EFLAGS
REJESTRY SEGMENTOWE
Z CZASÓW 8088
AKUMULATOR POMOCNICZY ( *, / )
LICZNIK ROZKAZÓW
REJESTR STANU PROCESORA
SSDSESFSGS
Zdzisław Stryła komputer 13
Format rozkazu
KOD ROZKAZUADRES
ARGUMENTU 1ADRES
ARGUMENTU 2ADRES WYNIKU
ADRES NASTĘPNEGO
ROZKAZU
BAJT, GDY 256 ROZKAZÓW
Po 2 bajty dla przestrzeni adresowej 64 kB
2 bajty dla przestrzeni adresowej 64 kB
Zdzisław Stryła komputer 14
Dużo tego – co robić?
KOD ROZKAZUADRES
ARGUMENTU 1ADRES
ARGUMENTU 2ADRES WYNIKU
ADRES NASTĘPNEGO
ROZKAZU
BAJT, GDY 256 ROZKAZÓW
Użycie rejestru,
lub adres domyślny
2 bajty dla przestrzeni adresowej 64 kB Licznik programu z automatyczną inkrementacją
Użycie rejestru,
lub adres domyślnyOrganizacja akumulatorowa
Zdzisław Stryła komputer 15
Typy rozkazów
– operacje arytmetyczne,
– operacje logiczne,
– operacje logiczne na bitach,
– przesyłanie danych,
– rozkazy zmieniające kolejność wykonywania programu.
Zdzisław Stryła komputer 16
ROZKAZY ARYTMETYCZNE
integer (binary + decimal) or FPAdd, Subtract, Multiply, DivideMogą być jedno-, dwu-, lub trójoperandowe.W niektórych procesorach występują różne rozkazy dla
danych o różnych formatach.Mogą występować odrębne rozkazy mnożenia i dzielenia
liczb bez i ze znakiem.
Shift and rotate instructions: left or right shifts and rotations.
Występują dwa typy przesunięć : logiczne i arytmetyczne.
Zdzisław Stryła komputer 17
ROZKAZY LOGICZNE
Logical not, and, or, set, clear
Shift shift left/right, rotate left/rightMogą być jedno-, dwu-, lub trójoperandowe.
Występują dwa typy przesunięć : logiczne i arytmetyczne.
Zdzisław Stryła komputer 18
PRZESŁANIA
Load (from memory)
Store (to memory)
memory-to-memory move
register-to-register move
input (from I/O device)
output (to I/O device)
push, pop (to/from stack)
Zdzisław Stryła komputer 19
Operacje bitowe
Rozkazy operują na wyszczególnionych polach bitowych.Pole jest określane przez podanie jego rozmiaru i
przesunięcia (offset) względem początku słowa.Rozkazy zwykle umożliwiają sprawdzenie stanu
(dotyczy to różnych flag), ustawienie, zerowanie i ew. inne operacje.
Zdzisław Stryła komputer 20
Operacje na danych zmiennoprzecinkowych
• Przesłania danych zmiennoprzecinkowych;
• Rozkazy arytmetyczne, porównania, pierwiastkowania, wartość bezwzględna, funkcje trygonometryczne, operacje na typach nasyceniowych (MMX) i in.
Zdzisław Stryła komputer 21
Rozkazy zmieniające kolejność wykonywania programu.
• skoki - bezwarunkowe
• Rozgałęzienia – warunkowe;
• Wywołania procedur;
• Powroty z procedur;
• Powroty z przerwań i wyjątków.
Zdzisław Stryła komputer 22
Rozkazy inne
Rozkazy systemowe – umożliwiają użytkownikowi wpływać bezpośrednio na pracę procesora i innych części systemu komputerowego
Rozkazy dla specjalnych jednostek funkcjonalnych (np. operacje graficzne).
Rozkazy atomowe – sterujące dostępem do krytycznych części procesora.
Zdzisław Stryła komputer 23
Formaty rozkazówformat 3-adresowy :
opcode | Dest | Src1 | Src2;typowo używany przez procesory o architekturze
rejestr-rejestr (load/store); format 2-adresowy :
opcode | Dest/Src1 | Src2 ; architektura rejestr-pamięć (R/M).
format 1-adresowy: opcode | Src;
typowy dla maszyn akumulatorowych.
format zeroadresowy: opcode; Maszyny stosowe.
Zdzisław Stryła komputer 24
Architektury rejestrowe
C := A + B
Stosowa
Push APush BAddPop C
Akumula-torowa
Load AAdd BStore C
Pamięć- Pamięć
Add C, A, B
Rejestr-Pamięć
Load R1, A
Add R1, BStore C, R1
Rejestr- Rejestr
Load R1, ALoad R2, BAdd R3,R2, R1,Store C, R3
zeroadresowy
1-adresowy 3-adresowy 2-adresowy 3-adresowy
Zdzisław Stryła komputer 25
Kryteria dla doboru zestawu rozkazów
Kompletność : repertuar rozkazowy musi umożliwić wykonanie każdego algorytmu;
Ortogonalność: dwa rozkazy nie mogą robić tego samego;
Symetria: ADD – SUB;
Adekwatność: więcej zasobów dla często używanych rozkazów;
Wydajność: krótki czas wykonywania;
Zdzisław Stryła komputer 26
Dominująca architektura : 8086
• Złożoność:• rozkazy o rozmiarach od 1 do 17 bajtów;• Jeden z rejestrów musi być równocześnie
źródłowym i docelowym.• Jeden z operandów może być pobrany z
pamięci;• Złożone tryby adresowania - np. adresowanie
bazowe lub skalowane indeksowe z 8- lub 32-bitowym przemieszczeniem.
“what the 80x86 lacks in style is made up in quantity,- - better making it beautiful from the right perspective”
Zdzisław Stryła komputer 27
Formaty rozkazów Pentium
Zdzisław Stryła komputer 28
Formaty rozkazów Pentium -przedrostkiPowtórzenia – powodują wielokrotne wykonanie
rozkazów łańcuchowych
,, aż do wyzerowania CX, lub ustawienia flagi ZF”;
Zmiana domyślnego segmentu16/32 bity
16/32 bity
Zdzisław Stryła komputer 29
Formaty rozkazów Pentium
Argument w rejestrze
8/16/32 bitowym
Argument w rejestrze
lub pamięci Współczynnik skali
Wybór rejestru indeksowego
Wybór rejestru bazowego
Zdzisław Stryła komputer 30
Adresowanie bazowo-indeksowe ze skalowaniem i deskryptoroweLA = ([wskaźnik segmentu]) + (baza) + (indeks) × skala + przemieszczenie,
przesunięcie
indeks Argument +
baza
skalax
Adres segmentu
Wskaźnik segmentu
deskryptor
adres segmentu
+
Zdzisław Stryła komputer 31
Formaty rozkazów w PDP-11