Module also offered within study programmes:
General information:
Name:
Procesory i architektury systemów komputerowych
Course of study:
2019/2020
Code:
IETP-2-204-n
Faculty of:
Computer Science, Electronics and Telecommunications
Study level:
Second-cycle studies
Specialty:
-
Field of study:
Electronics and Telecommunications
Semester:
2
Profile of education:
Academic (A)
Lecture language:
Polish
Form and type of study:
Part-time studies
Responsible teacher:
dr inż. Rumian Roman (rumian@agh.edu.pl)
Module summary

Moduł uczy rozumienia pojęć określających architekturę nowoczesnych systemów komputerowych, ich budowę, funkcję elementów składowych oraz narzędzia i metody przyspieszające działanie procesora.

Description of learning outcomes for module
MLO code Student after module completion has the knowledge/ knows how to/is able to Connections with FLO Method of learning outcomes verification (form of completion)
Social competence: is able to
M_K001 Rozwiązując zadane zadanie projektowe myśleć i działać w sposób kreatywny. ETP2A_K01 Test
Skills: he can
M_U001 Potrafi pozyskiwać informacje z literatury, baz danych i innych źródeł na temat istniejących i nowych elementów architektury komputerów ETP2A_U01 Test
M_U002 Pracując w zespole, potrafi dokonać analizy problemu i przeprowadzić jego dekompozycji w celu przeprowadzenia obliczeń współbieżnych o jak najlepszych parametrach wydajnościowych. ETP2A_U02, ETP2A_U03 Test
M_U003 Pracować z materiałami w języku angielskim. ETP2A_U01 Test
Knowledge: he knows and understands
M_W001 Zna budowę zaawansowanych elektronicznych systemów obliczeniowych w tym systemów obliczeniowych dużej mocy. ETP2A_U01, ETP2A_U02, ETP2A_W06, ETP2A_U07, ETP2A_U03, ETP2A_W03 Test
M_W002 Ma uporządkowaną wiedzę w zakresie urządzeń wchodzących w skład sieci teleinformatycznych, w tym sieci bezprzewodowych, ich architekturę, cel jej elementów składowych i całości. ETP2A_W02 Test
M_W003 Zna trendy rozwojowe dla komputerów i systemów obliczeniowych oraz przetwarzania danych o wielkiej złożoności ETP2A_U01, ETP2A_W06, ETP2A_U07, ETP2A_U05, ETP2A_U03 Test
Number of hours for each form of classes:
Sum (hours)
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
30 16 0 14 0 0 0 0 0 0 0 0
FLO matrix in relation to forms of classes
MLO code Student after module completion has the knowledge/ knows how to/is able to Form of classes
Lecture
Audit. classes
Lab. classes
Project classes
Conv. seminar
Seminar classes
Pract. classes
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Social competence
M_K001 Rozwiązując zadane zadanie projektowe myśleć i działać w sposób kreatywny. - - + - - - - - - - -
Skills
M_U001 Potrafi pozyskiwać informacje z literatury, baz danych i innych źródeł na temat istniejących i nowych elementów architektury komputerów + - + - - - - - - - -
M_U002 Pracując w zespole, potrafi dokonać analizy problemu i przeprowadzić jego dekompozycji w celu przeprowadzenia obliczeń współbieżnych o jak najlepszych parametrach wydajnościowych. + - + - - - - - - - -
M_U003 Pracować z materiałami w języku angielskim. + - + - - - - - - - -
Knowledge
M_W001 Zna budowę zaawansowanych elektronicznych systemów obliczeniowych w tym systemów obliczeniowych dużej mocy. + - - - - - - - - - -
M_W002 Ma uporządkowaną wiedzę w zakresie urządzeń wchodzących w skład sieci teleinformatycznych, w tym sieci bezprzewodowych, ich architekturę, cel jej elementów składowych i całości. - - - - - - - - - - -
M_W003 Zna trendy rozwojowe dla komputerów i systemów obliczeniowych oraz przetwarzania danych o wielkiej złożoności + - + - - - - - - - -
Student workload (ECTS credits balance)
Student activity form Student workload
Summary student workload 100 h
Module ECTS credits 4 ECTS
Udział w zajęciach dydaktycznych/praktyka 30 h
Preparation for classes 30 h
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 10 h
Realization of independently performed tasks 30 h
Module content
Lectures (16h):

Zajęcia w ramach modułu prowadzone są w postaci wykładu (12 godzin) oraz ćwiczeń laboratoryjnych (12 godzin).

Wykłady

1. Architektura i organizacja komputera.
Jednostka centralna, potok, magistrale procesorowe i we/wy, hierarchia pamięci, struktura i działanie pamięci podręcznej, pamięć wirtualna, pamięci masowe, współczesne systemy pamięci masowej, urządzenia wejście-wyjście, podsystemy komunikacyjne, podsystem graficzny.

2. Struktura i działanie jednostki centralnej.
Systematyka procesorów, budowa i działanie jednostki ALU, arytmetyka stało- i zmienno-przecinkowa, listy rozkazów: własności i funkcje, tryby adresowania i formaty, struktura i działanie jednostki centralnej, mechanizmy przyśpieszania działania jednostki centralnej, hiperwątkowość, procesory wielordzeniowe.

3. Systemy komputerowe obliczeń wielkiej skali.
Zagadnienia przetwarzanie równoległego, klasyfikacja systemów obliczeń wielkiej skali, architektury przetwarzania równoległego, współczesne systemy obliczeń wielkiej skali, procesory o dużej wydajności, elementy programowania współbieżnego.

