Zajęcia
Informacje o przebiegu zajęć
Data Opis
2023-10-04 Tydzień 1
Wykład: Ewolucja urządzeń automatyzujących proces liczenia. Ćwiczenia:
  • Zagadnienia i materiały
    • Bardzo prosty model komputera (VSC), jego język maszynowy i assembler (zobacz)
    • VSC
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjasnić różnicę pomiędzy językiem maszynowym a assemblerem.
    • Opisać bardzo prosty model komputera (VSC), jego język maszynowy i assembler.
    • Zapisywać proste programy przeznaczone do wykonania na VSC w ramach poznanego języka maszynowego i assemblera.
2024-10-11 Tydzień 2
Wykład: Podstawowe informacje o architekturach procesorów i pamięci.
  • Zagadnienia i materiały
    • Processor and memory architectures
    • The von Neumann architecture
    • The Harvard architecture
    • The modified Harvard architecture
    • Physical and virtual memory
    • Paged virtual memory
    • The memory management unit
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Omówić podstawowe założenia architektury von Neumanna i Harvardzkiej.
    • Wyjaśnić pojęcie pamięci wirtualnej oraz stronicowania pamięci.
Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC w zakresie dotychczas poznanych instrukcji.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Zapisywać proste programy przeznaczone do wykonania na VSC w ramach poznanego języka maszynowego i assemblera.
2024-10-18 Tydzień 3
Wykład: Dokończenie wykładów 1 i 2
  • Zagadnienia i materiały
    • Moore's law
    • Moore's law is dying
    • Physical and virtual memory
    • Paged virtual memory
    • The memory management unit
Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC - różne rodzaje adresowania (zobacz)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjasnić przyczynę istnienia różnych trybów adresowania.
    • Wyjasnić zasadę działania podstawowych rodzajów adresowania.
2024-10-25 Tydzień 4
Wykład: Podstawy pracy z VSC
  • Zagadnienia i materiały
    • Podstawy pracy z VSC.
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć posługiwać się VSC.
Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC - retykiety i rejestr flagowy (zobacz)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjaśnić zasadność (przyczynę i korzyści) używania etykiet.
    • Wyjaśnić czym jest i jaką pełni rolę rejestr flagowy.
2024-11-08 Tydzień 5
Wykład: Procesor -- podstawowe bloki funkcjonalne i działanie.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Przedstawić (wymienić i okreslić ich rolę) najważniejsze bloki funkcjonalne procesora.
Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC - stos + wywoływanie funkcji za pomocą stosu (uproszczony przypadek) (zobacz)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjaśnić zasadę funkcjonowania stosu.
    • Umieć napisać fragment kodu wykorzystujący stos (np. do przekazania argumentów do wywoływanej funkcji lub do zapisania adresu powrotu z wywoływanej funkcji).
2024-11-15 Tydzień 6
Wykład: Procesor -- rejestry, ich podział i zadania.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Dokonać podziału / charakterystyki rejestrów.
    • Opisać zagadnienia projektowe dotyczące wyboru ilości i rodzaju rejestrów.
Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC - stos + i ramka wywołania funkcji (zobacz)
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjaśnić zasadę konstruowania i posługwania się ramką wywołania funkcji.
2024-11-22 Tydzień 7
Wykład: Procesor -- cykl wykonania instrukcji, przerwania.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Omówć cykl pracy procesora.
    • Scharakteryzować zbiór instrukcji procesora (w tym pojęcia RISC oraz CISC).
    • Wyjaśnić czym są i jaką pełnią rolę przerwania.
Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC - piszemy różne programy
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć tworzyć różnorodne, proste, programy w assemblerze.
2024-11-29 Tydzień 8
Wykład: Procesor -- tryby pracy, współpraca z koprocesorem matematycznym, jednostka sterująca i jej mikrokod. Ćwiczenia:
  • Zagadnienia i materiały
    • Programowanie VSC - piszemy różne programy
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć tworzyć różnorodne, proste, programy w assemblerze.
2024-12-06 Tydzień 9
Wykład: Techniki zwiększania wydajności procesora. Część I: pamięć podręczna.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjaśnij zasadniczą różnicę pomiędzy pamięciami typu DRAM a pamięciami typu SRAM.
    • Wyjaśnij zasadę działania pamięci podręcznej (cache memory).
