Documente Academic
Documente Profesional
Documente Cultură
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.
3. ARQUITECTURA CERRADA
En 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 cerrada
En 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ísticas
Son 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.
4. ARQUITECTURA DE HARVARD
Se 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.
Arquitectura Harvard
El 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.
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.
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.
Arquitectura de Von-Neumann
La 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.
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 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.
CAPA DE ABSTRACCIÓN
Una 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
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".
HARDWARE
Corresponde 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.
FIRMWARE
Firmware 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.
LENGUAJE ENSAMBLADOR
El 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.
NÚCLEO O KERNEL
En 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
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.
LENGUAJE DE MÁQUINA
Lenguaje 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.
SOFTWARE DE SISTEMA
En 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.
SISTEMA OPERATIVO
Interacció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
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.
APLICACIONES
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.
Método
Dos 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.
1. INTRODUCCIÓN
La 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.
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.
a. ORIGEN
El 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ÓN
Los 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.
4. ARQUITECTURA HARVARD
Arquitectura 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.