Post on 08-Oct-2018
Andrea De Los Santos
Profesorado de informática Inet
- 1 -
¿Cómo salvar Organización del computador sin morir en el intento?
Andrea De Los Santos
Profesorado de informática Inet
- 2 -
Todo lo que querías saber y no
te animaste a preguntar.
Andrea De Los Santos
Profesorado de informática Inet
- 3 -
Pequeño manual ilustrado de Organización del Computador.
Agradecimientos ............................................................................................................... 3
MEMORIA ....................................................................................................................... 4
DIRECCIONES DE MEMORIA ..................................................................................... 4
CODIGOS PARA CORRECCION DE ERRORES ......................................................... 6
EJEMPLO ....................................................................................................................... 10
MEMORIA CACHE ...................................................................................................... 12
EMPAQUETAMIENTO Y TIPOS DE MEMORIA ..................................................... 13
MEMORIAS RAM Y ROM .......................................................................................... 21
DISPOSITIVOS DE ENTRADA Y SALIDA. .............................................................. 23
SISTEMA DE NUMERACION ..................................................................................... 23
REPRESENTACION DE DATOS ................................................................................ 29
Números con signo y sin signo ....................................................................................... 29
i. Complemento a dos ........................................................................................ 30
ii. Complemento a uno ........................................................................................ 30
ARITMÉTICA BINARIA. (Siguiendo con representación de datos) ............................ 33
Multiplicación binaria: .................................................................................................. 34
División binaria .............................................................................................................. 35
PUNTO FLOTANTE ..................................................................................................... 36
COMPUERTAS Y ALGEBRA BOOLEANA .............................................................. 40
Compuerta AND ............................................................................................................. 40
Compuerta OR ................................................................................................................ 41
Compuerta NOT ............................................................................................................. 41
Compuerta NOR ............................................................................................................. 42
ALGEBRA BOOLEANA .............................................................................................. 43
MAPAS DE KARNAUGH ............................................................................................ 51
CIRCUITOS COMBINACIONALES ........................................................................... 55
Multiplexores .................................................................................................................. 70
Decodificadores. ............................................................................................................. 71
Comparadores. ................................................................................................................ 73
Codificador ..................................................................................................................... 74
CIRCUITOS ARITMÉTICOS ....................................................................................... 75
Circuito semisumador y sumador completo ................................................................... 75
Circuitos semirestador y restador completo ................................................................... 76
Sumadores y restadores de n bits .................................................................................... 77
Circuito sumador restador. ............................................................................................. 79
UNIDAD ARITMÉTICO LÓGICA (ALU) ................................................................... 81
Circuitos aritméticos integrados ..................................................................................... 84
ANEXOS ........................................................................................................................ 85
EJERCICIO EXAMEN ORAL FEBRERO 2011 ........................................................ 120
Agradecimientos
A Luciana Ciambelli que gentilmente me prestó el libro Organización de computadoras
“Un enfoque estructurado” de Andrew Tanenbaum.
Andrea De Los Santos
Profesorado de informática Inet
- 10 -
EJEMPLO Ahora veremos un ejercicio como ejemplo.
Usando un código de Hamming 4 + 3 (paridad par), formar la palabra de Tx de 7 bits para enviar el dato : d1d2d3d4= 1011
Andrea De Los Santos
Profesorado de informática Inet
- 11 -
Y colocamos el resultado en la casilla correspondiente como se muestra en la imagen de
arriba. Supongamos que se produjera un error en d1, y como vale 1 pasa a cero, luego el
procedimiento es el mismo, el dato a enviar sería 0011.
Andrea De Los Santos
Profesorado de informática Inet
- 12 -
MEMORIA CACHE Una memoria caché es una memoria en la que se almacenan una serie de datos para su
rápido acceso. Existen muchas memorias caché (de disco, de sistema, incluso de datos,
como es el caso de la caché de Google.
Básicamente, la memoria caché de un procesador es un tipo de memoria volátil (del tipo
RAM), pero de una gran velocidad.
En la actualidad esta memoria está integrada en el procesador, y su cometido es
almacenar una serie de instrucciones y datos a los que el procesador accede
continuamente, con la finalidad de que estos accesos sean instantáneos. Estas
instrucciones y datos son aquellas a las que el procesador necesita estar accediendo de
forma continua, por lo que para el rendimiento del procesador es imprescindible que
este acceso sea lo más rápido y fluido posible.
Hay tres tipos diferentes de memoria caché para procesadores:
Caché de 1er nivel (L1):
Esta caché está integrada en el núcleo del procesador, trabajando a la misma velocidad
que este. La cantidad de memoria caché L1 varía de un procesador a otro, estando
normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida
en dos partes dedicadas, una para instrucciones y otra para datos.
Caché de 2º nivel (L2):
Integrada también en el procesador, aunque no directamente en el núcleo de este, tiene
las mismas ventajas que la caché L1, aunque es algo más lenta que esta. La caché L2
suele ser mayor que la caché L1, pudiendo llegar a superar los 2MB.
A diferencia de la caché L1, esta no está dividida, y su utilización está más encaminada
a programas que al sistema.
Caché de 3er nivel (L3):
Es un tipo de memoria caché más lenta que la L2, muy poco utilizada en la actualidad.
En un principio esta caché estaba incorporada a la placa base, no al procesador, y su
velocidad de acceso era bastante más lenta que una caché de nivel 2 o 1, ya que si bien
sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho más
en la época en la que se utilizaba), depende de la comunicación entre el procesador y la
placa base.
Para hacernos una idea más precisa de esto, imaginemos en un extremo el procesador y
en el otro la memoria RAM. Pues bien, entre ambos se encuentra la memoria caché, más
rápida cuanto más cerca se encuentre del núcleo del procesador (L1).
Las memorias caché son extremadamente rápidas (su velocidad es unas 5 veces superior
a la de una RAM de las más rápidas), con la ventaja añadida de no tener latencia, por lo
que su acceso no tiene ninguna demora... pero es un tipo de memoria muy cara.
Esto, unido a su integración en el procesador (ya sea directamente en el núcleo o no)
Andrea De Los Santos
Profesorado de informática Inet
- 13 -
limita bastante el tamaño, por un lado por lo que encarece al procesador y por otro por
el espacio disponible.
En cuanto a la utilización de la caché L2 en procesadores multinucleares, existen dos
tipos diferentes de tecnologías a aplicar.
Por un lado está la habitualmente utilizada por Intel, que consiste en que el total de la
caché L2 está accesible para ambos núcleos y por otro está la utilizada por AMD, en la
que cada núcleo tiene su propia caché L2 dedicada solo para ese núcleo.
La caché L2 apareció por primera vez en los Intel Pentium Pro, siendo incorporada a
continuación por los Intel Pentium II, aunque en ese caso no en el encapsulado del
procesador, sino externamente (aunque dentro del procesador).
EMPAQUETAMIENTO Y TIPOS DE MEMORIA
Corresponde al diseño e interfaz física de una memoria, incluyendo tipo de conectores y
tamaño de los componentes.
Tipos de empaquetamiento:
DIP (Dual Inline Package),
Tipos de empaquetamiento:
SIPP (Single Inline Pin Package)
Andrea De Los Santos
Profesorado de informática Inet
- 14 -
Tipos de empaquetamiento:
SO-DIMM (Small Outline Dual In-line Memory Module,
SODIMM.jpg)
Ocupados en notebooks.
Las principales razones para los distintos tipos de empaquetados son:
Tamaño de los transistores
cada vez más pequeños configuraciones óptimas de las celdas
cambian
Tamaño del bus de datos ha aumentado
Se necesitan más conectores
Chip de memoria:
Estructurado internamente como grilla de celdas
Cada celda almacena un bit (no un byte)
Celdas accesibles mediante la fila y columna en que está
Permite reducir el tamaño de las unidades de memoria
Módulos más compactos
Módulo de memoria:
Para almacenar bytes completos se agrupan 8 chips, conectados a un
mismo bus de dirección y datos
Para almacenar palabras se agrupan N chips según
corresponda
Andrea De Los Santos
Profesorado de informática Inet
- 15 -
Una byte de memoria está compuesta por las 8 posiciones (i,j) de las
grillas asociadas a cada chips
Acceso a Datos:
En la mayoría de los casos, cuando se accede a un dato, se adquieren
también los datos vecinos
localidad de referencia,
Ej. en vez de acceder a una palabra de 8 bits, se acceden a 32
bits que incluyen esa palabra y tres más.
Para realizar esto, los módulos de memoria están agrupados en bancos
de memoria
SRAM (Static Random Access Memory)
Memoria volátil basada en semiconductores.
Cada celda utiliza 6 o más transistores para almacenar un bit de
información.
Mientras los transistores estén alimentados mantienen la información
indefinidamente.
Andrea De Los Santos
Profesorado de informática Inet
- 16 -
SRAM (Static Random Access Memory)
Es muy rápida, pero debido a ocupar varios transistores por celda, es
menos densa y más cara que DRAM.
Se ocupa habitualmente como caché.
Lectura en SRAM:
Colocar dirección del dato a leer en el bus de direcciones.
Activar CS (chip select) para indicar que vamos a ocupar este chip.
Desactivar OE (output enable negado) para indicarle a la SRAM que se
va a leer el dato (OE no se muestra en el diagrama anterior).
La memoria coloca el dato en el pin Data Out.
Andrea De Los Santos
Profesorado de informática Inet
- 17 -
Escritura en SRAM:
Colocar dirección donde se escribirá en el bus de direcciones
Colocar bit a escribir en Data In
Activar CS
Activar WE (write enable) para indicarle a la SRAM que se escribirá
DRAM: (Dynamic Random Access Memory)
Memoria volátil basada en semiconductores y condensadores
Celda compuesta por un transistor y un condensador
Condensador almacena la información como carga
Es necesario un circuito que refresque la carga actual
Las hace más lentas que las SRAM.
Un solo transistor celdas de mucho menor tamaño que SRAM
Mayor densidad y menor costo.
Usualmente usada como memoria principal
Para la misma capacidad, requiere de la mitad de entradas de dirección
que una SRAM
Para leer se envía primero una mitad de la dirección (la fila) en el
siguiente ciclo la segunda (la columna)
Razón:
Aprovechar densidad de celdas sin tener que aumentar
significativamente el número de entradas de dirección
mantener la cantidades de pines por chip baja
Se ocupan señales de control especiales que indican si se está
accediendo a la fila o la columna (CAS y RAS)
Andrea De Los Santos
Profesorado de informática Inet
- 18 -
Lectura en DRAM
La dirección de la fila se coloca en los pines de dirección a través del bus
de dirección.
Se activa la señal de control RAS (Row Address Selector) haciendo que
la dirección recibida se almacene en el latch de dirección de fila
El decodificador de fila, selecciona la fila correspondiente a la dirección
recibida
Se desactiva el WE para indicar que no se va a escribir (o sea, que si se
va a leer)
Andrea De Los Santos
Profesorado de informática Inet
- 19 -
Lectura en DRAM (cont.)
La dirección de la columna se coloca en los pines de dirección a través
del bus de dirección.
Se activa la señal de control CAS (Column Address Selector) haciendo
que la dirección recibida se almacene el latch de dirección de columna
Cuando se estabiliza la señal de CAS, se ocupa esta misma como Output
Enable colocando el dato en el pin Data Out
Tipos de DRAM
Síncrona (SDRAM)
Espera la señal del clock antes de responder a señales de control.
Asincrona (ADRAM)
Responde ante señales de control lo más rápido posible.
Dentro de las SDRAM se encuentran los siguientes tipos:
SDR (Single Data Rate) SDRAM:
Puede recibir un comando y transferir una palabra por clock.
Frecuencias de clock típicas: 66 MHz, 100 Mhz, 133 Mhz
DDR (Double Data Rate) SDRAM:
Puede recibir un comando y transferir dos palabras por clock
Frecuencias de clock típicas: 133 MHz, 166 MHz, 200 MHz
DDR2, DDR3, DDR4:
Sucesores de DDR, mantienen las mismas características pero
aumentando la velocidad de acceso
Frecuencias de clock hasta 800 MHz
Andrea De Los Santos
Profesorado de informática Inet
- 20 -
Otros tipos de RAM
ZRAM (Zero Capacitor RAM) y TTRAM (Twin Transistor RAM):
Tecnología en desarrollo
Ocupa un transistor (ZRAM) o dos (TTRAM),
a diferencia de la DRAM no necesita de un condensador para
almacenar los datos
usa la capacitancia de las capas semiconductoras del propio
transistor para almacenar el bit .
Prometen lograr mayor densidad que DRAM y velocidades comparables
a SRAM
Tipos de Memorias NO Volátiles
Memoria Flash Tipo de EEPROM que es borrada y programada en bloques grandes
Basada en semiconductores
NOR flash:
Basada en compuertas NOR
Permite acceso aleatorio (RAM)
Tiempos elevados de escritura y borrado
NAND flash:
Basada en compuertas NAND
No permite acceso aleatorio, sólo por bloques
Menores tiempos de escritura y borrado
Menor tamaño de celdas, menor costo/bit que NOR
Andrea De Los Santos
Profesorado de informática Inet
- 23 -
DISPOSITIVOS DE ENTRADA Y SALIDA. Ver anexos, allí material ilustrado.
SISTEMA DE NUMERACION
El sistema de numeración binario solo tiene dos dígitos.
El sistema binario con sus dos dígitos es un sistema en
base dos. Los dígitos binarios (bits) son 0 y 1.
• La posición de un 1 o de un 0 en un número binario indica
su peso, o valor dentro del número, así como la posición
de un dígito decimal determina el valor de ese dígito.
• Los pesos de un número binario están basados en las
potencias de dos.
Tabla de pesos binarios
Andrea De Los Santos
Profesorado de informática Inet
- 24 -
Representación de los datos
Ejercicio: Calcule el equivalente decimal del numero binario 10001010
Sumamos las casillas que tienen 1 e ignoramos las que tienen 0.
128 + 8 + 2 = 138 en sistema decimal.
Y para los que quieren contar “con los dedos” …
Sistema de numeración octal
También llamado sistema de numeración Base 8, utiliza ocho dígitos para representar
cualquier cifra. Ellos son:
0, 1, 2, 3, 4, 5, 6, 7
Sistema de numeración hexadecimal
También llamado sistema de numeración Base 16, utiliza dieciséis dígitos para
representar cualquier cifra. Ellos son:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
20
21
27
26
25
24
23
22
20 = 1 (Dedo pulgar)
21 = 2 (Dedo índice)
22 = 4 (Dedo corazón)
23 = 8 (Dedo anular)
24 = 16 (Dedo meñique)
Andrea De Los Santos
Profesorado de informática Inet
- 25 -
De decimal a binario
Para convertir un numero decimal al sistema binario; basta con realizar divisiones
sucesivas entre 2 y colocar los restos obtenidos, en cada una de ellas. Para formar el
número binario tomaremos los restos en orden inverso al que han sido obtenidos.
Ejemplo : Convertir el numero 77 en Binario.
1.- Dividir 77 entre 2
Resto : 1
2.- Dividir 38 entre 2
Resto : 0
19 : 2 = 9 Resto 1
9 : 2 = 4 Resto 1
4 : 2 = 2 Resto 0
2 : 2 = 1 Resto 0
1 : 2 = 0 Resto 1
Para formar el número binario tomaremos los restos en orden inverso al que han sido
obtenidos quedando. 77 base 10 = 1001101 base 2
Otro ejemplo:
Convertir 249 a binario.
249 2
124 2
62 2
31 2
15 2
2 7
3 2
1 2
0
1
0
0
1
1
1
1
1
Andrea De Los Santos
Profesorado de informática Inet
- 26 -
De binario a decimal:
Para convertir un número binario a decimal; hay que tener en cuenta que el valor de
cada dígito está asociado a una potencia de 2, cuyo exponente es 0 en el BIT situado
más a la derecha, y se incrementa de 1 en 1 según vamos avanzando posiciones hacia la
izquierda.
Ejemplo: Convertir el numero 1010011 en Decimal.
De decimal a octal
En el sistema octal, los números se representan mediante ocho dígitos diferentes: 0, 1, 2,
3, 4, 5, 6 y 7. El valor de cada una de las posiciones viene determinado por las potencias
de base 8. La conversión de un número decimal a octal, se realiza del mismo que la
conversión a binario, la diferencia es que se emplea como base el número 8 en lugar del
2, colocando los restos obtenidos en orden inverso.
Andrea De Los Santos
Profesorado de informática Inet
- 27 -
Convertir 249 a octal:
Conversión de octal a decimal:
Para convertir un número octal a decimal; hay que tener en cuenta que el valor de cada
dígito está asociado a una potencia de 8, cuyo exponente es 0 en el BIT situado más a la
derecha, y se incrementa de 1 en 1 según vamos avanzando posiciones hacia la
izquierda.
Conversión de decimal a hexadecimal:
En este sistema, los números se representan con dieciséis símbolos: 0, 1, 2, 3, 4, 5, 6, 7,
8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F representando las
cantidades decimales 10, 11, 12, 13, 14 y 15 respectivamente, porque no hay dígitos
mayores que 9 en el sistema decimal. El valor de cada uno de estos símbolos depende,
como es lógico, de su posición, que se calcula mediante potencias de base 16.
249 8
3
1
8
3 8
0
1
7
3
a0
a1
a2
Andrea De Los Santos
Profesorado de informática Inet
- 28 -
Conversión de hexadecimal a decimal:
Para convertir un número hexadecimal a decimal; hay que tener en cuenta que el valor
de cada dígito está asociado a una potencia de 16, cuyo exponente es 0 en el BIT situado
más a la derecha, y se incrementa de 1 en 1 según vamos avanzando posiciones hacia la
izquierda.
Ejemplo: Convertir el numero 1A3F16 en Decimal.
Andrea De Los Santos
Profesorado de informática Inet
- 29 -
REPRESENTACION DE DATOS
Los modernos equipos de cómputo actuales no utilizan el sistema decimal para
representar valores numéricos, en su lugar se hace uso del sistema binario, también
llamado complemento de dos. Es importante entender cómo representan las
computadoras los valores numéricos.
Números con signo y sin signo.
Andrea De Los Santos
Profesorado de informática Inet
- 30 -
figura A-7
Calculando el complemento a dos del sustraendo
i. Complemento a dos
El complemento a dos de un número N, compuesto por n bits, se define como:
C2N = 2n – N
Veamos un ejemplo: tomemos el número N = 1011012, que tiene 6 bits, y calculemos su
complemento a dos:
N = 4510 n = 6 26 = 64 y, por tanto: C2N = 64 – 45 = 19 = 0100112
Ejemplo:
Calcula el complemento a dos de los siguientes números:
11001, 10001011, 110011010
ii. Complemento a uno
El complemento a uno de un número N, compuesto por n bits es, por definición, una
unidad menor que el complemento a dos, es decir:
Andrea De Los Santos
Profesorado de informática Inet
- 31 -
C1N = C2N - 1
y, por la misma razón:
C2N = C1N + 1
Calculemos el complemento a uno del mismo número del ejemplo anterior:
siendo N = 101101, y su complemento a dos C2N = 010011
C1N = C2N – 1 = 010011 – 000001 = 010010
C1N = 010010
Da la sensación de que calcular el complemento a uno no es más que una forma
elegante de comlicarse la vida, y que no va a ser más sencillo restar utilizando el
complemento a dos, porque el procedimiento para calcular el complemento a dos es más
difícil y laborioso que la propia resta. Pero es mucho más sencillo de lo que parece.
En realidad, el complemento a uno de un número binario es el número resultante de
invertir los UNOS y CEROS de dicho número. Por ejemplo si:
N = 110100101
obtenemos su complemento a uno invirtiendo ceros y unos, con lo que resulta:
C1N = 001011010
y su complemento a dos es:
C2N = C1N + 1 = 001011011
¡es muy fácil!
Magnitud y signo
• Ejemplos: representar -218 y -305
-218: se requieren 9 bits (8 magnitud y 1 signo)
M: 11011010 S: 1 -218: 1 11011010
-305: se requieren 10 bits (9 magnitud y 1 signo)
M: 100110001 S: 1 -305: 1 100110001
Si tenemos el numero 1010=00001010 para
calcular el negativo invertimos bit a bit
11110101,
luego le sumo uno y tenemos
-1010=11110110 2 (esto significa base 2)
Andrea De Los Santos
Profesorado de informática Inet
- 33 -
ARITMÉTICA BINARIA. (Siguiendo con representación de datos)
Restar en binario usando el complemento a dos:
Y, por fin, vamos a ver cómo facilita la resta el complemento. La resta binaria de dos
números puede obtenerse sumando al minuendo el complemento a dos del sustraendo.
Veamos algunos ejemplos:
Primer ejemplo:
Hagamos la siguiente resta, 91 – 46 = 45, en binario:
1011011 – 0101110 = 0101101
Tiene alguna dificultad, cuando se acumulan los arrastres a la resta siguiente. Pero esta
misma resta puede hacerse como una suma, utilizando el complemento a dos del
sustraendo:
1011011 + 1010010 = 0101101
En el resultado de la suma nos sobra un bit, que se desborda por la izquierda. Pero,
como el número resultante no puede ser más largo que el minuendo, el bit sobrante se
desprecia.
Segundo ejemplo:
Hagamos esta otra resta, 219 – 23 = 196, utilizando el complemento a dos:
21910 = 110110112,
2310 = 000101112
C223 = 11101001
El resultado de la resta será: 11011011 + 11101001 = 111000100
Y, despreciando el bit que se desborda por la izquierda, llegamos al resultado correcto:
110001002 = 19610
Andrea De Los Santos
Profesorado de informática Inet
- 34 -
Multiplicación binaria:
La multiplicación en binario es más fácil que en cualquier otro sistema de numeración.
Como los factores de la multiplicación sólo pueden ser CEROS o UNOS, el producto
sólo puede ser CERO o UNO. En otras palabras, las tablas de multiplicar del cero y del
uno son muy fáciles de aprender:
x 0 1
0 0 0
1 0 1
En un ordenador, sin embargo, la operación de multiplicar se realiza mediante sumas
repetidas. Eso crea algunos problemas en la programación porque cada suma de dos
UNOS origina un arrastre, que se resuelven contando el número de UNOS y de arrastres
en cada columna. Si el número de UNOS es par, la suma es un CERO y si es impar, un
UNO. Luego, para determinar los arrastres a la posición superior, se cuentan las parejas
de UNOS.
Veamos, por ejemplo, una multiplicación:
Para comprobar que el resultado es correcto, convertimos los factores y el resultado al
sistema decimal:
Andrea De Los Santos
Profesorado de informática Inet
- 35 -
3349 * 13 = 43537
¡correcto!
División binaria
Igual que en el producto, la división es muy fácil de realizar, porque no son posibles en
el cociente otras cifras que UNOS y CEROS.
Consideremos el siguiente ejemplo, 42 : 6 = 7, en binario:
Se intenta dividir el dividendo por el divisor, empezando por tomar en ambos el mismo
número de cifras (100 entre 110, en el ejemplo). Si no puede dividirse, se intenta la
división tomando un dígito más (1001 entre 100).
Si la división es posible, entonces, el divisor sólo podrá estar contenido una vez en el
dividendo, es decir, la primera cifra del cociente es un UNO. En ese caso, el resultado
de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del
divisor y bajamos la cifra siguiente.
Andrea De Los Santos
Profesorado de informática Inet
- 36 -
PUNTO FLOTANTE
Muchas aplicaciones requieren trabajar con números que no son enteros. Existen varias
formas de representar números no enteros. Una de ellas es usando un punto o coma fijo.
Este tipo de representación ubica siempre el punto o coma en alguna posición a la
derecha del dígito menos significativo.
Otra alternativa comúnmente usada es la que se conoce como representación en punto
flotante. Bajo este esquema, un número puede ser expresado mediante un exponente y
una mantisa. Por ejemplo el número 10.75 puede ser expresado como:
10.75 x 10 0
1.075 x 10 1
mantisa exponente
Representación en binario en coma flotante Componentes de la representación en coma flotante
− Signo: 0 para números mayores que 0 /1 para menores que 0
− Mantisa: se representa en coma fija y formato normalizado
− Exponente: se representa en exceso 2n-1-1
− Base
A continuación ejemplos con ejercicios.
Los números se almacenan de la siguiente forma:
Andrea De Los Santos
Profesorado de informática Inet
- 39 -
¿Qué pasaría si el ejercicio fuera al revés? Simple, lo hacemos a la inversa.
Andrea De Los Santos
Profesorado de informática Inet
- 40 -
COMPUERTAS Y ALGEBRA BOOLEANA
Compuerta AND:
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.
Andrea De Los Santos
Profesorado de informática Inet
- 41 -
Compuerta OR:
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:
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.
Andrea De Los Santos
Profesorado de informática Inet
- 42 -
Compuerta NAND: 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:
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.
Andrea De Los Santos
Profesorado de informática Inet
- 51 -
MAPAS DE KARNAUGH
Los Mapas de Karnaugh son una herramienta muy utilizada para la simplificación de
circuitos lógicos.
Cuando se tiene una función lógica con su tabla de verdad y se desea implementar esa
función de la manera más económica posible se utiliza este método.
Ejemplo: Se tiene la siguiente tabla de verdad para tres variables.
Se desarrolla la función lógica basada en ella. (primera forma canónica). Ver que en la
fórmula se incluyen solamente las variables (A, B, C) cuando F cuando es igual a "1".
Si A en la tabla de verdad es "0" se pone A, si B = "1" se pone B, Si C = "0" se pone C,
etc.
F = A B C + A B C + A BC + A B C + A B C + A B C
Una vez obtenida la función lógica, se implementa el mapa de Karnaugh.
Este mapa tiene 8 casillas que corresponden a 2n, donde n = 3 (número de variables (A,
B, C))
La primera fila corresponde a A = 0
La segunda fila corresponde a A = 1
La primera columna corresponde a BC = 00 (B=0 y C=0)
La segunda columna corresponde a BC = 01 (B=0 y C=1)
Andrea De Los Santos
Profesorado de informática Inet
- 52 -
La tercera columna corresponde a BC = 11 (B=1 y C=1)
La cuarta columna corresponde a BC = 10 (B=1 y C=0)
En el mapa de Karnaugh se han puesto "1" en las casillas que corresponden a los
valores de F = "1" en la tabla de verdad.
Tomar en cuenta la numeración de las filas de la tabla de verdad y la numeración de las
casillas en el mapa de Karnaugh.
Para proceder con la simplificación, se crean grupos de "1"s que tengan 1, 2, 4, 8, 16,
etc. (sólo potencias de 2).
Los "1"s deben estar adyacentes (no en diagonal) y mientras más "1"s tenga el grupo,
mejor.
La función mejor simplificada es aquella que tiene el menor número de grupos con
el mayor número de "1"s en cada grupo
Se ve del gráfico que hay dos grupos cada uno de cuatro "1"s, (se permite compartir
casillas entre los grupos).
La nueva expresión de la función boolena simplificada se deduce del mapa de
Karnaugh.
- Para el primer grupo (rojo): la simplificación da B (los "1"s de la tercera y cuarta
columna) corresponden a B sin negar)
Andrea De Los Santos
Profesorado de informática Inet
- 53 -
- Para el segundo grupo (azul): la simplificación da A (los "1"s están en la fila inferior
que corresponde a A sin negar)
Entonces el resultado es F = B + A ó F = A + B
Ejemplo:
Una tabla de verdad como la de la derecha da la siguiente función booleana:
F = ABC + AB C + A B C + A B C
Se ve claramente que la función es un reflejo del contenido de la tabla de verdad cuando
F = "1"
Con esta ecuación se crea el mapa de Karnaugh y se escogen los grupos. Se lograron
hacer 3 grupos de dos "1"s cada uno.
Se puede ver que no es posible hacer grupos de 3, porque 3 no es potencia de 2. Se
observa que hay una casilla que es compartida por los tres grupos.
La función simplificada es:
F = AB + A C + B C
Grupo en azul: AB, grupo marrón:AC, grupo verde:BC
****Notación A tener en cuenta a la hora de hacer el mapa de Karnaugh****
1º- agrupar los 1s que no pueden forma grupos de 2
2º- agrupar los 1s que forman un grupo de 2 y que no forman un grupo de 4 1s
3º- formar grupos de 4 que no forman 8.
Andrea De Los Santos
Profesorado de informática Inet
- 54 -
Ejercicio de ejemplo:
Dada la función F(D,C,B,A) = ∑ (0,2,4,6,9,11) 4
Hallar la expresión mínima. DC \ BA
I I
I I
I I F(D,C,B,A) = D’A’ + DC’A Ejemplo para colorcar los números del código Gray
DCBA
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
Andrea De Los Santos
Profesorado de informática Inet
- 55 -
CIRCUITOS COMBINACIONALES
Un sistema combinacional puede tener n entradas y m salidas.
Un sistema secuencial puede ser visto como una “caja negra”, en cuyo interior hay
compuertas lógicas, que representan una ecuación de conmutación.
Los circuitos secuenciales pueden ser:
•Asíncronos: no dependen de ninguna señal de reloj
•Síncronos: dependen de un reloj
Las células básicas de los circuitos secuenciales son los biestables los
cuales pueden ser:
•Asíncronos: no dependen de ninguna señal de reloj
•Síncronos: dependen de un reloj
•Activos por nivel
•Activos por flanco _ Flip-Flops
Los más utilizados son:
•RS
•JK
•D
•T
•etc
Andrea De Los Santos
Profesorado de informática Inet
- 74 -
Codificador
Un codificador es un circuito digital que ejecuta la operación inversa de un
decodificador. Un codificador tiene 2n (o menos) líneas de entrada y n líneas de
salida. Las líneas de salida generan un código binario correspondiente al valor
de entrada binario.
Ver codificador de octal a binario (tabla 2-2).
Entradas Salidas
D7 D6 D5 D4 D3 D2 D1 D0 A2 A1 A0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1
El codificador puede implantarse con compuertas OR cuyas entradas se
determinan directamente de la tabla de verdad. Por ejemplo, la salida es A0 será
igual a 1 si el digito octal de entrada es 1 o 3 o 5 o 7.
Las funciones de este codificador son las siguientes:
A0 = D1+D3+D5+D7
A1 = D2+D3+D6+D7
A3 = D4+D5+D6+D7
Andrea De Los Santos
Profesorado de informática Inet
- 75 -
CIRCUITOS ARITMÉTICOS
Circuito semisumador y sumador completo
Ci+1= Ai Bi + Ai Ci + Bi Ci
Andrea De Los Santos
Profesorado de informática Inet
- 76 -
Circuitos semirestador y restador completo
Andrea De Los Santos
Profesorado de informática Inet
- 83 -
Una secuencia tipica de operaciones pueden ocurrir asi:
1.La unidad de control recibe una intruccion( de la unidad de memoria) especificando
que un numero almacenado en una localidad de memoria particular(direccion) se
sumara al numero que esta almacenando en ese momento el registro acumulador.
2.El numero que se sumara se transfiere de la memoria al registro B.
3.El numero en el registro B y el numero en el registro de acumulador se suman en los
circuitos logicos(medianteun comando desde la unidad de control). Luego la suma
resultante se encia al acumulador para su almacenamiento.
4.El nuevo numero en el acumulador puede permanecer alli, de manera que se le pueda
sumar otro numero, o, si el proceso aritmetico particular ha terminado, se puede
transferir a la memoria para ser almacenado.
Estos paso deben de hacer evidente como deriva su nombre el rgistro acumulador. Este
registro acumula las sumas que ocurren cuando se realizan adiciones sucesivas entre
nuevos numeros adquiridos de la memoria y la suma previamente acumulada De hecho,
para cualquier problema aritmetico que conste de varios pasos el acumulador
normalmente contiene los resultados de los pasos intermedios a medida que se can
completandos asi como el resultado final cuando concluyo el problema.
Andrea De Los Santos
Profesorado de informática Inet
- 84 -
Circuitos aritméticos integrados
Los circuitos aritméticos básicos, debido a su gran uso en múltiples aplicaciones, los
encontramos en forma de IC (en una pastilla)
El circuito sumador total típico lo encontramos en forma de 4 sumadores completos
independientes o como un sumador de 4 bits capaz de sumar dos palabras binarias ed 4
bits.
Si combinamos los circuitos sumadores totales con otros circuitos lógicos, obtendremos:
Sumadores-restadores
Multiplicadores
ALU unidades lógicas-aritméticas de múltiples utilidades
Una función esencial de casi todas las computadoras y calculadoras es la realización de
operaciones aritméticas, las cuales se efectúan en la unidad aritmética-lógica de una
computadora, donde se combinan compuertas lógicas con flip-flops, de manera que
puedan, sumar, restar, multiplicar y dividir números binarios. Estos circuitos realizan
operaciones aritméticas a velocidades que son humanamente imposibles. Por lo general,
una operación de suma tomaría menos de 100ns
Algunos circuitos aritméticos básicos que se usan para realizar las operaciones
aritméticas antes mencionadas.
La unidad aritmética lógica opera los datos que recibe siguiendo las indicaciones por la
unidad de control. Esta unidad puede realizar operaciones aritméticas lógicas, por
ejemplo: el de realizar la suma, la forma en que realiza la operación.
1.- Se debe tener el código de operación que indique la operación a efectuar en este caso
el código de suma.
2.- Dirección de la célula en la que se encuentra almacenado el primer sumando.
3.- Dirección del segundo sumando.
4.- Dirección de la célula en la que se almacena el resultado.
Hay diferentes tipos de UAL: especializadas en operaciones con números enteros, con
números en coma flotante, etc. Hace algunos años, existía el denominado coprocesador
matemático, una UAL especializada en cálculos con números reales que estaba en un
microchip diferente al de la CPU.
Esta unidad, de forma concreta se compone básicamente de: Circuito Operacional,
Registros de Entradas, Registro Acumulador y un Registro de Estados, conjunto de
registros que hacen posible la realización de cada una de las operaciones.
Andrea De Los Santos
Profesorado de informática Inet
- 119 -
CONSIDERACIONES Es importante tener en cuenta que este material es un manual, NO UN LIBRO, que
frente a cualquier duda puede consultarse la fuente: Organización de computadoras “Un
enfoque estructurado”
Andrew Tanenbaum
También hay material de Internet, pero fue previamente chequeado con dicho libro.