Article | REF: H1004 V1

Processors : pipelined execution of instructions

Authors: Daniel ETIEMBLE, François ANCEAU

Publication date: August 10, 2013, Review date: March 4, 2022

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!


Overview

Français

ABSTRACT

This article presents the essential characteristics of the pipelined execution of instructions in processors. Through the MIPS 2000 and Intel i486 pipeline examples, it illustrates how instructions are broken down into basic stages and executed by the hardware. It presents the treatment of data dependencies and control for simple instructions, but also for those whose calculation requires a long period of time. Hardware techniques for the control of dependencies, and software techniques to eliminate or reduce suspensions are presented, as well as the issue of undesired interruption and termination of instructions.

Read this article from a comprehensive knowledge base, updated and supplemented with articles reviewed by scientific committees.

Read the article

AUTHORS

 INTRODUCTION

The aim of this article is to present the essential characteristics of pipelined instruction execution in processors, which is the simplest performance enhancement technique employed since the late 1950s by allowing a new instruction to begin execution while previous ones are still running. This overlapping in time of the execution of several instructions has evolved over time: early machines such as the IBM 360/91 and Intel processors up to the 80 386 used a "loose" pipeline. With the advent of RISC technology in the 1980s, processor pipelines became "tight", the notions of "loose" and "tight" being specified in the article.

Pipeline processing of simple instructions, those whose operations in the computing unit are executed in one clock cycle, is examined in detail. The MIPS R2000 pipeline is used as an example, showing how instructions are broken down into elementary steps and executed by the hardware. The treatment of data dependencies and control dependencies is explained, including the problem of branches and interrupts. The pipeline of a CISC processor, the Intel i486, is also discussed.

Multiplication and division operations on integer data and all floating-point operations cannot be executed within the clock cycle of simple arithmetic and logic operations. This complicates pipelined instruction processing by introducing more complex data dependencies: true dependencies, antidependencies and output dependencies. Techniques for controlling true dependencies are presented. While they guarantee correct operation, they can introduce suspensions. Software techniques such as loop unwinding or software pipelining can reduce or eliminate these suspensions. Antidependencies and output dependencies can be eliminated by register renaming. The problem of unordered instruction termination is also addressed.

To improve performance, pipelining was the preferred technique for high-end processors until the mid-1990s. It remains the preferred technique for processors used in embedded and buried applications, where the – silicon area – energy trade-off is more important than performance alone. It has only shown its full potential with the emergence of new techniques, such as "data flow" execution of classic sequential code, or VLIW execution, which make better use of the instruction parallelism existing in classic sequential code.

You do not have access to this resource.

Exclusive to subscribers. 97% yet to be discovered!

You do not have access to this resource.
Click here to request your free trial access!

Already subscribed? Log in!


The Ultimate Scientific and Technical Reference

A Comprehensive Knowledge Base, with over 1,200 authors and 100 scientific advisors
+ More than 10,000 articles and 1,000 how-to sheets, over 800 new or updated articles every year
From design to prototyping, right through to industrialization, the reference for securing the development of your industrial projects

KEYWORDS

pipeline   |   superpipeline   |   register renaming   |     |  


This article is included in

Software technologies and System architectures

This offer includes:

Knowledge Base

Updated and enriched with articles validated by our scientific committees

Services

A set of exclusive tools to complement the resources

Practical Path

Operational and didactic, to guarantee the acquisition of transversal skills

Doc & Quiz

Interactive articles with quizzes, for constructive reading

Subscribe now!

Ongoing reading
Processors: pipelining instructions