Deleted Added
sdiff udiff text old ( 11308:7d8836fd043d ) new ( 11693:bc1f702c25b9 )
full compact
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 template<typename c0, typename c1> void doSmReturn(GPUDynInstPtr m);
65
66 std::queue<GPUDynInstPtr> &getLMReqFIFO() { return lmIssuedRequests; }
67 std::queue<GPUDynInstPtr> &getLMRespFIFO() { return lmReturnedRequests; }
68
69 bool
70 isLMRespFIFOWrRdy() const
71 {
72 return lmReturnedRequests.size() < lmQueueSize;
73 }
74
75 bool
76 isLMReqFIFOWrRdy(uint32_t pendReqs=0) const
77 {
78 return (lmIssuedRequests.size() + pendReqs) < lmQueueSize;
79 }
80
81 const std::string& name() const { return _name; }
82 void regStats();
83
84 private:
85 ComputeUnit *computeUnit;
86 std::string _name;
87 int lmQueueSize;
88 Stats::Scalar loadVrfBankConflictCycles;
89 // Local Memory Request Fifo: all shared memory requests
90 // are issued to this FIFO from the memory pipelines
91 std::queue<GPUDynInstPtr> lmIssuedRequests;
92
93 // Local Memory Response Fifo: all responses of shared memory
94 // requests are sent to this FIFO from LDS
95 std::queue<GPUDynInstPtr> lmReturnedRequests;
96};
97
98#endif // __LOCAL_MEMORY_PIPELINE_HH__