Está en la página 1de 27

2.

- Estructura y funcionamiento de la CPU


Un computador es un sistema complejo; los computadores de hoy en da contienen millones de componentes electrnicos bsicos. Cmo podramos describirlos claramente? La clave est en reconocer la naturaleza jerr uica de la mayora de los sistemas complejos! incluyendo el computador. Un sistema jerr uico es un conjunto de subsistemas interrelacionados cada uno de los cuales! a su vez! se or"aniza en una estructura jerr uica hasta ue se alcanza el nivel ms bajo del subsistema elemental. La naturaleza jerr uica de los sistemas complejos es esencial tanto para si dise#o como para su descripcin. $l dise#ador necesita tratar solo con un nivel particular del sistema a la vez. $n cada nivel del sistema consta de un conjunto de componentes y sus interrelaciones. $l comportamiento de cada nivel depende solo de una caracterizacin abstracta y simpli%icada del sistema ue hay en el si"uiente nivel ms bajo. &e cada nivel al dise#ador le importan la estructura y el %uncionamiento' ( Estructura: el modo en el ue los componentes estn interrelacionados. ( Funcionamiento: la operacin de cada componente individual como parte de la estructura. $n t)rminos de descripcin tenemos dos opciones' empezar por lo ms bajo y construir una descripcin completa! o comenzar con una visin desde arriba y descomponer el sistema en sus subpartes. La e*periencia a partir de muchos campos nos ha ense#ado ue de la descripcin de arriba abajo +top,do-n. es la ms clara y e%ectiva. FUNCIONAMIENTO Las %unciones bsicas ue un computador puede llevar a cabo! en t)rminos "enerales son cuatro' ( /rocesamiento de datos. ( 0lmacenamiento de datos. ( 1rans%erencia de datos. ( Control. $l computador! por supuesto! tiene ue ser capaz de procesar datos. Los datos pueden adoptar una "ran variedad de %ormas! y el ran"o de los re uisitos de procesado es amplio. 2in embra"o! veremos ue hay solo unos pocos m)todos o tipos %undamentales de procesado de datos. 1ambi)n es esencial! ue un computador almacene datos. 3ncluso si el computador esta procesando datos al vuelo +es decir! los datos se introducen! se procesan! y los resultados se obtienen inmediatamente.! el computador tiene ue "uardar temporalmente al menos a uellos datos con los ue est trabajando en un momento dado. 0s hay al menos! una %uncin de almacenamiento de datos a corto plazo. Con i"ual importancia el computador lleva a cabo una %uncin de almacenamiento a lar"o plazo. $l computador almacena %icheros de datos para ue se recuperen y actualicen en un %uturo. $l computador tiene ue ser capaz de transferir datos en )l mismo y el mundo e*terior. Cuando se reciben o se llevan datos a un dispositivo ue est directamente conectado con el computador! el proceso se conoce como entrada,salida +$42.! y este dispositivo recibe el nombre de peri%)rico. $l proceso de trans%erir datos a lar"as distancias! desde o hacia un dispositivo remoto! recibe el nombre de comunicacin de datos. 5inalmente! debe haber un control de estas tres %unciones. $ste control es ejercido por el

+los. ente+s. ue proporciona+n. al computador las instrucciones. &entro del computador! una unidad de control "estiona los recursos del computador y diri"e las prestaciones de sus partes %uncionales en respuesta a estas instrucciones. E T!UCTU!A La estructura interna del computador mismo! ue mostramos en su nivel ms alto! consta de cuatro componentes principales' ( Unidad de Procesamiento "CPU#:! controla el %uncionamiento del computador y lleva a cabo sus %unciones de procesamiento de datos. 5recuentemente se le llama procesador. ( Memoria Princi$al "MP#: almacena datos. ( Entrada% alida "E% #: trans%iere datos entre el computador y el entorno e*terno. ( istema de Intercone&i'n: es un mecanismo ue proporciona la comunicacin entre la C/U! la memoria principal y la $ntrada42alida. /uede ue haya uno ms de estos componentes. $l componente ms complejo es la C/U! sus principales componentes son' ( Unidad de Control: controla el %uncionamiento de la C/U y por tanto del computador. ( Unidad Aritm(tico-)'*ica: "A)U#: lleva a cabo las %unciones de procesamiento de datos del computador. ( !e*istros: proporcionan almacenamiento interno a la C/U. ( Intercone&iones CPU: son mecanismos ue proporcionan comunicacin entre la unidad de control! la 0LU y los re"istros. 5inalmente! hay varias apro*imaciones para la implementacin de la unidad de control; una de las apro*imaciones ms comunes es la implementacin micropro"ramada. 6sicamente! una unidad de control micropro"ramada act7a ejecutando microinstrucciones ue de%inen la %uncionalidad de la unidad de control.

2.1 Organizacin del procesador


Un procesador! incluye tanto re"istros visibles por el usuario como re"istros de control4estado. Los re"istros visibles por el usuario pueden ser de uso "eneral o tener una utilidad especial! mientras ue los re"istros de control y estado se usan para controlar el %uncionamiento del procesador! un claro ejemplo es el contador de pro"rama. Los procesadores utilizan la se"mentacin de instrucciones para acelerar la ejecucin. La se"mentacin de cauce se puede dividir en ciclo de instruccin en varias etapas separadas ue operan secuencialmente! tales como la captacin de instruccin! decodi%icacin de instruccin! clculo de direcciones de operando! ejecucin de instruccin y estructura del

