Download - Trabajo Resumen Capitulo 2 Computer organization & design

Transcript
  • PresentacinIntroduccin

    LoslenguajesdebajonivelsepodradefinircomounatraduccindirectadelcdigodemquinaenestapartepodremosverelconjuntodeinstruccionesdeunordenadorrealtantoenlaformaescritaporlossereshumanoscomoenlaformadelecturadeunordenadorSepodrapensarqueloslenguajesdelosordenadoresserantandiversascomolasdelossereshumanos,pero,enrealidad,loslenguajesdeprogramacinsonbastantesimilares(stecdigoesinterpretadoporelmicroprocesador),paraquepuedaserentendibleporlossereshumanos,porlotantoesunlenguajedebajonivel.Estelenguajepermiteunaoptimizacinquenoseconsigueconlenguajesdemedioyaltonivel.Permitelacreacindeprogramasmuyrpidosymuypequeos,ademssetieneuncontrolquenoseconsigueconunlenguajedealtonivel.Objetivos

    ObjetivosGeneralesEntenderellenguajedelcomputador.

    ObjetivosEspecficos Entenderlatomadedesicionesdelacomputadoraenellenguajemips. Comprenderacercadelamodularizacindehardwareenlacomputadorapor

    unlenguajeensamblador.

    ContenidoIntroduccinalatomadedecisionesLoquedistingueaunordenadordesdeunasimplecalculadoraessucapacidadde

    tomardecisiones.Conbaseenlosdatosdeentradaylosvalorescreadosduranteelclculo,diferentesinstruccionesseejecutan.Latomadedecisionesestrepresentadocomnmenteenloslenguajesdeprogramacinutilizandolasentenciaif,avecescombinadoconlasdeclaracionesyetiquetas.EllenguajeensambladorMIPSincluyedosinstruccionesdetomadedecisiones,deformasimilaraunasentenciaif.

    LasentenciadecontrolBEQEnbasealosdatosdeentradahaceunatomadedecisionesyestacomnmente

    representadoenloslenguajesdeprogramacincomolasentenciaif.YenellenguajeMIPSconrespectoacsepuededenotaras:

    Lenguajec LenguajeMIPS

    if(a==b){} beqregistro1,registro2,L1

  • beg:significaquesisoniguales,elflujodelprogramasaltaalainstruccinquecorrespondealaetiqueta(L1).

    SentenciadecontrolBNEEnestecaso,silovaloresdeambosregistrosnosoniguales,elprogramasaltaalainstruccinquecorrespondealaetiqueta.

    Lenguajec LenguajeMIPS

    if(a!=b){}elseifa!=b{}

    bneregistro1,registro2,L1

    EstasdosinstruccionessontradicionalmentellamadosRamascondicionales

    Estaexpresinsecomparaporlaigualdad,porloqueparecequenosgustarabeq.

    Engeneral,elcdigosermseficientesisepruebaparalacondicinopuesta.

    TerminandoelbucleIF

    Ahoratenemosqueiralafinaldelasentenciaif.Enesteejemploseintroduce

    otrotipoderama,amenudosellamaunaramaincondicional.Estainstruccindicequeelprocesadorsiempresiguelarama.Paradistinguirentresaltoscondicionaleseincondicionales,elnombredeMIPSparaestetipodeenseanzaeselsalto,abreviadocomoj(laetiquetaExit.sedefineacontinuacin).

    Ejemplo:CodificarenellenguajeMIPS

    Inta,b,c,i,jIf(i==j){a=b+c}else{a=bc}

    Enellenguajemipseria:

    bne$s3,$s4,SiNo#Sii!=jiraSiNoadd$s0,$s1,$s2#seevitasii!=jjFin#SaltaaFinSiNo:sub$s0,$s1,$s2#seejecutasii!=jFin:

  • Sentenciacase(variosifthenelse)Lamayoradeloslenguajesdeprogramacintienenunadeclaracindecasoouninterruptorquepermitealprogramadorparaseleccionarunadelasmuchasalternativasenfuncindeunsolovalor.Laformamssencilladeimplementarinterruptoresatravsdeunasecuenciadepruebascondicionales,convirtiendoladeclaracin"switch"enunacadenadeifthenelse.

    SoporteyprocedimientosenelhardwaredelacomputadoraUn procedimiento o funcin es una herramienta que usan los programadores, que permite queseamssimpledeentenderelcdigoascomopermitirqueseareutilizable.Permite al programador concentrarse en slo una parte de la tarea, pasndole valores a ser procesadosydevolviendoresultados.Similar a la ejecucin de un programa, un procedimiento debe seguir los siguientes seis pasos:

    Coloque los parmetros en un lugar donde el procedimiento puede tener acceso a ellos.

    Transfiereelcontrolalprocedimiento. Adquierelosrecursosdealmacenamientoquerequiere. Realizalatareadeseada Coloca el valor del resultado en un lugar donde el programa que llam pueda

    accederal. Control de llegada al punto de origen, ya que un procedimiento puede llamarse

    desdediversoslugares.UsodelosregistrosSoftwareMIPSLos registros son el lugar ms rpido para mantener los datos de un ordenador disponibles. El software MIPS sigue la siguiente convencin en la asignacin de los 32 registros que usa paraunallamadaalprocedimiento.

    v$a0$a3:Cuatroregistrosdeargumentoparaenviarlosparmetros v$v0$v1:Dosregistrosdevalorparadevolvervalores(Resultados) v$ ra : Un registro de la direccin de retorno para volver al punto del cual fue

    llamado.Adems de los registros el lenguaje ensamblador MIPS incluye una instruccin slo para los procedimientos en el cual salta a una direccin y simultneamente guarda la direccin de la siguienteinstruccinenelRegistro$ra.(InstruccinJal/JumpandLink)La direccin de llamada al procedimiento es guardada en el registro $ra el cual se conoce como Return Address. El Return Address es necesario porque los procedimientos pueden serllamadosdesdecualquierpartedelprograma.

  • Adems del Return Address hay la necesidad de tener un registro para guardar la direccin de la instruccin actual que ha sido ejecutada. Por razones histricas este registro fue llamado Program Counter (PC) en la arquitectura del MIPS. La instruccin Jal guarda el PC+4 en el registro $ra para vincular con la siguiente instruccin de retornar del procedimiento.Por dicha situacin MIPS usa una instruccin Jump Register mediante un salto incondicional aladireccinespecificadaenelregistro.LainstruccinJumpRegistersaltaaladireccinquefueguardadaenelregistro$ra.ConclusionesLenguajedelaElaboracindelordenador:

    Creacindelasconstantesde32bitsnecesitaatencin.Eladdinstruccincopiaelbitmsalaizquierdadelcampoinmediatode16bitsdelainstruccinenlos16bitssuperioresdeunpalabra.LgicaoinmediatadelaSeccin2.5delascargas0senlos16bitssuperioresyhencesonutilizadosporelensambladorenconjuntoconluicrear32bitsconstantes.HardwareSoftwareInterfazOelcompiladoroensambladordeberompergrandesconstantesenpedazosydentrodelensamblajeellasenunregistro.

    Comoeradeesperar,eltamaorestriccindelcampoinmediatopuedeserunproblemaparalasdireccionesdememoriaenlascargasytiendas,ascomoparalasconstantesenlasinstruccionesinmediatas.Siestetrabajorecaeenelensamblador,comolohaceparaelsoftwaredeMIPS,entonceselensambladordebetenerunregistrotemporaldisponibleenelquecrearlosvaloreslargos.Estaesunaraznparaelregistro$a,queestreservadoparaelensamblador.

    AunqueguardemostodalasinstruccionesMIPSdelongitudde32bitssimplificadosenelhardware,Existenalgunostiemposdondeestoseraconvenientetener32bitsconstanteso32bitsdireccionados.

    Estaseccincomienzaconlasolucingeneralparaconstanteslargas,yassemuestralaoptimizacindelasinstruccionesdireccionadasusadasenramasysaltos.

    OperadoresInmediatosde32bits.Aunquelasconstantessonfrecuentementecortasyencajandentrodeuncampode16bits,algunasvecessondemasiadograndes.LasinstruccionesMIPSincluyenunsetde

  • instruccionesabiertasinmediatas(lui),especficamenteparaponerenlapartesuperiordelcampodelos16bits,deunaconstanteenunregistro,permitiendounainstruccinsubsecuenteespecificadabajade16bitscomoconstante.Enlasiguientefigurasemuestralaoperacinlui:Versindelamquina,usandolui$t0conundecimal255convertidoabinario:AbajoV

    Contenidosdelregistro$t0despusdeejecutarlalui$t0.255:Arriba^InterfacesdelHardwareydelSoftware:Cualquieradelosdos,seacompiladoroensamblador,debenromperlasconstanteslargasenpiezasyreensamblarlasdentrodeunregistro.Comosepodraesperar,loscamposinmediatamenterestringiblespuedengenerarproblemasdeaccesoalamemoriaalserabiertos,ysemuestraascomoparaconstanteseninstruccionesinmediatas.Situtrabajotegenerafallasenelensamblador,comoesparaunsoftwareMIPS,entonceselensambladordebetenerunregistrotemporalhabilitado,locualcreavaloresdelongitud.Estaeslaraznparaelregistro$at,elcualestreservadoparaelensamblador.