miércoles, 13 de julio de 2011

ARQUITECTURA DEL COMPUTADOR AVANZADA Y COMERCIALES

El contenido principal que vamos a tratar nosotros son algunos conceptos básicos y los sistemas paralelos, es decir, multiprocesadores y multicomputadores.

Dependiendo de cómo se organicen las estructuras básicas (memorias, puertas lógicas, buses, circuitos integrados, procesadores, entre otros) tendremos diferentes arquitecturas que responderán a las especificaciones que de coste y rendimiento que se deseen obtener. PC, supercomputador, estación de trabajo, etc.


SISTEMA INFORMÁTICO.



Un sistema informático está formado por la interacción entre el hardware y el software que hace posible el almacenamiento de datos, procesamiento y salida de la información.

HARDWARE.



El hardware se emplea para distinguir todos los componentes o partes físicas, eléctricas, magnéticas, mecánica, electrónicas y accesorios complementarios que componen la Unidad Central de Procesamiento (CPU), en torno al cual se organizan el resto de los elementos de un sistema de computación. Algunos elementos más representativos de hardware son la caja o chasis, el monitor, el teclado, el ratón o mouse, el disco duro, placa base, memoria, tarjeta de video, tarjeta de sonido, lectora de DVD, microprocesadores, la impresora, el escáner, entre otras.

SOFTWARE.



El software se emplea para referirse al conjunto de instrucciones, agrupados en programas, que actuando sobre el hardware controlan su funcionamiento, obligándoles a realizar el trabajo deseado. En términos generales se asocia con la parte blanda o intangible que proporciona las instrucciones al hardware; cabe decir, que el software son todos los programas de sistemas, de aplicación y los lenguajes de programación.

Un programa está compuesto por instrucciones paso a paso que le indican a la computadora como realizar su trabajo. El propósito del software es convertir datos (elementos no procesados) en información (elementos procesados).

El ordenador es una máquina electrónica que sirve para procesar información digital.
La información digital es aquella que puede expresarse en términos de 0 y 1, es decir, en el sistema binario de numeración. Si partimos de una información analógica, como una fotografía en papel, es necesario digitalizarla previamente antes de introducirla en el ordenador; en este caso mediante un escáner.

Un ordenador es una máquina electrónica (hardware), que no serviría para nada si no fuese por los programas (software). Desde el punto de vista electrónico, la información digital es convertida en impulsos eléctricos de dos tipos, asignando, por ejemplo, el 0 a 0 voltios y el 1 a 5 voltios. Gracias a la electrónica los ordenadores actuales pueden realizar miles de millones de operaciones por segundo, con precisión y fiabilidad. Para que el ordenador haga algo es necesario que un programa le indique lo que tiene que hacer. Las operaciones que hace un ordenador son muy simples, pero las realiza a tanta velocidad, que puede resolver problemas complejos en muy poco tiempo. Podemos distinguir entre dos tipos de programas:

•Sistemas operativos, como Windows, Linux y Mac OS, que son imprescindibles para el funcionamiento del ordenador.
•Aplicaciones, como los procesadores de texto, las hojas de cálculo, los programas de retoque fotográfico, etc. Estos programas nos permiten hacer cosas muy diversas con los ordenadores. Pero hay que tener en cuenta que cada aplicación está diseñada para un determinado sistema operativo.

FIRMWARE.



El firmware se emplea para referirse a un bloque de instrucciones de programas para propósitos específicos grabadas en un circuito electrónico o chip de memoria ROM que no permite modificaciones y se ejecutan automáticamente cada vez que encendemos el computador. Se utilizan para iniciar y poner el sistema en condiciones de trabajar.

UNIDAD CENTRAL DE PROCESAMIENTO (CPU).



El CPU o microprocesador es un circuito integrado, denominado Chip, y es una unidad de la computadora donde se procesa todo el trabajo que ésta deberá realizar. El CPU es el encargado de procesar tanto los datos que ingresan, así como la información de salida.

MEMORIA RAM.



La Memoria de Acceso Aleatorio (RAM) es un sistema de almacenamiento de datos cuya misión principal es la de identificar y clasificar en forma ordenada la información que recibe, procesa y emite. Esta memoria permite que el procesador pueda trabajar las informaciones rápidamente tanto del sistema operativo así como las aplicaciones de datos en uso debido a que las informaciones son almacenadas temporalmente en la memoria, en efecto, la memoria RAM es un dispositivo que permite al computador almacenar información en forma temporal mientras se trabaja en algún programa, en consecuencia la información contenida en la memoria RAM se pierde al cerrar un programa o apagarse el computador.

La memoria RAM se mantiene activa siempre y cuando esté alimentada eléctricamente, cuando la alimentación del sistema es cortada, todo lo que estaba en la memoria RAM se borra, se pierde y es por esta característica que también se le acostumbra denominar memoria volátil.

MEMORIA ROM.

La memoria de sólo lectura (ROM) contiene datos grabados, los cuales sólo se pueden leer y no pueden ser modificados por el usuario ya que viene definida por el fabricante y por lo tanto no es modificable. En tal sentido, la memoria ROM contiene una serie de programas y datos, incluidos por el fabricante del equipo, en donde vienen grabadas todas las órdenes para que, al encender el equipo, se chequeen todas las conexiones y sus partes buscando anomalías de las mismas, en efecto, la memoria ROM contiene una serie de instrucciones necesarias para el funcionamiento del computador. Al mismo tiempo busca y carga desde los dispositivos de almacenamiento (disco duro) el sistema operativo. La memoria de sólo lectura, no se borra al apagar el computador.

LA MEMORIA CACHÉ.

Se trata de una pequeña memoria incluida en el propio procesador. Su función es actuar como memoria intermedia entre la memoria RAM y el núcleo del procesador, almacenando los datos y las instrucciones con los que va a trabajar el procesador de forma más inmediata. Su tamaño es pequeño, pero su velocidad de trabajo es muy alta. Se divide en dos niveles: nivel 1 (L1) y nivel 2 (L2). A veces la memoria caché L1 se divide en dos secciones: una para datos y otra para instrucciones.

BIOS.

La BIOS es el sistema básico de entrada y salida donde se encuentran las instrucciones para el arranque del equipo y cargar el sistema operativo.

BIT.

 BIT que significa el símbolo binario, un uno o un cero, es la unidad mínima manejada por un computador.

BYTE.

Un BYTE está formado por ocho BITS y equivale a un símbolo (un número, una letra o cualquier otro símbolo especial).

ADWARE.

El adware es un software gratuito de descargar y usar que muestra publicidad en algún lugar empleando cualquier tipo de medio como los pop-up o ventanas emergentes, banners, entre otros.

SISTEMA OPERATIVO.



El sistema operativo es un conjunto de programas (software) que se inician al arrancar el ordenador y trata de optimizar todo el poder de una computadora y sus periféricos (hardware) y de facilitar al usuario el aprovechamiento de su equipo. El sistema operativo controla la ejecución de los programas de aplicaciones u otros programas y actúa como una interfaz entre los usuarios del computador y el hardware del mismo, es decir, el sistema operativo proporciona un entorno en el que el usuario pueda ejecutar programas de una manera práctica y eficiente, en efecto, el sistema operativo es el administrador de las operaciones que realice el hardware y controlará la comunicación entre el usuario y el mismo.

Las principales funciones de un sistema operativo son:

• Gestionar eficientemente los recursos hardware y software del sistema informático.
• Controlar y administrar la ejecución de programas asignándoles los recursos que éstas necesitan para funcionar.
• Desvincular al usuario de las particularidades del hardware de su equipo, proporcionándole una interfaz adecuada con la que trabajar.
• Controlar y administrar el sistema de archivos.
• Gestionar los errores de hardware y la pérdida de datos, detectando e intentando solucionar los errores que se puedan producir.

Los sistemas operativos podemos clasificarlos de acuerdo con el criterio siguiente:

1. Número de usuarios: De acuerdo al número de usuarios que puede atender al mismo tiempo, se dividen en:
Monousuario: Sólo puede atender a un usuario.
Multiusuario: Puede atender a más de un usuario al mismo tiempo y cada usuario, tendrá la sensación de ser el único que está usando el equipo.
2. Número de tareas: De acuerdo al número de tareas que puede realizar al mismo tiempo, los podemos dividir en:
Monotarea: Sólo puede procesar una tarea o aplicación al mismo tiempo.
Multitarea: Puede procesar más de una tarea o aplicación al mismo tiempo. En este caso, el procesador reparte su trabajo entre las diferentes aplicaciones y debido a su gran velocidad, dará la impresión de que todas ellas son procesadas al mismo tiempo.

INTERFAZ DE USUARIO (IU).



