Вы находитесь на странице: 1из 12

Estructura y Tecnologa de

Computadores II
Teora y problemas

Sergio Daz Ruiz


Mara del Carmen Romero Ternero
Alberto J. Molina Cantero

Enero, 2009

1.1 Ejercicios
EXAMEN DE ETCII 1 I.T.I. GESTION SEPTIEMBRE 2001

1.- Enunciado
Disear una1-1 unidad de control (carta ASM, implementacin con 1 biestable por estado) que
acte sobre la unidad de datos de la figura de forma que pueda usarse para realizar divisiones enteras.
El usuario coloca los valores a dividir en los registros DIVIDENDO y DIVISOR, tras lo cual activa la
sealDisene
de inicio
una Xs. Cuando
unidad el sistema
de control termina
que actue su laoperacin,
sobre unidad deactivar
datos delalaseal FIN
figura indicando
1 para que el
que pueda
resultado de la
realizar divisinenteras.
divisiones est disponible en los registros COCIENTE y RESTO.

DIVIDENDO
RT

Xs DIVISOR

Unidad de
control
ALU
FIN COCIENTE

AC
RESTO

Figura 1: Unidad de datos del sistema (enunciado 1-1)


Deber especificar claramente qu seales de control debe presentar cada subsistema de la unidad de
datos. 1
2.- Dados los siguientes valores iniciales de registros y memoria, indicar los resultados obtenidos tras
ejecutar cada instruccin siguiente:

Registro Valor Direccin Valor


A0 0000 0004 00 0008 1D
D2 0123 ABCD 00 0009 1B
D3 000C 0002 00 000A 1C
D4 0000 0008 00 000B 14
00 000C 0C
00 000D 0A
00 000E 00
2

El usuario coloca los valores a dividir en los registros DIVIDENDO y DIVISOR, tras lo cual
activa la senal de inicio Xs. Cuando el sistema termina su operacion, activara la senal FIN
indicando que el resultado de la division esta disponible en los registros COCIENTE y RESTO.

Debera especificar claramente que senales de control debe presentar cada subsistema de la
unidad de datos, elaborar las cartas ASM de datos y control e implementar la unidad de control
mediante la tecnica de 1 biestable por estado.

Enunciado 1-2

Disene un sistema digital (unidad de datos, carta ASM y controlador 1 biestable/estado) que
permita programar memorias ROM. El sistema dispone de una memoria RAM cuyo contenido
es fijado externamente antes de recibir un pulso por la lnea de inicio Xs. Tras dicho pulso, el
sistema debe realizar el proceso de programacion, es decir, copiar todo el contenido de la memoria
RAM en la memoria ROM (ambas tienen la misma capacidad). Tenga en cuenta lo siguiente:

La memoria ROM dispone de una entrada de control de programacion denominada PGM.


Para escribir correctamente un cierto valor en una posicion determinada de la ROM, hay
que activar PGM durante, al menos, 10 milisegundos, durante los cuales hay que mantener
tanto el valor como la posicion en los buses de datos y direcciones de la ROM.

La senal de reloj tiene un perodo de 1 milisegundo.

Al finalizar la ejecucion, debe activarse la senal FIN durante un ciclo de reloj.

Enunciado 1-3

Se desea realizar el diseno de un sistema (unidad de datos, carta ASM de control e implementacion
de un biestable por estado) que permita el control de un tunel de lavado de coches. Para ello
hay que tener en cuenta la siguiente informacion:

Entradas del sistema

ON: indica que el sensor de entrada ha detectado un coche

Salidas del sistema

PUEDES ENTRAR: senal que el sistema activa para poner en verde el semaforo de
entrada. Si no esta activada, el semaforo de entrada permanece en rojo
MUEVE: senal que el sistema activa para mover el coche por los carriles situados al
efecto
AGUA: senal que el sistema activa para la salida de los chorros de agua
JABON: senal que el sistema activa para la salida del jabon
1.1. EJERCICIOS 3

AIRE: senal que el sistema activa para la salida del aire


