ARQUITECTURA DE COMPUTADORAS

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

LDA: Cargar a AC

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

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

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

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

STA: Almacenar AC

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

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

BUN: Brinco incondicional.

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

D4T4:PC-AR,SC O

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

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

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

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

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

M[135]