-
Notifications
You must be signed in to change notification settings - Fork 0
04.ThePipelineWindow
nonodev96 edited this page Jun 28, 2022
·
5 revisions
Como se ha explicado en el manual del DLX, esta ventana representa las 5 etapas que puede encontrarse una instrucción en el microprocesador.
Esto nos permite visualizar que dato se está calculando en cada momento, ver cuanto tiempo va a estar en cada etapa, etc.
| Etapa | Descripción |
|---|---|
| IF | Unidad de captación de instrucción. |
| Típicamente referida como la "unidad de carga" en terminología moderna. | |
| ID | Unidad de descodificación de instrucción. |
| Esta unidad toma la instrucción del IF, y extrae el opcode y los operandos. | |
| También obtiene los valores en registros si es necesario. | |
| EX | Unidad de ejecución. |
| Ejecuta la instrucción, normalmente referido como ALU en terminología moderna. | |
| MEM | Unidad de acceso a memoria. |
| Obtiene los datos o los escribe para las instrucciones de almacenamiento. | |
| Controlada desde las etapas de ID y EX. | |
| WB | Unidad de escritura. |
| Llamada a la unidad de almacenamiento en terminología moderna. | |
| Es la unidad encargada de escribir los resultados en los registros de destino. |
Hay unas etapas intermedias en EX que representan el cálculo de datos decimales como divisiones, calculus de multiplicaciones o sumas.
Debemos tener en cuenta la configuración de la máquina, ya que en función de esta configuración podremos tener una unidad o varias.
Ejemplo parcial de los datos que responde el servidor para representar el cauce (Pipeline) en una de sus etapas.
{
"pipeline": {
"IF": {
"address": "0x00000118",
"addressRow": 6,
"draw": true
},
"ID": {
"address": "0x00000114",
"addressRow": 5,
"draw": true
},
"intEX": {
"address": "0x00000110",
"addressRow": 4,
"draw": true
},
"MEM": {
"address": "0x0000010C",
"addressRow": 3,
"draw": true
},
"WB": {
"address": "0x00000108",
"addressRow": 2,
"draw": true
},
"faddEX": [],
"fmultEX": [],
"fdivEX": [],
"arrows": []
}
}