Você está na página 1de 89

I Transferencia de registros y micro-operaciones 1.1 Lenguaje de transferencia de registros. 1.2 Transferencia entre registros 1.3 Micro-operaciones aritmticas 1.

4 Micro-operaciones lgicas 1.5 Micro-operaciones de corrimiento 1.6 Unidad de Corrimiento Lgico Aritmtico II Organizacin y diseo bsico de computadoras 2.1 Cdigos de instruccin 2.2 Registros de Computadora 2.3 Instrucciones de Computadora 2.4 Temporizacin y control 2.5 Ciclo de Instruccin 2.6 Instrucciones de referencia a memoria III Unidad central de procesamiento 3.1 Introduccin 3.2 Organizacin general de los registros 3.3 Organizacin de una pila 3.4 Formatos de las instrucciones 3.5 Modos de direccionamiento 3.6 Manipulacin y transferencia de datos 3.7 Control del Programa 3.8 Computadora de conjunto de instrucciones

IV Control Microprogramado 4.1 Memoria de Control 4.2 Secuencia de la Direccin 4.3 Ejemplo de un Microprograma 4.4 Secuenciador del Microprograma 4.5 Formato de las microinstrucciones V Organizacin de Entrada-Salida 5.1 Dispositivos perifricos 5.2 Interfase entrada-salida 5.3 Transferencia asncrona de datos 5.4 Modos de Transferencia 5.5 Prioridad de interrupcin 5.6 Acceso directo a memoria (DMA) 5.7 Procesador de entrada-salida 5.8 Comunicacin serial

OBJETIVOS La materia de Arquitectura de Computadoras 1, tiene como objetivo el introducirnos por la estructura y desempeo de los diferentes mdulos funcionales de la computadora y como interactan para atender las necesidades de procesamiento del usuario. La organizacin de las computadoras estudia la manera en que se conectan los componentes de la circuitera para formar un sistema computacional. El diseo de compuitadoras analiza el desarrollo de la circuitera de computadora, tomando en consideracin un cierto conjunto de especificaciones. Este curso proporciona el conocimiento bsico necesario para aprender la operacin de la circuitera de computadoras digitales. El primer tema introduce un Lenguaje de Transferencia de Registros y muestra cmo se usa para expresar microoperaciones en forma simblica. Se definen smbolos para microoperaciones aritmticas, lgicas y de corrimiento. Se desarrolla una unidad aritmtica lgica y de corrimiento compuesta para demostrar el diseo de la circuitera de las microoperaciones ms comunes. La segunda unidad presenta la organizacin y el diseo de una computadora digital bsica. Aunque la computadora es sencilla comparada con las computadoras comerciales, no obstante, abarca suficientes posibilidades funcionales para mostrar la capacidad de un dispositivo de propsito general con programas almacenados. Se usa un lenguaje de transferencia de registros para describir la operacin interna de la computadora y para especificar los requisitos para su diseo. Unidad 3, trata acerca de la unidad de procesamiento central (CPU). Explica la operacin de una pila de memoria y se muestran algunas de sus aplicaciones. Hace una relacin de las instrucciones ms comunes que se encuentran en las computadoras, junto con una explicacin de su funcin. Tambin presenta la computadora con conjunto reducido de instrucciones (RISC) y analiza sus caractersticas y ventajas. Durante la cuarta unidad se introduce el concepto de microprogramacin. Adems, desarrolla una unidad especfica de control microprogramado, para mostrar como se escribe un microcdigo para un conjunto de instrucciones tpico. Realiza en detalle el diseo de la unidad, incluyendo la circuitera para el secuenciador de microprograma. En el transcurso de la unidad cinco se analizan las tcnicas que usan las computadoras para comunicarse con dispositivos de entrada y salida. Se presentan unidades de interface para mostrar cmo interactan el procesador con los perifricos externos. Se explica el procedimiento para transferencia asncrona de datos seriales paralelos. Analiza los modos de transferencia: E/S programada, transferencia iniciada por interrupcin, acceso directo a memoria y el uso de procesadores de entrada-salida

UNIDAD 1 TRANSFERENCIA DE REGISTROS Y MICRO-OPERACIONES 1.1 Lenguaje de transferencia de registros Un sistema digital es una interconexin de mdulos de hardware digital que realizan una tarea especfica de procesamiento de informacin. Los sistemas digitales varan en tamao y complejidad desde unos cuantos circuitos integrados hasta un complejo de computadoras digitales interconectadas e interactivas. El diseo de sistemas digitales utiliza de manera invariable un enfoque modular. Los mdulos se construyen a partir de componentes digitales como registros, decodificadores, elementos aritmticos y lgica de control. Los diferentes mdulos estn interconectados con los datos y las trayectorias de control comunes para formar un sistema de computadora digital. Los mdulos digitales se definen mejor por los registros que contienen y las operaciones que realizan sobre los datos que almacenan. Las operaciones que se ejecutan sobre los datos almacenados en los registros se llaman microoperaciones. Una microoperacin es una operacin bsica realizada sobre la informacin almacenada en uno o mas registros. El resultado de la operacin puede sustituir la informacin binaria anterior de un registro o puede transferirse a otro. Algunos ejemplos de microoperaciones son desplazar, contar, borrar y cargar. Algunos de los componentes digitales que se presentaron son registros que sirven para realizar microoperaciones. Por ejemplo, un contador con carga paralela puede realizar las microoperaciones de incremento y carga; un registro de desplazamiento bidireccional puede realizar las microoperaciones de desplazamiento a la derecha y a la izquierda. La organizacin interna del hardware de una computadora digital se define mejor al especificar: 1. El conjunto de registros que contiene y sus funciones. 2. La secuencia de microoperaciones que se realizan sobre la informacin binaria almacenada en los registros. 3. El control que inicia la secuencia de microoperaciones. Es posible especificar la secuencia de microoperaciones en una computadora, al explicar cada operacin en palabras, pero este procedimiento por lo general representa una extensa explicacin descriptiva. Es ms conveniente adoptar una simbologa conveniente para describir la secuencia de transferencias entre registros y las diferentes microoperaciones aritmticas y lgicas asociadas con las transferencias. El uso de smbolos en lugar de una explicacin narrativa proporciona una manera organizada y concisa para en listar las secuencias de microoperaciones en los registros y las funciones de control que las inician. La notacin simblica que se utiliza para describir las transferencias de microoperaciones entre registros se llama lenguaje de transferencia de registros. El trmino "transferencia de registros" implica la disponibilidad de circuitos lgicos de hardware que puedan efectuar una microoperacin definida y transferir el resultado de la operacin al mismo o a otro registro. La palabra "lenguaje" se toma prestada de los programadores, quienes aplican este trmino a los lenguajes de programacin. Un lenguaje de programacin es un procedimiento para escribir smbolos con el fin de especificar cierto proceso computacional. De igual manera, un lenguaje natural, como el ingls, es un sistema para escribir smbolos y combinarlos en palabras y enunciados para la comunicacin entre personas. Un lenguaje de transferencia de registros es un sistema para expresar en forma simblica, las secuencias de microoperaciones entre los registros de un mdulo digital. Es una herramienta conveniente para

describir la organizacin interna de las computadoras digitales de una manera precisa y concisa. Tambin puede usarse para facilitar el proceso de disear sistemas digitales. El lenguaje de transferencia de registros que se adopta aqu se considera lo ms sencillo posible, para que no sea difcil de memorizar. En seguida definiremos los smbolos para diferentes tipos de microoperaciones y al mismo tiempo describiremos el hardware asociado con el que se pueden llevar a cabo las microoperaciones planteadas. La denominacin simblica que se presenta en este captulo se optimizar en captulos posteriores para especificar las transferencias de registros, las microoperaciones y las funciones de control que describen la organizacin interna del hardware de las computadoras digitales. Se puede aprender con facilidad otra simbologa una vez que se familiariza uno con este lenguaje, porque la mayora de las diferencias entre los lenguajes de transferencia de registros, consisten en variaciones de los detalles ms que en el propsito general. 1.2 Transferencia entre registros Los registros de computadora estn representados por letras maysculas (en ocasiones seguidas de nmeros), para denotar la funcin del registro. Por ejemplo, el registro que contiene una direccin para la unidad de memoria, por lo general se llama un registro de direccionamiento de memoria y se designan las letras MAR por sus siglas en ingls (memory address register). Otros nombres para registros son PC (contador de programa), IR (registro de instruccin) y Rl (registro de procesador). Los flip-flops individuales en un registro de n bits estn numerados en una secuencia de O hasta n 1, comenzando desde O en la posicin de la extrema derecha y aumentando los nmeros hacia la izquierda. La figura 41 muestra la representacin de registros en forma de diagrama de bloque. La manera ms comn de representar un registro es mediante una caja rectangular con el nombre del registro dentro. Los bits individuales pueden distinguirse como en el ejemplo (b). La numeracin de bits en un registro de 16 bits puede sealarse en la parte superior de la caja, como se muestra en el ejemplo (c). Un registro de 16 bits se divide en 2 partes en el ejemplo (d). Los bits del O al 7 reciben el smbolo L (byte bajo) y los bits del 8 al 15 reciben el smbolo H (byte alto). El nombre del registro de 16 bits es PC. El smbolo PC (0-7) o Pc (L) denomina el byte de orden menor y PC (8-15) o PC (H) designa al byte de orden mayor. La transferencia de informacin de un registro a otro se representa en forma simblica mediante un operador de sustitucin. El enunciado: R2 < Rl denota una transferencia del contenido del registro Rl al registro R2. Designa la sustitucin del contenido de R2 por el contenido de Rl. Por definicin, el contenido del registro fuente Rl no cambia despus de la transferencia. Un enunciado que especifica una transferencia de registro implica que estn disponibles circuitos de la salida del registro fuente a la entrada del registro destino y que el registro destino tiene capacidad de carga paralela. Normalmente, deseamos que la transferencia ocurra slo bajo una condicin de control predeterminada. Esto puede mostrarse mediante un enunciado si, entonces Qf-then) Si (P = 1) entonces (R2 < Rl) donde P es una seal de control que se genera en la seccin de control. En ocasiones es conveniente separar las variables de control de la operacin de transferencia de registros al especificar una funcin de control. Una funcin de control es una variable booleana, que es igual a O o a 1. La funcin de control se incluye en el enunciado como sigue: P: R2~-Rl La condicin de control se termina con un signo de dos puntos. Representa la necesidad de que la operacin de transferencia sea ejecutada slo por el hardware si P = 1.

Cada enunciado escrito en notacin de transferencia de registros implica una estructura de hardware para realizar la transferencia. Se muestra el diagrama de bloque de la transferencia de Rl a R2. Las n salidas del registro Rl estn conectadas a las n entradas del registro R2. La letra n se usar para indicar cualquier cantidad de bits para el registro. Se sustituir por un nmero real cuando se conozca el tamao del registro. El registro R2 tiene una entrada de carga que activa la variable de control P. Se considera que la variable de control est sincronizada con el mismo reloj que se aplica al registro. Como se muestra en el diagrama de temporizacin, P se activa en la seccin de control mediante el flanco ascendente de un pulso de reloj en el tiempo t. La siguiente transicin positiva del reloj en el tiempo t + 1 encuentra activa la entrada de carga y las entradas de datos de R2 se cargan a su vez en el registro en paralelo. P puede regresar a O en el tiempo t + 1; de otra manera, la transferencia ocurrir con cada transicin de pulso de reloj mientras P permanece activa. Debe notarse que el reloj no se incluye como una variable en los enunciados de transferencia de registros. Se considera que todas las transferencias ocurren durante una transicin de flanco de reloj. Aunque la condicin de control P se activa inmediatamente despus del tiempo t, la transferencia real no ocurre hasta que se activa el registro mediante la siguiente transicin positiva del reloj en el tiempo t + 1. Los smbolos bsicos de la notacin de transferencia de registros se listan en la tabla 4-1. Los registros estn representados por letras maysculas y los nmeros pueden estar despus de las letras. Se usan parntesis para sealar una parte de un registro al especificar el rango de los bits o al otorgar un nombre simblico a una parte de un registro. La flecha significa una transferencia de informacin y su direccin. Se usa una coma para separar dos o ms operaciones que se ejecutan al mismo tiempo. El enunciado representa una operacin que intercambia el contenido de dos registros durante un pulso de reloj comn, siempre y cuando T = 1. Esta operacin simultnea siempre es posible con registros que tienen flip-flops activados con flancos. 1.3 Microoperaciones aritmticas Una microoperacin es una operacin elemental efectuada con los datos almacenados en los registros. Las microoperaciones que se encuentran con mayor frecuencia en las computadoras digitales se clasifican en cuatro categoras: 1. Microoperaciones de transferencia de registros que transfieren informacin binaria de un registro a otro. 2. Microoperaciones aritmticas que ejecutan operaciones aritmticas sobre datos numricos almacenados en los registros. 3. Microoperaciones lgicas que ejecutan operaciones de manipulacin de bits sobre datos no numricos almacenados en registros. 4. Microoperaciones de corrimiento que ejecutan operaciones de corrimiento sobre los datos almacenados en los registros. La microoperacin de transferencia de registros no cambia el contenido de la informacin cuando la informacin binaria pasa del registro fuente al registro destino. Los otros tres tipos de microoperaciones cambian el contenido de la informacin durante la transferencia. En esta seccin presentamos un conjunto de microoperaciones aritmticas. En las dos siguientes secciones presentamos las microoperaciones lgicas y de corrimiento.

Las microoperaciones aritmticas bsicas son suma, resta, incremento, decremento y corrimiento. Los corrimientos aritmticos se explican ms tarde junto con las microoperaciones de corrimiento. La microoperacin aritmtica definida por el enunciado R3 Rl + R2 especifica una microoperacin de suma. Declara que el contenido del registro Rl se suma al contenido del registro R2 y que la suma se transfiere al registro R3. Para implantar este enunciado con hardware necesitamos tres registros y el componente digital que ejecuta la operacin de suma. Las otras microoperaciones aritmticas bsicas se listan. La resta se lleva a cabo con mayor frecuencia, mediante la complementacin y la suma. En lugar de usar el operador menos, podemos especificar la resta mediante el siguiente enunciado: R3 Rl + R2 + 1; R2 es el smbolo para el complemento a 1 de R2. Sumar 1 al complemento a 1, produce el complemento a 2. Sumar el contenido de Rl al complemento a 2 de R2, es equivalente a Rl -R2. Las microoperaciones de incremento y decremento se representan mediante las operaciones ms-uno y menos-uno, respectivamente. Estas microoperaciones se implantan con un circuito combinacional o con un contador binario descendente. Las operaciones aritmticas de multiplicar y dividir. Estas dos son operaciones aritmticas vlidas, pero no se incluyen en el conjunto bsico de microoperaciones. El nico lugar donde estas operaciones pueden considerarse como microoperaciones es en un sistema digital, donde se ejecutan mediante un circuito combinatorio. En tal caso, las seales que realizan estas operaciones se propagan por las compuertas y el resultado de la operacin se puede transferir a un registro destino mediante un pulso de reloj, tan pronto como la seal de salida se propaga por el circuito combinatorio. En la mayora de las computadoras, la operacin de multiplicacin se efecta con una secuencia de microoperaciones de suma y de corrimiento. La divisin se ejecuta con una secuencia de microoperaciones de resta y de corrimiento. Para especificar el hardware en un caso as, se necesita una lista de enunciados que utilicen las microoperaciones bsicas de suma, resta y corrimiento. 1.4 Microoperaciones lgicas Las rnicrooperaciones lgicas especifican operaciones binarias para arreglos de bits almacenados en registros. Estas operaciones consideran cada bit de registro en forma separada y los tratan corno variables binarias. Por ejemplo, la microoperacin OR-exclusiva con el contenido de dos registros Rl y R2 se representa mediante el enunciado P: R1< R1eR2, especfica que se va a ejecutar una microoperacin lgica en los bits individuales de los registros, siempre que la variable de control P = 1. Como un ejemplo numrico considere que cada registro tiene 4 bits. Sea el contenido de Rl 1010 y el contenido de R2 1100. La microoperacin OR-exclusiva mencionada antes representa la operacin lgica: 1010 Contenido de Rl 1100 Contenido de R2 0110 Contenido de Rl despus de P = 1 El contenido de Rl, despus de la ejecucin de la microoperacin, es igual a la operacin OR-exclusiva bit a bit sobre pares de bits en R2 y valores previos de Rl. Las microoperaciones lgicas se usan rara vez en cmputos cientficos, pero son muy tiles para manipulacin de bits de datos binarios y para tomar decisiones lgicas.

Se adoptarn smbolos especiales para las microoperaciones lgicas OR, AND y complementar, para diferenciarlas de los smbolos correspondientes que se utilizan para expresar funciones booleanas. Se usar el smbolo V para denotar una microoperacin OR y el smbolo A para denotar una microoperacin AND. La microoperacin complementar es la misma que el complemento a 1 y utiliza una barra en la parte superior del smbolo que denota el nombre del registro. Al usar smbolos diferentes, ser posible diferenciar una operacin lgica y una funcin de control (o booleana). Otra razn para adoptar dos conjuntos de smbolos es la posibilidad de distinguir el smbolo + , cuando se usa para representar un ms aritmtico, de una operacin OR lgica. Aunque el smbolo + tiene dos significados, ser posible distinguirlos al identificar dnde ocurre el smbolo. Cuando aparezca en una microoperacin significar un ms aritmtico. Cuando ocurra en una funcin de control (o booleana), denotar una operacin OR. Nunca la usaremos para representar una microoperacin OR. Por ejemplo, en el enunciado: P+Q: Rl~ R2+R3, R4~ R5VR6, el smbolo + entre P y Q es una operacin OR entre dos variables binarias de una funcin de control. El smbolo + entre R2 y R3 especfica una microoperacin de suma. La microoperacin OR est representada por el smbolo entre los registros R5 y R6. Lista de microoperaciones lgicas. Existen 16 operaciones lgicas diferentes que pueden ejecutarse con dos variables binarias. Las 16 funciones booleanas de dos variables x y y se expresan en forma algebraica en la primera columna. Las 16 microoperaciones lgicas se derivan de estas funciones al sustituir la variable x por el contenido binario del registro A y la variable y por el contenido binario del registro B. Es importante comprender que las funciones booleanas listadas en la primera columna representan una relacin entre dos variables binarias x y y. Las microoperaciones lgicas listadas en la segunda columna representan una relacin entre el contenido binario de dos registros A y B. Cada bit del registro se trata como una variable binaria y la microoperacin se ejecuta en la serie de bits almacenados en el registro.

LDA: Cargar a AC

Esta instruccin transfiere la palabra de memoria especificada por la direccin efectiva a AC. Las microoperaciones necesarias para ejecutar esta instruccin son:

D2T4:DR M[AR] D2T5:AC DR,SC O

Al revisar el canal del sistema de bus notamos que no hay una trayectoria directa desde el bus hasta AC. El circuito sumador y lgico recibe informacin de DR la cual puede transferirse a AC. Por lo tanto, primero es necesario llevar la palabra de memoria a DR y despus transferir el contenido de DR a AC. La razn para no conectar el bus a las entradas de AC es el retraso que se encuentra en el circuito sumador y lgico. Se considera que el tiempo que toma leer en la memoria y transferir la palabra a travs del bus

y el circuito sumador y lgico es mayor que el tiempo de un ciclo de reloj. Al no conectar el bus a las entradas de AC podemos mantener un ciclo de reloj por microoperacin.

STA: Almacenar AC

Esta instruccin almacena el contenido de AC en la palabra de memoria especificada por la direccin efectiva. Como la salida de AC se aplica al bus y la entrada de datos de la memoria est conectada al bus, podemos ejecutar esta instruccin con una microoperacin:

D3T4:M[AR]< AC,SC< O

BUN: Brinco incondicional.

Esta instruccin transfiere el control del programa a la instruccin especificada por direccin efectiva. Debe recordarse que PC contiene la instruccin de la direccin que se va a leer de la memoria en el siguiente ciclo de instruccin. PC se incrementa en el tiempo S1 para prepararlo para la direccin de la siguiente instruccin en la secuencia del programa. La instruccin BUN permite que el programador especifique una instruccin fuera de secuencia y se dice que el programa se brinca de manera incondicional. Esta instruccin se ejecuta con una microoperacin:

D4T4:PC-AR,SC O

La direccin efectiva de AR se transfiere por el bus comn al PC. Al restablecer SC a O se transfiere el control a t0. Despus se busca y se ejecuta la siguiente instruccin de la direccin de memoria proporcionada por el nuevo valor en PC. BSA: Brincar y guardar la direccin de retorno.

Esta instruccin es til para brincar hacia una porcin del programa llamada subrutina o procedimiento. Cuando se ejecuta, la instruccin BSA almacena la direccin de la siguiente instruccin en secuencia (la

cual est disponible en PC) dentro de una posicin de la memoria especificada por la direccin efectiva. La direccin efectiva ms uno se transfiere despus a PC para servir como la direccin de la primera instruccin en la subrutina. Esta operacin se especific con la siguiente transferencia de registro:

M[AR] < PC, PC< AR+1

Un ejemplo numrico que muestra cmo se usa esta instruccin con una subrutina. Se considera que la instruccin BSA est en la memoria en la direccin 20. El bit 1 es O y la parte de la direccin de la instruccin tiene el equivalente binario de 135. Despus de las fases de bsqueda y decodificacin, PC contiene 21, que es la direccin de la siguiente instruccin en el programa (denominada direccin de retorno). AR contiene la direccin efectiva 135. Esto se muestra en la parte (a) de la figura. La instruccin BSA ejecuta la siguiente operacin numrica:

M[135] <--21, PC 135+1=136

El resultado de esta operacin se muestra en la parte (b) de la figura. La direccin de retomo 21 se almacena en la localidad de memoria 135 y el control contina con el programa de subrutina que comienza desde la direccin 136. El regreso al programa original (y la direccin 21) se consigue mediante una instruccin BUN indirecta, colocada al final de la subrutina. Cuando se ejecuta esta instruccin el control regresa a la fase indirecta para leer la direccin efectiva en la localidad 135, donde encuentra la direccin 21 que se guard antes. Cuando se ejecuta la instruccin BUN, la direccin efectiva 21 se transfiere a PC. El siguiente ciclo de la instruccin encuentra PC con el valor 21, por lo que el control sigue ejecutando la instruccin en la direccin de retorno.

Por lo general, la instruccin BSA ejecuta la funcin que se denomina llamada a subrutina. La instruccin BUN indirecta al final de la subrutina ejecuta la funcin que se denomina retomo de la subrutina. En la mayora de las computadoras comerciales, la direccin de retorno asociada con una subrutina se almacena en un registro de procesador o en una porcin de la memoria llamada pila (stack). Esto se analiza ms adelante con mayor detalle.

No es posible ejecutar la operacin de la instruccin BSA en un ciclo de reloj cuando se utiliza el bus del sistema de la computadora bsica. Para usar en forma adecuada la memoria y el bus, la instruccin BSA debe ejecutarse con una secuencia de dos microoperaciones:

D5T4: M[AR< PC,AR< AR+1 D5T5: P<AR,SC< O

La seal de temporizacin t4 inicia una operacin de escribir en memoria, coloca el contenido del PC dentro del bus, y habilita la entrada INR de AR. La operacin de escribir en memoria se completa y AR se incrementa cuando ocurre la siguiente transicin de reloj. El bus se utiliza en t5 para transferir el contenido de AR a PC.

ISZ: Incrementa y brinca si es cero.

Esta instruccin incrementa la palabra especificada por la direccin efectiva y, si el valor incrementado es igual a O, PC se incrementa en 1. El programador por lo general almacena un nmero negativo (en complemento a 2) en la palabra de memoria. Como este valor negativo se incrementa una y otra vez en uno, eventualmente alcanza el valor de cero. En ese momento, PC se incrementa en uno para saltar la siguiente instruccin en el programa.

Como no es posible incrementar una palabra dentro de la memoria, es necesario leer la palabra dentro de DR, incrementar DR y almacenar otra vez la palabra en la memoria. Esto se hace con la siguiente secuencia de microoperaciones:

D6T4: DR <

M[AR]

D6T5: DR DR+1 D6T6: M[AR] < DR, si (DR = 0) entonces (PC < P1),SC<O

1.5 Microoperaciones de Corrimiento

Las microoperaciones de corrimiento se usan para la transferencia serial de datos. Tambin se utilizan junto con operaciones aritmticas, lgicas y de procesamiento de datos. El contenido de un registro

puede correrse a la izquierda o a la derecha. Al mismo tiempo que se recorren los bits, el primer flip-flop recibe su informacin binaria de la entrada serial. Durante una operacin de corrimiento a la izquierda la entrada serial recorre un bit a la posicin de la extrema derecha. Durante una operacin de corrimiento a la derecha la entrada serial transfiere un bit a la posicin de la extrema izquierda. La informacin transferida mediante la entrada serial determina el tipo de corrimiento. Existen tres tipos de corrimientos: lgico, circular y aritmtico. Un corrimiento lgico es aquel que transfiere un O por la entrada serial. Adoptaremos los smbolos por sus siglas en ingls, shl y shr para las microoperaciones de corrimiento lgico a la izquierda y corrimiento lgico a la derecha. Por ejemplo:

Rl < shl Rl R2< shr R2

son dos operaciones que especifican un corrimiento de un bit a la izquierda del contenido del registro Rl y un corrimiento de un bit a la derecha del contenido del registro R2. El smbolo de registro debe ser igual en ambos lados de la flecha. El bit transferido a la posicin extrema por la entrada serial se considera que es O durante un corrimiento lgico. El corrimiento circular (tambin conocido como operacin de rotacin) hace circular los bits del registro por los dos extremos sin prdida de informacin. Esto se consigue al conectar la salida serial del registro de corrimiento a su entrada serial. Utilizaremos los smbolos cii y cir para el corrimiento circular a la izquierda y para el corrimiento circular a la derecha, respectivamente. La notacin simblica para las microoperaciones de corrimiento.

TABLA Microoperaciones de desplazamiento Representacin simblica Descripcin: R < shl R Corrmiento a la izquierda del registro R R< R shr R Corrimiento a la derecha del registro R ci1 R Corrimiento circular a la izquierda del registro R

R < cir R Corrimiento circular a la derecha del registro R R R ashl R Corrimiento aritmtico a la izquierda de R ashr R Corrimiento aritmtico a la derecha d R

Un corrimiento aritmtico es una microoperacin que recorre un nmero binario con signo a la derecha o a la izquierda. Un corrimiento aritmtico a la izquierda multiplica un nmero binario con signo por 2. Un corrimiento aritmtico a la derecha divide el nmero entre 2. Los corrimientos aritmticos deben dejar el bit del signo sin modificaciones porque el signo del nmero sigue siendo el mismo cuando se multiplica o divide por 2. El bit de la extrema izquierda en el registro contiene el bit de signo y los bits restantes contienen el nmero. El bit de signo es O para los nmeros positivos y 1 para los negativos. Los nmeros negativos estn en su forma de complemento a 2.

Se muestra un registro tpico de n bits. El bit R --1 de la posicin extrema izquierda contiene el bit de signo. R2 es el bit ms significativo del nmero y es el bit menos significativo. El corrimiento aritmtico a la derecha no modifica el signo y recorre el nmero (incluyendo el bit de signo) a la derecha. Por lo tanto R - i queda igual, R - 2 recibe el bit de RS1, y as sucesivamente para los otros bits en el registro. El bit en se pierde. El corrimiento aritmtico a la izquierda inserta un O en R0 y recorre todos los otros bits a la izquierda. El bit inicial R~1 se pierde y se sustituye con el bit de R 2. El signo se invierte si el bit en R1 cambia su valor despus del corrimiento. Esto sucede si la multiplicacin por 2 provoca un sobreflujo. Ocurre un sobreflujo despus de un corrimiento aritmtico a la izquierda si, al inicio, antes del corrimiento, R,,1 no es igual a - 2 Puede usarse un flip-flop V. de sobreflujo para detectar un sobreflujo en un corrimiento a la izquierda aritmtico. Si V, = O, no hay sobreflujo, pero si V, = 1, hay un sobreflujo y una inversin de signo despus del corrimiento. V, debe transferirse dentro del flip-flop de sobreflujo con el mismo pulso de reloj que ejecuta el corrimiento del registro.

1.6 Unidad de corrimiento lgico aritmtico.

En lugar de tener registros individuales ejecutando las microoperaciones en forma directa, los sistemas computacionales emplean cierta cantidad de registros de almacenamiento conectados a todas las unidades operacionales comunes, la cual se denomina unidad aritmtica-lgica, y se abrevia ALU (arithmetic logic unit). Para ejecutar una microoperacin, el contenido de los registros especificados se coloca en las entradas de la ALU comn. La ALU ejecuta una operacin y el resultado se transfiere al registro destino. La ALU es un circuito combinatorio, por lo que toda la operacin de transferencia de registros desde los registros fuente por la ALU y hasta dentro del registro destino, puede ejecutarse durante un perodo de un pulso de reloj. Las microoperaciones de corrimiento con frecuencia se ejecutan en una unidad separada, pero en ocasiones la unidad de corrimiento forma parte de la ALU general.

Los circuitos aritmticos, lgicos y de corrimiento que se presentaron en las secciones anteriores pueden combinarse en una ALU con variables de seleccin comunes. Una etapa de una unidad de corrimiento aritmtico-lgico. El subndice i representa una etapa tpica. Las entradas A y B se aplican a las unidades aritmticas y lgicas. Se selecciona una microoperacin particular con las entradas S y So Un multiplexor 4 X 1 en la salida selecciona entre una salida aritmtica E y una salida lgica en H. Los datos en el multipiexor se seleccionan con entradas 53 y 2. Las otras dos entradas de datos al muitiplexor reciben entradas As1 para la operacin de corrimiento a la derecha y A, + 1 para la operacin de corrimiento a la izquierda. Ntese que el diagrama muestra slo una etapa tpica. El circuito debe repetirse n veces para una ALU de n bits. El acarreo de salida C, +1 de una etapa aritmtica dada debe conectarse al acarreo de entrada C, de la siguiente etapa en secuencia. El acarreo de entrada a la primera etapa es el acarreo de entrada C, el cual proporciona una variable de seleccin para las operaciones aritmeticas.

Tabla de funcin para una unidad de corrimiento lgica aritmtica Seleccin de la operacin S3 S2 S1 So Cen Operacin Funcin O O O O O F=A Transferir A O O 0 0 1 F=A + 1 Incrementar A O 0 0 1 0 F=A+B Sumar O 0 0 1 1 F=A+B+1 Sumar con acarreo 0 0 1 0 0 F=A + B Restar con prstamo 0 0 1 0 1 F=A+B+l Restar O 0 1 1 0 F=A 1 Decrementar A

O 0 1 1 1 F=A TransferirA O 1 0 0 x F=AB AND 0 1 0 1 x F=AVB OR O 1 1 0 x F=AB XOR 0 1 1 1 X FA Complementar A 1 0 x x x F = shrA Corrimiento a la derecha adentro de F

1 1 x x x F=shlA Corrimiento a la izquierda adentro de F

El circuito cuya nica etapa est especificada proporciona ocho operaciones aritmticas, cuatro operaciones lgicas, y dos operaciones de desplazamiento. Cada operacin se selecciona con las cinco variables S3, S2, S1, S0 y Cen. El acarreo de entrada Cen se utiliza para seleccionar slo una operacin aritmtica.

UNIDAD 2

ORGANIZACIN BASICA Y DISEO DEL COMPUTADOR

2.1 Cdigos de instruccin

En este captulo presentamos una computadora bsica y mostramos cmo puede especificarse su operacin con enunciados de transferencia de registros. La organizacin de la computadora se define mediante sus registros internos, la estructura de temporizacin y control, y el conjunto de instrucciones que utiliza. Despus se lleva a cabo, en detalle, el diseo de la computadora. Aunque la computadora bsica que se presenta en este captulo es muy pequea en comparacin con las computadoras comerciales, tiene la ventaja de ser lo suficientemente simple para mostrar el proceso de diseo sin demasiadas complicaciones.

La organizacin interna de un sistema digital est definida por la secuencia de microoperaciones que ejecuta sobre los datos almacenados en sus registros. La computadora digital de propsito general puede ejecutar varias microoperaciones y, adems, puede recibir instrucciones acerca de la secuencia especfica de operaciones que debe realizar. El usuario de una computadora puede controlar el proceso mediante un programa. Un programa es un conjunto de instrucciones que especifican las operaciones, operandos y la secuencia mediante la cual tiene que ocurrir el procesamiento. La tarea de procesamiento de datos puede alterarse al especificar un nuevo programa con instrucciones diferentes o especificando las mismas instrucciones con otros datos. Una instruccin de computadora es un cdigo binario que especifica una secuencia de microoperaciones para la computadora. Los cdigos de instrucciones y los datos se almacenan en la memoria. La computadora lee cada instruccin de la memoria y la coloca en un registro de control. Entonces el control interpreta el cdigo binario de la instruccin y procede a ejecutarlo mediante una secuencia de microoperaciones. Cada computadora tiene un conjunto de instrucciones nico. La capacidad de almacenar y ejecutar instrucciones, el concepto de programa almacenado, es la propiedad ms importante de una computadora de uso general.

Un cdigo de instruccin es un grupo de bits que instruye a la computadora sobre cmo ejecutar una operacin especfica. Por lo general, se divide en partes y cada una tiene una interpretacin propia. La parte ms bsica de un cdigo de instruccin es su parte de operacin. El cdigo de operacin de una instruccin es un grupo de bits que define operaciones como sumar, restar, multiplicar, desplazar y complementar. El nmero de bits requerido para el cdigo de operacin de una instruccin depende de la cantidad total de operaciones disponibles en la computadora. El cdigo de operacin debe estar

formado de por lo menos n bits para un conjunto dado de 2 (o menor) operaciones diferentes. Como ejemplo, consideremos una computadora con 64 operaciones diferentes, una de las cuales es la operacin sumar (ADD). El cdigo de operacin consta de seis bits, con una configuracin de bits 110010 asignada a la operacin ADD. Cuando este cdigo de operacin se decodifca en la unidad de control, la computadora emite seales de control para leer un operando de la memoria y sumar el operando a un registro del procesador.

En este punto, debemos reconocer la relacin entre una operacin de computadora y una microoperacin. Una operacin es parte de una instruccin almacenada en la memoria de la computadora. Es un cdigo binario que le dice a la computadora que ejecute una operacin especfica. La unidad de control recibe la instruccin de la memoria e interpreta los bits de cdigo de la operacin. Despus emite una secuencia de seales de control para iniciar microoperaciones en los registros internos de la computadora. Para cada cdigo de operacin, el control enva una secuencia de microoperaciones necesarias para la implantacin del hardware de la operacin especificada. Por esta razn, a veces un cdigo de operacin se denomina macrooperacin, porque especifica un conjunto de microoperaciones.

La parte operativa de un cdigo de instruccin especifica la operacin que se va a realizar. Esta operacin debe ejecutarse sobre algunos datos almacenados en los registros del procesador o en la memoria. Por lo tanto, un cdigo de instruccin debe especificar no slo la operacin, sino tambin los registros o las palabras de la memoria donde se van a encontrar los operandos, al igual que el registro o la palabra de memoria donde se va a almacenar el resultado. Pueden especificarse palabras de memoria en los cdigos de instruccin mediante sus direcciones. Pueden especificarse registros del procesador al asignar a la instruccin otro cdigo binario de k bits que especifique uno de 2 registros. Existen muchas variaciones para "componer el cdigo binario de instrucciones, y cada computadora tiene su propio formato de cdigo de instrucciones particular. Los diseadores de computadoras formulan los formatos de cdigo de instrucciones y especifican la arquitectura de la computadora. En este captulo elegimos un cdigo de instruccin particular para explicar la organizacin y el diseo bsico de las computadoras digitales.

2.2 Registros de computadora

Por lo general, las instrucciones de computadora se almacenan en posiciones de memoria consecutivas y se ejecutan de manera secuencial, una a la vez. El control lee una instruccin de una direccin especfica de la memoria y la ejecuta. Despus contina leyendo la siguiente instruccin en secuencia y la ejecuta y as sucesivamente. Este tipo de secuencia de instrucciones necesita un contador para calcular la direccin de la siguiente instruccin despus de que se termina la ejecucin de la instruccin presente. Tambin es necesario proporcionar un registro en la unidad de control para almacenar el

cdigo de instruccin despus de que se lee de la memoria. La computadora necesita los registros del procesador para manipular datos y un registro para contener una direccin de memoria.

La unidad de memoria tiene una capacidad de 4096 palabras y cada palabra contiene 16 bits. Se necesitan doce bits de una palabra de instruccin para especificar la direccin de un operando. Esto deja tres bits para la parte de operacin de la instruccin y un bit para especificar un direccionamiento directo o un indirecto. El registro de datos (DR) contiene el operando que se lee de la memoria. El registro acumulador (AC) es un registro de procesamiento de propsito general. La instruccin que se lee de la memoria se coloca en el registro de instruccin (IR). Se utiliza el registro temporal (TR) para contener los datos temporales durante el procesamiento.

TABLA Lista de registros para la computadora bsica: Smbolo Cantidad de registro de bits Nombre del registro Funcin DR 16 Registro de datos Contiene operando de la memoria

AR 12 Registro de direccin Contiene la direccin para la memoria

AC 16 Acumulador Registro del Procesador

IR 16 Registro de instruccin Contiene la cdigo de instruccin

Pc 12 Contador de programa Contiene la Direccin de Instruccin

TR 16 Registro temporal Contiene datos Temporales INPR 8 Registro de entrada Contiene carcter de Entrada

OUTR 8 Registro de salida Contiene carcter de Salida

El registro de direccionamiento (AR) de la memoria tiene 12 bits porque ste es el ancho de una direccin de memoria. El contador de programa (PC) tambin tiene 12 bits y contiene la direccin de la siguiente instruccin que se va a leer de la memoria despus de que se ejecute la instruccin presente.

El PC recorre una secuencia de conteo y hace que la computadora lea instrucciones secuenciales almacenadas previamente en la memoria. Las palabras de instruccin se leen y se ejecutan en secuencia, a menos que se encuentre una instruccin de transferencia del programa. Una instruccin de transferencia del programa solicita una transferencia a una instruccin no consecutiva en el programa. La parte de direccin de una instruccin de transferencia del programa se transfiere al PC para convertirse en la direccin de la siguiente instruccin. Para leer una instruccin, se toma el contenido del PC como la direccin para la memoria y se inicia un ciclo de lectura de memoria. Despus el PC se incrementa en uno, para que contenga la direccin de la siguiente instruccin en secuencia.

Se usan dos registros para entrada y salida. El registro de entrada (INPR) recibe un carcter de 8 bits de un dispositivo de entrada. El registro de salida (OUTR) contiene un carcter de 8 bits para un dispositivo de salida.

Bus comn del sistema

La computadora bsica tiene ocho registros, una unidad de memoria y una unidad de control. Deben proporcionarse trayectorias para transferir informacin de un registro a otro y entre la memoria y el registro. La cantidad de lneas ser excesiva si se hacen conexiones entre la salida de cada registro y las entradas de los otros registros. Un esquema ms eficiente para transferir informacin en un sistema con muchos registros es usar un bus comn. Hemos mostrado cmo construir un sistema de bus comn utilizando multiplexores o compuertas de buffer de tres estados. La conexin de los registros y de la memoria de la computadora bsica a un sistema de bus comn.

Las salidas de siete registros y de la memoria estn conectadas al bus comn. La salida especfica que se selecciona para las lneas del bus en cualquier momento dado, est determinada por el valor binario de las variables de seleccin S2, S1 y So El nmero que se encuentre adelante de cada salida muestra el equivalente decimal de la seleccin binaria requerida. Por ejemplo, el nmero que est adelante de la salida de DR es 3. Las salidas de 16 bits de DR se colocan en las lneas del bus cuando S2S1S0 = 011 porque este es el valor binario del decimal 3. Las lneas del bus comn estn conectadas a las entradas de cada registro y las entradas de datos de la memoria. El registro particular cuya entrada LD (cargar) est habilitada recibe los datos del bus durante la siguiente transicin del pulso de reloj. La memoria recibe el contenido del bus cuando se activa su entrada de escritura. La memoria coloca su salida de 16 bits en el bus cuando se activa la entrada de lectura y S2S150 = 111.

Cuatro registros tienen 16 bits DR, AC, IR y TR. Dos registros, AR y PC, tienen 12 bits cada uno porque contienen direcciones de memoria. Cuando el contenido de AR o PC se aplica al bus comn de 16 bits, los cuatro bits ms significativos se establecen en 0. Cuando AR o PC reciben informacin del bus, slo se transfieren al registro los 12 bits menos significativos.

El registro de entrada INPR y el registro de salida OUTR tienen 8 bits cada uno y comunican con los 8 bits menos significativos del bus. INPR est conectado para proporcionar informacin al bus pero OUTR slo puede recibir informacin desde el bus. Esto se debe a que INPR recibe un carcter desde un dispositivo de entrada que despus se transfiere a AC. OUTR recibe un carcter de AC y lo enva a un dispositivo de salida. No hay transferencia de OUTR a cualquiera de los otros registros.

Las 16 lneas del bus comn reciben informacin de seis registros y de la unidad de memoria. Las lneas del bus estn conectadas a las entradas de seis registros y a la memoria. Cinco registros tienen tres entradas de control: LD (cargar), INR (incrementar) y CLR (borrar). Este tipo de registro es equivalente a un contador binario con carga paralela y borrado sincrnico similar al que se muestra en la figura

La operacin incrementar se consigue al habilitar la entrada de cuenta en el contador. Dos registros tienen una sola entrada LD.

Los datos de entrada y de salida de la memoria estn conectados al bus comn, pero la direccin de memoria est conectada a AR. Por lo tanto, siempre debe utilizarse AR para especificar una direccin de memoria. Al utilizar un registro nico para direccionamiento se elimina la necesidad de un bus de direcciones, que de otra manera sera necesario. Puede especificarse el contenido de cualquier registro para la entrada de datos de la memoria durante una operacin. De igual manera, cualquier registro puede recibir los datos de la memoria despus de una operacin de lectura, excepto AC.

Las 16 entradas de AC provienen de un circuito lgico y sumador. Este circuito tiene tres conjuntos de entradas. Un conjunto de entradas de 16 bits viene de las salidas de AC. Se utiliza para efectuar microoperaciones de registro como el complemento AC y el corrimiento AC. Otro conjunto de entradas de 16 bits viene del registro de datos DR. Las entradas de DR y AC se utilizan para microoperaciones aritmticas y lgicas, como sumar DR a AC o aplicar AND de DR a AC. El resultado de una suma se transfiere a AC y el acarreo final de una suma se transfiere al flip-flop E (el bit de extensin de AC). Un tercer conjunto de entradas de 8 bits viene del registro de entrada INPR.

Ntese que el contenido de cualquier registro puede aplicarse al bus y puede ejecutarse una operacin en el sumador y en el circuito lgico durante el mismo ciclo de reloj. La transicin de reloj al final del ciclo transfiere el contenido del bus al registro destino designado y la salida del sumador y circuito lgico a AC. Por ejemplo, las dos microoperaciones DR AC y AC<-DR

pueden ejecutarse al mismo tiempo. Esto puede hacerse al colocar el contenido de AC en el bus (con S251S0 = 100), habilitando la entrada LD (cargar) de DR, transfiriendo el contenido de DR a travs del contenido del sumador y circuito lgico hacia AC y habilitando la entrada LD (cargar) de AC, todo durante este mismo ciclo de reloj. Las dos transferencias ocurren durante la llegada de la transicin de pulso de reloj al final del ciclo de reloj.

2.3 Instrucciones de computadora

Cada formato de la computadora tiene 16 bits. La parte del cdigo de operacin de la instruccin contiene tres bits y el significado de los 13 bits restantes depende del cdigo de operacin que se encuentre. Una instruccin de referencia a memoria utiliza 12 bits para especificar una direccin y 1 bit para especificar el modo de direccionamiento es igual a O para una direccin directa y a 1 para una direccin indirecta. Las instrucciones de referencia a registros se reconocen mediante el cdigo de operacin 111 con un O en el bit de la extrema izquierda (bit 15) de la instruccin. Una instruccin de referencia al registro especifica una operacin o una prueba del registro AC. No se necesita un operando de la memoria, por lo tanto los otros 12 bits se utilizan para especificar la operacin o prueba que se va a ejecutar. De igual forma, una instruccin de entrada-salida no necesita una referencia a memoria y se reconoce por el cdigo de operacin 111 con 1 en el bit de la extrema izquierda de la instruccin. Los 12 bits restantes se utilizan para especificar el tipo de operacin de entrada-salida o la prueba ejecutada.

El tipo de instruccin se reconoce mediante el control de computadora de los cuatro bits en las posiciones de la 12 a la 15 de la instruccin. Si los tres bits del cdigo de operacin en las posiciones de la 12 a la 14 no son iguales a 111, la instruccin es del tipo de referencia a memoria y el bit de la posicin 15 se toma como el modo de direccionamiento 1. S el cdigo de operacin de 3 bits es igual a 111, el control revisa el bit en la posicin 15. Si este bit es O, la instruccin es del tipo de referencia a registro. Si el bit es 1, la referencia es del tipo de entrada-salida. Ntese que el bit de la posicin 15 del cdigo de instruccin est representado mediante el smbolo 1, pero no se utiliza como un bit de modo cuando el cdigo de operacin es igual a 111.

Slo se utilizan tres bits de la instruccin para el cdigo de operacin. Puede parecer que la computadora est limitada a un mximo de ocho operaciones distintas. Sin embargo, como las instrucciones con referencia a registro y de entrada-salida utilizan los 12 bits restantes como parte del cdigo de operacin, la cantidad total de instrucciones puede exceder de ocho. De hecho, el nmero total de instrucciones escogidas para la computadora bsica es igual a 25.

Las instrucciones para la computadora se listan. La representacin simblica es una palabra de tres letras y significa una abreviatura destinada a los programadores y los usuarios. El cdigo hexadecimal es igual al nmero hexadecimal del cdigo binario utilizado para la instruccin. Al usar el equivalente hexadecimal reducimos los 16 bits de un cdigo de instruccin a cuatro dgitos, donde cada dgito hexadecimal es equivalente a cuatro bits. Una instruccin con referencia a memoria tiene una parte de direccin de 12 bits. La parte de direccionamiento est representada por tres x y tiene validez para los tres dgitos hexadecimales que corresponden a la direccin de 12 bits. El ltimo bit de la instruccin est representado por el smbolo 1. Cuando 1 = O, los ltimos cuatro bits de una instruccin tienen un dgito hexadecimal equivalente de O a 6, dado que el ltimo bit es O. Cuando 1 = 1, el dgito hexadecimal equivalente de los ltimos cuatro bits de la instruccin vara de 8 a E, porque el ltimo bit es 1.

Las instrucciones con referencia a registro utilizan 16 bits para especificar una operacin. Los cuatro bits de la extrema izquierda son siempre 0111, lo cual es el equivalente al hexadecimal 7. Los otros dgitos hexadecimales proporcionan el equivalente binario de los 12 bits restantes. Las instrucciones de entrada-salida tambin utilizan todos los 16 bits para especificar una operacin. Los ltimos cuatro bits son siempre 1111, el equivalente al hexadecimal .

2.4 Temporizacin y control

La temporizacin de todos los registros de la computadora bsica est controlada por un generador de reloj maestro. Los pulsos de reloj se aplican a todos los flip-flops y registros del sistema, incluyendo los de la unidad de control. Los pulsos de reloj no cambian el estado de un registro, a menos que el registro est habilitado mediante una seal de control. Las seales de control se generan en la unidad de control y proporcionan entradas de control para los multiplexores del bus comn, entradas de control en los registros del procesador, y microoperaciones para el acumulador.

Existen dos tipos principales de organizaciones de control: control por cableado y control miroprogramado. En la organizacin por cableado la lgica de control se logra mediante compuertas, flip-flops, decodificadores y otros circuitos digitales.

Esto tiene la ventaja de que puede utilizarse para, reroducir un modo de operacin rpido. En la organizacin microprogramacin de informacin de control est almacenada en una memoria de control.

La memoria de control est programada para iniciar la secuencia de microoperaciones requerida. Un control por cableado, como indica su nombre, necesita cambios en la instalacin de cableado entre los diversos componentes, s el diseo va a modificarse o cambiarse. En el control microprogramado cualquier cambio o modificaciones requeridos puede hacerse actualizando el programa en la memoria de control. En esta seccin se presenta un control por cableado para la computadora bsica. Una unidad de control microprogramada para una computadora similar.

Una instruccin leda de la memoria se coloca en el registro de la instruccin presente (IR). La posicin de este registro en el sistema de bus comn. El registro de la instruccin presente, donde est dividido en tres partes: el bit 1, el cdigo de operacin, y los bits de O a 11. El cdigo de operacin en los bits del 12 al 14 se decodifica con un decodificador 3 X 8. Las ocho salidas de este decodificador se representan mediante los smbolos D0 a D7. El nmero decimal en el subndice es equivalente al valor binario del cdigo de operacin correspondiente. El bit 15 de la instruccin se transfiere a un flp-flop representado por el smbolo.

Los bits de O al 11 se aplican en las compuertas lgicas de control. El contador secuencial de 4 bits puede contar en binario del O al 15. Las salidas del contador se decodifican en 16 seales de temporizacin de t0 a t15. Despus, se derivar la lgica interna de las compuertas de control, cuando se considere en detalle el diseo de la computadora.

2. El contador secuencial SC puede incrementarse o limpiarse en forma sncrona. La mayor parte del tiempo, el contador se incrementa para proporcionar la secuencia de seales de temporzacin del decodificador 4 X 16. De vez en cuando, el contador se borra a O, haciendo que la siguiente seal de temporizacin activa sea t0. Por ejemplo, consideremos el caso en que SC se incrementa para proporcionar las seales de temporizacin t0, t1, t2, t3, y t4 en secuencia. En el tiempo t4, SC se borra a O s est activada la salida D3 del decodificador. Esto se expresa en forma simblica mediante el enunciado

D3T4: SC

El diagrama de temporizacn muestra la relacin de tiempo de las seales de control. El contador secuencial SC responde a la transicin positiva del reloj. Al principio, la entrada CLR de SC est activa. La

primera transicin positiva del reloj borra SC a O, lo cual a su vez activa la seal de temporizacin t0 del decodificador. t0 est activa durante un ciclo de reloj. La transicin de reloj positiva t0 en el diagrama activar solamente aquellos registros cuyas entradas de control estn conectadas a la seal de temporizacin t0. SC se incrementa con cada transicin de reloj positiva, a menos que su entrada CLR est activa. Esto produce las secuencias y seales de temporzacin t1, t2, t3, t4 y as sucesivamente, segn se muestra en el diagrama. (Ntese la relacin entre la seal de temporizacin y la transicin de reloj positiva correspondiente.) Si SC no se borra, las seales de temporizacin continuarn con t5, t6 hasta t15 y de regreso a t0.

Las ltimas tres ondas muestran cmo se borra SC cuando D3t4 = 1. La salida D3 del decodificador de operacin se activa al final de la seal de temporizacin t2. Cuando la seal de temporzacin t4 se activa, tambin lo hace la salida de la compuerta AND que implanta la funcin de control D3t4. Esta seal se aplica a la entrada CLR de SC. En la siguiente transicin de reloj positiva (la marcada con en el diagrama) el contador se pasa a O. Esto hace que se active la seal de temporizacin t0 en lugar de t1, que podra activarse si SC se incrementara en lugar de borrarse.

Un ciclo de lectura o de escritura se iniciar con un flanco ascendente de una seal de temporizacin. Se considerar que el tiempo de un ciclo de memoria es menor que un tiempo de ciclo de reloj. De acuerdo con esta suposicin, un ciclo de lectura o de escritura iniciado por una seal de temporizacin se terminar cuando el siguiente pulso de reloj llegue a su posicin de transicin positiva. Despus, se usar la transicin de reloj para cargar la palabra de memoria en un registro. Esta relacin de temporizacin no es vlida en muchas computadoras porque el tiempo del ciclo de memoria, por lo general, dura ms que el ciclo del reloj del procesador. En tal caso es necesario proporcionar ciclos de espera en el procesador hasta que est disponible la palabra de memoria. Para facilitar la presentacin, consideremos que un periodo de espera no es necesario en la computadora bsica. Para comprender por completo la operacin de la computadora, es crucial entender la relacin de temporizacin entre la transicin de reloj y las seales de temporizacin. Por ejemplo, el enunciado de transferencia de registro

T0: AR PC

especifica una transferencia del contenido de PC a AR, si est activa la seal de temporzacin T0. T0 est activa durante todo un intervalo de ciclo de reloj. Durante este tiempo, el contenido de PC se coloca dentro del bus (con S2S1SO = 010) y se habilita la entrada LD (cargar) de AR. La transferencia real no ocurre hasta el final del ciclo de reloj, cuando el reloj llega a una transicin positiva. Esta misma transicin de reloj positiva incrementa el contador secuencial SC de 0000 a 0001. El siguiente ciclo de reloj tiene a activo y t0 inactivo.

2.5 Ciclo de instruccin

Un programa residente en la unidad de memoria de la computadora est formado por una secuencia de instrucciones. El programa se ejecuta en la computadora recorriendo un ciclo para cada instruccin. A su vez, cada ciclo de instruccin se divide en una secuencia de subciclos o fases. En la computadora bsica cada ciclo de instruccin consiste en las siguientes fases:

1. Buscar una instruccin de la memoria. 2. Decodificar la instruccin. 3. Leer la direccin efectiva de la memoria si la instruccin tiene una direccin indirecta. 4. Ejecutar la instruccin.

Cuando se termina el paso 4, el control regresa al paso 1 para buscar, decodificar y ejecutar la siguiente instruccin. Este proceso contina en forma indefinida a menos que se encuentre una instruccin HALT (alto).

Bsqueda y decodificacin Al principio, el contador de programa PC est cargado con la direccin de la primera instruccin del programa. El contador secuencial SC se borra a 0, proporcionando una seal de temporizacin codificada T0. Despus de cada pulso de reloj, SC se incrementa en uno, para que las seales de temporizacin recorran una secuencia T0, T1, S2 y as sucesivamente. Las mcrooperaciones para las fases de bsqueda y decodificacin. pueden especificarse mediante los siguientes enunciados de transferencia de registro.

T0: AR4E PC T1: IR M[AR], PC< PC+1

T2: D0,..., D7

Decodificar IR(12 14), AR

IR(O--1 IR(15)

Como slo AR est conectada a las entradas de direccionamiento de la memoria, es necesario transferir la direccin del PC a AR durante la transicin de reloj asociada con la seal de temporizacin t0. Despus, se coloca la instruccin de leer de la memoria en el registro de instruccin presente IR, con la transicin de reloj asociada a la seal de temporizacin t1. Al mismo tiempo, PC se incrementa en uno a fin de preparar para la direccin de la siguiente instruccin en el programa. En el tiempo se decodifica el cdigo de operacin en IR, el bit indirecto se transfiere al flip-flop 1 y la parte de la direccin de la instruccin se transfiere a AR. Ntese que SC se incrementa despus de cada pulso de reloj para producir la secuencia t0, t1 y t2.

Se muestra cmo se implantan los primeros dos enunciados de transferencia de registro en el canal del sistma de bus. Con el fin de proporcionar la trayectoria de datos para la transferencia del PC a AR, se debe aplicar una seal de temporizacin para obtener la siguiente conexion:

1. Colocar el contenido del PC dentro del bus al hacer que las entradas de seleccin de bus S2S1SO sean iguales a 010. 2. Transferir el contenido del bus a AR al habilitar la entrada LD de AR.

La siguiente transicin de reloj inicia la transferencia de PC a AR porque t0= 1. Para cumplir el segundo enunciado es necesario usar la seal de temporizacin t1, con el fin de proporcionar las conexiones siguientes en el canal del sistema de bus.

1. Habilitar la entrada de lectura de la memoria. 2. Colocar el contenido de la memoria dentro del bus al hacer que S2,S1,S0=111. 3. Transferir el contenido del bus a IR al habilitar la entrada LD de IR. 4. Incrementar PC al habilitar la entrada INR de PC.

La siguiente transicin de reloj inicia las operaciones de leer e incrementar porque t1 = 1.

Determinacin del tipo de instruccin

La seal de temporizacin que est activa despus de la decodificacin es t3. Durante el tiempo t3, la unidad de control determina el tipo de instruccin que se acaba de leer de la memoria. El diagrama de flujo presenta una configuracin inicial para el ciclo de instruccin y muestra cmo el control determina el tipo de instruccin despus de la decodificacin. Los tres tipos de instruccin posibles de que se dispone en la computadora bsica.

La salida del decodificador D7 es igual a 1 si el cdigo de operacin es igual al 111 binario.

Determinamos que si D7 = 1, la instruccin debe ser del tipo de referencia a registro o de entrada-salida. Si = 0, el cdigo de operacin debe ser uno de los otros siete valores de 000 a 110, especificando una instruccin de referencia a memoria. Despus el control revisa el valor del primer bit de la instruccin, el cual est ahora disponible en el flip-flop 1. Si D7 = O e 1 = 1, tenemos una instruccin de referencia a memoria con un direccionamiento indirecto. Entonces es necesario leer la direccin efectiva de la memoria. La microoperacin para la condicin de direccionamiento indirecto se puede representar mediante el enunciado de transferencia de registros

AR< MIARI

Al principio AR contiene la parte de direccin de la instruccin. Esta direccin se utiliza durante la instruccin de lectura de memoria. La palabra en la direccin proporcionada por AR se lee de la memoria y se coloca en el bus comn. Despus, se habilita la entrada LD de AR, para recibir la direccin indirecta que reside en los 12 bits menos significativos de la palabra de memoria.

Los tres tipos de instrucciones se subdividen en cuatro trayectorias separadas. La operacin seleccionada se activa con la transicin de reloj asociada con la seal de temporizacin t3. Esto puede representarse como sigue:

D7IT3: AR< M[ARI

D7II T3: Nada D7I T3: Ejecutar una instruccin de referencia D7 IT3: Ejecutar una instruccin de entrada salida

Cuando se encuentra una instruccin de referencia a memoria con 1 = O no es necesario hacer nada porque la direccin efectiva ya est en AR. Sin embargo, el contador secuencial SC debe incrementarse cuando D 7T3 = 1, para que pueda continuarse la ejecucin de la instruccin de referencia a memoria con la variable de temporizacin T4. Puede ejecutarse una instruccin de referencia a registro o de entrada-salida mediante el reloj asociado con la seal de temporizacin T3. Despus de ejecutarse la instruccin, se borra SC a O y el control regresa a la fase de bsqueda con T0 = 1.

Ntese que el contador secuencial SC se incrementa o se borra a O con cada transicin de reloj positiva. Adoptaremos la norma de que si SC se incrementa, no escribiremos el enunciado SC - SC + 1, pero estar implcito que el control pasa a la siguiente seal de temporizacin en secuencia. Cuando se va a borrar SC, incluiremos el enunciado SC O. Las transferencias de registros necesarias para la ejecucin de las instrucciones de referencia a registros se presentan en esta seccin. En la siguiente seccin se explican las instrucciones de referencia a memoria.

Instrucciones de referencia a registros

El control reconoce las instrucciones de referencia a registros cuando D7 = 1 - e 1 = O. Estas instrucciones utilizan los bits del O al 11 del cdigo de instruccin para especificar una de las 12 instrucciones. Estos 12 bits estn disponibles en IR(O-11). Tambin se transfirieron a AR durante el tiempo t2. Las funciones de control y las microoperaciones para las instrucciones de referencia a registro. Estas instrucciones se ejecutan con la transicin de reloj asociada con la variable de temporizacin T3. Cada funcin de control necesita la relacin booleana D7I t3 la cual, por conveniencia, representaremos con el smbolo r. La funcin de control se distingue por uno de los bits en IR (0-11). Al asignar el smbolo B11 al bit i de IR, todas las funciones de control se pueden representar con sencillez mediante rB11. Por ejemplo, la instruccin CLA tiene el cdigo hexadecimal 7800 el cual da el binario equivalente 0111 100000000000. El primer bit es un cero y es equivalente a 1 . Los siguientes tres bits constituyen el cdigo de operacin y se reconocen de la salida del decodificador D7. El bit 11 en IR es 1 y se reconoce de B11. La funcin de control que inicia la microoperacin para esta instruccin es D71 T3B11 = rB11. La ejecucin de una instruccin de referencia a registro se termina en el tiempo 7I 3.

El contador secuencial SC se borra a O y el control regresa a buscar la siguiente instruccin con la seal de temporizacin t0.

Las primeras siete instrucciones de referencia a registro ejecutan las microoperaciones de borrar, complementar, corrimiento circular e incrementar sobre los registros AC o E. Las siguientes cuatro instrucciones provocan un brinco de la siguiente instruccin en secuencia cuando se satisface una condicin establecida. La instruccin de brinco se ejecuta al incrementar la PC una vez ms (adems, se incrementa durante la fase de bsqueda en el tiempo t1). Los enunciados de control de condicin deben reconocerse como parte de las condiciones de control. AC es positivo cuando el bit de signo en AC(15) = O; es negativo cuando AC(15) = 1. El contenido de AC es cero (AC = O) si todos los flip-flops del registro son cero. La instruccin HLT borra un flip-flop de inicio-alto 5 y detiene el funcionamiento del contador secuencial. Para restablecer la operacin de la computadora, el flip-flop inicio-alto debe iniciarse en forma manual.

2.6 Instrucciones de referencia a memoria

Para especificar las microoperaciones que se requieren para la ejecucin de cada instruccin, es necesario que la funcin que se pretende ejecutar se defina con precisin en la cual se listan las instrucciones, encontramos que algunas tienen una descripcin ambigua. Esto se debe a que, por lo general, la explicacin de una instruccin con palabras es extensa y no hay espacio disponible en la tabla para su explicacin. Ahora mostraremos que la funcin de las instrucciones de referencia a memoria puede definirse en forma precisa mediante la notacin de transferencia a registros.

La tabla lista las siete instrucciones de referencia a memoria. La salida decodificada Di para i = 0, 1, 2, 3, 4, 5 y 6 del decodificador de operacin que pertenece a cada instruccin se incluye en la tabla. La direccin efectiva de la instruccin est en el registro de direccionamiento AR y se coloc ah durante la seal de temporizacin 1 2 cuando 1 = O o durante la seal de temporizacin t3 cuando 1 = 1. La ejecucin de las instrucciones de referencia a memoria comienza con la seal de temporizacin T4. La descripcin simblica de cada instruccin se especifica en la tabla en trminos de flotacin de transferencia de registros. La ejecucin real de la instruccin en el canal del sistema de bus requerir una secuencia de microoperaciones. TABLA Instrucciones de referencia a memoria Decodificador Smbolo de operacin Descripcin simblica

AND Do AC<-AC A M[AR] ADD D1 AC<-AC+M[AR], E4-C-salir, LDA D2 AC<-M[AR] STA D3 M[AR]<-AC BUN D4 PC-AR BSA D5 M[AR]< PC, PC-AR+1 ISZ D6 M(AR]*-M[AR]+1, Si M[AR] +1 =entonces PC < PC + 1 Esto es porque los datos almacenados en la memoria no pueden procesarse en forma directa. Los datos deben pasarse de la memoria a un registro donde pueden ser operados sobre circuitos lgicos. Ahora explicamos la operacin de cada instruccin y hacemos una lista de las funciones de control y microoperaciones necesarias para su ejecucin. Al final de esta seccin se presenta un diagrama de flujo que resume todas las microoperaclones.

Ejecucin de la instruccin AND a AC

Esta es una instruccin que ejecuta la operacin lgica AND sobre pares de bits en AC y la palabra de memoria especificada mediante la direccin efectiva. El resultado de la operacin se transfiere a AC. Las microoperacones que ejecuta esta instruccin son:

D0T4: DR M[AR] D0T5: AC< ACADR, SC< O

La funcin de control para esta instruccin utiliza el decodificador de operacin D0 porque la salida del decodificador est activa cuando la instruccin tiene una operacin AND cuyo valor de cdigo binario es 000. Se necesitan dos seales de temporizacin para ejecutar la instruccin. La transicin de reloj asociada con la seal de temporizacin T4 transfiere el operando de la memoria dentro de DR. La transicin de reloj asociada con la siguiente seal de temporizacin transfiere a AC el resultado de la operacin lgica AND entre el contenido de DR y AC. La misma transicin de reloj pasa SC a O, al transferir el control a la seal de temporizacin T0 para comenzar un nuevo ciclo de instruccin.

Ejecucin de la instruccin ADD a AC

Esta instruccin suma el contenido de la palabra de memoria especificada por la direccin efectiva al valor de AC. La suma se transfiere dentro de AC y el acarreo de salida C,S1 se transfiere al flip-flop E (extensin del acumulador). Las microoperaciones para ejecutar la instruccin son

D1T4: DR <

M[AR]

D1T5: AC< AC+DR, E< Q1, SC--O

Se usan otra vez las mismas dos seales de temporzacin, t4 y t5, pero con el decodificador de operacin D1 en lugar de D0, el cual se utiliz para la instruccin AND. Despus de que se busca la instruccin en la memoria y se decodifica, slo estar activa una salida del decodificador de operacin y esa salida determina la secuencia de microoperaciones que sigue el control durante la ejecucin de la instruccin de referencia a memoria.

LDA: Cargar a AC

Esta instruccin transfiere la palabra de memoria especificada por la direccin efectiva a AC. Las microoperaciones necesarias para ejecutar esta instruccin son

D2T4:DR M[AR] D2T5:ACDR,SC O

Al revisar el canal del sistema de bus notamos que no hay una trayectoria directa desde el bus hasta AC. El circuito sumador y lgico recibe informacin de DR la cual puede transferirse a AC. Por lo tanto, primero es necesario llevar la palabra de memoria a DR y despus transferir el contenido de DR a AC. La razn para no conectar el bus a las entradas de AC es el retraso que se encuentra en el circuito sumador y lgico. Se considera que el tiempo que toma leer en la memoria y transferir la palabra a travs del bus

y el circuito sumador y lgico es mayor que el tiempo de un ciclo de reloj. Al no conectar el bus a las entradas de AC podemos mantener un ciclo de reloj por microoperacin.

STA: Almacenar AC

Esta instruccin almacena el contenido de AC en la palabra de memoria especificada por la direccin efectiva. Como la salida de AC se aplica al bus y la entrada de datos de la memoria est conectada al bus, podemos ejecutar esta instruccin con una microoperacin:

D3T4:M[AR]< AC,SC< O

BUN: Brinco incondicional.

Esta instruccin transfiere el control del programa a la instruccin especificada por direccin efectiva. Debe recordarse que PC contiene la instruccin de la direccin que se va a leer de la memoria en el siguiente ciclo de instruccin. PC se incrementa en el tiempo S1 para prepararlo para la direccin de la siguiente instruccin en la secuencia del programa. La instruccin BUN permite que el programador especifique una instruccin fuera de secuencia y se dice que el programa se brinca de manera incondicional. Esta instruccin se ejecuta con una microoperacin:

D4T4:PC-AR,SC O

La direccin efectiva de AR se transfiere por el bus comn al PC. Al restablecer SC a O se transfiere el control a t0. Despus se busca y se ejecuta la siguiente instruccin de la direccin de memoria proporcionada por el nuevo valor en PC. BSA: Brincar y guardar la direccin de retorno.

Esta instruccin es til para brincar hacia una porcin del programa llamada subrutina o procedimiento. Cuando se ejecuta, la instruccin BSA almacena la direccin de la siguiente instruccin en secuencia (la cual est disponible en PC) dentro de una posicin de la memoria especificada por la direccin efectiva. La direccin efectiva ms uno se transfiere despus a PC para servir como la direccin de la primera instruccin en la subrutina. Esta operacin se especific con la siguiente transferencia de registro:

M[AR] < PC, PC< AR+1

Un ejemplo numrico que muestra cmo se usa esta instruccin con una subrutina. Se considera que la instruccin BSA est en la memoria en la direccin 20. El bit 1 es O y la parte de la direccin de la instruccin tiene el equivalente binario de 135. Despus de las fases de bsqueda y decodificacin, PC contiene 21, que es la direccin de la siguiente instruccin en el programa (denominada direccin de retorno). AR contiene la direccin efectiva 135. Esto se muestra en la parte (a) de la figura. La instruccin BSA ejecuta la siguiente operacin numrica:

M[135] <--21, PC 135+1=136

El resultado de esta operacin se muestra en la parte (b) de la figura. La direccin de retomo 21 se almacena en la localidad de memoria 135 y el control contina con el programa de subrutina que comienza desde la direccin 136. El regreso al programa original (y la direccin 21) se consigue mediante una instruccin BUN indirecta, colocada al final de la subrutina. Cuando se ejecuta esta instruccin el control regresa a la fase indirecta para leer la direccin efectiva en la localidad 135, donde encuentra la direccin 21 que se guard antes. Cuando se ejecuta la instruccin BUN, la direccin efectiva 21 se transfiere a PC. El siguiente ciclo de la instruccin encuentra PC con el valor 21, por lo que el control sigue ejecutando la instruccin en la direccin de retorno.

Por lo general, la instruccin BSA ejecuta la funcin que se denomina llamada a subrutina. La instruccin BUN indirecta al final de la subrutina ejecuta la funcin que se denomina retomo de la subrutina. En la mayora de las computadoras comerciales, la direccin de retorno asociada con una subrutina se almacena en un registro de procesador o en una porcin de la memoria llamada pila (stack). Esto se analiza ms adelante con mayor detalle.

No es posible ejecutar la operacin de la instruccin BSA en un ciclo de reloj cuando se utiliza el bus del sistema de la computadora bsica. Para usar en forma adecuada la memoria y el bus, la instruccin BSA debe ejecutarse con una secuencia de dos microoperaciones:

D5T4: M[AR]<

PC, AR < O

AR + 1

D5T5:PC< AR, SC <

La seal de temporizacin t4 inicia una operacin de escribir en memoria, coloca el contenido del PC dentro del bus, y habilita la entrada INR de AR. La operacin de escribir en memoria se completa y AR se incrementa cuando ocurre la siguiente transicin de reloj. El bus se utiliza en t5 para transferir el contenido de AR a PC.

ISZ: Incrementa y brinca si es cero.

Esta instruccin incrementa la palabra especificada por la direccin efectiva y, si el valor incrementado es igual a O, PC se incrementa en 1. El programador por lo general almacena un nmero negativo (en complemento a 2) en la palabra de memoria. Como este valor negativo se incrementa una y otra vez en uno, eventualmente alcanza el valor de cero. En ese momento, PC se incrementa en uno para saltar la siguiente instruccin en el programa.

Como no es posible incrementar una palabra dentro de la memoria, es necesario leer la palabra dentro de DR, incrementar DR y almacenar otra vez la palabra en la memoria. Esto se hace con la siguiente secuencia de microoperaciones:

D6T4: DR <

M[AR]

D6T5: DR DR+1 D6T6: M[AR] < DR, si (DR = 0) entonces (PC < PC + 1), SC < O

UNIDAD 3

ORGANIZACIN DEL PROCESADOR CENTRAL

3.1 Introduccin

La parte de la computadora que ejecuta el grueso de las operaciones de procesamiento de datos se llama unidad de procesamiento central y se denomina CPU. La CPU est formada de tres partes principales. El conjunto de registros almacena datos intermedios que se usan durante la ejecucin de las instrucciones. La unidad aritmtica-lgica (ALU) lleva a cabo las microoperaciones requeridas para ejecutar las instrucciones. La unidad de control supervisa la transferencia de informacin entre los registros e instruye a la ALU sobre cul operacin ejecutar. La CPU realiza diversas funciones dictadas por el tipo de intrucciones que se incorporan en la computadora. En ocasiones se define la arquitectura de la computadora como la estructura y el desempeo de la computadora desde el punto de vista del programador que utiliza instrucciones de leguaje de mquina. Esto incluye los formatos de instrucciones, modos direccionamiento, el conjunto de instrucciones y la organizacin general los registros de la CPU.

Un lmite donde el diseador de la computadora y el programa aprecian la misma mquina es la parte de la CPU asociada con el conjunto de instrucciones. Desde el punto de vista del diseador, el conjunto instrucciones de la computadora proporciona las especificaciones para diseo de la CPU. El diseo de una CPU es una tarea que, en gran para representa la eleccin de la circuitera para implantar las instrucciones mquina. El usuario que programa la computadora en lenguaje ensambla o de mquina debe tomar en cuenta el conjunto de registros, la estructura de memoria, el tipo de datos que soportan las instrucciones y la funcin realiza cada instruccin.

Se desarrollaron ejemplos del diseo de u CPU simples. Este captulo describe la organizacin y arquitectura de la con nfasis en el punto de vista del usuario de la computadora. De breve describe cmo los registros se comunican con la ALU mediante explica la operacin de la pila (stack) de memoria. Despus presenta los tipos de formatos de instrucciones disponibles, los modos de direccionamiento miento que se utilizan para recuperar datos de la memoria y las instrucciones tpicas incorporadas por lo regular en las computadoras. La ltima seccin presenta el concepto de computadora con conjunto de instrucciones reduce (RISC).

3.2 Organizacin general de los registros

En los ejemplos de programacin del captulo 6 hemos mostrado que necesitan localidades de memoria para almacenar apuntadores, contad direcciones de retorno, resultados temporales, y productos parciales de la multiplicacin. Tener que hacer referencia a localidades de memoria esas aplicaciones representa una respetable inversin de tiempo porque acceso a memoria es la operacin que consume ms tiempo en una computadora. Es ms conveniente y eficiente almacenar estos valores internos en registros de procesador. Cuando se incluye una gran cantidad de 1 registros en la CPU es ms eficiente conectarlos mediante un canal de s1 comn. Los registros se comunican uno con el otro no slo para transferencia directa de datos, sino tambin mientras ejecutan diversas microoperaciones Por lo tanto, es necesario proporcionar una unidad comn que ejecutar todas las microoperaciones aritmticas, lgicas y de corrimiento el procesador.

Una organizacin de canal para siete registros y la salida de cada registro est conectada a dos multiplexores (MUX) para formar los dos canales A y B. Las lneas de seleccin en cada multiplexor eligen un registro o los datos de entrada para el canal particular. Los canales A y B forman las entradas a una unidad aritmtica lgica comn (ALU). La operacin determinada en la ALU establece la microoperacin aritmtica o lgica que se va a ejecutar. El resultado de la microoperacin est disponible para datos de salida y tambin va a las entradas de todos los registros. El registro que recibe la informacin del canal se selecciona mediante un decodificador. El decodificador activa una de las entradas de carga de registro y, por lo tanto, proporciona una trayectoria de transferencia entre los datos del canal de salida y las entradas del registro destino seleccionado.

La unidad de control que opera el canal del sistema de la CPU elige el flujo de informacin a travs de los registros y la ALU al seleccionar los diversos componentes del sistema. Por ejemplo, para ejecutar la operacin.

R1< R2 + R3

el control debe proporcionar variables de seleccin binarias a las siguientes entradas del selector:

1. Selector de MUX A (SELA): para colocar el contenido de R2 dentro del canal A. 2. Selector de MUX B (SELB): para colocar el contenido de R3 dentro del canal B.

3. Selector de operacin (OPR) de la ALU: para proporcionar la su aritmtica A + B. 4. Selector de destino del decodificador (SELD): para transferir el con tenido del canal de salida dentro de Rl.

Las cuatro variables de seleccin de control se generan en la unidad d control y deben estar disponibles al comienzo de un ciclo de reloj. Los datos de los dos registros fuente se propagan por las compuertas en los multiplexores y la ALU al canal de salida y dentro de las entradas del registros destino, todo durante el intervalo de ciclo de reloj. Despus, cuando ocurre la siguiente transicin de reloj, la informacin binaria del canal de salida transfiere a Rl. Para conseguir un tiempo de respuesta rpido, la ALU construye con circuitos de alta velocidad.

3.3 Organizacin de una pila

Una caracterstica til que se incluye en la CPU de la mayora de las computadoras es un stack o pila o lista ltimo en entrar, primero en salir (LIFO). Una pila es un dispositivo de almacenamiento que guarda informacin de manera que el artculo que se almacena al ltimo es el primero que se recupera. La operacin de una pila puede compararse a un racimo de charolas. La ltima charola que se coloca en la parte superior de la pila es la primera que se vuelve a tomar. En las computadoras digitales, la pila es esencialmente una unidad de memoria con un registro de direccionamento que slo puede contar (despus de que un valor inicial se carga dentro ella). El registro que contiene la direccin para la pila se llama apuntador de pila (SP) porque su valor siempre apunta la localidad en la parte superior de la pila. Al revs de una pila de charolas en la cual la charola misma puede sacarse o insertarse, los registros fsicos de una pila estn siempre disponibles para lectura o escritura. Es el contenido de la palabra lo que se inserta o borra.

Las dos operaciones de una pila son la insercin y el borrado de datos. La operacin de escritura se llama "empujar" (push) porque puede pensarse que es el resultado de "empujar" un nuevo dato sobre la parte superior. La operacin de borrado o recuperacin se llama "botar" (pop) porque puede pensarse que es el resultado de quitar un dato para que salga despedido de la pila. Sin embargo, nada se empuja ni se hace saltar en una pila de computadora. Estas operaciones se simulan al incrementar o decrementar el registro del apuntador de la pila.

Pila de registro.

Puede colocarse una pila en una parte de una memoria grande o puede organizarse como un conjunto de una cantidad finita de palabras de memoria o registros. Se muestra la organizacin de una pila de registros de 64 palabras. El registro del apuntador SP de la pila contiene un nmero binario cuyo valor es igual a la direccin de la palabra que en ese momento est en la parte superior de la pila. Se colocan tres datos en la pila: A, B y en ese orden. El dato C est en la parte superior de la pila, por lo que el contenido de SP es ahora 3. Para recuperar el dato superior, se ejecuta une instruccin pop en la pila al leer la palabra de memoria en la direccin 3 y decrementar el contenido de SP. El dato B est ahora en la parte superior de la pila porque SP contiene la direccin 2. Para insertar un nuevo dato se ejecuta una instruccin "push", al incrementa SP y escribir una palabra en la siguiente posicin ms alta de la pila. Ntese que el dato C se ley pero no se quito fsicamente. Esto no importa porque cuando se accesa a la pila se escribe un nuevo dato en su lugar.

En una pila de 64 palabras, el apuntador de pila contiene 6 bits porque 26 = 64. Como SP tiene slo seis bits, no puede exceder un nmero mayor de 63 (111111 en binario). Cuando 63 se incrementa en 1, el resultado es O porque 111111 + 1 = 1000000 en binario, pero SP slo puede acomodar los seis bits menos significativos. De igual manera cuando 000000 se decrementa en 1, el resultado es 111111. El registro de un bit LLENO se activa en 1, cuando la pila est llena, y el registro de un bit VACIO se activa en 1 cuando la pila est vaca de datos. DR es el registro de datos que contiene los datos binarios que se van a escribir o leer de la pila.

Al principio se borra SP a 0, VACIO se activa en 1 y se borra LLENO a 0, para que SP apunte a la palabra en la direccin O y la pila se marque como vaca y no como llena. Si la pila no est llena (si LLENO = 0), se inserta un nuevo dato con una instruccin push de "empujar".

El apuntador de pila se incrementa para que apunte a la direccin de la siguiente palabra superior. Una operacin de escritura de memoria inserta la palabra desde DR a la parte superior de la pila. Ntese que SP contiene la direccin de la parte superior de la pila y que M[SPJ representa la palabra de memoria especificada mediante la direccin disponible actualmente en SP. El primer dato almacenado en la pila est en la direccin 1. El ltimo dato est almacenado en la direccin 0. Si SP llega a 0, la pila est llena de datos y se activa LLENO en 1. Esta condicin se alcanza si el dato de la parte superior antes de la ltima operacin de empujar est en la localidad 63 y, despus de incrementar SP, el ltimo dato se almacena en la localidad 0. Una vez que se almacena un dato en la localidad 0, ya no hay registros vacos en la pila. Si se escribe un dato en la pila, es obvio que la pila no puede estar vaca, por lo que se activa VACIO a 0.

Se borra un nuevo dato de la pila si la pila no est vaca (si VACIO = 0) la operacin de pop consiste en la siguiente secuencia de microoperaciones:

DR SP

M[SP] Leer dato de la parte superior de la pila SP 1 Decrementar el apuntador de pila 1) Comprobar si la pila est vaca

Si (SP = O) entonces (EMtY < FULL <

O Indicar que la pila no est llena

El dato superior de la pila se lee en DR. Despus, se decrementa el apuntador de pila. Si su valor alcanza O, la pila est vaca, por lo que se activa VACIO en 1. Esta condicin se alcanza si el dato que se ley estaba en la posicin 1. Una vez que se lee este dato, SP se decrementa y alcanza el valor O, el cual es el valor inicial de SP. Ntese que si una instruccin pop lee el dato de la localidad O y despus SP se decrementa, SP cambia a 111111, el cual es el equivalente al decimal 63. En esta configuracin, la palabra de la direccin O recibe el ltimo dato en la pila. Ntese tambin que se producir una operacin errnea si se ejecuta una instruccin cuando LLENO = 1 o una pop cuando VACIO = 1.

Pila de memoria.

Una pila puede existir como una unidad nica o puede implantarse en una memoria de acceso aleatorio conectada a una CPU. Se realiza la implantacin de una pila en la CPU al asignar una parte de memoria a una operacin de pila y al usar un registro de procesador como un apuntador de pila. Se muestra parte de una memoria de computadora dividida en tres segmentos: programas, datos y pila. El contador de programa PC apunta a la direccin de la siguiente instruccin en el programa. El registro de direccin AR apunta a un arreglo de datos. El apuntador de pila SP apunta a la parte superior de la pila. Los tres registros estn conectados a un canal de direcciones comn y cualquiera puede proporcionar una direccin para la memoria. PC se utiliza durante la fase de bsqueda para leer una instruccin. AR se utiliza en la fase de ejecucin para leer un operando. SP se utiliza para ejecutar instrucciones push o pop en datos que se guardan o se recuperan en la pila.

El valor inicial de SP es 4001 y la pila crece con las direcciones decrecientes. Por lo tanto, el primer dato almacenado en la pila est en la direccin 4000, el segundo se almacena en la direccin 3999, y la ltima direccin que puede usarse para la pila es 3OOO No estn previstas comprobaciones del lmite de la pila.

El apuntador de pila se decrementa para que apunte en la direccin de la siguiente palabra. Una operacin de escritura en la memoria inserta la palabra de DR dentro de la parte superior de la pila. Se recupera un nuevo dato con una instruccin push, de la manera siguiente: El dato superior se lee de la pila a DR. El apuntador de pila se incrementa despus para apuntar al siguiente dato en la pila.

Muchas computadoras no tienen hardware para verificar el sobreflujo de la pila (pila llena) o sobreflujo inverso (pila vaca). Los lmites de la pila pueden comprobarse al usar dos registros de procesador: uno que contenga el lmite superior (en este caso 3000) y el otro que contenga el lmite inferior (en este caso 4001). Despus de una operacin de push, se compara SP con el registro de lmite superior y despus de una operacin pop SP se compara con el registro del lmite inferior.

Las dos microoperaciones necesarias para las operaciones push o pop son: 1) un acceso a memoria a travs de SP y 2) la actualizacin de SP Depende de la organizacin de la pila determinar cul de las dos operaciones se realiza primero y si se actualiza SP incrementando o decrementando. La pila crece al decrementar la direccin de memoria. La pila puede construirse para crecer al incrementar la direccin de memoria. En tal caso, se incrementa SP para la operacin de push y se decrementa para la operacin de pop. Puede construirse una pila para que SP apunte a la siguiente posicin vaca arriba de la parte superior de la pila. En este caso, debe intercambiarse la secuencia de microoperaciones.

Un apuntador de pila se carga con un valor inicial. Este valor inicia] debe ser la direccin inferior de una pila asignada en la memoria. En lo sucesivo SP se incrementa o se decrementa en forma automtica con cada operacin de push o pop. La ventaja de una pila de memoria es que la CPU puede hacer referencia a ella sin tener que especificar una direccin, porque la direccin siempre est disponible y se actualiza en forma automtica en el apuntador de pila.

3.4 Formatos de las instrucciones

Normalmente las estructuras fsica y lgica de la computadora se describen en los manuales de referencia que se proporcionan con el sistema. Tales manuales explican la construccin interna de la CPU, incluyendo los registros de procesador disponibles y sus posibilidades lgicas. Tambin listan todas las instrucciones que se implantan con hardware, especifican su formato en cdigo binario y proporcionan una definicin precisa de cada instruccin. Por lo general, una computadora tendr varios formatos de cdigos de instrucciones. Una funcin de la unidad de control dentro de la CPU es interpretar cada cdigo de instruccin y proporcionar las funciones de control necesarias para procesar la instruccin.

Normalmente el formato de una instruccin se muestra en una caja rectangular que simboliza los bits de la instruccin conforme aparecen en la palabra de memoria o en un registro de control. Los bits de la instruccin se dividen en grupos llamados campos. Los campos ms comunes que se encuentran en los formatos de instrucciones son:

1. Un campo de cdigo de operacin que especifica la operacin que se va a ejecutar. 2. Un campo de direccin que representa una direccin de memoria o un registro de procesador. 3. Un campo de modo que especifica la manera en que se determina el operando o la direccin efectiva.

En ocasiones se emplean otros campos especiales bajo ciertas circunstancias, por ejemplo un campo que proporciona el nmero de corrimientos en una instruccin de tipo corrimiento.

El campo de cdigo de operacin de una instruccin es un grupo de bits que define varias operaciones de procesador, como sumar, restar, complementar y corrimiento. Las operaciones ms comunes disponibles en instrucciones de computadora se listan y analizan. Los bits que definen el campo de modo de una instruccin especifican diversas alternativas para escoger los operandos de la direccin dada. Los diferentes modos de direccionamiento que se han formulado para las computadoras digitales. En esta seccin, presentamos el campo de direccin de un formato de instruccin y consideramos el efecto de incluir mltiples campos de direccin en una instruccin.

Las operaciones especificadas mediante instrucciones de computadora se ejecutan sobre algunos datos almacenados en la memoria o en registros de procesador. Los operandos que residen en la memoria se especifican mediante sus direcciones de memoria. Los operandos que residen en un registro de procesador se especifican con una direccin de registro. Una direccin de registro es un nmero binario de k bits que define uno de los registros en la CPU. Por lo tanto, una CPU con 16 registros de procesador del RO al R15 tendr un campo de direccin de registro de 4 bits. Por ejemplo, el nmero binario 0101, representar el registro R5.

Las computadoras pueden tener instrucciones de diferentes tamaos que contengan una cantidad variable de direcciones. La cantidad de campos de direcciones en el formato de instruccin de una computadora depende de la organizacin interna de sus registros. La mayora de las computadoras caen en uno de tres tipos de organizacin de CPU:

1. Organizacin de acumulador nico. 2. Organizacin de registro general. 3. Organizacin de pila.

todas las instrucciones se ejecutan con un registro de acumulador relacionado. El formato de instruccin en este tipo de computadora utiliza un campo de direccin. Por ejemplo, la instruccin que especifica una suma aritmtica se define mediante una instruccin del lenguaje ensamblador como ADD X donde X es la direccin del operando. La instruccin ADD en este caso da como resultado la operacin AC -- AC + M[XJ. AC es el registro acumulador y M[X] representa la palabra de memoria que se localiza en la direccin X.

Un ejemplo de un tipo de organizacin de registro general se present en la figura 7-1. El formato de instruccin en este tipo de computadora necesita tres campos de direccin de registro. Por lo tanto, la instruccin para una suma aritmtica puede escribirse en lenguaje ensamblador como

ADD Rl, R2, R3

para representar la operacin Rl < R2 + R3. La cantidad de campos de direccin en la instruccin puede reducirse de tres a dos si el registro destino es igual a uno de los registros fuente. Por lo tanto, la instruccin

ADD Rl, R2

representara la operacin Rl R2 en esta instruccin.

Rl + R2. Slo necesitan especificarse las direcciones de registro para Rl y

Las computadoras con mltiples registros de procesador utilizan la instruccin de mover con un mnemnico MOV para representar una instruccin de transferencia. Por lo tanto, la instruccin

MOV Rl, R2

representa la transferencia Rl < R2 ( R2 Rl), dependiendo de la computadora en particular). Entonces, las instrucciones de tipo de transferencia necesitan dos campos de direccin para especificar la fuente y el destino.

Las computadoras de tipo de registro general emplean dos o tres campos de direccin en su formato de instrucciones. Cada campo de direccin puede especificar un registro de procesador o una palabra de memoria. Una instruccin representada mediante

ADD Rl, X

especificara la operacin Rl < Rl + M[X]. Posee dos campos de direccin, uno para el registro Rl y el otro para la direccin de memoria X.

Las computadoras con organizacin de pila envan instrucciones PUSH y POP las cuales requeriran un campo de direccin. Por lo tanto la instruccin PUSH X escribir la palabra de la direccin X a la parte superior de la pila. El apuntador de pila se actualiza en forma automtica. Las instrucciones de tipo operacin no necesitan un campo de direccin en las computadoras organizadas con pilas. Esto se debe a que la operacin se ejecuta sobre los dos datos que estn en la parte superior de la pila. La instruccin ADD en una computadora con pila consta de un solo cdigo de operacin sin campo de direccin. Esta operacin lee (pop) los dos nmeros superiores de la pila, los suma y escribe (push) la suma dentro de la pila. No es necesario especificar operandos con un campo de direccin porque es implcito que todos estn en la pila.

La mayora de las computadoras caen en uno de estos tres tipos de organizacin que se acaban de describir. Algunas computadoras combinan caractersticas de ms de una estructura organizaional. Por ejemplo, el microprocesador Intel 8080 tiene siete registros de CPU, uno de los cuales: es un registro acumulador. Como consecuencia, el procesador tiene algunas de las caractersticas de un tipo de registro general y algunas de las de un tipo acumulador. Todas las instrucciones aritmticas y lgicas, al igual que las instrucciones de carga y almacenamiento, utilizan el registro acumulador, por lo que estas instrucciones slo tienen un campo de direccin. Por otra parte, las instrucciones que transfieren datos entre los siete registros del procesador tienen un formato que contiene dos campos de direccin de registros. Adems, el procesador Intel 8080 tiene un apuntador de pila e instrucciones push y pop desde una pila de memoria. Sin embargo, el procesador no tiene instrucciones de tipo de dreccionamiento cero, las cuales son caractersticas de una CPU organizada con pila.

Para dar una ejemplo de la influencia de la cantidad de direcciones sobre los programas de computadora, evaluaremos el siguiente enunciado aritmtico

X = (A + B)*(C + D)

utilizando cero, uno, dos o tres instrucciones de direccionamiento. Emplearemos los smbolos ADD, SUB, MUL y DIV para las cuatro operaciones aritmticas; MOV para la operacin de tipo transferencia; y LOAD y STORE para transferencias hacia y desde la memoria y el registro AC. Consideraremos que los operandos en las direcciones de memoria A, B, C y D y e resultado deben almacenarse en la memoria en la direccin X.

3.5 Modos de direccionamiento

El campo de operacin de una instruccin especifica la operacin que se va a ejecutar. Esta operacin debe realizarse sobre algunos datos almacenados en registros de computadora o en palabras de memoria. La manera en que eligen los operandos durante la ejecucin del programa depende del modo de direccionamiento de la instruccin. El modo de direccionamiento especifica una regla para interpretar o modificar el campo de direccin de la instruccin antes de que se haga la referencia real al operando. Las computadoras utilizan tcnicas de modo de direccionamiento para acomodar una o las dos siguientes consideraciones:

1. Proporcionar al usuario versatilidad de programacin al ofrecer facilidades como apuntadores a memoria, contadores para control de ciclo, indexacin de datos y reubicacin de programas. 2. Reducir la cantidad de bits en el campo de direccionamiento de la instruccin.

La disponibilidad de los modos de direccionamiento proporciona al programador con experiencia en lenguaje ensamblador la flexibilidad para escribir programas ms eficientes en relacin con la cantidad de instrucciones y el tiempo de ejecucin.

Para comprender los diferentes modos de direccionamiento que se presentarn en esta seccin, es imperativo entender el ciclo de operacin bsico de la computadora. La unidad de control de una computadora est diseada para recorrer un ciclo de instrucciones que se divide en tres fases principales:

1. Bsqueda de la instruccin de la memoria. 2. Decodificar la instruccin. 3. Ejecutar la instruccin.

Hay un registro en la computadora llamado contador de programa o PC, que lleva un registro de las instrucciones del programa almacenado en la memoria. PC contiene la direccin de la siguiente instruccin que se va a ejecutar y se incrementa cada vez que se recupera una instruccin de la memoria. La decodificacin realizada en el paso 2 determina la operacin que se va a ejecutar, el modo de direccionamiento de la instruccin y la posicin de los operandos. Despus la computadora ejecuta la instruccin y regresa al paso 1 para hacer la bsqueda de la siguiente instruccin en secuencia.

En algunas computadoras el modo de direccionamiento de la instruccin se especifica con un cdigo binario distinto, como se hace con el cdigo de operacin. Otras computadoras utilizan un cdigo binario nico que representa la operacin y el modo de la instruccin. Pueden definirse instrucciones con diversos modos de direccionamiento y, en ocasiones, se combinan dos o ms modos de direccionamiento en una instruccin.

Un ejemplo de un formato de instruccin con un campo de modo de direccionamiento. El cdigo de operacin especifica la operacin que se va a ejecutar. El campo de modo se utiliza para ubicar los

operandos necesarios para la operacin. Puede haber o no un campo de direccionamiento en la instruccin. Si hay uno, puede representar una direccin de memoria o un registro de procesador. Adems, como se analiz en la seccin anterior, la instruccin puede tener ms de un campo de direccin, y cada campo de direccin puede estar asociado con su propio modo de direccionamiento particular.

Aunque la mayora de los modos de direccionamiento modifican el campo de direccin de la instruccin, hay dos modos que no necesitan el campo de direccin. Son los modos implcito e inmediato.

Modo implcito: En este modo se especifican los operandos en forma implcita en la definicin de la instruccin. Por ejemplo, la instruccin "complementar acumulador es una instruccin de modo implcito porque el operando en el registro de acumulador est implcito en la definicin de la instruccin. De hecho todas las instrucciones de referencia a registro que utilizan un acumulador son instrucciones de modo implcito. Las instrucciones de direccin cero en una computadora organizada con pila son instrucciones de modo implcito porque est implcito que los operandos estn en la parte superior de la pila.

Modo inmediato: En este modo se especifica el operando en la instruccin misma. En otras palabras, una instruccin de modo inmediato tiene un campo de operando, en lugar de un campo de direccin. Un campo de operando contiene el operando real que se va a usar junto con la operacin especificada en la instruccin. Las instrucciones de modo inmediato son tiles para inicializar registros en un valor constante.

Se mencion antes que el campo de direccin de una instruccin puede especificar una palabra de memoria o un registro de procesador. Cuando el campo de direccin especifica un registro de procesador se dice que la instruccin esta en modo de registro.

Modo de registro: En este modo, los operandos estn en registros que residen dentro de la CPU. Se selecciona el registro particular de un campo de registro en la instruccin. Un campo k bits puede especificar cualquiera de k2 registros.

Modo indirecto por registro: En este modo la instruccin especifica un registro en la CPU cuyo contenido proporciona la direccin del operando en la memoria. En otras palabras, el registro seleccionado contiene la direccin del operando en lugar del operando mismo. Antes de utilizar una instruccin de modo indirecto por registro, el programador debe asegurarse

de que la direccin de memoria del operando est colocada en el registro del procesador con una instruccin previa. Entonces una referencia al registro es equivalente a especificar una direccin de memoria. La ventaja de una instruccin de modo de registro indirecto es que el campo de direccin de la instruccin utiliza menos bits para seleccionar un registro de los que necesitara para especificar una direccin de memoria en forma directa.

Modo de autoincremento o autodecremento: Este es similar al modo de registro indirecto, excepto en que el registro se incrementa o decrementa despus (o antes) de que su valor se utilice para accesar la memoria. Cuando la direccin almacenada en el registro hace referencia a una tabla de datos en la memoria, es necesario incrementar o decrementar el registro despus de cada acceso a la tabla. Esto puede lograrse al usar la instruccin de incrementar o decrementar. Sin embargo, como este es un requisito comn, algunas computadoras incorporan un modo especial que incrementa o decrementa en forma automtica el contenido del registro despus de cada acceso de datos.

La unidad de control en la CPU utiliza el campo de direccin para obtener el operando de la memoria. En ocasiones el valor que se proporciona en el campo de direccin es la direccin del operando, pero en ocasiones es slo una direccin desde la cual se calcula la direccin del operando. Para poder diferenciar los distintos modos de direccionamiento es necesario distinguir entre la parte de direccin de la instruccin y la direccin ef2ctiva utilizada por el control cuando ejecuta la instruccin. La direccin efectiva se define como la direccin de memoria obtenida del clculo, fijado mediante el modo de direccionamiento proporcionado. La direccin efectiva es la direccin del operando en una instruccin de tipo computacional. Es la direccin en que el control se transfiere en respuesta a una instruccin de tipo brinco.

Modo de direccionamiento directo: En este modo la direccin efectiva es igual a la parte de direccin de la instruccin. El operando reside en memoria y su direccin la proporciona en forma directa el campo de direccin de la instruccin. En una instruccin de tipo brinco el campo de direccin especifica la direccin de transferencia de control del programa real.

Modo de direccionamiento indirecto: En este modo, el campo de direccin de la instruccin proporciona la direccin en que se almacena la direccin efectiva en la memoria. El control recupera la instruccin de la memoria y utiliza su parte de direccin para accesar la memoria una vez ms con el fin de leer la direccin efectiva.

Unos cuantos modos de direccionamiento requieren que el campo de direccin de la instruccin se sume al contenido de un registro especfico en la CPU. En estos modos la direccin efectiva se obtiene del clculo siguiente:

direccin efectiva = parte de direccin de la instruccin + el contenido de registro de CPU

El registro de CPU utilizado en el clculo puede ser el contador de programa, un registro de ndice o un registro base. En cualquier caso tenemos un modo de direccionamiento diferente que se utiliza para una aplicacin distinta.

Modo de direccionamiento relativo: En este modo el contenido del contador de programa se suma a la parte de direccin de la instruccin para obtener la direccin efectiva. La parte de direccin de la instruccin por lo general es un nmero con signo (en representacin de complemento a 2) el cual puede ser positivo o negativo. Cuando se suma este nmero al contenido del contador de programa, el resultado produce una direccin efectiva cuya posicin en la memoria es relativa a la direccin de la siguiente instruccin. Para hacer ms claro con un ejemplo, consideremos que el contador de programa contiene el nmero 825 y que la parte de direccin de la instruccin contiene el nmero 24. La instruccin en la posicin 825 se lee de la memoria durante la fase de recuperacin y el contador de programa se incrementa en uno a 826. El clculo de direccin efectiva para el modo de direccin relativa es 826 + 24 = 850. Esto es 24 posiciones de memoria adelante de la direccin de la siguiente instruccin. Con frecuencia se utiliza el direccionamento relativo con instrucciones de tipo brinco, cuando la direccin del brinco est en el rea que rodea la palabra de la instruccin misma. Esto da como resultado un campo de direccin ms pequeo en el formato de la instruccin porque la direccin relativa puede especificarse con una cantidad de bits menor en comparacin con la cantidad de bits que se necesitan para representar la direccin de memoria completa.

Modo de direccionamiento indexado: En este modo el contenido de un registro ndice se suma a la parte de direccin de la instruccin para obtener la direccin efectiva. El registro ndice es un registro de CPU especial que contiene un valor ndice. Un campo de direccin de la instruccin define la direccin inicial del arreglo de datos en la memoria. Cada operando del arreglo se almacena en la memoria en relacin con la direccin inicial. La distancia entre la direccin inicial y la direccin del operando es el valor del ndice almacenado en el registro de ndice. Cualquier operando en el arreglo puede accesarse con la misma instruccin siempre y cuando el registro indice contenga el valor de ndice correcto. El registro ndice puede incrementarse para facilitar el acceso a operandos consecutivos. Ntese que si una instruccin de tipo ndice no incluye un campo de direccin en su formato, la instruccin se convierte al modo de operacin de indirecto por registro.

Algunas computadoras dedican un registro de CPU para que funcione exclusivamente como un registro ndice. De manera implcita este registro participa cuando se utiliza una instruccin de modo ndice. En las computadoras con muchos registros de procesador, cualquiera de los registros de la CPU pueden contener el nmero de ndice. En tal caso, el registro debe estar especificado en forma explcita en un campo de registro dentro del formato de instruccin.

Modo de direccionamiento de registro base: En este modo, el contenido de un registro base se suma a la parte de direccin de la instruccin para obtener la direccin efectiva. Esto es similar al modo de direccionamiento indexado, excepto en que el registro se denomina ahora registro base, en lugar de registro de ndice. La diferencia entre los dos modos esta en la manera que se usan ms que en la manera en que se calculan. Se considera que un registro ndice contiene un nmero de ndice que se relaciona con la parte de direccin de la instruccin. Se considera que un registro base contiene una direccin base y que el campo de direccin de la instruccin proporciona un desplazamiento en relacin con esta direccin base. El modo de direccionamiento de registro base se utiliza en las computadoras para facilitar la localizacin de los programas en memoria. Cuando se mueven datos y programas de un segmento de memoria a otro, como se requiere en los sistemas de multiprogramacin, los valores de direccin de las instrucciones deben reflejar este cambio de posicin. Con un registro base los valores de desplazamiento de las instrucciones no tienen que cambiar. Slo el valor del registro base requiere una actualizacin para reflejar el comienzo de un nuevo segmento de memoria.

Ejemplo numrico Para mostrar las diferencias entre los diferentes modos, veremos el ejemplo de los modos de direccionamiento sobre las instrucciones que se definen en la figura 8-7. La instruccin de dos palabras en la direccin 200 y 201 es una instruccin cargar a AC" con un campo de direccin igual a 500. La primera palabra de la instruccin especifica el cdigo de operacin y modo, y la segunda palabra especifica la parte de la direccin. PC tiene el valor 200 para recuperar esta instruccin. El contenido del registro de procesador Rl es 400, y el contenido de un registro ndice XR es 100. AC recibe el operando despus de que se ejecuta la instruccin. La figura lista unas cuantas direcciones pertinentes y muestra el contenido de la memoria en cada una de ellas.

El campo de modo de la instruccin puede especificar uno de varios modos. Para cada modo posible calculamos la direccin efectiva y el operando que debe cargarse dentro de AC. En el modo de direccionamiento directo la direccin efectiva es la parte de la direccin 500 de la instruccin y el operando que se va a cargar dentro de AC es 800. En el modo inmediato

3.6 Transferencia y manipulacin de los datos

Las computadoras proporcionan un amplio conjunto de instrucciones para dar al usuario la flexibilidad de realizar diferentes tareas computacionales. El conjunto de instrucciones de diferentes computadoras vara de una a otra sobre todo en la manera en que los operandos se determinan de los campos de direcciones. Las operaciones reales disponibles en el conjunto de instrucciones no son muy diferentes de una computadora a otra. Lo que sucede es que las asignaciones de cdigo binario y el campo de cdigo de la operacin son diferentes en diversas computadoras, aun para la misma operacin. Tambin puede suceder que el nombre simblico asignado a instrucciones en la notacin de lenguaje ensamblador sea diferente en varias computadoras, aun para la misma instruccin. No obstante, hay un conjunto bsico de operaciones que gran parte, si no es que todas las computadoras incluyen en su repertorio de instrucciones. El conjunto de operaciones bsicas disponibles de datos de una localidad a otra sin cambiar el contenido de la informacin binaria. Las instrucciones de manipulacin de datos son las que operaciones aritmticas, lgicas y de corrimiento. Las instrucciones de programa proporcionan posibilidades de toma de decisiones y cambian la trayectoria que toma un programa cuando se ejecuta en la computadora. El conjunto de instrucciones de una computadora particular las operaciones de transferencia de registros y controla las decisiones disponibles para el usuario.

Instrucciones de transferencia de los datos Las instrucciones de transferencia de datos mueven datos de un lugar en la computadora a otro sin cambiar el contenido de los datos. Las transferencias ms comunes son entre registros del procesador y memoria, entre registros del procesador y entrada o salida y entre los mismos registros del procesador. A cada instruccin le acompaa un mnemnico. Debe recordarse que diferentes computadoras usan mnemnicos distintos para el mismo nombre de instruccin.

La instruccin load (cargar) se ha usado principalmente para designar una transferencia de memoria a un registro de programacin, por lo general un acumulador. La instruccin store (almacenar) representa una transferencia de un registro de procesador a la memoria. La instruccin mov (mover) se ha usado en las computadoras con registros mltiples de CPU para designar una transferencia de un registro a otro. Tambin se ha usado para transferencias de datos entre registros de CPU y la memoria o entre dos palabras de memoria. La instruccin exchange (intercambiar) cambia la informacin entre dos registros o un registro y una palabra de memoria. Las instrucciones input (introducir) y output (sacar) transfieren datos entre registros del procesador y terminales de entrada o salida. Las instrucciones push (empujar) y pop (saltar) transfieren datos entres registros del procesador y una pila de memoria.

Debe recordarse que las instrucciones que se listan, al igual que en las tablas siguientes en esta seccin, con frecuencia estn asociadas con diversos modos de direccionamiento. Algunas normas del lenguaje ensamblador modifican el smbolo mnemnico para diferenciar entre los diversos modos de direccionamiento. Por ejemplo, el mnemnico para cargar de inmediato se convierte en LDI.

Otras normas del lenguaje ensamblador utilizan un carcter especial para asignar el modo de direccionamiento. Por ejemplo, el modo inmediato se reconoce por un signo $ colocado antes del operando. En cualquier caso, lo importante es entender que cada instruccin puede ocurrir con diversos modos de direccionamiento. Como ejemplo, consideremos la instruccin cargar al acumulador cuando se usa con ocho modos de direccionamiento diferentes.

Se muestra la convencin recomendada del lenguaje ensamblador y la transferencia real que se logra en cada caso. ADR representa una direccin, NBR es un nmero u operando, X es un registro de ndice, Rl es un registro de procesador, y AC es el registro acumulador. El carcter @ simboliza una direccin indirecta. El carcter $ antes de una direccin hace el direccionamiento relativo al contador de programa PC. El carcter # precede al operando en una instruccin de modo inmediato. Una instruccin de modo indexado se reconoce por un registro que se coloca entre parntesis despus de la direccin simblica. El modo de registro se simboliza al proporcionar el nombre de un registro de procesador. En el modo indirecto por registro, el nombre del registro que contiene la direccin de memoria se encierra entre parntesis. El modo de autoincremento se distingue del modo indirecto por registro al colocar un signo de ms despus del registro entre parntesis. A su vez el modo de autodecremento utilizara un signo de menos. Para poder escribir programas del lenguaje ensamblador para una computadora es necesario conocer el tipo de instrucciones disponibles y tambin estar familiarizado con los modos de dreccionamiento utilizados en la computadora particular.

3.7 Control del programa

Las instrucciones siempre se almacenan en localidades de memoria sucesivas. Cuando se procesan en la CPU, las instrucciones se recuperan de localidades de memoria consecutivas y se ejecutan. Cada vez que se recupera una instruccin de la memoria, el contador de programa se incrementa para que contenga la direccin de la siguiente instruccin en secuencia. Despus de la ejecucin de una instruccin de transferencia de datos o de manipulacin de datos, el control retorna al ciclo de recuperacin con el contador de programa que contiene la direccin de la siguiente instruccin de secuencia. Por otra parte, un tipo de instruccin de control de programa, cuando se ejecuta, puede cambiar el valor de la direccin en el contador del programa y provocar que se altere el flujo de control. En otras palabras, las instrucciones de control de programa especifican condiciones para alterar el contenido del contador de programa, mientras que las instrucciones de transferencia y manipulacin de datos especifican condiciones para operaciones de procesamiento de datos. El cambio en el valor del contador del programa como resultado de la ejecucin de una instruccin de control de programa provoca una "ruptura en la secuencia de ejecucin de instrucciones. Esta es una caracterstica importante en las computadoras digitales, porque proporciona un control sobre el flujo de ejecucin de un programa y la posibilidad de transferir el control a diferentes segmentos del programa.

Algunas instrucciones de control de programa tpicas. Las instrucciones de transferir el control y brincar se usan en forma intercambiable y representan lo mismo, pero en ocasiones se utilizan para denotar modos de direccionamiento diferentes. Por lo general, la transferencia del control es una instruccin de una direccin. Est escrita en lenguaje ensamblador como BR ADR, donde ADR es un nombre simblico para la direccin. Cuando se ejecuta provoca una transferencia del valor de ADR en el contador de programa. Como el contador de programa contiene la direccin de la instruccin que se va a ejecutar, la siguiente instruccin provendr de la localidad ADR.

Las instrucciones de transferencia del control y brincar pueden ser condicionales o incondicionales. Una instruccin de transferencia incondicional produce un brinco a la direccin especificada sin ninguna condicin. La instruccin de transferencia condicional especifica una condicin, tal como un brinco si es positivo o brinco si es cero. Si se cumple la condicin, el contador de programa se carga con la direccin de brinco y se toma la siguiente instruccin de esta direccin. Si no se cumple la condicin, el contador de programa no cambia y la siguiente instruccin se toma de la siguiente localidad en secuencia. La instruccin de brinco no necesita un campo de direccin y por lo tanto es una instruccin de direccin cero. Una instruccin de brinco condicional brincar la siguiente instruccin si se cumple una condicin. Esto se logra al incrementar el contador de programa durante la fase de ejecucin, adems de lo que se incrementa durante la fase de recuperacin. Si la condicin no se cumple, el control avanza a la siguiente instruccin en secuencia, donde el programador inserta una instruccin de brinco incondicional. Por lo tanto, un par de instrucciones de brinco y transferencia del control provocan un brinco si no se cumple la condicin, mientras una sola instruccin de brinco condicional produce una transferencia si se cumple la condicin.

Las instrucciones de llamada y regreso se utilizan junto con subrutinas. Su desempeo e implantacin se analizan ms adelante en esta seccin. Las instrucciones de comparar y probar no cambian la secuencia del programa en forma directa. Una instruccin de comparar ejecuta una resta entre dos operandos, pero no se conserva el resultado de la operacin. Sin embargo, se activan ciertos bits de condiciones de estado como resultado de la operacin. De igual manera la instruccin de probar ejecuta el AND lgico de dos operandos y actualiza ciertos bits de estado sin mantener el resultado ni cambiar los operandos. Los bits de estado de inters son el bit de acarreo, el bit de signo, una indicacin de cero y una condicin de sobreflujo. Primero se analizar la generacin de estos bits de estado y despus mostraremos cmo se utilizan en instrucciones de brinco condicional.

3.8 Computadora de conjunto de instrucciones reducido (RISC)

Un aspecto importante de la arquitectura de computadoras es el diseo de conjunto de instrucciones para el procesador. El conjunto de instrucciones elegido para una computadora particular determina la manera en que se construyen los programas de lenguaje de mquina. Las primeras computadoras tenan conjuntos de instrucciones pequeos y simples, forzados sobre todo por la necesidad de minimizar la

circuitera utilizada para implantarlos. Conforme la circuitera digital se hizo ms barata con la aparicin de los circuitos integrados, las instrucciones de computadora tendieron a aumentar, tanto en cantidad como en complejidad. Muchas computadoras tienen conjuntos de instrucciones que incluyen ms de 100 y, en ocasiones, ms de 200 instrucciones. Las computadoras tambin emplean diversos tipos de datos y una gran cantidad de modos de direccionamiento. La tendencia hacia la complejidad de la circuitera de computadora la produjeron varios factores, como el mejoramiento de los modelos existentes para proporcionar ms aplicaciones al cliente, la adicin de instrucciones que facilitaban la traduccin de programas en lenguaje de alto nivel a programas de lenguaje de mquina y la bsqueda para desarrollar mquinas que trasladaran funciones de implantaciones de programa a implantaciones de hardware. Una computadora con una gran cantidad de instrucciones se clasifica como una computadora con conjunto de instrucciones complejo, CISC (complex instruction set computer).

Al principio de los aos ochenta, muchos diseadores de computadora recomendaron que las mquinas utilizaran menos instrucciones con frmulas sencillas para que pudieran ejecutarse con mucha mayor rapidez dentro de la CPU, sin tener que utilizar la memoria con tanta frecuencia. Este tipo de computadoras se clasifica como computadoras de conjunto de instrucciones reducido, RISC (reduced instruction set computer). En esta seccin presentamos las principales caractersticas de las arquitecturas CISC y RISC y despus el conjunto de instrucciones y el formato de instrucciones de un procesador.

Caractersticas CISC El diseo de un conjunto de instrucciones para una computadora debe considerar no slo frmulas de lenguaje de mquina, sino tambin los requerimientos internos en la utilizacin de lenguajes de programacin de alto nivel. La traduccin de programas de alto nivel a programas de lenguaje de mquina se realiza mediante un programa compilador. Una razn para la tendencia a proporcionar conjuntos de instrucciones complejos es el deseo de simplificar la compilacin y mejorar el desempeo general de la computadora. La tarea de un compilador es generar una secuencia de instrucciones de mquina para cada enunciado de lenguaje de alto nivel. La tarea se sirnplifica si existen instrucciones de mquina que integren los enunciados en forma directa. El propsito esencial de una arquitectura CISC es intentar proporcionar una nica instruccin de mquina para cada enunciado que est escrita en un lenguaje de alto nivel. Algunos ejemplos de las arquitecturas CISC son la computadora VAX de Digital Equipment Corporation y la IBM 370.

Otra caracterstica de la arquitectura CISC es la incorporacin de formatos de instrucciones de tamao variable. Las instrucciones que necesitan operandos de registro pueden tener slo dos bytes de longitud, pero las instrucciones que necesitan direcciones de memoria pueden necesitar cinco bytes para incluir todo el cdigo de la instruccin. Si la computadora tiene palabras de 32 bits (cuatro bytes), la primera instruccin ocupa la mitad de una palabra, en tanto la segunda instruccin necesita una palabra ms un byte en la siguiente. Para guardar formatos de instrucciones variables en una palabra de

memoria de longitud fija se necesitan circuitos especiales de decodificacin que cuenten los bytes dentro de la palabra y separen las instrucciones de acuerdo con la longitud de sus bytes.

Las instrucciones en un procesador CISC tpico proporcionan la manipulacin directa de los operandos que residen en la memoria. Por ejemplo, una instruccin ADD puede especificar un operando en la memoria mediante un direccionamiento de ndice y un segundo operando en la memoria por medio de un direccionamiento directo. Puede incluirse en la instruccin otra localidad de memoria para almacenar la suma. Esto requiere tres referencias de memoria durante la ejecucin de la instruccin. Aunque los procesadores CISC tienen instrucciones que slo utilizan registros de procesador, la disponibilidad de otros modos de operaciones tiende a simplificar la compilacin de lenguajes de alto nivel. Sin embargo, conforme se incorporan ms instrucciones y modos de direccionamiento en una computadora, se necesita ms circuitera lgica para implantarlos y soportarlos, y esto puede producir que los clculos se hagan lentos. En resumen, las principales caractersticas de la arquitectura CISC son:

1. Una gran cantidad de instrucciones, por lo general de 100 a 250. 2. Algunas instrucciones que ejecuten tareas especializadas y que no se usen con frecuencia. 3. Una gran cantidad de modos de direccionamiento, por lo general de 5 a 20 modos diferentes. 4. Formatos de instrucciones de extensin variable. 5. Instrucciones que manipulen operandos en la memoria.

Caractersticas RISC.

El concepto de la arquitectura RISC significa un intento para reducir el tiempo de ejecucin al simplificar el conjunto de instrucciones de la computadora. Las principales caractersticas de un procesador RISC son:

1. Relativamente pocas instrucciones. 2. Relativamente pocos modos de direccionamiento.

3. El acceso a memoria limitado a instrucciones de carga y almacenamiento. 4. Todas las operaciones realizadas dentro de los registros de la CPU. 5. Formatos de instrucciones decodificados con facilidad, de longitud fija. 6. Ejecucin del ciclo de instruccin nica. 7. Control por circuitera en lugar de microprogramado.

El pequeo conjunto de instrucciones de un procesador RISC tpico consiste principalmente en operaciones registro a registro, y slo tiene las operaciones cargar y almacenar para accesar la memoria. Cada operando se introduce al procesador con una instruccin cargar. Todos los clculos se hacen entre los datos almacenados en los registros del procesador. Los resultados se transfieren a la memoria mediante instrucciones almacenar. Esta caracterstica de arquitectura simplifica el conjunto de instrucciones y estimula la optimizacin de la manipulacin de registros. Se usan unos cuantos modos de direccionamiento porque casi todas las instrucciones tienen registros de direccionamiento simple. Pueden incluirse otros modos de direccionamento, como los operandos inmediatos y el modo relativo.

Al usar un formato de instrucciones simple, la longitud de las instrucciones puede fijarse y alinearse en palabras contiguas. Un aspecto importante del formato de instruccin RISC es que resulta fcil de decodificar. Por lo tanto, el control puede accesar simultneamente el cdigo de operacin y los campos de registro del cdigo de la instruccin. Al simplificar las instrucciones y su formato, tambin puede hacerse ms sencilla la lgica de control. Para operaciones ms rpidas, es preferible un control de circuitera sobre uno microprogramado Se presenta un ejemplo de control de circuitera, junto con la unidad de control de la computadora bsica. . Una caracterstica de los procesadores RISC es su capacidad para ejecutar una instruccin por ciclo de reloj. Esto se logra al hacer simultneamente las fases de recuperacin, decodificacin y ejecucin de dos o tres instrucciones, usando un procedimiento denominado paralelismo. Una instruccin cargar o almacenar puede requerir dos ciclos de reloj porque el acceso a memoria toma ms tiempo que las operaciones de registro. En ocasiones se atribuyen a RISC un paralelismo eficiente y otras cuantas caractersticas, aunque tambin pueden existir en arquitecturas no RISC. Otras caractersticas que se le atribuyen a la arquitectura RISC son:

Una cantidad de registros en el procesador relativamente grande. Uso de ventanas de registros traslapados para acelerar la llamada y retorno de procedimientos. Paralelismo de instrucciones eficiente.

Soporte de compilador para traduccin eficiente de programas de lenguaje de alto nivel a programas de lenguaje de mquina. Es conveniente tener una gran cantidad de registros para almacenar los resultados intermedios y para optimizar las referencias de operandos. La ventaja del almacenamiento en registros, a diferencia del almacenamiento en memoria, es que los registros pueden transferir informacin a otros registros mucho ms rpido que la transferencia de informacin hacia y desde la memoria. Por esa razn, se pueden minimizar las operaciones al conservar en registros los operandos a los que se accede con mayor frecuencia. Los estudios que muestran un rendimiento mejorado para la arquitectura RISC no establecen la diferencia entre los efectos del conjunto reducido de instrucciones y los efectos de un archivo de registros grande. Debido a eso, a veces se asocian con procesadores RISC una gran cantidad de registros en la unidad de procesamiento.

Ventanas de registros traslapados.

En los lenguajes de programacin de alto nivel ocurren con frecuencia llamadas y retornos de procedimientos. Cuando se traduce a lenguaje de mquina, una llamada de procedimiento produce una secuencia de instrucciones que guardan valores de registros, pasan parmetros que necesita el procedimiento y, despus, solicitan una subrutina que ejecute el cuerpo del procedimiento. Despus de un retorno de procedimiento, el programa restablece los valores de registro anteriores, trasmite los resultados al programa solicitante y retorna de la subrutina. Guardar y restablecer registros, y pasar parmetros y resultados son operaciones que consumen tiempo.

Algunas computadoras proporcionan bancos de registros mltiples y a cada procedimiento se le asigna su propio banco de registros. Esto elimina la necesidad de guardar y restablecer los valores de los registros. Algunas computadoras utilizan la pila de memoria para almacenar los parmetros que necesita el procedimiento, pero esto requiere un acceso a memoria cada vez que se accesa la pila.

Una caracterstica de algunos procesadores RISC es que utilizan ventanas de registros traslapados para ofrecer el paso de parmetros y evitar la necesidad de guardar y restablecer valores de registros. Cada solicitud de procedimiento produce la asignacin de una nueva ventana, que consiste en un conjunto de registros del archivo de registros, para que la use el nuevo procedimiento. Cada solicitud de procedimiento activa una nueva ventana de registros al incrementar un apuntador, mientras que el enunciado de retorno decrementa el apuntador y produce la activacin de la ventana anterior. Las ventanas para procedimientos adyacentes tienen registros traslapados que comparten para proporcionar el paso de parmetros y resultados.

El sistema tiene un total de 64 registros. Los registros del RO al R9 son registros globales que contienen parmetros que comparten todos los procedimientos. Los otros 64 registros se dividen en cuatro ventanas para alojar los procedimientos A, B, C y D. Cada ventana de registros consta de 10 registros locales y dos conjuntos de seis registros comunes a las ventanas adyacentes. Los registros locales se utilizan para las variables locales. Los registros comunes se utilizan para el intercambio de parmetros y resultados entre procedimientos adyacentes. Los registros traslapados comunes permiten que se pasen parmetros y el movimiento real de datos. En cualquier momento dado, slo est activa una ventana de registro con un apuntador que la seala como activa. Cada solicitud de procedimiento activa una nueva ventana de registros al incrementar el apuntador. Los registros altos del procedimiento llamado se sobreponen a los registros bajos del procedimiento llamado, y por lo tanto, los parmetros se transfieren en forma automtica del procedimiento que llama al llamado.

Como ejemplo, supongamos que el procedimiento A solicita el procedimiento B. Los registros del R26 al R31 son comunes a los dos procedimientos y, por lo tanto, el procedimiento A almacena los parmetros para el procedimiento B en estos registros. El procedimiento B utiliza los registros locales del R32 al R41 para el almacenamiento de variables locales. Si el procedimiento B solicita el procedimiento C, pasar los parmetros por medio de los registros del R42 al R47. Cuando el procedimiento B est listo para retornar al final su computacin, el programa almacena los resultados de estos clculos en los registros del R26 al R31 y transfiere de vuelta la ventana de registros al procedimiento A. Ntese que los registros R1O al R15 son comunes a los procedimientos A y D, por lo que las cuatro ventanas tienen una organizacin circular en donde A es adyacente a D

UNIDAD 4

CONTROL MICROPROGRAMADO

4.1 Memoria de control

La funcin de la unidad de control en una computadora digital es iniciar secuencias de microoperaciones. La cantidad de tipos de operaciones diferentes que estn disponibles en un sistema dado es finita. La complejidad del sistema digital se deriva de la cantidad de secuencias de microoperaciones que se ejecutan. Cuando la circutera genera seales de control por medio de tcnicas de diseo lgico convencional, se dice que la unidad de control es por circuitera. La microprogramacin es una segunda alternativa para disear la unidad de control de una computadora digital. El principio de microprogramacin es un mtodo elegante y sistemtico para controlar las secuencias de mcrooperaciones en una computadora digital.

La funcin de control que especifica una microoperacn es una variable binaria. Cuando se halla en un estado binario se ejecuta la microoperacin correspondiente. Una variable de control en estado binario opuesto no cambia el estado de los registros en el sistema. El estado activo de la variable de control puede ser el estado 1 o el estado O, segn la aplicacin. En un sistema organizado con bus, las seales de control que especifican microoperaciones son grupos de bits que seleccionan las trayectorias en los multplexores, decodificadores y unidades lgicas aritmticas.

La unidad de control inicia una serie de pasos secuenciales de microoperaciones. Durante cualquier momento, se van a iniciar ciertas microoperaciones, mientras otras quedan inactivas. Las variables de control pueden representarse en cualquier momento mediante una cadena de dgitos 1 y O, que se denomina palabra de control. Las palabras de control pueden programarse para realizar diferentes operaciones sobre los componentes del sistema. Una unidad de control cuyas variables de control binario se almacenan en la memoria se llama unidad de control microprogramada. Cada palabra en la memoria de control contiene una microinstruccin. La microinstruccin especifica una o ms microoperaciones para el sistema. Una secuencia de microinstrucciones constituye un microprograma. Como no se necesitan alteraciones del microprograma una vez que la unidad de control est en operacin, la memoria de control puede ser una memoria de slo lectura (ROM). El contenido de las palabras en la ROM es fijo y no puede alterarse mediante la programacin simple porque no es posible escribir en la ROM. Las palabras en ROM se vuelven permanentes durante la produccin de la unidad. El uso de un mcroprograma implica la colocacin de todas las variables de control en palabras de ROM para que las use la unidad de control a

travs de operaciones de lecturas sucesivas. El contenido de la palabra en RQM en cierta direccin especifica una microinstruccin.

Un descubrimiento ms avanzado conocido como microprogramacin dinmica permite que un microprograma se cargue al principio desde una memoria auxiliar; por ejemplo, desde un disco magntico. Las unidades de control que utilizan la microprogramacin dinmica emplean una memoria de control en la que se puede escribir. Este tipo de memoria puede utilizarse para escribir (para cambiar el microprograma) pero, por lo general, se utiliza para lectura. Una memoria que es parte de una unidad de control se denomina memoria de control.

Una computadora que emplea una unidad de control microprogramada tendr dos memorias separadas: una memoria principal y una memoria de control. La memoria principal est disponible para que el usuario almacene programas. El contenido de la memoria principal puede variar cuando se manipulan los datos y cada vez que se cambia el programa. El programa del usuario en la memoria principal est formado por instrucciones de mquina y datos. En contraste, la memoria de control contiene un microprograma fijo que el usuario ocasional no puede alterar. El microprograma consta de instrucciones que especifican diferentes seales de control interno para la ejecucin de microoperaciones de registro. Cada instruccin de mquina inicia una serie de microoperaciones en la memoria de control. Estas microinstrucciones generan las microoperaciones para llevar a cabo la bsqueda de la instruccin en la memoria principal; para evaluar la direccin efectiva, para ejecutar la operacin especfica mediante la instruccin y para retornar el control a la fase de bsqueda con el fin de repetir el ciclo para la siguiente instruccin.

La configuracin general de una unidad de control microprogramada se muestra en el diagrama de bloques. La memoria de control se considera como una ROM, dentro de la cual se almacena toda la informacin en forma permanente. El registro de direccionamiento de la memoria de control especifica la direccin de la microinstruccin y el registro de datos de control contiene la microinstruccin que se lee de la memoria. La microinstruccin contiene una palabra de control que especifica una o ms mcrooperaciones para el procesador de datos. Una vez que se ejecutan estas operaciones, el control debe determinar la siguiente direccin. La posicin de la instruccin siguiente puede ser la ms prxima en secuencia o puede ubicarse en cualquier otra parte en la memoria de control. Por esta razn, es necesario utilizar algunos bits de la microinstruccin presente para controlar la generacin de la direccin de la siguiente microinstruccin. La direccin siguiente tambin puede ser una funcin de condiciones de entrada externa. Mientras se ejecutan las microoperaciones se calcula la siguiente direccin en el circuito generador de la direccin siguiente y despus se transfieren al registro de direccionamiento de control para leer la prxima microinstruccin. Por lo tanto, una microinstruccin contiene bits para iniciar microoperaciones en la parte del procesador de datos y bits que determinan la secuencia de direccin para la memoria de control.

El generador de la siguiente instruccin en ocasiones se llama un secuenciador de microprograma, porque determina la secuencia de direccin que se lee en la memoria de control. La direccin de la siguiente instruccin puede especificarse de varias maneras, dependiendo de las entradas del secuenciador. Las funciones tpicas de un secuenciador de microprograma son incrementar el registro de direccionamiento de control en 1, cargar una direccin de la memoria de control en el registro de direccionamiento de control, transferir una direccin externa o cargar una direccin inicial para iniciar las operaciones de control.

El registro de datos de control contiene la microinstruccin presente mientras que la siguiente direccin se calcula y se lee en la memoria. El registro de datos en ocasiones se denomina registro de arquitectura paralela (pipeline) o paralelo. Ya que permite la ejecucin de las microoperaciones especificadas mediante la palabra de control simultneamente con la generacin de la siguiente microinstruccin. Esta configuracin requiere un reloj de dos fases, donde se aplica una de stas al registro de direccionamiento y la otra al registro de datos.

El sistema puede operar en el registro de datos de control al aplicar una sola fase del reloj al registro de direccionamiento. La palabra de control y la informacin de la siguiente direccin se toman de la memoria de control.

No hay que olvidar que una RQM opera como un circuito combinatorio con el valor de la direccin como entrada y la palabra correspondiente como salida. El contenido de la palabra especificada en ROM permanece en la lneas de salida, en tanto su valor de direccin se encuentra en el registro de direccin. No se necesita seal de lectura como en una memoria de acceso aleatorio. Cada pulso de reloj ejecutar las microoperaciones especificada mediante la palabra de control y tambin transferir una nueva direccin registro de direccin de control. En el ejemplo que sigue consideramos u reloj de una sola fase, por lo tanto no utilizamos un registro de datos c control. De esta manera, el registro de direccin es el nico componente el sistema de control que recibe pulsos de reloj. Los otros dos componente el secuenciador y la memoria de control son circuitos combinatorios y r necesitan un reloj.

La principal ventaja del control microprogramado es que, una establecida la configuracin de la circuitera, no hay necesidad de cambios posteriores. Si deseamos establecer una secuencia de control diferente para el sistema, todo lo que necesitamos hacer es especificar un conjunto microinstrucciones diferentes para la memoria de control. La configuracin de la circuitera no debe cambiarse para diferentes operaciones; lo nico que debe cambiarse es el microprograma que reside en la memoria de control.

Debe mencionarse que la mayora de las computadoras que se basa en el concepto de arquitectura de computadora con conjunto de instruccin reducido (RISC) utilizan el control por circuitera lugar de una memoria de control con un microprograma.

4.2 Secuencia de la direccin

Las microinstrucciones se almacenan en la memoria de control en grupos, cada grupo especifica una rutina. Cada instruccin de computadora tiene propia rutina de microprograma en la memoria de control para generar las microoperaciones que ejecutan la instruccin. La circuitera que controla secuencia de la direccin de la memoria de control debe poder secuencia las microinstrucciones dentro de una rutina y poder transferir el control d programa de una a otra. Para apreciar la secuencia de la direccin en unidad de control de programa, enumeremos los pasos que debe seguir control durante la ejecucin de una instruccin de computadora.

Se carga una direccin inicial en el registro de direccin de contra cuando se enciende la computadora. Esta direccin, por lo general, es la c la primera microinstruccin que activa la rutina de bsqueda de instruccin La rutina de bsqueda puede secuenciarse al incrementar el registro d direccionamiento de control por medio del resto de sus microinstrucciones.

Al final de la rutina de bsqueda, la instruccin est en el registro de instruccin de la computadora.

En seguida, la memoria de control recorre la rutina que determina la direccin efectiva del operando. Una instruccin de mquina puede tener bits que especifiquen diferentes modos de direccionamiento, como un direccionamiento indirecto y los registros ndice. Puede lograrse una rutina de clculo de direccin efectiva en la memoria de control mediante una microinstruccin de brinco, la cual est condicionada al estado de los bits de modo de la operacin. Cuando se termina la rutina de clculo de direccin efectiva, la direccin del operando est disponible en el registro de direccionamento de la memoria.

El siguiente paso es generar las microoperaciones que ejecutan la instruccin que se trajo de la memoria. Los pasos de la microoperacin que se van a generar en los registros del procesador dependen de la parte del cdigo de operacin de la instruccin. Cada instruccin tiene su propia rutina de microprograma almacenada en una cierta posicin de la memoria de control. La transformacin de bits del cdigo de instruccin a una direccin en la memoria de control donde se localiza la rutina se denomina proceso de mapeo. Un procedimiento de mapeo es una regla que transforma el cdigo de instruccin en una direccin de memoria de control. Una vez que se llega a la rutina requerida, las

microinstrucciones que ejecutan la instruccin pueden secuenciarse al incrementar el registro de direccionamiento de control, pero en ocasiones la secuencia de microoperaciones depender de los valores de ciertos bits de estado y los registros del procesador. Los mcroprogramas que emplean subrutinas requerirn un registro interno para almacenar la direccin de retorno. Las direcciones de retorno no pueden almacenarse en ROM porque no es posible escribir en la unidad.

Cuando se termina la ejecucin de la instruccin, el control debe retornar a la rutina de bsqueda. Esto se consigue al ejecutar una microinstruccn de brinco incondicional a la primera direccin de la rutina de bsqueda. En resumen, las posibilidades de secuencia de direccin que se requieren en la memoria de control son:

1. Incrementar el registro de direccionamiento de control. 2. Transferencia de control del programa condicional o incondicional, dependiendo de las condiciones de los bits de estado. 3. Un proceso de mapeo de los bits de la instruccin a una direccin para una memoria de control 4. Una opcin para llamar y regresar solicitud de una subrutina y retorno.

La microinstruccin en la memoria de control contiene un conjunto de bits para iniciar microoperaciones en los registros de la computadora y otros bits para especificar el mtodo con el que se obtiene la siguiente direccin. El diagrama muestra cuatro trayectorias diferentes de las que recibe la direccin el registro de direccionamiento de control (CAR). El incrementador incrementa el contenido del registro de direccionamiento de control en uno, para seleccionar la microinstruccin siguiente en secuencia. La transferencia de control del programa se consigue al especificar la direccin en uno de los campos de la microinstruccin. La transferencia de control condicional se obtiene al usar una parte de la microinstruccin para seleccionar un bit de estado especfico con el fin de determinar su condicin. Se transfiere una direccin externa a la memoria de control mediante un circuito lgico de mapeo. La direccin de retorno para una subrutina se almacena en un registro especial cuyo valor se utiliza despus, cuando el microprograma desea retornar de la subrutina.

4.3 Ejemplo de un microprograma

Una vez que se establece la configuracin de una computadora y su unidad de control microprogramado, es tarea del diseador generar el microcdigo para la memoria de control. Esta

generacin de cdigo se llama microprogramacin y es un proceso similar a la programacin de lenguaje de mquina convencional. Para apreciar este proceso, aqu presentamos una computadora digital simple y cmo se programa.

Configuracin de la computadora.

El programa de bloque de una computadora consta de dos unidades de memoria: una memoria principal para almacenar instrucciones y datos y una memoria de control para almacenar el microprograma. Se asocian cuatro registros con la unidad del procesador y dos con la unidad de control. Los registros del procesador son el contador de programa PC, el registro de direccionamiento AR, el registro de datos DR y el registro acumulador AC. La unidad de control tiene un registro de direccionamiento de control CAR y un registro de subrutina SBR. La memoria de control y sus registros se organizan como una unidad de control microprogramada.

La transferencia de informacin entre los registros del procesador se realiza mediante multiplexores, no por el bus comn. DR puede recibir informacin de AC, PC o de la memoria. AR puede recibir informacin de PC o DR. PC slo puede recibir informacin de AR. La unidad aritmtica, lgica y de corrimiento realiza microoperaciones con datos de AC y DR y coloca el resultado en AC. Ntese que la memoria recibe su direccin de AR. Los datos de entrada escritos en la memoria provienen de DR, y los datos que se leen en la memoria slo pueden ir a DR.

El formato de instruccin de computadora aparece. Consta de tres campos: un campo de 1 bit para direccionamiento indirecto representado por 1, un cdigo de operacin de 4 bits y un campo de direccin de 11 bits. La lista de cuatro de las 16 instrucciones posibles de referencia a memoria. La instruccin ADD suma el contenido del operando que se encuentra en la direccin efectiva al contenido de AC. La instruccin BRANCH provoca un brinco a la direccin efectiva s el operando en AC es negativo. El programa pasa a ejecutar la siguiente instruccin si AC no es negativo. AC es negativo si su bit de signo (el bit a la extrema izquierda del registro) es un 1. La instruccin STORE transfiere el contenido de AC a la palabra de memoria especificada por la direccin efectiva. La instruccin EXCHANGE intercambia los datos entre AC y la palabra de memoria especificada por la direccin efectiva.

Despus se mostrar que cada instruccin de computadora debe microprogramarse. Para no complicar el ejemplo de microprogramacn, aqu slo se consideran cuatro instrucciones. Debe recordarse que pueden incluirse otras 12 operaciones y cada instruccin debe microprogramarse mediante el procedimiento que se muestra enseguida.

Los componentes bsicos de una unidad de control microprogramada son la memoria y los circuitos que seleccionan la direccin siguiente. La parte de seleccin de direccin se llama secuenciador de mcroprograma. Puede construirse un secuenciador de microprograma con funciones digitales que se ajusten a una aplicacin particular. Sin embargo, al igual que existen grandes unidades RQM disponibles en encapsulados de circuitos integrados, tambin hay secuenciadores de propsito general convenientes para la construccin de unidades de control de microprograma. Para garantizar un amplio rango de aceptabilidad, un secuenciador de circuitos integrados debe proporcionar una organizacin interna que pueda adaptarse a un amplio rango de aplicaciones.

4.4 Secuenciador de Microprograma.

El propsito de un secuenciador de microprograma es presentar una direccin a la memoria de control con el fin de que pueda leerse y ejecutarse una microinstruccin. La lgica de siguiente direccin del secuenciador determina la direccin fuente especfica que se va a cargar dentro del registro de control de direccin. La eleccin de la direccin fuente se gua mediante los bits de informacin de la direccin siguiente que recibe el secuenciador de la microinstruccn presente. Los secuenciadores comerciales incluyen dentro de la unidad una pila de registro interno que se usa para el almacenamiento temporal de direcciones durante solicitudes de subrutina y ciclo de microprograma. Algunos secuenciadores proporcionan un registro de salida que puede funcionar como el registro de direccin para la memoria de control.

Para mostrar la estructura interna de un secuenciador de microprograma tpico analizaremos una unidad particular que es conveniente para usarse en el ejemplo de computadora de microprograma desarrollado en la seccin anterior. El diagrama de bloque del secuenciador de microprograma. La memoria de control se incluye en el diagrama para mostrar la interaccin entre el secuenciador y la memoria conectada a l. Hay dos multiplexores en el circuito. El primero selecciona una direccin de las cuatro fuentes y le marca una ruta hacia dentro del registro de direccin de control CAR. El segundo multiplexor prueba el valor de un bit de estado seleccionado y el resultado de la prueba se aplica a un circuito lgico de entrada. La salida de CAR proporciona la direccin para la memoria de control. El contenido de CAR se incrementa y se aplica a una de las entradas del multiplexor y al registro de subrutina SBR. Las otras tres entradas al multiplexor nmero 1 provienen del campo de direccin de la micronstruccin presente, de la salida de SBR y de una fuente externa que mapea la instruccin. Aunque el diagrama muestra un registro de subrutina nico, un secuenciador tpico tendr de cuatro a ocho niveles de profundidad. De esta manera, varas subrutinas pueden estar activas al mismo tiempo. Una operacin de salvar (push) en la pila (stack) y leer de la pila (pop), junto con un apuntador de pila, almacena y recupera la direccin de retomo durante las microinstrucciones de llamada y regreso.

El campo CD (condicin) de la microinstruccin selecciona uno de los bits de estado en el segundo multiplexor. Si el bit seleccionado es igual a 1, la variable T (prueba) es igual a 1; de otra manera, es igual a O. El valor T, junto con los dos bits del campo BR (brincar), van a un circuito lgico de entrada. La lgica de entrada en un secuenciador particular determinar el tipo de operaciones disponibles en la unidad. Las operaciones de secuenciador tpicas son: incrementar, transferir o hacer saltar, llamar y retornar de subrutina, cargar una direccin externa, salvar (en) o leer (de) la pila, y otras operaciones de secuenciamiento de direccin. Con tres entradas, el secuenciador puede proporcionar hasta ocho operaciones de secuenciamiento de direccin. Algunos secuenciadores comerciales tienen tres o cuatro entradas adems de la entrada T y, por lo tanto, proporcionan un mayor rango de operaciones.

El circuito lgico de entrada tiene tres entradas, I0, I1 y t, y tres salidas, S0, S1 y L. Las variables S0 y S1 seleccionan una de las direcciones fuente para CAR. La variable L habilita la entrada de carga en SBR. Los valores binarios de las dos variables de seleccin determinan la trayectoria del multiplexor. Por ejemplo, con S150 = 10, la entrada nmero 2 del multiplexor se selecciona y establece una trayectoria de transferencia de SBR a CAR. Ntese que cada una de las cuatro entradas, al igual que la salida de MUX 1, contiene una direccin de 7 bits.

El circuito puede construirse con tres compuertas AND, una compuerta OR y un inversor.

Ntese que el circuito incrementador del secuenciador no es un contador construido con flip-flops, sino un circuito combinatorio construido con compuertas. Puede disearse un incrementador de circuito combinatorio al poner en cascada una serie de circuitos semisumadores. El acarreo de salida de una etapa debe aplicarse a la entrada de la siguiente. Una entrada en la primera etapa menos significativa debe ser igual a 1 y proporcionar la operacin de incrementar en uno.

4.5 Formato de las microinstrucciones

El formato de microinstruccin para la memoria de control. Los 20 bits de la microinstruccin se dividen en cuatro partes funcionales. Los tres campos FI, F2 y F3 especifican microoperaciones para la computadora. El campo CD selecciona las condiciones del bit de estado. El campo BR especifica el tipo de transferencia de control que se usar. El campo AD contiene una direccin de memoria. El campo de direccin es de 7 bits porque la memoria de control tiene 128 = 2 palabras.

Las microoperaciones se subdividen en tres campos de tres bits cada uno. Los tres bits en cada campo se codifican para especificar siete operaciones distintas. Esto proporciona un total de 21 microoperaciones.

No pueden elegirse ms de tres operaciones para una microinstruccin, una para cada campo. Si se usan menos de tres microoperaciones, uno o ms de los campos usar el cdigo binario 000, que significa sin operacin. Como ejemplo, una microinstruccin puede especificar dos microoperaciones simultneas de F2 y F3 y ninguna de Fi.

DR < M[AR] con F2 = 100 PC PCi con F3= 101

Entonces los nueve bits de los campos de la microoperacin sern 000 100 101. Es importante comprender que no pueden especificarse de manera simultnea dos o ms microoperaciones conflictivas. Por ejemplo, un campo de microoperacin 010 001 000 no tiene sentido porque especifica la operacin para cambiar AC a O y restar DR de AC, al mismo tiempo.

Cada microoperacin se define con un enunciado de transferencia de registros y se le asigna un smbolo para usarse en un microprograma simblico. Todos los smbolos de microoperaciones de tipo transferencia utilizan cinco letras. Las primeras dos letras representan el registro fuente, la tercera es siempre una T, y las dos ltimas letras representan el registro destino. Por ejemplo, la microoperacin que especifica la transferencia A DR (Fi = 100) tiene el smbolo DRTAC, lo cual representa una transferencia de DR a AC.

El campo de condicin CD consta de dos bits que estn codificados para especificar condiciones de bits de cuatro estados. La primera condicin es siempre un 1, por lo que una referencia a CD = 00 (o el smbolo U) siempre encontrar verdadera la condicin. Cuando esta condicin se utiliza junto con el campo de transferencia BR, proporciona una operacin de transferencia incondicional. El bit indirecto 1 est disponible en el bit 15 de DR despus de que lee una instruccin de la memoria. El bit de signo de AC proporciona el siguiente bit de estado. El valor O, representado por z, es una variable binara cuyo valor es igual a 1 si todos los bits de AC son iguales a cero. Utilizaremos los smbolos U, 1, 5 y z para los cuatro bits de estado cuando anotemos programas en forma simblica.

El campo de transferencia BR consta de dos bits. Se utiliza junto con el campo de direcconamiento AD, para seleccionar la direccin de la siguiente micronstruccin. Cuando BR = 00, el control ejecuta una operacin de brinco JMP (la cual es similar a una transferencia de control), y cuando BR = 01, ejecuta una llamada a subrutina (CALL). Las dos operaciones son idnticas, excepto en que una microinstruccin de llamada almacena la direccin de retorno en el registro de subrutina SBR. Las operaciones de salto y llamada dependen del valor del campo CD. Si la condicin del bit de estado especificada en el campo CD es igual a 1, se transfiere la siguiente direccin del campo AD al registro de direccionamiento de control CAR. De otra manera, CAR se incrementa en 1.

El retorno de la subrutina se consigue con un campo BR igual a 10. Esto provoca la transferencia de la direccin de retorno de SBR a CAR. Se consigue el mapeo de los bits del cdigo de operacin de la instruccin a una direccin para CAR cuando el campo BR es igual a 11. Este mapeo aparece en la figura 7-3. Los bits del cdigo de operacin estn en DR (11-14) despus de que se lee una instruccin de la memoria. Ntese que las dos ltimas condiciones del campo BR son independientes de los valores de los campos CD y AD.

Microinstrucciones simblicas.

Los smbolos definidos pueden utilizarse para especificar microinstrucciones en forma simblica. Un microprograma simblico puede traducirse a su equivalente binario mediante un ensamblador. Un ensamblador de microprograma es similar en su concepto a un ensamblador de computadora convencional. La manera ms sencilla y directa de formular un lenguaje ensamblador para un microprograma es definir smbolos para cada campo en la microinstruccin y proporcionar a los usuarios la posibilidad de definir sus propias direcciones simblicas.

Cada lnea del microprograma del lenguaje ensamblador define una microinstruccin simblica. Cada microinstruccin simblica se divide en cinco campos: etiqueta, microoperaciones, CD, BR y AD. Los campos especifican la siguiente informacin.

1. El campo de la etiqueta puede estar vaco o especificar una direccin simblica. Una etiqueta termina con un signo de dos puntos (:). 2. El campo de microoperaciones consta de uno, dos o tres smbolos separados por comas. No puede haber ms de un smbolo de campo. El smbolo NOP se utiliza cuando la microinstruccin no tiene microoperaciones. El ensamblador traducir esto a nueve ceros.

3. El campo CD tiene una de las letras U, 1, 5 o z. 4. El campo BR contiene uno de los cuatro smbolos.

El campo AD especfica un valor para el campo de direccin de la microinstruccin en una de tres maneras posibles:

a. Con una direccin simblica, la cual tambin debe aparecer como etiqueta. b. Con el smbolo NEXT para representar la direccin siguiente en secuencia. c. Cuando el campo BR contiene un smbolo Ret o MAP, el campo AD se deja vaco y el ensamblador lo convierte a siete ceros.

tambin utilizaremos la seudoinstruccin ORG para definir el origen, o la primera direccin, de una rutina de microprograma. Por lo tanto, el smbolo ORG 64 informa al ensamblador que coloque la siguiente microinstruccin en la memoria de control de la direccin decimal 64, lo cual es equivalente a la direccin binaria 1000000.

UNIDAD 5

ORGANIZACIN DE ENTRADA-SALIDA

5.1 Dispositivos perifricos

El subsistema de entrada-salida de una computadora, denominado E/S, proporciona un modo de comunicacin eficiente entre el sistema central y el ambiente externo. Los programas y datos deben introducirse a la memoria de la computadora para su procesamiento y los resultados que se obtienen de los clculos deben grabarse o registrarse para el usuario. Una computadora no tiene ningn propsito til sin la capacidad de recibir informacin de una fuente externa y de transmitir los resultados de manera comprensible.

El medio ms familiar de introducir informacin en una computadora es a travs de un teclado tipo mquina de escribir, que permite a una persona introducir informacin alfanumrica en forma directa. Cada vez que se oprime una tecla, la terminal enva un carcter codificado en binario a la computadora. La velocidad ms alta posible para introducir informacin de esta manera depende de la velocidad para teclear de una persona. Por otra parte, la unidad de procesamiento central es un dispositivo extremadamente rpido capaz de ejecutar operaciones a muy alta velocidad. Cuando se transfiere a un procesador informacin de entrada mediante un teclado lento, el procesador estar ocioso la mayor parte del tiempo, mientras espera que llegue la informacin. Para utilizar una computadora de manera eficiente, deben prepararse con anticipacin una gran cantidad de programas y datos, y deben transmitirse a un medio de almacenamiento como discos o cintas magnticas. La informacin del disco se transfiere despus a la memoria de la computadora a gran velocidad. Los resultados de los programas tambin se transfieren a un almacenamiento de alta velocidad, como discos, desde los cuales se pueden transferir, ms tarde, a una impresora para proporcionar una salida impresa de los resultados.

Los dispositivos que estn bajo el control directo de la computadora estn conectados en lnea. Estos dispositivos estn diseados para leer informacin hacia adentro o afuera de la unidad de memoria ante un comando de la CPU y se considera que son parte del sistema total de la computadora. Los dispositivos de entrada o salida conectados a la computadora tambin se llaman perifricos. Entre los perifricos ms comunes estn los teclados, los monitores y las impresoras. Los perifricos que proporcionan almacenamiento auxiliar para el sistema son cintas y discos magnticos. Los perifricos son dispositivos electromecnicos y electromagnticos de cierta complejidad. Aqu slo se proporcionar un breve anlisis de su funcionamiento, sin entrar en detalles de su construccin interna.

Los monitores de video son los perifricos de uso ms comn. Consisten en un teclado como dispositivo de entrada y una pantalla como dispositivo de salida. Hay diferentes tipos de monitores de video, pero los ms populares utilizan un tubo de rayos catdicos (CRT). El CRT contiene un can electrnico que enva un haz de electrones a una pantalla fosforescente al frente del tubo. El haz puede desviarse en forma horizontal y vertical. Para producir un patrn en la pantalla, una rejilla dentro del CRT recibe un voltaje variable que hace que el haz entre en contacto con la pantalla y la haga brillar en puntos seleccionados. Las seales horizontales y verticales desvan el haz y lo hacen barrer por el tubo, haciendo que aparezca en la pantalla un patrn visual. Una caracterstica de los monitores es un cursor que marca la posicin en que se insertar el siguiente carcter en la pantalla. El cursor puede moverse a cualquier posicin en la pantalla, sobre un carcter nico, una palabra o cualquier lnea. Las teclas de edicin agregan o borran informacin con base en la posicin del cursor. El monitor puede operar en forma de carcter nico, de donde todos los caracteres introducidos en la pantalla a travs del teclado se trasmiten a la computadora en forma simultnea. En el modo de bloque, el texto editado se almacena primero en una memoria local dentro de la terminal. El texto se transfiere a la computadora como un bloque de datos.

Las impresoras proporcionan un registro permanente, sobre el papel, de los datos o el texto de salida de la computadora. Hay tres tipos bsicos de impresoras de caracteres: de margarita, de matriz de puntos y lser. La impresora de margarita contiene un disco con los caracteres colocados en la orilla de la circunferencia. Al imprimir un carcter, la rueda gira a la posicin apropiada y despus un imn, al que se aplica una corriente, la oprime contra la cinta. La impresora de matriz de puntos contiene un conjunto de puntos a lo largo del mecanismo de impresin. Por ejemplo, una impresora de matriz de 5 X 7 puntos que imprime 80 caracteres por lnea tiene varias lneas horizontales y cada una consta de 5 X 80 = 400 puntos. Cada punto puede imprimirse o no, dependiendo de los caracteres especficos que estn impresos en la lnea. La impresora lser utiliza un tambor fotogrfico rotatorio que se emplea para imprimir las imgenes de caracteres. Despus, el patrn se transfiere sobre el papel igual que en una mquina copiadora.

Las cintas magnticas se utilizan principalmente para almacenar archivos de datos: por ejemplo, el registro de la nmina de una compaa. El acceso es secuencial y consta de registros que pueden accesarse uno despus de otro, conforme la cinta se mueve a lo largo de un mecanismo estacionario de lectura-escritura. Es uno de los mtodos ms baratos y lentos para almacenar y tiene la ventaja de que las cintas pueden quitarse cuando no se usan. Los discos magnticos tienen superficies rotatorias de alta velocidad, con una cubierta de material magntico.

Sobre todo, los discos se utilizan para el almacenamiento de grandes cantidades de programas y datos Las cintas y discos se analizan junto con su papel como memoria auxiliar.

Otros dispositivos de entrada y salida que se encuentran en sistemas de computadora son los gratificadores digitales, los lectores de caracteres pticos y magnticos, los convertidores analgicosdigitales y equipo diverso de adquisicin de datos. No todas las entradas provienen de personas y no todas las salidas estn dirigidas a ellas. Las computadoras se utilizan para controlar varios procesos en tiempo real, como provisin de partes de mquinas, procedimientos de ensamblado en lnea y procesos qumicos e industriales. Para tales aplicaciones, debe proporcionarse un mtodo para captar las condiciones de estado del proceso y enviar seales de control al proceso que se controle.

La organizacin de entrada-salida de una computadora es una funcin del tamao de la computadora y de los dispositivos conectados a ella. La diferencia entre un sistema grande y pequeo depende en gran parte de la cantidad de circuitera que tiene disponible la computadora para comunicarse con unidades perifricas y la cantidad de perifricos conectados al sistema. Como cada perifrico se comporta en forma diferente de los dems, sera prohibitivo entrar en detalles de las interconexiones necesarias entre la computadora y cada perifrico. En este captulo se presentan ciertas tcnicas comunes a la mayora de los perifricos.

5.2 Interface de entrada-salida

La interface de entrada-salida proporciona un mtodo para transferir informacin entre dispositivos de almacenamiento interno y de E/S externas. Los perifricos conectados a una computadora necesitan enlace de comunicacin especial para funcionar como una interface con la unidad de procesamiento central. El propsito del enlace de comunicacin es resolver las diferencias que existen entre la computadora central y cada perifrico. Las diferencias principales son:

1. Los perifricos son dispositivos electromecnicos y electromagnticos y su manera de operacin es diferente a la de la CPU y la memoria, que son dispositivos electrnicos. Por lo tanto, puede requerirse una conversin de valores de seales. 2. La velocidad de transferencia de datos de los perifricos, por lo general, es menor que la velocidad de transferencia de la CPU y, en consecuencia, puede necesitarse un mecanismo de sincronizacin. 3. Los cdigos de datos y los formatos en los perifricos son diferentes del formato de la palabra en la CPU y en la memoria. 4. Los modos de operacin de los perifricos son diferentes uno de otro y cada uno debe estar controlado para no perturbar la operacin de otros perifricos conectados a la CPU.

Para resolver estas diferencias, los sistemas de computadora incluyen componentes de circuitera especiales entre la CPU y los perifricos para supervisar y sincronizar todas las transferencias de entrada y salida. Estos componentes se llaman interfaces, porque se comunican tanto con el canal del procesador como con el dispositivo perifrico.

Adems, cada dispositivo puede tener su propio controlador que supervisa las operaciones del mecanismo particular en el perifrico. Canal de EIS y mdulos de interface Un enlace de comunicacin tpico entre el procesador y varios perifricos. El canal de E/S, consta de lneas de datos, lneas de direccin y lneas de control. Se emplean el disco magntico, la impresora y la terminal en casi cualquier computadora de propsito general. La cinta magntica se utiliza en algunas computadoras para el almacenamiento de respaldos. Cada dispositivo perifrico tiene asociada una unidad de interface. Cada interface decodifica la direccin y el control que se recibe del canal de E/S, y las interpreta para el perifrico y proporciona seales para el controlador del perifrico. Tambin sincroniza el flujo de datos y supervisa la transferencia entre el perifrico y el procesador. Cada perifrico tiene su propio controlador que opera el dispositivo electromecnico particular. Por ejemplo, el controlador de impresora se hace cargo del movimiento de papel, la temporizacin de la impresin y la seleccin de los caracteres que se imprimen. Un controlador puede alojarse en forma separada o puede integrarse fsicamente con el perifrico.

El canal de E/S del procesador se conecta a todas las interfaces del perifrico. Para comunicarse con un dispositivo particular, el procesador coloca una direccin de dispositivo en las lneas de direccionamiento. Cada lnea conectada al canal de E/S contiene un decodificador de direccin que monitorea las lneas de direccionamiento. Cuando la interface detecta su propia direccin, activa la trayectoria entre las lneas del canal y el dispositivo que controla. Todos los perifricos cuyas direcciones no corresponden a la direccin en el canal, son inhabilitados por su interface.

Al mismo tiempo que queda disponible la direccin en las lneas de direccionamiento, el procesador proporciona un cdigo de funcin en las lneas de control. La interface seleccionada responde al cdigo de funcin y avanza a ejecutarlo. El cdigo de funcin se denomina un comando de E/S y es, en esencia, una instruccin que se ejecuta en la interface y est conectada a la unidad perifrica. La interpretacin del comando depende del perifrico que direcciona el procesador. Una interface puede recibir cuatro tipos de comandos. Se clasifican como control, estado, salida de datos y entrada de datos.

Se emite un comando de control para activar el perifrico e informarle qu hacer. Por ejemplo, una unidad de cinta magntica puede instruirse para que haga regresar la cinta un registro, para que se rebobine o para que empiece a moverse hacia adelante. El comando de control particular que se emite depende del perifrico y cada perifrico recibe su propia secuencia distinta de comandos de control, dependiendo de su modo de operacin.

Se utiliza un contando de estado para probar diversas condiciones de estado en la interface y un perifrico. Por ejemplo, es posible que la computadora quiera comprobar el estado del perifrico antes de que se inicie una transferencia. Durante la transferencia, pueden ocurrir uno o ms errores que detecta la interface. Estos errores se representan al activar bits en un registro de estado que el procesador pueda leer en ciertos intervalos.

Un comando de salida de datos hace que la interface responda transfiriendo datos del canal a uno de sus registros. Consideremos un ejemplo con una unidad de cinta. La computadora comienza a mover la cinta al emitir un comando de control. . Despus, el procesador monitorea el estado de la cinta mediante un comando de estado. Cuando la cinta est en la posicin correcta, el procesador enva un comando de salida de datos. La interface responde a la direccin y al comando y transfiere la informacin de las lneas de datos del canal a su registro intermedio (buffer). En seguida, la interface comunica con el controlador de la cinta y enva los datos que se van a almacenar.

El comando de entrada de datos es lo opuesto al de salida de datos. En este caso, la interface recibe datos del perifrico y los coloca en su registro intermedio. El procesador verifica silos datos estn disponibles mediante un comando de estado y despus enva un comando de entrada de datos. La interface coloca los datos sobre las lneas de datos, donde el procesador los acepta.

5.3 Transferencia asncrona de datos

Las operaciones internas en un sistema digital se sincronizan mediante pulsos de reloj proporcionados por un generador de pulsos comn. Los pulsos de reloj se aplican a todos los registros dentro de una unidad y todas las transferencias de datos entre registros internos ocurren en forma simultnea durante el transcurso de un pulso de reloj. Se designan dos unidades, por ejemplo la CPU y la interface de E/S, independientes una de la otra. Si los registros de la interface comparten un reloj comn con los registros de la CPU, se dice que la transferencia entre las dos unidades es sncrona. En la mayora de los casos, la temporizacin interna en cada unidad es independiente de la otra, que en ese caso utiliza su propio reloj para sus registros internos. En ese caso, se dice que las dos unidades son asncronas una de la otra. Este enfoque se utiliza con mucha frecuencia en la mayora de los sistemas de computadora.

La transferencia de datos asncrona entre dos unidades independientes requiere que se transmitan seales de control entre las unidades que se comunican para indicar el momento en el cual se estn transmitiendo datos.

Una manera de conseguir esto es mediante un pulso de habilitacin (estroboscpico), proporcionado por medio de una de las unidades para indicar s. la otra unidad cundo tiene que ocurrir la transferencia. Otro mtodo muy. Generalizado es acompaar cada conjunto de datos que se transfiere con una seal de control que indica la presencia de datos en el canal. La unidad que recibe el conjunto de datos responde con otra seal de control para reconocimiento la recepcin de los datos. Este tipo de acuerdo entre dos unidades in pendientes se conoce como reconocimiento mutuo (handshaking).

El mtodo de pulso estroboscpico y el mtodo de reconocimiento transferencia de datos asncronos no se limitan a las transferencias de El De hecho, se utilizan ampliamente en numerosas ocasiones que requieren transferencia de datos entre dos unidades independientes. En general, consideramos la unidad que transmite como la fuente, y la unidad que recibe como el destino. Por ejemplo, la CPU es la unidad fuente durante la transferencia de salida o de escritura y es la unidad destino durante una transferencia de entrada o de lectura. Se acostumbra especificar la transferencia asncrona entre dos unidades independientes mediante un diagrama temporizacin que muestra la relacin de temporizacin que debe e entre las seales de control y los datos en los canales. La secuencia de con durante una transferencia asncrona depende de si la transferencia la unidad fuente o la unidad destino.

Control de habilitacin.

El mtodo de control de habilitacin (estroboscpico) de transferencia asncrona de datos emplea una lnea de control nica para temporizar cada transferencia. La unidad fuente o la unidad destino pueden activar el pulso de habilitacin. Se muestra una transferencia iniciada por la fuente. El canal de datos lleva la informacin binaria de la unidad fuente a la unidad destino. De manera tpica, el canal tiene lneas mltiples para transferir un byte o palabra completos. El estroboscopio es una lnea nica que informa a la unidad destino cundo est disponible en el canal una palabra de datos vlida.

Como se muestra en el diagrama de temporizacin, primero la unidad fuente coloca los datos en el canal de datos. Despus de un breve retraso, para asegurar que los datos se establecen en un valor regular, la fuente activa el pulso de habilitacin. La informacin en el canal de datos y la seal de habilitacin se quedan en estado activo durante un tiempo suficiente para permitir que la unidad destino reciba los datos. Con frecuencia la unidad destino utiliza un flanco descendente del pulso de habilitacin para transmitir el contenido del canal de datos a sus registros internos. La fuente quita los datos del canal en un breve perodo previo a la deshabilitacin del pulso de habilitacin. En realidad, la fuente no tiene que cambiar la informacin en el canal de datos, el hecho de que la seal de habilitacin

est deshabitada indica que el canal de datos no contiene datos vlidos. Habr disponibles nuevos datos vlidos slo despus de que se vuelva a habilitar el pulso de control de habilitacin.

Se muestra una transferencia de datos iniciada por la unidad destino. En este caso, la unidad destino activa el pulso de habilitacin, informando a la fuente que proporcione los datos. La unidad fuente responde colocando la informacin binaria solicitada en el canal de datos, Los datos deben ser vlidos y permanecer en el canal el tiempo suficiente para que la unidad destino los acepte. Puede utilizarse otra vez el flanco descendente del pulso de habilitacin para activar un registro destino. Despus la unidad destino habilita el pulso. La fuente quita los datos del canal despus de un intervalo de tiempo predeterminado.

En muchas computadoras, el pulso de habilitacin se controla en realidad mediante pulsos de reloj en la CPU. La CPU est siempre a cargo de los canales e informa a las unidades externas cmo transferir datos. Por ejemplo, el pulso de habilitacin debe ser una seal de control de escritura de memoria de la CPU a una unidad de memoria. La fuente, en este caso la CPU, coloca una palabra en el canal y le informa a la unidad de memoria, la cual es el destino, que sta es una operacin de escritura. De igual manera, el pulso de habilitacin puede ser una seal de control de lectura de memoria de la CPU a una unidad de memoria. El destino, la CPU, inicia la operacin de lectura para informar a la memoria, la cual es la fuente, que coloque la palabra seleccionada en el canal de datos.

La transferencia de datos entre la CPU y una unidad de interface es similar a la que se acaba de describir. Por lo general, la transferencia de datos entre una interface y un dispositivo de E/S es controlada por un conjunto de lneas de reconocimiento mutuo.

Transferencia serial asncrona.

La transferencia de datos entre dos unidades puede hacerse en forma paralela o serial. En la transmisin de datos paralela, cada bit en el mensaje tiene su propia trayectoria y todo el mensaje se transmite al mismo tiempo. Esto significa que un mensaje de n bits debe transmitirse a travs de n trayectorias conductoras separadas. En la transferencia de datos serial, cada bit en el mensaje se enva en secuencia uno a la vez. Este mtodo requiere el uso de un par de conductores o un conductor y una tierra comn. La transmisin paralela es ms rpida pero requiere muchas lneas. Tambin se utiliza para distancias cortas y cuando la velocidad es importante. La transmisin serial es ms lenta pero es menos cara porque slo requiere un par de conductores.

La transmisin serial puede ser sncrona o asncrona. En la transmisin sncrona, las dos unidades comparten una frecuencia de reloj comn y los bits se transmiten en forma continua a la velocidad que dictan los pulsos de reloj. En la transmisin serial de larga distancia, cada unidad es manejada por un reloj separado de la misma frecuencia. En forma peridica se transmiten seales de sincronizacin entre las dos unidades para mantener sus relojes en sincrona uno con el otro. En la transmisin asncrona, slo se enva informacin binaria cuando est disponible y la lnea est desocupada cuando no hay informacin por transmitir. Esto contrasta con la informacin sncrona, en la cual los bits deben transmitirse en forma continua para conservar sincronizada la frecuencia de reloj en ambas unidades.

Una tcnica serial de transmisin asncrona de datos, utilizada en muchas terminales interactivas emplea bits especiales que se insertan en ambos extremos del cdigo de carcter. Con esta tcnica, cada carcter consta de tres partes: un bit de inicio, los bits del carcter y los bits de paro. La convencin es que el transmisor est en el estado 1 cuando no se transmiten caracteres. El primer bit, llamado el bit de inicio, es siempre O y se utiliza para indicar el comienzo de un carcter. El ltimo bit, llamado el bit de paro, es siempre 1.

Un carcter transmitido puede detectarlo el receptor a partir del conocimiento de las reglas de transmisin:

1. Cuando no se est enviando un carcter, la lnea se mantiene en el estado 1. 2. La iniciacin de una transmisin de carcter se detecta a partir del bit de inicio, el cual es siempre O. 3. Los bits de caracteres siempre van despus del bit de inicio. Despus de que se transmite el ltimo bit de carcter, se detecta un bit de paro cuando la lnea retorna al estado 1, por al menos un tiempo correspondiente a un bit.

Al usar estas reglas, el receptor puede detectar el bit de inicio cuando la lnea pasa de 1 a 0. Un reloj en el receptor examina la lnea en los tiempos de bit convenientes. El receptor conoce la velocidad de transferencia de los bits y la cantidad de bits de caracteres que debe aceptar. Despus de que se transmiten los bits de caracteres, se envan uno o dos bits de paro. Los bits de paro estn siempre en el estado 1 y marcan el fin del carcter para dar a entender el estado desocupado o de espera.

Al final del carcter, la lnea se conserva en el estado 1 por un perodo de al menos uno o dos tiempos correspondientes a un bit, para que el transmisor y el receptor puedan volverse a sincronizar. El tiempo que la lnea permanece en este estado depende de la cantidad de tiempo requerida por el equipo para volverse a sincronizar. Algunas terminales electromecnicas antiguas utilizan dos bits de paro, pero las terminales ms nuevas utilizan slo un bit. La lnea permanece en el estado 1 hasta que se transmite

otro carcter. El tiempo de paro asegura que no llegar un carcter nuevo durante uno o dos tiempos de bit.

Como ejemplo, consideremos la transmisin serial de una terminal cuya velocidad de transferencia es de 10 caracteres por segundo. Cada carcter transmitido consta de un bit de inicio, ocho bits de informacin, y dos bits de paro, para un total de 11 bits. 10 caracteres por segundo significan que cada carcter necesita O.ls para la transferencia. Como se van a transmitir 11bits, se sabe que el tiempo para un bit es 9.09 ms. La velocidad en baudios se define como la velocidad a la cual se transmite informacin serial y es equivalente a la transferencia de datos en bits por segundo. Diez caracteres por segundo con un formato de 11 bits tiene una velocidad de transferencia de 110 baudios. La terminal tiene un teclado y una impresora. Cada vez que se oprime una tecla, una terminal enva 11 bits en forma serial a lo largo de una lnea. Para imprimir un carcter en la impresora, debe recibirse un mensaje de 11 bits a travs de otra lnea. La interface de la terminal consta de un transmisor y un receptor. El transmisor acepta un carcter de 8 bits de la computadora y procede a enviar un mensaje serial de 11 bits a travs de la lnea de la impresora. El receptor acepta el mensaje serial de 11 bits de la lnea del teclado e introduce el cdigo de carcter de 8 bits dentro de la computadora. Estn disponibles circuitos integrados diseados en forma especfica para proporcionar la interface entre la computadora y terminales interactivas similares. Tal circuito se denomina una interface de comunicacin asncrona o receptor-transmisor asncrono universal (universal asynchronous receiver-transmitter, UART).

5.4 Modos de transferencia

La informacin binaria recibida de un dispositivo externo por lo general se almacena en la memoria para su procesamiento posterior. La informacin transferida de la computadora central a un dispositivo externo se origina en la unidad de memoria. La CPU slo ejecuta las instrucciones E/S y puede aceptar los datos en forma temporal, pero la fuente o destino final es la unidad de memoria. La transferencia de datos entre la computadora central y los dispositivos de E/S puede manejarse en diversos modos. Algunos modos utilizan la CPU como una trayectoria intermedia; otros transfieren los datos directamente a y de la unidad de memoria. La transferencia de datos de y a perifricos puede manejarse en uno de tres modos posibles.

Las operaciones de E/S programadas son el resultado de instrucciones de E/S escritas en el programa de la computadora. Cada transferencia de datos se inicia mediante una instruccin en el programa. Por lo general, la transferencia es hacia y desde un registro de CPU o perifrico. Se necesitan otras instrucciones para transferir los datos hacia y desde la CPU y la memoria.

1. E/S programada

2. E/S iniciada por interrupcin Acceso directo a memoria (DMA) transferir datos bajo el control del programa requiere que la CPU realice un monitoreo constante de perifricos. Una vez que se inicia una transferencia de datos, es necesario que la CPU monitoree la interface para ver cundo puede volverse a hacer una transferencia. Depende de las instrucciones programadas y ejecutadas en la CPU, observar en detalle todo lo que acontece en la unidad de interface y en el dispositivo de E/S.

En el mtodo de E/S programada, la CPU permanece en un ciclo de programa hasta que la unidad de E/S indica que est preparada para transferencia de datos. Este es un proceso que consume bastante tiempo porque mantiene ocupado el procesador en forma innecesaria. Puede evitarse al usar una opcin de interrupcin y comandos especiales para informar a la interface que emita una seal de solicitud de interrupcin cuando estn disponibles los datos del dispositivo. Mientras tanto, la CPU puede avanzar a ejecutar otro programa. En ese lapso, la interface sigue monitoreando dispositivos. Cuando la interface determina que el dispositivo est preparado para transferencia de datos, genera una solicitud de interrupcin a la computadora. Cuando se detecta la seal de interrupcin externa, la CPU detiene un momento la tarea que est procesando, transfiere el control a un programa de servicio para procesar la transferencia de E/S y despus regresa a la tarea que ejecutaba originalmente.

La transferencia de datos bajo E/S programada es entre la CPU y un perifrico. En el acceso directo a memoria, (DMA), la interface transfiere datos hacia adentro y haca afuera de la unidad de memoria por medio del canal de memoria. La CPU inicia la transferencia al proporcionar a la interface la direccin inicial y la cantidad de palabras necesarias que se van a transmitir y despus avanza a ejecutar otras tareas. Cuando se hace la transferencia, el DMA solcita ciclos de memoria mediante el canal de memoria. Cuando el controlador de memoria concede la solicitud, el DMA transfiere los datos directamente a la memoria. La CPU slo retrasa su operacin de acceso a memoria para permitir la transferencia directa de E/S a memoria. Como la velocidad de los perifricos por lo general es menor que la velocidad del procesador, las transferencias a memoria de E/S no son frecuentes en comparacin con el acceso a memoria del procesador.

Muchas computadoras combinan la lgica de interface con los requisitos para acceso directo a memoria en una unidad y la llaman procesador de E/S IOP. El IOP puede manejar muchos perifricos a travs de un DMA y la opcin de interrupcin. Con tal sistema, la computadora se divide en tres mdulos separados: la unidad de memoria, la CPU y el IOP.

En el mtodo de E/S programada, el dispositivo de E/S no tiene acceso directo a la memoria. Una transferencia de un dispositivo de E/S a memoria requiere que la CPU ejecute varias instrucciones, incluyendo una instruccin de entrada para transferir los datos del dispositivo a la CPU y una instruccin de almacenamiento para transferir los datos de la CPU a la memoria. Pueden necesitarse otras instrucciones para verificar que estn disponibles los datos del dispositivo y para contar la cantidad de palabras transferidas.

Un ejemplo de transferencia de datos de un dispositivo de E/S por medio de una interface a la CPU. El dispositivo transfiere bytes de datos uno a la vez, conforme estn disponibles. Cuando est disponible un byte de datos, el dispositivo lo coloca en el canal de E/S y habilita su lnea de datos vlidos. La interface acepta el byte en su registro de datos y habilita la lnea de datos aceptados. La interface activa un bit en el registro de estado que denominaremos bit de "bandera" o bit E. Ahora el dispositivo puede deshabilitar la lnea de datos vlidos, pero no transferir otro byte hasta que la interface deshabilite la lnea de datos aceptados. Esto se apega al procedimiento de reconocimiento mutuo.

Est escrito un programa para la computadora con el fin de comprobar la bandera en el registro de estado, para determinar si se ha colocado un byte en el registro de datos mediante el dispositivo de E/S. Esto se hace al leer el registro de estado dentro del registro de la CPU y comprobar el valor del bit de bandera. Si la bandera es igual a 1, la CPU lee los datos del registro de datos. Despus, la CPU o la interface desactivan el bit de bandera a 0, dependiendo de cmo estn diseados los circuitos de la interface. Una vez que se desactiva la bandeja, la interface deshabilita la lnea de datos aceptados y el: dispositivo puede transferir, entonces, el siguiente byte de datos.

Un diagrama de flujo del programa que debe escribirse para la CPU. Se considera que el dispositivo est enviando una secuencia de bytes que debe almacenarse en la memoria. La transferencia de cada byte requiere de tres instrucciones: 1. Leer el registro de estado. 2. Comprobar el estado del bit de bandera y transferir el control al paso 1 s no est activado o al paso 3 si lo est. Leer el registro de datos. Cada byte se lee en el registro de la CPU y despus se transfiere a la memoria con una instruccin de almacenar. Una tarea comn de programacin de E/S es transferir un bloque de palabras de un dispositivo de E/S y almacenarlas en un buffer de memoria. Un programa que almacena caracteres de entrada en el bffer que utiliza las instrucciones.

El mtodo de E/S programada es particularmente til en computadoras pequeas de baja velocidad o en sistemas que estn dedicados a monitorear un dispositivo en forma continua. La diferencia en la velocidad de transferencia de informacin entre la CPU y el dispositivo de E/S hace ineficiente este tipo de transferencia. Para apreciar por qu es ineficiente, consideremos una computadora tpica que puede ejecutar las dos instrucciones que leen el registro de estado y comprueban la bandera en un microsegundo. Consideremos que el dispositivo de entrada transfiere sus datos a una velocidad promedio de 100 bytes por segundo. Esto es equivalente a un byte cada 10000 micro-segundos. Esto significa que la CPU comprobar la bandera 10,000 veces entre cada transferencia. La CPU est gastando tiempo mientras comprueba la bandera en lugar de hacer alguna otra tarea de procesamiento til.

5.5 Prioridad de interrupcin

La transferencia de datos entre la CPU y un dispositivo de E/S la inicia la CPU. Sin embargo, la CPU no puede comenzar la transferencia a menos que el dispositivo est preparado para comunicarse con la CPU. La disponibilidad del dispositivo puede determinarse de una seal de interrupcin. La CPU responde a la solicitud de interrupcin al almacenar la direccin de retorno del PC dentro de una pila de memoria y despus el programa se transfiere a una rutina de servicio que procesa la transferencia solicitada. Algunos procesadores tambin salvan dentro de la pila la palabra de estado del procesador (PSW) y cargan una nueva PSW para la rutina de servicio. Aqu no consideramos la PSW para no complicar el anlisis de las interrupciones de E/S.

En una aplicacin tpica, se conectan varios dispositivos de E/S a la computadora, y cada dispositivo puede originar una solicitud de interrupcin. La primera tarea del sistema de interrupcin es identificar la fuente de la interrupcin. Tambin existe la posibilidad de que varas fuentes soliciten servicio en forma simultnea. En este caso, el sistema debe decidir tambin a cul dispositivo atender primero.

Una prioridad de interrupcin es un sistema que establece una prioridad entre las diversas fuentes para determinar qu condicin se va atender primero cuando llegan al mismo tiempo dos solicitudes. El sistema tambin puede determinar cuales condiciones se permiten para interrumpir a la computadora mientras se da servicio a otra interrupcin. Se asignan niveles de interrupcin de alta prioridad a solicitudes que, si se posponen o interrumpen, pueden producir consecuencias serias. Los dispositivos con transferencias de alta velocidad como discos magnticos reciben una alta prioridad y los dispositivos lentos como los teclados reciben baja prioridad. Cuando dos dispositivos interrumpen la computadora al mismo tiempo, la computadora atiende al dispositivo con mayor prioridad.

Puede establecerse la prioridad de interrupciones simultneas mediante programacin o circuitera. Se usa un procedimiento de "encuesta" para identificar la fuente de prioridad ms alta por medio de programacin. En este mtodo existe una direccin de transferencia de control comn para todas las interrupciones y el programa cuida que las interrupciones comiencen en la direccin de transferencia y registra las fuentes de interrupcin en secuencia. El orden en la cual se prueba determina la prioridad de cada interrupcin. Se prueba primero la fuente de prioridad ms alta y, si su seal de interrupcin est activada, el control se transfiere a una rutina de servicio para esta fuente. De otra manera, se prueba la fuente con la siguiente prioridad hacia abajo y as sucesivamente. Por lo tanto, la rutina de servicio inicial para todas las interrupciones consiste en un programa que prueba las fuentes de interrupcin en secuencia y transfiere el control a una de varias rutinas de servicio posibles. La rutina de servicio particular alcanzada, pertenece al dispositivo de prioridad ms alta entre todos los dispositivos que interrumpieron a la computadora. La desventaja del mtodo de programacin es que, si hay muchas interrupciones, el tiempo requerido para registrarlas puede exceder el tiempo disponible para atender el dispositivo de E/S. En esta situacin, puede utlizarse una unidad de circuito de prioridad de interrupcin para acelerar la operacin.

Una unidad de prioridad de interrupcin de circuitera funciona como un administrador general en un ambiente de sistema de interrupciones. Acepta solicitudes de interrupcin de muchas fuentes, determina cul de las solicitudes que llegan tiene la prioridad ms alta y emite una solicitud de interrupcin a la computadora con base en esta determinacin. Para acelerar la operacin, cada fuente de interrupcin tiene su propio vector de interrupcin para accesar en forma directa su propia rutina de servicio. Por lo tanto, no se necesita el registro porque todas las decisiones las establece la unidad de circuito de prioridad de interrupcin. La funcin de prioridad de crcuitera puede establecerla una conexin serial o paralela de lneas de interrupcin. La conexin serial tambin se conoce como el mtodo de cadena circular.

5.6 Acceso directo a memoria (DMA)

La transferencia de datos entre un dispositivo de almacenamiento rpido como un disco magntico y la memoria, con frecuencia est limitada por la velocidad de la CPU. Quitar la CPU de la trayectoria y permitir que el dispositivo perifrico maneje en forma directa los canales de memoria mejorara la velocidad de transferencia. Esta tcnica de transferencia se llama acceso directo a memoria (Direct Memory Access, DMA). Durante una transferencia DMA, la CPU est inactiva y no tiene el control de los canales de memoria. Un controlador DMA funciona sobre los canales para manejar la transferencia en forma directa entre el dispositivo de E/S y la memoria.

La CPU puede colocarse en un estado inactivo de diversas maneras. Un mtodo comn que se usa con mucha frecuencia en los microprocesadores, es deshabilitar los canales mediante seales de control

especiales. muestra dos seales de control en la CPU que facilitan la transferencia DMA. El controlador DMA utiliza la entrada de solicitud de canal (BR) para solicitar a la CPU que entregue el control de los canales. Cuando esta entrada est activa, la CPU termina la ejecucin de la instruccin actual y coloca el canal de direcciones, el canal de datos, y las lneas de lectura y escritura dentro de un estado de alta impedancia. El estado de alta impedancia es equivalente a un circuito abierto, lo que significa que la salida est desconectada y no tiene un significado lgico. La CPU activa la salida de cesin de canal (BG) para informar a la DMA externa que los canales estn en estado de alta impedancia. La DMA que origin la solicitud de canal puede ahora tomar el control de los canales para conducir transferencias de memoria sin la intervencin del procesador. Cuando la DMA termina la transferencia, deshabilita la lnea de solicitud de canal. La CPU deshabilita la cesin del canal, toma el control de los canales y retorna a su operacin normal.

Cuando la DMA toma el control del canal del sistema, se comunica directamente con la memoria. La transferencia puede hacerse de varias maneras. En la transferencia de DMA en rfagas, es una secuencia de bloque, que consiste en varias palabras de memoria, se transfiere en una rfaga continua mientras el controlador DMA domina los canales de memoria. Este modo de transferencia se necesita para dispositivos rpidos como discos magnticos, en donde la transmisin de datos no puede detenerse o hacerse lenta hasta que sea transferido todo un bloque. Una tcnica alterna llamada robo de ciclo, permite al controlador DMA transferir una palabra de datos a la vez, despus de lo cual debe retornar el control a los canales de la CPU. La CPU slo retrasa su operacin por un ciclo de memoria para permitir que la transferencia de E/S de memoria directa "robe" un ciclo de memoria.

Controlador DMA. El controlador DMA necesita los circuitos usuales de una interface para comunicarse con la CPU y el dispositivo de E/S. Adems necesita un registro de direccionamento, un registro de cuenta de palabras, y un conjunto de lneas de direccionamiento. El registro de direccionamiento y las lneas de direccionamiento se utilizan para la comunicacin directa con la memoria. El registro de cuenta de palabras especifica la cantidad de palabras que deben transferirse. La transferencia de datos puede hacerse directamente entre el dispositivo y la memoria bajo el control del DMA. Se muestra el diagrama de bloque de un controlador de DMA tpico. La unidad se comunica con la CPU mediante el canal de datos y las lneas de control. Los registros en el DMA se seleccionan mediante la CPU por medio del canal de datos al habilitar las entradas de seleccin de DMA (DS) y de seleccin de registros (RS). Las entradas lectura (RD) y escritura (write, WR) son bidireccionales. Cuando la entrada de cesin de canal (BG) es O, la CPU puede comunicarse con los registros de DMA por medio del canal de datos para leer de o escribir en los registros DMA. Cuando BG = 1, la CPU ha entregado los canales y el DMA puede comunicarse directamente con la memoria al especificar una direccin en el canal de direcciones y activar el control RD o WR. DMA se comunica con el perifrico externo mediante lneas de solicitud y reconocimiento al utilizar un procedimiento preestablecido de reconocimiento mutuo.

El controlador de DMA tiene tres registros: un registro de direccionamiento, un registro de cuenta de palabras y un registro de control. El registro de dreccionamiento contiene una direccin para especificar la localidad deseada en la memoria. Los bits de direccionamiento van a travs de bffers al canal de direcciones. El registro de direccionamiento se incrementa despus que cada palabra se transfiere a la memoria. El registro de cuenta de palabras contiene la cantidad de palabras que se van a transferir. Este registro se decrementa en uno con cada transferencia de palabras y realiza una prueba interna en busca de cero. El registro de control especifica el modo de transferencia. Todos los registros en el DMA aparecen ante la CPU como registros de interface de E/S. Por lo tanto, la CPU puede leer o escribir dentro de los registros DMA bajo el control de programa mediante el canal de datos.

Primero, la CPU nicializa el DMA. Despus de eso, el DMA empieza y contina la transferencia de datos entre la memoria y la unidad perifrica hasta que se transfiere un bloque completo. El proceso de inicializacin es esencialmente un programa que consiste en instrucciones de E/S que incluyen la direccin para seleccionar registros DMA particulares. La CPU inicializa el DMA al enviar la siguiente informacin por el canal de datos:

La direccin inicial del bloque de memoria en donde estn disponibles los datos (para lectura) o donde se van a almacenar los datos (para escritura). La cuenta de palabras, que es el nmero de palabras en el bloque de memoria. Un control para especificar el modo de transferencia como de lectura o de escritura. Un control para iniciar la transferencia DMA. La direccin inicial se almacena en el registro de direccionamiento. La cuenta de palabras se almacena en el registro de cuenta de palabras y la informacin de control en el registro de control. Una vez que se inicializa el DMA, la CPU detiene la comunicacin con el DMA, slo que reciba una seal de interrupcin o que desee comprobar cuntas palabras se han transferido.

5.7 Procesador de entrada-salida (IOP)

En lugar que cada interface se comunique con la CPU, una computadora puede incorporar uno o ms procesadores externos y asignarles la tarea de comunicarse directamente con todos los dispositivos E/S. Un procesador de entrada-salida (IOP), puede clasificarse como un procesador con capacidad de acceso directo a memoria que comunica con dispositivos de E/S. En esta configuracin, el sistema de computadora puede dividirse en una unidad de memoria y varios procesadores que comprenden la CPU y uno o ms IOP. Cada IOP atiende tareas de entrada y salida, relevando a la CPU de los "quehaceres domsticos" que involucran las transferencias de E/S. Un procesador que comunica con terminales

remotas por telfono y otros medios de comunicacin en forma serial se llama un procesador de comunicacin de datos (DCP).

El IOP es similar a una CPU, excepto que est diseado para manejar los detalles del procesamiento de E/S. A diferencia del controlador de DMA, que debe ser inicializado por completo por la CPU, el IOP puede buscar en memoria y ejecutar sus propias instrucciones. Las instrucciones IOP estn especficamente diseadas para facilitar las transferencias de E/S. Adems, el IOP puede ejecutar otras tareas de procesamiento, como aritmtica, lgica, transferencia de control y traduccin de cdigo.

El diagrama de bloque de una computadora con dos procesadores. La unidad de memoria ocupa una posicin central y puede comunicarse con cada procesador mediante acceso directo a memoria. La CPU es responsable del procesamiento de datos necesarios en la solucin de tareas computacionales. El IOP proporciona una trayectoria para transferencia de datos con diversos dispositivos perifricos y la unidad de memoria. Por lo general, la CPU tiene la tarea de inicializar un programa de E/S. En lo sucesivo el IOP opera en forma independiente de la CPU y contina transmitiendo datos de dispositivos externos y la memoria.

Los formatos de datos de los dispositivos perifricos difieren de los formatos de datos de la memoria y la CPU. El IOP debe estructurar palabras de datos de muchas fuentes diferentes. Por ejemplo, puede ser necesario tomar cuatro bytes de un dispositivo de entrada y guardarlos en una palabra de 32 bits antes de la transferencia a memoria. Los datos se renen en el IOP a la velocidad del dispositivo y a la capacidad de bits mientras la CPU ejecuta su propio programa. Despus de que los datos se renen en una palabra de memoria, se transfieren del IOP directamente dentro de la memoria al "robar" un ciclo de memoria de la CPU. De igual manera, una palabra de salida transferida de la memoria al IOP se dirige del IOP al dispositivo de salida a la velocidad del dispositivo y a su capacidad de bits.

Canal de EIS IBM 370

El procesador de E/S en la computadora IBM 370 se denomina canal. Una configuracin de sistema de computadoras tpico incluye varios canales y cada uno de ellos est conectado a uno o ms dispositivos de E/S. Existen tres tipos de canales: multiplexor, selector y bloque multiplexor. El canal multiplexor puede conectarse a varios dispositivos de velocidad lenta y media y puede operar con varios dispositivos de E/S en forma simultnea. El canal selector est diseado para manejar una operacin de E/S a la vez y se usa normalmente para controlar un dispositivo de alta velocidad. El canal de bloque multiplexor combina las caractersticas de los canales multiplexor y selector. Proporciona una conexin a varios dispositivos de alta velocidad, pero todas las transferencias de E/S pueden conducirse en un bloque de datos completo a diferencia de un canal multiplexor, que slo puede transferir un byte a la vez.

La CPUs comunica en forma directa con los canales por medio de lneas de control dedicadas e indirectamente por medio de reas de almacenamiento reservadas en la memoria. Los formatos de palabra asociados con la operacin del canal. El formato de instruccin de E/S tiene tres campos: cdigo de operacin, direccin del canal y direccin del dispositivo. El sistema de computadora puede tener varios canales y a cada uno se le asigna una direccin. De igual manera, cada canal puede estar conectado a varios dispositivos y a cada dispositivo se le asigna una direccin. El cdigo de operacin especfica una de ocho instrucciones E/S: iniciar E/S, iniciar envo rpido de E/S, probar E/S, borrar E/S, detener E/S, detener dispositivo, probar canal y almacenar identificacin del canal. Los canales direccionados responden a cada una de las instrucciones de E/S y las ejecutan. Tambin establecen uno de cuatro cdigos de condicin en un registro de procesador llamado palabra de estado del procesador (PSW). La CPU puede comprobar el cdigo de condicin en la PSW para determinar el resultado de la operacin de E/S. El significado de los cuatro cdigos de condicin es diferente para cada instruccin de E/S. Pero, en general, especifican si el canal o el dispositivo estn ocupados, si son operacionales o no, si hay interrupciones pendientes, si la operacin de E/S comenz exitosamente y si se almacen una palabra de estado en la memoria por medio del canal.

El formato de la palabra de estado del canal. Siempre est almacenado en la posicin 64 en la memoria. El campo de clave es un mecanismo de proteccin utilizado para evitar el acceso no autorizado por parte de un usuario a la informacin que pertenece a otro usuario o al sistema operativo. El campo de direccin de la palabra de estado proporciona la direccin de la ltima palabra del comando utilizada por el canal. El campo de cuenta proporciona la cuenta residual cuando se termin la transferencia. El campo de cuenta mostrar cero si la transferencia se termin exitosamente. El campo de estado identifica las condiciones en el dispositivo y el canal y cualesquiera errores ocurridos durante la transferencia.

La diferencia entre las instrucciones iniciar E/S e iniciar envo rpido de E/S es que la ltima requiere menos tiempo de CPU para su ejecucin, cuando el canal recibe una de estas dos instrucciones, hace referencia a la localidad 72 de la memoria para la direccin de la primera palabra de comando del canal (CCW). El formato de la palabra de comando. El campo de direccin de datos especifica la primera direccin de un bffer de memoria y el campo de cuenta proporciona la cantidad de bits que participan en la transferencia. El campo de comando especifica una operacin de E/S y los bits de bandera proporcionan informacin adicional para el canal. El campo de comando corresponde a un cdigo de operacin que especifica uno de seis tipos de operaciones E/S:

1. Escribir. Transferir datos de la memoria a un dispositivo de E/S.

2. Leer. Transferir datos de un dispositivo de E/S a la memoria. 3. Leer en reversa. Leer una cinta magntica cuando se mueve en reversa. 4. Controlar. Se usa para iniciar una operacin que no implica transferencia de datos, como rebobinar una cinta o posicionar un mecanismo de acceso a disco. 5. Detectar. Le informa al canal que transfiera su palabra de estado de canal a la localidad de memoria 64. 6. Transferir en el canal. Se utiliza en lugar de una instruccin de brinco. Aqu el campo de direccin de datos especifica la direccin de la siguiente palabra de comando que va a ejecutar el canal.

Consta de tres palabras de comando. La primera produce una transferencia dentro de una cinta magntica de 60 bytes desde la memoria comenzando en la direccin 4000. Las siguientes dos palabras de comando ejecutan una funcin similar con una porcin diferente de la memoria y de cuenta de bytes. Las seis banderas en cada palabra de control especifican ciertas interrelaciones entre las palabras de comando. La primera bandera se activa en 1 en la primera palabra de comando para especificar "encadenamiento de datos". Da como resultado la combinacin de 60 bytes de la primera palabra de comando con los 20 bytes de su sucesor dentro de un registro de 80 bytes. Los 80 bytes se escriben en cintas sin ninguna separacin o salto, aunque se utilizaron dos secciones de memoria. La segunda bandera se activa en 1 en la segunda palabra de comando para especificar "encadenamiento de comandos". Le informa al canal que la siguiente palabra de comando utilizar el mismo dispositivo de E/S, en este caso, la cinta. El canal le informa a la unidad de cinta que comience a insertar un intervalo de registro en la cinta y avance a leer la siguiente palabra de comando de la memoria. Despus se escriben los 40 bytes de la tercera palabra de comando en una cinta como un registro separado. Cuando todas las banderas son igual a cero, significa terminar las operaciones de E/S para el dispositivo de E/S particular. Un mapa de la memoria que muestra toda la informacin pertinente para el procesamiento de E/S. La operacin comienza cuando el programa de la CPU encuentra una instruccin de iniciar de E/S. El E/S va despus a la posicin de memoria 72 para obtener una palabra de direccin de canal. Esta palabra contiene la direccin inicial del programa de canal de E/S. En seguida, el canal avanza a ejecutar el programa especificado mediante las palabras de comando de canal. El canal construye una palabra de estado durante la transferencia y la almacena en la posicin 64. Cuando ocurre una interrupcin, la CPU puede hacer referencia a la posicin de memoria 64 para la palabra de estado.

5.8 Comunicacin serial

Un procesador de comunicacin de datos es un procesador de E/S que distribuye y recoge datos de muchas terminales remotas conectadas mediante el telfono y otras lneas de comunicacin. Es un procesador de E/S especializado diseado para comunicar directamente con redes de comunicacin de

datos. Una red de comunicacin puede contener cualquiera de una amplia variedad de dispositivos, como impresoras, dispositivos interactivos de exhibicin visual, sensores digitales o una opcin de computacin remota. Con el uso de un procesador de comunicacin de datos, la computadora puede dar servicio a fragmentos de cada demanda de red de manera intercalada y por lo tanto tener un desempeo aparente de servir a muchos usuarios a la vez. De esta manera, la computadora puede operar eficientemente en un ambiente de tiempo compartido.

La diferencia ms notable entre un procesador de E/S y un procesador de comunicacin de datos es la manera en la que el procesador se comunica con los dispositivos de E/S. Un procesador de E/S se comunica con los perifricos a travs de un canal de E/S comn que consta de muchas lneas de datos y de control. Todos los perifricos comparten el canal comn y lo utilizan para transferir informacin hacia y desde el procesador de E/S. Un procesador de comunicacin de datos se comunica con cada terminal por medio de un solo par de cables. La informacin de control y de datos se transmite de manera serial con el resultado de que la velocidad de transferencia es mucho ms lenta. La tarea del procesador de comunicacin de datos es transmitir y recoger informacin digital hacia y desde cada terminal, determinar si la informacin es de datos o de control y responder a todas las solicitudes de acuerdo a procedimientos establecidos con anticipacin. Es obvio que el procesador tambin debe comunicarse con la CPU y la memoria de la misma manera que cualquier procesador de E/S.

La manera en que estn conectadas las terminales remotas a un procesador de comunicacin de datos es mediante lneas telefnicas u otras opciones de comunicacin privadas o pblicas. Como las lneas de comunicacin estaban diseadas originalmente para la comunicacin de canal y las computadoras se comunican en trminos de seales digitales, debe utilizarse alguna forma de conversin. Los convertidores se denominan conjuntos de datos, acopladores acsticos o mdems (de "moduladordemodulador"). Un mdem convierte las seales digitales en tonos de audio que se transmiten por lneas telefnicas y tambin convierten tonos de audio de la lnea a seales digitales para el uso de la mquina. Se utilizan varios esquemas de modulacin al igual que diferentes grados de medios de comunicacin y velocidades de transmisin. Una lnea de comunicacin puede estar conectada a una interface sncrona o asncrona, dependiendo del mtodo de transmisin de la terminal remota. Una interface asncrona recibe datos seriales con bits de inicio y paro en cada carcter. Este tipo de interface es similar a la unidad de interface de comunicacin asncrona.

La transmisin sncrona no utiliza los bits de inicio y paro para delimitar los caracteres y por lo tanto usa el enlace de comunicacin de manera ms eficiente. Los dispositivos de alta velocidad utilizan la transmisin sncrona para obtener esta eficiencia. Los mdems utilizados en la transmisin sncrona tienen relojes internos que se inicializan a la frecuencia que se estn transmitiendo los bits en la lnea de comunicacin. Para una operacin adecuada, se necesita que los relojes en los mdems transmisor y receptor estn sincronizados en todas las ocasiones. Sin embargo, la lnea de comunicacin contiene slo los bits de datos a partir de los cuales debe obtenerse la informacin de reloj. La sincronizacin de la secuencia la consigue el mdem receptor de las transiciones de seal que ocurren en los datos recibidos. Cualquier cambio de secuencia que puede ocurrir entre los relojes transmisor y receptor se ajusta continuamente al mantener el reloj receptor en la frecuencia del flujo de bits que llega.

El modem transfiere los datos recibidos junto con el reloj a la unidad de interface. La interface o terminal en el lado transmisor tambin utiliza la informacin de reloj de su mdem. De esta manera, se mantiene la misma velocidad de bits en el transmisor y en el receptor.

A diferencia de la transmisin asncrona, en la cual cada carcter puede enviarse en forma separada con sus propios bits de inicio y paro, la transmisin sncrona debe enviar un mensaje continuo para mantener la sincronizacin. El mensaje consta de un grupo de bits transmitidos en forma secuencial como un bloque de datos. todo el bloque se transmite con caracteres de control especiales al comienzo y al final del bloque. Los caracteres de control al inicio del bloque proporcionan la informacin necesaria para separar los bits que llegan en caracteres individuales.

Una de las funciones del procesador de comunicacin de datos es verificar la presencia de errores de transmisin. Puede detectarse un error al comprobar la paridad en cada carcter recibido. Otro procedimiento utilizado en terminales asncronas en las que interviene un operador humano es escuchar el eco de los caracteres. El procesador reconoce los caracteres transmitidos del teclado a la computadora y los retransmite a la impresora terminal. El operador debe darse cuenta de que ha ocurrido un error durante la transmisin si el carcter impreso no es igual a la tecla que se ha oprimido.

En la transmisin sncrona, en la cual se transmite un bloque de caracteres completo, cada carcter tiene un bit de paridad que debe verificar el receptor. Despus de que se enva el bloque completo, el transmisor enva un carcter ms que constituye una paridad sobre la longitud del mensaje. Este carcter se llama una comprobacin de redundancia longitudinal (longitudinal redundancy check, LRC) y es la acumulacin de las OR exclusivas de todos los caracteres recibidos. La estacin receptora calcula la LRC conforme recibe caracteres y la compara con la LRC transmitida. Las LRC calculadas deben ser iguales para que los mensajes no contengan error. Si el receptor encuentra un error en el bloque transmitido, le informa a quien enva que retransmita el mismo bloque de nuevo. Otro mtodo utilizado para comprobar errores en la transmisin es la comprobacin de redundancia cclica (ciclyc redundancy check, CRC). Este es un cdigo de polinomio que se obtiene de los bits de mensaje al pasarlos a travs de un registro de corrimiento retroalimentado que contiene varias compuertas OR exclusivas. Este tipo de cdigo es conveniente para detectar errores de rfaga que ocurren en el canal de comunicacin.

Pueden transmitirse datos entre dos puntos en tres modos diferentes: smplex, semidplex o dplex completo. Una lnea smplex transmite informacin slo en una direccin. Este modo se utiliza rara vez en comunicacin de datos porque el receptor no puede comunicarse con el transmisor para indicarle la aparicin de errores. Los ejemplos de transmisin simpiex son la programacin de radio y televisin.

Un sistema de transmisin semidplex es uno que puede transmitir en ambas direcciones pero slo pueden transmitirse los datos en una direccin a la vez. Se necesitan un par de cables para este modo. Una situacin comn es la de un modem que acta como el transmisor y otro como receptor. Cuando termina la transmisin en una direccin, el papel de los modems se invierte para habilitar la transmisin en sentido opuesto. El tiempo requerido para cambiar una lnea semidplex de una direccin a otra se llama tiempo de vuelta.

Una transmisin dplex completa puede enviar y recibir datos en ambas direcciones simultneamente. Esto puede lograrse mediante un enlace de cuatro cables con un par de lneas diferentes dedicadas a cada direccin de transmisin. Alternativamente, un circuito de dos lneas puede soportar comunicacin dplex completa si el espectro de frecuencia se subdivide en dos bandas de frecuencia no sobrepuestas para crear canales de recepcin y transmisin separados en el mismo par de lneas fsico.

Las lneas de comunicacin, los mdems y otro equipo utilizado en la transmisin de informacin entre dos o ms estaciones se denomina enlace de datos. La transferencia de informacin ordenada en un enlace de datos se consigue mediante un protocolo. Un protocolo de control de enlace de datos es un conjunto de reglas que siguen las computadoras y terminales interconectadas para asegurar la transferencia de informacin ordenada. El propsito de un protocolo de enlace de datos es establecer y terminar una conexin entre dos estaciones, identificar al transmisor y al receptor, asegurarse que todos los mensajes pasen en forma correcta sin errores y manejar todas las funciones de control implcitas en una secuencia de transferencias de datos. Los protocolos se dividen en dos categoras principales, de acuerdo a las tcnicas de ordenamiento de mensajes. Estos son el protocolo orientado a caracteres y el protocolo orientado a bits