La era de los microprocesadores.
En 1971 Intel fabrica su primer procesador: el 4004, primer microprocesador del mundo. Se trataba de un controlador programable de 4 bits. Era capaz de direccionar 4096 posiciones de memoria de 4 bits de ancho (1 nibble). El set de instrucciones del 4004 contenía solo 45 intrucciones. La tasa de ejecución de instrucciones era de 50 KIPs ( kilo-instrucciones por segundo). Era extremadamente lento comparado con las 100.000 instrucciones por segundo que ejecutaba la ENIAC en 1946. Si embargo, la principal ventaja del 4004 era que su peso no superaba los 30 gramos contra las 30 toneladas que pesaba la ENIAC. El principal problema que tenía este procesador de 4 bits era su velocidad, el largo de la palabra (4 bits) y el tamaño de la memoria. La evolución de los procesadores de 4 bits finalizó con el lanzamiento del 4040, una mejora del primer 4004. El 4040 operaba a mayor velocidad que el 4004, sin embargo no había mejoras en cuanto al tamaño de la palabra y a la memoria. A finales de 1971, observando que el microprocesador era un producto comercialmente viable, Intel creó el 8008, una versión extendida a 8 bits del 4004. Este procesador podía direccionar a un espacio de memoria expandido a 16 Kbytes. Además contenía instrucciones adicionales (un total de 48) que permitía su uso en aplicaciones más avanzadas. Alrededor de 1973, el reducido tamaño de la memoria del 8008, su escaza velocidad y su limitado set de instrucciones, condujeron al lanzamiento del 8080, el primer microprocesador moderno de 8 bits El 8080 era un procesador de propósito general. Tuvo gran éxito en la industria, vendiendo millones de unidades. El 8080 no solo podía direccionar más memoria y ejecutar nuevas instrucciones, sino que también ejecutaba a una velocidad 10 veces mayor que el 8008. Una operación de suma que en el 8008 requería 20 s (50.000 instrucciones por segundo), requería solo 2 s (500.000 instrucciones por segundo) en un sistema basado en el 8080. El 8080 podía, además, direccionar el cuadruple de memoria, es decir 64 Kbytes. En 1977, Intel introdujo una versión actualizada del 8080, el 8085. Este fue el último procesador de propósito general de 8 bits que desarrolló Intel. Aunque el 8085 era apenas más avanzado que el 8080, ejecutaba software a una velocidad aún mayor. La operación de adición que requería 2 s en el 8080, ahora requería 1.3 s (769.230 instrucciones por segundo) en el 8085. Las principales ventajas del 8085 recidían en el generador de clock interno, el controlador de sistema interno y la mayor frecuencia del clock. Este mayor grado de integración posibilitó que se redujera el costo del 8085 y que aumentara su utilidad. Intel vendió más de 100 millones de copias del 8085.
Los microprocesadores modernos.
En 1978, Intel lanzó el microprocesador 8086 y un año después el 8088. Ambos eran procesadores de 16 bits, que eran capacez de ejecutar instrucciones en 400 ns (2.5 MIPs o 2.5 millones de instrucciones por segundo). Esto representaba un avance importante sobre el 8085. Además, el 8086 y el 8088 direccionaban 1 Mbyte de memoria, 16 veces más memoria que su predecesor. Esta mayor velocidad de ejecución y el mayor tamaño de memoria permitieron que el 8086 y el 8088 reemplazaran a las pequeñas minicomputadores en muchas aplicaciones. El aumento de la memoria y las instrucciones adicionales de estos dos procesadores permitieron que fueran usados en aplicaciones más sofisticadas. Las mejoras al set de instrucciones incluían las instrucciones de multiplicación y división, que estaban ausentes en los procesadores anteriores. El número de instrucciones fue aumentando de 45 en el 4004, a 246 en el 8085 hasta más de 20.000 variantes en el 8086 y 8088. Estos procesadores pertenecían a la categoría CISC (Complex Instruction Set Computers) por la cantidad y complejidad de sus instrucciones. Los nuevos procesadores de 16 bits proveían más espacio
de almacenamiento interno (registros) que los viejos procesadores de 8 bits. Los registros adicionales permitieron nuevo software más eficiente. En años posteriores, Intel desarrolló el 80186 y el 80188, que eran esencialemente nuevas versiones del 8086 y 8088 respectivamente, pero conteniendo un gran número de circuitos de entrada/salida. Nunca llegaron a ser usados masivamente. En 1981, la popularidad de la familia Intel fue confirmada cuando IBM Corporation decidió usar los procesadores 8088 en sus computadoras personales. Al poco tiempo el espacio de memoria de 1 Mbyte pasó a ser insuficiente, lo cual condujo a Intel a lanzar en 1983 el 80286, una versión mejorada y totalmente compatible del 8086. El 80286 también tenía arquitectura de 16 bits y era prácticamente idéntico al 8086 y 8088, excepto que podía direccionar 16 Mbytes de memoria (16 veces más). El set de instrucciones sólo tenía unas pocas instrucciones nuevas, principalmente orientadas a administrar los 15 Mbytes de memoria extra. La frecuencia del clock fue aumentada en el 80286, así que ejecutaba algunas instrucciones en 250 ns (4.0 MIPs) en la versión original de 8.0 MHz. Con el tiempo, las aplicaciones empezaron a demandar procesadores más velocez, más memoria y data paths más amplios. Esto condujo a Intel, en 1986, al desarrollo del 80386. El 80386 fue el primer procesador de Intel de 32 bits que contenía un bus de datos de 32 bits y direcciones de memoria de 32 bits (Intel produjo un procesador de 32 bits anterior al 80386 llamado iapx-432 que no tuvo éxito). Usando los buses de 32 bits, el 80386 direccionaba más de 4 Gbytes de memoria. El 80386SX era una versión especial del 386 diseñada para ser instalada en un motherboard de 80286, permitiendo una actualización parcial de las máquinas basadas en este último procesador. El set de intrucciones del 386 era totalmente compatible con las versiones anteriores del 8086, 8088 y 80286. Se agregaron nuevas instrucciones para manejar los registros de 32 bits y administrar el sistema de memoria. En 1989, Intel introdujo el microprocesador 80486, que incluía integrados en un solo package un procesador similar al 386, un coprocesadore númerico similar al 80387 y una cache de 8 Kbytes. A pesar de que el 486 no era radicalmente diferente al 80386, introdujo un cambio sustancial. La estructura interna del 486 fue modificada para que alrededor de la mitad de las instrucciones redujeran su tiempo de ejecución de dos ciclos de clock a uno solo. Debido a que el 80486 estaba disponible en una versión de 50 MHz, alrededor de la mitad de las intrucciones ejecutaban en 25ns (50 MIPs). La mejora en promedio de la velocidad de ejecución para una mezcla típica de instrucciones era del 50 % sobre el 80386, operando ambos a la misma frecuencia de clock. La versión mejorada del 80486, 80486DX4, aumentaba la velocidad de ejecución interna a 100 MHz con transferencias a memoria de 33 MHz. Esta versión ejecutaba instrucciones a la misma velocidad que el Pentium de 60 MHz. Además, contenía una memoria cache expandida de 16 Mbytes. El Pentium, introducido en 1993, era similar al 80386 y al 80486. Las dos versiones introductorias del Pentium operaban a 60MHz y 66 MHz y alcanzaban una velocidad de 110 MIPs. También estaban disponibles las versiones con doble-clock de 120 MHz y 133 MHz. Otra de las diferencias con el 80486 es el tamaño expandido de la cache interna: 16 Kbytes. El Pentium contiene una cache para instrucciones de 8 Kbytes y una para datos, también de 8 Kbytes. El sistema de memoria tiene un máximo de 4 Gbytes, con un bus de datos de 64 bits. La tasa de transferencia del bus es superior a los 60 MHz. La característica más notable del Pentium es su procesador entero dual. El Pentium ejecuta dos instrucciones, no dependientes entre sí, simultáneamente debido a que utiliza un tecnología superescalar (contiene dos unidades de aritmética entera). Igual que el 486, el Pentium contiene una unidad de punto flotante interna, pero 5 veces más rápida. A fines de 1995 ya se encontraban disponibles las primeras versiones del procesador Pentium Pro. Este procesador contiene 21 millones de transistores, 3 unidades enteras y una de punto flotante para mejorar la performance de la mayor parte del software. Además de la cache
interna de 16 Kbytes (nivel 1, L1), el Pentium Pro también contiene una cache de nivel 2 de 256 Kbytes. Otro cambio significativo es que utiliza 3 motores de ejecución, lo cual le permite ejecutar hasta 3 intrucciones a la vez. El Pentium Pro puede direccionar tanto 4 Gbytes como 64 Gbytes debido a su bus de direcciones de 36 bits.
Microcontroladores:
Los microcontroladores están escondidos dentro de un gran número de productos en los tiempos actuales. Si tu microondas tiene un LED o una pantalla LCD y un teclado, entonces contiene un microcontrolador. Todos nuestros automóviles modernos contienen al menos un controlador, y puede tener hasta seis o siete: El motor es controlado por un microcontrolador, al igual que los frenos, el ordenador de navegación si lo tiene, y otras funciones que puede tener el vehículo. Cualquier dispositivo que tenga un control remoto, tiene un microcontrolador, como los televisores, los VCRs y los equipos de música de alta fidelidad. Por supuesto, el resto de equipos electrónicos que existen tienen microcontroladores, como las cámaras digitales, los teléfonos móviles, los camcorders, las impresoras, etc. Básicamente, cualquier producto o dispositivo que interactúa con un usuario, tiene un microcontrolador en su interior. Un microcontrolador es un ordenador. Todos los ordenadores – y a estemos hablando de un ordenador de sobremesa, portátil o una computadora central – tiene muchas cosas en común:
Todos los ordenadores tienen una CPU ( Unidad de Proceso Central ) que ejecuta programas. Si estás sentado enfrente de tu ordenador leyendo este artículo, la CPU está ejecutando un programa que muestra el navegador que muestra la página. La CPU carga el programa desde un sitio en particular. En el caso de un ordenador, el navegador se carga desde el disco duro. El ordenador tiene memoria RAM, donde puede almacenar variables. El ordenador tiene dispositivos de entrada y salida con los que pueden hablarte. En tu ordenador, el teclado y el ratón son los dispositivos de entrada, y el monitor y la impresora son de salida.
Undisco duro en un aparato de entrada y salida y maneja ambas funciones.
El Intel 8051 es un microcontrolador (µC) desarrollado por Intel en 1980 para uso en productos embebidos. Es un microcontrolador muy popular. Los núcleos 8051 se usan en más de 100 microcontroladores de más de 20 fabricantes independientes como Atmel, Dallas Semiconductor , Philips, Winbond, entre otros. La denominación oficial de Intel para familia de µCs 8051 es MCS 51. Éste microcontrolador está basado en la Arquitectura Harvard (es decir, existen espacios de direcciones separados para código y datos). Aunque originariamente fue diseñado para aplicaciones simples, se permite direccionar 64 KB de ROM externa y 64 KB deRAM por medio de líneas separadas chip select para programa y datos. Adicionalmente, el microcontrolador contiene una memoria interna, dividida en dos partes: los SFR y memoria de propósito general. Los SFR (Special Function Registers), son los registros proporcionados por el microcontrolador, y tienen asignadas direcciones en esta memoria interna. El acceso a esta memoria interna es más rápido que el acceso a la memoria externa, pero es de tamaño limitado. Parte de esta memoria interna además se usa como pila durante las llamadas a función y el proceso de interrupciones. Una característica particular del 8051 es la inclusión de una unidad de proceso booleano que permite que operaciones de nivel debit lógica booleana se ejecuten directa y eficientemente en registros internos. Esto ha hecho que el 8051 sea muy popular en aplicaciones de control industrial. Otra característica muy valorada es que tiene cuatro conjuntos separados de registros. A menudo se usa esta característica para reducir la latencia de interrupción. (La rutina que maneja la interrupción declara usar otro conjunto de registros, evitándose de esta manera tener que salvar en la pila los registros originales). La mayoría de los 8051 incluyen una o dos UARTs, dos o tres temporizadores, 128 o 256 bytes de RAM interna (16 bytes de los cuales son direccionables a nivel de bit), cuatro o cinco registros de entrada/salida y entre 0k-54K de memoria interna de programa. El núcleo 8051 original ejecuta un ciclo máquina cada 12 ciclos de reloj, requiriendo la mayoría de instrucciones uno o dos ciclos máquina. Pero actualmente la mayoría de fabricantes ofrecen versiones mejoradas que sólo requieren de 2 a 4 ciclos de reloj por cada instrucción máquina. Los microcontroladores 8051 modernos ofrecen muchas mejoras sobre el original. Mejoras comunes incluyen watchdog timers(un temporizador programable que "resetea" el microcontrolador si no se refresca en cierto tiempo), osciladores internos, memoria de programa Flash ROM interna, código de inicialización en ROM, almacenamiento en EEPROM interna, I²C, SPI, USB, generadores PWM, conversores analógicos A/D y D/A, relojes de tiempo real RTC, temporizadores y contadores extra, facilidades de depuración internas, más fuentes de interrupción, modos de bajo consumo, interfaz CAN, etc. Existen varios compiladores de lenguaje C disponibles para el 8051, así como en lenguaje ensamblador . La mayoría añaden extensiones al lenguaje que permiten al programador especificar por ejemplo el tipo de memoria donde se ubicará la variable, especificar manejadores de interrupción, especificar el banco de registros, acceder a instrucciones especiales de manipulación de bits...
El predecesor del 8051, el 8048, se usó en el teclado del primer IBM PC, donde convertía pulsaciones de tecla en un stream serie que se envía a la unidad central del ordenador. El 8048 y sus derivados aun se usan actualmente en teclados básicos. El 8031 fue una versión reducida del Intel 8051 original que no contiene memoria interna. El 8052 fue una versión mejorada del Intel 8051 original con:
256 bytes de RAM interna, en vez de 128 bytes 8 kB de ROM, en vez de 4 kB un tercer temporizador de 16-bit un segundo puerto serie.
Además de todas las facilidades de Timers que poseen estro controladores, estos cuentan con diferentes sistemas de comunicación serial y paralela. [Procesadores Intel 8031] El predecesor del 8051 fue el 8048. Se usaba en el teclado del primer IBM PC, su función era convertir las pulsaciones de tecla en datos en serie que eran enviados a la unidad central de la computadora. El 8048 y sus derivados todavía se siguen usando para teclados básicos. El 8031 era una versión reducida del origial Intel 8031 que no incluía ninguna memoria interna de programa (ROM). Para usar este chip, hacía falta usar una memoria exterior que el 8031 usaría. Un chip 8051 se podría vender como un 8031 sin ROM, dado que la ROM del 8051 está desactivada por el estado normal del pin EA en el diseño basado en el 8031.
M68HC: