I need some help with this question: As we seek ways to make systems faster and
ID: 3706906 • Letter: I
Question
I need some help with this question: As we seek ways to make systems faster and faster, there have been multiple “engineered” techniques used aside from faster clock speeds (increases heat) and reduced component size (shrink space between components leading to faster communications). Look over the following items and briefly explain what it is and how it is used to increase efficiency/speed.
Reducing execution path length
Pipelining:
Cache(s)
Branch prediction
Out of order execution
Speculative execution
Look at the Structured Computer Organization, chapter 4
Explanation / Answer
Reducing execution path length: Path length is how many instructions you needed to execute a line of code if we are reducing it, we are making the process efficient.
Pipelining: It is similar to multiprocessing. We have broken an instruction into parts and each part is executing simultaneously so obviously it is saving clock cycles by the factors of pipelines.
Cache: This is one of the most important inventions in the history of processors. Most of the time we need the same memory again and again and most of the memory we access are near to each other. Processor cache is 50 times efficient than the main memory so it making the process efficient.
Branch Prediction: Most of the loops run for 1000 times so checking after every execution makes it inefficient, we predict that the branch is not taken and we keep on executing the other steps. It is obviously saving a lot of clock cycles.
Out of order execution: Suppose an instruction needs a memory call and it is a cache miss, it will take a lot of clock cycle to get that memory from the main memory, so we can use this time to execute other instructions. This saves a lot of clock cycles
Speculative execution: It is an optimization technique where a computer system performs some task that may not be needed. Work is done before it is known whether it is actually needed, so as to prevent a delay that would have to be incurred by doing the work after it is known that it is needed. It saves a lot of clock cycle.