Anda di halaman 1dari 167

ESTRUCTURA Y TECNOLOGA

DE COMPUTADORES

(Tomo I)

FERNANDO VENEGAS

SECCIN I INTRODUCCIN

1
INTRODUCCIN A LOS COMPUTADORES
Antes de hablar de Computadores parece conveniente tratar de definir qu se entiende por Computador. Una primera caracterstica que debe exigirse a una mquina para considerarla como un computador es que sea de naturaleza programable. Se entiende por ello que sea capaz de actuar de diferente forma segn las condiciones que se presenten. Por ejemplo, si se est calculando la nmina de los trabajadores de una empresa, deber ser capaz de asignar un sueldo u otro segn la categora del empleado, un importe por horas extraordinarias, segn el nmero de stas trabajadas, etc. Hoy por hoy, deber tambin emplear tecnologa microelectrnica, algo que comentaremos prximamente Deber procesarse informacin digital (trmino definido en el apartado siguiente) de forma secuencial, es decir, paso a paso, efectuando operaciones muy simples (a las que denominaremos instrucciones) de una en una. (La posibilidad de paralelismo no cambia demasiado este condicionante). Evidentemente, son inherentes al computador una gran velocidad de proceso y una gran exactitud en el mismo. Esta velocidad debe considerarse con relacin a la poca del computador de que se trate. Si hoy analizsemos los primeros computadores (aos 40), los consideraramos muy lentos, aun cuando no por eso dejan de merecer el calificativo de computadores. Por ltimo, deben ser capaces de encargarse de trabajos de muy diversa naturaleza. Un mismo computador puede, entre otras cosas, procesar textos, realizar clculos cientficos, de ingeniera o comerciales, acceder a Internet, almacenar y acceder a grandes bases de datos, controlar un proceso industrial o permitir juegos multimedia.

1.1.- Magnitudes analgicas y digitales


Hemos mencionado antes que un computador procesa informacin digital. Deberamos clarificar qu entendemos por magnitudes analgicas o digitales. Una magnitud analgica es aquella cuyo valor vara de forma continua. Ejemplos de magnitudes analgicas pueden ser la temperatura de un horno, el peso de un individuo, el volumen de combustible almacenado en un depsito, etc. Son las magnitudes ms habituales en la naturaleza. Por el contrario, magnitudes digitales son aquellas que varan de forma discreta, por incrementos. Por ejemplo, el saldo de una cuenta corriente, el nmero de alumnos en un aula, los das de la semana, el sueldo de un empleado, o incluso, por grande que sea, el nmero de clulas del cuerpo humano. Debe distinguirse entre la magnitud en s misma y la representacin de esa magnitud. Por ejemplo, la distancia recorrida por un automvil entre Madrid y Barcelona es una magnitud analgica, mientras que su representacin numrica es siempre digital, con independencia de la precisin con que se exprese esta distancia; tan digital es el valor 650 km como el de 650,324671 km. De todas formas, la representacin de una magnitud tambin puede ser de naturaleza analgica, como, por ejemplo, el peso indicado por la aguja en la escala de una bscula convencional; sin embargo, este mismo peso representado en el visor de una bscula digital ser de tipo digital, mientras que la magnitud en s, el peso del producto es de naturaleza analgica.

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

Tipos de Computadores
Actualmente, el trmino computador (ordenador, procesador, u otro similar) se refiere a computador digital. Sin embargo, por una vez, debemos mencionar la existencia de computadores analgicos que procesan magnitudes analgicas directamente, obteniendo resultados tambin de naturaleza analgica, frecuentemente en forma de grficos. Estos computadores actualmente se emplean en aplicaciones de tipo tcnico o cientfico y su uso es cada vez ms infrecuente por la dificultad que entraa su manejo. En cualquier caso, quedan fuera del mbito de la Informtica.

Conversin Analgico - Digital


El computador digital, el nico que analizaremos a partir de este momento, nicamente maneja magnitudes digitales, por lo que, cuando se trata de procesar magnitudes analgicas debe procederse previamente a su conversin en digitales a travs de un proceso que se conoce como digitalizacin. Hasta no hace muchos aos, este proceso no era demasiado frecuente ya que la gran mayora de la informacin procesada en un computador era digital. Sin embargo, actualmente, el incremento de aplicaciones multimedia, incluso en entornos de gestin, ha trado consigo la necesidad de proceso de informacin analgica (voz, msica, imgenes...) y, consecuentemente, la necesidad de su digitalizacin. Uno de los ejemplos ms habituales de este tipo de dispositivos de digitalizacin tal vez sea el escaner. El proceso de digitalizacin de una informacin analgica lleva consigo tres etapas (Figura 1.1). En primer lugar, deben elegirse muestras de esa informacin, lo que significa analizar esa informacin en determinados puntos (recurdese que una magnitud analgica, al ser continua, tiene un nmero infinito de valores). Una vez elegidos estos puntos, debern tomarse los valores que la magnitud a digitalizar alcanza en ellos. Estos valores se podrn tomar con mayor o menor precisin. Por ejemplo, si la magnitud fuese una distancia sta puede medirse en metros, en milmetros o en millonsimas de milmetro. Por ltimo, las magnitudes medidas debern codif icarse. Este paso es el que realmente nos da los val ores representativos de la informacin en cuestin que posteriormente podrn ser procesados por un computador digital.

Tres etapas:
Muestreo Cuantificacin Codificacin
12 m 0m 0000 4m 0100 1100 1111 15 m 13 m 1101 0m 0000 0000 0m 0000 4m 0100

A
12 m 15 m 13 m 0m 1100 1111 1101 0000

0100

1100

1111

1101

0000

Figura 1.1 Supongamos, por ejemplo, que se desea procesar la trayectoria seguida por un baln de ftbol, trayectoria que suponemos plana y cuya altura mediremos en metros. Se eligen una serie de puntos, seis en el ejemplo (muestreo) y se determina la altura del baln en cada uno de ellos (cuantificacin); en nuestro caso, 0, 4, 12, 15, 13 y 0 metros, respectivamente. Estos valores deben codificarse de acuerdo con al-

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

gn cdigo digital, por ejemplo indicando su valor en binario 0000, 0100, 1100, 1111, 1101 y 0000, respectivamente (Grfico A de la Figura 1.1). Si posteriormente se pretende reconstruir la trayectoria, colocando los valores en unos ejes (Grfico B) y trazando una curva con el programa adecuado, se puede ver, que en este caso, la curva obtenida es muy similar a la original (Grfico C). sto significa que la digitalizacin es correcta y puede hacerse con pocos puntos de muestreo y sin necesidad de una gran precisin al medir los valores de la informacin a ser digitalizada. Supongamos, sin embargo, que se trata de digitalizar una magnitud ms irregular, como la representada en el grfico A de la Figura 1.2, que podra parecerse a la seal analgica de la frecuencia de un sonido. Si se tomaran ocho muestras, como el ejemplo, aunque la precisin con que se midiese la amplitud de esta seal fuese alta, la digitalizacin con esas ocho muestras sera muy insatisfactoria. En el proceso de reconstruccin de la seal (Grfico B), la curva que se obtendra sera, ms o menos la representada, en grfico C, que, evidentemente, guarda escasa semejanza con la original.
A

Figura 1.2 Qu ha ocurrido? Simplemente, que al tomar un nmero escaso de muestras se han perdido valores muy representativos de la forma de esta seal. Cualquier proceso que se hiciera con el resultado de esta digitalizacin sera a todas luces incorrecto. Qu podemos hacer para mejorar la calidad del proceso de digitalizacin? La respuesta inmediata es tomar ms muestras, por ejemplo, 13 muestras (Figura 1.3).
A

Figura 1.3

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

Al reproducir los valores de esas 13 muestras (grfico B), llegaramos a una curva, (Grafico C de la Figura 1.3), algo ms parecida a la original, pero an bastante diferente, como se puede apreciar. Si aumentsemos el nmero de muestras hasta 29 (Figura 1.4), el resultado ya sera bastante satisfactorio (Grficos B y C) B y C).

Figura 1.4 Ahora bien, cules son las consecuencias? Para ciertas formas de informacin son necesarias muchas muestras para poder representar digitalmente la informacin de una manera adecuada. Tambin, en muchos casos, se requiere mayor precisin en la medida de las magnitudes: no basta medir una frecuencia en kilociclos por segundo, hay que hacerlo en ciclos (no basta con el nmero 12, hay que tener el 12.137). Ms muestras y mayor precisin en cada una, implica mayor volumen de informacin a almacenar, y tambin a procesar, en el computador lo que se traduce en mayores costes de tratamiento de la informacin. sto explica el orden en que han ido procesando histricamente diferentes tipos de informacin. Se comenz casi exclusivamente con el manejo de magnitudes numricas o alfabticas (contabilidad, nminas, almacenes, facturacin...). Posteriormente se empez a procesar textos no manuscritos puesto que su codificacin requiere poco volumen: un carcter slo requiere ocho bits. Ms adelante se procesaron imgenes en blanco y negro; la incorporacin del color supuso un importante incremento del volumen a tratar. La inclusin de movimiento a las imgenes (video) o el tratamiento de sonido exige an mayores volmenes de informacin a almacenar o tratar. Slo el continuo abaratamiento de la tecnologa ha hecho econmic amente posible la amplia difusin actual de las tecnologas multimedia. Por citar un ejemplo, hacia 1975 el autor particip en la presentacin de una aplicacin de digitalizacin de firmas para su empleo en la autorizacin de talones bancarios. En aquellas fechas los bancos almacenaban las firmas de sus clientes en unas cartulinas que se conservaban en la oficina a la cual estaba ligado ese cliente. Cuando se trataba de cobrar un cheque, se deba comprobar que el saldo del cliente permita abonar la cantidad que se solicitaba en el cheque; esto, entonces, ya se haca on-line con un tiempo de respuesta razonable y a unos costes aceptables. Por otra parte, se deba comprobar la validez de la firma contrastndola con la original, lo que requera un proceso manual, engorroso y lento que, adems, exiga que los talones nicamente se pudieran hacer efectivos en su propia oficina. Esto era un problema grave para el Banco: costes elevados y mal servicio al cliente; en consecuencia, muy frecuentemente el Banco prescinda de comprobar la firma para importes inferiores a un umbral determinado, asumiendo el riesgo que esta decisin conllevaba. La aplicacin en cuestin digitalizaba las firmas en poder del Banco y, cuando se trataba de hacer efectivo un taln, acceda a dicha imagen dig italizada y la transmita por lneas telefnicas a la pantalla del cajero donde ste la comparaba con la firma presentada en el documento y autorizaba o no la operacin. La demostracin de esta aplicacin

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

impact muy favorablemente al cliente potencial (un importante banco espaol) pero, cuando se pas a un estudio real de la posible implantacin, los costes implicados en el proceso resultaron prohib itivos: gran cantidad de almacenamiento en disco, importante consumo de procesador, elevada carga de las lneas de comunicaciones... Tericamente, la aplicacin estaba totalmente en condiciones de ser empleada, pero la tecnologa disponible en el momento no estaba madura. Hoy, quiz, desde la dcada de los noventa, esta es una aplicacin empleada en gran cantidad de entidades; no es que hayan cambiado los necesidades, ni que haya una tecnologa radicalmente diferente, lo que ha ocurrido es que la reduccin de precios continuada en todos los aspectos implicados han hecho realizable econmicamente lo que antes no era sino un deseo casi utpico. Este ejemplo referido al tratamiento de imgenes, ilustra un hecho (uno entre mil) que se produce igualmente en otras mltiples situaciones: tericamente es posible (es decir, se sabe cmo hacerlo y existe tecnologa capaz de hacerlo) llevar a cabo ciertos procesos en un determinado momento, pero las condiciones econmicas (es decir, el coste) los vuelven irrealizables. El alumno debe ir acostumbrndose a considerar estos aspectos financieros junto con el resto de consideraciones tcnicas en cualquier proyecto a acometer.

1.2.- Historia de los Computadores


Antecedentes
Desde la noche de los tiempos el hombre ha estado interesado en facilitar la realizacin de sus operaciones aritmticas. Aunque podemos remontarnos hasta el baco utilizado por los chinos, los antecedentes ms prximos a los actuales computadores son diversos dispositivos de naturaleza electromecnica empleados y perfeccionados desde el siglo XIX y que se mantuvieron hasta la segunda mitad del XX, coexistiendo algunos aos con el computador. En la Figura 1.5 se incluye una fotografa de una de las primeras mquinas empleadas a este fin durante el siglo XIX; en este caso un dispositivo de naturaleza mecnica.

Calculadora de C. Babbage (1847 - 1849)

Figura 1.5 Surgieron como consecuencia de la necesidad de automatizar clculos sencillos, repetitivos y muy voluminosos. Uno de los dispositivos ms conocidos a este fin fue el Holleriths Electric Tabulating System basado en la utilizacin de tarjetas en las cuales la informacin se registraba por medio de perforaciones practicadas en la tarjeta por medio de un cdigo (denominado cdigo Hollerith y empleado en el siglo XX hasta bien entrada la dcada de los 70). Con este dispositivo se automatiz la confeccin del Censo de poblacin de 1890 en EEUU, con unos resultados realmente espectaculares para la poca: se

Estructura y Tecnologa de Computadores (Seccin I)

10

Introduccin a los Computadores

consigui tener listos los resultados en algo ms de dos aos, frente a los diez que habitualmente se necesitaban. Sucesores de estos equipos fueron las llamadas, en general, mquinas de contabilidad, una de las cuales se reproduce en la Figura 1.6. Conjuntos de estas mquinas, todas ellas basadas en la utilizacin de la ficha perforada, dieron lugar a la aparicin de los primeros Centros de Clculo, antecesores de los actuales, que permitieron la automatizacin de procesos administrativos sencillos, aunque voluminosos, tales como la confeccin de nminas o el control de existencias de almacenes.

Clasificadora IBM 88 (1962)

Figura 1.6 Todos estos dispositivos se caracterizaban por emplear tecnologa electromecnica (inicialmente rel s, aunque ms adelante empezaron a utilizarse vlvulas ele ctrnicas). Precisamente la gran importancia del componente mecnico tena como consecuencia su gran tamao y relativa baja fiabilidad (naturalmente, estos aspectos negativos, slo son tales considerados con relacin a las tecnologas actuales). En la Figura 1.7 se recogen las caractersticas principales de estos antecesores de los ordenadores actuales.
Necesidad de automatizar tareas de clculo voluminosas y repetitivas Dispositivos electro mecnicos

Perforadoras Clasificadoras Tabuladoras Impresoras...

Voluminosas Poco fiables Gran consumo de energa y calor

Primer computador

Figura 1.7

Generaciones de Computadores
Desde los primeros equipos que pueden considerarse como computadores hasta la actualidad los avances han sido tremendos como consecuencia de los cambios tecnolgicos que se han ido incorporando. Atendiendo a estas tecnologas se pueden clasificar los computadores de acuerdo con una serie de generaciones; las tres primeras tienen clarsimas diferencias tecnolgicas, mientras que las dos ltimas, en el fondo y desde el punto de vista tecnolgico, no son sino consecuencia de la evolucin de una misma tecnologa base: la microelectrnica. En la Figura 1.8 se incluye una clasificacin de las diferentes generaciones de computadores.

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

11

Generaciones de computadores
Primera generacin Segunda generacin Tercera generacin Cuarta generacin Quinta generacin 1945 - 55 1955 - 65 1965 -70 1970 - 80 1980 Vlvulas electrnicas Transistores electrnica procesador Multiprocesadores...

Figura 1.8 Primera Generacin No hay un consenso total en cuanto al primer dispositivo que merece el calificativo de ordenador; de todas formas, generalmente, se considera como tal al ENIAC desarrollado en Estados Unidos y construido en 1945. Este equipo, del que se incluye en la Figura 1.9 una vista de conjunto y un detalle de uno de sus paneles, se caracterizaba por emplear como tecnologa base la vlvula de vaco. Este dispositivo electrnico, lo ms avanzado en esa poca, tena unos filamentos metlicos encerrados en un cilindro de cristal que emitan electrones cuyo movimiento (y con l la corriente elctrica) se controlaba de acuerdo con la tensin elctrica que se aplicaba a unas lminas, tambin metlicas.

Figura 1.9 Las vlvulas se empleaban entonces en todos los dispositivos electrnicos, entre ellos, por ejemplo en los aparatos de radio. Tenan un dimetro de unos 2 o 3 cm y una altura de 6 a 8cm. Su consumo no era muy inferior al de una bombilla. Las consecuencias del empleo de esta tecnologa son claras: El volumen requerido era muy grande El consumo de energa, y consecuentemente el calor disipado, eran, as mismo, elevados

Estructura y Tecnologa de Computadores (Seccin I)

12

Introduccin a los Computadores

El precio era prohibitivo. Tanto es as que, segn se dice, IBM en un principio desech la idea de fabricar computadores puesto que, segn sus previsiones, hacia el ao 2000 no habra sino unas pocas decenas de computadores en todo el mundo.

Adicionalmente, la vlvula era un dispositivo relativamente poco fiable. Por tanto, las averas eran frecuentes. sto tena como resultado que los trabajos resultasen interrumpidos con demasiada frecuencia y tuvieran que ser reiniciados desde el comienzo con la consiguiente prdida de tiempo. Para paliar el problema se empezaron a desarrollar tcnicas de checkpoint (puntos de control intermedios), tcnicas que actualmente, a pesar de la elevada fiabilidad de los equipos son parte fundamental de cualquier instalacin. Por otra parte, el manejo estos equipos era muy complicado. No haba lenguajes de programacin ni sistemas operativos por lo que su operacin estaba reservada a ingenieros de alta capacitacin. En la Figura 1.10 se incluye un resumen de las principales caractersticas de los ordenadores de la primera generacin.

Primera Generacin
Necesidad de gran capacidad de clculo para desarrollo de la primera bomba atmica ENIAC, aparece en 1945 Tecnologa: Vlvulas de vaco Velocidad aproximada: 1 segundo Gran tamao: > 100 m 3 Gran peso: 30 toneladas Enorme consumo: 150 kw Gran disipacin de calor Muy caro Muy lento Muy baja fiabilidad Muy poco manejable

Figura 1.10 Segunda Generacin La Segunda Generacin de computadores se caracteriza por el empleo del transistor como elemento fundamental que sustituye a las vlvulas de vaco. El transistor fue descubierto en 1948 en los laboratorios de Bell (en la Figura 1.11 se incluye una fotografa del transistor en la mesa del laboratorio con un clip empleado chapuceramente como conductor y que da idea de su tamao) y hacia finales de la dcada de los 50 comenz su utilizacin en ordenadores. NCR y RCA fueron los primeros fabricantes en comercializar equipos de la segunda generacin; IBM les sigui, en un principio con nuevos modelos de su Serie 700 (ordenador de tipo cientfico que in icialmente emple vlvulas) y posteriormente, con la Serie 1401 (orientada a gestin), la ms difundida de esta generacin. Como acabamos de mencionar, en esta generacin, los ordenadores eran diferentes segn la utilizacin a que se destinasen. Por un lado, los de tipo cientfico y por otro los de gestin. La razn de esta dualidad hay que buscarla, fundamentalmente, en el proceso de gestacin de los mismos y en el precio, an demasiado elevado. El transistor supone grandes reducciones en tamao (un transistor, debidamente encapsulado poda ocupar inicialmente un cilindro de 1cm de dimetro y algo menos de altura), consumo de energa y precio, junto con un incremento importante de la velocidad y de la fiabilidad. Esta tendencia se ha mantenido imparable desde entonces, a travs de varias dcadas.

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

13

Figura 1.11 En esta poca surgen los lenguajes de alto nivel y los primeros sistemas operativos que, aunque bsicos, permitieron que la utilizacin de estos equipos fuese ms sencilla. En la Figura 1.12 se incluye un resumen con las principales caractersticas de los computadores de segunda generacin.

Segunda Generacin
En 1948 se descubre el transistor A finales de los 50 se incluye en los computadores Velocidad aproximada: 1milisegundo Se reduce: tamao, peso, precio, calor... Aumenta: velocidad y fiabilidad Dos tipos de computadores: Tcnico-cientficos De gestin Surgen los lenguajes de alto nivel y el software bsico

Figura 1.12 Tercera Generacin Los transistores iniciales empleados en los ordenadores de segunda generacin fueron mejorando sus prestaciones y reduciendo progresivamente su tamao. Esta reduccin lleg a su extremo en la segunda dcada de los 60, permitiendo la fabricacin de transistores del orden de un milmetro. Entonces se decidi integrar en una sola pieza varios transistores junto con otros componentes electrnicos, fundamentalmente resistencias y diodos: haba nacido el circuito integrado, ms conocido como chip , y, con l, la microelectrnica. Los primeros chips, con un tamao del orden del milmetro, incluan alrededor de 12 puertas lgicas (cada puerta requiere unos pocos transistores y algunos otros componentes), en lo que se dio en llamar tecnologa SSI (Small Scale Integration, o integracin a pequea escala). La integracin continu, dando lugar a las tecnologas MSI (Medium Scale Integration) con unas 100 puertas por chip y LSI (Large Scale Integration) que alcanzaba hasta las 10.000 puertas.

Estructura y Tecnologa de Computadores (Seccin I)

14

Introduccin a los Computadores

El chip dio lugar a la Tercera Generacin de ordenadores, del cual la familia ms representativa fue el IBM/360, tal vez, junto con el PC, el mayor logro informtico de la historia. La tremenda reduccin de precio hizo econmicamente posible que un mismo ordenador pudiese dedicarse tanto a entornos tcnicos como de gestin (de ah el indicativo 360, referencia al arco de 360 de una circunferencia) desapareciendo la dualidad existente hasta entonces. Otro aspecto importante del IBM/360 es el concepto de familia , conjunto de ordenadores con una misma Arquitectura (trmino que se tratar posteriormente), y por ello totalmente compatibles, aunque con grandes diferencias en sus prestaciones, y por tanto en su precio. En la Figura 1.13 se incluye un resumen de las caractersticas fundamentales de esta tercera generacin de computadores.

Tercera Generacin
Miniaturizacin del transistor e integracin con otros componentes en un chip: electrnica Velocidad: < 50 nanosegundos Se reduce: tamao, peso, precio, calor... Aumenta: velocidad y fiabilidad Un nico tipo de computadores Ej. IBM/360 Tres niveles de integracin: SSI 12 puertas/circuito MSI 100 puertas/circuito LSI 10.000 puertas/circuito

Figura 1.13 Cuarta Generacin Adems del incremento de prestaciones y de la densidad de circuitos (lo que tiene como consecuencia una reduccin constante del tamao de los equipos) la evolucin de las distintas tecnologas desde la SSI a la LSI reduca el consumo de energa y, con ello el calor disipado, a la vez que mejoraba de forma importante la fiabilidad de los componentes. En la dcada de los 70, esta evolucin continuada lleg al extremo de permitir incluir en un nico chip todos los circuitos necesarios para un procesador completo, a un precio razonable. A este procesador en un nico chip se le denomin microprocesador y, aunque inicialmente su potenci a era relativamente baja en comparacin con los ordenadores entonces existentes supuso un gran paso: posibilit la aparicin del PC y, con l, de la Cuarta Generacin de ordenadores. Aunque el primer microprocesador, el Intel 4004, data de 1971 sus caractersticas eran tan limitadas que no se puede considerar como un PC, ni tampoco su sucesor el Intel 8008 del ao siguiente; ambos microprocesadores se disearon para aplicaciones especficas. Debemos esperar hasta la aparicin del Intel 8080 en 1974 para ver el primer microprocesador de uso general ampliamente difundido y padre de los 386, 486 y de los sucesivos modelos del Pentium. Tecnolgicamente la cuarta generacin (de la que se resumen sus caractersticas en la Figura 1.14) no es sino un paso ms en la evolucin anteriormente comentada. Un chip llega a alcanzar ms de 100.000 puertas dando lugar al nivel VLSI (Very Large Scale Integration) de la tecnologa.

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

15

Cuarta Generacin
Sigue incrementndose el nivel de integracin: VLSI >100.000 puertas/circuito Velocidad: < 10 nanosegundos Se llega a colocar un procesador en un nico chip:

Aparece el microprocesador Surge el PC

Figura 1.14 Quinta Generacin Hasta aqu la mayora de los autores coinciden en la definicin de estas cuatro generaciones, caracterizndose cada una de ellas por algn acontecimiento singular. La evolucin de la tecnologa, evidentemente, no se detiene. En los aos 80 se alcanzan niveles de integracin con ms de un milln de puertas por chip dando lugar a la tecnologa ULSI (Ultra Large Sc ale Integration). Paralelamente a las mejoras en la tecnologa, tambin el software se ha desarrollado enormemente. Pero, este desarrollo es caro. Cmo se puede incorporar en los equipos a unos precios asequibles? nicamente con grandes volmenes y stos volmenes slo son posibles, a su vez, gracias a la constante reduccin de costes del hardware. Pues bien, coincidiendo con la tecnologa ULSI se hace econmicamente interesante la integracin de varios microprocesadores en un sistema nico: el multiprocesador. La utilizacin creciente del mult iprocesador se considera por ciertos autores como la caracterstica que define la aparicin de la Quinta Generacin (Figura 1.15). Debe mencionarse que ya en los equipos IBM/360 existan modelos con ms de un procesador, llegando este mismo fabricante hasta seis procesadores en la familia IBM/3090 hacia finales de los 80. Pero no se trataba de microprocesadores (procesador en un solo chip) sino que cada uno de estos procesadores, siempre de gran potencia, requera varios chips.

Quinta Generacin
Sigue incrementndose el nivel de integracin: ULSI >1.000.000 puertas/circuito Velocidad: < 1 nanosegundo Se incrementan las prestaciones empleando mltiples procesadores:

Aparecen los Multiprocesadores Se posibilitan nuevas aplicaciones (p.e. Multimedia)

Figura 1.15

Estructura y Tecnologa de Computadores (Seccin I)

16

Introduccin a los Computadores

La evolucin de hardware y software tambin trae aparejada por las mismas fechas la aparicin a precios razonables de nuevas tecnologas informticas como, por ejemplo multimedia, posibles tcnic amente mucho antes, pero econmicamente inviables hasta entonces.

Y despus, qu?
Naturalmente, la evolucin de la tecnologa no se ha detenido aqu. El ao 1997 tienen lugar de forma independiente dos anuncios de enorme importancia. Por un lado, IBM anuncia la utilizacin de cobre como conductor en las conexiones de los distintos componentes de un chip, mientras que Intel anuncia el empleo de slo un transistor para disponer de dos bits de memoria. Aunque el cobre es el mejor conductor de la electricidad, los fabricantes de chips no eran capaces de utilizarlo como conductor dentro de los propios chips para interconectar los millones de componentes que forman parte de los mismos y siempre se ha empleado para estos fines aluminio. Se intent utilizar cobre, plata u oro pero ninguno de ellos se poda manejar con la misma sencillez que el aluminio y, lo que es mucho peor, estos tres metales tenan interacciones qumicas indeseadas con el silicio que alteraban su comportamiento elctrico. Nuevas tcnicas de fabricacin han hecho posible el empleo del cobre. Esta importantsima mejora tecnolgica es aplicable a los procedimientos bsicos de fabricacin de tecnologa microelectrnica por lo que su empleo es aplicable tanto a circuitos de lgica como a circuitos de memoria. Por lo que respecta a los circuitos de memoria, a lo largo de los aos se ha ido produciendo una espectacular mejora en la densidad de los mismos (ms bits por unidad de superficie). Esto se ha logrado por dos vas: por un lado por una mejora continua de los procesos de fabricacin y, por otra parte, por un mejor diseo de la celda de memoria. Inicialmente, para almacenar un bit se requera un circuito formado por seis transistores, nmero que se fue reduciendo hasta un nico transistor por bit. En 1997, Intel anunci un nuevo diseo del bit de memoria que permita almacenar dos bits por medio de un solo transistor, permitiendo as duplicar la densidad de los chips de memoria, con independencia de otras mejoras tecnolgicas. Ambos anuncios, que, adems, no son incompatibles entre s, se han llevado ya al mercado formando parte de multitud de productos.

El microprocesador
Conviene aclarar que cuando hablamos de microprocesadores no estamos refirindonos exclusivamente a aquellos que forman parte de un ordenador. De hecho stos son clara minora. En la Figura 1.16 se pueden ver las previsiones de produccin de microprocesadores que se hicieron a principios del ao 2000. De un total cercano a los 8.300 millones a nivel mundial slo 150 millones (menos del 2%) se iban a emplear en PCs, servidores o grandes ordenadores; es decir en Informtica. Y el resto a qu se dedican? Se trata de microprocesadores mucho ms simples: Microcontroladores (micros muy sencillos includos en aparatos de todo tipo desde electrodomsticos hasta juguetes, motores o mquinas herramientas simples y cuyo precio no supera unos pocos euros). Procesadores de seales (incorporados, entre otros dispositivos, en telfonos mviles, televisores, reproductores de video o audio, etc). Microprocesadores incorporados (empleados en funciones ms complejas que l a s anteriores como pueden ser todas las funciones de control de un automvil, de un edificio o de una consola de videojuegos).

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

17

Sin embargo, todos tienen algo en comn: son procesadores, en el sentido que de este trmino haremos en la Seccin III de la asignatura y tienen una organizacin bsica similar.
Total de todos los tipos: 8.288.300.000

Microcontroladores 7.257.000.000

Microprocesadores incorporados 281.300.000

Procesadores digitales de seales 600.000.000

Microprocesadores de alto rendimiento 150.000.000

4 bits 1.680.000.000 8 bits 4.770.000.000 16 bits 764.000.000 32 bits 43.000.000

8 bits 20.200.000 16 bits 108.000.000 32 bits 153.100.000

Texas Instruments Advanced Micro Devices

Pentium

Power PC

SPARC

Origen: DARPA (Ao 2000)

Figura 1.16

1.3.- Tecnologas Microelectrnicas


Cuando hablamos de microelctronica nos referimos a cualquier tecnologa que emplee circuitos integrados. Sin embargo, desde un punto de vista ms de detalle, ms fsico, no todos los chips emplean la misma tecnologa electrnica a la hora de fabricar los transistores y otros elementos del chip. En lneas generales los transistores, y por tanto los chips, se pueden fabricar empleando dos tecnologas diferentes: la tecnologa Bipolar o la tecnologa MOSFET (Metal Oxide Semiconductor Field Effect Transistor o Transistores Efecto de Campo con Semiconductores de xido Metlico). Explicar las diferencias que ambas tecnologas tienen en su funcionamiento desde un punto de vista fsico no pertenece al mbito de esta asignatura pero s es conveniente conocer las caractersticas de una y otra, que se resumen en la Figura 1.17. En lneas generales la tecnologa Bipolar comprende mltiples familias (histricamente RTL, DTL, TTL y ECL). Todas ellas se caracterizan por una velocidad muy alta, a costa de un tamao grande, un consumo elevado de energa, con la consiguiente disipacin de calor, y un precio tambin alto. De hecho, esta tecnologa ha sido empleada hasta entrada la dcada de los 90 en los grandes ordenadores.

Tecnologas microelectrnicas
Bipolar:
Elevado consumo
Gran disipacin de calor

MOSFET:

Bajo consumo
Poca disipacin de calor

Baja integracin
Gran tamao

Gran integracin
Muy pequea

Gran velocidad Muy cara Destinada a circuitos lgicos

Lenta Muy barata Ideal para memorias

Figura 1.17

Estructura y Tecnologa de Computadores (Seccin I)

18

Introduccin a los Computadores

Por otro lado, se encuentra la tecnologa MOSFET tambin con varias familias, (nMOS, pMOS y, actualmente, CMOS). Su velocidad es menor, pero el resto de caractersticas es claramente favorable con relacin a la tecnologa bipolar. Ha sido la tecnologa empleada habitualmente en la mayora de las memorias de ordenador y en los PCs (tanto en la memoria como en el resto de sus componentes). Hoy se ha extendido, prcticamente, a cualquier tipo de ordenador, independientemente de su potencia. Cmo han evolucionado ambas tecnologas? Por qu? Como se puede ver en la Figura 1.18, la diferencia de velocidad entre la tecnologa MOSFET y la Bipolar era realmente importante. sto supona que los grandes ordenadores empleaban esta tecnologa pese a sus inconvenientes, que eran muchos. Por ejemplo, las mquinas ms potentes necesitaban refrigerar sus circuitos por algn lquido, generalmente agua, que circulaba en circuito cerrado con sus correspondientes equipos auxiliares para enfriar este agua, torres de refrigeracin, etc (en 1976 el Cray-1, tal vez el Superordenador ms famoso, precisaba helio lquido para su refrigeracin).
Velocidad

Bipolar CMOS

MOSFET
1990 Aos

Figura 1.18 Ambas tecnologas fueron evoluci onando y mejorando sus prestaciones. Pero no lo hicieron al mismo ritmo, de forma que en la dcada de los 90, la tecnologa MOSFET lleg a aproximarse mucho a la Bipolar e incluso a superarla. En el grfico de la Figura 1.19 podemos ver con mayor detalle la evolucin de estas tecnologas en los ltimos aos. Se puede apreciar que a partir del ao 1993 la tecnologa bipolar no ha mejorado, mie ntras que la CMOS ha continuado su progresin, de manera que hacia 1997 igual el rendimiento de la bipolar, superndolo a partir de entonces.
Velocidad Baja produccin Baja rentabilidad Se abandona la investigacin

CMOS

Bipolar
Aos 92 93 94 95 96 97 98 99

Figura 1.19 Por qu se ha producido este hecho? Muy posiblemente la razn no sea tcnica, sino simplemente econmica. Con los incrementos de rendimiento en CMOS, cada vez haba ms mquinas que podan alcanzar la potencia deseada sin necesidad de emplear tecnologa bipolar y a un precio muy inferior. En consecuencia, los chips con esta tecnologa iban quedando reservados exclusivamente para ordenadores

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

19

de la mxima potencia: slo unos pocos miles al ao con lo que el volumen de chips fabricados con tecnologa bipolar se reduca ms y ms. As, su precio, ya de por s alto, se converta en prohibitivo, sacrificando incluso el beneficio que el fabricante poda obtener. El mercado se inclinaba claramente por la tecnologa CMOS. Ante esta situacin los fabricantes de chips bipolares reducen sus gastos de investigacin en esa tecnologa con lo que los avances en ella se ralentizan y se realimenta el proceso anterior. En el mercado CMOS, la situacin es la opuesta: cada vez mayor produccin, menores costes y, pese a ello, crecimiento continuo de beneficios. Finalmente, hacia 1993, se deja de invertir en investigacin en tecnologa bipolar, con lo que, evidentemente, esta tecnologa se estanca y se permite que en slo cuatro aos la tecnologa CMOS tome la delantera y se convie rta, prcticamente, en exclusiva.

1.4.- Sistemas Digitales


En los computadores la informacin se almacena y se procesa de forma digital. Para ello se emplea el sistema binario, con dos nicos valores 0 y 1. Cada uno de estos valores, se puede asimilar a la presencia o a la ausencia de una determinada magnitud fsica. En un computador estos dos valores se representan empleando la tensin elctrica: la presencia de tensin en un punto se asocia con el valor 1 (o el valor 0) y la ausencia de la misma con el valor 0 ( o el valor 1). Hacer que la presencia de tensin represente el 1 y la ausencia represente el 0 es arbitrario; puede elegirse exactamente lo contrario. Esta dualidad da lugar a dos tipos de lgica: con la llamada lgica positiva se asocia el 0 con la ausencia de tensin y el 1 con la presencia. A lo largo de todo un ci rcuito (o de todo un computador) en cualquier punto en el que se detecte la presencia de tensin se tendr el valor lgico 1, mientras que en los puntos en los que no haya tensin, el valor lgico ser el 0. Con lgica negativa la situacin es la inversa. En la Figura 1.20 se muestra un resumen de las caractersticas de los sistemas digitales.

Sistemas digitales
Utilizan el sistema binario: 0 / 1 Presencia o ausencia de tensin Dos tipos de lgica: Lgica positiva: 1 Presencia de tensin 0 Ausencia de tensin Lgica negativa: 0 Presencia de tensin 1 Ausencia de tensin
Figura 1.20 Un circuito lgico funciona con corriente continua y a tensiones muy bajas. Idealmente, con lgica positiva, el valor 0 se asocia con la tensin de 0 voltios, mientras que el valor 1 se asocia con una tensin, variable segn las tecnologas, pero en el entorno de los 5 voltios. En la Figura 1.21 se hace coincidir con los 4,5 V. En la prctica, sin embargo las magnitudes fsicas, la tensin elctrica entre ellas, son magnitudes analgicas, un punto puede tener el valor 1 en un momento y el valor 0 en el momento siguiente, pero para pasar de los 4,5V a los 0V tiene que pasar por todos los valores intermedios; como magnitud digital pasa directamente del 1 al 0.

Estructura y Tecnologa de Computadores (Seccin I)

20

Introduccin a los Computadores

4,5 V

5V

1
3,5 V

Indeterminado
0,8 V 0V

0
0V

Figura 1.21 Por otra parte, mantener exactamente los valores de 4,5V o de 0V es prcticamente imposible. Por todo ello, en la realidad, los valores del 0 y del 1 no se asocian con unos valores fijos de la tensin sino con unos ciertos mrgenes. Por ejemplo, se puede asociar el 1 con tensiones entre 3,5V y 5V y el 0 con valores entre 0V y 0,8V. Qu ocurre entonces con los valores entre 0,8V y 3,5V? Se consideran indeterminados: un circuito, funcionando correctamente, no puede tener estos valores de la tensin en ningn punto. Naturalmente, durante el paso del 1 al 0 o viceversa, la tensin tiene que pasar por esos valores indeterminados. Lo que ocurre es que, en esos momentos, no se puede tomar en consideracin el valor presente en ese punto. Esto nos introduce el concepto del tiempo, fundamental en cualquier computador. El paso del valor 0 al valor 1 y la vuelta de ste al 0 se denomina impulso (Figura 1.22). El paso del 0 al 1 se conoce como flanco de subida del impulso, mientras que el proceso contrario se conoce como flanco de bajada. La representacin de la figura indica los valores que toma una determinada variable a lo la rgo del tiempo; fsicamente, los valores de tensin en un punto determinado del circuito.
1 Flanco de subida Flanco de bajada

0 t0 t1 t

(Impulso ideal)

Figura 1.22 En la Figura 1.22 se representa un impulso; se trata de un impulso ideal. El paso de 0 a 1, o viceversa, es instantneo. En la prctica, como ya hemos mencionado, el paso desde la tensin asociada al 0 hasta la asociada al 1, no puede ser instantneo. Los flancos de subida o de bajada no pueden ser verticales, debern parecerse ms a los que aparecen en el lado izquierdo de la Figura 1.23. Naturalmente, durante parte del flanco, el valor lgico ser indeterminado. Durante este tiempo, no se deber tomar en consideracin el valor del circuito. El tiempo durante el cual el valor lgico es indeterminado, se conoce como tiempo d e subida (o tiempo de bajada). En la figura se han considerado unos mrgenes muy pequeos alrededor del 0 o del 1 dentro de los cuales los valores de las tensiones representan el 0 o el 1. Pero, incluso la aproximacin anterior no es totalmente vlida. En la prctica se producen unos fenmenos que hacen que durante la subida o la bajada se rebasen los valores de la tensin que representan

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

21

el 1 o el 0, tal y como se representa en el lado derecho de la figura. Esto puede hacer que el tiempo de subida o de bajada sea an mayor.
1 Flanco de subida 1 Flanco de subida

Flanco de bajada

Flanco de bajada

0 t
Tiempo de subida Tiempo de bajada

0 t
Tiempo de subida Tiempo de bajada

(Impulso real)

(Impulso real)

Figura 1.23 Sin embargo, salvo alguna excepcin, a lo largo del curso supondremos que los impulsos son ideales. El conocimiento exacto del funcionamiento de los circuitos desde el punto de vista fsico, aunque i mprescindible para el diseo fsico de un computador, sera objeto de una asignatura de electrnica fs ica. Se conoce como tren de impulsos a una serie de impulsos consecutivos, tal y como se representa en la Figura 1.24. En ella el valor lgico en un punto va cambiando a lo largo del tiempo entre el 0 y el 1.
1

Figura 1.24 Un tren de impulsos que va pasando de 0 a 1 y viceversa a intervalos regulares, tal y como se representa en la Figura 1.25, se conoce como tren de impulsos peridico .
T 1 T1 0

1
1 T

1
T1 100 T

Periodo = T Frecuencia = Factor de Servicio =

Figura 1.25 Se denomina periodo al tiempo transcurrido entre dos transiciones consecutivas del 0 al 1 (o vic eversa). Se mide en segundos o, ms frecuentemente, en microsegundos (10-6 segundos) o nanosegundos (10-9 segundos).

Estructura y Tecnologa de Computadores (Seccin I)

22

Introduccin a los Computadores

El inverso del periodo, es la frecuencia. Se mide en herzios (ciclos por segundo) e indica el nmero de veces que, en un segundo, se pasa de 0 a 1. Ms frecuentemente la frecuencia se expresa en Megaherzios (106 herzios), o incluso Gigaherzios (109 herzios). Otro parmetro que se emplea frecuentemente para definir un tren de impulsos peridico es el llamado Factor de Servicio que nos da, normalmente en porcentaje, la relacin entre el tiempo que el impulso est en el valor 1 y el tiempo total. En un ordenador, la mayora de las operaciones se pueden ejecutar slo en determinados momentos de tiempo, y slo en esos momentos se pueden considerar vlidos los valores de los diferentes puntos del circuito.
Reloj

Sincronizacin

Figura 1.26 Esta operacin se conoce como sincronizacin. Los instantes de referencia en los cuales pueden tener lugar las transiciones de 0 a 1 (o viceversa) vienen fijados por un tren de impulsos peridico producido por un componente del ordenador conocido como el reloj (clock). La frecuencia de este reloj (p.e. 766Mhz, o 1,5Ghz) es una de las caractersticas principales de un procesador.

Estructura y Tecnologa de Computadores (Seccin I)

Introduccin a los Computadores

23

BIBLIOGRAFA RECOMENDADA: E. Alcalde y otros. Arquitectura de Ordenadores.- Mc Graw Hill. 1991 (Cap. 1) David A. Patterson y John L. Hennessy. Estructura y diseo de computadores.- Revert, S.A. 2000 (Vol. 1, Cap.1) W. Stallings. Organizacin y Arquitectura de Computadores.- Prentice Hall. 2000 (Caps. 1 y 2)

Estructura y Tecnologa de Computadores (Seccin I)

SECCIN II SISTEMAS DIGITALES

Estructura y Tecnologa de Computadores (Parte II)

2
SISTEMAS DE REPRESENTACIN DE LA INFORMACIN
A lo largo del tiempo, ha ido evolucionando el tipo de informacin almacenada y procesada en un ordenador. Inicialmente, slo eran capaces de procesar informacin numrica y, de hecho, los primeros ordenadores se construyeron para facilitar complejos clculos numricos de tipo tcnico. Poco despus se vi su utilidad para realizar clculos sencillos pero de gran volumen, los tpicos de los procesos administrativos. Entonces, se hizo preciso procesar informacin de tipo alfabtico para poder emitir informacin impresa, como facturas o recibos de nmina. Posteriormente se ha ido dotando a los ordenadores de la capacidad de procesar otros tipos de informacin ms compleja, desde grficos sencillos hasta los potentes equipos multimedia actuales.

2.1.- Sistemas de Numeracin


Comenzaremos pues viendo cmo se representa en un ordenador la informacin numrica y para ello repasaremos algunos conceptos sencillos sobre Sistemas de Numeracin. En primer lugar debemos incluir algunas definiciones. Sistema de Numeracin: El conjunto de smbolos y reglas empleados para la representacin de magnitudes numricas Base de un Sistema de Numeracin El nmero de smbolos numricos que se emplean en ese Sistema de Numeracin Cules son los Sistemas de Numeracin ms frecuentes? En nuestra vida habitual, no hay duda de que el Sistema de Numeracin ms comnmente utilizado es el sistema decimal, aunque perdure de forma residual algn otro como pueda ser el de base 12, cuando se habla de docenas. Sin embargo, en sistemas digitales y en Informtica, los Sistemas ms empleados son el Sistema Binario y el Sistema Hexadecimal cuyas bases son 2 y 16, respectivamente.

Teorema Fundamental de la Numeracin


Comenzaremos con el Teorema Fundamental de la Numeracin que aplicamos continuamente en la vida diaria, aunque de una forma automtica y casi inconsciente. La expresin formal de este Teorema es la siguiente:

N=

i = n 1 i= d

(dgito) base
i

i =n 1 i = d

D b
i

donde, si tomamos como eje mplo el nmero 1.727,32:


D i = cada uno de los dgitos i = posicin respecto a la coma decimal b = base Di = 1, 7, 2.... b = 10

Estructura y Tecnologa de Computadores (Parte II)

28

Sistemas de Representacin de la Informacin

n = n cifras a la izquierda de la coma decimal d = n cifras a la derecha de la coma decimal

n=4 d =2

Habitualmente empleamos el Sistema Decimal. El valor numrico de una magnitud en este sistema viene dado por el conjunto de unidades, decenas, centenas, etc. Por ejemplo quince personas, se representan numricamente, en el sistema decimal por el nmero 15 y ste representa cinco unidades y una decena, o bien quince unidades. Quince es el cardinal de este conjunto y es independiente del sistema de numeracin empleado, su representacin numrica en decimal es 15, mientras que su representacin numrica en binario es 1111. Cuando analizamos un nmero expresado en el sistema decimal, vemos (Figura 2.1)que un mismo smbolo (p.e. el 7) puede representar una magnitud diferente. En este caso, el primer 7 (por la derecha) representa 7 unidades, mientras que el segundo representa 7 centenas, o sea, 700 unidades. Es decir, el mismo smbolo en distinta posicin representa un valor diferente.
Ej. 1.727,32 N=
i =n 1 i= d

(dgito ) base
i

i =n 1 i = d

D b
i

N= Smbolo igual Posicin diferente

2 10 -2 + 3 10 -1 + 7 10 0 + 2 10 1 + 7 10 2 + 1 10 3

= + + +

0,02 0,30 7,00 20,00

Valor diferente

+ 700,00 + 1000,00 1.727,32

Sistema numrico posicional

Figura 2.1 Cualquier sistema de numeracin en el cual el valor de un smbolo depende de su posicin se conoce como Sistema numrico posicional. Prcticamente cualquier sistema numrico actualmente empleado es de este tipo. El Teorema Fundamental de la Numeracin aplicado al ejemplo de la figura nos permite obtener el valor de la cantidad representada en el sistema decimal por 1.727,32: dos centsimas, ms tres dcimas, ms siete unidades, ms dos decenas, ms siete centenas, ms un millar o, lo que es lo mismo, el cardinal mil setecientos veintisiete con treinta y dos. Un ejemplo de sistema numrico no posicional, empleado hoy da aunque sin utilidad ninguna en clculos matemticos, es el formado por los nmeros romanos. En l la letra V tiene el valor cinco, independientemente de su posicin, y la letra M el valor mil, tambin con independencia de su posicin. Obsrvese que en este sistema de numeracin no existe una representacin para el valor cero.

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

29

Principales Sistemas de Numeracin


En un ordenador slo existen los valores 0 y 1. Por tanto el sistema de numeracin ms lgico es el binario. Sin embargo, en la vida diaria, el sistema ms corriente es el decimal. Por ello, los ordenadores debern ser capaces de emplearlo. Otro sistema con el que deberemos familiarizarnos es el hexadecimal, con base 16. Como veremos resulta especialmente til para representar valores binarios de una forma ms cmoda que la larga serie de ceros y unos que caracteriza al sistema binario. Como emplea diecisis smbolos, no tiene suficiente con los diez dgitos por lo que toma prestados diez smbolos del sistema decimal (del 0 al 9) y para los seis restantes emplea las primeras letras del alfabeto (desde la A hasta la F).

Algunas definiciones
En la Figura 2.2 se recogen algunos trminos empleados para referirnos a determinadas magnitudes frecuentemente empleadas para medir volmenes de informacin.

Bit Byte Kilobit Kilobyte Megabyte Gigabyte Terabyte Petabyte Exabyte

b B Kb KB MB GB TB PB EB

Unidad de informacin: 0, 1 8 bits (carcter, octeto) 1024 bits 103 bits 1024 bytes 103 bytes 1024 KB 106 bytes 1024 MB 109 bytes 1024 GB 1012 bytes 1024 TB 1015 bytes 1024 PB 1018 bytes
Figura 2.2

El enorme desarrollo de la tecnologa de almacenamiento ha hecho que se fuesen sobrepasando continuamente las capacidades reales de las mismas, tanto en memoria central, como en almacenamiento en disco. En un PC hablar de Megabytes de memoria o de Gigabyes de disco es habitual hoy da mientras que en grandes sistemas las memorias actuales ya se expresan en Gigabytes y las capacidades totales de almacenamiento en disco en una instalacin son del orden de Terabytes. La nueva Arquitectura de Grandes Sistemas de IBM, disponible desde Octubre de 2000, o los nuevos micros de AMD disponibles en 2003, con su direccionamiento de 64 bits permite memorias de hasta 16 Exabytes, aunque todava esos tamaos estn muy alejados de la realidad. Aqu, nicamente conviene advertir sobre la confusin, relativamente frecuente entre bit y byte. Generalmente se emplea correctamente la b para indicar el bit y la B cuando se referencia el byte, aunque no siempre sucede as.

Conversin entre Sistemas de Numeracin


Utilizando siempre el Sistema Decimal como referencia, dado que es aquel con el que estamos familiarizados, veremos cmo se puede pasar de un Sistema de Numeracin a otro. Para conocer el valor en decimal de un nmero expresado en otro Sistema de Numeracin, nos bastar con aplicar el Teorema Fundamental de la Numeracin:

N=

i = n 1 i= d

( dgito)i base =
i

i =n 1 i = d

D b
i

Estructura y Tecnologa de Computadores (Parte II)

30

Sistemas de Representacin de la Informacin

Conversin al Sistema Decimal Veremos las dos situaciones ms frecuentes. Pasar desde el sistema Binario o desde el Hexadecimal. De Binario a Decimal Supongamos, por ejemplo, el nmero binario 10110,01. La base es 2, El nmero de cifras a la derecha de la coma es tambin 2, El nmero de cifras a la izquie rda de la coma es cinco, (b = 2) (d = 2) (n = 5)

Aplicamos el Teorema Fundamental de la Numeracin. El valor decimal de este nmero N, ser la suma de una serie de sumandos (tantos como cifras tenga el nmero binario; o sea 7). Cada sumando dar el valor de una de las cifras del nmero binario, teniendo en cuenta su posicin. As, para la ltima cifra a la derecha de la coma (un 1 en la posicin -2), su valor ser: La siguiente cifra (un 0 en la posicin -1): La siguiente (un 0 en la posicin 0): Despus un 1 en la posicin 1 Ahora un 1 en la posicin 2 Un 0 en la posicin 3 Y un 1 en la posicin 4 La suma de estos siete sumandos nos da el valor decimal del nmero binario 10110,01 De Hexadecimal a Decimal De forma anloga procederemos para un nmero expresado en hexadecimal. Supongamos, por eje mplo, el nmero hexadecimal 3EF,A. La base es diecisis, El nmero de cifras a la derecha de la coma es una, El nmero de cifras a la izquie rda de la coma es tres, (b = 16) (d = 1) (n = 3) 1 2-2 = 02 = 0 20 = 1 21 = 12 = 0 23 = 12 =
4 2 -1

0,25 0 0 2 4 0 16 22,25

Aplicamos el Teorema Fundamental de la Numeracin. El valor decimal de este nmero N, ser la suma de una serie de sumandos (tantos como cifras tenga el nmero hexadecimal; o sea 4). Cada sumando dar el valor de una de las cifras del nmero hexadecimal, teniendo en cuenta su posicin. As, para la ltima cifra a la derecha de la coma (A en la posicin -1), sin olvidar que el valor decimal de A es diez, su valor ser: A 16-1 = La siguiente (F, o sea quince, en la posicin 0): Despus E (o sea, catorce) en la posicin 1 Y, por ltimo, un 3 en la posicin 2 La suma de estos cuatro sumandos nos da el valor decimal del nmero hexadecimal 3EF,A
0

0,625

F 16 = 15 E 161 = 224 3 162 = 768 1007,625

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

31

Conversin desde el Sistema Decimal El problema inverso, convertir desde el Sistema Decimal al Binario o al Hexadecimal, tambin es frecuente. Se pueden emplear dos procedimientos diferentes: Por divisiones y multiplicaciones sucesivas Por restas sucesivas.

En cualquier caso debe separarse la parte entera de la fraccionaria del nmero expresado en decimal. De Decimal a Binario Si se emplea el primero de los procedimientos arriba mencionados, las divisiones sucesivas se aplic arn a la parte entera mientras que las multiplicaciones debern hacerse sobre la parte fraccionaria. Veamos con un ejemplo cmo debe procederse (Figura 2.3). Sea el nmero decimal 19,3125 Por divisiones / multiplicaciones sucesivas
19 2 1 9 2 1 4 2 0 2 2 0 1 2 1 0 1 0 0 1 0,3125 2 = 0,625 0,625 2 = 1,25 0,25 2 = 0,5
Final

0 1 0 1

0,5 2 = 1,0
del proceso

1 , 0

Figura 2.3 Para convertir un nmero decimal a binario: Se toma la parte entera (el 19, en el ejemplo) o Se divide por dos (la base del sistema al que se quiere convertir) o El resto de esa divisin (1) ser la primera cifra a la izquierda de la coma El cociente (9), se vuelve a dividir por dos El resto (1) ser la segunda cifra a la izquierda de la coma, y

Se continua el proceso hasta que el cociente sea 0. Se multiplica por dos (nuevamente, la base del sistema al que se quiere convertir). La parte entera del producto (0) ser la primera cifra a la derecha de la coma La parte fraccionaria de ese producto (0,625) se vuelve a multiplicar por dos, La parte entera (1) ser la cifra siguiente a la derecha de la coma, y Hasta que la fraccin sea cero (como en el ejemplo) O bien, hasta que tengamos un nmero suficiente de cifras fraccionarias. (En muchas ocasiones no es posible representar exactamente en binario un nmero decimal, del mismo m odo que no se puede representar exactamente el valor decimal 1/3, y nos conformamos con 0,3333). Estructura y Tecnologa de Computadores (Parte II)

La parte fraccionaria (0,3125 en el ejemplo) o

Se continua el proceso

32

Sistemas de Representacin de la Informacin

Para hacer la misma conversin por restas sucesivas se debe preparar una tabla con las sucesivas potencias de 2, desde 20 hasta 2n , siendo n tal que 2n sea mayor o igual que la parte entera del nmero a convertir. En nuestro ejemplo (Figura 2.4), bastara llegar hasta 25 aunque se ha includo un elemento ms.
20 = 1 21 =2 22 = 4 23 = 8 24
6

1 1 0 0 1 0 0

19 - 16 = 3 3 -2 =1 1 -1 =0

= 16

2 5 = 32 2 = 64

1 0 0 1 1

Figura 2.4 Confeccionada la tabla, el proceso a seguir es el siguiente: Se toma el mayor nmero que no sea superior a la parte entera, en nuestro caso el 16 (24 ), lo que nos indica que el nmero binario resultante deber tener un 1 en la posicin 4 a la izquierda de la coma. Despus se resta del nmero original el valor de la potencia seleccionada anteriormente (16) y con esta diferencia se repite el proceso. Ahora, la diferencia sera 3 (19 16) y vemos que el mayor nmero de la tabla de potencias que no es superior a 3 es el 2 (21 ). Esto nos indica que el nmero binario resultante deber tener un 1 en la posicin 1 a la izquierda de la coma. Se repite el proceso de resta anterior, (3 2) y el resultado, (1) se vuelve a comparar con los elementos de la tabla. Ahora es el primer elemento, con el valor 1 (20 ), el que resulta seleccionado lo que significa que habr un 1 en la posicin 0 a la izquierda de la coma. Se vuelve a restar este nmero y, en nuestro ejemplo, el resultado es 0. Este proceso repetitivo finaliza cuando alguna de las restas alcanza el valor 0.

El nmero binario, en su parte entera, queda formado por 1 en las posiciones seleccionadas (en nuestro caso las posiciones 4, 1 y 0 a la izquierda de la coma) y 0 en las restantes (las posiciones 2 y 3). Para la parte fraccionaria, el proceso es similar, aunque hay que tener en cuenta que, muy posiblemente, no se pueda representar en binario con un nmero finito de cifras el nmero decimal deseado. Por ello, se deber preparar una tabla de potencias con exponentes negativos de 2 cuyo nmero de elementos sea igual al nmero de cifras fraccionarias que se desea obtener (Figura 2.5).
2-1 = 0,5 2-2 = 0,25 2-3 = 0,125 2-4 = 0,0625 2-5 = 0,03125 0 1 0 1 0 , 0 1 0 1 0,3125 - 0,25 = 0,0625 0,0625 - 0,0625 = 0

Figura 2.5 El proceso, por lo dems, es similar al seguido para la parte entera:

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

33

Tomamos el mayor valor de la tabla que no sea superior a la parte fraccionaria, en nuestro caso 0,25 (o sea, 2-2 ). Esto supone que en la pos icin -2 (segunda a la derecha de la coma) debe haber un 1. Se resta este valor del inicial (0,3125 0,25 = 0,0625) y se vuelve a comparar con los elementos de la tabla. El mayor, no superior a ste 0,0625 es precisamente ese mismo valor, y corresponde a 2-4 lo que significa que habr un 1 en la posicin -4. Como el resultado de esta resta es exactamente 0, el proceso habr finalizado. Se colocar un 1 en las posiciones -2 y -4 a la derecha de la coma y un 0 en las restantes.

Obsrvese que el orden de las posiciones a la izquierda de la coma comienza en el 0, mientras que a la derecha lo hace en el -1. Como hemos dicho, es muy posible que el nmero que se desee convertir de decimal a binario, no pueda representarse en binario con un nmero finito de cifras fraccionarias. Puede verse, como ejemplo, el nmero 19,45. Este nmero, en binario sera 10011,0111001, suponiendo que se considere suficiente la precisin obtenida con siete cifras fraccionarias. De Decimal a Hexadecimal Veamos como ejemplo el nmero decimal 1998,3125. Si empleamos el mtodo de divisiones / mult iplicaciones sucesivas, el proceso es similar, aunque el nmero a emplear para las divisiones o multiplicaciones sucesivas ser el 16, base del sistema hexadecimal (Figura 2.6):
1998 16 39 124 16 78 12 7 16 14 7 0 C E 0,3125 16 = 5,0 5

7 C E , 5

16

Figura 2.6 Se toma la parte entera (1998, en el ejemplo) o Se divide por diecisis (la base del sistema al que se quiere convertir) El resto de esa divisin (14) ser la primera cifra a la izquierda de la coma (posicin 0). Naturalmente este valor catorce se debe expresar en hexadecimal, es decir, por la letra E El cociente (124), se vuelve a dividir por diecisis dando un resto de 12 (el hexadecimal C, que ocupar la posicin 1) y un cociente de 7. Ese cociente de 7, dividido nuevamente por 16, nos dar un resto de 7 (posicin 2) y un cociente de 0, en cuyo momento termina el proceso para la parte entera

Para la parte fraccionaria (0,3125 en el ejemplo) o Se multiplica por 16 (nuevamente, la base del sistema al que se quiere convertir). La parte entera del producto (5) ser la primera cifra a la derecha de la coma

Estructura y Tecnologa de Computadores (Parte II)

34

Sistemas de Representacin de la Informacin

Dado que la parte fraccionaria de ese producto es 0, ya se ha terminado el proceso de conversin. De lo contrario, se continuara multiplicando por 16 y tomando la parte entera como siguiente cifra y as sucesivamente hasta que se obtenga el nmero de cifras fraccionarias deseado.

De Binario a Hexadecimal El paso de binario a hexadecimal es extraordinariamente simple. Para ello basta dividir el nmero binario que se desea expresar en hexadecimal en grupos de cuatro cifras (cuatro bits) comenzando por la coma a izquierda y derecha de la misma. Si algn grupo, como ocurre en el ejemplo de la Figura 2.7, tiene menos de cuatro bits se rellena con ceros, hacia la izquierda para la parte entera o hacia la derecha para la parte fraccionaria, lo que no modifica el valor del nmero original. Una vez formados estos grupos de 4 bits, basta reemplazar cada uno de ellos por el valor hexadecimal que lo representa.

Se hacen grupos de 4 bits desde la coma: Ej.10011,11011

1 0011 1101 1 000 1 0011 1101 1000 1 3 D 13 , D8 16 8

Figura 2.7 El sistema hexadecimal no se utiliza realmente para realizar operaciones aritmticas. Sin embargo es extraordinariamente til y amplsimamente utilizado para representar series de bits ya sea en una pantalla o en una impresora. La representacin directa en binario resulta farragosa y su interpretacin es proclive a errores humanos. Es mucho ms cmodo escribir, por ejemplo, 8AFCB51 que no su equivalente binario 1000101011111100101101010001. La conversin en sentido contrario es igualmente inmediata: basta reemplazar cada cifra hexadecimal por los cuatro bits que, en binario, representan su valor.

Sistema Binario: Operaciones aritmticas


Las operaciones aritmticas en el sistema binario se ejecutan de forma similar a las realizadas en el sistema decimal aunque empleando nicamente los dgitos 0 y 1. Para ello se emplean las tablas de sumar o de restar del sistema binario. Suma binaria De igual forma que en el sistema decimal, aprendimos las tablas de sumar, tambin existen, y deberemos emplear, las tablas correspondientes en el sistema binario, aunque, lgicamente slo existen la tabla del 0 y la del 1. La nica situacin especial es la que se produce cuando en la suma el valor resulta superior a 1. Es similar a lo que ocurre cuando en decimal se suman dos dgitos cuya suma es superior a 9; entonces dividimos esta suma en dos dgitos y al efectuar la suma decimos me llevo una. Cuando se produce esEstructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

35

ta situacin de me llevo una, decimos, de una manera ms formal, que se produce acarreo; se genera una unidad de orden superior. En esta situacin, lo que hacemos es aadir 1 a la cifra de orden superior, lo que representamos con ese pequeo 1 sobre los sumandos originales en la Figura 2.8.

Tablas de sumar:
Tabla del 0:
0+0= 0 0+1= 1

Ejemplos:
101001 +10100 111101
1 1

(4 1) (2 0) (6 1) (4 1) (1 3) (5 4)

Tabla del 1:

1+0= 1 1 + 1 = 0 (*)

101001 +1101 110110

(*) y me llevo 1 (acarreo)

Figura 2.8 Resta binaria La resta binaria se realiza de forma anloga a la suma, aunque empleando las tablas de restar. De igual forma que en el sistema decimal el problema se plantea cuando se trata de restar de un dgito otro de mayor valor (por ejemplo, restar 8 de 5) y entonces debemos tomar prestada una unidad de orden superior para poder realizar la resta (restamos 8 de 15), en binario se presenta cuando se trata de restar 1 de 0; tambin entonces tomamos prestada una unidad de orden superior y realizamos la resta desde el valor 10 (dos), pero deberemos devolver esa unidad de orden superior que hemos tomado prestada, lo que representamos con ese -1 que aparece en la Figura 2.9.

Tablas de restar:
Tabla del 0:
00= 0 0 1 = 1 (*) (*) y me llevo -1

Ejemplos:
101001 1000 100001
-1 -1 -1

(4 1) (8) (3 3)

Tabla del 1:

10= 1 11= 0

101001 1101 011100

(4 1) (1 3) (2 8)

Figura 2.9 Multiplicacin Binaria La ltima operacin binaria que vamos a considerar es la multiplicacin. La multiplicacin en binario resulta extraordinariamente simple: el multiplicando deber multiplicarse sucesivamente por cada dg ito del multiplicador, desplazando una posicin a la izquierda cada resultado obtenido. Este resultado ser 0 cuando el dgito correspondiente del multiplicador sea 0 (multiplicar por cero es cero en cualquier sistema de numeracin) o ser igual al multiplicando cuando la cifra correspondiente en el multiplicador sea 1 (multiplicar por uno no cambia el multiplicador, en cualquier sistema de numeracin). Veamos un ejemplo (Figura 2.10): Estructura y Tecnologa de Computadores (Parte II)

36

Sistemas de Representacin de la Informacin

Multiplicar 10011 101:


Multiplicando: 10011 Multiplicador: 101 10011 00000 10011 Resultado: 1011111

Multiplicar por 1 (igual al multiplicando) Multiplicar por 0 y desplazar a la izquierda Multiplicar por 1 (igual al multiplicando) y desplazar a la izquierda Sumar en binario

Figura 2.10

Representaciones Binarias
La representacin de nmeros en binario sera perfecta para el ordenador si no hubiese que emplear nada ms que ceros y unos ya que el ordenador slo puede emplear estos smbolos para representar cualquier informacin. Pero, en realidad hay que emplear el signo menos para representar nmeros negativos, la coma para separar parte entera y fraccionaria. Y sto, refirindonos, de momento, slo a informacin numrica en binario, sin entrar, en cmo representar informacin numrica decimal, alfabtica o de otro tipo. Por ejemplo, cmo almacenar en el ordenador el nmero binario 010011,1101? Para solucionar este problema recurrimos a lo que se conoce como representaciones binarias que no es sino un conjunto de normas que permiten representar empleando slo ceros y unos cualquier magnitud numrica (binaria, decimal, positiva, negativa, entera, fraccionaria...), alfabtica o incluso de cualquier otro tipo. Limitndonos, por el momento, a las representaciones numricas para valores binarios, tenemos ciertas convenciones (Figura 2.11):

La coma decimal se omite: (los nmeros se alinean y alguien debe saber dnde est la coma) Todos los nmeros son enteros Los valores enteros se representan en
Mdulo y signo (MS) Complemento a 1 (C-1) Complemento a 2 (C-2) Exceso a 2 elevado a N-1 Hay una limitacin en el nmero de bits

Figura 2.11 En primer lugar, la coma que separa la parte entera y la fraccionaria se omite por completo. Para que todo funcione correctamente, es preciso alinear previamente los diferentes nmeros de acuerdo con la posicin de la coma y, a partir de entonces, considerar todos los nmeros como enteros. Esta alineacin de los nmeros es responsabilidad del programa aunque, evidentemente, ser una funcin hecha de forma automtica por el compilador, de la que el programador no deber preocuparse. El programa sabr dnde est la coma, o lo que es lo mismo, cuantas cifras de la representacin corresponden a la parte entera y cuntas a la fraccionaria.

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

37

Una vez superado el problema de la coma, todos los nmeros son enteros y slo nos queda cmo representar nmeros positivos o negativos, sin emplear para ello el signo menos. Para sto hay, al menos, cuatro alternativas. Las cuatro formas de representacin binaria llevan, en la prctica, una limitacin. Todas ellas tienen un nmero prefijado de bits. En un determinado lenguaje habr representaciones, por ejemplo, con 32 bits o con 16, y en otro las podr haber con 64, 32 o 16 bits, etc. As, en el primer lenguaje no se podrn representar, con estas representaciones binarias, nmeros que requieran ms de 32 bits, ni en el segundo lenguaje nmeros que requieran ms de 64 bits. Caractersticas de una Representacin Numrica Binaria Sea cual sea la representacin numrica utilizada, hay dos caractersticas principales ligadas a ellas. Por una parte, el rango de esa representacin. Como hemos dicho anteriormente, cualquier representacin tiene limitado el nmero de bits a utilizar; ste podr ser mayor o menor segn los casos, pero siempre tendr un lmite. Este lmite limita, a su vez, el mayor nmero posible a representar. Como cualquier representacin numrica debe ser capaz de representar nmeros negativos, tambin el nmero ms pequeo que se puede representar tiene un lmite (entendiendo por ms pequeo el nmero negativo de mayor va lor absoluto). El rango de una representacin numrica define, pues, el conjunto de nmeros representables. Este rango puede ser simtrico o asimtrico , segn que el valor absoluto del mayor nmero positivo y del menor nmero negativo sean iguales o diferentes. Por ejemplo, si el rango de una representacin vara entre el +32767 y el 32767, diremos que el rango es simtrico, mientras que el de otra que vare entre el +32768 y el 32767 ser asimtrico. Por otra parte, tiene su inters la forma de representar el valor cero. Hay representaciones que nic amente permiten una representacin para este valor, mientras que otras permiten ms de una. Representacin en Mdulo y Signo (MS) La forma de representacin numrica binaria ms sencilla es la conocida como representacin en Mdulo y Signo (MS). Con esta representacin, dado siempre un nmero determinado y fijo de bits para representar un valor, se reserva el primer bit para indicar el signo del nmero y el resto para representar su valor absoluto (Figura 2.12).

El primer bit representa el signo:


0 signo positivo 1 signo negativo

El resto representa el mdulo (su valor absoluto en binario) Ejemplo: +12 y 12 en MS con 8 bits
Mdulo: 1100 + 12 = 0 0 0 0 1 1 0 0 12 = 1 0 0 0 1 1 0 0
Signo Mdulo

Figura 2.12 Su rango es simtrico y vara entre los mrgenes siguientes:

Estructura y Tecnologa de Computadores (Parte II)

38

Sistemas de Representacin de la Informacin

siendo N, el nmero de bits empleado en la representacin, incluido el bit de signo. Segn el nmero de bits empleado en la representacin, el rango vara entre los valores que se indican a continuacin: con 8 bits: con 16 bits: con 24 bits: 127 y +127 32767 y +32767 8388607 y + 8388607

La representacin del valor cero es doble, ya que, dado su valor absoluto (tantos ceros como bits tenga la representacin menos uno), se le puede anteponer como bit de signo tanto el 0 (positivo) como el 1 (negativo). As, empleando por ejemplo 16 bits, su representacin sera 000000000000000 o bien, 100000000000000 Esta representacin podra servir para almacenar nmeros, positivos o negativos, en un ordenador, pero, como ms adelante se ver, resulta muy poco til para realizar operaciones aritmticas con ellos. Representacin en Complemento a 1 (C1) La representacin en Complemento a 1 (C-1) es otra forma de representar, y de almacenar, en un ordenador nmeros enteros. En esta representacin, tambin se reserva el primer bit para indicar el signo del valor a representar. Los nmeros positivos se representan exactamente igual que en la representacin con Mdulo y Signo. Los nmeros negativos, sin embargo, se representan complementando el nmero positivo de igual valor absoluto. Para obtener su representacin basta con cambiar todos los bits 0 por 1 y viceversa, incluyendo el bit de signo (Figura 2.13).

Complemento a 1 (C-1)
Los nmeros positivos se representan igual que en Mdulo y Signo Los nmeros negativos se representan complementando el nmero positivo de igual mdulo (cambiar 0s por 1s y viceversa) Ejemplo: +12 y 12 en C-1 (con 8 bits)
Mdulo: 1100 + 12 = 0 0 0 0 1 1 0 0 12 = 1 1 1 1 0 0 1 1

Figura 2.13 As, la representacin del valor +67 en C-1, empleando 8 bits, ser: 01000011, y para el valor -67, deberemos cambiar todos los 0 por 1 y viceversa, con lo que su representacin ser: 10111100. Puede verse que tambin en C-1 los nmeros positivos comienzan por 0 y los negativos por 1. Para conocer el valor de un nmero negativo en esta representacin, nmero que comenzar necesariamente por 1, bastar complementarlo, con lo que se tiene la representacin de ese mismo nmero, pero positivo, y con ello su valor absoluto. As, para conocer el valor del nmero 10011001, negativo

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

39

por comenzar por 1, complementaremos esa representacin, resultando 01100110 cuyo valor, posit ivo, es 102, por lo que el valor del nmero anterior (10011001) ser 102. El rango de esta representacin es el mismo que en la representacin MS y tambin la representacin del cero es doble: empleando 8 bits, tanto 00000000 como 11111111 son representaciones vlidas para este valor. Tampoco esta forma de representacin es empleada para la realizacin de operaciones aritmticas. Representacin en Complemento a 2 (C2) La representacin en C-2 es la ms empleada para realizar operaciones aritmticas con nmeros binarios en un ordenador. En ella, los valores positivos se representan igual que en MS (o, lo que es lo mismo, igual que en C-1), mientras que los valores negativos se representan obteniendo el Complemento a dos (C-2) de la representacin del nmero positivo de igual valor absoluto. Para obtener este complemento a dos, basta 1.- Obtener el complemento a 1 (cambiar 0 por 1 y viceversa) y a continuacin, 2.- Sumar 1 al nmero resultante despreciando el acarreo en la suma, si lo hubiera. Por ejemplo, para representar el valor 67 en C2 , partiremos de la representacin de su valor posit ivo + 67, por ejemplo, con 8 bits: + 67 01000011 obtenemos su C1, cambiando 0 por 1 y viceversa C1 10111100 y a este C1, le sumamos 1 + 10111100 1 10111101 (no se ha producido acarreo) La representacin del valor 67 en C2 resulta ser, pues: 10111101. Si el valor a representa fuera 12, tambin con 8 bits, tendramos: + 12 00001100 obtenemos su C1, cambiando 0 por 1 y viceversa C1 11110011 a este C1, le sumamos 1 + 11110011 1 11110100 La representacin del valor 12 en C2 resulta ser, pues: 11110100. Para conocer el valor de un nmero negativo representado en C-2 debe obtenerse su complemento a dos, (cambiar 0 por 1 y viceversa y sumar 1 al resultado anterior). En este caso no se produce nunca acarreo. Veamos un ejemplo, suponiendo la representacin, con 8 bits, 10011110.

Estructura y Tecnologa de Computadores (Parte II)

40

Sistemas de Representacin de la Informacin

Su C-1 ser 01100001 y sumando 1 a este valor obtendremos 01100010, que es el complemento a dos del nmero original y que representa el valor 98 , por lo que el valor del nmero de partida representado en C-2 (10011110) no es otro que 98. Otro procedimiento consiste en calcular el valor decimal del nmero dado, considerado como binario e incluyendo en el clculo de su valor el bit de signo (en nuestro ejemplo sera 158) y restar de este valor 2N siendo N el nmero de dg itos de la representacin (en nuestro caso, N = 8 y 28 = 256). As el valor del nmero sera 158 256 = 98. El rango de esta representacin vara de acuerdo con la siguiente expresin:

2 N 1 X 2N 1 1
a la que, segn el nmero de bits empleados, corresponden los valores: con 8 bits: con 16 bits: con 24 bits: 128 y +127 32768 y +32767 8388608 y + 8388607

Obsrvese que el rango, en esta representacin de C-2 es asimtrico. Sin embargo la representacin del cero es nica: 00000000. La asimetra en el rango de una representacin no representa ningn problema en la prctica, mientras que la representacin nica del valor cero es muy conveniente. NO DEBEMOS OLVIDAR QUE LOS NMEROS POSITIVOS SE REPRESENTAN EXACTAMENTE IGUAL EN -MS C-1 C-2 Suma en Complemento a 2 La representacin en C2 es la ms empleada en la prctica para realizar operaciones aritmticas. Para efectuar una suma, tanto con nmeros positivos como negativos, nos limitaremos a sumar en binario las representaciones en C2 de ambos nmeros, despreciando el acarreo si lo hubiera. Ahora bien, puede ocurrir que el resultado obtenido no sea correcto. La representacin de ambos sumandos debe tener necesariamente el mismo nmero de bits y tambin el resultado. Sin embargo, es posible que el valor de la suma est fuera del rango correspondiente a ese nmero de bits. Por ejemplo, si se pretende sumar los valores 57 y 102, ambos positivos, empleando una representacin de 8 bits, el resultado debera ser 159, valor que cae fuera del rango de la representacin con los 8 bits supuestos. Esto es algo inevitable; podra emplearse una representacin con 16 bits, pero lo nico que conseguiramos sera elevar el listn donde se presentara el problema. En un ordenador, de hecho, el problema se presenta y lo nico que el ordenador puede hacer es avisar al programador de que se ha producido un resultado incorrecto para que ste tome las medidas que considere oportunas. Este fenmeno se conoce como desbordamiento (overflow, en ingls). Pero, cmo se puede detectar que se produce desbordamiento en una suma? La regla es muy sencilla:

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

41

Si los dos sumandos tienen igual signo, el signo del resultado debe ser tambin el mismo, de lo contrario se produce desbordamiento y el resultado obtenido no es el correcto. Cuando los sumandos tienen signos diferentes, el resultado siempre es correcto. Sumar 00110011 y 01000111 (Figura 2.14, lado izquierdo) El resultado es 01111010. Como el signo de los dos sumandos es el mismo (positivo) y tambin el resultado tiene este mismo signo, el resultado es correcto. Puede observarse que el valor de los sumandos es 51 y 71, mientras que el valor de la suma es 122, evidentemente correcto y dentro del rango de la representacin.

Veamos algunos ejemplos, por sencillez, siempre con 8 bits:

Sumar 00110011 y 01100000 (Figura 2.14, lado derecho) El resultado es 10010011. El signo del resultado es diferente al de los sumandos, lo que indica que se ha producido desbordamiento y que este resultado no es correcto. Qu ha ocurrido? Muy sencillo, el valor de los sumandos, ambos positivos, es 51 y 96; la suma debera ser 147, pero este valor cae fuera del rango de la representacin con 8 bits. Por otra parte, se puede ver cmo el resulta do obtenido es un nmero negativo (por comenzar por 1), con lo que es evidente que no puede ser correcto.

Si se hubiese efectuado esta misma suma con 16 bits, el resultado s habra sido correcto; cabra en el rango de esa representacin.
(+51) + (+71) + 51 + 71 + 122 Nmeros con el mismo signo 111 = 00110011 + 51 = 01000111 011 11010 (+51) + (+96) 11 = 00110011

+ 96 = 01100000 + 147 1 0010 011 Signo cambia

Signo no cambia

Correcto

Error

Figura 2.14 Sumar 10001111 y 11111101 El resultado, despreciando el acarreo, es 10001100 , el signo es el mismo que el de los dos operandos (todos son negativos, al comenzar por) y, por tanto el resultado es correcto. De hecho, se trata de los valores 113 y 3, cuya suma ( 116) cae dentro del rango. Veamos ahora algn ejemplo con nmeros de distinto signo. Sumar 11001101 y 01000111 (Figura 2.15, lado izquierdo) El resultado de la suma es, despreciando el acarreo como indican las reglas de la s uma, 00010100. Como los dos nmeros a sumar tienen signo diferente, el resultado es correcto sin tener que atender a ninguna otra consideracin. El valor de los sumandos expresado en decimal es, respectivamente, 51 y + 71 , siendo + 20 el valor del resultado obtenido, que coincide, naturalmente, con el valor de la suma . Estructura y Tecnologa de Computadores (Parte II)

42

Sistemas de Representacin de la Informacin

Sumar 00110011 y 10100000 (Figura 2.15, lado derecho) Ahora el resultado de la suma es 11010011. En este caso no se ha producido acarreo. La operacin, en decimal, sumara los nmeros + 51 y 96 cuyo resultado ( 45) coincide con el obtenido.

En resumen, cuando ambos nmeros tienen signo contrario, el resultado es siempre correcto. Puede producirse acarreo (en cuyo caso se desprecia) o no y el resultado puede ser tanto positivo como negativo.
(51) + (+71)
Se desprecia

Nmeros con signo distinto + 51 96 45

(+51) + (96) 1 = 00110011 = 10100000 11 0100 11

51 + 71 + 20

1 1 1 1 11 = 11001101 = 01000111 00 0101 00

Correcto
Figura 2.15 Resta en Complemento a 2 Analicemos ahora la resta en C2.

Correcto

Para realizar la resta de dos nmeros cualesquiera expresados en C2, Deber hallarse el C2 del sustraendo, y a continuacin Se sumar este nmero con el minuendo sin modificacin alguna y empleando las reglas de la suma antes descritas.

En realidad, lo que estamos haciendo en el primer paso es no es sino cambiar de signo el sustraendo, con lo que sumndolo al minuendo, evidentemente, obtendremos el valor de la resta deseada. Veamos ahora algn ejemplo. Efectuar la resta 01000111 00110011 (Figura 2.16)
(+71) (+51) + 51 = 00110011 11001100 +1 11001101 = 01000111 00010100 Se toma el sustraendo Se cambian 0s por 1s Se suma 1 Se tiene el C-2 Se toma el minuendo Se suma normalmente

51 + 71 + 20

Signos diferentes, resultado correcto

Figura 2.16 De acuerdo con las reglas, deberemos:

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

43

3.- Calcular el C2 del sustraendo (00110011): tras intercambiar 0 por 1 y sumar 1, este C-2 resulta ser 11001101. 4.- Sumar este nmero con el minuendo (01000111). El resultado de esta suma es 00010100. El acarreo producido en esta suma debe despreciarse. El resultado obtenido es correcto, puesto que los nmeros que se suman son de diferente signo. De hecho, expresando en decimal los valores de esta operacin, estamos restando 71 51 , cuyo resultado es 20, que coincide con el obtenido. Efectuar la resta 10100111 00110011 De acuerdo con las reglas, deberemos: 5.- Calcular el C2 del sustraendo. El mismo que en el primer caso: 11001101. 6.- Sumar este nmero con el minuendo (10100111). El resultado de esta suma, despreciando el acarreo, es 01110100. El resultado obtenido es incorrecto, puesto que los nmeros que se suman tienen igual signo, mientras que el resultado tiene signo diferente. Obsrvese que al aplicar las reglas de la suma debemos atender a los nmeros de esta suma y no a los de la resta inicial. En este caso, se pretende realizar la resta 89 51, cuyo resultado es 140 , valor que no coincide con el obtenido. La razn es clara: el valor 140 no cabe, es decir, cae fuera del rango de la representacin en C2 con 8 bits. Con las reglas mencionadas para efectuar la suma o la resta de valores expresados en C2 podemos llegar a una conclusin muy interesante: Para efectuar cualquier suma o resta en C2, slo necesitamos realizar sumas binarias. La consecuencia es muy importante, como veremos en temas posteriores, pues necesitaremos un nico tipo de circuito: el sumador, en lugar de precisar sumadores y restadores. (Desde luego, tambin se deber complementar el sustraendo antes de sumarlo al minuendo, pero, como veremos, sto resulta extremadamente simple). Representacin en Exceso a 2n-1 Con la representacin Exceso a 2n-1 , se representa en binario puro, sin signo, no el valor binario deseado sino este valor incrementado en 2n-1 , donde n es el nmero de bits empleado en la representacin (Figura 2.17).

No emplea bit de signo Es la representacin binaria del valor decimal ms 2N-1 (N = n de dgitos empleados) Ejemplo: +12 y -12 en exceso 2 N-1 (8 bits)
2 N-1 = 28-1 = = 2 = 128
7

+ 12 + 128 = 140 = 1 0 0 0 1 1 0 0 12 + 128 = 116 = 0 1 1 1 0 1 0 0

Figura 2.17

Estructura y Tecnologa de Computadores (Parte II)

44

Sistemas de Representacin de la Informacin

As, para representar el valor doce (con 8 bits) se suma a esta cantidad el valor 2n-1 = 28-1 = 128 y el resultado (140) se representa en binario puro, sin signo obtenindose 10001100. Si, desesemos representar el valor 12 , tras sumarle 128 el valor a representar en binario sera el 116 , que en binario puro es 01110100. Obsrvese que en este caso un 0 al comienzo del nmero no significa que ste sea positivo, ni un 1 significa que sea negativo. De hecho, ocurre exactamente lo contrario (con la excepcin del valor cero, que no puede considerarse ni positivo ni negativo y que se representa como 10000000). Adems, a diferencia de las representaciones analizadas anteriormente, ahora el primer bit interviene en el clculo del valor del nmero representado. Como veremos ms adelante en este mismo tema, esta representacin forma parte de la representacin en coma flotante empleada para el tratamiento de cantidades con valores absolutos muy grandes o muy pequeos, utilizadas generalmente en clculos de naturaleza tcnica o cientfica. El rango de esta representacin es el mismo que el de la representacin en C2 y, por tanto, asimtrico. as variar de acuerdo con la expresin siguiente:

2 N 1 X 2N 1 1
a la que, segn el nmero de bits empleados, corresponden los valores: con 8 bits: con 16 bits: con 24 bits: 128 y +127 32.768 y +32.767 8.388.608 y + 8.388.607

La representacin del cero es nica: (0 + 128) = 10000000.

Representaciones Decimales
Con las representaciones anteriores se almacenan valores en forma binaria. Sin embargo, en la vida real la representacin habitual es la decimal. Por ello cualquier ordenador dispone de alguna forma de representacin ligada de forma ms directa al sistema decimal. En todas ellas, cada dgito de un nmero decimal se representa, de alguna forma, por un conjunto de cuatro bits de manera que, sin realizar ningn clculo aritmtico se puede conocer el valor decimal correspondiente. Las principales representaciones decimales son las siguientes: Cdigos BCD (Binary Coded Decimal, o Decimal Codificado en Binario) BCD natural BCD Aiken BCD exceso tres

Decimal Desempaquetado Decimal Empaquetado

Seguidamente analizaremos estas formas de representacin, prescindiendo de BCD Aiken y BCD exceso tres, por su escasa utilizacin en la actualidad.

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

45

Representacin decimal en BCD Natural Para representar en binario los valores decimales 0 a 9, basta emplear cuatro bits: desde 0000 hasta 1001. En el cdigo BCD natural, se asigna a cada dgito decimal la combinacin de cuatro bits cuyo valor en binario coincide con el dgito correspondiente (Figura 2.18).

Cada dgito decimal (0 a 9) se codifica en 4 bits por su valor binario


Decimal 0 1 2 3 4 BCD natural 0000 0001 0010 0011 0100 Decimal 5 6 7 8 9 BCD natural 0101 0110 0111 1000 1001

Figura 2.18 As, en lugar del dgito 5, se representar el valor cinco en binario 1001 y en lugar del dgito 3 el valor binario 0011. Siempre se emplean cuatro bits por cada dgito. Si el nmero decimal a representar tiene ms dgitos, simplemente se usan ms grupos de cuatro bits: un grupo por cada dgito (Figura 2.19). De todas formas, en un ordenador, en el caso de la representacin BCD tambin queda fijo el nmero de bits a emplear (evidentemente mltiplo de cuatro y, generalmente mltiplo de ocho).

BCD natural
1 5 0001 0101 3 2 0011 0010 9 7 1001 0111

Binario
0000 1111 0010 0000 0110 0001

15 32 97

Figura 2.19 Obsrvese en la figura cmo esta representacin es diferente de cualquiera anterior. As el valor quince que en binario (con 8 bits) se representara como 00001111 , en BCD natural se representa como 00010101 (los cuatro primeros bits son la representacin binaria del primer dgito 1 , y los cuatro siguientes la del segundo dgito 5). Suma en BCD La suma de dos nmeros expresados en BCD natural se efecta de forma similar a la de dos nmeros decimales, es decir dgito a dgito. Pero, al sumar en binario dos nmeros cuyo valor vara entre 0 y 9, pueden presentarse tres situaciones diferentes (Figura 2.20): La suma no es superior a 9. Entonces el resultado obtenido es correcto y al efectuar la suma binaria no se ha producido acarreo. Es el primer caso del ejemplo de la figura: se suman los dgitos 5 y 3, resultado 8. La suma es superior a 9 pero no mayor que 15 . En ese caso, en decimal se produce acarreo (me llevo 1 al dgito decimal siguiente). Sin embargo, en binario no se produce acarreo, aunEstructura y Tecnologa de Computadores (Parte II)

46

Sistemas de Representacin de la Informacin

que, si analizamos la combinacin de cuatro bits obtenida (desde 1010 a 1111), observamos que no corresponde a ningn valor decimal, es decir, no es una combinacin vlida en BCD. Se trata del segundo caso de la figura: se suman los dgitos 5 y 7, su suma en decimal es 12, pero la combinacin binaria obtenida es 1100 que no corresponde a ningn valor BCD correcto. Sin embargo, si a esta combinacin se le suma el valor seis (0110) el resultado nos da un acarreo hacia el dgito superior, que se debe tener en consideracin, y, adems una combinacin BCD vlida (0010) y que se corresponde con la del resultado deseado. La suma est comprendida entre 16 y 18 . En ese caso, en decimal se produce acarreo. Se trata del ltimo caso de la figura (9 + 7). En binario, tambin hay acarreo y ste se debe tomar en cuenta. Aunque si analizamos la combinacin obtenida (0000) vemos que no es la deseada. Sin embargo, sumando seis tambin a esta combinacin, el resultado (0110) resulta ser el correcto para este dgito.

Se suma en binario dgito a dgito La suma puede producir


1.- Combinacin vlida sin acarreo Resultado correcto tal cual 2.- Combinacin no vlida Sumar 6 al resultado 3.- Combinacin con acarreo Sumar 6 al resultado
0101 +0011 1000 0101 +0111 1100 1001 +0111 1 0000

Figura 2.20 Resumiendo, Se suman los dos nmeros en binario de derecha a izquierda y dgito a dgito. Si la combinacin obtenida es vlida en BCD y no se produce acarreo, el resultado es correcto tal cual. Si la combinacin obtenida no es vlida en BCD, o bien al sumar los dos dgitos en binario se produce un acarreo, deber sumarse seis al resultado. El acarreo producido, en cualquier caso, debe tomarse en consideracin.

En la (Figura 2.21) vemos dos ejemplos de suma en BCD.


8633 + 1263 9896 2933 + 1829 1000 0110 0011 0011 0001 0010 0110 0011 1001 1000 1001 0110
1 1 Combinaciones vlidas

0010 0001 0100 0100

1001 1000 0001 0110 0111

0011 0010 0110 0110

0011 1001 1100 0110 0010

Combinacin invlida

Acarreo

4762

Sumar 6

Figura 2.21

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

47

En el primer caso (8.633 + 1.263), las combinaciones obtenidas al sumar dgito a dgito son todas correctas y en ninguna de las sumas se produce acarreo. Por tanto, el resultado obtenido es correcto tal cual. En el segundo caso (2.933 + 1.829), sin embargo nos encontramos con que La primera combinacin obtenida (1100) no es vlida. Debemos sumar 6 , lo que nos produce una combinacin correcta (0010) que nos da el primer dgito BCD de la suma (2) y adems un acarreo que deberemos incluir en la siguiente suma. La segunda suma (incluido el acarreo anterior) da una combinacin vlida (0110) y no se produce acarreo. Tenemos ya el segundo dgito (6). La tercera suma da una combinacin vlida (0001) pero produce acarreo. Este lo tomamos en consideracin y, adems, sumamos 6 a esta combinacin. Obtenemos as el tercer dgito (0111). El tercer dgito, por tanto, ser 7. La ltima suma (incluido el acarreo anterior) nos da una combinacin vlida (0100) y no hay acarreo, por lo que nos proporciona directamente el ltimo dgito de la suma (4).

Representacin en Decimal Desempaquetado La representacin en BCD natural no incluye signo. Este problema queda resuelto por las dos representaciones basadas en BCD natural que vamos a incluir ahora. Tenemos, en primer lugar, la representacin en Decimal Desempaquetado (Figura 2.22). En ella, cada dgito decimal ocupa un byte (es decir ocho bits). Los cuatro bits de la derecha de cada byte se corresponden directamente con su representacin en BCD natural, mientras que los cuatro restantes tienen siempre el valor 1111 excepto en el primer byte. En ste tendrn el valor 1100 si el nmero a representar es positivo y el valor 1101 si el nmero es negativo.
Es un cdigo basado en BCD natural Cada dgito se almacena en un byte
El medio byte derecho almacena el dgito El medio byte izquierdo se rellena con 1s,

excepto en el ltimo byte, que tiene el signo Ejemplos: + 1998 1111 0001 1111 1001 1111 1001 1100 1000 1998 1111 0001 1111 1001 1111 1001 1101 1000

Figura 2.22 La principal ventaja de esta representacin consiste en que emplea un byte para cada dgito decimal a representar, lo que facilita mucho el proceso de impresin o de presentacin en pantalla de cantidades decimales. Sin embargo, la representacin en Decimal Desempaquetado tiene el inconveniente de tener muchos bits innecesarios. La mitad izquierda de cada byte es intil (con excepcin de la del primer byte que nos indica el signo), lo que supone una mayor cantidad de almacenamiento necesaria, con su correspondiente coste. Por otra parte, para efectuar operaciones aritmticas con estas cantidades hay que realizar unas operaciones previas de limpieza de esta informacin innecesaria, lo que complica su realizacin.

Estructura y Tecnologa de Computadores (Parte II)

48

Sistemas de Representacin de la Informacin

Representacin en Decimal Empaquetado La representacin en Decimal Empaquetado, resuelve estos dos problemas. Permite trabajar directamente con cantidades en decimal (sin necesidad de pasarlas a binario) y no emplea ms almacenamie nto del necesario. La solucin es evidente: se eliminan los grupos de cuatro bits innecesarios (la parte izquierda de cada byte, excepto el primero), empaquetando (de ah su nombre) dos dgitos decimales en cada byte. El signo, que evidentemente es necesario, se deja en el primer byte, aunque ocupando la mitad derecha (Figura 2.23).

Es un cdigo basado en BCD natural Cada byte almacena dos dgitos


excepto el ltimo byte, que tiene el signo (a la derecha) y un dgito 1998 Des. 1111 0001 1111 1001 1111 1001 1100 1000 1998 Emp. 0000 0000 0000 0001 1001 1001 1000 1100 1998 Des. 1111 0001 1111 1001 1111 1001 1101 1000 1998 Em. 0000 0000 0000 0001 1001 1001 1000 1101

Figura 2.23

Representacin Hexadecimal
Hemos comentado anteriormente que la representacin hexadecimal tiene como ventaja fundamental y como razn de su amplia utilizacin la sencillez y comodidad. Todos hemos podido ver trabajando con Windows cmo, en caso de ciertos fallos del programa, el sistema nos ofrece (si lo deseamos) unos detalles donde nos da cierta informacin sobre el contenido de alguna zona de la memoria. Pues bien, si nos fijamos en cmo se presenta esa informacin, vemos que aparecen cifras y letras, pero casualmente entre stas slo incluyen las comprendidas entre la A y la F. De qu se trata? Simplemente, de informacin en hexadecimal. No hay duda de que, si la informacin a representar en pantalla (o a imprimir) es, por ejemplo, el valor 1998 almacenado en decimal desempaquetado es mucho ms cmodo y ms legible representar F1F9F9C8 en lugar de 11110001111110011111100111001010 ... y no digamos, si esta informacin debe compartirse oralmente con otro interlocutor (algo, por cierto, relativamente frecuente durante los procesos de desarrollo y puesta a punto de aplicaciones): menci onar la sucesin de 32 ceros y unos sin error en origen o en destino es realmente complicado. Por cierto, en la cadena anterior hay un error, en esta ocasin intenci o nado, que se invita al lector a descubrir.

Representacin en Coma Flotante


Las representaciones binarias o BCD son adecuadas, en general, para trabajos de tipo administrativo o de gestin, pero en otro tipo de trabajos su empleo no es satisfactorio, pues la precisin y el rango de estas formas de representacin son relativamente pequeos, aun empleando bastantes bits. Por ejemplo, con representaciones binarias, empleando 32 bits y teniendo en cuenta el bit de signo, puede llegarse slo hasta 2.147.483.647 euros. Esta cantidad puede parecer suficiente para manejar, por Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

49

ejemplo, el saldo de una cuenta corriente (no para los Presupuestos del Estado) aunque si recordamos que, segn se indic en la Figura 2.11 de la pgina 36, en las representaciones numricas no se incluyen las cifras fraccionarias, vemos que, en ese mismo ejemplo, el saldo mximo (utilizando como es lgico dos cifras decimales) no podra ser superior a 214.748.836,47, cantidad que, en ciertos casos, puede resultar insuficiente. La solucin evidente consiste en emplear un mayor nmero de bits. Con 64 bits, podramos alcanzar hasta 92.233.720.368.547.758,08 pueden manejarse cantidades de hasta 19 dgitos decimales. (Obsrvese, no obstante, que, como hemos mencionado anteriormente, en este nmero de cifras debe incluirse tanto las cifras enteras como las fraccionarias). Pero, en los clculos cientficos, la situacin es muy diferente. Frecuentemente se debe trabajar con nmeros mucho mayores que los permitidos con representaciones binarias o mucho ms pequeos, e incluso, con ambos tipos de nmeros a la vez. Por ejemplo, la masa de la Tierra, expresada en gramos es 5.980.000.000.000.000.000.000.000.000, y la de un protn es 0,000000000000000000000001672623 Cmo representamos estos valores? En este caso, el rango de las representaciones binarias es insuficiente. La solucin empleada por los cientficos es poner estas cantidades en forma de potencia de 10: 5.980.000.000.000.000.000.000.000.000 = 5,98 1027 0,000000000000000000000001672623 = 1,672623 1024 Por otra parte, tambin es relativamente frecuente el caso de operaciones aritmticas en las que se deben restar dos nmeros muy prximos y el resultado multiplicarlo por un valor muy alto. Si el nmero de cifras con que se trabaja no es suficiente, el resultado final puede ser altamente inexacto. Veamos un ejemplo (por mayor sencillez con valores expresados en decimal) Supongamos que se deseara efectuar la siguiente operacin: (456,3454553491 - 456,3454553089) 500.000.000 cuyo resultado exacto es 20,1 pero que nicamente se pudiera trabajar con un mximo de 10 dgitos. El ordenador debera truncar ambos nmeros a un total de 10 cifras y la operacin quedara como (456,3454553 - 456,3454553) 500.000.000 cuyo resultado es 0. El error, evidentemente, es enorme. En este segundo ejemplo, el problema de una representacin binaria estara en la precisin con la que se puede representar un valor determinado. Una forma ms adecuada de representar nmeros muy grandes, o muy pequeos, es hacerlo en forma de potencia. En la vida real, en potencias de 10. Esta forma de representacin se conoce como representacin en Coma Flotante (Figura 2.24). Los elementos que forman una representacin en Coma Flotante son: Mantisa : el primer valor que aparece en la expresin. Base: la del sistema elegido (en la vida real, base 10) Caracterstica: el exponente al que se debe elevar la base

Estructura y Tecnologa de Computadores (Parte II)

50

Sistemas de Representacin de la Informacin

La representacin cientfica, basada en potencias, generalmente de 10 N = mantisa base


27 caracterstica

Mltiples representaciones 5,98 10 = 598 10 = 0,598 10


25 28 -23

1,67 10

-24

= 16,7 10 = 0,167 10
-25

Representacin normalizada

Figura 2.24 Para representar el valor de una magnitud cualquiera en Coma Flotante habra que almacenar los val ores de la mantisa, de la base y de la caracterstica. Un problema que surge a la hora de utilizar la representacin en Coma Flotante es el de la multiplic idad de representaciones. Cualquiera de los valores indicados en la figura anterior son matemticamente correctos, pero las comas no se llevan bien con las representaciones numricas. Cmo indicamos dnde est la coma? Simplemente, fijando siempre una misma posicin. Se podra haber elegido cualquiera, pero se ha decidido optar por aquella en la que la parte entera sea un cero y la fraccionaria comience necesariamente por una cifra distinta de cero. Esta representacin se conoce como Representacin Normalizada. Una vez decidida cul es la representacin normalizada, para almacenarla no son necesarios ni el cero inicial ni la coma, puesto que ya se sabe que el nmero que describe la mantisa debe comenzar por estos caracteres. Tampoco es necesario almacenar la base, pues, dada una representacin, se conoce cul es su base. (En los ejemplos anteriores la base sera 10, aunque en los ordenadores no se emplee esa base). Por tanto, para representar un valor en coma flotante nos bastar almacenar: La mantisa (sin el cero inicial ni la coma) La caracterstica El signo (aunque hasta ahora no lo habamos mencionado, lgicamente deberemos para poder manejar magnitudes positivas y negativas). inc luirlo

Una vez vistos los elementos que deben almacenarse en la representacin en Coma Flotante, hay que elegir cmo representar cada uno de ellos. Para homogeneizar la forma de representacin por los diferentes fabricantes surgen las Organismos de Normalizacin, en este caso el IEEE (Institute of Electrical and Electronic Engineering) , El signo, parece lgico que se represente por un nico bit (0 positivo y 1 negativo) y as lo determina el IEEE. La caracterstica (el exponente) podra representarse con cualquiera de las representaciones binarias que hemos visto. El IEEE la normaliza en forma de Exceso a 2N-1 -1 , siendo N el nmero de bits reservados para la caracterstica. Por ltimo, la mantisa se representa en binario pero comenzando siempre por 1. (Esta forma permite, al menos, un bit ms de precisin).

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

51

Como base se emplea, evidentemente, el 2, aunque, como ya se mencion, no se incluye de forma explcita en la representacin.
Caracterstica (exponente): en exceso a 2N-1-1 Mantisa: normalizada en binario como 1,--- Signo: el bit de la izquierda Con un nmero determinado de bits
N Signo 1 Caracterstica N1 Mantisa N2

Estos tres elementos se almacenan en el orden que se indica en la Figura 2.25.

Figura 2.25 Dos son las formas de representacin en Coma Flotante que estn reguladas por Organismos de Normalizacin y que, por tanto, son empleadas por cualquier fabricante de ordenadores. Ambas estn recogidas en la norma IEEE754. El contenido de cada una de estas formas de representacin con 32 o con 64 bits se indica en la Figura 2.26. El que estas dos formas estn normalizadas facilita que se puedan intercambiar programas entre distintos suministradores, mientras se ajusten a estas normas. De todas formas, no es raro encontrar formas adicionales. Por ejemplo, en los grandes ordenadores de IBM existe, adems de las formas normalizadas, la llamada precisin ampliada en la que cada nmero ocupa un total de 128 bits. En cualquiera de los casos la base, no incluida en la representacin, es el 2.

Precisin Simple (32 bits):


32

S
1

C
8

M
23

Precisin Doble (64 bits):


64

S
1

C
11

M
52

Figura 2.26 Representacin del Cero Segn las normas de la representacin normalizada que hemos comentado, el valor cero no podra representarse. La expresin numrica del cero sera 0,00000 20 . El nmero de ceros puede ser tan grande como se desee, pero la representacin no sera una representacin normalizada ya que sta, por definicin, exige que la primera cifra a la derecha de la coma sea distinta de cero. Sin embargo, el cero tiene que poder ser representado necesariamente. La solucin adoptada consiste en

Estructura y Tecnologa de Computadores (Parte II)

52

Sistemas de Representacin de la Informacin

codificar el valor cero con todos los bits de la representacin a 0, es decir con 32, 64 128 bits a 0. Rango en Coma Flotante La representacin en Coma Flotante es til para trabajar con cantidades muy grandes o muy pequeas o, incluso, con magnitudes muy grandes y muy pequeas simultneamente, algo tpico del clculo tcnico-cientfico pudiendo conservar la precisin suficiente. Sin embargo, dado un determinado formato de coma flotante, no es posible representar cualquier magnitud . Tambin en coma flotante hay que considerar el rango de representacin. Pero, ahora hay que tener en cuenta cul es el mayor valor absoluto que se puede representar y adems cul el menor valor absoluto representable (adems del cero, siempre posible). En la Figura 2.27, los nmeros negativos menores que A (valor absoluto mayor que A) , los comprendidos entre B y C (con excepcin del cero) y los mayores que D no pueden representarse. El valor del rango depende de la representacin elegida.
A
Nmeros negativos

B 0 C
Nmeros positivos

Figura 2.27 Veamos cules son estos rangos con 32 bits, aproximadamente: Menor nmero negativo (mayor valor absoluto, con signo negativo): Signo: Mantisa = 1,11111....1 (23 cifras) = 1 + (1 223) 2 Exponente = 11111111 = 128 (128 en exceso a 28-1 1 equivale a 11111111) Por tanto, A 2129 6,8 1038 Mayor nmero negativo (menor valor absoluto, con signo negativo): Signo: Mantisa = 1,000000.....0 (23 cifras) = 1 Exponente = 00000000 = 127 (127 en exceso a 28 -11 equivale a 00000000) Por tanto, B = 1 2127 = 2127 5,9 10 39 Menor nmero positivo (menor valor absoluto, con signo positivo): Signo: + Mantisa = 1,000000.....0 (23 cifras) = 1 Exponente = 00000000 = 127 (127 en exceso a 28 - 11 equivale a 00000000) Por tanto, C = 1 2127 = 2127 5,9 10 39 Mayor nmero positivo (mayor valor absoluto, con signo positivo): Signo: + Mantisa = 1,11111....1 (23 cifras) = 1 + (1 223) 2 Exponente = 11111111 = 128 (128 en exceso a 28 - 1 1) Por tanto, D 2 2128 = 2129 6,8 1038

En la Figura 2.28 se incluyen los valores correspondientes a estos rangos, empleando Precisin Simple, es decir 32 bits.

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

53

A
Nmeros negativos

B 0C
Nmeros positivos

6,8 1038

5,9 10

-39

5,9 10

-39

6,8 10 38

Figura 2.28 Naturalmente, con Precisin Doble, al emplearse mayor nmero de bits para el exponente, el rango es mucho mayor. En la Figura 2.29 se incluyen los valores correspondientes con Precisin Doble.
A
Nmeros negativos

B 0 C
Nmeros positivos

10 308

10 -308

10-308

10 308

Figura 2.29 Otra caracterstica importante a considerar en la representacin en Coma Flotante es la precisin. Este concepto est relacionado con el nmero de cifras significativas de una representacin. Con simple precisin, el nmero de cifras binarias significativas es 23, mientras que con larga precisin este nmero asciende hasta 52 dgitos binarios. Veamos su importancia con un ejemplo: Se trata de efectuar la operacin (a b) 2120 , para los valores siguientes de a y b : a = 0,111000111000111000111000111 b = 0,111000111000111000111000101 Con 32 bits (23 cifras significativas, simple precisin) el resultado sera cero, pues se eliminaran las dos ltimas cifras fraccionarias Sin embargo, con 64 bits (52 cifras significativas, doble precisin) el resultado sera 2 26 2120 = = 294 2 1028 . Sobran los comentarios.

Conversin a Coma Flotante.- Ejemplos Para pasar una cantidad, expresada en decimal (o en cualquier otro sistema de numeracin) a coma flotante hay que expresar esta magnitud en binario en la forma normalizada de coma flotante, es decir, de la forma 0,1... 2exp donde 0,1... exp ser el signo (1 bit) ser la mantisa (con 23 o 52 bits segn la precisin) ser la caracterstica (con 8 o 11 bits, siempre en exceso a 2N1 1).

Veamos un ejemplo: Se trata de representar en Coma Flotante el nmero 0,00072. En binario tenemos

Estructura y Tecnologa de Computadores (Parte II)

54

Sistemas de Representacin de la Informacin

0,00072 = 0,000000000010111100101111100110 = 1,0111100101111100110 2 11 La mantisa ser el valor fraccionario anterior (sin coma): 0111100101111100110 (hemos calculado 19 bits suponiendo que para nuestro problema sea una precisin suficiente, pero, como la representacin en Coma Flotante con simple precisin requiere 23 bits para la mantisa, debern aadirse otros 4 bits, a cero. El signo es negativo, es decir, 1 El exponente, caracterstica, debe ser 11 en exceso a 127 (28 1 1), o sea: 01110100 La representacin, con sus 32 bits, ser: 10111010001111001011111001100000 que en hexadecimal sera BA3CBD60, bastante ms cmoda que la expresin binaria anterior. En la Figura 2.30 se incluye un ejemplo adicional

Debe ponerse el nmero de la forma:

1,... -- 2
Dos etapas:
Ej. 12,5 = 1100,1

exp.

1.- Se pasa el nmero a binario 2.- Se desplaza la coma a derecha / izqda


Signo 1100,1 = 110,01 2 = 11,001 2
2

= ... = 1,1001 2

0 10000010 10010000000000000000000
En exceso a 127 (2
8-1

-1)

Figura 2.30

2.2.- Sistemas de Codificacin


Un ordenador es capaz de almacenar y tratar informacin de caractersticas muy diversas, desde informacin numrica hasta informacin audiovisual. En cualquier caso, el ordenador nicamente es capaz de manejar magnitudes binarias (ceros y unos). Por tanto, se necesita convertir, de alguna forma, la informacin del mundo real a alguna forma que pueda ser manejada directamente por los ordenadores. Este proceso, en general, (Figura 2.31) se conoce como Codificacin de la Informacin .

Codificacin
Proceso de conversin de la informacin externa a un formato tal que pueda ser almacenado en un computador
Informacin Sistema de Codificacin Informacin Codificada

Figura 2.31 Ahora bien, hay formas diferentes de conseguir el mismo objetivo. Ya vimos, por ejemplo, cmo una informacin numrica poda representarse, entre otras formas, en binario, en C-2 o en Coma Flotante. Cada una de estas formas no es sino un Sistema de Codificacin. Naturalmente, a la hora de manejar Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

55

esa informacin codif icada deber conocerse el Sistema de Codificacin empleado; sin conocer ste, una sucesin de 0 y 1 no tiene significado alguno. Hemos visto hasta el momento distintas formas de representacin numrica. En los primeros tiempos de la informtica la informacin de tipo numrico fue la predominante pero, en la actualidad la variedad de formas de informacin que se debe tratar y almacenar en un ordenador es amplsima. El siguiente tipo de informacin empleada en un ordenador fue la informacin alfanumrica. En sentido estricto se entiende por alfanumrico al conjunto de caracteres formado por letras, nmeros y signos de puntuacin; es decir, los necesarios para la representacin de textos simples, sin tablas, grficos ni dibujos. El Sistema de Codificacin empleado para este tipo de informacin debe asignar un conjunto de bits diferente para cada carcter alfanumrico Los primeros cdigos estaban dominados por la necesidad de emplear el menor nmero posible de bits para representar un carcter, aun a costa de que el total de caracteres fuese muy bajo. As, el cdigo FIELDATA empleaba 6 bits por carcter, permitiendo un total de 64 caracteres diferentes: letras (slo maysculas y sin incluir caracteres locales, como la o la ), nmeros y algunos signos matemticos y de puntuacin. En la Figura 2.32 se recogen los principales tipos de Sistemas de Codificacin empleados.
Numricos
Codifican informacin numrica
MS, C-1, C-2, exceso 2 BCD natural, BCD Aiken, BCD exceso-3 Decimal empaquetado o desempaquetado Coma Flotante de Precisin Simple o Doble
N-1

Alfanumricos
Codifican informacin alfanumrica
FIELDATA, ASCII, EBCDIC, UNICODE

Otros
p.e. Digitalizacin de seales analgicas

Figura 2.32 Ante la necesidad de incluir, al menos, las letras propias de los principales idiomas y letras minsculas y acentuadas aparecieron cdigos con 7, y despus con 8 bits como el ASCII o el EBCDIC (empleado por IBM en sus ordenadores de gran potencia). As se llega hasta 128 256 caracteres, lo que permite incluir bastantes smbolos adicionales, adems de los llamados caracteres de control, combinaciones de bits que se emplean para gobernar el funcionamiento de perifricos o lneas de comunicaciones (por ejemplo, para ordenar a una impresora que expulse una hoja de papel o para indicar que comienza una transmisin en una lnea telefnica). Dentro de los caracteres especiales se han ido incluyendo cada vez ms caracteres. Por otra parte, idiomas como el ruso, el hebreo o el griego emplean caracteres diferentes a los occidentales con lo que los 256 caracteres posibles son insuficientes para poder tratar todos los idiomas con un nico juego y se fueron empleando diferentes soluciones que provocaban incompatibilidades y dificultades de comunicacin entre diferentes idiomas. Como solucin con vocacin universal aparece el cdigo Unicode que emplea 8, 16 32 bits por carcter. La versin de 8 bits pretende nicamente dar compatibilidad con el cdigo ASCII. La versin de 16 bits permite ms de 65.000 caracteres diferentes lo que da entrada no slo a idiomas como los anteriormente mencionados sino incluso a aquellos que emplean ideogramas como el chino, coreano o japons. Dispone, adems, de configuraciones de bits reservadas para su utilizacin por aplicaciones particulares que permiten incluir como caracteres del juego imgenes o iconos empleados por la aplic a-

Estructura y Tecnologa de Computadores (Parte II)

56

Sistemas de Representacin de la Informacin

cin, aunque, en principio, sern desconocidos por otras aplicaciones que pudieran comunicarse con ella. La versin de 32 bits, permite representar ms de 4.000 millones de caracteres con lo que se puede incluir cualquier idioma conocido.

Cdigos
Algunas definiciones Al tratar de cdigos conviene precisar algunas definiciones: Longitud: se conoce como Longitud de un cdigo al nmero de bits empleados para representar un carcter. Consecuencia de la longitud es el nmero de caracteres de un cdigo Nmero de caracteres: es consecuencia de la definicin anterior. El valor mximo es 2longitud . En el caso muy frecuente de que la longitud sea 8, el nmero mximo de caracteres es 256. Distancia entre dos combinaciones binarias de un cdigo: es el nmero de bits que deben cambiarse en una combinacin para obtener la otra; o, lo que es lo mismo, al nmero de bits diferentes que tienen esas dos combinaciones en particular. En la Figura 2.33 se incluyen algunos ejemplos con las distancias entre algunas combinaciones de un cdigo.
11100110 11110011
Distancia = 3

11100110 11100011
Distancia = 2

11100110 00100000
Distancia = 4

Figura 2.33
Distancia de un cdigo: Aplicando la definicin anterior de distancia a todas las combinaciones

posibles de un determinado cdigo, llegamos a la definicin de distancia de un cdigo, entendindose como tal el menor valor de todas las distancias posibles entre combinaciones del cdigo. Como ejemplo, analicemos el cdigo de la Figura 2.34. Se trata de un cdigo en el cual se representan nicamente los diez dgitos decimales con las configuraciones que se indican. Este cdigo emplea 5 bits para representar cada uno de los dgitos. Si comparamos todas las combinaciones entre s podemos encontrar nicamente distancias con un valor de 2 o de 4. Por tanto, la distancia del cdigo es el menor de ellos; es decir, la distancia es dos.
0 1 2 3 4 00000 00011 00101 00110 01001 5 6 7 8 9 01010 01100 01111 10001 10010

Distancia = 2

Cambiar un bit = combinacin no vlida

Figura 2.34 Tcnicas de proteccin contra errores La informacin codificada est sujeta a posibles errores. En este contexto se entiende por error la modificacin accidental de la informacin, sin la intervencin directa o indirecta de ninguna persona. Por ejemplo, sera un error que el carcter A almacenado en un disco se convirtiese en Q por las bueEstructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

57

nas, pero no lo sera que ocurriese lo mismo por una equivocacin en un programa o por una accin malintencionada de alguna persona. Se puede modificar la informacin porque s? Hay una serie de factores externos y difcilmente evitables que, eventualmente, pueden producir un error. Desde radiaciones alfa que pueden alterar el contenido de la memoria o de algn dispositivo de almacenamiento hasta campos magnticos que pueden alterar la informacin transmitida a algn dispositivo externo o a travs de una lnea de comunicaciones. El error se traduce en el cambio de algn bit de 0 a 1 o viceversa. En principio, tal y como hemos considerado la representacin de informacin hasta ahora, no es posible reconocer que se ha producido un error. Supongamos que tenemos codificado en C-2 (con ocho bits) el valor decimal 14. Su representacin sera 00001110; si uno de los bits cambia accidentalmente de valor y el contenido de esos ocho bits pasa a ser, por ejemplo, 00011110 , representar el valor 30, tan vlido, desde el punto de vista de codificacin, como el anterior. Estos errores son infrecuentes pero, de acuerdo con la Ley de Murphy, se producen y es preciso protegerse contra ellos. Para la proteccin se emplean determinadas tcnicas en la codificacin de la informacin. En primer lugar, existen cdigos que son capaces de detectar que se ha producido un error, aunque no son capaces de saber dnde. Estos cdigos pueden ser suficientes cuando el error se produce durante una transmisin: basta con repetirla, ya que la informacin se mantiene correcta en el punto de origen. Pero cuando el error se produce en la informacin almacenada, cuando se altera el contenido de un disco o de la memoria, no hay posibilidad de recuperar la informacin. Saber que se ha producido un error es algo, pero no suficiente. Para estos casos se emplean cdigos con capacidad de correccin de errores; si, por ejemplo, la letra A se cambia accidentalmente por la Q, el cdigo debe ser capaz de reconocer que se ha producido un error y adems, debe ser capaz de restituir la representacin al valor correspondiente a la letra A. Son cdigos con capacidad de correccin de errores o, cdigos autocorrectores . Cdigos de paridad Volviendo a nuestro cdigo ejemplo de la Figura 2.34, cuando la distancia de un cdigo es 2 o ms, no hay ninguna combinacin vlida que difiera de otra vlida en un solo bit. As, si en nuestro cdigo se tuviese, digamos, el valor 4 (01001) y se produjese un error que modificase uno de sus bits, produciendo, por ejemplo, la representacin 01000 el cdigo sera capaz de detectar que se haba producido un error al reconocer que esa combinacin 01000 no pertenece al conjunto de caracteres del cdigo. Sin embargo, sin conocer el valor original, no podra conocer cul de los bits era el que se haba modificado indebidamente. (en este caso podra ser cualquiera de ellos, excepto el primero). Se puede afirmar que cualquier cdigo cuya distancia sea 2 o superior, es capaz de detectar errores, aunque no que sea capaz tambin de corregirlos. Si analizamos con cierto detalle nuestro cdigo ejemplo, en la Figura 2.35 podemos observar que los cuatro primeros bits se corresponden con el cdigo BCD de cada uno de los dgitos. En cuanto al quinto bit, podemos ver que se ha elegido de forma tal que el nmero total de bits que tienen el valor 1 en cada cdigo, incluyendo este quinto bit, sea siempre par.

Estructura y Tecnologa de Computadores (Parte II)

58

Sistemas de Representacin de la Informacin

0 1 2 3 4

00000 00011 00101 00110 01001 BCD

5 6 7 8 9

01010 01100 01111 10001 10010

Cdigo BCD

+
1 bit

La suma de bits en 1 es par Paridad par

Figura 2.35 Los cdigos con distancia dos, son los ms simples con capacidad de deteccin de errores. Se denominan, en general, cdigos de paridad y se obtienen aadiendo un bit al cdigo bsico (en nuestro eje mplo el BCD, en otros casos puede ser el ASCII, el Unicode o cualquier otro) de manera que el total de bits en 1 sea siempre par. Exactamente igual podra haberse elegido que el total de bits en 1 fuese siempre impar. En el primer caso se trata de paridad par, mientras que en el segundo estamos hablando de cdigos de paridad impar. Veamos un par de ejemplos. Supongamos (Figura 2.36) que, utilizando nuestro cdigo ejemplo (el BCD con paridad par), tenemos almacenado en un disco el valor 01001. Si, al leer del disco recibisemos el valor 00001, al comprobar su paridad se detectara que el total de bits en 1 es impar, lo que nos indica que el cdigo es invlido y que, por tanto se ha producido un error. Aunque no podemos conocer cul debera ser el valor correcto.

Error de 1 bit
Original Final 01001 00001 Paridad correcta Paridad incorrecta ERROR

Error de 2 bits
Original Final 01001 00101 Paridad correcta Paridad correcta pero... ERROR

Figura 2.36 Supongamos ahora que recibimos el valor 00101. Su paridad es correcta (el nmero total de bits en 1 es dos, o sea, par). El cdigo no detecta, por tanto, ningn error. Pero, sin embargo, el valor se ha modificado durante la transmisin. Qu significa sto? Simplemente, que nuestro cdigo es capaz de detectar errores de un bit, pero no de dos bits. (Tambin podra detectar los de tres bits). En la prctica, en muchas ocasiones, el no poder corregir errores de dos bits no es excesivamente grave ya que si la posibilidad de errores de un bit es muy reducida, la de errores de dos bits es prcticamente nula, aunque no podemos olvidar que un simple cdigo de paridad se traga los errores de dos bits. En cualquier caso, un cdigo de paridad no es capaz de corregir ningn tipo de error; nicamente puede detectarlos... y con limitaciones. Por otra parte, no olvidemos que el introducir un cdigo de paridad exige incrementar el nmero de bits necesarios para representar un dato. Si para BCD bastara un cdigo de cuatro bits, si queremos que pueda detecta r errores, el cdigo deber tener, al menos, un bit ms.

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

59

Como hemos comentado, los cdigos con capacidad de deteccin de errores son tiles cuando se conserva en alguna parte el dato correcto y existe la posibilidad de recuperarlo en caso de detectarse algn error. Tpicamente sto ocurre al transmitir datos, ya sea entre memoria y perifricos o viceversa o a travs de lneas de comunicacin. Evidentemente la retransmisin del dato correcto supone una reduccin en la velocidad de transmisin, que tiene mayor o menor importancia segn la tasa de errores que se produzcan. Ahora bien, cuando el dato correcto no puede recuperarse, el cdigo detector tiene muy poca utilidad (an le queda alguna, pues, al menos, se puede saber que es incorrecto). Los casos ms habituales en los que se puede modificar accidentalmente un dato ocurren en la memoria o en los discos. En estos casos se requieren cdigos que tengan capacidad de correccin, es decir, que sean capaces no slo de detectar que se ha producido un error (alteracin de un bit) sino que sean capaces de recuperar directamente el valor correcto de ese bit. Aunque la posibilidad de que se altere accidentalmente un bit es muy reducida, como la capacidad de memorias y discos cada da es mayor, este fenmeno se produce con ms frecuencia de la que podemos imaginar, e incluso no es demasiado infrecuente que se puedan alterar dos bits de un carcter simultneamente. En general, los cdigos correctores de errores derivan del cdigo bsico de Hamming capaz de detectar y corregir cualquier error de un bit y de detectar, sin posibilidad de correccin, los errores de dos bits. Los cdigos ms avanzados son capaces de corregir errores de 2, o incluso de 3 bits. Hay que notar que los sistemas ms potentes suelen tener mayor capacidad de almacenamiento (memoria o disco) y mayor volumen de transferencias, por lo que el riesgo de que se produzcan errores es mayor (y de ms trascendencia) por lo que suelen contar con cdigos de correccin ms potentes. Cdigo de Hamming En el cdigo bsico de Hamming se aaden varios bits (siempre ms de uno) al cdigo mnimo. Los bits imprescindibles para representar la informacin (por ejemplo, los 4 bits del cdigo BCD) se denominan bits de informacin, mientras que los bits que se aaden para permitir la correccin se conocen como bits de paridad (Figura 2.37).
Bits de informacin

Bits de paridad

Figura 2.37 El nmero mnimo de bits de paridad necesarios para poder detectar y corregir errores de un bit viene dado por la expresin

2P N + P + 1
de la figura. En ella se ve que, cuando el nmero de bits de informacin es 4 (por ejemplo BCD), el nmero de bits adicionales debe ser 3, al menos; mientras que si el nmero de bits de informacin fuese 8 (como en el ASCII ampliado o Unicode 8) el nmero mnimo de bits de paridad debe ser 4, como mnimo (24 8 + 4 + 1). Esto significa un incremento del 50% en las necesidades de almacenamiento, con un coste adicional importante, lo que puede aconsejar no incluir este cdigo en ciertos equipos sencillos. Cdigos ms potentes requieren an ms bits adicionales, con un mayor coste, lo que los restringe a equipos de grandes prestaciones, por lo que no ser normal encontrarlos en un PC. Como veremos a continuacin, el contenido de los bits de paridad nos indica si el dato es correcto o no, y en este ltimo caso nos dirige al bit incorrecto.

Estructura y Tecnologa de Computadores (Parte II)

60

Sistemas de Representacin de la Informacin

Veamos primero cmo se forman los bits de paridad para el cdigo bsico de Hamming para BCD. Necesitaremos, como ya vimos, 4 bits de informacin y 3 bits de paridad: total 7 bits. Los bits de paridad ocupan las posiciones correspondientes a potencias sucesivas de dos: P1, P2, P4. (En caso de que el cdigo no fuese el BCD y se requiriesen ms bits de paridad, se continuara con las posiciones 8, 16, etc.). Los bits de informacin ocupan las cuatro posiciones que dejan libres los bits de paridad: I3, I5, I6 e I7. Veamos un ejemplo (Figura 2.38): Supongamos que se desea codificar en BCD con cdigo de Hamming el valor 9. El BCD sera 1001 y estos bits ocuparan las posiciones I3, I5, I6 e I7 , respectivamente. Falta conocer qu bits se deben colocar en las posiciones restantes.

I7 44 I3 22 P 11 7 I6 6 I5 5 P 3 P 9= 1 0 0 1 1 0 0 1001100
Figura 2.38

P1 P2 P4

bit de paridad 7, 5 y 3 7, 6 y 3 7, 6 y 5

En la posicin P1, se colocar el bit de paridad formado por los bits de informacin correspondientes a las posiciones I3, I5, e I7 (1, 0 y 1). Para que esos tres bits ms el correspondiente a la pos icin 1 den una paridad par, el contenido del bit de la posici n P1 debe ser 0 (total de bits en 1 igual a 2, o sea par). Anlogamente, en la posicin P2 se pondr el bit de paridad formado por los bits de informacin I3, I6 e I7 (1, 0 y 1). La posicin 2 deber tener, pues, un 0. Por ltimo, la posicin P4 tendr el bit de paridad formado por los bits de informacin I5, I6 e I7 (1, 0 y 0). La posicin P4 deber tener, pues, un 1.

Nos hemos limitado a explicar el mecanismo de formacin de los bits de paridad de este cdigo, prescindiendo de cualquier demostracin de tipo matemtico sobre el mismo por escaparse del objetivo de la asignatura. Veamos ahora cmo se produce la deteccin y posterior correccin de errores con este cdigo. Supogamos que se tiene el valor 1011100 segn la Figura 2.39. Veamos si es correcto o no. Para ello se deben recalcular, segn la regla vista anteriormente los bits de paridad (posiciones P1, P2, y P4) y comprobar si coinciden con los que aparecen: Para la posicin P1 , el valor del bit de paridad debera ser 1 (paridad par de los bits I3, I5, e I7). Pero vemos que, en realidad, el valor de este bit es 0. Para la posicin P2 , el valor del bit de paridad debera ser 0 (paridad par de los bits I3, I6 e I7). El valor de este bit coincide. Para la posicin P4 , el valor del bit de paridad debera ser 0 (paridad par de los bits I5, I6 e I7). Pero vemos que el valor de este bit es 1.

Lo anterior, en principio, no significa que estos bits sean o no correctos. Ahora bien, nos da la base para conocer lo que ocurre. Hecho este proceso, la regla para saber si hay un error y conocer dnde es la siguiente:

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

61

I7 7 I6 6 I5 5 P4 I 3 P2 P 1 1 0 1 1 1 0 0
1 0 101 1

P1 P2 P4

bit de paridad 7, 5 y 3 7, 6 y 3 7, 6 y 5

Bit errneo: 5

1 0 0 1 1 0 0
Figura 2.39 Si los tres bits de paridad calculados segn las reglas anteriores coinciden con los valores que aparecen en las posiciones de bits de paridad, el dato es correcto, lo que no ocurre en nuestro caso. De lo contrario el dato no es correcto y para conocer cul es el bit incorrecto se forma un nmero de control con tres dgitos en binario : el primer dgito del nmero de control ser un 0 cuando el bit de paridad calculado para la posicin P4 , coincida con el que realmente figure en el dato, y un 1 en caso contrario. En el ejemplo, no coincide, por tanto el primer dgito del nmero de control (por la izquierda) ser un 1. para el segundo dgito, se repite el proceso con la posicin P2 . En el ejemplo coinciden el bit de paridad calculado con el que figura en el dato. As el segundo dgito del nmero de control ser un 0. As, los dos pr imeros dgitos del nmero de control sern 10. para el tercer y ltimo dgito, se repite el proceso con la posicin P1 . En el ejemplo el bit de paridad calculado no coincide con el que figura en el dato. As, el tercer dgito del nmero de control (por l a izquierda) ser un 1. El valor binario de estos tres dgitos es, pues, 101. El valor decimal del nmero de control binario, es decir 5 , nos indica que el bit incorrecto es el que ocupa la posicin 5. Como este valor en nuestro dato es 1 , y es incorrecto, el valor real y correcto debe ser 0. En conjunto, el valor corregido, con todos sus bits, ser 1001100. En la Figura 2.40 se presenta otro ejemplo, en el cual al calcular los bits de paridad que corresponden a las pos iciones P1, P2, y P4, todos ellos resultan coincidentes con los que aparecen en el dato. Por tanto se generar un 0 para cada uno de los dgitos que se emplean para localizar el bit incorrecto, si lo hay.

P4 I 3 P2 P 1

1 0 0 1 1 0 0
0 0 000 0

P1 P2 P4

bit de paridad 7, 5 y 3 7, 6 y 3 7, 6 y 5

Bit errneo

Ninguno

Figura 2.40

Estructura y Tecnologa de Computadores (Parte II)

62

Sistemas de Representacin de la Informacin

Cuando todos los dgitos de comprobacin tienen el valor 0 , acabamos de decir que el valor del cdigo es correcto. Efectivamente 1001100 se corresponde con el valor 9 en cdigo Hamming para BCD. El ordenador deber tener algn circuito capaz de realizar las operaciones que acabamos de indicar, circuito que veremos ms adelante y que resulta ser realmente sencillo.

Estructura y Tecnologa de Computadores (Parte II)

Sistemas de Representacin de la Informacin

63

BIBLIOGRAFA RECOMENDADA: E. Alcalde y otros. Arquitectura de Ordenadores.- Mc Graw Hill. 1991 (Cap. 2) J.M. Angulo y otros. Sistemas Digitales y Tecnologa de Computadores.- Paraninfo 2002 M. Morris Mano y C.R. Kime. Fundamentos de Diseo Lgico y Computadoras.- Prentice Hall. 1998 (Cap. 1) W. Stallings. Organizacin y Arquitectura de Computadores.- Prentice Hall. 2000 (Cap. 8)

Estructura y Tecnologa de Computadores (Parte II)

3
ANLISIS Y DISEO DE CIRCUITOS COMBINACIONALES
3.1.- lgebra de Boole
Antes de entrar en el estudio de los principales circuitos lgicos es conveniente dar unas nociones bsicas sobre lgebra de Boole, imprescindible para el diseo y de estos circuitos. El lgebra de Boole es una rama del lgebra, fundamental para los Sistemas Digitales, en la cual sus variables, denominadas variables lgicas, a diferencia de las variables empleadas en el lgebra convencional slo pueden tomar los valores 0 o 1. Estas varia bles estn sometidas a determinados postulados y leyes y emplean una serie de operadores lgicos, tales como: Igualdad, representado por el signo = Negacin, representado por el signo Suma lgica, representado por el signo + Producto lgico, representado por el signo

Los valores 0 y 1 que pueden tomar estas variables no son valores numricos, no tienen nada que ver con el sistema binario, ni con ninguna forma de representacin. Se asocian con los valores S o No , Verdadero o Falso , con el hecho de que una determinada afirmacin sea cierta o no, de que se presente o no una determinada situacin. Por ejemplo, que una bombilla pueda estar encendida o apagada, un interruptor abierto o cerrado, una alarma sonora en silencio o activada, etc.

Funciones Lgicas
En general, una funcin lgica es una expresin que indica bajo qu condiciones se tiene el valor Cierto o Falso. Supongamos, por ejemplo, que en un edificio con cuatro entradas se desee colocar un sistema de seguridad que encienda un indicador luminoso cuando se abra una cualquiera de esas puertas. La expresin que se active una alarma cuando se abra cualquiera de las cuatro puertas sera lo que diramos en lenguaje cotidiano; indica qu condiciones deben darse para que se active la alarma e indica, tambin, que cuando no se cumplan esas condiciones la alarma no se deber activar. Cada una de las cuatro puertas puede estar abierta o cerrada y se puede asignar a una variable (las llamaremos, por ejemplo, A, B, C y D). Cada variable tomar el valor 0 cuando la puerta a la que representa est cerrada y el valor 1 cuando est abierta. La alarma puede asignarse a una funcin lgica (X, por eje mplo) que tomar el valor 1 cuando deba activarse y el valor 0 cuando deba permanecer en silencio. La expresin algebraica que representa esta funcin de cuatro variables es X=A+B+C+D Aunque ms adelante explicaremos en qu consiste la suma en lgebra de Boole, la suma lgica, debemos observar que tiene poco que ver con la suma algebraica normal. Si suponemos que estn abie rtas dos puertas, dos de las variables tendrn el valor 1, las otras dos tendrn el valor 0 y la suma normal sera 2 (10 en binario). Sin embargo, hemos dicho que X slo puede tomar el valor 0 o 1 (en este caso la alarma estara activada y debera tomar el valor 1). Estructura y Tecnologa de Computadores (Seccin II)

66

Anlisis y Diseo de Circuitos Combinacionales

La Tabla de Verdad Un elemento fundamental para el manejo de funciones lgicas es la Tabla de Verdad . La Tabla de Verdad es una forma de representar una funcin. Indica qu valores toma la funcin para cada uno de los posibles valores de las variables. Por ejemplo, en la Tabla de Verdad que se adjunta a continuacin, se expresa que la funcin F, tomar el valor 1 a b c F en los casos siguientes: o bien o bien o bien cuando a b y c valgan todos 1, (ltima lnea) mientras que la funcin F tomar el valor 0 para cualquier otra combinacin de valores de las variables. A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 B 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 C 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 D 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 X 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 cuando a valga 1 y adems b y c valgan 0, (5 lnea) cuando a y b valgan 0 y adems c valga 1, (2 lnea) cuando a, b y c valgan 0, (1 lnea)

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

1 1 0 0 1 0 0 1

A la izquierda, como ejemplo, se incluye la Tabla de Verdad correspondiente a la funcin mencionada anteriormente relativa al dispositivo de seguridad de un edificio. La Tabla de Verdad muestra los 16 estados posibles de las cuatro puertas. La primera lnea representa la situacin en la que las cuatro puertas (cuatro variables lgicas a las que llamaremos A, B, C, y D) se encuentran cerradas. La alarma, funcin lgica a la que denominaremos X, deber permanecer inactiva y, a esta situacin le asignamos el valor 0. Las 15 lneas restantes muestran todos los casos en los que, al menos, una de las puertas est abierta; es decir, cuando, al menos, una de las variables toma el valor 1. En cualquiera de estos casos la alarma debe activarse, por lo que asignaremos el valor 1 a la funcin F. Obsrvese que el asignar a la posicin puerta abierta el valor 1 y el valor 0 a la posicin puerta cerrada es totalmente arbitrario. Igualmente es arbitrario dar el valor 0 a alarma inactiva y el valor 1 a la situacin alarma activada. Naturalmente, lo que es necesario es mantener la consistencia una vez elegidos los valores 0 y 1 para variables y funciones.

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

67

Funciones Lgicas Fundamentales Las principales funciones lgicas empleadas en lgebra de Boole son las siguientes: OR AND NOT EQU XOR NOR NAND XNOR Suma Lgica Producto Lgico Negacin Igualdad OR Exclusivo Negacin de la funcin OR Negacin de la funcin AND Negacin de la funcin XOR

Las cinco primeras son aquellas que podramos denominar fundamentales, mientras que las tres ltimas son combinacin de dos de las anteriores. (Como veremos ms adelante, la funcin XOR puede considerarse derivada de las funciones OR, AND y NOT, pero, no obstante la consideraremos una funcin bsica). Todas ellas se aplican a variables, excepto la funcin de Igualdad, que se emplea para asignar un valor, una variable, o una combinacin de variables y funciones fundamentales, a una funcin. Como veremos ms adelante, en Electrnica Digital todas las funciones se realizan fsicamente mediante el empleo de Puertas Lgicas. lgebra de Boole.- Postulados El lgebra de Boole se basa en una serie de postulados que se enuncian seguidamente. a+1=1 a+0=a a+a=a a+a=1 a1=a a0=0 aa=a aa=0

(a ) = a
En la mitad izquierda se indican los postulados referentes a la suma lgica, mientras que en el lado derecho se mencionan los correspondientes al producto lgico. Como se puede apreciar, hay una clara correlacin entre unos y otros. El ltimo postulado establece que la negacin de una variable dos veces consecutivas devuelve a esta variable su valor original. lgebra de Boole.- Propiedades Tres son las propiedades que pueden aplicarse en lgebra de Boole: Conmutativa: a+b=b+a ab=ba

Estructura y Tecnologa de Computadores (Seccin II)

68

Anlisis y Diseo de Circuitos Combinacionales

Asociativa: a+b+c=a+(b+c) Distributiva: a(b+c)=ab+ac a+(bc)=(a+b)(a+c) abc=a(bc)

Tambin aqu se observa una correlacin entre propiedades aplicables a la suma lgica (lado izquierdo) y aplicables al producto lgico (lado derecho). No vamos a demostrar estas propiedades, por escapar del mbito de nuestra asignatura, aunque las vamos a utilizar profusamente en adela nte en el manejo de expresiones algebraicas. lgebra de Boole.- Teoremas de De Morgan Tambin son muy importantes en lgebra de Boole los dos teoremas de De Morgan, aunque tampoco los demostraremos. Su enunciado es el siguiente: La negacin de una suma lgica es igual al producto lgico de las variables negadas.

a+b=a b
La negacin de un producto lgico es igual a la suma lgica de las variables negadas.

ab =a +b
El conocimiento y correcta aplicacin de estos dos teoremas es muy importante. De lo contrario es fcil incurrir en errores graves. Es correcto escribir a + b = a b , pero no lo es la expresin a + b = a + b . Igualmente es correcta la expresin a b = a + b y no lo es escribir a b = a b .

3.2.- Circuitos Digitales


La realizacin por medio de componentes electrnicos digitales de Funciones Lgicas definidas por su Tabla de Verdad o por su expresin algebraica da lugar a los Circuitos Digitales, que sern objeto de nuestra atencin a partir de este punto.

Puertas Lgicas
Aun cuando una Puerta Lgica puede fabricarse utilizando otras tecnologas, cuando se trata de sistemas electrnicos digitales no es sino un circuito electrnico capaz de realizar alguna de las funciones lgicas fundamentales que mencionamos en la pgina 3. Como cualquier circuito electrnico, una puerta est formada fsicamente por componentes electrnicos, fundamentalmente transistores, aunque tambin se requieren otros elementos como resistencias, diodos condensadores, etc y las conexiones adecuadas entre ellos. Sin embargo, nosotros nicamente nos preocuparemos de la puerta en s, no de los elementos que la integran. Puerta AND La puerta AND es el circuito con el cual se realiza la funcin producto lgico de dos variables. Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

69

La expresin de esta funcin es S = a b Esta funcin produce como resultado 1 cuando ambas variables tienen simultneamente el valor 1 , mientras que el resultado es 0 en cualquier otro caso. Dicho de otra forma, el resultado ser 1 cuando la variable a vale 1 y, adems, la variable b tiene tambin el valor 1. De ah que el producto lgico se conozca tambin como funcin Y (AND, en ingls).
Tabla de Verdad
a 0 0 1 1 b 0 1 0 1 S 0 0 0 1

a S b

a b

Ejemplo:
0V

5V

Figura 1.1 En la Figura 1.1 se muestra la Tabla de Verdad de esta funcin, as como el smbolo reconocido internacionalmente para representarla: un semicrculo. Tambin se incluye un circuito con elementos muy sencillos (slo resistencias e interruptores, adems de una fuente de alimentacin) que podra actuar como una puerta AND. En el punto S nicamente habr una tensin de 5V (valor 1) cuando ambos interruptores estn cerrados, (valor 1 para a y para b). Este circuito se incluye nicamente como referencia; en la prctica una puerta AND en microelectrnica se fabrica a base, principalmente, de transistores. Un ejemplo de un circuito a base de una puerta AND podra ser un sistema en un avin para detectar en el aterrizaje que se ha extrado tanto el tren delantero como el trasero. Un sensor en cada uno de ellos enva una seal (valor 1) a una de las entradas de una puerta AND cuando el tren se ha extrado y no la enva (valor 0) mientras est recogido. La salida de la puerta AND encender un piloto verde slo cuando ambos trenes hayan sido extrados, mientras que este piloto permanecer apagado cuando uno cualquiera de los trenes de aterrizaje permanezca recogido. En la parte derecha de la misma Figura 1.1 se representa el cronograma de la funcin; es decir, los valores que va tomando la funcin S segn los que tomen las variables a y b. Se puede ver cmo slo cuando ambas variables coinciden con el valor 1 , la salida S toma el valor 1. Puerta OR De forma anloga se presenta la funcin OR entre dos variables. La funcin, se conoce tambin como suma lgica y se representa como S=a+b y toma el valor 1 cuando cualquiera de las dos variables, o ambas, tiene el valor 1 , mientras que en caso contrario toma el valor 0. Es decir, la salida vale 1 cuando a O b O ambas valen 1; de ah que se conozca tambin como funcin O (OR en ingls). En la Figura 1.2 se presenta la Tabla de Verdad y un circuito elemental para realizar esta funcin.

Estructura y Tecnologa de Computadores (Seccin II)

70

Anlisis y Diseo de Circuitos Combinacionales

a S b
Tabla de Verdad
a 0 0 1 1 b 0 1 0 1 S 0 1 1 1 0V S a b

Suma lgica (O) Smbolo + S=a+b


Ejemplo:
5V

a b S S=a+b

Figura 1.2 Veamos un circuito que podra realizarse con una puerta OR. Por ejemplo, un sistema de alarma para una sala de un museo con dos puertas; durante el da la ala rma se mantiene desconectada y se activa al cerrarse el museo. Un sensor en cada una de las puertas detecta si est abierta (valor 1) o cerrada (valor 0). La salida de cada sensor se conecta a una entrada de una puerta OR, cuya salida se conecta a una sirena; as, cuando ambas puertas estn cerradas, la salida es 0 y la sirena est en silencio, mie ntras que cuando cualquiera de las puertas (o las dos a la vez) est abierta, la salida de la puerta OR es 1 y sonar la sirena. En la parte derecha de la misma Figura 1.2 se representa el cronograma de la funcin; es decir, los valores que va tomando la funcin S segn los que tomen las variables a y b. Se puede ver cmo cuando cualquiera de las variables ( o las dos simultneamente) tiene el valor 1 , la salida S toma el valor 1. Puerta EQU La puerta EQU es la ms sencilla de todas. Podramos decir que no hace nada, simplemente asigna una variable. Desde un punto de vista lgico, se puede prescindir de ella y sustituirla por una simple conexin entre a y S. sto es lo que haremos a lo largo del curso. La razn de su existencia es puramente fsica: se emplea para regenerar o amplificar seales.
a S Funcin igualdad Smbolo = S=a
Ejemplo:
a 5V 0V S

Tabla de Verdad
a 0 1 S 0 1

S
Figura 1.3

En la Figura 1.3 se representa la Tabla de Verdad de esta funcin, as como su smbolo, un circuito elemental que cumple la funcin y el cronograma de la misma. Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

71

Puerta NOT La puerta NOT realiza la funcin del mismo nombre y se aplica a una nica variable. El resultado, como se puede observar en la Tabla de Verdad que se incluye en la Figura 1.4, produce siempre el valor contrario al de la variable. Esta funcin se conoce como negacin o complementacin y se representa por una pequea lnea sobre la variable que se desea complementar S = a . En algunas ocasiones se puede ver en lugar de la lnea, una comilla al lado de la variable ( a ). Al lado derecho de la figura se representa el cronograma de esta funcin.
a S Negacin lgica Smbolo S=a
Ejemplo:
a 0V S 5V

Tabla de Verdad
a 0 1 S 1 0

S
Figura 1.4

Puerta NAND Las siguientes puertas que vamos a considerar, realizan funciones derivadas de las AND y OR. La salida de cada una de ellas es la negacin de las puertas AND y OR, respectivamente. La funcin NAND, cuyas caractersticas se recogen en la Figura 1.5 produce la negacin de la funcin AND. Su expresin es S = a gb Esta expresin podra realizarse por la unin de dos de las puertas ya estudiadas, ( AND y NOT) aunque dada su importancia se trata como una puerta en s misma.
a S b
Tabla de Verdad
a 0 0 1 1 b 0 1 0 1 S 1 1 1 0

Negacin de la AND S=ab a a b b S =a+b

a b S S = a b

Figura 1.5 Por otra parte, en virtud del teorema de De Morgan enunciado en la pgina 4, puede expresarse tambin, como S = a + b . Estructura y Tecnologa de Computadores (Seccin II)

72

Anlisis y Diseo de Circuitos Combinacionales

Al lado derecho de la figura se representa el cronograma de esta funcin. Puerta NOR Anlogamente, la funcin NOR, cuyas caractersticas se recogen en la Figura 1.6, produce la negacin de la funcin OR. Su expresin es S = a + b
a S b Negacin de la OR S=a+b
Tabla de Verdad
a 0 0 1 1 b 0 1 0 1 S 1 0 0 0

=ab

a b
S

a b

S
Figura 1.6

Esta expresin podra realizarse por la unin de dos de las puertas ya estudiadas, (OR y NOT) aunque dada su importancia se trata como una puerta en s misma. Por otra parte, en virtud del teorema de De Morgan, enunciado en la pgina 4, puede expresarse tambin, como S = ab . En esta figura se representa tambin el cronograma de esta funcin. Es decir los valores que va tomando la funcin S a lo largo del tiempo segn los que tome la variable a. Se ve que el valor de la salida es el mismo que tomara la puerta OR, pero negado. Puerta XOR La funcin XOR, conocida frecuentemente como OR exclusivo es similar a la funcin OR, excepto cuando las dos variables tienen el valor 1. En este caso, una funcin OR dara como resultado un 1 , mientras que la XOR produce un 0. Es decir, la salida es un 1 siempre que solamente uno de los valores de la entrada valga 1 y es un 0 en cualquier otro caso, como se indica en la Tabla de Verdad. Sus caractersticas se indican en la Figura 1.7.
a S b OR exclusivo Smbolo S = a b = a b + b a

a b S

Tabla de Verdad
a 0 0 1 1 b 0 1 0 1 S 0 1 1 0

Figura 1.7

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

73

Aunque la funcin XOR es una funcin como tal, tambin puede representarse como funcin derivada de las funciones OR, AND y NOT, segn se indica con la expresin

S = a b = ab + ab
expresin que no vamos a demostrar. En la figura se representa el cronograma de esta funcin. Es decir los valores que va tomando la funcin S a lo largo del tiempo segn los que tomen las variables a y b. Se ve que la salida nicamente toma el valor 1 cuando una y slo una de las variables de entrada tiene el valor 1. Puerta XNOR De forma anloga a las funciones OR y AND, tambin la funcin XOR tiene su correspondiente funcin complementada: la XNOR. Esta funcin, cuyas caractersticas se presentan en la Figura 1.8, tambin podra realizarse con una puerta XOR seguida de otra NOT, o bien con las funciones AND y OR que se indican en la siguiente expresin

S = a b = ab + ab
Esta puerta lgica podra utilizarse, por ejemplo, para comparar dos variables, de manera que diese como resultado un 1 cuando ambas variables fuesen iguales y un 0 cuando fuesen diferentes. (Ms adelante, entre los circuitos fundamentales, veremos otro tipo de comparador, algo ms complejo, que no slo indica si dos variables son iguales sino, tambin, cul de ellas es mayor)
a S b OR exclusivo negado S = a b = a b + a b
a 0 0 1 1 b 0 1 0 1 S 1 0 0 1

a b

Tabla de Verdad

a b ab S

S
Figura 1.8

En el lado derecho de la figura se representa el cronograma de esta funcin. Es decir los valores que va tomando la funcin S a lo largo del tiempo segn los que tomen las variables a y b. Se ve que la salida nicamente toma el valor 1 cuando las dos variables de entrada tienen el mismo valor, sea ste 0 o 1.

Realizacin de Funciones Lgicas


El objetivo fundamental de la Electrnica Digital es el diseo de circuitos electrnicos capaces de realizar funciones lgicas. Para ello se deben seguir una serie de pasos en los cuales el lgebra de Boole es una herramienta imprescindible. Evidentemente, la primera accin consiste en analizar el problema. Hemos dicho anteriormente que la Tabla de Verdad es el elemento que representa el comportamiento de una funcin segn los distintos valores que pueda tener cada una de las variables. En consecuencia, el primer paso ser desarrollar la Tabla de Verdad. A partir de ella se puede ya derivar una primera expresin algebraica de la funcin. Estructura y Tecnologa de Computadores (Seccin II)

74

Anlisis y Diseo de Circuitos Combinacionales

Esta expresin es nica y se conoce como Forma Cannica. Supongamos la Tabla de Verdad que incluimos en la pgina 2 y que reproducimos a continuacin a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 F 1 1 0 0 1 0 0 1 La funcin F toma el valor 1 en cuatro ocasiones: cuando a, b y c valen 0 , o lo que es lo mismo, cuando

a, b y c valen 1 , lo que se puede expresar como abc,


o bien cuando a y b valen 0 y adems c vale 1, lo que se puede expresar como a b c , o bien cuando a vale 1 y adems b y c valen 0, lo que se puede expresar como a b c , o bien cuando a b y c valen 1 simultneamente, lo que se puede expresar como a b c

La funcin F se puede expresar, por tanto, como la suma lgica (OR) de cada una de las expresiones anteriores, ya que para cada una de esas expresiones la funcin toma el valor 1. As pues, tendremos

F = a b c + a b c + a b c +a b c
En esta expresin se puede observar que hay tantos sumandos como combinaciones de las variables a, b y c con las cuales la funcin tome el valor 1, en nuestro caso, cuatro sumandos cada uno de los sumandos est formado siempre por el producto de las tres variables; pudiendo estar cada una de ellas complementada o no.

Puede demostrarse que slo hay una expresin que cumpla las condiciones anteriores y a ella se le conoce como Forma Cannica . (Este desarrollo en forma de suma de productos se conoce como desarrollo por minterms. Existe otra Forma Cannica desarrollada como producto de sumas que se conoce como desarrollo por maxterms y que no vamos a analizar). Esta Forma Cannica puede materializarse por medio de puertas lgicas y se tendra as el circuito digital para realizar la funcin deseada. Sin embargo, frecuentemente es posible encontrar expresiones ms simples que tambin realizan la misma funcin, que son por tanto equivalentes y que dan lugar a circuitos ms sencillos y, en consecuencia, ms econmicos. Esta expresin ms sencilla, si la hay, puede obtenerse aplicando las propiedades y Teoremas del lgebra de Boole antes enunciados, pero depende de la habilidad de quien est trabajando. Existen, sin embargo, procedimientos ms sistemticos para tal fin. El ms sencillo es el Mtodo de Karnaugh , que explicaremos posteriormente. Este mtodo es muy simple para funciones con un mximo de cuatro variables, es factible con cinco variables y realmente complicado con ms. Una alternativa es el Mtodo de Quine McClusky, bastante engorroso para su utilizacin manual pero muy adecuado para su programacin y, por tanto, utilizado habitualmente en el diseo de circuitos. Una vez obtenida la expresin lgica simplificada, slo nos queda representar el circuito empleando las puertas lgicas necesarias. En la Figura 1.9 se resumen los pasos necesarios anteriormente mencionados. Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

75

Realizacin de funciones lgicas


Pasos a seguir:
1.- Desarrollar la Tabla de Verdad (Anlisis del problema) Forma cannica de la funcin 2.- Simplificar la funcin y obtener su expresin lgica simplificada (Karnaugh) 3.- Representar el circuito con las puertas lgicas correspondientes

Figura 1.9 Mtodo de Karnaugh En sta y en las figuras siguientes se va a explicar el procedimiento a seguir para simplificar una funcin lgica expresada bajo su Forma Cannica. Nos limitaremos a explicar la mecnica del mtodo de Karnaugh omitiendo la demostracin matemtica de su validez por no corresponder a esta asignatura. En primer lugar hay que preparar un mapa de Karnaugh que represente la funcin de forma grfica. El mapa est formado por una serie de celdas, agrupadas en forma de rectngulo (o de cuadrado). El nmero de celdas del mapa coincide con el nmero de combinaciones de valores diferentes que teric amente pueden tomar las variables que definen la funcin y cada celda se corresponde con una de estas combinaciones. En la tabla siguiente se indica este nmero y la forma que toma el mapa segn el nmero de variables (en nuestro caso, un mximo de cuatro variables). N variables 2 3 4 N celdas 4 8 16 Mapa Cuadrado Rectngulo Cuadrado Columnas 2 4 4 Filas 2 2 4

En la Figura 1.10 se recoge el formato de los mapas de Karnaugh para 2, 3 o 4 variables.


a b ab ab

0 0 1
2 var.

00 01 11 10 0 1
3 variables

cd

00 01 11 10

00 01 11 10
4 variables

Figura 1.10 En la parte superior de cada columna del mapa se colocarn las combinaciones que pueden tomar las dos primeras variables de la funcin (o la primera en el caso de slo dos variables) exactamente en el orden que se indica 00 01 11 10 (0 y 1 en el caso de slo dos variables). Anlogamente se procede con las ltimas variables, pero colocando estos mismos valores a la izquierda de cada una de las filas. Debe tenerse en cuenta que es imprescindible seguir el orden indicado, aunque no se corresponda con el orden consecutivo de los valores numricos. Estructura y Tecnologa de Computadores (Seccin II)

76

Anlisis y Diseo de Circuitos Combinacionales

Seguidamente, cada celda se hace corresponder con una de las combinaciones posibles de la Tabla de Verdad y, entonces, se lleva a cada celda el valor correspondiente de la funcin para esa combinacin 0 1. En la Figura 1.11 se siguen estos pasos para la Tabla de Verdad correspondiente a la funcin que estamos empleando como ejemplo desde la pgina 2.
a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 c 0 1 0 1 0 1 0 1 F 1 1 0 0 1 0 0 1

ab c

00 01 11 10

0 1

1 1 1

Figura 1.11 NOTA: Por comodidad y para evitar posibles errores en los pasos posteriores, se recomienda llevar al mapa de Karnaugh nicamente los valores 1 de la funcin, dejando en blanco las celdas correspondientes a valores 0. Seguidamente llega el paso fundamental en el Mtodo de Karnaugh. Se deben agrupar todas las celdas que tienen el valor 1 para lo que se debe seguir el siguiente procedimiento, que se recoge en la Figura 1.12 :

ab c

00 01 11 10 0 1

1 1 1
Figura 1.12

formar grupos rectangulares con 2, 4, 8 16 celdas, comenzando siempre por los grupos mayores. (As agrupamos las dos celdas de la izquierda de la figura.) se consideran adyacentes las celdas perimetrales opuestas (as, forman grupo las dos celdas marcadas con trazos discontinuos en la figura, a izquierda y derecha) los grupos pueden superponerse parcialmente (en la figura se superponen el grupo sombreado y el marcado con trazo discontinuo) por ltimo se toman las celdas aisladas no cubiertas anteriormente (la celda aislada sombreada).

Hecha la agrupacin anterior, ya estamos en condiciones de escribir la expresin simplificada de la funcin cuya Tabla de Verdad estamos analizando. Para ello debemos tener en cuenta que esta funcin quedar expresada en forma de suma de productos Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

77

tendr tantos trminos como grupos hayamos formado en nuestro mapa de Karnaugh, incl uyendo aquellas celdas que hayan quedado aisladas

Cada sumando estar formado por el producto de aquellas variables cuyo valor no vare en las distintas celdas que forman el grupo. Para el primer sumando (en la figura el grupo de dos celdas sombreado), vemos que los valores de a y de b son 0 en ambas celdas, mientras que c toma el valor 0 en la celda superior y el valor 1 en la celda inferior; por tanto, para formar el sumando correspondiente a ese grupo se tomarn slo las variables a y b. Estas variables intervendrn en su forma negada cuando el valor correspondiente a ellas sea 0. (En nuestro caso, tanto a como b toman el valor 0 en estas celdas, por lo que aparecern negadas en el producto correspondiente: ab ). Para el segundo sumando (el correspondiente al grupo marcado con trazo discontinuo), intervendrn las variables b y c (la variable a toma el valor 0 en la celda de la izquierda y el valor 1 en la de la derecha, por lo que no entrar en este sumando). Como ambas variables toman el valor 0 en estas celdas, las dos aparecern negadas en el sumando correspondiente: bc . Slo queda el tercer sumando, formado por la celda aislada. En ella, intervienen las tres variables y las tres toman el valor 1 , por lo que aparecen sin negar: abc .

As se llegara a la expresin simplificada de nuestra funcin F , expresin que quedara como:

F = ab + bc + abc
(Podra haberse seguido un mtodo similar utilizando las celdas con 0 en lugar de 1, obtenindose una expresin en forma de maxterms o producto de sumas). Una vez conocida la expresin que define una funcin, su realizacin fsica por medio de puertas lgicas es inmediata. Basta con ir realizando cada sumando con la puerta o puertas lgicas correspondie ntes y, posteriormente, la suma de todos ellos se realizar por medio de puertas OR, tal y como se indica en la Figura 1.13 para tres funciones especialmente sencillas.
F = ab
a b F a b c ab F

F = ab + c

F = ab + cd
a b c d cd ab F

Figura 1.13 Por ltimo, en la Figura 1.14 se incluye el circuito correspondiente a la funcin que hemos venido analizando anteriormente. Podemos observar cmo se incluyen en ella puertas lgicas con ms de dos entradas: no son sino una extensin de la s puertas lgicas bsicas. Una puerta AND con varias entradas toma el valor 1 cuando todas sus entradas tienen el valor 1 , mientras que una puerta OR da el valor 1 cuando al menos una de sus entradas tiene el valor 1. A la hora de realizar funciones lgicas debemos tener en cuenta que:

Estructura y Tecnologa de Computadores (Seccin II)

78

Anlisis y Diseo de Circuitos Combinacionales

la simplificacin de una funcin no tiene por qu ser nica; a menudo es posible encontrar dos o ms expresiones equivalentes para una funcin con el mismo nivel de simplificacin. La nica expresin que define una funcin de forma unvoca es la forma cannica. si en el proceso de agrupacin de celdas del mapa de Karnaugh, dejamos sin formar algn grupo de mayor tamao, la expresin que obtengamos ser correcta desde un punto de vista funcional; es decir, la expresin que obtengamos y el circuito correspondiente, cumplirn con las especificaciones de la funcin, aunque no ser el ms sencillo posible. Todo ello, supuesto que realmente cubrimos la totalidad de celdas a 1 y que todos los grupos tienen forma rectangular. de acuerdo con la propiedad conmutativa, el orden en que se expresen los distintos sumandos es totalmente indiferente.
a b c a F = ab + bc + abc b b c ab F abc

bc

Figura 1.14 Por otra parte, debemos mencionar dos puntos importantes: puede demostrarse matemticamente que cualquier funcin puede expresarse empleando nicamente puertas NAND o nicamente puertas NOR, aunque la expresin resultante no sea la ms simplificada. la industria electrnica generalmente, por razones de costes, suele emplear exclusivamente puertas NAND o puertas NOR para la realizacin de funciones lgicas. Nosotros, por sencillez y teniendo en cuenta que los alumnos no debern disear circuitos en su vida profesional, continuaremos realizando las funciones lgicas tal y como hemos explicado en figuras anteriores.

Realizacin de Funciones Lgicas.- Ejemplo En la Figura 1.15 y en las siguientes veremos el ejemplo de un circuito lgico algo ms complicado. A diferencia del ejemplo anterior, ahora emplearemos funciones de cuatro variables y, adems, realizaremos dos funciones simultneamente con el mismo circuito. En este ejemplo nicamente tratamos de explicar la mecnica a seguir para la realizacin de un circuito, por lo que partimos de una Tabla de Verdad dada, que incluimos en la parte izquierda de la fig ura. Vemos cmo la Tabla de Verdad incluye dos funciones diferentes S1 y S2. Para cada combinacin de las variables de entrada se indican los valores que deben tomar tanto S1 como S2. Por ejemplo, cuando las variables de entrada a, b, c y d toman, respectivamente, los valores 1010 la funcin S1 debe dar el valor 0 y la funcin S2 el valor 1. (En una sola Tabla de Verdad se puede incluir un nmero ilimitado de funciones). Cada funcin da lugar a un mapa de Karnaugh diferente, al que se debern llevar los valores que tome esa funcin para cada una de las posibles combinaciones de las variables. En nuestro caso, por tanto, tendremos dos mapas de Karnaugh como se indica.

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

79

En el primer mapa se pueden formar dos grupos de cuatro celdas cada uno, teniendo en cuenta que celdas perimetrales opuestas se deben considerar adyacentes. Empleando el procedimiento descrito anteriormente se obtiene la funcin S1 que se indica en la figura, expresin que coincide con la de la funcin XOR.

a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

d S1 S2 0 0 1 1 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 1 0 0

00 01 11 10 00 1 1 01 1 11 1 10 1 1 1 1

00 01 11 10 00 1 1 1 01 1 11 10 1 1 1 1

S1= b d + b d S1= b d
Figura 1.15

S2 = a c + b c + b d

En el segundo mapa se pueden formar tres grupos de cuatro celdas. Uno de los grupos est formado por las celdas situadas en las cuatro esquinas del mapa. Aplicando la mecnica expuesta, se obtiene la expresin de la funcin S2. Dadas las expresiones obtenidas anteriormente para S1 y S2, la realizacin del circuito correspondiente es inmediata y se representa en la Figura 1.16.
a b c d

S1= b d S2 = a c + b c + b d

b d ac ac + bc bc

S1

S2 bd

Figura 1.16 Puede observarse en la figura cmo, se incluyen en primer lugar las puertas NOT para la negacin de las cuatro variables. Esta es una tcnica empleada frecuentemente ya que normalmente en un circuito de una cierta complejidad se tienen que emplear tanto las variables negadas como sin negar por lo que, en ocasiones, se consideran tambin como variables de entrada los valores negados, incluso aunque al-

Estructura y Tecnologa de Computadores (Seccin II)

80

Anlisis y Diseo de Circuitos Combinacionales

guna de las variables no se vaya a necesitar en su forma negada para el circuito en particular. (Esto ocurre en nuestro caso para la variable a). En esta representacin se han incluido nicamente puertas lgicas para dos variables. Si este circuito estuviese disponible comercialmente, nos entregaran simplemente una caja (el rectngulo que aparece en la Figura 1.17) con cuatro entradas (las variables) y dos salidas (las dos funci ones), sin que nos preocupase qu puertas lgicas ni qu conexiones realizan realmente estas funciones. (Evidentemente, tambin debera disponer de las entradas adecuadas para la alimentacin elctrica del circuito.)
a b c d

S1

(4 entradas y 2 salidas)
S2

Circuito Lgico

Figura 1.17

Anlisis de Circuitos
Aunque la funcin fundamental al tratar de circuitos lgicos consiste en el Diseo de Circuitos, lo que, tal y como hemos enunciado anteriormente, consiste en desarrollar circuitos que cumplan las funciones lgicas deseadas, tambin debe contemplarse el Anlisis de Circuitos. El Anlisis consiste en averiguar qu funcin desarrolla un circuito ya existente, es decir, obtener la ecuacin a la que responde. sto puede hacerse de dos formas diferentes, dependiendo de que contemos o no con el esquema fsico del circuito. Si no disponemos del esquema del circuito y simplemente sabemos cules son sus entradas y salidas, lo que deberemos hacer es deducir cul es la Tabla de Verdad correspondiente al circuito. Para ello iremos aplicando a las entradas todas las combinaciones posibles de valores y analizando cul es el valor de las salidas para cada combinacin. Una vez tengamos la Tabla de Verdad podemos deducir la expresin de su funcin, o funciones, lgica. Eventualmente, podemos tratar de simplificar el circuito original. En el caso de que dispongamos de un esquema del circuito, procederemos de acuerdo con lo expuesto en las figuras siguientes. En la Figura 1.18 se nos presenta el esquema de un circuito lgico en particular. Sobre l, podemos ir escribiendo a la salida de cada puerta la expresin lgica que realiza esa puerta. Deberemos comenzar siempre por aquellas puertas que estn conectadas a las variables, directamente o negadas (en nuestro caso las dos puertas AND del circuito). A continuacin seguiremos con las puertas que tengan como entrada las salidas de las anteriores y, si las hay, variables iniciales. Aqu tambin escribiremos las expresiones correspondientes. Por ejemplo, las entradas a la puerta OR de la parte superior de la figura son la variable a y la salida de una de las puertas AND anteriores (bc) . Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

81

Por este procedimiento llegaremos a las expresiones que representan a las funciones realizadas por el circuito. En nuestro caso las S1 y S2. Ahora bien, estas expresiones no tienen por qu ser las nicas posibles, por lo que tal vez haya otras equivalentes ms sencillas.
a b c d

bc + a S1 bc

ab

(ab) d S2

ab + d

S1 = bc + a + (ab) d S2 = ab + d

Figura 1.18 Cmo obtener estas expresiones ms sencillas? Simplemente, partiendo de la Tabla de Verdad. Para desarrollarla tendremos que averiguar los valores que toman las funciones S1 y S2 cuyas expresiones obtuvimos en la Figura 1.18 y que recordamos a continuacin

a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

d S1 S2 0 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1

S1 = bc + a + (ab) d S2 = ab + d
para cada una de las posibles combinaciones de las variables a, b , c y d, desde 0000 hasta 1111. Con ello obtenemos la Tabla de Verdad que aparece al margen y, a partir de ella, podemos obtener los mapas de Karnaugh correspondientes y las funciones simplif icadas (Figura 1.19).

00 01 11 10 00 1 1 1 01 1 1 1 11 1 10 1 1 1 1 1 1

00 01 11 10 00 1 01 1 11 1 10 1 1 1 1 1 1 1

S1 = a + bd + bd + + cd = = a + b d + cd
Figura 1.19

S2 = ab + d

En la primera funcin puede observarse que dos de los cuatro sumandos son

bd + bd
Lo cual, de acuerdo con lo visto en la Figura 1.7 de la pgina 8, equivale a la funcin XOR de estas variables ( b d ). As la funcin puede expresarse como se indica en la Figura 1.19.

Estructura y Tecnologa de Computadores (Seccin II)

82

Anlisis y Diseo de Circuitos Combinacionales

S1

S2

Figura 1.20 Una vez obtenidas las nuevas expresiones de las funciones S1 y S2, la representacin del nuevo circuito es inmediata (Figura 1.20) y algo ms sencilla que la del circuito original. Conviene no olvidar que aun cuando las expresiones pueden ser ms sencillas, sin embargo, las funci ones S1 y S2 son las mismas.

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Combinacionales

83

BIBLIOGRAFA RECOMENDADA: E. Alcalde y otros. Arquitectura de Ordenadores.- Mc Graw Hill. 1991 (Cap. 2) J.M. Angulo y otros. Sistemas Digitales y Tecnologa de Computadores.- Paraninfo 2002 M. Morris Mano y C.R. Kime. Fundamentos de Diseo Lgico y Computadoras.- Prentice Hall. 1998 (Cap. 1) W. Stallings. Organizacin y Arquitectura de Computadores.- Prentice Hall. 2000 (Cap. 8)

Estructura y Tecnologa de Computadores (Seccin II)

4
CIRCUITOS COMBINACIONALES FUNDAMENTALES
En el estudio de Circuitos Lgicos se distinguen dos grandes grupos: Circuitos Combinacionales Circuitos Secuenciales

La diferencia principal entre uno y otro tipo de circuitos es la inclusin o no del tiempo en su funcionamiento. Dados unos valores para las variables de entrada, un circuito combinacional presenta sie mpre el mismo valor en sus salidas, independientemente del momento en que se analicen estos valores. Sin embargo, un circuito secuencial puede presentar diferentes valores en diferentes momentos aun cuando los valores de las variables de entrada sean los mismos. En este tema nos ocuparemos de los circuitos combinacionales mientras que los circuitos secuenciales sern tratados en el tema siguiente. Veamos un ejemplo de cada tipo de circuito. Un simple sumador es un circuito combinacional; siempre que en la entrada se presenten, digamos, los valores 7 y 5, el resultado deber ser 12 sin ninguna otra consideracin. Consideremos, por el contrario un circuito que cuente el nmero de vehculos que pasan en un da por una calle: su entrada ser un simple sensor que, cada vez que pase un vehculo, enviar siempre la misma seal, un 1; sin embargo, la salida depender del valor que tuviese esta misma salida anteriormente: cuando hubiesen pasado 12 coches, una nueva seal pondr el contador en 13, pero si hubiesen pasado 24, un nuevo coche, produce la misma seal de entrada y, sin embargo, la salida del contador deber ser 25. Un contador es un circuito secuencial tpico. Como acabamos de comentar, el valor de las salidas de un circuito combinacional depende exclusivamente de los valores de las variables de entrada y de la configuracin del propio circuito. Entre los circuitos combinacionales se encuentran gran cantidad de los circuitos lgicos que se encuentran en un ordenador, adems de circuitos especficos para resolver determinados problemas. Seguidamente se estudiarn una serie de circuitos tpicos, presentes en gran cantidad de dispositivos electrnicos. Entre ellos podemos mencionar: Codificadores y Descodificadores Multiplexores y Desmultiplexores Convertidores de Cdigo Comparadores Operadores aritmticos (sumadores, restadores...)

4.1.- Codificadores
En la parte izquierda de la Figura 4.1 se representa esquemticamente un codificador: dispone de un determinado nmero de variables de entrada, a las que denominamos desde E0 hasta E2n-1 (por eje mplo, para n=3, desde E0 hasta E7), y presenta en sus salidas, desde S0 hasta Sn, (en nuestro ejemplo, para n=3, desde S0 hasta S7) el valor binario correspondiente a aquella de sus entradas que est activada (valor 1) en cada momento. En la parte derecha de la misma figura vemos que, cuando se activa la entrada E3, por ejemplo, se activan las salidas S0 y S1, mantenindose a 0 el resto, con lo que el conjunEstructura y Tecnologa de Computadores (Seccin II)

86

Circuitos Combinacionales Fundamentales

to de las salidas presenta el valor binario 011, es decir el 3 correspondiente a la entrada que tiene el valor 1.
E2n -1 E4 E3 E2 E1 E0

S n-1

E7 E4 E3 E2 E1 E0

0 0

Codificador

S2 S1 S0

0
1 0 0 0

S2 S1 S0

Codificador

Figura 4.1 Imaginemos como ejemplo los botones de un ascensor en un edificio de 24 plantas (por sencillez, los numeraremos del 0 al 23 y supondremos que no hay ms que estos 24 botones. Desde luego, no es necesario que el nmero de entradas sea potencia de dos, aunque el nmero de salidas s est determinado por el total de entradas). Supongamos que cada botn es una entrada a un codificador, que cuando se pulsa un botn se enva un 1 al codificador y cuando no se pulsa se enva un 0. Si se pulsa, por ejemplo, el botn 18, se enviar un 1 en la entrada nmero 18 y un 0 en todas las dems; el codific ador, que deber tener cinco variables de salida, colocar en ellas los valores 10010 (18 expresado en binario). Estas cinco variables de salida sern posteriormente empleadas por los circuitos de control del ascensor. En el caso ms sencillo hemos supuesto que no es posible tener dos entradas activas simultneamente y entonces diremos que se trata de codificadores sin prioridad. En el supuesto de que pueda haber varias entradas activadas simultneamente tendremos los llamados codificadores con prioridad . Para empezar, comenzaremos por un codificador muy sencillo: un codificador sin prioridad (una sola entrada activa) y con slo cuatro entradas. Otra condicin que vamos a imponer a este codificador tan elemental es la de que siempre tenga que estar activa una de las entradas. (Figura 4.2) Si tiene cuatro entradas, las podemos numerar de 0 a 3 y, por tanto se necesitarn slo dos variables de salida (desde 00 hasta 11).
E3 E2 E1 E0

Codificador 42

S1

Condiciones:

Slo 1 entrada activa S0 Siempre 1 entrada activa

Figura 4.2 De acuerdo con nuestro ejemplo anterior, sera el codificador necesario para la botonera de un ascensor de un edificio con slo cuatro plantas. Para disear el circuito correspondiente deberemos comenzar con la Tabla de Verdad, algo muy sencillo en este caso. Con las limitaciones que hemos impuesto, slo hay cuatro combinaciones posibles de las variables de entrada: un 1 en una de ellas y un 0 en las otras tres. Segn cul de ellas tenga el valor 1 , se deber codificar un nmero del 0 al 3 , segn aparece en las cuatro primeras lneas de la Tabla de Verdad (Figura 4.3, esquina superior izquierda).

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

87

E3 E2 E1 E0 S 1 S0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 Resto 0 0 0 1 1 0 1 1 X X 00 01 11 10 00 X 1 X 1 01 11 X 10 X X X X X X X X X S 1 = E2 + E3

E3 E2 E1 E0 Codificador 42

S1

00 01 11 10 00 X X 1 01 X X X X X X X X X 11 X 10 1 S 0 = E1 + E3

S0

Figura 4.3 Sin embargo, con cuatro variables de entrada hay 16 combinaciones matemticamente posibles, desde 0000 hasta 1111, aunque 12 de ellas son imposibles en el caso que estamos analizando. Estas combinaciones, por simplificar, se recogen en una nica lnea en la Tabla de Verdad, y los val ores de las salidas correspondientes a estas combinaciones los representamos por X. Estas X significan que nos da lo mismo poner un 0 o poner un 1, puesto que no se van a dar nunca esas combinaciones de las variables de entrada. En los mapas de Karnaugh correspondientes deberemos llevar los 1 y las X y, al efectuar la agrupacin de las celdas con 1, segn el procedimiento ya comentado, inclu iremos tambin aquellas celdas con X que nos permitan realizar grupos ms grandes. Ahora bien, en todos los grupos debe aparecer al menos una celda con un 1. Las celdas con X incluidas en algn grupo significan matemticamente que a esa combinacin de las variables de entrada le asignamos el valor 1 y a las no incluidas en ningn grupo les asignamos el valor 0 , pero tanto unas como otras representan combinaciones de las variables que en el caso real no se van a presentar. As tenemos los dos mapas incluidos en la Figura 4.3 y de los que obtenemos las expresiones de las funciones S1 y S0. Al realizar grupos de celdas ms grandes se posibilitan expresiones lgicas ms sencillas y por tanto circuitos lgicos ms simples... y ms econmicos. Con estas expresiones se obtiene el circuito que se representa en la Figura 4.4. El circuito, con cuatro entradas y dos salidas, est formado simplemente por dos puertas OR. E3 E2 E1 E0
S1

S0

Figura 4.4 Estructura y Tecnologa de Computadores (Seccin II)

88

Circuitos Combinacionales Fundamentales

Obsrvese que si no se hubiese empleado el truco de representar por X las celdas correspondientes a combinaciones imposibles de las variables de entrada, y combinarlas despus con los 1 segn nos interesase o no, no se habra podido agrupar ninguna celda con lo que las expresiones lgicas habran sido

S0 = E0 E1 E2 E3 + E0 E1 E 2E 3 S1 = E0 E1 E2 E3 + E0 E1 E 2E 3
bastante ms complicadas que las obtenidas.

El Inhibidor
Anteriormente hemos puesto como condicin que siempre debe haber una entrada activa, pero, qu podramos hacer si, en ciertas ocasiones, todas las entradas pudieran tomar simultneamente el valor 0? La solucin consiste en considerar que esta situacin es anmala, aunque posible, y en ese caso aadir una salida a la que llamaremos inhibidor y cuyo significado es el de transmitir a los circuitos que sigan al codificador el mensaje de que las salidas de ste deben considerarse como anmala. Por ejemplo, en nuestro ascensor con cuatro botones, qu pasa si no entra nadie en la cabina? Evidentemente no se pulsa ninguno de los botones y si mantuviese como vlido el circuito desarrollado anteriormente, con las funciones obtenidas, los valores que se tendran para S1 y S0 seran 0 en ambos casos. La salida 00 indicara a los circuitos que controlan los motores del ascensor que deban llevar la cabina a la planta 0, lo que no es necesario: si no hay nadie en la cabina sta debe permanecer en la planta en la que se encuentre. Sin embargo, si se aade el inhibidor, aunque las salidas S1 y S0 sean ambas 0, la salida I ( parte superior izquierda de la Figura 4.5) est indicando a los circuitos de control que ignoren estas salidas. Por el contrario, cuando la salida del inhibidor sea 0, los valores de S1 y S0 debern ser tomados en consideracin.
I E3 E2 E1 E0 E3 E2 E1 E0 S1 S0 I 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 Resto X X 1 0 0 0 0 1 0 1 0 0 1 1 0 X X X S0 E3 E2 E1 E0 S1 I Codifi cador 42 S1 S1 = E2 + E3 S0 = E1 + E3 S0 I = E3 E2 E1 E0

Figura 4.5 Para calcular las funciones resultantes en este caso, basta aadir una columna a la Tabla de Verdad: la correspondiente a la salida adicional que acabamos de incluir; es decir, el Inhibidor. Su valor ser 1 slo cuando todas las entradas valgan 0 , el primer rengln de la Tabla de la Figura 4.5. En este caso los valores de S1 y S0 son indiferentes, pues precisamente la funcin del inhibidor es la de ignorar esos valores.

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

89

As podemos ver cmo las funciones resultantes para S1 y S0 son las mismas que se obtuvieron anteriormente mientras que la correspondiente al inhibidor es la que se indica en la Figura 4.5: slo es 1 cuando las cuatro entradas valen 0, es decir, cuando sus negadas valen 1. Obsrvese que en este caso las X includas en la primera lnea conceptualmente son diferentes de las que aparecen al final de la Tabla de Verdad. Las primeras corresponden a un caso posible (ninguna entrada activada), mientras que la s dems corresponden a casos que hemos definido como imposibles (hemos supuesto que no pueden activarse simultneamente dos o ms entradas). Sin embargo, matemticamente el tratamiento es el mismo en ambos casos. En el primer caso (todas las entradas a 0), las salidas tomarn realmente el valor 0 o 1, aunque nos da lo mismo el valor que tomen puesto que la activacin del Inhibidor i n dica que los valores de S0 y de S1 no deben ser tomados en consideracin. Sin embargo, en el resto de los casos nos da lo mismo dar el valor 0 o 1 a las salidas puesto que estos casos nunca se van a presentar. El concepto de casos imposibles y de casos indiferentes se ha presentado al tratar del codificador, pero se trata de algo comn a muchsimos circuitos, tanto entre los circuitos tpicos que veremos posteriormente como entre circuitos especficos como los que se vern en los ejercicios que se propondrn a lo largo del curso. Aunque hemos introducido el concepto de inhibidor al describir el codificador, esta misma salida puede estar presente en cualquier otro circuito. Su funcin es siempre la misma: invalidar, por as decirlo, el resto de las salidas del circuito.

Concepto de Prioridad
Otra de las condiciones impuestas inicialmente a un codificador tampoco tiene sentido en muchas ocasiones. Por qu no se va a permitir que se puedan activar simultneamente varias de las entradas al codificador? Lo que ocurre es que habr que decidir cul de las entradas activas es la que se debe codificar en este caso. Si, por ejemplo, se activan simultneamente las entradas E1 y E3 qu salida debe producir el codificador, 01 o 11? Cul debe ser la entrada prioritaria? Bsicamente hay dos alternativas, codificar la entrada ms alta, en cuyo caso hablamos de codificadores con prioridad alta , o codificar la ms baja y, entonces, tendremos codificadores con prioridad baja .
E3 E2 E1 E0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 S1 X 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 S0 X 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 I 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 01 11 10 00 X 1 1 1 01 11 10 1 1 1 1 1 1 1 1 1 S1 = E2 + E3

00 01 11 10 00 X 1 1 01 11 1 10 1 1 1 1 1 1 1 S0 = E3 + E2E1

Figura 4.6

Estructura y Tecnologa de Computadores (Seccin II)

90

Circuitos Combinacionales Fundamentales

En la Figura 4.6 se incluye la Tabla de Verdad correspondiente. Vemos que ya no hay casos impos ibles; a lo sumo, si consideramos tambin el inhibidor, tendremos valores indiferentes para S1 y S0 en el caso de que no est activa ninguna de las entradas. En la misma figura se indican las expresiones de las funciones S1 y S0 que se obtienen en el caso de codificadores con prioridad alta e inhibidor, algo ms complicadas que si no se permite la activacin de ms de una entrada simultneamente. Naturalmente, la expresin para el Inhibidor es la misma obtenida al presentar el concepto de inhibidor. El circuito resultante se incluye en la Figura 4.7.
E3 E2 E1 E0

S0 = E3 + E2 E1 S1 = E2 + E3 I = E0 E1E2E3 S0 S1 I

Figura 4.7

Codificador Decimal-BCD
Otro tipo de codificador muy comn en la prctica es el que codifica un va lor decimal a su correspondiente BCD. El esquema bsico se indica en la Figura 4.8. En realidad se trata de un caso particular del Codificador Binario que vimos anteriormente. Supongamos el marcador de un campo de ftbol; en l, el encargado de su manejo dispone de un teclado con teclas del 0 al 9 que se corresponden con las entradas al codificador, mientras que las salidas sern los valores BCD correspondientes a la entrada activada. Esta salida puede, a su vez, ser la entrada correspondiente a un circuito tambin muy comn y que veremos ms adelante que permite representar por medio de 7 trazos el dgito correspondiente en una pantalla. Si, por ejemplo, se pulsa la tecla 3 la salida deber ser este valor en BCD, es decir, 0011.
E9 E8 E7 E6 E5 E4 E3 3 E2 E1 E0 I S3

Codificador Decimal - BCD

S2
1

S1 S0

Figura 4.8 Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

91

Para el diseo del circuito supondremos que, mientras no se pulsa ninguna tecla, el marcador debe estar apagado, por lo que le dotaremos de inhibidor. (Obsrvese que no es solucin dejar a 0 todas las salidas, pues sta sera la configuracin correspondiente al valor decimal cero). El inhibidor es una indicacin a los circuitos que vengan a continuacin para que no se atienda al contenido de las salidas S0 a S3. Tambin supondremos que slo se permite pulsar una tecla, por lo que no incluiremos la posibilidad de prioridad. En este caso tenemos diez variables de entrada, por lo que la Tabla de Verdad podra tener 210 casos matemticamente posibles, algo totalmente inmanejable empleando el mtodo de Karnaugh. Por tanto, nos limitaremos a incluir los casos que hemos considerado realmente posibles: no pulsar ninguna tecla (primera lnea de la Tabla de Verdad) o pulsar slo una, tal y como se indica en la Figura 4.9. En definitiva, se trata de un circuito con inhibidor y sin prioridad. Vemos que, a cada tecla, se deben activar las salidas correspondientes de manera que se obtengan los cdigos BCD de cada caso; por ejemplo, vemos que si se pulsa la tecla E7, que corresponde al valor decimal 7, se debe obtener su valor BCD, es decir 0111.
E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 I E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 S3 S2 S1 S0 S3 I 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 X 0 0 0 0 0 0 0 0 1 1 X 0 0 0 0 1 1 1 1 0 0 X 0 0 1 1 0 0 1 1 0 0 X 0 1 0 1 0 1 0 1 0 1

Cod. DecBCD

S2 S1 S0

Con inhibidor Sin prioridad

Figura 4.9 En la Tabla de Verdad de la Figura 4.9 vemos que la salida S3 slo puede tomar el valor 1 cuando sea 1 la entrada E8 o la E9, por lo que su expresin sera S3 = E8 + E9 y anlogamente para el resto de las funciones: S3 = E8 + E9 S2 = E4 + E5 + E6 + E7 S1 = E2 + E3 + E6 + E7 S0 = E1 + E3 + E5 + E7 + E9 Tambin se ve inmediatamente que el inhibidor slo debe estar activo ( I=1) cuando todas las entradas sean 0, lo que nos da lugar a la expresin siguiente: I = E9 E8 E7 E6 E5 E4 E3 E2 E1 E0 Con todo lo anterior, nicamente falta representar el circuito correspondiente, lo que hacemos en la Figura 4.10. Obsrvese que, para no complicar demasiado el dibujo, no se han incluido las puertas NOT para negar cada una de las entradas E0 a E9, que deberan entrar en la puerta AND correspondiente al inhibidor, de la que, por igual razn, slo se han representado dos de las entradas. Estructura y Tecnologa de Computadores (Seccin II)

92

Circuitos Combinacionales Fundamentales

E9 E 8 E 7 E6 E 5 E4 E 3 E 2 E1 E 0 S3 S2 S1 S0
E9 E0

Figura 4.10

4.2.- Descodificadores
El siguiente circuito fundamental que vamos a analizar es el Descodificador (Figura 4.11). Su funcin es inversa a la del Codificador: dada una entrada codificada de algn modo (por ejemplo, en binario) se activa una de las salidas del circuito. Un ejemplo podra ser el circuito de control de un ascensor. A medida que la cabina va pasando por las diferentes plantas, los circuitos van registrando (en binario) la planta en la que se encuentra y esta informacin puede ser la entrada de un descodificador que active una de sus salidas: la correspondiente a la planta en cuestin, que puede ser reflejada en un panel luminoso que disponga de tantas casillas como plantas, tal y como se puede ver en ascensores relativamente antiguos.
0

E n-1 E2 E1 E0

S2n-1 S4 S3 S2 S1 S0

1 0 0

Descodificador

1 0 0 0 0

Slo una salida activa

Figura 4.11 En la figura vemos cmo cuando en la entrada se presenta, por ejemplo, el valor binario 0...100 (es decir el cuatro), se pone en 1 la salida correspondiente, S4. Evidentemente, en la entrada el nmero de variables a 1 puede ser cualquiera; segn el valor del nmero binario que formen, ser una u otra (pero slo una) la salida que se ponga en 1. En la Figura 4.12 representamos el esquema y la Tabla de Verdad del descodificador ms simple: dos entradas ( E1 y E0) y cuatro salidas (S3 a S0).
E1 E 0 S3 S2 S1 S 0 E1 E0

Descod. 2x4

S3 S2 S1 S0

0 0 0 1 1 0 1 1

0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0

Figura 4.12 La entrada, en binario podr tener valores desde 00 hasta 11 (0 a 3 en decimal), de ah las cuatro salidas, a las que denominaremos S3, S2, S1 y S0. Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

93

Cuando en la entrada se tenga, por ejemplo, el valor 10 (2 en decimal), se deber activar la salida S2 y anlogamente para el resto de los valores de la entrada, con lo que tendremos la Tabla de Verdad (con dos variables de entrada y cuatro funciones de salida) que se incluye en la figura. De esta Tabla de Verdad se obtienen inmediatamente las expresiones para las funciones S3 a S0, sin necesidad de emplear el mapa de Karnaugh ya que el valor 1 en la Tabla de Verdad slo se presenta en cada funcin, para una de las combinaciones de las variables de entrada: S3 = E1 E0 S2 = E1 E0 S1 = E1 E0 S0 = E1 E0 Con las expresiones anteriores, la representacin del circuito es inmediata y se recoge en la Figura 4.13

E1

E0

E1

E0 S3 = E1E0 S2 = E1E0 S1 = E1E0 S0 = E1E0

Figura 4.13 Nota.- Preferimos emplear el trmino descodificador en lugar de decodificador , derivado del ingls decoder, y posiblemente empleado con ms frecuencia, por entender que se trata de una palabra ms correcta en espaol, de igual modo que decimos destornillador en lugar de detornillador, despiezar en lugar de depiezar o multitud de ejemplos similares.

El Activador
Ahora bien, a este descodificador le hemos impuesto una condicin que no tiene por qu estar siempre presente. Hemos dicho que siempre debe haber una salida activada. Sin embargo, puede haber ocasiones en las que interese que todas las salidas estn inactivas, es decir que todas tengan el valor 0. (Supongamos que, por ejemplo, nuestro ascensor est en mantenimiento; en ese caso posiblemente no nos interese indicar en qu planta se encuentra.) La solucin para esta situacin consiste en aadir al descodificador una entrada ms, A, a la que llamaremos Activador (Figura 4.14). Cuando esta entrada toma el valor 1 , el descodif icador estar activo y funcionar tal y como hemos indicado en las figuras anteriores, mientras que si el Activador toma el Estructura y Tecnologa de Computadores (Seccin II)

94

Circuitos Combinacionales Fundamentales

valor 0 , el descodificador estar inactivo y todas sus salidas se pondrn a 0. (Obsrvese que cuando decimos que est inactivo no significa que est apagado; el descodificador est conectado, funciona pero presenta el valor 0 en todas sus salidas). En estas condiciones, nuestra Tabla de Verdad se modifica para incluir la entrada adicional correspondiente al Activador. Cuando esta entrada est a 0, todas las salidas deben ponerse a 0, segn se recoge en la primera lnea de la Tabla de Verdad, mientras que cuando tiene el valor 1 , las salidas actuarn como en el supuesto de ausencia del activador.
A E1 E 0 S3 S 2 S 1 S0 0 X X 1 0 0 1 0 1 1 1 0 S 3 = E1E0 A S 2 = E1E0A S 1 = E1E0A S 0 = E1E0A 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0

E1 E0

Descod. 2x4

S3 S2 S1 S0

Figura 4.14 sto supone que las ecuaciones anteriores se modifican simplemente, haciendo el producto lgico de cada una de ellas por A. Podemos interpretar estas ecuaciones diciendo que cada una de las salidas estar activa (su valor ser 1) de acuerdo con los valores de las entradas E0 y E1 pero slo si A = 1, es decir, slo si el descodificador est activado. Con las ecuaciones anteriores, la representacin del circuito resultante es inmediata (Figura 4.15). Podemos ver que nicamente hemos aadido a cada una de las puertas AND de la Figura 4.13 la entrada correspondiente al Activador; cuando su valor sea 0 la salida de todas ellas ser tambin 0 mientras que cuando su valor fuera 1 , las salidas actuarn exactamente igual que en un descodificador sin activador.
E1 E0 A

E1

E0 S3 = E1E0 A S2 = E1E0 A S1 = E1E0 A S0 = E1E0 A

Figura 4.15 Conviene mencionar que aunque hemos presentado el Activador al hablar de descodificadores, puede estar presente tambin en otros tipos de circuitos: su funcin consiste, simplemente en poner a 0 todas las salidas de un circuito. Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

95

Descodificadores en Cascada
Hemos diseado anteriormente un descodificador extraordinariamente sencillo. En la realidad los descodificadores debern, normalmente, disponer de ms entradas. Un primer paso sera un descodificador con 3 entradas y, en consecuencia, 8 salidas (Figura 4.16).
E 2 E 1 E0 S7 S6 S5 S 4 S3 S 2 S 1 S0

E2 E1 E0 Descod. 3X8

S7 S6 S5 S4 S3 S2 S1 S0

000 00000001 001 00000010 010 00000100 011 00001000 100 00010000 101 00100000 110 01000000 111 10000000

Figura 4.16 En la figura se representa la Tabla de Verdad correspondiente, y para su diseo podramos proceder a obtener las ecuaciones de cada una de sus ocho salidas, tal y como se indica seguidamente, y a representar el circuito resultante. S0 = E0 E1 E2 S1 = E0 E1 E2 S2 = E0 E1 E2 S3 = E0 E1 E2 S4 = E0 E1 E2 S5 = E0 E1 E2 S6 = E0 E1 E2 S7 = E0 E1 E2

Sin embargo, vamos a emplear otro mtodo, consistente en utilizar dos descodif icadores ms simples (de 2 entradas y cuatro salidas, con activador). Si analizamos detenidamente la Tabla de Verdad de este descodificador (Figura 4.16) podemos observar que, mie ntras en la entrada E2 tengamos el valor 0 (decimales de 0 a 3 , que corresponden a las cuatro primeras lneas de la tabla) deberamos activar una (y slo una) de las salidas S0 a S3.
E2 E1 E0 S7 S6S5 S4 S3 S2 S1 S0

0 0 0 0

0 0 1 1

0 1 0 1

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

Figura 4.17 En realidad, podemos ver cmo se trata de la Tabla de Verdad correspondiente a un descodificador de 2 entradas, E0 y E1, y cuatro salidas, S0 a S3. En la Figura 4.17 hemos repetido estas cuatro primeras lneas sombreando en ellas la Tabla de Verdad correspondiente a ese descodificador de dos entradas). El descodificador debe estar activado, para lo cual deber negarse la entrada E2 (E2 = 0; E2 = 1). Denominaremos a este descodificador como n 1.

Estructura y Tecnologa de Computadores (Seccin II)

96

Circuitos Combinacionales Fundamentales

E2 E1 E0 S7 S6S5 S4 S3 S2 S1 S0

1 1 1 1

0 0 1 1

0 1 0 1

0 0 0 1

0 0 1 0

0 1 0 0

1 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

Figura 4.18 Igualmente, si en la entrada E2, tenemos el valor 1, (decimales de 4 a 7) deberemos poner a 1 una (y slo una) de las salidas S4 a S7. En la Figura 4.16 vemos que esta situacin se corresponde con las cuatro ltimas lneas de la Tabla de Verdad, que hemos destacado, sombrendola en la Figura 4.18. Para ello podemos utilizar tambin otro descodificador (el n 2) de 2 entradas (tambin E0 y E1) que est activado cuando E2 tome el valor 1. Por otra parte, cuando el valor de la entrada sea inferior a 4 (E2 = 0), el descodificador n 2 deber tener todas sus salidas a 0, es decir estar desactivado y cuando sea superior a 3, (E2 = 1) ser el descodificador n 1 el que deber presentar todas sus salidas a 0 para lo que deber desactivarse.

A
Desc. 2X4
(n 2)

S7 S6 S5 S4

E2 E1 E0

A
Desc. 2X4
(n 1)

S3 S2 S1 S0

Figura 4.19 En la Figura 4.19 vemos cmo podemos conseguir sto empleando la entrada E2. Cuando sta valga 0 debe estar activo el primer descodificador (lo conseguimos negando E2 y conectndolo a su activador) mientras que el segundo descodificador debe estar inactivo, lo que conseguimos conectando directamente E2 al activador de este descodificador. Esta misma conexin funciona correctamente cuando E2 toma el valor 1 : se mantiene desactivado el primer descodificador y activo el segundo. Esta tcnica consistente en conseguir circuitos complejos a partir de otros ms simples es til para laboratorios o pequeos talleres que pueden obtener rpida y econmicamente circuitos que tal vez no estn disponibles en el mercado a partir de otros ms sencillos. En este caso, hemos acabado obteniendo un descodificador de 3 entradas y 8 salidas. El mismo procedimiento podra emplearse para realizar un descodificador de 4 entradas (E3 a E0) y 16 salidas, empleando cuatro descodificadores de 2 x 4 (que, empleando las entradas E1 y E0, nos proporEstructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

97

cionaran las 16 salidas) ms otro descodificador igual cuyas salidas estuviesen controladas por los valores de E3 y E2 y, en funcin de estos valores, fuesen activando sucesivamente cada uno de los cuatro descodificadores. Se recomienda al alumno un examen detenido de la Figura 4.20 para comprender totalmente el funcionamiento de este circuito.
A S15

Desc. 2x4
(n 4)

S14 S13 S12

S11

Desc. 2x4
E3 E2

S10 S9 S8

Desc. 2x4
A

(n 3)

S7

E1 E0

Desc. 2x4
(n 2)

S6 S5 S4

S3

Desc. 2x4
(n 1)

S2 S1 S0

Figura 4.20

Descodificador BCD-Decimal
Un descodificador muy frecuentemente empleado es aqul cuya entrada es BCD y su salida decimal. Tiene, evidentemente, 4 entradas y diez salidas (Figura 4.21) por lo que slo son vlidas las combinaciones de entrada desde 0000 hasta 1001. Qu ocurre con las combinaciones, matemtic amente posibles, desde 1010 hasta 1111? Que no sean vlidas, no significa necesariamente que no puedan presentarse. En nuestro diseo supondremos que estas combinaciones pueden darse y que, nuestro descodificador, en ese caso pondra a 0 todas las salidas desde s 0 a s 9 y adems activara una salida adicional que indic ase el error en la entrada; esta salida, en definitiva, no es sino un inhibidor.
I s9 s8 s7 s6 s5 s4 s3 s2 s1 s0 e3 e2 e1e 0 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Resto s 9s8 s7 s6s 5 s4 s3s 2 s1 s0 I 00000000010 00000000100 00000001000 00000010000 00000100000 00001000000 00010000000 00100000000 01000000000 10000000000 00000000001

e3 e2 e1 e0 Descod. BCDdecimal

Figura 4.21 Como hemos optado por la alternativa de que los casos en los que la entrada fuese superior a 1001 son imposibles, slo aparece una entrada a 1 en cada funcin, por lo que la obtencin de las ecuaciones lgicas correspondientes para las funciones s 0 a s 9 es ya inmediata:

s 0 = e3e2 ee 1 0

s1 = e3e2 ee 1 0

Estructura y Tecnologa de Computadores (Seccin II)

98

Circuitos Combinacionales Fundamentales

s 2 = e3e2 ee 1 0 s 4 = e3e2 ee 1 0 s 6 = e3e2 ee 1 0 s 8 = e3e2 ee 1 0

s 3 = e3e2 ee 1 0 s 5 = e3e2 ee 1 0 s 7 = e3e2 ee 1 0 s 9 = e3e2 ee 1 0

Vista la Tabla de Verdad de la Figura 4.21, se observa que toma el valor 1 para todas las combinaciones a partir del 1010 , combinaciones errneas en BCD natural. As llegamos al mapa de Karnaugh representado en la Figura 4.22 y, a partir de l obtenemos la expresin que nos da la ecuacin lgica para la funcin I:

I = e 3 e 2 + e3 e1

00 01 11 10 00 1 01 11 10 1 1 1
Figura 4.22 Tambin podramos haber supuesto que las combinaciones invlidas, no van a presentarse nunca. Entonces, estos casos los consideraramos casos imposibles (X en la Tabla de Verdad) y no necesitaramos el inhibidor. El elegir una alternativa u otra depende, evidentemente, del problema resolver y es responsabilidad del diseador del circuito. Ya slo resta dibujar el circuito correspondiente, lo que hacemos en la Figura 4.23 en la que se han omitido las puertas AND correspondientes a las salidas s 0 a s 9 para poder representar el dibujo con mayor comodidad.
S9 = e 3e 2e 1e 0 S8 = e 3e 2e 1e 0 S7 = e 3e 2e 1e 0 S6 = e 3e 2e 1e 0 S5 = e 3e 2e 1e 0 S4 = e 3e 2e 1e 0 S3 = e 3e 2e 1e 0 S2 = e 3e 2e 1e 0 S1 = e 3e 2e 1e 0 S0 = e 3e 2e 1e 0 I = e 3e 2 + e 3e 1 s0 I
e3 e2 e1 e0 e3 e2 e1 e0

1 1

s9

Figura 4.23

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

99

4.3.- Multiplexores
El siguiente tipo de circuito que vamos a tratar es el Multiplexor (Figura 4.24). En este circuito, aparece una nueva clase de variables de entrada al circuito. Adems de las variables de entrada propiamente dichas, variables de datos E0, E1, etc, estn presentes unas variables adicionales C0,C1, etc, llamadas variables de seleccin que, como su propio nombre indica, eligen una, y slo una, de las variables de entrada. El Multiplexor se encarga de tomar el valor de la variable de entrada seleccionada y colocarlo en la nica salida del circuito. Podemos decir as que el Multiplexor se encarga de conectar una de las entradas con la salida, de acuerdo con las instrucciones recibidas a travs de las variables de seleccin.
Ei E3 E2 E1 E0 Ei

Multiplexor

E2 E1 E0

Cn-1 C 1 C0

Figura 4.24 Podramos, de alguna forma, equipararlo con las mltiples vas de una estacin ferroviaria; de acuerdo con las necesidades de movimiento de trenes, una de las vas, y slo una en cada momento, se conecta a la va de salida a travs de los cambios de aguja necesarios. Hay varios trenes en la s vas de la estacin (variables de entrada con el valor 1 si tienen un tren estacionado y valor 0 si no lo hay), pero slo uno puede salir en un momento dado: aqul que el Jefe de Estacin elija (actuando como mult iplexor). Si se eligiese una va que no tuviese ningn tren estacionado en ella, evidentemente el mult iplexor funcionara igual, slo que no se pondra ningn tren en la va de salida, es decir, se colocara en ella el valor 0, el mismo de la entrada. Al no poder emplear la S para las variables de seleccin por utilizarla para las salidas, hemos tomado la letra C, inicial de choice, (eleccin en ingls), empleada en muchas publicaciones en ese idioma. En la Figura 4.25 se presenta un ejemplo del funcionamiento del multiplexor.

Ei E3 E2 E1 E0

1 0 0 1

Multiplexor

Cn 0 C1 C0 1 1
Figura 4.25

Estructura y Tecnologa de Computadores (Seccin II)

100

Circuitos Combinacionales Fundamentales

Si en las variables de seleccin se coloca, por ejemplo, el valor 00...011 , es decir, 3 en binario, se tomar el valor que presente la entrada E3 y se colocar en la salida; en nuestro caso se colocar en la salida el valor 1 , por ser ste el valor de la entrada seleccionada. Si en las variables de seleccin hubisemos colocado el valor 00..010 la entrada seleccionada sera la E2 y el valor colocado en la salida sera entonces el 0. El multiplexor ms sencillo sera aqul que tuviese nicamente dos entradas; con una variable de sele ccin podramos elegir cul de las entradas tomar. Sin embargo (Figura 4.26), vamos a desarrollar un circuito algo ms complejo, cuya dificultad, sin embargo, es mnima. Se trata de un multiplexor con cuatro variables de entrada (E0 a E2) que necesitar, por tanto, dos variables de seleccin (C0 y C1).
C1 C0 E3 E2 E1 E0 S

E3 E2 E1 E0 C1 C0

Multiplexor

0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1

X X X X X X 0 1

X X X X 0 1 X X

X X 0 1 X X X X

0 1 X X X X X X

0 1 0 1 0 1 0 1

S = E0C 0C 1 + E1C 0C 1 + E2C0C1 + E3 C 0C1

Figura 4.26 En la figura se indica la Tabla de Verdad correspondiente a ese circuito. Obsrvese cmo, dados los valores de las variables de seleccin, por ejemplo, 10 , el valor de la funcin depende nicamente de la variable seleccionada. En este caso la salida tomar el valor 0 si la entrada E2 tiene el valor 0, con independencia de los valores presentes en las otras entradas, mientras que tomar el valor 1 si fuera ste el valor presente en E2. El circuito resultante se representa en la Figura 4.27

E3 E 2 E1 E0

C1 C0

Figura 4.27 La ecuacin indicada en la Figura 4.26 se puede leer as: La salida tomar o bien el valor presente en E0, si el valor de las variables de seleccin es 00, o bien el valor presente en E1, si el valor de las variables de seleccin es 01, o bien el valor presente en E2, si el valor de las variables de seleccin es 10, Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

101

o bien el valor presente en E3, si el valor de las variables de seleccin es 11

Si analizamos detenidamente la ecuacin obtenida para la salida de un multiplexor que obtuvimos en la Figura 4.26, podemos ver que los diferentes productos lgicos de las variables de seleccin que aparecen en esa ecuacin se corresponden con los obtenidos como salida de un descodificador de dos entradas, en las que stas fuesen las variables de seleccin. ( S 0 = C 0 C 1 , y as sucesivamente). Segn sto, un multiplexor podra tambin obtenerse a partir de un descodificador de dos entradas, como se indica en la Figura 4.28. De las cuatro salidas del descodificador, tres de ellas sern 0, por lo que de las cuatro puertas AND que aparecen en la misma, siempre habr tres con un 0 en una de sus entradas y, por tanto, en su salida. La otra puerta AND , tendr un 1 en la entrada que se corresponde con la nica salida a 1 del descodificador (de acuerdo con los valores de las variables de seleccin, C0 y C1) por lo que el valor de su salida ser el mismo que tenga la entrada E a ella conectada, es decir la entrada se elige de acuerdo con los valores de las variables de seleccin.
E0 E 1 E2 E3

C1 C0

Desc. 2x4

S3 S2 S1 S0

Figura 4.28

Descodificadores en cascada
En la Figura 4.29 vemos cmo pueden obtenerse multiplexores con ms entradas (y ms variables de seleccin, por tanto) a partir de multiplexores sencillos, de forma anloga a la empleada en el caso de los descodificadores.
E7 E6 E5 E4 C2

MPX1 A
(n 2)

c1 c0
E3 E2 E1 E0

S A MPX0
(n 1)

Figura 4.29 En este caso suponemos que se quiere obtener un multiplexor con ocho entradas y tres variables de seleccin a partir de dos multiplexores de cuatro entradas y, por tanto dos variables de seleccin.

Estructura y Tecnologa de Computadores (Seccin II)

102

Circuitos Combinacionales Fundamentales

Mientras las variables de seleccin tengan valores entre el 000 y el 011 , es decir entre el 0 y el 3 decimales, la entrada a seleccionar ser una entre la E0 y la E3 y ser el primer MPX quien se encargue de seleccionar esta variable. Para ello se conecta la variable de seleccin de mayor nivel (la C2, que en este caso tendr el valor 0), al activador por medio de una puerta NOT para que el multiplexor quede activado. Si esta misma variable de seleccin C2, se conecta directamente al segundo multiplexor ste quedar desactivado y su salida, por tanto ser 0 mientras C2 sea 0. Por el contrario, cuando las variables de seleccin tengan valores entre 100 y 111, se debe seleccionar una de las entradas E4 a E7 y, en ese caso, ser el primer multiplexor el que permanecer inactivo, (su salida ser 0) y el segundo, que estar activo, ser quien se encargue de hacer la seleccin deseada. Como en casos anteriores, la combinacin de estos dos multiplexores de cuatro entradas y dos variables de seleccin es funcionalmente equivalente a un multiplexor con ocho entradas y tres variables de seleccin (Figura 4.30).
E7 E6 E5 E4

MPX1 A S A

E7

C2 C1 C0
E3 E2 E1 E0

MPX 8X3X1
E0 C2 C1 C0

MPX0

Figura 4.30

4.4.- Desmultiplexores
El siguiente circuito tpico que vamos a analizar es el desmultiplexor. Su funcin es inversa a la del multiplexor; toma el valor presente en la entrada, nica, y lo coloca en una salida, elegida segn los valores de las variables de seleccin mientras que el resto de las salidas se dejan a 0 (Figura 4.31).
0 1

Desmultiplexor (DMPX)
0

Si S3 S2 S1 S0 E

Si S2 S1 S0

1 0 0 0

Cn-1

C1 C 0

Figura 4.31 En esta figura vemos cmo, si el valor de la entrada es 1 y se selecciona la salida S3 (por medio de las variables C0 y C1 a las que se da el valor 11, dejando a 0 el resto de las variables de seleccin), este valor 1 de la entrada se coloca precisamente en la salida S3, dejando el resto de las salidas al valor 0. En la Figura 4.32 se analiza el desmultiplexor de cuatro salidas, que requerir, por tanto, dos variables de seleccin. La Tabla de Verdad es inmediata: el valor presente en la entrada ( 0 1 ) se deber colocar en la salida indicada por las variables de seleccin dejando el resto de las salidas a 0.

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

103

E C1 C 0 S3 S2 S1 S0 S3 E S2 S1 S0 C1 C0 S0 = E C1 C 0 S1 = E C1 C 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0

DMPX

S2 = E C 1 C0 S3 = E C 1 C0

Figura 4.32 Con esta Tabla de Verdad, las ecuaciones correspondientes a las cuatro salidas son las que se indican en la propia figura. Vemos que, tal y como debe ser, la salida cuyo valor es igual a la entrada es aquella que se corresponde con las variables de seleccin. Dadas las ecuaciones de la Figura 4.32, la representacin del circuito es inmediata (Figura 4.33).
C1 C0 E

S3 S2 S1 S0

Figura 4.33

4.5.- Realizacin de funciones a partir de circuitos bsicos


Hemos visto hasta ahora un procedimiento basado en lgebra de Boole para obtener las expresiones correspondientes a funciones lgicas simplificadas para cualquier problema resoluble por medio de circuitos combinacionales. A partir de esas ecuaciones, la obtencin del circuito por medio de puertas lgicas es inmediata. Sin embargo, no es sta la nica forma de disear circuitos lgicos. Hay otros procedimientos mucho ms sencillos, ms directos, aunque, tal vez, den lugar a circuitos menos simplific ados.

Realizacin de funciones con descodificadores


Veamos, por medio de un ejemplo, cmo pueden realizarse funciones mediante el empleo de un descodificador. Supongamos que deseamos realizar una funcin cuya Tabla de Verdad sea la indicada en la Error! No se encuentra el origen de la referencia. . Segn vemos, deseamos que la funcin X tenga el valor 1 cuando las variables de entrada tengan Estructura y Tecnologa de Computadores (Seccin II)

104

Circuitos Combinacionales Fundamentales

E2 E1 E0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

X 0 1 0 1 1 0 1 1

E2 E1 E0 Descodificador 3x8

s7 s6 s5 s4 s3 s2 s1 s0

Figura 4.34 el valor 001 (decimal 1 ), o bien, el valor 011 (decimal 3) o bien, el valor 100 (decimal 4) o bien, el valor 110 (decimal 6) o bien, el valor 111 (decimal 7)

Si conectamos las tres variables de entrada a un descodificador de 3 entradas y 8 salidas, sabemos que se pondr en 1 la salida correspondiente al valor binario presente en la entrada: si, por ejemplo, se coloca en la entrada el valor 101 se pondr en 1 la salida S5 y en 0 el resto de las salidas. En partic ular, cuando en la entrada se tenga el valor 001 se obtendr un 1 en la salida S1 cuando se tenga el valor 011 , ser la salida S3 la que presente el valor 1 y as sucesivamente para todos los valores en los cuales la funcin X debe tomar el valor 1 , segn su Tabla de Verdad. Por tanto si las salidas S1, S3, S4, S6 y S7 se conectan a una puerta OR, su salida nos dar el valor 1 en los mismos casos en los que deseamos que la funcin X nos de el valor 1. En definitiva, y con carcter general, para obtener una funcin por medio de un descodificador bastar elegir uno que tenga tantas entradas como variables tenga la funcin a realizar y, posteriormente, conectar a una puerta OR aquellas salidas que deban tener el valor 1 en la Tabla de Verdad. En nuestro ejemplo, conectar las salidas 1, 3, 4, 6 y 7 a esa puerta OR. Qu pasa si deseamos realizar dos funciones? Supongamos que adems de la funcin X que analizamos en la figura anterior, se desea realizar tambin la funcin Y, segn expresamos en la Tabla de Verdad de la Figura 4.35.
E2 E1 E0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 X 0 1 0 1 1 0 1 1 Y 0 0 1 1 0 1 0 0 s7 s6 s5 s4 s3 s2 s1 s0

E2 E1 E0 Descodificador 3x8

X Y

Un nico descodificador

varias funciones

Figura 4.35 La primera solucin que se nos ocurre es utilizar un segundo descodificador y conectar a una puerta OR las salidas S2, S3 y S5, para las cuales la funcin Y debe tomar el valor 1. Es una solucin vli-

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

105

da, pero... si pensamos un poco ms detenidamente podemos ver que no hay ningn problema en utilizar el mismo descodificador anterior: conectando las salidas S1, S3, S4, S6 y S7 a una puerta OR obtenemos la funcin X conectando las salidas S2, S3 y S5 a otra puerta OR obtenemos la funcin Y.

En realidad, desde un punto de vista puramente lgico, con un nico descodificador se podran obtener todas las funciones que se deseen sin ms que conectar las salidas adecuadamente a puertas OR. En la prctica, fsicamente, es posible obtener no ms de una docena de funciones aproximadamente por limitaciones en la carga que puede soportar un descodificador (el nmero mximo de circuitos que pueden conectarse a las salidas de otro es una caracterstica de los circuitos que se conoce como fan-in).

Realizacin de funciones con multiplexores


Tambin se pueden emplear multiplexores para la realizacin de funciones lgicas. Si suponemos la misma funcin X de los ejemplos anteriores, en su Tabla de Verdad podemos ver que la salida debe tomar el valor 1 cuando en las entradas se tiene el valor 001 (decimal 1), o bien, el valor 011 (decimal 3) o bien, el valor 100 (decimal 4) o bien, el valor 110 (decimal 6) o bien, el valor 111 (decimal 7)
1 E2 E1 E0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 X 0 1 0 1 1 0 1 1 0 e7 e6 e5 e4 e3 e2 e1 e0

Multiplexor 8x3x1

E2 E1 E0 Un multiplexor slo una funcin

Figura 4.36 Si en un multiplexor de ocho entradas (que requiere, por tanto, tres variables de seleccin) colocsemos (Figura 4.36) el valor 1 en las entradas 1, 3, 4, 6 y 7 y el valor 0 en las restantes, cuando las variables de seleccin tomen los valores 001, 011, 100, 110 111 se seleccionarn las entradas correspondientes y, como stas estn puestas al valor 1 , ser un 1 el valor colocado en la salida, mientras que para el resto de valores de las variables de seleccin, la entrada seleccionada tendr el valor 0 y por tanto ser 0 el valor colocado en la salida. En definitiva, y con carcter general, para obtener una funcin por medio de un multiplexor bastar elegir uno que tenga tantas entradas de seleccin como variables tenga la funcin a realizar y, en conEstructura y Tecnologa de Computadores (Seccin II)

106

Circuitos Combinacionales Fundamentales

secuencia, tantas entradas como correspondan (por ejemplo, para 3 variables de seleccin, 8 entradas y, en general, para n variables de seleccin 2n entradas). Posteriormente, se debern poner a 1 aquellas entradas que se correspondan con combinaciones de las variables de seleccin a las cuales les corresponda el valor 1 en la Tabla de Verdad mientras que se debern poner a 0 aquellas a las cuales les corresponda el valor 0 en la Tabla de Verdad. En este caso, a diferencia de los descodificadores, no es posible utilizar un nico multiplexor para obtener varias funciones diferentes simultneamente; se requiere un multiplexor por cada funcin que se desee obtener.

Realizacin de funciones empleando PLDs


Otro procedimiento para la realizacin de funciones sin necesidad de disear un circuito especfico es el empleo de diferentes dispositivos lgicos programables, (PLDs). Entre estos dispositivos se encuentran los PLAs (matrices lgicas programables). Para su realizacin se fabrica un circuito con varias variables de entradas y mltiples puertas AND y puertas OR con todas las conexiones fsicamente posibles , tal y como se indica en la Figura 4.37.

F1
Figura 4.37

F2

Diseado de esta forma, el circuito no tiene el menor sentido, pero est preparado para poder realizar cualquier funcin lgica; slo hay que adaptarlo para que realice la funcin que se requiera en cada caso. Para esta adaptacin, se deben suprimir las conexiones innecesarias en cada caso, por medio de un proceso que se conoce como personalizacin. Supongamos que se quieren realizar las funciones F1 y F2 que se indican:

F1 = abc + ab + bc F2 = ab + bc
Suprimimos, entonces, la gran mayora de conexiones, dejando slo las que se indican en la Figura 4.38. Con estas conexiones, el circuito resultante de la personalizacin del PLA original, realmente realiza las dos funciones deseadas.

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

107

F1
Figura 4.38

F2

Para la supresin de las conexiones indeseadas, existen diferentes procedimientos, apoyados por instrumental especfico para este fin. En la Figura 4.39 se incluye un esquema resumen de las caractersticas de un PLA.

Existen PLAs con cientos de puertas ms de 25 entradas ms de 15 salidas Todas son idnticas un nico chip un nico diseo un nico proceso de fabricacin regrabables
Figura 4.39

Circuito especfico

Personalizacin

Economa de escala

La ventaja de la utilizacin de PLAs , o dispositivos similares, radica, principalmente, en su bajo coste. Existen PLAs con un gran nmero de puertas, que pueden por tanto proporcionar circuitos realmente complejos, pero todos ellos emplean un mismo PLA. El fabricante de PLAs , diferente de quien fabrica el circuito final (quien personaliza el PLA), puede producir una enorme cantidad de PLAs idnticas por lo que el precio de cada una de ellas puede ser muy reducido. Dependiendo de la tecnologa empleada en la produccin del PLD stos pueden ser regrabables, lo que los hace reutilizables y puede contribuir a reducir an ms su precio. En resumen, tenemos tres grandes procedimientos para la obtencin de circuitos lgicos: PLDs , descodificadores o multiplexores y el diseo y produccin del circuito especfico. Posiblemente hoy da el procedimiento ms empleado sea la utilizacin de PLDs ; el empleo de circuitos especficos queda reducido a aquellos casos en los que el volumen de circuitos idnticos a producir sea enorme, nica forma de que el precio resulte razonable: en microelectrnica la fabricacin de chips no est al alcance de Estructura y Tecnologa de Computadores (Seccin II)

108

Circuitos Combinacionales Fundamentales

cualquiera y, adems, la produccin del primer chip de un determinado diseo es extremadamente costosa; sin embargo cada chip subsiguiente resulta poco menos que regalado.

4.6.- Comparadores
Como su propio nombre indica, un Comparador es un circuito que compara dos nmeros entre s. En la comparacin no slo se puede obtener si ambos nmeros son iguales o distintos sino tambin, en este ltimo caso, cul de ellos es mayor. As, al comparar dos nmeros A y B se puede saber si A>B, si A<B o si A=B, por lo que el circuito deber tener tres salidas diferentes; siempre deber darse una de estas tres circunstancias, por lo que siempre deber haber un 1 en una y slo en una de las tres salidas, colocndose un 0 en las otras dos (Figura 4.40). El comparador, en general, debe ser capaz de comparar dos nmeros de cualquier tamao y, en cualquier caso, debe tener tres salidas. En la prctica, un comparador tambin se emplea para comparar informacin no numrica. En ese caso, lo que hace es comparar los valores binarios que representan esa informacin. As es posible, por ejemplo, la ordenacin alfabtica.
n A Comparador n B S0 (A=B) S1 (A>B) S2 (A<B)

Figura 4.40 En Figura 4.41, vemos cmo se diseara el circuito para el comparador ms simple: el que compara dos nmeros de un nico bit. Tendra, evidentemente, dos entradas que representaran cada uno de los bits a comparar, y las tres salidas de siempre, segn el resultado de la comparacin.
a b Comparador S0 (a=b) S1 (a>b) S2 (a<b) a 0 0 1 1 b S0 0 1 1 0 0 0 1 1 S1 0 0 1 0 S2 0 1 0 0 S0 = a b S1 = a b S2 = a b

a b

S0 S1 S2

a=b a>b a<b

Figura 4.41 En la Tabla de Verdad podemos observar cmo las funciones S1 y S2 se obtienen de forma inmediata al no tener ms que un 1 cada una de ellas, mientras que la funcin S0 , no es sino el XOR negado de a y b. A este mismo valor para S0 podramos haber llegado viendo que la funcin S0 es 0 (o, lo que es lo mismo, S0 es 1) cuando A<B o cuando A>B, es decir:

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

109

S0 = S 1 + S 2 = ab + ab = a b
expresin que, negando ambos trminos, podemos escribir como:

S0 = S 0 = S 1 + S 2
y que nos permitira representar el circuito tal y como se indica en la Figura 4.42, una alternativa al de la Figura 4.41.

a b

s1 s0 s2

a>b a=b a<b

Figura 4.42

Comparadores.- El Activador
Como en cualquier otro circuito, puede haber ocasiones en las que nos interese poder tener a 0 todas las salidas de un comparador. En ese caso lo que haremos es dotar al mismo de un Activador. Cuando el Activador tiene el valor 1 el circuito queda activado y funciona como hemos descrito anteriormente (pgina 93), mientras que cuando toma el valor 0 , todas las salidas se ponen a 0. Las ecuaciones que dan las expresiones para las salidas del comparador con activador son las que se indican en la Figura 4.43 y que pueden deducirse sin la menor dificultad.
A a b Comparador S 0 (a=b) S 1 (a>b) S 2 (a<b) Entrada adicional: A=1 Funcionamiento normal A=0 Inactivo: salidas a cero S0 = a b A S1 = a b A S2 = a bA

Figura 4.43

El Comparador de n bits
En general lo habitual ser comparar nmeros de varios bits. sto puede hacerse, al menos, de dos formas diferentes. Puede disearse directamente un comparador con n bits en cada una de sus dos entradas o puede formarse ste a partir de mltiples comparadores de un bit. Si tomamos la segunda opcin, observamos que para comparar dos nmeros de n bits, el proceso a seguir es comparar los bits correspondientes de ambos nmeros, de uno en uno y comenzando por el bit ms significativo, es decir, por la izquierda . En el momento en que una pareja de bits sea diferente, ya se puede conocer cul de los dos nmeros es el mayor: aqul cuyo bit sea mayor. Si al comparar todos los bits, stos son todos iguales, la consecuencia es que los dos nmeros son iguales.

Estructura y Tecnologa de Computadores (Seccin II)

110

Circuitos Combinacionales Fundamentales

Por ejemplo, sean A = 00110100 y B = 00101110 , al comparar sus bits de uno en uno y de izquierda a derecha, vemos que las tres primeras comparaciones corresponden a bits que tienen el mismo valor, mientras que en el cuarto caso, el bit del nmero A es 1 y el del nmero B es Y, con lo que A>B y no es necesario seguir comparando los bits restantes. Si, comparsemos el mismo valor de A con C = 00111110, las cuatro primeras comparaciones corresponden a bits que tienen el mismo valor, mientras que en el quinto caso, el bit del nmero A es 0 y el del nmero C es 1, con lo que A<C y no es necesario seguir comparando los bits restantes. Si, por ltimo, comparsemos A con D = 00110100, al comparar bit a bit, todas las comparaciones nos mostraran igualdad hasta el final, por lo que A=D. La tcnica descrita anteriormente es la base para el diseo de un comparador de n bits a base de n comparadores de un bit (Figura 4.44).

an-1 bn-1 an-2 bn-2 an-3 bn-3

a1 b 1

a0 b0

a= A a<

a= A a<

a= a<

a= a<

a= a<

A=B

A<B A>B

a>

a>

a>

a>

a>

Figura 4.44 Cada comparador tiene como entrada la pareja de bits correspondiente de los nmeros A y B y se pondr en 1 una de sus salidas segn el resultado de la comparacin de esos bits. Comenzando por la izquierda, si los bits de la primera pareja son iguales, deberemos continuar comparando la segunda pareja y as sucesivamente; la salida que se pondr a 1 ser la de igualdad y con ella activaremos el comparador siguiente hasta que en la comparacin se produzca desigualdad. A partir de entonces, la salida de igualdad se pone a 0 con lo que el comparador siguiente queda desactivado, todas sus salidas se ponen a 0 y esta situacin se transmite al resto de los comparadores. En el comparador en que se detect la desigualdad habr un 1 en la salida de mayor o de menor, segn el bit que sea mayor y sta ser la nica salida de desigualdad a 1 de todos los comparadores (las anteriores estarn a 0, por tratarse de comparaciones en las que se produca igualdad y las siguientes tambin lo estarn pues los comparadores correspondientes estn desactivados). Este nico 1 estar por tanto presente en la salida de una de las puertas OR que se incluyen y se corresponder con la salida de mayor o de menor de la comparacin completa entre ambos nmeros. Si todas las parejas de bits diesen igualdad en su comparacin, todos los comparadores estaran activados; sus salidas de igualdad estaran a 1 y las salidas por desigualdad estaran todas a 0 con lo que la salida por igualdad del ltimo comparador nos indicara la igualdad entre los dos nmeros completos a comparar.

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

111

4.7.- Convertidores de Cdigo


Otro tipo de circuito frecuentemente empleado es el Convertidor de Cdigo. Se encarga de transformar una informacin binaria representada de acuerdo con un cierto cdigo en otra forma de representacin de esa misma informacin, pero de acuerdo con otro cdigo diferente. Un ejemplo de convertidor podra ser aqul que convirtiese una cierta informacin en cdigo ASCII de ocho bits en cdigo EBCDIC , tambin de ocho bits. Por ejemplo, la letra S en ASCII se representa como 01010011 , mientras que en EBCDIC su representacin es 11100010. El Convertidor de ASCII a EBCDIC debera transformar una representacin en la otra, tal como se indica en la figura de la derecha. Convertidor de BCD a 7 segmentos Un Convertidor muy habitual es el que se encarga de transformar informacin numrica, generalmente BCD, en una configuracin de siete bits, con los cuales se puede representar grficamente un dgito decimal (Figura 4.45).
a E3 E2 E1 E0 Convertidor BCD a 7 seg. a b c d e f g
0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0

Convert. ASCII a EBCDIC

f g e d

Figura 4.45 Cada uno de esos siete bits se asocia con un segmento. La presencia o ausencia de cada uno de estos segmentos permite representar los diez dgitos decimales. En la Figura 4.45 indicamos qu configuracin de segmentos vamos a elegir para representar cada uno de los dgitos. En algunos podramos haber elegido alternativas diferentes (por ejemplo, para representar el 1 podramos tomar los segmentos e y f en lugar de b y c, o para representar el 9 podramos eliminar el segmento d). Esta forma de representacin est muy extendida en la actualidad, desde los relojes o termmetros dig itales de las calles, los precios de combustibles en las gasolineras, etc. Con la configuracin elegida anteriormente, la Tabla de Verdad correspondiente a los valores BCD es inmediata (Figura 4.46). Por ejemplo, para representar el 3 (0011) deberemos encender (poner a 1) los segmentos a , b , c, d y g y apagar (poner a 0) los segmentos e y f. De forma anloga desarrollamos la Tabla de Verdad para todas las combinaciones BCD vlidas (desde 0000 hasta 1001) Para el resto de configuraciones de cuatro bits hemos supuesto en este caso que no pueden presentarse, es decir, que son imposibles y as podremos conseguir circuitos ms simplific ados y sencillos. Repetimos una vez ms que decidir si estas configuraciones invlidas son imposibles o no, es responsabilidad de quien disea el circuito, para lo que debe conocer cmo se generan esas entradas. Si, como ocurre en el ejemplo del termmetro o reloj digital, las entradas se generan por medio de circuitos dig itales previos, parece razonable suponer que no pueden presentarse estas combinaciones invlidas. Si, Estructura y Tecnologa de Computadores (Seccin II)

112

Circuitos Combinacionales Fundamentales

por el contrario, estas entradas las tuviera que colocar alguien manualmente empleando, por ejemplo, un juego de interruptores, cabe la posibilidad de error y, en consecuencia, las combinaciones 1010 a 1111 seran invlidas pero posibles. En este caso habra que decidir qu accin tomar ante una combinacin invlida. Una solucin frecuente en este caso particular, sera representar por medio de estos siete segmentos la letra E, como inicial de error, para lo que deberan encenderse los segmentos a, d , e, f y g , manteniendo apagados los b y c para todas esas combinaciones invlidas.
E3E2 E1 E0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 Resto a 1 0 1 1 0 1 1 1 1 1 X b 1 1 1 1 1 0 0 1 1 1 X c 1 1 0 1 1 1 1 1 1 1 X d 1 0 1 1 0 1 1 0 1 1 X e 1 0 1 0 0 0 1 0 1 0 X f 1 0 0 0 1 1 1 0 1 1 X g 0 0 1 1 1 1 1 0 1 1 X

a f e d g b c

Figura 4.46 En la Figura 4.47 se incluyen las Tablas de Verdad y la obtencin de las funciones lgicas correspondientes a los segmentos a, b y c, dejando al alumno el desarrollo de los restantes segmentos, as como la representacin grfica del circuito correspondiente.
00 01 11 10 00 1 X 1 01 11 1 10 1 1 1 1 X 1 X X X X 00 01 11 10 00 1 1 X 1 01 1 11 1 10 1 1 X 1 X X X X 00 01 11 10 00 1 1 X 1 01 1 11 1 10 1 1 1 X 1 X X X X

a = e1 + e3 + e2e0 + e2e0

b = e2 + e1e0 + e1 e0

c = e1 + e0 + e2

Figura 4.47 Un mtodo alternativo para conseguir un Convertidor consiste en combinar un descodificador con un codificador, segn se indica en la Figura 4.48. La solucin es vlida e inmediata si se dispone del descodificador y el codificador adecuados.
10 salidas

8 bits

Descod. ASCIIdecimal

Cod. decimalBCD

4 bits BCD

Figura 4.48 Por ejemplo, si se necesita convertir dgitos expresados en ASCII (con ocho bits) a BCD (con cuatro bits) se puede emplear un descodificador que convierta primero el cdigo ASCII a decimal y conectar esta salida decimal a un codificador decimal a BCD. Naturalmente, para ello se precisa disponer de estos circuitos. Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

113

4.8.- Operadores aritmticos


Para finalizar con los circuitos combinacionales tpic os ms frecuentemente empleados en sistemas digitales, nos faltan, indudablemente, los circuitos utilizados para la realizacin de operaciones aritmticas. Dado el objetivo del curso, no nos vamos a detener en los circuitos necesarios para realizar todas las operaciones y, menos an, con todos los formatos numricos posibles. Nos limitaremos a los siguientes operadores: Semisumador Sumador Completo Sumador Paralelo Sumador Restador Sumador BCD Multiplicador

Semisumador
La operacin aritmtica ms simple que podemos imaginar es la suma algebraica de dos nmeros, cada uno de ellos de un solo bit. Este circuito, tendr como entradas los dos bits a sumar, A y B y su salida tambin tendr dos bits: la suma, S, y el acarreo que se puede producir, C.
A B S C

La Tabla de Verdad correspondiente para este circuito es una reproduccin de la tabla de sumar en binario.

AB 0 0 0 1 1 0 1 1

S C 0 1 1 0 0 0 0 1

En esa Tabla de Verdad podemos ver cmo la suma, S, es la funcin XOR de A y B , mientras que el acarreo, C, es el producto lgico de A y B.

S = A B C = AB

Con estas expresiones lgicas la representacin del circuito resultante es inmediata. El circuito, que se representa en la Figura 4.49, se conoce como Semisumador, por las razones que veremos poco despus, y se representa por un rectngulo con la expresin indicando que se trata de medio sumador.

A B

S
C

Figura 4.49

Estructura y Tecnologa de Computadores (Seccin II)

114

Circuitos Combinacionales Fundamentales

Si tratsemos de sumar dos nmeros con varios bits, este circuito nicamente nos servira para sumar el bit de la derecha de ambos nmeros, ya que en los dems bits deberamos tener en cuenta el acarreo que se hubiera podido producir en el bit anterior

Sumador Completo
El circuito que deberamos emplear para todos los bits, excepto el de la derecha, debera tener en consideracin el acarreo producido al sumar la pareja de bits inmediatamente a su derecha. A este acarreo le denominaremos Ca, (acarreo anterior) y ser una entrada adicional a la pareja de bits a sumar. Las salidas de este circuito (Figura 4.50) sern, como antes, la suma de los bits, S (incluyendo el acarreo anterior) y el posible acarreo hacia el bit de orden superior, C (hacia la izquierda). La Tabla de Verdad de este circuito ser la que se indica en la figura.
A B

Ca A B S C 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1

Ca

Figura 4.50 Si en la Tabla de Verdad observamos la columna correspondiente a la funcin S, podemos ver cmo en todas las lneas el total de bits en 1 en esta columna y en las correspondientes a las tres variables de entrada es siempre par. En realidad, la funcin S acta como un generador de paridad par para las tres variables de entrada. Un generador de paridad par se obtiene por medio del XOR de las variables; de ah la expresin que podemos obtener para la funcin S:

S = Ca A B
Para la funcin C , representamos el mapa de Karnaugh y hacemos las agrupaciones que se indican en la figura adjunta. Desde luego, podramos haber conseguido un mayor nivel de simplificacin pues las celdas indicadas por un crculo podran haberse agrupado con alguna adyacente. Si hacemos la agrupacin que se indica, lo que es correcto, conseguimos una expresin que nos permite obtener la expresin siguiente:

00 01 11 10 0 1

1 1 1 1

C = A B + Ca A B + Ca A B = A B + Ca (AB + A B) = A B + Ca A B
En la Figura 4.51 hemos recogido las expresiones lgicas del Semisumador obtenidas en la pgina 113 (denominaremos S y C a sus salidas para suma y acarreo) y las del Sumador Completo recin obtenidas. Comparando estas expresiones, podemos observar la repeticin de los trminos AB y A B. As, podemos construir el circuito que se indica en la Figura 4.51. En primer lugar colocamos un Semisumador que realiza la suma aritmtica de los dos bits, obteniendo la suma S y el acarreo C. Ahora bien, a esta suma falta aadirle el posible acarreo anterior C ; En realidad, se trata de una nueva suma, que puede hacerse por medio de un segundo Semisumador, que suma el resultado parcial obtenido en el primer Semisumador con el acarreo anterior. A estos dos Semisumadores les aadimos una puerta OR para obtener el acarreo definitivo del Sumador Completo: en la suma de dos bits, considerando el
a

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

115

posible acarreo de los bits de orden inferior, se produce acarreo o bien cuando la suma de los dos bits produce acarreo, o bien cuando lo produce el acarreo anterior aadido a la suma de los dos bits.
Para el Para el S = A B C = AB

S = Ca A B C = AB + Ca A B

A C

S C

S C

Ca

Ca
Figura 4.51 Este circuito se conoce como Sumador Completo puesto que sirve para sumar dos bits, con independencia de la posicin que ocupen dentro del nmero. En el caso partic ular de que se tratase de la pareja de bits de orden ms bajo, bastara con poner la entrada del acarreo anterior a 0 de forma permanente. En la parte derecha de la Figura 4.51 se indica esquemticamente el bloque empleado para representar el Sumador Completo. Analizando las zonas sombreadas de la Figura 4.51 vemos que el circuito est formado por dos Semisumadores (de ah la denominacin de Semisumador), ms la puerta OR antes mencionada, segn se representa en la Figura 4.52.
A B Ca

S C

S C

Figura 4.52

Sumador Paralelo
Con un Sumador Completo se puede sumar dos bits, teniendo en cuenta el posible acarreo anterior; Cmo sumar dos nmeros de varios bits? La forma ms simple consiste en la agrupacin de varios Sumadores Completos. Cada uno obtiene la suma de dos bits y transmite al siguie nte el acarreo, en caso de que lo haya. El conjunto se conoce como Sumador Paralelo. En la parte superior de la Figura 4.53 se incluye el esquema correspondiente y en la parte inferior el bloque que representa el Sumador Paralelo de 4 bits. Esta solucin, aunque muy sencilla, no es la ms rpida en cuanto a la obtencin del resultado final. Un Sumador Completo tarda un cierto tiempo (aunque sea del orden de nanosegundos) en obtener la suma de los dos bits y, lo que es ms importante, en obtener su acarreo. Mientras este acarreo no se ha obtenido, no podemos tener la seguridad de que el sumador de orden superior proporcione un resultado correcto y transmita al siguiente un valor correcto de su acarreo y as sucesivamente. As, si suponemos que un Sumador Completo emplea 10 ns en obtener la suma y acarreo de dos bits, un Sumador Paralelo para sumar dos nmeros de 32 bits necesitara 32 10 = 320 nanosegundos en obtener, con seguridad, un resultado correcto. Estructura y Tecnologa de Computadores (Seccin II)

116

Circuitos Combinacionales Fundamentales

An-1 Bn-1 Cn-1

A1 Cn-2 C1

B1

A0 C0

B0

Sn-1

S1

S0

Ca

B3 B 2 B1 B 0

A3 A 2 A1 A 0

4
S3 S2 S1 S0

Ca

Figura 4.53 Para reducir este tiempo se pueden emplear circuitos adicionales, conocidos como predictores de acarreo que son capaces de determinar si en la suma de dos nmeros se produce acarreo en un tiempo menor al que se precisa para la suma de los dos bits. El circuito resultante es ms complejo, pero ms rpido. Otra solucin consiste en disear circuitos que sean capaces de sumar directamente nmeros de dos bits (o de cuatro u ocho) y formar sumadores paralelos a partir de ellos , .

Sumador / Restador binario


Otro circuito a considerar es el Sumador / Restador binario. Recordemos cmo, en C-2, para realizar una resta se debe obtener el C-2 del sustraendo (cambiar 0 por 1 y sumar 1) y, despus, sumar este resultado al minuendo. Analicemos ahora el funcionamiento del circuito de la Figura 4.54, que incluye cuatro sumadores completos ms una entrada X conectada a la entrada de acarreo del primer bit y a la serie de puertas XOR que tambin se incluyen en el circuito. Esta entrada la fijaremos al valor 0 cuando deseemos efectuar una suma y al valor 1 cuando deseemos realizar una resta.
X= 0 Suma X= 1 Resta A0 B0 X (Control )

A3 B3

A2

B2

A1

B1

S3

S2

S1

S0

Figura 4.54 Supongamos, ahora, que se quiere hacer la operacin B + A (dos nmeros binarios sin signo con cuatro bits cada uno). La entrada de control se pone a 0, con lo que el acarreo para el primer bit es cero, correcto por no existir acarreo anterior. La salida de cada una de las puertas XOR (entrada a cada uno de los sumadores completos), es el mismo bit A, sin modific acin, puesto que el XOR de 0 (valor de X) y A es siempre A. Por tanto, los sumadores actan como si no existieran esas puertas XOR y Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

117

y A es siempre A. Por tanto, los sumadores actan como si no existieran esas puertas XOR y realizan correctamente la operacin suma. Para efectuar la resta B A se pone a 1 la entrada de control X. De esta forma, una de las entradas a las puertas XOR es siempre 1, con lo que la salida de estas puertas ser siempre el bit correspondie nte negado (1 A = A ). As, se est sumando a B (es decir, al minuendo) el valor negado de A (o sea, el sustraendo). Por otra parte, al primer sumador le entra un 1 por la entrada del acarreo ( X = 1) con lo que se est sumando 1 de acuerdo con las reglas expuestas cuando se trat la resta en C-2. En el caso de que este circuito fuese utilizado en un ordenador, la responsabilidad de colocar un 0 o un 1 en la entrada X sera funcin de los circuitos de control del ordenador: si la instruccin a realizar es Sumar, se deber colocar un 0 y si es Restar, se colocar un 1. Vemos, pues, que el mismo circuito es capaz de realizar la Suma o la Resta binaria en C-2, segn el valor de la entrada de control X.

Sumador BCD
El siguiente circuito para la realizacin de operaciones aritmticas que vamos a analizar es el Sumador BCD. Es un circuito frecuentemente empleado, por ser el nico capaz de tratar directamente la suma en decimal, representacin que, pese a sus inconvenientes en electrnica, no deja de ser la ms habitual en la vida diaria. Si recordamos las reglas que se dieron para la realizacin de la suma en BCD, vemos que deberemos: Sumar los dgitos BCD de uno en uno de derecha a izquierda. Para cada dgito podemos emplear un sumador binario paralelo de 4 bits, como se indica en la Figura 4.55. A continuacin, al resultado obtenido (S3 S2 S1 S0 ) le deberemos sumar 6 si en la suma anterior se ha producido acarreo (Ci = 1), o bien si la combinacin que se obtuvo no era una combinacin BCD vlida.

Si se produce acarreo, tanto en la suma de los dos dgitos, como al sumar 6 , si fuera necesario, este acarreo se transmite al dgito de orden superior.
B3 B2 B1 B0 A3 A2 A1 A0

Ci

4
S 3 S 2S 1S

Ca

Sumar 6 (0110) si: hay acarreo (C i = 1) , o bien si la combinacin no es vlida


Figura 4.55 Para sumar 6 podemos emplear otro sumador paralelo de 4 bits. Una de sus entradas ser el resultado del primer sumador (S3 S2 S1 S0 ), y la otra el valor 6 en BCD, es decir, 0110. Estructura y Tecnologa de Computadores (Seccin II)

118

Circuitos Combinacionales Fundamentales

El circuito contar siempre con este segundo sumador. Ahora bien, habr que tener en cuenta que, en ciertos casos hay que sumar 0110 , mientras que otras veces, no hay que efectuar esa suma. No efectuar la suma es lo mismo que sumar 0000. Necesitamos pues, ver cmo podemos hacer un circuito que sea capaz de detectar si hay que aadir 6 a la suma inicial o no hay que aadirle nada (aadir 0). Buscaremos, primero, una expresin que nos indique cundo se produce en la suma una combinacin invlida. sto ocurre cuando el resultado de la suma inicial de una pareja de dgitos BCD es una combinacin entre 1010 y 1111 valores que no corresponden a ningn dgito BCD. Si llamamos X a la funcin que nos indique esta condicin, la Tabla de Verdad correspondiente es la que se incluye en la Figura 4.56.

S3 S2 S1 S0 Resto 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1

X 0 1 1 1 1 1 1

00 01 11 10 00 01 11 10

1 1 1 1 1 1

X = S3S2 + S3S1 S6 = C i + S3S2 + S3S1


Figura 4.56

Simplificando por Karnaugh, obtenemos para X la expresin que aparece en la figura. Ahora bien, hay que sumar 6 tanto cuando la combinacin es invlida como cuando se produce acarreo en la suma inicial. Es decir que, si llamamos S6 a la funcin que nos indica en qu ocasiones debemos sumar 6 , la expresin correspondiente ser la que se incluye tambin en la Figura 4.56, donde Ci es el acarreo que puede producirse en la suma inicial. La funcin S6 se representa en la Figura 4.57. Su valor es 1 cuando, efectivamente, hay que sumar 6 al resultado de la suma inicial, mientras que es 0 cuando no hay que efectuar esa suma.
S6 = C i + S 3S 2 + S3S1
Ci Salida del sumador S3 S2 S1 S0

S6

0
S6 = 0 S6 = 1 0 0 0 0 0 1 1 0 Suma 0 Suma 6 y NO acarreo y S acarreo C=0 C=1

Figura 4.57

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

119

Si la salida de esta funcin la conectamos como se indica en la parte inferior de la figura, en la que dos de los terminales se ponen permanentemente a 0 y los otros dos se conectan a la salida de la funcin S6 , vemos que Cuando S6 vale 0, es decir cuando no hay que sumar nada a la salida de la suma inicial, el valor que queda en esos cuatro terminales es 0000. En este caso, el resultado obtenido en la suma inicial es ya el correcto y, adems, no se produce acarreo, ( C = 0 ) Cuando S6 vale 1 , hay que sumar este valor a la salida de la suma inicial y el valor que queda en los cuatro terminales es 0110, precisamente 6. Adems, en este caso siempre se debe producir acarreo hacia el dgito BCD siguiente. Por tanto, la salida de acarreo, C, es la misma que la de la funcin S6 .

En definitiva, esos cuatro terminales de la parte inferior izquierda de la figura tienen el valor 6 o el valor 0 , en BCD, segn haya que sumar o no este valor a la suma inicial . En definitiva, bastar conectar esos cuatro terminales como una de las entradas de un segundo sumador paralelo de cuatro bits. La otra entrada ser la salida del primer sumador y la salida de este segundo sumador dar ya la suma correcta de los dos dgitos BCD originales (Figura 4.58).
B3 B 2 B1 B0 A3 A2 A1 A0

Ci

4
S3 S2 S1 S0

Ca

C
0

4
Se desprecia S3 S2 S1 S0

Figura 4.58 El acarreo que pueda producirse en el segundo sumador se ignora, puesto que ya hemos visto cmo la salida C (equivalente a la funcin S6 ) nos genera el acarreo a transmitir a la siguiente pareja de dgitos BCD a sumar. Obsrvese cmo este circuito sumador, que se representa como un bloque a la derecha, es mucho ms complejo que el puro sumador binario. De hecho tiene dos sumadores paralelos de cuatro bits por cada par de dgitos a sumar y, adems, se debe aadir el pequeo circuito adicional para detectar los casos en los que se debe sumar 6 a la suma inicial. La consecuencia es que la velocidad de un sumador BCD es menor que la de uno binario.
A
(4 bits)

Sumador BCD
(4bits)

Ca

Por otra parte, el rango de nmeros que pueden representarse en BCD, con un nmero determinado de bits, es sensiblemente inferior al que puede representarse con el mismo nmero de bits en binario. Por ejemplo, con 32 bits en BCD prescindiendo de l signo, pueden

Estructura y Tecnologa de Computadores (Seccin II)

120

Circuitos Combinacionales Fundamentales

representarse nmeros de ocho dgitos, (como mximo 99.999.999), mientras que con esos mismos 32 bits en binario puede llegarse hasta 4.294.967.295. Hasta ahora, hemos visto el sumador capaz de sumar dos dgitos BCD. Cmo formar un sumador para nmeros de varios dgitos? Simplemente, enlazando en cadena tantos Sumadores BCD como dgitos tengan las cantidades a sumar, segn se indica en la Figura 4.59.
An-1 C Bn-1 A1 B1 C A0 B0 Ca

Sumador BCD Sn-1

...

Sumador BCD S1

Sumador BCD S0

Figura 4.59

Multiplicador
Para desarrollar un circuito multiplicador de dos nmeros expresados en binario nos ceiremos al mtodo indicado anteriormente (pg. 35) al tratar de la multiplicacin binaria. Veamos, por ejemplo, el producto de dos nmeros binarios (A y B), de tres bits cada uno, cuyo producto (R) tendr 6 bits.

A 2A 1A 0 B 2B 1B 0 = R 5R 4R 3R 2R 1R 0
Para obtener el resultado se procede de la misma forma que en la multiplicacin decimal a la que todos estamos habituados: A2 B1A2 B2A2 R5 R4 B2A1 R3 B2 B0A2 B1A1 B2A0 R2 R1 R0 A1 B1 B0A1 B1A0 A0 B0 B0A0

En la Figura 4.60 se representa el circuito correspondiente. Podemos observar cmo, las tres puertas AND de la parte superior proporcionan los productos A0B0 , A0B1 y A0 B2. El primer producto, nos da directamente el bit de orden inferior del resultado, R0. El bit siguiente, R1 , se obtiene por la suma de A0B1 y A1B0, suma que obtenemos con el sumador completo 01, al cual no debe llegar un acarreo anterior, por lo que pondremos su entrada a 0. El bit R2 ser la suma B0A2 + B1A1 + B2A0. Los dos ltimos trminos se obtienen con el sumador 11 y, para aadirle el trmino B0A2 emplearemos el sumador 02 . De forma similar procederemos con el resto del circuito. Hacer notar slo que en el ltimo sumador, 22, tambin puede producirse un acarreo, que nos dara en su caso el bit de orden superior del resultado, R5.

Estructura y Tecnologa de Computadores (Seccin II)

Circuitos Combinacionales Fundamentales

121

B2 A0

B1

B0

A1

21
A2

11

01

22
R5 R4

12
R3

02
R2 R1 R0

Figura 4.60

Estructura y Tecnologa de Computadores (Seccin II)

5
ANLISIS Y DISEO DE CIRCUITOS SECUENCIALES
5.1.- Concepto de Realimentacin
Vamos a analizar el comportamiento del circuito de la figura. Evidentemente, se trata de un circuito muy simple. Para ello iremos aplicando diferentes valores en las entradas a y b y observaremos cul es el valor resultante en la salida S. Si aplicamos el valor 0 tanto en a como en b, evidentemente el valor en S debe ser 0, al ser 0 una de las entradas a la puerta AND. Si, a continuacin cambiamos a al valor 1 , S continua en 0, pues las dos entradas de la puerta OR son 0, con lo que en la puerta AND las entradas sern 1 y 0 y la salida, por tanto, 0. Pongamos ahora b a 1. La salida de la puerta OR ser 1, al ser 1 una de las entradas y, por tanto, S valdr 1.
a b S a b
q p

0 0 S 1 0 1 1 1 0

0 0 1 1

Figura 5.1 Hasta ahora, todo est muy claro, tal y como se va reflejando en las tres primeras lneas de la Tabla de Verdad de la parte derecha de la figura. Pero, volvamos a poner b en el valor 0. Ahora, la entrada b de la puerta OR est a 0, pero la entrada q tendr el valor que hubiese quedado antes, el mismo que en p o en S, que era 1. Por tanto, la salida del OR ser 1 y, siendo a tambin 1 , las dos entradas del AND tendrn este valor y 1 ser su salida, segn se indica en la cuarta lnea de la Tabla de Verdad. Se nos han roto todos los esquemas. Para un mismo par de valores de la entrada, en nuestro caso, a = 1 y b=0, obtenemos dos valores diferentes de la salida: primero el valor 0 (segunda lnea de la Tabla de Verdad), y despus el valor 1 (cuarta lnea). Qu ha ocurrido?. Simplemente, que la salida del circuito se ha conectado con una de las puertas del mismo a travs de la lnea que se representa en trazo grueso en la figura, convirtindola en una entrada ms. Este mecanismo se conoce en general como realimentacin y es la base de los circuitos secuenciales. Vemos, pues, que un circuito secuencial los valores de las salidas dependen de los valores de las variables de entrada (igual que en un circuito combinacional), pero, adems, dependen de los valores anteriores de la salida. En definitiva, se introduce una variable adicional, el tiempo.

Estructura y Tecnologa de Computadores (Seccin II)

124

Anlisis y Diseo de Circuitos Secuenciales

5.2.- Biestables
De igual forma que los elementos bsicos de un circuito combinacional son las puertas lgicas, cuando trabajamos con circuitos secuenciales tenemos que considerar adems otros elementos fundamentales propios: los biestables (o flip-flops). La salida de un biestable depende tanto de los valores que se apliquen en sus entradas como de los valores que anteriormente tuviese la salida. En lneas generales hay dos grandes grupos de biestables: Biestables sncronos Biestables asncronos.

Un biestable asncrono es aquel que puede cambiar de estado en cualquier momento, al cambiarse el valor de sus entradas, mientras que un biestable sncrono slo puede hacerlo en momentos determinados. Para ello, un biestable sncrono dispone, adems de las entradas, digamos normales, de otra entrada, llamada entrada de reloj o entrada de sincronismo. Cuando se recibe una seal a travs de esta entrada, el biestable queda autorizado, por as decirlo, a cambiar de estado segn los valores de las variables de entrada y del valor anterior que tuviese el biestable. Por el contrario, si no hay una seal de sincronismo, el biestable no puede cambiar de estado, por mucho que cambien los valores de las variables de entrada. Diremos, pues, que un biestable sncrono cambia de estado cuando el reloj lo permite. Concretando ms, un biestable ser un elemento que dispone de 1 2 entradas y dos salidas, una de ellas etiquetada, generalmente, como Q y la segunda que siempre debe ser el complemento de la anterior, es decir, Q (Figura 5.2).
1 2 entradas 1 salida (Q) y su complemento (Q) C Biestable Q Q

ms una entrada de reloj, opcional

Qn= f (entradas, Qn-1)


Figura 5.2 De acuerdo con el concepto de circuito secuencial, el valor de la salida depender del valor de las entradas y del estado anterior del biestable, que denominaremos, en general, Qn-1. Por otra parte, si el biestable fuese sncrono, deber disponer de una entrada adicional para la seal de reloj, a la que, generalmente se denomina como C (del ingls clock, reloj).

El Biestable RS
El primer tipo de biestable que vamos a analizar es el biestable RS. Dispone de dos entradas (ms la de sincronismo, si procede), denominadas R y S y, como cualquier otro biestable tendr las dos salidas Q yQ . Su funcionamiento se describe de acuerdo con la Tabla que se indica en la Figura 5.3, la Tabla de Verdad del biestable. En ella podemos observar 4 columnas, las dos primeras corresponden a los valores que se pueden dar a las variables de entrada R y S. La tercera columna nos indica el valor que tena la Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

125

salida del biestable en el estado anterior, que denominaremos Qn-1. Por ltimo, la cuarta columna nos proporciona el valor que debe alcanzar la salida en cada caso.
R S Qn-1 Q n R S Q 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0

RS

Entrada no permitida R = Reset (poner a 0)

S = Set (poner a 1)

Figura 5.3 Podemos ver cmo, en algunos casos, a valores iguales de las variables de entrada, por ejemplo, R = 0 y S = 0, la salida toma valores diferentes (cuando el estado anterior es 0, primera lnea de la Tabla, la salida es 0 pero si el estado anterior fuese 1, segunda lnea, la salida valdra 1). Vemos en la Tabla de Verdad cmo para los valores R = 1 y S = 1 no se indica el valor que tomar la salida. En realidad, se trata de una alternativa que no est permitida en este tipo de biestable. Por otra parte, vemos tambin que siempre que en la entrada R se coloca el valor 1 , la salida toma el valor 0 , con independencia del estado anterior. As mismo, siempre que se pone a 1 la entrada S, la salida se pone tambin a 1 , con independencia del estado anterior. De ah procede el nombre del bie stable, R de Reset (en ingls, restaurar o poner a 0) y S de Set (establecer o poner a 1). En esta figura, y a ttulo simplemente informativo, se incluye la representacin del circuito correspondiente al biestable RS. Vemos que est constituido por dos puertas NOR conectadas de manera que la salida de cada una de ellas es entrada de la otra para producir el efecto de realimentacin.
R Q

R=S=1 Q=Q=0

Prohibido!

???

Figura 5.4 Externamente las entradas son slo dos R y S y las salidas tambin dos Q y Q. Pero aqu vemos que si pusiramos las entradas R y S simultneamente en 1, una de las entradas en cualquiera de las puertas NOR tendra el valor 1 con lo que la salida de ambas puertas sera siempre 0. Es decir, que

Q =Q = 0
algo que es totalmente contrario a cualquier norma.

Estructura y Tecnologa de Computadores (Seccin II)

126

Anlisis y Diseo de Circuitos Secuenciales

Podramos comprobar, aunque resultara algo farragoso, cmo para el resto de los casos la Tabla de Verdad que hemos indicado es correcta y siempre los valores de ambas salidas son una el complemento de la otra. Vemos en la figura cmo este tipo de biestable est constituido nicamente por puertas lgicas. Esto es igualmente cierto para cualquiera de los otros tipos de biestable que veremos ms adelante. Recordemos que La Tabla de Verdad de un biestable RS, tambin llamada Tabla de Estados, est formada por las entradas al biestable, los valores que tiene ste en el estado anterior y los que, como consecuencia, toma el biestable en su salida, conocidos como estado siguiente. Otra forma interesante de estudiar el funcionamiento de un biestable es emplear la representacin por medio de un Diagrama de Estados (Figura 5.5). Los dos estados posibles del biestable, 0 y 1, se representan encerrados en sendos crculos. Por otra parte se indican por medio de unas flechas los valores que deben aplicarse en sus entradas para pasar de un estado a otro. Por ejemplo, en la figura se observa que estando el biestable en el estado 0, si se aplica en sus entradas el valor 01 (R = 0 y S = 1) el biestable pasar al estado 1.
R S 00 10 Q R 0 0 0 0 1 1 1 1 S Qn-1 Q n 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 prohibido

RS
01

Q 00 01

0
10

1
Figura 5.5

En ciertos casos, el biestable no cambia de estado. Por ejemplo, si est en 0, al aplicarle los valores 00 o 10, el biestable contina en el estado 0. Esto se indica por medio de unas flechas que parten del estado 0 y acaban en el mismo estado. Si estando en el estado 0 se aplican los valores 00 o 10, el biestable permanece en el estado 0. Esta representacin grfica es muy cmoda, pues muestra el funcionamie nto de un biestable de una forma ms visible que la Tabla de Estados. Adems de la Tabla de Estados y el Diagrama de Estados, existen otras formas para poder analizar el funcionamiento de un biestable (Figura 5.6). Una de ellas es la Tabla de Caractersticas: Nos indica el valor de la salida de un biestable en funcin de sus entradas y del estado anterior. Aqu se indica que cuando el valor de la entrada es 00, el valor de la salida es el mismo que tena anteriormente (el estado anterior). Anlogamente, se indica el valor de la salida para el resto de valores permitidos de la entrada, aunque en estos casos este valor no depende del estado anterior. Muy til y empleada posteriormente es la

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

127

Tabla de Excitacin: Nos indica qu valores se deben colocar en las entradas R y S para pasar de un estado a otro. Nos dice, por ejemplo, que si se desea que el bie stable pase del estado 0 al estado 1 (segunda lnea de la tabla) se debe aplicar un 0 en su entrada R y un 1 en su entrada S. En la primera lnea vemos, sin embargo, que para pasar del estado 0 al estado 0 (es decir, para continuar en el estado 0) se debe aplicar un 0 en la entrada S mientras en la entrada R aparece una X. Qu significa esa X?, Simplemente, que es indiferente el valor que se aplique en R, da lo mismo que se aplique un 0 o un 1. El significado de las X es, por tanto el mismo que empleamos en captulos anteriores al hablar de casos indiferentes en el estudio de las Tablas de Verdad de circuitos combinacionales.
R 0 0 0 0 1 1 1 1
00 10

S Qn-1 Qn 0 0 1 1 0 0 1 1
01

0 1 0 1 0 1 0 1

0 1 1 1 0 0
00 01

Tabla de caractersticas R 0 0 1 1 S Qn 0 Q n-1 1 1 0 0 1

Tabla de excitacin Q n-1Q n 0 0 0 1 1 0 1 1 R X 0 1 0 S 0 1 0 X

0
10

Figura 5.6 En realidad, todas las tablas que acabamos de mencionar nos describen el funcionamiento de un biestable. La diferencia radica nicamente en qu aspectos del funcionamiento se desea hacer nfasis. En la Figura 5.7 podemos ver los aspectos destacados de cada una de las tablas.
Tabla de estados Tabla de caractersticas Tabla de excitacin
Cmo pasa de un estado al siguiente Da el estado siguiente en funcin de las entradas y del anterior Da las entradas a aplicar para cambiar de un estado a otro

Figura 5.7 El Biestable RS Sncrono Hemos mencionado anteriormente cmo un biestable sncrono es aqul que nicamente puede cambiar de estado en determinados momentos: cuando recibe una seal especfica, denominada seal de sincronismo o seal de reloj, (en un ordenador, generalmente est asociada de alguna forma al reloj del mismo). En la Figura 5.8 vemos una forma de convertir en sncrono un biestable RS asncrono. Si a las entradas propias del biestable asncrono (a las que designamos en la figura como Ri y Si) se les conectan las puertas AND indicadas, podemos observar que, cuando en la entrada C el valor sea 0, la salida de Estructura y Tecnologa de Computadores (Seccin II)

128

Anlisis y Diseo de Circuitos Secuenciales

ambas puertas ser 0, con independencia de los valores de sus otras dos entradas. En estas condici ones, (Ri = Si = 0) un biestable RS no cambia de estado. Por el contrario, cuando C toma el valor 1 , se aplican al biestable asncrono los valores de las entradas R y S y el biestable cambiar, o no, de estado segn los valores de esas entradas.
R C S

Ri

Q Q

C 0 1

Biestable No cambia Cambia segn valores de R y S

Biestable RS asncrono
Si

Figura 5.8 Vemos cmo, considerado en su conjunto (biestable asncrono, ms puertas AND), el biestable funciona exactamente igual que un biestable RS pero slo cuando la entrada C toma el valor 1. Cuando C toma el valor 0 , el biestable permanece en el estado en que estuviera con total independencia de los valores aplicados en R y S. Esta una forma muy til para llevar el control de cundo puede cambiar de estado un biestable: cuando a su diseador le interese, o, lo que es lo mismo, cuando el reloj lo permita.
En la Figura 5.9 se recoge el cronograma del funcionamiento de un biestable RS sncrono para determi-

nados valores de sus entradas, includa la entrada de sincronismo. Podemos ver cmo, supuesto que el estado inicial del biestable ( Q ) sea 0,
R S C Q
t1 t2 t3 t4 t5

Pone a cero... Pone a uno...

... cuando el reloj se lo permite


Figura 5.9 Inicialmente, t 1, supongamos que se aplica una seal de sincronismo ( C = 1). El reloj permite el cambio; el biestable podra cambiar de estado, pero, al mantenerse R y S en el valor 0 , no cambia (Q=0). En el instante t2 se aplica el valor 1 en la entrada S, el biestable debe pasar a 1, como la seal de sincronismo se mantiene a 1, el reloj lo permite y el biestable cambia de estado, pasa a 1 (Q=1). Poco despus, tiempo t3 , se pone S en 0 y la seal de reloj contina en 1. el reloj permite el cambio, pero como S y R estn en 0, el biestable no cambia de estado, contina en 1 (Q=1). En el tiempo t4, la seal de reloj se pone a 0 , el reloj no permite el cambio. Sea cual sea el valor de R y S, el biestable continuar en 1 (Q=1). As, en t5, la entrada R se pone a 1. El biestable debera cambiar, pero el reloj no lo permite y el biestable contina en el mismo estado (Q=1). Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

129

Vemos claramente cmo la seal de reloj acta como rbitro, permitiendo o no el cambio de estado del biestable segn el valor de esta seal. Cuanto acabamos de mencionar para el biestable RS, es aplicable conceptualmente para cualquier otro tipo de biestable: Un biestable sncrono slo puede cambiar de estado cuando el reloj lo permite Activacin por Nivel y Activacin por Flanco Un biestable sncrono puede activarse bien por nivel, o bien por flanco. La activacin por nivel se produce cuando la seal de sincronismo se aplica durante un tiempo relativamente largo, como en la Figura 5.9 que acabamos de comentar. En un ordenador, en este caso la seal de sincronismo se mantiene durante la duracin de un ciclo completo del reloj, o incluso, durante varios ciclos. Posteriormente, al tratar de ordenadores, veremos cmo a este tipo de seales de sincronismo, se les denomina micrordenes de nivel. Pero, en otras muchas ocasiones interesa que la duracin de la seal de sincronismo sea muy breve. En este caso se dice que el biestable est activado por flanco. En la Figura 5.10 vemos cmo un biestable puede activarse por flanco. En realidad, la seal que va a activar el biestable ser el valor presente en Ci, pues a partir de ah la figura es la misma que se emple anteriormente. Las puerta NOT y AND que se colocan por delante tienen la funcin de generar una seal muy corta en Ci que coincide con el flanco ascendente de la seal de reloj C.
i

R C S
Ci
Biestable asncrono

Q C Q Ci

Figura 5.10 Aparentemente la salida de la puerta AND que en la figura aparece sin sombrear ser siempre 0, pues le entran una variable ( C ) y su negada ( C ). Sin embargo, sto slo sera cierto si la respuesta de la puerta NOT al paso de C del valor 0 al 1 fuese instantnea. Como, por rpida que sea la tecnologa, la respuesta no es instantnea, durante un tiempo, muy breve, los valores en la entrada de esta puerta AND sern ambos 1 y, por tanto, su salida ( Ci ) tambin ser 1, y ser durante ese tiempo cuando el reloj permita el cambio de estado del biestable. Hemos visto el circuito para activar por flanco ascendente , pues la activacin del biestable se hace coincidir con la subida de la seal de sincronismo. Anlogamente existen circuitos, que no vamos a indicar, para la activacin por el flanco descendente . Posteriormente, al tratar de ordenadores, veremos cmo a este tipo de seales de sincronismo, se les denomina micrordenes de impulso. En la Figura 5.11 se incluye el cronograma de un biestable RS activado por flanco ascendente. nicamente durante los instantes t2 y t6 , coincidentes con flancos ascendentes de la seal de reloj C el biestable queda autorizado para cambiar de estado. Slo en esos momentos se deber atender a los val ores de las seales de entrada R y S.

Estructura y Tecnologa de Computadores (Seccin II)

130

Anlisis y Diseo de Circuitos Secuenciales

R S C

t1 t2 t3 t 4

t5 t6 t 7 t8

activado por flanco

Figura 5.11 En t2, el valor de S es 1 , por lo que el biestable se pondr en 1. Cambien o no los valores de R y S, se mantendr en ese valor hasta que un nuevo flanco de subida en la seal del reloj le permita cambiar de estado de acuerdo con los valores de R y S. As, en t6 , el reloj permite el cambio y, como entonces el valor de R es 1, el biestable cambiar a 0. Naturalmente, si en ese instante t6 los valores de R y S hubieran sido otros, por ejemplo R=0 y S=1, el biestable habra actuado de acuerdo con ellos y habra continuado en 1. Obsrvese que la seal de reloj, en este caso su flanco ascendente, permite el cambio , lo que no quiere decir que obligue a cambiar. Cambiar o no, segn los valores que se apliquen en las entradas R y S. Muy frecuentemente, los biestables, sncronos o no, disponen de otras dos entradas adicionales. Una de ellas, denominada generalmente Clear, permite poner el bie stable en el valor 0. La otra, conocida como Preset (o, a veces Set, aunque no tenga nada que ver con la entrada S de los biestables RS), permite poner el biestable en el valor 1. Ambas entradas son siempre asncronas, lo que significa que actan inmediatamente, con total independencia de la entrada de reloj, si la hubiera. As mismo, ambas entradas existen en cualquier tipo de biestable, no slo en los RS.

Clear R S Q Q

Preset
El Biestable D

Uno de los biestables ms frecuentemente empleado es el de tipo D. Se trata de un biestable que sie mpre es sncrono y que se puede formar uniendo las entradas R y S de un biestable RS por medio de una puerta NOT, segn se indica en la Figura 5.12.
R

Q Q

D C

Q Q

C D
S

Figura 5.12

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

131

As, nos encontramos con una nica entrada, ms el reloj, que se aplica directamente en la entrada S y negada en la entrada R. Para ver el funcionamiento de este biestable podemos partir de la Tabla de Estados del RS. Por la constitucin del biestable D, es materialmente imposib le que R sea igual a S, siempre tienen que ser una complementaria de la otra. Por tanto se pueden eliminar los casos que aparecen sombreados en la Figura 5.13.
R S Q n-1 Qn 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 D Q n- 1 Qn 0 0 1 1 0 1 0 1 1 0 0 1 1

0
0

1
Figura 5.13

Por otra parte, en los casos de la Tabla de Estados que continan siendo vlidos se observa que siempre que S=1 la salida es 1 y siempre que R=1, la salida es 0. Por otra parte, segn se indica en la Figura 5.12 (pg. 130), la entrada S del biestable RS equivale a la D del biestable D, mientras que la entrada R equivale a la negacin de D. De ah se desprende la Tabla de Estados del biestable D , que se indica en la Figura 5.13 y en la que se observa que, en realidad, la salida es independiente de la entrada. En la Figura 5.13 se indica tambin el Diagrama de Estados, que puede obtenerse inmediatamente de la Tabla de Estados correspondiente. Por ltimo, en la Figura 5.14 se incluyen la Tabla de Caractersticas y la Tabla de Excitacin del bie stable D, obtenidas con facilidad a partir del Diagrama de Estados que se reproduce en el centro de la figura.
Tabla de caractersticas D 0 1 Qn 0 1
0

Tabla de excitacin
1 1

Qn-1Qn 0 0 0 1 1 0 1 1

D 0 1 0 1

Figura 5.14 Resumiendo, la salida de un biestable de tipo D es igual a la entrada, siempre y cuando el reloj lo permita, es decir siempre que est presente una seal de sincronismo, ya que este biestable, necesariamente, ha de ser sncrono.

Estructura y Tecnologa de Computadores (Seccin II)

132

Anlisis y Diseo de Circuitos Secuenciales

El Biestable JK
Otro tipo de biestable a analizar es el JK. Est basado en el RS, con las entradas intercambiadas (la entrada J, equivale a la S y la entrada K equivale a la R) pero permitiendo que se pueda aplicar el valor 1 simultneamente en ambas entradas. As, la Tabla de Verdad es la misma que la del RS con la diferencia de la entrada 11, prohibida anteriormente y ahora permitida. Qu hace el biestable cuando se aplica un 1 en ambas entradas? Simplemente, cambia de estado. De esta forma la entrada J se emplea para poner a 1 (Set) la entrada K se emplea para poner a 0 (Reset) ambas entradas a 0 mantienen el estado del biestable, y ambas entradas a 1 hacen cambiar siempre de estado al biestable

En la Figura 5.15 se representa esquemticamente este tipo de biestable, y se incluyen todas sus tablas (Tabla de Estados, Tabla de Caractersticas y Tabla de Estados) y su Diagrama de Estados de acuerdo con su funcionamiento tal y como acabamos de describirlo.
J K Q J K Qn-1 Qn 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0

JK
10 11

00 01

00 10

0
01 11

J 0 0 1 1

K Qn 0 Qn-1 1 0 0 1 1 Qn-1

Qn-1 Qn 0 0 0 1 1 0 1 1

J 0 1 X X

K X X 1 0

Figura 5.15 Este tipo de biestable puede ser sncrono o asncrono, aun cuando lo ms frecuente es lo primero.

El Biestable T
Es el ltimo tipo de biestable que vamos a analizar. En realidad, como se ve en la Figura 5.16, se trata de un bie stable JK en el cual se han unido sus entradas J y K resultando una nica entrada, a la que se denomina T.
J

Q Q

T C

Q Q

C T
K

Figura 5.16

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

133

Dado que el biestable T deriva de un biestable JK, para obtener su Tabla de Verdad partimos de la correspondiente al JK. Pero en ella, al estar unidas las entradas J y K, no son posibles ahora nada ms que las entradas con 00 o con 11 , con lo que en la Tabla de Estados del biestable JK deberemos eliminar las entradas con valores diferentes en J y K (Figura 5.17). Podemos observar, entonces, que cuando la entrada es 0 (00 al biestable virtual JK) el biestable T permanece en el estado en que estuviera, mientras que cuando la entrada es 1 (11 para el JK) el biestable cambia de estado con lo que se obtiene la Tabla de Estados del biestable T, que aparece a la derecha de la figura. En la misma figura se incluye tambin el Diagrama de Estados correspondiente.
J K Q n-1 Q n 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 1 T Qn-1 Q n 0 0 1 1 0 1 0 1 0 1 1 0

0
1

1
Figura 5.17

Por ltimo, terminamos mostrando la Tabla de Caractersticas y la Tabla de Excitacin de este biestable (Figura 5.18) cuyo funcionamiento se resume as: Aplicando un 0 en la entrada, se mantiene inalterado el valor de la salida Aplicando un 1 en la entrada se complementa el valor de la salida existente anteriormente.

T 0 1

Qn Qn-1 Qn-1

Qn-1 Qn 0 0 0 1 1 0 1 1
Figura 5.18

T 0 1 1 0

5.3.- Este tipo de biestable tambin puede ser sncrono o asncrono, aunque lo habitual es el emplear biestables sncronos. Anlisis de Circuitos Secuenciales
En la Figura 5.19 se incluye el esquema bsico de cualquier circuito secuencial. Un circuito secuencial siempre est formado por un conjunto de biestables y, adems, por un circuito combinacional previo.

Estructura y Tecnologa de Computadores (Seccin II)

134

Anlisis y Diseo de Circuitos Secuenciales

Algo imprescindible en un circuito secuencial es que las salidas de los biestables (o algunas de ellas) pasen a ser entradas al circuito combinacional proporcionando as la realimentacin consustancial a un circuito secuencial, como comentamos al comienzo de este captulo. Las salidas del circuito combinacional proporcionan, por un lado las entradas a los biestables (siempre presentes) que permitirn el cambio de estado de estado de los mismos, y por otro, salidas propias del circuito combinacional que pueden estar presentes o no, dependiendo del circuito en particular. Por otra parte, es frecuente que los propios biestables proporcionen tambin sus salidas al exterior, segn se indica en la figura por medio de la lnea de trazos. Adicionalmente, debe haber alguna entrada al circuito combinacional.
Entradas Salidas

Circuito combinacional Biestables

Figura 5.19 Pongamos un ejemplo sencillo. Supongamos un contador de vehculos instalado en una carretera. La entrada al circuito ser una seal generada por un sensor (ajeno al circuito) cada vez que pase un vehculo. Los biestables irn indicando, en binario por ejemplo, el nmero de vehculos que han pasado desde que se puso el contador a cero. Las salidas de estos biestables, junto con la entrada del sensor, sern las entradas al circuito combinacional que proporcionar las salidas necesarias para actuar como entrada sobre los biestables de manera que stos vayan cambiando de estado y reflejando el nmero de vehculos. (Si han pasado cuatro vehculos salida de los biestables 0100 cuando pase otro ms la salida de los biestables deber registrar el binario 0101. El circuito combinacional deber generar las seales necesarias para que los biestables pasen de indicar 0100 a 0101). Adems, el circuito combinacional podra proporcionar una seal acstica (salida del circuito secuencial) cada vez que pasase un coche y tambin las salidas de los biestables podran ir a un panel luminoso que mostrase el nmero de vehculos contados (otra salida del circuito secuencial). Cuando hablamos de anlisis nos estamos refiriendo al estudio del funcionamiento de un circuito existente, mientras que diseo implicara cmo construir un circuito de acuerdo con unas condiciones preestablecidas. Para analizar el funcionamiento de un circuito combinacional deberemos 7.- obtener las denominadas ecuaciones de entrada que determinan cules son las entradas a los biestables, que les harn cambiar de estado 8.- obtener las ecuaciones de salida Las ecuaciones de entrada y las ecuaciones de salida definen, en realidad, las salidas del circuito combinacional, segn se representa en la Figura 5.20. Por ltimo, deberemos obtener la Tabla de Estados que nos define las salidas de los biestables. En todas estas ecuaciones y Tablas intervienen tanto las entradas al circuito como las salidas de los biestables en un instante anterior.

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

135

Entradas al circuito

Ecuaciones de entrada

Ecuaciones de salida

Salidas del circuito

Circuito combinacional Biestables

Figura 5.20

Ejemplo de Anlisis de Circuitos Secuenciales


En Figura 5.21 vemos un ejemplo de circuito secuencial.
Circuito combinacional
X
D

Biestables Salidas de los biestables

A
C

B Entradas
C

B Y

Reloj

Salidas

Figura 5.21 Los biestables son dos biestables de tipo D, con sus entradas D y C (reloj) y sus salidas A, A, B y B. Todos estos componentes se agrupan en la figura en el rectngulo sombreado de la derecha. El circuito combinacional est formado por las puertas lgicas que se representan en el rectngulo sombreado de la izquierda. Este circuito combinacional tiene unas entradas que proceden de las salidas de los biestables (en este caso particular de las salidas A, A, y B) y otra que procede del exterior (X, en nuestro ejemplo). El circuito combinacional tiene dos salidas que se dirigen a las entradas D de ambos biestables. Su funcionamiento se rige por las ecuaciones de entrada. Tiene tambin otra salida (Y, en la parte inferior) que va directamente al exterior. Es la salida del circuito secuencial y se rige por las ecuaciones de salida.

Estructura y Tecnologa de Computadores (Seccin II)

136

Anlisis y Diseo de Circuitos Secuenciales

En este ejemplo, como por otra parte es muy frecuente, las salidas de los biestables, adems de ser entrada al circuito combinacional, son tambin una salida ms del circuito secuencial. En resumen, el circuito secuencial en su conju nto es todo lo que se encuentra en la figura dentro del rectngulo punteado. Sigamos con el circuito de la Figura 5.21 y comencemos por establecer las ecuaciones de entrada a los biestables. Si analizamos la entrada D del biestable A (a la que llamaremos DA), vemos que es la salida de una puerta OR con dos entradas, procedentes de sendas puertas AND, con dos entradas cada una de ellas: En la puerta superior, una entrada es X (la entrada del circuito secuencial) y la otra, la salida que estaba presente en el biestable A. Diremos que es el estado anterior del biestable y lo denominaremos como An-1 , indicando con el n-1 la idea de un tiempo pasado. La salida de esta puerta ser, pues, A n-1 X. En la segunda puerta AND, una entrada es tambin X y la otra la salida del biestable B, a la que denominaremos como Bn-1 y la ecuacin ser Bn-1 X.

Por tanto, la ecuacin de entrada al biestable A ser

D A = A n 1 X + B n 1 X
Y, siguiendo el mismo proceso para la entrada del biestable B, tendramos:

D B = A n 1 X
Estas dos ecuaciones constituyen las denominadas ecuaciones de entrada. Las ecuaciones de salida (en nuestro caso slo una, la correspondiente a la salida Y) se obtienen a partir de las puertas NOT, OR y AND de la parte inferior izquierda de la figura. As, tendremos:

Y = (An 1+ Bn 1) X
Las salidas de los biestables A y B irn variando de acuerdo con los valores que vayan tomando DA y DB y los cambios se producirn slo cuando se de la seal de sincronismo a travs del reloj. La salida Y depende de los valores que en un momento dado tengan las salidas de los biestables y del valor de la variable de entrada, pero es independiente de la seal de sincronismo: siempre que vare X, variar Y. El paso siguiente consiste en obtener la Tabla de Estados, que nos debe indicar el estado al que se llega desde un estado anterior, dados unos valores determinados de las variables de entrada. La Tabla de Estados se representa en la Figura 5.22 en la que se incluyen tambin las ecuaciones de entrada (DA y DB) y de salida (Y) obtenidas anteriormente. El estado anterior viene dado por los valores que en un momento tienen los biestables, en nuestro caso los llamaremos An-1 y Bn-1. Cuando se da una seal de reloj, se pasa al estado siguiente, definido por los valores a los que pasan los biestables tras la seal de reloj, a los que llamaremos An y Bn , indicando con n un momento posterior al n-1. Cmo se obtienen los valores An y Bn?. Veamos, por ejemplo, la primera lnea de la Tabla de Estados. Si nos encontramos en el estado 00 (An -1 = Bn- 1 = 0) y la entrada X vale 0, el valor de DA, segn las ecuaciones obtenidas anteriormente debe ser 0. Y, por tratarse de un biestable tipo D la salida es siempre igual a la entrada, supuesto que haya un impulso de reloj, segn se recoge en la parte inferior derecha de la figura. Por tanto, el valor An ser 0; anlogamente obtendramos Bn = 0 y, a partir de las ecuaciones de salida, tendramos Y = 0.

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

137

Estado anterior

Entrada

Estado siguiente

Salida

A n-1 B n-1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

X 0 1 0 1 0 1 0 1

An 0 0 0 1 0 1 0 1

Bn 0 1 0 1 0 0 0 0

Y 0 0 1 0 1 0 1 0

D A = An-1 X D B = An-1 X

+ Bn-1 X

Y = (An-1 + B n-1) X Biestable D: A n = DA B n = DB

Figura 5.22 Veamos ahora otro ejemplo, de la misma tabla. Supongamos que estamos en el estado 10 y la entrada X toma el valor 0 (quinta lnea de la tabla). Aplicando las ecuaciones de entrada tendramos DA = 0 y DB = 0, , por tanto, An = 0 y B =0. Con las ecuaciones de salida tendramos Y = 1.
n

Cmo interpretaramos lo anterior?. Diramos si el circuito est en el estado 10 y la entrada es 0, el estado siguiente ser 00 y el valor de la salida ser 1. Si analizamos todos los casos posibles (estados desde 00 hasta 11 y entrada 0 o 1) llegamos a la Tabla de Estados completa que se reproduce en la Figura 5.23. A partir de esta tabla podemos representar el Diagrama de Estados que aparece en la misma Figura 5.23. En l se deben representar los cuatro estados posibles, cada uno dentro de un crculo.
Estado anterior Entrada Estado siguiente Salida 1/0 0 /0

An-1 Bn-1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

X 0 1 0 1 0 1 0 1

An 0 0 0 1 0 1 0 1

Bn 0 1 0 1 0 0 0 0

Y 0 0 1 0 1 0 1 0

00
0 /1 0 /1 1 /0 0 /1

01

1 /0

11
1 /0

10

Figura 5.23 De cada crculo (estado) deben partir tantas flechas como valores diferentes puedan tomar las variables de entrada (en nuestro caso, dos flechas pues slo hay una variable de entrada). Por ejemplo, si estamos en el estado 01 y la entrada toma el valor 1, vemos en la Tabla de Estados (cuarta lnea) que el circuito debe pasar al estado 11 y dar una salida de 0. As representamos una flecha que se dirige al estado 11 y en la que marcamos 1/0 que quiere indicar que con una entrada de 1 se va al estado 11 y se obtiene una salida de 0. (La barra que aparece en la figura separa los valores de las variables de entrada y de las salidas). En realidad, el Diagrama de Estados no es sino otra forma de ver la Tabla de Estados, con la ventaja de que, al ser una representacin grfica resulta ms sencillo ver as cmo funciona el circuito. Aunque en el Diagrama de Estados no se indica explcitamente, si los biestables son sncronos (como es el caso) queda supuesto que los cambios de estado slo se producen cuando haya una seal de sincronismo. Estructura y Tecnologa de Computadores (Seccin II)

138

Anlisis y Diseo de Circuitos Secuenciales

El anlisis con otro tipo de biestables se realizara de una manera similar. Naturalmente, si se tratase de biestables JK o RS, por cada biestable habra dos ecuaciones de entrada JA y KA para el biestable A, JB y KB para el biestable B, etc.

5.4.- Diseo de Circuitos Secuenciales


Mucho ms habitual que el anlisis es el diseo de circuitos. Se plantea un problema real y, una vez comprendido, se debe obtener un circuito que funcione de acuerdo con las necesidades que presenta ese problema. El proceso para disear un circuito es inverso al del anlisis. Aqu debemos, en primer lugar, representar el Diagrama de Estados. Para ello lo primero es conocer y comprender perfectamente el problema: qu estados pueden presentarse, cmo se pasa de un estado a otro (bajo qu valores de las variables de entrada), y qu salidas deben producirse. Tambin en este momento se suele decidir el tipo de biestable que se emplear en el circuito; su eleccin depende generalmente de la funcin a desempear. Este paso es el ms complic ado y el nico realmente creativo en el diseo de circuitos. Una vez obtenido el Diagrama de Estados, hay que traducirlo a una Tabla de Estados, que, despus, deberemos completar indicando los valores que hay que aplicar en las entradas de los biestables para conseguir que se produzcan los cambios de estado recogidos en la tabla. Para ello utilizaremos la Tabla de Excitacin del biestable que estemos empleando. Por ltimo, se debern obtener las ecuaciones de entrada y de salida del circuito combinacional con lo que queda perfectamente definido el circuito secuencial. En la Figura 5.24 se incluye un resumen de las operaciones a seguir.

Crear el Diagrama de Estados y, a partir de l, la Tabla de Estados Empleando la Tabla de Excitacin, deducir los valores a aplicar en las entradas a los biestables Hallar las ecuaciones de entrada Hallar las ecuaciones de salida
Figura 5.24

Ejemplos de Diseo de Circuitos Secuenciales


Para aclarar lo que antecede, vamos a ver seguidamente un par de ejemplos sencillos; uno empleando biestables de tipo D y otro con biestables JK. Empleando biestables de tipo D Supongamos que se quiere disear un circuito secuencial que cumpla con el Diagrama de Estados que se representa en la Figura 5.25. En un caso real, el primer paso, evidentemente, sera obtener este diagrama; nosotros, aqu, nos vamos a limitar a explicar la mecnica del diseo. A lo largo del curso se realizarn problemas reales en los cuales el alumno deber obtener el Diagrama de Estados. Recordemos que el Diagrama de Estados incluye:

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

139

0/ 0

1/ 1

1/ 0

00
Valores de las entradas 1/ 0 Estados de los biestables

01
0/ 0 Valores de las salidas

11
0/ 0

1/ 1

10
0/ 0

Figura 5.25 Los estados que puede tener el circuito. En nuestro ejemplo, son los cuatro estados 00, 01 , 10 y 11 encerrados en sendos crculos que aparecen en la figura. Los valores de 00 a 11 sirven para identificar los estados, pero no tienen por qu tener ninguna relacin con sus val ores decimales (de 0 a 3). Supongamos una noria con cuatro posiciones, equivale ntes a los cuatro estados: arriba, abajo, izquierda y derecha; podemos asignar arbitrariamente cada posicin (estado) a uno de los valores de 00 a 11. Las flechas indican el paso de un estado a otro. En nuestro caso, se puede pasar, por eje mplo, del estado 01 al 10 , pero no desde el 01 al 11. Los valores que acompaan a cada flecha indican, separados por una barra, los valores que deben tomar las variables de entrada para producir ese cambio de estado y los valores que se obtienen en las funciones de salida al aplicar esos valores en la entrada. As, por ejemplo, el diagrama nos dice que si el circuito se encuentra en el estado 01, al aplicar en la entrada el valor 0, el circuito pasar al estado 10 y se tendr en la salida el valor 0. Una flecha con origen y destino en un mismo estado, p. e. el estado 01, significa que, en ese estado, al aplicarse los valores de la entrada que se indican, el circuito no cambia de estado pero produce la salida que tambin se indica.
Salidas

0/0

1/1

1/0

00
1/0

01
0/ 0 X

Estados anteriores

A
Y
Estados siguientes

Circuito Combinacional

11
0/0

1/1

10
0/0
Entradas

Entradas a los biestables

Figura 5.26 En la Figura 5.26 recordamos que a partir del Diagrama de Estados de la izquierda deberemos obtener un circuito del tipo del representado esquemticamente en el lado derecho. Como hay cuatro estados, necesitaremos dos biestables (A y B) ya que con sus salidas podemos representar los estados desde 00 hasta 01. Estructura y Tecnologa de Computadores (Seccin II)

140

Anlisis y Diseo de Circuitos Secuenciales

Las salidas A, A, B y B de los biestables deben ser entradas para el circuito combinacional (en la figura no estn representadas las cuatro salidas). Las entradas de los biestables que debern hacer que stos se muevan, son algunas de las salidas del circuito combinacional. En el Diagrama de Estados vemos que slo hay una salida del circuito secuencial: ser otra salida del circuito combinacional y la llamaremos Y. Hay tambin una nica entrada, a la que llamaremos X. No representamos en este esquema la entrada de sincronismo de los biestables, aunque si los biestable s fueran sncronos debera estar presente. Continuemos con el desarrollo. La Tabla de Estados (Figura 5.27)est formada por dos zonas. En la primera zona deben aparecer el estado anterior y las variables de entrada. Como tenemos dos biestables, el estado anterior vendr representado por los valores An-1 y Bn-1 de los biestables A y B. (En la tabla no se incluyen los valores negados). La entrada es nica, por tanto tiene una nica columna, X.

En la otra zona deben aparecer el estado siguiente y las funciones de salida El estado siguiente vendr dado por An y Bn. La salida, nica en nuestro ejemplo, vendr dada por la columna Y.
0/0
Estado anterior Entrada Estado siguiente Salida

1/1

1/0

A n-1 B n-1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1

X 0 1 0 1 0 1 0 1

An 0 0 1 0 1 1 1 0

Bn 0 1 0 1 0 1 1 0

Y 0 1 0 0 0 1 0 0

00
1/0

01
0/ 0

11
0/ 0

1/1

10
0/0

Hasta aqu...

independiente del tipo de biestable

Figura 5.27 Cmo se ha rellenado la tabla?. En la primera zona incluiremos todos las combinaciones posibles de estados anteriores y variables de entrada; con tres columnas tendremos ocho casos posibles (desde 000 hasta 111). Para colocar los valores de los estados siguientes y funcin de salida, deberemos atender al Diagrama de Estados: As, si estamos en el estado 00 y la entrada es 0 (primera lnea de la tabla), vemos en el diagrama que el estado siguiente debe ser 00 y la salida 0. Llevamos pues estos valores a las columnas correspondientes de esta lnea. Y si estamos en el estado 10 y la entrada es 1 (sexta lnea de la tabla), vemos que el estado siguiente debe ser 11 y la salida 1.

Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

141

Llevamos tambin estos valores a la Tabla de Estados. Procediendo de esta forma para todos los casos posibles tenemos traducido el Diagrama de Estados, (la representacin grfica del funcionamiento del circuito) a una Tabla de Estados que nos permitir continuar con el proceso. Este proceso es, todava, independiente del tipo de biestable a emplear. Es ahora cuando se debe elegir el tipo de biestable a utilizar (Figura 5.28); en este ejemplo elegimos, arbitrariamente, biestables de tipo D. Cualquier problema se puede resolver con cualquier tipo de biestable aunque no con la misma efic acia. En la prctica, la eleccin de un tipo u otro de biestable depende del tipo de problema a resolver y, en definitiva, de la experiencia del diseador.
E bientrad sta as ble s Es sig t uieado nte
E antstado erio r

Ent rad a

Se elige el tipo de biestable a emplear, por ejemplo, el D Se estudia qu entradas DA y DB hay que aplicar a los biestables para cumplir con la Tabla deEstados

Tabla de excitacin Qn-1 Qn 0 0 0 1 1 0 1 1 D 0 1 0 1

An-1 Bn-1 X 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

An Bn 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0

Y 0 1 0 0 0 1 0 0

Sal ida

DA DB 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0

Figura 5.28 Una vez elegido el tipo de biestable, debemos decidir qu valores deben aplicarse en sus entradas para que el biestable cambie segn las especificaciones indicadas. Por ejemplo, en la pgina anterior dijimos, para la sexta lnea de la tabla: Y si estamos en el estado 10 y la entrada es 1, vemos que el estado siguiente debe ser 11 y .... Es decir, el primer biestable debe mantenerse en el estado 1 y el segundo pasar del estado 0 al estado 1. Cmo lo conseguimos? Deberemos acudir a la Tabla de Excitacin de este biestable; en ella (lt ima lnea) vemos que para mantener el biestable A en 1 debemos aplicar en su entrada DA el valor 1 , y para que el biestable B pase de 0 a 1 (segunda lnea) deberemos aplicar en su entrada DB el valor 1. Haciendo esta operacin para todas las lneas de la Tabla de Estados del circuito, con lo que llegamos a la tabla de la Figura 5.28.
Salidas Estados anteriores

A
Y
Estados siguientes

Circuito Combinacional

Si volvemos al esquema bsico de un circuito secuencial, vemos que ya conocemos todos los valores que intervienen para el diseo de la parte combinacional. Conocemos todas sus entradas (estados anteriores An-1 y Bn- 1 , salidas Y , y entradas a los biestables DA y DB). Y as, ya estamos en condiciones de disear el circuito combinacional.

Entradas a los biestables Entradas

De la Tabla de Estados anterior, vemos que el funcionamiento del circuito combinacional viene defin ido por las columnas An- 1 Bn-1 , Y, DA y DB, recuadradas en la Figura 5.29. Por tanto, para conocer las ecuaciones del mismo, emplearemos, como siempre, el mtodo de Karnaugh. En esta Figura 5.29 obtenemos las ecuaciones correspondientes a DA, DB e Y. Estructura y Tecnologa de Computadores (Seccin II)

142

Anlisis y Diseo de Circuitos Secuenciales

E bie ntrad sta as ble s

E sig stad uie o nte

E antstado erio r

En trad a

Sal ida

00 01 11 10 0 1

An-1 Bn-1 X 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

An Bn 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0

Y 0 1 0 0 0 1 0 0

DA DB 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0

1 1 1 1
00 01 11 10 0 1

DA = B n-1X + An-1B n-1 00 01 11 10 0 1

1
Y = Bn-1 X

1 1 1 1

DB = A n-1X + Bn-1X + An-1 Bn-1X

Figura 5.29 Conocidas las ecuaciones de DA, DB e Y, obtener la representacin del circuito combinacional es i nmediata. nicamente hay que tener en cuenta que los valores An- 1, Bn-1 y sus negados representan los estados anteriores de los biestables A y B, por tanto, los tomaremos de las salidas A, A y B, B de los biestables A y B. El circuito resultante se representa en la Figura 5.30.
A

A
C

Y
D B

B
C
Reloj

Figura 5.30 En la figura se observan claramente, encuadrados en sendos rectngulos, tanto la componente combinacional como los bie stables, que con sus correspondientes interconexiones, conforman el circuito secuencial. Empleando biestables de tipo JK Vamos a desarrollar brevemente el mismo ejemplo anterior pero empleando biestables de tipo JK, en lugar de emplear biestables de tipo D. La tcnica a emplear es la misma y, de hecho, la Tabla de Estados es la misma que aparece en la Figura 5.27, pues, hasta ese punto no influye el tipo de biestable a emplear. Las diferencias surgen cuando, una vez elegido el tipo de biestable, hay que analizar los val ores que deben aplicarse en sus entradas en cada situacin. En este caso deberemos atender a la Tabla de Caractersticas del biestable JK, que inclumos en la Figura 5.31. Analizando, como antes, la sexta lnea de la tabla decimos: Y si estamos en el estado 10 y la entrada es 1, vemos que el estado siguiente debe ser 11 y .... Para que el biestable A se mantenga en el estado 1, segn la Tabla de Caractersticas, vemos que la entrada JA puede aceptar cualquier valor (X en la tabla), mientras que en la entrada KA se debe aplicar Estructura y Tecnologa de Computadores (Seccin II)

Anlisis y Diseo de Circuitos Secuenciales

143

el valor 0. Anlogamente, para que el biestable B pase del estado 0 al estado 1 debe aplicarse un 1 en su entrada JB y cualquier valor en la entrada KB.
E bie ntrad sta as ble s Es sig tad uie o nte
E antstado erio r

En trad a

Se elige el tipo de biestable a emplear, por ejemplo, JK Se estudia qu entradas JA , K A y JB , K B hay que aplicar a los biestables para cumplir la Tabla de Estados

Tabla de excitacin Qn -1 Qn 0 0 1 1 0 1 0 1 J K 0 1 X X X X 1 0

An-1 Bn-1 X 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

An Bn 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0

Y 0 1 0 0 0 1 0 0

Sal ida

J A K A JB KB 0 0 1 0 X X X X X X X X 0 0 0 1 0 1 X X 0 1 X X X X 1 0 X X 0 1

Figura 5.31 Repitiendo este mismo proceso para todas las lneas de la tabla, obtenemos el resultado que se indica en la Figura 5.31. Para obtener las ecuaciones de salida, partiremos de la Tabla de la Figura 5.31 y aplicando Karnaugh llegaremos a las expresiones de la Figura 5.32.
E bie ntrad sta as ble s Es sig tad uie o nte
E antstad erio o r

Ent rad a

Sal ida

00 01 11 10 0 1 X X 1 0 X X 0 1

00 01 11 10 0

A n-1 Bn-1 X 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1

A n Bn 0 0 1 0 1 1 1 0 0 1 0 1 0 1 1 0

Y 0 1 0 0 0 1 0 0

J A K A JB K B 0 0 1 0 X X X X X X X X 0 0 0 1 0 1 X X 0 1 X X

1 X X X X
J A = Bn-1 X

X X 1 1 X X 1
JB = X 00 01 11 10 0 X 1 X 1 X 1 X K B = An-1X+ A n-1X

00 01 11 10 0 X X 1 X X 1 K A = B n-1X

Figura 5.32 Obsrvese que las ecuaciones de salida, en nuestro caso la funcin Y, no sufren variacin alguna con respecto a la obtenida con biestables de tipo D, puesto que dependen nicamente del estado anterior y de los valores de las variables de entrada. Y en la Figura 5.33 tenemos ya la representacin grfica del circuito resultante. En ella se destacan la componente combinacional, por una parte y los biestables por otra. No se ha dibujado la entrada de reloj, que puede o no estar presente segn los biestables sean sncronos o asncronos. Puede ser interesante comentar cmo el hecho de emplear biestables JK, con dos entradas, en lugar de biestables D con una sola entrada no significa necesariamente un circuito ms complejo. De hecho, la parte combinacional de este ejemplo, con biestables JK, es ligeramente ms sencilla que con biestables D. El hecho de que la Tabla de Caractersticas del biestable JK tenga muchos valores indiferentes, permite frecuentemente una mayor simplificacin al emplear el mtodo de Karnaugh.

Estructura y Tecnologa de Computadores (Seccin II)

144

Anlisis y Diseo de Circuitos Secuenciales

Recordar, por ltimo, que no es imprescindible que todos los biestables sean del mismo tipo, aunque, en la prctica, sea lo ms frecuente.

A
K

B
K

Figura 5.33

Estructura y Tecnologa de Computadores (Seccin II)

6
CIRCUITOS SECUENCIALES FUNDAMENTALES
De igual forma que al tratar de circuitos combinacionales describimos los principales circuitos de ese tipo: codificadores, multiplexores, etc, tambin ahora vamos a tratar los circuitos secuenciales ms caracterstic os. Aqu nos encontramos fundamentalmente con dos grandes grupos de circuitos secuenciales: los registros, destinados a almacenar informacin y los contadores que, como su nombre indica, se utilizan para contar (y almacenar) el nmero de impulsos que se presentan a lo largo del tiempo. Los impulsos se generan por elementos ajenos al propio contador. (Por ejemplo, un sensor situado en una carretera puede generar un impulso cada vez que pasa un vehculo por su zona de accin; este impulso se presenta a la entrada del contador y ste va acumulando los sucesivos impulsos, contando as el nmero de vehculos que pasan en un intervalo de tiempo). Tanto registros como contadores emplean como componente fundamental biestables. Como ya mencionamos anteriormente, un c ircuito secuencial puede emplear cualquier tipo de bie stable, aunque siempre suele haber un tipo ms adecuado que otro para cada tipo de circuito. As, normalmente, los registros emplean biestables D, mientras que los contadores suelen emplear biestables T. Tambin se deben considerar dentro de este captulo los elementos bsicos para almacenar informacin en un ordenador: las memorias.

6.1.- Registros
Un registro es un elemento empleado para almacenar informacin. Dado que un biestable puede almacenar un bit, para almacenar n bits de informacin se necesitarn n biestables. En la Figura 6.1 se representa el esquema de este tipo de circuitos.

n biestables generalmente de tipo D


con una entrada de sincronizacin comn
D C Q D Q C D C Q D C Q

Reloj

La informacin puede cambiar slo cuando el reloj lo permita


Figura 6.1 La entrada D de cada biestable estar conectada a un bit de informacin. Si la entrada de sincronismo de todos los biestables es comn, el contenido del registro (es decir, de cada uno de los n biestables) slo podr modificarse cuando se de un impulso de reloj en dicha entrada. Estructura y Tecnologa de Computadores (Parte II)

146

Circuitos Secuenciales Fundamentales

As se hace posible que aunque la informacin presente en la entrada de los biestables pueda estar variando continuamente, slo se almacene en el registro en el instante en que se desee. En ese momento habr que dar una seal de sincronismo en la entrada de reloj. (Recurdese que los biestables de tipo D son siempre sncronos). Hemos dicho que un registro emplea biestables de tipo D. Por qu? Porque son los ms sencillos para realizar la funcin de almacenamiento: siempre que se presenta una seal de sincronismo, almacenan directamente la seal presente en su entrada D, sin necesidad de ninguna puerta adicional. As, la informacin se almacena cuando se desea. Una vez almacenada permanece en el registro hasta que es sustituda por una nueva informacin. Mientras tanto esta informacin, es decir el contenido de cada uno de los biestables, est disponible permanentemente en las salidas de cada biestable; puede utilizarse en cualquier momento y tantas veces como se necesite.

Control de la carga de un registro


Un registro es un elemento fundamental en prcticamente cualquier tipo de circuito microelectrnico. En muchos de estos circuitos, y en particular en un ordenador (y un ordenador est lleno de registros), el mecanismo elemental para controlar el momento en que la informacin se carga en el registro que hemos expuesto en el tema anterior anteriormente, no es aplicable directamente. En un ordenador hay un reloj comn para todos sus circuitos. Este reloj va dando impulsos a una frecuencia muy alta, digamos, por ej emplo, a 3 Ghz. A esta frecuencia, en un segundo se producen tres mil millones de impulsos; si el reloj se conectase directamente a la entrada de sincronismo de los registros, stos cambiaran su contenido tres mil millones de veces cada segundo y no habra manera de que la informacin se mantuviese en el registro un tiempo apreciable.
Orden de

Escritura
Reloj del sistema

Carga
(al reloj de los Biestables)

Figura 6.2 Lo que se hace es combinar en una puerta AND la salida del reloj y una seal especial que se genera slo cuando se desea almacenar informacin en el registro (Figura 6.2). La salida de esta puerta AND acta sobre la entrada de sincronismo y slo entonces, cuando el diseador lo desea y lanza para ello la seal de escritura, se produce el almacenamiento de la informacin en el registro. Como normalmente no se desea cargar informacin en todos los registros a la vez, deber haber diferentes seales de escritura para cada uno de los registros, que generarn seales de carga diferentes para la s entradas de sincronismo de los diferentes registros. Veremos ms adelante que estas seales de carga en un ordenador se conocen como micrordenes y se generan en el Controlador.

Tipos de Registro
Los tipos ms habituales de Registro son Registros con Entrada Paralela y Salida Paralela Registros con Entrada en Serie y Salida en Serie Registros Mixtos Registros de Desplazamiento o Circulares

El tipo ms frecuente de registro es el que tiene tanto la entrada como la salida de la informacin en paralelo. La informacin se almacena simultneamente en todos los biestables; en cada uno de ellos se Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

147

presenta un bit de la informacin a almacenar que entra en el biestable cuando se da la seal de carga (Figura 6.3).

Entrada paralelo y salida paralelo


En-1
D C Q

E2
D C Q

E1
D C Q

E0
D C Q

Carga

Sn-1

S2

S1

S0

La informacin
Se almacena simultneamente en todos los biestables Est presente y accesible simultneamente en todos los biestables

Figura 6.3 Anlogamente ocurre con la salida, todos los bits estn disponibles simultneamente. En algunos casos se emplean sin embargo otros tipos de registro. En los registros con entrada en serie y salida tambin en serie, la informacin se presenta slo en la entrada del biestable menos significativo de cada registro. La informacin se va presentando de bit en bit, a un ritmo que coincide con el de la seal de sincronismo (Figura 6.4). Entrada serie y salida serie
Entrada (bit a bit)
D C Q D C Q D C Q

Salida (bit a bit)


D C Q D C Q

Carga

La informacin
Se almacena bit a bit (uno por cada ciclo de reloj) Se extrae bit a bit (uno por cada ciclo de reloj) Se desplaza un bit hacia la derecha en cada ciclo de reloj

Figura 6.4 Veamos su funcionamiento. Supongamos que el registro tiene ocho bits, por tanto ocho biestables a los que denominaremos D7, D6, D5, D4, D3, D2, D1 y D0 y que su contenido inicial fuese 01100110. Supongamos tambin que en la entrada se van presentando sucesivamente los valores 0, 1, 0, 0, 1, 0, 1 y 1. A la primera seal de sincronismo (seal de carga), comn a todos los biestables, la informacin almacenada en el biestable D7, es decir 0 D7 D6 D5 D4 D3 D2 D1 D0 como es entrada al D6, se introducir en 11010010 0 1 1 0 0 1 1 0 D6, la presente inicialmente en D6, 1, pasar a D5 y as sucesivamente. Por otra 0 1101001 parte, el primer bit presente en la entrada, 0 0 1 1 0 0 1 1 es decir 0 pasar al bie stable D7 . A la primera seal de sincronismo el contenido de l registro ser, por tanto, el que aparece en la segunda lnea de la figura al margen. Todos los Estructura y Tecnologa de Computadores (Parte II)

148

Circuitos Secuenciales Fundamentales

bits se han desplazado una posicin a la derecha; ha entrado en el registro el primer bit de informacin y ha salido el ltimo bit almacenado inicialmente. A la siguiente seal, entrar el segundo bit y el resto se desplazar una pos icin a la derecha, perdi ndose otro de los bits iniciales. En la figura representamos tambin la situacin tras las dos seales de sincronismo siguientes. Al cabo de ocho seales de sincronismo, habrn entrado los ocho bits con la nueva informacin y habrn salido los ocho almacenados en un principio y la situacin quedar finalmente como se indica tras los puntos de la figura.

110100 11010 1101

1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0

10 110 0110

Obsrvese que para introducir la in01100110 1 1 0 1 0 0 1 0 formacin correspondiente a los ocho bits se han necesitado ocho seales de sincronismo. Esto hace que este tipo de registros sean mucho ms lentos, aunque tengan tambin su utilizacin adecuada en determinadas circunstancias. Por eje mplo, una lnea de comunic aciones, normalmente, va enviando la informacin bit a bit, en serie. Si la frecuencia a la que la lnea va presentando esta informacin en la entrada del registro se hace coincidir con la frecuencia a la que se da la seal de sincronismo, un registro con entrada en serie es perfectamente adecuado. Anlogamente por lo que respecta a la salida. Los ocho bits inicialmente presentes en el registro se han ido perdiendo bit a bit. Si se hubiesen presentado, de uno en uno, a una lnea de comunicaciones, podran haberse transmitido por ella perfectamente. Obsrvese tambin que en un registro con entrada y salida en serie si se desea leer la informacin, cada bit se va desplazando hacia la derecha con lo que la informacin se destruye al leerse. Ms frecuentes que los registros con entrada serie y salida serie son los registros mixtos: entrada serie y salida paralelo o viceversa, o incluso algunos que segn ciertas seales de control pueden actuar en serie o en paralelo segn se desee. En el ejemplo anterior, a la entrada de una lnea de comunicaciones suele colocarse un registro con entrada serie y salida paralelo, para que una vez almacenada la informacin, se pueda recuperar sin que se destruya y con rapidez, todos los bits a la vez.

Los Registros en un ordenador


Los registros son uno de los elementos ms utilizados dentro de un computador. Se emplean para el almacenamiento temporal de datos dentro del procesador y estn formados por biestables, generalmente de tipo D, segn se recoge en la Figura 6.5. Un registro est formado por tantos biestables como bits deba almacenar y dispone de tres tipos de lneas Entrada de datos Salida de datos Control.- Indican qu operacin se efectuar en el registro

Cada biestable tiene, normalmente, una lnea de entrada, otra de salida y una o, normalmente, varias lneas de control. Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

149

Lneas de salida

Bn- 1

B3

B2

B1

B0

Lneas de control

( rdenes)

Lneas de entrada

n bits n biestables

Figura 6.5 En un registro deben poderse realizar principalmente dos tipos de operaciones (Figura 6.6): ESCRITURA.- Los datos slo pueden entrar en los biestables cuando el diseador lo decida. Para ello deber colocar un impulso en la lnea de control escribir. Adems, este impulso deber coincidir con una seal de sincronismo a travs de la entrada de reloj.
E0 D C E1 D S1 S0

B0

B1 LECTURA

ESCRITURA (Carga)
En-1

D C
orden

Bn-1
orden

Sn-1

Sincronismo

(escribir)

(leer)

Figura 6.6 Obsrvese en la figura la puerta OR. Podra pensarse, a primera vista, que la escritura funcionara prescindiendo de las puertas AND, conectando por tanto la entrada directamente con la pata D de los biestables y empleando como seal de sincronismo la propia microorden de escribir. Sin embargo, como veremos enseguida, un registro puede recibir otras micrordenes diferentes y tambin pueden tener que coincidir con una seal de sincronismo; esas micrordenes iran tambin por la puerta OR de la figura. LECTURA .- Los datos estn permanentemente disponibles en la salida de cada biestable, pero no deben salir al exterior hasta el momento en que el diseador lo desee. Esto lo controla por medio de un impulso en la lnea de control leer. En principio este impulso no tendra por qu coincidir con ninguna seal de sincronismo, aunque en la prctica as ocurre. En un computador, las seales de leer o escribir, se denominan micrordenes (rdenes) y siempre se dan en momentos coincidentes con pulsos del reloj, aunque, evidentemente, no en todos los pulsos. Transferencias entre Registros Para transferir la informacin entre dos registros A y B, (Figura 6.7) se emplearn las micrordenes le lectura y escritura que vimos anteriormente.

Estructura y Tecnologa de Computadores (Parte II)

150

Circuitos Secuenciales Fundamentales

En la parte derecha de la figura vemos cmo la microorden de le ctura LA coloca los datos del registro A en sus lneas de salida (n lneas, una por cada bit). Esto lleva un tiempo hasta que las seales se estabilizan en esas lneas. Posteriormente, una orden de escritura EB aplicada al registro B, introducir estos datos en B. Durante todo el tiempo debe mantenerse activa la seal LA , pues si no, los datos desapareceran de las lneas de salida del registro A.
A (n bits)
n
EB

LA
LA

B (n bits) (A) B

EB

t1

t2 t3

Figura 6.7 La transferencia entre dos registros se representa simblicamente de la forma (A) B El nombre de un registro encerrado dentro de un parntesis hace referencia al contenido del mismo; (A) indica el contenido del registro A. Una flecha [ ] indica el sentido de la transferencia. As, la expresin simblica anterior se debe entender, en lenguaje coloquial, como lo que haya en A, que pase a B. La conexin entre dos registros requiere una lnea para cada uno de los biestables que los componen, es decir, una lnea por cada bit. Esto dificultara mucho la legibilidad de los grficos por lo que se representa una nica recta atravesada diagonalmente por un trazo. El nmero que aparece junto al trazo indica cuntas lneas forman la conexin. En ocasiones, incluso este trazo se elimina pues el nmero de lneas resulta conocido por el contexto en el que se encuentra. Conviene observar que la operacin de transferencia no es destructiva, es decir, que el contenido del registro de origen, se mantiene en l. Aunque decimos que la informacin en A pasa a B, sera ms correcto decir que la informacin en A se copia en B. As, una informacin puede ser reutilizada tantas veces como se desee, mientras que una operacin de escritura en A no la haya modificado. Sincronizacin Adicionalmente, todas las rdenes se hacen coincidir con alguno de los pulsos de un reloj maestro. Esto da lugar a dos tipos de rdenes: las que requieren estar activas durante un tiempo largo, que se denominan rdenes de nivel, las que requieren estar activas slo durante un tiempo muy breve, que se denominan rdenes de impulso

Las primeras estn activas siempre durante un ciclo completo del reloj (tambin pueden estar activas tambin durante varios ciclos, pero siempre ciclos completos). Las segundas estn activas coincidiendo con el impulso del reloj (Figura 6.8).

Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

151

Reloj A
n

LA

orden de nivel LA

B (A) B

EB

orden de impulso EB

t1

t2 t 3

Figura 6.8 Interconexin de Registros.- El Bus En un ordenador, puede anticiparse que existe un nmero importante de registros. La informacin que contienen debe transferirse entre ellos con total libertad, pero para interconectar directamente p registros, en ambos sentidos, se necesitaran p (p-1) conexiones, cada una de ellas con n lneas sie ndo n el nmero de bits de los registros que se interconectan. En la Figura 6.9 se representan slo una parte de las conexiones y slo entre cinco registros y se puede apreciar que el interconectar directamente todos los registros entre s dara lugar a unos circuitos muy intrincados y complicados, lo que los volvera poco menos que inmanejables.
R1

R5

R2

R4

R3

Figura 6.9 Para simplificar la interconexin se recurre a la tcnica indicada en la Figura 6.10.

R1

E1 L1

R2

E2 L2

R3

E3 L3

Ri

Ei Li

Bus

Figura 6.10

Estructura y Tecnologa de Computadores (Parte II)

152

Circuitos Secuenciales Fundamentales

Las salidas de todos los registros se conectan se conectan a un mismo conjunto de n lneas, denominado bus. Al bus se conectan tambin las lneas de entrada de los registros. Para transferir el contenido de un registro (por ejemplo, el R3) a otro registro (por ejemplo el R1) se necesita dar una orden de lectura de R3 y, posteriormente, una orden de escritura para R1. Esta operacin es similar a la analizada en la Figura 6.7 o en la Figura 6.8. Naturalmente, una vez colocados los datos en el bus, es posible dar dos rdenes de escritura simultneamente, por ejemplo, en los registros R1 y R2 . As, la informacin de R3 se copiar en R1 y R2. Por el contrario, si se diesen dos rdenes de lectura simultneas desde dos registros diferentes la informacin que pasara al bus sera incorrecta, por lo que esta operacin no debe darse en ningn caso. Operaciones en Registros Las operaciones de Lectura y Escritura comentadas anteriormente son fundamentales y, por tanto, estn disponibles en cualquier registro; de hecho constituyen la razn de ser de los mismos ya que un registro sera totalmente intil si no se pudiese almacenar informacin en l y, posteriormente, acceder a esa informacin. Pero no son las nicas operaciones posibles. Dependiendo de la naturaleza y de la utilizacin que se vaya a hacer de los registros, stos pueden disponer de otras operaciones adicionales. Entre ellas se encuentran: Incremento: Permite sumar 1 al contenido de un registro Decremento: Permite restar 1 al contenido de un registro Complemento: Convierte los 0s por 1s y viceversa Restauracin (reset): Permite poner a 0s un registro Relleno (set): permite poner a 1s un registro

Cada una de estas operaciones requiere una orden diferente as como una lnea de control para cada una de ellas. Conviene mencionar que no todos los registros incorporan todas las rdenes anteriores, aunque la orden de Restauracin es prcticamente universal.

6.2.- Contadores
El segundo grupo de subsistemas secuenciales es el de los contadores. Segn el diccionario de la Real Academia Espaola un contador es un dispositivo digital que almacena un nmero y lo aumenta o disminuye en respuesta a una seal de entrada. Bsicamente, se trata de circuitos para contar el nmero de veces que ocurre un determinado suceso como, por ejemplo, el nmero de coches que pasan por una carretera a lo largo de un periodo de tie mpo. De una forma ms acorde con nuestra asignatura, podemos definir un contador como Un subsistema secuencial que pasa por una secuencia de estados preestablecida aplicando impulsos sucesivos en su entrada Por su funcionamiento lgico los contadores pueden ser ascendentes (p.e. nmero de coches que atraviesan un cruce de carreteras), descendentes (p.e. segundos que restan para una hora determinada) o mixtos (p.e. nmero de vehculos estacionados en un aparcamie nto; cuando entra un vehculo acta ascendentemente y cuando sale lo hace de forma descendente). Por otra parte, por lo que respecta a su diseo fsico, un contador puede ser sncrono o asncrono, segn cmo vare el estado de los biestables; en un contador sncrono, todos los bie stables cambian de estado Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

153

simultneamente al presentarse un determinado suceso, mientras que un contador asncrono los biestables van variando sucesivamente uno detrs de otro.

Contadores asncronos
Comenzaremos analizando los contadores asncronos. En ellos los impulsos que deben contarse se aplican nicamente al primer biestable (el que cuenta las unidades de orden inferior) y el cambio de estado de este primer biestable se transmite al segundo y as sucesivamente hasta llegar al biestable de orden superior del contador. La idea fundamental a considerar es que no todos los biestables cambian de estado simultneamente. Si la magnitud a contar puede alcanzar valores elevados se necesitar un nmero elevado de biestables para su registro y, posiblemente, el tiempo que tarda en registrarse un determinado suceso (lo que se tarda desde que se presenta el suceso y cambia de estado el primer biestable, hasta que lo hace el ltimo de la cadena) pueda ser alto. Los contadores, tanto si son sncronos como asncronos, suelen emplear biestables de tipo T y disponen, generalmente, de entradas especficas para su inicializacin (a ceros y/o a unos). En la Figura 6.11 representamos el esquema de un contador asncrono ascendente. Vemos que todos los biestables tienen puesta a 1 su entrada T. Esto significa que todos ellos estn listos para cambiar de estado. Qu necesitan para cambiar? Simplemente, una seal de sincronismo. Analicemos ahora la tabla de la izquierda de la misma figura. En ella se recogen los valores que deben ir tomando los biestables a medida que van llegando impulsos sucesivos: valores del 0 al 15, expresados en binario. Si nos centramos en el primer biestable A0 vemos que debe ir cambiando de estado (pasa de 0 a 1, de 1 a 0, etc) cada vez que se recibe un impulso. El segundo biestable A1 , sin embargo, cambia slo cada dos impulsos. O, lo que es lo mismo, cada vez que A0 pasa de 1 a 0. Cmo lo conseguimos? Forzndole a que cambie de estado (es decir, que reciba una seal de sincronismo) slo cuando A0 pase de 1 a 0 lo que conseguimos si elegimos biestables activados por el flanco descendente . (En las figuras 10 y 11 del tema anterior analizamos el funcionamiento de un biestable activado por flanco ascendente, que poda cambiar de estado slo cuando la seal de sincronismo pasaba de 0 a 1, y mencionamos cmo, de forma anloga, funcionaban activados por el flanco descendente, cuando la seal de sincronismo pasaba de 1 a 0).
T Q

A3
C
A3 A 2 A 1 A0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0

T
Puesta a ceros

C T C T C

A2
Q

A1
Q

1
Impulsos a contar

A0
Q3 Q2 Q1 Q0

Figura 6.11

Estructura y Tecnologa de Computadores (Parte II)

154

Circuitos Secuenciales Fundamentales

De forma anloga, el tercer biestable A2, slo cambia de estado cada vez que el anterior pasa de 1 a 0, y as sucesivamente. Este tipo de contadores es asncrono puesto que, una vez presente un impulso en el biestable de orden inferior, ste se actualiza inmediatamente pero los siguientes lo van haciendo uno tras otro sucesivamente, emplendose un tiempo total directamente proporcional al nmero de biestables presentes. En ocasiones es necesario que un contador vaya reduciendo el valor almacenado. Por ejemplo, para indicar el tiempo que falta para un determinado acontecimiento.
T C
Q 3 Q2 Q 1 Q0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 Q3 Q2 Q1 Q0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 1 1 1

A3

Q Q

T
Puesta a ceros

C T C T C

A2

Q Q

A1

Q Q

1
Impulsos a contar

A0

Q3 Q2 Q 1 Q0

Figura 6.12 En las tablas que se incluyen en la Figura 6.12 podemos ver cmo la que aparece al lado izquierdo es la que ya habamos empleado en la Figura 6.11, mientras que la tabla a su derecha es la misma pero con todos sus valores negados. Esto significa que el mismo ci rcuito que empleamos para realizar un contador ascendente puede emplearse para el descendente, simplemente tomando las salidas negadas de cada biestable, es decir, las salidas Q . Por tanto, el mismo contador funciona simultneamente como ascendente (tomando sus salidas Q) y como descendente (tomando sus salidas negadas Q ). Si resumimos las ventajas e inconvenientes que pueden tener los contadores asncronos, en la Figura 6.13 vemos que su ventaja fundamental, y posiblemente nica, radica en su sencillez.

Contadores asncronos
Ventaja:
Sencillez

Inconveniente:
Lentitud, relativa
los biestables cambian sucesivamente uno tras otro

Figura 6.13

Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

155

Por el contrario, su mayor inconveniente es la lentitud, ya que los diferentes biestables van cambiando de estado uno tras otro. Sin embargo este inconveniente es relativo. Si tenemos en cuenta que el tiempo que tarda un biestable en cambiar de estado es del orden de nanosegundos (1 ns = 10-9 s), un contador para acontecimientos que puedan presentarse a un ritmo inferior incluso al milisegundo se actualizara a cada impulso mucho antes de que pudiera presentarse el siguiente impulso. Son multitud los casos de contadores en los cuales el hecho de ser asncronos no supone problema alguno (vehculos que pasan por un punto determinado, tiempo que falta para un determinado momento incluso aunque se registre en fracciones de segundo , unidades producidas en una cadena, etc). Ahora bien, si se tratase de contar sucesos que se presenten con frecuencias del orden de gigahercios es posible que el tiempo que se tarde en contar un impulso (el tiempo transcurrido desde que se presenta el impulso hasta que cambia de estado el biestable de orden superior) sea superior al tiempo que tarda en presentarse un nuevo impulso y en ese caso el asincronismo del contador podra ser un grave problema.

Contadores sncronos
Los contadores sncronos, por el contrario, estn diseados de forma que todos los biestables que los constituyen cambian de estado simultneamente. Para ello los impulsos a contar se aplican a la entrada de sincronismo de cada uno de los biestables.

Contadores sncronos
La entrada (impulsos a contar) se aplica simultneamente

a todos los biestables Todos los biestables cambian simultneamente Se disean como cualquier circuito secuencial
Figura 6.14 El diseo de un contador sncrono se hace empleando las mismas tcnicas de cualquier circuito secuencial: Diagrama de Estados, Tabla de Estados, etc. El Diagrama de Estados correspondiente a un contador sncrono capaz de contar desde cero hasta siete es el que se indica en la Figura 6.15. Para pasar de un estado al siguiente no se necesita ninguna entrada especfica sino que el cambio se produce simplemente por la presencia de una seal de sincronismo (cuando el reloj lo permite). Esta seal de sincronismo se aplica a la entrada de reloj de cada biestable.
000 001 010 011

111

110

101

100

Figura 6.15

Estructura y Tecnologa de Computadores (Parte II)

156

Circuitos Secuenciales Fundamentales

En este ejemplo se puede ver cmo una vez lleno el contador (en nuestro caso, en el estado 111) el contador pasa al estado 000. Esta es una decisin bastante frecuente en el diseo de contadores, aunque, naturalmente, cada situacin puede exigir una solucin diferente. Tampoco es raro que una vez agotada la capacidad del contador ste se mantenga indefinidamente en ese estado. En cada caso el diseador deber elegir la solucin que mejor se preste a la situacin particular que se desee resolver. Habitualmente los contadores emplean biestables de tipo T , y as lo hemos hecho en nuestro caso. Visto el Diagrama de Estados de la figura anterior, el desarrollo de la Tabla de Estados es inmediato, as como la obtencin de las ecuaciones lgicas de entrada a los biestables. En la Figura 6.16 se incluyen la Tabla de Estados, los mapas de Karnaugh y las ecuaciones lgicas correspondientes.
Estado anterior Cn-1 Bn-1 An-1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Estado siguiente Cn 0 0 0 1 1 1 1 0 Bn 0 1 1 0 0 1 1 0 An 1 0 1 0 1 0 1 0 Entradas a biestables TC 0 0 0 1 0 0 0 1 TB 0 1 0 1 0 1 0 1 TA 1 1 1 1 1 1 1 1

TA = 1

00 01 11 10 0 1

1 1 1 1
00 01 11 10

TB = An-1

0 1
TC =

1 1
Bn-1 An-1

Figura 6.16 Vistas las ecuaciones anteriores, slo falta representar el circuito, lo cual se hace en esta figura. En la figura se ve cmo los impulsos a contar se aplican simultneamente en la entrada de sincronismo de todos los biestables. Tambin se incluye en la figura una entrada para puesta a cero del contador, poniendo a cero cada uno de sus biestables. En este caso los biestables son activados por la seal de sincronismo, todos a la vez, por lo que es indiferente que la activacin se realice por el flanco ascendente o por el descendente.
T Q

C
C

Puesta a ceros

B
C

1
Impulsos a contar

A
C

B A

Figura 6.17 Por ltimo, cabe indicar que, aunque hemos limitado el contador a slo tres biestables, es decir, un mximo de ocho estados, las ecuaciones lgicas para un nmero mayor de estados se pueden establecer de forma muy simple: Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

157

TA = 1 TB = An-1 TC = An-1 Bn-1 TD = An-1 B n-1C n-1 TE = A n-1 B n-1C n-1 D n-1, Y as sucesivamente.

Contadores BCD
Los contadores que hemos mencionado hasta ahora almacenan la informacin en forma binaria. Si esta informacin debe presentarse al exterior habr, lgicamente, que convertirla a una forma de representacin ms accesible, normalmente, BCD. Otra alternativa es emplear contadores que almacenen directamente la informacin en BCD. En este caso, necesitaremos 4 biestables por cada dgito (del 0 al 9), pero nos encontramos con que con estos cuatro biestables podran representarse hasta 16 estados diferentes (desde el 0000 hasta el 1001 representaran los nueve dgitos BCD y desde el 1010 hasta el 1111 seran estados prohibidos, deberemos hacer que sean imposibles). Para evitar que se pase por esos estados prohibidos hay dos alternativas: Puede disearse el circuito de forma que en el Diagrama de Estados se pase directamente del 1001 a l 0000, y adems se genere una seal que se transmita al grupo siguiente de cuatro biestables que contar las unidades de un orden superior. Cada vez que los cuatro biestables de orden inferior pasan a 0000 se envar un 1 para ser contado a un nivel mayor. Otra alternativa, ms sencilla, consiste en emplear un contador binario de cuatro bits estndar, similar al que hemos diseado en la , pero con un bit ms. Los estados desde el 0000 hasta el 1001 son, por as decirlo, normales. Cuando se recibe el dcimo impulso, el contador pasa realmente al estado 1010 pero, inmediatamente, se acta para que se ponga a 0000 y se enve un impulso al siguiente grupo de biestables que contabilizan el dgito BCD de orden superior.

Si el contador es un contador binario estndar, pasar, realmente, por el estado 1010 Cmo hacemos para que, una vez alcanzado el valor 1010 pase inmediatamente a 0000?.
Al reloj del contador de orden superior

Contador BCD
A3

Puesta a cero

Contador 4 bits

A2 X A1 A0

diez = 1010

Figura 6.18 Es muy sencillo. El valor decimal diez expresado en binario es 1010. Observando la Figura 6.18, si tomamos las salidas A1 y A3 del contador binario de 4 bits y las aplicamos a una puerta AND, mientras Estructura y Tecnologa de Computadores (Parte II)

158

Circuitos Secuenciales Fundamentales

no se llegue a este valor, la salida X de esa puerta AND ser 0 y slo cuando se alcance el valor 1010 la salida ser 1. Aplicando esta salida X a la entrada de puesta a cero del contador, ste se pondr al estado 0000. Si por otra parte esta misma salida X la empleamos como entrada de sincronismo del contador de orden superior, tendremos contabilizado en ste el paso del valor decimal 9 al valor decimal 10. Este esquema se puede repetir tantas veces como dgitos BCD queramos almacenar con nuestro contador. En la figura hemos aadido una puerta OR a la que aplicaremos la salida X y una entrada manual para permitir poner a cero, en cualquier momento, el contador BCD. Normalmente, esta entrada manual se aplicar a todas las entradas de puesta a cero de todos los grupos de cuatro biestables, cada uno de los cuales representar un dgito BCD. Esta solucin no es absolutamente correcta, pues durante un tiempo muy breve el contador almacenar un valor inexacto (el estado 1010), pero, en la mayora de situaciones sto no representa el menor problema.

6.3.- La Memoria Principal


En un ordenador, la informacin, se trate de datos de cualquier tipo o de instrucciones, se almacena en la Memoria Principal. Hay que indicar que este almacenamiento es temporal. Para almacenar es preciso poder introducir la informacin cuando se desee en unidades mucho ms pequeas que el tamao de la Memoria Principal; esta operacin se conoce como escritura o grabacin. Tambin se requiere poder extraer la informacin cuando sea necesario para lo que se emplea la operacin de lectura . En la Figura 6.19 se representan esquemticamente estas operaciones.

MEMORIA
escribir leer

Figura 6.19 Esta unidad de informacin que se extrae o almacena en cada operacin de lectura o escritura de Memoria Principal, se denomina palabra . El tamao de la palabra se suele expresar en bits. Es uno de los parmetros que definen las caractersticas de una memoria. Cuanto mayor sea, y a igualdad de otras caractersticas, ms informacin se acceder en una operacin de memoria y menos tie mpo se tardar en acceder a la memoria para leer o escribir una cierta cantidad de informacin. Pero, la memoria es un cajn demasiado grande. Inmediatamente nos surge un problema: cmo manejar la informacin que hay en ella?. Cuando hay que almacenar algo, dnde lo hago?. Y, cuando hay que recuperar informacin almacenada, cmo saber dnde estaba?. No es pensable ponerse a buscar la informacin en ese cajn a ver si la encontramos. La solucin estriba en dar a cada palabra una direccin. Si, de alguna forma, anotamos esa direccin luego ser sencillo recuperar la informacin almacenada en esa direccin. Todos estos razonamientos se resumen en la Figura 6.20. Cuanto mayor sea el rango de direcciones, mayor ser la capacidad de la memoria. La capacidad total de la memoria vendr dada por el nmero de direcciones (rango) multiplicada por el tamao de la palabra. Esta direccin viene expresada en binario puro, empleando un determinado nmero de bits, (que representaremos por d) dependiente de cada memoria. As, cada palabra tiene su propia direccin (d bits ). Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

159

La memoria es muy grande,


Dnde se almacena la informacin? De dnde se extrae? Cmo saber dnde est cada cosa?

Se requiere una direccin para cada palabra


Figura 6.20 Para acceder a la memoria se accede a una de sus palabras. Los d bits (correspondientes a una entre 2 direcciones posibles) se colocan en un bus, que, como veremos ms adelante, se conoce como bus de direcciones (y que forma parte del denominado bus del sistema) y se dirigen a un Descodificador que d selecciona una lnea entre sus 2 salidas. As se elige (selecciona) una de las palabras. (Figura 6.21).
Direcciones (d bits) 2 d lneas
d

Descodificador

Bus del Sistema

MEMORIA
Palabra (n bits)

LEC ESC SEL

PRINCIPAL
n lneas

Datos (n bits)

Figura 6.21 Si la operacin fuese una lectura , una vez seleccionada la palabra deseada, se emit ira una microorden, a la que llamaremos LEC, y los n bits de esa palabra pasaran al bus de datos al cabo de un tiempo. A travs de ese bus se llevaran a aquellos elementos del computador donde fuesen necesarios. Si la operacin fuese una escritura , se emitira la microorden ESC y los datos presentes en el bus de datos (n bits) pasaran a la palabra seleccionada. Estos datos deberan haber sido colocados previamente en el bus de datos. (Como veremos posteriormente, adems de la microorden LEC o ESC se necesita una microorden adicional, de sele ccin, a la que denominaremos SEL.) Todas estas micrordenes, como cualquier otra, se emiten por la Unidad de Control, en el momento adecuado. En la Figura 6.22 presentamos un ejemplo. Supongamos que tenemos una memoria cuyo tamao de palabra es de 32 bits y su direccionamiento tiene 16 bits, el rango de direcciones ir desde el valor 15 0000000000000000 (0 en decimal) hasta 1111111111111111 (2 - 1 = 65.535). El total de palabras ser, pues, de 65.536 (la direccin 0 es igual que cualquier otra) y la capacidad total de la memoria ser 65.536 32 = bits Estructura y Tecnologa de Computadores (Parte II)

160

Circuitos Secuenciales Fundamentales

o sea, 2.097.152 / 8 bytes lo que equivale a 262.144 bytes o bien 262.144 / 1.024 = 256 K Si se desea acceder, por ejemplo, a la direccin 1.542 se colocar este valor, (en binario 0000001100000110), en el bus de direcciones y, con las micrordenes adecuadas (LEC, ESC y SEL), se podr leer la palabra almacenada en esa direccin o escribir (almacenar) en ella la informacin que se desee.

Descodificador

Ejemplo: d = 16 n = 32
Rango de Direcciones:
0000000000000000 0000000000000001 0000000000000010 1111111111111111 16 bits

16 0000001100000110

0 1 2

MEMORIA PRINCIPAL

32 bits
1542

=0 =1 =2 = 65535

65535

32

Figura 6.22 A continuacin, vamos a analizar con cierto detalle la constitucin fsica de una memoria. Analizaremos una entre las diversas posibilidades existentes. En la Figura 6.23 se representa uno de los posibles esquemas de una celda de memoria. Entendemos por celda de memoria el circuito elemental capaz de almacenar un bit de informacin, mantener esa informacin y recuperarla tantas veces se desee. La celda de memoria debe tener, por tanto, la posibilidad de permitir la Escritura y la Lectura en ella. En la figura vemos cmo, en nuestro caso, la celda est formada por un biestable asncrono RS y una serie de puertas lgicas adicionales. Veamos cmo se
Biestable asncrono Seleccin (SEL)

Entrada

Salida

1 Leer 0 Escribir Lectura/Escritura

pueden realizar las operaciones de Lectura y Escritura. Figura 6.23 ESCRITURA: El dato (1 bit) a introducir est listo en la lnea de entrada; habr sido colocado all por otros circuitos del computador. Su valor slo se aplicar a la entrada S (y su negado en la entrada R) cuando se desee escribir. Para ello algn componente del ordenador (ms concretamente, la Unidad de Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

161

Control que todo lo sabe) lanzar una microorden que colocar un 0 en la lnea de Lectura / Escritura, que una vez negado permite abrir las puertas situadas frente a las entradas S y R). Vemos en el circuito cmo es necesario tambin que, adems, se lance la microorden de seleccin (un 1 en la lnea SEL). Con las puertas abiertas un 1 en la entrada aplica 1 en S y 0 en R, con lo que el biestable toma el valor 1, con independencia de su valor anterior. Igualmente, un 0 en las mismas condiciones aplica un 0 en S y un 1 en R, lo que fija el biestable en el valor 0. Sin embargo, cuando las puertas estn cerradas, sea porque se desea leer (un 1 por la lnea de Lectura / Escritura), o sea porque no se desea acceder a la memoria (ni leer ni escribir, lo que se logra enviando un 0 por la lnea de Seleccin ), los valores aplicados en R y S seran ambos cero y, por tanto, el biestable no modifica el valor almacenado en l: la informacin se mantiene. LECTURA: Evidentemente, el valor almacenado en el biestable est siempre disponible en su pata Q, pero slo pasar hacia la salida cuando la puerta est abierta, lo que requiere que haya un 1 en la lnea de Seleccin y, adems, otro 1 en la de Lectura / Escritura . Obsrvese cmo, en realidad, basta dar la microorden de SELECCIN y la de LECTURA para leer y slo la de SELECCIN para escribir, ya que al emplearse una nica lnea para Lectura y Escritura ESC = LEC . Sin embargo, por razones pedaggicas y para mayor claridad, continuaremos empleando SEL, LEC y ESC. Conviene tener muy presente que sin emitir la microorden de Seleccin no se puede acceder a la memoria. A partir de ahora nos olvidaremos de la constitucin fs ica de la celda de memoria y nos limitaremos a representarla esquemticamente tal y como aparece en la figura de la derecha.
Seleccin (SEL)

Entrada datos

Celda de Memoria (CM)

Salida datos

Lectura / Escritura

Figura 6.24 Pero un solo bit de memoria es demasiado poco. Veamos, de una forma gradual, cmo construir una memoria ms prxima a la realidad; comenzaremos por la organizacin de una memoria con 4 palabras, o sea, 4 direcciones (2 bits de direcciones) y 4 bits por palabra. Empleamos un Descodificador con Activador de 2 entradas (para los dos bits de direcciones) y cuatro salidas (una para cada direccin de palabra). El esquema se representa en la Figura 6.25. La ausencia de la microorden SEL (SEL=0) mantiene desactivado el d escodificador y, aunque en la entrada de direcciones (2 bits) del descodificador siempre habr algn valor, todas sus salidas estarn a cero. As, las lneas de Seleccin de todas las celdas estn a cero y, por tanto, no se puede leer ni escribir. Una microorden de SELECCIN (SEL=1) activar el descodificador, pondr a 1 la lnea de Sele ccin de todas las celdas correspondientes a la palabra cuya direccin est presente en el descodificador y permitir la lectura o escritura en dicha palabra segn el valor colocado en la lnea de Lectura / Escritura (1= leer; 0= escribir). Si, por ejemplo, por el bus de direcciones llega el valor binario 10 , se pondr un 1 en la salida 2 del descodificador (y un 0 en las otras tres salidas) y, por tanto, slo las Estructura y Tecnologa de Computadores (Parte II)

162

Circuitos Secuenciales Fundamentales

cuatro celdas de memoria que forman esa palabra quedarn en condiciones de poder ser ledas o de poder escribir en ellas.
d = 2 bits (4 direcciones) n = 4 bits

Una memoria 4 x 4
Entrada de Datos

0
CM Direcciones CM CM CM

1 Descod. 2x4 2

CM

CM

CM

CM

Seleccin (SEL)

CM

CM

CM

CM

3
CM CM CM CM

Lectura / Escritura

Datos de Salida

Figura 6.25 Sin embargo esta memoria es demasiado pequea, slo 16 bits. Cmo ampliarla? En principio, hay dos alternativas: Emplear palabras ms grandes Colocar ms palabras en la memoria

O hacer ambas cosas a la vez, lo que es lo ms habitual. Sin embargo, aumentar mucho el tamao de palabra implica un bus de datos ms grande y registros de mayor capacidad lo que encarece el procesador en su conjunto. En la prctica no es normal tener tamaos de palabra superiores a 64 bits, o quiz 128. Aumentar el nmero de bits de direccionamiento conlleva el aumento de tamao del bus y de los registros correspondientes lo que no es demasiado grave pues con solo 64 bits (lo que empieza a ser normal 64 en procesadores actuales) se pueden direccionar 2 palabras, ms de 16 billones de direcciones. Pero, tambin se requerira un descodificador muy grande y eso s puede resultar caro. Por ejemplo, si tuvisemos simplemente una memoria con: un tamao de palabra de 8 bits y un bus de direcciones de 10 bits
10

tendramos una capacidad de 1024 palabras (2 ) de 8 bits. Es decir, 1024 8 = 8192 bits, o bien 8 Kbytes y necesitaramos un descodificador de 10 entradas y 1024 salidas. Este descodificador necesitara 1024 puertas lgicas, y estamos hablando de una memoria muy pequea, nada ms que 8K. Para reducir el tamao y el precio del descodificador se emplea la descodificacin coincidente. Con esta tcnica se dividen las lneas del bus de direcciones en dos grupos, en nuestro ejemplo dos grupos de 5 bits, y cada grupo se dirige a un descodificador con 5 entradas y 32 salidas (32 puertas cada uno, 64 en total). La lnea de SELECCIN (SEL) se dirige al activador de ambos descodific adores (Figura 6.26).

Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

163

Una direccin, por ejemplo 1001001100, enva 5 bits a cada descodificador. En uno de ellos se descodifica el valor 10010 (18 en decimal) y se pone a 1 la lnea 18. En el otro se descodifica el valor 01100 (12 en decimal) y se pone a 1 la lnea 12. Las 32 lneas de salida de cada descodificador se cruzan entre s, y en cada punto de cruce se colocan las celdas de memoria que forman una pal abra (8 en nuestro ejemplo) unidas a travs de una puerta AND, cuya salida se convierte en la lnea de sele ccin de esa palabra. Como slo en el cruce de una pareja concreta de lneas (en nuestro caso la 18 con la 12) ambas tienen el valor 1 , slo una de las palabras tiene a 1 su lnea de seleccin y slo se puede acceder a una palabra. Naturalmente, si la lnea SEL no est activada, es decir, no se ha emitido esta microorden, ambos descodificadores estn inactivos, sus salidas se mantienen todas al valor 0 y todas las palabras tienen a 0 su lnea de seleccin por lo que no pueden ser accedidas ni para leer ni para escribir.
1001001100 10010 01100

10 lneas

SEL

210 = 1024 palabras de 8 bits = 1024 bytes = 1 Kbytes Descodificador 5 x 32 A 0 1 2 18 31 Descodificador 5 x 32


0 1 2
ra lab Pa

12

Celda de Memoria

31

Figura 6.26 Obsrvese, pues, la importancia de la microorden de seleccin SEL. Es imprescindible para cualquier operacin de acceso a memoria. Los dos descodificadores anteriores, y las 1.024 palabras (1.024 8 = 8.192 celdas de memoria, o 1.024 bytes) se pueden incluir en un nico chip, que se representa esquemticamente en la Figura 6.27 (ste sera el estado del arte hace unos 20 aos. Actualmente podemos hablar de chips de memoria con una capacidad de 128 Mbits, es decir, 16 MB, pero los esquemas indicados son igualmente vlidos). Para disponer de mayores capacidades es preciso emplear varios chips.

Entrada datos Direcciones Seleccin (SEL) Lectura / Escritura

8 10

Salida datos

1024 direcciones 8 bits / palabra 1024 bytes = 1K

Figura 6.27

Estructura y Tecnologa de Computadores (Parte II)

164

Circuitos Secuenciales Fundamentales

Con cuatro chips, podramos tener 4K pero necesitaramos otros 2 bits ms para direcciones. Si estos dos bits se dirigen a un descodificador adicional, ste ser el encargado de seleccionar cul de los 4 chips debe accederse realmente. En la Figura 6.28 se representa el esquema correspondiente a una memoria de 4 KB empleando para su construccin 4 chips de 1KB.
Direccin (12 bits)
SEL 12 11 1-10 10
3

Una memoria de 4 K Entrada


8

Descodificador A 2x4
0 1 2

1K
Lectura / Escritura

1K

1K
8 Salida

1K

Figura 6.28

Operaciones en la Memoria (lectura y escritura)


Seguidamente, vamos a analizar cmo deben ocurrir las operaciones de lectura y escritura en memoria y su relacin con el tiempo. Comenzamos por la operacin de escritura (Figura 6.29). Antes de comenzar esta operacin, tanto los datos como su direccin deben haberse colocado en los buses respectivos (ser la Unidad de Control quien lo haga).

Escritura
SEL ESC

Reloj del sistema

Direcciones en el bus Datos en el bus

Datos en memoria (algo antes)

Figura 6.29 Al dar las micrordenes SEL y ESC, comienza la operacin de escritura que se prolonga durante varios ciclos de reloj. Las micrordenes (de nivel) deben mantenerse activas hasta que los datos hayan podido ser grabados en la memoria. De hecho estarn ya algo antes de que se d el ltimo pulso del reloj, pero, para una mayor sencillez, todo se sincroniza con l. Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

165

Los datos y direcciones deben mantenerse en sus buses durante toda la operacin de escritura. De lo contrario, la operacin de escritura no puede completarse satisfactoriamente Analicemos, a continuacin, cmo deben sucederse las operaciones en el supuesto de una lectura de la memoria (Figura 6.30). En este caso, la direccin del dato debe estar en el bus antes de darse las micrordenes SEL y LEC. Al darse las micrordenes comienza la lectura, que lleva varios ciclos. Una vez que los datos estn en el bus y hayan sido recogidos en algn registro, pueden desactivarse ambas micrordenes. La direccin debe mantenerse en el bus durante toda la operacin de lectura. Los datos deben almacenarse en algn registro antes de desactivar las micrordenes. De lo contrario despareceran tan pronto se cortasen las micrordenes SEL y LEC.

Lectura
SEL LEC

Reloj del sistema

Direcciones en el bus

Datos en el bus (algo antes)

Figura 6.30 Los grficos de las dos ltimas figuras se denominan cronogramas y representan cundo deben emitirse las micrordenes para realizar determinadas operaciones.

Caractersticas de las Memorias.- Tipos de Memoria


Para terminar con los aspectos fundamentales de la memoria, en la Figura 6.31 definiremos algunas de las caractersticas principales de la misma. En primer lugar, una memoria se denomina Voltil cuando la informacin almacenada en ella se pierde en el momento en que se corta la alimentacin de energa. Es el caso de la Memoria Principal de cualquier ordenador disponible en la actualidad. Por el contrario, se considera No-voltil aquella memoria cuyo contenido se conserva en ausencia de alimentacin. Una Memoria Dinmica almacena la informacin por medio de condensadores (cargado almacena un 1 y descargado un 0). Pero, un condensador tiende a descargarse y, por tanto, se necesita refrescar su contenido peridicamente. Para ello se debe leer totalmente y volverse a grabar. Por el contrario, una Memoria Esttica almacena la informacin por medio de biestables y sta se mantiene mientras se mantenga la alimentacin de energa. La Memoria Dinmica es ms densa y econmica si su tamao es grande, a pesar de la circuitera extra para su refresco; sin embargo es ms lenta que una Memoria Esttica. Pese a ello, son las memorias habitualmente utilizadas. Llamaremos Memoria Convencional a aquella a la que se accede por medio de la direccin de cada una de sus palabras. Es el tipo de memoria ms habitual y el que hemos considerado hasta ahora. Una Memoria Asociativa, sin embargo, es accedida por medio del contenido de alguna de sus palabras; no tiene direcciones. Suelen ser memorias muy rpidas y caras, por lo que su tamao es relativamente pequeo y su empleo se reduce a aplicaciones muy especficas que veremos posteriormente en algn caso.

Estructura y Tecnologa de Computadores (Parte II)

166

Circuitos Secuenciales Fundamentales

Voltil No - voltil Dinmica Esttica Convencional Asociativa

Se mantiene o no la informacin al cortarse la alimentacin de energa Precisa o no refresco peridico de su contenido Se accede a ellas por una direccin o bien por un contenido

Lectura / Escritura Slo lectura Principalmente lectura

Figura 6.31 Por ltimo, como su nombre indica, se denomina Memoria de Lectura / Escritura a aquella en la que pueden realizarse normalmente tanto operaciones de Lectura como de Escritura. Una Memoria de Slo Lectura, evidentemente, permite nicamente operaciones de Lectura, mientras que una Memoria Principalmente de Lectura , aunque permite ambos tipos de operaciones, se emplea generalmente como de Lectura y slo ocasionalmente se realizan en ella operaciones de Escritura. Por otra parte, llamaremos Memoria RAM (Random Access Memory) a aquella que cumple las condiciones indicadas en la Figura 6.32, bien entendido que la traduccin precisa del trmino RAM es Memoria de Acceso Aleatorio lo que sera tambin aplicable a una Memoria ROM. Sin embargo, en la prctica se ha aceptado esta terminologa a pesar de su falta de concrecin. Por el contrario, llamaremos Memoria ROM (Read Only Memory) en general a aquellas cuyo contenido se introduce durante el proceso de fabric acin del chip.
Memorias RAM
Lectura / Escritura Voltiles / No-voltiles (NVRAM) Estticas o dinmicas (SRAM, DRAM)

Memorias ROM
Slo lectura (ROM, PROM) Principalmente lectura (EPROM, EEPROM, FLASH) No - voltiles Estticas

Figura 6.32 Memorias PROM (Programmable ROM) son aquellas cuyo contenido se introduce elctricamente con posterioridad a la fabricacin del chip. Es ms barata que una memoria ROM si se produce en cantidades relativamente pequeas. Las memorias de estos dos tipos son de Slo lectura. En las Memorias EPROM (Erasable PROM), antes del proceso de grabacin, similar al de una PROM, puede borrarse la totalidad de su contenido por exposicin a una luz ultravioleta por medio de un proceso que puede durar unos 20 minutos. En las Memorias EEPROM (Electrically EPROM) el proceso de grabacin es elctrico y no requiere borrar la totalidad de la memoria sino slo el byte o bytes deseados. Es un proceso mucho ms rpido que el de las memorias EPROM, aunque tambin se trata de una memoria mucho ms cara. Estructura y Tecnologa de Computadores (Parte II)

Circuitos Secuenciales Fundamentales

167

Por ltimo, las Memorias FLASH, son una modificacin de las EEPROM en las cuales el proceso de grabacin es an ms rpido, y tambin ms caras. Actualmente su precio se ha reducido considerablemente y se emplean por ejemplo en tarje tas de almacenamiento para cmaras fotogrficas digitales y en las llamadas memorias USB. Aunque todos estos tipos de memoria, a partir de la ROM, tienen, como hemos visto, caractersticas diferentes, es frecuente que a todas ellas se las denomine genricamente como Memorias ROM. Todas ellas son memorias no-voltiles y estticas pues deben conservar la informacin de modo permanente, incluso en ausencia de alimentacin. En un ordenador, estas memorias se emplean principalmente para almacenar en ellas el microcdigo que controla el funcionamiento del ordenador en su conjunto y del que hablaremos ms adelante.

Estructura y Tecnologa de Computadores (Parte II)

Anda mungkin juga menyukai