Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

PLEASE ANSWER ALL THE QUESTIONS & ALSO SHARE IN WRITTEN STEPS FOR DILEVERABLES AND GSHARE Suggested working steps: 1) Get Halt & noop Instruction

"PLEASE ANSWER ALL THE QUESTIONS & ALSO SHARE IN WRITTEN STEPS FOR DILEVERABLES AND GSHARE "

Suggested working steps:

1) Get Halt & noop Instruction working in your simulation. Provide the commands to compile and run the test case for halt and noop. 5 Points.

2) Implement Add & Nand & Mult (assuming NO hazards.) Provide instructions to compile and run test cases for add, nand, and mult. 3 Points.

3) Implement LW and SW (assuming no hazards.) Provide instructions to compile and run test cases. 3 Points.

4) Implement BEQ assuming no hazards (just put in no ops.) Provide instructions to compile and run test cases. 3 Points.

5) Implement Data Forwarding (After all instructions are implemented, add forwarding for data hazards). Provide instructions for compiling and running each of your tests. 5 Points.

6) Implement Branch Speculation (After all instructions are implemented, implement speculate and squash (if needed.)) Provide instructions for compiling and running each of your tests. 5 Points.

Towards Midterm;

7) Implement GShare for the simulator.

**Description**

Implement a Gshare predictor for you in order pipeline processor.

You will implement a branch predictor that uses:

1) 16-entry Branch History Table (BHT) that is initialized to all zeros

with 4 bits of history.

2) Xor, which takes the output of the BHT and the last 4 bits of your PC.

3) This will index into a 16-entry pattern history table

containing a 2-bit state machine. The initial state will be weakly NOT-TAKEN.

You will also implement a 16-entry branch target buffer organized as a

fully associative cache with FIFO replacement.

The branch target buffer tag is the PC of the branch instruction, and the data

portion is the target address of the branch last time it was calculated.

Entries are put into the BTB only when a branch is resolved and TAKEN.

If you predict a branch to be taken but do not find an entry in the BTB,

fetch (speculatively) from PC+1.

**Deliverable(s)**

1\. Link to your code on Github

2\. Instruction to run and compile the test for branches

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions