Con la tecnología de Blogger.

CPU: Unidad Central de Proceso

lunes, 8 de agosto de 2011

Esquema General de la Computadora

Unidad Central de Proceso

La Unidad Central de Proceso (CPU) es el verdadero cerebro de la computadora. Su misión consiste en controlar y coordinar, todas las operaciones del sistema. Para ello extrae una a una, las instrucciones del programa que tiene alojado en la memoria central, las analiza y emite las órdenes necesarias para su completa realización.

Físicamente está formada por circuitos de naturaleza electrónica que en una microcomputadora se encuentran integrados en una pastilla o chip denominada microprocesador.
La CPU está compuesta por las siguientes unidades:


 La Unidad de Control (UC)
 La Unidad Aritmético-Lógica (UAL)
 Registros rápidos de propósito especial, que son utilizados internamente por la misma. Los mismos pueden ser de direcciones o acumuladores.

Unidad de Control

La misión principal de la UC, es ejecutar de forma ordenada, las instrucciones, que obtiene de la MP. Para lo cual ordena:

• Movimientos de datos a procesar, desde la MP hacia un registro de la UAL
• Las operaciones que debe realizar la UAL sobre los datos
• Movimientos del resultado de cada operación hacia su destino
• Actualizar el registro CP

Estas acciones se realizan en sincronismo con los pulsos generados por un reloj, que así determina los instantes en que se debe procesar la ejecución de una instrucción.

Otra función importante de la UC es la detección de requerimientos de interrupción en la ejecución de programa que se está ejecutando, provenientes de periféricos, así como el manejo automático del procesamiento de cada interrupción. Las interrupciones se realizan para que se pase a ejecutar una subrutina de algún evento no contemplado en el programa. Luego de su ejecución, la UC puede seguir ejecutando el programa interrumpido.


Es decir, es el centro nervioso de la computadora, ya que desde ella se controlan y gobiernan todas las operaciones, hacia el interior (UAL, registros, etc.) y hacia el exterior (MP, periféricos, etc.). Consta de un conjunto de circuitos integrados dentro de la CPU que cumplen funciones específicas que permiten, por ejemplo: detectar la disponibilidad o no de algún periférico, la disponibilidad de posiciones en la MP, etc. Para realizar su función, consta de los siguientes elementos:

Contador de Programa (CP): contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. Al iniciar la ejecución de programa toma la dirección de su primera instrucción. Incrementa su valor en uno, de forma automática, cada vez que se concluye una instrucción, salvo si la instrucción es de salto o de ruptura de secuencia, en cuyo caso el CP tomara la dirección de la instrucción que se tenga que ejecutar a continuación; esta dirección está en la propia instrucción en curso.

Registro de Instrucción (RI): contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación y en su caso los operandos o las direcciones de memorias de los mismos.

Código de Operación (CO): el valor de sus bits, indica al decodificador, de qué instrucción se trata (suma, resta, etc.).

Decodificador (D): se encarga de extraer el código de operación de la instrucción en curso (que está en el RI), lo analiza y emite las señales necesarias (micro comandos) al resto de los elementos para su ejecución a través del secuenciador.

Secuenciador (S): en este dispositivo se generan órdenes muy elementales (micro órdenes) que, sincronizadas por los impulsos de reloj, hacen que se vayan ejecutando poco a poco la instrucción que está cargada en el RI.

Método de Direccionamiento (MD): indica el modo de acceso a la memoria para buscar el dato o dirección necesario para la ejecución de determinadas instrucciones.

Campo de Dirección (CD): contiene la ubicación de datos (a ser procesados) dentro de la memoria central para acceder, junto con la información de MD, al dato o dirección requeridos para la ejecución de determinadas instrucciones.

Reloj (R): proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción.

La UC requiere un número determinado de pulsos de reloj y, por lo tanto, igual número de combinaciones distintas deben aparecer en los cables que salen de la UC, según las instrucciones que le toque ejecutar.

Dichas combinaciones están guardadas en una ROM que forma parte de la unidad de control, denominada “ROM de Control”.

Dicha ROM viene con estas combinaciones de fábrica y es inmodificable. La ROM es una memoria de microinstrucciones que luego se transforman en micro comandos.

Cada pulso de reloj que recibe genera una nueva combinación de 1 y 0 en sus líneas de salida. De esta manera, a cada instrucción que la UC puede ejecutar, le corresponde una secuencia de combinaciones binarias contenidas en la ROM de Control.

En síntesis, cuando en una CPU dichas combinaciones están almacenadas en una ROM de Control, se dice que se trata de una máquina microprogramada y cada combinación se denomina microinstrucción. Es decir, cada instrucción se ejecuta mediante una secuencia de microinstrucciones que progresa con cada pulso de reloj, las cuales determinan las acciones que debe realizar la UC.

Procesos tipo CISC y RISC

En los ultimos años se distinguen dos grandes tendencias en la construcción de procesadores. Se diferencian esencialmente en las características de su repertorio de instrucciones.

Los procesadores CISC (Complex Instruction Set Computer) tienen un repertorio con un número de instrucciones alto (200-300); estas instrucciones además son más complejas que las de RISC, con lo que la circuitería necesaria para decodificación y secuenciación también aumenta, y la velocidad del proceso disminuye. Como ventaja, tenemos que se necesitan menos instrucciones para ejecutar una tarea. Además, el formato de las instrucciones es bastante variable (es decir, hay bastantes formatos). Por otro lado, el diseño hace que el procesador tenga que realizar constantes accesos a memoria.

Se le llama CISC a aquellos procesadores que utilizan instrucciones internas de tamaño variable. Estos procesadores, a diferencia de los RISC, pueden ejecutar operaciones complejas en una sola instrucción, pero requieren una etapa de decodificación para cada instrucción. Ejemplo de CISC son los procesadores x86 de Intel y 68xxxx de Motorola.

Los procesadores RISC (Reduced Instruction Set Computer) tienen características opuestas a los CISC. Su juego de instrucciones es más reducido (menos de 128), y las instrucciones son más sencillas (con lo que se necesitarán más instrucciones para ejecutar una tarea). El formato de instrucciones es fijo (o serán pocos formatos), con lo que el control del hardware es más sencillo y se facilita la colocación de las instrucciones en la memoria, lo que implica que los accesos a la memoria se aceleren. Por otra parte, estos accesos a memoria son menos frecuentes ya que el procesador posee un mayor número de registros. Estos procesadores son los que están presentes en las estaciones de trabajo. Como ejemplos podemos citar los procesadores ALPHA de Digital Equipment, y los SuperSPARC y MicroSPARC de Sun Microsystems y Texas Instruments.

Se le llama RISC a aquellos procesadores que utilizan instrucciones internas de tamaño fijo. Estos procesadores, a diferencia de los CISC, deben ejecutar operaciones complejas utilizando múltiples instrucciones. Pero debido a que todas tienen un mismo tamaño, no requiere de una etapa de decodificación y permiten obtener mayores velocidades de procesamiento.


Relacionada con los conceptos RISC y CISC está la técnica de segmentación ("pipeline"); esta técnica consiste en dividir la ejecución de la instrucción en bloques independientes que se ejecutan en paralelo. Es más eficiente para los procesadores RISC, aunque también se implementa en CISC. Para incrementar el rendimiento del procesador se debe bucar instrucciones ejecutables en paralelo. El sistema de carga de instrucciones debe analizar la secuencia de instrucciones que entran al procesador y buscar instrucciones ejecutables en paralelo asi como diseñar un control que tenga en cuenta posibles dependencias de datos entre las instrucciones a ejecutar en paralelo. Esto hace que el hardware empiece a complicarse.

La UC de computador descripta (80x86 hasta Pentium inclusive) son del tipo CISC, o sea, Computador con Set de instrucciones Complejo (set mayor a 200 instrucciones de máquina, entre simples y complejos, de formato desigual). Se caracterizan por presentar un conjunto grande de instrucciones, desde las sencillas para procesar números, hasta las complejas para estructuras de datos como matrices. Requieren ROM de Control en la CPU.

Mediante el procesamiento “pipe line” es posible que en un procesador CISC se termine de ejecutar en promedio una instrucción simple por cada pulso (ciclo) de reloj.

Los computadores con procesadores RISC, o sea, Computador con Set Reducido de Instrucciones ( repertorio menor a 100 instrucciones simples de maquina, de igual formato, todos de 32 a 64 bits), permiten un “pipe line” más eficiente que los CISC, asegurando la ejecución de por lo menos una instrucción por pulso de reloj. Un RISC que funciona a 60 Mhz ejecuta 60 MIPS (micro instrucciones por segundo). Estos procesadores no tienen ROM de Control.

Características RISC

La tendencia de hacer instrucciones de máquina cada vez más complejas, resulta en códigos de operación de tan alto nivel que tiende a romper la diferencia entre assembler y compilador. Pero estudios al respecto revelaron elevados tiempos de diseño, aumento de errores, e implementaciones inconsistentes. Además se descubrió que las instrucciones muy complejas no eran utilizadas con mucha frecuencia y en muchos casos eran responsables del retardo de la performance de todo el sistema. Esto último en particular debido a que la Unidad de Control debe ser más compleja y si es microprogramada provoca que las instrucciones demoren mayor tiempo en su ejecución.


