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