operando resultado. 0 continuacin se muestra cmo se or"aniza un procesador! para esto se tiene ue considerar los si"uientes re uisitos' Captar instrucciones' el procesador lee una instruccin de memoria +re"istro! cache memoria principal.. 3nterpretar instruccin' la instruccin se codi%ica para determinar u) accin es necesario. Captar datos' la ejecucin de una instruccin puede e*i"ir leer datos de memoria o de un mdulo de $42. /rocesar datos' la ejecucin e una instruccin puede e*i"ir llevar a cabo al"una operacin aritm)tica o l"ica con los datos. $scribir datos' los resultados de una ejecucin pueden e*i"ir escribir datos en la memoria o en el mdulo de $42. /ara hacer estas cosas! el procesador necesita almacenar instrucciones y datos temporalmente mientras una instruccin esta ejecutndose! en otras palabras el procesador necesita una pe ue#a memoria interna. 5i"uura. $l procesador y el bus del sistema

$n esta %i"ura se muestra una visin simpli%icada de un procesador! ue indica su cone*in con el resto de sistema! a trav)s del bus del sistema. La 0LU lleva a cabo el verdadero clculo o procesamiento de datos. La unidad de control controla la trans%erencia de datos e instrucciones as a dentro y as a%uera del procesador! y el %uncionamiento de la 0LU. 0dems la %i"ura muestra una memoria interna mnima! ue consta de un conjunto de posiciones de almacenamiento llamadas re"istros. 5i"ura. $strucutra interna del procesador

$n esta %i"ura se indican los caminos de trans%erencia de datos y de la l"ica de control! ue incluye un elemento con el rotulo bus interno del procesador. 1ambi)n se muestran los elementos bsicos tpicos de la 0LU. 8ay ue observar la similitud entre la estructura interna del computador en su totalidad y la estructura interna del procesador. $n ambos casos hay una pe ue#a coleccin de elementos principales +computador' procesador! $42! memoria; procesador' unidad de control! 0LU! re"istros. conectados por caminos de datos.

2.2.- Estructura de registro


$l C/U de una computadora consiste en dos componentes principales' la Unidad 0ritm)tica L"ica +0LU. y la Unidad de Control +CU.. La 0LU procesa los datos +in%ormacin. al ejecutar las instrucciones del pro"rama. La CU controla el %lujo de los datos e instrucciones ue entran o salen del C/U y controla la operacin de la 0LU. 0dems! en el C/U! tanto en la 0LU como en la CU! se puede encontrar una memoria interna mnima! la cual consiste en un conjunto de localidades de almacenamiento llamados registros. $n la si"uiente %i"ura se muestra un dia"rama simpli%icado del C/U! en el ue se indica ue su cone*in con el resto de la computadora se realiza a trav)s de un sistema de buses.

Fi*ura . C/U y sistema de buses. $l la 5i"ura si"uiente se muestra un dia"rama ms detallado del C/U. 2e pueden observar las rutas correspondientes a la trans%erencia de datos o de las se#ales de la l"ica de control. 1ambi)n se destaca un elemento llamado bus interno del CPU! el cual es re uerido para trans%erir datos entre los varios re"istros y la 0LU. La 0LU en realidad opera 7nicamente con datos contenidos en la memoria interna del C/U! mismos ue pudieron haber sido e*trados! mediante una operacin %etch! de la memoria principal de la computadora.

Fi*ura 9utas de trans%erencia de datos dentro del C/U. Or*ani+aci'n de !e*istros &entro del C/U e*iste un conjunto de re"istros ue %uncionan como mdulos de memoria de rpida accesibilidad y se encuentra arriba de la memoria principal y la memoria cach) en la jerar ua de memoria. $sto uiere decir ue los re"istros estn ms cerca del C/U! de hecho se encuentran dentro de )l; despu)s! en nivel de cercana y velocidad le si"ue la memoria cach); %inalmente la memoria principal. Los re"istros del C/U jue"an dos roles' Registros visibles al usuario: $stos permiten a los pro"ramadores de len"uaje de m uina o ensamblador minimizar las re%erencias a la memoria principal! optimizando el uso de los re"istros. Registros de control y estatus: $stos son usados por la Unidad de Control para controlar la operacin del C/U y por pro"ramas privile"iados del sistema operativo para controlar la ejecucin de pro"ramas. :o hay una clara separacin entre estas dos cate"oras de re"istros. /or ejemplo! en procesadores 3ntel! el contador de programa +PC. es visible al usuario; en los procesadores /o-er/C de 36;! no lo es.

2.2.,.- !e*istros -isi.les $ara el usuario Un re"istro visible al usuario es a uel ue puede ser re%erenciado mediante el len"uaje de m uina ue ejecuta el C/U. $stos re"istros pueden ser cate"orizados como si"ue' , /ropsito <eneral , &atos , &irecciones , Cdi"os de estatus

Registros de Propsito General: /ueden ser utilizados para una variedad de %unciones por el pro"ramador. 0l"unas veces su uso es orto"onal dentro del conjunto de instrucciones! lo ue uiere decir ue puede ser utilizado para contener los operandos de las instrucciones. 2in embar"o! hay al"unas restricciones; por ejemplo! puede haber re"istros dedicados a operaciones de punto %lotante y operaciones de stac=. $n al"unos casos! los re"istros de propsito "eneral pueden ser usados para %unciones de direccionamiento; por ejemplo! para especi%icar desplazamientos indirectos. $n al"unos casos! hay una clara distincin y separacin entre re"istros para datos y re"istros para direcciones. Los registros de datos podran ser utilizados 7nicamente para almacenar datos y no para calcular la direccin de un operando. Los registros de direcciones podran ser en parte re"istros de propsito "eneral! o pueden ser usados 7nicamente para un modo particular de direccionamiento. /or ejemplo'

o Apuntadores de segmento: $n una m uina con un direccionamiento se"mentado! un re"istro de se"mento almacena la direccin de la base +inicio. del se"mento. /uede haber re"istros m7ltiples! uno para el sistema operativo y otro para el proceso en ejecucin! por ejemplo. o Registros ndices: Usados para direccionamiento inde*ado y pueden ser auto inde*ados. o Apuntador a stack' 2i en la m uina e*iste el direccionamiento de stac= visible al usuario! entonces el stac= se encuentra en la memoria principal y e*iste un re"istro dedicado a apuntar a lo alto del stac=. $sto permite el direccionamiento implcito! con esto! las operaciones tpicas del stac=! tales como push! pop y otras! no re uieren de operandos e*plcitos de stac=. 9e"istros de $status +6anderas o Cdi"os de Condicin.' Los cdi"os de condicin o banderas son bits cuyos valores son asi"nados por el hard-are del C/U en base al resultado de la ejecucin de las instrucciones. /or ejemplo! una instruccin ue implementa una operacin aritm)tica puede producir un valor positivo! ne"ativo! i"ual a cero o sobre %lujo. 0dems! el resultado de la operacin puede ser almacenado en un re"istro o en la memoria! para ello tambi)n se establece una bandera o cdi"o de condicin. La bandera puede ser probada tambi)n como parte de una operacin de salto condicional.

2.2.2 !e*istro de control y de estados $*iste una variedad de re"istros de C/U ue son empleados para controlar la operacin del C/U. La mayora de )stos en la mayora de las m uinas! no son visibles al usuario. 0l"unos pueden ser visibles a instrucciones de m uina ejecutadas en un modo de control o sistema operativo. Claro es! di%erentes m uinas tendrn di%erentes or"anizaciones de re"istros y usaran di%erente terminolo"a para re%erirse a los mismos. 0 continuacin se presenta una lista razonablemente completa de los tipos de re"istros y sus descripciones. Cuatro re"istros son esenciales para la ejecucin de instrucciones' Contador de programa (PC del ingl!s Program Counter": Contiene la direccin de la si"uiente instruccin a ejecutar y ue tiene ue ser e*trada de la memoria mediante una operacin %etch. Registro de #nstruccin (#R #nstruction Register": Contiene la instruccin ue va a ejecutarse! a uella ue %ue la 7ltima en ser e*trada de memoria mediante un %etch. Registro de $ireccin de %emoria (%AR %emory Address Register": Contiene la direccin de una localidad de memoria. Registro &u''er de %emoria (%&R ( %emory &u''er Register": Contiene una palabra de dato ue ser escrita en memoria o ue acaba de ser leda de la memoria. 1picamente! el C/U actualiza el PC despu)s de realizar cada %etch de instruccin! de tal manera ue el PC siempre apunte a la si"uiente instruccin a ejecutar. Una instruccin de salto tambi)n modi%ica el contenido de PC! almacenando en )l la direccin ue corresponde al salto especi%icado en la instruccin.

La instruccin ue ha sido e*trada de la memoria con un %etch! es almacenada en el #R! donde el cdi"o de la operacin +parte de la e*presin binaria de la instruccin ue de%ine la operacin a realizar. y los especi%icadores de operandos son analizados. Los datos son intercambiados con la memoria usando los re"istros %AR y %&R. $n un sistema or"anizado mediante bus! el %AR se conecta directamente con el bus de direcciones! y el %&R se conecta directamente con el bus de datos. Los re"istros visibles al usuario! en consecuencia! intercambian datos directamente con el %&R. Los cuatro re"istros mencionados anteriormente son usados para la trans%erencia de datos entre el C/U y la memoria. &entro del C/U! los datos deben ser pasados a la 0LU para ue sean procesados. La 0LU puede tener acceso directo al %&R y a los re"istros visibles al usuario. 0lternativamente! puede ue e*istan re"istros tipo bu%%er adicionales en los bordes de la 0LU' estos re"istros sirven como re"istros de entrada y salida para la 0LU! y para intercambiar datos con el %&R y los re"istros visibles al usuario. 1odos los dise#os de C/U incluyen uno o ms re"istros conocidos como P)* +Palabra de +status del Programa, o en ingl!s Program )tatus *ord .! los cuales contienen in%ormacin sobre el estatus de la ejecucin del pro"rama. 1picamente los re"istros P)* contienen cdi"os de condiciones especiales de ejecucin del pro"rama e in%ormacin re uerida por el sistema. Los campos o banderas ms comunes en estos re"istros son' )igno: Contiene el bit de si"no del resultado de la 7ltima operacin aritm)tica. Cero: 2e le da el valor correspondiente dependiendo si el resultado de la 7ltima operacin es cero o no. Carry: 2u valor depende de si tras una suma resulta un carry! o tras una resta un borro- en la parte alta del resultado. 2e usa en operaciones aritm)ticas multipalabra. #gual: 2u valor depende de ue si la comparacin l"ica de los datos resulta en i"ualdad o no. )obre 'lu.o: Usado para indicar una condicin de sobre %lujo. /abilitar0$es1abilitar #nterrupciones: Usado para habilitar o deshabilitar interrupciones. )upervisor: 3ndica si el C/U est trabajando en modo de supervisor o de usuario. 0l"unas instrucciones privile"iadas pueden ser ejecutadas solo en modo supervisor! y ciertas reas de memoria pueden ser accesadas en modo supervisor. $s posible encontrar en al"unos dise#os de C/U otros re"istros relacionados al estatus y el control. 0dems de los re"istros P)*! pueden haber un apuntador a un blo ue de memoria ue contiene in%ormacin adicional de estatus; por ejemplo! blo ues de control de proceso.

Fi*ura. $jemplos de la or"anizacin de re"istros en al"unos microprocesadores. 2.2./.- E0em$los de or*ani+aci'n de re*istro de CPU reales 9esulta instructivo e*aminar y comparar las or"anizaciones de re"istros de sistemas anlo"os. $n esta seccin! e*aminamos dos microprocesadores de >? bits ue %ueron dise#ados apro*imadamente al mismo tiempo' el ;otorola ;C?@AAA B2193CDE y el lotel @A@? B;F92C@E. Las 5i"uras >G.Ha y b representan la or"anizacin de re"istros de cada uno de ellos; los re"istros estrictamente internos! tales como el re"istro de direccin de memoria! no se muestran. $l ;C?@AAA distribuye sus re"istros de HG bits en ocho de datos y nueve de direcciones. Los ocho re"istros de datos se usan principalmente para manipulacin de datos y tambi)n se usan en direccionamiento como re"istros ndice. $l ancho de los re"istros permite operaciones con datos de @! >? I HG bits! se"7n determine el cdi"o de operacin. Los re"istros de direcciones contienen direcciones de HG bits +no hay se"mentacin.; dos de estos re"istros se usan tambi)n como punteros de pila! uno para los usuarios y el otro para el sistema operativo! dependiendo del modo de ejecucin en curso. Los dos re"istros se re%erencian como C! dado ue solo uno de ellos puede usarse en un instante dado. $l ;C?@AAA tambi)n incluye un contador de pro"rama de HG bits y un re"istro de estado de >? bits. $l e uipo de ;otorola uiso un repertorio de instrucciones muy re"ular! sin re"istros de uso especial. 2u inter)s por la e%iciencia del cdi"o los condujo a dividir los re"istros en dos componentes %uncionales! ahorrando un bit en cada campo de especi%icacin de re"istro. /arece un compromiso razonable entre "eneralidad total y compacidad del cdi"o.

$l 3ntel @A@? usa un en%o ue di%erente para la or"anizacin de los re"istros. Cada uno de los re"istros tiene un uso especial! aun ue al"unos re"istros se pueden emplear tambi)n para un uso "eneral. $l @A@? contiene cuatro re"istros de datos de >? bits ue son direccionables como re"istros de bytes o como re"istros de >? bits! y cuatro re"istros punteros e ndices de >? bits. Los re"istros de datos pueden utilizarse como de uso "eneral en al"unas instrucciones. $n otras! los re"istros se usan implcitamente. /or ejemplo! una instruccin de multiplicacin siempre usa el acumulador. Los cuatro re"istros punteros se usan tambi)n implcitamente en al"unas operaciones; cada uno contiene un desplazamiento dentro de un se"mento. 8ay tambi)n cuatro re"istros de se"mento de >? bits. 1res de los cuatro re"istros de se"mento se usan de una %orma dedicada e implcita para apuntar al se"mento de la instruccin en curso +7til para instrucciones de salto.! a un se"mento ue conten"a datos! y a un se"mento ue conten"a una pila! respectivamente. $stos usos dedicados e implcitos proporciona una codi%icacin compacta con el coste de una %le*ibilidad reducida. $l @A@? incluye tambi)n un puntero de instrucciones y un conjunto de indicadores de un bit de estado y de control. &ebe uedar claro u) es lo si"ni%icativo de esta comparacin. :o hay! por el momento! una %iloso%a universalmente aceptada sobre la mejor %orma de or"anizar los re"istros del procesador B1FF:@>.. 3"ual ue ocurre en el dise#o "lobal del repertorio de instrucciones y en al"unos de los aspectos del dise#o del procesador! se trata ms bien de una cuestin de opinin y de "ustos. $n la 5i"ura si"uiente se ilustra un aspecto instructivo acerca del dise#o de la or"anizacin de los re"istros. $sta %i"ura muestra la or"anizacin de los re"istros visibles por el usuario en el 3ntel @AH@? B$L0I@J.! un microprocesador de HG bits dise#ado como una ampliacin del @A@?K. $l @AH@? usa re"istros de HG bits. :o obstante! para proporcionar compatibilidad ascendente para los pro"ramas escritos en la primera m uina! el @AH@? conserva la or"anizacin de re"istros ori"inal inte"rada en la nueva or"anizacin. &ada esta restriccin en el dise#o! los ar uitectos de los procesadores de HG bits han limitado la %le*ibilidad al dise#ar la or"anizacin de los re"istros.

$jemplo de or"anizaciones de re"istros de microprocesadores.

2.3.-Ciclo de Instruccin Un ciclo de instruccin +tambi)n llamado ciclo de %etch,and,e*ecute o ciclo de %etch,decode, e*ecute en in"l)s. es el perodo ue tarda la unidad central de proceso +C/U. en ejecutar una instruccin de len"uaje m uina. Comprende una secuencia de acciones determinada ue debe llevar a cabo la C/U para ejecutar cada instruccin en un pro"rama. Cada instruccin del jue"o de instrucciones de una C/U puede re uerir di%erente n7mero de ciclos de instruccin para su ejecucin. Un ciclo de instruccin est %ormado por uno o ms ciclos m uina. /ara ue cual uier sistema de proceso de datos basado en microprocesador +por ejemplo un ordenador. o microcontrolador +por ejemplo un reproductor de ;/H. realice una tarea +pro"rama. primero debe buscar cada instruccin en la memoria principal y lue"o ejecutarla. Un ciclo de instruccin +tambi)n llamado ciclo de %etch,and,e*ecute o ciclo de %etch,decode, e*ecute en in"l)s. es el perodo ue tarda la unidad central de proceso +C/U. en ejecutar una instruccin de len"uaje m uina. Comprende una secuencia de acciones determinada ue debe llevar a cabo la C/U para ejecutar cada instruccin en un pro"rama. Cada instruccin del jue"o de instrucciones de

