miércoles, 11 de febrero de 2015

1.1 Modelos de Arquitectura de Computo

Tipos de Arquitecturas:

Básicamente existen tres tipos de arquitecturas;
  • Clásicas
  • Segmentadas 
  • De Multiprocesamiento
A continuación vamos a estudiar cada una de ellas...

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.

Existen dos modelos que sobresalen en este tipo de arquitecturas:
  • Von Newman
  • Harvard
- Arquitectura Von Newman

Esta describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida.



Estos son algunos ejemplos de los modelos
de Von Newman.

También es conocida como Maunchly -  Ecker...
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.

Esta arquitectura se basa en dos conceptos básicos:
1) Utilizan sistemas binarios: Simplifica la electrónica y da mayor inmunidad al ruido.
2) Almacena la secuencia de programa en memoria: Da mayor velocidad para procesar información.



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 figura se puede observar claramente 
la afirmación anterior, ya que tiene un único bus,
surge el famoso cuello de botella.



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


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.

Y también se implemento una mejora en los buses ya que se subdividieron en tres categorías diferentes;

1) Bus de control: Líneas desde donde y hacia donde va dirigida la información y la secuencia de transferencia.

2) Bus de datos: Líneas por donde fluye información entre distintas partes de la computadora y es bidireccional.

3) Bus de direcciones: Líneas que permiten seleccionar la localidad de memoria y dirección a los puertos de E/S.


Aquí esta ejemplificado, como fueron re-definidos los buses
para solucionar el problema de saturación de datos.


A continuación les presentamos un vídeo donde se describen mas a fondo los componentes principales de esta arquitectura...



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


Este es el diagrama de 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.

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




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.

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

Consecuencias de la competencia por un recurso.


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

Aquí hay un breve vídeo donde también se explica la arquitectura multiprocesamiento, para complementar la información anterior.



Referencias:
* Material proporcionado en clase de Arquitectura de Computadoras por el Ing. Eric León Olivares, ISC en el Instituto Tecnológico de Pachuca.
Read more

domingo, 1 de febrero de 2015

Introducción


Introducción

Bienvenidos a nuestro primer post de este blog, en esta ocasión vamos a platicar sobre una breve introducción de lo que trata la materia Arquitectura de Computadoras, a continuación presentamos algunos de los componentes básicos de un procesador, y sus características principales.

Pero para comenzar...
¿Qué es la Arquitectura de Computadoras?
Si lo vemos desde una forma conceptual, esta nos dice que es el diseño y la estructura fundamental para un sistema de computo, es decir un modelo y una descripción de los requerimientos y las implementaciones de diseño en varias partes de una computadora. Con especial interés en la forma en la que la CPU trabaja internamente y accede a las direcciones de memoria.
Nosotros la definimos como la forma de seleccionar e interconectar los componentes del hadware para crear computadoras según los requerimientos de, funcionalidad, rendimiento y costo.



Y estamos casi seguros que con lo anterior surgió la pregunta mas importante de este tema...
¿Que es el Hadware?


Pues bien, el hadware de una computadora incluye todos los componentes físicos, es decir los tangibles (que podemos tocar), estos pueden ser una sola unidad o bien pueden ser un numero de dispositivos separados. Cada componente del equipo consiste en circuitos electrónicos y partes mecánicas que llevan a cabo una función particular, estos incluyen la CPU (de la que vamos a hablar mas adelante), sistemas masivos de almacenaje, memorias, unidades de disco, unidades de E/S, como lo son el monitor, el teclado, el ratón, una impresora, unas bocinas, etc. En esta ocasión nos vamos a centrar mas en lo que son las partes internas de nuestro gabinete.



En la figura anterior podemos observar
la arquitectura clásica de el hadware
de un ordenador.

Componentes de un sistema de computo:

1.- Tarjeta madre ("Motherboard" o "Mainboard") o Tarjeta del sistema.



