Está en la página 1de 13

Arquitectura de computadoras

Omar Antonio Morato martinez

08380653

Viernes 25 de febrero de 2011

Arquitectura de von Neumann

Diagrama de la arquitectura Von Neumann.

La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard). La mayora de computadoras modernas estn basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratn, teclado, etc).

Origen
El nacimiento u origen de la arquitectura Von Neumann surge a raz de una colaboracin en el proyecto ENIAC del matemtico de origen hngaro, John Von Neumann. Este trabajaba en 1945 en el Laboratorio Nacional Los lamos cuando se encontr con uno de los constructores de la ENIAC. Compaero de Albert Einstein, Kurt Gdel y Alan Turing en Princeton, Von Neumann se interes por el problema de la necesidad de recablear la mquina para cada nueva tarea. En 1949 haba encontrado y desarrollado la solucin a este problema, consistente en poner la informacin sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribindola de la misma forma, es decir en cdigo binario. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuacin. Se habla desde entonces de la arquitectura de Von Neumann, aunque tambin dise otras formas de construccin. El primer computador comercial construido en esta forma fue el UNIVAC I, fabricado en 1951 por la Sperry-Rand Corporation y comprado por la Oficina del Censo de Estados Unidos.

Primeros ordenadores basados en arquitecturas von Neumann


La primera saga se basaba en un diseo que fue utilizado por muchas universidades y empresas para construir sus equipos. Entre estos, slo ILLIAC y ORDVAC tenan un conjunto de instrucciones compatible.

ORDVAC (U-Illinois) en Aberdeen Proving Ground, Maryland (completado en noviembre de 1951) IAS machine en Princeton University (Jan 1952) MANIAC I en Laboratorio Cientfico Los Alamos(Mar 1952) ILLIAC en la Universidad de Illinois, (Sept 1952) AVIDAC en Laboratorios Argonne National (1953) ORACLE en Laboratorio Nacional de Oak Ridge (Jun 1953) JOHNNIAC en RAND Corporation (Jan 1954) BESK en Estocolmo (1953) BESM-1 en Mosc (1952) DASK en Dinamarca (1955) PERM en Munich (1956?) SILLIAC en Sydney (1956) WEIZAC en Rehovoth (1955)

Arquitectura Harvard

La arquitectura Harvard cuenta con la memoria de programa y la memoria de datos separado y solo accesible a travs de buses distintos. El PIC16FXXX cuenta con un bus de datos de 14-bits para acceder a la memoria de programas y un bus independiente de 8-bits para acceder a la memoria de datos. Esto mejora el ancho de banda en relacin a la arquitectura tradicional de Von-Neumann, en la cual en la cual memoria de programa y la memoria de datos son accedidas a travs del mismo bus. Esta arquitectura ofrece la posibilidad de poder acceder a una sola instruccin en un ciclo de reloj. Mientras la memoria de programa es accedida la memoria de datos esta en un bus independiente y puede ser leda y escrita. Esta separacin de buses permite que una instruccin sea ejecutada mientras la siguiente es extrada. 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 de 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.

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.

Arquitecturas Risc y Cisc


Una de las primeras decisiones a la hora de disear un microprocesador es decidir cual ser su juego de instrucciones. La decisin es trascendente por dos razones; primero, el juego de instrucciones decide el diseo fsico del conjunto; segundo, cualquier operacin que deba ejecutarse en el microprocesador deber poder ser descrita en trminos de un lenguaje de estas instrucciones. Frente a esta cuestin caben dos filosofas de diseo;mquinas denominadas CISC y mquinas denominadas RISC. Cuando hablamos de microprocesadores CISC, computadoras con un conjunto de instrucciones complejo , del ingls complex instruction set computer, y procesadores RISC, computadoras con un conjunto de instrucciones reducido, del ingls reduced instruction set computer, se piensa que los atributos complejo y reducido describen las diferencias entre los dos modelos de arquitectura para microprocesadores. Esto es cierto solo de forma superficial, pues se requiere de muchas otras caractersticas esenciales para definir los RISC y los CISC. An ms, existen diversos procesadores que no se pueden asignar con facilidad a ninguna categora determinada. Hasta hace solo algunos aos, la divisin era tajante: RISC se utilizaba para entornos de red, mientras que CISC se aplicaba en ordenadores domsticos. Pero en la actualidad se alzan voces que afirman que CISC est agotando sus posibilidades, mientras otras defienden fervientemente que CISC ya ha alcanzado a RISC, adoptando algunas de sus principales caractersticas.

