The ultimate aim is an in-depth look into the structure and function of the computer and its components. First of all, we introduce the simplest building blocks of digital integrated circuits, which are assembled into more complex components of modern processing units; we study their structure, implementation and operation. Among the practical examples we present microcontrollers from ARM family and the latest models of Intel processors (e.g. Core i7). In large part, we focus on the speedup of computer systems by means of parallel computation on the instruction level within a single processing unit (pipeline) and then also at the level of aggregation of multiple units in a system (multi-core processors, multi-processors, multi-computers). We explain the reasons why the development runs primarily in the direction of parallelization of the systems and explain the consequences from the perspective of a programmer and a designer of computer systems. In this context, we also study the structure of the most powerful computers with a large number of processing units. In all these systems, powerful interconnection paths for data transfers are very important and also presented (e.g. PCI, USB, PCI Express). Then we explain the operation of some commonly used input and output devices - hard drives, flash memory and adequate data transfer types (e.g. Interrupts, DMA, I/O processors). In the context of laboratory work, we consolidate and deepen our knowledge with the programming and use of the actual embedded system with ARM microcontroller – “FRI-SMS” (during semester, you can borrow system for home use). We switch on and off light emitting diodes (LEDs), program input output devices and assemble simpler applications. We also address the model of the central processing unit (CPU) at the level of logic gates ("MiMo") that can execute programs in its own assembly language. If desired, the model can be complemented on the level of logic gates e.g. with various input and output devices, the steps in the implementation of each machine instruction can be determined and even custom machine instruction set can be created. During the laboratory work, we learn the concepts described in lectures mainly from a practical point of view.
- nosilec: Robert Rozman