ebook img

Prácticas de Introducción a la Arquitectura de Computadores con el simulador SPIM PDF

170 Pages·2007·1.43 MB·Spanish
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Prácticas de Introducción a la Arquitectura de Computadores con el simulador SPIM

Pra´cticas de Introduccio´n a la Arquitectura de Computadores con el simulador SPIM Sergio Barrachina Mir Maribel Castillo Catala´n Jose M. Claver Iborra Juan C. Ferna´ndez Fdez (cid:13)c 2007SergioBarrachinaMir,MaribelCastilloCatala´n,Jose´M.Cla- ver Iborra y Juan Carlos Ferna´ndez Ferna´ndez. Reservados todos los derechos. Esta((Edicio´nProvisional))puedereproducirseexclusivamenteconfi- nes autodidactas o para su uso en centros pu´blicos de ensen˜anza. En el segundo caso, tan so´lo se cargara´n al estudiante los costes de re- produccio´n. La reproduccio´n total o parcial con a´nimo de lucro o con cualquierfinalidadcomercialquedaestrictamenteprohibidasalvoque cuenteconelpermisoescritodelosautores. P ´ ROLOGO Este libro de pra´cticas esta´ dirigido a estudiantes de primeros cursos de Ingenier´ıasTe´cnicasInforma´ticaseIngenier´ıasInforma´ticasquecursenasig- naturas de introduccio´n a la Arquitectura de Computadores, y en general, a aquelloslectoresquedeseenaprenderArquitecturadeComputadoresporme- diodelarealizacio´ndeejerciciosconlenguajeensamblador. Pese a que el hilo conductor del libro es la programacio´n en lenguaje en- samblador, el lector no debe confundirlo con un curso de programacio´n en ensamblador. El objetivo de este libro no es el de ensen˜ar a programar en en- samblador,sinoeldeayudaraqueellectorasimileycomprenda,pormediode laprogramacio´nenensamblador,losconceptosfundamentalesdeArquitectura de Computadores. En particular, se abordan los siguientes temas: representa- cio´n de la informacio´n, tipos de datos, el juego de instrucciones, registros, organizacio´n de la memoria, programacio´n de computadores a bajo nivel, re- lacio´nentrelaprogramacio´nenunlenguajedealtonivelyelfuncionamiento delprocesadorytratamientodeinterrupcionesyexcepciones. Puestoquesepretendefavorecerlacomprensio´ndedichosconceptospor mediodelarealizacio´ndepra´cticasenensamblador,cobraespecialimportan- cialaeleccio´ndelprocesadorquesera´ objetodeestudio.Analizandoque´ pro- cesadores han sido escogidos, a lo largo de los an˜os, por las asignaturas de introduccio´nalaArquitecturadeComputadoresdedistintasUniversidades,se puede ver que han sido varios los elegidos y que la eleccio´n de uno u otro ha estadofuertementecondicionadoporlasmodas. En cualquier caso, es posible constatar que aquellas elecciones que han contado con mayor aceptacio´n, y que han permanecido por ma´s tiempo, han estadosiemprerelacionadasconlaaparicio´ndeprocesadoresque,porsucon- cepcio´nydisen˜o,hanrevolucionadoelcampodeloscomputadores.Cabedes- tacar,entreestosprocesadores,lossiguientes:elPDP11deDEC,elMC68000 deMotorola,el8088/86deIntelyelR2000/3000deMIPS. El procesador MC68000 de Motorola ha sido ampliamente utilizado, y lo esau´nhoyend´ıa,enlaspra´cticasdelasasignaturasdeArquitecturadeCom- putadoresdemuchasUniversidades.Lomismosepuededecirdelprocesador I II 8086deIntel.Aunqueesteu´ltimoenmenormedida.ElprocesadordeMotoro- latieneasufavorlaortogonalidaddesujuegodeinstruccionesylaexistencia dediferentesmodosprioritariosdefuncionamiento.EnelcasodeIntel,elmo- tivodeterminanteparasuadopcio´nhasidosinduda,laampliadifusio´ndelos computadorespersonales(PCs)deIBMycompatibles. Sin embargo, el procesador ma´s extendido en la actualidad en el a´mbito delaensen˜anzadeArquitecturadeComputadores,yelqueseproponeeneste libro, es el MIPS321. Dicho procesador, por un lado, mantiene la simplicidad delosprimerosprocesadoresRISCy,porotro,constituyelasemillademuchos delosdisen˜osdeprocesadoressuperescalaresactuales. Debido a la simplicidad del juego de instrucciones del MIPS32, es rela- tivamente fa´cil desarrollar pequen˜os programas en ensamblador y observar el efecto de su ejecucio´n. Por otro lado, al ser su arquitectura la semilla de mu- chos de los disen˜os de procesadores superescalares actuales, es fa´cil extender losconocimientosadquiridosensuestudioaarquitecturasma´savanzadas. Dichodeotraforma,loquehaceido´neoalMIPS32parautilizarloenlaen- sen˜anzadeArquitecturadeComputadoresesquesetratadeunprocesadorreal perolosuficientementesencillocomoparaestudiarlosindemasiadascompli- caciones,yalavez,puedeservirdebaseparaelestudiodearquitecturasma´s avanzadas. Otro punto a favor de la utilizacio´n del MIPS32, es la existencia de si- muladores que permiten comprobar co´modamente su funcionamiento, sin la necesidad de tener acceso a un computador real basado en dicho procesador. En este libro se propone el simulador SPIM de James Larus [Lar]. Puede ob- tenersedeformagratuitadesdelapa´ginawebdelautoryesta´ disponibletanto paraWindowscomoparaGNU/Linux. En cuanto a la organizacio´n del presente libro, simplemente decir que se ha hecho un esfuerzo importante para que sea, en la medida de lo posible, autocontenido.As´ı,muchosdelosconceptosteo´ricosnecesariospararealizar losejerciciosqueseproponen,seintroducenconformesonrequeridos. En cualquier caso,no hay que perder devista que el libro seofrece como complementoaunaformacio´nteo´ricaenArquitecturadeComputadoresy,por tanto, gran parte de los conceptos generales o ma´s espec´ıficos se han dejado forzosamentefuera.Nuestraintencio´nnovama´salla´ deladeofreceruncom- plementoeminentementepra´cticoaunaformacio´nteo´ricaenArquitecturade Computadores. 1Ensuversio´nnosegmentadaysininstruccionesretardadasdecarga,almacenamientoy salto. III En cuanto a la formacio´n teo´rica en Arquitectura de Computadores, con- sideramosque comolibro dereferencia sepodr´ıautilizar ellibro((Estructura y disen˜o de computadores: interficie circuiter´ıa/programacio´n)), de David A. PattersonyJohnL.Hennesy[Pat00],enelquetambie´nseestudiaelprocesa- dorMIPS32. De esta forma, un curso introductorio a la Arquitectura de Computadores podr´ıautilizarellibro((Estructuraydisen˜odecomputadores:interficiecircui- ter´ıa/programacio´n)),deDavidA.PattersonyJohnL.Hennesy[Pat00]como referencia de la parte de teo´rica de la asignatura y el presente libro para la realizacio´ndelaspra´cticasdelaboratoriodedichaasignatura. Convenios tipogra´ficos Se presentan a continuacio´n los convenios tipogra´ficos seguidos en la re- daccio´ndeestelibro. Paradiferenciarunnu´merodeltextoquelorodea,elnu´meroserepresenta utilizandounafuentemonoespaciada,comoporejemploen:1024. Paraexpresarunnu´meroenhexadecimal,e´steseprecededelprefijo((0x)), p.e.0x4A.Sielnu´meroexpresadoenhexadecimalcorrespondeaunapalabra de32bits,e´steaparecedelasiguienteforma:0x00400024.Esdecir,conun pequen˜oespacioenmedio,parafacilitarsulectura. Paraexpresarunnu´meroenbinarioseutilizaelsub´ındice(( )),p.e.0010 .   Si el nu´mero expresado en binario corresponde a una palabra de 32 bits, se representaconunpequen˜oespaciocada8bits,parafacilitarsulectura,p.e.: 00000001001000110100010101100111 .  Para diferenciar una sentencia en ensamblador del texto que la rodea, se utilizaelsiguienteelsiguienteformato:((la $a0, texto)).Cuandosehacere- ferenciaaunregistro,e´stesemarcadelasiguienteforma:$s0. Losco´digosofragmentosdeco´digoserepresentandelasiguienteforma: . hola-mundo.s 1 .data # Zona de datos 2 texto: .asciiz ”¡Hola mundo!” 3 4 .text # Zona de instrucciones 5 main: li $v0, 4 # Llamada al sistema para print str 6 la $a0, texto # Direccio´n de la cadena 7 syscall # Muestra la cadena en pantalla En la parte superior derecha se muestra el nombre del fichero asociado a dicho co´digo. En el margen izquierdo se muestra la numeracio´n correspon- dienteacadaunadelasl´ıneasdelco´digorepresentado.Estanumeracio´ntiene porobjetofacilitarlareferenciaal´ıneasconcretasdellistadoy,naturalmente, IV noformapartedelco´digoenensamblador.Conelfindefacilitarlalecturadel co´digo, se utilizan diferentes formatos para representar las palabras reserva- das y los comentarios. Por u´ltimo, y para evitar confusiones, los espacios en blancoenlascadenasdetextoserepresentanmedianteelcara´cter(( )). Encuantoalosbloquesdeejercicios,e´stosaparecendelimitadosentredos l´ıneas horizontales punteadas. Cada uno de los ejercicios del libro posee un identificador u´nico. De esta forma, puede utilizarse dicho nu´mero para refe- renciar un ejercicio en particular. A continuacio´n se muestra un ejemplo de bloquedeejercicios: .............................. EJERCICIOS..................................... ·1 Localizalacadena((”Hola mundo”))enelprogramaanterior. ·2 Localizaelcomentario((# Zonade datos))enelprogramaanterior. ...................................................................... Agradecimientos Este texto no es obra u´nicamente de sus autores. Es fruto de la experien- cia docente del profesorado involucrado en las asignaturas de ((Introduccio´n a los Computadores)), ((Arquitectura de Computadores)) y ((Estructura y Tec- nolog´ıadeComputadores))delastitulacionesdeIngenier´ıaInforma´tica,Inge- nier´ıaTe´cnicadeSistemaseIngenier´ıaTe´cnicadeGestio´ndelaUniversidad Jaume I de Castello´n. En particular, se ha enriquecido especialmente con las aportaciones, comentarios y correcciones de los siguientes profesores del de- partamento de Ingenier´ıa y Ciencia de los Computadores de la Universidad Jaume I: Eduardo Calpe Marza´, Germa´n Leo´n Navarro, Rafael Mayo Gual, FernandoOcheraBaganyXimoTorresSospedra. Tambie´nnosgustar´ıaagradeceralossiguientesestudiantesdelaUniversi- dadJaumeIelquerevisaranconimpagableintere´sunadelasprimerasversio- nes del manuscrito: Nicola´s Arias Sidro, Jose´ Cerisuelo Vidal, Ine´s de Jesu´s Rodr´ıguez,Joaqu´ınDelf´ınBacheroSa´nchez,MariamFausVillarrubia,Rober- toGarc´ıaPorcella´,DanielGimenoSol´ısySergioLo´pezHerna´ndez. Paratodosellos,nuestroma´ssinceroagradecimiento. Nos gustar´ıa, adema´s, agradecer de antemano la colaboracio´n de cuantos nos hagan llegar aquellas erratas que detecten o las sugerencias que estimen oportunas sobre el contenido de este libro. De esta forma, esperamos poder mejorarloenfuturasediciones. ´ I NDICE GENERAL I´ndicegeneral V 1 Introduccio´nalsimuladorSPIM 1 1.1. Descripcio´ndelsimuladorSPIM . . . . . . . . . . . . . . . . 2 1.2. SintaxisdellenguajeensambladordelMIPS32 . . . . . . . . 13 1.3. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 15 2 Datosenmemoria 17 2.1. Declaracio´ndepalabrasenmemoria . . . . . . . . . . . . . . 17 2.2. Declaracio´ndebytesenmemoria . . . . . . . . . . . . . . . . 19 2.3. Declaracio´ndecadenasdecaracteres . . . . . . . . . . . . . . 20 2.4. Reservadeespacioenmemoria . . . . . . . . . . . . . . . . . 21 2.5. Alineacio´ndedatosenmemoria . . . . . . . . . . . . . . . . 21 2.6. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 22 3 Cargayalmacenamiento 25 3.1. Cargadedatosinmediatos(constantes) . . . . . . . . . . . . . 26 3.2. Cargadepalabras(dememoriaaregistro) . . . . . . . . . . . 29 3.3. Cargadebytes(dememoriaaregistro) . . . . . . . . . . . . . 30 3.4. Almacenamientodepalabras(deregistroamemoria) . . . . . 31 3.5. Almacenamientodebytes(bytesderegistroamemoria) . . . . 32 3.6. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 33 4 Operacionesaritme´ticas,lo´gicasydedesplazamiento 35 4.1. Operacionesaritme´ticas . . . . . . . . . . . . . . . . . . . . . 36 4.2. Operacioneslo´gicas . . . . . . . . . . . . . . . . . . . . . . . 39 4.3. Operacionesdedesplazamiento . . . . . . . . . . . . . . . . . 41 4.4. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 43 5 Operacionesdesaltocondicionalydecomparacio´n 45 5.1. Operacionesdesaltocondicional . . . . . . . . . . . . . . . . 46 V VI ´Indicegeneral 5.2. Operacionesdecomparacio´n . . . . . . . . . . . . . . . . . . 48 5.3. Evaluacio´ndecondiciones . . . . . . . . . . . . . . . . . . . 48 5.4. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 53 6 Estructurasdecontrolcondicionalesyderepeticio´n 55 6.1. Estructurasdecontrolcondicionales . . . . . . . . . . . . . . 55 6.2. Estructurasdecontrolrepetitivas . . . . . . . . . . . . . . . . 60 6.3. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 63 7 Introduccio´nalagestio´ndesubrutinas 65 7.1. Llamadayretornodeunasubrutina . . . . . . . . . . . . . . 66 7.2. Pasodepara´metros . . . . . . . . . . . . . . . . . . . . . . . 70 7.3. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 77 8 Gestio´ndesubrutinas 79 8.1. Lapila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 8.2. Bloquedeactivacio´ndelasubrutina . . . . . . . . . . . . . . 84 8.3. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 98 9 Gestio´ndelaentrada/salidamedianteconsultadeestado 101 9.1. Dispositivosperife´ricosenelsimuladorSPIM . . . . . . . . . 104 9.2. Entradadedatosdesdeelteclado . . . . . . . . . . . . . . . . 106 9.3. Salidadedatosporpantalla . . . . . . . . . . . . . . . . . . . 107 9.4. Entrada/Salidadedatos . . . . . . . . . . . . . . . . . . . . . 109 9.5. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 110 10 Gestio´ndelaentrada/salidamedianteinterrupciones 111 10.1. Registrosparaeltratamientodelasexcepciones . . . . . . . . 113 10.2. Tratamientodelasexcepciones . . . . . . . . . . . . . . . . . 117 10.3. Opciones del programa SPIM para la simulacio´n de interrup- ciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.4. Excepcionessoftware . . . . . . . . . . . . . . . . . . . . . . 124 10.5. Interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.6. Problemasdelcap´ıtulo . . . . . . . . . . . . . . . . . . . . . 141 Bibliograf´ıa 143 A Manualdeusodelcomandoxspim 145 B LlamadasalSistemaOperativo 149 B.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 B.2. Finalizacio´ndelprogramaencurso:exit . . . . . . . . . . . 150 ´Indicegeneral VII B.3. Impresio´ndeunentero:print int. . . . . . . . . . . . . . 151 B.4. Impresio´ndeunacadena:print string . . . . . . . . . . 152 B.5. Lecturadeunentero:read int . . . . . . . . . . . . . . . . 152 B.6. Lecturadeunacadena:read string . . . . . . . . . . . . 153 C RegistrosdelCoprocesador0 155 D CuadroresumendeljuegodeinstruccionesdelMIPS 157

Description:
lación entre la programación en un lenguaje de alto nivel y el funcionamiento del procesador y .. tos en lenguaje ensamblador para computadores basados en los procesadores. MIPS32. Puede labras (words), asociado a la etiqueta vector, que comience en la dirección. 0x1000 0000 y que tenga
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.