Está en la página 1de 10

El computador

1. LA COMPUTADORA O COMPUTADOR

Recordemos la definición de computador u ordenador actual que es un dispositivo electrónico


que está preparado para realizar cálculos u operaciones establecidas en un programa o secuencia
de instrucciones. Para ello estará preparada para aceptar datos de entrada que procesará para
obtener los resultados o datos de salida que almacenará en algún repositorio. Si bien existen
muchos lenguajes para programar un ordenador, finalmente todo programa será traducido en ceros
y unos de forma adecuada para que puedan ser interpretados y ejecutados por el procesador del
ordenador.

Definiremos 4 conceptos fundamentales para entender a los ordenadores que, a veces, suelen
prestarse a confusión.

2. ARQUITECTURA Y ORGANIZACIÓN DE UN COMPUTADOR


2.1. Arquitectura de un ordenador

Se refiere a todos los atributos del ordenador visibles al programador. Estos atributos tienen un
impacto directo en la ejecución de los programas.

Para el caso de un procesador o microprocesador, estos atributos son, por ejemplo, su


conjunto de instrucciones, longitud de palabra, cantidad de registros, mecanismos de
direccionamiento de memoria y acceso a los periféricos, etc.

Tomemos el conjunto de instrucciones que el fabricante nos entrega para que podamos
interactuar con el procesador del computador. En él se indica la única forma en que podemos
escribir las órdenes, algoritmos y cálculos que queremos que el procesador realice. Como
programador del computador, es mandatorio que yo conozca este atributo fundamental que, sin él,
no podría realizar los procesos que deseo.

La cantidad de bits que se utilizan para procesar los datos en el ordenador es fundamental
también. Hoy vemos procesadores hogareños de 32 y 64 bits, cantidad de bits que denominaremos
longitud de la palabra del procesador. Los primeros procesadores tuvieron longitud de palabra de 4 y
8 bits.

En un procesador de estudio como el 8080 de Intel, existen registros que son pequeñas
porciones de memoria muy rápidas que están dentro de la pastilla de silicio del microprocesador.
Ellos serán los encargados de albergar operandos y resultados de las operaciones que se realicen.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 1


Necesito como programador saber con cuántos dispongo, cómo se utilizan, como los puedo acceder,
etc. Tomemos el caso del Intel 8086/8088, el fabricante nos dice que tiene estos 4 registros AX
(Acumulator = Totalizador), BX (Base), CX (Count = Contador) y DX (Data = Datos) que son de 16
bits y se podrán manipular también de a 8 bits; es decir, el AX de 16 bits está compuesto por el AH
(AX High = Byte más significativo de AX) y AL (AX Low = Byte menos significativo de AX). Lo mismo
pasa con BH y BL, CH y CL y DH y DL. Hay otros registros que no se pueden manipular de a 1 byte
como ser los de segmento de 16 bits DS, ES, SS y CS; 3 punteros de 16 bits IP, SP y BP; 2 índices
de 16 bits SI y DI y un registro F (Flag) de banderas. Todo esto es parte de la arquitectura que me
permite operar desde afuera el procesador. Ahora bien, ¿son estos todos los registros que posee?
Absolutamente no, posee miles o millones de registros internos temporales y de uso propio del
ordenador pero que no son visibles desde afuera por lo tanto, no pertenecen a su arquitectura. El
programador no puede accederlos ni para leerlos ni alterarlos. En cambio, por ejemplo, el AX
fácilmente lo podemos alterar con la instrucción MOV AX,34F2h escrita en lenguaje ensamblador del
8086/088 (se verá en otros módulos). Esta instrucción, al ejecutarse, producirá que el contenido del
AX sea modificado a 34F2h perdiéndose su valor anterior.

Ahora si nos movemos de la familia 80XX a la 80386, 80486, Pentium y posteriores


encontraremos que todas las familias posteriores mantienen compatibilidad con las arquitecturas
anteriores!! ¿Esto qué significa? Si en un Xeon o Core ejecuto la instrucción MOV AX,34F2h se hará
exitosamente ya que hay compatibilidad binaria con el pasado. Pero, ¿tiene un Xeon o un Core la
misma cantidad de registros que el 8086/8088 y el mismo conjunto de instrucciones? Claro que no,
tiene muchísimos más registros en su arquitectura y de muchos más bits. Lo mismo, tiene
muchísimas instrucciones más y de mayor complejidad, pero acepta las instrucciones de cualquier
familia anterior. De esta manera podemos instalar y ejecutar un D.O.S. (Sistema Operativo de Disco)
versión 1.0 tanto en un 8086 como en un Xeon o un Core de última generación. No perderemos
nuestra inversión de software. Ambos procesadores no tienen la misma arquitectura pero los
posteriores mantienen la compatibilidad con la pasada.

2.2. Organización de un computador

La organización de un computador se refiere a la interconexión de sus unidades operativas


necesarias para implementar las especificaciones de su arquitectura.

En el caso de un procesador o microprocesador, estas conexiones entre sus módulos nos


hablarán de su organización. Hagamos la analogía con el organigrama de una empresa o institución.
En él encontraremos las unidades funcionales de compras, ventas, mercadotecnia, producción,

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 2


recursos humanos, contabilidad, finanzas, maestranza, administración, por dar un ejemplo, todas
ellas unidas por líneas de dependencia jerárquica o de reporte y control. Pues bien, es así como se
manifiesta la organización de esa empresa. Si tomamos otras veremos quizás que no hay una
unidad de producción pero si una de atención al cliente o de despacho logístico, por mencionar un
ejemplo. Cada empresa tiene su organigrama (denotando su organización). Lo mismo ocurre con un
procesador.

Cada procesador tiene una organización diferente, uno tendrá una unidad de cálculo entera,
otro tendrá dos, otro tendrá 4 de punto flotante y lo mismo con las unidades de ejecución y otras
más.

SI bien, en el ejemplo anterior de la arquitectura, una misma instrucción se puede ejecutar en


dos familias de procesadores diferentes con el mismo éxito, claramente tienen las dos
organizaciones internas completamente distintas. Veamos estas dos organizaciones completamente
diferentes:

8086 (Von Neumann) Core

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 3


3. ESTRUCTURA Y FUNCIÓN DE UN COMPUTADOR
3.1. Estructura de un computador

La estructura de cualquier sistema se refiere a sus componentes o módulos. Podremos tomar


al ordenador como un todo y ponerlo en el centro rodeado de líneas de interconexión con periféricos
(monitor, teclado, mouse, dispositivos de comunicación, etc.)

Dentro del ordenador encontraremos distintos niveles estructurales que se detallan a


continuación. Todo computador, básicamente contendrá la siguiente estructura:

Compuesto por:

• Una Unidad Central de Proceso (UCP o Central Processor Unit = CPU) encargada del
procesamiento de los datos y el control de ejecución de los programas. Los
procesadores modernos tienen más de un “Core” o núcleo para el procesamiento y
ejecución de instrucciones.
• Una Memoria Principal encargada del almacenamiento de los datos y programas.
• Una Unidad de Entrada/Salida para la conexión del computador con los periféricos a
través de placas o unidades que adaptan las señales y temporización internos del
ordenador con los dispositivos externos (placas de red, de vídeo, de sonido, teclado,
etc.).
• Un sistema formal y definido de interconexión entre estas unidades estructurales
llamado Bus.

Sigamos adentrándonos en las unidades estructurales más importantes.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 4


3.2. Estructura de una Unidad Central de Proceso

Una CPU básica y elemental contendrá la siguiente estructura:

Dentro de ella encontraremos:

• Varios Registros (antes mencionados) de propósito general o específico.


• Una Unidad Aritmético-Lógica para realizar el procesamiento propiamente dicho. En los
procesadores actuales hay muchas de ellas en un solo chip y de varios tipos, enteras,
vectoriales, de punto fijo, de punto flotante.
• Una Unidad de Control encargada de la ejecución de los programas.
• Un sistema de interconexión propio de cada microprocesador. Modelos modernos tienen
buses definidos como el Front-Side Bus, Back-Side Bus, entre otros.

3.3. Estructura de una Unidad de Control

La sencilla pero completa Unidad de Control contendrá la siguiente estructura:

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 5


En ella encontraremos:

• Toda la Lógica Secuencial que permite la ejecución de micro-tareas dentro de cada


instrucción.
• Una Memoria de Control que contiene todos los 0 y 1 que se convertirán en señales
eléctricas que serán distribuidas dentro de todo el procesador e incluso hacia el exterior.
• Una serie de registros temporales, decodificadores, multiplexores que implementarán el
secuenciamiento de las micro-tareas para la ejecución de cada instrucción.

A lo largo del tiempo, las estructuras internas de un procesador se han potenciado y


especializado. Aquí vemos un ejemplo del procesador PowerPC G5:

En este procesador, por ejemplo podemos ver dos ALU de números enteros y dos de punto
flotante, diferentes niveles de memoria caché, por ejemplo.

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 6


3.4. Función de un computador

La función de cualquier componente indica que operación realiza o para que se utiliza o está
destinado. En el caso del computador general, las funciones básicas de todo ordenador son las
siguientes:

Encontraremos movimientos de datos (MOVER) desde el exterior al ordenador a través de los


periféricos conectados a sus respectivas Unidades de Entrada/Salida. También se moverán datos
desde la Memoria Principal a la Unidad Central de Proceso y viceversa.

El almacenamiento de datos (ALMACENAR) ocurre cuando el procesador interactúa con la


Memoria Principal grabándola o leyéndola. Existen otros medios de almacenamiento como unidades
de disco flexible, rígido, pen drives, etc.

El procesamiento de los datos (PROCESAR) se da en la Unidad Central de Proceso o CPU. En


ella se ejecutan los programas y algoritmos requeridos a través de instrucciones en código binario.

Por último el CONTROL de todo el flujo de datos y ejecución de instrucciones es la función más
importante de un ordenador. Todo se basará en unidades que controlan la ejecución de los
programas generando todas las señales eléctricas necesarias para tal fin.

4. ARQUITECTURA DE VON NEUMANN

Durante el proyecto ENIAC, John Von Neumann trabajó en el diseño de una máquina cuyo
programa estuviera almacenado dentro de su memoria. Una idea similar fue desarrollada
simultáneamente por Alan Turing pero el primero en publicar esta idea fue Von Neumann en su
proyecto EDVAC (Electronic Discrete Variable Computer).

Desde 1946 a 1952 se trabajó en el diseño y construcción de un computador llamado IAS


(Institute of Advanced Study) en la Universidad de Princeton. Esta máquina fue la base para todos

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 7


los ordenadores posteriores denominados de propósito general, es decir, no están fabricados para
una tarea específica (como el Colossus), sino que pueden ser reprogramados fácilmente para
ejecutar diferentes algoritmos de cálculo y proceso. La arquitectura de Von Neumann tiene la
siguiente estructura:

Esta estructura consiste en:

• Una Memoria Principal (MP): destinada a almacenar tanto instrucciones de programas


como datos, ya sea de entrada para la ejecución de los programas o de salida producto
del procesamiento.
• Una Unidad Aritmético-Lógica (UAL): encargada del procesamiento de la información, la
que ejecuta el algoritmo de cálculo y produce los resultados.
• Una Unidad de Control (UC): que lee las instrucciones almacenadas en la memoria
(programa), las interpreta y causa que se ejecuten.
• Unidades de Entrada y Salida (UES): destinadas a efectuar la conexión con los
dispositivos externos (periféricos) y controlada por la Unidad de Control.

Esta estructura básica del ordenador de Von Neumann podemos observarla en casi todos los
ordenadores actuales. En esta arquitectura, la palabra del procesador (cantidad de bits que opera
simultáneamente) era de 40 bits. En los 40 bits se acomodaban 2 instrucciones de 20 bits. Cada una
de ellas poseía un código de operación de 8 bits (orden propiamente dicha) y los restantes 12 bits
contenían la dirección del operando en memoria. La memoria era de 1.000 palabras.

La Unidad de Control buscaba las instrucciones en la memoria y las ejecutaba de a una por
una. Para la ejecución, se utilizarán los llamados registros para almacenar temporalmente los datos
y códigos de operación. Algunos de estos registros son:

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 8


• MBR (Memory Buffer Register): Contiene los datos a ser guardados en memoria o
enviados a la Unidad de Entradas y Salidas.
• MAR (Memory Address Register): Contiene la dirección en donde serán guardados los
datos en la memoria.
• IR (Instruction Register): Contiene los 8 bits del código de operación a ser ejecutado.
• PC (Program Cunter): Contiene la dirección de memoria en donde se encuentra la
próxima “pareja” de instrucciones a ejecutar.
• AC (Accumulator): Utilizado para guardar temporalmente el resultado de una operación
realizada por la UAL.

La máquina IAS operaba ejecutando una instrucción detrás de la otra en forma repetitiva en lo
que se llamó el Ciclo de Instrucción. Cada ciclo consistía en dos sub-ciclos, uno para cada código de
operación en la palabra de 40 bits. Esta máquina poseía un total de 21 instrucciones (o códigos de
operación) distintas agrupadas en las siguientes categorías:

• Transferencias de datos: mueven data entre la memoria y la ALU y entre los registros
• Saltos incondicionales: Un programa o conjunto de instrucciones se va ejecutando
normalmente una detrás de la otra en forma ordenada (la primera, luego la segunda,
luego la tercera y así). Sin embargo existen situaciones en que se necesita repetir
ciertas instrucciones o continuar con la ejecución de la próxima instrucción fuera del
orden normal. Estas instrucciones modificaban el curso de ejecución de las instrucciones
sin condición alguna.
• Saltos condicionales: En este grupo de instrucciones, el salto a otra porción del código
para continuar la ejecución depende del cumplimiento (o no) de una condición, como por
ejemplo si un registro es cero. Ante estas condiciones planteadas podemos decir que la
unidad de ejecución tomara la decisión de saltar o no.
• Aritméticas: Operaciones que se llevan a cabo en la UAL (suma, resta, multiplicación,
etc.)
• Modificadoras de direccionamiento: Permiten calcular una dirección de memoria lo
que hace realmente muy flexible para la programación de direcciones dentro del
ordenador.

Todas estas instrucciones serán ejecutadas en más de un paso, es decir, se requerirán varias
operaciones, pasos o micro-tareas para completar una instrucción. Para cada una de ellas podrán
necesitarse diferente cantidad de estas operaciones. Por ejemplo, una multiplicación necesitaba 39

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 9


micro-tareas antes de terminarse.

Es de hacerse notar que esta máquina era totalmente asincrónica, es decir, su operación no
estaba atada o basada en un reloj. Cada instrucción se ejecutaba cuando se terminaba la anterior.

4.1. Evolución de la máquina de Von Neumann

A lo largo de los subsiguientes años, los ordenadores se hicieron más pequeños y sus
unidades estructurales fueron evolucionando. El tratamiento de los dispositivos periféricos cambió y
hoy el direccionamiento de las unidades de entrada/salida se ha simplificado a tal punto que su
mecanismo es similar al del direccionamiento de la memoria principal.

Asimismo, las interconexiones entre las distintas unidades fue especializándose y


reagrupándose dando como resultado un sistema de interconexión de diferentes buses según su
función.

También fue incorporándose memorias no volátiles (ROM) para proporcionar las instrucciones
necesarias para el encendido del ordenador.

Los modernos ordenadores ya no son asincrónicos sino que son sincrónicos con una señal de
“CLOCK” o reloj que llega a todas las unidades para establecer dicho sincronismo. Esa señal se
encuentra dentro de las líneas de interconexión de control, ya que en general esta señal es provista
por el procesador o UCP.

En la siguiente figura podemos visualizar lo antes mencionado:

© Universidad de Palermo Prohibida la reproducción total o parcial de imágenes y textos. 10

También podría gustarte