Representa el circuito electrónico mas grande ubicado dentro de la cubierta, armazón o chasis de una computadora, y bien, este es la tarjeta principal donde todos los componentes internos de una computadora se encuentran conectados. La tarjeta del sistema contiene todos los circuitos que definen las principales partes y funciones de una computadora. Los componentes que pertenecen al grupo de procesamiento se encuentran justo aquí en la "motherboard".

El termino "motherboard", se utiliza porque todos los otros componentes y aparatos periféricos son controlados desde este lugar, esta tarjeta contiene las partes mas importantes de la computadora que definen su función y expansibilidad, tales como el procesador (CPU), receptáculos (encajes) para los procesadores, el sistema basico de Entrada/Salida (BIOS, por sus siglas en ingles "Basic Input/Output System"), receptáculos para la memoria, ranuras de expansión y puertos.

Cabe mencionar que es la tarjeta madre la que actúa como el componente central para el funcionamiento de la computadora.


Esto es una "Motherboard"

2.- CPU (Procesador)

Unidad Central de Procesamiento, por sus siglas en ingles (Central Processing Unit). Para las micro-computadoras, el CPU reside en un "chip" conocido como el microprocesador. Este representa el componente electrónico más importante de la tarjeta del sistema. Podemos decir que es el cerebro de la computadora. El CPU maneja cada paso en el procesamiento de la información. Actúa como el conductor y supervisor de los componentes del "hardware". Además, se encuentra vinculado directa o indirectamente con otro componente del "motherboard" El microprocesador contiene la unidad de control y la unidad aritmética/lógica. Estos componentes trabajan juntos utilizando el programa e información almacenada en la memoria con el fin de procesar las operaciones.






El procesador Core i7 es el mas
nuevo de la marca intel.



3.- Memoria

Es el dispositivo que retiene, memoriza o almacena datos informáticos durante algún intervalo de tiempo, Es uno de los componentes fundamentales de la computadora, que interconectada a la CPU y los dispositivos de entrada/salida, implementan lo fundamental del modelo de computadora.

La memoria electrónica de la computadora se compone de millones de dígitos binarios. El dígito binario, conocido como "bit", representa la unidad más fundamental de almacenamiento. Un "bit" de memoria es similar a un interruptor, el cual puede estar activado o apagado; es decir, contiene ya sea un "1" o un "0". Los bits se organizan en grupos de ocho conocidos como "bytes". Los bits son también agrupados en palabras. Los programas/aplicaciones actuales requieren que se le instale al sistema una cantidad específica mínima (megabytes) de memoria, de manera que estos puedan funcionar apropiadamente. La memoria principal puede dividirse en dos tipos: estática y dinámica.
"Read Only Memory" (ROM): Memoria de solo lectura: Parte del Almacenamiento principal de una computadora que no pierde su contenido cuando se interrumpe el flujo de energía eléctrica y que contiene programas esenciales que ni usted ni la computadora pueden borrar. Contiene el "basic input/output system" (BIOS) (sistema básico de entrada/salida) de la computadora.

"Random Access Memory" (RAM) - Memoria de acceso aleatorio: Memoria principal de trabajo de una computadora en la que se guardan instrucciones de programas e información para que la unidad central de procesamiento (CPU) pueda accesarlos directamente a través del bus de datos de alta velocidad.

La memoria primaria está directamente conectada a la CPU de la computadora. Debe estar presente para que la CPU efectúe cualquier función. El almacenamiento primario consta, pues, de la memoria primaria del sistema; contiene los programas en ejecución y los datos con que operan.






Tipos de memoria; primaria (RAM)
y secundaria (Disco duro).
4.- Buses
Es un sistema digital que transfiere datos entre los componentes de una computadora o entre varias computadoras. Está formado por cables o pistas en un circuito impreso, dispositivos como resistores y condensadores además de circuitos integrados. Existen tres tipos:

-De Control: Estos son también conocidos como bus de instrucciones debido a que sirven para saber desde donde y hacia dónde va dirigida la información y la secuencia de transferencia.

