Navigation

M505 - Architecture of computer systems

Course specification
Type of study Bachelor academic studies
Study programme
Course title Architecture of computer systems
Acronym Status Semester Number of classes ECTS
M505 mandatory 5 3L + E 6.0
Lecturers
Lecturer
Lecturer/Associate (practicals)
    Prerequisite Form of prerequisites
    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.
    Content
    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
    Evaluation and grading