Anda di halaman 1dari 108

ARQUITECTURA Y TECNOLOGA

DE COMPUTADORAS
Texto oficial para la materia de
Arquitectura de Computadoras
ISC IET

L. Marcl Barrero M.
Jefe de la Carrera de Ingeniera
de Sistemas Computacionales
Universidad Privada Boliviana



Segunda Edicin
2012

i

TABLA DE CONTENIDOS
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS ............................................................................. 1
TABLA DE CONTENIDOS .......................................................................................................................................... I
LISTA DE FIGURAS ............................................................................................................................................... IV
LISTA DE TABLAS .................................................................................................................................................. V
PARTE I HISTORIA DE LA COMPUTADORA ............................................................................................... 1
CAPITULO 1. HISTORIA DE LA COMPUTADORA .................................................................................................. 2
1 Introduccin ...................................................................................................................................... 2
2 Desarrollo Histrico y Conceptual ..................................................................................................... 3
3 Progresos en el Siglo XIX ................................................................................................................... 7
4 El Siglo XX ........................................................................................................................................ 12
5 Primera Generacin de Computadoras ........................................................................................... 15
6 Nacimiento de la Industria Informtica .......................................................................................... 18
7 Segunda Generacin de Computadoras .......................................................................................... 20
8 Tercera y Cuarta Generacin de Computadoras ............................................................................. 21
9 El Futuro .......................................................................................................................................... 24
10 Ejercicios ......................................................................................................................................... 26
CAPITULO 2. VISIN GENERAL .................................................................................................................... 27
1 Funcionamiento Bsico de una Computadora ................................................................................ 27
2 Desarrollo de Programas ................................................................................................................ 28
3 Ejercicios ......................................................................................................................................... 30
PARTE II ARQUITECTURA DE COMPUTADORAS ...................................................................................... 31
CAPITULO 3. REPRESENTACIN INTERNA DE LA INFORMACIN ........................................................................... 32
1 Introduccin .................................................................................................................................... 32
2 Datos no numricos ........................................................................................................................ 33
3 Datos Numricos ............................................................................................................................. 34
4 Enteros Positivos o Nulos ................................................................................................................ 34
4.1 Sistemas de Numeracin ............................................................................................................ 35
4.2 Cambios de Base ......................................................................................................................... 36
4.3 Representacin en Campo Fijo ................................................................................................... 38
5 Enteros Negativos ........................................................................................................................... 39
5.1 Signo y Valor Absoluto ................................................................................................................ 40
5.2 Complemento Lgico (Complemento a 1)................................................................................... 40
5.3 Complemento Aritmtico (Complemento a 2) ............................................................................ 41
5.4 Unidades bsicas de informacin (en bytes) .............................................................................. 42
5.5 Aritmtica de los Nmeros Enteros ............................................................................................ 44
5.6 Operaciones en Complemento a 1 .............................................................................................. 44
5.7 Operaciones en Complemento a 2 .............................................................................................. 47
6 Nmeros Fraccionarios ................................................................................................................... 50
6.1 Cambio de Base .......................................................................................................................... 51

ii

6.2 Representacin en Punto Fijo ..................................................................................................... 53
6.3 Representacin en Punto Flotante .............................................................................................. 54
6.4 Estndar IEEE 754 ....................................................................................................................... 58
6.4.1 Representacin de Valores especiales en IEEE-754 .................................................................... 59
7 Decimales Codificados en Binario ................................................................................................... 60
7.1 Cdigo BCD ................................................................................................................................. 60
7.2 Cdigo 2 en 5 .............................................................................................................................. 61
7.3 Cdigo Bi-quinario ...................................................................................................................... 61
8 Ejercicios ......................................................................................................................................... 62
CAPITULO 4. CODIFICACIN DE LA INFORMACIN ........................................................................................... 64
1 Introduccin .................................................................................................................................... 64
2 Cdigos Detectores y Correctores de Errores .................................................................................. 64
2.1 Cdigos Detectores ..................................................................................................................... 65
2.2 Cdigos Correctores .................................................................................................................... 66
2.2.1 Doble paridad ............................................................................................................................. 66
2.2.2 Cdigo de Hamming ................................................................................................................... 67
2.2.3 Clculo simplificado del Cdigo de Hamming ............................................................................. 70
2.3 Deteccin de Errores Agrupados ................................................................................................. 71
2.3.1 CRC (Cyclic Redundant Code) ...................................................................................................... 71
3 Compresin de Datos ...................................................................................................................... 74
3.1 Cdigo de Huffman ..................................................................................................................... 75
3.2 RLE (Run Length Encoding) ......................................................................................................... 77
3.3 Otros Cdigos de Compresin de Datos ...................................................................................... 78
4 Encriptacin .................................................................................................................................... 79
4.1 Algunos Sistemas de Encriptacin .............................................................................................. 80
5 Consideraciones Finales .................................................................................................................. 81
6 Ejercicios ......................................................................................................................................... 81
PARTE III CIRCUITOS LGICOS ............................................................................................................... 83
CAPITULO 5. CIRCUITOS LGICOS ................................................................................................................ 84
1 Introduccin .................................................................................................................................... 84
2 lgebra de Boole ............................................................................................................................. 85
2.1 Funciones de 1 Variable .............................................................................................................. 85
2.2 Funciones de 2 Variables ............................................................................................................ 86
2.3 Teoremas Fundamentales del lgebra de Boole ........................................................................ 87
2.3.1 Los Operadores Completos ......................................................................................................... 89
2.3.2 Los Operadores NAND y NOR ..................................................................................................... 89
3 Circuitos Combinatorios .................................................................................................................. 90
3.1 Sntesis de un Circuito Combinatorio .......................................................................................... 90
3.1.1 Tablas o Mapas de Karnaugh con dos variables ......................................................................... 91
3.2 Sntesis de un Adicionador Binario .............................................................................................. 91
3.3 Anlisis de un Circuito Combinatorio .......................................................................................... 91
3.4 Multiplexores y Demultiplexores ................................................................................................ 91
3.5 Decodificadores Codificadores Transcodificadores ............................................................... 91
4 Circuitos Secuenciales ..................................................................................................................... 91
4.1 Concepto de Autmata Finito ..................................................................................................... 92

iii

4.2 Circuitos Asncronos y Sncronos ................................................................................................. 92
4.3 Bi-estables .................................................................................................................................. 92
4.4 Sntesis de un Circuito Secuencial ............................................................................................... 92
4.5 Anlisis de un Circuito Secuencial ............................................................................................... 92
5 Ejercicios ......................................................................................................................................... 92
CAPITULO 6. MEMORIAS ............................................................................................................................ 93
1 Introduccin .................................................................................................................................... 93
2 Jerarqua de Memorias ................................................................................................................... 93
3 Organizacin de la Informacin ...................................................................................................... 93
4 Memoria Central ............................................................................................................................. 93
5 Memoria Cach ............................................................................................................................... 93
6 Memorias Externas ......................................................................................................................... 93
CAPITULO 7. LENGUAJES DE DESCRIPCIN DE HARDWARE ................................................................................ 94
1 Introduccin .................................................................................................................................... 94
2 Lgica Combinatoria ....................................................................................................................... 94
3 Modelamiento Estructural .............................................................................................................. 94
4 Lgica Secuencial ............................................................................................................................ 94
5 Modelamiento Algortmico ............................................................................................................. 94
6 Autmatas Finitos ........................................................................................................................... 94
7 Testbenches .................................................................................................................................... 94
CAPITULO 8. UNIDAD CENTRAL DE PROCESAMIENTO ....................................................................................... 96
8 Introduccin .................................................................................................................................... 96
9 Arquitectura .................................................................................................................................... 96
10 Unidad de Control ........................................................................................................................... 96
11 Sincronizacin de las Operaciones .................................................................................................. 96
12 Lenguaje Mquina .......................................................................................................................... 96
13 Lenguaje Ensamblador .................................................................................................................... 96
14 Unidad Aritmtica Lgica ................................................................................................................ 96
CAPITULO 9. ENTRADAS Y SALIDAS ............................................................................................................... 98
1 Introduccin .................................................................................................................................... 98
2 Historia ............................................................................................................................................ 98
3 Terminales ....................................................................................................................................... 98
4 Impresoras ...................................................................................................................................... 98
5 Digitalizadores ................................................................................................................................ 98
6 Sistema de Interrupciones ............................................................................................................... 98
PARTE IV FUNDAMENTOS INFORMTICOS............................................................................................. 99
CAPITULO 10. CIRCUITOS LGICOS .......................................................................................................... 100
1 Introduccin .................................................................................................................................. 100
BIBLIOGRAFA .................................................................................................................................... 102



iv

LISTA DE FIGURAS
FIGURA 1. FIGURA 1 : BACO ANTIGUO ........................................................................................................... 3
FIGURA 2. FIGURA 2: WILHELM SCHICKARD Y BLAISE PASCAL ............................................................................... 4
FIGURA 3. FIGURA 3: CALCULADORA DE SCHICKARD REALIZADA EN 1623 ............................................................... 4
FIGURA 4. FIGURA 4: PASCALINA DE BLAISE PASCAL ........................................................................................... 5
FIGURA 5. FIGURA 5: MQUINA AUTOMTICA DE LEIBNIZ ................................................................................... 6
FIGURA 6. FIGURA 6: TELAR DE JACQUARD ....................................................................................................... 7
FIGURA 7. FIGURA 7: ARITMMETRO DE CHARLES XAVIER THOMAS. ..................................................................... 8
FIGURA 8. FIGURA 8: MQUINA DE DIFERENCIAS DE BABBAGE ............................................................................. 9
FIGURA 9. FIGURA 9: MQUINA ANALTICA DE BABBAGE. ................................................................................... 9
FIGURA 10. FIGURA 10: MQUINA AUTOMTICA DE HOLLERITH UTILIZADA EN LOS CENSOS DE ESTADOS UNIDOS .......... 11
FIGURA 11. FIGURA 11: ANALIZADOR DIFERENCIAL DE VANNEVAR BUSH ............................................................... 12
FIGURA 12. FIGURA 12: LA Z3 DE KONRAD ZUSE .............................................................................................. 14
FIGURA 13. FIGURA 13: DOS VISTAS DE LA ENIAC ............................................................................................ 15
FIGURA 14. FIGURA 14: LA EDVAC ................................................................................................................ 17
FIGURA 15. FIGURA 15: EDSAC: PRIMER COMPUTADOR SEGN LA ARQUITECTURA DE VON NEUMANN ...................... 18
FIGURA 16. FIGURA 16: UNIVAC-1: UNIVERSAL AUTOMATIC COMPUTER ............................................................. 18
FIGURA 17. FIGURA 17: GRACE MURRAY HOPPER (1906 - 1992) ....................................................................... 19
FIGURA 18. FIGURA 18: IBM-7094 ............................................................................................................... 21
FIGURA 19. FIGURA 19: IBM SERIE 360 ......................................................................................................... 22
FIGURA 20. FIGURA 20: MODELO DE UNA COMPUTADORA SEGN LA ARQUITECTURA DE VON NEUMANN ................... 27
FIGURA 21. FIGURA 21: PROGRAMANDO LA ENIAC ...................................................................................... 29
FIGURA 22. FIGURA 22: ORDEN DE LOS BITS EN LA REPRESENTACIN PUNTO FLOTANTE ............................................ 56
FIGURA 23. FIGURA 23: REPRESENTACIN DE S8.21u EN PUNTO FLOTANTE ......................................................... 58
FIGURA 24. FIGURA 24: REPRESENTACIN DE S8.21u SEGN EL IEEE-754 EN SIMPLE PRECISIN. ........................... 59
FIGURA 25. FIGURA 25: REPRESENTACIN DE S8.21u SEGN EL IEEE-754 EN DOBLE PRECISIN. ............................ 59
FIGURA 1. ....................................................................................................................................................... 91



v

LISTA DE TABLAS
TABLA 1. TABLA 1: LA LEY DE MOORE APLICADA LA FAMILIA DE PROCESADORES X86 DE INTEL .................................. 23
TABLA 2. TABLA 2: CORRESPONDENCIA ENTRE DIFERENTES CDIGOS PARA REPRESENTAR INFORMACIN NO NUMRICA ... 34
TABLA 3. TABLA 3: CORRESPONDENCIA ENTRE LOS SISTEMAS (BASES) MS UTILIZADOS .............................................. 35
TABLA 4. TABLA 4: RANGO DE VALORES ENTEROS POSITIVOS REPRESENTABLES ..................................................... 38
TABLA 5. TABLA 5: RANGO DE VALORES ENTEROS REPRESENTABLES ........................................................................ 42
TABLA 6. TABLA 6: REPRESENTACIONES SOBRE 4 BITS .......................................................................................... 42
TABLA 7. TABLA 7: UNIDADES BSICAS DE INFORMACIN ..................................................................................... 43
TABLA 8. TABLA 8: REPRESENTACIN EN COMPLEMENTO A 1 SOBRE 3 BITS ............................................................. 45
TABLA 9. TABLA 9: REPRESENTACIN EN COMPLEMENTO A 2 SOBRE 3 BITS ............................................................. 47
TABLA 10. TABLA 10: VALORES FRACCIONARIOS REPRESENTADOS EN NOTACIN PUNTO FIJO ................................... 54
TABLA 11. TABLA 11: REPRESENTACIN DEL EXPONENTE DESPLAZADO O POLARIZADO: EJEMPLO SOBRE 4 BITS ........... 56
TABLA 12. TABLA 12: FORMATOS DE REPRESENTACIN EN SIMPLE Y DOBLE PRECISIN SEGN EL IEEE-754 ............... 59
TABLA 13. TABLA 13: REPRESENTACIN SEGN EL IEEE-754 DE LOS VALORES u, , Y NoN ........................... 60
TABLA 14. TABLA 14: DECIMALES CODIFICADOS EN BINARIO .............................................................................. 61
TABLA 15. TABLA 15: BIT DE PARIDAD PAR. .................................................................................................... 65
TABLA 16. TABLA 16: ERRORES DETECTADOS Y NO DETECTADOS POR EL BIT DE PARIDAD .......................................... 65
TABLA 17. TABLA 17: DOBLE PARIDAD EN UNA MATRIZ DE DATOS DE 4 4 ......................................................... 66
TABLA 18. TABLA 18: VERIFICACIN UTILIZANDO LA DOBLE PARIDAD EN UNA MATRIZ DE DATOS DE 4 4 .................. 67
TABLA 19. TABLA 19: RELACIN m k PARA EL CDIGO DE HAMMING .............................................................. 68
TABLA 20. TABLA 20: CLCULO DE HAMMING PARA M = 4 (u111) Y K = 3 .......................................................... 68
TABLA 21. TABLA 21: CLCULO DE HAMMING PARA M = 4 (u111) Y K = 3 (000) ................................................. 69
TABLA 22. TABLA 22: CLCULO DE HAMMING PARA M = 4 (u111) Y K = 3 (000) CON UN ERROR ............................ 69
TABLA 23. TABLA 23: CLCULO DE HAMMING SIMPLIFICADO PARA M = (u111) Y K = 3 ......................................... 70
TABLA 24. TABLA 24: CLCULO DE HAMMING SIMPLIFICADO PARA M = (u111) Y K = 3 CON UN ERROR .................... 71
TABLA 25. TABLA 25: REPRESENTACIN POLINOMIAL DE UNA SECUENCIA DE BITS................................................... 72
TABLA 26. TABLA 26: FUNCIONES DE UNA VARIABLE ......................................................................................... 85
TABLA 27. TABLA 27: FUNCIONES DE DOS VARIABLES ........................................................................................ 86
TABLA 28. TABLA 28: TEOREMAS FUNDAMENTALES DEL LGEBRA DE BOOLE ........................................................ 87
TABLA 29. TABLA 29: FUNCIN LGICA XOR COMO SUMA DE MINTRMINOS Y COMO PRODUCTO DE MAXTRMINOS . 88





Parte I
Historia de la Computadora

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
2 LMBM
CAPITULO 1.
HISTORIA DE LA COMPUTADORA
Computador, ra.: 1. adj. Que computa (|| calcula). U. t. c. s. 2. m.
calculador (|| aparato que obtiene el resultado de clculos ma-
temticos). 3. m. computadora electrnica. 4. f. calculadora (||
aparato que obtiene el resultado de clculos matemticos). 5. f.
computadora electrnica. _ _ electrnica. 1. f. Mquina electrni-
ca, analgica o digital, dotada de una memoria de gran capacidad
y de mtodos de tratamiento de la informacin, capaz de resolver
problemas matemticos y lgicos mediante la utilizacin autom-
tica de programas informticos. _ computadora personal 1. f.
computadora electrnica de dimensiones reducidas, con limita-
ciones de capacidad de memoria y velocidad, pero con total auto-
noma.
RAE 2001
1 Introduccin
A lo largo de la Historia de la Humanidad, el hombre siempre ha tenido la necesidad
de llevar una contabilidad de sus pertenencias y a partir de determinado momento, tam-
bin de conocer su valor y las posibilidades transaccionales que stas le ofrecan.
En la prehistoria esto se haca primero con la ayuda de piedras (calculi en latn), luego
fue con la ayuda de sus manos. Llegando incluso a utilizar las falanges de sus dedos o di-
rectamente los dedos de los pies para llegar ms all del 10 normal (esta es una de las
razones, para que en la antigedad, se hubiesen utilizado para contar sistemas de nume-
racin de 12, 14, 15, 24, 30, 60, etc.).
Para representar estos valores, las antiguas civilizaciones ya comenzaron a utilizar
smbolos. De estos, hasta nuestros das y como algo natural, han llegado los nmeros ro-
manos y los nmeros arbigos que comnmente utilizamos.
Como parte del desarrollo humano, comenzamos a ver un desarrollo matemtico,
que busca trabajar o resolver problemas relacionados con los nmeros. Podramos decir
que muchas de esas civilizaciones, tenan la capacidad de realizar operaciones de clculo
digital, pero digital en el sentido de recurrir a los dedos.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
3 LMBM
En nuestra era, hemos adoptado casi universalmente la simbologa arbiga para re-
presentar los nmeros y el sistema decimal para representar las cantidades. En nuestra
notacin, llamamos un dgito a un smbolo.
Sin embargo, el hecho de haber adoptado el sistema decimal, no nos impide recurrir
muchas veces a otros sistemas donde se puede trabajar, en cierto sentido, mejor. Es por
eso, que por ejemplo, en las computadoras utilizamos el sistema binario para representar
los datos, teniendo entonces como elemento base para representar la informacin el bit
(abreviacin en ingls de Binary digits). Al ser el bit, un dgito del sistema binario, ste solo
puede tomar dos valores: el 0 y el 1. Esa es la base de absolutamente todo en informtica.
Hoy en da se habla de clculo digital, ya no en el sentido antiguo haciendo referencia
al uso de dedos, sino haciendo referencia al uso de dgitos, es decir nmeros.

Paralelamente a la evolucin del hombre en el manejo de los nmeros, se ha ido
desarrollando la tecnologa que le permitira manipularlos de una manera ms eficiente y
con resultados cada vez ms exactos y confiables. En este sentido, la primera herramienta
conocida es el baco (Figura 1).
2 Desarrollo Histrico y Conceptual
Si bien hace ms de 2000 aos las antiguas civilizaciones ya utilizaban el baco para
realizar sus clculos, fue recin en el Siglo XVII que comenzaron a aparecer sistemas de
clculo ms rpidos y automticos.
Figura 1. Figura 1 : baco antiguo
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
4 LMBM
En la Edad Media, la cultura y el acceso a los conocimientos, era algo que estaba re-
servado a ciertos privilegiados, y en muchos casos stos eran religiosos al servicio de Dios.
En este contexto y ante la necesidad de utilizar el clculo matemtico en la resolucin de
problemas de la gente, se comenzaron a formar sociedades secretas que se encargaban
de resolver problemas.

Una primera revolucin vino cuando en 1614, John Neper present al mundo su teo-
ra de los logaritmos, que permita simplificar considerablemente ciertas operaciones. La
multiplicacin de dos nmeros, con la ayuda de los logaritmos se converta en una simple
suma.
Poco despus hicieron su aparicin las primeras calculadoras automticas. Tanto
Wilhelm Schickard como Blaise Pascal presentaron sus invenciones, llegando en determi-
nado momento a disputarse la primicia.

Figura 2. Figura 2: Wilhelm Schickard y Blaise Pascal
Figura 3. Figura 3: Calculadora de Schickard realizada en 1623
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
5 LMBM
Analizando los escritos dejados por Schickard, se puede determinar que su mquina
de calcular es anterior a la Pascalina de Pascal. En efecto, en una carta escrita por Schi-
ckard a Johannes Kepler se puede leer: ...inmediatamente calcula la suma, resta, multi-
plicacin o divisin de dos nmeros dados... (Maxfield & Montrose, 1998). Es el nico
documento que nos permite situar a la calculadora de Schickard alrededor de 1623.
Al no tener rastro de las mquinas de Schickard, aos despus se reconstruyeron r-
plicas siguiendo las instrucciones dejadas en sus notas de trabajo y las cartas enviadas a
sus colaboradores y amigos (Figura 3).
Por su parte, Blaise Pascal, recin en 1640 comenz a desarrollar su Mquina Arit-
mtica. Esta mquina estuvo concluida en 1642 y fue presentada en Pars. En los 10 aos
que siguieron, lleg a construir ms de 50 mquinas. Varios ejemplares se conservan to-
dava en Pars. La Pascalina (que as se llamaba la mquina), utilizaba un mecanismo de
ruedas dentadas para realizar las operaciones (Figura 4).

Comparando las mquinas de Pascal y con la de Schickard, podemos ver que la Pasca-
lina solo realizaba la suma de dos nmeros. Para efectuar multiplicaciones, haca una serie
de sumas sucesivas. Para realizar las restas, converta el nmero a ser sustrado a su com-
plemento, y sumaba los dos valores. Finalmente para la divisin, efectuaba una serie de
restas sucesivas. El mayor mrito de Pascal, es haber creado su primera mquina, cuando
tena tan solo 19 aos de edad.
Figura 4. Figura 4: Pascalina de Blaise Pascal
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
6 LMBM
A la disputa entre Shickard y Pascal, se puede aadir el descubrimiento de notas y
apuntes que pertenecan a Leonardo Da Vinci, quien en los aos 1500 dise tambin una
calculadora mecnica. Si bien no se habla mucho de este hecho, recientemente se cons-
truy una rplica siguiendo sus instrucciones.
Pero sigamos con la historia
Alrededor de 1670, el Matemtico Alemn Gottfried von Leibniz, dio un paso ms
adelante. Utilizando los principios bsicos de las mquinas de Pascal. En 1671 introdujo
una mquina automtica que poda realizar sumas, restas, multiplicaciones, divisiones e
inclusive calcular races cuadradas. Otro de los grandes logros de Leibniz, fue el desarrollo
de la aritmtica binaria, que hoy por hoy es la base con la que trabajan las computadoras
actuales.
Los principios de las mquinas de Pascal y Leibniz fueron utilizados en la concepcin
de las mquinas de calcular automticas durante ms de tres siglos y se continuaron utili-
zando hasta hace menos de 30 aos.

Paralelamente, el Siglo XVII fue revolucionario, tambin por las nuevas propuestas
que cientficos como Leibniz, Galileo o Newton aportaron al mundo. Con todos estos cam-
bios se puede considerar al Siglo XVII como el momento en el que se desarrollaron las ba-
ses de la Ciencia Moderna. A esas pocas remontan las races de este gran desarrollo de
ideas que poco a poco nos conducirn al desarrollo de la computadora.

Figura 5. Figura 5: Mquina automtica de Leibniz
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
7 LMBM
3 Progresos en el Siglo XIX
Las bases del desarrollo de inicios del Siglo XIX se hallan ya en el Siglo XVIII, cuando en
1728, un mecnico de nombre Falcon construy una mquina tejedora (Figura 1.3). En
esta mquina, el diseo de los tejidos era controlado por planchas de madera perforadas
que controlaban el dibujo.
Posteriormente, en 1805, el Francs Joseph-Marie Jacquard perfeccion el sistema de
Falcon, remplazando las planchas de madera por planchas de cartn perforado y articula-
do (Figura 6).
Este importante hito, marca el nacimiento de lo que seran las Tarjetas Perfora-
das como medio de almacenamiento de la informacin.

Segn cmo las perforaciones estaban distribuidas en las tarjetas, el telar asuma un
comportamiento diferente, permitiendo elaborar tejidos con dibujos y diseos diferentes.
Si se deseaba modificar el diseo del tejido, bastaba con cambiar el juego de tarjetas per-
foradas.
En aquellas pocas, los artesanos vean en la mquina de Jacquard una amenaza para
su trabajo, por lo que muchos se dedicaron a destruir las mquinas de Jacquard; sin em-
bargo sus ideas fueron tan innovadoras y los resultados tan buenos, que la idea no muri
y fue ms bien continuada, y muchos telares de hoy en da siguen llevando el nombre de
Jacquard (CVMT).
En cuanto al desarrollo de las calculadoras automticas, en 1820, apareci la primera
calculadora automtica comercial: El Aritmmetro (Figura 7). Estaba basada en los traba-
Figura 6. Figura 6: Telar de Jacquard
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
8 LMBM
jos de Leibniz y fue desarrollada en Francia por Charles Xavier Thomas. Esta calculadora
estuvo disponible en los mercados por ms de 90 aos.
La historia en el Siglo XIX contina con los trabajos del excntrico ingls Charles Bab-
bage.
Babbage es por muchos considerado el padre del computador moderno, pues en sus
trabajos combin las mquinas de calcular y los sistemas de instrucciones utilizados en los
telares por Jacquard.

Trabaj en dos mquinas: La Mquina de Diferencias y la Mquina Analtica.
El objetivo de la primera, la Mquina de Diferencias (Figura 8), era calcular e imprimir
tablas de tiro. Con una subvencin de la Sociedad Real y del Estado, apenas pudo construir
un prototipo. Al no concluir a tiempo con el desarrollo de la mquina, fue acusado de ha-
ber malversado los fondos que le fueron asignados. Luego de casi 10 aos, y sin concluir
su mquina tuvo que abandonar el desarrollo de la Mquina de Diferencias. Detuvo los
trabajos en 1832.
Pero Babbage no queda tranquilo, luego de este primer fracaso y casi inmediatamen-
te comienza el desarrollo de la segunda mquina. En 1833 comienza a trabajar en una
mquina, cuyo diseo era mucho ms ambicioso y complejo. Se trata de la Mquina Anal-
tica (Figura 9).
Figura 7. Figura 7: Aritmmetro de Charles Xavier Thomas.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
9 LMBM
La Mquina Analtica es una mquina concebida para poder ejecutar secuencias de
operaciones matemticas de acuerdo a una serie de instrucciones dadas por el usuario. Se
trata de la primera mquina de Propsito General.

El diseo era tan innovador y revolucionario, que tecnolgica y conceptualmente se
encontraba demasiado avanzada para su poca. Algunos de los conceptos que fueron
pensados para la mquina analtica fueron retomados posteriormente en el desarrollo de
las computadoras modernas.

En este nuevo proyecto de Babbage, particip Ada Augusta Byron, Condesa de Love-
lace (hija del clebre poeta ingls Lord Byron). Como asistente de Babbage, dej para la
posteridad un conjunto de diseos, diagramas y notas que describan el funcionamiento
de la Mquina Analtica. Dej tambin un conjunto de programas (secuencias de instruc-
Figura 8. Figura 8: Mquina de Diferencias de Babbage
Figura 9. Figura 9: Mquina Analtica de Babbage.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
10 LMBM
ciones), que lastimosamente nunca pudieron ejecutarse, porque una vez ms las ambicio-
nes de Babbage quedaron truncadas y no pudo concluir esta segunda mquina.
Por los trabajos dejados por Ada Augusta Byron, es considerada la primera programa-
dora de la historia.
Si bien sus programas nunca se ejecutaron en la Mquina Analtica, cuando fueron
codificados (de acuerdo a sus notas) en un lenguaje de programacin actual, todos fun-
cionaron perfectamente.
Algunos aos despus que Babbage dej el Proyecto de la Mquina de Diferencias, el
sueco George Scheutz, con la ayuda del mismo Babbage y de su hijo, desarrollaron una
Mquina de Diferencias ms pequea. Esta s fue concluida y fue presentada en Londres
en 1854.
Ese mismo ao George Boole (otro matemtico que pasara a la historia por sus traba-
jos), public: Una investigacin de las leyes del pensamiento sobre las cuales son basadas
las teoras matemticas de Lgica y Probabilidad. Esta publicacin estaba basada en tra-
bajos anteriores que estudiaban la lgica y dio origen a lo que hasta hoy conocemos como
el lgebra de Boole o el lgebra Booleana.
El trabajo iniciado por Boole, sera completado por Augustus De Morgan y sus conoci-
das leyes lgicas de De Morgan.
Un siglo despus, las frmulas definidas por Boole y por Augustus de Morgan,
aplicadas al sistema binario, haran posible la existencia de la computadora
electrnica (Ver lgebra de Boole, en la pgina 85).
Poco antes del final del Siglo XIX, el Norteamericano Hermann Hollerith ingres a tra-
bajar a la Oficina de Censos de los Estados Unidos. Su trabajo consista en analizar la gran
cantidad de datos generados por el censo nacional de 1880.
Durante ese trabajo, y como consecuencia de una conversacin con el Dr. John Shaw
Billings, naci la idea de poder utilizar una mquina que pueda analizar toda esa informa-
cin de una manera ms eficiente. Una versin de la historia, incluso indica que el Dr. Bi-
llings habra hecho referencia a la manera cmo los telares de Jacquard lean las tarjetas
perforadas para definir el diseo de la tela.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
11 LMBM
Poco despus de esta conversacin, en 1882, Hollerith ingres al Instituto Tecnolgico
de Massachusetts (Massachusetts Institute of Technology - MIT) donde entre sus investi-
gaciones analiz el comportamiento del telar de Jacquard y cmo las tarjetas perforadas
podran ser utilizadas en el procesamiento de la informacin del siguiente censo nacional
que se acercaba. Entre las conclusiones ms importantes de su trabajo, se encuentra la
manera de codificar las respuestas del censo en la forma cmo estaban distribuidas las
perforaciones en las tarjetas.
Comenz a realizar sus experimentos en 1884. Primero trat de utilizar una cinta per-
forada, que al pasar debajo de una serie de contactos elctricos, cerraba ciertos circuitos
que permitan leer la informacin representada. La idea de la cinta no dur mucho
tiempo, y esta fue remplazada nuevamente por las tarjetas de cartn perforadas mucho
ms slidas y robustas.
En 1887 el sistema fue puesto a prueba en un estudio estadstico sobre mortalidad en
Nueva Jersey y Nueva York. Para 1890, cuando se llev a cabo el censo nacional, no tuvo
muchos inconvenientes para que su sistema sea elegido para procesar la informacin.
Los resultados fueron impresionantes. El trabajo que normalmente se haca en dos
aos, estaba ya terminado en solo tres meses, como ancdota, podemos indicar que los
resultados mostraron que Estados Unidos tena una poblacin de 62,622,250 habitantes.
La velocidad de tratamiento de la informacin no fue el nico resultado positivo del
trabajo realizado con la mquina de Hollerith (Figura 10), sino que tambin se pudo obte-
ner ms informacin: Cantidad de hijos, idiomas hablados, etc.

Figura 10. Figura 10: Mquina automtica de Hollerith utilizada en los censos de Estados Unidos
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
12 LMBM
Luego del xito alcanzado en los Estados Unidos, su sistema tambin fue utilizado en
el procesamiento de los datos provenientes de los censos de Canad, Noruega, Austria e
Inglaterra.
En 1896, Hollerith fund la Tabulating Machine Company para comercializar sus in-
venciones.
En 1911 la compaa de Hollerith se fusion con otra, dando lugar a la Computer Ta-
bulating Recording Company, donde trabaj como Consultor hasta su jubilacin en 1921.
Esta empresa, con la llegada de Thomas J. Watson, retom el control del mercado y
en 1924 cambi de nombre a International Business Machines Corporation (IBM).
4 El Siglo XX
Ya en el Siglo XX, en 1927, el Norteamericano Vannevar Bush, en colaboracin con
otros dos colegas del MIT, comenz el diseo de una computadora analgica que podra
resolver ecuaciones simples. Esta computadora sera construida posteriormente por uno
de sus alumnos.
Bush continu su trabajo y en 1930, construy una versin mucho ms grande de su
computadora, a la que llam el Analizador Diferencial (Differential Analyzer Figura 11).

Figura 11. Figura 11: Analizador Diferencial de Vannevar Bush
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
13 LMBM
La primera versin de esta computadora, estaba manejada por motores elctricos y
los clculos eran realizados de una manera completamente mecnica.
La segunda versin de la mquina de Vannevar era un poco ms pequea, pero de
todas maneras, para tener una idea de su dimensin, se puede mencionar que pesaba
cerca de 100 toneladas, tena ms de 2000 tubos de vaco, 150 motores y ms de 300 ki-
lmetros de cables.
En 1937 aparece una nueva definicin para una computadora, cuando Alan Turing
presenta en la Universidad de Cambridge un artculo sobre la Calculabilidad de los nme-
ros (On Computable Numbers), donde se lleg a determinar sobre las capacidades tericas
de las computadoras lgicas. Estos principios son la base de una mquina universal, es
decir una mquina que no habra sido desarrollada con un fin particular, sino que podra
servir para cualquier objetivo. Esta mquina terica recibe el nombre de Mquina de Tu-
ring (Hodges).
Sus ideas estaban basadas completamente en la lgica matemtica y buscaba una
manera de establecer una descripcin formal completa de toda operacin mental. Por
estos trabajos, Alain Turing es considerado el padre de la Inteligencia Artificial.
Poco despus, en 1938, en su tesis publicada en el MIT, Claude Shannon, retom los
trabajos iniciados por George Boole y su lgebra Booleana para mostrar cmo los concep-
tos de Verdadero y Falso podan ser utilizados para representar las funciones de los inte-
rruptores en los circuitos elctricos.
Este concepto, hoy para nosotros tan simple, fue lo que permiti a los ingenieros de
la poca, tener el instrumento matemtico que les faltaba para disear circuitos elctri-
cos.
En 1948, ya cuando trabajaba para los Laboratorios Bell, Shannon public un artculo
titulado: A Mathematical Theory of Communication, que es considerado la base de lo
que hoy conocemos como Teora de la Informacin.
En ese artculo, Shannon prob que los nmeros binarios podan ser utilizados en las
relaciones lgicas y que todos los clculos lgicos y aritmticos pueden ser realizados con
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
14 LMBM
la ayuda de tres operadores bsicos: Y, O y NO. Es en este artculo que aparece por prime-
ra vez el trmino bit.
En los mismos aos 30, otros investigadores tambin trabajaban en mquinas que uti-
lizaban el sistema binario para realizar los clculos. Uno de ellos fue el alemn Konrad
Zuse, quien entre 1936 y 1938 construy lo que puede considerarse como una de las pri-
meras computadoras segn cmo las conocemos ahora: la Z1.
Posea una unidad de control, memoria, secuencias programadas y una lgica de pun-
to flotante. Esta mquina fue destruida durante un bombardeo en la Segunda Guerra
Mundial y reconstruida para la posteridad en 1986. Una de las limitaciones de esta m-
quina es que al ser mecnica, no ofreca muchas garantas con los resultados producidos.
En 1939, comenz la construccin de la Z2, que utilizaba ms o menos 800 relays tele-
fnicos. Lastimosamente esta mquina tambin fue destruida durante la Guerra.
En 1941, present el tercer modelo de la familia: la Z3 construida con 2600 relays te-
lefnicos. En esta mquina, una multiplicacin tardaba 5 segundos en ejecutarse (Figura
12).

Finalmente en 1944, vino la Z4, que al no poder ser financiada por el gobierno ale-
mn, fue concluida en la Escuela Politcnica Federal de Zrich en Suiza.
Las dos ltimas mquinas fueron utilizadas para el clculo de concepcin aeronutico
y misiles (balstica) (Zuse).
Otras dos personas, que en ese momento y a su manera aportaron con sus ideas y
trabajos son George Stibitz y John Atanasoff.
Figura 12. Figura 12: La Z3 de Konrad Zuse
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
15 LMBM
Ms o menos al mismo tiempo, alrededor de 1937, Stibitz en los laboratorios Bell,
comenzaba a desarrollar una calculadora que utilizaba tambin el sistema binario para
representar la informacin y Atanasoff, entre 1937 y 1942, desarroll la ABC (Atanasoff-
Berry Computer). Mquina que para la posteridad, sera declarada como la primera
Computadora Electrnica Digital.
La era de las mquinas electromecnicas llegaba a su fin.
Una de las ltimas computadoras electromecnicas desarrolladas fue la Mark I (1939-
1944), en la Universidad de Harvard. El desarrollo contaba con la participacin de IBM.
Tena ms de 760.000 piezas. Por sus dimensiones, se la puede considerar como la Mqui-
na Analtica del Siglo XX. Por la llegada de la electrnica, esta mquina estuvo obsoleta
antes incluso de ser terminada.
5 Primera Generacin de Computadoras
La primera generacin de Computadoras, est caracterizada por una electrni-
ca rudimentaria, donde los circuitos son cableados y se comienzan a utilizar tu-
bos de vaco.
Durante mucho tiempo se ignor la mquina de Atanasoff, y se di la paternidad de la
Computadora Digital al equipo conformado por John Eckert y John Mauchly; quienes en la
Universidad de Pensilvania, construyeron la ENIAC (Electronic Numerical Integrator And
Calculator).

Figura 13. Figura 13: Dos vistas de la ENIAC
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
16 LMBM
Una mquina universal, programable, digital, basada en el sistema decimal y comple-
tamente electrnica. Era capaz de realizar una multiplicacin de 10 cifras en 3 milisegun-
dos. (Figura 13)
La ENIAC funcionaba muy bien. En sus primeras pruebas se vio cul sera el inconve-
niente mayor: los programas. En realidad el conjunto de instrucciones que la mquina
deba ejecutar, se encontraba en forma de circuitos cableados en tarjetas intercambiables.
No tena memoria, para pasar de un clculo a otro, era necesario volver a cablear las tarje-
tas o cambiarlas y continuar.
En 1946, en colaboracin con Arthur W. Burks y Herman H. Goldstine, el matemtico
de orgen hngaro John Von Neumann, escribi uno de los artculos ms influyentes en la
historia de las computadoras: Preliminary Discussion of the Logical Design of an Electro-
nic Computing Instrument.
Las ideas que contiene este artculo, que de forma conjunta se conocen con el nom-
bre de Mquina de Von Neumann, han proporcionado los fundamentos para la construc-
cin y el desarrollo de todas las computadoras hasta el momento.
Las caractersticas de la mquina segn Von Neumann son:
Una mquina universal, controlada por un programa.
Las instrucciones del programa se hallan codificadas en forma digital (binaria)
y almacenadas en memoria.
El programa puede modificar sus propias instrucciones, que son normalmente
ejecutadas en secuencia.
Existen instrucciones que permiten la ruptura de una secuencia.
Los cinco componentes esenciales de su arquitectura (Arquitectura de Von Neumann)
son:
Unidad Aritmtica y Lgica: Es la calculadora propiamente dicha. Es la que se
encarga de la ejecucin de las instrucciones que componen el programa.
Memoria Principal: Es el lugar donde de manera ordenada, se almacenan dos
tipos de informaciones: instrucciones (que componen un programa) y datos.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
17 LMBM
Unidad de Control: Es la que se encarga de administrar la ejecucin de las ins-
trucciones, ordenndolas y asegurndose que las operaciones a ser ejecutadas
cuenten con sus operandos.
Unidad de Entrada: Son los elementos que permiten el ingreso de datos.
Unidad de Salida: Son las unidades que permiten la salida de los resultados.

A la combinacin de la Unidad Aritmtica Lgica y de la Unidad de Control, se la cono-
ce como Unidad Central de Procesamiento o CPU.
Luego de 1945, existieron muchos intentos para crear mquinas que implementen la
Arquitectura de Von Neumann, l mismo trabaj en el diseo y desarrollo de la EDVAC
(Electronic Discrete Variable Automatic Computer Figura 14). La EDVAC deba ser la pri-
mera computadora que cuente con una memoria interna. El trabajo fue iniciado por John
Mauchly y John Eckert, los mismos que desarrollaron la ENIAC, incluso, comenzaron el
trabajo en la EDAVAC un par de aos antes que la ENIAC estuviese concluida. Por proble-
mas internos en el equipo, el desarrollo de la EDVAC comenz a retrasarse.
Figura 14. Figura 14: La EDVAC
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
18 LMBM

Finalmente, el primer computador que implementa la Arquitectura de Von Neumann,
no ser desarrollado en Estados Unidos. Antes que la EDVAC est terminada en 1952, tres
aos antes, en 1949, Maurice Wilkes present en Cambridge la EDSAC (Electronic Delay
Storage Automatic Calculator).
6 Nacimiento de la Industria Informtica
La industria informtica comienza cuando aparecen las primeras computadoras de-
sarrolladas con fines comerciales. Hasta este momento todas las computadoras siempre
se desarrollaron en un contexto acadmico o cientfico.

La primera computadora a ser comercializada fue la UNIVAC-1 (Universal Automatic
Computer-1 Figura 16). Detrs del desarrollo de esta computadora, nuevamente encon-
tramos a los Doctores Mauchly y Eckert. La UNIVAC tena una memoria central de mil pa-
Figura 15. Figura 15: EDSAC: Primer computador segn la Arquitectura de Von Neumann
Figura 16. Figura 16: UNIVAC-1: Universal Automatic Computer
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
19 LMBM
labras y la capacidad de leer cintas magnticas. UNIVAC es en la actualidad una marca
registrada de UNISYS.
Con el advenimiento de las mquinas electrnicas universales (a la UNIVAC le siguie-
ron la IBM-701, el modelo 1103 de la Remington Rand, la IBM-702, etc.), fue necesario
desarrollar una herramienta que permita generar las secuencias de instrucciones (pro-
gramas) a ser ejecutadas de una manera ms simple.
En 1951, Grace Murray Hopper, trabaj en el desarrollo de lo que sera el primer
compilador. Para la UNIVAC desarroll el compilador B-O, conocido luego como Flow-
Matic. La idea era poder traducir el lenguaje normalmente utilizado en la administracin a
instrucciones de la computadora. La traduccin se la haca para tareas relacionadas con
facturacin y procesamiento de planillas. Este primer compilador era capaz de traducir
20 expresiones en ingls.

Para 1954, John Bakus en IBM desarroll otro compilador, que pasara a la historia:
Fortran (FORmula TRANslation). Se trata del primer lenguaje de programacin de alto
nivel.
Luego de la Primera conferencia sobre Inteligencia Artificial, llevada a cabo en 1956
en New Hampshire, John McCarthy desarroll el lenguaje LISP (LISt Processing language)
Figura 17. Figura 17: Grace Murray Hopper (1906 - 1992)
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
20 LMBM
en el MIT. Este lenguaje se lo sigue utilizando en la actualidad como una referencia abso-
luta en la Programacin Funcional y en Inteligencia Artificial.
7 Segunda Generacin de Computadoras
La segunda generacin de Computadoras fueron construidas remplazando los
tubos de vaco por transistores.
Entre 1946 y 1948, un grupo de investigadores en los Laboratorios Bell, conformado
por John Bardeen, Walter Brattain y William Shockley; concibieron el transistor. Saban
que su invento era revolucionario, pero no saban cunto influenciaran en el desarrollo de
las computadoras.
En 1959, comienzan a aparecer los computadores que remplazan los tubos de vaco
por transistores. Estas nuevas computadoras, resultan ms fiables, rpidas, pequeas y
econmicas.
Hacen su aparicin en el mercado nuevas compaas como fabricantes de compu-
tadoras: Digital Equipment Corporation, Hewlett-Packard, Data General, etc. Es el inicio de
una carrera hacia sistemas ms eficientes y a precios cada vez ms bajos.
Esta evolucin de computadoras, podemos verla en el desarrollo de las computadoras
IBM: desde el primero de la Serie 700 (1952) hasta el ltimo de la serie 7000 (1964). Una
computadora, que puede ser considerada como la ms representativa de la segunda ge-
neracin, es la IBM-7094 (Figura 18), disponible en el mercado en 1962. Su costo era supe-
rior a los 3 Millones de dlares y no se llegaron a producir ms que 130 ejemplares.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
21 LMBM

En esta misma poca, se incrementa el desarrollo de lenguajes de programacin de
alto nivel. Aparecen los lenguajes COBOL y ALGOL. El primero utilizado durante muchos
aos en el desarrollo de aplicaciones financieras y la vctima preferida en el anunciado
problema del ao 2000 (Y2K).
8 Tercera y Cuarta Generacin de Computadoras
La tercera comienza cuando hacen su aparicin los circuitos integrados.
La cuarta generacin es el perodo de gran integracin de circuitos integrados
en chips.
Con los transistores en el mercado, lo nico que quedaba era optimizar su uso y ex-
plotacin.
En 1958, Jack Kilby y Robert Noycea de la Texas Instruments, inventaron los circuitos
integrados. Los circuitos integrados no son sino un conjunto de transistores interconecta-
dos con resistencias. La posibilidad de tener en una pequea placa de silicio una gran can-
tidad de transistores (algunas decenas o centenas), abarat aun ms el costo de las
computadoras y las hizo ms eficientes.
El desarrollo los microprocesadores, utilizando la tecnologa de los circuitos integra-
dos, llev a Gordon Moore (cofundador de Intel) a plantear lo que hasta hoy se conoce
Figura 18. Figura 18: IBM-7094
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
22 LMBM
como la Ley de Moore: la cantidad de transistores por pulgada cuadrada en los circui-
tos electrnicos, se duplicaba cada ao.

Si bien esa observacin ha cambiado ligeramente (en realidad en los ltimos aos, la
cantidad de transistores a estado duplicndose cada 18 meses), los expertos esperan que
esta situacin contine por lo menos durante unos 20 aos ms.
En el periodo de la tercera generacin, que fue desde 1959 hasta 1972, sali al mer-
cado la IBM-360 en 1964, apenas dos aos despus que IBM anunciara por la primera vez
ganancias de 1 billn de dlares. El gran reto que IBM asumi al presentar la nueva serie
360, es que era completamente incompatible con la precedente serie 7000.
Si bien esa fue la razn para tener un inicio difcil, finalmente la serie 360 fue uno de
los ms grandes xitos de la dcada, llegando a tener cerca del 70% de participacin en el
mercado (Figura 19).
Sale tambin la primera mini-computadora de DEC, la PDP-5 y la primera super-
computadora: la Control Data CD6600.
En cuanto a lenguajes de programacin, aparece el PL-1, BASIC, PASCAL y LOGO. Entre
los logros tecnolgicos: el desarrollo de la lgica difusa, la concepcin del ratn, los prime-
ros pasos de Arpanet y el desarrollo del Sistema Operativo Unix.
En 1968 se funda Intel y en 1971 saca al mercado su primer microprocesador: el 4004,
que contaba apenas con 2250 transistores.
A partir de 1972, se habla de la cuarta generacin de computadoras, cuando la gran
revolucin viene de la cantidad de transistores que se pueden integrar en un microproce-
Figura 19. Figura 19: IBM Serie 360
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
23 LMBM
sador (VLSI: Very Large Scale Integration). Siguiendo la ley de Moore, rpidamente se pasa
de los miles de transistores a los millones. Por ejemplo, en el caso de la familia de proce-
sadores Intel, en 30 aos se pas de 2250 a ms de 42 millones de transistores (Tabla 1)
(Intel Corp.).
Procesador Ao de Introduccin Nmero de Transistores
4004 1971 2,250
8008 1972 2,500
8080 1974 5,000
8086 1978 29,000
286 1982 120,000
386 1985 275,000
486 DX 1989 1,180,000
Pentium 1993 3,100,000
Pentium II 1997 7,500,000
Pentium III 1999 24,000,000
Pentium 4 2000 42,000,000
Core2Duo 2008 410,000,000
Core i7-920 2008 731,000,000
Tabla 1. Tabla 1: La Ley de Moore aplicada la familia de procesadores x86 de Intel

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
24 LMBM
La gran integracin de transistores en pequeas superficies ha permitido en los lti-
mos aos que todos podamos tener acceso a una computadora para realizar cualquier
tipo de trabajos. Ya no estamos en los aos 60 donde las computadoras solamente servan
para clculos cientficos y algunos pocos eran los privilegiados que podan tener acceso a
ellas.
Hoy en da se ven computadoras en todas partes, de todos los tamaos y con todas
las funcionalidades: se ven componentes microelectrnicos en todos los dispositivos de
nuestra vida cotidiana, desde el aparato telefnico hasta el televisor, pasando por la coci-
na, el refrigerador y el horno a microondas.
La tecnologa ha permitido que se puedan confiar en estas mquinas para trabajar en
todos los campos: ingeniera, salud, economa, estadstica, y la lista podra ser demasia-
do larga como para mencionarla ac.
9 El Futuro
Qu nos depara el futuro? Qu estamos viviendo ya hoy en da?
Las respuestas las vemos a nuestro alrededor: Diariamente se ve en la televisin (y ya
no es un programa de Ciencia Ficcin), cmo el uso extensivo de computadoras permite la
investigacin espacial, el desarrollo de nuevas tcnicas para realizar diagnsticos en el
campo de la salud, el clculo de estructuras y materiales en gigantescos proyectos de in-
geniera civil. Incluso diariamente en nuestro quehacer cotidiano, recurrimos (tal vez sin
saber) a microcomputadoras que se encuentran integradas en nuestros televisores, dispo-
sitivos mviles, celulares, lavadoras, refrigeradores y vehculos.
El desarrollo increble que tuvieron las telecomunicaciones, no solo en nuestro medio,
sino sobre todo en los pases vecinos, nos muestra que tenemos todava mucho por andar
y demasiado por hacer.
Qu lejos se ven esos das, donde con la ayuda de un monstruo de varias toneladas de
peso y con miles de kilmetros en cable, apenas se podan hacer clculos, que ahora los
resuelven en cuestin de milisegundos nuestros relojes de pulsera o nuestros telfonos
celulares.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
25 LMBM
Los cientficos que dieron los primeros pasos, en aquellos das (hace poco ms de 50
aos atrs), no estaban siquiera conscientes de los cambios que estaban haciendo a nues-
tra manera de vivir. Prueba de esto, algunas de las frases clebres (White):
En 1942, Thomas Watson, entonces presidente de IBM dijo: I think there is a world
market for maybe five computers (Creo que en el mundo tal vez exista un mercado para
cinco computadoras).
En 1949, la revista Mecnica Popular, deca: Computers in the future may weigh no
more than 1.5 tons. (Las Computadoras en el futuro no pesarn ms de 1.5 toneladas.).
En 1957, un editor de la prestigiosa Prentice Hall dijo: I have travelled the length and
breadth of this country and talked with the best people, and I can assure you that data
processing is a fad that wont last out the year. (He caminado a lo largo y ancho del pas,
hablado con la mejor gente, y puedo asegurarles que esta moda del procesamiento de
datos no pasar de este ao).
En 1977, Ken Olson, Presidente y fundador de DEC dijo: There is no reason anyone
would want a computer in their home. (No existe una razn para que cualquiera quiera
una computadora en casa).
En 1980, mientras Microsoft desarrollaba el DOS anunci: DOS addresses only 1
Megabyte of RAM because we cannot imagine any applications needing more. (DOS di-
recciona solamente 1 Megabyte de RAM porque no podemos imaginar ninguna aplicacin
que necesite ms).
En 1981, el famossimo Bill Gates: 640k ought to be enough for anybody. (640k de-
bera ser suficiente para todos).
En 1992, seguimos con Microsoft, cuando desarrollaban WindowsNT: Windows NT
addresses 2 Gigabytes of RAM which is more than any application will ever need (Win-
dowsNT direcciona 2Gigabytes de RAM que es ms de lo que cualquier aplicacin podr
jams requerir).

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
26 LMBM
Cmo fueron cambiando las apreciaciones. Qu poco tiempo ha pasado desde la l-
tima que tenemos registrada. Qu lejos se encontraban todos ellos de lo que la realidad es
hoy en da.
Primeros aos del Siglo XXI, prcticamente existe una computadora personal en mu-
chos domicilios particulares, hay incluso quienes no solo tienen una, sino dos, tres o ms.
Existen diferentes tipos de computadoras, que parten de las Computadoras persona-
les, pasando por los Servidores hasta llegar a las Supercomputadoras. Una simple compu-
tadora personal, tiene en este momento ms capacidad de clculo, es ms rpida y eco-
nmica que cualquiera de las computadoras de las tres primeras generaciones.
Si analizamos las frases descritas anteriormente, podemos pensar que no es muy pru-
dente lanzarse con predicciones de lo que la informtica nos tendr en el futuro, lo que s
podemos adelantar, es que los cambios seguirn siendo tan o ms sorprendentes que los
que hasta hoy hemos vivido.
10 Ejercicios
1. Investigar y discutir sobre el mecanismo de Antikythera.








ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
27 LMBM
CAPITULO 2.
VISIN GENERAL
Informtica. (Del fr. informatique). f. Conjunto de conocimientos
cientficos y tcnicas que hacen posible el tratamiento automtico
de la informacin por medio de ordenadores.
RAE 1992
1 Funcionamiento Bsico de una Computadora
Todas las computadoras modernas, estn diseadas segn la Arquitectura de Von
Neumann.

Recordemos que esta Arquitectura, consta de cinco componentes que deben colabo-
rar entre s para el funcionamiento de la computadora: La Unidad Aritmtica Lgica, la
Unidad de Control, la Memoria principal, los Dispositivos de Entrada y los Dispositivos de
Salida (Figura 20).
Al estar describiendo una Computadora de Propsito General, la secuencia de ins-
trucciones que debe ejecutar no es fija ni est fsicamente programada en una tarjeta ca-
Figura 20. Figura 20: Modelo de una Computadora segn la Arquitectura de Von Neumann
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
28 LMBM
bleada o un circuito integrado. La secuencia de instrucciones, se encuentra codificada y
almacenada en la Memoria Principal, junto a los datos con los que debe trabajar.
La Unidad de Control, utilizando algunos registros para almacenar informacin, ser la
encargada de recuperar de la Memoria Principal, la prxima instruccin que ser ejecuta-
da y almacenarla en un Registro de Instruccin.
Luego de decodificar la instruccin, es decir identificar a qu funcin corresponde, de-
termina si es necesario recuperar parmetros (datos) para esa funcin. En caso de ser ne-
cesarios, la misma Unidad de Control es la encargada de buscarlos en la memoria principal
y almacenarlos en otros registros, listos para ser procesados.
Una vez la instruccin decodificada y los parmetros (si necesarios) disponibles, la
Unidad de Control instruye a la Unidad Aritmtica Lgica, ejecutar la funcin identificada.
El resultado de esta ejecucin, puede ser almacenado en un otro registro de salida, de
donde, si es necesario, puede almacenarlo en la Memoria Principal.
Esta serie de pasos, se repiten en tanto existan instrucciones a ser ejecutadas como
parte de un programa o de una aplicacin.
Si bien cada uno de los elementos es vital para el funcionamiento de la computadora,
el elemento que se encarga de coordinar la interaccin de todos ellos, es la Unidad de
Control.
El componente que resulta de la integracin de la Unidad de Control con la
Unidad Aritmtica Lgica, recibe el nombre de Unidad Central de Procesamien-
to.
Finalmente, los Dispositivos de Entrada, le sirven al usuario para ingresar las instruc-
ciones y datos con los que la computadora trabajar y los Dispositivos de Salida, son aque-
llos donde el usuario puede ver u obtener el resultado de la ejecucin del programa o
aplicacin.
2 Desarrollo de Programas
Los primeros programas de computadora, estaban almacenados en tarjetas donde
se interconectaban los circuitos correspondientes a las instrucciones, con cables (Figura
21).
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
29 LMBM
Corregir un programa, era ms complicado que volver a escribirlo. De esta poca
viene tambin el denominativo de bug, para un error identificado en el programa. El am-
biente hmedo y caliente de los circuitos se converta en lugar ideal para que vivan. Mas-
ticaban los aislantes de los componentes, creando cortocircuitos que luego impedan la
correcta ejecucin del programa. Entonces, corregir el programa, era literalmente eliminar
los insectos o debugger.

Que una computadora ejecute un programa, significa que vaya ejecutando una tras
otra, una serie de instrucciones que conforman el programa. Cuando se pas de la poca
de los programas cableados y las instrucciones comenzaron a estar almacenadas en me-
moria, los primeros programas estaban escritos en binario. Esto es, utilizando los identifi-
cadores binarios de las instrucciones a ser ejecutadas. Era una tarea difcil y donde los
errores eran bastante comunes. Era la poca del Lenguaje Mquina.
Luego comenzaron a utilizarse un conjunto limitado de palabras mnemnicas, que
servan para identificar de una manera ms fcil la instruccin que se desea ejecutar. Estas
palabras eran ms fciles de recordar y memorizar, disminuyendo considerablemente el
nmero de errores de programacin. Una vez representada la aplicacin como una se-
cuencia de instrucciones escritas con estas palabras, se recurra a un convertidor que se
encargaba de transformar esos trminos en Lenguaje Mquina. Este convertidor reciba el
nombre de ensamblador, dando origen al lenguaje ensamblador o assembler
La escritura de programas en lenguaje ensamblador es de todas maneras fastidiosa y
los programas son muy dependientes de la mquina donde se trabaj. Por esta razn fue-
Figura 21. Figura 21: Programando la ENIAC
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
30 LMBM
ron apareciendo lenguajes ms sofisticados como el Fortran, Pascal o C; que solucionaron
parcialmente estos problemas.
La complejidad de los requerimientos fue aumentando y a la par fueron evolucionan-
do los lenguajes de programacin y las tcnicas y metodologas que se utilizan para desa-
rrollas las aplicaciones. Estas tcnicas o metodologas, son conocidas como Ingeniera de
Software.
A la fecha, el programador cuenta con un amplio abanico de lenguajes de programa-
cin, donde puede seleccionar el lenguaje que est mejor adaptado a sus requerimientos
y necesidades.
3 Ejercicios
1. Caracterizar diferentes lenguajes de programacin, resaltando sus diferencias y sus
caractersticas principales.
2. Enumerar por lo menos tres metodologas de Ingeniera de Software.




Parte II
Arquitectura de Computadoras

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
32 LMBM
CAPITULO 3.
REPRESENTACIN INTERNA
DE LA INFORMACIN
Tratamiento de la informacin. 1. m. Inform. Aplicacin sistem-
tica de uno o varios programas sobre un conjunto de datos para
utilizar la informacin que contienen.
RAE 1992
1 Introduccin
En un Sistema Informtico, la informacin a ser procesada, puede ser de diferentes
tipos: nmeros, instrucciones, imgenes, secuencias de imgenes (video), sonidos, etc.
Toda esta informacin, al interior de la computadora, sin importar su tipo, es representa-
da por una secuencia de dgitos o nmeros binarios (secuencias de 0 y 1).
La unidad elemental para representar la informacin corresponde entonces a una ci-
fra binaria (0 o 1) llamada bit.
Informacin ms compleja, por ejemplo un carcter o un nmero, debe ser represen-
tada utilizando un conjunto de bits. Este conjunto de bits, al que llamaremos palabra
(word), puede estar conformado por 4, 8, 16, 32, 64 o 128 bits, dependiendo de la arqui-
tectura de la computadora o de la funcionalidad que vayan a tener.
A la palabra de 8 bits se la conoce como Byte.
La representacin interna de la informacin consiste entonces en establecer una co-
rrespondencia de la representacin externa de la informacin con la secuencia de bits que
se utilizar para su representacin.
Entre los tipos de informacin que pueden ser tratados por la computadora, podemos
distinguir las instrucciones y los datos:
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
33 LMBM
Instrucciones: Escritas en lenguaje mquina, las instrucciones representan las opera-
ciones efectuadas por un computador. Estn compuestas de varios campos:
Cdigo de la operacin a efectuar.
Los parmetros u operandos implicados en la operacin.
El cdigo de la operacin debe ser decodificado para poder interpretar cul operacin
debe ejecutarse.
Datos: Los datos son los operandos o parmetros sobre los que se aplican las instruc-
ciones. Por ejemplo en el caso de una instruccin que corresponde a la suma de dos n-
meros enteros, es necesario indicar cules son los dos nmeros enteros que deben sumar-
se. En general, se pueden distinguir dos tipos de datos:
Los datos numricos, que pueden participar por ejemplo de una operacin
aritmtica.
Los datos no numricos que pueden representar los caracteres en un texto.
2 Datos no numricos
Los datos no numricos corresponden a los caracteres alfanumricos: A, B, C, , Z, a,
b, c, , z, 0, 1, , 9 y a los caracteres especiales: , ?, , !, #, $, %, &,
La codificacin se la realiza con la ayuda de una tabla de correspondencia propia a ca-
da cdigo utilizado (Ver Tabla 2).
Entre los cdigos ms utilizados, podemos citar:
BCD (Binary Coded Decimal), inicialmente diseada para representar nmeros. Fue
posteriormente extendida para poder representar caracteres. En esta representacin un
carcter est codificado utilizando palabras de 6 bits.
EBCDIC (Extended Binary Coded Decimal Internal Code), versin extendida del BCD
que utiliza palabras de 8 bits.
ASCII (American Standard Code for Information Interchange), que en su versin ori-
ginal, utilizaba palabras de 7 bits y que en su versin extendida palabras de 8 bits. Una de
las representaciones ms utilizadas.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
34 LMBM
UNICODE, una codificacin propuesta por el Consorcio Unicode (The Unicode
Consortium), que propone la codificacin de los caracteres utilizando palabras de 16 bits,
permitiendo en principio codificar todos los caracteres existentes en todos los idiomas del
planeta. Esta codificacin ha sido aceptada y adoptada por la mayora de los sistemas ac-
tuales.
ISO/IEC 10646, una nueva codificacin propuesta por la ISO, utilizando palabras de 32
bits. La idea es que se puedan codificar no solamente todos los caracteres utilizados en los
lenguajes del mundo, sino tambin los smbolos matemticos, musicales, etc.
Carcter BCD ASCII-7 EBCDIC
0 000000 0110000 11110000
1 000001 0110001 11110001
2 000010 0110010 11110010

9 001001 0111001 11111001
A 010001 1000001 11000001
B 010010 1000010 11000010
C 010011 1000011 11000011

Tabla 2. Tabla 2: Correspondencia entre diferentes cdigos para representar informacin no num-
rica
3 Datos Numricos
Los datos numricos son de diferentes tipos:
Enteros positivos o nulos: 0, 1, 34, 120,
Enteros negativos: -1, -5, -10, -123,
Nmeros fraccionarios: 3.1415, -0.5, 2.14,
Nmeros en notacin cientfica: 4.9 10
7
, 0.5 10
3
,
La representacin de la informacin, en este caso, se la realiza con la ayuda de un al-
goritmo de conversin asociado al tipo de dato a ser representado.
Las operaciones aritmticas (suma, resta, multiplicacin y divisin) que pueden apli-
carse sobre estos datos se implementan utilizando una aritmtica binaria.
4 Enteros Positivos o Nulos
Los nmeros enteros positivos o nulos, corresponden a los nmeros: 0, 1, 2, 3,, n,
n+1,
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
35 LMBM
El intervalo de nmeros representables depender de la arquitectura de la mquina,
es decir de la cantidad de bits disponibles en la palabra que se utilizar para la representa-
cin.
4.1 Sistemas de Numeracin
Los sistemas de numeracin permiten la correspondencia entre un valor y un smbolo
escrito (Ver Tabla 3). En un sistema de base b, los nmeros entre el u y el b 1 se llaman
cifras.
Decimal Binario Octal Hexadecimal

1
u
2
u
8
u
16

1
1
1
2
1
8
1
16

2
1
1u
2
2
8
2
16

3
1
11
2
S
8
S
16

4
1
1uu
2
4
8
4
16

5
1
1u1
2
S
8
S
16

1
11u
2
6
8
6
16

7
1
111
2
7
8
7
16

8
1
1uuu
2
1u
8
8
16

9
1
1uu1
2
11
8
9
16

1
1
1u1u
2
12
8
A
16

11
1
1u11
2
1S
8
B
16

12
1
11uu
2
14
8
C
16

13
1
11u1
2
1S
8

16

14
1
111u
2
16
8
E
16

15
1
1111
2
17
8
F
16

Tabla 3. Tabla 3: Correspondencia entre los sistemas (bases) ms utilizados
Con este principio, todo valor entero positivo puede ser representado con una expre-
sin de la siguiente manera:
N = o
n
b
n
+o
n-1
b
n-1
+ o
n-2
b
n-2
+ + o
1
b
1
+o
0
b
0
= o

n
=0

donde o

{u, 1, 2, , b 1]
Normalmente se recurre a una notacin condensada de la forma:
N = o
n
o
n-1
o
1
o
0


ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
36 LMBM
Por ejemplo, el nmero 21
10
en las diferentes bases, se representara de la siguiente
manera:
En base 10: 2 1u
1
+1 1u
0
= 2u
10
+1
10
= 21
10

En base 2: 1 2
4
+1 2
2
+ 1 2
0
= 1uuuu
2
+1uu
2
+1
2
= 1u1u1
2

En base 8: 2 8
1
+S 8
0
= 2u
8
+S
8
= 2S
8

En base 16: 1 16
1
+S 16
0
= 1u
16
+S
16
= 1S
16

4.2 Cambios de Base
Binario Decimal:
Para realizar esta conversin, basta con adicionar las potencias de 2 correspondientes
a cada bit que tenga el valor 1:
11u11
2
= 1 2
4
+ 1 2
3
+ u 2
2
+ 1 2
1
+ 1 2
0

= 16
10
+8
10
+ u
10
+2
10
+ 1
10

= 27
10

Decimal Binario:
La conversin se la realiza aplicando divisiones enteras sucesivas entre 2. La divisin
se termina cuando el cociente es nulo. El nmero binario se construye leyendo los resi-
duos de atrs para adelante:
El siguiente ejemplo nos mostrar cmo convertir el nmero 25 de decimal a binario:
2S 2 = 12 rcsiJuo 1
12 2 = 6 rcsiJuo u
6 2 = S rcsiJuo u
S 2 = 1 rcsiJuo 1
1 2 = u rcsiJuo 1
Leyendo los residuos a la inversa, tenemos que el nmero 2S
10
corresponde al nme-
ro 11uu1
2
.
Otra forma de realizar esta conversin, es aplicando una serie de restas sucesivas de
potencias de 2. Comenzando de la potencia de dos ms grande que sea menor al nmero
que se desea convertir, se prosigue hasta llegar a 0. Para reconstruir el nmero, basta con
Los residuos
se leen de
abajo hacia
arriba
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
37 LMBM
colocar 1 en la posicin que corresponda a la potencia de 2 restada y 0 en las otras posi-
ciones.
Por ejemplo, para convertir el mismo nmero 25 aplicando las restas sucesivas se ob-
tendra lo siguiente:
2S 16 = 9
9 8 = 1
1 1 = u
Al haber restado las potencias de 2 correspondientes a las posiciones 4, 3 y 0, son las
posiciones donde se hallarn los unos, obteniendo como resultado 11uu1
2
.
Octal (Hexadecimal) Decimal:
La conversin se reduce a una suma de potencias de 8 (16), all donde las cifras son di-
ferentes de 0.
74S
8
= 7 8
2
+4 8
1
+S 8
0
= 448
10
+S2
10
+S
10
= 48S
10

ASF
16
= 1u 16
2
+S 16
1
+1S 16
0
= 2S6u
10
+ 48
10
+ 1S
10
= 262S
10

Decimal Octal (Hexadecimal):
Como en el caso de la conversin a binario, corresponde a una serie de divisiones por
8 (16), y el nmero octal (hexadecimal) se construye tomando los residuos en forma inver-
sa.
Decimal a Octal
SS8 8 = 44 rcsiJuo 6
44 8 = S rcsiJuo 4
S 8 = u rcsiJuo S
SS8
10
= S46
8

Decimal a Hexadecimal
SS8 16 = 22 rcsiJuo 6
22 16 = 1 rcsiJuo 6
1 16 = u rcsiJuo 1
SS8
10
= 166
16

Octal (Hexadecimal) Binario:
La conversin de Octal (Hexadecimal) a Binario es bastante simple, basta con repre-
sentar cada una de las cifras octales (hexadecimales) en formato binario, teniendo eso s
cuidado de utilizar 3 (4) bits para cada una.
17
8
= uu1
2
_
1
111
2
_
7
= uu1111
2
= 1111
2

2A
16
= uu1u
2
___
2
1u1u
2
___
A
= uu1u1u1u
2
= 1u1u1u
2

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
38 LMBM
Binario Octal (Hexadecimal):
En este caso, la conversin corresponde a un reagrupamiento de los bits, en grupos
de 3 (4), comenzando de la derecha y luego reemplazndolos por sus correspondientes en
las bases de destino. Si el nmero de bits en el nmero binario no es mltiplo de 3 (4), se
deben aadir 0s a la izquierda.
1uu1u1
2
= 1uu
2
_
4
1u1
2
_
5
= 4S
8

1uu1u1
2
= uu1u
2
___
2
u1u1
2
___
5
= 2S
16

4.3 Representacin en Campo Fijo
Se habla de una representacin en campo fijo para los nmeros enteros, pues se par-
te del principio que se utilizar una cantidad predeterminada de bits para representar los
nmeros. Dependiendo de la cantidad de bits que se vayan a utilizar para representar los
nmeros enteros positivos, se puede determinar el rango de valores representables. Por
ejemplo, si asumimos que tenemos k bits para representar los nmeros enteros positivos,
esto significa que existen 2
k
valores representables, de u a 2
k
1.
El conjunto de k bits utilizados para representar un dato, es conocido como
palabra (word). Una palabra de 8 bits, recibe el nombre de Byte y se lo abrevia
con una B mayscula.
Dependiendo de las arquitecturas, pueden utilizarse 4, 8, 16 o 32 bits para represen-
tar los nmeros enteros. En la Tabla 3.3 se pueden ver los rangos de valores representa-
bles en cada uno de estos casos mencionados.
Bits Rango
4 u x 2
4
1
8 u x 2
8
1
16 u x 2
16
1
32 u x 2
32
1
Tabla 4. Tabla 4: Rango de valores enteros positivos representables
Se debe tener muy en cuenta estas limitaciones, ya que a tiempo de utilizar estas pa-
labras para representar valores o realizar operaciones, es muy probable que el rango de
valores aceptados no sea suficiente para almacenar el valor deseado. Es decir que se est
trabajando con un tipo de datos inadecuado.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
39 LMBM
Por ejemplo, utilizando palabras de 4 bits, de ninguna manera se pueden representar
valores mayores a 7, o en caso de estar adicionando dos valores representados sobre 4
bits, es posible que se genere una retenida que no tenga cabida al interior de la palabra,
generando un error de desborde de capacidad u overflow.
111111
X 1101
Y +1001
X+Y 10110
En el ejemplo, el resultado de la suma ocupa 5 bits, y no tiene cabida en una palabra
de 4 bits.
En un grupo de bits o palabra, el bit que se encuentra en la primera columna (la pri-
mera posicin a la derecha), es denominado el bit menos significativo (least significative
bit o lsb). Por su parte, el bit que se encuentra en la ltima columna (la primera posicin a
la izquierda), es denominado el bit ms significativo (most significative bit o msb).
Por ejemplo:
1 _
msb
uu1u11 u _
Isb

En caso de estar utilizando una representacin hexadecimal, se puede hablar del Byte
ms significativo y del Byte menos significativo, siguiendo la misma lgica:
A1 _
MSB
76Cu u _
LSB

Ntese en las abreviaciones, el uso de las maysculas y minsculas:
Cuando la b est en minscula, corresponde a un bit y cuando est en mays-
cula, corresponde a un Byte.
5 Enteros Negativos
Los valores enteros negativos pueden ser representados de tres maneras:
Signo y valor absoluto.
Complemento lgico o Complemento a 1.
Complemento Aritmtico o Complemento a 2.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
40 LMBM
5.1 Signo y Valor Absoluto
La idea de esta representacin es utilizar el primer bit de la palabra, para representar
el signo del nmero a ser representado, dejando los dems para representar su valor ab-
soluto.
Si el primer bit es 0, entonces el valor es positivo. Si el primer bit es 1, entonces el va-
lor es negativo.
Esta alternativa, sacrifica un bit para representar el signo y tiene la desventaja princi-
pal de presentar dos codificaciones posibles para el valor nulo o 0, situacin que complica
la implementacin de operaciones aritmticas como la suma y la multiplicacin.
En el ejemplo a continuacin, se representan valores en palabras de 5 bits, utilizando
el primer bit como signo:

S = 1 u1u1
2 = 1 uu1u
+u = u uuuu
u = 1 uuuu
Esta representacin, por las dificultades que se tiene a tiempo de implementar opera-
ciones aritmticas, no es muy utilizada.
5.2 Complemento Lgico (Complemento a 1)
Para poder representar un nmero negativo en complemento a 1, se debe proceder
de la siguiente manera:
Representar el valor absoluto del nmero en binario (valor positivo).
Asegurarse que el primer bit est en 0.
Invertir la palabra completa. Esto es, reemplazar todos los 0s por 1 y todos los
1s por 0.
Valor
absoluto
Signo
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
41 LMBM
Importante:
Para realizar la inversin de los bits, se debe considerar todo el tamao de la
palabra, no solamente los bits significativos
Ejemplo: Representar -6 sobre 4 bits
Valor absoluto: u11u
2

Complemento a 1: 1uu1
2

La representacin en Complemento a 1, igual que la representacin Signo y Valor Ab-
soluto, tiene dos representaciones para el valor 0. Si continuamos con el ejemplo sobre
una palabra de 4 bits, tenemos:
+u : uuuu
2

u : 1111
2

5.3 Complemento Aritmtico (Complemento a 2)
Existe otra representacin de los nmeros enteros negativos, que no tiene el proble-
ma de la doble representacin para el 0. Se trata del Complemento Aritmtico o Comple-
mento a 2.
El Complemento a 2 elimina la representacin del que sera el -0 (cero negativo), dan-
do paso a la posibilidad de representar un negativo ms. Esta es la razn para que el rango
de valores representables en Complemento a 2 sea asimtrico.
Para efectivizar este decalaje que elimina el -0, basta con sumar 1 a la representacin
que se tena como representacin en Complemento a 1 del valor.
Ejemplo: Representar -6 sobre 4 bits
Valor absoluto: u11u
2

Complemento a 1: 1uu1
2

Complemento a 2: 1u1u
2

En los tres casos: SignoValor Absoluto, Complemento a 1 y Complemento a 2;
los nmeros positivos SIEMPRE son representados de la misma manera.
Solamente existe diferencia en la representacin de los nmeros negativos.
Ver Tabla 5.

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
42 LMBM
Bits
Signo y Valor Absoluto
Complemento a 1
Complemento a 2
4 (2
4-1
1) x 2
4-1
1 2
4-1
x 2
4-1
1
8 (2
8-1
1) x 2
8-1
1 2
8-1
x 2
8-1
1
16 (2
16-1
1) x 2
16-1
1 2
4-1
x 2
16-1
1
Tabla 5. Tabla 5: Rango de valores enteros representables
En la Tabla 6, se puede ver cmo sobre 4 bits se representan los valores enteros en
SignoValor Absoluto, Complemento a 1 y Complemento a 2.
Decimal Signo y valor Absoluto Complemento a 1 Complemento a 2
+7 0111 0111 0111
+6 0110 0110 0110
+5 0101 0101 0101
+4 0100 0100 0100
+3 0011 0011 0011
+2 0010 0010 0010
+1 0001 0001 0001
+0 0000 0000 0000
-0 1000 1111
-1 1001 1110 1111
-2 1010 1101 1110
-3 1011 1100 1101
-4 1100 1011 1100
-5 1101 1010 1011
-6 1110 1001 1010
-7 1111 1000 1001
-8 1000
Tabla 6. Tabla 6: Representaciones sobre 4 bits
Un detalle importante es que en las tres representaciones, el primer bit SIEMPRE est
en 1 para los valores negativos y en 0 para los valores positivos.
5.4 Unidades bsicas de informacin (en bytes)
Si bien se utilizan las palabras, para poder agrupar una secuencia de bits; estas pala-
bras no son suficientes para poder referenciar el volumen de bits o Bytes que se manejan.
Por esta razn, se recurren a prefijos (definidos inicialmente en el Sistema Internacional -
SI), adecuados a una base binaria:

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
43 LMBM
Sistema Internacional Sistema Binario
Smbolo
Estndar
Base 10
Estndar
Base 2
Smbolo Valor
KB Kilobyte 1u
3
2
10
KiB Kibibyte 2
10

MB Megabyte 1u
6
2
20
MiB - Mebibyte 2
20

GB Gigabyte 1u
9
2
30
GiB Gibibyte 2
30

TB Terabyte 1u
12
2
40
TiB Tebibyte 2
40

PB Petabyte 1u
15
2
50
PiB Pebibyte 2
50

EB Exabyte 1u
18
2
60
EiB Exbibyte 2
60

ZB Zettabyte 1u
21
2
70
ZiB Zebibyte 2
70

YB Yottabyte 1u
24
2
80
YiB Yobibyte 2
80

Tabla 7. Tabla 7: Unidades bsicas de informacin
Normalmente, de acuerdo al sistema internacional, estos prefijos estn asociados a
una serie de mltiplos de mil. Esta situacin, durante mucho tiempo gener confusin.
Por ejemplo, la expresin Kilobyte, poda ser interpretada como 1000 bytes (asumiendo el
valor del prefijo Kilo como 1000) o como 1024 bytes (asumiendo la representacin binaria
ms prxima, que corresponde a 2
10
).
Para clarificar la distincin entre los prefijos decimal y binario, la Comisin Electrotc-
nica Internacional (IEC (International Electrotechnical Commission)) propuso prefijos que
unan al prefijo del Sistema Internacional, la abreviacin de la palabra binario. Esto dio
lugar a los prefijos que se muestran en las ltimas columnas de la Tabla 7.
Lastimosamente, estos nuevos prefijos no han podido imponerse y su utilizacin es
bastante limitada. En realidad, solo se la utiliza para diferenciar cuando puedan existir
ambigedades en la interpretacin.
Un ejemplo clsico de estas confusiones, est en la capacidad de las unidades de al-
macenamiento.
Los fabricantes, utilizan la interpretacin del Sistema Internacional para declarar la
capacidad de sus unidades. Por lo que un disco duro, anunciado con una capacidad de 1
Terabyte, en realidad podr almacenar solamente 0.91 Tebibytes:
1 IB _
SI
= 1u
12
B u.91 IiB _______
Sst. Bnuo

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
44 LMBM
5.5 Aritmtica de los Nmeros Enteros
Si bien es posible efectuar operaciones aritmticas utilizando las tres representacio-
nes, generalmente se las implementa sobre las representaciones en Complemento a 1 o
en representaciones en Complemento a 2.
Ya Pascal, al desarrollar su mquina (pgina 5), implementaba las restas de esta ma-
nera: utilizando para la representacin del valor negativo, su complemento. De esta ma-
nera, para realizar una resta, basta con sumar su complemento; por lo que las operaciones
de suma y resta se reducen a una suma.
De todas maneras, existe todava un detalle que debe ser tomado en cuenta: el resul-
tado de la operacin.
En efecto, este resultado puede encontrarse dentro del rango de valores representa-
bles (en cuyo caso la operacin puede efectuarse exitosamente) o el resultado puede en-
contrarse fuera del rango de valores representables. En este ltimo caso, la operacin no
puede llevarse a cabo correctamente ya que genera un desborde de capacidad conocido
tambin como overflow.
Para reconocer un desborde de capacidad, se debe tomar en cuenta las retenidas ge-
neradas por los dos primeros bits: el bit que corresponde al signo y el siguiente:
Si ambos generan retenida o ninguno genera retenida, entonces la suma es
correcta.
Si solo uno de los dos genera retenida, entonces se genera un desborde de ca-
pacidad.
5.6 Operaciones en Complemento a 1
Para comprender el mecanismo, consideremos un ejemplo: Analicemos las operacio-
nes posibles en los valores representables sobre 3 bits.
Recordemos que cuando se representan los valores en Complemento a 1 sobre 3 bits,
el rango de valores representables va de S a +S. La Tabla 3.6 muestra todos los valores
que pueden ser representados en Complemento a 1 sobre 3 bits.

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
45 LMBM
Decimal Complemento a 1
+3 011
+2 010
+1 001
+0 000
-0 111
-1 110
-2 101
-3 100
Tabla 8. Tabla 8: Representacin en Complemento a 1 sobre 3 bits
En este rango de valores representables, las siguientes operaciones generan un des-
borde de capacidad (resultados fuera del rango de valores representables):
+S + 2 = +S
+S + 1 = +4
S 1 = 4
S 2 = S
Todas las otras combinaciones generan un resultado al interior del rango de valores
representables.
Tomemos un par de ejemplos:
+1 + 1 = +2
1111
+1 001
+1 +001
+2 010
El resultado obtenido, efectivamente corresponde a la representacin del nmero
2 en Complemento a 1. Y con la regla descrita anteriormente, ninguno de los dos
ltimos bits generan retenida, por lo tanto el resultado es vlido.
1 1 = 2
111 1 11
-1 110
-1 +110
-2 1100
El resultado obtenido parece vlido, ya que cumple con la regla estipulada ante-
riormente en sentido de las retenidas generadas por los dos ltimos bits, sin em-
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
46 LMBM
bargo, el hecho que el bit de signo genere retenida, implica que el resultado de la
suma aparentemente requiera de cuatro bits.
En realidad, en el caso de adicionar dos nmeros negativos, para completar la ope-
racin, es necesario efectuar una suma ms: La retenida generada por el bit de
signo, debe ser adicionada al resultado:
111 1 11
-1 110
-1 +110
-2 1100
+1
101
El resultado obtenido de esta manera corresponde a la representacin del nmero
2 en Complemento a 1.
Veamos ahora qu pasa cuando existe desborde de capacidad. En este caso el resul-
tado no se encuentra dentro del rango de valores representables.
+S + 2 = +S
111 11
+3 011
+2 +010
+5 101
El resultado obtenido, corresponde a la representacin del nmero 2 en Com-
plemento a 1 y no as a un valor de +S que se esperaba y que por cierto no se en-
cuentra dentro del rango de valores representables sobre 3 bits en Complemento a
1.
Adems, de acuerdo a la regla presentada anteriormente, si de los dos ltimos bits,
uno solo generaba retenida, el resultada era incorrecto ya que provocaba un des-
borde de capacidad.
S 2 = S
111 11
-3 100
-2 +101
-5 1001
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
47 LMBM
Los dos ltimos bits no tienen el mismo comportamiento en lo que se refiere a la
retenida generada: El bit de signo genera una retenida, pero no as el anterior,
rompiendo la regla.
De todas maneras, si pensramos que el resultado es correcto y que podemos adi-
cionar la ltima retenida generada al resultado, obtenemos:
111 11
-3 100
-2 +101
-5 1001
+1
010
En el resultado obtenido, el bit de signo es 0, lo que corresponde a un valor positi-
vo y no puede ser que la suma de dos nmeros negativos de positivo, por lo tanto,
la operacin no puede efectuarse.
5.7 Operaciones en Complemento a 2
El principio de las operaciones en Complemento a 2 son bastante parecidas a las ope-
raciones en Complemento a 1; la diferencia radica en la manera cmo se trata a la posible
retenida generada por la suma de los bits correspondientes al signo y al rango de valores
representables. Esto ltimo quiere decir que al tener la posibilidad de representar un n-
mero negativo ms, la cantidad de operaciones vlidas al interior del rango vara.
Decimal Complemento a 2
+3 011
+2 010
+1 001
+0 000
-1 111
-2 110
-3 101
-4 100
Tabla 9. Tabla 9: Representacin en Complemento a 2 sobre 3 bits
Por ejemplo, si consideramos nuevamente una palabra de 3 bits para representar la
informacin, el rango de valores representables vara de 4 a +S, haciendo posibles to-
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
48 LMBM
das las operaciones cuyo resultado es 4. Para apoyar el desarrollo del ejemplo, en la
Tabla 9 se pueden ver los valores representables en Complemento a 2 sobre 3 bits.
Esta vez, utilizando una representacin en Complemento a 2, las siguientes operacio-
nes generan un desborde de capacidad:
+S + 2 = +S
+S + 1 = +4
4 S = 7
4 2 = 6
4 1 = S
S 2 = S
Todas las otras combinaciones generan un resultado al interior del rango de valores
representables. Tomemos un par de ejemplos:
+1 + 1 = +2
11 1 1
+1 001
+1 +001
+2 010
El resultado obtenido, efectivamente corresponde a la representacin del nmero
2 en Complemento a 2. Y con la regla descrita anteriormente, ninguno de los dos
ltimos bits generan retenida, por lo tanto el resultado es vlido.
Ntese que sta operacin es idntica a la presentada cuando discutamos el
caso de las Operaciones Aritmticas utilizando una representacin en Comple-
mento a 1. Esto se debe a que en ambas representaciones la representacin de
los nmeros enteros es idntica.
1 1 = 2
1 1 1 1
-1 111
-1 +111
-2 1110
Nuevamente, se cumple la regla relacionada con las retenidas generadas por los
dos ltimos bits, por lo tanto el resultado es vlido. Qu se hace esta vez con la
retenida generada por la suma de los dos signos? En Complemento a 2 la respuesta
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
49 LMBM
es simple: lo eliminamos. Es decir ese bit no es significativo en el resultado y po-
demos obviarlo:
1 1 1 1
-1 111
-1 +111
-2 1110


110
El resultado obtenido de esta manera corresponde a la representacin del nmero
-2 en Complemento a 2.
Veamos ahora qu pasa cuando existe desborde de capacidad, esto es, el resultado
no se encuentra dentro del rango de valores representables.
+S + 2 = +S
1 1
+3 011
+2 +010
+5 101
Nuevamente, por la representacin idntica de los nmeros positivos, la situacin
es la misma que la que tenamos cuando presentbamos el mismo ejemplo en
Complemento a 1.
S 2 = S
1 1
-3 101
-2 +110
-5 1011
Los dos ltimos bits no tienen el mismo comportamiento en lo que se refiere a la
retenida generada. El bit de signo genera una retenida, pero no as el anterior,
rompiendo la regla. De todas maneras, si pensramos que el resultado es correcto
y eliminamos la retenida generada por la suma de los signos tendramos:
1 1
-3 101
-2 +110
-5 1011


011
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
50 LMBM
En el resultado obtenido, el bit de signo es 0, lo que significa positivo y no puede
ser que la suma de dos nmeros negativos de positivo: El resultado encontrado es-
t equivocado.
Siguiendo con el ejemplo utilizando representacin sobre 3 bits, analicemos el caso
particular de S 1, cuyo resultado 4 es represetnable en Complemento a 2, pero no
en Complemento a 1:

Complemento a 1 Complemento a 2

-3
-1
-4
1 1
100
+110
1010

1 1 1 1
101
+111
1100

010
+1
011



100

En el caso de la representacin en Complemento a 1, no se cumple la regla de las re-
tenidas y el resultado de la suma de dos nmeros negativos es positivo, por lo tanto, tal y
como se esperaba, el resultado de la operacin no es vlido y se genera un desborde de
capacidad. La misma operacin utilizando las representaciones en Complemento a 2 cum-
ple con la regla de las retenidas y el resultado es efectivamente la representacin en
Complemento a 2 de -4.
A continuacin podemos ver otro ejemplo, utilizando palabras de 4 bits:

Complemento a 1 Complemento a 2

+7
-6
+1
1 1 1 1 1
0111
+1001
10000
1 1 1 1
0111
+1010
10001
0000
+1
0001


0001
6 Nmeros Fraccionarios
Nmeros fraccionarios, son aquellos que tienen dos partes: Una parte entera y una
parte inferior a 1. Estos nmeros son tambin conocidos comnmente como nmeros con
decimales.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
51 LMBM
En la notacin, ambas partes van juntas, separadas por el smbolo de separacin de-
cimal. Este smbolo puede ser el punto (.) o la coma (,) dependiendo del lugar donde nos
encontremos. En Bolivia, se utiliza la coma. Sin embargo, en informtica, en general se
utiliza el punto, salvo contadas excepciones.
6.1 Cambio de Base
Para efectuar el cambio de base, se debe primero convertir la parte entera y luego la
parte fraccionaria.
Binario Decimal:
La conversin de la parte entera, es idntica a la vista anteriormente. Para la parte
fraccionaria, se procede de manera similar, considerando simplemente que esta vez los
exponentes son negativos dependiendo de la posicin en la que se encuentra. Por ejem-
plo:
u.11u11
2
= 1 2
-1
+1 2
-2
+u 2
-3
+1 2
-4
+ 1 2
-5

= u. S +u.2S +u.u +u. u62S + u. uS12S
= u.84S7S
10

Si el nmero tuviese parte entera:
1u1.u1
2
= 1 2
2
+u 2
1
+ 1 2
0
+u 2
-1
+1 2
-2

= 4 +u + 1 + u.u +u.2S
= S.2S
10

Decimal Binario:
Nuevamente, la conversin de la parte entera es idntica a la vista anteriormente. Pa-
ra la conversin de la parte fraccionaria, se deben efectuar una serie de multiplicaciones
sucesivas de la parte fraccionaria por 2. La secuencia de dgitos binarios que representa a
la parte fraccionaria, est formada por las partes enteras de estas multiplicaciones sucesi-
vas.

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
52 LMBM
No siempre se tiene una representacin exacta de una parte fraccionaria, en
ese caso el proceso de cambio de base a binario debe detenerse cuando se tie-
ne la cantidad de dgitos necesarios para su representacin.
Por esta razn, no siempre se tiene la representacin exacta del nmero sino
tan solo una aproximacin.
En el siguiente ejemplo se puede ver el proceso descrito, para la conversin de
u.12S
10
en binario:
u.12S 2 = u.2S parte entera 0
u.2S 2 = u.S parte entera 0
u.S 2 = 1 parte entera 1
Construyendo la representacin binaria, utilizando las partes enteras del resultado, se
puede constatar que el nmero u.12S
10
corresponde al nmero u.uu1
2
.
Para demostrar que una representacin en binario no es siempre exacta, veremos la
conversin de un nmero tan simple y comn como puede ser u.1
10
:
u.1 2 = u.2 parte entera 0
u.2 2 = u.4 parte entera 0
u.4 2 = u.8 parte entera 0
u.8 2 = 1.6 parte entera 1
u.6 2 = 1.2 parte entera 1
u.2 2 = u.4 parte entera 0
u.4 2 = u.8 parte entera 0
u.8 2 = 1.6 parte entera 1
u.6 2 = 1.2 parte entera 1
u.2 2 = u.4 parte entera 0
u.4 2 = u.8 parte entera 0

Una primera constatacin que se puede hacer, es que esta serie de multiplicaciones
sucesivas es infinita, ya que en los ltimos cuatro trminos encontramos un perodo que
se repite al infinito. Por lo tanto, el nmero u.1
10
no tiene una representacin exacta en
binario, sino tan solo una aproximacin. Esta aproximacin est formada por la serie de
dgitos formada por las partes enteras resultantes. En el ejemplo, esta serie es:
u.uuu11uu11u
2
, o escrito de otra manera (identificando el perodo): u.uuu11

2
.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
53 LMBM
Cuando se encuentra que un valor no puede ser representado exactamente en
binario, la cantidad de dgitos a ser utilizados para representar su aproximacin
depender de la arquitectura de la computadora.
Bsicamente depender de la cantidad de bits que estn previstos para alma-
cenar la parte fraccionaria.
En el siguiente ejemplo, se puede ver el proceso de conversin del nmero 11.82S
10
,
que tiene una parte entera y una parte fraccionaria:
Parte Entera
11.u 2 = S Residuo 1
S.u 2 = 2 Residuo 1
2.u 2 = 1 Residuo 0
1.u 2 = u Residuo 1
Parte Fraccionaria
u.82S 2 = 1, 6S Parte entera 1
u.6S 2 = 1, S Parte entera 1
u.S 2 = u, 6 Parte entera 0
u.6 2 = 1, 2 Parte entera 1
u.2 2 = u.4 Parte entera 0
u.4 2 = u.8 Parte entera 0
u.8 2 = 1.6 Parte entera 1
u.6 2 = 1.2 Parte entera 1
u.2 2 = u.4 Parte entera 0

La representacin del nmero es: 1u11.11u1uu11

2

Las computadoras no tienen una representacin fsica del punto decimal a nivel de la
mquina. Lo que se hace es buscar una manera de distribuir, en una palabra, las dos par-
tes de un nmero fraccionario (entera y fraccionaria). En este contexto, existen dos mane-
ras de representar los nmeros fraccionarios:
Representacin en Punto Fijo.
Representacin en Punto Flotante.
6.2 Representacin en Punto Fijo
Para la representacin en Punto Fijo, la idea es dividir la palabra que se utilizar para
almacenar la informacin en dos partes: una primera que corresponda a la representacin
de la parte entera del valor y una segunda parte que corresponda a la parte fraccionaria.
Para comprender mejor esta representacin, presentemos un ejemplo:
Asumamos que se desea representar en punto fijo sobre una palabra de 8 bits, un
nmero fraccionario. De los 8 bits, los 4 primeros corresponden a la parte entera y los
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
54 LMBM
cuatro ltimos a la parte fraccionaria. En esas condiciones, tendramos las siguientes re-
presentaciones:
Valor
Base 10
Representacin
Base 2
. 125
1
uuuu.uu1u
2

. 32
1
uuuu.u1u1
2

11. 825
1
1u11.11u1
2

Tabla 10. Tabla 10: Valores fraccionarios representados en notacin Punto Fijo
Cuando analizbamos los mismos valores en los ejemplos anteriores (Seccin 6.1),
vimos que la representacin de u.82S
10
requiere de una infinidad de dgitos binarios para
una representacin exacta. Por lo tanto si utilizamos solamente 4 dgitos, como es el caso
en este ejemplo, tan solo representamos una aproximacin del valor.
El valor representado (1u11.11u1
2
), corresponde en base 10 a 11.812S
10
, que tiene
una diferencia de u.u12S
10
con el valor original.
Esta representacin en Punto Fijo, si bien parece simple de implementar, presenta un
problema bastante serio:
No optimiza el uso de los bits que se tienen a disposicin en la palabra. Por ejemplo,
si el valor a ser representado no tiene parte entera, se estn desperdiciando los bits que
fueron reservados para este componente del valor.
Por esta razn, aunque las arquitecturas ofrezcan esta representacin, es comn tra-
bajar con la otra representacin: Punto Flotante.
6.3 Representacin en Punto Flotante
Uno de los problemas identificados en la notacin punto fijo, es que no se tiene la po-
sibilidad de optimizar el uso de los bits para almacenar la mayor cantidad de dgitos o ci-
fras significativas.
Lo ideal sera poder tener la posibilidad de desplazar la ubicacin del punto decimal.
Esto es posible gracias a la notacin en Punto Flotante, que en realidad no correspon-
de a un desplazamiento fsico del punto decimal al interior de la palabra, sino que se trata
de un desplazamiento lgico.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
55 LMBM
Esta representacin est basada en lo que comnmente conocemos como Notacin
Cientfica:
N = H b
c

En este ejemplo, el valor est representado por una Mantisa (H), que est multiplica-
da por la base (b), elevada a una determinada potencia (c).
Esta notacin, permite optimizar la cantidad de dgitos que se utilizarn para repre-
sentar los bits ms significativos, desplazando la posicin del punto decimal de acuerdo al
valor del exponente.
Por ejemplo, para representar completamente el valor 1 uuu uuu (un milln), son ne-
cesarios siete dgitos. El mismo valor puede ser representado de la forma: 1 1u
6
, utili-
zando solamente dos dgitos: el 1, que corresponde a la Mantisa y el 6 que corresponde al
exponente. La base no necesita ser representada, porque se puede presumir que es cono-
cida.
La representacin en punto flotante fue utilizada ya a mediados de los aos 50
y hasta hoy es la forma ms comn y eficiente de trabajar con los nmeros
reales, a tal punto que como parte del vocabulario informtico, se acostumbra
llamar Float o Flotante a un nmero real.
Para representar un nmero en punto flotante, lo primero que se debe hacer es con-
vertir el nmero a su representacin binaria y luego llevarlo a una notacin cientfica.
Como es de suponer, la base para esta representacin es 2.
Con respecto a la mantisa, es necesario que la misma est normalizada. Esto quiere
decir, adecuar el valor del exponente de tal manera que la parte entera sea siempre igual
a 1.
Teniendo la mantisa normalizada y el exponente respectivo, se puede proceder a re-
presentar el valor en punto flotante.
Por ejemplo, analicemos nuevamente el valor 11.82S
10
, y veamos cul sera su repre-
sentacin en notacin cientfica (paso previo para la notacin en punto flotante):
11.82S
10
_______
vuIo u
Rcpcscntu
= 1u11.11u1uu11

2
___________
Rcpcscntucon
Bnuu
= 1.u1111u1uu11

2
2
3
_______________
Rcpcscntucon bnuu
con muntsu nomuIzudu

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
56 LMBM
Para representar un valor utilizando la notacin en Punto Flotante, se requieren tres
elementos:
Signo de la mantisa
Exponente
Mantisa
En la Figura 22, se puede ver la distribucin de estos tres elementos en la palabra que
ser utilizada para la representacin en Punto Flotante. El signo de la mantisa, ser de un
solo bit. Para la cantidad de bits del exponente y de la mantisa, depender de la arquitec-
tura que se est definiendo o del estndar que se est utilizando.

El exponente debe tener la posibilidad de representar valores positivos o negativos.
Para esto se puede utilizar cualquiera de las representaciones vistas anteriormente (Sec-
cin 5 de este mismo captulo).
Exponente
Real
Exponente
Desplazado
Representacin
Binaria
-8 0 0000
-7 1 0001
-6 2 0010
-5 3 0011
-4 4 0100
-3 5 0101
-2 6 0110
-1 7 0111
0 8 1000
1 9 1001
2 10 1010
3 11 1011
4 12 1100
5 13 1101
6 14 1110
7 15 1111
Tabla 11. Tabla 11: Representacin del Exponente Desplazado o Polarizado: Ejemplo sobre 4
bits
Figura 22. Figura 22: Orden de los bits en la representacin punto flotante
Exponente Mantisa
Signo de la
Mantisa
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
57 LMBM
Sin embargo se suele utilizar otra representacin conocida como Exponente Polariza-
do o Exponente Desplazado. En esta representacin, el primer valor representado (todos
los bits en 0), corresponde al primero valor negativo representable. La Tabla 11, muestra
un ejemplo de esta representacin, utilizando una palabra de 4 bits.
Analizando los datos en la tabla, se puede constatar que la diferencia existente entre
el primer valor negativo a ser representado y 0, corresponde a 2
k-1
, donde k corresponde
a la cantidad de bits utilizados para representar el exponente. En el ejemplo, k es igual a
4. Por lo tanto, en el ejemplo, la diferencia es de 2
4-1
= 2
3
= 8.
De ese pequeo anlisis, se puede deducir que para encontrar la representacin de
un exponente, se debe sumar 2
k-1
y para obtener el valor del exponente a partir de su
representacin, se debe restar 2
k-1
.
Para ilustrar con un ejemplo, consideremos que se tiene una palabra de 16 bits para
representar un nmero real. De los 16 bits, el primero corresponde al signo de la mantisa,
los cinco siguientes corresponden al exponente polarizado y los ltimos diez bits para la
mantisa normalizada. En esta palabra, veamos cmo se representa el valor S8.2
10
:
Comencemos con la representacin en binario:
S8.2
10
= 1uu11u.uu11uu11

2

La primera constatacin que se puede hacer, es que no existe una representacin
exacta en binario, del valor deseado.
Una vez con la representacin binaria, debemos normalizarla. Esto es, reiteramos,
adecuar la representacin de modo que la parte entera sea siempre 1:
1uu11u.uu11uu11

2
= 1.uu11uuu11uu11

2
2
5

Como resultado de esta normalizacin, tenemos ya el valor de exponente. En el
ejemplo que estamos desarrollando: 5. Este valor, debe ser transformado a la representa-
cin polarizada sobre cinco bits. De acuerdo al anlisis anterior, se debe sumar 2
5-1
=
2
4
= 16. Como resultado de la operacin tenemos:
S + 16 = 21
10
= 1u1u1
2

La mantisa, corresponde en nuestro ejemplo, a los diez primeros bits despus del
punto decimal, del valor normalizado.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
58 LMBM
Entonces tenemos:
Signo Jc lo Hontiso = u
Exponcntc = 1u1u1
Hontiso = uu11uuu11u
La Figura 23, muestra el resultado final de la representacin de S8.2
10
en la arquitec-
tura descrita.

Usualmente se utiliza la notacin hexadecimal para escribir estos valores binarios. Si-
guiendo la regla descrita anteriormente, el valor sera representado en hexadecimal de la
siguiente forma:
u1u1 ___
5
u1uu ___
4
11uu ___
C
u11u ___ =
6
S4C6
16

El primer bit de la Mantisa normalizada (el que corresponde a la parte entera), es
siempre igual a 1, por lo tanto no sera necesario almacenarlo. En este caso, se dice que se
est trabajando con un bit oculto o con el primer bit implcito.
6.4 Estndar IEEE 754
El ao 1985, el IEEE public el estndar IEEE-754 (IEEE, 1985), para la representacin
de nmero reales en notacin punto flotante. Este estndar, define la forma cmo se re-
presentarn los valores en punto flotante, en simple y doble precisin.
La diferencia entre estas dos notaciones, es la cantidad de bits que se utilizan para la
representacin de los datos. De acuerdo a lo discutido anteriormente: mientras ms bits
se tengan para representar los datos, mayor ser la precisin de la representacin.
En este sentido, para una representacin en simple precisin se utilizar una palabra
de 32 bits y en para una representacin en doble precisin, se utilizar una palabra de 64
Figura 23. Figura 23: Representacin de S8.2
10
en Punto Flotante
0 10101 0011000110
Signo de la
Mantisa
Exponente Mantisa
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
59 LMBM
bits. La Tabla 12, muestra la forma cmo se distribuyen en ambos casos, los bits para re-
presentar signo, exponente y mantisa.
Formato
Nmero
de bits
Bit de
Signo
Bits de
Exponente
Bits de
Mantisa
Simple 32 1 8 23
Doble 64 1 11 52
Tabla 12. Tabla 12: Formatos de representacin en Simple y Doble Precisin segn el IEEE-
754
La representacin del exponente es polarizada y la mantisa tiene el primer bit implci-
to.

La Figura 24, muestra la representacin de S8.2
10
segn el estndar IEEE-754 en sim-
ple precisin y la Figura 25 muestra el mismo valor en doble precisin.

6.4.1 Representacin de Valores especiales en IEEE-754
El estndar IEEE-754, considera casos especiales, para representar ciertos valores co-
mo cero, infinito y valores no permitidos.
Por ejemplo, representar el 0 no resulta evidente por el primer bit implcito. Para es-
to, el estndar reserva el uso de valores especiales del exponente (todos los bits en 0 o
uno), para estos casos.
La Tabla 13, muestra la representacin en simple precisin de estos casos especiales.
En la tabla el smbolo X en el bit de signo significa que puede ser 1 o 0, lo que nos lleva una
Figura 24. Figura 24: Representacin de S8.2
10
segn el IEEE-754 en Simple Precisin.
0 10000100 00110001100110011001100
Signo de la
Mantisa
Exponente Mantisa
Figura 25. Figura 25: Representacin de S8.2
10
segn el IEEE-754 en Doble Precisin.
0 10000000100 0011000110011001100110011001100110011001100110011010
Signo de la
Mantisa
Exponente Mantisa
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
60 LMBM
vez ms a tener una doble representacin del 0, como +0 y como -0. La representacin
NaN (Not a Number), es utilizada para representar valores ilegales, como por ejemplo el
resultado de la evaluacin de 1 o log
2
(S).
Valor
Bit de
Signo
Bit de
Exponente
Bits de
Mantisa
X 00000000 00000000000000000000000
0 11111111 00000000000000000000000
1 11111111 00000000000000000000000
NaN X 11111111 Diferente de 0
Tabla 13. Tabla 13: Representacin segn el IEEE-754 de los valores u, , y NoN

7 Decimales Codificados en Binario
Si la aritmtica de los computadores es generalmente binaria, puede tambin ser de-
cimal con una representacin binaria de la informacin.
Por ejemplo, muchas calculadoras de bolsillo utilizan una representacin de la infor-
macin diferente a la estudiada hasta el momento.
En esta representacin, se suele utilizar una palabra para representar cada dgito. De
esta manera, no se est restringido por el tamao de una palabra y la cantidad de valores
que puedan ser representados en esta (como es el caso en las representaciones estudia-
das previamente). Esto quiere decir, que si se requiere mayor precisin para representar
un valor, simplemente utilizamos ms bits, o dicho de otra manera, utilizamos la cantidad
de bits necesarios y suficientes para representar todos los dgitos que deseemos.
7.1 Cdigo BCD
El cdigo BCD (Binary Coded Decimal), es la representacin ms comn de, como su
nombre lo indica, codificar en binario valores decimales.
El cdigo BCD. Utiliza palabras de 4 bits. En esta palabra, se representan los 10 dgitos
(del 0 al 9). Esto significa, que de los 16 valores representables en una palabra de 4 bits,
solo se utilizan los 10 primeros y los 6 restantes no son utilizados para nada.
La representacin de un valor en base 10, en cdigo BCD, es bastante sencilla: Basta
escribir cada uno de los dgitos en su representacin binaria, en palabras de 4 bits. La can-
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
61 LMBM
tidad de bits necesarios, depender de la cantidad de dgitos del nmero que desea repre-
sentarse.
Por ejemplo, veamos la representacin del valor S4S2S
10
:
S4S2S
10
= uu11 ___
3
u1uu ___
4
u1u1 ___
5
uu1u ___
2
uu11 ___
3
= uu11u1uuu1u1uu1uuu11
BC

Para hacer la conversin inversa, simplemente se toman los bits en grupos de 4 y se
lee cada uno de los grupos:
1uu1uuuuu1uuuuuuu11u
BC
= 1uu1 ___
9
uuuu ___
0
u1uu ___
4
uuuu ___
0
u11u ___
6
= 9u4u6
10

Decimal BCD 2 en 5 Bi-quinario
0 0000 00011 01 00001
1 0001 00101 01 00010
2 0010 00110 01 00100
3 0011 01001 01 01000
4 0100 01010 01 10000
5 0101 01100 10 00001
6 0110 10001 10 00010
7 0111 10010 10 00100
8 1000 10100 10 01000
9 1001 11000 10 10000
Tabla 14. Tabla 14: Decimales codificados en Binario
7.2 Cdigo 2 en 5
Esta representacin, como su nombre pretende indicar, utiliza palabras de 5 bits para
representar al dgito decimal. La particularidad de este cdigo, es que en todos los casos,
de los 5 bits, 2 estn siempre en 1 y los dems en 0.
Por sus caractersticas, esta representacin es til para la deteccin de errores sim-
ples.
7.3 Cdigo Bi-quinario
Esta representacin utiliza palabras de 7 bits para representar la informacin. Fue uti-
lizada por la IBM-650.
Como en el cdigo 2 en 5, tan solo dos bits estn en 1 y los dems en 0. La particulari-
dad de este cdigo, es que el primer bit en 1 est siempre entre los dos primeros bits y el
segundo bit en 1, est entre los 5 ltimos bits.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
62 LMBM
8 Ejercicios
1. Representar los siguientes nmeros en base 2, 8, 10 y 16 (en todos los casos, se
deben obtener tres representaciones diferentes):
2S
10
86
10
187
10

S4
8
121
8
2uu
8

2A2
16
Au
16
F2
16

2. Representar los mismos valores del anterior ejercicio, en binario, utilizando pala-
bras de 12 bits. El resultado debe estar expresado en hexadecimal.
3. Utilizando palabras de 16 bits, representar en Complemento a 1 y Complemento a
2, los siguientes valores enteros (dos representaciones para cada valor):
1281u
10
7S1u
10
1111u
10

12S4S
10
2S6
10
7S1u
10

6SSuu
10
6uuuu
10
1111u
10

Los resultados deben estar expresados en hexadecimal.
4. Para cada una de las siguientes expresiones, responder las preguntas que vienen a
continuacin:
S778 + uu18
21u8 + 2S48
1778 + 2uu8
1S18 + u2S8
1S18 + S278
A qu valor decimal corresponde cada uno de los operandos? Esto supo-
niendo que estaran en una representacin en complemento a 1 primero y
luego en complemento a 2 (dos valores para cada nmero).
Realizar, para ambas interpretaciones, la suma de los dos nmeros (dos re-
sultados para cada operacin).
En caso de no poder realizarse alguna de las operaciones, explicar las razo-
nes que imposibilitan la tarea.
5. Convertir a decimal los siguientes nmeros, cuyas bases se hallan indicadas en el
subndice:
FEA. S
16
17S.S1
8
11u1u11u.11u1
2

6. Estamos trabajando con una computadora que utiliza una arquitectura de 16 bits.
Esta computadora permite representar los nmeros reales utilizando una notacin
en punto fijo y una notacin en punto flotante. La distribucin de los bits, en cada
uno de los casos es la siguiente:
En notacin punto fijo: 6 bits para la parte entera y 10 para la parte frac-
cionaria.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
63 LMBM
En notacin punto flotante: 1 bit para el signo de la mantisa, 5 bits para el
exponente y 10 bits para la mantisa.
En esta computadora, representar los siguientes valores, en cada una de las dos
representaciones:
12.S1u 4S.991u u.761u
2S.28 7.78 1u.2S8
1. A16 1A. B16 u. Cu116
7. Con los resultados del ejercicio anterior, calcular los errores causados por los bits
perdidos.
8. Indicar si los valores anteriores pueden ser representados utilizando un punto fijo
sobre 8 bits, de los cuales 4 son para la parte entera y 4 para la parte fraccionaria.
En caso de ser posible, realizar la representacin y calcular el error resultante.
9. Repetir el ejercicio anterior con palabras de 16 bits, de los cuales 6 para la parte
entera y 10 para la parte fraccionaria.
10. Discutir sobre el comportamiento de la funcin de redondeo.
11. Determinar el rango de valores positivos representables en una mquina, que para
su representacin en punto flotante, utiliza una palabra de 12 bits, organizados de
la siguiente manera:
1 bit para el signo de la mantisa.
Un exponente polarizado sobre 4 bits.
Una mantisa normalizada sobre 7 bits.
12. Contamos con una computadora, donde los valores reales se almacenan sobre 32
bits. De los 32 bits:
1 bit es para el signo de la mantisa.
Un exponente polarizado sobre 8 bits.
Una mantisa normalizada sobre 23 bits. De acuerdo al estndar IEEE-754.
Transformar a decimal, el valor que estara representado por las siguientes se-
cuencias de bits (los nmeros estn representados en la base indicada como sub-
ndice):
27642uuuuuu8
ASFu12uu16
26S227uuuu8
FuCAAuuu16

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
64 LMBM
CAPITULO 4.
CODIFICACIN DE LA INFORMACIN
Codificar. (Del lat. codex, -icis, cdigo, y -ficar). tr. Hacer o formar
un cuerpo de leyes metdico y sistemtico. || 2. Transformar me-
diante las reglas de un cdigo la formulacin de un mensaje.
RAE 2001
1 Introduccin
La codificacin de la informacin, consiste en utilizar cdigos para representar la in-
formacin para resolver tres tipos de problemas:
Asegurar la integridad de la informacin (Deteccin y correccin de errores).
Minimizar el tamao de la informacin (Compresin de datos).
Garantizar la seguridad de la informacin (Encriptacin).
El primer tipo de codificacin siempre se utiliza. Los otros dos son opcionales, depen-
diendo del resultado que se desea obtener.
Esta situacin no implica que los cdigos no puedan combinarse entre s.
2 Cdigos Detectores y Correctores de Errores
Una informacin puede sufrir cambios involuntarios cuando est siendo transmitida o
en la unidad de almacenamiento. Es necesario contar con una serie de mecanismos que
permitan verificar en todo instante la integridad de la informacin y por lo tanto su vali-
dez.
Esto es posible gracias a una serie de cdigos que permiten detectar o corregir los
posibles errores producidos.
Una desventaja de estos cdigos, es que todos estn basados en informacin adicio-
nal que se debe calcular y que debe acompaar los datos. Esto implica que a una palabra
que ya tenga m bits de datos, se le aadirn k bits de control. Entonces se transmitirn (o
almacenarn) m + k bits.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
65 LMBM
Este tipo de cdigos, que aumenten la cantidad de bits, se llaman cdigos redundan-
tes.
2.1 Cdigos Detectores
La forma ms simple de detectar un error, es el control de paridad. En este caso, a la
informacin original, se debe aadir un bit de control, conocido como bit de paridad.
Se aade un bit de control, por lo tanto el valor de k es 1.
Existen dos tipos de control de paridad: paridad par y paridad impar.
En el caso de estar utilizando una paridad par, el valor del bit de control aadido, es
tal que la cantidad total de bits a 1, en los m + 1, bits es par.
Cuando no se especifica, por defecto se asume que la paridad es par.
La Tabla 15 muestra un ejemplo de cmo es calculado el bit de paridad par.
Representacin
binaria
Bit
de paridad
Secuencia
Completa
1000001 0 1000001 0
1001010 1 1001010 1
1011011 1 1011011 1
Tabla 15. Tabla 15: Bit de paridad par.
En el caso de estar utilizando una paridad impar, el valor del bit de control aadido,
es tal que la cantidad total de bits a 1 en los m + 1 bits es impar.
Si un bit se modifica por error, entonces el bit de paridad ya no es vlido y el error es
detectado. Se debe actuar en consecuencia. El problema aparece cuando son dos los bits
que cambian, existe un error doble, pero la paridad sigue siendo verificada. En realidad, el
control de paridad solamente permite detectar una cantidad impar de errores (Ver Tabla
16).
Secuencia
correcta
Secuencia
recibida
Paridad Error
1000001 0 1010001 0 Impar Detectado
1001010 1 1101000 1 Par No detectado
1011011 1 1000001 1 Impar Detectado
Tabla 16. Tabla 16: Errores detectados y no detectados por el bit de paridad
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
66 LMBM
Esta limitacin, impide que este mecanismo de deteccin de errores sea utilizado en
todos los aspectos. Por ejemplo, en la transmisin de datos en una red de computadoras,
la probabilidad de que se genere error en un solo bit es mnima. En caso de error (por una
perturbacin o ruido, por ejemplo), la probabilidad de que sea un grupo de bits el afecta-
do es mucho mayor.
Sin embargo, en ciertos ambientes controlados, an se suele utilizar este mecanismo,
ms que para detectar potenciales errores, para garantizar que efectivamente no ocurren.
Por ejemplo, en algunas configuraciones de arreglos de discos RAID o en la comunicacin
entre una computadora y un mdem.
2.2 Cdigos Correctores
La idea de los Cdigos Correctores, es que adems de permitir detectar un error, pue-
dan corregirlo de tal manera que se pueda automticamente, reconstruir el mensaje o la
informacin original correcta.
2.2.1 Doble paridad
De los Cdigos Correctores, el ms simple, consiste en calcular una doble paridad.
La idea es organizar los datos en una matriz y calcular para cada fila y para cada co-
lumna su bit de paridad. En la Tabla 17, se puede observar una matriz de datos de 4 4,
donde se ha aadido una columna de bits adicionales a la derecha, correspondientes a la
paridad horizontal de cada palabra y en la parte inferior se ha aadido una nueva palabra
que corresponde a la paridad vertical de cada uno de los bits de las 4 palabras del mensaje
original.
Valor
Representacin
binaria
Paridad
horizontal
5 0101 0
7 0111 1
1 0001 1
12 1100 0
Paridad vertical 1111 0
Tabla 17. Tabla 17: Doble paridad en una matriz de datos de 4 4
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
67 LMBM
Para verificar la validez del mensaje recibido, se verifica la informacin, calculando
una vez ms la doble paridad sobre el mensaje recibido. En caso de existir un error, las
paridades horizontal y vertical correspondientes a esa posicin, sern diferentes de 0,
permitindonos identificar el bit errneo y por consecuencia permitirnos tambin corre-
girlo. La Tabla 18, muestra el ejemplo de esta validacin y deteccin de un error, tomando
como base el ejemplo anterior. Lo que se ve es que el segundo bit de la segunda palabra,
fue alterado. En el momento de hacer la verificacin, el bit de paridad que corresponde
tanto a la segunda fila, como el bit de paridad que corresponde a la segunda columna,
estn en 1, permitiendo detectar el error.
Valor
Representacin
binaria
Paridad
horizontal
Verificacin
horizontal
5 0101 0 0
7 0011 1 1
1 0001 1 0
12 1100 0 0
Paridad vertical 1111 0 0
Verificacin
vertical
0100 0 1
Tabla 18. Tabla 18: Verificacin utilizando la doble paridad en una matriz de datos de 4 4
Como se ha detectado un solo punto de interseccin con error, es posible corregirlo,
reconstruyendo el mensaje original.
Este cdigo corrector, solo permite la correccin de un bit de error. En caso de que
ms de un bit se modifique en el mensaje original, es posible que se camuflen (que no
puedan ser detectados) o que se identifiquen varios puntos de interseccin, haciendo im-
posible discernir cul exactamente es el bit que se debe corregir. Sin embargo, pese a es-
tas limitaciones, es un cdigo que se utiliza bastante en el almacenamiento de datos en
cintas magnticas.
2.2.2 Cdigo de Hamming
El Cdigo de Hamming, es un cdigo auto corrector, basado tambin en pruebas de
bit de paridad. La versin ms simple permite corregir un error.
A los m bits de datos, se aaden k bits de control de paridad. El nuevo mensaje tiene
m + k bits. Estos k bits, deben ser suficientes para poder controlar un nmero arbitrario
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
68 LMBM
de bits (m) en el mensaje original. Esto quiere decir, que nos interesa el valor mnimo de
k, que cumpla con la siguiente relacin: 2
k
m + k +1
La Tabla 19 muestra una idea de esta relacin, identificando la cantidad mnima de
bits (k) que deben aadirse para los diferentes valores de m.
m 1 2 3 4 5 6 7 8 9 10 120
k 2 3 3 3 4 4 4 4 4 4 9
m+k 3 5 6 7 9 10 11 12 14 14 128
Tabla 19. Tabla 19: Relacin m k para el Cdigo de Hamming
Para ubicar cada uno de los k bits de control en el nuevo mensaje, se debe enumerar
cada una de las posiciones del nuevo mensaje, comenzando en 1 en el bit menos significa-
tivo (el de la derecha). En cada posicin que corresponda a una potencia de 2, se ubicar
el bit de control que corresponda.
Por ejemplo, si tenemos 4 bits para enviar (m = 4), se puede construir un cdigo de
control de Hamming sobre 7 bits (m + k = 7), aadiendo 3 bits de control (k = S). Cada
uno de los bits de control se distribuirn de la siguiente manera:
Mensaje original:
m
4
m
S
m
2
m
1

Bits de control:
k
S
k
2
k
1

Mensaje final:
m
4
m
S
m
2
k
S
m
1
k
2
k
1

El primer bit de control, se encuentra en la posicin 1 (2
0
), el segundo bit se encuen-
tra en la posicin 2 (2
1
) y el tercer bit de control se encuentra en la posicin 4 (2
2
). Los
bits de datos se distribuyen en las posiciones libres, comenzando de la derecha hacia la
izquierda. En este ejemplo, se encuentran en las posiciones 3, 5, 6 y 7.
Si el mensaje inicial fue u111; el 0 estar en la posicin 7, el primer 1 en la posicin 6,
el segundo 1 en la posicin 5 y el ltimo 1 en la posicin 3. Los bits de datos se ubican in-
tercalados con los bits de control (El ejemplo completo se encuentra en la Tabla 20).
7 6 5 4 3 2 1
0 1 1 k
3
1 k
2
k
1

Tabla 20. Tabla 20: Clculo de Hamming para m = 4 (u111) y k = 3
Cada uno de los bits de control, corresponde a la paridad de determinados datos. De-
pendiendo de la posicin que ocupa en el mensaje, se puede conocer cules son los datos
que corresponden a cada bit de control:
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
69 LMBM
El primer bit de control (k
1
), controla la paridad de los bits ubicados en las po-
siciones: 3 (m
1
), 5 (m
2
) y 7 (m
4
).
El segundo bit de control (k
2
), controla la paridad de los bits ubicados en las
posiciones: 3 (m
1
), 6 (m
3
) y 7 (m
4
).
El tercer bit de control (k
3
), controla la paridad de los bits ubicados en las po-
siciones: 5 (m
2
), 6 (m
3
) y 7 (m
4
).
Continuando con el ejemplo, se tendra el resultado que se muestra en el la Tabla 21.
7 6 5 4 3 2 1
0 1 1 0 1 0 0
Tabla 21. Tabla 21: Clculo de Hamming para m = 4 (u111) y k = 3 (000)
Para validar el mensaje recibido, se debe efectuar el mismo clculo; tomando en
cuenta esta vez, los bits de control. El resultado de esta validacin, tiene la misma canti-
dad de bits que los bits de control.
El primer bit de validacin (:
1
), controla la paridad de los bits ubicados en las
posiciones: 3 (m
1
), 5 (m
2
), 7 (m
4
) y el primer bit de control (k
1
).
El segundo bit de validacin (:
2
), controla la paridad de los bits ubicados en las
posiciones: 3 (m
1
), 6 (m
3
), 7 (m
4
) y el segundo bit de control (k
2
).
El tercer bit de validacin (:
3
), controla la paridad de los bits ubicados en las
posiciones: 5 (m
2
), 6 (m
3
) y 7 (m
4
) y el tercer bit de control (k
3
).
Si el resultado obtenido para los tres bit de validacin es igual a 0, entonces no se ha
detectado el error. Caso contrario, ordenando los bits de validacin apropiadamente, el
valor formado da la posicin del bit errneo. Habiendo identificado el bit, se lo puede
cambiar, reconstruyendo la informacin original.
Es necesario recalcar que este mtodo solo permite corregir un error en un bit.
En el ejemplo anterior, asumamos que el bit que se encuentra en la posicin 6 se ha-
bra cambiado. En ese caso se tendra como mensaje recibido, la secuencia de bits que se
puede apreciar en la Tabla 22.
7 6 5 4 3 2 1
0 0 1 0 1 0 0
Tabla 22. Tabla 22: Clculo de Hamming para m = 4 (u111) y k = 3 (000) con un error
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
70 LMBM
Sobre la base de ese ejemplo, procedemos a calcular los bits de validacin:
:
1
= PoriJoJ(m
1
, m
2
, m
4
, k
1
) = PoriJoJ(1,1,u,u) = u
:
2
= PoriJoJ(m
1
, m
3
, m
4
, k
2
) = PoriJoJ(1,u,u,u) = 1
:
3
= PoriJoJ(m
2
, m
3
, m
4
, k
1
) = PoriJoJ(1,u,u,u) = 1
El resultado de la validacin es diferente de cero, por lo tanto, ordenando apropia-
damente los bits tenemos:
:
3
:
2
:
1
= 11u = 6
El bit que se modific, es efectivamente el que se encuentra en la sexta posicin.
2.2.3 Clculo simplificado del Cdigo de Hamming
Existe una forma mucho ms simple, para calcular los bits de control y los bits de vali-
dacin.
Para calcular los bits de control, se deben colocar los bits del mensaje en la posicin
que les ha de corresponder. Se comienza la numeracin de cada posicin a partir de 1, en
el extremo derecho. Una vez numerados, se consideran las posiciones que corresponder a
un 1.
Cada identificador de posicin, debe ser representado en binario, utilizando palabras
que tengan la misma cantidad de bits que los bits de control. De estas representaciones,
se obtiene una paridad vertical para cada grupo de bits. Los bits resultantes, corresponden
a los bits de control.
Veamos, por ejemplo, el mismo mensaje que se present en la Tabla 20. En el men-
cionado mensaje, los 1 s encuentran en las posiciones 3, 5 y 6. La Tabla 23, muestra este
proceso y en la ltima fila los bits correspondientes a los bits de control.
3 011
5 101
6 110
Paridad 000
Tabla 23. Tabla 23: Clculo de Hamming simplificado para m = (u111) y k = 3
Para comprender el funcionamiento de este mtodo simplificado, en la validacin de
un mensaje, consideraremos el ejemplo que se muestra en la Tabla 22. Como se adelant,
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
71 LMBM
se toman en cuenta los bits de control. En el ejemplo, los 1 se encuentran en las posicio-
nes 3 y 5. Se procede de la misma forma y el resultado se puede ver en la Tabla 24.
3 011
5 101
Paridad 110
Tabla 24. Tabla 24: Clculo de Hamming simplificado para m = (u111) y k = 3 con un error
En el ejemplo, tal y como se esperaba, el resultado es diferente de 0, y los bits de pa-
ridad calculados representan el valor 6. De acuerdo al ejemplo estudiado, efectivamente
es el bit que se halla en la sexta posicin que habra sido modificado.
2.3 Deteccin de Errores Agrupados
Generalmente, en la transmisin de datos, los errores son mucho ms frecuentes que
al interior de un computador. Pero estos errores rara vez (por no decir nunca) afectan a
un solo bit. Generalmente es una serie de bits los que se ven afectados
Por ejemplo, en una conversacin telefnica, un click tiene una duracin de ms o
menos una centsima de segundo. Este evento, apenas perceptible por el odo humano,
puede perturbar hasta 96 bits en una transmisin de datos con una velocidad de apenas
9600 bps.
En estos casos, los cdigos presentados hasta el momento, no son de mucha utilidad.
Se debern aplicar otros mtodos de deteccin de errores ms eficientes. El mtodo ms
simple y conocido es el del clculo del CRC (Cyclic Redundant Code).
2.3.1 CRC (Cyclic Redundant Code)
El CRC (llamado tambin mtodo de los cdigos polinomiales), es el mtodo ms utili-
zado para la deteccin de errores agrupados. Antes de la transmisin de datos se aaden
los bits de control al final del mensaje.
En caso de detectar errores, en el proceso de validacin en el receptor, es necesario
retransmitir el mensaje: El CRC no es un cdigo corrector, solo detector de errores.
Se habla de cdigos polinomiales, pues el mecanismo utilizado en el clculo de los bits
de control, est basado en una variacin de la divisin algebraica entre polinomios. Para
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
72 LMBM
realizar estas operaciones, es necesario entonces, encontrar una representacin polino-
mial de los bits involucrados en el proceso.
En este sentido, una secuencia de n bits, puede ser considerada como la lista de coe-
ficientes binarios de un polinomio de n trminos (grado del polinomio n 1). La Tabla 25,
muestra cmo se hace efectiva esta representacin.
1101 x
3
+x
2
+1
110001 x
4
+ x
5
+ 1
10110 x
4
+x
2
+x
Tabla 25. Tabla 25: Representacin polinomial de una secuencia de bits
Para calcular los bits de control, ser necesario realizar una serie de operaciones con
estos polinomios de coeficientes binarios. Todas las operaciones se realizarn mdulo 2,
es decir en caso de sumas y restas. En ningn caso se tomar en cuenta la retenida. Am-
bas operaciones sern entonces idnticas al operador XOR ().
Tanto el emisor como el receptor, se ponen de acuerdo en utilizar un polinomio co-
mn 0(x), llamado tambin generador. Es con este polinomio que se proceder a la gene-
racin de los bits de control.
El algoritmo para calcular el mensaje a enviar, es el siguiente:
Sea H(x) el polinomio correspondiente al mensaje original.
Sea r el grado del polinomio generador (0(x)) escogido.
1. Multiplicar H(x) por x

. Esta operacin permite aadir r ceros al final del


mensaje original.
2. Efectuar la siguiente operacin, mdulo 2, segn lo descrito anteriormente:
H(x) x

0(x)
= (x) +(x)
3. El cociente de la divisin ((x)), es ignorado. El Residuo ((x)), que estar
compuesto de i bits (grado del polinomio 0(x)), corresponde a los bits de
control generados.
4. Aadir el Residuo ((x)) al mensaje original decalado:
I(x) = H(x) x

+(x)
y se tiene en I(x), el mensaje final a ser enviado.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
73 LMBM
En el receptor, para validar el mensaje, se realiza la siguiente operacin:
I(x)
0(x)

si el residuo de la divisin, en las mismas condiciones descritas anteriormente, es 0,
entonces no existe ningn error. Caso contrario, los datos enviados sufrieron algn tipo de
modificacin, pero no se puede determinar cunto ni dnde. nica alternativa: descartar
el mensaje y solicitar retransmisin.
El secreto est en seleccionar cuidadosamente el polinomio generador 0(x), pues se
puede llegar a detectar el cambio en 1 bit, en dos bits consecutivos o en una serie de n
bits consecutivos, con una gran probabilidad.
Otra razn por la que ese polinomio debe ser seleccionado cuidadosamente, es por-
que como la cantidad de bits que se tiene en el residuo es mucho menor a la cantidad de
bits que se tienen en el mensaje a controlar; existe la probabilidad de que varios mensajes
puedan generar el mismo CRC (el mismo residuo). Esta razn llev a estudiar las caracte-
rsticas de los mensajes, de los diferentes polinomios generadores y como resultado, se
tienen definidos los polinomios estndar.
Por la ltima razn expuesta, el mtodo del CRC no es infalible. Por lo tanto, en
un sistema donde se requiera de un control absoluto, no debe ser utilizado
como nico control, ms al contrario, debe ser complementado con otros.
A continuacin se desarrollar como ejemplo, el clculo del CRC para el mensaje de 6
bits: 1u11u1. Utilizando como polinomio generador 1u11 (4 bits).
Los siguientes polinomios, representan las secuencias de bits presentadas:
1u11u1 H(x) = x
5
+x
3
+x
2
+1
1u11 0(x) = x
3
+x + 1
1. Multiplicar H(x) por x

. r, el grado del polinomio generador: 3


H(x) x

= (x
5
+ x
3
+ x
2
+ 1) x
3
= x
8
+x
6
+x
5
+x
3

2. Efectuar la siguiente operacin, mdulo 2, segn lo descrito anteriormente:
H(x) x

0(x)
=
x
8
+x
6
+x
5
+x
3
x
3
+ x +1


ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
74 LMBM
x
8
+x
7
+ x
6
+x
5
+ x
4
+x
3
+x
2
+x +1 x
3
+x + 1

x
8
+x
7
+ x
6
+x
5
+ x
4
+x
3
+x
2
+x +1
x
5
+1

x
8
+x
7
+ x
6
+x
5
+ x
4
+x
3
+ x
2
+x +1


x
8
+x
7
+ x
6
+x
5
+ x
4
+x
3
+x
2
+x +1


x
8
+x
7
+ x
6
+x
5
+ x
4
+x
3
+ x
2
+x +1


3. El cociente de la divisin (x
5
+1), es ignorado. El Residuo (u +x +1), com-
puesto por 3 bits (grado del polinomio 0(x)), corresponde a los bits de control
generados.
4. Aadir el Residuo ((x)) al mensaje original decalado:
I(x) = H(x) x

+(x) = x
8
+ x
6
+ x
5
+ x
3
+ x +1
y se tiene en I(x), el mensaje final a ser enviado. Representado nuevamente
como una secuencia de bits, se tiene:
1u11u1u11
Simplemente para comodidad a tiempo de visualizar, se ha dividido la palabra,
resaltando los dos componentes: mensaje original y CRC.
Los polinomios generadores G(x) ms utilizados son:
CRC-12 = x
12
+ x
11
+ x
3
+ x
2
+ x +1
CRC-16 = x
16
+ x
15
+ x
2
+ 1
CRC-CCITT = x
16
+x
12
+x
5
+1
3 Compresin de Datos
El objetivo de la Compresin de Datos, es de codificar la informacin representada,
utilizando menor cantidad de bits. Existe una gran variedad de Algoritmos de Compresin.
Entre sus principales caractersticas, se pueden mencionar las siguientes:
La calidad de la compresin
La tasa de compresin
El tiempo de compresin
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
75 LMBM
Existe cierto tipo de informacin, que puede aceptar la prdida de informacin. Esto
significa que a tiempo de descomprimir la informacin, no se llega a restaurar la informa-
cin original. Estos algoritmos son los llamados irreversibles o con prdida de informacin,
y se los utiliza frecuentemente para comprimir datos multimedia como imgenes, audio y
video.
Por otro lado, est la informacin crtica. Donde no se puede permitir la prdida de un
solo bit. Para estos datos, existen los algoritmos de compresin reversibles o sin prdida
de informacin. En este caso, cuando se va a descomprimir la informacin, si se restaura
la informacin original. Estos algoritmos se utilizarn para almacenar programas, datos,
etc.
La tasa de compresin, es la relacin que existe entre el tamao original de la infor-
macin, con respecto al tamao comprimido. Para los algoritmos sin prdida de datos, la
relacin suele ser de 2:1 o de 3:1. Con los algoritmos con prdida, se puede llegar a tasas
de 10:1 o incluso de 100:1. En general podramos decir que, a mayor tasa de compresin,
mayor prdida de informacin.
El tiempo de compresin es tambin un factor importante. Por ejemplo, cuando se
transmite informacin, el tiempo que se vaya a adicionar por el proceso de compresin
descompresin; no debe ser mucho mayor al tiempo de transmisin solamente. Sin em-
bargo es tambin cierto, que los mejores algoritmos de compresin toman ms tiempo en
su proceso que otros de menor calidad.
En resumen, un buen algoritmo de compresin de datos es un compromiso entre la
calidad de compresin, la tasa de compresin y el tiempo de compresin.
3.1 Cdigo de Huffman
El Cdigo de Huffman, desarrollado en 1951 por David Huffman, se lo utiliza general-
mente para comprimir datos de texto.
La idea de este algoritmo, es de construir un nuevo diccionario; a partir del cual , se
proceder a recodificar la informacin. La construccin de este diccionario, depende del
texto a ser comprimido.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
76 LMBM
La idea bsica es que, con el nuevo diccionario, se puedan utilizar pocos bits para re-
presentar los caracteres ms frecuentes. Tambin acepta que los caracteres menos fre-
cuentes puedan tener, incluso, una representacin en un mayor nmero de bits que la
representacin original.
El algoritmo de Huffman (Dipperstein, 2010) es bastante simple, elegante y uno de los
ms conocidos:
1. Se cuenta la frecuencia de cada carcter en el texto a ser comprimido. El espa-
cio en blanco es tambin un carcter que debe ser tomado en cuenta.
2. Se ordenan los caracteres en funcin a su frecuencia y en orden descendente,
es decir comenzando por el ms frecuente.
3. Con los dos ltimos caracteres (los menos frecuentes), se construye un rbol
binario, colocndolos en cada hoja y remplazando la raz por un nodo vaco,
pero que tiene el peso de la suma de las frecuencias de los dos caracteres
remplazados.
4. Se vuelve a ordenar la lista, tomando en cuenta el rbol creado.
5. Se repite la creacin de rboles binarios para los dos ltimos elementos, pu-
diendo estos ser un carcter o un rbol creado anteriormente.
Se detiene el ciclo, cuando solo existe una raz para un solo rbol binario, es
decir cuando todos los caracteres toman su lugar.
6. Con el rbol terminado, a cada rama hacia la izquierda, se les asigna el valor u
y a cada rama hacia la derecha se le asigna el valor1.
7. El Cdigo de Huffman, con el que ser representado cada carcter, est for-
mado por la secuencia de bits del camino que, a partir de la raz va hacia la ho-
ja que corresponde al carcter.
8. Recodificar el mensaje original, utilizando el nuevo diccionario generado en el
anterior paso.

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
77 LMBM
A continuacin, se mostrar un ejemplo cmo aplicar este algoritmo de compresin
de datos. El mensaje a ser comprimido ser: mi papa fuma pipa (Se har abstraccin
de los caracteres acentuados, para simplificar el ejemplo):
1. Contar la frecuencia de cada carcter:

m i _ p a f u


2 2 3 4 4 1 1

2. Ordenar la lista de manera ascendente:

p a _ m i f u


4 4 3 2 2 1 1

3. Comenzar la construccin del rbol binario, a partir de los dos nodos corres-
pondientes a los caracteres menos frecuentes.
4. Reordenar la lista.
5. Continuar con el proceso hasta que el rbol est terminado.
6. Asignar los pesos a las ramas.
7. Cdigo generado (nuevo diccionario).
8. Mensaje comprimido.
El nuevo mensaje comprimido, est compuesto por la secuencia de los nuevos cdi-
gos representando la informacin original. No es necesario contar con una especificacin
particular, para definir un separador entre los cdigos. Aunque estos tengan un tamao
variable.
Tal separador no es necesario, pues cada cdigo tiene una propiedad de unicidad que
permite obviarlo. Lo que s, se debe acompaar al nuevo mensaje comprimido, con el dic-
cionario resultante de la construccin del cdigo, para poder ser descomprimido.
3.2 RLE (Run Length Encoding)
El RLE (Chou, 2002), es un cdigo que permite suprimir las secuencias de caracteres
idnticos.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
78 LMBM
Su implementacin es simple; si un carcter se repite ms de una determinada canti-
dad de veces (por ejemplo 3), la secuencia original es remplazada por tres caracteres: un
carcter especial que indica el inicio de la compresin (delimitador), seguido por el carc-
ter que se est remplazando y finalmente un carcter que representa la cantidad de veces
que se realiza la repeticin. Trabajando con una representacin ASCII de 8 bits, esto signi-
ficara que se pueden representar hasta 255 caracteres idnticos, con solo tres.
Como se utilizan tres caracteres para representar la compresin, no se gana nada
cuando la secuencia de caracteres idnticos, es menor o igual a este valor.
Un problema conocido en este algoritmo, es cmo poder diferenciar cuando en el
mensaje a ser comprimido, aparece el smbolo que es utilizado para identificar la compre-
sin. En este caso, lo que se hace, es utilizar la misma lgica, solo que esta vez tanto el
smbolo delimitador como el carcter comprimido, son los mismos.
El proceso para descomprimir es bastante simple: basta identificar los lugares donde
aparece el carcter delimitador que indica el inicio de la compresin, se lee el carcter
remplazado y se lo replica tantas veces como lo indique el tercer valor.
En el siguiente ejemplo, se presenta la compresin RLE utilizando el smbolo como
delimitador de la compresin:
Informacin a comprimir:
EEFFFFFFFPPPPPPPPAAAAAAA
Informacin comprimida:
4EEF79SP86A7
La cadena original tiene 52 caracteres, cuando la comprimida tiene solamente 26. En
este ejemplo, se obtuvo una relacin de 2:1.
Este algoritmo de compresin es utilizado para comprimir sobretodo imgenes.
3.3 Otros Cdigos de Compresin de Datos
Otros algoritmos de compresin utilizados frecuentemente son:
LZW (Lempel-Ziv-Welch): Es tal vez uno de los algoritmos reversibles ms co-
nocidos, es utilizado por la mayor parte de las aplicaciones que realizan la
compresin de datos. El LZW funciona gracias a una extensin del alfabeto,
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
79 LMBM
utiliza caracteres adicionales para representar cadenas de caracteres que se
identificaron como recurrentes en el texto.
JPEG (Joint Photographic Expert Group): Este grupo de expertos profesionales
ha definido la norma internacional JPEG para comprimir imgenes fijas o est-
ticas. Esta norma sigue en constante evolucin.
Ondeletas (Wavelets): Es una tcnica bastante reciente que tiene muy buenos
resultados con tasas de compresin que pueden superar el 100:1.
4 Encriptacin
La criptologa no es una ciencia nueva, existe desde hace ms de dos mil aos. Consis-
te en transformar los mensajes dndoles una representacin secreta imposible a descifrar
por terceros.
Los primeros sistemas remontan al ao 1900 antes de Cristo, cuando un escriba egip-
cio comenz a utilizar jeroglficos diferentes a los que normalmente se utilizaban. Ms
tarde, Julio Csar utiliz mensajes cifrados para comunicar con sus tropas.
Los primeros sistemas estaban basados en la simple sustitucin de un smbolo por
otro. Un ejemplo simple es el remplazo de un carcter por el siguiente en el alfabeto, de
este modo universidad se escribira: vojwfstjebe (en este caso, el sucesor del carcter z es
a).
La criptologa ha sido estudiada sobretodo por los militares y la gran cantidad de en-
frentamientos blicos han favorecido su desarrollo. En particular, durante la Segunda
Guerra Mundial, los alemanes utilizaron una mquina llamada Enigma, para codificar sus
mensajes. Por su parte, los aliados, han invertido muchos recursos para poder descifrar los
cdigos de esas mquinas. Esta ltima situacin ha favorecido el desarrollo de compu-
tadoras cada vez ms poderosas.
La criptologa se divide en dos campos:
La Criptografa: Que consiste en desarrollar algoritmos de cifrado.
El Criptoanlisis: Que consiste en romper los algoritmos de cifrado.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
80 LMBM
Los sistemas actuales de encriptacin estn basados en sistemas que utilizan llaves o
claves (key). Una llave es como una contrasea que permite el acceso al mensaje original.
El tamao de la llave es medido en bits y mientras ms larga la llave, ms difcil romperla.
Existen dos tipos de algoritmos basados en llaves:
Sistemas Simtricos: Llamados tambin sistemas de Llave Privada. Utilizan
una llave nica (comn) para el cifrado y el descifrado. El inconveniente de es-
te sistema es que se debe buscar una manera segura de comunicar la llave a
los destinatarios del mensaje.
Sistemas Asimtricos: Llamados tambin sistemas de Llave Pblica. Utilizan
dos llaves: Una llave pblica, que permite cifrar los datos y una llave privada
que ser utilizada para descifrarlos.
La llave pblica, puede ser difundida sin ningn problema.
La llave privada, es como su nombre lo indica, conocida solamente por el des-
tinatario.
Estos algoritmos permiten tambin la generacin de Firmas Digitales, que
permiten autentificar al autor del mensaje (y la integridad de la informacin).
La calidad de los sistemas de encriptacin est en funcin al tamao de las llaves utili-
zadas. En los sistemas simtricos, se utilizan llaves entre 40 y 128 bits. En los sistemas
asimtricos, las llaves pueden llegar a tener hasta 2048 bits.
4.1 Algunos Sistemas de Encriptacin
DES (Data Encryption Standard): Uno de los primeros sistemas simtricos
desarrollados en los aos 70. Ya no es considerado un sistema muy seguro hoy
en da
RSA (Ron Rivest, Adi Shamir y Leonard Adleman): Es un sistema simtrico que
utiliza dos llaves. Utiliza propiedades matemticas de los nmeros primos. Es
uno de los ms conocidos y utilizados de entre todos los sistemas simtricos.
PGP (Pretty Good Privacy): Uno de los sistemas asimtricos ms utilizados en
el mundo. Si bien los sistemas simtricos son ms rpidos, tienen el problema
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
81 LMBM
de la comunicacin de la llave comn. La solucin puede estar en la combina-
cin de los dos sistemas, utilizar un sistema asimtrico para comunicar la llave
comn y luego utilizarla con un sistema simtrico ms rpido.
5 Consideraciones Finales
El campo de la codificacin de la informacin, contina siendo uno de los campos
donde abundan los proyectos de investigacin.
Basta imaginar cunto se puede ganar en trminos de transmisin de grandes vol-
menes de datos, cuando se puede disminuir el tamao del mensaje en un 10% adicional
(por ejemplo).
En estos das, cuando con la democratizacin en el acceso y uso de internet, las nece-
sidades en seguridad no dejan de aumentar; es vital desarrollar cada vez mejores algorit-
mos de encriptacin de datos.
6 Ejercicios
1. Identificar en todos los casos, si la informacin es correcta o no. Considerar el l-
timo bit, como una paridad par.
a. 9B
16

b. 98E6
16

2. Considerar que el mensaje contiene una cadena de caracteres, donde el carcter A
ha sido codificado sobre siete bits como: 1S1
8
y el carcter Z ha sido codificado,
tambin sobre siete bits como: 72
16
.
La informacin ha sido recibida en bloque. Al final del mensaje se tiene una pala-
bra que corresponde a la paridad transversal (doble paridad). Para cada cadena de
bits recibidos:
a. Indicar si el mensaje fue recibido correctamente o no.
b. En caso que el mensaje no haya sido recibido correctamente, indicar si es
posible corregirlo o no. Si se puede corregir el mensaje.
c. Leer el mensaje.
Las cadenas recibidas son:
a. B1B4BE
16

b. B4CEC9CSCSB2E
16

c. B7B2C9C2B8B2B8B
16

d. 7CS78BBCAB27uF
16

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
82 LMBM
e. CA1B4BBECCB
16

3. Calcular la cadena de bits que debe ser enviada, considerando una codificacin de
Hamming. Cada mensaje est representado sobre 12 bits:
a. B49
16

b. 2S68
8

c. AF2
16

d. 12S4
10

4. Considerar que los siguientes mensajes llegaron con una codificacin de Hamming.
Indicar si llegaron correctamente y sino, identificar el error y corregirlo.
a. 6S2669
16

b. 2C2A48EA
16

5. Considerando el siguiente polinomio generador:
x
3
+ x
2
+ 1
Calcular el CRC de:
a. S72
16

b. 2Bu
16

c. S72
16

Verificar, con el mismo polinomio generador, si los siguientes mensajes recibidos,
estn correctos:
d. SuA
16

e. SS2
16

f. 12C
16


ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
83 LMBM

Parte III
Circuitos Lgicos

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
84 LMBM
CAPITULO 5.
CIRCUITOS LGICOS
Lgica. (Del lat. logica, y este del gr. ). f. Ciencia que expo-
ne las leyes, modos y formas del conocimiento cientfico.|| 2. Tra-
tado de esta ciencia. Escribi una lgica que fue muy comentada.
|| borrosa, o difusa. f. La que admite una cierta incertidumbre en-
tre la verdad o falsedad de sus proposiciones, a semejanza del ra-
ciocinio humano. || formal, o matemtica. f. La que opera utili-
zando un lenguaje simblico artificial y haciendo abstraccin de
los contenidos. || atural. f. Disposicin natural para discurrir con
acierto sin el auxilio de la ciencia. || parda. f. coloq. gramtica
parda.
RAE 2001
1 Introduccin
Los captulos anteriores, mostraron la importancia de la representacin binaria de la
informacin. Una de las principales razones, son los bi-estables (circuitos electrnicos ca-
paces de mantenerse constantes en dos estados).
Estos dispositivos, son la base para poder almacenar datos y poder desarrollar circui-
tos electrnicos que los puedan procesar (transformar).
Esta situacin demuestra la importancia de estudiar, no solo la representacin de da-
tos en un sistema binario, sino tambin cmo las diferentes funciones y operaciones se
irn a implementar utilizando este mismo sistema.
Las bases para este estudio, fueron sentadas por los trabajos de George Boole, quien
propuso una lgebra basada en el sistema binario, y sobre la cual prcticamente todas las
operaciones estn representadas (ver pgina 10).
En esta materia, no se tocar el comportamiento del componente electrnico como
tal. En esta materia, se analizar y utilizar el comportamiento lgico que los componen-
tes tienen. En este sentido se hablar de Circuitos Lgicos y no de Circuitos Electrnicos.
Con esta perspectiva, se distinguen dos tipos de circuitos lgicos:
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
85 LMBM
Circuitos Combinatorios: Circuitos ideales, donde no se toma en cuenta el
tiempo de propagacin real de las seales en el medio. Las seales de salida,
corresponden a las seales de entrada.
Circuitos Secuenciales: Circuitos donde si es necesario considerar el tiempo de
propagacin de las seales. La seal de salida corresponde a las seales de en-
trada, pero en el tiempo anterior (t 1).
2 lgebra de Boole
George Boole, defini en 1847 un lgebra que se aplica a las funciones lgicas sobre
variables lgicas. Define que, cualquier funcin lgica, puede ser realizada con una pe-
quea cantidad de funciones lgicas de base llamadas operadores lgicos o puertas (ga-
tes).
Estas funciones suelen representarse con la ayuda de tablas de verdad. Una tabla de
verdad de una funcin de n variables, tiene tantas lneas como estados de entrada. Es
decir 2
n
lneas. Para cada uno de estos estados, la salida puede tener el valor u o 1.
De la misma manera, para n variables, se pueden tener 2
(2

)
funciones diferentes:
Para 1 variable existen 4 funciones.
Para 2 variables existen 16 funciones.
Para 3 variables existen 256 funciones.
Para 4 variables existen 65.536 funciones.
Para 5 variables existen 4.294.967.296 funciones.
2.1 Funciones de 1 Variable
Una funcin de una variable (o), tiene 2 entradas (2
1
), y existen 4 (2
(2

)
) funciones.
Estas funciones pueden verse en la Tabla 26.

Tabla 26. Tabla 26: Funciones de una variable
o
0

1

2

3

0 0 0 1 1
1 0 1 0 1

u
= u Funcin Constante 0.

1
= o Funcin Identidad.

2
= o Funcin Complemento.

u
= 1 Funcin Constante 1.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
86 LMBM
La primera columna, muestra todas las combinaciones posibles, para una variable en
entrada. Como se esperaba, existen tan solo dos combinaciones posibles: 1 y 0.
La primera funcin (Z
0
), independientemente de las entradas, tiene como resultado el
valor 0. Por esta razn, esta funcin es denominada Funcin constante 0.
La segunda funcin (Z
1
), devuelve como resultado, el mismo valor que se tiene en la
entrada. Por esta razn, esta funcin es denominada Funcin Identidad.
La tercera funcin (Z
2
), devuelve como resultado, el valor complementario (negado)
al que se tiene en la entrada. Por esta razn, esta funcin es denominada Funcin Com-
plemento. Para implementar esta funcin, se utiliza el Operador Not.
La cuarta funcin (Z
3
), independientemente de las entradas, tiene como resultado el
valor 1. Por esta razn, esta funcin es denominada Funcin constante 1.
2.2 Funciones de 2 Variables
Una funcin de dos variables (o, b), tiene 4 entradas (2
2
), y existen 16 (2
(2

)
) funcio-
nes. Estas funciones pueden verse en la Tabla 27. De todas estas funciones, las ms impor-
tantes son las funciones And y Or.

Tabla 27. Tabla 27: Funciones de dos variables

uu u1 1u 11 ob
u u u u F
0
= u Funcin constante 0
u u u 1 F
1
= ob Funcin AND
u u 1 u F
2
= ob


u u 1 1 F
3
= o Funcin constante o
u 1 u u F
4
= ob
u 1 u 1 F
5
= b Funcin constante b
u 1 1 u F
6
= ob Funcin XOR
u 1 1 1 F
7
= o + b Funcin OR
1 u u u F
8
= o + b

= ob

Funcin NOR
1 u u 1 F
9
= ob


1 u 1 u F
10
= b

Funcin constante b


1 u 1 1 F
11
= o + b


1 1 u u F
12
= o Funcin constante o
1 1 u 1 F
13
= o + b
1 1 1 u F
14
= ob

= o +b

Funcin NAND
1 1 1 1 F
15
= 1 Funcin constante 1

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
87 LMBM
2.3 Teoremas Fundamentales del lgebra de Boole
George Boole aport considerablemente, al desarrollo de la
informtica, tal como la conocemos hoy, con su trabajo al desa-
rrollar un lgebra basada en la representacin binaria. En la Tabla
28, se puede ver un resumen de las principales caractersticas de
esta estructura algebraica desarrollada por Boole.

Tabla 28. Tabla 28: Teoremas Fundamentales del lgebra de Boole
El formalismo y las propiedades descritas, permiten generar cualquier funcin lgica y
simplificarla, o transformarla utilizando solamente operadores de base. Para estas opera-
ciones se introduce las nociones de mintrminos y maxtrminos:
Un mintrmino, es el producto lgico (AND) de todas las variables de entrada
que en su composicin tienen un valor 1.
Un maxtrmino, es la suma lgica (OR) de todas las variables de entrada que
en su composicin tienen un valor 0.
En la Tabla 29, se puede ver una funcin lgica expresada como suma de mintrminos
o como producto de maxtrminos.
En el primer caso, Suma de Mintrminos, cada mintrmino, corresponde a una entra-
da en la tabla de verdad, donde la evaluacin de la funcin es igual a 1. El primer mintr-
mino, corresponde a las entradas o = u y b = 1. Construyendo el mintrmino (producto
lgico de las entradas), ser necesario negar el valor de la variable o. Por esta razn, el
primer mintrmino es ob (no a y b). El segundo mintrmino, corresponde a las entradas
Teorema de Constantes: o + u = o o u = u
o + 1 = 1 o 1 = o
Idempotencia: o + o = o o o = o
Complementacin: o + o = 1 o o = u
Conmutatividad: o + b = b + o o b = b o
Distributividad: o (b + ) = o b + o
o + (b ) = (o + b) (o +)
Asociatividad: o + (b +) = (o + b) + = o +b +
o (b ) = (o b) = o b
Teoremas de De Morgan: ob

= o +b

o + b

= o b


Otra relaciones: o

= o o + (o b) = o
o + (o b) = o + b o (o +b) = o
(o +b) o +b

= o

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
88 LMBM
o = 1 y b = u. Construyendo el mintrmino (producto lgico de las entradas), ser nece-
sario negar el valor de la variable b. Por esta razn, el segundo mintrmino es ob

(a y no
b).

Tabla 29. Tabla 29: Funcin lgica XOR como Suma de Mintrminos y
como Producto de Maxtrminos
Cuando se hace la suma de los mintrminos, no se toma en cuenta las entradas donde
el resultado de la funcin es 0.
En el segundo caso, Producto de Maxtrminos, cada maxtrmino, corresponde a una
entrada en la tabla de verdad, donde la evaluacin de la funcin es igual a 0. El primer
maxtrmino, corresponde a las entradas o = u y b = u. Para construir el maxtrmino
(suma lgica de las entradas), no es necesario cambiar nada, para obtener el 0 deseado.
Por esta razn, el primer maxtrmino es o +b (a o b). El segundo maxtrmino, corres-
ponde a las entradas o = 1 y b = 1. Para construir el maxtrmino (suma lgica de las en-
tradas), es necesario negar ambas entradas, para obtener el 0 deseado. Por esta razn, el
primer maxtrmino es o + b

(no a o no b).
Cuando se hace la suma de los maxtrminos, no se toma en cuenta las entradas don-
de el resultado de la funcin es 1.
La descripcin de una funcin lgica, como Suma de Mintrminos o como Pro-
ducto de Maxtrminos, es conocida como forma normal o forma cannica.
Comnmente, una expresin en forma normal o cannica tiene demasiados trminos.
Para simplificar las mismas, se pueden aplicar los diferentes teoremas del lgebra de Boo-
le.
o b ob
u u u
u 1 1
1 u 1
1 1 u

ob +ob

Suma de Mintrminos
(o +b)(o + b

) Producto de Maxtrminos

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
89 LMBM
2.3.1 Los Operadores Completos
El conjunto de operadores AND, OR y NOT es suficiente para poder sintetizar todas
las dems funciones lgicas?
La respuesta a la pregunta es en todo caso si. Sin embargo, no es un conjunto mnimo.
Para demostrarlo, se puede ver cmo utilizando solamente operadores OR y NOT, se pue-
de definir la funcin AND:
o b = o +b


Y por su parte, cmo utilizando solamente operadores AND y NOT, se puede definir la
funcin OR:
o + b = o b


2.3.2 Los Operadores NAND y NOR
Existen otros dos operadores, denominados completos, porque con cualquiera de
ellos (uno solo), se pueden construir cualquiera de los otros operadores.
Estos operadores son:
El operador NAND: Corresponde a la funcin (o, b) = o b


El operador NOR: Corresponde a la funcin (o, b) = o + b


Poder representar cualquier operador, en base a uno solo (ya sea NAND u OR), resul-
ta, en trminos prcticos, bastante interesante. Esta reduccin puede llevar a desarrollar
circuitos ms econmicos y eficientes.
Los operadores bsicos pueden representarse de la siguiente manera:
Operador NOT:
o = o + o


o = o o
Operador AND:
o b = o +o

+ b

+b


o b = o b

o b


Operador OR:
o +b = o +b

+ o + b


ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
90 LMBM
o +b = o o b b


3 Circuitos Combinatorios
La funcin lgica de un circuito combinatorio, puede definirse de tres maneras:
Tabla de Verdad: Se trata de una tabla de correspondencia entre los estados
de entrada y los estados de salida.
Expresin Algebraica: Donde cada seal lgica es expresada como una funcin
de las seales de entrada.
Logigrama: Describe grficamente, la interconexin entre las diferentes puer-
tas lgicas.
3.1 Sntesis de un Circuito Combinatorio
El problema es el siguiente: A partir de la definicin de una funcin lgica, por ejem-
plo de su tabla de verdad, hay que determinar el logigrama que implemente la funcin.
La sntesis implica buscar la mejor manera de obtener el mejor logigrama (o simplifi-
cacin) para la funcin.
La representacin de la funcin reducida, en forma de logigrama, es la base
que ser utilizada para la elaboracin del circuito lgico digital, que implemen-
te la funcin.
Los pasos a seguir son los siguientes:
Construir la tabla de verdad de la funcin.
Derivar una expresin algebraica (por ejemplo, la forma normal siguiendo el
mtodo de los mintrminos).
Simplificar esta expresin, para transformarla en una expresin equivalente,
pero ms simple.
Realizar la funcin lgica con la ayuda de operadores de base.
Hay que recalcar que las soluciones encontradas no son nicas, pueden existir
diferentes soluciones para la misma funcin.
Para realizar la simplificacin de la funcin, se pueden utilizar dos mtodos: Los teo-
remas del lgebra de Boole y las Tablas o Mapas de Karnaugh.
ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
91 LMBM
3.1.1 Tablas o Mapas de Karnaugh con dos variables
Las tablas o mapas de Karnaugh, permiten simplificar las funciones lgicas. El mtodo
est basado en la inspeccin visual de tablas construidas apropiadamente. Este mtodo es
til para poder resolver funciones de hasta 6 variables.


Figura 1.
3.2 Sntesis de un Adicionador Binario

3.3 Anlisis de un Circuito Combinatorio

3.4 Multiplexores y Demultiplexores

3.5 Decodificadores Codificadores Transcodificadores



4 Circuitos Secuenciales

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
92 LMBM
4.1 Concepto de Autmata Finito

4.2 Circuitos Asncronos y Sncronos

4.3 Bi-estables

4.4 Sntesis de un Circuito Secuencial

4.5 Anlisis de un Circuito Secuencial

5 Ejercicios



ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
93 LMBM
CAPITULO 6.
MEMORIAS
Tratamiento de la informacin. 1. m. Inform. Aplicacin sistem-
tica de uno o varios programas sobre un conjunto de datos para
utilizar la informacin que contienen.
RAE 1992
1 Introduccin

2 Jerarqua de Memorias

3 Organizacin de la Informacin

4 Memoria Central

5 Memoria Cach

6 Memorias Externas



ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
94 LMBM
CAPITULO 7.
LENGUAJES DE DESCRIPCIN
DE HARDWARE
Tratamiento de la informacin. 1. m. Inform. Aplicacin sistem-
tica de uno o varios programas sobre un conjunto de datos para
utilizar la informacin que contienen.
RAE 1992
1 Introduccin

2 Lgica Combinatoria

3 Modelamiento Estructural

4 Lgica Secuencial

5 Modelamiento Algortmico

6 Autmatas Finitos

7 Testbenches

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
95 LMBM



ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
96 LMBM
CAPITULO 8.
UNIDAD CENTRAL DE PROCESAMIENTO
Tratamiento de la informacin. 1. m. Inform. Aplicacin sistem-
tica de uno o varios programas sobre un conjunto de datos para
utilizar la informacin que contienen.
RAE 1992
8 Introduccin

9 Arquitectura

10 Unidad de Control

11 Sincronizacin de las Operaciones

12 Lenguaje Mquina

13 Lenguaje Ensamblador

14 Unidad Aritmtica Lgica



ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
97 LMBM

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
98 LMBM
CAPITULO 9.
ENTRADAS Y SALIDAS
Tratamiento de la informacin. 1. m. Inform. Aplicacin sistem-
tica de uno o varios programas sobre un conjunto de datos para
utilizar la informacin que contienen.
RAE 1992
1 Introduccin

2 Historia

3 Terminales

4 Impresoras

5 Digitalizadores

6 Sistema de Interrupciones




ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
99 LMBM

Parte IV
Fundamentos Informticos

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
100 LMBM
CAPITULO 10.
CIRCUITOS LGICOS
Tratamiento de la informacin. 1. m. Inform. Aplicacin sistem-
tica de uno o varios programas sobre un conjunto de datos para
utilizar la informacin que contienen.
RAE 1992
1 Introduccin

ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
101 LMBM


ARQUITECTURA Y TECNOLOGA DE COMPUTADORAS
102 LMBM
Bibliografa
Chou, Seth. 2002. http://www.codeproject.com. [En lnea] 9 de 12 de 2002.
http://www.codeproject.com/Articles/3344/RLE-Run-Length-Encoding-compression-routine-in-
MFC.
CVMT. Conservatoire des vieux mtiers du textile. http://www.cvmt.com. [En lnea]
Dipperstein, Michael. 2010. Michael Dipperstein. [En lnea] 4 de 10 de 2010.
http://michael.dipperstein.com.
Hodges, Andrew. Alan Turing. http://www.turing.org.uk/. [En lnea]
IEEE. 1985. IEEE 754: Standard for Binary Floating-Point Arithmetic. 1985.
Intel Corp. Intel. Moores law. http://www.intel.com/research/silicon/mooreslaw.htm. [En lnea]
International Electrotechnical Commission. International Electrotechnical Commission. [En lnea]
IEC. http://www.iec.ch.
Maxfield & Montrose. 1998. History of computers. http://www.maxmon.com/history.htm. [En
lnea] 1998.
The Unicode Consortium. Unicode. http://www.unicode.org. [En lnea]
White, Stephen. A brief history of computing - summary timeline.
http://www.ox.compsoc.net/~swhite/history/timeline-INDEX.html. [En lnea]
Zuse, Horst Konrad. Konrad Zuse and his computers. http://www.konrad-zuse.de/. [En lnea]

Anda mungkin juga menyukai