Computer Architectures

Semestr: Summer

Range: 2+2L


Credits: 6

Programme type:

Study form: Fulltime

Course language: English


Subject provides overview of basic building blocks of computer systems. Explanation starts from hardware side where it extends knowledge presented in the subject Structures of computer systems. Topics covers building blocks description, CPU structure, multiple processors interconnections, input/output subsystem and basic overview of network and busses topologies. Emphasis is placed on clarification of interconnection of hardware components with software support, mainly lower levels of operating systems, device drivers and virtualization techniques. General principles are more elaborated during presentation of examples of multiple standard PU architectures. Exercises are more focused on the software view to the contrary. Students are lead from basic multi threading programming to the interaction with raw hardware.


Course syllabus:

1. Architecture, structure and organization of computers and its subsystems.
Data and numbers representation and storage in computer systems (signed integer numbers, IEEE-754).
2. CPU concept and techniques development. RISC (load-store) and CISC processors
comparison. Pipelining, jump prediction and super-scalar CPU.
3. Processors networks, parallel systems and interconnection networks.
Topologies, communication. Symmetric multiprocessing, NUMA architectures.
4. Hierarchical concept of memory subsystem, memory management, data consistency,
from MSI till MOESI protocols, control instructions and atomic operations.
5. I/O computer subsystem, I/O control. Peripherals,
DMA, data consistency considerations for DMA operations.
6. Computer system, Technical and organization means.
External events processing (interrupts), exceptions, real time clocks.
7. Computer networks, network topologies, communication. LAN, MAN, WAN
and control area networks.
8. Parameters passing for subroutines and operating system implemented virtual instructions.
Stack frames, register windows, privilege modes switching and system calls
9. Multi-level computer organization, virtual machines. Conventional
(ISA) architecture and implementation dependant microarchitecture.
Portable bytecode and virtual programming environments (Java,
C#/.Net). Virtualization techniques (i.e. XEN, VMWARE) and
10. Classic register memory-oriented CISC architecture.
Principles demonstrated on FreeScale M68xxx/ColdFire architecture.
MMU implementation, cache, busses etc.
11. INTEL x86 processor family from 8086 to EMT64, main focus
on 32-bit and 64-bit operating modes supplemented with compatibility
dictated 16-bit 8086 mode and 80286 segmented approach and
why it is used minimally by todays OSes. SIMD instruction examples (MMX, SSE).
12. Short overview of RISC architectures and CPUs optimized for embedded
applications - ARM, ColdFire and PowerPC.
13. Common system and I/O buses used in computer systems (ISA,
PCI, PCIexpress, USB, SCSI, SATA, VME,.). Main focus paid
to replacement of parallel busses by multilane serial busses.
Advantages and disadvantages of this approach for RT control.
14. Analog and digital I/O interfacing, data acquisition and processing

Seminar syllabus:

1. Introduction, labs program, safety, real time (RT) control
2. Basic introduction to Linux operating system environment
Task 1 - Practice of algorithm implementation in C language
3. Task 2 - Processes and signals
4. Task 3 - Threads
5. Task 4 - Networking and sockets
6. Task 5 - Serial communication
7. Reserve for task 1 - 5 completion
8. Description of the main task - position and revolution control of DC motor. Input IRC, output PWM, visualization
9. Test. 3 theoretical tasks from seminaries topics and practical part
10. Independent solving of main task
11. Independent solving of main task
12. Independent solving of main task
13. Main task hand in and presentation
14. Assessment


[1] Hennessy, J. L., and D. A. Patterson. Computer Architecture: A
Quantitative Approach, 3rd ed. San Mateo, CA: Morgan Kaufman, 2002.
ISBN: 1558605967.
[2] Patterson, D. A., and J. L. Hennessy. Computer Organization and
Design: The Hardware/Software Interface, 3rd ed. San Mateo, CA: Morgan
Kaufman, 2004. ISBN: 1558606041.
[3] Andrew S. Tanenbaum: Structured Computer Organization. Printice Hall, 2006. ISBN-10:0131485210.
[4] Andrew S. Tanenbaum: Computer Networks. Prentice Hall 2003. ISBN-10:0-13-066102-3.
[5] Andrew S. Tanenbaum: Modern Operating Systems. Prentice Hall 2001
[6] Hyde, R.: The Art of Assembly Language, 2003, 928 pp.
ISBN-10 1-886411-97-2
ISBN-13 978-1-886411-97
[7] Bach., M., J.: The Design of the UNIX Operating System,
Prentice Hall, 1986
[8] Bayko., J.: Great Microprocessors of the Past and Present