STRUKTURA I DZIAŁANIE PROCESORA
Rejestry procesora:
- widzialne dla użytkownika – służą do zapisywania danych
- stanu i sterowania – służą do sterowania pracą procesora
Rejestry widzialne:
- ogólnego przeznaczenia
- wyspecjalizowane
Potokowe przetwarzanie rozkazów:
- stosuje się w celu przyśpieszenia działania procesora
- oznacza podział cyklu rozkazu na pewną liczbę oddzielnych etapów realizowanych szeregowo, takich jak pobranie rozkazu, dekodowanie, określanie adresu argumentu, dzięki temu każdy etap może być realizowany w odniesieniu do innego rozkazu
Organizacja procesora
Zadania jakie musi realizować procesor:
- pobieranie rozkazów
- interpretowanie rozkazów
- pobieranie danych z pamięci lub we/wy
- przetwarzanie danych
- zapisywanie danych
Główne zespoły procesora:
a) jednostka arytmetyczno-logiczna (ALU) – wykonuje rzeczywiste obliczenia (arytm-log) i przetwarza dane
b) jednostka sterująca (CU) – steruje ruchem rozkazów i danych i steruje pracą ALU
c) rejestry – pamięć wewnętrzna procesora
d) wewnętrzna magistrala procesora – łączy elementy
Wewnętrzna magistrala procesora:
- łączy ona podstawowe komponenty procesora
- jest potrzebna bo ALU pobiera dane tylko z pamięci wewnętrznej procesora
Jednostka arytmetyczno-logiczna składa się z:
- znacznik stanu
- przesuwnik
- układ dopełniania
- układy logiczne i arytmetyczne
Organizacja rejestrów
Podział rejestrów procesora:
- widzialne dla człowieka – umożliwiają programistą korzystanie z nich w programowaniu
- stanu i sterowania – używane przez jednostkę sterującą do sterowania pracą procesora
Rejestry widzialne dla użytkownika
To taki do którego programista może się odwołać za pomocą języka maszynowego, którym posługuje się procesor.
Podział rejestrów widzialnych:
- ogólnego przeznaczenia czyli robocze – mogą być im przypisane dowolne dane, rozkazy, operacje, czasem trochę ograniczone
- danych – tylko do przechowywania danych
- adresów – przypisane odpowiednim trybom adresowania lub ogólnie wszystkim adresowaniom
- kodów warunkowych – zawierają flagi (znaczniki stanu) powstałe w wyniku operacji w procesorze, nie mogą być zmieniane
przez programistę
Przykłady rejestrów:
a) wskaźnik segmentu – w maszynach z adresowaniem segmentowym rejestr ten zachowuje adres podstawy segmentu
b) rejestry indeksowe – używane do adresowania indeksowego
c) wskaźnik stosu – obsługa stosu
Problemy projektowe:
- ilość rejestrów
- czy ogólne czy wyspecjalizowane
- długość rejestrów
Rejestry sterowania i stanu
Rodzaje rejestrów:
a) licznik programu (PC) – zawiera adres rozkazu kolejnego do pobrania
b) rejestr rozkazu (IR) – zawiera ostatnio pobrany rozkaz
c) rejestr adresowy pamięci (MAR) – zawiera adres lokacji w pamięci
d) rejestr buforowy pamięci (MBR) – zawiera dane odczytane ostatnio lub zapisane
- MBR jest połączony bezpośrednio z magistralą danych a MAR z magistralą adresową
- licznik PC jest zwiększany po każdym pobranym rozkazie, a także zmieniany przy rozgałęzieniach
- mogą istnieć rejestry pośrednie na wejściu i wyjściu do ALU (buforujące)
Słowo stanu programu (PSW) – rejestr w procesorze, zawierający informacje o stanie, zawarte są tam znaczniki stanu, flagi, kody warunkowe, np.: znak, zero, przepełnienie, równość, przeniesienie, zwolnienie przerwania, nadzorca
Inne rejestry:
- wskaźnik tablicy stron
- rejestr do obsługi stosu
- rejestry we/wy
Cykl rozkazu
Cykl pośredni
Polega na pobieraniu z pamięci argumentów do wykonania rozkazu w adresowaniu pośrednim.
Przepływ danych
Cykl rozkazu może wywoływać:
- odczytanie, zapisanie do rejestrów
- odczytanie zapisanie do pamięci
- przeprowadzenie operacji w ALU
- operację we/wy
Dokładniejszy opis cyklu rozkazu
- odczytanie adresu z pamięci
- licznik PC zawiera adres następnego rozkazu do pobrania
- adres ten przenoszony jest do MAR i umieszczany na szynie adresowej
- adres ten jest przenoszony do IR
- PC przyrasta o 1
- jednostka sterująca bada zawartość rejestru IR, czy ma specyfikatory argumentu adresowania pośredniego
- jak tak to jest realizowany cykl pośredni
- do MAR przenosi się N najbardziej znaczących bitów MBR, zawierających adres argumentu
- jednostka sterująca zgłasza zapotrzebowanie na odczyt z pamięci w celu wprowadzenia argumentu do MBR
Cykl przerwania:
- zawartość PC ładowana do MBR w celu zapisania kontekstu procesu
- adres miejsca gdzie ma być to zapisane ładowany do MAR
- zapis tego
- do PC ładuje się adres rozkazu przerwania
- realizacja rozkazu przerwania
- przywrócenie (np. ze stosu) adresu rozkazu do PC
- powrót do realizacji poprzedniego programu
Potokowe przetwarzanie rozkazów
Strategia potokowego przetwarzania:
- podział cyklu rozkazu na pojedyncze fragmenty
- praca nad różnymi fragmentami różnych procesów jednocześnie, np. jak wykonuje się jeden proces i nie korzysta akurat
wtedy z pamięci głównej, to można ładować już kolejny do rejestru IR (pobieranie z wyprzedzeniem, na zakładkę)
- powoduje to równoległą pracę nad procesami i przyspieszenie realizacji procesów
Co może spowolnić pracę:
- przerwania
- rozgałęzienia
- nierówny czas trwania etapów (oczekiwanie)
- jednoczesna chęć dostępu do pamięci głównej przez etapy
Sposoby radzenia sobie z rozkazami rozgałęzień w potokowym przetwarzaniu:
- zwielokrotnione strumienie
- pobieranie docelowego rozkazu występującego po rozgałęzieniu z wyprzedzeniem
- bufor pętli czyli mała podręczna pamięć, zawiera n ostatnio pobranych rozkazów
- przewidywanie rozgałęzień
Tablica historii rozgałęzień:
- każda komórka zawiera 3 elementy: adres rozgałęzienia, jego rozkaz, adres następnego rozkazu
- służy zapamiętywaniu historii rozgałęzień
Opóźnione rozgałęzienie:
- zmiana kolejności rozkazów, tak żeby te z rozgałęzieniami występowały na końcu
Zredukowana liczba rozkazów:
Architektura RISC:
- rodzaje argumentów i częstość używania determinują organizację pamięci, służącej do ich przechowywania
- szeregowanie rozkazów określa organizację sterowania i przetwarzania potokowego
- zredukowana liczba rozkazów
- redukcja trybów adresowania, prostota
- ograniczenie komunikacji między pamięcią i procesorem
- wiele instrukcji przypisywania
- przetwarzanie potokowe
- wielka liczba rejestrów lub zastosowanie kompilatora, który optymalizuje ilość rejestrów
- nacisk na optymalizację potoku rozkazów
Architektura CISC:
- zastosowanie większej ilości rozkazów
- duża liczba trybów adresowania
- mniejsza częstotliwość taktowania procesora
- mała optymalizacja
- rozkazy bardziej złożone
- programy miały być mniejsze i szybciej realizowane
Własności architektur zredukowanej liczby rozkazów:
- dane z rejestru do rejestru
- jeden rozkaz na cykl
- proste tryby adresowania
- proste formaty rozkazów
Architektura von Neumanna:
Polega na ścisłym podziale komputera na trzy podstawowe części:
- procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna)
- pamięć komputera (zawierająca dane i sam program)
System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien:
- mieć skończoną i funkcjonalnie pełną listę rozkazów
- mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie
w pamięci w sposób identyczny jak danych
- dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora
- informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych
instrukcji w procesorze.
Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność.
System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacząć je wykonywać.
Model komputera wykorzystującego architekturę von Neumanna jest często nazywany przykładową maszyną cyfrową (PMC).
Xzsde34Xzsde34
Angielskie zwroty:
CISC – complex instruction set computer
RISC – reduced instruction set computer