summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/scoreboard.h
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2020-05-21 08:57:11 -0700
committerGitHub <[email protected]>2020-05-21 08:57:11 -0700
commit76217d80d9aa33126b4254f5e899f882bbc6f2fd (patch)
tree4f461a6f417f76956748fafcfb89b664f54bf6a9 /src/gpgpu-sim/scoreboard.h
parente7fbfaa347c0acf8a6702c1e684a8e2ad8d3f733 (diff)
parente9e9fcf5957530ecb927aecb5ea238e4b78a4f45 (diff)
Merge pull request #178 from purdue-aalp/dev
Merging with the last few months of work at Purdue
Diffstat (limited to 'src/gpgpu-sim/scoreboard.h')
-rw-r--r--src/gpgpu-sim/scoreboard.h75
1 files changed, 39 insertions, 36 deletions
diff --git a/src/gpgpu-sim/scoreboard.h b/src/gpgpu-sim/scoreboard.h
index 4a76ea3..1fe0923 100644
--- a/src/gpgpu-sim/scoreboard.h
+++ b/src/gpgpu-sim/scoreboard.h
@@ -7,28 +7,29 @@
//
// Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
-// Redistributions in binary form must reproduce the above copyright notice, this
-// list of conditions and the following disclaimer in the documentation and/or
-// other materials provided with the distribution.
-// Neither the name of The University of British Columbia nor the names of its
-// contributors may be used to endorse or promote products derived from this
-// software without specific prior written permission.
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution. Neither the name of
+// The University of British Columbia nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
#include <stdio.h>
#include <stdlib.h>
-#include <vector>
#include <set>
+#include <vector>
#include "assert.h"
#ifndef SCOREBOARD_H_
@@ -37,29 +38,31 @@
#include "../abstract_hardware_model.h"
class Scoreboard {
-public:
- Scoreboard( unsigned sid, unsigned n_warps );
+ public:
+ Scoreboard(unsigned sid, unsigned n_warps, class gpgpu_t *gpu);
- void reserveRegisters(const warp_inst_t *inst);
- void releaseRegisters(const warp_inst_t *inst);
- void releaseRegister(unsigned wid, unsigned regnum);
+ void reserveRegisters(const warp_inst_t *inst);
+ void releaseRegisters(const warp_inst_t *inst);
+ void releaseRegister(unsigned wid, unsigned regnum);
- bool checkCollision(unsigned wid, const inst_t *inst) const;
- bool pendingWrites(unsigned wid) const;
- void printContents() const;
- const bool islongop(unsigned warp_id, unsigned regnum);
-private:
- void reserveRegister(unsigned wid, unsigned regnum);
- int get_sid() const { return m_sid; }
+ bool checkCollision(unsigned wid, const inst_t *inst) const;
+ bool pendingWrites(unsigned wid) const;
+ void printContents() const;
+ const bool islongop(unsigned warp_id, unsigned regnum);
- unsigned m_sid;
+ private:
+ void reserveRegister(unsigned wid, unsigned regnum);
+ int get_sid() const { return m_sid; }
- // keeps track of pending writes to registers
- // indexed by warp id, reg_id => pending write count
- std::vector< std::set<unsigned> > reg_table;
- //Register that depend on a long operation (global, local or tex memory)
- std::vector< std::set<unsigned> > longopregs;
-};
+ unsigned m_sid;
+ // keeps track of pending writes to registers
+ // indexed by warp id, reg_id => pending write count
+ std::vector<std::set<unsigned> > reg_table;
+ // Register that depend on a long operation (global, local or tex memory)
+ std::vector<std::set<unsigned> > longopregs;
+
+ class gpgpu_t *m_gpu;
+};
#endif /* SCOREBOARD_H_ */