Wydział Informatyki - Informatyka (S1)
specjalność: systemy komputerowe i oprogramowanie
Sylabus przedmiotu Architektura systemów komputerowych:
Informacje podstawowe
Kierunek studiów | Informatyka | ||
---|---|---|---|
Forma studiów | studia stacjonarne | Poziom | pierwszego stopnia |
Tytuł zawodowy absolwenta | inżynier | ||
Obszary studiów | nauk technicznych, studiów inżynierskich | ||
Profil | ogólnoakademicki | ||
Moduł | — | ||
Przedmiot | Architektura systemów komputerowych | ||
Specjalność | przedmiot wspólny | ||
Jednostka prowadząca | Katedra Architektury Komputerów i Telekomunikacji | ||
Nauczyciel odpowiedzialny | Mariusz Kapruziak <Mariusz.Kapruziak@zut.edu.pl> | ||
Inni nauczyciele | Mariusz Kapruziak <Mariusz.Kapruziak@zut.edu.pl>, Magdalena Szaber-Cybularczyk <Magdalena.Szaber@zut.edu.pl> | ||
ECTS (planowane) | 4,0 | ECTS (formy) | 4,0 |
Forma zaliczenia | egzamin | Język | polski |
Blok obieralny | — | Grupa obieralna | — |
Formy dydaktyczne
Wymagania wstępne
KOD | Wymaganie wstępne |
---|---|
W-1 | Student ma podstawową wiedzę w zakresie programowania w C++. |
W-2 | Student ma podstawową wiedzę w zakresie układów cyfrowych. |
W-3 | Student ma podstawową wiedzę w zakresie budowy i rodzajów pamięci komputerowych. |
Cele przedmiotu
KOD | Cel modułu/przedmiotu |
---|---|
C-1 | Umiejetnosc rozumienia schematów blokowych architektur procesorów, ze szczególnym uwzględnieniem rozumienia konsekwencji stosowania wybranych mechanizmów. |
C-2 | Umiejętność rozumienia warunków koniecznych do pracy systemu komputerowego, zaczynając od podstawowego sysemu jednoprocesorowego po systemy wieloprocesorowe czy rozproszone jak klastry lub NUMA. |
C-3 | Umiejetność pisania podstawowych kodów niskopoziomowych, w języku assembler. Znajomosc podstawowych zagadnien konstrukcji kodu maszynowego. Umiejetnosc laczenia kodu niskopoziomowego i wysokopoziomowego w jednej aplikacji. |
C-4 | Wiedza o wszyskich fundamentalnych architekturach komputerów oraz zarysie historii prac nad tymi architekturami. |
Treści programowe z podziałem na formy zajęć
KOD | Treść programowa | Godziny |
---|---|---|
laboratoria | ||
T-L-1 | Rozkład układów scalonych na typowej płycie głównej. Celem laboratorium jest zapoznanie z typowym zestawem układów scalonych znajdujących się na płycie głównej oraz typowym schematem połączeń między nimi (układ dwu-mostkowy: północny i południowy). Umieszczenie tych elementów oraz sposób prowadzenia ścieżek pomiędzy nimi ma znaczenie. | 2 |
T-L-2 | Samodzielnie złożony, najprostszy system komputerowy. | 2 |
T-L-3 | Program samo-startujący z dyskietki/dysku USB. Celem jest zapoznanie z procedurą ładowania kodu przez BIOS oraz zapoznanie się z assemblerem dla komputerów o architekturze x86. Pokazana jest także obsługa sprzętu oparta na przerwaniach (int 10h do obsługi VGA oraz int 16h do obsługi klawiatury). | 2 |
T-L-4 | WIN32ASM - assembler dla systemu Windows. Celem laboratorium jest kontynuacja nauki języka assembler dla architektury x86. W szczególności istotne są metody przekazywania parametrów do funkcji przez stos, powoływanie zmiennych lokalnych, organizacja pamięci aplikacji oraz koncepcja kolejki komunikatów jako metody przekazywania informacji od systemu do aplikacji i niskopoziomowa obsługa tej kolejki. | 2 |
T-L-5 | Integracja języka assembler i C++ (bibliteki MFC). Wprowadzenie do MFC w zakresie potrzebnym w dalszej części zajęć. Pisanie wstawek asemblerowych w Visual Studio oraz ich debugowanie i integrowanie z resztą kodu. Napisanie samodzielnie prostego kodu w assemblerze, typu mnozenie albo dzielenie. Test z assemblera i test z pierwszego bloku laboratoriów. | 2 |
T-L-6 | MS Windows - obsługa portu COM (RS232) - wersja podstawowa. Celem jest stworzenie aplikacji do obsługi portu COM. Konfigurowanie portu oraz wysyłanie znaków z wykorzystaniem funkcji WriteFile. Sprawdzanie liczby znaków oczekujących w buforze. Obieranie znaków z bufora i pokazywanie ich na ekranie. | 2 |
T-L-7 | Obsługa Joysticka i sterowanie robotem przez moduł radiowy z interfejsem USB w klasie komunikacyjnej. Celem laboratorium jest przećwiczenie wiadomości zdobytych w laboratorium z obsługi portu COM. Robot sterowany jest za pomocą modułu radiowego. W systemie widziany jest jako port COM i stosownie obsługiwany, co pozostawione jest do samodzielnej pracy. Istotne jest także wprowadzenie obsługi joysticka w systemie MSWindows. | 2 |
T-L-8 | Obsługa kamery w MSWindows. Celem laboratorium jest napisanie aplikacji do śledzenia czerwonego punktu na obrazie. W laboratorium wykorzystano interfejs VfW. | 2 |
T-L-9 | Obsługa karty muzycznej i generowanie dźwięku w systemie MSWindows. Celem laboratorium jest napisanie aplikacji klawiatury muzycznej. Dodatkowo należy napisac aplikację grającą ulubiony utwór muzyczny. | 2 |
T-L-10 | Obsługa sygnału przychodzącego z mikrofunu w systemie MSWindows. Celem laboratorium jest stworzenie aplikacji, która na skutek klaśnięcia otworzy nowe okno, pokaże alarm i uruchomi inną aplikację. Dodatkowo pokazywany jest przychodzący sygnał w postaci wykresu na ekranie. | 2 |
T-L-11 | FPGA, alternatywa dla procesorów von Neumanna. Celem jest zapoznanie się z językiem Verilog i układami FPGA. Aplikacja "węża świetlnego" na diodach LED. Zmiana kierunku poprzez naciśnięcie przycisku. | 2 |
T-L-12 | FPGA, własna karta graficzna w pół godziny. Celem jest napisanie na FPGA aplikacji, tak aby generować różne figury geometryczne na ekranie z rozdzielczością 640x480. Figury geometryczne, jak kwadrat, rąb lub koło, mogą być następnie dowolnie przesuwane, automatycznie lub ręcznie za pomocą przycisków. Całość jest taktowane zegarem 25MHz na układzie FPGA Xilinx Spartan 3. | 2 |
T-L-13 | ARM9 z systemem Windows CE - moja gra na urzadzenia przenośne. Cel jest zaprogramowanie dowolnej gry na systemie ARM9 z systemem WindowsCE: wykorzystanie zdarzenia dotyku maty dotykowej na ekranie, timera oraz metod rysowania na ekranie. Konkurs na najlepszą napisaną gre. | 2 |
T-L-14 | Windows CE. Aplikacja na komórkę.Celem laboratorium jest rozwinięcie poprzedniego projektu dotyczącego gier na urządzenia przenośne, wykorzystanie zdarzenia pobierania rozmiaru ekraniu wyświetlacza. | 2 |
T-L-15 | Zaliczenie zajęc laboratoryjnych | 2 |
30 | ||
wykłady | ||
T-W-1 | Stan obecny i historia rozwoju architektur systemów komputerów. | 2 |
T-W-2 | Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86. | 2 |
T-W-3 | Układ wykonawczy od środka i assembler dla architektury x86. | 2 |
T-W-4 | Układ sterujący: synteza, DMA, przerwania, segmentacja pamięci. | 2 |
T-W-5 | Hierarchia pamięci, MMU i tryb chroniony procesorów, pamięć cache i macierze RAID. | 2 |
T-W-6 | Tryb chroniony i MMU. | 2 |
T-W-7 | Budowa i programowanie sterowników sprzętu dla systemów MSWindows oraz Linux. | 2 |
T-W-8 | Architektura systemów mobilnych. Procesor ARM i szyny procesora. | 2 |
T-W-9 | Szybkie wprowadzenie do procesorów o równoległości poziomu instrukcji (ILP) i prawo Amdahla. | 2 |
T-W-10 | Procesory ILP: architektura superskalarna. | 2 |
T-W-11 | Procesory ILP: VLIW i procesory DSP. | 2 |
T-W-12 | Współczesne superkomputery: SMP, klastry, CC-NUMA oraz procesory wektorowe/macierzowe. | 2 |
T-W-13 | Architektury typowych współczesnych procesorów PC. | 2 |
T-W-14 | Alternatywy do architektury von Neumanna: dataflow i systemy rekonfigurowalne. | 2 |
T-W-15 | Aktualne badania naukowe w dziedzinie ASK (1h) + powtórka przed egzaminem (1h) | 2 |
30 |
Obciążenie pracą studenta - formy aktywności
KOD | Forma aktywności | Godziny |
---|---|---|
laboratoria | ||
A-L-1 | Uczestnictwo w zajęciach | 30 |
A-L-2 | Przygotowanie do zajęć | 14 |
A-L-3 | Przygotowanie do zaliczenia kolejnych bloków tematycznych, czyli do uzyskania cząstkowych ocen wpływających na ostateczną ocenę z zajęć laboratoryjnych | 14 |
A-L-4 | Udział w konsultajach i zaliczeniu formy zajęć | 4 |
62 | ||
wykłady | ||
A-W-1 | Uczestnictwo w zajęciach | 30 |
A-W-2 | Przygotowanie się do egzaminu - praca własna studenta | 10 |
A-W-3 | konsultacje | 2 |
A-W-4 | Udział w egzaminie | 2 |
44 |
Metody nauczania / narzędzia dydaktyczne
KOD | Metoda nauczania / narzędzie dydaktyczne |
---|---|
M-1 | Wykład informacyjny |
M-2 | Ćwiczenia laboratoryjne. |
Sposoby oceny
KOD | Sposób oceny |
---|---|
S-1 | Ocena formująca: Raport w formie opisu budowy oraz poszczególnych wybranych elementów elektronicznych na wybranej płycie głównej |
S-2 | Ocena formująca: Pisemne kolokwium: kod na wybrane zadanie w assemblerze na architekturę x86. Szczególne uwzględnienie maskowania oraz adresowania pośredniego. |
S-3 | Ocena formująca: Częściowy egzamin pisemny: interpretacja schematu blokowego wybranej architektury komputera. |
S-4 | Ocena podsumowująca: Egzamin ustny: znajomość fundamentalnyc architektur komputerów i zagadnień związanych z ich efektywnością. |
S-5 | Ocena podsumowująca: Konkurs projektów praktycznych dla najbardziej aktywnych studentów (na ocenę 4.0 do 5.0). |
S-6 | Ocena podsumowująca: Prezentacja własnego oryginalnego zdania na wybrany temat z dziedziny przedmiotu (na ocenę 4.0 do 5.0). |
Zamierzone efekty kształcenia - wiedza
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/12_W01 Student zna wszystkie fundamentalne rodzaje architektur komputerowych oraz rozumie w zarysie historie prac nad tymi architekturami. W szczególności zna także alternatywne architektury względem "von-Neummanna", jak układy programowalne. | I_1A_W03, I_1A_W10, I_1A_W21 | T1A_W01, T1A_W02, T1A_W03, T1A_W05, T1A_W06, T1A_W07, T1A_W08 | InzA_W01, InzA_W02, InzA_W03, InzA_W05 | C-4 | T-W-1, T-W-4, T-W-5, T-W-6, T-W-2, T-W-3, T-W-10, T-W-7, T-W-8, T-W-11, T-W-12, T-W-9, T-W-13, T-W-14, T-L-1 | M-1 | S-4 |
I_1A_C/12_W02 Student rozumie podstawy warstwy fizycznej systemu komputerowego, w kontekście środowiska koniecznego do pracy procesora. | I_1A_W03 | T1A_W01, T1A_W02, T1A_W05, T1A_W06, T1A_W07 | InzA_W01, InzA_W02 | C-1 | T-W-2, T-L-1, T-L-2 | M-1, M-2 | S-1 |
Zamierzone efekty kształcenia - umiejętności
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/12_U01 Student umie programować aplikacje wykorzystujace podstawowe urzadzenia i sterowniki sprzetowe. | I_1A_U04 | T1A_U08, T1A_U09, T1A_U14, T1A_U15, T1A_U16 | InzA_U01, InzA_U02, InzA_U06, InzA_U07, InzA_U08 | C-3 | T-W-2, T-W-3, T-L-4, T-L-5, T-L-3 | M-1, M-2 | S-2 |
I_1A_C/12_U02 Student rozumie konsekwencje wyboru wybranych rozwiązań sprzętowych i potrafi konfigurować systemy komputerowe w celu zapewnienia wymaganej efektywności pracy systemu. | I_1A_U06, I_1A_U18 | T1A_U01, T1A_U13, T1A_U14, T1A_U15, T1A_U16 | InzA_U05, InzA_U06, InzA_U07, InzA_U08 | C-1, C-2 | T-W-1, T-W-4, T-W-5, T-W-6, T-W-2, T-W-3, T-W-10, T-W-8, T-W-11, T-W-12, T-W-9, T-W-13, T-W-14, T-L-1, T-L-2, T-L-11, T-L-12, T-L-13 | M-1, M-2 | S-3 |
Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne
Zamierzone efekty kształcenia | Odniesienie do efektów kształcenia dla kierunku studiów | Odniesienie do efektów zdefiniowanych dla obszaru kształcenia | Odniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżyniera | Cel przedmiotu | Treści programowe | Metody nauczania | Sposób oceny |
---|---|---|---|---|---|---|---|
I_1A_C/12_K01 Promowanie samodzielności myślenia oraz praktycznego podejścia do problemów | I_1A_K01, I_1A_K04 | T1A_K01, T1A_K02, T1A_K07 | InzA_K01 | C-1, C-3 | T-W-14, T-L-15 | M-1, M-2 | S-6, S-5 |
Kryterium oceny - wiedza
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/12_W01 Student zna wszystkie fundamentalne rodzaje architektur komputerowych oraz rozumie w zarysie historie prac nad tymi architekturami. W szczególności zna także alternatywne architektury względem "von-Neummanna", jak układy programowalne. | 2,0 | brak |
3,0 | Student umie wymienić i omówić powszechne architektury systemów komputerowych. Zna także mechanizm działania architektury von Neumanna oraz alternatywy do tej architetkury.Możliwe są tutaj drobne błędy podczas wypowiedzi lub przypomnienie przez prowadzącego jakiejś istotnej architektury, która nie została wymieniona. | |
3,5 | Student umie płynnie i bezbłędnie omówić zagadnienia na ocenę dostateczną. | |
4,0 | Student zna kontekst i historie zagadnień związanych z architekturami komputerów oraz potrafi zaprezentować swoją wiedzę publicznie i obronić postawioną przez siebie tezę w debacie.Potrafi także proponować alternatywne rozwiązania i ocenę ich przydatności.. | |
4,5 | Student umie, przy pomocy prowadzącego, poradzić sobie z praktycznym problemem zaprojektowania i publicznej prezentacji prostej architektury procesora lub systemu komputerowego lub programu dotyczącego nieskopoziomowej obsługi sprzętu. | |
5,0 | Student umie bezbłędnie i samodzielnie poradzić sobie z praktycznym problemem zaprojektowania i publicznej prezentacji prostej architektury procesora lub systemu komputerowego lub programu dotyczącego nieskopoziomowej obsługi sprzętu. | |
I_1A_C/12_W02 Student rozumie podstawy warstwy fizycznej systemu komputerowego, w kontekście środowiska koniecznego do pracy procesora. | 2,0 | brak |
3,0 | Student zna podstawowe architektury płyt głównych komputera PC oraz umie znaleźć samodzielnie układy scalone tam występujęce, ich producenta oraz funkcję. | |
3,5 | Student zna także nietypowe rozwizania płyt procesorowych, na przykład routera czy smartphona. | |
4,0 | Student umie skonstruować własny prosty system komputerowy na bazie dostępnych platform dydaktycznych, wykorzystując proste mikrokontrolery, budując otoczenie wystarczające do ich pracy oraz pisząc własny program (na przykład na mruganie diodą). | |
4,5 | Student umie skonstruować własny system komputerowy do zastosowań specjalnych (czujniki, sterowniki ) na bazie dostępnych platform dydaktyczneych. | |
5,0 | Student umie zaprojektować swój system komputerowy na bazie płytki PCB oraz zaprogramować procesor. |
Kryterium oceny - umiejętności
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/12_U01 Student umie programować aplikacje wykorzystujace podstawowe urzadzenia i sterowniki sprzetowe. | 2,0 | brak |
3,0 | student umie powtórzyć na podstawie konspektów (laboratoria) programy dotyczące sterowania różnych urządzeń w języku C++. Rozumie także w podstawowy sposób pisane kody. | |
3,5 | Student umie samodzielnie rozszerzyć w prostej formie kody z konspektów. | |
4,0 | Student wykazuje się aktywnością i pomaga innym w zrozumieniu kodów. Jednocześnie sam rozumie je w stopniu pozwalającym na rozszerzenie funkcjonalności względem konsepktów. | |
4,5 | Studen umie, z drobną pomocą, napisać kod obsługi wybranego urządzenia lub rozszerzyć wybrany konspekt w stopniu niebanalnym. Możliwe jest przy tym popełnienie drobnych błędów, korygowanych przez prowadzącego. | |
5,0 | Studen umie samodzielnie napisać kod obsługi wybranego urządzenia lub rozszerzyć wybrany konspekt w stopniu niebanalnym. | |
I_1A_C/12_U02 Student rozumie konsekwencje wyboru wybranych rozwiązań sprzętowych i potrafi konfigurować systemy komputerowe w celu zapewnienia wymaganej efektywności pracy systemu. | 2,0 | brak |
3,0 | Student umie czytać proste schematy architektur procesorów oraz systemów komputerowych i wnioskować na podstawie tych schamatów o prznależności systemu do danego typu architektury. | |
3,5 | Student rozumie konsekwencje wybranych rozwiązań architektonicznych na efektywność systemu komputerowego. | |
4,0 | Student umie samodzielnie zaproponować podstawowe modyfikacje architektoniczne w celu poprawienie efektywności wybranych mechanizmów oraz rozumie problemy wynikające z wykorzystania tych modyfikacji. | |
4,5 | Student umie zaproponować własną modyfikację/propozycję nowego systemu komputerowego i przedstawić ją publicznie oraz uczestniczyć w debacie. Możliwe jest przy tym popełnienie drobnych błędów/przeoczeń. | |
5,0 | Student umie zaproponować własną nieoczywistą modyfikację/propozycję nowego systemu komputerowego i przedstawić ją publicznie oraz uczestniczyć w debacie. Umie zaproponować metodę oceny efektywności takiej modyfikacji oaz przedstawić wyniki takiej oceny. Umie także przedstawić swoją modyfikację w kontekście podobnych rozwiązań. |
Kryterium oceny - inne kompetencje społeczne i personalne
Efekt kształcenia | Ocena | Kryterium oceny |
---|---|---|
I_1A_C/12_K01 Promowanie samodzielności myślenia oraz praktycznego podejścia do problemów | 2,0 | nie dotyczy |
3,0 | Student umie wykonać powierzone mu zadania, gdy ma wszystko precyzyjnie wytłumaczone i zorganizowane w sekwencje kroków do wykonania. | |
3,5 | Student wykazuje aktywność ale nie jest z tym związany trud zdobywania wiedzy i umiejętności. Jest to nagroda za prece, ktore ostatecznie okazały się bardzo rutynowe/prozaiczne lub zawierała istotne błędy. Nagroda dotyczy checi zadania sobie trudu na przygotowanie prezentacji oraz pokonanie strachu przed jej publicznym wygloszeniem. | |
4,0 | Wykazanie się aktywnością w wykonywaniu zadań, tak że wykonane są bez bardzo istotnych błędów ale także bez interesujących wniosków lub dalsze miejsca w ewentualnie organizowanych konkursach. | |
4,5 | Wykazanie się samodzielnością w powiązaniu z podstawowym stopniem oryginalności pracy. Wynikowa praca charakteryzuje się ciekawym podejściem, nawet jeśli zawiera błędy. Możliwe są również środkowe (na przykład 2-gie) miejsca w ewentualnych konkursach. | |
5,0 | Praca z oryginalnym i podpartym argumentami punktem widzenia autora lub niebanalnym zestawieniem istniejacej wiedzy albo 1-wsze miejsce w odpowiednim konkursie. |
Literatura podstawowa
- P.E. Ceruzzi, A History of Modern Computing, MIT Press 2003, 2011
- W. Stallings, Organizacja i architektura systemu komputerowego, WNT, 2011
- R. Pełka, Mikrokontrolery, architektura, programowanie, zastosowania, WKŁ, 2011
- J. Stokes, Inside the Machine, No Starch Press, 2011
- J.L. Hennessy, D.A. Patterson, Computer Architecture, A Quantitative Approach, Morgan Kaufmann 2003, 2011
- P. Lapsley, J. Bier, A. Shoham, DSP Processor Funcamentals, Architectures and Features, IEEE Press, 2011
Literatura dodatkowa
- J. Silc, B. Robic, T Ungerer, Processor Architecture From Dataflow to Superscalar and Beyond, Springer Verlag, 2011
- R. Rojas, U. Hashagen, The First Computers, MIT Press, 2011
- L. Wanhammar, DSP Integrated Circuits, Academic Press, 2011
- T. Shanley, Protected Mode Software Architecture, Addison-Wesley 2003, 2011
- H. Corporaal, Microprocessor Architectures: From VLIW to TTA, Wiley, 2011
- C.M. Maxfield, The Design Warrior’s Guide to FPGAs, Linacre House, 2011