Está en la página 1de 23

UNIDAD 1

MODELO DE ARQUITECTURAS
DE CÓMPUTO.
1.1 MODELOS DE ARQUITECTURAS DE CÓMPUTO.

1.1.1 Clásica

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.
PROCESADOR Bus Principal
Memoria principal
Unidad de
control Almacena el programa
y los datos
ALU

Entrada y Salida
Registros

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 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 8 bits en una memoria aparte.
Bus de PROCESADOR Bus de
programa Datos
Memoria principal
Unidad de
Memoria de control Almacena el programa
y los datos
programa
ALU

Entrada y Salida
Registros

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 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 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.

B1 E1 B2 E2 B3 E3

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.

UNIDAD DE UNIDAD DE
BUSQUEDA COLA DE INSTRUCCIONES EJECUCION

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.

B1 B2 B3

E1 E2 E3
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 número de ciclos de reloj (el mismo
tiempo), pero como se 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 número 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.
Espera Espera

BUSQUEDA EJECUCION

Consecuencias de la competencia por un recurso

1.1.3 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:


SISO – (Single Instruction, Single Operand ) computadoras independientes
SIMO – (Single Instruction, Multiple Operand ) procesadores vectoriales
MISO – (Multiple Instruction, Single Operand ) No implementado
MIMO – (Multiple Instruction, Multiple Operand ) sistemas SMP, Clusters
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.

En los sistemas SMP (Simetric Multiprocesesors), varios procesadores


comparten la misma memoria principal y periféricos de I/O, Normalmente
conectados por un bus común.

Se conocen como simétricos, ya que ningún procesador toma el papel de


maestro y los demás de esclavos, sino que todos tienen derechos similares en
cuanto al acceso a la memoria y periféricos y ambos son administrados por el
sistema operativo.

Los Clusters son conjuntos de computadoras independientes conectadas en una


red de área local o por un bis de interconexión y que trabajan cooperativamente
para resolver un problema.

Es clave en su funcionamiento contar con un sistema operativo y programas de


aplicación capaces de distribuir el trabajo entre las computadoras de la red.
1.2 ANÁLISIS DE LOS COMPONENTES

1.2.1 CPU

Los bloques funcionales básicos son: la unidad de procesamiento central (CPU), la


Memoria principal, y el Procesador de Entrada - Salida.
La Unidad central de proceso o CPU, se puede definir como un circuito
microscópico que interpreta y ejecuta instrucciones.
La CPU se ocupa del control y el proceso de datos en los ordenadores.
Habitualmente, la CPU es un microprocesador fabricado en un chip, un único trozo
de silicio que contiene millones de componentes electrónicos.
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 CPU 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 CPU 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 CPU 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 CPU y prepararla para su ejecución se
denomina ciclo de búsqueda. Para completar una instrucción la CPU 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.
El microprocesador de la CPU está formado por una unidad aritmético lógica que
realiza cálculos y comparaciones, y toma decisiones lógicas (determina si una
afirmación es cierta o falsa mediante las reglas del álgebra de Boole); por una serie
de registros donde se almacena información temporalmente, y por una unidad de
control que interpreta y ejecuta las instrucciones.

Para aceptar órdenes del usuario, acceder a los datos y presentar los resultados, la
CPU se comunica a través de un conjunto de circuitos o conexiones llamado bus.

El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco


duro), los dispositivos de entrada (por ejemplo, un teclado o un ratón) y los
dispositivos de salida (por ejemplo, un monitor o una impresora).
Registro e instrucciones de la CPU

PC
MAR
MDR
Registros IR
PSW OR

NOR

Instrucciones AND

Aritmética y Lógica NAND

Desplazamiento

Rotación

Reg. a Reg.
Movimientos de datos Reg. a Mem.
Mem. A reg.
Mem a mem.

Operaciones de datos en bloque


Instrucciones de control de programa
Reg. estados y control
Instrucciones de Entrada-Salida Reg. De información

Instrucciones
Tipos
Básicamente nos encontramos con dos tipos de diseño de los microprocesadores:

RISC (Reduced-Instruction-Set Computing) Computadoras con un conjunto de


instrucciones reducido.
CISC (complex-instruction-set computing) Computadoras con un conjunto de
instrucciones complejo.

Los microprocesadores RISC se basan en la idea de que la mayoría de las


instrucciones para realizar procesos en el computador son relativamente simples por
lo que se minimiza el número de instrucciones y su complejidad a la hora de diseñar
la CPU.
Algunos ejemplos de arquitectura RISC son el SPARC de Sun Microsystem's, el
microprocesador Alpha diseñado por la antigua Digital, hoy absorbida por Compaq y
los Motorola 88000 y PowerPC. Estos procesadores se suelen emplear en
aplicaciones industriales y profesionales por su gran rendimiento y fiabilidad.

Los microprocesadores CISC, al contrario, tienen una gran cantidad de instrucciones


y por tanto son muy rápidos procesando código complejo. Las CPU´s CISC más
extendidas son las de la familia 80x86 de Intel cuyo último micro es el Pentium II.
Últimamente han aparecido otras compañías como Cirix y AMD que fabrican
procesadores con el juego de instrucciones 80x86 y a un precio sensiblemente
inferior al de los microprocesadores de Intel.
1.2.2 MEMORIA
La memoria de un ordenador se puede definir como los circuitos que permiten
almacenar y recuperar la información. En un sentido más amplio, puede referirse
también a sistemas externos de almacenamiento, como las unidades de disco o de
cinta.
Hoy en día se requiere cada vez más memoria para poder utilizar complejos
programas y para gestionar complejas redes de computadores.

Elementos que la componen


Para efectuar una lectura se deposita en el bus de direcciones la dirección de la
palabra de memoria que se desea leer y entonces se activa la señal de lectura (R);
después de cierto tiempo (tiempo de latencia de la memoria), en el bus de datos
aparecerá el contenido de la dirección buscada.
Por otra parte, para realizar una escritura se deposita en el bus de datos la
información que se desea escribir y en el bus de direcciones la dirección donde
deseamos escribirla, entonces se activa la señal de escritura (W), pasado el
tiempo de latencia, la memoria escribirá la información en la dirección deseada.
Internamente la memoria tiene un registro de dirección (MAR, memory address
register), un registro buffer de memoria o registro de datos (MB, memory buffer, o
MDR, memory data register) y, un decodificador
Esta forma de estructurar la memoria se llama organización lineal o de una
dimensión.
La organización de la memoria en dos dimensiones también es útil para las
memorias dinámicas ya que el refresco de estas memorias se realiza por bloques y
éstos pueden coincidir con una de las dimensiones (la que corresponda a los bits
de dirección de mayor peso).
En la práctica, las memorias dinámicas son más lentas que las estáticas y además
son de lectura destructiva, pero resultan más baratas, aunque necesiten circuitos de
refresco, si la memoria no es de mucha capacidad.

Jerarquía de memoria
En un ordenador hay una jerarquía de memorias atendiendo al tiempo de acceso y a
la capacidad que normalmente son factores contrapuestos por razones económicas y
en muchos casos también físicas.

Comenzando desde el procesador al exterior, es decir en orden creciente de tiempo


de acceso y capacidad, se puede establecer la siguiente jerarquía:
Registros de procesador: Estos registros interaccionan continuamente con la CPU
(porque forman parte de ella). Los registros tienen un tiempo de acceso muy pequeño
y una capacidad mínima, normalmente igual a la palabra del procesador (1 a 8 bytes).

Registros intermedios: Constituyen un paso intermedio entre el procesador y la


memoria, tienen un tiempo de acceso muy breve y muy poca capacidad.

Memorias caché: Son memorias de pequeña capacidad.

Normalmente una pequeña fracción de la memoria principal. y pequeño tiempo de


acceso. Este nivel de memoria se coloca entre la CPU y la memoria central.
Hace algunos años este nivel era exclusivo de los ordenadores grandes pero
actualmente todos los ordenadores lo incorporan.
Dentro de la memoria caché puede haber, a su vez, dos niveles denominados caché
on chip, memoria caché dentro del circuito integrado, y caché on board, memoria
caché en la placa de circuito impreso pero fuera del circuito integrado,
evidentemente, por razones físicas, la primera es mucho más rápida que la
segunda.

Existe también una técnica, denominada Arquitectura Harvard, en cierto modo


contrapuesta a la idea de Von Newmann, que utiliza memorias caché separadas
para código y datos.

Memoria central o principal: En este nivel residen los programas y los datos. La CPU
lee y escribe datos en él aunque con menos frecuencia que en los niveles
anteriores. Tiene un tiempo de acceso relativamente rápido y gran capacidad.

Extensiones de memoria central: Son memorias de la misma naturaleza que la


memoria central que amplían su capacidad de forma modular.

El tiempo de similar, a lo sumo un poco mayor, al de la memoria central y su


capacidad puede ser algunas veces mayor.
Memorias de masas o auxiliares: Son memorias que residen en dispositivos
externos al ordenador, en ellas se archivan programas y datos para su uso posterior.
También se usan estas memorias para apoyo de la memoria central en caso de que
ésta sea insuficiente (memoria virtual).
Estas memorias suelen tener gran capacidad pero pueden llegar a tener un tiempo
de acceso muy lento. Dentro de ellas también se pueden establecer varios niveles
de jerarquía.

Clasificación de memorias
Las memorias se clasifican, por la tecnología empleada y, además según la forma
en que se puede modificar su contenido, A este respecto, las memorias se clasifican
en dos grandes grupos:
Memorias RAM: Son memorias en las que se puede leer y escribir, si bien su
nombre (Random access memory) no representa correctamente este hecho. Por su
tecnología pueden ser de ferritas (ya en desuso) o electrónicas.
Memorias ROM (Read 0nly Memory): Son memorias en las que sólo se puede leer.
Pueden ser:
ROM programadas por máscara, cuya información se graba en fábrica y no se
puede modificar.

PROM, o ROM programable una sola vez.

EPROM (erasable PROM) o RPROM (reprogramable ROM), cuyo contenido


puede borrarse mediante rayos ultravioletas para regrabarlas.

EAROM (electrically alterable ROM) o EEROM (electrically erasable ROM), que


son memorias que está en la frontera entre las RAM y las ROM ya que su contenido
puede regrabarse por medios eléctricos, estas se diferencian de las RAM en que no
son volátiles. En ocasiones a este tipo de memorias también se las denomina
NYRAM (no volátil RAM).
Memoria FLASH, denominada así por la velocidad con la que puede reprogramarse,
utilizan tecnología de borrado eléctrico al igual que las EEPROM.
Las memorias flash pueden borrar-e enteras en unos cuantos segundos, mucho
más rápido que las EPROM.
Básicamente las memorias ROM se basan en una matriz de diodos cuya unión se
puede destruir aplicando sobre ella una sobretensión.
De fábrica la memoria sale con unos en todas sus posiciones, para grabarla se
rompen las uniones en que se quieran poner ceros. Esta forma de realizar la
grabación se denomina técnica de los fusibles.
1.2.3 DISPOSITIVOS DE ENTRADA Y SALIDA

Estos dispositivos permiten al usuario de la computadora introducir datos,


comandos y programas en la CPU.

El dispositivo de entrada más común es un teclado similar al de las máquinas de


escribir.

La información introducida con el mismo, es transformada por la computadora en


modelos reconocibles.

Otros dispositivos de entrada son los lápices ópticos, que transmiten información
gráfica desde tabletas electrónicas hasta la computadora; joysticks y el ratón, que
convierte el movimiento físico en movimiento dentro de una pantalla de
ordenador; los escáneres luminosos, que leen palabras o símbolos de una página
impresa y los traducen a configuraciones electrónicas que la computadora puede
manipular y almacenar; y los módulos de reconocimiento de voz, que convierten
la palabra hablada en señales digitales comprensibles para la computadora.
También es posible utilizar los dispositivos de almacenamiento para introducir
datos en la unidad de proceso.

Otros dispositivos de entrada, usados en la industria, son los sensores.


Características de los dispositivos de Entrada y Salida
Una de las funciones básicas de la computadora es comunicarse con los
dispositivos exteriores, es decir, la computadora debe ser capaz de enviar y recibir
datos desde estos dispositivo.
Sin esta función, la computadora no sería operativo porque sus cálculos no serían
visibles desde el exterior.
Existe una gran variedad de dispositivos que pueden comunicarse con una
computadora, desde los dispositivos clásicos (terminales, impresoras, discos, cintas,
etc.) hasta convertidores A/D y D/A para aplicaciones de medida y control de
procesos.
De todos los posibles periféricos, algunos son de lectura, otros de escritura y otros
de lectura y escritura (es importante resaltar que este hecho siempre se mira desde
el punto de vista del proceso).
Por otra parte, existen periféricos de almacenamiento también llamados memorias
auxiliares o masivas.
La mayoría de los periféricos están compuestos por una parte mecánica y otra parte
electrónica.
Estas partes suelen separarse claramente para dar una mayor modularidad.
A la componente electrónica del periférico se le suele denominar controlador del
dispositivo o, también, adaptador del dispositivo.
Si el dispositivo no tiene parte mecánica (como, por ejemplo, la pantalla de un
terminal), el controlador estará formado por la parte digital del circuito.
Frecuentemente los controladores de los dispositivos están alojados en una placa
de circuito impreso diferenciada del resto del periférico.
En este caso es bastante habitual que un mismo controlador pueda dar servicio a
dispositivos de características similares.
El principal problema planteado por los periféricos es su gran variedad que también
afecta a las velocidades de transmisión.
Por tanto, el mayor inconveniente que encontramos en los periféricos es la
diferencia entre sus velocidades de transmisión y la diferencia entre éstas y la
velocidad de operación dla computadora.
Vamos a señalar las funciones que debe realizar una computadora para ejecutar
trabajos de entrada y salida:
Direccionamiento o selección del dispositivo que debe llevar a cabo la operación
de E/S.
 Transferencia de los datos entre el procesador y el dispositivo (en uno u otro
sentido).
 Sincronización y coordinación de las operaciones.

Esta última función es necesaria debido a la deferencia de velocidades entre los


dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la
CPU (por ejemplo, suelen tener relojes diferentes).
Se define una transferencia elemental de información como la transmisión de una
sola unidad de información (normalmente un byte) entre el procesador y el
periférico o viceversa. Para efectuar una transferencia elemental de información
son precisas las siguientes funciones:
Establecimiento de una comunicación física entre el procesador y el periférico
para la transmisión de la unidad de información.
Control de los periféricos, en que se incluyen operaciones como prueba y
modificación del estado del periférico. Para realizar estas funciones la CPU
gestionará las líneas de control necesarias.

Definiremos una operación de E/S como el conjunto de acciones necesarias para la


transferencia de un conjunto de datos (es decir, una transferencia completa de
datos).

Para la realización de una operación de E/S se deben efectuar las siguientes


funciones:

Recuento de las unidades de información transferidas (normalmente bytes) para


reconocer el fin de operación.
Sincronización de velocidad entre la CPU y el periférico.
Detección de errores (e incluso corrección) mediante la utilización de los códigos
necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
Almacenamiento temporal de la información. Es más eficiente utilizar un buffer
temporal específico para las operaciones de E/S que utilizan el área de datos del
programa.
Conversión de códigos, conversión serie/paralelo, etc.

También podría gustarte