Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Computadoras
Clase #2
Arquitectura del Conjunto
de Instrucciones
Dr. Wladimir Rodríguez
Departamento de Computación
wladimir@ula.ve
http://sistemas.ing.ula.ve/~wladimir/ArquitecturaComputadoras.html
Temario
1. Introducción a la Arquitectura de Computadores
2. Arquitectura del conjunto de instrucciones (ISA)
3. Diseño Lógico
4. Aritmética para computadoras
5. Técnicas de implementación de la unidad central
de procesamiento
6. Sistema de memoria
7. Sistema de entrada/salida
• Software
• Familias de ISA
• Diferencias: ISA vs. implementación en hardware
• ISA de pila
• Ventajas:
• Instrucciones muy cortas
• Compiladores fáciles de escribir
• Desventajas
• Código es ineficiente
• Tamaño de la pila & latencia de acceso
• Ejemplos
• 60s: Burroughs B5500, HP 3000/70
• Hoy: Java VM
• 8 a 256 registros
• La arquitectura dominante
• Ventajas:
• Permite acceso rápido a los valores temporales
• Desventajas:
• Instrucciones largas
• Desventajas
• Gran variación en el tamaño de las instrucciones
• Gran variación en la duración de las instrucciones
• Alto tráfico a memoria
• Ejemplos
• VAX (algunas instrucciones)
• Operación a realizar
• El repertorio de instrucciones
• Definición:
• Contador de Programa: PC
• 32 registros de punto flotante.
• 16 doble precisión (64 bits): F0-F2-....-F30
• 16 simple precisión (32 bits): F0-F2- ...- F30 (direcciones
pares)
• Saltos INCONDICIONALES.
• Directa
• Indirecta
• Indirecta
• Saltos indirectos por registros
• jr $5
• Decimal
• Decimal empaquetado: Decimal codificado en binario
(BCD), 4 bits para cada dígito, dos dígitos por byte.
Ejemplo: 01001001 → 49
• Dos alternativas:
• Codificarlo en el código de operación de la instrucción
(caso más frecuente).
• Ejemplo: SUMA
(código de operación) (tipos de datos:byte, word, ...)(nº de
operandos: 2,3)
addb2 addw2 addl2 addf2 addd2
addb3 addw3 addl3 addf3 addd3
• Código reutilizable
• Librerías de procedimientos
• Procedimiento recursivo
• Procedimiento que se llama a si mismo
• Procedimiento reentrante
• Proceso = código + estado (PC, registros, variables,..)
# cuerpo procedimiento
.....
# Restaura registros
lw $s2, 0($sp) # recupera $s2
lw $s1, 4($sp) # recupera $s1
lw $s0, 8($sp) # recupera $s0
lw $ra, 12($sp) # recupera dirección de retorno
lw $fp, 16($sp) # recupera fp antiguo
addi $sp,$sp,20 # Destruye bloque activación
jr $ra # retorna al programa principal