domingo, 15 de marzo de 2009

Procesadores

El procesador




El procesador (CPU, por Central Processing Unit o Unidad Central de Procesamiento), es por decirlo de alguna manera, el cerebro del ordenador. Permite el procesamiento de información numérica, es decir, información en formato binario, así como la ejecución de instrucciones almacenadas en la memoria.







El microprocesador




Es un circuito integrado que contiene algunos o todos los elementos necesarios para conformar una (o más) "unidad central de procesamiento" UCP, también conocido como CPU (por sus siglas en inglés: Central Process Unit). En la actualidad este componente electrónico está compuesto por millones de transistores, integrados en una misma placa de silicio.








Funcionamiento



El procesador (denominado CPU, por central processing unit) es un circuito electrónico que funciona a velocidad de un reloj interno, gracias a un cristal de cuarzo que sometido a una corriente eléctrica, envía pulsos, denominados “picos”. La velocidad de reloj (también denominada ciclo), corresponde al número de pulsos por segundo, expresados en Hertz (Hz). De este modo, un ordenador de 200 MHz posee un reloj que envía 200.000.000 pulsos por segundo. Por lo general, la frecuencia de reloj es un múltiplo de la frecuencia del sistema (FSB, Front-Side Bus de la parte Frontal) es decir, un múltiplo de la frecuencia del sistema (FSB, Front. Side Bus o Bus de la parte Frontal) es decir, un múltiplo de la frecuencia de la placa madre.
Con cada pico de reloj, el procesador ejecuta una acción que corresponde a su vez a una instrucción o bien a una parte de ella. La medida CPI (Cycles Per instruction o ciclo por instrucción) representa el numero promedio de de ciclos de reloj necesarios para que el microprocesador puede caracterizarse por el numero de instrucciones por segundo que es capaz de procesar. Los MIPS (Millons of intructions per second o millones de instrucciones por segundo) son las unidades que se utilizan, y corresponde a la frecuencia del procesador dividida por el numero de CPI.






Características de un Procesador


  • Capacidad de Procesamiento:

Viene determinaba por el juego de instrucciones de que dispone y por la amplitud del bus de direcciones.


  • Capacidad de Manipular Gran Capacidad de Memoria:

Viene determinada por la amplitud del bus de direcciones.



  • Velocidad de Procesamiento:

Depende del ciclo del reloj y también de la amplitud del bus de datos. La velocidad de un procesador se mide de Mega Hertzios (MHz)


Instrucciones


Una instrucción es una operación elemental que el procesador puede cumplir. Las instrucciones de almacenan en la memoria principal, esperando ser tratadas por el procesador. Las instrucciones poseen dos campos:




  • El código operando: define los parámetros de la acción. El código operando depende a su vez de la operación. Puede tratarse tanto de información (entre 1 y 4 bytes de 8 bits).


  • El código de operación: representa la acción que el procesador debe ejecutar:

Las más importantes categorías de las instrucciones:

Acceso a Memoria: Acceso ala memoria o transferencia de información entre registros.
Operaciones Aritméticas: Operaciones tales como suma, resta, división o multiplicación.
Operaciones Lógicas: operaciones tales como Y, O, NO EXCLUSIVO, etc.
Control: Controles de secuencia, conexiones condicionales, etc.


Registros






Cuando el procesador ejecuta instrucciones, la información en forma temporal en pequeñas ubicaciones de memoria local de 8, 16, 32 o 64 bits, denominadas registros. Dependiendo del tipo de procesador, el número total de registros puede variar de 10 a varios cientos. Los registros más importantes son:



  • El registró acumulador (ACC): almacena los resultados de las operaciones aritméticas y lógicas.


  • El registro de estado (PSW, Processor Estado: Word o palabra de estado del procesador): contiene los indicadores de estado del sistema (lleva dijitos, desbordamientos, etc.).

  • El Registro de Instrucción (RI): contiene la instrucción que está siendo procesada actualmente.


  • El Contador Ordinal (OC o PC por Program Counter, Contador de Programa): contiene la dirección de la siguiente instrucción a procesar.


  • El Registro del Búfer: almacena información en forma temporal desde la memoria:


1. Memoria Caché: La Memoria Caché (también memoria buffer): es una memoria rápida que permite reducir los tiempos de espera de las distancias informaciones almacenadas en la RAM (Random Access Memory o Memoria de Acceso Aleatorio). En efecto, la memoria principal del ordenador es más lenta que la del procesador. Existen, sin embargo, tipos de memoria que son mucho más rápidos, pero que tienen un costo más elevado. La solución consiste entonces, en incluir este tipo de memoria local próxima al procesador y en almacenar en forma temporal la información principal que se procesa en él. Los últimos modelos de ordenadores poseen muchos niveles distintos de memoria Caché: La Memoria Caché nivel 1 (denominada L1 Caché, por Level 1 Caché) se encuentra integrada directamente al procesador. Se subdivide en dos partes: La Memora Caché nivel 2 (denominada L2 Caché, por Level 2 Caché) se encuentra ubicada en la carcasa junto con el procesador (en el chip). La Caché nivel 2 es un intermedio entre el procesador con su Caché nivel 1. La Memoria Caché nivel 3 (denominada L3 Caché, por Level 3 Caché) se encuentra ubicada en la placa madre.




2. Señales de Control: Las señales de control son señales electrónicas que orquestan las diversas unidades del procesador que participan en la ejecución de una instrucción. Dichas señales se envían utilizando un elemento denominado secuenciador. Por ejemplo: la señal Leer/Escribir permite que la memoria se entere de que el procesador desea leer o escribir información.




3. Unidades Funcionales: El procesador se compone de un grupo de unidades interrelacionadas (o unidades de control). Aunque la arquitectura del microprocesador varía considerablemente de un diseño a otro.

4. Unidad de Control: vincula la información entrante para luego decodificarla y enviarla a la unidad de ejecución. La Unidad de Control se compone de los siguientes elementos:

4.1: Secuenciador (o unidad lógica y de supervisión): sincroniza la ejecución de la instrucción con la velocidad de reloj.
4.2: Contador Ordinal: contiene la dirección de la instrucción que se ésta ejecutando actualmente.
4.3: Registro de Instrucción: contiene la instrucción siguiente.
4.4: Una Unidad de Ejecución (o unidad de procesamiento): cumple las tareas que le asigna la unidad de instrucción. La Unidad de Ejecución se compone de los siguientes elementos:
4.4.1: La Unidad Aritmética lógica.
4.4.2: La Unidad de Punto Flotante.
4.4.3: El Registro de Estado.
4.4.4: El Registro Acumulador.





Elementos que componen el procesador


  • Transistor:

Con el fin de procesar la información, el microprocesador posee un grupo de instrucciones, denominado "Conjunto de Instrucciones", hecho posible gracias a los circuitos electrónicos. Mas precisamente, el conjunto de instrucciones se realiza con la ayuda de semiconductores, pequeños "Conmutadores de circuito" que utilizan el efecto transistor, descubierto en 1947 por Jhon Barden, Walter H. Brattain y William Shockley, quienes recibieron por ello el premio Nobel en 1956. Un Transistor (contracción de los términos transferencia y resistor) es un componente electrónico semi-conductor que posee tres electrodos capaces de modificar la corriente que pasa a través suyo, utilizando uno de estos electrodos (denominado electrodo de control). Estos reciben el nombre de "componentes activos", en contraste a los "componentes pasivos", tales como: la resistencia o los capacitores, que solo cuentan con dos electrodos (a los que se les denomina "Bipolares"). El transistor MOS (metal, oxido silicona) es el tipo de transistor mas común utilizado en el diseño de circuitos integrados. Los Transistores MOS poseen dos áreas con carga negativa, denominadas respectivamente fuente (con una carga casi nula), y drenaje (con una carga de 5V), separadas por una región con carga positiva, denominada sustrato. El sustrato posee un electrodo de control superpuesto, denominado Puerta, que permite aplicar la carga al sustrato. Cuando una tensión no se aplica en el electrodo de control, el sustrato con una carga positiva actúa como barrera y evita el movimiento de los electrones de la fuente de Drenaje. Sin embargo, cuando se aplica la carga a la puerta, las cargas positivas del sustrato son repelidas y se realiza la apertura de un canal de comunicación con carga negativa entre la fuente y el drenaje. El Transistor actúa entonces como computador programable, gracias al electrodo de control. Cuando se aplica una carga al electrodo de control, este actúa como interruptor cerrado, y cuando no hay carga actúa como interruptor abierto.




  • Circuitos Integrados:

Una vez combinados, los transistores pueden constituir circuitos lógicos que al combinarse, forman procesadores. El primer circuito integrado data en 1958 y fue construido por Texas Instruments.








  • Familias:

