packet.hh (3212:41b04a73857f) | packet.hh (3214:779bab9071b5) |
---|---|
1/* 2 * Copyright (c) 2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 44 unchanged lines hidden (view full) --- 53#define NACKED_LINE 1 << 0 54#define SATISFIED 1 << 1 55#define SHARED_LINE 1 << 2 56#define CACHE_LINE_FILL 1 << 3 57#define COMPRESSED 1 << 4 58#define NO_ALLOCATE 1 << 5 59#define SNOOP_COMMIT 1 << 6 60 | 1/* 2 * Copyright (c) 2006 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 44 unchanged lines hidden (view full) --- 53#define NACKED_LINE 1 << 0 54#define SATISFIED 1 << 1 55#define SHARED_LINE 1 << 2 56#define CACHE_LINE_FILL 1 << 3 57#define COMPRESSED 1 << 4 58#define NO_ALLOCATE 1 << 5 59#define SNOOP_COMMIT 1 << 6 60 |
61//for now. @todo fix later 62#define NUM_MEM_CMDS 1 << 11 |
|
61/** 62 * A Packet is used to encapsulate a transfer between two objects in 63 * the memory system (e.g., the L1 and L2 cache). (In contrast, a 64 * single Request travels all the way from the requester to the 65 * ultimate destination and back, possibly being conveyed by several 66 * different Packets along the way.) 67 */ 68class Packet --- 99 unchanged lines hidden (view full) --- 168 IsWrite = 1 << 1, 169 IsPrefetch = 1 << 2, 170 IsInvalidate = 1 << 3, 171 IsRequest = 1 << 4, 172 IsResponse = 1 << 5, 173 NeedsResponse = 1 << 6, 174 IsSWPrefetch = 1 << 7, 175 IsHWPrefetch = 1 << 8, | 63/** 64 * A Packet is used to encapsulate a transfer between two objects in 65 * the memory system (e.g., the L1 and L2 cache). (In contrast, a 66 * single Request travels all the way from the requester to the 67 * ultimate destination and back, possibly being conveyed by several 68 * different Packets along the way.) 69 */ 70class Packet --- 99 unchanged lines hidden (view full) --- 170 IsWrite = 1 << 1, 171 IsPrefetch = 1 << 2, 172 IsInvalidate = 1 << 3, 173 IsRequest = 1 << 4, 174 IsResponse = 1 << 5, 175 NeedsResponse = 1 << 6, 176 IsSWPrefetch = 1 << 7, 177 IsHWPrefetch = 1 << 8, |
176 HasData = 1 << 9 | 178 IsUpgrade = 1 << 9, 179 HasData = 1 << 10 |
177 }; | 180 }; |
178 | |
179//For statistics we need max number of commands, hard code it at 180//20 for now. @todo fix later 181#define NUM_MEM_CMDS 1 << 10 182 183 public: 184 /** List of all commands associated with a packet. */ 185 enum Command 186 { --- 7 unchanged lines hidden (view full) --- 194 SoftPFReq = IsRead | IsRequest | IsSWPrefetch | NeedsResponse, 195 HardPFReq = IsRead | IsRequest | IsHWPrefetch | NeedsResponse, 196 SoftPFResp = IsRead | IsResponse | IsSWPrefetch 197 | NeedsResponse | HasData, 198 HardPFResp = IsRead | IsResponse | IsHWPrefetch 199 | NeedsResponse | HasData, 200 InvalidateReq = IsInvalidate | IsRequest, 201 WriteInvalidateReq = IsWrite | IsInvalidate | IsRequest | HasData, | 181//For statistics we need max number of commands, hard code it at 182//20 for now. @todo fix later 183#define NUM_MEM_CMDS 1 << 10 184 185 public: 186 /** List of all commands associated with a packet. */ 187 enum Command 188 { --- 7 unchanged lines hidden (view full) --- 196 SoftPFReq = IsRead | IsRequest | IsSWPrefetch | NeedsResponse, 197 HardPFReq = IsRead | IsRequest | IsHWPrefetch | NeedsResponse, 198 SoftPFResp = IsRead | IsResponse | IsSWPrefetch 199 | NeedsResponse | HasData, 200 HardPFResp = IsRead | IsResponse | IsHWPrefetch 201 | NeedsResponse | HasData, 202 InvalidateReq = IsInvalidate | IsRequest, 203 WriteInvalidateReq = IsWrite | IsInvalidate | IsRequest | HasData, |
202 UpgradeReq = IsInvalidate | IsRequest, | 204 UpgradeReq = IsInvalidate | IsRequest | IsUpgrade, |
203 ReadExReq = IsRead | IsInvalidate | IsRequest | NeedsResponse, 204 ReadExResp = IsRead | IsInvalidate | IsResponse 205 | NeedsResponse | HasData 206 }; 207 208 /** Return the string name of the cmd field (for debugging and 209 * tracing). */ 210 const std::string &cmdString() const; --- 183 unchanged lines hidden --- | 205 ReadExReq = IsRead | IsInvalidate | IsRequest | NeedsResponse, 206 ReadExResp = IsRead | IsInvalidate | IsResponse 207 | NeedsResponse | HasData 208 }; 209 210 /** Return the string name of the cmd field (for debugging and 211 * tracing). */ 212 const std::string &cmdString() const; --- 183 unchanged lines hidden --- |