Micro 3
Micro 3
Micro 3
Basic Concepts
• A program is a static sequence of high-level statements or constructions broken down into simple and
structured instructions.
• The central processing unit manipulates instructions and data to perform computations.
• The execution of a program is a dynamic process that can be abstracted using the notion of flow.
o The instruction flow is the continuation of the executed instructions, that is, the path taken by
execution in the program’s code.
o The control flow or flow of control is the succession of path selections for an execution.
o The data flow is the path that the data takes during an execution.
• Mechanisms of Computational Unit
o The control mechanism specifies how the computation is executed and how one instruction causes
the execution of another.
▪ In control-driven execution, an instruction is executed when it is selected by the control flow
in which Its execution will make it possible to designate the following instruction.
▪ In data-driven execution, the statement is executed when all of its arguments are available.
▪ With demand-driven execution, an instruction is executed if its result is necessary for the
execution of another that is already being executed.
▪ For pattern-driven executions, the execution of the instruction is conditioned by the
correspondence of certain patterns called a goal statement.
o The data mechanism specifies how an instruction obtains its operands and how the result is
communicated to others or exactly how computational units exchange data.
▪ In shared memory, the main memory stores a single copy of the information available for
computation. Data is shared and accessed by reference.
▪ In message passing, a copy of the operands is sent to each unit of computation. Here, the
data access mechanism is by value.
Computation Model
It is a high-level abstraction that explains how computations are carried out. It specifies the basic entities for the
computation, the possible operations, and the execution and data models.
• The Turing model, named after its inventor (Turing, 1937), makes it possible to know whether a function is
computable.
• The Object-oriented model (Dahl and Nygaard, 1966; Nguyen and Hailpern, 1986) uses the object as the basic
entity. The latter encapsulates the attributes (variables) and the methods (functions) that will be applied to the
former as directed by messages.
• The Dataflow model is a data-driven execution model with message passing. The basic entity is the data to
which operations will be applied. The instructions produce data consumed by other instructions.
• The Application model uses the argument as the basic entity to which functions will be applied for evaluation.
• The Predicate logic-based model is based on a set of objects to which predicates are applied. A predicate is a
property or attribute of an object. The control mechanism is of the “pattern-driven” type, and the data
mechanism is of the shared data type.
Parallelism
It is a method in computing in which separate parts of an overall complex task are broken up and run simultaneously on
multiple CPUs, thereby reducing the amount of time for processing.
• Instruction-Level Parallelism
o It refers to how many operations simultaneously had been performed by the program.
o This brings together design techniques from other families of processors and compilers to overcome
sequential execution.
o This technique speeds-up the execution of instructions, particularly those related to transfers
between the CPU and main memory (and vice versa), and to arithmetic computation with integer and
floating-point numbers.
• Thread-Level Parallelism
o It allows a program or instruction to work in multiple threads at the same time.
o It is referred to as multithreaded parallelism, which breaks down along the lines of two approaches:
▪ Explicit Multithreading (Chip Multithreading) – It issues instructions from multiple threads
in a cycle.
• Hardware Multithreading – Have multiple thread contexts in a single processor.
o Fine-grained – It provides two or more threads in a chip.
o Coarse-grained – It provides multiple threads within the processor core.
o Hyperthreading – It consists of transforming parallelism at the activity
thread-level into parallelism at the instruction level.
• Chip Multiprocessing – It replicates an entire processor core for each thread to
support multiple threads in a single processor chip
▪ Implicit Multithreading - Threads are generated implicitly by the hardware or the compiler.
• Multicore Architecture
o A multicore microprocessor (single-chip multiprocessor) is made up of several independent cores
gathered on the same chip (die). Example: Dual-core, quad-core, etc.
o When their number exceeds several hundred or even a thousand cores, we must speak of many-core
and massively multicore approaches (Borkar 2007).
o Each core is modern, pipelined, with several levels of cache.
▪ Symmetric Multiprocessing - The cores can be identical (shared memory).
▪ Asymmetric Multiprocessing - One or more of the cores is more powerful than the others.
References:
Darche, P. (2020). Computer engineering series: Microprocessor 1: Prolegomena – calculation and storage functions –
models of computation and computer architecture. iSTE & Wiley.
Examples of Instruction Sets. (n.d.). In Iq.opengenus.org. Retrieved on February 7, 2020, from
https://iq.opengenus.org/examples-of-instruction-sets/
Darche, P. (2020). Computer engineering series: Microprocessor 2: Communication in a digital system. iSTE & Wiley.
Darche, P. (2020). Computer engineering series: Microprocessor 3: Core concepts – hardware aspects. iSTE & Wiley.
de Lamadrid, J. (2018). Computer organization: Basic processor structure. CRC Press.
Farahmand, F. (2016). Fundamentals of microprocessor and microcontroller [Lecture notes]. Retrieved from Sonoma
State University.
Instruction Set. (2018). In Computerhope.com. Retrieved on February 7, 2020, from
https://www.computerhope.com/jargon/i/instset.htm
Toomsalu, A. (n.d.). Microprocessor Systems I: Microprocessor systems architecture [Lecture notes]. Retrieved from
Tallinn University of Technology – Department of Computer Engineering.
Parallel Computing. (n.d.). In Omnisci.com. Retrieved on February 7, 2020, from https://www.omnisci.com/technical-
glossary/parallel-computing
7 Types of Instruction Set. (n.d.). In Iq.opengenus.org. Retrieved on February 7, 2020, from
https://iq.opengenus.org/seven-types-of-instruction-set/
Zhu, Z. (n.d.). Chip-level multithreading and multiprocessing [PDF]. Retrieved on February 7, 2020, from
http://home.eng.iastate.edu/~zzhang/courses/cpre585/slides/Lecture25.pdf