Arquitectura Risc

DEC Alpha AXP 21064, un microprocesador RISC En la arquitectura computacional, RISC (del ingls reduced instruction set computer) es un tipo de microprocesador con las siguientes caractersticas fundamentales: 1. Instrucciones de tamao fijo y presentadas en un reducido nmero de formatos. 2. Slo las instrucciones de carga y almacenamiento acceden a la memoria de datos. Adems estos procesadores suelen disponer de muchos registros de propsito general. El objetivo de disear mquinas con esta arquitectura es posibilitar la segmentacin y el paralelismo en la ejecucin de instrucciones y reducir los accesos a memoria. Las mquinas RISC protagonizan la tendencia actual de construccin de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, ... son ejemplos de algunos de ellos. RISC es una filosofa de diseo de CPU para computadora que est a favor de conjuntos de instrucciones pequeas y simples que toman menor tiempo para ejecutarse. El tipo de procesador ms comnmente utilizado en equipos de escritorio, el x86, est basado en CISC en lugar de RISC, aunque las versiones ms nuevas traducen instrucciones basadas en CISC x86 a instrucciones ms simples basadas en RISC para uso interno antes de su ejecucin. La idea fue inspirada por el hecho de que muchas de las caractersticas que eran incluidas en los diseos tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Adems, la velocidad del procesador en relacin con la memoria de la computadora que acceda era cada vez ms alta. Esto conllev la aparicin de numerosas tcnicas para reducir el procesamiento dentro del CPU, as como de reducir el nmero total de accesos a memoria.

Terminologa ms moderna se refiere a esos diseos como arquitecturas de carga-almacenamiento.

Historia
Mientras la filosofa de diseo RISC se estaba formando, nuevas ideas comenzaban a surgir con un nico fin: incrementar drsticamente el rendimiento de la CPU. Al principio de la dcada de los ochenta se pensaba que los diseos existentes estaban alcanzando sus lmites tericos. Las mejoras de la velocidad en el futuro seran hechas con base en procesos mejorados, esto es, pequeas caractersticas en el chip. La complejidad del chip podra continuar como hasta entonces, pero un tamao ms pequeo podra resultar en un mejor rendimiento del mismo al operar a ms altas velocidades de reloj. Se puso una gran cantidad de esfuerzo en disear chips para computacin paralela, con vnculos de comunicacin interconstruidos. En vez de hacer los chips ms rpidos, una gran cantidad de chips seran utilizados, dividiendo la problemtica entre stos. Sin embargo, la historia mostr que estos miedos no se convirtieron en realidad, y hubo un nmero de ideas que mejoraron drsticamente el rendimiento al final de la dcada de los ochenta. Una idea era la de incluir un canal por el cual se pudieran dividir las instrucciones en pasos y trabajar en cada paso muchas instrucciones diferentes al mismo tiempo. Un procesador normal podra leer una instruccin, decodificarla, enviar a la memoria la instruccin de origen, realizar la operacin y luego enviar los resultados. La clave de la canalizacin es que el procesador pueda comenzar a leer la siguiente instruccin tan pronto como termine la ltima instruccin, significando esto que ahora dos instrucciones se estn trabajando (una est siendo leda, la otra est comenzando a ser decodificada), y en el siguiente ciclo habr tres instrucciones. Mientras que una sola instruccin no se completara ms rpido, la siguiente instruccin sera completada enseguida. La ilusin era la de un sistema mucho ms rpido. Esta tcnica se conoce hoy en da como Segmentacin de cauce. Otra solucin ms era utilizar varios elementos de procesamiento dentro del procesador y ejecutarlos en paralelo. En vez de trabajar en una instruccin para sumar dos nmeros, esos procesadores superescalares podran ver la siguiente instruccin en el canal y tratar de ejecutarla al mismo tiempo en una unidad idntica. Esto no era muy fcil de hacer, sin embargo, ya que algunas instrucciones dependan del resultado de otras instrucciones. Ambas tcnicas se basaban en incrementar la velocidad al aadir complejidad al diseo bsico del CPU, todo lo opuesto a las instrucciones que se ejecutaban en el mismo. Siendo el espacio en el chip una cantidad finita, para poder incluir todas esas caractersticas algo ms tendra que ser eliminado para hacer hueco. RISC