La interfaz de usuario funciona como el vínculo entre el humano y la máquina, y es un conjunto de protocolos y técnicas para el intercambio de información entre una aplicación computacional y el usuario, es decir, es el medio por el cual le damos órdenes a la computadora y ella nos devuelve el resultado de esas órdenes. La computadora sólo se comunica con 0 y 1. Una interfaz traduce nuestras órdenes a 0 y 1 y viceversa y nos muestra la información en una manera que podamos entender, siendo responsable de solicitar comandos al usuario, y de desplegar los resultados de la aplicación de una manera comprensible tomando en cuenta que no es responsable de los cálculos de la aplicación, ni del almacenamiento, recuperación y transmisión de la información.

Existen distintos tipos de interfaces, entre las que cabe diferenciar entre interfaces gráficas y en modo texto.

INTERFAZ EN MODO TEXTO.



El usuario introduce una orden que interpretará la interfaz, lo cual le obliga a memorizar una serie de mandatos que le dan acceso a las funciones deseadas. El usuario elige la acción deseada mediante la introducción de un verbo que denota la acción, casi siempre va seguido de una serie de atributos. Inicialmente, los sistemas operativos como el CP/M, VMS, MS-DOS, UNIX entre otros ofrecían interfaces en modo texto.

INTERFAZ GRÁFICA DE USUARIO (GUI).

Una interfaz gráfica es el sistema de comunicación entre el usuario y la computadora mediante representaciones gráficas, imágenes, objetos gráficos o visuales. Con formas gráficas se refiere a botones, íconos, ventanas, fuentes, etc. los cuales representan funciones, acciones e información.

EL SOFTWARE LIBRE.

El software libre es la denominación del software que respeta la libertad de los usuarios sobre su producto adquirido y por tanto, una vez obtenido puede ser usado, copiado, estudiado, modificado y redistribuido libremente. Según la Free Software Foundation.

MULTIMEDIA.

Es cualquier combinación de texto, arte gráfico, animación y vídeo.

BUSES: AUTOPISTAS PARA LOS DATOS.

De la misma manera que los coches se desplazan por carreteras para ir de un lugar a otro, la información se transmite de un lugar a otro en un ordenador a través de unos “caminos” que llamamos buses. E igual que las carreteras pueden tener más o menos carriles, permitiendo que más o menos vehículos circulen en paralelo en el mismo sentido, también los buses pueden tener más o menos “carriles” para que pase la información. En un bus los “carriles” se miden en bits. De manera que un bus de 32 bits equivaldría a una autopista de 32 carriles. Sin embargo, en una autopista puede ocurrir que por unos carriles pasen más coches que por otros. Eso no sucede en un bus, porque por todos sus “carriles” pasa la misma cantidad de datos. Esto es así porque en un bus los datos se transmiten en grupos o paquetes a un ritmo determinado, es decir, con una frecuencia determinada. El número de ceros y unos que “viaja” en cada paquete de datos depende del número de “carriles” del bus, es decir, del número de bits del bus.


TARJETA DE SONIDO.

La tarjeta de sonido tiene una doble función: Convertir la información digital contenida en archivos de sonido (de tipo WAV, MP3…) en una señal de sonido analógica que pueda ser transmitida a unos altavoces u otro aparato de sonido analógico. Grabar la señal de sonido procedente de una fuente analógica (micrófono, magnetófono, reproductor de CD…) en un archivo de sonido digital.

Físicamente es una placa de circuito impreso, que contiene componentes electrónicos específicos (DSP, ADC, DAC, RAM, ROM), conexiones internas y externas, así como la interfaz de conexión a la placa base, que es de tipo PCI.

LECTOR DE CD-ROM.

Es un dispositivo de lectura que permite utilizar discos ópticos o compactos, es decir, permite leer la información grabada en un disco CD-ROM o un disco CD-R (grabable una vez) o un disco CD-RW (regrabable muchas veces).

GRABADORA DE CD-RW.

Además de funcionar como lector de CD-ROM, permite grabar información en discos CD-R y CD-RW.

LECTOR DE DVD.

