Mod 1
Mod 1
A computer is a digital electronic machine that can be programmed to carry out sequences of arithmetic or
logical operations (computation) automatically. Modern computers can perform generic sets of operations
known as programs. These programs enable computers to perform a wide range of tasks.
1.3.1 Following are the steps that take place to execute an instruction
• The address of first instruction (to be executed) gets loaded into PC.
• The contents of PC (i.e. address) are transferred to the MAR & control-unit issues Read signal to memory.
• After certain amount of elapsed time, the first instruction is read out of memory and placed into MDR.
• Next, the contents of MDR are transferred to IR. At this point, the instruction can be decoded &
executed.
• To fetch an operand, its address is placed into MAR & control-unit issues Read signal. As a result, the
operand is transferred from memory into MDR, and then it is transferred from MDR to ALU.
• Likewise required number of operands is fetched into processor.
• Finally, ALU performs the desired operation.
• If the result of this operation is to be stored in the memory, then the result is sent to the MDR.
• The address of the location where the result is to be stored is sent to the MAR and a Write cycle is
initiated.
• At some point during execution, contents of PC are incremented to point to next instruction in the
program.
• If SPEC rating=50 means that the computer under test is 50times as fast as reference computer.
• The test is repeated for all the programs in the SPEC suite, and the geometric mean of the results is
computed.
Let SPECi, be the rating for program i in the suite. The overall SPEC rating for the computer is given by
Von-Neumann Model
Von-Neumann proposed his computer architecture design in 1945 which was later known as Von-Neumann
Architecture. It consisted of a Control Unit, Arithmetic, and Logical unit (ALU), Memory Unit, Registers
and Inputs/Outputs.
Von Neumann architecture is based on the stored-program computer concept, where instruction data and
program are stored in the same memory. This design is still used in most computers produced today.
The part of the Computer that performs the bulk of data processing operations is called the Central
Processing Unit and is referred to as the CPU.
The Central Processing Unit can also be defined as an electric circuit responsible for executing the
instructions of a computer program.
The CPU performs a variety of functions dictated by the type of instructions that are incorporated in the
computer.
The major components of CPU are Arithmetic and Logic Unit (ALU), Control Unit (CU) and a variety of
registers.
The Arithmetic and Logic Unit (ALU) performs the required micro-operations for executing the instructions.
In simple words, ALU allows arithmetic (add, subtract, etc.) and logic (AND, OR, NOT, etc.) operations to
be carried out.
Control Unit
The Control Unit of a computer system controls the operations of components like ALU, memory and
input/output devices.
The Control Unit consists of a program counter that contains the address of the instructions to be fetched
and an instruction register into which instructions are fetched from memory for execution.
Registers
Registers refer to high-speed storage areas in the CPU. The data processed by the CPU are fetched from the
registers.
Registers Description
MAR (Memory Address Register) This register holds the memory location of the data that needs to be accessed.
MDR (Memory Data Register) This register holds the data that is being transferred to or from memory.
AC (Accumulator) This register holds the intermediate arithmetic and logic results.
PC (Program Counter) This register contains the address of the next instruction to be executed.
CIR (Current Instruction Register) This register contains the current instruction during processing.
Buses are the means by which information is shared between the registers in a multiple-register
configuration system.
A bus structure consists of a set of common lines, one for each bit of a register, through which binary
information is transferred one at a time. Control signals determine which register is selected by the bus
during each particular register transfer.
Von-Neumann Architecture comprised of three major bus systems for data transfer.
Bus Description
Address Bus Address Bus carries the address of data (but not the data) between the processor and the memory.
Data Bus Data Bus carries data between the processor, the memory unit and the input/output devices.
Memory Unit
A memory unit is a collection of storage cells together with associated circuits needed to transfer
information in and out of the storage. The memory stores binary information in groups of bits called words.
The internal structure of a memory unit is specified by the number of words it contains and the number of
bits in each word.
Introduction of Multiprocessor and Multicomputer
1. Multiprocessor: A Multiprocessor is a computer system with two or more central processing units
(CPUs) share full access to a common RAM. The main objective of using a multiprocessor is to boost the
system’s execution speed, with other objectives being fault tolerance and application matching. There are
two types of multiprocessors, one is called shared memory multiprocessor and another is distributed
memory multiprocessor. In shared memory multiprocessors, all the CPUs shares the common memory but
in a distributed memory multiprocessor, every CPU has its own private memory.
The interconnection among two or more processor and shared memory is done with three methods
1)Time shared common bus
2)Multiport memories
3)Crossbar switch network
2. Multicomputer: A multicomputer system is a computer system with multiple processors that are
connected together to solve a problem. Each processor has its own memory and it is accessible by that
particular processor and those processors can communicate with each other via an interconnection
network.
As the multicomputer is capable of messages passing between the processors, it is possible to divide the
task between the processors to complete the task. Hence, a multicomputer can be used for distributed
computing. It is cost effective and easier to build a multicomputer than a multiprocessor.
Difference between multiprocessor and Multicomputer:
1. Multiprocessor is a system with two or more central processing units (CPUs) that is capable of
performing multiple tasks where as a multicomputer is a system with multiple processors that are
attached via an interconnection network to perform a computation task.
2. A multiprocessor system is a single computer that operates with multiple CPUs where as a
multicomputer system is a cluster of computers that operate as a singular computer.
3. Construction of multicomputer is easier and cost effective than a multiprocessor.
4. In multiprocessor system, program tends to be easier where as in multicomputer system, program
tends to be more difficult.
5. Multiprocessor supports parallel computing, Multicomputer supports distributed computing.
Advantages:
Improved performance: Multicomputer systems can execute tasks faster than single-computer systems,
as the workload can be distributed across multiple computers.
Better scalability: Multicomputer systems can be scaled more easily than single-computer systems, as
additional computers can be added to the system to handle increased workloads.
Increased reliability: Multicomputer systems can continue to operate even if one computer fails, as the
remaining computers can continue to execute tasks.
Reduced cost: Multicomputer systems can be more cost-effective than building a single large computer
system to handle the same workload.
Enhanced parallelism: Multicomputer systems allow for greater parallelism, as different computers can
execute different tasks simultaneously.
Disadvantages:
Increased complexity: Multicomputer systems are more complex than single-computer systems, and they
require additional hardware, software, and management resources.
Higher power consumption: Multicomputer systems require more power to operate than single-
computer systems, which can increase the cost of operating and maintaining the system.
Difficult programming: Developing software that can effectively utilize multiple computers can be
challenging, and it requires specialized programming skills.
Synchronization issues: Multicomputer systems require synchronization between computers to ensure
that tasks are executed correctly and efficiently, which can add complexity and overhead to the system.
Network latency: Multicomputer systems rely on a network to communicate between computers, and
network latency can impact system performance.