
Modos de direccionamiento y formatos de instrucción
En esta lección exploraremos los conceptos clave de los modos de direccionamiento y los formatos de instrucción que aparecen en la mayoría de las arquitecturas de procesador. Cada apartado…

En una arquitectura RISC-V, ¿qué modo de direccionamiento se utiliza para la instrucción 'addi Rd, Rs1, imm'?
Si una instrucción de 32 bits utiliza 12 bits para la dirección de un operando, ¿cuántas ubicaciones de memoria pueden direccionarse directamente?
En una arquitectura little‑endian, ¿cómo se almacenan los bytes del valor 0x01234567 en memoria?
¿Cuál de los siguientes tipos de arquitectura tiene la mayor cantidad de accesos a memoria por instrucción típica?
En el modo de direccionamiento indirecto por registro, ¿qué representa el registro especificado en la instrucción?
Una instrucción de formato R en RISC‑V tiene campos para opcode, rd, rs1, rs2 y funct3. ¿Qué limitación impone este formato al número de operandos explícitos?
En una arquitectura con alineación de 4 bytes, ¿cuál de las siguientes direcciones está alineada?
¿Qué ocurre si un procesador que no permite accesos a datos no alineados intenta cargar una palabra desde la dirección 0x00000005?
En el contexto de la ecuación básica de rendimiento T = N * CPI * tc, ¿qué factor se reduce al disminuir el número de instrucciones ejecutadas (N) sin cambiar CPI ni frecuencia?
Modos de direccionamiento y formatos de instrucción
En esta lección exploraremos los conceptos clave de los modos de direccionamiento y los formatos de instrucción que aparecen en la mayoría de las arquitecturas de procesador. Cada apartado está pensado para responder a preguntas típicas de exámenes de informática y para mejorar el posicionamiento SEO mediante el uso de palabras clave relevantes como "registro", "memoria principal", "RISC‑V", "little‑endian" y "alineación de bytes".
Ventajas de los bancos de registros
Un banco de registros es un conjunto de pequeñas unidades de almacenamiento interno al CPU. La principal ventaja de utilizarlos en lugar de almacenar resultados intermedios en la memoria principal es la reducción drástica de accesos a memoria, lo que incrementa la velocidad de ejecución. Cada acceso a registro suele completarse en un ciclo de reloj, mientras que un acceso a memoria puede requerir varios ciclos.
- Menor latencia: los registros están físicamente más cerca del núcleo de ejecución.
- Mayor ancho de banda: se pueden leer y escribir varios registros simultáneamente.
- Facilitan la paralelización de instrucciones en pipelines.
Modo de direccionamiento inmediato en RISC‑V
En la arquitectura RISC‑V, la instrucción addi Rd, Rs1, imm utiliza direccionamiento inmediato. El operando imm (inmediato) está codificado directamente dentro de la propia instrucción, lo que permite que la CPU lo lea sin necesidad de acceder a memoria adicional.
Este modo es típico en operaciones aritméticas que requieren constantes pequeñas, como sumas de desplazamiento o ajustes de punteros.
Capacidad de direccionamiento con bits limitados
Cuando una instrucción de 32 bits reserva 12 bits para la dirección de un operando, el número de ubicaciones de memoria que pueden ser direccionadas directamente es 2^12. Cada combinación de los 12 bits representa una dirección única, lo que equivale a 4 096 ubicaciones distintas.
Representación little‑endian de datos
En una arquitectura little‑endian, los bytes de un valor multibyte se almacenan en memoria comenzando por el byte menos significativo. Por ejemplo, el valor hexadecimal 0x01234567 se guarda como:
- Byte 0:
0x67 - Byte 1:
0x45 - Byte 2:
0x23 - Byte 3:
0x01
En notación de bytes separados por espacios, la secuencia es 76 54 32 10 (hexadecimal invertido).
Comparación de arquitecturas según accesos a memoria
Entre los tipos de arquitectura más comunes, la arquitectura de pila (cero direcciones) es la que realiza la mayor cantidad de accesos a memoria por instrucción típica. Cada operación implícita (push, pop, add, etc.) implica al menos una lectura y una escritura en la pila, que está ubicada en memoria.
En contraste, las arquitecturas load‑store (dos direcciones) limitan los accesos a memoria a instrucciones específicas de carga y almacenamiento, mientras que las arquitecturas registro‑memoria y de acumulador tienen menos accesos por instrucción.
Direccionamiento indirecto por registro
En el modo de direccionamiento indirecto por registro, el registro especificado en la instrucción contiene la dirección de memoria donde se encuentra el operando real. El flujo es:
- La CPU lee el registro indicado.
- El contenido del registro se interpreta como una dirección de memoria.
- Se accede a esa dirección para obtener el operando.
Este modo permite una gran flexibilidad, ya que cambiar el contenido del registro modifica dinámicamente la ubicación del operando sin alterar la instrucción.
Formato R de RISC‑V y limitaciones de operandos
El formato R en RISC‑V incluye los campos opcode, rd, rs1, rs2 y funct3. Debido a esta estructura, el número máximo de operandos explícitos es tres: dos fuentes (rs1 y rs2) y un destino (rd). No es posible codificar más operandos sin cambiar a otro formato (I, S, B, etc.).
Alineación de direcciones a 4 bytes
Una dirección está alineada a 4 bytes si su valor es múltiplo de 4. En hexadecimal, los múltiplos de 4 terminan en 0, 4, 8 o C. De las opciones propuestas, solo 0x00000004 cumple esta condición.
- Resumen de puntos clave
- Una dirección está alineada a 4 bytes si es múltiplo de 4.
- Los múltiplos de 4 terminan en binario …00 y en hexadecimal en 0, 4, 8 o C.
- De las opciones dadas, solo 0x00000004 está alineada.
- Cómo recordarlo
- Mnemotécnico: “4 bytes → termina en 4” (piensa en “cuatro = cuadra”).
- Consejo: verifica siempre el último dígito hexadecimal; si es 0, 4, 8 o C, la dirección está alineada a 4 bytes.
Resumen general
Los conceptos revisados son fundamentales para comprender cómo los procesadores interpretan y ejecutan instrucciones:
- Los bancos de registros mejoran el rendimiento al reducir accesos a memoria.
- El modo inmediato permite incluir constantes directamente en la instrucción.
- El número de bits dedicados a direcciones determina la capacidad de direccionamiento.
- Little‑endian invierte el orden de los bytes al almacenar valores multibyte.
- Las arquitecturas de pila generan más accesos a memoria que otras.
- El direccionamiento indirecto por registro usa el contenido del registro como puntero.
- El formato R de RISC‑V limita a tres operandos explícitos.
- La alineación de direcciones garantiza accesos eficientes a la memoria.
Dominar estos temas es esencial para diseñar, optimizar y depurar código a bajo nivel, así como para preparar exámenes de arquitectura de computadoras.
