

Es un circuito microscópico que interpreta y ejecuta instrucciones. El CPU se ocupa del control y el proceso de datos en las computadoras. Generalmente, el CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. El microprocesador del CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones, y toma decisiones lógicas (determina si una afirmación es cierta o falsa mediante las reglas del álgebra de Boole); por una serie de registros donde se almacena información temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar órdenes del usuario, acceder a los datos y presentar los resultados, el CPU se comunica a través de un conjunto de circuitos o conexiones llamado bus. El bus conecta el CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora).

Cuando se ejecuta un programa, el registro de la CPU, llamado contador de programa, lleva la cuenta de la siguiente instrucción, para garantizar que las instrucciones se ejecuten en la secuencia adecuada. La unidad de control de la CPU coordina y temporiza las funciones de la CPU, tras lo cual recupera la siguiente instrucción desde la memoria. En una secuencia típica, la CPU localiza la instrucción en el dispositivo de almacenamiento correspondiente. La instrucción viaja por el bus desde la memoria hasta la CPU, donde se almacena en el registro de instrucción. Entretanto, el contador de programa se incrementa en uno para prepararse para la siguiente instrucción. A continuación, la instrucción actual es analizada por un descodificador, que determina lo que hará la instrucción. Cualquier dato requerido por la instrucción es recuperado desde el dispositivo de almacenamiento correspondiente y se almacena en el registro de datos de la CPU. A continuación, la CPU ejecuta la instrucción, y los resultados se almacenan en otro registro o se copian en una dirección de memoria determinada.
En los años 70 afectó perceptiblemente el diseño y la puesta en práctica de CPUs. Desde que la introducción del primer microprocesador (la Intel 4004) en 1970 y el primer utilizó extensamente el microprocesador (la Intel 8080) en 1974, esta clase de CPUs ha alcanzado casi totalmente el resto de los métodos de la puesta en práctica de la unidad central de proceso. Los fabricantes del chasis y de la minicomputadora de los programas de desarrollo propietarios lanzados tiempo del IC para aumentar sus más viejas arquitecturas de computadora, y produjeron eventual los microprocesadores compatibles del sistema de instrucción que eran backward-compatible con su más viejos hardware y software. Combinado con el advenimiento y el éxito extenso eventual del ordenador personal ahora ubicuo, el término “CPU” ahora se aplica casi exclusivamente a los microprocesadores.