Cada tipo de procesador posee su propio conjunto de instrucciones. Los procesadores se agrupan en las siguientes familias, de acuerdo con sus conjuntos de instrucciones exclusivos:* 80x86: la "X" representa la familia. Se hace mención a 386, 486, 586, 686, etc.
* ARM
* IA-64MIPS
* Motorola 6800
* Power PC
* SPARC
Esto explica por qué un programa producido para un tipo específico de procesador solo puede trabajar directamente en un sistema con otro tipo de procesador si se realiza lo que se denomina traducción de instrucciones, o emulación. El término "emulador" se utiliza para referirse al programa que realiza dicha traducción.



  • Conjunto de Instrucciones:

Un conjunto de instrucciones es la suma de las operaciones básicas que puede cumplir un procesador. El conjunto de instrucciones de un procesador es un factor determinante en la arquitectura del éste, aunque una misma arquitectura puede llevar a diferentes implementaciones por diferentes fabricantes. El procesador funciona de forma eficiente gracias a un número limitado de instrucciones, conectadas de forma permanente a los circuitos electrónicos. La mayoría de las operaciones se pueden realizar utilizando funciones básicas. Algunas arquitecturas, no obstante, sí incluyen funciones avanzadas de procesamiento.


  • Arquitectura CISC:
La arquitectura CISC (Complex Instruction set computer, Ordenador de conjunto de instrucciones complejas) se refiere a la conexión permanente del proceso con las instrucciones complejas, difíciles de crear a partir de las instrucciones de base. La arquitectura CISC es especialmente popular en procesadores de tipo 80x86. Este tipo de arquitectura tiene un costo elevado a causa de las funciones avanzadas impresas en la silicona. Las instrucciones son de longitud diversa, y a veces requieren mas de un ciclo de reloj. Dado que los procesadores basados en la arquitectura CISC solo pueden procesar una instrucción a la vez, el tiempo de procesamiento es una función del tamaño de la instrucción.




  • Arquitectura RISC:

Los procesadores con tecnología RISC (Reduced Instruction Set Computer, Ordenador de Conjunto de Instrucciones Reducidas) no poseen funciones avanzadas conectadas en forma permanente. Es por eso que los programas deben traducirse en instrucciones sencillas, lo cual complica el desarrollo o hace necesaria la utilización de un procesador más potente. Este tipo de arquitectura tiene un costo de producción reducido si se lo compara con los procesadores CISC. Además las instrucciones de naturaleza sencilla se ejecutan en un solo ciclo de reloj, lo cual acelera la ejecución del programa si se lo compara con los procesadores CISC. Para terminar, dichos procesadores pueden manejar multiples instrucciones en forma simultánea, procesándolas en paralelo.






  • Mejoras tecnológicas:

A través del tiempo, los fabricantes de microprocesadores (denominados fundadores) han desarrollado un determinado número de mejoras que optimizan el rendimiento del procesador.

  • Procesamiento paralelo:
El procesamiento paralelo consiste en la ejecución simultánea de instrucciones desde el mismo programa pero en diferentes procesadores. Implica la división del programa en multiples procesos manejados en paralelo a fin de reducir el tiempo de ejecución. No obstante, este tipo de tecnología necesita sincronización y comunicación entre los diversos procesos, de manera similar a lo que pueda llegar a ocurrir cuando se dividen las tareas en una empresa: se distribuye el trabajo en procesos discontinuos mas pequeños que son manejados por diversos departamentos. El funcionamiento de una empresa puede verse afectado en gran medida si la comunicación entre los distintos servicios internos no funciona de manera correcta.

  • Canalización:
Se denomina canalización a la tecnología destinada a mejorar la velocidad de ejecución de instrucciones mediante la colocación de las diversas etapas en paralelo. A fin de comprender el mecanismo de canalización, es necesario primero comprender las etapas de ejecución de una instrucción.

  • Superscaling:
La tecnología superscaling consiste en ubicar multiples unidades de procesamiento en paralelo con el fin de procesar multiples instrucciones por ciclo.

  • Hyperthreading:
La tecnología Hyperthreading (se escribe HT) consiste en ubicar dos procesadores lógicos junto con un procesador físico. El sistema reconoce así dos procesadores físicos y se comporta como un sistema multitareas, enviando de esta manera, dos subprocesos simultáneos denominados SMT (Simultaneosus Multi Threading, Multiprocesamiento Simultaneo). Este “engaño”, por decirlo de alguna manera, permite emplear mejor los recursos del procesador, garantizando el envió masivo de información al este.