Examen: Parcial 3:2025_12_19:Teleco - myTeachingURJC/Arq-computadores-01 GitHub Wiki

Examen Parcial 3: 2025-12-17. Datos

  • Tiempo: 50 minutos
  • Tipo de examen: Presencial. Realizado a través de Aula Virtual. Acceso a la wiki (Internet)
  • Temario: S9,S10,S11 y S12

Contenido

Enunciado

El examen se ha realizado a través de Aula virtual. Tiene dos partes: Test y un problema

Test (5 ptos)

  • Realizado a través de Aula virtual
  • 10 preguntas tipo test
  • Las respuestas incorrectas restan un 33% del valor de la pregunta
  • Solución disponible en Aula virtual

Problema (5 ptos): Ordenacion/alineamiento/direccionamiento

Version 1

Tenemos un computador nRV como el estudiado.

Debido a un fallo de fabricación, los cables de los buses de la salida de las memoria de código y de la entrada a data del banco de registros añaden un retardo de 10ps. En el esquemático se ha indicado con el componente rojo R. Los retardos introducidos por el resto de componentes se describen a continuación:

  • Memoria de instrucciones (lectura): 325ps
  • Sumador: 180ps
  • ALU (Suma): 200ps
  • ALU (Resta): 220ps
  • ALU (AND OR): 200ps
  • Memoria de datos (lectura): 350ps
  • Banco de registros: 120ps
  • Registro PC: 45ps

El resto de retardos se consideran despreciables (0 ps).

Contesta a las siguientes preguntas:

a) Calcula el retardo individual de las fases de Fetch y Decodificación.

b) Calcula el retardo total de la instrucción add x0, x0, x0.

c) Calcula el retardo total de la instrucción ld x5, 0x100(x0).

d) Calcula el retardo total de la instrucción beq x0, x5, 0x100.

e) ¿Cuál es la frecuencia máxima de funcionamiento de este procesador?

f) Si ejecutamos el siguiente fragmento de código:

sd x3, 0(x5)
ld x4, 0(x5)

Indica el retardo máximo que tendría que tener la escritura en la memoria de datos para que funcione correctamente.

Solución al problema

a) Retardo individual de las fases de Fetch y Decodificación

Para calcular estos tiempos, analizamos el camino crítico de cada etapa por separado.

Fase de IF (Instruction Fetch):

El ciclo comienza con el reloj disparando el PC. La instrucción debe atravesar el PC, la memoria y el retardo de fallo $R$ a la salida de esta.

$$T_{Fetch} = T_{PC} + T_{IMem} + R$$

$$T_{Fetch} = 45 + 325 + 10 = \mathbf{380 \text{ ps}}$$

Fase de ID (Instruction Decode):

La decodificación comienza una vez que la instrucción es válida (fin de Fetch). En esta arquitectura, el tiempo relevante es el acceso a lectura del Banco de Registros.

$$T_{Decode} = T_{Reg}$$

$$T_{Decode} = \mathbf{120 \text{ ps}}$$


b) Retardo total de la instrucción add x0, x0, x0

Es importante notar que el fallo $R$ afecta también a la escritura en el banco de registros, y las instrucciones de tipo R guardan el resultado en el banco de registros.

  1. IF + ID: $500 \text{ ps}$
  2. Ejecución (ALU Suma): Se suma el retardo de la ALU: 200ps.
  3. Escritura (WriteBack): El resultado va de la ALU al Banco de Registros pasando por el fallo $R$: 10ps.

$$T_{add} = \mathbf{380 + 120 + 200 + 10 = 710 \text{ ps}}$$

Nota: Considerar el retardo del fallo en la fase de ejecución también estaría bien.


c) Retardo total de la instrucción ld x5, 0x100(x0)

La instrucción de carga (ld) es típicamente la más lenta (camino crítico) al involucrar la memoria de datos.

  1. IF + ID: $500 \text{ ps}$
  2. Cálculo de Dirección (ALU Suma): 200ps.
  3. Acceso a Memoria (Lectura): 350ps
  4. WriteBack: El dato sale de memoria y pasa por $R$ antes de entrar al banco de registros: 10ps

$$T_{ld} = \mathbf{380 + 120 + 200 + 350 + 10 = 1060 \text{ ps}}$$


d) Retardo total de la instrucción beq x0, x5, 0x100

Para los saltos condicionales, no se almacena nada en el banco de registros, pero hay que considerar el retardo del incremento del PC desde que se hace la comparación (fase de ejecución).

  1. IF + ID: $500 \text{ ps}$
  2. Ejecución: Comparación con la ALU (Resta): 220ps.
  3. WriteBack: Sumador: 180ps.

$$T_{add} = \mathbf{380 + 120 + 220 + 180 = 900 \text{ ps}}$$


e) Frecuencia máxima de funcionamiento

La frecuencia máxima está determinada por la instrucción más lenta (camino crítico) que debe completarse en un solo ciclo de reloj. Comparando los retardos calculados:

  • ADD: $710 \text{ ps}$
  • LD: $1060 \text{ ps}$
  • BEQ: $900 \text{ ps}$

El retardo crítico es $T_{crit} = 1060 \text{ ps}$.

$$f_{max} = \frac{1}{T_{crit}} = \frac{1}{1060 \times 10^{-12} \text{ s}}$$

$$f_{max} \approx 943,4 \times 10^6 \text{ Hz} = \mathbf{943,4 \text{ MHz}}$$


f) Retardo máximo de escritura en memoria de datos

Analizamos el fragmento de código:

sd x3, 0(x5)  ; Instrucción Store
ld x4, 0(x5)  ; Instrucción Load que lee el dato que se acaba de guardar

El dato que se guarda en memoria con la instrucción sd, se almacena en el siguiente ciclo de reloj con el nuevo flanco ascendente (la memoria es secuencial para la escritura), es decir, se almacena mientras se ejecuta la siguiente instrucción ld.

Para que ld lea el dato, tiene que haber dado tiempo a guardarse en memoria, antes de acceder a ella, es decir, tiene que guardarse mientras se ejecutan las fases de IF, ID y Ex.

Por lo tanto, el retado máximo tiene que ser de :

$$R_{max} 380 + 120 + 200 = \mathbf{700 \text{ ps}}$$

Version 2

Tenemos un computador nRV como el estudiado.

Debido a un fallo de fabricación, los cables de los buses de la salida de las memoria de código y de la entrada a data del banco de registros añaden un retardo de 10ps. En el esquemático se ha indicado con el componente rojo R. Los retardos introducidos por el resto de componentes se describen a continuación:

  • Memoria de instrucciones (lectura): 325ps
  • Sumador: 180ps
  • ALU (Suma): 200ps
  • ALU (Resta): 210ps
  • ALU (AND OR): 200ps
  • Memoria de datos (lectura): 350ps
  • Banco de registros: 110ps
  • Registro PC: 35ps

El resto de retardos se consideran despreciables (0 ps).

Contesta a las siguientes preguntas:

a) Calcula el retardo individual de las fases de Fetch y Decodificación.

b) Calcula el retardo total de la instrucción add x0, x0, x0.

c) Calcula el retardo total de la instrucción ld x5, 0x100(x0).

d) Calcula el retardo total de la instrucción beq x0, x5, 0x100.

e) ¿Cuál es la frecuencia máxima de funcionamiento de este procesador?

f) Si ejecutamos el siguiente fragmento de código:

sd x3, 0(x5)
ld x4, 0(x5)

Indica el retardo máximo que tendría que tener la escritura en la memoria de datos para que funcione correctamente.

Solución al problema

a) Retardo individual de las fases de Fetch y Decodificación

Para calcular estos tiempos, analizamos el camino crítico de cada etapa por separado.

Fase de IF (Instruction Fetch):

El ciclo comienza con el reloj disparando el PC. La instrucción debe atravesar el PC, la memoria y el retardo de fallo $R$ a la salida de esta.

$$T_{Fetch} = T_{PC} + T_{IMem} + R$$

$$T_{Fetch} = 35 + 325 + 10 = \mathbf{370 \text{ ps}}$$

Fase de ID (Instruction Decode):

La decodificación comienza una vez que la instrucción es válida (fin de Fetch). En esta arquitectura, el tiempo relevante es el acceso a lectura del Banco de Registros.

$$T_{Decode} = T_{Reg}$$

$$T_{Decode} = \mathbf{110 \text{ ps}}$$


b) Retardo total de la instrucción add x0, x0, x0

Es importante notar que el fallo $R$ afecta también a la escritura en el banco de registros, y las instrucciones de tipo R guardan el resultado en el banco de registros.

  1. IF + ID: $480 \text{ ps}$
  2. Ejecución (ALU Suma): Se suma el retardo de la ALU: 200ps.
  3. Escritura (WriteBack): El resultado va de la ALU al Banco de Registros pasando por el fallo $R$: 10ps.

$$T_{add} = \mathbf{370 + 110 + 200 + 10 = 690 \text{ ps}}$$

Nota: Considerar el retardo del fallo en la fase de ejecución también estaría bien.


c) Retardo total de la instrucción ld x5, 0x100(x0)

La instrucción de carga (ld) es típicamente la más lenta (camino crítico) al involucrar la memoria de datos.

  1. IF + ID: $480 \text{ ps}$
  2. Cálculo de Dirección (ALU Suma): 200ps.
  3. Acceso a Memoria (Lectura): 350ps
  4. WriteBack: El dato sale de memoria y pasa por $R$ antes de entrar al banco de registros: 10ps

$$T_{ld} = \mathbf{370 + 110 + 200 + 350 + 10 = 1040 \text{ ps}}$$


d) Retardo total de la instrucción beq x0, x5, 0x100

Para los saltos condicionales, no se almacena nada en el banco de registros, pero hay que considerar el retardo del incremento del PC desde que se hace la comparación (fase de ejecución).

  1. IF + ID: $480 \text{ ps}$
  2. Ejecución: Comparación con la ALU (Resta): 210ps.
  3. WriteBack: Sumador: 180ps.

$$T_{add} = \mathbf{370 + 110 + 210 + 180 = 870 \text{ ps}}$$


e) Frecuencia máxima de funcionamiento

La frecuencia máxima está determinada por la instrucción más lenta (camino crítico) que debe completarse en un solo ciclo de reloj. Comparando los retardos calculados:

  • ADD: $690 \text{ ps}$
  • LD: $1040 \text{ ps}$
  • BEQ: $870 \text{ ps}$

El retardo crítico es $T_{crit} = 1040 \text{ ps}$.

$$f_{max} = \frac{1}{T_{crit}} = \frac{1}{1040 \times 10^{-12} \text{ s}}$$

$$f_{max} \approx 961, \times 10^6 \text{ Hz} = \mathbf{961,5 \text{ MHz}}$$


f) Retardo máximo de escritura en memoria de datos

Analizamos el fragmento de código:

sd x3, 0(x5)  ; Instrucción Store
ld x4, 0(x5)  ; Instrucción Load que lee el dato que se acaba de guardar

El dato que se guarda en memoria con la instrucción sd, se almacena en el siguiente ciclo de reloj con el nuevo flanco ascendente (la memoria es secuencial para la escritura), es decir, se almacena mientras se ejecuta la siguiente instrucción ld.

Para que ld lea el dato, tiene que haber dado tiempo a guardarse en memoria, antes de acceder a ella, es decir, tiene que guardarse mientras se ejecutan las fases de IF, ID y Ex.

Por lo tanto, el retado máximo tiene que ser de :

$$R_{max} 370 + 110 + 200 = \mathbf{680 \text{ ps}}$$

Version 3

Tenemos un computador nRV como el estudiado.

Debido a un fallo de fabricación, los cables de los buses de la salida de las memoria de código y de la entrada a data del banco de registros añaden un retardo de 5ps. En el esquemático se ha indicado con el componente rojo R. Los retardos introducidos por el resto de componentes se describen a continuación:

  • Memoria de instrucciones (lectura): 325ps
  • Sumador: 180ps
  • ALU (Suma): 200ps
  • ALU (Resta): 210ps
  • ALU (AND OR): 200ps
  • Memoria de datos (lectura): 350ps
  • Banco de registros: 120ps
  • Registro PC: 45ps

El resto de retardos se consideran despreciables (0 ps).

Contesta a las siguientes preguntas:

a) Calcula el retardo individual de las fases de Fetch y Decodificación.

b) Calcula el retardo total de la instrucción add x0, x0, x0.

c) Calcula el retardo total de la instrucción ld x5, 0x100(x0).

d) Calcula el retardo total de la instrucción beq x0, x5, 0x100.

e) ¿Cuál es la frecuencia máxima de funcionamiento de este procesador?

f) Si ejecutamos el siguiente fragmento de código:

sd x3, 0(x5)
ld x4, 0(x5)

Indica el retardo máximo que tendría que tener la escritura en la memoria de datos para que funcione correctamente.

Solución al problema

a) Retardo individual de las fases de Fetch y Decodificación

Para calcular estos tiempos, analizamos el camino crítico de cada etapa por separado.

Fase de IF (Instruction Fetch):

El ciclo comienza con el reloj disparando el PC. La instrucción debe atravesar el PC, la memoria y el retardo de fallo $R$ a la salida de esta.

$$T_{Fetch} = T_{PC} + T_{IMem} + R$$

$$T_{Fetch} = 45 + 325 + 5 = \mathbf{375 \text{ ps}}$$

Fase de ID (Instruction Decode):

La decodificación comienza una vez que la instrucción es válida (fin de Fetch). En esta arquitectura, el tiempo relevante es el acceso a lectura del Banco de Registros.

$$T_{Decode} = T_{Reg}$$

$$T_{Decode} = \mathbf{120 \text{ ps}}$$


b) Retardo total de la instrucción add x0, x0, x0

Es importante notar que el fallo $R$ afecta también a la escritura en el banco de registros, y las instrucciones de tipo R guardan el resultado en el banco de registros.

  1. IF + ID: $495 \text{ ps}$
  2. Ejecución (ALU Suma): Se suma el retardo de la ALU: 200ps.
  3. Escritura (WriteBack): El resultado va de la ALU al Banco de Registros pasando por el fallo $R$: 5ps.

$$T_{add} = \mathbf{375 + 120 + 200 + 5 = 700 \text{ ps}}$$

Nota: Considerar el retardo del fallo en la fase de ejecución también estaría bien.


c) Retardo total de la instrucción ld x5, 0x100(x0)

La instrucción de carga (ld) es típicamente la más lenta (camino crítico) al involucrar la memoria de datos.

  1. IF + ID: $495 \text{ ps}$
  2. Cálculo de Dirección (ALU Suma): 200ps.
  3. Acceso a Memoria (Lectura): 350ps
  4. WriteBack: El dato sale de memoria y pasa por $R$ antes de entrar al banco de registros: 5ps

$$T_{ld} = \mathbf{375 + 120 + 200 + 350 + 5 = 1050 \text{ ps}}$$


d) Retardo total de la instrucción beq x0, x5, 0x100

Para los saltos condicionales, no se almacena nada en el banco de registros, pero hay que considerar el retardo del incremento del PC desde que se hace la comparación (fase de ejecución).

  1. IF + ID: $495 \text{ ps}$
  2. Ejecución: Comparación con la ALU (Resta): 210ps.
  3. WriteBack: Sumador: 180ps.

$$T_{add} = \mathbf{375 + 120 + 210 + 180 = 885 \text{ ps}}$$


e) Frecuencia máxima de funcionamiento

La frecuencia máxima está determinada por la instrucción más lenta (camino crítico) que debe completarse en un solo ciclo de reloj. Comparando los retardos calculados:

  • ADD: $700 \text{ ps}$
  • LD: $1050 \text{ ps}$
  • BEQ: $885 \text{ ps}$

El retardo crítico es $T_{crit} = 1050 \text{ ps}$.

$$f_{max} = \frac{1}{T_{crit}} = \frac{1}{1050 \times 10^{-12} \text{ s}}$$

$$f_{max} \approx 952.4 \times 10^6 \text{ Hz} = \mathbf{952,4 \text{ MHz}}$$


f) Retardo máximo de escritura en memoria de datos

Analizamos el fragmento de código:

sd x3, 0(x5)  ; Instrucción Store
ld x4, 0(x5)  ; Instrucción Load que lee el dato que se acaba de guardar

El dato que se guarda en memoria con la instrucción sd, se almacena en el siguiente ciclo de reloj con el nuevo flanco ascendente (la memoria es secuencial para la escritura), es decir, se almacena mientras se ejecuta la siguiente instrucción ld.

Para que ld lea el dato, tiene que haber dado tiempo a guardarse en memoria, antes de acceder a ella, es decir, tiene que guardarse mientras se ejecutan las fases de IF, ID y Ex.

Por lo tanto, el retado máximo tiene que ser de :

$$R_{max} 375 + 120 + 200 = \mathbf{695 \text{ ps}}$$

Autores

Licencia

Enlaces