diff options
Diffstat (limited to 'src/gpgpu-sim/scoreboard.h')
| -rw-r--r-- | src/gpgpu-sim/scoreboard.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/gpgpu-sim/scoreboard.h b/src/gpgpu-sim/scoreboard.h index 1fe0923..9bf51e6 100644 --- a/src/gpgpu-sim/scoreboard.h +++ b/src/gpgpu-sim/scoreboard.h @@ -50,6 +50,12 @@ class Scoreboard { void printContents() const; const bool islongop(unsigned warp_id, unsigned regnum); + // Secondary scoreboard for intra-warp co-issue (split-level tracking) + void reserveRegisterSecondary(unsigned wid, unsigned regnum); + void releaseRegisterSecondary(unsigned wid, unsigned regnum); + bool checkCollisionSecondary(unsigned wid, const inst_t *inst) const; + void clearSecondary(unsigned wid); + private: void reserveRegister(unsigned wid, unsigned regnum); int get_sid() const { return m_sid; } @@ -62,6 +68,9 @@ class Scoreboard { // Register that depend on a long operation (global, local or tex memory) std::vector<std::set<unsigned> > longopregs; + // Secondary path register tracking (for I-Buffer half 1, intra-warp co-issue) + std::vector<std::set<unsigned> > sec_reg_table; + class gpgpu_t *m_gpu; }; |
