Architektura počítačů
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
AD4B35APO | Z,ZK | 6 | 14KP+6KC | Czech |
- Course guarantor:
- Lecturer:
- Tutor:
- Supervisor:
- Department of Control Engineering
- Synopsis:
-
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.
- 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.
- Syllabus of lectures:
-
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.
- Syllabus of tutorials:
-
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
<
- Study Objective:
-
The course gives an overview of computer architecture and teach students the operation of a typical computing machine.
- Study materials:
-
[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
- Note:
- Further information:
- No time-table has been prepared for this course
- The course is a part of the following study plans: