SlideShare a Scribd company logo
1 of 208
Download to read offline
Unit 2
• Micro programmed control
The major functional parts in a digital computer are
CPU, Memory, and input-output.
The main digital hardware functional units of CPU
are control unit, arithmetic and logic unit, and
registers.
The function of control unit in a digital computer is
to initiate sequences of micro operation.
The number of different type of micro operation
that are available in give system is finite.
The complexity of the digital system is derived from
the number of sequences of micro operations
that are performed.
COA (Unit_2.pptx)
Two method of implementing the control unit
are hardwired control and micro-programmed
control.
• The design of hardwired control involves the
use of fixed instructions, fixed logic blocks,
encoder, decoder.(see Unit 1 slide 140)
• The key characteristics of hardwired control
logic are high-speed operation, expensive,
relatively complex and no flexibility of adding
new instructions.
• Example CPU with hardwired logic control
are Intel 8085,RISC CPUs.
• When the control signals are generated by
hardware using conventional logic design
techniques, the control unit is said to be
hardwired.
• Microprogramming is a second alternative for
designing the control unit of a digital
computer.
• The principle of microprogramming is an
systematic method for controlling the micro
operation sequences in a digital computer.
• For example: CPUs with micro programmed
control unit are Intel 8080,CISC(Complex
Instruction Set Computer)CPUs.
Pipeline register
• The control data register holds the present
microinstruction while the next address is
computed and read from memory
• The data register is sometimes called a
pipeline register.
• It allows the execution of the micro operations
specified by the control word simultaneously
with the generation of the next
microinstruction.
Advantage of Micro programmed
control
• Once the hardware configuration is
established, there should be no need for
further hardware or wiring changes.
• If we want to establish a different control
sequence for the system, all we need to do is
specify a different set of microinstruction for
control memory.
• The hardware configuration should not be
changed for different operations; the only
thing that must be changed is the micro
program residing in control memory.
Central Processing Unit
• 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 CPU is made up of three major parts as
shown in figure 8.1
• The register set stores intermediate data used
during the execution of the instruction.
• The arithmetic logic unit perform the required
micro operation for executing the instruction.
• The control unit supervises the transfer of
information among the registers and instructs
the ALU as to which operation to perform.
General Register Organization
• When a large number of registers are included
in the CPU, it is most efficient to connect them
through a common bus system.
• The register communicate with each other not
only for direct data transfers, but also while
performing various micro operations.
• Hence it is necessary to provide a common
unit that can perform all the arithmetic, logic,
an shift micro operations in the processor.
Bus System
• A bus organization for seven CPU register is
shown in figure 8-2.
• The output of each register is connected to two
multiplexer to form the two buses A and B.
• The selection lines in each multiplexer select one
register or the input data for the particular bus.
• The A and B buses from the inputs to a common
arithmetic or logic unit.
• The operation selected in the ALU determines the
arithmetic or logic micooperation that is to be
performed.
COA (Unit_2.pptx)
• The result of the micooperation is available
for output data and also goes into the inputs
of all the registers.
• The register that receives the information
from the output bus is selected by a decoder.
• The decoder activates one of the register load
inputs, thus providing a transfer path between
the data in the output bus and the input of
the selected destination register.
• The control unit that operates the CPU bus
system directs the information flow through
the registers and ALU by selecting the various
components in the system.
• For example : to perform the operation
R1<-R2+R3
The control must provide binary selection
variables to the following selector inputs:
1. MUX A selector(SELA):to place the content of
R2 into bus A.
2. MUX B selector(SELB): to place the content of
R3 into bus B.
3. ALU operation selector (OPR): to provide the
arithmetic addition A+B
4. Decoder destination selector(SELD):to
transfer the content of the output bus into
R1.
3 3 3 5
SELA SELB SELD OPR
Control Word
There are 14 binary selection inputs in the unit, and their
combined value specifies a control word.
The 14 bit control word is defined in above figure.
It consists of four fields.
Three fields contain three bits each, and one field has five bits.
The three bit of SELA select a source register for the A input of
the ALU.
The three bit of SELB select a register for the B input of the ALU.
The three bits of SELD select a destination register using the
decoder and its seven load outputs.
The five bit of OPR select one of the operations in the ALU.
The 14 bit control word when applied to the selection inputs
specify a particular micro operation.
When SELA or SELB is 000,the corresponding
multiplexer selects the external input data.
When SELD=000,no destination register is
selected but the contents of the output bus are
available in the external output
ALU
The ALU provides arithmetic and logic
operations.
In addition, the CPU must provide shift
operations.
The shifter may be placed in the input of the
ALU to provide a preshift capability, or at the
output of the ALU to provide postshifting
capability.
The OPR field has five bits and each operation is
designed with a symbol name.
COA (Unit_2.pptx)
COA (Unit_2.pptx)
Stack Organization
• A useful feature that is included in the CPU of
most computers is a stack (or LIFO).
• A stack is a storage device that stores
information in such a manner that the item
stored last is first item retrieved.
Stack Pointer
The register that holds the address for the stack
is called a stack pointer because its value
always points at the top item in the stack.
Stack Organization
• The two operation of a stack are the insertion
and deletion of items.
• The operation of insertion is called push
because it can be thought of as the result of
pushing a new item on top.
• The operation of deletion is called pop
because it can be thought of as the result of
removing one item so that the stack pops up.
Register Stack
• A stack can be placed in a portion of a large
memory or it can be organized as a collection
of a finite number of memory words or
registers.
• Figure shows the organization of a 64-word
register stack.
Register contains 1
word
B is an item stored in stack
register
Contains an item to be written on
stack
• The stack pointer register SP contains a binary
number whose value is equal to the address of
the word that is currently on top of the stack.
• Three items are placed in the stack :A,B and C
in that order.
• Item C is on top of the stack so that the
content of SP is now 3.
• To remove the top item, the stack is popped
by reading the memory word at address 3 and
decrementing the content of SP.
• Item B is now on top of the stack since SP
holds address 2.
• To insert a new item, the stack is pushed by
incrementing SP and writing a word in the
next-higher location in the stack.
• In a 64 word stack , the stack pointer contains
6 bits because 2 power 6=64.
• SP is of 6 bits it cannot exceed a number
greater than 63.
• When 63 is incremented by 1 the result is 0
since 111111+1=1000000 in binary but SP can
accommodate only the six least significant
bits.
• Similarly when 000000 is decremented by
1,the result is 111111.
• The one bit register FULL is set to 1 when the
stack is full and the one bit register EMPTY is
set to 1 when the stack is empty of items.
• DR is the data register that holds the binary
data to written into or read out the stack.
Push
• Initially, SP is cleared to 0,EMPTY is set to 1
and FULL is cleared to 0 so that SP points to
the word at address 0 and the stack is marked
empty and not full.
• If the stack is not full(if FULL=0),new item is
inserted with a push operation.
• The push operation is implemented with the
following sequence of micro operations:
SP<-SP+1 increment stack pointer
M[SP]<-DR write item on top of the stack.
Push
• If(SP=0) then (FULL<-1) check if stack is full
• EMPTY<-0 Mark the stack not empty.
• If SP reaches 0, the stack is full of items, so
FULL is set to 1.
• Ones an item is stored in location 0,there are
no more empty registers in the stack.
• If an item is written in the stack, the stack
cannot be empty, so empty is cleared to 0.
POP
• A new item is deleted from the stack if the
stack is not empty.
• DR<-M[SP] read item from the top of stack
• SP<-SP-1 Decrement stack pointer
• If(SP=0) then (EMPTY<-1) check if stack is
empty
FULL<-0 Mark the stack not full
Explanation
• The top item is read from the stack into DR.
• The stack pointer is then decremented.
• If its value reached zero, the stack is empty, so
EMPTY is set to 1.
• This condition is reached if the item read was
in location 1.
• Once this item is read out, SP is decremented
and reaches the value 0,which is the initial
value of SP.
Memory Stack
• Portion of memory partitioned into three
segments: program, data and stack.
• The program counter PC points at the address
of the next instruction in the program.
• The address register AR points at an array of
data.
• The stack pointer SP points at the top of the
stack.
• The three registers are connected to a
common address bus, and either one can
provide an address of memory.
• PC is used during the fetch phase to read an
instruction.
• AR is used during the execution phase to read
an operand.
• SP is used to push or pop items into or from
the stack.
Instruction to
be executed
are stored in PC
AR
AR holds the
address of
operand
Push operation
A new item is inserted with the push operation
as follows:
SP<-SP-1
M[SP]<-DR
The stack pointer is decremented so that it
points at the address of the next word.
A memory word operation inserts the word from
DR into the top of the stack.
POP operation
• A new item is deleted with a pop operation as
follows:
DR<-M[SP]
SP<-SP+1
The top item is read from the stack into DR.
The stack pointer is then incremented to point
at the next item in the stack.
Stack limit
• The stack limit can be checked by using two
processor registers: one to hold the upper
limit(3000 in this case), and the other to hold
the lower limit(4001 in this case).
• After a push operation, SP is compared with
the upper-limit register and after a pop
operation, SP is compared with the lower-
limit register.
• The stack pointer is loaded with an initial
value. This initial value must be the bottom
address of an assigned stack in memory.
Infix Notation
Simple arithmetic expression : A*B+C*D
• The star is placed between two operands A
and B or C and D.
• The plus is between the two products.
• To evaluate this arithmetic expression it is
necessary to compute the product A*B, store
this product while computing C*D and then
sum the two products.
Reverse Polish Notation
OR
Postfix notation
It places the operator after the operands.
AB*CD+
The reverse polish notation is in a form suitable
for stack manipulation.
Infix: A*B+C*D is written in reverse Polish
notation as :
AB*CD*+
Rule
• Scan the expression from left to right
• When an operator is reached, perform the
operation with the two operands found on the
left side of the operator.
• Remove the two operands and the operator
and replace them by the number obtained
from the result of the operation.
Evaluation of Arithmetic Expression
• Reverse Polish notation, combined with a
stack arrangement of registers, is the most
efficient way known for evaluating arithmetic
expression.
• Arithmetic expression : (3*4)+(5*6)
• In reverse polish notation: 34*56*+
Stack Operation
EXPLANATION
• Each box represent one stack operation and the
arrow always points to the top of the stack.
• Scanning the expression from left to right, we
encounter two operands.
• First the number 3 is pushed into the stack, then
the number 4
• The next symbol is the multiplication operator *.
• This causes a multiplication of the two topmost
items in the stack.
• The stack is then popped and the product is
placed on top of the stack, replacing the two
original operands.
EXPLANATION
• Next we encounter the two operands 5 and
6,so they are pushed into the stack.
• The stack operation that results from the next
* replaces these two numbers by their
product.
• The last operation causes an arithmetic
addition of two topmost numbers in the stack
to produce the final result 42.
AB*+(CD/+EF*)
AB*+(CD/EF*+)
AB*(CD/EF*+)+ is a postfix notation or reverse polish notation
Instruction format
• The most common fields found in instruction
formats are :
1. An operation code field that specifies the
operation to be performed
2. An address field that designates a memory
address or a processor register
3. A mode field that specifies the way the
operand or the effective address is
determined.
Register address
• Operands residing in memory are specified by
their memory address.
• Operands residing in processor register are
specified by with a register address.
• A register address in a binary number of k bits
that defines one of the 2^K registers in the
CPU.
• Thus a CPU with 16 processor register R0
through R15 will have a register address field
of four bits.
Most computer fall into one of three type of
CPU organization :
1. Single accumulator organization
2. General register organization
3. Stack organization
1. Single Accumulator organization
• All operations are performed with an implied
accumulator register
• The instruction format in this type of computer
uses one address field.
• For example: the instruction that specifies an
arithmetic addition is defined by an assembly
language instruction.
• We need to reduce cost so only 1 register is used.
• Speed will be slow because we have used only 1
register.
ADD X
where X is the address of the operand.
The ADD instruction in this case results in the
operation AC<-AC+M[X].
AC is the accumulator register and M[X]
symbolizes the memory word located at
address X.
2 General Register Type
• Number of registers are more then single
accumulator.
• Speed will be increase
• Cost will be more in comparison with single
accumulator.
• Size of the instruction will increase.
2 General Register Type
• The instruction format in this type of
computer needs three register address fields:
ADD R1,R2,R3
• To denote the operation R1<-R2+R3.
• The number of address fields in the
instruction can be reduced from three to two
if the destination register is the same as one
of the source register.
ADD R1,R2 to denote the operation R1<-R2
R1 is destination register
R2 and R3 are the
source register
2 General Register Type
• MOV R1,R2
Denotes transfer R1<-R2.
Transfer type instructions need two address
fields to specify the source and the
destination.
• ADD R1,X
Would specify the operation R1<-R1+M[X].
It has two address field store for register R1 and
other for the memory address X.
3. Stack organization
• Computers with stack organization would have
PUSH and POP instructions which require an
address field.
• PUSH X will push the word at address X to the
top of the stack.
• The stack pointer is updated automatically.
• Operation type instruction do not need an
address field in stack-organized computers
because operation is performed on the two
items that are on top of stack.
The instruction
ADD
in a stack computer consists of an operand code
only with no address field.
This operation has the effect of popping the
two top numbers from the stack, adding the
numbers, and pushing the sum in the stack.
There is no need to specify operands with an
address field since all operands are implied to be
in the stack.
Note
• Most of the computers fall into one of the
three types of organizations that have just
been described.
• To evaluate the arithmetic statement
• X=(A+B)*(C+D)
• Using zero, one, two, or three address
instructions.
• We will use the symbols ADD,SUB,MUL,DIV
for the four arithmetic operations;
• MOV for the transfer-type operation; and
LOAD and STORE for transfers to and from
memory and AC register.
• We will assume that the operands are in
memory addresses A,B,C, and D, and the
result must be stored in memory at address X.
1. Three address instruction
• Computer with three-address instruction
formats can use each address field to specify
either a processor register or a memory
operand.
Example
We will evaluate arithmetic statement :
X=(A+B)*(C+D) using zero, one, two or three
address instruction.
Three Address Instruction :
ADD R1,A,B R1<-M[A]+M[B]
ADD R2,C,D R2<-M[C]+M[D]
MUL X,R1,R2 M[X]<-R1*R2
It is assumed that the computer has two processor
registers,R1 and R2.
The symbol M[A] denotes the operand at memory
address symbolized by A
EXPLANATION
• The advantage of the three-address format is
that it results in short programs when
evaluating arithmetic expressions.
• Computer with three-address instruction
formats can use each address field to specify
either a processor register or a memory
operand.
2. Two address instruction
Two address instruction are most common in
commercial computers.
Here again each address field can specify either
a processor register or a memory word.
Example
We will evaluate arithmetic statement :
X=(A+B)*(C+D) using zero, one, two or three
address instruction.
Two Address Instruction :
MOV R1,A R1<-M[A]
ADD R1,B R1<-R1+M[B]
MOV R2,C R2<-M[C]
ADD R2,D R2<-R2+M[D]
MUL R1,R2 R2<-R1*R2
MOV X,R1 M[X]<-R1
EXPLANATION
• The MOV instruction moves or transfers the
operands to and from memory and processor
register
Example
We will evaluate arithmetic statement :
X=(A+B)*(C+D) using zero, one, two or three
address instruction.
One Address Instruction :
LOAD A AC<-M[A]
ADD B AC<-AC+M[B]
STORE T M[T]<-AC
LOAD C AC<-M[C]
ADD D AC<-AC+M[D]
MUL T AC<-AC*M[T]
STORE X M[X]<-AC
EXPLANATION
• One address instruction use an implied
accumulator(AC) register for all data
manipulation.
• For multiplication and division there is need
for a second register.
• Here we will neglect the second register and
assume that the AC contains the result of all
operations.
Example
We will evaluate arithmetic statement :
X=(A+B)*(C+D) using zero, one, two or three
address instruction.
Zero Address Instruction :
Push A TOS<-A
PUSH B TOS<-B
ADD TOS<-(A+B)
PUSH C TOS<-C
PUSH D TOS<-D
ADD TOS<-(C+D)
MUL TOS<-(C+D)*(A+B)
POP X M[X]<-TOS
EXPLANATION
• To evaluate arithmetic expression in a stack
computer, it is necessary to convert the
expression into reverse polish notation
• The name zero-address is given to this type of
computer because of the absence of an
address field in the computational
instructions.
Asked in 2014 2015 2016 2019
COA (Unit_2.pptx)
COA (Unit_2.pptx)
COA (Unit_2.pptx)
COA (Unit_2.pptx)
RISC (Reduced Instruction Set
Computer)
• It is designed to reduce the execution time by
simplifying the instruction set component.
• Each instruction require only 1 clock
cycle(fetch, decode and execute).
Characteristics
1. Relatively few instruction
2. Relatively few addressing mode
RISC INSTRUCTION
X=(A+B)*(C+D)
LOAD R1,A R1<-M[A]
LOAD R2,B R2<-M[B]
LOAD R3,C R3<-M[C]
LOAD R4,D R4<-M[D]
ADD R1,R1,R2 R1<-R1+R2
ADD R3,R3,R4 R3<-R3+R4
MUL R1,R1,R3 R1<-R1*R3
STORE X,R1 M[X]<-R1
• The instruction set of a typical RISC processor
is restricted to the use of load and store
instructions when communicating between
memory and CPU.
• All other instruction are executed within the
registers of the CPU without referring to
memory.
• A program for a RISC-type CPU consists of
LOAD and STORE instructions that have one
memory and one register address, and
computational type instructions that have
three addresses with all three specifying
processor register.
Addressing Mode
• the control unit of a computer is designed to
go through an instruction cycle that is divided
into three major phases:
1. Fetch the instruction from memory
2. Decode the instruction
3. Execute the instruction
Program Counter
• Program counter holds the address of the next
instruction to be executed next and is
incremented each time an instruction is fetched
from memory.
• The decoding done in step 2 determines the
operation to be performed, the addressing mode
of the instruction, and the location of the
operands.
• The computer then executes the instruction and
returns to step 1 to fetch the next instruction in
sequence.
Mode field
• The operation code specifies the operation to
be performed.
• The mode field is used to locate the operands
needed for the operation.
• There may or may not be address field in the
instruction
• If there is an address field, it may designate a
memory address or a processor register.
COA (Unit_2.pptx)
• Explain various addressing modes used in
instruction format. Give numerical example
to explain.(6.5 marks)
Implied Mode
• In this mode the operand are specified
implicitly in the definition of the instruction.
• For example: the instruction “complement
accumulator” is an implied mode instruction
because the operand in the accumulator
register is implied in the definition of the
instruction.
• Zero address instruction in a stack-organized
computer are implied mode instructions
since the operands are implied to be on top of
the stack.
Immediate Mode
• In this mode the operand is specified in the
instruction itself.
• In other words, an immediate-mode has an
operand field rather than an address field.
• The operand field contains the actual operand
to be used in conjunction with the operation
specified in the instruction.
• Immediate-mode instruction are useful for
initializing registers to a constant value.
Register Mode
• In this mode the operands are in registers that
reside within a register in the CPU.
• The particular register is selected from a
register field in the instruction.
• A k-bit field can specify any one of 2^k
registers.
Register Indirect Mode
• In this mode the instruction specifies a
register in the CPU whose contents give the
address of the operand in memory.
• The selected register contains the address of
the operand rather than the operand itself.
Auto increment and Auto decrement
Mode
• This is similar to the register indirect mode
except that the register is incremented or
decremented after its value is used to access
memory.
Direct Address Mode
• In this mode the effective address is equal to
the address part of the instruction.
• The operand reside in the memory and its
address is given directly by the address field
of the instruction.
Indirect Address Mode
• In this mode the address field of the
instruction gives the address where the
effective address is stored in memory
• Effective address=address part of the
instruction+ content if CPU register
Relative Address Mode
• In this mode the content of the program counter
is added to the address part of the instruction in
order to obtain the effective address.
• Example: program counter contains the number
825 and address part of the instruction contains
the number 24.the instruction at location 825 is
read from memory during the fetch phase and
the program counter is incremented by one to
826.
• The effective address for the relative address
mode is 826+24=850.
• This is 24 memory locations forward from the
address of the next instruction.
Effective Address
• The effective address is defined to be memory
address obtained from the computation
dictated by the given addressing mode.
• The effective address is the address of the
operand in a computational type instruction.
Indexed Addressing Mode
• In this mode the content of an index register
is added to the address part of the
instruction to obtain the effective address.
Base Register Addressing Mode
• In this mode the content of a base register is
added to the address part of the instruction
to obtain the effective address.
Numerical Example
• The two-word instruction at address 200 and 201
is a “load to AC” instruction with an address field
equal to 500.
• The first word of the instruction specifies the
operation code and mode, and the second word
specifies the address part.
• PC has the value 200 for fetching this instruction.
• The content of processor register R1 is 400, and
the content of an index register XR is 100.
• AC receives the operand after the instruction is
executed.
COA (Unit_2.pptx)
• The mode field of the instruction can specify any
one of a number of modes.
• For each possible mode we calculate the
effective address and the operand that must be
loaded into AC.
• In the direct addressing mode the effective
address is the address part of the instruction 500
and the operand to be loaded into AC is 800.
• In the immediate addressing mode the second
word of the instruction is taken as the operand
rather than an address, so 500 is loaded into AC.
• In the indirect mode the effective address is
stored in memory at address 500.
• Therefore the effective address is 800 and the
operand is 300.
• In the relative mode the effective address is
500+202=702 and the operand is 325.
• In the index mode the effective address is
XR+500=100+500=600 and the operand is 900
• In the register mode the operand is in R1 and
400 is loaded into AC.
• In the register indirect mode the effective
address is 400,equal to content of R1 and the
operand loaded into AC is 700.
• The auto increment mode is the same as the
register indirect mode except that R1 is
incremented to 401 after the execution of the
instruction.
• The auto decrement mode decrements R1 to
399 prior to the execution of the instruction.
• The operand loaded into AC is now 450.
COA (Unit_2.pptx)
Asked in 2014
• Explain direct and indirect addressing mode
using example ?(2marks)
Asked in 2014
Which addressing mode need no address
fields? Explain them (2 marks)
• In implied mode the operand are specified
implicitly in the definition of the instruction.
• For example: the instruction “complement
accumulator” is an implied mode instruction
because the operand in the accumulator
register is implied in the definition of the
instruction.
Opcode 400
In case of direct addressing mode
Effective address is present in instruction itself
Effective address=400
200
R1
Opcode 300
AO 400 301
302
Opcode 400
In case of Immediate addressing mode instruction contain the operand=400
Operand is stored at location 301 so Effective address=301
200
R1
Address
Opcode 300
operand 400 301
302
Opcode 400
200
R1
Address
Opcode 300
operand 400 301
302 Instruction size is of 2 byte
D=2(step size)
Program counter initially hold 300
When instruction is fetched
PC=302(address of next instruction)
302
PC
In case of relative addressing mode effective address= PC+ Address of
instruction =400+302=702
Opcode 400
In case of register indirect addressing mode
Effective address=200
200
R1
Address
Opcode 300
operand 400 301
302
Address of register (R1) , register is
present in CPU
400
COA (Unit_2.pptx)
2014
• What is pipelining /pipeline processing?
discuss with the help of suitable example.(4.5
marks)
Pipelining
• Pipeline is a technique of decomposing a
sequential process into sub operations, with
each sub process being executed in a special
dedicated segment that operates
concurrently with all other segments.
COA (Unit_2.pptx)
Example
COA (Unit_2.pptx)
COA (Unit_2.pptx)
Speedup
• If we have n instruction the for 1st instruction
to complete we require k (stages or segment)
and for rest n-1 instruction we require only 1
clock cycle.
• Total number of clock cycles required:k+n-1
• In previous slide k=4 and n=6
• For first instruction (1*4) time required and
for rest n-1 instruction (6-1)*1(only one clock
cycle)=4+5=9
• So at clock cycle 9 all the instruction are
executed.
Speedup
• S=(n*tn)/(k+n-1)*tp
Note: total time required for n tasks in n*tn
We have 6 instruction and each require 4 clock
cycle=6*4=24 for non-pipeline
For pipeline we have calculated :9
Speed up =24/9=2.6
• Determine the number of clock cycle that it
take to process 200 tasks in a six segment
pipeline. Assume Tp=1
K=6 and n=200
K+(n-1)*tp=6+199 =205 clock cycle
S=(n*tn)/(k+n-1)*tp
N=100 , tn=50ns,tp=10ns
For non pipeline total time taken =n*tn=100*50=5000
For pipeline total time taken = (k+n-1)*tp
=(6+100-1)*10=1050ns
Speed Up=total time taken for non-pipeline/total time
taken for pipeline
=5000/1050=4.76
1. Arithmetic Pipeline
• Arithmetic Pipelines are mostly used in high-
speed computers.
• They are used to implement floating-point
operations, multiplication of fixed-point
numbers, and similar computations
encountered in scientific problems.
• To understand the concepts of arithmetic
pipeline in a more convenient way, let us
consider an example of a pipeline unit for
floating-point addition and subtraction.
The inputs to the floating-point adder pipeline are
two normalized floating-point binary numbers
defined as:
• The combined operation of floating-point
addition and subtraction is divided into four
segments. Each segment contains the
corresponding sub operation to be performed
in the given pipeline. The sub operations that
are shown in the four segments are:
• Compare the exponents by subtraction.
• Align the mantissas.
• Add or subtract the mantissas.
• Normalize the result.
COA (Unit_2.pptx)
COA (Unit_2.pptx)
1. Compare exponents by subtraction:
• The exponents are compared by subtracting
them to determine their difference. The larger
exponent is chosen as the exponent of the
result.
• The difference of the exponents, i.e., 3 -
2 = 1 determines how many times the
mantissa associated with the smaller
exponent must be shifted to the right.
2. Align the mantissas:
• The mantissa associated with the smaller
exponent is shifted according to the difference
of exponents determined in segment one.
3. Add mantissas
• The two mantissas are added in segment
three.
• After normalization, the result is written as:
4. Normalize the result
COA (Unit_2.pptx)
2018
• Explain instruction pipeline? (6 marks)
2. Instruction Pipeline
• Pipeline processing can occur not only in the
data stream but in the instruction stream as
well.
• An instruction pipeline reads consecutive
instructions from memory while previous
instruction are being executed in other
segments.
• Most of the digital computers with complex
instructions require instruction pipeline to
carry out operations like fetch, decode and
execute instructions.
• In general, the computer needs to process
each instruction with the following sequence
of steps.
1. Fetch instruction from memory.
2. Decode the instruction.
3. Calculate the effective address.
4. Fetch the operands from memory.
5. Execute the instruction.
6. Store the result in the proper place.
• The organization of an instruction pipeline will
be more efficient if the instruction cycle is
divided into segments of equal duration. One
of the most common examples of this type of
organization is a Four-segment instruction
pipeline.
• A four-segment instruction pipeline combines
two or more different segments and makes it
as a single one. For instance, the decoding of
the instruction can be combined with the
calculation of the effective address into one
segment.
Pipeline stall
Segment 1:
• The instruction fetch segment can be
implemented using first in, first out (FIFO) buffer.
Segment 2:
• The instruction fetched from memory is decoded
in the second segment, and eventually, the
effective address is calculated in a separate
arithmetic circuit.
Segment 3:
• An operand from memory is fetched in the third
segment.
Segment 4:
• The instructions are finally executed in the last
segment of the pipeline organization.
• Figure shows how the instruction cycle in the CPU
can be processed with a four-segment pipeline.
• While an instruction is being executed in
segment 4, the next instruction in sequence is
busy fetching an operand from memory in
segment 3.
• The effective address may be calculated in a
separate arithmetic circuit for the third
instruction, and when ever memory is available,
the fourth and all subsequent instructions can be
fetched and placed in instruction FIFO.
• Up to 4 different instruction can be in progress
of being processed at the same time.
• Once in a while, an instruction in the
sequence may be a program control type that
causes a branch out of normal sequence.
• In that case the pending operations in the last
two segments are completed and all
information stored in the instruction buffer is
deleted.
• The pipeline then restarts from the new
address stored in the program counter.
• Similarly, an interrupt request, when
acknowledged, will cause the pipeline to
empty and start again from a new address
value.
Note
• A branch is an instruction in a computer
program that can cause a computer to begin
executing a different instruction sequence and
thus deviate from its default behavior of
executing instructions in order.
COA (Unit_2.pptx)
• In the absence of branch instruction, each
segment operates on different instructions.
• Thus in step 4,instruction 1 is being executed
in segment EX; the operand for instruction 2 is
being fetched in segment FO; instruction 3 is
being decoded in segment DA and instruction
4 is being fetched from memory in segment FI.
• Assume now that instruction 3 is a branch
instruction.
• As soon as this instruction is decoded in
segment DA in step 4, the transfer from FI to
DA of the other instruction is halted until the
branch instruction is executed in step 6.
• If the branch is taken, a new instruction is
fetched in step 7.
• If the branch is not taken, the instruction
fetched previously in step 4 can be used.
• The pipeline then continues until a new
branch instruction is encountered.
• Assuming now the instruction 3 is a branch
instruction.
• As soon as instruction is decoded in segment
DA in step 4, the transfer from FI to DA of the
other instruction is halted until the branch
instruction is executed in step 6.
• If a branch is taken a new instruction is
fetched in step 7.
• If the branch is not taken the instruction
fetched previously in step 4 can be used.
2014
What are 3 type of pipeline conflicts? Discuss
them in brief.(3 marks)
Pipeline conflicts
• In general there are three major difficulties that
causes the instruction pipeline to deviate from its
normal operation.
1. Resource conflicts caused by access to memory
by two segments at the same time.
2. Data dependency conflict arises when an
instruction depends on the result of a previous
instruction, but this result is not yet available.
3. Branch difficulties arise from branch and other
instructions that change the value of PC
Dependencies in a pipelined
processor
• There are mainly three types of dependencies
possible in a pipelined processor.
• These are :
1) Structural Dependency
2) Control Dependency
3) Data Dependency
• These dependencies may introduce stalls in
the pipeline.
Stall : A stall is a cycle in the pipeline without
new input.
1. Structural dependency
• This dependency arises due to the resource
conflict in the pipeline.
• A resource conflict is a situation when more
than one instruction tries to access the same
resource in the same cycle.
• A resource can be a register, memory, or ALU
COA (Unit_2.pptx)
• In the above scenario, in cycle 4, instructions
I1 and I4 are trying to access same resource
(Memory) which introduces a resource
conflict.
To avoid this problem, we have to keep the
instruction on wait until the required resource
(memory in our case) becomes available.
• This wait will introduce stalls in the pipeline as
shown below:
COA (Unit_2.pptx)
Solution for structural dependency
• To minimize structural dependency stalls in
the pipeline, we use a hardware mechanism
called Renaming.
Renaming : According to renaming, we divide
the memory into two independent modules
used to store the instruction and data
separately called Code memory(CM) and Data
memory(DM) respectively. CM will contain all
the instructions and DM will contain all the
operands that are required for the
instructions.
COA (Unit_2.pptx)
2. Control Dependency (Branch
Hazards)
• This type of dependency occurs during the
transfer of control instructions such as
BRANCH, CALL, JMP, etc.
• On many instruction architectures, the
processor will not know the target address of
these instructions when it needs to insert the
new instruction into the pipeline.
• Due to this, unwanted instructions are fed to
the pipeline.
COA (Unit_2.pptx)
COA (Unit_2.pptx)
• So, the output sequence is not equal to the
expected output, that means the pipeline is
not implemented correctly.
• To correct the above problem we need to stop
the Instruction fetch until we get target
address of branch instruction.
• This can be implemented by introducing delay
slot until we get the target address.
• This concept of delaying the use of the data
loaded from memory is referred to as a
delayed load.
COA (Unit_2.pptx)
• As the delay slot performs no operation, this
output sequence is equal to the expected output
sequence. But this slot introduces stall in the
pipeline.
• Solution for Control dependency Branch
Prediction is the method through which stalls due
to control dependency can be eliminated. In this
at 1st stage prediction is done about which
branch will be taken.
• For branch prediction Branch penalty is zero.
• Branch penalty : The number of stalls introduced
during the branch operations in the pipelined
processor is known as branch penalty.
COA (Unit_2.pptx)
3. Data Dependency (Data Hazard)
• Example: Let there be two instructions I1 and
I2 such that:
I1 : ADD R1, R2, R3
I2 : SUB R4, R1, R2
• When the above instructions are executed in a
pipelined processor, then data dependency
condition will occur, which means that I2 tries
to read the data before I1 writes it, therefore,
I2 incorrectly gets the old value from I1.
COA (Unit_2.pptx)
• Operand Forwarding :
• In operand forwarding, we use the interface
registers present between the stages to hold
intermediate output so that dependent
instruction can access new value from the
interface register directly.
COA (Unit_2.pptx)
• Discuss delayed load or delayed branch with
example ?(2.5 marks)
1. Delayed Load
Consider now the operation of the following four instruction
• If the three segment pipeline proceeds
without interruptions, there will be a data
conflict in instruction 3 because the operand
in R2 is not yet available in the A segment.
• This can be seen from the timing of the
pipeline shown in fig 9-9(a).
1. Delayed Load
COA (Unit_2.pptx)
• The E segment in clock 4 is in a process of placing the
memory data into R2.
• The A segment in clock cycle 4 is using the data from
R2,but the value in R2 will not be the correct value
since it has not yet been transferred from memory.
• It is up to the compiler to make sure that the
instruction following the load instruction uses the data
fetched from memory.
• If the compiler cannot find a useful instruction to put
after the load, it inserts a no-op (no-operation)
instruction.
• This type of instruction that is fetched from memory
but has no operation, thus wasting a clock cycle.
• This concept of delaying the use of the data loaded
from memory is referred to a delayed load.
1. Delayed Load
• Fig 9-9(b) shows the same program with a no-
op instruction inserted after the load to R2
instruction.
• The data is loaded into R2 in clock cycle 4
• The add instruction uses the value of R2 in
step 5.
• Thus the no-op instruction is used to advance
one clock cycle in order to compensate for the
data conflict in the pipeline.
2. Delayed Branch
• The complier can determine that the program
dependencies allow one or more instructions
preceding the branch to be moved into the delay
steps after the branch.
• These instruction are then fetched from memory
and executed through the pipeline while branch
instruction is being executed in other segments.
• The effect is the same as if the instructions were
executed in their original order, except that the
branch delay is removed.
• An example of delayed branch is shown in fig 9-
10.
The program for this example consists of five instructions:
Delayed Branch
Explanation
• In figure 9-10(a) the compiler inserts two no-
op instruction after the branch.
• The branch address X is transferred to PC in
clock cycle 7.
• The fetching of the instruction at X is delayed
by two clock cycle by the no-op instructions.
• The instruction at X starts the fetch phase at
clock cycle 8 after the program counter PC has
been updated.
The program for this example consists of five instructions:
Delayed Branch
101
102
103
350
Address of
instruction
in memory
104
105
Explanation
• The program in fig 9-10(b) is rearranged by
placing the add and subtract instructions
after the branch instruction inserted of
before as in the original program.
• Inspection of the pipeline timing shows PC is
updated to the value of X in clock cycle 5,but
the add and subtract instructions are fetched
from memory and executed in the proper
sequence.
• If the load instruction is at address 101 and X
is equal to 350,the branch instruction is
fetched from address 103.
• The add instruction is fetched from address
104 and executed in clock cycle 6.
• The subtract instruction is fetched from
address 105 and executed in clock cycle 7.
• Since the value of X is transferred to PC with
clock cycle 5 in E segment, the instruction
fetched from memory at clock cycle 6 is from
address 350,which is the instruction at the
branch address and this instruction is now
executed.
Data Hazards
• Data hazards occur when instructions that
exhibit data dependence, modify data in
different stages of a pipeline.
• Hazard cause delays in the pipeline.
• There are mainly three types of data hazards:
1) RAW (Read after Write) [Flow/True data
dependency]
2) WAR (Write after Read) [Anti-Data
dependency]
3) WAW (Write after Write) [Output data
dependency]
COA (Unit_2.pptx)
• WAR and WAW hazards occur during the out-
of-order execution of the instructions.
Vector Processing
• A vector is a ordered set of scalar data(single
data ) items, all of the same type, stored in
memory.
• A vector is just like a array.
• Vector element are ordered to have a fixed
addressing increment between the successive
element called the stride.
Address 100 102 104
Value 1 2 3
If we have array of integer type than we increment 2 to get the next
address.
Vector Processing
1. Long range weather forecasting
2. Petroleum exploration
3. Seismic data analysis
4. Medical diagnosis
5. Aerodynamics and space flight simulations
Vector Operations
A vector is a ordered set of a one-dimensional array
of data items.
A vector V of length n is represented as a row
vector by V=[V1,V2,V3…Vn] data items.
It may be represented as a column vector if the
data items are listed operands one at a time.
A conventional sequential computer is capable of
processing operands one at a time.
Operations on vectors must be broken down into
single computations with subscripted variables.
The element Vi of vector V is written as V(I) and the
index I refers to a memory address or register
where the number is stored.
COA (Unit_2.pptx)
• A computer capable of vector processing
eliminates the overhead associated with the
time it takes to fetch and execute the
instructions in the program loop.
• It allows operations to be specified with a
single vector instruction of the form.
C(1:100)=A(1:100)+B(1:100)
The vector instruction includes the initial
address of the operands, the length of the
vectors, and the operation to be performed,
all in one composite instruction.
Instruction format for vector
processor
C(1:10)=A(1:10)+B(1:10)
A possible instruction format for a vector
instruction is shown in fig 9-11.
This is essentially a three address instruction
with three fields specifying the base address of
the operands and an additional field that gives
the length of the data items in the vectors.
This assumes that the vector operands reside in
memory.
It is also possible to design the processor with a
large number of registers and store all operands
in registers prior to the addition operation.
In this case the base address and length in the
vector instruction specify a group of CPU
register.
Matrix Multiplication
• The multiplication of two n*n matrices consist of
n^2 inner products or n^3 multiply-add
operations.
• An n*m matrix of numbers has n rows and m
columns and may be considered as a set of n row
vector or a set of m column vectors.
Total number of multiplication or addition
required to compute the matrix product is
9*3=27
9=first column and total number of column=3
So 9*3=27
COA (Unit_2.pptx)
This requires three multiplications and three
additions.
The total numbers of multiplications or
additions required to compute the matrix
product is 9x3=27
• In general, the inner product consists of sum
of k product terms of the form
• C=A1B1+A2B2+A3B3+A4B4……+AKBK
When k=3 we need (9x3 = 27) total number of
multiplications or additions to compute the
matrix product
Segment register
• All the segment registers in the multiplier and adder
are initialized to 0.
• Therefore output of the adder is 0 for the first eight
cycles until both pipes are full.
• Ai and Bi pairs are brought in and multiplied at a rate of
one pair per cycle.
• At the end of the eight cycle, the first four products
A1B1 through A4B4 are in the four adder segments,
and the next four products,A5B5 through A8B8 are in
the multiplier segments.
• At the beginning of the ninth cycle, the output of the
adder is A1B1 and the output of the multiplier is A5B5.
• Thus the ninth cycle starts the addition A1B1+A5B5 in
the adder pipeline.
• The tenth cycle starts the addition A2B2+A6B6,and so
on.
• Thus ninth cycle starts the addition
A1B1+A5B5 in the adder pipeline
• The tenth cycle starts the addition
A2B2+A6B6, and so on.
• When there are no more product terms to be
added, the system inserts four zeros into the
multiplier pipeline.
• The adder pipeline will have one partial
product in each of its four segments,
corresponding to the four sums listed in the
four rows in the above equation.
• The four partial sums are then added to form
the final sum.
2014
• Write a short note on memory interleaving?
(4 marks)
Memory Interleaving
Pipeline often require simultaneous access of
memory from two or more sources.
An instruction pipeline may require the fetching
of an instruction and an operand at the same
time from two different segments.
Instead of using two memory buses for
simultaneous access, the memory can be
partitioned into a number of modules
connected to a common memory address and
data buses.
• A memory module is a memory array together
with its own address and data registers.
• Figure 9-13 shows a memory unit with four
modules.
• Each module array has its own address
register AR and data register DR
• The address register receive information
from a common address bus and the data
registers communicate with a bidirectional
data bus.
• The two least significant bits of the address
can be used to distinguish between the four
modules.
COA (Unit_2.pptx)
• The modular system permits one module to
initiate a memory access while other module
are in the process of reading or writing a
word and each module can honour a memory
request independent of a state of the other
modules.
Computer Organization | RISC and
CISC
• Reduced Set Instruction Set Architecture
(RISC) –
The main idea behind is to make hardware
simpler by using an instruction set composed
of a few basic steps for loading, evaluating
and storing operations just like a load
command will load data, store command will
store the data in memory
• Complex Instruction Set Architecture (CISC) –
The main idea is that a single instruction will
do all loading, evaluating and storing
operations just like a multiplication command
will do stuff like loading data, evaluating and
storing it, hence it’s complex.
• Both approaches try to increase the CPU
performance
Characteristic of RISC –
• Simpler instruction, hence simple instruction
decoding.
• Instruction come under size of one word.
• Instruction take single clock cycle to get
executed.
• One clock cycle for each instruction includes:
fetch, decode and executed
• More number of general purpose register.
• Simple Addressing Modes.
• Less Data types.
• Pipeling can be achieved.
• RISC reduces the efficiency if program has
more line of code and to execute each line of
program it takes many clock cycles and also it
require more RAM to store the instruction.
RISC Architecture
• It uses highly optimized set of instructions
• RISC processor is used in portable device like
Apple iPod, smart phones and tablet
Characteristic of CISC –
• Complex instruction, hence complex
instruction decoding.
• Instruction are larger than one word size.
• Instruction may take more than single clock
cycle to get executed.
• Less number of general purpose register as
operation get performed in memory itself.
• Complex Addressing Modes.
• More Data types.
• Example – Suppose we have to add two 8-bit
number:
• CISC approach: There will be a single
command or instruction for this like ADD
which will perform the task.
• RISC approach: Here programmer will write
first load command to load data in registers
then it will use suitable operator and then it
will store result in desired location.
• So, add operation is divided into parts i.e.
load, operate, store due to which RISC
programs are longer and require more
memory to get stored but require less
transistors due to less complex command
2015
Give difference between RISC and CISC (2.5
marks)
COA (Unit_2.pptx)
COA (Unit_2.pptx)

More Related Content

Similar to COA (Unit_2.pptx)

Computer Organization and 8085 microprocessor notes
Computer Organization and 8085 microprocessor notesComputer Organization and 8085 microprocessor notes
Computer Organization and 8085 microprocessor notesLakshmi Sarvani Videla
 
Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...
Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...
Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...preethi3173
 
Central processing unit
Central processing unitCentral processing unit
Central processing unitjyoti_lakhani
 
8051 MICROCONTROLLER ARCHITECTURE.pptx
 8051 MICROCONTROLLER ARCHITECTURE.pptx 8051 MICROCONTROLLER ARCHITECTURE.pptx
8051 MICROCONTROLLER ARCHITECTURE.pptxMemonaMemon1
 
lec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptx
lec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptxlec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptx
lec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptxMadavanR1
 
DG M 4 ppt.pptx
DG M 4 ppt.pptxDG M 4 ppt.pptx
DG M 4 ppt.pptxJumana74
 
Central Processing Unit
Central Processing UnitCentral Processing Unit
Central Processing UnitBrenda Debra
 
310471266 chapter-7-notes-computer-organization
310471266 chapter-7-notes-computer-organization310471266 chapter-7-notes-computer-organization
310471266 chapter-7-notes-computer-organizationsrinoni
 