4. Architektury obliczeń masywnie równoległych.
Procesory typu „many-core”, architektury i jednostki obliczeniowe specjalne, przykłady systemów obliczeń masywnie równoległych, architektura i obliczenia GP GPU, elementy programowania systemów masywnie równoległych

Laboratory classes (14h):

Ćwiczenia laboratoryjne
1. Architektury obliczeń masywnie równoległych.
Ćwiczenie ma na celu zapoznanie studenta z podstawowymi narzędziami i organizacją obliczeń w środowisku komputerów dużej mocy. Zakładanie konta, kompilacja programów, system kolejkowy, rezerwacja zasobów, uruchamianie zadań, praca interaktywną. Testowanie wydajności i skalowalności. Biblioteki obliczeń naukowo-technicznych

2. Programowanie systemów z pamięcią wspólną.
Ćwiczenie demonstruje podstawowe elementy programowania w środowisku OpenMP. Student uruchamia i testuje efekty działania typowych, najczęściej stosowanych ‘pragm’ języka oraz zapoznaje się ze sposobem kompilowania kodu.

3. Programowanie systemów pamięcią rozproszoną.
Ćwiczenie demonstruje podstawowe elementy programowania w środowisku MPI. Student zostanie zapoznany z typowymi konstrukcjami i modelami przetwarzania danych stosowanymi w MPI, nauczy się kompilować i uruchamiać program na wielu węzłach obliczeniowych.

4. Programowanie współbieżne i rozproszone.
Student wykonuje projekt, w trakcie którego zadaniem jest zademonstrowanie skalowalności obliczeniowej zadanego przez prowadzącego problemu. Praca pozwala na zrozumienie typowych błędów popełnianych przez programistów podczas programowania równoległego.

Additional information
Teaching methods and techniques:
  • Lectures: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Laboratory classes: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:
  1. Warunkiem uzyskania pozytywnej oceny końcowej jest uzyskanie pozytywnej oceny z laboratorium oraz kolokwium zaliczeniowego z wykładu.
Participation rules in classes:
  • Lectures:
    – Attendance is mandatory: No
    – Participation rules in classes: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Laboratory classes:
    – Attendance is mandatory: Yes
    – Participation rules in classes: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu. Zaliczenie modułu jest możliwe po zaliczeniu wszystkich zajęć laboratoryjnych.
Method of calculating the final grade:
  1. Obliczamy średnią ważoną z ocen z laboratorium (50%) i kolokwium zaliczeniowe (50%) uzyskanych we wszystkich terminach.
  1. Wyznaczmy ocenę końcową na podstawie zależności:
    if sr>=4.75 then OK:=5.0 else
    if sr>=4.25 then OK:=4.5 else
    if sr>=3.75 then OK:=4.0 else
    if sr>=3.25 then OK:=3.5 else OK:=3
Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Udział w dodatkowych terminach zajęć lub wykonanie projektu/prezentacji.

Prerequisites and additional requirements:

1. Znajomość techniki mikroprocesorowej.
2. Umiejętność programowanie w języku C.

Recommended literature and teaching resources:

1. Wiliam Stallings, “Organizacja i architektura systemu komputerowego”
2. Noam Nisan, Shimon Schocken, “The Elements of Computing Systems: Building a Modern Computer from First Principles”,
3. Piotr Metzger, „Anatomia PC”
4. Janusz Biernat, „Architektura komputerów”
5. John L. Hennessy, David A. Patterson “Computer architecture : a quantitative approach“.

Scientific publications of module course instructors related to the topic of the module:

1. T.Zieliński, P.Korohoda, R.Rumian, “Cyfrowe przetwarzanie sygnałów w telekomunikacji – Podstawy, Multimedia, Transmisja”, PWN 2014.
2. Konrad KOWALCZYK, Szymon Woźniak, Tomasz Chyrowicz, Roman RUMIAN, “Embedded system for acquisition and enhancement of audio signals” , SPA 2016 : Signal Processing : Algorithms, Architectures, Arrangements and Applications : Poznan, 21–23 September 2016 : conference proceedings.
3. Russek, P., et al. “A custom co-processor for the discovery of low autocorrelation binary sequences.” Measurement Automation Monitoring 62.5 (2016): 154-156.
4. Pietron, M., Wielgosz, M., Russek, P., & Wiatr, K. (2016, February). Study of the Parallel Techniques for Dimensionality Reduction and Its Impact on Performance of the Text Processing Algorithms. In Proceedings of the 8th International Conference on Agents and Artificial Intelligence (pp. 315-322). SCITEPRESS-Science and Technology Publications, Lda.
5. Macheta, J., Dąbrowska-Boruch, A., Russek, P., & Wiatr, K. (2017, April). ArPALib: A Big Number Arithmetic Library for Hardware and Software Implementations. A Case Study for the Miller-Rabin Primality Test. In International Symposium on Applied Reconfigurable Computing (pp. 323-330). Springer, Cham.
6. Russek, P., & Wiatr, K. (2014). The enhancement of a computer system for sorting capabilities using FPGA custom architecture. Computing and Informatics, 32(4), 859-876.

Additional information:

Zajęcia są prowadzone z wykorzystaniem innowacyjnych metod dydaktycznych opracowanych w projekcie POWR.03.04.00-00-D002/16, realizowanym w latach 2017-2019 na Wydziale Informatyki, Elektroniki i Telekomunikacji w ramach Programu Operacyjnego Wiedza Edukacja Rozwój 2014-2020.