una C/U puede re uerir di%erente n7mero de ciclos de instruccin para su ejecucin. Un ciclo de instruccin est %ormado por uno o ms ciclos m uina. /ara ue cual uier sistema de proceso de datos basado en microprocesador +por ejemplo un ordenador. o microcontrolador +por ejemplo un reproductor de ;/H. realice una tarea +pro"rama. primero debe buscar cada instruccin en la memoria principal y lue"o ejecutarla. ecuencia de acciones del ciclo de instrucci'n 8abitualmente son cuatro los eventos o pasos ue se llevan a cabo en cada ciclo de instruccin! los cuales son' 3. 1uscar la instrucci'n en la memoria $rinci$al 2e vuelca el valor del contador de pro"rama sobre el bus de direcciones. $ntonces la C/U pasa la instruccin de la memoria principal a trav)s del bus de datos al 9e"istro de &atos de ;emoria +;&9.. 0 continuacin el valor del ;&9 es colocado en el 9e"istro de 3nstruccin 0ctual +C39.! un circuito ue "uarda la instruccin temporalmente de manera ue pueda ser decodi%icada y ejecutada. 33. 2ecodificar la instrucci'n $l decodi%icador de instruccin interpreta e implementa la instruccin. $l re"istro de instruccin +39. mantiene la instruccin en curso mientras el contador de pro"rama +/C! pro"ram counter. "uarda la direccin de memoria de la si"uiente instruccin a ser ejecutada. 9eco"ida de datos desde la memoria principal 2e accede al banco de re"istros por los operandos +solo si es necesario. 2e calcula el valor del operando inmediato con e*tensin de si"no +solo si es necesario. 1ambi)n se lee la direccin e%ectiva de la memoria principal si la instruccin tiene una direccin indirecta! y se reco"en los datos re ueridos de la memoria principal para ser procesados y colocados en los re"istros de datos. 333. E0ecutar la instrucci'n 0 partir del re"istro de instruccin! los datos ue %orman la instruccin son decodi%icados por la unidad de control. Lsta interpreta la in%ormacin como una secuencia de se#ales de control ue son enviadas a las unidades %uncionales relevantes de la C/U para realizar la operacin re uerida por la instruccin. 3M. Almacenar o *uardar resultados $l resultado "enerado por la operacin es almacenado en la memoria principal o enviado a un dispositivo de salida dependiendo de la instruccin. 6asndose en los resultados de la operacin! el contador de pro"rama se incrementa para apuntar a la si"uiente instruccin o se actualiza con una direccin di%erente donde la pr*ima instruccin ser reco"ida.

2./., Ciclo Fetc3 2ecode E&ecute Un ciclo de instruccin +tambi)n llamado ciclo de %etch. es el periodo de tiempo ue tarda la unidad central de proceso +C/U. en ejecutar una instruccin de len"uaje m uina. Comprende una secuencia de acciones determinada ue debe llevar a cabo la C/U para ejecutar cada instruccin en un pro"rama. Cada instruccin del jue"o de instrucciones de una C/U puede re uerir di%erente n7mero de ciclos de instruccin para su ejecucin. Un ciclo de instruccin est %ormado por uno o ms ciclos m uina. /ara ue cual uier sistema de proceso de datos basado en microprocesador +por ejemplo un ordenador. o microcontrolador +por ejemplo un reproductor de ;/H. realice una tarea +pro"rama. primero debe buscar cada instruccin en la memoria principal y lue"o ejecutarla. 2ecuencia de acciones del ciclo de instruccin 3nstruccin' $l valor del contador de pro"rama +es un re"istro del procesador de un computador ue indica la posicin donde est el procesador en su secuencia de instrucciones.. 2obre el bus de direcciones +es un canal del microprocesador totalmente independiente! donde se establece la direccin de memoria de los datos en trnsito.. $ntonces el C/U pasa la instruccin de la memoria principal a trav)s del bus de datos +encar"a de mover la in%ormacin por los componentes de hard-are del sistema de computacin! tanto de $ntrada +teclado! mouse!. como de salida +monitor! impresora.! al 9e"istro de &atos de ;emoria +;&9.! el valor del ;&9 es colocado en el 9e"istro de 3nstruccin 0ctual +C39. ! un circuito ue "uarda la instruccin temporalmente de manera ue pueda ser decodi%icada y ejecutada. 2ecodificaci'n $l cdi"o de operacin de la instruccin ue se encuentra en el 9e"istro de datos &9! se deposita en el re"istro de instrucciones +39.. Lue"o! los circuitos de control interpretan ese cdi"o de operacin para determinar u) operacin se va a ejecutar.

Fetc3 de O$erando 9ealiza la b7s ueda de un operando en memoria! si es necesario. <eneralmente es la misma instruccin uien proporciona la direccin del operando al procesador. E0ecuci'n de la O$eraci'n Una vez conocida la naturaleza de la instruccin! y el operando ha sido e*trado desde memoria! el procesador ejecuta la operacin indicada por el cdi"o contenida en la instruccin.

2./.2 e*mentaci'n de instrucciones La se"mentacin de instrucciones es similar al uso de una cadena de montaje en una %brica de manu%acturacin. $n las cadenas de montaje! el producto pasa a trav)s de varias etapas de produccin antes de tener el producto terminado. Cada etapa o se"mento de la cadena est especializada en un rea espec%ica de la lnea de produccin y lleva a cabo siempre la misma actividad. $sta tecnolo"a es aplicada en el dise#o de procesadores e%icientes. 0 estosprocesadores se les conoce como pipeline processors. Un pipeline processor est compuesto por una lista de se"mentos lineales y secuenciales en donde cada se"mento lleva a cabo una tarea o un "rupo de tareas computacionales. /uede ser representado "r%icamente en dos dimensiones! en donde en el eje vertical encontramos los se"mentos ue componen el pipeline y en el se"mento horizontal representamos el tiempo+%i"ura >..

8ay tres apectos importantes ue deben ser considerados en pipeline. Lo primero ue debemos observar es ue el trabajo es dividido en piezas ue ms o menos ajustan dentro de los se"mentos ue componen el pipeline. 2e"undo! para ue el pipeline trabaje de %orma e%iciente es necesario ue las particiones de trabajo tomen apro*imadamente la misma cantidad de tiempo. &e no ser asi! el se"mento ue re uiera ms tiempo + 1 . har ue el pipeline se retrase y cada se"mento re uerir 1 unidades de tiempo para completar su trabajo. $sto uiere decir ue los se"mentos rpidos estarn mucho tiempo ociosos. 1ercero! para ue el pipeline %uncione adecuadamente! deben ocurrir pocas e*cepciones o hazards +ries"os. ue puedan causar retardos o errores en el pipeline. $n caso de ocurrir errores! la instruccin tiene ue ser car"ada nuevamente en el pipeline y se debe reiniciar la misma instruccin ue ocasion la e*cepcin. Como una primera apro*imacin! consideremos una subdivisin del procesamiento de una instruccin en dos etapas o se"mentos' ( Captacin de la instruccin ( $jecucin de la instruccin La primera etapa capta una instruccin y la almacena en un bu%%er. Cuando la se"unda etapa est libre! la primera etapa le pasa la instruccin almacenada. ;ientras la se"unda etapa ejecuta la instruccin! la primera etapa usa al"7n ciclo de memoria no utilizado para captar y almacenar la si"uiente instruccin. 0 esto se le conoce como preb7s ueda o precaptacin de instruccin. $ste proceso aceler la ejecucin de instrucciones. 2i las dos etapas consideradas %ueran de i"ual duracin! el tiempo de ciclo de instruccin se reducira a la mitad.

/ara poder tener una aceleracin mayor! el pipeline debe tener ms etapas. Consideremos la si"uiente divisin en J etapas ue presenta la ar uitectura ;3/2' 35' %etch instruction %rom memory. 3&' decode instruction and read re"ister $N' e*ecute the operation or calculate address. ;$;' access an operand in data memory O6' -rite the result into a re"ister. Comparemos el tiempo promedio de ejecucin en una implementacin sin pipeline y con pipeline. 2upon"amos ue se necesitan G nse" para acceso a memoria! G nse" para una operacin en la Unidad L"ica 0ritm)trica +UL0. y > nse" para leer o escribir re"istros. $n la %i"ura G se muestra el tiempo total para la ejecucin de varios tipos de instrucciones tomando en cuenta el tiempo ue demora cada uno de los componentes.

$n una implementacin sin pipeline! cada instruccin toma e*actamente > ciclo de reloj! por lo tanto el ciclo de reloj debe ser ajustado a la instruccin ms lenta. $n nuestro caso! el ciclo de reloj es ajustado a @ nse". $n la %i"ura H se muestra la secuencia de ejecucin para dos instrucciones en un procesador sin pipeline y en la %i"ura P se muestra el caso para un procesador con pipeline.

/ara implementar e%icientemente las instrucciones ;3/2 en un procesador pipeline! se debe ase"urar ue las instrucciones sean de la misma lon"itud y por lo tanto se %acilitan las etapas de 35 e 3&. 0dems esta ar uitectura posee pocos %ormatos de instruccin ue son consistentes entre si ue permiten una decodi%icacin rpida de las instrucciones pues los campos de re"istros en los %ormatos siempre ocupan la misma posicin dentro del %ormato. 0dicionalmente! la decodi%icacin de las instrucciones y la lectura de los contenidos de los re"istros ocurren al mismo tiempo.

/ipelinin" incrementa la productividad del C/U! es decir! el n7mero de instrucciones completadas por unidad de tiempo! pero no reduce el tiempo de ejecucin de una instruccin individual. &e hecho! usualmente se incrementa el tiempo de ejecucin de cada instruccin debido al overhead producido por el control del pipeline. $l incremento en la productividad de las instrucciones si"ni%ica ue un pro"rama corre ms rpido y tiene menor tiempo total de ejecucin. /ara poder implementar un procesador con pipeline se debe determinar ue sucede en cada ciclo de reloj y estar se"uros ue en el solapamiento de las instrucciones no ten"amos competencia por ciertos recursos. /or ejemplo! si se dispone de una 7nica 0LU entonces no se podr calcular la direccin e%ectiva de un operando y al mismo tiempo llevar a cabo una operacin de resta. Cada etapa del pipeline est activa en cada ciclo de reloj. $sto re uiere ue todas las operaciones en una etapa se completen en un ciclo de reloj. 2./.2., u$erescalar. 2uperescalar es el t)rmino utilizado para desi"nar un tipo de micro ar uitectura de procesador capaz de ejecutar ms de una instruccin por ciclo de reloj. $l t)rmino se emplea por oposicin a la micro ar uitectura escalar ue slo es capaz de ejecutar una instruccin por ciclo de reloj. $n la clasi%icacin de 5lynn! un procesador superescalar es un procesador de tipo ;3;& +multiple instruction multipledata.. La micro ar uitectura superescalar utiliza el paralelismo de instrucciones adems del paralelismo de %lujo! )ste 7ltimo "racias a la estructura en pipeline. $n un procesador superescalar! el procesador maneja ms de una instruccin en cada etapa.

$l n7mero m*imo de instrucciones en una etapa concreta del pipeline se denomina "rado! as un procesador superescalar de "rado P en lectura +%etch. es capaz de leer como m*imo cuatro instrucciones por ciclo. $l "rado de la etapa de ejecucin depende del n7mero y del tipo de las unidades %uncionales. Un procesador superescalar suele tener unidades %uncionales independientes de los tipos si"uientes' Unidad aritm)tica l"ica +0LU. Unidad de lectura 4 escritura en memoria +Load42tore Unit. Unidad de coma %lotante +5loatin"/oint Unit. Unidad de salto +6ranch unit.

Un procesador superescalar es capaz de ejecutar ms de una instruccin simultneamente 7nicamente si las instrucciones no presentan al"7n tipo de dependencia +hazard.. Los tipos de dependencia entre instrucciones son ' &ependencia estructural! esta ocurre cuando dos instrucciones re uieren el mismo tipo unidad %uncional y su n7mero no es su%iciente. &ependencia de datos! esta ocurre cuando una instruccin necesita del resultado de otra instruccin para ejecutarse! por ejemplo 9>QR9GS9H y9PQR9>SJ. &ependencia de escritura o %alsa dependencia ! esta ocurre cuando dos instrucciones necesitan escribir en la misma memoria! por ejemplo 9>QR9GS9H y9>QR9>SJ.

La deteccin y resolucin de las dependencias entre instrucciones puede ser esttica +durante la compilacin. o dinmica! es decir! a medida ue se ejecuta un pro"rama! "eneralmente durante la etapas de codi%icacin y lanzamiento de las instrucciones. La deteccin y resolucin dinmica de las dependencias entre instrucciones suele realizarse mediante al"una variante del al"oritmo de 1omasulo ue permite la ejecucin de instrucciones en un orden distinto al del pro"rama tambi)n llamada ejecucin en desorden . La e%icacia de un procesador superescalar viene limitada por un lado por la di%icultad en suministrar al procesador su%icientes instrucciones ue puedan ser ejecutadas en paralelo y por otro lado por las prestaciones de la jerar ua de memorias. 2i las instrucciones de salto son un problema para los procesadores con pipeline en "eneral! en el caso de los procesadores superescalares! el problema se multiplica ya ue un parn en el pipeline tiene consecuencias en un n7mero mayor de instrucciones. /or esta razn! los %abricantes de procesadores recurren a t)cnicas de ejecucin especulativa y dise#an al"oritmos de prediccin de saltos cada vez ms so%isticados as como sistemas de almacenamiento de instrucciones por trazas +trace caches..

Las ar uitecturas superescalares adolecen de una estructura compleja y de un mal aprovechamiento de sus recursos debido en parte a la di%icultad en encontrar su%icientes instrucciones paralelizables. Una %orma de obtener un mayor n7mero de instruccin es paralelizables es aumentar la ventana de instrucciones! es decir el conjunto de instrucciones ue la unidad de lanzamiento considera como candidatas a ser lanzadas en un momento dado. &esa%ortunadamente la complejidad del procesador superescalar aumenta desproporcionadamente con respecto al tama#o de dicha ventana lo ue se traduce por un ralentizamiento "eneral del circuito. Ftra %orma de obtener ms instrucciones paralelizables es manipulando instrucciones de ms de un pro"rama a la vez! lo ue se conoce bajo el nombre de multitarea simultnea o multithreadin" simultneo. ;ientras las primeras C/UTs superescalares disponan de dos 0LUs y una sola 5/U! un procesador moderno como el /o-er/C DCA incluye cuatro 0LUs y dos 5/Us! adems de dos unidades 23;&. 2i el despachador no es e%iciente haciendo trabajar lo m*imo posible a estas unidades! el rendimiento "lobal del procesador se ver mermado. La C&C ??AA de 2eymour Cray! construida en >D?J! es la primera ar uitectura superescalar! siendo llevado el concepto a las microcomputadoras en las C/Us 932C. $sta posibilidad vena dada por la simpleza de los n7cleos 932C! permitiendo meter ms unidades de ejecucin en un mismo chip. $sta %ue una de las razones de la rapidez de los sistemas 932C %rente a los ms anti"uos C32C durante las d)cadas de los @A y los DA! pero a medida ue los procesos de %abricacin mejoraron y se pudieron meter ms y ms transistores en el mismo chip! hasta dise#os complejos como el 30,HG pudieron ser superescalares. La inmensa mayora de las C/UTs desarrolladas desde >DD@ son superescalares. Lle"ados a un punto en ue la mejora sustancial de la unidad de control y despachamiento parece imposible! ya no parece ue los dise#os superescalares puedan dar ms de s. Una de las posibles soluciones es trasladar la l"ica de despachamiento desde el chip hasta el compilador! ue puede invertir mucho ms tiempo en tomar las mejores decisiones posibles! ya ue no tiene ue operar en tiempo real como tena ue hacer el hard-are de despachamiento. $ste es el principio bsico de los procesadores ML3O +Mery Lon"3nstruction Oord.! donde el paralelismo es e*plicitado por el %ormato de instruccin! tambi)n conocidos como superescalares estticos. 2./.2.2 Pi$eline 2in4mico. $s el proceso de ubicar en tiempo real! a lo lar"o de lneas previamente calibradas! entidades ue representan ras"os "eo"r%icos tales como carreteras! ros! vas %)rreas! lmites administrativos! mojones! puntos notables! etc. /ermite la asociar m7ltiples conjuntos de atributos a cual uier porcin de una entidad lineal. $stos atributos lue"o! pueden ser almacenados! desple"ados! consultados y analizados sin a%ectar las coordenadas de los datos lineales ni su "eometra. ;odela elementos lineales usando rutas o eventos de rutas.

6ene%icios Cual uier aplicacin ue involucre elementos lineales se puede bene%iciar usando la %uncionalidad provista por la se"mentacin dinmica. 0l"unos ejemplos incluyen' Coleccin de datos a lo lar"o de elementos lineales tales como caminos! cursos de a"ua! y vas %)rreas. ;anejo de calidad del pavimento. ;anejo de redes urbanas e inventarios para se#ales de calle! luces de tr%ico! cruce de peatones! etc. ;anejo de cursos de a"ua y corrientes ;anejo de rutas de nave"acin martimas 0nlisis de e*ploracin de "as y petrleo ;odelado de redes de comunicacin y distribucin tales como electricidad! tel)%ono! a"ua! saneamiento! y televisin por cable.

2./.2./ !ies*os de altos Los ries"os de salto o de control ocurren cuando el procesador se ve obli"ado a saltar a una instruccin ue no tiene por u) ser necesariamente la inmediatamente si"uiente en el cdi"o. $n ese caso! el procesador no puede saber por adelantado si debera ejecutar la si"uiente instruccin u otra situada ms lejos en el cdi"o. $sto puede resultar en acciones no deseadas por parte de la C/U. 0demas los procesadores con pipeline presentan una serie de problemas conocidos como hazards y ue pueden ser tres tipos' 9ies"os $structurales' ocurren cuando diversas instrucciones presentan con%lictos cuando tratan de acceder a la misma pieza de hard-are. $ste tipo de problema puede ser aliviado teniendo hard-are redundante ue evitan estas colisiones. 1ambi)n se pueden a"re"ar ciertas paradas +stall. en el pipeline o aplicar reordenamiento de instrucciones para evitar este tipo de ries"o. 9ies"os de &atos' ocurren cuando una instruccin depende del resultado de una instruccin previa ue a7n est en el pipeline y cuyo resultado a7n no ha sido calculado. La solucin ms %cil es introducir paradas en la secuencia de ejecucin pero esto reduce la e%iciencia del pipeline. 9ies"os de Control' son resultado de las instrucciones de salto ue necesitan tomar

una decisin basada en un resultado de una instruccin mientras se estn ejecutando otras. 2./.2.5 !ies*os Estructurales o tructural 6a+ards. Fcurre cuando no se dispone de su%iciente hard-are para soportar ciertos cmputos dentro de un se"mento particular del pipeline. /or ejemplo en la %i"ura ? se puede observar ue en el ciclo de reloj J +CCJ. se debe llevar a cabo una escritura en el archivo de re"istros y una lectura del archivo de re"istros. $sto puede resolverse duplicando el archivo de re"istros pero puede llevarnos a problemas de inconsistencia. Ftra alternativa es modi%icar el hard-are e*istente para ue pueda soportar operaciones de lectura y escritura concurrentes. 2e puede modi%icar el archivo de re"istros de %orma tal ue la escritura de re"istros se lleva a cabo en la primera mitad del ciclo de reloj y la lectura de re"istros se e%ect7a en la se"unda mitad del ciclo de reloj.

Ftro ries"o estructural puede ocurrir durante una instruccin de salto! si no disponemos de dos 0LU en el se"mento $N. /ara este tipo de instruccin es necesario calcular la direccin de salto pues en la instruccin se dispone del desplazamiento necesario para lle"ar al destino y tambi)n es necesario calcular la di%erencia entre los operandos %uentes para determinar si se cumple o no la condicin. 2./.2.7 !ies*os de 2atos o 2ata 6a+ards. Un data hazard ocurre cuando la instruccin re uiere del resultado de una instruccin previa y el resultado a7n no ha sido calculado y escrito en el archivo de re"istros. $n la si"uiente %i"ura se presenta un ejemplo de ries"o de datos.

8ay diversas %ormas para solventar este problema' 5or-ardin"' se adiciona circuitos especiales en el pipeline de %orma ue el valor deseado es transmitido4adelantado al se"mento del pipeline ue lo necesita.

3nsercin de paradas +)tall insertion.' es posible insertar una o ms paradas en el pipeline +no,op. ue retardan la ejecucin de la instruccin actual hasta ue el dato re uerido sea escrito en el archivo de re"istros.

9eordenamiento de cdi"o' en este caso! el compilador reordena instrucciones en el cdi"o %uente o el ensamblador reodena el cdi"o objeto de %orma ue se colocan una o ms instrucciones entre las instrucciones ue presentan dependencia de datos. /ara esto se necesitan compiladores o ensambladores inteli"entes.

$n la tercera instruccin no se dispone del resultado de la se"unda y no se puede aplicar adelantamiento del resultado. Una alternativa es ue se incluya una parada o burbuja en el pipeline.

Ftra %orma ms e%iciente es cambiando el orden de ciertas instrucciones. $n este caso si intercambiamos la instruccin H y P resolvemos el problema de dependencia de datos.

2./.2.8 !ies*os de Control o Control 6a+ards Un ries"o de control se produce cuando es necesario llevar a cabo una decisin basada en el resultado de una instruccin mientras se estn ejecutando otras instrucciones. Cuando se ejecuta un salto no se conoce de antemano cul ser la si"uiente instruccin ue deber ser ejecutada. 2i la condicin del salto %alla entonces se debe ejecutar la instruccin inmediata! si la condicin del salto se cumple se debe actualizar el /C con la direccin de la si"uiente instruccin ue debe ejecutarse. Una estrate"ia para atacar este tipo de problema es asumir ue la condicin del salto no se cumplir y por lo tanto la ejecucin continuar con la instruccin ue se encuentra inmediatamente despu)s de la instruccin de salto. 2i la condicin del salto se cumpli entonces se deber desechar del pipeline las instrucciones ue %ueron captadas y la ejecucin continua con la instruccin ue se encuentra en la direccin de salto.

$n el ejemplo de la %i"ura >H! si la condicin del salto se cumple! se deben desechar del pipeline las tres instrucciones ue entraron en el pipeline pues se haba asumido ue dicha condicin no se iba a cumplir. Una %orma para mejorar el rendimiento de los saltos es reduciendo el costo de no haber tomado el salto. La decisin del salto se toma en el se"mento ;$; del pipeline. $n este se"mento se tiene un sumador ue le adiciona al /C el desplazamiento para lle"ar a la instruccin destino. 2i esta decisin se puede mover a una etapa o se"mento anterior entonces slo una instruccin tendr ue ser sacada del pipeline cuando se tome una decisin incorrecta en el caso de los saltos. ;uchas implementaciones ;3/2 mueven la ejecucin del branch a la etapa 3&. /ara ello mueven el sumador ue usa el branch para la etapa 3&.

G.H.H

También podría gustarte