Con el propósito de explotar nuevos caminos aparecen las tecnologías RISC. Algunas de las características más comunes que pueden verse en computadoras de esta tecnología son:

• Muchas de las instrucciones se ejecutan en un solo ciclo de máquina - conjunto de instrucciones de cargar/almacenar (load/store). Es decir se accede a memoria exclusivamente mediante las instrucciones load y store, el resto de las instrucciones realizan sus operaciones entre registros - decodificación de instrucciones hardwired (en oposición a la técnica de microprograma)

• Existen relativamente pocas instrucciones y modos de direccionamiento - todas las instrucciones deberían tener la misma longitud para facilitar la tarea de decodificación y homogeneizar los tiempos de carga de las mismas - la complejidad se ha desplazado hacia los compiladores optimizados - existe un alto grado de pipeline en los caminos de los datos para obtener mucha concurrencia - gran cantidad de registros (windowed o no-windowed) - muchos niveles de jerarquías de memoria - conjunto de instrucciones diseñado para determinada clase de aplicaciones. - soporte de lenguajes de alto nivel (esto último debido a que como hay pocas instrucciones sobraría lugar en el chip para colocar elementos que ayuden a lenguajes de alto nivel, como manejo de listas, stacks, etc)

La tecnología RISC produce una filosofía de diseño que puede resumirse como sigue:

1) Analizar el objeto sobre el cual se desarrollan las aplicaciones a fin de determinar cuáles son las operaciones más frecuentes. A esta característica se la llama “predicción”.

2) Optimizar los caminos que deben recorrer los datos para ejecutar las operaciones o instrucciones (del punto 1) tan rápido como sea posible.

3) Incluir otras instrucciones sólo si forman parte de los caminos optimizados previamente y si son de relativa frecuencia, y si su inclusión no enlentece la ejecución de las instrucciones más frecuentes.

4) Aplicar una estrategia similar a los otros recursos del procesador. Incluir un recurso sólo si éste está justificado por su frecuencia de uso, y su inclusión no enlentece a otros recursos más utilizados.

5) Tratar de trasladar lo más que se pueda la complejidad en tiempos de ejecución al momento de compilación, recargando el software de compilación y liberando al hardware de ejecución.

Debe tenerse cuidado con una clasificación de computadoras de tecnología RISC, ya que, por ejemplo, muchas computadoras tienen decodificadores de instrucciones microcodificadas, un conjunto grande de instrucciones y un conjunto pequeño de registros pero sin embargo son de diseño definitivamente RISC.
La cuestión importante es que esta filosofía RISC está respaldada en eldiseño de un procesador para una aplicación específica.

Características de los procesadores CISC:

 Gasta el 70 % de su tiempo accediendo a los operandos
 Los operandos accedidos con más frecuencia son escalares
 Cerca del 80 % de las referencias a escalares son locales al procedimiento
 El pasaje de parámetros representa alrededor del 10 % del total del tráfico de
 Memoria


Considerando que el porcentaje de llamadas a procedimientos ronda el 25 a 40 % del tiempo total de ejecución, sumado al ahorro que puede obtenerse en cuanto al manejo de las variables locales y al pasaje de parámetros, esto indujo a que en todos los diseños RISC se intentara sacar provecho de la performance mediante:

1) La velocidad que se obtiene al almacenar variables dentro del chip.

2) La habilidad del compilador para aprovechar en forma efectiva la propiedad de localidad de las variables de un programa.

Generalmente existe, en consecuencia, una gran cantidad de registros que están organizados en forma de ventanas múltiples solapadas y de tamaño fijo. Existen conjuntos de registros de ambas modalidades: windowed y no windowed.



RISC Vs CISC: existe una gran controversia cuando se quiere comparar computadoras con conjunto de instrucción reducido y computadoras con conjunto de instrucción complejo (RISC vs. CISC). Esta misma controversia puede dividirse en dos grandes categorías:

1º) Qué diferencia una RISC de una CISC ?

2º) Cómo puede uno hacer mediciones razonables y útiles de performance para compararlas?

Muchas de las características de las RISC han sido muy utilizadas en computadoras CISC. Características tales como el pipeline de datos, memoria cache, y windowing de registros son vistos muy a menudo como atributos de un diseño RISC.

Originalmente los diseños RISC se realizaron apuntando a aplicaciones específicas y debido a eso fueron optimizados para la ejecución de una clase bien definida de programas. De forma característica, las CISC fueron diseñadas para un amplio rango de aplicaciones y por consiguiente incluyen el soporte para muy diversos entornos de programación. Muchas de las más populares técnicas de medición de performance son de un valor cuestionable cuando se trata de medir performance entre RISC y CISC.

