sábado, 12 de marzo de 2011

3ra semana: compuertas logicas...

Las computadoras digitales utilizan el sistema de números binarios, que tiene dos dígitos 0 y 1. Un dígito binario se denomina un bit. La información está representada en las computadoras digitales en grupos de bits. Utilizando diversas técnicas de codificación los grupos de bits pueden hacerse que representen no solamente números binarios sino también otros símbolos discretos cualesquiera, tales como dígitos decimales o letras de alfabeto. Utilizando arreglos binarios y diversas técnicas de codificación, los dígitos binarios o grupos de bits pueden utilizarse para desarrollar conjuntos completos de instrucciones para realizar diversos tipos de cálculos.
La información binaria se representa en un sistema digital por cantidades físicas denominadas señales, Las señales eléctricas tales como voltajes existen a través del sistema digital en cualquiera de dos valores reconocibles y representan una variable binaria igual a 1 o 0. Por ejemplo, un sistema digital particular puede emplear una señal de 3 volts  para representar el binario "1" y 0.5 volts  para el binario "0". La siguiente ilustración muestra un ejemplo de una señal binaria.
Como se muestra en la figura, cada valor binario tiene una desviación aceptable del valor nominal. La región intermedia entre las dos regiones permitidas se cruza solamente durante la transición de estado.  Los terminales de entrada de un circuito digital aceptan señales binarias dentro de las tolerancias permitidas y los circuitos responden en los terminales de salida con señales binarias que caen dentro de las tolerancias permitidas.
La lógica binaria tiene que ver con variables binarias y con operaciones que toman un sentido lógico. La manipulación de información binaria se hace por circuitos lógicos que se denominan Compuertas.
Las compuertas son bloques del hardware que producen señales en binario 1 ó 0 cuando se satisfacen los requisitos de entrada lógica. Las diversas compuertas lógicas se encuentran comúnmente en sistemas de computadoras digitales. Cada compuerta tiene un símbolo gráfico diferente y su operación puede describirse por medio de una función algebraica. Las relaciones entrada - salida de las variables binarias para cada compuerta pueden representarse en forma tabular en una tabla de verdad.
A continuación se detallan los nombres, símbolos, gráficos, funciones algebraicas, y tablas de verdad de las compuertas más usadas.
Compuerta AND:  (ver funcionamiento)
Cada compuerta tiene dos variables de entrada designadas por A y B y una salida binaria designada por x.
La compuerta AND produce la multiplicación lógica AND: esto es: la salida es 1 si la entrada A y la entrada B están ambas en el binario 1: de otra manera, la salida es 0.
Estas condiciones también son especificadas en la tabla de verdad para la compuerta AND. La tabla muestra que la salida x es 1 solamente cuando ambas entradas A y B están en 1.
El símbolo de operación algebraico de la función AND es el mismo que el símbolo de la multiplicación de la aritmética ordinaria (*).
Las compuertas AND pueden tener más de dos entradas y por definición, la salida es 1 si todas las entradas son 1.
 
Compuerta OR:  (ver funcionamiento)
La compuerta OR produce la función sumadora, esto es, la salida es 1 si la entrada A o la entrada B o ambas entradas son 1; de otra manera, la salida es 0.
El símbolo algebraico de la función OR (+), es igual a la operación de aritmética de suma.
Las compuertas OR pueden tener más de dos entradas y por definición la salida es 1 si cualquier entrada es 1.
Compuerta NOT: (ver funcionamiento)
El circuito NOT es un inversor que invierte el nivel lógico de una señal binaria. Produce el NOT, o función complementaria. El símbolo algebraico utilizado para el complemento es una barra sobra el símbolo de la variable binaria.
Si la variable binaria posee un valor 0, la compuerta NOT cambia su estado al valor 1 y viceversa.
El círculo pequeño en la salida de un símbolo gráfico de un inversor designa un inversor lógico. Es decir cambia los valores binarios 1 a 0 y viceversa.
Compuerta Separador (yes):
Un símbolo triángulo por sí mismo designa un circuito separador, el cual no produce ninguna función lógica particular puesto que el valor binario de la salida es el mismo de la entrada.
Este circuito se utiliza simplemente para amplificación de la señal. Por ejemplo, un separador que utiliza 5 volt para el binario 1, producirá una salida de 5 volt cuando la entrada es 5 volt. Sin embargo, la corriente producida a la salida es muy superior a la corriente suministrada a la entrada de la misma.
De ésta manera, un separador puede excitar muchas otras compuertas que requieren una cantidad mayor de corriente que de otra manera no se encontraría en la pequeña cantidad de corriente aplicada a la entrada del separador.
Compuerta NAND: (ver funcionamiento)
Es el complemento de la función AND, como se indica por el símbolo gráfico, que consiste en una compuerta AND seguida por un pequeño círculo (quiere decir que invierte la señal).
La designación NAND se deriva de la abreviación NOT - AND. Una designación más adecuada habría sido AND invertido puesto que es la función AND la que se ha invertido.
Las compuertas NAND pueden tener más de dos entradas, y la salida es siempre el complemento de la función AND.
Compuerta NOR:   (ver funcionamiento)
La compuerta NOR es el complemento de la compuerta OR y utiliza el símbolo de la compuerta OR seguido de un círculo pequeño (quiere decir que invierte la señal). Las compuertas NOR pueden tener más de dos entradas, y la salida es siempre el complemento de la función OR.

