Architektura komputerów Wykład nr 2: Procesor, cykl programu, przerwania, magistrala systemowa Piotr Bilski.

Download Report

Transcript Architektura komputerów Wykład nr 2: Procesor, cykl programu, przerwania, magistrala systemowa Piotr Bilski.

Architektura komputerów

Wykład nr 2: Procesor, cykl programu, przerwania, magistrala systemowa Piotr Bilski

Maszyna von Neumanna (Princeton)

Jednostka centralna (CPU) MAR PC AC I/O AR MBR ALU I/O BR Magistrala wewn.

IR CU urządzenia wejścia wyjścia pamięć główna

Pojęcie programu

• Programem nazywamy zbiór instrukcji, których wykonanie w określonej kolejności zapewnia odpowiednie przetworzenie informacji.

• Instrukcja (rozkaz) jest słowem maszynowym zawierającym informację o wykonywanej operacji, miejscu w operandy, rezultat i pamięci gdzie znajdują się następny rozkaz.

Wymagania odnośnie systemu komputerowego przetwarzającego program (von Neumann) System komputerowy musi: • Mieć skończoną i funkcjonalnie pełną listę rozkazów; • Mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i przechowywać instrukcje w pamięci w sposób identyczny jak danych; • Dane i instrukcje powinny być jednakowo dostępne dla procesora (poprzez jednoznaczne adresy w pamięci); • Informacja jest przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.

X 1 X 2 X 3 X 4

Program vs. „program” sprzętowy

Y 1 Y 2 X 1 X 2 X 3 X 4 Y 1 Y 2 Hard-wired program Sterowanie 0000: move 4 0001: add 5 0010: store 6 0011: stop

START

Działanie komputera

Cykl przerwania Obsługa przerwań Cykl pobierania Cykl wykonania TAK NIE Pobranie rozkazu Wykonanie rozkazu Dopuszcza przerwania?

STOP

Język przesłań rejestrowych

• Symbole złożone z wielkich liter oznaczają zawartość • M – pamięć • • A, MAR itd. – rejestr  przepisanie • ( ) – adres • 0:7 – zakres bitów słowa pamięci lub rejestru, którego dotyczy operacja Np.: MAR  PC MBR  M(MAR)

Cykl pobrania rozkazu

• Licznik programu (PC) przechowuje adres następnej instrukcji do pobrania (na początku jest to tzw. punkt wejścia) • Procesor pobiera instrukcję spod adresu wskazywanego przez PC • Wartość PC zwiększana jest o 1 (chyba że trzeba inaczej – np. skok) • Instrukcja ładowana jest to rejestru rozkazów (IR) • Procesor dekoduje instrukcję i wykonuje operację z nią związaną

Ilustracja cyklu pobrania rozkazu AC MBR ALU Punkt wejścia MAR  PC PC 100 MAR IR CU MAGISTRALA ADRESOWA Adres Zawartość 100 101 Move 104 Add 105 102 103 104 105 106 Store 106 Stop 3 5

Ilustracja cyklu pobrania rozkazu PC AC MAR IR Move 104 MAGISTRALA DANYCH MBR  M(MAR) MBR Adres Zawartość 100 Move 104 ALU 101 Add 105 102 103 104 Store 106 Stop 3 5 CU ODCZYT 105 106 100 MAGISTRALA STERUJĄCA MAGISTRALA ADRESOWA

Ilustracja cyklu pobrania rozkazu MAGISTRALA DANYCH AC Move 104 MBR ALU PC  PC + 1 101 PC MAR IR 100 CU ODCZYT MAGISTRALA STERUJĄCA Adres Zawartość 100 101 Move 104 Add 105 102 103 104 105 106 Store 106 Stop 3 5 MAGISTRALA ADRESOWA

Ilustracja cyklu pobrania rozkazu MAGISTRALA DANYCH AC Move 104 MBR 101 PC IR  MBR IR ALU Move 104 CU ODCZYT MAGISTRALA STERUJĄCA Adres Zawartość 100 101 Move 104 Add 105 102 103 104 105 106 Store 106 Stop 3 5 MAR 100 MAGISTRALA ADRESOWA

Ilustracja cyklu pobrania rozkazu MAGISTRALA DANYCH AC Move 104 MBR 101 PC ALU Move 104 CU  IR IR CU MAR 100 ODCZYT MAGISTRALA STERUJĄCA Adres Zawartość 100 101 Move 104 Add 105 102 103 104 105 106 Store 106 Stop 3 5 MAGISTRALA ADRESOWA

Cykl wykonania rozkazu

• Procesor – pamięć – transfer danych pomiędzy CPU a pamięcią • Procesor – wejście/wyjście – transfer danych pomiędzy CPU a modułem wejścia/wyjścia • Przetwarzanie danych – działania arytmetyczne lub logiczne na danych • Sterowanie – zmiana kolejności wykonania operacji (np. skok) • Kombinacja powyższych

Ilustracja cyklu wykonania rozkazu MAGISTRALA DANYCH MBR  M(104) 101 PC AC AC  MBR Move 104 MAR IR 3 MBR ALU MAR  IR(104) 104 CU ODCZYT MAGISTRALA STERUJĄCA Adres Zawartość 100 101 Move 104 Add 105 102 103 104 105 106 Store 106 Stop 3 5 104 MAGISTRALA ADRESOWA

Następny cykl pobrania rozkazu

MAGISTRALA DANYCH MBR  M(101) Add 105 Adres Zawartość AC MBR 100 Move 104 ALU 101 Add 105 MAR  PC ODCZYT Store 106 Stop 3 5 101 PC IR CU MAGISTRALA STERUJĄCA 102 103 104 105 106 MAR 101 MAGISTRALA ADRESOWA

Następny cykl pobrania rozkazu

MAGISTRALA DANYCH Add 105 MBR AC IR  MBR 101 PC Add 105 IR ALU CU  IR CU ODCZYT MAGISTRALA STERUJĄCA Adres Zawartość 100 101 Move 104 Add 105 102 103 104 105 106 Store 106 Stop 3 5 MAR 101 MAGISTRALA ADRESOWA

Format rozkazu

0 3 4 15 Kod operacji Adres 0 1 15 Wielkość Znak rozkaz argument Np. Move 104 - 0101000001101000

Graf stanów cyklu rozkazu

Pobranie rozkazu Pobranie argumentu Wiele argumentów Obliczenie adresu rozkazu Rozkaz wykonany, pobierz następny Dekodo wanie rozkazu Obliczenie adresu arg.

Brak przerwań Obsługa przerwań Obliczenie adresu arg.

Wiele wyników Operacja na danych Powrót do danych Sprawdze nie przerwań Zapisanie argumentu

Przerwania

• Mechanizm pozwalający innym komponentom zakłócenie normalnego porządku przetwarzania • Programowe – np. przepełnienie, dzielenie przez zero • Zegarowe – Generowane przez wewnętrzny zegar procesora – Używane przy wywłaszczaniu procesów • Wejścia/wyjścia – Z kontrolera wejścia/wyjścia • Awaria sprzętu – Błąd parzystości pamięci

Idea zastosowania przerwań

Program użytkownika Program Program użytkownika Program wejścia / wyjścia wejścia / wyjścia 1 1 4 4 ZAPIS ZAPIS Rozkaz we-wy Rozkaz we-wy 2 ZAPIS 3 5 Stop 2a @ 2b ZAPIS 3a @ 3b Program obsługi przerwań 5 Stop

Cykl przerwania

• Procesor cyklicznie sprawdza, czy nie wystąpiło przerwanie – Wskazane jest to przez sygnał przerwania • Jeśli nie ma przerwania, pobierany jest następny rozkaz • Jeśli jest przerwanie: – Zawiesza się wykonanie wykonywanego programu – Zapisywany jest jego kontekst – Licznik programu ustawiany jest na adres pierwszej instrukcji programu obsługi przerwań – Przerwanie jest przetwarzanie – Następuje przywrócenie poprzedniego kontekstu i powraca się do wykonywania programu użytkownika

