Arquitectura de computadoras
1. Ciclo Fetch-Decode-Execute.
2. Segmentación de instrucciones.
3. Conjunto de instrucciones: Características y funciones.
4. Modos de direccionamiento y formatos.
Software y servicios de internet mapa conceptual.pdf
Ensayo ciclo De Instrucción
1. INSTITUTO TECNOLÓGICO DE
HUAUCHINANGO
Carrera: Sistemas Computacionales
Materia: Arquitectura de Computadoras
Tema: Ensayo “El ciclo de instrucción”
Maestro: Julio Andrés Ávila Fonseca
Alumna: Alejandra Rubí Viveros León
Semestre: Quinto
Turno: Matutino
2. INDICE
INTRODUCCIÓN:.................................................................................................................................2
“El ciclo de instrucción”.......................................................................................................................3
1. Ciclo Fetch-Decode-Execute.............................................................................................................4
2. Segmentación de instrucciones........................................................................................................7
Conclusión:......................................................................................................................................12
Bibliografía:......................................................................................................................................13
INTRODUCCIÓN:
En este ensayo veremos a cerca del ciclo de la instrucción, los procesos quese
pasan para llevar a cabo dicho ciclo, también a cerca de la Segmentación de
instrucciones, queinstrucciones son las que se llevan a cabo y como es el
Conjunto de instrucciones, cada una de sus Características y sus funciones. Y
finalmente sobrelos Modos de direccionamiento y formatos.
3. “El ciclo de instrucción”
Una CPU loque hace esejecutarlasinstruccionesde unprogramasituadoenunamemoria.Pero,
¿sabíaisque todossiguenlasmismasnormasgenerales?Todossiguenel mismociclode instrucción,el
cual se divide entresetapasdiferenciadasllamadasFetch,DecodeyExecute,lascualesse traducen
como captación,descodificaciónyejecución.Osexplicamoscómofuncionanestasetapasycomose
organizan.
Con tal de simplificaryhacermás entendiblelosconceptosexplicadoseneste artículohemosdecidido
describirunprocesadorsumamente simpleparalostiemposque corren,porloque eneste artículo
veréisunaexplicaciónde loque sonlosciclosde instrucciónde manerageneralizadaque se puede
aplicardesde losprimerosprocesadoresde 8bitsa losmás complejosque hayhoyendía
Visualizando el ciclo de instrucción
Los procesadoresnosondiferentesdesde ciertopuntode
vistaa un motor de combustión,loscualessiempre realizan
un procesocontinuode explosióndelcombustibleen
diferentesetapas,yaseande 2 tiemposode 4 tiempos.El
motivode elloesque losprocesadoresfuncionanentres
etapasdistintasensuversiónmássimple que sonlas
siguientes:
Fetcho Captación:En la que la instrucciónescaptadadesde lamemoriaRAMy copiada a dentrodel
procesador.
Decode o Descodificacion:Enlaque la instrucciónpreviamentecaptadaesdescodificaday enviadaalas
unidadesde ejecución
Execute oEjecución:Donde lainstrucciónesresueltayel resultadoescritoenlosregistrosinternosdel
procesadoro enuna direcciónde memoriade laRAM
Estas tresetapa se cumplenentodoprocesador,existeunacuarta etapaque esla de Write-Backque es
cuandolas unidadesde ejecuciónescribenel resultado,peornormalmente estose cuentadentrode la
etapade ejecucióndel ciclode instrucción.
4. 1. Ciclo Fetch-Decode-Execute.
La primeraetapadel ciclode instrucciónse encargade captar las instruccionesque hayenlamemoria
RAMasignadaal procesadora travésde una serie de unidadesyregistrosque sonlassiguientes:
Program CounteroContadorde Programa:El cual apuntaa la siguiente líneade memoriadonde
se encuentralasiguiente instruccióndel procesador.Se incrementaen1su valorcada vezque
se terminaun ciclocompletode instrucciónocuandounainstrucciónde saltocambiael valor
del contadorde programa.
MemoryAddressRegisteroregistrode direccionamientode memoria:El MAR copiael
contenidodel PCylo envíaa la RAMa travésde lospinesde direccionamientode laCPU,los
cualesestáncableadosconlospinesde direccionamientode lapropiamemoriaRAM.
MemoryData Registeroregistrode datosa memoria:En el caso que la CPU tengaque realizar
una lecturaa memoria,loque hace el MDR escopiar el contenidode esadirecciónde memoria
a un registrointernode laCPU, el cual es unregistrotemporal de pasoantesde que su
contenido seacopiadoal InstructionRegister.El MDR al contrariodel MAR estáconectadoa los
pinesde datosde la RAMy no a los de direccionamientoyenel casode que se trate de una
instrucciónde escriturael contenidode loque se quiere escribirenlaRAMtambiénse escribe
enel MDR
InstructionRegisteroRegistrode Instrucción:Laparte final de laetapa de captacióno fetches
la escriturade la instrucciónenel registrode instrucción,delcual launidadde control del
procesadorcopiarásu contenidoparala segundaetapadel ciclode instrucción.
Estas 4 sub-etapasocurrenentodoslosprocesadoresseacual seasuutilidad,arquitecturay
compatibilidadbinariaoloque llamamosISA.
La unidad de control
5. La unidadde control esla piezamáscompleja que existeenunprocesadorysustareas sonlas
siguientes:
Se encargan de coordinarel movimientoyel ordenenque de losdatosque se muevendentroy
fueradel procesador,asíde lasdiferentessubunidadesque se encargande ello.
En general se consideraque lasunidadesde laetapade captacióno Fetchformanparte del
hardware que llamamosunidadde control ydichohardware esllamadotambiénel Front-Ende
un procesador.
Interpretalasinstruccionesylasenvíaa lasdiferentesunidadesde ejecución alasque está
conectado.
Esta comunicadoa lasdiferentesALUsyunidadesde ejecucióndel procesadorque actúan
Se encarga de captar y descodificarlasinstrucciones,sinotambiénde escribirlosresultadosen
losregistros,cacheso enla direccióncorrespondiente de laRAM.
La unidadde control loque hace esdescodificarlasinstruccionesyestolohace porque cada instrucción
enrealidadnodejade ser unaespecie de oraciónendonde primerovael verboyluegoel objetodirecto
u objetosobre el que se hace la acción.El sujetose acaba eliminandoeneste lenguajeinternode los
ordenadoresporel hechoque se sobre-entiendeque esel propioordenadorel que loejecuta, asípues
cada cantidadde bitsesuna oracióndonde losprimeros1 y0 correspondenala accióny losque vienen
a continuaciónesel datoo la localizacióndel dato
que se quiere manipular.
La segunda etapa: Decode
Hay diferentes tipos de instrucciones y no todas
hacen lo mismo, por lo que dependiendo del
tipo de instrucción necesitamos saber hacía que
unidades de ejecución se van a enviar y la
manera más clásica de hacerlo es a través de lo que llamamos un descodificador, el cual toma
6. cada instrucción, la divide internamente según el opcode o instrucción y el dato o la dirección
de memoria donde se encuentra este.
Por ejemplo en el diagrama de arriba tenemos el diagrama de un procesador de solo 8
instrucciones, las cuales se pueden codificar en solo 3 bits. Cada una de las instrucciones una
vez descodificadas se envía a las diferentes unidades de ejecución que las resolverán.
Este ciclo de instrucción es el más complejo de todo y el que define el tipo de arquitectura.
Dependiendo si tenemos un conjunto de instrucciones reducido o complejo esto afectará a la
naturaleza de la unidad de control, dependiendo del formato de la instrucción o de cuantas se
procesen al mismo tiempo la fase de descodificación y por tanto la unidad de control tendrá
una naturaleza u otra.
La forma más fácil de visualizar lo que ocurre es pensar en las instrucciones como trenes
circulando a través de una compleja red ferroviaria y la unidad de control dirigiéndolos a una
estación término, la cual es la unidad de ejecución que se encargará de resolver la instrucción.
Tercera etapa: Execute
La última etapa es la de la
ejecución de las instrucciones, en esta
etapa las instrucciones son
resueltas, pero no todos los tipos de instrucción se resuelven de la misma forma, ya que la
7. forma de utilizar el hardware dependerá de la función de cada una de ellas, en general tenemos
cuatro tipos de instrucciones:
Instrucciones de movimiento de bits: En el cual se manipula el orden de los bits que contienen
el dato.
Instrucciones aritméticas: Donde se realizan operaciones matemáticas y también lógicas, estas
se solucionan en las llamadas ALU o unidades aritmético-lógicas
Instrucciones de salto: En la que se cambia la siguiente el valor del contador de programa, lo
que permite utilizar el código de manera recursiva.
Instrucciones a memoria: Son con las que el procesador lee y escribe la información de la
memoria del sistema.
El otro punto son los formatos de la instrucción, ya que una instrucción se puede aplicar a un
dato, escalar o a varios datos al mismo tiempo, lo que conocemos como SIMD. Para terminar y
dependiendo del formato de los datos, hay diferentes tipos de ALU para la ejecución de las
instrucciones aritméticas, por ejemplo tenemos unidades de enteros y en coma flotante como
unidades diferenciadas a día de hoy.
Una vez la instrucción ha sido terminada se escribe el resultado sobre una dirección de
memoria en concreto y se pasa a ejecutar la siguiente, algunas instrucciones no manipulan los
valores de memoria sino ciertos registros. Así pues el registro del contador de programa es
modificado por las instrucciones de salto, si queremos leer o escribir un dato entonces se
manipulan los registros MAR y MDR.
2. Segmentación de instrucciones.
La segmentaciónde lasinstrucciones(pipeline)consisteendividirel ciclode ejecuciónde las
instruccionesenunconjuntode etapas.Estasetapaspuedencoincidironocon las fasesdel ciclode
ejecuciónde lasinstrucciones.
El objetivode lasegmentaciónesejecutarsimultáneamente diferentesetapasde distintasinstrucciones,
locual permite aumentarel rendimientodel procesadorsintenerque hacermásrápidastodaslas
unidadesdel procesador(ALU,UC,buses,etc.) ysintenerque duplicarlas.
La divisiónde laejecuciónde unainstrucciónendiferentesetapasse deberealizarde tal maneraque
cada etapa tengalamismaduración,generalmente unciclode reloj.Esnecesarioañadirregistrospara
almacenarlosresultadosintermediosentre lasdiferentesetapas, de modoque lainformacióngenerada
enuna etapaesté disponible paralaetapasiguiente.
8. Ejemplode segmentaciónde instrucciones
La segmentaciónescomounacadena de montaje.Encada etapa de la cadenase llevaa cabo unaparte
del trabajototal y cuando se acaba el trabajo de una etapa,el productopasa a la siguienteyasí
sucesivamente hastallegaral final.
Si hay N etapas,se puede trabajarsobre N productosal mismotiempoy,si la cadenaestábien
equilibrada,saldráunproductoacabadoen el tiempoque se tardaen llevaracabo una de las etapas.De
estamanera,no se reduce el tiempoque se tarda enhacer unproducto,sinoque se reduce el tiempo
total necesarioparahacer una determinadacantidadde productosporque lasoperacionesde cada
etapase efectúansimultáneamente.
Si consideramosque el productoesunainstrucciónylas etapassoncada unade lasfasesde ejecución
de la instrucción,que llamamosetapade segmentación,hemosidentificadoloselementosyel
funcionamientode lasegmentación.
Veámoslográficamente.Presentamosunmismoprocesoconinstruccionesde tresetapas,enel que
cada etapa tarda el mismotiempoenejecutarse,resueltosinsegmentaciónyconsegmentación:
Son necesarias nueve etapas para ejecutar las tres instrucciones.
Son necesarias cinco etapas para ejecutar las tres instrucciones.
Se ha reducido el tiempo total que se tarda en ejecutar las tres instrucciones, pero no el tiempo
que se tarda en ejecutar cada una de las instrucciones.
9. 3. Conjunto de instrucciones: Características y
funciones.
El conjunto de instrucciones que maneja una computadora es una pieza fundamental para el
funcionamiento de ésta debido a que las instrucciones se comunican directamente con el
procesador para hacer un manejo adecuado de los datos que están procesando y dependiendo
del tipo de set de instrucciones que un CPU entienda nos dirá el tipo de programas que una
computadora puede llegar o no a soportar, esto responde muchas veces a las interrogantes de
porque no podemos utilizar las mismas aplicaciones de un dispositivo a otro y muchas veces es
por la diferencia de procesadores y el conjunto de instrucciones que maneja uno respecto al
otro. Sin embargo, aunque haya diferencias,
-Ortogonales (Simétricas)
La ortogonalidad es una característica de las instrucciones que se considera algo amplia en
términos de lo que requiere una instrucción o un conjunto de instrucciones para ser
considerado ortogonal en primera instancia se dice que las instrucciones en un conjunto deben
de poder ser fuente y destino de cualquier elemento de la arquitectura del CPU con esto se
refiere a que las instrucciones no solo deben de ser independientes en el sentido de que cada
una haga una función y única que no repita lo que hace otra, sino que en conjunto el set de
instrucciones debe de ser independiente y consistente en el sentido de que cualquier operando
pueda ser direccionado con cualquier tipo de direccionamiento y cualquier tipo de
direccionamiento pueda direccionar a cualquier tipo de operar en una instrucción, así que por
ejemplo no puede existir un registro que sea para un tipo específico de operar. Entre más de
esta característica posea un conjunto de instrucciones se dice que es más ortogonal que otro.
-Riesgo
Un juego de instrucciones Cisc se caracteriza por un número reducido de instrucciones además
del uso de pipelining que permite al procesador dividir la ejecución de una instrucción en
distintas fases incrementando de esa manera la velocidad de ejecución. Otra característica
importante es el uso de instrucciones ortogonales (explicadas anteriormente) lo cual le permite
que cualquier tipo de operación pueda direccionarse de distintas formas. A la hora de realizar
operaciones de distintos tipos Cisc solo permite que estas sean operaciones realizadas sobre
registros, no permite trabajar sobre memoria a menos que sean instrucciones exclusivamente
10. para acceder a memoria o para guardar datos en memoria, por eso mismo Cisc brinda una muy
basta cantidad de registros para trabajar sobre estos.
Enfocándonos en la forma de programar con un juego de instrucciones Cisc, esto generalmente
requiere de más código debido a la simplicidad de sus instrucciones ya la poca cantidad con las
que se cuenta para trabajar.
-Cisc
A diferencia del set de instrucciones Cisc, este set tiene una cantidad de instrucciones
considerable pero dichas instrucciones no suelen ejecutarse por medio de segmentación o
pipelining, sus instrucciones no son ortogonales eso quiere decir que se debe tener cuidado con
los registros que se utilizan debido a que no se pueden direccionar de cualquier forma los datos
sobre cualquier registro, se debe especificar en la instrucción.
En este conjunto de instrucciones se permite trabajar en memoria además de los registros
teniendo más espacio disponible para utilizar a conveniencia en memoria y por consiguiente el
número de registros es más pequeño ya que contamos con ese extra en memoria.
A la hora de programar en Risc se requiere menor esfuerzo debido a que se puede utilizar el
lenguaje C lo que permite al programador realizar tareas específicas sin utilizar demasiado
código debido a que cada instrucción puede realizar tareas más complejas. -La segmentación de
instrucciones es similar al uso de una cadena de montaje en una fábrica de fabricación. En las
cadenas de montaje, el producto pasa a través de varias etapas de producción antes de tener el
producto terminado.
Cada etapa o segmento de la cadena está especializada en un área específica de la línea de
producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño
de procesadores eficientes. A estos procesadores se les conoce como procesadores de tuberías.
Estos están compuestos por una lista de segmentos lineales y secuenciales en donde cada
segmento lleva a cabo una tarea o un grupo de tareas computacionales. Los datos que
provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza
operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o
información para uso externo. Las arquitecturas y los conjuntos de instrucciones se pueden
clasificar considerando los siguientes aspectos: Almacenamiento de operando en la CPU: dónde
se ubican los operando aparte de la memoria. Número de operando explícitos por instrucción:
cuántos operando se expresan en forma limpia en una instrucción típica. Normalmente son 0,
1, 2 y 3. Posición del operando: ¿Puede algún operando estar en memoria?, o deben estar
11. algunos o todos en los registros internos de la CPU. Cómo se especifica la dirección de memoria
(modos de direccionamiento disponibles).
Operaciones: Qué operaciones están disponibles en el conjunto de instrucciones. Tipo y
tamaño de operación y cómo se especifican
4. Modos de direccionamiento y formatos.
Contar con diferentes formatos de instrucciones, implica contar con diferentes formas de
obtener los operando de las instrucciones. Por lo general a estas múltiples formas se les conoce
como modos de direccionamiento. Los modos de direccionamiento en MIPS son:
Direccionamiento por registro, donde los operando son registros. Los datos a operar están
contenidos en 2 registros de 32 bits y el resultado será colocado en otro registro, del mismo
tamaño.
Ejemplos de instrucciones que usan este modo de direccionamiento: add, sub, slt, etc.
Direccionamiento base o desplazamiento, donde uno de los operando está en una localidad de
memoria cuya dirección es la suma de un registro y una constante que forma parte de la misma
instrucción.
Ejemplos de instrucciones que usan este modo de direccionamiento: lw, sw, etc.
Direccionamiento inmediato, donde uno de los operando es una constante que está en la
misma instrucción.
Ejemplos de instrucciones que usan este modo de direccionamiento: addi, slti, etc.
12. Direccionamiento relativo al PC, donde se forma una dirección sumando una constante, que
está en la instrucción, con el registro PC (Program Counter). El resultado de la suma
corresponde a la dirección destino si un brinco condicional se va a realizar.
Ejemplos de instrucciones que usan este modo de direccionamiento: beq y bne.
Direccionamiento pseudo directo, donde la dirección destino de un salto corresponde a la
concatenación de 26 bits que están en la misma instrucción con los bits más significativos del
PC.
Ejemplos de instrucciones que usan este modo de direccionamiento: j y jal.
Es importante mencionar que estamos estudiando una arquitectura con direcciones de 32 bits,
sin embargo, MIPS, como muchas otras arquitecturas, tiene una extensión que maneja
direcciones de 64 bits. Esto como una respuesta a la necesidad de manejar programas cada vez
más grandes.
Conclusión:
Estos temassonmuy importantesyaúnmás conocerlos,comoel ciclo Fetch-Decode-Execute. Desde lo
que significahastasabercada una de susetapas, así mismode Segmentaciónde instruccionesoel
Conjuntode instruccionessabercadauna de sus Característicasy sus funciones,de igual Modosde
direccionamientoyformatosyel procesoque se llevaacabo encada modo.