General → IFU – Unidad de Búsqueda de Instrucción
1. El pipeline del núcleo SPARC
Hay seis etapas en el pipeline del núcleo SPARC:
- Búsqueda – Etapa F
- Selección de hilo – Etapa S
- De-codificación - Etapa D
- Ejecución – Etapa E
- Memoria – Etapa M
- Contestación – Etapa W
El acceso de la caché de Instrucción y el acceso ITLB tienen lugar en la etapa F. La selección del hilo (hardware) se realiza en la etapa S. La decodificación de la instrucción y el acceso a los registros suceden en la etapa D. La evaluación de la rama se hace en la etapa E. El acceso a memoria y la respuesta se realiza en las etapas M y W. La figura siguiente ilustra el pipeline y las estructuras involucradas.

Core Pipeline
La Cola de Llenado de Instrucción (IFQ) alimenta la caché de instrucción. La Lista de Instrucciones perdidas (MIL) guarda las direcciones que fallaron la caché de instrucción (I-Cache) y la ITLB, y la MIL alimenta la Unidad de Almacén de Carga (LSU) para futuros procesamientos. El búfer de instrucción es de dos niveles de profundidad, e incluye la Unidad de Instrucción de Hilo (TIR) y la de Próxima Instrucción (NIR). La Selección del Hilo y el Planificador (etapa S) resuelve el arbitraje entre el TIR, el NIR, el PC de la rama, el PC de interrupciones para coger un hilo y mandarlo a la etapa de decodificación (D). La siguiente figura muestra la porción del pipeline del hilo:
2. Búsqueda de Instrucción
La Unidad de Búsqueda de Instrucción (IFU) mantiene los contadores de programa (PC) y los próximos contadores de programa (NPC) de todas las instrucciones vivas ejecutadas en el procesador. Por cada ciclo de reloj del núcleo, dos instrucciones son buscadas por cada instrucción usada. Esta relación de dos búsquedas por cada uso tiene la intención de reducir el acceso a la I-Cache para llenar la I-Cache de forma oportunista. A cada hilo le está permitido tener un fallo de I-Cache pendiente, y el núcleo SPARC permite un total de cuatro fallos de I-cache. Fallos duplicados de I-cache no inducen la carga redundante al nivel 2 de caché (L2-caché).
3. Registros de instrucción y registros de Contador de Programa
En el búfer de instrucción, hay dos registros de instrucción por hilo: el registro de instrucción del hilo (TIR) y el registro de próxima instrucción del hilo (NIR). El TIR contiene el la instrucción actual del hilo el la etapa de selección del hilo (etapa S), y el NIR contiene la siguiente instrucción. Un fallo en la carga de la I-cache, evita la I-cache y escribe directamente a la TIR, pero nunca escribe en la NIR.
El planificador de hilos selecciona una instrucción válida del TIR. Después de la selección de un instrucción válida, ésta será movida del NIR al TIR. Si no hay una instrucción válida en el TIR, una istrucción de No Operación (NOP) es insertada.
Hay un registro de contador de programa (PC) por hilo. El contador de próximo programa (NPC) puede venir de una de las siguientes fuentes:
1. Rama
2. PC de interrupción
3. NPC de interrupción
4. Rollback (un hilo revertido debido a un fallo de carga)
5. PC + 4
La IFU rastrea el PC y el NPC a través de la etapa W. El último PC retirado es guardado in la unidad lógica de interrupción (TLU), y si ocurre una interrupción, también sera guardada en la pila de la interrupción.
4. La caché de instrucción de nivel 1
La caché de instrucción es nombrada comunmente como caché de instrucción de nivel 1 (L1I).
[Artículo sin terminar]