Przerwania wielokrotne

Istnieją dwie metody obsługi przerwań wielokrotnych • Przerwania zablokowane – Procesor ignoruje inne przerwania podczas obsługi przerwania – Przerwania czekają w kolejce, po zakończeniu obsługi przerwania sprawdza się, czy nie ma następnego – Przerwania są obsługiwane w kolejności wystąpienia • Priorytety – Obsługa przerwania o niskim priorytecie może zostać zakłócona przez przerwanie o wyższym priorytecie – Po zakończeniu obsługi przerwania o wyższym priorytecie następuje powrót do obsługi przerwania o niższym priorytecie

Ilustracja obsługi przerwań wielokrotnych Obsługa sekwencyjna Obsługa priorytetowa Program użytkowy Przerwanie nr 1 Program użytkowy Przerwanie nr 1 Przerwanie nr 2 Przerwanie nr 2

Przykład przypisania przerwań

Przepływ danych w modułach komputerowych odczyt zapis PAMIĘĆ ADRES DANE odczyt zapis ADRES Dane wewn.

Dane zewn.

N słów MODUŁ WEJŚCIA / WYJŚCIA M portów DANE Przerwania Dane wewn.

Dane zewn.

ROZKAZY DANE Przerwania PROCESOR ADRES DANE Przerwania

Magistrala

• Jest to droga zapewniająca komunikację z urządzeniami • Składa się z wielu dróg komunikacyjnych (linii) trzech rodzajów: danych, adresowych i sterowania • Szerokość magistrali to maksymalna liczba bitów, którą można przesłać jednocześnie (równa liczbie linii)

Najważniejsze magistrale

• ISA (1985) • PCI (1993) • AGP 1x/2x (1997-1998) • AGP 4x (1999) • AGP 8x (2002) • PCI Express (2004) • SCSI (1979) • Magistrale przemysłowe (PROFIBUS, IEC-625)

Przepustowość magistral

Działanie magistrali

Komunikacja między dwoma modułami Wysyłanie danych: 1.

Uzyskanie dostępu do magistrali 2. Przekazanie danych Odbieranie danych 1.

Uzyskanie dostępu do magistrali 2. Przekazanie informacji o potrzebie uzyskania danych (poprzez linie sterujące) 3.

Oczekiwanie na przesłanie danych

„Płaska” struktura magistrali (ISA)

Hierarchiczna struktura magistrali

Rodzaje magistral

Przeznaczenie • Specjalistyczna • Multipleksowana Metoda arbitrażu • Scentralizowana • Rozproszona Koordynacja czasowa • Synchroniczna • Asynchroniczna

Koordynacja synchroniczna

Koordynacja asynchroniczna

Odczyt

Koordynacja asynchroniczna

Zapis

Magistrala PCI

• Zaproponowana przez Intela w 1990 r.

• Częstotliwość pracy: 66 MHz • Pracuje w konfiguracji 32 lub 64-bitowej • Komunikacja z procesorem i pamięcią przez mosty (bridge), możliwa struktura hierarchiczna • Obowiązujące linie sygnałowe: – systemowe (np. zegar, reset) – adresowe i danych (32) – sterowania interfejsu – arbitrażowe (indywidualne!) – informacja o błędach

Magistrala PCI Express

• Połączenia typu punkt-punkt • Wprowadzenie przełączników (switch) • Częstotliwość taktowania: 2,5 GHz • Skalowalna przepustowość magistrali – od 1x do 32x (w zależności od liczby wykorzystywanych kanałów/slotów) • Prędkość 250 MB/s dla pojedynczego slotu (dla karty graficznej 16x PCIe jest to 4 GB/s) • Wsteczna zgodność z PCI

Architektura komputera z PCI Express