viernes, 13 de marzo de 2015

Capitulo 2 Procesadores

Irasema González Segundo.
24 de Febrero de 2015.
Organización de computadoras
Andrew S. Tanenbaum
Capitulo 2 Procesadores

Procesadores.

Unidad central de procesamiento (del inglés Central Processing Unit, CPU), es el hardware dentro de un computador u otros dispositivos programables, que interpreta las instrucciones de un programa de ordenador mediante la realización de las operaciones básicas aritméticas, lógicas y de entrada/salida del sistema.
Dos componentes típicos de una CPU son la unidad aritmético lógica (ALU), que realiza operaciones aritméticas y lógicas, y la unidad de control (CU), que extrae instrucciones de la memoria, las decodifica y las ejecuta, llamando a la ALU cuando sea necesario.
Todo conectado por buses que comunican ya sea internamente o cuando son externos como el caso de conectar una memoria.

2.1.1 Organización de la CPU.
Unidad de proceso central: esta es la responsable de la interpretación y ejecución de instrucciones contenidas en la memoria principal, las comunicaciones entre la ALU y la memoria principal se realizan a través de 2 canales funcionalmente distintos: el de direcciones y el de datos.
Para introducir en la memoria, una instrucción especifica, la ALU envía a dicha memoria la dirección de la instrucción por el canal de direcciones y recibe por el mismo medio la instrucción que está en esa dirección.
Parte de la instrucción es utilizada por la ALU para identificar la operación. Esta parte se llama código de operación de la instrucción. La información restante se utiliza para determinar la o las localidades de los datos con los cuales se va a efectuar la operación.
La acción de leer una instrucción en la ALU y prepararla para su ejecución se denomina camino de datos. Para completar una instrucción la ALU decodifica el código de operación, genera las señales de control que se necesitan para introducir los operandos requeridos y controla la ejecución de la instrucción.

2.1.2 Ejecución de Instrucciones.

La función básica que realiza un computador es la ejecución de un programa. Un programa consiste en un conjunto de instrucciones y datos almacenados en la unidad de memoria. La CPU es la encargada de ejecutar las instrucciones especificadas en el programa.
La secuencia de operaciones realizadas en la ejecución de una instrucción constituye lo que se denomina ciclo de instrucción. Lo más cómodo es considerar que el procesamiento del ciclo de instrucción consta de dos fases:
·                 Buscar la siguiente instrucción de la memoria y colocarla en el registro de instrucciones.
·                 Modificar el contador de programa de modo que apunte a la siguiente instrucción.
·                 Determinar el tipo de la instrucción que se trajo.
·                 Si la instrucción utiliza una palabra de la memoria, determinar donde esta.
·                 Buscar la palabra, si es necesario, y colocar en un registro de la CPU
·                 Ejecutar la Instrucción.
·                 Volver al paso 1 para comenzar la ejecución de la siguiente instrucción.
Esta sucesión de pasos se llama ciclo de búsqueda-decodificación-ejecución y es fundamental para el proceso de todas las computadoras.

2.1.3 RISC VS CISC


Arquitectura RISC 

En la arquitectura computacional, RISC (del inglés reduced instruction set computer) es un tipo de microprocesador con las siguientes características fundamentales:

Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.

El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria.

RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse.
La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas.

Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. Esto con llevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria.


Características:

En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo:

Incrementar el tamaño del conjunto de registros.
Mayor velocidad en la ejecución de instrucciones.
Implementar medidas para aumentar el paralelismo interno.
Añadir cachés enormes.
Añadir otras funcionalidades, como E/S y relojes para minicontroladores.


Arquitectura CISC

En la arquitectura computacional, CISC (complex instruction set computer) es un modelo de arquitectura de computadora.

Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en contraposición a la arquitectura RISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.

Entre las ventajas de CISC destacan las siguientes:

Reduce la dificultad de crear compiladores.
Permite reducir el costo total del sistema.
Reduce los costos de creación de software.
Mejora la compactación de código.
Facilita la depuración de errores.

2.1.4 Principios de diseño de las  computadoras modernas.


