scieee Open visual document viewer

Diseño e implementación de un simulador software basado en el procesador MIPS32

Rivas Pérez, Manuel; Domínguez Morales, Manuel Jesús; Gómez Rodríguez, Francisco de Asís; Linares Barranco, Alejandro; Jiménez Moreno, Gabriel; Civit Balcells, Antón

Abstract

La arquitectura de computadores es una asignatura de gran importancia actualmente en las titulaciones de Informática. Pero en muchas ocasiones, los estudiantes tienen problemas para comprender la materia debido a la falta de herramientas que muestren el funcionamiento de los componentes internos de la arquitectura de los computadores de manera fácil e intuitiva. En este trabajo se expone un simulador del procesador MIPS32 desarrollado en .NET que puede ser controlado a través de línea de comandos o desde una interfaz gráfica versátil e intuitiva para facilitar a los alumnos el estudio de la arquitectura de los procesadores segmentados. La interfaz gráfica ofrece un entorno de desarrollo integrado en el que editar y ensamblar los programas, así como mostrar el funcionamiento del procesador a través de sus registros, memoria, pipeline y el cronograma de ejecución. En este trabajo se expondrá un simulador como producto que responde a las necesidades de los alumnos en asignaturas relacionadas con el estudio de la arquitectura de los computadores. En primer lugar se expondrá una comparativa de simuladores MIPS, posteriormente se mostrarán las características del procesador que se simula, se describirá la implementación del ensamblador y del propio simulador y finalmente se mostrará su funcionamiento a través de la interfaz gráfica desarrollada denominada VisualMips32.

Full text

