Download Universidad simón Bolívar Departamento de Electrónica y Circuitos
Document related concepts
no text concepts found
Transcript
Universidad simón Bolívar Departamento de Electrónica y Circuitos / Sección de Sistemas Digitales EC2721 – Arquitectura del Computador I Problemario: Memoria / Entrada Salida / Buses / Interrupciones PARTE I: Memoria y Entrada / Salida 1.- Se dispone de cantidad suficiente de chips de Memoria RAM de 1K X 8, 256K x 4, 64K x 1, compuertas lógicas, registros (74LS374, etc.), decodificadores (74LS138, 74LS139, etc), y otros dispositivos de lógica digital compatibles. Se requiere construir varios sistemas de memoria. Para cada uno, proponga combinación de chips de memoria, un mapa de memoria asignada por chip y un diagrama circuital: a) 1M x 8 b) 32K x 16 c) 1Gb x 64 2.- Un circuito básico de Salida puede diseñarse con registros, como el 74LS374. Un puerto de Entrada puede implementarse con buffers de 3 estados como el 74LS244 (unidireccional), 74LS245 (bidireccional). Dibuje el circuito de un Puerto de Entrada/Salida (bidireccional) utilizando combinaciones de estos dispositivos (puede añadir compuertas lógicas). 3.- Utilizando los dispositivos disponibles de 1 y 2, diseñe un circuito de Bus para un sistema de Memoria y Entrada/Salida mapeada en memoria para un procesador de 16 bits de Direccionamiento y 8 bits de datos cuyo mapa de memoria sea el siguiente: Direcciones 0x0000 0xEFF8 – 0xEFFF 0xEFFF Función Memoria Puertos de Entrada/Salida No implementado 4.- Utilizando contadores preiniciables (74LS193, por ejemplo) y registros puede implementarse circuitos de temporización por interrupciones, como dispositivos de Entrada/Salida. Proponga un posible circuito de un módulo temporizador para un procesador de 8 bits. 5.- La Figura 1 es el circuito de un Bus externo que cumple el objetivo de agregar un TIMER , 2Kbytes de memoria RAM y el Puerto OUT a los periféricos del procesador para el Microcontrolador MC68HC908GP32. En el circuito se observa una Memoria RAM 6116 de 2kbytes, tres registros (CUENTA, CONFIG, OUT) y un CONTADOR binario de 8 bits conectados a un procesador MC68HC908GP32 a través de sus puertos PTA, PTB, PTC, PTD y PTE realizando las funciones de BUS de DIRECCIONES, BUS de DATOS, y BUS de CONTROL en la forma que se especifica a continuación: ADDRESS(12:0) = PTC(4:0) & PTA(7:0) DATOS(7:0) = PTB(7:0) CONTROL(2:0) = PTD(2:0) Responda las siguientes preguntas: a) b) c) d) e) f) ¿Cuántas posiciones de pueden direccionar con el BUS de DIRECCIONES? ¿En qué rango de esas posiciones reside la memoria RAM? ¿Diga la dirección o rango de direcciones del registro CUENTA? ¿Diga la dirección o rango de direcciones del registro CONFIG? ¿Diga la dirección o rango de direcciones del registro OUT?. ¿Escriba un código que tome un byte que existe en la posición $A000 de la memoria FLASH del HC08 y lo grabe en el registro CUENTA cuando se presione el pulsador conectado a PTE1? g) ¿Escriba un código que lea la cuenta actual del CONTADOR y la grabe en la posición 1024 de la memoria RAM en el momento que se presione el pulsador conectado a PTE1? Figura 1 6.- La figura 2 muestra 3 memorias conectadas a el bus de una PC. El hilo IO/M del Bus de Control se pone en “1” lógico cuando se desea hacer operaciones de Entrada/Salida y en “0” cuando se va a acceder a la memoria. Responda las siguientes preguntas: a) Con el ancho del bus de direcciones dadas, ¿cuántas posiciones de memoria se pueden direccionar? b) ¿Qué rango de direcciones están asignados a la memoria EPROM? c) ¿Qué rango de direcciones están asignadas a las memorias SRAM? d) Si se desea leer la dirección 1FF0 de la EPROM, ¿qué dirección habría que poner en el bus de direcciones? e) ¿Qué rango de direcciones no esta decodificada? CONTROL(/RD,/WR,IO/M,…………….) ADDRESS(15:0) DATA(7:0) RAM 6116-2Kx8 EPROM 27C64-8kx8 AD(12:0) AD(10:0) A(12:0) Vcc O(7:0) AD(13:11) /RD I/O(7:0) /WR /RD /PGM /OE IO/M 1A 1B ~1G ~OE RAM 6116-2Kx8 AD(10:0) 74LS139 A(15) ~WE ~CS /CE A(14) ADRR(10:0) ADRR(10:0) I/O(7:0) 1Y0 A11) 1Y1 1Y2 A12) 1Y3 A13) Figura 2 /WR /RD ~WE ~OE ~CS PARTE II: Buses y Teoría (preguntas basadas ó tomadas de [1]) 1.- Suponga que en un computador 8 dispositivos de I/O están conectados al árbitro según el esquema de árbitro centralizado con niveles que se muestra en la figura 3-39(b) en [1] (Figura 3), y están conectados de la siguiente manera: · Línea de Solicitud De Bus Nivel 3: dispositivos D8 y D7 · Línea de Solicitud De Bus Nivel 2: dispositivos D6, D5 y D4 · Línea de Solicitud De Bus Nivel 1: dispositivos D3, D2 y D1 Figura 3. Figura 3.39, capítulo 3 de [1] La línea de solicitud de bus de Nivel 3 tiene mayor prioridad que la de Nivel 2 y ésta mayor prioridad que la de Nivel 1. Los Dispositivos en conexión de encadenamiento circular están identificados con el número mayor más cerca del CPU (por ejemplo, D8 es el que está más cerca de todos). Suponga que todas las interrupciones se atienden y resuelven en cuatro unidades de tiempo. Explique en qué orden se atienden y resuelven las peticiones si los dispositivos solicitan el bus de la siguiente forma: · En t = 0: solicitan el bus D8 y D3 · En t = 3: solicitan el bus D4 y D1 · En t = 7: solicitan el bus D7 · En t = 10: solicitan el bus D8 y D5 Haga una gráfica temporal que indique cual proceso está siendo atendido por el CPU (puede ser una barra identificada sobre un eje horizontal de tiempo, u con barras para cada Dispositivo). 2.- Analice la figura 4 para bus síncrono (3-37 de A. Tanenbaum) y responda: Figura 4. Figura 3.37, capítulo 3 de [1] a) Suponga que el período de reloj no es 25ns sino 40ns, pero se mantienen las restricciones temporales asociadas a la respuesta del circuito y dispositivos (tabla).¿Cuánto tiempo tendría la memoria para colocar los datos en el bus durante T3, despues de habilitarse MREQ, en el peor de los casos?. b) Suponga que el reloj se mantiene en 40MHz, pero TAD se aumenta a 16ns. ¿Podrían seguirse usando chips de memoria de 40ns? 3.- Suponga que la transferencia de bloques de la figura 5 (3-41 de A. Tanenbaum) se efectúa por el bus de la figura 4 (3-37 de A. Tanenbaum). ¿Qué ancho de banda adicional se obtendría usando esta transferencia de bloques en lugar de transferencias individuales, en el caso de bloques muy largos? Figura 5. Figura 3.41, capítulo 3 de [1] 4.- Conteste la pregunta anterior, suponiendo que el ancho del bus es de 32 bits y no de 8 bits. 5.- En el bus asíncrono de la figura 6 (3-38 de A. Tanenbaum), denotando los tiempos de transición de las lineas de dirección como TA1 y TA2, y los tiempos de transición de MREQ como TMREQ1 y TMREQ2, etc., escriba todas las desigualdades implícitas en el saludo completo. Figura 6. Figura 3.38, capítulo 3 de [1] PARTE III: Programación en Ensamblador 1.- Diga el contenido de la memoria (incluyendo la Pila) del y los registros del MC68HC908GP32 después de ejecutado el programa en Assembler para el HC08 que se le da a continuación: b) a) ORG ORG $40 a0040 Resultado: DS.B ORG $8000 1 a0040 resultado: DS.B ORG ;PROGRAMA 6E 9C 4F 5F C6 87 C6 87 AD B7 A7 01 1F mov #$01,1F rsp clra clrx lda Num1 psha lda Num2 psha bsr calculo sta Resultado AIS #2 A000 A001 06 40 02 a8014 20 FE loop: calculo: a8016 a8017 a801A a801D a801E a8020 8C 9EEE 03 9EE6 04 52 AB 05 81 1 $8000 main: main: a8000 a8003 a8004 a8005 a8006 a8009 a800A a800D a800E a8010 a8012 $40 bra loop DC.B DC.B aFFFE 8000 ORG $FFFE RESET_INT: DC.W END 1F a800B a800E a8010 a8011 a8012 45 8013 AB 03 89 8B 81 05 04 40 FE lazo: bset 0,CONFIG1 rsp lda #5 bsr Calculo1 sta resultado BRA lazo Calc1: a8013 A0 01 a8015 81 aFFFE 8000 ORG $A000 Num1: Num2: 10 9C A6 AD B7 20 ldhx #Calc2 add #3 pshx pshh rts Calc2: clrh ldx 3,SP lda 4,SP div add #5 rts aA000 28 aA001 10 a8000 a8002 a8003 a8005 a8007 a8009 $28 16 main sub rts ORG $FFFE DC.W main #1 2.- El siguiente programa en lenguaje Ensamblador del mc68hc908gp32 se ejecuta completamente. Diga cual es el contenido del STACK y de los registros después de su ejecución. INCLUDE ORG 40 41 8000 8002 8003 8006 8007 800A 800B 800E 8011 8013 8016 8018 801A 801B 801C 801F 8022 8023 8026 8029 802A 802B 10 1F 9C C6 A000 87 C6 A001 87 CD 801A 9EE6 01 B7 40 9EE6 02 B7 41 20 FE 89 87 9EEE 05 9EE6 06 42 9EE7 06 9EEF 05 86 88 81 A000 0F A001 03 FFFE 8000 Direcció n 'derivative.inc' resH: resL: ORG Main: LAZO: MULT: $40 DS.B DS.B $8000 BSET RSP LDA PSHA LDA PSHA JSR LDA STA LDA STA BRA PSHX PSHA LDX LDA MUL STA STX PULA PULX RTS ORG Num1: Num2: $A000 DC.B DC.B ORG $FFFE 1 1 0,CONFIG1 Num1 Num2 MULT 1,SP resH 2,SP resL LAZO $40 $41 .. $F5 $F6 $F7 $F8 $F9 $FA $FB $FC $FD $FE $FF Registros 5, SP 6, SP 6, SP 5, SP $0F $3 A H X SP PC Contenid o 3.-Los siguientes programas en Lenguaje Ensamblador del MC68HC908GP32 se diferencian en una linea . version a. version b. INCLUDE INCLUDE 'derivative.inc' 'derivative.inc' ORG $40 ORG $40 dato: DS.B 1 dato: DS.B 1 Main: EDO1: EDO2: IRQ_ISR: ORG $8000 BSET 0,CONFIG1 RSP MOV #$00, DDRA MOV #$FF, DD CLR PTA CLR PTB LDHX #EDO1 CLI MOV PTA, dato BRA EDO1 BRA EDO2 AIS #5 MOV dato, PTB PSHX PSHH RTS Main: EDO1: ORG $8000 BSET 0,CONFIG1 RSP MOV #$00, DDRA MOV #$FF, DD CLR PTA CLR PTB LDHX #EDO1 CLI MOV PTA, dato BRA EDO1 EDO2: BRA EDO2 IRQ_ISR: AIS #5 MOV dato, PTB PSHX PSHH RTS ORG $FFFA ORG $FFFA DC.W IRQ_ISR DC.W IRQ_ISR ORG $FFFE ORG $FFFE DC.W Main DC.W Main El programa se ejecuta completamente y se produce un flanco de bajada en el pin IRQ del controlador. En PTA se tiene el valor “AB”. Observe que tiene una rutina de interrupción de donde retorna con “rts” en lugar de “rti” a) Dibuje un diagrama de flujo del funcionamiento del programa. b) Diga si ambos programas trabajan igual. 2.- La arquitectura de Conjunto de Instrucciones (ISA) del Microcontrolador MC68HC908GP32 no dispone de un mecanismo automático de paso de parámetros a métodos (subrutinas) y uso de Variables Locales como el del IJVM para el Mic-1, de modo que el programador/compilador debe implementar, por software, su propio mecanismo para poder implementar métodos generales que permitan, por ejemplo, la recursión. Proponga un algoritmo sencillo y escriba el código correspondiente en ensamblador, que permita implementar esto. 3.- Dibuje un Diagrama de Estados y Escriba el código en Lenguaje Ensamblador para MC68HC908GP32 para que realice las siguientes tareas: a)_________________________________________________________________ b)_________________________________________________________________ c)_________________________________________________________________ Referencias Bibliográficas [1] Tanenbaum A., Structured Computer Organization. 4th Edition. Organizción del Computador, un enfoque estructurado, 4ta Edición. Pearson, Prentice Hall, 2000.