Tuesday, April 05, 2011
Organizacion de memoria en arquitecturas multicore: Conclusion.
Sunday, March 13, 2011
e1000 driver para TORO
Aquí les pongo un screen de la detección y lectura de la MAC, por ahora es lo que tengo en el SVN.
Saludos!.
Matias E. Vara
www.torokernel.org
Saturday, March 05, 2011
Organizacion de memoria en arquitecturas multicore II
Las arquitecturas de memoria no uniforme (NUMA por sus siglas en inglés) utilizan (como en SMP) un único espacio de direcciones, pero en este caso cada procesador es dueño de una parte de la memoria, a la cual puede acceder más rápido. Utiliza pasaje de mensajes escondido para el acceso a memoria remota.
En un entorno NUMA el programador puede acceder de forma transparente a cualquier posición de memoria y es el hardware quien crea esta abstracción.
Unas de las pioneras en tecnología NUMA fue la empresa Sequent Computer Systems, quien introdujo los sistemas de multiprocesamiento y diseño de memoria NUMA a comienzo de los ‘90. Luego fue adquirida por IBM y estos desarrollos fueron implementados en los procesadores Power.
La arquitectura análoga a la NUMA desarrollada por IBM fue denominada SE (Shared Everything por sus siglas en ingles). En la actualidad esta tecnología se encuentra integrada en los procesadores Power6, los cuales la heredaron de los Power4.
La tecnología desarrollada por Intel se denomina QuickPath Interconnect, incluye un controlador de memoria en el chipset y permite compartir toda la memoria física entre los procesadores de forma transparente para el Sistema Operativo. Cada procesador posee un enlace punto a punto de alta velocidad.
AMD implementó el sistema de acceso a memoria no uniforme (NUMA) que permite la conexión entre procesadores a través de enlaces de alta velocidad denominados Hypertransport Links. En este diseño cada procesador posee su propio controlador de memoria y su propia memoria local. Cuando el procesador accede a la memoria local, la latencia es baja; mientras que si intenta acceder a memoria remota (memoria alocada en otro procesador) la latencia es alta.
Cada uno de los procesadores está conectado entre sí a través de un enlace coherente de Hypertransport de alta velocidad. Cada procesador posee un enlace bidireccional no coherente para dispositivos de entrada-salida y dos enlaces bidireccionales coherentes, que permiten la conexión entre los procesadores.
Los accesos punto a punto permiten acceder a ciertas regiones de memoria de forma más rápida y penaliza el acceso a otras. Por ejemplo en una PC con 2 GB de memoria y dos procesadores, se podría privilegiar el acceso al primer GB para un procesador y el acceso al segundo GB para el otro procesador. Cada procesador tendría su propio controlador de acceso a memoria y ya no sería requerido un bus compartido por ambos procesadores.
Cada CPU en un sistema NUMA pueden acceder a dos tipos de memoria: memoria local y memoria remota. La memoria local es aquella que se encuentra en el mismo nodo que la CPU, que se accede con baja latencia, y la memoria remota se encuentra en otro nodo, en otra CPU. La CPU debería acceder a través del nodo de interconexión para la memoria remota, el cual presentaría una alta latencia.
Matias E. Vara
www.torokernel.org

Saturday, January 15, 2011
Organizacion de memoria en arquitecturas multicore
Organizacion de memoria en arquitecturas multicore
El sistema más común de multiprocesamiento utilizado en la actualidad es el de acceso uniforme a memoria (SMP por sus siglas en inglés).
En esta arquitectura cada procesador puede acceder a cualquier región de memoria independiente uno del otro. El acceso se realiza por un único bus compartido, o sea que cada procesador compite con el resto para escribir o leer. Los accesos se realizan de a uno por vez –es decir- que solo un procesador en un instante dado, puede utilizar al bus. Todos los procesadores son similares y tienen capacidades equivalentes. Todos los procesadores tienen el mismo tiempo de acceso a cualquier posición de memoria. En ambientes SMP el acceso a memoria por el programador es totalmente transparente.
El primer microprocesador de Intel con soporte para multiprocesamiento, fue el Pentium PRO en 1992. El bus utilizado para la interconexión de la CPU con la memoria fue denominado Front Side Bus (FSB desde ahora).
El siguiente paso dado por Intel para incrementar el ancho de banda del FSB fue dividir el bus en dos buses independientes. Sin embargo el ancho de banda se vio reducido debido al tráfico que debía ser reenviado por todo los buses para mantener los caches coherentes.
En 2007 se implementó un bus dedicado por procesador.
En la actualidad esta arquitectura es utilizada por los procesadores Atom, Celeron, Pentium y Core 2 de Intel.
A medida que se incrementaron el número de procesadores en las computadoras modernas también se incrementó el tráfico por el bus, convirtiéndolo en un cuello de botella y degradando la performance de la configuración SMP, fijando un límite entre 16 a 64 procesadores.
El FSB fue fuertemente criticado debido a que éste representa una barrera para las nuevas tecnologías emergentes multicore.
Mientras que una CPU puede ejecutar instrucciones rápidamente, esta velocidad será desperdiciada si no puede hacer la captura y decodificación de las instrucciones tan rápido como las ejecuta. Cuando ocurre esto la CPU debe esperar por lo menos un ciclo más de reloj hasta retornar el valor desde la memoria.
El FSB se comenzó a sustituir a partir de 2001 por dispositivos de acceso punto a punto como Hypertransport de AMD o QuickPath Interconnect de Intel, remplazándose el modelo de acceso uniforme por el modelo de acceso no uniforme.
Matias E. Vara
www.torokernel.org