Učni načrt predmeta

Predmet:
Računalniške strukture in sistemi
Course:
Computer Structures and Systems
Študijski program in stopnja /
Study programme and level
Študijska smer /
Study field
Letnik /
Academic year
Semester /
Semester
Informacijske in komunikacijske Računalniške strukture in sistemi 1 1
Information and Communication Computer Structures and Systems 1 1
Vrsta predmeta / Course type
Izbirni
Univerzitetna koda predmeta / University course code:
IKT2-698
Predavanja
Lectures
Seminar
Seminar
Vaje
Tutorial
Klinične vaje
work
Druge oblike
študija
Samost. delo
Individ. work
ECTS
60 30 60 450 20

*Navedena porazdelitev ur velja, če je vpisanih vsaj 15 študentov. Drugače se obseg izvedbe kontaktnih ur sorazmerno zmanjša in prenese v samostojno delo. / This distribution of hours is valid if at least 15 students are enrolled. Otherwise the contact hours are linearly reduced and transfered to individual work.

Nosilec predmeta / Course leader:
izr. prof. dr. Gregor Papa
Sodelavci / Lecturers:
prof. dr. Peter Korošec
Jeziki / Languages:
Predavanja / Lectures:
slovenščina, angleščina / Slovenian, English
Vaje / Tutorial:
Pogoji za vključitev v delo oz. za opravljanje študijskih obveznosti:
Prerequisites:

Zaključen študijski program prve stopnje s področja naravoslovja, tehnike ali računalništva.

Student must complete first-cycle study programmes in natural sciences, technical disciplines or computer science.

Vsebina:
Content (Syllabus outline):

Uvod: Pregled razvoja računalništva, abstraktni nivoji računalniškega sistema.

Osnovna računalniška arhitektura: Predstavitev podatkov v računalniških sistemih, enostaven računalniški sistem (CPE, vodilo, urini signali, vhodno/izhodni podsistem, prekinitve).

CPE: Struktura, nabor ukazov, računska aritmetika.

Vodilo: Vrste povezav, arhitekture, krmilni mehanizmi.

Pomnilnik: Vrste pomnilnika, pomnilniška hierarhija, predpomnilnik, interni pomnilnik, zunanji pomnilnik, virtualni pomnilnik.

Periferija: Vrste vhodno/izhodnih enot, arhitekture, krmilni mehanizmi.

Procesorske arhitekture: Procesorji z reduciranim naborom ukazov, procesorji s kompleksnim naborom ukazov, superskalarni procesorji, GPE.

Vzporedne računalniške arhitekture: Topologije, deljen in porazdeljen način procesiranja, večjedrni procesorji, gruče, gridi.

Metodologije snovanje računalniških sistemov: Osnovne polprevodniške tehnologije, glavni koraki sinteze sistema, jeziki za opis strojne opreme.

Metodologije snovanja vgrajenih sistemov: Načrtovalske metodologije, arhitekture vgrajenih mikroprocesorjev.

Metodologije sočasnega načrtovanja strojne in programske opreme: Koncepti sočasnega načrtovanja, delitev sistema na komponente strojne in programske opreme ter njihova sinteza.

Meritve in analize zmogljivosti: Osnovni izračuni zmogljivosti računalniških sistemov, zgledovalno primerjanje, metrike, optimizacija delovanja procesorske enote.

Introduction: Overview of development of computer systems, abstract levels of computing systems.

Basic computer structure: Data representation in computer systems, a simple computer system (CPU, bus, clocks, input/output subsystem, interrupts).

CPU: Structure, instruction set, computer arithmetic.

Bus: Connection types, architectures, control mechanisms.

Memory: Types of memory, memory hierarchy, cache memory, internal memory, external memory, virtual memory.

Peripherals: Input/output unit types, architectures, control mechanisms.

Processor architectures: Processors with reduced instruction set, processors with complex instruction set, superscalar processors, GPUs.

Parallel computer architectures: Topologies, shared and distributed processing, multi-core processors, clusters, grids.

Computer systems design methodologies: Basic semiconductor technologies, essential system synthesis steps, hardware description languages.

Embedded system design methodologies: Design methodologies, architecture of embedded microprocessors.

Methodologies for hardware/software codesign: Modeling concepts, system partitioning to hardware and software components, hardware/software codesign platforms, synthesis.

Performance measurement and analysis: Basic approaches to computer performance evaluation, benchmarking, metrics, CPU performance optimization.

Temeljna literatura in viri / Readings:

Izbrana poglavja iz naslednjih knjig: / Selected chapters from the following books:
- P.R. Schaumont, A Practical Introduction to Hardware/Software Codesign. Springer, 2013, ISBN: 978-1-4614-3736-9.
- R. Skhiri, V. Fresse, J.P. Jamont, B. Suffran, J. Malek, From FPGA to Support Cloud to Cloud of FPGA: State of the Art, International Journal of Reconfigurable Computing, ISSN: 1687-7195, Vol. 2019, doi: 10.1155/2019/8085461
- W. Stallings, Computer Organization and Architecture: Designing for Performance, 9 edition. Prentice Hall, 2012. ISBN: 978-0132936330.
- M. Wolf, Computers as Components. Academic Press, 2012. ISBN 978-0123884367.
- P. Marwedel, Embedded System Design. Springer, 2011. ISBN: 978-94-007-0257-8.

Cilji in kompetence:
Objectives and competences:

Cilj tega predmeta je posredovati splošno znanje o računalniški arhitekturi. Predstavljene so osnovne računalniške strukture (procesorji, pomnilnik, vhodno/izhodni podsistemi in sistemi za shranjevanje podatkov), ki imajo neposreden vpliv na izvajanje programov. Študij računalniške arhitekture se osredotoča na povezavo med strojno in programsko opremo. Izvedbeni primeri so opisani do mere, kolikor je potrebno za razumevanje struktur in delovanja računalniškega sistema.

Slušatelji pridobijo osnovno teoretično razumevanje in praktične izkušnje s področja računalniških arhitektur (vključno z naprednimi procesorskimi arhitekturami, vzporednim procesiranjem in metodologijo snovanja vgrajenih sistemov), kar je predpogoj za dobro programiranje in učinkovite aplikacije v praksi.

The goal of this course is to provide an overview of computer architecture. The course introduces the major structures (processors, memory, input/output subsystems and storage systems) that have direct influence on the execution of programs. The study of computer architecture focuses on the interface between hardware and software. Implementation issues are covered to the extend necessary to understand the structure and operation of a computer system.

Students gain basic theoretical understanding and practical knowledge of computer architecture (including advanced processor architectures, parallel processing, and principles of embedded system design), which is a prerequisite for good programming practice and efficient applications in practice.

Predvideni študijski rezultati:
Intendeded learning outcomes:

Študenti bodo z uspešno opravljenimi obveznostmi tega predmeta pridobili:
- poznavanje razvoja računalništva in razumevanje konceptov računalniške arhitekture
- poznavanje zgradbe in delovanja glavnih funkcijskih delov računalniških sistemov
- zmožnost optimiziranja programske opreme ob upoštevanju značilnosti dane računalniške arhitekture
- poznavanje naprednih računalniških arhitektur, njihovih lastnosti in omejitev z vidika možne uporabe v praksi
- sposobnost integriranja znanja in obvladovanja zahtevnosti pri reševanju specifičnih problemov v računalniških aplikacijah
- poznavanje konceptov zgledovalnega primerjanja in zmožnost interpretiranja in predstavitev rezultatov primerjanja

Students successfully completing this course will acquire:
- Knowledge of development of computer systems and understanding of concepts of computer architecture
- Knowledge of structure and operation of the main functional parts of computer systems
- Ability to optimize programs by considering specifics of given computer architecture
- Knowledge of the advanced computer architectures and awareness of their features and limits for possible applications in practice
- Ability to integrate knowledge and handle complexity when solving specific problems in computer applications,
- Knowledge with the concepts of benchmarking and be able to interpret and present the results of benchmarking.

Metode poučevanja in učenja:
Learning and teaching methods:

Predavanja, seminar, konzultacije, individualno delo.

Lectures, seminar, consultations, individual work.

Načini ocenjevanja:
Delež v % / Weight in %
Assesment:
Seminarska naloga
50 %
Seminar work
Ustni zagovor seminarske naloge
50 %
Oral defense of seminar work
Reference nosilca / Lecturer's references:
1. HRIBAR, Rok, HRGA, Timotej, PAPA, Gregor, PETELIN, Gašper, POVH, Janez, PRŽULJ, Nataša, VUKAŠINOVIĆ, Vida. Four algorithms to solve symmetric multi-type non-negative matrix tri-factorization problem. Journal of global optimization. 2022, vol. 82, pp. 283-312, DOI: 10.1007/s10898-021-01074-3.
2. RAUT, Gopal, BIASIZZO, Anton, DHAKAD, Narendra, GUPTA, Neha, PAPA, Gregor, VISHVAKARMA, Santosh Kumar. Data multiplexed and hardware reused architecture for deep neural network accelerator. Neurocomputing. [Print ed.]. 2022, vol. 486, pp. 147-159, DOI: 10.1016/j.neucom.2021.11.018.
3. BIASIZZO, Anton, KOROUŠIĆ-SELJAK, Barbara, VALENČIČ, Eva, PAVLIN, Marko, SANTO-ZARNIK, Marina, BLAŽICA, Bojan, O'KELLY, Damian, PAPA, Gregor. An open-source approach to solving the problem of accurate food-intake monitoring. IEEE access. 2021, vol. 9, pp. 162835-162846, DOI: 10.1109/ACCESS.2021.3128995.
4. PETELIN, Gašper, LEHNIGK, Ronald, KELLING, Jeffrey, PAPA, Gregor, SCHLEGEL, Fabian. GPU-based accelerated computation of coalescence and breakup frequencies for polydisperse bubbly flows. In: NENE 2021: 30th International Conference Nuclear Energy for New Europe: September 6-9, Bled, Slovenia : NENE 2021. 2021. pp. 602.1-602.8.
5. EFTIMOV, Tome, PETELIN, Gašper, KOROŠEC, Peter. DSCTool : a web-service-based framework for statistical comparison of stochastic optimization algorithms. Applied soft computing. 2020, vol. 87, pp. 105977-1-105977-11, DOI: 10.1016/j.asoc.2019.105977.