-De Datos: Son aquellos en los cuales fluye la información de un lado a otro dentro de la computadora, este tipo de bus es bidireccional ya que lleva y trae información.

-De Direcciones: Este bus se utiliza para direccionar las zonas de memoria y los dispositivos, de forma que, al escribir una dirección en el bus, cierto dispositivo quede activado y sea quien reciba y envíe los datos en el ciclo de bus empezado.

En la figura anterior podemos observar
los buses de comunicación en un
circuito impreso, en este caso se trata
de la motherboard.
5.- Perifericos E/S

Es un dispositivo que permite la comunicación entre un sistema de procesamiento de información, tal como la computadora y el mundo exterior, y posiblemente un humano u otro sistema de procesamiento de información.
Los periféricos de E/S son utilizados por una persona (o sistema) para comunicarse con computadoras.

Por ejemplo, las pantallas táctiles o multitáctiles se consideran periféricos de E/S. En cambio, un teclado, ratón o escáner pueden ser periféricos de E para una computadora, mientras que los monitores, parlantes e impresoras se consideran los dispositivos de S de la computadora.


Dispositivos o periféricos de comunicación entre computadoras, tales como módems y tarjetas de red, por lo general sirven para entrada y salida. También, los dispositivos de almacenamiento de datos, como los discos rígidos, las unidad de estado sólido, las memorias flash, las disqueteras, entre otros, se pueden considerar periféricos de E/S.



En esta imagen podemos ver algunos de los
periféricos y dispositivos E/S de una
arquitectura un poco antigua.

La pantalla táctil que existe en la
actualidad es considerado un dispositivo
de entrada y de salida al mismo tiempo.
6.- El chipset

Este tema lo abordaremos mas a fondo pero no en esta ocasión pero por ahora solo veremos algunas de sus características. Es el conjunto de circuitos integrados diseñados con base en la arquitectura de un procesador (en algunos casos, diseñados como parte integral de esa arquitectura), permitiendo que ese tipo de procesadores funcionen en una placa base. Sirven de puente de comunicación con el resto de componentes de la placa, como son la memoria, las tarjetas de expansión, los puertos USB, ratón, teclado, etc.

El chipset determina muchas de las características de una placa base y por lo general la referencia de la misma está relacionada con la del chipset.


El Chipset es el que hace posible que la placa base funcione como eje del sistema, dando soporte a varios componentes e interconectándolos de forma que se comuniquen entre ellos haciendo uso de diversos buses. Es uno de los pocos elementos que tiene conexión directa con el procesador, gestiona la mayor parte de la información que entra y sale por el bus principal del procesador, del sistema de vídeo y muchas veces de la memoria RAM.


En esta imagen podemos ver un chipset
de la marca AMD.

Conclusiones;


Ya que hemos analizado un poco cuales son los componentes internos de una computadora y que los estudiamos individualmente, podemos decir que necesariamente estos tienen que trabajar en equipo para un buen funcionamiento y que aunque todos tengan una tarea especifica deben de realizarla porque es la tarea que deben mandar a las demás componentes para que estas sigan trabajando con ellas y puedan procesarlas. Concluimos que a pesar del papel tan importante que conlleva cada uno de estos componentes, individualmente no nos sirven para nada, pero en conjunto hacen que nuestra computadora tenga poder y velocidad.


Vídeo adicional
El siguiente vídeo nos explica un poco mas sobre los componentes de una computadora, míralo para complementar tu aprendizaje...




Referencias
* Capron, H. L. Computers: Tools for an Information Age. (2nd ed.). California: USA: The Benjamin/Cummings Publishing Company, Inc., 2002. ISBN:0-8053-0040-6 
*Cardoso Arellano, C. (2015, 01). Componentes de un sistema de computo. Fundamentos De Informatica. Recuperado 01, 2015, de http://informatica-unidad.blogspot.mx/p/componentes-de-un-sistema-de-computo.html










Read more