arquitectura de la pc

20
ARQUITECTURA DE LA PC 1. ANTECEDENTES HISTORICOS Entre 1934 y 1939 en Alemania construyen dos maquina s de cálculos que se acercaban bastante a los que serían el primer computador en 1937 CLAUDE SHANNUN demostró definitivamente que la programación de futuras computadoras era un problema se lógica más que de aritmética con posterioridad y con la colaboraciones WARREN WEAVER , SHANNON desarrollo lo que se llamó teoría matemática , de la comunicación hay más conocida como teoría estableciendo el concepto de "negetropia" y unidad media del bit, universalmente conocida tanto en telecomunicaciones como en informática . 2. ARQUITECTURA ABIERTA Es un tipo de arquitectura de ordenadores o arquitectura de software que permite añadir, modernizar y cambiar sus componentes. Por ejemplo, el IBM PC tiene una arquitectura abierta, mientras que el ordenador personal AMIGA 500 tiene una arquitectura cerrada, donde el fabricante del hardware escoge los componentes, y normalmente no son actualizables La arquitectura abierta está comenzando a extenderse dentro del contexto del diseño arquitectónico de edificios por parte del grupo Architecture for Humanity. Este grupo ha desarrollado un proyecto denominado la red abierta de arquitectura que se intenta apartar a la Arquitectura del formato cerrado que es promocionado por firmas que eligen no compartir su trabajo. La arquitectura abierta permite a los potenciales usuarios ver el interior de todo o parte de la arquitectura sin ninguna restricción propietaria. Típicamente, una arquitectura abierta publica todo o parte de la arquitectura que el desarrollador o integrador quiere compartir. Los procesos de negocio abiertos relacionados con una arquitectura abierta pueden necesitar de algunos acuerdos de licencia entre las entidades que comparten la información de la arquitectura. Arquitectura abierta La arquitectura abierta está comenzando a extenderse dentro del contexto del diseño arquitectónico de edificios por parte del grupo Architecture for Humanity. Este grupo ha desarrollado un proyecto denominado la Red Abierta de Arquitectura se intenta apartar a la Arquitectura del formato cerrado que es promocionado por firmas que eligen no compartir su trabajo. La arquitectura abierta permite a los potenciales usuarios ver el interior de todo o parte de la arquitectura sin ninguna restricción propietaria. Típicamente, una arquitectura abierta publica todo o parte de la arquitectura que el desarrollador o integrador quiere compartir. Los procesos de negocio abiertos relacionados con una arquitectura abierta pueden necesitar de algunos acuerdos de licencia entre las entidades que comparten la información de la arquitectura. Características de la arquitectura abierta Son de gran utilidad en ambiente multiusuario.

Upload: gakushaluis

Post on 27-Jun-2015

380 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de La Pc

ARQUITECTURA DE LA PC1. ANTECEDENTES HISTORICOS

Entre 1934 y 1939 en Alemania construyen dos maquina s de cálculos que se acercaban bastante a los que serían el primer computador en 1937 CLAUDE SHANNUN demostró definitivamente que la programación de futuras computadoras era un problema se lógica más que de aritmética con posterioridad y con la colaboraciones WARREN WEAVER , SHANNON desarrollo lo que se llamó teoría matemática , de la comunicación hay más conocida como teoría estableciendo el concepto de "negetropia" y unidad media del bit, universalmente conocida tanto en telecomunicaciones como en informática .

2. ARQUITECTURA ABIERTAEs un tipo de arquitectura de ordenadores o arquitectura de software que permite añadir, modernizar y cambiar sus componentes. Por ejemplo, el IBM PC tiene una arquitectura abierta, mientras que el ordenador personal AMIGA 500 tiene una arquitectura cerrada, donde el fabricante del hardware escoge los componentes, y normalmente no son actualizablesLa arquitectura abierta está comenzando a extenderse dentro del contexto del diseño arquitectónico de edificios por parte del grupo Architecture for Humanity. Este grupo ha desarrollado un proyecto denominado la red abierta de arquitectura que se intenta apartar a la Arquitectura del formato cerrado que es promocionado por firmas que eligen no compartir su trabajo.La arquitectura abierta permite a los potenciales usuarios ver el interior de todo o parte de la arquitectura sin ninguna restricción propietaria. Típicamente, una arquitectura abierta publica todo o parte de la arquitectura que el desarrollador o integrador quiere compartir. Los procesos de negocio abiertos relacionados con una arquitectura abierta pueden necesitar de algunos acuerdos de licencia entre las entidades que comparten la información de la arquitectura.

Arquitectura abiertaLa arquitectura abierta está comenzando a extenderse dentro del contexto del diseño arquitectónico de edificios por parte del grupo Architecture for Humanity. Este grupo ha desarrollado un proyecto denominado la Red Abierta de Arquitectura se intenta apartar a la Arquitectura del formato cerrado que es promocionado por firmas que eligen no compartir su trabajo.La arquitectura abierta permite a los potenciales usuarios ver el interior de todo o parte de la arquitectura sin ninguna restricción propietaria. Típicamente, una arquitectura abierta publica todo o parte de la arquitectura que el desarrollador o integrador quiere compartir. Los procesos de negocio abiertos relacionados con una arquitectura abierta pueden necesitar de algunos acuerdos de licencia entre las entidades que comparten la información de la arquitectura.

Características de la arquitectura abiertaSon de gran utilidad en ambiente multiusuario.Poseen procesadores muy poderosos capaces de manejar un gran número de terminales y capacidades de almacenamiento que sobrepasan los GB.Obtienen gran integración de sus subsistemas de información en una base de datos única.Menos costosos, complejidad mínima y más flexibles.No están atados a un solo tipo de hardware propietario.Posee un ambiente integrado de información.Cumplen o generan estándares.Sus especificaciones son generales.El software posee alto grado de portabilidad.Flexibilidad de los programas de programación.Permite la conexión fácil a aparatos y programas de otras compañías.

