Eliminating data hazards - computer architecture, Computer Engineering

Assignment Help:

Eliminating data hazards:

Forwarding

NOTE: In the following instance, computed values are in bold, whereas Register numbers are not.

Forwarding involves adding output data into a previous stage of the pipeline. For example, let's assume we desire to write the value 3 to register 1, (which already contains a six), and then add 7 to register 1 and hold the result in register 2, for instance

Instruction 0: Register 1 = 6

Instruction 1: Register 1 = 3

Instruction 2: Register 2 = Register 1 + 7 = 10

Following execution, register 2 would contain the value 10. Though, if Instruction 1 (write 3 to register 1) does not fully exit the pipeline before Instruction 2 begins execution, it means that Register 1 does not contain the value 3 when Instruction 2 performs its addition operation. In such type of event, Instruction 2 adds 7 to the old value of register 1 (6), and so register 2 would contain 13 instead for example Instruction 0: Register 1 = 6

Instruction 1: Register 1 = 3

Instruction 2: Register 2 = Register 1 + 7 = 13

This error takes place because before Instruction 1 has committed/stored Instruction 2 reads1 Register the result of its write operation to Register 1. Thus when Instruction 2 is reading the contents of Register 1, register 1 still contains 6, not 3.

Forwarding (described below) helps right such errors by depending on the fact that the output of Instruction 1 (which is 3) may be utilized by subsequent instructions before the value 3 is committed to/stored in Register 1.

Forwarding is implemented by putting back the output of an instruction into the previous stage(s) of the pipeline as soon as the output of that instruction is available.  Forwarding applied to our instance means that we do not wait to commit/store the output of Instruction 1 in Register 1 (in this instance, the output is 3) before making that output accessible to the subsequent instruction (in this particular case, Instruction 2). The effect is that Instruction 2 uses the right (the more recent) value of Register

1: the commit/store was made instantly and not pipelined.

With forwarding enabled, the ID/EX[clarification needed] stage of the pipeline now has 2 inputs: the value read from the register mention (in this instance, the value 6 from Register 1), and the new value of Register 1 (in this instance, this value is 3) which is sent from the next stage (EX/MEM)[clarification needed]. Additional control logic is utilized to determine which input to use.

813_Eliminating data hazards.png


Related Discussions:- Eliminating data hazards - computer architecture

Example of blocking probability for the three stage network, A three stage ...

A three stage network is realized by using switching matrices of size p x s in stage 1, r x r matrices in stage 2 and s x p matrices in stage 3. Using the Lee's probability graph s

The maximum number of dimensions an array can have in c, The maximum number...

The maximum number of dimensions an array can have in C is C permits arrays of three or more dimensions. The exact limit is examined by the compiler.

Explain point-to-point message passing, Q. Explain Point-to-point Message P...

Q. Explain Point-to-point Message Passing? In point to point message passing, one process transmits/receives message from/to another process. There are four communication modes

The concept of thread-parallel computing, The Concept of Thread Thread ...

The Concept of Thread Thread is a chronological flow of control within a process. A process can include one or more threads. Threads have their own register values and program

Abap/4 module can "branch to " or "call" the next screen, The commands thro...

The commands through Which an ABAP/4 Module can "branch to " or "call" the next screen are Set screen Call screen , Leave screen, Leave to screen

Example on passing parameters through stack, Q. Example on Passing Paramete...

Q. Example on Passing Parameters through Stack? PROGRAM: Version 3 DATA_SEG               SEGMENT                         BCD DB 25h; Storage for BCD test value BIN

Illustrate about the macros and give its example, Illustrate about the macr...

Illustrate about the macros and give its example For instance, assume you want some data to be input into a spreadsheet if result of a calculation in cell K40 is negative: m

Find resolution & volts of a 2-digit BCD D/A converter, A 2-digit BCD D/A c...

A 2-digit BCD D/A converter is a weighted resistor type with E R = 1 Volt, with R = 1M? , R f = 10K? . Find resolution in Percent and Volts. Ans. Resolution = 1/2 2 = 0.25 vo

What are controls and how to use them, What are controls? How to use them? ...

What are controls? How to use them? Give examples for control. Controls are objects that can be placed in a form. The dissimilar controls are available in the Tool Box. After

Processors hypercube and utilisation displays, Processors Hypercube Thi...

Processors Hypercube This is specific to in the hypercube: Here, every processor is depicted by the set of nodes of the graph and the several arcs are represented with communic

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd