diff options
| author | Fabian Montero <fabian@posixlycorrect.com> | 2023-10-04 23:47:04 -0600 |
|---|---|---|
| committer | Fabian Montero <fabian@posixlycorrect.com> | 2023-10-04 23:47:04 -0600 |
| commit | 568079218823a92884146d3aee02e4e161d413e4 (patch) | |
| tree | d255740c6996946a944ec846ae03c2161e6ad103 /rtl/cache/cache_control.sv | |
| parent | 89d73871aae34573b8ed637c58eee1045f650f0e (diff) | |
documeenta el anillo
Diffstat (limited to '')
| -rw-r--r-- | rtl/cache/cache_control.sv | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/rtl/cache/cache_control.sv b/rtl/cache/cache_control.sv index afad53c..f93e55b 100644 --- a/rtl/cache/cache_control.sv +++ b/rtl/cache/cache_control.sv @@ -140,6 +140,16 @@ module cache_control in_data_ready = !in_hold_valid; + // Maquina de estados maestra de la SRAM. + // + // Esta maquina define a lo que el controlador de SRAM está dándole + // prioridad, ya que SRAM tiene un único puerto de read/write, + // entonces tiene que decidir si le da prioridad al core o al bus. + // + // ACCEPT: recibiendo mensajes + // CORE: cosas relacionadas a cada core específico (monitor, etc.) + // SNOOP: vigilando memoria y "ejecutando" MESI + // REPLY: enviando mensajes unique case (state) ACCEPT: begin // Si es el último nodo en recibir el mensaje y la request no es de lectura @@ -338,6 +348,14 @@ module cache_control next_state = ACCEPT; unique case (state) + // Le da prioridad a SNOOP, ya que la prioridad está en + // hacer forward de mensajes. + + // Es mejor darle prioridad al SNOOP, ya que si se le da prioridad + // a CORE, podrían suceder deadlocks o alunos mensajes nunca + // podrían terminar de enviarse. + + // El orden de prioridad es SNOOP y REPLY, DEBUG, CORE ACCEPT: begin if (accept_snoop) next_state = SNOOP; |
