From 7da201cb86702aca80407b94858c380fd90aba38 Mon Sep 17 00:00:00 2001 From: Tim Rogers Date: Sat, 6 Jul 2013 12:22:34 -0800 Subject: Integrating changes from my personal branch. Main contribution is a static warp limiting scheduler. There is also some minor cleanup to the heirarchy of the cache code and removal some excessively long lines Review ID: 36001 lgtm: 1 [git-p4: depot-paths = "//depot/gpgpu_sim_research/fermi/distribution/": change = 16580] --- src/gpgpu-sim/shader.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/gpgpu-sim/shader.h') diff --git a/src/gpgpu-sim/shader.h b/src/gpgpu-sim/shader.h index 76133e2..7c99ac5 100644 --- a/src/gpgpu-sim/shader.h +++ b/src/gpgpu-sim/shader.h @@ -279,6 +279,7 @@ enum concrete_scheduler CONCRETE_SCHEDULER_LRR = 0, CONCRETE_SCHEDULER_GTO, CONCRETE_SCHEDULER_TWO_LEVEL_ACTIVE, + CONCRETE_SCHEDULER_WARP_LIMITING, NUM_CONCRETE_SCHEDULERS }; @@ -452,6 +453,28 @@ private: unsigned m_max_active_warps; }; +// Static Warp Limiting Scheduler +class swl_scheduler : public scheduler_unit { +public: + swl_scheduler ( shader_core_stats* stats, shader_core_ctx* shader, + Scoreboard* scoreboard, simt_stack** simt, + std::vector* warp, + register_set* sp_out, + register_set* sfu_out, + register_set* mem_out, + int id, + char* config_string ); + virtual ~swl_scheduler () {} + virtual void order_warps (); + virtual void done_adding_supervised_warps() { + m_last_supervised_issued = m_supervised_warps.begin(); + } + +protected: + scheduler_prioritization_type m_prioritization; + unsigned m_num_warps_to_limit; +}; + class opndcoll_rfu_t { // operand collector based register file unit -- cgit v1.3