Para mover a mucha gente en un edificio, podemos usar un ascensor muy rápido, hacerlo más grande, o poner varios ascensores. De forma similar, para conseguir una gran capacidad de proceso, podemos incrementar la velocidad del reloj interno, ampliar el tamaño de los datos a tratar, o poner más procesadores a trabajar. Tradicionalmente se ha optado por aumentar la velocidad de frecuencia del reloj, periódicamente se duplica el número de bits capaces de ser procesados de un golpe y a vez se han utilizado varios procesadores en un único equipo.
Hoy la arquitectura X86 de los PC se
encuentra con dificultad para seguir aumentando la velocidad del
procesador, por lo que se ha optado por potenciar los otros dos
factores, pasar de 32 a 64 bits y aumentar el número de
procesadores. La semana pasada comentamos la aparición de
procesadores
a 64 bits, en esta hablamos de una nueva tecnología, los
procesadores de varios núcleos o multicore.
Procesadores multicore, huevos con dos yemas
Como ocurre con los 64 bits, el utilizar varios procesadores en un equipo no es nuevo, desde hace tiempo existen placas madre que permiten utilizar varios procesadores, normalmente dos o cuatro, en un único equipo, así como se puede montar ordenadores en cluster, de modo que todos actúen como si fueran un único ordenado, lo que resulta novedoso es que ahora los procesadores estén montados en un único chip. El motivo es principalmente económico, compartir varios elementos reduce bastante el precio final. Unos elementos comunes son de gran complejidad técnica, (y coste), como las cachés de segundo nivel, otros menor importancia como la carcasa exterior, pero en conjunto, como si se tratara de huevos con dos yemas, resulta más barato producir un ordenador con dos cores, que con dos procesadores independientes en una misma placa base. Aparte, se produce ahorro de tiempo de proceso, pues la información entre los cores viaja en el bus interno, siempre más rápido que el bus de la placa base.
Reparto de las tareas
Desde los inicios del Pc, el ordenador es multitarea, es decir, simula efectuar diversas tareas al mismo tiempo. Si accedemos al gestor de tareas, veremos que no solo están activas las aplicaciones que hemos abierto voluntariamente, sino otras que lanza por si mismo el ordenador, por ser imprescindibles para su funcionamiento, o porque así lo indicamos en el proceso de inicio, como la conexión a Internet, programa antivirus, firewere etc. Tradicionalmente todas estas tareas operan consecutivamente, lo que obliga a que el avance de una, suponga parar las demás y solo la alta velocidad del procesador hace que estas paradas sean inapreciables.
Con procesadores multicore, se reparten las diferentes tareas entre los cores, de modo que varias aplicaciones avanzan a la vez, permaneciendo menos tiempo paradas. La tarea de repartir los programas entre los cores la maneja el sistema operativo, por lo que al no depender de las aplicaciones, cualquier programa, sea antiguo o actual, funciona sin problemas en un core, que a los efectos es un procesador completo. Naturalmente, hoy estos cores tienen incorporada la tecnología Hyper-Threading con lo que en los casos más favorables, un procesador duocore podrá gestionar en un solo paso de reloj lo mismo que un ordenador tradicional hacía en cuatro pasos consecutivos.
Multihilo, multithread
Si el software en el que están escritas las aplicaciones lo permite, los procesos pueden bifurcarse en ciertos puntos entre varios caminos. Cualquier programa contiene multitud de bucles que recorren repetitivamente un grupo de líneas de código, cada vez con diferentes datos, en tanto lo indique una cláusula del tipo IF THEN (Si , entonces ) , WIHLE (Mientras que .), REPEAT (repetir), DO TO (hacer hasta ), etcétera. Si el lenguaje de programación lo permite, cada bucle pueden dividirse en distintos threads (hilos), que se procesan por separado en diferentes cores. Por ejemplo en una facturación, cada factura puede calcularse por separado en núcleos diferentes. Esto es lo que se denomina progamación multihilo o multithread. Si el software lo permite, un procesador multicore, hace avanzar el proceso mucho más rápido al trocearlo en varios más pequeños calculados simultáneamente.
Por qué es menos caluroso
¿Por qué usar un procesador de 64 bits y multicore, produce menos calor que un procesador normal de rendimiento semejante, al fin y al cabo el número de operaciones a efectuar será igual con un método u otro? En efecto, la energía generada por el puro cómputo es similar, pero hay ahorros apreciables de energía por otros conceptos.
Por ejemplo, los 64 bits permiten ampliar la memoria RAM desde el actual máximo de 4 gigabit, a 16 exabits. Pasarán años hasta que el ordenador tenga una RAM que se mida en exabits, pero magnitudes entre 10 y 100 gigas están a la vuelta de la esquina, lo que permite utilizar caches de datos de considerable tamaño que reducen la necesidad de acceder al disco duro para leer o escribir datos, con ello se logra un fuerte ahorro de energía disipada por el motor de arrastre del disco duro, a la vez que mejora la velocidad de proceso, por otra parte al elaborar datos mas grandes, algunos procesos pueden tratar en un solo paso el doble de información que anteriormente, con lo que se ahorran pasos de proceso, aun que no sean ni mucho menos la mitad de ellos.
Con un único procesador, una aplicación exigente, pone a trabajar a tope al procesador, generando gran cantidad de calor, si existen diversos cores, solo trabajará al máximo el core que soporte esa aplicación, los otros core irán más desahogado, lo que en conjunto hacen que se genere menor energía. Incluso si una aplicación multithred coloca periódicamente a pleno rendimiento a todos los core a la vez, ocurrirá de forma intermitente, pudiendo bajar la temperatura en el intermedio, además una nueva técnica ya utilizada en ordenadores portátiles, la SpeedStep, permite variar la frecuencia de trabajo desde unos 600 Mhz hasta su frecuencia nominal, (es lo contrario del owerclooking), de modo que al subir la temperatura, se reduce la velocidad del reloj, procurando mantener estable la temperatura, sin que el rendimiento se resienta en exceso, pues todos los cores colaboran en hacer avanzar el trabajo a la vez
Planes de Intel
Intel tiene en este momento para portátiles, el segmento de mayor crecimiento en ventas y donde el problema del calor disipado es crítico, dos cores diferentes el Banias con 1 Mb de caché, y su evolución, Dothan de 2 Mb de caché, estos cores trabajan a menos voltaje y baja velocidad, Dothan, con tecnología de 90 nanómetros, alcanza solo 2 Ghz lo que reducen el calor desprendido del core, su consumo varía de los 11 a 22 W. Actualmente está en proceso de diseño un core de nueva concepción, el Merom con 4 MB. En el área de equipos de sobremesa, para el próximo año hay previsto procesadores duocore de la serie Itanium. Para un futuro mas lejano, el 2007 o 2008 entrará la nueva generación de cores, los Gilo, y los procesadores que los utilicen serán multicores con cuatro y ocho núcleos por procesador.
Planes de AMD
AMD , pionera con los procesadores a 64 bits, parece haber quedado rezagada en este campo. Su gama de procesadores duales se centra en el mercado de los servidores de red, pues no parece creer que esta tecnología interese de momento al mercado doméstico. Con todo ha introducido un procesador dualcore con tecnología de 90 nanometros en el mercado de sobremesa, su nombre comercial es el Athlon 64 X2 Toledo. Para los portátiles aún no tiene nada previsto en este campo.
¿Necesitaremos más y más capacidad de cálculo?
Parece claro que la lucha por ofertar equipos cada vez más potente pasa por fabricar equipos a 64 bits con varios núcleos, es previsible que el número de núcleos vaya duplicándose poco a poco, sin que haya claro un límite en esta opción. Solo un cambio radical un el uso de Internet, que hoy comenzamos a vislumbrar frenará este proceso y ese la progresiva migración desde el uso de aplicaciones instaladas en el PC del usuario, a acceder a aplicaciones situadas en servidores de Internet.
Si como parece, en el futuro, al mejorar la velocidad de Internet, este se transforma en el gran ordenador, imperará una metodología cliente/servidor, donde el peso del proceso se realizará en el servidor, lejos del PC, quedando este de cliente, sin más misión que visualizar los resultados que le llegan. En ese caso, la necesidad de procesamiento se limitará a la necesaria para una presentación ágil de los datos, incluso multimedia y 3D, pero cubierta esa necesidad, el escenario de la lucha por ganar el mercado se trasladará del aumento de capacidad de proceso, a otros objetivos, como puede ser el de la progresiva reducción del peso y tamaño de los equipos o el mejorar el tiempo de autonomía de un equipo desenchufado.
La semana que viene hablaremos de esta nueva tendencia.


Su pagina me parece muy interesante
Sigan trabajando
Es realmente bueno el trabajo que estan desmpeñando los felicito, adelante!
Muchas gracias por su información muy buen contenido, justo para tomar decisiones.
Saludos
Excelente artículo, bien documentado y sobre todo actualizado !
Congratulations...
Felicidades, un articulo bastante interesante y nutritivo ....
Excelente visión del futuro con miradas al pasado. Cuando digo futuro entiendase como el futuro actual, pues ya estamos viviendo esta realidad. Y cuando miramos el pasado vemos como se repite la hisotria con nuevas e interesantes variables como la de la tecnologia de 64 bits, pues aun hay muchos que solo miden las actuales computadoras por la velocidad del reloj. Hace solo unos dias me compre un PC con un Athlon 64 AM2 4000X2 DUAL CORE, de AMD por supuesto, y cuando se lo conte a un amigo me pregunto: eso seria un pentium a que velocidad?. Justamente a el le hare llegar este articulo