Elementos funcionales de un ordenador digital.

La arquitectura de un computador define su comportamiento funcional. El modelo básico de arquitectura empleada en los computadores digitales fue establecido en 1946 por John Von Neumann.

ESQUEMA
  1. ESTRUCTURA BÁSICA DE UN ORDENADOR
  1. FUNCIONAMIENTO EN CONJUNTO
  1. LA UNIDAD CENTRAL DE PROCESO (UCP/CPU)
  1. MEMORIA
  1. UNIDADES DE ENTRADA/SALIDA
  1. BUSES
  1. BIBLIOGRAFÍA



  1. ESTRUCTURA BÁSICA DE UN ORDENADOR

La arquitectura de un computador define su comportamiento funcional. El modelo básico de arquitectura empleada en los computadores digitales fue establecido en 1946 por John Von Neumann. La principal aportación de este modelo consiste en construir una computadora con el programa almacenado. La idea de Von Neumann consistió en conectar permanentemente las unidades de la computadora, siendo coordinado su funcionamiento bajo un control central. Esta arquitectura es todavía, aunque con pequeñas modificaciones la que se emplea en la actualidad. La figura muestra la estructura general de un computador según Von Neumann.

RM: Registro de palabra
RD: Registro de dirección
UAL: Unidad aritmético-lógica
AC: Registro acumulador
RT: Registro temporal
RE: Registro de estado
UC: Unidad de control
CP: Contador de programa
RI: Registro de instrucción
E/S: Entrada / Salida

  1. FUNCIONAMIENTO EN CONJUNTO

Desde un punto de vista físico, los componentes de un sistema informático pueden ser los siguientes:

  • Unidad central de proceso: se compone de unidad de control, los registros (elementos de memorización relativa al programa que se está ejecutando y al control del propio procesador) y la unidad aritmético-lógica de un computador, esto es, el bloque que descodifica y ejecuta las instrucciones que se encuentran ubicadas en memoria.
    • Unidad aritmético-lógica: permite realizar una serie de operaciones elementales tales como suma, resta, and, or, etc. Los datos sobre los que opera esta unidad provienen de la memoria principal y pueden estar almacenados de forma temporal en alguno de los registros de la propia unidad aritmético-lógica.
    • Unidad de control: se encarga de leer, una tras otra, las instrucciones de máquina almacenadas en la memoria principal, y de generar las señales de control necesarias para que todo el computador funcione y ejecute las instrucciones leídas. En el contador de programa se almacena la posición de memoria de la instrucción por ejecutar. Las señales de control se han representado en el diagrama con líneas discontinuas.

  • Buses: caminos a través de los cuales las instrucciones y los datos circulan entre las distintas unidades del ordenador.

  • Memoria principal: es una unidad dividida en celdas que se identifican mediante una dirección. Cada celda suele estar formada por un conjunto de puntos de memoria o bits que son el elemento básico de información y cuyos valores, corresponden a estados de tensión diferenciados. Todas las celdas tienen el mismo número de bits y se emplean tanto para el almacenamiento de datos como de instrucciones de máquina.

  • Unidad de entrada/salida: realiza la transferencia de información con unas unidades exteriores llamadas periféricos, lo que permite, entre otras cosas, cargar datos y programas en la memoria principal y sacar resultados impresos.

  • Unidades periféricas: dentro de ellas podemos distinguir dos grandes grupos, por una parte las memorias auxiliares, que sirven de soporte de almacenamiento de gran capacidad y como medio de comunicación con el interior del sistema. Por otra parte, disponemos de las unidades que permiten las comunicaciones entre el sistema y el mundo exterior (impresoras, escáneres, pantallas, …).

  • Canal: gestiona la transferencia de información entres las unidades periféricas y la memoria central.

Antes de profundizar en la descripción de cada componente es preciso entender cómo interactúan entre sí durante la ejecución de un programa, tarea principal para la que un ordenador fue pensado.

Un programa es un conjunto de instrucciones que son almacenadas secuencialmente en posiciones o direcciones sucesivas de memoria y que serán ejecutadas una tras otra.

El funcionamiento de un ordenador consistirá en ir extrayendo sucesivamente instrucciones de la memoria, interpretarlas, extraer de la memoria los operandos implicados en la operación, enviarlos a la unidad que realiza las operaciones y hallar el resultado. Este proceso se describe más formalmente mediante las fases de ejecución de una instrucción:

  1. Lectura en memoria par extraer la nueva instrucción a ejecutar.
  2. Descodificación de la instrucción y cálculo de las direcciones de los operandos implicados.
  3. Ejecución de la operación: lectura en memoria para extraer los operandos implicados en la instrucción y envío de estos operandos a la unidad aritmético-lógica desencadenándose el tratamiento de los operandos.
  4. Almacenamiento del resultado en la posición indicada por la instrucción y cálculo de la dirección de la instrucción siguiente.


  1. LA UNIDAD CENTRAL DE PROCESO (UCP/CPU)

