Revert "Improve scheduling of Reorder buffer. This includes an experimental relaxation of ordering."
This reverts commit 1873702c81.
This commit is contained in:
@@ -48,8 +48,6 @@ import HasSpecBits::*;
|
|||||||
import Vector::*;
|
import Vector::*;
|
||||||
import Assert::*;
|
import Assert::*;
|
||||||
import Ehr::*;
|
import Ehr::*;
|
||||||
import ConfigReg::*;
|
|
||||||
import SpecialRegs::*;
|
|
||||||
import RevertingVirtualReg::*;
|
import RevertingVirtualReg::*;
|
||||||
`ifdef RVFI_DII
|
`ifdef RVFI_DII
|
||||||
import RVFI_DII_Types::*;
|
import RVFI_DII_Types::*;
|
||||||
@@ -262,29 +260,29 @@ module mkReorderBufferRowEhr(ReorderBufferRowEhr#(aluExeNum, fpuMulDivExeNum)) p
|
|||||||
Integer traceBundle_deqLSQ_port = valueof(fpuMulDivExeNum) + valueof(aluExeNum);
|
Integer traceBundle_deqLSQ_port = valueof(fpuMulDivExeNum) + valueof(aluExeNum);
|
||||||
Integer traceBundle_enq_port = 1 + traceBundle_deqLSQ_port;
|
Integer traceBundle_enq_port = 1 + traceBundle_deqLSQ_port;
|
||||||
|
|
||||||
Reg#(CapMem) pc <- mkConfigRegU;
|
Reg#(CapMem) pc <- mkRegU;
|
||||||
Reg #(Bit #(32)) orig_inst <- mkConfigRegU;
|
Reg #(Bit #(32)) orig_inst <- mkRegU;
|
||||||
Reg#(IType) iType <- mkConfigRegU;
|
Reg#(IType) iType <- mkRegU;
|
||||||
Reg #(Maybe #(ArchRIndx)) rg_dst_reg <- mkConfigRegU;
|
Reg #(Maybe #(ArchRIndx)) rg_dst_reg <- mkRegU;
|
||||||
`ifdef INCLUDE_TANDEM_VERIF
|
`ifdef INCLUDE_TANDEM_VERIF
|
||||||
Reg #(Data) rg_dst_data <- mkConfigRegU;
|
Reg #(Data) rg_dst_data <- mkRegU;
|
||||||
Reg #(Data) rg_store_data <- mkConfigRegU;
|
Reg #(Data) rg_store_data <- mkRegU;
|
||||||
Reg #(ByteEn) rg_store_data_BE <- mkConfigRegU;
|
Reg #(ByteEn) rg_store_data_BE <- mkRegU;
|
||||||
`endif
|
`endif
|
||||||
Reg#(Maybe#(CSR)) csr <- mkConfigRegU;
|
Reg#(Maybe#(CSR)) csr <- mkRegU;
|
||||||
Reg#(Maybe#(SCR)) scr <- mkConfigRegU;
|
Reg#(Maybe#(SCR)) scr <- mkRegU;
|
||||||
Reg#(Bool) claimed_phy_reg <- mkConfigRegU;
|
Reg#(Bool) claimed_phy_reg <- mkRegU;
|
||||||
Ehr#(TAdd#(2, aluExeNum), Maybe#(Trap)) trap <- mkRegOR(?);
|
Ehr#(TAdd#(2, aluExeNum), Maybe#(Trap)) trap <- mkEhr(?);
|
||||||
Ehr#(TAdd#(2, aluExeNum), PPCVAddrCSRData) ppc_vaddr_csrData <- mkRegOR(?);
|
Ehr#(TAdd#(2, aluExeNum), PPCVAddrCSRData) ppc_vaddr_csrData <- mkEhr(?);
|
||||||
Ehr#(TAdd#(1, fpuMulDivExeNum), Bit#(5)) fflags <- mkRegOR(?);
|
Ehr#(TAdd#(1, fpuMulDivExeNum), Bit#(5)) fflags <- mkEhr(?);
|
||||||
Reg#(Bool) will_dirty_fpu_state <- mkConfigRegU;
|
Reg#(Bool) will_dirty_fpu_state <- mkRegU;
|
||||||
Ehr#(TAdd#(3, TAdd#(fpuMulDivExeNum, aluExeNum)), RobInstState) rob_inst_state <- mkRegOR(?);
|
Ehr#(TAdd#(3, TAdd#(fpuMulDivExeNum, aluExeNum)), RobInstState) rob_inst_state <- mkEhr(?);
|
||||||
Reg#(LdStQTag) lsqTag <- mkConfigRegU;
|
Reg#(LdStQTag) lsqTag <- mkRegU;
|
||||||
Ehr#(2, Maybe#(LdKilledBy)) ldKilled <- mkRegOR(?);
|
Ehr#(2, Maybe#(LdKilledBy)) ldKilled <- mkEhr(?);
|
||||||
Ehr#(3, Bool) memAccessAtCommit <- mkRegOR(?);
|
Ehr#(3, Bool) memAccessAtCommit <- mkEhr(?);
|
||||||
Ehr#(2, Bool) lsqAtCommitNotified <- mkRegOR(?);
|
Ehr#(2, Bool) lsqAtCommitNotified <- mkEhr(?);
|
||||||
Ehr#(2, Bool) nonMMIOStDone <- mkRegOR(?);
|
Ehr#(2, Bool) nonMMIOStDone <- mkEhr(?);
|
||||||
Reg#(Bool) epochIncremented <- mkConfigRegU;
|
Reg#(Bool) epochIncremented <- mkRegU;
|
||||||
Ehr#(3, SpecBits) spec_bits <- mkEhr(?);
|
Ehr#(3, SpecBits) spec_bits <- mkEhr(?);
|
||||||
`ifdef RVFI_DII
|
`ifdef RVFI_DII
|
||||||
Reg#(Dii_Parcel_Id) dii_pid <- mkRegU;
|
Reg#(Dii_Parcel_Id) dii_pid <- mkRegU;
|
||||||
@@ -1133,8 +1131,8 @@ module mkSupReorderBuffer#(
|
|||||||
for(Integer i = 0; i < valueof(SupSize); i = i+1) begin
|
for(Integer i = 0; i < valueof(SupSize); i = i+1) begin
|
||||||
SupWaySel way = getDeqFifoWay(fromInteger(i)); // FIFO[way] is used by deq port i
|
SupWaySel way = getDeqFifoWay(fromInteger(i)); // FIFO[way] is used by deq port i
|
||||||
Bool can_deq = can_deq_fifo[way] &&
|
Bool can_deq = can_deq_fifo[way] &&
|
||||||
deq_SB_wrongSpec /*&& // ordering: < wrongSpec
|
deq_SB_wrongSpec && // ordering: < wrongSpec
|
||||||
all(id, readVReg(deq_SB_enq))*/; // ordering: < enq
|
all(id, readVReg(deq_SB_enq)); // ordering: < enq
|
||||||
deqIfc[i] = (interface ROB_DeqPort;
|
deqIfc[i] = (interface ROB_DeqPort;
|
||||||
method Bool canDeq = can_deq;
|
method Bool canDeq = can_deq;
|
||||||
method Action deq if(can_deq);
|
method Action deq if(can_deq);
|
||||||
|
|||||||
Reference in New Issue
Block a user