Ventajas de la arquitectura abiertaA nivel de usuario:Menos costososMayor provecho de la tecnología.Múltiples proveedores de hardware y software.Ambiente estándar de aplicaciones.Múltiples soluciones disponibles de acuerdo con necesidades específicas.Mayor protección de la inversión en equipos de cómputo.

Page 2: Arquitectura de La Pc

Más disponibilidad de aplicaciones.Disponibilidad de una base amplia donde obtener referencia.Amplias variedades de software disponiblesA nivel de fabricantes:Crecimiento del mercado múltipleOportunidad de ventas de productos de diferentes proveedores.Mínimo rango de trabajo en el soporte.Amplio rango de herramientas de desarrollo.Una rápida introducción de las mejores tecnologías.

Desventajas de la arquitectura abiertaEs menos seguro debido a la disposición de muchas herramientas para poder acceder a los programas.Cada servidor procesa una información haciendo o convirtiendo esta arquitectura más lenta.

3. ARQUITECTURA CERRADAEn informática, arquitectura cerrada hace referencia a cualquier procesador o periférico con especificaciones que no se hacen públicas.Por ejemplo, la CPU se conecta con la memoria y otros dispositivos a través de una arquitectura que puede ser abierta o cerrada. Los microprocesadores con arquitecturas cerradas no hacen públicas sus especificaciones, con esto impiden que otras empresas fabriquen ampliaciones.

Arquitectura cerradaEn informática, arquitectura cerrada hace referencia a cualquier procesador o periférico con especificaciones que no se hacen públicas.Por ejemplo, la CPU se conecta con la memoria y otros dispositivos a través de una arquitectura que puede ser abierta o cerrada. Los microprocesadores con arquitecturas cerradas no hacen públicas sus especificaciones, con esto impiden que otras empresas fabriquen ampliaciones.Lo contrario es arquitectura abierta.

CaracterísticasSon de gran utilidad a nivel empresarial.Altos costos para su mantenimiento.Dependen de un hardware específico de la compañía propietaria.Este software posee un gran bajo grado de portabilidad.Los lenguajes de programación son creados por la compañía específica creadora del programa.Estos equipos son inmodificables por cualquier programador.Sus aplicaciones no son generales.Esta arquitectura es limitada.Procesa mayor volumen de información.Tiene mayor capacidad de memoria.

Ventajas de la arquitectura cerradaEn relación al usuario:Procesan mayor capacidad de información.Tienen mayor capacidad de memoria.Es más seguro debido a que no todos los programadores tienen acceso.En relación a los fabricantes.Les da ventaja a los fabricantes para monopolizar el mercado.Sus clientes están obligados a adquirir solo productos de los fabricantes.

El fabricante determina el lenguaje de programación a usar.

Desventajas de la arquitectura cerradaSu mantenimiento es sumamente costoso.Alto costo para su adquisición.Necesita de un personal calificado para su manejo.Ocupa grandes espacios.Necesita condiciones específicas como aire acondicionado, energía eléctrica etc.No es compatible con dispositivos periféricos ajenos a la compañía.

4. ARQUITECTURA DE HARVARDSe refería a las computadoras que realizaban dispositivos de almacenamiento fisicamente separados para las instrucciones y para los datos. Todas las computadoras constan principalmente de 2 partes el CPU que procesa datos y la memoria que guarda los datos.

Page 3: Arquitectura de La Pc

Arquitectura HarvardEl término Arquitectura Harvard originalmente se refería a las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento físicamente separados para las instrucciones y para los datos (en oposición a la Arquitectura de von Neumann). El término 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 parámetros, los datos en sí, y el lugar donde se encuentran almacenados (o dirección). Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen a algo así como "coge los datos de ésta dirección y añádelos a los datos de ésta otra dirección", sin saber en realidad qué es lo que contienen los datos.En los últimos años la velocidad de las CPUs ha aumentado mucho en comparación a la de las memorias con las que trabaja, así que se debe poner mucha atención en reducir el número de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instrucción ejecutada en la CPU requiere un acceso a la memoria, no se gana nada incrementando la velocidad de la CPU - este problema es conocido como 'limitación de memoria'.Se puede fabricar memoria mucho más rápida, pero a costa de un precio muy alto. La solución, por tanto, es proporcionar una pequeña cantidad de memoria muy rápida conocida con el nombre de caché. Mientras los datos que necesita el procesador estén en la caché, el rendimiento será mucho mayor que si la caché tiene que obtener primero los datos de la memoria principal. La optimización de la caché es un tema muy importante de cara al diseño de computadoras.La arquitectura Harvard ofrece una solución particular a este problema. Las instrucciones y los datos se almacenan en cachés 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 sólo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o procesador de señal digital, usados habitualmente en productos para procesamiento de audio y video.

Definición de Arquitectura Harvard(Harvard architecture). La arquitectura Harvard es una arquitectura de computadora donde se separa físicamente el almacenamiento de datos e instrucciones.El término se origina en las computadoras Harvard Mark I, que almacenaban las instrucciones y los datos en diferentes medios.Arquitectura de Harvard. El termino arquitectura Harvard proviene de la computadora Harvard Mark I, se encarga de almacenar instrucciones en cintas perforadas y los datos en interrupciones. Es la misma arquitectura de computadoras, posee dispositivos de almacenamiento que se encuentran separados físicamente para los datos y las instrucciones. Las partes principales de las computadoras es la memoria y la CPU, la primera guarda los datos y la CPU los procesa. A través de la memoria no solo se pueden manejar los datos sino también el lugar donde se encuentran almacenados, estos dos parámetros son de mucha importancia para la CPU.

