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

Explain the working of interpreter, Explain the working of Interpreter? ...

Explain the working of Interpreter? The Interpreter is a program that executes instructions written in a high-level language. There are two manners to run programs written in a

Different types of layers in tcp/ip protocol stack, What are the different ...

What are the different types of layers in TCP/IP protocol stack? Layers into the TCP/IP protocol architecture are as given below: • Application Layer, • Host-to-Host Tra

Define grammar of a language, Define Grammar of a language. A formal la...

Define Grammar of a language. A formal language grammar is a set of formation rules which describe that strings formed from the alphabet of a formal language are syntactically

Explain compiler, What is compiler? A system software program known as ...

What is compiler? A system software program known as a compiler translates the high-level language program into a suitable machine language program having instruction such as t

What is the sequence in which resources may be utilized, What is the sequen...

What is the sequence in which resources may be utilized?  Under normal mode of operation, a process might be utilize a resource in the following sequence:  • Request: If the

Characteristics of extreme unencoded micro-instructions, Q. Characteristics...

Q. Characteristics of extreme unencoded micro-instructions? 1. Two sources can be attached by respective control signals to a single destination; though only one of these sourc

How putchar function is used within a c program, How putchar function is us...

How putchar function is used within a C Program ? The following program reads each character in the first line of input entered at the terminal's keyboard. It uses putchar to d

What is the scope of public members in all classes, What is the Scope of pu...

What is the Scope of public/private/friend/protected/protected friend?    Scope of public/private/friend/protected/protected friend. Visual Basic/Visual C# Public/pub

How do the registers help in instruction execution, Q. How do the registers...

Q. How do the registers help in instruction execution? We will discuss this in following steps: Step 1: First step of instruction execution is to fetch instruction which

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