2251 - 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 |
2251 | 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 | ||||