1 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS DEPARTAMENTO DE PUBLICACIONES GUIA DE TRABAJO DE ELECTRONICA BASICA PARA INGENIEROS DE SISTEMAS TERCERA SESION Elaborada por ING. HAMMES R GARAVITO S BOGOTA D.C _____________________________________________________________________ 1 2 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS DATOS DEL ESTUDIANTE NOMBRE DEL ESTUDIANTE : ________________________ _________________________ CARRERA : ________________________ JORNADA : MARTES Y MIERCOLES( JUEVES Y VIERNES ( SABADOS ( DOMINGOS ( NOMBRE DEL PROFESOR : ________________________ FECHA : DEL __________ AL _______ CALIFICACION : ________________________ ) ) ) ) _____________________ FIRMA DEL PROFESOR _____________________________________________________________________ 2 3 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS PREGUNTA CENTRAL DEL MODULO DOS ¿Qué elementos constituyen la esencia de la electrónica Digital? CIRCUITOS LÓGICOS COMBINACIONALES. LOGICA COMBINACIONAL El álgebra booleana es un sistema matemático deductivo centrado en los valores cero y uno falso y verdadero. Un operador binario " o + " definido en éste juego de valores acepta un par de entradas y produce un solo valor booleano, por ejemplo, el operador booleano AND acepta dos entradas booleanas y produce una sola salida booleana. Los circuitos lógicos forman la base de los sistemas de cómputo digital de manera que para apreciar su funcionamiento es necesario entender algunos conceptos en álgebra booleana y lógica digital, es posible representar cualquier algoritmo ó circuito electrónico de cómputo utilizando un sistema de ecuaciones booleanas. Álgebra booleana y circuitos electrónicos. Circuitos combinacionales. Circuitos secuenciales. Se denomina sistema combinacional o lógica combinacional a todo sistema digital en el que sus salidas son función exclusiva del valor de sus entradas en un momento dado, sin que intervengan en ningún caso estados anteriores de las entradas o de las salidas. Las funciones (OR,AND,NAND,XOR) son booleanas (de Boole) donde cada función se puede representar en una tabla de la verdad. Por tanto, carecen de memoria y de retroalimentación. Un circuito combinacional consiste básicamente en: - variables de salida, - compurtas lógicas y - variables de salida entrada circuito lógico combinacio salida IMPLEMENTACIÓN DE CIRCUITOS A PARTIR DE LA EXPRESIÓN BOOLEANA. Y SIMPLIFICACIÓN DE FUNCIONES BOOLEANAS Las funciones booleanas se tienen que simplificar al máximo, para diseñar los circuitos con el menor número de componentes electrónicos. Esta simplificación la podemos realizar de dos maneras diferentes: 1. Utilizando las propiedades y Teoremas del Algebra de Boole. Se denomina método analítico de simplificación de funciones. Hay que manejar muy bien estas propiedades para poder eliminar la mayor cantidad de términos y variables. 2. Utilizando el método de Karnaugh. Es un método gráfico que si lo aplicamos bien, nos garantiza que obtendremos la función más simplificada posible, a partir de una tabla de verdad. _____________________________________________________________________ 3 4 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Ya en el modulo anterior vimos que es posible utilizar algunas compuertas en función de otras, asi quedo claro con las propiedades o leyes de Morgan, donde es posible escribir una función boolena en términos de otra propiedad, por ello para los circuitos lógicos combinacionales, se requiere conocer los principales postulados del algebra boolena, al igual que una serie de términos de uso de la lógica Boolena Literal: se refiere a una variable o a su complemento (por ej. A, X, ) termino producto: es un grupo de literales que se encuentran relacionados entre si por un AND (por ej. A·B, C·A, ·Y·Z ) termino suma:es un grupo de literales que se encuentran relacionados entre si por un OR (por ej. A+B, C+A, +Y+Z ) termino normal: termino producto o termino suma en el que un literal no aparece mas de una vez termino canónico: termino en el que se encuentra exactamente uno de cada uno de los literales de la función.Si el termino canónico es un producto, se denominará mintermino. Si es una suma se denominará maxtermino, forma normal de una función: es la que está constituida por términos normales. Puede estar en la forma suma de términos productos o productos de términos sumas. forma canónica de una función: es aquella constituida exclusivamente por términos canónicos que aparecen una sola vez. POSTULADOS DEL ALGEBRA BOOLEANA Teoremas: 1. Regla del cero y la unidad a) X + 0 = X b) X + 1 = 1 c) X · 1 = X d) X · 0 = 0 2. Idempotencia o potencias iguales a) X + X = X b) X · X = X 3. Complementación a) X + =1 b) X · =0 4. Involución 5. Conmutatividad a) conmutatividad del + b) conmutatividad del · _____________________________________________________________________ 4 5 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS X+Y=Y+X X· Y=Y ·X 6. Asociatividad a) asociatividad del + X + (Y + Z) = (X + Y) + Z b) asociatividad del · X · (Y · Z) = (X · Y) · Z 7. Distribuitividad a) distribuitividad del + X + (Y · Z) = (X + Y) · (X + Z) b) distribuitividad del · X · (Y + Z) = (X · Y) + (X · Z) 8. Leyes de absorción a) X · (X + Y)= X e) X + X·Y = X b) X · ( c) + Y)= X·Y · (X + Y)= d) (X + Y) · (X + ·Y )= X f) X + g) ·Y = X + Y + X·Y = +Y h) X·Y + X· = X 9. Teoremas de DeMorgan a) c) b) d) 10. Teoremas generalizados de DeMorgan a) b) Dualidad Los postulados y teoremas presentados anteriormente están representados en pares. La razón es que cada teorema posee lo que llamamos un dual. El dual de una expresión se obtiene intercambiando las ocurrencias de OR por AND, 0 por 1 y viceversa.. Si un teorema es valido, también lo será su dual, En efecto siguiendo el dual de la demostración del teorema, se obtiene la demostración del dual del teorema. Por ejemplo dado el postulado 0+0 = 0 se obtiene el dual haciendo 1·1 = 1 Representación de funciones booleanas Existen infinitas maneras de representar una función booleana. Así por ejemplo la función G = X + Y Z puede también representarse como G = X + X + YZ. Otras veces se suele utilizar la forma negada o el complemento de la función. Para esto es se niegan los literales y se intercambian los AND y OR . _ Por ejemplo, el complemento de:A + B C _ _ es:A ( B + C ) _____________________________________________________________________ 5 6 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS El complemento de una función no es la misma función, es la forma negada de la función. En el álgebra de Boole es fundamental la existencia de una forma algebraica que proporcione explícitamente el valor de una función para todas las combinaciones de los valores de las variables. Es esta la forma canónica de la función. Veamos antes algunos conceptos. Ejemplo: Simplificar la siguiente función: Vamos a intentar aplicar la propiedad distributiva, lo que normalmente llamamos sacar factor común. Operando con los términos 1 y 3: Operando con los términos 2 y 4: La función que nos queda es: Forma canónica de funciones booleanas La importancia de la forma canónica estriba en el hecho de ser UNICA. Como vimos anteriormente una función puede tener infinidad de representaciones, pero solo una representación en forma canónica. Existen dos formas canónicas de una función: Suma De Productos o Producto de Sumas. (También de una manera mas formal Suma de minterminos o Producto de maxterminos) Para obtener algebraicamente la forma canónica de una función podemos utilizar los teoremas de expansión canónica: Teorema 1: Para obtener la forma canónica de una función suma de productos se multiplicará por un termino de la forma (X + ) donde falte un literal para que el termino sea canónico. Teorema 2: Para obtener la forma canónica de una función producto de sumas se sumará un termino de la forma X · sea canónico. donde falte un literal para que el termino Forma canónica suma de productos: _____________________________________________________________________ 6 7 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Es aquella constituida exclusivamente por términos canónicos productos (minterminos) sumados que aparecen una sola vez. __ __ _ _ Por ejemplo: F(X,Y,Z) = X Y Z + X Y Z + X Y Z + X Y Z + X Y Z Para simplificar la escritura en forma de suma canónica de productos, se utiliza una notación especial. A cada mintermino se le asocia un numero binario de n bits resultante de considerar como 0 las variables complementadas y como 1 las variables no complementadas. Así por ejemplo el mintermino Z corresponde a combinación X=0, Y=0, Z=1 que representa el numero binario 001, cuyo valor decimal es 1. A este mintermino lo identificaremos entonces como m 1. __ __ _ _ De esta forma, la función : F(X,Y,Z)= X Y Z + X Y Z + X Y Z + X Y Z + X Y Z se puede expresar como: F(X,YZ) = de los minterminos 1,4,5,6,7 m(1, 4,5,6,7) que quiere decir la sumatoria Forma canónica producto de sumas: Es aquella constituida exclusivamente por términos canónicos sumas (maxterminos) multiplicados que aparecen una sola vez. _ _ _ Por ejemplo F(X,Y,Z) = ( X + Y + Z ) ( X + Y + Z ) ( X + Y + Z ) Análogamente al caso anterior, podemos simplificar la expresión de la función, indicando los maxterminos. Sin embargo, en este caso se hace al contrario de antes. A cada maxtermino se le asocia un numero binario de n bits resultante de considerar como 1 las variables complementadas y como 0 las variables no complementadas. Así por ejemplo el maxtermino ' + Y + Z corresponde a combinación X=1, Y=0, Z=0 que representa el numero binario 100, cuyo valor decimal es 4. A este maxtermino lo identificaremos entonces como M4. En resumen, cada mintermino se asocia con la combinación de entrada para la que la función produciría un 1, y cada maxtérmino con la combinación para la que produciría un 0. En la tabla se muestran los minterminos y los maxterminos asociados con cada combinación en una tabla de verdad de 3 variables. De acuerdo con esta tabla para determinar el termino producto o suma se hace lo siguiente: para los minterminos cada variable no complementada se asocia con un 1 y cada variable complementada se asocia con 0. Para los maxtérminos la regla es la inversa. _____________________________________________________________________ 7 8 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Valor X Y Z Mintermino decimal 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 X Y Z = m0 Maxtermino X + Y + Z = M0 X Y Z = m1 X + Y + Z = M1 X Y Z = m2 X + Y + Z = M2 X Y Z = m3 X + Y + Z = M3 X Y Z = m4 X + Y + Z = M4 X Y Z = m5 X + Y + Z = M5 X Y Z = m6 X + Y + Z = M6 X Y Z = m7 X + Y + Z = M7 Ejemplo 1. Exprese la siguiente función como una suma de minterminos: _ F = X +YZ Hay dos formas de resolver este problema. Forma 1. Se puede obtener la tabla de verdad de la expresión y entonces tomar los minterminos. Se evalúa la función para todas las combinaciones y se toman los minterminos de la tabla para los cuales la función vale 1. __ __ _ _ La respuesta es :F= X Y Z + X Y Z + X Y Z + X Y Z + X Y Z Otra notación que podemos utilizar es: F = m(1, 4,5,6,7) que quiere decir la sumatoria de los minterminos 1,4,5,6,7 X Y Z F=X+YZ 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 minterminos XYZ _____________________________________________________________________ 8 9 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 XYZ XYZ XYZ XYZ Ejemplo 2. Exprese la siguiente función como un producto de maxterminos: _ F = X +YZ De nuevo, se puede resolver construyendo una tabla de verdad o con manipulación algebraica. Forma 1. Se obtiene la tabla de verdad de la función. Tomando los maxterminos desde la tabla de verdad, la respuesta es: maxtermino de la tabla para los cuales la función vale 0. La respuesta es: F = ( X + Y + Z ) ( X + Y + Z ) ( X + Y + Z ) Otra notación que podemos utilizar es: F= M(0,2,3) que quiere decir el producto de los maxterminos 0,2,3 X Y Z F= X +Y Z 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 maxterminos (X+Y+Z) (X+Y+Z) (X+Y+Z) Forma normal de funciones booleanas Otra manera importante de expresar expresiones booleanas es la forma normal. Tiene la misma estructura básica suma de productos o producto de sumas, pero no se requiere que los términos sean minterminos o maxterminos. Ejemplo: La siguiente es una forma normal suma de productos: __ XY+ X YZ _____________________________________________________________________ 9 10 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS La siguiente es una forma normal producto de sumas: _ (Y+X)(X+Z)(Y) A lo largo de este curso la forma que se utilizará con preferencia será la de suma de productos. MAPAS DE KARNAUGH PARA DOS, TRES Y CUATRO VARIABLES. Es un método para encontrar la forma más sencilla de representar una función lógica.Encontrar la función que relaciona todas las variables disponibles, de tal modo que el resultado sea el que se está buscando. Para esto vamos a aclarar tres conceptos que son fundamentales a)- Minitérmino Es cada una de las combinaciones posibles entre todas las variables disponibles, por ejemplo con 2 variables obtienes 4 minitérminos; con 3 obtienes 8; con 4, 16 etc., como te darás cuenta se puede encontrar la cantidad de minitérminos haciendo 2n donde n es el número de variables disponibles. b)- Numeración de un minitérmino Cada minitérmino es numerado en decimal de acuerdo a la combinación de las variables y su equivalente en binario así... El Mapa de Karnaugh representa la misma tabla de verdad a través de una matriz, en la cual en la primer fila y la primer columna se indican las posibles combinaciones de las variables. Aquí tienes tres mapas para 2, 3 y 4 variables... Analicemos el mapa para cuatro variables, las dos primeras columnas (columnas adyacentes) difieren sólo en la variable d, y c permanece sin cambio, en la segunda y tercer columna (columnas adyacentes) cambia c, y d permanece sin cambio, ocurre lo mismo en las filas. En general se dice que Dos columnas o filas adyacentes sólo pueden diferir en el estado de una de sus variables Observa también que según lo dicho anteriormente la primer columna con la última serían adyacentes, al igual que la primer fila y la última, ya que sólo difieren en una de sus variables c)- Valor lógico de un minitérmino (esos que estaban escritos en rojo), bien, estos deben tener un valor lógico, y es el que resulta de la operación que se realiza entre las variables. lógicamente 0 ó 1 Lo que haremos ahora será colocar el valor de cada minitérmino según la tabla de verdad que estamos buscando. trabajemos con esta... _____________________________________________________________________ 10 11 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS El siguiente paso, es agrupar los unos adyacentes (horizontal o verticalmente) en grupos de potencias de 2, es decir, en grupos de 2, de 4, de 8 etc... y nos quedaría así... La primer columna y la última son adyacentes, por lo tanto sus minitérminos también lo son. De ahora en más a cada grupo de unos se le asigna la unión (producto lógico) de las variables que se mantienen constante (ya sea uno o cero) ignorando aquellas que cambian, tal como se puede ver en esta imagen... Para terminar, simplemente se realiza la suma lógica entre los términos obtenidos dando como resultado la función que estamos buscando, es decir... f = (~a . ~b) + (a . ~c) Puedes plantear tu problema como una función de variables, en nuestro ejemplo quedaría de esta forma... f(a, b, c) = S(0, 1, 4, 6) F es la función buscada (a, b, c) son las variables utilizadas (0, 1, 4, 6) son los minitérminos que dan como resultado 1 o un nivel alto. S La sumatoria de las funciones que producen el estado alto en dichos minitérminos. Sólo resta convertir esa función en su circuito eléctrico correspondiente. Veamos, si la función es... _____________________________________________________________________ 11 12 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS f = (~a . ~b) + (a . ~c) o sea... (NOT a AND NOT b) OR (a AND NOT c) El esquema eléctrico que le corresponde es el que viene a continuación... El resultado es un circuito con la menor cantidad de compuertas posibles, lo cual lo hace más económico, por otro lado cumple totalmente con la tabla de verdad planteada al inicio del problema, y a demás recuerda que al tener menor cantidad de compuertas la transmisión de datos se hace más rápida. En la red se encontra un pequeño programa que hace todo este trabajo por tu cuenta, El programa se llama Karma Creado por Pablo Fernández Fraga, El Método de Karnaugh también se puede trabajar para obtener la función más simplificada a partir de una tabla de verdad. Vamos a ir poco a poco, viendo los fundamentos de este método. Supongamos que tenemos una función F(A,B,C) de tres variables, cuya tabla de verdad es: Si la desarrollamos por la primera forma canónica obtenemos: Veremos como aplicando el método de Karnaugh podemos simplificar esta función.Vamos a organizar esta misma tabla de la siguiente manera: Observamos lo siguiente, En total hay 8 casillas, cada una correspondiente a una fila de la tabla de verdad En cada casilla está colocado el valor de la función F, correspondiente a esa entrada. En la tabla de verdad hay dos filas en las que F=0 y 6 filas en las que F=1. En el nuevo diagrama hay dos casillas con ’0’ y 6 con ’1’. _____________________________________________________________________ 12 13 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Hay dos filas, en al primera fila están todos los valores de F correspondientes a A=0, y en la segunda correspondientes a A=1. Hay 4 columnas, y el número que está en la parte superior de cada una de ellas nos indica los valores de las variables B y C en esa columna. Dada una casilla cualquiera, mirando el número situado en la misma fila, a la izquierda del todo nos informa del valor de la variable A y los dos valores superiores, en la misma columna, nos dan los valores de B y C. Así por ejemplo, si tomamos como referencia la casilla que está en la esquina inferior derecha, se corresponde con el valor que toma F cuando A=1, B=1 y C=0. Entre dos casillas adyacentes cualesquiera, sólo varía una variable de entrada, quedando las otras dos con los mismos valores. Por ejemplo, si estamos en la casilla inferior derecha, en la que A=1, B=1 y C=0. Si vamos a la casilla que está a su izquierda obtenemos un valor de las variables de: A=1, B=1, C=1. Si lo comparamos los valores de las variables correspondientes a la casilla anterior, vemos que sólo ha cambiado una de las tres variables, la C. Lo mismo ocurre si nos desplazamos a cualquier otra casilla adyacente. Ahora vamos a ver una propiedad de esta tabla. Si obtenemos la primera forma canónica, obtenemos una función con 6 términos. Vamos a fijarnos sólo en los términos que obtenemos si desarrollamos sólo dos casillas adyacentes, como por ejemplos las marcadas en gris en la figura: Los valores de las variables en estas casillas son: A=1, B=1, C=1 y A=1, B=1, C=0. Si obtenemos los términos de la primera forma canónica y los sumamos: ¡¡Se nos han simplificado!! Ya que C C` =1, Es decir, por el hecho de agrupar los términos obtenidos de estas dos casillas y sumarlos, se han simplificado. Y esto es debido a la propiedad antes comentada de que entre dos casillas adyacentes sólo varía una de las variables, de manera que podemos sacar factor común. Estos dos términos son los sumandos 5 y 6 de la primera forma canónica obtenida anteriormente, que al sumarlos y aplicar aglunas propiedades se han simplificado. _____________________________________________________________________ 13 14 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Si nos fijamos en estas dos casillas adyacentes, la variable C, que es la única que varía de una a otra, ha desaparecido en la suma. De esta manera podemos afirmar lo siguiente: De esta manera, vamos a ver qué pasa si tomamos los siguientes grupos: Por tanto, la función F también la podemos expresar como suma de estos grupos: ¡¡Y está más simplificada que la forma canónica!! Pero. Se puede simplificar más Inicialmente la función F tenía 6 sumandos, puesto que tenía 6 unos. Al hacer 3 grupos, ahora tiene 3 sumandos. Podemos reducir el número de grupos si, tomamos los siguientes grupos: _____________________________________________________________________ 14 15 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Ahora sólo hay 2 grupos. El nuevo grupo 2 está constituido por 4 casillas en las que F=1. La expresión de este grupo se obtiene sumando las expresiones de estas 4 casillas. Las nuevas expresiones de los grupos quedarían: La nueva función F que obtenemos es: podemos simplificarla más. podemos tomar 2 grupos de 4 casillas adyacentes Tomemos los grupos siguientes: Las nuevas expresiones de los grupos son: Por tanto, la nueva función F simplificada es: IMPORTANCIA DE LA SEÑAL DE RELOJ EN CIRCUITOS SECUENCIALES. Dentro de los procesos de comunicación computacional y de la lógica binaria se hace necesario, están comparando, operando o analizando pulsos de entrada uno a la vez, para ello, todos los circuitos, tienen un reloj interno de rastreo, del cual se destaca el 555 como el mas estable y sincrónico El encapsulado del 555 es un integrado muy útil, pudiendo ser configurado en varias modalidades. Una de estas modalidades es la del multivibrador astable, para lo cual el circuito oscila a una frecuencia y ciclo de trabajo configurables mediante resistencias y condensadores externos o con un osilador de cuarzo de frecuencia determinada. La versatilidad de este integrado de tecnología bipolar, es que las frecuencias y ciclos de trabajo resultantes, no dependen de la fuente de alimentación. _____________________________________________________________________ 15 16 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS La circuitería interna del 555 según National Semiconductors, es la siguiente: El 555 puede operar a partir de 4.5V hasta 18V y puede manejar corrientes de salida de hasta 200 mA. El diagrama de conexión es el siguiente: Modo Astable del 555 La frecuencia, depende los valores de RA, RB y CT Para que se cumpla esta expresión, el valor de RB debe ser menor de RA/2, sino el circuito no puede oscilar, porque el voltaje en el pin 2 (TRIGGER) del 555 nunca alcanzaría el nivel de disparo (1/3 de Vcc). En este circuito, el ciclo de trabajo depende de los valores de RA y RB En este circuito, no es posible alcanzar una onda simétrica pura. Lo que se puede hacer para alcanzar una onda cuyo ciclo de trabajo sea lo más cercano al 50%, RA debe ser una resistencia mucho mayor al de RB. FLIP-FLOP Todos los circuitos digitales utilizan datos binarios para funcionar correctamente, los circuitos están diseñados para contar, sumar, separar, etc. los datos según nuestras necesidades, pero por el tipo de funcionamiento de las compuertas digitales, los datos presentes en las salidas de las mismas, cambian de acuerdo con sus entradas, y no hay manera debitarlo, si las entradas cambian, las salidas _____________________________________________________________________ 16 17 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS lo harán también, entonces ¿Cómo podemos hacer para mantener un dato o serie de datos en un lugar hasta que los necesitemos? La respuesta son las memorias, básicamente son sistemas que pueden almacenar uno o más datos evitando que se pierdan, hasta que nosotros lo consideremos necesario, es decir, pueden variar su contenido a nuestra voluntad. El corazón de una memoria son los Flip Flops, este circuito es una combinación de compuertas lógicas, A diferencia de las características de las compuertas solas, si se unen de cierta manera, estas pueden almacenar datos que podemos manipular con reglas preestablecidas por el circuito mismo. Esta es la representación general par un Flip Flop (comúnmente llamado "FF") Los FF pueden tener varias entradas, dependiendo del tipo de las funciones internas que realice, y tiene dos salidas: Las salidas de los FF sólo pueden tener dos estados (binario) y siempre tienen valores contrarios, como podemos ver en la siguiente tabla: Las entradas de un FF obligan a las salidas a conmutar hacia uno u otro estado o hacer "flip flop" (Término anglosajón), más adelante explicaremos cómo interactúan las entradas con las salidas para lograr los efectos característicos de cada FF. El FF también es conocido como: "Registro Básico" término utilizado para la forma más sencilla de un FF. "Multivibrador Biestable" término pocas veces utilizado para describir a un FF. Registro Básico construido con compuertas NAND _____________________________________________________________________ 17 18 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Este es el circuito más sencillo y básico de un FF, Puede ser construido a partir de dos compuertas NAND o dos compuertas NOR con dos entradas, a continuación se ilustra con compuertas NAND, y es denominado "Registro Básico NAND". La forma de conectarlas es la siguiente: Se deja libre una de las entradas de cada compuerta, las sobrantes son conectadas independientemente de manera cruzada hacia la salida de la compuerta contraria. Quedando la conexión de la siguiente manera: La siguiente tabla muestra el estado inicial del Registro Básico NAND, cuando sus entradas se encuentran en ALTO (Estado de reposo del FF). Para comenzar la acción de "Flip Flop" será necesario enviar a BAJO alguna de las entradas, con su correspondiente cambio de estado a la salida. La siguiente tabla nos muestra los diferentes cambios de las salidas, según cada selección de entradas (La "X" significa que no importa el estado en el que se encuentren en ese momento): _____________________________________________________________________ 18 19 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Siguiendo los datos de la tabla podemos resumir que: Si SET y RESET están en ALTO, el FF mantiene sus salidas en el estado actual. Si RESET recibe un pulso BAJO, las salidas son forzadas a Q = 0 y /Q = 1 Si SET recibe un pulso BAJO, las salidas son forzadas a Q = 1 y /Q = 0 Si las dos entradas reciben pulsos BAJOS, las salidas son forzadas a Q = 1 y /Q = 1 Este último cambio normalmente se considera como no deseado, ya que el principio básico es que las salidas siempre estén invertidas (Aunque en ciertos casos especiales, nosotros podríamos utilizar este efecto). Entonces, la tabla de verdad del Registro Básico NAND es la siguiente: Registro Básico con compuertas NOR La conexión del Registro Básico NOR es exactamente igual al del Registro NAND, pero los cambios en sus salidas son completamente diferentes, A continuación se _____________________________________________________________________ 19 20 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS ilustran las dos tablas de verdad para hacer el comparativo entre una y otra. Tabla de verdad del Registro Básico NOR Tabla de verdad del Registro Básico NAND Agregando pulsadores u otras compuertas en las entradas, los usos más comunes para el Registro Básico NAND o NOR son: Eliminadores de ruido para pulsadores mecánicos. Sistemas de Encendido (ON)/Apagado (OFF) con dos pulsadores para diversos circuitos digitales y/o análogos. Sensores de movimiento mecánico, (Fin o Inicio de carrera de una puerta por ejemplo). Control Digital de otros circuitos. Y otras 373929273736 Aplicaciones dependiendo de tu IMAGINACIÓN. Señales de Reloj (CLOCK) y FF controlados por Reloj Hasta ahora hemos visto que un Registro Básico tiene dos variables de entrada y responde de manera predecible a ellas, pero ¿Qué podíamos hacer si necesitáramos otra variable de control? ¿Cómo podríamos hacer que el registro actúe cuando sea conveniente para nosotros, y no al momento de cambiar sus entradas? _____________________________________________________________________ 20 21 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Todos los sistemas digitales tienen básicamente dos formas de operación: Operación en modo ASÍNCRONO. En este modo, las salidas cambian de manera automática siguiendo las órdenes de las entradas. Operación en modo SÍNCRONO. En este modo, las salidas cambian siguiendo las ordenes de las entradas, pero sólo cuando una señal de control, llamada RELOJ (CLOCK, CLK, CP) es aplicada al registro. Los circuitos digitales ASÍNCRONOS son muy complicados en lo que a diseño y reparación se refiere, ya que, al encontrarnos con una falla en un circuito de 10 registros interconectados, el rastreo de los cambios en todas las compuertas nos provocaría un severo dolor de cabeza. Los circuitos digitales SÍNCRONOS son más fáciles de diseñar y reparar, debido a que los cambios de las salidas son eventos "esperados" (ya que fácilmente podemos saber el estado de cada una de las entradas o salidas sin que estas cambien repentinamente), y los cambios dependen del control de una sola señal aplicada a todos los registros, la señal de RELOJ. La señal de reloj es una onda cuadrada o rectangular, los registros que funcionan con esta señal, sólo pueden cambiar cuando la señal de reloj hace una transición, También llamados "flancos", por lo tanto, la señal de reloj sólo puede hacer 2 transiciones (o Flancos): La Transición con pendiente positiva (TPP) o Flanco positivo (FP). Es cuando la señal de reloj cambia del estado BAJO al estado ALTO. La Transición con pendiente negativa (TPN) o Flanco Negativo (FN). Es cuando la señal de reloj cambia del estado ALTO al estado BAJO. Principales características de los FF sincronizados por Reloj. Todos los FF cuentan con una entrada con el rótulo (RELOJ, CLOCK, CLK, CP) y un distintivo círculo para saber como debe ser la señal activa. Los que no tienen círculo, son sincronizados por una TPP, los que cuentan con un círculo son sincronizados por una TPN. Todos los FF cuentan con entradas de control, que determinan el cambio que van a tener las salidas, al igual que en los Registros básicos, pero estas entradas no pueden modificar las salidas arbitrariamente, sólo podrán hacerlo cuando el FF reciba su transición activa. Las entradas de control del FF nos permiten saber cómo van a cambiar las salidas, pero sólo la señal de Reloj podrá hacer efectivo este cambio. FLIP-FLOP R-S SINCRONIZADO POR RELOJ. Circuitos Biestables - Parte I Nuevamente aquí... y luego de esto me tomaré un buen descanso, eso creo...!!! _____________________________________________________________________ 21 22 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Comencemos... Los circuitos biestables son muy conocidos y empleados como elementos de memoria, ya que son capaces de almacenar un bit de información. En general, son conocidos como Flip-Flop y poseen dos estados estables, uno a nivel alto (1 lógico) y otro a nivel bajo (cero lógico), Se entendió...?, aplausos para mi... gracias, muchas gracias...!!! Comencemos... Los circuitos biestables son muy conocidos y empleados como elementos de memoria, ya que son capaces de almacenar un bit de información. En general, son conocidos como Flip-Flop y poseen dos estados estables, uno a nivel alto (1 lógico) y otro a nivel bajo (cero lógico), Se entendió...?, aplausos para mi... gracias, muchas gracias...!!! Perdón, me estaba olvidando de un pequeño detalle, es posible que al presionar el pulsador se produzcan rebotes eléctricos, es como haberlo presionado varias veces, y sí... los resultados serán totalmente inesperados, así que lo de los cablecitos para probar estos circuitos no nos servirán de mucho, es conveniente utilizar un pulso de reloj para realizar estas pruebas, ya sabes...!!! un circuito astable, de los que hicimos en lecciones anteriores, de ahora en más lo llamaremos pulso de reloj o Clock o CK. Por lo general un Flip-Flop dispone de dos señales de salida, una con el mismo valor de la entrada y otra con la negación del mismo o sea su complemento. Primero lo básico, como siempre, y luego lo enredamos un poco más. FLIP FLOP BÁSICO RS Se puede construir uno fácilmente utilizando dos compuertas NAND o NOR conectadas de tal forma de realimentar la entrada de una con la salida de la otra, quedando libre una entrada de cada compuerta, las cuales serán utilizadas para control Set y Reset... Las resistencias R1 y R2 utilizadas en ambos casos son de 10k y las puse solamente para evitar estados indeterminados, observa el circuito con compuertas NOR... Un nivel alto aplicado en Set, hace que la salida negada ~Q sea 0 debido a la tabla de verdad de la compuerta NOR, al realimentar la entrada de la segunda compuerta y estando la otra a masa, la salida normal Q será 1. Ahora bien, esta señal realimenta la primer compuerta, por lo tanto no importan los rebotes, y el FF se mantendrá en este estado hasta que le des un pulso positivo a la entrada Reset _____________________________________________________________________ 22 23 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Conclusión: El biestable posee dos entradas Set y Reset que trabajan con un mismo nivel de señal, provee dos salidas, una salida normal Q que refleja la señal de entrada Set y otra ~Q que es el complemento de la anterior. Si comparas los dos flip-flop representados en el gráfico, verás que sólo difieren en los niveles de señal que se utilizan, debido a la tabla de verdad que le corresponde a cada tipo de compuerta. FLIP FLOP RS - Controlado por un pulso de reloj: En este caso voy a utilizar el ejemplo de las compuertas NAND, pero le agregaremos dos compuertas mas, y uniremos la entrada de cada una a una señal de Reloj... Lo dicho mas arriba, necesitamos un generador de pulsos (Astable) para conectarlo en la entrada Clock, una vez lo tenemos pasamos a interpretar el circuito... Si pones un 0 en Set y la entrada Clock está a 1 ocurrirá todo lo que se describe en el esquema anterior, veamos que ocurre cuando Clock pasa a 0... Sorpresaaaaaaaaa...!!!, el FF se mantiene sin cambios en Q y ~Q. Fíjate que ahora no importa el estado de Set y Reset, esto se debe a su tabla de verdad (basta que una de sus entradas sea 0 para que su salida sea 1) por lo tanto Set y Reset quedan inhabilitadas. Es decir que se leerán los niveles de Set y Reset sólo cuando la entrada Clock sea 1. FLIP-FLOP J-K SINCRONIZADO POR RELOJ. En este capítulo estudiaremos uno de los elementos más importantes, si no el más importante, en el arsenal de los bloques fundamentales de los circuitos lógicos _____________________________________________________________________ 23 24 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS conocidos como secuenciales. Este elemento es el flip-flop J-K y se representa de la manera siguiente: Como puede verse en el símbolo del flip-flop J-K, este posee dos salidas complementarias Q y Q al igual que el flip-flop R-S. Las características del flip-flop J-K son las siguientes: (1) Cuando J=1 y K=1, al ir la entrada de la terminal de reloj C (clock) de 1 a 0 nada ocurre y el flip-flop J-K retiene el estado que poseía anteriormente. (2) Cuando J=1 y K=0, al ir la entrada C de 1 a0 el flip-flop J-K tomará el estado Q=1 independientemente del estado en el que se encontraba anteriormente. (3) Cuando J=0 y K=1, al ir la entrada C de 1 a 0 el flip-flop J-K tomará el estado Q=0 independientemente del estado en el que se encontraba anteriormente. (4) Cuando J=0 y K=0, al ir la entrada C de 1 a 0 el flip-flop J-K tomará un estado opuesto a aquél en el cual se encontraba anteriormente. Esto quiere decir que si antes de la transición en la terminal C de 1 a 0 el flip-flop J-K se encontraba en el estado Q=1, entonces tomará el estado Q=0 después de la transición. Asimismo, si se encontraba en el estado Q=0 antes de la transición, entonces tomará el estado Q=1 después de la transición. Obsérvese que la transición de 0 a 1 en la terminal C no produce efecto alguno en la salida Q. Unicamente la transición de 1 a 0 es la que puede producir efecto alguno. Puesto que es una caída de 1 a 0 o una transición negativa la que produce esta acción, este flip-flop J-K es reconocido como uno accionado por una señal de reloj negativa en la terminal de "reloj" (clock). Existen también en el mercado flip-flops J-K en los cuales la transición que produce la acción en la terminal de salida Q es una transición positiva de 0 a 1 y no la transición negativa de 1 a 0 (precaución: aquí no hay voltajes negativos involucrados). Estos flip-flops J-K son conocidos en el mercado como flip-flops accionados por una señal de reloj positiva. Obsérvese cuidadosamente que es únicamente una transición en la terminal C la que puede producir acción alguna a la salida del flip-flop J-K. Si la entrada en la _____________________________________________________________________ 24 25 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS terminal C permanece constante, cualesquier variación en las terminales J yK no podrá producir efecto alguno en la salida Q del flip-flop J-K. En forma similar al flip-flop R-S, el flip-flop J-K también posee dos salidas complementarias, Q y Q, con la diferencia de que el flip-flop J-K no posee estados no-definidos. El flip-flop J-K, al igual que todos los bloques fundamentales dentro de los circuitos lógicos, se construye utilizando funciones lógicas básicas. Consideramos a continuación una configuración hecha exclusivamente a base de flip-flops J-K: Para analizar cualesquier circuito lógico que contenga flip-flops J-K, la regla es extremadamente sencilla: Suponemos que todos los flip-flops J-K de la configuración están en el estado Q=0. Aplicamos varias transiciones negativas en la terminal de entrada (o terminal "reloj") C y hacemos una lista de los estados que adquieren los flip-flops J-K de la configuración después de haber ocurrido cada transición. Continuamos el procedimiento hasta que todos los flip-flops J-K de la configuración original hayan regresado al estado original Q=0. Teniendo lo anterior en cuenta, empezamos suponiendo que la salida del primer flip-flop J-K es Q1=0 y que la salida del segundo flip-flop J-K es también Q2=0. En otras palabras, el estado original de la configuración es Q1Q2=00. Vemos entonces en el diagrama de la configuración cuáles son las entradas a cada flip-flop J-K: _____________________________________________________________________ 25 26 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Al llevarse a cabo la primera transición negativa en la terminal de entrada, el primer flip-flop J-K tomará el estado Q1=1, ya que antes de la transición estaba condicionado por las entradas J=1 y K=0. Simultáneamente, el segundo flip-flop JK tomará el estado opuesto al que tenía anteriormente, esto es, tomará el estado Q2=1, ya que antes de la transición estaba condicionado por las entradas J=0 y K=0. Por lo tanto, después de la primera transición la configuración habrá tomado el estado Q1Q2=11. La situación de la configuración es ahora la siguiente: Al llevarse a cabo la segunda transición en la terminal de entrada, el primer flipflop J-K tomará el estado Q1=0, ya que antes de la segunda transición estaba condicionado por las entradas J=0 y K=1. Simultáneamente, el segundo flip-flip JK tomará el estado Q2=0, ya que antes de la segunda transición estaba condicionado por las entradas J=0 y K=1. Por lo tanto, después de la segunda transición la configuración toma el estado Q1Q2=00. El circuito ha regresado a su estado original. Podemos resumir la secuencia de estados en una "tabla" que a primera vista podría asemejar una "Tabla de Verdad", pero que sin embargo no es tal, ya que es conceptualmente diferente. Se trata de una tabla conocida como tabla de estados y también como tabla de secuencias, la cual no nos dice cuál es la salida del circuito para una cierta combinación de entradas, sino que nos muestra cuál es la _____________________________________________________________________ 26 27 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS secuencia de un estado del circuito al siguiente estado, en forma ordenada, de arriba hacia abajo: Con el fin de evitar confusiones, se han dibujado las tablas de secuencias que serán mostradas en este libro de un modo algo diferente a como se han dibujado las Tablas de Verdad. En una tabla de secuencias, cada "bit" de información, ya sea un "0" ó un "1", está encerrado en su propia "cajita", la cual podemos visualizar como representando un flip-flop J-K o cualquier otro tipo de flip-flop. De este modo, cada renglón en una tabla de secuencias representa en un momento dado el estado de todos los flip-flops de los que está hecho el circuito, representa lo que llamamos comúnmente el estado de la máquina, simbolizado simplemente como Q. Cualquier circuito lógico con elementos de memoria en un momento dado está completamente determinado por el estado en el que están cada uno de sus elementos de memoria, lo cual incluye sus flip-flops R-S, sus flip-flops J-K, los valores que hay en cada una de las "celdas" de su memoria RAM, en fin, todos los registros y elementos de memoria de los que está hecha la máquina. Y como el número de estos elementos es siempre una cantidad finita, estas máquinas son conocidas comúnmente como máquinas de estado finito (finite state machines). A diferencia de la Tabla de Verdad en la cual el orden en el que están puestos los renglones es un asunto sin trascendencia, en la tabla de secuencias el orden de los renglones tiene que ser mantenido intacto para poder leer de la misma cuál será el siguiente estado Qn+1 al cual avanzará un contador en una transición de estados cuando se encuentra dentro de cierto estado Qn. El avance del tiempo en una tabla de secuencias siempre debe ser leído de arriba hacia abajo, y el paso de un renglón al siguiente debe ser leído como la transición de un estado a otro tras cada "pulso" en la señal de entrada para la terminal de "reloj". Si continuamos aplicando transiciones negativas a la terminal de entrada reloj C, la secuencia arriba mostrada se repetirá indefinidamente. Circuitos hechos a base de flip-flops J-K como el que acabamos de estudiar son conocidos comunmente como contadores. Puesto que el contador estudiado requiere dos transiciones para regresar a la condición inicial, decimos que es un contador módulo-2. En general, si un contador requiere n transiciones para regresar a la condición inicial, decimos que es un contador módulo-n. El término técnico se ha tomado "prestado" directamente del _____________________________________________________________________ 27 28 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS campo de las matemáticas, en donde tenemos aritméticas finitas módulo-n en las cuales al ir contando hacia arriba la suma no se va acumulando indefinidamente sino que, al llegar al número n, el conteo comienza nuevamente otra vez de cero. (Es una lástima que aquellos estudiantes que tienen problemas para entender las aritméticas modulares no tengan acceso a simuladores lógicos en los cuales con circuitos como los flip-flops J-K se pueden apreciar aritméticas modulares en acción. En otras palabras, el asunto de las aritméticas modulares no es un asunto meramente teórico que inventaron unos matemáticos ociosos que no tenían mejor cosa que hacer. Es algo que tiene aplicación directa en la práctica, y aquí lo estamos viendo en acción.) Obsérvese cómo en el contador estudiado todos los flip-flops J-K son activados simultáneamente. Todo contador en el cual sus flip-flops J-K son accionados a un mismo tiempo con una señal de "reloj" común a sus terminales de entrada de reloj C es conocido como un contador síncrono. Existen también contadores en los cuales cada flip-flop J-K a través de su terminal de salida Q acciona la terminal C del flip-flop J-K que le sigue. Este tipo de contadores recibe el nombre de contador asíncrono. Esta definición se extiende hacia cualquier otro tipo de contadores y circuitos secuenciales de todo género basado no sólo en el flip-flop J-K sino en otros flip-flops derivados del flip-flop J-K. Por ejemplo, el siguiente circuito secuencial construído con flip-flops del tipo D (derivable del flip-flop J-K según se verá en la sección de problemas resueltos) es un contador asíncrono: mientras que el siguiente contador es un contador síncrono (obsérvese cómo la terminal de reloj resaltada de color azul alimenta todas las entradas C de los flipflops del contador): _____________________________________________________________________ 28 29 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Otro concepto clave es el de los contadores con peso. Existe cierto tipo de contadores en los cuales si asignamos un cierto "peso" numérico a cada flip-flop JK que los compone , el contador parece llevar a cabo un conteo ascendente en el sistema decimal. Consideremos un contador cuya tabla de secuencias mostrando su secuencia natural de estados es la siguiente: Supongamos ahora que asignamos una unidad de peso al primer flip-flop J-K con salida Q1, una unidad de peso al segundo flip-flop J-K de salida Q2, dos unidades de peso al tercer flip-flop J-K de salida Q3 y cuatro unidades de peso al cuarto flipflop J-K de salida Q4. _____________________________________________________________________ 29 30 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Al empezar el conteo, el estado de la configuración es Q1Q2Q3Q4=0000, cuyo equivalente decimal es 0. Después de la primera transición, el contador toma el estado Q1Q2Q3Q4=1000. Puesto que la salida del primer flip-flop J-K es Q1=1 y a su vez contribuye con un peso de una unidad, el equivalente decimal del estado del contador será 1. Después de la segunda transición, el contador toma el estado Q1Q2Q3Q4=1100. Puesto que la salida de los dos primeros flip-flops es 1 y cada uno contribuye con un peso de una unidad, el equivalente decimal del estado del contador será 1+1=2. Después de la tercera transición, el contador toma el estado Q1Q2Q3Q4=1010. Puesto el primer flip-flop contribuye con un peso de una unidad y el tercer flip-flop contribuye con un peso de dos unidades, el equivalente decimal del estado del contador será 1+2=3. Continuando el análisis, vemos que el contador produce una cuenta decimal ascendente ordenada que llega hasta el estado con un equivalente del número decimal 8. Puesto que el peso del contador es una unidad - una unidad - dos unidades - cuatro unidades, representamos dicho peso como 1-1'-2-4. Obsérvese el uso de la comillla puesta en el peso correspondiente al segundo flip-flop que repite el mismo peso del primero. Ahora bien, para diseñar un contador hecho a base de flip-flops J-K existen varias alternativas, algunas de las cuales se discuten en los problemas resueltos correspondientes a este capítulo. El diseñista deberá estar alerta para determinar cuál de todos producirá el diseño óptimo para lograr la secuencia deseada. Debemos mencionar también que todo contador que produzca una salida simétrica de pulsos en su último flip-flop J-K es conocido como un contador simétrico. De no ser así, el contador es conocido como un contador asimétrico. (Definimos un tren simétrico de pulsos como aquél en el cual los "unos" y los "ceros" siempre ocurren de manera alternada, y cada "1" tiene la misma duración de tiempo que un "0".) Aunque el flip-flop J-K es un elemento central para la construcción de contadores electrónicos, su uso no está limitado a este tipo de circuitos. Las aplicaciones de un bloque tan versátil como lo es el flip-flop J-K son tan amplias que están limitadas únicamente por la imaginación del diseñista. Del flip-flop J-K se pueden obtener otros componentes más sencillos y más especializados como el flip-flop D y el flip-flop T. Aquí es en donde tenemos el punto de partida para la construcción de componentes funcionales más especializados tales como el registro de transferencia (shift register), conocido también como registro de desplazamiento y como registro de corrimiento. En este componente podemos ir metiendo varios bits de uno en uno hasta llenarlo a su máxima capacidad, tras lo cual podemos enviarlos juntos hacia afuera en forma paralela o inclusive en forma serial a la vez que vamos reintroduciendo la información de nuevo al registro de desplazamiento para otro uso posterior. Esta acción la podemos esquematizar de la siguiente manera en un circuito lógico que podemos suponer que se ha construído con cuatro flip-flops J-K: _____________________________________________________________________ 30 31 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS En este ejemplo, tras el primer "pulso de reloj", el último bit correspondiente a la palabra binaria 1011 ha entrado ya en el primer flip-flip del registro de transferencia. Al siguiente "pulso de reloj", le toca su turno al penúltimo bit de la palabra binaria entrar al primer flip-flop del registro de transferencia, a la vez que el bit que estaba en el primer flip-flop es desplazado hacia el segundo flip-flop hacia su derecha. De este modo, la palabra binaria va entrando al registro de desplazamiento hasta que está completamente dentro del registro, y eventualmente empieza a salir del registro bajo la acción de los siguientes pulsos de reloj. Puesto que este es un registro de transferencia en el cual la información binaria entra en forma serial (por la izquierda) y sale en forma serial (por la derecha), este tipo de registro es conocido como de entrada-serial salida-serial o siso (serial-input serial-output). Se pueden concebir otros tres tipos de registros de transferencia, el que es conocido como de entrada-serial salida-paralela o sipo (serial-input parallel-output): _____________________________________________________________________ 31 32 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS y el que es conocido como de entrada-paralela salida-serial o piso (parallel-input serial-output): y el que es conocido como de entrada-paralela salida-paralela o pipo (parallelinput parallel-output): Diseñar un registro de transferencia con flip-flops J-K o cualquier otro tipo de flipflop es un asunto relativamente fácil. Pero el problema general en el diseño de circuitos secuenciales consiste en, dada una tabla de secuencias, diseñar un circuito lógico que pueda producir en forma ordenada dicha tabla de secuencias, todo bajo el control de un "pulso de reloj" maestro. En otros tiempos, dados los costos altísimos de un componente tan básico como _____________________________________________________________________ 32 33 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS el inversor lógico NOT construído a base de lentos relevadores electromecánicos o de componentes más rápidos pero aún más costosos como los tubos electrónicos al vacío, diseñar un circuito secuencial con la menor cantidad teórica posible de componentes era un asunto de la más alta prioridad, y para ello se invertían muchas horas de estudio refinando al máximo técnicas como el mapa de Karnaugh para poder obtener los diseños más económicos posibles. Pero el dramático abaratamiento de los circuitos integrados en donde se implementan las funciones lógicas básicas ha hecho posibles otros recursos más prácticos de diseño que no enfatizan tanto aquellas herramientas teóricas de tan laborioso acceso que inclusive estaban fuera del alcance de la mayoría de los técnicos por ser impartidas en cursos a nivel universitario en las carreras de ingeniería eléctrica, ingeniería electrónica y ciencias computacionales. Supóngase que se desea construír una máquina secuencial que sea capaz de generar una secuencia de ocho palabras de 4 bits cada palabra. Si tenemos la tabla de secuencias a la mano, entonces todo lo que tenemos que hacer es proporcionar un contador binario de conteo ascendente que empezando con el estado Q1Q2Q3=000 suba al estado Q1Q2Q3=001 en el siguiente "pulso de reloj", tras esto al estado Q1Q2Q3=010 en el siguiente "pulso de reloj", y así sucesivamente, llevando a cabo un conteo binario ascendente. Podemos construír fácilmente un contador de este tipo con flip-flops J-K. O mejor aún, lo podemos comprar ya hecho dentro de un circuito integrado como el CD4520 (el cual incluye dos contadores binarios ascendentes por el precio de uno): Todo lo que tenemos que hacer ahora es agregarle una memoria ROM, conectando directamente las salidas Q del contador binario a las entradas A de domicilios de la memoria ROM. El ROM tiene que tener grabada en su memoria la tabla de secuencias en forma ordenada, con la primera secuencia puesta como el dato localizable en el primer domicilio, la segunda secuencia puesta como el dato localizable en el segundo domicilio, y así sucesivamente. El circuito presenta así el siguiente aspecto: _____________________________________________________________________ 33 34 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Todo lo que tenemos que hacer ahora es aplicarle "pulsos" de la señal de reloj de la duración deseada en la terminal de entrada "Reloj" para ver trabajar a nuestro secuenciador. Existe otra alternativa de diseño, explorada en la sección de problemas resueltos de este capítulo, la cual consiste en utilizar una memoria ROM en la cual se recurre al "truco" de retroalimentar las entradas del ROM con sus salidas, de modo tal que cada domicilio apunte hacia una localidad que es otro domicilio del mismo ROM y a la vez la secuencia que sigue. De esta manera, el abaratamiento de la microelectrónica no solo ha hecho posible que un técnico pueda lograr lo mismo que lo que antes requería a un ingeniero para lograr, ha hecho obsoletos muchos de los conocimientos tan arduamente adquiridos por este ingeniero que hoy en día nos sirven únicamente como ejercicio intelectual, un ejercicio intelectual muy interesante pero de dudosa utilidad en la práctica. ALMACENAMIENTO Y TRANSFERENCIA DE DATOS. REGISTROS DE CORRIMIENTO (DESPLAZAMIENTO). Un registro de corrimiento es un circuito secuencial síncrono capaz de contractar varios bits de información. El formato de esta información puede ser de dos tipos: • Serie: los bits se transfieren uno a continuación del otro por una misma línea. • Paralelo: se intercambian todos los bits al mismo tiempo, utilizando un número de líneas de transferencia igual al número de bits. _____________________________________________________________________ 34 35 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS REGISTROS CON ENTRADA SERIE Y SALIDA SERIE A continuación se muestra un registro de desplazamiento con entrada y salida en serie de 5 bits formado con biestables maestro esclavo RS: Observamos que la entrada S del primer biestable está conectado a la entrada y está negada a la entrada R. Con esto se consigue que, cuando en la entrada haya un 1, el primer biestable contendrá un 1 (Q=1, Q’=0) y los demás un 0. Con la siguiente señal de reloj el bit almacenado en el primer biestable se desplazará al siguiente y así un tras otro hasta la salida en serie. Esto sucede así porque la salida Q está conectada a la S del siguiente biestable. También podemos observar que los biestables nunca pueden estar en estado de mantenimiento o en estado prohibido, ya que la entrada enserie pasa afirmada a la S y negada a la R. Los registros de desplazamiento se implementan con biestables maestro – esclavo, pues son capaces de almacenar la información un flanco, y transmitirla durante el siguiente. Cuando el registro se efectúa de izquierda a derecha se denomina desplazamiento hacia la derecha. Si el registro combina ambos tipos se llama bidireccional. REGISTROS CON ENTRADA SERIE Y SALIDA PARALELO La estructura de un registro serie paralelo es muy similar a la de un registro con entrada y salidas en serie: Observamos que la única diferencia es que se le añade una salida a cada una de las salidas Q del biestable: de esta manera se pueden obtener todos los datos a la vez. Por otro lado, también se puede obtener una salida en serie de cualquier salida Q o Q’. Habitualmente se suele añadir una entrada de puesta a cero asíncrona (CLEAR) cuya función es inicializar el registro. En último lugar destacar que estos registros se suelen utilizar para el cambio de una palabra de serie a paralelo. _____________________________________________________________________ 35 36 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS REGISTROS CON ENTRADA PARALELO Y SALIDA SERIE A continuación se muestra un esquema de un registro con entrada paralelo y salida serie y carga asíncrona. El funcionamiento es el siguiente: cuando en la entrada de selección desplazamiento /carga’ hay un 0 se realiza la carga. Con el inversor este cero se convierte en un 1 y por lo tanto las puertas NAND que hay arriba y debajo de los biestables se convierten en inversores. A continuación se introducen los datos: en el bit que haya un 1, se activa el Preset, y en el que haya un cero, se activa el Clear. Para el desplazamiento se coloca un 1 en D/C’ de esta manera se consigue que nunca se activan las entradas ni PR ni CL, ya que de las puertas NAND siempre saldrá un 1. El desplazamiento se realiza como en un registro serie-serie. A continuación se muestra un registro con carga paralelo y salida serie pero en este caso la carga es síncrono, ya que se carga por las entradas síncronas Observamos que esto se consigue con un multiplexor de dos canales gobernado por DESPLAZAMIENTO/ CARGA’. Con esto se consigue que si se quiere cargar _____________________________________________________________________ 36 37 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS los datos, se activan las entradas en paralelo que van cada una a las entradas S R. Para obtener los datos se tiene que realizar la entrada serie. En conclusión, podemos observar que la función del multiplexor es elegir entre la carga en serie o en paralelo. REGISTRO DE ENTRADA Y SALIDA EN PARALELO Como se puede ver, se ha creado un registro de entrada y salida paralelo a partir de biestables D con entrada de habilitación. La entrada de datos es cada una de las entradas D del biestable; la entrada de habilitación se une a una entrada de habilitación global, de manera que cuando se activa, permite que se lean los datos. Hay otra entrada (control de salida) que al activarse permite que se lean las salidas. Aquí hemos utilizado puertas AND, aunque también podríamos haber utilizados puertas OR y un inversor, o también buffers con entradas de alta impedancia. MEMORIAS DIGITALES EVOLUCION DE LAS MEMORIAS En las calculadoras de la década de los 30 se emplean tarjetas perforadas como memorias. La dirección de las posiciones quedaba determinada por la posición de ruedas dentadas. Luego se emplearon relés electromagnéticos. El computador ENIAC utilizaba, en 1946, válvulas electrónicas de vacío para construir sus biestables que actuaban como punto de memoria. Además, tenia una ROM de 4 bits construida a base de resistencias. Al comienzo de la década de los 50, se usaron las líneas de retardo de mercurio con 1 Kbit por línea, como memoria. Igualmente se empleo el tubo de Williams, _____________________________________________________________________ 37 38 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS que tenia una capacidad de 1200 bits y consistía en un tubo de rayos catódicos con memoria. En UNIVAC I introdujo en 1951 la primera unidad comercial de banda magnética, que tenia una capacidad de 1,44 Mbit y una velocidad de 100 pulgadas/s. El primer computador comercial que uso memoria principal al tambor magnético fue el IBM 650 en 1954. Dicho tambor giraba a 12500 r.p.m y tenia una capacidad de 120 Kbits. En 1953, el Mit dispuso de la primera memoria operativa de ferritas, que fue muy popular hasta mediados de los años 70. Fue IBM, en 1968, quien diseño la primera memoria comercial de semiconductores. Tenia una capacidad de 64 bits. También, el modelo 350 de IBM en 1956 fue quien utilizo el primer disco con brazo móvil y cabeza flotante. Su capacidad era de 40 Mbits y su tiempo de acceso, de 500 ms. Tecnologías nuevas, como la de burbujas magnéticas, efecto Josephon, acoplamiento de carga, de tipo óptico y otras, compiten en la actualidad por desplazar a las memorias de semiconductor basadas en silicio, que ya han alcanzado capacidades superiores a 1 Mbit en una pastilla con rapidisimo tiempo de acceso y coste razonable. MEMORIAS DE SEMICONDUCTORES Este tipo de memoria se emplea actualmente, con carácter universal, como memoria principal de los computadores. Todas las memorias que se van a tratar en este apartado son de direccionamiento cableado, o sea, de acceso aleatorio o RAM. Sin embargo, dentro de estas memorias se ha desarrollado otra terminología que resulta un poco confusa, pues repite términos empleados con otro sentido. Se puede establecer la siguiente clasificación: de lectura y escritura(RAM) Estáticas. Dinámicos o con refresco. de sólo lectura ROM (Read Only Memory) PROM (Programmable Read Only Memory) EPROM (Erasable Programmable Read Only Memory) EEPROM (Electricaly Erasable Read Only Memory ) Las memorias de semiconductores se presentan en pastillas integradas que contienen una matriz de memoria, un decodificador de direcciones, los transductores correspondientes y el tratamiento lógico de algunas señales de control. Existen muchas configuraciones, pero la mayoría de estas memorias manejan los siguientes elementos y señales. información almacenada en memoria. El bus de datos se puede conectar a las líneas correspondientes de varias pastillas. _____________________________________________________________________ 38 39 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS conjunto de m líneas que transportan la dirección y que permite codificar 2 posiciones de memoria. Pude estar multiplexado, de forma que primero se transmiten m/2 bits y luego, el resto. OE: activa la salida triestado de la memoria. CS ó CE: activa la pastilla o chip. WE: señal de escritura. Para realizar una escritura, además de activarse esta señal, también lo estarán CS ó CE. RAS ó CAS: las líneas RAS(Row Address Strobe) y CAS(Column Address Strobe) sirven para decodificar las filas y columnas de la RAM dinámicas. d) Ancho de palabra típico: 1,4 u 8 bits. MEMORIA RAM Es la memoria de acceso aleatorio (Random Access Memory). Se llama de acceso aleatorio porque el procesador accede a la información que está en la memoria en cualquier punto sin tener que acceder a la información anterior y posterior. Es la memoria que se actualiza constantemente mientras el ordenador está en uso y que pierde sus datos cuando el ordenador se apaga. Hay dos tipos básicos de RAM: DRAM (Dynamic RAM), RAM dinámica, SRAM (Static RAM), RAM estática Los dos tipos difieren en la tecnología que usan para almacenar los datos. La RAM dinámica necesita ser refrescada cientos de veces por segundo, mientras que la RAM estática no necesita ser refrescada tan frecuentemente, lo que la hace más rápida, pero también más cara que la RAM dinámica. Ambos tipos son volátiles, lo que significa que pueden perder su contenido cuando se desconecta la alimentación. En el lenguaje común, el termino RAM es sinónimo de memoria principal, la memoria disponible para programas. Se refiere a la memoria RAM tanto como memoria de lectura y escritura como así a un tipo de memoria volátil. Tipos de Memoria RAM: 1) DRAM (Dynamic Random Access Memory) Es la memoria de acceso aleatorio dinámica. Está organizada en direcciones de memoria (Addresses) que son reemplazadas muchas veces por segundo. Es la memoria de trabajo, por lo que a mayor cantidad de memoria, más datos se pueden tener en ella y más aplicaciones pueden estar funcionando simultáneamente, y por supuesto a mayor cantidad mayor velocidad de proceso, pues los programas no necesitan buscar los datos continuamente en el disco duro, el cual es muchísimo más lento. SRAM (Static Random Access Memory) Memoria estática de acceso aleatorio es la alternativa a la DRAM. No necesita tanta electricidad para su refresco y reemplazo de las direcciones y funciona más rápido porque no está reemplazando constantemente las instrucciones y los valores almacenados en ella. La desventaja es su altísimo coste comparado con la DRAM. Puede almacenar y recuperar los datos rápidamente y se conoce normalmente como MEMORIA CACHE. 3) VRAM (video RAM) _____________________________________________________________________ 39 40 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Memoria de propósito especial usada por los adaptadores de vídeo. A diferencia de la convencional memoria RAM, la VRAM puede ser accedida por dos diferentes dispositivos de forma simultánea. Esto permite que un monitor pueda acceder a la VRAM para las actualizaciones de la pantalla al mismo tiempo que un procesador gráfico suministra nuevos datos. VRAM permite mejores rendimientos gráficos aunque es más cara que la una RAM normal. 4) SIMM ( Single In Line Memory Module) Un tipo de encapsulado consistente en una pequeña placa de circuito impreso que almacena chips de memoria, y que se inserta en un zócalo SIMM en la placa madre o en la placa de memoria. Los SIMMs son más fáciles de instalar que los antiguos chips de memoria individuales, y a diferencia de ellos son medidos en bytes en lugar de bits. 5) DIMM (Dual In Line Memory) Un tipo de encapsulado, consistente en una pequeña placa de circuito impreso que almacena chips de memoria, que se inserta en un zócalo DIMM en la placa madre y usa generalmente un conector de 168 contactos. DIP (Dual In Line Package) Un tipo de encapsulado consistente en almacenar un chip de memoria en una caja rectangular con dos filas de pines de conexión en cada lado. RAM Disk Se refiere a la RAM que ha sido configurada para simular un disco duro. Se puede acceder a los ficheros de un RAM disk de la misma forma en la que se acceden a los de un disco duro. Sin embargo, los RAM disk son aproximadamente miles de veces más rápidos que los discos duros, y son particularmente útiles para aplicaciones que precisan de frecuentes accesos a disco. Dado que están constituidos por RAM normal. los RAM disk pierden su contenido una vez que la computadora es apagada. MEMORIA CACHE O RAM CACHE Un caché es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente. Hay dos tipos de caché frecuentemente usados en las computadoras personales: memoria caché y caché de disco. Una memoria caché, llamada también a veces almacenamiento caché ó RAM caché, es una parte de memoria RAM estática de alta velocidad (SRAM) más que la lenta y barata RAM dinámica (DRAM) usada como memoria principal. La memoria caché es efectiva dado que los programas acceden una y otra vez a los mismos datos o instrucciones. Guardando esta información en SRAM, la computadora evita acceder a la lenta DRAM. Cuando un dato es encontrado en el caché, se dice que se ha producido un impacto (hit), siendo un caché juzgado por su tasa de impactos (hit rate). Los sistemas de memoria caché usan una tecnología conocida por caché inteligente en el cual el sistema puede reconocer cierto tipo de datos usados frecuentemente. El caché de disco trabaja sobre los mismos principios que la memoria caché, pero en lugar de usar SRAM de alta velocidad, usa la convencional memoria principal. Los datos más recientes del disco duro a los que se ha accedido se almacenan en _____________________________________________________________________ 40 41 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS un buffer de memoria. Cuando el programa necesita acceder a datos del disco, lo primero que comprueba es la caché del disco para ver si los datos ya están ahí. La caché de disco puede mejorar drásticamente el rendimiento de las aplicaciones, dado que acceder a un byte de datos en RAM puede ser miles de veces más rápido que acceder a un byte del disco duro. Tipos de Memoria CACHE De acuerdo con el modo de traducción de las direcciones de memoria principal a direcciones de memoria cache, estas se clasifican en los siguientes tipos: Memoria cache de correspondencia directa. Se establece una correspondencia entre el bloque K de la memoria principal y el bloque k, modulo n, de la cache, siendo n el numero de bloques de la memoria cache. Este tipo simple y económico, por no requerir comparaciones asociativas en las búsquedas. De todas formas, en sistemas multiprocesador pueden registrarse graves contenciones en el caso de que varios bloques de memoria correspondan concurrentemente en un mismo bloque de la cache. Una dirección de memoria consta de 3 campos: Campo de etiqueta. Campo de bloque. Campo de palabra. Memoria asociativa completa En este modelo se establece una correspondencia entre el bloque k de la memoria y el bloque j de la cache, en la que j puede tomar cualquier valor. No se produce contención de bloques y es muy flexible, pero su implementación es cara y muy compleja, ya que el modelo se basa completamente en la comparación asociativa de etiquetas. Memoria cache de asociación de conjuntos Se divide la memoria en c conjuntos de n bloques, de forma que al bloque k de memoria corresponde uno cualquiera de los bloques de la memoria del conjunto k, modulo c. La búsqueda se realiza asociativamente por el campo de etiqueta y directamente por el numero del sector. De este modo se reduce el costo frente al modelo anterior, manteniendo gran parte de su flexibilidad y velocidad. Es la Estructura más utilizada. Memoria cache de correspondencia vectorizada El modelo divide a la memoria principal y a le cache en n bloques. La relación se establece de cualquier sector a cualquier sector, siendo marcados los bloques no referenciados del sector como no validos. Esta estructura también reduce costos, minimizando el núcleo de etiquetas para la comparación asociativa. SDRAM (Synchronous DRAM) DRAM síncrona, un tipo de memoria RAM dinámica que es casi un 20% más rápida que la RAM EDO. SDRAM entrelaza dos o más matrices de memoria interna de tal forma que mientras que se está accediendo a una matriz, la _____________________________________________________________________ 41 42 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS siguiente se está preparando para el acceso. SDRAM-II es tecnología SDRAM más rápida esperada para 1998. También conocido como DDR DRAM o DDR SDRAM (Double Data Rate DRAM o SDRAM), permite leer y escribir datos a dos veces la velocidad bús. FPM (Fats Page Mode) Memoria en modo paginado, el diseño más común de chips de RAM dinámica. El acceso a los bits de memoria se realiza por medio de coordenadas, fila y columna. Antes del modo paginado, era leído pulsando la fila y la columna de las líneas seleccionadas. Con el modo pagina, la fila se selecciona solo una vez para todas las columnas (bits) dentro de la fila, dando como resultado un rápido acceso. La memoria en modo paginado también es llamada memoria de modo Fast Page o memoria FPM, FPM RAM, FPM DRAM. El término "fast" fué añadido cuando los más nuevos chips empezaron a correr a 100 nanoseconds e incluso más. 11) EDO (Extended Data Outpout) Un tipo de chip de RAM dinámica que mejora el rendimiento del modo de memoria Fast Page alrededor de un 10%. Al ser un subconjunto de Fast Page, puede ser substituida por chips de modo Fast Page. Sin embargo, si el controlador de memoria no está diseñado para los más rápidos chips EDO, el rendimiento será el mismo que en el modo Fast Page. EDO elimina los estados de espera manteniendo activo el buffer de salida hasta que comienza el próximo ciclo. BEDO (Burst EDO) Es un tipo más rápido de EDO que mejora la velocidad usando un contador de dirección para las siguientes direcciones y un estado 'pipeline' que solapa las operaciones. PB SRAM (Pipeline Burst SRAM) Se llama 'pipeline' a una categoría de técnicas que proporcionan un proceso simultáneo, o en paralelo dentro de la computadora, y se refiere a las operaciones de solapamiento moviendo datos o instrucciones en una 'tubería' conceptual con todas las fases del 'pipe' procesando simultáneamente. Por ejemplo, mientras una instrucción se está ejecutando, la computadora está decodificando la siguiente instrucción. En procesadores vectoriales, pueden procesarse simultáneamente varios pasos de operaciones de coma flotante La PB SRAM trabaja de esta forma y se mueve en velocidades de entre 4 y 8 nanosegundos. TAG RAM Este tipo de memoria almacena las direcciones de cualquier dato de memoria DRAM que hay en la memoria caché. Si el procesador encuentra una dirección en la TAG RAM, va a buscar los datos directamente a la caché, si no, va a buscarlos directamente a la memoria principal. Cuando se habla de la CACHEABLE MEMORY en las placas para Pentium con los chipsets 430FX, 430VX, 430HX y 430TX de Intel, nos referimos a la cantidad de TAG RAM, es decir, la cantidad de datos de memoria que se pueden almacenar en la caché. Una de las desventajas del chipset 430TX frente al chipset 430HX es que solo se pueden almacenar los datos de 64 MB de memoria RAM, con lo cual, en ciertos casos, en las placas con este chipset se produce un _____________________________________________________________________ 42 43 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS descenso del rendimiento de memoria al tener instalados más de 64 MB de memoria RAM en el equipo. Por ello, a pesar de la modernidad del diseño, en los servidores o las estaciones gráficas quizás sería más conveniente utilizar una placa base con el chipset 430HX de Intel. MEMORIA ROM Estas letras son las siglas de Read Only Memory (memoria de solo lectura) y eso es exactamente lo que es, una memoria que se graba en el proceso de fabricación con una información que está ahí para siempre, para lo bueno y lo malo. No podemos escribir en ella pero podemos leer cada posición la veces que queramos. Se trata de la memoria interna de la máquina, que el procesador lee para averiguar el qué, el cuándo y el cómo de una multitud de tareas diferentes; por ejemplo: lee las diversas instrucciones binarias que se necesitan cada vez que se teclea un carácter por el teclado, o cada vez que se tiene que presentar algo en pantalla. En la ROM está almacenado también el programa interno que nos ofrece la posibilidad de hablar con el ordenador en un lenguaje muy similar al inglés sin tener que rompernos la cabeza con el lenguaje de máquina (binario). Todas estas cosas suman tanta información que es muy probable que la memoria ROM de un ordenador tenga una capacidad de 8K a 16K, un número suficientemente grande para que este justificado asombrarse ante la cantidad de información necesaria para llenar tal cantidad de posiciones, especialmente cuando sabemos que los programas ROM están escritos por expertos en ahorrar memoria. Ello sirve para poner de manifiesto la gran cantidad de cosas que pasan en el interior de un ordenador cuando éste está activo. La memoria ROM presenta algunas variaciones: las memorias PROM, EPROM y EEPROM. MEMORIA PROM Para este tipo de memoria basta decir que es un tipo de memoria ROM que se puede programar mediante un proceso especial, posteriormente a la fabricación. PROM viene de PROGRAMABLE READ ONLY MEMORY (memoria programable de solo lectura ).Es un dispositivo de almacenamiento solo de lectura que se puede reprogramar después de su manufactura por medio de equipo externo . Los PROM son generalmente pastillas de circuitos integrados. Características principales de rom y prom: Solo permiten la lectura. Son de acceso aleatorio Son permanentes o no volátiles: la información no puede borrarse Tienen un ancho de palabra de 8 bits, con salida triestado. MEMORIA EPROM La memoria EPROM ( la E viene de ERASABLE -borrable-) es una ROM que se puede borrar totalmente y luego reprogramarse, aunque en condiciones limitadas. Las EPROM son mucho más económicas que las PROM porque pueden reutilizarse. MEMORIA EEPROM Aún mejores que las EPROM son las EEPROM ( EPROM eléctricamente borrables) también llamadas EAROM (ROM eléctricamente alterables), que _____________________________________________________________________ 43 44 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS pueden borrarse mediante impulsos eléctricos, sin necesidad de que las introduzcan en un receptáculo especial para exponerlos a luz ultravioleta. Las ROM difieren de las memorias RAM en que el tiempo necesario para grabar o borrar un byte es cientos de veces mayor, a pesar de que los tiempos de lectura son muy similares. Características principales de este tipo de memorias: Solo permiten la lectura. Son de tipo no volátil, aunque pueden borrarse. Son de acceso aleatorio. Tienen un ancho de palabra de 8 bits, con salida triestado. MEMORIA VIRTUAL Es una manera de reducir el acceso constante a memoria por parte del procesador. Cuando se está ejecutando un programa, y especialmente si se tienen varias aplicaciones abiertas, el ordenador tiene que cargar en memoria RAM los valores e instrucciones de dicho/s programa/s. Pero, ¿qué ocurre cuando el programa o programas que se están ejecutando requieren más memoria de la que tiene el equipo? En este caso, el procesador toma una parte del disco duro y la convierte en memoria RAM. Es decir, se utiliza el disco duro para almacenar direcciones de memoria, y aunque el disco duro es mucho más lento que la memoria RAM (10-15 milisegundos para un disco duro moderno frente a 70-10 nanosegundos para la memoria actual), es mucho más rápido tomar los datos en formato de memoria virtual desde el disco duro que desde las pistas y sectores donde se almacenan los archivos de cada programa. Los distintos modelos de memoria virtual se diferencian por sus políticas de solapamiento y por los métodos que emplean en la organización de la memoria. Los mas importantes son: Memoria Paginada Memoria Segmentada Memoria de segmentos paginados Todos estos sistemas encuentran como problema critico que los requerimientos de la memoria de algunos programas específicos son difíciles de predecir, y por ello, la fracción de memoria que debe asignarse a un programa es variable en cada caso. Además, la política de solapamiento y compartición debe tener en cuenta ciertas características internas de los programas que, invariablemente, determinan la construcción modular y estructurada de los mismos. Dichas características son: 1.- Localización Temporal: Es la tendencia de un proceso a referirse, en un futuro próximo, a elementos utilizados recientemente. Las variables y los stacks del proceso son ejemplos de elementos que ejercitan esta característica. 2.- Localización espacial: es la tendencia que tiene los procesos a referirse a elementos próximos la espacio virtual antes recorrido. 3.- Localización Secuencial: tendencia de los procesos a referenciar elementos de la secuencia inmediata. _____________________________________________________________________ 44 45 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Para decidir que fracción de memoria principal ha de ser destruida o cargada en disco si ha sido modificada cuando se necesita leer otra, las reglas o criterios mas empleados son: principal para dejar un hueco en esta. actualizada. uyendo o devolviendo a disco(si se ha modificado) la parte que lleva en memoria el menor tiempo. comenzó el proceso. ndo se coloca un bit de uso en cada entrada de una cola FIFO y se establece un puntero que la convierte en circular. Es una aproximación al algoritmo LRU con una cola FIFO simple. MEMORIA PAGINADA Este método organiza el espacio virtual y el físico en bloques de tamaño fijo, llamados paginas. En un momento determinado la memoria principal contendrá algunos de los bloques lógicos. Como las distintas posiciones de un bloque lógico y uno físico están ordenadas de forma idéntica, simplemente hay que traducir el numero del bloque lógico al correspondiente del bloque físico. Los métodos de traducción son diversos, desde el mas básico de correspondencia directa al mas complejo de correspondencia asociativa, donde la búsqueda se realiza mediante el contenido de una memoria asociativa que mantiene las correspondencias virtual - física mas recientemente utilizadas. En la practica se utiliza una técnica mixta en la que las paginas mas recientemente empleadas se encuentran en una memoria asociativa y todas ellas en una tabla de correspondencia directa. Método de correspondencia directa: La dirección virtual consta de dos campos: un numero de pagina virtual(npv) y un desplazamiento(d), dentro de la pagina indicada. Con el numero de la pagina virtual se accede a una entrada de una tabla de paginas(TP) que proporciona la dirección física de la pagina y una serie de información complementaria. Localizada la pagina física, el desplazamiento(d) sirve para completar la posición concreta dentro de ella. En el momento de arranque, cada proceso activo del sistema crea en la memoria principal una Tabla de Paginas(TP) que contiene una entrada por cada posible pagina virtual. La configuración de las entradas de TP consta de los siguientes campos: 1.- Bit de validación(V), que, cuando esta activado, indica que la pagina existe. Si V=0, la pagina no existe y se creara cuando haga falta. 2.- Bit de Modificación(M), que indica si la pagina ha sido modificada en memoria. Este bit se utiliza en los algoritmos de reemplazo y actualización de la memoria. 3.- Código de acceso autorizado a la pagina(CAA), que puede ser de lectura, escritura y/o ejecución; son 2 bits. _____________________________________________________________________ 45 46 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS 4.- Dirección de la Pagina(DP), que contiene la dirección de la pagina en memoria principal o la dirección de la misma en memoria virtual o disco, según que la pagina este activa o inactiva de acuerdo con el señalizador D. La dirección donde comienza la Tabla de Paginas(TP) esta almacenada en el Registro de Base de la Tabla de Paginas(RBTP). Para acceder, sucesivamente, a las entradas de la TP se incrementa el valor correspondiente al numero de pagina virtual(npv) al que se guarda en RBTP. Para calcular la dirección física en memoria se concatena DP(numero de pagina) con el desplazamiento d. Esto, si la pagina se encuentra en la memoria principal. El problema de este método estriba en el que el numero de entradas a la Tabla de Paginas(TP) ha de coincidir con el numero de paginas virtuales, que es muy grande. Método de correspondencia asociativa En este caso se dispone de una tabla inversa en tecnología asociativa, esto es, con memoria tipo CAM, que se encarga ella misma de soportar el proceso de búsqueda a muy alta velocidad, suministrando el numero de pagina física o indicación de que la palabra lógica direccionada no se encuentra en memoria, en cuyo caso se elimina una pagina de la memoria principal(si no se ha modificado) y se trae la nueva al hueco que deja. La memoria asociativa es aquella en la que se producen múltiples accesos de forma simultanea. En un simple acceso se pueden direccionar todas las posiciones que satisfacen un criterio de selección. Dado el elevado coste de las memorias asociativas, la tabla CAM suele ser incompleta, albergando el conjunto de paginas “activas” en un momento determinado. Si la CAM origina falta, hay que acudir a la TP para comprobar si esta en la memoria principal y, en su caso, actualizar la CAM. Si da falta la TP, hay que proceder a un cambio de pagina entre memoria principal y CAM. MEMORIA SEGMENTADA Este método explota el concepto de modularidad de los programas construidos estructuralmente. Los módulos son conjuntos de informaciones que pueden tratarse independientemente y que se relacionan mediante llamadas interprocedimientos, constituyendo programas que se denominan segmentos. La segmentación es una técnica que organiza el espacio virtual en bloques de tamaño variable, que reciben el nombre de segmentos y que se colocan en memoria mediante algoritmos de localización de espacio libre. Los elementos de un segmento se identifican mediante la dirección del segmento al que pertenecen y un desplazamiento dentro del mismo. A semejanza con el modelo anterior, existe un Registro Base de la Tabla de Segmentos(RBTS), que direcciona el comienzo de la Tabla de Segmentos(TS), de las que existe una por cada proceso activo. Cada entrada de la Tabla de Segmentos se compone de los siguientes campos: 1.- Código de Acceso Autorizado(CAA), que indica el modo de acceso permitido al segmento. 2.- Campo de Longitud(L), que indica la longitud del segmento. 3.- Bit de Memoria/Disco(D), que indica si el segmento esta o no en memoria. _____________________________________________________________________ 46 47 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS 4.- Campo de Dirección de Segmento (DS), que contiene la dirección absoluta del segmento en memoria o la posición del segmento en disco, según el valor del señalizador D. Dada la naturaleza variable en cuanto a longitud de los segmentos, se precisa algún algoritmo que localice espacio libre para que resida el segmento apropiado, ya que no es corriente encontrar un bloque continuo en la memoria, para colocarlo completo. Estos algoritmos forman parte del mecanismo de interrupción de falta de pagina y los más relevantes son: a) De mejor ajuste: Minimiza el desperdicio, seleccionando el mejor agujero o fragmento inútil en el que se puede colocar el segmento. b) De peor ajuste: Localiza el agujero que maximiza el desperdicio al colocar el segmento. c) De primer ajuste: Localiza el agujero con una dirección inicial inferior en el que se puede colocar el segmento. d) Algoritmo Buddy: Utiliza técnicas de compactación de memoria, fusionando espacios inútiles, de forma que se configuran bloques continuos del tamaño adecuado. Evidentemente los segmentos pueden ser compartidos por muchos procesos. Algunos sistemas utilizan tablas auxiliares, que apoyan la búsqueda de segmentos compartidos, como la Tabla de Segmentos Activos(TSA), que indica cuales son los segmentos activos en memoria en cada instante y la Tabla de Segmentos Conocidos(TSC), que contiene en cada entrada un nombre-segmento/numero segmento por cada segmento ya utilizado en el proceso. Uno de los procedimientos mas aceptados para la gestión de la memoria virtual es el que utilizan los minicomputadores PDP-II de Digital Equpiment Corporation. Por ej. la dirección virtual de 16 bits, se divide en un campo de 3 bits, que selecciona uno de los 8 registros basa de 12 bits existentes, y otro campo de 13 bits de desplazamiento. La dirección física de 18 bits se calcula sumando el registro base, los 7 bits de mas peso del desplazamiento precedidos de cinco ceros, y concatenando al resultado los 6 bits menos peso del desplazamiento. Se logra variar la longitud de los segmentos entre 64 bytes y 8 Kbytes. MEMORIA CON SEGMENTOS PAGINADOS Esta memoria combina las ventajas de los dos modelos anteriores. Cada segmento se divide en paginas, de forma que, para acceder a cualquier elemento de un segmento, el sistema acude a la Tabla de Paginas(TP) de dicho segmento. Si se aplica la técnica asociativa, para realizar la traducción, el tratamiento de las interrupciones de “fallo en el acceso” debe contemplar los siguientes aspectos: obtendrá la dirección de pagina de la TP correspondiente. ero de segmento en la memoria asociativa, supone una búsqueda en la Tabla de Segmentos activos(TSA), en el peor de los casos, en el directorio de ficheros del disco, para recuperar el segmento y/o los atributos. ón de un nuevo proceso que genera su propio espacio de dirección invalida las entradas anteriores de la memoria asociativa. _____________________________________________________________________ 47 48 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS Preguntas Generadoras Se desea llenar un tanque con dos bombas si esta vacío; con una si esta a la mitad y con ninguna si esta lleno ¿Como seria un circuito en base a compuertas para que cumpla este requerimiento? ¿Como describimos y justificamos la importancia de la Electrónica Digital en el desarrollo tecnológico? ¿Qué es un estado ambiguo en el FF tipo R-S? ¿Cuál es el papel del reloj en las diferentes clases de flip-flop? ¿Seria posible la comunicación digital sin estos registros, como los reemplazaría? EJERCICIOS 1. Dibuje la tabla de verdad para cada una de las siguientes funciones: _ __ _ _ _ _ __ _ _ _ 2.F=XY+XZ+XYZ 3.F=(X+Y)(X+Z)(X+Z) 1.F=ABC+ABD+A+B+CD _ _ _ _ __ _ _ 4.F=AB(C+D)+ABC+CD 5. F = ( X + Y + Z ) ( Y + Z ) 2.Obtenga las formas canónicas suma de productos y productos de suma para las expresiones anteriores a) utilizando las tablas de verdad b) utilizando los teoremas de expansión canónica. x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 C 0 1 1 1 0 0 0 1 S 0 1 1 0 1 0 0 1 5. FUNCIONES DE BOOLE D = x'y'z + x'yz' + xy'z' + xyz _____________________________________________________________________ 48 49 CORPORACIÒN IBEROAMERICANA DE ESTUDIOS yz 00 01 1 y ______________ 11 10 1 1 1 C = x'y + x'z + yz yz 00 01 y ______________ 11 10 1 1 1 1 FUENTES DE CONSULTA COMPLEMENTARIA J. M Angulo Electrónica digital moderna, Madrid: Paraninfo. MORRIS, MANO. Diseño digital, México: Prentice Hall, 1994. Manual ECG sems TTL Data book. Milton Gussow. Fundamentos de Electricidad, México: Mc. Graw-Hill.1998 Malvino F. Principios de Electrónica, México: México: Mc. Graw-Hill.2006 . R. Cogdell. Fundamentos de Electrónica, México: México: Prentice Hall, 2000 _____________________________________________________________________ 49