Egzamin, A. Podstawy systemów komputerowych, architektura komputerów, A


  1. Podstawy systemów komputerowych, architektura komputerów

        1. Maszyna von Neumanna: Ogólna idea maszyny liczącej wg koncepcji von Neumanna. Podstawowy format rozkazu maszynowego.

4 podstawowe funkcje architektury von Neumanna:

Przetwarzanie, przechowywanie, przekazywanie informacji oraz automatyczne sterowanie swego działania.

0x08 graphic
0x01 graphic

Cechy architektury von Neumana:

CPU składa się z:

Podstawowy format rozkazu maszynowego:

Rozkaz maszynowy jest to działanie procesora określone przez rozkazy, które on wykonuje. Kolejność wykonywania rozkazów zależy od ich umieszczenia w programie (kolejne rozkazy są umieszczane w kolejnych komórkach pamięci a zmiana tej zasady może być dokonana przez sam program - rozkaz skoku). Procesor odczytuje kolejne rozkazy z pamięci wysyłając odpowiednie adresy komórek pamięci. Pamięć instrukcji wewnętrznych i danych jest wspólna.

Lista rozkazów komputera zachodzi wtedy, gdy procesor może realizować wiele funkcji, co znajduje odbicie w różnorodności definiowanych dla niego rozkazów.

Cykl rozkazu - przetwarzanie wymagane dla pojedynczego rozkazu. Najprostszy cykl rozkazu ma dwa kroki: Fetch - pobranie, Execute - wykonanie

        1. System przerwań: Metody obsługi zdarzeń w urządzeniach wejścia/wyjścia. Pojęcie i rola systemu przerwań. Współdziałanie sprzętu i oprogramowania przy obsłudze przerwań.

Przerwanie - zawieszenie procesu spowodowane przez zdarzenie zewnętrzne w stosunku do tego procesu i wykonanie w taki sposób, że proces może być wznowiony.

Istnieją dwa rodzaje przerwań: przerwania sprzętowe i systemowe.

Przerwania sprzętowe wywoływane są w krytycznych sytuacjach (na żądanie urządzeń zewnętrznych), np. gdy naciśnięto klawisz Ctrl+Break na klawiaturze, lub gdy jest błąd parzystości pamięci.

Ze względu na to, że w jednej chwili może zgłosić kilka urządzeń żądanie o przerwanie, a procesor w danej chwili może obsłużyć tylko jedno z nich, każdemu przerwaniu sprzętowemu przyporządkowano pewien numer (priorytet). Numer ten mówi, w jakiej kolejności należy wykonywać przerwania, np., jeśli w tej samej chwili zgłosi żądanie o przerwanie klawiatura i zegar, procesor najpierw wykona przerwanie zegarowe, ponieważ ma większy priorytet (0), a dopiero później przerwanie klawiatury (priorytet 1).

Przerwania sprzętowe oznacza się jako IRQx, gdzie x jest numerem priorytetu. Przerwanie o najwyższym priorytecie (IRQ0) ma numer 8 i jest to przerwanie zegarowe. Przerwania sprzętowe mogą być maskowalne lub niemaskowalne.

Przerwania maskowane można wstrzymać lub zablokować.

Przerwanie niemaskowalne (ang. NMI - Non-Maskable Interrupt) - specjalny rodzaj przerwania występujący w większości architektur procesorów. Tym, co odróżnia je od zwykłego przerwania, jest brak możliwości zignorowania (zamaskowania) go. Obecnie przerwań NMI używa się głównie do debugowania kodu programów, który może wyłączać zwykłe przerwania (np. kod systemu operacyjnego).

W trybie rzeczywistym pracy procesora adres procedury obsługi przerwania jest zapisany w tablicy wektorów przerwań. Tablica wektorów przerwań przechowuje adresy poszczególnych procedur obsługi przerwań; przerwania identyfikowane są przez numer (wektor przerwania) i w przypadku procesorów serii x86 jest możliwych do 256 przerwań.

Tablica wektorów przerwań znajduje się w pierwszych 1024 (256 4 Bajtowych adresów procedur obsługi przerwań) komórkach pamięci operacyjnej.

W trybie chronionym (ang. protected) pracy procesora x86 (od procesora i386) mamy do czynienia z tablicą deskryptorów przerwań (ang. Interrupt Descriptor Table, IDT) łączącą każdy wektor wyjątku lub przerwania z deskryptorem bramy (deskryptory bram to deskryptory pozwalające na kontrolowany dostęp do segmentów kodu o różnych stopniach uprzywilejowana) dla procedury lub zadania (ang. task) obsługującym dany wyjątek lub przerwanie. Położenie IDT jest zapisane w rejestrze tablicy deskryptorów przerwań (ang. Interrupt Descriptor Table Register, IDTR). IDT zawiera do 256 wpisów zwanych deskryptorami

We/wy sterowane przerwaniami:

  1. Procesor wydaje modułowi rozkaz we/wy i przechodzi do innych zadań

  2. Kiedy moduł I/O jest gotowy do wymiany danych z procesorem (czyli np. wczytał już dane z urządzenia peryferyjnego) wysyła żądanie obsługi przerwania i czeka aż procesor będzie gotowy do wymiany danych.

  3. Gdy następuje przerwanie do modułu I/O procesor zachowuje kontekst bieżącego programu tj. min. zawartość licznika programu i rejestrów procesora i zgłasza chęć transmisji

  4. Moduł I/O wystawia dane na magistralę, po czym jest gotowy do kolejnej operacji we/wy

  5. Procesor transmituje dane, a następnie odnawia kontekst poprzedniego programu i wznawia jego działanie.

We/wy sterowane przerwaniami jest wydajne, lecz traci się dużo czasu procesora, który musi nadzorować każde słowo transmisji pomiędzy pamięcią a modułami I/O.

        1. Cykl rozkazowy procesora. Pojęcie cyklu rozkazowego; opis faz cyklu rozkazowego, opcjonalne fazy cyklu. Różnica pomiędzy cyklami rozkazowymi procesorów nie posiadających i posiadających system przerwań.

Cykl rozkazu -przetwarzanie wymagane dla pojedynczego rozkazu. Najprostszy cykl rozkazu ma dwa kroki: Fetch- pobranie, Execute - wykonanie

Cykl maszynowy - składa się z kilku cyklów rozkazu każdy z cykli maszynowych traw od 3 do 5 taktów zegara. Najkrótszy cykl rozkazowy to 4 takty najdłuższy to 17 taktów (5 cykli maszynowych - jeden 5 taktów i 4 po trzy takty)

Cykl pobrania:

Cykl wykonania - cztery kategorie:

Cykle są wykonywane przez procesor. Elementem odpowiedzialnym za realizację cyklu rozkazowego jest rejestr nazywany np. kodem cyklu rozkazu (ICC), wyznaczającym stan procesora określając, w której części cyklu się znajduje:

00: Pobieranie

01: Adresowanie

10: Wykonywanie

11: Przerwanie

Na końcu każdego z czterech cykli następuje odpowiednie ustawienie rejestru (ICC)

Różnica pomiędzy cyklami rozkazowymi procesorów nie posiadających i posiadających system przerwań:

Występowanie przerwań modyfikuje nieco schemat cyklu rozkazowego. Do cyklu rozkazu dodawany jest Cykl przerwania. W trakcie cyklu przerwania procesor sprawdza czy nie pojawiły się jakieś przerwania. Jeśli przerwania nie są wykonywane, procesor pobiera następny rozkaz danego programu, Jeśli natomiast wystąpi zgłoszenie przerwania procesor:

  1. Zawiesza wykonywanie bieżącego programu i zachowuje jego kontekst. Adres następnego rozkazu (zawartość licznika) a także dane zawarte w rejestrach zrzucane są na stos systemowy

  2. Ustawia licznik na początkowy adres obsługi przerwań.

Następnie procesor pobiera pierwszy rozkaz z programu obsługi przerwań, który podejmuje niezbędne do obsłużenia przerwania działania.

