Anda di halaman 1dari 135

UNIDAD 1. TRANSFERENCIA ENTRE REGISTROS Y MICROOPERACIONES. 7.0 1.1 Transferencia entre registros. 1.2 Micro operaciones lgicas. 1.

3 Micro operaciones aritmticas. 1.4 Micro operaciones de corrimiento. 1.5 Generacin de funciones de control. 1.6 Representacin de datos aritmticos (magnitud y signo), overflow, desplazamientos. punto flotante. 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 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.

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. 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 4-1 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 se analiz en la seccin

Este tipo de microoperacin 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 combinacinal 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:DRM[AR]

D2T5:ACDR,SCO

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,SCO

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, PC135+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: DRDR+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 < shr R Corrimiento a la derecha del registro R

R ci1 R Corrimiento circular a la izquierda del registro R

R <cir R Corrimiento circular a la derecha del registro R

R ashl R Corrimiento aritmtico a la izquierda de R

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. DISEO LGICO DE UN PROCESADOR. 2.1 Organizacin del procesador. 2.2 Unidad aritmtica y lgica (ALU). 2.3 Registros. 2.4 Buses (canales). LA ESTRUCTURA DE UN MICROCOMPUTADOR,

un microcomputador, aunque aparentemente es un aparato muy complejo , es una mquina electrnica relativamente sencilla.

Esto se debe a que esta formado por varios bloques totalmente digitales y claramente definidos, cada uno con una funcin especifico circuitos. Cada bloque a su vez esta formado por varios circuitos integrados fciles de entender y manejar, la parte compleja esta dentro de los circuitos integrados, pero esto no le interesa al usuario, ya que este tan solo debe conocer la configuracin de los pines, su funcionamiento y programacin.

Un computador digital esta formado por tres bloques funcionalmente independientes. Una unidad de entrada y salida, una CPU y una memoria.

A su vez, la unidad de entrada y salida se divide en un bloque de salida y un bloque de entrada. Del mismo modo, la CPU se divide en una unidad de control y una unidad aritmtico-lgica (ALU), y la memoria en ROM y RAM, obtenindose seis bloques o unidades con funciones muy especifica.

ESTRUCTURA GENERAL DE UN MICROCOMPUTADOR

UNIDA DE MEMORIA O CPU MICROPROCESADOR UNIDAD DE MEMORIA UNIDAD UNIDAD ENTRADA/SALIDA DE CONTROL ARITMTICO ROM RAM DE ENTRADA LOGICA SALIDA

UNIDAD DE ENTRADA

Esta parte del circuito acepta o recibe informacin del mundo externo, procedente de un operador humano, un fenmeno fsico (temperatura, velocidad, etc.). El propsito de la unidad de entrada es llevar los datos del mundo externo hacia la unidad de memoria para su posterior procesamiento.

En los computadores para procesamiento de datos, los sistemas de entrada mas usuales son un teclado, un mouse o ratn, una o varias unidades de disco flexible, una unidad de disco duro, un modem, un lpiz ptico y un micrfono, entre otros.

En los computadores utilizados para control, las unidades de entrada son generalmente trasductores que censan fenmenos fsicos como temperatura , presin, peso, caudal, movimiento, posicin, luz , sonido, etc. Las seales anlogas de voltaje o de corriente producidas por estos censores se llevan al computador por medio de uno o varios convertidores A/D (anlogo-digital).

UNIDADES DE SALIDA

La misin de esta parte del circuito, es entregar los resultados de la informacin binaria, ya procesada por el computador, al mundo exterior.

Esta informacin se lleva desde la memoria o desde la unidad central de proceso (CPU) hacia circuitos o aparatos llamados perifricos que se encuentran fuera del computador.

En los componentes para procesamiento de datos, las unidades de salida mas usuales son las impresoras, las pantallas o monitores de video, las unidades de disco flexible y de disco duro, los mdems para comunicaciones por redes telefnicas, lo protters o graficadores, los parlantes, etc.

En los computadores para control, las seales digitales salen al mundo exterior a travs de una o varias unidades de salida. Entre las mas comunes tenemos las tarjetas de interfase que tiene reles, transistores bipolares, MOSFET de potencia, SCRs.

Estos, a su vez, activan motores de corriente continua o servomotores paso a paso, actuadores mecnicos o hidrulicos, etc.

Tambin se encuentran como unidades de salida tarjetas como convertidores D/A (Digitales-Anlogos).

UNIDAD DE MEMORIA

La funcin de la unidad de memoria consiste en almacenar programas y datos y es una de las mas importantes en un computador. Se distinguen dos sistemas diferentes de memoria: la de almacenamiento primario y la de almacenamiento secundario. La primera se denomina tambin memoria principal y la secundaria memoria auxiliar.

- Memoria de Almacenamiento Principal

Formada por circuitos integrados de memoria donde se almacenan los programas que se van a ejecutar y los datos que se necesitan durante la ejecucin de esos programas.

Hay tres tipos de memoria principal: ROM, RAM y Cache.

Memoria ROM o memoria de solo lectura: La informacin pregrabada electrnicamente en ella (programas o listas de instrucciones), solamente pueden ser ledas y no es posible alterar su contenido. En esta memoria se

escribe el programa monitor o de arranque del computador , los que permiten que ejecute las acciones necesarias para poder iniciar un trabajo.

Cuando encendemos un computador, se activa generalmente la pantalla y una unidad de disco (flexible o duro), permitiendo el montaje de una parte del sistema operativo en la memoria RAM para continuar con la ejecucin de un programa.

Memoria RAM o memoria de lectura y escritura: en este tipo de memoria se puede almacenar informacin para ser utilizada posteriormente y, si es necesario, se puede alterar o cambiar en cualquier momento. En la memoria RAM se almacenan los programas y los datos que estoa van originando. Su actividad es muy intensa, ya que recibe y entrega millones de bits (1 y 0) por segundo a todos los bloques del computador.

Memoria Cache: Es una memoria RAM con tiempo de acceso muy rpido donde se mantienen los datos mas utilizados durante la ejecucin de los programas. El objetivo de esta memoria , en la arquitectura de un computador , es acelerar la velocidad de procesamiento de la informacin.

MEMORIA DE ALMACENAMIENTO SECUNDARIO

Este sistema de almacenamiento, tambin llamado memoria auxiliar, se utiliza para guardar grandes cantidades de datos que no se requieren con frecuencia en la memoria principal durante la operacin del computador.

Hay varios sistemas de almacenamiento secundarios: floppis, discos duros, discos pticos etc.

UNIDAD CENTRAL DE PROCESAMIENTO (CPU)

En la terminologa de computadores se denomina como CPU (Central Processing Unit)o Unidad Central de Procesamiento, a la unidad que rene la

unidad de control y la unidad aritmtico-lgica en un solo bloque. Esta unidad tambin se conoce como ALU (Arihmetic Logic Unit).

La CPU se encuentra en forma de integrado llamado microprocesador.

UNIDAD DE CONTROL

La unidad de control se encarga de la interpretacin y ejecucin de las instrucciones del programa. tambin controla todos los componentes de un computador por medio de lneas de conexin llamadas buses.

Esta unidad es el elemento central de toda la maquina y se encarga de enviar seales de coordinacin a todas las dems unidades.

UNIDAD ARITMETICO-LOGICA (ALU)

Esta unidad esta encargada de realizar las operaciones lgicas y aritmticas usando como base la operacin de suma y la notacin del complemento de dos.

Por ejemplo, si se desea sumar dos nmeros almacenados en dos posiciones de memoria, estos se deben traer a la unidad aritmtica donde se lleva a cavo la operacin. El resultado se almacena nuevamente en un posicin de memoria.

Las principales operaciones aritmticas realizadas en la ALU son suma, la resta y complemento a dos. Las principales operaciones lgicas son la AND, la OR, la NOT, la OR, la EXOR y la comparacin.

tambin realiza esta unidad operaciones con los registros internos como desplazamiento, rotacin y traslado de informacin digital.

BUSES

Un bus es un conjunto de lneas que llevan o traen seales digitales de un circuito a otro. Las lneas y el sentido de las flechas indican las rutas existentes entre las seis unidades para el intercambio mutuo de informacin. Entre los sistemas de microcomputadores existen generalmente tres buses; direccin, datos y control.

La unidad de control utiliza el bus de direccin para determinar por decodificacin, la posicin de memoria o dispositivo de entra y salida que participa en una transferencia de informacin en un momento dado. l numero de lneas del bus de direccin determina la capacidad de memoria del sistema y el numero de dispositivos de entrada/salida con los cuales puede comunicarse.

Una vez que la unidad de control ha seleccionado el dispositivo con el cual quiere efectuara una transferencia de informacin. Utiliza el bus de datos para transportar dicha informacin. As, por medio de este bus, el microprocesador puede enviar o recibir datos de la memoria y tambin enviar o recibir seales del mundo exterior a travs de las unidades de entrada y salida.

El nmero de lneas del bus de datos determina lo que se denomina ancho de la palabra de trabajo de la unidad de procesamiento central o CPU. Son tpicas longitudes de palabra de 4, 8, 16, 32, 64 bits.

El bus de control trasporta la seal que necesita la unidad de control para coordinar y sincronizar el funcionamiento de todos los elementos del computador.

El numero de lneas del bus de control varia segn el tipo de CPU o microprocesador que se utilice.

Utilidades de un microprocesador

El microprocesador incorpora en su arquitectura dos elementos lgicos necesarios para realizar las funciones y puede se programado para realizar una gran variedad de tareas modificando nicamente una secuencia de palabras binarias (instrucciones) almacenada en uno de los elementos de memoria. Aunque los microprocesadores fueron diseados originalmente para se utilizados como unidades centrales de procesamiento en computadores, y esta continua siendo su aplicacin mas importante, la disponibilidad de procesadores de bajo costo permite utilizarlos en una gran variedad de tareas igualmente importantes, limitadas nicamente por la imaginacin. Los siguientes son algunos ejemplos.

Juegos electrnicos Semaforizacin electrnica. Sistemas telefnicos Equipos fonogrficos

Robots Termmetros Inteligentes Sistemas de Seguridad Instrumentos electrnicos Calculadoras de bolsillo Terminales POS (puntos de venta.) Equipos de control Industrial Aparatos domsticos. Equipos de oficina. Equipos mdicos.

En general, los sistemas basados en microprocesadores de pueden clasificar en dos categoras: (a) los orientados a computacin y (b) los orientados a control.

APLICACIONES GENERALES DE LOS MICROPROCESADORES

En el caso de un sistema de computo, la funcin del microprocesador es producir unos datos de salida que dependen funcionalmente de unos datos de entrada. De otro lado, en un sistema de control, el objetivo del microprocesador es mantener dentro de ciertos limites de funcionamiento especficos algn otro sistema sujeto a perturbaciones (fsicas, biolgicas, etc.)que tienden a llevarlo fuera de un rango de funcionamiento admitido como aceptable.

ENTRADA X de SALIDA F(X) E: B E Datos D) Control a) computacin D:Seales Perturbacin SISTEMA SER SISTEMA A CON SISTEMA CON de CONTROLADO perturbacin D MICROPROCESADOR MICROPROCESADOR

correccin

El sistema bajo control suministra al sistema microprocesador ciertos datos que reflejan la naturaleza de la perturbacin. En muchos casos, las funciones de computo y control estn ntimamente relacionadas.

Uno de los mayores mercados de los microprocesadores lo constituyen, actualmente, los juegos y juguetes electrnicos. Los microprocesadores se han incorporado tambin en dispositivos domsticos como hornos, lavadoras, sistemas de aire acondicionado, televisores, alarmas antirrobos etc.

Cada vez ms, la industria del automvil recurre a los microprocesadores para el control de su maquinaria. En el automvil, los microprocesadores supervisan los sistemas elctricos y de refrigeracin, determinan la mezcla optima de gasolina y aire en el carburador, fijan el ritmo de encendido de la chispa para obtener el mximo rendimiento del combustible y minimiza la emisin de gases.

La disponibilidad de computadores de propsito general y de bajo costo permiten a pequeas empresas automotoras automatizar el inventario, la facturacin y otras operaciones administrativas similares, as como procesar y corregir textos, cartas, informes, etc.