PUEDES SALIR: senal que el sistema activa para poner en verde el semaforo de
salida. Si no esta activada, el semaforo de salida permanece en rojo
El lavado completo dura 3 minutos y tiene cuatro fases diferenciadas:
fase de inicio de operacion, que dura 30seg,
fase de lavado, que dura 1 minuto
fase de secado, que dura 1 minuto
y fase de salida, que dura 30 seg
La operacion del sistema es como sigue:
Al principio, la maquina se encuentra en estado de reposo esperando a que algun coche
active el sensor del carril por donde se trasladara el coche. Cuando el sensor detecta un
coche, comienza la fase de inicio, durante la cual se activa la senal de movimiento del
coche. Una vez acabada esta fase, empieza la siguiente, durante la cual el coche seguira en
movimiento y se activara la salida de agua y jabon en la maquina. Tras esta fase, el coche
se sigue moviendo y se activa la salida de aire para el secado. Por ultimo, una vez acabada
la fase de secado, el coche se sigue moviendo durante la fase de salida y cuando esta acaba
se pone en verde el semaforo de la salida.
Mientras se esta lavando un coche, el semaforo de la entrada debe permanecer en rojo hasta
que finalice el lavado completo del primer coche.
Los semaforos de la entrada y la salida siempre tienen que estar en verde o en rojo, segun
el caso.

Notas:

El perodo de la senal de reloj es de 5 segundos.


Todas las senales de control se consideran activas en alto.

Enunciado 1-4

Partiendo de la unidad de datos de la figura 2, obtener la carta ASM y la implementacion del


controlador (mediante la tecnica de un biestable por estado) de un sistema digital que calcule
la media de un conjunto de 4 medidas, cuyos valores llegan al sistema por medio del registro A,
segun se indica a continuacion.

Entradas del sistema:


Xs: senal de inicio.
MEDIDA: cuando vale 1, indica que en el registro A se ha almacenado (externamente
al sistema) una nueva medida.
Salidas del sistema:
4

A [n]

Sumador RA ZA
n bits
B [n]
RAC
WAC RB WB
AC [n] CLAC
SHRAC CONT
md-4

CL UP CY

Figura 2: Unidad de datos del sistema (enunciado 1-4)

FIN: senal que el sistema activa para indicar el fin de la operacion.

Funcionamiento:

1. El sistema comienza a operar al activarse la senal de inicio Xs.


2. Cada vez que la senal MEDIDA se active, hay que comprobar si el registro A vale 0.
En tal caso, debe ignorarse dicho valor, quedando el sistema de nuevo a la espera de
la activacion de la senal MEDIDA.
3. Si MEDIDA se ha activado, y el registro A contiene un valor distinto de 0, debera
usarlo para calcular la media, quedando despues en espera de la siguiente activacion
de la senal MEDIDA.
4. Cuando el sistema haya calculado la media aritmetica a partir de 4 medidas distintas
de 0, debera almacenar el resultado en el registro B, y despues activar la senal FIN.

Notas:

1. Dado que el sistema solo debe considerar las medidas distintas de 0, puede que el
sistema necesite recibir mas de 4 medidas para poder calcular la media.
2. El registro A tiene una senal de salida, ZA, que se activa si A = 0.
3. El registro AC tiene entradas de desplazamiento a la derecha, SHRAC, y puesta a
cero, CLAC.

Enunciado 1-5

Se desea disenar un sistema digital con el esquema de bloques indicado en la figura 3 y que realice
las siguientes macro-operaciones:

C 4A - B

C 4A + B
Prueba de evaluacin continua: Sistemas Digitales
Curso 2006/2007

Se desea disear un sistema digital que realice las siguientes macro-operaciones:

C 4A B
1.2. EJERCICIOS 5
C 4A + B
D nmero de unos que hay en A
D numero de unos que hay en A
D nmero de ceros que hay en A
D numero de ceros que hay en A

FIN

Salidas de control A

UC B
IR1-0 UD
C
Estado de la UD o D
entradas de control