0x08 graphic
0x01 graphic

        1. Reprezentacje liczb stosowane w arytmetyce procesorów. Arytmetyka liczb całkowitych - operacje dodawania, odejmowania i mnożenia (algorytm Bootha).

REPRZENTACJE LICZB:

Dwójkowy system liczbowy (inaczej binarny) to pozycyjny system liczbowy, w którym podstawą pozycji są kolejne potęgi liczby 2. np.:

111102 = 11110 = 1x24 + 1x23 + 1x22 + 1x21 + 0x20 = 1 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 0 x 1 = 16 + 8 + 4 + 2 = 30

System szestnastkowy (hex): pozycyjny system liczbowy, w którym podstawą pozycji są kolejne potęgi liczby 16. np.:

A106 = 10x163 + 1x162 + 0x161 + 6x160 = 10 x 4096 + 1 x 256 + 0 x 16 + 6 x 1 = 40960 + 256 + 0 + 6 = 41222

10101101= 1x27 + 0x26 + 1x25 + 0x24 + 1x 23 + 1x22 + 0x21 + 1 x20 = 173

Aby z liczby dziesiętnej uzyskać odpowiadającą jej liczbę dwójkową należy dzielić daną liczbę przez 2, wyniki kolejnych dzieleń zapisujemy w słupku reszty z dzieleń zapisujemy po prawej stronie za kreską, kolejne dzielenia wykonujemy do momentu aż uzyskamy wynik z dzielenia mniejszy niż 1.

0x01 graphic

Wynik czytany od dołu: 173 = 10101101

1001 1111 0100 1010 1111 = 9F4AF

9 F 4 A F

10AC85 = 0001 0000 1010 1101 1000 0101

Analogicznie jak z dwójkowym tylko zamiast potęgi 2 wstawiamy potęgi liczby 16.

Aby Przedstawić liczbę ujemną musimy zastosować pewne przekształcenia. W systemie uzupełnień do dwóch wiąże się to ze zmianą wszystkich bitów liczby na przeciwne (jedynki zamieniamy na zera, zera na jedynki) a następnie do tak otrzymanej liczby należy dodać liczbę 1.


00001010 - liczba +10

11110101 - zamieniamy wszystkie bity na przeciwne następnie do tak uzyskanej wartości należy dodać jeden (1).

0x01 graphic


Wynikiem jest liczba: 11110110, czyli w systemie dziesiętnym -10. W tego typu zapisie najstarszy bit liczby (pierwszy od lewej) oznacza znak liczby (0-dodatnia, 1-ujemna).

        1. Przetwarzanie potokowe i jego wpływ na zwiększenia szybkości działania jednostki centralnej komputera.

Przetwarzanie potokowe jest jednym ze sposobów równoległego przetwarzania danych informatycznych.

Sposób działania: cykl przetwarzania dzieli się na odrębne bloki przetwarzania, z których każdy oprócz pierwszego i ostatniego jest połączony z następnym. Dane po przejściu przez jeden blok trafiają do następnego, aż osiągną ostatni blok.

Dzięki temu, że przetwarzanie odbywa się w rozdzielnych blokach system może przetwarzać jednocześnie tyle danych ile zdefiniowano bloków.

Cykl pobieranie dekodowane wykonanie zapisanie

1

Rozkaz1

2

Rozkaz2

Rozkaz1

3

Rozkaz3

Rozkaz2

Rozkaz1

4

Rozkaz4

Rozkaz3

Rozkaz2

Rozkaz1

5

Rozkaz5

Rozkaz4

Rozkaz3

Rozkaz2

Przetwarzanie może być zakłócone przez rozkazy skoku oraz przez rozkazy wymagające do przetwarzania więcej niż jednego cyklu rozkazowego.

Architektura superpotokowa: pozwala na osiągnięcie wyższych częstotliwości taktowania zegara potoku od zegara zewnętrznego, wykonywanie rozkazów dzielone jest na większą ilość faz.

        1. Podstawowe różnice w architekturze procesorów typu RSC i CISC.

Charakterystyka procesorów CISC:

  1. Duża liczba rozkazów (typowo od 100 do 200)

  2. Rozkazy realizujące specjalizowane zadania obok rozkazów przesłąń

  3. Duża liczba trybów adresowania (5-20)

  4. Mnogość formatów i czasów wykonania rozkazów

  5. Zwykle mikroprogramowana jednostka sterująca

Charakterystyka procesorów RISC:

  1. Niewiele rozkazów

  2. Rozkazy wykonywane w jednym cyklu rozkazowym

  3. Niewiele formatów rozkazu

  4. Operacje przesłań do pamięci jedynie STORE i LOAD czyli rozdzielenie rozkazów operujących na pamięci od reszty rozkazów

  5. Wiele uniwersalnych rejestrów

  6. Argumenty dla operacji - przeważnie zawartość rejestrów

  7. Układowa jednostka sterująca

  8. Często architektura realizująca przetwarzanie potokowe. Przez zastosowanie architektury potokowej uzyskujemy w procesorach RISC możliwość wykonywania rozkazów w jednym cyklu zegara, a dokładniej kończenia jednego rozkazu w jednym cyklu zegara przy spełnieniu określonych warunków

  9. Zastosowanie pipeliningu w procesorach RISC prowadzi do konieczności statycznego (na poziomie kompilacji) lub dynamicznego (w czasie wykonywania) przewidywania wyników rozkazów skoków warunkowych.

U podstaw idei RISC leży dążenie do zwiększenia wydajności procesorów przy zastosowaniu tej samej technologii półprzewodników. Dzięki rozbiciu przetwarzania rozkazu na kilka prostych etapów, które mogą być wykonywane przez stosunkowo proste i w znacznym stopniu autonomiczne jednostki, bardziej nadające się do zrealizowania w nowocześniejszej technologii niż złożona i bardziej związana struktura procesora CISC, łatwiej można skonstruować CPU z większą częstotliwością zegara taktującego. Dlatego procesory RISC są dużo wydajniejsze od procesorów CISC.

        1. Organizacja (przyczyny i konsekwencje) stosowania we współczesnych procesorach pamięci typu cache.

Pamięć cache (pamięć podręczna procesora, systemu, innych urządzeń) to rodzaj pamięci tymczasowej pośredniczącej w operacjach pomiędzy innymi, zazwyczaj wolniejszymi urządzeniami lub rodzajami pamięci przyspieszająca dostęp wolniejszej pamięci lub innego urządzenia.

Pamięć cache procesora

Pamięć podręczna procesora pośredniczy w wymianie danych pomiędzy rejestrami procesora, a pamięcią operacyjną komputera (zarówno RAM jak i ROM). Dostęp do pamięci cache jest dla procesora przezroczysty, gdyż procesor adresuje pamięć bez zmian. Dane w pamięci cache są umieszczane przez dodatkowe układy (umieszczone na płycie głównej lub procesorze) śledzące pracę procesora i umieszczające potrzebne dane w pamięci podręcznej.

Są trzy typy (poziomy) pamięci podręcznej procesora:

Pamięć podręczna najniższego poziomu (L1) jest stosunkowo mała, ale dane w niej zgromadzone są szybko dostępne dla procesora. W wypadku braku potrzebnych w danym momencie danych (braku trafienia) następuje odwołanie do pamięci kolejnych, wyższych poziomów. Po ich odczycie następuje przepisanie do niższych poziomów, tak by były szybciej dostępne w kolejnych odwołaniach. Jeśli dane nie są aktualnie buforowane w cache, następuje odczyt bloku pamięci głównej RAM, który je zawiera i wymiana zawartości cache.

Podstawy systemów komputerowych, architektura komputerów

3

Wyjście

Wejście

ALU

Programowa jednostka sterująca

Pamięć główna

START

STOP

Pobierz następny rozkaz

Wykonaj rozkaz

Sprawdź czy nie ma przetwarzania; przetwórz przetwarzanie

Cykl pobierania

Cykl wykonania

Przetwarzanie dozwolone

Cykl przerwania

Przerwanie zablokowane



Wyszukiwarka