ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to
Transkrypt
ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to
ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE ARCHITEKTURA PROCESORÓW ARCHITEKTURA PROCESORA, poza blokami funkcjonalnymi, to przede wszystkim: a. formaty rozkazów, b. lista rozkazów, c. rejestry dostępne programowo, d. sposoby adresowania pamięci, e. sposoby współpracy procesora z układami wejścia/wyjścia i pamięcią, f. przebiegi czasowe sygnałów na końcówkach procesora. FORMATY DANYCH I ROZKAZÓW Podstawową jednostką informacji cyfrowej dla procesora jest słowo, czyli 1 lub kilka bajtów, które procesor może wymienić z pamięcią RAM w wyniku jednej operacji czytania lub pisania. Długość słowa (liczba bitów) procesora jest równa liczbie linii jego magistrali danych. Od długości słowa procesora zależy m.in. moc obliczeniowa procesora i większa różnorodność technik adresowania. Im większa długość słowa tym większa różnorodność, a tym samym efektywność rozkazów i technik adresowania. W zależności od długości słowa rozróżnia się procesory: 4-bitowe, np. Intel 4004, 8bitowe, np. Intel 8080, 16-bitowe, np. Intel 8086, 32-bitowe, począwszy od Intela 386, 64bitowe. ROZKAZY różnych procesorów mogą mieć różne struktury. Podstawowe to rozkazy składające się z 2 części: - pola kodu operacji – informacja dla układu sterowania o rodzaju wykonywanej operacji, - pola adresowego – zawierającego adres operandu (np. argument funkcji) lub informacje potrzebne do jego wyznaczenia KOD OPERACJI ADRES OPERANDU Rozkazy składające się z dwóch pól są podstawowymi rozkazami dla procesorów 8bitowych, w których istniały również rozkazy bezadresowe. W dalszych procesorach rozkazy są bardziej rozbudowane, spotyka się m.in. rozkazy dwu- lub trójadresowe przedstawiane za pomocą kilku (dwóch-trzech) słów. Sterowanie rozkazami o złożonej strukturze byłoby co najmniej kłopotliwe. 1 ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE ARCHITEKTURA PROCESORÓW KOD OPERACJI ADRES I-ego ADRES II-ego OPERANDU OPERANDU ADRES WYNIKU ADRES NASTĘPNEGO ROZKAZU Aby uprościć działanie część informacji potrzebnej do wykonania następnego rozkazu nie jest umieszczana bezpośrednio w rozkazie, lecz pośrednio na drodze przestrzegania określonych zasad funkcjonowania procesora: 1. Ponieważ każdy mikroprogram zawiera fragmenty realizowane zawsze w taki sam sposób, przyjmuje się, o ile to możliwe, że kolejno realizowane rozkazy znajdują się w następujących po sobie komórkach pamięci. Adresy kolejnych komórek pamięci przechowywane są w rejestrze zwanym licznikiem rozkazów, którego zawartość jest zwiększana o 1 podczas fazy pobierania kolejnego rozkazu. 2. Wykorzystuje się rozkazy sterujące, tzn. zmieniające stan licznika rozkazów zgodnie z żądaniem programisty o więcej niż 1. Dzięki temu możliwe jest przerwanie sekwencji rozkazów z kolejnych komórek pamięci, np. wtedy, kiedy dalszy ciąg programu zależy od poprzednio uzyskanego wyniku (rozkazy skoku). 3. Wynik operacji pozostaje w jednym z rejestrów procesora, nie przesyła się go do dowolnej komórki pamięci. 4. Ze względu na iterakcyjność programów, tzn. wynik poprzedniej operacji staje się operandem następnej operacji, nie umieszcza się adresu drugiego operandu w pamięci (nie jest więc potrzebne pole z adresem do danej komórki), lecz używa się jako drugiego operandu zawartości akumulatora. PRZETWARZANIE ROZKAZÓW - CYKL ROZKAZOWY Wszystkie operacje realizowane przez procesor są synchronizowane przez sygnały generatora cyklu podstawowego. Generator może być elementem zewnętrznym, przyłączanym do odpowiednich końcówek procesora, albo może być zintegrowany z procesorem. Cykl rozkazowy (ang. instruction cycle) – obejmuje wszystkie kolejne cykle podstawowe (zwane również taktami lub stanami) potrzebne do pobrania i wykonania określonego rozkazu. Różne rozkazy wymagają różnej liczby cykli rozkazowych. 2 ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE ARCHITEKTURA PROCESORÓW Wzrost mocy obliczeniowej mierzy się ilością wykonywanych operacji w jednostce czasu. Zwiększenie częstotliwości taktującej (skrócenie czasu trwania pojedynczego najbardziej oczywistym gwarantującym przyrost warunkiem,, że nadążają cyklu) jest czynnikiem wydajności za nim (pod układy otaczające procesor, głównie pamięć). SPOSOBY ADRESOWANIA PAMIĘCI OPERACYJNEJ Zadaniem procesora jest przetwarzanie danych złożonych w pamięci. Wykonywane operacje mają charakter dwukierunkowy: zapis, odczyt. Przy zapisie procesor wystawia słowo na magistralę danych a stosowny adres na magistrale adresową. Podczas odczytu końcówki adresowe procesora określają adres w pamięci i zwartość wskazanej komórki sczytywana jest przez procesor z magistrali danych. Całość nadzorowana jest przez sygnały kontrolno-sterujące. Fizyczna przestrzeń adresowa, jaką mogą zaadresować procesory zależy od ilości linii adresowych: - procesory 16-bitowe (od 8088 do 80186) miały 20 końcówek – 220=1MB - procesory 32-bitowe(od 80386DX) mają już 32 końcówki – 232=4GB Adresowaniem nazywa się wyznaczenie adresu komórki pamięci zawierającej operand na podstawie informacji zawartej w rozkazie. Podstawowe (historyczne) sposoby adresowania w procesorach: - adresowanie bezpośrednie – umieszczenie adresu bezpośrednio w rozkazie. Problemy – długość adresu a rozmiar pamięci, np. 1B dla adresu to pamięć, którą można zaadresować to tylko 28=256, w związku z tym, potrzeba rozkazów 2 lub 3 –słowowych, które są jednak dłużej wykonywane. Ponadto jest to rozwiązanie nieekonomiczne w przypadku programów działających na danych skupionych w pewnym obszarze, a nie rozproszonych po całej pamięci. Rozwiązanie to jest również niedogodne w przypadku modyfikacji programów, szczególnie programów przechowywanych w pamięci ROM. 3 ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE ARCHITEKTURA PROCESORÓW - adresowanie rejestrowe bezpośrednie – operand znajduje się w jednym z rejestrów procesora, adres tego rejestru stanowi część rozkazu. Adresowanie to jest szybsze od adresowania bezpośredniego, ale jest ograniczone do liczby rejestrów procesora. - adresowanie rejestrowe pośrednie – rozkaz zawiera adres rejestru, w którym przechowywany jest adres operandu w pamięci. Szybsze od adresowania bezpośredniego, ograniczone tylko liczbą bitów danego rejestru. - adresowanie względne – adres operandu jest sumą informacji adresowej zawartej w rozkazie, tzw. przesunięcia (ang. offset, displacement) oraz stanu licznika rozkazów. Przy m.-bitowym przesunięciu zakres adresowania rozciąga się wokół komórki zawierającej rozkaz na 2m.-1 bitów w górę (w kierunku wzrostu adresów) i 2m.-1-1 bitów w dół od adresu, pod którym znajduje się realizowany rozkaz. - adresowanie indeksowe – podobne do adresowania względnego, ale rolę licznika rozkazów spełnia rejestr indeksowy. Rejestry indeksowe są rejestrami o długości umożliwiającej zaadresowanie dowolnej komórki pamięci, i których zawartość może być bardzo szybko dodana do przesunięcia. Można je zerować, ładować do pamięci i z akumulatora oraz testować ich zawartość. - adresowanie natychmiastowe – operand zawarty jest „natychmiast” w drugim lub drugim i trzecim słowie rozkazu. Technika bardzo dogodna przy ustawianiu zawartości rejestrów indeksowych lub liczników. Procesory z reguły umożliwiają stosowanie wielu różnych sposobów adresowania. Różnorodność i skuteczność sposobów adresowania jest jednym z ważnych czynników określających wygodę programowania w językach maszynowych i moc obliczeniową procesora. Wynika to m.in. z faktu, że ogromna liczba operacji wykonywanych przez procesor wymaga wyznaczenia adresów operandów. Ze względu na fakt, że architektura procesorów ulegała i ulega ciągłym zmianom, przeliczanie adresów logicznych na rzeczywiste nie jest już takie proste i wyraźne i zależy m.in. od trybu pracy procesora. 1. Tryb rzeczywisty (ang. Real Mode) – procesory 32-bitowe przełącza się w stan pracy procesora 16-bitowego. 2. Tryb chroniony (ang. Protected Mode) – od 80286 – wprowadzony w celu ochrony poszczególnych zadań pracujących pod kontrolą wielozadaniowego systemu operacyjnego. Charakterystyczny jest 4-poziomowy system uprawnień kontrolujący odwołania do danych oraz do kodu. 4 ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE ARCHITEKTURA PROCESORÓW 3. Tryb wirtualny procesora 8086 (ang. Virtual 8086 Mode) – dostępny w procesorach Intela od 80386. Swego rodzaju kombinacja dwóch poprzednich trybów. Każdy z programów użytkowych widzi swój własny procesor 8086 pracujący w trybie rzeczywistym, a elementy z trybu chronionego zapewniają odpowiednie prawa dostępu i uniemożliwiają kolizje między zadaniami. Poza trybem wirtualnym począwszy od modelu 80386 wprowadzono do procesorów Intela stronicowanie (metoda zarządzania pamięcią). Rozmiar stron w 386 jest stały, pamiętany w procesorze i wynosi 4kB, w kolejnych procesorach, np. w Pentium, może być zmieniany od 4kB do 4MB. 5 ARCHITEKTURY KOMPUTERÓW I SYSTEMY OPERACYJNE ARCHITEKTURA PROCESORÓW SPOSOBY WSPÓŁPRACY PROCESORA Z UKŁADAMI WEJŚCIA/WYJŚCIA (ang. Input/Output I/O) Układy I/O to dla procesora po prostu część przestrzeni adresowej, do której odwołuje się za pomocą dwóch specjalnych rozkazów odwołań do portów IN i OUT. Rozkazy te operują tylko i wyłącznie za pośrednictwem akumulatorów, tzn. że nie można przesłać zawartości pamięci bezpośrednio do portu lub skierować zawartości portu do pamięci. Różnice w zapisie/odczycie układów I/O w poszczególnych procesorach: - ilość portów, które mogą zostać zaadresowane: 8086: 64k (20 linii adresowych, ale A16-A19 zawsze = 0), 80386, 80486: 64k portów 8-bitowych, 32k portów 16-bit., 16k portów 32-bit. - w 80386 i 486 dostęp do przestrzeni I/O odbywa się z pominięciem pamięci podręcznej, - Pentium jest zgodny z 486, pomijany cache i wszelkie bufory, ale w dostępie do I/O bierze udział tylko połowa z 64-bitowej magistrali danych. Przerwanie sprzętowe to technika, dzięki której urządzenia zewnętrzne mogą poinformować procesor o skutkach wykonywanych operacji (wykonywanie operacji przez urządzenia zewnętrzne inicjuje procesor), czyli o zakończeniu lub błędzie. Polega to na tym, że urządzenie samo zgłasza wykonanie zadania, a procesor obsługuje je w dogodnym dla siebie momencie, tzn. przerywa realizację wykonywanego procesu i przechodzi do procedury reagującej na zgłoszenie urządzenia. Kod tej procedury zazwyczaj znajduje się w pamięci stałej komputera. Przerwania mają swoje priorytety. Kontroler przerwań obecnie wchodzi w skład chipseta procesora (ang. Chipset – zbiór układów wysokiej skali integracji tworzących „obudowę” procesora)). 6