Architektura komputerów Tydzień 5
Jednostka Centralna
Zadania realizowane przez procesor
● Pobieranie rozkazów
● Interpretowanie rozkazów
● Pobieranie danych
● Przetwarzanie danych
● Zapisanie danych
● Jednostka arytmetyczno-logiczna
● Jednostka sterująca
● Rejestry
● Wewnętrzna magistrala
Wewnętrzna struktura procesora
Jednostka arytmetyczno-logiczna ra
Znaczniki stanu
cesoro
Przesuwnik
Rejestry
Układy logiczne
istrala p
i arytmetyczne
ag
m
na
Układ dopełniania
trz
nę
ew
Jednostka
W
sterująca
Ścieżki
sterowania
● Rejestry widzialne dla użytkownika. Mogą być wykorzystywane przez programistę do przetwarzania danych. Programista ma bezpośredni wpływ na ich zawartość.
● Rejestry sterowania i stanu. Używane przez jednostkę sterującą. Przechowują informacje niezbędne dla działania procesora. Programista nie może bezpośrednio manipulować ich
zawartością
Rejestry widzialne dla programisty
● ogólnego przeznaczenia lub robocze -
uniwersalne
● danych – tylko do przetwarzania danych
● adresów – do przechowywania adresów lub ich części (np. wskaźniki segmentów lub indeksy)
● znaczniki stanu – kody warynkowe, flagi wskazujące wynik ostatniej operacji
● Licznik programu lub instrukcji –
zawiera adres rozkazu do pobrania.
● Rejestr rozkazu – zawiera ostatnio pobrany rozkaz.
● Rejestr adresowy pamięci – zawiera adres argumentu do pobrania lub zapisania.
● Rejestr buforowy pamięci – zawiera słowo danych do zapisania lub pobrane z pamięci.
Słowo stanu programu Zawiera flagi i inne informacje o stanie procesora (np. tryb pracy):
● Znak – bit znaku ostatniej operacji arytm.
● Zero – czy wynik równy zero.
● Przeniesienie – czy było przeniesienie.
● Równość – przy porównaniu argumentów.
● Przepełnienie – przekroczenie zakresu.
● Blokowanie przerwania – obsługa przerwań.
● Nadzorca – tryb działania procesora.
Ogólnego przeznaczenia
Stan programu
0
Słowo stanu
1
Segment PC
2
Wyrównanie PC
3
Segment PSA
4
Wyrównanie PSA
5
6
7
8
9
10
11
12
13
14
Wskaźnik stosu
15
Wskaźnik stosu
Ogólnego przeznaczenia
Stan programu
AX
Akumulator
Wskaźnik rozkazu
BX
Bazowy
Znaczniki stanu
CX
Zliczający
DX
Danych
Wskaźniki i indeksy
Segmentowe
SP
Stos
CS
Kod
BP
Baza
DS
Dane
SI
Źródło
SS
Stos
DI Przeznaczenie
ES
Dodatkowy
Rejestry danych
Rejestry adresu
D0
A0
D1
A1
D2
A2
D3
A3
D4
A4
D5
A5
D6
A6
D7
A7 Wskaźnik stosu użytkownika
A7' Wskaźnik stosu nadzorcy
Stan programu
Licznik rozkazów
Słowo stanu
Ogólnego przeznaczenia
Stan programu
EAX
Akumulator
AX
Wskaźnik rozkazu
EBX
Bazowy
BX
Znaczniki stanu
ECX
Zliczający
CX
EDX
Danych
DX
Wskaźniki i indeksy
Segmentowe
ESP
Stos
SP
CS
Kod
EBP
Baza
BP
DS
Dane
ESI
Źródło
SI
SS
Stos
EDI Przeznaczenie
DI
ES
Dodatkowy
FS
Dodatkowy
GS
Dodatkowy
● Pobieranie
● Wykonywanie
● Przerwanie
● Adresowanie pośrednie
Graf stanów cyklu rozkazu Pobieranie
Przerwanie
Adresowanie
pośrednie
Wykonywanie
Adresowanie pośrednie
Adresowanie pośrednie
Operacje
zewnętrzne
Pobieranie
Pobieranie
Zapisywanie
- dostęp do
rozkazu
argumentu
argumentu
pamięci
Zgłoszenie
Zgłoszenie
Wiele
zapotrzebo-
zapotrzebo- argu-
Wiele
wania na
wania na
mentów
wyników
rozkaz
argument
Obliczanie
Dekodo-
Obliczenie
Obliczenie
Operacja
Sprawdzenie
adresu
wanie
adresu
adresu
wystąpienia
Przerwanie
na danych
rozkazu
operacji
argumentu
argumentu
przerwania
Brak
Następny
przerwań
rozkaz
Operacje wewnętrzne procesora
● Pobranie rozkazu (FI)
● Dekodowanie rozkazu (DI)
● Obliczanie argumentów (CO)
● Pobieranie argumentów (FO)
● Wykonanie rozkazu (EI)
● Zapisanie argumentu (WO)
Przebieg czasowy Czas: 1 2 3 4 5 6 7 8 9 10 11 12
Rozkaz
1
FI DI CO FO EI WO
2
FI DI CO FO EI WO
3
FI DI CO FO EI WO
4
FI DI CO FO EI WO
5
FI DI CO FO EI WO
6
FI DI CO FO EI WO
7
FI DI CO FO EI WO
Wpływ rozgałęzienia warunkowego
Czas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Rozkaz
1
FI DI CO FO EI WO
2
FI DI CO FO EI WO
3
FI DI CO FO EI WO
4
FI DI CO FO
5
FI DI CO
6
FI DI
7
FI
8
FI DI CO FO EI WO
9
FI DI CO FO EI WO
rozgałęzieniami
● zwielokrotnienie strumienia
● pobieranie docelowego rozkazu z wyprzedzeniem
● bufor pętli
● przewidywanie rozgałęzienia
● opóźnione rozgałęzienie
● Przewidywanie zawsze występującego skoku
● Przewidywanie nigdy nie występującego skoku
● Przewidywanie za pomocą kodu
operacji
● Przełącznik nastąpiło/nie nastąpiło
● Tablica historii rozgałęzień