global_memory_pipeline.hh (11308:7d8836fd043d) global_memory_pipeline.hh (11693:bc1f702c25b9)
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:

--- 48 unchanged lines hidden (view full) ---

57
58class GlobalMemPipeline
59{
60 public:
61 GlobalMemPipeline(const ComputeUnitParams *params);
62 void init(ComputeUnit *cu);
63 void exec();
64
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:

--- 48 unchanged lines hidden (view full) ---

57
58class GlobalMemPipeline
59{
60 public:
61 GlobalMemPipeline(const ComputeUnitParams *params);
62 void init(ComputeUnit *cu);
63 void exec();
64
65 template<typename c0, typename c1> void doGmReturn(GPUDynInstPtr m);
66
67 std::queue<GPUDynInstPtr> &getGMReqFIFO() { return gmIssuedRequests; }
68 std::queue<GPUDynInstPtr> &getGMStRespFIFO() { return gmReturnedStores; }
69 std::queue<GPUDynInstPtr> &getGMLdRespFIFO() { return gmReturnedLoads; }
70
71 bool
72 isGMLdRespFIFOWrRdy() const
73 {
74 return gmReturnedLoads.size() < gmQueueSize;

--- 9 unchanged lines hidden (view full) ---

84 isGMReqFIFOWrRdy(uint32_t pendReqs=0) const
85 {
86 return (gmIssuedRequests.size() + pendReqs) < gmQueueSize;
87 }
88
89 const std::string &name() const { return _name; }
90 void regStats();
91
65 std::queue<GPUDynInstPtr> &getGMReqFIFO() { return gmIssuedRequests; }
66 std::queue<GPUDynInstPtr> &getGMStRespFIFO() { return gmReturnedStores; }
67 std::queue<GPUDynInstPtr> &getGMLdRespFIFO() { return gmReturnedLoads; }
68
69 bool
70 isGMLdRespFIFOWrRdy() const
71 {
72 return gmReturnedLoads.size() < gmQueueSize;

--- 9 unchanged lines hidden (view full) ---

82 isGMReqFIFOWrRdy(uint32_t pendReqs=0) const
83 {
84 return (gmIssuedRequests.size() + pendReqs) < gmQueueSize;
85 }
86
87 const std::string &name() const { return _name; }
88 void regStats();
89
90 void
91 incLoadVRFBankConflictCycles(int num_cycles)
92 {
93 loadVrfBankConflictCycles += num_cycles;
94 }
95
92 private:
93 ComputeUnit *computeUnit;
94 std::string _name;
95 int gmQueueSize;
96
97 // number of cycles of delaying the update of a VGPR that is the
98 // target of a load instruction (or the load component of an atomic)
99 // The delay is due to VRF bank conflicts

--- 24 unchanged lines hidden ---
96 private:
97 ComputeUnit *computeUnit;
98 std::string _name;
99 int gmQueueSize;
100
101 // number of cycles of delaying the update of a VGPR that is the
102 // target of a load instruction (or the load component of an atomic)
103 // The delay is due to VRF bank conflicts

--- 24 unchanged lines hidden ---