miércoles, 5 de septiembre de 2012

Arquitectura de computadoras


Entendamos por arquitectura de computadoras las partes que lo componen. De este modo podemos hablar de dos tipos de componentes.
  1. Componentes físicos, también llamado hardware y que será compuesto por toda la circuitería y componentes electrónicos del ordenador.
  2. Componentes lógicos, también llamado software y que esta compuesto por los programas que se ejecutan en el ordenador así como por la información o datos que se procesan. Un ordenador sin software no tendría sentido, solo sería una máquina que no haría nada.
La arquitectura de una computadora explica la situación de sus componentes y permite determinar las posibilidades de que un sistema pueda determinar las operaciones que se piensa realizará.
Cualquier usuario que desee adquirir un sistema informático, tanto si es una gran empresa como un particular, debe responder a una serie de preguntas previas: ¿qué se desea realizar con el nuevo sistema informático? ¿Cuáles son los objetivos a conseguir? ¿Qué software será el más adecuado para conseguir los objetivos marcados? ¿Qué impacto va a suponer en la organización (laboral o personal) la introducción del nuevo sistema informático?
Finalmente, cuando se haya respondido a estas preguntas, el usuario tendrá una idea aproximada de los objetivos que han de cumplir los diferentes sistemas informáticos a evaluar.


Organización de las computadoras


El modelo básico de las computadoras que aún se utiliza fue establecido en 1945 por Von Neumann. Esta máquina es capaz de ejecutar secuencialmente, una serie de ordenes elementales denominadas instrucciones máquina, que deben estar almacenadas en memoria principal para ser leídas y ejecutadas.
Este computador se encuentra organizado en una serie de unidades funcionales, cada una de ellas responsable de la realización de un grupo de tareas específicas. Estas unidades funcionales son:

  • Unidad aritmética y lógica (UAL)
  • Unidad de control (UC)
  • La memoria principal o central (MP o MC)
  • La unidad de entrada y de salida (E/S)

Al conjunto de la unidad aritmética y lógica, la unidad de control, los registros y, actualmente parte de la memoria se le denomina Unidad Central de Procesamiento1 (UCP) o procesador y este se encuentra encapsulado en un mismo circuito.

Evidentemente, hay que garantizar las comunicaciones entre las diferentes unidades funcionales, de manera que la información pueda fluir entre ellas. Para ello existen una serie de conexiones y canales de comunicación (buses) que ponen en contacto a las diferentes partes del computador y definen los caminos que pueden seguir los datos. A estos caminos de datos se le conoce como Ruta de datos.
El conjunto de circuitos aritméticos y lógicos recibe el nombre de Unidad Aritmética y Lógica (UAL) y realiza operaciones elementales como sumas, restas, productos, sumas lógicas, negaciones, desplazamientos, etc. Generalmente opera con datos que están almacenados en registros, sin embargo, es posible que también obtenga los datos y/o guarde los resultados en memoria. Los circuitos que la integran trabajan a gran velocidad.

Los registros son almacenamientos temporales para aquella información, datos o instrucciones, que esta siendo utilizado por el UCP, aunque también pueden almacenar información especifica del funcionamiento de la máquina. Por eso comúnmente se dice que existen registros de propósito general y registros específicos. Los registros cumplen un papel esencial en la arquitectura de la computadora, que que el número de bits que un registro es capaz de almacenar define la longitud de la palabra computador puesto que cada registro almacena, normalmente, un único dato o instrucción. El número de registros de una computadora a otra es diferente y en general junto con su función es una de las mas importantes decisiones que debe tomar un arquitecto de computadoras.

La unidad de control coordina todas las operaciones que se realizan, ya sea en el propio procesador, memoria o en le sistema de entrada/salida, Por tanto, es el centro neurálgico de la máquina, y genera todas las señales de control necesarias para ejecutar cualquier tarea, por ello, es razonable pensar que la circuitería de control puede distribuirse por toda la máquina permitiendo controlar y sincronizar los eventos de todas las unidades funcionales.

La memoria principal o memoria central o incluso llamada memoria primara, esta compuesta por un conjunto de unidades de almacenamiento independientes llamadas celdas o puntos de bits, capaces de almacenar un bit. Estas celdas no suelen accederse individualmente, si no que el acceso se realiza por grupos de tamaño mínimo de 8bits2 y en general, admiten accesos múltiplos de byte. Al número máximo de bits que puede accederse en una operación en una operación de memoria tiene asignado un número para su identificación que se denomina dirección.

La memoria principal admite dos tipos de operaciones: lectura y escritura. Las operaciones de escritura almacenan un valor en la dirección dada, la operación de escritura recupera el valor mas recientemente almacenado en esta dirección. Las operaciones de lectura no son destructivas, es decir; es posible leer muchas veces el mismo valor. Su capacidad o tamaño puede expresarse en bits, octetos o palabras. Lo usual es hacerlo por octetos y se emplean las siguientes unidades:


  • 1 K (1 Ka o 1 Kilo) = 210 = 1024
  • 1 M (1 Mega) = 220 = 210 K
  • 1 G (1 Giga) = 230 = 210 M
  • 1 T (1 Tera) = 240 = 210 G


La unidad de entrada/salida es la responsable de la comunicación de la máquina con el exterior y realiza la transferencia de información a través de los dispositivos denominados periféricos.

Los periféricos mas comunes son:

  • Para introducir datos, llamados dispositivos de entrada. Ejemplo: Teclado, ratón.
  • Para presentar resultados, dispositivos de salida. Ejemplo: Monitor, impresora
  • Para almacenar información, dispositivos de entrada/salida. Ejemplo Discos duros


El procesador

El procesador es un circuito secuencial que se disgrega en una unidad de proceso y en una unidad de control. Recibe las instrucciones del programa que se esta ejecutando y las encadena, las interpreta y las transforma enviando las ordenes precisas al resto de los elementos del ordenador con el fin de que cada uno actúe en el momento y la forma precisa. 

En una máquina común la unidad de proceso tiene los siguientes elementos básicos:

  1. El registro de las instrucciones. Esta es la que guarda las instrucciones que ejecuta 
  2.  El contador de programas: Es un registro que contiene en todo momento la dirección de memoria siguiente a la instrucción que se ejecuta 
  3. El banco de registros: Guarda los datos con que trabajan los programa cuando se llevan de la memoria la procesador para operar con ellos o para consultarlos. El banco de registro tiene ocho registros de 16 bits, que se identifican con los nombres de R0, R1,...R7. El registro R0 tiene la particularidad de que no puede escribirse y que siempre guarda el valor cero.
  4. La unidad aritmética lógica: Realiza las operaciones aritméticas requeridas para los programas
  5. Los registros RN y RZ: Son de 1Bit, guardan los bits de condición N y Z. Estos indican en todo momento si el resultado de la última operación efectuado por la unidad aritmética y lógica ha sido negativo (RN) o cero (RZ).
Las funciones de la unidad de control son tres:
  1. Analiza e interpreta instrucciones del programa que esta ejecutando
  2. Controla los demás componentes físicos del ordenador (memoria, periféricos, unidad aritmética,... etc) mediante ordenes dirigidas a estos componentes.
  3. Atiende y decide sobre posibles interrupciones que se pueden producir en el proceso; por ejemplo, el teclado envía una señal a la unidad de control cada vez que se pulsa un tecla.
Las partes de la unidad de control se pueden describir como:

Registro contador de programa (CP o CI) También llamado contador de instrucción. Contiene la dirección de memoria donde se encuentra la siguiente instrucción que se va a ejecutar

Registro de instrucción (RI): Contiene la instrucción que se esta ejecutando en ese momento, dicha instrucción esta compuesta por varias partes entre las que se destaca el código de operación, es decir, que operación debe realizar la unidad de control (dependiendo de este código se activan unos u otros componentes del ordenador) y las direcciones de memoria donde se encuentran los operandos que se pueden necesitar.

Decodificador (D) : Se encarga de extraer el código de operación de instrucción en curso, o la dirección (posición) de memoria a la que la unidad de control debe acceder para leer o escribir en ella, lo analiza y emite las señales necesarias al resto de los elementos para su ejecución a través del secuenciador.

Secuenciador (S): Envía una serie de microórdenes al resto de los elementos que, sincronizadas con los pulsos del reloj, hace que se ejecute paso a paso la instrucción que esta en el registro de instrucción.

Reloj (R): Indica en que momento debe comenzar una determinada operación y en que momento debe finalizar, para esto emite unos impulsos a intervalos fijos de tiempo que sirven como referencia al resto de los componentes.

Unidad aritmética lógica (UAL)

Lleva a cabo las operaciones que puede realizar el ordenador, estas pueden ser aritméticas (suma, productos, etc) o lógicas (operaciones de comparación).

La UAL recibe los datos con los que debe operar la unidad de control y tras realizar la operación oportuna devuelve el resultado a la memoria principal.

La mayoría de las UAL como operación aritmética solo tienen la suma, y el resto de las operaciones las efectúa en base a la suma, esto para una persona sería lento y mucho trabajo pero un ordenador esta precisamente diseñado para realizar operaciones repetitivas ; cientos de ellas, a intervalos de miles de ellas por milisegundo.

Circuito operacional (COP): Se encarga de la realización de operaciones con los datos suministrados por el registro de entrada. Este circuito dispone de unas entradas para seleccionar el tipo de operación a realizar en cada momento (aritmética o lógica).

Registro de entrada 1 y 2 (R. en a y R. en b): Son utilizados tanto para el almacenamiento de datos u operandos que intervienen en una instrucción antes de la realización de las operaciones por parte del 

COP como para el almacenamiento de datos intermedios.

Registro de estado: En queda constancia de algunas condiciones que se dieron en la última operación realizada y que se tendrá y que se tendrá que tener en cuenta en otras operaciones posteriores.

Registro acumulador (RA): En el se depositan los resultados de las operaciones llevadas a cabo por el circuito operacional.

Memoria principal

Antes de empezar a analizar es pertinente definir las definiciones de los distintos tipos de memoria
Memoria RAM (Random Access Memory): Es una memoria de almacenamiento aleatorio de tipo volátil pero de tiempo de acceso muy rápido, es decir, la información permanece solo si existe alimentación de energía. Este tipo de memoria permite tanto la lectura como la escritura por parte del procesador.

Memoria ROM (Read Only Memory): Es una memoria de solo lectura de acceso aleatorio y que se utiliza principalmente para almacenar datos básicos o de configuración del ordenador como lo es el arranque. Esta es una memoria no volatil.
La memoria principal también es llamada memoria central o memoria RAM.
La memoria principal es una parte fundamental del ordenador ya que los programas deben estar cargados aqui para que puedan ejecutarse y los datos también deben estar cargados aquí para poder ser procesados.

La memoria principal tiene una ventaja con respecto a los que se denomina memoria secundaria (disquetes, discos duros...) y es que es mucho mas rápido el acceso a ellay la desventaja de que es una memoria volátil, y es que la información se pierde en el memento que se desconecta el ordenador por ello el funcionamiento de un ordenador implica tener guardada la información y los programas en una memoria secundaria para evitar perdidas al apagar el ordenador. 
La memoria principal es como un matiz en donde en cada celda se almacena un bit (un dígito binario); es decir; un cero o un uno.

Cuanta mas capacidad tenga la memoria mas información podrá almacenar. Las memorias hacia el año 90 tenían una capacidad de 640Kb a 1Mb, hoy en día tienen capacidades de 4Gb a 20Gb en los ordenadores personales, para servidores esto es mucho mayor.
  1. Registro de selección de memoria: Contiene en un momento dado la dirección de la celda que se trata de seleccionar de la memoria, ya sea para leer de ella o para escribir en ella.
  2. Registro de intercambio de memoria: En el se deposita el contenido de una celda de memoria que ha sido seleccionada en una operación de lectura, o bien, la información que contiene se deposita en una celda en una operación de escritura. Visto de otro modo esta es por donde salen y entran los datos de la memoria. El parámetro de RIM es un parámetro típico de las memorias que también es llamado ancho de palabra, es un número de bits que normalmente es un múltiplo de 8. En cada operación de lectura o escritura se leerá o se escribirá en la memoria ese conjunto de bits.
  3. Selector de memoria (SM): es el encargado de conectar la celda de memoria cuya dirección esta contenida en el RDM, con el RIM para la transferencia de los datos en un sentido o en otro, siempre que se produce un instrucción de lectura o de escritura.

Bus de sistema

Es un conjunto de circuitos que permite la comunicación entre la UCP y el resto de las unidades del ordenador. La transmisión la realiza en paralelo, es decir, enviando un número de bits simultáneamente entre dos unidades. En el bus de sistema se diferencian:
  1. Bus de datos
  2. Bus de control
  3. Bus de direcciones
Esta compuesta por lineas conductoras muy finas sobra la placa base, mientras que la instancia de control, el controlador de bus, en un elemento integrado en el juego de chips de la placa. Esta central de conexiones regula el tráfico de las lineas y se encarga de que no sucedan colisiones. A través del bus del sistema, el controlador del bus es una especie de semáforo qie permite o niega el acceso de datos al bus.

El transporte interno de datos por la red se realiza por medio de un cambio de tensión en la linea. Un valor de bit 1 corresponde al estado de tensión alto (5 voltios) y un bit de valor 0 (cero) se representa con el estado de tensión bajo (sin tensión, cero voltios) La capacidad del sistema de bus depende de dos factores: el ancho y la frecuencia de bus. Estos factores han evolucionado considerablemente con el paso del tiempo.

Por ancho de bus entendemos, el número de lineas disponibles para transferir datos. Cada uno de los bits que se transmite necesita una linea. Por lo tanto al ancho de bus determina la cantidad de bits que se pueden transportar a la vez. A su vez el ancho de bus es determinado por el procesador del sistema. Según el tipo de CPU, el bus de datos tiene una anchura de 8, 16, 32 o 64 bits. Contra mas ancho sea este canal, mayor cantidad de datos podrá transportaren cada intervalo de trabajo. La frecuencia del bus es es el número de “ciclos de trabajo” por segundo. A mayor frecuencia de trabajo mas rápido será el sistema del bus.

Por otro lado, el número de lineas del bus de direcciones determina el tamaño del espacio que se puede diferenciar en ella. El procesador también el ancho del bus de direcciones.

Debido a que el bus tiene un papel sumamente importante en el comportamiento del sistema en su tráfico interno y que este piede convertirse fácilmente en el cuello de botella en la arquitectura de una computadora. Un buen procesador solo puede desplegar todo su potencial en la medida en que el bus pueda proveer y y enviar datos de u mediante los demás periféricos. La frecuencia y la anchura ha evolucionado paralelamente al aumento de prestaciones de procesadores. 

No hay comentarios:

Publicar un comentario