implementación canalizada en cinco etapas (RISC) de un microprocesador

0

Estoy tratando de resolver dos preguntas sobre un canal RISC de 5 etapas que no es exactamente como el MIPS encontrado aquí (todo está incluido en esta publicación).

Considere la implementación no canalizada de un procesador simple que solo se ejecuta Instrucciones de ALU en la figura. El microprocesador simple tiene que realizar varias tareas. En primer lugar, calcula la dirección de la siguiente instrucción para obtener incrementando el PIC. En segundo lugar, utiliza la PC para acceder al I-cache. Entonces se decodifica la instrucción. El propio decodificador de instrucciones se divide en tareas más pequeñas. Primero, tiene que decodificar el tipo de instrucción. Una vez que se decodifica el código de operación, tiene que decodificar qué unidades funcionales se necesitan para ejecutar la instrucción. Al mismo tiempo, también decodifica qué registros de origen u operandos inmediatos utiliza la instrucción y en qué registro de destino se escribe. Una vez que se completa el proceso de decodificación, se accede al archivo de registro (se accede a los datos inmediatos desde la propia instrucción) para obtener los datos de origen. Luego se activa la función ALU apropiada para calcular los resultados, que luego se escriben de nuevo en el registro de destino. Tenga en cuenta que el retraso de cada bloque se muestra en la figura. Por ejemplo, se necesitan 6 ns para acceder a I-cache, 4 ns para acceder al archivo de registro, etc.

a. Genere una implementación segmentada de 5 etapas (IF, ID1, ID2, EX, WB) del procesador que equilibra cada etapa de canalización, ignorando todos los riesgos de datos. Cada subbloque en el diagrama es una unidad primitiva que no se puede dividir en otros más pequeños. La funcionalidad original debe mantenerse en la implementación segmentada. En otras palabras, no debe haber diferencia en el código de escritura de un programador si esta máquina está canalizada o no. Muestra el diagrama de tu implementación segmentada.

c. ¿Cuáles son los tiempos de ciclo de la máquina (en nano segundos) de las implementaciones no canalizadas y canalizadas?

Intento:

ID1 e ID2 me echan de menos porque MIPS generalmente tiene Capturar, Decodificar, Ejecutar, Codificar, Memoria.

Pero aquí está mi intento

 a) diagram

  F   D1   D2   E   WB 
      F    D1   D2  E   WB 
           F    D1  D2  E   WB
                F   D1  D2  E   WB
                    F   D1  D2  E   WB

c) sin tubería: Esto significaría una progresión secuencial, por lo que 1) calcular la dirección de la siguiente instrucción para obtener incrementando el PIC = 2 + 1 = 3 ns 2) PC para acceder a I-cache = 6ns 3) decodificador de tipo de instrucción = 3.5ns 4) decodificador de función = 3ns 5) fuente, inmediata, destino 2.5 + 3.5 + 4 = 10 ns 6) Registrar archivo = 4ns 6) ALU = 6ns 7) Registrar archivo = 4ns Total = 39.5 ns

canalizado: muy inseguro

    
pregunta Carlo

1 respuesta

3

Bueno, realmente no estoy seguro. Esta descripción de la CPU está incompleta, por ejemplo, no hay sucursales ni acceso a la memoria de datos.

  • Para la versión sin canalización, solo hay un reloj visible, el contador del programa. Es posible calcular la siguiente dirección de PC mientras se realizan las operaciones de ALU, el tiempo de propagación es 6 + 3.5 + 4 + 4 + 1 + 6 = 24.5 ns Todos los decodificadores (fuente, operando ...) son paralelos, por lo que solo el retraso más largo es parte de la "ruta crítica" del tiempo. No hay una indicación clara de la demora necesaria para escribir en el archivo de registro, tal vez 4 ns más.

  • Para la versión canalizada:

F: I-cache: 6ns (en paralelo con la actualización del contador del programa)

ID1: Decodificador de instrucciones: 3.5ns

ID2: Decodificador de destino: 4ns (paralelo con los otros decodificadores, que son más rápidos) + archivo de registro: 4ns

EX: ALU + MUX: 7ns

WB: registro de actualización: ??? ns

El retraso máximo es de alrededor de 8 ns.

Alternativamente, toda la decodificación en ID1 (por lo tanto 7.5ns) y registro de acceso en ID2 (4ns). Tradicionalmente, la ALU es parte de la etapa EXECUTE.

De todos modos, creo que este ejercicio está muy mal escrito.

    
respondido por el TEMLIB

Lea otras preguntas en las etiquetas