La unidad central de proceso es el conjunto formado por la unidad de control, los registros y la unidad aritmético-lógica de un computador.

La CPU trabaja interpretando y ejecutando instrucciones contenidas en un programa. Estos programas están almacenados en lenguaje de máquina. Este lenguaje es muy restringido (bajo nivel) y está compuesto por una serie de instrucciones (de máquina) cuyo conjunto se denomina juego de instruccionesde un computador.

Las propiedades generales que suelen cumplir las instrucciones de máquina son:
  • Realizan una única y sencilla función por lo que su descodificación o interpretación es sencilla.
  • Emplean un número fijo de operandos, con una representación determinada.
  • La codificación de las instrucciones es bastante sistemática, puesto que ello facilita su descodificación.
  • Las instrucciones son autocontenidas e independientes. Esto es, contienen toda la información necesaria para ejecutarse, no siendo necesaria la información de otras instrucciones y no dependiendo su interpretación de la posición que ocupan en el programa o en la memoria.

Los tipos de instrucciones que encontramos en cualquier juego de instrucciones de un computador coinciden con las tratadas en el apartado 5 del tema 33: “Programación en lenguaje ensamblador. Instrucciones básicas. Formatos. Direccionamientos”.

  • La unidad aritmético-lógica

Es la encargada de tratar los datos, ejecutando las operaciones requeridas conforme al programa en curso. La unidad de control le envía los datos correspondientes y le indica qué operación debe realizar. Las operaciones que esta unidad es capaz de realizar son muy elementales, de hecho, muchos computadores basan su unidad aritmética en un simple sumador restador, de manera que todas las tareas que debe realizar son descompuestas en pasos elementales para que la UAL sea capaz de ejecutarlos.

Cada operador que compone la UAL es un circuito electrónico capaz de realizar una determinada operación aritmética o lógica. Estos operadores pueden clasificarse atendiendo a su propósito en generales o especializados. Los generales pueden realizar distintas clases de operaciones mientras que los especializados se restringen a una sola clase. Por otro lado, atendiendo a su realización se pueden clasificar en combinacionales o secuenciales. Los combinacionales no incluyen elementos de memoria por lo que el retardo proporcionado en la ejecución de una instrucción es la suma de los retrasos de todas las puertas lógicas que suponen la ruta de datos. Un operador secuencial requiere varias fases para obtener un resultado, debiendo contar con los elementos de memoria necesarios para almacenar la información que debe transmitirse entre fases, y con un contador para éstas. Por último atendiendo a la forma de trabajar con los operandos los podemos clasificar en paralelos o vectoriales, cuando se realiza la operación sobre todos los dígitos del operando simultáneamente y series o de dígito, cuando trabajan dígito a dígito.

En cuanto al número de operandos del operador existen operaciones monádicas, que sólo requieren un operando (como la operación negación) y operaciones diádicas que requieren dos operandos (suma, multiplicación, …).

En la figura se muestra la estructura de una unidad aritmética. En general se compone de uno o varios operadores, un conjunto de registros, unos biestables de estado y, a veces, de un órgano secuenciador.

Los operadores son casi siempre de tipo combinacional y paralelo, encargándose la unidad de control del computador de llevar a cabo el control de los algoritmos de las operaciones complejas. En computadores muy potentes se suelen construir con su propio órgano secuenciador.

El banco de registros de tipo general sirve para que el usuario almacene temporalmente datos y resultados intermedios. Suele constar del orden de 8 a 16 registros. En muchas máquinas el registro acumulador sirve tanto para acumular resultados intermedios como para realizar una serie de operaciones que no se pueden realizar sobre los demás registros.


La UAL está generalmente dotada de unos biestables de estado que almacenan ciertas condiciones relativas a la última operación realizada por ella. Típicamente suelen encontrarse los siguientes:
  • Z (cero): se pone a ‘1’ si el resultado es cero.
  • N (negativo): se pone a ‘1’ si el resultado es negativo.
  • C (acarreo): se pone a ‘1’ cuando la operación genera acarreo.
  • O (desbordamiento): se pone a ‘1’ cuando se produce desbordamiento.
  • Otros como acarreo auxiliar, indicador de paridad, etc.

La operación que debe realizar la UAL le llega a través de varias líneas de control (OP) que suelen conectarse directamente con el campo CO del registro de instrucciones y con la unidad central.

Distinguimos varios tipos de máquinas según su UAL. Las más comunes son las de tres direcciones y las de una dirección. En las primeras se explicita las direcciones del primer y segundo operando así como la del resultado.

CÓDIGO DE OPERACIÓN
DIRECCIÓN 1º OPERANDO
DIRECCIÓN 2º OPERANDO
DIRECCIÓN RESULTADO
Máquinas de 3 direcciones.

En las de una dirección se utiliza la dirección para el segundo operando y el acumulador para guardar el primer operando y el resultado.

CÓDIGO DE OPERACIÓN
DIRECCIÓN
Máquinas de 1 dirección.


  • La unidad de control

El objetivo de la unidad de control es monitorizar el funcionamiento de todo el computador dirigiendo la información a las unidades o elementos precisos en el momento adecuado y dando unas órdenes oportunas para que se realicen las acciones pertinentes (memorizar, sumar, etcétera). Todo ello lo hace en la unidad de control, analizando o interpretando el código de operación y el modo de direccionamiento de la instrucción en curso, os valores de los biestables indicadores y los valores de los biestables de control. En función de este análisis genera todas las señales de control que gobierna el funcionamiento de los distintos elementos del computador. En definitiva, podemos decir que la unidad de control capta las instrucciones, las interpreta, capta los operandos y los lleva a circuitos adecuados de la unidad de procesamiento, envía las señales oportunas a la entidad aritmética-lógica para completar las operaciones implicadas en la instrucción y ordena el almacenamiento de los resultados en el destino correspondiente.

La unidad de control realiza las funciones descritas generando señales de control o micro-órdenes que producen determinadas micro-operaciones en un orden o secuencia predeterminado, de forma sincronizada por un temporizador.

Para construir una unidad de control se pueden utilizar dos metodologías. La primera de ellas se denomina de lógica cableada y se basa en la utilización de puertas lógicas y de las técnicas de diseño de sistemas combinacionales y secuenciales. La segunda se denomina microprogramación, sus fundamentos fueron definidos por Wilkes a principios de los años 50 y se basa en almacenar en memoria, por lo general de sólo lectura, las micro-órdenes que producen mircro-operaciones que implementan las distintas instrucciones: la ejecución de una instrucción sencillamente implica leer de la memoria de control las micro-órdenes correspondientes a ella.

  1. MEMORIA

En su sentido más amplio, la palabra memoria se refiere a cualquier dispositivo que almacena información para su uso posterior. Según esta definición, la memoria de un computador puede dividirse en dos categorías:

  • Memoria principal, relacionada con la parte del ordenador que mantiene las instrucciones y los datos sobre los que se está operando actualmente.
  • Dispositivos de almacenamiento secundario, que constan de otros recursos que pueden almacenar información. Esta información debe ser transferida a la memoria del primer tipo antes de poder ser usada por el computador.

Sobre la memoria sólo se puede efectuar dos operaciones básicas que son lectura y escritura. En la lectura, el dispositivo de memoria debe recibir una dirección que le indique la posición de la que se quiere extraer la información previamente depositada en ella. En la escritura, además de la dirección, se debe suministrar la información que se desea guardar.

Casi todas las memorias emplean el almacenamiento binario, es decir, que la información más elemental registrada es el bit, a cuyo soporte físico llamamos punto de memoria. Los diferentes modos de realización práctica del punto de memoria producen los diversos tipos de memorias.

Niveles de jerarquía de las memorias

