organización del computador 1 lógica digital 1: álgebra compuertas...

41
Introducción Circuitos Bloques Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas Dr. Ing. Marcelo Risk Departamento de Computación Facultad de Ciencias Exactas y Naturales Universidad de Buenos Aires Septiembre 2009 Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y

Upload: lamhanh

Post on 27-Feb-2018

221 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Organización del Computador 1Lógica Digital 1: álgebra de Boole y compuertas

Dr. Ing. Marcelo Risk

Departamento de ComputaciónFacultad de Ciencias Exactas y Naturales

Universidad de Buenos Aires

Septiembre 2009

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 2: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Lógica digital

La computadoras necesitan almacenar datos e instruccionesen memoria.

Sistema binario: solo dos estados posibles.

Porqué?Es mucho más sencillo identificar entre sólo dos estados.Es menos propenso a errores

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 3: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Diseño de circuitos

Circuitos que operan con valores lógicos:Verdadero = 1Falso = 0

Idea: realizar diferentes operaciones lógicas y matemáticascombinando circuitos.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 4: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Álgebra de Boole

Figura: George Boole (1815-1864).

George Boole, desarrolló unsistema algebraico paraformular proposiciones consímbolos.

Su álgebra consiste en unmétodo para resolver problemasde lógica que recurre solamentea los valores binarios:

verdadero y falso.on y off.1 y 0.

tres operadores:AND (y).OR (y).NOT (no).

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 5: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Álgebra de Boole

Las variables Booleanas sólo toman los valores binarios: 1 ó 0.

Una variable Booleana representa un bit que quiere decir:Binary digIT

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 6: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Álgebra de Boole

Las variables Booleanas sólo toman los valores binarios: 1 ó 0.

Una variable Booleana representa un bit que quiere decir:Binary digIT

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 7: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Operadores básicos: AND

Un operador booleano puede ser completamente descriptousando tablas de verdad.

El operador AND es conocido como producto booleano (.):

X Y X AND Y0 0 00 1 01 0 01 1 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 8: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Operadores básicos: OR

El operador OR es conocido como producto booleano (+):

X Y X OR Y0 0 00 1 11 0 11 1 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 9: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Operadores básicos: NOT

El operador NOT se nota con una barra X :

X X0 11 0

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 10: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Funciones booleanas

Tabla de verdad de esta función F(x,y,z) = xz+y

El NOT tiene mayor precedencia que todos

El AND mayor que el OR

x y z z xz xz+y0 0 0 1 0 00 0 1 0 0 00 1 0 1 0 10 1 1 0 0 11 0 0 1 1 11 0 1 0 0 01 1 0 1 1 11 1 1 0 0 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 11: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Identidades

Identidad 1.A = A 0+A = ANula 0.A = 0 1+A = AIdempotencia A.A = A A+A = AInversa A.A = 0 A+A = 1Conmutativa A.B = B.A A+B = B+AAsociativa (A.B).C = A.(B.C) (A+B)+C = A+ (B+C)Distributiva A+B.C = (A+B).(A+C) A.(B+C) = A.B+A.CAbsorción A.(A+B) = A A+A.B = Ade Morgan A.B = A+B A+B = A.B

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 12: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Identidades: ejemplo de aplicación

Usando identidades booleanas podemos reducir esta función:F(x,y,z) = (x+y).(x+y).(x.z)

(x+y)(x+y)(x+z) de Morgan(xx+xy+yx+yy)(x+z) Distributiva(x+xy+yx+0)(x+z) Idempotencia e inversa(x+x(y+y))(x+z) Nula y distributiva(x)(x+z) Inversa, identidad y nulaxx+xz Distributivaxz Inversa e identidad

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 13: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Fórmulas equivalentes

Varias fórmulas pueden tener la misma tabla de verdad:Son lógicamente equivalentes.

En general se suelen elegir las formas canónicasSuma de productos:

F1(x,y,z) = xy+zx+yz

Producto de sumas:F2(x,y,z) = (x+y)(z+x)(y+z)

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 14: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques Álgebra de Boole

Suma de productos

Es fácil convertir una función auna suma de productos usandola tabla de verdad.

Elegimos los valores que dan 1 yhacemos un producto (AND) dela fila (negando si aparece un0)?.

Luego sumamos todo (OR):

x y z xz+y0 0 0 00 0 1 0

→ 0 1 0 1 ←→ 0 1 1 1 ←→ 1 0 0 1 ←

1 0 1 0→ 1 1 0 1 ←→ 1 1 1 1 ←

F(x,y,z) = (xyz)+ (xyz)+ (xyz)+ (xyz)+ (xyz)

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 15: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Circuitos booleanos

Las computadores digitales contienen circuitos queimplementan funciones booleanas.

Cuando más simple la función más chico el circuito:Son más baratos, consumen menos, y son mas rápidos!

Podemos usar las identidades del algebra de Boole parareducir estas funciones.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 16: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Compuertas lógicas

Una compuerta es un dispositivo electrónico que produce unresultado en base a un conjunto de valores de valores deentrada:

En realidad, están formadas por uno o varios transitores, perolo podemos ver como una unidad.Los circuitos integrados contienen colecciones de compuertasconectadas con algún propósito.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 17: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Compuertas lógicas

Las más simples: AND, OR, y NOT:

Se corresponden exactamente con las funciones booleanasque vimos.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 18: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Compuertas lógicas

Una compuerta muy útil: el OR exclusivo => XOR

La salida es 1 cuando los valores de entrada difieren.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 19: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Implementación de funciones booleanas

Combinando compuertas se pueden implementar funcionesbooleanas.

Este circuito implementa la siguiente función: F(x,y,z) = x+yz

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 20: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Ejemplo: función mayoría

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 21: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Compuertas lógicas combinadas

NAND y NOR son doscompuertas lógicascombinadas.

Con la identidad deMorgan se puedenimplementar con AND uOR.

Son más baratas ycualquier operaciónbásica se puederepresentar usándolascualquiera de ellas (sinusar la otra)?.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 22: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

NAND y NOR

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 23: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Ejemplos

NOT usando NAND: simplemente unir las dos entradas.

Utilizando solo NAND o NOR realizar circuitos con la mismafuncionalidad que el AND y OR.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 24: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Circuitos combinatorios

Producen una salida específica al (casi) instante que se leaplican valores de entrada.

Implementan funciones booleanas.

La aritmética y la lógica de la CPU se implementan con estoscircuitos.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 25: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Sumador

Como podemos construir uncircuito que sume dos bits X e Y?

F(X ,Y ) = X +Y (sumaaritmética)

Que pasa si X = 1 e Y = 1?

X Y Suma carry0 0 0 00 1 1 01 0 1 01 1 0 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 26: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Semi-Sumador

Podemos usar un XOR para lasuma y un AND para el carry.

A este circuito se lo llamasemi-sumador.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 27: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Sumador

Co 1X 1Y 1

1 0

sumadorX

Y

Ci

Co

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 28: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Sumador: estructura interna

Semisumador

X

Y

Ci

Co

Semisumador

C

C

X

Y

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 29: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Sumador: estructura interna y tabla de verdad

X Y Ci Suma Co0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 30: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Sumador de 4 bits

A4 A3 A2 A1

+ B4 B3 B2 B1

C5 C4 C3 C2 C1

A1

B1

AsSS

AsS

AsS

Ae

AsS

Ae

AeA2B2

A3B3

A4B4

C1

C2

C3

C4

C5

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 31: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Decodificadores

Los decodificadores de n entradas pueden seleccionar una de2n salidas.

Son ampliamentes utilizados.

Por ejemplo:Seleccionar una locación en una memoria a partir de unadirección colocada en el bus memoria.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 32: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Decodificadores: ejemplo

Decodificador 2-a-4:

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 33: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Multiplexores

Selecciona una salida a de variasentradas.

La entrada que es seleccionadacomo salida es determinada porlas líneas de control.

Para seleccionar entre nentradas, se necesitan log2nlíneas de control.

DemultiplexorExactamente lo contrario almultiplexor.Dada una entrada ladirecciona entre n salidas,usando log2n líneas decontrol.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 34: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Multiplexor: ejemplo

Multiplexor 4-a-1:

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 35: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Función mayoría

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 36: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Función mayoría con multiplexor

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 37: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Ejemplo

Construir una ALU de 1 bit.

3 entradas:A, B, carry.

4 operaciones:A.B, A+B, NOT B, Suma(A,B,Carry).

Salidas:Resultado, Carry out.

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 38: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

ALU de 1 bit

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 39: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

ALU de 8 bits

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 40: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

Memoria ROM

Entradas SalidasI4 I3 I2 I1 I0 A7 A6 A5 A4 A3 A2 A1 A0

0 0 0 0 0 1 0 1 1 0 1 1 00 0 0 0 1 0 0 0 1 1 1 0 10 0 0 1 0 1 1 0 0 0 1 0 10 0 0 1 1 1 0 1 1 0 0 1 0

. .

. .

. .1 1 1 1 0 0 1 1 1 0 1 0 11 1 1 1 1 0 0 1 1 0 0 1 1

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas

Page 41: Organización del Computador 1 Lógica Digital 1: álgebra Compuertas lógicas Una compuerta es un dispositivo electrónico que produce un resultado en base a un conjunto de valores

Introducción Circuitos Bloques

ROM con decoder

Dr. Ing. Marcelo Risk Organización del Computador 1 Lógica Digital 1: álgebra de Boole y compuertas