COMPUTER ORGANIZATION NOTES Unit 7
COMPUTER ORGANIZATION NOTES Unit 7COMPUTER ORGANIZATION NOTES Unit 7
COMPUTER ORGANIZATION NOTES Unit 7Dr.MAYA NAYAK
 
Control unit design
Control unit designControl unit design
Control unit designDhaval Bagal
 
EE5440 – Computer Architecture - Lecture 1
EE5440 – Computer Architecture - Lecture 1EE5440 – Computer Architecture - Lecture 1
EE5440 – Computer Architecture - Lecture 1Dilawar Khan
 
8051 microcontroller and it’s interface
8051 microcontroller and it’s interface8051 microcontroller and it’s interface
8051 microcontroller and it’s interfaceAbhishek Choksi
 

Similar to COA (Unit_2.pptx) (20)

Introduction of CPU.pptx
Introduction of CPU.pptxIntroduction of CPU.pptx
Introduction of CPU.pptx
 
Computer Organization and 8085 microprocessor notes
Computer Organization and 8085 microprocessor notesComputer Organization and 8085 microprocessor notes
Computer Organization and 8085 microprocessor notes
 
Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...
Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...
Computer organisation and architecture jntuh 2rd year 2nd unit # central proc...
 
Central processing unit
Central processing unitCentral processing unit
Central processing unit
 
