SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
Indice
Tutorial de WinDLX ..................................................................................................................................................................... 1
          Indice............................................................................................................................................................................. 2
          Introducción .................................................................................................................................................................. 3
          Instalación ..................................................................................................................................................................... 3
          Un completo ejemplo.................................................................................................................................................... 4
                      Arranque y configuración de WinDLX........................................................................................................ 4
                      Cargando los programas............................................................................................................................... 5
                      Simulación .................................................................................................................................................... 5
                                       Ventana Pipeline .......................................................................................................................... 5
                                       Ventana Code............................................................................................................................... 6
                                       Ventana Clock Cycle Diagram .................................................................................................... 6
                                       Ventana Breakpoint ..................................................................................................................... 7
                                       Ventana Register.......................................................................................................................... 8
                                       Ventana Statistics......................................................................................................................... 8
          Experimentos adicionales ............................................................................................................................................. 9




                                                                                                                                                                                                  2
Introducción
El procesador DLX (pronunciado "DeLuXe") es un procesador segmentado usado como un ejemplo en el libro Arquitectura de
Computadores - Un enfoque cuantitativo de J. Hennessy y D. Patterson. Este tutorial describe una sesión usando WinDLX, un
simulador soportado en Windows, que muestra como trabaja el pipeline de DLX.

El ejemplo usado en este tutorial es muy simple y no muestra todos los aspectos de WinDLX. Este ejemplo debería ser usado
solamente como una primera introducción del uso de la aplicación. Cuando haya terminado el ejemplo, por favor haga uso de los
ficheros de ayuda; puede ver la ayuda en cualquier momento de una sesión presionando la tecla F1. Durante este ejemplo,
también, aunque probablemente no será necesario.

Cada etapa del ejemplo serán explicadas en detalle, pero es necesario el conocimiento básico en el uso de Windows. En el ejemplo
se asumirá que el lector tiene este conocimiento.

Para esta simulación necesitará Windows 3.0 ó una versión superior.

Instalación
WinDLX está constituido por los ficheros windlx.exe y windlx.hlp. Con ambos podrá obtener algunos ficheros de código
ensamblador con la extensión .s. Para el uso de este manual serán necesarios fact.s e input.s.

Si está familiarizado con la instalación de aplicaciones de Windows podría pasar al siguiente capítulo, Un completo ejemplo, pero
antes asegúrese que los ficheros fact.s e input.s están copiados en el directorio en el que tenga WinDLX.

Para instalar WinDLX sobre Windows 3.1, por favor, ejecute los siguientes pasos:
1.     Cree un directorio para WinDLX, por ejemplo C:WINDLX.
2.     Copie todos los ficheros WinDLX que tenga, que como mínimo deben ser windlx.exe, windlx.hlp, fact.s e input.s, al
       directorio WinDLX.
3.     Si todavía no ha entrado en Windows, hágalo ahora.
4.     Cree una carpeta nueva e incluya dentro al programa WinDLX. El icono que le aparecerá será como éste:




                                                                                                                               3
Un ejemplo completo
Este capítulo usa el fichero fact.s escrito en ensamblador de WinDLX. El programa calcula el factorial de un número que podrá
introducir por teclado. El fichero input.s también será necesario.

Arranque y configuración de WinDLX
    WinDLX arranca - como todas las aplicaciones de Windows - haciendo doble click sobre el icono de WinDLX. Se abrirá una
    ventana (la ventana principal en lo que sigue) con seis iconos. Haciendo doble click sobre estos iconos abrirá nuevas
    ‘ventanas hijas’. El uso de cada una de estas ventanas será explicado más adelante.




                                                                                                       Para asegurarse que la
    simulación comienza sin ningún valor grabado, abra el menú File de la barra de herramientas y haga click sobre Reset all (o
    pulse Ctrl+I ). Se abrirá una ventana ("Reset DLX") en la que tendrá que confirmar su intención haciendo click sobre el
    botón Aceptar .

    WinDLX tiene la posibilidad de trabajar con varias configuraciones. Podrá cambiar la estructura y necesidades de tiempo del
    pipeline, el tamaño de la memoria y varios parámetros más, que controlan la simulación. Procedamos a cambiar la
    configuración standard; haga click sobreConfiguration /Floating Point Stages (lea esto como: haga click sobre
    Configuration para abrir el menú, entonces haga click sobre Floating Point Stages ) y compruebe que la configuración
    establecida es la siguiente:

                                                               Count                Delay
                            Addition Units:                    1                    2

                            Multiplication Units:              1                    5

                            Division Units:                    1                    19

    Si es necesario, cambie los valores haciendo click en el campo apropiado e introduzca los nuevos valores. Cuando finalice,
    haga click sobre el botónOK para volver a la ventana principal.

    Haciendo click sobre Configuration /Memory Size puede establecerse el tamaño de la memoria del procesador simulado. El
    tamaño deberá ser 0x8000. De nuevo, OK nos lleva de vuelta a la ventana principal.

    El menú Configuration aún tiene tres opciones más que pueden ser activadas: Symbolic addresses, Absolute Cycle Count
    y Enable Forwarding. Una pequeña marca aparecerá junto a la opción al activarlas. Para la simulación active las tres
    opciones.




                                                                                                                             4
Cargando los programas

   Para comenzar la simulación es necesario que esté cargado, al menos, un programa en la memoria principal. Para ello,
   seleccione File /Load Code or Data. (o pulse la tecla de función F3 ). Se abrirá una ventana en la que aparecerá una lista de
   los programas de ensamblador que se encuentran en el directorio de WinDLX.

   Como mencioné anteriormente, fact.s calcula el factorial de un número entero, input.s es un subprograma que lee la entrada
   estándar (el teclado) y almacena al entero introducido, en el registro de propósito general 1 del procesador DLX. Para cargar
   estos dos ficheros en memoria, haga lo siguiente:

   •    haga click sobre fact.s
   •    haga click sobre el botón select
   •    haga click sobre input.s
   •    haga click sobre el botón select
   •    haga click sobre el botón load

   La secuencia de la selección de los ficheros es muy importante, ya que define el orden de almacenamiento en la memoria. El
   mensaje File(s) loaded successfully. Reset DLX? nos confirmará que los ficheros se encuentran cargados correctamente en
   la memoria. Haga click sobre el botón Sí..

   Después de esto la simulación está lista para comenzar.

