Libro Arquitecturade Computadoras Santiago Perez
Libro Arquitecturade Computadoras Santiago Perez
Libro Arquitecturade Computadoras Santiago Perez
COMPUTADORAS
Universidad Tecnológica Nacional – Facultad Regional Mendoza
COMPUTADORAS
E-book – 4° Edición
ISBN: 978-950-42-0158-8
Rodriguez 273
(5500) Mendoza, República Argentina
“No hay viento favorable
1 Sistemas de Numeración
1.1 Introducción
1.2 Confiabilidad
1.3 Costo
2 Sistema de Numeración Binario
2.1 Introducción
2.2 Conversión entre números de distintas bases
2.3 Complementos binarios
2.4 Representación de números negativos en
binario
3 Punto Fijo y Punto Flotante
3.1 Introducción
3.2 Operaciones aritméticas
3.3 Norma IEEE 754
4 Ejercitación
pág. 11
Capítulo 1
Representación Numérica
1 Sistemas de Numeración
1.1 Introducción
I, V, X, L, C, D, M
12
Toda combinación de operaciones fundamentales efectuadas con
números cualesquiera que da origen a un nuevo número, se llama
algoritmo de numeración. Para los sistemas de numeración basados en el
valor relativo (posicionales), el algoritmo de numeración consiste en un
polinomio:
dónde:
N:Número
ai:número natural menor que b (símbolo)
b:base del sistema (cantidad de símbolos diferentes
del sistema, es un número natural mayor que 1)
n + 1: cantidad de cifras enteras.
k:cantidad de cifras fraccionarias.
13
1.2 Confiabilidad
Podemos decir que un sistema físico es más confiable cuando su
correcto funcionamiento sea lo más independiente posible de la
temperatura en la que trabaja, del envejecimiento y de la dispersión
(tolerancia) de los componentes que lo forman.
14
Como primera conclusión resulta evidente que es más fácil
determinar el estado del foco en el caso b (prendido o apagado) que en el
caso a (diez intensidades posibles).
Hay una segunda apreciación. Supongamos que aumenta la
temperatura ambiente o que el circuito ha envejecido. Esto modifica el
valor de las resistencias y de la intensidad emitida por el foco. La
temperatura y el envejecimiento afectan mucho más al caso a que al b.
1.3 Costo
Nuevamente observando la Figura 1.1 desde el punto de vista del
costo, podemos afirmar que es más costoso construir el circuito en
decimal que en binario. El Costo es proporcional a la base del sistema de
numeración utilizado. Sin embargo, necesitamos más circuitos binarios
para representar una misma cantidad, (por ejemplo para representar el
número 25 necesitaríamos dos circuitos decimales como el de la Fig.1.1a
y cinco circuitos binarios como el de la Fig.1.1b). Entonces, el Costo es
proporcional a la cantidad de cifras. Por ello, podemos escribir:
Costo = k . b . (n+1)
b(n+1) = M
(n+1).Ln b = Ln M
n + 1 = (Ln M / Ln b)
15
Reemplazando:
Costo = k Ln M (b / Ln b)
bóptima = e
2.1 Introducción
En el Sistema Binario, los símbolos utilizados son el 0 y el 1,
llamados dígitos binarios (bits o bitios). Es posible, aplicando el algoritmo
de numeración, obtener los números binarios correspondientes a las
primeras 1610 (el subíndice 10 indica que el número está en Sistema
Decimal) cantidades. Igualmente, podríamos obtener los números en el
Sistema Octal y en el Sistema Hexadecimal. La Tabla 1.1 indica las
correspondencias.
16
Tabla 1.1. Correspondencia entre sistemas de numeración.
Es usual en estos temas utilizar los prefijos kilo, mega, giga, tera,
etc. de una manera similar que en el Sistema Métrico Decimal, pero con
algunas diferencias, a saber:
17
2.2 Conversión entre números de distintas bases
Para convertir las expresiones de números entre distintas bases
puede usarse el siguiente procedimiento general:
a) Parte entera del número (términos del polinomio con la base elevada
a exponentes cero o positivos)
Supongamos que el primer miembro de la siguiente igualdad esta
expresado en un Sistema de Numeración en base b = b1, y el
segundo miembro en base b = b2
Ejemplo:
b1 = 1010
Nb1 = 2510
b2 = 210
18
b) Parte fraccionaria del número (términos del polinomio con la base
elevada a exponentes negativos)
19
Cb(N) = bm - N
Cb-1(N) = bm - N - 2-k
Ejemplo de Complemento a 2:
C2(100112) = 1021012- 100112 = 1000002 - 100112 =
011012
Ejemplo de Complemento a 1:
C1(100112) = 1021012 - 100112 - 12 = 1000002 –
100112 -12 = 011002
20
2.4 Representación de números negativos en binario
Los números negativos se pueden representar de distintas formas,
a saber:
21
En Unidades posteriores se verá la conveniencia del uso de
los Convenios que usan Complementos, ya que de esta
forma la operación resta se puede realizar mediante una
suma. Esto simplifica los circuitos lógicos.
011
+
111
_______
1000
22
001
+
100
_______
101
3.1 Introducción
Lamentablemente, no todos los números son enteros. Así, surgen
representaciones binarias con uno, dos, tres, o más dígitos (bits)
fraccionarios, según la necesidad. La llamada Notación en Punto Fijo
resuelve ese problema. Por ejemplo, un formato podría ser:
1101001,101
En este caso disponemos de 10 bits para representar el número, de los
cuales 7 son enteros y 3 fraccionarios.
23
Es un campo de 1 bit.
0 positivo ( + )
1 negativo ( - )
b) Exponente (E)
a) Multiplicación
Signo de la mantisa
Sp = 0 si S1 = S2
Sp = 1 si S1 ≠ S2
Exponente
Ep = E1 + E2 - 64 - K,
siendo K el valor que satisface 1/2 <= M 1 x M2 x 2K < 1
Mantisa
Mp = M1 x M2 x 2K
b) División
Signo de la mantisa
Sd = 0 si S1 = S2
Sd = 1 si S1 ≠ S2
Exponente
24
Ed = E1 - E2 + 64 - K,
siendo K el valor que satisface 1/2 <= (M1 / M2) 2K < 1
Mantisa
Md = (M1 / M2) 2K
c) Suma y resta
Base de Exponenciación
25
Fig. 1.3. Representaciones de punto flotante de la Norma 7.
26
4 Ejercitación
Ejercicio 1:
Convertir a decimal los siguientes números.
a) 11010100112 b) 1BF16 c) 111101,101012
d) 2328 e) 575,548 f) 2CD,516
11010100112=1x29+1x28+0x27+1x26+0x25+1x24+0x23+0x22+1x21+1x20
11010100112=512+256+64+16+2+1=85110
Ejercicio 2:
Convertir a octal los siguientes números.
a) l38210 b) 7523,23610 c) 111010012
d) 1011011,10112 e) 45BA16 f) DCBA,2F16
Ejercicio 3:
Convertir a base dos el número 78,3 en base diez, y volverlo a base diez
apreciando seis bits fraccionarios. ¿Qué conclusiones resultan?
Ejercicio 4:
¿Cuál es el mayor número decimal que puede ser representado por 3 y 6
dígitos hexadecimales?.
Ejercicio 5:
Ordenar los siguientes números de mayor a menor.
BA316 110010112 834210
E4A16 689510 111011011112
Ejercicio 6:
¿Cuántos símbolos tendrá un sistema de numeración con base 14?.
Indicar los posibles individuos del mismo.
Ejercicio 7:
Efectúe las siguientes operaciones utilizando palabras de 8 bits,
1) Representando los números negativos mediante el convenio de
complemento a dos,
27
2) Representando los números negativos mediante el convenio de
complemento a uno.
a) 35 – 21 b) -48 + 21
c) -25 - (-39) d) -63 – 18
Ejercicio 8:
Indique cuál es el máximo número decimal positivo y negativo
representado en el convenio de complemento a dos, si se utilizan palabras
de 16 bits y 32 bits.
Ejercicio 9:
Disponiendo de una palabra de 36 bits, de los cuáles 1 es destinado para
el bit de signo del número, 8 para el exponente y 27 para la mantisa,
represente en punto flotante y en base 2, 8 y 16 los siguientes
números decimales.
a) 29 b) 52,73 c) 0,125 d) 0,011
Ejercicio 10:
Efectúe las siguientes operaciones de acuerdo a la representación en
punto flotante indicada en el ejercicio anterior, y en base 2.
a) 110011 + 11100,110110 + 101,11
b) 1110100,0111 + 10110,0011
c) 1010010,00101 + 0,000010011001
Ejercicio 11:
Obtenga los números decimales de la siguiente representación en punto
flotante de base 2.
a) 0 10001101 1110010010100001...
b) 1 01010001 1111010001100001...
Ejercicio 12:
Indique cuáles son los máximos y mínimos números positivos decimales
que pueden representarse en el formato de punto flotante indicado en
simple y doble precisión, y base 2.
Ejercicio 13:
Efectúe las siguientes operaciones de acuerdo a la representación en
punto flotante indicada en el ejercicio anterior, y en base 2.
a) 0,00000010111101 + 10011110,001
b) 0,11111010 + 0,000000110
c) 1101001010,0001 + 0,000001100001011
28
CAPÍTULO 2
Códigos Numéricos y Alfanuméricos
1 Códigos
1.1 Introducción
1.2 Códigos binarios
1.3 Códigos BCD
1.4 Códigos alfanuméricos
2 Códigos Detectores y Correctores de Error
2.1 Introducción
2.2 Distancia mínima
2.3 Códigos detectores de error
2.4 Códigos correctores de error
3 Encriptación o Cifrado
4 Otros Códigos
4.1 Códigos de barras
4.2 Códigos QR
5 Ejercitación
29
Capítulo 2
Códigos Numéricos
y Alfanuméricos
1 Códigos
1.1 Introducción
Definición: un código es una ley de correspondencia biunívoca
entre los elementos de dos conjuntos.
30
En los CÓDIGOS BINARIOS, la base del código es 2. Estos códigos
son los utilizados por los sistemas digitales.
Es decir, que:
• Un grupo de n bits binarios es un código de n bits que puede
n
asumir 2 combinaciones distintas de 1´s y 0´s. Para que el
código sea útil no se puede asignar ninguna combinación a
n
más de un elemento, y varían de 0 a (2 – 1)
• Aunque el mínimo número de bits requeridos para escribir un
n
código con 2 elementos distintos es n, el máximo número de
bits no está especificado.
n
• Con estas combinaciones podríamos tener 2 ! (las
n
permutaciones de las 2 combinaciones) códigos distintos;
aunque solo se verán algunos con características particulares.
31
Códigos binarios continuos (o progresivos): son aquellos donde
las combinaciones correspondientes a números decimales consecutivos
son adyacentes. Se llaman combinaciones binarias adyacentes las que
difieren solamente en un bit.
32
Tabla 2.2. Representación del código de Gray en 2, 3 y 4 bits.
33
binaria a decimal es bastante difícil, y en las calculadoras, los juegos
electrónicos, y los instrumentos digitales, en los que generalmente es
común la entrada y salida de números en notación decimal, se emplea un
código especial para representar esta notación. A este código se le llama
CODIGO BCD: decimal codificado en binario (binary - coded - decimal).
34
La conversión de un número decimal a un código BCD se realiza
simplemente expresando cada dígito mediante la combinación binaria que
le corresponde de acuerdo al código especificado. Por ejemplo, en la Tabla
2.5 se observa el número decimal 926 representado en distintos códigos.
35
Tabla 2.6. Código ASCII estándar de 7 bits.
36
software de los microordenadores, los caracteres ASCII extendido pueden
interpretarse correctamente sólo si un programa, computadora o
impresora han sido diseñados para ello.
2.1 Introducción
Una vez definida la conexión física para poder transferir
información entre los dispositivos o sistemas debe existir un formato para
los datos y una estrategia de sincronización de cómo se envían y reciben
los mensajes, incluyendo la detección y corrección de los errores.
37
Fig. 2.3. Estructura general de mensaje de un protocolo.
38
El razonamiento, esquematizado en la Figura 2.4, nos da una idea
de la capacidad de detección y corrección de errores de un código:
39
2 -6
probabilidad de error en dos bits es P 2 = P1 (por ejemplo, si P1 = 10
-12
entonces P2 = 10 ), es decir, las probabilidades de errores de más bits,
disminuyen abruptamente.
Cuadro 2.2. Ejemplo de códigos con bit de paridad usando BCD natural.
40
Otros códigos detectores de error son los de cantidad constante de
1´s o peso constante. Entre ellos encontramos el código 2 entre 5 y el
código biquinario, que se observan en la Tabla 2.6.
41
2.4.1 Código de Hamming
p
2 >= n + p + 1
42
El bit c1 toma el valor 1 si se produce un error en los bits b1, b3,
b5 y b7 de la combinación del código formado. Si el número de unos
existentes en esas cuatro posiciones es siempre par, un error en uno
cualquiera de esos cuatro bits lo convierte en impar. Por lo tanto, c1 vale
uno si el número de unos en las posiciones dadas es impar, y cero en
caso contrario. Es posible representar esta conclusión a través de una
función lógica:
C1 = b1 ⨁ b3 ⨁ b5 ⨁ b7
C2 = b2 ⨁ b3 ⨁ b6 ⨁ b7
C3 = b4 ⨁ b5 ⨁ b6 ⨁ b7
b1 = b3 ⨁ b5 ⨁ b7
b2 = b3 ⨁ b6 ⨁ b7
b4 = b5 ⨁ b6 ⨁ b7
43
Cuadro 2.3. Ejemplo de código Hamming.
Dónde:
3A: identifica el comienzo de la trama.
0D es CR y 0A es LF: identifican el final de la trama.
El resto de la trama tiene un binario equivalente:
44
El cálculo del LRC consiste en realizar la suma hexadecimal de los
datos y calcular el complemento a 2.
01 + 08 + 00 + 00 + 61 + 62 = CC = 0011 0011
+1
0011 0100
1011 1011
+ -
1001 1001
0010 0010
45
El transmisor, antes de transmitir, procesa (usando Módulo 2) el
mensaje a transmitir M:
𝑀2𝑘 𝐹𝐶𝑆
=𝐶+
𝐺(𝑥) 𝐺(𝑥)
𝐹𝐶𝑆 𝐹𝐶𝑆
=𝐶+ + =
𝐺/𝑥) 𝐺/𝑥)
𝐹𝐶𝑆 + 𝐹𝐶𝑆
=𝐶+
𝐺(𝑥)
CRC-8 = X8 + X5 + X4 + 1 = 100110001
(Redundancia de 8 bits)
46
CRC-16 = X16 + X15 + X2 + 1
(Redundancia de 16 bits)
47
Fig. 2.7. Organización de códigos bidimensionales usando Hamming y
bits de paridad.
48
mínima, pero tiene el inconveniente de bajar la eficiencia representativa.
Además, el procesamiento en el receptor aumenta críticamente. Por
ejemplo, en el caso de la figura (Dm = 6 para corregir 2 bits)
aproximadamente el 15% de lo transmitido consiste en bits agregados.
3 Encriptación o Cifrado
Con la introducción de las computadoras, especialmente en las
empresas, fue evidente la necesidad de herramientas automáticas para
proteger los archivos y otras informaciones almacenadas en su memoria.
El nombre genérico del tema que trata las herramientas diseñadas para
proteger los datos y frustrar a los usuarios no autorizados informáticos es
la Seguridad en Computadoras. Esta unidad temática ha necesitado
desarrollarse debido a la introducción de redes y facilidades de
comunicación para transportar datos. La tecnología esencial en todas las
redes automáticas y en las aplicaciones de seguridad en computadoras es
la Encriptación o Cifrado.
49
Por ejemplo, podríamos usar una técnica de sustitución, en un
algoritmo elemental, para cifrar el siguiente texto plano y clave de cifrado:
E S T E + E S + U N + T E X T O + D E M O
(los espacios en blanco son mostrados explícitamente como “+”).
E S T E + E S + U N + T E X T O + D E M O
05192005 00 0519 00 2114 00 2005242115 00 04051315
P R U E B A
16 18 21 05 02 01
U J N J B F H R O S B U U O O T B E U D I
50
conocimiento previo, teniendo el texto plano y el texto cifrado. Aunque, es
obvio que existen esquemas mucho más sofisticados.
4 Otros códigos
Ventajas:
Algunas de sus ventajas sobre otros procedimientos de colección
de datos son:
• Se imprime a bajos costos
• Permite porcentajes muy bajos de error
51
• Los equipos de lectura e impresión de código de barras son
flexibles y fáciles de conectar e instalar.
Beneficios:
El código de barras es una técnica de entrada de datos, como son
la captura manual, el reconocimiento óptico y la cinta magnética.
Se considera que la tecnología de código de barras es la mejor
tecnología para implementar un sistema de colección de datos mediante
identificación automática, y presenta muchos beneficios. Entre otros:
• Virtualmente no hay retrasos desde que se lee la información
hasta que puede ser usada
• Se mejora la exactitud de los datos
• Se tienen costos fijos de labor más bajos
• Se puede tener un mejor control de calidad, mejor servicio al
cliente
• Se pueden contar con nuevas categorías de información.
• Se mejora la competitividad.
Aplicaciones:
Las aplicaciones del código de barras cubren prácticamente
cualquier tipo de actividad humana, tanto en industria, comercio,
instituciones educativas, instituciones médicas, gobierno, etc.
• Control de material en proceso
• Control de inventario
• Control de tiempo y asistencia
• Punto de venta
• Control de calidad
• Control de inventario
• Embarques y recibos
• Control de documentos
• Facturación
• Bibliotecas
• Bancos de sangre
• Hospitales
• Control de acceso
• Control de tiempo y asistencia
52
pulgada). Un código de barras no se mide por su longitud física sino por
su densidad.
• WNR: (Wide to Narrow Ratio)
Es la razón del grosor del elemento más angosto contra el más
ancho. Usualmente es 1:3 o 1:2.
• Quiet Zone:
Es el área blanca al principio y al final de un símbolo de código de
barras. Esta área es necesaria para una lectura conveniente del símbolo.
Simbologías:
Un símbolo de código de barras es la impresión física de un código
de barras.
Una Simbología es la forma en que se codifica la información en
las barras y espacios del símbolo de código de barras.
Existen diferentes simbologías para diferentes aplicaciones, cada
una de ellas con sus propias características. Las principales
características que definen una simbología de código de barras son las
siguientes:
• Numéricas o alfanuméricas
• De longitud fija o de longitud variable
• Discretas o continuas
• Número de anchos de elementos
• Autoverificación.
EAN/UPC
Comercio detallista, autoverificable, numérico, longitud fija.
53
Código 39
Industrial, alfanumérico, 44 caracteres
Codabar
Bancos de sangre, bibliotecas
I 2/5
Aplicaciones numéricas, aerolíneas, numérico
54
Fig. 2.11 Simbología I 2/5
Código 93
Complementa al código 39, alfanumérico
Código 128
Industrial, alfanumérico, 128 caracteres ASCII
4.2 Códigos QR
Un código QR es un código de barras bidimensional cuadrado que
puede almacenar los datos codificados.
55
Específicamente, un código QR extiende los datos a disposición de
cualquier objeto físico y crean una medida digital para las operaciones
de marketing. Esta tecnología permite y acelera el uso de servicios web
para móviles: se trata de una herramienta digital muy creativa.
56
Fig. 2.15 Ejemplo de Código QR usado en ticket de acceso a un evento
57
Fig. 2.17 Ejemplo de Código QR usado en cartel comercial
58
Fig. 2.18 Ejemplo de Código QR
59
Fig. 2.20 Ejemplo de Código QR
5 Ejercitación
Ejercicio 1:
Realizar la tabla de un código Gray de 5 bits.
Ejercicio 2:
Que cantidad de bits necesitaría en un código Gray; para codificar
ángulos de 1 en 1 grados hasta 360 grados.
Ejercicio 3:
Realizar la tabla de un código Jhonson de 6 bits. Indique que
características presenta este código.
Ejercicio 4:
Completar el cuadro, según los códigos indicados para la codificación de
los números decimales enunciados. ¿Cuáles de los códigos son auto
complementarios?.
60
Ejercicio 5:
Representar el número 927 en binario natural y en BCD EXS 3.
Comentar el resultado luego de efectuar un análisis comparativo sobre la
facilidad para obtener las representaciones y la longitud de bits
necesarios para cada caso.
Ejercicio 6:
Indicar cuál es la distancia mínima del código BCD Aiken. Obtener a
partir de él un código de paridad impar con la incorporación de un bit de
paridad. ¿ Cuál es la distancia mínima del código resultante ?.
Ejercicio 7:
Realice la tabla del código Hamming para la detección y corrección de un
bit, tomando como código base de información el BCD 3421.
Ejercicio 8:
¿Cuántos bits tendrá el código Hamming para poder detectar y corregir
un error si los datos originalmente se codifican con combinaciones de:
a) 5 bits
b) 8 bits
c) 12 bits?
Ejercicio 9:
Indicar las distintas combinaciones binarias asignadas a cada uno de los
siguientes nú-meros, caracteres ó símbolos especiales, en el código ASCII
de 7 bits.
0; %; , ; G; ); 3; +; &; . ; T; ¿ ;z
Ejercicio 10:
Indicar a que números, caracteres ó símbolos especiales pertenecen las
combinaciones del código ASCII de 7 bits si las mismas se
representan con los siguientes números en octal.
75 ; 12 ; 105 ; 62 ; 52 ; 13 ; 74 ; 132 ; 55 ; 27
61
Ejercicio 11:
Dado el siguiente texto sométalo a un algoritmo de cifrado
Ejercicio 12:
Dado el siguiente texto que se encuentra codificado con la palabra clave:
AVANTI, descífrelo utilizando el esquema anterior.
ÑLTNÑNSANCNIFJAZUIDQNOMN
62
CAPÍTULO 3
Álgebra de Boole
63
Capítulo 3
Álgebra de Boole
1.1 Introducción
Un Sistema, en un aspecto amplio, puede definirse como un
conjunto de elementos que guardan una relación entre sí. A su vez, un
elemento del sistema puede ser otro sistema (subsistema).
SISTEMAS
NATURALES
.
.
ARTIFICIALES
.
.
ELÉCTRICOS
.
.
ELECTRÓNICOS
ANALÓGICOS
DIGITALES
COMBINACIONALES
SECUENCIALES
64
Seguidamente se estudia brevemente el Álgebra de Boole, las
funciones booleanas y su minimización, finalmente las compuertas
lógicas.
1.2 Postulados
Dentro de las álgebras de Boole, es de utilidad definir la propiedad
bivalente. Es decir, álgebras que están compuestas por sólo dos
elementos. Así, el álgebra es un conjunto de elementos binarios
relacionados entre sí mediante las operaciones lógicas producto [.] y
suma [+], que cumplen con los siguientes postulados (las letras a, b, c,
etc., indican variables binarias):
𝑎+0=𝑎
𝑎. 1 = 𝑎
𝑎+𝑏 =𝑏+𝑎
𝑎. 𝑏 = 𝑏. 𝑎
3) Propiedad distributiva
𝑎. (𝑏 + 𝑐) = (𝑎. 𝑏) + (𝑎. 𝑐)
𝑎 + (𝑏. 𝑐) = (𝑎 + 𝑏). (𝑎 + 𝑐)
𝑎 + 𝑎̅ = 1
𝑎. 𝑎̅ = 0
1.3 Teoremas
Algunos teoremas importantes son:
65
2) El álgebra es un conjunto cerrado; es decir, los resultados de
aplicar las operaciones lógicas a las variables, pertenecen al
álgebra.
𝑎+1 =1
𝑎. 0 = 0
4) Ley de Idempotencia
𝑎+𝑎 =𝑎
𝑎. 𝑎 = 𝑎
5) Ley de involución
𝑎̿ = 𝑎
𝑎 + (𝑏 + 𝑐) = (𝑎 + 𝑏) + 𝑐
𝑎. (𝑏. 𝑐) = (𝑎. 𝑏). 𝑐
7) Absorción:
𝑎 = 𝑎 + (𝑎. 𝑏)
𝑎 = 𝑎. (𝑎 + 𝑏)
8) Leyes de De Morgan
̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅̅
𝑎 + 𝑏 + 𝑐 + ⋯ + 𝑛 = 𝑎̅. 𝑏̅. 𝑐̅ … 𝑛̅
̅̅̅̅̅̅̅̅̅̅̅̅
𝑎. 𝑏. 𝑐 … 𝑛 = 𝑎̅ + 𝑏̅ + 𝑐̅ + ⋯ + 𝑛̅
𝑎 + (𝑏. 𝑐). (𝑏 + 𝑒)
se escribirá
𝑎 + 𝑏𝑐(𝑏 + 𝑑)
66
2 Funciones Lógicas
2.1 Introducción
Una función lógica es una variable binaria que depende de otras
variables binarias relacionadas entre sí por las operaciones lógicas. Una
función lógica se nota de la siguiente manera:
𝑓(𝑎, 𝑏, 𝑐) = 𝑎𝑏̅ + 𝑎𝑐
67
𝑓(𝑎, 𝑏, 𝑐, … , 𝑛) = 𝑎𝑓(1, 𝑏, 𝑐, … , 𝑛) + 𝑎̅𝑓(0, 𝑏, 𝑐, … , 𝑛)
68
Como una productoria de términos en los cuales aparecen todas
sus variables en forma de suma lógica (estos términos se llaman
MAXTERMS).
En ambos casos la función se dice expresada en forma canónica y
sus términos (ya sean minterms o maxterms se llaman términos
canónicos).
69
A fin de obtener una notación más sencilla de las funciones
lógicas, se suele asignar a cada término canónico un número decimal que
se obtiene dando pesos a las variables de acuerdo a sí las mismas se
encuentran expresadas en forma directa o negada. El convenio se observa
en la Tabla 3.2.
2n −1 2n −1
70
Los términos canónicos que no están son: 2, 4, 8, 9, 11 y 12. Sus
complementos a 15 son: 13, 11, 7, 6, 4 y 3. Por lo tanto, la expresión
canónica en maxterms de la función es:
3.1 Introducción
Es importante obtener la mínima expresión posible de una
función, esto es la menor cantidad de variables y operaciones
involucradas. Los métodos de minimización se basan en los postulados
del álgebra y a la conveniencia de agregar oportunamente términos en la
expresión de la función.
… + 𝑎̅𝑏𝑐𝑑̅ + 𝑎𝑏𝑐𝑑̅ + ⋯
… + 𝑏𝑐𝑑̅ (𝑎̅ + 𝑎) + ⋯
… + 𝑏𝑐𝑑̅ 1 + ⋯ = ⋯ + 𝑏𝑐𝑑̅ + ⋯
Se ha perdido la variable a.
71
sólo una variable. Se saca factor común entre ellos y se van eliminando
variables.
Se ve que los dos primeros son adyacentes, como así también los
dos últimos. Puede sacarse factor común:
Los dos números binarios en las columnas y las filas, que siguen
un código Gray de dos variables, se corresponden con las variables
directas o negadas de cada cuadro, y los números decimales son los
asignados a cada término canónico según la convención indicada con
anterioridad. Esta tabla genérica puede particularizarse para una función
determinada marcando en la misma con un 1 los términos canónicos que
forman parte de la función. De esta forma es sencillo identificar los
términos canónicos adyacentes que serán los que limitan por los lados.
72
Por ejemplo, el término canónico 14, posee cuatros términos adyacentes
que son: 6, 10, 12 y 15.
73
Fig. 3.2 Mapa de Karnaugh de la función ejemplo.
𝑓(𝑎, 𝑏, 𝑐, 𝑑) = 𝑏 + 𝑐̅
74
4 Compuertas Lógicas
La realización práctica (implementación) de las funciones lógicas
se hace por medio de las compuertas lógicas, que son la base
constructiva de la electrónica digital. No todas las funciones lógicas
presentan interés práctico. En la Figura 3.3 se muestran las compuertas
lógicas más comunes.
75
la cantidad de compuertas por chip, se suele clasificar a los CI en escalas
de integración:
• SSI, escala de integración pequeña, hasta 10 compuertas por
CI.
• MSI, escala de integración media, de 10 a 100 compuertas por
CI.
• LSI, escala de integración grande, de 100 a 1000 compuertas
por CI.
• VLSI, escala de integración muy grande, más de 1000
compuertas por CI.
𝑓(𝑥, 𝑦, 𝑧) = ∑(2,4,5,6)
3
76
Se invita al lector a minimizar la función y comparar los
resultados obtenidos.
5 Ejercitación
Ejercicio 1:
Hallar las expresiones canónicas de las siguientes funciones. Representar
la tabla de verdad correspondiente a cada una de ellas.
f a, b, c ac bc ab c
f a, b, c, d , e ab ce a de
f a, b, c, d a b c c
Ejercicio 2:
Simplificar las siguientes expresiones aplicando los teoremas del álgebra
de Boole.
Ejercicio 3:
Dadas las siguientes funciones, representadas mediante la expresión
canónica por comprensión de suma de productos y producto de sumas,
obtener las representaciones de las mismas en la forma de producto de
sumas y suma de productos respectivamente.
f a, b, c 2,5,7
3
f a, b, c, d 1,3,4,8,12,14
4
Ejercicio 4:
Obtener la tabla de verdad y la función canónica por comprensión en la
forma de producto de sumas de una función de 4 variables que toma el
valor 1 cuando 3 o más variables toman el valor 0.
Ejercicio 5:
Obtener la tabla de verdad y la función canónica por comprensión y
extensión en la forma de suma de productos y producto de sumas de una
función de 4 variables que toma el valor 0 cuando la variable de menor
peso vale 0, y la de mayor peso vale 1.
77
Ejercicio 6:
Demostrar las siguientes igualdades.
p a d ec pa d e c
aba b
aa c ab ac
Ejercicio 7:
Haciendo uso de las leyes de De Morgan, indicar cuál de las siguientes
igualdades es correcta.
ab a c c b a b a c c b
a b ca b c ab abc abca b
Ejercicio 8:
Dadas las siguientes funciones, representadas mediante la expresión
canónica por comprensión de suma de productos y producto de sumas,
obtener las representaciones de las mismas en la forma de producto de
sumas y suma de productos respectivamente.
f a, b, c, d 4,6,8,9,14,15
4
f a, b, c 1,2,5,6
3
Ejercicio 9:
Minimizar por el método de karnaugh las funciones expresadas en la
forma canónica por extensión del Ejercicio 3.
Ejercicio 10
Las siguientes expresiones corresponden a funciones minimizadas
expresadas en la forma de suma de productos. Obtener las funciones
minimizadas expresadas en la forma de producto de sumas
correspondientes.
78
f a, b, c, d bcd b c d a c a bd
f a, b, c, d a bc bd acd
f a, b, c, d a b bd b c
Ejercicio 11:
En un sistema digital que opera con el código BCD EXC 3 se desea
implementar un generador de paridad impar. Indicar la función más
simple, ya sea en la forma de producto de sumas o suma de productos
que satisface el requisito.
Ejercicio 12:
En un registro de 4 bits, cuyas salidas están disponibles al exterior, se
almacena información numérica decimal en el código BCD Natural. Se
desea implementar un sistema digital que detecte cuando el número
contenido en el registro es superior a 6 e inferior a 3. Indicar la función
más simple, ya sea en la forma de producto de sumas o suma de
productos que satisface el requisito.
79
80
CAPÍTULO 4
Sistemas Combinacionales
1 Sistemas Digitales
2 Sistemas Combinacionales
2.1 Introducción
2.2 Sistemas combinacionales MSI
3 Casos Comunes de Sistemas
Combinacionales MSI
3.1 Codificadores
3.2 Decodificadores
3.3 Multiplexores
3.4 Demultiplexores
3.5 Comparadores
3.6 Detectores/Generadores de paridad
3.7 Sumadores
3.8 Unidades aritméticas y lógicas
4 Ejercitación
81
Capítulo 4
Sistemas Combinacionales
1 Sistemas Digitales
Un sistema digital es un conjunto de elementos binarios
relacionados entre si de alguna manera. Se distinguen dos tipos de
variables en un sistema digital. Las variables de entrada y las variables
de salida que dependen de las de entrada. Funcionalmente, las variables
de entrada se dividen en dos grupos: variables de proceso y variables de
control (Figura 4.1).
82
Fig. 4.2. Correspondencias para un Sistema Combinacional.
2 Sistemas Combinacionales
2.1 Introducción
De lo definido en el punto anterior se concluye que en un Sistema
combinacional las salidas no son otra cosa que funciones lógicas de las
entradas. En la Figura 4.4 se ve el diagrama en bloque de un
combinacional con n entradas y m salidas. Se puede escribir que:
𝑧𝑖 = 𝑓𝑖 (𝑥1 , 𝑥2 , … … , 𝑥𝑛 )
83
Fig. 4.4. Diagrama en bloque de un sistema o circuito combinacional.
3.1 Codificadores
Permiten codificar las líneas de entrada. Generalmente codifican
en binario o BCD. En la Figura 4.5 se muestra un codificador binario de 8
entradas y 3 salidas, su circuito interno y su tabla de verdad.
En este codificador se supone que sólo está activa una entrada por
vez. En caso de no ser así, la salida debe calcularse como la función OR
84
bit a bit de las salidas correspondientes a las entradas activadas
independientemente. Estos decodificadores se llaman sin prioridad.
Si ninguna entrada está activa las salidas son todas cero, igual
que si estuviera activada la entrada D0. Para evitar este problema, los
codificadores cuentan con una salida adicional que indica la ausencia de
activación de las entradas.
3.2 Decodificadores
Son combinacionales que poseen n entradas y m salidas. El orden
adecuado de la salida se activa cuando la codificación correspondiente se
inyecta a la entrada. Generalmente, son binarios o BCD. En el caso de un
decodificador binario, si tiene n entradas poseerá m = 2n salidas. Así, un
decodificador realiza lo opuesto a un codificador. En la Figura 4.6 se
muestra un decodificador de 3 x 8 y su tabla de verdad.
85
Los decodificadores, además de usarse para decodificar, son útiles
para implementar funciones lógicas. Cada una de sus salidas es un
minterm de una función de n variables. Aprovechando la entrada de
habilitación que suelen tener, es posible aumentar el número de
variables. En la Figura 4.7 se usa un decodificador de 3 x 8 para
implementar la siguiente función:
F(z, y, x) = ∑ (1,3,6,7)
86
Fig. 4.8. Decodificador de 4x16 a partir de dos decodificadores de 3x8
3.3 Multiplexores
n
Disponen de m = 2 líneas de entrada (canales), una línea de
salida y n líneas de selección. En función de las líneas de selección, se
determina qué entrada aparece en la salida. La Figura 4.9 indica la
función de un multiplexor y la Figura 4.10 el circuito de un multiplexor
de 4 canales.
F(a, b, c) = ∑ (0,1,5,6,7)
87
Fig. 4.10. Multiplexor de 4 canales.
88
Tabla 4.2. Tabla auxiliar.
3.4 Demultiplexores
Cumplen la función opuesta a los multiplexores. Tienen una
entrada y m salidas, y n entradas de selección. La salida seleccionada
tendrá el valor de la entrada. En la Figura 4.13 se muestra un
demultiplexor de cuatro canales de salida.
89
encuentran demultiplexores específicos. En la Figura 4.14 se indica cómo
obtener un demultiplexor de cuatro canales desde un decodificador de 2 x
4 con entrada de habilitación.
90
Fig. 4.14. Demultiplexor de 4 canales usando un decodificador de 2x4.
3.5 Comparadores
Realizan la comparación entre dos números binarios de n bits. El
circuito básico que realiza la comparación de 1 bit, se indica en la Figura
4.15.
91
Tabla 4.3. Tabla de verdad del comparador.
92
Las señales de control TO (paridad impar) y TE (paridad par)
permiten seleccionar la paridad. Se recomienda al alumno obtener la
tabla de verdad de este circuito y verificar su funcionamiento.
3.7 Sumadores
Son CI que realizan la suma aritmética de dos números de n bits.
Antes de ver los sumadores disponibles en escala de integración MSI,
estudiaremos la suma y resta binaria.
Suma binaria
Para indicar la suma aritmética utilizaremos el símbolo + para
diferenciarlo del + usado para la suma lógica. Para sumar dos bits, se
puede implementar el circuito de la Figura 4.18, llamado Semisumador,
cuya tabla de verdad se observa en la Tabla 4.4.
93
c4 c3 c2 c1 c0
A = a3 a2 a1 a0
+
B = b3 b2 b1 b0
S = s3 s2 s1 s0
Resta binaria
94
Tabla 4.5. Tabla de verdad del sumador total.
95
b) Para el caso de usar complemento a uno
- A > 0 ; B > 0
- A > 0 ; B < 0
- A < 0 ; B > 0
- A < 0 ; B < 0
96
Fig. 4.22. Sumador/Restador de 4 bits en complemento a uno.
97
4 Ejercitación
Ejercicio 1:
Diseñe un sistema combinacional que accione el motor de un
limpiaparabrisas sabiendo que éste funciona cuando la llave general del
auto está en contacto, y además, se activa el control del limpiaparabrisas,
pero si desactiva este último, el motor sigue funcionando hasta que las
escobillas lleguen al costado izquierdo. Obtener la solución más simple, e
implementarla con las compuertas correspondientes.
Ejercicio 2:
Realizar el diseño e implementación de dos llaves de luz colocadas al pie y
cima de una escalera; de tal manera que pueda prender la luz de la llave
de abajo y apagarla con la llave de arriba y viceversa.
Ejercicio 3:
Utilizar decodificadores para implementar las siguientes funciones:
f a, b, c, d 0,6,8,10
4
f a, b, c, d 1,5,7,8,13
4
Ejercicio 4:
Realizar el diseño de un comparador de dos números de dos bits cada
uno. Este sistema tiene que tener 3 salidas: la de mayor, menor e igual.
Realizar el diseño con compuertas NAND.
Ejercicio 5:
Diseñar un sistema combinacional que ante la excitación de 4 variables
de entrada genere salidas que activen un display BCD 7 segmentos para
la representación de los dígitos decimales sobre el mismo. Considerar que
las combinaciones de entrada corresponden al código BCD 8421, y que
las restantes a las 16 posibles a las letras del alfabeto a, b, c, d, e y f.
Obtener la solución más simple, e implementarla con las compuertas
NOR.
98
Ejercicio 6:
Un registro de salidas en paralelo A0-A3 contiene un carácter codificado
en BCD 5421. Realizar un generador de paridad para agregar el
correspondiente bit Ap, que permita elegir paridad par o impar con una
llave selectora. Utilizar decodificadores y multiplexores
Ejercicio 7:
El diagrama de la figura indica el sistema de arranque de un motor
eléctrico. Existen cuatro variables binarias de control las cuales
permitirán el arranque del motor sólo cuando existe paridad impar entre
ellas. Hay dos casos especiales, llamados de emergencia que permitirán
arranque, y ocurren cuando todas las variables están en uno o cero
simultáneamente. Realizar con compuertas.
Ejercicio 8:
Construir un multiplexor de 8 canales a partir de multiplexores de 2
canales.
Ejercicio 9:
Realizar un detector de desbordamiento aritmético. Tenga en cuenta que
el intervalo de valores que se puede representar mediante números de n
bits en el sistema numérico de complemento a dos es:
n n
-2 -1 <=N<= 2 -1 – 1
99
100
CAPÍTULO 5
Sistemas Secuenciales
101
Capítulo 5
Sistemas Secuenciales
1.1 Introducción
Son aquellos Sistemas Digitales cuyas salidas no sólo dependen
de sus entradas en un momento dado, sino también de cómo han
evolucionado estas anteriormente.
102
Fig. 5.1. Sistema Secuencial Asíncrono.
103
El diseño básico de estos sistemas consiste en plantear una tabla
de verdad en la cual se tenga en cuenta el concepto tiempo. Ahora, una
función lógica no sólo depende de ciertas variables independientes sino
que también depende de sí misma. Por ejemplo:
𝑝 = 𝑓(𝑎, 𝑏, 𝑐, … , 𝑝, … . . )
𝑝𝑡+1 = 𝑓(𝑎, 𝑏, 𝑐, … , 𝑝𝑡 , … . . )
104
Tabla 5.1. Tabla de verdad del sistema secuencial de ejemplo.
105
Fig. 5.4. Función en
De la Figura 5.3:
𝑄𝑡+1 = 𝑆 + 𝑄𝑡 𝑅̅ = ̿̿̿̿̿̿̿̿̿̿
𝑆 + 𝑄𝑡 𝑅̅
106
Fig. 5.6. (a) Circuito – (b) Biestable SR (NOR).
107
Fig. 5.7. Componentes de una señal lógica.
2 Biestables
2.1 Introducción
Como se vio en el problema anterior, los Biestables son
secuenciales que poseen dos estados estables, es decir, que las variables
internas pueden adoptar en este caso dos estados en los cuales
permanecerán indefinidamente a menos que cambien las variables de
entrada. Se trata entonces de los secuenciales más simples ya que poseen
una sola variable interna. Los Biestables representan los circuitos base
para la construcción de secuenciales más complejos.
ASÍNCRONOS
108
2.2 Biestables asíncronos
Son aquellos en los cuales las entradas actúan directamente sobre
el biestable. Son ejemplos de estos biestables los vistos en el problema de
la alarma domiciliaria (Fig. 5.5 y Fig. 5.6). Puede decirse que la tabla de
verdad de la Tabla 5.1 es válida en todo momento.
109
b) Biestables síncronos maestro – esclavo
110
Fig. 5.10. Biestable SR activado por flanco.
111
3 Tipos de Biestables
3.1 Introducción
Existen otros tipos de Biestables diferentes al SR. Ellos son el
biestable JK, el biestable T, y el biestable D. Estos no se encuentran
disponibles en todas las clases (asíncronos, síncronos por nivel, etc.). Las
tablas de verdad son las indicadas en la Tabla 5.3 a, b y c,
respectivamente.
3.2 Biestables JK
En la Tabla 5.3 (a), para J = K = 1, Q t+1 = Q’t, es decir, la salida
adopta el valor opuesto al anterior. Por esta razón, sólo tienen aplicación
práctica los biestables JK síncronos activados por flancos. En las Figuras
5.12 y 5.13 se muestran algunos biestables JK.
112
Fig. 5.13. Biestable JK por flanco ascendente
a partir de un SR por flanco.
3.3 Biestables T
No están disponibles comercialmente. Se obtienen a partir de un
biestable JK haciendo J=K=T. También pueden obtenerse a partir de un
biestable D por flancos.
3.4 Biestables D
En la Tabla 5.3 se muestra la tabla de verdad de este biestable. Se
concluye que carece de aplicación un biestable D asíncrono. Por lo tanto,
los biestables D se disponen comercialmente como síncronos, ya sea por
nivel (D Latch), Maestro – Esclavo, o por flanco. Pueden obtenerse a partir
de un SR síncrono, haciendo S = R’ = D (Figura 5.14 a). También desde
un JK, haciendo J = K’ = D (Figura 5.14 b).
113
Fig. 5.14. Biestable D implementado con biestables SR y JK.
I) Registros de Desplazamiento
• Entrada serie, salida serie
• Entrada serie, salida paralela
• Entrada paralela, salida serie
II) Registros propiamente dichos (o sólo Registros)
• Entrada paralela, salida paralela
114
Registros de desplazamiento serie - serie
115
Registros propiamente dichos
116
estructuras en las cuales aparece un bus (conjunto de líneas lógicas que
transporta información) del cual se encuentran “colgados” registros. Estos
registros pueden actuar como elementos de interconexión entre el bus y
distintas unidades funcionales, o bien, ser registros de almacenamiento
temporario de información exclusivamente.
117
Fig. 5.18. Interconexión de registros por bus común.
118
Recibir desde la Unidad Funcional I la señal de listo (La Unidad
Funcional I, una vez que dispone de la información, la carga en
el Registro A con Enable A y luego envía la señal listo a la
Unidad de Control del Bus).
Activar la señal Salida Control A, con lo cual vuelca al bus el
contenido del Registro A.
Activar la señal Enable C, a fin de cargar el Registro C con la
información presente en el Bus.
Desactivar las señales Salida Control A y Enable C.
Indicar a la Unidad Funcional II que, en el Registro C, existe
información a procesar.
4.3 Contadores
Es un sistema secuencial formado por biestables y lógica
combinacional, capaz de almacenar en binario u otro código, la cantidad
de impulsos recibidos por su entrada de cuenta. Puede aplicarse como
divisor de frecuencia, control de tiempos, generador de direcciones en
sistemas de memoria, secuenciador en unidades de control, etc.
Contadores Asíncronos
119
Fig. 5.20. Contador asíncrono de 4 bits. (a) Diagrama circuital (b)
Diagrama de tiempo.
Contadores Síncronos
120
desplazamiento, son biestables síncrono maestro – esclavo o activados
por flancos.
Multiplicador paralelo
Consiste en aplicar el algoritmo de multiplicación que conocemos
desde la escuela primaria. Por ejemplo, para dos números binarios de 4
bits es:
1001
x 0110
-----------------------
0000
1001
1001
0000
-----------------------
0110110
121
Pueden hacerse dos observaciones:
El resultado tiene 8 bits. Si pretendemos que el producto tenga 4
bits, deberemos chequear el rebasamiento. Es decir, que si
multiplicamos dos números de 4 bits, el producto no debe superar
la máxima cantidad representable con 4 bits.
Si se consideran números con signo, los datos se deben convertir
a números positivos, tratar el bit de signo separadamente y
multiplicar sólo los valores absolutos. Finalmente, se deberá
expresar el resultado según el convenio de representación de
números negativos utilizado.
dónde:
Tand: Es el tiempo de retardo de una compuerta AND
Tsumador: Es el tiempo de retardo del SUMADOR de 4 BITS
122
Fig. 5.22 Multiplicador paralelo de 4 bits con generación de overflow
123
supuestos en el ejemplo para 4 bits, se requieren generadores de acarreo
anticipado de 32 bits cada uno, lo que complica aún más el hardware.
124
RD1 y RD2 son registros de desplazamiento paralelo-serie de 4
bits cuyo contenido aparece en las salidas inferiores del diagrama. Las
señales que controlan estos RD son:
B: borra los RD
CP1: carga el RD1
CP2: carga el RD2
Ck: desplaza un bit hacia la derecha los contenidos de RD1 y RD2
dónde:
Tcp1: tiempo de carga de RD1
Tsumador: tiempo de suma del SUMADOR de 4 BITS.
Td: tiempo necesario para desplazar los contenidos de RD1 y RD2.
Si aproximamos:
𝑇𝑐𝑝1 = 𝑇𝑑 = 𝑇
y
𝑇𝑠𝑢𝑚𝑎𝑑𝑜𝑟 = 4𝑇
tenemos que:
𝑇𝑃𝑠 = (2𝑇 + 4𝑇)4
125
Finalmente, si consideramos que en promedio los números tienen
igual cantidad de 1s y 0s, el tiempo de multiplicación será la media:
𝑇𝑃𝑠 = 3,5𝑛𝑇
𝑇𝑃𝑝 = 5𝑇 + 𝑇𝑔𝑎
dónde:
Tga: tiempo de propagación de un generador de acarreo anticipado de n
bits
126
4.4.2 División binaria
La DIVISIÓN es una sucesión de RESTAS. Por lo tanto, para
DIVIDIR dos números (DIVIDENDO sobre divisor) para obtener un
COCIENTE y un RESTO, deberíamos restar del DIVIDENDO el divisor
tantas veces hasta obtener un RESTO menor que el DIVISOR. Como
dijimos anteriormente, la ALU de un procesador siempre incluye un
sumador, por lo tanto la división se podría resolver por software mediante
un programa. Esta solución consume un tiempo de división variable y
alto. Para resolver este problema algunas ALUs incluyen en su hardware
un circuito que implementa la división.
1101 0010
10 0110
10
10
01
127
Para resolver el hardware de la división pueden construirse
divisores paralelos (o concurrentes) y divisores serie (o secuenciales). Los
primeros resultan en circuitos de gran complejidad. En cambio los
divisores serie resultan circuitos relativamente simples.
128
DIVIDENDO D = D3D2D2D0 (entrada)
Divisor = d3d2d1d0 (entrada)
COCIENTE = C3C2C1C0 (salida)
RESTO = R3R2R1R0 (salida)
129
Tabla 5.5 Secuencia de control del circuito divisor de la Figura 5.24
5 Ejercitación
Ejercicio 1:
130
Ejercicio 2:
Explicar el significado del siguiente cuadro que con brevedad sintetiza la
utilización del biestable J-K como R-S, T ó D.
Ejercicio 3:
Deducir si el siguiente flip-flop es síncrono o asíncrono, y cuál es su
funcionamiento.
Ejercicio 4:
Determinar en qué código se lleva la cuenta usando el siguiente registro
de desplazamiento realizado con biestables J-K. Suponer que inicialmente
QO=Ql=Q2=Q3=0.
131
Ejercicio 5:
Realizar los diagramas en bloque de los cuatro registros de
desplazamiento: entrada serie salida serie, entrada serie salida paralelo,
entrada paralelo salida serie y entra-da paralelo salida paralelo.
Ejercicio 6:
a) A partir de un biestable SR, obtener un JK.
b) A partir de un biestable JK, obtener un biestable T.
c) A partir de un biestable SR, obtener un biestable D.
Ejercicio 7:
Determinar el Sistema combinacional necesario para indicar que los
contadores binarios han alcanzado el valor equivalente decimal 52, e
inicie el conteo nuevamente desde 0.
132
CAPÍTULO 6
Memorias Electrónicas
1 Visión General
1.1 Introducción
1.2 Clasificación de las memorias electrónicas
2 Memorias de Acceso Aleatorio (RAM)
2.1 Definición
2.2 Memorias RAM de lectura/escritura
2.3 Memorias RAM de sólo lectura (ROM)
2.4 Extensión de longitud de palabra y capacidad
3 Memorias de Acceso Serie
3.1 Definición
3.2 Registros de desplazamiento
3.3 Memorias FIFO
3.4 Memorias LIFO
4 Ejercitación
133
Capítulo 6
Memorias Electrónicas
1 Visión General
1.1 Introducción
Las memorias son los dispositivos de almacenamiento de datos e
instrucciones en una computadora. Llamamos sistema de memoria al
conjunto de estos dispositivos y los algoritmos de hardware y/o software
de control de los mismos. Diversos dispositivos son capaces almacenar
información, lo deseable es que el procesador tuviese acceso inmediato e
ininterrumpido a la memoria, a fin de lograr la mayor velocidad de
procesamiento. Desafortunadamente, memorias de velocidades similares
al procesador son muy caras. Por esta razón la información almacenada
se distribuye en forma compleja en una variedad de memorias diferentes,
con características físicas distintas.
134
b) Capacidad de almacenamiento: Cantidad de bits que puede
almacenarse. Si bien la unidad de almacenamiento es el bit,
muchas veces se usa el byte. Así encontramos capacidades en
Kb (1Kb = 1024 bytes), en Mb (1Mb = 1024 Kb), en Gb (1Gb =
1024 Mb), etc.. Las memorias se consideran organizadas en
palabras. Cada palabra es un conjunto de bits a los cuales se
accede simultáneamente.
d) Tipo de acceso:
Acceso aleatorio: cuando el tiempo de acceso es similar
para cualquier posición, y
Acceso serie: cuando el tiempo de acceso depende de la
posición que ocupa la palabra dentro de la memoria.
e) Tiempo de ciclo (tc): Indica el mínimo tiempo entre dos
accesos sucesivos a la memoria. El tiempo tc es mayor que el
tiempo ta. El ancho de banda de una memoria se define como
la inversa de tc y es un indicativo de la cantidad de palabras
procesables por unidad de tiempo.
f) Medio físico
Electrónicas: construidas con semiconductores.
Magnéticas: basadas en el fenómeno de histéresis de los
materiales ferromagnéticos.
Ópticas: utilizan la tecnología láser.
g) Estabilidad
Volatilidad: el contenido de la memoria se pierde cuando se
suspende la alimentación eléctrica.
Almacenamiento dinámico: El bit se almacena como carga
de una capacidad parásita de un transistor MOS. La
información se pierde cuando el capacitor se descarga, lo
que hace necesario un refresco periódico para restaurar el
contenido antes que se deteriore.
Lectura destructiva (DRO): Al efectuar la lectura se pierde
la información, por lo cual dicho proceso debe
acompañarse de una restauración (Tabla 6.1).
135
Fig. 6.1. Tiempo de acceso (palabras/seg) en función del costo ($/bit).
136
1.2 Clasificación de las memorias electrónicas
Las memorias electrónicas pueden considerarse como un sistema
digital mixto (combinacional y secuencial) capaz de almacenar
información binaria el cual se puede acceder (introducir o extraer
información) sólo parcialmente en un momento dado.
137
2 Memorias de Acceso Aleatorio (RAM)
2.1 Definición
Desde los 60 aparecen los circuitos integrados que permiten
construir memorias de alta capacidad. Actualmente se encuentran
memorias semiconductoras del orden de los Gb. Podemos considerar la
memoria como un conjunto de posiciones, donde cada una de ellas está
formada por una o más celdas (células elementales). El esquema general
de una memoria de acceso aleatorio puede verse en la Figura 6.2 y el
diagrama en bloque en la Figura 6.3.
138
Fig. 6.3. Diagrama en bloques de una memoria RAM.
139
Fig. 6.4. Esquema de una memoria RAM 2D.
140
Este valor en la cantidad de líneas de salidas del decodificador se
reduce en una organización 3D a:
141
Fig. 6.6. Celda básica para una organización 2D.
142
En la Figura 6.8 se muestra una RAM de lectura/escritura con
organización interna 2D (que usa la celda básica de la Figura 6.6) de 16
palabras de 4 bits.
143
c) Señales de control de lectura escritura (𝑳⁄𝑬̅ ):
Si 𝐿⁄𝐸̅ = 1 se lee la memoria, y
Si 𝐿⁄𝐸̅ = 0se escribe en la memoria.
d) Señales de control:
Si 𝐶𝑆 ̅̅̅̅ = 1 las líneas de datos se colocan en alta
impedancia
̅̅̅̅ = 0 y 𝐿⁄𝐸̅ = 0 las líneas de datos se conectan al
Si 𝐶𝑆
bus, y el contenido de la posición direccionada se vuelca
al bus.
Si 𝐶𝑆̅̅̅̅ = 0 y 𝐿⁄𝐸̅ = 1 las líneas de datos de entrada se
conectan al interior de la memoria y las líneas de datos
de salida se colocan en alta impedancia.
̅̅̅̅ = 1 se deshabilitan los circuitos de salida de la
Si 𝑂𝐸
memoria sin tener en cuenta el estado de las señales 𝐶𝑆̅̅̅̅
y 𝐿⁄𝐸̅ .
144
Un ciclo de lectura o escritura comienza con la aplicación de una
dirección en las líneas de direccionamiento (bus de direcciones), la línea
̅̅̅̅ (𝐶𝐸
𝐶𝑆 ̅̅̅̅ como se ve en la Tabla 6.2) debe estar en cero desde
aproximadamente al mismo momento.
145
Fig. 6.10. Diagrama de tiempo
para la operación de lectura y escritura.
146
actuando el proceso de refresco, no es posible acceder a la memoria. La
velocidad de estas memorias en menor que las estáticas, sin embargo la
densidad de integración en apreciablemente mayor.
Si bien esta memorias son más lentas que las estáticas, poseen
una característica interesante. En muchos casos es necesario leer o
escribir direcciones consecutivas de memoria. Si este es el caso, y
además, pueden colocarse los datos en una misma fila, será necesario
sólo cambiar la dirección de columna para realizar la operación. Esto se
147
traduce en velocidades aún mayores que las estáticas. Si bien lo anterior
es posible, puede ser complejo aprovecharlo en la generalidad de los
casos.
148
Los diodos se utilizan como elementos acopladores. La conexión de
varios diodos a una misma línea implementa la función OR de las
señales de entrada. Puede decirse entonces que una ROM de 2n x m
bits, podría realizar cualquier combinacional de n variables de entrada y
m funciones.
Las salidas del bus de datos de la Figura 6.12 son triestado para
permitir la conexión de más de una memoria a un bus común.
149
Fig. 6.13. Esquema de las conexiones en una memoria ROM.
150
Fig. 6.14. Memoria de N palabras de k.m bits.
151
Fig.6.15. Memoria de 2kN palabras de k.m bits.
152
Fig.6.16. Memoria ejemplo.
153
Fig. 6.17. Esquema de una memoria serie.
154
Fig. 6.20. Esquema de una memoria serie posición a posición.
155
3.2.1 Registros de desplazamiento estáticos
156
Fig. 6.23. Esquema de un registro de desplazamiento dinámico.
157
Fig. 6.25. Circuito para la operación de escritura.
158
Generar las señales de control necesarias para que el primer
dato escrito esté disponible para la primera lectura.
Deberá aceptar al menos tres entradas exteriores: señal de
lectura/escritura, señal de inicio de ciclo y señal de sincronismo.
159
la va vaciando. La capacidad de la memoria debe estar acorde con la
diferencia de velocidades y el tamaño del bloque a transferir.
160
multiplexor. Se sugiere al alumno interpretar la Figura 6.32 y realizar los
ciclos de lectura/escritura.
161
Fig. 6.32. Diagrama en bloques de una memoria LIFO implementada con
un registro de desplazamiento reversible.
4 Ejercitación
Ejercicio 1:
Determinar cuál es el valor de n1 y n2, si la memoria es de: 4 Kbytes, 64
Kbytes, 1Mbytes, 4096 palabras de 32 bits, 65536 palabras de 16 bits o
524288 palabras de 64 bits.
162
Memoria de Acceso
n2 Aleatorio
[RAM]
Bus de
Direcciones
n1 Bus de Datos
Ejercicio 2:
Cuantos bits de direccionamiento son necesarios para la localización de
una palabra en una memoria de 256 posiciones y de una de 1024.
Ejercicio 3:
Cuantos bits posee una memoria de 32Kx8, siendo 32K la cantidad de
posiciones a direccionar y 8 la cantidad de bits de cada posición o
palabra? ¿Cuantos bits de direccionamiento son necesarios?
Ejercicio 4:
Se tienen dos memorias RAM de 256 posiciones cada una. ¿Cuantos bits
se necesitarán para direccionar a ambas de manera de obtener una
memoria de 512 posiciones? Realizar una posible conexión.
Ejercicio 5:
Realizar una memoria de 2K X 8, partiendo de pastillas de 1K X 4.
Ejercicio 6:
Indique la cantidad de biestables de una memoria RAM de 4 Gbytes.
Ejercicio 7:
Suponga una memoria de 1 Mbytes. ¿De qué tamaño serán los
decodificadores si se usan las técnicas 2D y 3D, respectivamente?.
163
Ejercicio 8:
Suponga que en un determinado sistema de control, se debe almacenar la
temperatura de 2 sensores 1 vez cada hora durante las 24 hs (la
temperatura viene dada por cuatro dígitos, p. ej. 100.6, o 028.7 grados
centígrados) y se debe llevar un registro de las temperaturas de los
últimos 2 meses, cuyos valores máximo y mínimo esperables son 150 y
10 °C? ¿Qué capacidad de memoria se necesitaría para llevar este
registro? Considere que cada lectura se puede codificar con dígitos BCD,
en forma binaria, o en ASCII, y que se puede seleccionar la forma que
demande menos capacidad de memoria.
Ejercicio 9:
Teniendo en cuenta el tamaño de memoria definida en el ejercicio
anterior, ¿en cuánto tiempo se llenará dicha memoria si los sensores
registran valores 1 vez cada 3 minutos?
Ejercicio 10:
Un circuito combinacional acepta un número de entrada de tres bits
codificado en binario natural y genera su cuadrado en sus salidas
correspondientes. Escribir la tabla de verdad de este circuito. ¿Cómo se
obtendría el mismo funcionamiento remplazando el circuito
combinacional por una memoria ROM? ¿De qué tamaño sería la memoria
ROM? Mostrar el esquema de conexiones pertinente.
164
CAPÍTULO 7
Arquitectura Básica de una Computadora
165
Capítulo 7
Arquitectura Básica
de una Computadora
166
Es común referenciar a los primeros cuatro elementos como
HARDWARE y al quinto como SOFTWARE.
Funcionamiento:
167
4) UB: La UNIDAD DE BUSES cumple la función de transportar
información entre las unidades del Sistema. Por el tipo de
información, podrían clasificarse los buses en:
BUS de DATOS: Transporta Operandos o Instrucciones
BUS de DIRECCIONES: Transporta Direcciones
BUS de CONTROL: Transporta señales de Control.
2 Máquina Elemental
2.1 Introducción
A fin de estudiar la arquitectura de una computadora como la
definida, presentaremos una Máquina Elemental utilizando el planteo de
Caxton Foster, de su libro Arquitectura de Computadoras.
168
Su memoria es de 4096 x 16 (4096 posiciones de memoria de
16 bits cada una), y
Usa punto fijo y sus datos son de 16 bits (15 bits de mantisa y
un bit de signo) como se observa en la Figura 7.2
169
Externamente tiene una consola con llaves, pulsadores y luces,
que permite al operador comunicarse con la Máquina. El aspecto se
muestra en la Figura 7.4.
170
Fig. 7.5. Diagrama en bloques de la máquina elemental.
REGISTROS:
o ACC (16 bits): El registro Acumulador es un registro de
propósitos generales, se utiliza para distintos fines.
171
o IR (16 bits): El registro de Instrucciones es un registro de
propósito especial. Se utiliza para guardar la instrucción
que se ha buscado desde la memoria.
o PC (12 bits): El registro Contador de Programa es un
registro de propósitos especiales. Se utiliza para guardar la
dirección de memoria de la próxima instrucción a buscar.
o Registro Z (16 bits) y Registro Y (16 bits): Los Registros de
Operandos de entrada a la ALU son registros de propósito
especial y no son accedidos por el programador.
o 1 (1 bit): Es un registro de propósito especial. Permite
generar un 1.
172
• Pulsador de CARGAR PC (Load PC)
Acción: Transfiere el contenido del SR al PC
• Pulsador de DEPOSITAR (Deposite)
Acción: Transfiere el contenido del SR a la posición de
memoria indicada por el PC, luego incrementa el PC
• Pulsador de EXAMINAR (Examine)
Acción: Transfiere el contenido de la posición de memoria
indicada por PC al IR, luego incrementa el PC
• Pulsador de RESET (Reset)
Acción: Borra la RAM y los Registros
173
Tabla 7.1 Conjunto de instrucciones
174
ADD XXXX: Realiza la suma aritmética en complemento a
dos de los operandos ubicados en el acumulador y en la
dirección de memoria expresada en el campo XXXX, y deja
el resultado en el acumulador. El contenido de la dirección
de memoria XXXX no cambia, mientras que si lo hace el
dato que se encontraba en el acumulador. Si el resultado
de la suma es mayor que 215-1 o menor que –215 la
computadora se detiene.
175
SRJ XXXX: Sirve para hacer un salto del programa a una
subrutina. Para esto realiza una copia del contador del
programa en los 12 bits más bajos del acumulador (en los
4 bits más altos del acumulador se ponen ceros). Luego, se
copia el número XXXX en el contador del programa para
que la próxima instrucción sea tomada de dicha dirección.
176
NOP XXXX: Esta instrucción no hace nada. El campo de
direcciones XXXX se ignora.
177
o Load PC: envía los 12 bits más bajos del registro de
llaves (SR) al PC.
o Saltos (JMP, JMA, SRJ): envían los 12 bits más bajos
del IR al PC.
o SRJ (salto a subrutina): envía los 12 bits del PC al
Acumulador (ACC).
o Búsqueda de una instrucción: envía los 12 bits del PC al
MAR.
o Búsqueda de un Operando: envía los 12 bits más bajos
de RI al MAR.
178
Fig. 7.7. La transmisión de direcciones en la Blue.
179
2.6 Unidad de control
Ambas pueden verse como una caja negra con exactamente las
mismas entradas y las mismas salidas. La diferencia está en su
implementación interna.
180
Fig. 7.9. Diagrama en bloques de la Unidad de Control Cableada.
181
DETENIDA (STOP)
ESTADO BÚSQUEDA
FUNCIONANDO
(RUN) EJECUCION
2.6.2 Secuenciador
182
Cuando la cuenta llega a 1001 (CP9), el contador se borra y
comienza un nuevo CICLO DE MEMORIA. Además, este pulso CP9 se usa
para sincronizar el biestable ESTADO y borrar el biestable SR sin
nombre. Si la instrucción en proceso es de un ciclo, D toma el valor 0; en
el caso de instrucciones de más de un ciclo, D toma el valor 1. De esta
forma la máquina pasa de CICLO DE BÚSQUEDA a CICLO DE
EJECUCIÓN automáticamente después del CP8.
El Ciclo de Búsqueda
183
Fig. 7.10. Diagrama en bloques del secuenciador.
184
En el pulso de reloj 1 se copia el contenido del contador de
programa (PC) al registro de direcciones de memoria (MAR) y al registro Z
de la ALU, y se inicia el ciclo de lectura de la memoria. En el pulso de
reloj 2 se coloca el número +1 en el registro Y de la ALU. En el pulso de
reloj 3 esperamos que se realice la suma PC + 1. En el pulso 4 se copia el
resultado de la suma (la salida de la ALU) al contador de Programa (esto
incrementa el PC y está listo para indicar la próxima instrucción). En el
pulso 5 se copia el dato de la memoria al registro buffer de memoria
(MBR). En el pulso 6 se copia el contenido del MBR al registro de
instrucción (IR). Así culmina el Ciclo de Búsqueda.
185
Sin embargo, si la instrucción requiere en su ejecución acceder a
la memoria, o si se trata de las instrucciones INP o OUT, será necesario
asignar el próximo ciclo a Ejecución.
El Ciclo de Ejecución
186
Tabla 7.3. Ejecución de las instrucciones de uno y dos ciclos.
187
Tabla 7.4. Ciclo de búsqueda de las instrucciones INP y OUT.
188
Fig. 7.12. Lógica para el funcionamiento de las E/S.
189
Entonces el circuito de control deberá tener en cuenta si la
máquina está parada (con el biestable Estado = 0; esto significa que B = 1
y E = 0) y que se producirá una única secuencia de pulsos CP1 a CP8
sólo si el operador presionó EXA o DEP.
190
Control (leer la memoria, escribir la memoria, etc.), el campo Test se
relaciona con la necesidad de chequear el estado de la máquina en un
momento dado (Bit 15 del acumulador, señal de overflow, etc.). Los
campos Envíe y Reciba tienen que ver con enviar los contenidos de los
registros al bus o levantarlos del mismo. Por último los campos falso y
éxito están relacionados con el resultado del chequeo indicado por el
campo Test y definen la próxima microinstrucción a ejecutar. Nótese que
la máquina interior no posee contador de programa. En la Tabla 7.5
puede verse el contenido de la ROM, es decir, los microprogramas
correspondientes a cada instrucción.
191
Microinstrucción de la Máquina Microprogramada
192
de la máquina elemental microprogramada.
El circuito de la UNIDAD de CONTROL MICROPROGRAMADA se
observa en la Figura 7.15. Obsérvese que el contenido del micro-MAR (los
8 biestables D de la Figura) puede tener cuatro orígenes:
Contenido del campo FALSO, en caso que la salida del multiplexor
sea cero.
Contenido del campo ÉXITO, en caso que la salida del multiplexor
sea 1.
El código de operación de la macrointrucción residente en el
registro de instrucciones, en el caso que el bit 5 del campo acción
sea 1
Cero, en el caso que RESET sea 1 (esta señal proviene del botón
Master Reset en la consola del operador).
193
Fig. 7.15. Unidad de control microprogramada.
194
195
196
Tabla 7.6. Contenido de la ROM (256 x 45).
197
2.8 Bus en la máquina elemental
Si analizamos las órdenes que emite la UC (Cableada o
Microprogramada), podemos concluir que la gran mayoría implica una
transferencia entre registros. Con exactitud son 20 señales entre enviar al
BUS y cargar desde el BUS. Sólo 4 órdenes no implican transferencias:
LEER, ESCRIBIR, TRA = 0 y TRA = 1. Gran parte de la actividad de la
máquina se resuelve transfiriendo registros.
198
Fig. 7.16. Circuito que resuelve los requerimientos
y las señales de control.
199
Fig. 7.17. Circuito asociado al Registro MBR.
200
Fig. 7.18. Diagrama en bloques de la unidad aritmética y lógica.
201
3 Ejercitación
Ejercicio 1:
¿Cuál es el efecto de las siguientes instrucciones en octal?. Indique el
mnemónico correspondiente.
177777 137701
140277 013150
042322 125000
075303 104210
063501
Ejercicio 2:
Complete el siguiente cuadro con las restantes formas de representación.
----------------------------------------------------------------------------------
Mnemónico octal binario
----------------------------------------------------------------------------------
ADD 50 -- --
-- 150510 --
-- -- 1111000001001000
NOT 33 -- --
-- -- 0011000001010110
-- 110350 --
XOR 276 -- --
----------------------------------------------------------------------------------
Ejercicio 3:
Escriba un programa comenzando en la ubicación 400 que intercambie
los contenidos de las ubicaciones 550 y 551. Expresarlo en
representación octal y mnemónica.
Ejercicio 4:
Escriba la representación octal del siguiente programa. ¿Cuál es el
contenido del acumulador y de las ubicaciones 3007, 3010, 3011 3012
después de la ejecución del programa?.
202
3011 074000
3012 77177
Ejercicio 5:
Escriba un programa que comience en la ubicación 550 que efectúe la
operación lógica AND entre el contenido de la ubicación 560 y 563.
Depositar el resultado en 560 e indicar el valor resultante en octal a
partir de los siguientes datos en decimal:
(560) = +1307
(563) = +2431
Ejercicio 6:
Proyecte una secuencia de instrucciones que efectúe un salto a la
ubicación 255 si el contenido de la dirección 300 es cero, y a la ubicación
333 si el contenido es distinto de cero.
Ejercicio 7:
Suponga que la máquina elemental debe ser dotada del doble de
instrucciones. ¿Cómo modificaría la estructura de la palabra,
manteniendo su longitud con dicho objeto?. ¿Cuántas palabras pueden
direccionarse directamente según su propuesta?.
Ejercicio 8:
Escriba un programa que efectúe una multiplicación entre dos números
usando el método de las sumas sucesivas.
Ejercicio 9:
Escriba en instrucciones de la blue el siguiente código, parte de un
programa de lenguaje de alto nivel tipo C++, considerando que todas las
variables son enteras, y proponiendo posiciones de memoria para el
almacenamiento de los datos y el programa.
203
Ejercicio 10:
Con instrucciones de la Máquina Elemental escriba el siguiente código:
i=o10
while i<0 do
a[i]= b[i]
i=i+1
break a[i]= 17o
done
Ejercicio 11:
Escriba en instrucciones de la blue la siguiente expresión algebraica,
parte de un programa de lenguaje de alto nivel tipo C++, considerando
que todas las variables son enteras, y proponiendo posiciones de memoria
para el almacenamiento de los datos y el programa. Realizarlo como
subrutina; indicar expresamente el paso y retomo de la subrutina al
programa principal.
f = (g + h) - (i + j)
Ejercicio 12:
Realice el circuito de la Unidad de Control Cableada usando un contador
y un decodificador para generar los 8 pulsos (CP1 a CP8) del Ciclo de
Máquina de la Máquina Elemental.
204
CAPÍTULO 8
Arquitectura Convencional
1 Visión General
1.1 Formato de instrucciones
1.2 Modos de direccionamiento
2 Nuevo Hardware y Nuevo Software
2.1 Registros nuevos
2.2 Máquina elemental indexada
2.3 Hacia una estructura convencional
3 Microprocesador 8088
3.1 Introducción
3.2 Diagrama en bloques
4 Ejercitación
205
Capítulo 8
Arquitectura Convencional
1 Visión General
En este Capítulo veremos inicialmente dos conceptos: el formato
de las instrucciones y los modos de direccionamiento. Luego, haremos
modificaciones a la Máquina Elemental para obtener nuestra Máquina
Elemental Indexada (MEI), que se parece más a la arquitectura actual de
una computadora. Después, agregaremos Interrupciones a la Máquina
Elemental Indexada (MEI) y, finalmente, estudiaremos el microprocesador
INTEL 8088 como ejemplo de máquina (CPU) convencional.
206
La instrucción ADD A,B,C,D implica:
207
sumar A + B, colocar el resultado en B y buscar la próxima instrucción de
acuerdo al PC. La dirección del operando B no se utiliza.
208
operandos (sobre los cuales se realiza la operación). Pueden indicarse
como OPER1 y OPER2, así:
MNEMÓNICO OPER1
MODO DE
DIRECCIONAMIENTO
INMEDIATO
OPERANDO EN
LA CPU MODO DE
DIRECCIONAMIENTO
POR REGISTRO
MODO DE
MODOS DE DIRECCIONAMIENTO
DIRECCIONAMIENTO DIRECTO
MODO DE
OPERANDO EN DIRECCIONAMIENTO
LA MEMORIA INDIRECTO POR MEMORIA
MODO DE DIRECCIONAMIENTO
INDIRECTO POR REGISTRO
(INDEXADO)
209
1.2.1 Operando en la CPU
210
OPER1 está en un registro de la CPU: el ACC (Modo de direccionamiento
por Registro).
211
2 Nuevo Hardware y Nuevo Software
Directo:
Si el contenido del Campo Modificador es 0, usa el Campo de
Dirección como la dirección de un operando, por ejemplo:
LDA 0, 1000
Carga el Acc con el contenido de la posición 1000
212
Indirecto por memoria:
Si el contenido del Campo Modificador es 1, el Campo de
Dirección apunta a una posición de memoria cuyo contenido no
es el operando sino la dirección de éste. Por ejemplo, suponiendo
que el contenido de la posición 1000 es 3400:
LDA 1, 1000
Carga el Acc con el contenido de la posición 3400
Sumador de Direcciones
213
Una de ellas es que puede existir más de un programa residente en
memoria en un momento dado (Multiprogramación) y no todos pueden
comenzar en la dirección CERO. Otra, es que las primeras posiciones de
memoria se reservan para otras tareas, como el manejo de entrada salida
(se discutirá posteriormente). Aquí, se puede imaginar la necesidad de un
programa administrador del sistema (que podríamos llamar Monitor).
Este programa debería, entre otras tareas, encargarse de decidir la
ejecución de los programas de usuario, asignándole direcciones de
comienzo y área de memoria a utilizar (Proceso llamado ensamblado del
programa).
214
Supongamos ahora que el Relocating Loader, por razones ya
mencionadas, carga el programa a partir de la dirección 5000. El
resultado de su ejecución introduce las siguientes modificaciones:
215
Fig. 8.6. Diagrama en bloques de la Máquina Elemental Indexada.
216
217
218
219
Tabla 8.1. Conjunto de instrucciones de la
Máquina Elemental Indexada.
220
Tabla 8.2. Formato, y ciclos de búsqueda y ejecución
de la instrucción LDA 3, XXXXXX.
221
El ciclo de búsqueda es igual al de la Máquina Elemental. El ciclo
de ejecución consta de dos ciclos de memoria. En CP1 del primer ciclo de
ejecución, se direcciona la posición siguiente para obtener el campo de
dirección de la instrucción (tener en cuenta que esta instrucción ocupa
dos palabras en Memoria). Luego, entre CP2 y CP4 se incrementa
nuevamente al PC de forma tal que en el siguiente ciclo de búsqueda se
apunte a la próxima instrucción. En CP5 y CP6 se cargan los registros de
entrada al sumador de direcciones, para calcular la dirección efectiva del
operando.
222
223
Tabla 8.3. Formato, y ciclos de búsqueda y ejecución
de la instrucción LDA 1, XXXXXX.
224
Tabla 8.4. Formato, y ciclos de búsqueda y ejecución de la instrucción
LDA 0, XXXXXX.
225
4) INC 2, XXX Incrementar el Registro Índice RIF en el
valor XXX (número signado de 9 bits)
226
5) ENI 3, XXXXXX Cargar el RID con el valor XXXXXX
227
Comentarios:
La Máquina Elemental Indexada no tiene formato fijo de
instrucción,
No todas las instrucciones que hacen referencia a memoria
deben tener todos los modos de direccionamiento. Por
ejemplo, la instrucción LIX 2, XXXXXX no posee modo de
direccionamiento indexado ya que se estaría autoindexando.
Las instrucciones pueden tener de 1 a 4 ciclos de máquina
para ejecutarse, dependiendo de la instrucción y de su modo
de direccionamiento. Se sugiere que el lector deduzca los
ciclos de máquina para todas las instrucciones de Máquina
Elemental Indexada (MEI) que se indican al final del Capítulo.
2.2.3 Interrupciones
Manejo E/S
Mediante Interrupciones
228
Manejo de Entrada/Salida Bajo Control del Procesador
Polling
Interrupciones
Vectorizadas
229
origen proviene del interior del Procesador (desborde de registros, división
por cero, código de operación no válido, etc.). Y las llamadas
interrupciones por software, cuando se dispara un proceso de
interrupción mediante instrucciones especiales.
230
El estado de Interrupción ocurre, según se ve en la Figura, cuando
la línea IRQ está en 1 (indicando que algún dispositivo requiere atención),
el sistema de interrupciones está habilitado (SI = 1), y con CP8 en el
estado de Ejecución o al final de un ciclo de Búsqueda, si la instrucción
corriente es de 1 ciclo (esto asegura la finalización de la ejecución de la
instrucción corriente).
Ciclo de Interrupción
231
Tabla 8.7. Ciclo de interrupción.
Rutina de Interrupción
232
Fig. 8.8. Secuencia de acciones de la rutina de interrupción.
233
nada hubiera pasado. Restaurar contexto implica volver a cargar
los registros de la CPU con los valores que tenían antes.
234
Polling
235
Una alternativa, que no se implementa en la Máquina Elemental
Indexada, es agregar un nuevo registro llamado Registro Máscara (RM)
cuyo contenido puede modificarse con una nueva instrucción: EMR
Valor.
236
Vector de Interrupciones
237
Fig. 8.10. Vector de Interrupciones.
238
REGISTRO DE DATOS: a través del cual fluyen los datos de la
transferencia.
REGISTRO DE CONTROL: a través del cual la CPU envía los
comandos.
REGISTRO DE ESTADO: refleja el estado del periférico.
239
Estas instrucciones tienen ahora ciclos de máquina diferentes a
los vistos en la máquina Elemental. La diferencia consiste en que no
realizan la verificación de la señal R (Ready). Simplemente hacen TRA = 1
durante un pulso de reloj, y luego, TRA = 0.
240
Tabla 8.10. Ciclo de la instrucción INP YY.
PERIFÉRICO DE SALIDA
Si se trata de un Periférico de Salida y se ha ejecutado una
instrucción OUT YY, su Registro de Datos se cargará con el dato que esté
en el BUS de E/S cuando el periférico seleccionado (YY) reciba la señal
TRA e iniciará acciones.
241
PERIFÉRICO DE ENTRADA
Si se trata de un Periférico de Entrada y se ha ejecutado una
instrucción INP YY pueden hay dos opciones:
o Si PRO = 0, la Máquina no está atendiendo una interrupción.
Por lo tanto, cuando se ejecuta INP YY, el periférico YY recibe
TRA e inicia las acciones para obtener el dato solicitado.
o Sin PRO = 1, la Máquina está atendiendo una interrupción y su
Registro de Datos tendrá el dato solicitado y estará disponible en
el Bus de E/S cuando el periférico sea seleccionado (CP7 de la
instrucción INP YY). La señal TRA no se genera en este caso por
la instrucción INP YY.
242
El programador debe escribir la Rutina de Interrupción de manera
que los dispositivos de menor prioridad no puedan interrumpir un
proceso de interrupción corriente de mayor prioridad. Y habría que
agregar nuevo hardware y más instrucciones.
243
arquitectura fundamental, dentro del alcance inicial de estas Guías
Didácticas, se conserva en los procesadores actuales de nuestra máquina
convencional.
3.1 Introducción
244
• Arquitectura interna de 16 bits,
• Capacidad de direccionamiento de 1 Mbyte,
• Compatibilidad de Software con el 8086 CPU,
• Variedad en modos de direccionamiento,
• Operaciones en bloques, palabras y bytes,
• Aritmética signada y no-signada de 8 y 16 bits, en binario,
decimal, incluyendo multiplicación y división, y
• 14 registros de 16 bits.
245
3.2 Diagrama en Bloques (Figura 8.15)
246
3.2.1 BIU Y EU
Cuando la BIU detecta que el bus externo está ocioso, envía una
solicitud a la memoria para leer el siguiente byte en el flujo de
instrucciones. Los bytes leídos son almacenados temporariamente en la
cola de instrucciones. Cuando la EU requiere un nuevo byte de
instrucción, lo toma de esta cola. La dimensión de cuatro bytes de la cola
responde al compromiso de que la EU no tenga que estar esperando por
un nuevo byte por un lado. Y por otro lado, colas demasiado largas
ocuparían mucho al bus llenándose con bytes que podrían no utilizarse
(por ejemplo, cuando se ejecuta una instrucción de salto).
247
La Unidad de Control del 8088 es microprogramada, y posee una
ROM de 504 palabras de 21 bits (se recomienda leer la máquina
elemental microprogramada) que almacena, aproximadamente, 90
microprocedimientos. Cada instrucción, para ejecutarse, requerirá de al
menos un microprocedimiento.
248
Campo Registro: Proporciona el operando,
Campo de Condición. Indica la activación de registro.
249
DI (Índice), usado en direccionamiento.
SP (Puntero de pila), apunta a la última dirección de pila
utilizada.
F Registro de condiciones
Bit 0: C Acarreo, C=1 si hay acarreo.
Bit 1: No usado
Bit 2: P Paridad, P=1 si el resultado tiene un número
par de unos.
Bit 3: No usado
Bit 4: AC Acarreo auxiliar, AC = 1 si hay acarreo del
bit 3 al bit 4 del resultado.
Bit 5: No usado
Bit 6: Z Cero, Z=1 si el resultado en cero.
Bit 7: S Signo, S=1 si el resultado es negativo.
Bit 8: T Trap, T=1 si ocurre alguna interrupción.
Bit 9: I Interrupción, I=1 indica que las
interrupciones están habilitadas.
Bit 10: D Dirección, D=1 indica sentido de alto a bajo
en el procesamiento de cadenas.
Bit 11: O Overflow, O=1 si hay overflow.
Bit 12: No usado
Bit 13: No usado
Bit 14: No usado
Bit 15: No usado
250
memoria se direcciona usando dos componentes de dirección
consistentes en un selector de segmento de 16 bits y un offset de 16 bits
(Figura 8.17). El primero indica el segmento seleccionado y el segundo
indica el byte deseado dentro del segmento. Todas las instrucciones que
direccionan operandos en memoria deberán especificar el segmento y el
offset. Sin embargo, en la mayoría de los casos, no es necesario indicar en
forma explícita el segmento en uso. El registro de segmento correcto es
elegido automáticamente de acuerdo a la Tabla 8.12. Existen
Instrucciones especiales que permiten especificar el segmento para casos
determinados.
251
Tabla 8.12. Selección del registro de segmento.
MOV AH, 14 14 AH
252
la base: contenido de cualquier registro base BP o BX.
el índice: contenido de cualquier registro índice SI o DI.
253
• salto directo: al contenido de IP se lo cambia por un
desplazamiento.
• salto indirecto: el contenido de IP es cambiado por el offset
obtenido por cualquiera de los modos indirectos vistos
anteriormente.
254
3.2.6 Direccionamiento de Entrada/Salida
Internas
• Interrupciones iniciadas por software (a través de la
instrucción INT XX)
255
Si la interrupción es requerida desde el pin INTR y las
interrupciones se encuentran habilitadas (bit I=1 del registro de estado)
se inicia el proceso de atención de interrupción. Se termina de ejecutar la
instrucción corriente, el bit I se borra, se salva el contexto actual
(contenido del conjunto de registros) en el stack, se emite la señal de
reconocimiento de interrupción (INTA), al recibirla el dispositivo que
interrumpe vuelca en el bus su vector. Este vector se utiliza para
determinar el puntero a la rutina de atención de interrupción, y se
transfiere el control a dicha rutina. Una vez terminada esta rutina se
restituye el contexto y se continúa con la ejecución del programa
interrumpido. En el caso de existir más de un dispositivo externo que
pueda interrumpir, se necesita adicionar al hardware un controlador de
interrupciones (por ejemplo, el controlador 8258 es capaz de manejar
hasta 8 dispositivos).
256
El retorno desde la rutina de servicio estará determinado por una
última instrucción (IRET) que rescata los registros de la Pila,
salvaguardados durante el ciclo de reconocimiento de interrupción,
cargándolos en la CPU.
4 Ejercitación
Ejercicio 1:
Represente la estructura de la CPU 8088, indicando la composición
interna de las subunidades BIU y EU, y la conexión con la memoria
principal de 1 Mbytes con los buses correspondientes.
Ejercicio 2:
¿Cuál es el efecto de las siguientes instrucciones en octal?. Indique el
mnemónico correspondiente. Acceda a un set de instrucciones o un
simulador del 8088 para la resolución de este ejercicio
F4 BE503A
BF028B B80100
01D8 F7D2
35AF00 F7D9
E900FF E822FF
3400 A21300
Ejercicio 3:
Complete el siguiente cuadro con las restantes formas de representación.
----------------------------------------------------------------------------------
Mnemónico hexadecimal binario
----------------------------------------------------------------------------------
MOV CX,DX -- --
-- 09D8 --
-- -- 0111010111111010
Ejercicio 4:
257
Indique la cantidad de bytes de almacenamiento y los modos de
direccionamiento utilizados en cada una de las instrucciones del cuadro
del Ejercicio 3.
Ejercicio 5:
Indique la posición de memoria a la que se accederá para leer una
instrucción, si los contenidos de los registros IP y CS son 1F1A y F341,
respectivamente.
Ejercicio 6:
Suponiendo que los contenidos de los registros DS (Segmento de Datos) y
CS (Segmento de Código) son 024B y B000, respectivamente, indicar la
posición física de inicio y final de los segmentos de datos y de código.
Ejercicio 7:
Suponiendo que los contenidos de los registros DS (Segmento de Datos) y
CS (Segmento de Código) son C000 y B246, respectivamente, indicar la
posición física de inicio y final de los segmentos de datos y de código.
¿Observa algún problema?.
Ejercicio 8:
Indicar el valor que queda almacenado en el operando destino después de
ejecutar cada una de las siguientes instrucciones.
a) ADD AX,BX
b) ADD AX, [BX]
c) ADD BX,0124
d) ADD AL, [1A1B]
e) ADD BX, [SI+1A]
Datos:
AX=1A1B
BX=147A
SI=2682
AL=1B
DS:147A=AB
DS:147B=DC
DS:1A1B=12
DS:269C=21
DS:269D=A2
Ejercicio 9:
Escriba en instrucciones del 8088 el siguiente código, que es parte de un
programa de lenguaje de alto nivel tipo C++, considerando que todas las
variables son enteras, y proponiendo posiciones de memoria para el
almacenamiento de los datos y el programa.
258
<= 10; i
CAPÍTULO 9 for (i = 0; i
= i + 1)
a[i] =
b[i] + c;
259
Arquitectura Avanzada
1 Visión General
2 Pipeline
2.1 Introducción
2.2 Predicción de la dirección de salto
2.3 Pipeline en la máquina elemental
3 Memoria Caché
3.1 Principio de localidad
3.2 Manejo de la caché
4 DMA
4.1 Controlador DMA
4.2 Scanner
5 Evolución de las Arquitecturas
5.1 CISC
5.2 RISC
5.3 Comparación entre RISC y CISC
6 Evolución desde el Procesador 8088
6.1 Funcionamiento básico del procesador Intel
80486
6.2 Funcionamiento básico del procesador Intel
Pentium
7 Ejercitación
260
Capítulo 9
Arquitectura Avanzada
1 Visión General
Un objetivo en el diseño de una computadora es que sea lo más
rápida posible. Esto se logra haciendo más veloz el hardware, pero esto
tiene sus limitaciones. Una de ellas es que la velocidad de propagación
de las señales eléctricas en un conductor de cobre está en el orden de 20
cm/ns (en 1 ns recorre 20 cm). Si se pretende construir una máquina con
un ciclo de instrucción de algunos nanosegundos, el bus debería tener
una longitud significativamente menor de 20 cm. Esto presenta una
brecha tecnológica.
𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝐼𝑛𝑠𝑡𝑟𝑢𝑐𝑐𝑖𝑜𝑛𝑒𝑠
𝑉𝑝 = [ ]
𝑈𝑛𝑖𝑑𝑎𝑑 𝑑𝑒 𝑡𝑖𝑒𝑚𝑝𝑜 𝑆𝑒𝑔𝑢𝑛𝑑𝑜
261
instrucción corriente. Este mecanismo se llama PROCESAMIENTO
PIPELINE.
2 Pipeline
2.1 Introducción
La Unidad de Control sólo puede hacer una tarea a la vez. Según
se analizó previamente, las acciones que realiza secuencialmente son:
Búsqueda, y
Ejecución, que podemos subdividir en:
o Decodificación,
o Cálculo de Direcciones,
o Búsqueda de Operandos,
o Ejecución propiamente dicha, y
o Guardar el resultado
262
Supongamos que la Unidad de Control cuenta con 5 Unidades
Funcionales como se indica en la Tabla 9.1. Horizontalmente está
considerado el tiempo y están indicados los CICLOS de MEMORIA con
números 1, 2, 3 hasta 13. La Unidad de Control coordina las acciones a
fin de suministrar a las sucesivas Unidades Funcionales las Instrucciones
indicadas como: I1, I2, IS, etc. La IS indica una instrucción de Salto.
263
estadísticamente se verifica que las instrucciones de salto representan
aproximadamente el 30 % del programa, el incremento de velocidad que
podría lograrse con el pipeline (un factor de cinco en este caso) se ve
reducido en el porcentaje indicado. Vale entonces la pena estudiar los
tipos de saltos posibles a fin de disminuir el porcentaje. Existen tres
categorías de saltos:
saltos incondicionales.
saltos condicionales.
saltos iterativos.
Por otro lado, esta técnica no es eficaz para el caso de los saltos
incondicionales ya que estos se producen siempre.
264
En el segundo caso la Unidad de Control construye una tabla de
saltos y guarda el comportamiento de los mismos a fin de decidir cuál es
la dirección de la próxima instrucción más probable. Esto requiere
agregar hardware.
𝑉𝑝
𝑉𝑝(𝑝𝑖𝑝𝑒𝑙𝑖𝑛𝑒) = . 0,9 . 𝑘
5
dónde
5: es cantidad de Unidades Funcionales de la UC, y
k: factor que depende del tiempo de acceso a la memoria y el reloj de la
máquina.
265
Estas unidades pueden funcionar simultáneamente. Además, el
ciclo contará ahora con sólo seis pulsos (CP1 a CP6). Esto es así porque
suponemos que la UM tiene un tiempo de acceso de 5 pulsos. El sexto
pulso es necesario para rescatar el dato eventualmente leído desde la UM.
266
Fig. 9.2. Diagrama en bloque de la Unidad de Control.
267
Fig. 9.3. Secuenciador de la Unidad de Control.
268
2.3.3 Ciclos de Pipeline
269
270
271
Tabla 9.2. Ciclos de pipeline.
272
2.3.4 Incrementador del contador de programa
273
una mejora en la velocidad de procesamiento de aproximadamente el 35
%.
3 Memoria Caché
274
Si al culminar el Ciclo de lectura de la Caché el dato no se
encuentra en la misma, se continúa con el ciclo de lectura de la memoria,
y una vez concluido, se lo escribe en la Caché. Y, además, obviamente se
lo usa. Y por lo tanto, si al culminar el Ciclo de lectura de la Caché el
dato se encuentra en la misma, no se continúa con el ciclo de lectura de
la memoria y se usa el dato de la caché.
4 DMA
275
memoria hacia un periférico o viceversa) se realiza a través del ACC. Si es
de salida el programador deberá cargar el ACC, y luego, usar una
instrucción OUT YY. En el caso de entrada será a través de una
instrucción INP YY que cargará al ACC con el dato del periférico.
276
Observar que la trayectoria de los datos en una transferencia
DMA, no pasa por la CPU. Por esta razón la transferencia es más rápida.
4.2 Scanner
Según lo explicado, el controlador DMA es casi una computadora
independiente con su propio programa fijo (almacenado en su propia
memoria ROM). Debe ser capaz de generar ciclos de memoria
proporcionando la dirección de memoria y las órdenes de lectura y
escritura según sea el caso. Además, debe ser capaz de coordinar sus
acciones con la CPU y peticionar la atención de la UM.
277
Este hardware administrador llamado “scanner” funciona como
una llave selectora que gira constantemente en busca de algún
procesador que necesite la UM. Supongamos que la UM tiene que ser
compartida por la CPU y un DMA, el Scanner sería un dispositivo que
contaría con dos Puertos, el Scanner examinaría el primer puerto, si hay
algún requerimiento de servicio, el Scanner se detiene y atiende el
requerimiento. Si no hay requerimiento o después de haber atendido uno
anterior, el Scanner avanza al otro puerto y así sucesivamente.
5.1 Introducción
Con el invento de la microprogramación de Wilkes, al principio de los
cincuenta, la idea de hacer más y más complejo el microcódigo fue poco
menos que irresistible. Las razones eran de validez. Por aquellos años las
memorias eran significativamente más lentas que la CPU, de forma tal
que la posibilidad de poner las bibliotecas de las aplicaciones de uso
frecuente como residentes en el microcódigo (en una ROM rápida) en
lugar de la memoria principal representaba una solución ideal. Por otro
lado, elevar el nivel del lenguaje de máquina incorporando instrucciones
más complejas, parecía no tener discusión. Además, la
microprogramación permitía modificar y/o agregar instrucciones
cambiando el microprograma (lo que significa simplemente cambiar una
memoria ROM).
278
de escribir microrutinas (usables por muchas instrucciones) que podrían
residir en una microROM angosta y combinarla con una
microprogramación horizontal.
5.2 CISC
A partir de los computadores 360 y 370 de IBM, surgidos en la
década del 70, la mayoría de los procesadores (CPU) de las
computadoras, incluidos los de minicomputadoras y PC personales
(Pentium y el P6 de Intel, y los 680x0 de Motorola han sido CISC
(Complex Instruction Set Computer).
279
En general, cada operación que ordena una instrucción de un
procesador CISC presenta variantes para ser aplicadas a diversas
estructuras de datos, desde simples constantes y variables, hasta
matrices y otras. Así, una instrucción que ordena sumar, tiene muchas
variantes (códigos) en función de la estructura de datos sobre la cual
opera. Es como si existieran tantas instrucciones que ordenan una
misma operación como estructuras de datos típicas se han definido para
operar. Este concepto fue planteado previamente bajo el nombre de
"modos de direccionamiento" de una instrucción.
5.3 RISC
Ya para los setenta, la velocidad de las memorias se acercó a la de
la CPU y resultaba difícil escribir, depurar y mantener los
microprogramas. Además, algunos especialistas comenzaron a analizar
qué tipo de instrucciones eran las más usadas en los programas. Los
resultados fueron sorprendentes:
280
su decodificación no puede realizarse en línea (lo que implicaría repetir
cientos de veces el mismo microcódigo). Peor aún, se ha sacrificado
velocidad a fin de incorporar instrucciones que en la práctica rara vez se
usan.
281
mismo ocurre con la instrucción 8 y la S. En estos casos, el Compilador
verifica si la instrucción 4 es afectada por la instrucción L. Si no lo es, el
proceso continúa sin problemas. En el caso contrario, algo debe hacerse.
Por ejemplo, el Compilador puede reemplazar a la instrucción 4 por una
NOP, lo que implica una degradación de la velocidad. En el caso de las
instrucciones de salto (JUMP) se producirá un problema similar y la
solución es la misma. La instrucción que sigue a una de salto siempre
comienza a ejecutarse independientemente si el salto se lleva a cabo. En
todos los casos el Compilador es el responsable de colocar una
instrucción útil después de una de salto. En caso de no encontrar nada
adecuado, se coloca una instrucción NOP.
282
Fig. 9.8. Formato típico de una instrucción.
283
ocho registros se encuentran en todo momento accesibles a la CPU y
representan los registros globales utilizables por cualquier procedimiento.
En cambio desde el R8 en adelante, el grupo de 24 registros serán
accesibles por la CPU dependiendo del valor de un puntero de registros.
Este puntero se ajusta cuando algún procedimiento es invocado desde el
actual. Esta organización permite intercambiar valores entre
procedimientos sin necesidad de referir a la memoria.
284
procedimiento), "Loop" (repetir una secuencia), que en promedio
constituyen el 47%, 23%, 15%, y 6%, respectivamente.
285
movimientos, que en el lenguaje assembler de un RISC se denominan
LOAD y STORE, respectivamente. Estas instrucciones se trata de usarlas
lo menos posible (a través de programas compiladores "inteligentes"),
puesto que requieren dos pulsos para ser ejecutadas, luego de que fueron
decodificadas.
286
resultado de una instrucción para poder ejecutar la siguiente, cuando un
mismo recurso (por ejemplo un registro de la CPU) es requerido por varias
etapas de un "pipeline". Este factor influye menos en un RISC que en un
CISC, resultando así una mayor velocidad de procesamiento.
287
Tabla 9.4. Comparación de las características RISC y CISC.
288
cuenta que las memorias son cada vez más baratas ¿es de
considerar este aspecto?
¿Debe medirse el tráfico de memoria? Es decir, una máquina que
realice un mismo programa con menos referencias a memoria es
mejor que otra, aun cuando tarde tiempos similares.
289
sistema operativo preparado para ello. Opera en memoria y en la ALU con
16 bits a la vez. Con sus 24 líneas de dirección puede acceder a 2 24 = 16
MB de memoria principal. Opera hasta 25 Mhz.
290
procesador "super escalar" (el modelo de Von Neumann es “escalar") con
muchas concepciones RISC y "predicción de saltos condicionales". En
punto flotante es cuatro veces más rápido que el 486.
291
En la Figura 9.10 aparecen los siguientes sub-bloques y bloques:
Los registros de direcciones (RDl) y de datos (RDA) pertenecen a
la 'Unidad de Interconexión con el Bus" (BIU en inglés),
encargada de la comunicación con el exterior a través de las 32
líneas de datos y 32 líneas de direcciones del bus. Las
instrucciones y datos leídos en memoria pasan al caché interno
de 8 KB del procesador.
292
Fig. 9.10. Bloques y sub-bloques del Intel 80486.
293
"pipeline", otros tres bytes del código entran a la etapa de primera
codificación.
294
de pre-carga, que puede almacenar 32 bytes (existen dos de estos
buffers). O sea, en dicho caché se leen 32 bytes en un solo acceso. Los
datos están en otro caché de 8 KB.
295
"pipeline" de 8 etapas, siendo que las instrucciones para enteros se
ejecutan en 5 etapas.
7 Ejercitación
Ejercicio 1:
¿Por qué es imposible que un pipeline de instrucciones de dos etapas
reduzca el tiempo de ciclo de instrucciones a la mitad, en comparación
con un diseño sin pipeline?. Justifique.
Ejercicio 2:
¿Qué diferencia hay entre localidad espacial y localidad temporal?.
Desarrolle.
Ejercicio 3:
Desarrolle dos programas en pseudocódigo, uno que favorezca la
localidad espacial, pero no la temporal, y el otro lo contrario.
Ejercicio 4:
Cuando apareció la memoria caché, cada sistema disponía de una única
caché. Pero los procesadores actuales disponen de diversos niveles de
memoria caché. ¿Cuál es el número de niveles apropiados? Justifique.
Ejercicio 5:
296
¿Cómo se relaciona el principio de localidad con el uso de múltiples
niveles o una jerarquía de memoria en una computadora?. Desarrolle.
Ejercicio 6:
Los diseños de los primeros sistemas que incluyeron memoria caché
disponían de una única caché para almacenar las referencias tanto a
operandos como a instrucciones. ¿Por qué los procesadores actuales
tienden a tener cachés separadas o divididas: una dedicada a las
instrucciones y la otra a los datos u operandos. Considere los conceptos
de pipeline y la búsqueda de los datos asociados que le correspondan.
Ejercicio 7:
¿Los procesadores RISC tienen unidades de control microprogramadas o
cableadas? Justifique.
Ejercicio 8:
¿Por qué resulta importante el desarrollo de los compiladores para
máquinas RISC? Justifique.
297
CAPÍTULO 10
Entradas y Salidas (E/S)
298
Capítulo 10
1.1 Introducción
El tercer componente fundamental de una computadora es la
Unidad de Entradas y Salidas (UE/S), además de la CPU y la memoria.
En realidad se trata de un conjunto de módulos de E/S especializados
que se conectan habitualmente al sistema de buses (bus de direcciones,
bus de datos y bus de control) y controlan la comunicación con uno o
más dispositivos periféricos (o simplemente periféricos). Un módulo de
E/S tiene la capacidad necesaria para permitir la comunicación entre el
periférico y el sistema de buses.
299
Fig. 10.1. Módulo de E/S.
300
Fig. 10.2 Diagrama en bloques de un dispositivo externo o periférico
301
en un buffer del módulo de E/S, y luego enviarse al periférico a la
velocidad de este. Y el mismo criterio puede seguirse para una
transferencia en el sentido contrario, que libera a la memoria principal de
estar mucho tiempo ocupada cuando se trata de una operación de
transferencia lenta.
302
Fig. 10.3. Diagrama de bloques de un módulo de E/S.
303
1.5 Ejemplo de módulo de E/S
Un ejemplo de módulo de E/S utilizado tanto para la E/S
programada como para la E/S mediante interrupciones es la interface
programable Intel 82C55A. Se trata de un módulo de E/S de propósito
general integrado en un solo chip y diseñado para usarse en conjunto con
la CPU 8088/8086. La Figura 10.4 muestra su diagrama en bloques
general.
304
Fig. 10.4. Diagrama en bloques de la interface programable
de periféricos 802C55A de Intel.
305
Fig. 10.5. Interface teclado/pantalla usando el 802C55A.
306
La CPU permite el acceso directo de un módulo de E/S a la
memoria a través del DMA. Se transfiere un bloque de
datos, desde o hacia, la memoria sin la participación de la
CPU, excepto al comienzo o al final de la transferencia.
307
Fig. 10.6 Arquitectura de un canal de E/S
308
2 Datos, Señales e Interfaces
309
Los datos, como las señales, pueden ser continuos o discretos. A
los datos continuos se los llama ANALÓGICOS y a los discretos se los
llama DIGITALES.
310
2.3 Señalización
La transformación de un dato en su representación
electromagnética con el fin de su propagación física por un medio, recibe
el nombre de señalización.
Señalización digital
311
Fig. 10.8. Señalización Digital
312
Fig. 10.9. E/S paralela y serie.
313
transmisiones entre la computadora y periféricos a través de una
interface y un BUS dedicado.
314
Transmisión paralela con handshaking
315
paralela con handshaking.
Transmisión asíncrona
316
Fig. 10.14. Transmisión serie asíncrona.
Cuando no se transmite ningún carácter, la línea de comunicación
está en reposo y el receptor se encuentra a la espera de recibir un bit de
comienzo.
Velocidad de Modulación
D = VT / b
dónde:
D: Velocidad de Modulación (BAUDIOS)
VT: Velocidad de Transmisión (bps)
b: cantidad de bits por elemento de señal
317
Ejemplo de transmisión serie asíncrona
318
En este ejemplo la señalización utilizada implica un elemento de
señal por bits. Por lo tanto, los baudios y los bps son iguales.
La siguiente relación nos da la eficiencia del enlace:
Eficiencia [%] = (VT(carga útil)/VT) . 100
Eficiencia [%] = (70/110) . 100 = 63 %
Transmisión síncrona
319
Fig. 10.19. Transmisión serie síncrona con reloj independiente.
320
Fig. 10.21. Trama en transmisión serie síncrona.
321
Las interfaces externas multipunto son utilizadas para soportar
varios dispositivos a través del mismo enlace. Estas interfaces multipunto
son de hecho buses externos (Figura 10.23).
322
Par trenzado
323
Fig. 10.25. Cable de par trenzado apantallado.
Fibra óptica
324
Fig. 10.26. Cable de fibra óptica.
325
Tabla 10.1. Características de las bandas de comunicaciones.
326
3 Casos de Estudio
327
Su campo de aplicación se extiende en la actualidad a cualquier
dispositivo electrónico o con componentes, desde los automóviles a
reproductores o los modernos juguetes. Se han implementado variaciones
para su uso industrial e incluso militar. Pero en donde más se nota su
influencia es en los teléfonos inteligentes (Europa ha creado una norma
por la que todos los móviles deberán venir con un cargador microUSB),
tabletas, PDAs y videoconsolas, donde ha reemplazado a conectores
propietarios casi por completo.
Aspectos técnicos
328
Los dispositivos USB se clasifican en cuatro tipos según su
velocidad de transferencia de datos:
Baja velocidad (1.0): Tasa de transferencia de hasta 1,5
Mbit/s (188 kB/s). Utilizado en su mayor parte por
dispositivos de interfaz humana como los teclados, los ratones
o mouse, las cámaras web, etc.
Velocidad completa (1.1): Tasa de transferencia de hasta 12
Mbit/s (1,5 MB/s) según este estándar. Ésta fue la más
rápida antes de la especificación USB 2.0.
Alta velocidad (2.0): Tasa de transferencia de hasta 480
Mbit/s (60 MB/s) pero con una tasa real práctica máxima de
280 Mbit/s (35 MB/s). El cable USB 2.0 dispone de cuatro
líneas, un par para datos, y otro par de alimentación. Casi
todos los dispositivos fabricados en la actualidad trabajan a
esta velocidad
Superalta velocidad (3.0): Tiene una tasa de transferencia de
hasta 4,8 Gbit/s (600 MB/s). La velocidad del bus es diez
veces más rápida que la del USB 2.0, debido a que han
incluido 5 contactos adicionales, y es compatible con los
estándares anteriores.
329
Fig. 10.30. Puerto Ethernet para cable UTP en placa de red.
Una variante es que el puerto Ethernet sea una interfaz física para
cables de fibra óptica.
330
Aspectos técnicos
Fig. 10.32. Placa de red Ethernet con un puerto de par trenzado UTP.
Las tarjetas de red Ethernet para cable UTP utilizan conectores RJ-
45, para comunicaciones a 10/100/1000 Mbps, aunque actualmente se
están empezando a utilizar las 10 Gigabit Ethernet.
331
Alternativamente, se pueden usar puertos Ethernet para Fibra
Óptica de 1000 Mbps, o superior (Figura 10.33). Uno de los conectores
usuales para las aplicaciones de fibra óptica es el MM ST (Straight Tip
fibra MultiModo).
332
enlace por radiofrecuencia en la banda ISM de los 2,4 GHz. Los
principales objetivos que se pretenden conseguir con esta norma son:
Facilitar las comunicaciones entre equipos móviles,
Eliminar los cables y conectores entre éstos, y
Ofrecer la posibilidad de crear pequeñas redes inalámbricas y
facilitar la sincronización de datos entre equipos personales.
Aspectos técnicos
333
Tabla 10.3. Versiones y velocidad en Bloototh.
334
El SIG de Bluetooth completó en 2010 la especificación de un nuevo
núcleo de Bluetooth en su versión 4.0, que incluye al Bluetooth clásico, el
Bluetooth de alta velocidad y los protocolos Bluetooth de bajo consumo.
El bluetooth de alta velocidad se basa en Wi-Fi, y el Bluetooth clásico
consta de protocolos Bluetooth preexistentes. El bluetooth de baja energía
(Bluetooth Low Energy o BLE) es un subconjunto de Bluetooth v4.0 con
una pila de protocolos completamente nueva para desarrollar
rápidamente enlaces sencillos. Como alternativa a los protocolos estándar
de Bluetooth que se introdujeron en Bluetooth v1.0 a v4.0, está dirigido a
aplicaciones de muy baja potencia alimentados con una pila botón.
335
Aspectos técnicos
336
El conector HDMI ha sido diseñado para que los equipos que lo
utilicen impidan al usuario realizar copia del contenido de audio-vídeo
transmitido, mediante el cifrado de dichos datos.
337
Tabla 10.5. Resumen de las sucesivas revisiones de HDMI.
338
Mbit/s (6,75 MB/s). Actualmente, el protocolo que se viene utilizando es
802.11n que es capaz de transmitir 600 Mbit/s. Actualmente la capa
física soporta una velocidad de teórica de hasta 300 Mbit/s.
Aspectos técnicos
339
Uno de los problemas a los cuales se enfrenta actualmente la
tecnología Wi-Fi es la progresiva saturación del espectro radioeléctrico,
debido a la masificación de usuarios. Esto afecta especialmente en las
conexiones de larga distancia (mayor de 100 metros). Aunque debe
tenerse en cuenta que Wi-Fi fue diseñado para conectar computadoras (u
otros dispositivos móviles) a la red a distancias reducidas.
340
red existente. Pueden agregarse más APs a una red para
generar redes de cobertura más amplia, o conectar antenas
más grandes que amplifiquen la señal.
o Los repetidores inalámbricos son equipos que se utilizan
para extender la cobertura de una red inalámbrica. Éstos se
conectan a una red existente que tiene señal más débil y
crean una señal limpia a la que se pueden conectar los
equipos dentro de su alcance. Algunos de ellos funcionan
también como punto de acceso.
o Los router inalámbricos son dispositivos compuestos,
especialmente diseñados para redes pequeñas (hogareñas o
una pequeña oficina). Estos dispositivos incluyen, un Router
(encargado de interconectar redes, por ejemplo, nuestra red
del hogar con internet), un punto de acceso (explicado más
arriba) y generalmente un switch que permite conectar
algunos equipos vía cable (Ethernet y USB). Su tarea es tomar
la conexión a internet, y brindar a través de ella acceso a
todos los equipos que conectemos, sea por cable o en forma
inalámbrica.
341
4 Ejercitación
Ejercicio 1:
Una computadora capaz de ejecutar 10 7 instrucciones por segundo. Se
desea conectar al computador, únicamente un periférico con una
velocidad de transferencia de 20.000 bytes/sg. y sobre el que se realizan
operaciones de lectura de bloques de 1.024 bytes. Se pretende ver el
comportamiento de la pareja computador-periférico ante las diferentes
técnicas de entrada-salida (programada, mediante interrupciones y por
DMA)
Se sabe que:
• La rutina de transferencia de E/S programada consta de 10
instrucciones.
• La rutina de tratamiento de interrupción en la E/S mediante
interrupciones consta de 20 instruciones.
• La rutina de inicializacón del DMA consta de 8 instrucciones. Y en
cada operación de escritura de un dato en memoria el
controlador ocupa los buses durante 500 ns.
Se pide:
Indicar el número de instrucciones de otros procesos que puede realizar
el computador durante cada uno de los tipos de E/S previstos.
Ejercicio 2:
Realizar el ejercicio anterior suponiendo que la velocidad de transferencia
del periférico es de 100.000 bytes por segundo y los bloques de 512 bytes.
Ejercicio 3:
Si tenemos una computadora que puede ejecutar 100.000 instrucciones
en el tiempo que se tarda en leer un bloque de 2048 bytes, indicar
cuantas de esas instrucciones quedarían disponibles para otros procesos
si le conectamos un sistema de E/S mediante DMA. Se supone que la
rutina de inicialización del DMA consta de 8 instrucciones, y que en cada
operación de escritura de un dato en memoria el controlador ocupa los
buses durante 750 nseg.
Ejercicio 4:
Un sistema controlado por un operador a través de una serie de
comandos que se introducen desde un teclado. En cada intervalo de ocho
horas se introducen un promedio de sesenta comandos.
a) Suponga que el procesador comprueba el teclado cada 100 ms.
¿Cuántas veces se chequea en un periodo de ocho horas?
b) ¿En qué porcentaje se reduciría el número de comprobaciones de
teclado si se utilizase E/S por interrupciones.
342
Ejercicio 5:
Un módulo de DMA transfiere caracteres a memoria mediante robo de
ciclo desde un dispositivo que transmite a 9600 bps. El procesador
ejecuta instrucciones a un ritmo de un millón por segundo. ¿Cuánto
disminuye la velocidad del procesador debido al DMA?
Ejercicio 6:
Considere un sistema en el que una transferencia a través de un bus
necesita 500 ns. La transferencia de control del bus en uno u otro
sentido, entre el procesador y un dispositivo de E/S, necesita 250 ns.
Uno de los dispositivos de E/S tiene una velocidad de transferencia de 50
Kbytes/s y utiliza DMA. Los datos se transfieren byte a byte.
a) Suponga que se emplea DMA en modo ráfaga. Es decir, la
interface de DMA adquiere el control de bus antes de empezar la
transferencia de un bloque y mantiene dicho control durante la
transferencia completa. ¿Durante cuánto tiempo el dispositivo
tiene el bus ocupado si se transfieren 128 bytes?
b) Repita el cálculo si se utiliza el modo de robo de ciclo.
Ejercicio 7:
¿Cuántos puertos de E/S puede direccionar el 8088?. Desarrolle.
Ejercicio 8:
¿Cuáles son las ventajas del 8088 por tener las E/S mapeadas en
memoria? Desarrolle y analice cuál es la opción que no utiliza el 8088.
343
Índice de contenidos:
Capítulo 1 Representación Numérica
1 Sistemas de Numeración................................................................12
1.1 Introducción ................................................................................12
1.2 Confiabilidad ................................................................................14
1.3 Costo ............................................................................................15
2 Sistema de Numeración Binario ....................................................16
2.1 Introducción .................................................................................16
2.2 Conversión entre números de distintas bases ................................18
2.3 Complementos binarios ................................................................19
2.4 Representación de números negativos en binario ..........................21
3 Punto Fijo y Punto Flotante ..........................................................23
3.1 Introducción .................................................................................23
3.2 Operaciones aritméticas ................................................................24
3.3 Norma IEEE 754 ...........................................................................25
4 Ejercitación ....................................................................................27
344
1.3 Teoremas .....................................................................................65
2 Funciones lógicas...........................................................................67
2.1 Introducción .................................................................................67
2.2 Teoremas de Funciones Lógicas .....................................................67
3 Minimización de Funciones Lógicas ..............................................71
3.1 Introducción .................................................................................71
3.2 Método de Simplificación de Karnaugh ..........................................72
4 Compuertas Lógicas .......................................................................75
5 Ejercitación ....................................................................................77
345
4.4.1 Multiplicación binaria .............................................................. 121
4.4.2 División binaria ........................................................................ 127
5 Ejercitación .................................................................................. 130
346
2.8 Bus en la máquina elemental ...................................................... 198
2.9 Unidad aritmética y lógica ........................................................... 200
3 Ejercitación .................................................................................. 202
347
2.3.2 Secuenciador de la UC con pipeline .......................................... 265
2.3.3 Ciclos de Pipeline ..................................................................... 268
2.3.4 Incrementador del contador de programa .................................. 272
2.3.5 Predicción de la dirección de salto ............................................ 272
2.3.6 Comparación con la máquina elemental .................................... 272
3 Memoria Caché ............................................................................ 273
3.1 Principios de localidad ................................................................ 273
3.2 Manejo de la caché ...................................................................... 274
4 DMA .............................................................................................. 274
4.1 Controlador DMA ....................................................................... 274
4.2 Scanner ...................................................................................... 276
4.2.1 Robo de ciclo ............................................................................ 276
5 Evolución de las Arquitecturas .................................................... 277
5.1 Introducción ............................................................................... 277
5.2 CISC ........................................................................................... 278
5.3 RISC ........................................................................................... 279
5.3.1 Arquitectura de carga/almacenamiento .................................... 280
5.3.2 Registros múltiples ................................................................... 282
5.4 Comparación entre RISC y CISC .................................................. 283
5.4.1 Desde la semántica de los programas de alto nivel .................... 283
5.4.2 Considerando la transferencia de datos entre
la CPU y la memoria................................................................. 284
5.4.3 Comportamiento en el salto a subrutinas e interrupciones ........ 286
5.4.4 Cuadro comparativo entre RISC y CISC .................................... 286
6 Evolución desde el procesador 8088 ........................................... 287
6.1 Funcionamiento básico del procesador Intel 80486 ...................... 290
6.2 Funcionamiento básico del procesador Intel Pentium ................... 293
7 Ejercitación .................................................................................. 295
348
2.6 Medios de transmisión ................................................................ 321
2.6.1 Medios guiados ........................................................................ 321
2.6.2 Medios no guiados (inalámbricos) ............................................. 324
3 Casos de Estudio .......................................................................... 326
3.1 Puerto USB ................................................................................. 326
3.2 Puerto Ethernet .......................................................................... 328
3.3 Puerto Bluetooth ......................................................................... 331
3.4 Puerto HDMI ............................................................................... 334
3.5 Puerto Wi-Fi................................................................................ 337
4 Ejercitación .................................................................................. 341
349
Índice de Figuras:
Capítulo 1 Representación Numérica
Figura 1.1 Sistemas físicos que representan números ........................ 14
Figura 1.2 Representación de números reales en punto flotante ......... 23
Figura 1.3 Representaciones de punto flotante de la Norma 754 ........ 26
Figura 1.4 Casos especiales de números en punto flotante ................. 26
350
Capítulo 4 Sistemas Combinacionales
Figura 4.1 Diagrama de un sistema digital ........................................ 82
Figura 4.2 Correspondencias para un Sistema Combinacional ........... 83
Figura 4.3 Correspondencias para un Sistema Secuencial ................. 83
Figura 4.4 Diagrama en bloque de un sistema o circuito
Combinacional ................................................................. 84
Figura 4.5 Codificador binario de 8 entradas y 3 salidas .................... 85
Figura 4.6 Decodificador de 3 entradas y 8 salidas ............................ 86
Figura 4.7 Decodificador 3x8 para implementar la función F .............. 86
Figura 4.8 Decodificador de 4x16 a partir de
dos decodificadores de 3x8 ............................................... 87
Figura 4.9 Funcionamiento del multiplexor ....................................... 87
Figura 4.10 Multiplexor de 4 canales ................................................. 88
Figura 4.11 Implementación de la función f usando un multiplexor ... 89
Figura 4.12 Multiplexor de 32 canales usando dos
multiplexores de 16 canales ........................................... 90
Figura 4.13 Demultiplexor de 4 canales de salida .............................. 90
Figura 4.14 Demultiplexor de 4 canales usando un
decodificador de 2x4 ...................................................... 91
Figura 4.15 Circuito básico de comparación de 1 bit .......................... 91
Figura 4.16 Comparador de 8 bits usando 2 comparadores de 4 bits .. 92
Figura 4.17 Generador/Detector de paridad de 8 bits ........................ 92
Figura 4.18 Semisumador o sumador parcial .................................... 93
Figura 4.19 Sumador total ................................................................ 94
Figura 4.20 Cuádruple sumador total ................................................ 95
Figura 4.21 Sumador/Restador 4 bits complemento a dos ................. 96
Figura 4.22 Sumador/Restador 4 bits complemento a uno ................ 97
Figura 4.23 ALU de 4 bits ................................................................. 97
351
Figura 5.13 Biestable JK por flanco ascendente a partir de
un SR por flanco ............................................................ 113
Figura 5.14 Biestable D implementado con biestables SR y JK ........... 114
Figura 5.15 Registro de desplazamiento cuatro bits serie-serie ........... 115
Figura 5.16 Registro de desplazamiento paralelo–serie de cuatro bits . 115
Figura 5.17 Registro paralelo – paralelo de 8 bits ............................... 116
Figura 5.18 Interconexión de registros por bus común ....................... 118
Figura 5.19 Interconexión registros usando registros tri-estado ......... 118
Figura 5.20 Contador asíncrono de 4 bits. (a)
Diagrama circuital (b) Diagrama de tiempo ..................... 120
Figura 5.21 Contador binario natural de 4 bits síncrono .................... 120
Figura 5.22 Multiplicador paralelo de 4 bits con generación de
overflow ......................................................................... 123
Figura 5.23 Multiplicador serie de 4 bits con generación de overflow .. 124
Figura 5.24 Circuito divisor serie de 4 bits......................................... 128
352
Figura 6.26 Esquema de una memoria FIFO ...................................... 159
Figura 6.27 Funcionamiento de una memoria FIFO ........................... 159
Figura 6.28 Diagrama en bloques de una memoria FIFO
implementada con un registro de
desplazamiento estático.................................................. 160
Figura 6.29 Ejemplo de aplicación de una memoria FIFO en
sistemas digitales ........................................................... 160
Figura 6.30 Esquema de una memoria LIFO ...................................... 161
Figura 6.31 Funcionamiento de una memoria LIFO ........................... 161
Figura 6.32 Diagrama en bloques de una memoria LIFO
implementada con un registro de
desplazamiento reversible ............................................... 162
Figura 6.33 Diagrama en bloque de una LIFO .................................... 162
353
Figura 8.6 Diagrama en bloques de la Máquina Elemental
Indexada .......................................................................... 216
354
Figura 10.9 E/S paralela y serie ........................................................ 312
Figura 10.10 Transmisión Paralela Stroboscópica .............................. 313
Figura 10.11 Diagrama de tiempo para transmisión paralela
Stroboscópica .............................................................. 313
Figura 10.12 Lógica de funcionamiento de la transmisión
paralela con handshaking ............................................ 314
Figura 10.13 Diagrama de tiempo que ejemplifica el handshaking ...... 315
Figura 10.14 Transmisión serie asíncrona ......................................... 315
Figura 10.15 Diagrama de tiempo para transmisión serie Asíncrona .. 316
Figura 10.16 RS323 C como ejemplo de transmisión asíncrona .......... 317
Figura 10.17 Esquema completo de una comunicación RS232 C ........ 317
Figura 10.18 Desfasaje en la temporización entre transmisor y
receptor ....................................................................... 318
Figura 10.19 Transmisión serie síncrona con reloj independiente ....... 319
Figura 10.20 Transmisión serie síncrona con reloj
incorporado en los datos .............................................. 319
Figura 10.21 Trama en transmisión serie síncrona ............................ 320
Figura 10.22 Topología punto a punto ............................................... 320
Figura 10.23 Topología Multipunto .................................................... 321
Figura 10.24 Cable con varios pares trenzados .................................. 322
Figura 10.25 Patch cord de cable UTP ............................................... 323
Figura 10.26 Patch cord de fibra ....................................................... 324
Figura 10.27 Comunicaciones inalámbricas ...................................... 325
Figura 10.28 Memoria USB ............................................................... 326
Figura 10.29 Cables USB .................................................................. 327
Figura 10.30 Puerto Ethernet para cable UTP en placa de red ............ 329
Figura 10.31 Cable de par trenzado para puerto Ethernet .................. 329
Figura 10.32 Placa de red Ethernet con un puerto de
par trenzado UTP ......................................................... 330
Figura 10.33 Placa de red con puerto Ethernet de fibra óptica ........... 331
Figura 10.34 Conector de la interface HDMI ...................................... 334
Figura 10.35 Router Wi-Fi ................................................................. 339
355
Índice de Tablas:
Capítulo 1 Representación Numérica
Tabla 1.1 Correspondencia entre sistemas de numeración ...................17
Tabla 1.2 Secuencia de conversión de decimal a binario ......................18
Tabla 1.3 Representación de números enteros usando una
representación de 3 bits ......................................................22
356
escritura o lectura ............................................................. 144
357
Tabla 10.5 Resumen de las sucesivas revisiones de HDMI .................. 337
Índice de Cuadros:
Capítulo 2 Códigos Numéricos y Alfanuméricos
Cuadro 2.1 Códigos continuos y cíclicos ............................................ 32
Cuadro 2.2 Ejemplo de códigos con bit de paridad usando BCD Nat... 40
Cuadro 2.3 Ejemplo de código Hamming ........................................... 44
358
359