Arquitectura de Harvard.El termino arquitectura Harvard proviene de la computadora Harvard Mark I, se encarga de almacenar instrucciones en cintas perforadas y los datos en interrupciones. Es la misma arquitectura de computadoras, posee dispositivos de almacenamiento que se encuentran separados físicamente para los datos y las instrucciones. Las partes principales de las computadoras es la memoria y la CPU, la primera guarda los datos y la CPU los procesa. A través de la memoria no solo se pueden manejar los datos sino también el lugar donde se encuentran almacenados, estos dos parámetros son de mucha importancia para la CPU.El CPU trabaja con mucha mayor velocidad que las memorias con las que trabaja. Para que la memoria valla más rápida se aconseje suministrar una pequeña memoria llamada caché que es muy rápida. Se pueden conseguir memorias con más velocidad pero estas poseen un alto precio. Si los datos están en la caché rendirán mucho más tiempo, pero si la caché tiene que obtener los datos a través de la memoria principal estos no perduraran mucho. La arquitectura Harvard permite que los datos y las instrucciones se almacenen en chaches separados para obtener mejor rendimiento. Se utiliza en procesadores de señal digital y en DSPs, que son utilizados en productos para procedimiento de video y audio.

Page 4: Arquitectura de La Pc

Arquitectura de Harvard.La arquitectura Harvard es una arquitectura de la computadora donde se separa físicamente el almacenamiento de datos e instrucciones. El término se origina en las computadoras Harvard Mark I, que almacenaban las instrucciones y los datos en diferentes medios.

5. ARQUITECTURA DE VON NEUMANEl trabajo en el laboratorio de los álamos cuando se encontró con uno de los constructores de la ENIAC compañero de Einstein, VON NEUMAN se interesó por el problema de la necesidad de recablear la máquina para cada tarea.

La arquitectura de von Neumann es una familia de arquitectura de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos.La mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón, teclado, etc.).

A continuación les presentamos diferentes diagramas de la arquitectura de von NeumannLa mayoría de las computadoras modernas están

basadas en la arquitectura de Von Neumann.La primera saga se basa en un diseño que fue utilizado por muchas empresas u universidades y equipos entre ellos solo ILLAC y ORDVAC tenían un conjunto de instrucciones compatible.

La arquitectura de Von NeumannEs un dispositivo electrónico compuesto básicamente de un procesador memoria, dispositivos de entrada y salida su principal característica es que el se puede realizar tares muy diversas, cargando en distintos programadores en la memorias para que los ejecute el procesador.Se refiere a la arquitectura de las computadoras que utiliza el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos(a diferencia de la arquitectura Harvard)

El nacimiento de la arquitectura Von Neumann surge a raíz de una colaboración en el proyecto ENIAC del matemático de origen húngaro, John Von Neumann. Este trabajaba en 1947 en el laboratorio atómico de Los Álamos cuando se encontró con uno de los constructores de la ENIAC. Compañero de Einstein, Goedel y Turing en Princeton, Von Neumann se interesó por el problema de la necesidad de "recablear" la máquina para cada nueva tarea.

Arquitectura de Von-NeumannLa arquitectura de Von-Neuman nos resulta familiar puesto que se repite en todos los ordenadores actuales, y nos va a permitir entender el funcionamiento de estos. El esquema de la arquitectura es el siguiente:El elemento principal de un ordenador es la Unidad Central de Proceso (CPU) que podemos considerar como el "cerebro" del ordenador. La CPU se encarga de ejecutar las instrucciones que va obteniendo de una en una y de modo secuencial de la memoria principal del ordenador, donde se alojan los programas en ejecución.

Page 5: Arquitectura de La Pc

El término arquitectura de Von Neumann se acuñó a partir del memorando First Draft of a Report on the escrito por el conocido matemático jon von neumann en el que se proponía el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construcción del sucesor de la computador ENIAC durante varios meses antes de que von Neumann redactara el borrador del informe. Es por ello que otros tecnólogos como David A. Patterson y John L. Hennessy promueven la sustitución.

Arquitectura de Von NeumannLa arquitectura Von Neumann surgió a raíz de una colaboración en el proyecto ENIAC del matemático de origen húngaro, John Von Neumann. Este trabajaba en 1947 en el laboratorio atómico de Los Álamos cuando se encontró con uno de los constructores de la ENIAC. Fue compañero de Einstein, Von Neumann se interesó por el problema de la necesidad de "recablear" la máquina para cada nueva tarea.

6. ARQUITECTURA DEL COMPUTADOREs decir es un modelo y una descripción funcional de requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en la que la unidad central de proceso trabaja internamente y accede a las direcciones de memoria.

ARQUITECTURA DE COMPUTADORAS

Una visión típica de una arquitectura de computadora como una serie de capas de abstracción: hardware, firmware, ensamblador, kernel, sistema operativo y aplicaciones.

a. CAPA DE ABSTRACCIÓNUna capa de abstracción (o nivel de abstracción) es una forma de ocultar los

detalles de implementación de ciertas funcionalidades. Quizás los modelos de software más conocidos que utilizan capas de abstracción son el modelo OSI de 7 capas para protocolos de red, la biblioteca gráfica OpenGL y el modelo de flujo de bytes de entrada/salida creado para Unix y adoptado por MS-DOS, Linux y muchos otros sistemas operativos.

