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.