/// <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(); }
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; } } }