Subido por iztaccihuatl.villarreal

Arquitectura de la Computadora: Elementos y Evolución

Anuncio
¿Que es la arquitectura de la computadora?
Se trata del conjunto de estructuras tanto físicas como lógicas que influyen de
manera directa en las funciones y diseño del Hardware de una máquina, teniendo
estas características, también influencia en el Software; siendo el objetivo
primordial de la arquitectura el aumento del rendimiento de las computadoras
- Elementos básicos de la arquitectura de la computadora
A inicios de 1800, Charles Babbage, profesor de la Universidad de Cambridge,
fue el primero en idear las variables involucradas en los sistemas mecánicos de la
época y define los 3 elementos que intervienen: la máquina, el programa y el
artífice ó programador, de allí que los elementos que intervienen para que el
sistema funcione son los siguientes:
1.- Humanware: es el elemento humano, quién tienen
una gran gama de funciones en general, entre ellas la
de controlar el funcionamiento del equipo, manejar las
operaciones, crear el Software para la máquina, reparar
los equipos; de allí que se puede especializar en ciertas
ramas como programador, diseñador de gráficos,
operador capturista, Gamer, administrador de bases de
datos, soporte Hardware, etc.
2.- Software: se trata del conjunto de utilidades, sistemas operativos,
suites, datos, etc., lo que de manera común se le denomina parte intangible de la
computadora y que se encuentra basada en interpretaciones de ceros y unos (bits).
3.- Hardware: se trata del soporte físico del equipo, no solamente de
almacenamiento, sino en general toda parte mecánica y electromecánica que tenga
una función en el dispositivo, tal como el disco duro, el ratón, los puertos, etc.
- Arquitectura de Von Neumman
En 1945 aproximadamente, se construye una computadora basada en el uso de
tecnología de bulbos denominada ENIAC ("Electronic Numerical Intergator and
Calculator"), que pesaba cerca de 30,000 Kg, se instaló en una gran habitación y
requirió de gran ventilación. Bien, esta gran máquina funcionaba a base de estar
conectando y desconectando cables según la función que se quería que realizara,
esta función de "recablear", es sinónimo de programar pero era muy complicado el
proceso.
En 1947 el matemático John Von Neumann ideó una solución que evitaría el
"recablear" la ENIAC, la cuál consistía en introducir las operaciones por medio de
tarjetas perforadas, por lo que un programa previamente "almacenado" y en las
tarjetas, se podía mantener latente en memoria para su uso. Este modelo permite
que las instrucciones se encuentren residentes en una memoria listas para ser
leídas y ejecutadas.
Figura 4. Diagrama de la arquitectura
de Von Neumann
+ Memoria principal: se trata de un espacio de
almacenamiento temporal de instrucciones y datos,
ordenada de manera reticular para localizar de
manera sencilla mediante direcciones, dividida en
dos partes una para trabajo y otra permanente. En
términos modernos, es la memoria RAM que
actualmente utilizamos en nuestros equipos.
+ Unidad aritmética: encargada de realizar
todas las actividades matemáticas y de decisión
lógicas, cada dato lo recibe de la memoria principal y
en ella misma almacena. En términos modernos, es
una sección dentro de los microprocesadores.
+ Unidad de control: controla las señales, lee
instrucciones de la memoria y ejecuta las órdenes,
también almacena direcciones de la siguiente
instrucción que requiere. En términos modernos, es
otra sección dentro de los microprocesadores.
+ Unidad de E/S: (entrada/salida) permite la
comunicación con otros dispositivos externos y el
compartir datos. En términos modernos, son los
puertos de la computadora.
Es importante mencionar que lo anterior es un modelo básico, no hay que olvidar
que también hacen falta otros elementos que no entran dentro de la clasificación de
Neumann pero que también son importantes como la fuente de suministro de
electricidad y la placa base, además de otros secundarios como la unidad de
soporte Hardware (gabinete), los ventiladores, etc.
- Arquitectura multiusuario
A inicios de 1970, basándose en la arquitectura de
Non Neumann, se le realiza una mejora, integrando
un DMA (Direct Access Memory) ó acceso directo a
memoria, la cuál permite que los dispositivos se
comuniquen de manera directa con la memoria sin la
necesidad de la intervención del microprocesador, por
lo que este último puede entonces dedicarse a otras
actividades y se libera de carga de trabajo, con ello se
vuelve mas eficiente el sistema. De este modo el
procesador asigna tiempos a varios usuarios y cada
uno percibe que que trabaja de manera exclusiva con
Figura 5. Diagrama de la arquitectura
un equipo.
multiusuario
El explorador no admite los marcos flotantes o no está configurado actualmente para
mostrarlos.
- Arquitectura multiproceso
Durante los años 70, se desarrolla un tipo nuevo
de arquitectura denominada multiproceso, en la cuál
se asignan tiempos a los procesos los cuáles pueden
permanecer en varios estados como "modo espera",
"modo ejecución", "modo cancelación" y "fin de
proceso". El modo multiproceso necesita de una gran
cantidad de memoria física disponible en el equipo.
Figura 6. Diagrama de la arquitectura
multiproceso
- Arquitectura basada en memoria virtual
Debido al alto costo relativo de la memoria y que
la arquitectura multiproceso necesita de grandes
cantidades de memoria disponible, se opto por un
sistema de emulación de la misma, utilizado el espacio
libre de dispositivos como discos duros ó disquetes
(actualmente un ejemplo muy popular es la función
del Software ReadyBoost de Microsoft® Windows
Vista que permite utilizar el espacio disponible en
memorias USB ó unidades SSD).
Figura 7. Diagrama de la arquitectura
basada en memoria virtual
- Arquitectura de las redes de datos LAN
A finales de la década de los anos 70 hasta la
fecha en las redes mas avanzadas, se utiliza esta
arquitectura que interconecta los equipos entre sí ó
los concentra en uno principal llamado servidor ó
Host. Esta arquitectura permite que se compartan
recursos tanto Hardware como Software y reduce
costos de operación.
Figura 8. Diagrama de la arquitectura
de redes
La arquitectura Von Neumann realiza o emula los siguientes pasos secuencialmente:
1) 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) Descodifica 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.
5) Regresa al
paso
N°
1.
Conclusión:
* La mayoría de las computadoras todavía utilizan la arquitectura Von Neumann,
propuesta a principios de los años 40 por John Von Neumann.
* La arquitectura Von Neumann describe a la computadora con 4 secciones
principales: la unidad lógica y aritmética (ALU), la unidad de control, la memoria, y los
dispositivos
de
entrada
y
salida
(E/S).
* En este sistema, la memoria es una secuencia de celdas de almacenamiento
numeradas, donde cada una es un bit, o unidad de información.
La instrucción es la información necesaria para realizar, lo que se desea, con la
computadora.
Las celdas contienen datos que se necesitan para llevar a cabo las instrucciones, con
la
computadora.
* El tamaño de cada celda y el número de celdas varía mucho de computadora a
computadora, y las tecnologías empleadas para la memoria han cambiado bastante;
van desde los relés electromecánicos, tubos llenos de mercurio en los que se
formaban los pulsos acústicos, matrices de imanes permanentes, transistores
individuales a circuitos integrados con millones de celdas en un solo chip.
¿Cómo funciona la computación actual?: funcionamiento de la arquitectura de Von Neumann
comentarios 10
Guardar
Compartir en Facebook Twitter Google+ E-mail
Von Neumann describió el fundamento de todo ordenador electrónico con programas
almacenados. Describía, a diferencia de como pasaba anteriormente, como podía funcionar un
ordenador con sus unidades conectadas permanentemente y su funcionamiento estuviese
coordinado desde la unidad de control (a efectos prácticos es la CPU). Aunque la tecnología ha
avanzado mucho y aumentado la complejidad de la arquitectura inicial, la base de su
funcionamiento es la misma y probablemente lo seguirá siendo durante mucho tiempo. El
artículo viene acompañado de una representación gráfica del funcionamiento.
Antes de entrar en los detalles de las unidades tenemos que conocer lo siguiente:
Registros: es el lugar donde se almacenan temporalmente los datos que están en movimiento
para procesarlos. En la representación de la imagen del principio podéis ver que son los
registros.
Buses: son las uniones entre las distintas unidades, la memoria y los periféricos.
Unidad de proceso central (CPU)
Es la unidad encargada de controlar y gobernar todo el sistema que comprende una
computadora. La CPU consiste en un circuito integrado formado por millones de transistores,
que está diseñado para poder procesar datos y controlar la máquina. Como ya sabéis, es un
factor clave para la potencia de la computadora. La CPU dispone de dos unidades en su
interior: la unida de control y la unidad aritmético-lógica.
Unidad de control
La unidad de control se encarga de leer las instrucciones (de los programas almacenados en la
memoria) y se encarga de enviar las ordenes a los componentes del procesador para que
ejecuten las instrucciones.
El proceso empieza cuando llega una instrucción al registro de instrucciones (llega como una
cadena de bits con distintas partes, referidas a la propia instrucción y a los datos que se
usarán). Posteriormente el decodificador interpreta la instrucción a realizar y como deben de
actuar los componentes del procesador para llevarla a cabo. Esta acción se realiza mediante el
secuenciador que envía micro-órdenes marcadas por el reloj (que genera pulsos de forma
constante, se suele expresar su velocidad en gigahercios o GHz, para los procesadores
actuales).
Unidad Aritmético Lógica (ALU)
La unidad aritmético lógica es la encargada de realizar todas las operaciones aritméticas
(sumas, multiplicaciones…) y lógicas (comparaciones).
Esta unidad puede tener distintos diseños, el de la imagen superior muestra el diseño más
básico (donde el acumulador vuelve a usarse en la operación), en la actualidad lo normal es
que el acumulador no se mezcle con los registros de entrada.
El funcionamiento con el diseño que estamos analizando (el básico) comienza cuando le llega
al registro de entrada un dato (una cadena de bits que representan un número),
posteriormente el circuito operacional (en la imagen se representa como “ALU” y coloreado
azul) y se procesa junto al contenido del acumulador y posteriormente se deposita de nuevo
en el acumulador. Repitiendo esta acción se generan los cálculos. Este proceso se ve
claramente en la representación que hay más abajo.
Memoria principal
La memoria principal en la arquitectura inicial era directamente la RAM, pero esto ha
evolucionado y se han añadido memorias caché e implementado algoritmos que predicen que
datos vamos a usar más frecuentemente.
La memoria RAM es bastante sencilla, en comparación con la CPU, se podría decir que es una
tabla, que contiene la dirección (o lugar) donde está cierto dato y el contenido del propio dato.
La memoria dispone de un registro de direcciones (RDM) y un registro de intercambio de
memoria (RIM o registro de datos). En el registro de direcciones se almacena la dirección en la
que se almacenará o leerá un dato, y en el registro de intercambio de memoria se almacena
ese dato leído o que se almacenará.
Cuando hablamos de direcciones de memoria a muchos os sonará de los “punteros” de C, y es
por esto que es esencial conocer la arquitectura de Von Neumann antes de aprender a
programar en ciertos lenguajes que actúan a más bajo nivel.
La unidad de control contiene el registro contador de programa, que contiene la dirección de
memoria de la siguiente instrucción, que se incrementa tras realizar una instrucción y así va
recorriendo la memoria y ejecutando el programa.
Buses
Todos estos elementos se comunican entre si a través de buses, ya sea para manejar las
acciones a realizar por la máquina o para mover datos. Hay tres tipos de buses.
El bus de datos perite el intercambio de datos (ya sean instrucciones o datos) con el resto de
elementos de la arquitectura. Es decir, mediante el bus de datos la unidad de control recibe las
instrucciones y la ALU los datos desde la memoria, al igual que también los envían por este
medio.
El bus de instrucciones transmite las direcciones de memoria que van a ser usadas desde la
CPU, para poder seleccionar los datos que serán usados.
El bus de control es el que transporta las ordenes generadas por la CPU para controlar los
diversos procesos de la máquina.
Funcionamiento de la arquitectura
Para ver cómo funciona la arquitectura he creado una representación documentada del
proceso.
Este diseño de la arquitectura, como ya he comentado, es el básico (con acumulador como
registro de entrada) y el ancho de los datos es de 8 bits. Las instrucciones están formadas por
dos bloques de 4 bits, los primeros para instrucciones y los últimos para la dirección de la
memoria.
Siempre que se usa en una instrucción un número está destinado a la dirección de memoria,
donde se usa el verdadero número que se usará para una operación.
Actualmente se usan anchos de 32, 64 o 128 bits en computadoras, y no tiene porqué seguir el
mismo patrón. Seguidamente voy a exponer varios patrones que se pueden dar, a fin de
completar un poco más la representación que es muy simple al disponer solo de 8 bits.
# Tal como aparece en la representación
0111 0011
+------+------+
| 0111 | 0011 |
+------+------+
|
| Dirección de memoria a usar
| Instrucción
# Ejemplo con 16 bits y varios registros
0011 1010 1001 0101
+------+--------+--------+
| 0011 | 101010 | 010101 |
+------+--------+--------+
|
|
| Registro de entrada 2
|
| Registro de entrada 1
| Instrucción
# Ejemplo con 32 bits, varios registros y lugar a almacenar resultado
0011 1010 1001 0101 0011 0110 1110 0101
+----------+----------+----------+----------+
| 00111010 | 10010101 | 00110110 | 11100101 |
+----------+----------+----------+----------+
|
|
|
| Dirección de destino del resultado
|
|
| Registro de entrada 2
|
| Registro de entrada 1
| Instrucción
Nota: cada procesador es distinto, por lo que quizás alguno de los ejemplos sea verídico o
similar a alguno en uso, pero no tiene porqué.
Como había dicho, aquí tenemos la simulación documentada de como funciona la arquitectura
de Von Neumann, que podéis ver con mayor tamaño también. (Es más cómodo pasar al
siguiente paso pulsando enter).
Resumen
Aunque es un poco difícil de comprender a la primera es esencial conocer las bases de la
computación cuando uno se dedica a la programación, y así llegar a comprender como afecta
nuestros programas a la interacción del sistema. Aunque actualmente muchos lenguajes nos
abstraen de todo esto, pero eso ya sería entrar en arquitectura del software.
Descargar