Disponible la versión 6 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Tecnología del PC

[Home]  [Inicio]  [Índice]


3 El procesador

§1  Presentación

En realidad "procesador" es un término relativamente moderno. Se refiere a lo que en los grandes ordenadores de antaño se conocía como Unidad Central de Proceso UCP (CPU "Central Processin Unit" en la literatura inglesa).  Comenzó siendo del tamaño de un armario, posteriormente se redujo al de una gran caja, después se construyó en una placa de unas 15 x 15 pulgadas.  Finalmente se construyó en un solo circuito integrado encapsulado en un "chip" que se inserta en un zócalo de la placa-base [0].

En los primeros tiempos de la informática personal, que podemos suponer se inicia con la introducción del PC ("Personal Computer") por IBM a mediados de 1981 [1],  el mercado de microprocesadores para el PC estaba copado por Intel, que arrancando con el 8088 [2], un modesto procesador de 16 bits a 4.77 MHz de velocidad de reloj ( H2), fue sufriendo sucesivas mejoras;  principalmente en lo que respecta a la velocidad (que en el 2001 ha alcanzado más de 1 GHz. para equipos comerciales); capacidad de procesamiento en paralelo; capacidad de los registros; cache interna y facilidades hardware para multiprogramación.

En la imágen adjunta sendas vistas, superior e inferior, de un procesador Intel 80386 de 16 MHz junto con el primitivo 8088.

Nota:  En la actualidad existen procesadores fabricados por otras compañías (IBM, AMD, Cyrix, Etc.) que son compatibles a nivel ensamblador con el juego de instrucciones Intel, lo que permite que no todos los PCs sean necesariamente "Intel inside".

§2  Galería de procesadores "Ilustres"

El cuadro adjunto (referido exclusivamente a los productos Intel), comprende un resumen de urgencia de la historia de los procesadores utilizados en la informática personal.

Modelo año Registros internos (bits) bus de datos (bits) (1) Bus de direcc. (bits) Memoria (4) Frecuencia externa (2) Frecuencia interna máxima (3) Modo
8088 1979 16 8 20 1 MB. 4.77 MHz 14 MHz. Real
80286 1982 16 16 24 16 MB.   12.5 MHz. Real/Prot
80386 1985 32 32 32 4 GB.   20 MHz. Protegido
80486 1989 32 32 32 4 GB.   25 MHz. Protegido
Pentium 1993 32 64   4 GB.   60 MHz. Protegido
Pentium-pro 1995 32 64   64 GB. 66 MHz 200 MHz Protegido
Pentium II 1997 32 64   64 GB. 66/100 MHz 266 MHz Protegido
Pentium III 1999 32/128 64   64 GB.   550 MHz Protegido
Pentium 4 2001 32/128 64   64 GB. 400 MHz. 2 GHz Protegido
Pentium M 2003              
?             ?  

Nota:  Por razones eminentemente comerciales, casi todos los modelos aparecieron en diversas versiones, que se diferenciaban en la frecuencia interna, tamaño de la caché, etc.

(1) Se refiere al bus "externo", que utiliza el procesador para comunicar con el exterior.  Internamente el procesador dispone de buses que son de 2 a 4 veces esta anchura.

(2)  Los valores indicados para las frecuencias externas son típicos de los modelos de la época (por tanto aproximados)

(3)  Los valores de frecuencia interna máxima son los correspondientes al momento de la aparición del modelo.

(4)  Se refiere a la máxima memoria accesible directamente.

  Es significativo señalar que todos son compatibles hacia atrás con sus predecesores, de forma que pueden ejecutar el código objeto escrito para el 8086, el primer ejemplar de esta prolífica saga aparecido en 1978 (no incluido en el cuadro).

