COA CSE2009 Module 1 Notes
COA CSE2009 Module 1 Notes
MODULE – 1
Basic Structure of Computers
Topics:
Computer Types
Functional Units
Basic Operational Concepts
Bus Structures
Computer Systems RISC & CISC
Performance
Arithmetic Operations on Signed numbers
Instructions and Instruction Sequencing
Instruction formats
Memory Instructions
“Students can take help of this notes and refer the text book for complete
understanding of the course”
1. Computer Types
2. Functional Units
Where Add is the operation code, LOCA is the Memory operand and R0 is Register operand
This instruction adds the contents of memory location LOCA with the contents of Register R0 and
the result is stored in R0 Register.
The symbolic representation of this instruction is
R0 [LOCA] + [R0]
The contents of memory location LOCA and Register R0 before and after the execution of this
instruction is as follows
1. Fetch the instruction from memory into the IR (instruction register in CPU).
2. Decode the instruction 1111000000 10011010
3. Access the first Operand
4. Access the second Operand
5. Perform the operation according to the Opcode (operation code).
6. Store the result into the Destination Memory location or Destination Register.
Where R1 is Source Operand-1, R2 is the Source Operand-2 and R3 is the Destination. This
instruction adds the contents of Register R1 with the contents of R2 and the result is placed in R3
Register.
The symbolic representation of this instruction is
R3 [R1] + [R2]
The contents of Registers R1,R2,R3 before and after the execution of this instruction is as follows.
Before instruction execution After instruction execution
R1 = 24H R1 = 24H
R2 = 34H R2 = 34H
R3 = 38H R3 = 58H
1. MAR
It establishes communication between Memory and Processor
It stores the address of the Memory Location as shown in the figure.
MAR
Memory
5000h 5000 23h
5001 43h
5002 78h
5003 65h
2. MDR
It also establishes communication between Memory and the Processor.
It stores the contents of the memory location (data or operand), written into or read from
memory as shown in the figure.
MDR
Memory
23h 5000
23h
43h 5001
78h 5002
65h 5003
3. CONTROL UNIT
It controls the data transfer operations between memory and the processor.
It controls the data transfer operations between I/O and processor.
It generates control signals for Memory and I/O devices.
4. PC (PROGRAM COUNTER)
It is a special purpose register used to hold the address of the next instruction to be
executed.
The contents of PC are incremented by 1 or 2 or 4, during the execution of current
instruction.
The contents of PC are incremented by 1 for 8 bit CPU, 2 for 16 bit CPU and for 4 for 32
bit CPU.
R0
R1
R2
.
Rn-1
It consists of set of registers.
A register is defined as group of flip flops. Each flip flop is designed to store 1 bit of
data.
It is a storage element.
It is used to store the data temporarily during the execution of the program(eg: result).
It can be used as a pointer to Memory.
The Register size depends on the processing speed of the CPU
EX: Register size = 8 bits for 8 bit CPU
5. IR (INSTRUCTION REGISTER
It holds the instruction to be executed. It notifies the control unit, which generates timing
signals that controls various operations in the execution of that instruction.
4. BUS STRUCTURE
Bus is defined as set of parallel wires used for data communication between different parts of
computer. Each wire carries 1 bit of data. There are 3 types of buses, namely
1. Address bus
2. Data bus and
3. Control bus1.
1. Address bus :
It is unidirectional.
The processor (CPU) sends the address of an I/O device or Memory device by means of
this bus.
2. Data bus
It is a bidirectional bus.
The CPU sends data from Memory to CPU and vice versa as well as from I/O to CPU
and vice versa by means of this bus.
3. Control bus:
This bus carries control signals for Memory and I/O devices. It generates control signals
for Memory namely MEMRD and MEMWR and control signals for I/O devices namely IORD
and IOWR.
The I/O devices, Memory and CPU are connected to this bus is as shown in the figure.
It establishes communication between two devices, at a time.
between two devices, a buffer register is attached to each device. It holds the data temporarily
during the data transfer between two devices.
CISC RISC
6. PERFORMANCE
Basic performance Equation
The performance of a Computer System is based on hardware design of the processor and
the instruction set of the processors.
To obtain high performance of computer system it is necessary to reduce the execution
time of the processor.
Execution time: It is defined as total time required executing one complete program.
The processing time of a program includes time taken to read inputs, display outputs,
system services, execution time etc.
The performance of the processor is inversely proportional to execution time of the
processor.
More performance = Less Execution time.
Dr Manjunath KV, Dept of CSE, Presidency University 6
COMPUTER ORGANIZATION
CACHE MEMORY: It is defined as a fast access memory located in between CPU and
Memory. It is part of the processor as shown in the fig
The processor needs more time to read the data and instructions from main memory
because main memory is away from the processor as shown in the figure. Hence it slowdown the
performance of the system.
The processor needs less time to read the data and instructions from Cache Memory
because it is part of the processor. Hence it improves the performance of the system.
PROCESSOR CLOCK: The processor circuits are controlled by timing signals called as Clock.
It defines constant time intervals and are called as Clock Cycles. To execute one instruction there
are 3 basic steps namely
1. Fetch
2. Decode
3. Execute.
The processor uses one clock cycle to perform one operation as shown in the figure
Clock Cycle → T1 T2 T3
Instruction → Fetch Decode Execute
The performance of the processor depends on the length of the clock cycle. To obtain high
performance reduce the length of the clock cycle. Let ‘ P ’ be the number of clock cycles generated
by the Processor and ‘ R ‘ be the Clock rate .
Improve the IC technology by making the logical circuit work faster, so that the time taken
for the basic steps reduces.
Reduce the clock period, P.
The contents of memory location can be accessed for read and write operation. The memory is
accessed either by specifying address of the memory location or by name of the memory location.
Address space : It is defined as number of bytes accessible to CPU and it depends on the
number of address lines.
8. BYTE ADDRESSABILITY
Each byte of the memory are addressed, this addressing used in most computers are called byte
addressability. Hence Byte Addressability is the process of assignment of address to successive
bytes of the memory. The successive bytes have the addresses 1, 2, 3, 4………….2n-1. The
memory is accessed in words.
In a 32 bit machine, each word is 32 bit and the successive addresses are 0,4,8,12,… and
so on.
Address 32 – bit word
In this technique lower byte of data is assigned to higher address of the memory and higher
byte of data is assigned to lower address of the memory.
The structure of memory to represent 32 bit number for big endian assignment is as shown in the
above figure.
Eg – store a word “JOHNSENA” in memory starting from word 1000, using Big Endian
and Little endian.
Bigendian -
1000 J O H N
1000 1001 1002 1003
1004 S E N A
1004 1005 1006 1007
Little endian -
1000 N H O J
1000 1001 1002 1003
1004 A N E S
1004 1005 1006 1007
WORD ALLIGNMENT
Word is the group of bytes in memory. Number of bits in a word is the word length.
Eg – 32-bit word length, 64-bit word length etc.
The word locations of memory are aligned, if they begin with the address, which is multiple of
number of bytes in a word.
The structure of memory for 16 bit CPU, 32 bit CPU and 64 bit CPU are as shown in the figures
1,2 and 3 respectively
The character occupies 1 byte of memory and hence byte address for memory.
The numbers occupies 2 bytes of memory and hence word address for numbers.
6. MEMORY OPERATION
Both program instructions and operands are in memory.
To execute an instruction, each instruction has to be read from memory and after execution the
results must be written to memory.
There are two types of memory operations namely 1. Memory read and 2. Memory write
Memory read operation [ Load/ Read / Fetch ]
Memory write operation [ Store/ write ]
Memory(32 bits)
Accumulator
5000
5004
32 bits 5008
5012
5016
5020
(1) The processor loads MAR (Memory Address Register) with the address of the memory
location.
(2) The Control unit of processor issues memory read control signal to enable the memory
component for read operation.
(3) The processor reads the data from memory into the MDR (Memory Data Register) by means
of bi-directional data bus.
MEMORY INSTRUCTIONS -
2. MEMORY WRITE OPERATION
It is the process of transferring the 1 word of data from Accumulator into the Memory.
The Memory write operation can be implemented by means of STORE instruction.
The STORE instruction transfers 1 word of data from Accumulator into the Memory
location as shown in the fig.
Memory (32 bits)
Accumulator
5000
5004
5008
5012
32 bits 5016
5020
2. ALU Operations
EX3: AND R0, R1 ; It Logically multiplies the content of R0 with the content of R1 and
result is stored in R1. (R1= R0 AND R1)
3. I/O Operations: The instructions are designed to perform INPUT and OUTPUT operations.
The processor uses MOV instruction to perform I/O operations.
The input Device consists of one temporary register called as DATAIN register and
output register consists of one temporary register called as DATAOUT register.
a) Input Operation: It is a process of transferring one WORD of data from DATA IN
register to processor register.
Ex: MOV DATAIN, R0
The mathematical representation of this instruction is as follows,
R0← [DATAIN]
Eg 1 - Consider the first statement to transfer data from one location to another location
“ Transfer the contents of Memory location whose symbolic name is given by AMOUNT into
processor register R0.”
The mathematical representation of this statement is given by
R0 ← [AMOUNT]
Eg 2 -Consider the second statement to add data between two registers
“Add the contents of R0 with the contents of R1 and result is stored in R2”
The mathematical representation of this statement is given by
R2 ←[R0] + [R1].
Such a notation is called as “Register Transfer Notation”.
It uses two symbols
1. A pair of square brackets [] to indicate the contents of Memory location and
2. ← to indicate the data transfer operation.
ASSEMBLY LANGUAGE NOTATION
Consider the first statement to transfer data from one location to another location
“Transfer the contents of Memory location whose symbolic name is given by AMOUNT into
processor register R0.”
The assembly language notation of this statement is given by
MOV AMOUNT, R0
Opcode Source Destination
This instruction transfers 1 word of data from Memory location whose symbolic name is given by
AMOUNT into the processor register R0.
The mathematical representation of this statement is given by
R0 ← [AMOUNT]
ADD R0 , R1, R2
Opcode source1, Source2, Destination
This instruction adds the contents of R0 with the contents of R1 and result is stored in R2.
The mathematical representation of this statement is given by
Dr Manjunath KV, Dept of CSE, Presidency University 15
COMPUTER ORGANIZATION
R2 ←[R0] + [R1].
Such a notations are called as “Assembly Language Notations”
Consider the arithmetic expression Z = A + B, Where A,B,Z are the Memory locations.
Steps for evaluation
1. Access the first memory operand whose symbolic name is given by A.
2. Access the second memory operand whose symbolic name is given by B.
3. Perform the addition operation between two memory operands.
4. Store the result into the 3rd memory location Z.
5. The mathematical representation is Z ←[A] + [B].
opcode operand
Ex1: LOAD B
This instruction copies the contents of memory location whose symbolic name is given
by ‘B’ into the Accumulator as shown in the figure.
The mathematical representation of this instruction is as follows
ACC ← [B]
Accumulator Memory
Ex2: STORE B
This instruction copies the contents of Accumulator into memory location whose
symbolic name is given by ‘B’ as shown in the figure. The mathematical representation is as
follows
B ← [ACC].
Memory
Accumulator
Ex3: ADD B
This instruction adds the contents of Accumulator with the contents of Memory
location ‘B’ and result is stored in Accumulator.
The mathematical representation of this instruction is as follows
ACC ←[ACC]+ [B]
The system bus consists of uni-directional address bus,bi-directional data bus and control bus
“It is the process of accessing the 1st instruction from memory whose address is stored in program
counter into Instruction Register (IR) by means of bi-directional data bus and at the same time
after instruction access the contents of PC are incremented by 4 in order to access the next
instruction. Such a process is called as “Straight Line Sequencing”.
INSTRUCTION EXECUTION
There are 4 steps for instruction execution
1 Fetch the instruction from memory into the Instruction Register (IR) whose address
is stored in PC.
IR ← [ [PC] ]
2 Decode the instruction.
3 Perform the operation according to the opcode of an instruction
4 Load the result into the destination.
5 During this process, Increment the contents of PC to point to next instruction ( In
32 bit machine increment by 4 address)
PC ← [PC] + 4.
6 The next instruction is fetched, from the address pointed by PC.
BRANCHING
Suppose a list of ‘N’ numbers have to be added. Instead of adding one after the other, the
add statement can be put in a loop. The loop is a straight-line of instructions executed as many
times as needed.
The ‘N’ value is copied to R1 and R1 is decremented by 1 each time in loop. In the loop find the
value of next elemet and add it with Ro.
In conditional branch instruction, the loop continues by coming out of sequence only if
the condition is true. Here the PC value is set to ‘LLOP’ if the condition is true.
The PC value is set to LOOP, if the previous statement value is >0 ie. after decrementing R1 value
is greater than 0.
If R1 value is not greater than 0, the PC value is incremented in a mormal sequential way and the
next instruction is executed.