ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Arquitectura De Computadoras

fershow1731 de Agosto de 2014

3.514 Palabras (15 Páginas)149 Visitas

Página 1 de 15

Apuntes de arquitectura de computadoras

Unidad 1 Modelo de arquitecturas de cómputo.

1.1 Modelos de arquitecturas de cómputo.

1.1.1 Arquitecturas Clásicas.

Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos de

vacío. Aun son usadas en procesadores empotrados de gama baja y son la base de la mayoría de las

arquitecturas modernas

Arquitectura Mauchly-Eckert (Von Newman)

Esta arquitectura fue utilizada en la computadora ENIAC. Consiste en una unidad central de proceso

que se comunica a través de un solo bus con un banco de memoria en donde se almacenan tanto los

códigos de instrucción del programa, como los datos que serán procesados por este.

Esta arquitectura es la más empleada en la actualidad ya, que es muy versátil. Ejemplo de esta

versatilidad es el funcionamiento de los compiladores, los cuales son programas que toman como

entrada un archivo de texto conteniendo código fuente y generan como datos de salida, el código

maquina que corresponde a dicho código fuente (Son programas que crean o modifican otros

programas). Estos datos de salida pueden ejecutarse como un programa posteriormente ya que se usa la

misma memoria para datos y para el código del programa.

Figura 1.1.1.2 Diagrama a bloques de la arquitectura Von Newman.

La principal desventaja de esta arquitectura, es que el bus de datos y direcciones único se convierte en

un cuello de botella por el cual debe pasar toda la información que se lee de o se escribe a la memoria,

obligando a que todos los accesos a esta sean secuenciales. Esto limita el grado de paralelismo

(acciones que se pueden realizar al mismo tiempo) y por lo tanto, el desempeño de la computadora.

Este efecto se conoce como el cuello de botella de Von Newman

En esta arquitectura apareció por primera vez el concepto de programa almacenado. Anteriormente la

secuencia de las operaciones era dictada por el alambrado de la unidad de control, y cambiarla

Procesador Memoria Principal

Almacena

el programa y

los datos

Entrada y salida

Bus principal

Registros

ALU

Unidad de

Control

implicaba un proceso de recableado laborioso, lento(hasta tres semanas) y propenso a errores. En esta

arquitectura se asigna un código numérico a cada instrucción. Dichos códigos se almacenan en la

misma unidad de memoria que los datos que van a procesarse, para ser ejecutados en el orden en que se

encuentran almacenados en memoria. Esto permite cambiar rápidamente la aplicación de la

computadora y dio origen a las computadoras de propósito general

Mas a detalle, el procesador se subdivide en una unidad de control (C.U.), una unidad lógica aritmética

(A.L.U.) y una serie de registros. Los registros sirven para almacenar internamente datos y estado del

procesador. La unidad aritmética lógica proporciona la capacidad de realizar operaciones aritméticas y

lógicas. La unidad de control genera las señales de control para leer el código de las instrucciones,

decodificarlas y hacer que la ALU las ejecute.

Arquitectura Harvard

Esta arquitectura surgió en la universidad del mismo nombre, poco después de que la arquitectura Von

Newman apareciera en la universidad de Princeton. Al igual que en la arquitectura Von Newman, el

programa se almacena como un código numérico en la memoria, pero no en el mismo espacio de

memoria ni en el mismo formato que los datos. Por ejemplo, se pueden almacenar las instrucciones en

doce bits en la memoria de programa, mientras los datos de almacenan en ocho bits en una memoria

aparte.

Figura 1.1.1.2 Diagrama a bloques de la arquitectura Harvard

El hecho de tener un bus separado para el programa y otro para los datos permite que se lea el código

de operación de una instrucción, al mismo tiempo se lee de la memoria de datos los operados de la

instrucción previa. Así se evita el problema del cuello de botella de Von Newman y se obtiene un mejor

desempeño.

En la actualidad la mayoría de los procesadores modernos se conectan al exterior de manera similar a a

la arquitectura Von Newman, con un banco de memoria masivo único, pero internamente incluyen

varios niveles de memoria cache con bancos separados en cache de programa y cache de datos,

buscando un mejor desempeño sin perder la versatilidad.

1.1.2 Arquitecturas Segmentadas.

Las arquitecturas segmentadas o con segmentación del cauce buscan mejorar el desempeño realizando

