Historia Que es un microprocesador ? Es un circuito digital generalmente bastante complejo que realiza procesamiento de datos, las operaciones que se llevan a cabo durante dicho procesamiento son controladas por lo que se denomina un programa, este ltimo, es el que le indica al microprocesador exactamente que es lo que tiene que hacer, por ejemplo, leer un dato de un teclado y mandarlo a una pantalla de cristal liquido o tomar dos valores de la memoria, sumarlos y poner este resultado en la misma. Los microprocesadores han cambiaron la forma en las que se realizaban las operaciones de tratamiento de informacin, y desde que aparecieron en los aos !" no han dejado de evolucionar, el primer microprocesador fue el #""# desarrollado por $ntel el cual era muy limitado pues slo sumaba y restaba datos de # bits. El #""# fue el microprocesador que le dio vida a una de las primeras calculadoras electrnicas. $ntel lanzo posteriormente, en %&!% el '""', el que ser(a el primer microprocesador de ' bits, luego en %&!) saca al mercado el '"'", microprocesador que se utilizar(a en la construccin de las primeras computadoras para el hogar, el aspecto f(sico de este procesador se muestra en la figura . *nos aos despu+s, en %&!', $ntel lanz el famoso '"', y un ao y medio m-s tarde el '"'' con los cuales se puso en el mercado el $./ 01 que apareci en %&'2, con esto $ntel estar(a en la mayor(a de computadores personales hasta llegar al Figura 1: Oblea
Figura 2: El 4004
Figura 3: El 8080
Arquitectura de Procesadores I 0entium $3 que es ampliamente utilizado en los computadores de escritorio actuales 42"",5. En la tabla siguiente se muestra la evolucin histrica de los procesadores de $ntel6 Nombre Fecha Transistores Tecnologa de fabricacin Frecuencia del reloj Ancho de los datos MIPS 8080 1974 6,000 6 2 MHz 8 bits 0.64 8088 1979 29,000 3 5 MHz 16 bits 8-bit bus 0.33 80286 1982 134,000 1.5 6 MHz 16 bits 1 80386 1985 275,000 1.5 16 MHz 32 bits 5 80486 1989 1,200,000 1 25 MHz 32 bits 20 Pentium 1993 3,100,000 0.8 60 MHz 32 bits 64-bit bus 100 Pentium II 1997 7,500,000 0.35 233 MHz 32 bits 64-bit bus ~300 Pentium III 1999 9,500,000 0.25 450 MHz 32 bits 64-bit bus ~510 Pentium 4 2000 42,000,000 0.18 1.5 GHz 32 bits 64-bit bus ~1,700 Pentium 4 "Pres!tt" 2004 125,000,000 0.09 3.6 GHz 32 bits 64-bit bus ~7,000 Arquitectura: 1aracter(sticas de un sistema que son visibles por el programador e influyen de manera directa en la forma en la que se ejecuta un programa. Organizacin: Las unidades funcionales y las interconexiones que existen entre ellos para realizar una arquitectura. Arquitectura de Procesadores I Organizaciones Existen hoy en d(a varios tipos de organizaciones, las m-s conocidas son Harvard y Von Neumann. Von Neumann. 1onsiste de 7 componentes b-sicos6 *nidad de memoria. *nidad de Entrada. *nidad de 8alida. *nidad aritm+tico 9 lgica. *nidad de control. 8e fundamenta en6 1oncepto de programa almacenado. 0rograma y datos en la misma memoria. Los 0rogramas se manejan como datos 4 dando lugar a la aparicin de los compiladores y los sistemas operativos5. Figura 4: Organizacin Von Neumann Arquitectura de Procesadores I Este modelo original ha sido modificado en lo que se llama organizacin basada en bu!e!, tal y como se muestra a continuacin. La anterior organizacin es la que se mantiene aunque con algunos refinamientos en los computadores actuales. Hardvard Esta organizacin es muy parecida a la 3on :eumann, con la diferencia que existen buses separados para los diferentes elementos del sistema. Arquitecturas. Las mas ampliamente difundidas son6 ;isc, 1onjunto reducido de instrucciones. 8on procesadores con instrucciones simples y cortas, dando como resultado una gran velocidad de ejecucin. <lgunos ejemplos de procesadores de este tipo son el ,'""" de /otorola y las cpu=s que utilizan los microcontroladores 0$1. 1isc, 1onjunto completo de instrucciones. 0rocesadores complejos internamente, con muchas instrucciones para el programador, haci+ndolos muy flexibles al programarlos. Ejemplos de estos son los de la familia $ntel. <ntes de continuar con los la descripcin detallada de un sistema basado en microprocesador, veamos un ejemplo. 8uponga como se menciono antes, que se desea sumar dos nmeros, seguiremos la secuencia paso a paso que realiza el procesador para Arquitectura de Procesadores I realizar dicha tarea de una manera muy superficial, pero que nos dar- una idea b-sica sobre el comportamiento de los microprocesadores 4posteriormente abordaremos el ejemplo de una manera m-s detallada5 %. El procesador esta leyendo constantemente su entrada, ejecutando una instruccin de entrada de datos constantemente 4$;>leer entrada5. 2. 8e presiona la tecla 2. La unidad de control lee el valor de entrada y lo almacena en el registro < . Arquitectura de Procesadores I ). 8e presiona la tecla ). La unidad de control lee el valor de entrada y lo almacena en el registro . . #. 8e presiona la tecla ?. La unidad de control ordena a la <L* a ejecutar la suma entra < y ., y almacenar el resultado en el registro <. Arquitectura de Procesadores I 7. 8e presiona la tecla >. La unidad de control env(a el dato que hay en el registro < a la salida. Los buses $magine se necesita conectar la salida de un registro de datos a la entrada de dos registros m-s, de tal modo que estos ltimos puedan tomar los datos del primero, @de qu+ modo se conectan dichos elementosA <hora imagine cmo ser(a el proceso inverso, es decir, que fuese necesario, que dos registros sean fuentes de datos de un tercero, esto es, si "#$ y % son registros, se desea que en un tiempo &0 el dato que hay en " se transfiera a % y posteriormente en otro tiempo &1 el dato que hay en $ sea trasferido a %, las dos operaciones anteriores las denotaremos %'(" y %'($ respectivamente. 0ara realizar estas &ran!)erencia! en&re regi!&ro!, podemos optar por el uso de multiplexores tal y como se muestra a continuacin6 Arquitectura de Procesadores I 8e ha utilizado un multiplexor para controlar cu-l es el dato que se almacena en el registro %# esto se logra por medio de la seal de control %1, la seal ld % en su flanco de subida, se utiliza para cargar el dato en el registro %. 3eamos un ejemplo un poco m-s complejo, supongamos que queremos realizar conexiones bidireccionales entre los tres registros, dotando al sistema de la posibilidad de intercambiar informacin entre todos los registros, as(6 Figura *: Operacin %'(" Figura +: Operacin %'($ " # $ Figura ,: E-emplo de canale! dedicada! Arquitectura de Procesadores I La forma de implementar el diagrama de la figura ! se muestra a continuacin6 1omo puede verse en la figura, cada elemento puede enviar datos a los otros dos, por medio de los multiplexores conectados a su salida. ;ealicemos las operaciones %'("# "'( $, la secuencia que deben seguir las seales son6 8eleccionar la entrada de % como " y la de " como $, as(6 Figura 8: .mplemen&acin con canale! dedicado! Arquitectura de Procesadores I <ctivar las l(neas de carga de los registros destino, ld/% y ld/", en ese orden, pues < es fuente de una de las operaciones y destino de la otra. Las siguientes dos figuras muestran el proceso6 La forma anterior de conectar elementos de un sistema no es la nica que se puede usar, existe otra posibilidad, el uso de bu!e!# con ellos el nmero de elementos necesarios para construir el sistema se reduce debido al no uso de multiplexores. *n bus es una conexin compartida por mltiples elementos para transmitir yBo recibir datos. 3emos la misma conexin de los registros anteriores realizada con buses. Arquitectura de Procesadores I En la figura & se muestra que para formar el bus, se agregaron buffer=s triestado a las salidas de los registros y se conectaron, puede observarse que como no hay ninguna seal oe activa el bus aparece en estado de al&a impedancia 0color naran-a1. 1uando es necesario poner un dato en el bus se activa al seal oe del registro correspondiente, como se muestra a continuacin <hora si queremos realizar alguna operacin de transferencia como por ejemplo <'($, podemos hacer la siguiente modificacin al circuito. Figura 2: %one3in en bu! Figura 10: 4a&o en el bu! Arquitectura de Procesadores I 0ara realizar la transferencia mencionada se activa la seal ld/", mientras en el bus est- el dato correspondiente al registro $.
Es necesario aclarar que para que no existan conflictos con los datos que aparecen en el bus la sincronizacin de las seales debe ser cuidadosa, pues podr(a crearse un corto circuito entre las salidas de los buffer=s estrope-ndolos. 0ara implementar el sistema tal y como se planteo solo hay que conectar la entrada de todos los registros al bus. Figura 11: 5ran!)erencia "'($ Figura 12: Arquitectura de Procesadores I Buses del sistema 1omo se hab(a mencionado antes, en un sistema basado en procesador generalmente aparecen los siguientes buses6 %. .us de datos6 *tilizado para que el microprocesador intercambie informacin con otros elementos del sistema y en algunos casos entre dispositivos. 2. .us de direcciones6 *sado para indicar cu-l es el elemento que con el que se realizar- la transferencia de datos. ). .us de control6 $ndica la direccin, tipo y otras caracter(sticas de la operacin de transferencia. 0ara la explicacin del funcionamiento de los buses de un sistema basado en procesador es necesario tener claro como funcionan los elementos b-sicos de almacenamiento, las memorias