280 likes | 452 Views
PROCESADORES. Clase Teórica N°5 Modos de direccionamiento. Arquitectura general de un sistema de cómputo. Bus de direcciones. Bus de datos. Bus de control. RW CS CE OE. MEMORIA Programas – Datos - Pilas. PERIFÉRICOS Sensores – Actuadores – Comunicaciones.
E N D
PROCESADORES Clase Teórica N°5 Modos de direccionamiento
Arquitectura general de un sistema de cómputo Bus de direcciones Bus de datos Bus de control • RW • CS • CE • OE MEMORIA Programas – Datos - Pilas PERIFÉRICOS Sensores – Actuadores – Comunicaciones
Clasificación de las arquitecturas de procesadores Pila Acumulador Banco de registros Nivel 5 Banco de Registros Nivel 4 Nivel 3 ALU ALU ALU Nivel 2 Nivel 1 Nivel 0
Clasificación de las arquitecturas de procesadores Nivel 5 Banco de Registros Nivel 4 Nivel 3 ALU ALU ALU Nivel 2 Nivel 1 Nivel 0
Modos de direccionamiento Definición: Formas de hacer referencia a el contenido de la memoria del procesador. ¿Cómo se accede a los datos al ejecutar las siguientes instrucciones? a=a+5; a=a+b; a=a+b[3]; //(vector estático y dinámico)
Modos de direccionamientoRegistro R4 • R4 + R3 Memoria principal Banco de Registros R0 Add R4, R3 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamientoInmediato ó Literal R4 • R4 + 5 Memoria principal Banco de Registros R0 Add R4, #5 R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamientoDirecto R4 • R4 + M[1021] Memoria principal Banco de Registros R0 Add R4, (1021) R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamientoIndirecto R4 • R4 + M[R7] Memoria principal Banco de Registros R0 Add R4, (R7) R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamientoDesplazamiento R4 • R4 + M[100+R7] Memoria principal Banco de Registros R0 Add R4, 100(R7) R1 R2 R3 + R4 R5 R6 R7 + 100
Modos de direccionamientoIndexado R4 • R4 + M[R1+R0] Memoria principal Banco de Registros R0 Add R4, (R0+R1) + R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamientoDiferido de memoria R4 • R4 + M[ M[R7] ] Memoria principal Banco de Registros R0 Add R4, @(R7) R1 R2 R3 + R4 R5 R6 R7
Modos de direccionamientoAuto Incremento R4 • R4 + M[R7] R7 • R7 + d Memoria principal Banco de Registros R0 Add R4, (R7)+ R1 R2 R3 + R4 R5 R6 R7 + d
Modos de direccionamientoAuto Decremento R4 • R4 + M[R7] R7 • R7 - d Memoria principal Banco de Registros R0 Add R4, -(R7) R1 R2 R3 + R4 R5 R6 R7 - d
Modos de direccionamientoEscalado R4 • R4 + M[10+R1+R0*d] Memoria principal Banco de Registros d x 10 R0 + Add R4,10(R1)[R0] R1 R2 R3 + R4 R5 R6 R7
Resumen R4 • R4 + M[10+R1+R0*d] R4 • R4 + M[R7] R7 • R7 – d . R4 • R4 + M[R7] R7 • R7 + d . R4 • R4 + M[ M[R7] ] . R4 • R4 + M[R1+R0] . R4 • R4 + M[100+R7] . R4 • R4 + M[R7] . R4 • R4 + M[1021] . R4 • R4 + 5 . R4 • R4 + R3 . Escalado Auto Decremento . Auto Incremento . Diferido de memoria Indexado Desplazamiento Indirecto Directo Inmediato Registro
Ejecución de una instrucciónjmp 0x02 reset Inicial Búsqueda jz jmp Ejecución 0x20 ld a xx sub a and a ld xx a add a 0x06 0x00 lda 0x80 0x00 0x01 0x80 0x02 suba 0x81 0x04 0x03 0x81 0x04 jz 0x08 0x05 0x05 0x08 0x?? 0x06 jmp 0x02 0x06 0x07 0x02
Ejecución de una instrucciónjmp 0x02 reset Inicial Búsqueda jz jmp Ejecución 0x20 ld a xx sub a and a ld xx a add a 0x07 0x00 lda 0x80 0x00 0x01 0x80 0x02 suba 0x81 0x04 0x03 0x81 0x04 jz 0x08 0x05 0x05 0x08 0x06 0x06 jmp 0x02 0x06 0x07 0x02
Ejecución de una instrucciónsuba 0x81 reset Inicial Búsqueda jz jmp Ejecución 0x20 ld a xx sub a and a ld xx a add a 0x02 0x00 lda 0x80 0x00 0x01 0x80 0x02 suba 0x81 0x04 0x03 0x81 0x04 jz 0x08 0x05 0x05 0x08 0x02 0x06 jmp 0x02 0x06 0x07 0x02
Ejecución de una instrucciónsuba 0x81 reset Inicial Búsqueda jz jmp Ejecución 0x20 ld a xx sub a and a ld xx a add a 0x03 0x00 lda 0x80 0x00 0x01 0x80 0x02 suba 0x81 0x04 0x03 0x81 0x04 jz 0x08 0x05 0x05 0x08 0x04 0x06 jmp 0x02 0x06 0x07 0x02
Ejecución de una instrucciónsuba 0x81 reset Inicial Búsqueda jz jmp Ejecución 0x20 ld a xx sub a and a ld xx a add a 0x03 0x00 lda 0x80 0x00 0x01 0x80 0x02 suba 0x81 0x04 0x03 0x81 0x04 jz 0x08 0x05 0x05 0x08 0x81 0x06 jmp 0x02 0x06 0x07 0x02
Ejecución de una instrucciónjz 0x08 reset Inicial Búsqueda jz jmp Ejecución 0x1F ld a xx sub a and a ld xx a add a 0x04 0x00 lda 0x80 0x00 0x01 0x80 0x02 suba 0x81 0x04 0x03 0x81 0x04 jz 0x08 0x05 0x05 0x08 0x02 0x06 jmp 0x02 0x06 0x07 0x02
LaboratorioDiagrama de bloques Bus de Direcciones Bus de Datos MEMORIA Datos + Programa PERIFERICO Diseñado por Uds LEDS
Laboratorio • Diseñar e implementar un periférico con las siguientes características: • • • Función: Contador de frecuencia variable • – • Configuración: Permitir, por medio del registro (200) activar y modificar la frecuencia de trabajo del contador según la tabla:
Laboratorio r_w LEDs Bus de Direcciones Decodificador Contador Bus de Datos Mclk ··· 1 2 3 4 5 6 7 8 9 10 11 21 22 23 24 25 26 27 28
Laboratorio IMPORTANTE! Llevar al laboratorio adelantado: Descripción en VHDL del periférico simulado, por lo menos él funcionando independientemente. Programa de prueba en lenguaje de máquina para comprobar su funcionamiento.