8051 MICROCONTROLLER ARCHITECTURE.pptx
 8051 MICROCONTROLLER ARCHITECTURE.pptx 8051 MICROCONTROLLER ARCHITECTURE.pptx
8051 MICROCONTROLLER ARCHITECTURE.pptx
 
module-2.pptx
module-2.pptxmodule-2.pptx
module-2.pptx
 
lec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptx
lec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptxlec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptx
lec3-8051microcontrollerarchitecture-230130044236-5c11a082.pptx
 
DG M 4 ppt.pptx
DG M 4 ppt.pptxDG M 4 ppt.pptx
DG M 4 ppt.pptx
 
SUDHARSAN.V.pptx
SUDHARSAN.V.pptxSUDHARSAN.V.pptx
SUDHARSAN.V.pptx
 
architect.ppt
architect.pptarchitect.ppt
architect.ppt
 
Mp 8085
Mp 8085Mp 8085
Mp 8085
 
Central Processing Unit
Central Processing UnitCentral Processing Unit
Central Processing Unit
 
Digital-Unit-III.ppt
Digital-Unit-III.pptDigital-Unit-III.ppt
Digital-Unit-III.ppt
 
310471266 chapter-7-notes-computer-organization
310471266 chapter-7-notes-computer-organization310471266 chapter-7-notes-computer-organization
310471266 chapter-7-notes-computer-organization
 
COMPUTER ORGANIZATION NOTES Unit 7
COMPUTER ORGANIZATION NOTES Unit 7COMPUTER ORGANIZATION NOTES Unit 7
COMPUTER ORGANIZATION NOTES Unit 7
 