El programa es representado por una serie de números que se mantengan una cierta clase de memoria de computadora.
Hay cuatro pasos: traiga, descifre, ejecútese, y writeback.
1.- Trae: Implica el recuperar de una instrucción (que sea representada por un número o una secuencia de números) de memoria del programa. La localización en memoria del programa es determinada por un contador de programa (PC), que almacena un número que identifique la posición actual en el programa. Es decir el contador de programa no pierde de vista el lugar de CPU’s en el programa actual. Después de que se traiga una instrucción, la PC es incrementada por la longitud de la palabra de la instrucción en términos de las unidades de la memoria. La instrucción de ser traído se debe recuperar a menudo de la memoria relativamente lenta, haciendo la CPU atascarse mientras que espera la instrucción de ser vuelto. Esta edición es tratada en gran parte en procesadores modernos por los escondrijos y las arquitecturas de la tubería.
2.-Descifrar: La instrucción está quebrada para arriba en las piezas que tienen significación a otras porciones de la CPU. La manera de la cual se interpreta el valor numérico de la instrucción es definida por la arquitectura del sistema de instrucción de CPU’s (ISA). A menudo, un grupo de números en la instrucción, llamó el opcode, indica qué operación a realizarse. Las partes restantes del número proporcionan generalmente la información requerida para esa instrucción, tal como operandos para una operación de la adición. Tales operandos se pueden dar como un valor constante (llamado un valor inmediato), o como lugar para localizar un valor: un registro o una dirección de memoria, según lo determinado por un cierto modo de dirección. En más viejos diseños las porciones de la CPU responsable de descifrar de la instrucción eran dispositivos de hardware unchangeable. Sin embargo, en un CPUs y un ISAs más abstractos y más complicados, un microprograma se utiliza a menudo para asistir a traducir instrucciones en las varias señales de la configuración para la CPU. Este microprograma es a veces reescribible para poderlo modificarse para cambiar la manera que la CPU descifra instrucciones incluso después se haya fabricado.
3.-Ejecutar Durante este paso, las varias porciones de la CPU están conectadas así que pueden realizar la operación deseada. Si, por ejemplo, una operación de la adición fue solicitada, una unidad de lógica/aritimética (ALU) será conectada con un sistema de entradas y un sistema de salidas. Las entradas proporcionan los números que se agregarán, y las salidas contendrán la suma final. El ALU contiene el trazado de circuito para realizar aritmética simple y operaciones lógicas en las entradas (como la adición y bitwise operaciones). Si la operación de la adición produce un resultado demasiado grande para que la CPU dirija, una bandera aritmética del desbordamiento en un registro de las banderas puede también ser fijada (véase la discusión de la gama del número entero abajo).
4.- writeback: “Escribe simplemente detrás” los resultados del paso del ejecutar a una cierta forma de memoria. Los resultados son escritos muy a menudo a un poco de registro interno de la CPU para el acceso rápido por instrucciones subsecuentes. En otros casos los resultados se pueden escribir a una memoria más lenta, pero más barata y más grande , central. Algunos tipos de instrucciones manipulan el contador de programa más bien que producen directamente datos del resultado. Éstos se llaman los “saltos” y facilitan generalmente comportamiento como lazos, la ejecución de programa condicional (con el uso de un salto condicional), y funciones en programas. Después de la ejecución de la instrucción y del writeback de los datos que resultan, las repeticiones enteras del proceso, con el ciclo siguiente de la instrucción trayendo normalmente la instrucción de la siguiente-en-secuencia debido a el valor incrementado en el contador de programa. Si la instrucción terminada era un salto, el contador de programa será modificado para contener la dirección de la instrucción a la cual fue saltado, y la ejecución de programa continúa normalmente. En un CPUs más complejo que el describió aquí, las instrucciones múltiples puede ser traído, ser descifrado, y ser ejecutado simultáneamente. Esta sección describe qué se refiere generalmente como la “tubería clásica del RISC,” que en hecho es absolutamente común entre el CPUs simple usado en muchos dispositivos electrónicos (a menudo llamados los microcontroladores)
El CPU sincroniza o controla el tiempo de todas las operaciones de la computadora utilizando un pequeño chip llamado system clock. Así como el corazón de una persona late a un ritmo regular para mantener el cuerpo funcionando, el system clock genera pulsos electrónicos regulares, o “ticks”, que establece el ritmo de operación de los componentes del system unit. Cada tick es un ciclo de reloj (clock cycle). Actualmente, muchos CPU pueden ejecutar más de una instrucción por ciclo del reloj.
La velocidad del reloj (clock speed o clock rate) es la velocidad a la que un procesador ejecuta instrucciones. Mientras más rápido sea el reloj, más instrucciones puede procesar el CPU por segundo. Los manufactureros de computadoras expresan la velocidad del reloj en megaherts y gigahertz. Una computadora que opera a 933 MHz (megahertz) tiene 933 millones (mega) de ciclos de reloj en un segundo (hertz).
El poder del CPU frecuentemente es determinado por cuán rápido procesa datos. El system clock es uno de los factores mayores que influencian la velocidad de la computadora. Un CPU con mayor velocidad de reloj puede procesar más instrucciones por segundo que un CPU con menor velocidad de reloj. Es importante mantener en mente que la velocidad del reloj afecta solo al CPU; no tiene efectos en otros equipos como impresoras y lectores de disco (disk drives).
Los nuevos procesadores generan mucho calor, lo que puede causar que el chip se queme. Por lo general, el abanico principal de la computadora genera suficiente flujo de aire para enfriar el procesador. Sin embargo, en algunas ocasiones el procesador requiere un heat sink – especialmente cuando se añade un procesador más poderoso. Un heat sink es un componente pequeño de cerámica o metal que absorbe y ventila el calor producido por los componentes eléctricos. Algunos heat sink se empacan como parte del procesador. Otros se instalan sobre o al lado del chip. Dado que el heat sink ocupa mucho espacio, un pequeño equipo llamado heat pipe enfría el procesador en las computadoras portátiles (notebook).
El procesamiento paralelo es la ejecución de diferentes procesos en dos o mas procesadores al mismo tiempo, donde estos procesos juntos resuelven un problema completamente.Algunas computadoras usan más de un procesador para acelerar el tiempo de procesamiento. Este método, conocido como procesamiento paralelo, utiliza múltiples procesadores simultáneamente para ejecutar los programas. Las supercomputadoras usan procesamiento paralelo para aplicaciones como predicción del tiempo.
Algunos diseños diferentes de procesamiento paralelo enfrentan este problema fundamental:
MULTIPROCESAMIENTO SIMETRICO
Tiene un diseño simple pero aún así efectivo.En SMP, múltiples procesadores comparten la memoria RAM y el bus del sistema. Este diseño es también conocido como estrechamente acoplado (tightly coupled), o compartiendo todo (shared everything).Debido a que SMP comparte globalmente la memoria RAM, tiene solamente un espacio de memoria, lo que simplifica tanto el sistema físico como la programación de aplicaciones. Este espacio de memoria único permite que un Sistema Operativo con Multiconexión (multithreaded operating system) distribuya las tareas entre varios procesadores, o permite que una aplicación obtenga la memoria que necesita para una simulación compleja. La memoria globalmente compartida también vuelve fácil la sincronización de los datos.SMP es uno de los diseños de procesamiento paralelo más maduro. Apareció en los supercomputadores Cray X-MP y en sistemas similares hace década y media (en 1983).

Esta memoria global contribuye el problema más grande de SMP: conforme se añaden procesadores, el tráfico en el bus de memoria se satura. Al añadir memoria caché a cada procesador se puede reducir algo del tráfico en el bus, pero el bus generalmente se convierte en un cuello de botella al manejarse alrededor de ocho o más procesadores. SMP es considerada una tecnología no escalable.
PROCESAMIENTO MASIVAMENTE PARALELO
Es otro diseño de procesamiento paralelo. Para evitar los cuellos de botella en el bus de memoria, MPP no utiliza memoria compartida. En su lugar, distribuye la memoria RAM entre los procesadores de modo que se semeja a una red (cada procesador con su memoria distribuida asociada es similar a un computador dentro de una red de procesamiento distribuido). Debido a la distribución dispersa de los recursos RAM, esta arquitectura es también conocida como dispersamente acoplada (loosely coupled), o compartiendo nada (shared nothing).Para tener acceso a la memoria fuera de su propia RAM, los procesadores utilizan un esquema de paso de mensajes análogo a los paquetes de datos en redes. Este sistema reduce el tráfico del bus, debido a que cada sección de memoria observa únicamente aquellos accesos que le están destinados, en lugar de observar todos los accesos, como ocurre en un sistema SMP. Únicamente cuando un procesador no dispone de la memoria RAM suficiente, utiliza la memoria RAM sobrante de los otros procesadores. Esto permite sistemas MPP de gran tamaño con cientos y aún miles de procesadores. MPP es una tecnología escalable.

El RS/6000 Scalable Powerparallel System de IBM (SP2) es un ejemplo de sistema MPP, que presenta una ligera variante respecto al esquema genérico anteriormente planteado. Los procesadores del RS/6000 se agrupan en nodos de 8 procesadores, los que utilizan una única memoria compartida (tecnología SMP). A su vez estos nodos se agrupan entre sí utilizando memoria distribuida para cada nodo (tecnología MPP). De este modo se consigue un diseño más económico y con mayor capacidad de crecimiento.

PROCESAMIENTO PARALELO ESCALABLE
El Procesamiento paralelo escalable (Scalable parallel processing / SPP), es un híbrido de SMP y MPP, que utiliza una memoria jerárquica de dos niveles para alcanzar la escalabilidad. La primera capa de memoria consiste de un nodo que es esencialmente un sistema SMP completo, con múltiples procesadores y su memoria globalmente compartida.Se construyen sistemas SPP grandes interconectando dos o mas nodos a través de la segunda capa de memoria, de modo que esta capa aparece lógicamente, ante los nodos, como una memoria global compartida.

La memoria de dos niveles reduce el tráfico de bus debido a que solamente ocurren actualizaciones para mantener coherencia de memoria. Por tanto, SPP ofrece facilidad de programación del modelo SMP, a la vez que provee una escalabilidad similar a la de un diseño MPP.






















Contador de visitas
Realizado por:
Aguinaga Barreal Diana Veronica
E-mail: aguinagaveronica@gmail.com
fuente:
http://en.wikipedia.org/wiki/Cpu
http://mmalicea.tripod.com/hrdwsftw/cpu.htm


































