Ćwiczenia:
  • Zagadnienia i materiały
    • Algebra Boole’a - podstawowe definicje, własności.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Definicje algebry Boole'a.
    • Podstawowe własności i prawa (wraz z dowodami).
    • Funkcjonalnie pełne zestawy operatorów.
2024-12-13 Tydzień 10
Wykład: Techniki zwiększania wydajności procesora. Część II: przetwarzanie potokowe.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Wyjasnij ideę przetwarzania potokowego (instruction pipelining).
    • Wyjaśnij różnicę pomiędzy procesoram skalarnym a superskalarnym (superscalar processing).
    • Wyjaśnij na czym polega zjawisko pipeline hazard.
    • Wyjaśnij na czym polega i kiedy jest możliwe wykonanie instrukcji poza kolejnością (out of order execution).
    • Wyjaśnij jak działa przemianowanie rejsetrów (register renaming).
    • Co oznacza pojęcie simultaneous multithreading.
    • Wyjaśnij na czym polega przetwarzanie typu SIMD (single instruction, multiple data processing).
Ćwiczenia:
  • Zagadnienia i materiały
    • Kolokwium sprawdzające wiadomości z zakresu ćwiczeń 1-8.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
2024-12-20 Tydzień 11
Wykład: Współczesna architektury procesorów i zestawy instrukcji. Część I. Ćwiczenia:
  • Zagadnienia i materiały
    • Algebra Boole’a a bramki logiczne.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć dla zadanego wyrażenie Boolowskiego skonstruować odpowiadający jemu układ logiczny.
    • Umieć dla zadanego układu logicznego skonstruować odpowiadające jemu wyrażenie Boolowskie.
2025-01-03 Tydzień 12
Wykład: Współczesna architektury procesorów i zestawy instrukcji. Część II.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Omów wpływ liczby adresów zawartych w każdej instrukcji na język maszynowy.
    • Omów problemy i kompromisy związane z projektowaniem formatu instrukcji.
Ćwiczenia:
  • Zagadnienia i materiały
    • Podstawy projektowania układów cyfrowych.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Zdefiniować dla zadanego problemu zależność pomiędzy sygnałami wejściowymi a wyjściowymi.
    • Zbudować wyrażenie opisujące zależność sygnału wyjściowego od wejściowego.
2025-01-10 Tydzień 13
Wykład: Współczesna architektury procesorów i zestawy instrukcji. Procesory typu CISC na przykładzie rodziny x86 oraz x64 Ćwiczenia:
  • Zagadnienia i materiały
    • Podstawy projektowania układów cyfrowych.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Zdefiniować dla zadanego problemu zależność pomiędzy sygnałami wejściowymi a wyjściowymi.
    • Zbudować wyrażenie w postaci sumy iloczynów lub iloczynu sum opisujące zależność pomiędzy sygnałami wejściowymi a wyjściowymi.
    • Umieć w praktyce stosować mapy Karnaugh'a.
2025-01-17 Tydzień 14
Wykład: Współczesna architektury procesorów i zestawy instrukcji. Procesory typu RISC. Ćwiczenia:
  • Zagadnienia i materiały
    • Kolokwium II - podstawy projektowania układów cyfrowych.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • ...
2025-01-24 Tydzień 15
Wykład: Wirtualizacja.
  • Zagadnienia i materiały
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Co oznacza wirtualizacja.
    • Scharakteryzuj wirtualizację na poziomie systemu operacyjnego (nadzorca, hypervisor, typu 1 oraz typu 2).
    • Omów rodzaje wirtualizacji procesora.
    • Czym różni się wirtualizacja od konteneryzacji.
Ćwiczenia:
  • Zagadnienia i materiały
    • Podstawy projektowania układów cyfrowych (proste układy kombinacyjne m.in. komparator, dekoder, (de)multiplexer, sumator).
    • Hazard.
    • Układy sekwencyjne: przerzutnik RS.
  • Zadania
  • Co po tych zajęciach powinno się znać / wiedzieć / umieć
    • Umieć zaprojektować prosty układ kombinacyjny.
    • Omówić zagadnienie hazardu w układach logicznych.
    • Omówić zasadę działania przerzutnika.