En el sistema operativo Unix, la mayoría de los tipos de operaciones de entrada y salida son considerados como flujos de bytes que deben ser leídos a o escritos en un dispositivo. Este modelo de flujo de bytes es utilizado para la E/S de ficheros, sockets y terminales para conseguir la independencia de dispositivos. Para poder leer y escribir en dispositivos a nivel de aplicación, el programa llama a una función para abrir el dispositivo que puede ser real como un terminal o virtual como un puerto de red o un fichero de un sistema de ficheros. Las características físicas del dispositivo son ocultadas por el sistema operativo, que presenta una interfaz abstracta la cual permite al programador leer y escribir bytes de o al dispositivo. Entonces el sistema operativo realiza las transformaciones necesarias para leer dicho flujo de bytes.

La mayoría de las bibliotecas gráficas tales como OpenGL proveen modelo de dispositivo gráfico abstracto como interfaz. La biblioteca es la responsable de traducir los comandos suministrados por el programador en los comandos específicos del dispositivo necesarios para dibujar elementos y objetos. Los comandos específicos de un plotter son diferentes a los de un monitor CRT, pero la biblioteca gráfica oculta la implementación y los detalles dependientes del dispositivo gracias a una interfaz abstracta que suministra un conjunto de tipos primitivos útiles para el dibujo de objetos gráficos.

En informática, un nivel de abstracción es una generalización de un modelo o algoritmo, totalmente independiente de cualquier implementación específica. Estas generalizaciones surgen de similitudes que están muy bien encapsuladas mediante modelos que expresan similitudes presentes en varias implementaciones específicas. La simplificación suministrada por una buena capa de abstracción permite una fácil reutilización.

Una buena abstracción generalizará todo aquello que puede abstraerse, mientras que permitir conceptos específicos puede hacer que falle. Una aplicación exitosa de la abstracción requiere estudiar detalladamente cada problema.

Frecuentemente las capas de abstracción pueden organizarse de manera jerárquica. El modelo de red ISO-OSI comprende siete capas de abstracción. Cada capa del modelo encapsula y direcciona una parte distinta

Page 6: Arquitectura de La Pc

de las necesidades de muchas de las comunicaciones digitales reduciendo la complejidad de las soluciones de ingeniería.

Un famoso aforismo informático de Butler Lampson dice: Todo problema en computación puede ser resuelto añadiendo un nivel de indirección; a veces esto es modificado a propósito cambiando "indirección" por "abstracción".

b. HARDWARECorresponde a todas las partes físicas y tangibles de una computadora: sus componentes eléctricos,

electrónicos, electromecánicos y mecánicos; sus cables, gabinetes o cajas, periféricos de todo tipo y cualquier otro elemento físico involucrado; contrariamente al soporte lógico e intangible que es llamado software. El término es propio del idioma inglés (literalmente traducido: partes duras), su traducción al español no tiene un significado acorde, por tal motivo se la ha adoptado tal cual es y suena; la Real Academia Española lo define como «Conjunto de los componentes que integran la parte material de una computadora». El término, aunque es lo más común, no necesariamente se aplica a una computadora tal como se la conoce, así por ejemplo, un robot también posee hardware (y software).

La historia del hardware del computador se puede clasificar en cuatro generaciones, cada una caracterizada por un cambio tecnológico de importancia. Este hardware se puede clasificar en: básico, el estrictamente necesario para el funcionamiento normal del equipo, y el complementario, el que realiza funciones específicas.

Un sistema informático se compone de una unidad central de procesamiento (CPU), encargada de procesar los datos, uno o varios periféricos de entrada, los que permiten el ingreso de la información y uno o varios periféricos de salida, los que posibilitan dar salida (normalmente en forma visual o auditiva) a los datos procesados.

c. FIRMWAREFirmware o programación en firme,intermediario (interfaz) entre las órdenes externas que recibe el

dispositivo y su electrónica, ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas.

Encontramos firmware en memorias ROM de los sistemas de diversos dispositivos periféricos, como en monitores de video, unidades de disco, impresoras, etc., pero también en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado.

Muchos de los firmwares almacenados en ROM están protegidos por Derechos de Autor.El programa BIOS de una computadora es un firmware cuyo propósito es activar una máquina desde su

encendido y preparar el entorno para la instalación de un Sistema Operativo complejo, así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes de la computadora.

En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema.

d. LENGUAJE ENSAMBLADOREl lenguaje Assembly (a veces mal llamado "Ensamblador" por su traducción literal al español) es un

tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.

Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido.

Aunque a veces suele usarse el nombre "Ensamblador" en realidad este nombre corresponde al programa que realiza la interpretación del código en Assembly y genera el código máquina adecuado. Dado que Assembly es un nombre propio, no debería traducirse.

Muchos dispositivos programables (como los microcontroladores) aun cuentan con el lenguaje Assembly como la única manera de ser manipulados.

e. NÚCLEO O KERNELEn informática, un núcleo o kernel (de la raíz germánica Kern) es un software que actúa de sistema

operativo. Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir

Page 7: Arquitectura de La Pc

qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.

Una visión típica de la arquitectura de computadores como una serie de capas de abstracción: hardware, firmware, lenguaje de máquina, núcleo, software de sistema y aplicaciones.

f. LENGUAJE DE MÁQUINALenguaje de máquina es el sistema de códigos directamente interpretable por un

circuito microprogramable, como el microprocesador de una computadora o el microcontrolador de un autómata (un PLC). Este lenguaje está compuesto por un conjunto de instrucciones que determinan acciones a ser tomadas por la máquina. Un programa de computadora consiste en una cadena de estas instrucciones de lenguaje de máquina (más los datos). Estas instrucciones son normalmente ejecutadas en secuencia, con eventuales cambios de flujo causados por el propio programa o eventos externos. El lenguaje de máquina es específico de cada máquina o arquitectura de la máquina, aunque el conjunto

