lunes, 9 de noviembre de 2009

Multithreading en Arquitecturas Gráficas

El Multithreading (o multihilo en español) es una forma de programar, y por consiguiente de estructurar el hardware del procesador para la compatibilidad, en la cual los hilos de ejecución comparten el mismo estado de memoria. Al separar las tareas en hilos de ejecución diferentes, el procesador puede llevar a cabo muchos más al mismo tiempo y, por lo tanto, aumentando la productividad. Evidentemente no es fácil de hacer, hay que tener en cuenta que se deben programar hilos teniendo en cuenta su tiempo de ejecución.
El Multithreading surgió en las CPU y hasta hace poco no se encontraban en las arquitecturas gráficas. A partir de 2008 surgen tarjetas gráficas con arquitecturas con varios núcleos, en los cuales se puede aprovechar el multithreading.
En clase hemos visto la serie 9 de las tarjetas gráficas de Nvidia. Las arquitecturas de esta serie de tarjetas gráficas incluyen una arquitectura multinúcleo. Pero no solo se trabaja de esta manera en las tarjetas gráficas, por ejemplo la tecnología Hybrid SLI de Nvidia. Esta tecnología en los portátiles trabaja con una tarjeta gráfica integrada en la placa base y otra no integrada, haciendo que las dos trabajen conjuntamente.
Un ejemplo más actual de este modo de trabajo lo tenemos en la nueva tecnología de Nvidia Fermi (vista en una entrada anterior del blog). Esta arquitectura tiene un controlador llamado GigaThread que se encarga exclusivamente de poder trabajar con el multithreading.

No hay comentarios:

Publicar un comentario