mirror of
https://github.com/vortexgpgpu/vortex.git
synced 2025-04-23 21:39:10 -04:00
scoreboard arbiter optimization
This commit is contained in:
parent
2651632884
commit
ed0c1a778f
1 changed files with 6 additions and 7 deletions
|
@ -96,7 +96,7 @@ module VX_scoreboard import VX_gpu_pkg::*; #(
|
|||
`endif
|
||||
|
||||
VX_ibuffer_if staging_if [PER_ISSUE_WARPS]();
|
||||
wire [PER_ISSUE_WARPS-1:0][3:0] staging_opds_busy;
|
||||
reg [PER_ISSUE_WARPS-1:0] operands_ready;
|
||||
|
||||
for (genvar i = 0; i < PER_ISSUE_WARPS; ++i) begin
|
||||
VX_elastic_buffer #(
|
||||
|
@ -241,6 +241,7 @@ module VX_scoreboard import VX_gpu_pkg::*; #(
|
|||
end
|
||||
end
|
||||
operands_busy <= operands_busy_n;
|
||||
operands_ready[i] <= ~(| operands_busy_n);
|
||||
`ifdef PERF_ENABLE
|
||||
if (staging_fire && staging_if[i].data.wb) begin
|
||||
inuse_units[staging_if[i].data.rd] <= staging_if[i].data.ex_type;
|
||||
|
@ -251,8 +252,6 @@ module VX_scoreboard import VX_gpu_pkg::*; #(
|
|||
`endif
|
||||
end
|
||||
|
||||
assign staging_opds_busy[i] = operands_busy;
|
||||
|
||||
`ifdef SIMULATION
|
||||
reg [31:0] timeout_ctr;
|
||||
|
||||
|
@ -290,10 +289,9 @@ module VX_scoreboard import VX_gpu_pkg::*; #(
|
|||
wire [PER_ISSUE_WARPS-1:0] arb_ready_in;
|
||||
|
||||
for (genvar i = 0; i < PER_ISSUE_WARPS; ++i) begin
|
||||
wire operands_ready = ~(| staging_opds_busy[i]);
|
||||
assign arb_valid_in[i] = staging_if[i].valid && operands_ready;
|
||||
assign arb_valid_in[i] = staging_if[i].valid && operands_ready[i];
|
||||
assign arb_data_in[i] = staging_if[i].data;
|
||||
assign staging_if[i].ready = arb_ready_in[i] && operands_ready;
|
||||
assign staging_if[i].ready = arb_ready_in[i] && operands_ready[i];
|
||||
end
|
||||
|
||||
`RESET_RELAY (arb_reset, reset);
|
||||
|
@ -302,7 +300,8 @@ module VX_scoreboard import VX_gpu_pkg::*; #(
|
|||
.NUM_INPUTS (PER_ISSUE_WARPS),
|
||||
.DATAW (DATAW),
|
||||
.ARBITER ("R"),
|
||||
.OUT_BUF (2)
|
||||
.LUTRAM (1),
|
||||
.OUT_BUF (4) // using 2-cycle EB for area reduction
|
||||
) out_arb (
|
||||
.clk (clk),
|
||||
.reset (arb_reset),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue