lunes, 19 de noviembre de 2007

Suplemento # 2: El microprocesador µP




En este libro se ha afirmado que en materia de lógica digital todo, absolutamente todo, se puede construír utilizando únicamente las tres funciones lógicas básicas de OR, AND y NOT. Si la majestuosa catedral de Notre Dame fue edificada con ladrillos que, vistos individualmente, parecen una cosa insignificante, del mismo modo las tras funciones lógicas básicas cuyo funcionamiento una vez comprendido pueden parecer una cosa risible, no lo son cuando se empiezan a juntar en mayores números para ir creando funciones cada vez más complejas, empezando con los flip-flops R-S, evolucionando tras esto a los flip-flops J-K, progresando tras esto a los contadores binarios y a los registros de transferencia, para continuar con la construcción de medios-sumadores y medios-substractores que a su vez pueden ser integrados para formar sumadores completos y substractores completos con los cuales se pueden llevar a cabo operaciones aritméticas binarias de adición y resta. Continuando con la integración de componentes, eventualmente llegamos un componente especial que ha sido el responsable por la dramática revolución informática cuyos efectos los puede palpar cualquiera que esté leyendo este documento vía Internet: el microprocesador, simbolicado como µP (la letra griega mu es utilizada como prefijo para simbolizar la palabra "micro", siguiendo una costumbre muy común en la ciencia y la ingeniería).

La revolución informática que estamos viviendo en estos momentos y que está cambiando radicalmente nuestras vidas de mil maneras comenzó con el siguiente circuito integrado aparentemente inocuo del tamaño de un dedo pulgar diseñado, fabricado e introducido al mercado por vez primera el 1 de abril de 1972 por una compañía virtualmente desconocida en aquella época llamada Intel:




Este circuito integrado bautizado como el 8008 visto por fuera podría confundirse con alguno de los circuitos integrados dentro de los cuales podría haber cuatro funciones NAND, o dos flip-flops J-K, o un comparador binario, o alguna otra función lógica hecha a base de funciones lógicas básicas. Pero si destapamos este circuito integrado para ver su contenido, nos daremos cuenta de que contiene no unas cuantas docenas de transistores o inclusive algunas centenas, sino que contiene miles de transistores (aproximadamente 3 mil 500 transistores):




Esto nos dá ya una idea sobre lo que puede ser capaz de hacer algo que tenga tantas funciones lógicas básicas metidas en un solo "chip".

Originalmente comisionado por la compañía Computer Terminal Corporation para ser usado en sus terminales programables Datapoint 2200, el circuito integrado Intel 8008 fue rechazado porque además de ser entregado fuera de tiempo no cumplía con todas las expectativas de la empresa que lo había ordenado. Aunque este circuito de hecho ya había sido precedido unos cuantos meses antes por otro parecido, el Intel 4004, el 8008 podía procesar una palabra de 8 dígitos binarios (un byte, tal como el byte 10110010) a la vez y podía domiciliar una memoria RAM mucho mayor que el 4004 (el cual podía procesar únicamente palabras de 4 dígitos binarios). Se trataba del primer microprocesador de 8 bits con la capacidad de inducir la construcción de computadoras en torno a una sola unidad de procesamiento central.

Sin saber qué hacer con el lote de circuitos Intel 8008 que ya habían sido fabricados, la empresa decidió ponerlos a la venta al público con la esperanza de que alguien le pudiese encontrar alguna utilidad. Esta no tardaría en llegar cuando un estudiante de post-grado, Jonathan Titus, diseñó un prototipo crudo de computadora para ser usada como un juguete de aprendizaje y entretenimiento, cuya operación estaba basada en torno a ese circuito integrado Intel 8008 hasta entonces completamente desconocido. Como resultado de esta idea, en julio de 1974 la revista Radio-Electronics, una revista especializada para los aficionados a construír sus propios aparatos electrónicos de todo tipo mediante una lista de componentes y un diagrama esquemático, mejor conocidos en la lengua anglosajona como hobbyists, anunció en su portada principal un proyecto interesante para sus lectores bajo el título "Construya la Mark-8: Su Minicomputadora Personal":






Esta era la época en la que para construír este tipo de proyectos los aficionados tenían que procurar por su propia cuenta todos los componente por separado. Las revistas de este tipo lo único que hacían era proporcionarle a sus lectores los diagramas esquemáticos para poder construír el proyecto así como la lista de partes, y ocasionalmente proporcionaban los domicilios de casas comerciales en donde era posible obtener algunos de los componentes. Sin embargo, pese a todo, el proyecto era muy interesante, porque le ofrecía a los lectores de la revista la posibilidad de poder tener en su casa algo que comercialmente sólo se podía comprar ya ensamblado y trabajando de una empresa como IBM a un costo de varios millones de dólares, o en una versión más económica conocida como la minicomputadora de una empresa como Digital Equipment Corporation, la empresa que introdujo las minicomputadoras como una alternativa a las costosísimas computadoras vendidas por IBM. Pero ni las computadoras de la IBM ni las minicomputadoras de la Digital Equipment Corporation usaban algo tan sofisticado como aquél circuito integrado de Intel que centralizaba todas las operaciones de la unidad de procesamiento central (CPU). En esa época, la palabra "microcomputadora" ni siquiera existía, razón por la cual al ser introducida la Mark-8 por la revista Radio-Electronics se le llamó una "minicomputadora personal" y no una microcomputadora personal.

La Mark-8 nunca fue algo que tuviese lo que pudiéramos llamar un gran "éxito comercial", porque como ya se dijo esta era un proyecto para ser construído en casa por aficionados, no era algo que se pudiera ordenar por correo ya contruído a través de un catálogo. Era un diseño puramente en papel que le requiría al constructor buscar las piezas una a la vez hasta encontrarlas. Sin embargo, proporcionó el estímulo para que los editores de otra revista similar consideraran presentarle a los aficionados un proyecto alterno para la construcción de otra minicomputadora casera que, a diferencia de la Mark-8 pudiese ser presentada como un proyecto completo con todas las partes adquiribles de una sola fuente. En el lapso de tiempo en el cual ocurrió esto, desde que en abril de 1972 Intel sacó a la luz por vez primera el Intel 8008, y unos meses antes de que la Mark-8 fuera anunciada en julio de 1974 como un proyecto por la revista Radio-Electronics, la empresa Intel anunció el 1 de abril de 1974 (en el segundo aniversario de la fecha en que anunciara el Intel 8008) una versión mejorada y más poderosa del Intel 8008, el circuito integrado Intel 8080, para la cual se usaba un substrato en cada chip que incorporaba seis mil transistores, casi el doble de los transistores que formaban al Intel 8008, dando inicio a la famosa "ley de Moore" enunciada por el analista Gordon E. Moore que observó que la cantidad de componentes que podían ser colocados dentro de un circuito integrado se doblaba en densidad aproximadamente cada dos años. La nueva "computadora casera" vendida en forma de kit que desplazaría a la Mark-8 sería la materialización de un proyecto de dos "empresarios de garage", Ed Roberts y Forrest M. Mims III, los cuales fundaron la empresa MITS (Micro Instrumentation Telemetry Systems). Para poder ofrecer un "kit" comercial completo para la construcción de la "mincomputadora casera". Roberts, buscando una oferta, eventualmente habló con la misma empresa que había puesto a la venta los circuitos 8008 para la construcción de la Mark-8 logrando que pudieran proveerlo de microprocesadores 8080 cosméticamente imperfectos por $75 cuando ellos se vendían normalmente por $360. Se cuenta que el nombre finalmente decidido para la novel computadora "hecha en casa" vino de Lauren, la hija de 12 años de Les Solomon, la cual sugirió Altair, que era el destino de la nave estelar Enterprise durante un episodio de la popular serie de televisión de ciencia-ficción Star Trek (Viaje a las Estrellas) que ella estaba viendo.

Fue así como en enero de 1975 la revista Popular Electronics, otra revista especializada para los aficionados, anunció en su portada principal su propio proyecto interesante para sus lectores:




Se trataba de un "kit" vendido como un paquete completo de componentes con instrucciones de ensamble, en el que se ofrecía la primera minicomputadora capaz de rivalizar los modelos comerciales que costaban miles de dólares, la "minicomputadora" Altair 8800, basada en el microprocesador Intel 8080.

Pero una microcomputadora como la Altair 8800 que sólo entiende de cosas escritas en lenguaje de máquina por sí sola no es de mucha utilidad fuera de los talleres caseros de los compu-aficionados, ya que hasta para llevar a cabo una simple operación de adición de números primero estos números se tienen que convertir en algo que la microcomputadora pueda entender, se tienen que convertir a la numeración binaria (que fue lo primero que vimos al empezar el capítulo primero este libro), se tienen que convertir al lenguaje de unos y ceros, al lenguaje de "encendido" y "apagado" que la computadora es capaz de comprender, y tras esto el resultado se tiene que convertir nuevamente al sistema decimal, todo lo cual a menos de que se lleve a cabo manualmente paso por paso (lo cual se podía hacer en aquellos tiempos en estas máquinas) requiere de algún programa en lenguaje de máquina en el cual las instrucciones en lenguaje binario (tomadas del conjunto de instrucciones o instruction set del microprocesador) se ejecuten "de corrido" en forma automática. Y para mayor comodidad, es deseable tener algo especial que acepte instrucciones escritas en algo más parecido al lenguaje humano para ser convertidas en instrucciones en lenguaje de máquina . Este "algo" ya no es un circuito integrado (aunque puede serlo). Este algo es un programa traductor. Si las instrucciones dadas a la máquina en lenguaje fuente (comprensible para los humanos) se van convirtiendo una a la vez, entonces el programa se conoce como un interpretador. Y si las instrucciones son convertidas todas juntas de un solo paso de lenguaje accesible al humano al lenguaje de máquina, entonces el programa traductor se conoce como un compilador. Todo esto ya no son las funciones lógicas básicas implementadas como circuitos integrados que constituyen el hardware de la máquina, sus componentes físicos. Esto ya es parte del software, los programas desde los más esenciales hasta los más sofisticados como Linux y Windows.

Sobre la necesidad que se tenía de algo que pudiese darle alguna utilidad práctica a la primera "minicomputadora de hogar", alrededor de este tiempo Ed Roberts recibió una carta de una compañía virtualmente desconocida de Seattle fundada por un universitario que dejaría su carrera trunca, una carta en la cual se le preguntaba si él estaría interesado en la venta de un lenguaje de programación para la máquina Altair, un lenguaje sencillo de aprender y utilizar para cualquier humano, el lenguaje BASIC. Intrigado, Roberts llamó a la compañía y se encontró con que era un hogar privado en el cual nadie había oído hablar cualquier cosa de algo como el BASIC. Y de hecho la carta había sido enviada no desde Seattle sino del área de Boston por dos desconocidos, Bill Gates y Paul Allen, los cuales no tenían ningún BASIC que ofrecer que pudiera trabajar en la Altair. De cualquier modo, cuando ellos llamaron a Roberts él expresó su interés, y los dos comenzaron el trabajo en el interpretador BASIC usando un simulador hecho por ellos mismos para el microprocesador Intel 8080 en una minicomputadora de la Digital Equipment Corporation., la PDP-10. Calculando que tenían 30 días antes que alguien más pudiera hacer el primer movimiento decisivo para este tipo de oferta, y una vez que tuvieron una versión funcionando en el simulador hecho por ellos, Allen voló hasta Albuquerque para entregar el programa Altair BASIC en una cinta de papel (también conocido como MITS 4K BASIC). Milagrosamente, el interpretador BASIC funcionó la primera vez que se ejecutó (algo raro en el mundo de la programación), y posteriormente Gates y Allen fundarían una empresa conocida como Microsoft.

La Altair 8800 no tardó en evolucionar hacia un gabinete más presentable con el cual sería mejor conocida a través del mundo entero:





El éxito rotundo estimuló a la competencia que ya se anticipaba venir, y en lo que se puede considerar como el inicio de "la guerra de los clones", tan solo seis meses después hizo su aparición en agosto de 1975 la computadora IMSAI 8080:




Para atender la creciente demanda de información por parte de técnicos, compu-aficionados y muchos curiosos sobre esta nueva tendencia tecnológica así como para proporcionar ideas de construcción para nuevos proyectos en torno a la cantidad creciente de microprocesadores de varios fabricantes que empezaron a inundar el mercado haciéndole competencia a Intel, en septiembre de 1975 apareció la revista Byte:




en cuya primera edición esta revista, que con sus instructivos artículos, proyectos y editoriales se convertiría en una obra clásica, se refirió a la micro-computadora como "el juguete más grande del mundo". Y es que en ese entonces eso es lo que era, un juguete.

En ese año crucial de 1975 en el cual se definieron muchas cosas, Intel empezó a trabajar en el diseño de un microprocesador que fuese capaz de manejar palabras binarias de 16 dígitos en lugar de los bytes de tan solo ocho dígitos que el entonces muy limitado procesador 8080 era capaz de manejar. Este trabajo fructificó en el microprocesador Intel 8086, presentado al público el 8 de junio de 1978, el cual incluía ya 29 mil transistores. Resulta instructivo observar el diagrama operacional de lo que contenía por dentro este microprocesador (la foto puede ser ampliada para dar mejores detalles):




A diferencia del Intel 8008 que sólo era capaz de manejar un byte a la vez, el Intel 8086 era ya capaz de manejar una palabra binaria formada por dos bytes, una palabra binaria de 16 bits (como la palabra 01101101 10110110, formada por lo que hoy se conoce como un byte alto y un byte bajo), lo cual permitió acomodar un conjunto mayor de instrucciones en lenguaje de máquina así como un aumento dramático en la velocidad de procesamiento. Sin embargo, por razones de costos, el tiempo para un microprocesador comercial capaz de manejar dos bytes a la vez aún no había llegado, y Intel tuvo que producir un diseño capaz de implementar el conjunto de instrucciones del microprocesador 8080 pero manejando únicamente un byte a la vez, el microprocesador Intel 8088:




que era un circuito integrado de 40 pins, también de 29 mil transistores, presentado públicamente el 1 de junio de 1979, justo un año después de que fuese presentado el 8086.

Aunque eran los tiempos (¡y no están tan lejanos!) en los que ni remotamente existía algo que pudiera parecerse a un procesador de palabras o una hoja de cálculo, el éxito obtenido por estas máquinas convenció a una empresa poderosa de introducir una versión casera de computadora en la cual con una mayor integración de componentes pudiese ser posible ofrecerle a los usuarios paquetes sofisticados de programación, algo que pudiese ser de interés para el público en general y no únicamente para experimentadores aficionados. Esta empresa era el líder mundial de las máquinas de cómputo, la IBM, la cual puso todo su prestigio detrás de este proyecto que culminó con la introducción el 12 de agosto de 1981 de la computadora personal IBM PC XT:




la cual por vez primera estandarizó sobre una plataforma convencional tanto la electrónica usada dentro de la máquina como las unidades periféricas y los lenguajes de programación. Para esta computadora casera, el equipo de diseño de la IBM seleccionó como su componente principal al sucesor del mismo microprocesador que ya había venido evolucionando desde que fue utilizado por sus progenitoras la Altair 8800 y la IMSAI 8080 y que por razones de costo actuó como reemplazo de su más potente progenitor 8086: el Intel 8088. Este es precisamente el circuito integrado seleccionado para construír la computadora IBM XT, la primera computadora comercial totalmente ensamblada y con el respaldo de IBM para los programas de aplicación que podrían eventualmente ser utilizados por el público en general para esas computadoras. Precisamente para esta computadora aparecerían el primer procesador de palabras de amplio uso comercial, Wordstar (el predecesor de Microsoft Word), y la primera "hoja de trabajo" Lotus 1-2-3 (predecesora de Excel). Y para el programa "de arranque" con el cual se echase a andar la máquina a su inicio de modo que el usuario pudiese comunicarse con ella a través del teclado, el monitor y el impresor, el programa que hoy conocemos como sistema operativo, IBM seleccionó a la incipiente empresa Microsoft que ya había proporcionado a la computadora Altair su primer lenguaje interpretado, el Altair BASIC.