paralelamente varias etapas del ciclo de instrucción al mismo tiempo. El procesador se divide en varias

unidades funcionales independientes y se dividen entre ellas el procesamiento de las instrucciones. Para

Procesador Memoria de datos

Entrada y salida

Bus de

datos

Memoria de

programa

Bus de

programa

Registros

ALU

Unidad de

Control

comprender mejor esto, supongamos que un procesador simple tiene un ciclo de instrucción sencillo

consistente solamente en una etapa de búsqueda del código de instrucción y en otra etapa de ejecución

de la instrucción. En un procesador sin segmentación del cauce, las dos etapas se realizarían de manera

secuencial para cada una de la instrucciones, como lo muestra la siguiente figura.

Figura 1.1.2.1 Búsqueda y ejecución en secuencia de tres instrucciones en un

procesador sin segmentación del cause

En un procesador con segmentación del cause, cada una de estas etapas se asigna a una unidad

funcional diferente, la búsqueda a la unidad de búsqueda y la ejecución a la unidad de ejecución. Estas

unidades pueden trabajar en forma paralela en instrucciones diferentes. Estas unidades se comunican

por medio de una cola de instrucciones en la que la unidad de búsqueda coloca los códigos de

instrucción que leyó para que la unidad de ejecución los tome de la cola y los ejecute. Esta cola se

parece a un tubo donde las instrucciones entran por un extremo y salen por el otro. De esta analogía

proviene el nombre en ingles: Pipelining o entubamiento.

Figura 1.1.2.3 Comunicación entre las unidades en un procesador con segmentación de cauce.

Completando el ejemplo anterior, en un procesador con segmentación, la unidad de búsqueda

comenzaría buscando el código de la primera instrucción en el primer ciclo de reloj. Durante el

segundo ciclo de reloj, la unidad de búsqueda obtendría el código de la instrucción 2, mientras que la

unidad de ejecución ejecuta la instrucción 1 y así sucesivamente. La siguiente figura muestra este

proceso.

E1

B1

E2

B2

E3

B3 B3 Unidad de búsqueda

Unidad de ejecución

Figura 1.1.2.3 Búsqueda y ejecución en secuencia de tres instrucciones en un

procesador con segmentación del cause

En este esquema sigue tomando el mismo numero de ciclos de reloj (el mismo tiempo), pero como se

B1 E1 B2 E2 B3 E3

Unidad de

Búsqueda

Unidad de

Cola de Instrucciones ejecución

trabaja en varias instrucciones al mismo tiempo, el número promedio de instrucciones por segundo se

multiplica. La mejora en el rendimiento no es proporcional al numero de segmentos en el cauce debido

a que cada etapa no toma el mismo tiempo en realizarse, además de que se puede presentar

competencia por el uso de algunos recursos como la memoria principal. Otra razón por la que las

ventajas de este esquema se pierden es cuando se encuentra un salto en el programa y todas las

instrucciones que ya se buscaron y se encuentran en la cola, deben descartarse y comenzar a buscar las

instrucciones desde cero a partir de la dirección a la que se salto. Esto reduce el desempeño del

procesador y aún se investigan maneras de predecir los saltos para evitar este problema.

Figura 1.1.2.4 Consecuencias de la competencia por un recurso

1.1.3 Arquitecturas de multiprocesamiento.

Cuando se desea incrementar el desempeño más aya de lo que permite la técnica de segmentación del

cauce (limite teórico de una instrucción por ciclo de reloj), se requiere utilizar más de un procesador

para la ejecución del programa de aplicación.

Las CPU de multiprocesamiento se clasifican de la siguiente manera (Clasificación de Flynn):

● SISO – (Single Instruction, Single Operand ) computadoras Monoprocesador

● SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales, Exenciones MMX

● MISO – (Multiple Instruction, Single Operand ) No implementado

● MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters, GPUs

Procesadores vectoriales – Son computadoras pensadas para aplicar un mismo algoritmo numérico a

una serie de datos matriciales, en especial en la simulación de sistemas físicos complejos, tales como

simuladores para predecir el clima, explosiones atómicas, reacciones químicas complejas, etc., donde

los datos son representados como grandes números de datos en forma matricial sobre los que se deben

se aplicar el mismo algoritmo numérico.

La mayoría

...

Descargar como (para miembros actualizados) txt (24 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com