Subject description - AD4B35APO

Summary of Study | Summary of Branches | All Subject Groups | All Subjects | List of Roles | Explanatory Notes               Instructions
AD4B35APO Architektura počítačů
Roles:  Extent of teaching:14KP+6KC
Department:13135 Language of teaching:CS
Guarantors:  Completion:Z,ZK
Lecturers:  Credits:6
Tutors:  Semester:L

Anotation:

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.

Study targets:

The course gives an overview of computer architecture and teach students the operation of a typical computing machine.

Course outlines:

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 implementation.
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 paravirtualization.
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
system.

Exercises outline:

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
<

Literature:

[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 http://webster.cs.ucr.edu/AoA/
[7] Bach., M., J.: The Design of the UNIX Operating System,
Prentice Hall, 1986
[8] Bayko., J.: Great Microprocessors of the Past and Present
http://www.cpushack.com/CPU/cpu.html

Requirements:

Basic knowledge of C language and area of combinatorial and sequential logic circuits. Basic knowledge of command line and compilers use in POSIX standard conformant environment (i.e. Linux) is invited.

Subject is included into these academic programs:

Program Branch Role Recommended semester


Page updated 28.3.2024 09:54:15, semester: Z,L/2023-4, Z/2024-5, Send comments about the content to the Administrators of the Academic Programs Proposal and Realization: I. Halaška (K336), J. Novák (K336)