Típicamente, los efectos del overhead del sistema operativo, la optimización del compilador y los conjuntos de registros múltiples no son considerados en forma apropiada. Los benchmarks relativos a la cantidad de transacciones de la aplicación por segundo tienen más significado que la simple medición de las instrucciones ejecutadas por segundo. Aún existen, actualmente, fuertes disputas entre los defensores de RISC y CISC.
De acuerdo al avance del mercado se detectan RISC sólo de nombre (ya que poseen más de 180 tipos diferentes de instrucciones) pero que mantienen la llamada a procedimientos desde hardware y el sistema de ventanas, que es lo realmente novedoso Existen ya versiones que realizan operaciones de punto flotante en el llamado 8-9 ciclo de máquina. Se define el tiempo de ciclo de máquina como el tiempo que lleva leer y sumar el contenido de 2 registros y guardar el resultado en un tercero.

Nuevas Tendencias: CISC & RISC: Lo Mejor de Ambos en Uno

Poco antes del 2000, los diseñadores de procesadores estuvieron repartidos en dos campos opuestos. Unos apoyaban diseños CISC y el otro diseños RISC. Sin embargo, dicha discución esta llegando a su fin debido a que los diseñadores contemporáneos que realizan los diseños RISC, pudieron beneficiarse con características de algún CISC y viceversa.

Hoy, la mayoría de los procesadores CISC se basan en la arquitectura híbrida cisc-cisc-risc. Estos diseños utilizan un decodificador para convertir instrucciones CISC en instrucciones RISC antes de la ejecución. Esto permite que sean procesados por una base RISC, que realiza instrucciones simples muy rápidamente. Tener una base RISC es ventajoso porque permite un funcionamiento que realza sus mejores características, tales como la predicción y el mejor aprovechamiento de la técnica pipeline.


Risc y CISC: lo mejor de ambos mundos incluyen a familia de procesadores Pentium y Athlon. Sin embargo, los híbridos cisc-cisc-risc todavía consumen mucha energía y no son los mejores candidatos para determinadas aplicaciones. De todas maneras, esta tendencia es relativamente nueva y promete muchos beneficios futuros.

Unidad Aritmético-Lógica

La UAL es la encargada de realizar las operaciones elementales de tipo aritmético (sumas, restas, productos y divisiones), de tipo lógico (and, or, comparaciones, etc) y de otro tipo (rotaciones, desplazamientos sobre grupos de bits, etc) requeridas para la ejecución de los programas. Para comunicarse con las otras unidades funcionales, utiliza el bus de datos y para realizar su función necesita los siguientes elementos:


Circuito Operacional (COP): contiene los circuitos necesarios para la realización de las operaciones con los datos procedentes de los registros de entrada (REN). Este circuito tiene unas entradas de órdenes para seleccionar la clase de operación que debe realizar en cada momento.

Registros de Entrada (REN): en ellos se almacenan los datos u operandos que intervienen en una instrucción antes de la realización de la operación por parte del circuito operacional. También se emplean para el almacenamiento para resultados intermedios o finales de las operaciones respectivas. Funciona como un buffer.

Registro Acumulador (RA): almacena los resultados de las operaciones llevadas a cabo por el COP. Está conectado con los REN para realimentación en el caso de operaciones encadenadas. Asimismo tiene una conexión directa al bus de datos para el envío de los resultados a la memoria central o a la UC.

Registro de Estado (RES): se trata de un conjunto de biestables en los que se deja constancia de algunas condiciones que se dieron en la ultima operación realizada y que deberán ser tenidas en cuenta en operaciones posteriores. Por ejemplo: le indica a la UC cuando hay un error o si el programador no tuvo en cuenta la división por cero.

Junto con el resultado de cada operación, la UAL genera indicadores de estado, que pueden ser: Z de resultado cero (o no), S de signo positivo o negativo, C si en una suma hay acarreo o no, hacia la posición siguiente y V (de overflow) si el resultado, como número entero, rebalsa o no el formato.

Cómo Trabaja la ALU


En el primer y segundo operando se trabaja con 1 bit.

Las operaciones se hacen bit a bit y con bit de igual peso.

Ej: para hacer una AND
1° Op. --> 4 bit
2° Op. --> 4 bit

0 comentarios:

Publicar un comentario

About Me

Mi foto
Mauricio Vistosi
Ver todo mi perfil

  © Blogger template The Professional Template II by Ourblogtemplates.com 2009

Back to TOP