viernes, 12 de abril de 2013

Procesamiento Paralelo Vs Segmentado



PROCESAMIENTO EN PARALELO
Es un proceso empleado para acelerar el tiempo de ejecución de un programa dividiéndolo en múltiples trozos que se ejecutarán al mismo tiempo, cada uno en su propios procesadores.


Fuente: William Stallings, Organización y Arquitectura de
Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo.
La razón principal para crear y utilizar computación paralela es que el paralelismo es una de las mejores formas de salvar el problema del cuello de botella que significa la velocidad de un único procesador.
La razón de ser del procesamiento en paralelo es acelerar la resolución de un problema, la aceleración que puede alcanzarse depende tanto del problema en sí como de la arquitectura de la computadora.
CARACTERÍSTICAS
El uso de varios procesadores está motivado por consideraciones relativas a las prestaciones y/o a la fiabilidad, podemos clasificar dichos sistemas como sigue:
Multiprocesadores débilmente acoplados
Consisten en un conjunto de sistemas relativamente autónomos, en los que cada CPU dispone de su propia memoria principal y sus canales de E/S. En este contexto se utiliza frecuentemente el término multicomputador.
Procesadores de Uso Específico
Tales como un procesador de E/S. En este caso, hay un maestro, una CPU de uso general, y los procesadores de uso específico están controlados por la CPU maestra a la que proporcionan ciertos servicios.
Multiprocesadores fuertemente acoplados
Constituidos por un conjunto de procesadores que comparten una memoria principal común y están bajo el control de un mismo sistema operativo.
Procesadores paralelos
Multiprocesadores fuertemente acoplados que pueden cooperar en la ejecución en paralelo de una tarea o un trabajo.



Fuente: http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unidad_IV/Unidad%20IV_4.htm
El procesamiento en paralelo se basa principalmente en Multiprocesadores fuertemente acoplados que cooperan para la realización de los procesos, aquí sus características.
  • Posee dos o más procesadores de uso general similares y de capacidades comparables.
  • Todos los procesadores comparten el acceso a una memoria global.            
  • También pueden utilizarse algunas memorias locales (privadas como la cache).     
  • Todos los procesadores comparten el acceso a los dispositivos de E/S, bien a través de los mismos canales bien a través de canales distintos que proporcionan caminos de acceso a los mismos dispositivos.
  • El sistema está controlado por un sistema operativo integrado que permite la interacción entre los procesadores y sus programas en los niveles de trabajo, tarea, fichero, y datos elementales.
VENTAJAS Y DESVENTAJAS
Existen algunos factores que trabajan en contra de la eficiencia del  paralelismo y pueden atenuar tanto la ganancia de velocidad como la ampliabilidad.
Costes de inicio
En una operación paralela compuesta por miles de proceso, el tiempo de inicio puede llegar ser mucho mayor que le tiempo real de procesamiento, lo que influye negativamente en la ganancia de velocidad.
Interferencia
Como lo procesos que se ejecutan en un proceso paralelo acceden con frecuencia a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de la interferencia de cada nuevo proceso en la competencia, este fenómeno afecta tanto la ganancia de velocidad como la ampliabilidad.
Sesgo
Normalmente es difícil dividir una tarea en partes exactamente iguales, entonces se dice que la forma de distribución de los tamaños es sesgada.
El procesamiento paralelo implica una serie de dificultades a nivel programación de software, es difícil lograr una optimización en el aprovechamiento de los recursos de todas las CPU con el que se esté trabajando sin que se formen cuello de botella. En muchas de las ocasiones no es posible el trabajar con equipos multiprocesadores dado el elevado costo que este representa, así que solo se dedica a ciertas áreas de investigación especializada o proyectos gubernamentales o empresariales.
El procesamiento en paralelo ejecuta procesos en donde cada procesador se encarga de uno u otro y aceleran de esta forma el cálculo.

SEGMENTACION (Pipelining)
La velocidad de ejecución de los programas depende de muchos factores. Una forma de aumentar las prestaciones es utilizar una tecnología de circuitos más rápida para construir el procesador y la memoria principal. Otra posibilidad es reorganizar el hardware para que se pueda realizar más de una operación al mismo tiempo. De esta forma se incrementa el número de operaciones realizadas por segundo aunque no cambie el tiempo necesario para realizar una operación determinada.
La segmentación de cauce es una forma particularmente efectiva de organizar la actividad concurrente de un computador. La idea básica es muy simple. Se encuentra con frecuencia en las fábricas donde la segmentación de cauce es comúnmente conocida como fabricación o montaje en cadena.
Puede considerarse entonces, la idea del montaje en cadena en un computador como se observa en la siguiente figura.

Procesamiento segmentado de instrucciones.


 Fuente: https://sites.google.com/site/mimateria20/pipelining

En resumen, las unidades de captación de la figura 1.b constituyen un cauce de dos etapas donde se procesa una instrucción cada ciclo. El buffer B1 entre ambas se necesita para almacenar la información que se pasa de una etapa a la siguiente. Este buffer se carga con una nueva información al final de cada ciclo de reloj. Para el ejemplo anterior se dividió la instrucción en dos etapas, pero también es posible dividirla en más etapas. Si fueran cuatro, dichas etapas podrían ser las siguientes:
  • F Captación (Fetch): la instrucción se lee de memoria.
  • D Decodificación: la instrucción se decodifica y se captan los operandos fuente.
  • E Ejecución: se realiza la operación especificada por la instrucción.
  • W Actualización (Write): El resultado obtenido se escribe en la dirección destino.
La segmentación mejora el rendimiento incrementando la productividad de las instrucciones, en contraposición a la disminución del tiempo de ejecución de una instrucción individual, pero la productividad de las instrucciones es la métrica importante porque los programas reales ejecutan billones de instrucciones.
La segmentación es una técnica que explota el paralelismo entre las instrucciones en un flujo secuencial de instrucciones. Tiene la ventaja sustancial de que puede ser invisible al programador.
Los registros segmentados (buffers) que separan cada etapa de la segmentación. Están etiquetados por las etapas que separan; por ejemplo, el primero está etiquetado como IF/ID porque separa las etapas de busqueda de la instrucción y decodificación de la instrucción. Estos registros deben ser lo suficientemente grandes para almacenar todos los datos correspondientes a las líneas que van a través de ellos. El registro IF/ID debe ser de 64 bits porque debe contener la instrucción de 32 bits buscada en memoria y la dirección incrementada de 32 bits del PC.

BIBLIOGRAFIA
William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo. 
https://sites.google.com/site/mimateria20/pipelining
http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_terminados/PolilibroFC/Unidad_IV/Unidad%20IV_4.htm

viernes, 1 de marzo de 2013

TENDENCIAS DEL FUTURO


AMD BULLDOZER

Arquitectura construida a través de módulos con cuatro de ellos en el caso de los más potentes (los primeros de óctuple núcleo de procesamiento nativo que llegan al mercado de consumo) destinados a ordenadores de sobremesa (gama alta / entusiasta) y fabricados en una pastilla de 315 milímetros cuadrados con dos mil millones de transistores.





  
FUENTE: http://www.muycomputer.com/2011/10/12/todo-sobre-lanzamiento-procesadores-         amd-fx-bulldozer

Sus características principales completas son:

  • Ocho núcleos X86 de procesamiento nativo
  • Frecuencia base de 3,6 GHz
  • Frecuencia base ampliada a 4,2 GHz mediante Turbo Core 2.0
  • 256K caché L1 (64KB por modulo) / 128K data cache L1 (16K por modulo)
  • 8 Mbytes de caché de segundo nivel (2 MB por módulo)
  • 8 Mbytes de caché de tercer nivel (1 MB por núcleo)
  • Controladora de memoria integrada 128 bits (2 x 72 bit)
  • Velocidad del controlador de memoria : 2,2 GHz con Dual Dynamic Power Management
  • Memorias soportadas hasta PC3-14900 (DDR3-1866)
  • Hypertransport 3.0: Un link de 16-bit/16-bit hasta 4,44 GHz full duplex (2.2GHz x2)
  • Socket AM3+ 938-pin
  • Instrucciones SSE3, SSE4.1/4.2, AES, AVX Plus FMA4, XOP
  • Black Edition con multiplicador desbloqueado
  • TDP: 125 vatios
  • Tecnología de fabricación 32 nm DSL SOI (GlobalFoundries, Dresden-Alemania)
  • Precio base recomendado por el fabricante: 245 dólares

 

El más rápido de estos chips se llama FX-8150 y cuenta con una frecuencia básica de 3,6 GHz, una frecuencia máxima alcanzada en modo Turbo de 4,2 GHz, 8 MB de memoria caché de nivel 2 y una potencia de diseño térmico (TDP) de 125W.
El siguiente chip destacado es el FX-8120, que también empaqueta ocho núcleos de procesamiento y otras características similares, pero se ejecuta a 3,1 GHz (4 GHz en modo Turbo).
El modelo FX-8120 será el único procesador AMD de la serie FX que estará disponible en dos modelos diferentes, uno con una TDP de 125W y otro con TDP de 95W.
El modelo de seis núcleos, FX-6100, tiene una frecuencia de reloj básica de 3,3 GHz y cuenta con una memoria caché L2 de 6 MB, mientras que la frecuencia máxima en modo Turbo será de 3,9 GHz (según un documento que apareció a mediados de julio).
La cantidad de memoria caché de nivel 2 se reduce aún más al llegar al procesador FX-4100 de cuatro núcleos, que funciona a 3,6 GHz y puede llegar a 3,8 GHz cuando la tecnología Turbo Core está habilitada.
Todos los procesadores detallados se basan en el núcleo AMD Zambezi de 32nm, proporcionan 8 MB de memoria caché L3 compartida, un controlador de memoria DDR3 1866MHz de doble canal, un multiplicador desbloqueado y son compatibles con todas las placas base AM3+.

TABLA DE CARACTERISTICAS DE AMD


FUENTE: http://news.softpedia.es/Las-especificaciones-de-las-CPUs-AMD-Bulldozer-FX-filtradas-accidentalmente-por-Gigabyte-220451.html


INTEL CORE I7

Construído a 45 nm., es el primer procesador del Intel en conseguir poner cuatro y ocho procesadores integrados de forma nativa compartiendo una misma memoria caché y procesador de instrucciones. Asímismo vuelve la tecnología hyperthreading ya utlizada en el Pentium 4, por lo el sistema operativo nos reportaría 16 procesadores si tuvierámos instalado el Intel Core i7 Octo. Además el controlador de memoria va integrado dentro del propio procesador con la nueva tecnología QuickPath, algo a lo que AMD ya nos tiene acostumbrados desde hace bastante tiempo con su tecnología HyperTransport.

Memoria Caché Compartida de Alto-Nivel.

Mejoras en la memoria caché con una nueva arqitectura de tres niveles: la caché L1 con 32 Kb. de caché para intrucciones y otros 32 Kb para caché de datos; nueva caché L2 por núcleo de latencia muy baja con 256 Kb por núcleo para datos e instrucciones; y una nueva caché L3 compartida por todos los núcleos y con diferentes configuraciones en Mb. según el tipo de procesador, 8 Mb en el caso de un Core i7 con cuatro núcelos, aunque con el tiempo se irá ampliando esta memoria caché compartida.

Intel QuickPath

El procesador Intel Core i7 lleva integrado el controlador de memoria dentro del propio procesador. La tecnología Intel QuickPath Interconnect, es una tecnología de interconexión con el procesador punto a punto desarrollada por Intel en competencia con la tecnología HyperTransport de AMD


Carecteristicas Procesador Intel Core i7  Bloomfield  45 nm

Core i7-920 Core i7-930 Core i7-940 Core i7-950 Core i7-960 Core i7-965 Extreme Edition Core i7-975 Extreme Edition

  • Basado en la microarquitectura Nehalem .
  • Todos los modelos soportan: MMX , SSE , SSE2 , SSE3 , SSSE3 , SSE4.1 , SSE4.2 ,  Smart Cache.
  • FSB ha sido sustituido por QPI .
  • Tecnología Intel® Turbo Boost
  • Tecnología Intel® Hyper-Threading
  • Tecnología de virtualización Intel® (VT-x)
  • Intel® 64
  • Estados de inactividad
  • Tecnología Intel SpeedStep® mejorada
  • Bit de desactivación de ejecución
  • Cantidad de canales de memoria 3
 TABLA DE CARACTERISTICAS DE INTEL



FUENTE: http://www.nisfe.com/hardware/caracteristicas-procesadores-intel-core-i7-de-escritorio/

A CONTINUACION UN VIDEO DE QUE NOS MUESTRA LAS DIFERENCIAS ENTRE BULLDOZER E I7


BIBLIOGRAFIA

http://www.nisfe.com/hardware/caracteristicas-procesadores-intel-core-i7-de-escritorio/
http://www.slideshare.net/alemar802/core-i7-caracteristicas-ventajas-y-desventajas
http://infomicros.wordpress.com/2008/08/12/intelcorei7/
http://hardzone.es/2012/07/05/amd-vs-intel-los-procesadores-core-i7-3770k-y-amd-fx-8150-se-enfrentan-a-4-6ghz/
http://hardzone.es/2012/07/05/amd-vs-intel-los-procesadores-core-i7-3770k-y-amd-fx-8150-se-enfrentan-a-4-6ghz/
http://news.softpedia.es/Las-especificaciones-de-las-CPUs-AMD-Bulldozer-FX-filtradas-accidentalmente-por-Gigabyte-220451.html