Architektura komputerów Procesor
Architektura procesora
W architekturze procesora można wyróżnić dwa podstawowe
elementy funkcjonalne (patrz rys.1):
jednostkę wykonawczą, której zadaniem jest wykonywanie
operacji arytmetycznych i logicznych w zależności od
wewnętrznych sygnałów sterujących,
jednostkę sterującą, której zadaniem jest dekodowanie z
programu rozkazu i na jego podstawie generowanie
wewnętrznych i zewnętrznych sygnałów sterujących.
1
Architektura komputerów Procesor
Rys.1. Ogólny schemat funkcjonalny procesora
2
Architektura komputerów Procesor
Rejestry
Zgodnie ze schematem blokowym mikroprocesora, zarówno
jednostka arytmetyczno-logiczna, jak i układ sterowania
współpracują z określonym zestawem rejestrów. Zawartość pewnej
części rejestrów z tego zestawu może być zmieniana w wyniku
wykonania przez procesor określanej instrukcji. Rejestry takie
nazywamy rejestrami dostępnymi programowo. Pozostałe rejestry
są niedostępne dla użytkownika i ich zestaw nie jest zwykle znany.
3
Architektura komputerów Procesor
W rejestrach dostępnych programowo występują takie typy
rejestrów, których odpowiedniki znajdują się praktycznie w każdym
procesorze. Ich pojemność czy ilość może się zmieniać, jednak
wykonywane zadania pozostają takie same.
Na rysunku 2. przedstawiono przykładowy zestaw rejestrów
oparty na prostym procesorze 8086/8088.
4
Architektura komputerów Procesor
Zasadniczo każdy z rejestrów ma swoje zadanie do spełnienia,
każdy z nich pełni swoją rolę i dają się one pogrupować według
podobnych zadań:
rejestry powszechnego stosowania,
rejestry segmentowe,
rejestry wskaznikowe i indeksowe,
wskaznik rozkazów,
rejestr znaczników (rejestr flagowy).
5
Architektura komputerów Procesor
Rys.2. Rejestry dostępne programowo procesora 8086/8088
6
Architektura komputerów Procesor
Rejestry powszechnego zastosowania
Osiem rejestrów powszechnego zastosowania (każdy o długości
16 bitów) są używane do najczęściej stosowanych rozkazów, jako
miejsce, skąd pobieramy dane, miejsce przeznaczenia, wskazniki
do pamięci i wreszcie jako liczniki. Każdy z tych ośmiu rejestrów
może być załadowany zarówno z pamięci, jak też z nich można do
pamięci załadować, można ich używać do operacji arytmetycznych i
logicznych. Pomimo wspólnych cech rejestrów powszechnego
zastosowania, każdy znich, z osobna, ma swoją osobowość .
7
Architektura komputerów Procesor
Rejestr AX - znany jako akumulator. Używany zawsze tam, gdzie
zachodzi mnożenie, dzielenie. Jest to najbardziej efektywny rejestr
używany w operacjach arytmetycznych, logicznych, przesyłania
danych. Dolna, 8-bitowa część rejestru AX nosi nazwę AL (ang. A-
Low), część górna, też 8-bitowa, nosi nazwę AH
(ang. A-High). Taki podział rejestru na dwie 8-bitowe części jest
wygodny podczas działań na danych l-bajtowych, tworząc dwa
niezależne rejestry.
8
Architektura komputerów Procesor
Rejestr BX - może wskazywać położenie, lokalizację w pamięci.
16-bitowa wartość zapamiętana w tym rejestrze może być po części
użyta do adresowania położenia w pamięci. Domyślnie rejestr BX,
wraz z rejestrom segmentowym DS jest używany jako wskaznik
pamięci. Rejestr BX może być traktowany jako dwa 8-bitowe
rejestry BH i BL.
9
Architektura komputerów Procesor
Rejestr CX - używa się go głównie jaka licznika odliczającego
powtarzające się fragmenty programów bądz pojedynczych
rozkazów. Rejestr CX może być traktowany jaka dwa 8-bitowe
rejestry CH i CL.
10
Architektura komputerów Procesor
Rejestr DX - jego głównym przeznaczeniem jest użycie go jako
wskaznika adresów w rozkazach wejścia/wyjścia. Nie ma bowiem
innej drogi do zaadresowania portów, aniżeli użycie rejestru DX.
Rejestr DX może być również użyty w operacjach mnożenia i
dzielenia. Może on być traktowany jako dwa 8-bitowe rejestry DH i
DL.
11
Architektura komputerów Procesor
Rejestry wskaznikowe i indeksowe
Rejestr SI - podobnie jak rejestr BX, może być użyty juko
wskaznik pamięci.
Rejestr DI - jest bardzo podobny w użyciu do rejestru SI. Może
być użyty jako wskaznik pamięci; ma specjalne własności, gdy
zastanie zastosowany w rozkazach związanych z łańcuchami
znakowymi. Rejestry DI i SI wespół z rejestrem DS związane są z
adresowaniem łańcuchów znakowych, z tym że rejestr SI występuje
zawsze, gdy adresowanie dotyczy zródła danych, zaś rejestr DI
występuje wówczas, gdy adresowanie to dotyczy przeznaczenia
(celu).
12
Architektura komputerów Procesor
Rejestr BP - podobnie jak BX, SI, DI może być użyty jako
wskaznik pamięci, ale z pewną różnicą. Podczas gdy rejestry BX, SI,
DI, wskazując na adres w pamięci odnoszą się względem rejestru
segmentowego DS, to rejestr BP, służąc za wskaznik pamięci,
odnosi się do rejestru SS, rejestru segmentu stosu. Adresowanie
poprzez segment stosu, stosowane zwłaszcza w procedurach
języków C, Pascal, dokonuje się właśnie przy użyciu rejestru BP.
13
Architektura komputerów Procesor
Rejestr SP - znany jest jako wskaznik stosu i należy do ostatnich
rejestrów powszechnego stosowania. Rejestr SP daje położenie
bieżącego wierzchołka stosu i jest analogiczny do IP.
14
Architektura komputerów Procesor
Rejestry segmentowe
Tak jak rejestry powszechnego stosowania odgrywają swoje
specyficzne role, tak też rejestry segmentowe przeznaczone są do
wyspecyfikowanych zadań.
15
Architektura komputerów Procesor
Rejestr CS - wskazuje kod programu, rejestr DS wskazuje dane,
rejestr SS związany jest ze stosem, zaś rejestr ES (ang. extra
segment) jest dodatkowym rejestrem, który może być gdzieś
potrzebny. Rejestr CS - wskazuje na początek
64 KB bloku pamięci lub na segment kodu, w którym rezyduje
następny do wykonania rozkaz. Dokładne położenie tego rozkazu w
segmencie kodu wskazywane jest poprzez offset, którego wartość
zawiera rejestr IP. Pełny adres położenia rozkazu w segmencie
kodu ma postać: CS:IP. Procesor 8086 nigdy nie pobiera rozkazów z
segmentu innego niż segment CS. Rejestr CS maże być zmieniany
przez niektóre rozkazy, włączając w to rozkazy skoków, wywołań i
powrotów. Rejestru tego nie można ładować bezpośrednio.
16
Architektura komputerów Procesor
Rejestr DS - wskazuje początek segmentu danych, czyli 64 KB
blok pamięci zawierający argumenty. Zazwyczaj rejestrami
stowarzyszanymi z DS, określającymi offset w tym segmencie są
rejestry BX, SI lub DI.
Rejestr ES - wskazuje początek 64 KB bloku pamięci, zwanego
dodatkowym segmentem. Nie jest on przypisany do pojedynczych
zastosowań; stosowany jest do różnych pojawiających się potrzeb.
Offset tablica bądz inna struktura danych zawierająca informacje o odległości od poczatku pamięci.
W inżynierii komputerowej używana jest w programowaniu niskopoziomowym (assemblingu). Offset najczęściej jest dodawany do
adresu bazowego i tworzy z nim adres absolutny.
Przykład dla tablicy znaków zawierajacej litery abcdef elemnet d ma offset 3 gdyż znajduje się na miejscu nr 3 (numeracja od zera).
17
Architektura komputerów Procesor
Rejestr SS - wskazuje początek 64 KB bloku pamięci, zwanego
segmentem stosu. Wszystkie rozkazy, które niejawnie używają
rejestru SP - odkładanie na stos, zdejmowanie ze stosu, wywołania
i powroty - używają segmentu stosu, ponieważ rejestr SP jest
zdolny tylko do adresowania pamięci w obszarze segmentu stosu
SS. Również rejestr BP - o czym była już mowa - odnosi się też do
segmentu stosu; stąd też rejestr BP jest używany do adresowania
parametrów i zmiennych zawartych na stosie.
18
Architektura komputerów Procesor
Wskaznik rozkazów
Rejestr IP - nazywany jest wskaznikiem rozkazów i zawiera
zawsze offset pamięci, w którym zawarty jest następny rozkaz do
wykonania. Bazowy segment kodu zawarty jest w rejestrze CS.
Pełny adres logiczny wykonywanego rozkazu wskazywany jest
więc przez parę rejestrów CS:IP.
19
Architektura komputerów Procesor
Gdy jeden rozkaz jest wykonywany, wskaznik rozkazów
ustawiany jest do następnego adresu pamięci, pod którym
znajduje się rozkaz do wykonania. Zazwyczaj następnym rozkazem
w pamięci jest właśnie rozkaz, który będzie wykonywany.
Jednakże niektóre rozkazy, takie jak rozkazy wywołania i skoku,
mogą spowodować rozgałęzienie w wykonywaniu kodu programu,
a tym samym w rejestrze IP nie wystąpi kolejna wartość offsetu
wskazująca następny rozkaz do wykonania.
20
Architektura komputerów Procesor
Rejestr znaczników
Rejestr znaczników (rejestr flagowy) - FLAGS jest czternastym
rejestrem procesora 8086. Rejestr ten jest zbiorem poszczególnych
bitów kontrolnych, zwanych znacznikami (flagami), które wskazują
wystąpienie określonego stanu. Każdy znacznik jest bitem w
rejestrze, który wskazuje czy wystąpił określony stan. Znaczniki
mogą być wykorzystywane zarówno przez procesor, jak też i
programistę na dwa sposoby:
ustawienie znacznika dla zapamiętania określonego stanu po
wykonaniu rozkazu
testowanie znacznika celem umożliwienia decyzji o sposobie
dalszego postępowania (przetwarzania danych)
21
Architektura komputerów Procesor
Znaczniki stanu:
CF - flaga przeniesienia lub pożyczki, ustawiana przy przekroczeniu
zakresu długości słowa, w którym zapisywany jest wynik (1
wystąpiło przeniesienie);
PF - flaga parzystości (1) wskazuje na parzystą lub nieparzystą
liczbę bitów o wartości jedynki;
ZF - flaga zera - sygnalizująca, że wynikiem ostatnio wykonywanej
operacji jest zero;
22
Architektura komputerów Procesor
PF - flaga przeniesienia pomocniczego jest wykorzystywana przy
działaniach na liczbach w kodzie BCD. Ustawiana jest gdy następuje
przeniesienie lub pożyczka z najstarszego bitu pierwszej tetrady
wyniku;
SF - flaga znaku, ustawiana gdy najstarszy bit wyniku jest równy 1
(operacje liczb ze znakiem - kod U2);
OF - flaga przepełnienia, sygnalizująca przekroczenie zakresu dla
operacji arytmetycznych (operacje liczb ze znakiem - kod U2);
23
Architektura komputerów Procesor
Znaczniki kontrolne:
TF- znacznik pracy krokowej - ustawienie 1 pozwala na wykonanie
przez procesor po wykonaniu każdego rozkazu przerwania i
przejście do specjalnych procedur obsługi;
IF - znacznik zezwolenia na przerwanie - ustawienie 1 powoduje
odblokowanie systemu przerwań w procesorze (0 - procesor
ignoruje przerwania);
DF - znacznik kierunku - umożliwia realizację przetwarzania
łańcuchów (ciągu słów) przy rosnących adresach (1) lub malejących
adresach (0).
24
Architektura komputerów Procesor
ALU
Blok arytmetyczno-logiczny ALU (ang. arithmetic-logical unit)
jest często nazywany układem wykonawczym procesora, ponieważ
wykonuje on większość rozkazów zlecanych procesorowi. Blok ALU
jest uniwersalnym układem kombinacyjnym, który realizuje
operacje matematyczne i logiczne w zależności od
zaprogramowanej operacji, tj. rozkazu umieszczonego w
programie.
25
Architektura komputerów Procesor
Rozkazy mogą dotyczyć
a) operacji dwuargumentowych:
operacji arytmetycznych (dodawanie i odejmowanie)
operacji logicznych (sumowanie mnożenie, sumowanie mod 2,
itp.)
b) operacji jednoargumentowych (np. negowanie bitów lub
przesuwanie
zawartości rejestrów)
Na rys. 3. przedstawiono oznaczenie wejść i wyjść bloku ALU.
Pośród sygnałów wejściowych można wyróżnić dwie ich grupy:
wejścia informacyjne i wejścia sterujące.
26
Architektura komputerów Procesor
Na wejścia informacyjne podawane są dwa słowa (A0– A3 i B0
– B3), które są argumentami wykonywanej operacji. W
zależności od długości słowa stosowanego w danym procesorze
mówi się także o liczbie bitów ALU.
Rys. 3. Oznaczenie końcówek 4-bitowego ALU
Wejścia sterujące S0 – S3 i M służą do programowania
funkcji wykonywanych przez układ.
27
Architektura komputerów Procesor
Układ sterowania
Zwykle lista rozkazów procesora zawiera rozkazy proste, które
procesor wykonuje w jednym kroku (np. rozkaz dodawania dwóch
liczb ) oraz złożone, wykonywane w kilku krokach (na przykład
rozkazy mnożenia i dzielenia są wykonywane jaka ciąg dodawań i
przesuwań).
W celu zapewnienia właściwego wysterowania układu procesora
trzeba zapewnić odpowiednie sekwencje słów podawanych na
wejścia sterujące układu ALU.
28
Architektura komputerów Procesor
Do tego celu stosuje się specjalne układy, które są złażonymi
automatami sekwencyjnymi. Przy projektowaniu układów, które
mają wymuszać odpowiednie pobudzenia układów wykonawczych
występuje szereg trudności:
dla wymaganej liczby wykonywanych rozkazów automaty
sterujące moją dużą liczbę stanów;
wymagane jest zapewnienie synchronizacji pracy układu
sterowania i układu wykonawczego, tj. konieczność
uwzględniania, podczas projektowania układu logicznego, czasu
wykonywania poszczególnych operacji.
29
Architektura komputerów Procesor
Aby przezwyciężyć te trudności poszukiwano od dawna
efektywnych metod projektowania układów sterujących. W
zasadzie spotyka się dwa typy układów sterowania:
generatory sekwencji budowane ze standardowych układów
logicznych,
układy mikro-programowane.
Te ostatnie znalazły największe praktyczne zastosowanie w
systemach komputerowych i chociaż jest to znana od dawna
(1951 r) koncepcja podana przez Wilkesa, to dopiero możliwości
stworzone przez technologię LSI pozwoliły praktycznie ją
zastosować.
30
Architektura komputerów Procesor
Cykl rozkazowy procesora
Realizując program, system mikroprocesorowy wykonuje pewne
powtarzające się czynności, polegające na cyklicznym pobieraniu
kodów rozkazów z pamięci i wczytywaniu ich do układu sterowania
mikroprocesora, a następnie realizacji rozkazu, którego kod został
pobrany. W cyklu tym możemy wyróżnić dwie fazy zwane: fazą
pobrania (ang. fetch) i fazą wykonania (ang. execution).
31
Architektura komputerów Procesor
Schematycznie następstwo kolejnych faz przedstawia rysunek 4.
Rys.4. Fazy cyklu rozkazowego
Faza pobrania polega na pobraniu kodu rozkazu z komórki
pamięci o adresie przechowywanym w liczniku rozkazów, a
następnie na umieszczeniu tego kodu w rejestrze rozkazów
znajdującym się w układzie sterowania mikroprocesora.
32
Architektura komputerów Procesor
Kod rozkazu przesyłany jest do mikroprocesora magistralą
danych. Następnie zawartość licznika rozkazów jest modyfikowana
tak, aby wskazywał on na kolejny kod rozkazu przeznaczony do
pobrania. Po zakończeniu fazy pobrania następuje faza wykonania.
Polega ona na zdekodowaniu kodu rozkazu znajdującego się w
rejestrze rozkazów, czyli stwierdzeniu, jaki to rozkaz. Po
zdekodowaniu kodu rozkazu układ sterowania wytwarza
wewnętrzne lub zewnętrzne sygnały sterujące realizujące dany
rozkaz.
33
Architektura komputerów Procesor
Kolejne etapy realizacji fazy pobrania i fazy wykonania rozkazu
można przedstawić następująco:
A. Faza pobrania
1. Adresowanie czyli podanie zawartości licznika rozkazów na
magistralę adresową.
2. Wczytanie zawartości zaadresowanej komórki pamięci do
rejestru rozkazów mikroprocesora
3. Zwiększenie zawartości licznika rozkazów
34
Architektura komputerów Procesor
B. Faza wykonania
4. Zdekodowanie kodu rozkazu i wytworzenie sygnałów
sterujących realizujących dany rozkaz.
Obieg informacji dla fazy pobrania i wykonania przedstawiony jest
na rysunku 5.
35
Architektura komputerów Procesor
Rysunek 5. Schemat przepływu informacji przy pobieraniu kodu rozkazu
36
Architektura komputerów Procesor
Oczywiście w przypadku kodów rozkazów zajmujących kilka
komórek pamięci etapy od 1 do 3 muszą być kilkakrotnie
powtórzone, zanim zrealizowane zostanie ostateczne wykonanie
rozkazu.
Realizacja wszystkich wymienionych etapów wykonania rozkazu
tworzy pewien cykl, zwany od nazwiska jego twórcy cyklem von
Neumana.
37
Architektura komputerów Procesor
Czas trwania fazy pobrania rozkazu zależy od rodzaju procesora
i rodzaju rozkazu. Jeśli procesor jest 8-bitowy i rozkaz zawiera 8-
bitowy kod operacyjny rozkazu i 16-bitowy adres argumentu, to
faza pobrania rozkazu składa się z 3 cykli maszynowych odczytu
pamięci:
odczytu kodu operacyjnego (faza pobrania rozkazu),
odczytu jednego bajtu adresu,
odczytu drugiego bajtu adresu.
38
Architektura komputerów Procesor
Jeśli procesor (i rozkaz) jest 32-bitowy, to zarówno kod
operacyjny, jak i adres argumentu można odczytać z pamięci w
jednym cyklu maszynowym. Pobranie argumentu może być zatem
jednocyklowe lub wielocyklowe. Często argument ma długość
równą długości słowa w pamięci i wówczas pobranie odbywa się w
jednym cyklu.
39
Architektura komputerów Procesor
Ale czasem można spotkać argumenty o znacznej długości.
Na przykład w 16-bitowych mikrokomputerach stosowane są
nawet 80-bitowe argumenty (argumenty operacji
zmiennopozycyjnych). Argument o takiej długości, w
mikroprocesorach 16-bitowych, jest pobierany w 5 cyklach
odczytu pamięci.
40
Architektura komputerów Procesor
Dla zilustrowania podanego opisu rozpatrzono sposób
wykonania programu dodawania dwóch stałopozycyjnych liczb 16-
bitowych w komputerze 16-bitowym. Kod rozkazowy ma długość
12 bitów, a adres jest 20-bitowy. Założono, że komórka pamięci
zawiera 16 bitów. Pozwala to na umieszczenie zarówno kodu
rozkazowego, jak i adresu w 2 komórkach pamięci (razem 32
bity). Założono ponadto, że:
adres pierwszego rozkazu programu wynosi 300,
argumenty operacji znajdują się w komórkach pamięci o
numerach ADR1=841 i ADR2=915,
wynik operacji powinien zostać zapisany do komórki pamięci o
adresie ADR2.
41
Architektura komputerów Procesor
Rys. 6. Mapa pamięci i zawartości rejestrów procesora dla przykładowego programu
42
Architektura komputerów Procesor
Na rysunku 6 pokazano mapę pamięci programu i zawartości
rejestrów procesora dla omawianego przypadku. Program składa
się z 4 rozkazów:
rozkazu odczytu pierwszego argumentu i zapisania go do
rejestru A,
rozkazu odczytu drugiego argumentu i zapisania go do
rejestru B,
rozkazu dodania obu argumentów,
rozkazu przesłania wyniku do pamięci.
43
Architektura komputerów Procesor
Celem pokazania zmian zachodzących w rejestrach procesora, w
czasie wykonywania tego programu, przedstawiono zawartości
rejestrów A, B, PC, AD i RR w kolejnych fazach wykonywania
programu. Dwa pierwsze rozkazy składają się z trzech cykli
maszynowych:
1. pobrania kodu operacyjnego oraz 4 bitów adresu,
2. pobrania dalszych 16 bitów adresu,
3. odczytu argumentu.
Rozkaz dodawania nie wymaga dostępu do pamięci oprócz
pobrania kodu rozkazu, ponieważ jest to rozkaz z argumentami w
rejestrach. Dlatego jest to rozkaz jednocyklowy. Pozostałe rozkazy
są rozkazami trzycyklowymi.
44
Architektura komputerów Procesor
Lista rozkazów i tryb adresowania
Komputer, będący systemem mikroprocesorowym, przetwarza
informacje zgodnie z wykonywanym programem. Program jest
ciągiem instrukcji realizujących pewien algorytm działania
systemu. W pamięci systemu mikroprocesorowego program
przechowywany jest w postaci binarnych kodów instrukcji
maszynowych (rozkazów) właściwych dla danego procesora.
45
Architektura komputerów Procesor
Lista rozkazów
Określenie: Rozkazem (instrukcją maszynową)
nazywamy najprostszą operację, której wykonania
programista może żądać od procesora.
Sposób realizacji rozkazu nie jest istotny dla użytkownika
systemu i z reguły nie jest znany. Nawet jeżeli wiemy, że dany
rozkaz jest realizowany jako ciąg prostszych operacji, zwanych
mikrooperacjami czy mikrorozkazami, to i tak nie mamy żadnego
wpływu na sposób realizacji rozkazu.
46
Architektura komputerów Procesor
Rozkazy są więc najprostszymi operacjami, których możemy
używać przy tworzeniu programów. Tworzenie programów
bezpośrednio przy pomocy instrukcji maszynowych jest bardzo
efektywne jednak dość żmudne i nie nadaje się do tworzenia
bardzo rozbudowanych programów. W takich przypadkach
używamy tak zwanych języków wysokiego poziomu (np. Pacal,
C++, itp.), w których jednej instrukcji odpowiada wiele instrukcji
maszynowych.Zestaw instrukcji maszynowych zależy od
konkretnego procesora.
Określenie: Listą rozkazów nazywamy zestaw wszystkich
instrukcji maszynowych (rozkazów), jakie potrafi wykonać
dany procesor.
47
Architektura komputerów Procesor
Rozkazy tworzące listę rozkazów można podzielić na kilka
podstawowych grup, w zależności od ich przeznaczenia:
1. rozkazy przesłań,
2. rozkazy arytmetyczne i logiczne,
3. rozkazy sterujące wykonywaniem programu,
4. rozkazy sterujące pracą procesora.
Rozkazy przesłań są najczęściej wykonywanymi rozkazami. Nie
zmieniają one wartości informacji, natomiast przenoszą ją z miejsca
na miejsce. Ich duża częstotliwość wykonywania jest dość
oczywista. Jeśli chcemy wykonać jakąś operację, musimy zwykle
pobrać jej argumenty, a po jej wykonaniu zapisać wynik.
48
Architektura komputerów Procesor
Wśród rozkazów przesłań wyróżnia się czasami operacje na
stosie (będące jednak też formą przesłań) czy instrukcje
wejścia/wyjścia, przesyłające lub odczytujące dane z portów
wejścia/wyjścia.
Typowymi przykładami rozkazów przesłań są:
MOV - move - przesłanie słowa pomiędzy rejestrami procesora;
STR - store - przesłanie słowa ze wskazanego w rozkazie rejestru
procesora do komórki pamięci;
LD - load - przesłanie słowa z pamięci do wskazanego rejestru
procesora;
49
Architektura komputerów Procesor
XCH - exchange - wymiana zawartości rejestrów;
IN - input - odczyt słowa z urządzenia wejściowego;
OUT - output - przesianie zawartości wskazanego rejestru
procesora do urządzenia wyjściowego;
CLR - clear - zerowanie rejestru;
SET - set - zapisanie do rejestru jedynek;
PUSH - push - zapisanie zawartości rejestru na stos;
POP - pop - odczyt słowa z wierzchołka stosu i przesłanie go do
rejestru;
50
Architektura komputerów Procesor
Pierwsze 6 rozkazów to rozkazy jednoargumentowe. Muszą one
jednak specyfikować dwa adresy operandów. Pierwszy z nich
wskazuje miejsce skąd pochodzi argument operacji (zródło), a
drugi wskazuje miejsce jego przesłania przeznaczenie).
Istnieją procesory, w których rozkazy takie mogą być
modyfikowane w taki sposób, aby ich wykonanie było wielokrotne,
tj. powtarzane określoną przez rozkaz liczbę razy. Umożliwia to
przesyłanie całych bloków słów.
51
Architektura komputerów Procesor
Mówimy, że są to rozkazy z powtarzaniem. W takim przypadku
rozkazy te są dwuargumentowe, gdyż drugi argument specyfikuje
ile razy ten rozkaz ma być wykonany. Pozostałe cztery rozkazy
wymienione w tej grupie są rozkazami jednoargumentowymi.
52
Architektura komputerów Procesor
Rozkazy arytmetyczne i logiczne służą do przetwarzania
informacji, czyli w wyniku ich wykonania jest ona zmieniana. Do
rozkazów tych zaliczamy:
rozkazy arytmetyczne, np.:
ADD - addition - dodawanie;
SUB - subtraction - odejmowanie;
MUL - multiplication - mnożenie;
DIV - diyision - dzielenie;
ABS - absolute - wartość bezwzględna liczby;
NEG - negate - zmiana znaku liczby;
INC - increment - zwiększenie wartości o jeden;
DEC - decrement - zmniejszenie wartości o jeden.
53
Architektura komputerów Procesor
Pierwsze 4 rozkazy tej grupy są argumentowe. Dlatego rozkazy
te muszą wskazywać trzy operandy: dwa dla dwóch argumentów
operacji i jeden dla wyniku. Zatem każdy taki rozkaz musi
specyfikować trzy adresy. Ponieważ takie rozwiązanie zmuszałoby
do wydłużania instrukcji, a co za tym idzie programów, to zmierza
się do zmniejszania liczby adresów operandów. Można przyjąć
wtedy, że jeden z argumentów jest zawsze przechowywany w tym
samym miejscu, np. w akumulatorze i tam też przesyłany jest
wynik operacji. W takim przypadku specyfikacji wymaga tylko
jeden operand.
54
Architektura komputerów Procesor
Następne 4 podane rozkazy są jednoargumentowe i dlatego
każdy z nich specyfikuje jedynie dwa adresy operandów. Wszystkie
podane rozkazy powodują odpowiednie ustawianie bitów w
rejestrze znaczników na wyjściu ALU. Argumentami takich
rozkazów mogą być liczby stałopozycyjne i zmiennopozycyjne.
55
Architektura komputerów Procesor
rozkazy logiczne, np.:
AND - conjuction - iloczyn;
OR - disjunction - suma;
EXOR- exclusive-OR - suma mod 2;
NOT - complement - negacja.
Pierwsze trzy rozkazy są dwuargumentowe i tylko ostatni rozkaz
jest jednoargumentowy. Argumenty tych rozkazów mogą być
adresowane na różne sposoby. Wykonanie omawianych rozkazów
także powoduje odpowiednie ustawienie znaczników.
56
Architektura komputerów Procesor
rozkazy przesuwania informacji, np.:
SHL - shift left - przesuwanie zawartości rejestru w lewo (na
najmniej znaczącą pozycję wpisywane jest 0, a na najbardziej
znaczącą pozycję jest zapisywany znacznik przeniesienia).
SHR - shift right - przesuwanie zawartości rejestru w prawo (na
najbardziej znaczącą pozycję wpisywane jest 0, a na najmniej
znaczącą pozycję jest zapisywany znacznik przeniesienia).
57
Architektura komputerów Procesor
SAL - shift arithmetic left - przesuwanie arytmetyczne w lewo
(jak SHL), czyli mnożenie przez 2 z zachowaniem bitu znaku.
SAR - shift arithmetic right - przesuwanie arytmetyczne w
prawo, czyli dzielenie przez 2 (najbardziej znaczący bit jest
pozostawiany a najmniej znaczący jest zapisywany na pozycję
znacznika przeniesienia).
ROL - rotate left - przesuwanie cykliczne w lewo (najbardziej
znaczący bit jest zapisywany na najmniej znaczącą pozycję
oraz na pozycję znacznika przeniesienia).
58
Architektura komputerów Procesor
ROR - rotate right - przesuwanie cykliczne w prawo (najmniej
znaczący bit jest zapisywany na najbardziej znaczącą pozycję i
na pozycję znacznika przeniesienia).
RCL - rotate left with extend - przesuwanie cykliczne w lewo
rejestru wydłu-żonego o znacznik przeniesienia.
RCR - rotate right with extend - przesuwanie cykliczne w
prawo rejestru wydłu-żonego o znacznik przeniesienia.
Wszystkie podane operacje są jednoargumentowe. Rozkazy
przesunięć mogą dotyczyć zarówno zawartości rejestrów jak i
zawartości komórki pamięci.
59
Architektura komputerów Procesor
Rozkazy sterujące wykonywaniem programu stanowią grupę
rozkazów pozwalającą zmieniać kolejność wykonywania instrukcji
programu.
Należą do nich przykładowo:
JMP - jump - skok bezwarunkowy do miejsca w pamięci
wyspecyfikowanego w rozkazie;
Jc - jump conditional - skok warunkowy gdzie c określa jaki
warunek musi być spełniony, aby rozkaz wykonać;
60
Architektura komputerów Procesor
CALL - jump to subroutine - wywołanie podprogramu polegające
na tym, że wykonywany jest skok wraz z zapamiętaniem na
stosie zawartości licznika rozkazów (ostatni adres);
Cc - call conditional - warunkowe wywołanie podprogramu;
RET - return - skok powrotny z podprogramu polegający na
przesłaniu ze stosu zapamiętanej wcześniej zawartości licznika
rozkazów;
SKIP - skip - przeskok przez jeden rozkaz;
61
Architektura komputerów Procesor
Rozkazy warunkowe są wykorzystywane do realizacji rozgałęzień
w programach. Jeśli warunek nie jest spełniony, to rozkaz nie jest
wykonywany, a wykonywany jest rozkaz następny, tj. znajdujący
się w programie po rozkazie warunkowym. Rozkazy skoków i
wywołań zawierają adres skoku, tj. adres komórki pamięci, w której
znajduje się rozkaz wykonywany bezpośrednio po wykonaniu
rozkazu skoku.
62
Architektura komputerów Procesor
Rozkazy sterujące pracą procesora stanowią niewielką
grupę rozkazów do której należą m.in.:
HALT - stop - zatrzymanie wykonywania programu;
NOP - no operation - rozkaz pusty.
Rozkaz HALT zatrzymuje pracę procesora, aż do momentu
ponownego uruchomienia programu przez zdarzenie zewnętrzne
(ponowną inicjalizację procesora, czyli po pojawieniu się sygnału
RESET lub po zgłoszeniu przerwania, tj. pojawieniu się sygnału
HIT), a rozkaz NOP jest rozkazem pustym nic nie rób.
63
Architektura komputerów Procesor
Przedstawiona lista rozkazów stanowi uproszczony przykład
zbioru rozkazów procesora. Z tego opisu wynika jednak kilka
ważnych problemów. Pierwszym z nich jest problem liczby adresów,
które powinny zostać wyspecyfikowane w rozkazie.
W zasadzie każdy rozkaz powinien podawać adresy 3 operandów
(dwa adresy argumentów danego rozkazu i jeden adres wyniku
operacji) oraz adres następnego rozkazu. Komputery, których
rozkazy zawierają te wszystkie adresy nazywane są komputerami
czteroadresowymi.Dla wyspecyfikowania podanych 4 adresów
potrzebne są bardzo długie słowa rozkazowe.
64
Architektura komputerów Procesor
Celem zmniejszenia długości rozkazu stosuje się rozwiązania
pozwalające wyeliminować pewną liczbę adresów. Jednym z nich
było wprowadzenie licznika rozkazów, co pozwoliło na eliminację
adresu następnego rozkazu i konstrukcję komputerów
trzyadresowych. Celem dalszego ograniczenia liczby adresów
można przyjąć założenie, że dla wszystkich operacji wynik będzie
przesyłany w miejsce jednego z argumentów.
65
Architektura komputerów Procesor
Wówczas można zmniejszyć liczbę adresów do dwóch.
W komputerach o bardzo krótkim słowie rozkazowym (np.
mikrokomputery 8-bitowe) stosuje się dalsze ograniczenie liczby
adresów przez rozwiązanie polegające na tym, że jeden z
argumentów wszystkich rozkazów i wynik jest zawsze w tym
samym miejscu (na przykład w rejestrze akumulatora). Takie
komputery nazywane są jednoadresowymi.
66
Architektura komputerów Procesor
SPOSÓB PREZENTOWANIA ROZKAZU
Lista rozkazów procesora powinna zawierać następujące
informacje:
Oznaczenie symboliczne.
Rozkazy przechowywane są w postaci binarnej, jednak dla
większej czytelności stosuje się zapis symboliczny. Składa się on
z mnemonika (nazwy rozkazu) i argumentu.
67
Architektura komputerów Procesor
Mnemonik jest skrótem, który sugeruje rodzaj operacji
wykonanej przez rozkaz. W większości są to skróty angielskich
nazw.
Kod rozkazu:
a. musi zawierać określenie rodzaju wykonywanej operacji,
czyli tzw. kod operacji. Kod operacji musi być określony w
początkowej części (pierwszym bajcie lub bajtach) kodu
rozkazu w celu określenia, w jaki sposób ma przebiegać
dalsza realizacja rozkazu przez mikroprocesor.
b. może zawierać operandy i/lub adresy operandów
wykonywanych operacji (dotyczy to także adresów
wyników). Oczywiście w przypadku rozkazów
wymagających argumentów informacja ta musi być zawarta
w rozkazie.
68
Architektura komputerów Procesor
Opis działania rozkazu.
Symbolicznie działanie rozkazu możemy zapisać:
(PC) << (PC) + OFFSET
Słownie opis tego układu byłby następujący:
Wykonaj skok i pobierz kod rozkazu z komórki pamięci o adresie
równym etykieta.
Format rozkazu.
W formacie rozkazu oprócz sposobu rozmieszczenia informacji w
kodzie rozkazu zawarta jest również informacja o jego długości.
Ustawiane flagi.
Szybkość wykonywania rozkazu.
69
Architektura komputerów Procesor
PRZYKAADOWE ROZKAZY
Przykładowe rozkazy:
1. MOV
Instrukcja MOV przesyła dane pomiędzy dwoma miejscami.
Obydwa argumenty muszą być tego samego rozmiaru.
Składnia:
MOV mem, accum (prześlij zawartość akumulatora do komórki o
podanym adresie)
70
Architektura komputerów Procesor
Format:
gdzie: address low, address high - przemieszczenie względem
początku segmentu
w=1 - operacja na słowach
w=0 - operacja na bajtach
2. ADC
Instrukcja ADC sumuje dwie liczby umieszczone we wskazanych
miejscach oraz bit CY (przeniesienia). Należy ona do grupy
instrukcji arytmetycznych.
3. LOOP etykieta
71
Architektura komputerów Procesor
Tryb adresowania
Rozkazy, jak każdy inny rodzaj informacji w systemie
mikroprocesorowym, są przechowywane w postaci kodów
binarnych. Kod rozkazu musi zawierać informacje niezbędne do
jego poprawnej realizacji. Informacje te muszą być rozmieszczone
w rozkazie w określony sposób.
Określenie: Formatem rozkazu nazywamy sposób
rozmieszczenia informacji w kodzie rozkazu.
72
Architektura komputerów Procesor
Kod rozkazu:
1. musi zawierać określenie rodzaju wykonywanej operacji,
czyli tak zwany kod operacji. Kod operacji musi być określony w
początkowej części (pierwszym bajcie lub bajtach) kodu rozkazu
w celu określenia, w jaki sposób ma przebiegać dalsza realizacja
rozkazu przez mikroprocesor.
2. może zawierać operandy i/lub adresy operandów
wykonywanych operacji (dotyczy to także adresów wyników).
Oczywiście w przypadku rozkazów wymagających argumentów
informacja ta musi być zawarta w rozkazie.
73
Architektura komputerów Procesor
Właśnie z tym drugim warunkiem określającym zawartość kodu
związane są tryby adresowania.
Określenie: Trybem adresowania nazywa się sposób
określenia miejsca przechowywania argumentów rozkazu.
Można rozróżnić następujące tryby adresowania:
adresowanie natychmiastowe, w którym argument rozkazu
zawarty jest w kodzie rozkazu;
adresowanie bezpośrednie, w którym kod rozkazu zawiera adres
komórki pamięci przechowującej argument rozkazu;
74
Architektura komputerów Procesor
adresowanie rejestrowe, w którym w kodzie rozkazu określony
jest rejestr zawierający argument rozkazu;
adresowanie pośrednie (rejestrowe pośrednie), w którym kod
rozkazu zawiera określenie rejestru, bądz rejestrów
zawierających adres komórki pamięci z argumentem rozkazu;
adresowanie indeksowe z przemieszczeniem, w którym adres
argumentu przechowywanego w pamięci obliczany jest jako
suma zawartości rejestru i wartości (tzw. przemieszczenia)
określonych w kodzie rozkazu.
Interpretacja graficzna trybów adresowania została przedstawiona
na rys. 6.
75
Architektura komputerów Procesor
Rys.6. Tryby adresowania a) adresowanie natychmiastowe,
b) adresowanie bezpośrednie, c) adresowanie rejestrowe,
d) adresowanie pośrednie, e) adresowanie indeksowe z
przemieszczeniem
76
Architektura komputerów Procesor
Rozwiązania zapewniające zwiększenie
efektywności procesora
Kolejka instrukcji
Pobieranie instrukcji z rejestru instrukcji IR do dalszego
przetwarzania (dekodowania, wykonania) odbywa się z różna
prędkością w zależności od:
trybu adresowania,
liczby argumentów,
czasu ich pobierania z pamięci,
liczby taktów zegara w jakich wykonywana jest instrukcja.
77
Architektura komputerów Procesor
Również w różnym tempie odbywa się dostarczanie instrukcji do
rejestru rozkazów IR w zależności od obciążenia szyny danych.
Mogą zatem powstawać sytuacje, w których dekoder instrukcji
czeka na instrukcję w IR a układ pobierania instrukcji nie może jej
na czas dostarczyć bo szyna danych jest akurat zajęta innymi
transmisjami albo sytuacje w których szyna i pamięć są gotowe i
mogą dostarczyć instrukcję, natomiast procesor jest jeszcze
zajęty przetwarzaniem instrukcji poprzedniej.
78
Architektura komputerów Procesor
W obu przypadkach jest konieczność wstrzymania pracy bloków
nie mających zajęcia i potrzeba wygenerowania martwego cyklu
ich pracy, tzn. czynności polegającej na nie zrobieniu nic w danym
cyklu zegara.
79
Architektura komputerów Procesor
Aby martwych cykli pracy pamięci i ALU było jak najmniej
stosuje się kolejkę instrukcji.
Określenie: Kolejka jest strukturą danych dualną do stosu.
Podobnie jak na stosie w jednym cyklu dostępu może być z
niej zdjęta tylko jedna dana. Na stosie była to dana ostatnio
odłożona, w kolejce jest nią dana odłożona wcześniej.
Obowiązuje tu reguła FIFO (first input first output).
Ponieważ obciążenie bloku wykonawczego procesora oraz
pamięci zmienia się dynamicznie i raz jedno jest większe raz
drugie, duże korzyści daje zamienienie rejestru IR na
wielopozycyjny bufor instrukcji i stworzenie w nim kolejki
instrukcji.
80
Architektura komputerów Procesor
Gdy ALU pracuje akurat wolniej a szyna dostarcza instrukcje
szybciej kolejka się zapełnia kilkoma instrukcjami. Gdy pózniej
szyna stanie się z jakiegoś powodu wolniejsza w stosunku do
ALU, instrukcje będą pobierane z kolejki i nie nastąpi przestój w
pracy ALU. Ilustruje to rys. 7.
81
Architektura komputerów Procesor
Kolejka ma pięć pozycji.
Dekoder aktualnie dekoduje
instrukcję instrukcję 0
pierwszej odczytywanej
pozycji kolejki, a instrukcje
następne instrukcja 1 ,
instrukcja 2 , instrukcja
3 , instrukcja 4 zostały
pobrane i oczekują w
kolejce. Rejestr PC
wskazuje adres instrukcji
4 , która została ostatnio
pobrana. Gdy zakończy się
dekodowanie instrukcji 0 ,
zostanie ona usunięta z
kolejki, a na zwolnione miejsce zostanie wpisana instrukcja 5 w ten
sposób, że rejestr PC zwiększy się o 1 i wystawi adres instrukcji 5 .
Sprawdzaniem stanu kolejki i uzupełnianiem jej w razie wolnego miejsca
przez zwiększanie PC i kolejki zajmuje się specjalny blok włączony pomiędzy
szynę a bufor kolejki w pamięci
FIFO zwany Blokiem Wyprzedzającego Wprowadzania Instrukcji (BWWI).
82
Architektura komputerów Procesor
Cykl pracy kolejki wygląda zatem następująco:
jeżeli kolejka posiada wolne miejsca, Blok Wyprzedzającego
Wprowadzania Instrukcji (BWWI) wprowadza na nie kolejne
instrukcje w tempie wyznaczonym przez zegar (max 1
instr./takt), ale ograniczonym również przez obciążenie szyny,
równocześnie jeżeli kolejka zawiera instrukcje, są one pobierane
do dekodowania w tempie wyznaczonym przez pracę dekodera.
Zanim przedstawione zostanie, jak wprowadzenie kolejki
instrukcji odbija się na procesie pobierania instrukcji należy
przypomnieć, że w skład cyklu instrukcyjnego procesora wchodzi
5 faz:
83
Architektura komputerów Procesor
pobranie instrukcji (PI),
dekodowanie instrukcji (DI),
obliczenie adresu argumentów i pobranie argumentów (OA+PA),
wykonanie instrukcji (WI),
zapamiętanie wyników (ZW).
Wśród nich trzy fazy PI, PA i ZW wymagają wykonania dostępów
do pamięci. Dostępy te są najkrytyczniejsze w całym cyklu
instrukcyjnym ponieważ zajmują i obciążają szynę adresową i
szynę danych.
84
Architektura komputerów Procesor
Wymienione 5 faz rozłożonych na trzy bloki:
pamięć i układy adresujące,
dekoder,
ALU
rozkłada się w czasie w sposób pokazany na rys. 8..
Pomiędzy trzema dostępami do pamięci występują dwa martwe
cykle pamięci (MCP), pomiędzy wykonaniami instrukcji występują
martwe cykle ALU (MCA).
85
Architektura komputerów Procesor
Rys 8. Fazy wykonania cyklu instrukcyjnego bez kolejki instrukcji
Jeżeli szyna jest mało obciążona i transmisje adresu do pamięci
oraz instrukcji i danych z pamięci nie wymaga oczekiwania na
zwolnienie szyny, to pobranie instrukcji odbywa się w jednym
takcie.
86
Architektura komputerów Procesor
Wówczas w każdym martwym cyklu pamięci układ wyprzedzającego
wprowadzania instrukcji może dokonać co najmniej jednego
pobrania następnej instrukcji do kolejki. Otrzymujemy schemat
pokazany na rys. 9.
87
Architektura komputerów Procesor
Rys 9. Fazy wykonania cyklu instrukcyjnego z jednotaktowym
wykonaniem instrukcji pierwszej(WI1)przy kolejce instrukcji
88
Architektura komputerów Procesor
Może wystąpić również sytuacja, w której wykonanie instrukcji
pierwszej (WI1) trwa więcej taktów zegara i wówczas pojawia się
więcej martwych cykli, które można przeznaczyć na pobranie
większej liczby instrukcji, np. PI3 i PI4, jak pokazuje rys. 10.
Przypadkom z rys.9 i 10. towarzyszyć będzie zapełnianie kolejki.
Rys 10. Fazy wykonania cyklu instrukcyjnego z dwutaktowym WI1
przy kolejce instrukcji
89
Architektura komputerów Procesor
Jeżeli jednak na rys.9 szyna będzie przeciążona i po zażądaniu
pobrania drugiej instrukcji przez Blok Wyprzedzającego
Wprowadzania Instrukcji nie nastąpi przesłanie, ale oczekiwanie
na zwolnienie szyny, np. przez jeden takt, to nie uda się zapełnić
kolejki. PI2 nie zmieści się w żadnym z jednotaktowych martwych
cykli pamięci (nie tylko PI2 i PI3 będą opóznione, ale także
pobrania argumentu PA1 i zapisania wyniku ZW1). Kolejka
instrukcji nie będzie się zapełniała, a w realizacjach w których
dekoder i ALU nie czekają na zakończenie cyklu instrukcyjnego
(potokowych), lecz pobierają następne dane kolejka będzie wręcz
malała.
90
Architektura komputerów Procesor
Jeżeli w kodzie programu pojawi się instrukcja skoku JMP
(zwykła lub warunkowa) lub wywołanie podprogramu CALL
wówczas mechaniczne pobieranie przez BWWI do kolejki kolejnych
instrukcji za instrukcją skoku jest problematyczne. Najprostszy
układ BWWI nie bada typu instrukcji pobieranej.
91
Architektura komputerów Procesor
Kolejka jest zapełniana kolejno instrukcjami: instrukcja 1 ,
JMP, Instrukcja 2 , Instrukcja 3 , .... Gdy JMP dojdzie do
dekodowania i dekoder stwierdzi skok, zostanie on wykonany,
następuje przerwa w pracy procesora, kolejka zostanie opróżniona
z instrukcji Instrukcja 2 , Instrukcja 3 ,... i zacznie się jej
ponowne zapełnianie instrukcjami wyznaczonymi przez skok (lub
podprogram).
Ta przerwa znacznie spowalnia działanie procesora, bo skoki są
częstym elementem programu. Sytuację można poprawić jeżeli
BWWI będzie rozpoznawał instrukcję JMP po jej wprowadzeniu i
przełączy się na pobieranie następnych instrukcji za skokiem.
92
Architektura komputerów Procesor
Jeszcze trudniejsza sytuacja występuje jeżeli skok jest
warunkowy i zajdzie tylko w przypadku odpowiedniej wartości
zmiennej określonej argumentem instrukcji skoku. Wówczas
opróżnianie kolejki może nastąpić dopiero po wyliczeniu przez ALU
wartości tego argumentu. Jeśli z wartości argumentu wynika, że
skok nastąpi, kolejka i dekoder są opróżniane, i zacznie się nowe
zapełnianie kolejki instrukcjami za skokiem.
93
Architektura komputerów Procesor
Osobnym problemem jest dobór długości kolejki. Jeżeli kolejka
jest krótka, wówczas nawet przy niewielkiej przewadze szybkości
pobierania instrukcji nad szybkością dekodowania i wykonywania
(tzn. gdy szyna jest mało obciążona działa szybko a procesor
wykonuje długie instrukcje i działa wolno) łatwo się zapełnia i
przestaje spełniać swoja rolę.
Z drugiej strony, gdy kolejka jest długa, wówczas Blok
Wyprzedzającego Wprowadzania Instrukcji przez większość czasu
swojej pracy ma do czynienia z kolejką nie zapełnioną i stale
pobiera instrukcje do kolejki obciążając nadmiernie szynę.
94
Architektura komputerów Procesor
Powoduje to globalne spowolnienie systemu.
Jak widać obydwie sytuacje są niekorzystne i należy dobrać
kompromisową długość kolejki. W praktyce stosuje się na ogół
kolejkę, która zawiera kilka pozycji.
95
Architektura komputerów Procesor
Przetwarzanie potokowe
W przetwarzaniu omawianym wyżej, w czasie jednego cyklu
instrukcyjnego cały procesor zajmował się tylko jedna instrukcją.
Gdy dekoder dekodował, układ pobierania już zakończył pracę, a
układ adresowania i pobierania danych oczekiwał na wynik pracy
poprzednika.
Było to tzw. przetwarzanie szeregowe (rys.11).
Rys 11. Wykonywanie faz cyklu instrukcyjnego w sposób
szeregowy
96
Architektura komputerów Procesor
W przetwarzaniu tym wynik otrzymujemy w fazie ZW, co
następuje jeden raz w każdym cyklu instrukcyjnym. Wielką zaletą
takiego przetwarzania jest to, że dopuszcza dowolne uzależnienia
rejestrowe instrukcji pózniej wykonywanej od wcześniej
wykonywanej, np. wynik obliczony w WI1 i zapisany w ZW1 może
być argumentem następnej instrukcji pobieranym w fazie PA2.
97
Architektura komputerów Procesor
Inną możliwością jest przetwarzanie równolegle, w którym
wszystkie odpowiadające sobie fazy wszystkich zrównoleglonych
instrukcji są wykonywane równocześnie, jak pokazuje rys. 12.
Rys.12. Wykonywanie faz cyklu instrukcyjnego w sposób
równoległy
98
Architektura komputerów Procesor
System wymaga zwielokrotnienia sprzętu i daje w jednym cyklu
instrukcyjnym tyle wyników ilekrotnie zrównoleglono sprzęt.
Jednak nie dopuszcza on wzajemnych uzależnień rejestrowych
instrukcji, wynik jednej nie może być argumentem innej.
99
Architektura komputerów Procesor
Najczęściej stosowany obecnie jest system przetwarzania
potokowego, w którym jeżeli cykl instrukcyjny jest podzielony na 5
faz, to rozpoczęcie przetwarzania następnej instrukcji następuje z
opóznieniem względem poprzedniej o 1/5 cyklu, czyli np. jeden
takt zegara.
Pokazuje to rys. 13.
Rys.13. Wykonywanie faz cyklu instrukcyjnego w sposób
potokowy
100
Architektura komputerów Procesor
W systemie tym otrzymanie i zapis wyniku ZW następuje co 1/5
cyklu instrukcyjnego, a wiec mamy pięć wyników w czasie jednego
cyklu.
System ten w zasadzie nie wymaga zwielokrotnienia sprzętu a
jedynie zapewnienia, aby każdy z pięciu podukładów procesora
mógł niezależnie od innego wykonywać dowolną fazę cyklu
podczas gdy pozostałe będą wykonywać pozostałe fazy.
101
Architektura komputerów Procesor
Przetwarzanie potokowe w formie ogólnej stawia duże
wymagania sprzętowi, bo występuje w niej jednoczesność faz PI,
PA i ZW wymagających dostępu do pamięci. Okazuje się to bardzo
trudne w klasycznej architekturze von Neumanna. W praktyce w
różnych architekturach istnieją różne ograniczone wersje tego
przetwarzania.
102
Architektura komputerów Procesor
Architektura Harvard
W klasycznym przetwarzaniu potokowym korzystanie z dostępu
do pamięci może powodować przeciążenie szyny adresowej i
opóznień pobierania i zapisu. Aby zmniejszyć to obciążenie
stosowana jest architektura Harvard. Polega ona na tym, że
rozdzielone zostają obszary adresowania instrukcji oraz danych i
dostępy do instrukcji oraz danych.
103
Architektura komputerów Procesor
Architektura systemu dzieli się na trzy układy:
układ obsługujący instrukcje (licznik rozkazów, bufor pobierania
instrukcji i pamięć programu),
układ obsługujący dane (dekoder, generator adresów danych,
rejestry i pamięć danych),
układ wykonawczy (ALU i blok sterowania).
104
Architektura komputerów Procesor
Rys 14. Architektura Harvard
105
Architektura komputerów Procesor
W tych trzech układach wyróżnić można pięć bloków, które mogą
pracować niezależnie:
blok pobierania instrukcji (PI),
blok dekodowania instrukcji (DI),
blok obliczania adresów danych (AG),
blok pobierania danych i zapisywania wyników (PA),
blok wykonania operacji (WI)
co implikuje możliwość uruchomienia pięciu potoków (rys. 15.):
1. licznik rozkazów wystawia na szynę adresów instrukcji kolejne
adresy, pamięć programu zwraca instrukcje na szynę instrukcji i
zostają one zapisane do bufora pobierania instrukcji aż do
zapełnienia kolejki,
106
Architektura komputerów Procesor
2. dekoder pobiera instrukcje z bufora instrukcji i dekoduje je,
3. blok obliczania adresów określa adresy danych i zapisuje je w
rejestrach adresowych,
4. adresy danych są wystawiane na szynę adresów danych,
pamięć danych zwraca dane na szynę danych i zostają one
zapisane do rejestrów danych (w potoku tym zamiast
pobierania argumentów może być również wykonany zapis
zawartości rejestrów do pamięci),
5. ALU pobiera dane z rejestrów, wykonuje operacje i wynik
zapisuje w rejestrze.
107
Architektura komputerów Procesor
Rys.15. Schemat przetwarzania potokowego w architekturze
Harvard
108
Architektura komputerów Procesor
Architektura typu RISC
Konstruktorzy klasycznych komputerów dążyli do wyposażenia
ich procesorów w możliwie uniwersalny zestaw rozkazów, tak aby
umożliwiał on optymalizację programów pisanych w języku
symbolicznym. Komputery takie nazwano komputerami z
rozbudowaną listą instrukcji CISC (complex instruction set
computer). Lista rozkazów w takich komputerach sięgała 200 lub
300 rozkazów. Różnią się one formatem i wykorzystywanymi
trybami adresowania.
109
Architektura komputerów Procesor
Natomiast w praktyce, częstość występowania różnych
rozkazów i różnych trybów adresowania, upoważnia do
wprowadzenia pewnej ich klasyfikacji, np. pod względem częstości
ich występowania..
Są rozkazy powtarzające się w programach bardzo często, jak
np. rozkazy przesłań, które stanowią ok. 33% wszystkich
występujących rozkazów. Inne rozkaz, jak np. skoki (15%),
rozkazy arytmetyczne i logiczne (15%), rozkazy porównań (10%)
mają mniejszą częstotliwość występowania..
110
Architektura komputerów Procesor
Można także stwierdzić, że wiele rozkazów występuje w
programach jeszcze rzadziej. Są to rozkazy mnożenia, dzielenia,
alokacji stosu itp.
Podobnie pośród trybów adresowania są jedne występujące
częściej (rejestrowe pośrednie i rejestrowe bezpośrednie) i drugie
występujące rzadziej (względne).
Z drugiej strony, wyróżnić można rozkazy wykonywane w
niewielkiej liczbie cykli maszynowych (szczególne znaczenie mają
rozkazy jednocyklowe), czyli rozkazy trwające krótko.
111
Architektura komputerów Procesor
Przesłanki te nasunęły myśl budowania szybkich komputerów,
które wyposażone byłyby w zestaw instrukcji zawierający tylko
rozkazy trwające krótko i często powtarzające się w programach.
Taka filozofia projektantów doprowadziła do powstania
komputerów ze zredukowaną listą instrukcji typu RISC (reduced
instruction set computer). Charakteryzują się one nie tylko
uboższym zestawem rozkazów; ale i rozkazy dobierane są według
pewnych cech.
112
Architektura komputerów Procesor
Lista instrukcji komputerów RISC charakteryzuje się
następującymi cechami:
dostęp do pamięci operacyjnej jest możliwy tylko rozkazami
przesłań,
operandy wszystkich rozkazów znajdują się tylko w rejestrach
procesora,
113
Architektura komputerów Procesor
stosowane są tylko rozkazy o stałym formacie (długości), co
pozwala przyspieszać operację pobierania rozkazów i ułatwia
synchronizację faz w potoku,
stosowanie niewielkiej liczby trybów adresowania pozwala
uprościć sterowanie procesorem i zapewnia dużą szybkość fazy
obliczania adresu danych.
114
Architektura komputerów Procesor
W porównaniu z klasycznym rozwiązaniem von Neumana
architektura komputerów typu RISC odznacza się także cechami, z
których najważniejsze to:
architektura potokowa umożliwiająca skrócenie cyklu dostępu do
pamięci, ponieważ różne bloki procesora jednocześnie wykonują
różne zadania,
zwykle bardzo prosty układ sterowania procesora, gdyż
niewielka liczba rozkazów, stały ich format oraz proste tryby
adresowania pozwalają na zmniejszenie pamięci
mikroprogramów;
115
Architektura komputerów Procesor
rozdzielenie obszarów pamięci dla programów i dla danych
stosujące architekturę typu Harvard,
sprzętowe rozwiązanie stosu ze względu na odpowiednio dużą
liczbę rejestrów procesora, co przyspiesza wywoływanie i
zagnieżdżanie podprogramów.
116
Wyszukiwarka
Podobne podstrony:
C Coding Techniques for Intel Architecture Processorsarchitektura procesora [1] materialy?86 1Architektura von Neumanna, przykładowe procesory[3]Nowe a tradycyjne technologie budowlane w procesie edukacji architektów krajobrazuodpowiedzi katedralne aktualne 2011 katedra projektowania architektonicznegoPROCES INSTYTUCJONALIZACJI I FORMALIZACJI 2011 materiałyProces karny 2011 2012 ćwiczenia03 Procesor i jego architekturaThe Object Oriented Modeling Process Process Patterns For An Architecture Driven ApproachRozdział 01 Komunikacja procesora z innymi elementami architektury komputera5 procesy biochemiczne okrojone 2011 materiaĹ y informprocesyWyświetlacz MMI z 6 kanałowym procesorem dźwięku (9VD)2011 05 PBHP styczeń 2011 odpowiedzi wersja xZARZĄDZANIE WARTOŚCIĄ PRZEDSIĘBIORSTWA Z DNIA 26 MARZEC 2011 WYKŁAD NR 3więcej podobnych podstron