Diseño e implemen ación de un simulado so wa e basado en el p ocesado MIPS32 Manuel Ri as Pé ez1, Manuel Domínguez Mo ales1, F ancisco Gómez Rod íguez1, Alejand o Lina es Ba anco1, Gab iel Jiménez Mo eno1, An ón Ci i Balcells1 1 Depa amen o de A qui ec u a y Tecnología de Compu ado es Escuela Técnica Supe io de Ingenie ía In o má ica Uni e sidad de Se illa A enida Reina Me cedes s/n Se illa, España {m i as, mdominguez, gomez oz, alina es, gaji, ci i }@a c.us.es Resumen. La a qui ec u a de compu ado es es una asigna u a de g an impo ancia ac ualmen e en las i ulaciones de In o má ica. Pe o en muchas ocasiones, los es udian es ienen p oblemas pa a comp ende la ma e ia debido a la al a de he amien as que mues en el uncionamien o de los componen es in e nos de la a qui ec u a de los compu ado es de mane a ácil e in ui i a. En es e abajo se expone un simulado del p ocesado MIPS32 desa ollado en .NET que puede se con olado a a és de línea de comandos o desde una in e az g á ica e sá il e in ui i a pa a acili a a los alumnos el es udio de la a qui ec u a de los p ocesado es segmen ados. La in e az g á ica o ece un en o no de desa ollo in eg ado en el que edi a y ensambla los p og amas, así como mos a el uncionamien o del p ocesado a a és de sus egis os, memo ia, pipeline y el c onog ama de ejecución. En es e abajo se expond á un simulado como p oduc o que esponde a las necesidades de los alumnos en asigna u as elacionadas con el es udio de la a qui ec u a de los compu ado es. En p ime luga se expond á una compa a i a de simulado es MIPS, pos e io men e se mos a án las ca ac e ís icas del p ocesado que se simula, se desc ibi á la implemen ación del ensamblado y del p opio simulado y inalmen e se mos a á su uncionamien o a a és de la in e az g á ica desa ollada denominada VisualMips32. Palab as Cla e: MIPS32, simulado , segmen ación, .NET, a qui ec u a de compu ado es. Abs ac . Nowadays, compu e a chi ec u e is a e y impo an subjec in Compu e Science deg ees. Bu o en, s uden s ha e p oblems unde s anding he opic due o he lack o ools o show he beha io o he in e nal compu e a chi ec u e componen s in an easy and in ui i e way. This pape p esen s a MIPS32 p ocesso simula o de eloped in .NET ha can be con olled ia command line o de s o using a e sa ile and in ui i e g aphical in e ace ha makes he s udy o segmen ed p ocesso a chi ec u e easie . The GUI (g aphical use in e ace) o e s an in eg a ed de elopmen en i onmen , whe e assembly p og ams can be assembled and un, in addi ion o being able o wa ch a s ep- Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 79 by-s ep execu ion h ough i s egis e s, memo y, pipeline and execu ion ch onog am. This pape p esen s a simula o as a so wa e ool de eloped o mee he s uden s’ needs in subjec s ela ed o he compu e a chi ec u e. Fi s , a compa a i e o se e al MIPS simula o s is shown. A e ha , he implemen a ion o he assemble and he simula o i sel will be desc ibed; and, inally, i s ope a ion is displayed h ough he de eloped g aphical in e ace, called VisualMips32. Keywo ds: MIPS32, simula o , segmen a ion, .NET, compu e a chi ec u e. 1 In oducción La elec ónica digi al ha e olucionado ápidamen e en muy poco iempo llegando a in eg a más de mil millonesde ansis o es en un mismo chip. La a qui ec u a ambién ha e olucionado con nue as es uc u as como la segmen ación, el uso de cachés, p ocesamien o mul i-hilo o el mul ip ocesamien o ayudados po es e aumen o de la in eg ación de los ansis o es. El es udio de la a qui ec u a de los compu ado es es de g an impo ancia en las i ulaciones uni e si a ias elacionadas con la in o má ica. Es as a qui ec u as, u o de su e olución, pueden esul a complejas lo que p o oca que muchos es udian es encuen en di icul ades pa a comp ende algunos aspec os de la asigna u a de a qui ec u a de compu ado es, como la segmen ación de cauce (pipelining) o el cálculo del endimien o del p ocesado . La segmen ación es una écnica muy impo an e en a qui ec u a de compu ado es en la que a ias ins ucciones pueden ejecu a se simul áneamen e man eniendo cada una de ellas en una e apa di e en e de la u a de da os (da apa h). El uso de p ocesado es ejemplo ayuda al alumno a comp ende los concep os cla e de la a qui ec u a y las mejo as de los p ocesado es. Es e es el caso del p ocesado MIPS desc i o en los lib os de Henessy y Pa e son [1] [2] ampliamen e conocidos po la comunidad uni e si a ia, que han con e ido a es e p ocesado de ejemplo en uno de los más u ilizados pa a enseña la asigna u a de a qui ec u a de compu ado es en las uni e sidades [3]. Pe o aun así, es os con enidos son di íciles de asimila si se exponen únicamen e haciendo uso de la piza a o con lápiz y papel. Es po ello que muchos los p o eso es emplean simulado es g á icos como he amien a pa a mos a los concep os de o ma in ui i a e in e ac i a simpli icando la o ma en la que los p o eso es enseñan y los alumnos ap enden la a qui ec u a de compu ado es. Hay nume osos a ículos que a an sob e el ap endizaje de la a qui ec u a de compu ado es [4–7] y la mayo ía de ienden la impo ancia de los simulado es pa a el ap endizaje. De hecho es os simulado es se han con e ido en una he amien a indispensable pa a que los alumnos puedan en ende las complejas a qui ec u as di íciles de asimila sin la in e az g á ica que los simulado es ac uales pueden o ece [8]. Hay una g an a iedad de simulado es ac ualmen e, desde los más simples has a complejos simulado es u ilizados en in es igación y que son analizados en [9]. Algunos di igidos a simula los componen es ha dwa e y o os la a qui ec u a del juego de ins ucciones cada uno de ellos con dis in o ni el de de alle desde simplemen e modela el compo amien o ex e no a mos a las in e acciones de los componen es in e nos. A pesa de habe g an a iedad de ellos, algunos no son Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 80 adecuados pa a el ap endizaje ya que son di íciles de usa y comp ende , o bien son demasiado especí icos [6]. En es e abajo se p esen a un so wa e que simula y isualiza el p ocesamien o de ins ucciones del p ocesado segmen ado MIPS pa a mejo a la calidad de la enseñanza y da a los es udian es un en o no en el que expe imen a . Es e abajo se o ganiza de la siguien e o ma: En la sección 2 se exponen los eque imien os necesa ios pa a desa olla el simulado académico adecuado. La sección 3 desc ibe muchos de los simulado es que exis en y se especi ican los aspec os más ele an es de cada uno de ellos. La sección 4 mues a las ca ac e ís icas del p ocesado MIPS que se ha simulado. Pos e io men e se desc ibe la implemen ación del ensamblado y del simulado en la sección 5, el uncionamien o del en o no isual VisualMIPS32 en la sección 6 y, e minando el p esen e abajo, con las mejo as u u as y las conclusiones. 2 Obje i os Pa a consegui el obje i o p incipal de ob ene una he amien a que acili e la enseñanza y el ap endizaje de la a qui ec u a de compu ado es, el desa ollo de es e so wa e se basa en los siguien es eque imien os:  Pe mi i econ igu a y pa ame iza el p ocesado .  Realiza ejecución paso a paso y con ol de pun os de in e upción (B eakpoin s).  Simula la e sión monociclo, mul iciclo y segmen ada del p ocesado .  O ece una in e az g á ica in ui i a, cla a y ácil de usa .  In eg a un edi o de ensamblado en el en o no de desa ollo.  Inclui un amplio núme o de ins ucciones del epe o io an o de en e os como de coma lo an e además de pseudo-ins ucciones.  Mos a in o mación cla a y de allada sob e la codi icación de cada ins ucción, la segmen aciónde las ins ucciones, los ipos de bloqueos que se p oducen, la ac i ación de des íos (bypasses) y las es adís icas sob e el endimien o ob enido. 3 O os simulado es Como se indicó an e io men e, exis en ac ualmen e muchas he amien as pa a simula el uncionamien o de un p ocesado y de muy di e sos ipos, algunas de ellas poco adecuadas pa a la enseñanza debido a su di icul ad o po se muy especí icas [7]. A con inuación se desc iben los simulado es o ien ados a la enseñanza más conocidos especi icando algunos pun os a a o o en con a de ellas:  Q Spim [10, 11]. Es un simulado de MIPS32 p og amado en C++ y Q que ue muy u ilizado an o en educación como en la indus ia [12]. Es e Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 81 simulado implemen a un amplio epe o io de ins ucciones incluyendo algunas en coma lo an e [13]. Es una buena he amien a de depu ación y es in ui i a pe o sólo simula la e sión del p ocesado monociclo.  MARS [12, 14]. Es á esc i o en ja a y se u iliza de muchas uni e sidades de odo el mundo. Simula la ejecución del p og ama ensamblado paso a paso y mues a el esul ado de los egis os y de la memo ia. Su en o no de desa ollo in eg a un edi o capaz de mos a la sin axis en una en ana eme gen e du an e la p og amación. Es una buena he amien a de simulación y depu ación aunque, al igual que Q Spim, sólo es capaz de simula la e sión monociclo del MIPS. Una de las ca ac e ís icas más des acable de es e simulado es que admi e la inclusión de plug-ins lo que pe mi e amplia su uncionalidad. Buen ejemplo de ello es el MIPS X-Ray [15], un plug-in que ep esen a g á icamen e la u a de da os del p ocesado .  P ocesso Sim [16]. Es una he amien a desa ollada en ja a que simula el MIPS R2000 monociclo. Es e simulado incluye a ias u as de da os di e en es, e incluso el usua io puede c ea más, que se mues an g á icamen e en o ma de animación. Respec o a la animación, un p oblema del que adolece es que sólo un componen e puede en ia un mensaje en cada ins an e de iempo cuando en ealidad odos los componen es debe ían abaja concu en emen e [17]. O as de sus debilidades son que no mues a u a de da os de la e sión segmen ada, que su edi o es muy simple y que el juego de ins ucciones que implemen a es muy educido.  MIPS-Da apa h [18]. Es un simulado desa ollado en C++ que mues a la u a de da os g á icamen e an o de la e sión monociclo como de la segmen ada, con y sin adelan amien os. Pe mi e la ejecución paso a paso, pe o posee un juego de ins ucciones muy educido y no sopo a el bloqueo del cauce.  WebMIPS [19]. Es e simulado ue p og amado en ASP y simula el MIPS segmen ado con de ección de iesgos. Es un simulado educa i o in e esan e ya que se ejecu a desde un explo ado web po lo que no p ecisa ins alación. Es capaz de ejecu a se paso a paso mos ando la u a de da os g á icamen e. Es un buen simulado educa i o pe o no implemen a la e sión monociclo, su edi o es muy simple y la ep esen ación de la u a de da os es es á ica.  EduMIPS64 [20, 21]. Es a he amien a es una e-implemen ación del simulado WinMips64 [22][23]. Simula el p ocesado MIPS64 segmen ado, posee una in e az muy in ui i a, posee un amplio epe o io de ins ucciones que incluye ope aciones en pun o lo an e, llamadas al sis ema e implemen a la de ección de bloqueos. Po el con a io, no posee un edi o in eg ado, no sopo a simulación monociclo ni mues a la u a de da os.  MiniMIPS [24]. Es un simulado implemen ado en C pa a Unix. Mues a la u a de da os du an e la simulación pe o no es a ni el RT ni es animada y el único da o de endimien o que o ece es el núme o de ciclos.  D Mips [25]. Es un simulado de MIPS32 implemen ado en ja a que isualiza paso a paso la u a de da os incluyendo la la encia de los componen es cuando usa el modo pe o mance. Mues a a ias u as de da os basadas en lib os de Henessy y Pa e son [1, 2] incluyendo la u a de da os monociclo y segmen ada. Posee un edi o que mues a la sin axis en un menú Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 82 eme gen e. Su ca ac e ís ica más des acable es que posee una e sión pa a la pla a o ma And oid. En [19] se mues a una abla que compa a a ios simulado es MIPS eniendo en cuen a si implemen an el MIPS de Hennessy y Pa e son [1, 2] a ni el RT, si mues an da os es adís icos del endimien o, si ealizan animaciones en iempo de simulación que mues en cómo se ans ie en las señales o si emplean una pla a o ma independien e que los haga más po ables. En [25] ambién se expone una abla compa a i a muy comple a de muchos de los simulado es an e io men e ci ados eniendo en cuen a muchos aspec os como, si in eg a un edi o , si implemen a ins ucciones en coma lo an e, si la u a de da os es con igu able, si es segmen ado, o si pe mi e la edición de da os du an e la simulación. 4 Ca ac e ís icas del p ocesado simulado: MIPS32 MIPS (ac ónimo de Mic op ocesso wi hou In e locked Pipeline S ages) es un p ocesado con un juego educido de ins ucciones (RISC) desa ollado po MIPS Compu e Sys ems, que pasó a llama se MIPS echnologies y que ha sido endida a Imagina ion echnologies. Los p ocesado es MIPS o man pa e de una g an amilia de p ocesado es RISC desde su p ime p ocesado R2000 en el 1986 cuyo juego de ins ucciones ha e olucionado desde la e sión o iginal denominada MIPS I has a las ac uales MIPS32 y MIPS64. G acias a la sencillez de su a qui ec u a y al hecho de que ac ualmen e sea bas an e u ilizado en sis emas embebidos, lo ha con e ido en un p ocesado muy adecuado pa a el es udio de la a qui ec u a de compu ado es en las uni e sidades. El simulado p esen ado en es e abajo es á basado en el p ocesado MIPS32 cuya a qui ec u a ISA puede consul a se en [26, 27, 28]. Las ca ac e ís icas p incipales de es e p ocesado son:  P ocesado RISC segmen ado de 32 bi s y di ecciones de 32 bi s  Ins ucciones de amaño ijo pa a una ápida decodi icación de las ins ucciones.  Almacenamien o en memo ia en big-endian o li le-endian.  32 egis os de p opósi o gene al de 32 bi s pa a en e os.  Unidades uncionales independien es pa a el p oduc o y la di isión. Es as unidades uncionales con ienen además los egis os HI y LO u ilizados pa a almacena el esul ado de ope aciones ( éase Figu a 1).  Cop ocesado de coma lo an e. Es e cop ocesado es iden i icado como cop ocesado 1 y posee un banco de 32 egis os de 32 bi s (Figu a 1) que pueden emplea se pa a almacena núme os en coma lo an e de simple p ecisión (32 bi s) o bien pueden ag upa se po pa es pa a almacena núme os en coma lo an e de doble p ecisión (64 bi s).  Unidad de de ección y con ol de iesgos.  Implemen a adelan amien os ( o wa ding) pa a educi los bloqueos de da os.  Sal os e a daos pa a educi los bloqueos de con ol. Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 83 $0 ... $31 Regis os de en e os Unidad a i mé ica Unidad Mul iplicación Di isión HI LO CPU $ 0 ... $ 31 Regis os FP Cop ocessado 1 (FPU) Unidad A i mé ica De FP Figu a 1. Unidades de p ocesamien o del MIPS32 Todas es as ca ac e ís icas han sido implemen adas en el p ocesado siendo con igu ables la u ilización de adelan amien os, los sal os e a dados, el núme o de ciclos que du an las e apas y cuáles de ellas son segmen adas ( e Figu as 11-12). 4.1 Modos de di eccionamien o Las a qui ec u as RISC admi en un conjun o muy educido de modos de di eccionamien o y odos ellos han sido implemen ados en el simulado . Los modos de di eccionamien o son:  Regis o. El ope ando es á en un egis o del banco de egis os de en e os o de coma lo an e según el ipo de ins ucción. Pa a especi ica los egis os de en e os en ensamblado pueden u iliza se indis in amen e dos nomencla u as. La nomencla u a empleada pa a cada egis o apa ece en la Tabla 1 y ambién se mues a el uso al que a des inado cada egis o. Una nomencla u a consis e en emplea el símbolo ‘$’ seguido del núme o del egis o (po ejemplo add $1, $2, $3) y o a u iliza el símbolo ‘$’ seguido de una palab a que de ine su u ilización, po ejemplo add $a , $ 0, $ 1. Tabla 1. Nomencla u a y uso de los egis os de en e os del p ocesado . Nomb e Regis o Uso $ze o 0 Cons an e 0 $a 1 Rese ado pa a el ensamblado $ 0-$ 1 2-3 Valo es de e o no $a0-$a3 4-7 A gumen os $ 0-$ 7 8-15 Tempo ales $s0-$s7 16-23 Valo es Gua dados $ 8-$ 9 24-25 Tempo ales $k0-$k1 16-27 Rese ados pa a el ke nel $gp 28 Pun e o Global $sp 29 Pun e o de Pila $ p 30 Pun e o de Ma co $ a 31 Di ección de e o no Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 84  Inmedia o. El ope ando es una cons an e de 16 bi s almacenada en la p opia ins ucción, po ejemplo addi $1,$2, 2000.  Regis o base más desplazamien o. Di eccionamien o a memo ia en el que la di ección e ec i a iene de e minada po el con enido de un egis o denominado egis o base más una cons an e que ac úa de desplazamien o. Es e modo de di eccionamien o sólo se usa en ins ucciones de acceso a memo ia (ca gas y almacenamien os). Su sin axis es inm( eg), siendo eg el egis o base e inm el desplazamien o, po ejemplo lw $1, 24($2).  Rela i o al Con ado de P og ama. Se emplea exclusi amen e en los sal os condicionales y la di ección des ino de sal o se ob iene sumando una cons an e de 16 bi s en complemen o a 2 al egis o con ado de p og ama. Es e modo de di eccionamien o queda ocul o en el ensamblado g acias al uso de e ique as. Un ejemplo de es e modo se ía beqz $1, $2, e iqsigue.  Pseudodi ec o: U iliza una cons an e pa a especi ica los 26 bi s menos signi ica i os de la di ección. Los 6 bi s más signi ica i os que al an, de los 32 bi s que o man la di ección, se oman del egis o PC. Es po ello po lo que su nomb e con iene el p e ijo pseudo. Es e modo se emplea exclusi amen e pa a indica la di ección de sal o en las ins ucciones de sal o incondicional sin egis o (ins ucciones j y jal). Al igual que en el modo de di eccionamien o an e io , el edi o ocul a es e de alle median e e ique as (po ejemplo j sigue). 4.2 Repe o io de ins ucciones De odo el epe o io de ins ucciones de la a qui ec u a MIPS32, o mado po algo más de 200 ins ucciones incluyendo las que ope an en coma lo an e, es e simulado implemen a 80 de ellas que son las que comúnmen e se encuen an en la mayo ía de los p og amas en ensamblado . Las ablas 2a-2d mues an el epe o io de las ins ucciones implemen adas en el simulado clasi icadas según el ipo de ope ación que ealizan. Tabla 2a. Ins ucciones de ca ga y almacenamien o. Ins ucción Desc ipción lb eg,inm16( eg) Ca ga by e con signo en eg. en e o desde mem (ex iende signo). lbu eg,inm16( eg) Ca ga by e sin signo en eg. en e o desde mem (ex iende ce os). lh eg,inm16( eg) Ca ga 16 bi s con signo en eg. en e o desde mem. (ex iende signo) lhu eg,inm16( eg) Ca ga 16 bi s sin signo en eg. en e o desde mem. (ex iende ce os) lw eg,inm16( eg) Ca ga 32 bi s en eg. en e o desde mem. sb eg,inm16( eg) Gua da by e en mem. desde eg. en e o sh eg,inm16( eg) Gua da 16 bi s en mem. desde eg. en e o sw eg,inm16( eg) Gua da 32 bi s en mem. desde eg. en e o lwc1 eg,inm16( eg) Ca ga 32 bi s en eg. FP simple p ec. desde mem. ldc1 eg,inm16( eg) Ca ga 64 bi s en eg. FP doble p ec. desde mem. swc1 eg,inm16( eg) Gua da 32 bi s en mem. desde eg. FP sdc1 eg,inm16( eg) Gua da 64 bi s en mem. desde eg FP doble p ec. m c1 eg, eg Ca ga 32 bi s en eg. en e o desde eg. FP Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 85 m c1 eg, eg Ca ga 32 bi s en eg. FP desde eg. en e o m lo eg Ca ga 32 bi s en eg. en e o desde eg. LO m hi eg Ca ga 32 bi s en eg. en e o desde eg. HI lui eg,inm16 Ca ga inm de 16 bi s en pa e al a de eg. en e o li eg,imm32 Ca ga inm de 32 bi s en eg. en e o (pseudo-ins ucción). la eg,e iq Ca ga en eg. en e o la di ección de una e ique a Tabla 2b. Ins ucciones de ope aciones a i mé icas y lógicas con en e os. Ins ucción Desc ipción add eg, eg, eg Suma en e egis os de en e os addu eg, eg, eg Suma en e egis os de en e os sin desbo damien o addi eg, eg,inm16 Suma de en e os con inmedia o addiu eg, eg,inm16 Suma de en e os con inmedia o sin desbo damien o sub eg, eg, eg Res a en e egis os de en e os subu eg, eg, eg Res a en e egis os de en e os sin desbo damien o mul eg, eg, eg Mul iplicación de en e os con signo. mul eg, eg Mul iplicación de en e os con signo de 32 bi s. mul u eg, eg Mul iplicación de en e os sin signo de 32 bi s. di eg, eg Di isión de en e os con signo. di u eg, eg, eg Di isión de en e os sin signo. and eg, eg, eg Ope ación AND en e egis os andi eg, eg,inm16 Ope ación AND en e egis o e inmedia o no eg, eg, eg Ope ación NOR en e egis os. o eg, eg, eg Ope ación OR en e egis os. o i eg, eg,inm16 Ope ación OR en e egis o e inmedia o xo eg, eg, eg Ope ación OR exclusi a en e egis os. xo i eg, eg,inm16 Ope ación OR exclusi a en e egis o e inmedia o sll eg, eg,inm16 Desplazamien o lógico a la izquie da s l eg, eg,inm16 Desplazamien o lógico a la de echa s a eg, eg,inm16 Desplazamien o a i mé ico a la de echa sll eg, eg, eg Desplazamien o lógico a la izquie da a iable s l eg, eg, eg Desplazamien o lógico a la de echa a iable s a eg, eg, eg Desplazamien o a i mé ico a la de echa a iable ol eg, eg, eg Ro ación a la izquie da a iable o eg, eg, eg Ro ación a la de echa a iable sl eg, eg, eg Compa ación “meno que” en e eg. con signo sl u eg, eg, eg Compa ación “meno que” en e eg. sin signo sl i eg, eg,inm16 Compa ación “meno que” con inm y con signo sl iu eg, eg,inm16 Compa ación “meno que” con inm sin signo nop No ope ación. Tabla 2c. Ins ucciones de ope aciones a i mé icas y lógicas en coma lo an e. Ins ucción Desc ipción add.d eg, eg, eg Suma en FP de simple p ecisión sub.d eg, eg, eg Res a en FP de simple p ecisión mul.d eg, eg, eg Mul iplicación en FP de simple p ecisión di .d eg, eg, eg Di isión en FP de simple p ecisión abs.d eg, eg Valo absolu o en FP de simple p ecisión add.d eg, eg, eg Suma en FP de doble p ecisión sub.d eg, eg, eg Res a en FP de doble p ecisión mul.d eg, eg, eg Mul iplicación en FP de doble p ecisión Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 86 di .d eg, eg, eg Di isión en FP de doble p ecisión abs.d eg, eg Valo absolu o en FP de doble p ecisión Tabla 2d. Ins ucciones de con ol. Ins ucción Desc ipción beq eg, eg,e iq Sal o el. a PC si ambos egis os son iguales bne eg, eg,e iq Sal o el. a PC si ambos egis os son dis in os beqz eg,e iq Sal o el. a PC si el egis o es igual a “0” bnez eg,e iq Sal o el. a PC si el egis o es dis in o de “0” bl z eg,e iq Sal o el. a PC si el egis o es meno que“0” blez eg,e iq Sal o el. a PC si el egis o es meno o igual a “0” bg z eg,e iq Sal o el. a PC si el egis o es mayo que “0” bgez eg,e iq Sal o el. a PC si el egis o es mayo o igual a “0” bg eg, eg,e iq Sal o el. a PC si es mayo con signo bge eg, eg,e iq Sal o el. a PC si es mayo o igual con signo bl eg, eg,e iq Sal o el. a PC si es meno con signo ble eg, eg,e iq Sal o el. a PC si es meno o igual con signo bg u eg, eg,e iq Sal o el. a PC si es mayo sin signo bgeu eg, eg,e iq Sal o el. a PC si es mayo o igual sin signo bl u eg, eg,e iq Sal o el. a PC si es meno sin signo bleu eg, eg,e iq Sal o el. a PC si es meno o igual sin signo j e iq Sal o incondicional a di ección de 26 bi s (e iq) jal e iq Sal o incondicional a di . de 26 bi s con e o no. j eg Sal o incondicional a di . dada po egis o jal eg Sal o incondicional a di . po egis o con e o no. 5 Implemen ación Es a he amien a se ha implemen ado en C# .NET y cons a undamen almen e de los siguien es elemen os:  Ensamblado Se ha desa ollado una lib e ía dinámica (.dll) enca gada de analiza el código ensamblado de las 80 ins ucciones enume adas en las Tablas 2a-2d y gene a el código máquina incluyendo la in o mación del analizado .  Simulado MIPS32. Se ha implemen ado el simulado del MIPS32 en o a lib e ía dll independien e incluyendo la memo ia p incipal. Básicamen e se enca ga de simula paso a paso el p ocesamien o de las ins ucciones e in o ma de las e apas del pipeline. Es a lib e ía u iliza di ec amen e el componen e an e io po lo que aba ca odo el p oceso desde el ensamblado del p og ama has a la simulación.  ConsolaMips32. Es una in e az que mues a po pan alla el c onog ama de ejecución en modo ex o.  VisualMips32. In e az g á ica del simulado que in eg a el edi o y que mues a el es ado del p ocesado desde dis in os pun os de is a como es el pipeline, c onog ama, egis os, memo ia, e c. du an e la simulación de o ma g á ica. Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 87 El en o no se compone undamen almen e de sie e en anas que el usua io puede acopla a la en ana p incipal en o ma de pes añas o subdi idiendo el á ea de o as ya acopladas. Al inicia la aplicación las en anas se encuen an dis ibuidas en la en ana p incipal como mues a la Figu a 5. La en ana p incipal del en o no, que si e de con enedo pa a el es o de en anas, posee los siguien es bo ones:  Bo ón de Menú. pa a accede a odas las unciones del en o no.  Bo ón de Con igu ación. Mues a la en ana de con igu ación del p ocesado y simulado .  Bo ones de na egación. Pa a einicia y a anza en la simulación ciclo a ciclo, ins ucción a ins ucción o has a el inal. 6.1 Ven ana Edi o Es a en a se u iliza p incipalmen e pa a ca ga , edi a y ensambla el código ensamblado a simula . Los p og amas se gua dan con la ex ensión asm. Como se ap ecia en la Figu a 6, además de los bo ones p opios de cualquie edi o de ex o, incluye el bo ón Ensambla enca gado de de ec a los e o es del código y mos a los po la en ana de mensajes. Si la opción Au oEnsambla de la en ana de con igu ación es á ac i a los e o es se mos a án au omá icamen e du an e la edición del p og ama. Figu a 6. Ven ana Edi o El en o no iene sopo e pa a ges iona pun os de in e upción (b eakpoin s) du an e la simulación. Desde la en ana Edi o se pueden inse a es os pun os de in e upción bien a a és del bo ón B eakpoin mos ado en la Figu a 6 o haciendo doble clic con el a ón en el ma gen izquie do del á ea de edición. Al comenza la simulación, los pun os de in e upción que se hayan de inido en el edi o se ans ie en a la en ana Ins ucciones. Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 94 6.2 Ven ana Mensajes Es a en ana se enca ga de de alla los e o es de ensamblado que p esen a el código du an e la ase de edición o bien las excepciones lanzadas po el p ocesado al ejecu a las ins ucciones du an e la simulación. 6.3 Ven ana Memo ia Como se ap ecia en la Figu a 7, es a en ana ep esen a el con enido de la memo ia en hexadecimal y pe mi e ag upa las posiciones de memo ia o mando by es, medias palab as, palab as o dobles palab as. Tan o el con enido del segmen o de código como el del segmen o de da os puede se ambién modi icado di ec amen e po el usua io. Cuando se ealiza una esc i u a en memo ia, bien sea po el usua io o po el p ocesado , la en ana mues a en ojo el úl imo da o que ha sido modi icado. A con inuación se desc iben los elemen os de la en ana memo ia:  Selec o Di ección de inicio: pe mi e al usua io accede ápidamen e a una zona de e minada de la memo ia. En ella puede indica se, una di ección de memo ia en hexadecimal (po ejemplo 0x00400000), o el nomb e de un segmen o (como puede se . ex pa a i al comienzo del segmen o de código) o bien el nomb e de una a iable de inida en el p og ama.  Selec o By es po da o: especi ica en cuán os by es se ag upan los da os con enidos en la memo ia. Pueden ag upa se po by es, medias palab as (16 bi s), palab as (32 bi s) o dobles palab as (64 bi s). Figu a 7. Ven ana Memo ia Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 95  Selec o Da os po línea: es ablece cuan os da os se mues an en cada línea del á ea del con enido de la memo ia, siendo el amaño de cada da o especi icado po el selec o an e io men e desc i o.   Bo ón edi o de ins ucciones: al pulsa es e bo ón cuando el cu so se encuen a en el segmen o de código, el en o no oma los da os de la memo ia sob e los que se encuen a el cu so y los in e p e a como el código de una ins ucción. A con inuación se ab e la en ana Edi o de Ins ucciones (Figu a 8) que pe mi e modi ica el con enido de la memo ia en unción de la ins ucción que el usua io de ina. 6.4 Ven ana Edi o de ins ucciones La unción p incipal del edi o de ins ucciones es codi ica ins ucciones de o ma sencilla con el in de modi ica el p og ama ca gado en memo ia du an e su ejecución. Po o o lado, p opo ciona una he amien a didác ica de in e és pa a es udia los o ma os de ins ucción del p ocesado MIPS. Una ez abie o el edi o , el usua io puede modi ica di ec amen e los bi s del código de la ins ucción, especi ica el mnemónico de una nue a ins ucción o incluso modi ica cada uno de los campos que con iene el o ma o de la ins ucción. En unción del código de ope ación que se especi ique los campos que o man el o ma o de ins ucción cambia án au omá icamen e. Cada una de las al e na i as an e io es puede especi ica se en base decimal, bina ia o hexadecimal. Figu a 8. Ven ana Edi o de Ins ucciones Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 96 6.5 Ven anas de edición de egis os Consis en en dos en anas que isualizan y pe mi en modi ica el con enido de los egis os del banco de egis os de en e os y de coma lo an e du an e la simulación. Figu a 9. (Izquie da) Ven ana del banco de egis os de en e os; (De echa) Ven ana del banco de egis os de coma lo an e. En es as en anas se encuen an los siguien es elemen os:  Selec o de la base de isualización: especi ica la base en la que se mos a án los egis os: bina io, hexadecimal, en e o o na u al (en e o sin signo). Independien emen e de cuál sea la base de isualización seleccionada, el usua io pod á modi ica el con enido de los egis os en cualquie base simplemen e especi icando el p e ijo 0x pa a e e i se a la base hexadecimal, el p e ijo b pa a desc ibi que se a a de base bina ia o ninguno de los an e io es pa a a a el alo in oducido como base decimal.  Bo ón P ecisión de los egis os en FP: Cada egis o de FP de los 32 que posee el banco puede u iliza se pa a almacena un núme o en coma lo an e de simple p ecisión, o bien pueden ag upa se dos a dos pa a o ma egis os de 64 bi s con el in de almacena núme os en coma lo an e de doble p ecisión. El bo ón P ecisión conmu a á en e la isualización del banco como 32 egis os de simple p ecisión o 16 egis os de doble p ecisión.  Bo ón Nomencla u a de egis os: en MIPS32 pueden u iliza se dos nomencla u as dis in as pa a e e i se a los egis os, una consis en e en especi ica el símbolo $ seguido del núme o que ocupa en el banco de egis os (po ejemplo $1), o bien emplea el símbolo $ jun o al nomb e que Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 97 deno a la unción del egis o en el p ocesado (po ejemplo $ 2). La Tabla 1 ecoge ambas nomencla u as, su equi alencia y uso. 6.6 Ven ana Ins ucciones Lis a las ins ucciones que se encuen an almacenadas en el segmen o de código y las decodi ica. Pa a cada ins ucción de la lis a se especi ican los siguien es campos:  Di ección de memo ia donde comienza la ins ucción.  Codi icación de la ins ucción exp esada en hexadecimal.  Nemónico de la ins ucción.  Tex o de la ins ucción según apa ece en el edi o del código de usua io.  E apa en la que se encuen a cada ins ucción du an e la simulación. Figu a 10. Ven ana Ins ucciones Es a en ana pe mi e además edi a las ins ucciones y es ablece pun os de in e upción du an e la ejecución. 6.7 Ven ana Pipeline La a qui ec u a MIPS32 dispone de a ias unidades uncionales de cálculo, unas in eg adas en el p ocesado y o as alojadas en un cop ocesado independien e (Figu a 1), cada una de ellas dedicada a ealiza cie os ipos de ope aciones. A con inuación se desc iben las unidades uncionales que posee el MIPS32 y que han sido implemen adas en el simulado :  Unidad de en e os p incipal (EXi): enca gada de las ca gas, almacenamien os, sal os y las ope aciones ALU en e as excep o las de mul iplicación y di isión. Po ejemplo la ins ucción add $1, $2,$3 se ealiza ía en Exi. Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 98  Unidad pa a mul iplicación de en e os (EXm).  Unidad pa a la di isión de en e os (EXd).  Unidad de FP p incipal (EX p): ealiza odas las ope aciones de coma lo an e a excepción de la mul iplicación y la di isión. Ejemplo add.s $ 2, $ 4, $ 5.  Unidad pa a la mul iplicación en coma lo an e (EX pm).  Unidad pa a la di isión en coma lo an e (EX pd). Teniendo en cuen a es as unidades uncionales, el simulado ep esen a un pipeline según se mues a en la Figu a 11. IF ID EXd EX p EX pm mul.s $ 8,$10,$12 EX pd EXm di $12,$13 EXi add $1,$2,$3 MEM WB mul $10,$11 add.s $ 2,$ 4,$ 6 di .s $ 8,$10,$12 Figu a 11. Pipeline con las unidades uncionales independien es Sal o la unidad uncional EXi, es as unidades ealizan ope aciones complejas po lo que suelen p ecisa de a ios ciclos de eloj pa a ealiza el cálculo, así que la e apa EX de ales ins ucciones du a más de un ciclo. Además, algunas de es as unidades de cálculo mul iciclo pueden es a a su ez segmen adas, es o es, que el cálculo de la ope ación puede es a di idido en a ias sube apas. La en aja de las unidades segmen adas es que pe mi en comenza una nue a ope ación en cada ciclo de eloj aunque o as an e io es no hayan e minado. EXd di $13,$14 [3] EXm EXm0 mul $8,$9 EXm1 EXm2 EXm3 mul $3,$4 EXm4 mul $1,$2 Figu a 12. (A iba) Ejemplo de unidad segmen ada mul iciclo; (Abajo) Ejemplo de unidad no segmen ada mul iciclo Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 99 La Figu a 12 mues a una posible o ma de ep esen a las unidades segmen adas y no segmen adas mul iciclo. El ejemplo de la Figu a 12a co esponde a una unidad de la mul iplicación segmen ada con 5 e apas y que con iene 3 ins ucciones en ejecución cada una en sube apas dis in as. La Figu a 12b mues a una unidad uncional de la di isión con igu ada como no segmen ada en la que hay una ins ucción que se encuen a en el ciclo 3 de su ejecución. Un ejemplo de la en ana Pipeline se encuen a en la Figu a 13. En ella se ep esen a el es ado del pipeline median e cajas siguiendo un esquema simila al mos ado en la Figu a 11. Pa a especi ica el es ado de cada e apa, el bo de del ecuad o que ep esen a a la e apa se colo ea según el esul ado de la ejecución de la ins ucción alojada en ella. Un bo de de colo neg o especi ica que la ejecución se ha ealizado con éxi o y o o colo ep esen a el ipo del bloqueo según la con igu ación de colo es especi icada en la con igu ación del simulado . Figu a 13. Ven ana Pipeline Cada caja que ep esen a a una e apa se puede mo e y cambia de amaño pa a adap a se a las necesidades del usua io. También dispone de bo ones que simpli ican la dis ibución de las e apas en el espacio de abajo y eo ganizan las sube apas de cada e apa ho izon al o e icalmen e. 6.8 Ven ana C onog ama Una de las en anas que apo a más in o mación al simula el p ocesamien o segmen ado es la en ana C onog ama. Como puede ap ecia se en la Figu a 14, en es a en ana se ep esen a el diag ama de iempos del es ado de cada e apa en cada ciclo de eloj du an e la ejecución de las ins ucciones del código en ensamblado . Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 100 Como suele se lo habi ual, el eje de o denadas indica las ins ucciones y las abscisas el ciclo de ejecución. Pa a cada ins ucción se especi ica un núme o de secuencia, que ocupa en la ejecución de la ins ucción, la di ección de memo ia y su ep esen ación en ensamblado . Pa a cada in e sección ins ucción-ciclo se mues a el nomb e de la e apa y el es ado en el que se encuen a. Cuando la e apa ha sido bloqueada se u iliza un código de colo es con igu able que iden i ica el ipo de bloqueo. Pa a una mejo iden i icación del bloqueo, es posible opcionalmen e acha el nomb e de la e apa y añadi un ca ác e especial jun o al nomb e. El signi icado de es os ca ac e es especiales es el siguien e:  As e isco como p e ijo (*): deno a que la e apa posee un bloqueo ipo lec u a as esc i u a (RAW). Po de ec o se ep esen an en ojo. Ejemplo *EXi  As e isco como su ijo (*): especi ica que la e apa posee un bloqueo ipo esc i u a as esc i u a (WAW) y se ep esen an en e de. Po ejemplo EX*.  Acen o ci cun lejo (^): ep esen a a los bloqueos es uc u ales y suelen apa ece en colo ama illo. Si a de ejemplo EX^.  Ba a ascenden e (/). Indica un bloqueo de con ol y es dibujado en colo azul. Po ejemplo IF/. Cuando la ins ucción no puede a anza de e apa debido a la de ención del cauce no se u iliza ningún ca ác e especial, an sólo se mues a la e apa en g is po de ec o y apa ece achada. Figu a 14. Ven ana C onog ama En una e apa mul iciclo, la ins ucción debe á pe manece en la unidad uncional du an e a ios ciclos. Si la e apa es á segmen ada, el c onog ama mues a jun o al nomb e de la e apa el núme o de la sube apa en la que se encuen a la ins ucción. Véase como ejemplo la ins ucción 1 que apa ece en la Figu a 14; en ella puede e se que la ins ucción mul ealizó su ase EX en la unidad de mul iplicación de en e os EXm, que es á segmen ada y que du a 5 ciclos. Dicha ins ucción accedió a la sube apa 0 de EXm en el ciclo 3 y ue a anzando a las siguien es sube apas has a alcanza la úl ima sube apa en el ciclo 7. En cambio las e apas con igu adas como Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 101 mul iciclo no segmen adas no añaden ningún iden i icado de la sube apa en la que se encuen an ya que en ealidad la sube apa es única, sólo que du a a ios ciclos. La Figu a 14 mues a un ejemplo de ello en la ins ucción 2, la cual en a en la sube apa que posee EXd en el ciclo 4 y pe manece en ella has a pasa a la e apa de MEM. Pa a inaliza es e a ículo, se exponen a con inuación los posibles abajos u u os y las conclusiones. 7 T abajos u u os Aunque el simulado p esen ado en es e abajo ya ha alcanzado el in de su ase de desa ollo según los eque imien os es ablecidos inicialmen e, son innume ables las mejo as que se le es án aplicando pa a con e i le mayo es abilidad, iabilidad y e sa ilidad. Además de es as con inuas mejo as, cla es pa a consegui un so wa e de calidad, se han añadido a la lis a de a eas po hace nue as ca ac e ís icas y he amien as. Algunas de ellas encaminadas a amplia el sis ema que se simula con nue os componen es como cachés y BTB; algunas o ien adas a ep esen a el sis ema con mayo de alle, como es mos a la u a de da os a ni el RT, pe o sin sac i ica su acilidad de uso. Po úl imo, en aspec os elacionados con la docencia, es e simulado aba ca un con enido ín imamen e elacionado con la asigna u a A qui ec u a de Compu ado es de segundo cu so de los g ados de Ingenie ía In o má ica impa idos po la Uni e sidad de Se illa. Po consiguien e, se p e ende u iliza lo es e cu so académico en las sesiones p ác icas elacionadas con es a ma e ia, así como deja lo a lib e disposición del alumnado pa a su desca ga g a ui a y uso pa a p ác icas en casa.. De es a mane a, se p e ende ealiza un análisis de la mejo a del endimien o académico en el alumnado median e dos mecanismos di e enciados:  Encues a anónima al alumnado: en la que se e alua án aspec os más subje i os de la u ilidad del simulado ampliamen e de allado en las secciones an e io es. De es a mane a se pueden ob ene unas conclusiones ápidas sob e la u ilidad y idelidad del simulado , de ca a a ealiza las mejo as opo unas pa a el siguien e cu so académico.  E aluación de esul ados académicos: es e mecanismo p e ende apo a unas mé icas obje i as ace ca de la mejo ía de comp ensión del p ocesado MIPS median e una compa a i a en e las cali icaciones ob enidas po el alumnado en cu sos an e io es y las ob enidas en el cu so académico ac ual. Median e la e aluación de las mé icas an e io es se espe a ob ene su icien e in o mación pa a mejo a aquellos aspec os del simulado que más p oblemas ocasionen al ap endizaje del alumnado. De es a o ma, el simulado se á some ido a un ciclo de mejo a con inua; ob eniéndose una e sión de ini i a del simulado en pocos cu sos académicos. Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 102 8 Conclusiones El es udio de la a qui ec u a de compu ado es puede con e i se en una a dua a ea pa a p o eso es y alumnos si no se dispone de un simulado adecuado. En es e abajo se ha desc i o algunos de los simulado es académicos más u ilizados y se ha p esen ado un nue o so wa e de simulación del p ocesado MIPS32 segmen ado o ien ado a la enseñanza y al ap endizaje de la a qui ec u a de compu ado es que se impa e en las uni e sidades. Es e simulado implemen a más de 80 ins ucciones y simula el compo amien o del p ocesado con capacidad pa a de ec a y esol e los iesgos en la segmen ación. Implemen a algunas mejo as del p ocesado MIPS como son los adelan amien os ( o wa ding) y los sal os e a dados. También se ha p opues o una in e az g á ica muy in ui i a y e sá il con el p opósi o de hace más a ac i o el es udio del p ocesado a los es udian es. El simulado es á implemen ado en una lib e ía independien e de la in e az po lo que pod ía diseña se nue as in e aces de usua io adap adas a las necesidades de los alumnos. Re e encias 1. D. A. Pa e son and J. L. Hennessy, “Compu e O ganiza ion and Design - The Ha dwa e/So wa e In e ace”, 3 d ed. Mo gan Kau mann, 2005 2. John L. Hennessy and Da id A. Pa e son, “Compu e A chi ec u e: A Quan i a i e App oach”. San F ancisco, CA: Mo gan Kau man, 2007. 3. J. L. S. C. Pe ei a, “Educa ional package based on he MIPS a chi ec u e o FPGA pla o ms”, Mas e Thesis, Faculdade de Engenha ia da Uni e sidade do Po o, June 2009. h p:// eposi o io-abe o.up.p /bi s eam/10216/59975/1/0 00135086.pd 4. A. Clemen s, “The unde g adua e cu iculum in compu e a chi ec u e”, IEEE Mic o, ol. 20, no. 3, pp. 13–21, 2000 5. J. Djo dje ic, B. Nikolic, T. Bo ozan, and A. Milenko ie, “CAL2: Compu e aided lea ning in compu e a chi ec u e labo a o y”, Compu . Appl. Eng. Educ., ol. 16, pp. 172–188, 2008 6. B. Nikolic, Z. Radi oje ic, J. Djo dje ic and V. Milu ino ic, "A Su ey and E alua ion o Simula o s Sui able o Teaching Cou ses in Compu e A chi ec u e and O ganiza ion", Educa ion, IEEE T ansac ions on , o1.52, no.4, pp.449-458, 2009 7. H. Oz ekin, F. Temu as, and A. Gulbag, “BZK.SAU: Implemen ing a ha dwa e and so wa e-based compu e a chi ec u e simula o o educa ional pu pose”, P oc. 2nd In . Con . Compu . Design Appl., pp. 490–497, 2010 8. B. Mus a a, "Modem compu e a chi ec u e eaching and lea ning suppo : An expe ience in e alua ion", In e na ional Con e ence on In o ma ion Socie y (i- Socie y), pp.411-416, 27-29, 2011 9. W. Yu cik, G. S. Wol e and M. A. Holiday, “A Su ey o Simula o s used in Compu e O ganiza ion/A chi ec u e Cou ses”, P ocs. o Summe Con . on Compu e Simula ion, pp. 524-529, O lando, Flo ida, 2001. 10. Página web del simulado Q Spim: h p://spimsimula o .sou ce o ge.ne Enseñanza y Ap endizaje de Ingenie ía de Compu ado es. Núme o 5, 2015 103