En la tabla adjunta se muestran las características principales de los procesadores más utilizados en el 2004.

 
Modelo  Transistores Velocidad del núcleo Caché L2 Velocidad bus frontal
Celeron 7,500,000 1.06 GHz - 2 GHz 256 KB 133 MHz y 400 MHz
Pentium II 7,500,000 233 MHz - 450 MHz 512 KB 100 MHz
Pentium III 9,500,000 450 MHz - 1 GHz 256 KB 133 MHz
Pentium III Xeon 28,100,000 500 MHz - 1 GHz 256 KB - 2 MB 100 MHz
Pentium 4 55,000,000 1.4 GHz - 3.4 GHz 256 KB 800 MHz
K6-II 9,300,000 500 MHz - 550 MHz N/A 100 MHz
K6-III 21,300,000 400 MHz - 450 MHz 256 KB 100 MHz
Athlon (K7) 22,000,000 850 MHz - 1.2 GHz 256 KB 200 MHz y 266 MHz
Athlon XP 37,500,000 1.67 GHz 384 KB 266 MHz
Duron N/A 700-800 MHz 64 KB 200 MHz
PowerPC G3 6,500,000 233 MHz - 333 MHz 512 KB, 1 MB 100 MHz
PowerPC G4 10,500,000 400 MHz - 800 MHz 1 MB 100 MHz
Athlon 64 105,900,000 800 MHz 1 MB 1.6 GHz
§3 Evolución

En esta mini-historia, podemos destacar varios hitos importantes:

§3.1  Soporte para memoria virtual

La introducción en 1982 del procesador Intel 80286 marcó un hito importante por varios motivos:  Por primera vez el procesador podía acceder más rápidamente a sus propios registros que a la RAM más rápida existente; desde entonces esta ventaja no ha hecho sino aumentar en favor del procesador.

Desde el punto de vista del software, el verdadero avance fue la implementación en el micro de un dispositivo que permitía el manejo de memoria virtual ( H5a).  Hasta entonces, el manejo de este tipo de memoria había que realizarlo a nivel del Sistema Operativo, pero el 286 permitía ya manejarlo de forma nativa mediante el procesador [3], con las consiguientes mejoras del rendimiento y la seguridad.

§3.2  Introducción del coprocesador matemático integrado

Los procesadores del tipo 8086 solo podían realizar operaciones aritméticas con números enteros.  Para los fraccionarios debían utilizar complicados artificios, por lo que desde el principio se crearon procesadores específicos para operaciones aritméticas con números fraccionarios.

Conocidos como coprocesadores de punto flotante o coprocesadores matemáticos, eran una opción instalable en un zócalo vacío preparado al efecto en la placa-base, enlazado mediante líneas especiales con el procesador principal.  Estos procesadores aligeraban grandemente los cálculos en las aplicaciones que eran capaces de sacar partido de su existencia, y no solo realizaban operaciones de números fraccionarios (de coma flotante 2.2.4a), también operaciones como raíz cuadrada, e implementanban funciones trascendentes como cálculo del seno, coseno, tangente, arcotangente, logaritmos y exponenciación.

A partir de la introducción del 80486, Intel incorporó el coprocesador matemático junto con el principal, con lo que su existencia dejó de ser opcional, convirtiéndose en estándar.

§3.3  Capacidad de procesar varias instrucciones en paralelo

La ejecución de cada instrucción ensamblador no se realiza en un solo ciclo de reloj.  Cada instrucción puede contener varias microinstrucciones, de forma que en general el rendimiento del procesador no equivale a una instrucción en cada ciclo.  Una forma de aumentar la eficiencia es procesar varias instrucciones en paralelo, de forma que, en la medida de lo posible, varias instrucciones se encuentran en diversas fases de ejecución simultanea de su microcódigo.  Utilizando un número conveniente de estas vías de ejecución paralela se consiguen rendimientos que actualmente han excedido la relación 1:1, de forma que la arquitectura súper escalar [4] del Pentium Pro proporciona rendimientos del orden de tres instrucciones por ciclo de reloj.

El primero en implementar esta arquitectura en el PC fue el 80386 de Intel, que incluye seis de estas vías de ejecución:

  1. La unidad de interfaz del bus ("Bus Interface Unit") accede a memoria y a otros dispositivos de E/S.
  2. La unidad de precarga de instrucciones ("Code Prefetch Unit") recibe objetos desde la unidad de bus y la sitúa en una cola de 16 bytes.
  3. La unidad de decodificación de instrucciones ("Instruction Decode Unit") decodifica el código objeto recibido en la unidad de precarga y lo traduce a microcódigo.
  4. La unidad de ejecución ("Execution Unit") ejecuta las instrucciones del microcódigo.
  5. La unidad de segmento ("Segment Unit") traduce direcciones lógicas en direcciones absolutas, y realiza comprobaciones de protección.
  6. La unidad de paginación ("Paging Unit") traduce las direcciones absolutas en direcciones físicas; realiza comprobaciones de protección de página, y dispone de una cache con información de las 32 últimas páginas accedidas.
§3.4  Introducción de soporte para sistemas multiporcesador

Esta capacidad, originaria del mundo de los mainframe, se introdujo en el procesador Intel 80486, permitiendo así el desarrollo de auténticos sistemas multiproceso en la informática personal.  Este procesador también incluyó por primera vez dispositivos de ahorro de energía, incluyendo que el procesador redujese su velocidad, o incluso suspendiese la ejecución manteniendo su estatus, de forma que pudiera ser reiniciado en el mismo punto de la "hibernación".

§3.5  Movilidad y conectividad

En el primer trimestre del 2003 Intel materializa bajo una sola denominación las tendencias más significativas del momento en el mundo de la computación:  movilidad y conectividad (la palabra de moda es "Wireless").  A este efecto anuncia Centrino; más que un procesador es un compendio de tecnología móvil con el que el gigante del hardware se posiciona en el cada vez más importante segmento de los dispositivos móviles [5].  Bajo estas siglas se integran un procesador Pentium M, la familia de chipset Intel 855 y las funciones de red inalámbrica del dispositivo Intel Pro/Wireless 2100 Network Connection para el estándar 802.11.

§3.6  Multinúcleo

