Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

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 nauki techniczne, studia inżynierskie
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

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
wykładyW3 30 1,70,62egzamin
laboratoriaL3 30 2,30,38zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Student ma podstawową wiedzę w zakresie programowania w C++.
W-2Student ma podstawową wiedzę w zakresie układów cyfrowych.
W-3Student ma podstawową wiedzę w zakresie budowy i rodzajów pamięci komputerowych.

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Umiejetnosc rozumienia schematów blokowych architektur procesorów, ze szczególnym uwzględnieniem rozumienia konsekwencji stosowania wybranych mechanizmów.
C-2Umieję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-3Umiejetność 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-4Wiedza o wszyskich fundamentalnych architekturach komputerów oraz zarysie historii prac nad tymi architekturami.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Rozkł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-2Samodzielnie złożony, najprostszy system komputerowy.2
T-L-3Program 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-4WIN32ASM - 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-5Integracja 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-6MS 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-7Obsł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-8Obsługa kamery w MSWindows. Celem laboratorium jest napisanie aplikacji do śledzenia czerwonego punktu na obrazie. W laboratorium wykorzystano interfejs VfW.2
T-L-9Obsł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-10Obsł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-11FPGA, 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-12FPGA, 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-13ARM9 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-14Windows 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-15Zaliczenie zajęc laboratoryjnych2
30
wykłady
T-W-1Stan obecny i historia rozwoju architektur systemów komputerów.2
T-W-2Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86.2
T-W-3Układ wykonawczy od środka i assembler dla architektury x86.2
T-W-4Układ sterujący: synteza, DMA, przerwania, segmentacja pamięci.2
T-W-5Hierarchia pamięci, MMU i tryb chroniony procesorów, pamięć cache i macierze RAID.2
T-W-6Tryb chroniony i MMU.2
T-W-7Budowa i programowanie sterowników sprzętu dla systemów MSWindows oraz Linux.2
T-W-8Architektura systemów mobilnych. Procesor ARM i szyny procesora.2
T-W-9Szybkie wprowadzenie do procesorów o równoległości poziomu instrukcji (ILP) i prawo Amdahla.2
T-W-10Procesory ILP: architektura superskalarna.2
T-W-11Procesory ILP: VLIW i procesory DSP.2
T-W-12Współczesne superkomputery: SMP, klastry, CC-NUMA oraz procesory wektorowe/macierzowe.2
T-W-13Architektury typowych współczesnych procesorów PC.2
T-W-14Alternatywy do architektury von Neumanna: dataflow i systemy rekonfigurowalne.2
T-W-15Aktualne badania naukowe w dziedzinie ASK (1h) + powtórka przed egzaminem (1h)2
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie do zajęć16
A-L-3Przygotowanie do zaliczenia kolejnych bloków tematycznych, czyli do uzyskania cząstkowych ocen wpływających na ostateczną ocenę z zajęć laboratoryjnych16
A-L-4Udział w konsultajach i zaliczeniu formy zajęć6
68
wykłady
A-W-1Uczestnictwo w zajęciach30
A-W-2Przygotowanie się do egzaminu - praca własna studenta14
A-W-3konsultacje4
A-W-4Udział w egzaminie2
50

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1Wykład informacyjny
M-2Ćwiczenia laboratoryjne.

Sposoby oceny

KODSposób oceny
S-1Ocena formująca: Raport w formie opisu budowy oraz poszczególnych wybranych elementów elektronicznych na wybranej płycie głównej
S-2Ocena formująca: Pisemne kolokwium: kod na wybrane zadanie w assemblerze na architekturę x86. Szczególne uwzględnienie maskowania oraz adresowania pośredniego.
S-3Ocena formująca: Częściowy egzamin pisemny: interpretacja schematu blokowego wybranej architektury komputera.
S-4Ocena podsumowująca: Egzamin ustny: znajomość fundamentalnyc architektur komputerów i zagadnień związanych z ich efektywnością.
S-5Ocena podsumowująca: Konkurs projektów praktycznych dla najbardziej aktywnych studentów (na ocenę 4.0 do 5.0).
S-6Ocena 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łceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposó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_W21C-4T-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-1M-1S-4
I_1A_C/12_W02
Student rozumie podstawy warstwy fizycznej systemu komputerowego, w kontekście środowiska koniecznego do pracy procesora.
I_1A_W03C-1T-W-2, T-L-1, T-L-2M-1, M-2S-1