Con la introduccin de los llamados terminales POS (Point-Of-Sale: punto de venta) y la adopcin del codigo de barras, los microprocesadores han sustituido tambin las traciones cajas registradoras electrnicas utilizadas een los establecimientos comerciales, permitiendo mantener actualizados los registros de ventas, reordenar automticamente las necesidades de mercancas, controlar los flujos de dinero en las cajas, etc.

La automatizacin inducida por los microprocesadores en bancos e instituciones financieras de crdito permite a los clientes realizar sus transacciones desde un cajero electrnico.

En las fabricas, los microprocesadores se han incorporado en muchas maquinas-herramientas como lo son lo CNC, en sistemas de control de procesamientos, utilizacin de robots en la industria.

Actualmente, es muy comn el uso de microprocesadores en instrumentos de medida, sistemas de navegacin, aparatos mdicos, equipos de comunicacin, procesamiento de imagen y sonido.

tambin han optimizado la guerra, permitiendo desarrollar msiles guiados, satlites espas y los sistemas de seguridad.

Resea histrica del microprocesador

1970 es la fecha de la invencin del microprocesador, siendo uno de los adelantos tecnolgicos mas importantes, revolucionando todos los campo de la actividad humana

Con el microprocesador ha evolucionado el mundo de la electrnica y de los computadores, la cual hasta el presente ha venido evolucionan do a una gran velocidad. Nadie en 1970 se imagino el impacto tan grande que causara este invento.

Ninguna herramienta anterior desarrollada por el hombre haba dado tanto poder como para crear otras y acelerar su evolucin en todos los campos.

La senda la abri el inventos del tubo de vaci por Lee DE Forres a comienzos del siglo. Este dispositivo hizo posible el desarrollo comercial e industrial de la electrnica, gracias a que este invento hizo posible la creacin de la radio, la telegrafa inalmbrica etc.

Luego vino la revolucin de transistor, desarrollado en los laboratorios de la Bell Telephone en 1948 y utilizado a partir de 1950 a escala industrial con su inclusin en la fabricacin de radios, televisores, en la industria militar etc.

De los tres inventores del transistor (W Brattain, W. Shockley y J. Bardeen); Shockley fue el que se dedico a desarrollar metodos de fabricacin en serie de este dispositivo, en su empresa Shockley Semiconductor Laboratories dando nacimiento a una nueva era en la industria electrnica y a la ubicacin de esta tecnologa en el sitio de California cercano a San Francisco que mas tarde se llamo Silicon Valley o valle de silicon.

Es esta compaa se iniciaran los cientficos e ingenieros que mas tarde formaran sus propias empresa.

Entre las razones de los ingenieros y cientficos para retirarse de la empresa de Shockey era su insistencia por trabajar con el germanio mientras se haba demostrado que el silicio presentaba mejores caractersticas para la fabricacin de transistores.

El microprocesador es el mximo exponente de la etapa siguiente al transistor: la tecnologa de los circuitos integrados. El concepto de circuitos integrados comenz a rondar por la mente de quines trabajaban en la fabricacin de transistores. El planteamiento es mas o menos el siguiente.

Si se fabrican transistores separados y luego se tiene que unir siempre de la misma forma entre si con alambres y otros componentes como resistencias, condensadores y diodos Por que no fabricar de una vez todo el conjunto de materiales contutores y aislantes, interconectados internamente para cumplir la misma funcin del sistema total?.

Este planteamiento fue desarrollado en la practica por dos empresas, en forma independiente Fairchild Semiconductor dirigiendo su equipo de trabajo Roberth Noyce y Texas Instrument dirigiendo su equipo de trabo Jack Kilby.

Los primeros circuitos integrados salieron al mercado en el ao de 1959 y a un precio de 450 dlares. Solamente inclu 4 transistores y varias resistencias.

La explosin de los circuitos integrado desde 1960 hasta la fecha ha desarrollado la ciencia y especialmente la electrnica, que inicialmente esta dedicado a trabajar funciones lgicas sencillas como compuertas, flip-flops, contadores etc.

Luego se trabajo en el campo anlogo o lineal con los amplificadores operacionales integrados, circuitos de audio o sonido, los temporizadores etc.

Sobre el invento existe un gran polmica en cuanto a la patente. Esta tuvo que ser otorgada compartidamente y despus de 20 aos fue adjudicada Texas Instruments.

Noyce renuncio en 1968 de Fairchild y fundo en compaa de Gordon Moore y Andrew Glove y con respaldo econmico de Arthur Rock, la empresa Intel donde se dieron los primeros pasos pare le invento del microprocesador .

Las investigaciones de Intel se orientaron hacia el lado de los computadores, buscando la manera de reemplazar los circuitos de memoria

magnticos con ncleo de ferrita por circuitos de memoria basados en semiconductores.

El cual consista en un simple flip-flop como elemento de memoria. As se cero el primer circuito de memoria tipo Ram llamado 1103 con una capacidad de 1024 bits.

Facilitando la construccin de computadores mas pequeos que lo IBM 360.

El diseo del microprocesador se inicio en Intel bajo el grupo de trabajo dirigido por Ted Hoff. Todo empez cuando Intel firmo un contrato con la empresa japonesa Busicom Corporation para fabricar un conjunto de circuitos integrados que reemplazaran la gran cantidad de componente que tenan las calculadoras.

Despus de largo trabajo se logro reemplazar todos los componentes por tres chips , pero resultaron ser de mayor tamao segn los requerimiento. A Hoff se le ocurri que se debera agrupar toda la parte de proceso aritmtico y lgico en un solo circuito y el resto de la calculadora en los otros dos circuitos.

A este circuito, de 2250 elementos integrados en un rea de 3x4 milmetros, se le llamo microprocesador. Tambin se ledo el nombre de CPU (Cental Processing Unit) o MPU (Micro Processing Unit). El primer microprocesador en un solo chip fabricado como tal fue el 4004 era un chip muy sencillo que manipulaba datos de 4 bits.

Intel desarrollo en 1972, el 8008, el cual poda procesar datos de 8 bits, este fue otro gran acontecimiento de la historia de los microprocesadores sin embargo el 8008 operaba con demasiada lentitud.