Los circuitos microprogramables son sistemas digitales, lo que significa que trabajan con dos únicos niveles de tensión. Dichos niveles, por abstracción, se simbolizan con el cero, 0, y el uno, 1, por eso el lenguaje de máquina sólo utiliza dichos signos. Esto permite el empleo de las teorías del álgebra booleana y del sistema binario en el diseño de este tipo de circuitos y en su programación.

Claude Elwood Shannon, en su Analysis of Relay and Switching Circuits, y con sus experiencias en redes de conmutación, sentó las bases para la aplicación del álgebra de Boole a las redes de conmutación.

Una red de conmutación es un circuito de interruptores eléctricos que al cumplir ciertas combinaciones booleanas con las variables de entrada, define el estado de la salida. Este concepto es el núcleo de las puertas lógicas, las cuales son, por su parte, los ladrillos con que se construyen sistemas lógicos cada vez más complejos.

Shannon utilizaba el relé como dispositivo físico de conmutación en sus redes. El relé, al igual que una lámpara eléctrica, posee dos estados: 1 ó 0, esto es, está activado, encendida, o está desactivado, apagada.

El desarrollo tecnológico ha permitido evolucionar desde las redes de relés electromagnéticos de Shannon a circuitos con tubos de vacío, luego a redes transistorizadas, hasta llegar a los modernos circuitos integrados cuya cúspide lo forman los circuitos microprogramados.

g. SOFTWARE DE SISTEMAEn terminología informática el software de sistema, denominado también software de base, consiste en

programas informáticos que sirven para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas; en contraposición del llamado software de aplicación. Como ejemplos cabe mencionar a las bibliotecas como por ejemplo OpenGL para la aceleración gráfica, PNG para el sistema gráfico o demonios que controlan la temperatura, la velocidad del disco duro, como hdparm, o la frecuencia del procesador como cpudyn.

Uno de los más prominentes ejemplos de software de sistema se encuentra en el proyecto GNU, cuyas herramientas de programación permitieron combinarse con el núcleo informático basado en Unix denominado Linux, formando entre ambos las conocidas como distribuciones GNU/Linux.

Estos programas realizan diversas tareas, como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rígido, unidades de discos ópticos, etc) entre otros.

h. SISTEMA OPERATIVOInteracción entre el SO con el resto de las partes.

Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario o el usuario mismo para utilizar un computador. Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos y actúa como intermediario para las aplicaciones que se ejecutan.

Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, pues este, es sólo el núcleo

Page 8: Arquitectura de La Pc

y no necesita de entorno operador para estar operativo y funcional. Uno de los más prominentes ejemplos de esta diferencia, es el SO Linux, el cual junto a las herramientas GNU, forman las llamadas distribuciones Linux.

Este error de precisión, se debe a la modernización de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores se rediseñó a fin de llevarla a los hogares y facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más sencillo de gestionar. (Véase AmigaOS, beOS o MacOS como los pioneros de dicha modernización, cuando los Amiga, fueron bautizados con el sobrenombre de Video Toasters por su capacidad para la Edición de vídeo en entorno multitarea round robin, con gestión de miles de colores e interfaces intuitivos para diseño en 3D con programas como Imagine o Scala multimedia, entre muchos otros.).

Uno de los propósitos de un sistema operativo como intermediario consiste en gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a los programadores de aplicaciones de tener que tratar con estos detalles. Se encuentran en la mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar. (Teléfonos móviles, reproductores de DVD, computadoras, radios, etc.)

Parte de la infraestructura de la World Wide Web está compuesta por el Sistema Operativo de Internet, creado por Cisco Systems para gestionar equipos de interconexión como los conmutadores y los enrutadores.

i. APLICACIONESa. Proceso (informática)

Un proceso es un programa en ejecución, los procesos son gestionados por el sistema operativo y están formados por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para

dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra información que permite al sistema operativo su planificación.Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta

de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcación (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

b. MétodoDos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los otros

hasta que reciban una señal para continuar. Se usa una variable de tipo Semáforo para sincronizar los procesos. Si un proceso está esperando una señal, se suspende (Hold) hasta que la señal se envíe (SIGNAL). Se mantiene una cola de procesos en espera en el semáforo. La forma de elegir los procesos de la cola en ESPERA es mediante una política FIFO (First In First

Out) también llamada FCFS (First Come First Served), Round Robin, etc.La sincronización explícita entre procesos es un caso particular del estado "bloqueado". En este caso,

el suceso que permite desbloquear un proceso no es una operación de entrada/salida, sino una señal generada a propósito por el programador desde otro proceso.

La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria.

También suele definirse como la forma de seleccionar e interconectar componentes de hardware para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo.

Page 9: Arquitectura de La Pc

El ordenador recibe y envía la información a través de los periféricos por medio de los canales. La UCP es la encargada de procesar la información que le llega al ordenador. El intercambio de información se tiene que hacer con los periféricos y la UCP. Todas aquellas unidades de un sistema exceptuando la UCP se denomina periférico, por lo que el ordenador tiene dos partes bien diferenciadas, que son: la UCP (encargada de ejecutar programas y que está compuesta por la memoria principal, la UAL y la UC) y los periféricos (que pueden ser de entrada, salida, entrada-salida y comunicaciones).

1. INTRODUCCIÓNLa implantación de instrucciones es similar al uso de una serie de desmontaje en una fábrica de

manufacturación. En las cadenas de montaje, el producto pasa a través de muchas etapas de producción antes de tener el producto desarmado. Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño de procesadores eficientes.

A estos procesadores se les conoce como pipeline processors. Estos están compuestos por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales. Los datos que provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o información para uso externo.

Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos:

Almacenamiento de operativos en la CPU: dónde se ubican los operadores aparte de la substractora informativa (SI)

Número de operandos explícitos por instrucción: cuántos operandos se expresan en forma explícita en una instrucción típica. Normalmente son 0, 1, 2 y 3.

Posición del operando: ¿Puede cualquier operando estar en memoria?, o deben estar algunos o todos en los registros internos de la CPU. Cómo se especifica la dirección de memoria (modos de direccionamiento disponibles).

Operaciones: Qué operaciones están disponibles en el conjunto de instrucciones. Tipo y tamaño de operandos y cómo se especifican.

2. ALMACENAMIENTO DE OPERANDOS EN LA CPULa diferencia básica está en el almacenamiento interno de la CPU.Las principales alternativas son: Acumulador. Conjunto de registros. Memoria

a. CARACTERÍSTICAS:En una arquitectura de acumulador un operando está implícitamente en el acumulador siempre leyendo e ingresando datos. (Ej: calculadora Standard -estándar-)En la arquitectura de pila no es necesario nombrar a los operandos ya que estos se encuentran en el tope de la pila. (Ej: calculadora de pila HP)La Arquitectura de registros tiene solo operandos explícitos (es aquel que se nombra) en registros o memoria.

b. VENTAJAS DE LAS ARQUITECTURAS Pila: Modelo sencillo para evaluación de expresiones (notación polaca inversa). Instrucciones cortas

pueden dar una buena densidad de código. Acumulador: Instrucciones cortas. Minimiza estados internos de la máquina (unidad de control

sencilla). Registro: Modelo más general para el código de instrucciones parecidas. Automatiza generación de

código y la reutilización de operandos. Reduce el tráfico a memoria. Una computadora actualmente tiene como estándar 32 registros. El acceso a los datos es más rápido.

c. DESVENTAJAS DE LAS ARQUITECTURAS Pila: A una pila no se puede acceder aleatoriamente. Esta limitación hace difícil generar código

eficiente. También dificulta una implementación eficente, ya que la pila llega a ser un cuello de botella es decir que existe dificultad para la transferencia de datos en su velocidad mk.

Page 10: Arquitectura de La Pc

Acumulador: Como el acumulador es solamente almacenamiento temporal, el tráfico de memoria es el más alto en esta aproximación.

Registro: Todos los operadores deben ser nombrados, conduciendo a instrucciones más largas.

3. ARQUITECTURA DE VON NEUMANNDiagrama 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 mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón, teclado, etc.).

a. ORIGENEl nacimiento u origen de la arquitectura Von

Neumann surge a raíz de una colaboración en el proyecto ENIAC del matemático de origen húngaro, John Von Neumann. Este trabajaba en 1945 en el Laboratorio Nacional Los Álamos cuando se encontró con uno de los constructores de la ENIAC. Compañero de Albert Einstein, Kurt Gödel y Alan Turing en Princeton, Von Neumann se interesó por el problema de la necesidad de recablear la máquina para cada nueva tarea.

En 1949 había encontrado y desarrollado la solución a este problema, consistente en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribiéndola de la misma forma, es decir en código binario. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuación. Se habla desde entonces de la arquitectura de Von Neumann, aunque también diseñó otras formas de construcción. 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.

b. ORGANIZACIÓNLos ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la

unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:1. Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada

por el contador de programa y la guarda en el registro de instrucción.2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.3. Decodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de

componentes del ordenador para realizar una función determinada.4. Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así

operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores.

5. Vuelve al paso 1.

c. ORIGEN DE TÉRMINO ARQUITECTURA VON NEUMANNEl término arquitectura de von Neumann se acuñó a partir del memorando First Draft of a Report on

the EDVAC (1945) escrito por el conocido matemático John von Neumann en el que se proponía el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construcción del sucesor de la computadora ENIAC y su contenido fue desarrollado por John Presper Eckert, John William Mauchly, Arthur Burks y otros durante varios meses antes de que von Neumann redactara el borrador del informe. Es por ello que otros tecnólogos como David A. Patterson y John L. Hennessy promueven la sustitución de este término por el de arquitectura Eckert-Mauchly.

d. DESARROLLO DEL CONCEPTO DE PROGRAMA ALMACENADO

Page 11: Arquitectura de La Pc

El matemático Alan Turing, quien había sido alertado de un problema de lógica matemática por las lecciones de Max Newman en la Universidad de Cambridge, escribió un artículo en 1936 titulado “On Computable Numbers, with an Application to the Entscheidungs problem”, que fue publicado en los “Proceedings of the London Mathematical Society”. En él describía una máquina hipotética que llamó “máquina computadora universal”, y que ahora es conocida como la “Máquina de Turing”. La máquina hipotética tenía un almacenamiento infinito (memoria en la terminología actual) que contenía tanto las instrucciones como los datos. El ingeniero alemán Konrad Zuse escribió de forma independiente sobre este concepto en 1936. Von Neumann conoció a Turing cuando ejercía de profesor sustituto en Cambridge en 1935 y también durante el año que Turing pasó en la Universidad de Princeton en 1936-37. Cuándo supo del artículo de 1936 de Turing no está claro.