Además de leer la misma información que un lector de CD-ROM, permite leer la información grabada en un disco DVD, o en discos DVD-R o DVD+R (grabables una vez) o en discos DVD-RW o DVD+RW (regrabables muchas veces.

GRABADORA DE  DVD.

Además de funcionar como lector de DVD, permite grabar información en discos DVD-R o DVD+R, o en discos DVD-RW o DVD+RW. Los discos de DVD para grabar pueden ser de simple o de doble capa, por lo que las grabadoras actuales son aptas para grabar discos de doble capa.

TARGETA GRÁFICA.



La función básica de una targeta gráfica es convertir la información procesada por el ordenador, o la propia targeta, en una señal que puede entender el monitor, para mostrarla en forma de imágen en la pantalla. En el caso de las targetas aceleradoras 3D, éstas también realizan la función de procesar las imágenes tridimensionales, liberando al procesador de esta tarea.Físicamente, las tarjetas aceleradoras consisten en una placa de circuito impreso, cuyo circuito electrónico es casi un miniordenador, pues incluye su propio procesador gráfico y su propia memoria RAM.

CIRCUITO INTEGRADO.


 

Un circuito integrado (CI) es una pastilla o chip muy delgado en el que se encuentran miles o millones de dispositivos electrónicos interconectados, principalmente diodos y transistores, aunque también componentes pasivos como resistencias o condensadores. Su área puede ser de 1 cm2 o incluso inferior.

CIRCUITO INTEGRADO APLICACIONES.

Algunos de los circuitos integrados más avanzados son los microprocesadores que controlan múltiples artefactos: desde ordenadores hasta electrodomésticos, pasando por los teléfonos móviles. Otra familia importante de circuitos integrados la constituyen las memorias digitales.

LOS CIRCUITOS INTEGRADOS SE CLASIFICAN EN DOS CATEGORÍAS GENERALES:
LinealesOperan con señales continuas para producir funciones electrónicas (eje. Amplificadores, moduladores)
DigitalesOperan con señales binarias y se hacen compuertas digitales interconectadas.

PROCESO PARALELO.

Es un tipo de proceso asimilable a los grandes sistemas. Consiste básicamente en procesar varias operaciones de modo simultáneo por distintas unidades centrales. En realidad, estamos en un ámbito de proceso cooperativo que implica una arquitectura de microprocesadores ligados entre sí y compartiendo tareas.

En la arquitectura paralela, todos estos sistemas están basados en la arquitectura Von Neumann con un procesador y memoria donde se guardan datos y programa, es decir, una máquina secuencial que procesa datos escalares. Esta arquitectura se ha ido perfeccionando incluyendo el paralelismo de las unidades de control, de cálculo, etc., pero sigue siendo una máquina de ejecución con un único flujo de instrucciones.

No hay una frontera definida entre la arquitectura monoprocesador y las masivamente paralelas. De hecho, las actuales arquitecturas monoprocesador son realmente máquinas  paralelas a nivel de instrucción. La evolución de la arquitectura basada en monoprocesador ha venido ligada con la creación de más y mejores supercomputadores que tenían que librarse del concepto de monoprocesador para poder hacer frente a las demandas de computación.

El primer paso hacia la paralelización de las arquitecturas de los computadores, se da con la aparición de los procesadores o sistemas vectoriales. Los procesadores vectoriales extienden el concepto de paralelismo por segmentación al tratamiento de grandes cadenas de datos. El hecho de que los procesadores segmentados hayan venido asociados a los supercomputadores paralelos, los pone en la entrada a lo que son los sistemas paralelos, si bien siguen siendo una extensión del concepto de segmentación.

Clasificación de los sistemas paralelos.

Probablemente la clasificación más popular de computadores sea la clasificación de Flynn. Esta taxonomía de las arquitecturas está basada en la clasificación atendiendo al flujo de datos e instrucciones en un sistema. Un flujo de instrucciones es el conjunto de instrucciones secuenciales que son ejecutadas por un único procesador, y un flujo de datos es el flujo secuencial de datos requeridos por el flujo de instrucciones. Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:
• SISD (Single Instruction stream, Single Data stream). Flujo único de instrucciones y flujo único de datos. Este el concepto de arquitectura serie de Von Neumann donde, en cualquier momento, sólo se está ejecutando una única  instrucción. A menudo a los SISD se les conoce como computadores serie escalares. Todas las máquinas SISD poseen un registro simple que se llama contador de programa que asegura la ejecución en serie del programa. Conforme se van leyendo las instrucciones de la memoria, el contador de programa se actualiza para que apunte a la siguiente instrucción a procesar en serie. Prácticamente ningún computador puramente SISD se fabrica hoy en día ya que la mayoría de procesadores modernos incorporan algún grado de paralelización como es la segmentación de instrucciones o la posibilidad de lanzar dos instrucciones a un tiempo (superescalares).
• MISD (Multiple Instruction stream, Single Data stream) Flujo múltiple de instrucciones y único flujo de datos. Esto significa que varias instrucciones actúan sobre el mismo y único trozo de datos. Este tipo de máquinas se pueden interpretar de dos maneras. Una es considerar la clase de maquinas que requerirían  que unidades de procesamiento diferentes recibieran instrucciones distintas operando sobre los mismos datos. Esta clase de arquitectura ha sido clasificada por numerosos arquitectos de computadores como impracticable o imposible, y en estos momentos no existen ejemplos que funcionen siguiendo este modelo. Otra forma de interpretar los MISD es como una clase de máquinas donde un mismo flujo de datos fluye a través de numerosas unidades procesadoras. Arquitecturas altamente segmentadas, como los arrays sistólicos o los procesadores vectoriales, son clasificados a menudo bajo este tipo de máquinas. Las arquitecturas segmentadas, o encauzadas, realizan el procesamiento vectorial a través de una serie de etapas, cada una ejecutando una función particular produciendo un resultado intermedio. La razón por la cual dichas arquitecturas son clasificadas como MISD es que los elementos de un vector pueden ser considerados como pertenecientes al mismo dato, y todas las etapas del cauce representan múltiples instrucciones que son aplicadas sobre ese vector.
• SIMD (Single Instruction stream, Multiple Data stream). Flujo de instrucción simple y flujo de datos múltiple. Esto significa que una única instrucción es aplicada sobre diferentes datos al mismo tiempo. En las máquinas de este tipo, varias unidades de procesado diferentes son invocadas por una única unidad de control. Al igual que las MISD, las SIMD soportan procesamiento vectorial (matricial) asignando cada elemento del vector a una unidad funcional diferente para procesamiento concurrente. Por ejemplo, el cálculo de la paga para cada trabajador en una empresa, es repetir la misma operación sencilla para cada trabajador; si se dispone de una arquitectura SIMD esto se puede calcular en paralelo para cada trabajador. Por esta facilidad en la paralelización de vectores de datos (los trabajadores formarían un vector) se les llama también procesadores matriciales.
 MIMD (Multiple Instruction stream, Multiple Data stream). Flujo de instrucciones múltiple y flujo de datos múltiple. Son máquinas que poseen varias unidades procesadoras en las cuales se pueden realizar múltiples instrucciones sobre datos diferentes de forma simultánea. Las MIMD son las más complejas, pero son también las que potencialmente ofrecen una mayor eficiencia en la ejecución concurrente o paralela. Aquí la concurrencia implica que no sólo hay varios procesadores operando simultáneamente, sino que además hay varios programas (procesos) ejecutándose  también al mismo tiempo.

La clasificación de Flynn ha demostrado funcionar bastante bien para la tipificación de sistemas, y se ha venido usando desde décadas por la mayoría de los arquitectos de computadores. Sin embargo, los avances en tecnología y diferentes topologías, han llevado a sistemas que no son tan fáciles de clasificar dentro de los 4 tipos de Flynn. Por ejemplo, los procesadores vectoriales no encajan adecuadamente en esta clasificación, ni tampoco las arquitecturas híbridas. Para solucionar esto se han propuesto otras clasificaciones, donde los tipos SIMD y MIMD de Flynn se suelen conservar, pero que sin duda no han tenido el éxito de la de Flynn.

Los de tipo MIMD pueden a su vez ser subdivididos en multiprocesadores, multicomputadores, multi-multiprocesadores y máquinas de flujo de datos. Incluso los multiprocesadores pueden ser subdivididos en NUMA, UMA y COMA según el modelo de memoria compartida. El tipo SIMD quedaría con los procesadores matriciales y el MISD se subdividiría en procesadores vectoriales y en arrays sistólicos. Se han añadido dos tipos más que son el híbrido y los de aplicación específica.

MULTIPROCESADORES.

Un multiprocesador se puede ver como un computador paralelo compuesto por varios procesadores interconectados que pueden compartir un mismo sistema de memoria. Los procesadores se pueden configurar para que ejecute cada uno una parte de un programa o varios programas al mismo tiempo.
Dado que los multiprocesadores comparten los diferentes módulos de memoria, pudiendo acceder varios procesadores a un mismo módulo, a los multiprocesadores también se les llama sistemas de memoria compartida. Dependiendo de la forma en que los procesadores comparten la memoria, podemos hacer una subdivisión de los multiprocesadores:

• UMA (Uniform Memory Access). En un modelo de Memoria de Acceso Uniforme, la memoria física está uniformemente compartida por todos los procesadores. Esto quiere decir que todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de memoria. Cada procesador puede tener su cache privada, y los periféricos son también compartidos de alguna manera.
• NUMA Un multiprocesador de tipo NUMA es un sistema de memoria compartida donde el tiempo de acceso varía según el lugar donde se encuentre localizado el acceso. La ventaja de estos sistemas es que el acceso a la memoria local es más rápido que en los UMA aunque un acceso a memoria no local es más lento. Lo que se intenta es que la memoria utilizada por los procesos que ejecuta cada procesador, se encuentre en la memoria de dicho procesador para que los accesos sean lo más locales posible. Aparte de esto, se puede añadir al sistema una memoria de acceso global.
• COMA (Cache Only Memory Access). Un multiprocesador que sólo use caché como memoria es considerado de tipo COMA. En realidad, el modelo COMA es un caso especial del NUMA donde las memorias distribuidas se convierten en cachés. No hay jerarquía de memoria en cada módulo procesador. Todas las cachés forman un mismo espacio global de direcciones. El acceso a las cachés remotas se realiza a través de los directorios distribuidos de las cachés. Dependiendo de la red de interconexión empleada, se pueden utilizar jerarquías en los directorios para ayudar en la localización de copias de bloques de caché. El emplazamiento inicial de datos no es crítico puesto que el dato acabará estando en el lugar en que se use más.

MULTICOMPUTADORES.

Un multicomputador se puede ver como un computador paralelo en el cual cada procesador tiene su propia memoria local. La memoria del sistema se encuentra distribuida entre todos los procesadores y cada procesador sólo puede direccionar su memoria local; para acceder a las memorias de los demás procesadores debe hacerlo por paso de mensajes. Esto significa que un procesador tiene acceso directo sólo a su memoria local, siendo indirecto el acceso al resto de memorias del resto de procesadores. Este acceso local y privado a la memoria es lo que diferencia los Multicomputadores de los
Multiprocesadores.

MAQUINAS DE FLUJO DE DATOS.

Hay dos formas de procesar la información, una es mediante la ejecución en serie de una lista de comandos y la otra es la ejecución de un comando demandado por los datos disponibles. La primera forma empezó con la arquitectura de Von Neumann donde un programa almacenaba las ´ordenes a ejecutar, sucesivas modificaciones, etc., han convertido esta sencilla arquitectura en los multiprocesadores para permitir paralelismo.

La segunda forma de ver el procesamiento de datos quizá es algo menos directa, pero desde el punto de vista de la paralelización resulta mucho más interesante puesto que las instrucciones se ejecutan en el momento tienen los datos necesarios para ello, y naturalmente se debería poder ejecutar todas las instrucciones demandadas en un mismo tiempo. Hay algunos lenguajes que se adaptan a este tipo de arquitectura comandada por datos como son el Prolog, el ADA, etc., es decir, lenguajes que exploten de una u otra manera la concurrencia de instrucciones. En una arquitectura de flujo de datos una instrucción está lista para su ejecución cuando los datos que necesita están disponibles. La disponibilidad de los datos se consigue por la canalización de los resultados de las instrucciones ejecutadas con anterioridad a los operandos de las instrucciones que esperan. Esta canalización forma un flujo de datos que van disparando las instrucciones a ejecutar. Por esto se evita la ejecución de instrucciones basada en contador de programa que es la base de la arquitectura Von Neumann.
Las instrucciones en un flujo de datos son puramente autocontenidas; es decir, no direccionan variables en una memoria compartida global, sino que llevan los valores de las variables en ellas mismas. En una maquina de este tipo, la ejecución de una instrucción no afecta a otras que estén listas para su ejecución. De esta manera, varias instrucciones pueden ser ejecutadas simultáneamente lo que lleva a la posibilidad de un alto grado de concurrencia y paralelización.

PROCESADORES MATRICIALES.

Esta arquitectura es la representativa del tipo SIMD, es decir, hay una sola instrucción que opera concurrentemente sobre múltiples datos.

Un procesador matricial consiste en un conjunto de elementos de proceso y un procesador escalar que operan bajo una unidad de control. La unidad de control busca y decodifica las instrucciones de la memoria central y las manda bien al procesador escalar o bien a los nodos procesadores dependiendo del tipo de instrucción. La instrucción que ejecutan los nodos procesadores es la misma simultáneamente, los datos serán los de cada memoria de procesador y por tanto serán diferentes. Por todo esto, un procesador matricial sólo requiere un único programa para controlar todas las unidades de proceso.

PROCESADORES VECTORIALES.

Un procesador vectorial ejecuta de forma segmentada instrucciones sobre vectores. La diferencia con los matriciales es que mientras los matriciales son comandados por las instrucciones, los vectoriales son comandados por flujos de datos continuos. A este tipo se le considera MISD puesto que varias instrucciones son ejecutadas sobre un mismo dato (el vector), si bien es una consideración algo confusa aunque aceptada de forma mayoritaria.

ARRAYS SISTÓLICOS.

Otro tipo de máquinas que se suelen considerar MISD son los arrays sistólicos. En un array  sistólico hay un gran número de elementos de proceso (EPs) idénticos con una limitada memoria local. Los EPs est´an colocados en forma de matriz (array) de manera que sólo están  permitidas las conexiones con los EPs vecinos. Por lo tanto, todos los procesadores se encuentran organizados en una estructura segmentada de forma lineal o matricial. Los datos fluyen de unos EPs a sus vecinos a cada ciclo de reloj, y durante ese ciclo de reloj, o varios, los elementos de proceso realizan una operación sencilla.

ARQUITECTURAS ESPECÍFICAS.

Las arquitecturas específicas son muchas veces conocidas también con el nombre de arquitecturas VLSI ya que muchas veces llevan consigo la elaboración de circuitos específicos con una alta escala de integración.

Un ejemplo de arquitectura de propósito específico son las redes neuronales (ANN de Artificial Neural Network). Las ANN consisten en un elevado número de elementos de proceso muy simples que operan en paralelo. Estas arquitecturas se pueden utilizar para resolver el tipo de problemas que a un humano le resultan fáciles y a una máquinas tan difíciles, como el reconocimiento de patrones, comprensión del lenguaje, etc. La diferencia con las arquitecturas clásicas es la forma en que se programa; mientras en una arquitectura Von Neumann se aplica un programa o algoritmo para resolver un problema, una red de neuronas aprende a fuerza de aplicarle patrones de comportamiento.

ARQUITECTURA VECTORIAL BÁSICA.

Un procesador vectorial está compuesto típicamente por una unidad escalar y una unidad vectorial. La parte vectorial permite que los vectores sean tratados como números en coma flotante, como enteros o como datos lógicos. La unidad escalar es un procesador segmentado normal y corriente.

MULTIPROCESAMIENTO SIMÉTRICO.

SMP es la sigla de Symmetric Multi-Processing, multiproceso simétrico. Se trata de un tipo de arquitectura de ordenadores en que dos o más procesadores comparten una única memoria central.
La arquitectura SMP (Multi-procesamiento simétrico, también llamada UMA, de Uniform Memory Access), se caracteriza por el hecho de que varios microprocesadores comparten el acceso a la memoria. Todos los microprocesadores compiten en igualdad de condiciones por dicho acceso, de ahí la denominación "simétrico".

Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente tareas entre los procesadores para garantizar eficientemente el trabajo.
Una computadora SMP se compone de microprocesadores independientes que se comunican con la memoria a través de un bus compartido. Dicho bus es un recurso de uso común. Por tanto, debe ser arbitrado para que solamente un microprocesador lo use en cada instante de tiempo. Si las computadoras con un solo microprocesador tienden a gastar considerable tiempo esperando a que lleguen los datos desde la memoria, SMP empeora esta situación, ya que hay varios parados en espera de datos.

SUPERESCALAR.

Superescalar es el término utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar más de una instrucción por ciclo de reloj. El término se emplea por oposición a la microarquitectura escalar que sólo es capaz de ejecutar una instrucción por ciclo de reloj. En la clasificación de Flynn, un procesador superescalar es un procesador de tipo MIMD como ya hemos visto anteriormente.

El procesamiento superescalar es la última de una serie de innovaciones tendientes a producir procesadores cada vez más rápidos. Explotando el paralelismo a nivel de instrucción, los superescalares son capaces de ejecutar más de una instrucción por ciclo de reloj (dos, tres, cuatro, ocho ya es mucho).

Los procesadores superescalares pueden iniciar la ejecución simultánea de varias instrucciones escalares en paralelo de manera que se pueden operar varios elementos de un vector dentro de una misma iteración.

Para esto, es necesario que existan varias unidades aritmético-lógicas, de punto flotante y de control. El proceso que sigue el micro es transparente al programa, aunque el compilador puede ayudar analizando el código y generando un flujo de instrucciones optimizado.

Cabe decir que, la mayoría de sistemas pretenden resolver problemas generales de procesamiento, es decir, se trata de arquitecturas que de alguna u otra manera permiten resolver de una forma eficiente una amplia gama de problemas de computación. Esto es especialmente interesante puesto que estas arquitecturas son las que se utilizan en los sistemas de propósito general que son los que ocupan la mayor parte del mercado de computadores. Hay diferencias entre unas arquitecturas y otras, por ejemplo es evidente que una máquina vectorial va a ser ideal para el cálculo científico, mientras que un multicomputador es más interesante para la realización de tareas sencillas por muchos usuarios conectados a él, pero en ambos casos el sistema es fácil de programar y resuelve prácticamente el mismo tipo de problemas.

INTEGRANTES:
Argenis Oropeza Tovar
Wendys Rico
Luisa Martínez
José Plaza
Osnewald Marcano

lunes, 11 de julio de 2011

ORGANIZACIÓN BÁSICA Y DISEÑO DEL COMPUTADOR


Código de instrucciones:
El código de instrucciones es un grupo de bits que instruye a la computadora como ejecutar una operación específica siendo su parte más básica la parte de operación, el cual es un grupo de bits que define operaciones como sumar, restar, multiplicar, desplazar y complementar.

Un código de operación se denomina Macrooperación, porque especifica un conjunto de microoperaciones.
 
Las instrucciones máquina o instrucciones del computador:
Las instrucciones de computadora son las que comprueban el funcionamiento de la  CPU que las ejecuta y es un código binario que especifica una secuencia de microoperaciones para la computadora.

Ciclo de instrucción:
Un ciclo de instrucción es el período de tiempo durante el cual un ordenador lee y procesa una instrucción de lenguaje máquina de su memoria o la secuencia de acciones que la unidad central (CPU) funciona para ejecutar cada instrucción de código de máquina en un programa. 

Control y sincronización de tiempo:

Existen dos tipos principales de organizaciones de control:
  • Control por cableado
  • Control microprogramado
En la organización por cableado, la lógica de control se logra mediante compuertas, Flip-Flops y otros circuitos digitales. Esto tiene la ventaja de que puede utilizarse para producir un modo de operación más rápido.

En la organización microprogramada, la información de control esta almacenada en una memoria de control. La memoria de control está programada para iniciar la secuencia de microoperaciones requerida.
 
Las instrucciones básicas en los lenguajes se pueden considerar en cuatro grupos:
  • Instrucciones de entrada salida: son instrucciones de transferencia de información y datos entre dispositivos periféricos (teclado, impresora, unidad de disco, entre otras.).
  • Instrucciones aritméticas lógicas: son instrucciones que  ejecutan operaciones aritméticas (suma, resta, multiplicación, división,  potencialización) y lógicas (operaciones and, or, not, entre otras.).
  • Instrucciones selectivas: son instrucciones que permiten  la   selección de tareas alternativas en función de los resultados de diferentes expresiones condicionales. 
  • Instrucciones repetitivas: son instrucciones que permiten la repetición de secuencias de instrucciones un número determinado o indeterminado de veces.
Los registro:  es cierta información guardada para luego ejecutarse más rápido y es una pequeña unidad de almacenamiento destinada a contener cierto tipo de datos. Puede estar en la propia memoria central o en unidades de memoria de acceso rápido.

Registros de la computadora.
                                                                  
  • DR: (Registro de datos) Contiene el operando en la memoria.
  • AR: (Registro de dirección) Contiene la dirección para la memoria.
  • AC: (Acumulador) Contiene el registro del procesador.
  • IR: (Registro de instrucción) Contiene el código de instrucción.
  • PC: (Contador de programa) Contiene el código de la siguiente instrucción.
  • TR: (Registro temporal) Contiene datos temporales.
  • INPR: (Registro de entrada) Contiene el carácter de entrada. 
  • OUPR: (Registro de salida) Contiene el carácter de salida.
INTEGRANTES:
Oropeza Argenis. 
Rico Wendys. 
Plaza José. 
Martinez Luisa.
Osnewald Marcano.