This paper will cover the inspiration, development, and testing of the Parallel Instruction
Pipeline Processor that was developed for this project. At the end, the code from each of the five
blocks, the overall project code, and the code for pieces that have been changed from the original
concept of pipeline in our book has been included.
The Parallel Instruction Pipeline Processor (PIPP) makes use of the pipeline processor's ability
to run through multiple instructions at once and takes it a step further. It runs two instructions in
parallel at each step, meaning that at it's peak efficiency, it will run twice as fast as a normal pipeline
processor, while at it's lowest operating speed, slowed by hazards and bubbles, the PIPP will run as fast
as the normal pipeline processor.
In order, this paper will discuss how the concept for the PIPP was developed, the instruction set
that was developed for the processor, the design of each individual unit, the hazards and forwarding
that need to be taken into account, the testing performed, and finally various thoughts on the project,
partnership, and learning both from this project and in the class in general.
When we were asked to begin thinking about what type of application we would like our
processor to be used for, we were stumped. Computers are a part of our every day lives now, both in
our everyday life and our schoolwork, especially with the career path we have chosen. Our first
impulse was to lean towards the mainstay of our lives before and during our time at Iowa State,
gaming. We are both avid computer gamers, so we immediately began to look into the types of
processors that best help in the running of computer games. It did not take long before we came across