diff options
Diffstat (limited to 'src/gpgpu-sim/scoreboard.h')
| -rw-r--r-- | src/gpgpu-sim/scoreboard.h | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/src/gpgpu-sim/scoreboard.h b/src/gpgpu-sim/scoreboard.h index a4baa19..1fe0923 100644 --- a/src/gpgpu-sim/scoreboard.h +++ b/src/gpgpu-sim/scoreboard.h @@ -7,28 +7,29 @@ // // Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. -// Redistributions in binary form must reproduce the above copyright notice, this -// list of conditions and the following disclaimer in the documentation and/or -// other materials provided with the distribution. -// Neither the name of The University of British Columbia nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. +// Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. Neither the name of +// The University of British Columbia nor the names of its contributors may be +// used to endorse or promote products derived from this software without +// specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. #include <stdio.h> #include <stdlib.h> -#include <vector> #include <set> +#include <vector> #include "assert.h" #ifndef SCOREBOARD_H_ @@ -37,31 +38,31 @@ #include "../abstract_hardware_model.h" class Scoreboard { -public: - Scoreboard( unsigned sid, unsigned n_warps, class gpgpu_t* gpu ); + public: + Scoreboard(unsigned sid, unsigned n_warps, class gpgpu_t *gpu); - void reserveRegisters(const warp_inst_t *inst); - void releaseRegisters(const warp_inst_t *inst); - void releaseRegister(unsigned wid, unsigned regnum); + void reserveRegisters(const warp_inst_t *inst); + void releaseRegisters(const warp_inst_t *inst); + void releaseRegister(unsigned wid, unsigned regnum); - bool checkCollision(unsigned wid, const inst_t *inst) const; - bool pendingWrites(unsigned wid) const; - void printContents() const; - const bool islongop(unsigned warp_id, unsigned regnum); -private: - void reserveRegister(unsigned wid, unsigned regnum); - int get_sid() const { return m_sid; } + bool checkCollision(unsigned wid, const inst_t *inst) const; + bool pendingWrites(unsigned wid) const; + void printContents() const; + const bool islongop(unsigned warp_id, unsigned regnum); - unsigned m_sid; + private: + void reserveRegister(unsigned wid, unsigned regnum); + int get_sid() const { return m_sid; } - // keeps track of pending writes to registers - // indexed by warp id, reg_id => pending write count - std::vector< std::set<unsigned> > reg_table; - //Register that depend on a long operation (global, local or tex memory) - std::vector< std::set<unsigned> > longopregs; + unsigned m_sid; - class gpgpu_t* m_gpu; -}; + // keeps track of pending writes to registers + // indexed by warp id, reg_id => pending write count + std::vector<std::set<unsigned> > reg_table; + // Register that depend on a long operation (global, local or tex memory) + std::vector<std::set<unsigned> > longopregs; + class gpgpu_t *m_gpu; +}; #endif /* SCOREBOARD_H_ */ |