Independientemente, J. Presper Eckert y John Mauchly, quienes estaban desarrollando el ENIAC en la Escuela Moore de Ingeniería Eléctrica en la Universidad de Pennsylvania, escribieron sobre el concepto de “programa almacenado” en diciembre de 1943. Mientras diseñaba una nueva máquina, EDVAC, Eckert escribió en enero de 1944 que se almacenarían datos y programas en un nuevo dispositivo de memoria direccionable, una línea de retardo de mercurio. Esta fue la primera vez que se propuso la construcción de un programa almacenado práctico. Por esas fechas, no tenían conocimiento del trabajo de Turing.

Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los Alamos, el cual requería ingentes cantidades de cálculos. Esto le condujo al proyecto ENIAC, en verano de 1944. Allí se incorporó a los debates sobre el diseño de un ordenador con programas almacenados, el EDVAC. Como parte del grupo, se ofreció voluntario a escribir una descripción de él. El término “von Neumann architecture” surgió del primer artículo de von Neumann: “First Draft of a Report on the EDVAC”, fechado el 30 de junio de 1945, el cual incluía ideas de Eckert y Mauchly. Estaba inconcluso cuando su compañero Herman Goldstine lo hizo circular con solo el nombre de von Neumann en él, para consternación de Eckert y Mauchly. El artículo fue leído por docenas de compañero de trabajo de von Neumann en América y Europa, e influenció la siguiente hornada de diseños de computadoras.

Posteriormente, Turing desarrolló un informe técnico detallado, “Proposed Electronic Calculator”, describiendo el Motor de Computación Automático (Automatic Computing Engine, ACE). Presentó éste al Laboratorio Nacional de Física Británico el 19 de febrero de 1946. A pesar de que Turing sabía por su experiencia de guerra en el Parque Bletchley que su propuesta era factible, el secretismo mantenido durante muchas décadas acerca de los ordenadores Colossus le impidió manifestarlo. Varias implementaciones exitosas del diseño ACE fueron producidas.

Los trabajos de ambos, von Neumann y Turing, describían ordenadores de programas almacenados, pero al ser anterior el artículo de von Neumann, consiguió mayor circulación y repercusión, así que la arquitectura de computadoras que esbozó adquirió el nombre de “arquitectura von Neumann”.

En 1945, el profesor Neumann que estaba trabajando en la escuela Moore de ingeniería de Filadelfia, donde el ENIAC había sido construido, emitió en nombre de un grupo de sus compañeros de trabajo un informe sobre el diseño lógico de los ordenadores digitales. El informe contenía una propuesta muy detallada para el diseño de la máquina que desde entonces se conoce como el EDVAC (electronic discrete variable automatic computer). Esta máquina ha sido recientemente completada en América, pero el informe de Von Neumman inspiró la construcción de la EDSAC (electronic delay-storage automatic calculator) en Cambridge.

En 1947, Burks, Goldstine y Von Neumann, publicaron un informe en el que describen el diseño de otro tipo de máquina (una máquina paralela en este momento) que debería ser muy rápida, capaz de hacer 20.000 operaciones por segundo. Señalaron que el problema persistente en la construcción de tal máquina estaba en el desarrollo de una memoria adecuada, todos los contenidos de los cuales fueron instantáneamente accesibles, y al principio se sugirió el uso de un tubo especial -llamado Selectron- que había sido inventado por los laboratorios de Princeton de la RCA. Estos tubos son caros y difíciles para fabricar, así Von Neumman decidió construir una máquina basada en la memoria de Williams. Esa máquina que se completó en junio de 1952 en Princeton se ha conocido como MANIAC I. El diseño de esta máquina que ha sido inspirado de una docena o más de máquinas que están actualmente en construcción en América.

Calculo automático en el laboratorio nacional de física. Uno de los equipos digitales más modernos que incorpora novedades y mejoras en la técnica de la computación electrónica ha sido demostrado en el laboratorio nacional de física, Teddington, donde ha sido diseñado y construido por un pequeño equipo de matemáticos e ingenieros electrónicos investigadores sobre el personal del laboratorio, asistido por ingenieros de producción de la compañía eléctrica inglesa. El equipo construido hasta ahora en el laboratorio es solo el modelo piloto de muchas instalaciones muy grandes que se va a conocer como el

Page 12: Arquitectura de La Pc

motor de cálculo automático, pero aunque es relativamente pequeño en volumen y contiene solo 800 válvulas termoiónicas, es una máquina de cálculo muy rápido y versátil. Los conceptos básicos y principios abstractos de la computación por una máquina fueron formuladas por el Dr A. M. Turing, pero el trabajo en dichas máquinas en el Reino Unido se retrasó por la guerra. In 1945, se ha hecho una examinación al problema en el laboratorio nacional de física por el profesor J. R. Womersley. Se le adjuntó el Dr. Turing un pequeño equipo de especialistas, y en 1947 la planificación preliminaria era lo suficientemente avanzada para justificar el establecimiento del grupo especial ya mencionado. En abril de 1948, estos últimos se convirtieron en la sesión de la electrónica del laboratorio bajo el cargo del Sr. F. M. Colebrook.

e. DESCRIPCIÓN DEL CONCEPTO DE PROGRAMA ALMACENADOLos primeros computadores constaban de programas almacenados. Algunos muy simples siguen

utilizando este diseño, por ejemplo, una calculadora es un computador que tiene un programa almacenado. Puede hacer operaciones matemáticas simples, pero no puede ser usada como procesador de textos o videoconsola.

Cambiar el programa que contenían los dispositivos que usaban esta tecnología requería reescribir, reestructurar y/o rediseñar el dispositivo. Los primeros computadores no estaban lo suficiente programados cuando fueron diseñados. La tarea de reprogramar, cuando era posible, era un proceso laborioso, empezando con notas en papel y siguiendo con detallados diseños de ingeniería. Y tras esto llegaba el a veces complicado proceso de reescritura y reestructuramiento físico del computador.

