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

What is the use of unions in c ?, Unions allow the same area of memory to b...

Unions allow the same area of memory to be accessed as different data types. The insurance example above would not work. Unions are useful (often in embedded programming) when i

Returns and procedures definitions in 8086, Q. Returns and Procedures defin...

Q. Returns and Procedures definitions in 8086? 8086 microprocessor supports RET and CALL instructions for procedure call. CALL instruction not only branches to indicate address

Components of magnetic disk, Q. Components of magnetic disk? Disk itsel...

Q. Components of magnetic disk? Disk itself is mounted in a disk drive that comprises arm which is a shaft that rotates disk and the electronics required for input and output b

What is building and running mpi programs, Q. What is Building and Running ...

Q. What is Building and Running MPI Programs? MPI parallel programs are written using conventional languages such as FORTRAN and C. One or more header files like 'mpi.h' may be

Use of intrinsic functions in fortran, Q. Use of Intrinsic Functions in FOR...

Q. Use of Intrinsic Functions in FORTRAN? HPF initiates some new intrinsic functions also to those defined in F90. The two mainly often used in parallel programming are system

How a java program compiles, How a Java program compiles? First sou...

How a Java program compiles? First source file name should be extended with .java extension. For example Myprog.java Execute javac compiler. javac compiler creates

Incorporate exception handling, Assignment (to be published later) will req...

Assignment (to be published later) will require you to extend the menu-driven application developed in Assignment 2B, to incorporate the recording details of the doctors who will b

Explain the term confidentiality - firewall design policy, Explain the term...

Explain the term Confidentiality - Firewall Design Policy Whilst some corporate data is for public consumption, the vast majority of it should remain private.

Matlab, Use the colon operation to create a vector x of numbers -10 through...

Use the colon operation to create a vector x of numbers -10 through 10 in steps of 1. Use matrix operations to create a vector y where each element is 5 more than 2 times the corre

Explain about common addressing modes, Q. Explain about common addressing m...

Q. Explain about common addressing modes? Most of machines use a set of addressing modes. The following tree displays common addressing modes: Figure: Common Addres

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