RubySlicc_Util.hh (6284:a63d1dc4c820) | RubySlicc_Util.hh (6285:ce086eca1ede) |
---|---|
1 2/* 3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 40 unchanged lines hidden (view full) --- 49#include "mem/protocol/CacheRequestType.hh" 50#include "mem/protocol/AccessType.hh" 51#include "mem/protocol/MachineType.hh" 52#include "mem/protocol/Directory_State.hh" 53#include "mem/protocol/L1Cache_State.hh" 54#include "mem/protocol/MessageSizeType.hh" 55#include "mem/ruby/network/Network.hh" 56#include "mem/protocol/PrefetchBit.hh" | 1 2/* 3 * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright --- 40 unchanged lines hidden (view full) --- 49#include "mem/protocol/CacheRequestType.hh" 50#include "mem/protocol/AccessType.hh" 51#include "mem/protocol/MachineType.hh" 52#include "mem/protocol/Directory_State.hh" 53#include "mem/protocol/L1Cache_State.hh" 54#include "mem/protocol/MessageSizeType.hh" 55#include "mem/ruby/network/Network.hh" 56#include "mem/protocol/PrefetchBit.hh" |
57#include "mem/ruby/system/System.hh" |
|
57 58#include "mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh" 59 60class Set; 61class NetDest; 62 63extern inline int random(int n) 64{ 65 return random() % n; 66} 67 68extern inline bool multicast_retry() 69{ | 58 59#include "mem/ruby/slicc_interface/RubySlicc_ComponentMapping.hh" 60 61class Set; 62class NetDest; 63 64extern inline int random(int n) 65{ 66 return random() % n; 67} 68 69extern inline bool multicast_retry() 70{ |
70 if (RANDOMIZATION) { | 71 if (RubySystem::getRandomization()) { |
71 return (random() & 0x1); 72 } else { 73 return true; 74 } 75} 76 77extern inline int cache_state_to_int(L1Cache_State state) 78{ --- 27 unchanged lines hidden (view full) --- 106 return (int) addr.getLineAddress(); 107} 108 109extern inline int MessageSizeTypeToInt(MessageSizeType size_type) 110{ 111 return MessageSizeType_to_int(size_type); 112} 113 | 72 return (random() & 0x1); 73 } else { 74 return true; 75 } 76} 77 78extern inline int cache_state_to_int(L1Cache_State state) 79{ --- 27 unchanged lines hidden (view full) --- 107 return (int) addr.getLineAddress(); 108} 109 110extern inline int MessageSizeTypeToInt(MessageSizeType size_type) 111{ 112 return MessageSizeType_to_int(size_type); 113} 114 |
115/* |
|
114extern inline int numberOfNodes() 115{ 116 return RubyConfig::numberOfChips(); 117} | 116extern inline int numberOfNodes() 117{ 118 return RubyConfig::numberOfChips(); 119} |
118 | 120*/ 121/* |
119extern inline int numberOfL1CachePerChip() 120{ | 122extern inline int numberOfL1CachePerChip() 123{ |
121 return RubyConfig::numberOfL1CachePerChip(); | 124 return RubyConfig::getNumberOfCachesPerLevelPerChip(1,0); |
122} | 125} |
126*/ |
|
123 124extern inline bool long_enough_ago(Time event) 125{ 126 return ((get_time() - event) > 200); 127} 128 129extern inline int getAddThenMod(int addend1, int addend2, int modulus) 130{ --- 13 unchanged lines hidden (view full) --- 144extern inline Time getTimeMinusTime(Time t1, Time t2) 145{ 146 ASSERT(t1 >= t2); 147 return t1 - t2; 148} 149 150extern inline Time getPreviousDelayedCycles(Time t1, Time t2) 151{ | 127 128extern inline bool long_enough_ago(Time event) 129{ 130 return ((get_time() - event) > 200); 131} 132 133extern inline int getAddThenMod(int addend1, int addend2, int modulus) 134{ --- 13 unchanged lines hidden (view full) --- 148extern inline Time getTimeMinusTime(Time t1, Time t2) 149{ 150 ASSERT(t1 >= t2); 151 return t1 - t2; 152} 153 154extern inline Time getPreviousDelayedCycles(Time t1, Time t2) 155{ |
152 if (RANDOMIZATION) { // when randomizing delayed | 156 if (RubySystem::getRandomization()) { // when randomizing delayed |
153 return 0; 154 } else { 155 return getTimeMinusTime(t1, t2); 156 } 157} 158 159extern inline void WARN_ERROR_TIME(Time time) 160{ 161 WARN_EXPR(time); 162} 163 164// Return type for time_to_int is "Time" and not "int" so we get a 64-bit integer 165extern inline Time time_to_int(Time time) 166{ 167 return time; 168} 169 | 157 return 0; 158 } else { 159 return getTimeMinusTime(t1, t2); 160 } 161} 162 163extern inline void WARN_ERROR_TIME(Time time) 164{ 165 WARN_EXPR(time); 166} 167 168// Return type for time_to_int is "Time" and not "int" so we get a 64-bit integer 169extern inline Time time_to_int(Time time) 170{ 171 return time; 172} 173 |
170 | 174/* |
171extern inline bool getFilteringEnabled() 172{ | 175extern inline bool getFilteringEnabled() 176{ |
173 return g_FILTERING_ENABLED; | 177 return RubyConfig::getFilteringEnabled(); |
174} 175 | 178} 179 |
180 |
|
176extern inline int getRetryThreshold() 177{ | 181extern inline int getRetryThreshold() 182{ |
178 return g_RETRY_THRESHOLD; | 183 return RubyConfig::getRetryThreshold(); |
179} 180 181extern inline int getFixedTimeoutLatency() 182{ | 184} 185 186extern inline int getFixedTimeoutLatency() 187{ |
183 return g_FIXED_TIMEOUT_LATENCY; | 188 return RubyConfig::getFixedTimeoutLatency(); |
184} 185 186extern inline int N_tokens() 187{ 188 // return N+1 to handle clean writeback | 189} 190 191extern inline int N_tokens() 192{ 193 // return N+1 to handle clean writeback |
189 return g_PROCS_PER_CHIP + 1; | 194 return RubyConfig::getProcsPerChip() + 1; |
190 // return 1; 191} 192 193extern inline bool distributedPersistentEnabled() 194{ | 195 // return 1; 196} 197 198extern inline bool distributedPersistentEnabled() 199{ |
195 return g_DISTRIBUTED_PERSISTENT_ENABLED; | 200 return RubyConfig::getDistributedPersistentEnabled(); |
196} 197 198extern inline bool getDynamicTimeoutEnabled() 199{ | 201} 202 203extern inline bool getDynamicTimeoutEnabled() 204{ |
200 return g_DYNAMIC_TIMEOUT_ENABLED; | 205 return RubyConfig::getDynamicTimeoutEnabled(); |
201} | 206} |
202 | 207*/ |
203// Appends an offset to an address 204extern inline Address setOffset(Address addr, int offset) 205{ 206 Address result = addr; 207 result.setOffset(offset); 208 return result; 209} 210 211// Makes an address into a line address 212extern inline Address makeLineAddress(Address addr) 213{ 214 Address result = addr; 215 result.makeLineAddress(); 216 return result; 217} 218 219#endif //SLICC_UTIL_H | 208// Appends an offset to an address 209extern inline Address setOffset(Address addr, int offset) 210{ 211 Address result = addr; 212 result.setOffset(offset); 213 return result; 214} 215 216// Makes an address into a line address 217extern inline Address makeLineAddress(Address addr) 218{ 219 Address result = addr; 220 result.makeLineAddress(); 221 return result; 222} 223 224#endif //SLICC_UTIL_H |