El concepto de programa almacenado cambió por completo, se pensó en un computador que en su diseño contenía un conjunto de instrucciones que podían ser almacenadas en memoria, o sea, un programa que detallaba la computación del mismo.

El diseño de un programa almacenado también daba la posibilidad a los programas de ser modificados ellos mismos durante su ejecución. Uno de los primeros motivos para su creación fue la necesidad de un programa que incrementara o modificara las direcciones de memoria de algunas instrucciones, las cuales tenían que ser hechas manualmente en los primeros diseños.

Esto se volvió menos importante cuando el índice de registros y el direccionamiento indirecto se convirtieron en algo habitual en la arquitectura de computadores. El código automodificable fue en gran parte ganando posiciones.

A gran escala, la habilidad de tratar instrucciones como datos es lo que hacen los ensambladores, compiladores y otras herramientas de programación automáticas. Se pueden "escribir programas para escribir programas".

Existen inconvenientes en el diseño de Von Neumann. Las modificaciones en los programas podía ser algo perjudicial, por accidente o por diseño. En algunos simples diseños de computador con programas almacenados, un mal funcionamiento del programa puede dañar el computador. Otros programas, o el sistema operativo, posiblemente puedan llevar a un daño total en el ordenador. La protección de la memoria y otras formas de control de acceso pueden ayudar a proteger en contra de modificaciones accidentales y/o maliciosas de programas.

f. EMBOTELLAMIENTO DE VON NEUMANN (VON NEUMANN BOTTLENECK)La separación entre la CPU y la memoria lleva al embotellamiento de Von Neumann, al rendimiento

de procesamiento limitado (tarifa de transferencia de datos) entre la CPU y a la memoria comparada a la cantidad de memoria. En la mayoría de las computadoras modernas, el rendimiento de procesamiento es mucho más pequeño que la tarifa en la cual la CPU puede trabajar. Esto limita seriamente la velocidad del proceso eficaz cuando la CPU se requiere para realizar el proceso mínimo en grandes cantidades de datos. La CPU es forzada continuamente para esperar los datos necesarios que se transferirán desde o hacia memoria. Desde la CPU el tamaño de la velocidad y de la memoria ha aumentado mucho más rápidamente que el rendimiento de procesamiento entre ellos, el embotellamiento se ha convertido en más de un problema. El término “embotellamiento de Von Neumann” fue acuñado por Juan Backus en su conferencia de la concesión de 1977 ACM Turing. Según Backus: Seguramente debe haber una manera menos primitiva de realizar cambios grandes en el almacén que empujando los grandes números de palabras hacia adelante y hacia atrás a través del embotellamiento de Von Neumann. El problema de funcionamiento es reducido por un cache entre la CPU y el de memoria principal, y por el desarrollo de los algoritmos del calculador de la rama. Está menos claro que el embotellamiento intelectual que Backus ha criticado ha cambiado mucho desde 1977. La solución propuesta de Backus no ha tenido una influencia importante. La programación funcional moderna y la programación orientada a objetos se

Page 13: Arquitectura de La Pc

engranan mucho menos hacia “empujar los grandes números de palabras hacia adelante y hacia atrás” que los anteriores lenguajes como era el FORTRAN.

g. PRIMEROS ORDENADORES BASADOS EN ARQUITECTURAS VON NEUMANNLa primera saga se basaba en un diseño que fue utilizado por muchas universidades y empresas para

construir sus equipos. Entre estos, sólo ILLIAC y ORDVAC tenían 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 Científico 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)

4. ARQUITECTURA HARVARDArquitectura Harvard.

Originalmente, el término Arquitectura Harvard hacía referencia a las arquitecturas de computadoras que utilizaban dispositivos de almacenamiento físicamente separados para las instrucciones y para los datos (en oposición a la Arquitectura de von Neumann). El término 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 parámetros, los datos en sí, y el lugar donde se encuentran almacenados (o dirección). Los dos son importantes para la CPU, pues muchas instrucciones frecuentes se traducen a algo así como "coge los datos de ésta dirección y añádelos a los datos de ésta otra dirección", sin saber en realidad qué es lo que contienen los datos.

En los últimos años la velocidad de las CPUs ha aumentado mucho en comparación a la de las memorias con las que trabaja, así que se debe poner mucha atención en reducir el número de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instrucción ejecutada en la CPU requiere un acceso a la memoria, no se gana nada incrementando la velocidad de la CPU (este problema es conocido como limitación de memoria).

Se puede fabricar memoria mucho más rápida, pero a costa de un precio muy alto. La solución, por tanto, es proporcionar una pequeña cantidad de memoria muy rápida conocida con el nombre de memoria caché. Mientras los datos que necesita el procesador estén en la caché, el rendimiento será mucho mayor que si la caché tiene que obtener primero los datos de la memoria principal. La optimización de la caché es un tema muy importante de cara al diseño de computadoras.

La arquitectura Harvard ofrece una solución particular a este problema. Las instrucciones y los datos se almacenan en cachés 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 sólo cuando la frecuencia de lectura de instrucciones y de datos es aproximadamente la misma. Esta arquitectura suele utilizarse en DSPs, o procesador de señal digital, usados habitualmente en productos para procesamiento de audio y video.

ACCESO DIRECTO A MEMORIAPara DMA en reología véase Análisis mecánico diferencial.

El acceso directo a memoria (DMA, del inglés Direct Memory Access) permite a cierto tipo de componentes de ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa el procesador y como resultado puede ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.Cabe destacar que aunque no se necesite a la CPU para la transacción de datos, sí que se necesita el bus del sistema (tanto bus de datos como bus de direcciones), por lo que existen diferentes estrategias para regular su uso, permitiendo así que no quede totalmente acaparado por el controlador DMA.