Posteriormente Intel creo un sustituto del 8008 que fue el 8085 con funciones adicionales y menos chips.

Un equipo de diseadores que haba trabajado para Intel en el 8080 conforman la empresa Zilog Inc. Y construyo el microprocesador Z80, que era compatible con el 8080, ha sido y continua siendo uno de los mas utilizados en el campo de control.

Por la misma poca en que Intel lanzaba el 8080, Motorola desarrollo el 6800 un microprocesador de 8 bits. Motorola perfecciono el 6800 con el 680, considerado como uno de lo9s mejores procesadores de 8 bits de todas las pocas.

El 6809 no tuvo el xito comercial que se esperaba pero si el 6502 derivado del 6800 pero fabricado por la compaa MOS Technology, con este procesador se fabricaron los primeros computadores personales con el PET de Commodore y el Apple II de Apple Computer Inc.

Comenz as la guerra tcnica y comercial entre estas dos empresa.

A principios de la dcada de los 80s aparecieron los microprocesadores de 16 bits, el primero el salir fue el 8086 de Inte, el cual fue adoptado por IBM , para la fabricacin de su famoso IBM PC. Lo sigui de cerca el 68000 de Motorola que contiene registros internos de 32 bits, un bus de datos de 16 bits y un bus de direccin de 24 bits.

Con este ultimo microprocesador se inicio en Apple un nueva familia de microcomputadores: la Macintosh.

Intel desarrollo el 8088utilizado en el IBM AT, el 80286 para el IBM AT, tambin crea 80386, el 80486.

Los procesadores de Intel permiten la creacin de clones.

Motorola ha desarrollado el 68020, el 68030 y el 68040 este ultimo permiti la creacio9n de la Workstation o estaciones de trabajo caracterizadas por su alta capacidad de memoria, gran velocidad en los procesos 0

Descripcin del microprocesador ideal.

Debe ser un dispositivo digital que acepte o leer datos aplicados a un cierto numero de lneas de entrada (N) los procesa de acuerdo a las instrucciones secuenciales de un programa almacenado en la memoria y suministra o escribe los resultados del proceso en un cierto numero de salidas (M)

1 programa 2 2 3 3 . . . . . . . . N M

EL MICROPROCESADOR IDEAL ES UN DISPOSITIVO CON (N) LINEAS DE ENTREA, (M) LINEAS DE SALIDA Y UN PROGRAMA ALMACENADO

Los datos de entrada pueden provenir de interruptores, censores, convertidores A/D, teclado etc. Los datos de salida pueden estar dirigidos a actuadores, displayes, pantalla, convertidores D/A, impresoras, alarmas etc. El programa almacenado determina como deben ser procesado los datos de entrada, y en consecuencia, que informacin enviarse a las lneas de salida.

El soporte fsico de las instrucciones del programa es una memoria, la cual almacena los datos que procesa y obtiene la mquina, pues la lneas de salida de un microprocesador dependen no solamente del programa sino tambin de la historia de las seales entradas hasta el momento.

El microprocesador ideal debe tener una memoria interna ilimitada.

Funcionamiento de los buses en un microprocesador

Externamente, el dispositivo cuenta con un bus de datos, un bus de direcciones y un bus control, adems de estos el microprocesador debe contar tambin con un bus de alimentacin.

ENTRADAS BUS DE FUENTE SALIDAS DE Micro DE DE B CONTROL DATOS DIRECCIN ALIMENTACION proce U S sador D E C O N T R O L

MICROPROCESADOR GENERALIZADO

Las lneas de los buses de un microprocesador transportan voltaje que representan nmeros binarios (1 s y 0 s). El microprocesador, los puertos de entrada/salida y la memoria responden nicamente a esos nmeros binarios codificados electrnicamente. Cada microprocesador tiene su propia estructura de buses

El bus de datos. lneas bidireccionales

El bus de datos lleva datos e instrucciones hacia y desde el microprocesador. Las instrucciones proceden siempre de la memoria mientras que los datos que procesa u obtiene el programa de instrucciones pueden provenir de o ir hacia la memoria o los mdulos de entrada/salida.

Generalmente, el numero de lneas de entrada es igual al numero de lneas de salida (N =M). Este numero define la longitud de la palabra de datos del microprocesador. Son comunes longitudes de palabras de 4, 8, 16, 32 y 64 bits.

El numero total de pines asignado en el circuito integrado al bus de datos puede reducirse si se utilizan los mismos puntos de conexin tanto para los datos de entrada como los datos de salida, pero no para ambos simultneamente.

MIC 8 OUT IN ROP D7-D0 ROC ESA DOR DE 8 BITS

BLS

D0 D1 D2 D3 D4

D0 D1 D2 D3 D4 D5

BLS

BUS DE

BUS DE DATOS DE

DATOS DE

MSB

D5

MSB

El bus de datos as constituidos es bidireccional el sentido de que la informacin puede circular entrando o saliendo del microprocesador. La forma de representar un bus de datos bidireccional para microprocesador de N bits se ilustra a continuacin

Mi N cr op ro ce sa do r

REPRESENTACIN DE UN MICROPROCESADOR DE N BITS CON UN BUS BIDIRECCIONAL DE DATOS

Un bus bidireccional puede constituirse con compuertas controlar la direccin del flujo de informacin

tri-state para

S1 D3 S0 D2

D1

D0

MICROPROCESADOR DE 4 BITS CON BUS DE DATOS BIDIRECCIONAL

El microprocesador de 4 bits con un bus de datos bidireccional muestra la configuracin de una lnea de bus bidireccional. Las lneas de seleccin S1 y S0 proceden del bus de control.

La transferencia de datos de entrada o salida desde hace o hacia el bus de datos se realiza, respectivamente, con S1S0 = 10 y S1S0=01. las lnea de bus puede habilitarse con S1S0=00 para impedir cualquier transferencia de informacin entre el bus de datos y el microprocesador.

Las lneas de seleccin pueden utilizarse para informar a los mdulos externos que comparten el bus de datos el estado del bus bidireccional en un momento dad. Este es el propsito de las lneas marcadas DBOUT (Bus de datos en el modo de salida), DBIN (bus de datos de modo entrada), HOLDA (bus de datos en estado de alta impedancia.)