Existe un conjunto de principios de diseño, a veces llamados principios de diseño RISC, que los arquitectos de las CPU del propósito general hacen lo posible por seguir.
Todas las instrucciones se ejecutan directamente en hardware, para que las instrucciones sean mas rápidas. Las computadoras que implementan conjuntos de instrucciones CISC, las instrucciones pueden dividirse en partes discretas que luego pueden ejecutarse como una secesión de microinstrucciones.

Las instrucciones deben ser fáciles de decodificar, debido a que se puedan agilizar este proceso es útil e incluye hacer que las instrucciones tenga una longitud fija.
Una de las formas mas sencillas de desglosar las operaciones individuales es que todas las instrucciones provengan y regresen a registros, la operación de transferir operando entre la memoria y los registros pueden realizarse con instrucciones diferentes. Esto implica las instrucciones LOAD Y STORE que hacen referencia a la memoria.

2.1.5 Paralelismo en el nivel de instrucciones.

Paralelismo a nivel de instrucción es una medida de la cantidad de las operaciones en un   de ordenador se puede realizar al mismo tiempo. El solapamiento potencial entre las instrucciones que se llama paralelismo a nivel de instrucción.
Hay dos enfoques para el paralelismo a nivel de instrucción:
·         Hardware
·         Software

Filas de procesamiento: se divide la ejecución de instrucciones en varias partes, cada una de las cuales se maneja con un componente de hardware dedicado, y todos estos componentes pueden operar en paralelo.

Esas instrucciones se almacenaban en una serie de registros llamados buffer de pre búsqueda, así cuando se requería una instrucción casi siempre podría tomarse del buffer de pre búsqueda en el lugar de esperar a que terminara una lectura de la memoria.

El concepto de fila de procesamiento (pipeline) lleva esta estrategia mucho mas lejos, en el lugar de dividir la ejecución de instrucciones en solo dos partes, a menudo se divide en muchas partes, cada una de las cuales se maneja con un componente de hardware dedicado, estos procesos pueden operar en paralelo.

Se denomina arquitectura superescalar a aquella implementación capaz de ejecutar más de una instrucción por ciclo de reloj. Para ello se usan múltiples cauces, con lo que varias instrucciones pueden iniciar su ejecución de manera independiente. El término superescalar se emplea como contraposición a la arquitectura escalar, que solo es capaz de ejecutar una instrucción por ciclo de reloj.

2.1.6 Paralelismo en el nivel de procesador.

 Computadoras de Matriz. 
La regularidad y estructura de estos programas los convierte en candidatos para una aceleración de ejecucion, si bien estos dos sistemas son similares uno trabaja con un solo procesador y otros se considera como una computadora paralela.

Un arreglo de procesadores consiste en un gran número de procesadores idénticos que ejecutan la misma secuencia de instrucciones con diferentes conjuntos de datos. El plan original era construir una maquina construida por cuatro cuadrantes, cada uno de los cuales tenían una cuadricula 8x8 de los elementos procesadores/memoria.

Multiprocesadores.

Es un arreglos de procesadores no son CPU independientes ya que todos ellos comparten la misma unidad de control, el sistema en paralelo construido por CPU propiamente dichas es el multiprocesador, un sistema con varias CPU que comparten memoria común.

 Multicomputadoras.

 Los multiprocesadores con un número con un número reducido de procesadores son relativamentes fáciles de construir, las dificultades se multiplica de forma sorprendente cuando aumentan el número de procesadores, lo difícil es conectar todos los procesadores a la memoria, tienen una memoria compartida y se han limitado a construir sistemas que consisten en una gran numero de computadoras interconectadas a esto se le llama multicomputadoras.


Los multicomputadores propiamente dichos son los sistemas formados a partir de una granja de ordenadores, habitualmente con las mismas capacidades y características de rendimiento. De esta manera, las tareas se pueden distribuir entre los diferentes ordenadores que integran la granja y hacer el trabajo más rápido. Por ejemplo, en una productora de cine de animación por ordenador, una escena se podría dividir en pequeños trozos, y cada uno de ellos pasaría a ser tratado por un ordenador. Por otra parte, con sistemas multicomputador se pueden llegar a atender peticiones de miles de usuarios. Por ejemplo, los grandes servicios de búsqueda de Internet disponen de decenas de miles de ordenadores para atender los millones de peticiones que reciben cada minuto.

No hay comentarios:

Publicar un comentario