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

How the conversation speed of A/D converter is maximum, The conversation sp...

The conversation speed of an analog to digital converter is maximum with which technique? Ans. With parallel comparator AD converter technique the conversation speed of an ana

Draw layout cells in a table, Now add layout cells into which you will add ...

Now add layout cells into which you will add text about travel locations. 1.  In Objects panel, click the Draw Layout Cell icon and move the pointer to layout table you just dre

What is c++ reference and java final, What is C++ reference and JAVA final?...

What is C++ reference and JAVA final? Association ends must be bound at initialization and cannot be altered. C++ references can fully enforce these semantics, and the JAVA fin

Inverse of exclusive or known as xnor gate, Truth table of NAND and NOR can...

Truth table of NAND and NOR can be made from NOT (A AND B) and NOT (A OR B) correspondingly. Exclusive OR (XOR) is a special gate whose output is one only if two inputs aren't equa

What is dispatch unit, What is dispatch unit? A separate unit which we ...

What is dispatch unit? A separate unit which we call the dispatch unit fetch instructions from the front of the queue and sends them to the execution unit. The dispatch unit al

How to run an app in a page with existing content, There are no needs.. If ...

There are no needs.. If you need to use a Viewport you can! If you want to render components into divs... you can do that aswell.

Determine the method for updating the main memory, The method for updating ...

The method for updating the main memory as soon as a word is removed from the Cache is known as  (A) Write-through                  (B) write-back   (C) protected write

Role of world wide web in the field of e-commerce, Explain the role of Worl...

Explain the role of World Wide Web in the field of e-commerce.  In the 1990s, the arrival of the World Wide Web on the Internet had shown a turning point in e-commerce by givin

Explain various classes of datatypes of c, Explain various classes of datat...

Explain various classes of datatypes of C   Following are the main classes of data types in C language: 1.  Primary data types: Also called as fundamental/basic data types

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