Anda di halaman 1dari 41

Esquema General

Qu es un Procesador? Organizacin de un CPU Ejecucin de Instrucciones Principios bsicos de las computadoras modernas Paralelismo de instrucciones
Filas de Procesamiento Arquitecturas superescalares

Paralelismo a nivel de procesador


Computadoras de Matriz Multiprocesadores Multicomputadores

Qu es un Procesador?
El CPU (Central Processing Unit, por sus siglas en Ingles) es el Cerebro de la computadora. Su funcin es ejecutar programas almacenados en la memoria Principal, buscando las instrucciones y examina para despus ejecutarlas en secuencia Los componentes estn unidos por un Bus, por el cual pasan direcciones, datos y seales de control Los buses pueden ser internos o externos (cuando conectan a la memoria y a los dispositivos de E/S).

Qu es un Procesador? (Cont.)
Una CPU se compone de las siguientes partes:
Unidad de Control: Busca instrucciones de la memoria principal ALU (Unidad Aritmtica Lgica, por sus siglas en ingles) Ejecuta las instrucciones Memoria: Guarda resultados temporales o informacin de control. Funciona a alta velocidad porque est dentro de la CPU

Componentes del Procesador

Procesador de Von Neumann

Qu es un Procesador? (Cont.)
Dentro de la memoria los dos registros mas importantes son:
Contador de Programa: Apunta a la siguiente instruccin a ejecutar Registro de Instruccin: contiene la instruccin que se est ejecutando en el momento

Los dems registros son de propsito general o de propsito especfico

Organizacin de un CPU
Estructuralmente un procesador es un camino de datos y consiste en los registros, la ALU y varios buses que interconectan los componentes LA ALU hace las operaciones bsicas aritmticas y lgicas con sus entradas y produce el resultado en el registro de salida Ese contenido se enva a un registro para ser guardado (escrito) en la memoria.

Organizacin de un CPU (Cont.)


Las instrucciones se pueden dividir en dos tipos: registro-registro y registro-memoria. Registro-memoria: busca en la memoria palabras (datos) para los registros, para usarse como entrada de la ALU para operaciones subsiguientes o para almacenar el contenido de un registro en la memoria Registro-Registro: busca los operandos en los registros, los coloca en la ALU, y coloca el resultado de la operacin en otro registro

Organizacin de un CPU (Cont.)


Ciclo de camino de datos: Es el ncleo de todas la CPU. Este ciclo define lo que puede hacer la mquina. Mientras ms corto sea, ms eficiente es la mquina

Ejecucin de Instrucciones
Los pasos cclicos para ejecutar una instruccin en un CPU son los siguientes:
Busca la instruccin en memoria y la coloca en el registro de instrucciones Modifica el contador de programa para que apunte a la siguiente instruccin Determinar el tipo de instruccin Si se necesita una palabra de memoria, buscarla Coloca la palabra buscada en el registro del CPU Ejecuta la instruccin

Ejecucin de Instrucciones (Cont.)


Los pasos anteriormente descritos se conocen como bsqueda-decodificacin-ejecucin Las instrucciones se pueden ejecutar en hardware o en un intrprete Este ltimo punto es importante porque se puede decidir entre correr un programa en hardware directamente o escribir el intrprete de los programas en lenguaje de mquina Una construccin hbrida se refiere a usar parte hardware y parte software para ejecutar instrucciones

Ejecucin de Instrucciones (Cont.)


El intrprete descompone las instrucciones en pasos pequeos. Se puede hacer un hardware ms sencillo que un procesador en hardware netamente. En las primeras computadoras las instrucciones eran pequeas y sencillas. La evolucin hizo que las instrucciones fueran individuales y mas potentes. Se descubri que con instrucciones mas complejas se ejecutaban ms rpido los programas, aunque se tardara mas individualmente cada instruccin

Ejecucin de Instrucciones (Cont.)


El Trmino Arquitectura en la computadora se acu cuando IBM sac una familia de mquinas que podan ejecutar las mismas instrucciones de manera compatible Los intrpretes hicieron posible bajar los costos de las computadoras, adems de explorar las posibilidades de hacer ms complejas las instrucciones

Ventajas de las instrucciones Interpretadas


Capacidad de corregir las instrucciones mal implementadas o subsanar las deficiencias en el diseo del hardware Aade nuevas instrucciones a bajo costo Diseo que permite crear, probar y documentar instrucciones complejas de manera eficiente

Ejecucin de Instrucciones (Cont.)


Los microprocesadores de los aos setenta eran de 8 bits, con instrucciones muy sencillas Las mquinas de esta poca tenan unas memorias de solo lectura llamadas almacenes de control, para contener los intrpretes. Las instrucciones que requiriera ese intrprete se llamaban micro instrucciones

Principios bsicos de las computadoras modernas


Todas las instrucciones se ejecutan directamente en el hardware del equipo
Eliminando el nivel de interpretacin hace que la mayor parte de las instrucciones sean rpidas. Las instrucciones ms complejas se pueden dividir en partes discretas que luego pueden ejecutarse como una sucesin de micro instrucciones. Puede hacer funcionar ms lento la mquina, pero si las instrucciones no ocurren con frecuencia, es aceptable

Principios bsicos de las computadoras modernas (Cont.)


Hay que Maximizar el ritmo con el que se emiten instrucciones
Hay que emitir el mximo nmero de instrucciones posibles por segundo, sin importar el tiempo real de ejecucin La eficiencia de los procesadores se mide en MIPS (Millones de Instrucciones por Segundo) El paralelismo es parte importante en la mejora del rendimiento de los equipos El orden en que se escriben las instrucciones no necesariamente es el orden de ejecucin, porque los recursos necesarios pudieran estar ocupados.

Principios bsicos de las computadoras modernas (Cont.)


Las instrucciones deben ser fcil de decodificar
No solo es importante emitir las instrucciones, sino tambin decodificarlas para determinar los recursos necesarios Cuanto menos tipo de formato de instrucciones exista, mejor

Incluir abundantes registros:


Es bueno tener como mnimo 32 registros para tener donde almacenar temporalmente informacin hasta que no se necesite. Si se queda la mquina sin registros habr que escribir en memoria y volver a cargar ese resultado

Principios bsicos de las computadoras modernas (Cont.)


Slo las operaciones de carga y almacenamiento deben hacer referencia a la memoria:
Para desglosar la operaciones en pasos individuales es que casi todas las instrucciones provengan y regresen a registros en lugar de la memoria. Las instrucciones registro-memoria pueden realizarse con instrucciones diferentes Las instrucciones LOAD y STORE son las nicas que deben hacer referencia a la memoria.

Paralelismo de instrucciones
Hay dos maneras bsicas de aumentar el rendimiento de un computador: Aumentar la velocidad del reloj de los chip (tiene un lmite fsico finito) o aumentar el nmero de instrucciones por ciclo de reloj (ejecucin en paralelo de instrucciones) Con el paralelismo hay dos maneras ms de hacerlo: Paralelismo a nivel de instrucciones (filas de procesamiento), o paralelismo a nivel de procesadores (arquitecturas superescalares).

Filas de Procesamiento
La obtencin de instrucciones de la memoria es un proceso lento y con tendencia a cuellos de botella Desde 1959, IBM cont con la capacidad de buscar instrucciones en memoria de adelantado, para tenerlas disponibles en el momento adecuado Esas instrucciones de adelantado se guardaban en un buffer de prebsqueda. Con eso se lograba que la instruccin estaba en el buffer de prebsqueda cuando se necesitaba en lugar de esperar la lectura desde la memoria

Filas de Procesamiento (Cont.)


Con ese proceso de prebsqueda la ejecucin de instrucciones se divide en dos partes: Bsqueda y ejecucin. Esto dio lugar al concepto de pipeline, o fila de procesamiento Este pipeline divide la ejecucin de instrucciones en ms de dos partes, cada una de ellas se maneja con un hardware dedicado y los componentes pueden operar en paralelo Las partes en que se divide una fila de procesamiento se llaman etapas.

Ejemplo de Fila de Procesamiento

Filas de Procesamiento (Cont.)


Como ejemplo: si tienen 5 etapas, la primera busca la instruccin, la segunda la decodifica, la tercera busca los operandos, la cuarta ejecuta la instruccin y la quinta escribe el resultado de la operacin, llega un momento en el que se ejecutan cinco instrucciones en simultanea en el ejemplo anterior. Funciona muy parecido a lo que es una lnea de montaje de Henry Ford para armar un carro Las filas de procesamiento permiten balancear la latencia del procesador (cunto se tarda por instruccin) y su ancho de banda (Cuntas instrucciones ejecutan)

Arquitecturas superescalares
Se logra mediante el uso de un CPU que posea una fila de procesamiento dual Lo que quiere decir es lo siguiente: Se tiene una sola unidad de bsqueda de instrucciones y sta lleva a dos o mas filas de procesamiento, cada una con su propia ALU, etc. Se puede realizar siempre y cuando las instrucciones a ejecutar en paralelo no compitan por el acceso a los recursos o que una operacin no dependa de la otra

Arquitectura Superescalar

Arquitecturas superescalares (Cont.)


El compilador debe hacer cumplir las condiciones anteriores, o los conflictos se detectan y corrigen usando hardware adicional El 486 fue el primer modelo en usar fila de procesamiento, y el Pentium en usar de a dos filas de procesamiento de 5 etapas. Por medio de reglas complejas se determinaba si un par de instrucciones eran compatibles o no. Si no lo eran, o eran instrucciones complejas, se ejecutaba la primera, y la segunda se apareaba con la siguiente. Por eso, los compiladores Pentium eran ms rpidos que los de modelos anteriores

Arquitecturas superescalares (Cont.)


Como cada fila de procesamiento requera de duplicacin de hardware, entonces para mejorar el rendimiento se usaron otras maneras. El trmino arquitectura superescalar se refiere a tener una sola fila de procesamiento, pero con varias unidades funcionales. El primer procesador moderno superescalar fue el del Pentium II, aunque sus races venan de tiempos anteriores. El procesador superescalar se basa en el principio de que la etapa 3 genera instrucciones ms rpido de la que puede procesar la etapa 4 para poder tener varias instrucciones ejecutadas en un momento dado

Procesador SuperEscalar

Paralelismo a nivel de procesador


La demanda de computadoras mas rpidas es cada vez mayor. Las personas quieren hacer ms y mas aplicaciones de alto consumo y velocidad El lmite fsico de los procesadores va a venir dado por dos factores: La velocidad de la luz y la capacidad de disipacin de calor del CPU. Con el paralelismo a nivel de instrucciones se logra ganar un factor de hasta 10. Para ganancias superiores se requiere el uso de varios CPU en conjunto

Computadoras de Matriz
Se basan en el principio de que algunos programas tienen una estructura bastante regular en su forma de instrucciones, es decir, se hacen el mismo tipo de instrucciones con datos diferentes. Existen dos maneras de pensar este tipo de solucin de matriz: El arreglo de procesadores, o los procesadores vectoriales

Computador de Matriz

Computadoras de Matriz (Cont.)


El arreglo de procesadores consiste en un nmero de procesadores iguales que ejecutan instrucciones iguales sobre conjuntos de datos diferentes. La primera computadora de este estilo fue la ILLIACIV de la universidad de Illinois Consistira en 4 cuadrantes, que tenan una matriz de 8 x 8 procesadores/ memoria. Una nica unidad de control por cuadrante ordenaba las instrucciones que ejecutaban todos los procesadores Para su poca no exista suficiente presupuesto, as que se hizo un solo cuadrante

Computadoras de Matriz (Cont.)


Con todo y falta de presupuesto, esa mquina alcanz los 50 Megaflops (50 millones de operaciones de punto flotante por segundo) Los procesadores vectoriales funcionan parecido al arreglo de procesadores, con la diferencia de que es un slo hardware con muchas filas de procesamiento Cray research realiz los primeros procesadores de ese estilo.

Computadoras de Matriz (Cont.)


El procesador vectorial tiene el concepto de registro vectorial, que consiste en un conjunto de registros que se cargan desde la memoria con una sola instruccin Una instruccin de suma vectorial realiza la suma por par de elementos de dos vectores, alimentndolos a un sumador con filas de procesamiento. El resultado se carga a un registro vectorial o se usa como operando de otra operacin. De los dos tipos, el procesador vectorial es el que lleva la delantera por los costos asociados al arreglo de procesadores. Los procesadores vectoriales se pueden aadir a uno convencional, para mayor eficiencia.

Multiprocesadores
El multiprocesador consiste en tener varios CPU que comparten una memoria comn. Se deben coordinar dichos procesadores para evitar que interfieran entre ellos Hay dos maneras bsicas para implementar los mltiples procesadores: Un bus comn entre los procesadores y la memoria o que cada procesador tenga una memoria privada para ejecutar ciertas instrucciones

Multiprocesadores (Cont.)
El bus comn tiene limitaciones, porque todos los procesadores tratan de acceder a una nica memoria y se causan los conflictos. El sistema con un poco de memoria privada aligera el trfico en el bus, por lo cual se logra ser ms eficiente Otro mtodo planteado para hacer multiprocesadores es el uso de caches Con los multiprocesadores es ms fcil trabajar que con otros tipos de computadores paralelos

Multiprocesadores

Multiprocesadores (Cont.)
Los multiprocesadores pueden tomar una parte particular de la memoria comn para analizar asuntos complejos, como una foto digitalizada. Este modelo tiene limitantes en cuanto al nmero de procesadores que se pueden usar (hasta 64)

Multicomputadores
El modelo de multiprocesadores es problemtico cuando muchos procesadores se deben conectar a la memoria comn El modelo de Multicomputadores elimina ese problema, porque es un nmero de computadores conectados, pero cada quien con su propia memoria, sin memoria comn Los CPU se comunican entre ellos envindose mensajes a una gran velocidad.

Multicomputadores (Cont.)
Los Multicomputadores se conectan en topologa rbol ,anillo o arreglos bi o tridimensionales. A pesar de que pudiera ser necesario que el mensaje de una computadora a otra traspase varias computadoras, se han logrado tiempos de llegada de mensajes de micro segundos, con ms de 10.000 procesadores en simultanea

Anda mungkin juga menyukai