diff --git a/src/cache_subsystem/lru_4way.sv b/src/cache_subsystem/lru_4way.sv
index abfd4a45c7771493add368fcc20a65b6a3feb09d..2a3235ca8783759106ebdb398d1c81d23c2840c9 100644
--- a/src/cache_subsystem/lru_4way.sv
+++ b/src/cache_subsystem/lru_4way.sv
@@ -47,15 +47,13 @@ module lru_4way (
   // assign ways[3] = (ages_i[4]) ? ordered_ways[2] : ordered_ways[3];
 
   assign evicted_o = ways[3];
+  assign updated_o = miss_i || (ways[0] != hit_i) || (ways[1] != ages_i[3:2]);
 
   always_comb begin : encode
     ages_o = ages_i;
     new_ways = ways[2:0];
-    updated_o = 1'b0;
 
     if (miss_i || ways[0] != hit_i) begin
-      updated_o = 1'b1;
-
       if (miss_i || ways[1] != hit_i) begin
         new_ways[0] = (miss_i) ? ways[3] : hit_i;
         new_ways[1] = ways[0];
@@ -64,8 +62,6 @@ module lru_4way (
         new_ways[0] = ways[1];
         new_ways[1] = ways[0];
       end
-    end else if (ways[1] != ages_i[3:2]) begin
-      updated_o = 1'b1;
     end
 
     new_ways_ordered[0] = (new_ways[0] < new_ways[1]) ? new_ways[0] : new_ways[1];