fetch.hh (2678:1f86b91dc3bb) | fetch.hh (2696:30b38e36ff54) |
---|---|
1/* 2 * Copyright (c) 2004-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; --- 101 unchanged lines hidden (view full) --- 110 Idle, 111 Squashing, 112 Blocked, 113 Fetching, 114 TrapPending, 115 QuiescePending, 116 SwitchOut, 117 IcacheWaitResponse, | 1/* 2 * Copyright (c) 2004-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; --- 101 unchanged lines hidden (view full) --- 110 Idle, 111 Squashing, 112 Blocked, 113 Fetching, 114 TrapPending, 115 QuiescePending, 116 SwitchOut, 117 IcacheWaitResponse, |
118 IcacheRetry, | 118 IcacheWaitRetry, |
119 IcacheAccessComplete 120 }; 121 122 /** Fetching Policy, Add new policies here.*/ 123 enum FetchPriority { 124 SingleThread, 125 RoundRobin, 126 Branch, --- 136 unchanged lines hidden (view full) --- 263 /** Align a PC to the start of an I-cache block. */ 264 Addr icacheBlockAlignPC(Addr addr) 265 { 266 addr = TheISA::realPCToFetchPC(addr); 267 return (addr & ~(cacheBlkMask)); 268 } 269 270 private: | 119 IcacheAccessComplete 120 }; 121 122 /** Fetching Policy, Add new policies here.*/ 123 enum FetchPriority { 124 SingleThread, 125 RoundRobin, 126 Branch, --- 136 unchanged lines hidden (view full) --- 263 /** Align a PC to the start of an I-cache block. */ 264 Addr icacheBlockAlignPC(Addr addr) 265 { 266 addr = TheISA::realPCToFetchPC(addr); 267 return (addr & ~(cacheBlkMask)); 268 } 269 270 private: |
271 void recvRetry(); 272 |
|
271 /** Returns the appropriate thread to fetch, given the fetch policy. */ 272 int getFetchingThread(FetchPriority &fetch_priority); 273 274 /** Returns the appropriate thread to fetch using a round robin policy. */ 275 int roundRobin(); 276 277 /** Returns the appropriate thread to fetch using the IQ count policy. */ 278 int iqCount(); --- 76 unchanged lines hidden (view full) --- 355 unsigned iewToFetchDelay; 356 357 /** Commit to fetch delay, in ticks. */ 358 unsigned commitToFetchDelay; 359 360 /** The width of fetch in instructions. */ 361 unsigned fetchWidth; 362 | 273 /** Returns the appropriate thread to fetch, given the fetch policy. */ 274 int getFetchingThread(FetchPriority &fetch_priority); 275 276 /** Returns the appropriate thread to fetch using a round robin policy. */ 277 int roundRobin(); 278 279 /** Returns the appropriate thread to fetch using the IQ count policy. */ 280 int iqCount(); --- 76 unchanged lines hidden (view full) --- 357 unsigned iewToFetchDelay; 358 359 /** Commit to fetch delay, in ticks. */ 360 unsigned commitToFetchDelay; 361 362 /** The width of fetch in instructions. */ 363 unsigned fetchWidth; 364 |
365 /** Is the cache blocked? If so no threads can access it. */ 366 bool cacheBlocked; 367 368 /** The packet that is waiting to be retried. */ 369 PacketPtr retryPkt; 370 371 /** The thread that is waiting on the cache to tell fetch to retry. */ 372 int retryTid; 373 |
|
363 /** Cache block size. */ 364 int cacheBlkSize; 365 366 /** Mask to get a cache block's address. */ 367 Addr cacheBlkMask; 368 369 /** The cache line being fetched. */ 370 uint8_t *cacheData[Impl::MaxThreads]; --- 69 unchanged lines hidden --- | 374 /** Cache block size. */ 375 int cacheBlkSize; 376 377 /** Mask to get a cache block's address. */ 378 Addr cacheBlkMask; 379 380 /** The cache line being fetched. */ 381 uint8_t *cacheData[Impl::MaxThreads]; --- 69 unchanged lines hidden --- |