Need help with the following questions 1.) how do you calculate the speed up of
ID: 3806982 • Letter: N
Question
Need help with the following questions1.) how do you calculate the speed up of a pipeline vs non-pipelined implementation of a processor?
2.) understand the basics of parallelism and what it means to issue multiple instructions at a time
3.) understand what out of order execution means and what can actually be done out of order and what is still done in order Need help with the following questions
1.) how do you calculate the speed up of a pipeline vs non-pipelined implementation of a processor?
2.) understand the basics of parallelism and what it means to issue multiple instructions at a time
3.) understand what out of order execution means and what can actually be done out of order and what is still done in order
1.) how do you calculate the speed up of a pipeline vs non-pipelined implementation of a processor?
2.) understand the basics of parallelism and what it means to issue multiple instructions at a time
3.) understand what out of order execution means and what can actually be done out of order and what is still done in order
Explanation / Answer
2)
Parallelism provides a way for the datapath by starting a new instruction on each clock cycle . Each of clock cycles of the datapath will now turn into a pipestage in the cycle of the pipeline.Normally, each instruction takes five cycles :-
1)Instruction Fetch
2)Instruction Decode
3)Execution
4)Memory Read
5)Write BAck
Normally,without parallelism , each data item passes through all the 5 clock cycles stages i.e after one data item passes through all the 5 clock cycles stages then only another data item starts processing.So, the total execution time increases.But,with parallelism , each data item passes through one cycle at a time i.e once one data item passes one of the 5 clock cycle stage then another data item enters.That means each clock cycle stage contains one instruction.Due to which total execution time decreases.
3)
Normally , processor in order execution i.e the order normally shown by the program counter and normally flow of instructions.But,if the processor execution goes away from the normal flow i.e the order to the statements are changed then it is known as out of order execution.
Out of order is mainly done in order to avoid the hazards normally occured in parallelism.Hazards like read after write(RAW) and write after read (WAR) . Normally , sometimes when two instructions try to access same register and if the a instruction is trying to access a register in order to get updated value but the previous instruction is not yet completed therefore the latter instruction fetches the old data which tends to data hazards. This can be avoided using out of order execution.
Example :-
let $t0=0,$t1=2,$t2=8
add $t0,$t1,$t2
move $t4,$t0
In this example :- At the end ,due to hazard $t4 will contain 0 instead of '0xA' .Due to the parallelism , the add instrcution is still under processing but not updated the result before the move instruction fetched the data.So,this can be avoided using out of order execution.
Now,out of order execution
add $t0,$t1,$t2
add $t5,$t2,$t1
add $t1,$t4,$t2
move $t4,$t0
Now,$t4 will have the correct value.As, we just added such instruction which won't hamper the data but provides time fot the data to get updated
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.