Packet Command Attributes
From gem5
Each packet contains a command, which consists of an a set of attributes. The following table indicates per command type, the type of response required (or InvalidCmd if none), and a set of flags. The contents of this table is based on src/mem/packet.hh (containing all command types) and src/mem/packet.cc (defining attributes per command type).
Command | response | IsRead | IsWrite | IsUpgrade | IsInvalidate | NeedsExclusive | IsRequest | IsResponse | NeedsResponse | IsSWPrefetch | IsHWPrefetch | IsLlsc | HasData | IsError | IsPrint | IsFlush |
InvalidCmd | InvalidCmd | |||||||||||||||
ReadReq | ReadResp | IsRead | IsRequest | NeedsResponse | ||||||||||||
ReadResp | InvalidCmd | IsRead | IsResponse | HasData | ||||||||||||
ReadRespWithInvalidate | InvalidCmd | IsRead | IsInvalidate | IsResponse | HasData | |||||||||||
WriteReq | WriteResp | IsWrite | NeedsExclusive | IsRequest | NeedsResponse | HasData | ||||||||||
WriteResp | InvalidCmd | IsWrite | NeedsExclusive | IsResponse | ||||||||||||
Writeback | InvalidCmd | IsWrite | NeedsExclusive | IsRequest | HasData | |||||||||||
SoftPFReq | SoftPFResp | IsRead | IsRequest | NeedsResponse | IsSWPrefetch | |||||||||||
HardPFReq | HardPFResp | IsRead | IsRequest | NeedsResponse | IsHWPrefetch | |||||||||||
SoftPFResp | InvalidCmd | IsRead | IsResponse | IsSWPrefetch | HasData | |||||||||||
HardPFResp | InvalidCmd | IsRead | IsResponse | IsHWPrefetch | HasData | |||||||||||
UpgradeReq | UpgradeResp | IsUpgrade | IsInvalidate | NeedsExclusive | IsRequest | NeedsResponse | ||||||||||
SCUpgradeReq | UpgradeResp | IsUpgrade | IsInvalidate | NeedsExclusive | IsRequest | NeedsResponse | IsLlsc | |||||||||
UpgradeResp | InvalidCmd | IsUpgrade | NeedsExclusive | IsResponse | ||||||||||||
SCUpgradeFailReq | UpgradeFailResp | IsInvalidate | NeedsExclusive | IsRequest | NeedsResponse | IsLlsc | ||||||||||
UpgradeFailResp | InvalidCmd | NeedsExclusive | IsResponse | |||||||||||||
ReadExReq | ReadExResp | IsRead | IsInvalidate | NeedsExclusive | IsRequest | NeedsResponse | ||||||||||
ReadExResp | InvalidCmd | IsRead | NeedsExclusive | IsResponse | HasData | |||||||||||
LoadLockedReq | ReadResp | IsRead | IsRequest | NeedsResponse | IsLlsc | |||||||||||
StoreCondReq | StoreCondResp | IsWrite | NeedsExclusive | IsRequest | NeedsResponse | IsLlsc | HasData | |||||||||
StoreCondFailReq | StoreCondResp | IsWrite | NeedsExclusive | IsRequest | NeedsResponse | IsLlsc | HasData | |||||||||
StoreCondResp | InvalidCmd | IsWrite | NeedsExclusive | IsResponse | IsLlsc | |||||||||||
SwapReq | SwapResp | IsRead | IsWrite | NeedsExclusive | IsRequest | NeedsResponse | HasData | |||||||||
SwapResp | InvalidCmd | IsRead | IsWrite | NeedsExclusive | IsResponse | HasData | ||||||||||
IntReq | MessageResp | IsWrite | IsRequest | NeedsResponse | HasData | |||||||||||
IntResp | InvalidCmd | IsWrite | IsResponse | |||||||||||||
NetworkNackError | InvalidCmd | IsResponse | IsError | |||||||||||||
InvalidDestError | InvalidCmd | IsResponse | IsError | |||||||||||||
BadAddressError | InvalidCmd | IsResponse | IsError | |||||||||||||
FunctionalReadError | InvalidCmd | IsRead | IsResponse | IsError | ||||||||||||
FunctionalWriteError | InvalidCmd | IsWrite | IsResponse | IsError | ||||||||||||
PrintReq | InvalidCmd | IsRequest | IsPrint | |||||||||||||
Flush Request | InvalidCmd | NeedsExclusive | IsRequest | IsFlush | ||||||||||||
Invalidation Request | InvalidCmd | IsInvalidate | NeedsExclusive | IsRequest |