Nazwa przedmiotu:
Architektura komputerów
Koordynator przedmiotu:
Dariusz TURLEJ, Grzegorz MAZUR
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Informatyka
Grupa przedmiotów:
Przedmioty techniczne
Kod przedmiotu:
ARKO
Semestr nominalny:
3 / rok ak. 2015/2016
Liczba punktów ECTS:
5
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
45 - wykłady 30 - nauka własna 15 - ćwiczenia laboratoryjne 40 - przygotowanie do ćwiczeń laboratoryjnych i praca nad projektami w domu
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
45 - wykłady 15 - ćwiczenia laboratoryjne w sumie 60 godz., co daje ok. 2,5 ECTS
Język prowadzenia zajęć:
polski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
15 - ćwiczenia laboratoryjne 40 - przygotowanie do ćwiczeń laboratoryjnych i praca nad projektami w domu w sumie 55 godz. co daje ok. 2 ECTS
Formy zajęć i ich wymiar w semestrze:
  • Wykład45h
  • Ćwiczenia0h
  • Laboratorium15h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
Programowanie w języku C, podstawy techniki cyfrowej, arytmetyka binarna.
Limit liczby studentów:
120
Cel przedmiotu:
Poznanie budowy i działania procesora i komputera. Nauka programowania asemblerowego i hybrydowego. Zapoznanie z aspektami wydajnościowymi w działaniu sprzętu i oprogramowania. Zapoznanie z architekturą systemową komputera.
Treści kształcenia:
Taksonomie architektur komputerów. Maszyna von Neumanna, architektury Harvard, Princeton, Harvard-Princeton. Pojęcie hierarchii pamięci. Typy i formaty danych. Interpretacja danych binarnych. Kody używane do reprezentacji znaków pisarskich, liczb całkowitych, stało- i zmiennopozycyjnych. Adresowanie pamięci. Dane w pamięci - konwencje Big i Little Endian, wyrównanie danych. Dane wektorowe. Wymagania języków wysokiego poziomu wobec architektury procesora. Identyfikacja klas pamięci. Stos. Przekazywanie sterowania pomiędzy procedurami – konwencje wołania. Mapa pamięci programu. Ramka stosu w rejestrach i w pamięci. Model programowy procesora — zestawy rejestrów, tryby adresowania, model operacji warunkowych. Konstrukcja listy instrukcji - podejście RISC i CISC. Formaty instrukcji. Prezentacja modelu programowego RISC i CISC. Wykonanie instrukcji przez procesor. Procesor z jednofazowym wykonaniem instrukcji. Procesor wielofazowy z jednostką sterującą. Prefetch i kolejka instrukcji. Potok. Synchronizacja potoku – hazardy i opóźnienia. Superpotok. Potokowa implementacja procesora CISC – potok CISC, potok z transkodowaniem. Architektury superskalarne. Synchronizacja wielopotokowej jednostki wykonawczej. Prezentacja współczesnych architektur wielopotokowych z transkodowaniem instrukcji. Kieszenie — zasada działania, warianty organizacji. Problem spójności zawartości pamięci operacyjnej i kieszeni. Analiza wydajności. Problemy wydajnościowe w architekturach superskalarnych i superpotokowych. Przewidywaie skoków. Sterowanie działaniem kieszeni. Mechanizmy przyspieszające odwołania do danych. Procesory wielowątkowe. Fuzja instrukcji. Wymagania systemu operacyjnego. Systemowy model programowy procesora. Zasady ochrony zasobów. Zarządzanie pamięcią. Funkcje systemu zarządzania pamięcią. Metody zarządzania pamięcią — prosta relokacja, segmentacja, stronicowanie. Optymalizacja stronicowania. Stronicowanie w procesorach 64-bitowych. Zarządzanie działaniem hierarchii pamięci — zarządzanie pamięcią a kieszenie - sprzężenie kieszeni i jednostki zarządzania pamięcią. Wyjątki – definicja i klasyfikacja. Zasady obsługi wyjątków. Specyficzne sytuacje wyjątkowe — podwójny błąd i restart. Implementacja systemu pamięci wirtualnej. Przechwycenia w maszynie wirtulanej. Budowa komputera. Podsystem wejścia-wyjścia. Zasady współpracy z urządzeniami wejścia-wyjścia - aktywne oczekiwanie, przerwania, zastosowanie bezpośredniego dostępu do pamięci. Struktury komputerów – pamięciocentryczna, architektury jedno-, dwu- i trójszynowe, architektury z połączeniami punkt-punkt. Przegląd struktur komputerów osobistych.
Metody oceny:
kolokwia, projekty oprogramowania
Egzamin:
nie
Literatura:
1. Patterson, Hennessy: Computer Patterson, Hennessy: Computer Organization and Design, The Hardware/Software Interface, Elsevier 2. MIPS32 Architecture for Programmers, MIPS Technologies (www.mips.com) 3. Intel® 64 and IA-32 Architectures Software Developer's Manual, Intel Corp. 4. AMD64 Architecture Programmer's Manual, AMD Inc. 5. SYSTEM V APPLICATION BINARY INTERFACE, Intel386 Architecture Processor Supplement, Fourth Edition, 1990-1996 The Santa Cruz Operation, Inc. 6. J. Biernat, Arytmetyka Komputerów, Warszawa, PWN 1996.
Witryna www przedmiotu:
https://studia.elka.pw.edu.pl/priv/ARKO.A/
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt ARKO_W01
Rozumie zasadę działania komputera i proces wykonywania programu przez sprzęt.
Weryfikacja: Testy, zadania projektowe.
Powiązane efekty kierunkowe: K_W08, K_W09, K_W14, K_W19
Powiązane efekty obszarowe: T1A_W04, T1A_W06, T1A_W07, T1A_W04, T1A_W03, T1A_W04, T1A_W05, T1A_W07, T1A_W07
Efekt ARKO_W02
Zna sposoby reprezentacji danych w komputerze i potrafi posługiwać się typami danych.
Weryfikacja: Testy, egzamin, zadania projektowe.
Powiązane efekty kierunkowe: K_W09, K_W11, K_W14, K_W19
Powiązane efekty obszarowe: T1A_W04, T1A_W03, T1A_W03, T1A_W04, T1A_W05, T1A_W07, T1A_W07
Efekt ARKO_W03
Potrafi zidentyfikować ograniczenia wydajności oprogramowania wynikające z budowy sprzętu.
Weryfikacja: Testy, egzamin, zadania projektowe
Powiązane efekty kierunkowe: K_W11, K_W14
Powiązane efekty obszarowe: T1A_W03, T1A_W03, T1A_W04, T1A_W05, T1A_W07
Efekt ARKO_W04
Rozumie zasady zarządzania zasobami komputera, zna rolę systemu operacyjnego i mechanizmy sprzętowe komputera związane z zarządzaniem i ochroną zasobów.
Weryfikacja: testy, egzamin
Powiązane efekty kierunkowe: K_W09, K_W10, K_W14
Powiązane efekty obszarowe: T1A_W04, T1A_W03, T1A_W04, T1A_W05, T1A_W03, T1A_W04, T1A_W05, T1A_W07
Efekt ARKO_W05
Rozumie zasady współpracy komputera z urządzeniami peryferyjnymi i zna typowe struktury komputerów.
Weryfikacja: testy, egzamin
Powiązane efekty kierunkowe: K_W08, K_W14
Powiązane efekty obszarowe: T1A_W04, T1A_W06, T1A_W07, T1A_W03, T1A_W04, T1A_W05, T1A_W07

