320 likes | 559 Views
W7 – Architektura zbioru rozkazów. Zdzisław Stryła Instytut Fizyki UAM. Czym jest architektura komputera. Architektura komputera = architektura zbioru rozkazów + architektura sprzętu;. Czym jest architektura zbioru rozkazów?.
E N D
W7 – Architektura zbioru rozkazów Zdzisław Stryła Instytut Fizyki UAM Zdzisław Stryła komputer
Czym jest architektura komputera Architektura komputera = architektura zbioru rozkazów + architektura sprzętu; Zdzisław Stryła komputer
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
Czym jest architektura zbioru rozkazów ? Zdzisław Stryła komputer
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
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
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
Co trzeba określić?: Pobranie rozkazu • 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? dekodowanie rozkazu Pobranie operandu wykonanie Zapis wyniku Wyznaczenie adresu następnego rozkazu Zdzisław Stryła komputer
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
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
Rejestry w Pentium 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
Rejestry w Pentium cd. REJESTRY SEGMENTOWE Z CZASÓW 8088 AKUMULATOR POMOCNICZY ( *, / ) LICZNIK ROZKAZÓW REJESTR STANU PROCESORA Zdzisław Stryła komputer
Format rozkazu Po 2 bajty dla przestrzeni adresowej 64 kB 2 bajty dla przestrzeni adresowej 64 kB BAJT, GDY 256 ROZKAZÓW Zdzisław Stryła komputer
Dużo tego – co robić? Organizacja akumulatorowa Użycie rejestru, lub adres domyślny Użycie rejestru, lub adres domyślny Licznik programu z automatyczną inkrementacją 2 bajty dla przestrzeni adresowej 64 kB BAJT, GDY 256 ROZKAZÓW Zdzisław Stryła komputer
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
ROZKAZY ARYTMETYCZNE integer (binary + decimal) or FP Add, Subtract, Multiply, Divide Mogą 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
ROZKAZY LOGICZNE Logical not, and, or, set, clear Shift shift left/right, rotate left/right Mogą być jedno-, dwu-, lub trójoperandowe. Występują dwa typy przesunięć : logiczne i arytmetyczne. Zdzisław Stryła komputer
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
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
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
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
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
Formaty rozkazów format 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
Stosowa Push A Push B Add Pop C C := A + B Akumula-torowa Load A Add B Store C Pamięć- Pamięć Add C, A, B Architektury rejestrowe Rejestr-Pamięć Load R1, A Add R1, B Store C, R1 Rejestr- Rejestr Load R1, A Load R2, B Add R3,R2, R1, Store C, R3 zeroadresowy 1-adresowy 3-adresowy 2-adresowy 3-adresowy Zdzisław Stryła komputer
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
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
Formaty rozkazów Pentium Zdzisław Stryła komputer
Formaty rozkazów Pentium -przedrostki Powtórzenia – powodują wielokrotne wykonanie rozkazów łańcuchowych ,, aż do wyzerowania CX, lub ustawienia flagi ZF”; 16/32 bity Zmiana domyślnego segmentu 16/32 bity Zdzisław Stryła komputer
Formaty rozkazów Pentium Argument w rejestrze 8/16/32 bitowym Wybór rejestru bazowego Wybór rejestru indeksowego Argument w rejestrze lub pamięci Współczynnik skali Zdzisław Stryła komputer
Adresowanie bazowo-indeksowe ze skalowaniem i deskryptoroweLA = ([wskaźnik segmentu]) + (baza) + (indeks) × skala + przemieszczenie, deskryptor adres segmentu + + Argument x Zdzisław Stryła komputer
Formaty rozkazów w PDP-11 Zdzisław Stryła komputer