Cílem předmětu je seznámit studenty se základním technickým vybavením počítačů a principem činnosti jejich jednotlivých částí. Vybrané principy jsou demonstrovány na mikropočítačích, osobních počítačích a GPU (dostupné architektury). Absolvováním kurzu získají studenti znalosti o základních komponentách počítače a pochopí obecné principy jejich fungování. Během praktické části kurzu si studenti osvojí schopnost vyvíjet programy pro mikropočítače, víceprocesorové počítače a programování GPU. Seznámí se také se základy programování v jazyce symbolických instrukcí.
Přednášky
Cvičení (v učebně)
Experimentální práce v laboratoři
Studenti v předmětu získají znalosti o základních komponentách počítače a pochopí obecné principy jejich fungování.
[1] Olivka P.: Studijní materiály v elektronické verzi pro předmět APPS (česky), http://poli.cs.vsb.cz/edu/apps/osnova.html
[2] Olivka P.: Programování ve jazyce symbolických instrukcí, elektronická verze studijních materiálů, http://poli.cs.vsb.cz/edu/soj
[3] Olivka, P., Seidl, D.: Návody do cvičení, elektronická verze, http://poli.cs.vsb.cz/edu/apps/
[3] Ličev L.: Architektury počítačů, 2010, Elektronický sborník přednášek k předmětu Architektury počítačů.
[4] Patterson, D.: The Top 10 Innovations in the New NVIDIA Fermi Architecture, and the Top 3 Next Challenges. 2009.
[1] Hennessy J. L, Patterson D. A., Computer Architecture, 4th ed., A Quantitative Approach, Morgan Kaufmann, 2006, ISBN 978-0-12-370490-0
[2] Hennessy J. L, Patterson D. A., Computer Architecture, 5th ed., A Quantitative Approach, Morgan Kaufmann, 2011, ISBN 978-0123838728
[3] David Patterson, John Hennessy, Computer Organization and Design, 4th ed., Morgan Kaufmann, 2011, ISBN 9780080886138
[4] David Patterson, John Hennessy, Computer Organization and Design MIPS Edition, 5th ed., Morgan Kaufmann, 2013, ISBN 978-0124077263
Během semestru studenti získávají body za úkoly ve cvičení.
Programování v jazyce C.
| Kód předmětu | Zkratka | Název | Povinnost |
|---|---|---|---|
| 440-2102 | LO | Logické obvody | Doporučená |
| 460-2001 | ALG I | Algoritmy I | Doporučená |
| 460-2003 | ALG II | Algoritmy II | Doporučená |
| 460-2042 | PR I | Programování I | Doporučená |
| 460-2043 | PR II | Programování II | Doporučená |
Předmět nemá žádné korekvizity.
Přednášky:
- Technologie výroby číslicových obvodů. Architektura počítače dle von Neumanna, harvardská, základní vlastnosti a principy činnosti.
- Strojová instrukce, adresování, adresní prostory. Měření výkonu počítačů.
- Principy komunikace s perifériemi, V/V brány, programové řízení, přerušení, řešení priorit. Činnost DMA kanálu a kanálu (SCSI), rozdíly v činnosti.
- Procesory CISC a RISC, základní rysy a podněty pro vznik, zřetězení, predikce skoků, hazardy, základní zástupci RISC.
- Procesory Intel, vývojová řada, základní rysy a vnitřní architektura.
- Procesory jiných firem, jejich vlastnosti a oblasti použití.
- Monolitické počítače, požadavky na konstrukci, vlastnosti a použití, typické integrované periférie. Mikrokontrolery firmy Microchip a Atmel.
- Organizace pamětí v počítačích, paměťová hierarchie. Vnitřní paměti statické, dynamické, organizace virtuální paměti. Paměti vnější - magnetické, optické, magneto-optické. Rozhraní IDE PATA/SATA.
- Sběrnice, rozdělení signálů na adresní, datové a řídící. Cyklus sběrnice. Základní vlastnosti PCI, AGP a PCI Express technologie. USB.
- Videoadaptéry a zobrazovací jednotky. Princip činnosti zobrazovací jednotky a tvorby obrazu.
- Moderní trendy architektur počítačů. Architektury paralelních systémů a počítačů.
- Pokročilé architektury počítačů GPU – CUDA. Historie výpočtů na grafických akcelerátorech
- Paralelní architektury grafických procesorů (CUDA - Architektura Fermi).
- Super počítače a počítačové clustery a High Performance Computing.
Laboratorní cvičení:
- Bezpečnostní školení, seznámení s vývojovým Kitem a programovacím prostředím, programování jednoduché aplikace.
- Princip pulzně šířkové modulace, ovládání LED, jednoduchá animace.
- Pulzně šířková modulace,paralelní ovládání LED, skládání RGB barev, ovládání pomocí tlačítek.
- Ovládání LCD grafického displeje, skládání barev, zpracování bitmapového fontu.
- Ovládání LCD, zobrazení grafických i textových informací, jednoduchá aplikace ovládaná tlačítky.
- I2C sběrnice, ovládání expandéru a LED.
- I2C sběrnice, ovládání FM rádiového modulu, zobrazení RDS informací.
- Opakování témat programování mikropočítače.
- Vytváření vláken, rozložení algoritmu do více vláken.
- Programování základních algoritmů s využitím vláken, porovnání časové složitosti sekvenční a paralelní implementace.
- Technologie CUDA, základní koncepce programu, programování aplikace využívající vektory a matice.
- Technologie CUDA, zpracování digitálních obrázků, programování základních transformací.
- Technologie CUDA, vytváření jednoduchý animací.
- Opakování technologie CUDA a paralelního počítání.
Projekt: Projekt je tvořen samostatnou prací studentů mezi jednotlivými laboratorními úlohami.