Profil ogólnoakademicki - umiejętności

Efekt ARKO_U01
Potrafi tworzyć programy w językach asemblerowych i programy hybrydowe.
Weryfikacja: Projekty laboratoryjne.
Powiązane efekty kierunkowe: K_U09, K_U13, K_U14, K_U15, K_U21
Powiązane efekty obszarowe: T1A_U05, T1A_U16, T1A_U07, T1A_U09, T1A_U14, T1A_U09, T1A_U15, T1A_U16, T1A_U15, T1A_U16
Efekt ARKO_U02
Potrafi w podstawowym zakresie zidentyfikować ograniczenia wydajności i wskazać możliwości optymalizacji oprogramowania.
Weryfikacja: Projekty laboratoryjne
Powiązane efekty kierunkowe: K_U09, K_U13, K_U20, K_U21
Powiązane efekty obszarowe: T1A_U05, T1A_U16, T1A_U13, T1A_U15, T1A_U15, T1A_U16

Profil ogólnoakademicki - kompetencje społeczne

Efekt ARKO_K01
Rozumie potrzebę pogłębiania wiedzy i korzystania z literatury technicznej.
Weryfikacja: Projekty laboratoryjne
Powiązane efekty kierunkowe: K_K01
Powiązane efekty obszarowe: T1A_K01