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.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/gpgpu-sim/scoreboard.h b/src/gpgpu-sim/scoreboard.h
new file mode 100644
index 0000000..4139948
--- /dev/null
+++ b/src/gpgpu-sim/scoreboard.h
@@ -0,0 +1,43 @@
+/*
+ * scoreboard.h
+ *
+ * Created on: Aug 10, 2010
+ * Author: inder
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <vector>
+#include <set>
+#include "assert.h"
+
+#ifndef SCOREBOARD_H_
+#define SCOREBOARD_H_
+
+typedef unsigned op_type;
+
+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;
+
+ void reserveRegister(int wid, int regnum);
+ void releaseRegister(int wid, int regnum);
+
+ public:
+ Scoreboard( int sid, int n_warps );
+
+ void printContents();
+
+ void reserveRegisters(int wid, void *inst_void);
+ void releaseRegisters(int wid, void *inst_void);
+
+ bool checkCollision(int wid, void *inst_void);
+
+};
+
+
+#endif /* SCOREBOARD_H_ */