Control unit design
Control unit designControl unit design
Control unit design
 
EE5440 – Computer Architecture - Lecture 1
EE5440 – Computer Architecture - Lecture 1EE5440 – Computer Architecture - Lecture 1
EE5440 – Computer Architecture - Lecture 1
 
8051 microcontroller and it’s interface
8051 microcontroller and it’s interface8051 microcontroller and it’s interface
8051 microcontroller and it’s interface
 
Unit 2.ppt
Unit 2.pptUnit 2.ppt
Unit 2.ppt
 
Co ppt
Co pptCo ppt
Co ppt
 

More from Thapar Institute

More from Thapar Institute (19)

Digital Electronics Unit_4_new.pptx
Digital Electronics Unit_4_new.pptxDigital Electronics Unit_4_new.pptx
Digital Electronics Unit_4_new.pptx
 
Digital Electronics Unit_3.pptx
Digital Electronics Unit_3.pptxDigital Electronics Unit_3.pptx
Digital Electronics Unit_3.pptx
 
Digital Electronics Unit_2.pptx
Digital Electronics Unit_2.pptxDigital Electronics Unit_2.pptx
Digital Electronics Unit_2.pptx
 
Digital Electronics Unit_1.pptx
Digital Electronics Unit_1.pptxDigital Electronics Unit_1.pptx
Digital Electronics Unit_1.pptx
 
C Language Part 1
C Language Part 1C Language Part 1
C Language Part 1
 
Compiler Design Introduction
Compiler Design Introduction Compiler Design Introduction
Compiler Design Introduction
 
Web Technology Part 4
Web Technology Part 4Web Technology Part 4
Web Technology Part 4
 
Web Technology Part 3
Web Technology Part 3Web Technology Part 3
Web Technology Part 3
 
Web Technology Part 2
Web Technology Part 2Web Technology Part 2
Web Technology Part 2
 
Web Technology Part 1
Web Technology Part 1Web Technology Part 1
Web Technology Part 1
 
TOC Introduction
TOC Introduction TOC Introduction
TOC Introduction
 
CSS Introduction
CSS Introduction CSS Introduction
CSS Introduction
 
COA (Unit_4.pptx)
COA (Unit_4.pptx)COA (Unit_4.pptx)
COA (Unit_4.pptx)
 
COA(Unit_3.pptx)
COA(Unit_3.pptx)COA(Unit_3.pptx)
COA(Unit_3.pptx)
 
COA (Unit_1.pptx)
COA (Unit_1.pptx)COA (Unit_1.pptx)
COA (Unit_1.pptx)
 
Software Testing Introduction (Part 4))
 Software Testing Introduction (Part 4)) Software Testing Introduction (Part 4))
Software Testing Introduction (Part 4))
 
Software Testing Introduction (Part 3)
 Software Testing Introduction (Part 3) Software Testing Introduction (Part 3)
Software Testing Introduction (Part 3)
 
Software Testing Introduction (Part 2)
Software Testing Introduction (Part 2)Software Testing Introduction (Part 2)
Software Testing Introduction (Part 2)
 
Software Testing Introduction (Part 1)
Software Testing Introduction (Part 1)Software Testing Introduction (Part 1)
Software Testing Introduction (Part 1)
 

Recently uploaded

Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmonyelliciumsolutionspun
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfTobias Schneck
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesSoftwareMill
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdfMeon Technology
 
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Projectwajrcs
 
20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기Chiwon Song
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?AmeliaSmith90
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilVICTOR MAESTRE RAMIREZ
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampVICTOR MAESTRE RAMIREZ
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorShane Coughlan
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfBrain Inventory
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Jaydeep Chhasatia
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntelliSource Technologies
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadIvo Andreev
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxAutus Cyber Tech
 

Recently uploaded (20)

Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine HarmonyLeveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
Leveraging DxSherpa's Generative AI Services to Unlock Human-Machine Harmony
 
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdfARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
ARM Talk @ Rejekts - Will ARM be the new Mainstream in our Data Centers_.pdf
 
Growing Oxen: channel operators and retries
Growing Oxen: channel operators and retriesGrowing Oxen: channel operators and retries
Growing Oxen: channel operators and retries
 
online pdf editor software solutions.pdf
online pdf editor software solutions.pdfonline pdf editor software solutions.pdf
online pdf editor software solutions.pdf
 
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example ProjectMastering Kubernetes - Basics and Advanced Concepts using Example Project
Mastering Kubernetes - Basics and Advanced Concepts using Example Project
 
20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기20240330_고급진 코드를 위한 exception 다루기
20240330_고급진 코드를 위한 exception 다루기
 
How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?How Does the Epitome of Spyware Differ from Other Malicious Software?
How Does the Epitome of Spyware Differ from Other Malicious Software?
 
Generative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-CouncilGenerative AI for Cybersecurity - EC-Council
Generative AI for Cybersecurity - EC-Council
 
Deep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - DatacampDeep Learning for Images with PyTorch - Datacamp
Deep Learning for Images with PyTorch - Datacamp
 
Kawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in TrivandrumKawika Technologies pvt ltd Software Development Company in Trivandrum
Kawika Technologies pvt ltd Software Development Company in Trivandrum
 
OpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS CalculatorOpenChain Webinar: Universal CVSS Calculator
OpenChain Webinar: Universal CVSS Calculator
 
Program with GUTs
Program with GUTsProgram with GUTs
Program with GUTs
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
Sustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire ThornewillSustainable Web Design - Claire Thornewill
Sustainable Web Design - Claire Thornewill
 
Why Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdfWhy Choose Brain Inventory For Ecommerce Development.pdf
Why Choose Brain Inventory For Ecommerce Development.pdf
 
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
Optimizing Business Potential: A Guide to Outsourcing Engineering Services in...
 
Introduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptxIntroduction-to-Software-Development-Outsourcing.pptx
Introduction-to-Software-Development-Outsourcing.pptx
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Cybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and BadCybersecurity Challenges with Generative AI - for Good and Bad
Cybersecurity Challenges with Generative AI - for Good and Bad
 
ERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptxERP For Electrical and Electronics manufecturing.pptx
ERP For Electrical and Electronics manufecturing.pptx
 

