Architecture of computer systems

Acronym
2251
Status
mandatory
Semester
5
Number of classes
3L + E
ECTS
6.0
Study programme
Computer Science and Informatics
Module
Type of study
Bachelor academic studies
Lecturer/Associate (practicals)

No data

Lecturer/Associate (for OTC)
Prerequisite / Form of prerequisites

No data

Learning objectives

Acquiring theoretical knowledge about the principles of organization and functioning of the basic components of a classical computer system and about the concepts of parallel processing and organization of high-performance general-purpose computer systems, as well as acquiring practical knowledge about the development and implementation of low-level sequential and parallel programs.

Learning outcomes

Students will be able to describe and explain the basic terms, concepts and technologies of the organization of computer systems, to recognize the convenience of applying certain computer architectures and concepts in specific application areas, to be able to participate in the specification of requirements for the computer architecture of less to medium complex systems, to be able to create assembly programs based on the 80x86 instruction set.

Course contents

History of the development of computer architectures. Classifications of computer architectures. Classical computer organization: CPU, memory and I/O subsystem. Principles of operation of functional units. Exploitation of parallelism and architectural trends. SISD, SIMD, MISD, MIMD architectures. Exploitation of parallelism at the instructional level. Flow systems and congestion. Reduction of the negative effects of hazards. Superscalar and VLIW architectures. Architecture of current processors. Hierarchy and types of memory subsystem organization. Multiprocessor architectures. Coupling networks. Basic principles of assembly programming. Ways of addressing. General purpose instruction set for Intel processors. Linking assembly programs to Linux operating system system functions and standard C library functions. FPU programming. SIMD programming and parallelization by data: MMX and SSE instruction sets.

Teaching Methods

Lectures and laboratory exercises