Microinstruction Sequencing Techniques Explained
Microinstruction Sequencing Techniques Explained
Variable instruction format Device needs access to the bus, it sends a request signal to the next device in the chain. The
request signal
The device with the highest priority among the requesting devices. Priority levels can be fixed or Q4) Write A Short Note On Cache Coherency.
Dynamically assigned based on factors such as device type or criticality. In a multiprocessor system, data inconsistency may occur among adjacent levels or
1.
within the same level of the memory hierarchy. In a shared memory multiprocessor with Q7) Define Instruction Cycle.
2) Round Robin: In this method, the arbiter grants bus access to devices in a sequential a separate cache memory for each processor, it is possible to have many copies of any
manner. Each device one instruction operand: one copy in the main memory and one in each cache memory.
When one copy of an operand is changed, the other copies of the operand must be
gets a turn to access the bus, and the arbiter cycles through the devices in a fixed order. This changed also.
method Example : Cache and the main memory may have inconsistent copies of the same object.
2. As multiple processors operate in parallel, and independently multiple caches may
ensures fairness as each device gets an equal opportunity to access the bus. possess different copies of the same memory block, this creates a cache coherence
problem. Cache coherence is the discipline that ensures that changes in the values of
3) Reservation-Based: In this method, devices request bus access in advance by reserving shared operands are propagated throughout the system in a timely fashion
specific time slots. The arbiter allocates time slots to devices based on their requests.
to the encoder. Also, external input & conditional codes act as an input to the encoder. The Q14) Difference Between Encoder and Decoder
encoder then accordingly generates the control signals based on the inputs. After the
Combinational Logic is the concept in which two or more input states define one or more
execution of each instruction, another signal: the end signal is generated which resets the output states. The Encoder and Decoder are combinational logic circuits. In which we
state of control step counter & makes it ready for the next instruction. implement combinational logic with the help of boolean algebra.
Advantages :
• Because of the use of combinational circuits to generate signals, Hardwired
To encode something is to convert an unambiguous piece of information into a form of
code that is not so clearly understood and the device which performs this operation is
Control Unit is fast. termed ad Encoder.
• It depends on number of gates, how much delay can occur in generation of control
signals. Encoder
• It can be optimized to produce the fast mode of operation.
An Encoder is a device that converts the active data signal into a coded message format or it
• Faster than micro- programmed control unit.
is a device that converts analogue signal to digital signals. It is a combinational circuit, that
• It does not require control memory.
converts binary information in the form of 2N input lines into N output lines which represent
Disadvantages N bit code for the input. When an input signal is applied to an encoder the logic circuitry
involved within it converts that particular input into coded binary output.
• The complexity of the design increases as we require more control signals to be
generated (need of more encoders & decoders)
• Modifications in the control signals are very difficult because it requires
rearranging of wires in the hardware circuit.
• Adding a new feature is difficult & complex.
• Difficult to test & correct mistakes in the original design.
• It is Expensive.
To decode is to perform the reverse operation: converting a code back into an unambiguous
form code and the device which performs this operation is termed a Decoder.
Decoder
A decoder is also a combinational circuit as an encoder but its operation is exactly reverse as
that of the encoder. A decoder is a device that generates the original signal as output from
the coded input signal and converts n lines of input into 2n lines of output. An AND gate can
be used as the basic decoding element because it produces a high output only when all inputs • The Central Processing Unit (CPU)
are high. Q1) Q15) Von- Neumann Model
• The Main Memory Unit
Von-Neumann computer architecture: • The Input/Output Device Let’s consider them in detail.
Von-Neumann computer architecture design was proposed in [Link] was later known as 1. Central Processing Unit-
Von-Neumann architecture.
The central processing unit is defined as the it is an electric circuit used for the
Historically there have been 2 types of Computers: executing the instruction of computer program.
1) Fixed Program Computers – Their function is very specific and they It has following major components:
couldn’t be reprogrammed, e.g. Calculators.
[Link] Unit(CU)
Decoder 2) Stored Program Computers – These can be programmed to carry out many
different tasks, applications are stored on them, hence the name. [Link] and Logic Unit(ALU)
Encoder vs Decoder
Modern computers are based on a stored-program concept introduced by John Von [Link] of Registers
ENCODER DECODER Neumann. In this stored-program concept, programs and data are stored in the same
memory. This novel idea meant that a computer built with this architecture would be much • Control Unit –
Encoder circuit basically converts the Decoder performs reverse operation and easier to reprogram. A control unit (CU) handles all processor control signals. It directs all input and
applied information signal into a coded recovers the original information signal from output flow, fetches code for instructions, and controls how data moves around
digital bit stream. the coded bits. The basic structure is like this, the system.
In case of encoder, the applied signal is the Decoder accepts coded binary data as its input.
active signal input. • Arithmetic and Logic Unit (ALU) –
The arithmetic logic unit is that part of the CPU that handles all the calculations
The number of inputs accepted by an The number of input accepted by decoder is the CPU may need, e.g. Addition, Subtraction, Comparisons. It performs Logical
encoder is 2n. only n inputs. Operations, Bit Shifting Operations, and Arithmetic operations.
The output lines for an encoder is n. The output lines of an decoder is 2n.
The encoder generates coded data bits as The decoder generates an active output signal
its output. in response to the coded data bits.
The encoder circuit is installed at the The decoder circuit is installed at the receiving
transmitting end. side.
OR gate is the basic logic element used in AND gate along with NOT gate is the basic
it. logic element used in it.
• Instruction Buffer Register (IBR): The instruction that is not to be During cache mapping, the block is not brought from the main memory but the main
executed immediately is placed in the instruction buffer register IBR. memory block is simply copied to the cache. Cache memory generally tends to operate in
some different configurations,
1. Direct mapping
2. Buses – Data is transmitted from one part of a computer to another, connecting all
2. Fully associative mapping
major internal components to the CPU and memory, by the means of Buses. 3. Set associative mapping
Types:
1) Direct Mapping
o Data Bus: It carries data among the memory unit, the I/O devices, and
the processor. In Direct mapped cache memory, each block mapped to exactly one location in cache
memory.
• Address Bus: It carries the address of data (not the actual data) between
A particular block of main memory can map the line number of cache is given by - Cache
memory and processor.
line number = (Block Address of Main Memory) modulo (Number of lines in Cache).
a. Control Bus: It carries control commands from the CPU (and status
signals from other devices) in order to control and coordinate all the
activities within the computer.
3. Input/Output Devices – Program or data is read into main memory from the input
device or secondary storage under the control of CPU input instruction. Output
Figure – Basic CPU structure, illustrating ALU
devices are used to output information from a computer. If some results are
1. Registers – Registers refer to high-speed storage areas in the CPU. The data evaluated by the computer and it is stored in the computer, then with the help of
processed by the CPU are fetched from the registers. There are different types of output devices, we can present them to the user.
registers used in architecture :-
Von Neumann bottleneck –
• Accumulator: Stores the results of calculations made by ALU. It holds Whatever we do to enhance performance, we cannot get away from the fact that
the intermediate of arithmetic and logical [Link] act as a instructions can only be done one at a time and can only be carried out sequentially. Both of
temporary storage location or device. these factors hold back the competence of the CPU. This is commonly referred to as the
‘Von Neumann bottleneck’. We can provide a Von Neumann processor with more cache,
• Program Counter (PC): Keeps track of the memory location of the next more RAM, or faster components but if original gains are to be made in CPU performance
instructions to be dealt with. The PC then passes this next address to the then an influential inspection needs to take place of CPU configuration.
Memory Address Register (MAR).
This architecture is very important and is used in our PCs and even in Super Computers.
• Memory Address Register (MAR): It stores the memory locations of
instructions that need to be fetched from memory or stored in memory.
Q16) Memory Mapping and Its Types Direct Mapping of Cache
• Memory Data Register (MDR): It stores instructions fetched from
The translation between the logical address space and the physical memory is known The direct-mapped cache is like rows in a table with three columns' main memory address
memory or any data that is to be transferred to, and stored in, memory. are bits for Offset, Index, and Tag. The size of the fields depends on the capacity of
as Memory Mapping. To translate from logical to a physical address, to aid in memory
protection also to enable better management of memory resources are objectives memory and size of the block in the cache.
Current Instruction Register (CIR): It stores the most recently fetched
of memory mapping.
instructions while it is waiting to be coded and executed.
The least significant w bits are used to identify a word within a block of main memory. Tag 3) Set-associative Mapping 17) Grey Code
corresponds to the remaining bits are used to determine the proper block of main memory.
Line off-set or block is used to select a block to be accessed out of total blocks are In this mapping technique, blocks of cache are grouped to form a set and a block of main Grey code, also known as reflected binary code, is a binary numeral system where
available according to the capacity of the cache. memory can go into any block of a specific set. two successive values differ in only one bit. Grey code is useful in minimizing
errors in digital communications and is commonly used in analog-to-digital
The data block or cache line that contains the actual data fetched and stored, a tag with all
or part of the address of the data that was fetched, and a flag bit that shows the presence in converters and error correction in digital systems.
the row entry of a valid bit of data.
2) Associative Mapping
For example, the 4-bit binary numbers and their corresponding Grey code
In this type of mapping, any main memory block can go in any line of the cache. So we representations are:
have to use proper replacement policy to replace a block from the cache if the required
block of main memory is not present in the cache. Here, the main memory is divided into
two fields: word field identifies which word in the block is needed and the tag field
identifies the block. It is considered to be the fastest and the most flexible mapping form of
cache mapping.
This also reduces searching overhead present in the associative mapping. Here,
searching is restricted to the number of sets instead of the number of blocks
20) List and Explain Characters And Hierarchy of memory Registers are small, high-speed memory units located in the CPU. They
Memory Hierarchy is an enhancement to organize the memory such that it can minimize the are used to store the most frequently used data and instructions.
access time. The Memory Hierarchy was developed based on a program behavior known as Registers have the fastest access time and the smallest storage capacity,
typically ranging from 16 to 64 bits.
Thus, the number 92 in BCD would be represented as 1001 0010. locality of references. The figure below clearly demonstrates the different levels of the
memory hierarchy
19) Excess-3 Code 2. Cache Memory
Memory Hierarchy is one of the most required things in Computer Memory as it helps in
optimizing the memory available in the computer. There are multiple levels present in the
Excess-3 is a binary-coded decimal code that is derived from the natural BCD code by Cache memory is a small, fast memory unit located close to the CPU.
memory, each one having a different size, different cost, etc. Some types of memory It stores frequently used data and instructions that have been recently
adding 3 (0011 in binary) to each decimal digit and then encoding the result in binary. like cache, and main memory are faster as compared to other types of memory accessed from the main memory. Cache memory is designed to
but they are having a little less size and are also costly whereas some memory minimize the time it takes to access data by providing the CPU with
For example: quick access to frequently used data.
has a little higher storage value, but they are a little slower. Accessing of data is
not similar in all types of memory, some have faster access whereas some have 3. Main Memory
Main memory, also known as RAM (Random Access Memory), is the
slower access.
primary memory of a computer system. It has a larger storage capacity
Types of Memory Hierarchy
than cache memory, but it is slower. Main memory is used to store data to a large difference in access time. This results in lower
and instructions that are currently in use by the CPU. performance of the system and thus, enhancement was
Types of Main Memory required. This enhancement was made in the form of Memory 21) Pipeline Hazard and Dependencies
• Static RAM: Static RAM stores the binary information in Hierarchy Design because of which the performance of the Dependencies and Data Hazard in pipeline in Computer Organization
flip flops and information remains valid until power is system increases. One of the most significant ways to
supplied. It has a faster access time and is used in increase system performance is minimizing how far down the In this section, we will learn about dependencies in a pipelined processor, which is described as
implementing cache memory. memory hierarchy one has to go to manipulate data. follows:
• Dynamic RAM: It stores the binary information as a charge • Cost Per Bit: As we move from bottom to top in the
on the capacitor. It requires refreshing circuitry to maintain Hierarchy, the cost per bit increases i.e. Internal Memory is Dependencies in pipeline Processor
the charge on the capacitors after a few milliseconds. It costlier than External Memory.
contains more memory cells per unit area as compared to Advantages of Memory Hierarchy The pipeline processor usually has three types of dependencies, which are described as follows:
SRAM. • It helps in removing some destruction, and managing the
memory in a better way. 1. Structural dependencies
4. Secondary Storage • It helps in spreading the data all over the computer system. 2. Data dependencies
• It saves the consumer’s price and time.
3. Control dependencies
Secondary storage, such as hard disk drives (HDD) and solid-state System-Supported Memory Standards
drives (SSD), is a non-volatile memory unit that has a larger storage Because of these dependencies, the stalls will be introduced in a pipeline. A stall can be described
capacity than main memory. It is used to store data and instructions that as a cycle without new input in the pipeline. In other words, we can say that the stall will happen
are not currently in use by the CPU. Secondary storage has the slowest when the later instruction depends on the output of the earlier instruction.
access time and is typically the least expensive type of memory in the Level 1 2 3 4
memory hierarchy. Name Register Cache Main Memory Secondary Structural dependencies
Memory
5. Magnetic Disk Because of the resource conflict in the pipeline, structural dependency usually arises. The
Size <1 KB less than 16 <16GB >100 GB
resource conflict can be described as a situation where there is a cycle containing resources such
MB
Magnetic Disks are simply circular plates that are fabricated with either as ALU (arithmetical logical unit), memory, or register. In resource conflict, more than one
Implementation Multi-ports On- DRAM Magnetic
a metal or a plastic or a magnetized material. The Magnetic disks work instruction tries to access the same resource
chip/SRAM (capacitor
at a high speed inside the computer and these are frequently used. memory) Example:
Access Time 0.25ns to 0.5 to 25ns 80ns to 250ns 50 lakh ns
6. Magnetic Tape 0.5ns
Bandwidth 20000 to 1 5000 to 15000 1000 to 5000 20 to 150 Instructions 1 2 3 4 5
Magnetic Tape is simply a magnetic recording device that is covered lakh MB / Cycle
with a plastic film. It is generally used for the backup of data. In the Managed by Compiler Hardware Operating Operating
case of a magnetic tape, the access time for a computer is a little slower System System I1 IF(Mem) ID EX Mem
and therefore, it requires some amount of time for accessing the strip. Backing From cache from Main from Secondary from ie
I2 IF(Mem) ID EX
Characteristics of Memory Hierarchy Mechanism Memory Memory
• Capacity: It is the global volume of information the
I3 IF(Mem) ID EX
memory can store. As we move from top to bottom in the
Hierarchy, the capacity increases. I4 IF(Mem) ID
• Access Time: It is the time interval between the read/write
request and the availability of the data. As we move from top The above table contains the four instructions I 1, I2, I3, and I4, and five cycles 1, 2, 3, 4, 5. In
to bottom in the Hierarchy, the access time increases. cycle 4, there is a resource conflict because I1 and I4 are trying to access the same resource. In
• Performance: Earlier when the computer system was
our case, the resource is memory. The solution to this problem is that we have to keep the
designed without a Memory Hierarchy design, the speed gap
increased between the CPU registers and Main Memory due
instruction on wait as long as the required resource becomes available. Because of this wait, the when the processor wants to add the new instruction into the pipeline, the processor does not
stall will be introduced in pipelines like this: know the target address of these new instructions. Because of this drawback, unwanted Instructions 1 2 3 4 5 6
instructions are inserted into the pipeline / Cycle
For example: Here, we will assume that we have two instructions I1, and I2, like this: 1. RAW add R1, R2, R3
2. WAR sub R2, R5, R4
I1: ADD R1, R2, R3
3. WAW
I2: SUB R4, R1, R2 Here addition instruction creates a WAR hazard because subtraction instruction writes R2, which
To understand these hazards, we will assume we have two instructions I1 and I2, in such a way is read by addition. In a reasonable (in-order) pipeline, the WAR hazard is very uncommon or
The condition of data dependency will occur when the above instructions I 1, I2 are executed in a impossible. The hazard for instructions 'add R1, R2, R3' and 'sub R2, R5, R4' are described as
that I2 follows I1. The hazards are described as follows:
pipelined processor. It shows that before I 1 writes the data, the I2 tries to read it. As a result, the follows:
instruction I2 incorrectly gets the old value from I1, which is described in the following table: RAW:
Instructions / 1 2 3 4 5 6
Instructions / 1 2 3 4 RAW hazard can be referred to as 'Read after Write'. It is also known as Flow/True data Cycle
Cycle dependency. If the later instruction tries to read on operand before earlier instruction writes it, in
this case, the RAW hazards will occur. The condition to detect the RAW hazard is when O n and I1 IF ID EX MEM WB
I1 IF ID EX DM In+1 both have a minimum one common operand.
I2 IF ID EX MEM WB
I2 IF ID (Old EX For example:
value) When the instruction tries to enter into the write back stage of the pipeline, at that time, all the
I1: add R1, R2, R3
previous instructions contained by the program have already passed through the read stage of
Here we will use the operand forwarding so that we can minimize the stalls in data dependency. I2: sub R5, R1, R4 register and read their input values. Now without causing any type of problem, the write
instruction can write its destination register. The WAR instructions contain less problems as
Operand Forwarding: In this forwarding, we will use the interface registers which exist There is a RAW hazard because subtraction instruction reads output of the addition. The hazard compared to the WAW because in WAR, before the write back stage of a pipeline, the read stage
between the stages. These registers are used to contain the intermediate output. With the help of for instructions 'add R1, R2, R3' and 'sub R5, R1, R4' is described as follows: of a register occur.
intermediate registers, the dependent instruction is able to directly access the new value.
Instructions / 1 2 3 4 5 6 WAW
To explain this, we will take the same example:
Cycle
WAW can be referred to as 'Write after Write'. It is also known as Output Data dependency.
I1: ADD R1, R2, R3 I1 IF ID EX MEM WB If the later instruction tries to write on operand before earlier instruction writes it, in this case,
I2: SUB R4, R1, R2 the WAW hazards will occur. The condition to detect the WAW hazard is when On and On+1 both
I2 IF ID EX MEM WB have a minimum one common operand.
- In delayed branching, the branch instruction's effect is delayed by a fixed 1. Increased Parallelism : Enables the pipeline to stay full by speculatively
Here addition instruction creates a WAW hazard because subtraction instruction writes on the number of cycles, known as the delay slots. Instructions following the branch executing instructions, potentially leading to significant performance gains.
same register. The hazard for instructions 'add R1, R2, R3' and 'sub R1, R2, R4' are described as are executed before the branch is taken.
follows: 2. Adaptive to Workloads : Dynamic branch predictors can adapt to the
- The idea is to fill these delay slots with useful instructions to avoid pipeline branching patterns of different workloads, improving accuracy over time.
stalls.
Instructions 1 2 3 4 5 6 7 3. Reduced Pipeline Stalls : By predicting the branch outcome and continuing
/ Cycle Advantages: execution, branch prediction can minimize the number of pipeline stalls and
keep the CPU busy.
I1 IF ID EX MEM MEM2 MEM3 WB 1.*Simplicity: The hardware implementation is straightforward since it does not
require complex prediction mechanisms. Disadvantages :
I2 IF ID EX MEM WB
2. Compiler Optimization: Compilers can optimize code by reordering 1. Complexity : Implementing accurate and efficient branch predictors adds
In the write back stage of a pipeline, the output register of instruction will be written. The order instructions to fill the delay slots with useful work, potentially reducing the significant complexity to the CP prediction U design.
in which the instruction with WAW hazard appears in the program, in the same order these performance penalty of branches.
2. Mis- Penalty : Incorrect predictions lead to flushing the pipeline and re-
instructions will be entered the write back stage of a pipeline. The result of these instructions
will be written into the register in the right order. The processor has improved performance as executing instructions, which can incur a significant performance penalty.
compared to the original program because it allows instructions to execute in different orders. Disadvantages : 3. Power Consumption : Additional logic for branch prediction consumes more
power, which is a critical consideration for modern processors, especially in
Effects of WAR and WAW 1. Limited Flexibility : Effectiveness heavily depends on the ability to find
mobile and embedded systems.
suitable instructions to fill the delay slots, which isn't always possible.
The WAR hazards and WAW hazards occur because the process contains a finite number of
registers. Because of this reason, these hazards are also known as the name dependencies. 2. Increased Compiler Complexity : Compilers must perform additional work
to identify and move instructions into delay slots, which can increase complexity Comparison
The processor will use the different registers to generate the output of each instruction if it
and compilation time.
contains an infinite number of registers. There is no chance of occurring the WAR and WAW Performance :
hazards in this case. 3. Wasted Slots : If no useful instructions can be found for the delay slots,
- Delayed Branch : Performance improvement is limited by the compiler's
these slots may be filled with NOPs (no-operations), leading to wasted cycles.
The WAR and WAW hazards will not cause the delay if a processor uses the same pipeline for ability to fill delay slots.
all the instructions and executes these instructions in the same order in which they appear in the
program. This is all because of the process of instructions flow through a pipeline. - Branch Prediction : Can lead to substantial performance improvements,
Branch Prediction especially with accurate predictors and deep pipelines.
Concept :
- Branch prediction involves guessing the outcome of a branch instruction before Implementation Complexity :
Q22) Delayed Branch And Branch Prediction ?
it is known for sure and speculatively executing subsequent instructions based
- Delayed Branch : Simpler hardware but requires sophisticated compiler
In computer architecture, handling branches effectively is crucial for on the prediction.
support.
maintaining the efficiency of instruction pipelines. Two key techniques used to
- Modern processors use sophisticated branch prediction algorithms, including
address the challenges posed by branch instructions are delayed branching and - Branch Prediction : Complex hardware design but offers greater flexibility and
static and dynamic techniques, to improve prediction accuracy.
branch prediction. Here’s a detailed comparison between these two approaches: adaptability.
Delayed Branch
Advantages :
Concept: Efficiency :
- Delayed Branch : Efficiency depends on the presence of suitable instructions In pipelined architecture,
for delay slots.
1. Non-Pipelined Execution- • Multiple instructions are executed parallely.
- Branch Prediction : Efficiency depends on the accuracy of the predictor and • This style of executing the instructions is highly efficient.
the ability to minimize mis-prediction penalties.
In non-pipelined architecture,
Now, let us discuss instruction pipelining in detail.
• All the instructions of a program are executed sequentially one after the other.
Adaptability :
• A new instruction executes only after the previous instruction has executed completely.
- Delayed Branch : Less adaptable to changing workloads and branching • This style of executing the instructions is highly inefficient. Instruction Pipelining-
patterns.
Branch Prediction : Highly adaptable, especially with dynamic predictors that
Example-
learn and adjust based on runtime behavior.
Instruction pipelining is a
technique that implements a form
Consider a program consisting of three instructions.
In summary, delayed branching is a simpler, compiler-dependent technique that of parallelism called as instruction
can be effective in some scenarios but is limited by the need for suitable In a non-pipelined architecture, these instructions execute one after the other as- level parallelism within a single
instructions to fill delay slots. Branch prediction, while more complex and processor.
power-intensive, generally offers better performance and adaptability, making it
the preferred choice in modern high-performance processors.
• A pipelined processor does not wait until the previous instruction has executed
completely.
Q23)Draw Four Stage Instruction Pipeline
• Rather, it fetches the next instruction and begins its execution.
Pipelined Architecture-
• A program consists of several number of instructions.
• These instructions may be executed in the following two ways-
In pipelined architecture,
• The hardware of the CPU is split up into several functional units.
• Each functional unit performs a dedicated task.
If time taken for executing one instruction = t, then- • The number of functional units may vary from processor to processor.
• These functional units are called as stages of the pipeline.
• Control unit manages all the stages using control signals.
Time taken for executing ‘n’ instructions = n x t
• There is a register associated with each stage that holds the data.
• There is a global clock that synchronizes the working of all the stages.
• Non-Pipelined Execution 2. Pipelined Execution- • At the beginning of each clock cycle, each stage takes the input from its register.
• Pipelined Execution • Each stage then processes the data and feed its output to the register of the next stage.
o It fetches the instruction to be executed. 3. Phase-time diagram shows the execution of instructions in the pipelined architecture.
Four-Stage Pipeline- 4. The following diagram shows the execution of three instructions in four stage pipeline
architecture.
Stage-02:
In four stage pipelined architecture, the execution of each instruction is completed in following
4 stages- At stage-02,
o Second functional unit performs instruction decode.
× o It decodes the instruction to be executed.
Stage-03:
To implement four stage pipeline, Stage-04: Time taken to execute three instructions in four stage pipelined architecture = 6 clock cycles.
• The hardware of the CPU is divided into four functional units.
• Each functional unit performs a dedicated task. At stage-04,
NOTE-
10. Fourth functional unit performs write back.
11. It writes back the result so obtained after executing the instruction.
In non-pipelined architecture,
Time taken to execute three instructions would be
Execution-
= 3 x Time taken to execute one instruction
In pipelined architecture,
= 3 x 4 clock cycles
5. Instructions of the program execute parallely.
6. When one instruction goes from nth stage to (n+1)th stage, another instruction goes from = 12 clock cycles
(n-1)th stage to nth stage.
Stage-01: Clearly, pipelined execution of instructions is far more efficient than non-pipelined
execution.
Phase-Time Diagram-
At stage-01,
o First functional unit performs instruction fetch.