LOS PRIMEROS COMPUTADORES SE PROGRAMABAN EN REALIDAD RE CABLENDOLOS. ESTO
PRCTICAMENTE EQUIVALA A RECONSTRUIR TODO EL COMPUTADOR CUANDO SE REQUERA DE UN NUEVO PROGRAMA. LA TAREA ERA SIMPLIFICADA GRACIAS A UN PANEL DE CONTACTOS (MUY SIMILAR AL DE LOS PRIMEROS CONMUTADORES TELEFNICOS QUE ERAN ATENDIDOS POR OPERADORAS, Y QUE HOY EN DA SLO LLEGAMOS A VER EN VIAJES PELCULAS EN BLANCO Y NEGRO. VER FIG. 1) CON EL QUE ERA POSIBLE ENLAZAR CIRCUITOS PARA CREAR SECCIONES DEDICADAS A UNA ACTIVIDAD ESPECFICAS. LA PROGRAMACIN DEL COMPUTADOR SE LLEVABA A CABO, LITERALMENTE, RECONSTRUYNDOLO. Mientras que el re cablear al computador estableca una clara distincin entre los datos (representados por los estados o seales elctricas que seran mantenidas por los relevadores o a travs de los bulbos que conformaban al computador) y el programa (las conexiones que seran establecidas entre estos componentes del hardware) la labor de "programacin" requera sino del propio creador del computador si a un verdadero experto y conocedor de electrnica, principios de lgica digital y del problema mismo. Esto vino a cambiar con el concepto del programa almacenado, un concepto terico muy importante que fue establecido por el matemtico John von Neumann el 30 de junio de 1945 en un borrador sobre el diseo de la EDVAC. LA ARQUITECTURA DE VON NEUMANN SE COMPONE DE TRES ELEMENTOS: 1.-La Unidad Central de Procesamiento (CPU, por sus siglas en ingls), que es considerada como el cerebro y corazn del computador. Internamente consiste de una Unidad Aritmtico-Lgica (ALU), un conjunto de registros y una Unidad de Control (CU). La ALU es donde se realizan todas las operaciones que involucran un procesamiento matemtico (particularmente aritmtico) o lgico (operaciones booleanas). Los registros permiten el almacenammiento de datos para estas operaciones y sus resultados. En la CU es donde se ejecutan todo el resto de las operaciones (decisin, control, movimiento de datos). Una CPU con todos estos elementos implementada en un solo chip recibe el nombre de microprocesador. 2) La memoria, que es donde datos y programa es almacenado. La memoria puede ser visto como un arreglo unidimensional finito en la que cada localidad es identificada por un valor asociado a su posicin y que es comunmente llamado direccin. Existen diversos tipos de memoria, identificados por el tipo de tecnologa usada, aunque para un computador son generalmente clasificadas en dos grandes grupos por tipo de uso al que de destina. La memoria RAM (Random Access Memory, Memoria de Acceso Aleatorio) y que es aquella destinada al almacenamiento de datos y programas (incluyendo al sistema operativo), es considerada temporal o de tipo voltil ya que pierde si contenido cuendo el computador es apagadoo reinicializado. La memoria ROM es aquella de tipo permanente, aun cuando el computador sea desenergizado mantendr su contenido. Es usada principalmente para el almacenamiento de pequeos programas destinados a la adminsitracin bsica de recursos, especialmente de entrada y salida. 3) Las interfaces de entrada y salida (I/O). destinadas a liberar de trabajo a la CPU en la comunidacin con dispositivos de entrada (teclados, ratones), salida (impresoras) y entrada-salidas (discos, cintas). Estos tres elementos estn interconectados a travs de un conjunto de lneas que llevan instrucciones (control bus), datos (data bus) y que permiten dar los valores de direcciones de memoria y dispositivos (memory bus). ARQUITECTURA HARVARD
El trmino Arquitectura Harvard originalmente se refera a las arquitecturas de
computadoras que utilizaban dispositivos de almacenamiento fsicamente separados para las instrucciones y para los datos (en oposicin a la Arquitectura von Neumann). El trmino proviene de la computadora Harvard Mark I, que almacenaba las instrucciones en cintas perforadas y los datos en interruptores. Todas las computadoras constan principalmente de dos partes, la CPU que procesa los datos, y la memoria que guarda los datos. Cuando hablamos de memoria manejamos dos parmetros, los datos en s, y el lugar donde se encuentran almacenados (o direccin). Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen a algo as como "coge los datos de sta direccin y adelos a los datos de sta otra direccin" , sin saber en realidad qu es lo que contienen los datos. este problema es conocido como 'limitacin de memoria'. Se puede fabricar memoria mucho ms rpida, pero a costa de un precio muy alto. La solucin, por tanto, es proporcionar una pequea cantidad de memoria muy rpida conocida con el nombre de cach. Mientras los datos que necesita el procesador estn en la cach, el rendimiento ser mucho mayor que si la cach tiene que obtener primero los datos de la memoria principal. La optimizacin de la cach es un tema muy importante de cara al diseo de computadoras. La arquitectura Harvard ofrece una solucin particular a este problema. Las instrucciones y los datos se almacenan en cachs separadas para mejorar el rendimiento. Por otro lado, tiene el inconveniente de tener que dividir la cantidad de cach entre los dos, por lo que funciona mejor slo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o procesador de seal digital, usados habitualmente en productos para procesamiento de audio y video. ARQUITECTURA MUTIPROCESAMIENTO
Cuando se desea incrementar el desempeo ms aya de lo que permite la
tcnica de segmentacin del cauce (limite terico de una instruccin por ciclo de reloj), se requiere utilizar ms de un procesador para la ejecucin del programa de aplicacin. ARQUITECTURAS DE MULTI-PROCESAMIENTO. Cuando se desea incrementar el desempeo ms aya de lo que permite la tcnica de segmentacin del cauce (limite terico de una instruccin por ciclo de reloj), se requiere utilizar ms de un procesador para la ejecucin del programa de aplicacin. Las CPU de multiprocesamiento se clasifican de la siguiente manera (Clasificacin de Flynn): SISO (Single Instruction, Single Operand) computadoras Monoprocesador SIMO (Single Instruction, Multiple Operand) procesadores vectoriales, Exenciones MMX MISO (Multiple Instruction, Single Operand) No implementado MIMO (Multiple Instruction, Multiple Operand) sistemas SMP, Clusters, GPUs Procesadores vectoriales Son computadoras pensadas para aplicar un mismo algoritmo numrico a una serie de datos matriciales, en especial en la simulacin de sistemas fsicos complejos, tales como simuladores para predecir el clima, explosiones atmicas, reacciones qumicas complejas, etc., donde los datos son representados como grandes nmeros de datos en forma matricial sobre los que se deben se aplicar el mismo algoritmo numrico. La mayora de los procesadores modernos incluye algunas instrucciones de tipo vectorial, tales como las extensiones al conjunto de instrucciones tales como MMX y SSE. Estas instrucciones les permiten procesar flujos multimedia ms eficientemente. Los Procesadores Digitales de Seales (DSP), son procesadores especializados en el procesamiento de seales tales como audio, vdeo, radar, sonar, radio, etc. Cuentan con instrucciones tipo vectorial que los hace muy aptos para dicha aplicacin. Suelen utilizarse en conjunto con un microcontrolador en dispositivos como reproductores de audio, reproductores de dvd y Blueray, telfonos celulares, sistemas de entretenimiento, sistemas de adquisicin de datos, instrumentos mdicos, controles industriales, etc. En los sistemas SMP (Simetric Multiprocesesors), varios procesadores comparten la misma memoria principal y perifricos de I/O, Normalmente conectados por un bus comn. Se conocen como simtricos, ya que ningn procesador toma el papel de maestro y los dems de esclavos, sino que todos tienen derechos similares en cuanto al acceso a la memoria y perifricos y ambos son administrados por el sistema operativo. Pueden formarse con varios ncleos en un solo circuito integrado o con varios circuitos integrados en una misma tarjeta madre. La primera opcin ha sido popularizada al hacerse ms econmicos los procesadores multinucleo de los principales fabricantes y con su uso en sistemas de gama media y baja, e inclusive en telfonos celulares y tabletas. La segunda opcin fue la que se uso en un principio y sigue siendo usada en en estaciones de trabajo y en servidores de alto rendimiento debido a que incrementa el poder computacional del sistema, pero tambin incrementa considerablemente el costo del sistema.