se encarg de tomar ventaja de esas tcnicas, esto debido a que su lgica para el CPU era considerablemente ms simple que la de los diseos CISC. Aun con esto, los primeros diseos de RISC ofrecan una mejora de rendimiento muy pequea, pero fueron capaces de aadir nuevas caractersticas y para finales de los ochenta haban dejado totalmente atrs a sus contrapartes CISC. Con el tiempo esto pudo ser dirigido como una mejora de proceso al punto en el que todo esto pudo ser aadido a los diseos CISC y aun as caber en un solo chip, pero esto tom prcticamente una dcada entre finales de los ochenta y principios de los noventa.

Caractersticas
En pocas palabras esto significa que para cualquier nivel de desempeo dado, un chip RISC tpicamente tendr menos transistores dedicados a la lgica principal. Esto permite a los diseadores una flexibilidad considerable; as pueden, por ejemplo:

Incrementar el tamao del conjunto de registros. Mayor velocidad en la ejecucin de instrucciones. Implementar medidas para aumentar el paralelismo interno. Aadir cachs enormes. Aadir otras funcionalidades, como E/S y relojes para minicontroladores. Construir los chips en lneas de produccin antiguas que de otra manera no seran utilizables. No hacer nada, ofrecer el chip para aplicaciones de bajo consumo de energa o de tamao limitado.

Las caractersticas que generalmente son encontradas en los diseos RISC son:

Codificacin uniforme de instrucciones (ejemplo: el cdigo de operacin se encuentra siempre en la misma posicin en cada instruccin, la cual es siempre una palabra), lo que permite una decodificacin ms rpida. Un conjunto de registros homogneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y as simplificar el diseo del compilador (aunque existen muchas formas de separar los ficheros de registro de entero y coma flotante). Modos de direccionamiento simple con modos ms complejos reemplazados por secuencias de instrucciones aritmticas simples. Los tipos de datos soportados en el hardware (por ejemplo, algunas mquinas CISC tiene instrucciones para tratar con tipos byte, cadena) no se encuentran en una mquina RISC.

Los diseos RISC tambin prefieren utilizar como caracterstica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos estn conceptualmente separados; esto significa que el modificar las direcciones donde el cdigo se encuentra pudiera no tener efecto alguno en las instrucciones

ejecutadas por el procesador (porque la CPU tiene separada la instruccin y el cach de datos, al menos mientras una instruccin especial de sincronizacin es utilizada). Por otra parte, esto permite que ambos cachs sean accedidos separadamente, lo que puede en algunas ocasiones mejorar el rendimiento. Muchos de esos diseos RISC anteriores tambin compartan una caracterstica no muy amable, el slot de salto retardado (Delay Slot). Un slot de salto retardado es un espacio de instruccin siguiendo inmediatamente un salto. La instruccin en este espacio es ejecutada independientemente de si el salto se produce o no (en otras palabra el salto es retardado). Esta instruccin mantiene la ALU de la CPU ocupada por el tiempo extra normalmente necesario para ejecutar una brecha. Para utilizarlo, recae en el compilador la responsabilidad de reordenar las instrucciones de manera que el cdigo sea coherente para ejecutar con esta caracterstica. En nuestros das el slot de salto retardado se considera un desafortunado efecto colateral de la estrategia particular por implementar algunos diseos RISC. Es por esto que los diseos modernos de RISC, tales como ARM, PowerPC, y versiones ms recientes de SPARC y de MIPS, generalmente eliminan esta caracterstica.

ARQUITECTURA CISC

La tecnologa CISC (Complex Instruction Set Computer) naci de la mano de Intel, creador en 1971 del primer microchip que permitira el nacimiento de la informtica personal. Ms concretamente, sera en 1972 cuando aparecera el 8080, primer chip capaz de procesar 8 bits, suficiente para representar nmeros y letras. Con la posibilidad de colocar todos los circuitos en un solo chip y la capacidad de manejar nmero y letras nacera la cuarta generacin de ordenadores, la de los conocidos como PC u ordenadores personales. Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos. Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que en la actualidad la mayora de los sistemas CISC de alto rendimientoimplementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples, llamadas generalmente microinstrucciones.

La microprogramacin es una caracterstica importante y esencial de casi todas las arqutecturas CISC. La microprogramacin significa que cada instruccin de mquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj, al menos uno por microinstruccin. Es as entonces como los chips CISC utilizan comandos que incorporan una grandiversidad de pequeas instrucciones para realizar una nica operacin. Cuando el sistema operativo o una aplicacin requiere de una de estas acciones, enva al procesador el nombre del comando para realizarla junto con el resto de informacin complementaria que se necesite. Pero cada uno de estos comandos de la ROM del CISC varan de tamao y, por lo tanto, el chipdebe en primer lugar verificar cuanto espacio requiere el comando para ejecutarse y poder as reservrselo en la memoria interna. Adems, el procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema. El procesador enva entonces el comando solicitado a una unidad que lo descodifica en instrucciones ms pequeas que podrn ser ejecutadas por un nanoprocesador, una especie de procesador dentro del procesador. Y al no ser las instrucciones independientes, pues son instrucciones menores procedentes de la descodificacin de una instruccin mayor, slo puede realizarse una instruccin cada vez. A travs de la compleja circuitera del chip, el nanoprocesador ejecuta cada una de las instrucciones del comando. El desplazamiento por esta circuitera tambin ralentiza el proceso. Para realizar una sola instruccin un chip CISC requiere de cuatro a diez ciclos de reloj. Entre las bondades de CISC destacan las siguientes:

Reduce la dificultad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de creacin de sftware. Mejora la compactacin de cdigo. Facilita la depuracin de errores.

Ejemplo de microprocesadores basados en la tecnologa CISC:


Intel 8086, 8088, 80286, 80386, 80486. Motorola 68000, 68010, 68020, 68030, 6840.

Segmentacin

La segmentacin (en ingls pipelining, literalmente tuberia o caeria) es un mtodo por el cual se consigue aumentar el rendimiento de algunos sistemas electrnicos digitales. Es aplicado, sobre todo, en microprocesadores. El nombre viene de que para impulsar el gas en un oleoducto a la mxima velocidad es necesario dividir el oleoducto en tramos y colocar una bomba que d un nuevo impulse al gas. El smil con la programacin existe en que los clculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crtica (tramo con ms carga o retardo computacional entre dos registros de reloj) se reduzca. La ruta crtica es en realidad la frecuencia mxima de trabajo alcanzada por el conjunto. A mayor ruta crtica (tiempo o retraso entre registros) menor es la frecuencia mxima de trabajo y a menor ruta crtica mayor frecuencia de trabajo. La una es la inversa de la otra. Repartir o segmentar equitativamente el clculo hace que esa frecuencia sea la ptima a costa de ms rea para el almacenamiento o registro de los datos intervinientes y de un retraso o latencia (en ciclos de reloj/tiempo) en la salida del resultado equivalente al nmero de segmentaciones o registros realizados. La ventaja primordial de este sistema es que, tal y como se muestra en la imagen, una vez el pipe est lleno, es decir, despus de una latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada flanco de reloj y sin latencia extra por estar encadenados dentro del mismo pipe. Todo esto habiendo maximizado la frecuencia mxima de trabajo.

Detalle de la segmentacin de instrucciones. El alto rendimiento y la velocidad elevada de los modernos procesadores, se debe, principalmente a la conjuncin de tres tcnicas: Arquitectura Harvard (arquitectura que propicia el paralelismo). Procesador tipo RISC. La propia segmentacin

La segmentacin consiste en descomponer la ejecucin de cada instruccin en varias etapas para poder empezar a procesar una instruccin diferente en cada una de ellas y trabajar con varias a la vez. En el caso del procesador DLX podemos encontrar las siguientes etapas en una instruccin: IF: bsqueda ID: decodificacin EX: ejecucin de unidad aritmtico lgica MEM: memoria WB: escritura

Cada una de estas etapas de la instruccin usa en exclusiva un hardware determinado del procesador, de tal forma que la ejecucin de cada una de las etapas en principio no interfiere en la ejecucin del resto. En el caso de que el procesador no pudiese ejecutar las instrucciones en etapas segmentadas, la ejecucin de la siguiente instruccin slo se podra llevar a cabo tras la finalizacin de la primera. En cambio en un procesador segmentado, salvo excepciones de dependencias de datos o uso de unidades funcionales, la siguiente instruccin podra iniciar su ejecucin tras acabar la primera etapa de la instruccin actual. Otro ejemplo de lo anterior, en el caso del PIC, consiste en que el procesador realice al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente.