Decodifica una instrucción con inmediato negativo
Pasa 0xFFF28293 a binario y separa sus campos. Indica el formato, el opcode, los registros, funct3 y el valor decimal del inmediato.
0xFFF28293
Práctica
Para hacerlos te basta con papel y la tabla de formatos del itinerario RISC-V.
Pasa 0xFFF28293 a binario y separa sus campos. Indica el formato, el opcode, los registros, funct3 y el valor decimal del inmediato.
0xFFF28293
Identifica los campos de 0x40B50533. Presta atención a funct7: es lo que distingue add de sub.
0x40B50533
Mira solo los 7 bits bajos de cada palabra (el último dígito hexadecimal y medio) y di a qué formato pertenece.
Ejecuta el programa a mano. ¿Qué valen t2 y a0 al terminar?
li t0, 7 li t1, 3 sub t2, t0, t1 slli t2, t2, 2 xor a0, t2, t0
¿Cuánto vale a0 al salir del bucle? ¿Cuántas instrucciones se ejecutan en total (contando cada vuelta)?
li a0, 1 li t0, 4 loop: add a0, a0, a0 addi t0, t0, -1 bnez t0, loop
En el cauce de 5 etapas del simulador, ¿cuántos ciclos tarda esta secuencia con forwarding y sin forwarding? ¿Cuántas burbujas hay con forwarding?
lw t0, 0(a0) add t1, t0, t0 sub t2, t1, a1
Dos instrucciones cargan constantes y la tercera las suma. ¿Qué valor queda en a0?
addi t0, zero, 5 addi t1, zero, 7 add a0, t0, t1
¿Cuánto vale a0 al terminar y cuántas instrucciones se ejecutan?
li a0, 1 j skip li a0, 2 skip: addi a0, a0, 10
lui carga 0x80000 en los 20 bits altos de t0. ¿Qué valen t1 y t2 en decimal?
lui t0, 0x80000 addi t1, t0, -1 slt t2, t1, t0
La rutina triple recibe un número en a0 y devuelve el resultado en a0. ¿Qué valen a0 y ra al terminar?
li a0, 6 jal ra, triple j end triple: add a1, a0, a0 add a0, a1, a0 ret end: nop
En el orden original (lw, add, addi, sw) hay una burbuja de carga-uso y la secuencia tarda 9 ciclos con forwarding. Aquí addi se ha movido entre lw y add. ¿Cuántos ciclos tarda ahora con forwarding y cuántas burbujas quedan?
lw t0, 0(a0) addi t2, a1, 4 add t1, t0, t0 sw t1, 0(a2)
El simulador resuelve los saltos en EX y los trata como tomados. ¿Cuántos ciclos tarda la secuencia con forwarding y cuántas instrucciones se descartan?
addi t0, t0, -1 bne t0, zero, loop addi a0, a0, 1 addi a1, a1, 1
Las respuestas se comparan con la tabla de verdad completa, así que cualquier expresión equivalente y mínima se acepta. Repasa antes el itinerario de lógica digital.
Marca en el mapa de 4 variables las celdas de F(A,B,C,D) = Σm(3, 6, 11, 12, 14). Las filas son AB y las columnas CD, ambas en código Gray.
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
En un mapa de 4 variables, ¿qué celdas son adyacentes a m8? Marca todas: recuerda que los bordes opuestos también se tocan.
| AB \ CD | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | ||||
| 01 | ||||
| 11 | ||||
| 10 |
Escribe una suma de productos mínima para F(A,B,C,D) = Σm(1, 3, 7, 11, 15) + d(0, 2, 5). Usa A, B, C, D y un apóstrofo para negar (por ejemplo A'B).
Sintaxis: productos juntos (AB), suma con +, negación con apóstrofo (A') o con ! delante.
Un compañero propone F = A'B' + BC' + AB para F(A,B,C) = Σm(0, 1, 2, 5, 6, 7). ¿Es correcta? Si no lo es, marca un minitérmino donde falle.
F = A'B' + BC' + AB