Lecturer(s)


Skrbek Miroslav, Ing. Ph.D.

Novák Václav, Ing. CSc.

Course content

Lectures 1. Numerical systems, binary numbers and operations. Character encoding 2. Negative number encoding, floating point numbers 3. Boolean variable and function, Boolean algebra. Truth tables, full normal forms. logical gates, combinational circuits 4. Integrated circuit technology, CMOS transistors, structure of logical gates, power consumptions 5. Sequential circuits. Finite state automata (Meally, Moore) 6. Basic function blocks of the computer. Von Neumann and Harvard architectures. 7. Instruction cycle of a computer, instruction types, addressing modes, basic x86 instructions 8. Interrupt, a principle, interrupt vectors, interrupt masking 9. Memory subsystem. Memory hierarchy, memory types, address spaces. Caches, function and construction. DMA 10. Virtual memory, address translation, TLB 11. Instruction set architectures: accumulator, stack and register 12. Virtual machines, processor virtualization, Java VM. 13. Amdahl law. Basic principle of instruction pipelining, vector, multithreaded and multicore architectures. Seminars: 1. Introduction. Binary numbers, conversions. Character encoding 2. Boolean functions, truth tables, combinatorial circuit 3. Sequential circuits, Dflipflop, register, finite state automata (Meally, Moore) 4. Programming in assembler I 5. Programming in assembler II 6. Cache, design, function 7. Virtual memory, address translation

Learning activities and teaching methods

Monologic (reading, lecture, briefing), Laboratory
 Preparation for classes
 21 hours per semester
 Semestral paper
 20 hours per semester
 Preparation for exam
 40 hours per semester
 Class attendance
 39 hours per semester

Learning outcomes

The aim of the course is to teach students the basic architecture and principles on which modern digital computers are designed. Students will acquire a theoretical basis including numerical systems, representation of integer and floatingpoint data types, Boolean functions, Boolean algebra laws and finite automata. They will also learn basic computer architectures, their functional blocks and the basic instruction cycle of the computer. Particular attention is paid to the instructions, their types, coding, and instruction set architectures. Emphasis is placed on the memory subsystem, cache and memory virtualization. Lectures also include advanced multithreaded and multicore architectures.
In this course students acquire basic knowledge of the principles on which current computers work.

Prerequisites

Passive knowledge of English, basic programming knowledge

Assessment methods and criteria

Written examination, Test, Interim evaluation
Each student may take 100 points (55 points examination, 45 points tutorial). The assessment requirement is equal to 25 points per semester. For passing examination, the total number of points (examination and tutorial) must be greater or equal to 50 and the examination test must be evaluated to one half points or more. If any of these conditions is not satisfied, the student fails.

Recommended literature


Hana Kubátová. Struktura a architektura počítačů s řešenými příklady. Nakladatelství ČVUT, 2018. ISBN 9788001064108.

HENNESSY, John L., David A. PATTERSON. Computer architecture: a quantitative approach. Morgan Kaufmann/Elsevier, 2017. ISBN 978012119068.

Hennessy, John L.; Patterson, David A. Computer architecture : a quantitative approach. Fifth edition. Waltham : Morgan Kaufmann, 2012. ISBN 9780123838728.

Jim Ledin. Modern Computer Architecture and Organization. Packt Publishing, 2020. ISBN 9781838984397.

Patterson, D., A., Hennesy J., L. Computer Organization and Design RISCV Edition: The Hardware Software Interface. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA, 2017. ISBN 9780128122754.
