1/* 2 * Copyright (c) 2014-2015 Advanced Micro Devices, Inc. 3 * All rights reserved. 4 * 5 * For use for simulation and test purposes only 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions are met: --- 47 unchanged lines hidden (view full) --- 56 57class LocalMemPipeline 58{ 59 public: 60 LocalMemPipeline(const ComputeUnitParams *params); 61 void init(ComputeUnit *cu); 62 void exec(); 63 |
64 std::queue<GPUDynInstPtr> &getLMReqFIFO() { return lmIssuedRequests; } 65 std::queue<GPUDynInstPtr> &getLMRespFIFO() { return lmReturnedRequests; } 66 67 bool 68 isLMRespFIFOWrRdy() const 69 { 70 return lmReturnedRequests.size() < lmQueueSize; 71 } 72 73 bool 74 isLMReqFIFOWrRdy(uint32_t pendReqs=0) const 75 { 76 return (lmIssuedRequests.size() + pendReqs) < lmQueueSize; 77 } 78 79 const std::string& name() const { return _name; } 80 void regStats(); 81 |
82 void 83 incLoadVRFBankConflictCycles(int num_cycles) 84 { 85 loadVrfBankConflictCycles += num_cycles; 86 } 87 |
88 private: 89 ComputeUnit *computeUnit; 90 std::string _name; 91 int lmQueueSize; 92 Stats::Scalar loadVrfBankConflictCycles; 93 // Local Memory Request Fifo: all shared memory requests 94 // are issued to this FIFO from the memory pipelines 95 std::queue<GPUDynInstPtr> lmIssuedRequests; 96 97 // Local Memory Response Fifo: all responses of shared memory 98 // requests are sent to this FIFO from LDS 99 std::queue<GPUDynInstPtr> lmReturnedRequests; 100}; 101 102#endif // __LOCAL_MEMORY_PIPELINE_HH__ |