tema9_2

Embed Size (px)

Citation preview

  • SISTEMAS DIGITALES

    ______

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia

    UNIVERSIDAD DE SEVILLADEPARTAMENTO DE TECNOLOGA ELECTRNICA

  • Carmen Baena

    Jos Ignacio Escudero

    Isabel Gmez

    Manuel Valencia

    Sistemas Digitales

    Departamento de Tecnologa ElectrnicaETS Ingeniera Informtica. Universidad de SevillaAvda. Reina Mercedes, s/n41012 SevillaTfos. + 34 954 552 785, + 34 954 556 159. Fax: +34 954 552 764

    Primera edicin. 1997 (N TESP - 9702 -012) Revisin actual: 2008

  • Este documento es una actualizacin de la primera edicin de 1997 de:

  • En los estudios de Informtica en la Universidad de Sevilla, inicialmente en la asignatura Circuitosy Sistemas Digitales I y, tras el cambio de los planes de estudio de 1997, en las asignaturas Estructurade Computadores (de I.I. y de ITIS) y Estructura y Tecnologa de Computadores 2 (de ITIG), se desa-rrolla la materia sobre sistemas digitales a nivel RT y su aplicacin al diseo de computadores,necesariamente simples. En 1997 no conocamos la existencia de ningn texto en el que se pudieraestudiar adecuadamente esta materia. Esto nos condujo, en dicha fecha, a desarrollar este libro, conel principal objetivo de disponer de un texto donde estudiar y aprender esta interesante e importantemateria en la que, adems de establecer metodologas y realizar diseos complejos, se tiende el puenteentre el hardware y el software.

    En los tres captulos del libro los autores intentaron aportar su dilatada experiencia como profe-sores de las mencionadas asignaturas. No obstante, aunque el libro lo firmaron slo cuatro autores, nohubiera sido posible sin la aportacin y colaboracin de los restantes profesores: as que, muchas gra-cias a Manolo Bellido, Alberto Molina, Pilar Parra y Paco Prez.

    Desde que se dio por finalizada la primera edicin de 1997, el libro ha sido puesto a libre dispo-sicin de los alumnos en la copistera del centro todos los cursos, sin ms coste que el propio de sureproduccin en fotocopias. En los ms de 10 aos transcurridos, centenares de alumnos del primercurso de cualquiera de las titulaciones de Informtica han estudiado dichas materias en este libro, loca-lizando varias erratas.

    En la presente edicin no slo se pretende corregir los fallos detectados sino, sobre todo, actua-lizar los contenidos con lo aportado durante el periodo de tiempo transcurrido. No obstante, hemosdeseado mantener la estructura original, aadiendo anexos como forma de incluir los nuevos conteni-dos. El original de 1997 haba sido creado con diferentes procesadores de texto, cuya traslacin de unoa otro no es directa. En esta edicin, pues, ha sido necesario volver a editar buena parte de la materiaen el nuevo procesador.

    El presente libro expone los aspectos tericos de los sistemas digitales a nivel RT. Aunque con-tiene algunos ejercicios, su estudio debe completarse con la realizacin de problemas (cuyos enuncia-dos no se incluyen en esta obra).

    Al estudiar esta nueva edicin del libro posiblemente que se detectarn erratas, partes desarro-lladas defectuosamente o fallos de cualquier tipo. Estaramos muy agradecidos si nos comunican todoslos errores que encuentren (p. ej., enviando un mail a [email protected]).

    Los tres captulos incluidos son:

    1. Introduccin a los sistemas digitales. En l se plantean las formas de disear, describir yrealizar los sistemas digitales a nivel RT. Como ejemplo de diseo, se desarrolla como una calculadorade sumas y restas.

    Prlogo (actualizando la ed. 1997)

  • 2. Diseo de unidades de control. Se aborda la realizacin del controlador de los sistemas digi-tales, principalmente utilizando la tcnica de un biestable por estado, pero presentando diversas opcio-nes ms, entre las que se incluye el control microprogramado con ROM y con PLA.

    3. Diseo a nivel RT de un computador simple. Se introduce el concepto y modo de operacinde los computadores desde una perspectiva de diseo, partiendo de la calculadora diseada en elcaptulo 1. Se desarrollan dos computadores simples. El segundo de ellos tiene un juego de instruccio-nes que permite ejecutar programas de bajo nivel para resolver tareas medianamente complejas. Deeste computador simple se dispone de un emulador que ser utilizado en las prcticas de programacinen ensamblador.

    Anexos:

    * Ensamblador del Computador Simple: Se describe el ensamblador y se realizan mltiplesejemplos de programacin con este lenguaje ensamblador. Tambin se presenta el emulador quepermite ejecutar estos programas y ver el flujo de datos tanto instruccin a instruccin (nivel ISP)como operacin a operacin (nivel RT). Este emulador se utiliza en prcticas de laboratorio.* Multiplicacin de magnitudes: Se describen diferentes formas de multiplicar en binario. Tresde ellas se aplicarn en prcticas de laboratorio.

    * Glosario: Un extenso nmero de conceptos son explicados brevemente en este anexo.

    * Referencias: Contiene las referencias a la bibliografa consultada para elaborar el libro.

  • CAPTULO 1: INTRODUCCIN A LOS SISTEMAS DIGITALES

    1.1 INTRODUCCIN 1

    1.2 EL NIVEL DE TRANSFERENCIA ENTRE REGISTROS (RT) 3

    1.2.1 Descripcin de registros a nivel RT 31.2.2 Operaciones de transferencias entre registros 11

    1.3 TCNICAS DE INTERCONEXIN MEDIANTE BUSES 14

    1.4 REALIZACIN DE SISTEMAS DIGITALES 20

    1.5 CARTAS ASM 29

    1.5.1 Definiciones 291.5.2 Relacin entre cartas ASM y tablas de estado 331.5.3 Ejemplos de cartas ASM 351.5.4 Consideraciones temporales 411.5.5 Carta ASM del ejemplo 441.5.6 Unin entre cartas ASM 47

    1.6 LENGUAJE DE DESCRIPCIN DE HARDWARE (HDL) SIMPLIFICADO 49

    1.6.1 Descripcin del HDL 491.6.2 Programa HDL de la calculadora del ejemplo 51

    1.7 EL DISEO DE LA UNIDAD DE CONTROL 51

    1.8 EL USO DEL SISTEMA DEL EJEMPLO 53

    CAPTULO 2: DISEO DE UNIDADES DE CONTROL

    2.1 INTRODUCCIN 55

    2.2 ESTRATEGIAS DE REALIZACIN DE CONTROLADORES 57

    2.2.1 Objetivos y criterios de diseo 572.2.2 Una clasificacin de estrategias de implementacin 58

    2.3 REALIZACIN LGICA DISCRETA 58

    2.4 REALIZACIN BASADA EN UN BIESTABLE POR ESTADO 64

    2.4.1 Fundamentos 642.4.2 Asociacin carta ASM con circuito de control 662.4.3 Casos particulares 68

    ndice

  • 2.4.3.1 Bifurcacin de acciones en una microoperacin 682.4.3.2 Macrooperaciones de longitud variable 692.4.3.3 Repeticin de microoperaciones 702.4.3.4 Anulacin de comandos 70

    2.4.4 Solucin a la unidad de control de la calculadora de nuestro ejemplo 71

    2.5 PROBLEMAS DE COMIENZO 72

    2.6 OTROS TIPOS DE REALIZACIN 77

    2.6.1 Implementacin con multiplexores y flip-flops D 772.6.2 Realizacin con dispositivos lgicos programables PLDs 81

    2.6.2.1 Realizacin con PLA 812.6.2.2 Realizacin con PAL 862.6.2.3 Realizacin con ROM 862.6.2.4 Introduccin al control microprogramado 92

    2. 7 RESUMEN 96

    CAPTULO 3: DISEO A NIVEL RT DE UN COMPUTADOR SIMPLE

    3.1 INTRODUCCIN 97

    3.2 COMPUTADOR SIMPLE 1 (CS1) 99

    3.2.1 Unidad de datos 993.2.2 Ejecucin automtica del programa 1033.2.3 El sistema digital CS1 106

    3.2.3.1 El conjunto de instrucciones 1063.2.3.2 Requisitos hardware 1073.2.3.3 Unidad de control 108

    3.2.4 Ejemplo de uso del computador simple 1 113

    3.3 COMPUTADOR SIMPLE 2 (CS2) 114

    3.3.1 La pluralidad de instrucciones a nivel ISP 1153.3.1.1 Tipos de instrucciones 1153.2.1.2 Modos de direccionamiento 117

    3.3.2 Conjunto de instrucciones del CS2 1193.3.3 Estructura del computador simple 2 1243.3.4 Ejemplos de uso del computador simple 2 128

    3.3.4.1 Ejemplo I: suma de "n" sumandos 1283.3.4.2 Ejemplo II: multiplicacin 1303.3.4.3 Ejemplo III: suma de productos 133

    3.4 CONCEPTO DE COMPUTADOR 135

    3.4.1 Organizacin bsica 1363.4.2 Instrucciones multipalabras 1423.4.3 La operacin de entrada/salida 145

    Anexo I Ensamblador del Computador Simple 149

    Anexo II Multiplicacin de magnitudes 167

    Anexo III Glosario 171

    Anexo IV Referencias 181

  • 1.1 INTRODUCCIN

    El aumento de la complejidad al evolucionar desde los CIRCUITOS hasta los SISTEMAS digitalestiene mltiples consecuencias en distintos niveles, algunos de los cuales se resumen en la Fig. 1.1. Unade las primeras es la necesidad de incrementar el nivel de abstraccin de la informacin que se mani-pula. En nuestro caso esto significa que debemos pasar de manejar variables binarias (0 y 1) a agrupa-ciones de estas seales, agrupaciones en las que la informacin significativa es el dato que llevan. Conesta nueva perspectiva, la funcionalidad del Sistema Digital consiste en el procesado que se realizasobre los datos. Por ejemplo, si se desea sumar el dato A con el dato B, lo que es significativo desde elnivel de Sistema es la operacin A + B sin importar el valor binario concreto de A o de B.

    Por otra parte, el lenguaje de conmutacin (combinacional y secuencial) muy til al manejar 0's y1's, no puede describir adecuadamente el procesado entre datos. Surge, pues, la necesidad de emplearun nuevo lenguaje, ms abstracto, apropiado para dicho procesado. Este lenguaje es denominado detransferencia entre registros (RT). Este nombre procede del que reciben genricamente los dispositivos(registros) que almacenan datos. El lenguaje de descripcin establece pues, otra diferencia: mientrasque los circuitos ocupan el denominado nivel de conmutacin, los sistemas se sitan en el nivel RT.

    CAPTULO 1: Introduccin a los sistemas digitales

    CIRCUITOS SISTEMAS

    Informacin 0,1 Palabras de datos

    Nivel/Lenguaje De conmutacin RT(Register Transfer)

    Funcionalidad Mquinas de estados finitos Operaciones (instrucciones)

    Componentes Puertas y biestables MUX, ALU, ..., registros,...

    Conexin Lneas (cables) Buses

    OrganizacinCombinacional y almacena-

    miento (memoria)Procesado de datos y control

    Figura 1.1: Circuitos versus Sistemas.

  • 2 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    Desde la perspectiva funcional, los circuitos realizan mquinas de estados finitos. Estrictamentehablando, los sistemas tambin. Sin embargo, como la utilidad principal de estos sistemas consiste enel procesado de datos, es preferible describir su funcionalidad en trminos de operaciones entre datos,tambin llamados macrooperaciones o instrucciones del sistema. Ello permite, por una parte, manejarfunciones ms complejas ya que es posible encadenar secuencias de estas instrucciones (hacer unprograma) para resolver problemas mucho ms complicados que los resueltos por cada instruccinpor separado. Por otra parte, tambin se consigue aproximar el lenguaje de la mquina al del serhumano, aunque simultneamente esto signifique un alejamiento entre el lenguaje de descripcinusado y la ejecucin real de las tareas por los circuitos. El nivel de la macrooperacin se sita en unpunto intermedio entre las operaciones de conmutacin del hardware y las instrucciones software. Ade-ms, la descripcin funcional mediante operaciones entre datos comparte la resolucin algortmica deproblemas con otras muchas aproximaciones (como la de la programacin). Con todo ello se tiende unimportante puente de conexin entre el hardware y el software.

    Particularizando sobre la realizacin de los Sistemas Digitales, el nuevo enfoque supone cambiosen los componentes de diseo y en las conexiones entre ellos. En relacin a los componentes, se utili-zan subsistemas (secuenciales y combinacionales) preferentemente a puertas y biestables. Con ello seconsigue una mayor aproximacin entre el lenguaje de descripcin y los componentes utilizados, a lavez que se aprovecha la mayor potencia y flexibilidad de los subsistemas frente a las puertas y biesta-bles. Adems, el uso de estos componentes est en consonancia con los propios cambios en los crite-rios de diseo en los que ahora priman los aspectos de modularidad, sencillez en el proceso de diseo,fiabilidad, testabilidad, etc., sobre el del coste en nmero de puertas. Por otra parte, la interconexinentre los componentes se realiza mediante buses (conjunto de lneas con un significado global claro: p.ej., bus de datos) pero en el que pierde sentido cada una de sus lneas en concreto. Es por estos busespor donde viajan los datos sin importar mucho si una de estas lneas lleva un 1 un 0.

    De todo lo anterior surge un cambio sustancial en la organizacin del Sistema en relacin a la delCircuito, tal como se muestra en la Fig. 1.2. En vez de diferenciar las partes combinacional (funcionesde prximo estado y salida) y secuencial (elementos de almacenamiento de estado), un Sistema Digitalse organiza en una Unidad de Procesado de Datos(UPD) y una Unidad de Control (UC). La UPDtambin llamada simplemente Unidad de Procesado o Unidad de Datos, es la parte del Sistema que:

    - recibe los datos de entrada DIN.- procesa esos datos, para lo cual realiza las transferencias entre registros indicadas en el algo-

    ritmo que se desea ejecutar.

    - saca al exterior los resultados de salida DOUT.

    Por su parte, la UC es la parte del Sistema que controla las tareas que realiza la UPD. En parti-cular las funciones de la UC son:

    - generar la seales de control (Z) que necesitan los componentes de la unidad de datos, pararealizar el proceso correspondiente. Asmismo, deber generar las posibles salidas al exteriorque correspondan a seales de control (ZOUT), como es, por ejemplo, una seal de fin de tarea.A las seales de salida del controlador se les denominan comandos.

    - establecer la secuencia de acciones a la que obliga el algoritmo que se ejecuta. Esto significaque, para todo estado, adems de generar los comandos, la UC debe conocer su prximoestado y alcanzarlo en el siguiente ciclo. La posible evolucin de la secuencia de estadosdepender de un conjunto de seales (X, XIN) que actan como entradas de control y a las quese denomina cualificadores. Al igual que los comandos, los cualificadores pueden provenirdel exterior (XIN) o de la unidad de datos (X) en cuyo caso a veces se les denomina seales

  • INTRODUCCIN 3

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    de estado, nombre que a su vez alude al estado del procesado: si hay acarreo, resultadonulo, .... (En ingls, procede de status que no debe confundirse con el estado interno de unamquina secuencial : state).

    Cada unidad del sistema, tanto si se trata de la de datos como si es la de control, es en realidaduna mquina de estados, por lo que realiza funciones combinacionales y secuenciales y pueden, portanto, ser estudiadas como circuito secuencial. Esta perspectiva ser, en efecto, til para tratar algunasformas de realizacin de unidades de control. Sin embargo, es de nula utilidad al describir las unidadesde procesado de datos.

    A lo largo de este texto y salvo expresa indicacion en contra, los Sistemas Digitales que maneja-remos sern sncronos y la misma seal de reloj gobernar ambas unidades: en la de datos el reloj con-trolar las distintas operaciones de escritura en los registros; en la de control, gobernar los cambios deestado mediante los que se establece la secuencia de transferencias de datos entre los registros. El tra-tamiento de operaciones asncronas no ser, pues, objeto de estudio en este texto.

    1.2 EL NIVEL DE TRANSFERENCIA ENTRE REGISTROS (RT)

    El nivel RT (Register Transfer) es una forma de descripcin de sistemas digitales mediante datosalmacenados en registros. El trmino registro, en el nivel RT de los sistemas digitales, es un trminoms amplio que el asociado al subsistema secuencial concreto del que toma el nombre. En efecto, conregistro nos referimos a cualquier dispositivo capaz de almacenar datos, englobando: los biestablescomo registros de 1 bit; los contadores como registros que incrementan/decrementan el dato almace-nado; las memorias como banco de registros; y los propios registros (de carga en paralelo y de despla-zamiento) que son los que dan nombre a este nivel de descripcin.

    1.2.1 Descripcin de registros a nivel RT.

    Al ser el componente bsico de este nivel, el registro debe ser adecuadamente conocido y des-crito bajo las perspectivas de uso en los sistemas digitales: 1) como bloque o componente del sistema(representacin estructural); 2) como elemento de almacenamiento de la informacin (representacinde datos); y 3) como circuito que tiene una forma dada de operar (representacin funcional). A conti-

    B1

    Br

    circuito combinacional

    . . .

    . . .

    . . .

    . . .

    . . . Z1

    Zk

    X1Xn

    y1

    yr

    reloj

    Figura 1.2: (a)Estructura general de una FSM (Mquina de estados finitos). (b)Estructura general de un sistema digital.

    ZXreloj

    Unidad decontrol

    Unidad deprocesado

    ZOUT

    DOUTDIN

    XIN

    X: cualificadores o entradas de controlZ: comandos o salidas de controlD: datos

    (a) (b)

  • 4 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    nuacin se detallan estas tres perspectivas.

    Representacin estructural.A nivel estructural un registro genrico es (Fig. 1.3) un bloque de n bits con m seales de control:

    s1, ..., sm, que dependiendo de la combinacin binaria que posean, harn que el registro realice unaoperacin u otra. Adems poseer un conjunto de lneas de entrada de datos (de las que en la Fig. 1.3se han representado las n lneas de entrada en paralelo), as como otro conjunto de lneas de salida dedatos por donde se podr acceder al contenido (salidas en paralelo en la Fig. 1.3). Adems, al ser dis-positivos secuenciales, poseern su entrada de reloj que, salvo indicacin en contra, supondremos enadelante que ser activa en el flanco de subida.

    Representacin de datos.Con esta representacin nos referimos al contenido que tiene almacenado el registro y que, en

    general, es un dato. A este se puede acceder completamente, esto es, a toda la palabra binaria en lalmacenada, o parcialmente, es decir, slo a algunos bits del dato.

    La representacin del dato se esquematiza en la Fig. 1.4, en la que hemos supuesto que el nom-bre del registro con el que trabajamos es A. Si hacemos referencia al dato almacenado al completo lollamaremos [A] o, cuando no haya posibilidad de confundir el dato y el dispositivo, simplemente A. Sinembargo, si queremos referirnos a bits sueltos del dato lo haremos escribiendo los subndices corres-pondientes teniendo en cuenta que en este texto representamos a la derecha el bit menos significativo(posicin 0). As, [Ai-j,k] = [A]i-j,k hace mecin a los bits correlativos desde el i hasta el j, y, adems, al bitk-simo. Al igual que antes, si no hay confusin entre lneas y bits de datos, tambin puedeponerse Ai-j,k.

    n

    n

    DIN

    DOUT

    A[n]

    reloj

    . . .

    s1

    sm

    sx: entradas de seleccin o control de operacin

    Dxx: terminales de datos

    Figura 1.3: Representacin estructural de un registro.

    01n -1 . . . .. . . .

    016 23457

    [A7,4-2,0] A7,4-2,0 = 01001

    A

    Figura 1.4: Representacin de datos.

    A

    111 00110[A] A = 01110011

  • INTRODUCCIN 5

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    Representacin funcional.La representacin funcional debe describir la operacin y suele ser la representacin ms com-

    pleja del registro. En general se pueden distinguir tres tipos de funcionalidades: la operacin de escri-tura, la operacin de lectura y la activacin de las seales de control. Pasemos a describirlas en msdetalle.

    - Escritura en R: aquellas acciones sobre el registro que conducen a una modificacin del datoalmacenado.

    R nuevo datoSe trata de una operacin de tipo secuencial. Es decir, el nuevo dato se carga en el

    registro R de forma sincronizada con su seal de reloj.

    Las operaciones ms comunes de escritura y su expresin a nivel RT se muestran enla Tabla 1.1.

    En la operacin de carga en paralelo, el nuevo dato del registro es el que hay en lasentradas DIN (Fig. 1.3) cuando se activa el flanco de reloj.

    Las operaciones de desplazamiento a derecha y a izquierda (Fig. 1.5), adems del des-plazamiento interno de los bits, supone la entrada de un nuevo bit por una lnea (Dr y Dl, res-pectivamente) que se almacena en una de las celdas extremas del registro (An-1 y A0,respectivamente). El nuevo dato que se almacena est constituido, pues, por n-1 bits del datoantiguo, pero ocupando ahora las posiciones consecutivas, ms el nuevo bit que entra por lalnea Dr Dl. En notacin RT estas operaciones tienen dos formas de escribirse: una, expre-sando la operacin de las distintas celdas individualmente; la otra, englobndolas bajo la ope-racin SHR SHL(registro, bit)1.

    Por su parte, las operaciones tpicas del contador, de incremento y de decremento, sedescriben sumando o restando la unidad al dato presente, sin especificar nada ms ya que seasume que son contadores de magnitud y que hacen la cuenta.

    La operacin de borrado o puesta a 0 se escribe poniendo 0 como nuevo dato. La ope-racin de puesta a 1 no puede ponerse escribiendo 1 como nuevo dato ya que el nuevo datoes todos los biestables a 1, con magnitud de 2n-1; en su lugar es simple poner 11...11 comonuevo dato. Por ltimo, la operacin de inhibicin o de no-operacin (NOP) deja en el registro

    Operacin Notacin RT

    Carga en paralelo A DINDesplazamiento a derecha An-1 Dr, Ai Ai+1 i n-1; A SHR(A,Dr)Desplazamiento a izquierda A0 Dl, Ai Ai-1 i 0; A SHL(A,Dl)Incremento (Decremento) A A + 1, (A A - 1)Puesta a 0 ( 1) Ai 0 i A 0 (Ai 1 i A 1 . . . 1)Inhibicin (NOP) A A

    Tabla 1.1: Principales operaciones de un registro a nivel RT.

    1. Ntese que el significado de A vara segn donde aparezca: si est a la derecha de la flecha (posicin fuente) representa el dato actualmente almacenado en el registro, mientras que si est a la izquierda (posicin destino) indica el registro que, tras la actuacin del flanco activo de reloj, almacenar el nuevo dato.

  • 6 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    el mismo dato que haba.

    - Lectura de R: bsicamente consiste en acceder al dato almacenado o a alguna funcin com-binacional del mismo a travs de las lneas de salida del registro. En notacin RT se escribe:

    SAL = dato/funcin del datodonde SAL es el nombre de las salidas.

    El smbolo = hace alusin a que la lectura es una operacin de tipo combinacional.Esto es, salvo los retrasos de propagacin de la lgica, las salidas SAL muestran el valoractual del dato o de la funcin del dato. Por ejemplo, si el registro de la Fig. 1.3 se lee en para-lelo cuando su contenido es el de la Fig. 1.4, la operacin de lectura en notacin RT es:

    DOUT = 73

    donde el nmero 73 est en hexadecimal, que es la notacin habitual para dar datos binarioscuando no se usa el propio valor binario.

    Un ejemplo de lectura de una funcin del dato se muestra en la Fig. 1.6. La salida CEROse activa cuando el registro A est borrado. A nivel RT se escribe:

    CERO = NOR(An-1, ..., A0)

    aunque tambin puede escribirse como:

    CERO = 0 si A 0CERO = 1 si A = 0

    Otros casos de salida tipo funcin del dato son las seales de fin de ciclo de cuenta delos contadores (llamadas carry en los ascendentes y borrow en los descendentes).

    La operacin de lectura, sea del dato o de una funcin del dato, puede ser incondicionalo condicional.

    - Lectura incondicional. Es la que ocurre si el acceso desde la salida no est condicionadopor ninguna seal: las salidas del registro muestran siempre el dato almacenado (Fig. 1.7-a)

    100 0

    1

    1

    Ck 11

    011 0

    0

    0 1

    Ck 10

    100 0

    0

    1

    Ck 1 1

    110 1

    0

    0 1

    Ck 1 0

    Figura 1.5: Operaciones de desplazamiento: (a) A derecha; (b) A izquierda.

    DlDr

    Dr Dl

    SHL(A,Dl)SHL(A,Dr)

    A

    A

    A

    A(b)(a)

    01n -1 .. . A

    . . .>1 CERO

    Figura 1.6: Lectura tipo funcin del dato.

  • INTRODUCCIN 7

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    o la funcin combinacional del dato.

    - Lectura condicional. En este caso slo se podr acceder al dato almacenado en el registrosi cierta condicin de control, que aqu llamaremos seal de lectura R (read), es verdadera.En notacin RT se escribir:

    R = 1 DOUT = A

    R = 0 DOUT = ?

    Por lo general, cuando el registro comparte el bus desde el que se accede a sus datos(vase apartado 1.3), en sus lneas de salida se muestra el estado HI. Otras alternativas sonfijar las lneas de salida al valor 0 al 1. En la Fig. 1.7.b-d se muestran las distintas imple-mentaciones de salida de una etapa tpica de un registro segn tenga salida condicional deuno u otro tipo, as como su descripcin RT.

    - Control. En general, un dispositivo-registro tendr un conjunto de seales de control (s) queseleccionarn cul de las operaciones posibles en el registro es la que se va a realizar.Cada vez que cierta funcin combinacional de las seales se haga verdadera, se realizaruna operacin en particular. A nivel RT se escribe:

    f(s): operacinPara el manejo personal es muy til describir las actuaciones de control mediante una

    tabla, en la que para cada combinacin significativa de las seales de control se especificantodas las acciones secuenciales (escritura) como combinacionales (lectura). En muchosde los ejemplos que siguen se usa la descripcin mediante tablas ya que es muy clara deentender.

    Con mucha frecuencia cada operacin del registro es controlada por una nica sealque es activada cuando se desea ejecutar dicha operacin. En estos casos el nombre quese le da a la seal suele recordar la operacin que controla.

    En la tabla Tabla 1.2 se han representado algunos nombres frecuentes, casi siempreprocedentes de la terminologa inglesa. As, para la carga en paralelo se usa W (Write),junto con T (Transfer) y L (Load). Para las operaciones de desplazamiento se usa S (Shift)

    qi qi

    zi

    qi qi

    RRR

    zizizi

    & > 1

    Lectura incondicionalzi = qi

    Lectura condicionalR = 0 zi = 0R = 1 zi = qi

    Lectura condicionalR = 1 zi = qiR = 0 zi = 1

    Lectura condicionalR = 0 zi = HIR = 1 zi = qi

    Figura 1.7: Implementaciones para la lectura sobre un registro

    (a) (b) (c) (d)

  • 8 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    junto con R (Right) si es a la derecha o L (Left) si es a la izquierda. Las operaciones tpicasdel contador usan I (Increment) o UP y D (Decrement) o DOWN. El borrado o puesta a 0usa CL (CLear) o Z (Zero), mientras que S (Set) indica la puesta a 1. La inhibicin ocurre sino se activa ninguna operacin, por lo que estar indicada cuando no hay ninguna seal decontrol activa; tambin se indica cuando no se activa la seal de seleccin de chip CS (ChipSelection) o de habilitacin EN (ENable) o cuando est activa la seal de deshabilitacinDIS (DISable). Por ltimo, para la lectura se suele usar R (Read).

    A continuacin aplicaremos la descripcin de registros a nivel RT sobre diversos dispositivoscomo ejemplo.

    Ejemplo1. Descripcin de un registro de n bits bidireccional con carga en paralelo.

    Las figuras 1.8 y 1.9 muestran dos formas distintas del mismo registro: uno de n bits, con cargaen paralelo y desplazamiento bidireccional con dos entradas de dato serie (DR y DL) y cuya lectura esincondicional. Su diferencia est nicamente en cmo se selecciona cada operacin.

    Operacin Seal de control

    Carga en paralelo W (T,L)

    Desplazamiento derecha/izquierda SR/SL

    Incrementa/Decrementa I/D (UP/DOWN)

    Puesta a 0/1 CL, (Z) / S

    Inhibicin Ninguna seal activa (CS,EN,DIS)

    Lectura R

    Tabla 1.2: Algunas seales frecuentes para controlar operaciones.

    . . .

    . . .

    DR DLDIN

    DOUT

    n-1 . . . 1 0

    n-1 . . . 1 0A[n]

    WSRSLCK

    W SR SL Escritura en A Lectura de A

    0 0 0 A A Inhibicin

    DOUT = A

    1 0 0 A DIN Carga en paralelo 0 1 0 A SHR(A,DR) Desplazamiento a la derecha 0 0 1 A SHL(A,DL) Desplazamiento a la izquierda

    Otras Prohibidas

    Figura 1.8: Registro del Ejemplo 1 con seal de control especfica para cada operacin

  • INTRODUCCIN 9

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    En el caso de la Fig. 1.8 cada operacin sobre el registro lleva una seal de control asociada, deforma que cuando esta seal vale 1 se realiza la operacin correspondiente. Asmismo, como se pro-hibe la realizacin de ms de una operacin sobre el registro simultneamente entre las seales de con-trol slo una podr tener el valor lgico 1 cada vez. Se dice a veces que, en este tipo de registros, lasseales de control estn decodificadas. La situacin ninguna activa indica la inhibicin.

    La forma algebraica de describir el registro de la Fig. 1.8 a nivel RT, bajo las dos suposiciones yacomentadas (prohibir dos o ms seales activas y que la inhibicin es no activar seales), es:

    W: A DINSR: A SHR(A,DR)SL: A SHL(A,DL)

    De forma anloga, pueden encontrarse dispositivos cuyas seales de control estn codificadas.Esto significa que, en cada combinacin binaria distinta de las seales de control S1, ..., Sm se realizauna operacin diferente sobre el registro, pudiendo estar ms de una seal de control activa simult-neamente. As, cada operacin se ejecuta en un cdigo de entrada. De esta forma podr elegirse siem-pre el mnimo nmero de seales de control necesarias para codificar al nmero de operacionesdistintas que se quieran realizar sobre el registro. En la Fig. 1.9 se aplica esta alternativa a un registrocomo el anterior (Fig. 1.8). Obsrvese que ahora slo se usan dos seales de control y que cada cdigode dichas seales selecciona una operacin. De forma algebraica a nivel RT la descripcin ser:

    S1S0: A DINS1S0: A SHR(A,DR)S1S0: A SHR(A,DL)

    donde hemos asumido que el cuarto cdigo (S1S0), al causar una no operacin (inhibicin), no es nece-sario explicitarlo.

    . . .

    . . .

    DR DLDIN

    DOUT

    n-1 . . . 1 0

    n-1 . . . 1 0A[n]S1S0

    CK

    S1 S0 Escritura en A Lectura de A

    0 0 A A Inhibicin

    DOUT = A

    0 1 A DIN Carga en paralelo1 0 A SHR(A,DR) Desplazamiento a la derecha1 1 A SHL(A,DL) Desplazamiento a la izquierda

    Figura 1.9: Registro del Ejemplo1 con seales de seleccin de operacin mediante cdigo de valores.

  • 10 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    Ejemplo2. Descripcin de una RAM comercial: RAM 2114.

    Como segundo ejemplo de descripcin a nivel RT se presenta la de un dispositivo comercial rela-tivamente complejo: el CI1 2114 (Fig. 1.10). Se trata de una RAM de 10 lneas de direccin, 4 lneasbidireccionales de datos, con una capacidad de 4096 bits (organizados como 1K 4) y con dos sealesde control: una activa en baja para seleccionar el chip y la otra que controla si la operacin es de lecturade la RAM (R/W = 1) o de escritura en ella (R/W = 0). Obsrvese que el dato que se encuentra en lassalidas D3-0 durante la lectura es el que se encuentra almacenado en la palabra de la RAM direccionadapor las lneas de direccin A (A = A9:0).

    D = [RAM(A)]

    Como las lneas de datos D son bidireccionales, durante la operacin de escritura actan comoentradas hacia la RAM portando el dato DIN a escribir, dato que habr situado otro circuito no contem-plado aqu. El dato DIN se escribir en la palabra seleccionada por las lneas de direccin A que actacomo registro en el que escribir:

    RAM(A) DINentendiendo que el resto de registros de la RAM no cambian:

    RAM(B) RAM(B) B ADe forma algebraica se escribir:

    : D = [RAM(A)]

    : RAM(A) DINentendiendo que los casos no especificados estn inhibidos (no hay cambio de datos y las salidasen HI).

    1. CI: Circuito Integrado

    CS R WCS R W

    CSR/W

    A9:0 RAM1K42114

    D3:0

    CS R/W RAM D3-0 Comentarios

    1 - RAM RAM HI -0 1 RAM RAM [RAM(A)] Lectura0 0 RAM(A) D D3-0 Escritura

    Figura 1.10: Descripcin RT de la RAM 2114.

    104

  • INTRODUCCIN 11

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    1.2.2 Operaciones de transferencias entre registros.

    La unidad de procesado de datos (Fig. 1.2-b) de un sistema digital genrico contiene varios regis-tros interconectados entre s a travs de lneas conductoras y circuitos combinacionales. Como el propionombre indica, a nivel RT la principal operacin dentro de dicha unidad es la transferencia entre regis-tros, nombre con el que se denomina al movimiento y transformacin de datos desde uno o ms regis-tros fuentes a un registro destino.

    En general, la descripcin a nivel RT de una transferencia entre registros se podra expresar dela siguiente forma:

    f(x): A G(B, C, ...) (1.1)

    donde f(x) expresa la condicin que debe satisfacerse para realizar la transferencia, A es el registro des-tino del dato-resultado y G(B, C, ...) indica la operacin que se realiza sobre los datos fuentes.

    El sistema digital tiene que estar construido para poder realizar cualquiera de las transferenciasentre registros que precise la solucin del problema a resolver. De aqu que haya una fuerte relacinentre las sentencias RT (ecuacin 1.1) y la realizacin del sistema digital. En lo que sigue establecere-mos dicha realizacin.

    De la ecuacin 1.1 se entiende que los argumentos B, C, ... son registros que participan, mediantela operacin de lectura de sus datos, en la instruccin (registros fuentes). La funcin G es una funcincombinacional que maneja los datos almacenados en dichos registros (B, C, ...). En el registro A (regis-tro destino) se realiza la carga en paralelo del dato resultante de la funcin G slo si la funcin f(x) tieneel valor lgico correcto. La funcin f(x) tiene carcter combinacional y su evaluacin corresponde a laUnidad de Control del Sistema Digital. Por tanto, para poder realizar una transferencia entre registrosse necesitan una serie de requisitos: 1) de componentes, como son los propios registros y los disposi-tivos combinacionales para realizar las funciones f(x) y G; 2) de conexin, para el camino de los datosdesde las fuentes hasta su destino y para las seales de control de todo el proceso; y 3) de organiza-cin, mediante la cual se realiza la distribucin de componentes y tareas, as como se hace el diseoarquitectural del sistema. En general son posibles muchas alternativas de solucin para el mismo pro-blema.

    - Evala f(x)

    - Genera seales de control

    - Establece secuencia de RT

    x

    B

    C

    RCircuito

    combinacionalque realiza

    G (B, C, ...)

    WCK

    A

    RB

    WA

    Unidad de datosControl

    Figura 1.11: Sistema digital para la sentencia RT de la ecuacin 1.1.

    nb

    nc. . .

    na

  • 12 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    A modo de ejemplo, en la Fig. 1.11 aparece un sistema digital que permite ejecutar la sentenciaRT de la ecuacin 1.1. El sistema digital est dividido en dos grandes bloques, la unidad de control y lade datos.

    La unidad de control se encarga, a partir de sus entradas x, de evaluar la funcin f(x) en cadamomento. Si esta funcin toma el valor adecuado, deber hacer efectiva la transferencia entre registrosen curso. Tras ello, la unidad de control debe saber qu nueva transferencia ha de ejecutarse a conti-nuacin. Esto es, la unidad de control establece la secuencia de RT. Ntese que, por ser una operacinsecuencial (escritura en registro) se realizar coincidiendo con un flanco activo de reloj Ck. De aqu quela unidad de control sea un circuito secuencial (mquina de estados finitos).

    Para llevar a cabo una transferencia, la unidad de control activar las seales necesarias en loscomponentes que participan en la transferencia. En la unidad de datos estn estos componentes juntocon la ruta de datos adecuada para conectar las fuentes y el destino. Por ejemplo, en la Fig. 1.11 tantoel registro B (de nb bits) como el C (de nc bits) tienen sus salidas conectadas a las entradas del circuitocombinacional que realiza la funcin G(B,C, ...). A su vez las salidas de ste estn conectadas a las naentradas de carga en paralelo del registro A. Dicho registro tiene una entrada de control de escritura(WA) que le es suministrada desde la unidad de control. El reloj de todo el sistema es nico, gobernandotanto los cambios de estado en la unidad de control como los instantes en que se almacenan los nuevosdatos. Obsrvese que, en esta unidad de datos, el registro B posee salida triestado por lo que la lecturade B est controlada por la seal de lectura RB. La unidad de control debe generar tambin dichaseal RB.

    La Fig. 1.12 muestra cmo es la operacin en el tiempo. Se ha supuesto que la funcin G(B,C, ...) es simplemente la suma aritmtica de B y C y, para dar valores concretos, que inicialmente A =F1, B = 72 y C = 24. La Unidad de Control activa las seales RB y WA slo en el ciclo de reloj donde hade ejecutarse la sentencia RT del ejemplo (A B + C). As, slo en ese ciclo las salidas de B muestranel contenido del registro B y, con ello, las salidas del bloque G muestran el valor deseado (96 = 72 + 24)que se sita por tanto como entrada de carga en paralelo del registro A. Como, adems, este registrotiene su entrada de escritura activada (WA = 1), cuando llega el flanco activo de reloj se produce la cargacon lo que queda ejecutada la sentencia RT. Simultneamente la Unidad de Control habr cambiado alprximo estado en el que ejecutar la sentencia RT posterior.

    Figura 1.12: Diagrama temporal para ilustrar A B + C.

    Ck

    RT anterior RT posteriorA B + C

    RB

    WA

    Salidas de B

    Salidas de G

    Salidas de C

    A

    72HIHI

    24 24 24

    ? ? ? ? ? ?72+24 = 96

    F1 F1 96

  • INTRODUCCIN 13

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    Aunque tericamente son posibles transferencias entre registros muy complejas que involucrana mltiples datos, las de inters a nivel RT slo afectan a 1, 2, 3 registros. As, las transferencias entreregistros a nivel RT pueden ser clasificadas en:

    Transferencias entre varios registros (tpicamente 2 3):- De movimiento de datos: A B- Aritmticas: A B + C A B - 1- Lgicas: A B C A C

    Estas transferncias exigen una ruta de datos entre los registros fuentes y el destino, rutaque incluye circuitos combinacionales y buses de interconexin. El registro destino operar enescritura y los fuentes en lectura. Si un registro es a la vez fuente y destino, como es el casodel Acumulador de los procesadores, deber estar diseado para que sea posible operar enlectura y en escritura simultneamente.

    Sobre un nico registro:- Desplazamiento: a derecha o a izquierda

    - Cuenta: ascendente o descendente

    - De inicializacin: tpicamente de Puesta a 0 o de Puesta a 1

    Las transferencias de un nico registro no exigen ms que el registro tenga definida laoperacin correspondiente.

    Ejemplos. Transferencias condicionales entre registros y unidades de datos que las realizan.

    La Fig. 1.13 muestra cuatro ejemplos de transferencias entre registros cuando se cumplen lascondiciones X1, X2, X3 y X4, respectivamente, junto con un posible circuito que realiza esa transferencia.

    B

    A

    X1: A B

    X1

    B C

    A

    =1

    X2

    X2: A B C

    ALUa

    b

    control

    a*bB

    A

    W

    C.C.

    X3

    X3: A A - B - 1

    AX4 I

    X4: A A + 1

    Figura 1.13: Algunas sentencias RT y posibles circuitos que las realizan.

    W

    R

    W

  • 14 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    a) En el primer caso se mueve el dato de B (lectura incondicional) hacia A (escritura);

    b) en el segundo hay una operacin lgica XOR entre los datos de B y de C, que precisa la lecturadel registro B pero no la de C;

    c) en el tercero hay dos aspectos de inters: 1) que el registro A es fuente y destino, y 2) que seha usado una ALU para realizar la operacin aritmtica por lo que la seal X3 a travs delcircuito combinacional CC, debe seleccionar la operacin adecuada en la ALU;

    d) en el cuarto caso el registro A es un contador ascendente simplemente.

    1.3 TCNICAS DE INTERCONEXIN MEDIANTE BUSES

    Las operaciones bsicas a nivel RT son las transferencias entre registros. En un sistema digitalgenrico hay mltiples transferencias de unos registros a otros, siendo frecuente que un registro dadosea a veces emisor del dato (registro fuente) y otras, receptor de un resultado (registro destino). Surgeas la necesidad de muy diversas rutas de datos. El sistema digital tiene que estar construido de formaque sean transitables todas las rutas de datos necesarias. Desde la perspectiva del hardware esto sig-nifica que el sistema deber estar dotado con la adecuada conexin entre los componentes almacena-dores y procesadores de los datos (esto es, los registros y los bloques combinacionales). Lapresentacin de algunas tcnicas de interconexin es el propsito de este apartado para lo cual inicial-mente se describirn los trminos bsicos relacionados con los buses de interconexin; a continuacinse considerarn las operaciones con los buses y, por ltimo, se presentarn algunos ejemplos tpicosde interconexiones entre registros.

    La entrada y salida de datos de los registros que lleva asociada una transferencia estndar utilizalos buses como principal va de interconexin. Entendemos por bus el conjunto de lneas de conexinentre dispositivos que se utiliza para transmitir informacin. Todas las lneas del bus son similares entres salvo en el propio orden de cada lnea respecto a las dems. As, hay buses de lneas de direccincomo son las usadas en los mapas de memoria, buses de datos externos a una CPU, buses de datosinternos en una CPU, etc. La Fig. 1.14 muestra algunas de las representaciones habituales para un bus,denominado B, de n lneas . Siempre es conveniente explicitar el nombre y el nmero de lneas al repre-sentar un bus. Si se quiere aludir a una lnea concreta basta indicarlo subindicando el nombre del bus(por ejemplo, B3-5 alude a las lneas 3, 4 y 5 del bus B).

    La clasificacin de los buses puede hacerse atendiendo a distintos conceptos, como son:

    Segn el sentido en el que fluye la informacin en el bus podemos distinguir:- buses unidireccionales: la informacin va en un nico sentido, de un registro fuente a uno

    o varios registros destino (Fig. 1.15.a).

    - buses bidireccionales: la informacin puede fluir en cualquier direccin. Cada registro

    . . .

    B0B1

    Bn-1

    n{BUS B[n] = B0:n-1Figura 1.14: Representacin del bus B de n lneas.

    n

  • INTRODUCCIN 15

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    puede actuar de fuente o destino segn el caso (Fig. 1.15.b). Obsrvese que los terminalesde los registros conectados a buses bidireccionales deben ser triestado para evitar colisio-nes entre los datos de entrada y de salida de cada registro.

    Atendiendo a si la informacin que transmite el bus es compartida slo por dos registros opuede serlo por ms, podemos clasificar los buses en dedicados y compartidos (Fig. 1.16).

    Atendiendo ahora a las operaciones que se pueden realizar sobre un bus, stas son de lecturay de escritura. La operacin de lectura de un bus por parte de un registro lleva asociado elalmacenamiento en el registro del dato que porta el bus. Para realizar esta accin debe existir,pues, un camino desde el bus a las lneas de entrada del registro y, a su vez, que se realiceuna operacin de escritura en el registro mediante la cual la informacin quede almacenadaen l. Hay que tener precaucin con la terminologa ya que la lectura del bus es escritura en elregistro.

    Para realizar la conexin necesaria que lleve a cabo esta operacin pueden plantearse dos cir-cunstancias. En la primera un registro lee de un nico bus. La conexin del bus con las entradas en estecaso es directa a travs de conductores (Fig. 1.17). De esta forma, cuando la seal de control de escri-tura del registro W est activa se realizar la operacin de carga en paralelo del dato ledo del bus.

    Sin embargo, la lectura por parte del registro puede hacerse de ms de un bus. Para ello la cir-cuitera debe permitir un camino de conexin entre cada uno de los diversos buses y las lneas de

    registrodestino1

    registrofuente

    registrodestino2

    . . .

    . . .

    n

    Figura 1.15: (a) Bus unidireccional. (b) Bus bidireccional.

    registro 2registro 1n

    (a) (b)

    n

    bus dedicado

    n

    bus compartidoFigura 1.16: Buses dedicado y compartido

    AW

    n

    nBUS: Bn-1:0

    Figura 1.17: Conexin para la lectura de un nico bus

  • 16 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    entrada del registro. Adems, para elegir en cada ocasin cul de entre los posibles buses va a serledo, se utilizarn unas seales de seleccin. Una solucin muy fcil es la del multiplexor, en la quesern n multiplexores los que permitan pasar de varios buses de entrada a uno en particular depen-diendo de las entradas de seleccin (Fig. 1.18). Si hay k buses habr que utilizar como mnimo s sea-les de seleccin con k < 2s (por ejemplo, si k = 3 4, s = 2). Los n multiplexores tendrn k ms canalesde entrada. Por su parte, la seal de control de escritura W del registro deber activarse con las k com-binaciones vlidas de las seales de seleccin.

    Un mismo bus puede ser ledo simultneamente por mltiples registros sin que existan problemasa nivel lgico. As, por ejemplo, la Fig. 1.19 muestra un caso en que BUS1 es el nico bus que puedenleer los registros A, B, ..., mientras que el registro R tambin puede leer al BUS2. Si las seales de con-trol poseen el valor indicado todos los registros leen BUS1 sobre el flanco activo de reloj. El nico pro-blema que puede existir no es de tipo lgico sino de tipo elctrico; en concreto, que las lneas BUS1tengan una carga superior al fan-out mximo en cuyo caso, adems de las lneas de conduccin, BUS1deber incorporar buffers.

    En cuanto a la operacin de escritura en bus, sta va asociada a la lectura de un registro: el datoalmacenado en el registro al ser ledo, es el que se escribe en el bus. La operacin es

    BUS = [REGISTRO]

    En general, se pueden hacer consideraciones similares a las de la operacin de lectura de buses.Sin embargo hay una diferencia sustancial en cuanto a realizar la operacin simultneamente con ml-tiples registros: mientras que en el caso anterior (lectura de bus y escritura en registros) no existe pro-blema a nivel lgico, ahora (escritura en bus y lectura de registro) en cada instante slo un registropuede poner sus datos en el bus para evitar colisiones de datos.

    Respecto a buses unidireccionales con un solo registro fuente se dan dos posiblilidades: 1) escri-tura en un nico bus, y 2) escritura en un determinado bus de entre varios (Fig. 1.20). En este ltimocaso, el bus concreto se selecciona mediante un demultiplexor. Dado que la informacin procede de unnico registro de donde se lee, es suficiente con que este dispositivo tenga lneas de salida estndares,

    A

    W

    n

    nBUS0: B0n-1:0

    lneas de seleccin

    012

    . . .

    nBUS1: B1n-1:0nBUS2: B2n-1:0

    . . .

    Figura 1.18: Conexin para la lectura desde varios buses

    WA A

    n

    WB B

    n

    WR R

    n

    n

    Ck

    BUS1

    S0 1 0

    nBUS2

    . . .

    . . .

    Figura 1.19: Lectura de un bus nico por parte de diferentes registros

  • INTRODUCCIN 17

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    sin necesidad de buffers triestado.

    En el caso en el que los buses utilizados sean bidireccionales y, en general, cuando haya dos oms dispositivos que puedan escribir sobre el mismo bus, la conexin para poder realizar escritura enun bus se muestra en la Fig. 1.21 . Puede comprobarse que en este caso, como diversos registros pue-den escribir en un mismo bus, estos registros necesitan lneas de salidas con buffers triestado, de formaque cuando no se est leyendo el contenido de un registro ste tendr su salida en HI y as, no entraren conflicto con otros contenidos que pueden estar presentes en ese momento en el bus. Por tanto unarestriccin de operacin es que slo se puede realizar la lectura de un nico registro en cada ocasin.As, en el circuito de la Fig. 1.21 slo una seal de lectura (RA1, RA2 RA3) puede estar activa en cadainstante.

    Ejemplo de interconexin:

    Se pretende determinar el interconexionado que se requiere para poder intercambiar informacinentre cuatro registros cualesquiera.

    Sean A0, A1, A2 y A3 dichos registros. A nivel RT, la operacin a realizar se puede expresar como

    AD AF donde con AD se indica el registro destino y con AF el fuente, y cualquiera de los dos papeles puede serasignado a cualquiera de los cuatro registros del problema. Para elegir el que actuar como registrodestino de la transferencia se dispone de dos lneas D1 y D0, de forma que cada una de las cuatro com-binaciones binarias de dichas variables selecciona a un nico registro. De forma anloga, las lneas F1y F0 determinarn el registro fuente.

    Para resolver el problema se presentarn tres estrategias de conexionado distintas, cada una delas cuales relacionar un tipo de bus y un tipo de registro. Las tres soluciones son:

    A

    W

    nn

    BUS0

    lneas de seleccin

    012

    . . .

    n

    BUS1

    n

    BUS2

    A

    n

    n

    n

    . . .

    Figura 1.20: Conexin para la escritura en un bus usando buses unidireccionales

    WA1 RA1 WA2 RA2 WA3 RA3

    A3A1 A2

    n

    . . .

    Figura 1.21: Operacin de escritura en un bus usando buses bidireccionales

    n n n

  • 18 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    - Solucin multiplexada; registros con terminales de entrada I y de salida O separados.

    - Solucin con bus compartido; registros con terminales de entrada I y de salida O separadospero con salidas triestado.

    - Solucin con un nico bus compartido bidireccional; registros con terminales deentrada/salida I/O.

    En la primera solucin al problema (Fig. 1.22) se usa un multiplexor a travs del cual se realizala escritura en el bus unidireccional de entrada BI del dato surgido en la operacin de lectura de los dis-tintos registros. Con esta forma de conexionado, los registros vierten su contenido a buses dedicadosdiferentes, terminando cada uno de ellos en uno de los canales de entrada de los multiplexores. Paraelegir el registro fuente las lneas F1 y F0 controlarn las entradas de seleccin del multiplexor. De estaforma, segn la combinacin binaria que tengan estas seales slo el contenido del registro apuntadopasar a la salida del multiplexor. Las salidas de ste irn conectadas al bus BI, a su vez directamenteconectado con las lneas de entrada de los registros. Slo aquel que acta de registro destino veractiva su seal de control de escritura WD, con lo que ser el nico que realizar la operacin de lecturadel bus BI y cargar el contenido que en l hubiera. La eleccin del registro destino la realizar un cir-cuito combinacional, en este caso un decodificador 2:4, de forma que cada una de sus cuatro lneas desalida va conectada a la lnea de control de escritura del correspondiente registro.

    En la segunda solucin que presentamos Fig. 1.23 los registros poseen terminales de entrada Iy de salida O separados, estos ltimos salidas triestados. Todos los registros vierten su contenido a unnico bus interno, BINT, compartido por todos ellos. Debido a este hecho, los registros necesitan dispo-ner de salida tipo tres-estados con la correspondiente seal de control para la lectura. De esta forma, elregistro que tenga activa su seal de control para lectura, volcar su contenido en el bus. Si por el con-trario tuviera dicha seal desactivada las lneas de salida se encontraran en estado de alta impedanciano afectando, pues, al dato escrito por el registro fuente. La restriccin de que una y slo una de lasseales de lectura de los registros puede estar activa en cada ocasin, se cumple en este circuito algenerarse las seales de lectura mediante un decodificador 2:4 de la seales F1 F0. De esta forma,segn la combinacin de estas dos seales, slo una de las salidas del decodificador se activa. Dadoque cada una de ellas se conecta con la seal de lectura R de un registro, se garantiza as que slo selee de uno, el que ser el registro fuente. De forma anloga al caso anterior, para determinar el registrodestino de la transferencia, se usar tambin un decodificador 2:4 que decodifica el valor de D1 D0,determinando as cul de las seales de escritura W de los registros est activa. Aqul registro quetenga dicha seal activa ser el que acte como registro destino.

    Figura 1.22: Ejemplo de interconexin mediante multiplexado

    A3Wn

    A2Wn

    A1Wn

    A0Wn

    D1D0

    DEC 2 : 4

    32100

    1

    F1F0 n MUX 4 : 1

    10

    3210

    B0 B1 B2 B3BIn

  • INTRODUCCIN 19

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    Por ltimo, en la tercera solucin al problema se utiliza un bus compartido bidireccional. Los regis-tros tienen terminales de entrada/salida y dos seales de control (R, W) para poder realizar adecuada-mente las operaciones de lectura y escritura. Al igual que en la solucin anterior, dado que el bus escompartido por todos los registros, en cada momento slo puede realizarse la operacin de lecturasobre uno de ellos. Para llevar a cabo la transferencia de informacin, la eleccin de los registros fuentey destino se realiza tambin mediante dos decodificadores 2:4 uno con entradas D1 D0 y el otro con F1F0. Con estos decodificadores se controla la activacin del grupo de lneas de lectura (para determinarel registro fuente) y de escritura (para seleccionar el registro destino).

    A3W

    n

    A2W

    n

    A1W

    n

    A0W

    n

    D1

    D0DEC 2 : 4

    32100

    1

    F1

    F0DEC 2 : 4

    32101

    0

    R R R R

    Figura 1.23: Ejemplo de transferencia entre registros con terminales separados de entrada y salida y bus compartido.

    BINTn

    F1

    F0

    DEC 2 : 432101

    0

    R R R R A3W

    n

    A2W

    n

    A1W

    n

    A0W

    n

    D1

    D0

    DEC 2 : 4

    32100

    1

    Figura 1.24: Ejemplo de conexin entre registros mediante bus nico

  • 20 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    1.4 REALIZACIN DE SISTEMAS DIGITALES

    En este apartado se aborda la tarea de diseo de un sistema digital. Debido a que un sistemadigital se organiza mediante la unin de dos grandes bloques, la unidad de procesado de datos y la uni-dad de control, la tarea de diseo es en realidad doble, una por cada una de estas unidades. En general,cada sistema podr ejecutar una serie de instrucciones, llamadas tambin macrooperaciones. Por unaparte, la unidad de procesado deber estar construida posibilitando todas las transferencias entre regis-tros que se necesitan para realizar las operaciones de datos exigidas por las macrooperaciones. Porotra parte, la unidad de control se realizar para que ejerza el gobierno adecuado en la activacin de launidad de datos: direccin de la secuencia, generacin de seales, etc.

    El diseo de sistemas digitales es una tarea compleja para la que no existe ningn mtodo siste-mtico eficaz, por lo que la experiencia del diseador se convierte en un parmetro de suma eficacia,prcticamente decisivo. Al ser ste un captulo de introduccin al diseo de los sistemas digitales, nues-tro principal propsito es aportar experiencia de diseo, ms que discutir tcnicas avanzadas, proble-mas de optimizacin, etc. Con el fin de aportar esa experiencia, en el desarrollo del tema utilizaremosun ejemplo sobre el cual se presentarn los principales conceptos de la realizacin de sistemas. Esteejemplo es simple pero posee gran valor en tanto que se utilizar en ste y en los siguientes captulos.Adems de desarrollar los aspectos concretos del ejemplo, en este apartado tambin realizaremos unaaproximacin a la generalizacin sobre el proceso de diseo.

    El punto de partida suele ser una especificacin verbal ms o menos detallada. As, nuestro ejem-plo de sistema digital ser una calculadora de sumas y restas. Este sistema realiza distintas operacionesentre dos datos A y B que estn almacenados en sendos registros. El resultado de la operacin se alma-cena en uno de estos dos registros.

    El primer paso del proceso de diseo consiste en especificar el sistema a alto nivel. Se trata dedefinir, con el mayor rigor y formalidad posibles, las caractersticas generales y globales del sistema, enconcreto:

    - cul es la arquitectura u organizacin del sistema en trminos de grandes bloques funciona-les.

    - cul es el conjunto de macrooperaciones o instrucciones que el sistema va a entender y a eje-cutar. Esto se denomina describirlo a nivel ISP (Instruction Set Processor).

    - cul es el modo de ejecucin de esas instrucciones desde la perspectiva del usuario. Aqu setrata de establecer qu es lo que el usuario debe hacer y qu es lo que el sistema realizarautomticamente.

    Comenzamos, pues, definiendo nuestro sistema en alto nivel. Para ello presentamos el conjuntode instrucciones (nivel ISP) que, en este caso, ser un conjunto de ocho instrucciones distintas (cadauna de ellas es una macrooperacin).

    A A + B B A + B A A - B B A - BA - A + B B - A + B A - A - B B - A - BEn nuestro nivel la organizacin bsica de un sistema es la de la Fig. 1.2-b. Adems, tras la defi-

    nicin a nivel ISP sabemos que, en nuestro caso, para llevar a cabo este conjunto de macrooperacionesse necesitar una unidad de datos en donde al menos se disponga de los dos registros donde estnalmacenados A y B. En la Fig. 1.25 se muestra, a nivel de bloques, la organizacin del sistema.

  • INTRODUCCIN 21

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    A continuacin describiremos el modo de operacin sistema-usuario. El usuario que opera con elsistema se comunica con l mediante una serie de seales. Con un pulso positivo en la entrada Xs seordena al sistema que ejecute una de las instrucciones. La seleccin de la misma se realiza medianteel registro de instrucciones IR (Instruction Register). En nuestro ejemplo (Fig. 1.25), se trata de un dis-positivo de tres bits y, dependiendo de la combinacin binaria que en l escriba el usuario ste comunicaal sistema cul de las ocho macrooperaciones se ha de realizar. Con esta informacin el sistema pasaa realizar la secuencia de acciones necesarias para llegar al resultado final. En el momento de finalizarla ejecucin se activa la seal de FIN y se regresa a un estado de espera aguardando una nueva sealde comienzo. De esta forma el usuario podra proceder a repetir los pasos dados (1o, escritura delcdigo en IR; 2o, activacin de XS) para conseguir llevar a cabo una nueva operacin.

    Para continuar con el desarrollo del sistema, es necesario realizar su especificacin a nivel RT,lo que conlleva un doble proceso fuertemente acoplado: por una parte hay que traducir las instruccionesISP a operaciones de transferencia de datos y, por otra, hay que disear una unidad de datos que per-mita ejecutar todas esas transferencias.

    En general, las macrooperaciones realizadas por un sistema digital se llevan a cabo medianteuna secuencia de operaciones de transferencia entre registros. El conjunto de transferencias a nivel RTque se realizan en un mismo ciclo de reloj se llama microoperacin (op). Una op puede consistir enuna, en dos, en tres, ..., transferencias entre registros distintas; en el caso lmite, en ninguna, llamn-dose entonces No-OPeracin (NOP). Lo que caracteriza a una op es que se realiza en un solo ciclode reloj. Con ello, cada macrooperacin del sistema ser equivalente a una secuencia de microopera-ciones, cada una de ellas realizadas en un ciclo de reloj (Fig. 1.26).

    El conjunto de microoperaciones de que consta una determinada macrooperacin est ntima-mente relacionado con la unidad de procesado del sistema. Esto quiere decir que la misma macroope-racin precisar ms o menos microoperaciones, dependiendo de cul sea el diseo de la unidad deprocesado. Por ejemplo, la macrooperacin A A+B del sistema de ejemplo se realizar con cuatromicrooperaciones para la unidad que utilizaremos (Fig. 1.28), mientras que en la unidad de la Fig. 1.27se realizara con slo una microoperacin.

    La relacin macrooperacin/microoperacin/unidad de procesado pone de manifiesto la granimportancia de esta fase del proceso de diseo. Hablando en trminos ms precisos, cada unidad de

    A

    B

    Unidad de procesadoControl

    FIN

    ZIR[3]

    XS

    sistema digitalusuario

    Figura 1.25: Organizacin del sistema digital ejemplo

    3 n

  • 22 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    procesado proporciona un conjunto de primitivas RT (que son las microoperaciones realizables en esaunidad) con las cuales hay que obtener el algoritmo de realizacin de las macrooperaciones. En un pro-ceso de diseo genrico, la conversin desde macrooperacin a secuencia de microoperaciones(Fig. 1.26) va imponiendo unos componentes determinados a la Unidad de Datos (para que cada micro-operacin sea, de hecho, una primitiva RT). En cada instante del proceso, adems, el conjunto de pri-mitivas ya disponibles en la Unidad de Datos permite corregir la traduccin desde la macrooperacinhasta su secuencia de ops. De esta forma, esta fase de diseo obliga a ir teniendo en cuenta tanto elalgoritmo de traduccin de la macrooperacin como el diseo de la Unidad de Datos concomponentes RT.

    Llevar a cabo adecuadamente esta doble tarea es ciertamente difcil, siendo sta la fase en laque se necesita gran experiencia. De aqu que en el desarrollo que sigue no afrontemos esta etapa dediseo sino que, sin disearla, propondremos una unidad de datos vlida para nuestro sistema.

    Antes de continuar sealemos otra relacin de gran inters que se produce al considerar el domi-nio temporal y que permite conectar las unidades de datos y de control. El tiempo viene caracterizadopor los ciclos de reloj. En cada ciclo, por una parte se ejecuta una op en la unidad de datos y, por otra,la unidad de control est en un estado. Entonces, la funcionalidad de la unidad de control en eseestado aparece de forma clara:

    Instruccin KNivel ISP

    Nivel RT

    RT1

    RT2

    RT3

    RTN

    . . .

    macro-operacin

    micro-operaciones

    Figura 1.26: Relacin entre macrooperacin y microoperacin

    a b

    a+b

    A

    B

    1

    sr

    W

    Figura 1.27: Unidad para A A+B en una op

  • INTRODUCCIN 23

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    1. durante ese estado deber activar las entradas de control involucradas en la ejecucin de laop en la unidad de datos;

    2. cuando ocurra la transicin al siguiente ciclo, debe cambiar al estado que corresponda a lasiguiente op de la secuencia.

    La Unidad de Control es, pues, una mquina de estados en la que su secuencia de estados siguea la secuencia de ops y sus salidas activan las seales de control de los dispositivos de la Unidad deDatos.

    Para nuestro ejemplo, la unidad de procesado adoptada ser ampliamente descrita y apoyndo-nos en ella se desarrollar cada macro-operacin. La descripcin grfica de nuestra unidad de datos esla presentada en la Fig. 1.28.

    En la Fig. 1.28 pueden apreciarse dos grandes bloques separados por un bus interno de datos(DB) compartido por varios dispositivos. En la parte derecha del bus hay dos elementos de memoria,registros A y B, donde se almacenan los datos de nuestro problema. En la parte izquierda del bus esdonde estn el resto de los dispositivos que nos servirn para llevar a cabo cada una de las macroope-raciones del sistema. Como se observa, esta subunidad consta de: un registro T que lee datos del busDB y que suministra uno de los operandos; un sumador-restador entre el contenido del acumulador ACy del registro T; un registro acumulador AC que almacena los resultados de la operacin y, en su caso,los transfiere al bus DB. La unidad de procesado dispondr de dispositivos de n bits y, as mismo, todos

    a b

    ab

    AC

    T

    WT

    A

    ZACWACRAC

    WA

    RA

    BWB

    RB

    sr

    [AC]

    DB

    Todo de n bits

    UNIDAD DE PROCESADO

    WT sWB RAC WACrWA RBRA ZAC

    (del controlador)

    Figura 1.28: Unidad de procesado de una calculadora de sumas y restas

  • 24 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    los buses tendrn igualmente esa dimensin. En cuanto a los buses, los hay de diversos tipos. Uno deellos, el bus DB, es un bus compartido que es a travs del cual se pasa la informacin de una parte aotra dentro de la unidad de datos. En la Fig. 1.28 aparece dibujado con trazo fuerte. Los otros, en trazodbil, son buses dedicados cada uno comunicando dos dispositivos entre s nicamente.

    El paso siguiente a la descripcin grfica de nuestro sistema es la descripcin detallada de cadauno de sus dispositivos. Esta descripcin debe ser lo ms formal y rigurosa posible y, para ello, de cadauno se dar su tabla de comportamiento a nivel RT.

    La descripcin de los registros A y B se representa en la tabla de la Fig. 1.29. Cada uno disponede dos seales de control, una de escritura WX y otra de lectura RX, dado que su salida est conectadaa un bus compartido por otros dispositivos. Su comunicacin con el bus interno de la unidad es medianteun bus bidireccional por lo que la activacin simultnea de las lneas de lectura y escritura est prohi-bida.

    De forma similar se describe el registro T (registro tampn). Como se ve en la Fig. 1.30, el registroT, cuya misin ser almacenar datos temporalmente, posee dos buses separados, uno de entrada y otrode salida. El dispositivo dispone de una nica seal de control, la de escritura WT, y su contenido siem-pre est presente en el bus de salida, es decir, es un registro con lectura incondicional.

    El dispositivo AC es el registro acumulador. Este es el registro en donde se vierten los resultadosde las operaciones realizadas por el sumador restador. Como se refleja en la Fig. 1.31, el registro acu-mulador dispone de un bus de entrada y dos buses de salidas. Uno de ellos, OUT1, es el que vierte sucontenido nuevamente a una de las entradas de datos del sumador-restador. Es un bus dedicado, portanto en l siempre est presente el contenido del acumulador, es decir, el acceso al dato almacenadoen AC va OUT1 es incondicional. El otro bus de salida, OUT2, se conecta al bus interno compartido dela unidad de datos, DB. Por tanto, el registro tendr una seal de control de lectura, RAC, y slo cuandosta est activa se podr acceder al dato almacenado en el acumulador a travs de OUT2. Las otraslneas de control del dispositivo son las de escritura (WAC) y la de puesta a cero (ZAC). Mediante laactivacin de esta ltima seal, se logra hacer un clear sobre el contenido del registro, consiguiendo eldato 0 0....0.

    XRX

    WXDD

    Figura 1.29: Descripcin de componentes de la unidad de procesado. Los registros A y B

    RX

    0

    01

    1

    WX

    0

    10

    1

    X DD = X

    DDX

    HI

    entrada[X]

    Prohibida

    T WT

    IN

    OUTFigura 1.30: Descripcin de componentes de la unidad de procesado. El registro tampn.

    WT

    01

    T TIN

    OUT =

    [T][T]

  • INTRODUCCIN 25

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    Por ltimo describiremos el subsistema sumador-restador (que, en general, podra ser una ALU).Este componente combinacional tendr dos seales de control, s y r, que especifican si la operacinllevada a cabo es una suma de los datos de entrada o una resta. En la (Fig. 1.32) se muestra sudiagrama de bloque y su comportamiento. (Ni el valor sr = 00 ni sr = 11 tienen significado por lo queambos no importan; sin embargo como sr = 11 indicara que se ordenan dos acciones incompatibles,este valor se prohibe).

    Una vez descritos todos los componentes de nuestra unidad de datos del sistema del ejemplo, elsiguiente paso ser encontrar para cada macrooperacin el conjunto de microoperaciones que la reali-zan. En la Fig. 1.33 se presenta una tabla en donde cada una de las macrooperaciones del sistema esdesarrollada en sus microoperaciones. Obsrvese que se ha intentado compartir al mximo las micro-operaciones entre las distintas instrucciones del sistema. De esta forma se simplifica la descripcin delcomportamiento de nuestro sistema como se ver en el siguiente apartado y se reflejar igualmente enun mejor diseo de la unidad de control, lo que se tratar en el siguiente tema.

    A modo de ejemplo se comenta detalladamente los pasos dados para desarrollar una macroope-racin, en este caso +. Se pretende cargar en el registro A el resultado de la suma de los datosA y B. Para ello se tiene la necesidad de llevar ambos datos a las dos entradas de la ALU, ya que esella la que realiza la operacin de suma. Una vez realizado esto, se le dir a la ALU que sume ambosdatos llevndose este resultado al registro A que acta en este caso como registro destino. En la unidad

    AC

    ZACWACRAC

    IN

    OUT1

    OUT2

    Figura 1.31: Descripcin de componentes de la unidad de procesado. El registro acumulador

    ZAC

    0100

    RAC

    0010

    AC OUT1 = AC0

    AC

    [AC][AC][AC]

    Prohibidas

    WAC

    0001 IN

    Otras

    [AC]

    OUT2 =

    HIHI

    [AC]

    HI

    a b

    a bsr

    IN1 IN2

    OUT

    Figura 1.32: Descripcin de componentes de la unidad de procesado. La ALU.

    s

    0011

    r

    0101

    OUT =

    No importaIN1 IN2IN1 + IN2Prohibida

  • 26 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    de datos de nuestro sistema (Fig. 1.28) las lneas de entrada de la ALU provienen del registro tampn Ty del registro acumulador AC. Por tanto, sern esos dos registros los que tengan que recibir los datosA y B para que puedan ser sumados. El registro acumulador en nuestra arquitectura slo recibe losdatos de las lneas de salida de la ALU. Por tanto, si queremos que uno de los datos iniciales, por ejem-plo A, sea cargado en el acumulador, tendr que ser como resultado de una operacin con la ALU, ennuestro caso, mediante la de suma del dato con cero. Para ello inicialmente habr que efectuar dostransferencias entre registros:

    - poner a 0 el registro acumulador, lo que es posible activando la seal ZAC (Fig. 1.28);

    - escribir el dato A en el registro T, lo que es posible leyendo A y escribiendo en T (esto, es acti-vando RA y WT).

    Ambas transferencias pueden ser realizadas simultneamente en el mismo ciclo de reloj y cons-tituyen la primera microoperacin:

    1. C 0, A continuacin, como cuando empiece el ciclo de reloj siguiente ya se han efectuado todas las

    transferencias entre registros ordenadas en el ciclo anterior ya estamos en disposicin de realizar unaoperacin de suma con la ALU, dado que los datos que sumar, A y cero, ya estn en los registros ade-cuados. Adems, en este mismo ciclo de reloj se puede ir adelantando una nueva transferencia RT con-sistente en grabar el dato B en el registro T, De esta forma, cuando empiece un nuevo ciclo de reloj yase tendr al dato B en el registro T y al dato A en el acumulador. Ambas transferencias pueden realizarseen el mismo ciclo ya que el camino utilizado para cada una de ellas es distinto y constituyen la segundamicrooperacin:

    2. B , C AC+TEn el tercer ciclo de reloj se efectuar de nuevo una suma con los datos existentes en ese

    momento en el registro T (dato B) y en el acumulador (dato A), almacenndose el resultado (A+B) en elacumulador. As, la tercera microoperacin es:

    3. C AC+TPor ltimo, en el cuarto ciclo de reloj, una vez que ha sido grabado en el acumulador el resultado

    de la suma de A con B, ste se manda al registro destino, en este caso el registro A. Dado que ambosregistros estn comunicados por el bus interno DB, la operacin a realizar es simplemente un movi-miento de datos de un registro a otro. Con ello, se tiene la cuarta y ltima microoperacin.

    4. CDe esta forma, en cuatro ciclos de reloj, cuatro microoperaciones, se ha conseguido realizar con

    esta unidad de datos la primera de las macrooperaciones del sistema del ejemplo. De forma anloga seprocedera con las restantes.

    Tras haber desarrollado separadamente cada macrooperacin en sus microoperaciones, elsiguiente paso que hay que dar es ensamblarlas y depurarlas con el fin de obtener un nico conjuntode microoperaciones. En su obtencin normalmente se persigue compartir el mayor nmero posible demicrooperaciones entre distintas macrooperaciones. De esta forma suele reducirse la unidad de control.En nuestro ejemplo, la Fig. 1.33 ya recoge en buena parte cmo se comparten: por ejemplo la primeraop es comn a las ocho instrucciones, en la cuarta slo hay dos ops distintas (cada una compartidapor cuatro instrucciones), etc.

  • INTRODUCCIN 27

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    En general, sin embargo, tablas como la de la Fig. 1.33 no reflejan adecuadamente la secuenciade microoperaciones que forman el algoritmo global del sistema. Como veremos prximamente, existenotras formas de representar el algoritmo global, formas que dan una imagen mucho ms descriptiva decmo opera el sistema entero. Esas formas de representacin deben permitir, adems, describir ade-cuadamente la secuencia de microoperaciones no slo bajo la perspectiva de procesamiento de datos,que es como est en la Fig. 1.33, sino tambin bajo la perspectiva del controlador; esto es, hace faltadescribir la secuencia en que se han de ir activando las diferentes seales de control de los registros ysubsistemas que componen la unidad de datos.

    Continuando con el proceso de diseo genrico, una vez descritos los microprogramas de datosy de control, hay que realizar el diseo de las unidades correspondientes. Para ello, en el caso de laUnidad de Procesado de Datos habr que elegir el hardware concreto que se utilizar. En el caso de laUnidad de Control se aplicarn tcnicas de diseo que, en nuestro caso, se tratarn en el siguiente cap-tulo. El ltimo paso del proceso de diseo consiste en implementar el sistema y verificar que operacorrectamente.

    Antes de proseguir queremos prestar atencin a un aspecto que, aunque siempre importante, loes mucho ms en los Sistemas Digitales. Nos referimos al uso de formas de descripcin adecuadas. Enlos Sistemas Digitales la utilidad es doble:

    - en el propio proceso de diseo, ya que lo hace ms fcil y directo y, adems, reduce mucho eltiempo de localizacin de posibles errores;

    - en la documentacin que obligadamente acompaa a sistemas de esta complejidad, ya quelas formas de descripcin adecuadas constituyen normalmente la parte ms inequvoca, pre-cisa y clara de documentacin.

    A A+B B A+B A A-B B A-BC0,

    CAC+T CAC-TC C C C

    OP1

    2

    3

    4

    B , CAC+T

    A(-A)+B B(-A)+B A(-A)-B B(-A)-BC0,

    CAC+T CAC-TC C C C

    OP1

    2

    3

    4

    B , CAC-T

    Figura 1.33: Conjunto de microoperaciones del sistema del ejemplo

  • 28 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    Los principales puntos a describir cuidadosamente son: el sistema digital globalmente, la Unidadde Datos (registros, buses) y la de Control, y los microprogramas de datos y de Control.

    Todos estos puntos deben ser descritos desde al menos dos puntos de vista:

    - estructural o de circuito, esto es, indicando qu componentes tiene y cmo se conectanentre s;

    - funcional o de comportamiento, esto es, explicando qu operaciones realiza y como lo hace.

    En esta obra, en la que nos centramos en el nivel RT, se utilizarn esencialmente dos formas dedescripcin rigurosas:

    - Las de tipo grfico, que a su vez pueden desglosarse en otras dos:

    - Las orientadas al nivel estructural: son los diagramas de bloques y de circuitos tales comolos de las Figuras 1.25 y 1.28.

    - Las orientadas al nivel funcional: son las denominadas cartas ASM (Algorithmic StateMachine) que presentaremos en el siguiente apartado.

    - Las de tipo lenguaje. Generalmente se trata de unos lenguajes de programacin, ms o menosespecficos para describir circuitos y que reciben el nombre de HDL (Hardware DescriptionLanguage). Nosotros utilizaremos un HDL muy simple, que se explicar ms adelante.

    Por ltimo, dada la importancia y complejidad de la materia tratada en este apartado, vamos ahacer un resumen sobre el diseo de Sistemas Digitales. En primer lugar, recordar que la experienciacomo diseador es determinante para lograr un buen producto1 y, a veces, incluso para obtener un sis-tema que simplemente funcione. De aqu que sea muy importante adquirir experiencia. Incluso conexperiencia suficiente, el diseo debe efectuarse bajo las siguientes guas:

    - Afrontar el diseo siguiendo una metodologa. Quiz la mejor metodologa sea la denominadatop-down (desde arriba hacia abajo) que concretamos tras estas guas.

    - Dividir con claridad el sistema entre la parte de procesado de datos y la de control.

    - Desarrollar la arquitectura de la unidad de procesado y el microprograma (de datos y de con-trol) antes de elegir los dispositivos de hardware concretos.

    - Utilizar con rigor las formas de descripcin adecuadas y documentar bien todo el proceso.

    En cuanto a la aplicacin de la metodologa top-down al diseo de sistemas digitales, los princi-pales pasos a seguir son:

    1. Especificar el sistema globalmente a alto nivel; en concreto,

    - su conjunto de instrucciones (ISP)

    - su modo de operacin (uso y ejecucin)

    2. Para cada instruccin (macrooperacin) obtener un algoritmo con primitivas RT (secuencia demicrooperaciones) que la realice.

    3. Ensamblar y depurar todos los algoritmos de las instrucciones del sistema para obtener:

    - un nico microprograma de datos y una Unidad de Procesado que pueda ejecutar todas lasprimitivas utilizadas en l, (en su caso, regresar al punto 2 para modificar lo que corres-

    1. EN esto , el diseador puede crear elegancia y belleza o quebraderos de cabeza y caos. [Pros87].

  • INTRODUCCIN 29

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    ponda)

    - el microprograma de control asociado.

    4. Realizar la Unidad de Procesado y de Control.

    5. Implementar y verificar.

    1.5 CARTAS ASM

    Las cartas ASM(Algorithmic State Machine) son formas de descripcin de tipo grfico especial-mente enfocadas, como indica su nombre, a representar algoritmos secuenciales. Se trata de una herra-mienta prcticamente idnea para la materia que estamos estudiando puesto que:

    - El desarrollo de macrooperaciones en microoperaciones es un proceso algortmico secuencial,por lo que la descripcin de Sistemas Digitales a nivel RT cae plenamente dentro de la materiarepresentada con cartas ASM.

    - Es una herramienta que da informacin sobre la estructura y sobre el comportamiento din-mico del sistema que se describe con ella, aspectos ambos de sumo inters.

    - La carta ASM proporciona informacin tanto del algoritmo con los datos como de la secuenciade control, por lo que la propia herramienta est muy prxima a las implementaciones hard-ware de las Unidades de Datos y de Control.

    - Se trata de una herramienta muy intuitiva, fcil de aprender y muy adecuada para trabajar amano.

    - La herramienta tiende un doble puente: 1) hacia niveles de abstraccin ms bajos, en concretocon los modelos de mquinas de estado que son tan tiles a nivel de conmutacin; y 2) hacianiveles ms abstractos, como con la representacin mediante grafos de flujo de programas anivel ISP.

    El propsito de este apartado es presentar las cartas ASM con un cierto nivel de detalle, con elfin de que el lector pueda utilizarlas adecuadamente de manera inmediata. Para ello, en sucesivos ep-grafes mostraremos: sus definiciones bsicas, su relacin con las tablas de estado (de Moore y deMealy), diferentes ejemplos de uso en los que se detallarn algunos errores comunes que se cometenal construir cartas ASM, se considerar cmo est contemplada la dimensin temporal en ellas y, porltimo, regresaremos al ejemplo de sistema digital cuyo diseo iniciamos en el apartado anterior paradescribirlo con cartas ASM.

    1.5.1 Definiciones

    Los trminos particulares que vamos a definir se refieren a los componentes primarios (o cajasde estado, de decisin y de accin condicional), a la celda bsica (llamada bloque ASM) y al ente global(o carta ASM).

    Una carta ASM es un grafo orientado y cerrado compuesto por un nmero variable de bloquesASM interconectados entre s. Un bloque ASM que es equivalente a lo que se entenda como un estadoen las mquinas de estado finito corresponde a todas aquellas acciones que tengan lugar en un mismociclo de reloj y sus componentes bsicos son:

    - caja de estado

  • 30 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    - caja de decisin

    - caja de accin condicional.

    La caja de estado vendr representada como se muestra en la Fig. 1.34. Se trata de una caja rec-tangular con un camino de entrada y otro de salida. Dentro de esta caja se especificarn todas las accio-nes (en nuestro caso, transferencias entre registros o seales a activar) que puedan realizarse en unmismo ciclo de reloj y que no dependan de ninguna condicin de entrada. La caja de estado es la cajafundamental en cuanto que identifica a un bloque: cada caja de estados pertenece a un bloque (y sloa uno) y cada bloque posee una y slo una caja de estados. Asimismo, cada caja podr tener asignadoun smbolo o un cdigo binario que distinga ese bloque ASM de los restantes.

    En la caja de decisin (Fig. 1.35) es donde se pregunta, en un sentido lgico, si es verdadera ono cierta condicin de entrada que hace modificar el algoritmo del sistema para cada caso, ocurriendoas bifurcaciones en el grafo. Una caja de decisin posee un camino de entrada y varios caminos desalida. Lo usual es que la condicin que se interroga posea dos valores (0 y 1) por lo que hay slo doscaminos de salida. A veces, sin embargo, es aceptable interrogar sobre dos o ms variables de conmu-tacin, con lo que el nmero de caminos de salida puede ser 3, 4, ...; en la Fig. 1.36 se representanalgunos ejemplos de estas cajas de decisin junto con sus equivalentes funcionales con cajas de dossalidas.

    La caja de accin condicional (Fig. 1.37) contiene las acciones a realizar dependientes de quecierta condiciones se cumplan o no. Estas cajas vendrn a continuacin de cajas de decisin, ya queen esta ltima se pregunta sobre si la condicin se cumple o no, y as en cada caso las acciones a rea-lizar podrn ser diferentes. Las acciones contenidas en las cajas de accin condicional son similares alas acciones de las cajas de estado pudiendo ser, por tanto, transferencias RT o activacin de seales.

    Se entiende por bloque ASM el conjunto formado por una nica caja de estado y un nmero nodeterminado tanto de cajas de decisin como de cajas de accin condicional. Por tanto, un bloque ASM(Fig. 1.38) poseer un nico camino de entrada y uno o varios de salida. La caja de estado de un bloque

    Camino de salida

    Camino de entrada

    Acciones

    Cdigo binario

    Smbolode estado S

    Figura 1.34: Caja de estado

    CondicinFalsoVerdadero

    01

    Procede de una caja de estado

    Figura 1.35: Caja de decisin

  • INTRODUCCIN 31

    C. Baena, J.I. Escudero, I. Gmez y M. Valencia. 1997-2008

    no puede ser compartida por ningn otro bloque. La asociacin bloque-caja de estados es, pues, biun-voca. S se pueden compartir los otros tipos de cajas por varios bloques, aunque debe hacerse consumo cuidado pues, adems de aumentar la dificultad de la carta ASM, pueden derivarse problemasfuncionales y temporales. Todo el conjunto de acciones y de decisiones que tienen lugar dentro de unmismo bloque ASM se desarrollan en el mismo ciclo de reloj. En relacin a las acciones tipo seales aactivar el convenio que vamos a seguir para simplificar el grafo es que las seales que aparecen comoacciones en las cajas de estados o de accin condicional son aquellas que deben de activarse a 1.Aquellas que en el ciclo de reloj correspondiente se mantengan a 0 no aparecern como accin. Distin-tos caminos de cajas pueden unirse en un punto de unin (llamado tambin de acumulacin, de inter-conexin, ...) para originar un nico camino. En esta unin el sentido de recorrido de todos los caminosdebe ser coherente.

    Por ltimo, se denomina carta ASM a un grafo orientado y cerrado que interconecta bloques ASM.Obsrvese que hay dos aspectos que destacar:

    1. La carta ASM es un grafo orientado, lo que viene marcado por el sentido de las flechas. El flujo

    1-00

    01

    A B C

    X1X010

    A B C

    X1

    X0

    1--00-

    A B C

    X2X1X0

    D

    10

    A B C

    X2

    X1

    X0

    D

    0 1

    0 1

    (a)

    (b)Figura 1.36: Cajas de decisin con 3 (a) y 4 (b) caminos de salida junto con sus equivalentes funcionales con cajas de dos sali-das.

    0 1

    010 011

    Acciones

    Procede de caja de decisin

    Figura 1.37: Caja de accin condicional

  • 32 INTRODUCCIN A LOS SISTEMAS DIGITALES

    Dpto. Tecnologa Electrnica. Universidad de Sevilla

    del algoritmo descrito por la carta sigue esa orientacin. Recordando adems, que cada bloqueASM representa lo que ocurre en un ciclo de reloj, la orientacin de la carta al ir viajando debloque a bloque va representando cmo fluye el sistema ciclo a ciclo.

    2. La carta ASM es un grafo cerrado, lo que quiere decir que no existen caminos de entrada a lacarta ni de salida de la misma. O, de otra forma, en una carta despus de un bloque ASM vienesiempre otro bloque ASM. Como el bloque ASM representa el estado de una mquinasecuencial, el carcter cerrado de la carta equivale a que todo estado tiene siempre unprximo estado dentro de un conjunto finito de estados.

    La Fig. 1.39.a muestra un ejemplo de carta ASM. Esta carta posee dos cajas de estado (A y B)en ninguna de las cuales se ordena ninguna accin; una caja de accin condicional (C) desde donde seordena que se active XCICLO; y dos cajas de decisin desde las que se pregunta el valor de LISTO yde YA, respectivamente. Existen dos bloques ASM, uno que corresponde a la caja de estado A y a lade decisin LISTO, y el otro que corresponde a la caja de estado B junto con la decisin YA y la deaccin condicional C. Adems, hay dos puntos de acumulacin, P1 y P2.

    Interpretemos el significado de esta carta (Fig. 1.39.a). El sistema se describe en ella slo en tr-minos de seales ya que no aparece ninguna transferencia de datos. Adems de la seal de reloj Ckque siempre est en los sistemas que estudiamos, el sistema posee dos entradas que son las que seinterrogan en las cajas de decisin (LISTO y YA), y una salida que es la nica seal que hay que activar.Ello da una estructura como la mostrada en el circuito de la Fig. 1.39.b. El diagrama temporal que apa-rece en ella refleja la operacin funcional del sistema. Recordemos que cada bloque ASM representalo que ocurre en un ciclo de reloj. Comenzando por el bloque A, el sistema mantiene inactiva la sealde salida (XCICLO = 0) mientras interroga a la entrada LISTO. Mientras esta permanezca a 0 se quedaen el propio bloque A. Por el contrario, si LISTO pasa a valer 1, en el siguiente ciclo de reloj se ejecutael bloque B. Estando en ste, se permanecer en l sin activarse ninguna seal mientras la seal YAest a 0. Cuando YA vale 1 se activa la salida XCICLO que, por tanto, ser 1 slo durante este ciclo1.En el ciclo siguiente, valga YA lo que valga se pasa al bloque A, en el que no se activa XCICLO y delque slo se sale cuando la seal LISTO sea 1.

    Globalmente la Fig. 1.39 describe un circuito secuencial que genera una seal de un ciclo

    1. Si la caja C fuera de estado se garantizara que XCICLO durara en 1 exactamente un ciclo de reloj.

    Camino de entrada

    Acciones

    Cdigo binario

    Smbolode estado S

    Condicin 1

    Condicin 2

    01

    1 0 Acciones

    Caminos de salidasFigura 1.38: Bloque ASM