Modos de Direccionamiento
•Teoría del uso del
direccionamiento.
•Modo de direccionamiento
específicos.
•Memoria, mapa de memoria,
paginación, segmentación y bloques.
•Sincronización y
Temporización, ciclos de acceso, lectura y escritura.
•Temporización y control
general de operaciones.
Tipos, Instrucciones y lenguajes de máquina
•Tipos y formatos de
instrucciones.
•Clasificación de diversos
sets de instrucciones para distintos micro-procesadores.
•Aplicación de programación
en lenguaje de máquinas.
•Conexión lenguaje
ensamblador – componentes hardware.
Requisitos para programar en Assembler
- Hardware:
•Cantidad de registros
generales
•Registros de control
(Contador de programa, Puntero de Pila, Registro de Estado…)
•Tamaño de los registros
generales, para saber el rango de los
números que se pueden manejar.
•Tamaño de la memoria
- Software:
•El juego de instrucciones
•Organización de la Pila
Tratamiento de instrucciones
En todo momento, la UC mantiene:
- Contador de programa (PC): Contiene la direccion de la instrucción a ejecutar.
Tanto para la instrucción secuencial (ver direccion de la instrucción siguiente) como para los saltos (condicionales o no), su constante actualización corresponde a la UC.
Programa e instrucciones
Codificación de las instrucciones
Requisitos del conjunto de instrucciones
•El conjunto de instrucciones de un computador debe ser completo en el sentido de que se pueda construir un programa
para evaluar una función computable usando una cantidad de memoria razonable y
empleando un tiempo moderado, es decir, el número de instrucciones de ese programa no debe ser
demasiado elevado.
•Los juegos de instrucciones también tienen que ser eficientes, esto significa que las funciones más necesarias deben poder
realizarse usando pocas instrucciones.
•El conjunto de
instrucciones de una máquina debe ser regular, es decir debe ser simétrico (por ejemplo, si existe una
instrucción de desplazamiento a la izquierda, debe haber otra de desplazamiento a la
derecha, etc.) y ortogonal, es decir, deben poder
combinarse, en la medida de lo posible, todos
las operaciones con todos los tipos de datos y modos de direccionamiento.
•Idealmente compatible con versiones anteriores.
** ortogonalidad: Cada operación debe poder hacerse con cualquier tipo de operandos y con cualquier tipo de direccionamiento.
** regularidad: El juego de instrucciones no presenta casos especiales.
Tipos de instrucciones
- A mayor numero de instrucciones, más complejidad de la UC y mayor número de bits requeridos por el campo código de operación.
- Dos tendencias a este respecto: RISC: pocas instrucciones, sencillas y se ejecutan en pocos ciclos. CISC: muchas instrucciones, complejas y muchos ciclos de reloj.
- Tipos de instrucciones:
* Instrucciones de movimiento de datos: A/desde/entre registros CPU/ direcciones de memoria.
* Instrucciones aritmética-lógica: Suma, resta, multiplicación, división, and, or, desplazamientos, etc. Operaciones punto flotante.
* Instrucciones de salto: Condicionales, incondicionales, manejo de subrutinas.
* Instrucciones aritmética-lógica: Suma, resta, multiplicación, división, and, or, desplazamientos, etc. Operaciones punto flotante.
* Instrucciones de salto: Condicionales, incondicionales, manejo de subrutinas.
Modelos de ejecución
Donde estan los operandos en los distintos ISA.
- Arquitectura de pila: Implícitamente en la cima de la pila (memoria).
- Arquitectura de acumulador: implícitamente uno de los fuentes y el destino en el registro acumulador y el otro fuente en memoria.
- Arquitectura de registros: En registros o posiciones de memoria, 2 ó 3 operandos explícitos.
* Según el tipo de arquitectura de registros:
- Se podrá hacer operaciones ALU con datos en memoria, ó habrá que cargarlos en registros para operar con ellos (MIPS).
Ejemplo de código en las diferentes ISA
No hay comentarios:
Publicar un comentario