Está en la página 1de 39

Arquitectura de Computadores 3a

Marco Molina
Niveles de
Abstracción
Niveles de Abstracción
• Trataremos los niveles de abstracción desde los circuitos
digitales a través de la arquitectura del computador.
• Cuando se trabaja a un determinado nivel de abastracción,
es bueno conocer algo acerca de los niveles de abstracción
inmediatamente superior e inferior.
• Por ejemplo, un científico no puede optimizar plenamente el
código sin enender la arquitectura para la cual el programa
está siendo escrito.
• Un ingeniero de dispositivos no puede hacer acuerdos
inteligentes en el diseño de los transistores sin un
entendimiento de los circuitos en los que los transistores
seràn usados.
• Se espera que al momento de resolver un problema sepamos
escoger el nivel de abstracción adecuado y evaluemos el
impacto del diseño en otros niveles de abstracción.
Manejo de la Complejidad – 3 Y’s
Para la abstracción y la disciplina, los diseñadores usan las tres y’s a
fin de manejar la complejidad: jerarquía, modularidad y
regularidad. Estos principios se aplican tamto a sistemas de
software como de hardware.

▶ Jerarquía: involucra dividir un sistema en módulos, y luego


subdividiendolos sucesivamente hasta que las piezas sean de
fácil entendimiento.

▶ Modularidad: establece que los módulos tienen fnciones bien


definidas e interfaces, de tal manera que se conectan fácilmente
entre ellos sin efectos colaterales desconocidos.

▶ Regularidad: busca la uniformidad entre los módulos. Los


módulos comunes son reutilizados varias veces, reduciendo el
número de módulos distintos que deben ser diseñados.
Números Decimales
En la escuela, se aprende a contar y hacer aritmética decimal. Por
tener 10 dedos (probablemente), hay diez dígitos decimales: 0, 1, 2,
…, 9. Los dígitos decimales se juntan para formar nùmeros
decimales más largos. Cada columna de un número decimal tiene
10 veces el peso de la columna previa. De derecha a izquierda, El
peso de cada columna es 1, 10, 100, 1000, y así. Los números
decimales son referidos como de base 10 y se representan con un
10 como subíndice, cuando hay lugar a confusión.
Por ejemplo: la figura muestra cómo el número decimal 9742 se
escribe como la suma de sus dígitos multiplicados por el peso de
cada columna.
Un número decimal de N dígitos representa una de las 10^N
posibilidades: 0, 1, 2, 3, …, 10^N - 1. A esto se llama el rango del
número.
Por ejemplo: Un número decimal de 3 dígitos representa una de las
1000 posibilidades en el rango de 0 a 999.
Representación de un Decimal
Números Binarios
Los bits representan uno de los valores, 0 o 1, que se hjuntan para
formar los números binarios. Cada columna de un binario tiene dos
veces el peso de la columna previa, Por lo tanto los binarios son de
base 2. En binario, los pesos de las columnas (de derecha a
izquierda) son 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096,
8192, 16384, 32768, 65536, y así. Si se trabaja a menudo con los
múmeros binarios, se puede ahorrar tiempo si se recuerda las
potencias de 2 hasta 2^16.
Un binario de N-bits representa uno de 2^N posibilidades: 0, 1, 2, 3, …,
2N - 1. La tabla muestra números binarios de 1, 2, 3, y 4-bits y sus
equivalentes decimales.
Ejemplo: CONVERSIÓN de BINARIO A DECIMAL
Convertir el número binario 10110 a decimal.
Solución: La figura muestra la conversión
CONVERSIÓN de BINARIO A DECIMAL
Tabla de Equivalencias Binario - Decimal
Conversión de Decimal a Binario
Ejemplo:
Convertir el número decimal 8410 a binario.
Solución: Determinar si cada columna del resultado binario tiene 1 o 0. Se
lo puede hacer comenzando desde la columna izquierda o derecha.
Trabajando desde la izquierda, comenzamos por la potencia más grande de 2
menor o igual al número (en este caso, 64). 84 ≥ 64, por lo tanto hay un 1
en la columna del 64, queda 84 - 64 = 20. 20 < 32, hay un 0 en la columna
del 32. 20 ≥ 16, hay un 1 en la columna del 16, queda 20 - 16 = 4. 4 < 8,
hay un 0 en la columna del 8. 4 ≥ 4, hay un 1 en la colmna del 4, queda 4 -
4 = 0. Hay 0’s en las columnas del 2 y del 1. Por lo tanto, 84 = 1010100.
Trabajando desde la derecha, repetidamente dividir el número por 2. El
resíduo va en cada columna. 84/2 = 42, 0 va en la columna 1. 42/2 = 21, 0
va en la columna 2. 21/2 = 10 con 1 de resíduo que va el ma columna 3.
10/2 = 5, 0 va en la columna 4. 5/2 = 2 con resíduo de 1 que ca el la
columna 5. 2/2 = 1, 0 va en la columna 6. Finalmente 1/2 = 0 con un
resíduo de 1 que va en la columna 7. De nuevo, 84 = 1010100.
Coversión de Binario a Decimal
Números Hexadecimales
La escritura de números binarios largos se vuelve
tediosa y lleva al error. Un grupo de cuatro bits
representa una de 2^4 = 16 posibilidades. Por lo
cual, a veces es más conveniente trabajar en base
16, llamada hexadecimal.
Los números hexadecimales usan los dígitos del 0 al
9 además, las letras de la A a la F, como se
muestra en la tabla.
Las columnas en base 16 tienen pesos de 1, 16,
16^2 (o 256), 16^3 (o 4096), y así sucesivamente.
Tabla Hexadecimal - Binario - Decimal
CONVERSIÓN HEXADECIMAL – BINARIO - DECIMAL

