warp scheduler optimization

This commit is contained in:
Blaise Tine
2021-08-12 01:34:35 -07:00
parent cc259f60f6
commit ac454eee79

View File

@@ -196,20 +196,17 @@ module VX_warp_sched #(
assign {join_else, join_pc, join_tm} = ipdom [join_if.wid]; assign {join_else, join_pc, join_tm} = ipdom [join_if.wid];
// round-robin warp scheduling // schedule the next ready warp
wire [`NUM_WARPS-1:0] ready_warps = active_warps & ~(stalled_warps | barrier_stalls); wire [`NUM_WARPS-1:0] ready_warps = active_warps & ~(stalled_warps | barrier_stalls);
VX_rr_arbiter #( VX_priority_encoder #(
.NUM_REQS (`NUM_WARPS) .N (`NUM_WARPS)
) rr_arbiter ( ) rr_arbiter (
.clk (clk), .data_in (ready_warps),
.reset (reset), .index (schedule_wid),
.requests (ready_warps), .valid_out (schedule_valid),
.grant_index (schedule_wid), `UNUSED_PIN (onehot)
.grant_valid (schedule_valid),
`UNUSED_PIN (grant_onehot),
`UNUSED_PIN (enable)
); );
wire [`NUM_WARPS-1:0][(`NUM_THREADS + 32)-1:0] schedule_data; wire [`NUM_WARPS-1:0][(`NUM_THREADS + 32)-1:0] schedule_data;