diff options
| author | Davit Grigoryan <[email protected]> | 2026-04-14 03:06:42 +0000 |
|---|---|---|
| committer | Davit Grigoryan <[email protected]> | 2026-04-14 03:06:42 +0000 |
| commit | 305c5ea8fed5bca224377c1bdd8c726fac0f926f (patch) | |
| tree | 549f408023103f33d6b074293e7f25f467590fc1 /src/gpgpu-sim/scoreboard.h | |
| parent | 2c3524751b9b175514970c768637266bbed08767 (diff) | |
create separate scoreboard for I-Buf's second slot; fix other minor issues
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; }; |