Las CPUs se construyen con circuitos integrados muy rápidos, esto obliga a tener que disponer de memorias lo más rápidas posible, sin embargo, las memorias rápidas son de pequeña capacidad, lo que genera un nivel veloz pero de poca capacidad, así como niveles sucesivos de menor rapidez y mayor capacidad. La mejor forma de aprovechar esta estructura es que la información se deposite en niveles de acuerdo a su volumen y a las necesidades de velocidad de recuperación. Podemos distinguir los siguientes niveles jerárquicos:

  • Registros: de acceso aleatorio de muy baja capacidad (20a 28 bytes), pero enormemente rápidas con tiempos de acceso de cientos de picosegundos (10-12s). Se fabrican con semiconductores y se accede por palabra.
  • Memoria de caché o tampón: de acceso aleatorio por palabra, capacidad máxima del orden de megabytes, y tiempos de acceso inferiores a 1 nanosegundo (10-9s). Se fabrican con semiconductores. En las UCP actuales existen dos tipos de memoria caché, la de nivel 1 que se aloja dentro de la UCP y la de nivel 2 cuyo encapsulado puede estar dentro o fuera de la UCP.
  • Memoria principal: de acceso aleatorio por palabra, capacidad de hasta cientos de GB y tiempos de acceso del orden del nanosegundo. Están fabricadas con semiconductores.
  • Memoria secundaria de disco: es de acceso aleatorio por sectores, de alta capacidad (hasta 10 TB en los discos fijos, variable en otros formatos como magneto-ópticos, etc.), el tiempo de acceso está en el orden de los milisegundos. Se fabrica con disco de plato fijo y cabezal móvil.
  • Memoria auxiliar: se trata de soportes más lentos que la memoria secundaria y de capacidad generalmente grande (de cientos de MB a TB); los podemos encontrar en cintas magnéticas, discos flexibles, unidades CD-ROM, CD-RW, DVD ROM, DVD RAM, etc. y tiempos de acceso entre varias centenas de ms y varios minutos (en el caso de las cintas).
  • Memoria flash: un tipo especial de memoria semiconductora que si bien es más lenta que la memoria principal habitual (especialmente en escritura), es bastante más rápida que los sistemas de tecnología magneto-óptica e incluye características mixtas como la alta velocidad de los medios semiconductores y la no volatilidad de los magneto-ópticos. Estas memorias se utilizan profusamente en dispositivos tales como teléfonos móviles, cámaras digitales, organizadores personales (PDA), y otros pequeños equipos de esta índole, existiendo módulos de memoria flash con velocidad de acceso (en lectura) en el orden de 10ns o menos en modo ráfaga (utilizando cachés SRAM).

Componentes de las memorias

Para que un dispositivo pueda ser utilizado como memoria, debe reunir los siguientes requisitos:

  • Medio o soporte: donde se almacenan estados energéticos diferentes, que codifican información.
  • Transductores: tanto para la lectura como para la escritura, son los dispositivos capaces de generar la energía necesaria para la grabación, así como para la detección del estado en la lectura.
  • Mecanismos de direccionamiento: que permiten leer y escribir la información en el lugar y tiempo deseado.

  • Medio o soporte

Es el elemento físico que actúa de contenedor de la memoria. Para que un medio sirva como almacén de información debe cumplir las siguientes condiciones:

  • Debe presentar al menos, dos estados estables, que se caractericen por una magnitud física discreta, es decir, que se pueda medir.
  • Se debe poder pasar de un estado a otro mediante la aplicación de una energía externa.
  • Se debe poder detectar el estado existente en cualquier momento.

Los medios pueden ser discretos o continuos. En los primeros se emplea un elemento individual para almacenar cada bit, mientras que en los segundos se almacenan unos bits a continuación de otros, necesitándose una señal de reloj para poder distinguir cada uno de los bits.
Los medios pueden clasificarse, atendiendo al tiempo que la información permanece sobre ellos grabada, en:

  • Duraderos o no volátiles: la información permanece en los puntos de memoria para siempre, a no ser que se escriba sobre ellos otra información.
  • Volátiles: cuando no se suministra energía, la información desaparece.
  • Con refresco: aunque la memoria esté alimentada, su información se va degradando paulatinamente, llegando un momento en que no se puede leer correctamente. Para que sean reutilizables deben reescribirse periódicamente.
  • De lectura destructiva: cada vez que se lee se destruye la información y esto implica tener que escribir la información después de cada lectura (núcleos de ferrita).
  • De sólo lectura: aquellos en los que la información sólo se puede grabar una vez. A partir de ahí sólo se puede leer su contenido.

  • Transductores

Existen transductores de lectura y escritura. Los primeros deben suministrar energía necesaria al medio para que adopte el estado deseado y los segundos deben captar las correspondientes magnitudes físicas del medio, para determinar el estado de los puntos de memoria.

Los transductores pueden estar unidos físicamente al medio, dando lugar a las memorias estáticas; en las memorias dinámicas los transductores no están unidos al medio, de manera que durante los procesos de lectura y escritura el punto de memoria, el propio transductor, o ambos, se desplazan.

  • Mecanismos de direccionamiento

Selecciona el punto de memoria deseado. En las memorias estáticas, el mecanismo de direccionamiento está implícito en su propia construcción, por ello reciben el nombre de memorias con direccionamiento cableado. Por el contrario, en las memorias dinámicas, que comparten transductores, no existe relación entre punto de memoria y transductor, realizándose la selección por la Unidad de Control, que debe interpretar la información de direccionamiento que se almacena junto a los datos.

La técnica más empleada consiste en empaquetar la información en bloques o registros a los que se añade una cabecera que incluye un identificador de bloques. La unidad de control del dispositivo de la memoria debe interpretar este identificador para poder seleccionar la posición de la memoria deseada.

Otras características de las memorias

  • Tamaño o capacidad: es la máxima cantidad de información que se puede almacenar. En las memorias estáticas hay una relación entre la capacidad y la cantidad de bits necesarios para su direccionamiento. Así, si la memoria tiene M palabras, necesitaremos n bits de dirección, de manera que M ≤ 2n. En las memorias dinámicas hay que distinguir la capacidad bruta de la neta.
  • Modo de acceso: en este aspecto se pueden clasificar las memorias en dos grandes bloques: acceso por palabra o RAM (Random Access Memory) y acceso por bloques. El primero sólo se utiliza en las memorias estáticas y el segundo se emplea en las memorias dinámicas. Se fundamenta en que estas memorias tardan mucho más en acceder al primer dato de un bloque que en recuperar los siguientes. Para conseguir un buen rendimiento en el manejo del dispositivo es conveniente acceder por bloques de un tamaño que justifique el tiempo consumido en alcanzarlos.
  • Velocidad: volumen de datos por unidad de tiempo que es posible transferir en una operación de lectura o escritura. Dependiendo del modo de acceso, habrá tiempos distintos. En las memorias estáticas, los tiempos son independientes de la dirección al estar todos los puntos cableados de la mima manera. En las memoria dinámicas hay que hacer coincidir el transductor con la información (tiempo de acceso = tiempo de búsqueda del sector a leer/escribir + tiempo de latencia); una vez que se ha accedido a la zona deseada, se pueden escribir o leer una serie de palabras consecutivas a velocidad más o menos sostenida.

Memorias de semiconductores

Todas las memorias de semiconductores son de acceso aleatorio (RAM) y se clasifican en:

  • De sólo lectura, ROM: programadas por máscara ROM y por usuario PROM.
  • Preferentemente de lectura, RMM: borrables y programables EPROM y borrables eléctricamente, EEPROM.
  • Lectura y escritura, RWM’s: encontramos las RAM dinámicas y las estáticas. Las estáticas (SRAM) están basadas en puntos de memoria de tipo biestable. El término dinámico se refiere a que la información almacenada tiende a borrarse con el tiempo, por lo tanto, hay que refrescar la información.

Sin embargo, se ha desarrollado otra terminología para nombrar sus variedades. Este léxico técnico resulta un tanto confuso pues utiliza con distinto sentido términos ya empleados, como RAM. De este modo, dicho término se utiliza a menudo para designar la memoria de lectura/escritura, excluyendo la memoria de sólo lectura. No obstante, las memorias de sólo lectura son también memorias de acceso aleatorio. La designación exclusiva de la memoria de lectura/escritura como RAM, no es estrictamente correcta.

  1. UNIDADES DE ENTRADA / SALIDA

El concepto de entrada y salida hace referencia a toda comunicación o intercambio de información entre la CPYU o la memoria central con el exterior. La parte del equipo que permite esta comunicación es la unidad de E/S.


Tal y como se representa en la figura, en el sistema de E/S encontramos dos partes fundamentales:

  • Periféricos: son dispositivos electromecánicos, electromagnéticos o electrónicos que permiten la comunicación directa con el mundo exterior. Distinguimos dos tipos:
    • Periféricos de memoria secundaria y auxiliar: son dispositivos de almacenamiento masivo que contienen información que para ser procesada deberá ser trasladada a la memoria principal del ordenador. Por ejemplo: tambores, cintas, discos flexibles, etc.
    • Periféricos de entrada y/o salida de datos en modo local: impresoras, pantallas CRT, etc. que se pueden usar para la interacción con seres humanos o con otros dispositivos electrónicos.
    • Periféricos de comunicación de datos: permiten la comunicación con dispositivos remotos.

  • Interfaz: es conjunto de circuitos y programas que se utilizan para resolver las diferencias que pueden existir entre el procesador central y cada uno de los periféricos. Estas diferencias se pueden producir en varias vertientes:
    • Las velocidades de transmisión de los periféricos varían desde unos pocos bytes por segundo a centenas de millones de bytes por segundo, siendo lo más frecuente que la velocidad de éstos sea menor que la de la CPU.
    • El formato de los datos que usan los periféricos puede ser distinto al formato de palabra del procesador.
    • El modo de operación de muchos periféricos difiere del de la CPU y del de la memoria, que son dispositivos electrónicos pero deben sincronizarse.

Para que se pueda llevar a cabo el intercambio de información deben realizarse las siguientes tareas:

  • Direccionamientoselección del dispositivo de E/S implicado en una transferencia determinada.
  • Transferencia de los datos desde o hacia el dispositivo seleccionado.
  • Sincronización, debido a que el funcionamiento de los periféricos es hasta cierto punto independiente de la CPU:

Direccionamiento de los dispositivos de entrada/salida

Generalmente, un ordenador tiene conectados más de un dispositivo. Es necesario disponer de algún mecanismo para seleccionar uno de ellos para que participe en una operación de E/S.

Estructura con buses separados para memoria y E/S

Todos los dispositivos de E/S se conectan al bus de E/S. El bus consta de tres conjuntos de líneas, de direcciones, de datos y señales de control.

Si el bus de direcciones es de n líneas, se podrán indicar 2ndirecciones distintas. Cada una de ellas señala lo que se denomina una puerta de E/S. Cada periférico puede emplear una o varias puertas para comunicarse con la CPU.

La CPU puede seleccionar un dispositivo colocando su dirección en las líneas de dirección del bus. Sólo aquel dispositivo conectado a la perta a la que corresponda esta dirección deberá responder a las órdenes que la CPU dará a través de las señales de control. Es necesario establecer un mecanismo de descodificación que convierta cada dirección en una señal de selección de la puerta correspondiente, la descodificación puede ser:
  • Centralizada, mediante el uso de descodificadores.
  • Distribuida: cada puerta reconoce su dirección mediante un detector de dirección particular.

Estructura de computador con E/S mapeada en memoria

En las máquinas de bus único, el mismo bus sirve tanto de bus de memoria como de bus de E/S. De este modo se suelen tratar las puertas de E/S como si fueran direcciones de memoria. A esto se le conoce como E/S por mapa de memoria (memory mapped I/O).

Transferencia de datos

Se procede a estudiar los mecanismos para realizar la transferencia de información entre los dispositivos periféricos y la CPU o su memoria principal. Es posible establecer las siguientes clasificaciones:

En cuanto al control del tránsito de datos:

  • Entrada/salida controlada por programa:

En esta técnica de transferencia de la información, la entrada o salida de un dato (byte o palabra) se logra mediante la ejecución de unas instrucciones especiales que contiene el juego de instrucciones de los computadores que utilizan este método. Estas instrucciones podrían ser IN y OUT.
Así pues, en la E/S controlada por programa la CPU se ocupa de realizar cada una de las transferencias, ejecutando instrucciones de E/S y estableciendo la sincronización adecuada. Este tipo de acceso se utiliza con los periféricos de velocidad menor que la de la CPU, y cuyo modo usual de funcionamiento es solicitar transferencia de una palabra o de un grupo reducida de estas.

  • Entrada/salida por acceso directo a memoria

Consideremos el caso de un dispositivo periférico de alta velocidad que debe transferir grandes bloques de datos hacia o desde la memoria principal. La E/S controlada por programa par un dispositivo de este tipo es ineficiente por los siguientes motivos:

  • En la E/S controlada por programa, deben ejecutarse varias instrucciones para la transferencia de cada palabra de datos entre el dispositivo externo y la memoria principal: cuando se desea transferir bloques de datos, el número de instrucciones en un E/S controlada por programa no será únicamente el correspondiente a las necesarias para provocar la transferencia de cada una de las palabras que forman el bloque, ya que además deberán ser ejecutadas instrucciones para actualizar el puntero a la posición de memoria de donde se están enviando o donde se reciben los datos en cada transferencia particular, e instrucciones para llevar la cuenta del número de palabras transferidas y controlar el estado del dispositivo que participa en la transferencia.

  • Muchos de los dispositivos periféricos de alta velocidad tienen un modo de funcionamiento síncrono: la necesidad de una transferencia síncrona de datos obedece a las características físicas del dispositivo periférico. Por ejemplo, una unidad de cinta de alta velocidad no se puede parar después de cada carácter. En dispositivos con este modo de funcionamiento, la velocidad de transferencia es del mismo orden de magnitud que la velocidad de intercambio entre CPU y memoria principal. Esta alta velocidad y la necesidad de sincronización hacen que el funcionamiento de estos dispositivos sea incompatible con una transferencia de datos controlada por programa.

  • Es evidente que en la mayoría de los casos liberar a la UCP del trabajo de efectuar las transferencias de información entre periféricos y memoria será positivo para el rendimiento conjunto del sistema.

Estos problemas que surgen al trabajar con dispositivos de alta velocidad, pueden resolverse haciendo que todas las funciones que se realizan mediante un programa sean realizadas por un circuito controlador, al que se denomina controlador de DMA (direct memory access, acceso directo a memoria). Este controlador permite la transferencia de datos directa entre el dispositivo y la memoria principal sin intervención de la CPU.

En cuanto a la sincronización en el tiempo, surge el problema de cómo conseguir que los periféricos estén permanentemente atendidos en sus demandas y ofrecimientos de información. Para ello se usan los diferentes mecanismos de sincronización:

  • Sincronización por consulta de estado (sondeo) (síncrona): en este método es la CPU la encargada de la sincronización realizando periódicamente una encuesta a los distintos dispositivos consultando su situación. Esto se lleva a cabo mediante la lectura del contenido de uno de los registros que debe contener el interfaz del periférico, el registro de estado, que contiene información acerca de la situación del periférico en ese instante, en particular, si el periférico está preparado para enviar o recibir información, aunque también suministra información adicional.
  • Sincronización mediante interrupciones (asíncrona): en lugar de ejecutar un bucle de espera programado en el que se comprueba repetidamente si los dispositivos están preparados para transmitir, el uso de interrupciones permite que sean estos dispositivos (o sus controladores) los que interrumpan la ejecución del programa en la CPU cuando están en disposición de participar en una operación de E/S. Esta interrupción se hace a través de una línea especial del bus de control llamada INTR (petición de interrupción). De esta manera, la CPU ya no debe comprobar continuamente el estado de los periféricos y puede utilizar estos tiempos realizando otras operaciones.

El problema de las prioridades se da siempre que existe un recurso único a compartir por varios usuarios que pueden efectuar peticiones simultáneas. La gestión de prioridades en la E/S es necesaria cuando:
  • Varios periféricos hacen a la vez una petición de interrupción.
  • Cuando varios periféricos solicitan simultáneamente robo de ciclo.
  • Varias puertas de una memoria multipuerta intentan acceder a la vez al misma zona de memoria.
  • Otros tipos de acceso simultáneo a recursos compartidos.

En el sistema de sondeo, la prioridad se implanta de forma inmediata según el orden y frecuencia en que se consultan los periféricos. En el sistema de interrupciones, cuando tenemos conectados más de un periférico con capacidad de generar peticiones de interrupción, una vez que se inicia el tratamiento de una determinada interrupción, la rutina de servicio se suele ejecutar hasta el final sin que se admita una segunda interrupción.

La organización en niveles de prioridad significa que durante la ejecución de una rutina de servicio se podrán aceptar las peticiones de interrupción de algunos dispositivos pero no de otros, dependiendo de la prioridad de los mismos. Existen dos métodos de solución a los problemas provocados por esta simultaneidad estando ambos relacionados con la asignación de prioridades a los distintos periféricos:

  • Gestión distribuida: en el caso de las interrupciones, la prioridad de cualquier dispositivo viene determinada por la forma en que se conecta a la CPU. El método más usual es el de daisy chain mostrado en la figura. La línea de solicitud INTR es común a todos los dispositivos. La línea de reconocimiento de interrupción (INTA) está conectada en forma de cadena. Cuando más de un dispositivo pide interrupción se activa la primera línea. Cuando llega el momento la UCP acepta la petición poniendo INTA a 1. Esta señal la recibe en primer lugar el dispositivo 1. Éste si no requiere servicio pasa la señal al dispositivo 2; en caso contrario, bloquea la propagación de INTA y coloca su número de interrupción en las líneas de datos.


  • Gestión centralizada: En este caso cada dispositivo peticionario tiene líneas individualizadas de petición de interrupción. Todas son controladas por un órgano común que, de acuerdo a la política establecida, selecciona el peticionario que debe recibir la fase de servicio y se lo comunica mediante una señal también individualizada.

  1. BUSES

El tipo más corriente de elemento de comunicación en los computadores es el bus. El bus consta de un camino que permite comunicar selectivamente un cierto número de componentes o dispositivos, de acuerdo a unas ciertas reglas o normas de conexión. El bus incluye los conceptos de enlace y conmutador, puesto que permite, en cada momento, seleccionar los dispositivos que se comunican a través suyo.

La operación básica del bus se denomina ciclo de bus y permite realizar una transferencia elemental entre dos de los dispositivos conectados a él.

Los buses se caracterizan por una serie de propiedades, entre las que destacamos las siguientes:

  • Banda base: La comunicación se envía por el bus directamente (banda base).
  • Grado de paralelismo: El bus puede ser serie (transmite bit a bit), pero normalmente es paralelo, permitiendo transmitir simultáneamente todo una palabra. A veces se utiliza el bus multiplexado, que es un bus paralelo pero un con ancho menor que el de la palabra a enviar, por lo que, para transmitir hay que hacer varios envíos parciales, multiplexando el bus en el tiempo.
  • Temporización: El bus puede ser de ciclo completo o de ciclo partido. En el primero, el bus se ocupa durante todo el tiempo que dura la transferencia de una información elemental entre los dos dispositivos que se comunican. En el segundo, se divide el tiempo del bus en una serie de pequeños períodos (time slots), cada una de los cuales sirve para enviar un mensaje. La temporización del bus puede ser síncrona o asíncrona. En el primer caso, existe un único reloj, que determina el inicio y fin de los ciclos o de las ranuras, mientras que, en el segundo caso, la temporización la establecen los distintos dispositivos, de acuerdo a sus necesidades.
  • Modo de operación: Se refiere a la forma en que se establece el diálogo entre los dispositivos para realizar las transferencias. Puede ser síncrono o asíncrono.
  • Estrategia de control: El bus, desde un punto de vista físico, puede considerarse un elemento totalmente pasivo. En su visión más simplista, es casi exclusivamente un conjunto de hilos que permiten la conexión de diversos dispositivos. En el caso más sencillo, la UCP es el único dispositivo maestro, que controla todas las transferencias. En otros casos, existen maestros temporales que pueden pedir a la UCP robos de ciclo para hacer accesos directos a memoria. Finalmente, pueden existir varios maestros que se reparten entre ellos el uso del bus.
  • Longitud: El bus se diseña para una longitud máxima de acuerdo con su aplicación.
  • Velocidad: El bus tiene una velocidad de transmisión que depende de su longitud, del medio empleado para hacer las conexiones (cables coaxiales, fibra óptica, etc) y de la lógica de control. La velocidad de transmisión multiplicada por el paralelismo establece el caudal que es capaz de soportar.
  • Capacidad de conexión: Nos referimos al máximo número de elementos que se pueden conectar al bus. Esta capacidad puede ser limitada por un problema de direccionamiento o de diseño electrónico.
  • Aplicación: Esta propiedad determina las características del bus.
  • Tipos de ciclo: El bus puede ser diseñado para soportar una serie de ciclos distintos, tales como los siguientes:

  • Ciclo de lectura de un esclavo por un maestro.
  • Ciclo de escritura de un maestro a un esclavo.
  • Ciclo de DMA (robo de ciclo, de escritura o de lectura).
  • Ciclo de interrupción.

Opción
Mejora el rendimiento
Disminuye el coste
Ancho del bus
Líneas separadas para datos y direcciones.
Líneas de datos y direcciones multiplexadas.
Ancho de banda
Cuanto más ancho más rápido.
A menor anchura menor coste.
Tamaño de la transferencia
Varias palabras a la vez: redunda en menor sobrecarga del bus.
Monopalabra es más sencillo.
Control del bus
Control múltiple (requiere arbitraje)
Control simple (no requiere arbitraje)
Transacción partida?
Sí – si los paquetes de solicitud y respuesta van separados se consigue mayor ancho de banda pero se necesitan varios controladores.
No – la conexión permanente es más barata.
Temporización
Síncrona
Asíncrona
Algunas operaciones en el diseño de buses.

  • Tipo de lógica: Muchas veces los buses se construyen con lógica negativa y esto se debe a tres causas:

  • El bus consume menos potencia, especialmente si está construido en base a colectores abiertos.
  • La conmutación es más rápida.
  • Cuando un dispositivo está apagado toma de forma natural el valor negado correcto.

  • Soporte: El material empleado para hacer la conexión física de los distintos dispositivos. La selección del soporte se hace en base a la distancia del bus, sensibilidad al ruido, velocidad requerida, paralelismo, ubicación, etc. Entre otros, los soportes pueden ser los siguientes: pistas de circuito impreso, cables (pares de cables trenzados, cable plano, cable coaxial) y fibra óptica.

Jerarquía de buses

Los buses se pueden clasificar según la siguiente jerarquía atendiendo a su longitud y función dentro del equipo computador:

  1. Bus interno de un chip (por ejemplo, el que une la caché de nivel 2 con el núcleo de un procesador).
  2. Conector de componentes (por ejemplo, el bus AGP que une una CPU con el controlador de pantalla).
  3. Bus paralelo de E/S (por ejemplo, un bus SCSI 2).
  4. Bus serie: en los diseños de buses se viene observando una vuelta a la sencillez de los comienzos, y esto se traduce en un retorno a los buses serie con modo de transferencia asíncrono. Aunque parezca un contrasentido, con estas características se están alcanzando buses con rendimientos muy superiores a los que se conseguían anteriormente con sus antecesores, que funcionaban en modo paralelo síncrono.

  1. BIBLIOGRAFÍA BÁSICA

  • Stallings, William.: Organización y arquitectura de computadoras. Pearson 2000
  • De Miguel Anasagasti, Pedro: Fundamentos de los computadores. Paraninfo 1990
  • Material WEB

Si te ha gustado esta entrada, suscríbete para recibir las próximas entradas por correo electrónico. Por favor, apoya este blog.

No hay comentarios:

Publicar un comentario

Entradas populares