Pipe-lining & ARM Processor
Pipelining
Pipelining is the process of accumulating instruction from the processor through a pipeline. It allows storing and executing instructions in an orderly process.
- It is also known as pipeline processing.
- Pipelining is a technique where multiple instructions are overlapped during execution.
- Pipeline is divided into stages and these stages are connected with one another to form a pipe like structure. Instructions enter from one end and exit from another end.
- Pipelining increases the overall instruction throughput.
In pipeline system, each segment consists of an input register followed by a combinational circuit. The register is used to hold data and combinational circuit performs operations on it. The output of combinational circuit is applied to the input register of the next segment.

Pipeline system is like the modern day assembly line setup in factories. For example in a car manufacturing industry, huge assembly lines are setup and at each point, there are robotic arms to perform a certain task, and then the car moves on ahead to the next arm.
Types of Pipeline :
It is divided into 2 categories:
- Arithmetic Pipeline
- Instruction Pipeline
Arithmetic Pipeline :
Arithmetic pipelines are usually found in most of the computers. They are used for floating point operations, multiplication of fixed point numbers etc.
For example: The input to the Floating Point Adder pipeline is:
X = A*2^a
Y = B*2^b
Here A and B are mantissas (significant digit of floating point numbers), while a and b are exponents.
The floating point addition and subtraction is done in 4 parts:
- Compare the exponents.
- Align the mantissas.
- Add or subtract mantissas
- Produce the result.
Registers are used for storing the intermediate results between the above operations.
Instruction Pipeline :
- In this a stream of instructions can be executed by overlapping fetch, decode and execute phases of an instruction cycle.
- This type of technique is used to increase the throughput of the computer system.
- An instruction pipeline reads instruction from the memory while previous instructions are being executed in other segments of the pipeline. Thus we can execute multiple instructions simultaneously.
- The pipeline will be more efficient if the instruction cycle is divided into segments of equal duration.
Pipeline Conflicts
There are some factors that cause the pipeline to deviate its normal performance.they are
1. Timing Variations
- All stages cannot take same amount of time.
- This problem generally occurs in instruction processing where different instructions have different operand requirements and thus different processing time.
2. Data Hazards
- When several instructions are in partial execution, and if they reference same data then the problem arises.
- We must ensure that next instruction does not attempt to access data before the current instruction, because this will lead to incorrect results.
3. Branching
In order to fetch and execute the next instruction, we must know what that instruction is.
- If the present instruction is a conditional branch, and its result will lead us to the next instruction, then the next instruction may not be known until the current one is processed.
4. Interrupts
- Interrupts set unwanted instruction into the instruction stream.
- Interrupts effect the execution of instruction.
5. Data Dependency
It arises when an instruction depends upon the result of a previous instruction but this result is not yet available.
Advantages of Pipelining :
- The cycle time of the processor is reduced.
- It increases the throughput of the system
- It makes the system reliable.
Disadvantages of Pipelining :
- The design of pipelined processor is complex and costly to manufacture.
- The instruction latency is more.
ARM Processor
- The ARM microcontroller stands for Advance Risk Machine.
- It is one of the extensive and most licensed processor cores in the world.
- The first ARM processor was developed in the year 1978 by Cambridge University.
- The first ARM RISC processor was produced by the Acorn Group of Computers in the year 1985.
- These processors are specifically used in portable devices like digital cameras, mobile phones, home networking modules and wireless communication technologies and other embedded systems due to the benefits, such as low power consumption, reasonable performance, etc.
ARM Architecture
- The ARM architecture processor is an advanced reduced instruction set computing [RISC] machine and it’s a 32 bit reduced instruction set computer (RISC) micro-controller. It was introduced by the Acron computer organization in 1987.
- This ARM is a family of micro-controller developed by makers like ST Microelectronics,Motorola, and so on. The ARM architecture comes with totally different versions like ARMv1, ARMv2, etc., and, each one has its own advantage and disadvantages.
The ARM cortex is a complicated micro-controller within the ARM family that has ARMv7 design. There are 3 subfamilies within the ARM cortex family :
- ARM Cortex Ax-series
- ARM-Cortex Rx-series
- ARM-Cortex Mx-series
The ARM Architecture
- Arithmetic Logic Unit
- Booth multiplier
- Barrel shifter
- Control unit
- Register file
Components Required:
- The ARM processor conjointly has other components like the Program status register, which contains the processor flags (Z, S, V and C).
- The modes bits conjointly exist within the program standing register, in addition to the interrupt and quick interrupt disable bits;
- Some special registers: Some registers are used like the instruction, memory data read and write registers and memory address register.
Priority encoder:
The encoder is used in the multiple load and store instruction to point which register within the register file to be loaded or kept .
Multiplexers:
- Because of the restricted project time, we tend to implement these components in a very behavioral model.
- Each component is described with an entity.
- Every entity has its own architecture, which can be optimized for certain necessities depending on its application.
- This creates the design easier to construct and maintain.
Arithmetic Logic Unit (ALU)
- The ALU has two 32-bits inputs.
- The primary comes from the register file, whereas the other comes from the shifter.
- Status registers flags modified by the ALU outputs.
- The V-bit output goes to the V flag as well as the Count goes to the C flag.
- Whereas the foremost significant bit really represents the S flag, the ALU output operation is done by NORed to get the Z flag.
- The ALU has a 4-bit function bus that permits up to 16 opcode to be implemented.
Booth Multiplier Factor
- The multiplier factor has 3 32-bit inputs and the inputs return from the register file.
- The multiplier output is barely 32-Least Significant Bits of the merchandise.
- The entity representation of the multiplier factor is shown in the above block diagram.
- The multiplication starts whenever the beginning 04 input goes active.
- Fin of the output goes high when finishing.
Booth Algorithm
- Booth algorithm is a noteworthy multiplication algorithmic rule for 2’s complement numbers.
- This treats positive and negative numbers uniformly.
- Moreover, the runs of 0’s or 1’s within the multiplier factor are skipped over without any addition or subtraction being performed, thereby creating possible quicker multiplication.
- The figure shows the simulation results for the multiplier test bench.
- It’s clear that the multiplication finishes only in 16 clock cycle.
Barrel Shifter
- The barrel shifter features a 32-bit input to be shifted.
- This input is coming back from the register file or it might be immediate data.
- The shifter has different control inputs coming back from the instruction register.
- The Shift field within the instruction controls the operation of the barrel shifter.
- This field indicates the kind of shift to be performed (logical left or right, arithmetic right or rotate right).
- The quantity by which the register ought to be shifted is contained in an immediate field within the instruction or it might be the lower 6 bits of a register within the register file.
Control Unit
- For any microprocessor, control unit is the heart of the whole process and it is responsible for the system operation,so the control unit design is the most important part within the whole design.
- The control unit is sometimes a pure combinational circuit design.
- The control unit is implemented by easy state machine.
- The processor timing is additionally included within the control unit.
- Signals from the control unit are connected to each component within the processor to supervise its operation.
ARM7 Functional Diagram
The various signals that interface with the processor are input, output or supervisory signals which will be used to control the ARM operation.
Advantages of using an ARM processor:- They are cheap as compared to other processors.
- They are designed with such features that it consumes less power.
- The devices with ARM processor can have a much better battery life than other processors.
- They perform one operation at a time and thus work faster.
Disadvantages of using an ARM processor:
- It is not binary compatible with x86, which means you cannot run windows on it very soon.
- Some ARM processors clock frequencies, which is why speeds and memory bandwidths are limited in such cases.
- The scheduling of instructions makes debugging difficult.




nice
ReplyDelete