Simulación

   Ahora, cuando observe la ventana principal, podrá ver seis iconos (no necesariamente en este orden): "Register", "Code",
   "Pipeline", "Clock Cycle Diagram", "Statistics" y "Breakpoints". Haciendo click sobre alguno de estos iconos se
   abrirán nuevas ventanas. Las características y el uso de cada una de ellas será explicado a lo largo de la simulación.

   Ventana Pipeline
   Primero eche una mirada al interior de la estructura del procesador DLX. Para ello, haga doble click sobre el icono Pipeline.
   Se abrirá una ventana que muestra la representación esquemática de las cinco etapas del pipeline del procesador DLX. Haga
   la ventana lo suficientemente grande para que las instrucciones aparezcan sobre las cajas que representan a las diferentes
   etapas en las que están siendo ejecutadas.




   El esquema muestra las cinco etapas de un procesador DLX y las unidades para operaciones de punto flotante (suma / resta,
   multiplicación y división).

   Ventana Code
   La siguiente ventana es la ventana Code. Haciendo doble click sobre el icono, aparecerá una representación de la memoria
   sobre tres columnas, que mostrarán desde la izquierda hacia la derecha: una dirección (simbólica o numérica), la
   representación (en un número hexadecimal) usada por el procesador, de una instrucción y la instrucción en ensamblador.
   Como ejemplo:

       $TEXT                 0x20011000                      addi r1,r0,0x1000

                                                                                                                              5
main+0x4               0x0c00003c                     jal InputUnsigned

Es el momento de comenzar la simulación ahora; haga click sobre Execution / Single Cycle. (o presione la tecla de función
F7 ).

La primera línea en la ventana Code , con la dirección $TEXT se colorea de amarillo. Pulsando la tecla de función F7 la
simulación avanza un paso cada vez; el color de la primera línea cambia a naranja y la siguiente línea se colorea en amarillo.
Estos colores indican la etapa del pipeline en la que se encuentra la instrucción en cada momento. Si ha cerrado la ventana
Pipeline, ábrala de nuevo (doble click sobre el icono). Si la ventana tiene el tamaño suficiente, podrá ver que la instrucción
jal InputUnsigned está en la etapa IF y la siguiente instrucción (addi r1, r0, 0x1000) está en la segunda etapa, ID. Los
otros bloques están marcados con una cruz, mostrando de este modo que no están procesando información.

Pulsando F7 de nuevo se volverán a desplazar los colores en la ventana Code, apareciendo el color rojo que señala la tercera
etapa del pipeline intEX. La siguiente pulsación de F7, de nuevo, causará un cambio en el coloreado de las instrucciones: la
línea amarilla es la única que aparece en la ventana de código. Examine la ventana Pipeline, verá que las etapas IF, intEX y
MEM están siendo usadas pero ID no. ¿Porqué?

Ventana Clock Cycle Diagram
Otra ventana será la que nos muestre esta información. Cierre todas las ventanas abiertas (menos la ventana principal) y abra
la ventana Clock Cycle Diagram. Esta ventana contiene una representación del comportamiento en el tiempo del pipeline.




Observe que la simulación se encuentra en el cuarto ciclo, el primer comando está en la etapa MEM, la segunda está en la
etapa intEX y la cuarta en IF. La tercera instrucción, no obstante, está marcada como ‘abortada’. La razón de ello: La
segunda instrucción, jal, es un salto incondicional. Este hecho no es conocido hasta después del tercer ciclo, cuando se
descodifica la instrucción. Durante este ciclo la instrucción movi2fp (la siguiente a jal ) ya ha sido buscada, pero la ejecución
de la siguiente instrucción será en otra dirección. Por lo tanto la ejecución de movi2fp debe ser abortada, dejando una burbuja
en el pipeline.

La dirección del salto jal es referenciada por ‘InputUnsigned’. Para ver el valor actual de esta dirección simbólica, pulse
click sobre Memory / Symbols (o pulse Ctrl+Y ). La ventana emergente mostrará la correspondencia entre el símbolo usado y
el valor actual de la dirección de memoria que se corresponde con el número. Seleccione ‘name’ en ‘Sort’ para que la lista
aparezca ordenada por los nombres en lugar de por el valor de la dirección de memoria. La letra ‘G’ detrás del valor indica un
símbolo global, la letra ‘L’ indica un símbolo local. ‘InputUnsigned’ en el módulo ‘input’ por lo tanto es un símbolo global
establecido en 0x144 y usado como una dirección. Por favor cierre ahora la ventana haciendo click en el botón OK .

Pulsando F7 una vez más la primera instrucción, addi, cambiará a la última etapa del pipeline. Lo ocurrido internamente al
ejecutar esta instrucción puede ser examinado haciendo doble click sobre la línea que contiene la instrucción (addi ) en la
ventana Clock Cycle Diagram.. Una nueva ventana se abrirá conteniendo una descripción detallada de las acciones internas
de cada etapa del pipeline. La ventana es nombrada como ‘Information about ...’. Después de haberla examinado, ciérrela
haciendo click sobre el botón OK.. Doble click sobre la tercera línea, movi2fp, mostrará que, solamente, la primera etapa del
pipeline, IF, ha sido ejecutada y, entonces, la instrucción fue abortada debido a un salto. No se olvide de hacer click sobre el
botónOK..

(La ventana de información se podrá abrir haciendo doble click sobre una línea en la ventana de código o también sobre una
etapa en la ventana del pipeline).

Ventana Breakpoint

                                                                                                                               6
Cuando examine el código, abriendo la ventana Code (haciendo doble click sobre el icono Code si no está abierta la ventana)
notará que las instrucciones siguientes son básicamente las mismas; ellas son operaciones sw que almacenan palabras desde
un registro hacia la memoria. Pulsando repetidamente F7 podría ser bastante aburrido, así que añadiremos un poco de
velocidad usando un ‘breakpoint’ (punto de ruptura).

Por favor marque ahora la línea 0x0000015c en la ventana de código que contiene la instrucción trap 0x5. Esta instrucción
es una llamada al sistema para escribir sobre la pantalla. Haga click una vez (la línea que contiene la instrucción se pondrá en
inverso) y haga click sobre Code en la barra de herramientas de la ventana principal (recuerde que la ventana de código debe
estar abierta). Si está seguro que tiene la línea de código marcada, seleccione Set Breakpoint (o pulse la tecla Ins ). Una
nueva ventana "Set Breakpoint" se abrirá permitiéndole que decida la etapa del pipeline en la que parará la ejecución del
programa al llegar la instrucción a dicha etapa. La etapa seleccionada por defecto es ID. Seleccione dicha etapa y pulse el
botón OK para cerrar la ventana.




Le aparecerá en la línea trap 0x5 de la ventana de código, ‘BID’, indicando que la ejecución del programa se detendrá
cuando dicha instrucción llegue a la fase ‘ID’ .

Para examinar los ‘breakpoints’ definidos haga click sobre el icono Breakpoints. Le aparecerá una pequeña ventana
conteniendo todos los breakpoints (en estos momentos solo le aparecerá uno). Cierre la ventana de nuevo.

