manual simplez

154
Manual de Usuario Simulador de Símplez Revisión 1.0 Autor: Iván Peña Rueda

Upload: supersaiyajin

Post on 16-Oct-2015

28 views

Category:

Documents


1 download

TRANSCRIPT

  • Manual de UsuarioSimulador de Smplez

    Revisin 1.0

    Autor: Ivn Pea Rueda

  • Contenidos

    Prefacio...............................................................................................................................7Usuarios de este manual..................................................................................................7Requerimientos mnimos.................................................................................................8Instalacin.......................................................................................................................8Organizacin del manual ................................................................................................9Convenciones tipogrficas...............................................................................................9Bibliografa...................................................................................................................10

    1. El entorno de simulacin...............................................................................................111.1 Ventanas del Simulador...........................................................................................12

    Simulador de Smplez...............................................................................................12Barra de Mens....................................................................................................13Barras de Herramientas........................................................................................15rea de estado de ejecucin.................................................................................16rea de monitorizacin........................................................................................17

    Ruta de Datos...........................................................................................................18Secuenciador............................................................................................................20Pantalla y Teclado....................................................................................................24Editor de programas.................................................................................................25Editor de Microprogramas........................................................................................27Dilogos Modales.....................................................................................................28Ventanas de manejo de ficheros................................................................................29

    1.2 Flexibilidad.............................................................................................................30

    2. Introduccin de un programa.........................................................................................312.1 Editor de programas................................................................................................312.2 Tablas de Memoria..................................................................................................322.3 Volcado de Memoria...............................................................................................362.4 Nuevo programa......................................................................................................36

    3

  • 4 Manual de Usuario

    3. Ejecucin de un programa........................................................................................373.1 Controles...........................................................................................................38

    Modos de ejecucin.............................................................................................41Paso a paso.....................................................................................................42Continuo.........................................................................................................42Continuo hasta................................................................................................42

    3.2 rea de informacin..........................................................................................42Informacin de ejecucin....................................................................................43Informacin de estado.........................................................................................43

    3.3 Reseteo del Hardware........................................................................................45

    4. Ruta de Datos...........................................................................................................474.1 Secuenciador......................................................................................................484.2 Micrordenes.....................................................................................................494.3 Unidad AritmticoLgica................................................................................504.4 Biestables...........................................................................................................514.5 Buses.................................................................................................................544.6 Memoria Principal.............................................................................................55

    Restricciones temporales.....................................................................................574.7 Dispositivos perifricos......................................................................................59

    Controlador de Teclado.......................................................................................60Controlador de Pantalla.......................................................................................61

    4.8 Circuitos Combinacionales................................................................................634.9 Memoria de Control...........................................................................................654.10 Seal de Reloj..................................................................................................674.11 Controles.........................................................................................................684.12 Funcionamiento conjunto.................................................................................68

    5. Cronogramas............................................................................................................755.1 Representacin de las seales.............................................................................76

    Micrordenes......................................................................................................77Buses...................................................................................................................78

    5.2 Cronogramas de las instrucciones.....................................................................80Estado I0.............................................................................................................81Instruccin ST.....................................................................................................82Instruccin LD....................................................................................................84Instruccin ADD.................................................................................................85Instruccin BR....................................................................................................86Instruccin BZ....................................................................................................87Instruccin CLR..................................................................................................90Instruccin DEC..................................................................................................91Instruccin HALT...............................................................................................92

    6. Entrada y salida........................................................................................................936.1 Puertos...............................................................................................................946.2 Representacin de los caracteres........................................................................96

  • Contenidos 5

    7. Herramientas..........................................................................................................1017.1 Editor de programas.........................................................................................101

    Operaciones de manejo de texto........................................................................107Lenguaje ensamblador.......................................................................................108

    Sintaxis del lenguaje ensamblador................................................................108Etiquetas.......................................................................................................109Instrucciones.................................................................................................110Seudoinstrucciones.......................................................................................111Directivas.....................................................................................................113Comentarios.................................................................................................115Aritmtica de etiquetas y direcciones............................................................115

    Ensamblado y ejecucin de programas..............................................................1177.2 Editor de Microprogramas...............................................................................120

    8. Programacin de Smplez.......................................................................................1258.1 Niveles de abstraccin.....................................................................................1258.2 Cdigo nemnico.............................................................................................1268.3 Modelo Funcional de Smplez..........................................................................126

    Convenios para la representacin de la informacin..........................................127Nmeros.......................................................................................................127Caracteres.....................................................................................................128Instrucciones.................................................................................................128

    Repertorio de Instrucciones...............................................................................1288.4 Almacenado de Programas...............................................................................1298.5 Programacin utilizando las tablas de memoria................................................1308.6 Programacin a travs del editorensamblador................................................140

    9. Microprogramacin de Smplez..............................................................................1479.1 Conceptos tericos...........................................................................................1479.2 Implementacin...............................................................................................151

    Final de instruccin...........................................................................................151Instruccin en curso..........................................................................................151

    9.3 Microprogramacin..........................................................................................152

  • 6 Manual de Usuario

  • Prefacio

    Smplez es un ordenador didctico diseado y desarrollado por GregorioFernndez en su libro de texto "Conceptos bsicos de Arquitectura y SistemasOperativos", [Fernndez,98].

    Gracias al simulador descrito a lo largo de este manual, se pueden escribir,ensamblar y ejecutar programas en Smplez. El simulador ofrece varios modos deejecucin y un conjunto completo de herramientas que permiten al usuario entender afondo el funcionamiento de Smplez.

    El simulador est desarrollado en Java. Lo que permite ejecutar el mismo binarioen diferentes plataformas, y superar una de las limitaciones de los simuladores deSmplez existentes hasta la fecha.

    Usuarios de este manual

    Este manual est destinado a toda persona interesada en aprender conceptosbsicos de arquitectura de computadores a travs del ordenador ficticio Smplez.Aunque el manual trata de cubrir todos los aspectos tericos necesarios para poderutilizar Smplez, es altamente recomendable el estudio de algunas de las lecciones dellibro de referencia [Fernndez,98].

    El manual est disponible en varios formatos en la pgina de web de la asignaturade Fundamentos de Ordenadores, Departamento de Ingeniera Telemtica de laEscuela Superior de Ingenieros de Telecomunicacin de la Universidad Politcnicade Madrid. La URL de la citada escuela es:

    http://www.etsit.upm.es

    7

  • 8 Manual de Usuario

    Requerimientos mnimos

    Como requisito previo a la instalacin y utilizacin del simulador, es necesariotener disponible en el sistema el conjunto de herramientas JDK, con una versin igual osuperior a la 1.2. ste se puede obtener de la URL:

    http://java.sun.comUna vez instalado el jdk se tendr un directorio:

    c:\jdk1.2\binen el caso de Windows 95/98/NT, y algo parecido a:

    /usr/java1.2/binen el caso de Unix/Linux.

    Para independizar las explicaciones respecto a la plataforma, se utilizar$JAVAHOME para referirse a estos directorios.

    En el Manual, para hablar de directorios, se usar la terminologa de Unix, por loque la barra inclinada utilizada para separarlos ser el carcter /. En el caso deWindows se debe utilizar \.

    El simulador se ejecuta adecuadamente en un Pentium 133 Mhz con 32 Mb dememoria, pero es aconsejable utilizar uno de velocidad superior y 64 Mb de memoria.

    Para un correcto funcionamiento de ventanas como la de Pantalla y Teclado, serecomienda tener instalados los diferentes tamaos de letra de la fuente Courier.

    Instalacin

    El simulador se encuentra empaquetado en un nico fichero. El compresorutilizado es el comando jar, incluido entre las herramientas de la mquina virtual deJava, y que utiliza el formato zip. Dicho fichero tendr extensin jar:

    simulador.jarEl primer paso para instalarlo consiste en desempaquetar el directorio de

    imgenes dentro del directorio de instalacin, para lo cual se ejecutar desde lnea decomandos:

    $JAVAHOME/jar xvf simulador.jar Imagenes

  • Prefacio 9

    Tras esto, en el directorio de instalacin deben existir tanto el ficherosimulador.jar como el directorio Imagenes, ambos necesarios.

    Para arrancar el simulador se ejecutar:$JAVAHOME/java jar simulador.jar

    Organizacin del manual

    El manual comienza describiendo el entorno de simulacin y sus componentes.Esto permite al usuario tener una visin global del mismo.

    En los siguientes captulos se abordan las diferentes maneras en que se puedeintroducir y ejecutar un programa en el simulador.

    Los siguientes cuatro captulos estn dedicados a describir en detalle la utilizacinde las diferentes herramientas que incluye el simulador: Ruta de Datos, Cronogramas,mdulo de Pantalla y Teclado, editor de programas y editor de Memorias de Control omicroprogramas.

    Por ltimo se introducen la programacin y microprogramacin de Smplezutilizando el simulador.

    Convenciones tipogrficas

    En la Tabla 1 se describen las convenciones tipogrficas utilizadas en este Manual.

    Tipo de letra Significadoabdefg12345 Comandos de sistema y secciones de cdigo"abcdefg12345" Referencias

    Tabla 1: Convenciones tipogrficas del Manual.

    Cuando haya que indicar algo importante se resaltar como una nota con elsiguiente formato:

    Nota Esto es algo importante a destacar.

  • 10 Manual de Usuario

    Bibliografa

    [Fernndez,98] Conceptos bsicos de arquitectura y sistemas operativos. Curso deOrdenadores. (2da edicin) Ed. Syserso. Madrid 1998.

    [PattersonHennessy,95] Organizacin y diseo de computadores. La interfazhardware/software. (2da edicin) Ed. McGrawHill. Espaa 1995.

  • Captulo 1

    El entorno de simulacin

    El simulador permite escribir y ejecutar programas de Smplez a nivel de mquinaconvencional. Para escribirlos se pueden introducir directamente en memoria,utilizando lenguaje mquina, o utilizar el editor desarrollado por Francisco JavierRodrguez incluido en el simulador, utilizando lenguaje ensamblador.

    Incluye un editor de Memorias de Control, de manera que es posiblemicroprogramar el secuenciador de Smplez. Es decir, es posible programar a nivel demicromquina y modificar el repertorio de instrucciones de Smplez. A este nivelcontrolamos el comportamiento de los elementos hardware de la mquina y decidimosqu queremos que hagan y cundo. La microprogramacin no siempre es sencilla ypuede acarrear conflictos entre los diferentes elementos. Todos estos conceptos seexplican en la segunda parte de [Fernndez,98], y para el caso concreto de Smplez enla leccin 11.

    Para facilitar la comprensin de los conceptos de microprogramacin laherramienta incluye un simulador grfico, que permite seguir la ejecucin a nivel deRuta de Datos, y un generador de cronogramas, que permite ver cmo evolucionan lasseales a lo largo del tiempo.

    Para interactuar con el usuario el simulador proporciona la pantalla y el teclado deSmplez

    En este captulo se describe cada uno de estos mdulos y sus diferentescomponentes.

    11

  • 12 Manual de Usuario

    1.1 Ventanas del Simulador

    El simulador se compone de siete ventanas principales, identificadas por losnombres que aparecen en el borde superior de las mismas. Adems, ante determinadasoperaciones o ante ciertas situaciones se abren otros dos tipos de ventanas, los llamadosDilogos modales y las ventanas de seleccin de ficheros.

    Simulador de Smplez

    Es la ventana principal del simulador y desde la cual se puede acceder a toda sufuncionalidad se muestra en la Figura 1.

    La ventana se compone de una barra de mens y el cuerpo principal de la misma.ste est a su vez dividido en 3 zonas diferentes; una barra de herramientas, un rea quemuestra el estado de ejecucin de la mquina y un rea de monitorizacin delSimulador.

    Figura 1: Ventana principal del Simulador.

  • Captulo 1. El entorno de simulacin 13

    Barra de MensLa barra de mens se muestra en la Figura 2.

    Desde ella se accede a los tres mens siguientes:

    Men de Archivo

    Abrir fichero de cdigo. Sustituye el contenido de la memoria por el cdigoque contiene un fichero con extensin .lns, generado por el editor deprogramas.

    Nuevo Contenido de memoria. Borra el contenido de la memoria,introduciendo en todas sus posiciones el valor cero.

    Volcar Memoria a Fichero. Guarda el contenido de toda la memoria en unfichero de extensin .vms. En algunos casos puede ser interesante guardar elcontenido actual de la memoria antes de realizar tales modificaciones en elprograma fuente.

    Cargar Fichero de volcado. Sustituye el contenido de la memoria con elcontenido de un fichero de volcado.

    Cargar Memoria de Control. Sustituye el contenido actual de la Memoriade Control por los microprogramas contenidos en un fichero de extensin.mcs.

    Salir. Permite salir del Simulador.

    Figura 2: Barra de mens.

    Figura 3: Men de Archivo.

  • 14 Manual de Usuario

    Men de Herramientas

    Editor de programas. Herramienta que permite escribir y ensamblarprogramas para Smplez.

    Editor de Microprogramas. Herramienta que permite escribirmicroprogramas para la Memoria de Control de Smplez.

    Ocultar/Mostrar paneles de Monitorizacin. Permite ocultar en cualquiermomento los paneles de mensajes de Smplez, de manera que la ventanaprincipal del simulador ocupe menos espacio en pantalla.

    Ayuda

    Versin. Informa sobre la versin del Simulador.

    Sobre el Autor. Informa sobre los autores del Simulador.

    Figura 4: Men de Herramientas.

    Figura 5: Men de Ayuda.

  • Captulo 1. El entorno de simulacin 15

    Barras de HerramientasEn primer trmino se encuentran las barras de herramientas, mostradas en la

    Figura 6, desde las que se puede controlar la ejecucin de la simulacin y abrir el restode mdulos que componen el Simulador.

    Los diferentes controles que componen la primera barra de herramientas son:

    Parada. Detener de la ejecucin.

    Arranque. Comenzar la ejecucin.

    Deshacer la ejecucin de una instruccin.

    Los controles que componen la segunda barra de herramientas son:

    Abrir/Cerrar la ventana de la Ruta de Datos.

    Abrir/Cerrar la ventana de los Cronogramas.

    Abrir/Cerrar la ventana de Pantalla y Teclado.

    Selector de Modo de Ejecucin.

    Nmero de instrucciones a ejecutar seguidas en el modoContinuo Hasta.

    Figura 6: Barras de herramientas.

  • 16 Manual de Usuario

    rea de estado de ejecucinA continuacin se encuentra el rea mostrada en la Figura 7 y que contiene

    informacin sobre el estado de ejecucin de la mquina. Desde aqu se puede tambinmodificar parte de ese estado.

    Se compone de los siguientes elementos:

    Programa en ejecucin. Nombre del programa cargado en ese momento enmemoria. En el caso de no haber cargado ninguno aparecer la etiqueta"Nuevo".

    Registros. Contenido de los registros de sistema. Los formatos devisualizacin son octal y decimal. Esta tabla es editable.

    En curso. Campo que muestra la instruccin actualmente en ejecucin.

    Ejecutadas. En este campo se indica el nmero de instrucciones ejecutadasdesde la ltima vez que se resete el estado de la mquina. El significadoexacto del reseteo y las situaciones en las que se produce se explicarn en elCaptulo 3.

    Programa. Tabla que muestra el contenido de la memoria. Se compone detres columnas. La primera muestra la direccin de memoria, la segunda sucontenido en notacin octal y la tercera muestra el contenido interpretadocomo una instruccin de Smplez. Esta tabla es editable.

    Memoria. Tabla que muestra el contenido de la memoria. Se compone dedos columnas. La primera es la direccin de memoria y la segunda elcontenido en notacin decimal. Esta tabla es editable.

    Figura 7: rea que muestra el estado de la ejecucin.

  • Captulo 1. El entorno de simulacin 17

    Memoria de Control. Selector que permite cambiar la Memoria de Controlcargada en el Secuenciador. Cuando se carga una nueva Memoria de Controlse aade a lista desplegable tras las dos Memorias que implementa elSimulador por defecto. Se pueden tener cargadas hasta diez memorias,contando las dos anteriores. Al cargar una ms se elimina la ltima de la lista.La Figura 8 muestra el selector tras haber cargado desde fichero dosMemorias de Control, "Prueba 2" y "Prueba 1".

    rea de monitorizacinPor ltimo se encuentra el rea de Monitorizacin del Sistema, compuesta por dos

    solapas y mostrada en la Figura 9:

    La solapa Mensajes de Smplez mostrar mensajes relacionados con el entornogrfico y con la ejecucin. As por ejemplo, algunas situaciones en las que semostrarn mensajes son la carga de un nuevo programa en la memoria, la seleccin deuna determinada Memoria de Control, la interrupcin de la ejecucin de una instrucciny la apertura o cierre de ciertas ventanas.

    Pero el verdadero valor de esta solapa aparece en ejecucin. Cuando la Ruta deDatos o los Cronogramas estn abiertos, se van mostrando mensajes que ayudan aentender qu ocurre en la mquina Smplez a medida que avanza la ejecucin;indicando qu cambios se van produciendo en los diferentes elementos.

    En la solapa de Mensajes de error se mostrarn los motivos de operacionesfallidas de edicin, carga de ficheros, etctera, como parte complementaria a losdilogos modales.

    Figura 8: Selector de Memorias deControl.

    Figura 9: rea de monitorizacin del Simulador.

  • 18 Manual de Usuario

    Una propiedad interesante de este rea de monitorizacin es que se puede ocultaren cualquier momento que sea necesario, lo que permite disminuir el rea que ocupa laventana principal.

    Ruta de Datos

    Esta ventana muestra la Ruta de Datos de Smplez. Para abrirla basta con pulsar elbotn indicado en el apartado que describe la barra de herramientas de la ventanaprincipal del simulador. El botn cambia de aspecto permitiendo saber si la ventana estabierta o cerrada.

    La ventana se divide en dos partes. En la de la izquierda se representa la Ruta deDatos de Smplez. sta depender del tipo de secuenciador seleccionado. En la Figura10 se representa la Ruta de Datos correspondiente al secuenciador cableado y en laFigura 11 el detalle de la diferencia correspondiente al secuenciador microprogramado.

    Figura 10: Ventana de Ruta de Datos.

    Figura 11: Detalle de laRuta de Datos.

  • Captulo 1. El entorno de simulacin 19

    En el Captulo 4 se describe en detalle el comportamiento de cada elemento de laRuta de Datos y sus diferentes estados.

    La parte derecha de la ventana es un rea de control que permiten modificar elestado de ejecucin de la instruccin en curso.

    La primera barra de desplazamiento permite modificar la Velocidad deejecucin. Desplazando la misma hacia la derecha se acelera la accin de la Ruta deDatos.

    La segunda barra de desplazamiento permite cambiar el instante actual deejecucin de la Ruta de Datos, llamado Posicin de ejecucin, a otro dentro del ciclode instruccin ya ejecutado.

    Debajo de las barras de desplazamiento encontramos un cuadro seleccionablellamado Comportamiento ante cbf. Este cuadro permite indicar qu se debe hacer alencontrar la seal cbf cuando trabajamos con secuenciadores microprogramados (parael secuenciador cableado no influye). Si est sealado, al segundo ciclo de reloj con cbfactiva se interrumpe la ejecucin. Si no est sealado, la ejecucin contina a pesar decbf. As por ejemplo, la instruccin HALT del secuenciador microprogramado pordefecto se ejecutara eternamente.

    En la parte inferior de encuentra el rea de control de la Figura 12.

    Los botones que la componen:

    Retroceso.

    Pausa y continuacin.

    Seleccin de formato numrico.

    Abrir/cerrar la ventana de los Secuenciadores.

    Figura 12: rea de Control de laRuta de Datos.

  • 20 Manual de Usuario

    El botn de retroceso permite llevar la posicin de ejecucin al comienzo de lainstruccin. Es equivalente a desplazar la barra de Posicin de ejecucin hasta elextremo de la izquierda.

    El botn de pausa permite detener momentneamente la simulacin de lainstruccin. Cuando se pulsa, el aspecto del botn cambia para mostrar el icono decontinuacin de ejecucin.

    Los botones de seleccin de formato numrico permiten elegir entre losformatos decimal y octal para mostrar los valores numricos presentes en la Ruta deDatos. Cuando se pulsa el aspecto del botn cambia para indicar el formato alternativo.

    El ltimo botn permite abrir la ventana de los secuenciadores. Una vez pulsadosu aspecto cambia indicando que dicha ventana est abierta.

    Secuenciador

    Esta ventana muestra los diferentes estados del secuenciador durante la ejecucinde una instruccin. Es accesible a travs del botn del rea de control de la ventana dela Ruta de Datos.

    El tipo de secuenciador mostrado depende de si la Memoria de Control escogida atravs del selector de la ventana principal es cableada o microprogramada. Deacuerdo a estos dos valores, los dos aspectos posibles de la ventana del Secuenciador semuestran en la Figura 13 y en la Figura 14.

    Esta ventana depende de la de la Ruta de Datos. Si se cierra esta ltima, laventana del Secuenciador tambin se oculta.

  • Captulo 1. El entorno de simulacin 21

    Figura 14: Secuenciador microprogramado.

    Figura 13: Secuenciador cableado.

  • 22 Manual de Usuario

    Cronogramas

    En esta ventana se muestran secciones de los cronogramas correspondientes a laejecucin de una instruccin. Para abrirla basta con pulsar el botn indicado en elapartado que describe la barra de herramientas de la ventana principal del simulador. Elbotn cambia de aspecto permitiendo saber si la ventana est abierta. Para entender afondo el significado de los cronogramas consultar el Captulo 5.

    La ventana se compone de tres partes. Un rea de dibujo a la izquierda, un cuadrode botones a la derecha y una barra de control en la parte inferior.

    El rea de dibujo muestra el estado actual de los cronogramas de lasmicrordenes y buses seleccionados en ese momento. La seal de reloj aparece dibujadaen la parte superior desde el comienzo de la instruccin, independientemente de laduracin de sta, de manera que sirva como referencia. Al redimensionar la ventana elrea de dibujo se redibuja automticamente al tamao adecuado.

    Figura 15: Ventana de Cronogramas.

  • Captulo 1. El entorno de simulacin 23

    El cuadro de botones permite seleccionar las micrordenes y buses a dibujar.Cuando se pulsa el botn correspondiente a una seal, su nombre aparece dibujado en elrea de dibujo y si ya tiene algn valor se dibuja tambin. El botn cambia de aspectoindicando que esa seal est siendo representada.

    A medida que se seleccionan ms seales para que sean representadas se vallenando el rea de dibujo. Una vez que no queda espacio libre, con cada nueva seal elrea se repinta acomodando todas las seales de manera proporcional. Cuando unaseal representada hasta un determinado momento se deja de seleccionar, se produce elproceso inverso y se acomodan el resto de seales en el espacio disponible.

    La barra de control se compone de un par de botones de avance y retroceso, yde un selector de nmero de ciclos. Los botones permiten avanzar o retroceder en loscronogramas cuando la instruccin ocupa ms ciclos de reloj que los representados enese momento. El selector de ciclos, compuesto por los cuatro botones circulares,permite decidir el nmero de ciclos de reloj de una instruccin que se representarn almismo tiempo.

    Cuando se modifica el nmero de ciclos de reloj representados el rea de dibujose repinta reflejando el cambio, tal y como se muestra en la Figura 16, en donde se hanseleccionado seis ciclos de reloj.

    Figura 16: Cronogramas seleccionados 6 ciclos de reloj.

  • 24 Manual de Usuario

    Nota Los cronogramas slo muestran la informacin de una instruccinen todo momento. Cuando sta ocupe menos ciclos de reloj quelos representados, el resto de pantalla quedar vaca.

    Pantalla y Teclado

    Pulsando en el botn correspondiente de la barra de herramientas de la ventanaprincipal se abre la ventana mostrada en la Figura 17. El botn cambia de aspectoindicando que la ventana est abierta.

    La ventana se encuentra divida en dos partes. En la superior se representa lapantalla de Smplez y en la inferior hay una barra de control.

    La pantalla de Smplez representa un monitor de texto de 20 filas por 80columnas. El juego de caracteres que reconoce se describe en el Captulo 6. Cuando seredimensiona la ventana, la pantalla se redibuja de manera proporcional al nuevotamao.

    Figura 17: Ventana de Pantalla y Teclado.

  • Captulo 1. El entorno de simulacin 25

    La barra de control se compone de los siguientes elementos:

    Teclado. La imagen representa el teclado de Smplez. El teclado est activomientras el ratn permanece encima, y las teclas que se pulsen se pasandirectamente al puerto de entrada de Smplez, tal y como se explica en elCaptulo 6.

    Limpiar pantalla. Este botn permite eliminar los caracteres actualmente enpantalla y situar el cursor en la parte superior izquierda.

    Ciclo de pantalla. Este grupo de botones permite modificar el tiempo quetranscurre desde que un carcter se escribe en el puerto de salida hasta quepor fin es mostrado por pantalla.

    Editor de programas

    Esta ventana contiene el editor de programas de Smplez. Para abrirla seleccionarla entrada Editor de programas del men de Herramientas.

    Figura 18: Ventana del Editor de programas.

  • 26 Manual de Usuario

    La ventana se compone de una barra de control en la parte superior y del cuerpoprincipal de la misma debajo.

    La barra de control se muestra en la Figura 19.

    Y se compone de los siguientes elementos:

    Nuevo programa ensamblador.

    Abrir programa ensamblador.

    Guardar.

    Guardar como.

    Ensamblar.

    Montar.

    El rea principal se divide en dos reas de texto. Un rea de edicin a la izquierda,programa, donde se escriben los programas y otra a la derecha, mensajes, dondeaparecern mensajes o resultados de las acciones que se realicen.

    Para una completa descripcin del manejo de esta herramienta consultar elCaptulo 7.

    Figura 19: Barra de control.

  • Captulo 1. El entorno de simulacin 27

    Editor de Microprogramas

    Esta ventana es accesible a travs de la entrada Editor de Microprogramas delmen de Herramientas de la barra de mens.

    Figura 20: Editor de Microprogramas.

  • 28 Manual de Usuario

    La ventana est formada por la barra de control mostrada en la Figura 21, situadaen la parte superior, y el editor de la Memoria en la parte inferior.

    Los elementos que forman la barra de control son:

    Nueva memoria de Control.

    Cargar una Memoria de Control desde fichero.

    Salvar a fichero la Memoria de Control en edicin.

    Cargar la Memoria de Control incluida por defecto.

    Esta herramienta permite escribir los microprogramas que forman la Memoria deControl del secuenciador de Smplez. Su utilizacin se describe en el Captulo 7.

    Dilogos Modales

    Con determinadas operaciones o ante ciertas situaciones se abre otro tipo deventana, los Dilogos Modales. Son pequeas ventanas de informacin, llamadasmodales porque bloquean la entrada de usuario al resto de ventanas del simulador. Acontinuacin se muestran los tres tipos de dilogos modales.

    Advertencias. Permiten informar del resultado que provocar unadeterminada operacin.

    Figura 21: Barra de control del Editor de Microprogramas.

    Figura 22: Dilogo de advertencia.

  • Captulo 1. El entorno de simulacin 29

    Errores. Informan de una situacin anmala provocada por una determinadaaccin. En general se acompaan de un mensaje en el panel de Mensajes deerror.

    Entrada de datos. Permiten recoger datos del usuario.

    Ventanas de manejo de ficherosEstas ventanas tienen el formato mostrado en la Figura 25. Hay dos tipos segn la

    operacin, abrir o salvar, que vayamos a realizar. Permiten navegar por los directoriosdel sistema.

    Figura 23: Dilogo de error.

    Figura 24: Dilogo de entrada de datos.

    Figura 25: Ventana de apertura de ficheros.

  • 30 Manual de Usuario

    1.2 Flexibilidad

    La interfaz grfica del simulador se ha diseado tratando de conseguir la mayorflexibilidad y sencillez de manejo posibles. Entre los objetivos de diseo estaban el quepudiera ser utilizada en monitores de cualquier tamao, que el usuario pudieraacomodarla a su gusto y que fuera fcil e intuitiva de utilizar.

    Teniendo en cuenta estas premisas, la aplicacin se dividi, siguiendo un criteriofuncional, en las ventanas descritas a lo largo de este captulo, de manera que en todomomento se pudiera tener abierto slo lo que se va a utilizar.

    La ventana principal permite ocultar el rea de monitorizacin, ocupando asmenos espacio.

    En algunos casos puede que esto no sea suficiente. Por ejemplo, si se quieretrabajar con la Ruta de Datos la ventana principal no es necesaria y sera preferiblepoder iconizarla. Pero en ese caso las barras de control de ejecucin quedara ocultas.Para solucionar esto, estas barras se pueden desglosar del resto de la ventana pinchandoen la zona punteada de las mismas y arrastrndolas fuera.

    Otras caractersticas de la interfaz grfica son:

    Textos de ayuda al situar el cursor del ratn sobre los elementos quecomponen la interfaz.

    Organizacin de los controles en barras de herramientas y mens de fcilacceso.

    Manejo de todos los elementos con el ratn.

    Posibilidad de cambiar el tamao de todos los elementos de la interfaz. Encasos como el de las ventanas de la Ruta de Datos y los Cronogramas suscontenidos se redimensionan automticamente.

    Iconos con apariencia diferente segn el estado de la ventana a la querepresentan.

    Utilizacin de varios formatos numricos en la ventana principal y en laventana de la Ruta de Datos.

  • Captulo 2

    Introduccin de un programa

    En este captulo se describe cmo introducir un programa en la memoria deSmplez. Se pueden seguir varios mtodos que explicarn de manera detallada.

    2.1 Editor de programas

    El mtodo ms potente pasa por la utilizacin del Editor de Programas paragenerar un fichero de cdigo ensamblado. El editor ha sido desarrollado por FranciscoJavier Rodrguez y es accesible a travs del men de Herramientas seleccionando elcampo "Editor de programas" tal y como se muestra en la Figura 26:

    Esta herramienta permite beneficiarse de la escritura de programas en lenguajeensamblador. Su utilizacin detallada se explica en el Captulo 7, y en el Captulo 8 sedesarrolla un ejemplo de utilizacin completo. Genera un fichero de extensin .lns, elcual se puede cargar en memoria con la opcin "Abrir fichero de cdigo" del menArchivo o utilizando la secuencia CTRL+A. Se abrir una ventana de seleccin deficheros desde la cual se puede seleccionar.

    31

    Figura 26: Men de Herramientas.

  • 32 Manual de Usuario

    2.2 Tablas de Memoria

    Una segunda forma de introducir el programa en memoria es editando stadirectamente. El inconveniente de este mtodo es que necesitamos conocer desde elprincipio la disposicin que tendr la memoria. Supngase que se est introduciendo unprograma de 100 instrucciones. Si por casualidad tras introducirlas todas se descubreque se necesita incluir una ms en la posicin 25, se tendran que desplazar las 75 queestn por debajo una posicin. Por tanto es un mtodo poco flexible, pero por contra esque se trata de una manera muy sencilla, rpida e intuitiva de introducir los datos enmemoria. Es el mtodo idneo para programas pequeos y pruebas demicroprogramacin.

    Es importante conocer los formatos que aceptan las tablas de memoria. Si elformato del nmero introducido es incorrecto, aparecer un dilogo modal avisando deeste hecho y se recuperar el valor que originariamente contena dicha posicin. Elformato de las tres columnas que aceptan valores es.

    La columna Contenido de la tabla Programa acepta cuatro dgitos enformato octal.

    La columna Instruccin de la tabla Programa acepta el cdigo nemnico dela instruccin. Este cdigo nemnico tiene la estructura:

    [/]

    Los cdigos de instruccin se pueden introducir tanto en maysculas como enminsculas. Estos cdigos son:

    ST LD ADD BRBZ CLR DEC HALT

    El cdigo de direccin es un nmero en formato decimal entre 0 y 511,precedido del carcter "/". No todas las instrucciones requieren el cdigo dedireccin. En concreto, si es introducido en el caso de CLR, DEC y HALTsimplemente se descarta.

    La columna Contenido de la tabla Memoria admite nmeros en formatodecimal comprendidos entre 0 y 4095.

  • Captulo 2. Introduccin de un programa 33

    Como ejemplo se introducir el Programa 1, tomado de la pgina 59 del libro delcurso [Fernndez,98], que suma el contenido de las posiciones de memoria 10 y 11 y loalmacena en la posicin 12.

    Dir. MP(dec)

    Cont.(octal)

    Cont.(nemnico)

    Comentarios

    [0] 1012 LD /10 ;Carga el primer nmero[1] 2013 ADD /11 ; le suma el segundo[2] 0014 ST /12 ; almacena el resultado[3] 7000 HALT

    Programa 1: Suma el contenido de dos posiciones de memoria y almacena el resultado en otra.

    Para editar una determinada posicin de memoria basta con posicionar el ratnsobre la misma y pinchar. Tal y como se muestra en la Figura 27, la celda cambia deaspecto y entra en modo de edicin. nicamente hay que tener en cuenta el formato dela columna que se ha escogido para introducir el valor. Una vez que se haya terminadode introducir el valor, si se pulsa Enter se pasa a editar la siguiente posicin dememoria. Para salir del modo edicin basta con pulsar el ratn fuera de la tabla.

    Las tablas Programa y Memoria no son independientes entre s. Cuando se acabade editar una celda se actualizan automticamente las celdas homlogas de las columnasrestantes de ambas tablas. Se puede estar en modo edicin en ambas, editando la mismao diferentes celdas.

    Figura 27: Edicin de la Tabla dePrograma

  • 34 Manual de Usuario

    Nota Si en ambas tablas se est editando la misma posicin dememoria, el valor final ser el de la ltima celda que salga delmodo de edicin. Si en sta se comete un error permanecer elvalor introducido con la otra.

    Supngase que para introducir la primera instruccin se utiliza el formato octal.Para ello se pulsara en la primera celda de la columna Contenido de la tabla dePrograma, como se mostraba en la Figura 27. Una vez introducido el valor 1012 sepuede pulsar con el ratn fuera para desactivar la edicin, o pulsar Enter con lo que sepasara a editar la siguiente posicin de memoria. Para introducir el resto deinstrucciones se puede utilizar el cdigo nemnico. Para lo cual se pulsa con el ratn enla segunda celda de la columna Instruccin de la tabla de Programa, se introduce lacadena "add /11" y se pulsa Enter.

    Nota Las instrucciones se pueden introducir tanto en maysculas comoen minsculas.

    Por ltimo, para introducir los datos a sumar en las posiciones [10] y [11] sepuede hacer a travs de la tabla de Memoria utilizando el formato decimal. Suponiendoque los valores a sumar son el 3 y el 8, se pulsaran respectivamente las posiciones dememoria [10] y [11] de la columna "Contenido" de la Tabla de Memoria tal y comomuestra la Figura 28.

    Figura 28: Edicin de laTabla de Memoria.

  • Captulo 2. Introduccin de un programa 35

    Como se habr podido observar al introducir valores en una celda determinada lasceldas homlogas de las columnas de ambas tablas cambian tambin su contenidoadecundolo al nuevo valor introducido, tal y como se indic con anterioridad.

    El contenido final de la memoria ser el siguiente:

    Las posiciones [10] y [11] de la columna Instruccin de la tabla de Programacontienen los valores "ST /3" y "ST/8", que son los cdigos nemnicos que secorresponderan con los valores que contienen dichas posiciones. Esto es debido a queesta columna siempre interpreta el contenido de la memoria como instrucciones deSmplez. Por tanto hay que tener claro qu zonas de memoria contienen datos y culescdigo. De hecho una posicin de memoria puede ser tanto uno como otro segn seacceda a ella. Si el sistema accede a ella buscando la siguiente instruccin a ejecutar nohay duda que se trata de cdigo, y si en cambio lo hace porque su contenido se va asumar con otro operando se est hablando de datos.

    Nota La edicin slo es posible si no se est en ejecucin.

    Figura 29: Programa cargado en la Memoria de Smplez.

  • 36 Manual de Usuario

    2.3 Volcado de Memoria

    Otra posibilidad para cargar un programa es cargar un volcado de memoria desdeun fichero con extensin .vms utilizando la entrada "Cargar Memoria desde Fichero"del men de Archivo, o pulsar la secuencia CONTROL C.

    Un volcado de memoria es el resultado de salvar a fichero el contenido de lamemoria byte a byte. Permite guardar el estado de la memoria en cualquier momento yrecuperarlo posteriormente.

    Para crear un volcado de memoria se puede utilizar la entrada "Volcar Memoriaa fichero" del men de Archivo, o pulsar la secuencia de teclas CONTROL V. Seabrir una ventana de manejo de ficheros.

    2.4 Nuevo programa

    En cualquier momento se puede reiniciar la memoria y hacer que todas suspalabras contengan un cero, seleccionando la entrada "Nuevo contenido de Memoria"del men de Archivo, o pulsar la secuencia de teclas CONTROL N.

  • Captulo 3

    Ejecucin de un programa

    Los programas escritos para Smplez no pueden ejecutarse directamente sobreninguna computadora, dado que el repertorio y formato de sus instrucciones, totalmentedependientes del modelo estructural y funcional subyacente, y el tipo de datosmanejados seguramente no coincida con el de la mquina en cuestin. Y dado que anno se ha implementado la versin hardware de Smplez, es necesaria la utilizacin de unsimulador para su ejecucin. La gran ventaja de un simulador es el control que permitetener sobre la ejecucin de un programa, pudiendo llegar a hacerse cosas imposiblescon la mquina real o slo posibles con un debugger de cdigo mquina. Como porejemplo la modificacin de los registros del sistema a mano, cambiar la posicin deejecucin o poder deshacer los efectos de una instruccin ya ejecutada.

    Este simulador en concreto nos permite adems ejecutar programas escritos paraSmplez sobre cualquier mquina para la que se haya desarrollado una mquina virtualJava.

    Se pueden distinguir dos tipos de simulacin; la simulacin de la ejecucin de lasinstrucciones y la simulacin grfica de la Ruta de Datos y los cronogramas.

    Los principales elementos para controlar la ejecucin de un programa en elsimulador son las barras de herramientas y las reas de informacin y monitorizacin.Con las barras de herramientas se puede en todo momento decidir cundo arrancar oparar la ejecucin, qu debe estar visible en el simulador o qu modo de ejecucinutilizar. Las reas de informacin y monitorizacin permiten conocer cul es el estadoactual de la mquina y saber qu est pasando en todo momento.

    El control de la simulacin grfica se realiza a travs del panel de controlessituado en la ventana de la Ruta de Datos.

    37

  • 38 Manual de Usuario

    3.1 Controles

    El simulador tiene dos barras de herramientas en la ventana principal y un rea decontrol en la ventana de la Ruta de Datos, que permiten controlar la ejecucin deprogramas.

    La primera barra de herramientas, Figura 30, se encuentra inicialmente a laizquierda de la ventana principal, contiene los botones de arranque, parada ydeshacer.

    Segn los botones que estn habilitados en un momento dado se puede saber si lasimulacin est en marcha, botn de parada habilitado, o no, botn de arranquehabilitado. Inicialmente el nico botn habilitado es el de arranque.

    Para comenzar la ejecucin de un programa basta con pulsar el botn dearranque. Las tablas de memoria y de registros no pueden estar en edicin en eseinstante. Si una de ellas se encuentra en dicho estado el simulador mostrar un mensajeindicando que se termine la edicin antes de comenzar a ejecutar.

    Se puede interrumpir la ejecucin de un programa en cualquier momentopulsando el botn de parada. La instruccin en curso se interrumpe y la mquina pasa alestado que tena antes del anterior al comienzo de la misma.

    Se puede deshacer la ejecucin de hasta un total de 10 instrucciones,independientemente del modo de ejecucin utilizado. Sin embargo cuando se cargue unnuevo programa en memoria, la informacin sobre las instrucciones ya ejecutadaspertenecientes al programa actualmente en memoria se perder y no ser posibledeshacerlas. Ya que se ha producido un reseteo del hardware de la mquina. En lapgina 45 se explica qu significa el reseteo. Cuando se edita el contenido del Contadorde Programas, tambin se resetea y no es posible deshacer la ejecucin de las ltimasinstrucciones. En ambas situaciones el botn de deshacer pasa a estar deshabilitado.

    Con la posibilidad de deshacer la ejecucin de instruccin se pueden comparar losresultados de una instruccin con diferentes microprogramas y la implementacincableada. Esto permite entender perfectamente los efectos de una decisin de diseo.

    Figura 30: Barra de Herramientasuno.

  • Captulo 3. Ejecucin de un programa 39

    Nota Los cambios realizados tras la ejecucin de instrucciones en losregistros y la memoria mediante edicin de las tablas se perderncuando se deshaga la ejecucin de las mismas, debido a que losestados de la mquina originales no los incluan.

    La segunda barra de herramientas, Figura 31, permite decidir qu ventanas tenerabiertas en todo momento y el modo de ejecucin a utilizar.

    Cuando la ventana de la Ruta de Datos o la de Cronogramas estn abiertas, haysimulacin grfica y la velocidad de sta se controla desde el rea de control de la Rutade Datos.

    Desde el panel de control de la ventana de la Ruta de Datos, Figura 32, podemoscontrolar la simulacin grfica tanto de la Ruta de Datos como de los cronogramas.

    Figura 31: Barra herramientas dos.

    Figura 32: rea de controlde la Ruta de Datos.

  • 40 Manual de Usuario

    Tal y como se explico en el Captulo 1, la primera barra de desplazamiento nospermite modificar la Velocidad de ejecucin. No se trata de modificar la frecuencia dereloj de Smplez, ni la velocidad de ejecucin de un programa en el simulador, sino lavelocidad a la que se muestra grficamente la ejecucin de una instruccin en la Rutade Datos y en los Cronogramas. De hecho, si ambas ventanas estn cerradas la posicinde esta barra de desplazamiento no tiene ningn efecto sobre la simulacin.

    La barra de Posicin de ejecucin y el botn de retroceso situado en la parteinferior permiten desplazar el instante actual dentro de la simulacin grfica de unainstruccin a uno ya ejecutado. Por tanto, el rango de tiempo que cubre va desde elprimer flanco de bajada de reloj correspondiente a la instruccin hasta el instante detiempo en que se mueve la posicin del indicador. Cuando el secuenciador seleccionadoes el microprogramado puede ocurrir que la ejecucin de una instruccin impliquemuchos ciclos de reloj. En estos casos llegado a cierto nmero de ciclos, por motivos deconsumo de memoria, a medida que avanza la simulacin de la instruccin se vaneliminando ciclos de reloj del comienzo de la misma. El botn de retroceso desplaza elinstante de ejecucin hasta el primero almacenado, que normalmente coincide con elcomienzo de la instruccin excepto en el caso indicado.

    Al mover el indicador a una posicin determinada, ste se va desplazando desdeella hasta que alcanza el final de la barra y en ese instante se continua con la simulacinde la instruccin en el punto en el que se dej.

    Una vez terminada la ejecucin de una instruccin es posible mover el indicadorhacia atrs y revisar lo qu ha ido pasando, evitando tener que deshacer la ejecucin dela instruccin y tener que volver a ejecutarla. Esto es de gran inters en situaciones enque por una microprogramacin incorrecta diferentes ejecuciones de la mismainstruccin puedan producir resultados diferentes y se quiera revisar cada uno de ellosen detalle.

    La barra de Posicin de ejecucin y el botn de retroceso estn activos cuandohay informacin sobre la instruccin ejecutada. Cuando se pulsa el botn de Detener laejecucin durante la simulacin de una instruccin, la informacin grfica de la mismase pierde y tanto la barra como el botn se deshabilitan. Cuando se deshace la ejecucinde una instruccin su informacin grfica tambin se pierde y se deshabilitan. Cuandose cambie el tipo de secuenciador se deshabilitarn, pero el motivo es prevenirconfusiones tal y como se explica un poco ms adelante.

    En ocasiones puede que se perciba un parpadeo en la Ruta de Datos o en losCronogramas al modificar la posicin de ejecucin. Esto es debido a que a medida quese mueve el indicador de posicin se van generando eventos de entorno grfico yalgunos de ellos son atendidos antes de terminar de moverlo.

    El botn de pausa detiene temporalmente la simulacin grfica. Este botn esmuy til cuando se quiere modificar la Posicin de ejecucin con la barra dedesplazamiento, ya que permite detener la misma hasta que se haya situado en el lugardeseado, o incluso ir repasando detalles moviendo el indicador de la barra. Si antes de

  • Captulo 3. Ejecucin de un programa 41

    pulsar el botn de comienzo de ejecucin se pulsa el de pausa, la simulacin en la Rutade Datos queda congelada justo antes del primer flanco de bajada del reloj.

    Nota El botn de pausa tiene efecto aunque la ventana de la Ruta deDatos no est abierta. Una instruccin puede parecer que se hacolgado y que no termina nunca de ejecutarse debido a que elbotn est pulsado. Para solucionarlo basta con detener laejecucin de la misma y volver a pulsar el de comienzo. El botnde parada deshabilita la pausa.

    Por ltimo, el botn de Comportamiento ante cbf le indica al simulador qudebe hacer cuando el secuenciador microprogramado genera la microorden cbf. Si noest pulsado, el simulador no interrumpir la ejecucin cuando cbf est activa. Estebotn no tiene efecto con el secuenciador cableado.

    Nota Este cuadro marca el comportamiento ante cbf incluso cuando laVentana de Ruta de Datos est cerrada. Una instruccin puedeparecer que se ha colgado y que no termina nunca de ejecutarsedebido a que el cuadro no est marcado.

    Los dos botones restantes no influyen en la simulacin.

    Modos de ejecucinUn modo de ejecucin es la manera que tiene el simulador de estructurar la

    ejecucin de las instrucciones que componen un programa. El simulador utiliza tresmodos de ejecucin, seleccionables mediante el men desplegable, mostrado en laFigura 33, situado en una de las barras de herramientas.

    Figura 33: Selector de Modo de Ejecucin.

  • 42 Manual de Usuario

    El modo de ejecucin nicamente se puede modificar con la simulacin parada,por lo que una vez comienza la ejecucin el selector se deshabilita.

    Paso a pasoEste modo de ejecucin permite ir ejecutando una a una las instrucciones del

    programa. Cuando la instruccin en curso finaliza, el simulador detiene la ejecucin.Esta manera de simular se suele denominar depuracin.

    Continuoste es el modo de ejecucin clsico. El simulador ejecuta una instruccin tras

    otra hasta que encuentra una instruccin HALT, tras la cual se detiene.

    Continuo hastaEn este modo de ejecucin el simulador ejecuta tantas instrucciones seguidas

    como indique el campo numrico situado a la izquierda del selector, hecho lo cual sedetiene. En el caso de encontrar una instruccin HALT la ejecucin de detieneigualmente antes de completar dicho nmero.

    El campo numrico slo est habilitado cuando el modo de ejecucinseleccionado sea Continuo hasta. El nmero mximo de instrucciones ejecutables eneste modo son 99.

    3.2 rea de informacinDesde este rea de la ventana principal del simulador, mostrada en la Figura 34,

    se puede visualizar tanto informacin de la ejecucin como del estado de la mquina.Desde aqu tambin es posible modificar parte de ese estado.

    Figura 34: rea de informacin.

  • Captulo 3. Ejecucin de un programa 43

    El rea Mensajes de Smplez del rea de Monitorizacin del Sistema tambines de gran utilidad cuando est abierta la ventana de la Ruta de Datos o la deCronogramas para entender como evoluciona la mquina. En ella se van mostrandomensajes que indican cada cambio que se produce en la mquina.

    Informacin de ejecucinEl campo Programa en ejecucin indica el nombre del programa cargado en

    memoria. Su valor se actualiza al salvar a disco, momento en que se solicita un nombrepara el programa que se va a guardar, y cuando se carga un programa desde un fichero.

    El campo En curso indica la instruccin en ejecucin. Cuando finaliza laejecucin mantiene la informacin de la ltima ejecutada. Cuando se interrumpe o sedeshace la ejecucin de una instruccin el campo pasa a estar vaco.

    El campo Ejecutadas muestra el nmero de instrucciones ejecutadas desde elltimo reseteo de la mquina. Al deshacer la ejecucin de una instruccin su valor sedecrementa.

    Informacin de estado

    El campo Memoria de Control permite seleccionar la memoria de control queutilizar el secuenciador. Cuando se seleccione la cableada realmente se estarrefiriendo a los circuitos combinaciones que forman el secuenciador cableado. LaMemoria de Control microprogramada es la implementada por defecto en el sistema,cuyo contenido se muestra en el Captulo 9. A medida que se carguen Memorias deControl desde fichero, utilizando la entrada del men de Archivo o pulsandoCONTROL+M, se irn aadiendo al desplegable. Cuando se carga una memoria decontrol con el nombre CABLEADA o PROGRAMADA al nombre se le aade un sufijopara distinguirlas de las memorias por defecto. Cuando se carga una con el mismonombre que una ya cargada se sustituye esta ltima.

    Al seleccionar un secuenciador aparece un mensaje en el rea de Monitorizacin.Esto permite comprobar con qu Memoria de Control se han estado ejecutando lasinstrucciones.

    Cuando se cambie el tipo de secuenciador, los controles de la Ruta de Datos quepermiten modificar la posicin de la simulacin grfica se deshabilitan. De lo contrario,cambiando la posicin de ejecucin no slo se vera la ejecucin generada por otrosecuenciador sino que incluso se podra estar mostrando la informacin con una Ruta deDatos incorrecta. La manera de volver a visualizar la instruccin con un determinadosecuenciador es volver a seleccionarlo, deshacer la ejecucin de la instruccin y volvera ejecutarla.

  • 44 Manual de Usuario

    La tabla de Registros muestra el contenido del Acumulador y del Contador dePrograma. Sus valores son editables pinchando sobre la columna correspondiente alformato en que se quiere introducir el nuevo valor. La edicin del Contador dePrograma hace que se resetee el hardware de la mquina.

    El valor de estos registros est gobernado por flanco de bajada de reloj, por lo queen ciertas instrucciones, como DEC para AC y BZ para CP, su valor no se modificahasta el flanco que marca el final de la instruccin y dado que ste se considera incluidoen la siguiente instruccin, ser durante la ejecucin de esta ltima que su valorcambiar. Esto puede producir alguna situacin confusa, dado que durante la ejecucinde la siguiente instruccin el valor de dicho registro puede cambiar tambin, lo que sepodra interpretarse como que el simulador se ha saltado un valor. La forma de estarseguros es abrir la Ruta de Datos y comprobar la evolucin del contenido. sta es unalimitacin del simulador que no se puede evitar debido a la microprogramacin. Lasinstrucciones no pueden incluir el ltimo flanco debido que en l ya se estn leyendo lasmicrordenes de la siguiente instruccin, pero a priori no se sabe con qu secuenciadorse va a ejecutar.

    Hay dos tablas que muestran el contenido de la memoria. La tabla de Programa,como su nombre indica, est asociada a la ejecucin del programa y mostrar en todomomento la zona de la memoria que contiene la instruccin en curso. Por otro lado latabla de Memoria permite situarse en una zona de la memoria determinada y tenerlasiempre a la vista, de manera que se pueda observar qu cambios se producen en ella.Est ms relacionada con los datos que maneja el programa. El formato numrico deambas responde tambin a esos criterios.

    Tal y como se ha visto en el captulo anterior se puede editar el contenido de lamemoria con solo pinchar en la posicin de memoria deseada.

    Nota Las tablas muestran el resultado de la ejecucin, por lo que no vansncronas con la Ruta de Datos ni con los cronogramas. Lasimulacin de la ejecucin siempre va adelantada cuatro de ciclosde reloj respecto a la simulacin grfica. Los datos de esta ltimase muestran con un cierto retraso respecto al valor que realmentetienen en un momento dado.

    Con instrucciones de hasta cuatro ciclos de reloj se observar que las tablasmuestran el valor final y en cambio en la Ruta de Datos se estn mostrando valorestemporales. Con instrucciones de ms de cuatro ciclos los dos mostrarn valorestemporales. Algo similar pasa con los valores mostrados con la pantalla y el teclado ylos valores de los puertos mostrados en la Ruta de Datos. La pantalla y el tecladomuestran los valores de manera sncrona a la ejecucin.

    Todos los elementos del rea de informacin de estado se deshabilitan durante laejecucin y su contenido no es editable.

  • Captulo 3. Ejecucin de un programa 45

    3.3 Reseteo del Hardware

    En todo momento el hardware de Smplez tiene un estado. Cuando se cargue unnuevo programa en memoria o se cambie el contenido del Contador de Programa, elestado actual de los buses, de los puertos de entrada y salida, de la memoria, y engeneral de toda la mquina hasta ese momento deja de tener valor, por lo que seresetea. As mismo, se inhabilita el botn que permite deshacer la ejecucin de la ltimainstruccin y se vacan los campos de instruccin en curso y nmero de instruccionesejecutadas.

    Cuando se modifique el valor del Contador de Programa, se guardar el contenidoactual de la Memoria Principal y del Acumulador.

    Tras la ejecucin de una instruccin HALT es necesario resetear el hardware de lamquina si se quiere volver a ejecutar el programa, ya que aunque el Contador dePrograma est a cero, las micrordenes de inhibicin de la ejecucin siguen activas.Para resetear basta con pulsar el ratn encima del Contador de Programa.

  • 46 Manual de Usuario

  • Captulo 4

    Ruta de Datos

    Segn la definicin dada en [Fernndez,98], Una ruta de datos es unaestructura constituida por un conjunto de elementos (buses, registros y circuitoscombinacionales) interconectados, cuyas funciones son transferir, memorizar yprocesar las informaciones (instrucciones, direcciones y operandos) procedentes de (ocon destino a) la MP y los dispositivos perifricos.

    La Ruta de Datos de Smplez se muestra en la Figura 35.

    47

    Figura 35: Ruta de Datos de Smplez.

  • 48 Manual de Usuario

    La Ruta de Datos es un reflejo del modelo estructural de la mquina. En el casode Smplez queda patente que se trata de una mquina basada en el esquema de vonNeumann.

    Von Neumman hablaba de una serie de elementos, rganos, fundamentales, quedeban estar presentes en una mquina computadora de propsito general, y que seencuentran en la Ruta de Datos de Smplez. Estos elementos son la UAL (unidadaritmticolgica), la MP (memoria principal), la UC (unidad de control) y lasUE/S (unidades de entrada y salida). En la Ruta de Datos de Smplez, el Secuenciadorse identifica con la UC, y el CTEC y el CPAN con las UE/S. La UC y la UALcomponen la Unidad Central de Proceso, que en la Ruta de Datos se corresponde conel cuadrado de color con la etiqueta UCP.

    A continuacin se analizan uno a uno los diferentes elementos que componen laRuta de Datos de Smplez y los posibles aspectos que pueden tener en el simuladorsegn el estado en que se encuentren.

    4.1 Secuenciador

    Un sistema que genera en cada momento las micrordenes oportunas (sealesbinarias) para que lleven a cabo los procesos en la ruta de datos. El secuenciador deSmplez se muestra en la Figura 36.

    Tal y como se describe en [Fernndez,98], para que el secuenciador puedagobernar al resto de elementos de la Ruta de Datos y que las instrucciones se ejecutende acuerdo al modelo funcional de la mquina, ha de repetir cclicamente los siguientespasos:

    1. Extrae una instruccin almacenada en una palabra de la Memoria Principal.

    2. Interpreta esa instruccin: la descodifica y genera las micrordenes paraponer en funcionamiento al resto de las unidades.

    Figura 36:Secuenciador.

  • Captulo 4. Ruta de Datos 49

    3. Genera la direccin de la Memoria Principal en donde se encuentra lasiguiente instruccin a ejecutar. Esta etapa, tal y como se explicar en detalleen el Captulo 5, realmente se encuentra integrada en las dos etapasanteriores.

    El secuenciador es el nico elemento que no cambia de aspecto en la ventana dela Ruta de Datos, dado que tiene su propia ventana asociada donde podemos ver en questado est.

    4.2 Micrordenes

    Las micrordenes son seales binarias que conectan al secuenciador con losdiferentes elementos que componen la Ruta de Datos. Las lista de micrordenes semuestra en la Tabla 2.

    Nombre Efectoeac Entrada en el acumulador desde la salida de la UALeri Entrada en el registro de instrucciones desde el bus Dincp Incremento del contador de programaecp Entrada en el contador de programa desde el bus Aiccp Puesta a cero del contador de programaera Entrada en el registro de direccin desde el bus Aipac Puesta a cero de la salida de la UALsum Suma en la UAL de las entradas 1 y 2, dejando el resultado en la salidatra2 Transferencia de la entrada 2 de la UAL a la salidadec1 Decremento de la entrada 1 de la UAL, dejando el resultado en la salidalec Lectura en la MP o en el puerto de entradaesc Escritura en la MP o en el puerto de salidasac Salida del acumulador al bus Dsri Salida de los nueve bits de menor peso del registro de instrucciones al bus

    Aiscp Salida del contador de programa al bus Aicbf Inhibicin del funcionamientosco Salida del cdigo de operacin (UC microprogramada)bbz Para la instruccin BZ (UC microprogramada)ebi Entrada en el biestable I (UC cableada)

    Tabla 2: Micrordenes de Smplez.

  • 50 Manual de Usuario

    Cuando una microorden est activa aparece resaltada en color, tal y como semuestra en la Figura 37, el resto del tiempo se pintarn en negro.

    Se considera que una microorden est activa cuando su valor es 1, y lastransiciones de un valor a otro no se consideran dentro de este estado. Cada microordentiene asignado un color diferente.

    4.3 Unidad AritmticoLgica

    ... la unidad aritmtico y lgica, o UAL, es un subsistema que puede tomar dosoperandos (o slo uno, como en el caso de NOT") y generar el resultadocorrespondiente a la operacin que se le indique, de entre un conjunto de operacionesprevistas en su diseo. La UAL de Smplez se muestra en la Figura 38.

    La UAL tiene dos entradas, cada una de ellas de 12 bits, y genera dos salidas, unade 12 bits al acumulador, que depender del tipo de operacin seleccionada, y unasalida binaria al biestable Z, que depende de si el resultado de la ltima operacin fuecero o no. Las operaciones posibles son:

    Poner a cero los doce bits de la salida.

    Sumar los dos operandos de las entradas.

    Transferir a la salida el operando presente en la entrada 2.

    Decrementar en una unidad el operando presente en la entrada 1.

    Figura 37:Microorden activa.

    Figura 38: UAL deSmplez.

  • Captulo 4. Ruta de Datos 51

    Cada una de estas operaciones se selecciona activando las micrordenes pac,sum, tra2 y dec1 respectivamente. Cuando ms de una microorden est activa slo seejecutar la operacin correspondiente a la microorden con ms prioridad entre lasactivas. El orden de prioridad de las micrordenes es el siguiente: pac, sum, tra2,dec1.

    La UAL se considerar activa cuando alguna de sus micrordenes de control estactiva. El aspecto de la UAL cuando esto ocurra es el de la Figura 39.

    4.4 Biestables

    El biestable es un circuito con memoria, de dos estados posibles segn el valorque contenga. En la Ruta de Datos los biestables se representan como en la Figura 40cuando contengan un 0.

    Y cuando contengan un 1 se pintarn como en la Figura 41.

    El biestable Z es asncrono, es decir no tiene entrada de reloj. Por tanto en todomomento seguir la evolucin de sus entradas.

    Figura 39: UAL activadapor tra2.

    Figura 40:Biestable con "0".

    Figura 41:Biestable con "1".

  • 52 Manual de Usuario

    En el caso del secuenciador cableado hay tres biestables ms. Dichos biestablesson sncronos, es decir sus variaciones de estado estn marcadas por la seal de reloj.En concreto los biestables F y T estn sincronizados por flanco de subida y el biestableI por flanco de bajada.

    Registros

    Un registro no es ms que un conjunto de biestables con una entrada de controlcomn. Al utilizar un registro haremos abstraccin del tipo de sus biestablescomponentes y de los registros lgicos asociados. Slo nos interesa saber que es unregistro de carga en paralelo, que mantiene un estado de n bits a su salida mientrasno se den ciertas condiciones en sus entradas, y que cuando estas condiciones se dan suestado queda sustituido por los valores de las n entradas. S ser importante indicar sies de tipo cerrojo, o sincronizado por flancos de subida, o sincronizado por flancos debajada.

    En la Ruta de Datos de Smplez hay dos tipos de registros, de cerrojo positivo ysincronizados por flanco de bajada. En la Figura 42 se muestra un registro sincronizadopor flanco de bajada.

    En este tipo de registro los cambios de su contenido tienen lugar nicamente en elinstante de transicin de 1 a 0 de la seal de reloj y solamente si en ese instante lamicroorden correspondiente est activa.

    Es interesante observar como en el caso de estos registros, sus valorespermanecen constantes durante todo un ciclo de reloj a pesar de estar activa unamicroorden. Esto se debe a que las micrordenes son generadas por el secuenciador, yste tambin est sincronizado por el reloj. De manera que cuando una microorden pasaa estar activa, lo hace inmediatamente despus de un flanco de bajada pero con ciertoretraso, por lo que no tomar efecto hasta el siguiente flanco de reloj. De igual manerala microorden y el dato de entrada se quitan en el mismo flanco de bajada, pero comoambas acciones son dependientes del secuenciador irn con cierto retraso respecto alflanco y al registro le habr dado tiempo a actualizar su contenido con el nuevo valorantes de que desaparezca del bus.

    Figura 42: Registrosincronizado por flancode bajada.

  • Captulo 4. Ruta de Datos 53

    En la Figura 43 se muestra un registro de tipo cerrojo positivo.

    En un registro de este tipo la salida toma el valor que tenga la entrada, y seguircualquier cambio que se produzca en sta durante todo el tiempo en que la microordenest activa y la seal de reloj valga "1". Se utiliza un registro de este tipo para RA, demanera que la direccin de acceso a memoria o puerto de entrada/salida se estabilice enel bus Ai antes de pedir un ciclo de memoria.

    Los registros se considerarn activos cuando alguna de sus micrordenes decontrol est activa y cambiarn de aspecto, tal y como se muestra en la Figura 44.

    En concreto el caso del Contador de Programa es un poco especial, ya que, tal ycomo muestra la figura, tiene tres micrordenes de control que permiten poner a cero sucontenido (ccp), incrementarlo (incp) o sustituirlo por el valor presente a su entrada(ecp). Cuando hay ms de una activa slo una de ellas tendr efecto. El orden deprioridad que indica qu microorden es la que prevalece es el siguiente: ccp, incp, ecp.

    El registro de instrucciones se divide en dos partes, CO y CD, las cuales puedenestar iluminadas independientemente de que el registro est activo en ese momento ono, tal y como muestra la Figura 45. De esta manera se indica que dicha parte de RI esde inters en ese momento.

    Figura 43:Registro detipo cerrojo.

    Figura 44: Registroactivo.

    Figura 45: CDactivo.

  • 54 Manual de Usuario

    4.5 Buses

    La interconexin se hace a travs de unas vas o canales, que en adelantellamaremos buses, a los que pueden tener acceso varias unidades. Fsicamente unbus es un conjunto de lneas binarias.

    La Ruta de Datos de Smplez tiene cuatro buses:

    Bus C. 15 bits. Contiene todas las micrordenes del sistema.

    Bus D. 12 bits. Transporta la informacin entre la Memoria Principal,o los perifricos, y la UAL y RI.

    Bus Ai. 9 bits. Bus interno de direcciones.

    Bus A. 9 bits. Transporta direcciones de la UCP a la MemoriaPrincipal y perifricos.

    En lugar de pintar en paralelo las n lneas que lo componen, los buses serepresentan con una lnea nicamente, tal y como muestra la Figura 46. Para indicarcuntas lneas lo forman se pinta el nmero de ellas, acompaado de una raya que cruzael bus, debajo del nombre.

    Cuando el bus contiene un valor estable, tanto si es valido como si se haproducido una colisin, cambia de color. Las transiciones por tanto no se resaltan, y elbus vuelve a pintarse en negro durante el tiempo que duren. Cada bus tiene un colorasignado diferente. La Figura 47 muestra el bus Ai con un valor ya estabilizado.

    Figura 46: Bus Ai.

    Figura 47: Bus Ai conteniendo un valor.

  • Captulo 4. Ruta de Datos 55

    El caso del bus A es un poco especial. Dado que toma su valor del registro RA, yste nunca tiene sus salidas en alta impedancia, siempre se estar volcando el contenidodel registro en el bus. Esto hace que los nicos momentos en que el bus no aparezcailuminado sean durante las basculaciones de valores debido a un cambio de contenidodel registro RA.

    Las lneas de interconexin entre los buses y los elementos de la Ruta de Datossiguen el siguiente criterio. Las que son de entrada a algn elemento se iluminan con elestado del bus. Las que son de salida desde un elemento hacia el bus slo se iluminancuando se est volcando un valor sobre el mismo. Cuando se trata de una puerta lgicacontrolada por una microorden se iluminar cuando esta ltima est activa, tal y comomuestra la Figura 48.

    Los buses no tienen "memoria", de manera que cuando se deja de volcar un valorsobre un bus, y pasa a alta impedancia, una operacin de lectura sobre l genera unvalor imprevisible.

    En un momento dado solamente un componente debera estar depositando suinformacin en el bus, de los contrario se producira una colisin en el mismo y el valorcontenido por el bus no tendra ninguna utilidad. Por el contrario varios elementospueden leer al mismo tiempo la informacin contenida en l.

    4.6 Memoria Principal

    ... basta definir la MP como un componente en el que se pueden registrar(almacenar, o escribir) o recuperar (extraer, o leer) informaciones binarias. Lalongitud de la palabra de la MP de Smplez es doce bits y su capacidad es 512palabras.

    Figura 48: Puertalgica activa.

  • 56 Manual de Usuario

    La Memoria Principal de Smplez se muestra en la Figura 49.

    La Memoria Principal se gobierna con dos micrordenes que permiten volcarsobre el bus D el contenido de una de sus posiciones (lec) o sustituir el contenido deuna de ellas por el valor presente a su entrada (esc). La precedencia de las micrordenesque gobiernan la MP es la siguiente: lec, esc.

    Cuando se comienza una operacin sobre la memoria, sta cambia de aparienciacambiando de color y mostrando la direccin a la que se accede y debajo el contenidode dicha direccin, tal y como se muestra en la Figura 50.

    Nota La direccin a la que se accede se muestra siempre en decimal.

    Cuando se trata de un ciclo de lectura y la memoria ya ha extrado la informacinde la posicin correspondiente, se encender la lnea de salida al bus D.

    Figura 49:MemoriaPrincipal.

    Figura 50:Operacinsobre la MP.

  • Captulo 4. Ruta de Datos 57

    Una vez que se ha completado la operacin a realizar desaparece la posicinaccedida y el aspecto de la memoria es el mostrado en la Figura 51.

    La memoria permanece en este estado hasta que termina el ciclo de acceso amemoria.

    Las cuatro ltimas palabras de la memoria no se pueden utilizar como las dems,pues estn reservadas para las comunicaciones con los perifricos. Se trata dedirecciones robadas al mapa de memoria. La manera de manejarlas se explica en detalleen el Captulo 6.

    Restricciones temporales

    Es importante entender las restricciones temporales a las que est sujeta lamemoria, pues el no respetarlas significa un comportamiento incorrecto de sta. Esto esespecialmente importante cuando se est microprogramando el secuenciador. Hay dosparmetros temporales bsicos: el tiempo de acceso y el ciclo de memoria.

    El tiempo de acceso para escritura es el que transcurre desde que se le pide a lamemoria con esc que escriba el contenido del bus D en una palabra hasta que estecontenido queda definitivamente escrito.

    El tiempo de acceso para lectura es el tiempo que transcurre desde que se le dala direccin y la orden de lectura lec a la memoria, hasta que se puede disponer delcontenido de la palabra de dicha direccin en la salida.

    Tras una operacin sobre la memoria no siempre se puede iniciar inmediatamenteotra. El ciclo de memoria es el tiempo que debe transcurrir para poder iniciar unanueva operacin desde que se inici la anterior.

    En una memoria de lectura y escritura, como es el caso de la de Smplez, ambostiempos se pueden suponer iguales. En Smplez el tiempo de acceso se supone de 100ns y el ciclo de memoria de 200 ns.

    Figura 51:Final del ciclode memoria.

  • 58 Manual de Usuario

    Adems hay que tener en cuenta un aspecto ms. Es necesario mantener estable ladireccin de la posicin de memoria, de donde se lee o a donde se escribe, desde unpoco antes de que empiece el ciclo de reloj donde se realiza la operacin y hasta unpoco despus de terminar el acceso. Esto se debe a que los circuitos descodificadoresnecesitan un tiempo para direccionar la pocin en cuestin. Este tiempo es menor a unsemiciclo de reloj.

    Por ltimo, en la memoria de Smplez no es necesario esperar cada cierto tiempoun tiempo de refresco entre operaciones. Lo que permite comenzar una nueva operacinen cuanto termina el ciclo de memoria de la anterior.

    Teniendo en cuenta estos aspectos temporales, las diferentes situaciones que sepueden dar en el simulador si no se respetan son:

    Qu ocurre cuando no se respeta el tiempo que debe permanecer establela direccin de acceso. La operacin se realiza, pero la posicin apuntadapor los circuitos descodificadores es imprevisible y no es posible saber en quposicin terminar por realizarse.

    Qu ocurre si la memoria est siendo accedida y la microorden de laoperacin se desactiva. La operacin no se realiza, pero el ciclo de memoriase completar con 100 ns ms.

    Qu ocurre si el dato a almacenar durante un acceso de escritura nopermanece constante. La operacin se realiza, pero el dato almacenado esimprevisible.

    Qu ocurre si la direccin de acceso cambia y pasa a ser la de un puertode entrada y salida. La operacin no se realiza, pero el ciclo de memoria secompletar con 100 ns ms.

    Qu ocurre si lec y esc permanecen activas durante todo el ciclo dememoria. Nada. La operacin se realiza sin problemas. En cuanto lamemoria termina de ejecutarla deja de atender a las micrordenes de controlhasta que se cumple el ciclo de memoria.

    Puede parecer que el segundo caso es imposible debido a que lec y escpermanecen constantes entre flancos de reloj. Hay que tener en cuenta que la memoriaes un elemento asncrono y que en cuanto detecta una direccin de su rango y unamicroorden activa se pone a trabajar, y en casos de microprogramaciones incorrectas sepodra producir una de las situaciones descritas. As para el segundo caso podra pasarque con lec o esc activas y direccionando los puertos de entrada y salida, en mitad delciclo de reloj cambia la direccin en el bus Ai debido a que era se activa, y la nuevadireccin cargada en RA pasa a pertenecer al rango de memoria. En ese momento laMP lo detecta y comienza a trabajar. Llegados al final del ciclo de reloj sus circuitosdescodificadores ya apuntan a la posicin en cuestin, pero en ese momento lamicroorden activa hasta ese momento pasa a valer 0.

  • Captulo 4. Ruta de Datos 59

    Como se puede observar se ha pretendido tener en cuenta todos los posibles casosque se pueden dar en la Ruta de Datos. El simulador permite comprobar los efectoscatastrficos sobre el sistema de una mala microprogramacin.

    4.7 Dispositivos perifricos

    Smplez tiene dos perifricos; un teclado y una pantalla de texto. La Figura 52muestra su representacin en la Ruta de Datos.

    Dentro de cada controlador se localizan dos registros. El de una cifra es el registrode control y el de tres es el registro de datos.

    La sincronizacin es similar que en los casos de acceso a la Memoria Principal. Alos 100 ns de generar lec o esc la operacin de entrada o salida ha terminado. Acontinuacin se ver que en el caso del controlador de pantalla habr terminado en loque respecta a la UCP, pero no necesariamente para el perifrico.

    A continuacin se revisan los diferentes aspectos de los controladores segn elacceso realizado y el estado en el que se encuentran. Para entender a fondo esteapartado en conveniente leer el Captulo 6, donde se explica el comportamiento de lospuertos.

    Figura 52: Perifricos deSmplez

  • 60 Manual de Usuario

    Controlador de Teclado

    Los puertos de control y datos del controlador de teclado tienen las direcciones510 y 511 del mapa de memoria respectivamente.

    Cuando se accede a ellos para lectura se iluminan mientras est activa lamicroorden lec. La Figura 53 muestra el aspecto del puerto de control cuando se ejecutala instruccin LD /510.

    Los accesos en escritura a estos puertos se ignoran y el aspecto de CTEC nocambia, dado que los circuitos descodificadores de direccin no llegan a direccionar alregistro de control al detectar que la operacin es una escritura.

    Cuando se pulsa una tecla del teclado de Smplez, el puerto de datos pasa acontener el cdigo ISO Latin1 correspondiente y el puerto de datos contendr un 1,tal y como muestra la Figura 54.

    Figura 53:Puerto decontrol activo.

    Figura 54:Puertos traspulsar una tecla.

  • Captulo 4. Ruta de Datos 61

    Controlador de Pantalla

    Los puertos de control y datos del controlador de pantalla se corresponden con lasdirecciones 510 y 511 respectivamente.

    El aspecto que tienen los puertos cuando se realiza sobre ellos una operacin essemejante al de los puertos del controlador de Teclado. Sobre los puertos de estecontrolador se pueden realizar lecturas o escrituras, excepto en el caso de realizar unalectura sobre el puerto de datos. En este caso simplemente se descarta la operacin porlos circuitos descodificadores y el controlador no cambia de aspecto.

    La escritura sobre el puerto de datos lleva asociados varios estados ms. Lassituaciones posibles se explican a continuacin.

    La primera situacin se da cuando no se ha inicializado el puerto de control, laescritura sobre el puerto de datos ilumina el puerto en la Ruta de Datos mientras estactiva la microorden esc, pero su valor no se actualiza.

    La segunda situacin posible se produce en el caso de haber inicializado el puertode control, veremos que los estados por lo que pasa el CPAN son los siguientes:

    1. Durante el primer semiciclo de reloj de O0 el puerto pasa a estar direccionadoy se ilumina, tal y como muestra la Figura 55.

    Figura 55:CPAN duranteO0.

  • 62 Manual de Usuario

    2. Durante el segundo semiciclo de reloj de O0 el puerto de datos actualiza suvalor, el puerto de control pasa a contener un 0 y el aspecto de CPANcambia indicando que comienza un ciclo de pantalla (es a partir de esteinstante que se miden los 33 ms).

    3. Cuando la microorden esc deja de estar activa el registro de datos vuelve a suaspecto original, quedando el CPAN como en la Figura 57. Permanecer ashasta que pase el ciclo de pantalla y el carcter se muestre, momento en elcual volver al estado original y el registro de datos pasar a contener un 1.

    Por tanto, que est iluminado CPAN significa que hay una operacin de escrituraen pantalla en curso. Que est iluminado alguno de los registros significa que se estrealizando una operacin sobre ellos.

    Figura 56:Comienzaciclo depantalla.

    Figura 57:Aspectodurante el ciclode Pantalla.

  • Captulo 4. Ruta de Datos 63

    Las ltimas situaciones posibles se producen cuando comienza una operacinsobre uno de los puertos de CPAN durante el ciclo de pantalla. La lectura sobre elpuerto de datos se descarta, y sobre el puerto de control se lleva a cabo (es de hecho lamanera de comprobar que la operacin de escritura en pantalla ha terminado).

    Si se escribe sobre el puerto de control, ste actualizar su valor tal y comomuestra la Figura 58.

    Si se escribe sobre el puerto de datos durante el ciclo de pantalla, el registro seilumina pero la operacin se descarta tanto si el registro de control est a 1 como siest a 0.

    4.8 Circuitos Combinacionales

    El corazn del secuenciador cableado es el circuito combinacional mostrado en laFigura 59.

    Figura 58:Modificacin delpuerto decontrol.

    Figura 59: Circuitos Combinacionalesdel secuenciador cableado.

  • 64 Manual de Usuario

    Son los encargados de ir generando las diferentes micrordenes de acuerdo al tipode instruccin y al estado actual de la ejecucin, determinado por los valores de losbiestables T e I.

    Los estados posibles son los indicados en la Tabla 3.

    I T Estado0 0 O0 (fase 0 del ciclo de operando)0 1 O1 (fase 1 del ciclo de operando)1 0 I0 (fase 0 del ciclo de instruccin)1 1 I1 (fase 1 del ciclo de instruccin)

    Tabla 3: Estados del secuenciador de Smplez.

    Gracias a estos estados los Circuitos Combinacionales saben qu grupo demicrordenes deben generar en cada momento para una determinada instruccin.

    En la Ruta de Datos el aspecto de los circuitos combinacionales cambia justo conel flanco de bajada de reloj y permanece como el mostrado en la Figura 60 hasta que lasnuevas micrordenes generadas se estabilizan.

    Figura 60: Circuitos combinacionalesactivos.

  • Captulo 4. Ruta de Datos 65

    4.9 Memoria de Control

    De manera anloga al caso del secuenciador cableado, la Memoria de Control esel corazn del secuenciador microprogramado. En este caso las instrucciones implicanla ejecucin sucesiva de una serie de microinstrucciones, que componen unmicroprograma, y que se encuentran almacenadas en la Memoria de Control.

    Como se puede apreciar en la Figura 61, la Memoria de Control est dividida endos partes. Una matriz de rdenes y una matriz de direcciones. La primera tiene untamao de 18 bits y son las micrordenes que gobernarn la Ruta de Datos. La segunda,de 3 bits, es la direccin dentro de la Memoria de Control de la siguientemicroinstruccin a ejecutar.

    En el caso de Smplez la MC tiene 16 palabras, por lo que son necesarios 4 bitspara direccionar todas las micrordenes que la componen. La matriz de direcciones slotiene 3 bits, al igual que el cdigo de operacin de las instrucciones (lo que supone unrepertorio de 8 instrucciones tal y como se explica en el Captulo 8). Con el cdigo deoperacin, se direccionan las ocho primeras direcciones de la tabla, una por cada una delas instrucciones del repertorio, y gracias a la microorden sco, que no exista en elsecuenciador cableado, se direccionan las ocho direcciones restantes. Por tanto lamicroorden sco se comporta como el cuarto bit de direccin; pero no slo unindose alos dems, sino decidiendo adems si los tres restantes provendrn del cdigo deoperacin (cargndolo de los tres bits de mayor peso del bus D) o de la matriz dedirecciones de la MC. Tal y como muestran la Figura 62 y la Figura 63, cuando sco es1 en el registro RA se carga el CO, y cuando es 0 se carga DB.

    Figura 61: MC delsecuenciadormicroprogramado.

  • 66 Manual de Usuario

    En el caso del secuenciador cableado eran los biestables I y T, junto con el tipo deinstruccin en curso, los que indicaban a los circuitos combinacionales la siguientemicroinstruccin. Por cuestiones de diseo una instruccin se poda componer comomximo de cuatro microinstrucciones. En el caso del secuenciador microprogramadoson las propias microinstrucciones las que indican cul es la siguiente microinstruccin.Ahora podemos programar una instruccin compuesta por ms de cuatromicroinstrucciones.

    La activacin de sco marca el comienzo de una nueva instruccin, dado quecargar un nuevo Cdigo de Operacin. ste es precisamente el criterio utilizado por elsimulador para marcar el final de una instruccin y el comienzo de una nueva.

    Hay otra microorden nueva respecto al secuenciador cableado, cbf, que hace lafuncin que haca el biestable F en aquel. Cuando se activa, se inhibe la carga en elregistro RA, y el secuenciador genera indefinidamente las ltimas micrordenes .

    Figura 62: sco con valor 1.

    Figura 63: sco con valor 0.

  • Captulo 4. Ruta de Datos 67

    La Memoria de Control puede presentar uno de los dos aspectos siguientes. Trasel flanco de bajada de reloj el aspecto es el de la Figura 64.

    Cuando las nuevas micrordenes se estabilizan el aspecto de la MC pasa a ser elde la Figura 65.

    4.10 Seal de RelojSmplez funciona de manera sncrona, gobernado por una seal de reloj

    peridica. El perodo de la seal de reloj es 100 ns (10 Mhz). Esta frecuencia vienemarcada por la Memoria Principal. Al ser el elemento de la Ruta de Datos con mayorestiempos de respuesta es el que marcar cundo termina un estado y empieza elsiguiente. Dadas las restricciones t