Architektura systemów komputerowych

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Forma zajęć

wykład (30 godzin)

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

  • Programowanie w języku C

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

  1. Wstęp - trochę teorii
  2. Dane
  3. Synteza modelu programowego
  4. Struktura modelu programowego
  5. Model programowy procesora w podejściu CISC i RISC
  6. Jednostka wykonawcza procesora
  7. Działanie potokowej jednostki wykonawczej
  8. Procesory wielopotokowe
  9. Kieszenie jako warstwa hierarchii pamięci
  10. Redukcja opóźnień w procesorach superskalarnych i superpotokowych
  11. Ochrona zasobów
  12. Zarządzanie pamięcią
  13. Wyjątki
  14. Wejście-wyjście
  15. Struktura komputera