Objectives and competences
The objective of this course is that students will understand the architecture and basic components of a microcomputer system and be able to design microcomputer hardware and software.
Content (Syllabus outline)
• • Introduction: computer architecture and organization, structural and functional view of the computer, a brief history of computers, evolution of the Intel x86 architecture, embedded systems and ARM, comparison of CISC and RISC architectures, cloud computing.
• Performance: trends in designing for performance, multicore processors, graphics processing units, performance assessment, SPEC benchmarks, Amdahl’s law.
• A top-level view of computer function: computer components, program execution, instruction cycle, machine cycles, interrupts, interconnection structures, buses, point-to-point interconnect.
• Memory: memory hierarchy, cache, random access memory (DRAM, SRAM), read-only memory (ROM, PROM, EPROM, EEPROM), flash memory (FLASH), advanced DRAM organizations.
• Central processing unit: instruction sets, machine instruction characteristics, types of operands and operations (detailed for Intel x86 and ARM), addressing modes and instruction formats (detailed for Intel x86 and ARM).
• Tools for microcomputer hardware designing and testing: logical analyzers, simulators, emulators.
• Tools for microcomputer software designing and testing: assembler, higher-level computer language compilers, linkers, loaders, debuggers.
• Examples of microprocessor system design with the emphasis on communication between a microprocessor and real environment and the integration of hardware and software written either in assembler or higher-level programming language.
Learning and teaching methods
• lectures,
• tutorial,
• lab work,
• homework assignments
Intended learning outcomes - knowledge and understanding
• explain the historical development of microcomputer architectures
• calculate and evaluate the performance of the microprocessor system
• explain the principles of microcomputer system hardware
• analyze and design hardware of the small microprocessor-based system
• write software for a microprocessor-based system in assembler and high-level programming language
Intended learning outcomes - transferable/key skills and other attributes
• Communication skills: oral lab work defense, manner of expression at written examination.
• Use of information technology: programming and use of program tools for hardware and software development of microprocessor-based systems.
• Problem solving: designing and implementing simple microprocessor-based systems.
• Working in a group: collaboration at lab work.
Readings
• W. Stallings: Computer Organization and Architecture: Designing for Performance, Eleventh Edition, Pearson Education Inc, Hoboken, New Jersey, 2019
• Y. Zhu: Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C, Second Edition, E-Man Press LLC, 2015
• Brey, B. B. (2000). The Intel microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium, Pentium Pro, and Pentium II processors: architecture, programming, and interfacing (5th ed., p. IX, 966). Prentice Hall.
• Brezočnik, Z. (2025). Mikroračunalniške arhitekture: zbirka rešenih nalog (1 izd.). Univerza v Mariboru, Univerzitetna založba; Fakulteta za elektrotehniko, računalništvo in informatiko. https://press.um.si/index.php/ump/catalog/book/1055
Prerequisits
Basic knowledge of digital logic is recommended.
Additional information on implementation and assessment The written exam may be substituted with continuous knowledge testing and assessment.