Architektura komputerów Tydzień 5 Jednostka Centralna
Zadania realizowane przez procesor Pobieranie rozkazów Interpretowanie rozkazów Pobieranie danych Przetwarzanie danych Zapisanie danych
Główne zespoły procesora Jednostka arytmetyczno-logiczna Jednostka sterująca Rejestry Wewnętrzna magistrala
Wewnętrzna struktura procesora Jednostka arytmetyczno-logiczna Znaczniki stanu Przesuwnik Układy logiczne i arytmetyczne Układ dopełniania Wewnętrzna magistrala procesora Rejestry Jednostka sterująca Ścieżki sterowania
Organizacja rejestrów 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
Rejestry sterowania i stanu 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.
Rejestry procesora Z8000 Ogólnego przeznaczenia 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Wskaźnik stosu Stan programu Słowo stanu Segment PC Wyrównanie PC Segment PSA Wyrównanie PSA 15 Wskaźnik stosu
Rejestry Intel 8086 Ogólnego przeznaczenia AX Akumulator BX Bazowy CX Zliczający DX Danych Wskaźniki i indeksy SP BP SI DI Stos Baza Źródło Przeznaczenie CS DS SS ES Stan programu Wskaźnik rozkazu Znaczniki stanu Segmentowe Kod Dane Stos Dodatkowy
Rejestry Motoroli 68000 D0 D1 D2 D3 D4 D5 D6 D7 Rejestry danych Stan programu Licznik rozkazów Słowo stanu Rejestry adresu A0 A1 A2 A3 A4 A5 A6 A7 A7' Wskaźnik stosu użytkownika Wskaźnik stosu nadzorcy
Rozszerzenia Intel 80386 Ogólnego przeznaczenia EAX Akumulator EBX Bazowy ECX Zliczający EDX Danych AX BX CX DX Stan programu Wskaźnik rozkazu Znaczniki stanu ESP EBP ESI EDI Wskaźniki i indeksy Stos Baza Źródło Przeznaczenie SP BP SI DI CS DS SS ES FS GS Segmentowe Kod Dane Stos Dodatkowy Dodatkowy Dodatkowy
Cykl rozkazu Pobieranie Wykonywanie Przerwanie Adresowanie pośrednie
Graf stanów cyklu rozkazu Pobieranie Przerwanie Adresowanie pośrednie Wykonywanie
Przepływ danych Pobieranie rozkazu Adresowanie pośrednie Pobieranie argumentu Adresowanie pośrednie Zapisywanie argumentu Operacje zewnętrzne - dostęp do pamięci Zgłoszenie zapotrzebowania na rozkaz Zgłoszenie zapotrzebowania na argument Wiele argumentów Wiele wyników Obliczanie adresu rozkazu Dekodowanie operacji Obliczenie adresu argumentu Operacja na danych Obliczenie adresu argumentu Sprawdzenie wystąpienia przerwania Przerwanie Następny rozkaz Brak przerwań Operacje wewnętrzne procesora
Przetwarzanie potokowe Pobranie rozkazu (FI) Dekodowanie rozkazu (DI) Obliczanie argumentów (CO) Pobieranie argumentów (FO) Wykonanie rozkazu (EI) Zapisanie argumentu (WO)
Przebieg czasowy Czas: Rozkaz 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 9 10 11 12 FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO
Wpływ rozgałęzienia warunkowego Czas: Rozkaz 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 11 12 FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO FI DI CO FI DI FI FI 13 14 DI CO FO EI WO FI DI CO FO EI WO
Postępowanie z rozgałęzieniami zwielokrotnienie strumienia pobieranie docelowego rozkazu z wyprzedzeniem bufor pętli przewidywanie rozgałęzienia opóźnione rozgałęzienie
Przewidywanie rozgałęzień 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ń