Zamierzone efekty kształcenia - umiejętności

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C/12_U01
Student umie programować aplikacje wykorzystujace podstawowe urzadzenia i sterowniki sprzetowe.
I_1A_U04C-3T-W-2, T-W-3, T-L-4, T-L-5, T-L-3M-1, M-2S-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_U18C-1, C-2T-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-13M-1, M-2S-3

Zamierzone efekty kształcenia - inne kompetencje społeczne i personalne

Zamierzone efekty kształceniaOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów kształcenia prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_1A_C/12_K01
Promowanie samodzielności myślenia oraz praktycznego podejścia do problemów
I_1A_K01, I_1A_K04C-1, C-3T-W-14, T-L-15M-1, M-2S-6, S-5

Kryterium oceny - wiedza

Efekt kształceniaOcenaKryterium 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,0brak
3,0Student 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,5Student umie płynnie i bezbłędnie omówić zagadnienia na ocenę dostateczną.
4,0Student 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,5Student 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,0Student 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,0brak
3,0Student 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,5Student zna także nietypowe rozwizania płyt procesorowych, na przykład routera czy smartphona.
4,0Student 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,5Student umie skonstruować własny system komputerowy do zastosowań specjalnych (czujniki, sterowniki ) na bazie dostępnych platform dydaktyczneych.
5,0Student umie zaprojektować swój system komputerowy na bazie płytki PCB oraz zaprogramować procesor.

Kryterium oceny - umiejętności

Efekt kształceniaOcenaKryterium oceny
I_1A_C/12_U01
Student umie programować aplikacje wykorzystujace podstawowe urzadzenia i sterowniki sprzetowe.
2,0brak
3,0student 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,5Student umie samodzielnie rozszerzyć w prostej formie kody z konspektów.
4,0Student 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,5Studen 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,0Studen 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,0brak
3,0Student 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,5Student rozumie konsekwencje wybranych rozwiązań architektonicznych na efektywność systemu komputerowego.
4,0Student umie samodzielnie zaproponować podstawowe modyfikacje architektoniczne w celu poprawienie efektywności wybranych mechanizmów oraz rozumie problemy wynikające z wykorzystania tych modyfikacji.
4,5Student 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,0Student 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łceniaOcenaKryterium oceny
I_1A_C/12_K01
Promowanie samodzielności myślenia oraz praktycznego podejścia do problemów
2,0nie dotyczy
3,0Student umie wykonać powierzone mu zadania, gdy ma wszystko precyzyjnie wytłumaczone i zorganizowane w sekwencje kroków do wykonania.
3,5Student 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,0Wykazanie 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,5Wykazanie 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,0Praca z oryginalnym i podpartym argumentami punktem widzenia autora lub niebanalnym zestawieniem istniejacej wiedzy albo 1-wsze miejsce w odpowiednim konkursie.

Literatura podstawowa

  1. P.E. Ceruzzi, A History of Modern Computing, MIT Press 2003, 2011
  2. W. Stallings, Organizacja i architektura systemu komputerowego, WNT, 2011
  3. R. Pełka, Mikrokontrolery, architektura, programowanie, zastosowania, WKŁ, 2011
  4. J. Stokes, Inside the Machine, No Starch Press, 2011
  5. J.L. Hennessy, D.A. Patterson, Computer Architecture, A Quantitative Approach, Morgan Kaufmann 2003, 2011
  6. P. Lapsley, J. Bier, A. Shoham, DSP Processor Funcamentals, Architectures and Features, IEEE Press, 2011

Literatura dodatkowa

  1. J. Silc, B. Robic, T Ungerer, Processor Architecture From Dataflow to Superscalar and Beyond, Springer Verlag, 2011
  2. R. Rojas, U. Hashagen, The First Computers, MIT Press, 2011
  3. L. Wanhammar, DSP Integrated Circuits, Academic Press, 2011
  4. T. Shanley, Protected Mode Software Architecture, Addison-Wesley 2003, 2011
  5. H. Corporaal, Microprocessor Architectures: From VLIW to TTA, Wiley, 2011
  6. C.M. Maxfield, The Design Warrior’s Guide to FPGAs, Linacre House, 2011

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Rozkł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-2Samodzielnie złożony, najprostszy system komputerowy.2
T-L-3Program 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-4WIN32ASM - 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-5Integracja 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-6MS 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-7Obsł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-8Obsługa kamery w MSWindows. Celem laboratorium jest napisanie aplikacji do śledzenia czerwonego punktu na obrazie. W laboratorium wykorzystano interfejs VfW.2
T-L-9Obsł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-10Obsł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-11FPGA, 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-12FPGA, 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-13ARM9 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-14Windows 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-15Zaliczenie zajęc laboratoryjnych2
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Stan obecny i historia rozwoju architektur systemów komputerów.2
T-W-2Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86.2
T-W-3Układ wykonawczy od środka i assembler dla architektury x86.2
T-W-4Układ sterujący: synteza, DMA, przerwania, segmentacja pamięci.2
T-W-5Hierarchia pamięci, MMU i tryb chroniony procesorów, pamięć cache i macierze RAID.2
T-W-6Tryb chroniony i MMU.2
T-W-7Budowa i programowanie sterowników sprzętu dla systemów MSWindows oraz Linux.2
T-W-8Architektura systemów mobilnych. Procesor ARM i szyny procesora.2
T-W-9Szybkie wprowadzenie do procesorów o równoległości poziomu instrukcji (ILP) i prawo Amdahla.2
T-W-10Procesory ILP: architektura superskalarna.2
T-W-11Procesory ILP: VLIW i procesory DSP.2
T-W-12Współczesne superkomputery: SMP, klastry, CC-NUMA oraz procesory wektorowe/macierzowe.2
T-W-13Architektury typowych współczesnych procesorów PC.2
T-W-14Alternatywy do architektury von Neumanna: dataflow i systemy rekonfigurowalne.2
T-W-15Aktualne badania naukowe w dziedzinie ASK (1h) + powtórka przed egzaminem (1h)2
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie do zajęć16
A-L-3Przygotowanie do zaliczenia kolejnych bloków tematycznych, czyli do uzyskania cząstkowych ocen wpływających na ostateczną ocenę z zajęć laboratoryjnych16
A-L-4Udział w konsultajach i zaliczeniu formy zajęć6
68
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w zajęciach30
A-W-2Przygotowanie się do egzaminu - praca własna studenta14
A-W-3konsultacje4
A-W-4Udział w egzaminie2
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/12_W01Student 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.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W03zna podstawy elektroniki, techniki analogowej i cyfrowej, ze szczególnym uwzględnieniem ich stosowanych aspektów, niezbędne do opisu i analizy działania systemów elektronicznych, w tym systemów zawierających układy programowalne
I_1A_W10zna podstawowe architektury systemów komputerowych, w tym systemów wbudowanych
I_1A_W21ma wiedzę w zakresie technologii mobilnych
Cel przedmiotuC-4Wiedza o wszyskich fundamentalnych architekturach komputerów oraz zarysie historii prac nad tymi architekturami.
Treści programoweT-W-1Stan obecny i historia rozwoju architektur systemów komputerów.
T-W-4Układ sterujący: synteza, DMA, przerwania, segmentacja pamięci.
T-W-5Hierarchia pamięci, MMU i tryb chroniony procesorów, pamięć cache i macierze RAID.
T-W-6Tryb chroniony i MMU.
T-W-2Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86.
T-W-3Układ wykonawczy od środka i assembler dla architektury x86.
T-W-10Procesory ILP: architektura superskalarna.
T-W-7Budowa i programowanie sterowników sprzętu dla systemów MSWindows oraz Linux.
T-W-8Architektura systemów mobilnych. Procesor ARM i szyny procesora.
T-W-11Procesory ILP: VLIW i procesory DSP.
T-W-12Współczesne superkomputery: SMP, klastry, CC-NUMA oraz procesory wektorowe/macierzowe.
T-W-9Szybkie wprowadzenie do procesorów o równoległości poziomu instrukcji (ILP) i prawo Amdahla.
T-W-13Architektury typowych współczesnych procesorów PC.
T-W-14Alternatywy do architektury von Neumanna: dataflow i systemy rekonfigurowalne.
T-L-1Rozkł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.
Metody nauczaniaM-1Wykład informacyjny
Sposób ocenyS-4Ocena podsumowująca: Egzamin ustny: znajomość fundamentalnyc architektur komputerów i zagadnień związanych z ich efektywnością.
Kryteria ocenyOcenaKryterium oceny
2,0brak
3,0Student 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,5Student umie płynnie i bezbłędnie omówić zagadnienia na ocenę dostateczną.
4,0Student 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,5Student 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,0Student 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.
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/12_W02Student rozumie podstawy warstwy fizycznej systemu komputerowego, w kontekście środowiska koniecznego do pracy procesora.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_W03zna podstawy elektroniki, techniki analogowej i cyfrowej, ze szczególnym uwzględnieniem ich stosowanych aspektów, niezbędne do opisu i analizy działania systemów elektronicznych, w tym systemów zawierających układy programowalne
Cel przedmiotuC-1Umiejetnosc rozumienia schematów blokowych architektur procesorów, ze szczególnym uwzględnieniem rozumienia konsekwencji stosowania wybranych mechanizmów.
Treści programoweT-W-2Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86.
T-L-1Rozkł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.
T-L-2Samodzielnie złożony, najprostszy system komputerowy.
Metody nauczaniaM-1Wykład informacyjny
M-2Ćwiczenia laboratoryjne.
Sposób ocenyS-1Ocena formująca: Raport w formie opisu budowy oraz poszczególnych wybranych elementów elektronicznych na wybranej płycie głównej
Kryteria ocenyOcenaKryterium oceny
2,0brak
3,0Student 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,5Student zna także nietypowe rozwizania płyt procesorowych, na przykład routera czy smartphona.
4,0Student 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,5Student umie skonstruować własny system komputerowy do zastosowań specjalnych (czujniki, sterowniki ) na bazie dostępnych platform dydaktyczneych.
5,0Student umie zaprojektować swój system komputerowy na bazie płytki PCB oraz zaprogramować procesor.
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/12_U01Student umie programować aplikacje wykorzystujace podstawowe urzadzenia i sterowniki sprzetowe.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U04ma podstawowe umiejętności w zakresie programowania i podnoszenia niezawodności systemów wbudowanych
Cel przedmiotuC-3Umiejetność pisania podstawowych kodów niskopoziomowych, w języku assembler. Znajomosc podstawowych zagadnien konstrukcji kodu maszynowego. Umiejetnosc laczenia kodu niskopoziomowego i wysokopoziomowego w jednej aplikacji.
Treści programoweT-W-2Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86.
T-W-3Układ wykonawczy od środka i assembler dla architektury x86.
T-L-4WIN32ASM - 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.
T-L-5Integracja 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.
T-L-3Program 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).
Metody nauczaniaM-1Wykład informacyjny
M-2Ćwiczenia laboratoryjne.
Sposób ocenyS-2Ocena formująca: Pisemne kolokwium: kod na wybrane zadanie w assemblerze na architekturę x86. Szczególne uwzględnienie maskowania oraz adresowania pośredniego.
Kryteria ocenyOcenaKryterium oceny
2,0brak
3,0student 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,5Student umie samodzielnie rozszerzyć w prostej formie kody z konspektów.
4,0Student 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,5Studen 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,0Studen umie samodzielnie napisać kod obsługi wybranego urządzenia lub rozszerzyć wybrany konspekt w stopniu niebanalnym.
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/12_U02Student rozumie konsekwencje wyboru wybranych rozwiązań sprzętowych i potrafi konfigurować systemy komputerowe w celu zapewnienia wymaganej efektywności pracy systemu.
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_U06umie na poziomie podstawowym konfigurować systemy komputerowe
I_1A_U18umie opisywać i analizować działanie prostych systemów elektronicznych, w tym systemów zawierających układy programowalne
Cel przedmiotuC-1Umiejetnosc rozumienia schematów blokowych architektur procesorów, ze szczególnym uwzględnieniem rozumienia konsekwencji stosowania wybranych mechanizmów.
C-2Umiejętność rozumienia warunków koniecznych do pracy systemu komputerowego, zaczynając od podstawowego sysemu jednoprocesorowego po systemy wieloprocesorowe czy rozproszone jak klastry lub NUMA.
Treści programoweT-W-1Stan obecny i historia rozwoju architektur systemów komputerów.
T-W-4Układ sterujący: synteza, DMA, przerwania, segmentacja pamięci.
T-W-5Hierarchia pamięci, MMU i tryb chroniony procesorów, pamięć cache i macierze RAID.
T-W-6Tryb chroniony i MMU.
T-W-2Funkcjonowanie procesora, instrukcja, tryby adresowania i architektura x86.
T-W-3Układ wykonawczy od środka i assembler dla architektury x86.
T-W-10Procesory ILP: architektura superskalarna.
T-W-8Architektura systemów mobilnych. Procesor ARM i szyny procesora.
T-W-11Procesory ILP: VLIW i procesory DSP.
T-W-12Współczesne superkomputery: SMP, klastry, CC-NUMA oraz procesory wektorowe/macierzowe.
T-W-9Szybkie wprowadzenie do procesorów o równoległości poziomu instrukcji (ILP) i prawo Amdahla.
T-W-13Architektury typowych współczesnych procesorów PC.
T-W-14Alternatywy do architektury von Neumanna: dataflow i systemy rekonfigurowalne.
T-L-1Rozkł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.
T-L-2Samodzielnie złożony, najprostszy system komputerowy.
T-L-11FPGA, 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.
T-L-12FPGA, 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.
T-L-13ARM9 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.
Metody nauczaniaM-1Wykład informacyjny
M-2Ćwiczenia laboratoryjne.
Sposób ocenyS-3Ocena formująca: Częściowy egzamin pisemny: interpretacja schematu blokowego wybranej architektury komputera.
Kryteria ocenyOcenaKryterium oceny
2,0brak
3,0Student 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,5Student rozumie konsekwencje wybranych rozwiązań architektonicznych na efektywność systemu komputerowego.
4,0Student umie samodzielnie zaproponować podstawowe modyfikacje architektoniczne w celu poprawienie efektywności wybranych mechanizmów oraz rozumie problemy wynikające z wykorzystania tych modyfikacji.
4,5Student 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,0Student 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ń.
PoleKODZnaczenie kodu
Zamierzone efekty kształceniaI_1A_C/12_K01Promowanie samodzielności myślenia oraz praktycznego podejścia do problemów
Odniesienie do efektów kształcenia dla kierunku studiówI_1A_K01świadomie rozumie potrzeby dokształcania i dzielenia się wiedzą
I_1A_K04rozumie potrzebę przekazywania społeczeństwu informacji o rozwoju i osiągnięciach nauki w zakresie informatyki
Cel przedmiotuC-1Umiejetnosc rozumienia schematów blokowych architektur procesorów, ze szczególnym uwzględnieniem rozumienia konsekwencji stosowania wybranych mechanizmów.
C-3Umiejetność pisania podstawowych kodów niskopoziomowych, w języku assembler. Znajomosc podstawowych zagadnien konstrukcji kodu maszynowego. Umiejetnosc laczenia kodu niskopoziomowego i wysokopoziomowego w jednej aplikacji.
Treści programoweT-W-14Alternatywy do architektury von Neumanna: dataflow i systemy rekonfigurowalne.
T-L-15Zaliczenie zajęc laboratoryjnych
Metody nauczaniaM-1Wykład informacyjny
M-2Ćwiczenia laboratoryjne.
Sposób ocenyS-6Ocena podsumowująca: Prezentacja własnego oryginalnego zdania na wybrany temat z dziedziny przedmiotu (na ocenę 4.0 do 5.0).
S-5Ocena podsumowująca: Konkurs projektów praktycznych dla najbardziej aktywnych studentów (na ocenę 4.0 do 5.0).
Kryteria ocenyOcenaKryterium oceny
2,0nie dotyczy
3,0Student umie wykonać powierzone mu zadania, gdy ma wszystko precyzyjnie wytłumaczone i zorganizowane w sekwencje kroków do wykonania.
3,5Student 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,0Wykazanie 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,5Wykazanie 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,0Praca z oryginalnym i podpartym argumentami punktem widzenia autora lub niebanalnym zestawieniem istniejacej wiedzy albo 1-wsze miejsce w odpowiednim konkursie.