viernes, 23 de agosto de 2013

Arquitectura de Multiprocesamiento Simetrico


ARQUITECTURA DE MULTIPROCESAMIENTO SIMETRICO

SMP es el acrónimo de multiproceso simétrico (Symmetric Multi-Processing), también llamada UMA (Uniform Memory Access), por la característica de una memoria compartida para todos los procesadores.

Esta es una arquitectura en la que dos o más procesadores comparten una misma memoria central y a los periféricos, permitiéndonos así ejecutar de manera simultánea varios procesos sin importar la localización del proceso en la memoria, donde el sistema operativo es el encargado de realizar la sincronización entre los procesadores y de realizar la planificación de los procesos.

Todos los procesadores  tienen las mismas condiciones de acceso a la memoria, denominándolos así simétricos.



Una memoria común para los procesadores con un Bus de conexión.






Cada procesador o núcleo puede ser asignado a cualquier proceso o hilo, pasando las tareas de ida y vuelta entre los procesadores igualando la carga, convirtiéndolos así más eficientes en su trabajo.

La arquitectura SMP es muy útil en sistemas que ejecutan varios programas simultáneamente, posibilitando de esta forma, el asignar cada uno de los programas en un procesador distinto.

Una computadora SMP está compuesta por microprocesadores que se comunican con la memoria a través de un bus compartido el cual es utilizado solo por un microprocesador en un instante de tiempo.

Los objetivos principales de los multiprocesadores son los de acelerar la ejecución de aplicaciones orientadas a la supercomputación y ejecutar una mayor cantidad de aplicaciones en una unidad de tiempo.

El sistema IBM 9020 es uno de los sistemas de trato simétrico.



IBM 9020.


En el siguiente vídeo veremos una explicación muy clara y detallada, sobre la arquitectura de multiprocesamiento simetrico.




Bibliografía

Mano, M. Morris (1993). Arquitectura de computadoras. 3a. Ed. México, Pearson
Education.
Irma Flores Rios (2012). Arquitectura de computadoras II. 1a. Ed. México,

Red Tercer Milenio.

Arquitecturas Segmentadas

Arquitecturas Comerciales No Von Neuman 

 

ARQUITECTURAS SEGMENTADAS

En esta entrada hablaremos sobre las arquitecturas segmentadas o que hacen uso de la segmentación, teniendo procesadores segmentados (o en pipeline) los cuales incorporan una técnica para acelerar el ritmo de ejecución de instrucciones.

Para aumentar la velocidad de procesamiento, se usa la segmentación para tener concurrencia a nivel de instrucción en un mismo procesador.

El proceso en pipeline o encadenado es similar al utilizado en cualquier cadena de montaje, y el nombre pipeline (tubería) se debe al hecho de que como en una tubería, en la entrada o input se aceptan nuevos elementos (instrucciones) antes de que los previamente aceptados salgan por el output.
Empecemos con el ejemplo de una cadena de montaje. Supongamos una gran pastelería en la que las tartas primero se hacen en el horno y después se empaquetan para la venta. El proceso de empaquetar una tarta consiste en:


1. Poner una caja vacía en la mesa.
2. Meter una tarta en la caja.
3. Cerrar y precintar la caja.
4. Poner una etiqueta en la caja.
5. Llevar la caja a un gran contenedor.


Si cada una de estas operaciones la realiza un operario en 10  segundos, parece claro que se tarda 50 s en empaquetar una tarta y, por lo tanto, en empaquetar 10 tartas se tardaría 500 s. 