El resto es historia. La revolución informática de la humanidad había empezado con los sucesos anteriormente señalados. Y es una revolución que aún no termina y la cual aún no sabemos ni estamos seguros exactamente de adónde nos va a llevar. En retrospectiva, es interesante lo que se puede lograr con tan sólo tres funciones lógicas básicas, el OR, el AND y el NOT. Aunque los lectores crean que lo que se ha discutido en este libro no tiene nada que ver con ellos, de hecho está más cerca de lo que se imaginan: cada vez que encienden una computadora o que se conectan a Internet.

Para quienes quieran obtener más datos sobre los microprocesadores "abuelos" que iniciaron en los años setenta la revolución tecnológica-informática que hoy estamos viviendo, existen varios enlaces en los cuales se puede encontrar mayor información disponible.

Empezaremos con el microprocesador 6800:




introducido en 1974 por una filial de la empresa Motorola con la intención de acaparar parte del creciente y lucrativo mercado del que estaba comenzando a gozar la creciente empresa Intel, del cual se puede consultar la Wikipedia para obtener más información sobre este microprocesador en el siguiente domicilio:

http://en.wikipedia.org/wiki/Motorola_6800

Cinco años después de que Motorola introdujera el microprocesador 6800, la empresa Freescale Semiconductor, sucesora de la filial de Motorola que creó el 6800, introdujo en 1979 el microprocesador 68000, del cual podemos obtener más datos en:

http://en.wikipedia.org/wiki/Motorola_68000

Este último microprocesador 68000 es de enorme importancia histórica, ya que fue precisamente el microprocesador en torno al cual se centró desde sus inicios la construcción de las famosas computadoras Apple, una empresa creada por Steve Jobs y Steve Wozniak, haciéndole competencia a las computadoras personales caseras PC fabricadas por IBM así como los "clones" de estas computadoras IBM fabricados por una creciente ola de copiadores. A continuación tenemos una fotografía de este microprocesador, en cuyo texto grabado podemos apreciar encima del identificador 68000 la palabra "Apple":




Además de los microprocesadores de Intel y Motorola, otro microprocesador "abuelo" de gran importancia que introdujo algunas innovaciones importantes fue el microprocesador Z80:




de la empresa Zilog, cuya relación de terminales pins mostrando la función de cada "pin" es la siguiente:




y el cual fue utilizado ampliamente en la popular computadora TRS-80 de la empresa Tandy, distribuída por la cadena de tiendas Radio Shack, y sobre el cual podemos obtener mayores datos en el siguiente enlace:

http://es.wikipedia.org/wiki/Zilog_Z80

No podemos olvidarnos del microprocesador 6502 de 8 bits, desarrollado y comercializado por la empresa MOS Technology, el cual por estar basado en la tecnología MOS marcó la pauta a seguir para muchos de los circuitos integrados con bajo consumo de energía que usamos hoy en día:

http://es.wikipedia.org/wiki/MOS_6502

Pese a su aparente simpleza, este microprocesador mostraba una sofisticación apreciable, como podemos verlo en la siguiente fotografía del "wafer" (pastilla) cuyo tamaño no es mayor que la yema de un dedo índice:




Para quienes estén interesados en aprender algo acerca del diseño de estos circuitos digitales con integración a gran escala de muchos componentes en un mismo paquete miniaturizado, como el que tenemos en esta última fotografía, existe un programa conocido como Magic, el cual fue creado originalmente en la universidad de Berkeley, y el cual se puede descargar gratuitamente de Internet del siguiente domicilio:

http://opencircuitdesign.com/magic/

Este programa permite poder diseñar circuitos digitales integrados con un alto nivel de miniaturización, de calidad VLSI (Very Large Scale Integration), incorporando muchas compuertas lógicas.