Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
• Historia
Historia
Generación Años Características
2
Primeras “computadoras”
Ábacos
Calculadoras mecánicas
3
Maquinas diferenciales de Babbage
1822: Primera “computadora“ (mecánica)
Usaba el método de las diferencias finitas
para el cálculo de polinomios de 2do
grado.
Requería aprox. 25.000 partes.
Fracaso en el intento
4
Maquina analítica (1834)
Primera Computadora Digital
(mecánica)
Calculaba cualquier función
algebraica y almacenaba
números.
Se programaba con tarjetas.
5
Harvard Mark I (1939-1944)
• IBM y la universidad de Harvard
• Electromecanico, 760.000 ruedas!
• 800km de cables!
• Basado en la maquina analitica
de Babagge
• Decimal
• 0.3 a 10 segundos por cálculo
• Programable mediante una cinta de papel
• Se uso hasta 1959
6
Primera Generación
1940-1955
Utilizan tubos al vacío
Enormes (20,000 tubos) y lentas (un ciclo 1 seg.)
Un solo grupo diseñaba, construía, programaba, operaba
y mantenía cada máquina.
Toda la programación se hacía en lenguaje máquina
(conectando cables en un tablero por ejemplo).
No existían los sistemas operativos.
En 1950 se introducen las tarjetas perforadas.
7
Atanasoff Berry Computer
(1939 - 1942)
Primera computadora digital
(binaria)
No era de propósito general
Resolvía sistemas de ecuaciones
lineales.
John Atanasoff y Clifford Berry de
la Iowa State University.
8
Colossus (1943)
Desarrollo Británico
Diseñada para descrifar los
mensajes encriptados por los
alemanes
Participo Turing
No se conoció hasta los 80
(Top Secret)
10
ENIAC - Detalles
Decimal (no binaria)
20 acumuladores de 10 dígitos
Programada manualmente usando switches
18,000 válvulas
30 toneladas !
2.40 m ancho x 30 m largo !
140 kW de consumo
5,000 adiciones por segundo
500 Flops
11
12
El modelo de von Neumann
Antes: programar era
conectar cables…
Hacer programas era mas
una cuestión de ingeniería
electrónica
Cada vez que había que
calcular algo distinto
había que reconectar
todo.
Mauchly and Eckert (ENIAC) documentaron la
idea de almacenar programas como base de la
EDVAC
Pero no lo publicaron…
13
John Von Neumann
1903 (Hungría) – 1957
Dr. en matemática y química
Publicó y publicitó la idea de
programa almacenado en
memoria
No esta claro que se le haya
ocurrido a él…
14
Von Neumann/Turing
15
Manchester Mark I (1948)
Tambien llamada Baby
Usada para demostrar el
concepto de programa
almacenado
En 1948 se contrató a
Turing para el desarrolo
de un lenguaje de
programación para la
máquina
16
Primer programa de la HM1
000 CI = S
001 A=A-S
010 A=-S
011 If A < 0, CI = CI + 1
100 CI = CI + S
101 A=A-S
110 S=A
111 HALT
17
UNIVAC (1949)
Primera computadora comercial
Eckert-Mauchly Computer Corporation
(Universal Automatic Computer)
18
19
Tarjetas perforadas
20
JOHNNIAC (1954)
Clone de la IAS
Máquina que funcionaba
con tarjetas.
21
IBM 650 (1955)
Primera computadora producida en masa
Fuera de circulación en 1969
22
IBM 704 (1955)
Primera máquina
comercial con
hardware de punto
flotante
5 KFLOPS.
23
Segunda generación
1955-1966
Se introducen los transistores.
Más baratos
Mas Chicos
Menos disipación de calor
Silicio (arena)
Distinción entre diseñadores, constructores, programadores,
operadores y personal de mantenimiento.
Mainframes en salas acondicionadas.
Se escribían los programas en papel, luego se perforaban las tarjetas
Los operadores toman las tarjetas del programa y colocan también los
del compilador.
Se crea el proceso por lotes que agrupa trabajos.
Nace la microprogramación
24
Transistor (1947)
25
FORTRAN (1957)
Primer compilador FORTRAN para
IBM 704
(Formula Translator)
26
IBM 1401(1959)
4KB de memoria expandible a 16KB.
Buena para leer tarjetas, copiar cintas e imprimir resultados,
Mala para cáclulos numéricos.
Se utilizaba con fines comerciales (bancos, etc.)
27
IBM 7094 (1962)
• Buena para hacer cómputos
• Se utilizaba con fines científicos.
28
IBM 7094 (1962)
30
DEC PDP-1 (1961)
4K de palabras de 18 bits.
US$ 120,000
< 5% del precio
de la IBM 7094
31
Primer video-juego.
Estudiantes de MIT (1962)
33
Tercera Generación
1965-1980
Se introducen los circuitos integrados
Bajan los costos
Sube el desempeño
Se introduce la multiprogramación
tiempo compartido entre usuarios
Se introducen los discos duros
34
Circuitos integrados
Primer circuito integrado
Jack Kilby (1958)
1 transistor, un capacitor, y 3
resistencias
10x15 mm
Pentium 4
55 millones de transistores
Un pelo = 75 micrones
Transistor actual = 0.3 micrones!
35
IBM 360 (1964)
Multiprogramación
Terminales bobas
Software compatible con
IBM 7094, 1401 entre
otros.
Aparece el byte de 8bits
36
DEC PDP-8 (1964)
Primer minicomputador
No necesita una habitación con
aire acondicionado
Lo bastante pequeño para
colocarlo en una mesa de
laboratorio
US$ 16,000
37
Fundación de Intel (1968)
38
Lenguaje C (1972)
#include
main()
{
for(;;)
printf("Hello world..."\n);
39
Cray 1 (1976)
Seymour Cray
Primera supercomputadora
Procesamiento vectorial
12 unidades procesando en
paralelo
Aprox. 120 MFlops
40
MULTICS (1976)
Impulso en el desarrollo de SO “timesharing”
41
Primer microprocesador en un chip Intel
43
Apple I (1976)
44
Apple II (1978)
• Se podía aumentar la RAM
• Tenía 8 slots de expansión
45
Microsoft (1978)
46
Cuarta generación
Desde 1980
Usan VLSI (large scale integration).
> 100,000 componentes por chip
Facilita la creación de microprocesadores
Intel 8080 (8 bits)
IBM PC (1981) con DOS.
Intel 80286, 80386 y 80486.
Aparecen las terminales gráficas (GUI)
Macintosh
Microsoft “adopta” GUI y desarrolla Windows (sobre DOS)
Aparecen la filosofía “RISC”
47
IBM PC (1981)
Usa el Intel 8088
Sistema DOS (Microsoft)
1983: XT, con disco rígido
48
Commodore 64 (1982)
49
Sony introduce el CD (1984)
50
Macintosh (1984)
51
Linux (1991)
52
Pentium (1993)
53
Resumen
Tubos de vacío - 1946-1957
Transistores - 1958-1964
Small scale integration (SSI) – hasta 1965
Hasta 100 dispositivos en un chip
Medium scale integration (MSI) - hasta 1971
100-3,000 dispositivos en un chip
Large scale integration (LSI) - 1971-1977
3,000 - 100,000 dispositivos en un chip
Very large scale integration (VSLI) - 1978 -1991
100,000 - 100,000,000 dispositivos en un chip
Ultra large scale integration (ULSI) – 1991 -
Mas de 100,000,000 dispositivos en un chip
54
Desarrollo
Moore’s Law (1965)
Gordon Moore, fundador de Intel
“La densidad de transistores en un circuito
integrado se duplicara cada año”
Versión contemporania:
“La densidad de chips de silicio se duplica cada 18
meses.”
55
56
Desarrollo
Rock’s Law
Arthur Rock, ejecutivo de finanzas de Intel
“El costo de equipamiento necesario para construir
semiconductores se duplicará cada cuatro años”
En 1968, construir una planta para chips costaba alrededor
de US$ 12,000
57
Historical Development
Rock’s Law
En 2003, una fábrica de chips costaba aprox.
US$ 2,500 millones.
58
Intel (1)
8080
Primer microprocessor de uso general
8 bit
Usado en la primer PC – Altair
8086
Mucho más poderoso
16 bit
Cache de instruciones, prefetch de instrucciones
8088 (bus externo de 8 bits) – Primera PC de IBM
80286
Direcciona 16 Mbytes de memoria
59
Intel (2)
80386
32 bit
Soporte para multitarea
80486
Cache y pipeline de instrucciones
co-procesador matématico
Pentium
Superscalar
Varias instrucciones ejecutando en paralelo
Pentium Pro
Predicción de saltos
Ejecución especulativa
Pentium II
MMX, procesamiento de graficos, videos & audio
60
Intel (3)
Pentium III
Más instrucciones de punto flotante para gráficos
Pentium 4
Mejoras en punto flotante y multimedia
Hiperthreading
Itanium
64 bit
Itanium 2
Mejoras en hardrware para aumentar la velocidad
Mirar páginas de Intel!
61
Algunos Links
http://www.computerhistory.org/
http://www.intel.com/
Intel Museum
http://www.ibm.com/ibm/history
http://www.dec.com
Charles Babbage Institute
62
Libros:
Andrew S. Tanenbaum, Structured Computer Organization, Prentice
Hall, 4ta edición (en adelante).
William Stallings, Computer Organization and Architecture, Prentice
Hall, 5ta edición (en adelante).
Linda Null, Julia Lobur, The Essentials of Computer Organization and
Architecture, Jones and Bartlett, 2da edición.
Otros recursos:
www.dc.uba.ar/people/materias/oc1verano
Internet!
63
10GIIN Tecnología y Organización
de Computadores
65
Conceptos básicos
66
Introducción
Por qué estudiar organización y arquitectura
de computadoras?
Diseñar mejores programas de base:
• compiladores, sistemas operativos, y drivers
Optimizar programas
Construir computadoras
Evaluar su desempeño
Entender los “compromisos” entre poder de
computo, espacio y costos
67
Arquitectura vs Organización
Arquitectura: atributos visibles al programador
Set de instrucciones, bits utilizados para representar los
datos, mecanismos de direccionamiento, entrada y salida,
etc.
Organización: cómo se implementan
Señales de control, tecnología de la memoria
Ejemplos:
• Las instrucciones las ejecuta directo el hardware o son
interpretadas por microprogramas?
• La multiplicación es realizadad directamente por un componente o
se realizan muchas sumas?
68
Arquitectura vs. Organización
69
Componentes
No hay una clara distinción entre asuntos
relacionados con la organización y los
relevantes con la arquitectura
Principio de equivalencia Hardware-Software:
“Cualquier cosa que puede ser hecha por software
puede ser hecha en hardware y cualquier cosa
que puede ser hecha con hardware puede ser
hecha con software”
70
Estructura vs. Función
La Estructura es la forma en que los
componentes se relacionan entre sí.
La función es la operación que realizan los
componentes individuales como parte de una
estructura
71
Funciones
Procesamiento de Datos
Almacenamiento de datos
Transferencia de Datos
Control
72
Visión Funcional
Transferencia
de datos
Control
Almacenamiento Procesamiento
de datos de datos
73
Operaciones (Transferencia de Datos)
Control
Almacenamiento Procesamiento
de datos de datos
74
Operaciones (Almacenamiento)
Transferencia
de datos
Control
Almacenamiento Procesamiento
de datos de datos
75
Operaciones (procesamiento desde/hasta
almacenamiento)
Transferencia
de datos
Ejemplo: Modificar un
archivo
Control
Almacenamiento Procesamiento
de datos de datos
76
Operaciones (procesamiento desde
almacenamiento a E/S)
Transferencia
de datos Ejemplo: Imprimir un
archivo
Control
Almacenamiento Procesamiento
de datos de datos
77
Estructura (computadora)
Unidad Central de
Memoria
Procesamiento Entrada - Salida
principal
(CPU)
Sistema de Interconexión
78
Estructura (CPU)
Unidad Central de
Procesamiento
(CPU)
Sistema de Interconexión
79
Estructura (UC)
Unidad de
Control
Lógica Memoria de
control
Secuencial
Unidad de control de registros y decodificadores
80
Un ejemplo
Un aviso de segunda mano…
82
Algunas abreviaturas
Hertz = ciclos de reloj por segundo (frecuencia)
1 MHz = 1,000,000 Hz
1GHz = 1,000 MHz
La velocidad del procesador se mide en MHz o GHz.
Byte = unidad de almacenamiento
1 KB = 210 = 1024 Bytes
1 MB = 220 = 1,048,576 Bytes
La memoria principal (RAM) se mide en MB
El almacenamiento en disco se mide en GB para sistemas chicos, en TB
para sistemas mas grandes.
Word (palabra) = unidad de transferencia: cantidad de bits
que pueden moverse simultáneamente dentro de la CPU
8 bits, 16 bits, 32 bits, 64 bits
83
Algunas abreviaturas
Medidas de tiempo y espacio:
• Mili- (m) = milésima = 10 -3
• Micro- () = millonésima = 10 -6
• Nano- (n) = mil millonésima= 10 -9
• Pico- (p) = billonésima = 10 -12
• Femto- (f) = mil billonésima = 10 -15
84
Un ejemplo
Milisegundo = milésima de segundo
El tiempo de acceso de los HD suele ser de 10 a 20
milisegundos.
Nanosegundo = mil millonésima de segundo
El tiempo de acceso a RAM suele ser de 50 a 70
nanosegundos.
Micron (micrómetro) = millonésima de un metro
Los circuitos en los chips de una computadora suelen
medirse en micrones.
85
Un ejemplo
Notar que el tiempo de un ciclo es inversamente
proporcional a la frecuencia del reloj.
Un bus operando a 133 MHz tiene un tiempo de ciclo
de 7.52 nanosegundos (T = 1/F):
Volvamos al aviso...
86
Un ejemplo
88
Un ejemplo
89
Un ejemplo
La capacidad de HD determina
la cantidad y el tamaño de los
datos que podemos almacenar.
90
Un ejemplo
91
Un ejemplo
Los puertos permiten el
movimiento de datos entre el
sistema y los dispositivos
externos.
92
Un ejemplo
93
Un ejemplo
Los buses del sistema puede ser
ampliados con buses dedicados a la
E/S. El PCI, peripheral component
interface, es un ejemplo.
94
Un ejemplo
El numero de veces por segundo que la imagen del
monitor se refresca se llama “tasa de refresco”. El
dot pitch se relaciona con cuan clara es la imagen.
2
Estructura funcional de los computadores
• Estructuras básicas de interconexión
• El conjunto de caminos que conectan los diferentes módulos constituye la
estructura de interconexión.
• El diseño de esta estructura dependerá de los intercambios que se tengan que
hacer entre los módulos.
• Diferentes estructuras de interconexión para la arquitectura de un computador:
E/S a través de la CPU: La CPU y los módulos de E/S comparten la misma vía de
acceso a memoria, por lo que la CPU debe parar sus cálculos al tener que controlar
todos los intercambios. No es posible el acceso directo a memoria desde los módulos
de E/S. Es la forma más económica, pero reduce el rendimiento de la CPU.
3
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Bus de E/S: Un conjunto de líneas que se comparten por todos los módulos. En un
instante sólo un módulo puede transmitir de forma satisfactoria, y una o más de las
unidades deben encargarse de controlar la utilización del bus. Es simple y flexible y se
ha convertido en estándar
4
• Estructuras básicas de interconexión
Conexión de memoria
• Recibe y envía datos
• Recibe direcciones (de ubicaciones)
• Recibe señales de control
– Lee
– Escribe
– Sincronización
5
Estructura funcional de los computadores
• Estructuras básicas de interconexión
6
Estructura funcional de los computadores
• Estructuras básicas de interconexión
7
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Conexiones de CPU
8
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Buses
9
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Que es un Bus?
• Una vía de comunicación que conecta dos o más dispositivos
• Usualmente transmitido
• Frecuentemente agrupados
Una cantidad de canales en un bus
Ej. Bus de datos de 32 bits es 32 canales separados de un
solo bit
10
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Bus de datos
• Lleva datos
Recuerde que no hay diferencia entre "datos" e
"instrucción" en este nivel
• El ancho es un factor determinante del rendimiento
8, 16, 32, 64bit
11
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Bus de direcciones
12
13
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Bus de Control
14
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Esquema de interconexión de los buses
15
Arquitectura de la Capa física de los buses
16
Estructura funcional de los computadores
• Estructuras básicas de interconexión
Tipos de Buses
• Dedicado
Separar datos y direcciones
• Multiplexado
Líneas compartidas
Dirección válida o línea de control válida de datos
Ventaja: menos líneas
Desventajas
Control más complejo
Máximo rendimiento
17
Estructura funcional de los computadores
18
Estructura funcional de los computadores
• Stallings, chapter 3
• www.pcguide.com/ref/mbsys/buses/
19
Estructura funcional de los computadores
Concepto de lenguaje máquina
20
Estructura funcional de los computadores
Concepto de lenguaje máquina
Lenguaje máquina
21
Estructura funcional de los computadores
Concepto de lenguaje máquina
Instrucciones máquina
22
Estructura funcional de los computadores
23
Estructura funcional de los computadores
•Representación de la instrucción.
Significado de cada uno de los bits.
24
Estructura funcional de los computadores
25
Estructura funcional de los computadores
26
Estructura funcional de los computadores
• Parámetros que caracterizan las prestaciones de un computador
Se define rendimiento de un sistema como la capacidad que tiene dicho sistema para
realizar un trabajo en un determinado tiempo. Es inversamente proporcional al tiempo,
es decir, cuanto mayor sea el tiempo que necesite, menor será el rendimiento.
Los computadores ejecutan las instrucciones que componen los programas, por lo tanto
el rendimiento de un computador está relacionado con el tiempo que tarda en ejecutar
los programas. De esto se deduce que el tiempo es la medida del rendimiento de un
computador.
27
Estructura funcional de los computadores
• Parámetros que caracterizan las prestaciones de un computador
El rendimiento del procesador depende de los siguientes parámetros:
28
Estructura funcional de los computadores
Ciclos por instrucción (CPI) : las instrucciones se descomponen en microinstrucciones,
que son operaciones básicas que se hacen en un ciclo de reloj. En un programa se llama CPI al
promedio de microinstrucciones que tienen las instrucciones del programa, es decir, los ciclos de
reloj que se tarda de media en ejecutar una instrucción.
29
Estructura funcional de los computadores
Rendimiento de un procesador para un programa concreto es un factor
inversamente proporcional al tiempo que tarda en ejecutar dicho programa.
30
Estructura funcional de los computadores
31
Estructura funcional de los computadores
Ejemplo:
Dadas las características de un programa calcular el tiempo que tarda en ejecutarse el
programa y su rendimiento. Se sabe que la CPU trabaja a 1GHz. El programa se compone de
19 instrucciones de tres tipos: A, B y C y cada tipo de instrucción tiene un número de
microinstrucciones diferente según indica la tabla:
32
33
GRACIAS
10GIIN Tecnología y Organización
de Computadores
Niveles conceptuales de
descripción de un computador
Niveles conceptuales de descripción de un computador
2
Diferentes niveles en la arquitectura de un
computador
• Un computador digital es una máquina que puede
resolver problemas ejecutando ciertas instrucciones.
• Un programa es una secuencia de instrucciones.
• Los circuitos electrónicos de cada computadora
reconocen un conjunto limitado de instrucciones
muy simples.
• Lenguaje máquina es el conjunto de instrucciones
básicas de una computadora.
3
Concepto de lenguaje máquina y ensamblador
• Es un lenguaje de programación de
bajo nivel para los computadores,
microprocesadores, microcontroladores
y otros circuitos integrados
programables.
• Implementa una representación
simbólica de los códigos de máquina
binarios y otras constantes necesarias
para programar una arquitectura dada
de CPU.
• Constituye la representación más
directa del código máquina específico
para cada arquitectura legible por un
programador
4
Concepto de lenguaje máquina y ensamblador
Cobol
Alto nivel Pascal
Basic
Java
C
Mediano BCPL
nivel
Maquina 001110011010100
5
Concepto de lenguaje máquina y ensamblador
6
Concepto de lenguaje máquina y ensamblador
•Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés,
ADD, SUB, DIV, etc.; en español, SUM, RES, DIV,etc. Una instrucción típica de
suma sería:
ADD M, N, P
•Esta instrucción podría significar “sumar el número contenido en la posición
de memoria M al número almacenado en la posición de memoria N y situar el
resultado en la posición de memoria P”.
7
Concepto de lenguaje máquina y ensamblador
8
Ventajas del lenguaje ensamblador
• Los lenguajes ensambladores presentan la ventaja frente a
los lenguajes máquina de su mayor facilidad de
codificación y, en general, su velocidad de cálculo.
9
Desventajas del lenguaje ensamblador
10
• Diferentes niveles en la arquitectura de un
computador
La jerarquía de niveles de una computadora
12
TRADUCTORES
programa en L2
compilación (compilador)
interpretación (intérprete)
programa en L1
13
Máquinas Virtuales
M2 con L2 nivel 2
M1 con L1 nivel 1
14
Jerarquía de niveles
15
MÁQUINAS MULTINIVEL ACTUALES
nivel 6 user
• La mayoría de las
nivel 5 Lenguajes de alto nivel
máquinas actuales
Traducción (compilador)
constan de 6 niveles.
nivel 4 Lenguaje ensamblador • Los microprogramas son
Traducción(ensamblador)
directamente ejecutados
nivel 3 Sistema operativo por el hardware.
Interpretación (sistema operativo)
Interpretación (microprograma)
nivel 1 Microprogramación
Ejecutados directamente
16
Nivel 0: nivel de lógica digital
• Es el hardware de la máquina.
• El nivel inferior sería el nivel de dispositivo.
• En este nivel:
• Puertas lógicas
• Circuitos integrados
• Circuitos combinacionales
• Circuitos aritméticos
• Relojes
• Memorias
• Microprocesadores
• Buses
17
Nivel 1: nivel de microprogramación
18
Nivel 2: nivel de máquina convencional
19
Nivel 3: nivel del sistema operativo
• La mayoría de las instrucciones de este nivel están
también en el nivel 2 pero además tiene un nuevo
conjunto de instrucciones, una organización
diferente de la memoria, posibilidad de ejecutar 2 o
más programas
• Las nuevas instrucciones las interpreta el sistema
operativo.
• Las que son idénticas a las del nivel 2 las lleva a cabo
el microprograma.
20
Nivel 4: nivel del lenguaje ensamblador
21
Nivel 5: nivel de lenguajes de alto nivel
22
Level 6: Nivel Usuario
23
10GIIN Tecnología y Organización
de Computadores
Circuitos combinacionales
Circuitos lógicos combinacionales
25
Introducción a la electrónica digital
26
Introducción a la electrónica digital
27
Introducción a la electrónica digital
28
Introducción a la electrónica digital
Sistema de numeración
29
Introducción a la electrónica digital
Sistema de numeración
30
Introducción a la electrónica digital
Sistema de numeración: Sistema binario
31
Introducción a la electrónica digital
Conversión de un número binario a decimal
Actividad:
32
Introducción a la electrónica digital
Sistema de numeración hexadecimal
33
Introducción a la electrónica digital
34
Introducción a la electrónica digital
Conversión de un número decimal al Sistema hexadecimal
Actividad:
35
Introducción a la electrónica digital
Conversión de un número hexadecimal a decimal
Actividad:
36
Introducción a la electrónica digital
Conversión de un número binario a hexadecimal
Actividad:
37
Introducción a la electrónica digital
Conversión de un número hexadecimal a binario
Actividad:
38
Actividades
39
GRACIAS
10GIIN Tecnología y Organización
de Computadores
Circuitos combinacionales II
Circuitos lógicos combinacionales
Expresiones Canónicas
Minterm y Maxterm
Implementación de funciones con minterm y maxterm
Circuitos lógicos combinacionales
Circuitos lógicos combinacionales
Implementación de funciones booleanas con AND/OR y OR/AND
Implementación con puertas NAND, NOR
2
Expresiones Canónicas
3
Minterm y Maxterm
• Se llama término canónico a aquél que contiene a TODAS las variables de una
función dada.
– Minitérmino o minterm es un producto canónico
– Maxitérmino o maxterm es una suma canónica
• Ejemplo: Sea F(a,b,c,d). Entonces los términos a’· b’·c·d y a·b·c·d’ son
minterms y los términos a’+b+c’+d’ y a+b’+c+d’ son maxterms.
• Para n variables, se tienen 2n minterms y 2n maxterms
• Cualquier función booleana pueden expresarse en forma de:
– Suma de minterms : 1ª Forma canónica
– Producto de maxterms: 2ª Forma canónica
• Numeración:
– Minterm: variable 1, variable 0
Ejemplo: a · b · c · d es el minterm 3 (0011). Se representa como m3
– Maxterm: variable 0, variable 1
Ejemplo: a+b+c+d es el maxterm 9 (1001). Se representa como M9
4
Implementación de funciones con minterm y
maxterm
1ª Forma canónica: suma de minterms
F= mi ({i / F(i)=1})
2ª Forma canónica: producto de maxterms
F= Mi ({i / F(i)=0})
Ejemplo:
F(A,B,C) = m(2,3,4,6) toma los 1’s
F(A,B,C) = M(0,1,5,7) toma los 0’s
5
Circuitos lógicos combinacionales
6
Circuitos lógicos combinacionales
•Pin 1: la entrada A de la compuerta 1.
•Pin 2: la entrada B de la compuerta 1.
•Pin 3: aquí veremos el resultado de la operación de la primera compuerta.
14 •Pin 4: la entrada A de la compuerta 2.
•Pin 5: la entrada B de la compuerta 2.
•Pin 6: aquí veremos el resultado de la operación de la segunda compuerta.
•Pin 7: normalmente GND: Es el polo negativo de la alimentación,
generalmente tierra.
•Pin 8: aquí veremos el resultado de la operación de la cuarta compuerta.
8 •Pin 9: la entrada B de la compuerta 4.
•Pin 10: la entrada A de la compuerta 4.
1 •Pin 11: aquí veremos el resultado de la operación de la tercer compuerta.
•Pin 12: la entrada B de la compuerta 3.
7 •Pin 13: la entrada A de la compuerta 3.
7
Implementación de funciones booleanas con
AND/OR
8
9
Implementación de funciones booleanas con
AND/OR
• Funciones expresadas como suma de productos (AND/OR)
Nivel 1 Nivel 2
10
Implementación de funciones booleanas con
OR/AND
11 Nivel 1 Nivel 2
12
Diseño de Circuitos Lógicos Combinacionales
Procedimiento:
1. Interprete el problema y establezca la tabla de verdad
para describir su operación.
2. Escriba el término AND (producto) para cada una de las
salidas que sean 1.
3. Escriba la expresión de suma de productos (SOP) para la
salida.
4. Simplifique la expresión de salida, si es posible.
5. Implemente el circuito para la expresión final
simplificada.
Diseño de Circuitos Lógicos Combinacionales
14
Diseño de Circuitos Lógicos Combinacionales
Diseñe un circuito lógico que tenga tres entradas A, B y C y cuya salida sea
alta solo cuando la mayor parte de las entradas sean altas.
Paso 1: Establecer la tabla de verdad. Paso 2: Escribir el termino AND para cada
salida que sea 1.
15
Diseño de Circuitos Lógicos Combinacionales
Diseñe un circuito lógico que tenga tres entradas A, B y C y cuya salida sea
alta solo cuando la mayor parte de las entradas sean altas.
16
Implementación de funciones booleanas con
AND/OR
yz
x 00 01 11 10
• Ejemplo:
f(x,y,z) =∑(1,3,6,7) 0 0 1 1 0
X Y Z F 1 0 0 1 1
Esta
0 0 0 0 notación
0 0 1 1 significa la Agrupar los 1’s de F
0 1 0 0 suma de los
minitérminos f(x,y,z) = x'z + xy
0 1 1 1 1, 3 6 y 7
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
17
Implementación de funciones booleanas con
OR/AND yz
x 00 01 11 10
Ejemplo
0 0 1 1 0
f(x,y,z) =∑(1,3,6,7)
F
1 0 0 1 1
x y z F F yz
x 00 01 11 10
0 0 0 0 1
0 0 1 1 0 0 1 0 0 1
0 1 0 0 1
0 1 1 1 0 F 1 1 1 0 0
1 0 0 0 1
1 0 1 0 1
1 1 0 1 0 Agrupar los 1’s en F y …
1 1 1 1 0
F x·z x·y
18
Implementación de funciones booleanas
con OR/AND
… realizar la negación de la función negada
yz
F x·z x·y x 00 01 11 10
0 0 1 1 0
F F x·z x·y 1 0 0 1 1
F x·z·x·y
F ( x z )·(x y)
19
Implementación de funciones booleanas
con OR/AND
Forma directa: yz
También se habría llegado a esa expresión
x 00 01 11 10
agrupando directamente los 0`s de F pero:
0 0 1 1 0
o Cada agrupación de ceros es una suma de
variables donde
1 0 0 1 1
o las variables que siempre valen 1
aparecen NEGADAS
o las variables que siempre valen 0
aparecen AFIRMADAS
o F es el el producto de todas las sumas F ( x y )( x z )·
20
Implementación con puertas NAND
– OR con NANDs
21
Implementación con puertas NAND en dos niveles
22
Implementación con puertas NOR
– OR con NORs
23
Implementación con puertas NOR en dos niveles
24
Introducción a la electrónica digital
25
GRACIAS
10GIIN Tecnología y Organización
de Computadores
2
Formato del Mapa de Karnaugh
3
Formato del Mapa de Karnaugh
Los cuadros se marcan de forma tal que los cuadrados horizontales adyacentes solo
difieran en una variable.
Se consideran adyacentes
Se consideran adyacentes
4
Formato del Mapa de Karnaugh
A fin de que los cuadros adyacentes (horizontales y verticales) difieran en una sola
variable, el orden es el siguiente:
De arriba a bajo: A B, A B, A B, A B
De izquierda a derecha: C D, C D, C D, C D
X= A B C D + A B C D + A B C D + A B C D
5
Agrupamiento
Agrupamientos de grupos de dos
6
Agrupamiento
7
Agrupamiento
Agrupamientos de grupos de cuatro
8
Agrupamiento
9
Agrupamiento
El agrupamiento en octetos de unos elimina las tres variable que aparece en forma
complementada y no complementada
10
Agrupamiento
11
Método de Mapas de Karnaugh
12
Condiciones “no importa”
El diseñador del circuito tiene la libertad para hacer que la salida para cualquier
condición “no importa” se aun 0 o un 1 para producir la expresión de salida más
simple.
13
Diseño de Circuitos Lógicos Combinacionales
Procedimiento:
1. Interprete el problema y establezca la tabla de verdad
para describir su operación.
2. Escriba el término AND (producto) para cada una de las
salidas que sean 1.
3. Escriba la expresión de suma de productos (SOP) para la
salida.
4. Simplifique la expresión de salida, si es posible.
5. Implemente el circuito para la expresión final
simplificada.
Diseño de Circuitos Lógicos Combinacionales
15
Diseño de Circuitos Lógicos Combinacionales
Diseñe un circuito lógico que tenga tres entradas A, B y C y cuya salida sea
alta solo cuando la mayor parte de las entradas sean altas.
Paso 1: Establecer la tabla de verdad. Paso 2: Escribir el termino AND para cada
salida que sea 1.
16
Diseño de Circuitos Lógicos Combinacionales
Diseñe un circuito lógico que tenga tres entradas A, B y C y cuya salida sea
alta solo cuando la mayor parte de las entradas sean altas.
17
Introducción a la electrónica digital
18
GRACIAS
10GIIN Tecnología y Organización
de Computadores
Análisis e implementación de
sistemas combinacionales
Circuitos lógicos combinacionales
2
Códigos BCD y GRAY
Código:
Código GRAY:
3
Integración de los sistemas numéricos
4
Códigos alfanuméricos
Código ASCII:
5
¿Qué es un Circuito Combinacional?
6
Síntesis o Diseño de Circuitos Combinacionales
Síntesis
Especificación
F(A, B, C ) = ...
A B C F
0 0 0 1
0 0 1 0
0 1 0 1 Simplificación
0 1 1 0
1 0 0 1 e implementación
1 0 1 0
1 1 0 0
1 1 1 1
7
¿Qué es un Circuito Combinacional?
NO es combinacional
SÍ es combinacional
8
Análisis de circuitos combinacionales
9
Módulos combinacionales básicos
MSI (Medium Scale of Integration)
Módulos combinacionales básicos
11
Codificador
ENTRADA DE ACTIVACION
(ENABLE)
Codificador binario
– Dispone de 2n entradas y n salidas: COD
ENTRADAS
SALIDAS
2nxn
– La salida proporciona el código binario del
canal de entrada activado.
12
Codificador
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
X = D4 + D5 + D6 + D7
Y = D2 + D3 + D6 + D7
Z = D1 + D3 + D5 + D7
13
Codificador
Problemas:
– ¿cuál sería la salida del codificador si se activan 2 entradas
simultáneamente?
p. ej: COD(0,1,0,0,1,0,0,0) según las expresiones de X, Y, Z,
sería XYZ=101, pero D5=0
– ¿cuál sería la salida si no se activa ninguna entrada?
COD(0,0,0,0,0,0,0,0) daría XYZ=000 , pero D0 = 0
0
0
0
1
0
0
1
0
14
Codificador
Soluciones
– Se introduce una señal de activación (enable) que permite activar o
desactivar al codificador
– Se realiza una priorización de las entradas. En caso de activación
simultánea por dos o más canales de entrada se toma la más
prioritaria (normalmente la de mayor peso)
D0
D1 8
D2
D3
D4
D5
D6
D7
8
Circuito
de
Prioridad
15
Codificador
Codificador BCD
– Ejemplo: TTL 74147 . Conversor 9 entradas a código BCD (binary
coded decimal)
– ¡¡OJO!! entradas y salidas activas a nivel bajo
16
Codificador
Aplicación:
– Teclado simple
17
Decodificador
SALIDAS
18
Decodificador
A0
D0
A1
D1
E A1 A0 D0 D1 D2 D3
D2 1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
E D3 0 X X 0 0 0 0
19
Decodificador
E
Implementación con puertas lógicas
DEC 2 x 4. Entradas activas a nivel alto y
salidas activas a nivel bajo con Enable
invertido
E A1 A0 D0 D1 D2 D3
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
1 X X 1 1 1 1
20
Decodificador
1er. codificador
Enable
2do. codificador
21
Decodificador
Display de 7 segmentos BCD a 7 segmentos:
22
Multiplexor
ENTRADA DE ACTIVACION
ENTRADAS
ENTRADAS
SALIDA
SALIDA
23 CONTROL CONTROL
Multiplexor
C1 C0 E3 E2 E1 E0 S
0 0 X X X F F
0 1 X X F X F
1 0 X F X X F
1 1 F X X X F
24
Multiplexor
25
Demultiplexor
Dispone de 1 una entrada, 2n salidas y n líneas de selección
Su función es enviar el valor presente a la entrada a uno de
los canales de salida utilizando las líneas de selección. Por
lo tanto realiza la función inversa del multiplexor.
En su implementación es muy parecido a un DEC nx2n
ENTRADA DE ACTIVACION
ENTRADA
SALIDAS
ENTRADAS
SALIDAS
26 CONTROL
Demultiplexor
S1 S0 E D0 D1 D2 D3 S1 S0 E
0 0 K K 0 0 0
0 1 K 0 K 0 0
1 0 K 0 0 K 0
1 1 K 0 0 0 K
D0
D1
D2
D3
27
Demultiplexor
S1 S0 E
S1 S0 E D0 D1 D2 D3
0 0 K K 1 1 1
0 1 K 1 K 1 1
D0
1 0 K 1 1 K 1
1 1 K 1 1 1 K D1
D2
D3
28
GRACIAS
10GIIN Tecnología y Organización
de Computadores
Análisis e implementación de
sistemas combinacionales
Circuitos lógicos combinacionales
2
Códigos BCD y GRAY
Código:
Código GRAY:
3
Integración de los sistemas numéricos
4
Códigos alfanuméricos
Código ASCII:
5
¿Qué es un Circuito Combinacional?
6
Síntesis o Diseño de Circuitos Combinacionales
Síntesis
Especificación
F(A, B, C ) = ...
A B C F
0 0 0 1
0 0 1 0
0 1 0 1 Simplificación
0 1 1 0
1 0 0 1 e implementación
1 0 1 0
1 1 0 0
1 1 1 1
7
¿Qué es un Circuito Combinacional?
NO es combinacional
SÍ es combinacional
8
Análisis de circuitos combinacionales
9
Módulos combinacionales básicos
MSI (Medium Scale of Integration)
Módulos combinacionales básicos
11
Codificador
ENTRADA DE ACTIVACION
(ENABLE)
Codificador binario
– Dispone de 2n entradas y n salidas: COD
ENTRADAS
SALIDAS
2nxn
– La salida proporciona el código binario del
canal de entrada activado.
12
Codificador
1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
X = D4 + D5 + D6 + D7
Y = D2 + D3 + D6 + D7
Z = D1 + D3 + D5 + D7
13
Codificador
Problemas:
– ¿cuál sería la salida del codificador si se activan 2 entradas
simultáneamente?
p. ej: COD(0,1,0,0,1,0,0,0) según las expresiones de X, Y, Z,
sería XYZ=101, pero D5=0
– ¿cuál sería la salida si no se activa ninguna entrada?
COD(0,0,0,0,0,0,0,0) daría XYZ=000 , pero D0 = 0
0
0
0
1
0
0
1
0
14
Codificador
Soluciones
– Se introduce una señal de activación (enable) que permite activar o
desactivar al codificador
– Se realiza una priorización de las entradas. En caso de activación
simultánea por dos o más canales de entrada se toma la más
prioritaria (normalmente la de mayor peso)
D0
D1 8
D2
D3
D4
D5
D6
D7
8
Circuito
de
Prioridad
15
Codificador
Codificador BCD
– Ejemplo: TTL 74147 . Conversor 9 entradas a código BCD (binary
coded decimal)
– ¡¡OJO!! entradas y salidas activas a nivel bajo
16
Codificador
Aplicación:
– Teclado simple
17
Decodificador
SALIDAS
18
Decodificador
A0
D0
A1
D1
E A1 A0 D0 D1 D2 D3
D2 1 0 0 1 0 0 0
1 0 1 0 1 0 0
1 1 0 0 0 1 0
1 1 1 0 0 0 1
E D3 0 X X 0 0 0 0
19
Decodificador
E
Implementación con puertas lógicas
DEC 2 x 4. Entradas activas a nivel alto y
salidas activas a nivel bajo con Enable
invertido
E A1 A0 D0 D1 D2 D3
0 0 0 0 1 1 1
0 0 1 1 0 1 1
0 1 0 1 1 0 1
0 1 1 1 1 1 0
1 X X 1 1 1 1
20
Decodificador
1er. codificador
Enable
2do. codificador
21
Decodificador
Display de 7 segmentos BCD a 7 segmentos:
22
Multiplexor
ENTRADA DE ACTIVACION
ENTRADAS
ENTRADAS
SALIDA
SALIDA
23 CONTROL CONTROL
Multiplexor
C1 C0 E3 E2 E1 E0 S
0 0 X X X F F
0 1 X X F X F
1 0 X F X X F
1 1 F X X X F
24
Multiplexor
25
Demultiplexor
Dispone de 1 una entrada, 2n salidas y n líneas de selección
Su función es enviar el valor presente a la entrada a uno de
los canales de salida utilizando las líneas de selección. Por
lo tanto realiza la función inversa del multiplexor.
En su implementación es muy parecido a un DEC nx2n
ENTRADA DE ACTIVACION
ENTRADA
SALIDAS
ENTRADAS
SALIDAS
26 CONTROL
Demultiplexor
S1 S0 E D0 D1 D2 D3 S1 S0 E
0 0 K K 0 0 0
0 1 K 0 K 0 0
1 0 K 0 0 K 0
1 1 K 0 0 0 K
D0
D1
D2
D3
27
Demultiplexor
S1 S0 E
S1 S0 E D0 D1 D2 D3
0 0 K K 1 1 1
0 1 K 1 K 1 1
D0
1 0 K 1 1 K 1
1 1 K 1 1 1 K D1
D2
D3
28
GRACIAS
10GIIN Tecnología y Organización
de Computadores
Análisis e implementación de
sistemas secuenciales
Circuitos lógicos secuenciales
2
Circuitos lógicos secuenciales
Como su nombre lo indica, los circuitos lógicos secuenciales requieren de un
medio por medio del cual los eventos pueden secuenciarse. La
denominación “secuencial” deriva justamente de la capacidad de
recordar la secuencia de valores que toman las señales.
• Los cambios de estado del circuito se controlan por medio de una señal de
reloj.
– Un reloj es un circuito especial que envía pulsos eléctricos a través del
circuito.
• Los relojes producen señales como la que se muestra
• Sincronización de los circuitos.
3
Presencia de Reloj
4
Concepto de biestable
• Es un circuito multivibrador (oscilador) que puede mantener
el valor de su salida indefinidamente, mientras no reciba
ordenes.
• Son células elementales de memoria, capaces de almacenar
un bit de información.
• Pueden adoptar dos estados estables: '0' y '1'.
• Clasificación:
– según utilicen o no una señal de reloj:
• Síncronos (con reloj) según se activen por flanco o nivel
– Latches (cerrojos), activos por flanco---> JK, T, D
– flip-flops, activos por nivel--->RS y D
• Asíncronos (sin reloj) --->RS
5
Latch R-S
6
Tipos de biestables
Biestable D
Cronograma del Biestable D
(disparado con el flanco de bajada)
9
Biestable RS
10
Biestable RS (disparado con el flanco de
bajada)
11
Biestable JK
12
Biestable JK (disparado con el flanco de
bajada)
13
Biestable T
14
15
15
Temporización en los flip-flops
• Tiempo de establecimiento (setup ts): tiempo mínimo que el
dato debe estar estable antes del flanco activo del reloj
• Tiempo de mantenimiento (hold th): tiempo mínimo que el
dato debe estar estable después del flanco activo del reloj
16
Temporización en los flip-flops (II)
• Tiempo de propagación (tpHL, tpLH)
17
Temporización en los flip-flops (II)
• El período mínimo de reloj depende de:
– el tiempo de propagación del biestable
– el tiempo de la lógica combinacional conectada al biestable
– el tiempo de setup
• fmax = 1 / ( tpbiestable + tpcomb + ts)
18
Aplicaciones
19
Aplicaciones
20
Aplicaciones
21
Aplicaciones
22
Conclusiones
• Biestables asíncronos
– las salidas responden inmediatamente a los valores de las
entradas
• Biestables síncronos:
– las salidas responden en función de la señal de reloj
• activos por nivel: cuando el reloj se encuentra en el nivel activo,
las salidas responden a todas las variaciones de las entradas.
• activos por flanco: cuando se produce el flanco, las salidas toman
el valor correspondiente a las entradas en dicho instante. Este
valor no se modificará hasta el siguiente flanco, aunque varíe el
valor de las entradas.
GRACIAS
Operación de transferencia
entre registros- Segunda parte
Suma binaria
Acarreo de 1 hacia la
siguiente posición
>
Suma binaria:
Representación de números con signo
Sistema de signo-magnitud:
>
Suma binaria:
Representación de números con signo
Sistema de complemento a 2:
Complemento a 1:
• Cambiar cada 0 por 1 y cada 1 por 0
El sistema
complemento a 2 es
el más común
Complemento a 2:
• Tomar el complemento a 1 del número y sumarle 1 a la porque facilita la
posición menos significativa suma y resta a
través de un mismo
hardware
>
Suma binaria:
Representación de números con signo
Sistema de complemento a 2:
Representación de números con signo:
>
Suma binaria:
Representación de números con signo
Extensión de signo:
• El tamaño del registro determina el número de dígitos binarios que se almacena para cada
número
• Generalmente se almacena con tamaños de múltiples pares: 4, 8, 16, 32 o 64 bits.
>
Suma binaria:
Representación de números con signo
Negación:
• Operación de convertir un número positivo en su equivalente negativo.
>
Suma binaria:
Representación de números con signo
Casos especiales en la representación de complemento a 2:
• Un numero con signo con valor de 1 en el bit de
signo y cero en todos los bits de magnitud, es
equivalente a -2N en decimal. Con N siendo el
número de bits de magnitud.
>
Suma en el sistema de complemento a 2
>
Suma en el sistema de complemento a 2
>
Suma de números binarios negativos
Suma binaria
Binario
Complemento 1
28 0 011100 Complemento 2
-33 1 100001 1 011110 Le sumo 1
-5
1
?
1 011111
Se suma el binario de 28 0 011100
El resultado da negativo
1 111011
0 000100 Complemento 1
1 Complemento 2
> Equivale a -510 1 000101 Le sumo 1
Suma binaria
Binario
Complemento 1
12 0 1100 Complemento 2
-4 1 0100 1 1011 Le sumo 1
8
1
?
1 1100
Se suma el binario de 12
0 1100
El resultado da negativo
1 1000
0 0111 Complemento 1
1 Complemento 2
> Equivale a 810 0 1000 Le sumo 1
Sume dos números negativo representados en 4 bits.
Suma binaria
Complemento 1
1 0110 Complemento 2
Le sumo 1
Binario 1
-9 1 1001 1 0111 Complemento 1
-4 1 0100 1 1011
Complemento 2
-13 ? Le sumo 1 1
Se suma el binario de -9
(las dos cajitas rojas)
1 1100
1 0111
El resultado da negativo
Desbordamiento 1 1 0011
Complemento 1 0 1100
Complemento 2 1
Equivale a -1310 Le sumo 1
> 1 1101
Desbordamiento aritmético
Desbordamiento:
>
Multiplicación de números binarios
>
Multiplicación de números binarios
• En el sistema de complemento a 2:
Pasos:
1. Se suma los dos dígitos hexadecimales en decimal, insertando mentalmente el
equivalente decimal para los dígitos mayores a 9.
2. Si la suma es de 15 o menor, puede expresar en forma directa como un dígito
hexadecimal.
3. Si la suma es mayor o igual a 16, se resta 16 y se acarrea un 1 hacia la posición
del siguiente dígito.
15
+ 12
27
- 16 Restamos
11 16
>
Aritmética hexadecimal:
resta
Pasos:
1. Se saca el complemento a 2 del sustraendo hexadecimal y luego se suma el minuendo.
Dos formas:
>
Aritmética hexadecimal:
resta
Pasos:
1. Se saca el complemento a 2 del sustraendo hexadecimal y luego se suma el minuendo.
F F F
-3 -A -5
C 5 A
+1
C 5 B
2. Luego procedemos a sumar
>
Operación de transferencia
entre registros- Segunda parte
Suma binaria
Acarreo de 1 hacia la
siguiente posición
>
Suma binaria:
Representación de números con signo
Sistema de signo-magnitud:
>
Suma binaria:
Representación de números con signo
Sistema de complemento a 2:
Complemento a 1:
• Cambiar cada 0 por 1 y cada 1 por 0
El sistema
complemento a 2 es
el más común
Complemento a 2:
• Tomar el complemento a 1 del número y sumarle 1 a la porque facilita la
posición menos significativa suma y resta a
través de un mismo
hardware
>
Suma binaria:
Representación de números con signo
Sistema de complemento a 2:
Representación de números con signo:
>
Suma binaria:
Representación de números con signo
Extensión de signo:
• El tamaño del registro determina el número de dígitos binarios que se almacena para cada
número
• Generalmente se almacena con tamaños de múltiples pares: 4, 8, 16, 32 o 64 bits.
>
Suma binaria:
Representación de números con signo
Negación:
• Operación de convertir un número positivo en su equivalente negativo.
>
Suma binaria:
Representación de números con signo
Casos especiales en la representación de complemento a 2:
• Un numero con signo con valor de 1 en el bit de
signo y cero en todos los bits de magnitud, es
equivalente a -2N en decimal. Con N siendo el
número de bits de magnitud.
>
Suma en el sistema de complemento a 2
>
Suma en el sistema de complemento a 2
>
Suma de números binarios negativos
Suma binaria
Binario
Complemento 1
28 0 011100 Complemento 2
-33 1 100001 1 011110 Le sumo 1
-5
1
?
1 011111
Se suma el binario de 28 0 011100
El resultado da negativo
1 111011
0 000100 Complemento 1
1 Complemento 2
> Equivale a -510 1 000101 Le sumo 1
Suma binaria
Binario
Complemento 1
12 0 1100 Complemento 2
-4 1 0100 1 1011 Le sumo 1
8
1
?
1 1100
Se suma el binario de 12
0 1100
El resultado da negativo
1 1000
0 0111 Complemento 1
1 Complemento 2
> Equivale a 810 0 1000 Le sumo 1
Sume dos números negativo representados en 4 bits.
Suma binaria
Complemento 1
1 0110 Complemento 2
Le sumo 1
Binario 1
-9 1 1001 1 0111 Complemento 1
-4 1 0100 1 1011
Complemento 2
-13 ? Le sumo 1 1
Se suma el binario de -9
(las dos cajitas rojas)
1 1100
1 0111
El resultado da negativo
Desbordamiento 1 1 0011
Complemento 1 0 1100
Complemento 2 1
Equivale a -1310 Le sumo 1
> 1 1101
Desbordamiento aritmético
Desbordamiento:
>
Multiplicación de números binarios
>
Multiplicación de números binarios
• En el sistema de complemento a 2:
Pasos:
1. Se suma los dos dígitos hexadecimales en decimal, insertando mentalmente el
equivalente decimal para los dígitos mayores a 9.
2. Si la suma es de 15 o menor, puede expresar en forma directa como un dígito
hexadecimal.
3. Si la suma es mayor o igual a 16, se resta 16 y se acarrea un 1 hacia la posición
del siguiente dígito.
15
+ 12
27
- 16 Restamos
11 16
>
Aritmética hexadecimal:
resta
Pasos:
1. Se saca el complemento a 2 del sustraendo hexadecimal y luego se suma el minuendo.
Dos formas:
>
Aritmética hexadecimal:
resta
Pasos:
1. Se saca el complemento a 2 del sustraendo hexadecimal y luego se suma el minuendo.
F F F
-3 -A -5
C 5 A
+1
C 5 B
2. Luego procedemos a sumar
>
Operación de transferencia
entre registros- cuarta parte
Contadores:
Síncronos
Asíncronos
Contadores asíncronos
>
Contadores asíncronos
1. Los pulsos de reloj se aplican sólo a la entrada CLK del flip-flop A. En consecuencia, el flip-flop A
conmutará (cambiará a su estado opuesto) cada vez que los pulsos de reloj hagan una transición
negativa (de ALTO a BAJO). Observe que J = K = 1 para todos los FFs.
2. la salida normal del flip-flop A actúa como la entrada CLK para el flip-flop B, por lo que el flip-flop B
conmutará cada vez que la salida de A cambie de 1 a O. De manera similar, el flip-flop C conmutará
cuando B cambie de 1 a O y el flip-flop D conmutará cuando C cambie de 1 a O.
3. las salidas de los FFs D, e, B y A representan un número binario de cuatro bits, en donde D es el
MSB. Vamos a suponer que todos los FFs se han borrado para quedar en el estado O (no se
muestran las entradas de LIMPIA). Las formas de onda en la figura de la lamina anterior muestran
que se sigue una secuencia de conteo binario de 0000 a 1111 a medida que se aplican pulsos de reloj
en forma continua.
4. Después de que ocurre la NGT (transición negativa) del quinceavo pulso de reloj, los FFs del
contador se encuentran en la condición 1111. En la dieciseisava NGT el flip-flop A cambia de 1 a O, lo
cual hace que el flip-flop B cambie de 1 a O y así en lo sucesivo, hasta que el contador queda en el
estado 0000. En otras palabras, el contador ha pasado por un ciclo completo (de 0000 a 1111) y ha ff
!Ciclado de vuelta a 0000. A partir de este punto empezará un nuevo ciclo de conteo, a medida que se
apliquen los subsiguientes pulsos de reloj.
>
Contadores asíncronos
Ejemplo: El contador de la figura de la lamina 3 empieza en el
estado 0000 y después se aplican pulsos de reloj. Cierto tiempo
después se quitan los pulsos de reloj y los FFs del contador
indican 0011. ¿Cuántos pulsos de reloj han transcurrido?
Solución
La respuesta aparente parece ser 3, ya que 0011 es el equivalente
binario de 3. Sin embargo, con la información que se proporciona no hay
manera de saber si el contador ha reciclado o no. Esto significa que
podrían haber transcurrido 19 pulsos de reloj; los primeros 16 regresan
el contador de vuelta a 0000 y los últimos 3 lo llevan hasta 0011. O
podrían haber transcurrido 35 pulsos (dos ciclos completos y después
tres conteos más), o 51 pulsos, etcétera.
>
Contadores asíncronos
Número MOD
Número MOD = 2N
El contador de la figura de la lamina 3, tiene 16 estados diferentes (de 0000 a
1111). Por ende, es un contador de rizo MOD 16
>
Contadores asíncronos
Ejemplo: Se necesita un contador que cuente el número de
elementos que pasan a través de una banda transportadora. Se
utiliza una combinación de fotocelda y fuente de luz para generar
un pulso individual cada vez que un elemento cruza su camino. El
contador debe ser capaz de contar hasta mil elementos. ¿Cuántos
FFs se requieren?
Solución
Es muy sencillo determinar qué valor de N se necesita para que 2N;;:,,
1000. Como 29 = 512, 9 FFs no serán suficientes. 210 = 1024, por lo
que 10 FFs producirían un contador que podría contar hasta
11111111112 = 102310. Por lo tanto, utilizaríamos 10 FF; podríamos
usar más de 10 pero sería un desperdicio, ya que cualquier FF más allá
>del diez no se necesitaría.
Contadores asíncronos
División de frecuencia
> Formas de onda del contador que muestran la división entre 2 para cada FF.
Contadores asíncronos
Ejemplo: El primer paso relacionado con la construcción de un reloj digital es tomar la señal
de 60 Hz y alimentarla a un circuito de conformación de pulsos tipo monoestable de Schmitt*
para producir una onda cuadrada, como se ilustra en la figura 7-3. La onda cuadrada de 60
Hz se aplica después a un contador MOD"60, el cual se utiliza para dividir la frecuencia de 60
Hz entre un valor exacto de 60 para producir una forma de onda de 1 Hz. Esta forma de onda
de 1 Hz se alimenta a una serie de contadores, los cuales a su vez se encargan de contar en
segundos, minutos, horas, etcétera. ¿Cuántos FFs se requieren para el contador MOD"60?
Solución
No hay una potencia entera de 2 que sea igual a 60. La más cercana es 26 = 64. Por lo tanto, un contador
que utilice seis FFs actuará como un contador MOD"64. Es obvio que esto no cumple con el
requerimiento. Parece que no hay solución si se utiliza un contador del tipo que se muestra.
Modificar los contadores binarios básicos para que pueda obtenerse casi cualquier número MOD y así no
estaremos limitados a los valores de 2N
>
Contadores asíncronos: retardos de propagación
Los contadores de rizo son el tipo más simple de contadores binarios, ya
que requieren la menor cantidad de componentes para producir una
operación de conteo dada.
No obstante tienen una gran desventaja debido a su principio básico de
operación: cada FF se dispara mediante la transición en la salida del FF
anterior.
Debido al tiempo de retraso de propagación inherente (tpd) de cada FF,
esto significa que el segundo FF no responderá sino hasta un tiempo tpc1
después de que el primer FF reciba una transición activa de reloj; el
tercer FF no responderá sino hasta un tiempo igual a 2* tpd después de
esa transición del reloj; y así en lo sucesivo
>
Contadores asíncronos: retardos de propagación
>
Contadores síncronos (en paralelo)
Los problemas que se encuentran en los contadores de rizo son ocasionados por los retrasos
de propagación acumulados en los FF; dicho de otra forma, los FFs no cambian de estado
todos al mismo tiempo, en sincronía con los pulsos de entrada. Estas limitaciones pueden
resolverse con el uso de los contadores en paralelo o síncronos,
Contador MOD-16 síncrono. Cada FF está sincronizado por la NGT de la señal de entrada de
> reloj, de manera que todas las transiciones de los FFs ocurran al mismo tiempo.
Contadores síncronos (en paralelo)
>
Contadores síncronos (en paralelo)
Ventajas frente a contadores asíncronos:
>
Contadores síncronos (en paralelo)
CIs reales :
>
Contadores con Números MOD < 2N
18
Contadores con Números MOD < 2N
Procedimiento general:
>
Contadores con Números MOD < 2N
Ejemplo:
(a) ¿Cuál será el estado de los LEDs cuando el contador tenga el conteo de cinco?
(b) ¿Qué mostrarán los LEDs cuando el contador esté sincronizado por una
entrada de 1 kHz?
(c) ¿Será visible el estado 110 en los LEDs?
Solución
(a) Como 510 = 1012, los LEDs 2° y 22 estarán encendidos y el LED 21 estará apagado.
(b) A 1 kHz, los LEDs estarán cambiando entre encendido y apagado tan rápido que
parecerá (al ojo humano) que están encendidos todo el tiempo, con un brillo
aproximado a la mitad del normal.
(c) No; el estado 110 persistirá durante sólo unos cuantos nanosegundos, hasta que el
contador se recicle a 000.
>
Contadores Síncronos Descendentes y Ascendentes/Descendentes
>
Contadores Síncronos Descendentes y Ascendentes/Descendentes
Contador ascendente/descendente MOD-8 síncrono. (b) El contador cuenta hacia arriba cuando la entrada de control
Arriba/Abajo = 1; cuenta hacia abajo cuando la entrada de control Arriba/Abajo = O.
>
Contadores Preajustables
•Muchos contadores síncronos (en paralelo) que
están disponibles como Cls están diseñados para
ser preajustables; pueden preajustarse a cualquier
conteo inicial deseado, ya sea en forma asíncrona
(independiente de la señal del reloj) o síncrona
(en la transición activa de la señal del reloj).
•A esta operación de preajuste se le conoce
también como carga en paralelo del contador
>
Contadores Preajustables
>
Contadores Síncronos de CI
La serie 74ALS160-163/74HC160-163
>
Contadores Síncronos de CI
La serie 74ALS190-191/74HC190-191
>
Arreglos de múltiples etapas
>
Diseño de un contador síncrono
>
Diseño de un contador síncrono
>
Diseño de un contador síncrono
Procedimiento de diseño
>
Diseño de un contador síncrono
Procedimiento de diseño
>
Diseño de un contador síncrono
Procedimiento de diseño
>
Diseño de un contador síncrono
Procedimiento de diseño
>
Diseño de un contador síncrono
Procedimiento de diseño
5. Diseñe los circuitos lógicos necesarios para generar los
niveles requeridos en cada entrada J y K.
Para JA tenemos
Para KA tenemos:
>
Diseño de un contador síncrono
Procedimiento de diseño
>
Diseño de un contador síncrono
Procedimiento de diseño
>
Registros
Registros de CI
>
Registros de CI
40
Registros de CI
>
Registros de CI
3. Entrada en paralelo/salida en serie (PISO): 74ALS165/74HC165
Este CI es un registro de ocho bits, tipo entrada en
paralelo/salida en serie. En realidad tiene una entrada
de datos en serie a través de Ds y una entrada de datos
síncrona en paralelo a través de Po -P7. El registro contiene
ocho FFS (Qo a Q7) conectados en forma interna como un
registro de desplazamiento, pero las únicas salidas accesibles
de los FFs son Q7 y 𝑄7 . CP es la entrada de reloj que se utiliza
para la operación de desplazamiento. La entrada de inhibición
de reloj CP INH se utiliza para inhibir el efecto de
la entrada CP. La entrada de desplazamiento/carga, SH/𝐿𝐷,
controla qué operación
se está llevando a cabo: desplazamiento o carga en paralelo.
>
Registros de CI
Es un registro de
desplazamiento de ocho bits
tipo entrada en serie/salida en
paralelo, en el cual la salida
de cada FF es accesible desde
el exterior. En vez de una sola
entrada en serie, una
compuerta AND combina las
entradas A y B para producir
la entrada serial para el
flip.flop Qo.
>
Contadores de registro de desplazamiento
Contador de anillo
El contador de registro de desplazamiento más
sencillo es un registro de desplazamiento
circular, éste es conectado de tal forma que el
último FF desplaza su valor hacia el primer FF.
>
Operación de transferencia
entre registros- Primera parte
Puntos a abordar en la sesión de LBD:
.
Puntos a abordar en la sesión de LBD:
La organización interna del hardware se puede especificar en función de las siguientes características:
Conjunto de registro y sus funciones.
La secuencia de microoperaciones que se realizan sobre la información binaria almacenada en los
registros.
El control que inicia la secuencia de microoperaciones.
La notación que se utiliza para las transferencias de microoperaciones entre registros se llama
lenguaje de transferencia de registros, el cual permite expresar de manera simbólica las secuencias
de las microoperaciones entre los registros de un módulo digital (Morris, 1992).
Puntos a abordar en la sesión de LBD:
R1R2:
Denota la trasferencia del contenido del registro R2 al registro R1. Esta designa un
remplazo del contenido de R1 por lo contenido en R2. Por definición, lo contenido en el
registro fuente R2 no cambia después de la trasferencia
Puntos a abordar en la sesión de LBD:
Unidad de control.
Microoperaciones lógicas
Las microoperaciones Iógicas especifican operaciones binarias para una cadena de bits
almacenados en los registros. Estas operaciones consideran cada bit en los registros
separadamente y lo tratan como una variable binaria. Como ilustración, Ia microoperación
del OR exclusivo se simboliza por medio de Ia proposición:
𝐹 ←𝐴⨁𝐵
Puntos a abordar en la sesión de LBD:
Esta especifica una operación lógica que considera cada par de bits en los registros como
variables binarias. Si el contenido del registro A es 1010 y el del registro B es 1100, Ia
información trasferida al registro F es 0110:
1010 contenido de A
1100 contenido de B
------
0110 contenido de 𝐹 ← 𝐴 ⨁ 𝐵
Puntos a abordar en la sesión de LBD:
Hay 16 operaciones lógicas diferentes posibles que pueden realizarse con dos variables
binarias.
Designación simbólica Descripción
Microoperaciones de desplazamiento
A ← shl A, B ← shr .B
Suma binaria:
Representación de números con signo
Sistema de signo-magnitud:
>
Puntos a abordar en la sesión de LBD:
Signo – magnitud.
Signo – Complemento de 1.
Signo – Complemento de 2.
Puntos a abordar en la sesión de LBD:
+9 -9
Suma aritmética
El proceso de sumar dos números con signo, cuando los números negativos están
representados en la forma de signo-magnitud, requiere que se comparen estos signos. Si
los dos signos no son iguales, se comparan las magnitudes relativas de los números y
luego se resta el menor del mayor.
Puntos a abordar en la sesión de LBD:
+6 0 000110 -6 1 111010
+
+
+9 0 001001 +9 0 001001
------ -------------------- ------ ---------------------
+15 0 001111 +3 0 000011
Suma en el sistema de complemento a 2
>
Suma en el sistema de complemento a 2
>
Puntos a abordar en la sesión de LBD:
Sustracción aritmética
La sustracción de dos números binarios con signo, cuando los números negativos están en
la forma de complemento de 2, es muy simple y puede exponerse como sigue: obténgase
el complemento de 2 del sustraendo (incluyendo el signo de bit) y súmese al minuendo
(incluyendo el bit de signo). Este procedimiento hace uso del hecho de que una operación
de resta puede cambiarse a una operación de suma si el signo del sustraendo se cambia.
Esto se demuestra por las siguientes relaciones (B es el sustraendo):
.
Puntos a abordar en la sesión de LBD:
La organización interna del hardware se puede especificar en función de las siguientes características:
Conjunto de registro y sus funciones.
La secuencia de microoperaciones que se realizan sobre la información binaria almacenada en los
registros.
El control que inicia la secuencia de microoperaciones.
La notación que se utiliza para las transferencias de microoperaciones entre registros se llama
lenguaje de transferencia de registros, el cual permite expresar de manera simbólica las secuencias
de las microoperaciones entre los registros de un módulo digital (Morris, 1992).
Puntos a abordar en la sesión de LBD:
R1R2:
Denota la trasferencia del contenido del registro R2 al registro R1. Esta designa un
remplazo del contenido de R1 por lo contenido en R2. Por definición, lo contenido en el
registro fuente R2 no cambia después de la trasferencia
Puntos a abordar en la sesión de LBD:
Unidad de control.
Microoperaciones lógicas
Las microoperaciones Iógicas especifican operaciones binarias para una cadena de bits
almacenados en los registros. Estas operaciones consideran cada bit en los registros
separadamente y lo tratan como una variable binaria. Como ilustración, Ia microoperación
del OR exclusivo se simboliza por medio de Ia proposición:
𝐹 ←𝐴⨁𝐵
Puntos a abordar en la sesión de LBD:
Esta especifica una operación lógica que considera cada par de bits en los registros como
variables binarias. Si el contenido del registro A es 1010 y el del registro B es 1100, Ia
información trasferida al registro F es 0110:
1010 contenido de A
1100 contenido de B
------
0110 contenido de 𝐹 ← 𝐴 ⨁ 𝐵
Puntos a abordar en la sesión de LBD:
Hay 16 operaciones lógicas diferentes posibles que pueden realizarse con dos variables
binarias.
Designación simbólica Descripción
Microoperaciones de desplazamiento
A ← shl A, B ← shr .B
Suma binaria:
Representación de números con signo
Sistema de signo-magnitud:
>
Puntos a abordar en la sesión de LBD:
Signo – magnitud.
Signo – Complemento de 1.
Signo – Complemento de 2.
Puntos a abordar en la sesión de LBD:
+9 -9
Suma aritmética
El proceso de sumar dos números con signo, cuando los números negativos están
representados en la forma de signo-magnitud, requiere que se comparen estos signos. Si
los dos signos no son iguales, se comparan las magnitudes relativas de los números y
luego se resta el menor del mayor.
Puntos a abordar en la sesión de LBD:
+6 0 000110 -6 1 111010
+
+
+9 0 001001 +9 0 001001
------ -------------------- ------ ---------------------
+15 0 001111 +3 0 000011
Suma en el sistema de complemento a 2
>
Suma en el sistema de complemento a 2
>
Puntos a abordar en la sesión de LBD:
Sustracción aritmética
La sustracción de dos números binarios con signo, cuando los números negativos están en
la forma de complemento de 2, es muy simple y puede exponerse como sigue: obténgase
el complemento de 2 del sustraendo (incluyendo el signo de bit) y súmese al minuendo
(incluyendo el bit de signo). Este procedimiento hace uso del hecho de que una operación
de resta puede cambiarse a una operación de suma si el signo del sustraendo se cambia.
Esto se demuestra por las siguientes relaciones (B es el sustraendo):
.
Puntos a abordar en la sesión de LBD:
La organización interna del hardware se puede especificar en función de las siguientes características:
Conjunto de registro y sus funciones.
La secuencia de microoperaciones que se realizan sobre la información binaria almacenada en los
registros.
El control que inicia la secuencia de microoperaciones.
La notación que se utiliza para las transferencias de microoperaciones entre registros se llama
lenguaje de transferencia de registros, el cual permite expresar de manera simbólica las secuencias
de las microoperaciones entre los registros de un módulo digital (Morris, 1992).
Puntos a abordar en la sesión de LBD:
R1R2:
Denota la trasferencia del contenido del registro R2 al registro R1. Esta designa un
remplazo del contenido de R1 por lo contenido en R2. Por definición, lo contenido en el
registro fuente R2 no cambia después de la trasferencia
Puntos a abordar en la sesión de LBD:
Unidad de control.
Microoperaciones lógicas
Las microoperaciones Iógicas especifican operaciones binarias para una cadena de bits
almacenados en los registros. Estas operaciones consideran cada bit en los registros
separadamente y lo tratan como una variable binaria. Como ilustración, Ia microoperación
del OR exclusivo se simboliza por medio de Ia proposición:
𝐹 ←𝐴⨁𝐵
Puntos a abordar en la sesión de LBD:
Esta especifica una operación lógica que considera cada par de bits en los registros como
variables binarias. Si el contenido del registro A es 1010 y el del registro B es 1100, Ia
información trasferida al registro F es 0110:
1010 contenido de A
1100 contenido de B
------
0110 contenido de 𝐹 ← 𝐴 ⨁ 𝐵
Puntos a abordar en la sesión de LBD:
Hay 16 operaciones lógicas diferentes posibles que pueden realizarse con dos variables
binarias.
Designación simbólica Descripción
Microoperaciones de desplazamiento
A ← shl A, B ← shr .B
Suma binaria:
Representación de números con signo
Sistema de signo-magnitud:
>
Puntos a abordar en la sesión de LBD:
Signo – magnitud.
Signo – Complemento de 1.
Signo – Complemento de 2.
Puntos a abordar en la sesión de LBD:
+9 -9
Suma aritmética
El proceso de sumar dos números con signo, cuando los números negativos están
representados en la forma de signo-magnitud, requiere que se comparen estos signos. Si
los dos signos no son iguales, se comparan las magnitudes relativas de los números y
luego se resta el menor del mayor.
Puntos a abordar en la sesión de LBD:
+6 0 000110 -6 1 111010
+
+
+9 0 001001 +9 0 001001
------ -------------------- ------ ---------------------
+15 0 001111 +3 0 000011
Suma en el sistema de complemento a 2
>
Suma en el sistema de complemento a 2
>
Puntos a abordar en la sesión de LBD:
Sustracción aritmética
La sustracción de dos números binarios con signo, cuando los números negativos están en
la forma de complemento de 2, es muy simple y puede exponerse como sigue: obténgase
el complemento de 2 del sustraendo (incluyendo el signo de bit) y súmese al minuendo
(incluyendo el bit de signo). Este procedimiento hace uso del hecho de que una operación
de resta puede cambiarse a una operación de suma si el signo del sustraendo se cambia.
Esto se demuestra por las siguientes relaciones (B es el sustraendo):