Tema 3: Diseño de Repertorio de Instrucciones


2.- Calcificación de las Arquitecturas a Nivel de Lenguaje Máquina

Tipo de Almacenamiento Interno de la CPU:

- Pila ( Push A; Push B; Add; Pop C)
- Acumulador ( Load A; Add B; Store C)
- Reg Propósito General ( Load R1,A; Load R2,B; Add R1,R2; Store C,R1 )

3.- Almacenamiento de Operandos en Memoria
(Máquina Registros Propósito General)

Función: Calcula valores de expresiones

Contención de Variables: Reducción Tráfico de Mem y Mejora Densidad Código

Reg Propósito General: Naturaleza de los Oper en una Inst Aritmetico-Logica. 2 Fuentes y 1 Destino. Nº Oper Dir en Mem [0-3]

* Reg - Reg -> Inst Long Fija
* Reg - Mem -> Datos Accedidas sin necesidad de carga
* Mem - Mem -> Mas compacta. No Reg Temporales

4.- Direccionamiento de Memoria

Independientemente de la Arquitectura, se debe definir las Dir de Mem y su Especificación.

Byte ( 8 bits) Orden de bytes -> Lyttle Endian Posición menos significativa
Media Palabra (16 bits) -> Big Endian Posición mas significativa
Palabra (32 bits)
Doble Palabra (64 bits) Acceso a los Obj mayores de 1 b deben están alineados

Modos de Direccionamiento:
Especifican una cte, Reg o Pos. Mem Dependen del Contador de Prog (Relativos al PC)
* Ortogonal: Uso de todos los Modos de Dir en todas las Inst.

- Registro R3  
- Inmediato #3 Rango de Valores Inmediatos afecta a la long de la Inst
- Desplazamiento 100(R1) [100+R1] Rango Desp. afecta a la long de la Inst
- Indirecto (R1) M[R1]
- Indexado (R1+R2) M[R1+R2]
- Absoluto (1001) M[1001]
- Diferido de Mem @(R3) => M[M[R3]]
- Autoincremento (R2)+ Postincremento
- Autodecremento -(R2) Predecremento
- Indice 100(R2)[R3] => M[100+R2+R3·d]

Codificación de los Modos de Dir

1.- Nº Reg y Modos Dir Alto
2.- Impacto Tamaño Campos en el tamaño medio de Inst
3.- Long. Inst. fáciles de manejar (bytes)

5.- Operaciones del Repertorio de Instrucciones

Instrucciones para el Flujo de Control

- Saltos Condicionales: Dependen de si se cumple la condición

# Relativos al PC
# Independientes de Posición

- Bifurcaciones: Saltos Efectivos

- Llamadas a Procedimientos: Transferir Control (Guarda el Estado)

# Guarda-Llamador: Guarda los Reg que quiere Preservar
# Guarda-Llamado: Guarda los Reg a utilizar

- Retornos de Procedimientos

6.- Tipo y Tamaño de los Operandos

Representación a Co2
Punto Flotante IEEE
Op Caracteres - Comp - Desp

7.- Papel de los Lenguajes de Alto Nivel y los Compiladores

Problemas de Ordenación de Fase: Elegir que llamada expandir en linea antes de saber tamaño exacto.

Eliminación Global de Subexpresiones Comunes

Grafo de Interferencias

Optimizaciones:

  1. Alto Nivel
  2. Locales (Fragmento Código)
  3. Globales
  4. Ubicación de Reg
  5. Dependiente de la Máquina

Ubicación Datos:

- Pila
- Área Global Datos
- Montículo

Propiedades Repertorio Instrucciones:

  1. Regularidad (Ortogonales e Independientes)
  2. Proporcionar Primitivas, No Soluciones
  3. Simplificar compromisos entre alternativos
  4. Proporcionar Inst que consiguen las cantidades conocidas en tiempo de compilación como cte.