Example #1
0
 /// <summary>
 /// Default Constructor
 /// </summary>
 public IssueStage()
 {
     this.integerStation = new ReservationStation();
     this.fpStation = new ReservationStation();
     this.memStation = new ReservationStation(); // Per the Specification
     this.multDivStation = new ReservationStation();
     //I think the number of entries is the same for all the RSs.
     //The thing that changes with branch is the # of functional units. -btf
     this.branchStation = new ReservationStation();
 }
Example #2
0
 /// <summary>
 /// Default Constructor
 /// </summary>
 public IssueStage()
 {
     this.integerStation = new ReservationStation();
     this.fpStation      = new ReservationStation();
     this.memStation     = new ReservationStation(); // Per the Specification
     this.multDivStation = new ReservationStation();
     //I think the number of entries is the same for all the RSs.
     //The thing that changes with branch is the # of functional units. -btf
     this.branchStation = new ReservationStation();
 }
Example #3
0
 private void updateReservationStation(int rrfEntryIndex, ReservationStation resStation)
 {
     foreach (ReservationStationEntry rsEntry in resStation.buffer)
     {
         if (rsEntry.valid1 == false && rsEntry.op1 == rrfEntryIndex)
         {
             rsEntry.op1    = rsEntry.instr.source1;
             rsEntry.valid1 = true;
         }
         if (rsEntry.valid2 == false && rsEntry.op2 == rrfEntryIndex)
         {
             rsEntry.op2    = rsEntry.instr.source2;
             rsEntry.valid2 = true;
         }
         if (rsEntry.valid1 == true && rsEntry.valid2 == true)
         {
             rsEntry.ready = true;
         }
     }
 }
Example #4
0
 private void updateReservationStation(int rrfEntryIndex, ReservationStation resStation)
 {
     foreach (ReservationStationEntry rsEntry in resStation.buffer)
     {
         if (rsEntry.valid1 == false && rsEntry.op1 == rrfEntryIndex)
         {
             rsEntry.op1 = rsEntry.instr.source1;
             rsEntry.valid1 = true;
         }
         if (rsEntry.valid2 == false && rsEntry.op2 == rrfEntryIndex)
         {
             rsEntry.op2 = rsEntry.instr.source2;
             rsEntry.valid2 = true;
         }
         if (rsEntry.valid1 == true && rsEntry.valid2 == true)
         {
             rsEntry.ready = true;
         }
     }
 }