A lo largo de 2005 se comienzan a popularizar los procesadores de doble núcleo en los ordenadores personales.  Parece que, una vez agotadas las posibilidades de procesamiento de instrucciones en paralelo en un solo procesador ("multi-threading"), los pasos se orientan hacia los procesadores de doble núcleo, en realidad dos procesadores en un mismo chip, cada uno con su propia cache, con lo que el multiproceso cobra un significado real en las máquinas que los montan ("Hyper-threading"").  Los equipos personales, incluso portátiles tienen ahora capacidades de proceso que hasta hace poco estaban restringidas a servidores de gama alta con dos procesadores. Por ejemplo, máquinas Intel con dos procesadores Xeon.

Nota: no confundir una máquina con dos o más procesadores independientes (multiprocesador) con un procesador de doble núcleo. En general, una máquina con dos procesadores es más rápida que una de doble núcleo, pero en ambos casos, para sacar provecho de sus posibilidades, es necesario que el Sistema Operativo sea capaz de reconocer el "hyperi-threading", y que el software de aplicación también sea capaz de usar procesos multi-hebra SMT ("Simultaneous Multi-threading Technology").  En caso contrario, será detectado y utilizado un solo núcleo [6].

En este año los equipos personales de gama alta montan procesadores de doble nucleo. Por ejemplo, Intel Pentium D, con discos SATA; grabador DVD+/-RW doble capa, y distintas configuraciones de tarjetas gráficas de altas prestaciones.

En Noviembre de 2006 Intel presenta en Ginebra, Suiza, su primer procesador con cuatro núcleos (“quad-core”) en un mismo chip.  La prensa especializada destaca que su capacidad multiplica por miles de millones la del primero que salió al mercado en 1971.  El nuevo procesador contiene 2.000 Millones de transistores frente a 2.300 del primero y su frecuencia de reloj es de 2.66 GHerzios, frente a los 740 KHerzios del anterior. Además presentan la ventaja de consumir un 50% menos que la serie precedente.  Los portavoces de Intel recuerdan que si la industria del automóvil se hubiese desarrollado tan rápido como la electrónica digital, a la fecha (2006) un automóvil podría atravesar Estados Unidos de costa a costa en menos de 10 segundos.  Además señalan que, en vista del éxito alcanzado por los de doble núcleo, sus planes incluyen estar fabricando procesadores de 80 núcleos en un plazo de 5 años.

  Inicio.


[0]  Parece ser que los primeros en integrar todos los elementos de una UCP en un solo chip fueron los ingenieros de Texas Instruments, que en Junio de 1971 anunció la primera "CPU on a chip".  Se trataba de un desarrollo hecho por encargo de una empresa denominada Computer Terminal Corporation (que luego sería Datapoint).  El primer microprocesador comercial, el 4004, una UCP de 4 bits fue desarrollado por Intel en 1970; inicialmente fue también un desarrollo por encargo para una compañía Japonesa de calculadoras (Busicom), aunque más tarde, en Noviembre de 1971, fue comercializado como MCS-4 ("Microcomputer System 4-bit").

[1]  En realidad el asunto había empezado un poco antes, aunque en círculos restringidos, cuando a mediados de los 70 algunos fanáticos de la electrónica comenzaron a hacer desarrollos caseros sobre un kit del tipo "Hágalo Usted mismo" fabricado por una empresa llamada Micro Instrumentation Telemetry Systems, que utilizando un microprocesador Intel 8080 comercializó el ahora legendario Altair.  Rápidamente siguieron los Tandy de Charles Tandy, y los Apple de Wozniak y Jobs, que sin darse cuenta escribieron páginas imborrables de la historia de la tecnología.

[2]  El procesador Intel 8088, elegido por IBM para su primer modelo de PC era una versión "simplificada" de un procesador más potente, el 8086, que tenía registros y bus de datos de 16 bits.  Sin embargo, por razones de simplificación y economía se eligió el 8088 con registros de 16 bits, pero bus de datos de 8 (coincidente con el bus de datos la placa-base que era también de 8 bits).  No solo el ancho del bus, otros muchos detalles de diseño (que lo hacían parecer a un jovencito Frankestein) han hecho especular largamente acerca de que nadie en IBM parecía tener mucha fe en el futuro del recién nacido.

[3] Este micro tenía un bus de datos de 24 bits, que le permitía acceder directamente más de 16 MB de memoria física, y hasta 1 GB de memoria virtual.  Implementaba también un mecanismo de multitarea, denominado "modo protegido", que le permitía conmutar entre varias aplicaciones, cada una de las cuales parecía correr en "modo real" (como si estuviese en un 8088), pero el sistema tenía algunas deficiencias, que fueron subsanadas en el 80386.

[4]  El término "súper escalar" significa que existen vías de procesamiento paralelo en el procesador.  Por ejemplo, se dice que el Pentium Pro utiliza una arquitectura súper escalar de tres vías, lo que supone que su rendimiento equivale tres instrucciones por cada ciclo de reloj.  Esta arquitectura también se conoce como "Pipeline", y ha sido comparada con las cadena de montaje de automóviles, en las que en la misma cadena existen unidades (aquí serían instrucciones) con diverso grado de terminación.  El resultado es un mayor número de unidades terminadas que si se esperase a terminar completamente un automóvil antes de iniciar la construcción del siguiente.

[5]  En este año (2003) se estima que para el 2006 habrá en Europa 13 millones de portátiles, y la tecnología inalámbrica crece de forma imparable.

[6]  Puede obtener abundante y puntual información sobre esta tecnología en el sitio de Intel. Puede empezar por un magnífico artículo que describe esta tecnología; los beneficios que aporta, y como preparar el código para poder beneficiarse de ella: "Advanced Multi-Threaded Programming", de Intel Software Network  www.devx.com/