w1m, SPRAWOZDANIA czyjeś


Lista rozkazów maszynowych

Działanie procesora jest określone przez rozkazy, które on wykonuje.

Rozkazy te są nazywanerozkazami maszynowymi lub rozkazami

komputerowymi. Zbiór różnych rozkazów, które może wykonywać

procesor, jest określany jako lista rozkazów Jednym z obszarów, w

których projektant komputera i jego programista mają wspólny obraz

maszyny, jest lista rozkazów maszynowych. Z punktu widzenia

projektanta, lista rozkazów maszynowych określa wymagania

funkcjonalne w stosunku do procesora: implementacja

procesora jest zadaniem, które w znacznej mierze polega na wdrożeniu

listy rozkazów maszynowych. Z punktu widzenia użytkownika,

tylko ten użytkownik, który wybiera programowanie w języku

maszyny uświadamia sobie strukturę rejestrów i pamięci, rodzaje

danych bezpośrednio obsługiwanych przez maszynę oraz

funkcjonowanie AL


Elementy rozkazu maszynowego

Każdy rozkaz musi zawierać elementy wymagane przez procesor

do jego wykonania.

Elementami tymi są:

Kod operacji. Określa operację, jaka ma być przeprowadzona

(np. ADD, I/O). Operacja jest precyzowana za pomocą kodu

binarnego -kodu operacji. Odniesienie do argumentów źródłowych.

Operacja może obejmować jeden lub wiele argumentów źródłowych;

są one danymi wejściowymi operacji.

Odniesienie do wyniku. Operacja może prowadzić do powstania

wyniku.

Odniesienie do następnego rozkazu. Mówi ono procesorowi,

skąd ma on pobrać następny rozkaz po zakończeniu wykonywania

bieżącego rozkazu


Reprezentacja rozkazu

Wewnątrz komputera każdy rozkaz jest reprezentowany za pomocą

ciągu bitów. Rozkaz jest dzielony na pola odpowiadające elementom

składowym rozkazu. Ten obraz rozkazu nazywa się formatem rozkazu.

Powszechną praktyką jest używanie symbolicznej reprezentacji

rozkazów maszynowych.


Rodzaje rozkazów

Dowolny program napisany w języku wysokiego poziomu musi być przetłumaczony

na język maszynowy, aby mógł być wykonany. Wyróżnia się

następujące rodzaje rozkazów :

Sterowanie. Rozkazy testowania i rozgałęzienia. Rozkazy testowania

są używane do sprawdzania wartości słów danych lub stanu obliczeń.

Rozkazy rozgałęzienia są używane do przeskoczenia do innego

zestawu rozkazów zależnie od podjętych decyzji.

Przetwarzanie danych. Rozkazy arytmetyczne i logiczne. Rozkazy

arytmetyczne zapewniają zdolność obliczeniową przetwarzania

anych numerycznych. Rozkazy logiczne (Boole'a) operują na bitach

słowa raczej jako na bitach niż na liczbach; wobec tego zapewniają

one zdolność przetwarzania dowolnych innych rodzajów

danych, jakie użytkownik może chcieć wykorzystywać

Przechowywanie danych. Rozkazy pamięciowe. Służą do

przenoszenia danych między pamięcią a rejestrami.

Ruch danych. Rozkazy wejścia-wyjścia. Są potrzebne do

przenoszenia danych i programów do pamięci oraz wyników

obliczeń do użytkownika


Przekazywanie sterowania

Istnieje wiele przyczyn, dla których wymagane są operacje

przekazywania sterowania.

Do najważniejszych należą:

Podczas praktycznego używania komputerów podstawowe znaczenie

ma możliwość wykonywania każdego rozkazu więcej niż raz, a Jest

nie do pomyślenia odrębne wypisywanie każdego rozkazu. Jeśli ma

być przetwarzana tablica lub lista jednostek danych, wymagana

jest pętla programowa. Jedna sekwencja rozkazów jest wykonywana

powtarzalnie, aż będą przetworzone wszystkie dane. Praktycznie

wszystkie programy obejmują podejmowanie decyzji. Chcemy, żeby

komputer wykonywał określone działania w pewnych warunkach,

zaś inne działania w innych warunkach. Prawidłowe ułożenie dużego

lub nawet średniego programu komputerowego jest

wyjątkowo trudnym zadaniem. Jest korzystne, jeśli dysponujemy

sposobami podziału takiego zadania na mniejsze części, nad którymi

można pracować oddzielnie.


Rozgałęzienia

Jednym z argumentów rozkazu rozgałęzienia jest adres następnego

rozkazu przewidzianego do wykonania.

Występują dwa rodzaje rozgałęzień: warunkowe i bezwarunkowe.

Istnieją dwie powszechnie stosowane metody generowania warunków,

które mają być testowane w rozkazach rozgałęzienia warunkowego.

Większość maszyn przewiduje 1-bitowy lub wielobitowy kod

warunkowy, który jest ustalany jako wynik pewnych operacji.

Innym rozwiązaniem, które może występować łącznie z 3-adresowym

formatem rozkazu, jest przeprowadzenie porównania i określenie

rozgałęzienia w ramach jednego rozkazu


Rozkazy pominięcia

Inną często spotykaną formą rozkazu przekazania sterowania

jest rozkaz pominięcia. Rozkaz pominięcia zawiera adres domyślny.

Zwykle rozkaz pominięcia oznacza pominięcie jednego rozkazu;

wobec tego adres domyślny jest równy adresowi następnego rozkazu

plus długość jednego rozkazu.

Adres Rozkaz

301

.....

.....

309 ISZ R1

310 BR 301

311

Typowym przykładem jest rozkaz

inkrementacja-i-pominięcie-jeśli-zero (ISZ).


Podprogramy standardowe

Jedną z najważniejszych innowacją w rozwoju języków

programowania jest podprogram standardowy. Podprogram standardowy

jest stanowiącym całość programem komputerowym, który jest

wbudowywany do większego programu. Podprogram standardowy

może być wywołany w dowolnym punkcie programu.

Mechanizm podprogramu standardowego obejmuje dwa

podstawowe rozkazy: rozkaz wywołania, który powoduje skok

z aktualnej lokacji do pod-programu, oraz rozkaz powrotu

powodujący powrót od podprogramu do miejsca, w którym

nastąpiło wywołanie. Oba te rozkazy należą do rozkazów rozgałęzień.

Wywołanie podprogramu standardowego może nastąpić również

wewnątrz podprogramu standardowego. Umożliwia to zagnieżdżanie

podprogramów na dowolnej głębokości.


Stosy

Stos jest uporządkowanym zestawem elementów, z których tylko do

jednego można mieć dostęp w określonej chwili.

Wskaźnik stosu. Zawiera adres wierzchołka stosu. Jeśli element jest

dodawany lub usuwany ze stosu, wskaźnik jest odpowiednio

inkrementowany lub dekrementowany, aby w dalszym ciągu

pokazywał wierzchołek stosu.

Podstawa stosu. Zawiera adres najniższej lokacji w zarezerwowanym

bloku. Jeśli dokonywana jest próba operacji POP, gdy stos jest pusty,

zgłaszany jest błąd.

Granica stosu. Zawiera adres drugiego końca zarezerwowanego

bloku. Jeśli czyniona jest próba operacji PUSH, gdy stos jest

zapełniony, zgłaszany jest błąd


Projektowanie listy rozkazów

Do najważniejszych problemów projektowych należą:

Repertuar operacji. Ile operacji, które operacje i jak złożone

operacje powinny być przewidziane.

Rodzaje danych. Różne rodzaje danych, na których dokonywane są operacje.

Format rozkazu. Długość rozkazu (w bitach), liczba adresów, rozmiar różnych pól itd.

Rejestry. Liczba rejestrów w procesorze, do których mogą się

odnosić rozkazy, oraz ich zastosowanie.

Adresowanie. Tryb lub tryby, w których są specyfikowane adresy

argumentów


Adresowanie

Pole lub pola adresowe w typowym formacie rozkazu są ograniczone.

Chcielibyśmy dysponować możliwością odnoszenia się do dużego

zakresu lokacji w pamięci głównej lub -w pewnych systemach

wirtualnej. Aby osiągnąć ten cel, zastosowano różnorodne metody

adresowania. Wszystkie te metody opierają się na kompromisie

między zakresem adresów i (lub) elastycznością adresowania z

jednej strony, a liczbą odniesień do pamięci i (lub) złożonością

obliczania adresów z drugiej strony.


Adresowanie natychmiastowe

Najprostszą formą adresowania jest adresowanie natychmiastowe,

w którym argument jest w rzeczywistości obecny w rozkazie.

ARGUMENT = A Tryb ten może być stosowany do

definiowania i używania stałych lub do ustalania początkowych

wartości zmiennych.


Adresowanie bezpośrednie

EA = A. Metoda ta była powszechna we wcześniejszych generacjach

komputerów i jest nadal spotykana w małych systemach komputerowych.

Wymaga tylko jednego odniesienia do pamięci i nie wymaga żadnych

obliczeń


Adresowanie pośrednie

W przypadku adresowania bezpośredniego problemem jest to, że

długość pola adresowego jest zwykle mniejsza niż długość słowa,

co ogranicza zakres adresów. W jednym z rozwiązań pole adresowe

odnosi się do słowa w pamięci, które z kolei zawiera pełnej długości

adres argumentu. Metoda taka jest znana jako adresowanie

pośrednie


Adresowanie rejestrowe

EA = R

Pole adresowe odnoszące się do rejestrów ma zwykle 3 lub 4 bity,

wobec tego może się odwoływać do 8 lub 16 rejestrów roboczych.


Adresowanie pośrednie rejestrowe

W obu przypadkach jedyną różnicą jest to, czy pole adresowe

odnosi się do lokacji w pamięci, czy do rejestru.

W obu przypadkach ograniczenie przestrzeni adresowej

(ograniczony zakres adresów) pola adresowego jest eliminowane

w ten sposób, że pole to odnosi się do zawierającej adres lokacji

o długości słowa.


Adresowanie z przesunięciem

Adresowanie z przesunięciem wymaga dwóch pól adresowych w

rozkazie, przy czym przynajmniej jedno z nich jest jawne.

Wartość zawarta w jednym polu adresowym (wartość równa A)

jest używana bezpośrednio. Drugie pole adresowe, lub odniesienie

domyślne oparte na kodzie operacji, odnosi się do

rejestru, którego zawartość po dodaniu do A daje adres efektywny.

Trzy najczęstsze zastosowania adresowania z przesunięciem:

adresowanie względne, adresowanie z rejestrem podstawowym,

indeksowanie.


Adresowanie stosowe

Stosowy tryb adresowania jest formą adresowania domyślnego.

Rozkazy maszynowe nie muszą zawierać odniesienia do pamięci,

lecz domyślnie operują na wierzchołku stosu.


Długość rozkazu

Długość rozkazu wpływa na rozmiar pamięci, organizację pamięci,

strukturę magistrali, złożoność i szybkość procesora.

Decyzja dotycząca długości rozkazu określa bogactwo i

elastyczność maszyny, widziane przez programistę posługującego

się językiem asemblerowym. Wszystkie elementy (kody operacji,

argumenty, tryby adresowania, zakres adresów) wymagają bitów i

popychają w kierunku dłuższych rozkazów. Jednak dłuższe rozkazy

mogą prowadzić do rozrzutności. Rozkaz 32-bitowy zajmuje dwa

razy tyle przestrzeni, co 16-bitowy, jednak jego użyteczność wzrasta

znacznie mniej niż dwukrotnie. Albo długość rozkazu powinna być

równa długości jednostki transferu z (i do) pamięci (w systemie

magistralowym -szerokości magistrali danych), albo jedno powinno

być wielokrotnością drugiego. Ewidentnie powszechną, lecz mimo

to ważną własnością jest to, że długość rozkazu powinna być

wielokrotnością długości znaku, która zwykle wynosi 8 bitów, oraz

długości liczb stałopozycyjnych.


Przydział bitów -cz. I

Przy danej długości rozkazu istnieje oczywista wymienność między

liczbą kodów operacji a zdolnością adresowania. Więcej kodów

operacji oznacza oczywiście więcej bitów w polu kodu operacji.

W przypadku formatu rozkazu o danej długości następuje

zredukowanie liczby bitów dostępnych na potrzeby adresowania.

Istnieje interesujące ulepszenie dotyczące tego problemu: jest nim

użycie kodów operacji o zmiennej długości. W tym rozwiązaniu

występuje minimalna długość kodu operacji, jednak w przypadku

niektórych kodów mogą być specyfikowane dodatkowe operacje

za pomocą dodatkowych bitów w rozkazie.


Liczba trybów adresowania: czasem tryb adresowania może być

domyślny. Na przykład pewne kody operacji mogą zawsze

wymagać indeksowania. W innych przypadkach tryby adresowania

muszą bć jawne, do czego jest potrzebny jeden lub więcej bitów.

Przydział bitów -cz. II

Liczba argumentów. Zmniejszona liczba adresów może prowadzić

do dłuższych, bardziej kłopotliwych programów. Typowe rozkazy

współczesnych maszyn przewidują dwa argumenty. Każdy adres

argumentu w rozkazie może wymagać własnego wskaźnika

trybu lub też wskaźnik trybu może być związany tylko z

jednym polem adresowym.

Rejestry a pamięć. Maszyna musi mieć rejestry, dzięki którym

dane mogą być wprowadzane do procesora w celu przetwarzania.

W przypadku rejestru pojedynczego, widzialnego dla użytkownika

(nazywanego zwykle akumulatorem), adres jednego

argumentu jest domyślny i nie pochłania bitów rozkazu. Jednak

programowanie jedno rejestrowe jest kłopotliwe i wymaga wielu

rozkazów. Nawet w przypadku wielu rejestrów potrzeba tylko kilku

bitów do określenia rejestru. Im więcej rejestrów można przeznaczyć

na od-niesienia do argumentów, tym mniej potrzeba bitów. W wielu

badaniach wykazano, że pożądana liczba rejestrów widzialnych dla

użytkownika wy-nosi od 8 do 32. Wiele maszyn ma jeden zestaw

rejestrów roboczych, zawierający zwykle 8 do 16 rejestrów. Mogą

one być używane do przechowywania danych albo też do

przechowywania adresów w przypadku adresowania z przesunięciem.

Współcześnie występuje tendencja do odchodzenia od jednego

estawu rejestrów roboczych w kierunku dwóch lub większej

liczby zestawów wyspecjalizowanych (np. dane i przesunięcia).


Przydział bitów -cz. III

Zakres adresów. W przypadku adresów odnoszących się do pamięci

zakres możliwych adresów jest powiązany z liczbą bitów

adresowych. Ponieważ stanowi to poważne ograniczenie,

bezpośrednie adresowanie jest rzadko stosowane. Dzięki adresowaniu

z przesunięciem zakres adresów ulega poszerzeniu aż do wielkości

wynikającej z długości rejestru adresowego. Nawet w tym przypadku

nadal wygodne jest stosowanie raczej dużych przesunięć w

stosunku do adresu rejestrowego, co wymaga stosunkowo dużej

liczby bitów adresowych w rozkazie. Stopień granulacji adresu.

W przypadku adresów, które odnoszą się raczej do pamięci niż

do rejestrów, dodatkowym czynnikiem jest stopień granulacji

adresu. W systemie o słowach 16-lub 32-bitowych adres może

odnosić się do słowa lub bajtu, zależnie od wyboru projektanta.

Adresowanie bajtowe jest wygodne do manipulowania znakami,

jednak przy ustalonym rozmiarze pamięci wymaga więcej bitów

adresowych.




Wyszukiwarka

Podobne podstrony:
pomoc2cd(1), SPRAWOZDANIA czyjeś
Budowa kontenera C, SPRAWOZDANIA czyjeś
Zalety systemów SDH, SPRAWOZDANIA czyjeś
Hartowanie i odpuszczanie, SPRAWOZDANIA czyjeś
z3 06, SPRAWOZDANIA czyjeś
z 1 7 a, SPRAWOZDANIA czyjeś
Zabezpieczenie transformatora za pomocą zespołu automatyki(1), SPRAWOZDANIA czyjeś
w4m, SPRAWOZDANIA czyjeś
Z5 10, SPRAWOZDANIA czyjeś
pomoc, SPRAWOZDANIA czyjeś
siwex, SPRAWOZDANIA czyjeś
MetodyNumeryczne, SPRAWOZDANIA czyjeś
pomoc2, SPRAWOZDANIA czyjeś
labelektr14, SPRAWOZDANIA czyjeś
Budowa kontenera VC, SPRAWOZDANIA czyjeś
z4 06, SPRAWOZDANIA czyjeś
Kształtowanie widma, SPRAWOZDANIA czyjeś
Z2 08, SPRAWOZDANIA czyjeś

więcej podobnych podstron