Architektura systemów komputerowych
Opis
Celem wykładu jest zapoznanie słuchaczy ze strukturą i budową współczesnych procesorów i komputerów. Treść wykładu obejmuje niezbędne podstawy teoretyczne, budowę aplikacyjnego modelu programowego komputera dostosowanego do wykonywania programów napisanych w językach wysokiego poziomu, budowę jednostki wykonawczej komputera, model i implementację mechanizmów systemowych oraz podstawowe informacje o organizacji współpracy z urządzeniami zewnętrznymi i strukturze komputera.
Sylabus
Autor
-
Grzegorz Mazur — Politechnika Warszawska,
Wymagania wstępne
Zawartość
-
Wprowadzenie — pojęcie komputera, taksonomie architektur komputerowych, pojęcie hierarchii pamięci. Maszyna von Neumanna, architektury Harvard, Princeton, Harvard-Princeton.
-
Dane — typy, reprezentacje, organizacja i adresowanie pamięci. Konwencje Big-Endian i Little-Endian. Wyrównanie naturalne. Dane wektorowe.
-
Synteza aplikacyjnego modelu programowego na podstawie wymagań języka wysokiego poziomu.
-
Budowa modelu programowego — rejestry, tryby adresowania, model operacji warunkowych, lista instrukcji. Konstrukcja modelu programowego w podejściu CISC i RISC.
-
Przykłady modeli programowych RISC (MIPS) i CISC (x86). Jednostki zmiennopozycyjne i wektorowe.
-
Synteza jednocyklowej jednostki wykonawczej. Jednostki wielocyklowe. Przejście od jednostki jednocyklowej do potokowej.
-
Struktura potoku. Problemy synchronizacji i opóźnienia w prostym potoku. Superpotok.
-
Jednostki wielopotokowe (superskalarne) — zasady działania, hazardy i opóźnienia.
-
Kieszenie jako warstwa hierarchii pamięci. Organizacja i zasady działania. Model wydajności. Reakcja na zapis danych. Wielopoziomowe systemy kieszeni.
-
Metody redukcji opóźnień w procesorach superpotokowych i superskalarnych. Przewidywanie skoków. Sposoby redukcji opóźnienia danych.
-
Wymagania wieloprocesowego systemu operacyjnego. Zasady ochrony zasobów komputera. Funkcje systemu zarządzania pamięcią.
-
Implementacja zarządzania pamięcią — prosta relokacja, segmentacja, stronicowanie. Podstawy realizacji systemu pamięci wirtualnej. Optymalizacja stronicowania.
-
Wyjątki — definicja, klasyfikacja. Obsługa wyjątków.
-
Podstawy organizacji wejścia wyjścia. Obsługa urządzeń zewnętrznych przy użyciu aktywnego oczekiwania, przerwań i DMA.
-
Struktura komputera jednoprocesorowego i jej ewolucja od lat 60 XX w. do współczesności.
Literatura
-
D. Patterson, J. Hennessy, Computer Organization and design, Elsevier 2005
-
J. Biernat, Arytmetyka komputerów, Wydawnictwo Naukowe PWN, Warszawa 1996
-
Materiały firmowe - dokumenty techniczne dostępne w sieci WWW - MIPS, Intel, AMD
-
Specyfikacje Application Binary Interface
Moduły
-
Wstęp - trochę teorii
-
Dane
-
Synteza modelu programowego
-
Struktura modelu programowego
-
Model programowy procesora w podejściu CISC i RISC
-
Jednostka wykonawcza procesora
-
Działanie potokowej jednostki wykonawczej
-
Procesory wielopotokowe
-
Kieszenie jako warstwa hierarchii pamięci
-
Redukcja opóźnień w procesorach superskalarnych i superpotokowych
-
Ochrona zasobów
-
Zarządzanie pamięcią
-
Wyjątki
-
Wejście-wyjście
-
Struktura komputera