summaryrefslogtreecommitdiff
path: root/src/gpgpu-sim/scoreboard.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpgpu-sim/scoreboard.h')
-rw-r--r--src/gpgpu-sim/scoreboard.h33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/gpgpu-sim/scoreboard.h b/src/gpgpu-sim/scoreboard.h
index 4139948..6cec22c 100644
--- a/src/gpgpu-sim/scoreboard.h
+++ b/src/gpgpu-sim/scoreboard.h
@@ -14,29 +14,28 @@
#ifndef SCOREBOARD_H_
#define SCOREBOARD_H_
-typedef unsigned op_type;
+#include "../abstract_hardware_model.h"
-class Scoreboard
-{
- private:
- int sid; // Shader id
- // Table to keep track of write-pending registers
- // Indexed by warp id (wid)
- std::vector< std::set<int> > reg_table;
+class Scoreboard {
+public:
+ Scoreboard( unsigned sid, unsigned n_warps );
- void reserveRegister(int wid, int regnum);
- void releaseRegister(int wid, int regnum);
+ void printContents();
- public:
- Scoreboard( int sid, int n_warps );
+ void reserveRegisters(unsigned wid, const inst_t *inst);
+ void releaseRegisters(unsigned wid, const inst_t *inst);
- void printContents();
+ bool checkCollision(unsigned wid, const inst_t *inst);
+ bool pendingWrites(unsigned wid) const;
+private:
+ void reserveRegister(unsigned wid, unsigned regnum);
+ void releaseRegister(unsigned wid, unsigned regnum);
- void reserveRegisters(int wid, void *inst_void);
- void releaseRegisters(int wid, void *inst_void);
-
- bool checkCollision(int wid, void *inst_void);
+ unsigned m_sid;
+ // keeps track of pending writes to registers
+ // indexed by warp id
+ std::vector< std::set<int> > reg_table;
};