Logo UltraSPARC Driven

Microprocesador UltraSPARC-IIi


  • Etapas del pipeline
  • Fetch. Hasta cuatro instrucciones son leídas desde la caché de instrucciones.
  • Decode. Después de la etapa fetch, las instrucciones son predecodificadas y entonces insertadas en el buffer de instrucciones.
  • Group. La tarea principal aquí es ensamblar un grupo de hasta cuatro instrucciones y todas ellas son despachadas en un solo ciclo. De este grupo de cuatro, dos pueden ser de enteros y dos pueden ser de punto flotante o gráficas. El archivo de registro de enteros es accesado en esta etapa.
  • Execute. Las dos ALU's de enteros procesan datos desde el archivo de registro de enteros. Los resultados son computados y, vía bypassing, se ponen a disposición de otras instrucciones dependientes en el siguiente ciclo. En esta etapa también se calcula las direcciones virtuales para las operaciones de memoria, en paralelo con la computación de la ALU. En cuanto a punto flotante y gráficas, el archivo de registro de punto flotante es accesado durante esta etapa.
  • Cache. La dirección virtual de las operaciones de memoria calculadas en la etapa de execute es enviada al tag de la RAM para determinar si el acceso (load o store) es un acierto o desacierto en el caché de datos. En forma paralela, la dirección virtual es también enviada a la unidad de administración de memoria de datos (DMMU) para ser traducidas en un dirección física. Las operaciones ALU de la etapa execute generan códigos de condiciones en esta etapa. Estos códigos son enviados a la unidad de prefecth y dispatch (PDU), el cual chequea si un salto condicional en el grupo fue correctamente predecido. En caso de una mala predicción, las instrucciones en el pipeline son limpiadas, y las instrucciones correctas son traídas. Las instrucciones de punto flotante y gráficas comienzan su ejecución durante la etapa X1.
  • N1. Un caché de dato acertado o errado es determinado en esta etapa. Si un load erra un caché de dato, entra al load buffer. La dirección física de un store es enviada al store buffer en esta etapa.
  • N2. El pipe de enteros espera el pipe de punto flotante. La mayoría de las instrucciones de punto flotante y gráficas finalizan su ejecución durante esta etapa. Después de N2, los datos pueden ser desviados a otras etapas,
  • N3. Los bloqueos son resueltos en esta etapa.
  • Write. En esta etapa todos los resultados son escritos en los archivos de registros de la arquitectura (enteros y punto flotante). Una vez completada esta etapa, las instrucciones son consideradas terminadas.

 


Anterior Inicio Siguiente