Ahora continúe la simulación haciendo click sobre Execution / Run o pulsando simplemente F5. A continuación una
ventana le informará que la simulación llegó al ‘Breakpoint 1’ (‘ID-Stage: reached at Breakpoint #1’). Ciérrela haciendo
click sobre el botón Aceptar.

Si abre la ventana del diagrama de ciclos de reloj, encontrará algo nuevo. La simulación ha llegado al ciclo 14, y la línea trap
0x5 aparecerá del modo siguiente:




La razón para ello es que el pipeline se limpia en DLX cuando llega a una instrucción de trap, la cual puede crear toda clase
de problemas. Este hecho puede documentarlo en la ventana de información (haciendo doble click sobre la línea de la
instrucción trap ) en la que aparecerá el mensaje siguiente ‘3 stall(s) because of Trap-Pipeline-Clearing!’ (tres ciclos de
detención debido a la limpieza del pipeline por instrucción trap’) en la etapa IF. (No continúe sin haber cerrado antes la
ventana haciendo click sobre el botón OK.).

La instrucción trap 0x5 ya ha escrito en la pantalla. Puede comprobar este hecho haciendo click sobre Execute / Display
DLX-I/O en la barra de herramientas de la ventana principal. La ventana que se le acaba de abrir muestra lo que se ha escrito
en la pantalla. Como es normal pulse el botónOK para cerrar la ventana.

Ventana Register

Para avanzar en la simulación abra la ventana de código y recorra hacia abajo la lista de las instrucciones haciendo uso de las
teclas de dirección (‘flechas’) o mediante la barra de desplazamiento vertical, hasta la línea de dirección 0x00000194 , con la
instrucción lw r2, SaveR2(r0) . Establezca un ‘breakpoint‘ en esta línea (haga click sobre la línea y pulse la tecla Ins o haga
click sobre Code / Set Breakpoint / OK ). Use el mismo procedimiento para establecer otro ‘breakpoint’ sobre la línea
0x000001a4 jr r31. Pulsando F5 ahora la simulación avanzará hasta llegar a una nueva sorpresa: La ventana ‘DLX-
Standard-I/O’ aparecerá en pantalla con el cursor parpadeante tras el mensaje ‘An integer value >1: ‘ (‘Un valor entero >1:
’). Escriba 20 y pulse la tecla Enter; la simulación continuará hasta llegar al ‘breakpoint # 2’ (pulse Aceptar ).



                                                                                                                              7
La ventana Clock Cycle Diagram mostrará algunas flechas rojas y verdes entre instrucciones (si no las ve desplace el interior
    de la ventana hasta llegar a los ciclos 52, 53, 54, 55 y 56). Las flechas rojas indican la necesidad de una detención; la razón
    para esta detención es explicada en la línea a la que apunta la flecha. En este caso, tenemos R-Stalls, las cuales indican la
    existencia de un riesgo RAW (una instrucción necesita el resultado aún no conocido, de una instrucción previa). Las flechas
    verdes indican el uso del adelantamiento de datos, que es el uso de un resultado antes de que sea escrito en el registro destino
    (etapa WB de la instrucción).

    Ahora es el momento de examinar el contenido de los registros. Para hacer esto, haga doble click sobre el icono Register en
    la ventana principal. La ventana de registros muestra los valores contenidos en los registros. Observe especialmente a los
    registros R1 al R5. Ejecutando la simulación hasta el próximo ‘breakpoint’ (pulse F5 / Aceptar ) comprobará que algunos
    valores han cambiado. Las instrucciones lw serán las que produzcan estos cambios: cargan valores desde memoria a los
    registros.

    Si quiere avanzar la simulación sin necesidad de establecer más ‘breakpoint’, hay otra posibilidad. Haga click sobre Execute
    / Multiple Cycles o simplemente use F8 . En la nueva ventana creada, escriba 17 y pulse Enter. La simulación avanzará 17
    ciclos de reloj.

    Desplaza el diagrama de ciclos de reloj hasta poder ver los ciclos 72 a 78 al menos. Dos operaciones de punto flotante (multd
    y subd - multiplicar y restar en doble precisión) son ejecutadas en unidades diferentes durante la etapa EX, pero ambas
    necesitan más de un ciclo para terminar. De todas maneras la instrucción siguiente (j Fact.Loop ) puede ser buscada,
    descodificada y ejecutada, pero después sufre un ciclo de detención para permitir que la instrucción subd finalice su etapa
    MEM.


    Ventana Statistics

    A continuación examinaremos la última ventana, la ventana de las estadísticas.

    Permita que finalice la ejecución del programa pulsando la tecla de función F5. El mensaje ‘Trap #0 occured’ le indicará que
    la última instrucción, trap 0, ha sido ejecutada (pulse el botón Aceptar ). La interrupción número 0 no está definida; esta
    instrucción es usada como una instrucción final del código para asegurar la finalización del programa. Cierre todas las
    ventanas y haga doble click sobre el icono Statistics.

    Esta ventana le proporcionará información sobre aspectos generales (por ejemplo el número de los ciclos de simulación), la
    configuración del hardware usada en la simulación, detenciones y sus causas, saltos condicionales, el número de
    instrucciones de carga/almacenamiento, el número de instrucciones con etapas de punto flotante y traps (interrupciones).
    Normalmente, la cuenta absoluta de los hechos irá acompañada de un porcentaje, p.ej. ‘RAW stalls (detenciones por riesgo
    RAW): 17(7.91 % of all Cycles (porcentaje sobre todos los ciclos)’.

    La ventana de las estadísticas es extremadamente útil para comparar los efectos de los cambios en la configuración.
    Trataremos esto ahora:

    Examinaremos los efectos del adelantamiento de datos en el ejemplo. Hasta ahora hemos estado usando esta opción; ¿qué
    ocurrirá con el tiempo de ejecución si ésta se produce sin el adelantamiento de datos?

    Para ello, anote el número total de ciclos (215) y detenciones (17 RAW, 25 Control, 12 Trap; 54 Total) y cierre la ventana de
    las estadísticas; entonces haga click sobre Configuration / Enable Forwarding (la marca desaparecerá). Aparecerá en
    pantalla el siguiente mensaje: ‘WARNING: OK resets automatically the processor! Disable Forwarding?‘. Responda
    pulsando el botón OK.. Elimine todos los ‘breakpoints’ abriendo la ventana Breakpoints y haciendo click sobre Breakpoints
    / Delete All ; confirme pulsando el botón Aceptar. Entonces ejecute de nuevo la simulación pulsando F5, introduzca el
    valor20 pulse la tecla Enter y el botón Aceptar cuando la simulación llegue al trap 0. Volviendo a examinar la ventana de
    las estadísticas, comprobará que el número de detenciones de Control y de Traps continua siendo el mismo, pero el número
    de detenciones por riesgos RAW es ahora 53 en lugar de 17 como antes, y se ha producido un incremento del número total
    de ciclos (236 ahora). Con esta información podrá calcular, por ejemplo, la velocidad ganada por el adelantamiento de datos
    (236 / 215 = 1.098 => DLXadelantado es un 9.8 % más rápido que DLXno adelantado en el programa fact.s).



Experimentos adicionales
Este tutorial realiza un aprendizaje algo rápido a través del ejemplo mostrando todas las opciones importantes de WinDLX. La
comprensión del pipeline y el modo de operación del procesador DLX en particular, solamente puede conseguirse si estudia otros
ejemplos en gran detalle y a una velocidad adecuada al nivel de comprensión de cada alumno. Podría cambiar la configuración
para ver si una nueva unidad de suma de punto flotante es útil o si una unidad de división más rápida (menos ciclos de
instrucción) justifica el coste adicional de ésta. Además puede simular los efectos de un compilador optimizador por reordenación
de las líneas del código fuente, evitando de este modo, las detenciones por riesgo RAW.

                                                                                                                                  8
Haga un uso intensivo de la ayuda (Help ). De este modo podrá encontrar muchos detalles no explicados en este tutorial.

En general: ‘juegue’ con WinDLX para obtener una ‘percepción’ de la función del pipeline - WinDLX seguramente le será de
gran ayuda para este objetivo.




                                                                                                                          9

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Todos los comandos para ejecutar en windows 10
Todos los comandos para ejecutar en windows 10Todos los comandos para ejecutar en windows 10
Todos los comandos para ejecutar en windows 10
 
Laboratorio #2
Laboratorio #2Laboratorio #2
Laboratorio #2
 
manual-hcanales
manual-hcanalesmanual-hcanales
manual-hcanales
 
Curso de intouch 10.1
Curso de intouch 10.1Curso de intouch 10.1
Curso de intouch 10.1
 
2677527 tutorial-de-windows-vista-final
2677527 tutorial-de-windows-vista-final2677527 tutorial-de-windows-vista-final
2677527 tutorial-de-windows-vista-final
 
Fabian gonzalez wind
Fabian gonzalez windFabian gonzalez wind
Fabian gonzalez wind
 
Comandos windows 8
Comandos windows 8Comandos windows 8
Comandos windows 8
 
PASOS PARA TRABAJAR CON UN PROGRAMA EN KEIL μVision
PASOS PARA TRABAJAR CON UN PROGRAMA EN KEIL μVisionPASOS PARA TRABAJAR CON UN PROGRAMA EN KEIL μVision
PASOS PARA TRABAJAR CON UN PROGRAMA EN KEIL μVision
 
Manual windows-7
Manual windows-7Manual windows-7
Manual windows-7
 
Informe ejecutivo fase 2
Informe ejecutivo   fase 2Informe ejecutivo   fase 2
Informe ejecutivo fase 2
 
Informe ejecutivo fase 2
Informe ejecutivo fase 2Informe ejecutivo fase 2
Informe ejecutivo fase 2
 
Texto word
Texto wordTexto word
Texto word
 
Unidad 4 Ana
Unidad 4 AnaUnidad 4 Ana
Unidad 4 Ana
 
manual-de-intouch
manual-de-intouchmanual-de-intouch
manual-de-intouch
 
Administrar particiones-w7
Administrar particiones-w7Administrar particiones-w7
Administrar particiones-w7
 
Manual allegro c++
Manual allegro c++Manual allegro c++
Manual allegro c++
 
Black book document
Black book documentBlack book document
Black book document
 
Manual del usuario c panel espanol
Manual del usuario c panel espanolManual del usuario c panel espanol
Manual del usuario c panel espanol
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Cuaderno de práctica sn (reparado)
Cuaderno de práctica sn (reparado)Cuaderno de práctica sn (reparado)
Cuaderno de práctica sn (reparado)
 

Destacado

Interior do computador
Interior do computadorInterior do computador
Interior do computadorPedroInes
 
Mangoo Software Presentación Corporativa
Mangoo Software Presentación CorporativaMangoo Software Presentación Corporativa
Mangoo Software Presentación CorporativaEmmanuel Muñoz
 
Relacion informatica derecho
Relacion informatica  derechoRelacion informatica  derecho
Relacion informatica derechoEdsonQHerbert
 
Propuesta integral ac set s.h
Propuesta integral ac set s.hPropuesta integral ac set s.h
Propuesta integral ac set s.hnadiaot
 
Valores Planejamento 1 E ExecuçãO
Valores Planejamento 1 E ExecuçãOValores Planejamento 1 E ExecuçãO
Valores Planejamento 1 E ExecuçãOAdrodalla
 
¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?
¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?
¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?HIPOLITO MEJIA 2012
 
Estácio: Apresentação dos Resultados do 2T12
Estácio: Apresentação dos Resultados do 2T12Estácio: Apresentação dos Resultados do 2T12
Estácio: Apresentação dos Resultados do 2T12Estácio Participações
 
El malestar-en-la-cultura
El malestar-en-la-culturaEl malestar-en-la-cultura
El malestar-en-la-culturaMajo Bravo
 
Técnicas e Desafios de SEO
Técnicas e Desafios de SEOTécnicas e Desafios de SEO
Técnicas e Desafios de SEOFabio Ricotta
 
Estratégias para Buscadores -
Estratégias para Buscadores - Estratégias para Buscadores -
Estratégias para Buscadores - Fabio Ricotta
 
Estácio: Apresentação dos Resultados do 2T13
Estácio: Apresentação dos Resultados do 2T13Estácio: Apresentação dos Resultados do 2T13
Estácio: Apresentação dos Resultados do 2T13Estácio Participações
 
Nuevo documento de microsoft word
Nuevo documento de microsoft wordNuevo documento de microsoft word
Nuevo documento de microsoft wordSebastian Candela
 
Unidad 6
Unidad 6Unidad 6
Unidad 6JJGILS
 

Destacado (20)

Divulgação de Resultados 2T09
Divulgação de Resultados 2T09Divulgação de Resultados 2T09
Divulgação de Resultados 2T09
 
Fin de curso 2º b
Fin de curso 2º bFin de curso 2º b
Fin de curso 2º b
 
recomendation BA
recomendation BArecomendation BA
recomendation BA
 
Interior do computador
Interior do computadorInterior do computador
Interior do computador
 
Mangoo Software Presentación Corporativa
Mangoo Software Presentación CorporativaMangoo Software Presentación Corporativa
Mangoo Software Presentación Corporativa
 
Cine espanol 60s
Cine espanol 60sCine espanol 60s
Cine espanol 60s
 
Relacion informatica derecho
Relacion informatica  derechoRelacion informatica  derecho
Relacion informatica derecho
 
Propuesta integral ac set s.h
Propuesta integral ac set s.hPropuesta integral ac set s.h
Propuesta integral ac set s.h
 
Valores Planejamento 1 E ExecuçãO
Valores Planejamento 1 E ExecuçãOValores Planejamento 1 E ExecuçãO
Valores Planejamento 1 E ExecuçãO
 
¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?
¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?
¿Porqué quiebran los productores agropecuarios en los gobiernos del PLD?
 
Diapositivas educacion a distancia.
Diapositivas educacion a distancia.Diapositivas educacion a distancia.
Diapositivas educacion a distancia.
 
Estácio: Apresentação dos Resultados do 2T12
Estácio: Apresentação dos Resultados do 2T12Estácio: Apresentação dos Resultados do 2T12
Estácio: Apresentação dos Resultados do 2T12
 
El malestar-en-la-cultura
El malestar-en-la-culturaEl malestar-en-la-cultura
El malestar-en-la-cultura
 
Técnicas e Desafios de SEO
Técnicas e Desafios de SEOTécnicas e Desafios de SEO
Técnicas e Desafios de SEO
 
Estratégias para Buscadores -
Estratégias para Buscadores - Estratégias para Buscadores -
Estratégias para Buscadores -
 
Apresentação 1T09 PT
Apresentação 1T09 PTApresentação 1T09 PT
Apresentação 1T09 PT
 
Arquitectura
ArquitecturaArquitectura
Arquitectura
 
Estácio: Apresentação dos Resultados do 2T13
Estácio: Apresentação dos Resultados do 2T13Estácio: Apresentação dos Resultados do 2T13
Estácio: Apresentação dos Resultados do 2T13
 
Nuevo documento de microsoft word
Nuevo documento de microsoft wordNuevo documento de microsoft word
Nuevo documento de microsoft word
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 

Similar a Tutorial WinDLX simulador DLX

Manual de Armado Cap.10-11-12.pdf
Manual de Armado Cap.10-11-12.pdfManual de Armado Cap.10-11-12.pdf
Manual de Armado Cap.10-11-12.pdfhome
 
PLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys GrafcetPLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys GrafcetSANTIAGO PABLO ALBERTO
 
CYPELEC REBT - Manual del Usuario .pdf
CYPELEC REBT - Manual del Usuario   .pdfCYPELEC REBT - Manual del Usuario   .pdf
CYPELEC REBT - Manual del Usuario .pdfNelsonPMartinezR
 
Trucos para windows 7 y 8
Trucos para windows 7 y 8Trucos para windows 7 y 8
Trucos para windows 7 y 8Geovanni Lozano
 
Como saber que sistema operativo tiene mi equipo?
Como saber que sistema operativo tiene mi equipo?Como saber que sistema operativo tiene mi equipo?
Como saber que sistema operativo tiene mi equipo?Daniel Valdez
 
Suite de Desarrollo con SmartObjects.pdf
Suite de Desarrollo con SmartObjects.pdfSuite de Desarrollo con SmartObjects.pdf
Suite de Desarrollo con SmartObjects.pdfRafael Laya
 
Guia práctica laptop xo
Guia práctica laptop xoGuia práctica laptop xo
Guia práctica laptop xoJimmy Cuadros Q
 
Ejemplos de pseudocódigo
Ejemplos de pseudocódigoEjemplos de pseudocódigo
Ejemplos de pseudocódigoLiliana Nieto
 
Práctica 4: Registro y configuración inicio de Windows
Práctica 4: Registro y configuración inicio de WindowsPráctica 4: Registro y configuración inicio de Windows
Práctica 4: Registro y configuración inicio de Windowsjosemafe7
 
Grupo 2 y 5 so y computador
Grupo 2 y 5 so y computadorGrupo 2 y 5 so y computador
Grupo 2 y 5 so y computadorzproano
 
Tutorial visual c_(2)
Tutorial visual c_(2)Tutorial visual c_(2)
Tutorial visual c_(2)Elideth Rdz
 

Similar a Tutorial WinDLX simulador DLX (20)

ConfiguracióN De Una Pc
ConfiguracióN De Una PcConfiguracióN De Una Pc
ConfiguracióN De Una Pc
 
practica 2
practica 2practica 2
practica 2
 
Manual de Armado Cap.10-11-12.pdf
Manual de Armado Cap.10-11-12.pdfManual de Armado Cap.10-11-12.pdf
Manual de Armado Cap.10-11-12.pdf
 
Trabajo informatica 3
Trabajo informatica 3Trabajo informatica 3
Trabajo informatica 3
 
01 regedit
01  regedit01  regedit
01 regedit
 
PLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys GrafcetPLC y Electroneumática: Codesys Grafcet
PLC y Electroneumática: Codesys Grafcet
 
Rs logix 500
Rs logix 500Rs logix 500
Rs logix 500
 
CYPELEC REBT - Manual del Usuario .pdf
CYPELEC REBT - Manual del Usuario   .pdfCYPELEC REBT - Manual del Usuario   .pdf
CYPELEC REBT - Manual del Usuario .pdf
 
Trucos para windows 7 y 8
Trucos para windows 7 y 8Trucos para windows 7 y 8
Trucos para windows 7 y 8
 
Como saber que sistema operativo tiene mi equipo?
Como saber que sistema operativo tiene mi equipo?Como saber que sistema operativo tiene mi equipo?
Como saber que sistema operativo tiene mi equipo?
 
Suite de Desarrollo con SmartObjects.pdf
Suite de Desarrollo con SmartObjects.pdfSuite de Desarrollo con SmartObjects.pdf
Suite de Desarrollo con SmartObjects.pdf
 
Proteus
ProteusProteus
Proteus
 
Unid 1 p
Unid 1 pUnid 1 p
Unid 1 p
 
Guia práctica laptop xo
Guia práctica laptop xoGuia práctica laptop xo
Guia práctica laptop xo
 
Ejemplos de pseudocódigo
Ejemplos de pseudocódigoEjemplos de pseudocódigo
Ejemplos de pseudocódigo
 
Parte 3
Parte 3Parte 3
Parte 3
 
Práctica 4: Registro y configuración inicio de Windows
Práctica 4: Registro y configuración inicio de WindowsPráctica 4: Registro y configuración inicio de Windows
Práctica 4: Registro y configuración inicio de Windows
 
Grupo 2 y 5 so y computador
Grupo 2 y 5 so y computadorGrupo 2 y 5 so y computador
Grupo 2 y 5 so y computador
 
wincvs11es.pdf
wincvs11es.pdfwincvs11es.pdf
wincvs11es.pdf
 
Tutorial visual c_(2)
Tutorial visual c_(2)Tutorial visual c_(2)
Tutorial visual c_(2)
 

Más de Pedro Plopezh

Más de Pedro Plopezh (8)

Guialeboro2017 ok
Guialeboro2017 okGuialeboro2017 ok
Guialeboro2017 ok
 
5 diversidad anaya
5 diversidad anaya5 diversidad anaya
5 diversidad anaya
 
Solucion11
Solucion11Solucion11
Solucion11
 
Problema redes 1
Problema redes 1Problema redes 1
Problema redes 1
 
Problema escalar 2
Problema escalar 2Problema escalar 2
Problema escalar 2
 
Problema vliw 2
Problema vliw 2Problema vliw 2
Problema vliw 2
 
Ic3 enunciado ejerc1 (2)
Ic3 enunciado ejerc1 (2)Ic3 enunciado ejerc1 (2)
Ic3 enunciado ejerc1 (2)
 
Wdlxtut
WdlxtutWdlxtut
Wdlxtut
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Último (16)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Tutorial WinDLX simulador DLX

  • 1.
  • 2. Indice Tutorial de WinDLX ..................................................................................................................................................................... 1 Indice............................................................................................................................................................................. 2 Introducción .................................................................................................................................................................. 3 Instalación ..................................................................................................................................................................... 3 Un completo ejemplo.................................................................................................................................................... 4 Arranque y configuración de WinDLX........................................................................................................ 4 Cargando los programas............................................................................................................................... 5 Simulación .................................................................................................................................................... 5 Ventana Pipeline .......................................................................................................................... 5 Ventana Code............................................................................................................................... 6 Ventana Clock Cycle Diagram .................................................................................................... 6 Ventana Breakpoint ..................................................................................................................... 7 Ventana Register.......................................................................................................................... 8 Ventana Statistics......................................................................................................................... 8 Experimentos adicionales ............................................................................................................................................. 9 2
  • 3. Introducción El procesador DLX (pronunciado "DeLuXe") es un procesador segmentado usado como un ejemplo en el libro Arquitectura de Computadores - Un enfoque cuantitativo de J. Hennessy y D. Patterson. Este tutorial describe una sesión usando WinDLX, un simulador soportado en Windows, que muestra como trabaja el pipeline de DLX. El ejemplo usado en este tutorial es muy simple y no muestra todos los aspectos de WinDLX. Este ejemplo debería ser usado solamente como una primera introducción del uso de la aplicación. Cuando haya terminado el ejemplo, por favor haga uso de los ficheros de ayuda; puede ver la ayuda en cualquier momento de una sesión presionando la tecla F1. Durante este ejemplo, también, aunque probablemente no será necesario. Cada etapa del ejemplo serán explicadas en detalle, pero es necesario el conocimiento básico en el uso de Windows. En el ejemplo se asumirá que el lector tiene este conocimiento. Para esta simulación necesitará Windows 3.0 ó una versión superior. Instalación WinDLX está constituido por los ficheros windlx.exe y windlx.hlp. Con ambos podrá obtener algunos ficheros de código ensamblador con la extensión .s. Para el uso de este manual serán necesarios fact.s e input.s. Si está familiarizado con la instalación de aplicaciones de Windows podría pasar al siguiente capítulo, Un completo ejemplo, pero antes asegúrese que los ficheros fact.s e input.s están copiados en el directorio en el que tenga WinDLX. Para instalar WinDLX sobre Windows 3.1, por favor, ejecute los siguientes pasos: 1. Cree un directorio para WinDLX, por ejemplo C:WINDLX. 2. Copie todos los ficheros WinDLX que tenga, que como mínimo deben ser windlx.exe, windlx.hlp, fact.s e input.s, al directorio WinDLX. 3. Si todavía no ha entrado en Windows, hágalo ahora. 4. Cree una carpeta nueva e incluya dentro al programa WinDLX. El icono que le aparecerá será como éste: 3
  • 4. Un ejemplo completo Este capítulo usa el fichero fact.s escrito en ensamblador de WinDLX. El programa calcula el factorial de un número que podrá introducir por teclado. El fichero input.s también será necesario. Arranque y configuración de WinDLX WinDLX arranca - como todas las aplicaciones de Windows - haciendo doble click sobre el icono de WinDLX. Se abrirá una ventana (la ventana principal en lo que sigue) con seis iconos. Haciendo doble click sobre estos iconos abrirá nuevas ‘ventanas hijas’. El uso de cada una de estas ventanas será explicado más adelante. Para asegurarse que la simulación comienza sin ningún valor grabado, abra el menú File de la barra de herramientas y haga click sobre Reset all (o pulse Ctrl+I ). Se abrirá una ventana ("Reset DLX") en la que tendrá que confirmar su intención haciendo click sobre el botón Aceptar . WinDLX tiene la posibilidad de trabajar con varias configuraciones. Podrá cambiar la estructura y necesidades de tiempo del pipeline, el tamaño de la memoria y varios parámetros más, que controlan la simulación. Procedamos a cambiar la configuración standard; haga click sobreConfiguration /Floating Point Stages (lea esto como: haga click sobre Configuration para abrir el menú, entonces haga click sobre Floating Point Stages ) y compruebe que la configuración establecida es la siguiente: Count Delay Addition Units: 1 2 Multiplication Units: 1 5 Division Units: 1 19 Si es necesario, cambie los valores haciendo click en el campo apropiado e introduzca los nuevos valores. Cuando finalice, haga click sobre el botónOK para volver a la ventana principal. Haciendo click sobre Configuration /Memory Size puede establecerse el tamaño de la memoria del procesador simulado. El tamaño deberá ser 0x8000. De nuevo, OK nos lleva de vuelta a la ventana principal. El menú Configuration aún tiene tres opciones más que pueden ser activadas: Symbolic addresses, Absolute Cycle Count y Enable Forwarding. Una pequeña marca aparecerá junto a la opción al activarlas. Para la simulación active las tres opciones. 4
  • 5. Cargando los programas Para comenzar la simulación es necesario que esté cargado, al menos, un programa en la memoria principal. Para ello, seleccione File /Load Code or Data. (o pulse la tecla de función F3 ). Se abrirá una ventana en la que aparecerá una lista de los programas de ensamblador que se encuentran en el directorio de WinDLX. Como mencioné anteriormente, fact.s calcula el factorial de un número entero, input.s es un subprograma que lee la entrada estándar (el teclado) y almacena al entero introducido, en el registro de propósito general 1 del procesador DLX. Para cargar estos dos ficheros en memoria, haga lo siguiente: • haga click sobre fact.s • haga click sobre el botón select • haga click sobre input.s • haga click sobre el botón select • haga click sobre el botón load La secuencia de la selección de los ficheros es muy importante, ya que define el orden de almacenamiento en la memoria. El mensaje File(s) loaded successfully. Reset DLX? nos confirmará que los ficheros se encuentran cargados correctamente en la memoria. Haga click sobre el botón Sí.. Después de esto la simulación está lista para comenzar. Simulación Ahora, cuando observe la ventana principal, podrá ver seis iconos (no necesariamente en este orden): "Register", "Code", "Pipeline", "Clock Cycle Diagram", "Statistics" y "Breakpoints". Haciendo click sobre alguno de estos iconos se abrirán nuevas ventanas. Las características y el uso de cada una de ellas será explicado a lo largo de la simulación. Ventana Pipeline Primero eche una mirada al interior de la estructura del procesador DLX. Para ello, haga doble click sobre el icono Pipeline. Se abrirá una ventana que muestra la representación esquemática de las cinco etapas del pipeline del procesador DLX. Haga la ventana lo suficientemente grande para que las instrucciones aparezcan sobre las cajas que representan a las diferentes etapas en las que están siendo ejecutadas. El esquema muestra las cinco etapas de un procesador DLX y las unidades para operaciones de punto flotante (suma / resta, multiplicación y división). Ventana Code La siguiente ventana es la ventana Code. Haciendo doble click sobre el icono, aparecerá una representación de la memoria sobre tres columnas, que mostrarán desde la izquierda hacia la derecha: una dirección (simbólica o numérica), la representación (en un número hexadecimal) usada por el procesador, de una instrucción y la instrucción en ensamblador. Como ejemplo: $TEXT 0x20011000 addi r1,r0,0x1000 5
  • 6. main+0x4 0x0c00003c jal InputUnsigned Es el momento de comenzar la simulación ahora; haga click sobre Execution / Single Cycle. (o presione la tecla de función F7 ). La primera línea en la ventana Code , con la dirección $TEXT se colorea de amarillo. Pulsando la tecla de función F7 la simulación avanza un paso cada vez; el color de la primera línea cambia a naranja y la siguiente línea se colorea en amarillo. Estos colores indican la etapa del pipeline en la que se encuentra la instrucción en cada momento. Si ha cerrado la ventana Pipeline, ábrala de nuevo (doble click sobre el icono). Si la ventana tiene el tamaño suficiente, podrá ver que la instrucción jal InputUnsigned está en la etapa IF y la siguiente instrucción (addi r1, r0, 0x1000) está en la segunda etapa, ID. Los otros bloques están marcados con una cruz, mostrando de este modo que no están procesando información. Pulsando F7 de nuevo se volverán a desplazar los colores en la ventana Code, apareciendo el color rojo que señala la tercera etapa del pipeline intEX. La siguiente pulsación de F7, de nuevo, causará un cambio en el coloreado de las instrucciones: la línea amarilla es la única que aparece en la ventana de código. Examine la ventana Pipeline, verá que las etapas IF, intEX y MEM están siendo usadas pero ID no. ¿Porqué? Ventana Clock Cycle Diagram Otra ventana será la que nos muestre esta información. Cierre todas las ventanas abiertas (menos la ventana principal) y abra la ventana Clock Cycle Diagram. Esta ventana contiene una representación del comportamiento en el tiempo del pipeline. Observe que la simulación se encuentra en el cuarto ciclo, el primer comando está en la etapa MEM, la segunda está en la etapa intEX y la cuarta en IF. La tercera instrucción, no obstante, está marcada como ‘abortada’. La razón de ello: La segunda instrucción, jal, es un salto incondicional. Este hecho no es conocido hasta después del tercer ciclo, cuando se descodifica la instrucción. Durante este ciclo la instrucción movi2fp (la siguiente a jal ) ya ha sido buscada, pero la ejecución de la siguiente instrucción será en otra dirección. Por lo tanto la ejecución de movi2fp debe ser abortada, dejando una burbuja en el pipeline. La dirección del salto jal es referenciada por ‘InputUnsigned’. Para ver el valor actual de esta dirección simbólica, pulse click sobre Memory / Symbols (o pulse Ctrl+Y ). La ventana emergente mostrará la correspondencia entre el símbolo usado y el valor actual de la dirección de memoria que se corresponde con el número. Seleccione ‘name’ en ‘Sort’ para que la lista aparezca ordenada por los nombres en lugar de por el valor de la dirección de memoria. La letra ‘G’ detrás del valor indica un símbolo global, la letra ‘L’ indica un símbolo local. ‘InputUnsigned’ en el módulo ‘input’ por lo tanto es un símbolo global establecido en 0x144 y usado como una dirección. Por favor cierre ahora la ventana haciendo click en el botón OK . Pulsando F7 una vez más la primera instrucción, addi, cambiará a la última etapa del pipeline. Lo ocurrido internamente al ejecutar esta instrucción puede ser examinado haciendo doble click sobre la línea que contiene la instrucción (addi ) en la ventana Clock Cycle Diagram.. Una nueva ventana se abrirá conteniendo una descripción detallada de las acciones internas de cada etapa del pipeline. La ventana es nombrada como ‘Information about ...’. Después de haberla examinado, ciérrela haciendo click sobre el botón OK.. Doble click sobre la tercera línea, movi2fp, mostrará que, solamente, la primera etapa del pipeline, IF, ha sido ejecutada y, entonces, la instrucción fue abortada debido a un salto. No se olvide de hacer click sobre el botónOK.. (La ventana de información se podrá abrir haciendo doble click sobre una línea en la ventana de código o también sobre una etapa en la ventana del pipeline). Ventana Breakpoint 6
  • 7. Cuando examine el código, abriendo la ventana Code (haciendo doble click sobre el icono Code si no está abierta la ventana) notará que las instrucciones siguientes son básicamente las mismas; ellas son operaciones sw que almacenan palabras desde un registro hacia la memoria. Pulsando repetidamente F7 podría ser bastante aburrido, así que añadiremos un poco de velocidad usando un ‘breakpoint’ (punto de ruptura). Por favor marque ahora la línea 0x0000015c en la ventana de código que contiene la instrucción trap 0x5. Esta instrucción es una llamada al sistema para escribir sobre la pantalla. Haga click una vez (la línea que contiene la instrucción se pondrá en inverso) y haga click sobre Code en la barra de herramientas de la ventana principal (recuerde que la ventana de código debe estar abierta). Si está seguro que tiene la línea de código marcada, seleccione Set Breakpoint (o pulse la tecla Ins ). Una nueva ventana "Set Breakpoint" se abrirá permitiéndole que decida la etapa del pipeline en la que parará la ejecución del programa al llegar la instrucción a dicha etapa. La etapa seleccionada por defecto es ID. Seleccione dicha etapa y pulse el botón OK para cerrar la ventana. Le aparecerá en la línea trap 0x5 de la ventana de código, ‘BID’, indicando que la ejecución del programa se detendrá cuando dicha instrucción llegue a la fase ‘ID’ . Para examinar los ‘breakpoints’ definidos haga click sobre el icono Breakpoints. Le aparecerá una pequeña ventana conteniendo todos los breakpoints (en estos momentos solo le aparecerá uno). Cierre la ventana de nuevo. Ahora continúe la simulación haciendo click sobre Execution / Run o pulsando simplemente F5. A continuación una ventana le informará que la simulación llegó al ‘Breakpoint 1’ (‘ID-Stage: reached at Breakpoint #1’). Ciérrela haciendo click sobre el botón Aceptar. Si abre la ventana del diagrama de ciclos de reloj, encontrará algo nuevo. La simulación ha llegado al ciclo 14, y la línea trap 0x5 aparecerá del modo siguiente: La razón para ello es que el pipeline se limpia en DLX cuando llega a una instrucción de trap, la cual puede crear toda clase de problemas. Este hecho puede documentarlo en la ventana de información (haciendo doble click sobre la línea de la instrucción trap ) en la que aparecerá el mensaje siguiente ‘3 stall(s) because of Trap-Pipeline-Clearing!’ (tres ciclos de detención debido a la limpieza del pipeline por instrucción trap’) en la etapa IF. (No continúe sin haber cerrado antes la ventana haciendo click sobre el botón OK.). La instrucción trap 0x5 ya ha escrito en la pantalla. Puede comprobar este hecho haciendo click sobre Execute / Display DLX-I/O en la barra de herramientas de la ventana principal. La ventana que se le acaba de abrir muestra lo que se ha escrito en la pantalla. Como es normal pulse el botónOK para cerrar la ventana. Ventana Register Para avanzar en la simulación abra la ventana de código y recorra hacia abajo la lista de las instrucciones haciendo uso de las teclas de dirección (‘flechas’) o mediante la barra de desplazamiento vertical, hasta la línea de dirección 0x00000194 , con la instrucción lw r2, SaveR2(r0) . Establezca un ‘breakpoint‘ en esta línea (haga click sobre la línea y pulse la tecla Ins o haga click sobre Code / Set Breakpoint / OK ). Use el mismo procedimiento para establecer otro ‘breakpoint’ sobre la línea 0x000001a4 jr r31. Pulsando F5 ahora la simulación avanzará hasta llegar a una nueva sorpresa: La ventana ‘DLX- Standard-I/O’ aparecerá en pantalla con el cursor parpadeante tras el mensaje ‘An integer value >1: ‘ (‘Un valor entero >1: ’). Escriba 20 y pulse la tecla Enter; la simulación continuará hasta llegar al ‘breakpoint # 2’ (pulse Aceptar ). 7
  • 8. La ventana Clock Cycle Diagram mostrará algunas flechas rojas y verdes entre instrucciones (si no las ve desplace el interior de la ventana hasta llegar a los ciclos 52, 53, 54, 55 y 56). Las flechas rojas indican la necesidad de una detención; la razón para esta detención es explicada en la línea a la que apunta la flecha. En este caso, tenemos R-Stalls, las cuales indican la existencia de un riesgo RAW (una instrucción necesita el resultado aún no conocido, de una instrucción previa). Las flechas verdes indican el uso del adelantamiento de datos, que es el uso de un resultado antes de que sea escrito en el registro destino (etapa WB de la instrucción). Ahora es el momento de examinar el contenido de los registros. Para hacer esto, haga doble click sobre el icono Register en la ventana principal. La ventana de registros muestra los valores contenidos en los registros. Observe especialmente a los registros R1 al R5. Ejecutando la simulación hasta el próximo ‘breakpoint’ (pulse F5 / Aceptar ) comprobará que algunos valores han cambiado. Las instrucciones lw serán las que produzcan estos cambios: cargan valores desde memoria a los registros. Si quiere avanzar la simulación sin necesidad de establecer más ‘breakpoint’, hay otra posibilidad. Haga click sobre Execute / Multiple Cycles o simplemente use F8 . En la nueva ventana creada, escriba 17 y pulse Enter. La simulación avanzará 17 ciclos de reloj. Desplaza el diagrama de ciclos de reloj hasta poder ver los ciclos 72 a 78 al menos. Dos operaciones de punto flotante (multd y subd - multiplicar y restar en doble precisión) son ejecutadas en unidades diferentes durante la etapa EX, pero ambas necesitan más de un ciclo para terminar. De todas maneras la instrucción siguiente (j Fact.Loop ) puede ser buscada, descodificada y ejecutada, pero después sufre un ciclo de detención para permitir que la instrucción subd finalice su etapa MEM. Ventana Statistics A continuación examinaremos la última ventana, la ventana de las estadísticas. Permita que finalice la ejecución del programa pulsando la tecla de función F5. El mensaje ‘Trap #0 occured’ le indicará que la última instrucción, trap 0, ha sido ejecutada (pulse el botón Aceptar ). La interrupción número 0 no está definida; esta instrucción es usada como una instrucción final del código para asegurar la finalización del programa. Cierre todas las ventanas y haga doble click sobre el icono Statistics. Esta ventana le proporcionará información sobre aspectos generales (por ejemplo el número de los ciclos de simulación), la configuración del hardware usada en la simulación, detenciones y sus causas, saltos condicionales, el número de instrucciones de carga/almacenamiento, el número de instrucciones con etapas de punto flotante y traps (interrupciones). Normalmente, la cuenta absoluta de los hechos irá acompañada de un porcentaje, p.ej. ‘RAW stalls (detenciones por riesgo RAW): 17(7.91 % of all Cycles (porcentaje sobre todos los ciclos)’. La ventana de las estadísticas es extremadamente útil para comparar los efectos de los cambios en la configuración. Trataremos esto ahora: Examinaremos los efectos del adelantamiento de datos en el ejemplo. Hasta ahora hemos estado usando esta opción; ¿qué ocurrirá con el tiempo de ejecución si ésta se produce sin el adelantamiento de datos? Para ello, anote el número total de ciclos (215) y detenciones (17 RAW, 25 Control, 12 Trap; 54 Total) y cierre la ventana de las estadísticas; entonces haga click sobre Configuration / Enable Forwarding (la marca desaparecerá). Aparecerá en pantalla el siguiente mensaje: ‘WARNING: OK resets automatically the processor! Disable Forwarding?‘. Responda pulsando el botón OK.. Elimine todos los ‘breakpoints’ abriendo la ventana Breakpoints y haciendo click sobre Breakpoints / Delete All ; confirme pulsando el botón Aceptar. Entonces ejecute de nuevo la simulación pulsando F5, introduzca el valor20 pulse la tecla Enter y el botón Aceptar cuando la simulación llegue al trap 0. Volviendo a examinar la ventana de las estadísticas, comprobará que el número de detenciones de Control y de Traps continua siendo el mismo, pero el número de detenciones por riesgos RAW es ahora 53 en lugar de 17 como antes, y se ha producido un incremento del número total de ciclos (236 ahora). Con esta información podrá calcular, por ejemplo, la velocidad ganada por el adelantamiento de datos (236 / 215 = 1.098 => DLXadelantado es un 9.8 % más rápido que DLXno adelantado en el programa fact.s). Experimentos adicionales Este tutorial realiza un aprendizaje algo rápido a través del ejemplo mostrando todas las opciones importantes de WinDLX. La comprensión del pipeline y el modo de operación del procesador DLX en particular, solamente puede conseguirse si estudia otros ejemplos en gran detalle y a una velocidad adecuada al nivel de comprensión de cada alumno. Podría cambiar la configuración para ver si una nueva unidad de suma de punto flotante es útil o si una unidad de división más rápida (menos ciclos de instrucción) justifica el coste adicional de ésta. Además puede simular los efectos de un compilador optimizador por reordenación de las líneas del código fuente, evitando de este modo, las detenciones por riesgo RAW. 8
  • 9. Haga un uso intensivo de la ayuda (Help ). De este modo podrá encontrar muchos detalles no explicados en este tutorial. En general: ‘juegue’ con WinDLX para obtener una ‘percepción’ de la función del pipeline - WinDLX seguramente le será de gran ayuda para este objetivo. 9