Xs
Figura 3: Esquema de bloques del sistema digital (enunciado 1-5)
a) Disee la unidad de datos necesaria para ello, realizando una descripcin completa con
el lenguaje RT de todos los elementos que considere necesarios.
a) Disene la unidad de datos necesaria para ello, realizando una descripcion completa con el
lenguaje RT de todos los elementos que considere necesarios.
b) Realice las cartas ASM de datos y de control para esas cuatro macrooperaciones.
b) Realice las cartas ASM de datos y de control para esas cuatro macrooperaciones.
c) Implemente la unidad de control del sistema utilizando la tcnica de un biestable por
estado.
c) Implemente la unidad de control del sistema utilizando la tecnica de un biestable por
estado.

1.2 Ejercicios

Enunciado 1-6

Se desea implementar un programa con las instrucciones del CS2 que, con los valores almacenados
desde la direccion de memoria $DF hasta la $D0, sume, por un lado, todos los datos pares y,
por otro, todos los datos impares; y almacene los resultados en las direcciones SUMPAR y
SUMIMPAR respectivamente. Ademas, el programa tambien debe calcular la media de los
valores y almacenarla en la direccion MEDIA.

Enunciado 1-7

Se dispone de una variante del computador simple 2 (CS2) tal que incluye una nueva instruccion
de almacenamiento con direccionamiento indirecto: STAI $n. Usando esta instruccion, y las
convencionales del CS2, implemente un programa que sume dos vectores de 16 componentes,
obteniendo como resultado un tercer vector. Los vectores operando estan almacenados en las
6

posiciones $D0-$DF y $E0-$EF, mientras que el vector resultado debe ocupar las posiciones
$A0-$AF.

NOTA: el programa debe usar un bucle, de tal forma que resulte sencillo modificar el algoritmo
para que acepte vectores de tamano distinto a 16.

Enunciado 1-8

Escriba un programa para el CS2 (pseudocodigo y ensamblador) que calcule el producto escalar,
P , de dos vectores X (X0 , X1 , X2 , . . . X15 ) e Y (Y0 , Y1 , Y2 , . . . Y15 ), almacenados en las
posiciones $A0-$AF y $B0-$BF, respectivamente. El producto escalar es un valor (no un vector)
que se calcula del siguiente modo:

P = X0 Y0 + X1 Y1 + X2 Y2 + . . . + X15 Y15

donde Xi e Yi son las componentes i-esimas de los vectores X e Y . No se tendran en cuenta los
problemas de desbordamiento.

Enunciado 1-9

Suponiendo que el CS2 tiene una instruccion de almacenamiento con direccionamiento indirecto
(stai PUNT):

(a) Rellene la tabla 1 describiendo lo que hace el codigo e indicando el pseudocodigo. Nota: Si
lo considera necesario para su explicacion, puede hacer agrupaciones de lneas de codigo.

Tabla 1: Explicacion del codigo y pseudocodigo (enunciado 1-9)

Ensamblador Descripcion de la operacion Pseudocodigo


equ PUNT $B0

equ TEMP $B1

operacion:
laim 0
sta PUNT
bucle:
laim 0
addi PUNT
clc
rol
sta TEMP
sta TEMP
laim 1
Sigue . . .
1.3. EJERCICIOS 7

Tabla 1: Explicacion del codigo y pseudocodigo (enunciado 1-9)


(cont.)

Ensamblador Descripcion de la operacion Pseudocodigo


add PUNT
sta PUNT
lda TEMP
addi PUNT
sta TEMP
laim 1
add PUNT
sta PUNT
lda TEMP
stai PUNT
laim 1
add PUNT
sta PUNT
laim 252
sub PUNT
bcs terminar
jmp bucle
terminar:
rts

(b) Explique que ocurrira si se ejecuta este fragmento de codigo en el CS2.

Enunciado 1-10

Supongase que una de las 16 instrucciones del CS2 es: LSL n,$A (desplazar a la izquierda n
veces el contenido de la posicion de memoria $A), en la que, por cuestiones de almacenamiento,
el valor inmediato n se encuentra en la direccion de memoria siguiente a la propia instruccion (que
contiene el codigo de operacion y la direccion $A). Represente, en una carta ASM, la secuencia
de micro-operaciones necesarias para la busqueda y ejecucion de esta instruccion.

1.3 Ejercicios

Enunciado 1-11

Disenar el subsistema de memoria para un microprocesador de 16 lneas de direcciones y 8 bits


de datos. Se dispone de chips de memoria RAM de 8Kx8 (con senal de seleccion activa a nivel
bajo), y con ellos se desea cubrir completamente el espacio de direcciones del microprocesador.
8

(a) Representar el mapa de memoria, el circuito de decodificacion y la interconexion entre


chips de memoria.

(b) Si el microprocesador coloca en su bus de direcciones el valor $A03B, que chip sera
seleccionado, y que posicion del mismo sera accedida?

(c) Suponiendo que el penultimo chip de RAM (segun el orden del mapa de memoria disenado)
esta siendo seleccionado, y que se esta accediendo a la posicion $1EC2 del mismo, que valor ha
colocado el microprocesador en su bus de direcciones?

Enunciado 1-12

Disenar el subsistema de memoria para un microprocesador de 16 lneas de direcciones y 8 bits


de datos. Se dispone de dos chips de memoria RAM, de 16Kx8 (M1) y 4Kx8 (M2), y un chip de
ROM de 8Kx8 (M3), todos ellos con senal de seleccion activa a nivel bajo. Las posiciones mas
bajas del del espacio de direccionamiento deben estar cubiertos con un total de 20KB de RAM,
mientras que en las posiciones mas altas deben ubicarse 8KB de ROM. El resto del espacio de
direccionamiento debe quedar libre para futuras ampliaciones del subsistema de memoria.

(a) Representar el mapa de memoria, el circuito de decodificacion y la interconexion entre


chips de memoria.

(b) Determinar que chip sera seleccionado, y que posicion del mismo sera accedida, si el
microprocesador coloca en el bus de direcciones los valores: (b.1) $25F8, (b.2) $F01A, (b.3)
$6ABD.

(c) Determinar que direccion esta proporcionando el microprocesador si el chip seleccionado


y la posicion fsica accedida dentro del mismo es: (c.1) M3, $1BFF; (c.2) M2, $1732; (c.3) M2,
$74A.

Enunciado 1-13

Determinar cuales de los subsistemas de memoria de la figura 4 esta mal disenado, justificando
brevemente las respuestas.
1.3. EJERCICIOS 9

A15 CS A15 CS

a14-0 d7-0 a14-0 d7-0


ROM 32K8 ROM 32K8

CS CS

a14-0 d7-0 a14-0 d7-0


ROM 32K8 ROM 32K8
A14-0 A14-0
15 15
D7-0 D7-0
8 8

(a) (b)

A15 CS A0 CS
D7-4
a14-0 d3-0 a14-0 d7-0
4
ROM 32K4 ROM 32K8

CS CS
D3-0
a14-0 d3-0 a14-0 d7-0
4
ROM 32K4 ROM 32K8
A14-0 A15-1
15 15
D7-0 D7-0
8 8

(c) (d)
Figura 4: Mapa de memoria (enunciado 1-13)

Enunciado 1-14

Se dispone de un microprocesador de 16 bits de datos y 15 bits de direcciones y de cuatro chips


de 4Kx8 de RAM y dos de 8Kx8 de ROM, con senales de seleccion activas a nivel alto. Se desea
que las posiciones de memoria mas bajas esten ocupadas por ROM y las mas altas por RAM.
Disenar el sistema de decodificacion.

Enunciado 1-15

Se dispone de un microprocesador de 16 bits de datos y 23 bits de direcciones y de chips de RAM


de 256Kx8, con senales de seleccion activas a nivel bajo.

(a) Disenar un subsistema de memoria de 2MB de RAM, ubicados en las posiciones mas altas
10

del espacio de direccionamiento. Considerar que las senales de seleccion de byte BE1 y BE0 son
activas a nivel bajo.

(b) Determinar el chip seleccionado y la direccion fsica accedida si el microprocesador realiza


una lectura de tamano byte de la posicion logica $F00150. Considerar que las posiciones pares
se acceden mediante D158 y las impares mediante D70 .

(c) Repetir el apartado anterior para la posicion logica $F00151.

(d) Determinar la posicion logica que implique un acceso de tamano palabra de 16 bits a la
direccion fsica $10FA0 de los chips que ocupan las posiciones mas bajas.

1.4 Ejercicios

Enunciado 1-16

Partiendo del estado inicial indicado, ejecutar independientemente las instrucciones (a)-(j), es-
pecificando como quedan los registros y la memoria.

$0001FE 00
A0 0000 0200 $0001FF 02
D0 0000 0011 $000200 00
D1 1F0B 0002 $000201 03
$000202 0B
$000203 1F

1. MOVE.W #$1000, (A0)+

2. LEA $1000, A0

3. ADDQ.W #6, D0

4. MULU (A0), D0

5. DIVU -4(A0, D1.W), D0

6. CMP.L D1, D0

7. OR.B D0, -(A0)

8. ROL.W #4, D0

9. SWAP D0

10. EXG D1, D0


1.4. EJERCICIOS 11

Enunciado 1-17

Partiendo del estado inicial siguiente, determine la ejecucion del siguiente programa:

A0 0020 0000
D0 FFFF 0003 MOVE.W D1,(A0)
D1 ???? 2410 ASR.W (A0)
MOVE.L -1(A0,D0.W),D2
D2 ???? ????
CMP.B D2,1(A0)
BNE fin
ADD.W D2,D0
Direccion Contenido SWAP D0
$200000 ???? EXT.L D0
$200002 ABCD LEA $200003, A0
$200004 0008 fin: BRA fin

Enunciado 1-18

Se desea desarrollar una subrutina en el MC68000 que permita determinar si un triangulo es


rectangulo o no. Dicha subrutina utiliza las longitudes (tamano palabra) A, B, C del triangulo,
que estan almacenadas en la memoria, y devuelve RES=1 (tambien por memoria) en caso de
que el triangulo sea rectangulo y RES =0 en otro caso. Se sabe que un triangulo es rectangulo
cuando cumple la relacion C 2 = A2 +B 2 . Siga el algoritmo que se muestra a continuacion, donde
las variables temporales Miembro1 y Miembro2 deberan implementarse por los registros D1 y D2
respectivamente. Todas las variables de memoria deben situarse a partir de la direccion $1000 y
la subrutina debe ubicarse a partir de la direccion $2000.

Subrutina RECTANGULO (A,B,C) dev RES


RES 0
Miembro1 A2 + B 2
Miembro2 C 2
Si Miembro1 = Miembro2
RES 1
Fsi
End RECTANGULO

Enunciado 1-19

Se desea conocer, a partir de una tabla de menos de 255 datos tipo byte con signo almacenados en
la direccion de memoria TABLA, cuantos datos son positivos y cuantos negativos, descartando
aquellos que son cero. El tamano de la tabla se almacena en la direccion N, el numero de datos
positivos se almacenara en la variable POSITIVOS y el numero de los negativos en NEGATIVOS.
12

Todas las variables que use el programa, junto con la propia tabla, deben estar situadas a partir
de la direccion $4000. Asimismo el programa debe estar ubicado a partir de la direccion $1000.

Enunciado 1-20

Se dispone de chips RAM y ROM de 8 bits para implementar un mapa de memoria entorno
al MC68000 teniendo en cuenta que, para acceder a ROM, se han reservado el rango de direc-
ciones: $000000-$00FFFF y, para la RAM, el rango: $020000-$023FFF. Disene el sistema de
decodificacion.

Enunciado 1-21

Un determinado dispositivo basado en el MC68000 dispone de ciertas funciones basicas de en-


trada/salida (BIOS) a las que se puede acceder mediante las instrucciones de TRAP. En concreto,
la funcion 0 del TRAP #2 permite presentar un mensaje en el monitor del sistema. Al ejecutar
el TRAP #2, la rutina de excepcion que viene incluida en el BIOS y que no hay que disenar,
busca la palabra contenida del registro D0; si esta es 0 (funcion 0 del TRAP #2) entonces toma
el contenido del registro de direcciones A0 como puntero a la cadena de texto ASCII que se
representara en la pantalla. La funcion 0 de la rutina TRAP #2 mostrara todos los caracteres
encontrados en la cadena hasta que alcance el byte $0. Se desea disenar la rutina de excepcion
asociada a Division por Cero, de forma que esta, usando los servicios que ofrece el TRAP #2,
presente en pantalla el mensaje: Error de division por cero.

Вам также может понравиться