Ejemplo:
Convertir el número hexadecimal 2ED a binario y
a decimal.
Solución: La conversion de hexadecimal a binario
es fácil porque cada carácter hexadecimal
corresponde directamente a cuatro bits. 216 =
0010, E = 1110 y D = 1101, por lo tanto 2ED =
001011101101.
La conversión a decimal requiere la aritmética que
se muestra en la figura.
Coversión de Hexadecimal a Decimal
Estimación de Potencias de 2
Por coincidencia, 2^10 = 1024 ≈ 10^3. Por lo tanto, El término kilo (Del griego
para mil) indica 2^10. Por ejemplo, 2^10 bytes es un kilobyte (1 KB).
Similarmente, mega (millón) indica 2^20 ≈ 10^6, y giga (billón) indica 2^30
≈ 109. Si sabemos que 2^10 ≈ 1 mil, 2^20 ≈ 1 millón, 2^30 ≈ 1 billón, o sea,
recuerde las potencias de 2 hasta 2^9, y será fácil de estimar cualquier
potencia de 2 en su cabeza.
Ejemplo: ESTIMAR POTENCIAS DE 2
Encontrar el valor aproximado de 2^24 sin usar la calculadora.
Solución: Dividir el exponente en en un múltiplo de 10 con su resíduo.
2^24 = 2^20 × 2^4. 2^20 ≈ 1 million. 2^4 = 16. Así, 2^24 ≈ 16 millones.
Técnicamente, 2^24 = 16,777,216, pero 16 millones está suficientemente
cerca para fines de mercadeo.
1024 bytes se llama un kilobyte (KB). 1024 bits se llama un kilobit (Kb o Kbit).
Similarmente, MB, Mb, GB, y Gb ae usan para millones y billones de bytes y
bits. La capacidad de memoria usualmente se mide en bytes.
La velocidad de las comunicaciones es medida en bits/s. Por ejemplo, la
velocidad máxima de un modem dial-up es 56 kbits/s.
Suma Binaria
La suma binaria se parece mucho a la suma decimal, pero más
fácil,como se muestra en la figura. Como en la suma
decimal, si la suma de dos números es mayor que un dígito,
se puede acarrear 1 a la siguiente columna.
La figura compara la suma decimal y la binaria. En la columna
más a la derecha en la figure, 7 + 9 = 16, lo que no cabe en
un sólo dígito porque es mayor que 9. Po lo que se registra
el 6, y se acarrea el 1 a la siguiente columna. De igual forma
en binario, si la suma de dos números es mayor que 1, se
acarrea el 2 sobre la siguiente columna. Por ejemplo, en en
la columna más a la derecha del la figura.
Números Binarios con Signo
Hasta ahora, hemos considerado números binarios sin signo que
representan cantidades positivas. A menudo queremos
representar tanto números positivos como negativos. Esto
requiere un sistema binario diferente. Varios esquemas
existen para representar números binarios con signo; los dos
más utilizados con los llamados signo/magnitud y
complemento a 2.
Números Signo/Magnitud
Los números signo/magnitud son atractivos porque coinciden
con nuestra costumbre de escribir números negativos con un
signo menos seguido de la magnitud. Un número
signo/magnitud de N bits usa el bit más significativo para el
signo y los N-1 bits restantes como la magnitud (valor
absoluto). Un bit de signo 0 indica positivo y 1 indica
negativo.
NÚMEROS SIGNO/MAGNITUD
Ejemplo:
Escribir 5 and -5 como un número signo/magnitud de de 4-bits
Solución: Los dos tienen una magnitud 5 = 101. Por lo tanto, 5 = 0101
and
-5 = 1101.
Desafortunadamente, la suma binaria ordinara no trabaja con números
signo/magnitud. Por ejemplo, usando la suma ordinaria en -510 + 510
da 1101 + 0101 = 10010, Lo cual no tiene sentido.
Un número signo/magnitud de N-bits cubre el rango [-2^N-1 + 1, 2^N-1 -
1]. El +0 y el -0 existen. Ambos indican cero.
Como es de esperarse, puede resultar problemático tener dos
representaciones para el mismo número.
Números en Complemento a 2
Iguales a los sin signo excepto que el bit más significativo tiene peso -
2^(N-1) en lugar de 2^(N-1). Estos superan los obstáculos de los
números signo/magnitud: el cero tiene una sola representación, y la
suma ordinaria funciona.
El cero se escribe como todos ceros: 00…000. El número más positivo
tiene un 0 en en la posición más significativa y 1’s en el resto de
posiciones: 01…111 = 2^(N-1) - 1. El número más negativo tiene 1 en
la posición más significativa y 0’s en el resto: 10…000 = -2(N-1). El -1
se escribe con todos 1’s: 11…111.
Note que en Signo/Magnitud, los números positivos tienen un 0 en la
posición más significativa y los negativos tienen un 1 en esa posición,
por lo que el bit más significativo puede ser visto como el bit de signo.
El signo de un número en complemento a 2 es revertido en un proceso
llamado “Obtener el complemento a 2”. El proceso consiste en invertir
todos los bits en el número, y luego sumar 1 a la posición menos
significativa; esto es útil para encontrar la representación de un
número negativo o para determinar la magnitud del negativo.
EJEMPLOS
Encontrar la representación de -2 como un número binario
en complemento a 2.
Solución: Inicie con +2 = 0010. Para obtener -2, invertir los
bits y sumar 1. Inversión: 0010 produce 11012. 11012 +
1 = 11102. Por lo tanto, -2 es 1110.
Encontrar el valor del binario en complemento a 2, 1001.
Solución: 1001 tiene un 1 como bit más significativo, así
que debe ser negativo. Para encontrar su magnitud,
invertir los bits y sumar 1. Inversión: 1001 = 0110. 0110
+ 1 = 0111 = 7. Por lo tanto, 1001 = -7.
EJEMPLOS
Los números en complemento a dos tienen la ventaja de que la suma
funciona correctamente para los números positivos y negativos.
Recuerde que cuando se suman números de N bits, el acarreo del N-
ésimo bit (es decir, el bit de resultado N + 1º) se descarta.
Calcule (a) -2 + 1 y (b) -7 + 7 de números en complemento a 2.
Solución: (a) -2 + 1 = 1110 + 0001 = 1111 = -1. (b) -7 + 7 = 1001 +
0111 = 10000. El quinto bit se descarta, dejando el resultado
correcto de 4 bits 0000.
La resta se realiza tomado el complemento a dos del segundo número y
luego sumando.
Calcule (a) 5 - 3 y (b) 3 - 5 de números de 4 bits en complemento a 2.
Solution: (a) 3 = 0011. Tome los complementos a 2 para obtener -3 =
11012. Ahora sume 5 + (-3) = 0101 + 1101 = 0010 = 2. Note que el
acarreo del bit más significativo se descarta porque el resultado se
guarda en 4 bits.(b) Tome el complemento a 2 de 5 para obtener -5 =
1011. Ahora sume 3 + (-5) = 0011 + 1011 = 1110 = -2
Como en los números sin signo, n número de N bits en complemento a 2
representa
uno de 2^N posibles valores. Por lo tanto, loa valores se dividen entre
positivos y negativos. Por ejemplo, un número sin signo de 4 bits represent
16 valores: 0 a 15. Un número de 4 bits en complemento a 2 también
representa uno de 16 valores: --8 a 7. El rango de un número de N bits en
complemento a 2 está entre [-2^(N-1), 2^(N-1) - 1]. Hay más negativos que
positivos porque no hay -0. El número más negativo 10…000 = -2(N-1) es a
veces llamado el número sobrenatural. Su complemento se encuentra
invirtiendo los bits (produciendo 01…111) y sumando 1, lo que produce
10…000, el número sobrenatural. Por lo tanto, este número negativo no
tiene una contraparte positiva.
Sumar dos números binarios de N bits positivos o negativos puede causar
overflow si el resultado es mayor que 2^(N-1) - 1 o menor que -2^(N-1).
Sumar un positivo a un negativo nunca causa overflow. El overflow ocurre
si los dos sumandos tienen el mismo bit de signo y el resultado tiene el bit
de signo opuesto.
Ejemplo
Calcule 4 + 5 usando números de 4 bits en complemento a 2. ¿Existe
overflow?
Solución: Exite un overflow, pues el resultado rebasa el rango para
números del positivo de 4 bits para números en complemento a 2,
produciendo au resltado negativo incorrecto.
Si el resultado se obtuviera usando 5 o más bits, habría sido
correcto. 01001 = 9.
Cuando un número en complemento a 2 se extiende a más bits, el
bit de signo se copia en las posiciones más significativas. Este
proceso se llama extensión de signo.
Por ejemplo, el número 3 y -3 se escriben como números de 4 bits en
complemento a 2; 0011 y 1101, respectivamente. Se extienden en
signo a 7 bits copiando el bit de signo bit en los nuevos bits
superioes para formar 0000011 and 1111101, respectivamente.
Tabla de rangos y Recta Numérica
Compuertas Lógicas
Ahora conocemos el uso de variables binarias para representar
información, exploraremos sistemas digitales que realizan
operaciones en esas variables binarias. Las compuertas lógicas son
circuitos digitales simples que toman uno o más entradas binarias y
producen una salida binaria.
Las compuertas lógicas se dibujan con un símbolo que muestra la(s)
entrada(s) y la salida. Las entradas usualmente son dibujadas a la
izquierda o arriba y las salidas a la derecha o abajo. Los diseñadores
digitales típicamente usan ls primeras letras del alfabeto para las
entradas y la letra Y para la salida.
La relación entre las entradas y la salida puede ser descrita por una
tabla de verdad o una ecuación booleana. Una tabla de verdad lista
las entradas a la izquierda y la salida a la derecha. Tiene una fila
para cada posible combinación de entradas. Una ecuaciòn booleana
es una expresión matemática que usa variables binarias.
Compuerta NOT
Una compuerta NOT tiene una entrada A y una salida Y,
como se muestra en la figura. La salida es la inversa de
su entrada. Si A es FALSO, entonces Y es VERDAD. Si A
es VERDAD, Y es FALSO. Ver figura.
La línea sobre la A en la ecuaciòn booleana se pronuncia
NOT, Y = A se lee “Y es igual a NOT A.”
La compuerta NOT también se llama inversor.
Otros textos usan una variedad de notaciones para NOT,
incluyendo Y = A′, Y = ¬A,
Y = !A or Y = ~A.
Usaremos Y =A exclusivamente, pero no se sorprenda si
encuentra otra notación en otro lado.
Buffer
Otra compuerta lógica con una entrada es conocida como
buffer, ver figura. Ella simplemente copia la entrada a la salida.
Desde el punto de vista de la lógica, un buffer no es diferente a
un conductor, por lo que puede parecer inútil. Sin embargo,
desde el punto de vista analógico, el buffer tiene características
deseables como la habilidad de liberar grandes cantidades de
corriente a un motor o de enviar rápidamente su salida a
muchas compuertas.
Este es un ejemplo de por qué necesitamos multiples niveles de
abstracción para entender plenamente uns sistema; la
abstracción digital oculta el propósito real de un buffer.
El triángulo indica un buffer. Un círculo en la salida es llamada
burbuja e indica inversion.
Compuertas NOT y BUFFER
Compuerta AND
Las compuertas de dos entradas son más interesantes. La
compuerta AND de la figura produce una salida Y TRUE si
y solo si A y B son TRUE. Caso contrario, Y es FALSE.
Por convención, las entradas se listan en el orden 00, 01,
10, 11, como si se contara en binario.
La ecuación booleana para una compuerta AND tiene
varias formas:
Y = A • B, Y = AB, o Y = A ∩ B. El símbolo ∩ se pronuncia
“intersección”, que es preferido por los lógicos. Nosotros
prefrimos Y = AB, “Y igual A y B”.
Compuerta OR
La compuerta OR mostrada en la figura, produce
una salida TRUE, Y, si A o B (o ambas) son TRUE.
La ecuación booleana para una compuerta OR
es: Y = A + B or Y = A ∪ B. El símbolo ∪ se
pronuncia unión y es preferido por los lógicos.
Los diseñadores digitales usan la notación +, Y =
A + B pronounciada “Y igual A o B”.
Compuertas AND y OR
Otras Compuertas Lógicas
La figura muestra otras compuertas lógicas comunes. XOR
(OR exclusivo, pronounciado “ex-OR”) es TRUE si A o B,
pero no ambos, son TRUE.
Cualquier compuerta puede estar seguida de una burbuja
para invertir la salida. La compuerta NAND realiza NOT y
AND. Su salida es TRUE si una de sus entradas es FALSE.
La compuerta NOR realiza NOT y OR. Su salida es TRUE si
ni A ni B es TRUE.
Una compuerta XOR de N entradas, a veces es llamada
compuerta de paridad y produce una salida TRUE si un
número impar de entradas es TRUE.
Compuerta XNOR
Ejemplo
La figura muestra el símbolo y la ecuación booleana
para una compuerta XNOR de dos entradas, que
realiza la inversa de una XOR. Completar la tabla de
verdad para esta compuerta.
Solución: La figura muestra la tabla de verdad. La
salida de la XNOR es TRUE si ambas entradas son
FALSE o ambas entradas son TRUE. También es
conocida com la compuerta de la igualdad, porque
es la salida es TRUE para entradas iguales.
XOR, NAND, NOR, XNOR
Compuertas de Múltiples Entradas
Existen varias funciones booleanas de 3 o más
entradas. Las más comunes son AND, OR, XOR,
NAND, NOR, and XNOR.
Una compuerta AND de múltiples entradas
produce una salida TRUE cuando las N entradas
son TRUE. Un OR de N entradas produce una salida
TRUE cuando al menos una entrada es TRUE.
Compuertas de Múltiples Entradas
Ejercicios
Ejercicio 1: Explique en un párrafo al menos tres niveles
de abstracción que usan los:
(a) biólogos que estudian la operación de las células.
(b) químicos que estudian la composición de la materia.
Ejercicio 2: Explique en un párrafo, cómo las técnicas de
jerarquía, modularidad, y regularidad pueden se usadas
por:
(a) diseñadores de automóviles.
(b) negociadores para manejar sus operaciones.
Ejercicio 3: Ben Bitdiddle está construyendo una casa.
Explique cómo puede usar los principios de jerarquía,
modularidad y regularidad para ganar tiempo y dinero
durante la construcción.
Ejercicios
Ejercicio 4: Los Babilonios desarrollaron el
Sistema de números sexagesimales (base 60)
hace 4000 años. ¿Cuántos bits de información es
transmitida con un carácter sexagesimal? ¿Cómo
escribiría el número 400010 en sexagesimal?