Professional Documents
Culture Documents
Parallel processing is commonly used to perform complex tasks and computations to process tasks (i.e.
programs) that have intensive data.
It is a technique used for running two or more processors (CPUs) to handle separate parts of an overall
program (task).
Examples of parallel processing system: the multicore processor which is commonly found on computers
today or multi-processors.
In contrast to parallel processing is the sequential processing, this technique is used to process single task
only. It is an old technique
o Save time
o Solve larger problems
o Parallel nature of the problem, so parallel models fit it best
o Provide concurrency (do multiple things at the same time)
o Taking advantage of non-local resources
o Cost savings
o Overcoming memory constraints
In multicore system, program is breaking up to several parts to be executed among multiple cores, each core
performs its operations in parallel as instructed and pulling data from the computer’s memory. This will help
in reducing the execution time of the program, and thus, enhanced performance and reduced power
consumption.
o multicore processor also enables more efficient simultaneous processing of multiple tasks, such as
multithreading (also called hyperthreading).
o The individual cores can execute multiple instructions in parallel, increasing the performance of
software which is written to take advantage of the unique architecture.
o Today, multicore processors are created with two cores (“dual core"), four cores (“quad core"), six
cores ("hexa-core"), and eight cores ("octo-core").
- A thread is a small set of instructions designed to be scheduled and executed by the CPU independently
of the parent process.
A multi-threading CPU is capable of executing multiple threads concurrently.
- A CPU is giving you the illusion that it's doing multiple computations at the same time. It does that
by spending a bit of time on each computation. It can do that because it has an execution context for
each computation.
- Hyperthreading: an Intel technology, divides a physical core into two logical cores, executing an
additional, concurrent set of instructions to increase performance.
Whenever the work is performed with multiple threads of a program running, the basic naming convention
for the cores are (say, for 4 threads running on the system) logical-core 0, logical - core 1, logical-core 2,
and logical-core 3.
- For an i3 processor with hyper-threading (2 threads/core), the max number of threads/ logical-cores
will be: 2x2=4 (means cores: 0,1,2, and 3).
The last logical core is called logical-core 3. So, they named the product i3.
- For an intel core i7, the processor with hyper-threading (2 threads per core), the max number of threads/
logical-cores will be: 4 core X 2 threads/core=8.
Logical cores : 0,1,2,…,7
* The last logical core is called logical-core 7. So, the product is core i7.
Note: Intel core i5 processor (7xx family) does NOT support hyper-threading and has
4 cores.
- Thus, the max number of threads/logical core will be: 4x1=4 (0,1,2, and 3). The last
logical core is called logical core i3. But the performance is somewhere in between i3
and i7 because 4 threads are running on 4 different cores.
So, they decided to call it intel core i5.
Concurrent - means that multiple tasks can be executed in an overlapping time
period. One of the tasks can begin before the preceding one is completed; however,
they won’t be running at the same time.
Concurrent
parallelism
The internal structure of a traditional uniprocessor computer consists of four main structural
components:
- Central processing unit (CPU): Is the heart of the processor used to control the operation
of the computer and performs its data processing functions.
- Main memory: To stores data and instructions.
- I/O: Moves data between the computer and its external environment.
- System Interconnection: Some mechanism that provides for communication among CPU,
main memory, and I/O. A common example of system interconnection is by means of a system
bus, consisting of a number of conducting wires to which all the other components attach.
• Address bus
• Data bus
• Control signals
Control Unit
–It is the heart of the CPU, used to control the operation of the CPU and hence the computer
Arithmetic and Logic Unit (ALU) or Execution Units
–Performs the computer’s data processing function
Registers
–Provide storage internal to the CPU
CPU Interconnection
–Some mechanism that provides for communication among the control unit, ALU, and
registers
Figure 1.3 The CPU parts
- Von Neumann architecture was first published by John von Neumann in 1945. It is a Uni-
processor computer
- Von Neumann architecture is based on the stored-program computer concept, where
instruction data and program data are stored in the same memory.
- Von Neumann architecture referred to as the IAS computer (Institute for Advanced Studies).
- IAS architecture used to perform the elementary operations of arithmetic most frequently, like
addition, subtraction, multiplication, and division.
- The IAS computer, although not completed until 1952, is the prototype of all subsequent
general- purpose computers.
- The control unit operates the IAS by fetching instructions from memory and executing them
one at a time (sequentially).
- The memory of IAS consists of 4,096 storage locations, each location called a “word”.
- The size of each memory word is 40-bit each.
EX: the result of multiplying two 40-bit numbers is an 80-bit number; the most
significant 40 bits are stored in the AC and the least significant in the MQ.
Decode Execute
Execute cycle
Once the opcode is in the IR, the execute cycle is performed. Control circuitry interprets
the opcode and executes the instruction by sending out the appropriate control signals to
cause data to be moved or an operation to be performed by the ALU.
Figure 1.7 Partial Flowchart of IAS Operation
The IAS computer had a total of 21 instructions. The IAS computer instructions are grouped as