aritmética de punto fijoags/oc/downloads/apuntes de teorÍa/han… · aritmética de punto fijo...
TRANSCRIPT
Organización de ComputadorasOrganización de ComputadorasDepto. Cs. e Ing. de la Comp.Depto. Cs. e Ing. de la Comp.Universidad Nacional del SurUniversidad Nacional del Sur
Módulo 03Módulo 03Aritmética deAritmética de
Punto FijoPunto Fijo
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 22
CopyrightCopyrightCopyright © 2011-2019 A. G. Stankevicius
Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation,sin secciones invariantes ni textos de cubierta delantera o trasera
Una copia de esta licencia está siempre disponible enla página http://www.gnu.org/copyleft/fdl.html
La versión transparente de este documento puedeser obtenida de la siguiente dirección:
http://cs.uns.edu.ar/~ags/teaching
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 33
ContenidosContenidosClasificación de las operaciones
Codificación decimal en binario (BCD)
Representación SM
Representación RC
Representación DRC
Operaciones de suma y de resta
Detección de overflow
Otras codificaciones
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 44
Tipos de operacionesTipos de operacionesLas operaciones aritméticas se clasificanen tres grandes categorías:
Operaciones aritméticas estándares
Funciones aritméticas elementales
Operaciones pseudo-aritméticas
A su vez, se dispone esencialmentede dos modos de operación:
Operación en punto fijo
Operación en punto flotante
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 55
Tipos de operacionesTipos de operacionesOperaciones aritméticas estándares:
Esta categoría incluye las cuatro funciones aritméticas primitivas: suma, resta, multiplicación y división,tanto en punto fijo como en punto flotante
Toda otra función matemática podrá ser expresadacomo una composición de estas cuatro operaciones
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 66
Tipos de operacionesTipos de operacionesFunciones aritméticas elementales:
Esta categoría incluye aquellas operaciones usadas frecuentemente en cómputos matemáticos, tales como exponencial, raíz cuadrada, funciones trigonométricas, hiperbólicas, etc.
No todas las computadoras implementan estas funciones en hardware, en general se suelen implementar en firmware (microcódigo) o bien directamente como software en una librería.
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 77
Tipos de operacionesTipos de operacionesOperaciones pseudo-aritméticas:
Estas categoría incluye operaciones que requierenun cierto grado de cálculo aritmético, pero están relacionadas con la ejecución de un programa
Consta de dos subcategorías:
Aritmética de direccionamiento: operaciones relacionadas al cómputo de la dirección efectivaen memoria de los datos
Aritmética de edición de datos: operaciones lógicas y de transformación de datos tales como, load/store, empaquetado/desempaquetado, etc.
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 88
Modos de operaciónModos de operaciónOperación en punto fijo:
Este modo de operación es usado en problemas comerciales o cálculos estadísticos y se caracteriza por tener el punto decimal en una posición prefijada
Consta de dos subcategorías:
Operación entera: los resultado se alinean enel extremo derecho, como si el punto decimalocupara esa posición
Operación fraccionaria: los resultados se alineanen el extremo izquierdo, como si el punto decimal ocupara esa posición
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 99
Modos de operaciónModos de operaciónOperación en punto flotante:
Este modo de operación es usado en problemasde tipo ingenieril o científico, donde frecuentemente se requiere escalamiento para manejar tanto magnitudes muy grandes como muy pequeñas
Consta de dos subcategorías:
Operación normalizada: el resultado de toda operación es normalizado antes de ser retornado
Operación no normalizada: el resultado de toda operación es retornado tal cual fuera obtenido
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1010
Precisión de las operacionesPrecisión de las operacionesLas instrucciones aritméticas también pueden ser clasificadas de acuerdo a su precisión:
Precisión simple (SP): se refiere a las operaciones definidas sobre operandos de tamaño estándar,esto es, con operando de longitud igual a una palabra
Precisión doble (DP): se refiere a las operaciones definidas sobre operandos de tamaño doble, esto es, con operandos de longitud igual a dos palabras
Triple, cuádruple y las restantes precisiones pueden definirse de manera análoga
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1111
Binario vs. decimalBinario vs. decimalAlgunas arquitecturas ofrecen la posibilidadde operar directamente sobre la base decimal
La conversión (operaciones de pack y de unpack), requiere de instrucciones para manejar los datos directamente en formato decimal
Por caso, la instrucción ADD puede hacer referenciaa 16 operaciones aritméticas distintas, a saber:
SP ó DPFXPó
FLP
entero ófraccionario
normalizado óno normalizado
binarioó
decimal
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1212
Codificación de dígitosCodificación de dígitosPara codificar cada dígito decimal es necesario hacer uso de k bits, donde:
k = é log2 10 ù = 4
Es posible postular múltiples codificaciones para cada dígito decimal haciendo usode esos bits. Por ejemplo:
0123
0000000100100011
0000000100110111
0011010001010110
0000000100110101
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1313
Código BCD-2421Código BCD-2421El código BCD-2421 denota en su nombreel peso asignado a cada posiciónen la codificación
Se trata de un sistema posicional
Presenta una línea de simetría porautocomplementación
Esta característica facilita el cómputode la diferencia entre magnitudes deigual signo y la suma de magnitudesde distinto signo
0123456789
24210000000100100011010010111100110111101111
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1414
Código BCD-8421Código BCD-8421El código BCD-8421 codifica cada dígito decimal directamente en binario
También se lo conoce como códigoBCD natural
Se trata de un sistema posicional
El peso de cada posición coincide conlas sucesivas potencias de dos
No es posible encontrar ninguna líneade simetría que resulte de utilidad
0123456789
84210000000100100011010001010110011110001001
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1515
Código BCD exceso-3Código BCD exceso-3El código BCD exceso-3 también codifica cada dígito decimal en binario, si bien les sumapreviamente un exceso
Producto del exceso, deja de serun sistema posicional
Como se puede apreciar, resultasimétrico por autocomplementación
En esta codificación el acarreo binariocoincide con el acarreo decimal
0123456789
----0011010001010110011110001001101010111100
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1616
Código GrayCódigo GrayEl código Gray es simétrico por construcción
También se lo conoce como códigoprogresivo cíclico
Se trata de una codificaciónno posicional
Como se puede observar presentamúltiples líneas de simetría
Nótese que entre la codificación deun dígito y el siguiente se modificaa lo sumo un bit
0123456789
----0000000100110010011001110101010011001101
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1717
Aritmética de punto fijoAritmética de punto fijoRecordemos que elegida una base r y una precisión p (cantidad de dígitos), el aportede cada dígito al valor denotado depende exclusivamente de su posición
La idea es que los primeros n dígitos denoten la parte entera y los restante k dígitos la parte fraccionaria
La elección de n y de k tiene como efecto colateral fijar la posición del punto decimal, razón por la cualhablamos de aritmética de punto fijo (FXP)
Usualmente, n = 0 o bien k = 0
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1818
Aritmética de punto fijoAritmética de punto fijoUn número signado representará una magnitud positiva o negativa, pero no ambas
Usualmente se reserva el dígito de más a la izquierda (esto es, el más significativo), para denotar el signo
De los r dígitos válidos sólo se han de utilizar dos para codificar el signo
Por caso, sea X = (dn-1, …, d1, d0, d-1, …, d-k)r
un número representado en una base r, entonces:
dn-1 = 0 cuando X ≥ 0
r-1 cuando X < 0
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 1919
Aritmética de punto fijoAritmética de punto fijoLas posiciones del punto decimal y del signo dependerán de n y de k
Cuando k = 0, el signo se ubica en el extremo izquierdo y el punto decimal en el extremo derecho
Cuando n = 0, el signo se ubica en el extremo izquierdo y el punto decimal inmediatamente a su derecha (justo antes del primer dígito fraccionario)
La conversión entre estas dos variantes es sencilla, basta con multiplicar o dividir por una potencia de r
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2020
Aritmética de punto fijoAritmética de punto fijoLa representación interna del punto decimales implícita, no requiere reservar espaciode almacenamiento
Para representar un número positivo, todos los dígitos salvo el de signo codifican su magnitud
Todas las representaciones que estudiaremos coinciden al codificar número positivos
En cambio, para representar a un número negativo aparecen múltiples alternativas
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2121
Signo-magnitud (SM)Signo-magnitud (SM)Esta representación es análoga a la utilizada cotidianamente, donde la ausencia de signo representa un número positivo, y la presencia del signo – representa a un número negativo
En la codificación signo-magnitud, el dígito de signo toma el valor 0 en los positivos y r-1 en los negativos
Nótese que +0 y -0 denotan al mismo valor,por lo que la representación del cero no es única
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2222
Signo-magnitud (SM)Signo-magnitud (SM)Sea X el complemento de un dado número X
En esta representación, X y X difieren sóloen el dígito que codifica al signo
Comprobemos esta situación con un ejemplo parauna base r = 2 y con una precisión p = 8:
(00101011)2 = +(43)10 (10101011)2 = -(43)10
(01111111)2 = +(127)10 (11111111)2 = -(127)10
(00000000)2 = +(0)10 (10000000)2 = -(0)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2323
Signo-magnitud (SM)Signo-magnitud (SM)¿Qué rango de representación brinda usar SM con n dígitos en una base r?
El menor número posible es (r-1 r-1 r-1 … r-1)r
El mayor número posible es (0 r-1 r-1 … r-1)r
Es decir, el rango de representación parasigno-magnitud es [-(rn-1 - 1), rn-1 - 1]
Por caso, para una base r = 2, con n = 8 dígitos binarios, el rango se calcula como:
[-(27 - 1), 27 - 1] = [-127, 127]
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2424
Complemento a la base (RC)Complemento a la base (RC)Las computadoras suelen hacer uso de algún esquema de complementación para representara los números negativos
Esto simplifica las operaciones suma de númerosde distintos signo, o lo que es lo mismo, de restade números de igual signo
Imaginemos el odómetro de una moto que queremos vender. Le pedimos a un mecánico amigo que le “rebobine” el odómetro, pero élse descuida y se pasa de largo... ¿qué sucede?
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2525
Complemento a la base (RC)Complemento a la base (RC)Supongamos que el odómetro tiene sólo tres dígitos (a manera de simplificación)
¿Qué sucede al tratar de retroceder 5 Km estando inicialmente en el Km 003?
003 → 002 → 001 → 000 → 999 → 998
En algún sentido, 998 tiene que representaral número -2
Nótese que al sumar un valor positivo con su complemento negativo, se obtiene siempre el mismo resultado... ¿cuál es ese valor? ¿y al tener n dígitos?
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2626
Complemento a la base (RC)Complemento a la base (RC)El resultado anterior permite determinaren general el valor de X para cualquier X
Como comprobamos, X + X = rn, por lo que despejando X nos queda X = rn – |X|
No es conveniente tener que computar una resta toda vez que se desee saber qué valor representa un cierto número negativo en complemento a la base
Por suerte, como rn = (rn – 1) + 1, se puede expresar a X como X = ((rn – 1) – |X|) + 1
Obsérvese que rn – 1 es un número especial, está compuesto de n dígitos iguales, de valor r-1
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2727
Complemento a la base (RC)Complemento a la base (RC)En síntesis, el mecanismo simplificado para expresar un cierto número negativo en complemento a la base consiste en:
Primero expresar el valor absoluto del número en cuestión en el sistema complemento a la base(que por tratarse de un número positivo coincidecon su representación en SM)
Complementar cada dígito del número, esto es, reemplazar cada dígito di por el valor (r-1) – di
(nótese que el signo también es complementado)
Finalmente, incrementar en 1 el valor obtenido
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2828
Complemento a la base (RC)Complemento a la base (RC)Para r = 2 y n = 8 se desea saber qué valores codifican las siguientes cadenas de bits:
Cuando el bit de signo es 0, la cosa es fácil:
En cambio, si el bit de signo es 1, se trata de un número negativo el cual se debe complementar:
(00001111)2 = +(15)10 (01001101)2 = +(77)10
(01111111)2 = +(127)10 (00000000)2 = +(0)10
(10001111)2 =-[(01110000)2 + 1] = -(113)10
(10000000)2 =-[(01111111)2 + 1] = -(128)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 2929
Complemento a la base (RC)Complemento a la base (RC)¿Qué rango de representación brinda usar complemento a la base r con n dígitos?
El menor número posible es (r-1 0 0 … 0)r
El mayor número posible es (0 r-1 r-1 … r-1)r
Es decir, el rango de representación en complemento a la base es [-rn-1, rn-1 – 1]
Por caso, para una base r = 2, con n = 16 dígitos binarios, el rango se calcula como:
[-215, 215 – 1] = [-32768, 32767]
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3030
Complemento a la base disminuida (DRC)Complemento a la base disminuida (DRC)Recordemos que al representar un número negativo en complemento a la base debemos incrementar en 1 luego de complementar
Esta operación puede ser costosa en tiempo de ejecución, sobre todo si existen múltiples acarreos
Una posibilidad para evitar esta operación consisteen representar los números negativos haciendo uso del complemento a la base disminuida
Por caso, para un cierto número positivo X,su complemento a la base disminuida X se calcula directamente como X = (rn – 1) – |X|
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3131
Complemento a la base disminuida (DRC)Complemento a la base disminuida (DRC)Volviendo al ejemplo del odómetro, el valor representado se debe retrasar una unidad (ya que falta tener en cuenta el incremento final)
0003 → 0002 → 0001 → 0000 → 9999 → 9998 → 9997
+3 → +2 → +1 → +0 → -0 → -1 → -2
Como se puede apreciar existen nuevamente dos representaciones para el cero:
+0 = (0 0 … 0 0)r
-0 = (r-1 r-1 … r-1 r-1)r
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3232
Complemento a la base disminuida (DRC)Complemento a la base disminuida (DRC)El mecanismo simplificado para expresarun cierto número negativo en complementoa la base disminuida ahora consiste en:
Primero expresar el valor absoluto del númeroen cuestión en el sistema complemento a la base disminuida (que por tratarse de un número positivo coincidirá con su representación en signo-magnitudy en complemento a la base)
Finalmente, complementar cada dígito del número, esto es, reemplazar cada dígito di por el valor
(r-1) – di (el signo también es complementado)
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3333
Complemento a la base disminuida (DRC)Complemento a la base disminuida (DRC)
Para la base r = 2 se desea saber qué números codifican las siguientes cadenas de bits:
Cuando el bit de signo es 0, la cosa sigue siendo fácil:
En cambio, si el bit de signo es 1, se trata deun número negativo el cual se debe complementar:
(00001111)2 = +(15)10 (01001101)2 = +(77)10
(01111111)2 = +(127)10 (00000000)2 = +(0)10
(10001111)2 =-(01110000)2 =-(112)10
(10000000)2 =-(01111111)2 =-(127)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3434
Complemento a la base disminuida (DRC)Complemento a la base disminuida (DRC)¿Qué rango brinda usar complemento a la base disminuida con n dígitos para una base r?
El menor número es (r-1 0 0 … 0)r
El mayor número es (0 r-1 r-1 … r-1)r
Es decir, el rango de representación en complemento a la base disminuida es [-(rn-1 – 1), rn-1 – 1]
Por caso, para una base r = 2, con n = 16 dígitos binarios, el rango se calcula como:
[-(215 – 1), 215 – 1] = [-32767, 32767]
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3535
Ejemplo comparativoEjemplo comparativoA manera de comparación, contrastemosla representación del número (547)10 usando
n = 16 dígitos y una base r = 2
Tener en cuenta que (547)10 = (1000100011)2
signo-magnitudcomplemento a 1complemento a 2
000000100010001100000010001000110000001000100011
signo-magnitudcomplemento a 1complemento a 2
+(547)10
100000100010001111111101110111001111110111011101
-(547)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3636
AnálisisAnálisisEn la elección de un sistema de representación de números signados se deben tener en cuenta diversos aspectos:
¿Qué tan sencillo resulta detectar el signo?
¿Resultan equivalentes los rangos de representaciónpara positivos y negativos?
¿El cero tiene una representación unívoca?
¿Qué tan eficiente resulta la implementaciónde las operaciones básicas y de la operaciónde complementación?
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3737
AnálisisAnálisisAnalicemos los tres sistemas a la luzde los criterios recién introducidos:
La detección del signo es equivalente en los tres casos, consiste en inspeccionar el primer dígito
En relación a la simetría del rango, signo-magnitud y complemento a la base disminuida resultan simétricos, mientras que complemento a la base no
El cero tiene representación doble en signo-magnitud y en complemento a la base disminuida, pero en complemento a la base no
Resta analizar la eficacia de las operaciones
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3838
Suma en SMSuma en SMPara sumar dos números codificados en SMse aplica el siguiente algoritmo:
Sean X = (Xn-1 … X1X0) e Y = (Yn-1 … Y1Y0)los números a ser sumados
Si Xn-1 = Yn-1 (números de igual signo), se suman
las magnitudes (Xn-2 … X1X0) e (Yn-2 … Y1Y0)
En este caso el signo del resultado será Xn-1
Si hay acarreo en la posición del signo, entoncesel resultado es inválido pues se produjo un overflow
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 3939
Suma en SMSuma en SMContinúa:
En cambio, si Xn-1 ≠ Yn-1 se deben comparar
las magnitudes y en caso que |X| < |Y|,se procede a intercambiar los valores X e Y
Independientemente de que se haya intercambiadoo no, el resultado buscado se obtiene restandola magnitud (Yn-2 … Y1Y0) a (X
n-2 … X
1X0)
En este caso el signo del resultado también será Xn-1 (nótese que será el signo correcto, es decir, el signo del número más grande en valor absoluto)
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4040
EjemploEjemploAsumida una base r = 2 y una precisión n = 8,se desean realizar las siguientes sumas entre números codificados en SM:
Con operandos de un mismo signo:
Con operandos de distintos signo:
(0 00011001)2 = +(25)10
+(0 0111110)2 = +(62)10
(0 1010111)2 = +(87)10
(0 1010100)2 = +( 84)10 (1 01111000)2 = -(120)10
+(1 1111000)2 = -(120)10 -(0 1010100)2 = +( 84)10
(1 0100100)2 = -( 36)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4141
Detección de overflowDetección de overflowAl operar en signo-magnitud sólo se puede producir overflow al sumar númerosde igual signo
El mecanismo de detección del overflow consiste en inspeccionar el acarreo a la posición del signo: si hubo acarreo, se debe descartar el resultado por inválido
En contraste, no es posible provocar un overflowal sumar números de distinto signo
En ese caso el resultado siempre será más pequeño (en valor absoluto) que el mayor de los operandos (también en valor absoluto)
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4242
EjemploEjemploAsumida una base r = 2 y una precisión n = 8,se desean realizar las siguientes operaciones entre números codificados en SM:
Con operandos positivos:
Con operandos negativos:
(0 11010111)2 = +(87)10
+(0 0111110)2 = +(62)10
(0 0010101)2 = OV
(1 10010100)2 = -( 20)10
+(1 1111110)2 = -(126)10
(1 0010010)2 = OV
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4343
Suma en DRCSuma en DRCPara sumar dos números en complemento a la base disminuida se usa el siguiente algoritmo:
Sean X e Y los números a ser sumados y seanS = (Sn-1 … S1S0) los dígitos del resultado y
C = (CnCn-1 … C1) los acarreos que se generen
La suma preliminar se obtiene sumando la totalidad de los dígitos, signo incluido
Si Xn-1 = Yn-1 = 0 (ambos operandos positivos), Cn
es necesariamente 0, y el resultado preliminar esel definitivo, pero si Sn-1 = 1, se produjo overflow
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4444
Suma en DRCSuma en DRCContinúa:
Si Xn-1 ≠ Yn-1 (operandos de distinto signo),se estudia el acarreo de salida (Cn)
Si Cn = 0, el resultado preliminar es el definitivo
Si Cn = 1, se descarta el acarreo e incrementandoen 1 al resultado preliminar se obtiene el definitivo
Finalmente, si Xn-1 = Yn-1 = 1 (ambos operandos negativos), Cn es necesariamente 1, y el resultado definitivo se obtiene incrementando en 1 al resultado preliminar, pero si Sn-1 = 0, se produjo overflow
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4545
EjemploEjemploAsumida una base r = 2 y una precisión n = 8,se desean realizar las siguientes operaciones entre números codificados en DRC:
Con operandos positivos:
Como era de esperar, Cn = 0. Por otra parte, como
Sn-1 = 0, el resultado preliminar es el definitivo:
(000101001)2 = +(41)10
+( 00100110)2 = +(38)10
( 01001111)2 = +(79)10
(01001111)2 = +(79)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4646
EjemploEjemploContinúa:
Con operandos de distinto signo:
En esta oportunidad, Cn = 1. Se descarta el acarreode salida, pero se debe incrementar en 1 el resultado preliminar para obtener el definitivo:
(111010110)2 = -(41)10
+( 01100010)2 = +(98)10
( 00111000)2 = +(56)10
(00111001)2 = +(57)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4747
Detección de overflowDetección de overflowAl operar en complemento a la base disminuida sólo se puede producir overflow al sumar números de igual signo
El mecanismo de detección del overflow consisteen inspeccionar el bit de signo del resultado: en caso de no ser el esperado, se produjo un overflow
Esta detección equivale a computar Cn Å Cn-1. Verificar que está expresión cubre todos los casos
Al igual que en las restantes representaciones,no es posible provocar un overflow al sumarnúmeros de distinto signo
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4848
EjemploEjemploAsumida una base r = 2 y una precisión n = 8,se desea realizar la siguiente operación entre números codificados en DRC:
Con operandos negativos:
Como era de esperar, Cn = 1. No obstante, el signo del resultado es incorrecto, se produjo overflow
Nótese que Cn Å Cn-1 = 1, pues Cn = 1 y Cn-1 = 0
(110110111)2 = -(72)10
+( 11000000)2 = -(63)10
( 01110111)2 = OV
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 4949
Suma en RCSuma en RCPara sumar dos números en complementoa la base se usa el siguiente algoritmo:
Sean X e Y los números a ser sumados, seanS = (Sn-1 … S1S0) los dígitos del resultado y
C = (CnCn-1 … C1) los acarreos que se generen
La suma definitiva se obtiene sumando la totalidadde los dígitos, signo incluido
Si Xn-1 = Yn-1 = 0 (ambos operandos positivos),
Cn es necesariamente 0, pero si Sn-1 = 1 (el signodel resultado es incorrecto), se produjo overflow
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5050
Suma en RCSuma en RCContinúa:
Si Xn-1 ≠ Yn-1 (operandos de distinto signo), en casode generarse acarreo de salida, se descarta
Finalmente, si Xn-1 = Yn-1 = 1 (ambos operandos negativos), Cn es necesariamente 1, este acarreo
también se descarta, pero si Sn-1 = 0 (el signodel resultado es incorrecto), se produjo overflow
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5151
EjemploEjemploAsumida una base r = 2 y una precisión n = 8,se desean realizar las siguientes sumas entre números codificados en RC:
Con operandos positivos:
Como era de esperar, Cn = 0. A su vez, considerando
que Sn-1 = 0, el resultado es correcto pues no se produjo overflow
(000010110)2 = +(22)10
+( 00010010)2 = +(18)10
( 00101000)2 = +(40)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5252
EjemploEjemploContinúa:
Con operandos de distinto signo:
En esta oportunidad, Cn = 1. Se descarta el acarreode salida y como no se puede producir overflow con operandos de distinto signo el resultado obtenidoes necesariamente correcto
(111010111)2 = -(41)10
+( 01100010)2 = +(98)10
( 00111001)2 = +(57)10
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5353
Detección de overflowDetección de overflowAl operar en complemento a la base sólo se puede producir overflow al sumar númerosde igual signo
El mecanismo de detección del overflow es análogo al anterior: se inspecciona el bit de signo del resultado y si no es el esperado, es porque se produjo overflow
Esta detección equivale a computar Cn Å Cn-1
Recordemos que al igual que en las restantes representaciones, no es posible provocar overflowal sumar números de distinto signo
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5454
EjemploEjemploAsumida una base r = 2 y una precisión n = 8,se desea realizar la siguiente operación entre números codificados en RC:
Con operandos negativos:
Como era de esperar, Cn = 1. No obstante, el signo del resultado es incorrecto, se produjo overflow
Nótese que Cn Å Cn-1 = 1, pues Cn = 1 y Cn-1 = 0
(110000000)2 = -(128)10
+( 11111111)2 = -( 1)10
( 01111111)2 = OV
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5555
AnálisisAnálisisPara completar el análisis comparativo de las tres representaciones alternativas nos resta estudiar la eficiencia de sus implementaciones:
Para SM, debe considerarse que para implementaruna suma se debe llevar adelante una comparación de magnitudes; esta comparación se implementa a nivel de hardware analizando el signo de la diferencia entre las magnitudes
Es decir, toda vez que se opere en SM a veces se suma y otras veces se resta dos veces (lo que implica que hay que disponer de ambos circuitos)
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5656
AnálisisAnálisisContinúa:
Para DRC sucede algo análogo: en el peor caso (esto es, cuando se produce acarreo de salida), para sumar dos magnitudes se debe realizar también dos operaciones sucesivas de suma
RC se destaca por ser la representación más eficiente, para realizar una suma simplemente se lleva adelante la suma propiamente dicha
Finalmente, en todos los casos se puede implementar la operación de resta usando el propio circuito sumador al combinarlo con la complementación
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5757
Codificación EBCDICCodificación EBCDICEl código EBCDIC es una extensión del código BCD diseñado por IBM en la década del '60
Codifica directamente caracteres de texto,usando 8 bits por cada carácter
Los bits se organizan de la siguiente manera:
7 6 5 4 3 2 1 0
00: reservado01: caracteres especiales10: minúsculas11: mayúsculas y números
00: de la 'A' a la 'I'01: de la 'J' a la 'R'10: de la 'S' a la 'Z'11: del '0' al '9'
codificación en binariodel carácter
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5858
Codificación ASCIICodificación ASCIIEl código ASCII es un estándar también creado en los 60' específicamente para los americanos
Codifica cada carácter usando 7 bits, lo que permite 128 combinaciones (razón por la cual no contempla, entre otros, vocales acentuadas ni la letra eñe)
Los bits se organizan de la siguiente manera:
6 5 4 3 2 1 0
00: caracteres de control01: valores numéricos10: mayúsculas11: minúsculas 0: de la 'A' a la 'O'
1: de la 'P' a la 'Z'
codificación en binariodel carácter
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 5959
Codificación ASCII extendidoCodificación ASCII extendidoEl código ASCII extendido es una extensióndel código ASCII original
Con el objeto de codificar algunos de los caracteres faltantes se incorpora un bit más por carácter
Existen múltiples extensiones (desde ISO 8859-1a 8859-15), una para cada región o zona del planeta
Se organiza de la siguiente manera:
7 6 5 4 3 2 1 0
0: ASCII básico1: ASCII extendido
codificación en binariodel carácter
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6060
Codificación UNICODECodificación UNICODEEl código UNICODE fue propuesto paraunificar las codificaciones incompatibles existentes al momento de su concepción
Al tratarse de un estándar reciente, el comité que lo diseño tuvo la chance de corregir los inconvenientes identificados en los restantes códigos
Actualmente cubre 137.994 caracteres
Usa un esquema de codificación extensible, por loque se puede seguir agregando nuevos caracteres
La versión más reciente (12.1) data de mayo de 2019
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6161
UTF-8UTF-8La codificación UTF-8 es una de las maneras que existe codificar el código UNICODE
La codificación se compone de una cantidad variable de bloques de 8 bits
Como objetivo de diseño se desea maximizarla compatibilidad con el código ASCII
Por esta razón, las primeras 128 codificaciones coinciden con el mapeo del código ASCII
De ahí en adelante entra en acción el esquema extensible, agregando nuevos bloques de 8 bitsa medida que vayan siendo requeridos
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6262
UTF-16 y UTF-32UTF-16 y UTF-32Las codificaciones UTF-16 y UTF-32 aparecen como alternativas a la codificación UTF-8
UTF-16 sólo codifica una porción del código UNICODE (¡solamente 1.112.064 caracteres!)
Hace uso de una cantidad variable de bloquesde 16 bits
UTF-32 codifica el mismo subconjunto que UTF-16
La principal diferencia es que hace uso de exactamente un único bloque de 32 bits.
Organización de Computadoras - Mg. A. G. StankeviciusOrganización de Computadoras - Mg. A. G. Stankevicius 6363
¿Preguntas?¿Preguntas?