segunda semana: circuitos logicos....

Dominio Lógico
El funcionamiento del computador se basa en el dominio de las señales que se describieron en el ejemplo anterior, pero también un computador es mucho más complejo que aquellas señales, el sólo hecho de mirar la pantalla y ver la metáfora del mundo que aquella representa, hace surgir preguntas tales: ¿cómo funciona esto? O sí algo ya se sabe ¿cómo de un dominio tan pequeño, el de las señales, es posible obtener otro tan complejo como lo que se observa en la pantalla?
Para responder aquellas preguntas se debe partir desde el mismo dominio simple de los dos estado originales, el cual es posible representar por un conjunto de símbolos como { 0, 1 } o { V, F }, símbolos que describen a { -1.5 volts, +4.0 volts } respectivamente.
Pero se está frente a la misma situación anterior, sólo se ha cambiado la forma, pero ese conjunto de símbolos no tiene ninguna potencialidad, de ninguna forma es posible construir algo con aquellos símbolos.
Existe, en las matemáticas, un álgebra llamada Algebra de Boole. Fue desarrollada originalmente por George Boole, alrededor de 1850. La importancia de esta álgebra deriva de los trabajos de Claude Shannon en 1937, quién la utiliza para describir los circuitos digitales.
Un álgebra es posible definirla, muy simplificadamente, como un dominio en que además de un conjunto de elementos existe un conjunto de operadores u operaciones que permiten operar con aquellos elementos, generando elementos del propio dominio o de otros.
Así, el Algebra de Boole se describe como el siguiente dominio = ( { 0, 1 }, { And, Or, Not } ), donde el conjunto { And, Or, Not } corresponde al conjunto de operadores. Los símbolos con qué se representan estas operaciones son propios de esta visión simplificada del álgebra, ya que en el original son { ^, v, ~ } o desde el punto de vista del diseño de circuitos en ingeniería los símbolos que se utilizan son { ·, +, - }.
Otra propiedad de un Algebra es la utilización de variables que permiten representar, en general, cualquiera de los elementos del conjunto. Esta característica permite definir nuevas operaciones a partir de las originales o primitivas del álgebra. Así, una variable X definida sobre le Algebra de Boole puede tomar valores { 0, 1 }, por ejemplo X = 1, o X = 0. Para que sea más simple de entender se recomienda considerar 0 = falso y 1 = verdadero.


Operaciones Básicas
And. La operación And requiere que todas las señales sean simultáneamente verdaderas para que la salida sea verdadera. Así, el circuito de la figura necesita que ambos interruptores estén cerrados para que la luz encienda.
Circuitos lógicos
Figura No. 5. Operación And.
Los estados posibles del circuito se pueden modelar en la Tabla de Verdad que tiene asociada. Sabemos que los interruptores sólo pueden tener dos estados, abiertos o cerrados, si el interruptor abierto se representa mediante el cero (0 o falso) y el cerrado mediante el valor uno (1 o verdadero) entonces en la tabla de verdad asociada se puede ver la situación que se describía en el párrafo anterior, cuando se decía que la luz sólo prende cuando ambos interruptores están cerrados, es decir, si A = 1 y B = 1 entonces L = 1.
La compuerta lógica es una forma de representar la operación And pero en el ámbito de los circuitos electrónicos, para ese caso A y B son las señales de entrada (con valores = 0 1) y L es la señal de salida.
Para efectos de este curso, la operación And la representaremos como la función And( A, B ), donde A y B serían los parámetros de entrada (los mismos valores de A y B en el circuito) y L = And( A, B ), correspondería a la forma de asignación de valor a L. En este caso el parámetro de salida es la misma función And.
Or. La operación Or tiene similares características a la operación And, con la diferencia que basta que una señal sea verdadera para que la señal resultante sea verdadera. En la figura se puede ver tal situación.
Circuitos lógicos
Figura No. 6. Operación Or.
Note que en el circuito los interruptores están en paralelo, por lo cual basta que uno de ellos esté cerrado para que el circuito se cierre y encienda la luz.
 
 
La operación Or también tiene una representación funcional como Or( A, B ) donde A y B serían los parámetros de entrada (los mismos valores de A y B en el circuito) y L = Or( A, B ), correspondería a la forma de asignación de valor a L. En este caso, el parámetro de salida es la misma función Or.
Not: La última de la tres operaciones fundamentales, la cual también se conoce como negación, complemento o inversión, es mucho más simple que las anteriores. En la figura se puede observar el circuito, que en este caso tiene la particularidad de que al estar el interruptor abierto la luz enciende, cuando él está en posición de cerrado la luz permanecería apagada.
 
 
Circuitos lógicos
Figura No. 7. Operación Not.
La notación funcional para esta operación será Not( A ), donde A corresponde a la señal de entrada y Not( A ) corresponde al valor complementario de A.
Con las operaciones básicas ya definidas es posible redefinir el Algebra de una manera más formal, por ejemplo, dándole el nombre de Dominio Lógico y caracterizandolo de la siguiente manera:
Dominio Lógico ( l ð Dominio Lógico ) = ( { 0, 1 }, { l: And( l, l ), l:Or( l, l ), l:Not( l ) } )
Note que cada una de las operaciones o funciones de este dominio se ha explicitado claramente la cantidad y el tipo de parámetros con los cuales ellas operan (operandos) y el tipo de valor que la operación devuelve, en este caso todos los parámetros son del tipo lógico ( l ).
Así, cuando se habla del dominio del computador al resolver un problema, este dominio tiene como base el dominio recién descrito. Los circuitos electrónicos que dan vida al computador pueden ser representados todos mediante este Dominio Lógico.
Operaciones compuestas
El conjunto de las operaciones del dominio básico se puede extender mediante un mecanismo de composición de operaciones, por ejemplo, se quiere agregar la operación XOR, que corresponde a un OR Exclusivo mediante el cual: si ambas entradas son iguales el resultado es cero (0 o falso) y si ambas son distintas, entonces el resultado es uno (1 o verdadero). Graficamente se puede ver la implementación de la compuesta XOR en la figura No. 8.
Circuitos lógicos
Figura No. 8. Implementación de la Compuesta XOR.
Es claro, en la figura, la forma de composición de la operación XOR a partir de las operaciones básicas and, or y not en el formalismo gráfico de las compuertas lógicas. También es posible usar el formalismo funcional, que se consideró en la definición el Domino Lógico, para componer la operación XOr:
Or( And( Not( A ), B ), And( A, Not( B ))); donde A, B ð Dominio Lógico
De hecho, si se quiere extender el conjunto de las operaciones del Dominio Lógico sería necesario expresar, la operación XOr, en el mismo formato que las operaciones primitivas; sin ser muy rigurosos bastaría con una asignación para que con ello se tenga una forma de definir nuevas operaciones en base a las ya existentes:
XOr( A, B ) ð Or( And( Not( A ), B ), And( A, Not( B ))) ; donde A, B, XOr ð Dominio Lógico
El símbolo ð permitiría trasladar toda la funcionalidad de la expresión a la nueva operación, incluidos los parámetros de entrada y salida (A, B como parámetros de entrada y el nombre de la operación XOr como parámetro de salida). Con la operación XOr ya definida es posible, entonces, ampliar la definición del Dominio Lógico:
Dominio Lógico ( l ð Dominio Lógico ) = ( { 0, 1 }, { l: And( l, l ), l:Or( l, l ), l:Not( l ) l:XOr( l, l ), } )
Por lo cual XOr podría ser utilizado para componer nuevas operaciones de este mismo dominio o, eventualmente, de otros.
Construcción de nuevos dominios
Pese a que se ha formalizado un dominio básico y, además, se ha creado nuevas operaciones dentro de ese dominio, aún no se cumple el objetivo de poder aproximar el mundo de señales del computador a nivel de complejidad actual observado.
En los puntos anteriores se revisó la forma de representación de los números enteros, la cual se basaba en una memoria organizada en palabras de 8 bits. Es decir, si se considera que cada una de las señales básicas puede ser utilizada para componer un bit, entonces sería necesario 8 señales para poder componer un número, donde cada una de estas señales podría tomar los dos estados posibles y, dependiendo de la posición en que ella esté -recuerden lo hablado sobre sistemas numéricos posicionales- tendría más o menos incidencia en el valor del número a representar, por ejemplo, el siguiente número binario, representa al 165 decimal -según la transformación estudiada:
xb = 10100101
X10 = V(xb) = 1× 27+0× 26+1× 25+0× 24+0× 23+1× 22+0× 21+1× 20 = 165
Con esta forma de representación es posible entonces sintetizar un conjunto de números enteros a partir de las señales originales, combinándolas. En este caso el conjunto de enteros puede ser uno que vaya desde 0 a 255, pero si se amplia el número de señales paralelas consideradas, este espectro se puede aumentar o, considerando el signo, se pueden incluir números negativos.
 
 
Así, para crear el conjunto de los números enteros a partir del conjunto de las señales se debe organizar éstas en cadenas paralelas -la forma usual de los buses dentro del computador- donde la posición de cada una tiene un peso específico en la síntesis del número que se está representando. En la notación que se está propugnando, un conjunto de estas cadenas puede ser visto de la siguiente forma:
Dominio Enteros Binarios ( nb Î Dominio Enteros Binarios) = ( { Ln...L7L6L5L4L3L2L1L0 / Li Î Dominio Lógico} )
Ahora, si bien existe una representación factible de números enteros a partir de las señales primitivas, un dominio de los enteros (que en este caso se ha denominado enteros binarios por no estar expresados en base decimal) no está completo si es que no existen operaciones que permitan manejarlos, por lo cual es necesario componer tales operaciones a partir de del dominio lógico o de las mismas operaciones ya desarrolladas para este dominio.
Suma en los enteros binarios
La suma de dos números binarios se realiza de la misma manera que la suma en los números decimales. Por ejemplo, la siguiente es una suma decimal:
  3 7 6 los números en negrillas corresponden a los dígitos menos significativos
+ 4 6 1
  8 3 1
Los dígitos en las posiciones menos significativos son operados primero, produciendo la suma 7. Luego, los dígitos en la segunda posición son sumados para dar el resultado 13, que produce un acarreo de 1 hacia la tercera posición, lo que produce la suma 8.
Los mismos pasos generales son seguidos en la suma binaria. Sin embargo, aquí sólo hay que considerar cuatro casos al sumar dos dígitos binarios:
0 + 0 = 0
1 + 0 = 1
1 + 1 = 0 + acarreo de 1 (uno) a la siguiente posición
1 + 1 + 1 = 1 + acarreo de 1 (uno) a la siguiente posición
El último caso ocurre cuando dos bit de una cierta posición tienen 1 (uno) y además hay un acarreo desde la posición previa. Los siguientes son varios ejemplos de sumas de dos números binarios:
 011 (3)          1001 (9)               11,011 (3,375)
+110 (6)        +1111 (15)            +10,110 (2,750)
1001 (9)         11000 (24)             110,001 (6.125)
No es necesario considerar la suma de más de dos números binarios al mismo tiempo, ya que todos los sistemas de circuitos digitales que actualmente ejecutan la suma sólo pueden manejar dos números a la vez. La suma es una de las operaciones aritméticas más importantes en los sistemas digitales, de hecho, las operaciones de resta, multiplicación y división pueden ser definidas en base a la suma.
Si se quiere entonces sumar dos números enteros binarios en un computador, es necesario para ello que exista la operación suma de enteros binarios. De manera análoga a como se definió la operación XOr, es posible definir ahora una operación de suma.

sábado, 26 de febrero de 2011

primera semana

sistema de numeracion:

Sistemas de numeración no posicionales

Estos son los más primitivos se usaban por ejemplo los dedos de la mano para representar la cantidad cinco y después se hablaba de cuántas manos se tenía. También se sabe que se usaba cuerdas con nudos para representar cantidad. Tiene mucho que ver con la coordinabilidad entre conjuntos. Entre ellos están los sistemas del antiguo Egipto, el sistema de numeración romana, y los usados en Mesoamérica por mayas, aztecas y otros pueblos .

[editar] Sistemas de numeración semi posicionales

El sistema de los números romanos no es estrictamente posicional. Por esto, es muy complejo diseñar algoritmos de uso general (por ejemplo, para sumar, restar, multiplicar o dividir). Como ejemplo, en el número romano XCIX (99 decimal) los numerales X (10 decimal) del inicio y del fin de la cifra equivalen siempre al mismo valor, sin importar su posición dentro de la cifra.

[editar] Sistemas de numeración posicionales

El número de símbolos permitidos en un sistema de numeración posicional se conoce como base del sistema de numeración. Si un sistema de numeración posicional tiene base b significa que disponemos de b símbolos diferentes para escribir los números, y que b unidades forman una unidad de orden superior.