diff options
Diffstat (limited to 'src/gpgpu-sim/scoreboard.h')
| -rw-r--r-- | src/gpgpu-sim/scoreboard.h | 43 |
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_ */ |