La informacin contenida en el bus de datos puede representarse numricas, entre de varias formas: binaria, octal, y hexadecimal, principalmente, por ejemplo, un microprocesador de 8 bits con el byte 10111011 en las lneas D7 a D0 de bus de datos, siendo D/ el bit mas significativo o SB y D0 el bit menos significativo o LSB.

Esta palabra de datos representada como un numero binario es simplemente 10111011B o 101110112, representada como numero octal es 273Q 2788 y como un numero hexadecimal (la mas usual) es BBH BB16.los sufijos B, Q y H y los subndices 2,8 y 16 enfatizan el sistema numrico (binario, octal y hexadecimal) de cada representacin.

A pesar de que el sistema hexadecimal proporciona una forma muy compacta y concisa de expresar el contenido de un bus de datos, no podemos olvidarnos completamente de la representacin binaria. Es una aplicacin real esta ultima nos permite identificar fcilmente, por ejemplo, cual interruptor a de ser abierto o cerrado en un momento dado para obtener una condicin de entrada especifica o cual lmpara a de ser energizada para tener un efecto de salida determinado.

EL BUS DE DIRECCIONES

El bus de direcciones contiene la informacin digital que enva el microprocesador a la memoria una unidad de entrada/salida o un registro particular de la misma. l numero de lneas disponible en el bus de direcciones (n) determina el tamao mximo de memoria que puede ser acomodado en el sistema (2n).

as por ejemplo, un microprocesador con bus de datos de 8 bits y un bus de direcciones de 16 bits tal como el z-80 puede manejar directamente una memoria de 216 = 65536 (igual 64 k) posiciones cada una conteniendo un byte (palabra de 8 bites). Naturalmente, una vez seleccionada una posicin de memoria, el microprocesador debe estar en capacidad tanto de almacenar informacin en esa localizacin (operacin de escritura) como extraerlas (operacin de lectura).

BUS DE CONTROL

El bus de control contiene la informacin que enva el microprocesador a los elementos del sistema o bien recibe de estos con el propsito de sincronizar su operacin de la circuiteria externa el numero de lneas del bus de control es variable y depende del microprocesador particular utilizado.

SEALES DE CONTROL TIPICAS DE UN MICROPORCESADOR

CLK OUT

Mi cro pr oc es ad or

CLK IN RESET OUT REST IN INTP OUT INTP IN

CLK IN (Entrada de reloj), es usado por el microprocesador para generar pulsos de reloj y producir secuencias de tiempo y control para las funciones internas.

CLK OUT (Salida de reloj) los pulsos de reloj son usados por mdulos externos para sincronizar sus operaciones con las operaciones del microprocesador. RESET IN (peticin de reset) se utiliza para inicializar el microprocesador. El termino RESET OUT (reconocimiento de reset) informal circuiteria externa que el microprocesador se encuentra en el estado reset.

INTERRUPT OUT (reconocimiento de interrupcin) informa a la circuiteria externa que la interrupcin ha sido atendida. Una vez ejecutada la subrutina de interrupcin, el microprocesador retorna al programa previo.

HOLD (terminal de peticin de bus) se utiliza para suspender la operacin del microprocesador y llevarlos un estado llamado hold en el cual todos los buses quedan en alta impedancia, incluyendo lneas de datos, de direcciones y de lectura / escritura.

HOLDA (terminal peticin de bus) informa que peticin de hold ha sido atendida.

READ (lectura) y WRITE (escritura) informa al componente seleccionado por el bus de direccionales la direccin de la transferencia esperada en el bus de datos.

Las lneas READ (lectura) y WRITE (escritura) informan al componente seleccionado por el bus de direcciones de transferencia esperada en el bus de datos.

Las seales de control reseadas anteriormente constituyen un conjunto mnimo de funciones control para un microprocesador. Los nombres exactos asignados dependen del fabricante.

La mayora de microprocesadores tienen caractersticas de control para funciones adicionales, por ejemplo READY (para sincronizar el procesador con memorias lentas.)

UNIDAD 3. DISEO DE LA LGICA DE CONTROL. 3.1 Organizacin del control. 3.2 Control alambrado (Hard Wired). 3.3 Control microprogramado. 3.4 Control con P.L.A. (Program Logic Array). Introduccin Un proceso de diseo lgico es una tarea muy compleja, d e b i d o a e s o s e h a implementado el desarrollo de una gran variedad de tcnicas en relacin con el diseo delcomputador con el fin de facilitar los procesos de diseo. Sin embargo para el desarrollo delos procedimientos algortmicos este no funciona debido a que para este se tiene que utilizar el razonamiento mental del diseador humano. La parte mas difcil del diseo es en elmomento de establecer los objetivos, adems de la formulacin de los algoritmos y los procedimientos que se iran a utilizar para lograr los objetivos que ya planteados. La formacin binaria que se encuentre en un sistema digital es almacenada en un procesador o en un registro de memoria y puede estar constituida por datos e informacind e c o n t r o l , e s t o s d a t o s s o n e l e m e n t o s d i s c r e t o s q u e s o n m a n i p u l a d a s p o r l a s microoperaciones. Siendo un algoritmo un procedimiento para dar solucin a un problemae s p e c i f i c o y u n algoritmo diseado es para configurar el problema con una pieza d e l equipo.El diseo de un sistema digital requiere una secuencia de control que omienza con lasuposicin de la disponibilidad de variables de tiempo, este es diseado como una variablede secuencia por medio de un estado o una representacin equivalente para la transaccinentre estados. La secuencia de control y las relaciones de transferencia registros puedendeducirse directamente de la especificacin en palabras del problema, pero en algunasocasiones es conveniente utilizar una

representacin intermedia para describir la secuencianecesaria de operaciones del sistema.Un flujograma es una manera de expresar la secuencia de pasos de procedimientos oinstrucciones y la forma de tomar decisin respecto un algoritmo. Este en un algoritmodiseado usa los nombres de las variables de registro definidos de la configuracin inicild e l e q u i p o , y e s t e c o n s i s t e e n u n d i a g r a m a d e b l o q u e s c o n e c t a d o s p o r m e d i o d e l n e a s directas y dentro de estos bloques encuentran las instrucciones para la configuracin. Desarrollo Diseo de Lgica de control El proceso del diseo lgico es una, tarea compleja. Muchas i n s t a l a c i o n e s desarrollan varias tcnicas de diseo del computador automatizado para facilitar el procesod e d i s e o . S i n e m b a r g o l a s e s p e c i f i c a c i o n e s p a r a e l s i s t e m a y e l d e s a r r o l l o d e procedimientos algortmicos para lograr las tareas requeridas de procesamiento de datos no pueden ser automatizados y requieren un razonamiento mental para el diseador.L a p a r t e d e m a y o r d e s a f o y c r e a t i v i d a d d e l d i s e o e s e l e s t a b l e c i m i e n t o d e objetivos de diseo y la formulacin de algoritmos y procesamientos para lograr objetivosenunciados. Esta tarea requiere una cantidad considerable de experiencia e ingenuidad por parte del diseador.L a i n f o r m a c i n b i n a r i a e n c o n t r a d a e n u n s i s t e m a d i g i t a l s e a l m a c e n a e n u n procesador o registros de memoria y puedes ser constituida por datos o informacin decontrol . Los datos son elementos discretos de informacin que se manipulan por micro- operaciones.La temporizacin de todos los registros en un sistema digital sincrnicos se maneja por medio de un generador de pulsos de reloj maestro.El diseo de un sistema digital que requiere una secuencia de control comienza conla suposicin de la disponibilidad de variables de tiempo Organizacin del control Una vez que se haya establecido la secuencia de control se puede disear el sistemas e c u e n c i a l q u e c o n f i g u r a l a s o p e r a c i o n e s d e c o n t r o l . C o m o e l c o n t r o l e s u n c i r c u i t o secuencial, ste se puede disear por el procedimiento lgico secuencial. Sin embargo, estemtodo es poco prctico en la mayora de los casos debido al gran nmero de estados que elc i r c u i t o d e c o n t r o l p u e d e t e n e r . L o s m t o d o s d e d i s e o q u e u s a n e s t a d o s y t a b l a s d e excitacin pueden usarse en teora pero en la prctica son engorrosos y difciles de manejar.Adems , los circuitos de control obtenidos por este mtodo requieren por lo general un nmero excesivo de flip-flops y compuertas, lo cual implica el uso de compuertas SSI.El principal objetivo del diseo de lgica de control debe ser el desarrollo de uncircuito que configure la secuencia de control deseada de una manera lgica y directa. El e s f u e r z o d e m i n i m i z a r e l n m e r o d e c i r c u i t o s tendera a producir una configuracini r r e g u l a r , l o c u a l h a r a difcil para cualquier persona diferente al diseador, e l reconocimiento de la secuencia de eventos por los cuales p a s a e l c o n t r o l . C o m o consecuencia podra ser difcil dar servicio y mantener el equipo cuando est en operacin. Debido a las razones citadas anteriormente los diseadores con experiencia lgicausan mtodos para el diseo de lgica de control que pueden ser considerados como unaextensin del mtodo lgico secuencial clsico

combinado con el mtodo de trasferencia entre registros. En esta seccin se consideran cuatro mtodos de organizacin de control. 1. M tododeun flip-flop porestado: Este mtodo usa un flip-flop por estado en el circuito secuencial de c o n t r o l . Solamente se pone a uno un flip-flop en un tiempo dado, los dems se ponen a cero. Se hace programar un solo bit de un flip-flop a otro bajo el control de la lgica de decisin. Ental arreglo cada flip-flop representa un estado y se activa solamente cuando el bit de controlse trasfiere a ste.Este mtodo no usa un nmero mnimo de flip-flops para el circuito secuencial. Dehecho, ste usa un nmero mximo de flip-flops.La ventaja de un flip-flop por mtodo de estado es la simplicidad con la cual se disea. Este tipo de controlador puede disearse por inspeccin a partir de un diagrama deestado que describe la secuencia de control.La configuracin de una lgica de control secuencial de cuatro estados, que usa cuatro flip-flops. Si el circuito de control no necesita entradas externas para su cadencia, elcircuito se reduce a un circuito de desplazamiento simple con un solo bit que se desplaza deu n a p o s i c i n a la siguiente. Si la secuencia de control debe repetirse una y otra vez, elc o n t r o l s e r e d u c e a u n c o n t a d o r d e a n i l l o . U n c o n t a d o r d e a n i l l o e s u n r e g i s t r o d e desplazamiento con la salida del ltimo flipflop conectado a la entrada del primer flip- flop. 2.Mtododelregistro de secuencia y el decodificador: Este mtodo usa un registro para darle secuencia a los estados de control. El registrose decodifica para suministrar una salida por cada estado. El circuito tendr 2 n estados y eldecodificador 2 n salidas , para n flip-flops en el registro de secuencia. Por ejemplo un registro de 4 bits puede estar en cualquiera de los 16 estados. Un decodificador 4x16 tendr1 6 salidas una para cada estado del registro, tanto el registro de f r e c u e n c i a c o m o e l decodificador con componentes MSI.

El registro de frecuencia tiene 2 flip-flops y el decodificador e s t a b l e c e s a l i d a s separadas para cada uno de los registros, La transmisin al siguiente estado del registro desecuencia es una funcin del estado presente y las condiciones de entradas externas. 3. Control PLA: El PLA es un componente LSI que puede configurar c u a l q u i e r c i r c u i t o combinacional complejo. El control del PLA es e s e n c i a l m e n t e s i m i l a r a l r e g i s t r o d e secuencia y al mtodo del decodificador excepto que todos los circuitos combinacionales seconfiguran con un PLA, incluyendo el decodificador y la lgica de decisin. Es posible reducir el nmero de CI y el nmero de alambres de interconexin, usando un PLA para elcircuito combinacional.Un registro de secuencia externo establece el estado presente del circuito de control.Las salidas PLA determinan cules micro-operaciones deben iniciarse dependiendo de lascondiciones de entrada externas y del estado presente del registro secuencial. Al mismo tiempo, otras salidas del PLA determinan el estado siguiente del registro de secuencia.E l r e g i s t r o d e s e c u e n c i a e s e x t e r n o a l P L A s i l a u n i d a d c o n f i g u r a s o l a m e n t e circuitos combinacionales . Sin embargo hay algunos PLA disponibles que incluyen no solamente compuertas sino flip-flops dentro de la unidad.

4.Control del microprograma: El propsito de la unidad de control es iniciar una serie de pasos secuencia les demicro -operaciones. Durante cualquier tiempo dado se deben iniciar ciertas operacionesmientras que otras permanecen latentes. As, las variables de control en un tiempo dado p u e d e n s e r r e p r e s e n t a d a s p o r u n a c a d e n a d e 1 0 l l a m a d a p a l a b r a d e c o n t r o l . D i c h a s palabras de control pueden ser programadas para iniciar las diferentes componentes en elsistema de una manera organizada. Una unidad de control cuyas variables de control sealmacenan en una memoria, se llaman unidad de control micro-programada. Cada palabra de control de memoria se llama microinstruccin y una secuencia de microinstrucciones sellama microprograma. Como poco se necesitan las alteraciones del microprograma, la m e m o r i a d e c o n t r o l p u e d e s e r u n a R O M . E l u s o d e l m i c r o p r o g r a m a c o m p r e n d e l a ubicacin de todas las variables de control en palabras de la ROM para usarlas por medio de las unidades de control a travs de operaciones sucesivas de lecturas. El contenido de la palabra en la ROM en una direccin dada especifica las micro-operaciones del sistema.Un desarrollo mas avanzado conocido como micro-programacin dinmica permitec a r g a r i n i c i a l m e n t e u n m i c r o - p r o g r a m a a p a r t i r d e u n a c o n s o l a d e c o m p u t a d o r o u n a memoria auxiliar como un disco magntico. Control de componentes alambrados Se comienza con la posicin del problema y se procede con los pasos del diseo para obtener la lgica de control del sistema el diseo se lleva acabo en 5 pasos: 1.Seenunciaelproblema: el problema aqu es configurar con materiales la adicin ysustraccin de dos nmeros binarios de punto fijo representado en forma de signos-magnitud. Se puede usar aritmtica implementada siempre y cuando el resultado final esteen forma de signomagnitud.La suma de dos nmeros en un registro de longitud finita podra resultar en una suma queexcede la capacidad de almacenamiento. 2. Se asume una c onfiguracin inicial del equipo: los dos nmeros binarios con signos alser sumados o restados contienen bit. Las magnitudes de los nmeros contienen R=N-1 bity se almacenan en los registros A y B. los bit de signos se almacenan en los flip-flops A yB. 3. Se formula el algoritmo: la representacin de nmeros por signos-magnitud es famaliar debido a que se usa para los calculos aritmticos a lpiz y papel. El procedimiento de desuma y resta de dos nmeros binarios con signos de lpiz y papel es muy simple y directo.Una revision de este procedimiento podra ser til para deducir el algoritmo diseado. 4. Se especifica l a parte del procesador de datos: el flujograma del algoritmo listatodaslas microoperaciones para la parte del procesador de datos del sistema. Las operacionesentre A y B pueden realizarse con el ALU. 5.Se disea la lgica de control: el diseo de un control con materiales interconectados esun problema de lgica secuencial. Los recuadros del flujograma pueden ser considerados c o m o estado de circuito secuencial y los recuadros de decisin como c o n d i s i o n e s d e sistemas del siguiente estado. Las microopraciones que deben ser ejecutadas en un estado dado, se especifican dentro de un recuadro de funcin.Las condiciones para la transicin del siguiente estado se especifican dentro del recuadro dedecisin o en las lneas que se conectan entre los recuadros de funcin. Aunque se puede formular esta relacin entre un flujograma y el diagrama de estado, la conversin entre unaforma y otra no es nica. En consecuencia,

diferentes diseadores producan diferentes d i a g r a m a s d e e s t a d o p a r a el mismo flujograma y cada cual puede ser una c o r r e c t a representacin del sistema. Control del microprograma

En un microprograma de control, las variables de control que inician m i c r o - operaciones se almacenan en la memoria. La memoria de control es comnmente una ROMya que la secuencia de control es permanente y no necesita alteracin. Las variables de control almacenadas en la memoria son ledas una a una para iniciar la secuencia de micro-operaciones del sistema.Las palabras almacenadas en la memoria de control son microinstrucciones y cadauna de ellas especifica una o ms micro-operaciones para los componentes en el sistema.Una vez que se ejecutan estas micro-operaciones, la unidad de control debe determinar la siguiente direccin. Por tanto, unos pocos bits de la microinstruccin se usan para controlar la generacin de la direccin para la siguiente microinstruccin. As una microinstruccincontiene bits para iniciar micro-operaciones y bits para determinar la siguiente direccin para la memoria de control en s misma.Adems de la memoria de control, una unidad de control de microprograma debe incluir circuitos especiales para seleccionar la siguiente direccin como se especifica por lam i c r o i n s t r u c c i n . E s t o s c i r c u i t o s y l a c o n f i g u r a c i n d e l o s b i t s d e m i c r o i n s t r u c c i n almacenados en la memoria varan de una unidad a otra.U n estado en la memoria de control se representa por la d i r e c c i n d e u n a microinstruccin. Una direccin para la memoria d e c o n t r o l e s p e c i f i c a u n a p a l a b r a d e control dentro de una microinstruccin. Control de la unidad procesadora Una unidad de control del microprograma debe tener una c o n f i g u r a c i n d e propsito general para adaptarse a una gran cantidad de situaciones. Una unidad de controlde microprograma debe tener una memoria de control suficiente como para almacenar microinstrucciones. Se debe hacer provisin para incluir todas las variables de control posibles en el sistema y no solamente para controlar un ALU. El multiplexor y los bitsseleccionados deben incluir todos los dems bits de condicin posibles que se quierancomprobar en el sistema. Se debe tener una provisin para aceptar una direccin externa para iniciar muchas operaciones en vez de dos operaciones solamente tales como suma y sustraccin.La principal ventaja del control del microprograma es el hecho que una vez que se h a e s t a b l e c i d o l a c o n f i g u r a c i n d e l o s m a t e r i a l e s n o d e b e h a b e r n e c e s i d a d d e c a m b i o s posteriores de las conexiones entre los componentes. Si se quiere establecer una secuenciade control

diferente para el sistema, todo lo que se necesita es especificar un conjunto d i f e r e n t e d e m i c r o i n s t r u c c i o n e s p a r a l a m e m o r i a d e c o n t r o l . L a c o n f i g u r a c i n c o n l o s materiales no debe cambiar para las diferentes operaciones; el nico cambio debe ser el microprograma que reside en la memoria de control. Secuenciador del microprograma El secuenciador es el centro neurlgico de gestin, c o n t r o l y p l a n i f i c a c i n d e l microprocesador, por tanto su f u n c i n e s f u n d a m e n t a l p a r a e l d e s a r r o l l o d e c u a l q u i e r instruccin software. A la hora de realizar un secuenciador pueden tenerse presente dos polticas de diseo:histricamente, la primera es la cableada. Esta metodologa convierte el secuenciador de lamquina en un autmata finito determinista (mquina de Mealy o mquina de Moore). Lossecuenciadores as diseados tendrn siempre la misma funcionalidad, y slo mediante unamodificacin hardware podr ser cambiada; esto obliga a un costoso desarrollo hardware d e l e q u i p o . A l m i s m o t i e m p o q u e d i f i c u l t a n o t a b l e m e n t e l a p r u e b a y l a f i a b i l i d a d d e l mismo. Por otra parte, el secuenciador puede disearse como si fuese un microprocesador del p r o p i o microprocesador. En este caso, las decisiones no estn sujetas a un c i r c u i t o combinacional lgico, sino al contenido de una memoria (memoria de microprograma el c o n t e n i d o d e e s t a m e m o r i a e s e l e n c a r g a d o d e e s t a b l e c e r e l c i r c u i t o c o m b i n a c i o n a l d e estados lgicos para la realizacin de una determinada tarea, actuando de una forma muy sencilla. Un valor 1 lgico en una posicin de memoria (recurdese una clula CMOS cargada)sera equivalente a un circuito cerrado, mientras que un valor 0 lgico sera equivalente aun circuito abierto. Esta tcnica de diseo permite. por tanto, variar fcilmente ( bastara cambiar el contenido de la memoria de microprograma) la actuacin de un microprocesador a n t e l o s m i s m o s e v e n t o s , e s d e c i r , p e r m i t e p a s a r f c i l m e n t e u n m i c r o p r o c e s a d o r d e propsito general a uno de propsito especfico. En conclusin, se puede afirmar que si el microprocesador es el alma funcional de unacomputadora, el secuenciador lo es a su vez en la misma proporcin del microprocesador. La microprogramacin, por tanto, es una programacin de muy bajo nivel (ms bajo q u e e l c d i g o e n s a m b l a d o r ) , a n i v e l d e l e n g u a j e m q u i n a ( c e r o s y u n o s ) . P o r t a n t o s u aplicacin queda restringida a los centros de investigacin y desarrollo hardware, ya que elfabricante realizar dicha aplicacin tanto para un microprocesador de propsito generalcomo para un microprocesador de propsito especifico , a peticin del cliente. Debido a esto, un usuario normal no puede modificar ni la estructura ni el cdigo de microprogramaresidente en su microprocesador. Conclusin El diseo de un sistema no puede comenzar hasta que el diseador este seguro de d o s c o s a s : p r i m e r o e l p r o b l e m a d e b e c o m p r e n d e r s e c o m p l e t a m e n t e y d e b e s e r d e g r a n inters para el diseador, segundo se debe asumir una configuracin inicial del equipo paraconformar el procedimiento. Y a partir del enunciado del problema y la disponibilidad delequipo se busca una solucin y la forma del algoritmo.El control inicia todas las micro-operaciones en el procesamiento de datos, en un t i e m p o d e t e r m i n a d o , e l e s t a d o d e c o n t r o l s e c u e n c i a l inicia un conjunto de micro-

operaciones ya preseleccionadas. Este pasa el siguiente estado o i n i c i a o t r a s m i c r o - operaciones esto depende de las condiciones que estn presente y de otras entradas.El diseo lgico de control no puede separarse del desarrollo del algoritmo para r e s o l v e r u n p r o b l e m a d e d i s e o , s i n e m b a r g o , l a l g i c a d e c o n t r o l e s t r e l a c i o n a d a directamente a la parte del procesador de datos del sistema que este controla.

UNIDAD 6. DISEO DE UNA COMPUTADORA. 6.1 Configuracin del sistema. 6.2 Instrucciones de la computadora. 6.3 Control y tiempos. 6.4 Ejecucin de las instrucciones.

6.5 Diseo del control. 6.6 Diseo de registro. 6.7 Diseo de la consola. 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

DRAC 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 entradasalida 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 entradasalida 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 O

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: ARPC

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: AR4EPC

T1: IRM[AR], PC<PC+1

T2: D0,..., D7 Decodificar IR(1214), AR IR(O--1IR(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

D7IIT3: Nada

D7IT3: 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 D7T3 = 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 D7It3 la cual, por conveniencia, representaremos con el smbolo r. La funcin de control se distingue por uno de los bits en IR (011). 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 D71T3B11 = rB11. La ejecucin de una instruccin de referencia a registro se termina en el tiempo 7I3. 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 inicioalto 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 12 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: DRM[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:DRM[AR]

D2T5:ACDR,SCO

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,SCO

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, PC135+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:PC<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: DRDR+1

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

UNIDAD 7. ORGANIZACIN DE ENTRADA/SALIDA. 7.1 Repaso de dispositivos perifricos. 7.2 Interfaz E/S 7.3 Interfaz asncrona serie. 7.4 Acceso directo a memoria (DMA) 7.5 Sistema de interrupciones. 7.6 Comunicacin entre perifricos. 7.7 Procesadores E/S. 7.8 Perifricos. 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 analgicos-digitales 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 micro-segundo. 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 "modulador-demodulador"). 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.

Anda mungkin juga menyukai