1. Simulador de M´quina Sencilla*
a
Juan A. Ortega, Natalia Ayuso, Luis M. Ramos
Dpto. Inform´tica e Ingenier´ de Sistemas - Universidad de Zaragoza
a ıa
Centro Polit´cnico Superior - 50.018 Zaragoza
e
juanortega@able.es, nayuso@unizar.es, luisma@unizar.es
Resumen
M´quina Sencilla es una herramienta de apoyo
a
a la docencia en cursos b´sicos de arquitectu-
a
ra de computadores. Est´ basada en la simu-
a
laci´n de un procesador simple que presenta
o
a los alumnos los bloques funcionales b´sicos
a
que comprenden un computador. Para llevar
a cabo esta simulaci´n, se apoya en la ejecu-
o
ci´n controlada de programas escritos en un
o
ensamblador muy b´sico.
a
1. Introducci´n
o
La m´quina sencilla fue creada por Juan J.
a
Navarro para ser usada en primer curso de la
Facultad de Inform´tica de Barcelona en 1984.
a
Posteriormente se public´ un libro que recoge
o
esta arquitectura pedag´gica [1]. El simulador
o
M´quina Sencilla implementa un entorno que
a Figura 1: Montador
permite tanto la edici´n y compilaci´n de fuen-
o o
tes en ensamblador como su posterior ejecu-
La interfaz de usuario est´ basada en el si-
a
ci´n, pudiendo el usuario conocer el estado del
o
mulador COVI [2] y ha sido pensada para tres
procesador en todo momento. La herramienta
escenarios distintos: apoyo al profesor en las
puede simular tres variantes del procesador.
clases te´ricas, apoyo al alumno en el estudio y
o
La primera es la versi´n base, en la cual se
o
herramienta de pr´cticas de laboratorio. Para
a
apoyan el resto de versiones. La segunda es
adaptarse a sus diferentes usos, M´quina Sen-
a
una variaci´n de la primera en la que se han
o
cilla dispone de diferentes elementos de ayuda
a˜adido tres nuevas instrucciones. Por ultimo,
n ´
que gu´ al usuario a trav´s del programa.
ıan e
dispone de una versi´n microprogramable en
o
M´quina Sencilla es de libre distribuci´n y
a o
la que tanto el comportamiento como el for-
puede obtenerse a trav´s de la p´gina web del
e a
mato de las instrucciones debe ser definido por
grupo de Arquitectura de Computadores de la
el usuario y que a˜ade un modo de direcciona-
n
Universidad de Zaragoza (gaZ) 1 .
miento. Este simulador va dirigido a alumnos
Para su funcionamiento requiere 8 Megaby-
de asignaturas b´sicas de arquitectura de com-
a
tes de espacio en el disco duro y sistema ope-
putadores y de dise˜o digital.
n
rativo Windows (98, NT, 2000 o XP).
*
Financiado por el proyecto de innovaci´n docen-
o
1
te “Simulador de Procesadores Virtuales para Docen- http://webdiis.unizar.es/gaz/docencia/simula.
cia”, convocatoria 2004. Universidad de Zaragoza. html
2. Figura 3: Memoria
la versi´n de M´quina Sencilla que este-
o a
mos simulando, podr´ ser cableada o mi-
a
croprogramada. En caso de ser cableada,
permite acceder al diagrama de estados,
mientras que en el caso contrario ofre-
ce al usuario el correspondiente micropro-
Figura 2: Organizaci´n
o grama.
• Memoria (figura 3). Permite observar el
el programa y los datos en todo momen-
2. M´quina Sencilla
a
to. La instrucci´n que se est´ ejecutando
o a
aparece resaltada.
2.1. Descripci´n de la herramienta
o
• Ventanas auxiliares. Hay cuatro ventanas
La herramienta est´ compuesta por dos m´du-
a o
los: el montador (figura 1) y el simulador. El m´s que muestran el contenido de algunos
a
montador permite la edici´n de fuentes en en-
o registros y se˜ales del procesador.
n
samblador, as´ como su compilaci´n, en un en-
ı o
En cuanto a la ejecuci´n controlada, la
o
torno amigable con resaltado de sintaxis y de
herramienta permite llevarla a cabo de cuatro
errores.
modos distintos:
El simulador permite ejecutar de forma con-
trolada los programas compilados en el mon- • Ejecuci´n ciclo a ciclo.
o
tador, mostrando al usuario en todo momento
• Ejecuci´n instrucci´n a instrucci´n.
o o o
el estado de la m´quina. Para ello cuenta con
a
las siguientes ventanas: • Ejecuci´n de un determinado n´mero de
o u
instrucciones dado por el usuario. En este
• Organizaci´n o unidad de proceso (fi-
o caso, cada 50 instrucciones se pregunta al
gura 2). Muestra la organizaci´n de la
o usuario si desea proseguir con la simula-
M´quina Sencilla, compuesta por los ele-
a ci´n.
o
mentos b´sicos de un computador: me-
a
• Ejecuci´n hasta breakpoint. El simulador
o
moria RAM unificada, unidad aritm´tico-
e
permite insertar puntos de ruptura en las
l´gica (ALU), contador de programa
o
instrucciones, a trav´s de la ventana de
e
(PC), registro de instrucciones (IR), re-
memoria. Al igual que en el caso anterior,
gistros de operandos (A, B), registro de
se pregunta al usuario cada 50 instruccio-
detecci´n de cero (FZ) y varios compo-
o
nes si se desea continuar, para evitar que
nentes combinacionales.
un punto de ruptura situado en una ins-
• Unidad de control. Muestra la unidad de trucci´n inaccesible, “cuelgue” el progra-
o
control de la m´quina. Dependiendo de
a ma.
3. En cuanto a la unidad de control de esta pri-
mera versi´n, la herramienta permite al usua-
o
rio elegir si la desea cableada o microprogra-
mada. A su vez, si se elige cableada, se pueden
escoger dos aut´matas diferentes con distinto
o
nivel de optimizaci´n.
o
La segunda versi´n extiende el repertorio de
o
la primera con tres nuevas intrucciones, carac-
terizadas por tener un unico operando en me-
´
moria. Dos de ellas tienen el segundo operan-
do codificado en la propia instrucci´n, es de-
o
cir, es un inmediato. Las nuevas instrucciones
son: CLEAR, que pone a cero una posici´n de
o
Figura 4: Monitorizaci´n de se˜ ales
o n
memoria; MOVD, que carga una constante en
una posici´n de memoria y ACUM, que acu-
o
mula una constante en una direcci´n de me-
o
Adem´s, para facilitar el seguimiento de la
a
moria. En este caso la unidad de control s´lo
o
ejecuci´n por parte del usuario, se realzan los
o
puede ser cableada.
cables que han estado activos en el ultimo ci-
´
La ultima versi´n no posee ning´n reper-
´ o u
clo. Asimismo, tambi´n es posible monitorizar
e
torio de instrucciones definido, sino que se
su contenido en tres formatos distintos: bina-
proporcionan cuatro instrucciones gen´ricase
rio, hexadecimal y entero (figura 4).
(inst0, inst1, inst2 e inst3 ) que el usuario de-
El repertorio de instrucciones es muy b´si-
a
be configurar, microprogramando cada una de
co, dada la simplicidad del procesador. Todas
ellas y especificando el n´mero de operandos.
u
las instrucciones del repertorio utilizan direc-
Adem´s, en la ruta de datos se ha a˜adido un
a n
cionamiento directo, ya que la m´quina carece
a
registro que permite direccionamiento indirec-
de banco de registros.
to. La unidad de control de esta versi´n s´lo
oo
Como se ha mencionado anteriormente, la
puede ser, obviamente, microprogramada. Se
herramienta permite simular tres variantes de
trata de una versi´n abierta pensada para que
o
M´quina Sencilla. Cada versi´n introduce lige-
a o
el usuario pueda crear su propio repertorio de
ras modificaciones en el repertorio de instruc-
instrucciones.
ciones. La primera de ellas, que es la base del
resto, cuenta con las siguientes operaciones:
• Instrucciones aritm´ticas. Cuenta con una
e 2.2. Aplicaci´n docente
o
instrucci´n de suma (ADD) y una ins-
o
trucci´n de comparaci´n (CMP ), que ac-
o o La herramienta M´quina Sencilla s´lo supone
a o
tiva el flag FZ dependiendo de si los datos conocimientos b´sicos de dise˜o digital, es de-
a n
comparados son iguales o no. cir, sistemas combinacionales (multiplexores,
sumadores, ALU, . . . ) y secuenciales. Su uso,
• Instrucciones de transferencia de datos.
por tanto, quedar´ encuadrado en asignaturas
ıa
Proporciona la instrucci´n MOV, que per-
o
b´sicas de arquitectura de computadores y de
a
mite mover datos de una posici´n a otra
o
dise˜o digital.
n
de memoria.
El simulador se ha utilizado con resultados
• Instrucciones de control. Proporciona la positivos en las asignaturas “Sistemas L´gi-
o
cos” y “Fundamentos de Computadores I” (1o
instrucci´n BEQ, que salta a una posici´n
o o
de memoria especificada dependiendo del de Ingenier´ Inform´tica e Ingenier´ de Tele-
ıa a ıa
valor del flag FZ sobre el que opera la comunicaci´n) del Centro Polit´cnico Superior
o e
instrucci´n de comparaci´n.
o o de la Universidad de Zaragoza.
4. 2.2.1. Apoyo en las clases de teor´
ıa que se persegu´
ıa.
La herramienta M´quina Sencilla sirve de apo-
a 2.2.3. Herramienta de apoyo al estudio
yo al profesor en las clases de teor´ ya que,
ıa
Uno de los problemas de M´quina Sencilla es
a
tras explicar los fundamentos del procesador,
la abstracci´n que debe realizar el alumno para
o
los alumnos pueden ver un ejemplo real de fun-
su estudio y comprensi´n. Esta herramienta se
o
cionamiento. El simulador les permite observar
presenta como fundamental durante el tiempo
como los datos recorren la unidad de proceso,
de estudio, ya que los alumnos pueden escri-
apreciando al mismo tiempo el estado y con-
bir sus propios programas y microprogramas y
tenido de la memoria, el valor que poseen los
“ver” su ejecuci´n paso a paso.
o
registros, el estado de la unidad de control y
La herramienta est´ pensada para que pue-
a
el valor de sus se˜ales.
n
da ser utilizada sin problemas por el alumno,
debido a su facilidad de instalaci´n y su com-
o
2.2.2. Pr´cticas
a pleta ayuda, tanto en el montador como en el
simulador. La del montador indica el significa-
Hasta ahora, el contacto de los alumnos con
do de los errores que se obtienen al compilar, y
M´quina Sencilla se limitaba a las clases de
a
otros aspectos de la interfaz de usuario. La del
teor´ y no se ten´ un contacto real con el
ıa ıa
simulador proporciona un tutorial y presenta
procesador. Gracias a la herramienta, ahora
al usuario las funciones de simulaci´n b´sicas.
oa
es posible que los alumnos apliquen los cono-
Por otra parte, la herramienta cuenta tambi´n e
cimientos te´ricos adquiridos en las sesiones de
o
con ayuda contextual y con un di´logo de bien-
a
pr´cticas.
a
venida que gu´ al estudiante por las diferentes
ıa
Durante el desarrollo del simulador, se ha
tareas que se pueden realizar.
utilizado en una de las pr´cticas de la asigna-
a
tura “Fundamentos de Computadores I”, para
3. Conclusiones
evaluar su funcionamiento y corregir errores.
Dicha pr´ctica ha consistido en:
a
El simulador de M´quina Sencilla facilita a
a
los alumnos la comprensi´n de la misma y sirve
o
• Analizar un programa con c´digo auto-
o
de apoyo tanto en la clase de teor´ como en
ıa,
modificable para averiguar qu´ hace, eje-
e
las sesiones de pr´cticas y en el estudio per-
a
cut´ndolo posteriormente en el simulador.
a
sonal. Los alumnos valoran positivamente la
• Calcular el CPI del programa anterior pa- herramienta, as´ como su utilizaci´n en pr´cti-
ı o a
ra cada unidad de control (cableada nor- cas.
mal, cableada optimizada y microprogra-
mada). Referencias
• Escribir el microprograma de una instruc- [1] Eduard Ayguad´ i Parra, Juan Jos´ Na-
e e
ci´n de acumulaci´n de una constante en
o o varro Guerrero, Miguel Valero Garc´ ıa,
una posici´n de memoria.
o La M`quina senzilla : introducci´ a
a o
l’estructura b`sica d’un computador,
a
A pesar de que la versi´n que se utiliz´ no
o o
ISBN 84-7653-213-X, Departament
era la final y todav´ ten´ gran cantidad de
ıa ıa
d’Arquitectura de Computadors, UPC,
fallos, la valoraci´n media otorgada por los
o
1992.
alumnos ha sido de 7,6. El comentario m´s a
generalizado entre los alumnos fue que la [2] J. Alastruey, O. Blasco, A. Hurtado, P.
pr´ctica les result´ muy util para afianzar sus
a o ´ Ib´nez y V. Vi˜als, COVI: Computador
a˜ n
conocimientos de M´quina Sencilla, al poder
a Virtual, XIII Jornadas de Paralelismo,
seguir la ejecuci´n de un programa sobre el
o L´rida (Espa˜a), 9-11 Sept. 2002.
e n
simulador que era, precisamente, el objetivo