42#ifndef __CPU_O3_COMM_HH__
43#define __CPU_O3_COMM_HH__
171 std::unique_ptr<PCStateBase>
pc;
233template <
class CommStruct>
237 auto has_tid = [tid] (
const auto &inst) ->
bool {
238 return inst && inst->threadNumber == tid;
240 DynInstPtr *last = std::remove_if(comm_struct.insts,
241 comm_struct.insts + comm_struct.size,
243 std::fill(last, comm_struct.insts + comm_struct.size,
nullptr);
244 comm_struct.size = last - comm_struct.insts;
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
static constexpr int MaxThreads
void removeCommThreadInsts(ThreadID tid, CommStruct &comm_struct)
Remove instructions belonging to given thread from the given comm struct's instruction array.
RefCountingPtr< DynInst > DynInstPtr
static constexpr int MaxWidth
Copyright (c) 2024 Arm Limited All rights reserved.
std::shared_ptr< FaultBase > Fault
int16_t ThreadID
Thread index/ID type.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Struct that defines the information passed from decode to rename.
DynInstPtr insts[MaxWidth]
Struct that defines the information passed from fetch to decode.
DynInstPtr insts[MaxWidth]
Struct that defines the information passed from IEW to commit.
bool includeSquashInst[MaxThreads]
bool branchTaken[MaxThreads]
InstSeqNum squashedSeqNum[MaxThreads]
std::unique_ptr< PCStateBase > pc[MaxThreads]
bool branchMispredict[MaxThreads]
Addr mispredPC[MaxThreads]
DynInstPtr mispredictInst[MaxThreads]
DynInstPtr insts[MaxWidth]
DynInstPtr insts[MaxWidth]
Struct that defines the information passed from rename to IEW.
DynInstPtr insts[MaxWidth]
DynInstPtr strictlyOrderedLoad
Hack for now to send back a strictly ordered access to the IEW stage.
bool usedROB
Rename should re-read number of free rob entries.
unsigned freeROBEntries
Tell Rename how many free entries it has in the ROB.
bool clearInterrupt
If the interrupt ended up being cleared before being handled.
std::unique_ptr< PCStateBase > pc
The pc of the next instruction to execute.
DynInstPtr mispredictInst
Provide fetch the instruction that mispredicted, if this pointer is not-null a misprediction occured.
bool emptyROB
Notify Rename that the ROB is empty.
bool branchTaken
Was the branch taken or not.
InstSeqNum doneSeqNum
Represents the instruction that has either been retired or squashed.
DynInstPtr squashInst
Instruction that caused the a non-mispredict squash.
bool interruptPending
If an interrupt is pending and fetch should stall.
InstSeqNum nonSpecSeqNum
Communication specifically to the IQ to tell the IQ that it can schedule a non-speculative instructio...
bool strictlyOrdered
Hack for now to send back an strictly ordered access to the IEW stage.
DynInstPtr mispredictInst
std::unique_ptr< PCStateBase > nextPC
Struct that defines all backwards communication.
bool iewBlock[MaxThreads]
bool iewUnblock[MaxThreads]
bool decodeBlock[MaxThreads]
DecodeComm decodeInfo[MaxThreads]
RenameComm renameInfo[MaxThreads]
bool renameUnblock[MaxThreads]
bool decodeUnblock[MaxThreads]
IewComm iewInfo[MaxThreads]
bool renameBlock[MaxThreads]
CommitComm commitInfo[MaxThreads]