Ahora supongamos que se dispone de una cadena de empaquetado de tartas  con una cinta transportadora sobre la que trabajan cinco operarios especializados en tareas distintas. 
El primer operario pone la caja-1 en la cinta transportadora, y ésta avanza hasta que la caja-1 está donde el segundo  operario, que introduce un a tarta dentro de la caja-1, al mismo tiempo que el primer operario pone otra ca ja-2 en la cinta. La caja-1 sigue avanzando hasta el tercer operario, que la cierra y la precinta, al mismo tiempo que el segundo operario mete otra tarta en la caja-2 y el primer operario pone otra caja-3 en la cinta. La caja-1 sigue su camino en la cinta pasando por el cuarto operario, que  pone una etiqueta, hasta llegar al quinto operario, que la retira de la cinta. En el momento que el quinto operario retira la caja de la cinta, hay cuatro cajas más en la cinta. 
Si cada una de estas fases de empaquetado se realiza en 10 s, a partir  de ahora, cada 10 s saldrá una nueva tarta empaquetada, en lugar de hacerlo  cada 50 s que se tardaba cuando no había cadena de empaquetado. A partir de ahora, en tener 10 tartas empaquetadas se tardará solamente 100 segundos,  mientras que en el caso de cuando se tenía un solo operario se tardaba 500 segundos.


Debe quedar claro que aunque ahora sale una nueva tarta  empaquetada cada 10 s, la preparación completa de cada tarta sigue  requiriendo 50 s (igual que cuando había una sola persona preparando las tartas).

Ahora esta técnica se puede aplicar al procesamiento de instrucciones en una computadora, y se realiza dividiendo en fases de ejecución cada instrucción.





La ejecución de una instrucción se puede descomponerse en las siguientes 5  etapas:
1. F: Alimentación de la instrucción (fetch)
2. D: Decodificación de la instrucción 
3. O: Extracción y cálculo de los operandos
4. E: Ejecución (en la ALU)
5. W: Escritura del resultado (write)
Si ahora la ejecución de una instrucción está descompuesta en 5 etapas, cada  etapa puede durar aproximadamente 1/5 de la duración total de la ejecución de la instrucción. Si suponemos que la duración de un ciclo de reloj es igual a la duración de cada una de estas pequeñas etapas, podemos decir, en principio, que con la técnica del pipelining se consigue que a cada ciclo de reloj finalice una instrucción, o lo que es lo mismo, una velocidad de instrucción por ciclo.

Existen situaciones especiales en las que se deben tomar algunas medidas para que el funcionamiento de un pipeline sea correcto:

Dependencias de datos: 

Sucede cuando dos o más instrucciones comparten un dato o una instrucción necesita un dato que sea resultado de otra instrucción, cuando se detecta esta situación: se puede detener el pipeline hasta que termine la otra instrucción; o se hace un data forwarding, es decir enviar el dato apenas se lo obtenga en la instrucción, para acortar tiempos de espera.

Bifurcaciones:

Cuando un conjunto de instrucciones llega a una bifurcación, sea esta condicional o no condicional, se tiene huecos vacíos en los que el procesador espera algun resultado, lo que se hace para optimizar el pipeline es usar esos huecos para ejecutar otras instrucciones que no tengan dependencias y que no alteren la lógica del programa al cambiar su orden de ejecución.


En el siguiente video se puede ver una animación del funcionamiento de un pipeline.






Bibliografía:

Francisco Aylagas Romero (2012). Arquitectura de Computadores. Madrid. Eureca media. Universidad Politécnica de Madrid.

Arquitectura Harvard

Arquitecturas Comerciales No Von Neuman 

 

ARQUITECTURA HARVARD

En esta entrada hablaremos sobre la arquitectura Harvard(esta arquitectura surgió en la universidad del mismo nombre) sus principales características y ventajas sobre otras arquitecturas.

La arquitectura harvard forma parte de los modelos clasicos en cuanto a la estructura de un computador. Sin embrago podemos resumir su funcionamiento en la siguiente imagen:



Segun Albert M & Manonellas G (2011):
La organizacion del modelo harvard se distingue por una division de memoria en una memoria de instrucciones y de datos. 
Como podemos ver la unidad de procesamiento se conecta con dos memorias diferente:


  • Memoria de programa.- Contiene todas las instrucciones del programa desarrollado
  • Memoria de datos.- Dispositivo que almacena datos permanente del usuario.
Esta arquitectura al utilizar diferentes buses permite que la unidad de procesamiento pueda acceder de forma simultanea tanto a datos como al set de instrucciones.
Otra de sus caracteristicas es el contar dos buses de diferente tamaño y distintos contenidos en la misma pocicion de memoria. Es decir la longitud de las lineas de direcciones de memoria es distinta tanto para datos y programa, de esta manera se optimiza el uso de la memoria.
Por ejemplo un procesador RISC(Set de instrucciones reducidos), con un bus de datos adecuado se puede diseñarlo de forma que las instrucciones del programa tengan una direccion unica o pocicion unica en la memoria.
Con este modelo la unidad de procesamiento puede ingresar a la memoria de datos y al mismo tiempo leer la siguiente instrucción de la memoria de programa.
Debido a tener 2 lineas, una para datos y una para instrucciones se debe contar con un mapa de memoria separado tanto para direcciones como para instrucciones.
Un ejemplo de maquinas o dispositivos que utilizan esta aquitectura son:
Los DSP(Procesador de señales digitales):
 
Procesador de audio digital.
Otro tipo de dispositivos muy utilizados como los microcontroladores PIC:
¿Por que los PIC utilizan la arquitectura hardvard?
El principal motivo por el cual los pics usan esta arquitectura esta relacionado con el uso eficiente de la unidad de procesamiento. De esta forma puede estar ejecutando el programa y al mismo tiempo leyendo la memoria de datos.
Albert M & Manonellas G (2011) Mencionan que:La arquitectura Hardvard no se utiliza habitualmente en computadores de propósito general sino que se utilizan en computadores para aplicaciones especificas.
Una de las computadoras diseñadas con esta arquitectura fue la "Hardvard Mark 1(1994)" 

En el siguiente video podemos ver un poco mas sobre la arquitectura de esta computadora.




Ventajas de esta arquitectura:



  •  Se evita las formaciones de cuello de botella debido a utilizar diferente almacenamiento para datos y programa.
  • El tamaño de las instrucciones no esta relacionado con el tamaño de datos.
  • El diseño del bus de programa ayuda a determinar el tamaño maximo de una instruccion.
  • Se mejora la velocidad y menor longitud del programa
  • Se puede acceder a datos y programa al mismo tiempo.
La arquitectura Harvard cuenta con los mismos modulos o unidades que la arquitectura Von neuman es decir unidad de control, buses de comunicacion, ALU, E/S, memoria para datos y para programa.




Bibliografía:

Albert M. A. & Manonellas G. E. (2011). ESTRUCTURA DE UN COMPUTADOR.Barcelona. Eureca media.

miércoles, 14 de agosto de 2013

Conceptos básicos

Hoy hablaremos sobre algunos conceptos que tienen que ver con las computadoras; éstos serán de ayuda para entender mejor muchos de los temas de los que se hablará aquí y ademas despejará algunas dudas que tengamos.  



Abstracción: Es extraer de su entorno algun elemento y hacer una representación de este elemento.



Kernel: Es el núcleo o el corazón. En el caso de la informática, el kernel es el núcleo del sistema operativo, que contiene la parte vital y más importante de éste.



Firmware: Son instrucciones que permiten el funcionamiento básico de cualquier dispositivo compuesto por circuitos electrónicos, maneja el hardware y permite interactuar con éste.



Lenguaje de Máquina: Es el lenguaje natural de una computadora y de cualquier microprocesador. También conocido como lenguaje binario, debido a que solo usa 0 y 1.


Software del Sistema: Es software que da control sobre el hardware y/o da ayuda a otros programas que controlen hardware.


Bibliografía:

ALEGSA. (2013). Diccionario de Informática ALEGSA.
Recuperado de http://www.alegsa.com.ar

Wiktionary Foundation. (2013). Wickcionario.
Recuperado de http://es.wiktionary.org/wiki/Wikcionario:Portada

Carlos Javier Pes Rivas. (2013). Diccionario de Informática.
Recuperado de http://www.carlospes.com/minidiccionario/

Las 5 Generaciones de Computadoras - Línea de Tiempo

Hoy veremos la historia de las computadoras y cómo esta se divide en 5 generaciones.