TECNOLOGiIA DE LOS COMPUTADORES

Anuncio
TECNOLOGIA DE LOS COMPUTADORES
Examen convocatoria Junio 2003.
Departamento de Arquitectura de Computadores
APELLIDOS:
NOMBRE:
Fecha: 30 de Junio de 2003
I. Informatica I.T.I. Gestion I.T.I. Sistemas
DNI:
Grupo:
A B C D
1.- En la gura 1 se muestra las unidades de datos y control de una maquina de proposito especco que permite
calcular el maximo comun divisor (m.c.d.) de dos valores A y B. Se pide:
(a) Dise~nar una unidad de control microprogramada para la unidad de datos propuesta. Emplea para ello el espacio se~nalado en la gura 1.
Se han de especicar claramente el tama~no de
los buses, registros, memorias y otros elementos
que se utilicen.
(b) Completar el dise~no de la unidad de control con
el contenido de la memoria de microprograma,
indicandolo en la tabla 1. Puedes incorporar a
la microinstruccion los puntos de control que
consideres necesario, indicando claramente su
cometido. Comenta usando notacion RTL que
hace cada microinstruccion.
El funcionamiento deseado para la maquina es
el que se muestra en el diagrama de estados en la
gura adjunta. A efectos de implementacion se
podra considerar, si fuera necesario, que un estado puede corresponder a varios ciclos de reloj.
init
Inicio
init
A <- BUS_A
B <- BUS_B
S
Z
Z <- /RESTA(A;B)
S <- RESTA(A;B)[7]
S
B<-RESTA(B;A)
Z
Z
A<-RESTA(A;B)
Fin = 1
Comentario en RTL
Dir. c1 c2 c3 c4 c5 c6 c7
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
16
17
18
19
20
Tabla 1: Memoria de microprograma (problema 1)
1
8
8
BUS_A
BUS_B
Unidad de Control
0
1
0
c5
1
c6
8
8
A Load
c1
B Load
8
c2
8
0
1
0
c3
1
8
c4
8
c7
X
Z
S
Y
2
RESTA(X;Y)
8
c1
init
Figura 1: Unidades de datos y control del problema 1.
fin
c2
c3
c4
c5
c6
c7
2.- En la siguiente tabla se recoge el formato de algunas de las instrucciones de una maquina hipotetica:
Formato de la instruccion
#Pal CO Reg1 Reg2
X
OPER 2a Pal.
1
000
rd
dir
XXX
1
001
rd
rf
XXX
oper
XXX
1
010
rd
dir
XXX
(C 2)
1
011
rd
rf
desp
XXX
1
100
XXX
desp (C 2)
XXX
2
101
rd
rf
XXX
oper
cte (C 2)
(XXX - no usado) ( Los campos marcados con (C 2) corresponden a enteros en convenio complemento a 2)
Mnemonico
LD rd, (dir)
OPER rd, rf
ST rd, (dir)
LD rd, desp(rf)
JMP desp
OPER rd, rf, cte
Instruccion
Signicado
rd
M (dir )
rd
oper (rf ; rd )
M (dir )
rd
rd
M (rf + desp )
PC
PC + 1 + desp
rd
oper (rf ; cte )
Observese que las instrucciones pueden ocupar una o dos palabras (de 16 bits cada una) en memoria
principal. La primera palabra contiene varios campos dependiendo de la instruccion concreta, tal y como
se muestra en la tabla anterior.
Estos campos son el codigo de operacion (CO) con los 3 bits m
as signicativos, dos campos de registro (Reg1 y Reg2), de 3 bits cada uno, un campo de direccion (dir) de 10 bits, un campo de desplazamiento (desp) de 7 bits que es un entero representado en el convenio del complemento a dos (C2), y un
campo con la operacion aritmetica a realizar (oper) de 2 bits. Las operaciones aritmeticas posibles son
AND/OR/ADD/SUB y se codican mediante 00/01/10/11 respectivamente.
La segunda palabra, de ser necesaria, almacena el valor de una constante entera de 16 bits representada
usando el convenio del complemento a dos (C2).
El ciclo de instruccion, para las instrucciones propuestas, se muestra en la siguiente gura:
s1
IR <- M(PC)
s2
Decodificación
PC <- PC + 1
LD rd, (dir)
rd <- M(dir)
s3
OPER rd, rf
s3
s4
RA <- rf
ST rd, (dir)
s3
M(dir) <- rd
LD rd, desp(rf)
s3
RA <- rf
JMP desp
s3
OPER rd, rf, cte
PC <- PC + desp
s3 RC <- M(PC)
RA <- rf
RB <- rd
rd <- op(RA, RB)
s4
s5
TMP <- RA + desp
rd <- M(TMP)
s4
s5
PC <- PC + 1
rd <- op(RA, RC)
(a) Construye un datapath basado en las unidades funcionales que aparecen en la gura adjunta, y que son:
Memoria principal de 1024 16 bits. Se direcciona a traves de la entrada Direccion. Los datos en
lectura se reciben a traves de DatoOut y la escritura de datos se realiza por DatoIn.
Banco de 8 registros de 16 bits. Se pueden direccionar dos registros para lectura mediante las entradas
DA y DB, obteniendose los datos por las salidas A y B, respectivamente. Simultaneamente se puede
escribir el registro direccionado en DIn (que coincide con DB), con el valor presente en la entrada In.
ALU. Permite realizar las siguientes operaciones: AND, OR, SUMA y RESTA de los valores presentes
en sus entradas, en funcion del valor de las se~nales de control c10,c11 (00,01,10,11, respectivamente).
Registros: IR, RA, RB, RC, todos de 16 bits.
Banco de 2 registros, PC y TMP, de 10 bits cada uno.
10
c3
Load
sel
TMP
0
PC
1
c4
16
RA
c5
3
3
10
DA
W
DB/DIn
A
load
c7
16
16
16
Banco de
Registros
16
In
B
16
ALU
16
RB
load
16
c8
16
16
IR
load
16
oper
2
c10,c11
c6
16
10
c1
c2
W/R
CS
16
Memoria Principal
Dirección
DatoOut 16
DatoIn
RC
load
c9
16
16
En el dise~no se puede incluir la circuitera combinacional (puertas logicas, multiplexores, etc.), constantes, buses y elementos para ajustar el tama~no de los buses que
creas necesarios. Debes especicar claramente, la funcion de los puntos de control y el tama~no de los buses, que hayas a~nadido. Se podra usar etiquetas como en OrCAD.
Nota:
(b) Rellena el siguiente cronograma suponiendo que inicialmente PC = 100H y que el contenido de la memoria es Mem[i] = i, para cada direccion de memoria i
(i 0), excepto para la posiciones de la siguiente tabla que contienen el programa que se ejecuta (todos los valores estan expresados en hexadecimal, como
indica el sujo H). Asimismo completa dicha tabla indicando en ensamblador, siempre que sea posible, la instruccion y operandos a los que corresponde el codigo
maquina mostrado.
Dir.
100H
101H
102H
103H
104H
105H
106H
107H
Contenido
0505H
68F6H
A902H
0200H
8002H
0016H
4601H
4A02H
Codigo ensamblador
CLOCK
PC
100H
DatoOut
DatoIn
IR
RA
RB
RC
TMP
>Se ha(n) modicado alguna(s) posicion(es) de la memoria? En caso armativo, >cual(es) y que valor se ha almacenado?
Direccion Nuevo Contenido
Descargar