COA (Unit_2.pptx)

  • 1. Unit 2 • Micro programmed control The major functional parts in a digital computer are CPU, Memory, and input-output. The main digital hardware functional units of CPU are control unit, arithmetic and logic unit, and registers. The function of control unit in a digital computer is to initiate sequences of micro operation. The number of different type of micro operation that are available in give system is finite. The complexity of the digital system is derived from the number of sequences of micro operations that are performed.
  • 3. Two method of implementing the control unit are hardwired control and micro-programmed control. • The design of hardwired control involves the use of fixed instructions, fixed logic blocks, encoder, decoder.(see Unit 1 slide 140) • The key characteristics of hardwired control logic are high-speed operation, expensive, relatively complex and no flexibility of adding new instructions. • Example CPU with hardwired logic control are Intel 8085,RISC CPUs.
  • 4. • When the control signals are generated by hardware using conventional logic design techniques, the control unit is said to be hardwired. • Microprogramming is a second alternative for designing the control unit of a digital computer. • The principle of microprogramming is an systematic method for controlling the micro operation sequences in a digital computer. • For example: CPUs with micro programmed control unit are Intel 8080,CISC(Complex Instruction Set Computer)CPUs.
  • 5. Pipeline register • The control data register holds the present microinstruction while the next address is computed and read from memory • The data register is sometimes called a pipeline register. • It allows the execution of the micro operations specified by the control word simultaneously with the generation of the next microinstruction.
  • 6. Advantage of Micro programmed control • Once the hardware configuration is established, there should be no need for further hardware or wiring changes. • If we want to establish a different control sequence for the system, all we need to do is specify a different set of microinstruction for control memory. • The hardware configuration should not be changed for different operations; the only thing that must be changed is the micro program residing in control memory.
  • 7. Central Processing Unit • 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 CPU is made up of three major parts as shown in figure 8.1 • The register set stores intermediate data used during the execution of the instruction. • The arithmetic logic unit perform the required micro operation for executing the instruction.
  • 8. • The control unit supervises the transfer of information among the registers and instructs the ALU as to which operation to perform.
  • 9. General Register Organization • When a large number of registers are included in the CPU, it is most efficient to connect them through a common bus system. • The register communicate with each other not only for direct data transfers, but also while performing various micro operations. • Hence it is necessary to provide a common unit that can perform all the arithmetic, logic, an shift micro operations in the processor.
  • 10. Bus System • A bus organization for seven CPU register is shown in figure 8-2. • The output of each register is connected to two multiplexer to form the two buses A and B. • The selection lines in each multiplexer select one register or the input data for the particular bus. • The A and B buses from the inputs to a common arithmetic or logic unit. • The operation selected in the ALU determines the arithmetic or logic micooperation that is to be performed.
  • 12. • The result of the micooperation is available for output data and also goes into the inputs of all the registers. • The register that receives the information from the output bus is selected by a decoder. • The decoder activates one of the register load inputs, thus providing a transfer path between the data in the output bus and the input of the selected destination register.
  • 13. • The control unit that operates the CPU bus system directs the information flow through the registers and ALU by selecting the various components in the system. • For example : to perform the operation R1<-R2+R3 The control must provide binary selection variables to the following selector inputs: 1. MUX A selector(SELA):to place the content of R2 into bus A. 2. MUX B selector(SELB): to place the content of R3 into bus B.
  • 14. 3. ALU operation selector (OPR): to provide the arithmetic addition A+B 4. Decoder destination selector(SELD):to transfer the content of the output bus into R1.
  • 15. 3 3 3 5 SELA SELB SELD OPR Control Word There are 14 binary selection inputs in the unit, and their combined value specifies a control word. The 14 bit control word is defined in above figure. It consists of four fields. Three fields contain three bits each, and one field has five bits. The three bit of SELA select a source register for the A input of the ALU. The three bit of SELB select a register for the B input of the ALU. The three bits of SELD select a destination register using the decoder and its seven load outputs. The five bit of OPR select one of the operations in the ALU. The 14 bit control word when applied to the selection inputs specify a particular micro operation.
  • 16. When SELA or SELB is 000,the corresponding multiplexer selects the external input data. When SELD=000,no destination register is selected but the contents of the output bus are available in the external output
  • 17. ALU The ALU provides arithmetic and logic operations. In addition, the CPU must provide shift operations. The shifter may be placed in the input of the ALU to provide a preshift capability, or at the output of the ALU to provide postshifting capability. The OPR field has five bits and each operation is designed with a symbol name.
  • 20. Stack Organization • A useful feature that is included in the CPU of most computers is a stack (or LIFO). • A stack is a storage device that stores information in such a manner that the item stored last is first item retrieved. Stack Pointer The register that holds the address for the stack is called a stack pointer because its value always points at the top item in the stack.
  • 21. Stack Organization • The two operation of a stack are the insertion and deletion of items. • The operation of insertion is called push because it can be thought of as the result of pushing a new item on top. • The operation of deletion is called pop because it can be thought of as the result of removing one item so that the stack pops up.
  • 22. Register Stack • A stack can be placed in a portion of a large memory or it can be organized as a collection of a finite number of memory words or registers. • Figure shows the organization of a 64-word register stack.
  • 23. Register contains 1 word B is an item stored in stack register Contains an item to be written on stack
  • 24. • The stack pointer register SP contains a binary number whose value is equal to the address of the word that is currently on top of the stack. • Three items are placed in the stack :A,B and C in that order. • Item C is on top of the stack so that the content of SP is now 3. • To remove the top item, the stack is popped by reading the memory word at address 3 and decrementing the content of SP.
  • 25. • Item B is now on top of the stack since SP holds address 2. • To insert a new item, the stack is pushed by incrementing SP and writing a word in the next-higher location in the stack. • In a 64 word stack , the stack pointer contains 6 bits because 2 power 6=64. • SP is of 6 bits it cannot exceed a number greater than 63. • When 63 is incremented by 1 the result is 0 since 111111+1=1000000 in binary but SP can accommodate only the six least significant bits.
  • 26. • Similarly when 000000 is decremented by 1,the result is 111111. • The one bit register FULL is set to 1 when the stack is full and the one bit register EMPTY is set to 1 when the stack is empty of items. • DR is the data register that holds the binary data to written into or read out the stack.
  • 27. Push • Initially, SP is cleared to 0,EMPTY is set to 1 and FULL is cleared to 0 so that SP points to the word at address 0 and the stack is marked empty and not full. • If the stack is not full(if FULL=0),new item is inserted with a push operation. • The push operation is implemented with the following sequence of micro operations: SP<-SP+1 increment stack pointer M[SP]<-DR write item on top of the stack.
  • 28. Push • If(SP=0) then (FULL<-1) check if stack is full • EMPTY<-0 Mark the stack not empty. • If SP reaches 0, the stack is full of items, so FULL is set to 1. • Ones an item is stored in location 0,there are no more empty registers in the stack. • If an item is written in the stack, the stack cannot be empty, so empty is cleared to 0.
  • 29. POP • A new item is deleted from the stack if the stack is not empty. • DR<-M[SP] read item from the top of stack • SP<-SP-1 Decrement stack pointer • If(SP=0) then (EMPTY<-1) check if stack is empty FULL<-0 Mark the stack not full
  • 30. Explanation • The top item is read from the stack into DR. • The stack pointer is then decremented. • If its value reached zero, the stack is empty, so EMPTY is set to 1. • This condition is reached if the item read was in location 1. • Once this item is read out, SP is decremented and reaches the value 0,which is the initial value of SP.
  • 31. Memory Stack • Portion of memory partitioned into three segments: program, data and stack. • The program counter PC points at the address of the next instruction in the program. • The address register AR points at an array of data. • The stack pointer SP points at the top of the stack. • The three registers are connected to a common address bus, and either one can provide an address of memory.
  • 32. • PC is used during the fetch phase to read an instruction. • AR is used during the execution phase to read an operand. • SP is used to push or pop items into or from the stack.
  • 33. Instruction to be executed are stored in PC AR AR holds the address of operand
  • 34. Push operation A new item is inserted with the push operation as follows: SP<-SP-1 M[SP]<-DR The stack pointer is decremented so that it points at the address of the next word. A memory word operation inserts the word from DR into the top of the stack.
  • 35. POP operation • A new item is deleted with a pop operation as follows: DR<-M[SP] SP<-SP+1 The top item is read from the stack into DR. The stack pointer is then incremented to point at the next item in the stack.
  • 36. Stack limit • The stack limit can be checked by using two processor registers: one to hold the upper limit(3000 in this case), and the other to hold the lower limit(4001 in this case). • After a push operation, SP is compared with the upper-limit register and after a pop operation, SP is compared with the lower- limit register. • The stack pointer is loaded with an initial value. This initial value must be the bottom address of an assigned stack in memory.
  • 37. Infix Notation Simple arithmetic expression : A*B+C*D • The star is placed between two operands A and B or C and D. • The plus is between the two products. • To evaluate this arithmetic expression it is necessary to compute the product A*B, store this product while computing C*D and then sum the two products.
  • 38. Reverse Polish Notation OR Postfix notation It places the operator after the operands. AB*CD+ The reverse polish notation is in a form suitable for stack manipulation. Infix: A*B+C*D is written in reverse Polish notation as : AB*CD*+
  • 39. Rule • Scan the expression from left to right • When an operator is reached, perform the operation with the two operands found on the left side of the operator. • Remove the two operands and the operator and replace them by the number obtained from the result of the operation.
  • 40. Evaluation of Arithmetic Expression • Reverse Polish notation, combined with a stack arrangement of registers, is the most efficient way known for evaluating arithmetic expression. • Arithmetic expression : (3*4)+(5*6) • In reverse polish notation: 34*56*+
  • 42. EXPLANATION • Each box represent one stack operation and the arrow always points to the top of the stack. • Scanning the expression from left to right, we encounter two operands. • First the number 3 is pushed into the stack, then the number 4 • The next symbol is the multiplication operator *. • This causes a multiplication of the two topmost items in the stack. • The stack is then popped and the product is placed on top of the stack, replacing the two original operands.
  • 43. EXPLANATION • Next we encounter the two operands 5 and 6,so they are pushed into the stack. • The stack operation that results from the next * replaces these two numbers by their product. • The last operation causes an arithmetic addition of two topmost numbers in the stack to produce the final result 42.
  • 44. AB*+(CD/+EF*) AB*+(CD/EF*+) AB*(CD/EF*+)+ is a postfix notation or reverse polish notation
  • 45. Instruction format • The most common fields found in instruction formats are : 1. An operation code field that specifies the operation to be performed 2. An address field that designates a memory address or a processor register 3. A mode field that specifies the way the operand or the effective address is determined.
  • 46. Register address • Operands residing in memory are specified by their memory address. • Operands residing in processor register are specified by with a register address. • A register address in a binary number of k bits that defines one of the 2^K registers in the CPU. • Thus a CPU with 16 processor register R0 through R15 will have a register address field of four bits.
  • 47. Most computer fall into one of three type of CPU organization : 1. Single accumulator organization 2. General register organization 3. Stack organization
  • 48. 1. Single Accumulator organization • All operations are performed with an implied accumulator register • The instruction format in this type of computer uses one address field. • For example: the instruction that specifies an arithmetic addition is defined by an assembly language instruction. • We need to reduce cost so only 1 register is used. • Speed will be slow because we have used only 1 register.
  • 49. ADD X where X is the address of the operand. The ADD instruction in this case results in the operation AC<-AC+M[X]. AC is the accumulator register and M[X] symbolizes the memory word located at address X.
  • 50. 2 General Register Type • Number of registers are more then single accumulator. • Speed will be increase • Cost will be more in comparison with single accumulator. • Size of the instruction will increase.
  • 51. 2 General Register Type • The instruction format in this type of computer needs three register address fields: ADD R1,R2,R3 • To denote the operation R1<-R2+R3. • The number of address fields in the instruction can be reduced from three to two if the destination register is the same as one of the source register. ADD R1,R2 to denote the operation R1<-R2 R1 is destination register R2 and R3 are the source register
  • 52. 2 General Register Type • MOV R1,R2 Denotes transfer R1<-R2. Transfer type instructions need two address fields to specify the source and the destination. • ADD R1,X Would specify the operation R1<-R1+M[X]. It has two address field store for register R1 and other for the memory address X.
  • 53. 3. Stack organization • Computers with stack organization would have PUSH and POP instructions which require an address field. • PUSH X will push the word at address X to the top of the stack. • The stack pointer is updated automatically. • Operation type instruction do not need an address field in stack-organized computers because operation is performed on the two items that are on top of stack.
  • 54. The instruction ADD in a stack computer consists of an operand code only with no address field. This operation has the effect of popping the two top numbers from the stack, adding the numbers, and pushing the sum in the stack. There is no need to specify operands with an address field since all operands are implied to be in the stack.
  • 55. Note • Most of the computers fall into one of the three types of organizations that have just been described.
  • 56. • To evaluate the arithmetic statement • X=(A+B)*(C+D) • Using zero, one, two, or three address instructions. • We will use the symbols ADD,SUB,MUL,DIV for the four arithmetic operations; • MOV for the transfer-type operation; and LOAD and STORE for transfers to and from memory and AC register. • We will assume that the operands are in memory addresses A,B,C, and D, and the result must be stored in memory at address X.
  • 57. 1. Three address instruction • Computer with three-address instruction formats can use each address field to specify either a processor register or a memory operand.
  • 58. Example We will evaluate arithmetic statement : X=(A+B)*(C+D) using zero, one, two or three address instruction. Three Address Instruction : ADD R1,A,B R1<-M[A]+M[B] ADD R2,C,D R2<-M[C]+M[D] MUL X,R1,R2 M[X]<-R1*R2 It is assumed that the computer has two processor registers,R1 and R2. The symbol M[A] denotes the operand at memory address symbolized by A
  • 59. EXPLANATION • The advantage of the three-address format is that it results in short programs when evaluating arithmetic expressions. • Computer with three-address instruction formats can use each address field to specify either a processor register or a memory operand.
  • 60. 2. Two address instruction Two address instruction are most common in commercial computers. Here again each address field can specify either a processor register or a memory word.
  • 61. Example We will evaluate arithmetic statement : X=(A+B)*(C+D) using zero, one, two or three address instruction. Two Address Instruction : MOV R1,A R1<-M[A] ADD R1,B R1<-R1+M[B] MOV R2,C R2<-M[C] ADD R2,D R2<-R2+M[D] MUL R1,R2 R2<-R1*R2 MOV X,R1 M[X]<-R1
  • 62. EXPLANATION • The MOV instruction moves or transfers the operands to and from memory and processor register
  • 63. Example We will evaluate arithmetic statement : X=(A+B)*(C+D) using zero, one, two or three address instruction. One Address Instruction : LOAD A AC<-M[A] ADD B AC<-AC+M[B] STORE T M[T]<-AC LOAD C AC<-M[C] ADD D AC<-AC+M[D] MUL T AC<-AC*M[T] STORE X M[X]<-AC
  • 64. EXPLANATION • One address instruction use an implied accumulator(AC) register for all data manipulation. • For multiplication and division there is need for a second register. • Here we will neglect the second register and assume that the AC contains the result of all operations.
  • 65. Example We will evaluate arithmetic statement : X=(A+B)*(C+D) using zero, one, two or three address instruction. Zero Address Instruction : Push A TOS<-A PUSH B TOS<-B ADD TOS<-(A+B) PUSH C TOS<-C PUSH D TOS<-D ADD TOS<-(C+D) MUL TOS<-(C+D)*(A+B) POP X M[X]<-TOS
  • 66. EXPLANATION • To evaluate arithmetic expression in a stack computer, it is necessary to convert the expression into reverse polish notation • The name zero-address is given to this type of computer because of the absence of an address field in the computational instructions.
  • 67. Asked in 2014 2015 2016 2019
  • 72. RISC (Reduced Instruction Set Computer) • It is designed to reduce the execution time by simplifying the instruction set component. • Each instruction require only 1 clock cycle(fetch, decode and execute). Characteristics 1. Relatively few instruction 2. Relatively few addressing mode
  • 73. RISC INSTRUCTION X=(A+B)*(C+D) LOAD R1,A R1<-M[A] LOAD R2,B R2<-M[B] LOAD R3,C R3<-M[C] LOAD R4,D R4<-M[D] ADD R1,R1,R2 R1<-R1+R2 ADD R3,R3,R4 R3<-R3+R4 MUL R1,R1,R3 R1<-R1*R3 STORE X,R1 M[X]<-R1
  • 74. • The instruction set of a typical RISC processor is restricted to the use of load and store instructions when communicating between memory and CPU. • All other instruction are executed within the registers of the CPU without referring to memory. • A program for a RISC-type CPU consists of LOAD and STORE instructions that have one memory and one register address, and computational type instructions that have three addresses with all three specifying processor register.
  • 75. Addressing Mode • the control unit of a computer is designed to go through an instruction cycle that is divided into three major phases: 1. Fetch the instruction from memory 2. Decode the instruction 3. Execute the instruction
  • 76. Program Counter • Program counter holds the address of the next instruction to be executed next and is incremented each time an instruction is fetched from memory. • The decoding done in step 2 determines the operation to be performed, the addressing mode of the instruction, and the location of the operands. • The computer then executes the instruction and returns to step 1 to fetch the next instruction in sequence.
  • 77. Mode field • The operation code specifies the operation to be performed. • The mode field is used to locate the operands needed for the operation. • There may or may not be address field in the instruction • If there is an address field, it may designate a memory address or a processor register.
  • 79. • Explain various addressing modes used in instruction format. Give numerical example to explain.(6.5 marks)
  • 80. Implied Mode • In this mode the operand are specified implicitly in the definition of the instruction. • For example: the instruction “complement accumulator” is an implied mode instruction because the operand in the accumulator register is implied in the definition of the instruction. • Zero address instruction in a stack-organized computer are implied mode instructions since the operands are implied to be on top of the stack.
  • 81. Immediate Mode • In this mode the operand is specified in the instruction itself. • In other words, an immediate-mode has an operand field rather than an address field. • The operand field contains the actual operand to be used in conjunction with the operation specified in the instruction. • Immediate-mode instruction are useful for initializing registers to a constant value.
  • 82. Register Mode • In this mode the operands are in registers that reside within a register in the CPU. • The particular register is selected from a register field in the instruction. • A k-bit field can specify any one of 2^k registers.
  • 83. Register Indirect Mode • In this mode the instruction specifies a register in the CPU whose contents give the address of the operand in memory. • The selected register contains the address of the operand rather than the operand itself.
  • 84. Auto increment and Auto decrement Mode • This is similar to the register indirect mode except that the register is incremented or decremented after its value is used to access memory.
  • 85. Direct Address Mode • In this mode the effective address is equal to the address part of the instruction. • The operand reside in the memory and its address is given directly by the address field of the instruction.
  • 86. Indirect Address Mode • In this mode the address field of the instruction gives the address where the effective address is stored in memory • Effective address=address part of the instruction+ content if CPU register
  • 87. Relative Address Mode • In this mode the content of the program counter is added to the address part of the instruction in order to obtain the effective address. • Example: program counter contains the number 825 and address part of the instruction contains the number 24.the instruction at location 825 is read from memory during the fetch phase and the program counter is incremented by one to 826. • The effective address for the relative address mode is 826+24=850. • This is 24 memory locations forward from the address of the next instruction.
  • 88. Effective Address • The effective address is defined to be memory address obtained from the computation dictated by the given addressing mode. • The effective address is the address of the operand in a computational type instruction.
  • 89. Indexed Addressing Mode • In this mode the content of an index register is added to the address part of the instruction to obtain the effective address.
  • 90. Base Register Addressing Mode • In this mode the content of a base register is added to the address part of the instruction to obtain the effective address.
  • 91. Numerical Example • The two-word instruction at address 200 and 201 is a “load to AC” instruction with an address field equal to 500. • The first word of the instruction specifies the operation code and mode, and the second word specifies the address part. • PC has the value 200 for fetching this instruction. • The content of processor register R1 is 400, and the content of an index register XR is 100. • AC receives the operand after the instruction is executed.
  • 93. • The mode field of the instruction can specify any one of a number of modes. • For each possible mode we calculate the effective address and the operand that must be loaded into AC. • In the direct addressing mode the effective address is the address part of the instruction 500 and the operand to be loaded into AC is 800. • In the immediate addressing mode the second word of the instruction is taken as the operand rather than an address, so 500 is loaded into AC.
  • 94. • In the indirect mode the effective address is stored in memory at address 500. • Therefore the effective address is 800 and the operand is 300. • In the relative mode the effective address is 500+202=702 and the operand is 325. • In the index mode the effective address is XR+500=100+500=600 and the operand is 900 • In the register mode the operand is in R1 and 400 is loaded into AC. • In the register indirect mode the effective address is 400,equal to content of R1 and the operand loaded into AC is 700.
  • 95. • The auto increment mode is the same as the register indirect mode except that R1 is incremented to 401 after the execution of the instruction. • The auto decrement mode decrements R1 to 399 prior to the execution of the instruction. • The operand loaded into AC is now 450.
  • 97. Asked in 2014 • Explain direct and indirect addressing mode using example ?(2marks)
  • 98. Asked in 2014 Which addressing mode need no address fields? Explain them (2 marks) • In implied mode the operand are specified implicitly in the definition of the instruction. • For example: the instruction “complement accumulator” is an implied mode instruction because the operand in the accumulator register is implied in the definition of the instruction.
  • 99. Opcode 400 In case of direct addressing mode Effective address is present in instruction itself Effective address=400 200 R1 Opcode 300 AO 400 301 302
  • 100. Opcode 400 In case of Immediate addressing mode instruction contain the operand=400 Operand is stored at location 301 so Effective address=301 200 R1 Address Opcode 300 operand 400 301 302
  • 101. Opcode 400 200 R1 Address Opcode 300 operand 400 301 302 Instruction size is of 2 byte D=2(step size) Program counter initially hold 300 When instruction is fetched PC=302(address of next instruction) 302 PC In case of relative addressing mode effective address= PC+ Address of instruction =400+302=702
  • 102. Opcode 400 In case of register indirect addressing mode Effective address=200 200 R1 Address Opcode 300 operand 400 301 302 Address of register (R1) , register is present in CPU 400
  • 104. 2014 • What is pipelining /pipeline processing? discuss with the help of suitable example.(4.5 marks)
  • 105. Pipelining • Pipeline is a technique of decomposing a sequential process into sub operations, with each sub process being executed in a special dedicated segment that operates concurrently with all other segments.
  • 111. • If we have n instruction the for 1st instruction to complete we require k (stages or segment) and for rest n-1 instruction we require only 1 clock cycle. • Total number of clock cycles required:k+n-1 • In previous slide k=4 and n=6 • For first instruction (1*4) time required and for rest n-1 instruction (6-1)*1(only one clock cycle)=4+5=9 • So at clock cycle 9 all the instruction are executed.
  • 112. Speedup • S=(n*tn)/(k+n-1)*tp Note: total time required for n tasks in n*tn We have 6 instruction and each require 4 clock cycle=6*4=24 for non-pipeline For pipeline we have calculated :9 Speed up =24/9=2.6
  • 113. • Determine the number of clock cycle that it take to process 200 tasks in a six segment pipeline. Assume Tp=1 K=6 and n=200 K+(n-1)*tp=6+199 =205 clock cycle
  • 114. S=(n*tn)/(k+n-1)*tp N=100 , tn=50ns,tp=10ns For non pipeline total time taken =n*tn=100*50=5000 For pipeline total time taken = (k+n-1)*tp =(6+100-1)*10=1050ns Speed Up=total time taken for non-pipeline/total time taken for pipeline =5000/1050=4.76
  • 115. 1. Arithmetic Pipeline • Arithmetic Pipelines are mostly used in high- speed computers. • They are used to implement floating-point operations, multiplication of fixed-point numbers, and similar computations encountered in scientific problems. • To understand the concepts of arithmetic pipeline in a more convenient way, let us consider an example of a pipeline unit for floating-point addition and subtraction.
  • 116. The inputs to the floating-point adder pipeline are two normalized floating-point binary numbers defined as:
  • 117. • The combined operation of floating-point addition and subtraction is divided into four segments. Each segment contains the corresponding sub operation to be performed in the given pipeline. The sub operations that are shown in the four segments are: • Compare the exponents by subtraction. • Align the mantissas. • Add or subtract the mantissas. • Normalize the result.
  • 120. 1. Compare exponents by subtraction: • The exponents are compared by subtracting them to determine their difference. The larger exponent is chosen as the exponent of the result. • The difference of the exponents, i.e., 3 - 2 = 1 determines how many times the mantissa associated with the smaller exponent must be shifted to the right.
  • 121. 2. Align the mantissas: • The mantissa associated with the smaller exponent is shifted according to the difference of exponents determined in segment one.
  • 122. 3. Add mantissas • The two mantissas are added in segment three. • After normalization, the result is written as: 4. Normalize the result
  • 124. 2018 • Explain instruction pipeline? (6 marks)
  • 125. 2. Instruction Pipeline • Pipeline processing can occur not only in the data stream but in the instruction stream as well. • An instruction pipeline reads consecutive instructions from memory while previous instruction are being executed in other segments. • Most of the digital computers with complex instructions require instruction pipeline to carry out operations like fetch, decode and execute instructions.
  • 126. • In general, the computer needs to process each instruction with the following sequence of steps. 1. Fetch instruction from memory. 2. Decode the instruction. 3. Calculate the effective address. 4. Fetch the operands from memory. 5. Execute the instruction. 6. Store the result in the proper place.
  • 127. • The organization of an instruction pipeline will be more efficient if the instruction cycle is divided into segments of equal duration. One of the most common examples of this type of organization is a Four-segment instruction pipeline. • A four-segment instruction pipeline combines two or more different segments and makes it as a single one. For instance, the decoding of the instruction can be combined with the calculation of the effective address into one segment.
  • 129. Segment 1: • The instruction fetch segment can be implemented using first in, first out (FIFO) buffer. Segment 2: • The instruction fetched from memory is decoded in the second segment, and eventually, the effective address is calculated in a separate arithmetic circuit. Segment 3: • An operand from memory is fetched in the third segment. Segment 4: • The instructions are finally executed in the last segment of the pipeline organization.
  • 130. • Figure shows how the instruction cycle in the CPU can be processed with a four-segment pipeline. • While an instruction is being executed in segment 4, the next instruction in sequence is busy fetching an operand from memory in segment 3. • The effective address may be calculated in a separate arithmetic circuit for the third instruction, and when ever memory is available, the fourth and all subsequent instructions can be fetched and placed in instruction FIFO. • Up to 4 different instruction can be in progress of being processed at the same time.
  • 131. • Once in a while, an instruction in the sequence may be a program control type that causes a branch out of normal sequence. • In that case the pending operations in the last two segments are completed and all information stored in the instruction buffer is deleted. • The pipeline then restarts from the new address stored in the program counter. • Similarly, an interrupt request, when acknowledged, will cause the pipeline to empty and start again from a new address value.
  • 132. Note • A branch is an instruction in a computer program that can cause a computer to begin executing a different instruction sequence and thus deviate from its default behavior of executing instructions in order.
  • 134. • In the absence of branch instruction, each segment operates on different instructions. • Thus in step 4,instruction 1 is being executed in segment EX; the operand for instruction 2 is being fetched in segment FO; instruction 3 is being decoded in segment DA and instruction 4 is being fetched from memory in segment FI. • Assume now that instruction 3 is a branch instruction. • As soon as this instruction is decoded in segment DA in step 4, the transfer from FI to DA of the other instruction is halted until the branch instruction is executed in step 6.
  • 135. • If the branch is taken, a new instruction is fetched in step 7. • If the branch is not taken, the instruction fetched previously in step 4 can be used. • The pipeline then continues until a new branch instruction is encountered.
  • 136. • Assuming now the instruction 3 is a branch instruction. • As soon as instruction is decoded in segment DA in step 4, the transfer from FI to DA of the other instruction is halted until the branch instruction is executed in step 6. • If a branch is taken a new instruction is fetched in step 7. • If the branch is not taken the instruction fetched previously in step 4 can be used.
  • 137. 2014 What are 3 type of pipeline conflicts? Discuss them in brief.(3 marks)
  • 138. Pipeline conflicts • In general there are three major difficulties that causes the instruction pipeline to deviate from its normal operation. 1. Resource conflicts caused by access to memory by two segments at the same time. 2. Data dependency conflict arises when an instruction depends on the result of a previous instruction, but this result is not yet available. 3. Branch difficulties arise from branch and other instructions that change the value of PC
  • 139. Dependencies in a pipelined processor • There are mainly three types of dependencies possible in a pipelined processor. • These are : 1) Structural Dependency 2) Control Dependency 3) Data Dependency
  • 140. • These dependencies may introduce stalls in the pipeline. Stall : A stall is a cycle in the pipeline without new input.
  • 141. 1. Structural dependency • This dependency arises due to the resource conflict in the pipeline. • A resource conflict is a situation when more than one instruction tries to access the same resource in the same cycle. • A resource can be a register, memory, or ALU
  • 143. • In the above scenario, in cycle 4, instructions I1 and I4 are trying to access same resource (Memory) which introduces a resource conflict. To avoid this problem, we have to keep the instruction on wait until the required resource (memory in our case) becomes available. • This wait will introduce stalls in the pipeline as shown below:
  • 145. Solution for structural dependency • To minimize structural dependency stalls in the pipeline, we use a hardware mechanism called Renaming. Renaming : According to renaming, we divide the memory into two independent modules used to store the instruction and data separately called Code memory(CM) and Data memory(DM) respectively. CM will contain all the instructions and DM will contain all the operands that are required for the instructions.
  • 147. 2. Control Dependency (Branch Hazards) • This type of dependency occurs during the transfer of control instructions such as BRANCH, CALL, JMP, etc. • On many instruction architectures, the processor will not know the target address of these instructions when it needs to insert the new instruction into the pipeline. • Due to this, unwanted instructions are fed to the pipeline.
  • 150. • So, the output sequence is not equal to the expected output, that means the pipeline is not implemented correctly. • To correct the above problem we need to stop the Instruction fetch until we get target address of branch instruction. • This can be implemented by introducing delay slot until we get the target address. • This concept of delaying the use of the data loaded from memory is referred to as a delayed load.
  • 152. • As the delay slot performs no operation, this output sequence is equal to the expected output sequence. But this slot introduces stall in the pipeline. • Solution for Control dependency Branch Prediction is the method through which stalls due to control dependency can be eliminated. In this at 1st stage prediction is done about which branch will be taken. • For branch prediction Branch penalty is zero. • Branch penalty : The number of stalls introduced during the branch operations in the pipelined processor is known as branch penalty.
  • 154. 3. Data Dependency (Data Hazard)
  • 155. • Example: Let there be two instructions I1 and I2 such that: I1 : ADD R1, R2, R3 I2 : SUB R4, R1, R2 • When the above instructions are executed in a pipelined processor, then data dependency condition will occur, which means that I2 tries to read the data before I1 writes it, therefore, I2 incorrectly gets the old value from I1.
  • 157. • Operand Forwarding : • In operand forwarding, we use the interface registers present between the stages to hold intermediate output so that dependent instruction can access new value from the interface register directly.
  • 159. • Discuss delayed load or delayed branch with example ?(2.5 marks)
  • 160. 1. Delayed Load Consider now the operation of the following four instruction
  • 161. • If the three segment pipeline proceeds without interruptions, there will be a data conflict in instruction 3 because the operand in R2 is not yet available in the A segment. • This can be seen from the timing of the pipeline shown in fig 9-9(a).
  • 164. • The E segment in clock 4 is in a process of placing the memory data into R2. • The A segment in clock cycle 4 is using the data from R2,but the value in R2 will not be the correct value since it has not yet been transferred from memory. • It is up to the compiler to make sure that the instruction following the load instruction uses the data fetched from memory. • If the compiler cannot find a useful instruction to put after the load, it inserts a no-op (no-operation) instruction. • This type of instruction that is fetched from memory but has no operation, thus wasting a clock cycle. • This concept of delaying the use of the data loaded from memory is referred to a delayed load.
  • 166. • Fig 9-9(b) shows the same program with a no- op instruction inserted after the load to R2 instruction. • The data is loaded into R2 in clock cycle 4 • The add instruction uses the value of R2 in step 5. • Thus the no-op instruction is used to advance one clock cycle in order to compensate for the data conflict in the pipeline.
  • 167. 2. Delayed Branch • The complier can determine that the program dependencies allow one or more instructions preceding the branch to be moved into the delay steps after the branch. • These instruction are then fetched from memory and executed through the pipeline while branch instruction is being executed in other segments. • The effect is the same as if the instructions were executed in their original order, except that the branch delay is removed. • An example of delayed branch is shown in fig 9- 10.
  • 168. The program for this example consists of five instructions:
  • 170. Explanation • In figure 9-10(a) the compiler inserts two no- op instruction after the branch. • The branch address X is transferred to PC in clock cycle 7. • The fetching of the instruction at X is delayed by two clock cycle by the no-op instructions. • The instruction at X starts the fetch phase at clock cycle 8 after the program counter PC has been updated.
  • 171. The program for this example consists of five instructions:
  • 173. Explanation • The program in fig 9-10(b) is rearranged by placing the add and subtract instructions after the branch instruction inserted of before as in the original program. • Inspection of the pipeline timing shows PC is updated to the value of X in clock cycle 5,but the add and subtract instructions are fetched from memory and executed in the proper sequence. • If the load instruction is at address 101 and X is equal to 350,the branch instruction is fetched from address 103.
  • 174. • The add instruction is fetched from address 104 and executed in clock cycle 6. • The subtract instruction is fetched from address 105 and executed in clock cycle 7. • Since the value of X is transferred to PC with clock cycle 5 in E segment, the instruction fetched from memory at clock cycle 6 is from address 350,which is the instruction at the branch address and this instruction is now executed.
  • 175. Data Hazards • Data hazards occur when instructions that exhibit data dependence, modify data in different stages of a pipeline. • Hazard cause delays in the pipeline. • There are mainly three types of data hazards: 1) RAW (Read after Write) [Flow/True data dependency] 2) WAR (Write after Read) [Anti-Data dependency] 3) WAW (Write after Write) [Output data dependency]
  • 177. • WAR and WAW hazards occur during the out- of-order execution of the instructions.
  • 178. Vector Processing • A vector is a ordered set of scalar data(single data ) items, all of the same type, stored in memory. • A vector is just like a array. • Vector element are ordered to have a fixed addressing increment between the successive element called the stride. Address 100 102 104 Value 1 2 3 If we have array of integer type than we increment 2 to get the next address.
  • 179. Vector Processing 1. Long range weather forecasting 2. Petroleum exploration 3. Seismic data analysis 4. Medical diagnosis 5. Aerodynamics and space flight simulations
  • 180. Vector Operations A vector is a ordered set of a one-dimensional array of data items. A vector V of length n is represented as a row vector by V=[V1,V2,V3…Vn] data items. It may be represented as a column vector if the data items are listed operands one at a time. A conventional sequential computer is capable of processing operands one at a time. Operations on vectors must be broken down into single computations with subscripted variables. The element Vi of vector V is written as V(I) and the index I refers to a memory address or register where the number is stored.
  • 182. • A computer capable of vector processing eliminates the overhead associated with the time it takes to fetch and execute the instructions in the program loop. • It allows operations to be specified with a single vector instruction of the form. C(1:100)=A(1:100)+B(1:100) The vector instruction includes the initial address of the operands, the length of the vectors, and the operation to be performed, all in one composite instruction.
  • 183. Instruction format for vector processor C(1:10)=A(1:10)+B(1:10)
  • 184. A possible instruction format for a vector instruction is shown in fig 9-11. This is essentially a three address instruction with three fields specifying the base address of the operands and an additional field that gives the length of the data items in the vectors. This assumes that the vector operands reside in memory. It is also possible to design the processor with a large number of registers and store all operands in registers prior to the addition operation. In this case the base address and length in the vector instruction specify a group of CPU register.
  • 185. Matrix Multiplication • The multiplication of two n*n matrices consist of n^2 inner products or n^3 multiply-add operations. • An n*m matrix of numbers has n rows and m columns and may be considered as a set of n row vector or a set of m column vectors. Total number of multiplication or addition required to compute the matrix product is 9*3=27 9=first column and total number of column=3 So 9*3=27
  • 187. This requires three multiplications and three additions. The total numbers of multiplications or additions required to compute the matrix product is 9x3=27
  • 188. • In general, the inner product consists of sum of k product terms of the form • C=A1B1+A2B2+A3B3+A4B4……+AKBK When k=3 we need (9x3 = 27) total number of multiplications or additions to compute the matrix product
  • 190. • All the segment registers in the multiplier and adder are initialized to 0. • Therefore output of the adder is 0 for the first eight cycles until both pipes are full. • Ai and Bi pairs are brought in and multiplied at a rate of one pair per cycle. • At the end of the eight cycle, the first four products A1B1 through A4B4 are in the four adder segments, and the next four products,A5B5 through A8B8 are in the multiplier segments. • At the beginning of the ninth cycle, the output of the adder is A1B1 and the output of the multiplier is A5B5. • Thus the ninth cycle starts the addition A1B1+A5B5 in the adder pipeline. • The tenth cycle starts the addition A2B2+A6B6,and so on.
  • 191. • Thus ninth cycle starts the addition A1B1+A5B5 in the adder pipeline • The tenth cycle starts the addition A2B2+A6B6, and so on.
  • 192. • When there are no more product terms to be added, the system inserts four zeros into the multiplier pipeline. • The adder pipeline will have one partial product in each of its four segments, corresponding to the four sums listed in the four rows in the above equation. • The four partial sums are then added to form the final sum.
  • 193. 2014 • Write a short note on memory interleaving? (4 marks)
  • 194. Memory Interleaving Pipeline often require simultaneous access of memory from two or more sources. An instruction pipeline may require the fetching of an instruction and an operand at the same time from two different segments. Instead of using two memory buses for simultaneous access, the memory can be partitioned into a number of modules connected to a common memory address and data buses.
  • 195. • A memory module is a memory array together with its own address and data registers. • Figure 9-13 shows a memory unit with four modules. • Each module array has its own address register AR and data register DR • The address register receive information from a common address bus and the data registers communicate with a bidirectional data bus. • The two least significant bits of the address can be used to distinguish between the four modules.
  • 197. • The modular system permits one module to initiate a memory access while other module are in the process of reading or writing a word and each module can honour a memory request independent of a state of the other modules.
  • 198. Computer Organization | RISC and CISC • Reduced Set Instruction Set Architecture (RISC) – The main idea behind is to make hardware simpler by using an instruction set composed of a few basic steps for loading, evaluating and storing operations just like a load command will load data, store command will store the data in memory
  • 199. • Complex Instruction Set Architecture (CISC) – The main idea is that a single instruction will do all loading, evaluating and storing operations just like a multiplication command will do stuff like loading data, evaluating and storing it, hence it’s complex. • Both approaches try to increase the CPU performance
  • 200. Characteristic of RISC – • Simpler instruction, hence simple instruction decoding. • Instruction come under size of one word. • Instruction take single clock cycle to get executed. • One clock cycle for each instruction includes: fetch, decode and executed • More number of general purpose register. • Simple Addressing Modes. • Less Data types. • Pipeling can be achieved.
  • 201. • RISC reduces the efficiency if program has more line of code and to execute each line of program it takes many clock cycles and also it require more RAM to store the instruction.
  • 202. RISC Architecture • It uses highly optimized set of instructions • RISC processor is used in portable device like Apple iPod, smart phones and tablet
  • 203. Characteristic of CISC – • Complex instruction, hence complex instruction decoding. • Instruction are larger than one word size. • Instruction may take more than single clock cycle to get executed. • Less number of general purpose register as operation get performed in memory itself. • Complex Addressing Modes. • More Data types.
  • 204. • Example – Suppose we have to add two 8-bit number: • CISC approach: There will be a single command or instruction for this like ADD which will perform the task. • RISC approach: Here programmer will write first load command to load data in registers then it will use suitable operator and then it will store result in desired location.
  • 205. • So, add operation is divided into parts i.e. load, operate, store due to which RISC programs are longer and require more memory to get stored but require less transistors due to less complex command
  • 206. 2015 Give difference between RISC and CISC (2.5 marks)